[xml/sgml-commit] r550 - in packages/libxslt/branches: . upstream upstream/1.1.16 upstream/1.1.16/doc upstream/1.1.16/doc/EXSLT upstream/1.1.16/doc/EXSLT/html upstream/1.1.16/doc/html upstream/1.1.16/doc/tutorial upstream/1.1.16/doc/tutorial2 upstream/1.1.16/examples upstream/1.1.16/libexslt upstream/1.1.16/libxslt upstream/1.1.16/python upstream/1.1.16/python/tests upstream/1.1.16/tests upstream/1.1.16/tests/REC upstream/1.1.16/tests/REC1 upstream/1.1.16/tests/REC2 upstream/1.1.16/tests/XSLTMark upstream/1.1.16/tests/docbook upstream/1.1.16/tests/docbook/common upstream/1.1.16/tests/docbook/doc upstream/1.1.16/tests/docbook/doc/common upstream/1.1.16/tests/docbook/doc/fo upstream/1.1.16/tests/docbook/doc/html upstream/1.1.16/tests/docbook/doc/lib upstream/1.1.16/tests/docbook/dtd upstream/1.1.16/tests/docbook/dtd/3.1.7 upstream/1.1.16/tests/docbook/dtd/3.1.7/ent upstream/1.1.16/tests/docbook/dtd/4.0 upstream/1.1.16/tests/docbook/dtd/4.0/ent upstream/1.1.16/tests/docbook/dtd/4.1.2 upstream/1.1.16/tests/docbook/dtd/4.1.2/ent upstream/1.1.16/tests/docbook/dtd/simple upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1 upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4 upstream/1.1.16/tests/docbook/fo upstream/1.1.16/tests/docbook/html upstream/1.1.16/tests/docbook/html/new upstream/1.1.16/tests/docbook/html/old upstream/1.1.16/tests/docbook/htmlhelp upstream/1.1.16/tests/docbook/htmlhelp/doc upstream/1.1.16/tests/docbook/images upstream/1.1.16/tests/docbook/images/callouts upstream/1.1.16/tests/docbook/lib upstream/1.1.16/tests/docbook/result upstream/1.1.16/tests/docbook/result/fo upstream/1.1.16/tests/docbook/result/html upstream/1.1.16/tests/docbook/result/xhtml upstream/1.1.16/tests/docbook/result/xtchunk upstream/1.1.16/tests/docbook/result/xtchunk/html upstream/1.1.16/tests/docbook/template upstream/1.1.16/tests/docbook/test upstream/1.1.16/tests/docbook/xhtml upstream/1.1.16/tests/docs upstream/1.1.16/tests/documents upstream/1.1.16/tests/exslt upstream/1.1.16/tests/exslt/common upstream/1.1.16/tests/exslt/date upstream/1.1.16/tests/exslt/dynamic upstream/1.1.16/tests/exslt/functions upstream/1.1.16/tests/exslt/math upstream/1.1.16/tests/exslt/sets upstream/1.1.16/tests/exslt/strings upstream/1.1.16/tests/extensions upstream/1.1.16/tests/general upstream/1.1.16/tests/keys upstream/1.1.16/tests/multiple upstream/1.1.16/tests/multiple/out upstream/1.1.16/tests/namespaces upstream/1.1.16/tests/numbers upstream/1.1.16/tests/plugins upstream/1.1.16/tests/reports upstream/1.1.16/tests/xinclude upstream/1.1.16/tests/xmlspec upstream/1.1.16/vms upstream/1.1.16/win32 upstream/1.1.16/win32/libxslt upstream/1.1.16/xsltproc

Mike Hommey glandium at costa.debian.org
Fri May 26 08:19:44 UTC 2006


Author: glandium
Date: 2006-05-26 08:18:23 +0000 (Fri, 26 May 2006)
New Revision: 550

Added:
   packages/libxslt/branches/upstream/1.1.16/
   packages/libxslt/branches/upstream/1.1.16/AUTHORS
   packages/libxslt/branches/upstream/1.1.16/COPYING
   packages/libxslt/branches/upstream/1.1.16/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/Copyright
   packages/libxslt/branches/upstream/1.1.16/FEATURES
   packages/libxslt/branches/upstream/1.1.16/INSTALL
   packages/libxslt/branches/upstream/1.1.16/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/NEWS
   packages/libxslt/branches/upstream/1.1.16/README
   packages/libxslt/branches/upstream/1.1.16/TODO
   packages/libxslt/branches/upstream/1.1.16/acconfig.h
   packages/libxslt/branches/upstream/1.1.16/aclocal.m4
   packages/libxslt/branches/upstream/1.1.16/compile
   packages/libxslt/branches/upstream/1.1.16/config.guess
   packages/libxslt/branches/upstream/1.1.16/config.h.in
   packages/libxslt/branches/upstream/1.1.16/config.sub
   packages/libxslt/branches/upstream/1.1.16/configure
   packages/libxslt/branches/upstream/1.1.16/configure.in
   packages/libxslt/branches/upstream/1.1.16/depcomp
   packages/libxslt/branches/upstream/1.1.16/doc/
   packages/libxslt/branches/upstream/1.1.16/doc/API.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIchunk0.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIchunk1.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIchunk2.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIchunk3.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIchunk4.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIchunk5.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIchunk6.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIchunk7.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIchunk8.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIchunk9.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIconstructors.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIfiles.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIfunctions.html
   packages/libxslt/branches/upstream/1.1.16/doc/APIsymbols.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIchunk0.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIconstructors.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIfiles.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIfunctions.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIsymbols.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/bugs.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/docs.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/downloads.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/exslt.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/help.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/book1.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/home.png
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/index.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/left.png
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-exslt.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-exsltexports.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-lib.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/right.png
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/up.png
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/index.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/intro.html
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/libexslt-api.xml
   packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/libexslt-refs.xml
   packages/libxslt/branches/upstream/1.1.16/doc/FAQ.html
   packages/libxslt/branches/upstream/1.1.16/doc/Libxslt-Logo-180x168.gif
   packages/libxslt/branches/upstream/1.1.16/doc/Libxslt-Logo-90x34.gif
   packages/libxslt/branches/upstream/1.1.16/doc/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/doc/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/doc/api.xsl
   packages/libxslt/branches/upstream/1.1.16/doc/apibuild.py
   packages/libxslt/branches/upstream/1.1.16/doc/bugs.html
   packages/libxslt/branches/upstream/1.1.16/doc/contexts.gif
   packages/libxslt/branches/upstream/1.1.16/doc/contribs.html
   packages/libxslt/branches/upstream/1.1.16/doc/docbook.html
   packages/libxslt/branches/upstream/1.1.16/doc/docs.html
   packages/libxslt/branches/upstream/1.1.16/doc/downloads.html
   packages/libxslt/branches/upstream/1.1.16/doc/extensions.html
   packages/libxslt/branches/upstream/1.1.16/doc/help.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/
   packages/libxslt/branches/upstream/1.1.16/doc/html/book1.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/home.png
   packages/libxslt/branches/upstream/1.1.16/doc/html/index.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/left.png
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-attributes.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-documents.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-extensions.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-extra.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-functions.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-imports.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-keys.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-lib.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-namespaces.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-numbersInternals.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-pattern.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-preproc.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-security.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-templates.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-transform.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-variables.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xslt.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltInternals.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltexports.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltutils.html
   packages/libxslt/branches/upstream/1.1.16/doc/html/right.png
   packages/libxslt/branches/upstream/1.1.16/doc/html/up.png
   packages/libxslt/branches/upstream/1.1.16/doc/index.html
   packages/libxslt/branches/upstream/1.1.16/doc/internals.html
   packages/libxslt/branches/upstream/1.1.16/doc/intro.html
   packages/libxslt/branches/upstream/1.1.16/doc/libxslt-api.xml
   packages/libxslt/branches/upstream/1.1.16/doc/libxslt-refs.xml
   packages/libxslt/branches/upstream/1.1.16/doc/libxslt.xsa
   packages/libxslt/branches/upstream/1.1.16/doc/newapi.xsl
   packages/libxslt/branches/upstream/1.1.16/doc/news.html
   packages/libxslt/branches/upstream/1.1.16/doc/news.xsl
   packages/libxslt/branches/upstream/1.1.16/doc/node.gif
   packages/libxslt/branches/upstream/1.1.16/doc/object.gif
   packages/libxslt/branches/upstream/1.1.16/doc/processing.gif
   packages/libxslt/branches/upstream/1.1.16/doc/python.html
   packages/libxslt/branches/upstream/1.1.16/doc/redhat.gif
   packages/libxslt/branches/upstream/1.1.16/doc/search.xml
   packages/libxslt/branches/upstream/1.1.16/doc/site.xsl
   packages/libxslt/branches/upstream/1.1.16/doc/smallfootonly.gif
   packages/libxslt/branches/upstream/1.1.16/doc/stylesheet.gif
   packages/libxslt/branches/upstream/1.1.16/doc/templates.gif
   packages/libxslt/branches/upstream/1.1.16/doc/tutorial/
   packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslt_tutorial.c
   packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslttutorial.html
   packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslttutorial.xml
   packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/
   packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.c
   packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.html
   packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.xml
   packages/libxslt/branches/upstream/1.1.16/doc/xsa.xsl
   packages/libxslt/branches/upstream/1.1.16/doc/xslt.html
   packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.1
   packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.html
   packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.xml
   packages/libxslt/branches/upstream/1.1.16/doc/xsltproc2.html
   packages/libxslt/branches/upstream/1.1.16/examples/
   packages/libxslt/branches/upstream/1.1.16/examples/xsltICUSort.c
   packages/libxslt/branches/upstream/1.1.16/install-sh
   packages/libxslt/branches/upstream/1.1.16/libexslt.pc.in
   packages/libxslt/branches/upstream/1.1.16/libexslt/
   packages/libxslt/branches/upstream/1.1.16/libexslt/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/libexslt/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/libexslt/common.c
   packages/libxslt/branches/upstream/1.1.16/libexslt/crypto.c
   packages/libxslt/branches/upstream/1.1.16/libexslt/date.c
   packages/libxslt/branches/upstream/1.1.16/libexslt/dynamic.c
   packages/libxslt/branches/upstream/1.1.16/libexslt/exslt.c
   packages/libxslt/branches/upstream/1.1.16/libexslt/exslt.h
   packages/libxslt/branches/upstream/1.1.16/libexslt/exsltconfig.h
   packages/libxslt/branches/upstream/1.1.16/libexslt/exsltconfig.h.in
   packages/libxslt/branches/upstream/1.1.16/libexslt/exsltexports.h
   packages/libxslt/branches/upstream/1.1.16/libexslt/functions.c
   packages/libxslt/branches/upstream/1.1.16/libexslt/libexslt.3
   packages/libxslt/branches/upstream/1.1.16/libexslt/libexslt.h
   packages/libxslt/branches/upstream/1.1.16/libexslt/math.c
   packages/libxslt/branches/upstream/1.1.16/libexslt/saxon.c
   packages/libxslt/branches/upstream/1.1.16/libexslt/sets.c
   packages/libxslt/branches/upstream/1.1.16/libexslt/strings.c
   packages/libxslt/branches/upstream/1.1.16/libxslt.m4
   packages/libxslt/branches/upstream/1.1.16/libxslt.pc.in
   packages/libxslt/branches/upstream/1.1.16/libxslt.spec
   packages/libxslt/branches/upstream/1.1.16/libxslt.spec.in
   packages/libxslt/branches/upstream/1.1.16/libxslt/
   packages/libxslt/branches/upstream/1.1.16/libxslt/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/libxslt/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/libxslt/attributes.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/attributes.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/attrvt.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/documents.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/documents.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/extensions.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/extensions.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/extra.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/extra.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/functions.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/functions.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/imports.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/imports.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/keys.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/keys.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/libxslt.3
   packages/libxslt/branches/upstream/1.1.16/libxslt/libxslt.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/namespaces.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/namespaces.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/numbers.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/numbersInternals.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/pattern.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/pattern.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/preproc.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/preproc.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/security.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/security.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/templates.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/templates.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/transform.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/transform.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/trio.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/triodef.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/variables.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/variables.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/win32config.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/xslt.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/xslt.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/xsltInternals.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/xsltconfig.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/xsltconfig.h.in
   packages/libxslt/branches/upstream/1.1.16/libxslt/xsltexports.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/xsltutils.c
   packages/libxslt/branches/upstream/1.1.16/libxslt/xsltutils.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/xsltwin32config.h
   packages/libxslt/branches/upstream/1.1.16/libxslt/xsltwin32config.h.in
   packages/libxslt/branches/upstream/1.1.16/ltconfig
   packages/libxslt/branches/upstream/1.1.16/ltmain.sh
   packages/libxslt/branches/upstream/1.1.16/missing
   packages/libxslt/branches/upstream/1.1.16/mkinstalldirs
   packages/libxslt/branches/upstream/1.1.16/python/
   packages/libxslt/branches/upstream/1.1.16/python/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/python/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/python/TODO
   packages/libxslt/branches/upstream/1.1.16/python/generator.py
   packages/libxslt/branches/upstream/1.1.16/python/libxml_wrap.h
   packages/libxslt/branches/upstream/1.1.16/python/libxsl.py
   packages/libxslt/branches/upstream/1.1.16/python/libxslt-py.c
   packages/libxslt/branches/upstream/1.1.16/python/libxslt-python-api.xml
   packages/libxslt/branches/upstream/1.1.16/python/libxslt.c
   packages/libxslt/branches/upstream/1.1.16/python/libxslt_wrap.h
   packages/libxslt/branches/upstream/1.1.16/python/tests/
   packages/libxslt/branches/upstream/1.1.16/python/tests/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/python/tests/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/python/tests/basic.py
   packages/libxslt/branches/upstream/1.1.16/python/tests/exslt.py
   packages/libxslt/branches/upstream/1.1.16/python/tests/extelem.py
   packages/libxslt/branches/upstream/1.1.16/python/tests/extfunc.py
   packages/libxslt/branches/upstream/1.1.16/python/tests/pyxsltproc.py
   packages/libxslt/branches/upstream/1.1.16/python/tests/test.xml
   packages/libxslt/branches/upstream/1.1.16/python/tests/test.xsl
   packages/libxslt/branches/upstream/1.1.16/python/types.c
   packages/libxslt/branches/upstream/1.1.16/tests/
   packages/libxslt/branches/upstream/1.1.16/tests/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/REC/
   packages/libxslt/branches/upstream/1.1.16/tests/REC/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/REC/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/REC/article.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/bigfont.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.stand.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.err
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.out
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.2-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC1/
   packages/libxslt/branches/upstream/1.1.16/tests/REC1/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/REC1/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC1/result.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC2/
   packages/libxslt/branches/upstream/1.1.16/tests/REC2/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/REC2/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/REC2/data.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC2/html.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC2/html.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC2/svg.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC2/svg.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/REC2/vrml.xml
   packages/libxslt/branches/upstream/1.1.16/tests/REC2/vrml.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbgen.pl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/decoy.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/decoy.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/find.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/gettysburg.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.ref
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench2.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench3.out
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbenchdream.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/README
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/TODO
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/VERSION
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/LostLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ca.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/common.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/cs.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/da.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/de.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/el.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/en.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/es.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/et.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/fi.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/fr.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/gentext.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/hu.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/id.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/it.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ja.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ko.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/labels.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/nl.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/no.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pl.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pt.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pt_br.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ro.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ru.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sk.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sl.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sr.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/subtitles.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sv.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/titles.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/zh_cn.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/zh_tw.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/book.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s02.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s03.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s04.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch02s02.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch03.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch04.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/common/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/common/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/common/common.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/copyright.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/extensions.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/param.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/table.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/ebnf.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/param.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/index.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/jrefhtml.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/lib/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/lib/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/lib/lib.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/pr01.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/publishing.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.css
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/warranty.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/COPYRIGHT
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/README
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/VERSION
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/calstblx.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbcentx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbgenent.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbhierx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbnotnx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbpoolx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbtblcals.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbtblxchg.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/docbookx.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsa.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsb.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsc.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsn.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amso.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsr.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-box.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-cyr1.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-cyr2.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-dia.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk1.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk2.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk3.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk4.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-lat1.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-lat2.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-num.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-pub.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-tech.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/soextblx.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/tblcals.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/tblxchg.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/test.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/40chg.txt
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/calstblx.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbcentx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbgenent.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbhierx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbnotnx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbpoolx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/docbookx.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsa.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsb.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsc.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsn.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amso.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsr.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-box.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-cyr1.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-cyr2.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-dia.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk1.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk2.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk3.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk4.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-lat1.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-lat2.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-num.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-pub.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-tech.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/readme.txt
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/soextblx.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/.memdump
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/40chg.txt
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/41chg.txt
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/calstblx.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbcentx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbgenent.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbhierx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbnotnx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbpoolx.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbook.cat
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbook.cxt
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbookx.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsa.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsb.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsc.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsn.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amso.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsr.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-box.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-cyr1.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-cyr2.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-dia.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk1.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk2.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk3.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk4.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-lat1.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-lat2.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-num.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-pub.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-tech.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/readme.txt
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/soextblx.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/COPYRIGHT
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/README
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/VERSION
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-lat1.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-num.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-pub.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbcent.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbhier.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbpool.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook-custom.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook.css
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbookref-custom.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbookref.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sinclist.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/test.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testcss.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testcust.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testrefcust.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/COPYRIGHT
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/LostLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/README
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/VERSION
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbcent.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbhier.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbpool.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook-custom.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook.css
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbookref.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sinclist.mod
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/test.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testcss.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testcust.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testrefcust.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/LostLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/admon.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/autoidx.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/autotoc.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/biblio.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/block.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/callout.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/component.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/division.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/docbook.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/fo.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/footnote.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/fop.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/formal.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/glossary.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/graphics.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/index.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/info.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/inline.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/keywords.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/lists.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/math.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/pagesetup.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/param.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/pi.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/qandaset.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/refentry.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/sections.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/synop.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/table.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.templates.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.templates.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/toc.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/verbatim.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/xref.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/LostLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/admon.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/autoidx.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/autotoc.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/biblio.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/block.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/callout.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/changebars.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunk-common.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunk.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunker.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/component.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/division.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/docbook.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/ebnf.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/footnote.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/formal.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/glossary.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/graphics.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/html.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/index.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/info.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/inline.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/keywords.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/lists.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/math.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/new/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/new/chunk.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/new/chunker.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunk-common.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunk.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunker.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/param.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/pi.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/qandaset.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/refentry.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/sections.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/synop.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/table.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.templates.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.templates.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/toc.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/verbatim.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xref.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xtchunk.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xtchunker.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/doc/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/doc/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/doc/htmlhelp.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/htmlhelp-common.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/htmlhelp.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/langcodes.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/xthtmlhelp.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/1.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/10.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/2.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/3.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/4.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/5.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/6.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/7.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/8.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/9.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/caution.gif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/caution.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/caution.tif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/home.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/important.gif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/important.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/important.tif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/next.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/note.gif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/note.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/note.tif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/prev.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/tip.gif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/tip.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/tip.tif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/toc-blank.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/toc-minus.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/toc-plus.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/up.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/warning.gif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/warning.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/warning.tif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/LostLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/lib.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article2.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article3.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/bib.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book2.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book3.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/callout.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/chunk.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/classsynop.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/condition.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/docbook40.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/external.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/figtest.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/foottest.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/fotest.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/func.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/gdp-handbook.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/graphics.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/gtest.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/idxbook.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/kwrite.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/multilingual.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/qa.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/qa2.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/sectest.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/set.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/table.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/test.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/verbtest.fo
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article2.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article3.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/bib.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book2.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book3.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/callout.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/chunk.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/classsynop.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/condition.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/docbook40.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/emc2.gif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/emc2.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/external.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/figtest.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/foottest.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/fotest.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/func.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gdp-handbook.err
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gdp-handbook.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/graphics.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gtest.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/idxbook.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/kwrite.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/multilingual.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/qa.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/qa2.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/sectest.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/set.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/table.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/test.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/testmath.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/verbtest.html
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article2.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article3.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/bib.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book2.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book3.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/callout.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/chunk.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/classsynop.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/condition.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/docbook40.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/external.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/figtest.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/foottest.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/fotest.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/func.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/gdp-handbook.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/graphics.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/gtest.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/idxbook.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/kwrite.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/multilingual.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/qa.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/qa2.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/sectest.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/set.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/table.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/test.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/verbtest.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apa.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apas02.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apas03.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s02.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s03.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s04.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s05.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s06.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s07.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s08.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s09.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s10.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s11.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s12.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s13.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s14.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s15.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/index.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs02.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs03.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs04.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs05.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs06.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs07.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs08.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs09.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs10.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs11.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs12.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs13.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs14.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs15.orig
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/README
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/biblioentry.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/testtemplate.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/titlepage.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/.memdump
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/LostLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/Makefile
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/bib.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/callout.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/chunk.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/classsynop.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/condition.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/docbook.css
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/docbook40.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/emc2.gif
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/emc2.png
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/external.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/figtest.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/foottest.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/fotest.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/func.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/gdp-handbook.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/graphics.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/gtest.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/idxbook.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/kwrite.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/multilingual.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/qa.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/qa2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/sectest.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/set.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/subdoc.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/table.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/test.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/test.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/verbtest.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/ChangeLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/LostLog
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/chunk.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/docbook.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/xtchunk.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/docs/
   packages/libxslt/branches/upstream/1.1.16/tests/docs/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/docs/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/docs/array.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-1-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-10-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-100.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-101.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-102.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-103.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-104.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-105.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-106.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-107.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-108.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-109.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-11-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-110.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-110.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-111.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-112.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-113.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-114.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-115.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-116.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-117.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-118.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-119.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-12-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-120.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-121.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-122.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-123.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-124.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-125.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-126.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-127.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-128.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-129.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-13-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-130.doc
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-130.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-131.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-132.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-133.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-134.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-135.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-136.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-137.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-138.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-139.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-14-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-140.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-141.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-142.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-143.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-144.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-145.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-146.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-147.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-148.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-149.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-15-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-150.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-151.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-152.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-153.doc
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-153.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-154.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-155.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-156.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-157.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-158.doc
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-158.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-159.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-16-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-160.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-161.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-163.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-17-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-18-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-19-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-2-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-20-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-21-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-22-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-23-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-24-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-25-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-26-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-27-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-28-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-29-.ent
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-29-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-3-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-30-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-31-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-32-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-33-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-35-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-36-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-37-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-38-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-39-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-4-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-40-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-41-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-42-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-43-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-44-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-45-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-46-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-47-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-48-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-49-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-5-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-50-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-52.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-53.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-54.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-55.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-56.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-57.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-59.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-6-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-60.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-61.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-62.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-63.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-64.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-65.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-66.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-68.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-69.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-7-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-70.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-71.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-72.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-73.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-74.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-75.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-76.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-77.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-78.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-79.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-8-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-80.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-81.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-82.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-83.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-84.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-86.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-87.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-88.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-89.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-9-.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-90.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-91.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-92.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-93.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-94.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-95.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-96.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-97.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-98.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-99.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/character.xml
   packages/libxslt/branches/upstream/1.1.16/tests/docs/items.xml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/
   packages/libxslt/branches/upstream/1.1.16/tests/documents/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/documents/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/documents/bredfort.css
   packages/libxslt/branches/upstream/1.1.16/tests/documents/bredfort.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/documents/doc_file.xml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/docfile.xml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.result
   packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.xml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/index.xml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/menu.xml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/message.result
   packages/libxslt/branches/upstream/1.1.16/tests/documents/message.xml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/message.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/documents/result.xhtml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/system.xml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/test.result
   packages/libxslt/branches/upstream/1.1.16/tests/documents/test.xml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/test.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.err
   packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.result
   packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.xml
   packages/libxslt/branches/upstream/1.1.16/tests/documents/worklog.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1a.imp
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1b.imp
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/current.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.out
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/extensions/
   packages/libxslt/branches/upstream/1.1.16/tests/extensions/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/extensions/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.out
   packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.xml
   packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.out
   packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.xml
   packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/
   packages/libxslt/branches/upstream/1.1.16/tests/general/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/general/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/general/array.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/array.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-1-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-1-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-10-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-10-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-100.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-100.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-101.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-101.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102-inc.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102-inc.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-103.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-103.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-104.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-104.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-105.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-105.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-106.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-106.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-107.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-107.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-108.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-108.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-109.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-109.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-11-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-11-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-110.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-110.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-111.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-111.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-112.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-112.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-113.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-113.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-114.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-114.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-115.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-115.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-116.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-116.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-117.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-117.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-118.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-118.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-119.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-119.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-12-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-12-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-120.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-120.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-121.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-121.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-122.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-122.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-123.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-123.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-124.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-124.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-125.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-125.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-126.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-126.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-127.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-127.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-128.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-128.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-129.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-129.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-13-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-13-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp1.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp2.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp3.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp4.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131-imp.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-132.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-132.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-133.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-133.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-134.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-134.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-135.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-135.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-136.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-136.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-138.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-138.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-139.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-139.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-14-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-14-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-140.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-140.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-141.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-141.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-142.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-142.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-143.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-143.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-144.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-144.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-145.err
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-145.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-145.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-146.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-146.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-1.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-2.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-3.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-4.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-5.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-6.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-148.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-148.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-149.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-149.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-15-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-15-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-150.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-150.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-151.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-151.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-152.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-152.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-153.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-153.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-154.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-154.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-155.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-155.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.err
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.imp1.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.imp2.imp
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.err
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-158.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-158.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-159.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-159.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-16-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-16-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-160.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-160.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-161.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-161.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-163.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-163.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-17-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-17-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-18-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-18-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-19-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-19-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-2-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-2-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-20-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-20-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-21-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-21-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-22-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-22-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-23-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-23-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-24-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-24-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-25-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-25-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-26-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-26-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-27-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-27-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-28-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-28-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-29-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-29-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-3-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-3-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-30-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-30-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-31-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-31-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-32-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-32-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-33-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-33-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-35-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-35-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-inc.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-inc.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-inc.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-inc.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-38-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-38-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-39-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-39-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-4-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-4-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-40-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-40-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-41-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-41-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-42-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-42-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-43-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-43-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-44-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-44-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-45-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-45-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-46-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-46-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-47-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-47-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-48-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-48-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-49-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-49-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-5-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-5-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-50-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-50-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-52.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-52.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-53.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-53.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-54.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-54.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-55.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-55.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-56.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-56.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-57.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-57.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-59.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-59.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-6-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-6-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.err
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-61.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-61.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62-inc.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62-inc.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-63.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-63.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-64.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-64.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.ent
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-66.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-66.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-68.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-68.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-69.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-69.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-7-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-7-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-70.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-70.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-71.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-71.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-72.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-72.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-73.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-73.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-74.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-74.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-75.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-75.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-76.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-76.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-77.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-77.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-78.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-78.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-79.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-79.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-8-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-8-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-80.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-80.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-81.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-81.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-82.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-82.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-83.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-83.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-84.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-84.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-86.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-86.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-87.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-87.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-88.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-88.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-89.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-89.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-9-.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-9-.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-90.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-90.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-91.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-91.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-92.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-92.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93-inc.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93-inc.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-94.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-94.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-95.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-95.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-96.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-96.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-97.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-97.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-98.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-98.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-99.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/bug-99.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/character.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/character.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/character2.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/character2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/inner.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/general/itemschoose.out
   packages/libxslt/branches/upstream/1.1.16/tests/general/itemschoose.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/keys/
   packages/libxslt/branches/upstream/1.1.16/tests/keys/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/keys/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/keys/dates.xml
   packages/libxslt/branches/upstream/1.1.16/tests/keys/month.out
   packages/libxslt/branches/upstream/1.1.16/tests/keys/month.xml
   packages/libxslt/branches/upstream/1.1.16/tests/keys/month.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.xml
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettera.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterb.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterc.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterd.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettere.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterf.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterg.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterh.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterij.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterk.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterl.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterm.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettern.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettero.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterp.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterq.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterr.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letters.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettert.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letteruv.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterw.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterx.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettery.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterz.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/titlepage.orig
   packages/libxslt/branches/upstream/1.1.16/tests/multiple/result.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.out
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.err
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.out
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.out
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.out
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.out
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.out
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.out
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.out
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.out
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.out
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.out
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.xml
   packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/numbers/
   packages/libxslt/branches/upstream/1.1.16/tests/numbers/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/numbers/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.out
   packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.xml
   packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/plugins/
   packages/libxslt/branches/upstream/1.1.16/tests/plugins/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/plugins/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.out
   packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.xml
   packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/plugins/testplugin.c
   packages/libxslt/branches/upstream/1.1.16/tests/reports/
   packages/libxslt/branches/upstream/1.1.16/tests/reports/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/reports/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.out
   packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.xml
   packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobparam.xml
   packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobparam.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobvar.xml
   packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobvar.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocparam.xml
   packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocparam.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocvar.xml
   packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocvar.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.err
   packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.out
   packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.err
   packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.out
   packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.err
   packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.out
   packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.xml
   packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/xinclude/
   packages/libxslt/branches/upstream/1.1.16/tests/xinclude/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/xinclude/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/xinclude/e.xml
   packages/libxslt/branches/upstream/1.1.16/tests/xinclude/e.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/xinclude/normal.out
   packages/libxslt/branches/upstream/1.1.16/tests/xinclude/x1.xml
   packages/libxslt/branches/upstream/1.1.16/tests/xinclude/x2.xml
   packages/libxslt/branches/upstream/1.1.16/tests/xinclude/xinclude.out
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006-review.html
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006.html
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006.xml
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-2e.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/W3C-REC.css
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/diffspec.xsl
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/logo-REC
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/xmlspec-v21.dtd
   packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/xmlspec.xsl
   packages/libxslt/branches/upstream/1.1.16/vms/
   packages/libxslt/branches/upstream/1.1.16/vms/build_xslt.com
   packages/libxslt/branches/upstream/1.1.16/vms/diffs.vms
   packages/libxslt/branches/upstream/1.1.16/vms/readme.vms
   packages/libxslt/branches/upstream/1.1.16/win32/
   packages/libxslt/branches/upstream/1.1.16/win32/.cvsignore
   packages/libxslt/branches/upstream/1.1.16/win32/Makefile.mingw
   packages/libxslt/branches/upstream/1.1.16/win32/Makefile.msvc
   packages/libxslt/branches/upstream/1.1.16/win32/Readme.txt
   packages/libxslt/branches/upstream/1.1.16/win32/configure.js
   packages/libxslt/branches/upstream/1.1.16/win32/configure.js.orig
   packages/libxslt/branches/upstream/1.1.16/win32/defgen.xsl
   packages/libxslt/branches/upstream/1.1.16/win32/libexslt.def.src
   packages/libxslt/branches/upstream/1.1.16/win32/libxslt.def.src
   packages/libxslt/branches/upstream/1.1.16/win32/libxslt/
   packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt.def
   packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt.dsw
   packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt_so.dsp
   packages/libxslt/branches/upstream/1.1.16/win32/libxslt/xsltproc.dsp
   packages/libxslt/branches/upstream/1.1.16/xslt-config.in
   packages/libxslt/branches/upstream/1.1.16/xsltConf.sh.in
   packages/libxslt/branches/upstream/1.1.16/xsltproc/
   packages/libxslt/branches/upstream/1.1.16/xsltproc/Makefile.am
   packages/libxslt/branches/upstream/1.1.16/xsltproc/Makefile.in
   packages/libxslt/branches/upstream/1.1.16/xsltproc/xsltproc.c
Modified:
   packages/libxslt/branches/
Log:
 r1049 at namakemono:  mh | 2006-05-02 22:34:16 +0200
 Tagging new upstream version, libxslt (1.1.16)



Property changes on: packages/libxslt/branches
___________________________________________________________________
Name: svk:merge
   - a066b643-3b0a-0410-a6ba-ed4cca522822:/local/libxslt/branches:1048
   + a066b643-3b0a-0410-a6ba-ed4cca522822:/local/libxslt/branches:1049

Added: packages/libxslt/branches/upstream/1.1.16/AUTHORS
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/AUTHORS	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/AUTHORS	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+Daniel Veillard:
+   daniel at veillard.com
+   DV on #gnome IRC channel
+   http://veillard.com/
+   Used to work at W3C, now Red Hat
+   co-chair of W3C XML Linking WG
+   invited expert on the W3C XML Core WG
+   Author of libxml upon which this library is based.
+
+Bjorn Reese:
+   breese at users.sourceforge.net
+   http://home1.stofanet.dk/breese/
+   Software developer at http://www.systematic.dk/
+   Member of the XML-MTF Mapping WG.
+
+William Brack <wbrack at mmm.com.hk>
+
+Thomas Broyer <tbroyer at ltgt.net>
+
+Igor Zlatkovic <igor at zlatkovic.com> for the Windows port

Added: packages/libxslt/branches/upstream/1.1.16/COPYING
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/COPYING	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/COPYING	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,53 @@
+Licence for libxslt except libexslt
+----------------------------------------------------------------------
+ Copyright (C) 2001-2002 Daniel Veillard.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of Daniel Veillard shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from him.
+
+----------------------------------------------------------------------
+
+Licence for libexslt
+----------------------------------------------------------------------
+ Copyright (C) 2001-2002 Thomas Broyer, Charlie Bozeman and Daniel Veillard.
+ All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the authors shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from him.
+----------------------------------------------------------------------

Added: packages/libxslt/branches/upstream/1.1.16/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6795 @@
+Mon May  1 17:39:27 EDT 2006 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in NEWS doc//*: preparing release of 1.1.16, updated and
+	  regenerated the docs.
+
+Tue Apr 25 15:02:42 CEST 2006 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: applied patch from Joseph Sacco changing slightly
+	  the python detection scheme should fix bug #338527
+
+Wed Apr 12 13:35:45 CEST 2006 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* libxslt/attributes.c libxslt/preproc.c libxslt/transform.c
+	  libxslt/variables.c libxslt/xslt.c libxslt/xsltInternals.h
+	  libxslt/xsltutils.c libxslt/xsltutils.h:
+	  Refactored the internal structures into specialized
+	  structures and adjusted the code to work with those new
+	  structures. I didn't yet (we should in the future)
+	  renamed any fields of the old structures in order to avoid
+	  changing too much code.
+	  Introduced the internal structure xsltCompilerCtxt to be
+	  used for storage and control of the compilation.
+	  Optimized the way lists of in-scope namespaces are created
+	  and stored; this will now only generate a new list if
+	  really needed, i.e. if we encounter a ns-decl.
+	  All this changes here are IFDEFed out with XSLT_REFACTORED.
+	  
+Thu Apr  6 10:16:59 CEST 2006 Daniel Veillard <daniel at veillard.com>
+
+	* doc/xsltproc.1 doc/xsltproc.xml: applied man page improvement
+	  from Daniel Leidert
+
+Thu Mar 30 17:23:52 CEST 2006 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* tests/general/bug-36-inc.xsl tests/general/bug-37-inc.xsl
+	  tests/general/bug-65-inc.xsl tests/general/bug-100.xsl
+	  tests/REC/test-15-1.xsl tests/REC/test-7.1.1-3.xsl
+	  tests/namespaces/extra2.xsl tests/extensions/module.xsl
+	  tests/plugins/plugin.xsl python/tests/extelem.py
+	  python/tests/extfunc.py: Fixed regression tests wrt
+	  usage of the attributes "exclude-result-prefixes"
+	  and "extension-element-prefixes". test-7.1.1-3.xsl fails
+	  now, since the code still does not exclude ns-decls
+	  correctly.
+
+Thu Mar 30 17:11:53 CEST 2006 Kasimier Buchcik <libxml2-cvs at cazic.net>
+
+	* libxslt/xslt.c libxslt/xsltutils.c libxslt/preproc.c
+	  libxslt/namespaces.c libxslt/imports.c
+	  libxslt/attributes.c: Eliminated usage of xsltGetNsProp() in cases
+	  where an attribute with a specific namespace is requested.
+	  xsltGetNsProp() uses xmlGetProp() which is not namespace aware
+	  and thus will return the first attribute with the requested
+	  name but of arbitrary namespace.
+	  Changed retrieval of the attributes "exclude-result-prefixes"
+	  and "extension-element-prefixes", which are expected to be in
+	  no namespace on XSLT elements and in the XSLT namespace on
+	  literal result elements or extension elements.
+	  Additional change: for XSLT elements the attribute
+	  "exclude-result-prefixes" is only allowed on xsl:stylesheet
+	  and xsl:transform. This attribute was previously processed on
+	  all XSLT elements.
+
+Wed Mar 29 12:16:41 CEST 2006 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: Charles Hardin pointed an OOM condition where
+	  a NULL pointer could be dereferenced, closes #336394
+
+Fri Mar 10 12:49:18 CET 2006 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/crypto.c libexslt/date.c libexslt/saxon.c
+	  libxslt/attributes.c libxslt/imports.c libxslt/pattern.c
+	  libxslt/preproc.c libxslt/transform.c libxslt/variables.c
+	  libxslt/xslt.c libxslt/xsltutils.c: various assorted small cleanups
+	  based on the Coverity reports
+
+Wed Feb 22 16:09:10 CET 2006 Daniel Veillard <daniel at veillard.com>
+
+	* python/types.c: Nic Ferrier found debug statement left in the
+	  XPath conversion code
+
+Tue Feb 21 20:21:07 CET 2006 Daniel Veillard <daniel at veillard.com>
+
+	* doc/xsltproc.1 doc/xsltproc.xml: new update from Daniel Leidert
+
+Tue Feb 21 17:59:11 CET 2006 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.c libxslt/xslt.c libxslt/xslt.h
+	  libxslt/xsltInternals.h: applied patch from Christopher R. Palmer
+	  to avoid a race condition in xsltInit()
+
+Sun Feb 19 22:40:58 CET 2006 Daniel Veillard <daniel at veillard.com>
+
+	* doc/xsltproc.1 doc/xsltproc.xml: improvement of the man page
+	  by Daniel Leidert, c.f. #331779
+
+Sat Feb 11 13:10:01 CET 2006 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltutils.c: fix xsltSaveResultToString comment
+	* libxslt/transform.c: detect loops when computing variables, should
+	  fix bug #330772
+	* doc/xsltproc.xml doc/xsltproc.1: fix typo in man page
+	* tests/namespaces/tst7.out tests/general/bug-152.out: small output
+	  changes due to libxml2 xhtml meta handling modification
+
+Mon Nov 21 12:22:21 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/date.c: Albert Chin found another signed/unsigned problem
+	  in the date and time code raised on IRIX 6.5
+
+Mon Nov 21 12:08:05 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/crypto.c: patch from Albert Chin needed for HP-UX
+	  which doesn't have <sys/select.h>
+
+Mon Nov 21 12:05:41 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/date.c: Albert Chin posted a patch to fix a problem on
+	  Solaris with dates, extended bitfield size too to match libxml2
+	  code from xmlschemastypes.c
+
+Wed Nov 16 12:47:25 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/functions.c: fix an problem raised by Ralf Junker in the
+	  use of xmlHashScanFull() fixes bug #321582
+	
+Sun Nov  6 19:22:45 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attrvt.c: added a missing parameter to a debug function
+
+Tue Oct  4 20:37:09 HKT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/date.c: applied fix to date:week-in-year posted to
+	  the mailing list by Thomas Broyer
+	* tests/exslt/date/date.1.out, tests/exslt/date/datetime.1.out:
+	  updated to reflect above fix
+
+Sun Oct  2 11:52:44 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libxslt/Makefile.am libxslt/xsltconfig.h.in
+	  libxslt.spec.in tests/plugins/Makefile.am xslt-config.in: applied
+	  patch from Joel Reed to ease plugin integration
+
+Thu Sep 22 21:51:22 HKT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/pattern.c: fixed problem in internal XPath compilation
+	  of patterns including variables, fixes #316861
+
+Wed Sep 14 14:30:03 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: removed a superfluous second sorting of
+	  the node set on xsl:copy-of, fixes #316288
+	* libxslt/xsltutils.c: marked xsltDocumentSortFunction as slow,
+	  obsolete and deprecated :-)
+
+Sat Sep 10 14:35:06 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: check environment for PYTHON, fixes #315367
+
+Mon Sep  5 00:44:24 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in NEWS doc/*: preparing release 1.1.15
+	* libxslt/pattern.c libxslt/xsltutils.c: a bit more cleanup
+
+Mon Sep  5 00:07:40 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixed #303289 variable in match are forbidden
+	* tests/general/bug-89.xsl: had to fix that test which was doing this
+	* tests/general/bug-142.out tests/general/bug-152.out
+	  tests/namespaces/tst7.out: small output change on libxml2-2.6.21
+	  new way of serializing encoding meta in HTML
+
+Wed Aug 31 13:49:51 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixed #314936 a dictionnary issue on text
+	  node merging, which probably fixed #311267 too.
+
+Thu Aug 25 13:29:20 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xslt.c: libxslt should deallocate directly text node content
+	  use xmlSetNodeContent(..., NULL)
+
+Fri Aug 12 12:17:10 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* tests/general/bug-163.*, tests/general/Makefile.am,
+	  tests/docs/bug-163.*, tests/docs/Makefile.am: check fix for
+	  #310692
+
+Tue Aug  9 22:13:18 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* tests/plugins/Makefile.am: try to get rid of complaints from
+	  jhbuild newbies.
+
+Sun Aug  7 16:04:47 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltutils.c: fixed a bug when size of xmlXPathContext
+	  changes, uses the libxml2 alloc and dealloc functions instead.
+
+Tue Jul 13 22:41:03 PDT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: added check in xsltCopyText to assure
+	  content is in dictionary before doing a straight copy of
+	  content (bug 302821)
+
+Tue Jul 13 16:16:31 PDT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: fixed to set current default value for
+	  XInclude when creating new TransformContext
+	* libxslt/xslt.c: minor change for per-mille
+
+Sun Jul 10 16:17:53 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltwin32config.h*: try to avoid generating conflicts
+	* libexslt/dynamic.c: applied patch from Mark Vakoc to implement
+	  dyn:map
+	* configure.in tests/exslt/Makefile.am tests/exslt/dynamic/*:
+	  added test for dyn:map to the regression suite
+
+Sat Jul  2 02:32:24 PDT 2005 <wbrack at mmm.com.hk>
+
+	* libxslt/numbers.c: further fixes for bug 309209, changing
+	  behaviour of format-number.
+	* libxslt/xslt.c: changed definition of per-mille character from
+	  '?' to Unicode #2030 (UTF-8 '‰') (ref XSLT spec 12.3)
+	  
+2005-06-30  Federico Mena Quintero  <federico at ximian.com>
+
+	* libxslt/xsltwin32config.h: Added this file back.  We'll have to
+	figure out a way to make jhbuild not get CVS conflicts with it.
+
+Thu Jun 30 14:09:55 PDT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/numbers.c: fixed bug in negative prefix (bug 309209)
+	
+2005-06-17  Federico Mena Quintero  <federico at ximian.com>
+
+	* libxslt/xsltwin32config.h: Removed from CVS; this is a generated
+	file anyway and it breaks jhbuild all the time.
+
+Sat May  7 11:28:41 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/libexslt.3: applied patch from Jonathan Wakely to fix
+	  the namespace name for the EXSLT date and time functions in the man
+	  page.
+
+Wed Apr  6 23:58:12 CEST 2005 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* libexslt/exslt.c libexslt/libexslt.h: Windows build cleanups,
+	  removed obsolete checks
+	* libxslt/libxslt.h libxslt/win32config.h libxslt/xsltutils.h: 
+	  Windows build cleanups, removed obsolete checks
+	* win32/configure.js: removed obsolete copy operations
+	* win32/Makefile.*: make install cleanup
+	* xsltproc/xsltproc.c: Windows build cleanup, removed obsolete 
+	  macro definitions
+	* .cvsignore: added Eclipse project files
+
+Sat Apr  2 13:34:11 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in NEWS doc/*: preparing release of 1.1.14, updated docs
+	  and rebuilt.
+
+Thu Mar 31 23:50:43 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docbook/result/fo/gdp-handbook.fo tests/general/bug-105.out
+	  tests/general/bug-142.out: updated the result of some tests
+	  following the change to serailization in libxml2.
+
+Thu Mar 31 11:54:31 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixed bug #171488 with cascading select in
+	  patterns.
+	* tests/general/bug-161.*, tests/general/Makefile.am,
+	  tests/docs/bug-161.*, tests/docs/Makefile.am: added test provided
+	  by Ben Ko
+	
+Thu Mar 31 00:28:38 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* tests/plugins/Makefile.am: fixed build outside of source tree
+	  bug #172155 thanks to patch from Mike Castle
+
+Wed Mar 30 14:09:19 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: fixed the xinclude problem with document()
+	  as in bug #171893
+	* configure.in tests/Makefile.am tests/xinclude/*: added a new
+	  xinclude directory with the test for this problem
+
+Wed Mar 30 11:59:06 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixed bug 169718 with ancestors in patterns
+	  similar to same bug fixed in libxml2
+	* tests/general/bug-160.*, tests/general/Makefile.am,
+	  tests/docs/bug-160.*, tests/docs/Makefile.am: added test provided
+	  by Aaron Kaplan
+
+Tue Mar 29 22:35:14 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* tests/general/bug-159.*, tests/general/Makefile.am,
+	  tests/docs/bug-159.*, tests/docs/Makefile.am: added test for
+	  bug #168196 fixed in libxml2
+
+Tue Mar 29 21:06:11 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: working around Mark Vakoc' reported bug related
+	  to mode internaing
+	* xsltproc/xsltproc.c: adding a --nodict mode to check problems with
+	  document without a dictionnary.
+	* tests/REC/Makefile.am tests/general/Makefile.am: testing without 
+	  dictionnary
+
+Tue Mar 29 15:37:13 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xslt.c: fix bug #165201 when calling xsltInit() multiple
+	  times.
+
+Tue Mar 29 15:13:59 CEST 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/preproc.c libxslt/xslt.c libxslt/xsltInternals.h: 
+	  added DTD like checking when compiling stylesheets, closes
+	  bug #160402 and a long term TODO
+	* tests/general/bug-89.xsl: thos spotted a misconstruct of one
+	  of the test cases where <xsl:when> was not within <xsl:choose>
+
+Mon Mar 21 20:56:43 MST 2005 John Fleck (jfleck at inkstain.net)
+
+	* doc/xsltproc.xml, xsltproc.html, xsltproc.1:
+	update documentation to reflect addition of --nodtdattr
+	command line flag. Bug #171098
+
+Wed Mar 16 17:19:24 HKT 2005 William Brack (wbrack at mmm.com.hk)
+
+	* libxslt/xslt.c: fixed problem with text node on stylesheet
+	  document without a dictionary (bug 170533)
+
+Sun Mar 13 20:08:34 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* NEWS configure.in doc/*: preparing 1.1.13, updated and rebuilt
+	  the docs.
+	* tests/plugins/Makefile.am xsltproc/Makefile.am: trying to fix
+	  some build problems.
+	* libxslt.spec.in: adding a build require and a require for 
+	  libgcrypt-devel, c.f. Red Hat bug #133211
+	* libxslt/xsltInternals.h: as for libxml2, XML_CAST_FPTR was wrong.
+
+Wed Feb 23 19:25:13 HKT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/pattern.c: fixed a problem with '//' and
+	  namespaces (bug 168208)
+
+Mon Feb 14 23:10:21 HKT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/namespaces.c: fixed a problem with
+	  exclude-result-prefixes (bug 165560)
+
+Mon Feb 14 12:51:07 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/variables.c: added a cretion of ctxt->globalVars in
+	  xsltProcessUserParamInternal if missing.
+
+Wed Feb  9 21:58:56 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* doc/Makefile.am doc/libxslt-api.xml doc/libxslt-refs.xml 
+	  doc/EXSLT/libexslt-api.xml: applied patch for make wiki from
+	  Joel Reed and rebuild
+	* tests/plugins/Makefile.am: fix from Joel Reed for make dist
+
+Sun Jan 30 20:01:21 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* tests/plugins/testplugin.c win32/Makefile.msvc win32/configure.js:
+	  applied plugin patch for Windows by Joel Reed
+
+Fri Jan 28 01:00:56 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* win32/configure.js: Makefile fixes for Widows from Joel Reed
+
+Sat Jan 22 22:14:26 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c libxslt/preproc.c libxslt/templates.c
+	  libxslt/xslt.c libxslt/xsltInternals.h: chasing xmlStrEqual
+	  calls and removed them when comparing mode and modeURI for
+	  templates by interning those strings when compiling the
+	  stylesheets.
+
+Sat Jan 22 19:17:13 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: small fix for local setup
+	* libxslt/transform.c libxslt/variables.c : speeding up some
+	  variable lookup. In the process dug out something nasty about
+	  ctxt->dict creation and key initialization order.
+
+Sat Jan 22 16:28:27 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/templates.c libxslt/transform.c libxslt/xslt.c
+	  libxslt/xsltInternals.h: when copying text nodes in elements
+	  or attributes to the output, if interning, then reuse the strings
+	  directly without copying them in the output tree if dicts are
+	  shared between the context and the output docs. Less allocations
+	  smaller output document and no copying involved anymore.
+
+Sat Jan 22 11:24:43 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xslt.c: internalize all text node content from
+	  stylesheet documents with the stylesheet dictionnary
+
+Fri Jan 21 12:04:18 HKT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* tests/plugins/Makefile.am: Applied patch 11 (with small
+	  modification) from Joel
+
+Thu Jan 20 21:05:27 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* tests/plugins/Makefile.am tests/plugins/testplugin.c: applied
+	  patch 10 from Joel Reed
+
+Wed Jan 19 10:08:55 HKT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xsltwin32config.h, libxslt/xsltwin32config.h.in:
+	  fixed a small error in LIBXSLT_VERSION_EXTRA pointed out
+	  by Michael.Hewarth on the mailing list
+	 
+Wed Jan 19 13:58:16 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: patch #9 from Joel Reed
+
+Wed Jan 19 10:21:37 HKT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* transform.c: fixed problem with parserOptions not being
+	  set before loading a new document (bug 164530)
+
+Mon Jan 17 16:50:02 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libxslt/Makefile.am libxslt/xsltwin32config.h
+	  tests/Makefile.am tests/plugins/Makefile.am
+	  tests/plugins/testplugin.c: applied another patch from Joel Reed
+	  still failing here but looking better
+
+Sun Jan 16 00:09:11 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.c: applied another patch from Joel Reed
+
+Sat Jan 15 13:54:28 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* tests/plugins/plugin.* tests/Makefile.am libxslt/extensions.c
+	  libxslt/Makefile.am configure.in: Applied another patch from
+	  Joel Reed, fixed a segfault and changed the configure code
+	  a bit to work in my debug environment.
+
+Tue Jan 11 10:50:33 HKT 2005 William Brack <wbrack at mmm.com.hk>
+
+	* configure.in: added python2.4 to the list of accepted
+	  versions (bug 163274)
+
+Sun Jan  9 17:04:23 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.c: oops previous patch could break build
+
+Sun Jan  9 16:41:59 CET 2005 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in win32/configure.js libxslt/extensions.c
+	  libxslt/xsltconfig.h.in libxslt/xsltwin32config.h.in:
+	  integrated the module patch from Joel Reed with just a couple
+	  of changes and cleanup.
+
+Tue Dec 27 17:50:10 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/pattern.c: fixed a problem with the expression
+	  "*//name" (bug 162265), also a small problem with the '|'
+	  operator.
+
+Thu Dec 23 16:04:47 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c, libxslt/templates.c: fixed a couple of
+	  spots where out-of-memory errors were not detected in time
+	  (bug #153660 on OSF/1)
+	  
+Thu Dec  2 21:10:31 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	*doc/xslt.html, doc/downloads.html: changed the download link
+	 on the web page for cvs snapshot
+	 
+Wed Dec  1 22:37:55 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/extensions.c, libxslt/functions.c, libxslt/numbers.c,
+	  libxslt/pattern.c, libxslt/transform.c, libxslt/xslt.c,
+	  libxslt/xsltInternals.h: minor changes to get rid of gcc
+	  warnings, especially on 64-bit system. Implemented
+	  XML_CAST_FPTR macro to cast between function pointer <->
+	  object pointer while avoiding gcc warnings (a hack).
+	  No change to the logic.
+
+Wed Dec  1 10:47:15 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/security.c xsltproc/xsltproc.c: applied patch from
+	  Aleksey Gurtovoy moving some stat() definition for Windows
+	  to the right place.
+
+Wed Dec  1 14:30:22 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xslt.c: applied patch from Mark Vakoc fixing bug with
+	  namespace URI on template names.
+	* tests/namespaces/tst9*, tests/namespaces/Makefile.am: added
+	  test case for this
+
+Tue Nov 30 10:53:18 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/pattern.c: more on RVT's in XPath predicates, this
+	  time for bug 159726.  Cleaned up the logic a little, hopefully
+	  now covers all setting of XSLT_RUNTIME_EXTRA.
+	* tests/general/bug-158.xsl: corrected a typo
+
+Thu Nov 25 22:24:03 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/variables.c, libxslt/xsltInternals.h: backed out the
+	  last change and re-did it the "right way" (bug 158372).
+	* tests/general/bug-158.*, tests/general/Makefile.am,
+	  tests/docs/bug-158.*, tests/general/Makefile.am: added test
+	  case for this bug
+
+Wed Nov 24 10:51:51 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/variables.c, libxslt/xsltInternals.h: enhanced the
+	  evaluation of global variables to take account of possible
+	  changes to the current document (bug 158372).
+	  
+Mon Nov 22 08:10:18 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/pattern.c: small change to previous fix for bug 153137,
+	  fixes bug 158840.
+	* tests/general/bug-157.*, tests/general/Makefile.am,
+	  tests/docs/bug-157.*, tests/docs/Makefile.am: added test for this
+
+Sun Nov 21 09:42:22 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: enhanced code to assure the "current
+	  template rule" is not changed by xsl:call-template (bug 157859).
+	* tests/general/bug-156.*, tests/general/Makefile.am,
+	  tests/docs/bug-156.*, tests/docs/Makefile.am: added a test case
+	  
+Mon Nov  8 11:41:32 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/date.c: fixed problem with day-of-week-in-month
+	  (bug 157592) with patch from Sal Paradise
+	* tests/exslt/date/datetime.1.out: corrected expected output
+	  after above fix
+
+Mon Nov  1 15:57:24 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* tests/general/bug-155.*, tests/general/Makefile.am,
+	  tests/docs/bug-155*, tests/docs/Makefile.am: added a test case
+	  provided by Markus Bertheau breaking on libxml2-2.6.15
+
+Fri Oct 29 17:03:26 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in NEWS doc/*: preparing release of libxslt-1.1.12
+	* libexslt/crypto.c: mini change to avoid breaking apibuild.py
+	* libxslt/templates.c: small fix, first step in adressing #153660
+
+Fri Oct 29 14:18:35 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* doc/xsltproc.1 doc/xsltproc.xml: indicate - means stdin closing
+	  #156626
+
+Wed Oct 27 17:00:54 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: another dictionnary/string interning fix
+
+Wed Oct 27 00:00:07 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fix to force string interning on generated
+	  documents
+
+Sat Oct 23 09:36:12 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/crypto.c, libexslt/functions.c, libxslt/keys.c,
+	  libxslt/numbers.c, libxslt/pattern.c, libxslt/transform.c,
+	  libxslt/variables.c: changed some variable names for warning
+	  cleanup when -ansi flag is not present.
+	* libxslt/namespaces.c: fixed potential NULL pointer reference
+	  pointed out by Dennis Dams (bug 156187)
+
+Mon Oct 18 17:04:27 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.spec.in doc/Makefile.am: fix for RedHat bug #136072
+	  to include EXSLT doc in libxslt package.
+
+Thu Oct 14 22:43:22 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* configure.in, config.h.in, libexslt/date.c: changed date.c to use
+	  gmtime_r if available (bug 129983)
+	* libexslt/functions.c: fixed a namespace problem concerning a
+	  function with a namespace-qualified name (bug 155197)
+
+Tue Oct 12 03:54:44 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/namespaces.c: fixed a bug in namespace lookup exhibited
+	  by the recent namespace tests in libxml2
+
+Thu Oct  7 16:15:15 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixed a problem of tree structure raised
+	  by the new libxml2 tree checking code.
+
+Thu Sep 30 11:28:03 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/date.c: fixed problem with negative periods
+	  (bug 154021)
+	* tests/exslt/date/sum.2.out: changed expected output, now
+	  agrees with comments in sum.2.xml test data file
+	  
+Thu Sep 30 08:19:28 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/templates.c: patch from Mark Vakoc about an incorrect
+	  attribute document pointer.
+
+Thu Sep 30 08:13:57 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* doc/tutorial2/libxslt_pipes.*: updated the tutorial from Panagiotis
+	  Louridas
+
+Thu Sep 30 00:10:09 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in doc/*: release of 1.1.11, rebuilt the docs
+
+Wed Sep 29 15:42:33 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: try to fix #153137 but without a test case
+	  it's shooting in the dark.
+
+Tue Sep 28 16:20:48 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* doc/tutorial2/libxslt_pipes.*: New tutorial from Panagiotis Louridas
+	* libxslt.spec.in doc/Makefile.am: integrated the tutorial in the
+	  distribution
+
+Sat Sep 25 21:38:57 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/preproc.c libxslt/variables.c: fixed 2 leaks with
+	  namespaced variable names.
+	* tests/general/bug-154.*, tests/general/Makefile.am,
+	  tests/docs/bug-154*, tests/docs/Makefile.am: added test case
+	  for above
+
+Fri Sep 24 18:13:45 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am: add missing variable
+	* libxslt/transform.c: fixed some error callback data
+	* tests/exslt/date/Makefile.am tests/exslt/date/sum*: added new
+	  date:sum testing from Derek Poon
+
+Fri Sep 24 09:17:22 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/date.c: fixed problem with empty sets, etc.
+	  (see discussion on mailing list)
+
+Sat Sep 18 17:08:31 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/date.c: fixed problem with timezone offset
+	  (bug 153000)
+	* tests/exslt/date/add.1.out: changed regression test output,
+	  which was apparently incorrect for above case
+
+Sat Sep 18 00:04:02 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: re-arranged sequence of setting up
+	  namespaces within xsltCopyTree (see the list thread
+	  http://mail.gnome.org/archives/xml/2004-September/msg00072.html)
+	* tests/general/bug-104.out: slight change to expected output
+	  due to above fix
+
+Fri Sep 17 23:15:33 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/date.c: enhanced validation of date-time to catch
+	  bit-field overflow (bug 152836)
+	* tests/exslt/date/date.2.*, tests/exslt/time.2.*: added test
+	  cases for above
+
+Tue Sep  7 18:04:55 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/numbers.c: further refinement to UTF8 pattern
+	  separator (bug 151975)
+
+Tue Sep  7 00:14:12 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/numbers.c: fixed problem with UTF8 pattern
+	  separator (bug 151975)
+
+Mon Sep  6 14:27:38 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/imports.c, libxslt/xslt.c, libxslt/xsltInternals.h:
+	  fixed 2 problems with xsl:include (bug #151795)
+
+Tue Aug 31 15:45:42 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* NEWS configure.in doc/*: Release of libxslt-1.1.10
+
+Tue Aug 31 11:41:11 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* doc/xsltproc.1 doc/xsltproc.xml: added missing descriptions
+	  for --path as well as --load-trace, fixes Red Hat bug #106545
+
+Fri Aug 27 20:52:52 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/keys.c: fixed small problem with key initialisation
+	  disturbing the transformation context (bug 151201).
+	* tests/general/bug-153.*, tests/general/Makefile.am,
+	  tests/docs/bug-153*, tests/docs/Makefile.am: added test case
+	  for above
+
+Tue Aug 24 16:40:51 CEST 2004 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* win32/configure.js: added support for version extra
+
+Mon Aug 23 16:53:02 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/date.c libxslt/imports.c libxslt/xslt.c: fixing 
+	  compilation problems on Solaris #150844
+
+Sun Aug 22 17:19:49 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in NEWS doc/*: preparing release of 1.1.9
+
+Sat Aug 21 22:08:14 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* transform.c: Further enhancement for keys on exslt:node-sets.
+	  Corrects a rather serious timing problem (bug 150741)
+	* tests/exslt/common/node-set.8.*: added regression test for this
+
+Fri Aug 20 18:53:50 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am configure.in: a bit of cleanup and a extra variable for
+	  CVS dist
+
+Fri Aug 20 11:30:19 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/imports.c: fix a 64bit bug reported by Andreas Schwab
+
+Wed Aug 18 14:27:18 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* configure.in libxslt/xsltconfig.h.in libxslt/xslt.c
+	  libxslt/xsltwin32config.* libexslt/exsltconfig.h.in
+	  libexslt/exslt.c: added some code to include the CVS
+	  ChangeLog version in the version strings available for
+	  printing (e.g. by xsltproc)
+
+Wed Aug 18 00:22:00 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: implemented --nodtdattr to avoid defaulting
+	  DTD attributes, RFE 150311 . Also cleanup the code from all
+	  libxml2 pre 2.6.0 specific code since we are using 
+	  LIBXML_REQUIRED_VERSION=2.6.8 in configure.in
+
+Tue Aug 17 01:01:22 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/documents.c libxslt/documents.h libxslt/imports.c
+	  libxslt/xslt.c libxslt/xsltutils.c: Implemented a hook to
+	  provide document loading as suggested by David Hyatt for
+	  Safari
+
+Mon Aug 16 12:53:55 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: added a call to xmlXPathOrderDocElems
+	  in xmlNewTransformContext for the principal document (bug 133289)
+
+Sat Aug 14 21:49:48 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/namespaces.[ch], transform.c, xslt.c, xsltInternals.h:
+	  fixed handling of #default in namespace-alias for default
+	  namespace (bug 149659)
+	* tests/namespaces/tst7.* tst8.*: added regression tests for above
+
+Fri Aug  6 11:05:31 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/date.c: added date:sum routine supplied by Joel
+	  Reed
+
+Wed Aug  4 00:04:13 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* doc/downloads.html doc/xslt.html: fixed a couple of problems
+	  reported by Oliver Stoeneberg
+		
+Mon Aug  2 08:48:03 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/documents.c, libxslt/functions.c, libxslt/transform.c,
+	  libxslt/variables.c: added code to assure keys are generated
+	  when needed for node-sets (bug 148773)
+	* tests/exslt/common/node-set.7.* - added test case for above.
+
+Mon Jul 26 17:03:22 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/strings.c: fixed str:tokenize for case when 2nd
+	  argument is an empty string (should produce a token for
+	  each char in the string).  Reported on the mailing list by
+	  Peter Pawlowski.
+
+Fri Jul 23 21:55:14 PDT 2004 William Brack <wbrack at mmm.com.hk>
+	* libxslt/imports.c: further enhancement for template priorities
+	  on imported stylesheets (better fix for bug 141279, fixes
+	  bug 148246).
+
+Fri Jul 16 12:14:57 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libexslt/crypto.c libexslt/exslt.[ch] 
+	  libexslt/exsltconfig.h.in win32/configure.js: apply patch from
+	  Rob Richards to add a normal --with-crypto configure option.
+
+Tue Jul 13 22:57:43 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/functions.c: added some logic to xsltKeyFunction
+	  to set the transform context doc ptr when the xpath context
+	  doc is different (bug 147445)
+	* tests/exslt/common/Makefile.am, tests/exslt/common/node-set.5*
+	  and tests/exslt/common/node-set.6*: added regression tests
+	  for bug 145547 (UNION and FILTER for RVT's)
+
+Mon Jul 12 08:28:07 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* python/libxslt-python-api.xml: fixed type for doctypeSystem
+	  and doctypePublic (problem reported on the list by Sitsofe
+	  Wheeler)
+	* doc/libxslt-api.xml: updated database.
+
+Sun Jul 11 22:46:31 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* transform.c: small change to key handling for RVT, needed
+	  because of enhancement to libxml2 xpath.
+
+Fri Jul  9 02:51:38 PDT 2004 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxsl.py: fixes Python on 64bits box problem.
+
+Tue Jul  6 18:43:37 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.spec.in: better python dependancy Red hat bug #126364
+	  by Robert Scheck
+
+Tue Jul  6 21:35:44 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* tests/namespaces/Makefile.am: added extra2.err, tst5.xml,
+	  tst5.xsl and tst.out to EXTRA_DIST
+
+Mon Jul  5 21:48:13 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in doc/*: releasing 1.1.8
+
+Sun Jul  4 24:18:12 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* xsltproc/Makefile.am: changed the sequence of LD_ADDS and
+	  LIBGCRYPT_LIBS on xsltproc_LDADD.  Previously this was
+	  causing the wrong libs to be linked when using the configure
+	  option --with-libxml-libs-prefix, or --with-libxml-src (nasty)
+
+Sun Jul  4 21:42:48 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/Makefile.am: implemented change from Joel Reed for
+	  automake-1.4 compatibility.
+	* libexslt/crypto.c: reformatted source to remove an overly
+	  generous supply of tabs.  Added a #include for sys/select to
+	  fix a compilation error caused by the gcrypt include file's
+	  usage of 'fd_set'.  Made some minor changes to fix
+	  some warning messages (no change to the logic).
+	* configure.in, config.h.in: added test for presence of
+	  sys/select.h.
+	  Added test for libgcrypt version > 1.1.41 (bug 145245)
+	  
+Sat Jul  3 17:52:27 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* doc/xslt.html, doc/extensions.html: corrected the URI for libxslt
+	  namespace, also a small enhancement of the surrounding text on
+	  extension functions. (bug 145250)
+	  
+Fri Jul  2 15:51:49 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: convenience change
+	* python/libxsl.py python/libxslt-python-api.xml python/libxslt.c:
+	  try to avoid calling libxml2 cleanup function directly but go
+	  though the python wrapper of libxml2 for memory debug accounting.
+
+Fri Jul  2 16:24:12 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/keys.c: added namespace setup before calling XPath
+	  to evaluate key (Bug 143520)
+
+Thu Jul  1 10:07:55 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: added coding to xsltCopyTree to copy
+	  namespaces (bug 139578).
+	* tests/general/bug-128.out: changed to reflect above fix
+	* libxslt/xslt.c: minor change to an error message
+
+Wed Jun 30 18:41:20 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* win32/Makefile.msvc win32/Makefile.mingw libexslt/Makefile.am
+	  libexslt/exslt.c libexslt/exslt.h config.h.in configure.in
+	  libexslt/crypto.c: applied patch from Joel Reed to get EXSLT
+	  crypto extensions based on libgcrypt if found at configure time.
+	* tests/namespaces/Makefile.am: fixed a small breakage
+
+Wed Jun 30 12:28:34 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/namespaces: some enhancement for fixing bug 142768
+	* tests/namespaces/Makefile.am, tests/namespaces/tst6*:
+	  added regression test for this bug
+
+Tue Jun 29 09:23:03 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am examples/xsltICUSort.c: seems I never commited to CVS
+	  the example from Richard Jinks
+
+Wed Jun  9 16:33:56 CEST 2004 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* win32/configure.js win32/Makefile.* minor changes for the new
+	  layout of the Windows binary package
+
+Wed May 26 10:51:22 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* doc/search.php.inc, doc/search/php: enhanced to remove
+	  forcing module names to lower case, and to fix problem
+	  with links between pages in libxml2 directory.
+
+Mon May 24 12:46:10 HKT 2004 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* win32/makefile.msvc, win32/configure.js: included the cruntime 
+	  option, contributed by Oliver Stoeneberg
+
+Mon May 24 08:37:22 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xsltutils.c: fixed bug in error message printing
+	  for undefined namespace (bug 143004)
+
+Mon May 17 23:08:42 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* NEWS doc/*: updated for 1.1.7
+
+Mon May 17 06:14:09 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: release of libxslt-1.1.7
+
+Sun May 16 23:08:05 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* tests/general/bug-151*, tests/docs/bug-151.xml,
+	  tests/general/Makefile.am, tests/docs/Makefile.am: added
+	  regression test for old bug #127877
+
+Sun May 16 20:48:35 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixing bug #135542 about the DOCTYPE name
+	  being generated when the root element is namespaced 
+	* tests/general/bug-151*, tests/docs/bug-151.xml,
+	  tests/general/Makefile.am, tests/docs/Makefile.am: added
+	  regression test for bug #135542
+
+Sun May 16 19:39:44 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/namespaces.c libxslt/namespaces.h libxslt/templates.c
+	  libxslt/transform.c: fixing bug #134500 on namespace lookup for
+	  attribute which sometimes lead to default namespace
+	* tests/general/bug-150*, tests/docs/bug-150.xml,
+	  tests/general/Makefile.am, tests/docs/Makefile.am: added
+	  regression test for bug #134500
+
+Sun May 16 18:09:36 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/date.h: fixing a small portability problem on Solaris
+	  for the declaration of localtime_r bug #140468
+
+Sun May 16 16:36:38 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.m4: applied patch from Edward Rudd to fix the problems
+	  raised in bug #142429
+	  
+Sun May 16 11:01:52 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xslt.c: fixed a weird namespace bug #141532
+	* tests/docs/Makefile.am tests/docs/bug-14[89].xml
+	  tests/general/Makefile.am tests/docs/bug-14[89]*: added tests
+	  to the regression for bug #141532
+
+Sun May  2 23:47:43 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/imports.c: added comments and function header,
+	  improved logic of routine just added.
+	* tests/general/bug-147*, tests/docs/bug-147.xml,
+	  tests/general/Makefile.am, tests/docs/Makefile.am: added
+	  regression test for bug 141279
+
+Sun May  2 12:47:32 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/imports.c: enhanced normalization of comp steps
+	  when an imported stylesheet has it's own imports
+	  (bug 141279)
+
+Sat May  1 10:35:03 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: added code to recognize
+	  disable-output-escaping on certain text nodes (bug 140755)
+	* tests/general/bug-100.out: regenerated to account for change
+	  from next ChangeLog entry (bug 140558)
+
+Wed Apr 28 18:17:24 PDT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xsltutils.c: suppressed any automatic linefeed after
+	  a comment following the document root element (bug 140558)
+
+Thu Apr 22 08:38:35 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fix a problem where we updated an
+	  ELEMENT node psvi field as if it was a DOCUMENT one, leading
+	  to a subtle crash later, valgrind rules.
+
+The Apr 20 00:22:37 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/strings.c: fixed bug in UTF8 string tokenize
+	  kindly reported by Vasily Tchekalkin
+
+Mon Apr 19 00:39:18 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in doc/*: preparing release 1.1.6
+	* libxslt.spec.in: keep the ChangeLog compressed 
+
+Mon Apr  5 15:23:53 CEST 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/keys.c: fixed a stupid cut'npaste bug #139132
+	* tests/docs/Makefile.am tests/docs/bug-146.xml
+	  tests/general/Makefile.am tests/docs/bug-146*: added test
+	  to the regression for bug #139132
+
+2004-04-02 10:17:23 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/keys.c: applied patch from Mark Vakoc to fix problem
+	  with key matching attribute node.
+
+2004-04-01  Johan Dahlin  <johan at gnome.org>
+
+	* python/.cvsignore: Add generated files, to make cvs silent.
+
+	* .cvsignore: Add missing libexslt.pc and stamp-h1
+
+Tue Mar 23 13:13:56 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: prepare release of 1.1.5, made a hard dependancy
+	  to libxml2 2.6.8 due to the dictionnary reference counting change
+	* doc/*: updated and rebuilt the doc.
+	* tests/namespaces/Makefile.am: fixed a build problem (tst5 ?)
+
+Mon Mar 22 20:25:41 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltconfig.h.in: small fix for OpenVMS
+	* libxslt/documents.c: fixed a leak associated to the change
+	  in reference counting when running the XML parser and using
+	  the document() function.
+
+Wed Mar 17 18:49:55 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* xsltproc/xsltproc.c: added check for state XSLT_STATE_STOPPED
+	  when output file is used (bug 137341)
+	  
+Tue Mar 16 08:55:18 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xsltutils.c: corrected my error from bug 135938
+	  pointed out on the mailing list by Mark Vakoc.
+	* libxslt/transform.c: enhanced the error message for
+	  call-template when namespace is present.
+	* tests/general/bug-145.err: regenerated for new message
+
+Fri Mar 12 13:07:03 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/namespaces.c: added additional check to prevent
+	  superfluous namespace href's being generated on elements
+	  (bug 136914)
+	* tests/namespaces/Makefile.am, tests/namespaces/tst5.x[ms]l:
+	  added new test for bug 136914
+	* tests/namespaces, tests/extensions/ tests/reports: fixed
+	  error in "enhanced" Makefile.am, removed superfluous .err files
+	  from cvs
+
+Wed Mar 10 19:27:39 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* doc/search.php.incl: minor addition for later version of php
+	  requiring $HTTP_GET_VARS.
+	  doc/*: rebuilt the docs
+
+Wed Mar 10 17:14:13 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/strings.c: modified the 'tokenize' routine to work with
+	  UTF8 chars in both string and tokens (Bug 136183)
+
+Tue Mar  9 23:44:31 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/attrvt.c: added coding to allow growing the
+	  AVT structure when a large number of segments are present
+	  (bug 136624)
+	* libxslt/keys.c: fixed a compilation warning (no logic change)
+
+Sat Mar  6 23:42:47 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* tests/docbook/Makefile.am: small fix to typo
+
+Sat Mar  6 23:05:11 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* Makefile.am, tests/Makefile.am, tests/REC/Makefile.am,
+	  tests/REC1/Makefile.am, tests/REC2/Makefile.am,
+	  tests/XSLTMark/Makefile.am, tests/docbook/Makefile.am,
+	  tests/exslt/common/Makefile.am, tests/exslt/date/Makefile.am,
+	  tests/exslt/functions/Makefile.am, tests/exslt/math/Makefile.am,
+	  tests/exslt/sets/Makefile.am, tests/exslt/strings/Makefile.am,
+	  tests/extensions/Makefile.am, tests/general/Makefile.am,
+	  tests/keys/Makefile.am, tests/multiple/Makefile.am,
+	  tests/namespaces/Makefile.am, tests/numbers/Makefile.am,
+	  tests/reports/Makefile.am, test/xmlspec/Makefile.am,
+	  tests/general/bug-60.err, tests/docbook/result/html/gdp-handbook.err,
+	  tests/REC/test-2.5-1.err:
+	  Major enhancement to "make tests". All but Python tests
+	  cleaned up to produce minimum summary output if no problems.
+	* tests/general/bug-145.xsl, tests/general/bug-145.err,
+	  tests/docs/Makefile.am, tests/docs/bug-145.xml:
+	  Added test case for bugzilla bug 135938
+	  
+Thu Mar  4 23:02:18 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xsltutils.h, libxslt/xsltutils.c, libxslt/preproc.c:
+	  fixed problem with dictionary handling (bug 135938).
+	* doc/EXSLT/*: fixed a few more "href_base" files.
+
+Wed Mar  3 21:33:33 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* doc/*, doc/html/*, doc/EXSLT/*: rebuilt the docs to fix
+	  the "href_base" problem.
+
+Fri Feb 27 01:04:47 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* configure.in, config.h.in: added test for localtime_r
+	* libexslt/date.c: added usage of localtime_r if present on
+	  system (bug 129983, suggested by Vasily Tchekalkin)
+
+Thu Feb 26 16:59:45 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/keys.c libxslt/pattern.c: removed the last use
+	  of _private that time in the input document, use the psvi
+	  field again, this may be interesting if XSLT2 support gets
+	  in but since this is very unlikely ...
+
+Thu Feb 26 16:04:28 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c libxslt/variables.c: use the psvi field
+	  of teh document used for RVT instead of _private. 
+
+Thu Feb 26 15:17:52 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attrvt.c libxslt/templates.c: use the psvi field of
+	  the attribute instead of the _private one to compile AVT infos
+
+Thu Feb 26 14:53:16 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-144.xml
+	  tests/general/Makefile.am tests/docs/bug-144*: added test
+	  similar to 143 but checking for AVT in local variables.
+	
+Thu Feb 26 13:16:33 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attrvt.c libxslt/variables.c: fixed a regression for
+	  AVT found in global variable content.
+	* tests/docs/Makefile.am tests/docs/bug-143.xml
+	  tests/general/Makefile.am tests/docs/bug-143*: added test
+	  to the regression suite.
+
+Wed Feb 25 16:35:01 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attributes.c libxslt/keys.h libxslt/preproc.c 
+	  libxslt/transform.c libxslt/variables.c libxslt/xsltutils.c:
+	  First step toward _private cleanup: use the psvi field to store
+	  the precompilation informations in the stylesheet nodes.
+
+Wed Feb 25 14:24:34 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/variables.c: trying to use the fact that names comes
+	  from a dictionnary when looking up for variables.
+	* tests/documents/Makefile.am: try to fix an error reported on
+	  the list.
+
+Wed Feb 25 17:02:22 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* tests/general/Makefile.am, tests/general/bug-142.xsl,
+	  tests/general/bug-142.out, tests/docs/Makefile.am,
+	  tests/general/bug-142.xml: added test for language
+	  attribute which previously triggered a memory leak
+	  (from list report by Mike Hommey)
+
+Mon Feb 23 18:01:44 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* NEWS configure.in doc/*: preparing release 1.1.4, updated and
+	  regenerated the documentation
+
+Tue Feb 24 00:37:28 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xsltutils.c, libxslt/templates.c, libxslt/preproc.c:
+	  minor changes to eliminate compilation warnings.  No change
+	  to logic.
+
+Sun Feb 22 23:59:12 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/exsltexports.h libxslt/xsltexports.h: patches from
+	  Mikhail S Grushinskiy to compile on Mingw
+
+Sat Feb 21 16:47:04 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* win32/Makefile.msvc: patch from Mark Vadoc for attrvt.c
+
+Wed Feb 18 13:32:55 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.c: applied patch from Steve Little to 
+	  display the extension modules.
+
+Wed Feb 18 11:40:23 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: trying to fix an extension regression pointed
+	  out on the list.
+
+Tue Feb 17 12:20:26 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: try to fix the problem with yelp
+	  and dictionnaries
+
+Tue Feb 17 11:29:15 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/templates.c: applied patch from #134588 provided by
+	  Mariano Suárez-Alvarez, attribute text node without doc.
+
+Mon Feb 16 15:55:57 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in, doc/*: updated and rebuilt the documentation
+	  preparing release of 1.1.3
+	* libxslt/attrvt.c libxslt/xsltInternals.h: cleanup
+
+2004-02-15  Tomasz KÅ‚oczko <kloczek at pld.org.pl>
+
+	* libxslt.m4: small fix: added missing [] quotation macro name
+	  defined in AC_DEFUN(). Fix is neccessary for aclocal from automake
+	  1.8.x and is backward compatible with older auto tools.
+
+Sun Feb 15 23:01:09 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attrvt.c libxslt/templates.c: removed the two last
+	  known bug with the new code, was overoptimizing a bit...
+
+Sun Feb 15 19:57:20 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attrvt.c: found the memory leak shown in DocBook,
+	  mostly an error handling some ATV coupled with doctionnaries
+	  reference counting.
+	* libxslt/documents.c libxslt/transform.c libxslt/variables.c
+	  libxslt/xslt.c: added a bit of debug to be able to trace 
+	  dictionnaries.
+
+Fri Feb 13 16:59:46 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attrvt.c libxslt/Makefile.am: added new code to handle
+	  attribute value templates
+	* libxslt/*.c libxslt/*.h: also a lot of work to reuse the 
+	  dictionaries at the stylesheet and transformation level.
+	* configure.in: this relies on a recent version of libxml2 
+	  with the sub dictionnary catalog.
+
+Sun Feb  8 16:53:14 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: added check for "?>" in PI content
+	  (Bug 133726)
+
+Sat Jan 31 02:43:45 PST 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/namespaces.c: fixed problem with attribute
+	  namespace (Bug 132953)
+
+Thu Jan 29 14:47:22 PST 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: added check for "--" or ending '-'
+	  in xsl:comment (Bug 132742)
+
+Thu Jan 29 14:08:31 PST 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c, libxslt/attributes.c: added
+	  validation of QName for xsl:element and xsl:attribute
+	  (Bug 132531)
+
+Fri Jan 23 18:52:22 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/pattern.c: changed priority of template patterns
+	  starting with '//' from 0.0 to 0.5 (Bug 131705)
+
+Thu Jan 22 18:42:03 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xslt.c: applied patch from Stefan Kost to fix
+	  behaviour on unknown element from the XSLT namespace.
+	* python/generator.py: applied patch from Stephane bidoul
+	  to export enums in the bindings.
+
+Thu Jan 22 10:35:14 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* tests/general/Makefile.am, tests/general/bug-141.out,
+	  tests/general/bug-141.xsl, tests/docs/Makefile.am,
+	  tests/general/bug-141.xml: added test case for
+	  Bug 13971 (libxml2 xpath.c bug, but tested here)
+
+Fri Jan 16 22:15:34 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xsltutils.c: added a newline for any comment before
+	  the root element (Bug 130433)
+	* libxslt/xslt.c: fixed problem with cdata-section-elements when
+	  default namespace is changed (Bug 130793)
+	* tests/extensions/module.out, tests/general/bug-100.out: adjusted
+	  for newline after comment change above.
+	* tests/general/Makefile.am, tests/general/bug-140.xsl,
+	  tests/general/Makefile.am, tests/docs/bug-140.xml: added test for
+	  cdata-section-elements problem.
+
+Wed Jan 14 16:44:58 CET 2004 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxsl.py: applied shared lib loading patch for OS X from
+	  Gianni Ceccarelli
+
+Wed Jan 14 14:28:02 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/math.c, libexslt/common.c: fixed problem,
+	  reported on the list by Markus Bayerlein, concerning
+	  math functions on nodesets generated with
+	  exslt:node-set
+	* tests/exslt/math/max.3.xsl, tests/exslt/math/max.3.xml,
+	  tests/exslt/math/max.3.out, tests/exslt/math/Makefile.am:
+	  added test case for above.
+
+Tue Jan 13 00:33:50 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: changed to assure comment which
+	  preceeds root node is output after DTD (Bug 130433)
+	* test/exslt/common/node-set.4.*: added test case for
+	  Bug 130922
+
+Mon Jan 12 12:51:45 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* doc/site.xsl: Changed logo spacing to avoid stacking
+	* doc/*: rebuilt web pages
+
+Sun Jan 11 20:10:09 MST 2004 John Fleck <jfleck at inkstain.net>
+
+	* doc/site.xsl
+	* doc/w3c.png
+	* doc/*
+	Test William's new site.xsl improvements by adding the
+	W3C logo icon, rebuild docs, and presto! It shows up
+	everywhere!
+
+Mon Jan 10 08:33:18 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: Refined wrapper code with large
+	  test case submitted by Norm Walsh. (Bug 130922)
+
+Sun Jan 10 23:33:21 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: Added coding to create a xsltDocument
+	  wrapper for an RVT, in order to produce the applicable
+	  keys (Bug 130922)
+
+Sat Jan  9 17:04:38 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* doc/search.xml, doc/search.templ, doc/Makefile.am,
+	  doc/search.php.inc: Added new facility to "autogen"
+	  the search script.  Fixed a few more problems with
+	  the API page generation.
+	* doc/site.xsl, doc/api.xsl, doc/newapi.xsl: integrated
+	  the autogeneration of the php script.  Note that from
+	  this point doc/search.php will be include in the
+	  generic "Rebuilt docs".
+	* doc/*: api docs rebuilt.
+	
+Fri Jan  8 08:32:55 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* doc/site.xsl, doc/api.xsl, doc/newapi.xsl, doc/search.php:
+	  Further cleanup, fully implemented common routine for
+	  "generic page" within the docs.
+	* doc/*: api docs rebuilt with enhanced scripts.
+
+Thu Jan  8 06:45:04 MST 2004 John Fleck <jfleck at inkstain.net>
+
+	* doc/xslt.html, doc/bugs.html
+	made link to bugzilla more useful
+
+Wed Jan  7 20:12:14 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* doc/api.xsl, doc/site.xsl, doc/search.php: a little
+	  cleanup of scripts, assuring page tables are consistent.
+	* doc/*: api docs rebuilt with enhanced scripts.
+
+Tue Jan  6 23:38:47 HKT 2004 William Brack <wbrack at mmm.com.hk>
+
+	* configure.in: fixed Bug130593.
+	* doc/apibuild.py: fixed a couple of sequence problems on
+	  references within APIxxx.html files, rebuild doc/* (and NEWS)
+
+Sun Jan  4 19:06:59 MST 2004 John Fleck <jfleck at inkstain.net>
+
+	* doc/newapi.xsl: change background color of function
+	declaration to improve readability
+	* doc/*: rebuild docs with new stylesheet
+
+Fri Jan  2 21:42:49 MST 2004 John Fleck <jfleck at inkstain.net>
+
+	* libxslt/transform.c: fix bad doc comment formatting on 
+	xsltDebugSetDefaultTrace and xsltDebugGetDefaultTrace
+	* doc/*: rebuild docs
+
+Wed Dec 24 15:15:52 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in doc/*: prepared release of libxslt-1.1.2
+	* libxslt.spec.in doc/Makefile.am: some tweaking following the
+	  new EXSLT docs.
+
+Mon Dec 22 20:33:08 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxlst/numbers.c: fixed xsl:number level="any" for Bug
+	  129057
+
+Sun Dec 21 21:38:11 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/numbers.c: added namespace comparison for
+	  xsl:number count function (Bug 129057)
+
+Sun Dec 21 13:56:48 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-139.xml
+	  tests/general/Makefile.am tests/general/bug-139*: added
+	  test for entities parsing (Bug #129489)
+
+Sun Dec 21 20:33:27 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* tests/docs/Makefile.am tests/docs/bug-138.xml
+	  tests/general/Makefile.am tests/general/bug-138*: added
+	  test for namespace problem (Bug #129624)
+
+Sun Dec 21 13:17:05 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc.c: fixed #129327 make sure parser flags get transmitted to
+	  the transformation context
+	* libxslt/documents.c libxslt/transform.c libxslt/xsltInternals.h 
+	  libxslt/xsltutils.c libxslt/xsltutils.h: add a new call
+	  xsltSetCtxtParseOptions() to update parsing options in document()
+
+Sun Dec 21 12:51:12 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/keys.c: fixed second problem on #122483, namespace
+	  definitions must be propagated to keys.
+	* tests/docs/Makefile.am tests/docs/bug-137.xml
+	  tests/general/Makefile.am tests/docs/bug-137*: added test
+	  to the regression for bug #122483
+	
+Sun Dec 21 12:08:45 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: added the cast needed to fix #129188 warning
+
+Sat Dec 20 23:37:31 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/transform.c: fixed Bug 129624 (erroneous output
+	  of namespaces)
+
+Sat Dec 20 16:22:11 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/date.c: fixed several routines to assure empty
+	  string returned (rather than a string object with a null
+	  string pointer) (Bug 129561)
+
+Mon Dec 16 00:30:47 PST 2003 William Brack <wbrack at mmm.com.hk>
+
+	* doc/Makefile.am doc/site.xsl doc/api.xsl doc/newapi.xsl
+	  doc/xslt.html doc/apibuild.py doc/EXSLT doc/EXSLT/exslt.html:
+	  enhanced documentation to include exslt; rebuilt docs
+	  
+Mon Dec 15 20:33:52 MST 2003 John Fleck <jfleck at inkstain.net>
+
+	* libxslt/xsltutils.h
+	* doc/*
+	document XSLT_TRACE macro (sort of) and rebuild docs
+
+Thu Dec 11 19:50:41 CET 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* win32/Makefile.mingw win32/configure.js: tried to fix mingw
+	  build, no success, it still works halfway.
+
+Thu Dec 11 16:33:41 CET 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* win32/Makefile.* win32/configure.js libxslt/xsltexports.h
+	  libexslt/exsltexports.h libxslt/win32config.h: msvc and
+	  mingw compilation fixes.
+
+Wed Dec 10 20:37:46 MST 2003 John Fleck <jfleck at inkstain.net>
+
+	* doc/xslt.html docs.html
+	remove reference to gtk-doc
+
+Wed Dec 10 17:20:27 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in NEWS doc/*: updated the docs, made release 1.1.1
+
+Wed Dec 10 16:13:38 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: upp'ed the dependancy to libxml2-2.6.3
+	* libxslt/documents.c xsltproc/xsltproc.c: fixed #127473
+	  by using the new XInclude APIs provided by 2.6.3...
+
+Mon Dec  8 23:34:32 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c, libxslt/xslt.c: modified to assure
+	  XML_CDATA_SECTION_NODE's do not have xmlStringTextNoenc
+	  set into node name.  This modification arises from
+	  bug #128520, and avoids unnecessary work in libxml2.
+	  
+Mon Dec  1 16:41:27 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/*.h *.h.in: updated the metadata informations in the headers
+	* doc/* doc/html/*: regenerated the docs.
+
+Sun Nov 30 23:25:22 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* doc/Makefile.am: small further enhancement to makefile
+	* doc/APIchunk[127].html, doc/libxslt-api.xml, doc/libxslt-refs.xml,
+	  doc/html/libxslt-transform.html: updated to reflect last change
+	  to transform.c
+
+Sun Nov 30 22:44:07 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* doc/newapi.xsl, doc/api.xsl, doc/apibuild.py, doc/site.xsl,
+	  Makefile.am: adapted the libxml files for libxslt.
+	* doc/API*.html, doc/html/*.html, doc/libxslt-api.xml,
+	  doc/libexslt-api.xml, doc/libxslt-refs.xml,
+	  win32/libxslt.def.src, win32/libexslt.def.src: regenerated
+	  the docs.
+
+Sun Nov 30 18:48:27 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: change initialisation of external functions
+	  to take place in xsltNewTransformContext instead of in
+	  xsltApplyStylesheetInternal.  This fixes bug 122483, and should
+	  also fix problem reported on the mailing list on today's date.
+
+Wed Nov 26 09:49:11 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/imports.c, libxslt/xsltInternals.h: Changed to
+	  detect recursion in xslt:include (bug #127687).
+	* tests/XSLTMark/reverser.out,
+	* test/docbook/result/xhtml/gdp-handbook.xhtml: results changed
+	  because of fix of bug #127877 in libxml2 (quotes in text)
+
+Mon Nov 24 07:32:38 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xslt.c, libxslt/imports.c, libxslt/parserInternals.h:
+	  Changed to detect recursion in xslt:import (bug #127687).
+	* doc/libxslt-api.xml, python/libxsltclass.txt: regenerated to
+	  include change to xsltParseStylesheetImportedDoc parameters for
+	  above.
+
+Sat Nov 22 13:04:59 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/keys.c libxslt/templates.c libxslt/transform.c
+	  libxslt/variables.c libxslt/xsltInternals.h libxslt/xsltutils.h:
+	  Applied patch from Mark Vadoc adding flexible trace debugging
+	  support to the library.
+
+Sat Nov 22 00:53:47 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: fixed bug #127561 (xsl:element with a
+	  'computed' namespace attribute)
+	* tests/docs/Makefile.am tests/docs/bug-136.xml
+	  tests/general/Makefile.am tests/docs/bug-136*: added tests
+	  to the regression for bug #127561
+
+Fri Nov 21 18:17:32 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/keys.c: small further enhancement, bug #127450
+
+Thu Nov 20 17:26:57 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/keys.c: another problem reported by Oleg Paraschenko
+	  on the same code in #127450
+	* tests/docs/Makefile.am tests/docs/bug-135.xml
+	  tests/general/Makefile.am tests/docs/bug-135*: added tests
+	  to the regression suite for bug #127450.
+
+Thu Nov 20 10:59:48 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/keys.c: fixed an error from #120684 patch raised in
+	  #127450
+	* tests/docs/Makefile.am tests/docs/bug-134.xml
+	  tests/general/Makefile.am tests/docs/bug-134*: added tests
+	  to the regression suite for bug #127450.
+	
+Thu Nov 20 00:22:14 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/keys.c: fixed a bug in the keys selector parsing
+	  #120684 when | is in a predicate or a string.
+	* tests/docs/Makefile.am tests/docs/bug-133.xml
+	  tests/general/Makefile.am tests/docs/bug-133*: added tests
+	  to the regression suite for bug #120684.
+	* Makefile.am: don't package cvs temp files
+	* doc/apibuild.py: update from libxml2 one
+
+Tue Nov 18 13:42:12 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/strings.c: fixed entity problem in exslt:tokenize
+	  uncovered by newapi.xsl
+	* libxslt/transform.c,libxslt/pattern.c,libxslt/keys.c: changed
+	  to use IS_BLANK_CH for char compares (fixes warnings)
+
+Fri Nov 14 23:59:08 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/preproc.c: applied fix from Bjorn Reese to close
+	  number formatting bug #126994
+
+Fri Nov 14 18:44:50 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am configure.in libexslt.pc.in libxslt.spec.in: adding
+	  libexslt.pc support
+
+Thu Nov 13 11:54:36 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attributes.c libxslt/documents.c libxslt/transform.c
+	  libxslt/variables.c libxslt/xsltInternals.h: applied Mark Vakoc
+	  patch to moves the control of the XSLT debugger into the transform
+	  context.
+
+Tue Nov 12 18:17:24 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/functions.c: applied patch for param visibility from
+	  Shaun McCance.  Changed variable scoping in accordance with
+	  Shaun's suggestions.  This fixed problem reported on the list
+	  by Bernd Lang
+	* tests/exslt/functions/function.8.[xml,xsl,out], Makefile.am:
+	  regression test for above
+	
+Sat Nov  8 13:27:12 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/libexslt.3: applied improvement patch from Jonathan Wakely
+	  describing the entry points.
+
+Wed Nov  6 17:27:23 CET 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* win32/configure.js: fixed #122146
+
+Wed Nov  5 12:25:34 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/multiple/Makefile.am: applied last fix from #125614
+
+Tue Nov  4 19:08:53 PST 2003 William Brack <wbrack at mmm.com.hk>
+
+	Minor enhancements to eliminate compile/test warnings
+	* libxslt/xsltconfig.h.in, libexstl/exsltconfig.h.in:
+	  changed macro ATTRIBUTE_UNUSED for gcc so that, if undefined,
+	  it's defined as __attribute__((unused))
+	* python/libxslt.c: fixed ATTRIBUTE_UNUSED to appear after
+	  variable declaration
+	* libxslt/preproc.c: minor change to get rid of unused var/code
+	  
+Tue Nov  4 14:21:06 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* doc/* NEWS: preparing release 1.1.0
+
+Tue Nov  4 14:04:58 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/preproc.c: fixing the Document element precompilation
+	  to avoid the problem raised in #125614
+
+Tue Nov  4 01:08:17 PST 2003 William Brack <wbrack at mmm.com.hk>
+
+	* tests/multiple/out/letter*.orig: updated to reflect change
+	  to HTML output in libxml2 (formatting of <p>, bug #125093)
+
+Sun Nov  2 09:07:32 PST 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xslt.c: fixed bug #124286 - detect invalid name on
+	  template
+	
+Sun Nov  2 10:51:58 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am configure.in libxslt.spec.in doc/libxslt-api.xml
+	  libxslt/xslt.h libxslt/xsltwin32config.h: some cleanup and trial
+	  for the upcoming 1.1.0 release
+	* breakpoint/*: this release removes the deprecated breakpoint library
+
+Sat Nov  1 17:04:27 PST 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c, tests/general/bug-119.out: fixed
+	  bug #125502 and corrected expected test output
+	* tests/general/bug-79.out: fixed broken test (bug #123328)
+	* libxslt/pattern.c, libexslt/functions.c: minor change to
+	  eliminate compilation warning
+	  
+Sat Nov  1 22:36:30 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/REC/test-5.2-17.xsl tests/REC/test-5.2-18.xsl: fixing two
+	  broken tests (revealed by #125502)
+
+Sat Nov  1 07:41:06 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/strings.c: fix bug #125265 about entities breaking
+	  exsl:tokenize and exsl:split
+	* tests/exslt/strings/split.1.* tests/exslt/strings/tokenize.1.*:
+	  augmented the reression tests with the example from the bug report.
+
+Fri Oct 31 20:26:04 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/preproc.c: fix bug #120828 make sure that xsl:sort is
+	  empty.
+
+Fri Oct 31 15:53:45 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/documents.c libxslt/imports.c libxslt/xslt.c libxslt/xslt.h
+	  xsltproc/xsltproc.c: switch to use xmlReadfile instead of
+	  xmlParseFile, this avoid relying on global parser options, far
+	  far cleaner.
+	* tests/XSLTMark/xslbench1.out tests/general/bug-90.out: fixes a
+	  slightly corrected output for CDATA and STYLE element save.
+
+Tue Oct 28 15:30:54 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in python/Makefile.am python/tests/Makefile.am: applied
+	  patch from Roumen Petrov for bug #124539 when building outside the
+	  source directory
+	* libxslt/xsltutils.c: fixed the way to grab the line number from
+	  the document, use the predefiend libxml2 API which mate it work
+	  with both 2.5.x and 2.6.x
+
+Mon Oct 27 08:57:43 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xslt.c: put in #undef for IS_BLANK macros to fix
+	  problem reported on the mailing list by Justin Fletcher
+
+Fri Oct 24 00:49:05 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libxslt.spec.in: doing some testing and raising
+	  the build requirement to 2.5.10 
+	* libexslt/Makefile.am configure.in: applied patch from Graham Wilson
+	  for linking the exslt lib with the lib being build instead of the
+	  installed one
+
+Thu Oct 23 15:48:39 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/pattern.c: Fixed problem with cascaded predicates
+	  (more of bug 119946)
+
+Thu Oct 23 15:37:26 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* restored earliest portion of ChangeLog (was corrupted)
+
+Wed Oct 22 13:07:50 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltutils.[ch]: applied patch from Kasimier Buchcik
+	  for xsltGetDebuggerStatus and xsltSetDebuggerStatus
+	* doc/libxslt-api.xml: regenerated the API
+
+Sun Oct 19 23:32:23 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: bump the libxml2 require to 2.6.0 which
+	  should ship for good real soon...
+	* doc/Makefile.am: fix installation of HTML pages
+	* doc/libxslt-api.xml: rebuilt
+	* libxslt/xsltexports.h: cleanup
+	* python/generator.py: ATTRIBUTE_UNUSED is after the parameter
+	* xsltproc/xsltproc.c: applied Crutcher Dunnavant --load-trace patch 2
+
+Fri Oct 17 18:25:42 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/attributes.c: fixed bug 123822
+
+Fri Oct 17 12:40:37 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/pattern.c: fixed bug 119946
+	* configure.in: enhanced for better devel (me) testing
+
+Wed Oct 15 17:30:43 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: applied a small patch from Troels Walsted Hansen
+	  for python libxml2 detection.
+
+Sat Sep 27 18:42:57 PDT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/numbers.c, libxslt/extensions.c, libexslt/date.c,
+	  python/libxslt.c, xsltproc/xsltproc.c: minor cleanup for
+	  various compilation warnings (AIX as well as gcc)
+
+Sat Sep 27 17:29:43 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/saxon.c: applied patch from Brett Kail to implement
+	  saxon:line-number()
+
+Thu Sep 25 11:46:40 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.h libxslt/extra.h: fix some header paths
+	  as pointed by Steve Ball
+
+Wed Sep 24 23:31:45 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.c: applied patch from Karl Eichwalder
+	  apparently the xmlFree was introducting a memory error
+	  on x86_64, though not reproduced.
+	* libxslt/transform.c: patch from Shaun McCance fixing a comment.
+
+Thu Sep 18 11:32:20 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxslt.c: don't output errors to stdout by default
+	  use stderr instead.
+
+Thu Sep 18 11:28:43 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.c libxslt/numbers.c: small fixes w.r.t.
+	  IS_XSLT_REAL_NODE change
+	* python/Makefile.am Makefile.am: some makefile "distclean"
+	  target improvement from Graham Wilson
+	* xsltproc/xsltproc.c: small fix from Alexey Efimov for options
+	  display.
+
+Mon Sep 15 07:41:14 PDT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xsltutils.h: Added XML_PI_NODE to the macro
+	  IS_XSLT_REAL_NODE, fixed bug 120644.
+
+Sat Sep 13 02:04:13 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c doc/xsltproc.1 doc/xsltproc.xml
+	  libxslt/xsltutils.h: removing the DocBook SGML support
+
+Fri Sep 12 13:52:07 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing release libxslt-1.0.33
+	* doc/*: updated and rebuilt the docs
+	* doc/apibuild.py: small fixes for new tokens
+
+Wed Sep 10 23:32:42 PDT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* transform.c: enhanced previous fix to bug #120684, using
+	  excellent suggestion by Daniel
+	* attributes.c: fixed bug #119583, merging attribute sets
+	  from imported stylesheets.
+	* tests/docs/Makefile.am tests/docs/bug-131.xml
+	  tests/general/Makefile.am tests/docs/bug-131*: added tests
+	  to the regression suite for bug #120684.
+	  
+Sat Sep  6 09:57:03 PDT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* pattern.c pattern.h imports.c: fixed bug 119946, caused by
+	  incorrect creation of "extra" variables when compiling
+	  templates on imported stylesheets.
+	* tests/docs/Makefile.am tests/docs/bug-130.xml tests/docs/bug-130.doc
+	  tests/general/Makefile.am test/docs/bug-130*: added tests
+	  to the regression suite for this bug.
+
+
+Wed Sep  3 15:33:40 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/xmlspec/*.html: tyny change HTML -> html DOCTYPE due to
+	  a libxml2 change
+
+Tue Sep  2 18:22:46 PDT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* transform.c: fixing bug #120684 on crash caused by text between
+	  apply-templates
+
+Tue Sep  2 16:05:37 CEST 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* libxslt/xsltexports.h libexslt/exsltexports.h: defined additional 
+	  macros which affect exports and added mingw section
+
+Mon Sep  1 23:02:12 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/function.c: patch from Mark Vadoc to allow compiling
+	  against libxml2 without XPointer supoort.
+
+Fri Aug 29 12:28:12 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixing the bug #120971 on cdata-section-elements
+	  with namespaced names reported by Steve Hay
+	* tests/docs/Makefile.am tests/docs/bug-129.*
+	  tests/general/Makefile.am tests/general/bug-129*: added the
+	  test to the regression suite for this bug.
+
+Thu Aug 28 18:30:11 CEST 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* libxslt/xsltexports.h libexslt/exsltexports.h: fixed typos reported by
+	  Mark Vakoc 
+
+Wed Aug 27 12:07:13 CEST 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* libxslt/*.h: realigned parameters after taint
+
+Wed Aug 27 09:59:54 CEST 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* libxslt/xsltexports.h libexslt/exsltexports.h: fixed defs for 
+	  Borland compiler, as reported by Eric Zurcher
+
+Mon Aug 25 13:39:40 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/Makefile.am libexslt/Makefile.am: add the new header so they
+	  get included in the distrib
+
+Mon Aug 25 11:56:02 CEST 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* libxslt/*.h libexslt/*.h: exportability taint of the headers.
+	* libxslt/xsltexports.h libexslt/exsltexports.h: new files,
+	  contain the export defs.
+
+Tue Aug 19 00:38:46 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/Makefile.am libxslt/libxslt.h libxslt/numbersInternals.h
+	  libexslt/*.c configure.in: applied patch from Mikhail Grushinskiy
+	  for compilation with MingW compiler on Windows.
+
+Mon Aug 18 14:42:12 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* keys.c: enhanced xsltInitCtxtKey to take care of multiple
+	  instances of a key with the same namespace:name, reported
+	  on the mailing list by Ian Young.  Added regression test
+	  (bug-128).
+
+Thu Aug 15 13:00:02 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* variables.c: fixed bug 119699 (missing error on shadowed
+	  variable)
+	* autogen.sh: removed dependency on automake-1.4, updated
+	  links for fetching auto* tools
+	* doc/Makefile.am: added check for automatic regeneration of
+	  win32/*.def.src when api xml files are updated.
+
+Thu Aug 14 23:15:14 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* transform.c: fixed bug 114563 (params not passed when
+	  default template processed)
+
+Thu Aug 14 22:04:37 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* xslt.c: fixed bug 119862 (missing param on ns error print)
+
+Sun Aug 10 00:21:48 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* News configure.in: preparing libxslt-1.0.32 release
+	* doc/* : updated the doc and rebuilt
+
+Thu Aug  7 21:02:07 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* breakpoint/Makefile.am: removed ref to libxslt.la
+	* numbers.c transform.c python/libxml_wrap.h python/types.c
+	  xlstproc/xsltproc.c: Minor cleanup of warning errors
+
+Mon Aug  4 22:43:05 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* doc/libxslt-api.xml doc/* doc/html/*: revuilt the API and docs
+
+Sun Aug  3 21:34:44 EDT 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-127.*
+	  tests/general/Makefile.am tests/general/bug-127*: added the
+	  test from bug #118763 to the regression suite.
+
+Sun Aug  3 17:40:13 EDT 2003 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: minor change, avoid wasting CPU cycles
+
+Sun Aug 3 21:05:07 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	Minor cleanup of regression test general/bug-125
+
+Sun Aug 3 19:46:42 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	Fixed bug 116517 - handling of '{' and '}'
+	* templates.c: added checks for escaping and balancing of
+	  curly brackets
+	* tests/general/Makefile.am tests/docs/Makefile.am:
+	  Added test case (bug-126) to regression suite.
+
+Sun Aug 3 15:50:51 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	Fixed bug 117552 - sort with multiple keys
+	* xsltutils.c: enhanced treatment of NaN when multiple sort
+	  keys are specified.
+	* tests/general/Makefile.am tests/docs/Makefile.am:
+	  Added test case (bug-125) to regression suite.
+	  
+Sat Aug 2 09:55:38 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	Fixing bug 118561 (IRIX MIPSPro compiler warnings)
+	* transform.c, variables.c, xslt.c, xsltutils.c:
+	  removed some unused variables
+  
+Thu Jul 31 20:33:12 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	Fixing bug 118558 (Solaris 8 compiler warnings)
+	* xslt.c: minor re-ordering of code
+	* functions.c: added an explicit cast
+	* number.c: added include for string.h
+	* security.c: added an explicit cast
+
+Tue Jul 29 12:43:17 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libexslt/date.c test/exslt/data/seconds.1 : changed sign
+	  of date:seconds as previously posted to the mailing list
+	* numbers.c: extensive modification to cater for UTF8 within
+	  the various routines.
+
+Thu Jul 24 19:38:56 IST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/strings.c: applied patch from Shaun McCance to fix bug
+	  #117616 about EXST str:tokenize.
+	* tests/exslt/strings/Makefile.am tests/exslt/strings/tokenize.3.*:
+	  added the test in the regression suite.
+
+Wed Jul 23 21:57:39 IST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: applying a patch based on #117377
+	  for --path option.
+
+Mon Jul 21 20:28:11 IST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: allow strip-space to support full namespaces
+	  using prefix:* , should fix #114287
+	* tests/docs/Makefile.am tests/docs/bug-124.*
+	  tests/general/Makefile.am tests/general/bug-124*: added a
+	  test to the regression suite for this bug.
+
+Mon Jul 21 20:09:57 IST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/tramsform.c: make xsl:copy on attribute a copy in case
+	  the attribute was already defined, should fix bug #113812
+	* tests/docs/Makefile.am tests/docs/bug-123.*
+	  tests/general/Makefile.am tests/general/bug-123*: added the
+	  test to the regression suite.
+
+Fri Jul 18 13:13:52 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/strings.c: applied patch from Shaun McCance to implement
+	  exslt:split c.f. #117752
+	* tests/exslt/strings/Makefile.am tests/exslt/strings/split.1.*:
+	  added the test to the regression suite.
+
+Thu Jul 17 10:35:22 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c: quick fix for an HP-UX compilation problem,
+	  might require more attention could be an Unicode support breakage.
+
+Wed Jul 16 10:46:35 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c libxslt/transform.c libxslt/transform.h
+	  libxslt/xsltInternals.h: optimize text node coalescing by 
+	  caching info about the last text node generated and doing
+	  fast alloc/copy of the text. Should fix #115273
+
+Mon Jul 14 13:00:00 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* fixed bug 113520, incorrect result for date:seconds
+	  with change to type casting in libexslt/date.c
+
+Sat Jul 12 20:35:28 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* fixed bug 114764: trouble with globals and RVT's
+	  with minor changes in variables.c and transform.c
+	  so that any global instantiated with an RVT gets
+	  uninitialized when the RVT is destroyed.
+	  
+Thu Jul 10 15:47:33 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: simple cast missing Peter Breitenlohner
+	* breakpoint/Makefile.am: added deps to libxslt
+	* tests/exslt/common/Makefile.am: integrated William Brack test
+	  in the regression suite
+
+Wed Jul  9 21:27:43 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* fixed bug 114812, trouble with imported exslt functions
+	  added lookup function in libxslt/extension.c
+	  enhanced exsltInitFunc in libexslt/functions.c to take
+	  better care of imports
+
+Wed Jul  9 12:19:34 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* python/generator.py python/libxslt-python-api.xml python/libxslt.c
+	  python/libxslt_wrap.h python/libxsltclass.txt: patch from
+	  Sean Treadway, adding Python bindings for extension element and
+	  some bindings cleanups.
+	* python/tests/Makefile.am python/tests/extelem.py: also add an
+	  example/test.
+
+Tue Jul  8 12:20:11 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxml_wrap.h: applied patch from #116943 which should
+	  fix the xsltSaveResultToFile python binding.
+
+Mon Jul  7 11:03:18 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* INSTALL: removed an old reference to libxml2 >= 2.2.12
+
+Sun Jul  6 23:57:35 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: releasing 1.0.31
+	* doc/*: update and rebuild of the docs
+
+Sun Jul  6 18:31:56 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixing bug #115913 for xsl:copy with namespace
+	  nodes.
+	* tests/docs/Makefile.am tests/docs/bug-122.*
+	  tests/general/Makefile.am tests/general/bug-122*: added the
+	  test to the regression suite.
+	
+Sun Jul  6 18:09:13 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/preproc.c: fix bug #115778 for attribute value template
+	  on xsl:sort order
+
+Sun Jul  6 17:22:35 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/documents.c libxslt/transform.c: applied patch from
+	  Keith Isdale to desactivate node numbering when running under
+	  the debugger.
+
+Sun Jul  6 00:00:31 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/security.c: fix the write checking code when
+	  the output filename does not parse as an URL bug #115402
+
+Sun Jun 22 19:38:04 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/Makefile.am: Albert Chin pointed out that trio.h and
+	  triodef.h were missing from the distribution
+
+Fri Jun 13 16:53:33 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.spec.in libexslt/Makefile.am libexslt/libexslt.3
+	  libxslt/Makefile.am libxslt/libxslt.3: Moved the man pages
+	  to section 3
+	* libexslt/sets.c: applied patch from Peter Breitenlohner
+	* doc/*: rebuilt the docs
+	* tests/docbook/result//* tests/xmlspec/*.html: changes in
+	  generattion of &quot; as " in element content.
+
+Sun Jun 08 22:57:13 CEST 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* libxslt/transform.c: changed xsltChoose to ignore whitespace 
+	  which is a sibling of xsl:when
+
+Sat May 31 17:18:21 CEST 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* libxslt/xslt.c: fixed a possible crash when the document
+	  wasn't a proper stylesheet.
+
+Tue May 20 12:14:12 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/variables.c: fixes a 64bits cleanliness issue #113318
+
+Sat May 17 13:25:32 CEST 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* win32/defgen.xsl: new file, generates the export sources.
+	* win32/*.def.src: these are now autogenerated, changes to these
+	  will not be logged anymore.
+
+Fri May 16 13:22:31 EDT 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-121.*
+	  tests/general/Makefile.am tests/general/bug-121*: added the
+	  example for bug #112904 in the regression tests, the bug fix is
+	  actually in libxml2
+
+Thu May 15 16:26:34 EDT 2003 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: fixing portability bug #113002 on HP-UX
+	* configure.in libxslt.spec.in python/Makefile.am: cleanup
+	  of --with-python like for libxml2
+
+Thu May 15 11:45:00 HKT 2003 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/xsltutils.c: fixing bug #112995, a problem with
+	  NaN within the sort element. Also added regression test.
+
+Tue May 13 18:22:38 EDT 2003 Daniel Veillard <daniel at veillard.com>
+
+	* doc/Makefile.am: fixing bug #112803 , make sure to avoid
+	  network accesses when building
+
+Sat May 10 14:19:14 EDT 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixed a segfault introduced with the RVT
+	  handling change, bug #112703 .
+
+Sat May 10 13:05:21 EDT 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xslt.c: make sure stylesheet compilation errors
+	  forces a NULL stylesheet, fixes #112270
+
+Sun May  4 17:41:23 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* NEWS configure.in : preparing release 1.0.30
+	* doc/apibuild.py: backported a patch from libxml2
+	* doc/*: updated and rebuilt the docs
+
+Wed Apr 30 22:44:49 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c libxslt/variables.c libxslt/xsltInternals.h:
+	  cleaning up Result Value Tree handling
+	* libexslt/functions.c libexslt/strings.c: fixed a pair of
+	  implementations.
+	* tests/exslt/strings/Makefile.am tests/exslt/strings/tokenize.2.*:
+	  added Mark Vakoc test combining for-each and exslt:tokenize
+
+Wed Apr 30 15:23:33 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixing bug #111755 when a template is
+	  applied to an attribute
+	* tests/docs/Makefile.am tests/docs/bug-119.*
+	  tests/general/Makefile.am tests/general/bug-119*: added the
+	  example in the regression tests for that bug.
+
+Tue Apr 29 15:18:31 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* doc/Makefile.am doc/libxslt.xml: upgraded to the XML/XSLT toolchain
+	  for the HTML generation fixing #111799
+	* doc/html/*.html doc/html/*.png: associated update
+
+Sun Apr 27 18:00:12 CEST 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* libxslt/variables.c: removed premature call to xsltFreeStackElem
+	* win32/libxslty.def.src: added more exports
+
+Sun Apr 27 12:46:31 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* NEWS doc/*.xsl doc/*.html: updated the web site, made the
+	  transition to XHTML1 added validity checking to the makefile rules.
+
+Sat Apr 26 14:00:58 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* python/generator.py: fixed a problem in the generator where
+	  the way functions are remapped as methods on classes was
+	  not symetric and dependant on python internal hash order,
+	  as reported by Stéphane Bidoul
+	* libexslt/strings.c: attempt at fixing an object type pbm
+	* libxslt/triodef.h: update for OpenVMS from libxml2
+
+Fri Apr 25 15:26:26 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* doc/Makefile.am doc/xsltproc.1 doc/xsltproc.xml: automated the
+	  generation of the man page
+
+Wed Apr 23 23:27:44 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/sets.c: fixed a bug introduced in the last commit
+	* libxslt/transform.c: tried to fix #111437
+	* tests/docbook/result/xtchunk/html/*.orig
+	  tests/multiple/out/*.orig: side effect of #111437 change.
+
+Wed Apr 23 22:41:08 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/strings.c: applied last patch for #110023 from 
+	  Mark Vakoc
+	* libexslt/sets.c: fixed a memory leak when mixing one of the
+	  EXSLT set functions and a Result Value Tree
+	* TODO: there are other bugs around in libexslt/sets.c in conjunction
+	  with Result Value Tree
+
+Wed Apr 23 17:00:16 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	*  libxslt/extensions.c: patch from Vasily Tchekalkin fixing
+	   bug #111420 about double initialization of extension contexts
+
+Wed Apr 23 14:25:46 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fix bug #110577 namespace in copy-of
+	  don't obbey the same rules as for literal reusl elements.
+	* tests/docs/Makefile.am tests/docs/bug-118.*
+	  tests/general/Makefile.am tests/general/bug-118*: added the
+	  example in the regression tests for that bug.
+	* libxslt/variables.c: fixed a bug introduced in fixing #110020
+	* tests/docs/Makefile.am tests/docs/bug-11[67].*
+	  tests/general/Makefile.am tests/general/bug-11[67]*: added 2
+	  regression tests one still exposing a mem leak (Mark Vadoc).
+
+Tue Apr 22 16:01:25 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fix a memory related segfault on a
+	  pattern compilation error #110189
+
+Tue Apr 22 15:45:25 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/variables.c: fixing bug #110020 on global parameter
+	  and variables mismatch
+	* tests/reports/Makefile.am tests/reports/cmdlineparams.*: added
+	  the test to the regression suite
+
+Mon Apr 21 12:22:31 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/math.c: applied patch from Charles Bozeman fixing
+	  the math power function where args were inverted #110996
+	* tests/exslt/math/Makefile.am tests/exslt/math/power.1.*:
+	  added the test to the regraession for #110996
+	* libexslt/sets.c: avoid a problem with nodesets.
+
+Wed Apr 14 18:10:21 CEST 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* libxslt/win32config.h: added HAVE_MATH_H
+	  
+Wed Apr 13 14:04:15 CEST 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* win32/Makefile.msvc: fixed compilation with thread-enabled
+	  libxml
+	  
+Wed Apr  9 22:02:17 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/strings.c: applied patch from Mark Vakoc fixing a problem
+	  with RTF in libexslt
+
+Mon Apr  7 14:39:01 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/keys.c libxslt/templates.c libxslt/transform.c
+	  libxslt/variables.c: Fixes bug #110023 reported by Mark Vakoc and
+	  other places where ctxt->document pointer may be used without 
+	  checking it agaisnt NULL.
+	* tests/docs/Makefile.am tests/docs/bug-115.*
+	  tests/general/Makefile.am tests/general/bug-115*: added the
+	  example in the regression tests for that bug.
+	* libxslt/trio.h libxslt/triodef.h: update of Trio from Bjorn Reese
+
+Tue Apr  1 13:39:26 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in NEWS: preparing 1.0.29 release
+	* libxslt/documents.c: generate the document order for document()
+	  loaded resources.
+	* doc/*: updated and regenerated the docs
+
+Tue Apr  1 11:28:01 CEST 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixed a namespace redundancy problem
+	  in xsl:element
+	* tests/docs/Makefile.am tests/docs/bug-114.*
+	  tests/general/Makefile.am tests/general/bug-114*: added an
+	  example in the regression tests for that bug.
+
+Fri Mar 28 12:19:35 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxsl.py: fix bug #109395 as pointed out by Ben Phillips
+	  and avoid some warnings when loading the python modules on non
+	  Linux platforms.
+	* libxslt/transform.c: fix a bug introduced in the document lookup
+	  and exhibited by the keys test.
+
+Wed Mar 26 22:41:00 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-113.*
+	  tests/general/Makefile.am tests/general/bug-113*: added an
+	  example in the regression tests for bug #109160 fixed in libxml2
+
+Wed Mar 26 21:43:30 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in python/Makefile.am python/libxslt.c libxslt/xsltutils.c
+	  libxslt/trio.h libxslt/triodef.h: portability fixes from Albert Chin
+	* python/libxslt.py: avoid RTLD_GLOBAL detection warning too
+
+Wed Mar 26 19:08:55 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: forgot to make one change related to
+	  Result Value Tree change, pointed out by Sebastian Rahtz
+	* tests/docs/Makefile.am tests/docs/bug-112.*
+	  tests/general/Makefile.am tests/general/bug-112*: added an
+	  example in the regression tests that bug
+
+Wed Mar 26 01:38:38 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: second part of the patch fixing #108905
+	  performances problems, ask for computation of document order on
+	  the document transformed and avoid inefficiencies building large
+	  nodesets of unique nodes.
+	* configure.in: fix a trouble with libtool in my debug environment.
+
+Mon Mar 24 22:30:00 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c libxslt/transform.c libxslt/variables.c:
+	  Result Value Tree are now generated with a document root node
+	  not an element, it's quite cleaner.
+	* configure.in libxslt.spec.in NEWS: But this requires libxml2-2.5.5
+	  also prepared for libxslt-1.0.28 release
+	* doc/*: updated and regenerated the docs
+
+Mon Mar 24 15:01:07 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c libxslt/transform.c libxslt/variables.c:
+	  Finally fixed bug #75813, processing or Result Value Tree 
+	  converted into node-sets should be a bit more sensible now.
+	* tests/exslt/common/node-set.2.out: the associated fix in libxml2
+	  fixes this regression test, there is 4 nodes, not 3
+	* tests/docs/Makefile.am tests/docs/bug-111.*
+	  tests/general/Makefile.am tests/general/bug-111*: added an
+	  example in the regression tests for bug #75813
+	
+Sun Mar 23 13:09:17 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-110.*
+	  tests/general/Makefile.am tests/general/bug-110*: added an
+	  example in the regression tests for bug #108976 which is
+	  fixed in libxml2
+
+Sat Mar 22 12:35:47 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-109.xml
+	  tests/general/Makefile.am tests/general/bug-109*: added an
+	  example in the regression tests for the invalid bug #108716
+
+Sat Mar 22 12:01:24 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/variables.c: fixed bug #108633 reported by
+	  Jerome Pesenti about recursive global variables/param detections
+	* tests/reports/Makefile.am tests/reports/rec*: added regression
+	  tests for the checking of recusion in global/local param/variables.
+
+Fri Mar  7 16:08:24 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c: valgrind pointed out an uninitialized
+	  variable use in format-number()
+
+Fri Mar  7 15:27:56 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-108.xml
+	  tests/general/Makefile.am tests/general/bug-108*: added an
+	  example in the regression tests bug #107804 fixed in libxml2
+
+Wed Mar  5 12:47:31 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixed bug #107591 node() in pattern
+	  matches should catch comments and PIs
+	* tests/docs/Makefile.am tests/docs/bug-107.xml
+	  tests/general/Makefile.am tests/general/bug-107*: added an
+	  example in the regression tests for this case
+
+Wed Feb 26 16:49:17 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-106.xml
+	  tests/general/Makefile.am tests/general/bug-106*: added the next
+	  example for bug #106788 from James Clark in the regression tests,
+	  the bug fix is actually in libxml2
+
+Tue Feb 25 16:19:45 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in doc/Makefile.am xsltproc/Makefile.am: some cleanup
+	  for Python checks, makefile cleanup, and convenience changes
+
+Mon Feb 24 23:49:01 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: had to comment out Igor last change
+	  since it made libxslt-1.0.27 depends on libxml2 newly 
+	  API extension which hasn't propagated yet :-(
+
+Mon Feb 24 22:21:09 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing release 1.0.27
+	* doc/*: updated and rebuilt the docs
+
+Mon Feb 24 19:43:15 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/namespaces.c: fixed #106554 for spurious xmlns:nsX=""
+	  generation
+
+Sun Feb 23 14:52:57 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-105.xml
+	  tests/general/Makefile.am tests/general/bug-105*: added the
+	  example for bug #106788 from James Clark in the regression tests,
+	  the bug fix is actually in libxml2
+
+Sun Feb 23 14:25:13 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/namespaces.c libxslt/transform.c: fixed bug #106789 from
+	  James Clark and a bit of cleanup
+	* tests/docs/Makefile.am tests/docs/bug-104.xml
+	  tests/general/Makefile.am tests/general/bug-104*: added the
+	  example in the regression tests for this case
+
+Fri Feb 21 17:07:59 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.spec.in: fixed RH#84801 wrong prereqs in the spec file
+
+Wed Feb 19 18:51:06 CET 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* libxslt/functions.c libxslt/xslt.c: fixed bug 106251
+
+Wed Feb 19 15:52:33 CET 2003 Igor Zlatkovic <igor at zlatkovic.com>
+
+	* xsltproc/xsltproc.c: obsoleted xmlNormalizeWindowsPath
+	* win32/configure.js: included handling of the trio option
+
+Mon Feb 10 17:34:32 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in doc/*: preparing release 1.0.26
+
+Fri Feb  7 15:47:20 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.c: fixing another bug in document(), bug #105450
+	* tests/documents/test_bad.result: Slight change to the output
+
+Fri Feb  7 15:34:24 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.c: fixing a segfault in document(), bug #105418
+	* tests/documents/Makefile.am tests/documents/test_bad: add the
+	  specific test as suggested by Jean T Anderson
+
+Fri Feb  7 14:18:40 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.c libxslt/keys.c libxslt/pattern.c
+	  libxslt/preproc.c libxslt/transform.c libxslt/variables.c
+	  libxslt/xslt.c: tried to fix 105387 and all similar cases
+	  in the library sources.
+
+Wed Feb  5 16:04:10 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* doc/* configure.in: preparing for release of 1.0.25
+
+Wed Feb  5 00:07:43 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: fixed bug #99623
+
+Tue Feb  4 22:10:17 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixing bug #105116 sometimes one need
+	  to generate a default namespace reset xmlns="" in the output
+	* tests/docs/Makefile.am tests/docs/bug-103.xml
+	  tests/general/Makefile.am tests/general/bug-103*: added the
+	  example in the regression tests for this case
+
+Tue Feb  4 18:39:35 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c libxslt/transform.c: changed the way the
+	  root element of value tree are handled to fix bug #104123
+
+Tue Feb  4 18:15:01 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* README: change of policy w.r.t. mails
+	* configure.in: small cleanup
+	* libxslt/transform.c libxslt/xslt.c libxslt/variables.c: fixed
+	  a couple of bugs raised by Eric van der Vlist in #104114
+	* tests/exslt/*/*.out: slight change to the tests
+
+Tue Feb  4 17:18:54 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* doc/xsltproc.1 doc/xsltproc.xml: fixing bug #104096, put
+	  emphasis on the fact that --docbook should not be used
+	  for XML.
+
+Wed Jan 22 16:43:49 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxslt.c: fixed a couple of return error #104150
+	  reported by Peter O'Shea 
+
+Fri Jan 17 17:43:43 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: fixed a double free of stylesheet
+	  when applied to a standalone stylesheet
+
+Tue Jan 14 16:22:48 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing release 2.0.24
+	* libxslt.spec.in: small update
+	* doc/*: updated the news, rebuilt the APIs descriptions
+
+Tue Jan 14 14:23:47 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.c: fixed #101502 by applying and cleaning up
+	  the associated patch from Daniel Stodden.
+	* tests/documents/Makefile.am tests/documents/fragment*: added a
+	  specific test.
+
+Mon Jan 13 23:25:59 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.c libxslt/transform.c: fixing bug #101602
+	  for extension modules init and shutdown callbacks, check that
+	  they are now called when needed.
+	* python/libxsl.py python/libxslt-python-api.xml python/libxslt.c:
+	  started adding the extension module support at the Python level.
+	  Still a strange bug to hunt down left.
+
+Sun Jan 12 23:56:18 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attributes.c libxslt/xsltInternals.h libxslt/imports.c
+	  libxslt/xslt.c: fixed bug #101003 on attribute-sets value
+	  computation in the presence of imports
+	* tests/docs/Makefile.am tests/docs/bug-102.xml
+	  tests/general/Makefile.am tests/general/bug-102*: added an
+	  example in the regression tests for this case
+
+Fri Jan 10 10:34:23 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: final touch to #102800 fix
+
+Thu Jan  9 18:17:40 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: tried to fix #102800 for good. Reenabled
+	  memory debug checking which got deactivated at some point ?!?
+	* libexslt/date.c libxslt/attributes.c: fixing some memory leaks
+	* libxslt/xsltutils.c: very small change on HTML indentation handling
+
+Thu Jan  9 14:28:19 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* tests/REC/test-8-1.xsl tests/REC/test-9.1-2.xsl 
+	  tests/general/bug-83.xsl tests/multiple/dict.xsl: added some
+	  exclude-result-prefixes to avoid extra namespace declaration being
+	  dumped following the fix for #102920 in libxml2
+
+Wed Jan  8 12:33:47 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixed a problem related to directory
+	  checking and creation raised by Craig Goss
+
+Thu Jan  2 23:23:30 CET 2003 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/strings.c: applied patch from Jörg Walter to provide
+	  URI escaping and unescaping functions.
+
+Thu Dec 26 15:43:31 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/strings.c: Alexey Efimov found a typo bug in
+	  exsltStrPaddingFunction()
+
+Mon Dec 23 15:43:59 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxslt.c: patch from Stéphane Bidoul for Python 2.1
+
+Sun Dec 22 22:54:04 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* vms/build_xslt.com libxslt/xsltconfig.h.in libxslt/xsltutils.c:
+	  applied patch from Craig A. Berry for the VMS port.
+
+Wed Dec 18 15:41:21 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltInternals.h: increase the max number of cascaded
+	  sort operations.
+	* AUTHORS doc/* win32/*: updated Igor's mail and the Web page for
+	  the Windows binaries.
+
+Mon Dec 16 19:31:16 CET 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* win32/libxslt.def.src: added more exports for Stephane Bidoul
+	
+Fri Dec 13 14:50:12 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/apibuild.py doc/libexslt-api.xml doc/libxslt-api.xml: updated
+	  the apibuilder script, regenerated the APIs
+
+Fri Dec 13 11:59:07 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c: numbering should not traverse XInclude
+	  nodes left in the tree. Closes bug #101114 raised by
+	  Bernd Kuemmerlen
+
+Thu Dec 12 01:17:09 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/apibuild.py: fixed a bug in merging public info from
+	  C modules.
+	* win32/Makefile.msvc win32/configure.js: patch from Mark Vakoc
+	  the iconv option to configure.js didn't work, and 
+	  added zlib option needed when linking xsltproc statically
+
+Wed Dec 11 19:18:45 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/Makefile.am doc/apibuild.py doc/libexslt-api.xml: added
+	  the generation of libexslt-api.xml
+        * libexslt/exslt.h: small cleanup.
+
+Wed Dec 11 18:45:09 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/Makefile.am doc/apibuild.py doc/libxslt-api.xml:
+	  copied over the apibuild.py from libxml2, adapted a bit and
+	  regenerated the API description in XML. Todo: libexslt-api.xml
+	* libxslt/attributes.c libxslt/documents.c libxslt/extensions.c
+	  libxslt/imports.c libxslt/numbers.c libxslt/numbersInternals.h
+	  libxslt/pattern.c libxslt/preproc.c libxslt/security.c
+	  libxslt/templates.c libxslt/transform.c libxslt/transform.h
+	  libxslt/variables.c libxslt/xslt.c libxslt/xsltInternals.h
+	  libxslt/xsltutils.c libxslt/xsltutils.h: cleanup based on the
+	  report from the scripts.
+	* libxslt.spec.in: make sure libxslt-api.xml ends up in the devel
+	  package
+
+Thu Dec  5 18:05:44 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: xsl:element generated superfluous xmlns
+	  declarations, closes bug #99905
+	* tests/docs/Makefile.am tests/docs/bug-101.xml
+	  tests/general/Makefile.am tests/general/bug-101.*: added the
+	  example in the regression tests for this case
+
+Wed Dec  4 18:12:24 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xslt.c: Matt Sergeant reported a bug when having comments
+	  within an <xsl:text>
+
+Mon Dec  2 17:19:38 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.c: applied patch from Josh Parsons fixing bug
+	  #100056
+	* tests/docs/Makefile.am tests/docs/bug-100.xml
+	  tests/general/Makefile.am tests/general/bug-100.*: added the
+	  example in the regression tests for this case
+	* tests/docs/Makefile.am tests/docs/bug-99.xml
+	  tests/general/Makefile.am tests/general/bug-99.*: this test
+	  covers an xsl:attribute namespace bug that Norm pointed out.
+
+Thu Nov 28 17:52:21 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltInternals.h libxslt/xsltutils.c libxslt/xsltutils.h
+	  win32/libxslt.def.src: applied another patch from Richard Jinks
+	  for the export of teh sorting routine and allowing per context
+	  sort.
+
+Wed Nov 27 13:33:26 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/preproc.c libxslt/xsltInternals.h libxslt/xsltutils.c
+	  libxslt/xsltutils.h: Applied patch from Richard Jinks to allow
+	  redefining the sorting routine, plus a bit of tweaking of the
+	  interfaces.
+
+Tue Nov 26 16:02:38 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/Makefile.am doc/parsedecl.py: fixed the API generation
+	  scripts.
+	* doc/libxslt-api.xml doc/libxslt-refs.xml: regenerated
+	* doc/html/*.html: updated too
+	* python/libxsltclass.txt: updated too
+
+Tue Nov 26 15:17:13 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltutils.c libxslt/xsltutils.h: added the function
+	  xsltGetProfileInformation() to retrieve profiling informations
+	  from an XSLT transformation context. It returns it as an XML
+	  tree. Provided by Michael Rothwell this closes RFE #99527
+
+Tue Nov 26 14:40:45 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/imports.c: apply patch from Daniel Stodden, a bug
+	  in xsltFindElemSpaceHandling() missing imported informations
+	* tests/REC/stand-2.7-1.stand.out: this change slightly the result
+	  of this test.
+
+Mon Nov 25 17:33:48 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/namespaces.c: fix for namespace generation on 
+	  attributes created with xsl:attribute
+
+Mon Nov 25 17:30:02 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.spec.in configure.in: add a line in %changelog for releases
+
+Mon Nov 25 14:57:53 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.h: Kir Kolyshkin pointed out it lacked 
+	  xsltInternals.h reference.
+
+Sun Nov 24 15:49:58 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/tests/*.py: enable libxml2 memory debug before
+	  loading libxslt since libxslt initialization now includes
+	  EXSLT registration which initialize the libxml2 library and
+	  allocate memory
+
+Sun Nov 24 13:58:48 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxsl.py: updated with new version from Stéphane Bidoul
+
+Sat Nov 23 22:49:08 CET 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* win32/libxslt.def.src: exported new functions
+
+Sat Nov 23 14:46:06 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/date.c: patch from Charles Bozeman fixing a memory
+	  leak in exsltDateDurationFunction pointed out by Bernard Brinkhus
+	* python/tests/exslt.py: trouble with mem debug in that specific
+	  test...
+
+Sat Nov 23 12:33:58 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltInternals.h: Alexey Efimov reported a portability
+	  problem when compiling on HP-UX
+
+Sat Nov 23 12:23:32 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/generator.py python/libxslt.c: fixes for compiling
+	  without config.h
+
+Thu Nov 21 18:51:29 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixed bug #99168 select evaluating to
+	  a node list check
+
+Thu Nov 21 15:12:33 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/documents/result.xhtml: the XHTML1 serialization change
+	  to libxml2 modifies slightly the result of that test.
+
+Mon Nov 18 11:38:46 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: the python bindings requires libxml2 >= 2.4.25
+	  for the regexp stuff.
+
+Mon Nov 18 10:09:06 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: similar patch to #98825 for --with-python
+
+Sun Nov 17 22:06:59 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/variables.c: fix bug #98793 on clash of imported global
+	  variables.
+	* tests/reports/tst-1.err: this changes the output of that test
+
+Sun Nov 17 18:12:20 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing 1.0.23
+	* doc/*: rebuilding the docs
+
+Sat Nov 16 23:23:41 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxslt.c: make sure to register EXSLT for the bindings
+	* python/tests/Makefile.am python/tests/exslt.py: add a specific test
+	* xsltproc/xsltproc.c: minor cleanup
+
+Fri Nov 15 12:35:57 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/Makefile.am python/tests/Makefile.am: trying to fix #98518
+	  when building outside of the source tree
+
+Thu Nov 14 21:39:37 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/generator.py: xpathObjectRet() pertains to the libxml2
+	  module, add the namespace.
+
+Thu Nov 14 18:48:00 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* libxslt/win32config.h: cleanup
+	* win32/Makefile.mingw: new file, integrated mingw in JScript configure
+	* win32/Makefile.msvc: modified to allow mingw coexistence
+	* win32/configure.js: integrated mingw
+	* win32/Readme.txt: cleanup
+	* xsltproc/xsltproc.c: allowed stdarg for mingw
+
+Thu Nov 14 07:22:23 MST 2002 John Fleck <jfleck at inkstain.net>
+
+	* doc/xsltproc.1
+	* doc/xsltproc.html - ran stylesheets to update man page
+	and html with Daniel's fix to #95510
+
+Thu Nov 14 15:10:13 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: applied patch from Brian McCauley fixing #95493 
+	* doc/xsltproc.xml: fixing #95510 missing description of --writesubtree
+	* README: fix the bug page URL
+
+Thu Nov 14 10:03:12 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.c: make sure the fixup for key() reported
+	  by John Escott actually works.
+	* tests/docs/Makefile.am tests/docs/bug-98.xml
+	  tests/general/Makefile.am tests/general/bug-98.*: added the
+	  example in the regression tests for this case
+
+Wed Nov 13 10:35:46 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixes bug #97969 for @*[...] patterns
+	* tests/docs/Makefile.am tests/docs/bug-97.xml
+	  tests/general/Makefile.am tests/general/bug-97.*: added the
+	  example in the regression tests for this case
+	
+Tue Nov 12 22:35:47 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixes bug #97950 for cdata-section-elements
+	  checks in recursive copies.
+	* tests/docs/Makefile.am tests/docs/bug-96.xml
+	  tests/general/Makefile.am tests/general/bug-96.*: added the
+	  example in the regression tests for this case
+
+Tue Nov 12 19:31:49 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.c: autoconvert key() first arg to string,
+	  reported by John Escott
+
+Tue Nov 12 13:40:47 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: corner case handling of copying a CDATA node.
+
+Fri Nov  8 18:12:46 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* libxslt/win32config.h: retired xmlwin32version.h
+
+Fri Nov  8 17:09:14 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am libxslt.m4 libxslt.spec.in: integrated libxslt.m4
+	  written by Thomas Schraitle (RFE #96485)
+
+Thu Nov  7 11:18:42 MST 2002 John Fleck <jfleck at inkstain.net>
+
+	* doc/xsltproc.xml
+	* doc/xsltproc.1
+	clarifying --catalog option and xsltproc's use of 
+	XML_CATALOG_FILES and /etc/xml/catalog. fixes
+	http://bugzilla.gnome.org/show_bug.cgi?id=97891
+	
+Mon Nov  4 06:55:36 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: remove the use of snprintf, and use
+	  libxml2 string API instead.
+	* configure.in libxslt/xsltconfig.h.in libxslt/xsltutils.c:
+	  try to cope with architecture lacking some of the string functions,
+	  reuse the trio ones compiled in libxml2 , should close #97113
+
+Wed Oct 23 17:06:24 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am libxslt.spec.in doc/Makefile.am: cleaned up
+	  the spec file and associated changes in the Makefiles.
+
+Tue Oct 22 21:02:37 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: Forgot to check a pointer, fixes bug #96495
+
+Tue Oct 22 20:53:10 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/keys.h: fixed include c.f. bug #96487
+	* config.h.in:  Red Hat 8.0 induced change 
+
+Mon Oct 21 20:56:31 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c libxslt/numbersInternals.h libxslt/xsltutils.[ch]:
+	  fixed bug #78501 when using a non ascii character for the
+	  number formatting grouping separator.
+	* tests/docs/Makefile.am tests/docs/bug-95.xml
+	  tests/general/Makefile.am tests/general/bug-95.*: added the
+	  example in the regression tests for this case
+	* libxslt/attributes.c: cleaning up a problem introduced in last
+	  patch
+
+Mon Oct 21 09:31:55 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* libxslt/attributes.c: fixed minor typo in a call to
+	  xmlHasNsProp
+
+Sun Oct 20 23:20:37 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/types.c: fixed bugs when passing result value tree
+	  to Python functions.
+
+Sun Oct 20 15:23:28 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* libxslt/win32config.h: mapped vsnprintf to _vsnprintf for the
+	  MS runtime
+	* xsltproc/xsltproc.c: mapped snprintf to _snprintf for the MS
+	  runtime
+	
+Fri Oct 18 13:40:12 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing 1.0.22
+	* doc/*: upated and rebuilt the docs
+
+Thu Oct 17 16:32:44 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/variables.c: fixed bug #86421 
+	* tests/docs/Makefile.am tests/docs/bug-94.xml
+	  tests/general/Makefile.am tests/general/bug-94.*: added the
+	  example in the regression tests for this case
+
+Thu Oct 17 15:50:04 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc: added and tested the --path option to close #79638
+
+Thu Oct 17 15:25:46 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attributes.c: fixing bug #95826 the attribute was reset
+	  with the inherited stylesheet value.
+	* tests/docs/Makefile.am tests/docs/bug-93.xml
+	  tests/general/Makefile.am tests/general/bug-93-inc.*
+	  tests/general/bug-93.*: added the example in the regression
+	  tests for this case
+	
+Tue Oct 15 18:02:37 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltInternals.h libxslt/xsltutils.[ch]: added the
+	  possibility to register a transformation context specific
+	  error handler, with xsltSetTransformErrorFunc() and provided
+	  a new routine xsltTransformError() to handle contextual errors,
+	  this should fix #94435
+	* libxslt/*.c: modified all the code to use the context specific
+	  error handling, as a result xsltPrintErrorContext() is not called
+	  anymore except internally from xsltTransformError()
+
+Tue Oct 15 14:52:23 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: closing #94933, any error will make
+	  the transformation abort with  no result.
+	* tests/reports/tst-1.err tests/reports/tst-1.out 
+	  tests/reports/undefvar.err: this changed the regression tests
+	  output.
+	* tests/exslt/date/difference.1.out tests/exslt/date/seconds.1.out:
+	  updated the result accordingly to the fixes done last month.
+	* libxslt/namespaces.c: make sure to avoid duplicate namespace
+	  declarations in the result trees. May fix #93692 but it's unclear.
+
+Tue Oct 15 12:45:42 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: added a --path option to provide the
+	  enhancement requested by #79638, first cut at it, untested
+	  yet.
+
+Tue Oct 15 13:02:40 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xslt.c: seems the media-type attribute wasn't
+	  always correctly handled
+
+Mon Oct 14 09:27:01 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: added URI escaping in case the resource 
+	  target computation of exslt:element failed. Should fix #81837
+
+Tue Oct 15 12:42:25 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* README: updated the contact informations
+
+Tue Oct 15 11:40:19 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixed the behaviour of node() patter which
+	  didn't patch the one defined in XPath :-( . Closes bug #95793
+	* tests/docs/Makefile.am tests/docs/bug-92.xml
+	  tests/general/Makefile.am tests/general/bug-92.*: added the
+	  example in the regression tests for this case
+
+Mon Oct 14 12:29:53 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* libxslt/win32config.h: remapped mkdir to _mkdir for MS runtime
+	* win32/Makefile.msvc: added security.c to the build
+	* win32/libxslt.def.src: exported functions from security.c
+
+Thu Oct 10 18:41:56 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: added another option --writesubtree to allow
+	  documents to be written only to  a given subtree.
+
+Thu Oct 10 17:16:52 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/security.[ch] libxslt/Makefile.am: new module with
+	  runtime security checks, it will also check and do directory
+	  creation when allowed
+	* libxslt/documents.c libxslt/imports.c libxslt/transform.c
+	  libxslt/xslt.c libxslt/xsltInternals.h: plug-in the new
+	  security infrastructure probes at file reading or file creation
+	* xsltproc/xsltproc.c: plugged the security module there too,
+	  added the new options --nowrite and --nomkdir
+	* doc/*: updated the man page and regenerated.
+
+Wed Oct  9 18:37:56 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/*: updated the doc XSLT to add the search, added the search
+	  page, fixed a link problem raised by Yves Pratter, regenerated
+
+Wed Oct  9 14:27:17 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/index.py: the indexer version of the XSLT part of the
+	  xmlsoft site + archives
+
+Sun Sep 29 20:02:25 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* win32/Makefile.msvc: introduced double-run compilation.
+	* win32/configure.js: introduced double-run compilation.
+
+Thu Sep 26 20:08:50 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing 1.0.21
+	* doc/* : updated and regenerated the docs and web pages
+
+Wed Sep 25 11:16:06 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixed a disable output escaping bug for
+	  HTML output introduced in 1.0.20 and raised by Mario Weilguni
+	* tests/docs/Makefile.am tests/docs/bug-91.xml
+	  tests/general/Makefile.am tests/general/bug-91.*: added the
+	  example in the regression tests for this case
+
+Tue Sep 24 20:33:08 MDT 2002 John Fleck <jfleck at inkstain.net>
+
+	* doc/xlst.html: changing link on ftp.gnome.org
+
+Mon Sep 23 10:14:38 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am: set-up DIST_SUBDIRS to avoid the same problem Jacob
+	  reported for libxml2
+
+Fri Sep 20 14:06:45 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am configure.in: trying to fix the same problem as
+	  #88412 by bypassing all the python subdir if python ain't detected
+
+Fri Sep 20 10:55:03 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/templates.c: fixed a problem reported by Mark Vakoc
+
+Wed Sep 18 15:46:50 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* libexslt/date.c: fixed the embedded '-' in the duration format 
+	  function
+	* tests/.../difference.1.xml: added test cases which illustrated
+	  the above bug
+
+Tue Sep 17 18:01:22 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* libexslt/date.c: fixed date:difference() bugs, removed all
+	  type conversion warnings.
+	* libxslt/xsltutils.c: removed unused local variable.
+
+Sat Sep 14 16:17:51 MDT 2002 John Fleck <jfleck at inkstain.net>
+
+	* doc/xsltproc.html:
+	oops, forgot to update the html version of the man page
+
+Sat Sep 14 16:10:21 MDT 2002 John Fleck <jfleck at inkstain.net>
+
+	* doc/xsltproc.xml
+	* doc/xsltproc.1
+	* doc/xsltproc2.html
+	Fixing erroneous mention of old --warnnet option (thanks to Jean
+	T. Anderson for pointing this out)
+
+Tue Sep 10 21:05:28 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* win32/configure.js: added more readme info for the binary
+	  package.
+	
+Mon Sep  9 14:07:06 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixed a bug in match="node()" reported by
+	  Ben Ko
+
+Mon Sep  9 14:06:25 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.spec.in: fixes libary path for x86_64 AMD
+
+Thu Sep  5 10:07:13 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/Makefile.am: applied patch from Christophe Merlet to
+	  reestablish DESTDIR
+
+Thu Aug 29 21:26:30 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: re-applied the patch from Nathan Myers about
+	  a possible memory leak in case of error
+
+Wed Aug 28 13:44:54 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/Libxslt-Logo-180x168.gif doc/Libxslt-Logo-90x34.gif:
+	  nice logos generated by Marc Liyanage
+	* doc/site.xsl *.html: changed the stylesheet to show the new
+	  logo and regenerated the pages
+
+Sun Aug 25 17:01:40 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxslt-python-api.xml python/libxslt.c
+	  python/libxsltclass.txt python/tests/basic.py: applied a patch
+	  from Ralf Mattes providing style.saveResultToString()
+
+Fri Aug 23 13:53:50 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing release 1.0.20
+	* doc/*: updated and regenerated the docs
+
+Wed Aug 21 21:27:29 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/templates.c: fixed a bug w.r.t. namespace context when
+	  doing the evaluation of attribute value templates 
+	* libxslt.spec.in python/Makefile.am: fixed some troubles
+	  with "make rpm"
+
+Wed Aug 21 18:59:28 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxslt.c: fixed the parameter order when calling
+	  Python based extensions.
+
+Wed Aug 21 13:48:07 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c libxslt/xslt.c: fixed bug #89258 and a bit of
+	  cleanup.
+	* tests/docs/Makefile.am tests/docs/bug-90.xml
+	  tests/general/Makefile.am tests/general/bug-90.*: added the
+	  example in the regression tests for this case
+
+Tue Aug 20 16:40:48 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* win32/Makefile.msvc: added the prefix location to the include
+	and lib search path.
+
+Mon Aug 19 15:03:11 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: found and fixed the small <xsl:choose>
+	  bug which was giving troubles to DocBook users (the test expression
+	  of <when> was evaluated in the namespace context of <choose> !)
+
+2002-08-18  Havoc Pennington  <hp at pobox.com>
+
+	* autogen.sh: hardcode aclocal-1.4/automake-1.4 so that users with
+	both automake 1.6 and 1.4 installed get the right automake. Means
+	compilation from CVS will now require the latest automake 1.4
+	release, or manually creating symlinks called "automake-1.4" and
+	"aclocal-1.4"
+
+Wed Aug 14 18:54:19 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in python/Makefile.am: AMD x86-64 induced changes from
+	  Frederic Crozat
+
+Wed Aug 14 13:35:04 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.c: recovering to the old (somewhat) broken
+	  implementation of document('') when there is no base for the
+	  source document or it can't be realoaded (e.g. when the sytlesheet
+	  was loaded from a memory string). Matt Sergeant insisted on this
+	  one :-)
+
+Tue Aug 13 11:21:44 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: applied another patch from Nathan Myers about
+	  a possible memory leak in case of error
+
+Mon Aug 12 23:12:59 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: applied a patch from Nathan Myers about
+	  an erroneous free in case of error
+
+Thu Aug  1 14:29:11 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: upon suggestion of Marc-Andre Lemburg, make 
+	  the misdetection of libxml2 python bindings a warning only
+
+Sun Jul 21 19:10:00 HKT 2002 William Brack <wbrack at mmm.com.hk>
+
+	* xsltInternals.h/xslt.c/transform.c and pattern.c: fixed
+	  a bug reported by Gero Meissner (87230)
+	* fixed a problem compiling python directory when multiple
+	  'make' jobs were executed (python/Makefile.am)
+
+Wed Jul 17 19:58:36 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attributes.c: fixed a bug reported by Keith Isdale
+	  at the xsltdbg interface when encountering an empty attribute
+	  set.
+
+Wed Jul 17 19:51:47 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/* : the change in HTML meta encoding tag serialization
+	  affected some of the results
+
+Thu Jul 11 22:04:30 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/Makefile.am: adding doc/xsltproc.xml to the tarball
+	  to fix Red Hat bug #68614 
+
+Wed Jul 10 21:28:11 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+	
+	* win32/Makefile.msvc: Made the copy *.pdb in install succeed even
+	  if there is no *.pdb
+	
+Sat Jul  6 22:00:08 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing 1.0.19
+	* doc/* : rebuilt the docs
+
+Sat Jul  6 17:51:14 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixed bug #83749 about namespace generated
+	  being invalid when they are inherited from the context.
+
+Fri Jul  5 22:27:47 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixed bug #86753 on multiple identical
+	  attributes being generated, oops ...
+	* tests/docs/Makefile.am tests/docs/bug-89.xml
+	  tests/general/Makefile.am tests/general/bug-89.*: added an
+	  example in the regression tests for this case
+	
+Fri Jul  5 18:28:08 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/preproc.c libxslt/transform.c: fixed bug #87279
+	* tests/docs/Makefile.am tests/docs/bug-88.xml
+	  tests/general/Makefile.am tests/general/bug-88.*: added an
+	  example in the regression tests for this case
+
+Fri Jul  5 16:30:02 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/preproc.c libxslt/xsltutils.c: applied a patch from
+	  Ken Neighbors to implement/fix sorting orders
+	* tests/docbook/result/*/gdp-handbook.* 
+	  tests/docbook/result/xtchunk/html/*.orig
+	  tests/general/bug-12-.out tests/general/bug-63.out:
+	  cleaned up the result of "make tests" following some changes
+	  in namespace axis order and serialization rules in libxml2
+
+Thu Jul  4 16:53:00 HKT 2002 William Brack <wbrack at mmm.com.hk>
+
+	* transform.c further enhancement for bug 84902 (another
+	  path), also cleaned up code slightly
+
+Wed Jul  3 00:50:00 HKT 2002 William Brack <wbrack at mmm.com.hk>
+
+	* transform.c: fixed bug 84902 - message with terminate=yes
+	  caused segfault
+
+Tue Jul  2 00:02:53 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-87.xml
+	  tests/general/Makefile.am tests/general/bug-87.*: added a
+	  example in the regression tests for a case where the XML
+	  default namespace was missing from the namespace axis
+	* xsltproc/xsltproc.c: added the informations that parameter
+	  strings are expected to be UTF8
+	* libxslt/attributes.c: fixes on attribute group implementation
+
+Sat Jun 29 21:12:14 MDT 2002 John Fleck <jfleck at inkstain.net>
+
+	* doc/xsltproc.xml, doc/xsltproc.html/, doc/xsltproc.1
+	updating docs to add reference to UTF-8 requirement for
+	stringparam command line option
+
+Wed Jun 19 13:43:00 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/documents.c libxslt/functions.c libxslt/xsltInternals.h:
+	  fixed document('') as pointed by Eric van der Vlist
+	* tests/docs/Makefile.am tests/docs/bug-86.xml
+	  tests/general/Makefile.am tests/general/bug-86.*: added the
+	  specific example in the regression tests
+
+Sat Jun 15 15:44:58 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c libxslt/numbersInternals.h: applied a
+	  patch from Ken Neighbors fixing some format-number inconsistencies
+	* tests/numbers/format-number.out tests/numbers/format-number.xml
+	  tests/numbers/format-number.xsl: the patch also included
+	  updates to the regression tests
+
+Mon Jun 10 14:55:31 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c: patch from Richard Jinks t correct a bug in
+	  xsl:number level="multiple"
+	* tests/docs/Makefile.am tests/docs/bug-84.xml
+	  tests/general/Makefile.am tests/general/bug-84.*: added a 
+	  specific example in the regression tests
+
+Fri May 31 09:33:09 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/dynamic.c: turned a function static
+	* libxslt/win32config.h: applied patch from Mark Vadoc
+
+Thu May 30 23:35:47 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* win32/Makefile.msvc libexslt/Makefile.am libexslt/date.c
+	  libexslt/dynamic.c libexslt/exslt.c libexslt/exslt.h: applied
+	  a patch from Mark Vakoc to implement the EXSLT
+	  object dyn:evaluate(string) extension function, and a small fix
+	  to date.c
+
+Mon May 27 23:24:57 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing 1.0.18
+	* doc/*: recompiled the API and web site
+
+Mon May 27 19:14:46 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/namespaces.c libxslt/transform.c: fix bug #81099 about
+	  duplicated namespace declarations, this might not be as generic as
+	  it should but works well for DocBook stylesheets
+
+Sat May 25 12:07:45 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.pc.in: fix bug #82970
+
+Fri May 24 15:02:50 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxslt-python-api.xml python/libxslt.c 
+	  python/libxsltclass.txt : tried to fix #79105 by providing a 
+	  specific error registering routine.
+
+Thu May 23 17:28:35 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltutils.[ch] : applied patch from Morus Walter
+	  adding xsltSaveResultToString()
+	* doc/APIfiles.html doc/APIfunctions.html doc/libxslt-api.xml
+	  doc/libxslt-decl.txt doc/libxslt-refs.xml: this increased the
+	  API with the new function.
+
+Wed May 22 11:50:36 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/function.c: applied a patch from Richard Jinks
+	  to avoid a crash in element-available()
+
+Tue May 21 19:38:20 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.spec.in: applied patch from Geert Kloosterman to
+	  not miss gif and .png files in the RPM  documentation
+
+Tue May 21 08:43:11 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/libexslt.4: Applied patch for the EXSLT man page
+	  from Charles Bozeman
+
+Sat May 18 10:01:38 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/libexslt.4 libxslt/libxslt.4 libxslt/keys.c 
+	  libxslt/xsltconfig.h.in: applied a man page patch from 
+	  Christian Cornelssen and fixed a couple of issues he raised.
+
+Thu May 16 19:38:24 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: moved the extension dump out of the loop
+
+Thu May 16 19:31:35 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.[ch]  xsltproc/xsltproc.c win32/libxslt.def.src:
+	  Applied Mark Vakoc patch to show registered extensions in xsltproc
+	* doc/*: rebuilt the API, docs and website
+	* python/libxsltclass.txt: this added an entry point
+
+Wed May 15 00:20:10 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* libxslt/xslt.c: xsl:include crash fix
+	* libxslt/imports.c: xsl:include crash fix
+	* libxslt/imports.h: xsl:include crash fix	
+
+Wed May  9 01:39:14 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* libexslt/exslt.h: fixed a typo _cplusplus -> __cplusplus
+
+Thu May  2 11:08:22 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c libxslt/xsltutils.c doc/xsltproc.xml:
+	  fixed some return code problems raised by Thomas Mauch
+
+Tue Apr 30 18:06:14 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: don't allow adding an attribute to
+	  a document node
+
+Mon Apr 29 19:00:22 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libxslt/xsltwin32config.h: preparing 1.0.17
+	* doc/*: rebuilt the docs.
+
+Mon Apr 29 17:22:08 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/variables.c: better attempt to fix the problem in
+	  xsltProcessUserParamInternal reported by Babak Vahedipour-Kunze
+
+Sun Apr 28 17:53:23 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* win32/dsp/*.dsp: Removed obsolete macros
+	* win32/dsp/*.def: Updated export definitions
+	
+Sun Apr 28 17:47:17 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/variables.c: tried to fix a problem in
+	  xsltProcessUserParamInternal reported by Babak Vahedipour-Kunze
+
+Fri Apr 26 08:15:30 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/date.c: applied another patch from Charles Bozeman to
+	  enhance date/duration support
+	* tests/exslt/date: added the associated set of regression tests
+
+Thu Apr 25 08:18:57 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/date.c: applied a patch from Charles Bozeman to add
+	  duration routines to the date exslt extensions.
+
+Thu Apr 18 22:56:06 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/exslt.h: extern "C" {  missing by Mark Vakoc
+
+Tue Apr 17 23:16:54 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* libexslt/date.c: fixed type inconsistencies, double->int
+	 and unsigned/signed mismatch warnings eliminated
+
+Tue Apr 16 19:40:21 CEST 2002 Igor Zlatkovic <igor at stud.fh-frankfurt.de>
+
+	* win32/Makefile.msvc: XSLT debugger support fix
+	* win32/configure.js: XSLT debugger support fix
+	* libxslt/xsltconfig.h.in: XSLT debugger support fix
+
+Mon Apr 15 19:27:31 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing 1.0.16
+	* doc/*: updated and rebuilt the docs
+
+Mon Apr 15 17:27:51 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attributes.c: removed a warning
+	* libxslt/transform.c libxslt/transform.h win32/libxslt.def.src:
+	  added xsltRunStylesheetUser() API needed to fix #78546
+	* xsltproc/xsltproc.c: second part of the fix #78546
+
+Mon Apr 15 15:57:28 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/Makefile.am: fixing the equivalent of #75779
+
+Mon Apr 15 14:00:12 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/keys.c: fixed bug #78735
+	* configure.in tests/Makefile.am tests/keys/*:
+	  added the tests in a separate directory
+
+Mon Apr 15 00:01:07 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-83.xml
+	  tests/general/Makefile.am tests/general/bug-83.*: added a 
+	  specific example for bug #78662 in the regression tests
+	* tests/docbook/: this also changed a couple of DocBook results
+	
+Sun Apr 14 15:32:23 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: trying to kill #77827 IEEE conformance on alphas
+	* libxslt/imports.c libxslt/transform.c libxslt/xslt.c: fixing
+	  bug #78211
+	* tests/docs/Makefile.am tests/docs/bug-82.xml
+	  tests/general/Makefile.am tests/general/bug-82.*: added a 
+	  specific example for bug #78211 in the regression tests
+
+Wed Apr 10 20:35:54 CEST 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: applied patch from Mark Vakoc
+
+Fri Mar 29 18:28:23 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-81.xml
+	  tests/general/Makefile.am tests/general/bug-81.*: added a 
+	  specific example for bug #76927 in the regression tests
+	
+Wed Mar 27 10:03:11 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* AUTHORS HACKING: Added Igor Zlatkovic as official maintainer
+	* python/Makefile.am python/tests/Makefile.am: Albert Chin pointed
+	  that $(datadir) should be used for docs
+
+Mon Mar 25 17:56:44 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing 1.0.15
+	* doc/*: updated and rebuilt
+
+Mon Mar 25 17:11:42 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attributes.c libxslt/attributes.h libxslt/pattern.c
+	  libxslt/xslt.c: Fix bug #76043 about cascading attribute sets
+	* tests/docs/Makefile.am tests/docs/bug-80.xml
+	  tests/general/Makefile.am tests/general/bug-80.*: added a 
+	  specific example for bug #76043 in the regression tests
+
+Fri Mar 22 19:26:47 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: Fixing bug #75902 error with @foo[..]
+	  steps which were not compiled
+	* tests/docs/Makefile.am tests/docs/bug-79.xml
+	  tests/general/Makefile.am tests/general/bug-79.*: added a 
+	  specific example for bug #75902 in the regression tests
+	
+Fri Mar 22 16:13:22 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: Fixing bug #75777 error with namespaced
+	  attribute match rules evaluation
+	* tests/docs/Makefile.am tests/docs/bug-78.xml
+	  tests/general/Makefile.am tests/general/bug-78.*: added a 
+	  specific example for bug #75777 in the regression tests
+	
+Thu Mar 21 17:19:56 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: found another stupid bug by step by 
+	  step processing of the code
+	* libxslt/pattern.c: idem, except that once stupid mistake
+	  ELEM vs NODE forced the templates to be stored in a list
+	  instead of a hash table, fixing this stupidity should
+	  again lead to a substantive improvement of processing speed.
+	  Like divide by 2 processing time for DocBook stylesheets.
+
+Thu Mar 21 00:25:12 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixing bug #75603
+	* tests/docs/Makefile.am tests/docs/bug-77.xml
+	  tests/general/Makefile.am tests/general/bug-77.*: added a 
+	  specific example for bug #75603 in the regression tests
+
+Wed Mar 20 17:49:43 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/Makefile.am: Art Haas pointed a stupid error
+
+Tue Mar 19 19:42:01 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am tests/Makefile.am tests/*/Makefile.am
+	  tests/*/*/Makefile.am : added "make valgrind" targets
+	  to run the test suite under the debugger control
+	* transform.c: valgrind spotted 2 bugs, one related to
+	  the ordering of the deallocation of the data associated to
+	  a transofrmation, the second in xsltCopyTree when the new
+	  node may have been coalesced with an adjacent text node.
+	  The regression tests now pass cleanly under testgrind.
+
+Mon Mar 18 21:33:38 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/Makefile.am: fixed a stupid bug
+
+Mon Mar 18 20:45:27 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing 1.0.14
+	* doc/*: updated rebuilt
+	* libxslt/*.c libexslt/*.c libxslt/libxslt.h libexslt/libexslt.h:
+	  implemented the IN_LIBXSLT and IN_LIBEXSLT mechanism discussed
+	  with the Windows maintainers
+
+Mon Mar 18 16:22:46 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/Makefile.am python/generator.py python/libxslt.c
+	  python/types.c python/tests/Makefile.am: applied the same kind of
+	  fixes to the Python Makefiels than to libxml2 ones. Updates
+	  and cleanups too.
+
+Sat Mar 16 23:48:21 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/common.c libxslt/pattern.c  libxslt/transform.c
+	  libxslt/variables.c: chaing result tree values which may
+	  be deallocated and must not be kept in the template 
+	  pattern lookup cache. Thanks to Valgrin to allow finding
+	  the real problem in bug #74857
+
+Wed Mar 13 15:17:51 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/*.h doc/* python/*: applied another cleanup comment
+	  diff from Heiko W. Rupp, regenerated the API and python
+
+Wed Mar 13 13:41:19 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-76.xml
+	  tests/general/Makefile.am tests/general/bug-76.*: added a 
+	  home brewed test for path computation elmininating duplicate
+	  in result sets.
+
+Sat Mar  9 11:53:39 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/Makefile.am: fixed a build problem in some environements
+
+2002-03-08  jacob berkman  <jacob at ximian.com>
+
+	* python/Makefile.am (libxsltmodule_la_SOURCES): remove $(srcdir)
+	as make will automatically look there for these files
+
+Fri Mar  8 17:44:31 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libxslt/xsltwin32config.h: preparing release
+	  1.0.13
+	* doc/*: updated and rebuilt the docs
+	* python/libxslt.c: fixed a possible reentrancy problem
+
+Fri Mar  8 14:51:59 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: Fixes the problems exposed by #73880
+	  those ought to be computed at stylesheet compile time, not
+	  at run-time, and the computation was wrong.
+	* libxslt/transform.c: get rid of fake nodes coming from node-set
+          transformations. At least if they are still produced they will
+	  become easy to spot as resulting document won't be well-formed.
+
+Thu Mar  7 17:01:21 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.c: fixed bug #73791 related to extension
+	  function declared in included stylesheets
+	* tests/exslt/functions/function.7.*: added specific test
+
+Thu Mar  7 15:20:32 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-75.xml
+	  tests/general/Makefile.am tests/general/bug-75.*: added a 
+	  specific example for bug #72150 in the regression tests
+
+Thu Mar  7 15:17:21 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in xsltproc/xsltproc.c: fixed bug #71488 in a
+	  similar way as #71457
+
+Thu Mar  7 09:41:59 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/xmlspec/REC-xml-20001006*.html tests/XSLTMark/xslbench1.out:
+	  some HTML meta encoding fixups resulting from fix in libxml2
+
+Mon Mar  4 18:09:48 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/namespaces.c tests/general/bug-63.out: small fixups
+	  related to the XPath changes in fixing #61290
+	  
+Mon Mar  4 12:57:21 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixed bug #73363, bad tokenization of
+	  pattern
+
+Mon Mar  4 12:01:34 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/date.c: patch from Charles Bozeman for the exslt date
+	  extension
+	* configure.in tests/exslt/Makefile.am tests/exslt/date/*: added
+	  the associated regression test provided by Charles
+
+Fri Mar  1 10:17:26 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/preproc.c: Fixed #73088 with the associated patch
+
+Fri Mar  1 10:14:07 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: similar to #72663 and #72658, don't memdump
+	  unless compiled explicitely with memory debugging switched on
+	* TODO: refreshed a bit
+
+Fri Feb 22 23:44:57 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/generator.py python/libxslt.c: changes for the 'usual'
+	  setup.py to allow building a libxml2-python
+	  module based on the same code. The initialization is however
+	  different the 2 .so files fo libxml2 and libxslt are identical and
+	  they entry point initialize both libraries. this is done to avoid
+	  some possible nasty problem since the Python don't merge the maps
+	  of all shared modules.
+	* python/libxsl.py: attempt to cope with the shared library loading
+	  problem when both modules are not merged.
+
+Thu Feb 21 12:59:59 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/site.xml doc/xslt.html doc/python.html doc/*.html: added
+	  documentation for the wrappers and python modules.
+
+Wed Feb 13 14:22:22 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-74.xml
+	  tests/general/Makefile.am tests/general/bug-74.*: added a 
+	  specific example for bug #71342 in the regression tests
+	* tests/docbook/result/xhtml/gdp-handbook.xhtml: fixing
+	  #71342 changed one attribute serialization.
+
+Tue Feb 12 15:08:38 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/Makefile.am: trying to fix #71270 
+
+Mon Feb 11 19:40:34 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/*.py: removed tab used spaces
+	* configure.in libxslt/xsltwin32config.h: preparing 1.0.12
+	* doc/news.html doc/xslt.html: rebuild/updated
+
+Mon Feb 11 16:34:37 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-73.xml
+	  tests/general/Makefile.am tests/general/bug-73.*: added a 
+	  specific example for bug #71181 in the regression tests
+
+Mon Feb 11 16:22:36 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixed bug #71181 p/text() would not
+	  work. A bit of cleanup.
+
+Mon Feb 11 15:01:42 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xslt-config: fixing Red Hat bug #59508
+
+Mon Feb 11 14:27:25 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-72.xml
+	  tests/general/Makefile.am tests/general/bug-72.*: added a 
+	  specific example for bug #58444 in the regression tests
+
+Mon Feb 11 14:13:07 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixed bug #58444, was quite simpler
+	  than expected.
+
+Mon Feb 11 13:27:42 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltInternals.h libxslt/pattern.c: expected to have
+	  closed bug #70131, still wondering about the position() when
+	  the node is selected.
+
+Mon Feb 11 10:45:27 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docs/Makefile.am tests/docs/bug-71.xml
+	  tests/general/Makefile.am tests/general/bug-71.*: added a 
+	  specific example for Norm's bug in the regression tests
+
+Sun Feb 10 22:08:51 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attributes.c: fixed a bug reported by Norm
+
+Sun Feb 10 20:25:28 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxml.c : fixed a small warning.
+	* doc/libxslt-api.xml doc/libxslt-decl.txt doc/libxslt-refs.xml
+	  python/libxsltclass.txt: rebuilt the APIs
+
+Sun Feb 10 20:16:15 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/imports.c libxslt/numbers.c libxslt/pattern.c
+	  libxslt/pattern.h libxslt/transform.c libxslt/xslt.c
+	  libxslt/xsltInternals.h: adding extra run-time informations
+	  to make the stylesheet really read-only at run-time.
+
+Sun Feb 10 16:21:09 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixing bug #70281
+
+Sun Feb 10 15:10:56 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c: trying to fix #68759
+
+Sat Feb  9 23:17:53 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/Makefile.am: seems some version of automake didn't
+	  generate the dependancies right as Jacob found out. Add
+	  an extra dependancy rule.
+
+Sat Feb  9 19:04:01 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libxslt.spec.in python/Makefile.am python/generator.py
+	  python/libxsl.py python/libxslt.c python/tests/Makefile.am:
+	  Fixed the python Makefiles, corrected a bug showing up on ia64,
+	  changed the name of the python internal module too
+
+Fri Feb  8 17:01:10 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* Copyright Makefile.am configure.in libxslt.spec.in: change the
+	  Licence to MIT Licence and release of 1.0.11
+	* doc/FAQ.html doc/intro.html doc/libxslt-decl.txt doc/news.html 
+	  doc/xslt.html: updates of the docs accordingly
+	* libxslt/xsltwin32config.h: numbering
+	* python/generator.py python/libxml_wrap.h python/libxsltclass.txt
+	  python/libxslt-python-api.xml: cleanup the dependancies with
+	  libxml2
+	* python/tests/extfunc.py: updated examples.
+
+Thu Feb  7 23:21:18 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/libxslt-api.xml doc/libxslt-decl.txt doc/libxslt-refs.xml
+	  doc/parsedecl.py: fixup the script and rebuid the API
+	* libxslt/extensions.h: cleanup
+	* python/generator.py python/libxslt-python-api.xml python/libxslt.c
+	  python/libxsltclass.txt: provided accessors for a lot of the
+	  tructures involved in the transformation. Stylesheet and
+	  transformation python object don't free automatically the
+	  encapsulated object when deallocated.
+	* python/tests/Makefile.am python/tests/basic.py
+	  python/tests/extfunc.py python/tests/pyxsltproc.py:
+	  updated the examples
+
+Thu Feb  7 17:59:27 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: small fix
+	* Makefile.am: cleanup
+	* python/tests/Makefile.am: avoid a problem with $(TESTS)
+	* python/generator.py python/libxml_wrap.h python/libxsl.py
+	  python/libxslt.c python/libxsltclass.txt: augmented the
+	  wrappers
+	* python/tests/pyxsltproc.py: rewrote xsltproc on top of the
+	  libxslt-python API to get an estimate of what is missing
+
+Wed Feb  6 23:34:10 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxsl.py python/libxslt-python-api.xml python/libxslt.c
+	  python/libxsltclass.txt: added libxslt_xsltCleanup() added parameters
+	  to libxslt_xsltApplyStylesheet() removed the memleaks left and
+	  fixed an import order.
+	* python/tests/basic.py python/tests/extfunc.py: updated the tests
+
+Wed Feb  6 19:46:09 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* python/libxlst.c python/libxslt-python-api.xml 
+	  python/libxsltclass.txt: plugged the extension of the engine
+	  with python defined functions
+	* python/tests/Makefile.am python/tests/extfunc.py: added a
+	  basic test, still a memleak, cleanup function needed.
+
+Wed Feb  6 13:49:55 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.spec.in python/Makefile.am python/libxsl.py: the
+	  spec file will now build libxslt-python, fought with shared
+	  and other crazyness, seems to work now :-)
+	* doc/libxslt-api.xml: regenerated
+
+Wed Feb  6 11:29:31 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am configure.in tests/Makefile.am tests/*/Makefile.am
+	  tests/*/*/Makefile.am: refactored make tests, make all now don't
+	  run the test suite
+	* python/Makefile.am: added tests
+	* python/tests/basic.py python/tests/Makefile.am: added the first
+	  basic test, memory debug included
+
+Wed Feb  6 00:20:57 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in python/Makefile.am: attempst to tweak to get
+	  full memory debug...
+	* python/generator.py python/libxsl.py python/libxslt-python-api.xml
+	  python/libxslt.c python/libxslt_wrap.h python/libxsltclass.txt:
+	  the basic API starts to work
+	* python/tests/test.*: first basic test
+	* libxslt/xsltutils.c: fixed a comment
+
+Tue Feb  5 17:35:00 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in doc/Makefile.am: do not install outside of prefix,
+	  make sure the API get shipped.
+
+Mon Feb  4 19:47:32 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.[ch] doc/libxslt-api.xml doc/libxslt-refs.xml:
+	  reactivated xsltMatchPattern() since this is really something
+	  one may want to have access to in an extension function.
+	* Makefile.am configure.in python/Makefile.am python/generator.py
+	  python/libxml_wrap.h python/libxsl.py python/libxslt-python-api.xml
+	  python/libxslt.c python/libxslt_wrap.h python/libxsltclass.txt
+	  python/types.c: started working on the python bindings, borrowed
+	  most of the work done for libxml2, most of the generator code
+	  is similar. Commit at the point where this compiles cleanly and
+	  "import libxslt" doesn't yield any missing entry point.
+
+Wed Jan 30 12:46:41 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: patch from Charles Bozeman to support
+	  child::* patterns.
+
+Wed Jan 30 12:35:28 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/keys.c: Bob Stayton pointed out a problem when
+	  using unions in key match patterns.
+	* tests/docs/Makefile.am tests/docs/bug-70.xml
+	  tests/general/Makefile.am tests/general/bug-70.*: added a 
+	  specific example in the regression tests
+	
+Sun Jan 27 13:54:10 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: avoid a problem with Sun's Workshop CC,
+	  closes bug #69809 submitted by Michael Kroell
+
+Fri Jan 25 15:31:23 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: added links to the Web site from usage()
+
+Wed Jan 23 23:13:37 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/API*.html doc/parsedecl.py doc/*.xsl parsedecl.py: generated
+	  an index based on comments content similar to libxml2 one
+	  The code need more specific comments.
+	* doc/*: rebuilt the web site with the new references
+
+Mon Jan 21 09:53:45 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.h: roll back the change after more analysis
+	  proper fix is to restore the definition of xmlXPathFuncLookupFunc
+	  int libxml2
+
+Mon Jan 21 09:41:10 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.h: fixed a proble  after some cleanup of libxml2
+	  includes.
+
+Sun Jan 20 14:33:33 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: Fixed RH bug #58124 due to an off-by-one
+	  error when parsing -o arguments.
+
+Sun Jan 20 14:15:55 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/xsltproc.xml libxslt/xsltutils.c xsltproc/xsltproc.c:
+	  Fixed RH bug #57496, xsltproc was not returning error
+	  code on internal runtime errors. Should return 9 now.
+
+Fri Jan 18 09:43:16 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/math.c: Charlie Bozeman provided the implementation
+	  for the EXSLT math other functions
+
+Thu Jan 17 23:41:53 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/Makefile.am: jacob berkman pointed out that the
+	  Cygwin patch forgot to add libexslt.h to the tarball
+
+Thu Jan 17 23:39:00 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixed I18N problemes in the template parser
+	  pointed out by Xavier Cazin
+	* tests/docs/Makefile.am tests/docs/bug-69.xml
+	  tests/general/Makefile.am tests/general/bug-69.*: added a 
+	  specific example in the regression tests
+
+Thu Jan 17 10:40:03 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am libexslt/common.c libexslt/date.c libexslt/exslt.c
+	  libexslt/exslt.h libexslt/exsltconfig.h.in libexslt/functions.c
+	  libexslt/libexslt.h libexslt/math.c libexslt/saxon.c
+	  libexslt/sets.c libexslt/strings.c libxslt/libxslt.h
+	  libxslt/xslt.h libxslt/xsltconfig.h.in libxslt/xsltutils.c
+	  xsltproc/xsltproc.c: applied Robert Collins patch for 
+	  Cygwin support
+
+Thu Jan 17 10:34:39 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/Makefile.am configure.in: ugly way to keep
+	  the memory debugging active on my devel workstation
+	  by bypassing libtool completely
+
+Tue Jan 15 12:00:18 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/templates.c: fixed bug #68751
+	* tests/docs/Makefile.am tests/docs/bug-68.xml
+	  tests/general/Makefile.am tests/general/bug-68.*: added a 
+	  specific example in the regression tests
+	
+Tue Jan 15 10:40:41 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c xsltproc/xsltproc.c: fixed a couple of
+	  small problems raised by Justin Fletcher
+
+Mon Jan 14 18:35:18 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: releasing 1.0.10
+	* doc/*: updating the docs for the release.
+	* libxslt/namespaces.c libxslt/pattern.c libxslt/transform.c:
+	  seems I inadvertantly commited previously stuff from a failed
+	  attempt at fixing namespace nodes parents.
+
+Mon Jan 14 12:20:33 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c: the xsl:number implementation incorrectly
+	  cached the format string in some case. Fixes bug #65391
+
+Mon Jan 14 10:35:27 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: fixed a couple of cut and paste errors in the
+	  math functions detection
+	* libxslt.spec.in: added missing file entry for libxslt.pc
+
+Tue Jan  8 21:04:17 MST 2002 John Fleck <jfleck at inkstain.net>
+
+	* doc/xsltproc.xml, doc/xsltproc.1, doc/xsltproc.html
+	update xsltproc man page to add --stringparam option
+
+Tue Jan  8 17:21:02 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: added the --stringparam option
+	* xsltproc/xsltproc.c: applied John Fleck's patch to correct
+	  the --novalid behaviour.
+
+Tue Jan  8 13:51:08 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/site.xsl doc/*.html: added a DocBook section docbook.html
+
+Tue Jan  8 12:51:15 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* doc/*.html: updated gdome2 homepage
+
+Sat Jan  5 19:32:17 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* win32/dsp: Windows/MSVC project files update from Igor Zlatkovic
+
+Fri Jan  4 22:13:40 MST 2002 John Fleck <jfleck at inkstain.net>
+
+	* doc/xsltproc.xml, xsltproc.1 - updating man page to reflect
+	increased number of parameteres, changed license, cleaned up some
+	places where it looked junky because of stylesheet issues
+
+Fri Jan  4 15:50:25 CET 2002 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: increased the max number of parameters
+
+Thu Dec 20 14:54:27 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.pc.in configure.in: added pkg-config file from Rodrigo Moya
+
+Thu Dec 20 14:49:39 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: applied albert portability patch
+	* libxslt/libxslt.h libxslt/xslt.h libxslt/xsltconfig.h.in
+	 libxslt/xsltutils.c libxslt/xsltwin32config.h.in win32/dsp/libxslt.def:
+	 applied Igor patch for Windows
+
+Tue Dec 11 15:27:15 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltutils.c: fixed a problem with the debuuger interface.
+
+Fri Dec  7 15:48:48 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing 1.0.9
+	* doc/*: updated and rebuild the doc
+
+Thu Dec  6 14:57:56 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libexslt/Makefile.am: trying to fix the problem
+	  related to prelinking and libtools crazyness
+
+Wed Dec  5 18:49:53 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c libxslt/variables.c: applied Keith Isdale
+	  patch for the debugger glue.
+
+Wed Dec  5 18:43:45 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* breakpoint/Makefile.am breakpoint/deprecated.c: replaced
+	  the whole module with just the entry points.
+
+Fri Nov 30 18:59:50 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: Nik Clayton found a bug introduced in
+	  1.0.8 when using doctypes for HTML output
+
+Fri Nov 30 12:59:05 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attributes.c libxslt/transform.c libxslt/xsltutils.c
+	  libxslt/xsltutils.h: revamped the mechanism to hook a debuger
+	  to use a callback setup function, deprecating libxsltbreakpoint
+	* xsltproc/Makefile.am configure.in breakpoint/Makefile.am: removing
+	  dependancies on libxsltbreakpoint
+
+Thu Nov 29 09:52:38 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+        Build patch from  Peter Williams  <peterw at ximian.com>
+	* breakpoint/Makefile.am (INCLUDES): meed $(top_builddir)/libxslt.
+	* doc/Makefile.am ($(PAGES)): xslt.html and site.xsl live in
+	  $(srcdir), not the build directory.
+
+Wed Nov 28 11:17:04 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* doc/FAQ.html doc/site.xsl doc/*.html doc/Makefile.am: added an FAQ
+
+Tue Nov 27 21:15:43 MST 2001 John Fleck <jfleck at inkstain.net>
+
+	* doc/xsltproc.xml, xsltproc.1, xsltproc.html - documenting new
+	xsltproc return codes, per
+	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=56649 
+
+Tue Nov 27 22:16:50 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: Marc Tardif provided a patch to use as
+	  much as 40 steps. A dynamic alloc would still be better
+
+Mon Nov 26 21:45:07 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: return useful code signaling error conditions
+	  closing #56649 (RH)
+
+Mon Nov 26 13:14:14 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libxslt/xsltwin32config.h: preparing release of 1.0.8
+
+Mon Nov 26 11:21:27 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixing bug #64044 reported by Gero Meißner,
+	  template matches compilation was failing to skip blanks bewteen
+	  consecutive predicates
+
+Mon Nov 26 10:27:30 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am configure.in breakpoint/Makefile.am libexslt/Makefile.am:
+	  updating Makefiles to fix the prelinking.
+
+Sun Nov 25 15:52:38 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+* libxslt/transform.c: fixed a bug in the document extension
+	  element where the doctype infos were not taken into account.
+
+Thu Nov 22 19:08:23 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extra.c: fixed xsltDebug() to output with the normal
+	  error routines
+	* tests/namespaces/*: updated the tests to separate stdout and
+	  stderr
+	* libxslt/transform.c: increasing xsltMaxDepth to 5000
+
+Thu Nov 22 12:09:56 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libexslt/Makefile.am: more Makefile fixups
+
+Wed Nov 21 16:29:04 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libexslt/Makefile.am: trying to fix more Makefiles
+	  crapola
+	* libxslt/transform.c: small fix.
+
+Tue Nov 13 16:16:41 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* vms/* Makefile.am: included OpenVMS port instructions from
+	  John A Fotheringham, integrated in the tar file.
+
+Mon Nov 12 22:46:26 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* win32/dsp/* xsltproc/xsltproc.c libxslt/transform.c: Patches
+	  from Igor for Windows
+	* libxslt/xslt.h: try to fix the  LIBXSLT_PUBLIC mess
+
+Sun Nov 11 21:15:05 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: fixing bug #64298 reported by T. V. Raman
+
+Sat Nov 10 14:01:44 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing 1.0.7
+	* libxslt.spec.in: cleanup similar to libxml2 one
+	* breakpoint/*.[hc]: finished cleaning up contributed code
+	* doc/*: updated and rebuilt the documentation
+	* xsltproc/xsltproc.c: cleanup of the timing code
+	* xsltproc/Makefile.am: auto* sucks
+	* libxslt/transform.c: added a missing include
+
+Mon Nov  5 14:29:26 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am acconfig.h config.h.in configure.in 
+	  xsltproc/Makefile.am breakpoint/* libxslt/transform.[ch]
+	  libxslt/xsltconfig.h.in:  Applied Keith Isdale patch for
+	  the debugger support, make it the default, added the
+	  WITH_XSLT_DEBUGGER define to xsltconfig.h.in, small cleanups
+
+Fri Nov  2 11:19:49 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/libxslt.h: make sure LIBXSLT_PUBLIC is defined
+
+Thu Nov  1 15:15:39 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltutils.c: handle indent=no when using an HTML
+	  output
+	* tests/docbook/result/* tests/xmlspec/REC-xml-*.html: this
+	  modified the output of those test suites
+
+Wed Oct 31 18:53:26 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: cleanup, moved xsllNoNetExternalEntityLoader()
+	  to libxml and removed the --warnnet option
+
+Tue Oct 30 19:32:08 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: applied patches from David Härdeman closing
+	  bug #62891
+
+Tue Oct 30 15:25:19 CET 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libxslt/xsltwin32config.h: preparing 1.0.6
+	* libexslt/date.c: applied patch from Bruce Miller
+	* doc/*: updated and rebuilt the docs
+
+Fri Oct 26 14:12:14 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* win32/dsp/libexslt_a.dsp win32/dsp/libexslt_so.dsp
+	  win32/dsp/libxslt.def: updated with latest ZIP from Igor,
+	  made sure the .def is handled as binary
+
+Fri Oct 26 11:37:01 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* win32/dsp/libxslt.def libxslt/xslt.h: applied Igor patches
+	  for Win32
+	* doc/*.html doc/site.xsl: changed the site stylesheet a bit
+
+Thu Oct 25 23:05:14 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libxslt/numbers.c: take NaN and infinity attributes of
+	  xsl:decimal-format into account. Closes #62577
+
+Wed Oct 24 13:02:15 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* doc/*.html doc/site.xsl doc/Makefile.am: the web site
+	  is now extracted from the xslt.html flat file using
+	  the site stylesheet ... eat your own dogfood !
+	* libxslt/transform.c libxslt/xsltutils.c: fixed the 
+	  HTML output to not generate a DOCTYPE if it should not
+	  i.e. no identifier nor version specified in the xsl:output
+	* tests/multiple/out/*.orig tests/general/bug-11-.out 
+	  tests/general/bug-33-.out tests/general/bug-52.out
+	  tests/docbook/result/xtchunk/html/*.orig
+	  tests/docbook/result/html/gdp-handbook.html
+	  tests/XSLTMark/*.out: fixing xsl:output with method=html
+	  resulted in a number of small changes in the regression tests
+	  output
+
+Fri Oct 19 16:46:06 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/*.c libexslt/exsltconfig.h.in: moved the 
+	  config.h include out of exsltconfig.h since this header is
+	  exported and config.h is not.
+
+Wed Oct 17 21:20:55 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attributes.c libxslt/extensions.c libxslt/preproc.c
+	  libxslt/transform.c libxslt/xsltutils.h: cleanup TODO into
+	  XSLT_TODO
+
+Wed Oct 17 02:46:55 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libxslt/numbers.c: reworked internal representation of
+	  tokenized number format and parsing/tokenization. This fixes
+	  many bugs regarding separator and default tokens.
+	* tests/REC/test-7.7-3.out: the fix changes the output of this
+	  test. It now complies to the XSLT spec (wow! ;o)
+
+Tue Oct 16 11:25:15 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/Makefile.am configure.in config.h.in: trying to
+	  bypass libtool crazyness when compiling in my debug environment
+	* libxslt/templates.c: fix a compilation problem due to recent
+	  libxml changes
+
+Sun Oct 14 17:17:03 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libxslt/numbers.c tests/REC/test-7.7-4.out: implement initial
+	  non-alphanumeric token handling in number formatting.
+
+Wed Oct 10 11:58:41 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: releasing 1.0.5
+	* doc/xslt.html doc/html/*: updated and rebuilt the docs
+
+Wed Oct 10 00:10:01 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* tests/REC/test-7.7-4.out: fixed a typo
+	
+Tue Oct  9 22:59:00 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/saxon.c: fixed a typo and improved handling of
+	  non-XPath-expression arguments.
+	* libexslt/strings.c: fixed a bug in tokenize: function was using
+	  tctxt->output instead of tctxt->document->doc.
+	* libxslt/transform.c: fixed a bug in xsltDefaultProcessOneNode
+	  which was using variable "node" instead of "cur"
+
+Tue Oct  9 19:51:48 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libxslt/extra.[ch]: removed older SAXON extensions
+	  implementations from Darren Graves.
+	* libexslt/date.c: applied patch from Charlie Bozeman to fix
+	  a bug with time zone offset on Linux.
+
+Tue Oct  9 13:02:46 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/documents.c libxslt/extra.c libxslt/transform.[ch]:
+	  strip-space should also be applied to document imported
+	  at run-time.
+
+Tue Oct  9 12:36:53 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/imports.[ch] libxslt/transform.c libxslt/xslt.c:
+	  rewrote the way strip-space gets applied. Closes bugs #61962
+	* tests/docs/Makefile.am tests/docs/bug-66.xml
+	  tests/general/Makefile.am tests/general/bug-66.*: added a 
+	  specific example in the regression tests
+
+Mon Oct  8 11:27:52 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xslt.c: Fixing bug #61913
+	* libxslt/transform.c: removing a small memleak when running with
+	  the profiler.
+
+Sun Oct  7 18:53:34 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/saxon.c libexslt/Makefile.am libexslt/exslt.[ch]:
+	  added implementation of SAXON expression(), eval() and
+	  evaluate() functions.
+	  See http://saxon.sourceforge.net/saxon6.4.4/extensions.html
+	* tests/extension/evaluate.xsl tests/extension/list.{xsl,out}:
+	  modified to use SAXON namespace (functions are not registered
+	  in the LibXSLT namespace)
+	* tests/exslt/common/object-type.1.out: modified to take account
+	  of the new saxon:expression function
+
+Sun Oct  7 13:15:33 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c: fixed bug #61070, number ANY formatting 
+	  should be faster too.
+	* tests/docbook/result/xtchunk/html/* tests/xmlspec/REC-xml-20001006*.html:
+	  updated the result of the tests. A subtle bug unnnoticed yet
+	  in the XML Rec formatting got fixed.
+
+Sat Oct  6 19:45:07 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c: trying to fix bug #61070, seems there
+	  is still a couple of problem left. And optimizations are
+	  certainly needed.
+
+Sat Oct  6 15:10:16 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/variables.c: fixing bug #61673 part II
+	* tests/docs/Makefile.am tests/docs/bug-65.xml
+	  tests/general/Makefile.am tests/general/bug-65.*: added a 
+	  specific example in the regression tests
+
+Sat Oct  6 12:41:37 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixed bug #61627
+	* tests/docs/Makefile.am tests/docs/bug-64.xml
+	  tests/general/Makefile.am tests/general/bug-64.*: added a 
+	  specific example in the regression tests
+	* tests/docs/Makefile.am tests/docs/bug-63.xml
+	  tests/general/Makefile.am tests/general/bug-63.*: added a 
+	  specific example in the regression tests for bug #61291
+	  (fixed in libxml2 module)
+	* tests/reports/Makefile.am tests/reports/undefvar.*: added
+	  a test for handling undefined variables
+
+Thu Oct  4 15:49:57 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in xslt-config.in: trying to fix bug #60890
+
+Thu Oct  4 15:28:25 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: applied patch to close bug #60724
+
+Tue Oct  2 21:38:23 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/date.c: applied patch from Charlie Bozeman that fixes
+	  a bug in DAY_IN_WEEK and implements the date:week-in-month function
+
+Tue Oct  2 17:11:15 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extra.[ch] tests/extensions/list.*
+	  tests/extensions/evaluate.*: applied patch from Darren Graves
+	  adding support for Saxon's evaluate & expression extension functions
+	  http://users.iclway.co.uk/mhkay/saxon/saxon6.3/extensions.html
+
+Mon Oct  1 17:18:32 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltwin32config.h.in win32/dsp/libexslt_*.dsp: applied
+	  patches from Igor for Windows.
+
+Tue Sep 18 11:48:20 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xslt.c: fixed bug #60624
+	* libxslt/xsltutils.c: improver the error context reporting
+	* tests/reports/Makefile.am tests/reports/tst-2.*: added a
+	  specific regression test
+	* xsltproc/xsltproc: free the stylesheet if it contained an error.
+
+Mon Sep 17 14:45:48 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/variables.c: fixed a problem with global var override
+	  being reported as an error.
+	* tests/docs/Makefile.am tests/docs/bug-61.xml
+	  tests/general/Makefile.am tests/general/bug-61.*: added a 
+	  specific example in the regression tests
+	* configure.in tests/Makefile.am tests/reports/*: adding a test
+	  to make sure redefinition of global variables in the same stylesheet
+	  are still reported
+
+Sat Sep 15 17:32:16 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extra.c: okay the code from Norm is really non
+	  portable and break everywhere except on Sun and Linux
+	  platform. Compile it only on those targets.
+
+Sat Sep 15 06:25:02 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/date.c: fixed some bugs (reported by Charles Bozeman
+	  and Justin Fletcher)
+
+Fri Sep 14 15:22:30 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c: Fixing bug #60415 
+	* tests/docs/Makefile.am tests/docs/bug-61.xml
+	  tests/general/Makefile.am tests/general/bug-61.*: added a 
+	  specific example in the regression tests
+
+Fri Sep 14 12:42:22 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* tests/docbook/result/*: the change in libxml to output
+	  decimal charrefs instead of hexadecimal changed a lot of
+	  docbook results
+
+Thu Sep 13 15:30:01 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt.spec.in doc/Makefile.am: install xsltproc man page
+
+Wed Sep 12 21:09:53 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in: preparing for 1.0.4
+	* doc/xslt.html doc/html/*: updated and regenerated docs
+
+Wed Sep 12 18:10:33 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/date.c: fixed some compile warnings and disabled
+	  debugging by default.
+
+Wed Sep 12 17:00:53 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* win32/dsp/libxslt.def libxslt/variables.[ch]: trying to
+	  incorporate comments from bug #59220
+
+Wed Sep 12 05:51:32 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* configure.in libexslt/date.c libexslt/Makefile.am
+	  libexslt/exslt.[ch] libexslt/.cvsignore: added implementation
+	  of the EXSLT - Dates and Times core functions.
+	  The exsltDateFormat* functions need to be reworked but it
+	  works like this, even if it's quite messy.
+	* tests/exslt/strings/.cvsignore: added
+
+Tue Sep 11 14:48:43 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: tell in usage that parameter strings
+	  need to be quoted 
+
+Tue Sep 11 13:42:49 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/Makefile.am libxslt/transform.c: trying to close
+	  bug #60304 on xsl:fallback usage
+	* tests/docs/Makefile.am tests/docs/bug-60.xml
+	  tests/general/Makefile.am tests/general/bug-60.*: added a 
+	  specific example in the regression tests
+
+Tue Sep 11 13:02:34 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* tests/documents/Makefile.am tests/documents/*: changed the
+	  test to use doc%5Ffile instead of doc%20file, this is 
+	  sufficient to preserve the test capacities while closing
+	  bug #60090
+
+Tue Sep 11 12:33:03 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extra.c : close #59570 by simply not providing
+	  Norm's extension on FreeBSD.
+	* tests/general tests/docs: added a couple of new entries
+	  in the testsuite
+	* libexslt/strings.c: NULL initialized a local variable
+	  which was tested later on.
+
+Mon Sep 10 22:52:44 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c tests/docbook/result/fo/*: applied fix from
+	  #60143 and rebuilt the FO test outputs
+
+Mon Sep 10 19:38:54 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/attributes.c libxslt/transform.c: fixed bug #59757
+	  on inheritance of attributes from multiple attributes-sets
+
+Mon Sep  3 02:14:58 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/Makefile.am libexslt/exslt.[ch] libexslt/strings.c:
+	  added implementation of EXSLT - Strings.
+	  Currently implemented functins are str:tokenize, str:align
+	  str:concat and str:padding.
+	* configure.in tests/exslt/Makefile.am
+	  tests/exslt/strings/Makefile.am
+	  tests/exslt/strings/tokenize.1.*: added a test for the
+	  str:tokenize function.
+
+Fri Aug 31 13:51:53 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/libxslt.4 libexslt/libexslt.4 libxslt/Makefile.am
+	  libexslt/Makefile.am: added man pages provided by Heiko Rupp
+
+Wed Aug 29 21:23:54 MDT 2001 John Fleck <jfleck at inkstain.net>
+
+	* doc/tutorial/libxslttutorial.xml, libxslttutorial.html - update
+	tutorial text to add references to global variables cleanups
+
+Wed Aug 29 21:05:43 MDT 2001 John Fleck <jfleck at inkstain.net>
+
+	* doc/xsltproc.1 - added xsltproc man page (note: this has not
+	been added into the build yet)
+
+Wed Aug 29 22:58:58 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* doc/tutorial/libxslt_tutorial.c doc/tutorial/libxslttutorial.html
+	  doc/tutorial/libxslttutorial.xml: added global variables cleanups
+	  to the example.
+	* tests/documents/Makefile.am: mjcox pointed to some missing files
+
+Wed Aug 29 15:32:52 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/common.c: fixed a bug in exsltNodeSetFunction
+
+Wed Aug 29 15:18:28 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/common.c: implemented version 3 of the exslt:node-set()
+	  function.
+	* tests/exslt/common/Makefile.am
+	  tests/exslt/common/node-set.3.{xml,xsl,out}: added a test
+
+Mon Aug 27 08:27:21 MDT 2001 John Fleck <jfleck at inkstain.net>
+
+	* adding doc/xsltproc.html - html generated from xsltproc.xml,
+	update doc/xslt.html with link to xsltproc.html
+
+Mon Aug 27 08:21:47 MDT 2001 John Fleck <jfleck at inkstain.net>
+
+	* adding doc/xsltproc.xml - user manual for xsltproc
+	
+Sun Aug 26 20:52:02 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/numbers.c libxslt/xslt.c: removed a couple of
+	  warning raised by the Windows compiler (Chris Poblete)
+
+Fri Aug 24 01:15:24 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.h libxslt/preproc.c libxslt/transform.c:
+	  closed bugs #59212 and #59220
+
+Thu Aug 23 23:18:44 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* config.h.in configure.in xsltproc/xsltproc.c: complete test
+	  of a DocBook XSLt transform with --nonet, need stat(), added
+	  checking in configure.
+
+Thu Aug 23 17:37:40 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: catalog integration, cleanup with
+	  the --nonet option closing #59427
+	* libxslt/xslt.c: removed a small memleak when using a 
+	  stylesheet PI
+
+Tue Aug 21 13:17:19 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* //Makefile.am : fixed an error I propagated to nearly all
+	  Makefiles.am on Saturday
+
+Tue Aug 21 13:10:03 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/math.c libxslt/numbers.c: use xmlXPathIsNaN() and
+	  xmlXPathIsInf()
+	* libxslt/pattern.c: tag a potential threading problem.
+
+Tue Aug 21 11:18:45 CEST 2001 Bjorn Reese <breese at users.sourceforge.net>
+
+	* libxslt/numbers.c libexslt/math.c: Re-worked NaN and Inf
+	  support.
+
+Sat Aug 18 15:57:46 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* //Makefile.am : fixed a number of small problems with
+	  Makefiles spotted by Albert Chin
+
+Thu Aug 16 14:37:55 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* win32/dsp/libxslt.def: minimal changes to compile 1.0.2 on
+	  Windows/MSC
+
+Thu Aug 16 12:58:11 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.c: fixed a permutation of args to
+	  xsltPrintErrorContext()
+
+Wed Aug 15 15:19:14 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* Makefile.am config.h.in configure.in libxslt/xsltwin32config.h:
+	  release of 1.0.2
+	* tests/docs/Makefile.am libexslt/Makefile.am
+	  tests/documents/Makefile.am tests/general/Makefile.am
+	  xsltproc/Makefile.am: cleaning of Makefiles pointed out
+	  by make distcheck
+
+Wed Aug 15 13:54:41 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.h libxslt/transform.c: a bit of cleanup
+
+Wed Aug 15 12:06:43 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/common.c libexslt/math.c libxslt/Makefile.am
+	  libxslt/libxslt.h libxslt/xsltconfig.h.in: cleanup of includes
+	  export xsltconfig.h at make install stage
+
+Tue Aug 14 20:51:09 MDT 2001 John Fleck <jfleck at inkstain.net>
+
+	* doc/xslt.html updated xsltproc description with the many new
+	  command line options Daniel has added, cleaned up some spelling
+
+Tue Aug 14 18:41:02 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extra.c libxslt/keys.c libxslt/templates.c 
+	  libxslt/transform.c libxslt/variables.c libxslt/xsltutils.c:
+	  serious changes on Result Value Trees and NodeSets
+	  w.r.t. deallocation and collect operations. Probably not
+	  100% clean (merge of allocated trees smells like a problem).
+	  Seems sufficient to close #58943 . Also check if XPath evaluations
+	  failed, and in this case stops the processing and avoid
+	  going further, goal is to not segfault on broken XSLT.
+
+Tue Aug 14 15:32:08 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c libxslt/transform.c: trying to kill bug #58878,
+	  some associated serious cleanup in the pattern code.
+	* tests/docbook/result/*: regenerated all the results for the
+	  docbook testsuite. Seems killing #58878 also changes the
+	  fo results seriously.
+	* tests/docs/Makefile.am tests/docs/bug-5[56].xml 
+	  tests/general/Makefile.am tests/general/bug-5[56].*: added
+	  2 more tests
+
+Tue Aug 14 05:01:30 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libxslt/xslt.c libxslt/xsltInternals.h libxslt/transform.c
+	  libxslt/extra.[ch] libxslt/extensions.c libxslt/preproc.[ch]:
+	  fixed compilation warnings due to recent changes to the extension
+	  framework.
+	* libxslt/preproc.[ch] libexslt/common.c
+	  fixed the precomputation of *:document elements
+	* libxslt/functions.h: fixed a compilation warning
+
+Mon Aug 13 11:41:02 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltutils.c: applied fix suggested by Tom Moog
+	  for xsltTimeStamp() in bug report #58012
+
+Sun Aug 12 21:53:13 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/functions.c libxslt/keys.c libxslt/transform.c 
+	  libxslt/xsltutils.h: cleaned up the code w.r.t. handling
+	  of 'non-standard' libxml element like namespace nodes.
+	* tests/docs/Makefile.am tests/docs/bug-54.xml
+	  tests/general/Makefile.am tests/general/bug-54.*: added a 
+	  specific example in the regression tests
+
+Wed Aug  8 22:57:05 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* HACKING: added John Fleck right to commit in the doc subdir
+
+Tue Aug  7 03:11:31 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* xsltproc/xsltproc.c: for heriting defaulted atts from the DTD
+	* tests/docs/Makefile.am tests/docs/bug-52.xml tests/docs/bug-53.xml
+	  tests/general/Makefile.am tests/general/bug-52.*
+	  tests/general/bug-53.*: Added a few new tests for recently fixed
+	  stuff in libxml
+	* tests/xmlspec/REC-xml-20001006-review.html
+	  tests/xmlspec/REC-xml-20001006.html: inheriting default attrs from
+	  DTD changed the result by adding extra attributes to the HTML output
+
+2001-08-06  Peter Williams  <peterw at ximian.com>
+
+	* libexslt/Makefile.am, xsltproc/Makefile.am: Fixes for compiling
+	when srcdir != builddir.
+
+Sun Aug  5 09:37:14 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libxslt/extensions.[ch] libxslt/preproc.[ch] libxslt/transform.c
+	  libxslt/xslt.c libxslt/xsltInternals.h: modified extension framework
+	  to easify extension element precomputation.
+	* libexslt/functions.c: uses the new framework and precomputes
+	  func:result elements.
+
+Sat Aug  4 20:42:32 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.c: bug fix on output="text" from Nicolas Marsgui
+
+Fri Aug  3 14:23:25 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* tests/general/bug-21-.out tests/general/bug-31-.out:
+	  this got fixed by libxml patches
+	* win32/readme.msvc win32/dsp/* xsltproc/xsltproc.c
+	  Makefile.am libexslt/exslt.[ch] libexslt/exsltconfig.h.in
+	  libexslt/functions.c libexslt/math.c libxslt/win32config.h
+	  libxslt/xsltconfig.h.in libxslt/xsltutils.h
+	  libxslt/xsltwin32config.h libxslt/xsltwin32config.h.in:
+	  Applied Igor  Zlatkovic Win32 Facelift No.2 patch, and fixed
+	  a few things related to those changes.
+
+Wed Aug  1 13:58:21 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltutils.c: well one need one \n after DOCTYPE
+	* test//*/*.out: the output of some tests changed, looks better
+	  actually
+
+Wed Aug  1 13:21:18 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/xsltutils.c: avoid extra \n when serializing top
+	  text nodes.
+
+Wed Aug  1 10:37:50 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extra.c: one more revision on Norm's localTime() function
+
+Wed Aug  1 01:37:41 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/sets.c: fixed bugs in exsltTrailingFunction and
+	  exsltLeadingFunction when passing an empty node-set as the
+	  second argument
+	* libxslt/functions.[ch]: gave priority to context-level functions
+	  over extension module functions. This allows a function declared
+	  with a func:function element to override an extension module
+	  function for example. This is a bit hackish...
+	* tests/exslt/sets/{lead,trail}ing.1.out: fixed errors. The result
+	  values didn't conform to the expected values. This is a bug in
+	  the EXSLT official use cases.
+
+Tue Jul 31 23:53:55 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* config.h.in configure.in libxslt/extra.c: tried to integrate
+	  Norm's implemntation of localTime()
+
+Tue Jul 31 03:47:10 EDT 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extra.c: fixed a serious proble is node-set was called
+	  on a nodeset
+	* tests//*/Makefile.am: fixed the rule to rebuild xsltproc
+
+Lun Jul 30 05:47:43 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/functions.c: fixed memory leaks
+	
+Sun Jul 29 08:37:59 EDT 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/functions.c libxslt/extensions.[ch] libxslt/extensions.h
+	  libxslt/xslt.[hc] libxslt/xsltInternals.h xsltproc/xsltproc.c:
+	  more cleanup of the problems introduced with EXSLT, also closes
+	  bug #58180
+
+Sat Jul 28 08:25:05 MDT 2001 John Fleck <jfleck at inkstain.net>
+
+	* doc/internals.html - general cleanup
+
+Fri Jul 27 04:00:38 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* configure.in tests/Makefile.am tests/exslt/*: added some tests
+	  to check EXSLT conformance
+	* libexslt/sets.c: fixed a typo when registering has-same-node
+
+Fri Jul 27 12:33:52 EDT 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/extensions.c xsltproc/xsltproc.c: quick cleanup
+	  of memory allocations, raise a bug in the test suite, also
+	  need to be centralized as a single cleanup function.
+
+Fri Jul 27 10:50:39 EDT 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/transform.[ch]: applied changes from Tom Moog #58002
+	* libexslt/functions.c libxslt/documents.c libxslt/extensions.c:
+	  Some cleanup, there is still a memory leak left and some warnings
+	  in libexslt.
+
+Thu Jul 26 19:05:48 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libxslt/extensions.[ch] libxslt/functions.[ch] libxslt/preproc.c
+	  libxslt/transform.[ch] libxslt/variables.c libxslt/xslt.c 
+	  libxslt/xsltInternals.h: new extension framework.
+	  Added stylesheet module data, top-level and extension elements
+	  precomputing, global registration of top-level elements and 
+	  extension elements and functions.
+	  Extensions are no longer initialized from extension-element-prefixes
+	  declarations but when modules need the data.
+	  init/shutdown functions registered with xsltRegisterExtModule{,Full}
+	  only allocate and free module data, they shouldn't register the
+	  elements and functions any more.
+	* libxslt/xsltutils.c: fixed a bug in xsltPrintErrorContext when
+	  @node wasn't NULL.
+	* libxslt/xslt.c: fixed xsltPrecomputeStylesheetTop which allowed
+	  non-XSLT top-level elements before any xsl:import element.
+	* libexslt/common.c libexslt/functions.c libexslt/math.c
+	  libexslt/sets.c: adapted to use the new extension framework.
+	* libxslt/functions.c libxslt/extensions[ch] xsltproc/xsltproc.c:
+	  moved the test module from functions.c to extensions.[ch],
+	  modified it to use the new extension framework. Updated xsltproc
+	  to register the test module.
+
+Thu Jul 26 10:20:19 EDT 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libxslt/pattern.c: fixed an ugly problem with namespaces
+	  in templates compilation
+	* tests/namespaces/tst4.*: added a specific testcase
+	* libxslt/transform.c: reenabled debug
+
+Tue Jul 24 17:45:22 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* configure.in libxslt.spec.in libxslt/xsltwin32config.h:
+	  releasing 1.0.1
+	* doc/html/*.html: updated the docs.
+	* xsltproc/xsltproc.c: activate line numbering unfortunately
+	  this works only with CVS, libxml2-2.4.1 is broken in this respect
+
+Mon Jul 23 23:35:00 HKT 2001 William M. Brack <wbrack at mmm.com.hk>
+
+	* libxslt/documents.c enhancement to xsltFindDocument to
+	  cater for the Matt Sergeant patch
+
+Mon Jul 23 09:32:27 MDT 2001 John Fleck <jfleck at inkstain.net>
+
+	* updating libxslt tutorial to include param support
+
+Mon Jul 23 20:12:38 CEST 2001 Daniel Veillard <daniel at veillard.com>
+
+	* libexslt/math.c: small cleanup
+	* libxslt/functions.c: patch to document('') from Matt Sergeant
+	* libxslt/xsltInternals.h libxslt/xsltutils.[ch]: profiler on Windows
+	  c.f. bug #57464 from Tom Moog
+
+2001-07-19  Darin Adler  <darin at bentspoon.com>
+
+	* configure.in: Add HTML_DIR definition.
+	* xsltproc/.cvsignore: Ignore some generated files.
+
+2001-07-18  Peter Williams  <peterw at ximian.com>
+
+	* xsltproc/Makefile.am (INCLUDES): Fix compiling when
+	srcdir != builddir.
+
+2001-07-17  Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/.cvsignore libexslt/Makefile.am libexslt/utils.[ch]
+	  libexslt/common.c libexslt/functions.c libexslt/math.c
+	  libexslt/sets.c: removed utils.[ch] as their content is
+	  integrated in libxml
+	* libexslt/sets.c: uses the new libxml functions
+	* libxslt/extra.[ch]: removed exsl:document
+	* AUTHORS: added /me
+
+2001-07-16  Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/.cvsignore: some more generated files to ignore
+	* libexslt/Makefile.am: utils.h not installed anymore
+	* libexslt/common.c libexslt/exslt.[ch] libexslt/functions.c
+	  libexslt/math.c libexslt/sets.c:
+	  changed function prefix from exsl* to exslt*
+	  {common.c,exslt.c} moved exsltLib{rary,exslt,xslt,xml}Version
+	  from common.c to exslt.c
+	  {common.c} removed exslNodeSetFunction, uses xsltFunctionNodeSet
+	  instead
+	* libxslt/extra.c: fixed xsltFunctionNodeSet to accept
+	  XPATH_NODESET arguments in addition to XPATH_XSLT_TREE
+	* xsltproc/xsltproc.c: updated to use the new function prefix
+
+2001-07-15  Darin Adler  <darin at bentspoon.com>
+
+	* libxslt/.cvsignore:
+	* tests/XSLTMark/.cvsignore:
+	* tests/extensions/.cvsignore:
+	* tests/xmlspec/.cvsignore:
+	Some more generated files to ignore.
+
+Mon Jul 16 14:26:48 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* Makefile.am configure.in libexslt/Makefile.am:
+	  Integration of libexslt in the build system
+	* libxslt/Makefile.am libxslt/xsltproc.c libxslt/xsltutils.c
+	  xsltproc/Makefile.am xsltproc/xsltproc.c:
+	  Moved xsltproc to a separate directory, linked it to libexslt,
+	  and added exslt version reports to -V
+	* tests/*/Makefile.am: updated the path to xsltproc
+	* libexslt/common.c libexslt/exslt.h libexslt/exsltconfig.h.in
+	  libexslt/functions.c libexslt/math.c libexslt/sets.c: added
+	  versionning informations, some cleanup, and added documentation
+	  to a couple of exported functions
+
+Sun Jul 15 15:27:47 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/Makefile.am: account for new source files
+	* libexslt/.cvsignore: added
+
+Sun Jul 15 05:02:50 CEST 2001 Thomas Broyer <tbroyer at ltgt.net>
+
+	* libexslt/exslt.[hc] libexslt/common.[hc] libexslt/functions.[hc]
+	  libexslt/math.[hc] libexslt/sets.[hc] libexslt/utils.[hc]:
+	  start implementing EXSLT
+
+Sun Jul 15 16:01:55 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/numbers.c libxslt/numbersInternals.h libxslt/preproc.c:
+	  trying to accept AVT for "format" in xsl:number
+
+Fri Jul 13 16:57:08 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* win32/libxslt/libxslt.defs: trying to close #57460 by adding
+	  xsltProfileStylesheet
+
+Thu Jul 12 21:31:06 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/documents.c libxslt/extensions.c libxslt/extra.c
+	  libxslt/functions.c libxslt/imports.c libxslt/keys.c
+	  libxslt/namespaces.c libxslt/numbers.c libxslt/pattern.c
+	  libxslt/preproc.c libxslt/templates.c libxslt/transform.c
+	  libxslt/variables.c libxslt/xslt.c: provide context for
+	  error messages. Requires libxml head changes.
+	* libxslt/xsltutils.c libxslt/xsltutils.h: fixed a --profile
+	  problem
+
+Wed Jul 11 00:32:21 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libexslt/Makefile.am: initial EXSLT framework
+
+Tue Jul 10 18:03:36 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in libxslt/xsltwin32config.h: releaseing 1.0.0
+	* win32/libxslt/libxslt.def: added another entry point
+	* libxslt/transform.c: fixed a comment block
+	* doc/xslt.html doc/html/*: updated and regenerated the docs
+
+Tue Jul 10 17:25:59 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* win32/libxslt/libxslt.def: added missing functions
+
+Tue Jul 10 16:48:43 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES libxslt/xsltproc.c libxslt/transform.c
+	  libxslt/xsltInternals.h: added Embedding Stylesheets
+	* tests/REC/Makefile.am tests/REC/stand-2.7-1.*: added the test
+	  from the REC about it
+	* libxslt/transform.c libxslt/extra.[ch] libxslt/preproc.c:
+	  tried to accomodate the various (and changing) proprietary
+	  ways of implementing chunking.
+	* tests/docbook/result/xtchunk/html: now output is generated in
+	  ISO-8859-1
+
+Mon Jul  9 23:23:50 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltproc.c: small cleanup
+	* libxslt/transform.c libxslt/xslt.c : patch from Michal Sajdak
+	  for cdata/text handling
+
+Mon Jul  9 22:02:40 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltutils.c: small fix for xsl:message by Stephane GUIBOU
+	* tests/documents/Makefile.am tests/documents/message.*: added
+	  a specific regression test
+	* libxslt/transform.c: fixed an infinite loop
+	* configure.in doc/Makefile.am: attempt to add --with-html-dir,
+	  this may work
+
+Mon Jul  9 15:55:14 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c libxslt/xslt.c libxslt/xsltInternals.h:
+	  fixed exclude-result-prefixes handling and how namespaces
+	  propagate from the stylesheet to the result in general, this
+	  is a serious cleanup.
+	* tests/general/bug-3[67]-inc.xsl tests/general/bug-6-.xsl
+	  tests/general/itemschoose.out tests/namespaces/extra.xsl
+	  tests/REC/test-10-1.xsl tests/REC/test-10-2.xsl
+	  tests/REC/test-11.2-1.xsl tests/REC/test-11.2-2.xsl
+	  tests/REC/test-11.2-6.xsl tests/REC/test-15-1.xsl
+	  tests/REC/test-16.1-1.xsl tests/REC/test-16.1-2.xsl
+	  tests/REC/test-5.4-1.out tests/REC/test-5.4-2.out
+	  tests/REC/test-5.4-3.out tests/REC/test-5.4-4.out
+	  tests/REC/test-7.1.1-2.out tests/REC/test-7.1.1-2.xsl
+	  tests/REC/test-7.1.1-3.out tests/REC/test-7.1.1-3.xsl
+	  tests/REC/test-7.1.1.out tests/REC/test-7.1.3.xsl
+	  tests/REC/test-7.3.xsl tests/REC/test-7.4.xsl
+	  tests/REC/test-7.6.1-1.xsl tests/REC/test-7.6.1-2.xsl
+	  tests/REC/test-7.6.1-3.xsl tests/REC/test-7.6.2-1.xsl:
+	  fixed and rechecked all the tests where the namespace
+	  propagation was wrong either taht the rules were not applied
+	  correctly or that superfluous namespaces were declared in the
+	  stylesheets
+
+Sun Jul  8 22:12:02 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/extra.c libxslt/functions.c libxslt/transform.[ch]
+	  libxslt/variables.h: Norm pointed out that element-available()
+	  didn't work, implemented it
+	* tests/extensions/Makefile.am tests/extensions/list.*: added
+	  a test for all registered xslt element, function and default
+	  extensions.
+
+Sun Jul  8 20:44:25 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/documents/Makefile.am 'tests/documents/doc file.xml'
+	  tests/documents/docfile.xml tests/documents/test.result
+	  tests/documents/test.xml tests/documents/test.xsl:
+	  added a test for URI-escaping on document() input
+
+Sun Jul  8 16:34:07 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-49-* tests/docs/bug-49-*
+	  tests/general/bug-50-* tests/docs/bug-50-*: added a
+	  couple of regression tests for bugs posted on the list
+
+Sun Jul  8 15:40:44 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltproc.c: avoid generating CDATA node in document
+	  tree when parsed, force generation of text nodes instead.
+
+Sun Jul  8 14:39:27 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/extensions.html: fixed a number of typo found by Dan York
+	* libxslt/xsltutils.c: improved the profiling ouput, added the
+	  average value too.
+
+Sun Jul  8 00:01:21 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/variables.c: tryingt to fix a problem raised by Norm
+
+Sat Jul  7 23:19:09 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* config.h.in configure.in: added gettimeofday() check
+	* libxslt/transform.c libxslt/xsltInternals.h libxslt/xsltutils.[ch]:
+	  profiling works option --profile (or --norman ;)
+
+Sat Jul  7 18:58:56 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/templates.c libxslt/transform.c libxslt/transform.h
+	  libxslt/variables.c: big cleanup on the way templates or 
+	  template fragments are processed, cleanup of stack building
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-4[1-8]-* tests/docs/bug-4[1-8]-*: added a
+	  series of regression test for the variable/params lookups
+	* libxslt/transform.c libxslt/xsltutils.[ch] libxslt/xsltproc.c:
+	  started working on profiling code, there is just invocation counting
+	  yet but the framework is in place.
+
+Sat Jul  7 11:20:59 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-40-* tests/docs/bug-40-*: added a specific
+	  regression test for the variable scope within templates problem
+
+Sat Jul  7 17:05:00 HKT 2001 Wiliam Brack <wbrack at mmm.com.hk>
+
+	* xsltInternals.h variables.c transform.c:
+	  fixed problem with variable scope within templates
+
+Fri Jul  6 17:42:06 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/extensions.html doc/internals.html doc/xslt.html:
+	  added a documentation on writing libxslt extensions, and
+	  added links to the main page
+	* libxslt/functions.c libxslt/xsltInternals.h
+
+Fri Jul  6 14:30:00 HKT 2001 William Brack <wbrack at mmm.com.hk>
+
+	* cleaned up many comments and error messages
+
+Fri Jul  6 01:43:51 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in libxslt/xsltwin32config.h: released 0.14.0
+	* doc/xslt.html: added 0.14.0 release
+
+Fri Jul  6 01:00:55 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/html/*: rebuilt docs before release
+	* libxslt/extensions.c: fixed a function doc header
+
+Fri Jul  6 00:40:55 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES: updated
+	* libxslt/xslt.c libxslt/xsltInternals.h: added exclude-result-prefix
+	  support
+	* tests/REC/Makefile.am tests/REC/test-7.1.1-[23]*: added a couple
+	  of specific tests
+	* tests/xmlspec/REC-xml-20001006-review.html: seems this changed
+	  something there, not visually perceptible
+
+Thu Jul  5 22:49:57 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/docbook/result/: the change in libxml affected the
+	  output of the Docbook tests (of course it was detected on
+	  a DocBook example)
+
+Thu Jul  5 15:11:58 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES: updated
+	* libxslt/transform.c: added cdata-section-elements
+	* tests/REC/Makefile.am tests/REC/test-16.1-*: added 2 tests from
+	  the REC
+
+Thu Jul  5 10:44:47 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES: updated
+	* libxslt/xsltutils.c: do not dump document for which there have
+	  been no generated content
+	* tests/multiple/result.xml tests/namespaces/extra2.out: fixed
+	  test output accordingly
+	* libxslt/transform.c libxslt/preproc.c: added xsl:fallback support
+	* tests/REC/Makefile.am tests/REC/test-15-1.*: xsl:fallback test
+	* tests/xmlspec/Makefile.am tests/docbook/Makefile.am: cleanups
+
+Wed Jul  4 15:15:50 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/extension.[ch] libxslt/extra.[ch] libxslt/xsltInternals.h
+	  libxslt/transform.c libxslt/functions.c: Added the extension API
+	  suggested by Thomas Broyer, this should allow implementation of
+	  EXSLT for example.
+	* libxslt/extra.[ch]: added a fake xsltFunctionLocalTime() in Norm's
+	  CVS extension namespace to avoid complaints, some cleanup
+	* configure.in tests/Makefile.am tests/extensions/*: added a test
+	  for new modules testing both elements and functions registration
+
+Fri Jun 29 23:32:37 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/pattern.c libxslt/preproc.c libxslt/transform.c
+	  libxslt/xslt.c libxslt/xsltutils.[ch]: added xsltGetQNameURI()
+	  and cleaned up the way URI for QNames were computed through
+	  the code, serious cleanup.
+	* libxslt/xsltInternals.h libxslt/xslt.c: moved cdata-sections
+	  in their own hash table, implementation not yet finished.
+
+Thu Jun 28 23:01:14 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/keys.c libxslt/templates.c libxslt/transform.c
+	  libxslt/variables.c libxslt/xsltutils.c: hum seems I forgot
+	  to save/restore some XPath context, bug raised by
+	  Steve Cheng
+
+Thu Jun 28 15:48:06 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltwin32config.h[.in]: added configuration/version
+	  informations for Windows/MSC
+	* libxslt/libxslt.h libxslt/*.c: internal header to centralize
+	  includes switches
+	* libxslt/Makefile.am: added libxslt.h and xsltwin32config.h[.in]
+	* libxslt/*.[ch] libxslt/*.in: quite a bit of cleanup, especially
+	  the email addresses
+	* AUTHORS: added William
+
+Tue Jun 26 18:45:38 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in doc/xslt.html: releasing 0.13.0
+	* doc/Makefile.am: don't index the win32 include
+	* doc/html/*: rebuilt the docs
+
+Mon Jun 25 15:30:30 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltproc.c: John Fleck found a typo in usage()
+	* libxslt/xslt.c: avoid warning if version="1.1" is used
+	* libxslt/transform.c: forgot to initialize cur->outputFile
+	* libxslt/functions.c: DOCBOOK_XSL_HACK some versions of DocBook XSL
+	  use the vendor string to detect supporting chunking, this
+	  is a workaround to be considered in the list of decent XSLT
+	  processors <grin/>
+
+Mon Jun 25 12:41:30 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.[ch] libxslt/xslt.c libxslt/xsltInternals.h:
+	  added a new interface xsltRunStylesheet() for a more flexible
+	  handling of the output and trying to adhere to xsl:document
+	  filename generation semantic if one knows the URL of the output,
+	  also add IObuf capacity and SAX for output but is currently not
+	  implemented.
+	* libxslt/xsltproc.c: added a -o or --output filename argument
+	  to test xsltRunStylesheet() or provide a base when generating
+	  multiple outputs
+	* tests/docbook/Makefile.am tests/docbook/result/xtchunk/html/*:
+	  updated tests to add DocBook xt:document based chunking
+	* tests/multiple/Makefile.am: cleaned up the makefile a bit
+	* tests/multiple/out/*.html: the new xt:document now generate
+	  the DOCTYPE if available as is the case for HTML
+
+Mon Jun 25 08:45:00 HKT 2001 William Brack <wbrack at mmm.com.hk>
+
+	* Removed some redundant code in xsltDefaultProcessOneNode
+	  and revised the default processing of an attribute node
+
+Sun Jun 24 14:40:00 HKT 2001 William Brack <wbrack at mmm.com.hk>
+
+	* Enhanced ApplyTemplates and ForEach to allow multiple
+	  documents within a nodelist.
+	* Repaired small bug in xsltDocument function which caused
+	  a crash if invalid second argument was provided.
+
+Sat Jun 23 15:44:00 MDT 2001 John Fleck <jfleck at inkstain.net>
+
+	* doc/tutorial/libxslttutorial.xml, libxslttutorial.html
+	  updating tutorial with explanation of xsltSave vs. xmlSave
+	  functions 
+
+Sat Jun 23 19:04:27 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* test/docbook: updated to docbook-xsl-1.4, regenerated results
+
+Sat Jun 23 15:32:25 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* Makefile.am libxslt/Makefile.am libxslt/numbers.c 
+	  libxslt/win32config.h libxslt/xsltconfig.h.in libxslt/xsltproc.c:
+	  Patches for Windows mostly contributed by Yon Derek
+	* win32/libxslt/libxslt.def win32/libxslt/libxslt.dsw
+	  win32/libxslt/libxslt_so.dsp win32/libxslt/xsltproc.dsp:
+	  Project file for Mircrosoft C provided by Yon Derek
+
+Sat Jun 23 14:20:01 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/pattern.c: closing bug #56517, fixed a number of
+	  problems in the patterns compilations, priorities and debug
+	* libxslt/transform.c: improved the template debug message
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-39-* tests/docs/bug-39-*: added a specific
+	  regression test for #56517
+
+Fri Jun 22 16:17:23 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.c: avoid a stupid bug when compiling with
+	  libxml < 2.3.11 and without LIBXML_DEBUG_ENABLED
+
+Fri Jun 22 00:11:18 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/numbers.c: fix of a small bug
+	* libxslt/transform.c libxslt/variables.c libxslt/xslt.c: cleanups
+	  while bug-hunting
+
+Tue Jun 19 16:13:49 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/docbook/Makefile.am: added XHTML and XSL FO to the
+	  regression tests
+	* tests/docbook/xhtml/*: added XHTML stylesheets
+	* tests/docbook/fo/*: added XSL FO stylesheets
+	* tests/docbook/result/xhtml/*: added XHTML results
+	* tests/docbook/result/fo/*: added XSL FO results
+
+Tue Jun 19 00:20:32 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* HACKING: fixed, added William
+
+Mon Jun 18 18:36:36 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltutils.c: forgot to flush in xsltSaveTo() in html and
+	  xml cases, and fixed text output to be recursive in text nodes
+	  lookups
+
+Mon Jun 18 15:44:51 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in: patch from Tony Graham to cleanup libxml2 detection
+
+Sun Jun 17 17:42:33 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltutils.[ch]: fixed xsltGetNsProp, i always forget
+	  'namespace' is a reserved C++ identifier
+
+Sun Jun 17 17:08:30 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/xslt.html: adding 0.12.0 release
+
+Sun Jun 17 13:15:48 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in: preparing 0.12.0 release
+	* libxslt/transform.c: a bit of cleanup on the XInclude defaults
+	* libxslt/xsltconfig.h.in: added doc inline comment
+	* libxslt/xslt.[ch] libxslt/xsltproc.c: added more version informations
+	  and enriched xsltproc --version to show them
+	* doc/html/*.html: rebuilt the docs
+	* doc/Makefile.am libxslt.spec.in: try to make sure John Fleck
+	  tutorial ends up in the tars and RPMs
+
+Sat Jun 16 23:58:57 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt.spec.in: updated the descriptions
+
+Sat Jun 16 23:26:46 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/namespaces.[ch]: added a single namespace def copy
+	  operation xsltCopyNamespace(). cleaned up xsltCopyNamespaceList()
+	* libxslt/transform.c: cleaned up xsltCopyNode to cope with
+	  any kind of input nodes.
+	* libxslt/variables.c: checked and closed the last TODO about
+	  namespace propagation
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-38-* tests/docs/bug-38-*: added a specific
+	  regression test for #56115 
+
+Sat Jun 16 09:27:27 MDT 2001 John Fleck <jfleck at inkstain.net>
+
+	* updating tutorial: adding discussion of freeing memory, image
+	files for callouts, link to xsltproc.c code
+
+Sat Jun 16 15:23:43 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/variables.c: bug #56267 was still not fixed, forgot
+	  to remove the old code
+	* tests/general/bug-37-.xsl: wrong reference to 36 fixed, this does
+	  the test for good
+
+Sat Jun 16 00:32:39 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/variables.c: fixed bug #56267, namespaces must
+	  be propagated when evaluating local variables.
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-37-* tests/docs/bug-37-*: added a specific
+	  regression test for #56267 
+
+Fri Jun 15 18:29:29 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/keys.c: avoid a possibility of an uninitialized variable
+	* libxslt/documents.c libxslt/transform.[ch] libxslt/transform.h
+	  libxslt/xsltInternals.h libxslt/xsltproc.c: Implement Raphael Hertzog
+	  request to have xinclude processing done on document() if requested
+
+Thu Jun 14 20:52:13 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/Makefile.am: applied patch from Sander Vesik for -j2 
+
+Thu Jun 14 10:07:59 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/preproc.c: removed a warning on xsl:transform
+	* tests/docs/Makefile.am tests/docs/array.xml tests/general/Makefile.am
+	  tests/general/array.out tests/general/array.xsl: added a new
+	  test fround in xsl-dev
+
+Wed Jun 13 23:12:57 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/docbook/result/html/*.html tests/XSLTMark/xslbench[12].out
+	  tests/xmlspec/REC-xml-20001006*.html: the changes to the HTML
+	  serializer of libxml impacted the result of some tests. Checked
+	  that the XML REC renders identically.
+
+Mon Jun 11 07:19:06 MDT 2001 John Fleck <jfleck at inkstain.net>
+
+	* fixing embarassing typos in doc/tutorial/libxslttutorial.xml and 
+	generated html
+
+Tue Jun 12 07:42:35 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/variables.c: fixed bug #55670, namespaces must
+	  be propagated when evaluating global variables.
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-36-* tests/docs/bug-36-*: added a specific
+	  regression test for #55670 
+
+Mon Jun 11 09:35:53 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/xslt.html: linked to the tutorial
+
+Sun Jun 10 19:36:31 MDT 2001 John Fleck <jfleck at inkstain.net>
+
+	* doc/tutorial/libxslt_tutorial.c,  libxslttutorial.html,
+	libxslttutorial.xml 
+	adding tutorial
+
+Sun Jun 10 21:52:35 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c: closed bug #55723, problem was due to
+	  a limitation of xsltGetNamespace() when the insertion point
+	  is the document.
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-35-* tests/docs/bug-35-*: added a specific
+	  regression test for #55723 
+
+Sun Jun 10 13:37:33 HKT 2001 William Brack <wbrack at mmm.com.hk>
+
+	* libxslt/transform.c: fixed problems with document() in
+	  xsltApplyTemplates and xsltForEach.  Cleaned up several
+	  error messages.
+	* libxslt/keys.c: saved and restored ctxt->document within
+	  xsltInitKey to fix problem with keys when doc changed
+	* libxslt/documents.[ch]: added new procedure xsltFindDocument
+	  needed when document() causes a change of doc within
+	  xsltApplyTemplates and xsltForEach
+
+Thu Jun  7 21:31:46 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltutils.[ch]: closing bug #55683 required to add
+	  xsltGetNsProp()
+	* libxslt/attributes.c libxslt/imports.c libxslt/namespaces.c
+	  libxslt/preproc.c libxslt/templates.c libxslt/xslt.c:
+	  Updated to use the new function
+	* tests/XSLTMark/prettyprint.out tests/docbook/result/html/*.html:
+	  the fixes in the serialization of <pre> in HTML in libxml
+	  led to a number of changes in the output
+
+Thu Jun  7 04:23:38 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-32-* tests/docs/bug-32-*: added a specific
+	  regression test for #55722 
+
+Wed Jun  6 09:48:53 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/xslt.html: updated to ask to not send mail directly
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-33-* tests/docs/bug-33-*: added a specific
+	  regression test for #55722 
+
+Wed Jun  6 11:07:50 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/pattern.c : trying to fix #55670
+	* tests/XSLTMark/reverser.out : result of test changed when
+	  William fixed XPath
+
+Sat Jun  2 06:52:12 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/xslt.html: updated with 0.11.0
+
+Fri Jun  1 11:30:49 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in libxslt.spec.in: released 0.11.0
+
+Mon May 28 12:54:45 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c: William M. Brack found a small bug
+	  when call-template didn't find the template.
+
+Sat May 26 17:08:19 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c: fixed handling of PI and comments
+	  (bug raised by Brent M Hendricks).
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-31-* tests/docs/bug-31-*: added a specific
+	  regression test
+
+Wed May 23 13:25:37 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltproc.c: added --xinclude in the option list,
+	  patch from Raphael Hertzog
+	* test/docbook/Makefile.am: force at least the gdp-handbook.xml
+	  test in the normal testsuite
+
+Wed May 23 00:05:19 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/variables.c: Mark Vakoc found a bug in variable eval
+	  at the top template level 
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-30-* tests/docs/bug-30-*: added a specific
+	  regression test
+
+Tue May 22 18:52:30 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/functions.c: fixed the document() bug reported by
+	  Stephane GUIBOUD-RIBAUD
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/general/bug-29-* tests/docs/bug-29-*: added a specific
+	  regression test
+
+Tue May 22 15:09:02 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in libxslt/Makefile.am: fixed bug #54953
+	* libxslt/attributes.c: cleanup pointed by Joe Orton
+	* libxslt/xsltproc.c: added --catalogs to load catalogs from
+	  $SGML_CATALOG_FILES
+	* libxslt/functions.c: cleanup unreached code
+	* configure.in config.h.in libxslt/xsltproc.c: guarded the
+	  include with preprocessor definitions
+
+Sun May 20 20:55:00 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/documents/Makefile.am tests/general/Makefile.am
+	  tests/multiple/Makefile.am tests/namespaces/Makefile.am
+	  tests/numbers/Makefile.am tests/xmlspec/Makefile.am
+	  tests/REC/Makefile.am tests/REC1/Makefile.am tests/REC2/Makefile.am
+	  tests/XSLTMark/Makefile.am tests/docbook/Makefile.am
+	  configure.in: Makefiles cleanup from Joe Orton
+
+Sun May 20 15:20:49 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/docbook/result/html/external.html 
+	  tests/docbook/result/html/graphics.html
+	  tests/docbook/result/html/gtest.html
+	  tests/docbook/test/external.xml tests/docbook/test/subdoc.ent:
+	  Added a test from coolo for IDs in external parsed entities
+	  and fixed 2 outputs
+
+Sat May 19 22:28:05 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.[ch] libxslt/xsltconfig.h.in libxslt/xsltproc.c:
+	  added --version info to xsltproc closing #54952
+
+Sat May 19 17:41:23 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/documents/Makefile.am tests/general/Makefile.am 
+	  tests/multiple/Makefile.am tests/namespaces/Makefile.am 
+	  tests/numbers/Makefile.am tests/xmlspec/Makefile.am:
+	  Seems some of the changes I made for 0.9.0 Makefiles were
+	  not commited ...
+
+Sat May 19 17:23:54 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in: preparing 0.10.0 release
+	* doc/xslt.html: updated
+	* doc/html/* : rebuilt the docs
+
+Fri May 18 16:48:13 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.c libxslt/variables.c libxslt/templates.c
+	  libxslt/keys.[ch] libxslt/functions.c: cleanups for ctxt->inst
+	  avoiding modifying stylesheet informations, and fixing
+	  document() when called from a global variable init
+
+Thu May 17 17:24:35 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/functions.c libxslt/transform.c libxslt/xsltInternals.h:
+	  add ctxt->inst to allow stylesheet element lookup (needed
+	  for document() fix)
+	* libxslt/*.[ch]: generate docs for the structures and
+	  macros, general cleanup for docs
+	* doc/html/*.html: regenerated all docs
+
+Wed May 16 23:00:53 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/extra.c libxslt/transform.c libxslt/variables.[ch]
+	  libxslt/xsltInternals.h: optimizations, cleanup of global
+	  variables handling
+
+Wed May 16 12:29:17 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/extensions.c libxslt/preproc.c libxslt/transform.c
+	  libxslt/variables.c: force the precompilation of XPath expressions
+	  at stylesheet compilation time
+
+Tue May 15 14:34:23 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/keys.c libxslt/transform.c: avoid some possibilities
+	  of crashes on debug
+	* tests/REC/Makefile.am: be less verbose if things really go wrong
+	* tests/docs/Makefile.am tests/general/Makefile.am
+	  tests/docs/bug-28-.xml tests/general/bug-28-.*: added bug-28 in
+	  the regression tests
+
+Sat May 12 12:39:54 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c libxslt/xsltutils.c: fixed the default
+	  detection method to generate HTML documents 
+	* tests/REC/test-2.5-1.out tests/REC/test-8-1.out
+	  tests/REC/test-9.1-2.out tests/REC2/html.xml tests/XSLTMark/game.out
+	  tests/XSLTMark/html.out tests/XSLTMark/products.out
+	  tests/XSLTMark/xslbench1.out tests/XSLTMark/xslbench2.out
+	  tests/XSLTMark/xslbench3.out tests/general/bug-15-.out
+	  tests/general/bug-5-.out: updated a number of tests output
+	  accordingly
+
+Sat May 12 09:43:10 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltproc.c: use LIBXML_DOCB_ENABLED, William M. Brack
+
+Fri May 11 19:12:26 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/templates.c libxslt/transform.c: fixed bug #54446
+	  about attribute being generated twice. Fixed a number of related
+	  bugs on attributes handling.
+	* tests/REC/test-7.1.4.out: this changed an attribute generation
+	  order
+	* tests/docs/bug-27-.xml tests/general/bug-27-.*: added test
+
+Fri May 11 17:08:14 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/templates.c: fixed bug #54451 on escaped curly brackets
+	* tests/docs/bug-26-.xml tests/general/bug-26-.*: added test
+
+Fri May 11 16:20:40 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in tests/XSLTMark/Makefile.am: try to handle gracefully
+	  the cases where perl is not in the path (nor in /usr/bin)
+	* tests/docbook/result/html/gdp-handbook.html
+	  tests/docbook/result/html/kwrite.html
+	  tests/docbook/test/gdp-handbook.xml
+	  tests/docbook/test/kwrite.xml: commited a few more DocBook tests
+
+Wed May  9 12:29:47 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltproc.c: added --nonet and --warnnet to catch
+	  cases where a network access is needed to load a DTD or entity
+	* tests/docbook/Makefile.am: added --nonet
+	* tests/docbook/test/classsynop.xml tests/docbook/test/docbook40.xml:
+	  fixed 2 tests as a result
+
+Wed May  9 10:43:53 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in tests/docbook/Makefile.am tests/docbook/**/Makefile.am:
+	  try to remove the unneeded docbook Makefile stuff 
+
+Tue May  8 16:18:19 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/xslt.html: fixed a link error
+	* libxslt/transform.c libxslt/xsltutils.c: fixed DOCTYPE generation
+	* libxslt/xsltproc.c: cleaned up the --repeat loop
+	* tests/documents/result.xhtml tests/xmlspec/REC-xml-20001006*.html:
+	  fixed the DOCTYPE in tests output
+	* tests/docs/bug-25-.xml tests/doc/Makefile.am 
+	  tests/general/bug-25-.* tests/general/Makefile.am : added a new
+	  test case and fixed the EXTRA_DIST
+
+Mon May  7 22:27:03 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/extra.c: add more debug to xsltDebug
+	* libxslt/transform.c: spent a few hours tracking down an ugly
+	  race like bug in xsltCopyTreeList() arghhh
+	* libxslt/xsltproc.c: call xmlInitMemory() explictely
+
+Mon May  7 11:38:54 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/internals.html: more work done on the doc, mostly complete
+	  except the section on the XSLT stack and the extensions API
+	  since both still need more work.
+
+Sun May  6 15:03:59 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/internals.html doc/contexts.* doc/object.*: more work done
+	  on the doc
+
+Sun May  6 00:18:39 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/internals.html: more work done on the doc
+
+Sat May  5 18:58:13 CEST 2001 Bjorn Reese <breese at users.sourceforge.net>
+
+	* libxslt/transform.c tests/XSLTMark/xslbench1.out: Another fix
+	  for the CDATA output
+
+Sat May  5 18:09:15 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.c: do not escape content of CDATA nodes on output
+
+Sat May  5 17:52:52 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/internals.html doc/node.fig doc/node.gif doc/processing.fig
+	  doc/processing.gif doc/stylesheet.fig doc/stylesheet.gif
+	  doc/templates.fig doc/templates.gif: started writing tye doc
+	  on how libxslt works.
+
+Sat May  5 17:13:16 CEST 2001 Bjorn Reese <breese at users.sourceforge.net>
+
+	* libxslt/numbersInternals.h libxslt/numbers.c
+	  tests/numbers/format-number.out tests/XSLTMark/number.out:
+	  Patch from William Brack to bring format-number() more in alignment
+	  with the Java implementations.
+
+	* libxslt/xslt.c tests/XSLTMark/xslbench1.out: Do not remove CDATA
+	  from stylesheet
+
+Fri May  4 20:10:45 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/docbook/result/html/* tests/general/bug-11-.out 
+	  tests/multiple/result.xml tests/XSLTMark/*.out 
+	  libxslt/transform.c: all the PUBLIC and SYSTEM IDs
+	  were swapped
+
+Fri May  4 19:09:45 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltproc.c: add a --docbook option if your libxml2
+	  has the SGML DocBook support compiled in.
+
+Fri May  4 17:06:01 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/general/bug-2[0-4].* tests/docs/bug-2[0-4].*: added more
+	  tests especially on sorting
+	* test/xsltutils.c: oops multiple sorts was actually broken !!!
+	  this should fix it
+
+Thu May  3 19:02:21 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* TODO configure.in libxslt.spec.in: getting ready for 0.9.0
+	  release
+	* doc/html/* doc/xslt.html: updated and regenerated the docs
+
+Thu May  3 17:56:55 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* xsltutils.[ch] transform.c: implemented multiple levels of
+	  sorting
+	* test/REC/test-10-2.*: added a really small test for it
+
+Wed May  2 14:04:34 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c libxslt/xslt.c: fixed xsl:text processing
+	  there can be multiple text and CDATA child
+
+Wed May  2 10:55:56 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/multiple/makefile.am: fixing #54015
+	* tests/XSLTMark/makefile.am tests/docbook/makefile.am: fixing #54014
+	  and a similar problem for the docbook tests
+
+Mon Apr 30 22:31:59 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/general/bug-8-.out: fixed in libxml xpath
+	* libxslt/templates.[ch] libxslt/pattern.c: fixed an namespace
+	  problem in predicates within a pattern. Spotted another
+	  potential namespace problem
+
+Mon Apr 30 19:29:34 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/preproc.c libxslt/xslt.c libxslt/xsltInternals.h
+	  libxslt/xsltproc.c: counting errors and warnings at compilation
+	  time. Stop processing in case of error.
+	* tests/docs/bug-1[89]* tests/general/-1[89]* tests/general/inner.xsl:
+	  added more namespace related bug checks
+
+Mon Apr 30 13:47:11 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/preproc.c libxslt/variables.c: found the source of a
+	  memory leak with DocBook introduced this w.e.. bit of cleanup.
+	* tests/docbook/result/html/*.html : regenerated the DocBook tests
+	  results.
+
+Sun Apr 29 18:54:03 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/variables.c: fixing bug #53769
+	* tests/general tests/docs: added new examples from the
+	  bug reports to the regression tests, updated the Makefiles
+
+Sun Apr 29 11:47:58 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* preproc.[ch] templates.[ch] variables.[ch] xslt.c xsltInternals.h
+	  attributes.c extensions.[ch]: moved all stylesheet precomputation
+	  at stylesheet loading time (stylesheet transform should be thread
+	  safe now), improved params and variables evaluations (but optim
+	  is not complete yet).
+	* TODO: updated
+
+Sat Apr 28 16:28:45 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltproc.c : changed the way --repeat works when
+	  used twice
+
+Sat Apr 28 16:19:06 CEST 2001 Bjorn Reese <breese at users.sourceforge.net>
+
+	* libxslt/numbers.c libxslt/preproc.c tests/REC/test-7.7-3.out:
+	  fixed default formatting
+
+Sat Apr 28 14:20:29 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/preproc.c : fixed <xsl:sort/> bug reported by Ankh
+	* libxslt/xsltproc.c : added an option to process HTML input
+
+Thu Apr 26 21:13:59 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c: Tony Gorski found a bug pointed by
+	  a compiler on Tandem
+	* tests/documents/result.xhtml: this results in a small
+	  change in the output of this test
+
+Thu Apr 26 16:33:36 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* test/general/bug-14*.* test/docs/bug-14*.xml: added testcase from
+	  bug #53689
+
+Wed Apr 25 16:58:11 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* transform.c: fixed text and cdata handling in xsl:copy
+	* xslt.c : avoid crashing on invalid xslt input
+	* test/general/bug-*.* test/docs/bug-*.xml : added a number of
+	  bugs submitted to the regression tests
+
+Wed Apr 25 12:42:48 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltproc.c : Renaud Chaillat provided a fix for #53535
+
+Sun Apr 22 22:47:44 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in: updated to 0.8.0
+
+Sun Apr 22 22:46:03 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* transform.c: fixed a bug introduced on handling #53401
+
+Sun Apr 22 22:27:09 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* transform.c: fixed #53401
+	* configure.in libxslt/*.c: allowed to suppress debug reporting
+	  functionalities but it brings not noticeable improvements
+	* doc/xslt.html doc/html/*: updated and regenerated docs
+
+Wed Apr 18 15:24:50 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/general/bug-5-.out tests/multiple/out/*.orig
+	  tests/xmlspec/REC-xml-20001006*.html: fixed the test output
+	  following the libxml changes
+
+Wed Apr 18 12:05:04 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/functions.c: applied TOM's patch to key()
+	* tests/XSLTMark/chart.out tests/XSLTMark/dbonerow.out
+	  tests/XSLTMark/prettyprint.out tests/multiple/out/*.html:
+	  small HTML output change 
+
+Mon Apr 16 16:14:02 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/functions.c libxslt/transform.c libxslt/xsltInternals.h:
+	  fixed current()
+
+Tue Apr 17 10:10:56 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/keys.c libxslt/preproc.c libxslt/templates.c
+	  libxslt/transform.c libxslt/variables.c libxslt/xsltInternals.h:
+	  fixed for the most part the namespace handling problem in XPath
+	  expression computations.
+	* test/doc/ tests/general: added bug 5 and 6
+
+Thu Apr 12 14:40:22 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.c: applied William M. Brack patch fixing the
+	  template lack of support for priority
+	* test/XSLTMark/*.out : this fixed anumber of problems in the
+	  XSLTMark output
+
+Thu Apr 12 14:29:48 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/functions.c: removed warning in unparsed-entity-uri()
+	  fixed a bug in generate-id()
+	* libxslt/transform.c: fixed null list result errors
+	* libxslt/transform.c libxslt/xsltutils.c: applied William M. Brack
+	  fixes for sorting semantic
+
+Wed Apr 11 14:25:23 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* config.h.in configure.in libxslt/xsltconfig.h.in: added
+	  ansidecl.h test
+	* libxslt/xsltproc.c : added --xinclude option
+	* tests/XSLTMark/union.out : fixed the output
+
+Tue Apr 10 20:05:00 CEST 2001 Fatih Demir <kabalak at gtranslator.org>
+
+	* .cvsignore & doc/.cvsignore: Added CVS ignore files.
+
+Tue Apr 10 12:10:25 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in: released 0.7.0
+	* tests/XSLTMark/Makefile.am: trying to solve some make distcheck
+	  problems
+
+Sun Apr  8 11:42:03 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/functions.c libxslt/keys.c libxslt/transform.c:
+	  some checking against NULL pointers
+
+Mon Apr  2 17:00:39 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in tests/Makefile.am tests/XSLTMark/* tests/multiple:
+	  added the XSLTMark in the regression tests as well as multiple
+	  output test from Ankh
+	* libxslt/functions.c libxslt/keys.c libxslt/transform.c
+	  libxslt/variables.c libxslt/xsltutils.c: applied William M. Brack
+	  patches and fixed a memory leak
+	* tests/docbook/result/html/*.html : updated the results after
+	  William's patch
+	* tests/xmlspec/REC-xml-20001006-review.html 
+	  tests/xmlspec/REC-xml-20001006.html: libxml now don't invent
+	  an HTML doctype when serializing HTML result, but adds the
+	  encoding in ALT
+
+Thu Mar 29 10:24:42 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c: applied fix to xsltApplyTemplates from
+	  William M. Brack
+	* test/docbook/result/html/*.html: this change the output
+	* tests/xmlspec/REC-xml-20001006-review.html 
+	  tests/xmlspec/REC-xml-20001006.html: this also fixed some of
+	  the reference anchors generated for the XML spec
+
+Mon Mar 26 18:57:58 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/attributes.c libxslt/extra.c libxslt/keys.c libxslt/numbers.c
+	  libxslt/templates.c libxslt/transform.c libxslt/xsltconfig.h.in
+	  libxslt/xsltutils.c: of course the way I defined
+	  UNUSED breaks on old gcc version. Try to be smart and
+	  also define it directly in xsltconfig.h
+	* tests/xmlspec/Makefile.am: fixed the timing arg test
+
+Sun Mar 25 22:07:34 CEST 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.[ch] libxslt/variables.[ch] libxslt/xsltproc.c:
+	  implemented command line parameter passing
+	* tests/xmlspec/Makefile.am tests/xmlspec/REC-xml-20001006-review.html:
+	  tested it by passing show.diff.markup=1 to build the review version too
+
+Sat Mar 24 19:35:42 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+        Huge cleanup, I switched to compile with
+	-Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit
+	-Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat
+	-Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow
+	-Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return
+	-Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline
+	* libxslt/attributes.c libxslt/extensions.c libxslt/extra.c
+	  libxslt/functions.c libxslt/keys.c libxslt/numbers.c
+	  libxslt/pattern.c libxslt/preproc.c libxslt/templates.c
+	  libxslt/transform.c libxslt/variables.c libxslt/xslt.c
+	  libxslt/xsltutils.c: basically made static unexported functions
+	  avoided name clashes and flagged unused parameters.
+
+Thu Mar 22 22:52:48 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in: 0.6.0 yet another release
+	* doc/xslt.html doc/html/*: updated the docs
+
+Wed Mar 21 23:19:11 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltInternals.h libxslt/xslt.c libxslt/transform.c
+	  libxslt/templates.[ch] libxslt/preproc.c libxslt/extensions.[ch]
+	  extended xsltEvalStaticAttrValueTemplate and 
+	  xsltEvalAttrValueTemplate to support foreign namespaces,
+	  and fixed document()
+
+Mon Mar 19 18:40:40 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* xsltutils.h: cleanup some garbage added last night
+	* xsltInternals.h variables.c transform.c templates.[ch]
+	  preproc.c pattern.c keys.c: switched the whole XSLt processing
+	  to use XPath precompiled expressions and reusing them.
+	* functions.c: some cleanup, seems people don't use 
+	  unparsed-entity-uri() the way it's supposed to be used
+
+Mon Mar 19 01:08:05 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/keys.c libxslt/templates.c libxslt/transform.c
+	  libxslt/variables.c libxslt/xsltutils.h: Changed to work
+	  with the new way XPath is interpreted. This doesn't yet
+	  take advantage of the separate parsing/evaluation phases
+
+Wed Mar 14 15:51:36 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c: robert at xsl.00008.org pointed out a
+	  problem in xsl:copy-of in case of attributes
+	* tests/docs/Makefile.am tests/docs/bug-3-.xml
+	  tests/general/Makefile.am tests/general/bug-3-.*:
+	  added the test to the general regression suite
+
+Wed Mar 14 14:21:45 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/functions.c: applied and fixed ptittom at free.fr patch
+	  fixing some of the missing functionnalities in the XSLT
+	  functions implementations.
+	  
+Tue Mar 13 14:38:48 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/Makefile.am: nick at debian.org forwarded a fix
+
+Tue Mar 13 10:29:45 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* README.cvs-commits: added, pointing to HACKING
+	* HACKING: added defines commit rules.
+
+Mon Mar 12 14:43:20 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/extra.c libxslt/variables.c: fixing compilation
+	  when libxml was compiled without debug support
+
+Sat Mar 10 13:50:16 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in: time for 0.5.0
+	* tests/docs/Makefile.am tests/general/Makefile.am: make sure the
+	  new test files are included in the distribution
+	* doc/xslt.html : updated
+	* doc/html/*.html: regenerated the docs
+
+Thu Mar  8 02:34:52 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/docbook/result/html/*.html: regenerated the HTML
+	  now that value-of an result tree don't include the fake root
+
+Thu Mar  8 02:26:56 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c libxslt/variables.c: removed a couple
+	  of possibly uninitialized var probs
+	* tests/xmlspec/Makefile.am: run the processing without verbose
+	  avoid raising generated id differences.
+
+Wed Mar  7 23:22:09 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/preproc.c libxslt/xsltInternals.h: fixed a stylesheet
+	  reuse problem.
+	* libxslt/transform.c: fixed a bug which exaplined why no
+	  optimization were resulting from preproc stuff
+
+Wed Mar  7 21:51:52 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/preproc.c libxslt/transform.c: a couple of nastyness
+	  w.r.t. value of tree result (and attributes within it) fixed.
+	* tests/xmlspec/Makefile.am tests/xmlspec/REC-xml-20001006.html:
+	  Integrated the xmlspec to the test (i.e. diffed output for
+	  changes).
+
+Wed Mar  7 18:01:07 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* imports.c transform.c xslt.c xsltInternals.h: fixed a
+	  strip-spaces problem
+	* tests/docs/*.xml tests/general/*.[xsl,out]: added reported
+	  bugs to testsuite
+
+Wed Mar  7 13:34:13 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.[ch]: finished integrating the current
+	  state of the preproc optimizations.
+	* tests/xmlspec/diffspec.xsl: switched off diff printing
+
+Wed Mar  7 12:46:09 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/preproc.c libxslt/transform.c: started rolling in
+	  some of the optimizations.
+
+Tue Mar  6 19:39:25 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* attributes.[ch] extra.[ch] preproc.c xsltInternals.h
+	  transform.[ch]: previous commit broke a lot of stuff, fixing
+	  and preparing for next step
+
+Tue Mar  6 19:03:21 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/preproc.[ch] Makefile.am templates.[ch] transform.[ch]
+	  xsltInternals.h: started working on optimizing stylesheet
+	  element parsing. Just builds the extra informations so far.
+	* xsltutils.h: added a missing XPath decl
+
+Tue Mar  6 09:52:13 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/variables.c: William M. Brack found a serious bug
+	  with imports and global variables ...
+
+Mon Mar  5 21:51:54 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/pattern.[ch] libxslt/transform.c: added 
+	  xsltCleanupTemplates() to clean up state left after processing.
+
+Sun Mar  4 19:03:27 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c: applied patch from William M. Brack
+	  to support with-param in xsltApplyTemplates().
+
+Sun Mar  4 17:53:13 CET 2001 Bjorn Reese <breese at users.sourceforge.net>
+
+	* libxslt/pattern.c: fixed the compilation of patterns which
+	  contains XPath NodeTypes. Handling of nested predicates.
+
+Sat Mar  3 20:56:47 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c: save ctxt->node after for-each
+
+Thu Mar  1 18:16:58 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in libxslt.spec.in: updated to 0.4.0 and 2.3.3
+	* doc/xslt.html: updated
+
+Wed Feb 28 19:24:51 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/extra.[ch] libxslt/transform.[ch] libxslt/xsltInternals.h:
+	  added xsltDocumentElem implementing multiple file output,
+	  including 1.1 xsl:document but yet untested.
+
+Wed Feb 28 00:03:44 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/extensions.c: fixed stoopid bug
+	* libxslt/Makefile.am libxslt/extra.[ch]: added a new module
+	  carrying extensions to the specification. Added node-set()
+	  for existing saxon and xt namespaces and debug() in libxslt
+	  namespace (http://xmlsoft.org/XSLT/namespace)
+	* libxslt/xsltutils.[ch] transform.c: moved xsltDebug to extra.c
+	  plus cleanup.
+	* configure.in tests/Makefile.am tests/namespaces: added some
+	  namespaces tests, including a test calling the extra debugging
+	  function in libxslt namespace, worked first time !!!
+
+Tue Feb 27 16:15:47 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.c: extension prefix support for the full stylesheet
+	* libxslt/transform.c libxslt/extensions.[ch]: more work should
+	  start working
+
+Mon Feb 26 22:59:44 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/xslt.html : cleaned up, added a bit more description on
+	  the API section.
+
+Mon Feb 26 09:41:04 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/Makefile.am libxslt/extensions.[ch]: started working
+	  on functions and element extensions. First on list will be
+	  a document element.
+
+Sun Feb 25 06:52:14 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in libxslt.spec.in: releasing 0.3.0
+	* doc/xslt.html: updated
+	
+Sun Feb 25 05:28:30 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in tests/docbook/html : oops forgot to add
+	  the stylesheets themselves :-\
+
+Sun Feb 25 04:51:33 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in tests/Makefile.am tests/docbook tree:
+	  added docbook XSL based test suite
+
+Sat Feb 24 14:02:05 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltutils.c: reformat of messages
+	* libxslt/xsltproc.c: removed memleak on --noout
+	* libxslt/xsltInternals.h libxslt/variables.[ch] libxslt/transform.c:
+	  changed again the way parameter are evaluated before a
+	  call-template, seems to fix a few nasty bugs, memory alloc debug too
+	
+Wed Feb 21 09:10:13 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c libxslt/variables.c libxslt/xsltInternals.h:
+	  fixed the param evaluation problem in apply-template
+	* libxslt/pattern.c: speed up seriously some context computation
+	* libxslt/xsltInternals.h: preparing for extension support
+	  
+Mon Feb 19 19:34:59 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/Makefile.am: small cleanup
+	* libxslt/functions.c libxslt/transform.c libxslt/xsltInternals.h:
+	  fixed current() I hope
+
+Mon Feb 19 18:05:47 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/numbers.c libxslt/numbersInternals.h libxslt/xslt.c
+	  libxslt/pattern.[ch] libxslt/xsltInternals.h:  more work on
+	  support of namespaces, both in templates and in XPath subexpressions
+
+Sun Feb 18 19:11:26 CET 2001 Bjorn Reese <breese at users.sourceforge.net>
+
+	* libxslt/xsltutils.c: xsltSortFunction uses Shell's sort
+
+Sun Feb 18 17:13:00 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/pattern.c: when precompiled pattern is ALL, predicate
+	  contextual info must be recomputed
+
+Sun Feb 18 16:39:17 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.h libxslt/transform.c: defined and exported xsltMaxDepth
+	* libxslt/xsltproc.c : added --maxdepth
+
+Sun Feb 18 15:44:33 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+
+	* libxslt/xsltproc.c: added --novalid and --noout as well
+	  as options printing when no args
+	* libxslt/variables.c libxslt/transform.c: trying to get rid
+	  if some variable/params addressing errors.
+
+Sat Feb 17 14:27:47 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES libxslt/attributes.c: fixed use-attribute-sets
+	* libxslt/xsltutils.c: add carriage return to xsl:message when
+	  needed
+
+Sat Feb 17 02:25:45 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/functions.c: fixed a bug with generate-id()
+
+Sat Feb 17 00:51:53 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltutils.c: started doing more useful stuff in
+	  xsltDebug
+	* libxslt/transform.[ch] libxslt/variables.[ch] libxslt/templates.c
+	  libxslt/xsltInternals.h: changed the way variables/params
+	  are stored
+	* libxslt/xsltproc.c: removed a pedantic warning
+	* libxslt/variables.[ch]: found an ugly evaluation bug
+
+Thu Feb 15 18:14:48 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/REC/Makefile.am: updated
+
+Thu Feb 15 17:40:28 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxlst/functions.c: fixed ID generation
+	* doc/xslt.html doc/html/*.html: updated/regenerated the doc
+
+Thu Feb 15 13:34:42 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/numbers.c: removed a couple of memleaks
+
+Thu Feb 15 12:41:44 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/pattern.[ch]: exported pattern matching interfaces
+	  for numbers.c and future debug module
+	* libxslt/numbers.c: updated to new interface, should avoid
+	  unnecessary recompilation of patterns.
+	* libxslt/xsltutils.[ch]: cleanup
+	* tests/REC/gmon.out: removed :-)
+
+Wed Feb 14 19:13:33 CET 2001 Bjorn Reese <breese at users.sourceforge.net>
+
+	* libxslt/numbers.c: implemented level=any
+	* libxslt/transform.c: corrected some default values
+	* tests/REC/test-7.7-*.*: added
+
+Wed Feb 14 18:07:25 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/pattern.c: priorities were horribly broken, hope it's
+	  fixed
+
+Wed Feb 14 15:39:06 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES libxslt/imports.h libxslt/pattern.[ch]
+	  libxslt/xsltInternals.h libxslt/transform.[ch]
+	  libxslt/templates.c libxslt/xslt.c:
+	  Added apply-imports, keep a stack of running templates
+	* libxslt/xsltutils.c: bugfixes, gather the output informations
+	  down the cascade
+	* tests/xmlspec/Makefile.am tests/xmlspec/REC-xml-2e.xsl
+	  tests/xmlspec/diffspec.xsl tests/xmlspec/xmlspec.xsl: running
+	  the real set of transformation on XML-1.0 2e generages a near
+	  perfect HTML. Needs just more number fixes and implementation
+	  and an obscure problem in 3.3.3
+
+Tue Feb 13 20:31:03 CET 2001 Bjorn Reese <breese at users.sourceforge.net>
+
+	* libxslt/pattern.c: added xsltMatchPattern()
+	* libxslt/numbers.c: implemented "level=multiple" for xsl:number
+
+Tue Feb 13 18:07:12 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c libxslt/xsltproc.c: cleanup and debug
+	* libxslt/xsltutils.[ch] : added a small debugging hook
+
+Mon Feb 12 18:30:26 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/FEATURES libxslt/transform.c: added support for
+	  disable-output-escaping in xsl:copy-of
+	* xmlspec/Makefile.am libxslt/variables.c libxslt/transform.c:
+	  give more debugging info
+
+Sun Feb 11 21:08:35 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/documents.[ch] libxslt/functions.c libxslt/imports.c
+	  libxslt/xslt.c libxslt/xsltInternals.h: changed teh way to store
+	  Includes, more document changes
+	* libxslt/xsltutils.c: fix the output of doctype and what is or
+	  is not HTML
+	* tests/REC/*.out tests/REC2/html.xml : changed output accordingly
+	* tests/Makefile.am tests/documents/* : added a new test from Stric
+	  exercising document() among other things
+
+Sun Feb 11 17:24:03 CET 2001 Bjorn Reese <breese at users.sourceforge.net>
+
+	* FEATURES libxslt/transform.c libxslt/numbers.c: partial support
+	  for the level attribute for xsl:number
+	* libxslt/numbers.c: internal restructuring
+
+Fri Feb  9 15:49:19 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/Makefile.am libxslt/documents.[ch]: added a new module
+	  to deal with documents
+	* libxslt/functions.c: fixed document() to return the same set
+	  for teh same URL
+	* libxslt/keys.[ch] libxslt/templates.c libxslt/transform.c
+	  libxslt/variables.c libxslt/xsltInternals.h: keys are really
+	  associated to loaded documents, not to the transformation
+	  context, made the change, this impacted a number of modules
+
+Thu Feb  8 12:51:00 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* doc/libxslt.sgml doc/html/*.html: updated and rebuilt the doc list
+
+Thu Feb  8 12:36:23 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* README configure.in libxslt.spec.in: bumped to 0.1.0, getting
+	  ready for the release
+	* libxslt/keys.c libxslt/xslt.c: cleanup of uninitialized vars
+	* tests/REC1/Makefile.am tests/REC/Makefile.am: the EXTRA list
+	  was not up to date
+
+Thu Feb  8 12:09:58 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES libxslt/xsltInternals.h libxslt/pattern.c libxslt/keys.c:
+	  added support for keys in patterns
+	* tests/REC/test-12.2-2.*: added a specific testcase
+
+Wed Feb  7 21:16:47 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/functions.c FEATURES: started adding support for key()
+	* tests/REC/test-12.2-1.*: first key test
+
+Wed Feb  7 19:46:07 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES: updated
+	* libxslt/Makefile.am libxslt/keys.[ch] libxslt/xslt.c
+	  libxslt/transform.c libxslt/xsltInternals.h: started adding key
+	  support
+	* libxslt/xsltutils.c: warning cleanup
+	* libxslt/pattern.h: fixed soopid cut'n paste prob
+
+Tue Feb  6 10:56:38 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c libxslt/xslt.c: chased some reported
+	  unitinitialized variables.
+
+Tue Feb  6 10:55:26 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/numbers/Makefile.am: fixed the EXTRA stuff
+
+Mon Feb  5 22:02:24 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* Copyright IPR Makefile.am: added some wording and a rewrite
+	  of the W3C IPR but without giving Copyright rights to W3C,
+	  should suit everybody
+
+Mon Feb  5 18:58:17 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES: updated, added mode support for templates
+	* pattern.[ch] transform.c xslt.c xsltInternals.h: added mode
+	  support for templates
+	* templates.c variables.c: simple fixes
+	* xslt.c: added a separate DEBUG_BLANKS debug class disabled
+	* xsltproc.c: added option -timing
+	* xsltutils.c: seem I forgot to add encoding support in output...
+	* configure.in tests/Makefile.am tests/xmlspec/*: added a test
+	  consisting of reformatting the XML REC with the xmlspec XSLT,
+	  heavy !
+
+Mon Feb  5 18:43:37 CET 2001 Bjorn Reese <breese at users.sourceforge.net>
+
+	* FEATURES: updated
+	* numbers.c: handles actual number formatting for both xsl:number
+	  and the format-number extension function.
+	* function.c: formatting moved to numbers.c
+	* transform.c: added xsl:number
+	* xslt.c: minor memory leak removed
+	* Makefile.am: added numbers.c and numbersInternals.h
+
+Sat Feb  3 21:49:36 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* TODO: updated
+	* doc/html/*.html updated
+	* doc/libxslt.sgml: added new modules
+	* libxslt/pattern.c: fix loop on hash clashes.
+
+Sat Feb  3 16:13:35 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES: updated
+	* imports.c: bugfix
+	* pattern.c: lots of changes to make most patterns work
+	* templates.[ch]: added xsltEvalXPathPredicate() for predicate testing
+	* transform.c: cleanup and attribute patterns testing
+	* xslt.c: added xsltFreeStylesheetList() and now cleanup
+	  the imports
+	* tests/REC/test-2.3* tests/REC/test-2.6.2*: more tests
+	* tests/REC/test-5.2-*: 18 pattern tests from the spec, all should
+	  work now.
+
+Fri Feb  2 11:15:24 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES: updated
+	* transform.c: added xsl:element support
+	* namespaces.[ch]: added xsltGetSpecialNamespace()
+	* attributes.c: added xsl:attribute namespace support.
+
+Thu Feb  1 20:58:54 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/Makefile.am libxslt/imports.[ch]: new module to
+	  implement import cascade lookups and traversal
+	* libxslt/attributes.c libxslt/namespaces.c libxslt/pattern.[ch]
+	  libxslt/transform.c libxslt/xslt.c libxslt/xsltInternals.h:
+	  started coding the import cascade lookup in the places needed,
+	  probably incomplete.
+
+Thu Feb  1 18:04:39 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltInternals.h libxslt/xslt.h: started implementing
+	  xsl:include and xsl:import, untested
+
+Thu Feb  1 14:54:39 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES: updated choose/when/otherwise added
+	* libxslt/transform.c: plugged choose in
+	* configure.in tests/Makefile.am tests/REC/Makefile.am
+	  tests/docs/Makefile.am tests/docs/items.xml tests/general/Makefile.am
+	  tests/general/itemschoose.*: started adding a more generic
+	  infrastructure for testing.
+
+Thu Feb  1 05:36:28 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/REC/test-11*: added more tests
+	* libxslt/transform.c libxslt/variables.c: fixing bugs raised by
+	  said tests
+
+Wed Jan 31 21:42:43 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/REC/test-[9-10]*: added more tests
+	* tests/REC2/html.xml libxslt/xsltutils.c libxslt/transform.c:
+	  fixed sorting
+
+Wed Jan 31 19:25:38 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/REC/test-[7-9]*: added more tests
+	* libxslt/templates.c libxslt/transform.c libxslt/variables.c:
+	  fixing bugs raised by said tests, cleaned up the way ctxt->xpathctxt
+	  is allocated, overall cleanup.
+
+Wed Jan 31 14:25:25 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/REC/test-7.*: added more tests
+	* libxslt/pattern.c libxslt/templates.c libxslt/transform.c:
+	  fixing bugs raised by said tests
+
+Tue Jan 30 18:55:49 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/REC/test-7.*: added more tests
+	* libxslt/namespaces.[ch] libxslt/pattern.c libxslt/attributes.c
+	  libxslt/templates.c libxslt/transform.c libxslt/xslt.c: fixing bugs
+	  raised by said tests
+
+Tue Jan 30 15:16:56 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* TODO: updated
+	* configure.in tests/Makefile.am tests/REC/*: started adding
+	  some regression tests based from fragments of spec examples
+	* libxslt/transform.c: fixed a problem on namespace generation
+
+Mon Jan 29 18:40:23 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES: updated
+	* tests/numbers/Makefile.am tests/numbers/format-number.*
+	  tests/Makefile.am configure.in: added number formattting
+	  test from Bjorn
+	* libxslt/attributes.[ch]: separated attribute support, started
+	  add support for attribute-sets
+	* libxslt/functions.[ch]: update for number and formatting
+	  from Bjorn
+	* libxslt/transform.c libxslt/xslt.c libxslt/xsltInternals.h:
+	  cleanups updates, etc ...
+
+Mon Jan 29 00:53:25 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES: updated
+	* libxslt/transform.c: added copy-of support
+	* libxslt/xsltutils.[ch]: added xsltDocumentSortFunction()
+
+Sun Jan 28 21:45:23 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES TODO: updates
+	* libxslt/xsltutils.[ch] libxslt/xsltInternals.h libxslt/xsltutils.h:
+	  added xsl:message
+
+Sun Jan 28 17:25:35 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES TODO: updates
+	* libxslt/namespaces.[ch] libxslt/templates.c libxslt/transform.c
+	  libxslt/xslt.c libxslt/xsltInternals.h: added support for
+	  namespace aliases and cleaned up the overall namespace related
+	  code. This materialize as a new module.
+
+Sun Jan 28 08:41:10 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in libxslt.spec.in: changes needed for libxml2-devel
+	  changes
+
+Sat Jan 27 11:00:20 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt.spec.in doc/xslt.html: updating doc and trying to add
+	  it to the RPM.
+
+Fri Jan 26 22:29:34 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* Makefile.am configure.in doc/Makefile.am: added a doc subdir
+	  and the rules to generates the makefiles.
+	* doc/libxslt.sgml doc/xslt.html: very first version of the manual
+	* doc/html/*.html : autogenerated documentation
+	* libxslt/xsltInternals.h: fixed a typedef wich was breaking gtk-doc
+
+Fri Jan 26 21:48:25 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/functions.c: xsltGenerateIdFunction() small patch
+
+Thu Jan 25 19:36:45 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* FEATURES TODO README INSTALL: updated
+	* libxslt/xslt.h: added URL and version/vendor :-)
+	* libxslt/transform.c: fixed a problem in xsl:attribute, removed
+	  attempt to support older libxml2 version.
+	* libxslt/variables.h libxslt/xsltInternals.h: update to structures
+	  and macros to add/register new document created by document()
+	* libxslt/functions.c: implemented current(), unparsed-entity-uri()
+	  system-property(), element-available() and function-available().
+	  A crippled version of document() has been added too.
+
+Thu Jan 25 12:13:04 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* functions.[ch]: Bjorn Reese <breese at mail1.stofanet.dk> provided
+	  number formatting !!!
+	* acconfig.h config.h.in configure.in libxslt/Makefile.am
+	  tests/Makefile.am; added testing for mathematical functions,
+	  fixed make test(s)
+	* FEATURES: updated
+
+Wed Jan 24 16:59:05 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltInternals.h libxslt/pattern.c: fixed problems
+	  with non-named rules (*, ...) added accelerators
+	* libxslt/templates.[ch]: added xsltEvalTemplateString()
+	  and xsltEvalAttrValueTemplate() high level functions
+	* libxslt/transform.c: fixed the part where attributes
+	  had to be looked at as templates, added comment and
+	  PI generation
+	* TODO FEATURES: updated to reflect the new state
+
+Wed Jan 24 05:33:54 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/functions.[ch] Makefile.am: added new module functions
+	  with templates for the XSLT functions.
+	* libxslt/variables.h templates.c: added registrations of new
+	  functions when an XPath context is created
+
+Tue Jan 23 17:24:26 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* tests/Makefile.am: cleanup
+	* libxslt/pattern.c: should support most of the patterns now
+	  except ID/Key and maybe some namespace checks when having
+	  a default namespace
+	* TODO: updated
+
+Tue Jan 23 14:58:32 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* Makefile.am libxslt.spec.in tests/REC1/Makefile.am
+	  tests/REC2/Makefile.am: updated the makefiles and spec files to
+	  add tests, and the FEATURES file to the RPM
+
+Mon Jan 22 23:35:57 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* Makefile.am libxslt.spec.in libxslt/Makefile.am tests/Makefile.am:
+	  prepared the Makefiles and spec files for a first release.
+	* COPYING.LIB: added LGPL Licence
+
+Mon Jan 22 22:36:43 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c: applied cleanup patch from Bjorn Reese
+	  <breese at mail1.stofanet.dk>
+
+Mon Jan 22 20:24:36 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in libxslt.spec.in: first try to get a spec file
+
+Mon Jan 22 19:37:00 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xsltproc.c: avoid segfault when stylesheet is inproper
+	* libxslt/transform.c: add support for "*" to strip and preserve
+	  space.
+
+Mon Jan 22 15:30:19 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* TODO: updated
+	* FEATURES: added with alist of what's in and what's not
+	* libxslt/xslt.c: fixed top level Param and Variable stuff
+
+Mon Jan 22 11:46:44 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* xsltproc.c: removed bug
+	* tests/REC2/html.xml: added newline after doctype
+	* libxslt/variables.[ch] libxslt/xsltInternals.h: added param
+	  support, result tree fragment support (requires just commited
+	  extensions to libxml2 XPath !!!)
+	* transform.c: added call-template, with-param support
+	* libxslt/pattern.[ch]: xsltFindTemplate() needed for call-template
+	* TODO: updated, added a DONE section and started migrating stuff :-)
+
+Sun Jan 21 12:03:16 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* Makefile.am tests/Makefile.am tests/REC1/Makefile.am
+	  tests/REC2/Makefile.am tests/REC2/html.xml: added tests target
+	  too, added the HTML output test
+	* libxmls/xsltutils.c: added HTML output
+	* libxslt/xslt.c: check version on literal result used as templates
+	* libxslt/transform.c: fixed an error in VERSION number
+	* libxslt/templates.c: make sure generated nodes have doc and
+	  parent properly set
+
+Sat Jan 20 23:35:07 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/Makefile.am libxslt/template.[ch]: added a template
+	  specific module. Added attribute value template, at least in
+	  one spot.
+	* tests/REC2/Makefile.am tests/REC2/svg.xml: the SVG test from
+	  the spec now works too.
+	* libxslt/variables.c: fixed the debug
+	* libxslt/xslt.c: fixed an ugly uninitialized variable
+	* libxslt/transform.c: now using attr template processing
+
+Sat Jan 20 17:59:20 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c libxslt/variables.[ch] libxslt/xslt.c
+	  libxslt/xsltInternals.h libxslt/xsltutils.h: changed a few
+	  structure to add an execution stack with variables. Tree
+	  valued variables still missing.
+	* TODO: updated
+
+Fri Jan 19 13:16:57 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.c: check version on stylesheets
+	* libxslt/xslt.c libxslt/xsltInternals.h libxslt/variables[.ch]:
+	  started adding variables interfaces and modules.
+
+Thu Jan 18 16:08:38 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.c: added support for disable-output-escaping
+	  will need libxml version > 20211
+	* libxslt/transform.c: cleanup
+	* libxslt/xsltutils.[ch]: added output functions
+	* libxslt/xsltproc.c: reuse the output function
+	* tests/REC2/Makefile.am tests/REC2/vrml.xml: added VRML output
+	  test
+
+Wed Jan 17 21:03:01 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c libxslt/xslt.c: avoiding some problems
+	  with blank node stripping when not allowed.
+
+Wed Jan 17 20:15:40 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.c: modified apply-templates processing
+	  added select and sort support support.
+
+Wed Jan 17 17:45:20 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* TODO: guess what, it's growing :-(
+	* configure.in: setup hacking values when compiling in my
+	  own environment.
+	* libxslt/transform.c libxslt/xsltutils.[hc]: added a first
+	  very rudimentary version of xsl:sort
+
+Wed Jan 17 14:25:25 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* TODO: more stuff
+	* libxslt/transform.c: context position and size in for-each
+	* libxslt/xsltutils[ch] libxslt/makefile.am: added the util module
+	  and put Error and Debug routines
+	* libxslt/xslt.c libxslt/transform.c libxslt/pattern.c: switched
+	  to use the Debug calls, cleanup
+	* libxslt/xsltproc.c: added -v to enable debug printing
+
+Tue Jan 16 17:17:17 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* TODO: started filling it :-(
+	* libxslt/pattern.c: should now at least compile the full
+	  set of patterns authorized. Default priorities added.
+	* libxslt/transform.c: a bit more work and cleanup.
+
+Mon Jan 15 15:34:17 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* TODO: started adding in there :-(
+
+Mon Jan 15 15:31:41 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* transform.c, xslt.c, xsltproc.c: lots of fixes, added
+	  support of xslt:if and xslt:attribute, need libxml2 interfaces
+	  present only in CVS.
+
+Sat Jan 13 23:26:21 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* test/Makefile.am test/REC*/Makefile.am: added first test
+	* libxslt/pattern.c libxslt/transform.c libxslt/xslt.c:
+	  cleanup of nodes at reading of stylesheet, added support
+	  for xsl:for-each and fixed a few recursion bugs
+
+Fri Jan 12 22:33:07 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* pattern.c, xslt.c: removed debug
+	* transform.c: added value-of, seems to handle the first
+	  REC example correctly
+
+Fri Jan 12 18:34:01 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* transform.c, xsltproc.c: small fight with spaces and formatting
+	  may need a revisit later but looks pretty good right now.
+
+Fri Jan 12 13:43:30 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* transform.c: basic processing in place
+	* xsltInternals.h: exported one xslt.c function
+
+Thu Jan 11 21:10:59 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/transform.[ch] Makefile.am: started adding the
+	  transformation module
+	* pattern.[ch] xslt.c: more work...
+
+Thu Jan 11 14:02:03 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/pattern.c: started adding xsltTestCompMatch()
+
+Wed Jan 10 20:44:30 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/pattern.c: more work on parsing selectors
+
+Wed Jan 10 16:29:41 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt*: completeted the structures
+	* libxslt/pattern.[ch]: started adding code to precompile patterns
+	  and do the lookup
+	* libxslt/makefile.am: added the new files
+
+Mon Jan  8 19:55:18 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.c : small cleanup
+	* configure.in libxslt/xsltconfig.h.in: add memory debug and
+	  mechanism for compile-time options
+
+Sun Jan  7 22:53:12 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.[ch]: started parsing templates
+
+Sun Jan  7 19:50:02 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.[ch]: started parsing stylesheet xsl:stylesheet
+
+Sun Jan  7 16:11:42 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.[ch] libxslt/xsltInternals.h libxslt/xsltproc.c:
+	  very early coding
+
+Sun Jan  7 15:10:54 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* configure.in Makefile.am AUTHORS NEWS autogen.sh config.h.in
+	  libxslt/Makefile.am tests/Makefile.am:
+	  Created the library framework, imported it into the GNOME CVS base
+	* INSTALL: added a small instruction file.
+
+Sun Jan  7 13:51:30 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* libxslt/xslt.[ch] libxslt/xsltInternals.h libxslt/xsltproc.c:
+	  first steps toward building the framework
+
+Sun Jan  7 12:22:13 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* NOTES: added notes taken while reading the spec.
+
+Fri Jan  5 11:34:12 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* test/REC1 test/REC2: added examples from the XSLT REC
+
+Fri Jan  5 11:14:29 CET 2001 Daniel Veillard <Daniel.Veillard at imag.fr>
+
+	* README: basic informations
+	* Changelog: created

Added: packages/libxslt/branches/upstream/1.1.16/Copyright
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/Copyright	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/Copyright	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,53 @@
+Licence for libxslt except libexslt
+----------------------------------------------------------------------
+ Copyright (C) 2001-2002 Daniel Veillard.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of Daniel Veillard shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from him.
+
+----------------------------------------------------------------------
+
+Licence for libexslt
+----------------------------------------------------------------------
+ Copyright (C) 2001-2002 Thomas Broyer, Charlie Bozeman and Daniel Veillard.
+ All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the authors shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from him.
+----------------------------------------------------------------------

Added: packages/libxslt/branches/upstream/1.1.16/FEATURES
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/FEATURES	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/FEATURES	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,244 @@
+       Status of implementation of the XSLT 1.0 Features:
+       ==================================================
+
+      $Id: FEATURES,v 1.28 2001/07/10 15:14:08 veillard Exp $
+
+Stylesheet Constructs:
+======================
+
+YES			    xsl:stylesheet
+?				id = id 
+YES				extension-element-prefixes = tokens 
+YES				exclude-result-prefixes = tokens 
+YES				version = number
+
+YES			    xsl:transform
+?				id = id 
+YES				extension-element-prefixes = tokens 
+YES				exclude-result-prefixes = tokens 
+YES				version = number
+
+
+YES			    Literal Result Element as Stylesheet
+
+YES			    Embedding Stylesheets
+
+NO                          mediaType
+
+Top Level Elements:
+===================
+
+YES			    xsl:include
+YES				href = uri-reference
+
+YES			    xsl:import
+YES				href = uri-reference
+
+YES			    xsl:strip-space
+YES				elements = tokens
+
+YES			    xsl:preserve-space
+YES				elements = tokens
+
+YES			    xsl:template
+YES				match = pattern 
+YES				name = qname 
+YES				priority = number 
+YES				mode = qname
+
+YES			    xsl:namespace-alias
+YES				stylesheet-prefix = prefix | "#default"
+YES				result-prefix = prefix | "#default"
+
+YES			    xsl:attribute-set
+YES				name = qname 
+YES				use-attribute-sets = qnames
+
+YES			    xsl:variable
+YES				name = qname 
+YES				select = expression
+YES				Content: template
+
+YES			    xsl:param
+YES				name = qname 
+YES				select = expression
+YES				Content: template
+
+YES			    xsl:key
+YES				name = qname 
+YES				match = pattern 
+YES				use = expression
+
+YES			    xsl:output
+YES				method = "xml" | "html" | "text" | qname-but-not-ncname 
+YES				version = nmtoken 
+YES				encoding = string 
+YES				omit-xml-declaration = "yes" | "no"
+YES				standalone = "yes" | "no"
+YES				doctype-public = string 
+YES				doctype-system = string 
+YES				cdata-section-elements = qnames 
+YES				indent = "yes" | "no"
+YES				media-type = string
+
+Instructions:
+=============
+
+YES			    xsl:apply-templates
+YES				select = node-set-expression 
+YES				mode = qname
+
+YES			    xsl:apply-imports
+
+YES			    xsl:call-template
+YES				name = qname
+
+YES			    xsl:element
+YES				name = { qname }
+YES				namespace = { uri-reference }
+YES				use-attribute-sets = qnames
+
+YES			    xsl:attribute
+YES				name = { qname }
+YES				namespace = { uri-reference }
+
+YES			    xsl:text
+YES				disable-output-escaping = "yes" | "no"
+
+YES			    xsl:processing-instruction
+YES				name = { ncname }
+
+YES			    xsl:comment
+
+YES			    xsl:copy
+YES				use-attribute-sets = qnames
+
+YES			    xsl:value-of
+YES				select = string-expression 
+YES				disable-output-escaping = "yes" | "no"
+
+YES			    xsl:number
+YES				level = "single" | "multiple" | "any"
+YES				count = pattern 
+YES				from = pattern 
+YES				value = number-expression 
+YES				format = { string }
+NO				lang = { nmtoken }
+NO				letter-value = { "alphabetic" | "traditional" }
+YES				grouping-separator = { char }
+YES				grouping-size = { number }
+
+YES			    xsl:for-each
+YES				select = node-set-expression
+
+YES			    xsl:if
+YES				test = boolean-expression
+
+YES			    xsl:choose
+
+YES			    xsl:when
+YES				test = boolean-expression
+
+YES			    xsl:otherwise
+
+YES			    xsl:sort
+YES				select = string-expression 
+NO				lang = { nmtoken }
+YES				data-type = { "text" | "number" | qname-but-not-ncname }
+YES				order = { "ascending" | "descending" }
+NO				case-order = { "upper-first" | "lower-first" }
+
+YES			    xsl:variable
+YES				name = qname 
+YES				select = expression
+YES				Content: template
+
+YES			    xsl:param
+YES				name = qname 
+YES				select = expression
+YES				Content: template
+
+YES			    xsl:copy-of
+YES				select = expression
+
+YES			    xsl:with-param
+YES				name = qname 
+YES				select = expression
+
+YES			    xsl:decimal-format
+YES				name = qname 
+YES				decimal-separator = char 
+YES				grouping-separator = char 
+YES				infinity = string 
+YES				minus-sign = char 
+YES				NaN = string 
+YES				percent = char 
+YES				per-mille = char 
+YES				zero-digit = char 
+YES				digit = char 
+YES				pattern-separator = char
+
+YES			    xsl:message
+YES				terminate = "yes" | "no"
+
+YES			    xsl:fallback
+
+General:
+========
+
+YES			    Conflict Resolution for Template Rules
+
+YES			    Whitespace Stripping
+
+YES			    Built-in Template Rules
+YES			        match="*|/"
+YES				match="text()|@*"
+YES				match="processing-instruction()|comment()"
+YES				Namespace
+YES				Mode
+
+YES			    Extension Elements
+
+YES			    Extension Functions
+
+YES			    Attribute Value Templates
+
+YES			    Result Tree Fragments
+
+Functions:
+==========
+
+YES			    node-set document(object, node-set?)
+YES			    node-set key(string, object)
+YES			    string format-number(number, string, string?)
+YES			    node-set current() 
+YES			    string unparsed-entity-uri(string)
+YES			    string generate-id(node-set?)
+YES			    object system-property(string)
+YES			    boolean element-available(string)
+YES			    boolean function-available(string)
+
+Patterns:
+=========
+
+YES			    para
+YES			    *
+YES			    chapter|appendix
+YES			    olist/item
+YES			    appendix//para
+YES			    /
+YES			    text()
+YES			    processing-instruction()
+YES			    node()
+YES			    id("W11")
+YES			    para[1]
+YES			    *[position()=1 and self::para]
+YES			    para[last()=1]
+YES			    items/item[position()>1]
+YES			    item[position() mod 2 = 1]
+YES			    div[@class="appendix"]//p
+YES			    @class
+YES			    @*
+YES   except ns for key	    key('a','b')
+
+daniel at veillard.com

Added: packages/libxslt/branches/upstream/1.1.16/INSTALL
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/INSTALL	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/INSTALL	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,49 @@
+         How to install the XSLT library:
+
+Requirements:
+=============
+
+this library requires a recent version of libxml2 which you can grab from
+either the GNOME FTP or the xmlsoft.org server:
+
+  ftp://xmlsoft.org/
+
+When installing from a distribution package like a tar.gz:
+==========================================================
+
+expand the package
+
+run ./configure possibly indicating the desired installation prefix: 
+
+    ./configure --prefix=/usr
+
+then run
+
+    make
+
+to build the project and
+
+    make install 
+
+(possibly after having gained root access) to instal the library
+and associated include and scripts.
+
+When installing from a checkout of the GNOME CVS base:
+======================================================
+
+
+run ./autogen.sh possibly indicating the desired installation prefix: 
+
+    ./autogen.sh --prefix=/usr
+
+then run
+
+    make
+
+to build the project and
+
+    make install 
+
+(possibly after having gained root access) to instal the library
+and associated include and scripts.
+

Added: packages/libxslt/branches/upstream/1.1.16/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,72 @@
+SUBDIRS = \
+	libxslt \
+	libexslt \
+	xsltproc \
+	doc \
+	@PYTHON_SUBDIR@ \
+	tests
+
+DIST_SUBDIRS = libxslt libexslt xsltproc python doc tests
+
+confexecdir=$(libdir)
+confexec_DATA = xsltConf.sh
+
+bin_SCRIPTS = xslt-config
+
+dist-hook: cleanup libxslt.spec
+	(cd $(srcdir) ; tar -cf - --exclude CVS win32 vms examples) | (cd $(distdir); tar xf -)
+
+CVS_EXTRA_DIST =
+
+EXTRA_DIST = xsltConf.sh.in xslt-config.in libxslt.spec libxslt.spec.in \
+             FEATURES TODO Copyright libxslt.m4 \
+	     win32/libxslt/libxslt.def win32/libxslt/libxslt.dsw \
+	     win32/libxslt/libxslt_so.dsp win32/libxslt/xsltproc.dsp \
+	     $(CVS_EXTRA_DIST)
+
+## We create xsltConf.sh here and not from configure because we want
+## to get the paths expanded correctly.  Macros like srcdir are given
+## the value NONE in configure if the user doesn't specify them (this
+## is an autoconf feature, not a bug).
+
+xsltConf.sh: xsltConf.sh.in Makefile
+## Use sed and then mv to avoid problems if the user interrupts.
+	sed -e 's?\@XSLT_LIBDIR\@?$(XSLT_LIBDIR)?g' \
+	    -e 's?\@XSLT_INCLUDEDIR\@?$(XSLT_INCLUDEDIR)?g' \
+	    -e 's?\@VERSION\@?$(VERSION)?g' \
+	    -e 's?\@XSLT_LIBS\@?$(XSLT_LIBS)?g' \
+	       < $(srcdir)/xsltConf.sh.in > xsltConf.tmp \
+	&& mv xsltConf.tmp xsltConf.sh
+
+CLEANFILES = xsltConf.sh
+
+check-local: tests
+
+dummy:
+
+tests: dummy
+	@echo '## Running the regression test suite'
+	@(cd tests ; $(MAKE) MAKEFLAGS+=--silent tests)
+	@(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; $(MAKE) MAKEFLAGS+=--silent tests ; fi)
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	@echo '## Go get a cup of coffee it is gonna take a while ...'
+	@(cd tests ; $(MAKE) CHECKER='valgrind -q' tests)
+
+cleanup:
+	-@(find . -name .\#\* -exec rm {} \;)
+
+cleantar:
+	@(rm -f libxslt*.tar.gz)
+
+rpm: cleantar
+	@(unset CDPATH ; $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz)
+
+
+pkgconfigdir=$(libdir)/pkgconfig
+pkgconfig_DATA = libxslt.pc libexslt.pc
+
+m4datadir = $(datadir)/aclocal
+m4data_DATA = libxslt.m4
+

Added: packages/libxslt/branches/upstream/1.1.16/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,835 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = .
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
+	$(srcdir)/libexslt.pc.in $(srcdir)/libxslt.pc.in \
+	$(srcdir)/libxslt.spec.in $(srcdir)/xslt-config.in \
+	$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
+	TODO acconfig.h compile config.guess config.sub depcomp \
+	install-sh ltconfig ltmain.sh missing mkinstalldirs
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno configure.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = libxslt.pc libexslt.pc xslt-config libxslt.spec
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(confexecdir)" \
+	"$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)"
+binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
+SCRIPTS = $(bin_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-exec-recursive install-info-recursive \
+	install-recursive installcheck-recursive installdirs-recursive \
+	pdf-recursive ps-recursive uninstall-info-recursive \
+	uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+confexecDATA_INSTALL = $(INSTALL_DATA)
+m4dataDATA_INSTALL = $(INSTALL_DATA)
+pkgconfigDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(confexec_DATA) $(m4data_DATA) $(pkgconfig_DATA)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  { test ! -d $(distdir) \
+    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+SUBDIRS = \
+	libxslt \
+	libexslt \
+	xsltproc \
+	doc \
+	@PYTHON_SUBDIR@ \
+	tests
+
+DIST_SUBDIRS = libxslt libexslt xsltproc python doc tests
+confexecdir = $(libdir)
+confexec_DATA = xsltConf.sh
+bin_SCRIPTS = xslt-config
+CVS_EXTRA_DIST = 
+EXTRA_DIST = xsltConf.sh.in xslt-config.in libxslt.spec libxslt.spec.in \
+             FEATURES TODO Copyright libxslt.m4 \
+	     win32/libxslt/libxslt.def win32/libxslt/libxslt.dsw \
+	     win32/libxslt/libxslt_so.dsp win32/libxslt/xsltproc.dsp \
+	     $(CVS_EXTRA_DIST)
+
+CLEANFILES = xsltConf.sh
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libxslt.pc libexslt.pc
+m4datadir = $(datadir)/aclocal
+m4data_DATA = libxslt.m4
+all: config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+am--refresh:
+	@:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+	      cd $(srcdir) && $(AUTOMAKE) --gnu  \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
+	@if test ! -f $@; then \
+	  rm -f stamp-h1; \
+	  $(MAKE) stamp-h1; \
+	else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in:  $(am__configure_deps) $(top_srcdir)/acconfig.h
+	cd $(top_srcdir) && $(AUTOHEADER)
+	rm -f stamp-h1
+	touch $@
+
+distclean-hdr:
+	-rm -f config.h stamp-h1
+libxslt.pc: $(top_builddir)/config.status $(srcdir)/libxslt.pc.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
+libexslt.pc: $(top_builddir)/config.status $(srcdir)/libexslt.pc.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
+xslt-config: $(top_builddir)/config.status $(srcdir)/xslt-config.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
+libxslt.spec: $(top_builddir)/config.status $(srcdir)/libxslt.spec.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
+install-binSCRIPTS: $(bin_SCRIPTS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+	@list='$(bin_SCRIPTS)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  if test -f $$d$$p; then \
+	    f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+	    echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+	    $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
+	  else :; fi; \
+	done
+
+uninstall-binSCRIPTS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_SCRIPTS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+	done
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+install-confexecDATA: $(confexec_DATA)
+	@$(NORMAL_INSTALL)
+	test -z "$(confexecdir)" || $(mkdir_p) "$(DESTDIR)$(confexecdir)"
+	@list='$(confexec_DATA)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(confexecDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(confexecdir)/$$f'"; \
+	  $(confexecDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(confexecdir)/$$f"; \
+	done
+
+uninstall-confexecDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(confexec_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(confexecdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(confexecdir)/$$f"; \
+	done
+install-m4dataDATA: $(m4data_DATA)
+	@$(NORMAL_INSTALL)
+	test -z "$(m4datadir)" || $(mkdir_p) "$(DESTDIR)$(m4datadir)"
+	@list='$(m4data_DATA)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(m4dataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(m4datadir)/$$f'"; \
+	  $(m4dataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(m4datadir)/$$f"; \
+	done
+
+uninstall-m4dataDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(m4data_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(m4datadir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(m4datadir)/$$f"; \
+	done
+install-pkgconfigDATA: $(pkgconfig_DATA)
+	@$(NORMAL_INSTALL)
+	test -z "$(pkgconfigdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfigdir)"
+	@list='$(pkgconfig_DATA)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
+	  $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
+	done
+
+uninstall-pkgconfigDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(pkgconfig_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
+	done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	$(am__remove_distdir)
+	mkdir $(distdir)
+	$(mkdir_p) $(distdir)/. $(distdir)/libexslt $(distdir)/libxslt $(distdir)/win32/libxslt
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(mkdir_p) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-hook
+	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r $(distdir)
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	$(am__remove_distdir)
+
+dist-tarZ: distdir
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__remove_distdir)
+
+dist-shar: distdir
+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	$(am__remove_distdir)
+
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__remove_distdir)
+
+dist dist-all: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	esac
+	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	mkdir $(distdir)/_build
+	mkdir $(distdir)/_inst
+	chmod a-w $(distdir)
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && cd $(distdir)/_build \
+	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+	$(am__remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+distuninstallcheck:
+	@cd $(distuninstallcheck_dir) \
+	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+	$(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-recursive
+all-am: Makefile $(SCRIPTS) $(DATA) config.h
+installdirs: installdirs-recursive
+installdirs-am:
+	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(confexecdir)" "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+	distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-m4dataDATA install-pkgconfigDATA
+
+install-exec-am: install-binSCRIPTS install-confexecDATA
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-binSCRIPTS uninstall-confexecDATA \
+	uninstall-info-am uninstall-m4dataDATA uninstall-pkgconfigDATA
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
+	check-am check-local clean clean-generic clean-libtool \
+	clean-recursive ctags ctags-recursive dist dist-all dist-bzip2 \
+	dist-gzip dist-hook dist-shar dist-tarZ dist-zip distcheck \
+	distclean distclean-generic distclean-hdr distclean-libtool \
+	distclean-recursive distclean-tags distcleancheck distdir \
+	distuninstallcheck dvi dvi-am html html-am info info-am \
+	install install-am install-binSCRIPTS install-confexecDATA \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-m4dataDATA install-man \
+	install-pkgconfigDATA install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic maintainer-clean-recursive \
+	mostlyclean mostlyclean-generic mostlyclean-libtool \
+	mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
+	uninstall uninstall-am uninstall-binSCRIPTS \
+	uninstall-confexecDATA uninstall-info-am uninstall-m4dataDATA \
+	uninstall-pkgconfigDATA
+
+
+dist-hook: cleanup libxslt.spec
+	(cd $(srcdir) ; tar -cf - --exclude CVS win32 vms examples) | (cd $(distdir); tar xf -)
+
+xsltConf.sh: xsltConf.sh.in Makefile
+	sed -e 's?\@XSLT_LIBDIR\@?$(XSLT_LIBDIR)?g' \
+	    -e 's?\@XSLT_INCLUDEDIR\@?$(XSLT_INCLUDEDIR)?g' \
+	    -e 's?\@VERSION\@?$(VERSION)?g' \
+	    -e 's?\@XSLT_LIBS\@?$(XSLT_LIBS)?g' \
+	       < $(srcdir)/xsltConf.sh.in > xsltConf.tmp \
+	&& mv xsltConf.tmp xsltConf.sh
+
+check-local: tests
+
+dummy:
+
+tests: dummy
+	@echo '## Running the regression test suite'
+	@(cd tests ; $(MAKE) MAKEFLAGS+=--silent tests)
+	@(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; $(MAKE) MAKEFLAGS+=--silent tests ; fi)
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	@echo '## Go get a cup of coffee it is gonna take a while ...'
+	@(cd tests ; $(MAKE) CHECKER='valgrind -q' tests)
+
+cleanup:
+	-@(find . -name .\#\* -exec rm {} \;)
+
+cleantar:
+	@(rm -f libxslt*.tar.gz)
+
+rpm: cleantar
+	@(unset CDPATH ; $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/NEWS
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/NEWS	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/NEWS	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,696 @@
+
+        NEWS file for libxslt
+
+  Note that this is automatically generated from the news webpage at:
+       http://xmlsoft.org/XSLT/news.html
+
+The change log at 
+ChangeLog.html
+ describes the recents commits
+to the CVS at 
+http://cvs.gnome.org/viewcvs/libxslt/
+ code base.Those are the public releases made:
+1.1.16: May 01 2006:
+   - portability fixes: EXSLT date/time on Solaris and IRIX (Albert Chin),
+      HP-UX  build (Albert Chin), 
+  
+   - build fixes: Python detection(Joseph Sacco), plugin configurei
+      (Joel Reed)
+   - bug fixes: pattern compilation fix(William Brack), EXSLT date/time
+      fix (Thomas Broyer), EXSLT function bug, potential loop on variable
+      eval, startup race (Christopher Palmer), debug statement left in python
+      (Nic Ferrier), various cleanup based on Coverity reports), error on
+      Out of memory condition (Charles Hardin), various namespace prefixes
+      fixes (Kasimier Buchcik), 
+   - improvement: speed up sortingi, start of internals refactoring (Kasimier
+      Buchcik)
+   - documentation: man page fixes and updates (Daniel Leidert)
+
+
+
+1.1.15: Sep 04 2005:
+   - build fixes: Windows build cleanups and updates (Igor Zlatkovic),
+    remove jhbuild warnings
+   - bug fixes: negative number formatting (William Brack), number
+    formatting per mille definition (William Brack), XInclude default values
+    (William), text copy bugs (William), bug related to xmlXPathContext size,
+    reuse libxml2 memory management for text nodes, dictionnary text bug,
+    forbid variables in match (needs libxml2-2.6.21)
+   - improvements: EXSLT dyn:map (Mark Vakoc),
+   - documentation: EXSLT date and time functions namespace in man (Jonathan
+    Wakely)
+
+
+1.1.14: Apr 02 2005:
+   - bug fixes: text node on stylesheet document without a dictionary
+    (William Brack), more checking of XSLT syntax, calling xsltInit()
+    multiple times, mode values interning raised by Mark Vakoc, bug in
+    pattern matching with ancestors, bug in patterna matching with cascading
+    select, xinclude and document() problem, build outside of source tree
+    (Mike Castle)
+   - improvement: added a --nodict mode to xsltproc to check problems for
+    docuemtns without dictionnaries
+
+
+1.1.13: Mar 13 2005:
+   - build fixes: 64bits cleanup (William Brack), python 2.4 test (William),
+    LIBXSLT_VERSION_EXTRA on Windows (William), Windows makefiles fixes (Joel
+    Reed), libgcrypt-devel requires for RPM spec.
+   - bug fixes: exslt day-of-week-in-month (Sal Paradise), xsl:call-template
+    should not change the current template rule (William Brack), evaluation
+    of global variables (William Brack), RVT's in XPath predicates (William),
+    namespace URI on template names (Mark Vakoc), stat() for Windows patch
+    (Aleksey Gurtovoy), pattern expression fixes (William Brack), out of
+    memory detection misses (William), parserOptions propagation (William),
+    exclude-result-prefixes fix (William), // patten fix (William).
+   - extensions: module support (Joel Reed), dictionnary based speedups
+    trying to get rid of xmlStrEqual as much as possible.
+   - documentation: added Wiki (Joel Reed)
+
+
+1.1.12: Oct 29 2004:
+   - build fixes: warnings removal (William).
+   - bug fixes: attribute document pointer fix (Mark Vakoc), exslt date
+    negative periods (William Brack), generated tree structure fixes,
+    namespace lookup fix, use reentrant gmtime_r (William Brack),
+    exslt:funtion namespace fix (William), potential NULL pointer reference
+    (Dennis Dams, William), force string interning on generated
+  documents.
+   - documentation: update of the second tutorial (Panagiotis Louridas), add
+    exslt doc in rpm packages, fix the xsltproc man page.
+
+
+1.1.11: Sep 29 2004:
+   - bug fixes: xsl:include problems (William Brack), UTF8 number pattern
+    (William), date-time validation (William), namespace fix (William),
+    various Exslt date fixes (William), error callback fixes, leak with
+    namespaced global variable, attempt to fix a weird problem #153137
+   - improvements: exslt:date-sum tests (Derek Poon)
+   - documentation: second tutorial by Panagiotis Lourida
+
+
+1.1.10: Aug 31 2004:
+   - build fix: NUL in c file blocking compilation on Solaris, Windows build
+    (Igor Zlatkovic)
+   - fix: key initialization problem (William Brack)
+   - documentation: fixed missing man page description for --path
+
+
+1.1.9: Aug 22 2004:
+   - build fixes: missing tests (William Brack), Python dependancies, Python
+    on 64bits boxes, --with-crypto flag (Rob Richards),
+   - fixes: RVT key handling (William), Python binding (William and Sitsofe
+    Wheeler), key and XPath troubles (William), template priority on imports
+    (William), str:tokenize with empty strings (William), #default namespace
+    alias behaviour (William), doc ordering missing for main document
+    (William), 64bit bug (Andreas Schwab)
+   - improvements: EXSLT date:sum added (Joel Reed), hook for document
+    loading for David Hyatt, xsltproc --nodtdattr to avoid defaulting DTD
+    attributes, extend xsltproc --version with CVS stamp (William).
+   - Documentation: web page problem reported by Oliver Stoeneberg
+
+
+1.1.8: July 5 2004:
+   - build fixes: Windows runtime options (Oliver Stoeneberg), Windows
+    binary package layout (Igor Zlatkovic), libgcrypt version test and link
+    (William)
+   - documentation: fix libxslt namespace name in doc (William)
+   - bug fixes: undefined namespace message (William Brack), search engine
+    (William), multiple namespace fixups (William), namespace fix for key
+    evaluation (William), Python memory debug bindings,
+   - improvements: crypto extensions for exslt (Joel Reed, William)
+
+
+1.1.7: May 17 2004:
+   - build fix: warning about localtime_r on Solaris
+   - bug fix: UTF8 string tokenize (William Brack), subtle memory
+    corruption, linefeed after comment at document level (William),
+    disable-output-escaping problem (William), pattern compilation in deep
+    imported stylesheets (William), namespace extension prefix bug,
+    libxslt.m4 bug (Edward Rudd), namespace lookup for attribute, namespaced
+    DOCTYPE name
+
+
+1.1.6: Apr 18 2004:
+   - 2 bug fixes about keys fixed one by Mark Vakoc
+
+
+1.1.5: Mar 23 2004:
+   - performance: use dictionnary lookup for variables
+   - remove use of _private from source documents
+   - cleanup of "make tests" output
+   - bugfixes: AVT in local variables, use localtime_r to avoid thread
+    troubles (William), dictionary handling bug (William), limited number of
+    stubstitutions in AVT (William), tokenize fix for UTF-8 (William),
+    superfluous namespace (William), xsltproc error code on
+    <xsl:message> halt, OpenVMS fix, dictionnary reference counting
+    change.
+
+
+1.1.4: Feb 23 2004:
+   - bugfixes: attributes without doc (Mariano Suárez-Alvarez), problem with
+    Yelp, extension problem
+   - display extension modules (Steve Little)
+   - Windows compilation patch (Mark Vadoc), Mingw (Mikhail Grushinskiy)
+
+
+1.1.3: Feb 16 2004:
+   - Rewrote the Attribute Value Template code, new XPath compilation
+    interfaces, dictionnary reuses for XSLT with potential for serious
+    performance improvements.
+   - bug fixes: portability (William Brack), key() in node-set() results
+    (William), comment before doctype (William), math and node-set() problems
+    (William), cdata element and default namespace (William), behaviour on
+    unknown XSLT elements (Stefan Kost), priority of "//foo" patterns
+    (William), xsl:element and xsl:attribute QName check (William), comments
+    with -- (William), attribute namespace (William), check for ?> in PI
+    (William)
+   - Documentations: cleanup (John Fleck and William)
+   - Python: patch for OS-X (Gianni Ceccarelli), enums export (Stephane
+    bidoul)
+
+
+1.1.2: Dec 24 2003:
+   - Documentation fixes (John Fleck, William Brack), EXSLT documentation
+    (William Brack)
+   - Windows compilation fixes for MSVC and Mingw (Igor Zlatkovic)
+   - Bug fixes: exslt:date returning NULL strings (William Brack),
+    namespaces output (William Brack),  key and namespace definition problem,
+    passing options down to the document() parser, xsl:number fixes (William
+    Brack)
+
+
+1.1.1: Dec 10 2003:
+   - code cleanup (William Brack)
+   - Windows: Makefile improvements (Igor Zlatkovic)
+   - documentation improvements: William Brack, libexslt man page (Jonathan
+    Wakely)
+   - param in EXSLT functions (Shaun McCance)
+   - XSLT debugging improvements (Mark Vakoc)
+   - bug fixes: number formatting (Bjorn Reese), exslt:tokenize (William
+    Brack), key selector parsing with | reported by Oleg Paraschenko,
+    xsl:element with computed namespaces (William Brack), xslt:import/include
+    recursion detection (William Brack), exslt:function used in keys (William
+    Brack), bug when CDATA_SECTION are foun in the tree (William Brack),
+    entities handling when using XInclude.
+
+
+1.1.0: Nov 4 2003:
+   - Removed DocBook SGML broken support
+   - fix xsl:key to work with PIs
+   - Makefile and build improvement (Graham Wilson), build cleanup (William
+    Brack), macro fix (Justin Fletcher), build outside of source tree (Roumen
+    Petrov)
+   - xsltproc option display fix (Alexey Efimov), --load-trace (Crutcher
+    Dunnavant)
+   - Python: never use stdout for error
+   - extension memory error fix (Karl Eichwalder)
+   - header path fixes (Steve Ball)
+   - added saxon:line-number() to libexslt (Brett Kail)
+   - Fix some tortuous template problems when using predicates (William
+    Brack)
+   - Debugger status patch (Kasimier Buchcik)
+   - Use new libxml2-2.6.x APIs for faster processing
+   - Make sure xsl:sort is empty
+   - Fixed a bug in default processing of attributes
+   - Removes the deprecated breakpoint library
+   - detect invalid names on templates (William Brack)
+   - fix exslt:document (and similar) base handling problem
+
+
+1.0.33: Sep 12 2003:
+This is a bugfix only release   - error message missing argument (William Brack)
+   - mode not cascaded in template fallbacks (William Brack)
+   - catch redefinition of parameter/variables  (William Brack)
+   - multiple keys with same namespace name (William Brack)
+   - patch for compilation using MingW on Windows (Mikhail Grushinskiy)
+   - header export macros for Windows (Igor Zlatkovic)
+   - cdata-section-elements handling of namespaced names
+   - compilation without libxml2 XPointer support (Mark Vadoc)
+   - apply-templates crash (William Brack)
+   - bug with imported templates (William Brack)
+   - imported attribute-sets merging bug (DocBook) (William Brack)
+
+
+1.0.32: Aug 9 2003:
+   - bugfixes: xsltSaveResultToFile() python binding (Chris Jaeger), EXSLT
+    function (William Brack), RVT for globals (William Brack), EXSLT date
+    (William Brack),
+    speed of large text output, xsl:copy with attributes, strip-space and
+    namespaces prefix, fix for --path xsltproc option, EXST:tokenize (Shaun
+    McCance), EXSLT:seconds (William Brack), sort with multiple keys (William
+    Brack), checking of { and } for attribute value templates (William
+    Brack)
+  
+   - Python bindings for extension elements (Sean Treadway)
+   - EXSLT:split added (Shaun McCance)
+   - portability fixes for HP-UX/Solaris/IRIX (William Brack)
+   - doc cleanup
+
+
+1.0.31: Jul 6 2003:
+   - bugfixes: xsl:copy on namespace nodes, AVT for xsl:sort order, fix for
+    the debugger (Keith Isdale), output filename limitation, trio.h and
+    triodef.h added (Albert Chin), EXSLT node-set (Peter Breitenlohner),
+    xsltChoose and whitespace (Igor Zlatkovic),
+    stylesheet compilation (Igor Zlatkovic), NaN and sort (William Brack),
+    RVT bug introduced in 1.0.30
+  
+   - avoid generating &quot; (fix in libxml2-2.5.8)
+   - fix 64bit cleaness problem and compilation troubles introduced in
+  1.0.30
+   - Windows makefile generation (Igor Zlatkovic)
+   - HP-UX portability fix
+
+
+1.0.30: May 4 2003:
+   - Fixes and new APIs to handle Result Value Trees and avoid leaks
+   - Fixes for: EXSLT math pow() function (Charles Bozeman), global
+    parameter and global variables mismatch, a segfault on pattern
+    compilation errors, namespace copy in xsl:copy-of, python generator
+    problem, OpenVMS trio update, premature call to xsltFreeStackElem (Igor),
+    current node when templates applies to attributes
+
+
+1.0.29: Apr 1 2003:
+   - performance improvements especially for large flat documents
+   - bug fixes: Result Value Tree handling, XML IDs, keys(), extra namespace
+    declarations with xsl:elements.
+   - portability: python and trio fixes (Albert Chin), python on Solaris
+    (Ben Phillips)
+
+
+1.0.28: Mar 24 2003:
+   - fixed node() in patterns semantic.
+   - fixed a memory access problem in format-number()
+   - fixed stack overflow in recursive global variable or params
+   - cleaned up Result Value Tree handling, and fixed a couple of old bugs
+    in the process
+
+
+1.0.27: Feb 24 2003:
+   - bug fixes: spurious xmlns:nsX="" generation, serialization bug (in
+    libxml2), a namespace copy problem, errors in the RPM spec prereqs
+   - Windows path canonicalization and document cache fix (Igor)
+
+
+1.0.26: Feb 10 2003:
+   - Fixed 3 serious bugs in document() and stylesheet compilation which
+    could lead to a crash
+
+
+1.0.25: Feb 5 2003:
+   - Bug fix: double-free for standalone stylesheets introduced in 1.0.24, C
+    syntax pbm, 3 bugs reported by Eric van der Vlist
+   - Some XPath and XInclude related problems were actually fixed in
+    libxml2-2.5.2
+   - Documentation: emphasize taht --docbook is not for XML docs.
+
+
+1.0.24: Jan 14 2003:
+   - bug fixes: imported global varables, python bindings (Stéphane Bidoul),
+    EXSLT memory leak (Charles Bozeman), namespace generation on
+    xsl:attribute, space handling with imports (Daniel Stodden),
+    extension-element-prefixes (Josh Parsons), comments within xsl:text (Matt
+    Sergeant), superfluous xmlns generation, XInclude related bug for
+    numbering, EXSLT strings (Alexey Efimov), attribute-sets computation on
+    imports, extension module init and shutdown callbacks not called
+   - HP-UX portability (Alexey Efimov), Windows makefiles (Igor and Stephane
+    Bidoul), VMS makefile updates (Craig A. Berry)
+   - adds xsltGetProfileInformation() (Michael Rothwell)
+   - fix the API generation scripts
+   - API to provide the sorting routines (Richard Jinks)
+   - added XML description of the EXSLT API
+   - added ESXLT URI (un)escaping (Jörg Walter)
+   - Some memory leaks have been found and fixed
+   - document() now support fragment identifiers in URIs
+
+
+1.0.23: Nov 17 2002:
+   - Windows build cleanup (Igor)
+   - Unix build and RPM packaging cleanup
+   - Improvement of the python bindings: extension functions and activating
+    EXSLT
+   - various bug fixes: number formatting, portability for bounded string
+    functions, CData nodes, key(), @*[...] patterns
+   - Documentation improvements (John Fleck)
+   - added libxslt.m4 (Thomas Schraitle)
+
+
+1.0.22: Oct 18 2002:
+   - Updates on the Windows Makefiles
+   - Added a security module, and a related set of new options to
+  xsltproc
+   - Allowed per transformation error handler.
+   - Fixed a few bugs: node() semantic, URI escaping, media-type, attribute
+    lists
+
+
+1.0.21: Sep 26 2002:
+   - Bug fixes: match="node()", date:difference() (Igor and Charlie
+    Bozeman), disable-output-escaping
+   - Python bindings: style.saveResultToString() from Ralf Mattes
+   - Logos from Marc Liyanage
+   - Mem leak fix from Nathan Myers
+   - Makefile: DESTDIR fix from Christophe Merlet, AMD x86_64 (Mandrake),
+    Windows (Igor), Python detection
+   - Documentation improvements: John Fleck
+
+
+1.0.20: Aug 23 2002:
+   - Windows makefile updates (Igor) and x86-64 (Frederic Crozat)
+   - fixed HTML meta tag saving for Mac/IE users
+   - possible leak patches from Nathan Myers
+   - try to handle document('') as best as possible depending in the
+  cases
+   - Fixed the DocBook stylesheets handling problem
+   - Fixed a few XSLT reported errors
+
+
+1.0.19:  July 6 2002:
+   - EXSLT: dynamic functions and date support bug fixes (Mark Vakoc)
+   - xsl:number fix: Richard Jinks
+   - xsl:format-numbers fix: Ken Neighbors
+   - document('') fix: bug pointed by Eric van der Vlist
+   - xsl:message with terminate="yes" fixes: William Brack
+   - xsl:sort order support added: Ken Neighbors
+   - a few other bug fixes, some of them requiring the latest version of
+    libxml2
+
+
+1.0.18: May 27 2002:
+   - a number of bug fixes: attributes, extra namespace declarations
+    (DocBook), xsl:include crash (Igor), documentation (Christian Cornelssen,
+    Charles Bozeman and Geert Kloosterman),  element-available (Richard
+  Jinks)
+   - xsltproc can now list teh registered extensions thanks to Mark
+  Vakoc
+   - there is a new API to save directly to a string
+    xsltSaveResultToString() by Morus Walter
+   - specific error registration function for the python API
+
+
+1.0.17: April 29 2002:
+   - cleanup in code, XSLT debugger support and Makefiles for Windows by
+  Igor
+   - a C++ portability fix by Mark Vakoc
+   - EXSLT date improvement and regression tests by Charles Bozeman
+   - attempt to fix a bug in xsltProcessUserParamInternal
+
+
+1.0.16: April 15 2002:
+   - Bug fixes: strip-space, URL in HTML output, error when xsltproc can't
+    save
+   - portability fixes: OSF/1, IEEE on alphas, Windows, Python bindings
+
+
+1.0.15: Mar 25 2002:
+   - Bugfixes: XPath, python Makefile, recursive attribute sets, @foo[..]
+    templates
+   - Debug of memory alocation with valgind
+   - serious profiling leading to significant improvement for DocBook
+    processing
+   - revamp of the Windows build
+
+
+1.0.14: Mar 18 2002:
+   - Improvement in the XPath engine (libxml2-2.4.18)
+   - Nasty bug fix related to exslt:node-set
+   - Fixed the python Makefiles, cleanup of doc comments, Windows
+    portability fixes
+
+
+1.0.13: Mar 8 2002:
+   - a number of bug fixes including "namespace node have no parents"
+   - Improvement of the Python bindings
+   - Charles Bozeman provided fixes and regression tests for exslt date
+    functions.
+
+
+1.0.12: Feb 11 2002:
+   - Fixed the makefiles especially the python module ones
+   - half a dozen bugs fixes including 2 old ones
+
+
+1.0.11: Feb 8 2002:
+   - Change of Licence to the MIT
+  Licence
+   - Added a beta version of the Python bindings, including support to
+    extend the engine with functions written in Python
+   - A number of bug fixes
+   - Charlie Bozeman provided more EXSLT functions
+   - Portability fixes
+
+
+1.0.10: Jan 14 2002:
+   - Windows fixes for Win32 from Igor
+   - Fixed the Solaris compilation trouble (Albert)
+   - Documentation changes and updates: John Fleck
+   - Added a stringparam option to avoid escaping hell at the shell
+  level
+   - A few bug fixes
+
+
+1.0.9: Dec 7 2001:
+   - Makefile patches from Peter Williams
+   - attempt to fix the compilation problem associated to prelinking
+   - obsoleted libxsltbreakpoint now deprecated and frozen to 1.0.8 API
+   - xsltproc return codes are now significant, John Fleck updated the
+    documentation
+   - patch to allow as much as 40 steps in patterns (Marc Tardif), should be
+    made dynamic really
+   - fixed a bug raised by Nik Clayton when using doctypes with HTML
+  output
+   - patches from Keith Isdale to interface with xsltdebugger
+
+
+1.0.8: Nov 26 2001:
+   - fixed an annoying header problem, removed a few bugs and some code
+    cleanup
+   - patches for Windows and update of Windows Makefiles by Igor
+   - OpenVMS port instructions from John A Fotheringham
+   - fixed some Makefiles annoyance and libraries prelinking
+  informations
+
+
+1.0.7: Nov 10 2001:
+   - remove a compilation problem with LIBXSLT_PUBLIC
+   - Finishing the integration steps for Keith Isdale debugger
+   - fixes the handling of indent="no" on HTML output
+   - fixes on the configure script and RPM spec file
+
+
+1.0.6: Oct 30 2001:
+   - bug fixes on number formatting (Thomas), date/time functions (Bruce
+    Miller)
+   - update of the Windows Makefiles (Igor)
+   - fixed DOCTYPE generation rules for HTML output (me)
+
+
+1.0.5: Oct 10 2001:
+   - some portability fixes, including Windows makefile updates from
+  Igor
+   - fixed a dozen bugs on XSLT and EXSLT (me and Thomas Broyer)
+   - support for Saxon's evaluate and expressions extensions added (initial
+    contribution from Darren Graves)
+   - better handling of XPath evaluation errors
+
+
+1.0.4: Sep 12 2001:
+   - Documentation updates from John fleck
+   - bug fixes (DocBook  FO generation should be fixed)  and portability
+    improvements
+   - Thomas Broyer improved the existing EXSLT support and added String,
+    Time and Date core functions support
+
+
+1.0.3:  Aug 23 2001:
+   - XML Catalog support see the doc
+   - New NaN/Infinity floating point code
+   - A few bug fixes
+
+
+1.0.2:  Aug 15 2001:
+   - lot of bug fixes, increased the testsuite
+   - a large chunk of EXSLT is implemented
+   - improvements on the extension framework
+   - documentation improvements
+   - Windows MSC projects files should be up-to-date
+   - handle attributes inherited from the DTD by default
+
+
+1.0.1:  July 24 2001:
+   - initial EXSLT framework
+   - better error reporting
+   - fixed the profiler on Windows
+   - bug fixes
+
+
+1.0.0: July 10 2001:
+   - a lot of cleanup, a lot of regression tests added or fixed
+   - added a documentation for writing
+    extensions
+   - fixed some variable evaluation problems (with William)
+   - added profiling of stylesheet execution accessible as the xsltproc
+    --profile option
+   - fixed element-available() and the implementation of the various
+    chunking methods present, Norm Walsh provided a lot of feedback
+   - exclude-result-prefixes and namespaces output should now work as
+    expected
+   - added support of embedded stylesheet as described in section 2.7 of the
+    spec
+
+
+0.14.0: July 5 2001:
+   - lot of bug fixes, and code cleanup
+   - completion of the little XSLT-1.0 features left unimplemented
+   - Added and implemented the extension API suggested by Thomas Broyer
+   - the Windows MSC environment should be complete
+   - tested and optimized with a really large document (DocBook Definitive
+    Guide) libxml/libxslt should really be faster on serious workloads
+
+
+0.13.0: June 26 2001:
+   - lots of cleanups
+   - fixed a C++ compilation problem
+   - couple of fixes to xsltSaveTo()
+   - try to fix Docbook-xslt-1.4 and chunking, updated the regression test
+    with them
+   - fixed pattern compilation and priorities problems
+   - Patches for Windows and MSC project mostly contributed by Yon Derek
+   - update to the Tutorial by John Fleck
+   - William fixed bugs in templates and for-each functions
+   - added a new interface xsltRunStylesheet() for a more flexible output
+    (incomplete), added -o option to xsltproc
+
+
+0.12.0: June 18 2001:
+   - fixed a dozen of bugs reported
+   - HTML generation should be quite better (requires libxml-2.3.11 upgrade
+    too)
+   - William fixed some problems with document()
+   - Fix namespace nodes selection and copy (requires libxml-2.3.11 upgrade
+    too)
+   - John Fleck added a
+  tutorial
+   - Fixes for namespace handling when evaluating variables
+   - XInclude global flag added to process XInclude on document() if
+    requested
+   - made xsltproc --version more detailed
+
+
+0.11.0: June 1 2001:
+Mostly a bug fix release.   - integration of catalogs from xsltproc
+   - added --version to xsltproc for bug reporting
+   - fixed errors when handling ID in external parsed entities
+   - document() should hopefully work correctly but ...
+   - fixed bug with PI and comments processing
+   - William fixed the XPath string functions when using unicode
+
+
+0.10.0: May 19 2001:
+   - cleanups to make stylesheet read-only (not 100% complete)
+   - fixed URI resolution in document()
+   - force all XPath expression to be compiled at stylesheet parsing time,
+    even if unused ...
+   - Fixed HTML default output detection
+   - Fixed double attribute generation #54446
+   - Fixed {{ handling in attributes #54451
+   - More tests and speedups for DocBook document transformations
+   - Fixed a really bad race like bug in xsltCopyTreeList()
+   - added a documentation on the libxslt internals
+   - William Brack and Bjorn Reese improved format-number()
+   - Fixed multiple sort, it should really work now
+   - added a --docbook option for SGML DocBook input (hackish)
+   - a number of other bug fixes and regression test added as people were
+    submitting them
+
+
+0.9.0: May 3 2001:
+   - lot of various bugfixes, extended the regression suite
+   - xsltproc should work with multiple params
+   - added an option to use xsltproc with HTML input
+   - improved the stylesheet compilation, processing of complex stylesheets
+    should be faster
+   - using the same stylesheet for concurrent processing on multithreaded
+    programs should work now
+   - fixed another batch of namespace handling problems
+   - Implemented multiple level of sorting
+
+
+0.8.0: Apr 22 2001:
+   - fixed ansidecl.h problem
+   - fixed unparsed-entity-uri() and generate-id()
+   - sort semantic fixes and priority prob from William M. Brack
+   - fixed namespace handling problems in XPath expression computations
+    (requires libxml-2.3.7)
+   - fixes to current() and key()
+   - other, smaller fixes, lots of testing with N Walsh DocBook HTML
+    stylesheets
+
+
+0.7.0: Apr 10 2001:
+   - cleanup using stricter compiler flags
+   - command line parameter passing
+   - fix to xsltApplyTemplates from William M. Brack
+   - added the XSLTMark in the regression tests as well as document()
+
+
+0.6.0: Mar 22 2001:
+   - another beta
+   - requires 2.3.5, which provide XPath expression compilation support
+   - document() extension should function properly
+   - fixed a number or reported bugs
+
+
+0.5.0: Mar 10 2001:
+   - fifth beta
+   - some optimization work, for the moment 2 XSLT transform cannot use the
+    same stylesheet at the same time (to be fixed)
+   - fixed problems with handling of tree results
+   - fixed a reported strip-spaces problem
+   - added more reported/fixed bugs to the test suite
+   - incorporated William M. Brack fix for imports and global variables as
+    well as patch for with-param support in apply-templates
+   - a bug fix on for-each
+
+
+0.4.0: Mar 1 2001:
+   - fourth beta test, released at the same time of libxml2-2.3.3
+   - bug fixes
+   - some optimization
+   - started implement extension support, not finished
+   - implemented but not tested multiple file output
+
+
+0.3.0: Feb 24 2001:
+   - third beta test, released at the same time of libxml2-2.3.2
+   - lot of bug fixes
+   - some optimization
+   - added DocBook XSL based testsuite
+
+
+0.2.0: Feb 15 2001:
+   - second beta version, released at the same time as libxml2-2.3.1
+   - getting close to feature completion, lot of bug fixes, some in the HTML
+    and XPath support of libxml
+   - start becoming usable for real work. This version can now regenerate
+    the XML 2e HTML from the original XML sources and the associated
+    stylesheets (in section I of the XML
+    REC)
+   - Still misses extension element/function/prefixes support. Support of
+    key() and document() is not complete
+
+
+0.1.0: Feb 8 2001:
+   - first beta version, released at the same time as libxml2-2.3.0
+   - lots of bug fixes, first "testing" version, but incomplete
+
+
+0.0.1: Jan 25 2001:
+   - first alpha version released at the same time as libxml2-2.2.12
+   - Framework in place, should work on simple examples, but far from being
+    feature complete
+
+Daniel Veillard at 
+bugs.html

Added: packages/libxslt/branches/upstream/1.1.16/README
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/README	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/README	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+
+     XSLT support for libxml2 (XML toolkit from the GNOME project)
+
+Full documentation is available on-line at
+    http://xmlsoft.org/XSLT/
+
+This code is released under the MIT Licence see the Copyright file.
+ 
+To report bugs, follow the instructions at:
+  http://xmlsoft.org/XSLT/bugs.html
+
+A mailing-list xslt at gnome.org is available, to subscribe:
+    http://mail.gnome.org/mailman/listinfo/xslt
+
+The list archive is at:
+    http://mail.gnome.org/archives/xslt/
+
+All technical answers asked privately will be automatically answered on
+the list and archived for public access unless pricacy is explicitely
+required and justified.
+
+Daniel Veillard
+
+$Id: README,v 1.7 2003/02/04 17:20:01 veillard Exp $

Added: packages/libxslt/branches/upstream/1.1.16/TODO
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/TODO	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/TODO	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,124 @@
+                  ********
+                 *        *
+                 *  TODO  *
+                 *        *
+                  ********
+
+Lifetime of result Value Tree, make sure we keep pointers. Exslt
+handling of node set values is especially nasty in this respect,
+lots of potential mem leaks...
+
+Pattern tester:
+  -> try to optimize for ID scan and tests.
+
+Pattern scanner:
+  -> add error checks on all returns
+
+Sorting:
+  -> add lang and case-order
+  -> add foreign sorting functions (interfaces ?).
+
+                  ********
+                 *        *
+                 *  DONE  *
+                 *        *
+                  ********
+
+Design:
+  - should transforms for a given stylesheet be thread clean,
+    -> the precompilation now occur only at stylesheet processing
+       time (except the binding for named templates and extension
+       functions which need to be computed once at run-time).
+       Multiple threads should be able to reuse the same stylesheet
+       now.
+
+Embedding Stylesheets:
+  - example in 2.7 would force to validate, we do it by default now
+
+ID and Key support:
+  -> Done
+
+Extra functions:
+  -> document() should not be a problem since Result Tree Fragments are
+     implemented
+  => Done
+
+Templates:
+  -> check the built-in template rule for attributes
+  -> make sure @xxx matches are applied
+
+Contextual error reporting:
+  -> provide a couple of functions providing context analysis, not urgent
+
+Validity:
+  -> should we add validation by default ? Make this an option
+  -> redirrect validity errors
+  => done added a special parsing mode
+
+Import:
+  -> parse them
+  -> provide functions to circulate in the import tree of stylesheets
+  -> make sure we use the cascade wherever it's needed
+
+Extra functions:
+  -> make a separate module.
+  => done functions.[ch]
+
+Support Attribute value templates:
+  -> starts to be urgent. Design it in flexible ways but try to optimize
+     to handle most of it at the stylesheet parse time ...
+  => Done for the most part need to check all attributes in XSLT constructs
+     using them and use the dedicated readin function.
+  -> optimization by checking their existence at stylesheet parse time.
+  => done when building the preproc function
+
+Sorting:
+  -> add support for imbricated sorts
+  => done but not well tested.
+
+Separate util module:
+  -> macros, config, verbosity ?
+  => xsltutils.[ch]
+
+Support for disable-output-escaping="yes":
+  -> looks problematic, libxml has no support for anything like this,
+     and unless adding a new node type :-( or tweaking text node and
+     output routines this is gonna be messy ... must be handled at libxml
+     level.
+  => Done with a trick, text node name is different, requires > 2.2.11
+
+Pattern scanner:
+  -> compute priority
+  -> handle unions
+  -> support for mode
+  => done
+
+Pattern tester:
+  -> also put fast lookup for "text()", "comment()", "node()"
+     based patterns lists.
+  => done
+
+Support Attribute value templates:
+  -> namespace support for attribute value templates is not done, need
+     a small API redesign
+
+Doc:
+  - put a page at http://xmlsoft.org/XSLT/
+  - generate/transform the DocBook to HTML
+  - add HTML to package
+  - manpage and doc for xsltproc
+
+
+Error handling:
+  -> check the version stuff, design a separate module for error interfacing
+     and default handling, parsing vs. runtime, fatal / compat / warning,
+     and lack of optionnal features.
+  -> reports context
+
+ID and Key support:
+  -> done but namespace support in keys is not defined
+  -> make sure keys are recomputed on new document input
+
+Profiler:
+  -> added looks good enough
+  -> autocorrection of initial calibration loop

Added: packages/libxslt/branches/upstream/1.1.16/acconfig.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/acconfig.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/acconfig.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+#undef HAVE_ISINF
+#undef HAVE_ISNAN
+#undef HAVE_POW
+#undef HAVE_FLOOR
+#undef HAVE_FABS
+#undef WITH_DEBUGGER

Added: packages/libxslt/branches/upstream/1.1.16/aclocal.m4
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/aclocal.m4	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/aclocal.m4	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7256 @@
+# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005  Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+
+# serial 48 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+         [],
+         [m4_define([AC_PROVIDE_IFELSE],
+	         [m4_ifdef([AC_PROVIDE_$1],
+		           [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+  AC_PROVIDE_IFELSE([AC_PROG_CXX],
+    [AC_LIBTOOL_CXX],
+    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+  ])])
+dnl And a similar setup for Fortran 77 support
+  AC_PROVIDE_IFELSE([AC_PROG_F77],
+    [AC_LIBTOOL_F77],
+    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+    [AC_LIBTOOL_GCJ],
+    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+      [AC_LIBTOOL_GCJ],
+      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+	[AC_LIBTOOL_GCJ],
+      [ifdef([AC_PROG_GCJ],
+	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([A][M_PROG_GCJ],
+	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([LT_AC_PROG_GCJ],
+	     [define([LT_AC_PROG_GCJ],
+		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+
+# Same as above, but do not quote variable references.
+[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    AC_PATH_MAGIC
+  fi
+  ;;
+esac
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+    [AC_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+AC_DEFUN([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+AC_DEFUN([_LT_COMPILER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+AC_DEFUN([_LT_LINKER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_LINKER_BOILERPLATE
+
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+[$]*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string=`eval $cmd`) 2>/dev/null &&
+       echo_test_string=`eval $cmd` &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "[$]0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *32-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*|powerpc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)    LD="${LD-ld} -64" ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+  ])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$5], , :, [$5])
+else
+    ifelse([$6], , :, [$6])
+fi
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                          [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$4], , :, [$4])
+else
+    ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ 	]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    # If test is not a shell built-in, we'll probably end up computing a
+    # maximum length that is only half of the actual maximum length, but
+    # we can't tell.
+    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+    while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
+	       = "XX$teststring") >/dev/null 2>&1 &&
+	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
+	    lt_cv_sys_max_cmd_len=$new_result &&
+	    test $i != 17 # 1/2 MB should be enough
+    do
+      i=`expr $i + 1`
+      teststring=$teststring$teststring
+    done
+    teststring=
+    # Add a significant safety factor because C++ compilers can tack on massive
+    # amounts of additional arguments before passing them to the linker.
+    # It appears as though 1/2 is a usable value.
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
+
+# _LT_AC_CHECK_DLFCN
+# ------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ---------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+    exit (status);
+}]
+EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# ----------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+   ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+    	  lt_cv_dlopen_self_static, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+
+
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+   test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
+   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_AC_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         AC_MSG_RESULT([yes])
+       else
+  AC_MSG_RESULT([no])
+fi
+       ;;
+   *)
+  AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
+
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[123]]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  freebsd*) # from 4.6 on
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix3*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+    if AC_TRY_EVAL(ac_compile); then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_ARG_WITH([tags],
+    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+        [include additional configurations @<:@automatic@:>@])],
+    [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    AC_MSG_WARN([output file `$ofile' does not exist])
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+    else
+      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+    fi
+  fi
+  if test -z "$LTCFLAGS"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+    "") ;;
+    *)  AC_MSG_ERROR([invalid tag name: $tagname])
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      AC_MSG_ERROR([tag name \"$tagname\" already exists])
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+	    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+	    (test "X$CXX" != "Xg++"))) ; then
+	  AC_LIBTOOL_LANG_CXX_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+	  AC_LIBTOOL_LANG_F77_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+	  AC_LIBTOOL_LANG_GCJ_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+	AC_LIBTOOL_LANG_RC_CONFIG
+	;;
+
+      *)
+	AC_MSG_ERROR([Unsupported tag name: $tagname])
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    AC_MSG_ERROR([unable to update list of available tagged configurations.])
+  fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 DLLs
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+# set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognise shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="ifelse([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognise a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+    [AC_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognise dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
+  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | kfreebsd*-gnu | dragonfly*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix3*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then 
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments.  Note that
+# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
+# it is assumed to be `libltdl'.  LIBLTDL will be prefixed with
+# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/'
+# (note the single quotes!).  If your package is not flat and you're not
+# using automake, define top_builddir and top_srcdir appropriately in
+# the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  case $enable_ltdl_convenience in
+  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+  "") enable_ltdl_convenience=yes
+      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+  esac
+  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments.  Note that
+# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
+# and an installed libltdl is not found, it is assumed to be `libltdl'.
+# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with
+# '${top_srcdir}/' (note the single quotes!).  If your package is not
+# flat and you're not using automake, define top_builddir and top_srcdir
+# appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  AC_CHECK_LIB(ltdl, lt_dlinit,
+  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+  [if test x"$enable_ltdl_install" = xno; then
+     AC_MSG_WARN([libltdl not installed, but installation disabled])
+   else
+     enable_ltdl_install=yes
+   fi
+  ])
+  if test x"$enable_ltdl_install" = x"yes"; then
+    ac_configure_args="$ac_configure_args --enable-ltdl-install"
+    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  else
+    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+    LIBLTDL="-lltdl"
+    LTDLINCL=
+  fi
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+# _LT_AC_PROG_CXXCPP
+# ------------------
+AC_DEFUN([_LT_AC_PROG_CXXCPP],
+[
+AC_REQUIRE([AC_PROG_CXX])
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+fi
+])# _LT_AC_PROG_CXXCPP
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# -------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF
+
+# Report which library types will actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+    ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  $as_unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  $as_unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+  AC_PROG_LD
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  aix4* | aix5*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      aix_use_runtimelinking=no
+
+      # Test if we are trying to use run time linking or normal
+      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+      # need to do runtime linking.
+      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+	for ld_flag in $LDFLAGS; do
+	  case $ld_flag in
+	  *-brtl*)
+	    aix_use_runtimelinking=yes
+	    break
+	    ;;
+	  esac
+	done
+	;;
+      esac
+
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    _LT_AC_TAGVAR(archive_cmds, $1)=''
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[[012]]|aix4.[[012]].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	else
+	  # We have old collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	fi
+	;;
+      esac
+      shared_flag='-shared'
+      if test "$aix_use_runtimelinking" = yes; then
+	shared_flag="$shared_flag "'${wl}-G'
+      fi
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='${wl}-G'
+	else
+	  shared_flag='${wl}-bM:SRE'
+	fi
+      fi
+    fi
+
+    # It seems that -bexpall does not export symbols beginning with
+    # underscore (_), so it is better to generate a list of symbols to export.
+    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      _LT_AC_SYS_LIBPATH_AIX
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	_LT_AC_SYS_LIBPATH_AIX
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	# Exported symbols can be pulled into shared objects from archives
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	# This is similar to how AIX traditionally builds its shared libraries.
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+
+  beos*)
+    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+      # support --undefined.  This deserves some investigation.  FIXME
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+    ;;
+
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+    # as there is no search path for DLLs.
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+  ;;
+      darwin* | rhapsody*)
+        case $host_os in
+        rhapsody* | darwin1.[[012]])
+         _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[[012]])
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+        esac
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes ; then
+      lt_int_apple_cc_single_mod=no
+      output_verbose_link_cmd='echo'
+      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
+       lt_int_apple_cc_single_mod=yes
+      fi
+      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      else
+          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+        fi
+        _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+            _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          else
+            _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          fi
+            _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+          _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+          ;;
+      esac
+      fi
+        ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      ghcx*)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  freebsd[[12]]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  freebsd-elf*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  freebsd* | kfreebsd*-gnu | dragonfly*)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC*)
+      # FIXME: insert proper C++ library support
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    aCC*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+      case $host_cpu in
+      hppa*64*|ia64*)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+        ;;
+      *)
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        ;;
+      esac
+    fi
+    case $host_cpu in
+    hppa*64*|ia64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+    *)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      aCC*)
+	case $host_cpu in
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case $host_cpu in
+	    hppa*64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    ia64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  interix3*)
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+    # Instead, shared libraries are loaded at an image base (0x10000000 by
+    # default) and relocated if they conflict, which is a slow very memory
+    # consuming and fragmenting process.  To avoid this, we pick a random,
+    # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+    # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC*)
+	# SGI C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	  else
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+	;;
+    esac
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    ;;
+  linux*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc*)
+	# Intel C++
+	with_gnu_ld=yes
+	# version 8.0 and above of icpc choke on multiply defined symbols
+	# if we add $predep_objects and $postdep_objects, however 7.1 and
+	# earlier do not add the objects themselves.
+	case `$CC -V 2>&1` in
+	*"Version 7."*)
+  	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+  	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	*)  # Version 8.0 or newer
+	  tmp_idyn=
+	  case $host_cpu in
+	    ia64*) tmp_idyn=' -i_dynamic';;
+	  esac
+  	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	esac
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      pgCC*)
+        # Portland Group C++ compiler
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+  	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+        ;;
+      cxx*)
+	# Compaq C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	runpath_var=LD_RUN_PATH
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  openbsd2*)
+    # C++ shared libraries are fairly broken
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  openbsd*)
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+    if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    fi
+    output_verbose_link_cmd='echo'
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx*)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx*)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      lcc*)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.2, 5.x and Centerline C++
+        _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag}  ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	case $host_os in
+	  solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	  *)
+	    # The C++ compiler is used as linker so we must use $wl
+	    # flag to pass the commands to the underlying system
+	    # linker. We must also pass each convience library through
+	    # to the system linker between allextract/defaultextract.
+	    # The C++ compiler will combine linker options so we
+	    # cannot just pass the convience library names through
+	    # without $wl.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+	    ;;
+	esac
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+	output_verbose_link_cmd='echo'
+
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx*)
+	# Green Hills C++ Compiler
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	# The C++ compiler must be used to create the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	fi
+	;;
+    esac
+    ;;
+  sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  sysv5* | sco3.2v5* | sco5v6*)
+    # Note: We can NOT use -z defs as we might desire, because we do not
+    # link with -lc, and that would cause any symbols used from libc to
+    # always be unresolved, which means just about no library would
+    # ever link correctly.  If we're not using GNU ld we use -z text
+    # though, which does catch some bad symbols but isn't as heavy-handed
+    # as -z defs.
+    # For security reasons, it is highly recommended that you always
+    # use absolute paths for naming shared libraries, and exclude the
+    # DT_RUNPATH tag from executables and libraries.  But doing so
+    # requires that you compile everything twice, which is a pain.
+    # So that behaviour is only enabled if SCOABSPATH is set to a
+    # non-empty value in the environment.  Most likely only useful for
+    # creating official distributions of packages.
+    # This is a hack until libtool officially supports absolute path
+    # names for shared libraries.
+    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC*)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+esac
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$GXX"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_POSTDEP_PREDEP($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+])# AC_LIBTOOL_LANG_CXX_CONFIG
+
+# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+# ------------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+int a;
+void foo (void) { a = 0; }
+EOF
+],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+EOF
+],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$rm -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+ifelse([$1],[CXX],
+[case $host_os in
+interix3*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_AC_TAGVAR(predep_objects,$1)=
+  _LT_AC_TAGVAR(postdep_objects,$1)=
+  _LT_AC_TAGVAR(postdeps,$1)=
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC*)
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    _LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun'
+    ;;
+  esac
+  ;;
+esac
+])
+
+case " $_LT_AC_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+])# AC_LIBTOOL_POSTDEP_PREDEP
+
+# AC_LIBTOOL_LANG_F77_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+[AC_REQUIRE([AC_PROG_F77])
+AC_LANG_PUSH(Fortran 77)
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="      program t\n      end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+_LT_AC_TAGVAR(GCC, $1)="$G77"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_F77_CONFIG
+
+
+# AC_LIBTOOL_LANG_GCJ_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_GCJ_CONFIG
+
+
+# AC_LIBTOOL_LANG_RC_CONFIG
+# -------------------------
+# Ensure that the configuration vars for the Windows resource compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_RC_CONFIG
+
+
+# AC_LIBTOOL_CONFIG([TAGNAME])
+# ----------------------------
+# If TAGNAME is not passed, then create an initial libtool script
+# with a default configuration from the untagged config vars.  Otherwise
+# add code to config.status for appending the configuration named by
+# TAGNAME from the matching tagged config vars.
+AC_DEFUN([AC_LIBTOOL_CONFIG],
+[# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    _LT_AC_TAGVAR(compiler, $1) \
+    _LT_AC_TAGVAR(CC, $1) \
+    _LT_AC_TAGVAR(LD, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+    _LT_AC_TAGVAR(old_archive_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+    _LT_AC_TAGVAR(predep_objects, $1) \
+    _LT_AC_TAGVAR(postdep_objects, $1) \
+    _LT_AC_TAGVAR(predeps, $1) \
+    _LT_AC_TAGVAR(postdeps, $1) \
+    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+    _LT_AC_TAGVAR(archive_cmds, $1) \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(postinstall_cmds, $1) \
+    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+    _LT_AC_TAGVAR(no_undefined_flag, $1) \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+    _LT_AC_TAGVAR(hardcode_automatic, $1) \
+    _LT_AC_TAGVAR(module_cmds, $1) \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+    _LT_AC_TAGVAR(exclude_expsyms, $1) \
+    _LT_AC_TAGVAR(include_expsyms, $1); do
+
+    case $var in
+    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(module_cmds, $1) | \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\[$]0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+    ;;
+  esac
+
+ifelse([$1], [],
+  [cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  AC_MSG_NOTICE([creating $ofile])],
+  [cfgfile="$ofile"])
+
+  cat <<__EOF__ >> "$cfgfile"
+ifelse([$1], [],
+[#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG],
+[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+
+# Is the compiler the GNU C compiler?
+with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+
+# Symbols that must always be exported.
+include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+
+ifelse([$1],[],
+[# ### END LIBTOOL CONFIG],
+[# ### END LIBTOOL TAG CONFIG: $tagname])
+
+__EOF__
+
+ifelse([$1],[], [
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+])
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+])# AC_LIBTOOL_CONFIG
+
+
+# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+
+_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+linux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDGIRSTW]]'
+    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -f conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+
+# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+# ---------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+ ifelse([$1],[CXX],[
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix4* | aix5*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+       darwin*)
+         # PIC is the default on this platform
+         # Common symbols not allowed in MH_DYLIB files
+         case $cc_basename in
+           xlc*)
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           ;;
+         esac
+       ;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | kfreebsd*-gnu | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux*)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  icpc* | ecpc*)
+	    # Intel C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC*)
+	    # Portland Group C++ compiler.
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+         _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\"
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+])
+
+
+# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+# ------------------------------------
+# See if the linker supports building shared libraries.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ifelse([$1],[CXX],[
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix4* | aix5*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+],[
+  runpath_var=
+  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_AC_TAGVAR(archive_cmds, $1)=
+  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+  _LT_AC_TAGVAR(module_cmds, $1)=
+  _LT_AC_TAGVAR(module_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(always_export_symbols, $1)=no
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_AC_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  _LT_CC_BASENAME([$compiler])
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    interix3*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) 
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_AC_TAGVAR(archive_cmds, $1)=''
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  else
+  	  # We have old collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       _LT_AC_SYS_LIBPATH_AIX
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 _LT_AC_SYS_LIBPATH_AIX
+	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      # see comment about different semantics on the GNU ld section
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    bsdi[[45]]*)
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[[012]])
+         _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[[012]])
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	_LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    openbsd*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	   ;;
+	 *)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_AC_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+	pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+])# AC_LIBTOOL_PROG_LD_SHLIBS
+
+
+# _LT_AC_FILE_LTDLL_C
+# -------------------
+# Be careful that the start marker always follows a newline.
+AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# #  ifdef __CYGWIN32__
+# #    define __CYGWIN__ __CYGWIN32__
+# #  endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+#   __hDllInstance_base = hInst;
+#   return TRUE;
+# }
+# /* ltdll.c ends here */
+])# _LT_AC_FILE_LTDLL_C
+
+
+# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+# ---------------------------------
+AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+AC_DEFUN([LT_AC_PROG_GCJ],
+[AC_CHECK_TOOL(GCJ, gcj, no)
+  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+  AC_SUBST(GCJFLAGS)
+])
+
+AC_DEFUN([LT_AC_PROG_RC],
+[AC_CHECK_TOOL(RC, windres, no)
+])
+
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_MSG_RESULT([$SED])
+])
+
+# Copyright (C) 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION so it can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+	 [AM_AUTOMAKE_VERSION([1.9.6])])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 7
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking  speeds up one-time build
+  --enable-dependency-tracking   do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])
+])
+
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 3
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+    dirpart=`AS_DIRNAME("$mf")`
+  else
+    continue
+  fi
+  # Extract the definition of DEPDIR, am__include, and am__quote
+  # from the Makefile without running `make'.
+  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  am__include=`sed -n 's/^am__include = //p' < "$mf"`
+  test -z "am__include" && continue
+  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n 's/^U = //p' < "$mf"`
+  # Find all dependency output files, they are included files with
+  # $(DEPDIR) in their names.  We invoke sed twice because it is the
+  # simplest approach to changing $(DEPDIR) to its actual value in the
+  # expansion.
+  for file in `sed -n "
+    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`AS_DIRNAME(["$file"])`
+    AS_MKDIR_P([$dirpart/$fdir])
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
+AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 12
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.58])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+	      		     [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+                  [_AM_DEPENDENCIES(CC)],
+                  [define([AC_PROG_CC],
+                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+                  [_AM_DEPENDENCIES(CXX)],
+                  [define([AC_PROG_CXX],
+                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $1 | $1:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Check to see how 'make' treats includes.	            -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
+#
+# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
+# created by `make install' are always world readable, even if the
+# installer happens to have an overly restrictive umask (e.g. 077).
+# This was a mistake.  There are at least two reasons why we must not
+# use `-m 0755':
+#   - it causes special bits like SGID to be ignored,
+#   - it may be too restrictive (some setups expect 775 directories).
+#
+# Do not use -m 0755 and let people choose whatever they expect by
+# setting umask.
+#
+# We cannot accept any implementation of `mkdir' that recognizes `-p'.
+# Some implementations (such as Solaris 8's) are not thread-safe: if a
+# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
+# concurrently, both version can detect that a/ is missing, but only
+# one can create it and the other will error out.  Consequently we
+# restrict ourselves to GNU make (using the --version option ensures
+# this.)
+AC_DEFUN([AM_PROG_MKDIR_P],
+[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+  # We used to keeping the `.' as first argument, in order to
+  # allow $(mkdir_p) to be used without argument.  As in
+  #   $(mkdir_p) $(somedir)
+  # where $(somedir) is conditionally defined.  However this is wrong
+  # for two reasons:
+  #  1. if the package is installed by a user who cannot write `.'
+  #     make install will fail,
+  #  2. the above comment should most certainly read
+  #     $(mkdir_p) $(DESTDIR)$(somedir)
+  #     so it does not work when $(somedir) is undefined and
+  #     $(DESTDIR) is not.
+  #  To support the latter case, we have to write
+  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+  #  so the `.' trick is pointless.
+  mkdir_p='mkdir -p --'
+else
+  # On NextStep and OpenStep, the `mkdir' command does not
+  # recognize any option.  It will interpret all options as
+  # directories to create, and then abort because `.' already
+  # exists.
+  for d in ./-p ./--version;
+  do
+    test -d $d && rmdir $d
+  done
+  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+  if test -f "$ac_aux_dir/mkinstalldirs"; then
+    mkdir_p='$(mkinstalldirs)'
+  else
+    mkdir_p='$(install_sh) -d'
+  fi
+fi
+AC_SUBST([mkdir_p])])
+
+# Helper functions for option handling.                     -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
+
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Check how to create a tarball.                            -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+#     tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+#     $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+     [m4_case([$1], [ustar],, [pax],,
+              [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+  case $_am_tool in
+  gnutar)
+    for _am_tar in tar gnutar gtar;
+    do
+      AM_RUN_LOG([$_am_tar --version]) && break
+    done
+    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+    am__untar="$_am_tar -xf -"
+    ;;
+  plaintar)
+    # Must skip GNU tar: if it does not support --format= it doesn't create
+    # ustar tarball either.
+    (tar --version) >/dev/null 2>&1 && continue
+    am__tar='tar chf - "$$tardir"'
+    am__tar_='tar chf - "$tardir"'
+    am__untar='tar xf -'
+    ;;
+  pax)
+    am__tar='pax -L -x $1 -w "$$tardir"'
+    am__tar_='pax -L -x $1 -w "$tardir"'
+    am__untar='pax -r'
+    ;;
+  cpio)
+    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+    am__untar='cpio -i -H $1 -d'
+    ;;
+  none)
+    am__tar=false
+    am__tar_=false
+    am__untar=false
+    ;;
+  esac
+
+  # If the value was cached, stop now.  We just wanted to have am__tar
+  # and am__untar set.
+  test -n "${am_cv_prog_tar_$1}" && break
+
+  # tar/untar a dummy directory, and stop if the command works
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  echo GrepMe > conftest.dir/file
+  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+  rm -rf conftest.dir
+  if test -s conftest.tar; then
+    AM_RUN_LOG([$am__untar <conftest.tar])
+    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+  fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+

Added: packages/libxslt/branches/upstream/1.1.16/compile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/compile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/compile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,142 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand `-c -o'.
+
+scriptversion=2005-05-14.22
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey at cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake at gnu.org> or send patches to
+# <automake-patches at gnu.org>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand `-c -o'.
+Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file `INSTALL'.
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+esac
+
+ofile=
+cfile=
+eat=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+	# configure might choose to run compile as `compile cc -o foo foo.c'.
+	# So we strip `-o arg' only if arg is an object.
+	eat=1
+	case $2 in
+	  *.o | *.obj)
+	    ofile=$2
+	    ;;
+	  *)
+	    set x "$@" -o "$2"
+	    shift
+	    ;;
+	esac
+	;;
+      *.c)
+	cfile=$1
+	set x "$@" "$1"
+	shift
+	;;
+      *)
+	set x "$@" "$1"
+	shift
+	;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no `-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # `.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use `[/.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:


Property changes on: packages/libxslt/branches/upstream/1.1.16/compile
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/config.guess
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/config.guess	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/config.guess	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1411 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+timestamp='2003-06-17'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Per Bothner <per at bothner.com>.
+# Please send patches to <config-patches at gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches at gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
+       echo "$version" ; exit 0 ;;
+    --help | --h* | -h )
+       echo "$usage"; exit 0 ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi at noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+## for Red Hat Linux
+if test -f /etc/redhat-release ; then
+    VENDOR=redhat ;
+else
+    VENDOR= ;
+fi
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep __ELF__ >/dev/null
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+	        os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit 0 ;;
+    amiga:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    arc:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    hp300:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mac68k:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    macppc:OpenBSD:*:*)
+	echo powerpc-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mvme68k:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mvme88k:OpenBSD:*:*)
+	echo m88k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mvmeppc:OpenBSD:*:*)
+	echo powerpc-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    pmax:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    sgi:OpenBSD:*:*)
+	echo mipseb-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    sun3:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    wgrisc:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    *:OpenBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    alpha:OSF1:*:*)
+	if test $UNAME_RELEASE = "V4.0"; then
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+	fi
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit 0 ;;
+    Alpha*:OpenVMS:*:*)
+	echo alpha-hp-vms
+	exit 0 ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit 0 ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit 0 ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit 0;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit 0 ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit 0 ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit 0 ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit 0;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit 0;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit 0 ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit 0 ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit 0 ;;
+    DRS?6000:UNIX_SV:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7 && exit 0 ;;
+	esac ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    i86pc:SunOS:5.*:*)
+	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit 0 ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit 0 ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit 0 ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit 0 ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit 0 ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit 0 ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit 0 ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit 0 ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit 0 ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit 0 ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit 0 ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit 0 ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit 0 ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c \
+	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+	  && exit 0
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit 0 ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit 0 ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit 0 ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit 0 ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit 0 ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit 0 ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit 0 ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit 0 ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+ 	exit 0 ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit 0 ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit 0 ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit 0 ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit 0 ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit 0 ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
+	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit 0 ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit 0 ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+		echo rs6000-ibm-aix3.2.5
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit 0 ;;
+    *:AIX:*:[45])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit 0 ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit 0 ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit 0 ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit 0 ;;                           # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit 0 ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit 0 ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit 0 ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit 0 ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = "hppa2.0w" ]
+	then
+	    # avoid double evaluation of $set_cc_for_build
+	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit 0 ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit 0 ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+	echo unknown-hitachi-hiuxwe2
+	exit 0 ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit 0 ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit 0 ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit 0 ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit 0 ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit 0 ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit 0 ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit 0 ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit 0 ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit 0 ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit 0 ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit 0 ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit 0 ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit 0 ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit 0 ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit 0 ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit 0 ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit 0 ;;
+    *:UNICOS/mp:*:*)
+	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
+	exit 0 ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit 0 ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit 0 ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit 0 ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit 0 ;;
+    *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
+	# Determine whether the default compiler uses glibc.
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#if __GLIBC__ >= 2
+	LIBC=gnu
+	#else
+	LIBC=
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+	exit 0 ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit 0 ;;
+    i*:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit 0 ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit 0 ;;
+    x86:Interix*:[34]*)
+	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+	exit 0 ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit 0 ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit 0 ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit 0 ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit 0 ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit 0 ;;
+    *:GNU:*:*)
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit 0 ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit 0 ;;
+    arm*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit 0 ;;
+    cris:Linux:*:*)
+	echo cris-axis-linux-gnu
+	exit 0 ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu
+	exit 0 ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit 0 ;;
+    mips:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips
+	#undef mipsel
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mipsel
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+	;;
+    mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips64
+	#undef mips64el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mips64el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips64
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+	;;
+    ppc:Linux:*:*)
+	echo powerpc-${VENDOR:-unknown}-linux-gnu
+	exit 0 ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-${VENDOR:-unknown}-linux-gnu
+	exit 0 ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit 0 ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit 0 ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit 0 ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu
+	exit 0 ;;
+    sh64*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit 0 ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit 0 ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit 0 ;;
+    x86_64:Linux:*:*)
+	echo x86_64-${VENDOR:-unknown}-linux-gnu
+	exit 0 ;;
+    i*86:Linux:*:*)
+	# The BFD linker knows what the default object file format is, so
+	# first see if it will tell us. cd to the root directory to prevent
+	# problems with other programs or directories called `ld' in the path.
+	# Set LC_ALL=C to ensure ld outputs messages in English.
+	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+			 | sed -ne '/supported targets:/!d
+				    s/[ 	][ 	]*/ /g
+				    s/.*supported targets: *//
+				    s/ .*//
+				    p'`
+        case "$ld_supported_targets" in
+	  elf32-i386)
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+		;;
+	  a.out-i386-linux)
+		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+		exit 0 ;;
+	  coff-i386)
+		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+		exit 0 ;;
+	  "")
+		# Either a pre-BFD a.out linker (linux-gnuoldld) or
+		# one that does not give us useful --help.
+		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+		exit 0 ;;
+	esac
+	# Determine whether the default compiler is a.out or elf
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#ifdef __ELF__
+	# ifdef __GLIBC__
+	#  if __GLIBC__ >= 2
+	LIBC=gnu
+	#  else
+	LIBC=gnulibc1
+	#  endif
+	# else
+	LIBC=gnulibc1
+	# endif
+	#else
+	#ifdef __INTEL_COMPILER
+	LIBC=gnu
+	#else
+	LIBC=gnuaout
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${LIBC}" && exit 0
+	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+	;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit 0 ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit 0 ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit 0 ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit 0 ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit 0 ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit 0 ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit 0 ;;
+    i*86:*:5:[78]*)
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit 0 ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit 0 ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i386.
+	echo i386-pc-msdosdjgpp
+        exit 0 ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit 0 ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit 0 ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit 0 ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit 0 ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit 0 ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit 0 ;;
+    M68*:*:R3V[567]*:*)
+	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && echo i486-ncr-sysv4 && exit 0 ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit 0 ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit 0 ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit 0 ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit 0 ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit 0 ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit 0 ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel at ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit 0 ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes at openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit 0 ;;
+    *:*:*:FTX*)
+	# From seanf at swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit 0 ;;
+    *:VOS:*:*)
+	# From Paul.Green at stratus.com.
+	echo hppa1.1-stratus-vos
+	exit 0 ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit 0 ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit 0 ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit 0 ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit 0 ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit 0 ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit 0 ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit 0 ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit 0 ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit 0 ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit 0 ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit 0 ;;
+    *:Darwin:*:*)
+	case `uname -p` in
+	    *86) UNAME_PROCESSOR=i686 ;;
+	    powerpc) UNAME_PROCESSOR=powerpc ;;
+	esac
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit 0 ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit 0 ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit 0 ;;
+    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit 0 ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit 0 ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit 0 ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit 0 ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit 0 ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit 0 ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit 0 ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit 0 ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit 0 ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit 0 ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit 0 ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+	exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit 0 ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit 0 ;;
+    c34*)
+	echo c34-convex-bsd
+	exit 0 ;;
+    c38*)
+	echo c38-convex-bsd
+	exit 0 ;;
+    c4*)
+	echo c4-convex-bsd
+	exit 0 ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+    ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches at gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:


Property changes on: packages/libxslt/branches/upstream/1.1.16/config.guess
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/config.h.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/config.h.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/config.h.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,160 @@
+/* config.h.in.  Generated from configure.in by autoheader.  */
+#undef HAVE_ISINF
+#undef HAVE_ISNAN
+#undef HAVE_POW
+#undef HAVE_FLOOR
+#undef HAVE_FABS
+#undef WITH_DEBUGGER
+
+/* Define to 1 if you have the <ansidecl.h> header file. */
+#undef HAVE_ANSIDECL_H
+
+/* Define to 1 if you have the `asctime' function. */
+#undef HAVE_ASCTIME
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <float.h> header file. */
+#undef HAVE_FLOAT_H
+
+/* Define to 1 if you have the `fprintf' function. */
+#undef HAVE_FPRINTF
+
+/* Define to 1 if you have the <fp_class.h> header file. */
+#undef HAVE_FP_CLASS_H
+
+/* Define to 1 if you have the `ftime' function. */
+#undef HAVE_FTIME
+
+/* Define if gcrypt library is available. */
+#undef HAVE_GCRYPT
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define to 1 if you have the `gmtime_r' function. */
+#undef HAVE_GMTIME_R
+
+/* Define to 1 if you have the <ieeefp.h> header file. */
+#undef HAVE_IEEEFP_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `localtime' function. */
+#undef HAVE_LOCALTIME
+
+/* Define to 1 if you have the `localtime_r' function. */
+#undef HAVE_LOCALTIME_R
+
+/* Define to 1 if you have the <math.h> header file. */
+#undef HAVE_MATH_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `mktime' function. */
+#undef HAVE_MKTIME
+
+/* Define to 1 if you have the <nan.h> header file. */
+#undef HAVE_NAN_H
+
+/* Define to 1 if you have the `printf' function. */
+#undef HAVE_PRINTF
+
+/* Define to 1 if you have the `snprintf' function. */
+#undef HAVE_SNPRINTF
+
+/* Define to 1 if you have the `sprintf' function. */
+#undef HAVE_SPRINTF
+
+/* Define to 1 if you have the `sscanf' function. */
+#undef HAVE_SSCANF
+
+/* Define to 1 if you have the `stat' function. */
+#undef HAVE_STAT
+
+/* Define to 1 if you have the <stdarg.h> header file. */
+#undef HAVE_STDARG_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#undef HAVE_SYS_SELECT_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/timeb.h> header file. */
+#undef HAVE_SYS_TIMEB_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the `time' function. */
+#undef HAVE_TIME
+
+/* Define to 1 if you have the <time.h> header file. */
+#undef HAVE_TIME_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the `vfprintf' function. */
+#undef HAVE_VFPRINTF
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#undef HAVE_VSNPRINTF
+
+/* Define to 1 if you have the `vsprintf' function. */
+#undef HAVE_VSPRINTF
+
+/* Define to 1 if you have the `_stat' function. */
+#undef HAVE__STAT
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+/* Using the Win32 Socket implementation */
+#undef _WINSOCKAPI_
+
+/* Win32 Std C name mangling work-around */
+#undef snprintf
+
+/* Win32 Std C name mangling work-around */
+#undef vsnprintf

Added: packages/libxslt/branches/upstream/1.1.16/config.sub
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/config.sub	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/config.sub	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1500 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+timestamp='2003-06-18'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Please send patches to <config-patches at gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches at gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit 0 ;;
+    --version | -v )
+       echo "$version" ; exit 0 ;;
+    --help | --h* | -h )
+       echo "$usage"; exit 0 ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit 0;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis)
+		os=
+		basic_machine=$1
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+ 	-chorusrdb)
+ 		os=-chorusrdb
+		basic_machine=$1
+ 		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+	| c4x | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k \
+	| m32r | m68000 | m68k | m88k | mcore \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64vr | mips64vrel \
+	| mips64orion | mips64orionel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| msp430 \
+	| ns16k | ns32k \
+	| openrisc | or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| pyramid \
+	| s390 | s390x \
+	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
+	| strongarm \
+	| tahoe | thumb | tic4x | tic80 | tron \
+	| v850 | v850e \
+	| we32k \
+	| x86 | xscale | xstormy16 | xtensa \
+	| z8k)
+		basic_machine=$basic_machine-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12)
+		# Motorola 68HC11/12.
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* \
+	| bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+	| clipper-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* \
+	| m32r-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | mcore-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39-* | mipstx39el-* \
+	| msp430-* \
+	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| pyramid-* \
+	| romp-* | rs6000-* \
+	| s390-* | s390x-* \
+	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+	| tahoe-* | thumb-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tron-* \
+	| v850-* | v850e-* | vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
+	| xtensa-* \
+	| ymp-* \
+	| z8k-*)
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	mmix*)
+		basic_machine=mmix-knuth
+		os=-mmixware
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	nv1)
+		basic_machine=nv1-cray
+		os=-unicosmp
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	or32 | or32-*)
+		basic_machine=or32-unknown
+		os=-coff
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+		;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tic54x | c54x*)
+		basic_machine=tic54x-unknown
+		os=-coff
+		;;
+	tic55x | c55x*)
+		basic_machine=tic55x-unknown
+		os=-coff
+		;;
+	tic6x | c6x*)
+		basic_machine=tic6x-unknown
+		os=-coff
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* \
+	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-kaos*)
+		os=-kaos
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+	c4x-* | tic4x-*)
+		os=-coff
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-ibm)
+		os=-aix
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:


Property changes on: packages/libxslt/branches/upstream/1.1.16/config.sub
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/configure
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/configure	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/configure	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23704 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.59.
+#
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string=`eval $cmd`) 2>/dev/null &&
+       echo_test_string=`eval $cmd` &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "$0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+tagnames=${tagnames+${tagnames},}CXX
+
+tagnames=${tagnames+${tagnames},}F77
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete.  It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+
+ac_unique_file="libxslt/xslt.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+#  include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os LIBXSLT_MAJOR_VERSION LIBXSLT_MINOR_VERSION LIBXSLT_MICRO_VERSION LIBXSLT_VERSION LIBXSLT_VERSION_INFO LIBXSLT_VERSION_NUMBER LIBXSLT_VERSION_EXTRA LIBXSLT_MAJOR_MINOR_VERSION LIBEXSLT_MAJOR_VERSION LIBEXSLT_MINOR_VERSION LIBEXSLT_MICRO_VERSION LIBEXSLT_VERSION LIBEXSLT_VERSION_INFO LIBEXSLT_VERSION_NUMBER LIBEXSLT_VERSION_EXTRA INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar HTML_DIR CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP RM MV TAR EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL WITH_TRIO PERL WITH_PERL_TRUE WITH_PERL_FALSE PYTHON WITH_PYTHON_TRUE WITH_PYTHON_FALSE pythondir PYTHON_SUBDIR LIBGCRYPT_CONFIG WITH_CRYPTO LIBGCRYPT_CFLAGS LIBGCRYPT_LIBS STATIC_BINARIES WITH_XSLT_DEBUG WITH_MEM_DEBUG WITH_DEBUGGER LIBXML_SRC LIBXML_REQUIRED_VERSION WITH_MODULES WITH_MODULES_TRUE WITH_MODULES_FALSE LIBXSLT_DEFAULT_PLUGINS_PATH WIN32_EXTRA_LIBADD WIN32_EXTRA_LDFLAGS XSLTPROCDV PYTHONSODV XML_CONFIG LIBXML_LIBS LIBXML_CFLAGS PYTHON_VERSION PYTHON_INCLUDES PYTHON_SITE_PACKAGES XSLT_LIBDIR XSLT_INCLUDEDIR XSLT_LIBS EXSLT_LIBDIR EXSLT_INCLUDEDIR EXSLT_LIBS EXTRA_LIBS M_LIBS RELDATE LIBOBJS LTLIBOBJS'
+ac_subst_files=''
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_option in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    eval "enable_$ac_feature=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_$ac_feature='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_$ac_package='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/-/_/g'`
+    eval "with_$ac_package=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+    eval "$ac_envvar='$ac_optarg'"
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+	      localstatedir libdir includedir oldincludedir infodir mandir
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$0" : 'X\(//\)[^/]' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+   { (exit 1); exit 1; }; }
+  else
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+  fi
+fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+   { (exit 1); exit 1; }; }
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+ac_env_CXX_set=${CXX+set}
+ac_env_CXX_value=$CXX
+ac_cv_env_CXX_set=${CXX+set}
+ac_cv_env_CXX_value=$CXX
+ac_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_env_CXXFLAGS_value=$CXXFLAGS
+ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_cv_env_CXXFLAGS_value=$CXXFLAGS
+ac_env_CXXCPP_set=${CXXCPP+set}
+ac_env_CXXCPP_value=$CXXCPP
+ac_cv_env_CXXCPP_set=${CXXCPP+set}
+ac_cv_env_CXXCPP_value=$CXXCPP
+ac_env_F77_set=${F77+set}
+ac_env_F77_value=$F77
+ac_cv_env_F77_set=${F77+set}
+ac_cv_env_F77_value=$F77
+ac_env_FFLAGS_set=${FFLAGS+set}
+ac_env_FFLAGS_value=$FFLAGS
+ac_cv_env_FFLAGS_set=${FFLAGS+set}
+ac_cv_env_FFLAGS_value=$FFLAGS
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+  cat <<_ACEOF
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+			  [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+			  [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR           user executables [EPREFIX/bin]
+  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR       program executables [EPREFIX/libexec]
+  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+  --libdir=DIR           object code libraries [EPREFIX/lib]
+  --includedir=DIR       C header files [PREFIX/include]
+  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+  --infodir=DIR          info documentation [PREFIX/info]
+  --mandir=DIR           man documentation [PREFIX/man]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --disable-dependency-tracking  speeds up one-time build
+  --enable-dependency-tracking   do not reject slow dependency extractors
+  --enable-shared[=PKGS]
+                          build shared libraries [default=yes]
+  --enable-static[=PKGS]
+                          build static libraries [default=yes]
+  --enable-fast-install[=PKGS]
+                          optimize for fast installation [default=yes]
+  --disable-libtool-lock  avoid locking (might break parallel builds)
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-html-dir=PATH path to installed docs
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-pic              try to use only PIC/non-PIC objects [default=use
+                          both]
+  --with-tags[=TAGS]
+                          include additional configurations [automatic]
+  --with-python=DIR    Build Python bindings if found
+  --with-crypto           Add crypto support to exslt (on)
+  --with-debug            Add the debugging code (on)
+  --with-mem-debug        Add the memory debugging module (off)
+  --with-debugger        Add the debugging support (on)
+  --with-libxml-prefix=PFX		Specify location of libxml config
+  --with-libxml-include-prefix=PFX	Specify location of libxml headers
+  --with-libxml-libs-prefix=PFX	Specify location of libxml libs
+  --with-libxml-src=DIR              For libxml thats not installed yet (sets all three above)
+  --with-plugins          Add plugin extension support (on)
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+              headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  CXXCPP      C++ preprocessor
+  F77         Fortran 77 compiler command
+  FFLAGS      Fortran 77 compiler flags
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  ac_popdir=`pwd`
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d $ac_dir || continue
+    ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+    cd $ac_dir
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_srcdir/configure.gnu; then
+      echo
+      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_srcdir/configure; then
+      echo
+      $SHELL $ac_srcdir/configure  --help=recursive
+    elif test -f $ac_srcdir/configure.ac ||
+	   test -f $ac_srcdir/configure.in; then
+      echo
+      $ac_configure --help
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi
+    cd $ac_popdir
+  done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+  cat <<\_ACEOF
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.59.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_sep=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+      # Get rid of the leading space.
+      ac_sep=" "
+      ;;
+    esac
+  done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+{
+  (set) 2>&1 |
+    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      sed -n \
+	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+      ;;
+    *)
+      sed -n \
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+}
+    echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=$`echo $ac_var`
+      echo "$ac_var='"'"'$ac_val'"'"'"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=$`echo $ac_var`
+	echo "$ac_var='"'"'$ac_val'"'"'"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      sed "/^$/d" confdefs.h | sort
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core &&
+  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+     ' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . $cache_file;;
+      *)                      . ./$cache_file;;
+    esac
+  fi
+else
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+  eval ac_new_val="\$ac_env_${ac_var}_value"
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+	ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+          ac_config_headers="$ac_config_headers config.h"
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f $ac_dir/shtool; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+   { (exit 1); exit 1; }; }
+
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+  ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+   { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+  ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+
+LIBXSLT_MAJOR_VERSION=1
+LIBXSLT_MINOR_VERSION=1
+LIBXSLT_MICRO_VERSION=16
+PACKAGE=libxslt
+LIBEXSLT_MAJOR_VERSION=0
+LIBEXSLT_MINOR_VERSION=8
+LIBEXSLT_MICRO_VERSION=13
+LIBXML_REQUIRED_VERSION=2.6.17 # if you need module support.
+
+
+LIBXSLT_VERSION=$LIBXSLT_MAJOR_VERSION.$LIBXSLT_MINOR_VERSION.$LIBXSLT_MICRO_VERSION
+LIBXSLT_VERSION_INFO=`expr $LIBXSLT_MAJOR_VERSION + $LIBXSLT_MINOR_VERSION`:$LIBXSLT_MICRO_VERSION:$LIBXSLT_MINOR_VERSION
+
+LIBXSLT_VERSION_NUMBER=`expr $LIBXSLT_MAJOR_VERSION \* 10000 + $LIBXSLT_MINOR_VERSION \* 100 + $LIBXSLT_MICRO_VERSION`
+LIBXSLT_MAJOR_MINOR_VERSION=$LIBXSLT_MAJOR_VERSION.$LIBXSLT_MINOR_VERSION
+
+if test -f CVS/Entries; then
+  extra=`grep ChangeLog CVS/Entries | grep -v LIBXSLT | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
+  echo extra=$extra
+  if test "$extra" != ""
+  then
+      LIBXSLT_VERSION_EXTRA="-CVS$extra"
+  fi
+fi
+
+
+
+
+
+
+
+
+
+
+
+LIBEXSLT_VERSION=$LIBEXSLT_MAJOR_VERSION.$LIBEXSLT_MINOR_VERSION.$LIBEXSLT_MICRO_VERSION
+LIBEXSLT_VERSION_INFO=`expr $LIBEXSLT_MAJOR_VERSION + $LIBEXSLT_MINOR_VERSION`:$LIBEXSLT_MICRO_VERSION:$LIBEXSLT_MINOR_VERSION
+
+LIBEXSLT_VERSION_NUMBER=`expr $LIBEXSLT_MAJOR_VERSION \* 10000 + $LIBEXSLT_MINOR_VERSION \* 100 + $LIBEXSLT_MICRO_VERSION`
+
+if test -f CVS/Entries; then
+  LIBEXSLT_VERSION_EXTRA=-CVS`grep ChangeLog CVS/Entries | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
+fi
+
+
+
+
+
+
+
+
+
+VERSION=${LIBXSLT_VERSION}
+
+am__api_version="1.9"
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	    break 3
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+done
+
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL=$ac_install_sh
+  fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$*" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$*" != "X $srcdir/configure conftest.file" \
+      && test "$*" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" >&5
+echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" >&2;}
+   { (exit 1); exit 1; }; }
+   fi
+
+   test "$2" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
+Check your system clock" >&5
+echo "$as_me: error: newly created file is older than distributed files!
+Check your system clock" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+test "$program_prefix" != NONE &&
+  program_transform_name="s,^,$program_prefix,;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+# Double any \ or $.  echo might interpret backslashes.
+# By default was `s,x,x', remove it if useless.
+cat <<\_ACEOF >conftest.sed
+s/[\\$]/&&/g;s/;s,x,x,$//
+_ACEOF
+program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+rm conftest.sed
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+  # We used to keeping the `.' as first argument, in order to
+  # allow $(mkdir_p) to be used without argument.  As in
+  #   $(mkdir_p) $(somedir)
+  # where $(somedir) is conditionally defined.  However this is wrong
+  # for two reasons:
+  #  1. if the package is installed by a user who cannot write `.'
+  #     make install will fail,
+  #  2. the above comment should most certainly read
+  #     $(mkdir_p) $(DESTDIR)$(somedir)
+  #     so it does not work when $(somedir) is undefined and
+  #     $(DESTDIR) is not.
+  #  To support the latter case, we have to write
+  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+  #  so the `.' trick is pointless.
+  mkdir_p='mkdir -p --'
+else
+  # On NextStep and OpenStep, the `mkdir' command does not
+  # recognize any option.  It will interpret all options as
+  # directories to create, and then abort because `.' already
+  # exists.
+  for d in ./-p ./--version;
+  do
+    test -d $d && rmdir $d
+  done
+  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+  if test -f "$ac_aux_dir/mkinstalldirs"; then
+    mkdir_p='$(mkinstalldirs)'
+  else
+    mkdir_p='$(install_sh) -d'
+  fi
+fi
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AWK+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  echo "$as_me:$LINENO: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$AWK" && break
+done
+
+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.make <<\_ACEOF
+all:
+	@echo 'ac_maketemp="$(MAKE)"'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftest.make
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  SET_MAKE=
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE=$PACKAGE
+ VERSION=$VERSION
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  STRIP=$ac_ct_STRIP
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+
+# AM_MAINTAINER_MODE
+
+
+# Check whether --with-html-dir or --without-html-dir was given.
+if test "${with_html_dir+set}" = set; then
+  withval="$with_html_dir"
+
+fi;
+
+
+if test "x$with_html_dir" = "x" ; then
+  HTML_DIR='$(prefix)/doc'
+else
+  HTML_DIR=$with_html_dir
+fi
+
+
+
+DEPDIR="${am__leading_dot}deps"
+
+          ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+
+
+echo "$as_me:$LINENO: result: $_am_result" >&5
+echo "${ECHO_T}$_am_result" >&6
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then
+  enableval="$enable_dependency_tracking"
+
+fi;
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+
+
+if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_CC" && break
+done
+
+  CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+  (eval $ac_link_default) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Find the output, starting from the most likely.  This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+	;;
+    conftest.$ac_ext )
+	# This is the source file.
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	# FIXME: I believe we export ac_cv_exeext for Libtool,
+	# but it would be cool to find out if it's true.  Does anybody
+	# maintain Libtool? --akim.
+	export ac_cv_exeext
+	break;;
+    * )
+	break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+  fi
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  export ac_cv_exeext
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std1 is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std1.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX 10.20 and later	-Ae
+# HP-UX older versions	-Aa -D_HPUX_SOURCE
+# SVR4			-Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+# Some people use a C++ compiler to compile C.  Since we use `exit',
+# in C++ we need to declare it.  In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+  choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  for ac_declaration in \
+   '' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC"   am_compiler_list=
+
+echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+
+
+if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+
+echo "$as_me:$LINENO: checking for library containing strerror" >&5
+echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6
+if test "${ac_cv_search_strerror+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+ac_cv_search_strerror=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char strerror ();
+int
+main ()
+{
+strerror ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_strerror="none required"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_strerror" = no; then
+  for ac_lib in cposix; do
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char strerror ();
+int
+main ()
+{
+strerror ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_strerror="-l$ac_lib"
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
+echo "${ECHO_T}$ac_cv_search_strerror" >&6
+if test "$ac_cv_search_strerror" != no; then
+  test "$ac_cv_search_strerror" = "none required" || LIBS="$ac_cv_search_strerror $LIBS"
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_CC" && break
+done
+
+  CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std1 is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std1.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX 10.20 and later	-Ae
+# HP-UX older versions	-Aa -D_HPUX_SOURCE
+# SVR4			-Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+# Some people use a C++ compiler to compile C.  Since we use `exit',
+# in C++ we need to declare it.  In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+  choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  for ac_declaration in \
+   '' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC"   am_compiler_list=
+
+echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+
+
+if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	    break 3
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+done
+
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL=$ac_install_sh
+  fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+# Extract the first word of "rm", so it can be a program name with args.
+set dummy rm; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_RM+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $RM in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_RM="$RM" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_path_RM" && ac_cv_path_RM="/bin/rm"
+  ;;
+esac
+fi
+RM=$ac_cv_path_RM
+
+if test -n "$RM"; then
+  echo "$as_me:$LINENO: result: $RM" >&5
+echo "${ECHO_T}$RM" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+# Extract the first word of "mv", so it can be a program name with args.
+set dummy mv; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_MV+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MV in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MV="$MV" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_path_MV" && ac_cv_path_MV="/bin/mv"
+  ;;
+esac
+fi
+MV=$ac_cv_path_MV
+
+if test -n "$MV"; then
+  echo "$as_me:$LINENO: result: $MV" >&5
+echo "${ECHO_T}$MV" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+# Extract the first word of "tar", so it can be a program name with args.
+set dummy tar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_TAR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $TAR in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_TAR="$TAR" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_path_TAR" && ac_cv_path_TAR="/bin/tar"
+  ;;
+esac
+fi
+TAR=$ac_cv_path_TAR
+
+if test -n "$TAR"; then
+  echo "$as_me:$LINENO: result: $TAR" >&5
+echo "${ECHO_T}$TAR" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_stdc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval="$enable_shared"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_shared=yes
+fi;
+
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+  enableval="$enable_static"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_static=yes
+fi;
+
+# Check whether --enable-fast-install or --disable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+  enableval="$enable_fast_install"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_fast_install=yes
+fi;
+
+echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
+if test "${lt_cv_path_SED+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+
+fi
+
+SED=$lt_cv_path_SED
+echo "$as_me:$LINENO: result: $SED" >&5
+echo "${ECHO_T}$SED" >&6
+
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
+if test "${lt_cv_ld_reload_flag+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_ld_reload_flag='-r'
+fi
+echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+
+echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
+echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
+if test "${lt_cv_path_NM+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi
+fi
+echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+echo "${ECHO_T}$lt_cv_path_NM" >&6
+NM="$lt_cv_path_NM"
+
+echo "$as_me:$LINENO: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+  echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6
+fi
+
+echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
+echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6
+if test "${lt_cv_deplibs_check_method+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[45]*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
+  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | kfreebsd*-gnu | dragonfly*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix3*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+  enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '#line 5310 "configure"' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.o` in
+    *32-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*|powerpc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
+if test "${lt_cv_cc_needs_belf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  lt_cv_cc_needs_belf=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+lt_cv_cc_needs_belf=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+     ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)    LD="${LD-ld} -64" ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+for ac_header in dlfcn.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  echo "$as_me:$LINENO: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_CXX" && break
+done
+test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
+
+  CXX=$ac_ct_CXX
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C++ compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cxx_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cxx_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+for ac_declaration in \
+   '' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+depcc="$CXX"  am_compiler_list=
+
+echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CXX_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CXX_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+
+
+if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+  am__fastdepCXX_TRUE=
+  am__fastdepCXX_FALSE='#'
+else
+  am__fastdepCXX_TRUE='#'
+  am__fastdepCXX_FALSE=
+fi
+
+
+
+
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
+if test -z "$CXXCPP"; then
+  if test "${ac_cv_prog_CXXCPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CXXCPP needs to be expanded
+    for CXXCPP in "$CXX -E" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+  CXXCPP=$ac_cv_prog_CXXCPP
+else
+  ac_cv_prog_CXXCPP=$CXXCPP
+fi
+echo "$as_me:$LINENO: result: $CXXCPP" >&5
+echo "${ECHO_T}$CXXCPP" >&6
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+fi
+
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$F77"; then
+  ac_cv_prog_F77="$F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+F77=$ac_cv_prog_F77
+if test -n "$F77"; then
+  echo "$as_me:$LINENO: result: $F77" >&5
+echo "${ECHO_T}$F77" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$F77" && break
+  done
+fi
+if test -z "$F77"; then
+  ac_ct_F77=$F77
+  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_F77"; then
+  ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_F77="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_F77=$ac_cv_prog_ac_ct_F77
+if test -n "$ac_ct_F77"; then
+  echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
+echo "${ECHO_T}$ac_ct_F77" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_F77" && break
+done
+
+  F77=$ac_ct_F77
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:6508:" \
+     "checking for Fortran 77 compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+rm -f a.out
+
+# If we don't use `.F' as extension, the preprocessor is not run on the
+# input file.  (Note that this only needs to work for GNU compilers.)
+ac_save_ext=$ac_ext
+ac_ext=F
+echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6
+if test "${ac_cv_f77_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+      program main
+#ifndef __GNUC__
+       choke me
+#endif
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_f77_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6
+ac_ext=$ac_save_ext
+ac_test_FFLAGS=${FFLAGS+set}
+ac_save_FFLAGS=$FFLAGS
+FFLAGS=
+echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
+echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_f77_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  FFLAGS=-g
+cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_f77_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_f77_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
+echo "${ECHO_T}$ac_cv_prog_f77_g" >&6
+if test "$ac_test_FFLAGS" = set; then
+  FFLAGS=$ac_save_FFLAGS
+elif test $ac_cv_prog_f77_g = yes; then
+  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+    FFLAGS="-g -O2"
+  else
+    FFLAGS="-g"
+  fi
+else
+  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+    FFLAGS="-O2"
+  else
+    FFLAGS=
+  fi
+fi
+
+G77=`test $ac_compiler_gnu = yes && echo yes`
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+
+# find the maximum length of command line arguments
+echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+    i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ 	]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    # If test is not a shell built-in, we'll probably end up computing a
+    # maximum length that is only half of the actual maximum length, but
+    # we can't tell.
+    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+    while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
+	       = "XX$teststring") >/dev/null 2>&1 &&
+	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
+	    lt_cv_sys_max_cmd_len=$new_result &&
+	    test $i != 17 # 1/2 MB should be enough
+    do
+      i=`expr $i + 1`
+      teststring=$teststring$teststring
+    done
+    teststring=
+    # Add a significant safety factor because C++ compilers can tack on massive
+    # amounts of additional arguments before passing them to the linker.
+    # It appears as though 1/2 is a usable value.
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    ;;
+  esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+  echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
+else
+  echo "$as_me:$LINENO: result: none" >&5
+echo "${ECHO_T}none" >&6
+fi
+
+
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[BCDT]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[ABCDGISTW]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDEGRST]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+linux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDGIRSTW]'
+    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[BCDEGRST]'
+  ;;
+osf*)
+  symcode='[BCDEGQRST]'
+  ;;
+solaris*)
+  symcode='[BDRT]'
+  ;;
+sco3.2v5*)
+  symcode='[DT]'
+  ;;
+sysv4.2uw2*)
+  symcode='[DT]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[ABDT]'
+  ;;
+sysv4)
+  symcode='[DFNSTU]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode$symcode*\)[ 	][ 	]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&5
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&5
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+    fi
+  else
+    echo "$progname: failed program was:" >&5
+    cat conftest.$ac_ext >&5
+  fi
+  rm -f conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  echo "$as_me:$LINENO: result: failed" >&5
+echo "${ECHO_T}failed" >&6
+else
+  echo "$as_me:$LINENO: result: ok" >&5
+echo "${ECHO_T}ok" >&6
+fi
+
+echo "$as_me:$LINENO: checking for objdir" >&5
+echo $ECHO_N "checking for objdir... $ECHO_C" >&6
+if test "${lt_cv_objdir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+echo "${ECHO_T}$lt_cv_objdir" >&6
+objdir=$lt_cv_objdir
+
+
+
+
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  echo "$as_me:$LINENO: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="ar"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false"
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+echo "${ECHO_T}$ac_ct_AR" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  AR=$ac_ct_AR
+else
+  AR="$ac_cv_prog_AR"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  RANLIB=$ac_ct_RANLIB
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  STRIP=$ac_ct_STRIP
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/${ac_tool_prefix}file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    echo "$as_me:$LINENO: checking for file" >&5
+echo $ECHO_N "checking for file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  else
+    MAGIC_CMD=:
+  fi
+fi
+
+  fi
+  ;;
+esac
+
+enable_dlopen=no
+enable_win32_dll=no
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+  enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+
+# Check whether --with-pic or --without-pic was given.
+if test "${with_pic+set}" = set; then
+  withval="$with_pic"
+  pic_mode="$withval"
+else
+  pic_mode=default
+fi;
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:7571: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:7575: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl='-Wl,'
+    lt_prog_compiler_static='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      ;;
+
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      else
+	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic='-qnocommon'
+         lt_prog_compiler_wl='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-KPIC'
+	lt_prog_compiler_static='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fpic'
+	lt_prog_compiler_static='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl='-Qoption ld '
+      lt_prog_compiler_pic='-PIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic='-Kconform_pic'
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_can_build_shared=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic='-pic'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:7839: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:7843: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6
+
+if test x"$lt_prog_compiler_pic_works" = xyes; then
+    case $lt_prog_compiler_pic in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+     esac
+else
+    lt_prog_compiler_pic=
+     lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic=
+    ;;
+  *)
+    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
+if test "${lt_prog_compiler_static_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works=yes
+       fi
+     else
+       lt_prog_compiler_static_works=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works" >&6
+
+if test x"$lt_prog_compiler_static_works" = xyes; then
+    :
+else
+    lt_prog_compiler_static=
+fi
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:7943: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:7947: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  runpath_var=
+  allow_undefined_flag=
+  enable_shared_with_static_runtimes=no
+  archive_cmds=
+  archive_expsym_cmds=
+  old_archive_From_new_cmds=
+  old_archive_from_expsyms_cmds=
+  export_dynamic_flag_spec=
+  whole_archive_flag_spec=
+  thread_safe_flag_spec=
+  hardcode_libdir_flag_spec=
+  hardcode_libdir_flag_spec_ld=
+  hardcode_libdir_separator=
+  hardcode_direct=no
+  hardcode_minus_L=no
+  hardcode_shlibpath_var=unsupported
+  link_all_deplibs=unknown
+  hardcode_automatic=no
+  module_cmds=
+  module_expsym_cmds=
+  always_export_symbols=no
+  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      allow_undefined_flag=unsupported
+      always_export_symbols=no
+      enable_shared_with_static_runtimes=yes
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    interix3*)
+      hardcode_direct=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec=
+      export_dynamic_flag_spec=
+      whole_archive_flag_spec=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag=unsupported
+      always_export_symbols=yes
+      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds=''
+      hardcode_direct=yes
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L=yes
+  	  hardcode_libdir_flag_spec='-L$libdir'
+  	  hardcode_libdir_separator=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+       hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag="-z nodefs"
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag=' ${wl}-bernotok'
+	  allow_undefined_flag=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec='$convenience'
+	  archive_cmds_need_lc=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs=no
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      allow_undefined_flag=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc=no
+      hardcode_direct=no
+      hardcode_automatic=yes
+      hardcode_shlibpath_var=unsupported
+      whole_archive_flag_spec=''
+      link_all_deplibs=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+      archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      export_dynamic_flag_spec='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator=:
+
+	hardcode_direct=yes
+	export_dynamic_flag_spec='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_libdir_flag_spec_ld='+b $libdir'
+	  hardcode_direct=no
+	  hardcode_shlibpath_var=no
+	  ;;
+	*)
+	  hardcode_direct=yes
+	  export_dynamic_flag_spec='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      link_all_deplibs=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    newsos6)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_shlibpath_var=no
+      ;;
+
+    openbsd*)
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      hardcode_libdir_separator=:
+      ;;
+
+    solaris*)
+      no_undefined_flag=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_shlibpath_var=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      link_all_deplibs=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds='$CC -r -o $output$reload_objs'
+	  hardcode_direct=no
+        ;;
+	motorola)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var=no
+      export_dynamic_flag_spec='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+      no_undefined_flag='${wl}-z,text'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag='${wl}-z,text'
+      allow_undefined_flag='${wl}-z,nodefs'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      export_dynamic_flag_spec='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      ld_shlibs=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+echo "${ECHO_T}$ld_shlibs" >&6
+test "$ld_shlibs" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl
+	pic_flag=$lt_prog_compiler_pic
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag
+        allow_undefined_flag=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc=no
+        else
+	  archive_cmds_need_lc=yes
+        fi
+        allow_undefined_flag=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+echo "${ECHO_T}$archive_cmds_need_lc" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  freebsd*) # from 4.6 on
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix3*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 9412 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+   test -n "$runpath_var" || \
+   test "X$hardcode_automatic" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
+     test "$hardcode_minus_L" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action" >&5
+echo "${ECHO_T}$hardcode_action" >&6
+
+if test "$hardcode_action" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+       ;;
+   *)
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    ;;
+  esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+   ;;
+
+  *)
+    echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shl_load (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+  lt_cv_dlopen="shl_load"
+else
+  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+  echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlopen (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+  lt_cv_dlopen="dlopen"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_svld_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_dld_link=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 10309 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 10409 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+# Report which library types will actually be built
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+    ;;
+esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler \
+    CC \
+    LD \
+    lt_prog_compiler_wl \
+    lt_prog_compiler_pic \
+    lt_prog_compiler_static \
+    lt_prog_compiler_no_builtin_flag \
+    export_dynamic_flag_spec \
+    thread_safe_flag_spec \
+    whole_archive_flag_spec \
+    enable_shared_with_static_runtimes \
+    old_archive_cmds \
+    old_archive_from_new_cmds \
+    predep_objects \
+    postdep_objects \
+    predeps \
+    postdeps \
+    compiler_lib_search_path \
+    archive_cmds \
+    archive_expsym_cmds \
+    postinstall_cmds \
+    postuninstall_cmds \
+    old_archive_from_expsyms_cmds \
+    allow_undefined_flag \
+    no_undefined_flag \
+    export_symbols_cmds \
+    hardcode_libdir_flag_spec \
+    hardcode_libdir_flag_spec_ld \
+    hardcode_libdir_separator \
+    hardcode_automatic \
+    module_cmds \
+    module_expsym_cmds \
+    lt_cv_prog_compiler_c_o \
+    exclude_expsyms \
+    include_expsyms; do
+
+    case $var in
+    old_archive_cmds | \
+    old_archive_from_new_cmds | \
+    archive_cmds | \
+    archive_expsym_cmds | \
+    module_cmds | \
+    module_expsym_cmds | \
+    old_archive_from_expsyms_cmds | \
+    export_symbols_cmds | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  { echo "$as_me:$LINENO: creating $ofile" >&5
+echo "$as_me: creating $ofile" >&6;}
+
+  cat <<__EOF__ >> "$cfgfile"
+#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+# Check whether --with-tags or --without-tags was given.
+if test "${with_tags+set}" = set; then
+  withval="$with_tags"
+  tagnames="$withval"
+fi;
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
+    else
+      { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
+echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
+    fi
+  fi
+  if test -z "$LTCFLAGS"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
+    "") ;;
+    *)  { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
+echo "$as_me: error: invalid tag name: $tagname" >&2;}
+   { (exit 1); exit 1; }; }
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
+echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+	    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+	    (test "X$CXX" != "Xg++"))) ; then
+	  ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_shlibpath_var_CXX=unsupported
+hardcode_automatic_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  $as_unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  $as_unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+compiler_CXX=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+else
+  lt_prog_compiler_no_builtin_flag_CXX=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      whole_archive_flag_spec_CXX=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+ld_shlibs_CXX=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  aix4* | aix5*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      aix_use_runtimelinking=no
+
+      # Test if we are trying to use run time linking or normal
+      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+      # need to do runtime linking.
+      case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	for ld_flag in $LDFLAGS; do
+	  case $ld_flag in
+	  *-brtl*)
+	    aix_use_runtimelinking=yes
+	    break
+	    ;;
+	  esac
+	done
+	;;
+      esac
+
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    archive_cmds_CXX=''
+    hardcode_direct_CXX=yes
+    hardcode_libdir_separator_CXX=':'
+    link_all_deplibs_CXX=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[012]|aix4.[012].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  hardcode_direct_CXX=yes
+	else
+	  # We have old collect2
+	  hardcode_direct_CXX=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  hardcode_minus_L_CXX=yes
+	  hardcode_libdir_flag_spec_CXX='-L$libdir'
+	  hardcode_libdir_separator_CXX=
+	fi
+	;;
+      esac
+      shared_flag='-shared'
+      if test "$aix_use_runtimelinking" = yes; then
+	shared_flag="$shared_flag "'${wl}-G'
+      fi
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='${wl}-G'
+	else
+	  shared_flag='${wl}-bM:SRE'
+	fi
+      fi
+    fi
+
+    # It seems that -bexpall does not export symbols beginning with
+    # underscore (_), so it is better to generate a list of symbols to export.
+    always_export_symbols_CXX=yes
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      allow_undefined_flag_CXX='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+      hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+	allow_undefined_flag_CXX="-z nodefs"
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	no_undefined_flag_CXX=' ${wl}-bernotok'
+	allow_undefined_flag_CXX=' ${wl}-berok'
+	# Exported symbols can be pulled into shared objects from archives
+	whole_archive_flag_spec_CXX='$convenience'
+	archive_cmds_need_lc_CXX=yes
+	# This is similar to how AIX traditionally builds its shared libraries.
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+
+  beos*)
+    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+      allow_undefined_flag_CXX=unsupported
+      # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+      # support --undefined.  This deserves some investigation.  FIXME
+      archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    else
+      ld_shlibs_CXX=no
+    fi
+    ;;
+
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+    # as there is no search path for DLLs.
+    hardcode_libdir_flag_spec_CXX='-L$libdir'
+    allow_undefined_flag_CXX=unsupported
+    always_export_symbols_CXX=no
+    enable_shared_with_static_runtimes_CXX=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+    else
+      ld_shlibs_CXX=no
+    fi
+  ;;
+      darwin* | rhapsody*)
+        case $host_os in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+        esac
+      archive_cmds_need_lc_CXX=no
+      hardcode_direct_CXX=no
+      hardcode_automatic_CXX=yes
+      hardcode_shlibpath_var_CXX=unsupported
+      whole_archive_flag_spec_CXX=''
+      link_all_deplibs_CXX=yes
+
+    if test "$GXX" = yes ; then
+      lt_int_apple_cc_single_mod=no
+      output_verbose_link_cmd='echo'
+      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
+       lt_int_apple_cc_single_mod=yes
+      fi
+      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+       archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      else
+          archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+        fi
+        module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          else
+            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          fi
+            module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+          archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+          module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+          archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_CXX=no
+          ;;
+      esac
+      fi
+        ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      ghcx*)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  freebsd[12]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    ld_shlibs_CXX=no
+    ;;
+  freebsd-elf*)
+    archive_cmds_need_lc_CXX=no
+    ;;
+  freebsd* | kfreebsd*-gnu | dragonfly*)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    ld_shlibs_CXX=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+    hardcode_libdir_separator_CXX=:
+    export_dynamic_flag_spec_CXX='${wl}-E'
+    hardcode_direct_CXX=yes
+    hardcode_minus_L_CXX=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC*)
+      # FIXME: insert proper C++ library support
+      ld_shlibs_CXX=no
+      ;;
+    aCC*)
+      archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        ld_shlibs_CXX=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_CXX=:
+
+      case $host_cpu in
+      hppa*64*|ia64*)
+	hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
+        ;;
+      *)
+	export_dynamic_flag_spec_CXX='${wl}-E'
+        ;;
+      esac
+    fi
+    case $host_cpu in
+    hppa*64*|ia64*)
+      hardcode_direct_CXX=no
+      hardcode_shlibpath_var_CXX=no
+      ;;
+    *)
+      hardcode_direct_CXX=yes
+      hardcode_minus_L_CXX=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      aCC*)
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case $host_cpu in
+	    hppa*64*)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    ia64*)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    *)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  interix3*)
+    hardcode_direct_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+    export_dynamic_flag_spec_CXX='${wl}-E'
+    # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+    # Instead, shared libraries are loaded at an image base (0x10000000 by
+    # default) and relocated if they conflict, which is a slow very memory
+    # consuming and fragmenting process.  To avoid this, we pick a random,
+    # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+    # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+    archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC*)
+	# SGI C++
+	archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	  else
+	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	link_all_deplibs_CXX=yes
+	;;
+    esac
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+    hardcode_libdir_separator_CXX=:
+    ;;
+  linux*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc*)
+	# Intel C++
+	with_gnu_ld=yes
+	# version 8.0 and above of icpc choke on multiply defined symbols
+	# if we add $predep_objects and $postdep_objects, however 7.1 and
+	# earlier do not add the objects themselves.
+	case `$CC -V 2>&1` in
+	*"Version 7."*)
+  	  archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+  	  archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	*)  # Version 8.0 or newer
+	  tmp_idyn=
+	  case $host_cpu in
+	    ia64*) tmp_idyn=' -i_dynamic';;
+	  esac
+  	  archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	  archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	esac
+	archive_cmds_need_lc_CXX=no
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+	whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      pgCC*)
+        # Portland Group C++ compiler
+	archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+  	archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+	whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+        ;;
+      cxx*)
+	# Compaq C++
+	archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	runpath_var=LD_RUN_PATH
+	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      hardcode_libdir_flag_spec_CXX='-R$libdir'
+      hardcode_direct_CXX=yes
+      hardcode_shlibpath_var_CXX=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  openbsd2*)
+    # C++ shared libraries are fairly broken
+    ld_shlibs_CXX=no
+    ;;
+  openbsd*)
+    hardcode_direct_CXX=yes
+    hardcode_shlibpath_var_CXX=no
+    archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+    if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+      export_dynamic_flag_spec_CXX='${wl}-E'
+      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    fi
+    output_verbose_link_cmd='echo'
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      cxx*)
+	allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	  archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	  hardcode_libdir_separator_CXX=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      cxx*)
+	allow_undefined_flag_CXX=' -expect_unresolved \*'
+	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	  hardcode_libdir_separator_CXX=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      lcc*)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.2, 5.x and Centerline C++
+        archive_cmds_need_lc_CXX=yes
+	no_undefined_flag_CXX=' -zdefs'
+	archive_cmds_CXX='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag}  ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	hardcode_libdir_flag_spec_CXX='-R$libdir'
+	hardcode_shlibpath_var_CXX=no
+	case $host_os in
+	  solaris2.[0-5] | solaris2.[0-5].*) ;;
+	  *)
+	    # The C++ compiler is used as linker so we must use $wl
+	    # flag to pass the commands to the underlying system
+	    # linker. We must also pass each convience library through
+	    # to the system linker between allextract/defaultextract.
+	    # The C++ compiler will combine linker options so we
+	    # cannot just pass the convience library names through
+	    # without $wl.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+	    ;;
+	esac
+	link_all_deplibs_CXX=yes
+
+	output_verbose_link_cmd='echo'
+
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx*)
+	# Green Hills C++ Compiler
+	archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	# The C++ compiler must be used to create the archive.
+	old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+	fi
+	;;
+    esac
+    ;;
+  sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+    no_undefined_flag_CXX='${wl}-z,text'
+    archive_cmds_need_lc_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  sysv5* | sco3.2v5* | sco5v6*)
+    # Note: We can NOT use -z defs as we might desire, because we do not
+    # link with -lc, and that would cause any symbols used from libc to
+    # always be unresolved, which means just about no library would
+    # ever link correctly.  If we're not using GNU ld we use -z text
+    # though, which does catch some bad symbols but isn't as heavy-handed
+    # as -z defs.
+    # For security reasons, it is highly recommended that you always
+    # use absolute paths for naming shared libraries, and exclude the
+    # DT_RUNPATH tag from executables and libraries.  But doing so
+    # requires that you compile everything twice, which is a pain.
+    # So that behaviour is only enabled if SCOABSPATH is set to a
+    # non-empty value in the environment.  Most likely only useful for
+    # creating official distributions of packages.
+    # This is a hack until libtool officially supports absolute path
+    # names for shared libraries.
+    no_undefined_flag_CXX='${wl}-z,text'
+    allow_undefined_flag_CXX='${wl}-z,nodefs'
+    archive_cmds_need_lc_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+    hardcode_libdir_separator_CXX=':'
+    link_all_deplibs_CXX=yes
+    export_dynamic_flag_spec_CXX='${wl}-Bexport'
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC*)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+esac
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+GCC_CXX="$GXX"
+LD_CXX="$LD"
+
+
+cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$compiler_lib_search_path_CXX"; then
+	     compiler_lib_search_path_CXX="${prev}${p}"
+	   else
+	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$postdeps_CXX"; then
+	   postdeps_CXX="${prev}${p}"
+	 else
+	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$predep_objects_CXX"; then
+	   predep_objects_CXX="$p"
+	 else
+	   predep_objects_CXX="$predep_objects_CXX $p"
+	 fi
+       else
+	 if test -z "$postdep_objects_CXX"; then
+	   postdep_objects_CXX="$p"
+	 else
+	   postdep_objects_CXX="$postdep_objects_CXX $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$rm -f confest.$objext
+
+# PORTME: override above test on systems where it is broken
+case $host_os in
+interix3*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  predep_objects_CXX=
+  postdep_objects_CXX=
+  postdeps_CXX=
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC*)
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    postdeps_CXX='-lCstd -lCrun'
+    ;;
+  esac
+  ;;
+esac
+
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+
+lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    lt_prog_compiler_wl_CXX='-Wl,'
+    lt_prog_compiler_static_CXX='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_CXX='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_CXX='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      lt_prog_compiler_pic_CXX=
+      ;;
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_CXX=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	;;
+      *)
+	lt_prog_compiler_pic_CXX='-fPIC'
+	;;
+      esac
+      ;;
+    *)
+      lt_prog_compiler_pic_CXX='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix4* | aix5*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  lt_prog_compiler_static_CXX='-Bstatic'
+	else
+	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+       darwin*)
+         # PIC is the default on this platform
+         # Common symbols not allowed in MH_DYLIB files
+         case $cc_basename in
+           xlc*)
+           lt_prog_compiler_pic_CXX='-qnocommon'
+           lt_prog_compiler_wl_CXX='-Wl,'
+           ;;
+         esac
+       ;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | kfreebsd*-gnu | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      lt_prog_compiler_pic_CXX='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      lt_prog_compiler_pic_CXX='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux*)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    lt_prog_compiler_pic_CXX='-fPIC'
+	    ;;
+	  icpc* | ecpc*)
+	    # Intel C++
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-static'
+	    ;;
+	  pgCC*)
+	    # Portland Group C++ compiler.
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-fpic'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    lt_prog_compiler_pic_CXX='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    lt_prog_compiler_wl_CXX='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    lt_prog_compiler_pic_CXX='-pic'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	lt_prog_compiler_can_build_shared_CXX=no
+	;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_CXX=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:12749: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:12753: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works_CXX=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6
+
+if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
+    case $lt_prog_compiler_pic_CXX in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+     esac
+else
+    lt_prog_compiler_pic_CXX=
+     lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_CXX=
+    ;;
+  *)
+    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
+if test "${lt_prog_compiler_static_works_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works_CXX=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works_CXX=yes
+       fi
+     else
+       lt_prog_compiler_static_works_CXX=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6
+
+if test x"$lt_prog_compiler_static_works_CXX" = xyes; then
+    :
+else
+    lt_prog_compiler_static_CXX=
+fi
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_CXX=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:12853: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:12857: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_CXX=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix4* | aix5*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+    else
+      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    export_symbols_cmds_CXX="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_CXX=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_CXX in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_CXX
+	pic_flag=$lt_prog_compiler_pic_CXX
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+        allow_undefined_flag_CXX=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_CXX=no
+        else
+	  archive_cmds_need_lc_CXX=yes
+        fi
+        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  freebsd*) # from 4.6 on
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix3*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 13389 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" || \
+   test -n "$runpath_var_CXX" || \
+   test "X$hardcode_automatic_CXX" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_CXX" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+     test "$hardcode_minus_L_CXX" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_CXX=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_CXX=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_CXX=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+echo "${ECHO_T}$hardcode_action_CXX" >&6
+
+if test "$hardcode_action_CXX" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_CXX \
+    CC_CXX \
+    LD_CXX \
+    lt_prog_compiler_wl_CXX \
+    lt_prog_compiler_pic_CXX \
+    lt_prog_compiler_static_CXX \
+    lt_prog_compiler_no_builtin_flag_CXX \
+    export_dynamic_flag_spec_CXX \
+    thread_safe_flag_spec_CXX \
+    whole_archive_flag_spec_CXX \
+    enable_shared_with_static_runtimes_CXX \
+    old_archive_cmds_CXX \
+    old_archive_from_new_cmds_CXX \
+    predep_objects_CXX \
+    postdep_objects_CXX \
+    predeps_CXX \
+    postdeps_CXX \
+    compiler_lib_search_path_CXX \
+    archive_cmds_CXX \
+    archive_expsym_cmds_CXX \
+    postinstall_cmds_CXX \
+    postuninstall_cmds_CXX \
+    old_archive_from_expsyms_cmds_CXX \
+    allow_undefined_flag_CXX \
+    no_undefined_flag_CXX \
+    export_symbols_cmds_CXX \
+    hardcode_libdir_flag_spec_CXX \
+    hardcode_libdir_flag_spec_ld_CXX \
+    hardcode_libdir_separator_CXX \
+    hardcode_automatic_CXX \
+    module_cmds_CXX \
+    module_expsym_cmds_CXX \
+    lt_cv_prog_compiler_c_o_CXX \
+    exclude_expsyms_CXX \
+    include_expsyms_CXX; do
+
+    case $var in
+    old_archive_cmds_CXX | \
+    old_archive_from_new_cmds_CXX | \
+    archive_cmds_CXX | \
+    archive_expsym_cmds_CXX | \
+    module_cmds_CXX | \
+    module_expsym_cmds_CXX | \
+    old_archive_from_expsyms_cmds_CXX | \
+    export_symbols_cmds_CXX | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_CXX
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_CXX
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_CXX
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_CXX"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+
+
+archive_cmds_need_lc_F77=no
+allow_undefined_flag_F77=
+always_export_symbols_F77=no
+archive_expsym_cmds_F77=
+export_dynamic_flag_spec_F77=
+hardcode_direct_F77=no
+hardcode_libdir_flag_spec_F77=
+hardcode_libdir_flag_spec_ld_F77=
+hardcode_libdir_separator_F77=
+hardcode_minus_L_F77=no
+hardcode_automatic_F77=no
+module_cmds_F77=
+module_expsym_cmds_F77=
+link_all_deplibs_F77=unknown
+old_archive_cmds_F77=$old_archive_cmds
+no_undefined_flag_F77=
+whole_archive_flag_spec_F77=
+enable_shared_with_static_runtimes_F77=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+objext_F77=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="      program t\n      end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+compiler_F77=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+GCC_F77="$G77"
+LD_F77="$LD"
+
+lt_prog_compiler_wl_F77=
+lt_prog_compiler_pic_F77=
+lt_prog_compiler_static_F77=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl_F77='-Wl,'
+    lt_prog_compiler_static_F77='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_F77='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_F77='-fno-common'
+      ;;
+
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared_F77=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_F77=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_F77='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic_F77='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_F77='-Bstatic'
+      else
+	lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic_F77='-qnocommon'
+         lt_prog_compiler_wl_F77='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_F77='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static_F77='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl_F77='-Wl,'
+	lt_prog_compiler_pic_F77='-KPIC'
+	lt_prog_compiler_static_F77='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl_F77='-Wl,'
+	lt_prog_compiler_pic_F77='-fpic'
+	lt_prog_compiler_static_F77='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl_F77='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static_F77='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static_F77='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl_F77='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl_F77='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl_F77='-Qoption ld '
+      lt_prog_compiler_pic_F77='-PIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic_F77='-Kconform_pic'
+	lt_prog_compiler_static_F77='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_can_build_shared_F77=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic_F77='-pic'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared_F77=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_F77"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_F77=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_F77"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:14444: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:14448: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works_F77=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6
+
+if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
+    case $lt_prog_compiler_pic_F77 in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
+     esac
+else
+    lt_prog_compiler_pic_F77=
+     lt_prog_compiler_can_build_shared_F77=no
+fi
+
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_F77=
+    ;;
+  *)
+    lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\"
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
+if test "${lt_prog_compiler_static_works_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works_F77=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works_F77=yes
+       fi
+     else
+       lt_prog_compiler_static_works_F77=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6
+
+if test x"$lt_prog_compiler_static_works_F77" = xyes; then
+    :
+else
+    lt_prog_compiler_static_F77=
+fi
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_F77=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:14548: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:14552: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_F77=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  runpath_var=
+  allow_undefined_flag_F77=
+  enable_shared_with_static_runtimes_F77=no
+  archive_cmds_F77=
+  archive_expsym_cmds_F77=
+  old_archive_From_new_cmds_F77=
+  old_archive_from_expsyms_cmds_F77=
+  export_dynamic_flag_spec_F77=
+  whole_archive_flag_spec_F77=
+  thread_safe_flag_spec_F77=
+  hardcode_libdir_flag_spec_F77=
+  hardcode_libdir_flag_spec_ld_F77=
+  hardcode_libdir_separator_F77=
+  hardcode_direct_F77=no
+  hardcode_minus_L_F77=no
+  hardcode_shlibpath_var_F77=unsupported
+  link_all_deplibs_F77=unknown
+  hardcode_automatic_F77=no
+  module_cmds_F77=
+  module_expsym_cmds_F77=
+  always_export_symbols_F77=no
+  export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms_F77=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs_F77=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_F77='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec_F77=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs_F77=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs_F77=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag_F77=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      allow_undefined_flag_F77=unsupported
+      always_export_symbols_F77=no
+      enable_shared_with_static_runtimes_F77=yes
+      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    interix3*)
+      hardcode_direct_F77=no
+      hardcode_shlibpath_var_F77=no
+      hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec_F77='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs_F77=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs_F77=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs_F77=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs_F77" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec_F77=
+      export_dynamic_flag_spec_F77=
+      whole_archive_flag_spec_F77=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag_F77=unsupported
+      always_export_symbols_F77=yes
+      archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L_F77=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct_F77=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds_F77=''
+      hardcode_direct_F77=yes
+      hardcode_libdir_separator_F77=':'
+      link_all_deplibs_F77=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct_F77=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct_F77=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L_F77=yes
+  	  hardcode_libdir_flag_spec_F77='-L$libdir'
+  	  hardcode_libdir_separator_F77=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols_F77=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag_F77='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+       hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag_F77="-z nodefs"
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag_F77=' ${wl}-bernotok'
+	  allow_undefined_flag_F77=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec_F77='$convenience'
+	  archive_cmds_need_lc_F77=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs_F77=no
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec_F77=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec_F77=' '
+      allow_undefined_flag_F77=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds_F77='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes_F77=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag_F77='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc_F77=no
+      hardcode_direct_F77=no
+      hardcode_automatic_F77=yes
+      hardcode_shlibpath_var_F77=unsupported
+      whole_archive_flag_spec_F77=''
+      link_all_deplibs_F77=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+      archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_F77=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs_F77=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      hardcode_direct_F77=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L_F77=yes
+      export_dynamic_flag_spec_F77='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_F77=:
+
+	hardcode_direct_F77=yes
+	export_dynamic_flag_spec_F77='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L_F77=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_F77=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_libdir_flag_spec_ld_F77='+b $libdir'
+	  hardcode_direct_F77=no
+	  hardcode_shlibpath_var_F77=no
+	  ;;
+	*)
+	  hardcode_direct_F77=yes
+	  export_dynamic_flag_spec_F77='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_F77=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      link_all_deplibs_F77=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    newsos6)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    openbsd*)
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_F77='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec_F77='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+      allow_undefined_flag_F77=unsupported
+      archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag_F77=' -expect_unresolved \*'
+	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag_F77=' -expect_unresolved \*'
+	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec_F77='-rpath $libdir'
+      fi
+      hardcode_libdir_separator_F77=:
+      ;;
+
+    solaris*)
+      no_undefined_flag_F77=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_shlibpath_var_F77=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      link_all_deplibs_F77=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_F77=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds_F77='$CC -r -o $output$reload_objs'
+	  hardcode_direct_F77=no
+        ;;
+	motorola)
+	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_F77=no
+      export_dynamic_flag_spec_F77='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var_F77=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs_F77=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+      no_undefined_flag_F77='${wl}-z,text'
+      archive_cmds_need_lc_F77=no
+      hardcode_shlibpath_var_F77=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag_F77='${wl}-z,text'
+      allow_undefined_flag_F77='${wl}-z,nodefs'
+      archive_cmds_need_lc_F77=no
+      hardcode_shlibpath_var_F77=no
+      hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator_F77=':'
+      link_all_deplibs_F77=yes
+      export_dynamic_flag_spec_F77='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    *)
+      ld_shlibs_F77=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
+echo "${ECHO_T}$ld_shlibs_F77" >&6
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_F77" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_F77=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_F77 in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_F77
+	pic_flag=$lt_prog_compiler_pic_F77
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_F77
+        allow_undefined_flag_F77=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_F77=no
+        else
+	  archive_cmds_need_lc_F77=yes
+        fi
+        allow_undefined_flag_F77=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  freebsd*) # from 4.6 on
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix3*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 15997 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_F77=
+if test -n "$hardcode_libdir_flag_spec_F77" || \
+   test -n "$runpath_var_F77" || \
+   test "X$hardcode_automatic_F77" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_F77" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
+     test "$hardcode_minus_L_F77" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_F77=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_F77=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_F77=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
+echo "${ECHO_T}$hardcode_action_F77" >&6
+
+if test "$hardcode_action_F77" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_F77 \
+    CC_F77 \
+    LD_F77 \
+    lt_prog_compiler_wl_F77 \
+    lt_prog_compiler_pic_F77 \
+    lt_prog_compiler_static_F77 \
+    lt_prog_compiler_no_builtin_flag_F77 \
+    export_dynamic_flag_spec_F77 \
+    thread_safe_flag_spec_F77 \
+    whole_archive_flag_spec_F77 \
+    enable_shared_with_static_runtimes_F77 \
+    old_archive_cmds_F77 \
+    old_archive_from_new_cmds_F77 \
+    predep_objects_F77 \
+    postdep_objects_F77 \
+    predeps_F77 \
+    postdeps_F77 \
+    compiler_lib_search_path_F77 \
+    archive_cmds_F77 \
+    archive_expsym_cmds_F77 \
+    postinstall_cmds_F77 \
+    postuninstall_cmds_F77 \
+    old_archive_from_expsyms_cmds_F77 \
+    allow_undefined_flag_F77 \
+    no_undefined_flag_F77 \
+    export_symbols_cmds_F77 \
+    hardcode_libdir_flag_spec_F77 \
+    hardcode_libdir_flag_spec_ld_F77 \
+    hardcode_libdir_separator_F77 \
+    hardcode_automatic_F77 \
+    module_cmds_F77 \
+    module_expsym_cmds_F77 \
+    lt_cv_prog_compiler_c_o_F77 \
+    exclude_expsyms_F77 \
+    include_expsyms_F77; do
+
+    case $var in
+    old_archive_cmds_F77 | \
+    old_archive_from_new_cmds_F77 | \
+    archive_cmds_F77 | \
+    archive_expsym_cmds_F77 | \
+    module_cmds_F77 | \
+    module_expsym_cmds_F77 | \
+    old_archive_from_expsyms_cmds_F77 | \
+    export_symbols_cmds_F77 | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_F77
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_F77
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_F77
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_F77
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_F77
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_F77
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_F77
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_F77
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_F77
+archive_expsym_cmds=$lt_archive_expsym_cmds_F77
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_F77
+module_expsym_cmds=$lt_module_expsym_cmds_F77
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_F77
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_F77
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_F77
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_F77
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_F77
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_F77
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_F77
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_F77
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_F77
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_F77
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_F77"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_F77
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_F77
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_F77
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_F77
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+
+
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+objext_GCJ=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+compiler_GCJ=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+archive_cmds_need_lc_GCJ=no
+
+old_archive_cmds_GCJ=$old_archive_cmds
+
+
+lt_prog_compiler_no_builtin_flag_GCJ=
+
+if test "$GCC" = yes; then
+  lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:16772: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:16776: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+lt_prog_compiler_wl_GCJ=
+lt_prog_compiler_pic_GCJ=
+lt_prog_compiler_static_GCJ=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl_GCJ='-Wl,'
+    lt_prog_compiler_static_GCJ='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_GCJ='-fno-common'
+      ;;
+
+    interix3*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared_GCJ=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_GCJ=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_GCJ='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic_GCJ='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      else
+	lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic_GCJ='-qnocommon'
+         lt_prog_compiler_wl_GCJ='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_GCJ='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static_GCJ='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl_GCJ='-Wl,'
+	lt_prog_compiler_pic_GCJ='-KPIC'
+	lt_prog_compiler_static_GCJ='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl_GCJ='-Wl,'
+	lt_prog_compiler_pic_GCJ='-fpic'
+	lt_prog_compiler_static_GCJ='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl_GCJ='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static_GCJ='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static_GCJ='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl_GCJ='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl_GCJ='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl_GCJ='-Qoption ld '
+      lt_prog_compiler_pic_GCJ='-PIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic_GCJ='-Kconform_pic'
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_can_build_shared_GCJ=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic_GCJ='-pic'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared_GCJ=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_GCJ"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_GCJ=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:17040: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:17044: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works_GCJ=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6
+
+if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
+    case $lt_prog_compiler_pic_GCJ in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
+     esac
+else
+    lt_prog_compiler_pic_GCJ=
+     lt_prog_compiler_can_build_shared_GCJ=no
+fi
+
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_GCJ=
+    ;;
+  *)
+    lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
+if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works_GCJ=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works_GCJ=yes
+       fi
+     else
+       lt_prog_compiler_static_works_GCJ=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6
+
+if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then
+    :
+else
+    lt_prog_compiler_static_GCJ=
+fi
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_GCJ=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:17144: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:17148: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_GCJ=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  runpath_var=
+  allow_undefined_flag_GCJ=
+  enable_shared_with_static_runtimes_GCJ=no
+  archive_cmds_GCJ=
+  archive_expsym_cmds_GCJ=
+  old_archive_From_new_cmds_GCJ=
+  old_archive_from_expsyms_cmds_GCJ=
+  export_dynamic_flag_spec_GCJ=
+  whole_archive_flag_spec_GCJ=
+  thread_safe_flag_spec_GCJ=
+  hardcode_libdir_flag_spec_GCJ=
+  hardcode_libdir_flag_spec_ld_GCJ=
+  hardcode_libdir_separator_GCJ=
+  hardcode_direct_GCJ=no
+  hardcode_minus_L_GCJ=no
+  hardcode_shlibpath_var_GCJ=unsupported
+  link_all_deplibs_GCJ=unknown
+  hardcode_automatic_GCJ=no
+  module_cmds_GCJ=
+  module_expsym_cmds_GCJ=
+  always_export_symbols_GCJ=no
+  export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms_GCJ=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs_GCJ=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec_GCJ=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs_GCJ=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs_GCJ=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag_GCJ=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      allow_undefined_flag_GCJ=unsupported
+      always_export_symbols_GCJ=no
+      enable_shared_with_static_runtimes_GCJ=yes
+      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    interix3*)
+      hardcode_direct_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec_GCJ='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs_GCJ=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs_GCJ=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs_GCJ=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs_GCJ" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec_GCJ=
+      export_dynamic_flag_spec_GCJ=
+      whole_archive_flag_spec_GCJ=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag_GCJ=unsupported
+      always_export_symbols_GCJ=yes
+      archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L_GCJ=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct_GCJ=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds_GCJ=''
+      hardcode_direct_GCJ=yes
+      hardcode_libdir_separator_GCJ=':'
+      link_all_deplibs_GCJ=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct_GCJ=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct_GCJ=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L_GCJ=yes
+  	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
+  	  hardcode_libdir_separator_GCJ=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols_GCJ=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag_GCJ='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+       hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag_GCJ="-z nodefs"
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag_GCJ=' ${wl}-bernotok'
+	  allow_undefined_flag_GCJ=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec_GCJ='$convenience'
+	  archive_cmds_need_lc_GCJ=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs_GCJ=no
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec_GCJ=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec_GCJ=' '
+      allow_undefined_flag_GCJ=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds_GCJ='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes_GCJ=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc_GCJ=no
+      hardcode_direct_GCJ=no
+      hardcode_automatic_GCJ=yes
+      hardcode_shlibpath_var_GCJ=unsupported
+      whole_archive_flag_spec_GCJ=''
+      link_all_deplibs_GCJ=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+      archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_GCJ=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs_GCJ=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      hardcode_direct_GCJ=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L_GCJ=yes
+      export_dynamic_flag_spec_GCJ='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_GCJ=:
+
+	hardcode_direct_GCJ=yes
+	export_dynamic_flag_spec_GCJ='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L_GCJ=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_GCJ=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
+	  hardcode_direct_GCJ=no
+	  hardcode_shlibpath_var_GCJ=no
+	  ;;
+	*)
+	  hardcode_direct_GCJ=yes
+	  export_dynamic_flag_spec_GCJ='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_GCJ=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      link_all_deplibs_GCJ=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    newsos6)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    openbsd*)
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_GCJ='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec_GCJ='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+      allow_undefined_flag_GCJ=unsupported
+      archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag_GCJ=' -expect_unresolved \*'
+	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag_GCJ=' -expect_unresolved \*'
+	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
+      fi
+      hardcode_libdir_separator_GCJ=:
+      ;;
+
+    solaris*)
+      no_undefined_flag_GCJ=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      link_all_deplibs_GCJ=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_GCJ=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds_GCJ='$CC -r -o $output$reload_objs'
+	  hardcode_direct_GCJ=no
+        ;;
+	motorola)
+	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_GCJ=no
+      export_dynamic_flag_spec_GCJ='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var_GCJ=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs_GCJ=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+      no_undefined_flag_GCJ='${wl}-z,text'
+      archive_cmds_need_lc_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag_GCJ='${wl}-z,text'
+      allow_undefined_flag_GCJ='${wl}-z,nodefs'
+      archive_cmds_need_lc_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator_GCJ=':'
+      link_all_deplibs_GCJ=yes
+      export_dynamic_flag_spec_GCJ='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    *)
+      ld_shlibs_GCJ=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
+echo "${ECHO_T}$ld_shlibs_GCJ" >&6
+test "$ld_shlibs_GCJ" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_GCJ" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_GCJ=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_GCJ in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_GCJ
+	pic_flag=$lt_prog_compiler_pic_GCJ
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
+        allow_undefined_flag_GCJ=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_GCJ=no
+        else
+	  archive_cmds_need_lc_GCJ=yes
+        fi
+        allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  freebsd*) # from 4.6 on
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix3*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # find out which ABI we are using
+  libsuff=
+  case "$host_cpu" in
+  x86_64*|s390x*|powerpc64*)
+    echo '#line 18613 "configure"' > conftest.$ac_ext
+    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+      case `/usr/bin/file conftest.$ac_objext` in
+      *64-bit*)
+        libsuff=64
+        sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+        ;;
+      esac
+    fi
+    rm -rf conftest*
+    ;;
+  esac
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_GCJ=
+if test -n "$hardcode_libdir_flag_spec_GCJ" || \
+   test -n "$runpath_var_GCJ" || \
+   test "X$hardcode_automatic_GCJ" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_GCJ" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
+     test "$hardcode_minus_L_GCJ" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_GCJ=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_GCJ=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_GCJ=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
+echo "${ECHO_T}$hardcode_action_GCJ" >&6
+
+if test "$hardcode_action_GCJ" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_GCJ \
+    CC_GCJ \
+    LD_GCJ \
+    lt_prog_compiler_wl_GCJ \
+    lt_prog_compiler_pic_GCJ \
+    lt_prog_compiler_static_GCJ \
+    lt_prog_compiler_no_builtin_flag_GCJ \
+    export_dynamic_flag_spec_GCJ \
+    thread_safe_flag_spec_GCJ \
+    whole_archive_flag_spec_GCJ \
+    enable_shared_with_static_runtimes_GCJ \
+    old_archive_cmds_GCJ \
+    old_archive_from_new_cmds_GCJ \
+    predep_objects_GCJ \
+    postdep_objects_GCJ \
+    predeps_GCJ \
+    postdeps_GCJ \
+    compiler_lib_search_path_GCJ \
+    archive_cmds_GCJ \
+    archive_expsym_cmds_GCJ \
+    postinstall_cmds_GCJ \
+    postuninstall_cmds_GCJ \
+    old_archive_from_expsyms_cmds_GCJ \
+    allow_undefined_flag_GCJ \
+    no_undefined_flag_GCJ \
+    export_symbols_cmds_GCJ \
+    hardcode_libdir_flag_spec_GCJ \
+    hardcode_libdir_flag_spec_ld_GCJ \
+    hardcode_libdir_separator_GCJ \
+    hardcode_automatic_GCJ \
+    module_cmds_GCJ \
+    module_expsym_cmds_GCJ \
+    lt_cv_prog_compiler_c_o_GCJ \
+    exclude_expsyms_GCJ \
+    include_expsyms_GCJ; do
+
+    case $var in
+    old_archive_cmds_GCJ | \
+    old_archive_from_new_cmds_GCJ | \
+    archive_cmds_GCJ | \
+    archive_expsym_cmds_GCJ | \
+    module_cmds_GCJ | \
+    module_expsym_cmds_GCJ | \
+    old_archive_from_expsyms_cmds_GCJ | \
+    export_symbols_cmds_GCJ | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_GCJ
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_GCJ
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_GCJ
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_GCJ
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_GCJ
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_GCJ
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_GCJ
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_GCJ
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_GCJ
+archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_GCJ
+module_expsym_cmds=$lt_module_expsym_cmds_GCJ
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_GCJ
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_GCJ
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_GCJ
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_GCJ
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_GCJ
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_GCJ
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_GCJ
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_GCJ
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_GCJ
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_GCJ"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_GCJ
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_GCJ
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_GCJ
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_GCJ
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+
+
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+objext_RC=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+compiler_RC=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+lt_cv_prog_compiler_c_o_RC=yes
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_RC \
+    CC_RC \
+    LD_RC \
+    lt_prog_compiler_wl_RC \
+    lt_prog_compiler_pic_RC \
+    lt_prog_compiler_static_RC \
+    lt_prog_compiler_no_builtin_flag_RC \
+    export_dynamic_flag_spec_RC \
+    thread_safe_flag_spec_RC \
+    whole_archive_flag_spec_RC \
+    enable_shared_with_static_runtimes_RC \
+    old_archive_cmds_RC \
+    old_archive_from_new_cmds_RC \
+    predep_objects_RC \
+    postdep_objects_RC \
+    predeps_RC \
+    postdeps_RC \
+    compiler_lib_search_path_RC \
+    archive_cmds_RC \
+    archive_expsym_cmds_RC \
+    postinstall_cmds_RC \
+    postuninstall_cmds_RC \
+    old_archive_from_expsyms_cmds_RC \
+    allow_undefined_flag_RC \
+    no_undefined_flag_RC \
+    export_symbols_cmds_RC \
+    hardcode_libdir_flag_spec_RC \
+    hardcode_libdir_flag_spec_ld_RC \
+    hardcode_libdir_separator_RC \
+    hardcode_automatic_RC \
+    module_cmds_RC \
+    module_expsym_cmds_RC \
+    lt_cv_prog_compiler_c_o_RC \
+    exclude_expsyms_RC \
+    include_expsyms_RC; do
+
+    case $var in
+    old_archive_cmds_RC | \
+    old_archive_from_new_cmds_RC | \
+    archive_cmds_RC | \
+    archive_expsym_cmds_RC | \
+    module_cmds_RC | \
+    module_expsym_cmds_RC | \
+    old_archive_from_expsyms_cmds_RC | \
+    export_symbols_cmds_RC | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_RC
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_RC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_RC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_RC
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_RC
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_RC
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_RC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_RC
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_RC
+archive_expsym_cmds=$lt_archive_expsym_cmds_RC
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_RC
+module_expsym_cmds=$lt_module_expsym_cmds_RC
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_RC
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_RC
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_RC
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_RC
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_RC
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_RC
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_RC
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_RC
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_RC
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_RC
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_RC"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_RC
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_RC
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_RC
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_RC
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	;;
+
+      *)
+	{ { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
+echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
+   { (exit 1); exit 1; }; }
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
+echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+# Prevent multiple expansion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/time.h stdlib.h unistd.h string.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+
+for ac_header in ieeefp.h nan.h math.h fp_class.h float.h ansidecl.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+for ac_header in sys/timeb.h time.h sys/stat.h sys/select.h stdarg.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+for ac_func in stat _stat
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+echo "$as_me:$LINENO: checking for isnan" >&5
+echo $ECHO_N "checking for isnan... $ECHO_C" >&6
+if test "${ac_cv_func_isnan+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define isnan to an innocuous variant, in case <limits.h> declares isnan.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define isnan innocuous_isnan
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char isnan (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef isnan
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char isnan ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_isnan) || defined (__stub___isnan)
+choke me
+#else
+char (*f) () = isnan;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != isnan;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_isnan=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_isnan=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_isnan" >&5
+echo "${ECHO_T}$ac_cv_func_isnan" >&6
+if test $ac_cv_func_isnan = yes; then
+  :
+else
+  echo "$as_me:$LINENO: checking for isnan in -lm" >&5
+echo $ECHO_N "checking for isnan in -lm... $ECHO_C" >&6
+if test "${ac_cv_lib_m_isnan+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char isnan ();
+int
+main ()
+{
+isnan ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_m_isnan=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_m_isnan=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_m_isnan" >&5
+echo "${ECHO_T}$ac_cv_lib_m_isnan" >&6
+if test $ac_cv_lib_m_isnan = yes; then
+  M_LIBS="-lm"; cat >>confdefs.h <<\_ACEOF
+#define HAVE_ISNAN 1
+_ACEOF
+
+fi
+
+fi
+
+
+echo "$as_me:$LINENO: checking for isinf" >&5
+echo $ECHO_N "checking for isinf... $ECHO_C" >&6
+if test "${ac_cv_func_isinf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define isinf to an innocuous variant, in case <limits.h> declares isinf.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define isinf innocuous_isinf
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char isinf (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef isinf
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char isinf ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_isinf) || defined (__stub___isinf)
+choke me
+#else
+char (*f) () = isinf;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != isinf;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_isinf=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_isinf=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_isinf" >&5
+echo "${ECHO_T}$ac_cv_func_isinf" >&6
+if test $ac_cv_func_isinf = yes; then
+  :
+else
+  echo "$as_me:$LINENO: checking for isinf in -lm" >&5
+echo $ECHO_N "checking for isinf in -lm... $ECHO_C" >&6
+if test "${ac_cv_lib_m_isinf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char isinf ();
+int
+main ()
+{
+isinf ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_m_isinf=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_m_isinf=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_m_isinf" >&5
+echo "${ECHO_T}$ac_cv_lib_m_isinf" >&6
+if test $ac_cv_lib_m_isinf = yes; then
+  M_LIBS="-lm"; cat >>confdefs.h <<\_ACEOF
+#define HAVE_ISINF 1
+_ACEOF
+
+fi
+
+fi
+
+
+echo "$as_me:$LINENO: checking for pow" >&5
+echo $ECHO_N "checking for pow... $ECHO_C" >&6
+if test "${ac_cv_func_pow+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define pow to an innocuous variant, in case <limits.h> declares pow.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define pow innocuous_pow
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char pow (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef pow
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char pow ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_pow) || defined (__stub___pow)
+choke me
+#else
+char (*f) () = pow;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != pow;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_pow=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_pow=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_pow" >&5
+echo "${ECHO_T}$ac_cv_func_pow" >&6
+if test $ac_cv_func_pow = yes; then
+  :
+else
+  echo "$as_me:$LINENO: checking for pow in -lm" >&5
+echo $ECHO_N "checking for pow in -lm... $ECHO_C" >&6
+if test "${ac_cv_lib_m_pow+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char pow ();
+int
+main ()
+{
+pow ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_m_pow=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_m_pow=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_m_pow" >&5
+echo "${ECHO_T}$ac_cv_lib_m_pow" >&6
+if test $ac_cv_lib_m_pow = yes; then
+  M_LIBS="-lm"; cat >>confdefs.h <<\_ACEOF
+#define HAVE_POW 1
+_ACEOF
+
+fi
+
+fi
+
+
+echo "$as_me:$LINENO: checking for floor" >&5
+echo $ECHO_N "checking for floor... $ECHO_C" >&6
+if test "${ac_cv_func_floor+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define floor to an innocuous variant, in case <limits.h> declares floor.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define floor innocuous_floor
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char floor (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef floor
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char floor ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_floor) || defined (__stub___floor)
+choke me
+#else
+char (*f) () = floor;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != floor;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_floor=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_floor=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_floor" >&5
+echo "${ECHO_T}$ac_cv_func_floor" >&6
+if test $ac_cv_func_floor = yes; then
+  :
+else
+  echo "$as_me:$LINENO: checking for floor in -lm" >&5
+echo $ECHO_N "checking for floor in -lm... $ECHO_C" >&6
+if test "${ac_cv_lib_m_floor+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char floor ();
+int
+main ()
+{
+floor ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_m_floor=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_m_floor=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_m_floor" >&5
+echo "${ECHO_T}$ac_cv_lib_m_floor" >&6
+if test $ac_cv_lib_m_floor = yes; then
+  M_LIBS="-lm"; cat >>confdefs.h <<\_ACEOF
+#define HAVE_FLOOR 1
+_ACEOF
+
+fi
+
+fi
+
+
+echo "$as_me:$LINENO: checking for fabs" >&5
+echo $ECHO_N "checking for fabs... $ECHO_C" >&6
+if test "${ac_cv_func_fabs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define fabs to an innocuous variant, in case <limits.h> declares fabs.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define fabs innocuous_fabs
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char fabs (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef fabs
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char fabs ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_fabs) || defined (__stub___fabs)
+choke me
+#else
+char (*f) () = fabs;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != fabs;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_fabs=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_fabs=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_fabs" >&5
+echo "${ECHO_T}$ac_cv_func_fabs" >&6
+if test $ac_cv_func_fabs = yes; then
+  :
+else
+  echo "$as_me:$LINENO: checking for fabs in -lm" >&5
+echo $ECHO_N "checking for fabs in -lm... $ECHO_C" >&6
+if test "${ac_cv_lib_m_fabs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char fabs ();
+int
+main ()
+{
+fabs ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_m_fabs=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_m_fabs=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_m_fabs" >&5
+echo "${ECHO_T}$ac_cv_lib_m_fabs" >&6
+if test $ac_cv_lib_m_fabs = yes; then
+  M_LIBS="-lm"; cat >>confdefs.h <<\_ACEOF
+#define HAVE_FABS 1
+_ACEOF
+
+fi
+
+fi
+
+
+for ac_func in gettimeofday
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+
+for ac_func in mktime localtime localtime_r asctime time gmtime_r ftime
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+
+
+
+for ac_func in printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+  NEED_TRIO=1
+fi
+done
+
+
+
+if test "${NEED_TRIO}" = "1" ; then
+    echo Reusing trio library for string functions
+    WITH_TRIO=1
+else
+    WITH_TRIO=0
+fi
+
+
+
+
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_PERL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$PERL"; then
+  ac_cv_prog_PERL="$PERL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_PERL="perl"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_PERL" && ac_cv_prog_PERL="false"
+fi
+fi
+PERL=$ac_cv_prog_PERL
+if test -n "$PERL"; then
+  echo "$as_me:$LINENO: result: $PERL" >&5
+echo "${ECHO_T}$PERL" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+
+if test "$PERL" != "false"; then
+  WITH_PERL_TRUE=
+  WITH_PERL_FALSE='#'
+else
+  WITH_PERL_TRUE='#'
+  WITH_PERL_FALSE=
+fi
+
+
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+PYTHON_SITE_PACKAGES=
+pythondir=
+
+# Check whether --with-python or --without-python was given.
+if test "${with_python+set}" = set; then
+  withval="$with_python"
+
+fi;
+if test "$with_python" != "no" ; then
+    if test -x "$with_python/bin/python"
+    then
+        echo Found python in $with_python/bin/python
+        PYTHON="$with_python/bin/python"
+    else
+	if test -x "$with_python"
+	then
+	    echo Found python in $with_python
+	    PYTHON="$with_python"
+	else
+            if test -x "$PYTHON"
+            then
+                echo Found python in environment PYTHON=$PYTHON
+                with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
+	    else
+	        # Extract the first word of "python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5", so it can be a program name with args.
+set dummy python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PYTHON+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PYTHON in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+
+if test -n "$PYTHON"; then
+  echo "$as_me:$LINENO: result: $PYTHON" >&5
+echo "${ECHO_T}$PYTHON" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+	    fi
+	fi
+    fi
+    if test "$PYTHON" != ""
+    then
+        PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[0:3]"`
+	echo Found Python version $PYTHON_VERSION
+	LIBXML2_PYTHON=`$PYTHON -c "try : import libxml2 ; print 1
+except: print 0"`
+	if test "$LIBXML2_PYTHON" = "1"
+	then
+	    echo Found libxml2-python module
+	else
+	    echo Warning: Missing libxml2-python
+	fi
+    fi
+    if test "$PYTHON_VERSION" != ""
+    then
+	if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \
+	   -d $with_python/lib/python$PYTHON_VERSION/site-packages
+	then
+	    PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
+	    PYTHON_SITE_PACKAGES='$(libdir)/lib/python$(PYTHON_VERSION)/site-packages'
+	else
+	    if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+	    then
+	        PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
+		PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
+	    else
+		if test -r /usr/include/python$PYTHON_VERSION/Python.h
+		then
+		    PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
+		    PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
+		else
+		    echo could not find python$PYTHON_VERSION/Python.h
+		fi
+	    fi
+	    if test ! -d "$PYTHON_SITE_PACKAGES"
+	    then
+		    PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib()"`
+	    fi
+	fi
+    fi
+    if test "$with_python" != ""
+    then
+        pythondir=$(PYTHON_SITE_PACKAGES)
+    else
+        pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
+    fi
+fi
+
+
+if test "$PYTHON_INCLUDES" != ""; then
+  WITH_PYTHON_TRUE=
+  WITH_PYTHON_FALSE='#'
+else
+  WITH_PYTHON_TRUE='#'
+  WITH_PYTHON_FALSE=
+fi
+
+if test "$PYTHON_INCLUDES" != ""
+then
+    PYTHON_SUBDIR=python
+else
+    PYTHON_SUBDIR=
+fi
+
+
+
+
+# Check whether --with-crypto or --without-crypto was given.
+if test "${with_crypto+set}" = set; then
+  withval="$with_crypto"
+
+fi;
+WITH_CRYPTO=0
+if test "$with_crypto" = "no" ; then
+    echo Disabling crypto support
+    LIBGCRYPT_CFLAGS=""
+    LIBGCRYPT_LIBS=""
+else
+    # Extract the first word of "libgcrypt-config", so it can be a program name with args.
+set dummy libgcrypt-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_LIBGCRYPT_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $LIBGCRYPT_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_LIBGCRYPT_CONFIG="$LIBGCRYPT_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_LIBGCRYPT_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_path_LIBGCRYPT_CONFIG" && ac_cv_path_LIBGCRYPT_CONFIG="no"
+  ;;
+esac
+fi
+LIBGCRYPT_CONFIG=$ac_cv_path_LIBGCRYPT_CONFIG
+
+if test -n "$LIBGCRYPT_CONFIG"; then
+  echo "$as_me:$LINENO: result: $LIBGCRYPT_CONFIG" >&5
+echo "${ECHO_T}$LIBGCRYPT_CONFIG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    if test "$LIBGCRYPT_CONFIG" != "no" ; then
+      LIBGCRYPT_VERSION=`$LIBGCRYPT_CONFIG --version`
+      if test `echo $LIBGCRYPT_VERSION | sed -e 's/libxml //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` -lt `echo "1.1.42" | sed -e 's/libxml //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
+      then
+        LIBGCRYPT_CFLAGS=""
+        LIBGCRYPT_LIBS=""
+        echo gcrypt library version < 1.1.42 - Crypto extensions will not be available.
+      else
+        LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --cflags`
+        LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --libs`
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_GCRYPT 1
+_ACEOF
+
+        echo Crypto extensions will be available.
+		WITH_CRYPTO=1
+      fi
+    else
+      LIBGCRYPT_CFLAGS=""
+      LIBGCRYPT_LIBS=""
+      echo Crypto extensions will not be available. Install libgcrypt and reconfigure to make available.
+    fi
+fi
+
+
+
+
+if [ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XSLT" ] || \
+   [ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomecvs/xsltest" ]
+   then
+    if test "${with_mem_debug}" = "" ;
+    then
+	with_mem_debug="yes"
+    fi
+    CFLAGS="-Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline "
+    if test "`uname -i`" != "x86_64" ;
+    then
+	STATIC_BINARIES="-static"
+    else
+        STATIC_BINARIES=
+    fi
+    if test "$LOGNAME" = "veillard"
+    then
+        LIBXML_SRC="/u/veillard/XML"
+	EXTRA_LIBS="$EXTRA_LIBS -ldl"
+    fi
+else
+    STATIC_BINARIES=
+fi
+
+
+
+# Check whether --with-debug or --without-debug was given.
+if test "${with_debug+set}" = set; then
+  withval="$with_debug"
+
+fi;
+if test "$with_debug" = "no" ; then
+    echo Disabling debug support
+    WITH_XSLT_DEBUG=0
+else
+    WITH_XSLT_DEBUG=1
+fi
+
+
+
+# Check whether --with-mem_debug or --without-mem_debug was given.
+if test "${with_mem_debug+set}" = set; then
+  withval="$with_mem_debug"
+
+fi;
+if test "$with_mem_debug" = "yes" ; then
+    echo Enabling memory debug support
+    WITH_MEM_DEBUG=1
+else
+    WITH_MEM_DEBUG=0
+fi
+
+
+
+# Check whether --with-with_debugger or --without-with_debugger was given.
+if test "${with_with_debugger+set}" = set; then
+  withval="$with_with_debugger"
+
+fi;
+if test "$with_debugger" = "no" ; then
+    echo Disabling debugger
+    WITH_DEBUGGER=0
+else
+    echo Enabling debugger
+    WITH_DEBUGGER=1
+    cat >>confdefs.h <<\_ACEOF
+#define WITH_DEBUGGER 1
+_ACEOF
+
+fi
+
+
+
+LIBXML_CONFIG_PREFIX=""
+LIBXML_SRC=""
+
+
+# Check whether --with-libxml-prefix or --without-libxml-prefix was given.
+if test "${with_libxml_prefix+set}" = set; then
+  withval="$with_libxml_prefix"
+  LIBXML_CONFIG_PREFIX=$withval
+
+fi;
+
+
+# Check whether --with-libxml-include-prefix or --without-libxml-include-prefix was given.
+if test "${with_libxml_include_prefix+set}" = set; then
+  withval="$with_libxml_include_prefix"
+  LIBXML_CFLAGS="-I$withval"
+
+fi;
+
+
+# Check whether --with-libxml-libs-prefix or --without-libxml-libs-prefix was given.
+if test "${with_libxml_libs_prefix+set}" = set; then
+  withval="$with_libxml_libs_prefix"
+  LIBXML_LIBS="-L$withval"
+
+fi;
+
+
+# Check whether --with-libxml-src or --without-libxml-src was given.
+if test "${with_libxml_src+set}" = set; then
+  withval="$with_libxml_src"
+  LIBXML_SRC="$withval"
+
+fi;
+
+
+
+
+echo "$as_me:$LINENO: checking for libxml libraries >= $LIBXML_REQUIRED_VERSION" >&5
+echo $ECHO_N "checking for libxml libraries >= $LIBXML_REQUIRED_VERSION... $ECHO_C" >&6
+if test "x$LIBXML_CONFIG_PREFIX" != "x"
+then
+	XML_CONFIG=${LIBXML_CONFIG_PREFIX}/bin/xml2-config
+else
+	XML_CONFIG=xml2-config
+fi
+
+if test "${GCC}" != "yes" ; then
+    case "${host}" in
+          *-*-hpux* )
+	       CFLAGS="${CFLAGS} -Wp,-H30000"
+	       ;;
+          *-dec-osf* )
+               CFLAGS="${CFLAGS} -ieee"
+               ;;
+    esac
+else
+    CFLAGS="${CFLAGS} -Wall"
+    case "${host}" in
+          alpha*-*-linux* )
+	       CFLAGS="${CFLAGS} -mieee"
+	       ;;
+	  alpha*-*-osf* )
+	       CFLAGS="${CFLAGS} -mieee"
+	       ;;
+    esac
+fi
+
+
+if test "x$LIBXML_SRC" != "x"
+then
+	CWD=`pwd`
+	if cd $LIBXML_SRC
+	then
+		SRC_DIR=`pwd`
+		XML_CONFIG=${SRC_DIR}/xml2-config
+		LIBXML_CFLAGS="-I${SRC_DIR}/include"
+		LIBXML_LIBS="-L${SRC_DIR}"
+		cd $CWD
+	else
+		{ { echo "$as_me:$LINENO: error: libxml source dir not found (${LIBXML_SRC}), typo?" >&5
+echo "$as_me: error: libxml source dir not found (${LIBXML_SRC}), typo?" >&2;}
+   { (exit 1); exit 1; }; }
+	fi
+fi
+
+
+if ${XML_CONFIG} --libs print > /dev/null 2>&1
+then
+	XMLVERS=`$XML_CONFIG --version`
+	if test `echo $XMLVERS | sed -e 's/libxml //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` -ge `echo $LIBXML_REQUIRED_VERSION | sed -e 's/libxml //' | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
+	then
+		LIBXML_LIBS="$LIBXML_LIBS `$XML_CONFIG --libs`"
+		LIBXML_CFLAGS="$LIBXML_CFLAGS `$XML_CONFIG --cflags`"
+		echo "$as_me:$LINENO: result: $XMLVERS found" >&5
+echo "${ECHO_T}$XMLVERS found" >&6
+	else
+		{ { echo "$as_me:$LINENO: error: Version $XMLVERS found. You need at least libxml2 $LIBXML_REQUIRED_VERSION for this version of libxslt" >&5
+echo "$as_me: error: Version $XMLVERS found. You need at least libxml2 $LIBXML_REQUIRED_VERSION for this version of libxslt" >&2;}
+   { (exit 1); exit 1; }; }
+	fi
+else
+	{ { echo "$as_me:$LINENO: error: Could not find libxml2 anywhere, check ftp://xmlsoft.org/." >&5
+echo "$as_me: error: Could not find libxml2 anywhere, check ftp://xmlsoft.org/." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+
+
+
+
+
+# Check whether --with-plugins or --without-plugins was given.
+if test "${with_plugins+set}" = set; then
+  withval="$with_plugins"
+
+fi;
+if test "$with_plugins" = ""
+then
+    with_plugins=yes
+fi
+
+echo "$as_me:$LINENO: checking whether shared libraries will be built (required for plugins)" >&5
+echo $ECHO_N "checking whether shared libraries will be built (required for plugins)... $ECHO_C" >&6
+if test "$enable_shared" = "no" -a "$with_plugins" = "yes"; then
+	 echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+	 { echo "$as_me:$LINENO: WARNING: Disabling plugin support." >&5
+echo "$as_me: WARNING: Disabling plugin support." >&2;}
+	 { echo "$as_me:$LINENO: WARNING: Plugins require that shared libraries be built." >&5
+echo "$as_me: WARNING: Plugins require that shared libraries be built." >&2;}
+	 with_plugins=no
+else
+	 echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+fi
+
+if test "$with_plugins" = "yes" ; then
+  echo "$as_me:$LINENO: checking libxml2 module support" >&5
+echo $ECHO_N "checking libxml2 module support... $ECHO_C" >&6
+  WITH_MODULES="`$XML_CONFIG --modules`"
+  if test "${WITH_MODULES}" = "1"; then
+    echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  else
+    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    WITH_MODULES="0"
+  fi
+else
+  WITH_MODULES="0"
+fi
+
+
+
+
+if test "$WITH_MODULES" == "1"; then
+  WITH_MODULES_TRUE=
+  WITH_MODULES_FALSE='#'
+else
+  WITH_MODULES_TRUE='#'
+  WITH_MODULES_FALSE=
+fi
+
+
+module_prefix=$prefix
+test "x$module_prefix" = xNONE && module_prefix=$ac_default_prefix
+LIBXSLT_DEFAULT_PLUGINS_PATH="$module_prefix/lib/libxslt-plugins"
+
+
+if test "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XSLT" ; then
+    if test "`uname -i`" != "x86_64" -a -e $HOME/XML/.libs/libxml2.a ;
+    then
+	LIBXML_LIBS="$HOME/XML/.libs/libxml2.a -lpthread -lz"
+    fi
+    DV_LINK="1"
+    XSLTPROCDV="xsltproc.dv"
+    INSTALLED_XSLT_LIB=""
+    LIBXML_SRC="$HOME/XML/"
+fi
+
+WIN32_EXTRA_LIBADD=
+WIN32_EXTRA_LDFLAGS=
+case "$host" in
+ *-*-mingw*)
+ WIN32_EXTRA_LIBADD="-lwsock32"
+ WIN32_EXTRA_LDFLAGS="-no-undefined"
+
+cat >>confdefs.h <<\_ACEOF
+#define _WINSOCKAPI_ 1
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define snprintf _snprintf
+_ACEOF
+
+
+cat >>confdefs.h <<\_ACEOF
+#define vsnprintf _vsnprintf
+_ACEOF
+
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+XSLT_LIBDIR='-L${libdir}'
+XSLT_INCLUDEDIR='-I${includedir}'
+XSLT_LIBS="-lxslt $LIBXML_LIBS $M_LIBS"
+
+
+
+
+EXSLT_LIBDIR='-L${libdir}'
+EXSLT_INCLUDEDIR='-I${includedir}'
+EXSLT_LIBS="-lexslt $XSLT_LIBS $LIBGCRYPT_LIBS"
+
+
+
+
+EXTRA_LIBS="$EXTRA_LIBS $LIBXML_LIBS $M_LIBS"
+
+
+
+
+RELDATE=`date +'%a %b %e %Y'`
+
+
+( cd $srcdir
+rm -f COPYING.LIB COPYING
+$LN_S Copyright COPYING
+)
+
+
+                                                                                                                                                                                                                                                                                                                                                                                                                ac_config_files="$ac_config_files Makefile libxslt.pc libexslt.pc libxslt/Makefile libxslt/xsltconfig.h libxslt/xsltwin32config.h libexslt/Makefile libexslt/exsltconfig.h xsltproc/Makefile python/Makefile python/tests/Makefile tests/Makefile tests/docs/Makefile tests/REC1/Makefile tests/REC2/Makefile tests/REC/Makefile tests/general/Makefile tests/reports/Makefile tests/extensions/Makefile tests/namespaces/Makefile tests/keys/Makefile tests/numbers/Makefile tests/documents/Makefile tests/xmlspec/Makefile tests/multiple/Makefile tests/xinclude/Makefile tests/XSLTMark/Makefile tests/docbook/Makefile tests/exslt/Makefile tests/exslt/common/Makefile tests/exslt/functions/Makefile tests/exslt/math/Makefile tests/exslt/sets/Makefile tests/exslt/strings/Makefile tests/exslt/date/Makefile tests/exslt/dynamic/Makefile tests/plugins/Makefile doc/Makefile xslt-config libxslt.spec"
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+  if test -w $cache_file; then
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[	 ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[	 ]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_i=`echo "$ac_i" |
+	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+  # 2. Add them.
+  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${WITH_PERL_TRUE}" && test -z "${WITH_PERL_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"WITH_PERL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"WITH_PERL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${WITH_PYTHON_TRUE}" && test -z "${WITH_PYTHON_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"WITH_PYTHON\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"WITH_PYTHON\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${WITH_MODULES_TRUE}" && test -z "${WITH_MODULES_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"WITH_MODULES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"WITH_MODULES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.59.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -q, --quiet      do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+		   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+		   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf at gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.59,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  -*)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_option=$1
+     ac_need_defaults=false;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    ac_need_defaults=false;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS section.
+#
+
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+_ACEOF
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "libxslt.pc" ) CONFIG_FILES="$CONFIG_FILES libxslt.pc" ;;
+  "libexslt.pc" ) CONFIG_FILES="$CONFIG_FILES libexslt.pc" ;;
+  "libxslt/Makefile" ) CONFIG_FILES="$CONFIG_FILES libxslt/Makefile" ;;
+  "libxslt/xsltconfig.h" ) CONFIG_FILES="$CONFIG_FILES libxslt/xsltconfig.h" ;;
+  "libxslt/xsltwin32config.h" ) CONFIG_FILES="$CONFIG_FILES libxslt/xsltwin32config.h" ;;
+  "libexslt/Makefile" ) CONFIG_FILES="$CONFIG_FILES libexslt/Makefile" ;;
+  "libexslt/exsltconfig.h" ) CONFIG_FILES="$CONFIG_FILES libexslt/exsltconfig.h" ;;
+  "xsltproc/Makefile" ) CONFIG_FILES="$CONFIG_FILES xsltproc/Makefile" ;;
+  "python/Makefile" ) CONFIG_FILES="$CONFIG_FILES python/Makefile" ;;
+  "python/tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES python/tests/Makefile" ;;
+  "tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
+  "tests/docs/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/docs/Makefile" ;;
+  "tests/REC1/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/REC1/Makefile" ;;
+  "tests/REC2/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/REC2/Makefile" ;;
+  "tests/REC/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/REC/Makefile" ;;
+  "tests/general/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/general/Makefile" ;;
+  "tests/reports/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/reports/Makefile" ;;
+  "tests/extensions/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/extensions/Makefile" ;;
+  "tests/namespaces/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/namespaces/Makefile" ;;
+  "tests/keys/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/keys/Makefile" ;;
+  "tests/numbers/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/numbers/Makefile" ;;
+  "tests/documents/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/documents/Makefile" ;;
+  "tests/xmlspec/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/xmlspec/Makefile" ;;
+  "tests/multiple/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/multiple/Makefile" ;;
+  "tests/xinclude/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/xinclude/Makefile" ;;
+  "tests/XSLTMark/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/XSLTMark/Makefile" ;;
+  "tests/docbook/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/docbook/Makefile" ;;
+  "tests/exslt/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/exslt/Makefile" ;;
+  "tests/exslt/common/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/exslt/common/Makefile" ;;
+  "tests/exslt/functions/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/exslt/functions/Makefile" ;;
+  "tests/exslt/math/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/exslt/math/Makefile" ;;
+  "tests/exslt/sets/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/exslt/sets/Makefile" ;;
+  "tests/exslt/strings/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/exslt/strings/Makefile" ;;
+  "tests/exslt/date/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/exslt/date/Makefile" ;;
+  "tests/exslt/dynamic/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/exslt/dynamic/Makefile" ;;
+  "tests/plugins/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/plugins/Makefile" ;;
+  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+  "xslt-config" ) CONFIG_FILES="$CONFIG_FILES xslt-config" ;;
+  "libxslt.spec" ) CONFIG_FILES="$CONFIG_FILES libxslt.spec" ;;
+  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./confstat$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s, at SHELL@,$SHELL,;t t
+s, at PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s, at PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s, at PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s, at PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s, at PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s, at PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s, at exec_prefix@,$exec_prefix,;t t
+s, at prefix@,$prefix,;t t
+s, at program_transform_name@,$program_transform_name,;t t
+s, at bindir@,$bindir,;t t
+s, at sbindir@,$sbindir,;t t
+s, at libexecdir@,$libexecdir,;t t
+s, at datadir@,$datadir,;t t
+s, at sysconfdir@,$sysconfdir,;t t
+s, at sharedstatedir@,$sharedstatedir,;t t
+s, at localstatedir@,$localstatedir,;t t
+s, at libdir@,$libdir,;t t
+s, at includedir@,$includedir,;t t
+s, at oldincludedir@,$oldincludedir,;t t
+s, at infodir@,$infodir,;t t
+s, at mandir@,$mandir,;t t
+s, at build_alias@,$build_alias,;t t
+s, at host_alias@,$host_alias,;t t
+s, at target_alias@,$target_alias,;t t
+s, at DEFS@,$DEFS,;t t
+s, at ECHO_C@,$ECHO_C,;t t
+s, at ECHO_N@,$ECHO_N,;t t
+s, at ECHO_T@,$ECHO_T,;t t
+s, at LIBS@,$LIBS,;t t
+s, at build@,$build,;t t
+s, at build_cpu@,$build_cpu,;t t
+s, at build_vendor@,$build_vendor,;t t
+s, at build_os@,$build_os,;t t
+s, at host@,$host,;t t
+s, at host_cpu@,$host_cpu,;t t
+s, at host_vendor@,$host_vendor,;t t
+s, at host_os@,$host_os,;t t
+s, at LIBXSLT_MAJOR_VERSION@,$LIBXSLT_MAJOR_VERSION,;t t
+s, at LIBXSLT_MINOR_VERSION@,$LIBXSLT_MINOR_VERSION,;t t
+s, at LIBXSLT_MICRO_VERSION@,$LIBXSLT_MICRO_VERSION,;t t
+s, at LIBXSLT_VERSION@,$LIBXSLT_VERSION,;t t
+s, at LIBXSLT_VERSION_INFO@,$LIBXSLT_VERSION_INFO,;t t
+s, at LIBXSLT_VERSION_NUMBER@,$LIBXSLT_VERSION_NUMBER,;t t
+s, at LIBXSLT_VERSION_EXTRA@,$LIBXSLT_VERSION_EXTRA,;t t
+s, at LIBXSLT_MAJOR_MINOR_VERSION@,$LIBXSLT_MAJOR_MINOR_VERSION,;t t
+s, at LIBEXSLT_MAJOR_VERSION@,$LIBEXSLT_MAJOR_VERSION,;t t
+s, at LIBEXSLT_MINOR_VERSION@,$LIBEXSLT_MINOR_VERSION,;t t
+s, at LIBEXSLT_MICRO_VERSION@,$LIBEXSLT_MICRO_VERSION,;t t
+s, at LIBEXSLT_VERSION@,$LIBEXSLT_VERSION,;t t
+s, at LIBEXSLT_VERSION_INFO@,$LIBEXSLT_VERSION_INFO,;t t
+s, at LIBEXSLT_VERSION_NUMBER@,$LIBEXSLT_VERSION_NUMBER,;t t
+s, at LIBEXSLT_VERSION_EXTRA@,$LIBEXSLT_VERSION_EXTRA,;t t
+s, at INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s, at INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s, at INSTALL_DATA@,$INSTALL_DATA,;t t
+s, at CYGPATH_W@,$CYGPATH_W,;t t
+s, at PACKAGE@,$PACKAGE,;t t
+s, at VERSION@,$VERSION,;t t
+s, at ACLOCAL@,$ACLOCAL,;t t
+s, at AUTOCONF@,$AUTOCONF,;t t
+s, at AUTOMAKE@,$AUTOMAKE,;t t
+s, at AUTOHEADER@,$AUTOHEADER,;t t
+s, at MAKEINFO@,$MAKEINFO,;t t
+s, at install_sh@,$install_sh,;t t
+s, at STRIP@,$STRIP,;t t
+s, at ac_ct_STRIP@,$ac_ct_STRIP,;t t
+s, at INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+s, at mkdir_p@,$mkdir_p,;t t
+s, at AWK@,$AWK,;t t
+s, at SET_MAKE@,$SET_MAKE,;t t
+s, at am__leading_dot@,$am__leading_dot,;t t
+s, at AMTAR@,$AMTAR,;t t
+s, at am__tar@,$am__tar,;t t
+s, at am__untar@,$am__untar,;t t
+s, at HTML_DIR@,$HTML_DIR,;t t
+s, at CC@,$CC,;t t
+s, at CFLAGS@,$CFLAGS,;t t
+s, at LDFLAGS@,$LDFLAGS,;t t
+s, at CPPFLAGS@,$CPPFLAGS,;t t
+s, at ac_ct_CC@,$ac_ct_CC,;t t
+s, at EXEEXT@,$EXEEXT,;t t
+s, at OBJEXT@,$OBJEXT,;t t
+s, at DEPDIR@,$DEPDIR,;t t
+s, at am__include@,$am__include,;t t
+s, at am__quote@,$am__quote,;t t
+s, at AMDEP_TRUE@,$AMDEP_TRUE,;t t
+s, at AMDEP_FALSE@,$AMDEP_FALSE,;t t
+s, at AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
+s, at CCDEPMODE@,$CCDEPMODE,;t t
+s, at am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
+s, at am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
+s, at CPP@,$CPP,;t t
+s, at RM@,$RM,;t t
+s, at MV@,$MV,;t t
+s, at TAR@,$TAR,;t t
+s, at EGREP@,$EGREP,;t t
+s, at LN_S@,$LN_S,;t t
+s, at ECHO@,$ECHO,;t t
+s, at AR@,$AR,;t t
+s, at ac_ct_AR@,$ac_ct_AR,;t t
+s, at RANLIB@,$RANLIB,;t t
+s, at ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s, at CXX@,$CXX,;t t
+s, at CXXFLAGS@,$CXXFLAGS,;t t
+s, at ac_ct_CXX@,$ac_ct_CXX,;t t
+s, at CXXDEPMODE@,$CXXDEPMODE,;t t
+s, at am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t
+s, at am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t
+s, at CXXCPP@,$CXXCPP,;t t
+s, at F77@,$F77,;t t
+s, at FFLAGS@,$FFLAGS,;t t
+s, at ac_ct_F77@,$ac_ct_F77,;t t
+s, at LIBTOOL@,$LIBTOOL,;t t
+s, at WITH_TRIO@,$WITH_TRIO,;t t
+s, at PERL@,$PERL,;t t
+s, at WITH_PERL_TRUE@,$WITH_PERL_TRUE,;t t
+s, at WITH_PERL_FALSE@,$WITH_PERL_FALSE,;t t
+s, at PYTHON@,$PYTHON,;t t
+s, at WITH_PYTHON_TRUE@,$WITH_PYTHON_TRUE,;t t
+s, at WITH_PYTHON_FALSE@,$WITH_PYTHON_FALSE,;t t
+s, at pythondir@,$pythondir,;t t
+s, at PYTHON_SUBDIR@,$PYTHON_SUBDIR,;t t
+s, at LIBGCRYPT_CONFIG@,$LIBGCRYPT_CONFIG,;t t
+s, at WITH_CRYPTO@,$WITH_CRYPTO,;t t
+s, at LIBGCRYPT_CFLAGS@,$LIBGCRYPT_CFLAGS,;t t
+s, at LIBGCRYPT_LIBS@,$LIBGCRYPT_LIBS,;t t
+s, at STATIC_BINARIES@,$STATIC_BINARIES,;t t
+s, at WITH_XSLT_DEBUG@,$WITH_XSLT_DEBUG,;t t
+s, at WITH_MEM_DEBUG@,$WITH_MEM_DEBUG,;t t
+s, at WITH_DEBUGGER@,$WITH_DEBUGGER,;t t
+s, at LIBXML_SRC@,$LIBXML_SRC,;t t
+s, at LIBXML_REQUIRED_VERSION@,$LIBXML_REQUIRED_VERSION,;t t
+s, at WITH_MODULES@,$WITH_MODULES,;t t
+s, at WITH_MODULES_TRUE@,$WITH_MODULES_TRUE,;t t
+s, at WITH_MODULES_FALSE@,$WITH_MODULES_FALSE,;t t
+s, at LIBXSLT_DEFAULT_PLUGINS_PATH@,$LIBXSLT_DEFAULT_PLUGINS_PATH,;t t
+s, at WIN32_EXTRA_LIBADD@,$WIN32_EXTRA_LIBADD,;t t
+s, at WIN32_EXTRA_LDFLAGS@,$WIN32_EXTRA_LDFLAGS,;t t
+s, at XSLTPROCDV@,$XSLTPROCDV,;t t
+s, at PYTHONSODV@,$PYTHONSODV,;t t
+s, at XML_CONFIG@,$XML_CONFIG,;t t
+s, at LIBXML_LIBS@,$LIBXML_LIBS,;t t
+s, at LIBXML_CFLAGS@,$LIBXML_CFLAGS,;t t
+s, at PYTHON_VERSION@,$PYTHON_VERSION,;t t
+s, at PYTHON_INCLUDES@,$PYTHON_INCLUDES,;t t
+s, at PYTHON_SITE_PACKAGES@,$PYTHON_SITE_PACKAGES,;t t
+s, at XSLT_LIBDIR@,$XSLT_LIBDIR,;t t
+s, at XSLT_INCLUDEDIR@,$XSLT_INCLUDEDIR,;t t
+s, at XSLT_LIBS@,$XSLT_LIBS,;t t
+s, at EXSLT_LIBDIR@,$EXSLT_LIBDIR,;t t
+s, at EXSLT_INCLUDEDIR@,$EXSLT_INCLUDEDIR,;t t
+s, at EXSLT_LIBS@,$EXSLT_LIBS,;t t
+s, at EXTRA_LIBS@,$EXTRA_LIBS,;t t
+s, at M_LIBS@,$M_LIBS,;t t
+s, at RELDATE@,$RELDATE,;t t
+s, at LIBOBJS@,$LIBOBJS,;t t
+s, at LTLIBOBJS@,$LTLIBOBJS,;t t
+CEOF
+
+_ACEOF
+
+  cat >>$CONFIG_STATUS <<\_ACEOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  esac
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+				     sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 echo "$f";;
+      *) # Relative
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s, at configure_input@,$configure_input,;t t
+s, at srcdir@,$ac_srcdir,;t t
+s, at abs_srcdir@,$ac_abs_srcdir,;t t
+s, at top_srcdir@,$ac_top_srcdir,;t t
+s, at abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s, at builddir@,$ac_builddir,;t t
+s, at abs_builddir@,$ac_abs_builddir,;t t
+s, at top_builddir@,$ac_top_builddir,;t t
+s, at abs_top_builddir@,$ac_abs_top_builddir,;t t
+s, at INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
+
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
+ac_dB='[	 ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 # Do quote $f, to prevent DOS paths from being IFS'd.
+	 echo "$f";;
+      *) # Relative
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  # Remove the trailing spaces.
+  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h.  The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status.  Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless.  Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo '  :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+  # Write a limited-size here document to $tmp/defines.sed.
+  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#define' lines.
+  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+  rm -f conftest.defines
+  mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo '  fi # grep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+  # Write a limited-size here document to $tmp/undefs.sed.
+  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#undef'
+  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+  rm -f conftest.undefs
+  mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated by configure.  */" >$tmp/config.h
+  else
+    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+  fi
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+      { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
+    fi
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
+  fi
+# Compute $ac_file's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $ac_file | $ac_file:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
+$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X$ac_file : 'X\(//\)[^/]' \| \
+	 X$ac_file : 'X\(//\)$' \| \
+	 X$ac_file : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X$ac_file |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`/stamp-h$_am_stamp_count
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_dest" : 'X\(//\)[^/]' \| \
+	 X"$ac_dest" : 'X\(//\)$' \| \
+	 X"$ac_dest" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+
+  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+  case $ac_dest in
+    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+    dirpart=`(dirname "$mf") 2>/dev/null ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$mf" : 'X\(//\)[^/]' \| \
+	 X"$mf" : 'X\(//\)$' \| \
+	 X"$mf" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  else
+    continue
+  fi
+  # Extract the definition of DEPDIR, am__include, and am__quote
+  # from the Makefile without running `make'.
+  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  am__include=`sed -n 's/^am__include = //p' < "$mf"`
+  test -z "am__include" && continue
+  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n 's/^U = //p' < "$mf"`
+  # Find all dependency output files, they are included files with
+  # $(DEPDIR) in their names.  We invoke sed twice because it is the
+  # simplest approach to changing $(DEPDIR) to its actual value in the
+  # expansion.
+  for file in `sed -n "
+    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`(dirname "$file") 2>/dev/null ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$file" : 'X\(//\)[^/]' \| \
+	 X"$file" : 'X\(//\)$' \| \
+	 X"$file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    { if $as_mkdir_p; then
+    mkdir -p $dirpart/$fdir
+  else
+    as_dir=$dirpart/$fdir
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
+echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+ ;;
+  esac
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+


Property changes on: packages/libxslt/branches/upstream/1.1.16/configure
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/configure.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/configure.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/configure.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,596 @@
+dnl Process this file with autoconf to produce a configuration script.
+AC_PREREQ(2.2)
+AC_INIT(libxslt/xslt.c)
+AM_CONFIG_HEADER(config.h)
+AC_CANONICAL_HOST
+
+dnl
+dnl libxslt is the main part of the package
+dnl libexslt is an extension
+dnl
+LIBXSLT_MAJOR_VERSION=1
+LIBXSLT_MINOR_VERSION=1
+LIBXSLT_MICRO_VERSION=16
+PACKAGE=libxslt
+LIBEXSLT_MAJOR_VERSION=0
+LIBEXSLT_MINOR_VERSION=8
+LIBEXSLT_MICRO_VERSION=13
+LIBXML_REQUIRED_VERSION=2.6.17 # if you need module support.
+
+
+LIBXSLT_VERSION=$LIBXSLT_MAJOR_VERSION.$LIBXSLT_MINOR_VERSION.$LIBXSLT_MICRO_VERSION
+LIBXSLT_VERSION_INFO=`expr $LIBXSLT_MAJOR_VERSION + $LIBXSLT_MINOR_VERSION`:$LIBXSLT_MICRO_VERSION:$LIBXSLT_MINOR_VERSION
+
+LIBXSLT_VERSION_NUMBER=`expr $LIBXSLT_MAJOR_VERSION \* 10000 + $LIBXSLT_MINOR_VERSION \* 100 + $LIBXSLT_MICRO_VERSION`
+LIBXSLT_MAJOR_MINOR_VERSION=$LIBXSLT_MAJOR_VERSION.$LIBXSLT_MINOR_VERSION
+
+if test -f CVS/Entries; then
+  extra=`grep ChangeLog CVS/Entries | grep -v LIBXSLT | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
+  echo extra=$extra
+  if test "$extra" != ""
+  then
+      LIBXSLT_VERSION_EXTRA="-CVS$extra"
+  fi
+fi
+
+AC_SUBST(LIBXSLT_MAJOR_VERSION)
+AC_SUBST(LIBXSLT_MINOR_VERSION)
+AC_SUBST(LIBXSLT_MICRO_VERSION)
+AC_SUBST(LIBXSLT_VERSION)
+AC_SUBST(LIBXSLT_VERSION_INFO)
+AC_SUBST(LIBXSLT_VERSION_NUMBER)
+AC_SUBST(LIBXSLT_VERSION_EXTRA)
+AC_SUBST(LIBXSLT_MAJOR_MINOR_VERSION)
+
+dnl
+dnl libexslt is an extension library
+dnl
+
+LIBEXSLT_VERSION=$LIBEXSLT_MAJOR_VERSION.$LIBEXSLT_MINOR_VERSION.$LIBEXSLT_MICRO_VERSION
+LIBEXSLT_VERSION_INFO=`expr $LIBEXSLT_MAJOR_VERSION + $LIBEXSLT_MINOR_VERSION`:$LIBEXSLT_MICRO_VERSION:$LIBEXSLT_MINOR_VERSION
+
+LIBEXSLT_VERSION_NUMBER=`expr $LIBEXSLT_MAJOR_VERSION \* 10000 + $LIBEXSLT_MINOR_VERSION \* 100 + $LIBEXSLT_MICRO_VERSION`
+
+if test -f CVS/Entries; then
+  LIBEXSLT_VERSION_EXTRA=-CVS`grep ChangeLog CVS/Entries | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
+fi
+
+AC_SUBST(LIBEXSLT_MAJOR_VERSION)
+AC_SUBST(LIBEXSLT_MINOR_VERSION)
+AC_SUBST(LIBEXSLT_MICRO_VERSION)
+AC_SUBST(LIBEXSLT_VERSION)
+AC_SUBST(LIBEXSLT_VERSION_INFO)
+AC_SUBST(LIBEXSLT_VERSION_NUMBER)
+AC_SUBST(LIBEXSLT_VERSION_EXTRA)
+
+VERSION=${LIBXSLT_VERSION}
+
+AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
+
+# AM_MAINTAINER_MODE
+
+AC_ARG_WITH(html-dir, [  --with-html-dir=PATH path to installed docs ])
+
+dnl
+dnl Specific dir for HTML output ?
+dnl
+
+if test "x$with_html_dir" = "x" ; then
+  HTML_DIR='$(prefix)/doc'
+else
+  HTML_DIR=$with_html_dir
+fi
+AC_SUBST(HTML_DIR)
+
+dnl
+dnl Check the environment
+dnl
+
+AC_ISC_POSIX
+AC_PROG_CC
+AC_PROG_INSTALL
+AC_PROG_CPP
+AC_PATH_PROG(RM, rm, /bin/rm)
+AC_PATH_PROG(MV, mv, /bin/mv)
+AC_PATH_PROG(TAR, tar, /bin/tar)
+
+AC_STDC_HEADERS
+AM_PROG_LIBTOOL
+
+dnl
+dnl Math detection
+dnl
+
+AC_CHECK_HEADERS(sys/types.h sys/time.h stdlib.h unistd.h string.h)
+AC_CHECK_HEADERS(ieeefp.h nan.h math.h fp_class.h float.h ansidecl.h)
+AC_CHECK_HEADERS(sys/timeb.h time.h sys/stat.h sys/select.h stdarg.h)
+AC_CHECK_FUNCS(stat _stat)
+AC_CHECK_FUNC(isnan, , AC_CHECK_LIB(m, isnan,
+  [M_LIBS="-lm"; AC_DEFINE(HAVE_ISNAN)]))
+
+AC_CHECK_FUNC(isinf, , AC_CHECK_LIB(m, isinf,
+  [M_LIBS="-lm"; AC_DEFINE(HAVE_ISINF)]))
+
+AC_CHECK_FUNC(pow, , AC_CHECK_LIB(m, pow,
+  [M_LIBS="-lm"; AC_DEFINE(HAVE_POW)]))
+
+AC_CHECK_FUNC(floor, , AC_CHECK_LIB(m, floor,
+  [M_LIBS="-lm"; AC_DEFINE(HAVE_FLOOR)]))
+
+AC_CHECK_FUNC(fabs, , AC_CHECK_LIB(m, fabs,
+  [M_LIBS="-lm"; AC_DEFINE(HAVE_FABS)]))
+AC_CHECK_FUNCS(gettimeofday)
+AC_CHECK_FUNCS(mktime localtime localtime_r asctime time gmtime_r ftime)
+
+dnl Checking the standard string functions availability
+AC_CHECK_FUNCS(printf sprintf fprintf snprintf vfprintf vsprintf vsnprintf sscanf,,
+               NEED_TRIO=1)
+
+dnl
+dnl Check for trio string functions
+dnl
+
+if test "${NEED_TRIO}" = "1" ; then
+    echo Reusing trio library for string functions
+    WITH_TRIO=1
+else    
+    WITH_TRIO=0
+fi
+AC_SUBST(WITH_TRIO)
+
+dnl
+dnl Some packages need to be checked against version numbers so we
+dnl define a function here for later use
+dnl
+AC_DEFUN([VERSION_TO_NUMBER],
+[`$1 | sed -e 's/libxml //' | awk 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 1000 + [$]2) * 1000 + [$]3;}'`])
+
+dnl
+dnl Perl is just needed for generating some data for XSLtmark
+dnl
+
+AC_CHECK_PROG(PERL, perl, perl, false)
+AM_CONDITIONAL(WITH_PERL, test "$PERL" != "false")
+
+dnl
+dnl check for python
+dnl
+
+PYTHON_VERSION=
+PYTHON_INCLUDES=
+PYTHON_SITE_PACKAGES=
+pythondir=
+AC_ARG_WITH(python, [  --with-python[=DIR]    Build Python bindings if found])
+if test "$with_python" != "no" ; then
+    if test -x "$with_python/bin/python"
+    then
+        echo Found python in $with_python/bin/python
+        PYTHON="$with_python/bin/python"
+    else
+	if test -x "$with_python"
+	then
+	    echo Found python in $with_python
+	    PYTHON="$with_python"
+	else
+            if test -x "$PYTHON"
+            then
+                echo Found python in environment PYTHON=$PYTHON
+                with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
+	    else
+	        AC_PATH_PROG(PYTHON, python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
+	    fi
+	fi
+    fi
+    if test "$PYTHON" != ""
+    then
+        PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
+	echo Found Python version $PYTHON_VERSION
+	LIBXML2_PYTHON=`$PYTHON -c "try : import libxml2 ; print 1
+except: print 0"`
+	if test "$LIBXML2_PYTHON" = "1"
+	then
+	    echo Found libxml2-python module
+	else
+	    echo Warning: Missing libxml2-python
+	fi
+    fi
+    if test "$PYTHON_VERSION" != ""
+    then
+	if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \
+	   -d $with_python/lib/python$PYTHON_VERSION/site-packages
+	then
+	    PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
+	    PYTHON_SITE_PACKAGES='$(libdir)/lib/python$(PYTHON_VERSION)/site-packages'
+	else
+	    if test -r $prefix/include/python$PYTHON_VERSION/Python.h
+	    then
+	        PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
+		PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
+	    else
+		if test -r /usr/include/python$PYTHON_VERSION/Python.h
+		then
+		    PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
+		    PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
+		else
+		    echo could not find python$PYTHON_VERSION/Python.h
+		fi
+	    fi
+	    if test ! -d "$PYTHON_SITE_PACKAGES"
+	    then
+		    PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib()"`
+	    fi
+	fi
+    fi
+    if test "$with_python" != ""
+    then
+        pythondir=$(PYTHON_SITE_PACKAGES)
+    else
+        pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
+    fi
+fi
+AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "")
+if test "$PYTHON_INCLUDES" != ""
+then
+    PYTHON_SUBDIR=python
+else
+    PYTHON_SUBDIR=
+fi
+AC_SUBST(pythondir)
+AC_SUBST(PYTHON_SUBDIR)
+
+AC_ARG_WITH(crypto, [  --with-crypto           Add crypto support to exslt (on)])
+WITH_CRYPTO=0
+if test "$with_crypto" = "no" ; then
+    echo Disabling crypto support
+    LIBGCRYPT_CFLAGS=""
+    LIBGCRYPT_LIBS=""
+else
+    AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
+    if test "$LIBGCRYPT_CONFIG" != "no" ; then
+      LIBGCRYPT_VERSION=`$LIBGCRYPT_CONFIG --version`
+      if test VERSION_TO_NUMBER(echo $LIBGCRYPT_VERSION) -lt VERSION_TO_NUMBER(echo "1.1.42")
+      then
+        LIBGCRYPT_CFLAGS=""
+        LIBGCRYPT_LIBS=""
+        echo gcrypt library version < 1.1.42 - Crypto extensions will not be available.
+      else
+        LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --cflags`
+        LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --libs`
+        AC_DEFINE(HAVE_GCRYPT, 1, [Define if gcrypt library is available.])
+        echo Crypto extensions will be available.
+		WITH_CRYPTO=1
+      fi
+    else
+      LIBGCRYPT_CFLAGS=""
+      LIBGCRYPT_LIBS=""
+      echo Crypto extensions will not be available. Install libgcrypt and reconfigure to make available.
+    fi
+fi
+AC_SUBST(WITH_CRYPTO)
+AC_SUBST(LIBGCRYPT_CFLAGS)
+AC_SUBST(LIBGCRYPT_LIBS)
+
+dnl
+dnl Debug for DV (-Wunreachable-code)
+dnl
+if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XSLT" ]] || \
+   [[ "${LOGNAME}" = "bill" -a "`pwd`" = "/home/bill/gnomecvs/xsltest" ]]
+   then
+    if test "${with_mem_debug}" = "" ;
+    then
+	with_mem_debug="yes"
+    fi
+    CFLAGS="-Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline "
+    if test "`uname -i`" != "x86_64" ;
+    then
+	STATIC_BINARIES="-static"
+    else
+        STATIC_BINARIES=
+    fi
+    if test "$LOGNAME" = "veillard"
+    then
+        LIBXML_SRC="/u/veillard/XML"
+	EXTRA_LIBS="$EXTRA_LIBS -ldl"
+    fi
+else
+    STATIC_BINARIES=
+fi
+AC_SUBST(STATIC_BINARIES)
+
+AC_ARG_WITH(debug, [  --with-debug            Add the debugging code (on)])
+if test "$with_debug" = "no" ; then
+    echo Disabling debug support
+    WITH_XSLT_DEBUG=0
+else    
+    WITH_XSLT_DEBUG=1
+fi
+AC_SUBST(WITH_XSLT_DEBUG)
+
+AC_ARG_WITH(mem_debug, [  --with-mem-debug        Add the memory debugging module (off)])
+if test "$with_mem_debug" = "yes" ; then
+    echo Enabling memory debug support
+    WITH_MEM_DEBUG=1
+else    
+    WITH_MEM_DEBUG=0
+fi
+AC_SUBST(WITH_MEM_DEBUG)
+
+dnl 
+dnl Is debugger support requested
+dnl
+AC_ARG_WITH(with_debugger, [  --with-debugger        Add the debugging support (on)])
+if test "$with_debugger" = "no" ; then
+    echo Disabling debugger
+    WITH_DEBUGGER=0
+else
+    echo Enabling debugger
+    WITH_DEBUGGER=1
+    AC_DEFINE(WITH_DEBUGGER)
+fi
+AC_SUBST(WITH_DEBUGGER)
+
+dnl
+dnl The following new parameters were added to offer
+dnl the ability to specify the location of the libxml
+dnl library during linking and compilation.
+dnl
+dnl original work - Mathieu Lacage 30/03/2000
+dnl some tweaking - David Härdeman 30/10/2001
+dnl
+
+LIBXML_CONFIG_PREFIX=""
+LIBXML_SRC=""
+
+AC_ARG_WITH(libxml-prefix,
+        [  --with-libxml-prefix=[PFX]		Specify location of libxml config],
+	LIBXML_CONFIG_PREFIX=$withval
+)
+        
+AC_ARG_WITH(libxml-include-prefix,
+        [  --with-libxml-include-prefix=[PFX]	Specify location of libxml headers],
+        LIBXML_CFLAGS="-I$withval"
+)
+
+AC_ARG_WITH(libxml-libs-prefix,
+        [  --with-libxml-libs-prefix=[PFX]	Specify location of libxml libs],
+        LIBXML_LIBS="-L$withval"
+)
+
+AC_ARG_WITH(libxml-src,
+	[  --with-libxml-src=[DIR]              For libxml thats not installed yet (sets all three above)],
+	LIBXML_SRC="$withval"
+)
+AC_SUBST(LIBXML_SRC)
+
+dnl
+dnl where is xml2-config
+dnl
+
+AC_SUBST(LIBXML_REQUIRED_VERSION)
+AC_MSG_CHECKING(for libxml libraries >= $LIBXML_REQUIRED_VERSION) 
+if test "x$LIBXML_CONFIG_PREFIX" != "x"
+then
+	XML_CONFIG=${LIBXML_CONFIG_PREFIX}/bin/xml2-config
+else
+	XML_CONFIG=xml2-config
+fi
+
+dnl
+dnl imported from libxml2, c.f. #77827 
+dnl
+if test "${GCC}" != "yes" ; then
+    case "${host}" in
+          *-*-hpux* )
+	       CFLAGS="${CFLAGS} -Wp,-H30000"
+	       ;;
+          *-dec-osf* )
+               CFLAGS="${CFLAGS} -ieee"
+               ;;
+    esac
+else
+    CFLAGS="${CFLAGS} -Wall"
+    case "${host}" in
+          alpha*-*-linux* )
+	       CFLAGS="${CFLAGS} -mieee"
+	       ;;
+	  alpha*-*-osf* )
+	       CFLAGS="${CFLAGS} -mieee"
+	       ;;
+    esac
+fi
+
+dnl
+dnl Override other variables if LIBXML_SRC is set
+dnl
+
+if test "x$LIBXML_SRC" != "x"
+then
+	CWD=`pwd`
+	if cd $LIBXML_SRC
+	then
+		SRC_DIR=`pwd`
+		XML_CONFIG=${SRC_DIR}/xml2-config
+		LIBXML_CFLAGS="-I${SRC_DIR}/include"
+		LIBXML_LIBS="-L${SRC_DIR}"
+		cd $CWD
+	else
+		AC_MSG_ERROR([libxml source dir not found (${LIBXML_SRC}), typo?])
+	fi
+fi
+
+dnl
+dnl make sure xml2-config is executable,
+dnl test version and init our variables
+dnl
+
+if ${XML_CONFIG} --libs print > /dev/null 2>&1
+then
+	XMLVERS=`$XML_CONFIG --version`
+	if test VERSION_TO_NUMBER(echo $XMLVERS) -ge VERSION_TO_NUMBER(echo $LIBXML_REQUIRED_VERSION)
+	then
+		LIBXML_LIBS="$LIBXML_LIBS `$XML_CONFIG --libs`"
+		LIBXML_CFLAGS="$LIBXML_CFLAGS `$XML_CONFIG --cflags`"
+		AC_MSG_RESULT($XMLVERS found)
+	else
+		AC_MSG_ERROR(Version $XMLVERS found. You need at least libxml2 $LIBXML_REQUIRED_VERSION for this version of libxslt)
+	fi
+else
+	AC_MSG_ERROR([Could not find libxml2 anywhere, check ftp://xmlsoft.org/.])
+fi
+
+
+AC_SUBST(CFLAGS)
+AC_SUBST(CPPFLAGS)
+AC_SUBST(LDFLAGS)
+
+AC_ARG_WITH(plugins,
+[  --with-plugins          Add plugin extension support (on)])
+if test "$with_plugins" = ""
+then
+    with_plugins=yes
+fi
+
+AC_MSG_CHECKING([whether shared libraries will be built (required for plugins)])
+if test "$enable_shared" = "no" -a "$with_plugins" = "yes"; then
+	 AC_MSG_RESULT(no)
+	 AC_MSG_WARN([Disabling plugin support.])
+	 AC_MSG_WARN([Plugins require that shared libraries be built.])
+	 with_plugins=no
+else
+	 AC_MSG_RESULT(yes)
+fi
+
+if test "$with_plugins" = "yes" ; then
+  AC_MSG_CHECKING([libxml2 module support])
+  WITH_MODULES="`$XML_CONFIG --modules`"
+  if test "${WITH_MODULES}" = "1"; then
+    AC_MSG_RESULT(yes)
+  else
+    AC_MSG_RESULT(no)
+    WITH_MODULES="0"
+  fi
+else
+  WITH_MODULES="0"
+fi
+
+AC_SUBST(WITH_MODULES)
+AM_CONDITIONAL(WITH_MODULES, test "$WITH_MODULES" == "1")
+
+dnl
+dnl setup default module path
+dnl
+module_prefix=$prefix
+test "x$module_prefix" = xNONE && module_prefix=$ac_default_prefix
+LIBXSLT_DEFAULT_PLUGINS_PATH="$module_prefix/lib/libxslt-plugins"
+AC_SUBST(LIBXSLT_DEFAULT_PLUGINS_PATH)
+
+dnl
+dnl In build tree I use a static version with memory debug enabled
+dnl
+if test "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XSLT" ; then
+    if test "`uname -i`" != "x86_64" -a -e $HOME/XML/.libs/libxml2.a ;
+    then
+	LIBXML_LIBS="$HOME/XML/.libs/libxml2.a -lpthread -lz"
+    fi
+    DV_LINK="1"
+    XSLTPROCDV="xsltproc.dv"
+    INSTALLED_XSLT_LIB=""
+    LIBXML_SRC="$HOME/XML/"
+fi
+
+WIN32_EXTRA_LIBADD=
+WIN32_EXTRA_LDFLAGS=
+case "$host" in
+ *-*-mingw*)
+ WIN32_EXTRA_LIBADD="-lwsock32"
+ WIN32_EXTRA_LDFLAGS="-no-undefined"
+ AC_DEFINE([_WINSOCKAPI_],1,[Using the Win32 Socket implementation])
+ AC_DEFINE([snprintf],[_snprintf],[Win32 Std C name mangling work-around])
+ AC_DEFINE([vsnprintf],[_vsnprintf],[Win32 Std C name mangling work-around])
+ ;;
+esac
+AC_SUBST(WIN32_EXTRA_LIBADD)
+AC_SUBST(WIN32_EXTRA_LDFLAGS)
+
+
+AC_SUBST(XSLTPROCDV)
+AC_SUBST(PYTHONSODV)
+AC_SUBST(XML_CONFIG)
+AC_SUBST(LIBXML_LIBS)
+AC_SUBST(LIBXML_CFLAGS)
+AC_SUBST(PYTHON)
+AC_SUBST(PYTHON_VERSION)
+AC_SUBST(PYTHON_INCLUDES)
+AC_SUBST(PYTHON_SITE_PACKAGES)
+
+XSLT_LIBDIR='-L${libdir}'
+XSLT_INCLUDEDIR='-I${includedir}'
+XSLT_LIBS="-lxslt $LIBXML_LIBS $M_LIBS"
+AC_SUBST(XSLT_LIBDIR)
+AC_SUBST(XSLT_INCLUDEDIR)
+AC_SUBST(XSLT_LIBS)
+
+EXSLT_LIBDIR='-L${libdir}'
+EXSLT_INCLUDEDIR='-I${includedir}'
+EXSLT_LIBS="-lexslt $XSLT_LIBS $LIBGCRYPT_LIBS"
+AC_SUBST(EXSLT_LIBDIR)
+AC_SUBST(EXSLT_INCLUDEDIR)
+AC_SUBST(EXSLT_LIBS)
+
+EXTRA_LIBS="$EXTRA_LIBS $LIBXML_LIBS $M_LIBS"
+AC_SUBST(EXTRA_LIBS)
+
+AC_SUBST(M_LIBS)
+
+dnl for the spec file
+RELDATE=`date +'%a %b %e %Y'`
+AC_SUBST(RELDATE)
+
+( cd $srcdir
+rm -f COPYING.LIB COPYING
+$LN_S Copyright COPYING
+)
+
+
+AC_OUTPUT([
+Makefile
+libxslt.pc
+libexslt.pc
+libxslt/Makefile
+libxslt/xsltconfig.h
+libxslt/xsltwin32config.h
+libexslt/Makefile
+libexslt/exsltconfig.h
+xsltproc/Makefile
+python/Makefile
+python/tests/Makefile
+tests/Makefile
+tests/docs/Makefile
+tests/REC1/Makefile
+tests/REC2/Makefile
+tests/REC/Makefile
+tests/general/Makefile
+tests/reports/Makefile
+tests/extensions/Makefile
+tests/namespaces/Makefile
+tests/keys/Makefile
+tests/numbers/Makefile
+tests/documents/Makefile
+tests/xmlspec/Makefile
+tests/multiple/Makefile
+tests/xinclude/Makefile
+tests/XSLTMark/Makefile
+tests/docbook/Makefile
+tests/exslt/Makefile
+tests/exslt/common/Makefile
+tests/exslt/functions/Makefile
+tests/exslt/math/Makefile
+tests/exslt/sets/Makefile
+tests/exslt/strings/Makefile
+tests/exslt/date/Makefile
+tests/exslt/dynamic/Makefile
+tests/plugins/Makefile
+doc/Makefile
+xslt-config
+libxslt.spec
+])

Added: packages/libxslt/branches/upstream/1.1.16/depcomp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/depcomp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/depcomp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,423 @@
+#! /bin/sh
+
+# depcomp - compile a program generating dependencies as side-effects
+# Copyright 1999, 2000 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva at dcc.unicamp.br>.
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+# `libtool' can also be set to `yes' or `no'.
+
+if test -z "$depfile"; then
+   base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
+   dir=`echo "$object" | sed 's,/.*$,/,'`
+   if test "$dir" = "$object"; then
+      dir=
+   fi
+   # FIXME: should be _deps on DOS.
+   depfile="$dir.deps/$base"
+fi
+
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+   # This is just like dashmstdout with a different argument.
+   dashmflag=-xM
+   depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like `#:fec' to the end of the
+    # dependency line.
+    tr ' ' '
+' < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+    tr '
+' ' ' >> $depfile
+    echo >> $depfile
+
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' '
+' < "$tmpdepfile" \
+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+   >> $depfile
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  This file always lives in the current directory.
+  # Also, the AIX compiler puts `$object:' at the start of each line;
+  # $object doesn't have directory information.
+  stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
+  tmpdepfile="$stripped.u"
+  outname="$stripped.o"
+  if test "$libtool" = yes; then
+    "$@" -Wc,-M
+  else
+    "$@" -M
+  fi
+
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form `foo.o: dependent.h'.
+    # Do two passes, one to just change these to
+    # `$object: dependent.h' and one to simply `dependent.h:'.
+    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
+    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+tru64)
+   # The Tru64 compiler uses -MD to generate dependencies as a side
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+   # dependencies in `foo.d' instead, so we check for that too.
+   # Subdirectories are respected.
+   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+   test "x$dir" = "x$object" && dir=
+   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+   if test "$libtool" = yes; then
+      tmpdepfile1="$dir.libs/$base.lo.d"
+      tmpdepfile2="$dir.libs/$base.d"
+      "$@" -Wc,-MD
+   else
+      tmpdepfile1="$dir$base.o.d"
+      tmpdepfile2="$dir$base.d"
+      "$@" -MD
+   fi
+
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2"
+      exit $stat
+   fi
+
+   if test -f "$tmpdepfile1"; then
+      tmpdepfile="$tmpdepfile1"
+   else
+      tmpdepfile="$tmpdepfile2"
+   fi
+   if test -f "$tmpdepfile"; then
+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+      # That's a space and a tab in the [].
+      sed -e 's,^.*\.[a-z]*:[ 	]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+   else
+      echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.  We will use -o /dev/null later,
+  # however we can't do the remplacement now because
+  # `-o $object' might simply not be used
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  "$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ 	]*:'"$object"'\: :' > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # X makedepend
+  shift
+  cleared=no
+  for arg in "$@"; do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    -*)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix="`echo $object | sed 's/^.*\././'`"
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E |
+    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+    sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the proprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  "$@" || exit $?
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+	set fnord "$@"
+	shift
+	shift
+	;;
+    *)
+	set fnord "$@" "$arg"
+	shift
+	shift
+	;;
+    esac
+  done
+  "$@" -E |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  echo "	" >> "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0


Property changes on: packages/libxslt/branches/upstream/1.1.16/depcomp
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/doc/API.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/API.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/API.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>The programming API</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>The programming API</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>Okay this section is clearly incomplete. But integrating libxslt into your
+application should be relatively easy. First check the few steps described
+below, then for more detailed informations, look at the<a href="html/libxslt-lib.html"> generated pages</a> for the API and the source
+of libxslt/xsltproc.c  and the  <a href="tutorial/libxslttutorial.html">tutorial</a>.</p><p>Basically doing an XSLT transformation can be done in a few steps:</p><ol><li>configure the parser for XSLT:
+    <p>xmlSubstituteEntitiesDefault(1);</p>
+    <p>xmlLoadExtDtdDefaultValue = 1;</p>
+  </li>
+  <li>parse the stylesheet with xsltParseStylesheetFile()</li>
+  <li>parse the document with xmlParseFile()</li>
+  <li>apply the stylesheet using xsltApplyStylesheet()</li>
+  <li>save the result using xsltSaveResultToFile() if needed set
+    xmlIndentTreeOutput to 1</li>
+</ol><p>Steps 2,3, and 5 will probably need to be changed depending on you
+processing needs and environment for example if reading/saving from/to
+memory, or if you want to apply XInclude processing to the stylesheet or
+input documents.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIchunk0.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIchunk0.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIchunk0.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>API Alphabetic Index A-P for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>API Alphabetic Index A-P for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><h2>Letter A:</h2><dl><dt>API</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>AVT</dt><dd><a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
+</dd><dt>Add</dt><dd><a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+</dd><dt>Allocate</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+</dd><dt>Apache</dt><dd><a href="html/libxslt-extra.html#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a><br />
+</dd><dt>Apply</dt><dd><a href="html/libxslt-attributes.html#xsltApplyAttributeSet">xsltApplyAttributeSet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>Attribute</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd></dl><h2>Letter C:</h2><dl><dt>CDTATA</dt><dd><a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+</dd><dt>Change</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+</dd><dt>Char</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>Characters:</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>Check</dt><dd><a href="html/libxslt-xsltutils.html#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a><br />
+<a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+<a href="html/libxslt-security.html#xsltCheckRead">xsltCheckRead</a><br />
+<a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltIsBlank">xsltIsBlank</a><br />
+</dd><dt>Checks</dt><dd><a href="html/libxslt-xsltutils.html#IS_XSLT_ELEM">IS_XSLT_ELEM</a><br />
+<a href="html/libxslt-xsltutils.html#IS_XSLT_NAME">IS_XSLT_NAME</a><br />
+<a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+</dd><dt>Clark</dt><dd><a href="html/libxslt-extra.html#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a><br />
+</dd><dt>Clean-up</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>Cleanup</dt><dd><a href="html/libxslt-pattern.html#xsltCleanupTemplates">xsltCleanupTemplates</a><br />
+</dd><dt>Compile</dt><dd><a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</dd><dt>Computes</dt><dd><a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+</dd><dt>Context</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>Control</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TRACE">XSLT_TRACE</a><br />
+</dd><dt>Convert</dt><dd><a href="html/libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a><br />
+</dd><dt>Create</dt><dd><a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCreateRVT">xsltCreateRVT</a><br />
+<a href="html/libxslt-security.html#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+</dd><dt>Creates</dt><dd><a href="html/libxslt-extensions.html#xsltNewElemPreComp">xsltNewElemPreComp</a><br />
+</dd></dl><h2>Letter D:</h2><dl><dt>DTD</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>Deallocates</dt><dd><a href="html/libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a><br />
+</dd><dt>Debugging</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>DecimalFormat</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>Display</dt><dd><a href="html/libxslt-xsltutils.html#xsltPrintErrorContext">xsltPrintErrorContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>Drop</dt><dd><a href="html/libxslt-xsltutils.html#xslDropCall">xslDropCall</a><br />
+</dd><dt>Dumps</dt><dd><a href="html/libxslt-extensions.html#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a><br />
+</dd></dl><h2>Letter E:</h2><dl><dt>EXSLT</dt><dd><a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+</dd><dt>Each</dt><dd><a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+</dd><dt>Element</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>Errors</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>Evaluate</dt><dd><a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+</dd><dt>Extensions</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd></dl><h2>Letter F:</h2><dl><dt>FILE</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-extensions.html#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>FIXED</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>Find</dt><dd><a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+</dd><dt>Finds</dt><dd><a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+</dd><dt>Flag</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+</dd><dt>For</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+</dd><dt>Free</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
+<a href="html/libxslt-attributes.html#xsltFreeAttributeSetsHashes">xsltFreeAttributeSetsHashes</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeCompMatchList">xsltFreeCompMatchList</a><br />
+<a href="html/libxslt-extensions.html#xsltFreeCtxtExts">xsltFreeCtxtExts</a><br />
+<a href="html/libxslt-keys.html#xsltFreeDocumentKeys">xsltFreeDocumentKeys</a><br />
+<a href="html/libxslt-documents.html#xsltFreeDocuments">xsltFreeDocuments</a><br />
+<a href="html/libxslt-extensions.html#xsltFreeExts">xsltFreeExts</a><br />
+<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
+<a href="html/libxslt-keys.html#xsltFreeKeys">xsltFreeKeys</a><br />
+<a href="html/libxslt-namespaces.html#xsltFreeNamespaceAliasHashes">xsltFreeNamespaceAliasHashes</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeRVTs">xsltFreeRVTs</a><br />
+<a href="html/libxslt-security.html#xsltFreeSecurityPrefs">xsltFreeSecurityPrefs</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStackElemList">xsltFreeStackElemList</a><br />
+<a href="html/libxslt-documents.html#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a><br />
+<a href="html/libxslt-preproc.html#xsltFreeStylePreComps">xsltFreeStylePreComps</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStylesheet">xsltFreeStylesheet</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeTemplateHashes">xsltFreeTemplateHashes</a><br />
+<a href="html/libxslt-transform.html#xsltFreeTransformContext">xsltFreeTransformContext</a><br />
+</dd><dt>Function</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</dd></dl><h2>Letter G:</h2><dl><dt>General</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>Get</dt><dd><a href="html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetDebuggerStatus">xsltGetDebuggerStatus</a><br />
+<a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+</dd><dt>Global</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd></dl><h2>Letter H:</h2><dl><dt>Handle</dt><dd><a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+</dd></dl><h2>Letter I:</h2><dl><dt>IObuf</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>ISO</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>Implement</dt><dd><a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
+<a href="html/libxslt-functions.html#xsltElementAvailableFunction">xsltElementAvailableFunction</a><br />
+<a href="html/libxslt-functions.html#xsltFormatNumberFunction">xsltFormatNumberFunction</a><br />
+<a href="html/libxslt-functions.html#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a><br />
+<a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
+<a href="html/libxslt-functions.html#xsltGenerateIdFunction">xsltGenerateIdFunction</a><br />
+<a href="html/libxslt-functions.html#xsltKeyFunction">xsltKeyFunction</a><br />
+<a href="html/libxslt-functions.html#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a><br />
+<a href="html/libxslt-functions.html#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a><br />
+</dd><dt>Initialize</dt><dd><a href="html/libxslt-extensions.html#xsltInitCtxtExts">xsltInitCtxtExts</a><br />
+</dd><dt>Initializes</dt><dd><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+</dd></dl><h2>Letter J:</h2><dl><dt>JDK</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>James</dt><dd><a href="html/libxslt-extra.html#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a><br />
+</dd></dl><h2>Letter K:</h2><dl><dt>Kay</dt><dd><a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
+</dd><dt>Key</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd></dl><h2>Letter L:</h2><dl><dt>Length</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</dd><dt>Literal</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>Load</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseStylesheetFile">xsltParseStylesheetFile</a><br />
+</dd><dt>LocationPathPattern</dt><dd><a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+</dd><dt>Looks</dt><dd><a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a><br />
+</dd><dt>Lookup</dt><dd><a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+<a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+</dd></dl><h2>Letter M:</h2><dl><dt>MUST</dt><dd><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+</dd><dt>Macro</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+<a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TODO">XSLT_TODO</a><br />
+</dd><dt>Max</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_MAX_SORT">XSLT_MAX_SORT</a><br />
+</dd><dt>May</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDecimalFormat">_xsltDecimalFormat</a><br />
+</dd><dt>Meaning</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>Memory</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</dd><dt>Michael</dt><dd><a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
+</dd></dl><h2>Letter N:</h2><dl><dt>NCName</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>NOTE:</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>Name</dt><dd><a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+</dd><dt>Namespace</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>Namespaces</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>Norm</dt><dd><a href="html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a><br />
+</dd><dt>Not-a-number</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDecimalFormat">_xsltDecimalFormat</a><br />
+</dd><dt>Notation:</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>Number</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd></dl><h2>Letter O:</h2><dl><dt>One</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>Otherwise</dt><dd><a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+</dd><dt>Output</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd></dl><h2>Letter P:</h2><dl><dt>Parser</dt><dd><a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
+<a href="html/libxslt-functions.html#xsltElementAvailableFunction">xsltElementAvailableFunction</a><br />
+<a href="html/libxslt-functions.html#xsltFormatNumberFunction">xsltFormatNumberFunction</a><br />
+<a href="html/libxslt-functions.html#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a><br />
+<a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
+<a href="html/libxslt-functions.html#xsltGenerateIdFunction">xsltGenerateIdFunction</a><br />
+<a href="html/libxslt-functions.html#xsltKeyFunction">xsltKeyFunction</a><br />
+<a href="html/libxslt-functions.html#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a><br />
+<a href="html/libxslt-functions.html#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a><br />
+</dd><dt>Pattern</dt><dd><a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+</dd><dt>Per</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>Pre</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+</dd><dt>Precompile</dt><dd><a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+</dd><dt>Precompute</dt><dd><a href="html/libxslt-preproc.html#xsltStylePreCompute">xsltStylePreCompute</a><br />
+</dd><dt>Precomputed</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>Precomputes</dt><dd><a href="html/libxslt-extensions.html#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a><br />
+</dd><dt>Process</dt><dd><a href="html/libxslt-transform.html#xsltApplyImports">xsltApplyImports</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltApplyTemplates">xsltApplyTemplates</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-transform.html#xsltAttribute">xsltAttribute</a><br />
+<a href="html/libxslt-transform.html#xsltCallTemplate">xsltCallTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltChoose">xsltChoose</a><br />
+<a href="html/libxslt-transform.html#xsltComment">xsltComment</a><br />
+<a href="html/libxslt-transform.html#xsltCopy">xsltCopy</a><br />
+<a href="html/libxslt-transform.html#xsltCopyOf">xsltCopyOf</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+<a href="html/libxslt-transform.html#xsltElement">xsltElement</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
+<a href="html/libxslt-transform.html#xsltIf">xsltIf</a><br />
+<a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+<a href="html/libxslt-transform.html#xsltNumber">xsltNumber</a><br />
+<a href="html/libxslt-transform.html#xsltProcessingInstruction">xsltProcessingInstruction</a><br />
+<a href="html/libxslt-templates.html#xsltTemplateProcess">xsltTemplateProcess</a><br />
+<a href="html/libxslt-transform.html#xsltText">xsltText</a><br />
+<a href="html/libxslt-transform.html#xsltValueOf">xsltValueOf</a><br />
+</dd><dt>Profiling</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+</dd><dt>Provides</dt><dd><a href="html/libxslt-transform.html#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIchunk1.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIchunk1.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIchunk1.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>API Alphabetic Index Q-a for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>API Alphabetic Index Q-a for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><h2>Letter Q:</h2><dl><dt>QName</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>QNames</dt><dd><a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd></dl><h2>Letter R:</h2><dl><dt>RVT</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>RVTs</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>Read</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+</dd><dt>Register</dt><dd><a href="html/libxslt-pattern.html#xsltAddTemplate">xsltAddTemplate</a><br />
+<a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModule">xsltRegisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
+</dd><dt>Registering</dt><dd><a href="html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a><br />
+<a href="html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a><br />
+</dd><dt>Registers</dt><dd><a href="html/libxslt-transform.html#xsltRegisterAllElement">xsltRegisterAllElement</a><br />
+<a href="html/libxslt-extra.html#xsltRegisterAllExtras">xsltRegisterAllExtras</a><br />
+<a href="html/libxslt-functions.html#xsltRegisterAllFunctions">xsltRegisterAllFunctions</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a><br />
+<a href="html/libxslt-extra.html#xsltRegisterExtras">xsltRegisterExtras</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterTestModule">xsltRegisterTestModule</a><br />
+</dd><dt>Result</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>Retrieve</dt><dd><a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+</dd></dl><h2>Letter S:</h2><dl><dt>SAX</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>SAXON</dt><dd><a href="html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a><br />
+</dd><dt>Sampling</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TIMESTAMP_TICS_PER_SEC">XSLT_TIMESTAMP_TICS_PER_SEC</a><br />
+</dd><dt>Save</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</dd><dt>Saxon</dt><dd><a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
+</dd><dt>Scaling</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+</dd><dt>Search</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+</dd><dt>Set</dt><dd><a href="html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+</dd><dt>Should</dt><dd><a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+</dd><dt>Shutdown</dt><dd><a href="html/libxslt-extensions.html#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownExts">xsltShutdownExts</a><br />
+</dd><dt>Signature</dt><dd><a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>Similar</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>Size</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>Special</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>Specific</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a><br />
+</dd><dt>Speed</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>Split</dt><dd><a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>Strip</dt><dd><a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+</dd><dt>Structure:</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>Stylesheet</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a><br />
+</dd><dt>Symbol</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd></dl><h2>Letter T:</h2><dl><dt>Template</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>Test</dt><dd><a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+</dd><dt>TransformContext</dt><dd><a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+</dd><dt>Tree</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>Try</dt><dd><a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadDocument">xsltLoadDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+</dd></dl><h2>Letter U:</h2><dl><dt>URL</dt><dd><a href="html/libxslt-xslt.html#XSLT_DEFAULT_URL">XSLT_DEFAULT_URL</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetFile">xsltParseStylesheetFile</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a><br />
+</dd><dt>UTF-8</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>UTF8</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>Unregister</dt><dd><a href="html/libxslt-xslt.html#xsltCleanupGlobals">xsltCleanupGlobals</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModule">xsltUnregisterExtModule</a><br />
+</dd><dt>Unregisters</dt><dd><a href="html/libxslt-extensions.html#xsltUnregisterExtModuleElement">xsltUnregisterExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleFunction">xsltUnregisterExtModuleFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a><br />
+</dd><dt>Update</dt><dd><a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</dd><dt>Used</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDecimalFormat">_xsltDecimalFormat</a><br />
+<a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTimestamp">xsltTimestamp</a><br />
+</dd><dt>User</dt><dd><a href="html/libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a><br />
+</dd></dl><h2>Letter V:</h2><dl><dt>Value</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>Variable</dt><dd><a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+</dd></dl><h2>Letter W:</h2><dl><dt>WITH_XSLT_DEBUG_BREAKPOINTS</dt><dd><a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+</dd><dt>Will</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+</dd></dl><h2>Letter X:</h2><dl><dt>XALAN</dt><dd><a href="html/libxslt-extra.html#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a><br />
+</dd><dt>XInclude</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-transform.html#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+</dd><dt>XML</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</dd><dt>XML_CAST_FPTR</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>XSLT-1</dt><dd><a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+</dd><dt>XSLT_GET_IMPORT_PTR</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd></dl><h2>Letter a:</h2><dl><dt>absent</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>accelerators</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltNumberData">_xsltNumberData</a><br />
+</dd><dt>access</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a><br />
+</dd><dt>according</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>accordingly</dt><dd><a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+</dd><dt>activated</dt><dd><a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+</dd><dt>actual</dt><dd><a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+</dd><dt>actually</dt><dd><a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</dd><dt>add</dt><dd><a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-variables.html#xsltAddStackElemList">xsltAddStackElemList</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+</dd><dt>added</dt><dd><a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+</dd><dt>adding</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+</dd><dt>address</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+</dd><dt>after</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>alias</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>aliases</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-namespaces.html#xsltFreeNamespaceAliasHashes">xsltFreeNamespaceAliasHashes</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+</dd><dt>aliasing</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>all</dt><dd><a href="html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a><br />
+<a href="html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xslt.html#xsltCleanupGlobals">xsltCleanupGlobals</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeCompMatchList">xsltFreeCompMatchList</a><br />
+<a href="html/libxslt-documents.html#xsltFreeDocuments">xsltFreeDocuments</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeRVTs">xsltFreeRVTs</a><br />
+<a href="html/libxslt-documents.html#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a><br />
+<a href="html/libxslt-preproc.html#xsltFreeStylePreComps">xsltFreeStylePreComps</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+<a href="html/libxslt-transform.html#xsltRegisterAllElement">xsltRegisterAllElement</a><br />
+<a href="html/libxslt-functions.html#xsltRegisterAllFunctions">xsltRegisterAllFunctions</a><br />
+</dd><dt>allocated</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeCompMatchList">xsltFreeCompMatchList</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStackElemList">xsltFreeStackElemList</a><br />
+<a href="html/libxslt-preproc.html#xsltFreeStylePreComps">xsltFreeStylePreComps</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStylesheet">xsltFreeStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltFreeTransformContext">xsltFreeTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>allow</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+</dd><dt>allowed</dt><dd><a href="html/libxslt-security.html#xsltCheckRead">xsltCheckRead</a><br />
+<a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+</dd><dt>allowing</dt><dd><a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+</dd><dt>already</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>also</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>always</dt><dd><a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+</dd><dt>amiss</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+</dd><dt>analyzes</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>anchored</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>another</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>any</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>anymore</dt><dd><a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+</dd><dt>api</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>appear</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDecimalFormat">_xsltDecimalFormat</a><br />
+</dd><dt>appears</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+</dd><dt>application-wide</dt><dd><a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
+</dd><dt>applied</dt><dd><a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+</dd><dt>applies</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+</dd><dt>apply</dt><dd><a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>apply-imports</dt><dd><a href="html/libxslt-transform.html#xsltApplyImports">xsltApplyImports</a><br />
+</dd><dt>apply-templates</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltApplyTemplates">xsltApplyTemplates</a><br />
+</dd><dt>applying</dt><dd><a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</dd><dt>are</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>argument</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>arguments</dt><dd><a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
+<a href="html/libxslt-functions.html#xsltElementAvailableFunction">xsltElementAvailableFunction</a><br />
+<a href="html/libxslt-functions.html#xsltFormatNumberFunction">xsltFormatNumberFunction</a><br />
+<a href="html/libxslt-functions.html#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a><br />
+<a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
+<a href="html/libxslt-functions.html#xsltGenerateIdFunction">xsltGenerateIdFunction</a><br />
+<a href="html/libxslt-functions.html#xsltKeyFunction">xsltKeyFunction</a><br />
+<a href="html/libxslt-functions.html#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a><br />
+<a href="html/libxslt-functions.html#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a><br />
+</dd><dt>array</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+</dd><dt>arry</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>associated</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-pattern.html#xsltAddTemplate">xsltAddTemplate</a><br />
+<a href="html/libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
+<a href="html/libxslt-keys.html#xsltFreeDocumentKeys">xsltFreeDocumentKeys</a><br />
+<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModule">xsltRegisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModule">xsltUnregisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</dd><dt>attached</dt><dd><a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+</dd><dt>attempt</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>attribute-set</dt><dd><a href="html/libxslt-attributes.html#xsltParseStylesheetAttributeSet">xsltParseStylesheetAttributeSet</a><br />
+</dd><dt>attributes</dt><dd><a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+</dd><dt>attrubute</dt><dd><a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+</dd><dt>automatically</dt><dd><a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+</dd><dt>available</dt><dd><a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>availble</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>average=</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIchunk2.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIchunk2.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIchunk2.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>API Alphabetic Index b-c for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>API Alphabetic Index b-c for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><h2>Letter b:</h2><dl><dt>based</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>basically</dt><dd><a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+</dd><dt>been</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>before</dt><dd><a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>beginning</dt><dd><a href="html/libxslt-xsltutils.html#xsltTimestamp">xsltTimestamp</a><br />
+</dd><dt>being</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltPrintErrorContext">xsltPrintErrorContext</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+</dd><dt>between</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-attributes.html#xsltResolveStylesheetAttributeSet">xsltResolveStylesheetAttributeSet</a><br />
+</dd><dt>blank</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>blanks</dt><dd><a href="html/libxslt-xsltInternals.html#xsltIsBlank">xsltIsBlank</a><br />
+</dd><dt>block</dt><dd><a href="html/libxslt-security.html#xsltFreeSecurityPrefs">xsltFreeSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</dd><dt>blocks</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TODO">XSLT_TODO</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-preproc.html#xsltFreeStylePreComps">xsltFreeStylePreComps</a><br />
+</dd><dt>boolean</dt><dd><a href="html/libxslt-functions.html#xsltElementAvailableFunction">xsltElementAvailableFunction</a><br />
+<a href="html/libxslt-functions.html#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a><br />
+</dd><dt>both</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>braces</dt><dd><a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+</dd><dt>breakpoint</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+</dd><dt>broke</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>buffer</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+</dd><dt>build</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>building</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+</dd><dt>built-in</dt><dd><a href="html/libxslt-extra.html#xsltRegisterAllExtras">xsltRegisterAllExtras</a><br />
+<a href="html/libxslt-extra.html#xsltRegisterExtras">xsltRegisterExtras</a><br />
+</dd><dt>but</dt><dd><a href="html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a><br />
+<a href="html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</dd><dt>bypass</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>byte</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</dd><dt>bytes</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+</dd></dl><h2>Letter c:</h2><dl><dt>calibration</dt><dd><a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
+</dd><dt>call</dt><dd><a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-xsltutils.html#xslDropCall">xslDropCall</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd><dt>call-template</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-transform.html#xsltCallTemplate">xsltCallTemplate</a><br />
+</dd><dt>callback</dt><dd><a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a><br />
+<a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+</dd><dt>callbacks</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+</dd><dt>called</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</dd><dt>caller</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</dd><dt>calls=</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>can</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>cascading</dt><dd><a href="html/libxslt-imports.html#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a><br />
+<a href="html/libxslt-imports.html#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a><br />
+</dd><dt>cases</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>casting</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>catch</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+</dd><dt>chained</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDecimalFormat">_xsltDecimalFormat</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+</dd><dt>channel</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+</dd><dt>char</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>character</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>characters</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>chars</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltIsBlank">xsltIsBlank</a><br />
+</dd><dt>check</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+<a href="html/libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a><br />
+</dd><dt>checking</dt><dd><a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</dd><dt>checks</dt><dd><a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+</dd><dt>choose</dt><dd><a href="html/libxslt-transform.html#xsltChoose">xsltChoose</a><br />
+</dd><dt>class:</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>close</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+</dd><dt>coalescing</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>com</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>combination</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+</dd><dt>coming</dt><dd><a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+</dd><dt>comment</dt><dd><a href="html/libxslt-transform.html#xsltComment">xsltComment</a><br />
+</dd><dt>common</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+</dd><dt>comp</dt><dd><a href="html/libxslt-pattern.html#xsltFreeCompMatchList">xsltFreeCompMatchList</a><br />
+</dd><dt>compilation</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</dd><dt>compiled</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>compiling</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+</dd><dt>completed</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>compression</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+</dd><dt>computations</dt><dd><a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+</dd><dt>compute</dt><dd><a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+</dd><dt>computed</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-documents.html#xsltLoadDocument">xsltLoadDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+<a href="html/libxslt-templates.html#xsltTemplateProcess">xsltTemplateProcess</a><br />
+</dd><dt>construct</dt><dd><a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+</dd><dt>consumption</dt><dd><a href="html/libxslt-xslt.html#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a><br />
+</dd><dt>contain</dt><dd><a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+</dd><dt>contained</dt><dd><a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>container</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>containing</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+</dd><dt>contains</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>content</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>content-model</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>control</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+</dd><dt>copied</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>copy</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+<a href="html/libxslt-transform.html#xsltCopy">xsltCopy</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+</dd><dt>copy-of</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-transform.html#xsltCopyOf">xsltCopyOf</a><br />
+</dd><dt>correct</dt><dd><a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
+</dd><dt>corresponding</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+</dd><dt>create</dt><dd><a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+</dd><dt>creating</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>cur</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+</dd><dt>curly</dt><dd><a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+</dd><dt>current</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+<a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+<a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+<a href="html/libxslt-xsltutils.html#xsltPrintErrorContext">xsltPrintErrorContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>currently</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIchunk3.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIchunk3.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIchunk3.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>API Alphabetic Index d-e for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>API Alphabetic Index d-e for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><h2>Letter d:</h2><dl><dt>data</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltRuntimeExtra">_xsltRuntimeExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltFreeCtxtExts">xsltFreeCtxtExts</a><br />
+<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-extensions.html#xsltInitCtxtExts">xsltInitCtxtExts</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTimestamp">xsltTimestamp</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</dd><dt>deallocated</dt><dd><a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+</dd><dt>deallocation</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltRuntimeExtra">_xsltRuntimeExtra</a><br />
+</dd><dt>deallocator</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+</dd><dt>dealy</dt><dd><a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
+</dd><dt>debug</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a><br />
+</dd><dt>debugger</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+</dd><dt>debugging</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+</dd><dt>debugtrace</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TRACE">XSLT_TRACE</a><br />
+</dd><dt>decalaration</dt><dd><a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+</dd><dt>decimal</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>decimal-format</dt><dd><a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+</dd><dt>declaration</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalParam">xsltParseGlobalParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalVariable">xsltParseGlobalVariable</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetParam">xsltParseStylesheetParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a><br />
+</dd><dt>declared</dt><dd><a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+</dd><dt>default</dt><dd><a href="html/libxslt-xslt.html#XSLT_DEFAULT_VERSION">XSLT_DEFAULT_VERSION</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-transform.html#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a><br />
+<a href="html/libxslt-transform.html#xsltRegisterAllElement">xsltRegisterAllElement</a><br />
+<a href="html/libxslt-functions.html#xsltRegisterAllFunctions">xsltRegisterAllFunctions</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+</dd><dt>define</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a><br />
+</dd><dt>defined</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>definition</dt><dd><a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+</dd><dt>definitions</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>deprecated</dt><dd><a href="html/libxslt-extra.html#xsltRegisterExtras">xsltRegisterExtras</a><br />
+</dd><dt>derived</dt><dd><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+</dd><dt>description</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+</dd><dt>descriptions</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>descriptor</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+</dd><dt>desired</dt><dd><a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+</dd><dt>destruction</dt><dd><a href="html/libxslt-xsltInternals.html#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
+</dd><dt>details</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+</dd><dt>detected</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
+</dd><dt>dictionary</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+</dd><dt>dictionnary</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>dictionnary:</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>different</dt><dd><a href="html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a><br />
+<a href="html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>digit</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>directly</dt><dd><a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+</dd><dt>directories</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+</dd><dt>disable-escaping</dt><dd><a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+</dd><dt>disabled</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>discard</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>display</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>doc</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>docs</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>doctype-public</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>doctype-system</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>documents</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-documents.html#xsltFreeDocuments">xsltFreeDocuments</a><br />
+<a href="html/libxslt-documents.html#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+</dd><dt>does</dt><dd><a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+</dd><dt>doesn</dt><dd><a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+<a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+</dd><dt>done</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>dump</dt><dd><a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+</dd><dt>during</dt><dd><a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+</dd></dl><h2>Letter e:</h2><dl><dt>either</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>element-available</dt><dd><a href="html/libxslt-functions.html#xsltElementAvailableFunction">xsltElementAvailableFunction</a><br />
+</dd><dt>elements</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-extensions.html#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a><br />
+<a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeCompMatchList">xsltFreeCompMatchList</a><br />
+<a href="html/libxslt-transform.html#xsltRegisterAllElement">xsltRegisterAllElement</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>else</dt><dd><a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+</dd><dt>emitted</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TRACE">XSLT_TRACE</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>encoded</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>encoding</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>encountering</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>end</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
+</dd><dt>engine</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+</dd><dt>entity</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>entry</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</dd><dt>error:</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+</dd><dt>errors</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>establish</dt><dd><a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+</dd><dt>eval</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+</dd><dt>evaluate</dt><dd><a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+</dd><dt>evaluated</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>evaluation</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>everything</dt><dd><a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+</dd><dt>example</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</dd><dt>except</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+</dd><dt>excluded</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>executed</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+</dd><dt>exension</dt><dd><a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+</dd><dt>existing</dt><dd><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+</dd><dt>expressed</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a><br />
+</dd><dt>expression</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</dd><dt>expressions</dt><dd><a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>extInfos</dt><dd><a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+</dd><dt>extending</dt><dd><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+</dd><dt>extensions</dt><dd><a href="html/libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a><br />
+<a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+<a href="html/libxslt-extensions.html#xsltFreeExts">xsltFreeExts</a><br />
+<a href="html/libxslt-extra.html#xsltRegisterAllExtras">xsltRegisterAllExtras</a><br />
+<a href="html/libxslt-extra.html#xsltRegisterExtras">xsltRegisterExtras</a><br />
+</dd><dt>external</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>extra</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltRuntimeExtra">_xsltRuntimeExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>extract</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>extras</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIchunk4.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIchunk4.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIchunk4.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>API Alphabetic Index f-h for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>API Alphabetic Index f-h for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><h2>Letter f:</h2><dl><dt>factor</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+</dd><dt>failure</dt><dd><a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-variables.html#xsltAddStackElemList">xsltAddStackElemList</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetImport">xsltParseStylesheetImport</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+<a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+</dd><dt>fast</dt><dd><a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+</dd><dt>file</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+<a href="html/libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>filename</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseStylesheetFile">xsltParseStylesheetFile</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+</dd><dt>files</dt><dd><a href="html/libxslt-xslt.html#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>find</dt><dd><a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+</dd><dt>first</dt><dd><a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>flag</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TODO">XSLT_TODO</a><br />
+</dd><dt>following</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>for-each</dt><dd><a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
+</dd><dt>forbid</dt><dd><a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+</dd><dt>force</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>form</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+</dd><dt>format</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>format-number</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-functions.html#xsltFormatNumberFunction">xsltFormatNumberFunction</a><br />
+</dd><dt>formats</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>formatting</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a><br />
+</dd><dt>found</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a><br />
+<a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</dd><dt>fptr</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>fraction</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>fractional</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+</dd><dt>fraction}{suffix}</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>free</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a><br />
+<a href="html/libxslt-security.html#xsltFreeSecurityPrefs">xsltFreeSecurityPrefs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</dd><dt>freed</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>from</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxslt-imports.html#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a><br />
+<a href="html/libxslt-imports.html#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModule">xsltUnregisterExtModule</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</dd><dt>full</dt><dd><a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>function-available</dt><dd><a href="html/libxslt-functions.html#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a><br />
+</dd><dt>functions</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-extensions.html#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a><br />
+<a href="html/libxslt-functions.html#xsltRegisterAllFunctions">xsltRegisterAllFunctions</a><br />
+</dd></dl><h2>Letter g:</h2><dl><dt>gathering</dt><dd><a href="html/libxslt-xsltutils.html#xsltTimestamp">xsltTimestamp</a><br />
+</dd><dt>gcc</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>gcc4</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>general</dt><dd><a href="html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a><br />
+<a href="html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a><br />
+</dd><dt>generally</dt><dd><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+</dd><dt>generate</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>generate-id</dt><dd><a href="html/libxslt-functions.html#xsltGenerateIdFunction">xsltGenerateIdFunction</a><br />
+</dd><dt>generated</dt><dd><a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</dd><dt>generates</dt><dd><a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+</dd><dt>get</dt><dd><a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+</dd><dt>given</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+<a href="html/libxslt-templates.html#xsltTemplateProcess">xsltTemplateProcess</a><br />
+<a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+</dd><dt>gives</dt><dd><a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>giving</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+</dd><dt>global</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xslt.html#xsltCleanupGlobals">xsltCleanupGlobals</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+</dd><dt>goto</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+</dd><dt>grafted</dt><dd><a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+</dd><dt>group</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+</dd><dt>grouping</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd></dl><h2>Letter h:</h2><dl><dt>handle</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
+</dd><dt>handler</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</dd><dt>handles</dt><dd><a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+</dd><dt>handling</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</dd><dt>has</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</dd><dt>hash</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+</dd><dt>hashtable</dt><dd><a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+</dd><dt>have</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+</dd><dt>hence</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>holding</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+</dd><dt>hosting</dt><dd><a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+</dd><dt>html</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>http:</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIchunk5.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIchunk5.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIchunk5.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>API Alphabetic Index i-m for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>API Alphabetic Index i-m for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><h2>Letter i:</h2><dl><dt>ignorable</dt><dd><a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltIsBlank">xsltIsBlank</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>implementation</dt><dd><a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+</dd><dt>implemented</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>import</dt><dd><a href="html/libxslt-imports.html#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a><br />
+<a href="html/libxslt-imports.html#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetImport">xsltParseStylesheetImport</a><br />
+</dd><dt>imported</dt><dd><a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+</dd><dt>imports</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-pattern.html#xsltCleanupTemplates">xsltCleanupTemplates</a><br />
+</dd><dt>in-scope</dt><dd><a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+</dd><dt>include</dt><dd><a href="html/libxslt-imports.html#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a><br />
+</dd><dt>included</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+</dd><dt>includes</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>inclusive</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>indented</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>index</dt><dd><a href="">nr</a><br />
+</dd><dt>indicating</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd><dt>indicator</dt><dd><a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+</dd><dt>info</dt><dd><a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+</dd><dt>information</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-transform.html#xsltApplyImports">xsltApplyImports</a><br />
+<a href="html/libxslt-transform.html#xsltApplyTemplates">xsltApplyTemplates</a><br />
+<a href="html/libxslt-transform.html#xsltAttribute">xsltAttribute</a><br />
+<a href="html/libxslt-transform.html#xsltCallTemplate">xsltCallTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltChoose">xsltChoose</a><br />
+<a href="html/libxslt-transform.html#xsltComment">xsltComment</a><br />
+<a href="html/libxslt-transform.html#xsltCopy">xsltCopy</a><br />
+<a href="html/libxslt-transform.html#xsltCopyOf">xsltCopyOf</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+<a href="html/libxslt-transform.html#xsltElement">xsltElement</a><br />
+<a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
+<a href="html/libxslt-transform.html#xsltIf">xsltIf</a><br />
+<a href="html/libxslt-transform.html#xsltNumber">xsltNumber</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a><br />
+<a href="html/libxslt-transform.html#xsltProcessingInstruction">xsltProcessingInstruction</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+<a href="html/libxslt-transform.html#xsltText">xsltText</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+<a href="html/libxslt-transform.html#xsltValueOf">xsltValueOf</a><br />
+</dd><dt>informations</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
+</dd><dt>inherited</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+</dd><dt>initial</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+</dd><dt>initialization</dt><dd><a href="html/libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModule">xsltRegisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a><br />
+</dd><dt>initialized</dt><dd><a href="html/libxslt-extensions.html#xsltInitCtxtExts">xsltInitCtxtExts</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+<a href="html/libxslt-extensions.html#xsltNewElemPreComp">xsltNewElemPreComp</a><br />
+</dd><dt>initializes</dt><dd><a href="html/libxslt-extensions.html#xsltNewElemPreComp">xsltNewElemPreComp</a><br />
+</dd><dt>input</dt><dd><a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+<a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>insertion</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>instances</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>instead</dt><dd><a href="html/libxslt-extra.html#xsltRegisterExtras">xsltRegisterExtras</a><br />
+</dd><dt>instruction</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+<a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+<a href="html/libxslt-preproc.html#xsltStylePreCompute">xsltStylePreCompute</a><br />
+</dd><dt>integer</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>interface</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>intergers</dt><dd><a href="html/libxslt-imports.html#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a><br />
+</dd><dt>internalized</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>internally</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
+</dd><dt>interpretation</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDecimalFormat">_xsltDecimalFormat</a><br />
+</dd><dt>interpreter</dt><dd><a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</dd><dt>interpretor</dt><dd><a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</dd><dt>into</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>item</dt><dd><a href="html/libxslt-xsltutils.html#xslDropCall">xslDropCall</a><br />
+</dd><dt>item1</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>item2|item3</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>its</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalParam">xsltParseGlobalParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalVariable">xsltParseGlobalVariable</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetParam">xsltParseStylesheetParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a><br />
+</dd><dt>itself</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd></dl><h2>Letter j:</h2><dl><dt>java</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>jdk</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd></dl><h2>Letter k:</h2><dl><dt>keeping</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>kept</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+</dd><dt>key</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+<a href="html/libxslt-functions.html#xsltKeyFunction">xsltKeyFunction</a><br />
+<a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+</dd><dt>keys</dt><dd><a href="html/libxslt-keys.html#xsltFreeDocumentKeys">xsltFreeDocumentKeys</a><br />
+<a href="html/libxslt-keys.html#xsltFreeKeys">xsltFreeKeys</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+</dd><dt>kind</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd><dt>known</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd></dl><h2>Letter l:</h2><dl><dt>label</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+</dd><dt>language</dt><dd><a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>last</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+</dd><dt>later</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd><dt>lead</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>left</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+</dd><dt>len</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>level</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-variables.html#xsltAddStackElemList">xsltAddStackElemList</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a><br />
+</dd><dt>library</dt><dd><a href="html/libxslt-xslt.html#xsltCleanupGlobals">xsltCleanupGlobals</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModule">xsltRegisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModule">xsltUnregisterExtModule</a><br />
+</dd><dt>libxml2</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+</dd><dt>libxslt</dt><dd><a href="html/libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
+</dd><dt>lifespan</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>like</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>line</dt><dd><a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>literal</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>literally</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>load</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-documents.html#xsltLoadDocument">xsltLoadDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
+</dd><dt>loaded</dt><dd><a href="html/libxslt-documents.html#xsltFreeDocuments">xsltFreeDocuments</a><br />
+<a href="html/libxslt-documents.html#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownExts">xsltShutdownExts</a><br />
+</dd><dt>loading</dt><dd><a href="html/libxslt-xslt.html#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+<a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
+</dd><dt>local</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>localname</dt><dd><a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>locate</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>location</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+</dd><dt>look</dt><dd><a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+</dd><dt>looks</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>lookup</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+</dd><dt>lost</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd></dl><h2>Letter m:</h2><dl><dt>macro</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxslt-imports.html#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a><br />
+<a href="html/libxslt-imports.html#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a><br />
+<a href="html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a><br />
+<a href="html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>made</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltIsBlank">xsltIsBlank</a><br />
+</dd><dt>main</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>make</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+</dd><dt>makes</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+</dd><dt>mapping</dt><dd><a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+</dd><dt>mask</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a><br />
+</dd><dt>match</dt><dd><a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+</dd><dt>match=</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>matches</dt><dd><a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+</dd><dt>matching</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+</dd><dt>may</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDecimalFormat">_xsltDecimalFormat</a><br />
+<a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>means</dt><dd><a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</dd><dt>mechanism</dt><dd><a href="html/libxslt-pattern.html#xsltFreeTemplateHashes">xsltFreeTemplateHashes</a><br />
+</dd><dt>memory</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
+<a href="html/libxslt-attributes.html#xsltFreeAttributeSetsHashes">xsltFreeAttributeSetsHashes</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeCompMatchList">xsltFreeCompMatchList</a><br />
+<a href="html/libxslt-extensions.html#xsltFreeExts">xsltFreeExts</a><br />
+<a href="html/libxslt-keys.html#xsltFreeKeys">xsltFreeKeys</a><br />
+<a href="html/libxslt-namespaces.html#xsltFreeNamespaceAliasHashes">xsltFreeNamespaceAliasHashes</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStackElemList">xsltFreeStackElemList</a><br />
+<a href="html/libxslt-preproc.html#xsltFreeStylePreComps">xsltFreeStylePreComps</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStylesheet">xsltFreeStylesheet</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeTemplateHashes">xsltFreeTemplateHashes</a><br />
+<a href="html/libxslt-transform.html#xsltFreeTransformContext">xsltFreeTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+</dd><dt>message</dt><dd><a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>messages</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TRACE">XSLT_TRACE</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>method</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>mille</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>milliseconds</dt><dd><a href="html/libxslt-xsltutils.html#xsltTimestamp">xsltTimestamp</a><br />
+</dd><dt>mode</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-pattern.html#xsltAddTemplate">xsltAddTemplate</a><br />
+</dd><dt>mode=</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>modified</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>modules</dt><dd><a href="html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a><br />
+<a href="html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a><br />
+<a href="html/libxslt-extensions.html#xsltInitCtxtExts">xsltInitCtxtExts</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownExts">xsltShutdownExts</a><br />
+</dd><dt>more</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>multiple</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>multiply</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>must</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIchunk6.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIchunk6.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIchunk6.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>API Alphabetic Index n-p for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>API Alphabetic Index n-p for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><h2>Letter n:</h2><dl><dt>name=</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>named</dt><dd><a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+</dd><dt>names</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>namespace-alias</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>namespaces</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-namespaces.html#xsltFreeNamespaceAliasHashes">xsltFreeNamespaceAliasHashes</a><br />
+</dd><dt>necessary</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+</dd><dt>need</dt><dd><a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>needed</dt><dd><a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</dd><dt>needs</dt><dd><a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+</dd><dt>negative</dt><dd><a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>nested</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>newly</dt><dd><a href="html/libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+</dd><dt>next</dt><dd><a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+</dd><dt>node-set</dt><dd><a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
+<a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
+<a href="html/libxslt-functions.html#xsltKeyFunction">xsltKeyFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+</dd><dt>node-set?</dt><dd><a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
+<a href="html/libxslt-functions.html#xsltGenerateIdFunction">xsltGenerateIdFunction</a><br />
+</dd><dt>nodelist</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+</dd><dt>nodes</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+</dd><dt>nodeset</dt><dd><a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+</dd><dt>non-NULL</dt><dd><a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+</dd><dt>non-excluded</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+</dd><dt>non-wellformed</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>none</dt><dd><a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+</dd><dt>nor</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>normalize</dt><dd><a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+</dd><dt>normally</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+</dd><dt>now</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>null</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+</dd></dl><h2>Letter o:</h2><dl><dt>object</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
+<a href="html/libxslt-functions.html#xsltKeyFunction">xsltKeyFunction</a><br />
+<a href="html/libxslt-functions.html#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</dd><dt>obsolete</dt><dd><a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+</dd><dt>obtained</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</dd><dt>occcur</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+</dd><dt>occurences</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+</dd><dt>off</dt><dd><a href="html/libxslt-xsltutils.html#xslDropCall">xslDropCall</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>old</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>once</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>one</dt><dd><a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+</dd><dt>one:</dt><dd><a href="html/libxslt-xsltutils.html#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a><br />
+</dd><dt>ones</dt><dd><a href="html/libxslt-pattern.html#xsltCleanupTemplates">xsltCleanupTemplates</a><br />
+</dd><dt>only</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>open</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+</dd><dt>operation</dt><dd><a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+</dd><dt>optimization</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>option</dt><dd><a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</dd><dt>options</dt><dd><a href="html/libxslt-xslt.html#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a><br />
+<a href="html/libxslt-security.html#xsltCheckRead">xsltCheckRead</a><br />
+<a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+</dd><dt>order</dt><dd><a href="html/libxslt-imports.html#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a><br />
+<a href="html/libxslt-imports.html#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+</dd><dt>ordered</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+</dd><dt>original</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>other</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>otherwise</dt><dd><a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-pattern.html#xsltAddTemplate">xsltAddTemplate</a><br />
+<a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a><br />
+<a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-transform.html#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltIsBlank">xsltIsBlank</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</dd><dt>ouput</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>out</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</dd><dt>own</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+</dd></dl><h2>Letter p:</h2><dl><dt>param</dt><dd><a href="html/libxslt-variables.html#xsltParseGlobalParam">xsltParseGlobalParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetParam">xsltParseStylesheetParam</a><br />
+</dd><dt>parameter</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+</dd><dt>parameters</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>params</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+</dd><dt>parent</dt><dd><a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+</dd><dt>parse</dt><dd><a href="html/libxslt-variables.html#xsltParseGlobalParam">xsltParseGlobalParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalVariable">xsltParseGlobalVariable</a><br />
+<a href="html/libxslt-attributes.html#xsltParseStylesheetAttributeSet">xsltParseStylesheetAttributeSet</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetFile">xsltParseStylesheetFile</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetImport">xsltParseStylesheetImport</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetParam">xsltParseStylesheetParam</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>parsed</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+<a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>parser</dt><dd><a href="html/libxslt-transform.html#xsltFreeTransformContext">xsltFreeTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+</dd><dt>parsing</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>part</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+<a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>pass</dt><dd><a href="html/libxslt-xslt.html#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+</dd><dt>passed</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>path</dt><dd><a href="html/libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a><br />
+</dd><dt>pattern</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltDecimalFormat">_xsltDecimalFormat</a><br />
+<a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-pattern.html#xsltAddTemplate">xsltAddTemplate</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+</dd><dt>patterns</dt><dd><a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+</dd><dt>per</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>percent</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+</dd><dt>percentage</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>permille</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+</dd><dt>persistance</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>persistant</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>pertaining</dt><dd><a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</dd><dt>pertains</dt><dd><a href="html/libxslt-xsltutils.html#IS_XSLT_ELEM">IS_XSLT_ELEM</a><br />
+</dd><dt>place</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>placeholder</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>plug</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+</dd><dt>point</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</dd><dt>pointer</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltRuntimeExtra">_xsltRuntimeExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="">fptr</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-security.html#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a><br />
+<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+</dd><dt>pointers</dt><dd><a href="html/libxslt-imports.html#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a><br />
+</dd><dt>points</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+</dd><dt>popped</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+</dd><dt>position</dt><dd><a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>possible</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>possibly</dt><dd><a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+</dd><dt>pre-computation</dt><dd><a href="html/libxslt-extensions.html#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a><br />
+</dd><dt>pre-processing</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>precedence</dt><dd><a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+</dd><dt>precision</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TIMESTAMP_TICS_PER_SEC">XSLT_TIMESTAMP_TICS_PER_SEC</a><br />
+</dd><dt>precompiled</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+</dd><dt>precomputed</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyImports">xsltApplyImports</a><br />
+<a href="html/libxslt-transform.html#xsltApplyTemplates">xsltApplyTemplates</a><br />
+<a href="html/libxslt-transform.html#xsltAttribute">xsltAttribute</a><br />
+<a href="html/libxslt-transform.html#xsltCallTemplate">xsltCallTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltChoose">xsltChoose</a><br />
+<a href="html/libxslt-transform.html#xsltComment">xsltComment</a><br />
+<a href="html/libxslt-transform.html#xsltCopy">xsltCopy</a><br />
+<a href="html/libxslt-transform.html#xsltCopyOf">xsltCopyOf</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+<a href="html/libxslt-transform.html#xsltElement">xsltElement</a><br />
+<a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
+<a href="html/libxslt-preproc.html#xsltFreeStylePreComps">xsltFreeStylePreComps</a><br />
+<a href="html/libxslt-transform.html#xsltIf">xsltIf</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-transform.html#xsltNumber">xsltNumber</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a><br />
+<a href="html/libxslt-transform.html#xsltProcessingInstruction">xsltProcessingInstruction</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+<a href="html/libxslt-transform.html#xsltText">xsltText</a><br />
+<a href="html/libxslt-transform.html#xsltValueOf">xsltValueOf</a><br />
+</dd><dt>predicate</dt><dd><a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+</dd><dt>preference</dt><dd><a href="html/libxslt-security.html#xsltFreeSecurityPrefs">xsltFreeSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
+</dd><dt>preferences</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>prefix</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</dd><dt>prefixed</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+</dd><dt>prefixes</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>preliminary</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+</dd><dt>present</dt><dd><a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+</dd><dt>preserve</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>preserve-space</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+</dd><dt>previous</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+</dd><dt>prevompiled</dt><dd><a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+</dd><dt>printed</dt><dd><a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+</dd><dt>priority</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+</dd><dt>problem</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
+</dd><dt>processed</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltPrintErrorContext">xsltPrintErrorContext</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+</dd><dt>processing</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+<a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-transform.html#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a><br />
+<a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+</dd><dt>processing-instruction</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltProcessingInstruction">xsltProcessingInstruction</a><br />
+</dd><dt>processor</dt><dd><a href="html/libxslt-xslt.html#XSLT_DEFAULT_URL">XSLT_DEFAULT_URL</a><br />
+<a href="html/libxslt-xslt.html#XSLT_DEFAULT_VENDOR">XSLT_DEFAULT_VENDOR</a><br />
+<a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a><br />
+</dd><dt>products</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>profile</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>profiled</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>profiling</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TIMESTAMP_TICS_PER_SEC">XSLT_TIMESTAMP_TICS_PER_SEC</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTimestamp">xsltTimestamp</a><br />
+</dd><dt>progressive</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>project</dt><dd><a href="html/libxslt-extra.html#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a><br />
+</dd><dt>provide</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+</dd><dt>provided</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a><br />
+</dd><dt>ptr</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>purpose</dt><dd><a href="html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a><br />
+<a href="html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a><br />
+</dd><dt>pushed</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIchunk7.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIchunk7.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIchunk7.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,379 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>API Alphabetic Index q-s for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>API Alphabetic Index q-s for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><h2>Letter q:</h2><dl><dt>query</dt><dd><a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+</dd><dt>quote</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd></dl><h2>Letter r:</h2><dl><dt>rank=</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>read</dt><dd><a href="html/libxslt-security.html#xsltCheckRead">xsltCheckRead</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>ready</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+</dd><dt>real</dt><dd><a href="html/libxslt-xsltutils.html#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+</dd><dt>record</dt><dd><a href="html/libxslt-variables.html#xsltParseGlobalParam">xsltParseGlobalParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalVariable">xsltParseGlobalVariable</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetParam">xsltParseStylesheetParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a><br />
+</dd><dt>references</dt><dd><a href="html/libxslt-attributes.html#xsltResolveStylesheetAttributeSet">xsltResolveStylesheetAttributeSet</a><br />
+</dd><dt>referencing</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>register</dt><dd><a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+</dd><dt>registered</dt><dd><a href="html/libxslt-extensions.html#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeRVTs">xsltFreeRVTs</a><br />
+<a href="html/libxslt-extensions.html#xsltInitCtxtExts">xsltInitCtxtExts</a><br />
+</dd><dt>related</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a><br />
+</dd><dt>reorder</dt><dd><a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+</dd><dt>replace</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>replacement</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltTemplateProcess">xsltTemplateProcess</a><br />
+</dd><dt>requested</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>required</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd><dt>requirement</dt><dd><a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+</dd><dt>requires</dt><dd><a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+</dd><dt>reset</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</dd><dt>resets</dt><dd><a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
+</dd><dt>resolve</dt><dd><a href="html/libxslt-attributes.html#xsltResolveStylesheetAttributeSet">xsltResolveStylesheetAttributeSet</a><br />
+</dd><dt>resource</dt><dd><a href="html/libxslt-security.html#xsltCheckRead">xsltCheckRead</a><br />
+<a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>respect</dt><dd><a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+</dd><dt>result-prefix</dt><dd><a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+</dd><dt>result-tree</dt><dd><a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
+</dd><dt>resulting</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</dd><dt>results</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>ret</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+</dd><dt>retrieve</dt><dd><a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</dd><dt>return</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+<a href="html/libxslt-templates.html#xsltTemplateProcess">xsltTemplateProcess</a><br />
+</dd><dt>returned</dt><dd><a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>reused</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+</dd><dt>right</dt><dd><a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+</dd><dt>root</dt><dd><a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+</dd><dt>routine</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltRuntimeExtra">_xsltRuntimeExtra</a><br />
+</dd><dt>routines</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+</dd><dt>rule</dt><dd><a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+</dd><dt>rules</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>run</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>run-time</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+</dd><dt>running</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</dd><dt>runtime</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd></dl><h2>Letter s:</h2><dl><dt>s390</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>same</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>saving</dt><dd><a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
+</dd><dt>saxon</dt><dd><a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
+</dd><dt>scanner</dt><dd><a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+</dd><dt>scope</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+</dd><dt>seaches</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>search</dt><dd><a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+</dd><dt>section</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>security</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-security.html#xsltCheckRead">xsltCheckRead</a><br />
+<a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-security.html#xsltFreeSecurityPrefs">xsltFreeSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</dd><dt>see</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+</dd><dt>semantic</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>separates</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>separator</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>sequence</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>set</dt><dd><a href="html/libxslt-xslt.html#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-attributes.html#xsltApplyAttributeSet">xsltApplyAttributeSet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-xslt.html#xsltCleanupGlobals">xsltCleanupGlobals</a><br />
+<a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltInitCtxtExts">xsltInitCtxtExts</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerStatus">xsltSetDebuggerStatus</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownExts">xsltShutdownExts</a><br />
+</dd><dt>sets</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-attributes.html#xsltFreeAttributeSetsHashes">xsltFreeAttributeSetsHashes</a><br />
+<a href="html/libxslt-attributes.html#xsltResolveStylesheetAttributeSet">xsltResolveStylesheetAttributeSet</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerStatus">xsltSetDebuggerStatus</a><br />
+</dd><dt>setting</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>shared</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>sheet</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-documents.html#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+</dd><dt>should</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+</dd><dt>show</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>shows</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>shutdown</dt><dd><a href="html/libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModule">xsltRegisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a><br />
+</dd><dt>signalled</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>signature</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd><dt>similar</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+</dd><dt>simply</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</dd><dt>since</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTimestamp">xsltTimestamp</a><br />
+</dd><dt>single</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+</dd><dt>size</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>slightly</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>slot</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+</dd><dt>slow</dt><dd><a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+</dd><dt>some</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+</dd><dt>something</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+</dd><dt>sort</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+</dd><dt>sorted</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+</dd><dt>sorting</dt><dd><a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+</dd><dt>sorts</dt><dd><a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+</dd><dt>space</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-documents.html#xsltFreeDocuments">xsltFreeDocuments</a><br />
+<a href="html/libxslt-documents.html#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a><br />
+<a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+</dd><dt>spaces</dt><dd><a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+</dd><dt>special</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>specialCharacters</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>specific</dt><dd><a href="html/libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>specification</dt><dd><a href="html/libxslt-xslt.html#XSLT_NAMESPACE">XSLT_NAMESPACE</a><br />
+</dd><dt>specified</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_MAX_SORT">XSLT_MAX_SORT</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+</dd><dt>specify</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>spent</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+</dd><dt>stack</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-xsltutils.html#xslDropCall">xslDropCall</a><br />
+<a href="html/libxslt-variables.html#xsltAddStackElemList">xsltAddStackElemList</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStackElemList">xsltFreeStackElemList</a><br />
+</dd><dt>standalone</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>starting</dt><dd><a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>state</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-pattern.html#xsltCleanupTemplates">xsltCleanupTemplates</a><br />
+<a href="html/libxslt-transform.html#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a><br />
+</dd><dt>static</dt><dd><a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+</dd><dt>statically</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+</dd><dt>status</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>stderr</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>stdout</dt><dd><a href="html/libxslt-extensions.html#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a><br />
+</dd><dt>steps</dt><dd><a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+</dd><dt>stopped</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+</dd><dt>storage</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>store</dt><dd><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+</dd><dt>stored</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+</dd><dt>string?</dt><dd><a href="html/libxslt-functions.html#xsltFormatNumberFunction">xsltFormatNumberFunction</a><br />
+</dd><dt>strings</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>strip-space</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+</dd><dt>stripped</dt><dd><a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+</dd><dt>stripping</dt><dd><a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+</dd><dt>struct</dt><dd><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+</dd><dt>structure</dt><dd><a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetFile">xsltParseStylesheetFile</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+</dd><dt>structures</dt><dd><a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+</dd><dt>stuff</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>style</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-documents.html#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>stylesheet-prefix</dt><dd><a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+</dd><dt>stylesheets</dt><dd><a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>subpattern</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>subpattern{</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>subpattern}</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>subsequent</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</dd><dt>subsidiary</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+</dd><dt>substituted</dt><dd><a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+</dd><dt>substitution</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>subtree</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>success</dt><dd><a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-variables.html#xsltAddStackElemList">xsltAddStackElemList</a><br />
+<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetImport">xsltParseStylesheetImport</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+</dd><dt>successful</dt><dd><a href="html/libxslt-extensions.html#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleElement">xsltUnregisterExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleFunction">xsltUnregisterExtModuleFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a><br />
+</dd><dt>sucess</dt><dd><a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+</dd><dt>sucessful</dt><dd><a href="html/libxslt-extensions.html#xsltRegisterExtModule">xsltRegisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModule">xsltUnregisterExtModule</a><br />
+</dd><dt>suffix</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>suggested</dt><dd><a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+</dd><dt>suitable</dt><dd><a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+</dd><dt>sun</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>supported</dt><dd><a href="html/libxslt-xslt.html#XSLT_DEFAULT_VERSION">XSLT_DEFAULT_VERSION</a><br />
+</dd><dt>sure</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+</dd><dt>system-property</dt><dd><a href="html/libxslt-functions.html#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIchunk8.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIchunk8.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIchunk8.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>API Alphabetic Index t-v for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>API Alphabetic Index t-v for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><h2>Letter t:</h2><dl><dt>table</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+</dd><dt>tables</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+</dd><dt>target</dt><dd><a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+</dd><dt>targetted</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+</dd><dt>temlate</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+</dd><dt>templates</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-pattern.html#xsltCleanupTemplates">xsltCleanupTemplates</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
+</dd><dt>templtaes</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>templtes</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>temporary</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>tenth</dt><dd><a href="html/libxslt-xsltutils.html#xsltTimestamp">xsltTimestamp</a><br />
+</dd><dt>terminated</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>test</dt><dd><a href="html/libxslt-extensions.html#xsltRegisterTestModule">xsltRegisterTestModule</a><br />
+</dd><dt>text</dt><dd><a href="html/libxslt-xsltutils.html#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+<a href="html/libxslt-transform.html#xsltText">xsltText</a><br />
+</dd><dt>than</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>that</dt><dd><a href="html/libxslt-xsltutils.html#IS_XSLT_ELEM">IS_XSLT_ELEM</a><br />
+<a href="html/libxslt-xsltutils.html#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
+<a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</dd><dt>them</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+</dd><dt>themselve</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd><dt>then</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+</dd><dt>there</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-transform.html#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a><br />
+</dd><dt>they</dt><dd><a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+</dd><dt>those</dt><dd><a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd><dt>time</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a><br />
+</dd><dt>time=</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>top-level</dt><dd><a href="html/libxslt-extensions.html#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a><br />
+</dd><dt>topmost</dt><dd><a href="html/libxslt-xsltutils.html#xslDropCall">xslDropCall</a><br />
+</dd><dt>tracing</dt><dd><a href="html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a><br />
+</dd><dt>track</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>transfer</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+</dd><dt>transform</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-extensions.html#xsltNewElemPreComp">xsltNewElemPreComp</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>transformations</dt><dd><a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>transmit</dt><dd><a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>transromation</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</dd><dt>treated</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>tries</dt><dd><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>true</dt><dd><a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+</dd><dt>tuples</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>turned</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>type</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TRACE">XSLT_TRACE</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd></dl><h2>Letter u:</h2><dl><dt>ultimately</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>unimplemented</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TODO">XSLT_TODO</a><br />
+</dd><dt>unless</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>unparsed-entity-uri</dt><dd><a href="html/libxslt-functions.html#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a><br />
+</dd><dt>unused</dt><dd><a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+</dd><dt>unwanted</dt><dd><a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>update</dt><dd><a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</dd><dt>use</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-extra.html#xsltRegisterExtras">xsltRegisterExtras</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>useful</dt><dd><a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</dd><dt>usefull</dt><dd><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+</dd><dt>user</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</dd><dt>uses</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>using</dt><dd><a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+</dd></dl><h2>Letter v:</h2><dl><dt>validating</dt><dd><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+</dd><dt>value-of</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-transform.html#xsltValueOf">xsltValueOf</a><br />
+</dd><dt>values</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>var</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>variable</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalVariable">xsltParseGlobalVariable</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</dd><dt>variables</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xslt.html#xsltCleanupGlobals">xsltCleanupGlobals</a><br />
+<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
+</dd><dt>varibale</dt><dd><a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</dd><dt>varibales</dt><dd><a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+</dd><dt>vendor</dt><dd><a href="html/libxslt-xslt.html#XSLT_DEFAULT_URL">XSLT_DEFAULT_URL</a><br />
+<a href="html/libxslt-xslt.html#XSLT_DEFAULT_VENDOR">XSLT_DEFAULT_VENDOR</a><br />
+</dd><dt>version</dt><dd><a href="html/libxslt-xslt.html#XSLT_DEFAULT_VERSION">XSLT_DEFAULT_VERSION</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>version=</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>violated</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>void</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIchunk9.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIchunk9.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIchunk9.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>API Alphabetic Index w-z for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>API Alphabetic Index w-z for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><h2>Letter w:</h2><dl><dt>want</dt><dd><a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+</dd><dt>warning</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+</dd><dt>warnings</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>was</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+</dd><dt>well</dt><dd><a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+</dd><dt>went</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+</dd><dt>were</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>when</dt><dd><a href="html/libxslt-xslt.html#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</dd><dt>where</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+</dd><dt>wherever</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+</dd><dt>whether</dt><dd><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+<a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+</dd><dt>which</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+</dd><dt>while</dt><dd><a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</dd><dt>white-space</dt><dd><a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+</dd><dt>wildcards</dt><dd><a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+</dd><dt>will</dt><dd><a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</dd><dt>wise</dt><dd><a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>with</dt><dd><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-extensions.html#xsltInitCtxtExts">xsltInitCtxtExts</a><br />
+</dd><dt>within</dt><dd><a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadDocument">xsltLoadDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+</dd><dt>without</dt><dd><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</dd><dt>work</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+</dd><dt>wrapped</dt><dd><a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+</dd><dt>wrapper</dt><dd><a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+</dd><dt>write</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+</dd><dt>written</dt><dd><a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</dd></dl><h2>Letter x:</h2><dl><dt>xmlAttrPtr</dt><dd><a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+</dd><dt>xmlDoc</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+</dd><dt>xmlDocPtr</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</dd><dt>xmlFreeDoc</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+</dd><dt>xmlGetNsProp</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</dd><dt>xmlGetUTF8Char</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</dd><dt>xmlNodePtr</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+</dd><dt>xmlNsPtr</dt><dd><a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+</dd><dt>xmlParserOption</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+</dd><dt>xmlReadxxx</dt><dd><a href="html/libxslt-xslt.html#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a><br />
+</dd><dt>xmlXPathCompExprPtr</dt><dd><a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</dd><dt>xsl</dt><dd><a href="html/libxslt-xsltutils.html#XSLT_TRACE">XSLT_TRACE</a><br />
+</dd><dt>xsl:apply-templates</dt><dd><a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>xsl:comment</dt><dd><a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+</dd><dt>xsl:if</dt><dd><a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</dd><dt>xsl:import</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd><dt>xsl:include</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd><dt>xsl:message</dt><dd><a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+</dd><dt>xsl:namespace-alias</dt><dd><a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+</dd><dt>xsl:processing-instruction</dt><dd><a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+</dd><dt>xsl:sort</dt><dd><a href="html/libxslt-xsltInternals.html#XSLT_MAX_SORT">XSLT_MAX_SORT</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+</dd><dt>xsl:use-attribute-sets</dt><dd><a href="html/libxslt-attributes.html#xsltApplyAttributeSet">xsltApplyAttributeSet</a><br />
+</dd><dt>xslDebugBreak</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+</dd><dt>xslDebugStatus</dt><dd><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetDebuggerStatus">xsltGetDebuggerStatus</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerStatus">xsltSetDebuggerStatus</a><br />
+</dd><dt>xslt:text</dt><dd><a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+</dd><dt>xsltAddTemplate</dt><dd><a href="html/libxslt-pattern.html#xsltFreeTemplateHashes">xsltFreeTemplateHashes</a><br />
+</dd><dt>xsltDecimalFormatPtr</dt><dd><a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+</dd><dt>xsltDocLoaderFunc</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd><dt>xsltDocumentPtr</dt><dd><a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadDocument">xsltLoadDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+</dd><dt>xsltElemPreComp</dt><dd><a href="html/libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-extensions.html#xsltNewElemPreComp">xsltNewElemPreComp</a><br />
+</dd><dt>xsltEvalUserParams</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+</dd><dt>xsltGetQNameURI</dt><dd><a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+</dd><dt>xsltGetTemplate</dt><dd><a href="html/libxslt-pattern.html#xsltFreeTemplateHashes">xsltFreeTemplateHashes</a><br />
+</dd><dt>xsltLoadType</dt><dd><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</dd><dt>xsltProcessOneUserParamInternal</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+</dd><dt>xsltQuoteOneUserParam</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+</dd><dt>xsltQuoteUserParams</dt><dd><a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+</dd><dt>xsltRegisterAllExtras</dt><dd><a href="html/libxslt-extra.html#xsltRegisterExtras">xsltRegisterExtras</a><br />
+</dd><dt>xsltSecurityPrefsPtr</dt><dd><a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+</dd><dt>xsltSetCtxtSortFunc</dt><dd><a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+</dd><dt>xsltSetSortFunc</dt><dd><a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+</dd><dt>xsltStackElemPtr</dt><dd><a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+</dd><dt>xsltStylesheetPtr</dt><dd><a href="html/libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a><br />
+</dd><dt>xsltTemplatePtr</dt><dd><a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+</dd><dt>xsltTimestamp</dt><dd><a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
+</dd><dt>xsltTransformContextPtr</dt><dd><a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+</dd></dl><h2>Letter y:</h2><dl><dt>yes</dt><dd><a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+</dd><dt>yet</dt><dd><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</dd><dt>you</dt><dd><a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+</dd><dt>your</dt><dd><a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+</dd></dl><h2>Letter z:</h2><dl><dt>zero</dt><dd><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">A-P</a>
+<a href="APIchunk1.html">Q-a</a>
+<a href="APIchunk2.html">b-c</a>
+<a href="APIchunk3.html">d-e</a>
+<a href="APIchunk4.html">f-h</a>
+<a href="APIchunk5.html">i-m</a>
+<a href="APIchunk6.html">n-p</a>
+<a href="APIchunk7.html">q-s</a>
+<a href="APIchunk8.html">t-v</a>
+<a href="APIchunk9.html">w-z</a>
+</h2><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIconstructors.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIconstructors.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIconstructors.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>List of constructors for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>List of constructors for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Type const xmlChar *:</h2><p><a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</p><h2>Type long:</h2><p><a href="html/libxslt-xsltutils.html#xsltTimestamp">xsltTimestamp</a><br />
+</p><h2>Type void *:</h2><p><a href="html/libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+</p><h2>Type xmlAttrPtr:</h2><p><a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+</p><h2>Type xmlChar *:</h2><p><a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+</p><h2>Type xmlDocPtr:</h2><p><a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCreateRVT">xsltCreateRVT</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+</p><h2>Type xmlHashTablePtr:</h2><p><a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+</p><h2>Type xmlNodePtr:</h2><p><a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+</p><h2>Type xmlNodePtr *:</h2><p><a href="html/libxslt-templates.html#xsltTemplateProcess">xsltTemplateProcess</a><br />
+</p><h2>Type xmlNodeSetPtr:</h2><p><a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+</p><h2>Type xmlNsPtr:</h2><p><a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+</p><h2>Type xmlXPathCompExprPtr:</h2><p><a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</p><h2>Type xmlXPathError:</h2><p><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</p><h2>Type xmlXPathFunction:</h2><p><a href="html/libxslt-extensions.html#xsltExtFunctionLookup">xsltExtFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+</p><h2>Type xmlXPathObjectPtr:</h2><p><a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</p><h2>Type xmlXPathObjectPtr *:</h2><p><a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+</p><h2>Type xsltCompMatchPtr:</h2><p><a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+</p><h2>Type xsltDebugTraceCodes:</h2><p><a href="html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a><br />
+</p><h2>Type xsltDecimalFormatPtr:</h2><p><a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+</p><h2>Type xsltDocumentPtr:</h2><p><a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadDocument">xsltLoadDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+</p><h2>Type xsltElemPreCompPtr:</h2><p><a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-extensions.html#xsltNewElemPreComp">xsltNewElemPreComp</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a><br />
+</p><h2>Type xsltPreComputeFunction:</h2><p><a href="html/libxslt-extensions.html#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a><br />
+</p><h2>Type xsltSecurityCheck:</h2><p><a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+</p><h2>Type xsltSecurityPrefsPtr:</h2><p><a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a><br />
+</p><h2>Type xsltStackElemPtr:</h2><p><a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+</p><h2>Type xsltStylesheetPtr:</h2><p><a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetFile">xsltParseStylesheetFile</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+</p><h2>Type xsltTemplatePtr:</h2><p><a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+</p><h2>Type xsltTopLevelFunction:</h2><p><a href="html/libxslt-extensions.html#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a><br />
+</p><h2>Type xsltTransformContextPtr:</h2><p><a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</p><h2>Type xsltTransformFunction:</h2><p><a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a><br />
+</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIfiles.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIfiles.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIfiles.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,398 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>List of Symbols per Module for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>List of Symbols per Module for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2><a name="attributes" id="attributes">Module attributes</a>:</h2><p><a href="html/libxslt-attributes.html#xsltApplyAttributeSet">xsltApplyAttributeSet</a><br />
+<a href="html/libxslt-attributes.html#xsltFreeAttributeSetsHashes">xsltFreeAttributeSetsHashes</a><br />
+<a href="html/libxslt-attributes.html#xsltParseStylesheetAttributeSet">xsltParseStylesheetAttributeSet</a><br />
+<a href="html/libxslt-attributes.html#xsltResolveStylesheetAttributeSet">xsltResolveStylesheetAttributeSet</a><br />
+</p><h2><a name="documents" id="documents">Module documents</a>:</h2><p><a href="html/libxslt-documents.html#XSLT_LOAD_DOCUMENT">XSLT_LOAD_DOCUMENT</a><br />
+<a href="html/libxslt-documents.html#XSLT_LOAD_START">XSLT_LOAD_START</a><br />
+<a href="html/libxslt-documents.html#XSLT_LOAD_STYLESHEET">XSLT_LOAD_STYLESHEET</a><br />
+<a href="html/libxslt-documents.html#xsltDocDefaultLoader">xsltDocDefaultLoader</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+<a href="html/libxslt-documents.html#xsltFreeDocuments">xsltFreeDocuments</a><br />
+<a href="html/libxslt-documents.html#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a><br />
+<a href="html/libxslt-documents.html#xsltLoadDocument">xsltLoadDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadType">xsltLoadType</a><br />
+<a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+<a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
+</p><h2><a name="extensions" id="extensions">Module extensions</a>:</h2><p><a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+<a href="html/libxslt-extensions.html#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a><br />
+<a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtFunctionLookup">xsltExtFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltFreeCtxtExts">xsltFreeCtxtExts</a><br />
+<a href="html/libxslt-extensions.html#xsltFreeExts">xsltFreeExts</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+<a href="html/libxslt-extensions.html#xsltInitCtxtExts">xsltInitCtxtExts</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-extensions.html#xsltNewElemPreComp">xsltNewElemPreComp</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModule">xsltRegisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterTestModule">xsltRegisterTestModule</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownExts">xsltShutdownExts</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+<a href="html/libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModule">xsltUnregisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleElement">xsltUnregisterExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleFunction">xsltUnregisterExtModuleFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</p><h2><a name="extra" id="extra">Module extra</a>:</h2><p><a href="html/libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
+<a href="html/libxslt-extra.html#xsltRegisterAllExtras">xsltRegisterAllExtras</a><br />
+<a href="html/libxslt-extra.html#xsltRegisterExtras">xsltRegisterExtras</a><br />
+</p><h2><a name="functions" id="functions">Module functions</a>:</h2><p><a href="html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a><br />
+<a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
+<a href="html/libxslt-functions.html#xsltElementAvailableFunction">xsltElementAvailableFunction</a><br />
+<a href="html/libxslt-functions.html#xsltFormatNumberFunction">xsltFormatNumberFunction</a><br />
+<a href="html/libxslt-functions.html#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a><br />
+<a href="html/libxslt-functions.html#xsltGenerateIdFunction">xsltGenerateIdFunction</a><br />
+<a href="html/libxslt-functions.html#xsltKeyFunction">xsltKeyFunction</a><br />
+<a href="html/libxslt-functions.html#xsltRegisterAllFunctions">xsltRegisterAllFunctions</a><br />
+<a href="html/libxslt-functions.html#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a><br />
+<a href="html/libxslt-functions.html#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+</p><h2><a name="imports" id="imports">Module imports</a>:</h2><p><a href="html/libxslt-imports.html#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a><br />
+<a href="html/libxslt-imports.html#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetImport">xsltParseStylesheetImport</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a><br />
+</p><h2><a name="keys" id="keys">Module keys</a>:</h2><p><a href="html/libxslt-keys.html#NODE_IS_KEYED">NODE_IS_KEYED</a><br />
+<a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-keys.html#xsltFreeDocumentKeys">xsltFreeDocumentKeys</a><br />
+<a href="html/libxslt-keys.html#xsltFreeKeys">xsltFreeKeys</a><br />
+<a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+</p><h2><a name="namespaces" id="namespaces">Module namespaces</a>:</h2><p><a href="html/libxslt-namespaces.html#UNDEFINED_DEFAULT_NS">UNDEFINED_DEFAULT_NS</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-namespaces.html#xsltFreeNamespaceAliasHashes">xsltFreeNamespaceAliasHashes</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+</p><h2><a name="numbersInternals" id="numbersInternals">Module numbersInternals</a>:</h2><p><a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-numbersInternals.html#_xsltNumberData">_xsltNumberData</a><br />
+<a href="html/libxslt-numbersInternals.html#xsltFormatNumberInfo">xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-numbersInternals.html#xsltFormatNumberInfoPtr">xsltFormatNumberInfoPtr</a><br />
+<a href="html/libxslt-numbersInternals.html#xsltNumberData">xsltNumberData</a><br />
+<a href="html/libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a><br />
+</p><h2><a name="pattern" id="pattern">Module pattern</a>:</h2><p><a href="html/libxslt-pattern.html#xsltAddTemplate">xsltAddTemplate</a><br />
+<a href="html/libxslt-pattern.html#xsltCleanupTemplates">xsltCleanupTemplates</a><br />
+<a href="html/libxslt-pattern.html#xsltCompMatch">xsltCompMatch</a><br />
+<a href="html/libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeCompMatchList">xsltFreeCompMatchList</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeTemplateHashes">xsltFreeTemplateHashes</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-pattern.html#xsltMatchPattern">xsltMatchPattern</a><br />
+<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+<a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+</p><h2><a name="preproc" id="preproc">Module preproc</a>:</h2><p><a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-preproc.html#xsltExtMarker">xsltExtMarker</a><br />
+<a href="html/libxslt-preproc.html#xsltFreeStylePreComps">xsltFreeStylePreComps</a><br />
+<a href="html/libxslt-preproc.html#xsltStylePreCompute">xsltStylePreCompute</a><br />
+</p><h2><a name="security" id="security">Module security</a>:</h2><p><a href="html/libxslt-security.html#XSLT_SECPREF_CREATE_DIRECTORY">XSLT_SECPREF_CREATE_DIRECTORY</a><br />
+<a href="html/libxslt-security.html#XSLT_SECPREF_READ_FILE">XSLT_SECPREF_READ_FILE</a><br />
+<a href="html/libxslt-security.html#XSLT_SECPREF_READ_NETWORK">XSLT_SECPREF_READ_NETWORK</a><br />
+<a href="html/libxslt-security.html#XSLT_SECPREF_WRITE_FILE">XSLT_SECPREF_WRITE_FILE</a><br />
+<a href="html/libxslt-security.html#XSLT_SECPREF_WRITE_NETWORK">XSLT_SECPREF_WRITE_NETWORK</a><br />
+<a href="html/libxslt-security.html#xsltCheckRead">xsltCheckRead</a><br />
+<a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-security.html#xsltFreeSecurityPrefs">xsltFreeSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a><br />
+<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+<a href="html/libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a><br />
+<a href="html/libxslt-security.html#xsltSecurityPrefs">xsltSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</p><h2><a name="templates" id="templates">Module templates</a>:</h2><p><a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-templates.html#xsltTemplateProcess">xsltTemplateProcess</a><br />
+</p><h2><a name="transform" id="transform">Module transform</a>:</h2><p><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-transform.html#xsltApplyImports">xsltApplyImports</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-transform.html#xsltApplyTemplates">xsltApplyTemplates</a><br />
+<a href="html/libxslt-transform.html#xsltAttribute">xsltAttribute</a><br />
+<a href="html/libxslt-transform.html#xsltCallTemplate">xsltCallTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltChoose">xsltChoose</a><br />
+<a href="html/libxslt-transform.html#xsltComment">xsltComment</a><br />
+<a href="html/libxslt-transform.html#xsltCopy">xsltCopy</a><br />
+<a href="html/libxslt-transform.html#xsltCopyOf">xsltCopyOf</a><br />
+<a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+<a href="html/libxslt-transform.html#xsltElement">xsltElement</a><br />
+<a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
+<a href="html/libxslt-transform.html#xsltFreeTransformContext">xsltFreeTransformContext</a><br />
+<a href="html/libxslt-transform.html#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a><br />
+<a href="html/libxslt-transform.html#xsltIf">xsltIf</a><br />
+<a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+<a href="html/libxslt-transform.html#xsltNumber">xsltNumber</a><br />
+<a href="html/libxslt-transform.html#xsltProcessingInstruction">xsltProcessingInstruction</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRegisterAllElement">xsltRegisterAllElement</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+<a href="html/libxslt-transform.html#xsltText">xsltText</a><br />
+<a href="html/libxslt-transform.html#xsltValueOf">xsltValueOf</a><br />
+</p><h2><a name="variables" id="variables">Module variables</a>:</h2><p><a href="html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a><br />
+<a href="html/libxslt-variables.html#xsltAddStackElemList">xsltAddStackElemList</a><br />
+<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalParam">xsltParseGlobalParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalVariable">xsltParseGlobalVariable</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetParam">xsltParseStylesheetParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</p><h2><a name="xslt" id="xslt">Module xslt</a>:</h2><p><a href="html/libxslt-xslt.html#XSLT_DEFAULT_URL">XSLT_DEFAULT_URL</a><br />
+<a href="html/libxslt-xslt.html#XSLT_DEFAULT_VENDOR">XSLT_DEFAULT_VENDOR</a><br />
+<a href="html/libxslt-xslt.html#XSLT_DEFAULT_VERSION">XSLT_DEFAULT_VERSION</a><br />
+<a href="html/libxslt-xslt.html#XSLT_NAMESPACE">XSLT_NAMESPACE</a><br />
+<a href="html/libxslt-xslt.html#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a><br />
+<a href="html/libxslt-xslt.html#xsltCleanupGlobals">xsltCleanupGlobals</a><br />
+<a href="html/libxslt-xslt.html#xsltEngineVersion">xsltEngineVersion</a><br />
+<a href="html/libxslt-xslt.html#xsltLibxmlVersion">xsltLibxmlVersion</a><br />
+<a href="html/libxslt-xslt.html#xsltLibxsltVersion">xsltLibxsltVersion</a><br />
+<a href="html/libxslt-xslt.html#xsltMaxDepth">xsltMaxDepth</a><br />
+</p><h2><a name="xsltInternals" id="xsltInternals">Module xsltInternals</a>:</h2><p><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+<a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_APPLYIMPORTS">XSLT_FUNC_APPLYIMPORTS</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_APPLYTEMPLATES">XSLT_FUNC_APPLYTEMPLATES</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_ATTRIBUTE">XSLT_FUNC_ATTRIBUTE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_CALLTEMPLATE">XSLT_FUNC_CALLTEMPLATE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_CHOOSE">XSLT_FUNC_CHOOSE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_COMMENT">XSLT_FUNC_COMMENT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_COPY">XSLT_FUNC_COPY</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_COPYOF">XSLT_FUNC_COPYOF</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_DOCUMENT">XSLT_FUNC_DOCUMENT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_ELEMENT">XSLT_FUNC_ELEMENT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_EXTENSION">XSLT_FUNC_EXTENSION</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_FOREACH">XSLT_FUNC_FOREACH</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_IF">XSLT_FUNC_IF</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_NUMBER">XSLT_FUNC_NUMBER</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_PARAM">XSLT_FUNC_PARAM</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_PI">XSLT_FUNC_PI</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_SORT">XSLT_FUNC_SORT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_TEXT">XSLT_FUNC_TEXT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_VALUEOF">XSLT_FUNC_VALUEOF</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_VARIABLE">XSLT_FUNC_VARIABLE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_WHEN">XSLT_FUNC_WHEN</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_WITHPARAM">XSLT_FUNC_WITHPARAM</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_MAX_SORT">XSLT_MAX_SORT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_OUTPUT_HTML">XSLT_OUTPUT_HTML</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_OUTPUT_TEXT">XSLT_OUTPUT_TEXT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_OUTPUT_XML">XSLT_OUTPUT_XML</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_STATE_ERROR">XSLT_STATE_ERROR</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_STATE_OK">XSLT_STATE_OK</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_STATE_STOPPED">XSLT_STATE_STOPPED</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltDecimalFormat">_xsltDecimalFormat</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltRuntimeExtra">_xsltRuntimeExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCreateRVT">xsltCreateRVT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormat">xsltDecimalFormat</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDocument">xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltElemPreComp">xsltElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeRVTs">xsltFreeRVTs</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStackElemList">xsltFreeStackElemList</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStylesheet">xsltFreeStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltIsBlank">xsltIsBlank</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltOutputType">xsltOutputType</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetFile">xsltParseStylesheetFile</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRuntimeExtra">xsltRuntimeExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRuntimeExtraPtr">xsltRuntimeExtraPtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStackElem">xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStylePreComp">xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStyleType">xsltStyleType</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStylesheet">xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTemplate">xsltTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformContext">xsltTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformState">xsltTransformState</a><br />
+</p><h2><a name="xsltexports" id="xsltexports">Module xsltexports</a>:</h2><p><a href="html/libxslt-xsltexports.html#LIBXSLT_PUBLIC">LIBXSLT_PUBLIC</a><br />
+<a href="html/libxslt-xsltexports.html#XSLTCALL">XSLTCALL</a><br />
+<a href="html/libxslt-xsltexports.html#XSLTPUBFUN">XSLTPUBFUN</a><br />
+<a href="html/libxslt-xsltexports.html#XSLTPUBVAR">XSLTPUBVAR</a><br />
+<a href="html/libxslt-xsltexports.html#_REENTRANT">_REENTRANT</a><br />
+</p><h2><a name="xsltutils" id="xsltutils">Module xsltutils</a>:</h2><p><a href="html/libxslt-xsltutils.html#IS_XSLT_ELEM">IS_XSLT_ELEM</a><br />
+<a href="html/libxslt-xsltutils.html#IS_XSLT_NAME">IS_XSLT_NAME</a><br />
+<a href="html/libxslt-xsltutils.html#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_CONT">XSLT_DEBUG_CONT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_INIT">XSLT_DEBUG_INIT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_NEXT">XSLT_DEBUG_NEXT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_NONE">XSLT_DEBUG_NONE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_QUIT">XSLT_DEBUG_QUIT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_RUN">XSLT_DEBUG_RUN</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_RUN_RESTART">XSLT_DEBUG_RUN_RESTART</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_STEP">XSLT_DEBUG_STEP</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_STEPOUT">XSLT_DEBUG_STEPOUT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_STOP">XSLT_DEBUG_STOP</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TIMESTAMP_TICS_PER_SEC">XSLT_TIMESTAMP_TICS_PER_SEC</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TODO">XSLT_TODO</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE">XSLT_TRACE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_ALL">XSLT_TRACE_ALL</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_APPLY_TEMPLATE">XSLT_TRACE_APPLY_TEMPLATE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_APPLY_TEMPLATES">XSLT_TRACE_APPLY_TEMPLATES</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_CALL_TEMPLATE">XSLT_TRACE_CALL_TEMPLATE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_CHOOSE">XSLT_TRACE_CHOOSE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_COMMENT">XSLT_TRACE_COMMENT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_COPY">XSLT_TRACE_COPY</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_COPY_OF">XSLT_TRACE_COPY_OF</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_COPY_TEXT">XSLT_TRACE_COPY_TEXT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_FOR_EACH">XSLT_TRACE_FOR_EACH</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_IF">XSLT_TRACE_IF</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_KEYS">XSLT_TRACE_KEYS</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_NONE">XSLT_TRACE_NONE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_PI">XSLT_TRACE_PI</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_PROCESS_NODE">XSLT_TRACE_PROCESS_NODE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_STRIP_SPACES">XSLT_TRACE_STRIP_SPACES</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_TEMPLATES">XSLT_TRACE_TEMPLATES</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_VALUE_OF">XSLT_TRACE_VALUE_OF</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_VARIABLES">XSLT_TRACE_VARIABLES</a><br />
+<a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-xsltutils.html#xslDebugStatus">xslDebugStatus</a><br />
+<a href="html/libxslt-xsltutils.html#xslDropCall">xslDropCall</a><br />
+<a href="html/libxslt-xsltutils.html#xsltAddCallCallback">xsltAddCallCallback</a><br />
+<a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
+<a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugStatusCodes">xsltDebugStatusCodes</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDropCallCallback">xsltDropCallCallback</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGenericDebug">xsltGenericDebug</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGenericDebugContext">xsltGenericDebugContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGenericError">xsltGenericError</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGenericErrorContext">xsltGenericErrorContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetDebuggerStatus">xsltGetDebuggerStatus</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-xsltutils.html#xsltHandleDebuggerCallback">xsltHandleDebuggerCallback</a><br />
+<a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+<a href="html/libxslt-xsltutils.html#xsltPrintErrorContext">xsltPrintErrorContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerStatus">xsltSetDebuggerStatus</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTimestamp">xsltTimestamp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIfunctions.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIfunctions.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIfunctions.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,474 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>List of function manipulating types in libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>List of function manipulating types in libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Type ...:</h2><p><a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+</p><h2>Type FILE *:</h2><p><a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-extensions.html#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+</p><h2>Type const char **:</h2><p><a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</p><h2>Type const unsigned char *:</h2><p><a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+</p><h2>Type const xmlChar *:</h2><p><a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-pattern.html#xsltAddTemplate">xsltAddTemplate</a><br />
+<a href="html/libxslt-attributes.html#xsltApplyAttributeSet">xsltApplyAttributeSet</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+<a href="html/libxslt-security.html#xsltCheckRead">xsltCheckRead</a><br />
+<a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtFunctionLookup">xsltExtFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a><br />
+<a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+<a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-documents.html#xsltLoadDocument">xsltLoadDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+<a href="html/libxslt-pattern.html#xsltMatchPattern">xsltMatchPattern</a><br />
+<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetFile">xsltParseStylesheetFile</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModule">xsltRegisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModule">xsltUnregisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleElement">xsltUnregisterExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleFunction">xsltUnregisterExtModuleFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a><br />
+<a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</p><h2>Type const xmlChar **:</h2><p><a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</p><h2>Type double:</h2><p><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</p><h2>Type int *:</h2><p><a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</p><h2>Type long:</h2><p><a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
+</p><h2>Type void *:</h2><p><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
+<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</p><h2>Type xmlAttrPtr:</h2><p><a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+</p><h2>Type xmlChar *:</h2><p><a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltIsBlank">xsltIsBlank</a><br />
+</p><h2>Type xmlChar **:</h2><p><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</p><h2>Type xmlDictPtr:</h2><p><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+</p><h2>Type xmlDocPtr:</h2><p><a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-pattern.html#xsltMatchPattern">xsltMatchPattern</a><br />
+<a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+<a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+</p><h2>Type xmlGenericErrorFunc:</h2><p><a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+</p><h2>Type xmlNodePtr:</h2><p><a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-xsltutils.html#xsltAddCallCallback">xsltAddCallCallback</a><br />
+<a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-attributes.html#xsltApplyAttributeSet">xsltApplyAttributeSet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyImports">xsltApplyImports</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+<a href="html/libxslt-transform.html#xsltApplyTemplates">xsltApplyTemplates</a><br />
+<a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-transform.html#xsltAttribute">xsltAttribute</a><br />
+<a href="html/libxslt-transform.html#xsltCallTemplate">xsltCallTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltChoose">xsltChoose</a><br />
+<a href="html/libxslt-transform.html#xsltComment">xsltComment</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-transform.html#xsltCopy">xsltCopy</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-transform.html#xsltCopyOf">xsltCopyOf</a><br />
+<a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+<a href="html/libxslt-transform.html#xsltElement">xsltElement</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltHandleDebuggerCallback">xsltHandleDebuggerCallback</a><br />
+<a href="html/libxslt-transform.html#xsltIf">xsltIf</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-pattern.html#xsltMatchPattern">xsltMatchPattern</a><br />
+<a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+<a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+<a href="html/libxslt-extensions.html#xsltNewElemPreComp">xsltNewElemPreComp</a><br />
+<a href="html/libxslt-transform.html#xsltNumber">xsltNumber</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalParam">xsltParseGlobalParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalVariable">xsltParseGlobalVariable</a><br />
+<a href="html/libxslt-attributes.html#xsltParseStylesheetAttributeSet">xsltParseStylesheetAttributeSet</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetImport">xsltParseStylesheetImport</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetParam">xsltParseStylesheetParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltPrintErrorContext">xsltPrintErrorContext</a><br />
+<a href="html/libxslt-transform.html#xsltProcessingInstruction">xsltProcessingInstruction</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+<a href="html/libxslt-preproc.html#xsltStylePreCompute">xsltStylePreCompute</a><br />
+<a href="html/libxslt-templates.html#xsltTemplateProcess">xsltTemplateProcess</a><br />
+<a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+<a href="html/libxslt-transform.html#xsltText">xsltText</a><br />
+<a href="html/libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+<a href="html/libxslt-transform.html#xsltValueOf">xsltValueOf</a><br />
+</p><h2>Type xmlNodePtr *:</h2><p><a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+</p><h2>Type xmlNodeSetPtr:</h2><p><a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+</p><h2>Type xmlNsPtr:</h2><p><a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+</p><h2>Type xmlNsPtr *:</h2><p><a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+</p><h2>Type xmlOutputBufferPtr:</h2><p><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+</p><h2>Type xmlSAXHandlerPtr:</h2><p><a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+</p><h2>Type xmlXPathCompExprPtr:</h2><p><a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+</p><h2>Type xmlXPathContextPtr:</h2><p><a href="html/libxslt-functions.html#xsltRegisterAllFunctions">xsltRegisterAllFunctions</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+</p><h2>Type xmlXPathFunction:</h2><p><a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a><br />
+</p><h2>Type xmlXPathParserContextPtr:</h2><p><a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
+<a href="html/libxslt-functions.html#xsltElementAvailableFunction">xsltElementAvailableFunction</a><br />
+<a href="html/libxslt-functions.html#xsltFormatNumberFunction">xsltFormatNumberFunction</a><br />
+<a href="html/libxslt-functions.html#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a><br />
+<a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
+<a href="html/libxslt-functions.html#xsltGenerateIdFunction">xsltGenerateIdFunction</a><br />
+<a href="html/libxslt-functions.html#xsltKeyFunction">xsltKeyFunction</a><br />
+<a href="html/libxslt-functions.html#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a><br />
+<a href="html/libxslt-functions.html#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+</p><h2>Type xsltCompMatchPtr:</h2><p><a href="html/libxslt-pattern.html#xsltFreeCompMatchList">xsltFreeCompMatchList</a><br />
+<a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+</p><h2>Type xsltDebugTraceCodes:</h2><p><a href="html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a><br />
+</p><h2>Type xsltDecimalFormatPtr:</h2><p><a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+</p><h2>Type xsltDocLoaderFunc:</h2><p><a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
+</p><h2>Type xsltDocumentPtr:</h2><p><a href="html/libxslt-keys.html#xsltFreeDocumentKeys">xsltFreeDocumentKeys</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+</p><h2>Type xsltElemPreCompDeallocator:</h2><p><a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+</p><h2>Type xsltElemPreCompPtr:</h2><p><a href="html/libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+</p><h2>Type xsltExtInitFunction:</h2><p><a href="html/libxslt-extensions.html#xsltRegisterExtModule">xsltRegisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+</p><h2>Type xsltExtShutdownFunction:</h2><p><a href="html/libxslt-extensions.html#xsltRegisterExtModule">xsltRegisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+</p><h2>Type xsltLoadType:</h2><p><a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+</p><h2>Type xsltNumberDataPtr:</h2><p><a href="html/libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a><br />
+</p><h2>Type xsltPreComputeFunction:</h2><p><a href="html/libxslt-extensions.html#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a><br />
+</p><h2>Type xsltSecurityCheck:</h2><p><a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</p><h2>Type xsltSecurityOption:</h2><p><a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</p><h2>Type xsltSecurityPrefsPtr:</h2><p><a href="html/libxslt-security.html#xsltCheckRead">xsltCheckRead</a><br />
+<a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-security.html#xsltFreeSecurityPrefs">xsltFreeSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a><br />
+<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+</p><h2>Type xsltSortFunc:</h2><p><a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+</p><h2>Type xsltStackElemPtr:</h2><p><a href="html/libxslt-variables.html#xsltAddStackElemList">xsltAddStackElemList</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStackElemList">xsltFreeStackElemList</a><br />
+</p><h2>Type xsltStyleExtInitFunction:</h2><p><a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+</p><h2>Type xsltStyleExtShutdownFunction:</h2><p><a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+</p><h2>Type xsltStylePreCompPtr:</h2><p><a href="html/libxslt-transform.html#xsltApplyImports">xsltApplyImports</a><br />
+<a href="html/libxslt-transform.html#xsltApplyTemplates">xsltApplyTemplates</a><br />
+<a href="html/libxslt-transform.html#xsltAttribute">xsltAttribute</a><br />
+<a href="html/libxslt-transform.html#xsltCallTemplate">xsltCallTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltChoose">xsltChoose</a><br />
+<a href="html/libxslt-transform.html#xsltComment">xsltComment</a><br />
+<a href="html/libxslt-transform.html#xsltCopy">xsltCopy</a><br />
+<a href="html/libxslt-transform.html#xsltCopyOf">xsltCopyOf</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+<a href="html/libxslt-transform.html#xsltElement">xsltElement</a><br />
+<a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
+<a href="html/libxslt-transform.html#xsltIf">xsltIf</a><br />
+<a href="html/libxslt-transform.html#xsltNumber">xsltNumber</a><br />
+<a href="html/libxslt-transform.html#xsltProcessingInstruction">xsltProcessingInstruction</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+<a href="html/libxslt-transform.html#xsltText">xsltText</a><br />
+<a href="html/libxslt-transform.html#xsltValueOf">xsltValueOf</a><br />
+</p><h2>Type xsltStylesheetPtr:</h2><p><a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-pattern.html#xsltAddTemplate">xsltAddTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+<a href="html/libxslt-pattern.html#xsltCleanupTemplates">xsltCleanupTemplates</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-attributes.html#xsltFreeAttributeSetsHashes">xsltFreeAttributeSetsHashes</a><br />
+<a href="html/libxslt-extensions.html#xsltFreeExts">xsltFreeExts</a><br />
+<a href="html/libxslt-keys.html#xsltFreeKeys">xsltFreeKeys</a><br />
+<a href="html/libxslt-namespaces.html#xsltFreeNamespaceAliasHashes">xsltFreeNamespaceAliasHashes</a><br />
+<a href="html/libxslt-documents.html#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a><br />
+<a href="html/libxslt-preproc.html#xsltFreeStylePreComps">xsltFreeStylePreComps</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStylesheet">xsltFreeStylesheet</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeTemplateHashes">xsltFreeTemplateHashes</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+<a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+<a href="html/libxslt-extensions.html#xsltNewElemPreComp">xsltNewElemPreComp</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+<a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalParam">xsltParseGlobalParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalVariable">xsltParseGlobalVariable</a><br />
+<a href="html/libxslt-attributes.html#xsltParseStylesheetAttributeSet">xsltParseStylesheetAttributeSet</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetImport">xsltParseStylesheetImport</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltPrintErrorContext">xsltPrintErrorContext</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a><br />
+<a href="html/libxslt-attributes.html#xsltResolveStylesheetAttributeSet">xsltResolveStylesheetAttributeSet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownExts">xsltShutdownExts</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+<a href="html/libxslt-preproc.html#xsltStylePreCompute">xsltStylePreCompute</a><br />
+<a href="html/libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+</p><h2>Type xsltTemplatePtr:</h2><p><a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-xsltutils.html#xsltAddCallCallback">xsltAddCallCallback</a><br />
+<a href="html/libxslt-pattern.html#xsltAddTemplate">xsltAddTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltHandleDebuggerCallback">xsltHandleDebuggerCallback</a><br />
+</p><h2>Type xsltTopLevelFunction:</h2><p><a href="html/libxslt-extensions.html#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a><br />
+</p><h2>Type xsltTransformContextPtr:</h2><p><a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-variables.html#xsltAddStackElemList">xsltAddStackElemList</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-attributes.html#xsltApplyAttributeSet">xsltApplyAttributeSet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyImports">xsltApplyImports</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-transform.html#xsltApplyTemplates">xsltApplyTemplates</a><br />
+<a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-transform.html#xsltAttribute">xsltAttribute</a><br />
+<a href="html/libxslt-transform.html#xsltCallTemplate">xsltCallTemplate</a><br />
+<a href="html/libxslt-security.html#xsltCheckRead">xsltCheckRead</a><br />
+<a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-transform.html#xsltChoose">xsltChoose</a><br />
+<a href="html/libxslt-transform.html#xsltComment">xsltComment</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-transform.html#xsltCopy">xsltCopy</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-transform.html#xsltCopyOf">xsltCopyOf</a><br />
+<a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCreateRVT">xsltCreateRVT</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+<a href="html/libxslt-transform.html#xsltElement">xsltElement</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtFunctionLookup">xsltExtFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a><br />
+<a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
+<a href="html/libxslt-extensions.html#xsltFreeCtxtExts">xsltFreeCtxtExts</a><br />
+<a href="html/libxslt-documents.html#xsltFreeDocuments">xsltFreeDocuments</a><br />
+<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeRVTs">xsltFreeRVTs</a><br />
+<a href="html/libxslt-transform.html#xsltFreeTransformContext">xsltFreeTransformContext</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltHandleDebuggerCallback">xsltHandleDebuggerCallback</a><br />
+<a href="html/libxslt-transform.html#xsltIf">xsltIf</a><br />
+<a href="html/libxslt-extensions.html#xsltInitCtxtExts">xsltInitCtxtExts</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+<a href="html/libxslt-documents.html#xsltLoadDocument">xsltLoadDocument</a><br />
+<a href="html/libxslt-pattern.html#xsltMatchPattern">xsltMatchPattern</a><br />
+<a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+<a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+<a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-transform.html#xsltNumber">xsltNumber</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetParam">xsltParseStylesheetParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a><br />
+<a href="html/libxslt-xsltutils.html#xsltPrintErrorContext">xsltPrintErrorContext</a><br />
+<a href="html/libxslt-transform.html#xsltProcessingInstruction">xsltProcessingInstruction</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltRegisterAllElement">xsltRegisterAllElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+<a href="html/libxslt-extra.html#xsltRegisterExtras">xsltRegisterExtras</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
+<a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a><br />
+<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+<a href="html/libxslt-templates.html#xsltTemplateProcess">xsltTemplateProcess</a><br />
+<a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+<a href="html/libxslt-transform.html#xsltText">xsltText</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+<a href="html/libxslt-transform.html#xsltValueOf">xsltValueOf</a><br />
+<a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+</p><h2>Type xsltTransformFunction:</h2><p><a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-extensions.html#xsltNewElemPreComp">xsltNewElemPreComp</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a><br />
+</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/APIsymbols.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/APIsymbols.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/APIsymbols.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,398 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Alphabetic List of Symbols in libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Alphabetic List of Symbols in libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Letter C:</h2><p><a href="html/libxslt-xsltInternals.html#CHECK_STOPPED">CHECK_STOPPED</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPED0">CHECK_STOPPED0</a><br />
+<a href="html/libxslt-xsltInternals.html#CHECK_STOPPEDE">CHECK_STOPPEDE</a><br />
+</p><h2>Letter I:</h2><p><a href="html/libxslt-xsltutils.html#IS_XSLT_ELEM">IS_XSLT_ELEM</a><br />
+<a href="html/libxslt-xsltutils.html#IS_XSLT_NAME">IS_XSLT_NAME</a><br />
+<a href="html/libxslt-xsltutils.html#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a><br />
+</p><h2>Letter L:</h2><p><a href="html/libxslt-xsltexports.html#LIBXSLT_PUBLIC">LIBXSLT_PUBLIC</a><br />
+</p><h2>Letter N:</h2><p><a href="html/libxslt-keys.html#NODE_IS_KEYED">NODE_IS_KEYED</a><br />
+</p><h2>Letter U:</h2><p><a href="html/libxslt-namespaces.html#UNDEFINED_DEFAULT_NS">UNDEFINED_DEFAULT_NS</a><br />
+</p><h2>Letter X:</h2><p><a href="html/libxslt-xsltInternals.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
+<a href="html/libxslt-xsltexports.html#XSLTCALL">XSLTCALL</a><br />
+<a href="html/libxslt-xsltexports.html#XSLTPUBFUN">XSLTPUBFUN</a><br />
+<a href="html/libxslt-xsltexports.html#XSLTPUBVAR">XSLTPUBVAR</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_CONT">XSLT_DEBUG_CONT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_INIT">XSLT_DEBUG_INIT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_NEXT">XSLT_DEBUG_NEXT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_NONE">XSLT_DEBUG_NONE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_QUIT">XSLT_DEBUG_QUIT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_RUN">XSLT_DEBUG_RUN</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_RUN_RESTART">XSLT_DEBUG_RUN_RESTART</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_STEP">XSLT_DEBUG_STEP</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_STEPOUT">XSLT_DEBUG_STEPOUT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_DEBUG_STOP">XSLT_DEBUG_STOP</a><br />
+<a href="html/libxslt-xslt.html#XSLT_DEFAULT_URL">XSLT_DEFAULT_URL</a><br />
+<a href="html/libxslt-xslt.html#XSLT_DEFAULT_VENDOR">XSLT_DEFAULT_VENDOR</a><br />
+<a href="html/libxslt-xslt.html#XSLT_DEFAULT_VERSION">XSLT_DEFAULT_VERSION</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_APPLYIMPORTS">XSLT_FUNC_APPLYIMPORTS</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_APPLYTEMPLATES">XSLT_FUNC_APPLYTEMPLATES</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_ATTRIBUTE">XSLT_FUNC_ATTRIBUTE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_CALLTEMPLATE">XSLT_FUNC_CALLTEMPLATE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_CHOOSE">XSLT_FUNC_CHOOSE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_COMMENT">XSLT_FUNC_COMMENT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_COPY">XSLT_FUNC_COPY</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_COPYOF">XSLT_FUNC_COPYOF</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_DOCUMENT">XSLT_FUNC_DOCUMENT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_ELEMENT">XSLT_FUNC_ELEMENT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_EXTENSION">XSLT_FUNC_EXTENSION</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_FOREACH">XSLT_FUNC_FOREACH</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_IF">XSLT_FUNC_IF</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_NUMBER">XSLT_FUNC_NUMBER</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_PARAM">XSLT_FUNC_PARAM</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_PI">XSLT_FUNC_PI</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_SORT">XSLT_FUNC_SORT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_TEXT">XSLT_FUNC_TEXT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_VALUEOF">XSLT_FUNC_VALUEOF</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_VARIABLE">XSLT_FUNC_VARIABLE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_WHEN">XSLT_FUNC_WHEN</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_FUNC_WITHPARAM">XSLT_FUNC_WITHPARAM</a><br />
+<a href="html/libxslt-imports.html#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a><br />
+<a href="html/libxslt-imports.html#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a><br />
+<a href="html/libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a><br />
+<a href="html/libxslt-documents.html#XSLT_LOAD_DOCUMENT">XSLT_LOAD_DOCUMENT</a><br />
+<a href="html/libxslt-documents.html#XSLT_LOAD_START">XSLT_LOAD_START</a><br />
+<a href="html/libxslt-documents.html#XSLT_LOAD_STYLESHEET">XSLT_LOAD_STYLESHEET</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_MAX_SORT">XSLT_MAX_SORT</a><br />
+<a href="html/libxslt-xslt.html#XSLT_NAMESPACE">XSLT_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_OUTPUT_HTML">XSLT_OUTPUT_HTML</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_OUTPUT_TEXT">XSLT_OUTPUT_TEXT</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_OUTPUT_XML">XSLT_OUTPUT_XML</a><br />
+<a href="html/libxslt-xslt.html#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a><br />
+<a href="html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a><br />
+<a href="html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a><br />
+<a href="html/libxslt-extra.html#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a><br />
+<a href="html/libxslt-security.html#XSLT_SECPREF_CREATE_DIRECTORY">XSLT_SECPREF_CREATE_DIRECTORY</a><br />
+<a href="html/libxslt-security.html#XSLT_SECPREF_READ_FILE">XSLT_SECPREF_READ_FILE</a><br />
+<a href="html/libxslt-security.html#XSLT_SECPREF_READ_NETWORK">XSLT_SECPREF_READ_NETWORK</a><br />
+<a href="html/libxslt-security.html#XSLT_SECPREF_WRITE_FILE">XSLT_SECPREF_WRITE_FILE</a><br />
+<a href="html/libxslt-security.html#XSLT_SECPREF_WRITE_NETWORK">XSLT_SECPREF_WRITE_NETWORK</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_STATE_ERROR">XSLT_STATE_ERROR</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_STATE_OK">XSLT_STATE_OK</a><br />
+<a href="html/libxslt-xsltInternals.html#XSLT_STATE_STOPPED">XSLT_STATE_STOPPED</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_STRANGE">XSLT_STRANGE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TIMESTAMP_TICS_PER_SEC">XSLT_TIMESTAMP_TICS_PER_SEC</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TODO">XSLT_TODO</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE">XSLT_TRACE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_ALL">XSLT_TRACE_ALL</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_APPLY_TEMPLATE">XSLT_TRACE_APPLY_TEMPLATE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_APPLY_TEMPLATES">XSLT_TRACE_APPLY_TEMPLATES</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_CALL_TEMPLATE">XSLT_TRACE_CALL_TEMPLATE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_CHOOSE">XSLT_TRACE_CHOOSE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_COMMENT">XSLT_TRACE_COMMENT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_COPY">XSLT_TRACE_COPY</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_COPY_OF">XSLT_TRACE_COPY_OF</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_COPY_TEXT">XSLT_TRACE_COPY_TEXT</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_FOR_EACH">XSLT_TRACE_FOR_EACH</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_IF">XSLT_TRACE_IF</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_KEYS">XSLT_TRACE_KEYS</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_NONE">XSLT_TRACE_NONE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_PI">XSLT_TRACE_PI</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_PROCESS_NODE">XSLT_TRACE_PROCESS_NODE</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_STRIP_SPACES">XSLT_TRACE_STRIP_SPACES</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_TEMPLATES">XSLT_TRACE_TEMPLATES</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_VALUE_OF">XSLT_TRACE_VALUE_OF</a><br />
+<a href="html/libxslt-xsltutils.html#XSLT_TRACE_VARIABLES">XSLT_TRACE_VARIABLES</a><br />
+<a href="html/libxslt-extra.html#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a><br />
+<a href="html/libxslt-extra.html#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a><br />
+</p><h2>Letter _:</h2><p><a href="html/libxslt-xsltexports.html#_REENTRANT">_REENTRANT</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltDecimalFormat">_xsltDecimalFormat</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltDocument">_xsltDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltElemPreComp">_xsltElemPreComp</a><br />
+<a href="html/libxslt-numbersInternals.html#_xsltFormatNumberInfo">_xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-numbersInternals.html#_xsltNumberData">_xsltNumberData</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltRuntimeExtra">_xsltRuntimeExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStackElem">_xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylePreComp">_xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltStylesheet">_xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTemplate">_xsltTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#_xsltTransformContext">_xsltTransformContext</a><br />
+</p><h2>Letter x:</h2><p><a href="html/libxslt-xsltutils.html#xslAddCall">xslAddCall</a><br />
+<a href="html/libxslt-xsltutils.html#xslDebugStatus">xslDebugStatus</a><br />
+<a href="html/libxslt-xsltutils.html#xslDropCall">xslDropCall</a><br />
+<a href="html/libxslt-transform.html#xslHandleDebugger">xslHandleDebugger</a><br />
+<a href="html/libxslt-xsltutils.html#xsltAddCallCallback">xsltAddCallCallback</a><br />
+<a href="html/libxslt-keys.html#xsltAddKey">xsltAddKey</a><br />
+<a href="html/libxslt-variables.html#xsltAddStackElemList">xsltAddStackElemList</a><br />
+<a href="html/libxslt-pattern.html#xsltAddTemplate">xsltAddTemplate</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a><br />
+<a href="html/libxslt-attributes.html#xsltApplyAttributeSet">xsltApplyAttributeSet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyImports">xsltApplyImports</a><br />
+<a href="html/libxslt-transform.html#xsltApplyOneTemplate">xsltApplyOneTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStripSpaces">xsltApplyStripSpaces</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheet">xsltApplyStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a><br />
+<a href="html/libxslt-transform.html#xsltApplyTemplates">xsltApplyTemplates</a><br />
+<a href="html/libxslt-templates.html#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a><br />
+<a href="html/libxslt-templates.html#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a><br />
+<a href="html/libxslt-transform.html#xsltAttribute">xsltAttribute</a><br />
+<a href="html/libxslt-xsltutils.html#xsltCalibrateAdjust">xsltCalibrateAdjust</a><br />
+<a href="html/libxslt-transform.html#xsltCallTemplate">xsltCallTemplate</a><br />
+<a href="html/libxslt-extensions.html#xsltCheckExtPrefix">xsltCheckExtPrefix</a><br />
+<a href="html/libxslt-security.html#xsltCheckRead">xsltCheckRead</a><br />
+<a href="html/libxslt-security.html#xsltCheckWrite">xsltCheckWrite</a><br />
+<a href="html/libxslt-transform.html#xsltChoose">xsltChoose</a><br />
+<a href="html/libxslt-xslt.html#xsltCleanupGlobals">xsltCleanupGlobals</a><br />
+<a href="html/libxslt-pattern.html#xsltCleanupTemplates">xsltCleanupTemplates</a><br />
+<a href="html/libxslt-transform.html#xsltComment">xsltComment</a><br />
+<a href="html/libxslt-pattern.html#xsltCompMatch">xsltCompMatch</a><br />
+<a href="html/libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCompileAttr">xsltCompileAttr</a><br />
+<a href="html/libxslt-pattern.html#xsltCompilePattern">xsltCompilePattern</a><br />
+<a href="html/libxslt-xsltutils.html#xsltComputeSortResult">xsltComputeSortResult</a><br />
+<a href="html/libxslt-transform.html#xsltCopy">xsltCopy</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespace">xsltCopyNamespace</a><br />
+<a href="html/libxslt-namespaces.html#xsltCopyNamespaceList">xsltCopyNamespaceList</a><br />
+<a href="html/libxslt-transform.html#xsltCopyOf">xsltCopyOf</a><br />
+<a href="html/libxslt-transform.html#xsltCopyTextString">xsltCopyTextString</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltCreateRVT">xsltCreateRVT</a><br />
+<a href="html/libxslt-extra.html#xsltDebug">xsltDebug</a><br />
+<a href="html/libxslt-extensions.html#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugStatusCodes">xsltDebugStatusCodes</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormat">xsltDecimalFormat</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDefaultSortFunction">xsltDefaultSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDoSortFunction">xsltDoSortFunction</a><br />
+<a href="html/libxslt-documents.html#xsltDocDefaultLoader">xsltDocDefaultLoader</a><br />
+<a href="html/libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDocument">xsltDocument</a><br />
+<a href="html/libxslt-preproc.html#xsltDocumentComp">xsltDocumentComp</a><br />
+<a href="html/libxslt-transform.html#xsltDocumentElem">xsltDocumentElem</a><br />
+<a href="html/libxslt-functions.html#xsltDocumentFunction">xsltDocumentFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDocumentSortFunction">xsltDocumentSortFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltDropCallCallback">xsltDropCallCallback</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltElemPreComp">xsltElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a><br />
+<a href="html/libxslt-transform.html#xsltElement">xsltElement</a><br />
+<a href="html/libxslt-functions.html#xsltElementAvailableFunction">xsltElementAvailableFunction</a><br />
+<a href="html/libxslt-xslt.html#xsltEngineVersion">xsltEngineVersion</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltEvalAVT">xsltEvalAVT</a><br />
+<a href="html/libxslt-templates.html#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a><br />
+<a href="html/libxslt-variables.html#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a><br />
+<a href="html/libxslt-variables.html#xsltEvalOneUserParam">xsltEvalOneUserParam</a><br />
+<a href="html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalTemplateString">xsltEvalTemplateString</a><br />
+<a href="html/libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathString">xsltEvalXPathString</a><br />
+<a href="html/libxslt-templates.html#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a><br />
+<a href="html/libxslt-extensions.html#xsltExtElementLookup">xsltExtElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtFunctionLookup">xsltExtFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a><br />
+<a href="html/libxslt-preproc.html#xsltExtMarker">xsltExtMarker</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a><br />
+<a href="html/libxslt-documents.html#xsltFindDocument">xsltFindDocument</a><br />
+<a href="html/libxslt-imports.html#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a><br />
+<a href="html/libxslt-imports.html#xsltFindTemplate">xsltFindTemplate</a><br />
+<a href="html/libxslt-transform.html#xsltForEach">xsltForEach</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a><br />
+<a href="html/libxslt-functions.html#xsltFormatNumberFunction">xsltFormatNumberFunction</a><br />
+<a href="html/libxslt-numbersInternals.html#xsltFormatNumberInfo">xsltFormatNumberInfo</a><br />
+<a href="html/libxslt-numbersInternals.html#xsltFormatNumberInfoPtr">xsltFormatNumberInfoPtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeAVTList">xsltFreeAVTList</a><br />
+<a href="html/libxslt-attributes.html#xsltFreeAttributeSetsHashes">xsltFreeAttributeSetsHashes</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeCompMatchList">xsltFreeCompMatchList</a><br />
+<a href="html/libxslt-extensions.html#xsltFreeCtxtExts">xsltFreeCtxtExts</a><br />
+<a href="html/libxslt-keys.html#xsltFreeDocumentKeys">xsltFreeDocumentKeys</a><br />
+<a href="html/libxslt-documents.html#xsltFreeDocuments">xsltFreeDocuments</a><br />
+<a href="html/libxslt-extensions.html#xsltFreeExts">xsltFreeExts</a><br />
+<a href="html/libxslt-variables.html#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a><br />
+<a href="html/libxslt-keys.html#xsltFreeKeys">xsltFreeKeys</a><br />
+<a href="html/libxslt-namespaces.html#xsltFreeNamespaceAliasHashes">xsltFreeNamespaceAliasHashes</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeRVTs">xsltFreeRVTs</a><br />
+<a href="html/libxslt-security.html#xsltFreeSecurityPrefs">xsltFreeSecurityPrefs</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStackElemList">xsltFreeStackElemList</a><br />
+<a href="html/libxslt-documents.html#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a><br />
+<a href="html/libxslt-preproc.html#xsltFreeStylePreComps">xsltFreeStylePreComps</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltFreeStylesheet">xsltFreeStylesheet</a><br />
+<a href="html/libxslt-pattern.html#xsltFreeTemplateHashes">xsltFreeTemplateHashes</a><br />
+<a href="html/libxslt-transform.html#xsltFreeTransformContext">xsltFreeTransformContext</a><br />
+<a href="html/libxslt-functions.html#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a><br />
+<a href="html/libxslt-extra.html#xsltFunctionNodeSet">xsltFunctionNodeSet</a><br />
+<a href="html/libxslt-functions.html#xsltGenerateIdFunction">xsltGenerateIdFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGenericDebug">xsltGenericDebug</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGenericDebugContext">xsltGenericDebugContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGenericError">xsltGenericError</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGenericErrorContext">xsltGenericErrorContext</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetCNsProp">xsltGetCNsProp</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetDebuggerStatus">xsltGetDebuggerStatus</a><br />
+<a href="html/libxslt-security.html#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtData">xsltGetExtData</a><br />
+<a href="html/libxslt-extensions.html#xsltGetExtInfo">xsltGetExtInfo</a><br />
+<a href="html/libxslt-keys.html#xsltGetKey">xsltGetKey</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetNamespace">xsltGetNamespace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetNsProp">xsltGetNsProp</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetPlainNamespace">xsltGetPlainNamespace</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetProfileInformation">xsltGetProfileInformation</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI">xsltGetQNameURI</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetQNameURI2">xsltGetQNameURI2</a><br />
+<a href="html/libxslt-security.html#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a><br />
+<a href="html/libxslt-namespaces.html#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a><br />
+<a href="html/libxslt-pattern.html#xsltGetTemplate">xsltGetTemplate</a><br />
+<a href="html/libxslt-xsltutils.html#xsltGetUTF8Char">xsltGetUTF8Char</a><br />
+<a href="html/libxslt-transform.html#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a><br />
+<a href="html/libxslt-xsltutils.html#xsltHandleDebuggerCallback">xsltHandleDebuggerCallback</a><br />
+<a href="html/libxslt-transform.html#xsltIf">xsltIf</a><br />
+<a href="html/libxslt-extensions.html#xsltInitCtxtExts">xsltInitCtxtExts</a><br />
+<a href="html/libxslt-keys.html#xsltInitCtxtKeys">xsltInitCtxtKeys</a><br />
+<a href="html/libxslt-extensions.html#xsltInitElemPreComp">xsltInitElemPreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltIsBlank">xsltIsBlank</a><br />
+<a href="html/libxslt-functions.html#xsltKeyFunction">xsltKeyFunction</a><br />
+<a href="html/libxslt-xslt.html#xsltLibxmlVersion">xsltLibxmlVersion</a><br />
+<a href="html/libxslt-xslt.html#xsltLibxsltVersion">xsltLibxsltVersion</a><br />
+<a href="html/libxslt-documents.html#xsltLoadDocument">xsltLoadDocument</a><br />
+<a href="html/libxslt-documents.html#xsltLoadStyleDocument">xsltLoadStyleDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a><br />
+<a href="html/libxslt-documents.html#xsltLoadType">xsltLoadType</a><br />
+<a href="html/libxslt-pattern.html#xsltMatchPattern">xsltMatchPattern</a><br />
+<a href="html/libxslt-xslt.html#xsltMaxDepth">xsltMaxDepth</a><br />
+<a href="html/libxslt-xsltutils.html#xsltMessage">xsltMessage</a><br />
+<a href="html/libxslt-namespaces.html#xsltNamespaceAlias">xsltNamespaceAlias</a><br />
+<a href="html/libxslt-imports.html#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a><br />
+<a href="html/libxslt-documents.html#xsltNewDocument">xsltNewDocument</a><br />
+<a href="html/libxslt-extensions.html#xsltNewElemPreComp">xsltNewElemPreComp</a><br />
+<a href="html/libxslt-security.html#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a><br />
+<a href="html/libxslt-documents.html#xsltNewStyleDocument">xsltNewStyleDocument</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltNewTransformContext">xsltNewTransformContext</a><br />
+<a href="html/libxslt-imports.html#xsltNextImport">xsltNextImport</a><br />
+<a href="html/libxslt-pattern.html#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a><br />
+<a href="html/libxslt-transform.html#xsltNumber">xsltNumber</a><br />
+<a href="html/libxslt-numbersInternals.html#xsltNumberData">xsltNumberData</a><br />
+<a href="html/libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltOutputType">xsltOutputType</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalParam">xsltParseGlobalParam</a><br />
+<a href="html/libxslt-variables.html#xsltParseGlobalVariable">xsltParseGlobalVariable</a><br />
+<a href="html/libxslt-attributes.html#xsltParseStylesheetAttributeSet">xsltParseStylesheetAttributeSet</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetFile">xsltParseStylesheetFile</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetImport">xsltParseStylesheetImport</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a><br />
+<a href="html/libxslt-imports.html#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetParam">xsltParseStylesheetParam</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a><br />
+<a href="html/libxslt-variables.html#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a><br />
+<a href="html/libxslt-xsltutils.html#xsltPrintErrorContext">xsltPrintErrorContext</a><br />
+<a href="html/libxslt-transform.html#xsltProcessingInstruction">xsltProcessingInstruction</a><br />
+<a href="html/libxslt-transform.html#xsltProfileStylesheet">xsltProfileStylesheet</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a><br />
+<a href="html/libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a><br />
+<a href="html/libxslt-transform.html#xsltRegisterAllElement">xsltRegisterAllElement</a><br />
+<a href="html/libxslt-extra.html#xsltRegisterAllExtras">xsltRegisterAllExtras</a><br />
+<a href="html/libxslt-functions.html#xsltRegisterAllFunctions">xsltRegisterAllFunctions</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtElement">xsltRegisterExtElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtFunction">xsltRegisterExtFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModule">xsltRegisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a><br />
+<a href="html/libxslt-extra.html#xsltRegisterExtras">xsltRegisterExtras</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a><br />
+<a href="html/libxslt-extensions.html#xsltRegisterTestModule">xsltRegisterTestModule</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a><br />
+<a href="html/libxslt-attributes.html#xsltResolveStylesheetAttributeSet">xsltResolveStylesheetAttributeSet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheet">xsltRunStylesheet</a><br />
+<a href="html/libxslt-transform.html#xsltRunStylesheetUser">xsltRunStylesheetUser</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRuntimeExtra">xsltRuntimeExtra</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltRuntimeExtraPtr">xsltRuntimeExtraPtr</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveProfiling">xsltSaveProfiling</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultTo">xsltSaveResultTo</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFd">xsltSaveResultToFd</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFile">xsltSaveResultToFile</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToFilename">xsltSaveResultToFilename</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSaveResultToString">xsltSaveResultToString</a><br />
+<a href="html/libxslt-security.html#xsltSecurityAllow">xsltSecurityAllow</a><br />
+<a href="html/libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a><br />
+<a href="html/libxslt-security.html#xsltSecurityForbid">xsltSecurityForbid</a><br />
+<a href="html/libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a><br />
+<a href="html/libxslt-security.html#xsltSecurityPrefs">xsltSecurityPrefs</a><br />
+<a href="html/libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a><br />
+<a href="html/libxslt-security.html#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetDebuggerStatus">xsltSetDebuggerStatus</a><br />
+<a href="html/libxslt-security.html#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a><br />
+<a href="html/libxslt-documents.html#xsltSetLoaderFunc">xsltSetLoaderFunc</a><br />
+<a href="html/libxslt-security.html#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetSortFunc">xsltSetSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a><br />
+<a href="html/libxslt-transform.html#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a><br />
+<a href="html/libxslt-extensions.html#xsltShutdownExts">xsltShutdownExts</a><br />
+<a href="html/libxslt-transform.html#xsltSort">xsltSort</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a><br />
+<a href="html/libxslt-xsltutils.html#xsltSplitQName">xsltSplitQName</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStackElem">xsltStackElem</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltStyleGetExtData">xsltStyleGetExtData</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStylePreComp">xsltStylePreComp</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a><br />
+<a href="html/libxslt-preproc.html#xsltStylePreCompute">xsltStylePreCompute</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStyleType">xsltStyleType</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStylesheet">xsltStylesheet</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a><br />
+<a href="html/libxslt-functions.html#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTemplate">xsltTemplate</a><br />
+<a href="html/libxslt-templates.html#xsltTemplateProcess">xsltTemplateProcess</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a><br />
+<a href="html/libxslt-pattern.html#xsltTestCompMatchList">xsltTestCompMatchList</a><br />
+<a href="html/libxslt-transform.html#xsltText">xsltText</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTimestamp">xsltTimestamp</a><br />
+<a href="html/libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformContext">xsltTransformContext</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a><br />
+<a href="html/libxslt-xsltutils.html#xsltTransformError">xsltTransformError</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a><br />
+<a href="html/libxslt-xsltInternals.html#xsltTransformState">xsltTransformState</a><br />
+<a href="html/libxslt-functions.html#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModule">xsltUnregisterExtModule</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleElement">xsltUnregisterExtModuleElement</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleFunction">xsltUnregisterExtModuleFunction</a><br />
+<a href="html/libxslt-extensions.html#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a><br />
+<a href="html/libxslt-transform.html#xsltValueOf">xsltValueOf</a><br />
+<a href="html/libxslt-variables.html#xsltVariableLookup">xsltVariableLookup</a><br />
+<a href="html/libxslt-xsltutils.html#xsltXPathCompile">xsltXPathCompile</a><br />
+<a href="html/libxslt-functions.html#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a><br />
+<a href="html/libxslt-extensions.html#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a><br />
+<a href="html/libxslt-variables.html#xsltXPathVariableLookup">xsltXPathVariableLookup</a><br />
+</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIchunk0.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIchunk0.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIchunk0.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>API Alphabetic Index C-s for libexslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>API Alphabetic Index C-s for libexslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="../index.html" style="font-weight:bold">libxslt</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2 align="center"><a href="APIchunk0.html">C-s</a>
+</h2><h2>Letter C:</h2><dl><dt>Common</dt><dd><a href="html/libexslt-exslt.html#exsltCommonRegister">exsltCommonRegister</a><br />
+</dd></dl><h2>Letter D:</h2><dl><dt>Dates</dt><dd><a href="html/libexslt-exslt.html#exsltDateRegister">exsltDateRegister</a><br />
+</dd><dt>Dynamic</dt><dd><a href="html/libexslt-exslt.html#exsltDynRegister">exsltDynRegister</a><br />
+</dd></dl><h2>Letter E:</h2><dl><dt>EXSLT</dt><dd><a href="html/libexslt-exslt.html#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_CRYPTO_NAMESPACE">EXSLT_CRYPTO_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_MATH_NAMESPACE">EXSLT_MATH_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#exsltCommonRegister">exsltCommonRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltDateRegister">exsltDateRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltDynRegister">exsltDynRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltFuncRegister">exsltFuncRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltMathRegister">exsltMathRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltRegisterAll">exsltRegisterAll</a><br />
+<a href="html/libexslt-exslt.html#exsltSetsRegister">exsltSetsRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltStrRegister">exsltStrRegister</a><br />
+</dd></dl><h2>Letter F:</h2><dl><dt>Functions</dt><dd><a href="html/libexslt-exslt.html#exsltFuncRegister">exsltFuncRegister</a><br />
+</dd></dl><h2>Letter M:</h2><dl><dt>Math</dt><dd><a href="html/libexslt-exslt.html#exsltMathRegister">exsltMathRegister</a><br />
+</dd></dl><h2>Letter N:</h2><dl><dt>Namespace</dt><dd><a href="html/libexslt-exslt.html#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_CRYPTO_NAMESPACE">EXSLT_CRYPTO_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_MATH_NAMESPACE">EXSLT_MATH_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#SAXON_NAMESPACE">SAXON_NAMESPACE</a><br />
+</dd></dl><h2>Letter R:</h2><dl><dt>Registers</dt><dd><a href="html/libexslt-exslt.html#exsltCommonRegister">exsltCommonRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltDateRegister">exsltDateRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltDynRegister">exsltDynRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltFuncRegister">exsltFuncRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltMathRegister">exsltMathRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltRegisterAll">exsltRegisterAll</a><br />
+<a href="html/libexslt-exslt.html#exsltSaxonRegister">exsltSaxonRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltSetsRegister">exsltSetsRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltStrRegister">exsltStrRegister</a><br />
+</dd></dl><h2>Letter S:</h2><dl><dt>SAXON</dt><dd><a href="html/libexslt-exslt.html#SAXON_NAMESPACE">SAXON_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#exsltSaxonRegister">exsltSaxonRegister</a><br />
+</dd><dt>Sets</dt><dd><a href="html/libexslt-exslt.html#exsltSetsRegister">exsltSetsRegister</a><br />
+</dd><dt>Strings</dt><dd><a href="html/libexslt-exslt.html#exsltStrRegister">exsltStrRegister</a><br />
+</dd></dl><h2>Letter T:</h2><dl><dt>Times</dt><dd><a href="html/libexslt-exslt.html#exsltDateRegister">exsltDateRegister</a><br />
+</dd></dl><h2>Letter a:</h2><dl><dt>all</dt><dd><a href="html/libexslt-exslt.html#exsltRegisterAll">exsltRegisterAll</a><br />
+</dd><dt>available</dt><dd><a href="html/libexslt-exslt.html#exsltRegisterAll">exsltRegisterAll</a><br />
+</dd></dl><h2>Letter c:</h2><dl><dt>common</dt><dd><a href="html/libexslt-exslt.html#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a><br />
+</dd><dt>crypto</dt><dd><a href="html/libexslt-exslt.html#EXSLT_CRYPTO_NAMESPACE">EXSLT_CRYPTO_NAMESPACE</a><br />
+</dd></dl><h2>Letter d:</h2><dl><dt>date</dt><dd><a href="html/libexslt-exslt.html#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a><br />
+</dd><dt>dynamic</dt><dd><a href="html/libexslt-exslt.html#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a><br />
+</dd></dl><h2>Letter e:</h2><dl><dt>extension</dt><dd><a href="html/libexslt-exslt.html#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#exsltSaxonRegister">exsltSaxonRegister</a><br />
+</dd><dt>extensions</dt><dd><a href="html/libexslt-exslt.html#SAXON_NAMESPACE">SAXON_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#exsltRegisterAll">exsltRegisterAll</a><br />
+</dd></dl><h2>Letter f:</h2><dl><dt>for</dt><dd><a href="html/libexslt-exslt.html#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_CRYPTO_NAMESPACE">EXSLT_CRYPTO_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_MATH_NAMESPACE">EXSLT_MATH_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#SAXON_NAMESPACE">SAXON_NAMESPACE</a><br />
+</dd><dt>functions</dt><dd><a href="html/libexslt-exslt.html#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_CRYPTO_NAMESPACE">EXSLT_CRYPTO_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_MATH_NAMESPACE">EXSLT_MATH_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#SAXON_NAMESPACE">SAXON_NAMESPACE</a><br />
+</dd></dl><h2>Letter m:</h2><dl><dt>math</dt><dd><a href="html/libexslt-exslt.html#EXSLT_MATH_NAMESPACE">EXSLT_MATH_NAMESPACE</a><br />
+</dd><dt>module</dt><dd><a href="html/libexslt-exslt.html#exsltCommonRegister">exsltCommonRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltDateRegister">exsltDateRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltDynRegister">exsltDynRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltFuncRegister">exsltFuncRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltMathRegister">exsltMathRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltSaxonRegister">exsltSaxonRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltSetsRegister">exsltSetsRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltStrRegister">exsltStrRegister</a><br />
+</dd></dl><h2>Letter s:</h2><dl><dt>set</dt><dd><a href="html/libexslt-exslt.html#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a><br />
+</dd><dt>strings</dt><dd><a href="html/libexslt-exslt.html#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a><br />
+</dd></dl><h2 align="center"><a href="APIchunk0.html">C-s</a>
+</h2><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIconstructors.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIconstructors.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIconstructors.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>List of constructors for libexslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>List of constructors for libexslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="../index.html" style="font-weight:bold">libxslt</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIfiles.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIfiles.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIfiles.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>List of Symbols per Module for libexslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>List of Symbols per Module for libexslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="../index.html" style="font-weight:bold">libxslt</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2><a name="exslt" id="exslt">Module exslt</a>:</h2><p><a href="html/libexslt-exslt.html#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_CRYPTO_NAMESPACE">EXSLT_CRYPTO_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_MATH_NAMESPACE">EXSLT_MATH_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#SAXON_NAMESPACE">SAXON_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#exsltCommonRegister">exsltCommonRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltCryptoRegister">exsltCryptoRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltDateRegister">exsltDateRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltDynRegister">exsltDynRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltFuncRegister">exsltFuncRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltLibexsltVersion">exsltLibexsltVersion</a><br />
+<a href="html/libexslt-exslt.html#exsltLibraryVersion">exsltLibraryVersion</a><br />
+<a href="html/libexslt-exslt.html#exsltLibxmlVersion">exsltLibxmlVersion</a><br />
+<a href="html/libexslt-exslt.html#exsltLibxsltVersion">exsltLibxsltVersion</a><br />
+<a href="html/libexslt-exslt.html#exsltMathRegister">exsltMathRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltRegisterAll">exsltRegisterAll</a><br />
+<a href="html/libexslt-exslt.html#exsltSaxonRegister">exsltSaxonRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltSetsRegister">exsltSetsRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltStrRegister">exsltStrRegister</a><br />
+</p><h2><a name="exsltexports" id="exsltexports">Module exsltexports</a>:</h2><p><a href="html/libexslt-exsltexports.html#EXSLTCALL">EXSLTCALL</a><br />
+<a href="html/libexslt-exsltexports.html#EXSLTPUBFUN">EXSLTPUBFUN</a><br />
+<a href="html/libexslt-exsltexports.html#EXSLTPUBVAR">EXSLTPUBVAR</a><br />
+<a href="html/libexslt-exsltexports.html#LIBEXSLT_PUBLIC">LIBEXSLT_PUBLIC</a><br />
+<a href="html/libexslt-exsltexports.html#_REENTRANT">_REENTRANT</a><br />
+</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIfunctions.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIfunctions.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIfunctions.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>List of function manipulating types in libexslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>List of function manipulating types in libexslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="../index.html" style="font-weight:bold">libxslt</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIsymbols.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIsymbols.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/APIsymbols.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Alphabetic List of Symbols in libexslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>Alphabetic List of Symbols in libexslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="../index.html" style="font-weight:bold">libxslt</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Letter E:</h2><p><a href="html/libexslt-exsltexports.html#EXSLTCALL">EXSLTCALL</a><br />
+<a href="html/libexslt-exsltexports.html#EXSLTPUBFUN">EXSLTPUBFUN</a><br />
+<a href="html/libexslt-exsltexports.html#EXSLTPUBVAR">EXSLTPUBVAR</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_CRYPTO_NAMESPACE">EXSLT_CRYPTO_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_MATH_NAMESPACE">EXSLT_MATH_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a><br />
+<a href="html/libexslt-exslt.html#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a><br />
+</p><h2>Letter L:</h2><p><a href="html/libexslt-exsltexports.html#LIBEXSLT_PUBLIC">LIBEXSLT_PUBLIC</a><br />
+</p><h2>Letter S:</h2><p><a href="html/libexslt-exslt.html#SAXON_NAMESPACE">SAXON_NAMESPACE</a><br />
+</p><h2>Letter _:</h2><p><a href="html/libexslt-exsltexports.html#_REENTRANT">_REENTRANT</a><br />
+</p><h2>Letter e:</h2><p><a href="html/libexslt-exslt.html#exsltCommonRegister">exsltCommonRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltCryptoRegister">exsltCryptoRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltDateRegister">exsltDateRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltDynRegister">exsltDynRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltFuncRegister">exsltFuncRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltLibexsltVersion">exsltLibexsltVersion</a><br />
+<a href="html/libexslt-exslt.html#exsltLibraryVersion">exsltLibraryVersion</a><br />
+<a href="html/libexslt-exslt.html#exsltLibxmlVersion">exsltLibxmlVersion</a><br />
+<a href="html/libexslt-exslt.html#exsltLibxsltVersion">exsltLibxsltVersion</a><br />
+<a href="html/libexslt-exslt.html#exsltMathRegister">exsltMathRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltRegisterAll">exsltRegisterAll</a><br />
+<a href="html/libexslt-exslt.html#exsltSaxonRegister">exsltSaxonRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltSetsRegister">exsltSetsRegister</a><br />
+<a href="html/libexslt-exslt.html#exsltStrRegister">exsltStrRegister</a><br />
+</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/bugs.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/bugs.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/bugs.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Reporting bugs and getting help</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>Reporting bugs and getting help</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="../index.html" style="font-weight:bold">libxslt</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>Well, bugs or missing features are always possible, and I will make a
+point of fixing them in a timely fashion. The best way to report a bug is to
+use the <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Gnome
+bug tracking database</a> (make sure to use the "libxslt" module name). I
+look at reports there regularly and it's good to have a reminder when a bug
+is still open. Be sure to specify that the bug is for the package libxslt.</p><p>For small problems you can try to get help on IRC, the #xml channel on
+irc.gnome.org (port 6667) usually have a few person subscribed which may help
+(but there is no guarantee and if a real issue is raised it should go on the
+mailing-list for archival).</p><p>There is also a mailing-list <a href="mailto:xslt at gnome.org">xslt at gnome.org</a> for libxslt, with an <a href="http://mail.gnome.org/archives/xslt/">on-line archive</a>. To subscribe
+to this list, please visit the <a href="http://mail.gnome.org/mailman/listinfo/xslt">associated Web</a> page
+and follow the instructions.</p><p>Alternatively, you can just send the bug to the <a href="mailto:xslt at gnome.org">xslt at gnome.org</a> list, if it's really libxslt
+related I will approve it.. Please do not send me mail directly especially
+for portability problem, it makes things really harder to track and in some
+cases I'm not the best person to answer a given question, ask the list
+instead. <strong>Do not send code, I won't debug it</strong> (but patches are
+really appreciated!).</p><p>Check the following too <span style="color: #E50000">before
+posting</span>:</p><ul><li><a href="search.php">use the search engine</a> to get informations
+    related to your problem.</li>
+  <li>make sure you are <a href="ftp://xmlsoft.org/">using a recent
+    version</a>, and that the problem still shows up in those</li>
+  <li>check the <a href="http://mail.gnome.org/archives/xslt/">list
+    archives</a> to see if the problem was reported already, in this case
+    there is probably a fix available, similarly check the <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">registered
+    open bugs</a></li>
+  <li>make sure you can reproduce the bug with xsltproc, a very useful thing
+    to do is run the transformation with -v argument and redirect the
+    standard error to a file, then search in this file for the transformation
+    logs just preceding the possible problem</li>
+  <li>Please send the command showing the error as well as the input and
+    stylesheet (as an attachment)</li>
+</ul><p>Then send the bug with associated informations to reproduce it to the <a href="mailto:xslt at gnome.org">xslt at gnome.org</a> list; if it's really libxslt
+related I will approve it. Please do not send mail to me directly, it makes
+things really hard to track and in some cases I am not the best person to
+answer a given question, ask on the list.</p><p>To <span style="color: #E50000">be really clear about support</span>:</p><ul><li>Support or help <span style="color: #E50000">request MUST be sent to
+    the list or on bugzilla</span> in case of problems, so that the Question
+    and Answers can be shared publicly. Failing to do so carries the implicit
+    message "I want free support but I don't want to share the benefits with
+    others" and is not welcome. I will automatically Carbon-Copy the
+    xslt at gnome.org mailing list for any technical reply made about libxml2 or
+    libxslt.</li>
+  <li>There is <span style="color: #E50000">no garantee for support</span>,
+    if your question remains unanswered after a week, repost it, making sure
+    you gave all the detail needed and the informations requested.</li>
+  <li>Failing to provide informations as requested or double checking first
+    for prior feedback also carries the implicit message "the time of the
+    library maintainers is less valuable than my time" and might not be
+    welcome.</li>
+</ul><p>Of course, bugs reports with a suggested patch for fixing them will
+probably be processed faster.</p><p>If you're looking for help, a quick look at <a href="http://mail.gnome.org/archives/xslt/">the list archive</a> may actually
+provide the answer, I usually send source samples when answering libxslt
+usage questions. The <a href="html/libxslt-lib.html#LIBXSLT-LIB">auto-generated documentation</a> is
+not as polished as I would like (I need to learn more about Docbook), but
+it's a good starting point.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/docs.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/docs.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/docs.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Documentation</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>Documentation</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="../index.html" style="font-weight:bold">libxslt</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>There are some on-line resources about using libxslt:</p><ol><li>Check the <a href="html/libxslt-lib.html#LIBXSLT-LIB">API
+    documentation</a> automatically extracted from code comments (using
+        the program apibuild.py, developed for libxml, together with the
+	    xsl script 'newapi.xsl' and the libxslt xsltproc program).</li>
+  <li>Look at the <a href="http://mail.gnome.org/archives/xslt/">mailing-list
+    archive</a>.</li>
+  <li>Of course since libxslt is based on libxml, it's a good idea to at
+    least read <a href="http://xmlsoft.org/">libxml description</a></li>
+</ol><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/downloads.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/downloads.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/downloads.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Downloads</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>Downloads</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="../index.html" style="font-weight:bold">libxslt</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>The latest versions of libxslt can be found on <a href="ftp://xmlsoft.org/">xmlsoft.org</a> (<a href="ftp://speakeasy.rpmfind.net/pub/libxml/">Seattle</a>, <a href="ftp://fr.rpmfind.net/pub/libxml/">France</a>) or on the <a href="ftp://ftp.gnome.org/pub/GNOME/MIRRORS.html">Gnome FTP server</a> as a
+<a href="ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/">source
+archive</a>, Antonin Sprinzl also provides <a href="ftp://gd.tuwien.ac.at/pub/libxml/">a mirror in Austria</a>. (NOTE that
+you need the <a href="http://rpmfind.net/linux/RPM/libxml2.html">libxml2</a>,
+<a href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml2-devel</a>,
+<a href="http://rpmfind.net/linux/RPM/libxslt.html">libxslt</a> and <a href="http://rpmfind.net/linux/RPM/libxslt-devel.html">libxslt-devel</a>
+packages installed to compile applications using libxslt.) <a href="mailto:igor at zlatkovic.com">Igor  Zlatkovic</a> is now the maintainer of
+the Windows port, <a href="http://www.zlatkovic.com/projects/libxml/index.html">he provides
+binaries</a>. <a href="mailto:Gary.Pennington at sun.com">Gary Pennington</a>
+provides <a href="http://garypennington.net/libxml2/">Solaris binaries</a>.
+<a href="mailto:Steve.Ball at zveno.com">Steve Ball</a> provides <a href="http://www.zveno.com/open_source/libxml2xslt.html">Mac Os X
+binaries</a>.</p><p><a name="Contribs" id="Contribs">Contribs:</a></p><p>I do accept external contributions, especially if compiling on another
+platform, get in touch with me to upload the package. I will keep them in the
+<a href="ftp://xmlsoft.org/contribs/">contrib directory</a></p><p>Libxslt is also available from CVS:</p><ul><li><p>The <a href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&amp;dir=libxslt">Gnome
+    CVS base</a>. Check the <a href="http://developer.gnome.org/tools/cvs.html">Gnome CVS Tools</a>
+    page; the CVS module is <b>libxslt</b>.</p>
+  </li>
+  <li><a href="ftp://xmlsoft.org/XSLT/cvs-snapshot.tar.gz">daily snapshots
+    from CVS</a> are also provided</li>
+</ul><p></p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/exslt.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/exslt.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/exslt.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,214 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+    "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+  <title>The EXSLT C library for Gnome</title>
+  <meta name="GENERATOR" content="amaya 5.1">
+  <meta http-equiv="Content-Type" content="text/html">
+</head>
+
+<body bgcolor="#ffffff">
+<h1 align="center">The EXSLT C library for Gnome</h1>
+
+<h1 style="text-align: center">libexslt</h1>
+
+<p>Libexslt is the <a href="http://www.exslt.org">EXSLT</a> C library
+   developed for libxslt (a part of the Gnome project). Much of the
+   initial work on the library was done by Thomas Broyer.  EXSLT itself
+   is a community initiative to provide extensions to XSLT.
+
+<p>This library is free software and can be reused in commercial applications
+   (see the <a href="intro.html">intro</a>)</p>
+
+<p></p>
+
+<p>Logo designed by <a href="mailto:liyanage at access.ch">Marc Liyanage</a>.</p>
+
+<h2><a name="Introducti">Introduction</a></h2>
+
+<p>This document describes <a href="http://xmlsoft.org/XSLT/">libxslt</a>,
+the <a href="http://www.w3.org/TR/xslt">XSLT</a> C library developed for the
+<a href="http://www.gnome.org/">Gnome</a> project.</p>
+
+<p>Here are some key points about libxslt:</p>
+<ul>
+  <li>Libxslt is a C implementation</li>
+  <li>Libxslt is based on libxml for XML parsing, tree manipulation and XPath
+    support</li>
+  <li>It is written in plain C, making as few assumptions as possible, and
+    sticking closely to ANSI C/POSIX for easy embedding. Should works on
+    Linux/Unix/Windows.</li>
+  <li>This library is released under the <a
+    href="http://www.opensource.org/licenses/mit-license.html">MIT
+  Licence</a></li>
+  <li>Though not designed primarily with performances in mind, libxslt seems
+    to be a relatively fast processor.</li>
+</ul>
+
+<h2><a name="Documentat">Documentation</a></h2>
+
+<p>There are some on-line resources about using libxslt:</p>
+<ol>
+  <li>Check the <a href="html/libxslt-lib.html#LIBXSLT-LIB">API
+    documentation</a> automatically extracted from code comments (using
+        the program apibuild.py, developed for libxml, together with the
+	    xsl script 'newapi.xsl' and the libxslt xsltproc program).</li>
+  <li>Look at the <a href="http://mail.gnome.org/archives/xslt/">mailing-list
+    archive</a>.</li>
+  <li>Of course since libxslt is based on libxml, it's a good idea to at
+    least read <a href="http://xmlsoft.org/">libxml description</a></li>
+</ol>
+
+<h2><a name="Reporting">Reporting bugs and getting help</a></h2>
+
+<p>Well, bugs or missing features are always possible, and I will make a
+point of fixing them in a timely fashion. The best way to report a bug is to
+use the <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Gnome
+bug tracking database</a> (make sure to use the "libxslt" module name). I
+look at reports there regularly and it's good to have a reminder when a bug
+is still open. Be sure to specify that the bug is for the package libxslt.</p>
+
+<p>For small problems you can try to get help on IRC, the #xml channel on
+irc.gnome.org (port 6667) usually have a few person subscribed which may help
+(but there is no guarantee and if a real issue is raised it should go on the
+mailing-list for archival).</p>
+
+<p>There is also a mailing-list <a
+href="mailto:xslt at gnome.org">xslt at gnome.org</a> for libxslt, with an <a
+href="http://mail.gnome.org/archives/xslt/">on-line archive</a>. To subscribe
+to this list, please visit the <a
+href="http://mail.gnome.org/mailman/listinfo/xslt">associated Web</a> page
+and follow the instructions.</p>
+
+<p>Alternatively, you can just send the bug to the <a
+href="mailto:xslt at gnome.org">xslt at gnome.org</a> list, if it's really libxslt
+related I will approve it.. Please do not send me mail directly especially
+for portability problem, it makes things really harder to track and in some
+cases I'm not the best person to answer a given question, ask the list
+instead. <strong>Do not send code, I won't debug it</strong> (but patches are
+really appreciated!).</p>
+
+<p>Check the following too <span style="color: #E50000">before
+posting</span>:</p>
+<ul>
+  <li><a href="search.php">use the search engine</a> to get informations
+    related to your problem.</li>
+  <li>make sure you are <a href="ftp://xmlsoft.org/">using a recent
+    version</a>, and that the problem still shows up in those</li>
+  <li>check the <a href="http://mail.gnome.org/archives/xslt/">list
+    archives</a> to see if the problem was reported already, in this case
+    there is probably a fix available, similarly check the <a
+    href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">registered
+    open bugs</a></li>
+  <li>make sure you can reproduce the bug with xsltproc, a very useful thing
+    to do is run the transformation with -v argument and redirect the
+    standard error to a file, then search in this file for the transformation
+    logs just preceding the possible problem</li>
+  <li>Please send the command showing the error as well as the input and
+    stylesheet (as an attachment)</li>
+</ul>
+
+<p>Then send the bug with associated informations to reproduce it to the <a
+href="mailto:xslt at gnome.org">xslt at gnome.org</a> list; if it's really libxslt
+related I will approve it. Please do not send mail to me directly, it makes
+things really hard to track and in some cases I am not the best person to
+answer a given question, ask on the list.</p>
+
+<p>To <span style="color: #E50000">be really clear about support</span>:</p>
+<ul>
+  <li>Support or help <span style="color: #E50000">request MUST be sent to
+    the list or on bugzilla</span> in case of problems, so that the Question
+    and Answers can be shared publicly. Failing to do so carries the implicit
+    message "I want free support but I don't want to share the benefits with
+    others" and is not welcome. I will automatically Carbon-Copy the
+    xslt at gnome.org mailing list for any technical reply made about libxml2 or
+    libxslt.</li>
+  <li>There is <span style="color: #E50000">no garantee for support</span>,
+    if your question remains unanswered after a week, repost it, making sure
+    you gave all the detail needed and the informations requested.</li>
+  <li>Failing to provide informations as requested or double checking first
+    for prior feedback also carries the implicit message "the time of the
+    library maintainers is less valuable than my time" and might not be
+    welcome.</li>
+</ul>
+
+<p>Of course, bugs reports with a suggested patch for fixing them will
+probably be processed faster.</p>
+
+<p>If you're looking for help, a quick look at <a
+href="http://mail.gnome.org/archives/xslt/">the list archive</a> may actually
+provide the answer, I usually send source samples when answering libxslt
+usage questions. The <a
+href="html/libxslt-lib.html#LIBXSLT-LIB">auto-generated documentation</a> is
+not as polished as I would like (I need to learn more about Docbook), but
+it's a good starting point.</p>
+
+<h2><a name="help">How to help</a></h2>
+
+<p>You can help the project in various ways, the best thing to do first is to
+subscribe to the mailing-list as explained before, check the <a
+href="http://mail.gnome.org/archives/xslt/">archives </a>and the <a
+href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Gnome bug
+database:</a>:</p>
+<ol>
+  <li>provide patches when you find problems</li>
+  <li>provide the diffs when you port libxslt to a new platform. They may not
+    be integrated in all cases but help pinpointing portability problems
+  and</li>
+  <li>provide documentation fixes (either as patches to the code comments or
+    as HTML diffs).</li>
+  <li>provide new documentations pieces (translations, examples, etc ...)</li>
+  <li>Check the TODO file and try to close one of the items</li>
+  <li>take one of the points raised in the archive or the bug database and
+    provide a fix. <a href="mailto:daniel at veillard.com">Get in touch with me
+    </a>before to avoid synchronization problems and check that the suggested
+    fix will fit in nicely :-)</li>
+</ol>
+
+<h2><a name="Downloads">Downloads</a></h2>
+
+<p>The latest versions of libxslt can be found on <a
+href="ftp://xmlsoft.org/">xmlsoft.org</a> (<a
+href="ftp://speakeasy.rpmfind.net/pub/libxml/">Seattle</a>, <a
+href="ftp://fr.rpmfind.net/pub/libxml/">France</a>) or on the <a
+href="ftp://ftp.gnome.org/pub/GNOME/MIRRORS.html">Gnome FTP server</a> as a
+<a href="ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/">source
+archive</a>, Antonin Sprinzl also provides <a
+href="ftp://gd.tuwien.ac.at/pub/libxml/">a mirror in Austria</a>. (NOTE that
+you need the <a href="http://rpmfind.net/linux/RPM/libxml2.html">libxml2</a>,
+<a href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml2-devel</a>,
+<a href="http://rpmfind.net/linux/RPM/libxslt.html">libxslt</a> and <a
+href="http://rpmfind.net/linux/RPM/libxslt-devel.html">libxslt-devel</a>
+packages installed to compile applications using libxslt.) <a
+href="mailto:igor at zlatkovic.com">Igor  Zlatkovic</a> is now the maintainer of
+the Windows port, <a
+href="http://www.zlatkovic.com/projects/libxml/index.html">he provides
+binaries</a>. <a href="mailto:Gary.Pennington at sun.com">Gary Pennington</a>
+provides <a href="http://garypennington.net/libxml2/">Solaris binaries</a>.
+<a href="mailto:Steve.Ball at zveno.com">Steve Ball</a> provides <a
+href="http://www.zveno.com/open_source/libxml2xslt.html">Mac Os X
+binaries</a>.</p>
+
+<p><a name="Contribs">Contribs:</a></p>
+
+<p>I do accept external contributions, especially if compiling on another
+platform, get in touch with me to upload the package. I will keep them in the
+<a href="ftp://xmlsoft.org/contribs/">contrib directory</a></p>
+
+<p>Libxslt is also available from CVS:</p>
+<ul>
+  <li><p>The <a
+    href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&amp;dir=libxslt">Gnome
+    CVS base</a>. Check the <a
+    href="http://developer.gnome.org/tools/cvs.html">Gnome CVS Tools</a>
+    page; the CVS module is <b>libxslt</b>.</p>
+  </li>
+  <li><a href="ftp://xmlsoft.org/XSLT/cvs-snapshot.tar.gz">daily snapshots
+    from CVS</a> are also provided</li>
+</ul>
+
+<p></p>
+
+<p><a href="mailto:daniel at veillard.com">Daniel Veillard</a></p>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/help.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/help.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/help.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>How to help</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>How to help</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="../index.html" style="font-weight:bold">libxslt</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>You can help the project in various ways, the best thing to do first is to
+subscribe to the mailing-list as explained before, check the <a href="http://mail.gnome.org/archives/xslt/">archives </a>and the <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Gnome bug
+database:</a>:</p><ol><li>provide patches when you find problems</li>
+  <li>provide the diffs when you port libxslt to a new platform. They may not
+    be integrated in all cases but help pinpointing portability problems
+  and</li>
+  <li>provide documentation fixes (either as patches to the code comments or
+    as HTML diffs).</li>
+  <li>provide new documentations pieces (translations, examples, etc ...)</li>
+  <li>Check the TODO file and try to close one of the items</li>
+  <li>take one of the points raised in the archive or the bug database and
+    provide a fix. <a href="mailto:daniel at veillard.com">Get in touch with me
+    </a>before to avoid synchronization problems and check that the suggested
+    fix will fit in nicely :-)</li>
+</ol><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/book1.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/book1.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/book1.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Reference Manual for libexslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>Reference Manual for libexslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libexslt-exslt.html">exslt</a>: </li><li><a href="libexslt-exsltexports.html">exsltexports</a>: </li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/home.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/home.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/index.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/index.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/index.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Reference Manual for libexslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>Reference Manual for libexslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libexslt-exslt.html">exslt</a>: </li><li><a href="libexslt-exsltexports.html">exsltexports</a>: </li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/left.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-exslt.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-exslt.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-exslt.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module exslt from libexslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>Module exslt from libexslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libexslt-exsltexports.html">exsltexports</a></th><td><a accesskey="n" href="libexslt-exsltexports.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#EXSLT_CRYPTO_NAMESPACE">EXSLT_CRYPTO_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#EXSLT_MATH_NAMESPACE">EXSLT_MATH_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#SAXON_NAMESPACE">SAXON_NAMESPACE</a></pre><pre class="programlisting">void	<a href="#exsltCommonRegister">exsltCommonRegister</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#exsltCryptoRegister">exsltCryptoRegister</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#exsltDateRegister">exsltDateRegister</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#exsltDynRegister">exsltDynRegister</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#exsltFuncRegister">exsltFuncRegister</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#exsltMathRegister">exsltMathRegister</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#exsltRegisterAll">exsltRegisterAll</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#exsltSaxonRegister">exsltSaxonRegister</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#exsltSetsRegister">exsltSetsRegister</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#exsltStrRegister">exsltStrRegister</a>		(void)</pre>
+<h2>Description</h2>
+<h3><a name="EXSLT_COMMON_NAMESPACE" id="EXSLT_COMMON_NAMESPACE"></a>Macro: EXSLT_COMMON_NAMESPACE</h3><pre>#define EXSLT_COMMON_NAMESPACE</pre><p>Namespace for EXSLT common functions</p>
+<h3><a name="EXSLT_CRYPTO_NAMESPACE" id="EXSLT_CRYPTO_NAMESPACE"></a>Macro: EXSLT_CRYPTO_NAMESPACE</h3><pre>#define EXSLT_CRYPTO_NAMESPACE</pre><p>Namespace for EXSLT crypto functions</p>
+<h3><a name="EXSLT_DATE_NAMESPACE" id="EXSLT_DATE_NAMESPACE"></a>Macro: EXSLT_DATE_NAMESPACE</h3><pre>#define EXSLT_DATE_NAMESPACE</pre><p>Namespace for EXSLT date functions</p>
+<h3><a name="EXSLT_DYNAMIC_NAMESPACE" id="EXSLT_DYNAMIC_NAMESPACE"></a>Macro: EXSLT_DYNAMIC_NAMESPACE</h3><pre>#define EXSLT_DYNAMIC_NAMESPACE</pre><p>Namespace for EXSLT dynamic functions</p>
+<h3><a name="EXSLT_FUNCTIONS_NAMESPACE" id="EXSLT_FUNCTIONS_NAMESPACE"></a>Macro: EXSLT_FUNCTIONS_NAMESPACE</h3><pre>#define EXSLT_FUNCTIONS_NAMESPACE</pre><p>Namespace for EXSLT functions extension functions</p>
+<h3><a name="EXSLT_MATH_NAMESPACE" id="EXSLT_MATH_NAMESPACE"></a>Macro: EXSLT_MATH_NAMESPACE</h3><pre>#define EXSLT_MATH_NAMESPACE</pre><p>Namespace for EXSLT math functions</p>
+<h3><a name="EXSLT_SETS_NAMESPACE" id="EXSLT_SETS_NAMESPACE"></a>Macro: EXSLT_SETS_NAMESPACE</h3><pre>#define EXSLT_SETS_NAMESPACE</pre><p>Namespace for EXSLT set functions</p>
+<h3><a name="EXSLT_STRINGS_NAMESPACE" id="EXSLT_STRINGS_NAMESPACE"></a>Macro: EXSLT_STRINGS_NAMESPACE</h3><pre>#define EXSLT_STRINGS_NAMESPACE</pre><p>Namespace for EXSLT strings functions</p>
+<h3><a name="SAXON_NAMESPACE" id="SAXON_NAMESPACE"></a>Macro: SAXON_NAMESPACE</h3><pre>#define SAXON_NAMESPACE</pre><p>Namespace for SAXON extensions functions</p>
+<h3><a name="exsltCommonRegister" id="exsltCommonRegister"></a>Function: exsltCommonRegister</h3><pre class="programlisting">void	exsltCommonRegister		(void)<br />
+</pre><p>Registers the EXSLT - Common module</p>
+<h3><a name="exsltCryptoRegister" id="exsltCryptoRegister"></a>Function: exsltCryptoRegister</h3><pre class="programlisting">void	exsltCryptoRegister		(void)<br />
+</pre><p></p>
+<h3><a name="exsltDateRegister" id="exsltDateRegister"></a>Function: exsltDateRegister</h3><pre class="programlisting">void	exsltDateRegister		(void)<br />
+</pre><p>Registers the EXSLT - Dates and Times module</p>
+<h3><a name="exsltDynRegister" id="exsltDynRegister"></a>Function: exsltDynRegister</h3><pre class="programlisting">void	exsltDynRegister		(void)<br />
+</pre><p>Registers the EXSLT - Dynamic module</p>
+<h3><a name="exsltFuncRegister" id="exsltFuncRegister"></a>Function: exsltFuncRegister</h3><pre class="programlisting">void	exsltFuncRegister		(void)<br />
+</pre><p>Registers the EXSLT - Functions module</p>
+<h3><a name="exsltMathRegister" id="exsltMathRegister"></a>Function: exsltMathRegister</h3><pre class="programlisting">void	exsltMathRegister		(void)<br />
+</pre><p>Registers the EXSLT - Math module</p>
+<h3><a name="exsltRegisterAll" id="exsltRegisterAll"></a>Function: exsltRegisterAll</h3><pre class="programlisting">void	exsltRegisterAll		(void)<br />
+</pre><p>Registers all available EXSLT extensions</p>
+<h3><a name="exsltSaxonRegister" id="exsltSaxonRegister"></a>Function: exsltSaxonRegister</h3><pre class="programlisting">void	exsltSaxonRegister		(void)<br />
+</pre><p>Registers the SAXON extension module</p>
+<h3><a name="exsltSetsRegister" id="exsltSetsRegister"></a>Function: exsltSetsRegister</h3><pre class="programlisting">void	exsltSetsRegister		(void)<br />
+</pre><p>Registers the EXSLT - Sets module</p>
+<h3><a name="exsltStrRegister" id="exsltStrRegister"></a>Function: exsltStrRegister</h3><pre class="programlisting">void	exsltStrRegister		(void)<br />
+</pre><p>Registers the EXSLT - Strings module</p>
+<p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-exsltexports.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-exsltexports.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-exsltexports.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module exsltexports from libexslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>Module exsltexports from libexslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libexslt-exslt.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libexslt-exslt.html">exslt</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th></tr></table><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#EXSLTCALL">EXSLTCALL</a></pre><pre class="programlisting">#define <a href="#EXSLTPUBFUN">EXSLTPUBFUN</a></pre><pre class="programlisting">#define <a href="#EXSLTPUBVAR">EXSLTPUBVAR</a></pre><pre class="programlisting">#define <a href="#LIBEXSLT_PUBLIC">LIBEXSLT_PUBLIC</a></pre><pre class="programlisting">#define <a href="#_REENTRANT">_REENTRANT</a></pre><h2>Description</h2>
+<h3><a name="EXSLTCALL" id="EXSLTCALL"></a>Macro: EXSLTCALL</h3><pre>#define EXSLTCALL</pre><p></p>
+<h3><a name="EXSLTPUBFUN" id="EXSLTPUBFUN"></a>Macro: EXSLTPUBFUN</h3><pre>#define EXSLTPUBFUN</pre><p></p>
+<h3><a name="EXSLTPUBVAR" id="EXSLTPUBVAR"></a>Macro: EXSLTPUBVAR</h3><pre>#define EXSLTPUBVAR</pre><p></p>
+<h3><a name="LIBEXSLT_PUBLIC" id="LIBEXSLT_PUBLIC"></a>Macro: LIBEXSLT_PUBLIC</h3><pre>#define LIBEXSLT_PUBLIC</pre><p></p>
+<h3><a name="_REENTRANT" id="_REENTRANT"></a>Macro: _REENTRANT</h3><pre>#define _REENTRANT</pre><p></p>
+<p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-lib.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-lib.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/libexslt-lib.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Reference Manual for libexslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>Reference Manual for libexslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libexslt-exslt.html">exslt</a>: </li><li><a href="libexslt-exsltexports.html">exsltexports</a>: </li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/right.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/up.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/html/up.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/index.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/index.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/index.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>libexslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>libexslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="../index.html" style="font-weight:bold">libxslt</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>Libexslt is the <a href="http://www.exslt.org">EXSLT</a> C library
+   developed for libxslt (a part of the Gnome project). Much of the
+   initial work on the library was done by Thomas Broyer.  EXSLT itself
+   is a community initiative to provide extensions to XSLT.
+
+</p><p>This library is free software and can be reused in commercial applications
+   (see the <a href="intro.html">intro</a>)</p><p></p><p>Logo designed by <a href="mailto:liyanage at access.ch">Marc Liyanage</a>.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/intro.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/intro.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/intro.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Introduction</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The EXSLT C library for Gnome</h1><h2>Introduction</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="../index.html" style="font-weight:bold">libxslt</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>This document describes <a href="http://xmlsoft.org/XSLT/">libxslt</a>,
+the <a href="http://www.w3.org/TR/xslt">XSLT</a> C library developed for the
+<a href="http://www.gnome.org/">Gnome</a> project.</p><p>Here are some key points about libxslt:</p><ul><li>Libxslt is a C implementation</li>
+  <li>Libxslt is based on libxml for XML parsing, tree manipulation and XPath
+    support</li>
+  <li>It is written in plain C, making as few assumptions as possible, and
+    sticking closely to ANSI C/POSIX for easy embedding. Should works on
+    Linux/Unix/Windows.</li>
+  <li>This library is released under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
+  Licence</a></li>
+  <li>Though not designed primarily with performances in mind, libxslt seems
+    to be a relatively fast processor.</li>
+</ul><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/libexslt-api.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/libexslt-api.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/libexslt-api.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<api name='libexslt'>
+  <files>
+    <file name='exslt'>
+     <exports symbol='EXSLT_DATE_NAMESPACE' type='macro'/>
+     <exports symbol='EXSLT_STRINGS_NAMESPACE' type='macro'/>
+     <exports symbol='SAXON_NAMESPACE' type='macro'/>
+     <exports symbol='EXSLT_COMMON_NAMESPACE' type='macro'/>
+     <exports symbol='EXSLT_FUNCTIONS_NAMESPACE' type='macro'/>
+     <exports symbol='EXSLT_SETS_NAMESPACE' type='macro'/>
+     <exports symbol='EXSLT_DYNAMIC_NAMESPACE' type='macro'/>
+     <exports symbol='EXSLT_CRYPTO_NAMESPACE' type='macro'/>
+     <exports symbol='EXSLT_MATH_NAMESPACE' type='macro'/>
+     <exports symbol='exsltLibxmlVersion' type='variable'/>
+     <exports symbol='exsltLibexsltVersion' type='variable'/>
+     <exports symbol='exsltLibraryVersion' type='variable'/>
+     <exports symbol='exsltLibxsltVersion' type='variable'/>
+     <exports symbol='exsltDynRegister' type='function'/>
+     <exports symbol='exsltCommonRegister' type='function'/>
+     <exports symbol='exsltRegisterAll' type='function'/>
+     <exports symbol='exsltFuncRegister' type='function'/>
+     <exports symbol='exsltStrRegister' type='function'/>
+     <exports symbol='exsltSetsRegister' type='function'/>
+     <exports symbol='exsltDateRegister' type='function'/>
+     <exports symbol='exsltCryptoRegister' type='function'/>
+     <exports symbol='exsltMathRegister' type='function'/>
+     <exports symbol='exsltSaxonRegister' type='function'/>
+    </file>
+    <file name='exsltexports'>
+     <exports symbol='LIBEXSLT_PUBLIC' type='macro'/>
+     <exports symbol='_REENTRANT' type='macro'/>
+     <exports symbol='EXSLTCALL' type='macro'/>
+     <exports symbol='EXSLTPUBFUN' type='macro'/>
+     <exports symbol='EXSLTPUBVAR' type='macro'/>
+    </file>
+  </files>
+  <symbols>
+    <macro name='EXSLTCALL' file='exsltexports'>
+    </macro>
+    <macro name='EXSLTPUBFUN' file='exsltexports'>
+    </macro>
+    <macro name='EXSLTPUBVAR' file='exsltexports'>
+    </macro>
+    <macro name='EXSLT_COMMON_NAMESPACE' file='exslt'>
+      <info>Namespace for EXSLT common functions</info>
+    </macro>
+    <macro name='EXSLT_CRYPTO_NAMESPACE' file='exslt'>
+      <info>Namespace for EXSLT crypto functions</info>
+    </macro>
+    <macro name='EXSLT_DATE_NAMESPACE' file='exslt'>
+      <info>Namespace for EXSLT date functions</info>
+    </macro>
+    <macro name='EXSLT_DYNAMIC_NAMESPACE' file='exslt'>
+      <info>Namespace for EXSLT dynamic functions</info>
+    </macro>
+    <macro name='EXSLT_FUNCTIONS_NAMESPACE' file='exslt'>
+      <info>Namespace for EXSLT functions extension functions</info>
+    </macro>
+    <macro name='EXSLT_MATH_NAMESPACE' file='exslt'>
+      <info>Namespace for EXSLT math functions</info>
+    </macro>
+    <macro name='EXSLT_SETS_NAMESPACE' file='exslt'>
+      <info>Namespace for EXSLT set functions</info>
+    </macro>
+    <macro name='EXSLT_STRINGS_NAMESPACE' file='exslt'>
+      <info>Namespace for EXSLT strings functions</info>
+    </macro>
+    <macro name='LIBEXSLT_PUBLIC' file='exsltexports'>
+    </macro>
+    <macro name='SAXON_NAMESPACE' file='exslt'>
+      <info>Namespace for SAXON extensions functions</info>
+    </macro>
+    <macro name='_REENTRANT' file='exsltexports'>
+    </macro>
+    <variable name='exsltLibexsltVersion' file='exslt' type='const int'/>
+    <variable name='exsltLibraryVersion' file='exslt' type='const char *'/>
+    <variable name='exsltLibxmlVersion' file='exslt' type='const int'/>
+    <variable name='exsltLibxsltVersion' file='exslt' type='const int'/>
+    <function name='exsltCommonRegister' file='exslt'>
+      <info>Registers the EXSLT - Common module</info>
+      <return type='void'/>
+    </function>
+    <function name='exsltCryptoRegister' file='exslt'>
+      <info></info>
+      <return type='void'/>
+    </function>
+    <function name='exsltDateRegister' file='exslt'>
+      <info>Registers the EXSLT - Dates and Times module</info>
+      <return type='void'/>
+    </function>
+    <function name='exsltDynRegister' file='exslt'>
+      <info>Registers the EXSLT - Dynamic module</info>
+      <return type='void'/>
+    </function>
+    <function name='exsltFuncRegister' file='exslt'>
+      <info>Registers the EXSLT - Functions module</info>
+      <return type='void'/>
+    </function>
+    <function name='exsltMathRegister' file='exslt'>
+      <info>Registers the EXSLT - Math module</info>
+      <return type='void'/>
+    </function>
+    <function name='exsltRegisterAll' file='exslt'>
+      <info>Registers all available EXSLT extensions</info>
+      <return type='void'/>
+    </function>
+    <function name='exsltSaxonRegister' file='exslt'>
+      <info>Registers the SAXON extension module</info>
+      <return type='void'/>
+    </function>
+    <function name='exsltSetsRegister' file='exslt'>
+      <info>Registers the EXSLT - Sets module</info>
+      <return type='void'/>
+    </function>
+    <function name='exsltStrRegister' file='exslt'>
+      <info>Registers the EXSLT - Strings module</info>
+      <return type='void'/>
+    </function>
+  </symbols>
+</api>

Added: packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/libexslt-refs.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/libexslt-refs.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/EXSLT/libexslt-refs.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<apirefs name='libexslt'>
+  <references>
+    <reference name='EXSLTCALL' href='html/libexslt-exsltexports.html#EXSLTCALL'/>
+    <reference name='EXSLTPUBFUN' href='html/libexslt-exsltexports.html#EXSLTPUBFUN'/>
+    <reference name='EXSLTPUBVAR' href='html/libexslt-exsltexports.html#EXSLTPUBVAR'/>
+    <reference name='EXSLT_COMMON_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_COMMON_NAMESPACE'/>
+    <reference name='EXSLT_CRYPTO_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_CRYPTO_NAMESPACE'/>
+    <reference name='EXSLT_DATE_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_DATE_NAMESPACE'/>
+    <reference name='EXSLT_DYNAMIC_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_DYNAMIC_NAMESPACE'/>
+    <reference name='EXSLT_FUNCTIONS_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_FUNCTIONS_NAMESPACE'/>
+    <reference name='EXSLT_MATH_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_MATH_NAMESPACE'/>
+    <reference name='EXSLT_SETS_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_SETS_NAMESPACE'/>
+    <reference name='EXSLT_STRINGS_NAMESPACE' href='html/libexslt-exslt.html#EXSLT_STRINGS_NAMESPACE'/>
+    <reference name='LIBEXSLT_PUBLIC' href='html/libexslt-exsltexports.html#LIBEXSLT_PUBLIC'/>
+    <reference name='SAXON_NAMESPACE' href='html/libexslt-exslt.html#SAXON_NAMESPACE'/>
+    <reference name='_REENTRANT' href='html/libexslt-exsltexports.html#_REENTRANT'/>
+    <reference name='exsltCommonRegister' href='html/libexslt-exslt.html#exsltCommonRegister'/>
+    <reference name='exsltCryptoRegister' href='html/libexslt-exslt.html#exsltCryptoRegister'/>
+    <reference name='exsltDateRegister' href='html/libexslt-exslt.html#exsltDateRegister'/>
+    <reference name='exsltDynRegister' href='html/libexslt-exslt.html#exsltDynRegister'/>
+    <reference name='exsltFuncRegister' href='html/libexslt-exslt.html#exsltFuncRegister'/>
+    <reference name='exsltLibexsltVersion' href='html/libexslt-exslt.html#exsltLibexsltVersion'/>
+    <reference name='exsltLibraryVersion' href='html/libexslt-exslt.html#exsltLibraryVersion'/>
+    <reference name='exsltLibxmlVersion' href='html/libexslt-exslt.html#exsltLibxmlVersion'/>
+    <reference name='exsltLibxsltVersion' href='html/libexslt-exslt.html#exsltLibxsltVersion'/>
+    <reference name='exsltMathRegister' href='html/libexslt-exslt.html#exsltMathRegister'/>
+    <reference name='exsltRegisterAll' href='html/libexslt-exslt.html#exsltRegisterAll'/>
+    <reference name='exsltSaxonRegister' href='html/libexslt-exslt.html#exsltSaxonRegister'/>
+    <reference name='exsltSetsRegister' href='html/libexslt-exslt.html#exsltSetsRegister'/>
+    <reference name='exsltStrRegister' href='html/libexslt-exslt.html#exsltStrRegister'/>
+  </references>
+  <alpha>
+    <letter name='E'>
+      <ref name='EXSLTCALL'/>
+      <ref name='EXSLTPUBFUN'/>
+      <ref name='EXSLTPUBVAR'/>
+      <ref name='EXSLT_COMMON_NAMESPACE'/>
+      <ref name='EXSLT_CRYPTO_NAMESPACE'/>
+      <ref name='EXSLT_DATE_NAMESPACE'/>
+      <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
+      <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
+      <ref name='EXSLT_MATH_NAMESPACE'/>
+      <ref name='EXSLT_SETS_NAMESPACE'/>
+      <ref name='EXSLT_STRINGS_NAMESPACE'/>
+    </letter>
+    <letter name='L'>
+      <ref name='LIBEXSLT_PUBLIC'/>
+    </letter>
+    <letter name='S'>
+      <ref name='SAXON_NAMESPACE'/>
+    </letter>
+    <letter name='_'>
+      <ref name='_REENTRANT'/>
+    </letter>
+    <letter name='e'>
+      <ref name='exsltCommonRegister'/>
+      <ref name='exsltCryptoRegister'/>
+      <ref name='exsltDateRegister'/>
+      <ref name='exsltDynRegister'/>
+      <ref name='exsltFuncRegister'/>
+      <ref name='exsltLibexsltVersion'/>
+      <ref name='exsltLibraryVersion'/>
+      <ref name='exsltLibxmlVersion'/>
+      <ref name='exsltLibxsltVersion'/>
+      <ref name='exsltMathRegister'/>
+      <ref name='exsltRegisterAll'/>
+      <ref name='exsltSaxonRegister'/>
+      <ref name='exsltSetsRegister'/>
+      <ref name='exsltStrRegister'/>
+    </letter>
+  </alpha>
+  <constructors>
+  </constructors>
+  <functions>
+  </functions>
+  <files>
+    <file name='exslt'>
+      <ref name='EXSLT_COMMON_NAMESPACE'/>
+      <ref name='EXSLT_CRYPTO_NAMESPACE'/>
+      <ref name='EXSLT_DATE_NAMESPACE'/>
+      <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
+      <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
+      <ref name='EXSLT_MATH_NAMESPACE'/>
+      <ref name='EXSLT_SETS_NAMESPACE'/>
+      <ref name='EXSLT_STRINGS_NAMESPACE'/>
+      <ref name='SAXON_NAMESPACE'/>
+      <ref name='exsltCommonRegister'/>
+      <ref name='exsltCryptoRegister'/>
+      <ref name='exsltDateRegister'/>
+      <ref name='exsltDynRegister'/>
+      <ref name='exsltFuncRegister'/>
+      <ref name='exsltLibexsltVersion'/>
+      <ref name='exsltLibraryVersion'/>
+      <ref name='exsltLibxmlVersion'/>
+      <ref name='exsltLibxsltVersion'/>
+      <ref name='exsltMathRegister'/>
+      <ref name='exsltRegisterAll'/>
+      <ref name='exsltSaxonRegister'/>
+      <ref name='exsltSetsRegister'/>
+      <ref name='exsltStrRegister'/>
+    </file>
+    <file name='exsltexports'>
+      <ref name='EXSLTCALL'/>
+      <ref name='EXSLTPUBFUN'/>
+      <ref name='EXSLTPUBVAR'/>
+      <ref name='LIBEXSLT_PUBLIC'/>
+      <ref name='_REENTRANT'/>
+    </file>
+  </files>
+  <index>
+    <chunk name='chunk0'>
+      <letter name='C'>
+        <word name='Common'>
+          <ref name='exsltCommonRegister'/>
+        </word>
+      </letter>
+      <letter name='D'>
+        <word name='Dates'>
+          <ref name='exsltDateRegister'/>
+        </word>
+        <word name='Dynamic'>
+          <ref name='exsltDynRegister'/>
+        </word>
+      </letter>
+      <letter name='E'>
+        <word name='EXSLT'>
+          <ref name='EXSLT_COMMON_NAMESPACE'/>
+          <ref name='EXSLT_CRYPTO_NAMESPACE'/>
+          <ref name='EXSLT_DATE_NAMESPACE'/>
+          <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
+          <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
+          <ref name='EXSLT_MATH_NAMESPACE'/>
+          <ref name='EXSLT_SETS_NAMESPACE'/>
+          <ref name='EXSLT_STRINGS_NAMESPACE'/>
+          <ref name='exsltCommonRegister'/>
+          <ref name='exsltDateRegister'/>
+          <ref name='exsltDynRegister'/>
+          <ref name='exsltFuncRegister'/>
+          <ref name='exsltMathRegister'/>
+          <ref name='exsltRegisterAll'/>
+          <ref name='exsltSetsRegister'/>
+          <ref name='exsltStrRegister'/>
+        </word>
+      </letter>
+      <letter name='F'>
+        <word name='Functions'>
+          <ref name='exsltFuncRegister'/>
+        </word>
+      </letter>
+      <letter name='M'>
+        <word name='Math'>
+          <ref name='exsltMathRegister'/>
+        </word>
+      </letter>
+      <letter name='N'>
+        <word name='Namespace'>
+          <ref name='EXSLT_COMMON_NAMESPACE'/>
+          <ref name='EXSLT_CRYPTO_NAMESPACE'/>
+          <ref name='EXSLT_DATE_NAMESPACE'/>
+          <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
+          <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
+          <ref name='EXSLT_MATH_NAMESPACE'/>
+          <ref name='EXSLT_SETS_NAMESPACE'/>
+          <ref name='EXSLT_STRINGS_NAMESPACE'/>
+          <ref name='SAXON_NAMESPACE'/>
+        </word>
+      </letter>
+      <letter name='R'>
+        <word name='Registers'>
+          <ref name='exsltCommonRegister'/>
+          <ref name='exsltDateRegister'/>
+          <ref name='exsltDynRegister'/>
+          <ref name='exsltFuncRegister'/>
+          <ref name='exsltMathRegister'/>
+          <ref name='exsltRegisterAll'/>
+          <ref name='exsltSaxonRegister'/>
+          <ref name='exsltSetsRegister'/>
+          <ref name='exsltStrRegister'/>
+        </word>
+      </letter>
+      <letter name='S'>
+        <word name='SAXON'>
+          <ref name='SAXON_NAMESPACE'/>
+          <ref name='exsltSaxonRegister'/>
+        </word>
+        <word name='Sets'>
+          <ref name='exsltSetsRegister'/>
+        </word>
+        <word name='Strings'>
+          <ref name='exsltStrRegister'/>
+        </word>
+      </letter>
+      <letter name='T'>
+        <word name='Times'>
+          <ref name='exsltDateRegister'/>
+        </word>
+      </letter>
+      <letter name='a'>
+        <word name='all'>
+          <ref name='exsltRegisterAll'/>
+        </word>
+        <word name='available'>
+          <ref name='exsltRegisterAll'/>
+        </word>
+      </letter>
+      <letter name='c'>
+        <word name='common'>
+          <ref name='EXSLT_COMMON_NAMESPACE'/>
+        </word>
+        <word name='crypto'>
+          <ref name='EXSLT_CRYPTO_NAMESPACE'/>
+        </word>
+      </letter>
+      <letter name='d'>
+        <word name='date'>
+          <ref name='EXSLT_DATE_NAMESPACE'/>
+        </word>
+        <word name='dynamic'>
+          <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
+        </word>
+      </letter>
+      <letter name='e'>
+        <word name='extension'>
+          <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
+          <ref name='exsltSaxonRegister'/>
+        </word>
+        <word name='extensions'>
+          <ref name='SAXON_NAMESPACE'/>
+          <ref name='exsltRegisterAll'/>
+        </word>
+      </letter>
+      <letter name='f'>
+        <word name='for'>
+          <ref name='EXSLT_COMMON_NAMESPACE'/>
+          <ref name='EXSLT_CRYPTO_NAMESPACE'/>
+          <ref name='EXSLT_DATE_NAMESPACE'/>
+          <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
+          <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
+          <ref name='EXSLT_MATH_NAMESPACE'/>
+          <ref name='EXSLT_SETS_NAMESPACE'/>
+          <ref name='EXSLT_STRINGS_NAMESPACE'/>
+          <ref name='SAXON_NAMESPACE'/>
+        </word>
+        <word name='functions'>
+          <ref name='EXSLT_COMMON_NAMESPACE'/>
+          <ref name='EXSLT_CRYPTO_NAMESPACE'/>
+          <ref name='EXSLT_DATE_NAMESPACE'/>
+          <ref name='EXSLT_DYNAMIC_NAMESPACE'/>
+          <ref name='EXSLT_FUNCTIONS_NAMESPACE'/>
+          <ref name='EXSLT_MATH_NAMESPACE'/>
+          <ref name='EXSLT_SETS_NAMESPACE'/>
+          <ref name='EXSLT_STRINGS_NAMESPACE'/>
+          <ref name='SAXON_NAMESPACE'/>
+        </word>
+      </letter>
+      <letter name='m'>
+        <word name='math'>
+          <ref name='EXSLT_MATH_NAMESPACE'/>
+        </word>
+        <word name='module'>
+          <ref name='exsltCommonRegister'/>
+          <ref name='exsltDateRegister'/>
+          <ref name='exsltDynRegister'/>
+          <ref name='exsltFuncRegister'/>
+          <ref name='exsltMathRegister'/>
+          <ref name='exsltSaxonRegister'/>
+          <ref name='exsltSetsRegister'/>
+          <ref name='exsltStrRegister'/>
+        </word>
+      </letter>
+      <letter name='s'>
+        <word name='set'>
+          <ref name='EXSLT_SETS_NAMESPACE'/>
+        </word>
+        <word name='strings'>
+          <ref name='EXSLT_STRINGS_NAMESPACE'/>
+        </word>
+      </letter>
+    </chunk>
+    <chunks>
+      <chunk name='chunk0' start='C' end='s'/>
+    </chunks>
+  </index>
+</apirefs>

Added: packages/libxslt/branches/upstream/1.1.16/doc/FAQ.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/FAQ.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/FAQ.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>FAQ</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>FAQ</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><ol><li><em>Troubles compiling or linking programs using libxslt</em>
+    <p>Usually the problem comes from the fact that the compiler doesn't get
+    the right compilation or linking flags. There is a small shell script
+    <code>xslt-config</code> which is installed as part of libxslt usual
+    install process which provides those flags. Use</p>
+    <p><code>xslt-config --cflags</code></p>
+    <p>to get the compilation flags and</p>
+    <p><code>xslt-config --libs</code></p>
+    <p>to get the linker flags. Usually this is done directly from the
+    Makefile as:</p>
+    <p><code>CFLAGS=`xslt-config --cflags`</code></p>
+    <p><code>LIBS=`xslt-config --libs`</code></p>
+    <p>Note also that if you use the EXSLT extensions from the program then
+    you should prepend <code>-lexslt</code> to the LIBS options</p>
+  </li>
+  <li><em>passing parameters on the xsltproc command line doesn't work</em>
+    <p><em>xsltproc --param test alpha foo.xsl foo.xml</em></p>
+    <p><em>the param does not get passed and ends up as ""</em></p>
+    <p>In a nutshell do a double escaping at the shell prompt:</p>
+    <p>xsltproc --param test "'alpha'" foo.xsl foo.xml</p>
+    <p>i.e. the string value is surrounded by " and ' then terminated by '
+    and ". Libxslt interpret the parameter values as XPath expressions, so
+    the string -&gt;<code>alpha</code>&lt;- is intepreted as the node set
+    matching this string. You really want -&gt;<code>'alpha'</code>&lt;- to
+    be passed to the processor. And to allow this you need to escape the
+    quotes at the shell level using -&gt;<code>"'alpha'"</code>&lt;- .</p>
+    <p>or use</p>
+    <p>xsltproc --stringparam test alpha foo.xsl foo.xml</p>
+  </li>
+  <li><em>Is there C++ bindings ?</em>
+    <p>Yes for example <a href="http://pmade.org/pjones/software/xmlwrapp/">xmlwrapp</a> , see <a href="python.html">the related pages about bindings</a></p>
+  </li>
+</ol><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/Libxslt-Logo-180x168.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/Libxslt-Logo-180x168.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/Libxslt-Logo-90x34.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/Libxslt-Logo-90x34.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,202 @@
+## Process this file with automake to produce Makefile.in
+
+# The name of the module.
+DOC_MODULE=libxslt-$(VERSION)
+
+# The top-level SGML file.
+DOC_MAIN_XML_FILE=libxslt.xml
+
+# The directory containing the source code (if it contains documentation).
+DOC_SOURCE_DIR=..
+
+HTML_DIR=$(datadir)/doc
+
+# A file in win32 depends upon two of the doc files
+WIN32_DIR=$(top_srcdir)/win32
+
+TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)/html
+PAGES=   API.html bugs.html contribs.html FAQ.html docs.html \
+         downloads.html help.html index.html intro.html news.html \
+	 xsltproc2.html
+
+EPAGES=	 EXSLT/bugs.html EXSLT/docs.html EXSLT/downloads.html \
+	 EXSLT/help.html EXSLT/index.html EXSLT/intro.html
+
+APIPAGES=APIconstructors.html APIfiles.html APIfunctions.html \
+	 APIsymbols.html APIchunk0.html search.templ
+
+EAPIPAGES=EXSLT/APIconstructors.html EXSLT/APIfiles.html \
+	 EXSLT/APIfunctions.html EXSLT/APIsymbols.html EXSLT/APIchunk0.html
+
+EXTRA_DIST = 			\
+	api.xsl			\
+	apibuild.py		\
+	EXSLT/*.html		\
+	EXSLT/html/*.html	\
+	EXSLT/html/*.png	\
+	EXSLT/libexslt-api.xml	\
+	EXSLT/libexslt-refs.xml	\
+	libxslt-api.xml		\
+	libxslt-refs.xml	\
+	libxslt.xsa		\
+	newapi.xsl		\
+	news.xsl		\
+	search.xml		\
+	site.xsl		\
+	xslt.html		\
+	xsltproc.xml
+
+man_MANS = xsltproc.1
+
+all:	web ../NEWS libxslt.xsa $(man_MANS)
+
+api:	libxslt-api.xml libxslt-refs.xml $(APIPAGES) search.php \
+        html/index.html $(WIN32_DIR)/libxslt.def.src
+
+eapi:	EXSLT/libexslt-api.xml EXSLT/libexslt-refs.xml $(EAPIPAGES) \
+	EXSLT/html/index.html $(WIN32_DIR)/libexslt.def.src
+
+web: $(PAGES) $(EPAGES)
+
+$(PAGES): xslt.html $(srcdir)/site.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  echo "Rebuilding the HTML Web pages from xslt.html" ; \
+	  $(bindir)/xsltproc --nonet --html $(srcdir)/site.xsl \
+	    xslt.html > index.html ; fi )
+	-@(if [ -x $(bindir)/xmllint ] ; then \
+	  echo "Validating the HTML Web pages" ; \
+	  $(bindir)/xmllint --nonet --valid --noout $(PAGES) ; fi );
+	  
+$(EPAGES): EXSLT/exslt.html $(srcdir)/site.xsl
+	 -@(if [ ! -d EXSLT/html ] ; then \
+	   mkdir -p EXSLT/html ; fi )
+	 -@(if [ -x $(bindir)/xsltproc ] ; then \
+	   echo "Rebuilding the HTML Web pages from exslt.html" ; \
+	   $(bindir)/xsltproc --nonet --html \
+	   	--stringparam dirname EXSLT/ \
+		--stringparam libname libexslt \
+		--stringparam logo_base ../ \
+		$(srcdir)/site.xsl \
+		EXSLT/exslt.html > EXSLT/index.html ; fi )
+	 -@(if [ -x $(bindir)/xmllint ] ; then \
+	   echo "Validating the HTML Web pages" ; \
+	   $(bindir)/xmllint --nonet --valid --noout $(EPAGES) ; fi );
+
+../NEWS: $(srcdir)/news.xsl news.html
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  $(bindir)/xsltproc --nonet $(srcdir)/news.xsl \
+	    news.html > ../NEWS ; fi );
+
+libxslt.xsa: $(srcdir)/xsa.xsl news.html
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  $(bindir)/xsltproc --nonet $(srcdir)/xsa.xsl \
+	    news.html > libxslt.xsa ; fi );
+
+$(APIPAGES): libxslt-refs.xml site.xsl api.xsl $(srcdir)/site.xsl \
+	     $(srcdir)/api.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  echo "Rebuilding the HTML API pages from libxslt-refs.xml" ; \
+	  $(bindir)/xsltproc --nonet --html \
+			     $(srcdir)/api.xsl \
+			     xslt.html ; fi );
+	-@(if [ -x $(bindir)/xmllint ] ; then \
+	  echo "Validating the HTML API pages" ; \
+	  $(bindir)/xmllint --nonet --valid --noout API*.html; fi );
+
+$(EAPIPAGES): EXSLT/libexslt-refs.xml site.xsl api.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  echo "Rebuilding the HTML API pages from libexslt-refs.xml" ; \
+	  $(bindir)/xsltproc --nonet --html --output EXSLT/ \
+			     --stringparam libname libexslt \
+			     --stringparam dirname EXSLT/ \
+			     --stringparam logo_base ../ \
+			     $(srcdir)/api.xsl \
+			     EXSLT/exslt.html ; fi );
+
+html/index.html: libxslt-api.xml $(srcdir)/newapi.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  echo "Rebuilding the HTML pages from the XSLT API" ; \
+	  $(bindir)/xsltproc --nonet \
+			     $(srcdir)/newapi.xsl libxslt-api.xml ; fi ); 
+	-@(if [ -x $(bindir)/xmllint ] ; then \
+	  echo "Validating the resulting XHTML pages" ; \
+	  $(bindir)/xmllint --nonet --valid --noout html/*.html ; fi );
+
+wiki: libxslt-api.xml $(srcdir)/wiki.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+		echo "Rebuilding the wiki HTML pages from the XSLT API" ; \
+		$(bindir)/xsltproc --nonet $(srcdir)/wiki.xsl libxslt-api.xml; fi )
+
+EXSLT/html/index.html: EXSLT/libexslt-api.xml \
+	$(srcdir)/newapi.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  echo "Rebuilding the HTML pages from the EXSLT API" ; \
+	  $(bindir)/xsltproc --nonet --output EXSLT/ \
+	  		     --stringparam libname libexslt \
+			     --stringparam dirname EXSLT/ \
+			     --stringparam logo_base ../../ \
+			     $(srcdir)/newapi.xsl \
+			     EXSLT/libexslt-api.xml ; fi );
+	-@(if [ -x $(bindir)/xmllint ] ; then \
+	  echo "Validating the resulting XHTML pages" ; \
+	  $(bindir)/xmllint --nonet --valid --noout EXSLT/html/*.html ; fi );
+			     
+	
+libxslt-api.xml libxslt-refs.xml EXSLT/libexslt-api.xml \
+  EXSLT/libexslt-refs.xml: $(srcdir)/apibuild.py $(top_srcdir)/libxslt/*.h \
+		$(top_srcdir)/libxslt/*.c $(top_srcdir)/libexslt/*.h \
+		$(top_srcdir)/libexslt/*.c
+	-($(srcdir)/apibuild.py)
+	
+xsltproc.1: xsltproc.xml
+	-@(xsltproc --nonet xsltproc.xml)
+
+# Note that in the following, xmllint output is piped to xsltproc
+search.php: $(srcdir)/api.xsl $(srcdir)/site.xsl $(srcdir)/search.templ \
+            $(srcdir)/search.xml $(srcdir)/search.php.inc
+	-@(if test -x $(bindir)/xmllint -a -x $(bindir)/xsltproc; then \
+	   echo "Rebuilding search.php" ; \
+	   $(bindir)/xmllint --xinclude --nonet \
+	                      $(srcdir)/search.xml | \
+	   $(bindir)/xsltproc --nonet - search.templ \
+			      > search.php ; else \
+	   echo "Unable to find xmllint or xsltproc in $(bindir)" ; fi)
+	   
+$(WIN32_DIR)/libxslt.def.src: libxslt-api.xml
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  $(bindir)/xsltproc -o $(WIN32_DIR)/libxslt.def.src \
+	  --nonet $(WIN32_DIR)/defgen.xsl libxslt-api.xml ; fi )
+
+$(WIN32_DIR)/libexslt.def.src: EXSLT/libexslt-api.xml
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  $(bindir)/xsltproc -o $(WIN32_DIR)/libexslt.def.src \
+	  --nonet $(WIN32_DIR)/defgen.xsl EXSLT/libexslt-api.xml ; fi )
+
+clean-local:
+	rm -f *~ *.bak *.hierarchy *.signals *-unused.txt
+
+maintainer-clean-local: clean
+
+rebuild: api eapi all
+
+install-data-local: 
+	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
+	- at INSTALL@ -m 0644 $(srcdir)/*.html $(DESTDIR)$(TARGET_DIR)
+	- at INSTALL@ -m 0644 $(srcdir)/*.gif $(DESTDIR)$(TARGET_DIR)
+	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/html
+	- at INSTALL@ -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(TARGET_DIR)/html
+	- at INSTALL@ -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(TARGET_DIR)/html
+	- at INSTALL@ -m 0644 $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR)/html
+	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/EXSLT
+	- at INSTALL@ -m 0644 $(srcdir)/EXSLT/*.html $(DESTDIR)$(TARGET_DIR)/EXSLT
+	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/tutorial
+	- at INSTALL@ -m 0644 $(srcdir)/tutorial/* $(DESTDIR)$(TARGET_DIR)/tutorial
+	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/tutorial2
+	- at INSTALL@ -m 0644 $(srcdir)/tutorial2/* $(DESTDIR)$(TARGET_DIR)/tutorial2
+
+dist-hook:
+	(cd $(srcdir) ; tar cvf - *.1 *.html site.xsl news.xsl xsa.xsl \
+	  *.gif html/*.html html/*.png tutorial*/libxslt*) | \
+	  (cd $(distdir); tar xf -)
+
+.PHONY : html EXSLT EXSLT/html

Added: packages/libxslt/branches/upstream/1.1.16/doc/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,627 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+man1dir = $(mandir)/man1
+am__installdirs = "$(DESTDIR)$(man1dir)"
+NROFF = nroff
+MANS = $(man_MANS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = $(datadir)/doc
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+# The name of the module.
+DOC_MODULE = libxslt-$(VERSION)
+
+# The top-level SGML file.
+DOC_MAIN_XML_FILE = libxslt.xml
+
+# The directory containing the source code (if it contains documentation).
+DOC_SOURCE_DIR = ..
+
+# A file in win32 depends upon two of the doc files
+WIN32_DIR = $(top_srcdir)/win32
+TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)/html
+PAGES = API.html bugs.html contribs.html FAQ.html docs.html \
+         downloads.html help.html index.html intro.html news.html \
+	 xsltproc2.html
+
+EPAGES = EXSLT/bugs.html EXSLT/docs.html EXSLT/downloads.html \
+	 EXSLT/help.html EXSLT/index.html EXSLT/intro.html
+
+APIPAGES = APIconstructors.html APIfiles.html APIfunctions.html \
+	 APIsymbols.html APIchunk0.html search.templ
+
+EAPIPAGES = EXSLT/APIconstructors.html EXSLT/APIfiles.html \
+	 EXSLT/APIfunctions.html EXSLT/APIsymbols.html EXSLT/APIchunk0.html
+
+EXTRA_DIST = \
+	api.xsl			\
+	apibuild.py		\
+	EXSLT/*.html		\
+	EXSLT/html/*.html	\
+	EXSLT/html/*.png	\
+	EXSLT/libexslt-api.xml	\
+	EXSLT/libexslt-refs.xml	\
+	libxslt-api.xml		\
+	libxslt-refs.xml	\
+	libxslt.xsa		\
+	newapi.xsl		\
+	news.xsl		\
+	search.xml		\
+	site.xsl		\
+	xslt.html		\
+	xsltproc.xml
+
+man_MANS = xsltproc.1
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+install-man1: $(man1_MANS) $(man_MANS)
+	@$(NORMAL_INSTALL)
+	test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
+	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+	for i in $$l2; do \
+	  case "$$i" in \
+	    *.1*) list="$$list $$i" ;; \
+	  esac; \
+	done; \
+	for i in $$list; do \
+	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+	  else file=$$i; fi; \
+	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+	  case "$$ext" in \
+	    1*) ;; \
+	    *) ext='1' ;; \
+	  esac; \
+	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
+	done
+uninstall-man1:
+	@$(NORMAL_UNINSTALL)
+	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+	for i in $$l2; do \
+	  case "$$i" in \
+	    *.1*) list="$$list $$i" ;; \
+	  esac; \
+	done; \
+	for i in $$list; do \
+	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+	  case "$$ext" in \
+	    1*) ;; \
+	    *) ext='1' ;; \
+	  esac; \
+	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+	  echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
+	  rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
+	done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	$(mkdir_p) $(distdir)/EXSLT $(distdir)/EXSLT/html
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-hook
+check-am: all-am
+check: check-am
+all-am: Makefile $(MANS)
+installdirs:
+	for dir in "$(DESTDIR)$(man1dir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-man
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man: install-man1
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic \
+	maintainer-clean-local
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-man
+
+uninstall-man: uninstall-man1
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	clean-local dist-hook distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am \
+	install-data-local install-exec install-exec-am install-info \
+	install-info-am install-man install-man1 install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic maintainer-clean-local mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am uninstall-info-am uninstall-man \
+	uninstall-man1
+
+
+all:	web ../NEWS libxslt.xsa $(man_MANS)
+
+api:	libxslt-api.xml libxslt-refs.xml $(APIPAGES) search.php \
+        html/index.html $(WIN32_DIR)/libxslt.def.src
+
+eapi:	EXSLT/libexslt-api.xml EXSLT/libexslt-refs.xml $(EAPIPAGES) \
+	EXSLT/html/index.html $(WIN32_DIR)/libexslt.def.src
+
+web: $(PAGES) $(EPAGES)
+
+$(PAGES): xslt.html $(srcdir)/site.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  echo "Rebuilding the HTML Web pages from xslt.html" ; \
+	  $(bindir)/xsltproc --nonet --html $(srcdir)/site.xsl \
+	    xslt.html > index.html ; fi )
+	-@(if [ -x $(bindir)/xmllint ] ; then \
+	  echo "Validating the HTML Web pages" ; \
+	  $(bindir)/xmllint --nonet --valid --noout $(PAGES) ; fi );
+
+$(EPAGES): EXSLT/exslt.html $(srcdir)/site.xsl
+	 -@(if [ ! -d EXSLT/html ] ; then \
+	   mkdir -p EXSLT/html ; fi )
+	 -@(if [ -x $(bindir)/xsltproc ] ; then \
+	   echo "Rebuilding the HTML Web pages from exslt.html" ; \
+	   $(bindir)/xsltproc --nonet --html \
+	   	--stringparam dirname EXSLT/ \
+		--stringparam libname libexslt \
+		--stringparam logo_base ../ \
+		$(srcdir)/site.xsl \
+		EXSLT/exslt.html > EXSLT/index.html ; fi )
+	 -@(if [ -x $(bindir)/xmllint ] ; then \
+	   echo "Validating the HTML Web pages" ; \
+	   $(bindir)/xmllint --nonet --valid --noout $(EPAGES) ; fi );
+
+../NEWS: $(srcdir)/news.xsl news.html
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  $(bindir)/xsltproc --nonet $(srcdir)/news.xsl \
+	    news.html > ../NEWS ; fi );
+
+libxslt.xsa: $(srcdir)/xsa.xsl news.html
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  $(bindir)/xsltproc --nonet $(srcdir)/xsa.xsl \
+	    news.html > libxslt.xsa ; fi );
+
+$(APIPAGES): libxslt-refs.xml site.xsl api.xsl $(srcdir)/site.xsl \
+	     $(srcdir)/api.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  echo "Rebuilding the HTML API pages from libxslt-refs.xml" ; \
+	  $(bindir)/xsltproc --nonet --html \
+			     $(srcdir)/api.xsl \
+			     xslt.html ; fi );
+	-@(if [ -x $(bindir)/xmllint ] ; then \
+	  echo "Validating the HTML API pages" ; \
+	  $(bindir)/xmllint --nonet --valid --noout API*.html; fi );
+
+$(EAPIPAGES): EXSLT/libexslt-refs.xml site.xsl api.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  echo "Rebuilding the HTML API pages from libexslt-refs.xml" ; \
+	  $(bindir)/xsltproc --nonet --html --output EXSLT/ \
+			     --stringparam libname libexslt \
+			     --stringparam dirname EXSLT/ \
+			     --stringparam logo_base ../ \
+			     $(srcdir)/api.xsl \
+			     EXSLT/exslt.html ; fi );
+
+html/index.html: libxslt-api.xml $(srcdir)/newapi.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  echo "Rebuilding the HTML pages from the XSLT API" ; \
+	  $(bindir)/xsltproc --nonet \
+			     $(srcdir)/newapi.xsl libxslt-api.xml ; fi ); 
+	-@(if [ -x $(bindir)/xmllint ] ; then \
+	  echo "Validating the resulting XHTML pages" ; \
+	  $(bindir)/xmllint --nonet --valid --noout html/*.html ; fi );
+
+wiki: libxslt-api.xml $(srcdir)/wiki.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+		echo "Rebuilding the wiki HTML pages from the XSLT API" ; \
+		$(bindir)/xsltproc --nonet $(srcdir)/wiki.xsl libxslt-api.xml; fi )
+
+EXSLT/html/index.html: EXSLT/libexslt-api.xml \
+	$(srcdir)/newapi.xsl
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  echo "Rebuilding the HTML pages from the EXSLT API" ; \
+	  $(bindir)/xsltproc --nonet --output EXSLT/ \
+	  		     --stringparam libname libexslt \
+			     --stringparam dirname EXSLT/ \
+			     --stringparam logo_base ../../ \
+			     $(srcdir)/newapi.xsl \
+			     EXSLT/libexslt-api.xml ; fi );
+	-@(if [ -x $(bindir)/xmllint ] ; then \
+	  echo "Validating the resulting XHTML pages" ; \
+	  $(bindir)/xmllint --nonet --valid --noout EXSLT/html/*.html ; fi );
+
+libxslt-api.xml libxslt-refs.xml EXSLT/libexslt-api.xml \
+  EXSLT/libexslt-refs.xml: $(srcdir)/apibuild.py $(top_srcdir)/libxslt/*.h \
+		$(top_srcdir)/libxslt/*.c $(top_srcdir)/libexslt/*.h \
+		$(top_srcdir)/libexslt/*.c
+	-($(srcdir)/apibuild.py)
+
+xsltproc.1: xsltproc.xml
+	-@(xsltproc --nonet xsltproc.xml)
+
+# Note that in the following, xmllint output is piped to xsltproc
+search.php: $(srcdir)/api.xsl $(srcdir)/site.xsl $(srcdir)/search.templ \
+            $(srcdir)/search.xml $(srcdir)/search.php.inc
+	-@(if test -x $(bindir)/xmllint -a -x $(bindir)/xsltproc; then \
+	   echo "Rebuilding search.php" ; \
+	   $(bindir)/xmllint --xinclude --nonet \
+	                      $(srcdir)/search.xml | \
+	   $(bindir)/xsltproc --nonet - search.templ \
+			      > search.php ; else \
+	   echo "Unable to find xmllint or xsltproc in $(bindir)" ; fi)
+
+$(WIN32_DIR)/libxslt.def.src: libxslt-api.xml
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  $(bindir)/xsltproc -o $(WIN32_DIR)/libxslt.def.src \
+	  --nonet $(WIN32_DIR)/defgen.xsl libxslt-api.xml ; fi )
+
+$(WIN32_DIR)/libexslt.def.src: EXSLT/libexslt-api.xml
+	-@(if [ -x $(bindir)/xsltproc ] ; then \
+	  $(bindir)/xsltproc -o $(WIN32_DIR)/libexslt.def.src \
+	  --nonet $(WIN32_DIR)/defgen.xsl EXSLT/libexslt-api.xml ; fi )
+
+clean-local:
+	rm -f *~ *.bak *.hierarchy *.signals *-unused.txt
+
+maintainer-clean-local: clean
+
+rebuild: api eapi all
+
+install-data-local: 
+	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
+	- at INSTALL@ -m 0644 $(srcdir)/*.html $(DESTDIR)$(TARGET_DIR)
+	- at INSTALL@ -m 0644 $(srcdir)/*.gif $(DESTDIR)$(TARGET_DIR)
+	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/html
+	- at INSTALL@ -m 0644 $(srcdir)/html/*.html $(DESTDIR)$(TARGET_DIR)/html
+	- at INSTALL@ -m 0644 $(srcdir)/html/*.png $(DESTDIR)$(TARGET_DIR)/html
+	- at INSTALL@ -m 0644 $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR)/html
+	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/EXSLT
+	- at INSTALL@ -m 0644 $(srcdir)/EXSLT/*.html $(DESTDIR)$(TARGET_DIR)/EXSLT
+	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/tutorial
+	- at INSTALL@ -m 0644 $(srcdir)/tutorial/* $(DESTDIR)$(TARGET_DIR)/tutorial
+	$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/tutorial2
+	- at INSTALL@ -m 0644 $(srcdir)/tutorial2/* $(DESTDIR)$(TARGET_DIR)/tutorial2
+
+dist-hook:
+	(cd $(srcdir) ; tar cvf - *.1 *.html site.xsl news.xsl xsa.xsl \
+	  *.gif html/*.html html/*.png tutorial*/libxslt*) | \
+	  (cd $(distdir); tar xf -)
+
+.PHONY : html EXSLT EXSLT/html
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/doc/api.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/api.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/api.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,201 @@
+<?xml version="1.0"?>
+<!-- this stylesheet builds the API*.html , it works based on libxml2-refs.xml
+  -->
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:exsl="http://exslt.org/common"
+  extension-element-prefixes="exsl"
+  exclude-result-prefixes="exsl">
+
+  <!-- Import the rest of the site stylesheets -->
+  <xsl:import href="site.xsl"/>
+
+  <!-- Generate XHTML-1.0 transitional -->
+  <xsl:output method="xml" encoding="ISO-8859-1" indent="yes"
+      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+  <xsl:param name="libname" select="'libxslt'"/>
+  <xsl:param name="dirname" select="''"/>
+  <xsl:param name="logo_base" select="''"/> 
+
+  <!-- href_base controls URI's in site.xsl as well as this stylesheet -->
+  <xsl:variable name="href_base" select="''"/>
+
+  <xsl:variable name="apirefs" select="document(concat($dirname, $libname, '-refs.xml'))"/>
+  <xsl:variable name="module" select="$apirefs/apirefs/@name"/>
+  <xsl:key name="refhref" match="reference" use="@name"/>
+
+  <xsl:template match="ref" mode="anchor">
+    <xsl:variable name="name" select="@name"/>
+    <xsl:for-each select="document(concat($dirname, $libname, '-refs.xml'))">
+	<a href="{key('refhref', $name)/@href}"><xsl:value-of select="$name"/></a><br/>
+    </xsl:for-each>
+  </xsl:template>
+
+  <xsl:template match="type" mode="reflist">
+    <h2>Type <xsl:value-of select="@name"/>:</h2>
+    <p>
+      <xsl:for-each select="ref">
+        <xsl:apply-templates mode="anchor" select="."/>
+	<xsl:text>
+</xsl:text>
+      </xsl:for-each>
+    </p>
+  </xsl:template>
+
+  <xsl:template match="letter" mode="reflist">
+    <h2>Letter <xsl:value-of select="@name"/>:</h2>
+    <p>
+      <xsl:for-each select="ref">
+        <xsl:apply-templates mode="anchor" select="."/>
+	<xsl:text>
+</xsl:text>
+      </xsl:for-each>
+    </p>
+  </xsl:template>
+
+  <xsl:template match="file" mode="reflist">
+    <h2><a name="{@name}">Module <xsl:value-of select="@name"/></a>:</h2>
+    <p>
+      <xsl:for-each select="ref">
+        <xsl:apply-templates mode="anchor" select="."/>
+	<xsl:text>
+</xsl:text>
+      </xsl:for-each>
+    </p>
+  </xsl:template>
+  <xsl:template match="letter" mode="wordlist">
+    <h2>Letter <xsl:value-of select="@name"/>:</h2>
+    <dl>
+      <xsl:for-each select="word">
+        <dt><xsl:value-of select="@name"/></dt>
+	<dd>
+	<xsl:for-each select="ref">
+	  <xsl:apply-templates mode="anchor" select="."/>
+	  <xsl:text>
+</xsl:text>
+	</xsl:for-each>
+	</dd>
+      </xsl:for-each>
+    </dl>
+  </xsl:template>
+
+  <xsl:template match="constructors">
+    <xsl:message>Generating API Constructors</xsl:message>
+    <xsl:variable name="title">List of constructors for <xsl:value-of select="$module"/></xsl:variable>
+    <xsl:variable name="doref">
+      <xsl:apply-templates mode="reflist" select="type"/>
+    </xsl:variable>
+    <xsl:call-template name="new_page">
+      <xsl:with-param name="filename" select="'APIconstructors.html'"/>
+      <xsl:with-param name="title" select="$title"/>
+      <xsl:with-param name="target" select="$doref"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="files">
+    <xsl:message>Generating API List of symbols per file</xsl:message>
+    <xsl:variable name="title">List of Symbols per Module for <xsl:value-of select="$module"/></xsl:variable>
+    <xsl:variable name="doref">
+      <xsl:apply-templates mode="reflist" select="file"/>
+    </xsl:variable>
+    <xsl:call-template name="new_page">
+      <xsl:with-param name="filename" select="'APIfiles.html'"/>
+      <xsl:with-param name="title" select="$title"/>
+      <xsl:with-param name="target" select="$doref"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="functions">
+    <xsl:message>Generating API Functions by Type</xsl:message>
+    <xsl:variable name="title">List of function manipulating types in <xsl:value-of select="$module"/></xsl:variable>
+    <xsl:variable name="doref">
+      <xsl:apply-templates mode="reflist" select="type"/>
+    </xsl:variable>
+    <xsl:call-template name="new_page">
+      <xsl:with-param name="filename" select="'APIfunctions.html'"/>
+      <xsl:with-param name="title" select="$title"/>
+      <xsl:with-param name="target" select="$doref"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="alpha">
+    <xsl:message>Generating API Alphabetic list</xsl:message>
+    <xsl:variable name="title">Alphabetic List of Symbols in <xsl:value-of select="$module"/></xsl:variable>
+    <xsl:variable name="doref">
+      <xsl:apply-templates mode="reflist" select="letter"/>
+    </xsl:variable>
+    <xsl:call-template name="new_page">
+      <xsl:with-param name="filename" select="'APIsymbols.html'"/>
+      <xsl:with-param name="title" select="$title"/>
+      <xsl:with-param name="target" select="$doref"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template name="apichunks">
+    <h2 align="center">
+    <xsl:for-each select="/apirefs/index/chunks/chunk">
+      <xsl:variable name="name" select="@name"/>
+      <xsl:variable name="start" select="@start"/>
+      <xsl:variable name="end" select="@end"/>
+      <xsl:variable name="block" select="concat($start, '-', $end)"/>
+      <a href="API{$name}.html"><xsl:value-of select="$block"/></a>
+      <xsl:text>
+</xsl:text>
+    </xsl:for-each>
+    </h2>
+  </xsl:template>
+
+  <xsl:template match="chunk">
+    <xsl:variable name="name" select="@name"/>
+    <xsl:variable name="start" select="@start"/>
+    <xsl:variable name="end" select="@end"/>
+    <xsl:variable name="block" select="concat($start, '-', $end)"/>
+    <xsl:variable name="target" select="/apirefs/index/chunk[@name = $name]"/>
+    <xsl:variable name="title">API Alphabetic Index <xsl:value-of select="$block"/> for <xsl:value-of select="$module"/></xsl:variable>
+    <xsl:variable name="dochunk">
+      <xsl:call-template name="apichunks"/>
+      <xsl:apply-templates mode="wordlist" select="$target/letter"/>
+      <xsl:call-template name="apichunks"/>
+    </xsl:variable>
+    <xsl:call-template name="new_page">
+      <xsl:with-param name="filename" select="concat('API', $name, '.html')"/>
+      <xsl:with-param name="title" select="$title"/>
+      <xsl:with-param name="target" select="$dochunk"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="index">
+    <xsl:message>Generating API Index</xsl:message>
+    <xsl:apply-templates select="chunks/chunk"/>
+  </xsl:template>
+
+  <xsl:template match="apirefs">
+    <xsl:message>Generating API Cross References</xsl:message>
+    <xsl:apply-templates select="constructors"/>
+    <xsl:apply-templates select="functions"/>
+    <xsl:apply-templates select="alpha"/>
+    <xsl:apply-templates select="files"/>
+    <xsl:apply-templates select="index"/>
+  </xsl:template>
+
+  <xsl:template match="/">
+    <xsl:message>Executing api.xsl</xsl:message>
+    <xsl:apply-templates select="$apirefs/apirefs"/>
+    <xsl:if test="$dirname=''">	<!-- template for search only for base dir -->
+      <xsl:message>Generating search template</xsl:message>
+      <xsl:variable name="dummydata">
+        <xsl:element name="insert_php">
+          <xsl:value-of select="'Insert point for php code'"/>
+        </xsl:element>
+      </xsl:variable>
+      <xsl:call-template name="new_page">
+        <xsl:with-param name="filename" select="'search.templ'"/>
+        <xsl:with-param name="title" select="'Search engine'"/>
+        <xsl:with-param name="target" select="$dummydata"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/doc/apibuild.py
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/apibuild.py	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/apibuild.py	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1911 @@
+#!/usr/bin/python -u
+#
+# This is the API builder, it parses the C sources and build the
+# API formal description in XML.
+#
+# See Copyright for the status of this software.
+#
+# daniel at veillard.com
+#
+import os, sys
+import string
+import glob
+
+debug=0
+
+#
+# C parser analysis code
+#
+ignored_files = {
+  "trio": "too many non standard macros",
+  "trio.c": "too many non standard macros",
+  "trionan.c": "too many non standard macros",
+  "triostr.c": "too many non standard macros",
+  "acconfig.h": "generated portability layer",
+  "config.h": "generated portability layer",
+  "libxml.h": "internal only",
+  "testOOM.c": "out of memory tester",
+  "testOOMlib.h": "out of memory tester",
+  "testOOMlib.c": "out of memory tester",
+}
+
+ignored_words = {
+  "WINAPI": (0, "Windows keyword"),
+  "LIBXML_DLL_IMPORT": (0, "Special macro to flag external keywords"),
+  "XMLPUBVAR": (0, "Special macro for extern vars for win32"),
+  "XSLTPUBVAR": (0, "Special macro for extern vars for win32"),
+  "EXSLTPUBVAR": (0, "Special macro for extern vars for win32"),
+  "XMLPUBFUN": (0, "Special macro for extern funcs for win32"),
+  "XSLTPUBFUN": (0, "Special macro for extern funcs for win32"),
+  "EXSLTPUBFUN": (0, "Special macro for extern funcs for win32"),
+  "XMLCALL": (0, "Special macro for win32 calls"),
+  "XSLTCALL": (0, "Special macro for win32 calls"),
+  "EXSLTCALL": (0, "Special macro for win32 calls"),
+  "__declspec": (3, "Windows keyword"),
+  "ATTRIBUTE_UNUSED": (0, "macro keyword"),
+  "LIBEXSLT_PUBLIC": (0, "macro keyword"),
+  "X_IN_Y": (5, "macro function builder"),
+}
+
+def escape(raw):
+    raw = string.replace(raw, '&', '&amp;')
+    raw = string.replace(raw, '<', '&lt;')
+    raw = string.replace(raw, '>', '&gt;')
+    raw = string.replace(raw, "'", '&apos;')
+    raw = string.replace(raw, '"', '&quot;')
+    return raw
+
+def uniq(items):
+    d = {}
+    for item in items:
+        d[item]=1
+    return d.keys()
+
+class identifier:
+    def __init__(self, name, module=None, type=None, lineno = 0,
+                 info=None, extra=None):
+        self.name = name
+	self.module = module
+	self.type = type
+	self.info = info
+	self.extra = extra
+	self.lineno = lineno
+	self.static = 0
+
+    def __repr__(self):
+        r = "%s %s:" % (self.type, self.name)
+	if self.static:
+	    r = r + " static"
+	if self.module != None:
+	    r = r + " from %s" % (self.module)
+	if self.info != None:
+	    r = r + " " +  `self.info`
+	if self.extra != None:
+	    r = r + " " + `self.extra`
+	return r
+
+
+    def set_module(self, module):
+        self.module = module
+    def set_type(self, type):
+        self.type = type
+    def set_info(self, info):
+        self.info = info
+    def set_extra(self, extra):
+        self.extra = extra
+    def set_lineno(self, lineno):
+        self.lineno = lineno
+    def set_static(self, static):
+        self.static = static
+
+    def get_name(self):
+        return self.name
+    def get_module(self):
+        return self.module
+    def get_type(self):
+        return self.type
+    def get_info(self):
+        return self.info
+    def get_lineno(self):
+        return self.lineno
+    def get_extra(self):
+        return self.extra
+    def get_static(self):
+        return self.static
+
+    def update(self, module, type = None, info = None, extra=None):
+        if module != None and self.module == None:
+	    self.set_module(module)
+        if type != None and self.type == None:
+	    self.set_type(type)
+        if info != None:
+	    self.set_info(info)
+        if extra != None:
+	    self.set_extra(extra)
+
+
+class index:
+    def __init__(self, name = "noname"):
+        self.name = name
+        self.identifiers = {}
+        self.functions = {}
+	self.variables = {}
+	self.includes = {}
+	self.structs = {}
+	self.enums = {}
+	self.typedefs = {}
+	self.macros = {}
+	self.references = {}
+	self.info = {}
+
+    def add_ref(self, name, module, static, type, lineno, info=None, extra=None):
+        if name[0:2] == '__':
+	    return None
+        d = None
+        try:
+	   d = self.identifiers[name]
+	   d.update(module, type, lineno, info, extra)
+	except:
+	   d = identifier(name, module, type, lineno, info, extra)
+	   self.identifiers[name] = d
+
+	if d != None and static == 1:
+	    d.set_static(1)
+
+	if d != None and name != None and type != None:
+	    self.references[name] = d
+
+    def add(self, name, module, static, type, lineno, info=None, extra=None):
+        if name[0:2] == '__':
+	    return None
+        d = None
+        try:
+	   d = self.identifiers[name]
+	   d.update(module, type, lineno, info, extra)
+	except:
+	   d = identifier(name, module, type, lineno, info, extra)
+	   self.identifiers[name] = d
+
+	if d != None and static == 1:
+	    d.set_static(1)
+
+	if d != None and name != None and type != None:
+	    if type == "function":
+	        self.functions[name] = d
+	    elif type == "functype":
+	        self.functions[name] = d
+	    elif type == "variable":
+	        self.variables[name] = d
+	    elif type == "include":
+	        self.includes[name] = d
+	    elif type == "struct":
+	        self.structs[name] = d
+	    elif type == "enum":
+	        self.enums[name] = d
+	    elif type == "typedef":
+	        self.typedefs[name] = d
+	    elif type == "macro":
+	        self.macros[name] = d
+	    else:
+	        print "Unable to register type ", type
+	return d
+
+    def merge(self, idx):
+        for id in idx.functions.keys():
+              #
+              # macro might be used to override functions or variables
+              # definitions
+              #
+	     if self.macros.has_key(id):
+	         del self.macros[id]
+	     if self.functions.has_key(id):
+	         print "function %s from %s redeclared in %s" % (
+		    id, self.functions[id].module, idx.functions[id].module)
+	     else:
+	         self.functions[id] = idx.functions[id]
+		 self.identifiers[id] = idx.functions[id]
+        for id in idx.variables.keys():
+              #
+              # macro might be used to override functions or variables
+              # definitions
+              #
+	     if self.macros.has_key(id):
+	         del self.macros[id]
+	     if self.variables.has_key(id):
+	         print "variable %s from %s redeclared in %s" % (
+		    id, self.variables[id].module, idx.variables[id].module)
+	     else:
+	         self.variables[id] = idx.variables[id]
+		 self.identifiers[id] = idx.variables[id]
+        for id in idx.structs.keys():
+	     if self.structs.has_key(id):
+	         print "struct %s from %s redeclared in %s" % (
+		    id, self.structs[id].module, idx.structs[id].module)
+	     else:
+	         self.structs[id] = idx.structs[id]
+		 self.identifiers[id] = idx.structs[id]
+        for id in idx.typedefs.keys():
+	     if self.typedefs.has_key(id):
+	         print "typedef %s from %s redeclared in %s" % (
+		    id, self.typedefs[id].module, idx.typedefs[id].module)
+	     else:
+	         self.typedefs[id] = idx.typedefs[id]
+		 self.identifiers[id] = idx.typedefs[id]
+        for id in idx.macros.keys():
+              #
+              # macro might be used to override functions or variables
+              # definitions
+              #
+             if self.variables.has_key(id):
+                 continue
+             if self.functions.has_key(id):
+                 continue
+             if self.enums.has_key(id):
+                 continue
+	     if self.macros.has_key(id):
+	         print "macro %s from %s redeclared in %s" % (
+		    id, self.macros[id].module, idx.macros[id].module)
+	     else:
+	         self.macros[id] = idx.macros[id]
+		 self.identifiers[id] = idx.macros[id]
+        for id in idx.enums.keys():
+	     if self.enums.has_key(id):
+	         print "enum %s from %s redeclared in %s" % (
+		    id, self.enums[id].module, idx.enums[id].module)
+	     else:
+	         self.enums[id] = idx.enums[id]
+		 self.identifiers[id] = idx.enums[id]
+
+    def merge_public(self, idx):
+        for id in idx.functions.keys():
+	     if self.functions.has_key(id):
+	         up = idx.functions[id]
+	         self.functions[id].update(None, up.type, up.info, up.extra)
+	 #     else:
+	 #         print "Function %s from %s is not declared in headers" % (
+	#	        id, idx.functions[id].module)
+	 # TODO: do the same for variables.
+
+    def analyze_dict(self, type, dict):
+        count = 0
+	public = 0
+        for name in dict.keys():
+	    id = dict[name]
+	    count = count + 1
+	    if id.static == 0:
+	        public = public + 1
+        if count != public:
+	    print "  %d %s , %d public" % (count, type, public)
+	elif count != 0:
+	    print "  %d public %s" % (count, type)
+
+
+    def analyze(self):
+	self.analyze_dict("functions", self.functions)
+	self.analyze_dict("variables", self.variables)
+	self.analyze_dict("structs", self.structs)
+	self.analyze_dict("typedefs", self.typedefs)
+	self.analyze_dict("macros", self.macros)
+         
+class CLexer:
+    """A lexer for the C language, tokenize the input by reading and
+       analyzing it line by line"""
+    def __init__(self, input):
+        self.input = input
+	self.tokens = []
+	self.line = ""
+	self.lineno = 0
+
+    def getline(self):
+        line = ''
+	while line == '':
+	    line = self.input.readline()
+	    if not line:
+		return None
+	    self.lineno = self.lineno + 1
+	    line = string.lstrip(line)
+	    line = string.rstrip(line)
+	    if line == '':
+	        continue
+	    while line[-1] == '\\':
+	        line = line[:-1]
+		n = self.input.readline()
+		self.lineno = self.lineno + 1
+		n = string.lstrip(n)
+		n = string.rstrip(n)
+		if not n:
+		    break
+		else:
+		    line = line + n
+        return line
+	 
+    def getlineno(self):
+        return self.lineno
+
+    def push(self, token):
+        self.tokens.insert(0, token);
+
+    def debug(self):
+        print "Last token: ", self.last
+	print "Token queue: ", self.tokens
+	print "Line %d end: " % (self.lineno), self.line
+
+    def token(self):
+        while self.tokens == []:
+	    if self.line == "":
+		line = self.getline()
+	    else:
+	        line = self.line
+		self.line = ""
+	    if line == None:
+	        return None
+
+	    if line[0] == '#':
+	        self.tokens = map((lambda x: ('preproc', x)),
+		                  string.split(line))
+		break;
+	    l = len(line)
+	    if line[0] == '"' or line[0] == "'":
+	        end = line[0]
+	        line = line[1:]
+		found = 0
+		tok = ""
+		while found == 0:
+		    i = 0
+		    l = len(line)
+		    while i < l:
+			if line[i] == end:
+			    self.line = line[i+1:]
+			    line = line[:i]
+			    l = i
+			    found = 1
+			    break
+			if line[i] == '\\':
+			    i = i + 1
+			i = i + 1
+		    tok = tok + line
+		    if found == 0:
+		        line = self.getline()
+			if line == None:
+			    return None
+		self.last = ('string', tok)
+		return self.last
+
+	    if l >= 2 and line[0] == '/' and line[1] == '*':
+	        line = line[2:]
+		found = 0
+		tok = ""
+		while found == 0:
+		    i = 0
+		    l = len(line)
+		    while i < l:
+			if line[i] == '*' and i+1 < l and line[i+1] == '/':
+			    self.line = line[i+2:]
+			    line = line[:i-1]
+			    l = i
+			    found = 1
+			    break
+			i = i + 1
+	            if tok != "":
+		        tok = tok + "\n"
+		    tok = tok + line
+		    if found == 0:
+		        line = self.getline()
+			if line == None:
+			    return None
+		self.last = ('comment', tok)
+		return self.last
+	    if l >= 2 and line[0] == '/' and line[1] == '/':
+	        line = line[2:]
+		self.last = ('comment', line)
+		return self.last
+	    i = 0
+	    while i < l:
+	        if line[i] == '/' and i+1 < l and line[i+1] == '/':
+		    self.line = line[i:]
+		    line = line[:i]
+		    break
+	        if line[i] == '/' and i+1 < l and line[i+1] == '*':
+		    self.line = line[i:]
+		    line = line[:i]
+		    break
+		if line[i] == '"' or line[i] == "'":
+		    self.line = line[i:]
+		    line = line[:i]
+		    break
+		i = i + 1
+	    l = len(line)
+	    i = 0
+	    while i < l:
+	        if line[i] == ' ' or line[i] == '\t':
+		    i = i + 1
+		    continue
+		o = ord(line[i])
+		if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
+		   (o >= 48 and o <= 57):
+		    s = i
+		    while i < l:
+			o = ord(line[i])
+			if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
+			   (o >= 48 and o <= 57) or string.find(
+			       " \t(){}:;,+-*/%&!|[]=><", line[i]) == -1:
+			    i = i + 1
+			else:
+			    break
+		    self.tokens.append(('name', line[s:i]))
+		    continue
+		if string.find("(){}:;,[]", line[i]) != -1:
+#                 if line[i] == '(' or line[i] == ')' or line[i] == '{' or \
+#		    line[i] == '}' or line[i] == ':' or line[i] == ';' or \
+#		    line[i] == ',' or line[i] == '[' or line[i] == ']':
+		    self.tokens.append(('sep', line[i]))
+		    i = i + 1
+		    continue
+		if string.find("+-*><=/%&!|.", line[i]) != -1:
+#                 if line[i] == '+' or line[i] == '-' or line[i] == '*' or \
+#		    line[i] == '>' or line[i] == '<' or line[i] == '=' or \
+#		    line[i] == '/' or line[i] == '%' or line[i] == '&' or \
+#		    line[i] == '!' or line[i] == '|' or line[i] == '.':
+		    if line[i] == '.' and  i + 2 < l and \
+		       line[i+1] == '.' and line[i+2] == '.':
+			self.tokens.append(('name', '...'))
+			i = i + 3
+			continue
+
+		    j = i + 1
+		    if j < l and (
+		       string.find("+-*><=/%&!|", line[j]) != -1):
+#		        line[j] == '+' or line[j] == '-' or line[j] == '*' or \
+#			line[j] == '>' or line[j] == '<' or line[j] == '=' or \
+#			line[j] == '/' or line[j] == '%' or line[j] == '&' or \
+#			line[j] == '!' or line[j] == '|'):
+			self.tokens.append(('op', line[i:j+1]))
+			i = j + 1
+		    else:
+			self.tokens.append(('op', line[i]))
+			i = i + 1
+		    continue
+		s = i
+		while i < l:
+		    o = ord(line[i])
+		    if (o >= 97 and o <= 122) or (o >= 65 and o <= 90) or \
+		       (o >= 48 and o <= 57) or (
+		        string.find(" \t(){}:;,+-*/%&!|[]=><", line[i]) == -1):
+#		         line[i] != ' ' and line[i] != '\t' and
+#			 line[i] != '(' and line[i] != ')' and
+#			 line[i] != '{'  and line[i] != '}' and
+#			 line[i] != ':' and line[i] != ';' and
+#			 line[i] != ',' and line[i] != '+' and
+#			 line[i] != '-' and line[i] != '*' and
+#			 line[i] != '/' and line[i] != '%' and
+#			 line[i] != '&' and line[i] != '!' and
+#			 line[i] != '|' and line[i] != '[' and
+#			 line[i] != ']' and line[i] != '=' and
+#			 line[i] != '*' and line[i] != '>' and
+#			 line[i] != '<'):
+			i = i + 1
+		    else:
+		        break
+		self.tokens.append(('name', line[s:i]))
+             
+	tok = self.tokens[0]
+	self.tokens = self.tokens[1:]
+	self.last = tok
+	return tok
+      
+class CParser:
+    """The C module parser"""
+    def __init__(self, filename, idx = None):
+        self.filename = filename
+	if len(filename) > 2 and filename[-2:] == '.h':
+	    self.is_header = 1
+	else:
+	    self.is_header = 0
+        self.input = open(filename)
+	self.lexer = CLexer(self.input)
+	if idx == None:
+	    self.index = index()
+	else:
+	    self.index = idx
+	self.top_comment = ""
+	self.last_comment = ""
+	self.comment = None
+	self.collect_ref = 0
+	self.no_error = 0
+
+    def collect_references(self):
+        self.collect_ref = 1
+
+    def stop_error(self):
+        self.no_error = 1
+
+    def start_error(self):
+        self.no_error = 0
+
+    def lineno(self):
+        return self.lexer.getlineno()
+
+    def index_add(self, name, module, static, type, info=None, extra = None):
+        self.index.add(name, module, static, type, self.lineno(),
+	               info, extra)
+
+    def index_add_ref(self, name, module, static, type, info=None,
+                      extra = None):
+        self.index.add_ref(name, module, static, type, self.lineno(),
+	               info, extra)
+
+    def warning(self, msg):
+        if self.no_error:
+	    return
+	print msg
+
+    def error(self, msg, token=-1):
+        if self.no_error:
+	    return
+
+        print "Parse Error: " + msg
+	if token != -1:
+	    print "Got token ", token
+	self.lexer.debug()
+	sys.exit(1)
+
+    def debug(self, msg, token=-1):
+        print "Debug: " + msg
+	if token != -1:
+	    print "Got token ", token
+	self.lexer.debug()
+
+    def parseTopComment(self, comment):
+	res = {}
+	lines = string.split(comment, "\n")
+	item = None
+	for line in lines:
+	    while line != "" and (line[0] == ' ' or line[0] == '\t'):
+		line = line[1:]
+	    while line != "" and line[0] == '*':
+		line = line[1:]
+	    while line != "" and (line[0] == ' ' or line[0] == '\t'):
+		line = line[1:]
+	    try:
+		(it, line) = string.split(line, ":", 1)
+		item = it
+		while line != "" and (line[0] == ' ' or line[0] == '\t'):
+		    line = line[1:]
+		if res.has_key(item):
+		    res[item] = res[item] + " " + line
+		else:
+		    res[item] = line
+	    except:
+		if item != None:
+		    if res.has_key(item):
+			res[item] = res[item] + " " + line
+		    else:
+			res[item] = line
+	self.index.info = res
+
+    def parseComment(self, token):
+        if self.top_comment == "":
+	    self.top_comment = token[1]
+	if self.comment == None or token[1][0] == '*':
+	    self.comment = token[1];
+	else:
+	    self.comment = self.comment + token[1]
+	token = self.lexer.token()
+
+        if string.find(self.comment, "DOC_DISABLE") != -1:
+	    self.stop_error()
+
+        if string.find(self.comment, "DOC_ENABLE") != -1:
+	    self.start_error()
+
+	return token
+
+     #
+     # Parse a comment block associate to a macro
+     #
+    def parseMacroComment(self, name, quiet = 0):
+        if name[0:2] == '__':
+	    quiet = 1
+
+        args = []
+	desc = ""
+
+        if self.comment == None:
+	    if not quiet:
+		self.warning("Missing comment for macro %s" % (name))
+	    return((args, desc))
+        if self.comment[0] != '*':
+	    if not quiet:
+		self.warning("Missing * in macro comment for %s" % (name))
+	    return((args, desc))
+	lines = string.split(self.comment, '\n')
+	if lines[0] == '*':
+	    del lines[0]
+	if lines[0] != "* %s:" % (name):
+	    if not quiet:
+		self.warning("Misformatted macro comment for %s" % (name))
+		self.warning("  Expecting '* %s:' got '%s'" % (name, lines[0]))
+	    return((args, desc))
+	del lines[0]
+	while lines[0] == '*':
+	    del lines[0]
+	while len(lines) > 0 and lines[0][0:3] == '* @':
+	    l = lines[0][3:]
+	    try:
+	        (arg, desc) = string.split(l, ':', 1)
+		desc=string.strip(desc)
+		arg=string.strip(arg)
+            except:
+		if not quiet:
+		    self.warning("Misformatted macro comment for %s" % (name))
+		    self.warning("  problem with '%s'" % (lines[0]))
+		del lines[0]
+		continue
+	    del lines[0]
+	    l = string.strip(lines[0])
+	    while len(l) > 2 and l[0:3] != '* @':
+	        while l[0] == '*':
+		    l = l[1:]
+		desc = desc + ' ' + string.strip(l)
+		del lines[0]
+		if len(lines) == 0:
+		    break
+		l = lines[0]
+            args.append((arg, desc))
+	while len(lines) > 0 and lines[0] == '*':
+	    del lines[0]
+	desc = ""
+	while len(lines) > 0:
+	    l = lines[0]
+	    while len(l) > 0 and l[0] == '*':
+	        l = l[1:]
+	    l = string.strip(l)
+	    desc = desc + " " + l
+	    del lines[0]
+		     
+	desc = string.strip(desc)
+
+	if quiet == 0:
+	    if desc == "":
+	        self.warning("Macro comment for %s lack description of the macro" % (name))
+
+	return((args, desc))
+
+     #
+     # Parse a comment block and merge the informations found in the
+     # parameters descriptions, finally returns a block as complete
+     # as possible
+     #
+    def mergeFunctionComment(self, name, description, quiet = 0):
+        if name == 'main':
+	    quiet = 1
+        if name[0:2] == '__':
+	    quiet = 1
+
+	(ret, args) = description
+	desc = ""
+	retdesc = ""
+
+        if self.comment == None:
+	    if not quiet:
+		self.warning("Missing comment for function %s" % (name))
+	    return(((ret[0], retdesc), args, desc))
+        if self.comment[0] != '*':
+	    if not quiet:
+		self.warning("Missing * in function comment for %s" % (name))
+	    return(((ret[0], retdesc), args, desc))
+	lines = string.split(self.comment, '\n')
+	if lines[0] == '*':
+	    del lines[0]
+	if lines[0] != "* %s:" % (name):
+	    if not quiet:
+		self.warning("Misformatted function comment for %s" % (name))
+		self.warning("  Expecting '* %s:' got '%s'" % (name, lines[0]))
+	    return(((ret[0], retdesc), args, desc))
+	del lines[0]
+	while lines[0] == '*':
+	    del lines[0]
+	nbargs = len(args)
+	while len(lines) > 0 and lines[0][0:3] == '* @':
+	    l = lines[0][3:]
+	    try:
+	        (arg, desc) = string.split(l, ':', 1)
+		desc=string.strip(desc)
+		arg=string.strip(arg)
+            except:
+		if not quiet:
+		    self.warning("Misformatted function comment for %s" % (name))
+		    self.warning("  problem with '%s'" % (lines[0]))
+		del lines[0]
+		continue
+	    del lines[0]
+	    l = string.strip(lines[0])
+	    while len(l) > 2 and l[0:3] != '* @':
+	        while l[0] == '*':
+		    l = l[1:]
+		desc = desc + ' ' + string.strip(l)
+		del lines[0]
+		if len(lines) == 0:
+		    break
+		l = lines[0]
+	    i = 0
+	    while i < nbargs:
+	        if args[i][1] == arg:
+		    args[i] = (args[i][0], arg, desc)
+		    break;
+		i = i + 1
+	    if i >= nbargs:
+		if not quiet:
+		    self.warning("Unable to find arg %s from function comment for %s" % (
+		       arg, name))
+	while len(lines) > 0 and lines[0] == '*':
+	    del lines[0]
+	desc = ""
+	while len(lines) > 0:
+	    l = lines[0]
+	    while len(l) > 0 and l[0] == '*':
+	        l = l[1:]
+	    l = string.strip(l)
+	    if len(l) >= 6 and  l[0:6] == "return" or l[0:6] == "Return":
+	        try:
+		    l = string.split(l, ' ', 1)[1]
+		except:
+		    l = ""
+		retdesc = string.strip(l)
+		del lines[0]
+		while len(lines) > 0:
+		    l = lines[0]
+		    while len(l) > 0 and l[0] == '*':
+			l = l[1:]
+		    l = string.strip(l)
+		    retdesc = retdesc + " " + l
+		    del lines[0]
+	    else:
+	        desc = desc + " " + l
+		del lines[0]
+		     
+	retdesc = string.strip(retdesc)
+	desc = string.strip(desc)
+
+	if quiet == 0:
+	     #
+	     # report missing comments
+	     #
+	    i = 0
+	    while i < nbargs:
+	        if args[i][2] == None and args[i][0] != "void" and args[i][1] != None:
+		    self.warning("Function comment for %s lack description of arg %s" % (name, args[i][1]))
+		i = i + 1
+	    if retdesc == "" and ret[0] != "void":
+		self.warning("Function comment for %s lack description of return value" % (name))
+	    if desc == "":
+	        self.warning("Function comment for %s lack description of the function" % (name))
+
+
+	return(((ret[0], retdesc), args, desc))
+
+    def parsePreproc(self, token):
+        name = token[1]
+	if name == "#include":
+	    token = self.lexer.token()
+	    if token == None:
+	        return None
+	    if token[0] == 'preproc':
+		self.index_add(token[1], self.filename, not self.is_header,
+		                "include")
+		return self.lexer.token()
+	    return token
+	if name == "#define":
+	    token = self.lexer.token()
+	    if token == None:
+	        return None
+	    if token[0] == 'preproc':
+	         # TODO macros with arguments
+		name = token[1]
+	        lst = []
+		token = self.lexer.token()
+		while token != None and token[0] == 'preproc' and \
+		      token[1][0] != '#':
+		    lst.append(token[1])
+		    token = self.lexer.token()
+                try:
+		    name = string.split(name, '(') [0]
+                except:
+                    pass
+                info = self.parseMacroComment(name, not self.is_header)
+		self.index_add(name, self.filename, not self.is_header,
+		                "macro", info)
+		return token
+	token = self.lexer.token()
+	while token != None and token[0] == 'preproc' and \
+	    token[1][0] != '#':
+	    token = self.lexer.token()
+	return token
+
+     #
+     # token acquisition on top of the lexer, it handle internally
+     # preprocessor and comments since they are logically not part of
+     # the program structure.
+     #
+    def token(self):
+        global ignored_words
+
+        token = self.lexer.token()
+	while token != None:
+	    if token[0] == 'comment':
+		token = self.parseComment(token)
+		continue
+	    elif token[0] == 'preproc':
+		token = self.parsePreproc(token)
+		continue
+	    elif token[0] == "name" and ignored_words.has_key(token[1]):
+	        (n, info) = ignored_words[token[1]]
+		i = 0
+		while i < n:
+		    token = self.lexer.token()
+		    i = i + 1
+		token = self.lexer.token()
+		continue
+	    else:
+	        if debug:
+		    print "=> ", token
+	        return token
+	return None
+
+     #
+     # Parse a typedef, it records the type and its name.
+     #
+    def parseTypedef(self, token):
+        if token == None:
+	    return None
+	token = self.parseType(token)
+	if token == None:
+	    self.error("parsing typedef")
+	    return None
+	base_type = self.type
+	type = base_type
+	 #self.debug("end typedef type", token)
+	while token != None:
+	    if token[0] == "name":
+		name = token[1]
+		signature = self.signature
+		if signature != None:
+		    type = string.split(type, '(')[0]
+		    d = self.mergeFunctionComment(name,
+			    ((type, None), signature), 1)
+		    self.index_add(name, self.filename, not self.is_header,
+				    "functype", d)
+		else:
+		    if base_type == "struct":
+			self.index_add(name, self.filename, not self.is_header,
+					"struct", type)
+			base_type = "struct " + name
+	            else:
+			self.index_add(name, self.filename, not self.is_header,
+		                    "typedef", type)
+		token = self.token()
+	    else:
+		self.error("parsing typedef: expecting a name")
+		return token
+	     #self.debug("end typedef", token)
+	    if token != None and token[0] == 'sep' and token[1] == ',':
+	        type = base_type
+	        token = self.token()
+		while token != None and token[0] == "op":
+		    type = type + token[1]
+		    token = self.token()
+	    elif token != None and token[0] == 'sep' and token[1] == ';':
+	        break;
+	    elif token != None and token[0] == 'name':
+	        type = base_type
+	        continue;
+	    else:
+		self.error("parsing typedef: expecting ';'", token)
+		return token
+	token = self.token()
+	return token
+	     
+     #
+     # Parse a C code block, used for functions it parse till
+     # the balancing } included
+     #
+    def parseBlock(self, token):
+        while token != None:
+	    if token[0] == "sep" and token[1] == "{":
+	        token = self.token()
+		token = self.parseBlock(token)
+	    elif token[0] == "sep" and token[1] == "}":
+	        self.comment = None
+	        token = self.token()
+		return token
+	    else:
+	        if self.collect_ref == 1:
+		    oldtok = token
+		    token = self.token()
+		    if oldtok[0] == "name" and oldtok[1][0:3] == "xml":
+		        if token[0] == "sep" and token[1] == "(":
+			    self.index_add_ref(oldtok[1], self.filename,
+			                        0, "function")
+			    token = self.token()
+			elif token[0] == "name":
+			    token = self.token()
+			    if token[0] == "sep" and (token[1] == ";" or
+			       token[1] == "," or token[1] == "="):
+				self.index_add_ref(oldtok[1], self.filename,
+						    0, "type")
+		    elif oldtok[0] == "name" and oldtok[1][0:4] == "XML_":
+			self.index_add_ref(oldtok[1], self.filename,
+					    0, "typedef")
+		    elif oldtok[0] == "name" and oldtok[1][0:7] == "LIBXML_":
+			self.index_add_ref(oldtok[1], self.filename,
+					    0, "typedef")
+			 
+		else:
+		    token = self.token()
+	return token
+
+     #
+     # Parse a C struct definition till the balancing }
+     #
+    def parseStruct(self, token):
+        fields = []
+	 #self.debug("start parseStruct", token)
+        while token != None:
+	    if token[0] == "sep" and token[1] == "{":
+	        token = self.token()
+		token = self.parseTypeBlock(token)
+	    elif token[0] == "sep" and token[1] == "}":
+		self.struct_fields = fields
+		 #self.debug("end parseStruct", token)
+		 #print fields
+	        token = self.token()
+		return token
+	    else:
+	        base_type = self.type
+		 #self.debug("before parseType", token)
+		token = self.parseType(token)
+		 #self.debug("after parseType", token)
+		if token != None and token[0] == "name":
+		    fname = token[1]
+		    token = self.token()
+		    if token[0] == "sep" and token[1] == ";":
+		        self.comment = None
+		        token = self.token()
+			fields.append((self.type, fname, self.comment))
+			self.comment = None
+		    else:
+		        self.error("parseStruct: expecting ;", token)
+		elif token != None and token[0] == "sep" and token[1] == "{":
+		    token = self.token()
+		    token = self.parseTypeBlock(token)
+		    if token != None and token[0] == "name":
+			token = self.token()
+		    if token != None and token[0] == "sep" and token[1] == ";":
+			token = self.token()
+		    else:
+		        self.error("parseStruct: expecting ;", token)
+		else:
+		    self.error("parseStruct: name", token)
+		    token = self.token()
+		self.type = base_type;
+        self.struct_fields = fields
+	 #self.debug("end parseStruct", token)
+	 #print fields
+	return token
+
+     #
+     # Parse a C enum block, parse till the balancing }
+     #
+    def parseEnumBlock(self, token):
+        self.enums = []
+	name = None
+	self.comment = None
+	comment = ""
+	value = "0"
+        while token != None:
+	    if token[0] == "sep" and token[1] == "{":
+	        token = self.token()
+		token = self.parseTypeBlock(token)
+	    elif token[0] == "sep" and token[1] == "}":
+		if name != None:
+		    if self.comment != None:
+			comment = self.comment
+			self.comment = None
+		    self.enums.append((name, value, comment))
+	        token = self.token()
+		return token
+	    elif token[0] == "name":
+		    if name != None:
+			if self.comment != None:
+			    comment = string.strip(self.comment)
+			    self.comment = None
+			self.enums.append((name, value, comment))
+		    name = token[1]
+		    comment = ""
+		    token = self.token()
+		    if token[0] == "op" and token[1][0] == "=":
+		        value = ""
+		        if len(token[1]) > 1:
+			    value = token[1][1:]
+		        token = self.token()
+		        while token[0] != "sep" or (token[1] != ',' and
+			      token[1] != '}'):
+			    value = value + token[1]
+			    token = self.token()
+		    else:
+		        try:
+			    value = "%d" % (int(value) + 1)
+			except:
+			    self.warning("Failed to compute value of enum %s" % (name))
+			    value=""
+		    if token[0] == "sep" and token[1] == ",":
+			token = self.token()
+	    else:
+	        token = self.token()
+	return token
+
+     #
+     # Parse a C definition block, used for structs it parse till
+     # the balancing }
+     #
+    def parseTypeBlock(self, token):
+        while token != None:
+	    if token[0] == "sep" and token[1] == "{":
+	        token = self.token()
+		token = self.parseTypeBlock(token)
+	    elif token[0] == "sep" and token[1] == "}":
+	        token = self.token()
+		return token
+	    else:
+	        token = self.token()
+	return token
+
+     #
+     # Parse a type: the fact that the type name can either occur after
+     #    the definition or within the definition makes it a little harder
+     #    if inside, the name token is pushed back before returning
+     #
+    def parseType(self, token):
+        self.type = ""
+	self.struct_fields = []
+        self.signature = None
+	if token == None:
+	    return token
+
+	while token[0] == "name" and ( 
+	      token[1] == "const" or token[1] == "unsigned"):
+	    if self.type == "":
+	        self.type = token[1]
+	    else:
+	        self.type = self.type + " " + token[1]
+	    token = self.token()
+
+        if token[0] == "name" and (token[1] == "long" or token[1] == "short"):
+	    if self.type == "":
+	        self.type = token[1]
+	    else:
+	        self.type = self.type + " " + token[1]
+	    if token[0] == "name" and token[1] == "int":
+		if self.type == "":
+		    self.type = tmp[1]
+		else:
+		    self.type = self.type + " " + tmp[1]
+	     
+        elif token[0] == "name" and token[1] == "struct":
+	    if self.type == "":
+	        self.type = token[1]
+	    else:
+	        self.type = self.type + " " + token[1]
+	    token = self.token()
+	    nametok = None
+	    if token[0] == "name":
+	        nametok = token
+		token = self.token()
+	    if token != None and token[0] == "sep" and token[1] == "{":
+		token = self.token()
+		token = self.parseStruct(token)
+	    elif token != None and token[0] == "op" and token[1] == "*":
+	        self.type = self.type + " " + nametok[1] + " *"
+		token = self.token()
+		while token != None and token[0] == "op" and token[1] == "*":
+		    self.type = self.type + " *"
+		    token = self.token()
+		if token[0] == "name":
+		    nametok = token
+		    token = self.token()
+		else:
+		    self.error("struct : expecting name", token)
+		    return token
+	    elif token != None and token[0] == "name" and nametok != None:
+	        self.type = self.type + " " + nametok[1]
+		return token
+
+	    if nametok != None:
+		self.lexer.push(token)
+		token = nametok
+	    return token
+
+        elif token[0] == "name" and token[1] == "enum":
+	    if self.type == "":
+	        self.type = token[1]
+	    else:
+	        self.type = self.type + " " + token[1]
+	    self.enums = []
+	    token = self.token()
+	    if token != None and token[0] == "sep" and token[1] == "{":
+		token = self.token()
+		token = self.parseEnumBlock(token)
+	    else:
+		self.error("parsing enum: expecting '{'", token)
+	    enum_type = None
+	    if token != None and token[0] != "name":
+	        self.lexer.push(token)
+	        token = ("name", "enum")
+	    else:
+	        enum_type = token[1]
+	    for enum in self.enums:
+		self.index_add(enum[0], self.filename,
+			       not self.is_header, "enum",
+			       (enum[1], enum[2], enum_type))
+	    return token
+
+	elif token[0] == "name":
+	    if self.type == "":
+	        self.type = token[1]
+	    else:
+	        self.type = self.type + " " + token[1]
+	else:
+	    self.error("parsing type %s: expecting a name" % (self.type),
+	               token)
+	    return token
+	token = self.token()
+        while token != None and (token[0] == "op" or
+	      token[0] == "name" and token[1] == "const"):
+	    self.type = self.type + " " + token[1]
+	    token = self.token()
+
+	 #
+	 # if there is a parenthesis here, this means a function type
+	 #
+	if token != None and token[0] == "sep" and token[1] == '(':
+	    self.type = self.type + token[1]
+	    token = self.token()
+	    while token != None and token[0] == "op" and token[1] == '*':
+	        self.type = self.type + token[1]
+		token = self.token()
+	    if token == None or token[0] != "name" :
+		self.error("parsing function type, name expected", token);
+	        return token
+	    self.type = self.type + token[1]
+	    nametok = token
+	    token = self.token()
+	    if token != None and token[0] == "sep" and token[1] == ')':
+		self.type = self.type + token[1]
+		token = self.token()
+		if token != None and token[0] == "sep" and token[1] == '(':
+		    token = self.token()
+		    type = self.type;
+		    token = self.parseSignature(token);
+		    self.type = type;
+		else:
+		    self.error("parsing function type, '(' expected", token);
+		    return token
+	    else:
+	        self.error("parsing function type, ')' expected", token);
+		return token
+	    self.lexer.push(token)
+	    token = nametok
+	    return token
+
+         #
+	 # do some lookahead for arrays
+	 #
+	if token != None and token[0] == "name":
+	    nametok = token
+	    token = self.token()
+	    if token != None and token[0] == "sep" and token[1] == '[':
+	        self.type = self.type + nametok[1]
+		while token != None and token[0] == "sep" and token[1] == '[':
+		    self.type = self.type + token[1]
+		    token = self.token()
+		    while token != None and token[0] != 'sep' and \
+		          token[1] != ']' and token[1] != ';':
+			self.type = self.type + token[1]
+			token = self.token()
+		if token != None and token[0] == 'sep' and token[1] == ']':
+		    self.type = self.type + token[1]
+		    token = self.token()
+		else:
+		    self.error("parsing array type, ']' expected", token);
+		    return token
+	    elif token != None and token[0] == "sep" and token[1] == ':':
+	         # remove :12 in case it's a limited int size
+		token = self.token()
+		token = self.token()
+	    self.lexer.push(token)
+	    token = nametok
+
+	return token
+
+     #
+     # Parse a signature: '(' has been parsed and we scan the type definition
+     #    up to the ')' included
+    def parseSignature(self, token):
+        signature = []
+	if token != None and token[0] == "sep" and token[1] == ')':
+	    self.signature = []
+	    token = self.token()
+	    return token
+	while token != None:
+	    token = self.parseType(token)
+	    if token != None and token[0] == "name":
+	        signature.append((self.type, token[1], None))
+		token = self.token()
+	    elif token != None and token[0] == "sep" and token[1] == ',':
+		token = self.token()
+		continue
+	    elif token != None and token[0] == "sep" and token[1] == ')':
+	         # only the type was provided
+		if self.type == "...":
+		    signature.append((self.type, "...", None))
+		else:
+		    signature.append((self.type, None, None))
+	    if token != None and token[0] == "sep":
+	        if token[1] == ',':
+		    token = self.token()
+		    continue
+		elif token[1] == ')':
+		    token = self.token()
+		    break
+	self.signature = signature
+	return token
+
+     #
+     # Parse a global definition, be it a type, variable or function
+     # the extern "C" blocks are a bit nasty and require it to recurse.
+     #
+    def parseGlobal(self, token):
+        static = 0
+        if token[1] == 'extern':
+	    token = self.token()
+	    if token == None:
+	        return token
+	    if token[0] == 'string':
+	        if token[1] == 'C':
+		    token = self.token()
+		    if token == None:
+			return token
+		    if token[0] == 'sep' and token[1] == "{":
+		        token = self.token()
+#			 print 'Entering extern "C line ', self.lineno()
+			while token != None and (token[0] != 'sep' or
+			      token[1] != "}"):
+			    if token[0] == 'name':
+				token = self.parseGlobal(token)
+			    else:
+				self.error(
+				 "token %s %s unexpected at the top level" % (
+					token[0], token[1]))
+				token = self.parseGlobal(token)
+#			 print 'Exiting extern "C" line', self.lineno()
+			token = self.token()
+			return token
+		else:
+		    return token
+	elif token[1] == 'static':
+	    static = 1
+	    token = self.token()
+	    if token == None or  token[0] != 'name':
+	        return token
+
+	if token[1] == 'typedef':
+	    token = self.token()
+	    return self.parseTypedef(token)
+	else:
+	    token = self.parseType(token)
+	    type_orig = self.type
+	if token == None or token[0] != "name":
+	    return token
+	type = type_orig
+	self.name = token[1]
+	token = self.token()
+	while token != None and (token[0] == "sep" or token[0] == "op"):
+	    if token[0] == "sep":
+		if token[1] == "[":
+		    type = type + token[1]
+		    token = self.token()
+		    while token != None and (token[0] != "sep" or \
+		          token[1] != ";"):
+			type = type + token[1]
+			token = self.token()
+
+	    if token != None and token[0] == "op" and token[1] == "=":
+		 #
+		 # Skip the initialization of the variable
+		 #
+		token = self.token()
+		if token[0] == 'sep' and token[1] == '{':
+		    token = self.token()
+		    token = self.parseBlock(token)
+		else:
+		    self.comment = None
+		    while token != None and (token[0] != "sep" or \
+			  (token[1] != ';' and token[1] != ',')):
+			    token = self.token()
+		self.comment = None
+		if token == None or token[0] != "sep" or (token[1] != ';' and
+		   token[1] != ','):
+		    self.error("missing ';' or ',' after value")
+
+	    if token != None and token[0] == "sep":
+		if token[1] == ";":
+		    self.comment = None
+		    token = self.token()
+		    if type == "struct":
+		        self.index_add(self.name, self.filename,
+			     not self.is_header, "struct", self.struct_fields)
+		    else:
+			self.index_add(self.name, self.filename,
+			     not self.is_header, "variable", type)
+		    break
+		elif token[1] == "(":
+		    token = self.token()
+		    token = self.parseSignature(token)
+		    if token == None:
+			return None
+		    if token[0] == "sep" and token[1] == ";":
+		        d = self.mergeFunctionComment(self.name,
+				((type, None), self.signature), 1)
+			self.index_add(self.name, self.filename, static,
+			                "function", d)
+			token = self.token()
+		    elif token[0] == "sep" and token[1] == "{":
+		        d = self.mergeFunctionComment(self.name,
+				((type, None), self.signature), static)
+			self.index_add(self.name, self.filename, static,
+			                "function", d)
+			token = self.token()
+			token = self.parseBlock(token);
+		elif token[1] == ',':
+		    self.comment = None
+		    self.index_add(self.name, self.filename, static,
+		                    "variable", type)
+		    type = type_orig
+		    token = self.token()
+		    while token != None and token[0] == "sep":
+		        type = type + token[1]
+			token = self.token()
+		    if token != None and token[0] == "name":
+		        self.name = token[1]
+			token = self.token()
+		else:
+		    break
+		    
+	return token
+
+    def parse(self):
+        self.warning("Parsing %s" % (self.filename))
+        token = self.token()
+	while token != None:
+            if token[0] == 'name':
+	        token = self.parseGlobal(token)
+            else:
+	        self.error("token %s %s unexpected at the top level" % (
+		       token[0], token[1]))
+		token = self.parseGlobal(token)
+		return
+	self.parseTopComment(self.top_comment)
+        return self.index
+	         
+
+class docBuilder:
+    """A documentation builder"""
+    def __init__(self, name, directories=['.'], excludes=[]):
+        self.name = name
+        self.directories = directories
+	self.excludes = excludes + ignored_files.keys()
+	self.modules = {}
+	self.headers = {}
+	self.idx = index()
+        self.xref = {}
+	self.index = {}
+	if name == 'libxml2':
+	    self.basename = 'libxml'
+	else:
+	    self.basename = name
+
+    def indexString(self, id, str):
+	if str == None:
+	    return
+	str = string.replace(str, "'", ' ')
+	str = string.replace(str, '"', ' ')
+	str = string.replace(str, "/", ' ')
+	str = string.replace(str, '*', ' ')
+	str = string.replace(str, "[", ' ')
+	str = string.replace(str, "]", ' ')
+	str = string.replace(str, "(", ' ')
+	str = string.replace(str, ")", ' ')
+	str = string.replace(str, "<", ' ')
+	str = string.replace(str, '>', ' ')
+	str = string.replace(str, "&", ' ')
+	str = string.replace(str, '#', ' ')
+	str = string.replace(str, ",", ' ')
+	str = string.replace(str, '.', ' ')
+	str = string.replace(str, ';', ' ')
+	tokens = string.split(str)
+	for token in tokens:
+	    try:
+		c = token[0]
+		if string.find(string.letters, c) < 0:
+		    pass
+		elif len(token) < 3:
+		    pass
+		else:
+		    lower = string.lower(token)
+		    # TODO: generalize this a bit
+		    if lower == 'and' or lower == 'the':
+			pass
+		    elif self.xref.has_key(token):
+			self.xref[token].append(id)
+		    else:
+			self.xref[token] = [id]
+	    except:
+		pass
+
+    def analyze(self):
+        print "Project %s : %d headers, %d modules" % (self.name, len(self.headers.keys()), len(self.modules.keys()))
+	self.idx.analyze()
+
+    def scanHeaders(self):
+	for header in self.headers.keys():
+	    parser = CParser(header)
+	    idx = parser.parse()
+	    self.headers[header] = idx;
+	    self.idx.merge(idx)
+
+    def scanModules(self):
+	for module in self.modules.keys():
+	    parser = CParser(module)
+	    idx = parser.parse()
+	    # idx.analyze()
+	    self.modules[module] = idx
+	    self.idx.merge_public(idx)
+
+    def scan(self):
+        for directory in self.directories:
+	    files = glob.glob(directory + "/*.c")
+	    for file in files:
+	        skip = 0
+		for excl in self.excludes:
+		    if string.find(file, excl) != -1:
+		        skip = 1;
+			break
+		if skip == 0:
+		    self.modules[file] = None;
+	    files = glob.glob(directory + "/*.h")
+	    for file in files:
+	        skip = 0
+		for excl in self.excludes:
+		    if string.find(file, excl) != -1:
+		        skip = 1;
+			break
+		if skip == 0:
+		    self.headers[file] = None;
+	self.scanHeaders()
+	self.scanModules()
+         
+    def modulename_file(self, file):
+        module = os.path.basename(file)
+	if module[-2:] == '.h':
+	    module = module[:-2]
+	return module
+
+    def serialize_enum(self, output, name):
+        id = self.idx.enums[name]
+        output.write("    <enum name='%s' file='%s'" % (name,
+	             self.modulename_file(id.module)))
+	if id.info != None:
+	    info = id.info
+	    if info[0] != None and info[0] != '':
+	        try:
+		    val = eval(info[0])
+		except:
+		    val = info[0]
+		output.write(" value='%s'" % (val));
+	    if info[2] != None and info[2] != '':
+		output.write(" type='%s'" % info[2]);
+	    if info[1] != None and info[1] != '':
+		output.write(" info='%s'" % escape(info[1]));
+        output.write("/>\n")
+
+    def serialize_macro(self, output, name):
+        id = self.idx.macros[name]
+        output.write("    <macro name='%s' file='%s'>\n" % (name,
+	             self.modulename_file(id.module)))
+	if id.info != None:
+            try:
+		(args, desc) = id.info
+		if desc != None and desc != "":
+		    output.write("      <info>%s</info>\n" % (escape(desc)))
+		    self.indexString(name, desc)
+		for arg in args:
+		    (name, desc) = arg
+		    if desc != None and desc != "":
+			output.write("      <arg name='%s' info='%s'/>\n" % (
+				     name, escape(desc)))
+			self.indexString(name, desc)
+		    else:
+			output.write("      <arg name='%s'/>\n" % (name))
+            except:
+                pass
+        output.write("    </macro>\n")
+
+    def serialize_typedef(self, output, name):
+        id = self.idx.typedefs[name]
+	if id.info[0:7] == 'struct ':
+	    output.write("    <struct name='%s' file='%s' type='%s'" % (
+	             name, self.modulename_file(id.module), id.info))
+	    name = id.info[7:]
+	    if self.idx.structs.has_key(name) and ( \
+	       type(self.idx.structs[name].info) == type(()) or
+		type(self.idx.structs[name].info) == type([])):
+	        output.write(">\n");
+		try:
+		    for field in self.idx.structs[name].info:
+			desc = field[2]
+			self.indexString(name, desc)
+			if desc == None:
+			    desc = ''
+			else:
+			    desc = escape(desc)
+			output.write("      <field name='%s' type='%s' info='%s'/>\n" % (field[1] , field[0], desc))
+		except:
+		    print "Failed to serialize struct %s" % (name)
+		output.write("    </struct>\n")
+	    else:
+	        output.write("/>\n");
+	else :
+	    output.write("    <typedef name='%s' file='%s' type='%s'/>\n" % (
+	             name, self.modulename_file(id.module), id.info))
+
+    def serialize_variable(self, output, name):
+        id = self.idx.variables[name]
+	if id.info != None:
+	    output.write("    <variable name='%s' file='%s' type='%s'/>\n" % (
+		    name, self.modulename_file(id.module), id.info))
+	else:
+	    output.write("    <variable name='%s' file='%s'/>\n" % (
+	            name, self.modulename_file(id.module)))
+	              
+    def serialize_function(self, output, name):
+        id = self.idx.functions[name]
+        output.write("    <%s name='%s' file='%s'>\n" % (id.type, name,
+	             self.modulename_file(id.module)))
+	try:
+	    (ret, params, desc) = id.info
+	    output.write("      <info>%s</info>\n" % (escape(desc)))
+	    self.indexString(name, desc)
+	    if ret[0] != None:
+	        if ret[0] == "void":
+		    output.write("      <return type='void'/>\n")
+		else:
+		    output.write("      <return type='%s' info='%s'/>\n" % (
+			     ret[0], escape(ret[1])))
+		    self.indexString(name, ret[1])
+	    for param in params:
+	        if param[0] == 'void':
+		    continue
+	        if param[2] == None:
+		    output.write("      <arg name='%s' type='%s' info=''/>\n" % (param[1], param[0]))
+		else:
+		    output.write("      <arg name='%s' type='%s' info='%s'/>\n" % (param[1], param[0], escape(param[2])))
+		    self.indexString(name, param[2])
+	except:
+	    print "Failed to save function %s info: " % name, `id.info`
+        output.write("    </%s>\n" % (id.type))
+
+    def serialize_exports(self, output, file):
+        module = self.modulename_file(file)
+	output.write("    <file name='%s'>\n" % (module))
+	dict = self.headers[file]
+	if dict.info != None:
+	    for data in ('Summary', 'Description', 'Author'):
+		try:
+		    output.write("     <%s>%s</%s>\n" % (
+		                 string.lower(data),
+				 escape(dict.info[data]),
+				 string.lower(data)))
+		except:
+		    print "Header %s lacks a %s description" % (module, data)
+	    if dict.info.has_key('Description'):
+	        desc = dict.info['Description']
+		if string.find(desc, "DEPRECATED") != -1:
+		    output.write("     <deprecated/>\n")
+
+        ids = dict.macros.keys()
+	ids.sort()
+	for id in uniq(ids):
+	    # Macros are sometime used to masquerade other types.
+	    if dict.functions.has_key(id):
+	        continue
+	    if dict.variables.has_key(id):
+	        continue
+	    if dict.typedefs.has_key(id):
+	        continue
+	    if dict.structs.has_key(id):
+	        continue
+	    if dict.enums.has_key(id):
+	        continue
+	    output.write("     <exports symbol='%s' type='macro'/>\n" % (id))
+        ids = dict.enums.keys()
+	ids.sort()
+	for id in uniq(ids):
+	    output.write("     <exports symbol='%s' type='enum'/>\n" % (id))
+        ids = dict.typedefs.keys()
+	ids.sort()
+	for id in uniq(ids):
+	    output.write("     <exports symbol='%s' type='typedef'/>\n" % (id))
+        ids = dict.structs.keys()
+	ids.sort()
+	for id in uniq(ids):
+	    output.write("     <exports symbol='%s' type='struct'/>\n" % (id))
+        ids = dict.variables.keys()
+	ids.sort()
+	for id in uniq(ids):
+	    output.write("     <exports symbol='%s' type='variable'/>\n" % (id))
+        ids = dict.functions.keys()
+	ids.sort()
+	for id in uniq(ids):
+	    output.write("     <exports symbol='%s' type='function'/>\n" % (id))
+	output.write("    </file>\n")
+
+    def serialize_xrefs_files(self, output):
+        headers = self.headers.keys()
+        headers.sort()
+        for file in headers:
+	    module = self.modulename_file(file)
+	    output.write("    <file name='%s'>\n" % (module))
+	    dict = self.headers[file]
+	    ids = uniq(dict.functions.keys() + dict.variables.keys() + \
+		  dict.macros.keys() + dict.typedefs.keys() + \
+		  dict.structs.keys() + dict.enums.keys())
+	    ids.sort()
+	    for id in ids:
+		output.write("      <ref name='%s'/>\n" % (id))
+	    output.write("    </file>\n")
+        pass
+
+    def serialize_xrefs_functions(self, output):
+        funcs = {}
+	for name in self.idx.functions.keys():
+	    id = self.idx.functions[name]
+	    try:
+		(ret, params, desc) = id.info
+		for param in params:
+		    if param[0] == 'void':
+			continue
+		    if funcs.has_key(param[0]):
+		        funcs[param[0]].append(name)
+		    else:
+		        funcs[param[0]] = [name]
+	    except:
+	        pass
+	typ = funcs.keys()
+	typ.sort()
+	for type in typ:
+	    if type == '' or type == 'void' or type == "int" or \
+	       type == "char *" or type == "const char *" :
+	        continue
+	    output.write("    <type name='%s'>\n" % (type))
+	    ids = funcs[type]
+	    ids.sort()
+	    pid = ''	# not sure why we have dups, but get rid of them!
+	    for id in ids:
+	        if id != pid:
+	            output.write("      <ref name='%s'/>\n" % (id))
+		    pid = id
+	    output.write("    </type>\n")
+
+    def serialize_xrefs_constructors(self, output):
+        funcs = {}
+	for name in self.idx.functions.keys():
+	    id = self.idx.functions[name]
+	    try:
+		(ret, params, desc) = id.info
+		if ret[0] == "void":
+		    continue
+		if funcs.has_key(ret[0]):
+		    funcs[ret[0]].append(name)
+		else:
+		    funcs[ret[0]] = [name]
+	    except:
+	        pass
+	typ = funcs.keys()
+	typ.sort()
+	for type in typ:
+	    if type == '' or type == 'void' or type == "int" or \
+	       type == "char *" or type == "const char *" :
+	        continue
+	    output.write("    <type name='%s'>\n" % (type))
+	    ids = funcs[type]
+	    ids.sort()
+	    for id in ids:
+	        output.write("      <ref name='%s'/>\n" % (id))
+	    output.write("    </type>\n")
+
+    def serialize_xrefs_alpha(self, output):
+	letter = None
+	ids = self.idx.identifiers.keys()
+	ids.sort()
+	for id in ids:
+	    if id[0] != letter:
+		if letter != None:
+		    output.write("    </letter>\n")
+		letter = id[0]
+		output.write("    <letter name='%s'>\n" % (letter))
+	    output.write("      <ref name='%s'/>\n" % (id))
+	if letter != None:
+	    output.write("    </letter>\n")
+
+    def serialize_xrefs_references(self, output):
+        typ = self.idx.identifiers.keys()
+	typ.sort()
+	for id in typ:
+	    idf = self.idx.identifiers[id]
+	    module = idf.module
+	    output.write("    <reference name='%s' href='%s'/>\n" % (id,
+	                 'html/' + self.basename + '-' +
+		         self.modulename_file(module) + '.html#' +
+			 id))
+
+    def serialize_xrefs_index(self, output):
+        index = self.xref
+	typ = index.keys()
+	typ.sort()
+	letter = None
+	count = 0
+	chunk = 0
+	chunks = []
+	for id in typ:
+	    if len(index[id]) > 30:
+		continue
+	    if id[0] != letter:
+		if letter == None or count > 200:
+		    if letter != None:
+			output.write("      </letter>\n")
+			output.write("    </chunk>\n")
+			count = 0
+			chunks.append(["chunk%s" % (chunk -1), first_letter, letter])
+		    output.write("    <chunk name='chunk%s'>\n" % (chunk))
+		    first_letter = id[0]
+		    chunk = chunk + 1
+		elif letter != None:
+		    output.write("      </letter>\n")
+		letter = id[0]
+		output.write("      <letter name='%s'>\n" % (letter))
+	    output.write("        <word name='%s'>\n" % (id))
+	    tokens = index[id];
+	    tokens.sort()
+	    tok = None
+	    for token in tokens:
+		if tok == token:
+		    continue
+		tok = token
+		output.write("          <ref name='%s'/>\n" % (token))
+		count = count + 1
+	    output.write("        </word>\n")
+	if letter != None:
+	    output.write("      </letter>\n")
+	    output.write("    </chunk>\n")
+	    if count != 0:
+	        chunks.append(["chunk%s" % (chunk -1), first_letter, letter])
+	    output.write("    <chunks>\n")
+	    for ch in chunks:
+		output.write("      <chunk name='%s' start='%s' end='%s'/>\n" % (
+			     ch[0], ch[1], ch[2]))
+	    output.write("    </chunks>\n")
+
+    def serialize_xrefs(self, output):
+	output.write("  <references>\n")
+	self.serialize_xrefs_references(output)
+	output.write("  </references>\n")
+	output.write("  <alpha>\n")
+	self.serialize_xrefs_alpha(output)
+	output.write("  </alpha>\n")
+	output.write("  <constructors>\n")
+	self.serialize_xrefs_constructors(output)
+	output.write("  </constructors>\n")
+	output.write("  <functions>\n")
+	self.serialize_xrefs_functions(output)
+	output.write("  </functions>\n")
+	output.write("  <files>\n")
+	self.serialize_xrefs_files(output)
+	output.write("  </files>\n")
+	output.write("  <index>\n")
+	self.serialize_xrefs_index(output)
+	output.write("  </index>\n")
+
+    def serialize(self, outdir):
+        filename = outdir + "%s-api.xml" % self.name
+        print "Saving XML description %s" % (filename)
+        output = open(filename, "w")
+        output.write('<?xml version="1.0" encoding="ISO-8859-1"?>\n')
+        output.write("<api name='%s'>\n" % self.name)
+        output.write("  <files>\n")
+        headers = self.headers.keys()
+        headers.sort()
+        for file in headers:
+            self.serialize_exports(output, file)
+        output.write("  </files>\n")
+        output.write("  <symbols>\n")
+        macros = self.idx.macros.keys()
+        macros.sort()
+        for macro in macros:
+            self.serialize_macro(output, macro)
+        enums = self.idx.enums.keys()
+        enums.sort()
+        for enum in enums:
+            self.serialize_enum(output, enum)
+        typedefs = self.idx.typedefs.keys()
+        typedefs.sort()
+        for typedef in typedefs:
+            self.serialize_typedef(output, typedef)
+        variables = self.idx.variables.keys()
+        variables.sort()
+        for variable in variables:
+            self.serialize_variable(output, variable)
+        functions = self.idx.functions.keys()
+        functions.sort()
+        for function in functions:
+            self.serialize_function(output, function)
+        output.write("  </symbols>\n")
+        output.write("</api>\n")
+        output.close()
+
+        filename = outdir + "%s-refs.xml" % self.name
+        print "Saving XML Cross References %s" % (filename)
+        output = open(filename, "w")
+        output.write('<?xml version="1.0" encoding="ISO-8859-1"?>\n')
+        output.write("<apirefs name='%s'>\n" % self.name)
+        self.serialize_xrefs(output)
+        output.write("</apirefs>\n")
+        output.close()
+
+
+def rebuild():
+    builder = None
+    if glob.glob("parser.c") != [] :
+        print "Rebuilding API description for libxml2"
+	builder = docBuilder("libxml2", [".", "."],
+	                     ["xmlwin32version.h", "tst.c"])
+    elif glob.glob("../parser.c") != [] :
+        print "Rebuilding API description for libxml2"
+	builder = docBuilder("libxml2", ["..", "../include/libxml"],
+	                     ["xmlwin32version.h", "tst.c"])
+    elif glob.glob("../libxslt/transform.c") != [] :
+        print "Rebuilding API description for libxslt"
+	builder = docBuilder("libxslt", ["../libxslt"],
+	                     ["win32config.h", "libxslt.h", "tst.c"])
+    else:
+        print "rebuild() failed, unable to guess the module"
+	return None
+    builder.scan()
+    builder.analyze()
+    builder.serialize("./")
+    if glob.glob("../libexslt/exslt.c") != [] :
+        extra = docBuilder("libexslt", ["../libexslt"], ["libexslt.h"])
+	extra.scan()
+	extra.analyze()
+	extra.serialize("EXSLT/")
+    return builder
+
+#
+# for debugging the parser
+#
+def parse(filename):
+    parser = CParser(filename)
+    idx = parser.parse()
+    return idx
+
+if __name__ == "__main__":
+    rebuild()


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/apibuild.py
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/doc/bugs.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/bugs.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/bugs.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Reporting bugs and getting help</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Reporting bugs and getting help</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>If you need help with the XSLT language itself, here are a number of
+useful resources:</p><ul><li>I strongly suggest to subscribe to <a href="http://www.mulberrytech.com/xsl/xsl-list">XSL-list</a>, check <a href="http://www.biglist.com/lists/xsl-list/archives/">the XSL-list
+    archives</a></li>
+  <li>The <a href="http://www.dpawson.co.uk/xsl/xslfaq.html">XSL FAQ</a>.</li>
+  <li>The <a href="http://www.nwalsh.com/docs/tutorials/xsl/xsl/slides.html">tutorial</a>
+    written by Paul Grosso and Norman Walsh is a very good on-line
+    introdution to the language.</li>
+  <li>The <a href="http://www.zvon.org/xxl/XSLTutorial/Books/Book1/index.html">only
+    Zvon XSLT tutorial</a> details a lot of constructs with examples.</li>
+  <li><a href="http://www.jenitennison.com/xslt/index.html">Jeni Tennison's
+    XSLT</a> pages provide links to a lot of answers</li>
+  <li>the <a href="http://incrementaldevelopment.com/xsltrick/">Gallery of
+    XSLT Tricks</a> provides non-standard use case of XSLT</li>
+  <li>And I suggest to buy Michael Kay "XSLT Programmer's Reference" book
+    published by <a href="http://www.wrox.com/">Wrox</a> if you plan to work
+    seriously with XSLT in the future.</li>
+</ul><p>Well, bugs or missing features are always possible, and I will make a
+point of fixing them in a timely fashion. The best way to report a bug is to
+use the <a href="http://bugzilla.gnome.org/enter_bug.cgi?product=libxslt">Gnome bug
+tracking database</a> (make sure to use the "libxslt" module name). Before
+filing a bug, check the <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">list of existing
+libxslt bugs</a> to make sure it hasn't already been filed. I look at reports
+there regularly and it's good to have a reminder when a bug is still open. Be
+sure to specify that the bug is for the package libxslt.</p><p>For small problems you can try to get help on IRC, the #xml channel on
+irc.gnome.org (port 6667) usually have a few person subscribed which may help
+(but there is no garantee and if a real issue is raised it should go on the
+mailing-list for archival).</p><p>There is also a mailing-list <a href="mailto:xslt at gnome.org">xslt at gnome.org</a> for libxslt, with an <a href="http://mail.gnome.org/archives/xslt/">on-line archive</a>. To subscribe
+to this list, please visit the <a href="http://mail.gnome.org/mailman/listinfo/xslt">associated Web</a> page
+and follow the instructions.</p><p>Alternatively, you can just send the bug to the <a href="mailto:xslt at gnome.org">xslt at gnome.org</a> list, if it's really libxslt
+related I will approve it.. Please do not send me mail directly especially
+for portability problem, it makes things really harder to track and in some
+cases I'm not the best person to answer a given question, ask the list
+instead. <strong>Do not send code, I won't debug it</strong> (but patches are
+really appreciated!).</p><p>Please note that with the current amount of virus and SPAM, sending mail
+to the list without being subscribed won't work. There is *far too many
+bounces* (in the order of a thousand a day !) I cannot approve them manually
+anymore. If your mail to the list bounced waiting for administrator approval,
+it is LOST ! Repost it and fix the problem triggering the error. Also please
+note that <span style="color: #FF0000; background-color: #FFFFFF">emails with
+a legal warning asking to not copy or redistribute freely the informations
+they contain</span> are <strong>NOT</strong> acceptable for the mailing-list,
+such mail will as much as possible be discarded automatically, and are less
+likely to be answered if they made it to the list, <strong>DO NOT</strong>
+post to the list from an email address where such legal requirements are
+automatically added, get private paying support if you can't share
+informations.</p><p>Check the following too <span style="color: #E50000">before
+posting</span>:</p><ul><li><a href="search.php">use the search engine</a> to get informations
+    related to your problem.</li>
+  <li>make sure you are <a href="ftp://xmlsoft.org/libxslt/">using a recent
+    version</a>, and that the problem still shows up in those</li>
+  <li>check the <a href="http://mail.gnome.org/archives/xslt/">list
+    archives</a> to see if the problem was reported already, in this case
+    there is probably a fix available, similarly check the <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">registered
+    open bugs</a></li>
+  <li>make sure you can reproduce the bug with xsltproc, a very useful thing
+    to do is run the transformation with -v argument and redirect the
+    standard error to a file, then search in this file for the transformation
+    logs just preceding the possible problem</li>
+  <li>Please send the command showing the error as well as the input and
+    stylesheet (as an attachment)</li>
+</ul><p>Then send the bug with associated informations to reproduce it to the <a href="mailto:xslt at gnome.org">xslt at gnome.org</a> list; if it's really libxslt
+related I will approve it. Please do not send mail to me directly, it makes
+things really hard to track and in some cases I am not the best person to
+answer a given question, ask on the list.</p><p>To <span style="color: #E50000">be really clear about support</span>:</p><ul><li>Support or help <span style="color: #E50000">request MUST be sent to
+    the list or on bugzilla</span> in case of problems, so that the Question
+    and Answers can be shared publicly. Failing to do so carries the implicit
+    message "I want free support but I don't want to share the benefits with
+    others" and is not welcome. I will automatically Carbon-Copy the
+    xslt at gnome.org mailing list for any technical reply made about libxml2 or
+    libxslt.</li>
+  <li>There is <span style="color: #E50000">no garantee for support</span>,
+    if your question remains unanswered after a week, repost it, making sure
+    you gave all the detail needed and the informations requested.</li>
+  <li>Failing to provide informations as requested or double checking first
+    for prior feedback also carries the implicit message "the time of the
+    library maintainers is less valuable than my time" and might not be
+    welcome.</li>
+</ul><p>Of course, bugs reports with a suggested patch for fixing them will
+probably be processed faster.</p><p>If you're looking for help, a quick look at <a href="http://mail.gnome.org/archives/xslt/">the list archive</a> may actually
+provide the answer, I usually send source samples when answering libxslt
+usage questions. The <a href="html/libxslt-lib.html#LIBXSLT-LIB">auto-generated documentation</a> is
+not as polished as I would like (I need to learn more about Docbook), but
+it's a good starting point.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/contexts.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/contexts.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/contribs.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/contribs.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/contribs.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Contributions</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Contributions</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><ul><li>Bjorn Reese is the author of the number support and worked on the
+    XSLTMark support</li>
+  <li>William Brack was an early adopted, contributed a number of patches and
+    spent quite some time debugging non-trivial problems in early versions of
+    libxslt</li>
+  <li><a href="mailto:igor at zlatkovic.com">Igor  Zlatkovic</a> is now the
+    maintainer of the Windows port, <a href="http://www.zlatkovic.com/projects/libxml/index.html">he provides
+    binaries</a></li>
+  <li>Thomas Broyer provided a lot of suggestions, and drafted most of the
+    extension API</li>
+  <li>John Fleck maintains <a href="tutorial/libxslttutorial.html">a tutorial
+    for libxslt</a></li>
+  <li><a href="http://mail.gnome.org/archives/xml/2001-March/msg00014.html">Matt
+    Sergeant</a> developed <a href="http://axkit.org/download/">XML::LibXSLT</a>, a perl wrapper for
+    libxml2/libxslt as part of the <a href="http://axkit.com/">AxKit XML
+    application server</a></li>
+  <li>there is a module for <a href="http://acs-misc.sourceforge.net/nsxml.html">libxml/libxslt support
+    in OpenNSD/AOLServer</a></li>
+  <li><a href="mailto:dkuhlman at cutter.rexx.com">Dave Kuhlman</a> provides
+    libxml/libxslt <a href="http://www.rexx.com/~dkuhlman">wrappers for
+    Python</a></li>
+  <li><a href="mailto:Steve.Ball at explain.com.au">Steve Ball</a>, and
+    contributors maintain <a href="http://tclxml.sourceforge.net/">tcl
+    bindings for libxml2 and libxslt</a>, as well as <a href="http://tclxml.sf.net/tkxmllint.html">tkxmllint</a> a GUI for
+    xmllint and <a href="http://tclxml.sf.net/tkxsltproc.html">tkxsltproc</a>
+    a GUI for xsltproc.</li>
+  <li>If you want to use libxslt in a Mac OS X/Cocoa or Objective-C
+    framework, Marc Liyanage provides <a href="http://www.entropy.ch/software/macosx/#testxslt">an application
+    TestXSLT for XSLT and XML editing</a> including wrapper classes for the
+    XML parser and XSLT processor.</li>
+</ul><p></p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/docbook.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/docbook.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/docbook.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>DocBook</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>DocBook</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p><img src="duck.png" align="right" alt="The duck picture" /></p><p><a href="http://www.oasis-open.org/committees/docbook/">DocBook</a> is an
+XML/SGML vocabulary particularly well suited to books and papers about
+computer hardware and software.</p><p>xsltproc and libxslt are not specifically dependant on DocBook, but since
+a lot of people use xsltproc and libxml2 for DocBook formatting, here are a
+few pointers and informations which may be helpful:</p><ul><li>The <a href="http://www.oasis-open.org/committees/docbook/">DocBook
+    homepage at Oasis</a> you should find pointers there on all the lastest
+    versions of the DTDs and XSLT stylesheets</li>
+  <li><a href="http://www.docbook.org/">DocBook: The Definitive Guide</a> is
+    the official reference documentation for DocBook.</li>
+  <li><a href="https://sourceforge.net/docman/index.php?group_id=21935">DocBook
+    Open Repository</a> contains a lot of informations about DocBook</li>
+  <li>Bob Stayton provides a <a href="http://www.sagehill.net/">lot of
+    resources</a> and consulting services around DocBook.</li>
+  <li>Here is a <a href="/buildDocBookCatalog">shell script</a> to generate
+    XML Catalogs for DocBook 4.1.2 . If it can write to the /etc/xml/
+    directory, it will set-up /etc/xml/catalog and /etc/xml/docbook based on
+    the resources found on the system. Otherwise it will just create
+    ~/xmlcatalog and ~/dbkxmlcatalog and doing:
+    <p><code>export XMLCATALOG=$HOME/xmlcatalog</code></p>
+    <p>should allow to process DocBook documentations without requiring
+    network accesses for the DTd or stylesheets</p>
+  </li>
+  <li>I have uploaded <a href="ftp://xmlsoft.org/libxml2/test/dbk412catalog.tar.gz">a
+    small tarball</a> containing XML Catalogs for DocBook 4.1.2 which seems
+    to work fine for me too</li>
+  <li>Informations on installing a <a href="http://ourworld.compuserve.com/homepages/hoenicka_markus/ntsgml.html">Windows
+    DocBook processing setup</a> based on Cygwin (using the binaries from the
+    official Windows port should be possible too)</li>
+  <li>Alexander Kirillov's page on <a href="http://www.math.sunysb.edu/~kirillov/dbxml/">Using DocBook XML
+    4.1.2</a> (RPM packages)</li>
+  <li>Tim Waugh's <a href="http://cyberelk.net/tim/xmlto/">xmlto front-end
+    conversion script</a></li>
+  <li>Linux Documentation Project <a href="http://www.linuxdoc.org/HOWTO/mini/DocBook-Install/">
+    DocBook-Install-mini-HOWTO</a></li>
+  <li>ScrollKeeper the open documentation cataloging project has a <a href="http://scrollkeeper.sourceforge.net/docbook.shtml">DocBook
+    section</a></li>
+  <li>Dan York presentation on <a href="http://www.lodestar2.com/people/dyork/talks/2001/xugo/docbook/index.html">Publishing
+    using DocBook XML</a></li>
+</ul><p>Do not use the --docbook option of xsltproc to process XML DocBook
+documents, this option is only intended to provide some (limited) support of
+the SGML version of DocBook.</p><p>Points which are not DocBook specific but still worth mentionning
+again:</p><ul><li>if you think DocBook processing time is too slow, make sure you have
+    XML Catalogs pointing to a local installation of the DTD of DocBook.
+    Check the <a href="http://xmlsoft.org/catalog.html">XML Catalog page</a>
+    to understand more on this subject.</li>
+  <li>before processing a new document, use the command
+    <p><code>xmllint --valid --noout path_to_document</code></p>
+    <p>to make sure that your input is valid DocBook. And fixes the errors
+    before processing further. Note that XSLT processing may work correctly
+    with some forms of validity errors left, but in general it can give
+    troubles on output.</p>
+  </li>
+</ul><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/docs.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/docs.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/docs.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Documentation</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Documentation</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>There are some on-line resources about using libxslt:</p><ol><li>Check the <a href="html/libxslt-lib.html#LIBXSLT-LIB">API
+    documentation</a> automatically extracted from code comments (using the
+    program apibuild.py, developed for libxml, together with the xsl script
+    'newapi.xsl' and the libxslt xsltproc program).</li>
+  <li>Look at the <a href="http://mail.gnome.org/archives/xslt/">mailing-list
+    archive</a>.</li>
+  <li>Of course since libxslt is based on libxml, it's a good idea to at
+    least read <a href="http://xmlsoft.org/">libxml description</a></li>
+</ol><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/downloads.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/downloads.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/downloads.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Downloads</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Downloads</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>The latest versions of libxslt can be found on the <a href="ftp://xmlsoft.org/libxslt/">xmlsoft.org</a> server and on mirrors (<a href="ftp://fr.rpmfind.net/pub/libxml/">France</a>) or on the <a href="ftp://ftp.gnome.org/pub/GNOME/MIRRORS.html">Gnome FTP server</a> as a
+<a href="ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/">source
+archive</a>, Antonin Sprinzl also provides <a href="ftp://gd.tuwien.ac.at/pub/libxml/">a mirror in Austria</a>. (NOTE that
+you need the <a href="http://rpmfind.net/linux/RPM/libxml2.html">libxml2</a>,
+<a href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml2-devel</a>,
+<a href="http://rpmfind.net/linux/RPM/libxslt.html">libxslt</a> and <a href="http://rpmfind.net/linux/RPM/libxslt-devel.html">libxslt-devel</a>
+packages installed to compile applications using libxslt.) <a href="mailto:igor at zlatkovic.com">Igor Zlatkovic</a> is now the maintainer of
+the Windows port, <a href="http://www.zlatkovic.com/projects/libxml/index.html">he provides
+binaries</a>. <a href="mailto:Gary.Pennington at sun.com">Gary Pennington</a>
+provides <a href="http://garypennington.net/libxml2/">Solaris binaries</a>.
+<a href="mailto:Steve.Ball at explain.com.au">Steve Ball</a> provides <a href="http://www.explain.com.au/oss/libxml2xslt.html">Mac Os X
+binaries</a>.</p><p><a name="Contribs" id="Contribs">Contribs:</a></p><p>I do accept external contributions, especially if compiling on another
+platform, get in touch with me to upload the package. I will keep them in the
+<a href="ftp://xmlsoft.org/libxml2/contribs/">contrib directory</a></p><p>Libxslt is also available from CVS:</p><ul><li><p>The <a href="http://cvs.gnome.org/viewcvs/libxslt/">Gnome CVS
+    base</a>. Check the <a href="http://developer.gnome.org/tools/cvs.html">Gnome CVS Tools</a>
+    page; the CVS module is <b>libxslt</b>.</p>
+  </li>
+  <li><a href="ftp://xmlsoft.org/libxml2/libxslt-cvs-snapshot.tar.gz">snapshots from
+    CVS</a> updated every hour are also provided</li>
+</ul><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/extensions.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/extensions.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/extensions.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Writing extensions</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Writing extensions</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h3>Table  of content</h3><ul><li><a href="extensions.html#Introducti">Introduction</a></li>
+  <li><a href="extensions.html#Basics">Basics</a></li>
+  <li><a href="extensions.html#Keep">Extension modules</a></li>
+  <li><a href="extensions.html#Registerin">Registering a module</a></li>
+  <li><a href="extensions.html#module">Loading a module</a></li>
+  <li><a href="extensions.html#Registerin1">Registering an extension
+    function</a></li>
+  <li><a href="extensions.html#Implementi">Implementing an extension
+    function</a></li>
+  <li><a href="extensions.html#Examples">Examples for extension
+  functions</a></li>
+  <li><a href="extensions.html#Registerin2">Registering an extension
+    element</a></li>
+  <li><a href="extensions.html#Implementi1">Implementing an extension
+    element</a></li>
+  <li><a href="extensions.html#Example">Example for extension
+  elements</a></li>
+  <li><a href="extensions.html#shutdown">The shutdown of a module</a></li>
+  <li><a href="extensions.html#Future">Future work</a></li>
+</ul><h3><a name="Introducti1" id="Introducti1">Introduction</a></h3><p>This document describes the work needed to write extensions to the
+standard XSLT library for use with <a href="http://xmlsoft.org/XSLT/">libxslt</a>, the <a href="http://www.w3.org/TR/xslt">XSLT</a> C library developed for the <a href="http://www.gnome.org/">Gnome</a> project.</p><p>Before starting reading this document it is highly recommended to get
+familiar with <a href="internals.html">the libxslt internals</a>.</p><p>Note: this documentation is by definition incomplete and I am not good at
+spelling, grammar, so patches and suggestions are <a href="mailto:veillard at redhat.com">really welcome</a>.</p><h3><a name="Basics" id="Basics">Basics</a></h3><p>The <a href="http://www.w3.org/TR/xslt">XSLT specification</a> provides
+two <a href="http://www.w3.org/TR/xslt">ways to extend an XSLT engine</a>:</p><ul><li>providing <a href="http://www.w3.org/TR/xslt">new extension
+    functions</a> which can be called from XPath expressions</li>
+  <li>providing <a href="http://www.w3.org/TR/xslt">new extension
+    elements</a> which can be inserted in stylesheets</li>
+</ul><p>In both cases the extensions need to be associated to a new namespace,
+i.e. an URI used as the name for the extension's namespace (there is no need
+to have a resource there for this to work).</p><p>libxslt provides a few extensions itself, either in the libxslt namespace
+"http://xmlsoft.org/XSLT/namespace" or in namespaces for other well known
+extensions provided by other XSLT processors like Saxon, Xalan or XT.</p><h3><a name="Keep" id="Keep">Extension modules</a></h3><p>Since extensions are bound to a namespace name, usually sets of extensions
+coming from a given source are using the same namespace name defining in
+practice a group of extensions providing elements, functions or both. From
+the libxslt point of view those are considered as an "extension module", and
+most of the APIs work at a module point of view.</p><p>Registration of new functions or elements are bound to the activation of
+the module. This is currently done by declaring the namespace as an extension
+by using the attribute  <code>extension-element-prefixes</code> on the
+<code><a href="http://www.w3.org/TR/xslt">xsl:stylesheet</a></code>
+element.</p><p>An extension module is defined by 3 objects:</p><ul><li>the namespace name associated</li>
+  <li>an initialization function</li>
+  <li>a shutdown function</li>
+</ul><h3><a name="Registerin" id="Registerin">Registering a module</a></h3><p>Currently a libxslt module has to be compiled within the application using
+libxslt. There is no code to load dynamically shared libraries associated to
+a namespace (this may be added but is likely to become a portability
+nightmare).</p><p>The current way to register a module is to link the code implementing it
+with the application and to call a registration function:</p><pre>int xsltRegisterExtModule(const xmlChar *URI,
+                          xsltExtInitFunction initFunc,
+                          xsltExtShutdownFunction shutdownFunc);</pre><p>The associated header is read by:</p><pre>#include&lt;libxslt/extensions.h&gt;</pre><p>which also defines the type for the initialization and shutdown
+functions</p><h3><a name="module" id="module">Loading a module</a></h3><p>Once the module URI has been registered and if the XSLT processor detects
+that a given stylesheet needs the functionalities of an extended module, this
+one is initialized.</p><p>The xsltExtInitFunction type defines the interface for an initialization
+function:</p><pre>/**
+ * xsltExtInitFunction:
+ * @ctxt:  an XSLT transformation context
+ * @URI:  the namespace URI for the extension
+ *
+ * A function called at initialization time of an XSLT
+ * extension module
+ *
+ * Returns a pointer to the module specific data for this
+ * transformation
+ */
+typedef void *(*xsltExtInitFunction)(xsltTransformContextPtr ctxt,
+                                     const xmlChar *URI);</pre><p>There are 3 things to notice:</p><ul><li>The function gets passed the namespace name URI as an argument. This
+    allows a single function to provide the initialization for multiple
+    logical modules.</li>
+  <li>It also gets passed a transformation context. The initialization is
+    done at run time before any processing occurs on the stylesheet but it
+    will be invoked separately each time for each transformation.</li>
+  <li>It returns a pointer.  This can be used to store module specific
+    information which can be retrieved later when a function or an element
+    from the extension is used.  An obvious example is a connection to a
+    database which should be kept and reused along with the transformation.
+    NULL is a perfectly valid return; there is no way to indicate a failure
+    at this level</li>
+</ul><p>What this function is expected to do is:</p><ul><li>prepare the context for this module (like opening the database
+    connection)</li>
+  <li>register the extensions specific to this module</li>
+</ul><h3><a name="Registerin1" id="Registerin1">Registering an extension function</a></h3><p>There is a single call to do this registration:</p><pre>int xsltRegisterExtFunction(xsltTransformContextPtr ctxt,
+                            const xmlChar *name,
+                            const xmlChar *URI,
+                            xmlXPathEvalFunc function);</pre><p>The registration is bound to a single transformation instance referred by
+ctxt, name is the UTF8 encoded name for the NCName of the function, and URI
+is the namespace name for the extension (no checking is done, a module could
+register functions or elements from a different namespace, but it is not
+recommended).</p><h3><a name="Implementi" id="Implementi">Implementing an extension function</a></h3><p>The implementation of the function must have the signature of a libxml
+XPath function:</p><pre>/**
+ * xmlXPathEvalFunc:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments passed to the function
+ *
+ * an XPath evaluation function, the parameters are on the
+ * XPath context stack
+ */
+
+typedef void (*xmlXPathEvalFunc)(xmlXPathParserContextPtr ctxt,
+                                 int nargs);</pre><p>The context passed to an XPath function is not an XSLT context but an <a href="internals.html#XPath1">XPath context</a>. However it is possible to
+find one from the other:</p><ul><li>The function xsltXPathGetTransformContext provides this lookup facility:
+    <pre>xsltTransformContextPtr
+         xsltXPathGetTransformContext
+                          (xmlXPathParserContextPtr ctxt);</pre>
+  </li>
+  <li>The <code>xmlXPathContextPtr</code> associated to an
+    <code>xsltTransformContext</code> is stored in the <code>xpathCtxt</code>
+    field.</li>
+</ul><p>The first thing an extension function may want to do is to check the
+arguments passed on the stack, the <code>nargs</code> parameter will tell how
+many of them were provided on the XPath expression. The macro valuePop will
+extract them from the XPath stack:</p><pre>#include &lt;libxml/xpath.h&gt;
+#include &lt;libxml/xpathInternals.h&gt;
+
+xmlXPathObjectPtr obj = valuePop(ctxt); </pre><p>Note that <code>ctxt</code> is the XPath context not the XSLT one. It is
+then possible to examine the content of the value. Check <a href="internals.html#Descriptio">the description of XPath objects</a> if
+necessary. The following is a common sequence checking whether the argument
+passed is a string and converting it using the built-in XPath
+<code>string()</code> function if this is not the case:</p><pre>if (obj-&gt;type != XPATH_STRING) {
+    valuePush(ctxt, obj);
+    xmlXPathStringFunction(ctxt, 1);
+    obj = valuePop(ctxt);
+}</pre><p>Most common XPath functions are available directly at the C level and are
+exported either in <code>&lt;libxml/xpath.h&gt;</code> or in
+<code>&lt;libxml/xpathInternals.h&gt;</code>.</p><p>The extension function may also need to retrieve the data associated to
+this module instance (the database connection in the previous example) this
+can be done using the xsltGetExtData:</p><pre>void * xsltGetExtData(xsltTransformContextPtr ctxt,
+                      const xmlChar *URI);</pre><p>Again the URI to be provided is the one which was used when registering
+the module.</p><p>Once the function finishes, don't forget to:</p><ul><li>push the return value on the stack using <code>valuePush(ctxt,
+    obj)</code></li>
+  <li>deallocate the parameters passed to the function using
+    <code>xmlXPathFreeObject(obj)</code></li>
+</ul><h3><a name="Examples" id="Examples">Examples for extension functions</a></h3><p>The module libxslt/functions.c contains the sources of the XSLT built-in
+functions, including document(), key(), generate-id(), etc. as well as a full
+example module at the end. Here is the test function implementation for the
+libxslt:test function:</p><pre>/**
+ * xsltExtFunctionTest:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * function libxslt:test() for testing the extensions support.
+ */
+static void
+xsltExtFunctionTest(xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xsltTransformContextPtr tctxt;
+    void *data;
+
+    tctxt = xsltXPathGetTransformContext(ctxt);
+    if (tctxt == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+            "xsltExtFunctionTest: failed to get the transformation context\n");
+        return;
+    }
+    data = xsltGetExtData(tctxt, (const xmlChar *) XSLT_DEFAULT_URL);
+    if (data == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+            "xsltExtFunctionTest: failed to get module data\n");
+        return;
+    }
+#ifdef WITH_XSLT_DEBUG_FUNCTION
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "libxslt:test() called with %d args\n", nargs);
+#endif
+}</pre><h3><a name="Registerin2" id="Registerin2">Registering an extension element</a></h3><p>There is a single call to do this registration:</p><pre>int xsltRegisterExtElement(xsltTransformContextPtr ctxt,
+                           const xmlChar *name,
+                           const xmlChar *URI,
+                           xsltTransformFunction function);</pre><p>It is similar to the mechanism used to register an extension function,
+except that the signature of an extension element implementation is
+different.</p><p>The registration is bound to a single transformation instance referred to
+by ctxt, name is the UTF8 encoded name for the NCName of the element, and URI
+is the namespace name for the extension (no checking is done, a module could
+register elements for a different namespace, but it is not recommended).</p><h3><a name="Implementi1" id="Implementi1">Implementing an extension element</a></h3><p>The implementation of the element must have the signature of an XSLT
+transformation function:</p><pre>/** 
+ * xsltTransformFunction: 
+ * @ctxt: the XSLT transformation context
+ * @node: the input node
+ * @inst: the stylesheet node 
+ * @comp: the compiled information from the stylesheet 
+ * 
+ * signature of the function associated to elements part of the
+ * stylesheet language like xsl:if or xsl:apply-templates.
+ */ 
+typedef void (*xsltTransformFunction)
+                          (xsltTransformContextPtr ctxt,
+                           xmlNodePtr node,
+                           xmlNodePtr inst,
+                           xsltStylePreCompPtr comp);</pre><p>The first argument is the XSLT transformation context. The second and
+third arguments are xmlNodePtr i.e. internal memory <a href="internals.html#libxml">representation of  XML nodes</a>. They are
+respectively <code>node</code> from the the input document being transformed
+by the stylesheet and <code>inst</code> the extension element in the
+stylesheet. The last argument is <code>comp</code> a pointer to a precompiled
+representation of <code>inst</code> but usually for an extension function
+this value is <code>NULL</code> by default (it could be added and associated
+to the instruction in <code>inst-&gt;_private</code>).</p><p>The same functions are available from a function implementing an extension
+element as in an extension function, including
+<code>xsltGetExtData()</code>.</p><p>The goal of an extension element being usually to enrich the generated
+output, it is expected that they will grow the currently generated output
+tree. This can be done by grabbing ctxt-&gt;insert which is the current
+libxml node being generated (Note this can also be the intermediate value
+tree being built for example to initialize a variable, the processing should
+be similar). The functions for libxml tree manipulation from <a href="http://xmlsoft.org/html/libxml-tree.html">&lt;libxml/tree.h&gt;</a> can
+be employed to extend or modify the tree, but it is required to preserve the
+insertion node and its ancestors since there are existing pointers to those
+elements still in use in the XSLT template execution stack.</p><h3><a name="Example" id="Example">Example for extension elements</a></h3><p>The module libxslt/transform.c contains the sources of the XSLT built-in
+elements, including xsl:element, xsl:attribute, xsl:if, etc. There is a small
+but full example in functions.c providing the implementation for the
+libxslt:test element, it will output a comment in the result tree:</p><pre>/**
+ * xsltExtElementTest:
+ * @ctxt:  an XSLT processing context
+ * @node:  The current node
+ * @inst:  the instruction in the stylesheet
+ * @comp:  precomputed informations
+ *
+ * Process a libxslt:test node
+ */
+static void
+xsltExtElementTest(xsltTransformContextPtr ctxt, xmlNodePtr node,
+                   xmlNodePtr inst,
+                   xsltStylePreCompPtr comp)
+{
+    xmlNodePtr comment;
+
+    if (ctxt == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "xsltExtElementTest: no transformation context\n");
+        return;
+    }
+    if (node == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "xsltExtElementTest: no current node\n");
+        return;
+    }
+    if (inst == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "xsltExtElementTest: no instruction\n");
+        return;
+    }
+    if (ctxt-&gt;insert == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "xsltExtElementTest: no insertion point\n");
+        return;
+    }
+    comment =
+        xmlNewComment((const xmlChar *)
+                      "libxslt:test element test worked");
+    xmlAddChild(ctxt-&gt;insert, comment);
+}</pre><h3><a name="shutdown" id="shutdown">The shutdown of a module</a></h3><p>When the XSLT processor ends a transformation, the shutdown function (if
+it exists) for each of the modules initialized is called.  The
+xsltExtShutdownFunction type defines the interface for a shutdown
+function:</p><pre>/**
+ * xsltExtShutdownFunction:
+ * @ctxt:  an XSLT transformation context
+ * @URI:  the namespace URI for the extension
+ * @data:  the data associated to this module
+ *
+ * A function called at shutdown time of an XSLT extension module
+ */
+typedef void (*xsltExtShutdownFunction) (xsltTransformContextPtr ctxt,
+                                         const xmlChar *URI,
+                                         void *data);</pre><p>This is really similar to a module initialization function except a third
+argument is passed, it's the value that was returned by the initialization
+function. This allows the routine to deallocate resources from the module for
+example close the connection to the database to keep the same example.</p><h3><a name="Future" id="Future">Future work</a></h3><p>Well, some of the pieces missing:</p><ul><li>a way to load shared libraries to instantiate new modules</li>
+  <li>a better detection of extension functions usage and their registration
+    without having to use the extension prefix which ought to be reserved to
+    element extensions.</li>
+  <li>more examples</li>
+  <li>implementations of the <a href="http://www.exslt.org/">EXSLT</a> common
+    extension libraries, Thomas Broyer nearly finished implementing them.</li>
+</ul><p></p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/help.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/help.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/help.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>How to help</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>How to help</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>You can help the project in various ways, the best thing to do first is to
+subscribe to the mailing-list as explained before, check the <a href="http://mail.gnome.org/archives/xslt/">archives </a>and the <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Gnome bug
+database:</a>:</p><ol><li>provide patches when you find problems</li>
+  <li>provide the diffs when you port libxslt to a new platform. They may not
+    be integrated in all cases but help pinpointing portability problems
+  and</li>
+  <li>provide documentation fixes (either as patches to the code comments or
+    as HTML diffs).</li>
+  <li>provide new documentations pieces (translations, examples, etc ...)</li>
+  <li>Check the TODO file and try to close one of the items</li>
+  <li>take one of the points raised in the archive or the bug database and
+    provide a fix. <a href="mailto:daniel at veillard.com">Get in touch with me
+    </a>before to avoid synchronization problems and check that the suggested
+    fix will fit in nicely :-)</li>
+</ol><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/book1.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/book1.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/book1.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Reference Manual for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Reference Manual for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxslt-attributes.html">attributes</a>: interface for the XSLT attribute handling</li><li><a href="libxslt-documents.html">documents</a>: interface for the document handling</li><li><a href="libxslt-extensions.html">extensions</a>: interface for the extension support</li><li><a href="libxslt-extra.html">extra</a>: interface for the non-standard features</li><li><a href="libxslt-functions.html">functions</a>: interface for the XSLT functions not from XPath</li><li><a href="libxslt-imports.html">imports</a>: interface for the XSLT import support</li><li><a href="libxslt-keys.html">keys</a>: interface for the key matching used in key() and template matches.</li><li><a href="libxslt-namespaces.html">namespaces</a>: interface for the XSLT namespace handling</li><li><a href="libxslt-numbersInternals.html">numbersInternals</a>: Implementation of the XSLT number functions</li><li><a href="libxslt-pattern.html">pattern</a>: interface for the pattern matching used in template matches.</li><li><a href="libxslt-preproc.html">preproc</a>: precomputing stylesheets</li><li><a href="libxslt-security.html">security</a>: interface for the libxslt security framework</li><li><a href="libxslt-templates.html">templates</a>: interface for the template processing</li><li><a href="libxslt-transform.html">transform</a>: the XSLT engine transformation part.</li><li><a href="libxslt-variables.html">variables</a>: interface for the variable matching and lookup.</li><li><a href="libxslt-xslt.html">xslt</a>: Interfaces, constants and types related to the XSLT engine</li><li><a href="libxslt-xsltInternals.html">xsltInternals</a>: internal data structures, constants and functions</li><li><a href="libxslt-xsltexports.html">xsltexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxslt-xsltutils.html">xsltutils</a>: set of utilities for the XSLT engine</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/home.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/html/home.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/index.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/index.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/index.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Reference Manual for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Reference Manual for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxslt-attributes.html">attributes</a>: interface for the XSLT attribute handling</li><li><a href="libxslt-documents.html">documents</a>: interface for the document handling</li><li><a href="libxslt-extensions.html">extensions</a>: interface for the extension support</li><li><a href="libxslt-extra.html">extra</a>: interface for the non-standard features</li><li><a href="libxslt-functions.html">functions</a>: interface for the XSLT functions not from XPath</li><li><a href="libxslt-imports.html">imports</a>: interface for the XSLT import support</li><li><a href="libxslt-keys.html">keys</a>: interface for the key matching used in key() and template matches.</li><li><a href="libxslt-namespaces.html">namespaces</a>: interface for the XSLT namespace handling</li><li><a href="libxslt-numbersInternals.html">numbersInternals</a>: Implementation of the XSLT number functions</li><li><a href="libxslt-pattern.html">pattern</a>: interface for the pattern matching used in template matches.</li><li><a href="libxslt-preproc.html">preproc</a>: precomputing stylesheets</li><li><a href="libxslt-security.html">security</a>: interface for the libxslt security framework</li><li><a href="libxslt-templates.html">templates</a>: interface for the template processing</li><li><a href="libxslt-transform.html">transform</a>: the XSLT engine transformation part.</li><li><a href="libxslt-variables.html">variables</a>: interface for the variable matching and lookup.</li><li><a href="libxslt-xslt.html">xslt</a>: Interfaces, constants and types related to the XSLT engine</li><li><a href="libxslt-xsltInternals.html">xsltInternals</a>: internal data structures, constants and functions</li><li><a href="libxslt-xsltexports.html">xsltexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxslt-xsltutils.html">xsltutils</a>: set of utilities for the XSLT engine</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/left.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/html/left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-attributes.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-attributes.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-attributes.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module attributes from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module attributes from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-documents.html">documents</a></th><td><a accesskey="n" href="libxslt-documents.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>this module handles the specificities of attribute and attribute groups processing. </p><h2>Table of Contents</h2><pre class="programlisting">void	<a href="#xsltApplyAttributeSet">xsltApplyAttributeSet</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 const xmlChar * attributes)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeAttributeSetsHashes">xsltFreeAttributeSetsHashes</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">void	<a href="#xsltParseStylesheetAttributeSet">xsltParseStylesheetAttributeSet</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)</pre>
+<pre class="programlisting">void	<a href="#xsltResolveStylesheetAttributeSet">xsltResolveStylesheetAttributeSet</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<h2>Description</h2>
+<h3><a name="xsltApplyAttributeSet" id="xsltApplyAttributeSet"></a>Function: xsltApplyAttributeSet</h3><pre class="programlisting">void	xsltApplyAttributeSet		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 const xmlChar * attributes)<br />
+</pre><p>Apply the xsl:use-attribute-sets</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt attribute node</td></tr><tr><td><span class="term"><i><tt>attributes</tt></i>:</span></td><td>the set list.</td></tr></tbody></table></div><h3><a name="xsltFreeAttributeSetsHashes" id="xsltFreeAttributeSetsHashes"></a>Function: xsltFreeAttributeSetsHashes</h3><pre class="programlisting">void	xsltFreeAttributeSetsHashes	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Free up the memory used by attribute sets</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div><h3><a name="xsltParseStylesheetAttributeSet" id="xsltParseStylesheetAttributeSet"></a>Function: xsltParseStylesheetAttributeSet</h3><pre class="programlisting">void	xsltParseStylesheetAttributeSet	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)<br />
+</pre><p>parse an XSLT stylesheet attribute-set element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the "attribute-set" element</td></tr></tbody></table></div><h3><a name="xsltResolveStylesheetAttributeSet" id="xsltResolveStylesheetAttributeSet"></a>Function: xsltResolveStylesheetAttributeSet</h3><pre class="programlisting">void	xsltResolveStylesheetAttributeSet	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>resolve the references between attribute sets.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-documents.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-documents.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-documents.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module documents from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module documents from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-attributes.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-attributes.html">attributes</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-extensions.html">extensions</a></th><td><a accesskey="n" href="libxslt-extensions.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>implements document loading and cache (multiple document() reference for the same resources must be equal. </p><h2>Table of Contents</h2><pre class="programlisting">Enum <a href="#xsltLoadType">xsltLoadType</a>
+</pre><pre class="programlisting">Function type: <a href="#xsltDocLoaderFunc">xsltDocLoaderFunc</a>
+xmlDocPtr	<a href="#xsltDocLoaderFunc">xsltDocLoaderFunc</a>	(const xmlChar * URI, <br />					 xmlDictPtr dict, <br />					 int options, <br />					 void * ctxt, <br />					 <a href="libxslt-documents.html#xsltLoadType">xsltLoadType</a> type)
+</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	<a href="#xsltFindDocument">xsltFindDocument</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlDocPtr doc)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeDocuments">xsltFreeDocuments</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	<a href="#xsltLoadDocument">xsltLoadDocument</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URI)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	<a href="#xsltLoadStyleDocument">xsltLoadStyleDocument</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * URI)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	<a href="#xsltNewDocument">xsltNewDocument</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlDocPtr doc)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	<a href="#xsltNewStyleDocument">xsltNewStyleDocument</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc)</pre>
+<pre class="programlisting">void	<a href="#xsltSetLoaderFunc">xsltSetLoaderFunc</a>		(<a href="libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a> f)</pre>
+<h2>Description</h2>
+<h3>Enum <a name="xsltLoadType" id="xsltLoadType">xsltLoadType</a></h3><pre class="programlisting">Enum xsltLoadType {
+    <a name="XSLT_LOAD_START" id="XSLT_LOAD_START">XSLT_LOAD_START</a> = 0 : loading for a top stylesheet
+    <a name="XSLT_LOAD_STYLESHEET" id="XSLT_LOAD_STYLESHEET">XSLT_LOAD_STYLESHEET</a> = 1 : loading for a stylesheet include/import
+    <a name="XSLT_LOAD_DOCUMENT" id="XSLT_LOAD_DOCUMENT">XSLT_LOAD_DOCUMENT</a> = 2 : loading document at transformation time
+}
+</pre><h3><a name="xsltDocLoaderFunc" id="xsltDocLoaderFunc"></a>Function type: xsltDocLoaderFunc</h3><pre class="programlisting">Function type: xsltDocLoaderFunc
+xmlDocPtr	xsltDocLoaderFunc	(const xmlChar * URI, <br />					 xmlDictPtr dict, <br />					 int options, <br />					 void * ctxt, <br />					 <a href="libxslt-documents.html#xsltLoadType">xsltLoadType</a> type)
+</pre><p>An <a href="libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a> is a signature for a function which can be registered to load document not provided by the compilation or transformation API themselve, for example when an xsl:import, xsl:include is found at compilation time or when a document() call is made at runtime.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI of the document to load</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary to use when parsing that document</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>parsing options, a set of xmlParserOption</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context, either a stylesheet or a transformation context</td></tr><tr><td><span class="term"><i><tt>type</tt></i>:</span></td><td>the <a href="libxslt-documents.html#xsltLoadType">xsltLoadType</a> indicating the kind of loading required</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer to the document (which will be modified and freed by the engine later), or NULL in case of error.</td></tr></tbody></table></div><br />
+<h3><a name="xsltFindDocument" id="xsltFindDocument"></a>Function: xsltFindDocument</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	xsltFindDocument	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlDocPtr doc)<br />
+</pre><p>Try to find a document within the XSLT transformation context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the desired <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xsltFreeDocuments" id="xsltFreeDocuments"></a>Function: xsltFreeDocuments</h3><pre class="programlisting">void	xsltFreeDocuments		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Free up all the space used by the loaded documents</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr></tbody></table></div><h3><a name="xsltFreeStyleDocuments" id="xsltFreeStyleDocuments"></a>Function: xsltFreeStyleDocuments</h3><pre class="programlisting">void	xsltFreeStyleDocuments		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Free up all the space used by the loaded documents</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT style sheet</td></tr></tbody></table></div><h3><a name="xsltLoadDocument" id="xsltLoadDocument"></a>Function: xsltLoadDocument</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	xsltLoadDocument	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URI)<br />
+</pre><p>Try to load a document (not a stylesheet) within the XSLT transformation context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the computed URI of the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xsltLoadStyleDocument" id="xsltLoadStyleDocument"></a>Function: xsltLoadStyleDocument</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	xsltLoadStyleDocument	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * URI)<br />
+</pre><p>Try to load a stylesheet document within the XSLT transformation context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT style sheet</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the computed URI of the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xsltNewDocument" id="xsltNewDocument"></a>Function: xsltNewDocument</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	xsltNewDocument		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlDocPtr doc)<br />
+</pre><p>Register a new document, apply key computations</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context (or NULL)</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a handler to the document</td></tr></tbody></table></div><h3><a name="xsltNewStyleDocument" id="xsltNewStyleDocument"></a>Function: xsltNewStyleDocument</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	xsltNewStyleDocument	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc)<br />
+</pre><p>Register a new document, apply key computations</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT style sheet</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a handler to the document</td></tr></tbody></table></div><h3><a name="xsltSetLoaderFunc" id="xsltSetLoaderFunc"></a>Function: xsltSetLoaderFunc</h3><pre class="programlisting">void	xsltSetLoaderFunc		(<a href="libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a> f)<br />
+</pre><p>Set the new function to load document, if NULL it resets it to the default function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the new function to handle document loading.</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-extensions.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-extensions.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-extensions.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module extensions from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module extensions from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-documents.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-documents.html">documents</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-extra.html">extra</a></th><td><a accesskey="n" href="libxslt-extra.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>This provide the API needed for simple and module extension support. </p><h2>Table of Contents</h2><pre class="programlisting">int	<a href="#xsltCheckExtPrefix">xsltCheckExtPrefix</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * prefix)</pre>
+<pre class="programlisting">void	<a href="#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a>		(FILE * output)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>	<a href="#xsltExtElementLookup">xsltExtElementLookup</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 const xmlChar * name, <br />						 const xmlChar * URI)</pre>
+<pre class="programlisting">xmlXPathFunction	<a href="#xsltExtFunctionLookup">xsltExtFunctionLookup</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 const xmlChar * name, <br />						 const xmlChar * URI)</pre>
+<pre class="programlisting">Function type: <a href="#xsltExtInitFunction">xsltExtInitFunction</a>
+void *	<a href="#xsltExtInitFunction">xsltExtInitFunction</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URI)
+</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>	<a href="#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a>	(const xmlChar * name, <br />							 const xmlChar * URI)</pre>
+<pre class="programlisting"><a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a>	<a href="#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a>	(const xmlChar * name, <br />							 const xmlChar * URI)</pre>
+<pre class="programlisting">xmlXPathFunction	<a href="#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a>	(const xmlChar * name, <br />							 const xmlChar * URI)</pre>
+<pre class="programlisting"><a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a>	<a href="#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a>	(const xmlChar * name, <br />							 const xmlChar * URI)</pre>
+<pre class="programlisting">Function type: <a href="#xsltExtShutdownFunction">xsltExtShutdownFunction</a>
+void	<a href="#xsltExtShutdownFunction">xsltExtShutdownFunction</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URI, <br />					 void * data)
+</pre>
+<pre class="programlisting">void	<a href="#xsltFreeCtxtExts">xsltFreeCtxtExts</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeExts">xsltFreeExts</a>			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">void *	<a href="#xsltGetExtData">xsltGetExtData</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URI)</pre>
+<pre class="programlisting">xmlHashTablePtr	<a href="#xsltGetExtInfo">xsltGetExtInfo</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * URI)</pre>
+<pre class="programlisting">int	<a href="#xsltInitCtxtExts">xsltInitCtxtExts</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void	<a href="#xsltInitElemPreComp">xsltInitElemPreComp</a>		(<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function, <br />					 <a href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a> freeFunc)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	<a href="#xsltNewElemPreComp">xsltNewElemPreComp</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 xmlNodePtr inst, <br />						 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	<a href="#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />							 xmlNodePtr inst)</pre>
+<pre class="programlisting">Function type: <a href="#xsltPreComputeFunction">xsltPreComputeFunction</a>
+<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	<a href="#xsltPreComputeFunction">xsltPreComputeFunction</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 xmlNodePtr inst, <br />						 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)
+</pre>
+<pre class="programlisting">int	<a href="#xsltRegisterExtElement">xsltRegisterExtElement</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * URI, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)</pre>
+<pre class="programlisting">int	<a href="#xsltRegisterExtFunction">xsltRegisterExtFunction</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * URI, <br />					 xmlXPathFunction function)</pre>
+<pre class="programlisting">int	<a href="#xsltRegisterExtModule">xsltRegisterExtModule</a>		(const xmlChar * URI, <br />					 <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br />					 <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc)</pre>
+<pre class="programlisting">int	<a href="#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a>	(const xmlChar * name, <br />					 const xmlChar * URI, <br />					 <a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a> precomp, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> transform)</pre>
+<pre class="programlisting">int	<a href="#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a>	(const xmlChar * URI, <br />					 <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br />					 <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc, <br />					 <a href="libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a> styleInitFunc, <br />					 <a href="libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a> styleShutdownFunc)</pre>
+<pre class="programlisting">int	<a href="#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a>	(const xmlChar * name, <br />					 const xmlChar * URI, <br />					 xmlXPathFunction function)</pre>
+<pre class="programlisting">int	<a href="#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a>	(const xmlChar * name, <br />					 const xmlChar * URI, <br />					 <a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a> function)</pre>
+<pre class="programlisting">int	<a href="#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * prefix, <br />					 const xmlChar * URI)</pre>
+<pre class="programlisting">void	<a href="#xsltRegisterTestModule">xsltRegisterTestModule</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void	<a href="#xsltShutdownExts">xsltShutdownExts</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">Function type: <a href="#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a>
+void *	<a href="#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * URI)
+</pre>
+<pre class="programlisting">Function type: <a href="#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a>
+void	<a href="#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * URI, <br />					 void * data)
+</pre>
+<pre class="programlisting">void *	<a href="#xsltStyleGetExtData">xsltStyleGetExtData</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * URI)</pre>
+<pre class="programlisting">Function type: <a href="#xsltTopLevelFunction">xsltTopLevelFunction</a>
+void	<a href="#xsltTopLevelFunction">xsltTopLevelFunction</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr inst)
+</pre>
+<pre class="programlisting">int	<a href="#xsltUnregisterExtModule">xsltUnregisterExtModule</a>		(const xmlChar * URI)</pre>
+<pre class="programlisting">int	<a href="#xsltUnregisterExtModuleElement">xsltUnregisterExtModuleElement</a>	(const xmlChar * name, <br />					 const xmlChar * URI)</pre>
+<pre class="programlisting">int	<a href="#xsltUnregisterExtModuleFunction">xsltUnregisterExtModuleFunction</a>	(const xmlChar * name, <br />					 const xmlChar * URI)</pre>
+<pre class="programlisting">int	<a href="#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a>	(const xmlChar * name, <br />					 const xmlChar * URI)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>	<a href="#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a>	(xmlXPathParserContextPtr ctxt)</pre>
+<h2>Description</h2>
+<h3><a name="xsltCheckExtPrefix" id="xsltCheckExtPrefix"></a>Function: xsltCheckExtPrefix</h3><pre class="programlisting">int	xsltCheckExtPrefix		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * prefix)<br />
+</pre><p>Check if the given prefix is one of the declared extensions</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the namespace prefix (possibly NULL)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if this is an extension, 0 otherwise</td></tr></tbody></table></div><h3><a name="xsltDebugDumpExtensions" id="xsltDebugDumpExtensions"></a>Function: xsltDebugDumpExtensions</h3><pre class="programlisting">void	xsltDebugDumpExtensions		(FILE * output)<br />
+</pre><p>Dumps a list of the registered XSLT extension functions and elements</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output, if NULL stdout is used</td></tr></tbody></table></div><h3><a name="xsltExtElementLookup" id="xsltExtElementLookup"></a>Function: xsltExtElementLookup</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>	xsltExtElementLookup	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 const xmlChar * name, <br />						 const xmlChar * URI)<br />
+</pre><p>Looks up an extension element. @ctxt can be NULL to search only in module elements.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT process context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the element callback or NULL if not found</td></tr></tbody></table></div><h3><a name="xsltExtFunctionLookup" id="xsltExtFunctionLookup"></a>Function: xsltExtFunctionLookup</h3><pre class="programlisting">xmlXPathFunction	xsltExtFunctionLookup	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 const xmlChar * name, <br />						 const xmlChar * URI)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xsltExtInitFunction" id="xsltExtInitFunction"></a>Function type: xsltExtInitFunction</h3><pre class="programlisting">Function type: xsltExtInitFunction
+void *	xsltExtInitFunction		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URI)
+</pre><p>A function called at initialization time of an XSLT extension module.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the module specific data for this transformation.</td></tr></tbody></table></div><br />
+<h3><a name="xsltExtModuleElementLookup" id="xsltExtModuleElementLookup"></a>Function: xsltExtModuleElementLookup</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>	xsltExtModuleElementLookup	(const xmlChar * name, <br />							 const xmlChar * URI)<br />
+</pre><p>Looks up an extension module element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the callback function if found, NULL otherwise.</td></tr></tbody></table></div><h3><a name="xsltExtModuleElementPreComputeLookup" id="xsltExtModuleElementPreComputeLookup"></a>Function: xsltExtModuleElementPreComputeLookup</h3><pre class="programlisting"><a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a>	xsltExtModuleElementPreComputeLookup	(const xmlChar * name, <br />							 const xmlChar * URI)<br />
+</pre><p>Looks up an extension module element pre-computation function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the callback function if found, NULL otherwise.</td></tr></tbody></table></div><h3><a name="xsltExtModuleFunctionLookup" id="xsltExtModuleFunctionLookup"></a>Function: xsltExtModuleFunctionLookup</h3><pre class="programlisting">xmlXPathFunction	xsltExtModuleFunctionLookup	(const xmlChar * name, <br />							 const xmlChar * URI)<br />
+</pre><p>Looks up an extension module function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the function if found, NULL otherwise.</td></tr></tbody></table></div><h3><a name="xsltExtModuleTopLevelLookup" id="xsltExtModuleTopLevelLookup"></a>Function: xsltExtModuleTopLevelLookup</h3><pre class="programlisting"><a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a>	xsltExtModuleTopLevelLookup	(const xmlChar * name, <br />							 const xmlChar * URI)<br />
+</pre><p>Looks up an extension module top-level element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the top-level element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the top-level element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the callback function if found, NULL otherwise.</td></tr></tbody></table></div><h3><a name="xsltExtShutdownFunction" id="xsltExtShutdownFunction"></a>Function type: xsltExtShutdownFunction</h3><pre class="programlisting">Function type: xsltExtShutdownFunction
+void	xsltExtShutdownFunction		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URI, <br />					 void * data)
+</pre><p>A function called at shutdown time of an XSLT extension module.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data associated to this module</td></tr></tbody></table></div><br />
+<h3><a name="xsltFreeCtxtExts" id="xsltFreeCtxtExts"></a>Function: xsltFreeCtxtExts</h3><pre class="programlisting">void	xsltFreeCtxtExts		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Free the XSLT extension data</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr></tbody></table></div><h3><a name="xsltFreeExts" id="xsltFreeExts"></a>Function: xsltFreeExts</h3><pre class="programlisting">void	xsltFreeExts			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Free up the memory used by XSLT extensions in a stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div><h3><a name="xsltGetExtData" id="xsltGetExtData"></a>Function: xsltGetExtData</h3><pre class="programlisting">void *	xsltGetExtData			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URI)<br />
+</pre><p>Retrieve the data associated to the extension module in this given transformation.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the exension module</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer or NULL if not present</td></tr></tbody></table></div><h3><a name="xsltGetExtInfo" id="xsltGetExtInfo"></a>Function: xsltGetExtInfo</h3><pre class="programlisting">xmlHashTablePtr	xsltGetExtInfo		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * URI)<br />
+</pre><p>looks up URI in extInfos of the stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>pointer to a stylesheet</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI desired</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hash table if found, else NULL</td></tr></tbody></table></div><h3><a name="xsltInitCtxtExts" id="xsltInitCtxtExts"></a>Function: xsltInitCtxtExts</h3><pre class="programlisting">int	xsltInitCtxtExts		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Initialize the set of modules with registered stylesheet data</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of modules initialized or -1 in case of error</td></tr></tbody></table></div><h3><a name="xsltInitElemPreComp" id="xsltInitElemPreComp"></a>Function: xsltInitElemPreComp</h3><pre class="programlisting">void	xsltInitElemPreComp		(<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function, <br />					 <a href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a> freeFunc)<br />
+</pre><p>Initializes an existing #xsltElemPreComp structure. This is usefull when extending an #xsltElemPreComp to store precomputed data. This function MUST be called on any extension element precomputed data struct.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>an #xsltElemPreComp (or generally a derived structure)</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the transform function</td></tr><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>the @comp deallocator</td></tr></tbody></table></div><h3><a name="xsltNewElemPreComp" id="xsltNewElemPreComp"></a>Function: xsltNewElemPreComp</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	xsltNewElemPreComp	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 xmlNodePtr inst, <br />						 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)<br />
+</pre><p>Creates and initializes an #xsltElemPreComp</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the transform function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new and initialized #xsltElemPreComp</td></tr></tbody></table></div><h3><a name="xsltPreComputeExtModuleElement" id="xsltPreComputeExtModuleElement"></a>Function: xsltPreComputeExtModuleElement</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	xsltPreComputeExtModuleElement	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />							 xmlNodePtr inst)<br />
+</pre><p>Precomputes an extension module element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the precomputed data</td></tr></tbody></table></div><h3><a name="xsltPreComputeFunction" id="xsltPreComputeFunction"></a>Function type: xsltPreComputeFunction</h3><pre class="programlisting">Function type: xsltPreComputeFunction
+<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	xsltPreComputeFunction	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 xmlNodePtr inst, <br />						 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)
+</pre><p></p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><br />
+<h3><a name="xsltRegisterExtElement" id="xsltRegisterExtElement"></a>Function: xsltRegisterExtElement</h3><pre class="programlisting">int	xsltRegisterExtElement		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * URI, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)<br />
+</pre><p>Registers an extension element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the element</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the actual implementation which should be called</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure</td></tr></tbody></table></div><h3><a name="xsltRegisterExtFunction" id="xsltRegisterExtFunction"></a>Function: xsltRegisterExtFunction</h3><pre class="programlisting">int	xsltRegisterExtFunction		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * URI, <br />					 xmlXPathFunction function)<br />
+</pre><p>Registers an extension function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the element</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the actual implementation which should be called</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure</td></tr></tbody></table></div><h3><a name="xsltRegisterExtModule" id="xsltRegisterExtModule"></a>Function: xsltRegisterExtModule</h3><pre class="programlisting">int	xsltRegisterExtModule		(const xmlChar * URI, <br />					 <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br />					 <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc)<br />
+</pre><p>Register an XSLT extension module to the library.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>URI associated to this module</td></tr><tr><td><span class="term"><i><tt>initFunc</tt></i>:</span></td><td>the module initialization function</td></tr><tr><td><span class="term"><i><tt>shutdownFunc</tt></i>:</span></td><td>the module shutdown function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if sucessful, -1 in case of error</td></tr></tbody></table></div><h3><a name="xsltRegisterExtModuleElement" id="xsltRegisterExtModuleElement"></a>Function: xsltRegisterExtModuleElement</h3><pre class="programlisting">int	xsltRegisterExtModuleElement	(const xmlChar * name, <br />					 const xmlChar * URI, <br />					 <a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a> precomp, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> transform)<br />
+</pre><p>Registers an extension module element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span class="term"><i><tt>precomp</tt></i>:</span></td><td>the pre-computation callback</td></tr><tr><td><span class="term"><i><tt>transform</tt></i>:</span></td><td>the transformation callback</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltRegisterExtModuleFull" id="xsltRegisterExtModuleFull"></a>Function: xsltRegisterExtModuleFull</h3><pre class="programlisting">int	xsltRegisterExtModuleFull	(const xmlChar * URI, <br />					 <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br />					 <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc, <br />					 <a href="libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a> styleInitFunc, <br />					 <a href="libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a> styleShutdownFunc)<br />
+</pre><p>Register an XSLT extension module to the library.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>URI associated to this module</td></tr><tr><td><span class="term"><i><tt>initFunc</tt></i>:</span></td><td>the module initialization function</td></tr><tr><td><span class="term"><i><tt>shutdownFunc</tt></i>:</span></td><td>the module shutdown function</td></tr><tr><td><span class="term"><i><tt>styleInitFunc</tt></i>:</span></td><td>the module initialization function</td></tr><tr><td><span class="term"><i><tt>styleShutdownFunc</tt></i>:</span></td><td>the module shutdown function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if sucessful, -1 in case of error</td></tr></tbody></table></div><h3><a name="xsltRegisterExtModuleFunction" id="xsltRegisterExtModuleFunction"></a>Function: xsltRegisterExtModuleFunction</h3><pre class="programlisting">int	xsltRegisterExtModuleFunction	(const xmlChar * name, <br />					 const xmlChar * URI, <br />					 xmlXPathFunction function)<br />
+</pre><p>Registers an extension module function.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the function callback</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltRegisterExtModuleTopLevel" id="xsltRegisterExtModuleTopLevel"></a>Function: xsltRegisterExtModuleTopLevel</h3><pre class="programlisting">int	xsltRegisterExtModuleTopLevel	(const xmlChar * name, <br />					 const xmlChar * URI, <br />					 <a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a> function)<br />
+</pre><p>Registers an extension module top-level element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the top-level element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the top-level element namespace URI</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the top-level element callback</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltRegisterExtPrefix" id="xsltRegisterExtPrefix"></a>Function: xsltRegisterExtPrefix</h3><pre class="programlisting">int	xsltRegisterExtPrefix		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * prefix, <br />					 const xmlChar * URI)<br />
+</pre><p>Registers an extension namespace</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix used</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the extension</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure</td></tr></tbody></table></div><h3><a name="xsltRegisterTestModule" id="xsltRegisterTestModule"></a>Function: xsltRegisterTestModule</h3><pre class="programlisting">void	xsltRegisterTestModule		(void)<br />
+</pre><p>Registers the test module</p>
+<h3><a name="xsltShutdownCtxtExts" id="xsltShutdownCtxtExts"></a>Function: xsltShutdownCtxtExts</h3><pre class="programlisting">void	xsltShutdownCtxtExts		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Shutdown the set of modules loaded</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr></tbody></table></div><h3><a name="xsltShutdownExts" id="xsltShutdownExts"></a>Function: xsltShutdownExts</h3><pre class="programlisting">void	xsltShutdownExts		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Shutdown the set of modules loaded</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div><h3><a name="xsltStyleExtInitFunction" id="xsltStyleExtInitFunction"></a>Function type: xsltStyleExtInitFunction</h3><pre class="programlisting">Function type: xsltStyleExtInitFunction
+void *	xsltStyleExtInitFunction	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * URI)
+</pre><p>A function called at initialization time of an XSLT extension module.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the module specific data for this transformation.</td></tr></tbody></table></div><br />
+<h3><a name="xsltStyleExtShutdownFunction" id="xsltStyleExtShutdownFunction"></a>Function type: xsltStyleExtShutdownFunction</h3><pre class="programlisting">Function type: xsltStyleExtShutdownFunction
+void	xsltStyleExtShutdownFunction	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * URI, <br />					 void * data)
+</pre><p>A function called at shutdown time of an XSLT extension module.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data associated to this module</td></tr></tbody></table></div><br />
+<h3><a name="xsltStyleGetExtData" id="xsltStyleGetExtData"></a>Function: xsltStyleGetExtData</h3><pre class="programlisting">void *	xsltStyleGetExtData		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * URI)<br />
+</pre><p>Retrieve the data associated to the extension module in this given stylesheet.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the exension module</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer or NULL if not present</td></tr></tbody></table></div><h3><a name="xsltTopLevelFunction" id="xsltTopLevelFunction"></a>Function type: xsltTopLevelFunction</h3><pre class="programlisting">Function type: xsltTopLevelFunction
+void	xsltTopLevelFunction		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr inst)
+</pre><p></p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td></td></tr></tbody></table></div><br />
+<h3><a name="xsltUnregisterExtModule" id="xsltUnregisterExtModule"></a>Function: xsltUnregisterExtModule</h3><pre class="programlisting">int	xsltUnregisterExtModule		(const xmlChar * URI)<br />
+</pre><p>Unregister an XSLT extension module from the library.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>URI associated to this module</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if sucessful, -1 in case of error</td></tr></tbody></table></div><h3><a name="xsltUnregisterExtModuleElement" id="xsltUnregisterExtModuleElement"></a>Function: xsltUnregisterExtModuleElement</h3><pre class="programlisting">int	xsltUnregisterExtModuleElement	(const xmlChar * name, <br />					 const xmlChar * URI)<br />
+</pre><p>Unregisters an extension module element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltUnregisterExtModuleFunction" id="xsltUnregisterExtModuleFunction"></a>Function: xsltUnregisterExtModuleFunction</h3><pre class="programlisting">int	xsltUnregisterExtModuleFunction	(const xmlChar * name, <br />					 const xmlChar * URI)<br />
+</pre><p>Unregisters an extension module function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltUnregisterExtModuleTopLevel" id="xsltUnregisterExtModuleTopLevel"></a>Function: xsltUnregisterExtModuleTopLevel</h3><pre class="programlisting">int	xsltUnregisterExtModuleTopLevel	(const xmlChar * name, <br />					 const xmlChar * URI)<br />
+</pre><p>Unregisters an extension module top-level element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the top-level element name</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the top-level element namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltXPathGetTransformContext" id="xsltXPathGetTransformContext"></a>Function: xsltXPathGetTransformContext</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>	xsltXPathGetTransformContext	(xmlXPathParserContextPtr ctxt)<br />
+</pre><p>Provides the XSLT transformation context from the XPath transformation context. This is useful when an XPath function in the extension module is called by the XPath interpreter and that the XSLT context is needed for example to retrieve the associated data pertaining to this XSLT transformation.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the XSLT transformation context or NULL in case of error.</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-extra.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-extra.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-extra.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module extra from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module extra from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-extensions.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-extensions.html">extensions</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-functions.html">functions</a></th><td><a accesskey="n" href="libxslt-functions.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>implement some extension outside the XSLT namespace but not EXSLT with is in a different library. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_NORM_SAXON_NAMESPACE">XSLT_NORM_SAXON_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a></pre><pre class="programlisting">void	<a href="#xsltDebug">xsltDebug</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltFunctionNodeSet">xsltFunctionNodeSet</a>		(xmlXPathParserContextPtr ctxt, <br />					 int nargs)</pre>
+<pre class="programlisting">void	<a href="#xsltRegisterAllExtras">xsltRegisterAllExtras</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#xsltRegisterExtras">xsltRegisterExtras</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<h2>Description</h2>
+<h3><a name="XSLT_LIBXSLT_NAMESPACE" id="XSLT_LIBXSLT_NAMESPACE"></a>Macro: XSLT_LIBXSLT_NAMESPACE</h3><pre>#define XSLT_LIBXSLT_NAMESPACE</pre><p>This is the libxslt namespace for specific extensions.</p>
+<h3><a name="XSLT_NORM_SAXON_NAMESPACE" id="XSLT_NORM_SAXON_NAMESPACE"></a>Macro: XSLT_NORM_SAXON_NAMESPACE</h3><pre>#define XSLT_NORM_SAXON_NAMESPACE</pre><p>This is Norm's namespace for SAXON extensions.</p>
+<h3><a name="XSLT_SAXON_NAMESPACE" id="XSLT_SAXON_NAMESPACE"></a>Macro: XSLT_SAXON_NAMESPACE</h3><pre>#define XSLT_SAXON_NAMESPACE</pre><p>This is Michael Kay's Saxon processor namespace for extensions.</p>
+<h3><a name="XSLT_XALAN_NAMESPACE" id="XSLT_XALAN_NAMESPACE"></a>Macro: XSLT_XALAN_NAMESPACE</h3><pre>#define XSLT_XALAN_NAMESPACE</pre><p>This is the Apache project XALAN processor namespace for extensions.</p>
+<h3><a name="XSLT_XT_NAMESPACE" id="XSLT_XT_NAMESPACE"></a>Macro: XSLT_XT_NAMESPACE</h3><pre>#define XSLT_XT_NAMESPACE</pre><p>This is James Clark's XT processor namespace for extensions.</p>
+<h3><a name="xsltDebug" id="xsltDebug"></a>Function: xsltDebug</h3><pre class="programlisting">void	xsltDebug			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process an debug node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT processing context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>The current node</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the instruction in the stylesheet</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed informations</td></tr></tbody></table></div><h3><a name="xsltFunctionNodeSet" id="xsltFunctionNodeSet"></a>Function: xsltFunctionNodeSet</h3><pre class="programlisting">void	xsltFunctionNodeSet		(xmlXPathParserContextPtr ctxt, <br />					 int nargs)<br />
+</pre><p>Implement the node-set() XSLT function node-set node-set(result-tree) This function is available in libxslt, saxon or xt namespace.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xsltRegisterAllExtras" id="xsltRegisterAllExtras"></a>Function: xsltRegisterAllExtras</h3><pre class="programlisting">void	xsltRegisterAllExtras		(void)<br />
+</pre><p>Registers the built-in extensions</p>
+<h3><a name="xsltRegisterExtras" id="xsltRegisterExtras"></a>Function: xsltRegisterExtras</h3><pre class="programlisting">void	xsltRegisterExtras		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Registers the built-in extensions. This function is deprecated, use <a href="libxslt-extra.html#xsltRegisterAllExtras">xsltRegisterAllExtras</a> instead.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-functions.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-functions.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-functions.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module functions from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module functions from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-extra.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-extra.html">extra</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-imports.html">imports</a></th><td><a accesskey="n" href="libxslt-imports.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>a set of extra functions coming from XSLT but not in XPath </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a></pre><pre class="programlisting">void	<a href="#xsltDocumentFunction">xsltDocumentFunction</a>		(xmlXPathParserContextPtr ctxt, <br />					 int nargs)</pre>
+<pre class="programlisting">void	<a href="#xsltElementAvailableFunction">xsltElementAvailableFunction</a>	(xmlXPathParserContextPtr ctxt, <br />					 int nargs)</pre>
+<pre class="programlisting">void	<a href="#xsltFormatNumberFunction">xsltFormatNumberFunction</a>	(xmlXPathParserContextPtr ctxt, <br />					 int nargs)</pre>
+<pre class="programlisting">void	<a href="#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a>	(xmlXPathParserContextPtr ctxt, <br />					 int nargs)</pre>
+<pre class="programlisting">void	<a href="#xsltGenerateIdFunction">xsltGenerateIdFunction</a>		(xmlXPathParserContextPtr ctxt, <br />					 int nargs)</pre>
+<pre class="programlisting">void	<a href="#xsltKeyFunction">xsltKeyFunction</a>			(xmlXPathParserContextPtr ctxt, <br />					 int nargs)</pre>
+<pre class="programlisting">void	<a href="#xsltRegisterAllFunctions">xsltRegisterAllFunctions</a>	(xmlXPathContextPtr ctxt)</pre>
+<pre class="programlisting">void	<a href="#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a>	(xmlXPathParserContextPtr ctxt, <br />					 int nargs)</pre>
+<pre class="programlisting">void	<a href="#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a>	(xmlXPathParserContextPtr ctxt, <br />					 int nargs)</pre>
+<pre class="programlisting">xmlXPathFunction	<a href="#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a>	(xmlXPathContextPtr ctxt, <br />						 const xmlChar * name, <br />						 const xmlChar * ns_uri)</pre>
+<h2>Description</h2>
+<h3><a name="XSLT_REGISTER_FUNCTION_LOOKUP" id="XSLT_REGISTER_FUNCTION_LOOKUP"></a>Macro: XSLT_REGISTER_FUNCTION_LOOKUP</h3><pre>#define XSLT_REGISTER_FUNCTION_LOOKUP</pre><p>Registering macro, not general purpose at all but used in different modules.</p>
+<h3><a name="xsltDocumentFunction" id="xsltDocumentFunction"></a>Function: xsltDocumentFunction</h3><pre class="programlisting">void	xsltDocumentFunction		(xmlXPathParserContextPtr ctxt, <br />					 int nargs)<br />
+</pre><p>Implement the document() XSLT function node-set document(object, node-set?)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xsltElementAvailableFunction" id="xsltElementAvailableFunction"></a>Function: xsltElementAvailableFunction</h3><pre class="programlisting">void	xsltElementAvailableFunction	(xmlXPathParserContextPtr ctxt, <br />					 int nargs)<br />
+</pre><p>Implement the element-available() XSLT function boolean element-available(string)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xsltFormatNumberFunction" id="xsltFormatNumberFunction"></a>Function: xsltFormatNumberFunction</h3><pre class="programlisting">void	xsltFormatNumberFunction	(xmlXPathParserContextPtr ctxt, <br />					 int nargs)<br />
+</pre><p>Implement the format-number() XSLT function string format-number(number, string, string?)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xsltFunctionAvailableFunction" id="xsltFunctionAvailableFunction"></a>Function: xsltFunctionAvailableFunction</h3><pre class="programlisting">void	xsltFunctionAvailableFunction	(xmlXPathParserContextPtr ctxt, <br />					 int nargs)<br />
+</pre><p>Implement the function-available() XSLT function boolean function-available(string)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xsltGenerateIdFunction" id="xsltGenerateIdFunction"></a>Function: xsltGenerateIdFunction</h3><pre class="programlisting">void	xsltGenerateIdFunction		(xmlXPathParserContextPtr ctxt, <br />					 int nargs)<br />
+</pre><p>Implement the generate-id() XSLT function string generate-id(node-set?)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xsltKeyFunction" id="xsltKeyFunction"></a>Function: xsltKeyFunction</h3><pre class="programlisting">void	xsltKeyFunction			(xmlXPathParserContextPtr ctxt, <br />					 int nargs)<br />
+</pre><p>Implement the key() XSLT function node-set key(string, object)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xsltRegisterAllFunctions" id="xsltRegisterAllFunctions"></a>Function: xsltRegisterAllFunctions</h3><pre class="programlisting">void	xsltRegisterAllFunctions	(xmlXPathContextPtr ctxt)<br />
+</pre><p>Registers all default XSLT functions in this context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div><h3><a name="xsltSystemPropertyFunction" id="xsltSystemPropertyFunction"></a>Function: xsltSystemPropertyFunction</h3><pre class="programlisting">void	xsltSystemPropertyFunction	(xmlXPathParserContextPtr ctxt, <br />					 int nargs)<br />
+</pre><p>Implement the system-property() XSLT function object system-property(string)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xsltUnparsedEntityURIFunction" id="xsltUnparsedEntityURIFunction"></a>Function: xsltUnparsedEntityURIFunction</h3><pre class="programlisting">void	xsltUnparsedEntityURIFunction	(xmlXPathParserContextPtr ctxt, <br />					 int nargs)<br />
+</pre><p>Implement the unparsed-entity-uri() XSLT function string unparsed-entity-uri(string)</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xsltXPathFunctionLookup" id="xsltXPathFunctionLookup"></a>Function: xsltXPathFunctionLookup</h3><pre class="programlisting">xmlXPathFunction	xsltXPathFunctionLookup	(xmlXPathContextPtr ctxt, <br />						 const xmlChar * name, <br />						 const xmlChar * ns_uri)<br />
+</pre><p>This is the entry point when a function is needed by the XPath interpretor.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a void * but the XSLT transformation context actually</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the callback function or NULL if not found</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-imports.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-imports.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-imports.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module imports from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module imports from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-functions.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-functions.html">functions</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-keys.html">keys</a></th><td><a accesskey="n" href="libxslt-keys.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>macros and fuctions needed to implement and access the import tree </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a></pre><pre class="programlisting">#define <a href="#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a></pre><pre class="programlisting">int	<a href="#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>	<a href="#xsltFindTemplate">xsltFindTemplate</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * nameURI)</pre>
+<pre class="programlisting">int	<a href="#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	<a href="#xsltNextImport">xsltNextImport</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> cur)</pre>
+<pre class="programlisting">int	<a href="#xsltParseStylesheetImport">xsltParseStylesheetImport</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)</pre>
+<pre class="programlisting">int	<a href="#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)</pre>
+<h2>Description</h2>
+<h3><a name="XSLT_GET_IMPORT_INT" id="XSLT_GET_IMPORT_INT"></a>Macro: XSLT_GET_IMPORT_INT</h3><pre>#define XSLT_GET_IMPORT_INT</pre><p>A macro to import intergers from the stylesheet cascading order.</p>
+<h3><a name="XSLT_GET_IMPORT_PTR" id="XSLT_GET_IMPORT_PTR"></a>Macro: XSLT_GET_IMPORT_PTR</h3><pre>#define XSLT_GET_IMPORT_PTR</pre><p>A macro to import pointers from the stylesheet cascading order.</p>
+<h3><a name="xsltFindElemSpaceHandling" id="xsltFindElemSpaceHandling"></a>Function: xsltFindElemSpaceHandling</h3><pre class="programlisting">int	xsltFindElemSpaceHandling	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node)<br />
+</pre><p>Find strip-space or preserve-space informations for an element respect the import precedence or the wildcards</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>an XML node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if space should be stripped, 0 if not, and 2 if everything should be CDTATA wrapped.</td></tr></tbody></table></div><h3><a name="xsltFindTemplate" id="xsltFindTemplate"></a>Function: xsltFindTemplate</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>	xsltFindTemplate	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * nameURI)<br />
+</pre><p>Finds the named template, apply import precedence rule.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the template name</td></tr><tr><td><span class="term"><i><tt>nameURI</tt></i>:</span></td><td>the template name URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> or NULL if not found</td></tr></tbody></table></div><h3><a name="xsltNeedElemSpaceHandling" id="xsltNeedElemSpaceHandling"></a>Function: xsltNeedElemSpaceHandling</h3><pre class="programlisting">int	xsltNeedElemSpaceHandling	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Checks whether that stylesheet requires white-space stripping</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if space should be stripped, 0 if not</td></tr></tbody></table></div><h3><a name="xsltNextImport" id="xsltNextImport"></a>Function: xsltNextImport</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	xsltNextImport	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> cur)<br />
+</pre><p>Find the next stylesheet in import precedence.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the current XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the next stylesheet or NULL if it was the last one</td></tr></tbody></table></div><h3><a name="xsltParseStylesheetImport" id="xsltParseStylesheetImport"></a>Function: xsltParseStylesheetImport</h3><pre class="programlisting">int	xsltParseStylesheetImport	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)<br />
+</pre><p>parse an XSLT stylesheet import element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the import element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xsltParseStylesheetInclude" id="xsltParseStylesheetInclude"></a>Function: xsltParseStylesheetInclude</h3><pre class="programlisting">int	xsltParseStylesheetInclude	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)<br />
+</pre><p>parse an XSLT stylesheet include element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the include node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success -1 in case of failure</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-keys.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-keys.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-keys.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module keys from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module keys from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-imports.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-imports.html">imports</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-namespaces.html">namespaces</a></th><td><a accesskey="n" href="libxslt-namespaces.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>implementation of the key mechanims. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#NODE_IS_KEYED">NODE_IS_KEYED</a></pre><pre class="programlisting">int	<a href="#xsltAddKey">xsltAddKey</a>			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * name, <br />					 const xmlChar * nameURI, <br />					 const xmlChar * match, <br />					 const xmlChar * use, <br />					 xmlNodePtr inst)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeDocumentKeys">xsltFreeDocumentKeys</a>		(<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> doc)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeKeys">xsltFreeKeys</a>			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">xmlNodeSetPtr	<a href="#xsltGetKey">xsltGetKey</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * nameURI, <br />					 const xmlChar * value)</pre>
+<pre class="programlisting">void	<a href="#xsltInitCtxtKeys">xsltInitCtxtKeys</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> doc)</pre>
+<h2>Description</h2>
+<h3><a name="NODE_IS_KEYED" id="NODE_IS_KEYED"></a>Macro: NODE_IS_KEYED</h3><pre>#define NODE_IS_KEYED</pre><p></p>
+<h3><a name="xsltAddKey" id="xsltAddKey"></a>Function: xsltAddKey</h3><pre class="programlisting">int	xsltAddKey			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 const xmlChar * name, <br />					 const xmlChar * nameURI, <br />					 const xmlChar * match, <br />					 const xmlChar * use, <br />					 xmlNodePtr inst)<br />
+</pre><p>add a key definition to a stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the key name or NULL</td></tr><tr><td><span class="term"><i><tt>nameURI</tt></i>:</span></td><td>the name URI or NULL</td></tr><tr><td><span class="term"><i><tt>match</tt></i>:</span></td><td>the match value</td></tr><tr><td><span class="term"><i><tt>use</tt></i>:</span></td><td>the use value</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the key instruction</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, and -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xsltFreeDocumentKeys" id="xsltFreeDocumentKeys"></a>Function: xsltFreeDocumentKeys</h3><pre class="programlisting">void	xsltFreeDocumentKeys		(<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> doc)<br />
+</pre><p>Free the keys associated to a document</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a XSLT document</td></tr></tbody></table></div><h3><a name="xsltFreeKeys" id="xsltFreeKeys"></a>Function: xsltFreeKeys</h3><pre class="programlisting">void	xsltFreeKeys			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Free up the memory used by XSLT keys in a stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div><h3><a name="xsltGetKey" id="xsltGetKey"></a>Function: xsltGetKey</h3><pre class="programlisting">xmlNodeSetPtr	xsltGetKey		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * nameURI, <br />					 const xmlChar * value)<br />
+</pre><p>Lookup a key</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the key name or NULL</td></tr><tr><td><span class="term"><i><tt>nameURI</tt></i>:</span></td><td>the name URI or NULL</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the key value to look for</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodeset resulting from the query or NULL</td></tr></tbody></table></div><h3><a name="xsltInitCtxtKeys" id="xsltInitCtxtKeys"></a>Function: xsltInitCtxtKeys</h3><pre class="programlisting">void	xsltInitCtxtKeys		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> doc)<br />
+</pre><p>Computes all the keys tables for the current input document. Should be done before global varibales are initialized.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an XSLT document</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-lib.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-lib.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-lib.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Reference Manual for libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Reference Manual for libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxslt-attributes.html">attributes</a>: interface for the XSLT attribute handling</li><li><a href="libxslt-documents.html">documents</a>: interface for the document handling</li><li><a href="libxslt-extensions.html">extensions</a>: interface for the extension support</li><li><a href="libxslt-extra.html">extra</a>: interface for the non-standard features</li><li><a href="libxslt-functions.html">functions</a>: interface for the XSLT functions not from XPath</li><li><a href="libxslt-imports.html">imports</a>: interface for the XSLT import support</li><li><a href="libxslt-keys.html">keys</a>: interface for the key matching used in key() and template matches.</li><li><a href="libxslt-namespaces.html">namespaces</a>: interface for the XSLT namespace handling</li><li><a href="libxslt-numbersInternals.html">numbersInternals</a>: Implementation of the XSLT number functions</li><li><a href="libxslt-pattern.html">pattern</a>: interface for the pattern matching used in template matches.</li><li><a href="libxslt-preproc.html">preproc</a>: precomputing stylesheets</li><li><a href="libxslt-security.html">security</a>: interface for the libxslt security framework</li><li><a href="libxslt-templates.html">templates</a>: interface for the template processing</li><li><a href="libxslt-transform.html">transform</a>: the XSLT engine transformation part.</li><li><a href="libxslt-variables.html">variables</a>: interface for the variable matching and lookup.</li><li><a href="libxslt-xslt.html">xslt</a>: Interfaces, constants and types related to the XSLT engine</li><li><a href="libxslt-xsltInternals.html">xsltInternals</a>: internal data structures, constants and functions</li><li><a href="libxslt-xsltexports.html">xsltexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxslt-xsltutils.html">xsltutils</a>: set of utilities for the XSLT engine</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-namespaces.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-namespaces.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-namespaces.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module namespaces from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module namespaces from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-keys.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-keys.html">keys</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-numbersInternals.html">numbersInternals</a></th><td><a accesskey="n" href="libxslt-numbersInternals.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>set of function easing the processing and generation of namespace nodes in XSLT. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#UNDEFINED_DEFAULT_NS">UNDEFINED_DEFAULT_NS</a></pre><pre class="programlisting">xmlNsPtr	<a href="#xsltCopyNamespace">xsltCopyNamespace</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNsPtr cur)</pre>
+<pre class="programlisting">xmlNsPtr	<a href="#xsltCopyNamespaceList">xsltCopyNamespaceList</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNsPtr cur)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeNamespaceAliasHashes">xsltFreeNamespaceAliasHashes</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">xmlNsPtr	<a href="#xsltGetNamespace">xsltGetNamespace</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr cur, <br />					 xmlNsPtr ns, <br />					 xmlNodePtr out)</pre>
+<pre class="programlisting">xmlNsPtr	<a href="#xsltGetPlainNamespace">xsltGetPlainNamespace</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr cur, <br />					 xmlNsPtr ns, <br />					 xmlNodePtr out)</pre>
+<pre class="programlisting">xmlNsPtr	<a href="#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr cur, <br />					 const xmlChar * URI, <br />					 const xmlChar * prefix, <br />					 xmlNodePtr out)</pre>
+<pre class="programlisting">void	<a href="#xsltNamespaceAlias">xsltNamespaceAlias</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr node)</pre>
+<h2>Description</h2>
+<h3><a name="UNDEFINED_DEFAULT_NS" id="UNDEFINED_DEFAULT_NS"></a>Macro: UNDEFINED_DEFAULT_NS</h3><pre>#define UNDEFINED_DEFAULT_NS</pre><p></p>
+<h3><a name="xsltCopyNamespace" id="xsltCopyNamespace"></a>Function: xsltCopyNamespace</h3><pre class="programlisting">xmlNsPtr	xsltCopyNamespace	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNsPtr cur)<br />
+</pre><p>Do a copy of an namespace node. If @node is non-NULL the new namespaces are added automatically. This handles namespaces aliases</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the target node</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the namespace node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new xmlNsPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xsltCopyNamespaceList" id="xsltCopyNamespaceList"></a>Function: xsltCopyNamespaceList</h3><pre class="programlisting">xmlNsPtr	xsltCopyNamespaceList	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNsPtr cur)<br />
+</pre><p>Do a copy of an namespace list. If @node is non-NULL the new namespaces are added automatically. This handles namespaces aliases</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the target node</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new xmlNsPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xsltFreeNamespaceAliasHashes" id="xsltFreeNamespaceAliasHashes"></a>Function: xsltFreeNamespaceAliasHashes</h3><pre class="programlisting">void	xsltFreeNamespaceAliasHashes	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Free up the memory used by namespaces aliases</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div><h3><a name="xsltGetNamespace" id="xsltGetNamespace"></a>Function: xsltGetNamespace</h3><pre class="programlisting">xmlNsPtr	xsltGetNamespace	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr cur, <br />					 xmlNsPtr ns, <br />					 xmlNodePtr out)<br />
+</pre><p>Find the right namespace value for this prefix, if needed create and add a new namespace decalaration on the node Handle namespace aliases</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the input node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>the output node (or its parent)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace node to use or NULL</td></tr></tbody></table></div><h3><a name="xsltGetPlainNamespace" id="xsltGetPlainNamespace"></a>Function: xsltGetPlainNamespace</h3><pre class="programlisting">xmlNsPtr	xsltGetPlainNamespace	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr cur, <br />					 xmlNsPtr ns, <br />					 xmlNodePtr out)<br />
+</pre><p>Find the right namespace value for this prefix, if needed create and add a new namespace decalaration on the node Handle namespace aliases and make sure the prefix is not NULL, this is needed for attributes.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the input node</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>the output node (or its parent)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace node to use or NULL</td></tr></tbody></table></div><h3><a name="xsltGetSpecialNamespace" id="xsltGetSpecialNamespace"></a>Function: xsltGetSpecialNamespace</h3><pre class="programlisting">xmlNsPtr	xsltGetSpecialNamespace	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr cur, <br />					 const xmlChar * URI, <br />					 const xmlChar * prefix, <br />					 xmlNodePtr out)<br />
+</pre><p>Find the right namespace value for this URI, if needed create and add a new namespace decalaration on the node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the input node</td></tr><tr><td><span class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the suggested prefix</td></tr><tr><td><span class="term"><i><tt>out</tt></i>:</span></td><td>the output node (or its parent)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace node to use or NULL</td></tr></tbody></table></div><h3><a name="xsltNamespaceAlias" id="xsltNamespaceAlias"></a>Function: xsltNamespaceAlias</h3><pre class="programlisting">void	xsltNamespaceAlias		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr node)<br />
+</pre><p>Read the stylesheet-prefix and result-prefix attributes, register them as well as the corresponding namespace.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the xsl:namespace-alias node</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-numbersInternals.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-numbersInternals.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-numbersInternals.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module numbersInternals from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module numbersInternals from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-namespaces.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-namespaces.html">namespaces</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-pattern.html">pattern</a></th><td><a accesskey="n" href="libxslt-pattern.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>Implementation of the XSLT number functions </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xsltFormatNumberInfo">xsltFormatNumberInfo</a><br />struct _xsltFormatNumberInfo
+</pre><pre class="programlisting">Typedef <a href="libxslt-numbersInternals.html#xsltFormatNumberInfo">xsltFormatNumberInfo</a> * <a name="xsltFormatNumberInfoPtr" id="xsltFormatNumberInfoPtr">xsltFormatNumberInfoPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xsltNumberData">xsltNumberData</a><br />struct _xsltNumberData
+</pre><pre class="programlisting">Typedef <a href="libxslt-numbersInternals.html#xsltNumberData">xsltNumberData</a> * <a name="xsltNumberDataPtr" id="xsltNumberDataPtr">xsltNumberDataPtr</a>
+</pre><h2>Description</h2>
+<h3><a name="xsltFormatNumberInfo" id="xsltFormatNumberInfo">Structure xsltFormatNumberInfo</a></h3><pre class="programlisting">Structure xsltFormatNumberInfo<br />struct _xsltFormatNumberInfo {
+    int	integer_hash	: Number of '#' in integer part
+    int	integer_digits	: Number of '0' in integer part
+    int	frac_digits	: Number of '0' in fractional part
+    int	frac_hash	: Number of '#' in fractional part
+    int	group	: Number of chars per display 'group'
+    int	multiplier	: Scaling for percent or permille
+    char	add_decimal	: Flag for whether decimal point appears
+    char	is_multiplier_set	: Flag to catch multiple occurences of pe
+    char	is_negative_pattern	: Flag for processing -ve prefix/suffix
+}</pre><h3><a name="xsltNumberData" id="xsltNumberData">Structure xsltNumberData</a></h3><pre class="programlisting">Structure xsltNumberData<br />struct _xsltNumberData {
+    const xmlChar *	level
+    const xmlChar *	count
+    const xmlChar *	from
+    const xmlChar *	value
+    const xmlChar *	format
+    int	has_format
+    int	digitsPerGroup
+    int	groupingCharacter
+    int	groupingCharacterLen
+    xmlDocPtr	doc
+    xmlNodePtr	node	: * accelerators *
+}</pre><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-pattern.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-pattern.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-pattern.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module pattern from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module pattern from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-numbersInternals.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-numbersInternals.html">numbersInternals</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-preproc.html">preproc</a></th><td><a accesskey="n" href="libxslt-preproc.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>the implementation of the lookup of the right template for a given node must be really fast in order to keep decent performances. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#xsltCompMatch">xsltCompMatch</a><br />struct _xsltCompMatch
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxslt-pattern.html#xsltCompMatch">xsltCompMatch</a> * <a name="xsltCompMatchPtr" id="xsltCompMatchPtr">xsltCompMatchPtr</a>
+</pre><pre class="programlisting">int	<a href="#xsltAddTemplate">xsltAddTemplate</a>			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> cur, <br />					 const xmlChar * mode, <br />					 const xmlChar * modeURI)</pre>
+<pre class="programlisting">void	<a href="#xsltCleanupTemplates">xsltCleanupTemplates</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting"><a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a>	<a href="#xsltCompilePattern">xsltCompilePattern</a>	(const xmlChar * pattern, <br />						 xmlDocPtr doc, <br />						 xmlNodePtr node, <br />						 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> runtime)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeCompMatchList">xsltFreeCompMatchList</a>		(<a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeTemplateHashes">xsltFreeTemplateHashes</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>	<a href="#xsltGetTemplate">xsltGetTemplate</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">int	<a href="#xsltMatchPattern">xsltMatchPattern</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 const xmlChar * pattern, <br />					 xmlDocPtr ctxtdoc, <br />					 xmlNodePtr ctxtnode)</pre>
+<pre class="programlisting">void	<a href="#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a>		(void * payload, <br />					 void * data, <br />					 const xmlChar * name)</pre>
+<pre class="programlisting">int	<a href="#xsltTestCompMatchList">xsltTestCompMatchList</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 <a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp)</pre>
+<h2>Description</h2>
+<h3><a name="xsltCompMatch" id="xsltCompMatch">Structure xsltCompMatch</a></h3><pre class="programlisting">Structure xsltCompMatch<br />struct _xsltCompMatch {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xsltAddTemplate" id="xsltAddTemplate"></a>Function: xsltAddTemplate</h3><pre class="programlisting">int	xsltAddTemplate			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> cur, <br />					 const xmlChar * mode, <br />					 const xmlChar * modeURI)<br />
+</pre><p>Register the XSLT pattern associated to @cur</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>an XSLT template</td></tr><tr><td><span class="term"><i><tt>mode</tt></i>:</span></td><td>the mode name or NULL</td></tr><tr><td><span class="term"><i><tt>modeURI</tt></i>:</span></td><td>the mode URI or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xsltCleanupTemplates" id="xsltCleanupTemplates"></a>Function: xsltCleanupTemplates</h3><pre class="programlisting">void	xsltCleanupTemplates		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Cleanup the state of the templates used by the stylesheet and the ones it imports.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div><h3><a name="xsltCompilePattern" id="xsltCompilePattern"></a>Function: xsltCompilePattern</h3><pre class="programlisting"><a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a>	xsltCompilePattern	(const xmlChar * pattern, <br />						 xmlDocPtr doc, <br />						 xmlNodePtr node, <br />						 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> runtime)<br />
+</pre><p>Compile the XSLT pattern and generates a list of precompiled form suitable for fast matching. [1] Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>an XSLT pattern</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the containing document</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the containing element</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>runtime</tt></i>:</span></td><td>the transformation context, if done at run-time</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the generated pattern list or NULL in case of failure</td></tr></tbody></table></div><h3><a name="xsltFreeCompMatchList" id="xsltFreeCompMatchList"></a>Function: xsltFreeCompMatchList</h3><pre class="programlisting">void	xsltFreeCompMatchList		(<a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp)<br />
+</pre><p>Free up the memory allocated by all the elements of @comp</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>an XSLT comp list</td></tr></tbody></table></div><h3><a name="xsltFreeTemplateHashes" id="xsltFreeTemplateHashes"></a>Function: xsltFreeTemplateHashes</h3><pre class="programlisting">void	xsltFreeTemplateHashes		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Free up the memory used by xsltAddTemplate/xsltGetTemplate mechanism</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div><h3><a name="xsltGetTemplate" id="xsltGetTemplate"></a>Function: xsltGetTemplate</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>	xsltGetTemplate		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Finds the template applying to this node, if @style is non-NULL it means one needs to look for the next imported template in scope.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node being processed</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the current style</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> or NULL if not found</td></tr></tbody></table></div><h3><a name="xsltMatchPattern" id="xsltMatchPattern"></a>Function: xsltMatchPattern</h3><pre class="programlisting">int	xsltMatchPattern		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 const xmlChar * pattern, <br />					 xmlDocPtr ctxtdoc, <br />					 xmlNodePtr ctxtnode)<br />
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>ctxtdoc</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>ctxtnode</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xsltNormalizeCompSteps" id="xsltNormalizeCompSteps"></a>Function: xsltNormalizeCompSteps</h3><pre class="programlisting">void	xsltNormalizeCompSteps		(void * payload, <br />					 void * data, <br />					 const xmlChar * name)<br />
+</pre><p>This is a hashtable scanner function to normalize the compiled steps of an imported stylesheet.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>pointer to template hash table entry</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>pointer to the stylesheet</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>template match name</td></tr></tbody></table></div><h3><a name="xsltTestCompMatchList" id="xsltTestCompMatchList"></a>Function: xsltTestCompMatchList</h3><pre class="programlisting">int	xsltTestCompMatchList		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 <a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp)<br />
+</pre><p>Test whether the node matches one of the patterns in the list</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if it matches, 0 if it doesn't and -1 in case of failure</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-preproc.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-preproc.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-preproc.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module preproc from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module preproc from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-pattern.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-pattern.html">pattern</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-security.html">security</a></th><td><a accesskey="n" href="libxslt-security.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>this is the compilation phase, where most of the stylesheet is "compiled" into faster to use data. </p><h2>Table of Contents</h2><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	<a href="#xsltDocumentComp">xsltDocumentComp</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 xmlNodePtr inst, <br />						 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeStylePreComps">xsltFreeStylePreComps</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">void	<a href="#xsltStylePreCompute">xsltStylePreCompute</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr inst)</pre>
+<h2>Description</h2>
+<h3><a name="xsltDocumentComp" id="xsltDocumentComp"></a>Function: xsltDocumentComp</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	xsltDocumentComp	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 xmlNodePtr inst, <br />						 <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)<br />
+</pre><p>Pre process an XSLT-1.1 document element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the instruction in the stylesheet</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a precompiled data structure for the element</td></tr></tbody></table></div><h3><a name="xsltFreeStylePreComps" id="xsltFreeStylePreComps"></a>Function: xsltFreeStylePreComps</h3><pre class="programlisting">void	xsltFreeStylePreComps		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Free up the memory allocated by all precomputed blocks</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT transformation context</td></tr></tbody></table></div><h3><a name="xsltStylePreCompute" id="xsltStylePreCompute"></a>Function: xsltStylePreCompute</h3><pre class="programlisting">void	xsltStylePreCompute		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr inst)<br />
+</pre><p>Precompute an XSLT stylesheet element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the instruction in the stylesheet</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-security.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-security.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-security.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module security from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module security from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-preproc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-preproc.html">preproc</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-templates.html">templates</a></th><td><a accesskey="n" href="libxslt-templates.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>the libxslt security framework allow to restrict the access to new resources (file or URL) from the stylesheet at runtime. </p><h2>Table of Contents</h2><pre class="programlisting">Enum <a href="#xsltSecurityOption">xsltSecurityOption</a>
+</pre><pre class="programlisting">Structure <a href="#xsltSecurityPrefs">xsltSecurityPrefs</a><br />struct _xsltSecurityPrefs
+The content of this structure is not made public by the API.
+</pre><pre class="programlisting">Typedef <a href="libxslt-security.html#xsltSecurityPrefs">xsltSecurityPrefs</a> * <a name="xsltSecurityPrefsPtr" id="xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a>
+</pre><pre class="programlisting">int	<a href="#xsltCheckRead">xsltCheckRead</a>			(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URL)</pre>
+<pre class="programlisting">int	<a href="#xsltCheckWrite">xsltCheckWrite</a>			(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URL)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeSecurityPrefs">xsltFreeSecurityPrefs</a>		(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec)</pre>
+<pre class="programlisting"><a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a>	<a href="#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a>	(void)</pre>
+<pre class="programlisting"><a href="libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a>	<a href="#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a>	(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />						 <a href="libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a> option)</pre>
+<pre class="programlisting"><a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a>	<a href="#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a>	(void)</pre>
+<pre class="programlisting">int	<a href="#xsltSecurityAllow">xsltSecurityAllow</a>		(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const char * value)</pre>
+<pre class="programlisting">Function type: <a href="#xsltSecurityCheck">xsltSecurityCheck</a>
+int	<a href="#xsltSecurityCheck">xsltSecurityCheck</a>		(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const char * value)
+</pre>
+<pre class="programlisting">int	<a href="#xsltSecurityForbid">xsltSecurityForbid</a>		(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const char * value)</pre>
+<pre class="programlisting">int	<a href="#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a>	(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void	<a href="#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a>	(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec)</pre>
+<pre class="programlisting">int	<a href="#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a>		(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a> option, <br />					 <a href="libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a> func)</pre>
+<h2>Description</h2>
+<h3>Enum <a name="xsltSecurityOption" id="xsltSecurityOption">xsltSecurityOption</a></h3><pre class="programlisting">Enum xsltSecurityOption {
+    <a name="XSLT_SECPREF_READ_FILE" id="XSLT_SECPREF_READ_FILE">XSLT_SECPREF_READ_FILE</a> = 1
+    <a name="XSLT_SECPREF_WRITE_FILE" id="XSLT_SECPREF_WRITE_FILE">XSLT_SECPREF_WRITE_FILE</a> = 2
+    <a name="XSLT_SECPREF_CREATE_DIRECTORY" id="XSLT_SECPREF_CREATE_DIRECTORY">XSLT_SECPREF_CREATE_DIRECTORY</a> = 3
+    <a name="XSLT_SECPREF_READ_NETWORK" id="XSLT_SECPREF_READ_NETWORK">XSLT_SECPREF_READ_NETWORK</a> = 4
+    <a name="XSLT_SECPREF_WRITE_NETWORK" id="XSLT_SECPREF_WRITE_NETWORK">XSLT_SECPREF_WRITE_NETWORK</a> = 5
+}
+</pre><h3><a name="xsltSecurityPrefs" id="xsltSecurityPrefs">Structure xsltSecurityPrefs</a></h3><pre class="programlisting">Structure xsltSecurityPrefs<br />struct _xsltSecurityPrefs {
+The content of this structure is not made public by the API.
+}</pre><h3><a name="xsltCheckRead" id="xsltCheckRead"></a>Function: xsltCheckRead</h3><pre class="programlisting">int	xsltCheckRead			(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URL)<br />
+</pre><p>Check if the resource is allowed to be read</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sec</tt></i>:</span></td><td>the security options</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the resource to be read</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if read is allowed, 0 if not and -1 in case or error.</td></tr></tbody></table></div><h3><a name="xsltCheckWrite" id="xsltCheckWrite"></a>Function: xsltCheckWrite</h3><pre class="programlisting">int	xsltCheckWrite			(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * URL)<br />
+</pre><p>Check if the resource is allowed to be written, if necessary makes some preliminary work like creating directories</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sec</tt></i>:</span></td><td>the security options</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the resource to be written</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if write is allowed, 0 if not and -1 in case or error.</td></tr></tbody></table></div><h3><a name="xsltFreeSecurityPrefs" id="xsltFreeSecurityPrefs"></a>Function: xsltFreeSecurityPrefs</h3><pre class="programlisting">void	xsltFreeSecurityPrefs		(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec)<br />
+</pre><p>Free up a security preference block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to free</td></tr></tbody></table></div><h3><a name="xsltGetDefaultSecurityPrefs" id="xsltGetDefaultSecurityPrefs"></a>Function: xsltGetDefaultSecurityPrefs</h3><pre class="programlisting"><a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a>	xsltGetDefaultSecurityPrefs	(void)<br />
+</pre><p>Get the default security preference application-wide</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current <a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> in use or NULL if none</td></tr></tbody></table></div><h3><a name="xsltGetSecurityPrefs" id="xsltGetSecurityPrefs"></a>Function: xsltGetSecurityPrefs</h3><pre class="programlisting"><a href="libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a>	xsltGetSecurityPrefs	(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />						 <a href="libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a> option)<br />
+</pre><p>Lookup the security option to get the callback checking function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to update</td></tr><tr><td><span class="term"><i><tt>option</tt></i>:</span></td><td>the option to lookup</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not found, the function otherwise</td></tr></tbody></table></div><h3><a name="xsltNewSecurityPrefs" id="xsltNewSecurityPrefs"></a>Function: xsltNewSecurityPrefs</h3><pre class="programlisting"><a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a>	xsltNewSecurityPrefs	(void)<br />
+</pre><p>Create a new security preference block</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new block or NULL in case of error</td></tr></tbody></table></div><h3><a name="xsltSecurityAllow" id="xsltSecurityAllow"></a>Function: xsltSecurityAllow</h3><pre class="programlisting">int	xsltSecurityAllow		(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const char * value)<br />
+</pre><p>Function used to always allow an operation</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to use</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 always</td></tr></tbody></table></div><h3><a name="xsltSecurityCheck" id="xsltSecurityCheck"></a>Function type: xsltSecurityCheck</h3><pre class="programlisting">Function type: xsltSecurityCheck
+int	xsltSecurityCheck		(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const char * value)
+</pre><p>User provided function to check the value of a string like a file path or an URL ...</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sec</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><br />
+<h3><a name="xsltSecurityForbid" id="xsltSecurityForbid"></a>Function: xsltSecurityForbid</h3><pre class="programlisting">int	xsltSecurityForbid		(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const char * value)<br />
+</pre><p>Function used to always forbid an operation</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to use</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>unused</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 always</td></tr></tbody></table></div><h3><a name="xsltSetCtxtSecurityPrefs" id="xsltSetCtxtSecurityPrefs"></a>Function: xsltSetCtxtSecurityPrefs</h3><pre class="programlisting">int	xsltSetCtxtSecurityPrefs	(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Set the security preference for a specific transformation</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to use</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise</td></tr></tbody></table></div><h3><a name="xsltSetDefaultSecurityPrefs" id="xsltSetDefaultSecurityPrefs"></a>Function: xsltSetDefaultSecurityPrefs</h3><pre class="programlisting">void	xsltSetDefaultSecurityPrefs	(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec)<br />
+</pre><p>Set the default security preference application-wide</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to use</td></tr></tbody></table></div><h3><a name="xsltSetSecurityPrefs" id="xsltSetSecurityPrefs"></a>Function: xsltSetSecurityPrefs</h3><pre class="programlisting">int	xsltSetSecurityPrefs		(<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br />					 <a href="libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a> option, <br />					 <a href="libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a> func)<br />
+</pre><p>Update the security option to use the new callback checking function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to update</td></tr><tr><td><span class="term"><i><tt>option</tt></i>:</span></td><td>the option to update</td></tr><tr><td><span class="term"><i><tt>func</tt></i>:</span></td><td>the user callback to use for this option</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 otherwise</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-templates.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-templates.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-templates.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module templates from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module templates from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-security.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-security.html">security</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-transform.html">transform</a></th><td><a accesskey="n" href="libxslt-transform.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>This set of routine encapsulates XPath calls and Attribute Value Templates evaluation. </p><h2>Table of Contents</h2><pre class="programlisting">xmlAttrPtr	<a href="#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 xmlNodePtr target, <br />						 xmlAttrPtr cur)</pre>
+<pre class="programlisting">xmlAttrPtr	<a href="#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr target, <br />					 xmlAttrPtr cur)</pre>
+<pre class="programlisting">xmlChar *	<a href="#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 const xmlChar * str)</pre>
+<pre class="programlisting">xmlChar *	<a href="#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />							 const xmlChar * str, <br />							 xmlNodePtr node)</pre>
+<pre class="programlisting">xmlChar *	<a href="#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 xmlNodePtr node, <br />						 const xmlChar * name, <br />						 const xmlChar * ns)</pre>
+<pre class="programlisting">const xmlChar *	<a href="#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 xmlNodePtr node, <br />						 const xmlChar * name, <br />						 const xmlChar * ns, <br />						 int * found)</pre>
+<pre class="programlisting">xmlChar *	<a href="#xsltEvalTemplateString">xsltEvalTemplateString</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr parent)</pre>
+<pre class="programlisting">int	<a href="#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlXPathCompExprPtr comp, <br />					 xmlNsPtr * nsList, <br />					 int nsNr)</pre>
+<pre class="programlisting">xmlChar *	<a href="#xsltEvalXPathString">xsltEvalXPathString</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlXPathCompExprPtr comp)</pre>
+<pre class="programlisting">xmlChar *	<a href="#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlXPathCompExprPtr comp, <br />					 int nsNr, <br />					 xmlNsPtr * nsList)</pre>
+<pre class="programlisting">xmlNodePtr *	<a href="#xsltTemplateProcess">xsltTemplateProcess</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node)</pre>
+<h2>Description</h2>
+<h3><a name="xsltAttrListTemplateProcess" id="xsltAttrListTemplateProcess"></a>Function: xsltAttrListTemplateProcess</h3><pre class="programlisting">xmlAttrPtr	xsltAttrListTemplateProcess	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 xmlNodePtr target, <br />						 xmlAttrPtr cur)<br />
+</pre><p>Do a copy of an attribute list with attribute template processing</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the element where the attributes will be grafted</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first attribute</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new xmlAttrPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xsltAttrTemplateProcess" id="xsltAttrTemplateProcess"></a>Function: xsltAttrTemplateProcess</h3><pre class="programlisting">xmlAttrPtr	xsltAttrTemplateProcess	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr target, <br />					 xmlAttrPtr cur)<br />
+</pre><p>Process the given attribute and return the new processed copy.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the result node</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the attribute template node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the attribute replacement.</td></tr></tbody></table></div><h3><a name="xsltAttrTemplateValueProcess" id="xsltAttrTemplateValueProcess"></a>Function: xsltAttrTemplateValueProcess</h3><pre class="programlisting">xmlChar *	xsltAttrTemplateValueProcess	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 const xmlChar * str)<br />
+</pre><p>Process the given node and return the new string value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the attribute template node value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xsltAttrTemplateValueProcessNode" id="xsltAttrTemplateValueProcessNode"></a>Function: xsltAttrTemplateValueProcessNode</h3><pre class="programlisting">xmlChar *	xsltAttrTemplateValueProcessNode	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />							 const xmlChar * str, <br />							 xmlNodePtr node)<br />
+</pre><p>Process the given string, allowing to pass a namespace mapping context and return the new string value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the attribute template node value</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node hosting the attribute</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xsltEvalAttrValueTemplate" id="xsltEvalAttrValueTemplate"></a>Function: xsltEvalAttrValueTemplate</h3><pre class="programlisting">xmlChar *	xsltEvalAttrValueTemplate	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 xmlNodePtr node, <br />						 const xmlChar * name, <br />						 const xmlChar * ns)<br />
+</pre><p>Evaluate a attribute value template, i.e. the attribute value can contain expressions contained in curly braces ({}) and those are substituted by they computed value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the stylesheet node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the attribute QName</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the attribute namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xsltEvalStaticAttrValueTemplate" id="xsltEvalStaticAttrValueTemplate"></a>Function: xsltEvalStaticAttrValueTemplate</h3><pre class="programlisting">const xmlChar *	xsltEvalStaticAttrValueTemplate	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 xmlNodePtr node, <br />						 const xmlChar * name, <br />						 const xmlChar * ns, <br />						 int * found)<br />
+</pre><p>Check if an attribute value template has a static value, i.e. the attribute value does not contain expressions contained in curly braces ({})</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the stylesheet node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the attribute Name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the attribute namespace URI</td></tr><tr><td><span class="term"><i><tt>found</tt></i>:</span></td><td>indicator whether the attribute is present</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the static string value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xsltEvalTemplateString" id="xsltEvalTemplateString"></a>Function: xsltEvalTemplateString</h3><pre class="programlisting">xmlChar *	xsltEvalTemplateString	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr parent)<br />
+</pre><p>Evaluate a template string value, i.e. the parent list is interpreter as template content and the resulting tree string value is returned This is needed for example by xsl:comment and xsl:processing-instruction</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the stylesheet node</td></tr><tr><td><span class="term"><i><tt>parent</tt></i>:</span></td><td>the content parent</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xsltEvalXPathPredicate" id="xsltEvalXPathPredicate"></a>Function: xsltEvalXPathPredicate</h3><pre class="programlisting">int	xsltEvalXPathPredicate		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlXPathCompExprPtr comp, <br />					 xmlNsPtr * nsList, <br />					 int nsNr)<br />
+</pre><p>Process the expression using XPath and evaluate the result as an XPath predicate</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the XPath compiled expression</td></tr><tr><td><span class="term"><i><tt>nsList</tt></i>:</span></td><td>the namespaces in scope</td></tr><tr><td><span class="term"><i><tt>nsNr</tt></i>:</span></td><td>the number of namespaces in scope</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 is the predicate was true, 0 otherwise</td></tr></tbody></table></div><h3><a name="xsltEvalXPathString" id="xsltEvalXPathString"></a>Function: xsltEvalXPathString</h3><pre class="programlisting">xmlChar *	xsltEvalXPathString	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlXPathCompExprPtr comp)<br />
+</pre><p>Process the expression using XPath and get a string</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled XPath expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xsltEvalXPathStringNs" id="xsltEvalXPathStringNs"></a>Function: xsltEvalXPathStringNs</h3><pre class="programlisting">xmlChar *	xsltEvalXPathStringNs	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlXPathCompExprPtr comp, <br />					 int nsNr, <br />					 xmlNsPtr * nsList)<br />
+</pre><p>Process the expression using XPath, allowing to pass a namespace mapping context and get a string</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled XPath expression</td></tr><tr><td><span class="term"><i><tt>nsNr</tt></i>:</span></td><td>the number of namespaces in the list</td></tr><tr><td><span class="term"><i><tt>nsList</tt></i>:</span></td><td>the list of in-scope namespaces to use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xsltTemplateProcess" id="xsltTemplateProcess"></a>Function: xsltTemplateProcess</h3><pre class="programlisting">xmlNodePtr *	xsltTemplateProcess	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node)<br />
+</pre><p>Process the given node and return the new string value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the attribute template node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed tree replacement</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-transform.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-transform.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-transform.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module transform from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module transform from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-templates.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-templates.html">templates</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-variables.html">variables</a></th><td><a accesskey="n" href="libxslt-variables.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>This module implements the bulk of the actual</p><h2>Table of Contents</h2><pre class="programlisting">void	<a href="#xslHandleDebugger">xslHandleDebugger</a>		(xmlNodePtr cur, <br />					 xmlNodePtr node, <br />					 <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void	<a href="#xsltApplyImports">xsltApplyImports</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltApplyOneTemplate">xsltApplyOneTemplate</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr list, <br />					 <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br />					 <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> params)</pre>
+<pre class="programlisting">void	<a href="#xsltApplyStripSpaces">xsltApplyStripSpaces</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node)</pre>
+<pre class="programlisting">xmlDocPtr	<a href="#xsltApplyStylesheet">xsltApplyStylesheet</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc, <br />					 const char ** params)</pre>
+<pre class="programlisting">xmlDocPtr	<a href="#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc, <br />					 const char ** params, <br />					 const char * output, <br />					 FILE * profile, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> userCtxt)</pre>
+<pre class="programlisting">void	<a href="#xsltApplyTemplates">xsltApplyTemplates</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltAttribute">xsltAttribute</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltCallTemplate">xsltCallTemplate</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltChoose">xsltChoose</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltComment">xsltComment</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltCopy">xsltCopy</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltCopyOf">xsltCopyOf</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">xmlNodePtr	<a href="#xsltCopyTextString">xsltCopyTextString</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr target, <br />					 const xmlChar * string, <br />					 int noescape)</pre>
+<pre class="programlisting">void	<a href="#xsltDocumentElem">xsltDocumentElem</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltElement">xsltElement</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltForEach">xsltForEach</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeTransformContext">xsltFreeTransformContext</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">int	<a href="#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a>		(void)</pre>
+<pre class="programlisting">void	<a href="#xsltIf">xsltIf</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>	<a href="#xsltNewTransformContext">xsltNewTransformContext</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 xmlDocPtr doc)</pre>
+<pre class="programlisting">void	<a href="#xsltNumber">xsltNumber</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltProcessingInstruction">xsltProcessingInstruction</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">xmlDocPtr	<a href="#xsltProfileStylesheet">xsltProfileStylesheet</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc, <br />					 const char ** params, <br />					 FILE * output)</pre>
+<pre class="programlisting">void	<a href="#xsltRegisterAllElement">xsltRegisterAllElement</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">int	<a href="#xsltRunStylesheet">xsltRunStylesheet</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc, <br />					 const char ** params, <br />					 const char * output, <br />					 xmlSAXHandlerPtr SAX, <br />					 xmlOutputBufferPtr IObuf)</pre>
+<pre class="programlisting">int	<a href="#xsltRunStylesheetUser">xsltRunStylesheetUser</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc, <br />					 const char ** params, <br />					 const char * output, <br />					 xmlSAXHandlerPtr SAX, <br />					 xmlOutputBufferPtr IObuf, <br />					 FILE * profile, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> userCtxt)</pre>
+<pre class="programlisting">void	<a href="#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a>		(int xinclude)</pre>
+<pre class="programlisting">void	<a href="#xsltSort">xsltSort</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltText">xsltText</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<pre class="programlisting">void	<a href="#xsltValueOf">xsltValueOf</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)</pre>
+<h2>Description</h2>
+<h3><a name="xslHandleDebugger" id="xslHandleDebugger"></a>Function: xslHandleDebugger</h3><pre class="programlisting">void	xslHandleDebugger		(xmlNodePtr cur, <br />					 xmlNodePtr node, <br />					 <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>If either cur or node are a breakpoint, or <a href="libxslt-xsltutils.html#xslDebugStatus">xslDebugStatus</a> in state where debugging must occcur at this time then transfer control to the xslDebugBreak function</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>source node being executed</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>data node being processed</td></tr><tr><td><span class="term"><i><tt>templ</tt></i>:</span></td><td>temlate that applies to node</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the xslt transform context</td></tr></tbody></table></div><h3><a name="xsltApplyImports" id="xsltApplyImports"></a>Function: xsltApplyImports</h3><pre class="programlisting">void	xsltApplyImports		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt apply-imports node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt apply-imports node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltApplyOneTemplate" id="xsltApplyOneTemplate"></a>Function: xsltApplyOneTemplate</h3><pre class="programlisting">void	xsltApplyOneTemplate		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr list, <br />					 <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br />					 <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> params)<br />
+</pre><p>Process the apply-templates node on the source node, if params are passed they are pushed on the variable stack but not popped, it's left to the caller to handle them after return (they may be reused).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>the template replacement nodelist</td></tr><tr><td><span class="term"><i><tt>templ</tt></i>:</span></td><td>if is this a real template processing, the template processed</td></tr><tr><td><span class="term"><i><tt>params</tt></i>:</span></td><td>a set of parameters for the template or NULL</td></tr></tbody></table></div><h3><a name="xsltApplyStripSpaces" id="xsltApplyStripSpaces"></a>Function: xsltApplyStripSpaces</h3><pre class="programlisting">void	xsltApplyStripSpaces		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node)<br />
+</pre><p>Strip the unwanted ignorable spaces from the input tree</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the root of the XML tree</td></tr></tbody></table></div><h3><a name="xsltApplyStylesheet" id="xsltApplyStylesheet"></a>Function: xsltApplyStylesheet</h3><pre class="programlisting">xmlDocPtr	xsltApplyStylesheet	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc, <br />					 const char ** params)<br />
+</pre><p>Apply the stylesheet to the document NOTE: This may lead to a non-wellformed output XML wise !</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated arry of parameters names/values tuples</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the result document or NULL in case of error</td></tr></tbody></table></div><h3><a name="xsltApplyStylesheetUser" id="xsltApplyStylesheetUser"></a>Function: xsltApplyStylesheetUser</h3><pre class="programlisting">xmlDocPtr	xsltApplyStylesheetUser	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc, <br />					 const char ** params, <br />					 const char * output, <br />					 FILE * profile, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> userCtxt)<br />
+</pre><p>Apply the stylesheet to the document and allow the user to provide its own transformation context.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated array of parameters names/values tuples</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the targetted output</td></tr><tr><td><span class="term"><i><tt>profile</tt></i>:</span></td><td>profile FILE * output or NULL</td></tr><tr><td><span class="term"><i><tt>userCtxt</tt></i>:</span></td><td>user provided transform context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the result document or NULL in case of error</td></tr></tbody></table></div><h3><a name="xsltApplyTemplates" id="xsltApplyTemplates"></a>Function: xsltApplyTemplates</h3><pre class="programlisting">void	xsltApplyTemplates		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the apply-templates node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the apply-templates node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltAttribute" id="xsltAttribute"></a>Function: xsltAttribute</h3><pre class="programlisting">void	xsltAttribute			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt attribute node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt attribute node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltCallTemplate" id="xsltCallTemplate"></a>Function: xsltCallTemplate</h3><pre class="programlisting">void	xsltCallTemplate		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt call-template node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt call-template node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltChoose" id="xsltChoose"></a>Function: xsltChoose</h3><pre class="programlisting">void	xsltChoose			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt choose node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt choose node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltComment" id="xsltComment"></a>Function: xsltComment</h3><pre class="programlisting">void	xsltComment			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt comment node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt comment node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltCopy" id="xsltCopy"></a>Function: xsltCopy</h3><pre class="programlisting">void	xsltCopy			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt copy node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt copy node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltCopyOf" id="xsltCopyOf"></a>Function: xsltCopyOf</h3><pre class="programlisting">void	xsltCopyOf			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt copy-of node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt copy-of node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltCopyTextString" id="xsltCopyTextString"></a>Function: xsltCopyTextString</h3><pre class="programlisting">xmlNodePtr	xsltCopyTextString	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr target, <br />					 const xmlChar * string, <br />					 int noescape)<br />
+</pre><p>Create a text node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the element where the text will be attached</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the text string</td></tr><tr><td><span class="term"><i><tt>noescape</tt></i>:</span></td><td>should disable-escaping be activated for this text node.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xsltDocumentElem" id="xsltDocumentElem"></a>Function: xsltDocumentElem</h3><pre class="programlisting">void	xsltDocumentElem		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process an EXSLT/XSLT-1.1 document element</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT processing context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>The current node</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the instruction in the stylesheet</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltElement" id="xsltElement"></a>Function: xsltElement</h3><pre class="programlisting">void	xsltElement			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt element node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt element node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltForEach" id="xsltForEach"></a>Function: xsltForEach</h3><pre class="programlisting">void	xsltForEach			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt for-each node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt for-each node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltFreeTransformContext" id="xsltFreeTransformContext"></a>Function: xsltFreeTransformContext</h3><pre class="programlisting">void	xsltFreeTransformContext	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Free up the memory allocated by @ctxt</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT parser context</td></tr></tbody></table></div><h3><a name="xsltGetXIncludeDefault" id="xsltGetXIncludeDefault"></a>Function: xsltGetXIncludeDefault</h3><pre class="programlisting">int	xsltGetXIncludeDefault		(void)<br />
+</pre><p>Provides the default state for XInclude processing</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if there is no processing 1 otherwise</td></tr></tbody></table></div><h3><a name="xsltIf" id="xsltIf"></a>Function: xsltIf</h3><pre class="programlisting">void	xsltIf			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt if node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt if node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltNewTransformContext" id="xsltNewTransformContext"></a>Function: xsltNewTransformContext</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>	xsltNewTransformContext	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 xmlDocPtr doc)<br />
+</pre><p>Create a new XSLT TransformContext</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the input document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly allocated <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xsltNumber" id="xsltNumber"></a>Function: xsltNumber</h3><pre class="programlisting">void	xsltNumber			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt number node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt number node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltProcessingInstruction" id="xsltProcessingInstruction"></a>Function: xsltProcessingInstruction</h3><pre class="programlisting">void	xsltProcessingInstruction	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt processing-instruction node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt processing-instruction node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltProfileStylesheet" id="xsltProfileStylesheet"></a>Function: xsltProfileStylesheet</h3><pre class="programlisting">xmlDocPtr	xsltProfileStylesheet	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc, <br />					 const char ** params, <br />					 FILE * output)<br />
+</pre><p>Apply the stylesheet to the document and dump the profiling to the given output.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated arry of parameters names/values tuples</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>a FILE * for the profiling output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the result document or NULL in case of error</td></tr></tbody></table></div><h3><a name="xsltRegisterAllElement" id="xsltRegisterAllElement"></a>Function: xsltRegisterAllElement</h3><pre class="programlisting">void	xsltRegisterAllElement		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Registers all default XSLT elements in this context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div><h3><a name="xsltRunStylesheet" id="xsltRunStylesheet"></a>Function: xsltRunStylesheet</h3><pre class="programlisting">int	xsltRunStylesheet		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc, <br />					 const char ** params, <br />					 const char * output, <br />					 xmlSAXHandlerPtr SAX, <br />					 xmlOutputBufferPtr IObuf)<br />
+</pre><p>Apply the stylesheet to the document and generate the output according to @output @SAX and @IObuf. It's an error to specify both @SAX and @IObuf. NOTE: This may lead to a non-wellformed output XML wise ! NOTE: This may also result in multiple files being generated NOTE: using IObuf, the result encoding used will be the one used for creating the output buffer, use the following macro to read it from the stylesheet XSLT_GET_IMPORT_PTR(encoding, style, encoding) NOTE: using SAX, any encoding specified in the stylesheet will be lost since the interface uses only UTF8</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated array of parameters names/values tuples</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the URL/filename ot the generated resource if available</td></tr><tr><td><span class="term"><i><tt>SAX</tt></i>:</span></td><td>a SAX handler for progressive callback output (not implemented yet)</td></tr><tr><td><span class="term"><i><tt>IObuf</tt></i>:</span></td><td>an output buffer for progressive output (not implemented yet)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written to the main resource or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltRunStylesheetUser" id="xsltRunStylesheetUser"></a>Function: xsltRunStylesheetUser</h3><pre class="programlisting">int	xsltRunStylesheetUser		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlDocPtr doc, <br />					 const char ** params, <br />					 const char * output, <br />					 xmlSAXHandlerPtr SAX, <br />					 xmlOutputBufferPtr IObuf, <br />					 FILE * profile, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> userCtxt)<br />
+</pre><p>Apply the stylesheet to the document and generate the output according to @output @SAX and @IObuf. It's an error to specify both @SAX and @IObuf. NOTE: This may lead to a non-wellformed output XML wise ! NOTE: This may also result in multiple files being generated NOTE: using IObuf, the result encoding used will be the one used for creating the output buffer, use the following macro to read it from the stylesheet XSLT_GET_IMPORT_PTR(encoding, style, encoding) NOTE: using SAX, any encoding specified in the stylesheet will be lost since the interface uses only UTF8</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated array of parameters names/values tuples</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the URL/filename ot the generated resource if available</td></tr><tr><td><span class="term"><i><tt>SAX</tt></i>:</span></td><td>a SAX handler for progressive callback output (not implemented yet)</td></tr><tr><td><span class="term"><i><tt>IObuf</tt></i>:</span></td><td>an output buffer for progressive output (not implemented yet)</td></tr><tr><td><span class="term"><i><tt>profile</tt></i>:</span></td><td>profile FILE * output or NULL</td></tr><tr><td><span class="term"><i><tt>userCtxt</tt></i>:</span></td><td>user provided transform context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of by written to the main resource or -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltSetXIncludeDefault" id="xsltSetXIncludeDefault"></a>Function: xsltSetXIncludeDefault</h3><pre class="programlisting">void	xsltSetXIncludeDefault		(int xinclude)<br />
+</pre><p>Set whether XInclude should be processed on document being loaded by default</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>xinclude</tt></i>:</span></td><td>whether to do XInclude processing</td></tr></tbody></table></div><h3><a name="xsltSort" id="xsltSort"></a>Function: xsltSort</h3><pre class="programlisting">void	xsltSort			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>function attached to xsl:sort nodes, but this should not be called directly</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt sort node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltText" id="xsltText"></a>Function: xsltText</h3><pre class="programlisting">void	xsltText			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt text node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt text node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><h3><a name="xsltValueOf" id="xsltValueOf"></a>Function: xsltValueOf</h3><pre class="programlisting">void	xsltValueOf			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a> comp)<br />
+</pre><p>Process the xslt value-of node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt value-of node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed information</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-variables.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-variables.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-variables.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module variables from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module variables from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-transform.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-transform.html">transform</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-xslt.html">xslt</a></th><td><a accesskey="n" href="libxslt-xslt.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the variable matching and lookup. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a></pre><pre class="programlisting">int	<a href="#xsltAddStackElemList">xsltAddStackElemList</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elems)</pre>
+<pre class="programlisting">int	<a href="#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">int	<a href="#xsltEvalOneUserParam">xsltEvalOneUserParam</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * value)</pre>
+<pre class="programlisting">int	<a href="#xsltEvalUserParams">xsltEvalUserParams</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const char ** params)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void	<a href="#xsltParseGlobalParam">xsltParseGlobalParam</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)</pre>
+<pre class="programlisting">void	<a href="#xsltParseGlobalVariable">xsltParseGlobalVariable</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a>	<a href="#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />							 xmlNodePtr cur)</pre>
+<pre class="programlisting">void	<a href="#xsltParseStylesheetParam">xsltParseStylesheetParam</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr cur)</pre>
+<pre class="programlisting">void	<a href="#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr cur)</pre>
+<pre class="programlisting">int	<a href="#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * value)</pre>
+<pre class="programlisting">int	<a href="#xsltQuoteUserParams">xsltQuoteUserParams</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const char ** params)</pre>
+<pre class="programlisting">xmlXPathObjectPtr	<a href="#xsltVariableLookup">xsltVariableLookup</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 const xmlChar * name, <br />						 const xmlChar * ns_uri)</pre>
+<pre class="programlisting">xmlXPathObjectPtr	<a href="#xsltXPathVariableLookup">xsltXPathVariableLookup</a>	(void * ctxt, <br />						 const xmlChar * name, <br />						 const xmlChar * ns_uri)</pre>
+<h2>Description</h2>
+<h3><a name="XSLT_REGISTER_VARIABLE_LOOKUP" id="XSLT_REGISTER_VARIABLE_LOOKUP"></a>Macro: XSLT_REGISTER_VARIABLE_LOOKUP</h3><pre>#define XSLT_REGISTER_VARIABLE_LOOKUP</pre><p>Registering macro, not general purpose at all but used in different modules.</p>
+<h3><a name="xsltAddStackElemList" id="xsltAddStackElemList"></a>Function: xsltAddStackElemList</h3><pre class="programlisting">int	xsltAddStackElemList		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elems)<br />
+</pre><p>add the new element list at this level of the stack.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>xn XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>elems</tt></i>:</span></td><td>a stack element list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xsltEvalGlobalVariables" id="xsltEvalGlobalVariables"></a>Function: xsltEvalGlobalVariables</h3><pre class="programlisting">int	xsltEvalGlobalVariables		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Evaluate the global variables of a stylesheet. This need to be done on parsed stylesheets before starting to apply transformations</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="xsltEvalOneUserParam" id="xsltEvalOneUserParam"></a>Function: xsltEvalOneUserParam</h3><pre class="programlisting">int	xsltEvalOneUserParam		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * value)<br />
+</pre><p>This is normally called from <a href="libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a> to process a single parameter from a list of parameters. The @value is evaluated as an XPath expression and the result is stored in the context's global variable/parameter hash table. To have a parameter treated literally (not as an XPath expression) use <a href="libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a> (or xsltQuoteOneUserParam). For more details see description of xsltProcessOneUserParamInternal.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>a null terminated string giving the name of the parameter</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a null terminated string giving the XPath expression to be evaluated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltEvalUserParams" id="xsltEvalUserParams"></a>Function: xsltEvalUserParams</h3><pre class="programlisting">int	xsltEvalUserParams		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const char ** params)<br />
+</pre><p>Evaluate the global variables of a stylesheet. This needs to be done on parsed stylesheets before starting to apply transformations. Each of the parameters is evaluated as an XPath expression and stored in the global variables/parameter hash table. If you want your parameter used literally, use xsltQuoteUserParams.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated array of parameters name/value tuples</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error</td></tr></tbody></table></div><h3><a name="xsltFreeGlobalVariables" id="xsltFreeGlobalVariables"></a>Function: xsltFreeGlobalVariables</h3><pre class="programlisting">void	xsltFreeGlobalVariables		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Free up the data associated to the global variables its value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr></tbody></table></div><h3><a name="xsltParseGlobalParam" id="xsltParseGlobalParam"></a>Function: xsltParseGlobalParam</h3><pre class="programlisting">void	xsltParseGlobalParam		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)<br />
+</pre><p>parse an XSLT transformation param declaration and record its value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the "param" element</td></tr></tbody></table></div><h3><a name="xsltParseGlobalVariable" id="xsltParseGlobalVariable"></a>Function: xsltParseGlobalVariable</h3><pre class="programlisting">void	xsltParseGlobalVariable		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)<br />
+</pre><p>parse an XSLT transformation variable declaration and record its value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the "variable" element</td></tr></tbody></table></div><h3><a name="xsltParseStylesheetCallerParam" id="xsltParseStylesheetCallerParam"></a>Function: xsltParseStylesheetCallerParam</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a>	xsltParseStylesheetCallerParam	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />							 xmlNodePtr cur)<br />
+</pre><p>parse an XSLT transformation param declaration, compute its value but doesn't record it.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the "param" element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> or NULL</td></tr></tbody></table></div><h3><a name="xsltParseStylesheetParam" id="xsltParseStylesheetParam"></a>Function: xsltParseStylesheetParam</h3><pre class="programlisting">void	xsltParseStylesheetParam	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr cur)<br />
+</pre><p>parse an XSLT transformation param declaration and record its value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the "param" element</td></tr></tbody></table></div><h3><a name="xsltParseStylesheetVariable" id="xsltParseStylesheetVariable"></a>Function: xsltParseStylesheetVariable</h3><pre class="programlisting">void	xsltParseStylesheetVariable	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr cur)<br />
+</pre><p>parse an XSLT transformation variable declaration and record its value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the "variable" element</td></tr></tbody></table></div><h3><a name="xsltQuoteOneUserParam" id="xsltQuoteOneUserParam"></a>Function: xsltQuoteOneUserParam</h3><pre class="programlisting">int	xsltQuoteOneUserParam		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const xmlChar * name, <br />					 const xmlChar * value)<br />
+</pre><p>This is normally called from <a href="libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a> to process a single parameter from a list of parameters. The @value is stored in the context's global variable/parameter hash table.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>a null terminated string giving the name of the parameter</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a null terminated string giving the parameter value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltQuoteUserParams" id="xsltQuoteUserParams"></a>Function: xsltQuoteUserParams</h3><pre class="programlisting">int	xsltQuoteUserParams		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 const char ** params)<br />
+</pre><p>Similar to xsltEvalUserParams, but the values are treated literally and are * *not* evaluated as XPath expressions. This should be done on parsed stylesheets before starting to apply transformations.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated arry of parameters names/values tuples</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltVariableLookup" id="xsltVariableLookup"></a>Function: xsltVariableLookup</h3><pre class="programlisting">xmlXPathObjectPtr	xsltVariableLookup	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 const xmlChar * name, <br />						 const xmlChar * ns_uri)<br />
+</pre><p>Search in the Variable array of the context for the given variable value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the variable name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the variable namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value or NULL if not found</td></tr></tbody></table></div><h3><a name="xsltXPathVariableLookup" id="xsltXPathVariableLookup"></a>Function: xsltXPathVariableLookup</h3><pre class="programlisting">xmlXPathObjectPtr	xsltXPathVariableLookup	(void * ctxt, <br />						 const xmlChar * name, <br />						 const xmlChar * ns_uri)<br />
+</pre><p>This is the entry point when a varibale is needed by the XPath interpretor.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a void * but the the XSLT transformation context actually</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the variable name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the variable namespace URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value or NULL if not found</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xslt.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xslt.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xslt.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module xslt from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module xslt from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-variables.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-variables.html">variables</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-xsltInternals.html">xsltInternals</a></th><td><a accesskey="n" href="libxslt-xsltInternals.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>Interfaces, constants and types related to the XSLT engine </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XSLT_DEFAULT_URL">XSLT_DEFAULT_URL</a></pre><pre class="programlisting">#define <a href="#XSLT_DEFAULT_VENDOR">XSLT_DEFAULT_VENDOR</a></pre><pre class="programlisting">#define <a href="#XSLT_DEFAULT_VERSION">XSLT_DEFAULT_VERSION</a></pre><pre class="programlisting">#define <a href="#XSLT_NAMESPACE">XSLT_NAMESPACE</a></pre><pre class="programlisting">#define <a href="#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a></pre><pre class="programlisting">void	<a href="#xsltCleanupGlobals">xsltCleanupGlobals</a>		(void)</pre>
+<h2>Description</h2>
+<h3><a name="XSLT_DEFAULT_URL" id="XSLT_DEFAULT_URL"></a>Macro: XSLT_DEFAULT_URL</h3><pre>#define XSLT_DEFAULT_URL</pre><p>The XSLT "vendor" URL for this processor.</p>
+<h3><a name="XSLT_DEFAULT_VENDOR" id="XSLT_DEFAULT_VENDOR"></a>Macro: XSLT_DEFAULT_VENDOR</h3><pre>#define XSLT_DEFAULT_VENDOR</pre><p>The XSLT "vendor" string for this processor.</p>
+<h3><a name="XSLT_DEFAULT_VERSION" id="XSLT_DEFAULT_VERSION"></a>Macro: XSLT_DEFAULT_VERSION</h3><pre>#define XSLT_DEFAULT_VERSION</pre><p>The default version of XSLT supported.</p>
+<h3><a name="XSLT_NAMESPACE" id="XSLT_NAMESPACE"></a>Macro: XSLT_NAMESPACE</h3><pre>#define XSLT_NAMESPACE</pre><p>The XSLT specification namespace.</p>
+<h3><a name="XSLT_PARSE_OPTIONS" id="XSLT_PARSE_OPTIONS"></a>Macro: XSLT_PARSE_OPTIONS</h3><pre>#define XSLT_PARSE_OPTIONS</pre><p>The set of options to pass to an xmlReadxxx when loading files for XSLT consumption.</p>
+<h3><a name="xsltCleanupGlobals" id="xsltCleanupGlobals"></a>Function: xsltCleanupGlobals</h3><pre class="programlisting">void	xsltCleanupGlobals		(void)<br />
+</pre><p>Unregister all global variables set up by the XSLT library</p>
+<p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltInternals.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltInternals.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltInternals.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,357 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module xsltInternals from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module xsltInternals from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-xslt.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-xslt.html">xslt</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-xsltexports.html">xsltexports</a></th><td><a accesskey="n" href="libxslt-xsltexports.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>Internal data structures, constants and functions used by the XSLT engine. They are not part of the API or ABI, i.e. they can change without prior notice, use carefully. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#CHECK_STOPPED">CHECK_STOPPED</a></pre><pre class="programlisting">#define <a href="#CHECK_STOPPED0">CHECK_STOPPED0</a></pre><pre class="programlisting">#define <a href="#CHECK_STOPPEDE">CHECK_STOPPEDE</a></pre><pre class="programlisting">#define <a href="#XML_CAST_FPTR">XML_CAST_FPTR</a></pre><pre class="programlisting">#define <a href="#XSLT_MAX_SORT">XSLT_MAX_SORT</a></pre><pre class="programlisting">#define <a href="#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a></pre><pre class="programlisting">#define <a href="#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a></pre><pre class="programlisting">#define <a href="#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a></pre><pre class="programlisting">#define <a href="#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a></pre><pre class="programlisting">Structure <a href="#xsltDecimalFormat">xsltDecimalFormat</a><br />struct _xsltDecimalFormat
+</pre><pre class="programlisting">Typedef <a href="libxslt-xsltInternals.html#xsltDecimalFormat">xsltDecimalFormat</a> * <a name="xsltDecimalFormatPtr" id="xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xsltDocument">xsltDocument</a><br />struct _xsltDocument
+</pre><pre class="programlisting">Typedef <a href="libxslt-xsltInternals.html#xsltDocument">xsltDocument</a> * <a name="xsltDocumentPtr" id="xsltDocumentPtr">xsltDocumentPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xsltElemPreComp">xsltElemPreComp</a><br />struct _xsltElemPreComp
+</pre><pre class="programlisting">Typedef <a href="libxslt-xsltInternals.html#xsltElemPreComp">xsltElemPreComp</a> * <a name="xsltElemPreCompPtr" id="xsltElemPreCompPtr">xsltElemPreCompPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xsltOutputType">xsltOutputType</a>
+</pre><pre class="programlisting">Structure <a href="#xsltRuntimeExtra">xsltRuntimeExtra</a><br />struct _xsltRuntimeExtra
+</pre><pre class="programlisting">Typedef <a href="libxslt-xsltInternals.html#xsltRuntimeExtra">xsltRuntimeExtra</a> * <a name="xsltRuntimeExtraPtr" id="xsltRuntimeExtraPtr">xsltRuntimeExtraPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xsltStackElem">xsltStackElem</a><br />struct _xsltStackElem
+</pre><pre class="programlisting">Typedef <a href="libxslt-xsltInternals.html#xsltStackElem">xsltStackElem</a> * <a name="xsltStackElemPtr" id="xsltStackElemPtr">xsltStackElemPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xsltStylePreComp">xsltStylePreComp</a><br />struct _xsltStylePreComp
+</pre><pre class="programlisting">Typedef <a href="libxslt-xsltInternals.html#xsltStylePreComp">xsltStylePreComp</a> * <a name="xsltStylePreCompPtr" id="xsltStylePreCompPtr">xsltStylePreCompPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xsltStyleType">xsltStyleType</a>
+</pre><pre class="programlisting">Structure <a href="#xsltStylesheet">xsltStylesheet</a><br />struct _xsltStylesheet
+</pre><pre class="programlisting">Typedef <a href="libxslt-xsltInternals.html#xsltStylesheet">xsltStylesheet</a> * <a name="xsltStylesheetPtr" id="xsltStylesheetPtr">xsltStylesheetPtr</a>
+</pre><pre class="programlisting">Structure <a href="#xsltTemplate">xsltTemplate</a><br />struct _xsltTemplate
+</pre><pre class="programlisting">Typedef <a href="libxslt-xsltInternals.html#xsltTemplate">xsltTemplate</a> * <a name="xsltTemplatePtr" id="xsltTemplatePtr">xsltTemplatePtr</a>
+</pre><pre class="programlisting">Structure <a href="#xsltTransformContext">xsltTransformContext</a><br />struct _xsltTransformContext
+</pre><pre class="programlisting">Typedef <a href="libxslt-xsltInternals.html#xsltTransformContext">xsltTransformContext</a> * <a name="xsltTransformContextPtr" id="xsltTransformContextPtr">xsltTransformContextPtr</a>
+</pre><pre class="programlisting">Enum <a href="#xsltTransformState">xsltTransformState</a>
+</pre><pre class="programlisting">int	<a href="#xsltAllocateExtra">xsltAllocateExtra</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">int	<a href="#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void	<a href="#xsltCompileAttr">xsltCompileAttr</a>			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlAttrPtr attr)</pre>
+<pre class="programlisting">xmlDocPtr	<a href="#xsltCreateRVT">xsltCreateRVT</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>	<a href="#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> sheet, <br />							 xmlChar * name)</pre>
+<pre class="programlisting">Function type: <a href="#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a>
+void	<a href="#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a>	(<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp)
+</pre>
+<pre class="programlisting">xmlChar *	<a href="#xsltEvalAVT">xsltEvalAVT</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 void * avt, <br />					 xmlNodePtr node)</pre>
+<pre class="programlisting">xmlXPathError	<a href="#xsltFormatNumberConversion">xsltFormatNumberConversion</a>	(<a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> self, <br />						 xmlChar * format, <br />						 double number, <br />						 xmlChar ** result)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeAVTList">xsltFreeAVTList</a>			(void * avt)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeRVTs">xsltFreeRVTs</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeStackElemList">xsltFreeStackElemList</a>		(<a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elem)</pre>
+<pre class="programlisting">void	<a href="#xsltFreeStylesheet">xsltFreeStylesheet</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> sheet)</pre>
+<pre class="programlisting">int	<a href="#xsltIsBlank">xsltIsBlank</a>			(xmlChar * str)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	<a href="#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a>	(xmlDocPtr doc)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	<a href="#xsltNewStylesheet">xsltNewStylesheet</a>	(void)</pre>
+<pre class="programlisting">void	<a href="#xsltNumberFormat">xsltNumberFormat</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a> data, <br />					 xmlNodePtr node)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	<a href="#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a>	(xmlDocPtr doc)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	<a href="#xsltParseStylesheetFile">xsltParseStylesheetFile</a>	(const xmlChar * filename)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	<a href="#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a>	(xmlDocPtr doc, <br />							 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">void	<a href="#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)</pre>
+<pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	<a href="#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> ret, <br />							 xmlDocPtr doc)</pre>
+<pre class="programlisting">void	<a href="#xsltParseTemplateContent">xsltParseTemplateContent</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr templ)</pre>
+<pre class="programlisting">int	<a href="#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlDocPtr RVT)</pre>
+<pre class="programlisting">int	<a href="#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlDocPtr RVT)</pre>
+<pre class="programlisting">Function type: <a href="#xsltSortFunc">xsltSortFunc</a>
+void	<a href="#xsltSortFunc">xsltSortFunc</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr * sorts, <br />					 int nbsorts)
+</pre>
+<pre class="programlisting">Function type: <a href="#xsltTransformFunction">xsltTransformFunction</a>
+void	<a href="#xsltTransformFunction">xsltTransformFunction</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp)
+</pre>
+<h2>Description</h2>
+<h3><a name="CHECK_STOPPED" id="CHECK_STOPPED"></a>Macro: CHECK_STOPPED</h3><pre>#define CHECK_STOPPED</pre><p>Macro to check if the XSLT processing should be stopped. Will return from the function.</p>
+<h3><a name="CHECK_STOPPED0" id="CHECK_STOPPED0"></a>Macro: CHECK_STOPPED0</h3><pre>#define CHECK_STOPPED0</pre><p>Macro to check if the XSLT processing should be stopped. Will return from the function with a 0 value.</p>
+<h3><a name="CHECK_STOPPEDE" id="CHECK_STOPPEDE"></a>Macro: CHECK_STOPPEDE</h3><pre>#define CHECK_STOPPEDE</pre><p>Macro to check if the XSLT processing should be stopped. Will goto the error: label.</p>
+<h3><a name="XML_CAST_FPTR" id="XML_CAST_FPTR"></a>Macro: XML_CAST_FPTR</h3><pre>#define XML_CAST_FPTR</pre><p>Macro to do a casting from an object pointer to a function pointer without encountering a warning from gcc #define XML_CAST_FPTR(fptr) (*(void **)(&amp;fptr)) This macro violated ISO C aliasing rules (gcc4 on s390 broke) so it is disabled now</p>
+<h3><a name="XSLT_MAX_SORT" id="XSLT_MAX_SORT"></a>Macro: XSLT_MAX_SORT</h3><pre>#define XSLT_MAX_SORT</pre><p>Max number of specified xsl:sort on an element.</p>
+<h3><a name="XSLT_PAT_NO_PRIORITY" id="XSLT_PAT_NO_PRIORITY"></a>Macro: XSLT_PAT_NO_PRIORITY</h3><pre>#define XSLT_PAT_NO_PRIORITY</pre><p>Specific value for pattern without priority expressed.</p>
+<h3><a name="XSLT_RUNTIME_EXTRA" id="XSLT_RUNTIME_EXTRA"></a>Macro: XSLT_RUNTIME_EXTRA</h3><pre>#define XSLT_RUNTIME_EXTRA</pre><p>Macro used to define extra information stored in the context</p>
+<h3><a name="XSLT_RUNTIME_EXTRA_FREE" id="XSLT_RUNTIME_EXTRA_FREE"></a>Macro: XSLT_RUNTIME_EXTRA_FREE</h3><pre>#define XSLT_RUNTIME_EXTRA_FREE</pre><p>Macro used to free extra information stored in the context</p>
+<h3><a name="XSLT_RUNTIME_EXTRA_LST" id="XSLT_RUNTIME_EXTRA_LST"></a>Macro: XSLT_RUNTIME_EXTRA_LST</h3><pre>#define XSLT_RUNTIME_EXTRA_LST</pre><p>Macro used to access extra information stored in the context</p>
+<h3><a name="xsltDecimalFormat" id="xsltDecimalFormat">Structure xsltDecimalFormat</a></h3><pre class="programlisting">Structure xsltDecimalFormat<br />struct _xsltDecimalFormat {
+    struct _xsltDecimalFormat *	next	: chained list
+    xmlChar *	name	: Used for interpretation of pattern
+    xmlChar *	digit
+    xmlChar *	patternSeparator	: May appear in result
+    xmlChar *	minusSign
+    xmlChar *	infinity
+    xmlChar *	noNumber	: Not-a-number Used for interpretation of
+    xmlChar *	decimalPoint
+    xmlChar *	grouping
+    xmlChar *	percent
+    xmlChar *	permille
+    xmlChar *	zeroDigit
+}</pre><h3><a name="xsltDocument" id="xsltDocument">Structure xsltDocument</a></h3><pre class="programlisting">Structure xsltDocument<br />struct _xsltDocument {
+    struct _xsltDocument *	next	: documents are kept in a chained list
+    int	main	: is this the main document
+    xmlDocPtr	doc	: the parsed document
+    void *	keys	: key tables storage
+    struct _xsltDocument *	includes	: subsidiary includes
+    int	preproc	: pre-processing already done
+}</pre><h3><a name="xsltElemPreComp" id="xsltElemPreComp">Structure xsltElemPreComp</a></h3><pre class="programlisting">Structure xsltElemPreComp<br />struct _xsltElemPreComp {
+    <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	next	: chained list
+    <a href="libxslt-xsltInternals.html#xsltStyleType">xsltStyleType</a>	type	: type of the element
+    <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>	func	: handling function
+    xmlNodePtr	inst	: the instruction end of common part
+    <a href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a>	free	: the deallocator
+}</pre><h3>Enum <a name="xsltOutputType" id="xsltOutputType">xsltOutputType</a></h3><pre class="programlisting">Enum xsltOutputType {
+    <a name="XSLT_OUTPUT_XML" id="XSLT_OUTPUT_XML">XSLT_OUTPUT_XML</a> = 0
+    <a name="XSLT_OUTPUT_HTML" id="XSLT_OUTPUT_HTML">XSLT_OUTPUT_HTML</a> = 1
+    <a name="XSLT_OUTPUT_TEXT" id="XSLT_OUTPUT_TEXT">XSLT_OUTPUT_TEXT</a> = 2
+}
+</pre><h3><a name="xsltRuntimeExtra" id="xsltRuntimeExtra">Structure xsltRuntimeExtra</a></h3><pre class="programlisting">Structure xsltRuntimeExtra<br />struct _xsltRuntimeExtra {
+    void *	info	: pointer to the extra data
+    xmlFreeFunc	deallocate	: pointer to the deallocation routine
+}</pre><h3><a name="xsltStackElem" id="xsltStackElem">Structure xsltStackElem</a></h3><pre class="programlisting">Structure xsltStackElem<br />struct _xsltStackElem {
+    struct _xsltStackElem *	next	: chained list
+    <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a>	comp	: the compiled form
+    int	computed	: was the evaluation done
+    const xmlChar *	name	: the local part of the name QName
+    const xmlChar *	nameURI	: the URI part of the name QName
+    const xmlChar *	select	: the eval string
+    xmlNodePtr	tree	: the tree if no eval string or the locat
+    xmlXPathObjectPtr	value	: The value if computed
+}</pre><h3><a name="xsltStylePreComp" id="xsltStylePreComp">Structure xsltStylePreComp</a></h3><pre class="programlisting">Structure xsltStylePreComp<br />struct _xsltStylePreComp {
+    <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	next	: chained list
+    <a href="libxslt-xsltInternals.html#xsltStyleType">xsltStyleType</a>	type	: type of the element
+    <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>	func	: handling function
+    xmlNodePtr	inst	: * Pre computed values. *
+    const xmlChar *	stype	: sort
+    int	has_stype	: sort
+    int	number	: sort
+    const xmlChar *	order	: sort
+    int	has_order	: sort
+    int	descending	: sort
+    const xmlChar *	lang	: sort
+    int	has_lang	: sort
+    const xmlChar *	case_order	: sort
+    int	lower_first	: sort
+    const xmlChar *	use	: copy, element
+    int	has_use	: copy, element
+    int	noescape	: text
+    const xmlChar *	name	: element, attribute, pi
+    int	has_name	: element, attribute, pi
+    const xmlChar *	ns	: element
+    int	has_ns	: element
+    const xmlChar *	mode	: apply-templates
+    const xmlChar *	modeURI	: apply-templates
+    const xmlChar *	test	: if
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>	templ	: call-template
+    const xmlChar *	select	: sort, copy-of, value-of, apply-template
+    int	ver11	: document
+    const xmlChar *	filename	: document URL
+    int	has_filename	: document
+    <a href="libxslt-numbersInternals.html#xsltNumberData">xsltNumberData</a>	numdata	: number
+    xmlXPathCompExprPtr	comp	: a precompiled XPath expression
+    xmlNsPtr *	nsList	: the namespaces in scope
+    int	nsNr	: the number of namespaces in scope
+}</pre><h3>Enum <a name="xsltStyleType" id="xsltStyleType">xsltStyleType</a></h3><pre class="programlisting">Enum xsltStyleType {
+    <a name="XSLT_FUNC_COPY" id="XSLT_FUNC_COPY">XSLT_FUNC_COPY</a> = 1
+    <a name="XSLT_FUNC_SORT" id="XSLT_FUNC_SORT">XSLT_FUNC_SORT</a> = 2
+    <a name="XSLT_FUNC_TEXT" id="XSLT_FUNC_TEXT">XSLT_FUNC_TEXT</a> = 3
+    <a name="XSLT_FUNC_ELEMENT" id="XSLT_FUNC_ELEMENT">XSLT_FUNC_ELEMENT</a> = 4
+    <a name="XSLT_FUNC_ATTRIBUTE" id="XSLT_FUNC_ATTRIBUTE">XSLT_FUNC_ATTRIBUTE</a> = 5
+    <a name="XSLT_FUNC_COMMENT" id="XSLT_FUNC_COMMENT">XSLT_FUNC_COMMENT</a> = 6
+    <a name="XSLT_FUNC_PI" id="XSLT_FUNC_PI">XSLT_FUNC_PI</a> = 7
+    <a name="XSLT_FUNC_COPYOF" id="XSLT_FUNC_COPYOF">XSLT_FUNC_COPYOF</a> = 8
+    <a name="XSLT_FUNC_VALUEOF" id="XSLT_FUNC_VALUEOF">XSLT_FUNC_VALUEOF</a> = 9
+    <a name="XSLT_FUNC_NUMBER" id="XSLT_FUNC_NUMBER">XSLT_FUNC_NUMBER</a> = 10
+    <a name="XSLT_FUNC_APPLYIMPORTS" id="XSLT_FUNC_APPLYIMPORTS">XSLT_FUNC_APPLYIMPORTS</a> = 11
+    <a name="XSLT_FUNC_CALLTEMPLATE" id="XSLT_FUNC_CALLTEMPLATE">XSLT_FUNC_CALLTEMPLATE</a> = 12
+    <a name="XSLT_FUNC_APPLYTEMPLATES" id="XSLT_FUNC_APPLYTEMPLATES">XSLT_FUNC_APPLYTEMPLATES</a> = 13
+    <a name="XSLT_FUNC_CHOOSE" id="XSLT_FUNC_CHOOSE">XSLT_FUNC_CHOOSE</a> = 14
+    <a name="XSLT_FUNC_IF" id="XSLT_FUNC_IF">XSLT_FUNC_IF</a> = 15
+    <a name="XSLT_FUNC_FOREACH" id="XSLT_FUNC_FOREACH">XSLT_FUNC_FOREACH</a> = 16
+    <a name="XSLT_FUNC_DOCUMENT" id="XSLT_FUNC_DOCUMENT">XSLT_FUNC_DOCUMENT</a> = 17
+    <a name="XSLT_FUNC_WITHPARAM" id="XSLT_FUNC_WITHPARAM">XSLT_FUNC_WITHPARAM</a> = 18
+    <a name="XSLT_FUNC_PARAM" id="XSLT_FUNC_PARAM">XSLT_FUNC_PARAM</a> = 19
+    <a name="XSLT_FUNC_VARIABLE" id="XSLT_FUNC_VARIABLE">XSLT_FUNC_VARIABLE</a> = 20
+    <a name="XSLT_FUNC_WHEN" id="XSLT_FUNC_WHEN">XSLT_FUNC_WHEN</a> = 21
+    <a name="XSLT_FUNC_EXTENSION" id="XSLT_FUNC_EXTENSION">XSLT_FUNC_EXTENSION</a> = 22
+}
+</pre><h3><a name="xsltStylesheet" id="xsltStylesheet">Structure xsltStylesheet</a></h3><pre class="programlisting">Structure xsltStylesheet<br />struct _xsltStylesheet {
+    struct _xsltStylesheet *	parent
+    struct _xsltStylesheet *	next
+    struct _xsltStylesheet *	imports
+    <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	docList	: * General data on the style sheet docume
+    xmlDocPtr	doc	: the parsed XML stylesheet
+    xmlHashTablePtr	stripSpaces	: the hash table of the strip-space and p
+    int	stripAll	: strip-space * (1) preserve-space * (-1)
+    xmlHashTablePtr	cdataSection	: * Global variable or parameters. *
+    <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a>	variables	: * Template descriptions. *
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>	templates	: the ordered list of templates
+    void *	templatesHash	: hash table or wherever compiled templat
+    void *	rootMatch	: template based on /
+    void *	keyMatch	: template based on key()
+    void *	elemMatch	: template based on *
+    void *	attrMatch	: template based on @*
+    void *	parentMatch	: template based on ..
+    void *	textMatch	: template based on text()
+    void *	piMatch	: template based on processing-instructio
+    void *	commentMatch	: * Namespace aliases. *
+    xmlHashTablePtr	nsAliases	: * Attribute sets. *
+    xmlHashTablePtr	attributeSets	: * Namespaces. *
+    xmlHashTablePtr	nsHash	: the set of namespaces in use
+    void *	nsDefs	: * Key definitions. *
+    void *	keys	: * Output related stuff. *
+    xmlChar *	method	: the output method
+    xmlChar *	methodURI	: associated namespace if any
+    xmlChar *	version	: version string
+    xmlChar *	encoding	: encoding string
+    int	omitXmlDeclaration	: * Number formatting. *
+    <a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>	decimalFormat
+    int	standalone	: standalone = "yes" | "no"
+    xmlChar *	doctypePublic	: doctype-public string
+    xmlChar *	doctypeSystem	: doctype-system string
+    int	indent	: should output being indented
+    xmlChar *	mediaType	: * Precomputed blocks. *
+    <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>	preComps	: list of precomputed blocks
+    int	warnings	: number of warnings found at compilation
+    int	errors	: number of errors found at compilation
+    xmlChar *	exclPrefix	: last excluded prefixes
+    xmlChar **	exclPrefixTab	: array of excluded prefixes
+    int	exclPrefixNr	: number of excluded prefixes in scope
+    int	exclPrefixMax	: size of the array
+    void *	_private	: * Extensions. *
+    xmlHashTablePtr	extInfos	: the extension data
+    int	extrasNr	: * For keeping track of nested includes *
+    <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	includes	: * dictionnary: shared between stylesheet
+    xmlDictPtr	dict	: * precompiled attribute value templates.
+    void *	attVTs	: * if namespace-alias has an alias for th
+    const xmlChar *	defaultAlias	: * bypass pre-processing (already done) (
+    int	nopreproc	: * all document text strings were interna
+    int	internalized	: * Literal Result Element as Stylesheet c
+    int	literal_result
+}</pre><h3><a name="xsltTemplate" id="xsltTemplate">Structure xsltTemplate</a></h3><pre class="programlisting">Structure xsltTemplate<br />struct _xsltTemplate {
+    struct _xsltTemplate *	next	: chained list sorted by priority
+    struct _xsltStylesheet *	style	: the containing stylesheet
+    xmlChar *	match	: the matching string
+    float	priority	: as given from the stylesheet, not compu
+    xmlChar *	name	: the local part of the name QName
+    xmlChar *	nameURI	: the URI part of the name QName
+    const xmlChar *	mode	: the local part of the mode QName
+    const xmlChar *	modeURI	: the URI part of the mode QName
+    xmlNodePtr	content	: the template replacement value
+    xmlNodePtr	elem	: the source element
+    int	inheritedNsNr	: number of inherited namespaces
+    xmlNsPtr *	inheritedNs	: inherited non-excluded namespaces Profi
+    int	nbCalls	: the number of time the template was cal
+    unsigned long	time	: the time spent in this template
+}</pre><h3><a name="xsltTransformContext" id="xsltTransformContext">Structure xsltTransformContext</a></h3><pre class="programlisting">Structure xsltTransformContext<br />struct _xsltTransformContext {
+    <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	style	: the stylesheet used
+    <a href="libxslt-xsltInternals.html#xsltOutputType">xsltOutputType</a>	type	: the type of output
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>	templ	: the current template
+    int	templNr	: Nb of templates in the stack
+    int	templMax	: Size of the templtes stack
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> *	templTab	: the template stack
+    <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a>	vars	: the current variable list
+    int	varsNr	: Nb of variable list in the stack
+    int	varsMax	: Size of the variable list stack
+    <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> *	varsTab	: the variable list stack
+    int	varsBase	: * Extensions *
+    xmlHashTablePtr	extFunctions	: the extension functions
+    xmlHashTablePtr	extElements	: the extension elements
+    xmlHashTablePtr	extInfos	: the extension data
+    const xmlChar *	mode	: the current mode
+    const xmlChar *	modeURI	: the current mode URI
+    <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	docList	: the document list
+    <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	document	: the current document
+    xmlNodePtr	node	: the current node being processed
+    xmlNodeSetPtr	nodeList	: the current node list xmlNodePtr curren
+    xmlDocPtr	output	: the resulting document
+    xmlNodePtr	insert	: the insertion node
+    xmlXPathContextPtr	xpathCtxt	: the XPath context
+    <a href="libxslt-xsltInternals.html#xsltTransformState">xsltTransformState</a>	state	: * Global variables *
+    xmlHashTablePtr	globalVars	: the global variables and params
+    xmlNodePtr	inst	: the instruction in the stylesheet
+    int	xinclude	: should XInclude be processed
+    const char *	outputFile	: the output URI if known
+    int	profile	: is this run profiled
+    long	prof	: the current profiled value
+    int	profNr	: Nb of templates in the stack
+    int	profMax	: Size of the templtaes stack
+    long *	profTab	: the profile template stack
+    void *	_private	: user defined data
+    int	extrasNr	: the number of extras used
+    int	extrasMax	: the number of extras allocated
+    <a href="libxslt-xsltInternals.html#xsltRuntimeExtraPtr">xsltRuntimeExtraPtr</a>	extras	: extra per runtime informations
+    <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>	styleList	: the stylesheet docs list
+    void *	sec	: the security preferences if any
+    xmlGenericErrorFunc	error	: a specific error handler
+    void *	errctx	: context for the error handler
+    <a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a>	sortfunc	: * handling of temporary Result Value Tre
+    xmlDocPtr	tmpRVT	: list of RVT without persistance
+    xmlDocPtr	persistRVT	: list of persistant RVTs
+    int	ctxtflags	: * Speed optimization when coalescing tex
+    const xmlChar *	lasttext	: last text node content
+    unsigned int	lasttsize	: last text node size
+    unsigned int	lasttuse	: * Per Context Debugging *
+    int	debugStatus	: the context level debug status
+    unsigned long *	traceCode	: pointer to the variable holding the mas
+    int	parserOptions	: * dictionnary: shared between stylesheet
+    xmlDictPtr	dict	: * temporary storage for doc ptr, current
+    xmlDocPtr	tmpDoc	: * all document text strings are internal
+    int	internalized
+}</pre><h3>Enum <a name="xsltTransformState" id="xsltTransformState">xsltTransformState</a></h3><pre class="programlisting">Enum xsltTransformState {
+    <a name="XSLT_STATE_OK" id="XSLT_STATE_OK">XSLT_STATE_OK</a> = 0
+    <a name="XSLT_STATE_ERROR" id="XSLT_STATE_ERROR">XSLT_STATE_ERROR</a> = 1
+    <a name="XSLT_STATE_STOPPED" id="XSLT_STATE_STOPPED">XSLT_STATE_STOPPED</a> = 2
+}
+</pre><h3><a name="xsltAllocateExtra" id="xsltAllocateExtra"></a>Function: xsltAllocateExtra</h3><pre class="programlisting">int	xsltAllocateExtra		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Allocate an extra runtime information slot statically while compiling the stylesheet and return its number</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of the slot</td></tr></tbody></table></div><h3><a name="xsltAllocateExtraCtxt" id="xsltAllocateExtraCtxt"></a>Function: xsltAllocateExtraCtxt</h3><pre class="programlisting">int	xsltAllocateExtraCtxt		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Allocate an extra runtime information slot at run-time and return its number This make sure there is a slot ready in the transformation context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of the slot</td></tr></tbody></table></div><h3><a name="xsltCompileAttr" id="xsltCompileAttr"></a>Function: xsltCompileAttr</h3><pre class="programlisting">void	xsltCompileAttr			(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlAttrPtr attr)<br />
+</pre><p>Precompile an attribute in a stylesheet, basically it checks if it is an attrubute value template, and if yes establish some structures needed to process it at transformation time.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the attribute coming from the stylesheet.</td></tr></tbody></table></div><h3><a name="xsltCreateRVT" id="xsltCreateRVT"></a>Function: xsltCreateRVT</h3><pre class="programlisting">xmlDocPtr	xsltCreateRVT		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Create a result value tree</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the result value tree or NULL in case of error</td></tr></tbody></table></div><h3><a name="xsltDecimalFormatGetByName" id="xsltDecimalFormatGetByName"></a>Function: xsltDecimalFormatGetByName</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>	xsltDecimalFormatGetByName	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> sheet, <br />							 xmlChar * name)<br />
+</pre><p>Find decimal-format by name</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sheet</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the decimal-format name to find</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a></td></tr></tbody></table></div><h3><a name="xsltElemPreCompDeallocator" id="xsltElemPreCompDeallocator"></a>Function type: xsltElemPreCompDeallocator</h3><pre class="programlisting">Function type: xsltElemPreCompDeallocator
+void	xsltElemPreCompDeallocator	(<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp)
+</pre><p>Deallocates an #xsltElemPreComp structure.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the #xsltElemPreComp to free up</td></tr></tbody></table></div><br />
+<h3><a name="xsltEvalAVT" id="xsltEvalAVT"></a>Function: xsltEvalAVT</h3><pre class="programlisting">xmlChar *	xsltEvalAVT		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 void * avt, <br />					 xmlNodePtr node)<br />
+</pre><p>Process the given AVT, and return the new string value.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>avt</tt></i>:</span></td><td>the prevompiled attribute value template info</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node hosting the attribute</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div><h3><a name="xsltFormatNumberConversion" id="xsltFormatNumberConversion"></a>Function: xsltFormatNumberConversion</h3><pre class="programlisting">xmlXPathError	xsltFormatNumberConversion	(<a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> self, <br />						 xmlChar * format, <br />						 double number, <br />						 xmlChar ** result)<br />
+</pre><p>format-number() uses the JDK 1.1 DecimalFormat class: http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html Structure: pattern := subpattern{;subpattern} subpattern := {prefix}integer{.fraction}{suffix} prefix := '\\u0000'..'\\uFFFD' - specialCharacters suffix := '\\u0000'..'\\uFFFD' - specialCharacters integer := '#'* '0'* '0' fraction := '0'* '#'* Notation: X* 0 or more instances of X (X | Y) either X or Y. X..Y any character from X up to Y, inclusive. S - T characters in S, except those in T Special Characters: Symbol Meaning 0 a digit # a digit, zero shows as absent . placeholder for decimal separator , placeholder for grouping separator. ; separates formats. - default negative prefix. % multiply by 100 and show as percentage ? multiply by 1000 and show as per mille X any other characters can be used in the prefix or suffix ' used to quote special characters in a prefix or suffix.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>self</tt></i>:</span></td><td>the decimal format</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>the format requested</td></tr><tr><td><span class="term"><i><tt>number</tt></i>:</span></td><td>the value to format</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>the place to ouput the result</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a possible XPath error</td></tr></tbody></table></div><h3><a name="xsltFreeAVTList" id="xsltFreeAVTList"></a>Function: xsltFreeAVTList</h3><pre class="programlisting">void	xsltFreeAVTList			(void * avt)<br />
+</pre><p>Free up the memory associated to the attribute value templates</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>avt</tt></i>:</span></td><td>pointer to an list of AVT structures</td></tr></tbody></table></div><h3><a name="xsltFreeRVTs" id="xsltFreeRVTs"></a>Function: xsltFreeRVTs</h3><pre class="programlisting">void	xsltFreeRVTs			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>Free all the registered result value tree of the transformation</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr></tbody></table></div><h3><a name="xsltFreeStackElemList" id="xsltFreeStackElemList"></a>Function: xsltFreeStackElemList</h3><pre class="programlisting">void	xsltFreeStackElemList		(<a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elem)<br />
+</pre><p>Free up the memory allocated by @elem</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>elem</tt></i>:</span></td><td>an XSLT stack element</td></tr></tbody></table></div><h3><a name="xsltFreeStylesheet" id="xsltFreeStylesheet"></a>Function: xsltFreeStylesheet</h3><pre class="programlisting">void	xsltFreeStylesheet		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> sheet)<br />
+</pre><p>Free up the memory allocated by @sheet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sheet</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div><h3><a name="xsltIsBlank" id="xsltIsBlank"></a>Function: xsltIsBlank</h3><pre class="programlisting">int	xsltIsBlank			(xmlChar * str)<br />
+</pre><p>Check if a string is ignorable</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>a string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the string is NULL or made of blanks chars, 0 otherwise</td></tr></tbody></table></div><h3><a name="xsltLoadStylesheetPI" id="xsltLoadStylesheetPI"></a>Function: xsltLoadStylesheetPI</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	xsltLoadStylesheetPI	(xmlDocPtr doc)<br />
+</pre><p>This function tries to locate the stylesheet PI in the given document If found, and if contained within the document, it will extract that subtree to build the stylesheet to process @doc (doc itself will be modified). If found but referencing an external document it will attempt to load it and generate a stylesheet from it. In both cases, the resulting stylesheet and the document need to be freed once the transformation is done.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a document to process</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new XSLT stylesheet structure or NULL if not found.</td></tr></tbody></table></div><h3><a name="xsltNewStylesheet" id="xsltNewStylesheet"></a>Function: xsltNewStylesheet</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	xsltNewStylesheet	(void)<br />
+</pre><p>Create a new XSLT Stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly allocated <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> or NULL in case of error</td></tr></tbody></table></div><h3><a name="xsltNumberFormat" id="xsltNumberFormat"></a>Function: xsltNumberFormat</h3><pre class="programlisting">void	xsltNumberFormat		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a> data, <br />					 xmlNodePtr node)<br />
+</pre><p>Convert one number.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the formatting informations</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the data to format</td></tr></tbody></table></div><h3><a name="xsltParseStylesheetDoc" id="xsltParseStylesheetDoc"></a>Function: xsltParseStylesheetDoc</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	xsltParseStylesheetDoc	(xmlDocPtr doc)<br />
+</pre><p>parse an XSLT stylesheet building the associated structures</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>and xmlDoc parsed XML</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new XSLT stylesheet structure.</td></tr></tbody></table></div><h3><a name="xsltParseStylesheetFile" id="xsltParseStylesheetFile"></a>Function: xsltParseStylesheetFile</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	xsltParseStylesheetFile	(const xmlChar * filename)<br />
+</pre><p>Load and parse an XSLT stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename/URL to the stylesheet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new XSLT stylesheet structure.</td></tr></tbody></table></div><h3><a name="xsltParseStylesheetImportedDoc" id="xsltParseStylesheetImportedDoc"></a>Function: xsltParseStylesheetImportedDoc</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	xsltParseStylesheetImportedDoc	(xmlDocPtr doc, <br />							 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>parse an XSLT stylesheet building the associated structures except the processing not needed for imported documents.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>an xmlDoc parsed XML</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>pointer to parent stylesheet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new XSLT stylesheet structure.</td></tr></tbody></table></div><h3><a name="xsltParseStylesheetOutput" id="xsltParseStylesheetOutput"></a>Function: xsltParseStylesheetOutput</h3><pre class="programlisting">void	xsltParseStylesheetOutput	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr cur)<br />
+</pre><p>parse an XSLT stylesheet output element and record information related to the stylesheet output</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the "output" element</td></tr></tbody></table></div><h3><a name="xsltParseStylesheetProcess" id="xsltParseStylesheetProcess"></a>Function: xsltParseStylesheetProcess</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>	xsltParseStylesheetProcess	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> ret, <br />							 xmlDocPtr doc)<br />
+</pre><p>parse an XSLT stylesheet adding the associated structures</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ret</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>and xmlDoc parsed XML</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value of the 'ret' parameter if everything went right, NULL if something went amiss.</td></tr></tbody></table></div><h3><a name="xsltParseTemplateContent" id="xsltParseTemplateContent"></a>Function: xsltParseTemplateContent</h3><pre class="programlisting">void	xsltParseTemplateContent	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr templ)<br />
+</pre><p>parse a template content-model Clean-up the template content from unwanted ignorable blank nodes and process xslt:text</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span class="term"><i><tt>templ</tt></i>:</span></td><td>the container node (can be a document for literal results)</td></tr></tbody></table></div><h3><a name="xsltRegisterPersistRVT" id="xsltRegisterPersistRVT"></a>Function: xsltRegisterPersistRVT</h3><pre class="programlisting">int	xsltRegisterPersistRVT		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlDocPtr RVT)<br />
+</pre><p>Register the result value tree for destruction at the end of the processing</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>RVT</tt></i>:</span></td><td>a result value tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltRegisterTmpRVT" id="xsltRegisterTmpRVT"></a>Function: xsltRegisterTmpRVT</h3><pre class="programlisting">int	xsltRegisterTmpRVT		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlDocPtr RVT)<br />
+</pre><p>Register the result value tree for destruction at the end of the context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>RVT</tt></i>:</span></td><td>a result value tree</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xsltSortFunc" id="xsltSortFunc"></a>Function type: xsltSortFunc</h3><pre class="programlisting">Function type: xsltSortFunc
+void	xsltSortFunc			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr * sorts, <br />					 int nbsorts)
+</pre><p>Signature of the function to use during sorting</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span class="term"><i><tt>sorts</tt></i>:</span></td><td>the node-set to sort</td></tr><tr><td><span class="term"><i><tt>nbsorts</tt></i>:</span></td><td>the number of sorts</td></tr></tbody></table></div><br />
+<h3><a name="xsltTransformFunction" id="xsltTransformFunction"></a>Function type: xsltTransformFunction</h3><pre class="programlisting">Function type: xsltTransformFunction
+void	xsltTransformFunction		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst, <br />					 <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp)
+</pre><p>Signature of the function associated to elements part of the stylesheet language like xsl:if or xsl:apply-templates.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the input node</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the stylesheet node</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled information from the stylesheet</td></tr></tbody></table></div><br />
+<p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltexports.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltexports.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltexports.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module xsltexports from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module xsltexports from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-xsltInternals.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-xsltInternals.html">xsltInternals</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th><th align="right"><a href="libxslt-xsltutils.html">xsltutils</a></th><td><a accesskey="n" href="libxslt-xsltutils.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>macros for marking symbols as exportable/importable. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#LIBXSLT_PUBLIC">LIBXSLT_PUBLIC</a></pre><pre class="programlisting">#define <a href="#XSLTCALL">XSLTCALL</a></pre><pre class="programlisting">#define <a href="#XSLTPUBFUN">XSLTPUBFUN</a></pre><pre class="programlisting">#define <a href="#XSLTPUBVAR">XSLTPUBVAR</a></pre><pre class="programlisting">#define <a href="#_REENTRANT">_REENTRANT</a></pre><h2>Description</h2>
+<h3><a name="LIBXSLT_PUBLIC" id="LIBXSLT_PUBLIC"></a>Macro: LIBXSLT_PUBLIC</h3><pre>#define LIBXSLT_PUBLIC</pre><p></p>
+<h3><a name="XSLTCALL" id="XSLTCALL"></a>Macro: XSLTCALL</h3><pre>#define XSLTCALL</pre><p></p>
+<h3><a name="XSLTPUBFUN" id="XSLTPUBFUN"></a>Macro: XSLTPUBFUN</h3><pre>#define XSLTPUBFUN</pre><p></p>
+<h3><a name="XSLTPUBVAR" id="XSLTPUBVAR"></a>Macro: XSLTPUBVAR</h3><pre>#define XSLTPUBVAR</pre><p></p>
+<h3><a name="_REENTRANT" id="_REENTRANT"></a>Macro: _REENTRANT</h3><pre>#define _REENTRANT</pre><p></p>
+<p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltutils.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltutils.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/html/libxslt-xsltutils.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Module xsltutils from libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="../Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Module xsltutils from libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-xsltexports.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxslt-xsltexports.html">xsltexports</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">Home</a></th></tr></table><p>interfaces for the utilities module of the XSLT engine. things like message handling, profiling, and other generally useful routines. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#IS_XSLT_ELEM">IS_XSLT_ELEM</a></pre><pre class="programlisting">#define <a href="#IS_XSLT_NAME">IS_XSLT_NAME</a></pre><pre class="programlisting">#define <a href="#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a></pre><pre class="programlisting">#define <a href="#XSLT_STRANGE">XSLT_STRANGE</a></pre><pre class="programlisting">#define <a href="#XSLT_TIMESTAMP_TICS_PER_SEC">XSLT_TIMESTAMP_TICS_PER_SEC</a></pre><pre class="programlisting">#define <a href="#XSLT_TODO">XSLT_TODO</a></pre><pre class="programlisting">#define <a href="#XSLT_TRACE">XSLT_TRACE</a></pre><pre class="programlisting">Enum <a href="#xsltDebugStatusCodes">xsltDebugStatusCodes</a>
+</pre><pre class="programlisting">Enum <a href="#xsltDebugTraceCodes">xsltDebugTraceCodes</a>
+</pre><pre class="programlisting">int	<a href="#xslAddCall">xslAddCall</a>			(<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br />					 xmlNodePtr source)</pre>
+<pre class="programlisting">void	<a href="#xslDropCall">xslDropCall</a>			(void)</pre>
+<pre class="programlisting">Function type: <a href="#xsltAddCallCallback">xsltAddCallCallback</a>
+int	<a href="#xsltAddCallCallback">xsltAddCallCallback</a>		(<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br />					 xmlNodePtr source)
+</pre>
+<pre class="programlisting">void	<a href="#xsltCalibrateAdjust">xsltCalibrateAdjust</a>		(long delta)</pre>
+<pre class="programlisting">xmlXPathObjectPtr *	<a href="#xsltComputeSortResult">xsltComputeSortResult</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 xmlNodePtr sort)</pre>
+<pre class="programlisting"><a href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a>	<a href="#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a>	(void)</pre>
+<pre class="programlisting">void	<a href="#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a>	(<a href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a> val)</pre>
+<pre class="programlisting">void	<a href="#xsltDefaultSortFunction">xsltDefaultSortFunction</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr * sorts, <br />					 int nbsorts)</pre>
+<pre class="programlisting">void	<a href="#xsltDoSortFunction">xsltDoSortFunction</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr * sorts, <br />					 int nbsorts)</pre>
+<pre class="programlisting">void	<a href="#xsltDocumentSortFunction">xsltDocumentSortFunction</a>	(xmlNodeSetPtr list)</pre>
+<pre class="programlisting">Function type: <a href="#xsltDropCallCallback">xsltDropCallCallback</a>
+void	<a href="#xsltDropCallCallback">xsltDropCallCallback</a>		(void)
+</pre>
+<pre class="programlisting">const xmlChar *	<a href="#xsltGetCNsProp">xsltGetCNsProp</a>		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr node, <br />					 const xmlChar * name, <br />					 const xmlChar * nameSpace)</pre>
+<pre class="programlisting">int	<a href="#xsltGetDebuggerStatus">xsltGetDebuggerStatus</a>		(void)</pre>
+<pre class="programlisting">xmlChar *	<a href="#xsltGetNsProp">xsltGetNsProp</a>		(xmlNodePtr node, <br />					 const xmlChar * name, <br />					 const xmlChar * nameSpace)</pre>
+<pre class="programlisting">xmlDocPtr	<a href="#xsltGetProfileInformation">xsltGetProfileInformation</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)</pre>
+<pre class="programlisting">const xmlChar *	<a href="#xsltGetQNameURI">xsltGetQNameURI</a>		(xmlNodePtr node, <br />					 xmlChar ** name)</pre>
+<pre class="programlisting">const xmlChar *	<a href="#xsltGetQNameURI2">xsltGetQNameURI2</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr node, <br />					 const xmlChar ** name)</pre>
+<pre class="programlisting">int	<a href="#xsltGetUTF8Char">xsltGetUTF8Char</a>			(const unsigned char * utf, <br />					 int * len)</pre>
+<pre class="programlisting">Function type: <a href="#xsltHandleDebuggerCallback">xsltHandleDebuggerCallback</a>
+void	<a href="#xsltHandleDebuggerCallback">xsltHandleDebuggerCallback</a>	(xmlNodePtr cur, <br />					 xmlNodePtr node, <br />					 <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)
+</pre>
+<pre class="programlisting">void	<a href="#xsltMessage">xsltMessage</a>			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst)</pre>
+<pre class="programlisting">void	<a href="#xsltPrintErrorContext">xsltPrintErrorContext</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr node)</pre>
+<pre class="programlisting">void	<a href="#xsltSaveProfiling">xsltSaveProfiling</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 FILE * output)</pre>
+<pre class="programlisting">int	<a href="#xsltSaveResultTo">xsltSaveResultTo</a>		(xmlOutputBufferPtr buf, <br />					 xmlDocPtr result, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">int	<a href="#xsltSaveResultToFd">xsltSaveResultToFd</a>		(int fd, <br />					 xmlDocPtr result, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">int	<a href="#xsltSaveResultToFile">xsltSaveResultToFile</a>		(FILE * file, <br />					 xmlDocPtr result, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">int	<a href="#xsltSaveResultToFilename">xsltSaveResultToFilename</a>	(const char * URL, <br />					 xmlDocPtr result, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 int compression)</pre>
+<pre class="programlisting">int	<a href="#xsltSaveResultToString">xsltSaveResultToString</a>		(xmlChar ** doc_txt_ptr, <br />					 int * doc_txt_len, <br />					 xmlDocPtr result, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)</pre>
+<pre class="programlisting">int	<a href="#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 int options)</pre>
+<pre class="programlisting">void	<a href="#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler)</pre>
+<pre class="programlisting">int	<a href="#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a>	(int no, <br />					 void * block)</pre>
+<pre class="programlisting">void	<a href="#xsltSetDebuggerStatus">xsltSetDebuggerStatus</a>		(int value)</pre>
+<pre class="programlisting">void	<a href="#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a>		(void * ctx, <br />					 xmlGenericErrorFunc handler)</pre>
+<pre class="programlisting">void	<a href="#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a>		(void * ctx, <br />					 xmlGenericErrorFunc handler)</pre>
+<pre class="programlisting">void	<a href="#xsltSetSortFunc">xsltSetSortFunc</a>			(<a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler)</pre>
+<pre class="programlisting">void	<a href="#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a>	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 void * ctx, <br />					 xmlGenericErrorFunc handler)</pre>
+<pre class="programlisting">const xmlChar *	<a href="#xsltSplitQName">xsltSplitQName</a>		(xmlDictPtr dict, <br />					 const xmlChar * name, <br />					 const xmlChar ** prefix)</pre>
+<pre class="programlisting">long	<a href="#xsltTimestamp">xsltTimestamp</a>			(void)</pre>
+<pre class="programlisting">void	<a href="#xsltTransformError">xsltTransformError</a>		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr node, <br />					 const char * msg, <br />					 ... ...)</pre>
+<pre class="programlisting">xmlXPathCompExprPtr	<a href="#xsltXPathCompile">xsltXPathCompile</a>	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 const xmlChar * str)</pre>
+<h2>Description</h2>
+<h3><a name="IS_XSLT_ELEM" id="IS_XSLT_ELEM"></a>Macro: IS_XSLT_ELEM</h3><pre>#define IS_XSLT_ELEM</pre><p>Checks that the element pertains to XSLT namespace.</p>
+<h3><a name="IS_XSLT_NAME" id="IS_XSLT_NAME"></a>Macro: IS_XSLT_NAME</h3><pre>#define IS_XSLT_NAME</pre><p>Checks the value of an element in XSLT namespace.</p>
+<h3><a name="IS_XSLT_REAL_NODE" id="IS_XSLT_REAL_NODE"></a>Macro: IS_XSLT_REAL_NODE</h3><pre>#define IS_XSLT_REAL_NODE</pre><p>Check that a node is a 'real' one: document, element, text or attribute.</p>
+<h3><a name="XSLT_STRANGE" id="XSLT_STRANGE"></a>Macro: XSLT_STRANGE</h3><pre>#define XSLT_STRANGE</pre><p>Macro to flag that a problem was detected internally.</p>
+<h3><a name="XSLT_TIMESTAMP_TICS_PER_SEC" id="XSLT_TIMESTAMP_TICS_PER_SEC"></a>Macro: XSLT_TIMESTAMP_TICS_PER_SEC</h3><pre>#define XSLT_TIMESTAMP_TICS_PER_SEC</pre><p>Sampling precision for profiling</p>
+<h3><a name="XSLT_TODO" id="XSLT_TODO"></a>Macro: XSLT_TODO</h3><pre>#define XSLT_TODO</pre><p>Macro to flag unimplemented blocks.</p>
+<h3><a name="XSLT_TRACE" id="XSLT_TRACE"></a>Macro: XSLT_TRACE</h3><pre>#define XSLT_TRACE</pre><p>Control the type of xsl debugtrace messages emitted.</p>
+<h3>Enum <a name="xsltDebugStatusCodes" id="xsltDebugStatusCodes">xsltDebugStatusCodes</a></h3><pre class="programlisting">Enum xsltDebugStatusCodes {
+    <a name="XSLT_DEBUG_NONE" id="XSLT_DEBUG_NONE">XSLT_DEBUG_NONE</a> = 0 : no debugging allowed
+    <a name="XSLT_DEBUG_INIT" id="XSLT_DEBUG_INIT">XSLT_DEBUG_INIT</a> = 1
+    <a name="XSLT_DEBUG_STEP" id="XSLT_DEBUG_STEP">XSLT_DEBUG_STEP</a> = 2
+    <a name="XSLT_DEBUG_STEPOUT" id="XSLT_DEBUG_STEPOUT">XSLT_DEBUG_STEPOUT</a> = 3
+    <a name="XSLT_DEBUG_NEXT" id="XSLT_DEBUG_NEXT">XSLT_DEBUG_NEXT</a> = 4
+    <a name="XSLT_DEBUG_STOP" id="XSLT_DEBUG_STOP">XSLT_DEBUG_STOP</a> = 5
+    <a name="XSLT_DEBUG_CONT" id="XSLT_DEBUG_CONT">XSLT_DEBUG_CONT</a> = 6
+    <a name="XSLT_DEBUG_RUN" id="XSLT_DEBUG_RUN">XSLT_DEBUG_RUN</a> = 7
+    <a name="XSLT_DEBUG_RUN_RESTART" id="XSLT_DEBUG_RUN_RESTART">XSLT_DEBUG_RUN_RESTART</a> = 8
+    <a name="XSLT_DEBUG_QUIT" id="XSLT_DEBUG_QUIT">XSLT_DEBUG_QUIT</a> = 9
+}
+</pre><h3>Enum <a name="xsltDebugTraceCodes" id="xsltDebugTraceCodes">xsltDebugTraceCodes</a></h3><pre class="programlisting">Enum xsltDebugTraceCodes {
+    <a name="XSLT_TRACE_ALL" id="XSLT_TRACE_ALL">XSLT_TRACE_ALL</a> = -1
+    <a name="XSLT_TRACE_NONE" id="XSLT_TRACE_NONE">XSLT_TRACE_NONE</a> = 0
+    <a name="XSLT_TRACE_COPY_TEXT" id="XSLT_TRACE_COPY_TEXT">XSLT_TRACE_COPY_TEXT</a> = 1
+    <a name="XSLT_TRACE_PROCESS_NODE" id="XSLT_TRACE_PROCESS_NODE">XSLT_TRACE_PROCESS_NODE</a> = 2
+    <a name="XSLT_TRACE_APPLY_TEMPLATE" id="XSLT_TRACE_APPLY_TEMPLATE">XSLT_TRACE_APPLY_TEMPLATE</a> = 4
+    <a name="XSLT_TRACE_COPY" id="XSLT_TRACE_COPY">XSLT_TRACE_COPY</a> = 8
+    <a name="XSLT_TRACE_COMMENT" id="XSLT_TRACE_COMMENT">XSLT_TRACE_COMMENT</a> = 16
+    <a name="XSLT_TRACE_PI" id="XSLT_TRACE_PI">XSLT_TRACE_PI</a> = 32
+    <a name="XSLT_TRACE_COPY_OF" id="XSLT_TRACE_COPY_OF">XSLT_TRACE_COPY_OF</a> = 64
+    <a name="XSLT_TRACE_VALUE_OF" id="XSLT_TRACE_VALUE_OF">XSLT_TRACE_VALUE_OF</a> = 128
+    <a name="XSLT_TRACE_CALL_TEMPLATE" id="XSLT_TRACE_CALL_TEMPLATE">XSLT_TRACE_CALL_TEMPLATE</a> = 256
+    <a name="XSLT_TRACE_APPLY_TEMPLATES" id="XSLT_TRACE_APPLY_TEMPLATES">XSLT_TRACE_APPLY_TEMPLATES</a> = 512
+    <a name="XSLT_TRACE_CHOOSE" id="XSLT_TRACE_CHOOSE">XSLT_TRACE_CHOOSE</a> = 1024
+    <a name="XSLT_TRACE_IF" id="XSLT_TRACE_IF">XSLT_TRACE_IF</a> = 2048
+    <a name="XSLT_TRACE_FOR_EACH" id="XSLT_TRACE_FOR_EACH">XSLT_TRACE_FOR_EACH</a> = 4096
+    <a name="XSLT_TRACE_STRIP_SPACES" id="XSLT_TRACE_STRIP_SPACES">XSLT_TRACE_STRIP_SPACES</a> = 8192
+    <a name="XSLT_TRACE_TEMPLATES" id="XSLT_TRACE_TEMPLATES">XSLT_TRACE_TEMPLATES</a> = 16384
+    <a name="XSLT_TRACE_KEYS" id="XSLT_TRACE_KEYS">XSLT_TRACE_KEYS</a> = 32768
+    <a name="XSLT_TRACE_VARIABLES" id="XSLT_TRACE_VARIABLES">XSLT_TRACE_VARIABLES</a> = 65536
+}
+</pre><h3><a name="xslAddCall" id="xslAddCall"></a>Function: xslAddCall</h3><pre class="programlisting">int	xslAddCall			(<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br />					 xmlNodePtr source)<br />
+</pre><p>Add template "call" to call stack</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>templ</tt></i>:</span></td><td>current template being applied</td></tr><tr><td><span class="term"><i><tt>source</tt></i>:</span></td><td>the source node being processed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>: 1 on sucess 0 otherwise an error may be printed if WITH_XSLT_DEBUG_BREAKPOINTS is defined</td></tr></tbody></table></div><h3><a name="xslDropCall" id="xslDropCall"></a>Function: xslDropCall</h3><pre class="programlisting">void	xslDropCall			(void)<br />
+</pre><p>Drop the topmost item off the call stack</p>
+<h3><a name="xsltAddCallCallback" id="xsltAddCallCallback"></a>Function type: xsltAddCallCallback</h3><pre class="programlisting">Function type: xsltAddCallCallback
+int	xsltAddCallCallback		(<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br />					 xmlNodePtr source)
+</pre><p></p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>templ</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>source</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><br />
+<h3><a name="xsltCalibrateAdjust" id="xsltCalibrateAdjust"></a>Function: xsltCalibrateAdjust</h3><pre class="programlisting">void	xsltCalibrateAdjust		(long delta)<br />
+</pre><p>Used for to correct the calibration for xsltTimestamp()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>delta</tt></i>:</span></td><td>a negative dealy value found</td></tr></tbody></table></div><h3><a name="xsltComputeSortResult" id="xsltComputeSortResult"></a>Function: xsltComputeSortResult</h3><pre class="programlisting">xmlXPathObjectPtr *	xsltComputeSortResult	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />						 xmlNodePtr sort)<br />
+</pre><p>reorder the current node list accordingly to the set of sorting requirement provided by the array of nodes.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>sort</tt></i>:</span></td><td>node list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a ordered XPath nodeset or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xsltDebugGetDefaultTrace" id="xsltDebugGetDefaultTrace"></a>Function: xsltDebugGetDefaultTrace</h3><pre class="programlisting"><a href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a>	xsltDebugGetDefaultTrace	(void)<br />
+</pre><p>Get the current default debug tracing level mask</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current default debug tracing level mask</td></tr></tbody></table></div><h3><a name="xsltDebugSetDefaultTrace" id="xsltDebugSetDefaultTrace"></a>Function: xsltDebugSetDefaultTrace</h3><pre class="programlisting">void	xsltDebugSetDefaultTrace	(<a href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a> val)<br />
+</pre><p>Set the default debug tracing level mask</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>tracing level mask</td></tr></tbody></table></div><h3><a name="xsltDefaultSortFunction" id="xsltDefaultSortFunction"></a>Function: xsltDefaultSortFunction</h3><pre class="programlisting">void	xsltDefaultSortFunction		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr * sorts, <br />					 int nbsorts)<br />
+</pre><p>reorder the current node list accordingly to the set of sorting requirement provided by the arry of nodes.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>sorts</tt></i>:</span></td><td>array of sort nodes</td></tr><tr><td><span class="term"><i><tt>nbsorts</tt></i>:</span></td><td>the number of sorts in the array</td></tr></tbody></table></div><h3><a name="xsltDoSortFunction" id="xsltDoSortFunction"></a>Function: xsltDoSortFunction</h3><pre class="programlisting">void	xsltDoSortFunction		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr * sorts, <br />					 int nbsorts)<br />
+</pre><p>reorder the current node list accordingly to the set of sorting requirement provided by the arry of nodes. This is a wrapper function, the actual function used is specified using xsltSetCtxtSortFunc() to set the context specific sort function, or xsltSetSortFunc() to set the global sort function. If a sort function is set on the context, this will get called. Otherwise the global sort function is called.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>sorts</tt></i>:</span></td><td>array of sort nodes</td></tr><tr><td><span class="term"><i><tt>nbsorts</tt></i>:</span></td><td>the number of sorts in the array</td></tr></tbody></table></div><h3><a name="xsltDocumentSortFunction" id="xsltDocumentSortFunction"></a>Function: xsltDocumentSortFunction</h3><pre class="programlisting">void	xsltDocumentSortFunction	(xmlNodeSetPtr list)<br />
+</pre><p>reorder the current node list @list accordingly to the document order This function is slow, obsolete and should not be used anymore.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>list</tt></i>:</span></td><td>the node set</td></tr></tbody></table></div><h3><a name="xsltDropCallCallback" id="xsltDropCallCallback"></a>Function type: xsltDropCallCallback</h3><pre class="programlisting">Function type: xsltDropCallCallback
+void	xsltDropCallCallback		(void)
+</pre><p></p><div class="variablelist"><table border="0"><col align="left" /><tbody></tbody></table></div><br />
+<h3><a name="xsltGetCNsProp" id="xsltGetCNsProp"></a>Function: xsltGetCNsProp</h3><pre class="programlisting">const xmlChar *	xsltGetCNsProp		(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr node, <br />					 const xmlChar * name, <br />					 const xmlChar * nameSpace)<br />
+</pre><p>Similar to xmlGetNsProp() but with a slightly different semantic Search and get the value of an attribute associated to a node This attribute has to be anchored in the namespace specified, or has no namespace and the element is in that namespace. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the attribute name</td></tr><tr><td><span class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the URI of the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the attribute value or NULL if not found. The string is allocated in the stylesheet dictionnary.</td></tr></tbody></table></div><h3><a name="xsltGetDebuggerStatus" id="xsltGetDebuggerStatus"></a>Function: xsltGetDebuggerStatus</h3><pre class="programlisting">int	xsltGetDebuggerStatus		(void)<br />
+</pre><p>Get xslDebugStatus.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value of xslDebugStatus.</td></tr></tbody></table></div><h3><a name="xsltGetNsProp" id="xsltGetNsProp"></a>Function: xsltGetNsProp</h3><pre class="programlisting">xmlChar *	xsltGetNsProp		(xmlNodePtr node, <br />					 const xmlChar * name, <br />					 const xmlChar * nameSpace)<br />
+</pre><p>Similar to xmlGetNsProp() but with a slightly different semantic Search and get the value of an attribute associated to a node This attribute has to be anchored in the namespace specified, or has no namespace and the element is in that namespace. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the attribute name</td></tr><tr><td><span class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the URI of the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the attribute value or NULL if not found. It's up to the caller to free the memory.</td></tr></tbody></table></div><h3><a name="xsltGetProfileInformation" id="xsltGetProfileInformation"></a>Function: xsltGetProfileInformation</h3><pre class="programlisting">xmlDocPtr	xsltGetProfileInformation	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br />
+</pre><p>This function should be called after the transformation completed to extract template processing profiling informations if availble. The informations are returned as an XML document tree like &lt;?xml version="1.0"?&gt; &lt;profile&gt; &lt;template rank="1" match="*" name="" mode="" calls="6" time="48" average="8"/&gt; &lt;template rank="2" match="item2|item3" name="" mode="" calls="10" time="30" average="3"/&gt; &lt;template rank="3" match="item1" name="" mode="" calls="5" time="17" average="3"/&gt; &lt;/profile&gt; The caller will need to free up the returned tree with xmlFreeDoc()</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the xmlDocPtr corresponding to the result or NULL if not available.</td></tr></tbody></table></div><h3><a name="xsltGetQNameURI" id="xsltGetQNameURI"></a>Function: xsltGetQNameURI</h3><pre class="programlisting">const xmlChar *	xsltGetQNameURI		(xmlNodePtr node, <br />					 xmlChar ** name)<br />
+</pre><p>This function analyzes @name, if the name contains a prefix, the function seaches the associated namespace in scope for it. It will also replace @name value with the NCName, the old value being freed. Errors in the prefix lookup are signalled by setting @name to NULL. NOTE: the namespace returned is a pointer to the place where it is defined and hence has the same lifespan as the document holding it.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node holding the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>pointer to the initial QName value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace URI if there is a prefix, or NULL if @name is not prefixed.</td></tr></tbody></table></div><h3><a name="xsltGetQNameURI2" id="xsltGetQNameURI2"></a>Function: xsltGetQNameURI2</h3><pre class="programlisting">const xmlChar *	xsltGetQNameURI2	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr node, <br />					 const xmlChar ** name)<br />
+</pre><p>This function is similar to xsltGetQNameURI, but is used when @name is a dictionary entry.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>stylesheet pointer</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node holding the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>pointer to the initial QName value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace URI if there is a prefix, or NULL if @name is not prefixed.</td></tr></tbody></table></div><h3><a name="xsltGetUTF8Char" id="xsltGetUTF8Char"></a>Function: xsltGetUTF8Char</h3><pre class="programlisting">int	xsltGetUTF8Char			(const unsigned char * utf, <br />					 int * len)<br />
+</pre><p>Read one UTF8 Char from @utf Function copied from libxml2 xmlGetUTF8Char() ... to discard ultimately and use the original API</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>a pointer to @bytes len</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the char value or -1 in case of error and update @len with the number of bytes used</td></tr></tbody></table></div><h3><a name="xsltHandleDebuggerCallback" id="xsltHandleDebuggerCallback"></a>Function type: xsltHandleDebuggerCallback</h3><pre class="programlisting">Function type: xsltHandleDebuggerCallback
+void	xsltHandleDebuggerCallback	(xmlNodePtr cur, <br />					 xmlNodePtr node, <br />					 <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br />					 <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)
+</pre><p></p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>templ</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td></td></tr></tbody></table></div><br />
+<h3><a name="xsltMessage" id="xsltMessage"></a>Function: xsltMessage</h3><pre class="programlisting">void	xsltMessage			(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 xmlNodePtr node, <br />					 xmlNodePtr inst)<br />
+</pre><p>Process and xsl:message construct</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT processing context</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>The current node</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>The node containing the message instruction</td></tr></tbody></table></div><h3><a name="xsltPrintErrorContext" id="xsltPrintErrorContext"></a>Function: xsltPrintErrorContext</h3><pre class="programlisting">void	xsltPrintErrorContext		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr node)<br />
+</pre><p>Display the context of an error.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the transformation context</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node being processed</td></tr></tbody></table></div><h3><a name="xsltSaveProfiling" id="xsltSaveProfiling"></a>Function: xsltSaveProfiling</h3><pre class="programlisting">void	xsltSaveProfiling		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 FILE * output)<br />
+</pre><p>Save the profiling informations on @output</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT context</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>a FILE * for saving the informations</td></tr></tbody></table></div><h3><a name="xsltSaveResultTo" id="xsltSaveResultTo"></a>Function: xsltSaveResultTo</h3><pre class="programlisting">int	xsltSaveResultTo		(xmlOutputBufferPtr buf, <br />					 xmlDocPtr result, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Save the result @result obtained by applying the @style stylesheet to an I/O output channel @buf</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an output buffer</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>the result xmlDocPtr</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xsltSaveResultToFd" id="xsltSaveResultToFd"></a>Function: xsltSaveResultToFd</h3><pre class="programlisting">int	xsltSaveResultToFd		(int fd, <br />					 xmlDocPtr result, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Save the result @result obtained by applying the @style stylesheet to an open file descriptor This does not close the descriptor.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fd</tt></i>:</span></td><td>a file descriptor</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>the result xmlDocPtr</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xsltSaveResultToFile" id="xsltSaveResultToFile"></a>Function: xsltSaveResultToFile</h3><pre class="programlisting">int	xsltSaveResultToFile		(FILE * file, <br />					 xmlDocPtr result, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Save the result @result obtained by applying the @style stylesheet to an open FILE * I/O. This does not close the FILE @file</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>a FILE * I/O</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>the result xmlDocPtr</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xsltSaveResultToFilename" id="xsltSaveResultToFilename"></a>Function: xsltSaveResultToFilename</h3><pre class="programlisting">int	xsltSaveResultToFilename	(const char * URL, <br />					 xmlDocPtr result, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 int compression)<br />
+</pre><p>Save the result @result obtained by applying the @style stylesheet to a file or @URL</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>a filename or URL</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>the result xmlDocPtr</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>compression</tt></i>:</span></td><td>the compression factor (0 - 9 included)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xsltSaveResultToString" id="xsltSaveResultToString"></a>Function: xsltSaveResultToString</h3><pre class="programlisting">int	xsltSaveResultToString		(xmlChar ** doc_txt_ptr, <br />					 int * doc_txt_len, <br />					 xmlDocPtr result, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br />
+</pre><p>Save the result @result obtained by applying the @style stylesheet to a file or @URL</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc_txt_ptr</tt></i>:</span></td><td>Memory pointer for allocated XML text</td></tr><tr><td><span class="term"><i><tt>doc_txt_len</tt></i>:</span></td><td>Length of the generated XML text</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>the result xmlDocPtr</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xsltSetCtxtParseOptions" id="xsltSetCtxtParseOptions"></a>Function: xsltSetCtxtParseOptions</h3><pre class="programlisting">int	xsltSetCtxtParseOptions		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 int options)<br />
+</pre><p>Change the default parser option passed by the XSLT engine to the parser when using document() loading.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of libxml2 xmlParserOption</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous options or -1 in case of error</td></tr></tbody></table></div><h3><a name="xsltSetCtxtSortFunc" id="xsltSetCtxtSortFunc"></a>Function: xsltSetCtxtSortFunc</h3><pre class="programlisting">void	xsltSetCtxtSortFunc		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler)<br />
+</pre><p>Function to set the handler for XSLT sorting for the specified context. If the handler is NULL, then the global sort function will be called</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div><h3><a name="xsltSetDebuggerCallbacks" id="xsltSetDebuggerCallbacks"></a>Function: xsltSetDebuggerCallbacks</h3><pre class="programlisting">int	xsltSetDebuggerCallbacks	(int no, <br />					 void * block)<br />
+</pre><p>This function allow to plug a debugger into the XSLT library @block points to a block of memory containing the address of @no callback routines.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>no</tt></i>:</span></td><td>number of callbacks</td></tr><tr><td><span class="term"><i><tt>block</tt></i>:</span></td><td>the block of callbacks</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xsltSetDebuggerStatus" id="xsltSetDebuggerStatus"></a>Function: xsltSetDebuggerStatus</h3><pre class="programlisting">void	xsltSetDebuggerStatus		(int value)<br />
+</pre><p>This function sets the value of xslDebugStatus.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the value to be set</td></tr></tbody></table></div><h3><a name="xsltSetGenericDebugFunc" id="xsltSetGenericDebugFunc"></a>Function: xsltSetGenericDebugFunc</h3><pre class="programlisting">void	xsltSetGenericDebugFunc		(void * ctx, <br />					 xmlGenericErrorFunc handler)<br />
+</pre><p>Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing or validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the new error handling context</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div><h3><a name="xsltSetGenericErrorFunc" id="xsltSetGenericErrorFunc"></a>Function: xsltSetGenericErrorFunc</h3><pre class="programlisting">void	xsltSetGenericErrorFunc		(void * ctx, <br />					 xmlGenericErrorFunc handler)<br />
+</pre><p>Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the new error handling context</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div><h3><a name="xsltSetSortFunc" id="xsltSetSortFunc"></a>Function: xsltSetSortFunc</h3><pre class="programlisting">void	xsltSetSortFunc			(<a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler)<br />
+</pre><p>Function to reset the global handler for XSLT sorting. If the handler is NULL, the default sort function will be used.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div><h3><a name="xsltSetTransformErrorFunc" id="xsltSetTransformErrorFunc"></a>Function: xsltSetTransformErrorFunc</h3><pre class="programlisting">void	xsltSetTransformErrorFunc	(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 void * ctx, <br />					 xmlGenericErrorFunc handler)<br />
+</pre><p>Function to reset the handler and the error context for out of context error messages specific to a given XSLT transromation. This simply means that @handler will be called for subsequent error messages while running the transformation.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the new error handling context</td></tr><tr><td><span class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler function</td></tr></tbody></table></div><h3><a name="xsltSplitQName" id="xsltSplitQName"></a>Function: xsltSplitQName</h3><pre class="programlisting">const xmlChar *	xsltSplitQName		(xmlDictPtr dict, <br />					 const xmlChar * name, <br />					 const xmlChar ** prefix)<br />
+</pre><p>Split QNames into prefix and local names, both allocated from a dictionnary.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the return value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the localname or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xsltTimestamp" id="xsltTimestamp"></a>Function: xsltTimestamp</h3><pre class="programlisting">long	xsltTimestamp			(void)<br />
+</pre><p>Used for gathering profiling data</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of tenth of milliseconds since the beginning of the profiling</td></tr></tbody></table></div><h3><a name="xsltTransformError" id="xsltTransformError"></a>Function: xsltTransformError</h3><pre class="programlisting">void	xsltTransformError		(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br />					 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />					 xmlNodePtr node, <br />					 const char * msg, <br />					 ... ...)<br />
+</pre><p>Display and format an error messages, gives file, line, position and extra parameters, will use the specific transformation context if available</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet used</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node in the stylesheet</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div><h3><a name="xsltXPathCompile" id="xsltXPathCompile"></a>Function: xsltXPathCompile</h3><pre class="programlisting">xmlXPathCompExprPtr	xsltXPathCompile	(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br />						 const xmlChar * str)<br />
+</pre><p>Compile an XPath expression</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/right.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/html/right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/html/up.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/html/up.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/index.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/index.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/index.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>libxslt</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>libxslt</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>Libxslt is the <a href="http://www.w3.org/TR/xslt">XSLT</a> C library
+developed for the Gnome project. XSLT itself is a an XML language to define
+transformation for XML. Libxslt is based on <a href="http://xmlsoft.org/">libxml2</a> the XML C library developed for the
+Gnome project. It also implements most of the <a href="http://www.exslt.org/">EXSLT</a> set of processor-portable extensions
+functions and some of Saxon's evaluate and expressions extensions.</p><p>People can either embed the library in their application or use xsltproc
+the command line processing tool. This library is free software and can be
+reused in commercial applications (see the <a href="intro.html">intro</a>)</p><p>External documents:</p><ul><li>John Fleck wrote <a href="tutorial/libxslttutorial.html">a tutorial for
+    libxslt</a></li>
+  <li><a href="xsltproc.html">xsltproc user manual</a></li>
+  <li><a href="http://xmlsoft.org/">the libxml documentation</a></li>
+</ul><p></p><p>Logo designed by <a href="mailto:liyanage at access.ch">Marc Liyanage</a>.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/internals.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/internals.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/internals.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Library internals</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Library internals</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h3>Table  of contents</h3><ul><li><a href="internals.html#Introducti">Introduction</a></li>
+  <li><a href="internals.html#Basics">Basics</a></li>
+  <li><a href="internals.html#Keep">Keep it simple stupid</a></li>
+  <li><a href="internals.html#libxml">The libxml nodes</a></li>
+  <li><a href="internals.html#XSLT">The XSLT processing steps</a></li>
+  <li><a href="internals.html#XSLT1">The XSLT stylesheet compilation</a></li>
+  <li><a href="internals.html#XSLT2">The XSLT template compilation</a></li>
+  <li><a href="internals.html#processing">The processing itself</a></li>
+  <li><a href="internals.html#XPath">XPath expressions compilation</a></li>
+  <li><a href="internals.html#XPath1">XPath interpretation</a></li>
+  <li><a href="internals.html#Descriptio">Description of XPath
+  Objects</a></li>
+  <li><a href="internals.html#XPath3">XPath functions</a></li>
+  <li><a href="internals.html#stack">The variables stack frame</a></li>
+  <li><a href="internals.html#Extension">Extension support</a></li>
+  <li><a href="internals.html#Futher">Further reading</a></li>
+  <li><a href="internals.html#TODOs">TODOs</a></li>
+</ul><h3><a name="Introducti2" id="Introducti2">Introduction</a></h3><p>This document describes the processing of <a href="http://xmlsoft.org/XSLT/">libxslt</a>, the <a href="http://www.w3.org/TR/xslt">XSLT</a> C library developed for the <a href="http://www.gnome.org/">Gnome</a> project.</p><p>Note: this documentation is by definition incomplete and I am not good at
+spelling, grammar, so patches and suggestions are <a href="mailto:veillard at redhat.com">really welcome</a>.</p><h3><a name="Basics1" id="Basics1">Basics</a></h3><p>XSLT is a transformation language. It takes an input document and a
+stylesheet document and generates an output document:</p><p align="center"><img src="processing.gif" alt="the XSLT processing model" /></p><p>Libxslt is written in C. It relies on <a href="http://www.xmlsoft.org/">libxml</a>, the XML C library for Gnome, for
+the following operations:</p><ul><li>parsing files</li>
+  <li>building the in-memory DOM structure associated with the documents
+    handled</li>
+  <li>the XPath implementation</li>
+  <li>serializing back the result document to XML and HTML. (Text is handled
+    directly.)</li>
+</ul><h3><a name="Keep1" id="Keep1">Keep it simple stupid</a></h3><p>Libxslt is not very specialized. It is built under the assumption that all
+nodes from the source and output document can fit in the virtual memory of
+the system. There is a big trade-off there. It is fine for reasonably sized
+documents but may not be suitable for large sets of data. The gain is that it
+can be used in a relatively versatile way. The input or output may never be
+serialized, but the size of documents it can handle are limited by the size
+of the memory available.</p><p>More specialized memory handling approaches are possible, like building
+the input tree from a serialization progressively as it is consumed,
+factoring repetitive patterns, or even on-the-fly generation of the output as
+the input is parsed but it is possible only for a limited subset of the
+stylesheets. In general the implementation of libxslt follows the following
+pattern:</p><ul><li>KISS (keep it simple stupid)</li>
+  <li>when there is a clear bottleneck optimize on top of this simple
+    framework and refine only as much as is needed to reach the expected
+    result</li>
+</ul><p>The result is not that bad, clearly one can do a better job but more
+specialized too. Most optimization like building the tree on-demand would
+need serious changes to the libxml XPath framework. An easy step would be to
+serialize the output directly (or call a set of SAX-like output handler to
+keep this a flexible interface) and hence avoid the memory consumption of the
+result.</p><h3><a name="libxml" id="libxml">The libxml nodes</a></h3><p>DOM-like trees, as used and generated by libxml and libxslt, are
+relatively complex. Most node types follow the given structure except a few
+variations depending on the node type:</p><p align="center"><img src="node.gif" alt="description of a libxml node" /></p><p>Nodes carry a <strong>name</strong> and the node <strong>type</strong>
+indicates the kind of node it represents, the most common ones are:</p><ul><li>document nodes</li>
+  <li>element nodes</li>
+  <li>text nodes</li>
+</ul><p>For the XSLT processing, entity nodes should not be generated (i.e. they
+should be replaced by their content). Most nodes also contains the following
+"navigation" informations:</p><ul><li>the containing <strong>doc</strong>ument</li>
+  <li>the <strong>parent</strong> node</li>
+  <li>the first <strong>children</strong> node</li>
+  <li>the <strong>last</strong> children node</li>
+  <li>the <strong>prev</strong>ious sibling</li>
+  <li>the following sibling (<strong>next</strong>)</li>
+</ul><p>Elements nodes carries the list of attributes in the properties, an
+attribute itself holds the navigation pointers and the children list (the
+attribute value is not represented as a simple string to allow usage of
+entities references).</p><p>The <strong>ns</strong> points to the namespace declaration for the
+namespace associated to the node, <strong>nsDef</strong> is the linked list
+of namespace declaration present on element nodes.</p><p>Most nodes also carry an <strong>_private</strong> pointer which can be
+used by the application to hold specific data on this node.</p><h3><a name="XSLT" id="XSLT">The XSLT processing steps</a></h3><p>There are a few steps which are clearly decoupled at the interface
+level:</p><ol><li>parse the stylesheet and generate a DOM tree</li>
+  <li>take the stylesheet tree and build a compiled version of it (the
+    compilation phase)</li>
+  <li>take the input and generate a DOM tree</li>
+  <li>process the stylesheet against the input tree and generate an output
+    tree</li>
+  <li>serialize the output tree</li>
+</ol><p>A few things should be noted here:</p><ul><li>the steps 1/ 3/ and 5/ are optional</li>
+  <li>the stylesheet obtained at 2/ can be reused by multiple processing 4/
+    (and this should also work in threaded programs)</li>
+  <li>the tree provided in 2/ should never be freed using xmlFreeDoc, but by
+    freeing the stylesheet.</li>
+  <li>the input tree 4/ is not modified except the _private field which may
+    be used for labelling keys if used by the stylesheet</li>
+</ul><h3><a name="XSLT1" id="XSLT1">The XSLT stylesheet compilation</a></h3><p>This is the second step described. It takes a stylesheet tree, and
+"compiles" it. This associates to each node a structure stored in the
+_private field and containing information computed in the stylesheet:</p><p align="center"><img src="stylesheet.gif" alt="a compiled XSLT stylesheet" /></p><p>One xsltStylesheet structure is generated per document parsed for the
+stylesheet. XSLT documents allow includes and imports of other documents,
+imports are stored in the <strong>imports</strong> list (hence keeping the
+tree hierarchy of includes which is very important for a proper XSLT
+processing model) and includes are stored in the <strong>doclist</strong>
+list. An imported stylesheet has a parent link to allow browsing of the
+tree.</p><p>The DOM tree associated to the document is stored in <strong>doc</strong>.
+It is preprocessed to remove ignorable empty nodes and all the nodes in the
+XSLT namespace are subject to precomputing. This usually consist of
+extracting all the context information from the context tree (attributes,
+namespaces, XPath expressions), and storing them in an xsltStylePreComp
+structure associated to the <strong>_private</strong> field of the node.</p><p>A couple of notable exceptions to this are XSLT template nodes (more on
+this later) and attribute value templates. If they are actually templates,
+the value cannot be computed at compilation time. (Some preprocessing could
+be done like isolation and preparsing of the XPath subexpressions but it's
+not done, yet.)</p><p>The xsltStylePreComp structure also allows storing of the precompiled form
+of an XPath expression that can be associated to an XSLT element (more on
+this later).</p><h3><a name="XSLT2" id="XSLT2">The XSLT template compilation</a></h3><p>A proper handling of templates lookup is one of the keys of fast XSLT
+processing. (Given a node in the source document this is the process of
+finding which templates should be applied to this node.) Libxslt follows the
+hint suggested in the <a href="http://www.w3.org/TR/xslt#patterns">5.2
+Patterns</a> section of the XSLT Recommendation, i.e. it doesn't evaluate it
+as an XPath expression but tokenizes it and compiles it as a set of rules to
+be evaluated on a candidate node. There usually is an indication of the node
+name in the last step of this evaluation and this is used as a key check for
+the match. As a result libxslt builds a relatively more complex set of
+structures for the templates:</p><p align="center"><img src="templates.gif" alt="The templates related structure" /></p><p>Let's describe a bit more closely what is built. First the xsltStylesheet
+structure holds a pointer to the template hash table. All the XSLT patterns
+compiled in this stylesheet are indexed by the value of the the target
+element (or attribute, pi ...) name, so when a element or an attribute "foo"
+needs to be processed the lookup is done using the name as a key.</p><p>Each of the patterns is compiled into an xsltCompMatch structure. It holds
+the set of rules based on the tokenization of the pattern stored in reverse
+order (matching is easier this way). It also holds some information about the
+previous matches used to speed up the process when one iterates over a set of
+siblings. (This optimization may be defeated by trashing when running
+threaded computation, it's unclear that this is a big deal in practice.)
+Predicate expressions are not compiled at this stage, they may be at run-time
+if needed, but in this case they are compiled as full XPath expressions (the
+use of some fixed predicate can probably be optimized, they are not yet).</p><p>The xsltCompMatch are then stored in the hash table, the clash list is
+itself sorted by priority of the template to implement "naturally" the XSLT
+priority rules.</p><p>Associated to the compiled pattern is the xsltTemplate itself containing
+the information required for the processing of the pattern including, of
+course, a pointer to the list of elements used for building the pattern
+result.</p><p>Last but not least a number of patterns do not fit in the hash table
+because they are not associated to a name, this is the case for patterns
+applying to the root, any element, any attributes, text nodes, pi nodes, keys
+etc. Those are stored independently in the stylesheet structure as separate
+linked lists of xsltCompMatch.</p><h3><a name="processing" id="processing">The processing itself</a></h3><p>The processing is defined by the XSLT specification (the basis of the
+algorithm is explained in <a href="http://www.w3.org/TR/xslt#section-Introduction">the Introduction</a>
+section). Basically it works by taking the root of the input document and
+applying the following algorithm:</p><ol><li>Finding the template applying to it. This is a lookup in the template
+    hash table, walking the hash list until the node satisfies all the steps
+    of the pattern, then checking the appropriate(s) global templates to see
+    if there isn't a higher priority rule to apply</li>
+  <li>If there is no template, apply the default rule (recurse on the
+    children)</li>
+  <li>else walk the content list of the selected templates, for each of them:
+    <ul><li>if the node is in the XSLT namespace then the node has a _private
+        field pointing to the preprocessed values, jump to the specific
+      code</li>
+      <li>if the node is in an extension namespace, look up the associated
+        behavior</li>
+      <li>otherwise copy the node.</li>
+    </ul><p>The closure is usually done through the XSLT
+    <strong>apply-templates</strong> construct recursing by applying the
+    adequate template on the input node children or on the result of an
+    associated XPath selection lookup.</p>
+  </li>
+</ol><p>Note that large parts of the input tree may not be processed by a given
+stylesheet and that on the opposite some may be processed multiple times.
+(This often is the case when a Table of Contents is built).</p><p>The module <code>transform.c</code> is the one implementing most of this
+logic. <strong>xsltApplyStylesheet()</strong> is the entry point, it
+allocates an xsltTransformContext containing the following:</p><ul><li>a pointer to the stylesheet being processed</li>
+  <li>a stack of templates</li>
+  <li>a stack of variables and parameters</li>
+  <li>an XPath context</li>
+  <li>the template mode</li>
+  <li>current document</li>
+  <li>current input node</li>
+  <li>current selected node list</li>
+  <li>the current insertion points in the output document</li>
+  <li>a couple of hash tables for extension elements and functions</li>
+</ul><p>Then a new document gets allocated (HTML or XML depending on the type of
+output), the user parameters and global variables and parameters are
+evaluated. Then <strong>xsltProcessOneNode()</strong> which implements the
+1-2-3 algorithm is called on the root element of the input. Step 1/ is
+implemented by calling <strong>xsltGetTemplate()</strong>, step 2/ is
+implemented by <strong>xsltDefaultProcessOneNode()</strong> and step 3/ is
+implemented by <strong>xsltApplyOneTemplate()</strong>.</p><h3><a name="XPath" id="XPath">XPath expression compilation</a></h3><p>The XPath support is actually implemented in the libxml module (where it
+is reused by the XPointer implementation). XPath is a relatively classic
+expression language. The only uncommon feature is that it is working on XML
+trees and hence has specific syntax and types to handle them.</p><p>XPath expressions are compiled using <strong>xmlXPathCompile()</strong>.
+It will take an expression string in input and generate a structure
+containing the parsed expression tree, for example the expression:</p><pre>/doc/chapter[title='Introduction']</pre><p>will be compiled as</p><pre>Compiled Expression : 10 elements
+  SORT
+    COLLECT  'child' 'name' 'node' chapter
+      COLLECT  'child' 'name' 'node' doc
+        ROOT
+      PREDICATE
+        SORT
+          EQUAL =
+            COLLECT  'child' 'name' 'node' title
+              NODE
+            ELEM Object is a string : Introduction
+              COLLECT  'child' 'name' 'node' title
+                NODE</pre><p>This can be tested using the  <code>testXPath</code>  command (in the
+libxml codebase) using the <code>--tree</code> option.</p><p>Again, the KISS approach is used. No optimization is done. This could be
+an interesting thing to add. <a href="http://www-106.ibm.com/developerworks/library/x-xslt2/?dwzone=x?open&amp;l=132%2ct=gr%2c+p=saxon">Michael
+Kay describes</a> a lot of possible and interesting optimizations done in
+Saxon which would be possible at this level. I'm unsure they would provide
+much gain since the expressions tends to be relatively simple in general and
+stylesheets are still hand generated. Optimizations at the interpretation
+sounds likely to be more efficient.</p><h3><a name="XPath1" id="XPath1">XPath interpretation</a></h3><p>The interpreter is implemented by <strong>xmlXPathCompiledEval()</strong>
+which is the front-end to <strong>xmlXPathCompOpEval()</strong> the function
+implementing the evaluation of the expression tree. This evaluation follows
+the KISS approach again. It's recursive and calls
+<strong>xmlXPathNodeCollectAndTest()</strong> to collect nodes set when
+evaluating a <code>COLLECT</code> node.</p><p>An evaluation is done within the framework of an XPath context stored in
+an <strong>xmlXPathContext</strong> structure, in the framework of a
+transformation the context is maintained within the XSLT context. Its content
+follows the requirements from the XPath specification:</p><ul><li>the current document</li>
+  <li>the current node</li>
+  <li>a hash table of defined variables (but not used by XSLT)</li>
+  <li>a hash table of defined functions</li>
+  <li>the proximity position (the place of the node in the current node
+  list)</li>
+  <li>the context size (the size of the current node list)</li>
+  <li>the array of namespace declarations in scope (there also is a namespace
+    hash table but it is not used in the XSLT transformation).</li>
+</ul><p>For the purpose of XSLT an <strong>extra</strong> pointer has been added
+allowing to retrieve the XSLT transformation context. When an XPath
+evaluation is about to be performed, an XPath parser context is allocated
+containing and XPath object stack (this is actually an XPath evaluation
+context, this is a remain of the time where there was no separate parsing and
+evaluation phase in the XPath implementation). Here is an overview of the set
+of contexts associated to an XPath evaluation within an XSLT
+transformation:</p><p align="center"><img src="contexts.gif" alt="The set of contexts associated " /></p><p>Clearly this is a bit too complex and confusing and should be refactored
+at the next set of binary incompatible releases of libxml. For example the
+xmlXPathCtxt has a lot of unused parts and should probably be merged with
+xmlXPathParserCtxt.</p><h3><a name="Descriptio" id="Descriptio">Description of XPath Objects</a></h3><p>An XPath expression manipulates XPath objects. XPath defines the default
+types boolean, numbers, strings and node sets. XSLT adds the result tree
+fragment type which is basically an unmodifiable node set.</p><p>Implementation-wise, libxml follows again a KISS approach, the
+xmlXPathObject is a structure containing a type description and the various
+possibilities. (Using an enum could have gained some bytes.) In the case of
+node sets (or result tree fragments), it points to a separate xmlNodeSet
+object which contains the list of pointers to the document nodes:</p><p align="center"><img src="object.gif" alt="An Node set object pointing to " /></p><p>The <a href="http://xmlsoft.org/html/libxml-xpath.html">XPath API</a> (and
+its <a href="http://xmlsoft.org/html/libxml-xpathinternals.html">'internal'
+part</a>) includes a number of functions to create, copy, compare, convert or
+free XPath objects.</p><h3><a name="XPath3" id="XPath3">XPath functions</a></h3><p>All the XPath functions available to the interpreter are registered in the
+function hash table linked from the XPath context. They all share the same
+signature:</p><pre>void xmlXPathFunc (xmlXPathParserContextPtr ctxt, int nargs);</pre><p>The first argument is the XPath interpretation context, holding the
+interpretation stack. The second argument defines the number of objects
+passed on the stack for the function to consume (last argument is on top of
+the stack).</p><p>Basically an XPath function does the following:</p><ul><li>check <code>nargs</code> for proper handling of errors or functions
+    with variable numbers of parameters</li>
+  <li>pop the parameters from the stack using <code>obj =
+    valuePop(ctxt);</code></li>
+  <li>do the function specific computation</li>
+  <li>push the result parameter on the stack using <code>valuePush(ctxt,
+    res);</code></li>
+  <li>free up the input parameters with
+  <code>xmlXPathFreeObject(obj);</code></li>
+  <li>return</li>
+</ul><p>Sometime the work can be done directly by modifying in-situ the top object
+on the stack <code>ctxt-&gt;value</code>.</p><h3><a name="stack" id="stack">The XSLT variables stack frame</a></h3><p>Not to be confused with XPath object stack, this stack holds the XSLT
+variables and parameters as they are defined through the recursive calls of
+call-template, apply-templates and default templates. This is used to define
+the scope of variables being called.</p><p>This part seems to be the most urgent attention right now, first it is
+done in a very inefficient way since the location of the variables and
+parameters within the stylesheet tree is still done at run time (it really
+should be done statically at compile time), and I am still unsure that my
+understanding of the template variables and parameter scope is actually
+right.</p><p>This part of the documentation is still to be written once this part of
+the code will be stable. <span style="background-color: #FF0000">TODO</span></p><h3><a name="Extension" id="Extension">Extension support</a></h3><p>There is a separate document explaining <a href="extensions.html">how the
+extension support works</a>.</p><h3><a name="Futher" id="Futher">Further reading</a></h3><p>Michael Kay wrote <a href="http://www-106.ibm.com/developerworks/library/x-xslt2/?dwzone=x?open&amp;l=132%2ct=gr%2c+p=saxon">a
+really interesting article on Saxon internals</a> and the work he did on
+performance issues. I wishes I had read it before starting libxslt design (I
+would probably have avoided a few mistakes and progressed faster). A lot of
+the ideas in his papers should be implemented or at least tried in
+libxslt.</p><p>The <a href="http://xmlsoft.org/">libxml documentation</a>, especially <a href="http://xmlsoft.org/xmlio.html">the I/O interfaces</a> and the <a href="http://xmlsoft.org/xmlmem.html">memory management</a>.</p><h3><a name="TODOs" id="TODOs">TODOs</a></h3><p>redesign the XSLT stack frame handling. Far too much work is done at
+execution time. Similarly for the attribute value templates handling, at
+least the embedded subexpressions ought to be precompiled.</p><p>Allow output to be saved to a SAX like output (this notion of SAX like API
+for output should be added directly to libxml).</p><p>Implement and test some of the optimization explained by Michael Kay
+especially:</p><ul><li>static slot allocation on the stack frame</li>
+  <li>specific boolean interpretation of an XPath expression</li>
+  <li>some of the sorting optimization</li>
+  <li>Lazy evaluation of location path. (this may require more changes but
+    sounds really interesting. XT does this too.)</li>
+  <li>Optimization of an expression tree (This could be done as a completely
+    independent module.)</li>
+</ul><p></p><p>Error reporting, there is a lot of case where the XSLT specification
+specify that a given construct is an error are not checked adequately by
+libxslt. Basically one should do a complete pass on the XSLT spec again and
+add all tests to the stylesheet compilation. Using the DTD provided in the
+appendix and making direct checks using the libxml validation API sounds a
+good idea too (though one should take care of not raising errors for
+elements/attributes in different namespaces).</p><p>Double check all the places where the stylesheet compiled form might be
+modified at run time (extra removal of blanks nodes, hint on the
+xsltCompMatch).</p><p></p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/intro.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/intro.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/intro.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Introduction</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Introduction</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>This document describes <a href="http://xmlsoft.org/XSLT/">libxslt</a>,
+the <a href="http://www.w3.org/TR/xslt">XSLT</a> C library developed for the
+<a href="http://www.gnome.org/">Gnome</a> project.</p><p>Here are some key points about libxslt:</p><ul><li>Libxslt is a C implementation</li>
+  <li>Libxslt is based on libxml for XML parsing, tree manipulation and XPath
+    support</li>
+  <li>It is written in plain C, making as few assumptions as possible, and
+    sticking closely to ANSI C/POSIX for easy embedding. Should works on
+    Linux/Unix/Windows.</li>
+  <li>This library is released under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
+  Licence</a></li>
+  <li>Though not designed primarily with performances in mind, libxslt seems
+    to be a relatively fast processor.</li>
+</ul><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/libxslt-api.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/libxslt-api.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/libxslt-api.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2432 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<api name='libxslt'>
+  <files>
+    <file name='attributes'>
+     <summary>interface for the XSLT attribute handling</summary>
+     <description>this module handles the specificities of attribute and attribute groups processing. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='xsltResolveStylesheetAttributeSet' type='function'/>
+     <exports symbol='xsltParseStylesheetAttributeSet' type='function'/>
+     <exports symbol='xsltApplyAttributeSet' type='function'/>
+     <exports symbol='xsltFreeAttributeSetsHashes' type='function'/>
+    </file>
+    <file name='documents'>
+     <summary>interface for the document handling</summary>
+     <description>implements document loading and cache (multiple document() reference for the same resources must be equal. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='XSLT_LOAD_START' type='enum'/>
+     <exports symbol='XSLT_LOAD_DOCUMENT' type='enum'/>
+     <exports symbol='XSLT_LOAD_STYLESHEET' type='enum'/>
+     <exports symbol='xsltLoadType' type='typedef'/>
+     <exports symbol='xsltDocDefaultLoader' type='variable'/>
+     <exports symbol='xsltFreeStyleDocuments' type='function'/>
+     <exports symbol='xsltDocLoaderFunc' type='function'/>
+     <exports symbol='xsltLoadDocument' type='function'/>
+     <exports symbol='xsltNewStyleDocument' type='function'/>
+     <exports symbol='xsltSetLoaderFunc' type='function'/>
+     <exports symbol='xsltFreeDocuments' type='function'/>
+     <exports symbol='xsltNewDocument' type='function'/>
+     <exports symbol='xsltLoadStyleDocument' type='function'/>
+     <exports symbol='xsltFindDocument' type='function'/>
+    </file>
+    <file name='extensions'>
+     <summary>interface for the extension support</summary>
+     <description>This provide the API needed for simple and module extension support. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='xsltRegisterExtFunction' type='function'/>
+     <exports symbol='xsltRegisterExtModuleElement' type='function'/>
+     <exports symbol='xsltInitCtxtExts' type='function'/>
+     <exports symbol='xsltGetExtData' type='function'/>
+     <exports symbol='xsltStyleGetExtData' type='function'/>
+     <exports symbol='xsltStyleExtInitFunction' type='function'/>
+     <exports symbol='xsltExtFunctionLookup' type='function'/>
+     <exports symbol='xsltShutdownExts' type='function'/>
+     <exports symbol='xsltExtModuleElementPreComputeLookup' type='function'/>
+     <exports symbol='xsltRegisterTestModule' type='function'/>
+     <exports symbol='xsltExtModuleElementLookup' type='function'/>
+     <exports symbol='xsltStyleExtShutdownFunction' type='function'/>
+     <exports symbol='xsltInitElemPreComp' type='function'/>
+     <exports symbol='xsltDebugDumpExtensions' type='function'/>
+     <exports symbol='xsltGetExtInfo' type='function'/>
+     <exports symbol='xsltExtModuleTopLevelLookup' type='function'/>
+     <exports symbol='xsltFreeExts' type='function'/>
+     <exports symbol='xsltExtModuleFunctionLookup' type='function'/>
+     <exports symbol='xsltPreComputeExtModuleElement' type='function'/>
+     <exports symbol='xsltRegisterExtModuleTopLevel' type='function'/>
+     <exports symbol='xsltPreComputeFunction' type='function'/>
+     <exports symbol='xsltTopLevelFunction' type='function'/>
+     <exports symbol='xsltShutdownCtxtExts' type='function'/>
+     <exports symbol='xsltXPathGetTransformContext' type='function'/>
+     <exports symbol='xsltRegisterExtElement' type='function'/>
+     <exports symbol='xsltExtInitFunction' type='function'/>
+     <exports symbol='xsltFreeCtxtExts' type='function'/>
+     <exports symbol='xsltUnregisterExtModule' type='function'/>
+     <exports symbol='xsltRegisterExtModuleFull' type='function'/>
+     <exports symbol='xsltUnregisterExtModuleTopLevel' type='function'/>
+     <exports symbol='xsltNewElemPreComp' type='function'/>
+     <exports symbol='xsltUnregisterExtModuleElement' type='function'/>
+     <exports symbol='xsltUnregisterExtModuleFunction' type='function'/>
+     <exports symbol='xsltCheckExtPrefix' type='function'/>
+     <exports symbol='xsltRegisterExtModule' type='function'/>
+     <exports symbol='xsltExtElementLookup' type='function'/>
+     <exports symbol='xsltRegisterExtModuleFunction' type='function'/>
+     <exports symbol='xsltRegisterExtPrefix' type='function'/>
+     <exports symbol='xsltExtShutdownFunction' type='function'/>
+    </file>
+    <file name='extra'>
+     <summary>interface for the non-standard features</summary>
+     <description>implement some extension outside the XSLT namespace but not EXSLT with is in a different library. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='XSLT_XT_NAMESPACE' type='macro'/>
+     <exports symbol='XSLT_XALAN_NAMESPACE' type='macro'/>
+     <exports symbol='XSLT_SAXON_NAMESPACE' type='macro'/>
+     <exports symbol='XSLT_LIBXSLT_NAMESPACE' type='macro'/>
+     <exports symbol='XSLT_NORM_SAXON_NAMESPACE' type='macro'/>
+     <exports symbol='xsltFunctionNodeSet' type='function'/>
+     <exports symbol='xsltRegisterExtras' type='function'/>
+     <exports symbol='xsltDebug' type='function'/>
+     <exports symbol='xsltRegisterAllExtras' type='function'/>
+    </file>
+    <file name='functions'>
+     <summary>interface for the XSLT functions not from XPath</summary>
+     <description>a set of extra functions coming from XSLT but not in XPath </description>
+     <author>Daniel Veillard and Bjorn Reese &lt;breese at users.sourceforge.net&gt; </author>
+     <exports symbol='XSLT_REGISTER_FUNCTION_LOOKUP' type='macro'/>
+     <exports symbol='xsltXPathFunctionLookup' type='function'/>
+     <exports symbol='xsltFunctionAvailableFunction' type='function'/>
+     <exports symbol='xsltFormatNumberFunction' type='function'/>
+     <exports symbol='xsltRegisterAllFunctions' type='function'/>
+     <exports symbol='xsltKeyFunction' type='function'/>
+     <exports symbol='xsltUnparsedEntityURIFunction' type='function'/>
+     <exports symbol='xsltDocumentFunction' type='function'/>
+     <exports symbol='xsltSystemPropertyFunction' type='function'/>
+     <exports symbol='xsltElementAvailableFunction' type='function'/>
+     <exports symbol='xsltGenerateIdFunction' type='function'/>
+    </file>
+    <file name='imports'>
+     <summary>interface for the XSLT import support</summary>
+     <description>macros and fuctions needed to implement and access the import tree </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='XSLT_GET_IMPORT_PTR' type='macro'/>
+     <exports symbol='XSLT_GET_IMPORT_INT' type='macro'/>
+     <exports symbol='xsltFindTemplate' type='function'/>
+     <exports symbol='xsltNextImport' type='function'/>
+     <exports symbol='xsltParseStylesheetInclude' type='function'/>
+     <exports symbol='xsltNeedElemSpaceHandling' type='function'/>
+     <exports symbol='xsltFindElemSpaceHandling' type='function'/>
+     <exports symbol='xsltParseStylesheetImport' type='function'/>
+    </file>
+    <file name='keys'>
+     <summary>interface for the key matching used in key() and template matches.</summary>
+     <description>implementation of the key mechanims. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='NODE_IS_KEYED' type='macro'/>
+     <exports symbol='xsltInitCtxtKeys' type='function'/>
+     <exports symbol='xsltFreeKeys' type='function'/>
+     <exports symbol='xsltGetKey' type='function'/>
+     <exports symbol='xsltFreeDocumentKeys' type='function'/>
+     <exports symbol='xsltAddKey' type='function'/>
+    </file>
+    <file name='namespaces'>
+     <summary>interface for the XSLT namespace handling</summary>
+     <description>set of function easing the processing and generation of namespace nodes in XSLT. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='UNDEFINED_DEFAULT_NS' type='macro'/>
+     <exports symbol='xsltFreeNamespaceAliasHashes' type='function'/>
+     <exports symbol='xsltCopyNamespace' type='function'/>
+     <exports symbol='xsltCopyNamespaceList' type='function'/>
+     <exports symbol='xsltGetNamespace' type='function'/>
+     <exports symbol='xsltGetPlainNamespace' type='function'/>
+     <exports symbol='xsltGetSpecialNamespace' type='function'/>
+     <exports symbol='xsltNamespaceAlias' type='function'/>
+    </file>
+    <file name='numbersInternals'>
+     <summary>Implementation of the XSLT number functions</summary>
+     <description>Implementation of the XSLT number functions </description>
+     <author>Bjorn Reese &lt;breese at users.sourceforge.net&gt; and Daniel Veillard </author>
+     <exports symbol='xsltFormatNumberInfo' type='typedef'/>
+     <exports symbol='xsltNumberData' type='typedef'/>
+     <exports symbol='xsltNumberDataPtr' type='typedef'/>
+     <exports symbol='xsltFormatNumberInfoPtr' type='typedef'/>
+     <exports symbol='_xsltNumberData' type='struct'/>
+     <exports symbol='_xsltFormatNumberInfo' type='struct'/>
+    </file>
+    <file name='pattern'>
+     <summary>interface for the pattern matching used in template matches.</summary>
+     <description>the implementation of the lookup of the right template for a given node must be really fast in order to keep decent performances. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='xsltCompMatch' type='typedef'/>
+     <exports symbol='xsltCompMatchPtr' type='typedef'/>
+     <exports symbol='xsltNormalizeCompSteps' type='function'/>
+     <exports symbol='xsltAddTemplate' type='function'/>
+     <exports symbol='xsltCompilePattern' type='function'/>
+     <exports symbol='xsltMatchPattern' type='function'/>
+     <exports symbol='xsltGetTemplate' type='function'/>
+     <exports symbol='xsltTestCompMatchList' type='function'/>
+     <exports symbol='xsltFreeCompMatchList' type='function'/>
+     <exports symbol='xsltFreeTemplateHashes' type='function'/>
+     <exports symbol='xsltCleanupTemplates' type='function'/>
+    </file>
+    <file name='preproc'>
+     <summary>precomputing stylesheets</summary>
+     <description>this is the compilation phase, where most of the stylesheet is &quot;compiled&quot; into faster to use data. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='xsltExtMarker' type='variable'/>
+     <exports symbol='xsltFreeStylePreComps' type='function'/>
+     <exports symbol='xsltDocumentComp' type='function'/>
+     <exports symbol='xsltStylePreCompute' type='function'/>
+    </file>
+    <file name='security'>
+     <summary>interface for the libxslt security framework</summary>
+     <description>the libxslt security framework allow to restrict the access to new resources (file or URL) from the stylesheet at runtime. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='XSLT_SECPREF_CREATE_DIRECTORY' type='enum'/>
+     <exports symbol='XSLT_SECPREF_WRITE_FILE' type='enum'/>
+     <exports symbol='XSLT_SECPREF_READ_NETWORK' type='enum'/>
+     <exports symbol='XSLT_SECPREF_READ_FILE' type='enum'/>
+     <exports symbol='XSLT_SECPREF_WRITE_NETWORK' type='enum'/>
+     <exports symbol='xsltSecurityPrefs' type='typedef'/>
+     <exports symbol='xsltSecurityPrefsPtr' type='typedef'/>
+     <exports symbol='xsltSecurityOption' type='typedef'/>
+     <exports symbol='xsltNewSecurityPrefs' type='function'/>
+     <exports symbol='xsltSecurityCheck' type='function'/>
+     <exports symbol='xsltSetSecurityPrefs' type='function'/>
+     <exports symbol='xsltGetDefaultSecurityPrefs' type='function'/>
+     <exports symbol='xsltFreeSecurityPrefs' type='function'/>
+     <exports symbol='xsltSetDefaultSecurityPrefs' type='function'/>
+     <exports symbol='xsltSetCtxtSecurityPrefs' type='function'/>
+     <exports symbol='xsltGetSecurityPrefs' type='function'/>
+     <exports symbol='xsltSecurityAllow' type='function'/>
+     <exports symbol='xsltCheckWrite' type='function'/>
+     <exports symbol='xsltCheckRead' type='function'/>
+     <exports symbol='xsltSecurityForbid' type='function'/>
+    </file>
+    <file name='templates'>
+     <summary>interface for the template processing</summary>
+     <description>This set of routine encapsulates XPath calls and Attribute Value Templates evaluation. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='xsltEvalStaticAttrValueTemplate' type='function'/>
+     <exports symbol='xsltAttrListTemplateProcess' type='function'/>
+     <exports symbol='xsltEvalTemplateString' type='function'/>
+     <exports symbol='xsltAttrTemplateValueProcess' type='function'/>
+     <exports symbol='xsltAttrTemplateProcess' type='function'/>
+     <exports symbol='xsltEvalAttrValueTemplate' type='function'/>
+     <exports symbol='xsltEvalXPathPredicate' type='function'/>
+     <exports symbol='xsltAttrTemplateValueProcessNode' type='function'/>
+     <exports symbol='xsltTemplateProcess' type='function'/>
+     <exports symbol='xsltEvalXPathStringNs' type='function'/>
+     <exports symbol='xsltEvalXPathString' type='function'/>
+    </file>
+    <file name='transform'>
+     <summary>the XSLT engine transformation part.</summary>
+     <description>This module implements the bulk of the actual</description>
+     <author>Daniel Veillard </author>
+     <exports symbol='xsltValueOf' type='function'/>
+     <exports symbol='xsltRegisterAllElement' type='function'/>
+     <exports symbol='xsltSort' type='function'/>
+     <exports symbol='xsltCopyOf' type='function'/>
+     <exports symbol='xsltApplyTemplates' type='function'/>
+     <exports symbol='xsltIf' type='function'/>
+     <exports symbol='xsltCallTemplate' type='function'/>
+     <exports symbol='xsltApplyStylesheet' type='function'/>
+     <exports symbol='xsltApplyStripSpaces' type='function'/>
+     <exports symbol='xsltSetXIncludeDefault' type='function'/>
+     <exports symbol='xsltFreeTransformContext' type='function'/>
+     <exports symbol='xsltRunStylesheet' type='function'/>
+     <exports symbol='xsltChoose' type='function'/>
+     <exports symbol='xsltCopyTextString' type='function'/>
+     <exports symbol='xsltText' type='function'/>
+     <exports symbol='xsltNumber' type='function'/>
+     <exports symbol='xsltRunStylesheetUser' type='function'/>
+     <exports symbol='xsltNewTransformContext' type='function'/>
+     <exports symbol='xsltGetXIncludeDefault' type='function'/>
+     <exports symbol='xsltApplyOneTemplate' type='function'/>
+     <exports symbol='xslHandleDebugger' type='function'/>
+     <exports symbol='xsltCopy' type='function'/>
+     <exports symbol='xsltDocumentElem' type='function'/>
+     <exports symbol='xsltAttribute' type='function'/>
+     <exports symbol='xsltApplyImports' type='function'/>
+     <exports symbol='xsltElement' type='function'/>
+     <exports symbol='xsltProfileStylesheet' type='function'/>
+     <exports symbol='xsltForEach' type='function'/>
+     <exports symbol='xsltApplyStylesheetUser' type='function'/>
+     <exports symbol='xsltProcessingInstruction' type='function'/>
+     <exports symbol='xsltComment' type='function'/>
+    </file>
+    <file name='variables'>
+     <summary>interface for the variable matching and lookup.</summary>
+     <description>interface for the variable matching and lookup. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='XSLT_REGISTER_VARIABLE_LOOKUP' type='macro'/>
+     <exports symbol='xsltFreeGlobalVariables' type='function'/>
+     <exports symbol='xsltQuoteUserParams' type='function'/>
+     <exports symbol='xsltXPathVariableLookup' type='function'/>
+     <exports symbol='xsltEvalUserParams' type='function'/>
+     <exports symbol='xsltParseStylesheetCallerParam' type='function'/>
+     <exports symbol='xsltAddStackElemList' type='function'/>
+     <exports symbol='xsltParseGlobalVariable' type='function'/>
+     <exports symbol='xsltQuoteOneUserParam' type='function'/>
+     <exports symbol='xsltParseGlobalParam' type='function'/>
+     <exports symbol='xsltParseStylesheetVariable' type='function'/>
+     <exports symbol='xsltEvalGlobalVariables' type='function'/>
+     <exports symbol='xsltEvalOneUserParam' type='function'/>
+     <exports symbol='xsltParseStylesheetParam' type='function'/>
+     <exports symbol='xsltVariableLookup' type='function'/>
+    </file>
+    <file name='xslt'>
+     <summary>Interfaces, constants and types related to the XSLT engine</summary>
+     <description>Interfaces, constants and types related to the XSLT engine </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='XSLT_DEFAULT_VERSION' type='macro'/>
+     <exports symbol='XSLT_DEFAULT_VENDOR' type='macro'/>
+     <exports symbol='XSLT_PARSE_OPTIONS' type='macro'/>
+     <exports symbol='XSLT_DEFAULT_URL' type='macro'/>
+     <exports symbol='XSLT_NAMESPACE' type='macro'/>
+     <exports symbol='xsltLibxmlVersion' type='variable'/>
+     <exports symbol='xsltEngineVersion' type='variable'/>
+     <exports symbol='xsltLibxsltVersion' type='variable'/>
+     <exports symbol='xsltMaxDepth' type='variable'/>
+     <exports symbol='xsltCleanupGlobals' type='function'/>
+    </file>
+    <file name='xsltInternals'>
+     <summary>internal data structures, constants and functions</summary>
+     <description>Internal data structures, constants and functions used by the XSLT engine. They are not part of the API or ABI, i.e. they can change without prior notice, use carefully. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='CHECK_STOPPED0' type='macro'/>
+     <exports symbol='XSLT_PAT_NO_PRIORITY' type='macro'/>
+     <exports symbol='CHECK_STOPPED' type='macro'/>
+     <exports symbol='XSLT_RUNTIME_EXTRA_LST' type='macro'/>
+     <exports symbol='XSLT_RUNTIME_EXTRA_FREE' type='macro'/>
+     <exports symbol='XSLT_MAX_SORT' type='macro'/>
+     <exports symbol='XSLT_RUNTIME_EXTRA' type='macro'/>
+     <exports symbol='CHECK_STOPPEDE' type='macro'/>
+     <exports symbol='XML_CAST_FPTR' type='macro'/>
+     <exports symbol='XSLT_FUNC_ELEMENT' type='enum'/>
+     <exports symbol='XSLT_FUNC_VALUEOF' type='enum'/>
+     <exports symbol='XSLT_FUNC_WITHPARAM' type='enum'/>
+     <exports symbol='XSLT_OUTPUT_XML' type='enum'/>
+     <exports symbol='XSLT_STATE_ERROR' type='enum'/>
+     <exports symbol='XSLT_OUTPUT_HTML' type='enum'/>
+     <exports symbol='XSLT_OUTPUT_TEXT' type='enum'/>
+     <exports symbol='XSLT_STATE_OK' type='enum'/>
+     <exports symbol='XSLT_FUNC_FOREACH' type='enum'/>
+     <exports symbol='XSLT_FUNC_CHOOSE' type='enum'/>
+     <exports symbol='XSLT_FUNC_SORT' type='enum'/>
+     <exports symbol='XSLT_STATE_STOPPED' type='enum'/>
+     <exports symbol='XSLT_FUNC_NUMBER' type='enum'/>
+     <exports symbol='XSLT_FUNC_ATTRIBUTE' type='enum'/>
+     <exports symbol='XSLT_FUNC_APPLYTEMPLATES' type='enum'/>
+     <exports symbol='XSLT_FUNC_WHEN' type='enum'/>
+     <exports symbol='XSLT_FUNC_APPLYIMPORTS' type='enum'/>
+     <exports symbol='XSLT_FUNC_COPY' type='enum'/>
+     <exports symbol='XSLT_FUNC_EXTENSION' type='enum'/>
+     <exports symbol='XSLT_FUNC_COPYOF' type='enum'/>
+     <exports symbol='XSLT_FUNC_PARAM' type='enum'/>
+     <exports symbol='XSLT_FUNC_COMMENT' type='enum'/>
+     <exports symbol='XSLT_FUNC_DOCUMENT' type='enum'/>
+     <exports symbol='XSLT_FUNC_IF' type='enum'/>
+     <exports symbol='XSLT_FUNC_PI' type='enum'/>
+     <exports symbol='XSLT_FUNC_TEXT' type='enum'/>
+     <exports symbol='XSLT_FUNC_VARIABLE' type='enum'/>
+     <exports symbol='XSLT_FUNC_CALLTEMPLATE' type='enum'/>
+     <exports symbol='xsltStylePreComp' type='typedef'/>
+     <exports symbol='xsltRuntimeExtra' type='typedef'/>
+     <exports symbol='xsltTransformContext' type='typedef'/>
+     <exports symbol='xsltElemPreComp' type='typedef'/>
+     <exports symbol='xsltTemplatePtr' type='typedef'/>
+     <exports symbol='xsltOutputType' type='typedef'/>
+     <exports symbol='xsltDecimalFormat' type='typedef'/>
+     <exports symbol='xsltDecimalFormatPtr' type='typedef'/>
+     <exports symbol='xsltTransformContextPtr' type='typedef'/>
+     <exports symbol='xsltDocument' type='typedef'/>
+     <exports symbol='xsltTransformState' type='typedef'/>
+     <exports symbol='xsltStylePreCompPtr' type='typedef'/>
+     <exports symbol='xsltDocumentPtr' type='typedef'/>
+     <exports symbol='xsltStylesheetPtr' type='typedef'/>
+     <exports symbol='xsltStyleType' type='typedef'/>
+     <exports symbol='xsltRuntimeExtraPtr' type='typedef'/>
+     <exports symbol='xsltStylesheet' type='typedef'/>
+     <exports symbol='xsltElemPreCompPtr' type='typedef'/>
+     <exports symbol='xsltTemplate' type='typedef'/>
+     <exports symbol='xsltStackElem' type='typedef'/>
+     <exports symbol='xsltStackElemPtr' type='typedef'/>
+     <exports symbol='_xsltStackElem' type='struct'/>
+     <exports symbol='_xsltTransformContext' type='struct'/>
+     <exports symbol='_xsltElemPreComp' type='struct'/>
+     <exports symbol='_xsltRuntimeExtra' type='struct'/>
+     <exports symbol='_xsltStylePreComp' type='struct'/>
+     <exports symbol='_xsltDecimalFormat' type='struct'/>
+     <exports symbol='_xsltTemplate' type='struct'/>
+     <exports symbol='_xsltDocument' type='struct'/>
+     <exports symbol='_xsltStylesheet' type='struct'/>
+     <exports symbol='xsltElemPreCompDeallocator' type='function'/>
+     <exports symbol='xsltRegisterPersistRVT' type='function'/>
+     <exports symbol='xsltParseStylesheetImportedDoc' type='function'/>
+     <exports symbol='xsltFreeStackElemList' type='function'/>
+     <exports symbol='xsltAllocateExtra' type='function'/>
+     <exports symbol='xsltRegisterTmpRVT' type='function'/>
+     <exports symbol='xsltIsBlank' type='function'/>
+     <exports symbol='xsltFormatNumberConversion' type='function'/>
+     <exports symbol='xsltSortFunc' type='function'/>
+     <exports symbol='xsltFreeStylesheet' type='function'/>
+     <exports symbol='xsltCreateRVT' type='function'/>
+     <exports symbol='xsltParseStylesheetProcess' type='function'/>
+     <exports symbol='xsltParseStylesheetOutput' type='function'/>
+     <exports symbol='xsltCompileAttr' type='function'/>
+     <exports symbol='xsltNumberFormat' type='function'/>
+     <exports symbol='xsltFreeRVTs' type='function'/>
+     <exports symbol='xsltFreeAVTList' type='function'/>
+     <exports symbol='xsltAllocateExtraCtxt' type='function'/>
+     <exports symbol='xsltParseTemplateContent' type='function'/>
+     <exports symbol='xsltNewStylesheet' type='function'/>
+     <exports symbol='xsltDecimalFormatGetByName' type='function'/>
+     <exports symbol='xsltTransformFunction' type='function'/>
+     <exports symbol='xsltParseStylesheetFile' type='function'/>
+     <exports symbol='xsltParseStylesheetDoc' type='function'/>
+     <exports symbol='xsltEvalAVT' type='function'/>
+     <exports symbol='xsltLoadStylesheetPI' type='function'/>
+    </file>
+    <file name='xsltexports'>
+     <summary>macros for marking symbols as exportable/importable.</summary>
+     <description>macros for marking symbols as exportable/importable. </description>
+     <author>Igor Zlatkovic &lt;igor at zlatkovic.com&gt; </author>
+     <exports symbol='LIBXSLT_PUBLIC' type='macro'/>
+     <exports symbol='XSLTPUBFUN' type='macro'/>
+     <exports symbol='XSLTPUBVAR' type='macro'/>
+     <exports symbol='_REENTRANT' type='macro'/>
+     <exports symbol='XSLTCALL' type='macro'/>
+    </file>
+    <file name='xsltutils'>
+     <summary>set of utilities for the XSLT engine</summary>
+     <description>interfaces for the utilities module of the XSLT engine. things like message handling, profiling, and other generally useful routines. </description>
+     <author>Daniel Veillard </author>
+     <exports symbol='IS_XSLT_REAL_NODE' type='macro'/>
+     <exports symbol='IS_XSLT_ELEM' type='macro'/>
+     <exports symbol='IS_XSLT_NAME' type='macro'/>
+     <exports symbol='XSLT_TODO' type='macro'/>
+     <exports symbol='XSLT_STRANGE' type='macro'/>
+     <exports symbol='XSLT_TIMESTAMP_TICS_PER_SEC' type='macro'/>
+     <exports symbol='XSLT_TRACE' type='macro'/>
+     <exports symbol='XSLT_TRACE_KEYS' type='enum'/>
+     <exports symbol='XSLT_DEBUG_NEXT' type='enum'/>
+     <exports symbol='XSLT_TRACE_COPY_OF' type='enum'/>
+     <exports symbol='XSLT_TRACE_FOR_EACH' type='enum'/>
+     <exports symbol='XSLT_DEBUG_STEPOUT' type='enum'/>
+     <exports symbol='XSLT_DEBUG_RUN' type='enum'/>
+     <exports symbol='XSLT_TRACE_APPLY_TEMPLATES' type='enum'/>
+     <exports symbol='XSLT_TRACE_CHOOSE' type='enum'/>
+     <exports symbol='XSLT_DEBUG_INIT' type='enum'/>
+     <exports symbol='XSLT_DEBUG_RUN_RESTART' type='enum'/>
+     <exports symbol='XSLT_TRACE_ALL' type='enum'/>
+     <exports symbol='XSLT_TRACE_CALL_TEMPLATE' type='enum'/>
+     <exports symbol='XSLT_TRACE_IF' type='enum'/>
+     <exports symbol='XSLT_TRACE_PROCESS_NODE' type='enum'/>
+     <exports symbol='XSLT_TRACE_COPY_TEXT' type='enum'/>
+     <exports symbol='XSLT_TRACE_APPLY_TEMPLATE' type='enum'/>
+     <exports symbol='XSLT_DEBUG_CONT' type='enum'/>
+     <exports symbol='XSLT_TRACE_VALUE_OF' type='enum'/>
+     <exports symbol='XSLT_DEBUG_STEP' type='enum'/>
+     <exports symbol='XSLT_TRACE_STRIP_SPACES' type='enum'/>
+     <exports symbol='XSLT_DEBUG_STOP' type='enum'/>
+     <exports symbol='XSLT_TRACE_COPY' type='enum'/>
+     <exports symbol='XSLT_TRACE_NONE' type='enum'/>
+     <exports symbol='XSLT_DEBUG_NONE' type='enum'/>
+     <exports symbol='XSLT_TRACE_PI' type='enum'/>
+     <exports symbol='XSLT_TRACE_COMMENT' type='enum'/>
+     <exports symbol='XSLT_TRACE_VARIABLES' type='enum'/>
+     <exports symbol='XSLT_DEBUG_QUIT' type='enum'/>
+     <exports symbol='XSLT_TRACE_TEMPLATES' type='enum'/>
+     <exports symbol='xsltDebugTraceCodes' type='typedef'/>
+     <exports symbol='xsltDebugStatusCodes' type='typedef'/>
+     <exports symbol='xsltGenericError' type='variable'/>
+     <exports symbol='xsltGenericDebug' type='variable'/>
+     <exports symbol='xsltGenericErrorContext' type='variable'/>
+     <exports symbol='xslDebugStatus' type='variable'/>
+     <exports symbol='xsltGenericDebugContext' type='variable'/>
+     <exports symbol='xsltSaveResultToFile' type='function'/>
+     <exports symbol='xsltSetGenericErrorFunc' type='function'/>
+     <exports symbol='xsltSetDebuggerCallbacks' type='function'/>
+     <exports symbol='xsltSaveResultTo' type='function'/>
+     <exports symbol='xsltTransformError' type='function'/>
+     <exports symbol='xslAddCall' type='function'/>
+     <exports symbol='xsltDocumentSortFunction' type='function'/>
+     <exports symbol='xsltGetQNameURI2' type='function'/>
+     <exports symbol='xsltComputeSortResult' type='function'/>
+     <exports symbol='xsltPrintErrorContext' type='function'/>
+     <exports symbol='xsltGetUTF8Char' type='function'/>
+     <exports symbol='xsltDefaultSortFunction' type='function'/>
+     <exports symbol='xsltSaveResultToFd' type='function'/>
+     <exports symbol='xsltSetCtxtSortFunc' type='function'/>
+     <exports symbol='xsltGetNsProp' type='function'/>
+     <exports symbol='xsltGetCNsProp' type='function'/>
+     <exports symbol='xsltGetQNameURI' type='function'/>
+     <exports symbol='xsltAddCallCallback' type='function'/>
+     <exports symbol='xsltCalibrateAdjust' type='function'/>
+     <exports symbol='xsltSaveProfiling' type='function'/>
+     <exports symbol='xsltSaveResultToString' type='function'/>
+     <exports symbol='xsltSplitQName' type='function'/>
+     <exports symbol='xsltDoSortFunction' type='function'/>
+     <exports symbol='xsltDebugGetDefaultTrace' type='function'/>
+     <exports symbol='xsltMessage' type='function'/>
+     <exports symbol='xsltGetDebuggerStatus' type='function'/>
+     <exports symbol='xsltTimestamp' type='function'/>
+     <exports symbol='xsltSetTransformErrorFunc' type='function'/>
+     <exports symbol='xsltXPathCompile' type='function'/>
+     <exports symbol='xsltDebugSetDefaultTrace' type='function'/>
+     <exports symbol='xsltSetGenericDebugFunc' type='function'/>
+     <exports symbol='xsltSetCtxtParseOptions' type='function'/>
+     <exports symbol='xsltSetDebuggerStatus' type='function'/>
+     <exports symbol='xslDropCall' type='function'/>
+     <exports symbol='xsltSetSortFunc' type='function'/>
+     <exports symbol='xsltHandleDebuggerCallback' type='function'/>
+     <exports symbol='xsltSaveResultToFilename' type='function'/>
+     <exports symbol='xsltDropCallCallback' type='function'/>
+     <exports symbol='xsltGetProfileInformation' type='function'/>
+    </file>
+  </files>
+  <symbols>
+    <macro name='CHECK_STOPPED' file='xsltInternals'>
+      <info>Macro to check if the XSLT processing should be stopped. Will return from the function.</info>
+    </macro>
+    <macro name='CHECK_STOPPED0' file='xsltInternals'>
+      <info>Macro to check if the XSLT processing should be stopped. Will return from the function with a 0 value.</info>
+    </macro>
+    <macro name='CHECK_STOPPEDE' file='xsltInternals'>
+      <info>Macro to check if the XSLT processing should be stopped. Will goto the error: label.</info>
+    </macro>
+    <macro name='IS_XSLT_ELEM' file='xsltutils'>
+      <info>Checks that the element pertains to XSLT namespace.</info>
+    </macro>
+    <macro name='IS_XSLT_NAME' file='xsltutils'>
+      <info>Checks the value of an element in XSLT namespace.</info>
+    </macro>
+    <macro name='IS_XSLT_REAL_NODE' file='xsltutils'>
+      <info>Check that a node is a &apos;real&apos; one: document, element, text or attribute.</info>
+    </macro>
+    <macro name='LIBXSLT_PUBLIC' file='xsltexports'>
+    </macro>
+    <macro name='NODE_IS_KEYED' file='keys'>
+    </macro>
+    <macro name='UNDEFINED_DEFAULT_NS' file='namespaces'>
+    </macro>
+    <macro name='XML_CAST_FPTR' file='xsltInternals'>
+      <info>Macro to do a casting from an object pointer to a function pointer without encountering a warning from gcc  #define XML_CAST_FPTR(fptr) (*(void **)(&amp;fptr)) This macro violated ISO C aliasing rules (gcc4 on s390 broke) so it is disabled now</info>
+      <arg name='fptr' info='pointer to a function'/>
+    </macro>
+    <macro name='XSLTCALL' file='xsltexports'>
+    </macro>
+    <macro name='XSLTPUBFUN' file='xsltexports'>
+    </macro>
+    <macro name='XSLTPUBVAR' file='xsltexports'>
+    </macro>
+    <macro name='XSLT_DEFAULT_URL' file='xslt'>
+      <info>The XSLT &quot;vendor&quot; URL for this processor.</info>
+    </macro>
+    <macro name='XSLT_DEFAULT_VENDOR' file='xslt'>
+      <info>The XSLT &quot;vendor&quot; string for this processor.</info>
+    </macro>
+    <macro name='XSLT_DEFAULT_VERSION' file='xslt'>
+      <info>The default version of XSLT supported.</info>
+    </macro>
+    <macro name='XSLT_GET_IMPORT_INT' file='imports'>
+      <info>A macro to import intergers from the stylesheet cascading order.</info>
+    </macro>
+    <macro name='XSLT_GET_IMPORT_PTR' file='imports'>
+      <info>A macro to import pointers from the stylesheet cascading order.</info>
+    </macro>
+    <macro name='XSLT_LIBXSLT_NAMESPACE' file='extra'>
+      <info>This is the libxslt namespace for specific extensions.</info>
+    </macro>
+    <macro name='XSLT_MAX_SORT' file='xsltInternals'>
+      <info>Max number of specified xsl:sort on an element.</info>
+    </macro>
+    <macro name='XSLT_NAMESPACE' file='xslt'>
+      <info>The XSLT specification namespace.</info>
+    </macro>
+    <macro name='XSLT_NORM_SAXON_NAMESPACE' file='extra'>
+      <info>This is Norm&apos;s namespace for SAXON extensions.</info>
+    </macro>
+    <macro name='XSLT_PARSE_OPTIONS' file='xslt'>
+      <info>The set of options to pass to an xmlReadxxx when loading files for XSLT consumption.</info>
+    </macro>
+    <macro name='XSLT_PAT_NO_PRIORITY' file='xsltInternals'>
+      <info>Specific value for pattern without priority expressed.</info>
+    </macro>
+    <macro name='XSLT_REGISTER_FUNCTION_LOOKUP' file='functions'>
+      <info>Registering macro, not general purpose at all but used in different modules.</info>
+    </macro>
+    <macro name='XSLT_REGISTER_VARIABLE_LOOKUP' file='variables'>
+      <info>Registering macro, not general purpose at all but used in different modules.</info>
+    </macro>
+    <macro name='XSLT_RUNTIME_EXTRA' file='xsltInternals'>
+      <info>Macro used to define extra information stored in the context</info>
+      <arg name='ctxt' info='the transformation context'/>
+      <arg name='nr' info='the index'/>
+    </macro>
+    <macro name='XSLT_RUNTIME_EXTRA_FREE' file='xsltInternals'>
+      <info>Macro used to free extra information stored in the context</info>
+      <arg name='ctxt' info='the transformation context'/>
+      <arg name='nr' info='the index'/>
+    </macro>
+    <macro name='XSLT_RUNTIME_EXTRA_LST' file='xsltInternals'>
+      <info>Macro used to access extra information stored in the context</info>
+      <arg name='ctxt' info='the transformation context'/>
+      <arg name='nr' info='the index'/>
+    </macro>
+    <macro name='XSLT_SAXON_NAMESPACE' file='extra'>
+      <info>This is Michael Kay&apos;s Saxon processor namespace for extensions.</info>
+    </macro>
+    <macro name='XSLT_STRANGE' file='xsltutils'>
+      <info>Macro to flag that a problem was detected internally.</info>
+    </macro>
+    <macro name='XSLT_TIMESTAMP_TICS_PER_SEC' file='xsltutils'>
+      <info>Sampling precision for profiling</info>
+    </macro>
+    <macro name='XSLT_TODO' file='xsltutils'>
+      <info>Macro to flag unimplemented blocks.</info>
+    </macro>
+    <macro name='XSLT_TRACE' file='xsltutils'>
+      <info>Control the type of xsl debugtrace messages emitted.</info>
+    </macro>
+    <macro name='XSLT_XALAN_NAMESPACE' file='extra'>
+      <info>This is the Apache project XALAN processor namespace for extensions.</info>
+    </macro>
+    <macro name='XSLT_XT_NAMESPACE' file='extra'>
+      <info>This is James Clark&apos;s XT processor namespace for extensions.</info>
+    </macro>
+    <macro name='_REENTRANT' file='xsltexports'>
+    </macro>
+    <enum name='XSLT_DEBUG_CONT' file='xsltutils' value='6' type='xsltDebugStatusCodes'/>
+    <enum name='XSLT_DEBUG_INIT' file='xsltutils' value='1' type='xsltDebugStatusCodes'/>
+    <enum name='XSLT_DEBUG_NEXT' file='xsltutils' value='4' type='xsltDebugStatusCodes'/>
+    <enum name='XSLT_DEBUG_NONE' file='xsltutils' value='0' type='xsltDebugStatusCodes' info='no debugging allowed'/>
+    <enum name='XSLT_DEBUG_QUIT' file='xsltutils' value='9' type='xsltDebugStatusCodes'/>
+    <enum name='XSLT_DEBUG_RUN' file='xsltutils' value='7' type='xsltDebugStatusCodes'/>
+    <enum name='XSLT_DEBUG_RUN_RESTART' file='xsltutils' value='8' type='xsltDebugStatusCodes'/>
+    <enum name='XSLT_DEBUG_STEP' file='xsltutils' value='2' type='xsltDebugStatusCodes'/>
+    <enum name='XSLT_DEBUG_STEPOUT' file='xsltutils' value='3' type='xsltDebugStatusCodes'/>
+    <enum name='XSLT_DEBUG_STOP' file='xsltutils' value='5' type='xsltDebugStatusCodes'/>
+    <enum name='XSLT_FUNC_APPLYIMPORTS' file='xsltInternals' value='11' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_APPLYTEMPLATES' file='xsltInternals' value='13' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_ATTRIBUTE' file='xsltInternals' value='5' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_CALLTEMPLATE' file='xsltInternals' value='12' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_CHOOSE' file='xsltInternals' value='14' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_COMMENT' file='xsltInternals' value='6' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_COPY' file='xsltInternals' value='1' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_COPYOF' file='xsltInternals' value='8' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_DOCUMENT' file='xsltInternals' value='17' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_ELEMENT' file='xsltInternals' value='4' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_EXTENSION' file='xsltInternals' value='22' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_FOREACH' file='xsltInternals' value='16' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_IF' file='xsltInternals' value='15' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_NUMBER' file='xsltInternals' value='10' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_PARAM' file='xsltInternals' value='19' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_PI' file='xsltInternals' value='7' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_SORT' file='xsltInternals' value='2' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_TEXT' file='xsltInternals' value='3' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_VALUEOF' file='xsltInternals' value='9' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_VARIABLE' file='xsltInternals' value='20' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_WHEN' file='xsltInternals' value='21' type='xsltStyleType'/>
+    <enum name='XSLT_FUNC_WITHPARAM' file='xsltInternals' value='18' type='xsltStyleType'/>
+    <enum name='XSLT_LOAD_DOCUMENT' file='documents' value='2' type='xsltLoadType' info=' loading document at transformation time'/>
+    <enum name='XSLT_LOAD_START' file='documents' value='0' type='xsltLoadType' info='loading for a top stylesheet'/>
+    <enum name='XSLT_LOAD_STYLESHEET' file='documents' value='1' type='xsltLoadType' info='loading for a stylesheet include/import'/>
+    <enum name='XSLT_OUTPUT_HTML' file='xsltInternals' value='1' type='xsltOutputType'/>
+    <enum name='XSLT_OUTPUT_TEXT' file='xsltInternals' value='2' type='xsltOutputType'/>
+    <enum name='XSLT_OUTPUT_XML' file='xsltInternals' value='0' type='xsltOutputType'/>
+    <enum name='XSLT_SECPREF_CREATE_DIRECTORY' file='security' value='3' type='xsltSecurityOption'/>
+    <enum name='XSLT_SECPREF_READ_FILE' file='security' value='1' type='xsltSecurityOption'/>
+    <enum name='XSLT_SECPREF_READ_NETWORK' file='security' value='4' type='xsltSecurityOption'/>
+    <enum name='XSLT_SECPREF_WRITE_FILE' file='security' value='2' type='xsltSecurityOption'/>
+    <enum name='XSLT_SECPREF_WRITE_NETWORK' file='security' value='5' type='xsltSecurityOption'/>
+    <enum name='XSLT_STATE_ERROR' file='xsltInternals' value='1' type='xsltTransformState'/>
+    <enum name='XSLT_STATE_OK' file='xsltInternals' value='0' type='xsltTransformState'/>
+    <enum name='XSLT_STATE_STOPPED' file='xsltInternals' value='2' type='xsltTransformState'/>
+    <enum name='XSLT_TRACE_ALL' file='xsltutils' value='-1' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_APPLY_TEMPLATE' file='xsltutils' value='4' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_APPLY_TEMPLATES' file='xsltutils' value='512' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_CALL_TEMPLATE' file='xsltutils' value='256' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_CHOOSE' file='xsltutils' value='1024' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_COMMENT' file='xsltutils' value='16' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_COPY' file='xsltutils' value='8' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_COPY_OF' file='xsltutils' value='64' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_COPY_TEXT' file='xsltutils' value='1' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_FOR_EACH' file='xsltutils' value='4096' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_IF' file='xsltutils' value='2048' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_KEYS' file='xsltutils' value='32768' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_NONE' file='xsltutils' value='0' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_PI' file='xsltutils' value='32' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_PROCESS_NODE' file='xsltutils' value='2' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_STRIP_SPACES' file='xsltutils' value='8192' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_TEMPLATES' file='xsltutils' value='16384' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_VALUE_OF' file='xsltutils' value='128' type='xsltDebugTraceCodes'/>
+    <enum name='XSLT_TRACE_VARIABLES' file='xsltutils' value='65536' type='xsltDebugTraceCodes'/>
+    <struct name='xsltCompMatch' file='pattern' type='struct _xsltCompMatch'/>
+    <typedef name='xsltCompMatchPtr' file='pattern' type='xsltCompMatch *'/>
+    <typedef name='xsltDebugStatusCodes' file='xsltutils' type='enum'/>
+    <typedef name='xsltDebugTraceCodes' file='xsltutils' type='enum'/>
+    <struct name='xsltDecimalFormat' file='xsltInternals' type='struct _xsltDecimalFormat'>
+      <field name='next' type='struct _xsltDecimalFormat *' info=' chained list'/>
+      <field name='name' type='xmlChar *' info=' Used for interpretation of pattern'/>
+      <field name='digit' type='xmlChar *' info=''/>
+      <field name='patternSeparator' type='xmlChar *' info=' May appear in result'/>
+      <field name='minusSign' type='xmlChar *' info=''/>
+      <field name='infinity' type='xmlChar *' info=''/>
+      <field name='noNumber' type='xmlChar *' info=' Not-a-number Used for interpretation of pattern and may appear in result'/>
+      <field name='decimalPoint' type='xmlChar *' info=''/>
+      <field name='grouping' type='xmlChar *' info=''/>
+      <field name='percent' type='xmlChar *' info=''/>
+      <field name='permille' type='xmlChar *' info=''/>
+      <field name='zeroDigit' type='xmlChar *' info=''/>
+    </struct>
+    <typedef name='xsltDecimalFormatPtr' file='xsltInternals' type='xsltDecimalFormat *'/>
+    <struct name='xsltDocument' file='xsltInternals' type='struct _xsltDocument'>
+      <field name='next' type='struct _xsltDocument *' info=' documents are kept in a chained list'/>
+      <field name='main' type='int' info=' is this the main document'/>
+      <field name='doc' type='xmlDocPtr' info=' the parsed document'/>
+      <field name='keys' type='void *' info=' key tables storage'/>
+      <field name='includes' type='struct _xsltDocument *' info=' subsidiary includes'/>
+      <field name='preproc' type='int' info=' pre-processing already done'/>
+    </struct>
+    <typedef name='xsltDocumentPtr' file='xsltInternals' type='xsltDocument *'/>
+    <struct name='xsltElemPreComp' file='xsltInternals' type='struct _xsltElemPreComp'>
+      <field name='next' type='xsltElemPreCompPtr' info=' chained list'/>
+      <field name='type' type='xsltStyleType' info=' type of the element'/>
+      <field name='func' type='xsltTransformFunction' info=' handling function'/>
+      <field name='inst' type='xmlNodePtr' info=' the instruction end of common part'/>
+      <field name='free' type='xsltElemPreCompDeallocator' info=' the deallocator'/>
+    </struct>
+    <typedef name='xsltElemPreCompPtr' file='xsltInternals' type='xsltElemPreComp *'/>
+    <struct name='xsltFormatNumberInfo' file='numbersInternals' type='struct _xsltFormatNumberInfo'>
+      <field name='integer_hash' type='int' info=' Number of &apos;#&apos; in integer part'/>
+      <field name='integer_digits' type='int' info=' Number of &apos;0&apos; in integer part'/>
+      <field name='frac_digits' type='int' info=' Number of &apos;0&apos; in fractional part'/>
+      <field name='frac_hash' type='int' info=' Number of &apos;#&apos; in fractional part'/>
+      <field name='group' type='int' info=' Number of chars per display &apos;group&apos;'/>
+      <field name='multiplier' type='int' info=' Scaling for percent or permille'/>
+      <field name='add_decimal' type='char' info=' Flag for whether decimal point appears in pattern'/>
+      <field name='is_multiplier_set' type='char' info=' Flag to catch multiple occurences of percent/permille'/>
+      <field name='is_negative_pattern' type='char' info=' Flag for processing -ve prefix/suffix'/>
+    </struct>
+    <typedef name='xsltFormatNumberInfoPtr' file='numbersInternals' type='xsltFormatNumberInfo *'/>
+    <typedef name='xsltLoadType' file='documents' type='enum'/>
+    <struct name='xsltNumberData' file='numbersInternals' type='struct _xsltNumberData'>
+      <field name='level' type='const xmlChar *' info=''/>
+      <field name='count' type='const xmlChar *' info=''/>
+      <field name='from' type='const xmlChar *' info=''/>
+      <field name='value' type='const xmlChar *' info=''/>
+      <field name='format' type='const xmlChar *' info=''/>
+      <field name='has_format' type='int' info=''/>
+      <field name='digitsPerGroup' type='int' info=''/>
+      <field name='groupingCharacter' type='int' info=''/>
+      <field name='groupingCharacterLen' type='int' info=''/>
+      <field name='doc' type='xmlDocPtr' info=''/>
+      <field name='node' type='xmlNodePtr' info='* accelerators
+*'/>
+    </struct>
+    <typedef name='xsltNumberDataPtr' file='numbersInternals' type='xsltNumberData *'/>
+    <typedef name='xsltOutputType' file='xsltInternals' type='enum'/>
+    <struct name='xsltRuntimeExtra' file='xsltInternals' type='struct _xsltRuntimeExtra'>
+      <field name='info' type='void *' info=' pointer to the extra data'/>
+      <field name='deallocate' type='xmlFreeFunc' info=' pointer to the deallocation routine'/>
+    </struct>
+    <typedef name='xsltRuntimeExtraPtr' file='xsltInternals' type='xsltRuntimeExtra *'/>
+    <typedef name='xsltSecurityOption' file='security' type='enum'/>
+    <struct name='xsltSecurityPrefs' file='security' type='struct _xsltSecurityPrefs'/>
+    <typedef name='xsltSecurityPrefsPtr' file='security' type='xsltSecurityPrefs *'/>
+    <struct name='xsltStackElem' file='xsltInternals' type='struct _xsltStackElem'>
+      <field name='next' type='struct _xsltStackElem *' info=' chained list'/>
+      <field name='comp' type='xsltStylePreCompPtr' info=' the compiled form'/>
+      <field name='computed' type='int' info=' was the evaluation done'/>
+      <field name='name' type='const xmlChar *' info=' the local part of the name QName'/>
+      <field name='nameURI' type='const xmlChar *' info=' the URI part of the name QName'/>
+      <field name='select' type='const xmlChar *' info=' the eval string'/>
+      <field name='tree' type='xmlNodePtr' info=' the tree if no eval string or the location'/>
+      <field name='value' type='xmlXPathObjectPtr' info=' The value if computed'/>
+    </struct>
+    <typedef name='xsltStackElemPtr' file='xsltInternals' type='xsltStackElem *'/>
+    <struct name='xsltStylePreComp' file='xsltInternals' type='struct _xsltStylePreComp'>
+      <field name='next' type='xsltElemPreCompPtr' info=' chained list'/>
+      <field name='type' type='xsltStyleType' info=' type of the element'/>
+      <field name='func' type='xsltTransformFunction' info=' handling function'/>
+      <field name='inst' type='xmlNodePtr' info='* Pre computed values.
+*'/>
+      <field name='stype' type='const xmlChar *' info=' sort'/>
+      <field name='has_stype' type='int' info=' sort'/>
+      <field name='number' type='int' info=' sort'/>
+      <field name='order' type='const xmlChar *' info=' sort'/>
+      <field name='has_order' type='int' info=' sort'/>
+      <field name='descending' type='int' info=' sort'/>
+      <field name='lang' type='const xmlChar *' info=' sort'/>
+      <field name='has_lang' type='int' info=' sort'/>
+      <field name='case_order' type='const xmlChar *' info=' sort'/>
+      <field name='lower_first' type='int' info=' sort'/>
+      <field name='use' type='const xmlChar *' info=' copy, element'/>
+      <field name='has_use' type='int' info=' copy, element'/>
+      <field name='noescape' type='int' info=' text'/>
+      <field name='name' type='const xmlChar *' info=' element, attribute, pi'/>
+      <field name='has_name' type='int' info=' element, attribute, pi'/>
+      <field name='ns' type='const xmlChar *' info=' element'/>
+      <field name='has_ns' type='int' info=' element'/>
+      <field name='mode' type='const xmlChar *' info=' apply-templates'/>
+      <field name='modeURI' type='const xmlChar *' info=' apply-templates'/>
+      <field name='test' type='const xmlChar *' info=' if'/>
+      <field name='templ' type='xsltTemplatePtr' info=' call-template'/>
+      <field name='select' type='const xmlChar *' info=' sort, copy-of, value-of, apply-templates'/>
+      <field name='ver11' type='int' info=' document'/>
+      <field name='filename' type='const xmlChar *' info=' document URL'/>
+      <field name='has_filename' type='int' info=' document'/>
+      <field name='numdata' type='xsltNumberData' info=' number'/>
+      <field name='comp' type='xmlXPathCompExprPtr' info=' a precompiled XPath expression'/>
+      <field name='nsList' type='xmlNsPtr *' info=' the namespaces in scope'/>
+      <field name='nsNr' type='int' info=' the number of namespaces in scope'/>
+    </struct>
+    <typedef name='xsltStylePreCompPtr' file='xsltInternals' type='xsltStylePreComp *'/>
+    <typedef name='xsltStyleType' file='xsltInternals' type='enum'/>
+    <struct name='xsltStylesheet' file='xsltInternals' type='struct _xsltStylesheet'>
+      <field name='parent' type='struct _xsltStylesheet *' info=''/>
+      <field name='next' type='struct _xsltStylesheet *' info=''/>
+      <field name='imports' type='struct _xsltStylesheet *' info=''/>
+      <field name='docList' type='xsltDocumentPtr' info='* General data on the style sheet document.
+*'/>
+      <field name='doc' type='xmlDocPtr' info=' the parsed XML stylesheet'/>
+      <field name='stripSpaces' type='xmlHashTablePtr' info=' the hash table of the strip-space and
+preserve space elements'/>
+      <field name='stripAll' type='int' info=' strip-space * (1) preserve-space * (-1)'/>
+      <field name='cdataSection' type='xmlHashTablePtr' info='* Global variable or parameters.
+*'/>
+      <field name='variables' type='xsltStackElemPtr' info='* Template descriptions.
+*'/>
+      <field name='templates' type='xsltTemplatePtr' info=' the ordered list of templates'/>
+      <field name='templatesHash' type='void *' info=' hash table or wherever compiled templates
+informations are stored'/>
+      <field name='rootMatch' type='void *' info=' template based on /'/>
+      <field name='keyMatch' type='void *' info=' template based on key()'/>
+      <field name='elemMatch' type='void *' info=' template based on *'/>
+      <field name='attrMatch' type='void *' info=' template based on @*'/>
+      <field name='parentMatch' type='void *' info=' template based on ..'/>
+      <field name='textMatch' type='void *' info=' template based on text()'/>
+      <field name='piMatch' type='void *' info=' template based on processing-instruction()'/>
+      <field name='commentMatch' type='void *' info='* Namespace aliases.
+*'/>
+      <field name='nsAliases' type='xmlHashTablePtr' info='* Attribute sets.
+*'/>
+      <field name='attributeSets' type='xmlHashTablePtr' info='* Namespaces.
+*'/>
+      <field name='nsHash' type='xmlHashTablePtr' info=' the set of namespaces in use'/>
+      <field name='nsDefs' type='void *' info='* Key definitions.
+*'/>
+      <field name='keys' type='void *' info='* Output related stuff.
+*'/>
+      <field name='method' type='xmlChar *' info=' the output method'/>
+      <field name='methodURI' type='xmlChar *' info=' associated namespace if any'/>
+      <field name='version' type='xmlChar *' info=' version string'/>
+      <field name='encoding' type='xmlChar *' info=' encoding string'/>
+      <field name='omitXmlDeclaration' type='int' info='* Number formatting.
+*'/>
+      <field name='decimalFormat' type='xsltDecimalFormatPtr' info=''/>
+      <field name='standalone' type='int' info=' standalone = &quot;yes&quot; | &quot;no&quot;'/>
+      <field name='doctypePublic' type='xmlChar *' info=' doctype-public string'/>
+      <field name='doctypeSystem' type='xmlChar *' info=' doctype-system string'/>
+      <field name='indent' type='int' info=' should output being indented'/>
+      <field name='mediaType' type='xmlChar *' info='* Precomputed blocks.
+*'/>
+      <field name='preComps' type='xsltElemPreCompPtr' info=' list of precomputed blocks'/>
+      <field name='warnings' type='int' info=' number of warnings found at compilation'/>
+      <field name='errors' type='int' info=' number of errors found at compilation'/>
+      <field name='exclPrefix' type='xmlChar *' info=' last excluded prefixes'/>
+      <field name='exclPrefixTab' type='xmlChar **' info=' array of excluded prefixes'/>
+      <field name='exclPrefixNr' type='int' info=' number of excluded prefixes in scope'/>
+      <field name='exclPrefixMax' type='int' info=' size of the array'/>
+      <field name='_private' type='void *' info='* Extensions.
+*'/>
+      <field name='extInfos' type='xmlHashTablePtr' info=' the extension data'/>
+      <field name='extrasNr' type='int' info='* For keeping track of nested includes
+*'/>
+      <field name='includes' type='xsltDocumentPtr' info='* dictionnary: shared between stylesheet, context and documents.
+*'/>
+      <field name='dict' type='xmlDictPtr' info='* precompiled attribute value templates.
+*'/>
+      <field name='attVTs' type='void *' info='* if namespace-alias has an alias for the default stylesheet prefix
+*'/>
+      <field name='defaultAlias' type='const xmlChar *' info='* bypass pre-processing (already done) (used in imports)
+*'/>
+      <field name='nopreproc' type='int' info='* all document text strings were internalized
+*'/>
+      <field name='internalized' type='int' info='* Literal Result Element as Stylesheet c.f. section 2.3
+*'/>
+      <field name='literal_result' type='int' info=''/>
+    </struct>
+    <typedef name='xsltStylesheetPtr' file='xsltInternals' type='xsltStylesheet *'/>
+    <struct name='xsltTemplate' file='xsltInternals' type='struct _xsltTemplate'>
+      <field name='next' type='struct _xsltTemplate *' info=' chained list sorted by priority'/>
+      <field name='style' type='struct _xsltStylesheet *' info=' the containing stylesheet'/>
+      <field name='match' type='xmlChar *' info=' the matching string'/>
+      <field name='priority' type='float' info=' as given from the stylesheet, not computed'/>
+      <field name='name' type='xmlChar *' info=' the local part of the name QName'/>
+      <field name='nameURI' type='xmlChar *' info=' the URI part of the name QName'/>
+      <field name='mode' type='const xmlChar *' info=' the local part of the mode QName'/>
+      <field name='modeURI' type='const xmlChar *' info=' the URI part of the mode QName'/>
+      <field name='content' type='xmlNodePtr' info=' the template replacement value'/>
+      <field name='elem' type='xmlNodePtr' info=' the source element'/>
+      <field name='inheritedNsNr' type='int' info=' number of inherited namespaces'/>
+      <field name='inheritedNs' type='xmlNsPtr *' info=' inherited non-excluded namespaces Profiling informations'/>
+      <field name='nbCalls' type='int' info=' the number of time the template was called'/>
+      <field name='time' type='unsigned long' info=' the time spent in this template'/>
+    </struct>
+    <typedef name='xsltTemplatePtr' file='xsltInternals' type='xsltTemplate *'/>
+    <struct name='xsltTransformContext' file='xsltInternals' type='struct _xsltTransformContext'>
+      <field name='style' type='xsltStylesheetPtr' info=' the stylesheet used'/>
+      <field name='type' type='xsltOutputType' info=' the type of output'/>
+      <field name='templ' type='xsltTemplatePtr' info=' the current template'/>
+      <field name='templNr' type='int' info=' Nb of templates in the stack'/>
+      <field name='templMax' type='int' info=' Size of the templtes stack'/>
+      <field name='templTab' type='xsltTemplatePtr *' info=' the template stack'/>
+      <field name='vars' type='xsltStackElemPtr' info=' the current variable list'/>
+      <field name='varsNr' type='int' info=' Nb of variable list in the stack'/>
+      <field name='varsMax' type='int' info=' Size of the variable list stack'/>
+      <field name='varsTab' type='xsltStackElemPtr *' info=' the variable list stack'/>
+      <field name='varsBase' type='int' info='* Extensions
+*'/>
+      <field name='extFunctions' type='xmlHashTablePtr' info=' the extension functions'/>
+      <field name='extElements' type='xmlHashTablePtr' info=' the extension elements'/>
+      <field name='extInfos' type='xmlHashTablePtr' info=' the extension data'/>
+      <field name='mode' type='const xmlChar *' info=' the current mode'/>
+      <field name='modeURI' type='const xmlChar *' info=' the current mode URI'/>
+      <field name='docList' type='xsltDocumentPtr' info=' the document list'/>
+      <field name='document' type='xsltDocumentPtr' info=' the current document'/>
+      <field name='node' type='xmlNodePtr' info=' the current node being processed'/>
+      <field name='nodeList' type='xmlNodeSetPtr' info=' the current node list xmlNodePtr current;			the node'/>
+      <field name='output' type='xmlDocPtr' info=' the resulting document'/>
+      <field name='insert' type='xmlNodePtr' info=' the insertion node'/>
+      <field name='xpathCtxt' type='xmlXPathContextPtr' info=' the XPath context'/>
+      <field name='state' type='xsltTransformState' info='* Global variables
+*'/>
+      <field name='globalVars' type='xmlHashTablePtr' info=' the global variables and params'/>
+      <field name='inst' type='xmlNodePtr' info=' the instruction in the stylesheet'/>
+      <field name='xinclude' type='int' info=' should XInclude be processed'/>
+      <field name='outputFile' type='const char *' info=' the output URI if known'/>
+      <field name='profile' type='int' info=' is this run profiled'/>
+      <field name='prof' type='long' info=' the current profiled value'/>
+      <field name='profNr' type='int' info=' Nb of templates in the stack'/>
+      <field name='profMax' type='int' info=' Size of the templtaes stack'/>
+      <field name='profTab' type='long *' info=' the profile template stack'/>
+      <field name='_private' type='void *' info=' user defined data'/>
+      <field name='extrasNr' type='int' info=' the number of extras used'/>
+      <field name='extrasMax' type='int' info=' the number of extras allocated'/>
+      <field name='extras' type='xsltRuntimeExtraPtr' info=' extra per runtime informations'/>
+      <field name='styleList' type='xsltDocumentPtr' info=' the stylesheet docs list'/>
+      <field name='sec' type='void *' info=' the security preferences if any'/>
+      <field name='error' type='xmlGenericErrorFunc' info=' a specific error handler'/>
+      <field name='errctx' type='void *' info=' context for the error handler'/>
+      <field name='sortfunc' type='xsltSortFunc' info='* handling of temporary Result Value Tree
+*'/>
+      <field name='tmpRVT' type='xmlDocPtr' info=' list of RVT without persistance'/>
+      <field name='persistRVT' type='xmlDocPtr' info=' list of persistant RVTs'/>
+      <field name='ctxtflags' type='int' info='* Speed optimization when coalescing text nodes
+*'/>
+      <field name='lasttext' type='const xmlChar *' info=' last text node content'/>
+      <field name='lasttsize' type='unsigned int' info=' last text node size'/>
+      <field name='lasttuse' type='unsigned int' info='* Per Context Debugging
+*'/>
+      <field name='debugStatus' type='int' info=' the context level debug status'/>
+      <field name='traceCode' type='unsigned long *' info=' pointer to the variable holding the mask'/>
+      <field name='parserOptions' type='int' info='* dictionnary: shared between stylesheet, context and documents.
+*'/>
+      <field name='dict' type='xmlDictPtr' info='* temporary storage for doc ptr, currently only used for
+* global var evaluation
+*'/>
+      <field name='tmpDoc' type='xmlDocPtr' info='* all document text strings are internalized
+*'/>
+      <field name='internalized' type='int' info=''/>
+    </struct>
+    <typedef name='xsltTransformContextPtr' file='xsltInternals' type='xsltTransformContext *'/>
+    <typedef name='xsltTransformState' file='xsltInternals' type='enum'/>
+    <variable name='xslDebugStatus' file='xsltutils' type='int'/>
+    <variable name='xsltDocDefaultLoader' file='documents' type='xsltDocLoaderFunc'/>
+    <variable name='xsltEngineVersion' file='xslt' type='const char *'/>
+    <variable name='xsltExtMarker' file='preproc' type='const xmlChar *'/>
+    <variable name='xsltGenericDebug' file='xsltutils' type='xmlGenericErrorFunc'/>
+    <variable name='xsltGenericDebugContext' file='xsltutils' type='void *'/>
+    <variable name='xsltGenericError' file='xsltutils' type='xmlGenericErrorFunc'/>
+    <variable name='xsltGenericErrorContext' file='xsltutils' type='void *'/>
+    <variable name='xsltLibxmlVersion' file='xslt' type='const int'/>
+    <variable name='xsltLibxsltVersion' file='xslt' type='const int'/>
+    <variable name='xsltMaxDepth' file='xslt' type='int'/>
+    <function name='xslAddCall' file='xsltutils'>
+      <info>Add template &quot;call&quot; to call stack</info>
+      <return type='int' info=': 1 on sucess 0 otherwise an error may be printed if WITH_XSLT_DEBUG_BREAKPOINTS is defined'/>
+      <arg name='templ' type='xsltTemplatePtr' info='current template being applied'/>
+      <arg name='source' type='xmlNodePtr' info='the source node being processed'/>
+    </function>
+    <function name='xslDropCall' file='xsltutils'>
+      <info>Drop the topmost item off the call stack</info>
+      <return type='void'/>
+    </function>
+    <function name='xslHandleDebugger' file='transform'>
+      <info>If either cur or node are a breakpoint, or xslDebugStatus in state where debugging must occcur at this time then transfer control to the xslDebugBreak function</info>
+      <return type='void'/>
+      <arg name='cur' type='xmlNodePtr' info='source node being executed'/>
+      <arg name='node' type='xmlNodePtr' info='data node being processed'/>
+      <arg name='templ' type='xsltTemplatePtr' info='temlate that applies to node'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the xslt transform context'/>
+    </function>
+    <functype name='xsltAddCallCallback' file='xsltutils'>
+      <info></info>
+      <return type='int' info=''/>
+      <arg name='templ' type='xsltTemplatePtr' info=''/>
+      <arg name='source' type='xmlNodePtr' info=''/>
+    </functype>
+    <function name='xsltAddKey' file='keys'>
+      <info>add a key definition to a stylesheet</info>
+      <return type='int' info='0 in case of success, and -1 in case of failure.'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+      <arg name='name' type='const xmlChar *' info='the key name or NULL'/>
+      <arg name='nameURI' type='const xmlChar *' info='the name URI or NULL'/>
+      <arg name='match' type='const xmlChar *' info='the match value'/>
+      <arg name='use' type='const xmlChar *' info='the use value'/>
+      <arg name='inst' type='xmlNodePtr' info='the key instruction'/>
+    </function>
+    <function name='xsltAddStackElemList' file='variables'>
+      <info>add the new element list at this level of the stack.</info>
+      <return type='int' info='0 in case of success, -1 in case of failure.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='xn XSLT transformation context'/>
+      <arg name='elems' type='xsltStackElemPtr' info='a stack element list'/>
+    </function>
+    <function name='xsltAddTemplate' file='pattern'>
+      <info>Register the XSLT pattern associated to @cur</info>
+      <return type='int' info='-1 in case of error, 0 otherwise'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+      <arg name='cur' type='xsltTemplatePtr' info='an XSLT template'/>
+      <arg name='mode' type='const xmlChar *' info='the mode name or NULL'/>
+      <arg name='modeURI' type='const xmlChar *' info='the mode URI or NULL'/>
+    </function>
+    <function name='xsltAllocateExtra' file='xsltInternals'>
+      <info>Allocate an extra runtime information slot statically while compiling the stylesheet and return its number</info>
+      <return type='int' info='the number of the slot'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+    </function>
+    <function name='xsltAllocateExtraCtxt' file='xsltInternals'>
+      <info>Allocate an extra runtime information slot at run-time and return its number This make sure there is a slot ready in the transformation context</info>
+      <return type='int' info='the number of the slot'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+    </function>
+    <function name='xsltApplyAttributeSet' file='attributes'>
+      <info>Apply the xsl:use-attribute-sets</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT stylesheet'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt attribute node'/>
+      <arg name='attributes' type='const xmlChar *' info='the set list.'/>
+    </function>
+    <function name='xsltApplyImports' file='transform'>
+      <info>Process the xslt apply-imports node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt apply-imports node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltApplyOneTemplate' file='transform'>
+      <info>Process the apply-templates node on the source node, if params are passed they are pushed on the variable stack but not popped, it&apos;s left to the caller to handle them after return (they may be reused).</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='list' type='xmlNodePtr' info='the template replacement nodelist'/>
+      <arg name='templ' type='xsltTemplatePtr' info='if is this a real template processing, the template processed'/>
+      <arg name='params' type='xsltStackElemPtr' info='a set of parameters for the template or NULL'/>
+    </function>
+    <function name='xsltApplyStripSpaces' file='transform'>
+      <info>Strip the unwanted ignorable spaces from the input tree</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the root of the XML tree'/>
+    </function>
+    <function name='xsltApplyStylesheet' file='transform'>
+      <info>Apply the stylesheet to the document NOTE: This may lead to a non-wellformed output XML wise !</info>
+      <return type='xmlDocPtr' info='the result document or NULL in case of error'/>
+      <arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
+      <arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
+      <arg name='params' type='const char **' info='a NULL terminated arry of parameters names/values tuples'/>
+    </function>
+    <function name='xsltApplyStylesheetUser' file='transform'>
+      <info>Apply the stylesheet to the document and allow the user to provide its own transformation context.</info>
+      <return type='xmlDocPtr' info='the result document or NULL in case of error'/>
+      <arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
+      <arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
+      <arg name='params' type='const char **' info='a NULL terminated array of parameters names/values tuples'/>
+      <arg name='output' type='const char *' info='the targetted output'/>
+      <arg name='profile' type='FILE *' info='profile FILE * output or NULL'/>
+      <arg name='userCtxt' type='xsltTransformContextPtr' info='user provided transform context'/>
+    </function>
+    <function name='xsltApplyTemplates' file='transform'>
+      <info>Process the apply-templates node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the apply-templates node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltAttrListTemplateProcess' file='templates'>
+      <info>Do a copy of an attribute list with attribute template processing</info>
+      <return type='xmlAttrPtr' info='a new xmlAttrPtr, or NULL in case of error.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='target' type='xmlNodePtr' info='the element where the attributes will be grafted'/>
+      <arg name='cur' type='xmlAttrPtr' info='the first attribute'/>
+    </function>
+    <function name='xsltAttrTemplateProcess' file='templates'>
+      <info>Process the given attribute and return the new processed copy.</info>
+      <return type='xmlAttrPtr' info='the attribute replacement.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='target' type='xmlNodePtr' info='the result node'/>
+      <arg name='cur' type='xmlAttrPtr' info='the attribute template node'/>
+    </function>
+    <function name='xsltAttrTemplateValueProcess' file='templates'>
+      <info>Process the given node and return the new string value.</info>
+      <return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='str' type='const xmlChar *' info='the attribute template node value'/>
+    </function>
+    <function name='xsltAttrTemplateValueProcessNode' file='templates'>
+      <info>Process the given string, allowing to pass a namespace mapping context and return the new string value.</info>
+      <return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='str' type='const xmlChar *' info='the attribute template node value'/>
+      <arg name='node' type='xmlNodePtr' info='the node hosting the attribute'/>
+    </function>
+    <function name='xsltAttribute' file='transform'>
+      <info>Process the xslt attribute node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt attribute node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltCalibrateAdjust' file='xsltutils'>
+      <info>Used for to correct the calibration for xsltTimestamp()</info>
+      <return type='void'/>
+      <arg name='delta' type='long' info='a negative dealy value found'/>
+    </function>
+    <function name='xsltCallTemplate' file='transform'>
+      <info>Process the xslt call-template node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt call-template node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltCheckExtPrefix' file='extensions'>
+      <info>Check if the given prefix is one of the declared extensions</info>
+      <return type='int' info='1 if this is an extension, 0 otherwise'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+      <arg name='prefix' type='const xmlChar *' info='the namespace prefix (possibly NULL)'/>
+    </function>
+    <function name='xsltCheckRead' file='security'>
+      <info>Check if the resource is allowed to be read</info>
+      <return type='int' info='1 if read is allowed, 0 if not and -1 in case or error.'/>
+      <arg name='sec' type='xsltSecurityPrefsPtr' info='the security options'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='URL' type='const xmlChar *' info='the resource to be read'/>
+    </function>
+    <function name='xsltCheckWrite' file='security'>
+      <info>Check if the resource is allowed to be written, if necessary makes some preliminary work like creating directories</info>
+      <return type='int' info='1 if write is allowed, 0 if not and -1 in case or error.'/>
+      <arg name='sec' type='xsltSecurityPrefsPtr' info='the security options'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='URL' type='const xmlChar *' info='the resource to be written'/>
+    </function>
+    <function name='xsltChoose' file='transform'>
+      <info>Process the xslt choose node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt choose node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltCleanupGlobals' file='xslt'>
+      <info>Unregister all global variables set up by the XSLT library</info>
+      <return type='void'/>
+    </function>
+    <function name='xsltCleanupTemplates' file='pattern'>
+      <info>Cleanup the state of the templates used by the stylesheet and the ones it imports.</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+    </function>
+    <function name='xsltComment' file='transform'>
+      <info>Process the xslt comment node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt comment node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltCompileAttr' file='xsltInternals'>
+      <info>Precompile an attribute in a stylesheet, basically it checks if it is an attrubute value template, and if yes establish some structures needed to process it at transformation time.</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='a XSLT process context'/>
+      <arg name='attr' type='xmlAttrPtr' info='the attribute coming from the stylesheet.'/>
+    </function>
+    <function name='xsltCompilePattern' file='pattern'>
+      <info>Compile the XSLT pattern and generates a list of precompiled form suitable for fast matching.  [1] Pattern ::= LocationPathPattern | Pattern &apos;|&apos; LocationPathPattern</info>
+      <return type='xsltCompMatchPtr' info='the generated pattern list or NULL in case of failure'/>
+      <arg name='pattern' type='const xmlChar *' info='an XSLT pattern'/>
+      <arg name='doc' type='xmlDocPtr' info='the containing document'/>
+      <arg name='node' type='xmlNodePtr' info='the containing element'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+      <arg name='runtime' type='xsltTransformContextPtr' info='the transformation context, if done at run-time'/>
+    </function>
+    <function name='xsltComputeSortResult' file='xsltutils'>
+      <info>reorder the current node list accordingly to the set of sorting requirement provided by the array of nodes.</info>
+      <return type='xmlXPathObjectPtr *' info='a ordered XPath nodeset or NULL in case of error.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='sort' type='xmlNodePtr' info='node list'/>
+    </function>
+    <function name='xsltCopy' file='transform'>
+      <info>Process the xslt copy node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt copy node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltCopyNamespace' file='namespaces'>
+      <info>Do a copy of an namespace node. If @node is non-NULL the new namespaces are added automatically. This handles namespaces aliases</info>
+      <return type='xmlNsPtr' info='a new xmlNsPtr, or NULL in case of error.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
+      <arg name='node' type='xmlNodePtr' info='the target node'/>
+      <arg name='cur' type='xmlNsPtr' info='the namespace node'/>
+    </function>
+    <function name='xsltCopyNamespaceList' file='namespaces'>
+      <info>Do a copy of an namespace list. If @node is non-NULL the new namespaces are added automatically. This handles namespaces aliases</info>
+      <return type='xmlNsPtr' info='a new xmlNsPtr, or NULL in case of error.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
+      <arg name='node' type='xmlNodePtr' info='the target node'/>
+      <arg name='cur' type='xmlNsPtr' info='the first namespace'/>
+    </function>
+    <function name='xsltCopyOf' file='transform'>
+      <info>Process the xslt copy-of node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt copy-of node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltCopyTextString' file='transform'>
+      <info>Create a text node</info>
+      <return type='xmlNodePtr' info='a new xmlNodePtr, or NULL in case of error.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='target' type='xmlNodePtr' info='the element where the text will be attached'/>
+      <arg name='string' type='const xmlChar *' info='the text string'/>
+      <arg name='noescape' type='int' info='should disable-escaping be activated for this text node.'/>
+    </function>
+    <function name='xsltCreateRVT' file='xsltInternals'>
+      <info>Create a result value tree</info>
+      <return type='xmlDocPtr' info='the result value tree or NULL in case of error'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+    </function>
+    <function name='xsltDebug' file='extra'>
+      <info>Process an debug node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT processing context'/>
+      <arg name='node' type='xmlNodePtr' info='The current node'/>
+      <arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed informations'/>
+    </function>
+    <function name='xsltDebugDumpExtensions' file='extensions'>
+      <info>Dumps a list of the registered XSLT extension functions and elements</info>
+      <return type='void'/>
+      <arg name='output' type='FILE *' info='the FILE * for the output, if NULL stdout is used'/>
+    </function>
+    <function name='xsltDebugGetDefaultTrace' file='xsltutils'>
+      <info>Get the current default debug tracing level mask</info>
+      <return type='xsltDebugTraceCodes' info='the current default debug tracing level mask'/>
+    </function>
+    <function name='xsltDebugSetDefaultTrace' file='xsltutils'>
+      <info>Set the default debug tracing level mask</info>
+      <return type='void'/>
+      <arg name='val' type='xsltDebugTraceCodes' info='tracing level mask'/>
+    </function>
+    <function name='xsltDecimalFormatGetByName' file='xsltInternals'>
+      <info>Find decimal-format by name</info>
+      <return type='xsltDecimalFormatPtr' info='the xsltDecimalFormatPtr'/>
+      <arg name='sheet' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='name' type='xmlChar *' info='the decimal-format name to find'/>
+    </function>
+    <function name='xsltDefaultSortFunction' file='xsltutils'>
+      <info>reorder the current node list accordingly to the set of sorting requirement provided by the arry of nodes.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='sorts' type='xmlNodePtr *' info='array of sort nodes'/>
+      <arg name='nbsorts' type='int' info='the number of sorts in the array'/>
+    </function>
+    <function name='xsltDoSortFunction' file='xsltutils'>
+      <info>reorder the current node list accordingly to the set of sorting requirement provided by the arry of nodes. This is a wrapper function, the actual function used is specified using xsltSetCtxtSortFunc() to set the context specific sort function, or xsltSetSortFunc() to set the global sort function. If a sort function is set on the context, this will get called. Otherwise the global sort function is called.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='sorts' type='xmlNodePtr *' info='array of sort nodes'/>
+      <arg name='nbsorts' type='int' info='the number of sorts in the array'/>
+    </function>
+    <functype name='xsltDocLoaderFunc' file='documents'>
+      <info>An xsltDocLoaderFunc is a signature for a function which can be registered to load document not provided by the compilation or transformation API themselve, for example when an xsl:import, xsl:include is found at compilation time or when a document() call is made at runtime.</info>
+      <return type='xmlDocPtr' info='the pointer to the document (which will be modified and freed by the engine later), or NULL in case of error.'/>
+      <arg name='URI' type='const xmlChar *' info='the URI of the document to load'/>
+      <arg name='dict' type='xmlDictPtr' info='the dictionnary to use when parsing that document'/>
+      <arg name='options' type='int' info='parsing options, a set of xmlParserOption'/>
+      <arg name='ctxt' type='void *' info='the context, either a stylesheet or a transformation context'/>
+      <arg name='type' type='xsltLoadType' info='the xsltLoadType indicating the kind of loading required'/>
+    </functype>
+    <function name='xsltDocumentComp' file='preproc'>
+      <info>Pre process an XSLT-1.1 document element</info>
+      <return type='xsltElemPreCompPtr' info='a precompiled data structure for the element'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet'/>
+      <arg name='function' type='xsltTransformFunction' info='unused'/>
+    </function>
+    <function name='xsltDocumentElem' file='transform'>
+      <info>Process an EXSLT/XSLT-1.1 document element</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT processing context'/>
+      <arg name='node' type='xmlNodePtr' info='The current node'/>
+      <arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltDocumentFunction' file='functions'>
+      <info>Implement the document() XSLT function node-set document(object, node-set?)</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+      <arg name='nargs' type='int' info='the number of arguments'/>
+    </function>
+    <function name='xsltDocumentSortFunction' file='xsltutils'>
+      <info>reorder the current node list @list accordingly to the document order This function is slow, obsolete and should not be used anymore.</info>
+      <return type='void'/>
+      <arg name='list' type='xmlNodeSetPtr' info='the node set'/>
+    </function>
+    <functype name='xsltDropCallCallback' file='xsltutils'>
+      <info></info>
+      <return type='void'/>
+    </functype>
+    <functype name='xsltElemPreCompDeallocator' file='xsltInternals'>
+      <info>Deallocates an #xsltElemPreComp structure.</info>
+      <return type='void'/>
+      <arg name='comp' type='xsltElemPreCompPtr' info='the #xsltElemPreComp to free up'/>
+    </functype>
+    <function name='xsltElement' file='transform'>
+      <info>Process the xslt element node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt element node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltElementAvailableFunction' file='functions'>
+      <info>Implement the element-available() XSLT function boolean element-available(string)</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+      <arg name='nargs' type='int' info='the number of arguments'/>
+    </function>
+    <function name='xsltEvalAVT' file='xsltInternals'>
+      <info>Process the given AVT, and return the new string value.</info>
+      <return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='avt' type='void *' info='the prevompiled attribute value template info'/>
+      <arg name='node' type='xmlNodePtr' info='the node hosting the attribute'/>
+    </function>
+    <function name='xsltEvalAttrValueTemplate' file='templates'>
+      <info>Evaluate a attribute value template, i.e. the attribute value can contain expressions contained in curly braces ({}) and those are substituted by they computed value.</info>
+      <return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='node' type='xmlNodePtr' info='the stylesheet node'/>
+      <arg name='name' type='const xmlChar *' info='the attribute QName'/>
+      <arg name='ns' type='const xmlChar *' info='the attribute namespace URI'/>
+    </function>
+    <function name='xsltEvalGlobalVariables' file='variables'>
+      <info>Evaluate the global variables of a stylesheet. This need to be done on parsed stylesheets before starting to apply transformations</info>
+      <return type='int' info='0 in case of success, -1 in case of error'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+    </function>
+    <function name='xsltEvalOneUserParam' file='variables'>
+      <info>This is normally called from xsltEvalUserParams to process a single parameter from a list of parameters.  The @value is evaluated as an XPath expression and the result is stored in the context&apos;s global variable/parameter hash table.  To have a parameter treated literally (not as an XPath expression) use xsltQuoteUserParams (or xsltQuoteOneUserParam).  For more details see description of xsltProcessOneUserParamInternal.</info>
+      <return type='int' info='0 in case of success, -1 in case of error.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='name' type='const xmlChar *' info='a null terminated string giving the name of the parameter'/>
+      <arg name='value' type='const xmlChar *' info='a null terminated string giving the XPath expression to be evaluated'/>
+    </function>
+    <function name='xsltEvalStaticAttrValueTemplate' file='templates'>
+      <info>Check if an attribute value template has a static value, i.e. the attribute value does not contain expressions contained in curly braces ({})</info>
+      <return type='const xmlChar *' info='the static string value or NULL, must be deallocated by the caller.'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='node' type='xmlNodePtr' info='the stylesheet node'/>
+      <arg name='name' type='const xmlChar *' info='the attribute Name'/>
+      <arg name='ns' type='const xmlChar *' info='the attribute namespace URI'/>
+      <arg name='found' type='int *' info='indicator whether the attribute is present'/>
+    </function>
+    <function name='xsltEvalTemplateString' file='templates'>
+      <info>Evaluate a template string value, i.e. the parent list is interpreter as template content and the resulting tree string value is returned This is needed for example by xsl:comment and xsl:processing-instruction</info>
+      <return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='node' type='xmlNodePtr' info='the stylesheet node'/>
+      <arg name='parent' type='xmlNodePtr' info='the content parent'/>
+    </function>
+    <function name='xsltEvalUserParams' file='variables'>
+      <info>Evaluate the global variables of a stylesheet. This needs to be done on parsed stylesheets before starting to apply transformations. Each of the parameters is evaluated as an XPath expression and stored in the global variables/parameter hash table.  If you want your parameter used literally, use xsltQuoteUserParams.</info>
+      <return type='int' info='0 in case of success, -1 in case of error'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='params' type='const char **' info='a NULL terminated array of parameters name/value tuples'/>
+    </function>
+    <function name='xsltEvalXPathPredicate' file='templates'>
+      <info>Process the expression using XPath and evaluate the result as an XPath predicate</info>
+      <return type='int' info='1 is the predicate was true, 0 otherwise'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='comp' type='xmlXPathCompExprPtr' info='the XPath compiled expression'/>
+      <arg name='nsList' type='xmlNsPtr *' info='the namespaces in scope'/>
+      <arg name='nsNr' type='int' info='the number of namespaces in scope'/>
+    </function>
+    <function name='xsltEvalXPathString' file='templates'>
+      <info>Process the expression using XPath and get a string</info>
+      <return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
+    </function>
+    <function name='xsltEvalXPathStringNs' file='templates'>
+      <info>Process the expression using XPath, allowing to pass a namespace mapping context and get a string</info>
+      <return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
+      <arg name='nsNr' type='int' info='the number of namespaces in the list'/>
+      <arg name='nsList' type='xmlNsPtr *' info='the list of in-scope namespaces to use'/>
+    </function>
+    <function name='xsltExtElementLookup' file='extensions'>
+      <info>Looks up an extension element. @ctxt can be NULL to search only in module elements.</info>
+      <return type='xsltTransformFunction' info='the element callback or NULL if not found'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT process context'/>
+      <arg name='name' type='const xmlChar *' info='the element name'/>
+      <arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
+    </function>
+    <function name='xsltExtFunctionLookup' file='extensions'>
+      <info></info>
+      <return type='xmlXPathFunction' info=''/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info=''/>
+      <arg name='name' type='const xmlChar *' info=''/>
+      <arg name='URI' type='const xmlChar *' info=''/>
+    </function>
+    <functype name='xsltExtInitFunction' file='extensions'>
+      <info>A function called at initialization time of an XSLT extension module.</info>
+      <return type='void *' info='a pointer to the module specific data for this transformation.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='URI' type='const xmlChar *' info='the namespace URI for the extension'/>
+    </functype>
+    <function name='xsltExtModuleElementLookup' file='extensions'>
+      <info>Looks up an extension module element</info>
+      <return type='xsltTransformFunction' info='the callback function if found, NULL otherwise.'/>
+      <arg name='name' type='const xmlChar *' info='the element name'/>
+      <arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
+    </function>
+    <function name='xsltExtModuleElementPreComputeLookup' file='extensions'>
+      <info>Looks up an extension module element pre-computation function</info>
+      <return type='xsltPreComputeFunction' info='the callback function if found, NULL otherwise.'/>
+      <arg name='name' type='const xmlChar *' info='the element name'/>
+      <arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
+    </function>
+    <function name='xsltExtModuleFunctionLookup' file='extensions'>
+      <info>Looks up an extension module function</info>
+      <return type='xmlXPathFunction' info='the function if found, NULL otherwise.'/>
+      <arg name='name' type='const xmlChar *' info='the function name'/>
+      <arg name='URI' type='const xmlChar *' info='the function namespace URI'/>
+    </function>
+    <function name='xsltExtModuleTopLevelLookup' file='extensions'>
+      <info>Looks up an extension module top-level element</info>
+      <return type='xsltTopLevelFunction' info='the callback function if found, NULL otherwise.'/>
+      <arg name='name' type='const xmlChar *' info='the top-level element name'/>
+      <arg name='URI' type='const xmlChar *' info='the top-level element namespace URI'/>
+    </function>
+    <functype name='xsltExtShutdownFunction' file='extensions'>
+      <info>A function called at shutdown time of an XSLT extension module.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='URI' type='const xmlChar *' info='the namespace URI for the extension'/>
+      <arg name='data' type='void *' info='the data associated to this module'/>
+    </functype>
+    <function name='xsltFindDocument' file='documents'>
+      <info>Try to find a document within the XSLT transformation context</info>
+      <return type='xsltDocumentPtr' info='the desired xsltDocumentPtr or NULL in case of error'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
+    </function>
+    <function name='xsltFindElemSpaceHandling' file='imports'>
+      <info>Find strip-space or preserve-space informations for an element respect the import precedence or the wildcards</info>
+      <return type='int' info='1 if space should be stripped, 0 if not, and 2 if everything should be CDTATA wrapped.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='node' type='xmlNodePtr' info='an XML node'/>
+    </function>
+    <function name='xsltFindTemplate' file='imports'>
+      <info>Finds the named template, apply import precedence rule.</info>
+      <return type='xsltTemplatePtr' info='the xsltTemplatePtr or NULL if not found'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='name' type='const xmlChar *' info='the template name'/>
+      <arg name='nameURI' type='const xmlChar *' info='the template name URI'/>
+    </function>
+    <function name='xsltForEach' file='transform'>
+      <info>Process the xslt for-each node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt for-each node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltFormatNumberConversion' file='xsltInternals'>
+      <info>format-number() uses the JDK 1.1 DecimalFormat class:  http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html  Structure:  pattern    := subpattern{;subpattern} subpattern := {prefix}integer{.fraction}{suffix} prefix     := &apos;\\u0000&apos;..&apos;\\uFFFD&apos; - specialCharacters suffix     := &apos;\\u0000&apos;..&apos;\\uFFFD&apos; - specialCharacters integer    := &apos;#&apos;* &apos;0&apos;* &apos;0&apos; fraction   := &apos;0&apos;* &apos;#&apos;*  Notation: X*       0 or more instances of X (X | Y)  either X or Y. X..Y     any character from X up to Y, inclusive. S - T    characters in S, except those in T  Special Characters:  Symbol Meaning 0      a digit #      a digit, zero shows as absent .      placeholder for decimal separator ,      placeholder for grouping separator. ;      separates formats. -      default negative prefix. %      multiply by 100 and show as percentage ?      multiply by 1000 and show as per mille X      any other characters can be used in the prefix or suffix &apos;      used to quote special characters in a prefix or suffix.</info>
+      <return type='xmlXPathError' info='a possible XPath error'/>
+      <arg name='self' type='xsltDecimalFormatPtr' info='the decimal format'/>
+      <arg name='format' type='xmlChar *' info='the format requested'/>
+      <arg name='number' type='double' info='the value to format'/>
+      <arg name='result' type='xmlChar **' info='the place to ouput the result'/>
+    </function>
+    <function name='xsltFormatNumberFunction' file='functions'>
+      <info>Implement the format-number() XSLT function string format-number(number, string, string?)</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+      <arg name='nargs' type='int' info='the number of arguments'/>
+    </function>
+    <function name='xsltFreeAVTList' file='xsltInternals'>
+      <info>Free up the memory associated to the attribute value templates</info>
+      <return type='void'/>
+      <arg name='avt' type='void *' info='pointer to an list of AVT structures'/>
+    </function>
+    <function name='xsltFreeAttributeSetsHashes' file='attributes'>
+      <info>Free up the memory used by attribute sets</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+    </function>
+    <function name='xsltFreeCompMatchList' file='pattern'>
+      <info>Free up the memory allocated by all the elements of @comp</info>
+      <return type='void'/>
+      <arg name='comp' type='xsltCompMatchPtr' info='an XSLT comp list'/>
+    </function>
+    <function name='xsltFreeCtxtExts' file='extensions'>
+      <info>Free the XSLT extension data</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+    </function>
+    <function name='xsltFreeDocumentKeys' file='keys'>
+      <info>Free the keys associated to a document</info>
+      <return type='void'/>
+      <arg name='doc' type='xsltDocumentPtr' info='a XSLT document'/>
+    </function>
+    <function name='xsltFreeDocuments' file='documents'>
+      <info>Free up all the space used by the loaded documents</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+    </function>
+    <function name='xsltFreeExts' file='extensions'>
+      <info>Free up the memory used by XSLT extensions in a stylesheet</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+    </function>
+    <function name='xsltFreeGlobalVariables' file='variables'>
+      <info>Free up the data associated to the global variables its value.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+    </function>
+    <function name='xsltFreeKeys' file='keys'>
+      <info>Free up the memory used by XSLT keys in a stylesheet</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+    </function>
+    <function name='xsltFreeNamespaceAliasHashes' file='namespaces'>
+      <info>Free up the memory used by namespaces aliases</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+    </function>
+    <function name='xsltFreeRVTs' file='xsltInternals'>
+      <info>Free all the registered result value tree of the transformation</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+    </function>
+    <function name='xsltFreeSecurityPrefs' file='security'>
+      <info>Free up a security preference block</info>
+      <return type='void'/>
+      <arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to free'/>
+    </function>
+    <function name='xsltFreeStackElemList' file='xsltInternals'>
+      <info>Free up the memory allocated by @elem</info>
+      <return type='void'/>
+      <arg name='elem' type='xsltStackElemPtr' info='an XSLT stack element'/>
+    </function>
+    <function name='xsltFreeStyleDocuments' file='documents'>
+      <info>Free up all the space used by the loaded documents</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT style sheet'/>
+    </function>
+    <function name='xsltFreeStylePreComps' file='preproc'>
+      <info>Free up the memory allocated by all precomputed blocks</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT transformation context'/>
+    </function>
+    <function name='xsltFreeStylesheet' file='xsltInternals'>
+      <info>Free up the memory allocated by @sheet</info>
+      <return type='void'/>
+      <arg name='sheet' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+    </function>
+    <function name='xsltFreeTemplateHashes' file='pattern'>
+      <info>Free up the memory used by xsltAddTemplate/xsltGetTemplate mechanism</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+    </function>
+    <function name='xsltFreeTransformContext' file='transform'>
+      <info>Free up the memory allocated by @ctxt</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT parser context'/>
+    </function>
+    <function name='xsltFunctionAvailableFunction' file='functions'>
+      <info>Implement the function-available() XSLT function boolean function-available(string)</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+      <arg name='nargs' type='int' info='the number of arguments'/>
+    </function>
+    <function name='xsltFunctionNodeSet' file='extra'>
+      <info>Implement the node-set() XSLT function node-set node-set(result-tree)  This function is available in libxslt, saxon or xt namespace.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+      <arg name='nargs' type='int' info='the number of arguments'/>
+    </function>
+    <function name='xsltGenerateIdFunction' file='functions'>
+      <info>Implement the generate-id() XSLT function string generate-id(node-set?)</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+      <arg name='nargs' type='int' info='the number of arguments'/>
+    </function>
+    <function name='xsltGetCNsProp' file='xsltutils'>
+      <info>Similar to xmlGetNsProp() but with a slightly different semantic  Search and get the value of an attribute associated to a node This attribute has to be anchored in the namespace specified, or has no namespace and the element is in that namespace.  This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</info>
+      <return type='const xmlChar *' info='the attribute value or NULL if not found. The string is allocated in the stylesheet dictionnary.'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+      <arg name='node' type='xmlNodePtr' info='the node'/>
+      <arg name='name' type='const xmlChar *' info='the attribute name'/>
+      <arg name='nameSpace' type='const xmlChar *' info='the URI of the namespace'/>
+    </function>
+    <function name='xsltGetDebuggerStatus' file='xsltutils'>
+      <info>Get xslDebugStatus.</info>
+      <return type='int' info='the value of xslDebugStatus.'/>
+    </function>
+    <function name='xsltGetDefaultSecurityPrefs' file='security'>
+      <info>Get the default security preference application-wide</info>
+      <return type='xsltSecurityPrefsPtr' info='the current xsltSecurityPrefsPtr in use or NULL if none'/>
+    </function>
+    <function name='xsltGetExtData' file='extensions'>
+      <info>Retrieve the data associated to the extension module in this given transformation.</info>
+      <return type='void *' info='the pointer or NULL if not present'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='URI' type='const xmlChar *' info='the URI associated to the exension module'/>
+    </function>
+    <function name='xsltGetExtInfo' file='extensions'>
+      <info>looks up URI in extInfos of the stylesheet</info>
+      <return type='xmlHashTablePtr' info='a pointer to the hash table if found, else NULL'/>
+      <arg name='style' type='xsltStylesheetPtr' info='pointer to a stylesheet'/>
+      <arg name='URI' type='const xmlChar *' info='the namespace URI desired'/>
+    </function>
+    <function name='xsltGetKey' file='keys'>
+      <info>Lookup a key</info>
+      <return type='xmlNodeSetPtr' info='the nodeset resulting from the query or NULL'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='name' type='const xmlChar *' info='the key name or NULL'/>
+      <arg name='nameURI' type='const xmlChar *' info='the name URI or NULL'/>
+      <arg name='value' type='const xmlChar *' info='the key value to look for'/>
+    </function>
+    <function name='xsltGetNamespace' file='namespaces'>
+      <info>Find the right namespace value for this prefix, if needed create and add a new namespace decalaration on the node Handle namespace aliases</info>
+      <return type='xmlNsPtr' info='the namespace node to use or NULL'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
+      <arg name='cur' type='xmlNodePtr' info='the input node'/>
+      <arg name='ns' type='xmlNsPtr' info='the namespace'/>
+      <arg name='out' type='xmlNodePtr' info='the output node (or its parent)'/>
+    </function>
+    <function name='xsltGetNsProp' file='xsltutils'>
+      <info>Similar to xmlGetNsProp() but with a slightly different semantic  Search and get the value of an attribute associated to a node This attribute has to be anchored in the namespace specified, or has no namespace and the element is in that namespace.  This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</info>
+      <return type='xmlChar *' info='the attribute value or NULL if not found. It&apos;s up to the caller to free the memory.'/>
+      <arg name='node' type='xmlNodePtr' info='the node'/>
+      <arg name='name' type='const xmlChar *' info='the attribute name'/>
+      <arg name='nameSpace' type='const xmlChar *' info='the URI of the namespace'/>
+    </function>
+    <function name='xsltGetPlainNamespace' file='namespaces'>
+      <info>Find the right namespace value for this prefix, if needed create and add a new namespace decalaration on the node Handle namespace aliases and make sure the prefix is not NULL, this is needed for attributes.</info>
+      <return type='xmlNsPtr' info='the namespace node to use or NULL'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
+      <arg name='cur' type='xmlNodePtr' info='the input node'/>
+      <arg name='ns' type='xmlNsPtr' info='the namespace'/>
+      <arg name='out' type='xmlNodePtr' info='the output node (or its parent)'/>
+    </function>
+    <function name='xsltGetProfileInformation' file='xsltutils'>
+      <info>This function should be called after the transformation completed to extract template processing profiling informations if availble. The informations are returned as an XML document tree like &lt;?xml version=&quot;1.0&quot;?&gt; &lt;profile&gt; &lt;template rank=&quot;1&quot; match=&quot;*&quot; name=&quot;&quot; mode=&quot;&quot; calls=&quot;6&quot; time=&quot;48&quot; average=&quot;8&quot;/&gt; &lt;template rank=&quot;2&quot; match=&quot;item2|item3&quot; name=&quot;&quot; mode=&quot;&quot; calls=&quot;10&quot; time=&quot;30&quot; average=&quot;3&quot;/&gt; &lt;template rank=&quot;3&quot; match=&quot;item1&quot; name=&quot;&quot; mode=&quot;&quot; calls=&quot;5&quot; time=&quot;17&quot; average=&quot;3&quot;/&gt; &lt;/profile&gt; The caller will need to free up the returned tree with xmlFreeDoc()</info>
+      <return type='xmlDocPtr' info='the xmlDocPtr corresponding to the result or NULL if not available.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
+    </function>
+    <function name='xsltGetQNameURI' file='xsltutils'>
+      <info>This function analyzes @name, if the name contains a prefix, the function seaches the associated namespace in scope for it. It will also replace @name value with the NCName, the old value being freed. Errors in the prefix lookup are signalled by setting @name to NULL.  NOTE: the namespace returned is a pointer to the place where it is defined and hence has the same lifespan as the document holding it.</info>
+      <return type='const xmlChar *' info='the namespace URI if there is a prefix, or NULL if @name is not prefixed.'/>
+      <arg name='node' type='xmlNodePtr' info='the node holding the QName'/>
+      <arg name='name' type='xmlChar **' info='pointer to the initial QName value'/>
+    </function>
+    <function name='xsltGetQNameURI2' file='xsltutils'>
+      <info>This function is similar to xsltGetQNameURI, but is used when @name is a dictionary entry.</info>
+      <return type='const xmlChar *' info='the namespace URI if there is a prefix, or NULL if @name is not prefixed.'/>
+      <arg name='style' type='xsltStylesheetPtr' info='stylesheet pointer'/>
+      <arg name='node' type='xmlNodePtr' info='the node holding the QName'/>
+      <arg name='name' type='const xmlChar **' info='pointer to the initial QName value'/>
+    </function>
+    <function name='xsltGetSecurityPrefs' file='security'>
+      <info>Lookup the security option to get the callback checking function</info>
+      <return type='xsltSecurityCheck' info='NULL if not found, the function otherwise'/>
+      <arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to update'/>
+      <arg name='option' type='xsltSecurityOption' info='the option to lookup'/>
+    </function>
+    <function name='xsltGetSpecialNamespace' file='namespaces'>
+      <info>Find the right namespace value for this URI, if needed create and add a new namespace decalaration on the node</info>
+      <return type='xmlNsPtr' info='the namespace node to use or NULL'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
+      <arg name='cur' type='xmlNodePtr' info='the input node'/>
+      <arg name='URI' type='const xmlChar *' info='the namespace URI'/>
+      <arg name='prefix' type='const xmlChar *' info='the suggested prefix'/>
+      <arg name='out' type='xmlNodePtr' info='the output node (or its parent)'/>
+    </function>
+    <function name='xsltGetTemplate' file='pattern'>
+      <info>Finds the template applying to this node, if @style is non-NULL it means one needs to look for the next imported template in scope.</info>
+      <return type='xsltTemplatePtr' info='the xsltTemplatePtr or NULL if not found'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node being processed'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the current style'/>
+    </function>
+    <function name='xsltGetUTF8Char' file='xsltutils'>
+      <info>Read one UTF8 Char from @utf Function copied from libxml2 xmlGetUTF8Char() ... to discard ultimately and use the original API</info>
+      <return type='int' info='the char value or -1 in case of error and update @len with the number of bytes used'/>
+      <arg name='utf' type='const unsigned char *' info='a sequence of UTF-8 encoded bytes'/>
+      <arg name='len' type='int *' info='a pointer to @bytes len'/>
+    </function>
+    <function name='xsltGetXIncludeDefault' file='transform'>
+      <info>Provides the default state for XInclude processing</info>
+      <return type='int' info='0 if there is no processing 1 otherwise'/>
+    </function>
+    <functype name='xsltHandleDebuggerCallback' file='xsltutils'>
+      <info></info>
+      <return type='void'/>
+      <arg name='cur' type='xmlNodePtr' info=''/>
+      <arg name='node' type='xmlNodePtr' info=''/>
+      <arg name='templ' type='xsltTemplatePtr' info=''/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info=''/>
+    </functype>
+    <function name='xsltIf' file='transform'>
+      <info>Process the xslt if node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt if node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltInitCtxtExts' file='extensions'>
+      <info>Initialize the set of modules with registered stylesheet data</info>
+      <return type='int' info='the number of modules initialized or -1 in case of error'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+    </function>
+    <function name='xsltInitCtxtKeys' file='keys'>
+      <info>Computes all the keys tables for the current input document. Should be done before global varibales are initialized.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='doc' type='xsltDocumentPtr' info='an XSLT document'/>
+    </function>
+    <function name='xsltInitElemPreComp' file='extensions'>
+      <info>Initializes an existing #xsltElemPreComp structure. This is usefull when extending an #xsltElemPreComp to store precomputed data. This function MUST be called on any extension element precomputed data struct.</info>
+      <return type='void'/>
+      <arg name='comp' type='xsltElemPreCompPtr' info='an #xsltElemPreComp (or generally a derived structure)'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='inst' type='xmlNodePtr' info='the element node'/>
+      <arg name='function' type='xsltTransformFunction' info='the transform function'/>
+      <arg name='freeFunc' type='xsltElemPreCompDeallocator' info='the @comp deallocator'/>
+    </function>
+    <function name='xsltIsBlank' file='xsltInternals'>
+      <info>Check if a string is ignorable</info>
+      <return type='int' info='1 if the string is NULL or made of blanks chars, 0 otherwise'/>
+      <arg name='str' type='xmlChar *' info='a string'/>
+    </function>
+    <function name='xsltKeyFunction' file='functions'>
+      <info>Implement the key() XSLT function node-set key(string, object)</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+      <arg name='nargs' type='int' info='the number of arguments'/>
+    </function>
+    <function name='xsltLoadDocument' file='documents'>
+      <info>Try to load a document (not a stylesheet) within the XSLT transformation context</info>
+      <return type='xsltDocumentPtr' info='the new xsltDocumentPtr or NULL in case of error'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='URI' type='const xmlChar *' info='the computed URI of the document'/>
+    </function>
+    <function name='xsltLoadStyleDocument' file='documents'>
+      <info>Try to load a stylesheet document within the XSLT transformation context</info>
+      <return type='xsltDocumentPtr' info='the new xsltDocumentPtr or NULL in case of error'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT style sheet'/>
+      <arg name='URI' type='const xmlChar *' info='the computed URI of the document'/>
+    </function>
+    <function name='xsltLoadStylesheetPI' file='xsltInternals'>
+      <info>This function tries to locate the stylesheet PI in the given document If found, and if contained within the document, it will extract that subtree to build the stylesheet to process @doc (doc itself will be modified). If found but referencing an external document it will attempt to load it and generate a stylesheet from it. In both cases, the resulting stylesheet and the document need to be freed once the transformation is done.</info>
+      <return type='xsltStylesheetPtr' info='a new XSLT stylesheet structure or NULL if not found.'/>
+      <arg name='doc' type='xmlDocPtr' info='a document to process'/>
+    </function>
+    <function name='xsltMatchPattern' file='pattern'>
+      <info></info>
+      <return type='int' info=''/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info=''/>
+      <arg name='node' type='xmlNodePtr' info=''/>
+      <arg name='pattern' type='const xmlChar *' info=''/>
+      <arg name='ctxtdoc' type='xmlDocPtr' info=''/>
+      <arg name='ctxtnode' type='xmlNodePtr' info=''/>
+    </function>
+    <function name='xsltMessage' file='xsltutils'>
+      <info>Process and xsl:message construct</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT processing context'/>
+      <arg name='node' type='xmlNodePtr' info='The current node'/>
+      <arg name='inst' type='xmlNodePtr' info='The node containing the message instruction'/>
+    </function>
+    <function name='xsltNamespaceAlias' file='namespaces'>
+      <info>Read the stylesheet-prefix and result-prefix attributes, register them as well as the corresponding namespace.</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='node' type='xmlNodePtr' info='the xsl:namespace-alias node'/>
+    </function>
+    <function name='xsltNeedElemSpaceHandling' file='imports'>
+      <info>Checks whether that stylesheet requires white-space stripping</info>
+      <return type='int' info='1 if space should be stripped, 0 if not'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+    </function>
+    <function name='xsltNewDocument' file='documents'>
+      <info>Register a new document, apply key computations</info>
+      <return type='xsltDocumentPtr' info='a handler to the document'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context (or NULL)'/>
+      <arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
+    </function>
+    <function name='xsltNewElemPreComp' file='extensions'>
+      <info>Creates and initializes an #xsltElemPreComp</info>
+      <return type='xsltElemPreCompPtr' info='the new and initialized #xsltElemPreComp'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='inst' type='xmlNodePtr' info='the element node'/>
+      <arg name='function' type='xsltTransformFunction' info='the transform function'/>
+    </function>
+    <function name='xsltNewSecurityPrefs' file='security'>
+      <info>Create a new security preference block</info>
+      <return type='xsltSecurityPrefsPtr' info='a pointer to the new block or NULL in case of error'/>
+    </function>
+    <function name='xsltNewStyleDocument' file='documents'>
+      <info>Register a new document, apply key computations</info>
+      <return type='xsltDocumentPtr' info='a handler to the document'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT style sheet'/>
+      <arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
+    </function>
+    <function name='xsltNewStylesheet' file='xsltInternals'>
+      <info>Create a new XSLT Stylesheet</info>
+      <return type='xsltStylesheetPtr' info='the newly allocated xsltStylesheetPtr or NULL in case of error'/>
+    </function>
+    <function name='xsltNewTransformContext' file='transform'>
+      <info>Create a new XSLT TransformContext</info>
+      <return type='xsltTransformContextPtr' info='the newly allocated xsltTransformContextPtr or NULL in case of error'/>
+      <arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
+      <arg name='doc' type='xmlDocPtr' info='the input document'/>
+    </function>
+    <function name='xsltNextImport' file='imports'>
+      <info>Find the next stylesheet in import precedence.</info>
+      <return type='xsltStylesheetPtr' info='the next stylesheet or NULL if it was the last one'/>
+      <arg name='cur' type='xsltStylesheetPtr' info='the current XSLT stylesheet'/>
+    </function>
+    <function name='xsltNormalizeCompSteps' file='pattern'>
+      <info>This is a hashtable scanner function to normalize the compiled steps of an imported stylesheet.</info>
+      <return type='void'/>
+      <arg name='payload' type='void *' info='pointer to template hash table entry'/>
+      <arg name='data' type='void *' info='pointer to the stylesheet'/>
+      <arg name='name' type='const xmlChar *' info='template match name'/>
+    </function>
+    <function name='xsltNumber' file='transform'>
+      <info>Process the xslt number node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt number node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltNumberFormat' file='xsltInternals'>
+      <info>Convert one number.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='data' type='xsltNumberDataPtr' info='the formatting informations'/>
+      <arg name='node' type='xmlNodePtr' info='the data to format'/>
+    </function>
+    <function name='xsltParseGlobalParam' file='variables'>
+      <info>parse an XSLT transformation param declaration and record its value.</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='cur' type='xmlNodePtr' info='the &quot;param&quot; element'/>
+    </function>
+    <function name='xsltParseGlobalVariable' file='variables'>
+      <info>parse an XSLT transformation variable declaration and record its value.</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='cur' type='xmlNodePtr' info='the &quot;variable&quot; element'/>
+    </function>
+    <function name='xsltParseStylesheetAttributeSet' file='attributes'>
+      <info>parse an XSLT stylesheet attribute-set element</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='cur' type='xmlNodePtr' info='the &quot;attribute-set&quot; element'/>
+    </function>
+    <function name='xsltParseStylesheetCallerParam' file='variables'>
+      <info>parse an XSLT transformation param declaration, compute its value but doesn&apos;t record it.</info>
+      <return type='xsltStackElemPtr' info='the new xsltStackElemPtr or NULL'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='cur' type='xmlNodePtr' info='the &quot;param&quot; element'/>
+    </function>
+    <function name='xsltParseStylesheetDoc' file='xsltInternals'>
+      <info>parse an XSLT stylesheet building the associated structures</info>
+      <return type='xsltStylesheetPtr' info='a new XSLT stylesheet structure.'/>
+      <arg name='doc' type='xmlDocPtr' info='and xmlDoc parsed XML'/>
+    </function>
+    <function name='xsltParseStylesheetFile' file='xsltInternals'>
+      <info>Load and parse an XSLT stylesheet</info>
+      <return type='xsltStylesheetPtr' info='a new XSLT stylesheet structure.'/>
+      <arg name='filename' type='const xmlChar *' info='the filename/URL to the stylesheet'/>
+    </function>
+    <function name='xsltParseStylesheetImport' file='imports'>
+      <info>parse an XSLT stylesheet import element</info>
+      <return type='int' info='0 in case of success -1 in case of failure.'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='cur' type='xmlNodePtr' info='the import element'/>
+    </function>
+    <function name='xsltParseStylesheetImportedDoc' file='xsltInternals'>
+      <info>parse an XSLT stylesheet building the associated structures except the processing not needed for imported documents.</info>
+      <return type='xsltStylesheetPtr' info='a new XSLT stylesheet structure.'/>
+      <arg name='doc' type='xmlDocPtr' info='an xmlDoc parsed XML'/>
+      <arg name='style' type='xsltStylesheetPtr' info='pointer to parent stylesheet'/>
+    </function>
+    <function name='xsltParseStylesheetInclude' file='imports'>
+      <info>parse an XSLT stylesheet include element</info>
+      <return type='int' info='0 in case of success -1 in case of failure'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='cur' type='xmlNodePtr' info='the include node'/>
+    </function>
+    <function name='xsltParseStylesheetOutput' file='xsltInternals'>
+      <info>parse an XSLT stylesheet output element and record information related to the stylesheet output</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='cur' type='xmlNodePtr' info='the &quot;output&quot; element'/>
+    </function>
+    <function name='xsltParseStylesheetParam' file='variables'>
+      <info>parse an XSLT transformation param declaration and record its value.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='cur' type='xmlNodePtr' info='the &quot;param&quot; element'/>
+    </function>
+    <function name='xsltParseStylesheetProcess' file='xsltInternals'>
+      <info>parse an XSLT stylesheet adding the associated structures</info>
+      <return type='xsltStylesheetPtr' info='the value of the &apos;ret&apos; parameter if everything went right, NULL if something went amiss.'/>
+      <arg name='ret' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='doc' type='xmlDocPtr' info='and xmlDoc parsed XML'/>
+    </function>
+    <function name='xsltParseStylesheetVariable' file='variables'>
+      <info>parse an XSLT transformation variable declaration and record its value.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='cur' type='xmlNodePtr' info='the &quot;variable&quot; element'/>
+    </function>
+    <function name='xsltParseTemplateContent' file='xsltInternals'>
+      <info>parse a template content-model Clean-up the template content from unwanted ignorable blank nodes and process xslt:text</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='templ' type='xmlNodePtr' info='the container node (can be a document for literal results)'/>
+    </function>
+    <function name='xsltPreComputeExtModuleElement' file='extensions'>
+      <info>Precomputes an extension module element</info>
+      <return type='xsltElemPreCompPtr' info='the precomputed data'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+      <arg name='inst' type='xmlNodePtr' info='the element node'/>
+    </function>
+    <functype name='xsltPreComputeFunction' file='extensions'>
+      <info></info>
+      <return type='xsltElemPreCompPtr' info=''/>
+      <arg name='style' type='xsltStylesheetPtr' info=''/>
+      <arg name='inst' type='xmlNodePtr' info=''/>
+      <arg name='function' type='xsltTransformFunction' info=''/>
+    </functype>
+    <function name='xsltPrintErrorContext' file='xsltutils'>
+      <info>Display the context of an error.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+      <arg name='node' type='xmlNodePtr' info='the current node being processed'/>
+    </function>
+    <function name='xsltProcessingInstruction' file='transform'>
+      <info>Process the xslt processing-instruction node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt processing-instruction node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltProfileStylesheet' file='transform'>
+      <info>Apply the stylesheet to the document and dump the profiling to the given output.</info>
+      <return type='xmlDocPtr' info='the result document or NULL in case of error'/>
+      <arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
+      <arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
+      <arg name='params' type='const char **' info='a NULL terminated arry of parameters names/values tuples'/>
+      <arg name='output' type='FILE *' info='a FILE * for the profiling output'/>
+    </function>
+    <function name='xsltQuoteOneUserParam' file='variables'>
+      <info>This is normally called from xsltQuoteUserParams to process a single parameter from a list of parameters.  The @value is stored in the context&apos;s global variable/parameter hash table.</info>
+      <return type='int' info='0 in case of success, -1 in case of error.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='name' type='const xmlChar *' info='a null terminated string giving the name of the parameter'/>
+      <arg name='value' type='const xmlChar *' info='a null terminated string giving the parameter value'/>
+    </function>
+    <function name='xsltQuoteUserParams' file='variables'>
+      <info>Similar to xsltEvalUserParams, but the values are treated literally and are * *not* evaluated as XPath expressions. This should be done on parsed stylesheets before starting to apply transformations.</info>
+      <return type='int' info='0 in case of success, -1 in case of error.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='params' type='const char **' info='a NULL terminated arry of parameters names/values tuples'/>
+    </function>
+    <function name='xsltRegisterAllElement' file='transform'>
+      <info>Registers all default XSLT elements in this context</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XPath context'/>
+    </function>
+    <function name='xsltRegisterAllExtras' file='extra'>
+      <info>Registers the built-in extensions</info>
+      <return type='void'/>
+    </function>
+    <function name='xsltRegisterAllFunctions' file='functions'>
+      <info>Registers all default XSLT functions in this context</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+    </function>
+    <function name='xsltRegisterExtElement' file='extensions'>
+      <info>Registers an extension element</info>
+      <return type='int' info='0 in case of success, -1 in case of failure'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='name' type='const xmlChar *' info='the name of the element'/>
+      <arg name='URI' type='const xmlChar *' info='the URI associated to the element'/>
+      <arg name='function' type='xsltTransformFunction' info='the actual implementation which should be called'/>
+    </function>
+    <function name='xsltRegisterExtFunction' file='extensions'>
+      <info>Registers an extension function</info>
+      <return type='int' info='0 in case of success, -1 in case of failure'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='name' type='const xmlChar *' info='the name of the element'/>
+      <arg name='URI' type='const xmlChar *' info='the URI associated to the element'/>
+      <arg name='function' type='xmlXPathFunction' info='the actual implementation which should be called'/>
+    </function>
+    <function name='xsltRegisterExtModule' file='extensions'>
+      <info>Register an XSLT extension module to the library.</info>
+      <return type='int' info='0 if sucessful, -1 in case of error'/>
+      <arg name='URI' type='const xmlChar *' info='URI associated to this module'/>
+      <arg name='initFunc' type='xsltExtInitFunction' info='the module initialization function'/>
+      <arg name='shutdownFunc' type='xsltExtShutdownFunction' info='the module shutdown function'/>
+    </function>
+    <function name='xsltRegisterExtModuleElement' file='extensions'>
+      <info>Registers an extension module element.</info>
+      <return type='int' info='0 if successful, -1 in case of error.'/>
+      <arg name='name' type='const xmlChar *' info='the element name'/>
+      <arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
+      <arg name='precomp' type='xsltPreComputeFunction' info='the pre-computation callback'/>
+      <arg name='transform' type='xsltTransformFunction' info='the transformation callback'/>
+    </function>
+    <function name='xsltRegisterExtModuleFull' file='extensions'>
+      <info>Register an XSLT extension module to the library.</info>
+      <return type='int' info='0 if sucessful, -1 in case of error'/>
+      <arg name='URI' type='const xmlChar *' info='URI associated to this module'/>
+      <arg name='initFunc' type='xsltExtInitFunction' info='the module initialization function'/>
+      <arg name='shutdownFunc' type='xsltExtShutdownFunction' info='the module shutdown function'/>
+      <arg name='styleInitFunc' type='xsltStyleExtInitFunction' info='the module initialization function'/>
+      <arg name='styleShutdownFunc' type='xsltStyleExtShutdownFunction' info='the module shutdown function'/>
+    </function>
+    <function name='xsltRegisterExtModuleFunction' file='extensions'>
+      <info>Registers an extension module function.</info>
+      <return type='int' info='0 if successful, -1 in case of error.'/>
+      <arg name='name' type='const xmlChar *' info='the function name'/>
+      <arg name='URI' type='const xmlChar *' info='the function namespace URI'/>
+      <arg name='function' type='xmlXPathFunction' info='the function callback'/>
+    </function>
+    <function name='xsltRegisterExtModuleTopLevel' file='extensions'>
+      <info>Registers an extension module top-level element.</info>
+      <return type='int' info='0 if successful, -1 in case of error.'/>
+      <arg name='name' type='const xmlChar *' info='the top-level element name'/>
+      <arg name='URI' type='const xmlChar *' info='the top-level element namespace URI'/>
+      <arg name='function' type='xsltTopLevelFunction' info='the top-level element callback'/>
+    </function>
+    <function name='xsltRegisterExtPrefix' file='extensions'>
+      <info>Registers an extension namespace</info>
+      <return type='int' info='0 in case of success, -1 in case of failure'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+      <arg name='prefix' type='const xmlChar *' info='the prefix used'/>
+      <arg name='URI' type='const xmlChar *' info='the URI associated to the extension'/>
+    </function>
+    <function name='xsltRegisterExtras' file='extra'>
+      <info>Registers the built-in extensions. This function is deprecated, use xsltRegisterAllExtras instead.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+    </function>
+    <function name='xsltRegisterPersistRVT' file='xsltInternals'>
+      <info>Register the result value tree for destruction at the end of the processing</info>
+      <return type='int' info='0 in case of success and -1 in case of error.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='RVT' type='xmlDocPtr' info='a result value tree'/>
+    </function>
+    <function name='xsltRegisterTestModule' file='extensions'>
+      <info>Registers the test module</info>
+      <return type='void'/>
+    </function>
+    <function name='xsltRegisterTmpRVT' file='xsltInternals'>
+      <info>Register the result value tree for destruction at the end of the context</info>
+      <return type='int' info='0 in case of success and -1 in case of error.'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='RVT' type='xmlDocPtr' info='a result value tree'/>
+    </function>
+    <function name='xsltResolveStylesheetAttributeSet' file='attributes'>
+      <info>resolve the references between attribute sets.</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+    </function>
+    <function name='xsltRunStylesheet' file='transform'>
+      <info>Apply the stylesheet to the document and generate the output according to @output @SAX and @IObuf. It&apos;s an error to specify both @SAX and @IObuf.  NOTE: This may lead to a non-wellformed output XML wise ! NOTE: This may also result in multiple files being generated NOTE: using IObuf, the result encoding used will be the one used for creating the output buffer, use the following macro to read it from the stylesheet XSLT_GET_IMPORT_PTR(encoding, style, encoding) NOTE: using SAX, any encoding specified in the stylesheet will be lost since the interface uses only UTF8</info>
+      <return type='int' info='the number of bytes written to the main resource or -1 in case of error.'/>
+      <arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
+      <arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
+      <arg name='params' type='const char **' info='a NULL terminated array of parameters names/values tuples'/>
+      <arg name='output' type='const char *' info='the URL/filename ot the generated resource if available'/>
+      <arg name='SAX' type='xmlSAXHandlerPtr' info='a SAX handler for progressive callback output (not implemented yet)'/>
+      <arg name='IObuf' type='xmlOutputBufferPtr' info='an output buffer for progressive output (not implemented yet)'/>
+    </function>
+    <function name='xsltRunStylesheetUser' file='transform'>
+      <info>Apply the stylesheet to the document and generate the output according to @output @SAX and @IObuf. It&apos;s an error to specify both @SAX and @IObuf.  NOTE: This may lead to a non-wellformed output XML wise ! NOTE: This may also result in multiple files being generated NOTE: using IObuf, the result encoding used will be the one used for creating the output buffer, use the following macro to read it from the stylesheet XSLT_GET_IMPORT_PTR(encoding, style, encoding) NOTE: using SAX, any encoding specified in the stylesheet will be lost since the interface uses only UTF8</info>
+      <return type='int' info='the number of by written to the main resource or -1 in case of error.'/>
+      <arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
+      <arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
+      <arg name='params' type='const char **' info='a NULL terminated array of parameters names/values tuples'/>
+      <arg name='output' type='const char *' info='the URL/filename ot the generated resource if available'/>
+      <arg name='SAX' type='xmlSAXHandlerPtr' info='a SAX handler for progressive callback output (not implemented yet)'/>
+      <arg name='IObuf' type='xmlOutputBufferPtr' info='an output buffer for progressive output (not implemented yet)'/>
+      <arg name='profile' type='FILE *' info='profile FILE * output or NULL'/>
+      <arg name='userCtxt' type='xsltTransformContextPtr' info='user provided transform context'/>
+    </function>
+    <function name='xsltSaveProfiling' file='xsltutils'>
+      <info>Save the profiling informations on @output</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT context'/>
+      <arg name='output' type='FILE *' info='a FILE * for saving the informations'/>
+    </function>
+    <function name='xsltSaveResultTo' file='xsltutils'>
+      <info>Save the result @result obtained by applying the @style stylesheet to an I/O output channel @buf</info>
+      <return type='int' info='the number of byte written or -1 in case of failure.'/>
+      <arg name='buf' type='xmlOutputBufferPtr' info='an output buffer'/>
+      <arg name='result' type='xmlDocPtr' info='the result xmlDocPtr'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltSaveResultToFd' file='xsltutils'>
+      <info>Save the result @result obtained by applying the @style stylesheet to an open file descriptor This does not close the descriptor.</info>
+      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
+      <arg name='fd' type='int' info='a file descriptor'/>
+      <arg name='result' type='xmlDocPtr' info='the result xmlDocPtr'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltSaveResultToFile' file='xsltutils'>
+      <info>Save the result @result obtained by applying the @style stylesheet to an open FILE * I/O. This does not close the FILE @file</info>
+      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
+      <arg name='file' type='FILE *' info='a FILE * I/O'/>
+      <arg name='result' type='xmlDocPtr' info='the result xmlDocPtr'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltSaveResultToFilename' file='xsltutils'>
+      <info>Save the result @result obtained by applying the @style stylesheet to a file or @URL</info>
+      <return type='int' info='the number of byte written or -1 in case of failure.'/>
+      <arg name='URL' type='const char *' info='a filename or URL'/>
+      <arg name='result' type='xmlDocPtr' info='the result xmlDocPtr'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+      <arg name='compression' type='int' info='the compression factor (0 - 9 included)'/>
+    </function>
+    <function name='xsltSaveResultToString' file='xsltutils'>
+      <info>Save the result @result obtained by applying the @style stylesheet to a file or @URL</info>
+      <return type='int' info='the number of byte written or -1 in case of failure.'/>
+      <arg name='doc_txt_ptr' type='xmlChar **' info='Memory pointer for allocated XML text'/>
+      <arg name='doc_txt_len' type='int *' info='Length of the generated XML text'/>
+      <arg name='result' type='xmlDocPtr' info='the result xmlDocPtr'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltSecurityAllow' file='security'>
+      <info>Function used to always allow an operation</info>
+      <return type='int' info='1 always'/>
+      <arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to use'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='value' type='const char *' info='unused'/>
+    </function>
+    <functype name='xsltSecurityCheck' file='security'>
+      <info>User provided function to check the value of a string like a file path or an URL ...</info>
+      <return type='int' info=''/>
+      <arg name='sec' type='xsltSecurityPrefsPtr' info=''/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info=''/>
+      <arg name='value' type='const char *' info=''/>
+    </functype>
+    <function name='xsltSecurityForbid' file='security'>
+      <info>Function used to always forbid an operation</info>
+      <return type='int' info='0 always'/>
+      <arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to use'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='value' type='const char *' info='unused'/>
+    </function>
+    <function name='xsltSetCtxtParseOptions' file='xsltutils'>
+      <info>Change the default parser option passed by the XSLT engine to the parser when using document() loading.</info>
+      <return type='int' info='the previous options or -1 in case of error'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='options' type='int' info='a combination of libxml2 xmlParserOption'/>
+    </function>
+    <function name='xsltSetCtxtSecurityPrefs' file='security'>
+      <info>Set the security preference for a specific transformation</info>
+      <return type='int' info='-1 in case of error, 0 otherwise'/>
+      <arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to use'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+    </function>
+    <function name='xsltSetCtxtSortFunc' file='xsltutils'>
+      <info>Function to set the handler for XSLT sorting for the specified context. If the handler is NULL, then the global sort function will be called</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='handler' type='xsltSortFunc' info='the new handler function'/>
+    </function>
+    <function name='xsltSetDebuggerCallbacks' file='xsltutils'>
+      <info>This function allow to plug a debugger into the XSLT library @block points to a block of memory containing the address of @no callback routines.</info>
+      <return type='int' info='0 in case of success and -1 in case of error'/>
+      <arg name='no' type='int' info='number of callbacks'/>
+      <arg name='block' type='void *' info='the block of callbacks'/>
+    </function>
+    <function name='xsltSetDebuggerStatus' file='xsltutils'>
+      <info>This function sets the value of xslDebugStatus.</info>
+      <return type='void'/>
+      <arg name='value' type='int' info='the value to be set'/>
+    </function>
+    <function name='xsltSetDefaultSecurityPrefs' file='security'>
+      <info>Set the default security preference application-wide</info>
+      <return type='void'/>
+      <arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to use'/>
+    </function>
+    <function name='xsltSetGenericDebugFunc' file='xsltutils'>
+      <info>Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing or validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL.</info>
+      <return type='void'/>
+      <arg name='ctx' type='void *' info='the new error handling context'/>
+      <arg name='handler' type='xmlGenericErrorFunc' info='the new handler function'/>
+    </function>
+    <function name='xsltSetGenericErrorFunc' file='xsltutils'>
+      <info>Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL.</info>
+      <return type='void'/>
+      <arg name='ctx' type='void *' info='the new error handling context'/>
+      <arg name='handler' type='xmlGenericErrorFunc' info='the new handler function'/>
+    </function>
+    <function name='xsltSetLoaderFunc' file='documents'>
+      <info>Set the new function to load document, if NULL it resets it to the default function.</info>
+      <return type='void'/>
+      <arg name='f' type='xsltDocLoaderFunc' info='the new function to handle document loading.'/>
+    </function>
+    <function name='xsltSetSecurityPrefs' file='security'>
+      <info>Update the security option to use the new callback checking function</info>
+      <return type='int' info='-1 in case of error, 0 otherwise'/>
+      <arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to update'/>
+      <arg name='option' type='xsltSecurityOption' info='the option to update'/>
+      <arg name='func' type='xsltSecurityCheck' info='the user callback to use for this option'/>
+    </function>
+    <function name='xsltSetSortFunc' file='xsltutils'>
+      <info>Function to reset the global handler for XSLT sorting. If the handler is NULL, the default sort function will be used.</info>
+      <return type='void'/>
+      <arg name='handler' type='xsltSortFunc' info='the new handler function'/>
+    </function>
+    <function name='xsltSetTransformErrorFunc' file='xsltutils'>
+      <info>Function to reset the handler and the error context for out of context error messages specific to a given XSLT transromation.  This simply means that @handler will be called for subsequent error messages while running the transformation.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='ctx' type='void *' info='the new error handling context'/>
+      <arg name='handler' type='xmlGenericErrorFunc' info='the new handler function'/>
+    </function>
+    <function name='xsltSetXIncludeDefault' file='transform'>
+      <info>Set whether XInclude should be processed on document being loaded by default</info>
+      <return type='void'/>
+      <arg name='xinclude' type='int' info='whether to do XInclude processing'/>
+    </function>
+    <function name='xsltShutdownCtxtExts' file='extensions'>
+      <info>Shutdown the set of modules loaded</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+    </function>
+    <function name='xsltShutdownExts' file='extensions'>
+      <info>Shutdown the set of modules loaded</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+    </function>
+    <function name='xsltSort' file='transform'>
+      <info>function attached to xsl:sort nodes, but this should not be called directly</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt sort node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <functype name='xsltSortFunc' file='xsltInternals'>
+      <info>Signature of the function to use during sorting</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a transformation context'/>
+      <arg name='sorts' type='xmlNodePtr *' info='the node-set to sort'/>
+      <arg name='nbsorts' type='int' info='the number of sorts'/>
+    </functype>
+    <function name='xsltSplitQName' file='xsltutils'>
+      <info>Split QNames into prefix and local names, both allocated from a dictionnary.</info>
+      <return type='const xmlChar *' info='the localname or NULL in case of error.'/>
+      <arg name='dict' type='xmlDictPtr' info='a dictionnary'/>
+      <arg name='name' type='const xmlChar *' info='the full QName'/>
+      <arg name='prefix' type='const xmlChar **' info='the return value'/>
+    </function>
+    <functype name='xsltStyleExtInitFunction' file='extensions'>
+      <info>A function called at initialization time of an XSLT extension module.</info>
+      <return type='void *' info='a pointer to the module specific data for this transformation.'/>
+      <arg name='style' type='xsltStylesheetPtr' info=''/>
+      <arg name='URI' type='const xmlChar *' info='the namespace URI for the extension'/>
+    </functype>
+    <functype name='xsltStyleExtShutdownFunction' file='extensions'>
+      <info>A function called at shutdown time of an XSLT extension module.</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info=''/>
+      <arg name='URI' type='const xmlChar *' info='the namespace URI for the extension'/>
+      <arg name='data' type='void *' info='the data associated to this module'/>
+    </functype>
+    <function name='xsltStyleGetExtData' file='extensions'>
+      <info>Retrieve the data associated to the extension module in this given stylesheet.</info>
+      <return type='void *' info='the pointer or NULL if not present'/>
+      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
+      <arg name='URI' type='const xmlChar *' info='the URI associated to the exension module'/>
+    </function>
+    <function name='xsltStylePreCompute' file='preproc'>
+      <info>Precompute an XSLT stylesheet element</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
+      <arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet'/>
+    </function>
+    <function name='xsltSystemPropertyFunction' file='functions'>
+      <info>Implement the system-property() XSLT function object system-property(string)</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+      <arg name='nargs' type='int' info='the number of arguments'/>
+    </function>
+    <function name='xsltTemplateProcess' file='templates'>
+      <info>Process the given node and return the new string value.</info>
+      <return type='xmlNodePtr *' info='the computed tree replacement'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='node' type='xmlNodePtr' info='the attribute template node'/>
+    </function>
+    <function name='xsltTestCompMatchList' file='pattern'>
+      <info>Test whether the node matches one of the patterns in the list</info>
+      <return type='int' info='1 if it matches, 0 if it doesn&apos;t and -1 in case of failure'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='a node'/>
+      <arg name='comp' type='xsltCompMatchPtr' info='the precompiled pattern list'/>
+    </function>
+    <function name='xsltText' file='transform'>
+      <info>Process the xslt text node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt text node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltTimestamp' file='xsltutils'>
+      <info>Used for gathering profiling data</info>
+      <return type='long' info='the number of tenth of milliseconds since the beginning of the profiling'/>
+    </function>
+    <functype name='xsltTopLevelFunction' file='extensions'>
+      <info></info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info=''/>
+      <arg name='inst' type='xmlNodePtr' info=''/>
+    </functype>
+    <function name='xsltTransformError' file='xsltutils'>
+      <info>Display and format an error messages, gives file, line, position and extra parameters, will use the specific transformation context if available</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet used'/>
+      <arg name='node' type='xmlNodePtr' info='the current node in the stylesheet'/>
+      <arg name='msg' type='const char *' info='the message to display/transmit'/>
+      <arg name='...' type='...' info='extra parameters for the message display'/>
+    </function>
+    <functype name='xsltTransformFunction' file='xsltInternals'>
+      <info>Signature of the function associated to elements part of the stylesheet language like xsl:if or xsl:apply-templates.</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='node' type='xmlNodePtr' info='the input node'/>
+      <arg name='inst' type='xmlNodePtr' info='the stylesheet node'/>
+      <arg name='comp' type='xsltElemPreCompPtr' info='the compiled information from the stylesheet'/>
+    </functype>
+    <function name='xsltUnparsedEntityURIFunction' file='functions'>
+      <info>Implement the unparsed-entity-uri() XSLT function string unparsed-entity-uri(string)</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
+      <arg name='nargs' type='int' info='the number of arguments'/>
+    </function>
+    <function name='xsltUnregisterExtModule' file='extensions'>
+      <info>Unregister an XSLT extension module from the library.</info>
+      <return type='int' info='0 if sucessful, -1 in case of error'/>
+      <arg name='URI' type='const xmlChar *' info='URI associated to this module'/>
+    </function>
+    <function name='xsltUnregisterExtModuleElement' file='extensions'>
+      <info>Unregisters an extension module element</info>
+      <return type='int' info='0 if successful, -1 in case of error.'/>
+      <arg name='name' type='const xmlChar *' info='the element name'/>
+      <arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
+    </function>
+    <function name='xsltUnregisterExtModuleFunction' file='extensions'>
+      <info>Unregisters an extension module function</info>
+      <return type='int' info='0 if successful, -1 in case of error.'/>
+      <arg name='name' type='const xmlChar *' info='the function name'/>
+      <arg name='URI' type='const xmlChar *' info='the function namespace URI'/>
+    </function>
+    <function name='xsltUnregisterExtModuleTopLevel' file='extensions'>
+      <info>Unregisters an extension module top-level element</info>
+      <return type='int' info='0 if successful, -1 in case of error.'/>
+      <arg name='name' type='const xmlChar *' info='the top-level element name'/>
+      <arg name='URI' type='const xmlChar *' info='the top-level element namespace URI'/>
+    </function>
+    <function name='xsltValueOf' file='transform'>
+      <info>Process the xslt value-of node on the source node</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
+      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
+      <arg name='inst' type='xmlNodePtr' info='the xslt value-of node'/>
+      <arg name='comp' type='xsltStylePreCompPtr' info='precomputed information'/>
+    </function>
+    <function name='xsltVariableLookup' file='variables'>
+      <info>Search in the Variable array of the context for the given variable value.</info>
+      <return type='xmlXPathObjectPtr' info='the value or NULL if not found'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
+      <arg name='name' type='const xmlChar *' info='the variable name'/>
+      <arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
+    </function>
+    <function name='xsltXPathCompile' file='xsltutils'>
+      <info>Compile an XPath expression</info>
+      <return type='xmlXPathCompExprPtr' info='the xmlXPathCompExprPtr resulting from the compilation or NULL. the caller has to free the object.'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+      <arg name='str' type='const xmlChar *' info='the XPath expression'/>
+    </function>
+    <function name='xsltXPathFunctionLookup' file='functions'>
+      <info>This is the entry point when a function is needed by the XPath interpretor.</info>
+      <return type='xmlXPathFunction' info='the callback function or NULL if not found'/>
+      <arg name='ctxt' type='xmlXPathContextPtr' info='a void * but the XSLT transformation context actually'/>
+      <arg name='name' type='const xmlChar *' info='the function name'/>
+      <arg name='ns_uri' type='const xmlChar *' info='the function namespace URI'/>
+    </function>
+    <function name='xsltXPathGetTransformContext' file='extensions'>
+      <info>Provides the XSLT transformation context from the XPath transformation context. This is useful when an XPath function in the extension module is called by the XPath interpreter and that the XSLT context is needed for example to retrieve the associated data pertaining to this XSLT transformation.</info>
+      <return type='xsltTransformContextPtr' info='the XSLT transformation context or NULL in case of error.'/>
+      <arg name='ctxt' type='xmlXPathParserContextPtr' info='an XPath transformation context'/>
+    </function>
+    <function name='xsltXPathVariableLookup' file='variables'>
+      <info>This is the entry point when a varibale is needed by the XPath interpretor.</info>
+      <return type='xmlXPathObjectPtr' info='the value or NULL if not found'/>
+      <arg name='ctxt' type='void *' info='a void * but the the XSLT transformation context actually'/>
+      <arg name='name' type='const xmlChar *' info='the variable name'/>
+      <arg name='ns_uri' type='const xmlChar *' info='the variable namespace URI'/>
+    </function>
+  </symbols>
+</api>

Added: packages/libxslt/branches/upstream/1.1.16/doc/libxslt-refs.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/libxslt-refs.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/libxslt-refs.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6538 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<apirefs name='libxslt'>
+  <references>
+    <reference name='CHECK_STOPPED' href='html/libxslt-xsltInternals.html#CHECK_STOPPED'/>
+    <reference name='CHECK_STOPPED0' href='html/libxslt-xsltInternals.html#CHECK_STOPPED0'/>
+    <reference name='CHECK_STOPPEDE' href='html/libxslt-xsltInternals.html#CHECK_STOPPEDE'/>
+    <reference name='IS_XSLT_ELEM' href='html/libxslt-xsltutils.html#IS_XSLT_ELEM'/>
+    <reference name='IS_XSLT_NAME' href='html/libxslt-xsltutils.html#IS_XSLT_NAME'/>
+    <reference name='IS_XSLT_REAL_NODE' href='html/libxslt-xsltutils.html#IS_XSLT_REAL_NODE'/>
+    <reference name='LIBXSLT_PUBLIC' href='html/libxslt-xsltexports.html#LIBXSLT_PUBLIC'/>
+    <reference name='NODE_IS_KEYED' href='html/libxslt-keys.html#NODE_IS_KEYED'/>
+    <reference name='UNDEFINED_DEFAULT_NS' href='html/libxslt-namespaces.html#UNDEFINED_DEFAULT_NS'/>
+    <reference name='XML_CAST_FPTR' href='html/libxslt-xsltInternals.html#XML_CAST_FPTR'/>
+    <reference name='XSLTCALL' href='html/libxslt-xsltexports.html#XSLTCALL'/>
+    <reference name='XSLTPUBFUN' href='html/libxslt-xsltexports.html#XSLTPUBFUN'/>
+    <reference name='XSLTPUBVAR' href='html/libxslt-xsltexports.html#XSLTPUBVAR'/>
+    <reference name='XSLT_DEBUG_CONT' href='html/libxslt-xsltutils.html#XSLT_DEBUG_CONT'/>
+    <reference name='XSLT_DEBUG_INIT' href='html/libxslt-xsltutils.html#XSLT_DEBUG_INIT'/>
+    <reference name='XSLT_DEBUG_NEXT' href='html/libxslt-xsltutils.html#XSLT_DEBUG_NEXT'/>
+    <reference name='XSLT_DEBUG_NONE' href='html/libxslt-xsltutils.html#XSLT_DEBUG_NONE'/>
+    <reference name='XSLT_DEBUG_QUIT' href='html/libxslt-xsltutils.html#XSLT_DEBUG_QUIT'/>
+    <reference name='XSLT_DEBUG_RUN' href='html/libxslt-xsltutils.html#XSLT_DEBUG_RUN'/>
+    <reference name='XSLT_DEBUG_RUN_RESTART' href='html/libxslt-xsltutils.html#XSLT_DEBUG_RUN_RESTART'/>
+    <reference name='XSLT_DEBUG_STEP' href='html/libxslt-xsltutils.html#XSLT_DEBUG_STEP'/>
+    <reference name='XSLT_DEBUG_STEPOUT' href='html/libxslt-xsltutils.html#XSLT_DEBUG_STEPOUT'/>
+    <reference name='XSLT_DEBUG_STOP' href='html/libxslt-xsltutils.html#XSLT_DEBUG_STOP'/>
+    <reference name='XSLT_DEFAULT_URL' href='html/libxslt-xslt.html#XSLT_DEFAULT_URL'/>
+    <reference name='XSLT_DEFAULT_VENDOR' href='html/libxslt-xslt.html#XSLT_DEFAULT_VENDOR'/>
+    <reference name='XSLT_DEFAULT_VERSION' href='html/libxslt-xslt.html#XSLT_DEFAULT_VERSION'/>
+    <reference name='XSLT_FUNC_APPLYIMPORTS' href='html/libxslt-xsltInternals.html#XSLT_FUNC_APPLYIMPORTS'/>
+    <reference name='XSLT_FUNC_APPLYTEMPLATES' href='html/libxslt-xsltInternals.html#XSLT_FUNC_APPLYTEMPLATES'/>
+    <reference name='XSLT_FUNC_ATTRIBUTE' href='html/libxslt-xsltInternals.html#XSLT_FUNC_ATTRIBUTE'/>
+    <reference name='XSLT_FUNC_CALLTEMPLATE' href='html/libxslt-xsltInternals.html#XSLT_FUNC_CALLTEMPLATE'/>
+    <reference name='XSLT_FUNC_CHOOSE' href='html/libxslt-xsltInternals.html#XSLT_FUNC_CHOOSE'/>
+    <reference name='XSLT_FUNC_COMMENT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_COMMENT'/>
+    <reference name='XSLT_FUNC_COPY' href='html/libxslt-xsltInternals.html#XSLT_FUNC_COPY'/>
+    <reference name='XSLT_FUNC_COPYOF' href='html/libxslt-xsltInternals.html#XSLT_FUNC_COPYOF'/>
+    <reference name='XSLT_FUNC_DOCUMENT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_DOCUMENT'/>
+    <reference name='XSLT_FUNC_ELEMENT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_ELEMENT'/>
+    <reference name='XSLT_FUNC_EXTENSION' href='html/libxslt-xsltInternals.html#XSLT_FUNC_EXTENSION'/>
+    <reference name='XSLT_FUNC_FOREACH' href='html/libxslt-xsltInternals.html#XSLT_FUNC_FOREACH'/>
+    <reference name='XSLT_FUNC_IF' href='html/libxslt-xsltInternals.html#XSLT_FUNC_IF'/>
+    <reference name='XSLT_FUNC_NUMBER' href='html/libxslt-xsltInternals.html#XSLT_FUNC_NUMBER'/>
+    <reference name='XSLT_FUNC_PARAM' href='html/libxslt-xsltInternals.html#XSLT_FUNC_PARAM'/>
+    <reference name='XSLT_FUNC_PI' href='html/libxslt-xsltInternals.html#XSLT_FUNC_PI'/>
+    <reference name='XSLT_FUNC_SORT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_SORT'/>
+    <reference name='XSLT_FUNC_TEXT' href='html/libxslt-xsltInternals.html#XSLT_FUNC_TEXT'/>
+    <reference name='XSLT_FUNC_VALUEOF' href='html/libxslt-xsltInternals.html#XSLT_FUNC_VALUEOF'/>
+    <reference name='XSLT_FUNC_VARIABLE' href='html/libxslt-xsltInternals.html#XSLT_FUNC_VARIABLE'/>
+    <reference name='XSLT_FUNC_WHEN' href='html/libxslt-xsltInternals.html#XSLT_FUNC_WHEN'/>
+    <reference name='XSLT_FUNC_WITHPARAM' href='html/libxslt-xsltInternals.html#XSLT_FUNC_WITHPARAM'/>
+    <reference name='XSLT_GET_IMPORT_INT' href='html/libxslt-imports.html#XSLT_GET_IMPORT_INT'/>
+    <reference name='XSLT_GET_IMPORT_PTR' href='html/libxslt-imports.html#XSLT_GET_IMPORT_PTR'/>
+    <reference name='XSLT_LIBXSLT_NAMESPACE' href='html/libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE'/>
+    <reference name='XSLT_LOAD_DOCUMENT' href='html/libxslt-documents.html#XSLT_LOAD_DOCUMENT'/>
+    <reference name='XSLT_LOAD_START' href='html/libxslt-documents.html#XSLT_LOAD_START'/>
+    <reference name='XSLT_LOAD_STYLESHEET' href='html/libxslt-documents.html#XSLT_LOAD_STYLESHEET'/>
+    <reference name='XSLT_MAX_SORT' href='html/libxslt-xsltInternals.html#XSLT_MAX_SORT'/>
+    <reference name='XSLT_NAMESPACE' href='html/libxslt-xslt.html#XSLT_NAMESPACE'/>
+    <reference name='XSLT_NORM_SAXON_NAMESPACE' href='html/libxslt-extra.html#XSLT_NORM_SAXON_NAMESPACE'/>
+    <reference name='XSLT_OUTPUT_HTML' href='html/libxslt-xsltInternals.html#XSLT_OUTPUT_HTML'/>
+    <reference name='XSLT_OUTPUT_TEXT' href='html/libxslt-xsltInternals.html#XSLT_OUTPUT_TEXT'/>
+    <reference name='XSLT_OUTPUT_XML' href='html/libxslt-xsltInternals.html#XSLT_OUTPUT_XML'/>
+    <reference name='XSLT_PARSE_OPTIONS' href='html/libxslt-xslt.html#XSLT_PARSE_OPTIONS'/>
+    <reference name='XSLT_PAT_NO_PRIORITY' href='html/libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY'/>
+    <reference name='XSLT_REGISTER_FUNCTION_LOOKUP' href='html/libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP'/>
+    <reference name='XSLT_REGISTER_VARIABLE_LOOKUP' href='html/libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP'/>
+    <reference name='XSLT_RUNTIME_EXTRA' href='html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA'/>
+    <reference name='XSLT_RUNTIME_EXTRA_FREE' href='html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE'/>
+    <reference name='XSLT_RUNTIME_EXTRA_LST' href='html/libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST'/>
+    <reference name='XSLT_SAXON_NAMESPACE' href='html/libxslt-extra.html#XSLT_SAXON_NAMESPACE'/>
+    <reference name='XSLT_SECPREF_CREATE_DIRECTORY' href='html/libxslt-security.html#XSLT_SECPREF_CREATE_DIRECTORY'/>
+    <reference name='XSLT_SECPREF_READ_FILE' href='html/libxslt-security.html#XSLT_SECPREF_READ_FILE'/>
+    <reference name='XSLT_SECPREF_READ_NETWORK' href='html/libxslt-security.html#XSLT_SECPREF_READ_NETWORK'/>
+    <reference name='XSLT_SECPREF_WRITE_FILE' href='html/libxslt-security.html#XSLT_SECPREF_WRITE_FILE'/>
+    <reference name='XSLT_SECPREF_WRITE_NETWORK' href='html/libxslt-security.html#XSLT_SECPREF_WRITE_NETWORK'/>
+    <reference name='XSLT_STATE_ERROR' href='html/libxslt-xsltInternals.html#XSLT_STATE_ERROR'/>
+    <reference name='XSLT_STATE_OK' href='html/libxslt-xsltInternals.html#XSLT_STATE_OK'/>
+    <reference name='XSLT_STATE_STOPPED' href='html/libxslt-xsltInternals.html#XSLT_STATE_STOPPED'/>
+    <reference name='XSLT_STRANGE' href='html/libxslt-xsltutils.html#XSLT_STRANGE'/>
+    <reference name='XSLT_TIMESTAMP_TICS_PER_SEC' href='html/libxslt-xsltutils.html#XSLT_TIMESTAMP_TICS_PER_SEC'/>
+    <reference name='XSLT_TODO' href='html/libxslt-xsltutils.html#XSLT_TODO'/>
+    <reference name='XSLT_TRACE' href='html/libxslt-xsltutils.html#XSLT_TRACE'/>
+    <reference name='XSLT_TRACE_ALL' href='html/libxslt-xsltutils.html#XSLT_TRACE_ALL'/>
+    <reference name='XSLT_TRACE_APPLY_TEMPLATE' href='html/libxslt-xsltutils.html#XSLT_TRACE_APPLY_TEMPLATE'/>
+    <reference name='XSLT_TRACE_APPLY_TEMPLATES' href='html/libxslt-xsltutils.html#XSLT_TRACE_APPLY_TEMPLATES'/>
+    <reference name='XSLT_TRACE_CALL_TEMPLATE' href='html/libxslt-xsltutils.html#XSLT_TRACE_CALL_TEMPLATE'/>
+    <reference name='XSLT_TRACE_CHOOSE' href='html/libxslt-xsltutils.html#XSLT_TRACE_CHOOSE'/>
+    <reference name='XSLT_TRACE_COMMENT' href='html/libxslt-xsltutils.html#XSLT_TRACE_COMMENT'/>
+    <reference name='XSLT_TRACE_COPY' href='html/libxslt-xsltutils.html#XSLT_TRACE_COPY'/>
+    <reference name='XSLT_TRACE_COPY_OF' href='html/libxslt-xsltutils.html#XSLT_TRACE_COPY_OF'/>
+    <reference name='XSLT_TRACE_COPY_TEXT' href='html/libxslt-xsltutils.html#XSLT_TRACE_COPY_TEXT'/>
+    <reference name='XSLT_TRACE_FOR_EACH' href='html/libxslt-xsltutils.html#XSLT_TRACE_FOR_EACH'/>
+    <reference name='XSLT_TRACE_IF' href='html/libxslt-xsltutils.html#XSLT_TRACE_IF'/>
+    <reference name='XSLT_TRACE_KEYS' href='html/libxslt-xsltutils.html#XSLT_TRACE_KEYS'/>
+    <reference name='XSLT_TRACE_NONE' href='html/libxslt-xsltutils.html#XSLT_TRACE_NONE'/>
+    <reference name='XSLT_TRACE_PI' href='html/libxslt-xsltutils.html#XSLT_TRACE_PI'/>
+    <reference name='XSLT_TRACE_PROCESS_NODE' href='html/libxslt-xsltutils.html#XSLT_TRACE_PROCESS_NODE'/>
+    <reference name='XSLT_TRACE_STRIP_SPACES' href='html/libxslt-xsltutils.html#XSLT_TRACE_STRIP_SPACES'/>
+    <reference name='XSLT_TRACE_TEMPLATES' href='html/libxslt-xsltutils.html#XSLT_TRACE_TEMPLATES'/>
+    <reference name='XSLT_TRACE_VALUE_OF' href='html/libxslt-xsltutils.html#XSLT_TRACE_VALUE_OF'/>
+    <reference name='XSLT_TRACE_VARIABLES' href='html/libxslt-xsltutils.html#XSLT_TRACE_VARIABLES'/>
+    <reference name='XSLT_XALAN_NAMESPACE' href='html/libxslt-extra.html#XSLT_XALAN_NAMESPACE'/>
+    <reference name='XSLT_XT_NAMESPACE' href='html/libxslt-extra.html#XSLT_XT_NAMESPACE'/>
+    <reference name='_REENTRANT' href='html/libxslt-xsltexports.html#_REENTRANT'/>
+    <reference name='_xsltDecimalFormat' href='html/libxslt-xsltInternals.html#_xsltDecimalFormat'/>
+    <reference name='_xsltDocument' href='html/libxslt-xsltInternals.html#_xsltDocument'/>
+    <reference name='_xsltElemPreComp' href='html/libxslt-xsltInternals.html#_xsltElemPreComp'/>
+    <reference name='_xsltFormatNumberInfo' href='html/libxslt-numbersInternals.html#_xsltFormatNumberInfo'/>
+    <reference name='_xsltNumberData' href='html/libxslt-numbersInternals.html#_xsltNumberData'/>
+    <reference name='_xsltRuntimeExtra' href='html/libxslt-xsltInternals.html#_xsltRuntimeExtra'/>
+    <reference name='_xsltStackElem' href='html/libxslt-xsltInternals.html#_xsltStackElem'/>
+    <reference name='_xsltStylePreComp' href='html/libxslt-xsltInternals.html#_xsltStylePreComp'/>
+    <reference name='_xsltStylesheet' href='html/libxslt-xsltInternals.html#_xsltStylesheet'/>
+    <reference name='_xsltTemplate' href='html/libxslt-xsltInternals.html#_xsltTemplate'/>
+    <reference name='_xsltTransformContext' href='html/libxslt-xsltInternals.html#_xsltTransformContext'/>
+    <reference name='xslAddCall' href='html/libxslt-xsltutils.html#xslAddCall'/>
+    <reference name='xslDebugStatus' href='html/libxslt-xsltutils.html#xslDebugStatus'/>
+    <reference name='xslDropCall' href='html/libxslt-xsltutils.html#xslDropCall'/>
+    <reference name='xslHandleDebugger' href='html/libxslt-transform.html#xslHandleDebugger'/>
+    <reference name='xsltAddCallCallback' href='html/libxslt-xsltutils.html#xsltAddCallCallback'/>
+    <reference name='xsltAddKey' href='html/libxslt-keys.html#xsltAddKey'/>
+    <reference name='xsltAddStackElemList' href='html/libxslt-variables.html#xsltAddStackElemList'/>
+    <reference name='xsltAddTemplate' href='html/libxslt-pattern.html#xsltAddTemplate'/>
+    <reference name='xsltAllocateExtra' href='html/libxslt-xsltInternals.html#xsltAllocateExtra'/>
+    <reference name='xsltAllocateExtraCtxt' href='html/libxslt-xsltInternals.html#xsltAllocateExtraCtxt'/>
+    <reference name='xsltApplyAttributeSet' href='html/libxslt-attributes.html#xsltApplyAttributeSet'/>
+    <reference name='xsltApplyImports' href='html/libxslt-transform.html#xsltApplyImports'/>
+    <reference name='xsltApplyOneTemplate' href='html/libxslt-transform.html#xsltApplyOneTemplate'/>
+    <reference name='xsltApplyStripSpaces' href='html/libxslt-transform.html#xsltApplyStripSpaces'/>
+    <reference name='xsltApplyStylesheet' href='html/libxslt-transform.html#xsltApplyStylesheet'/>
+    <reference name='xsltApplyStylesheetUser' href='html/libxslt-transform.html#xsltApplyStylesheetUser'/>
+    <reference name='xsltApplyTemplates' href='html/libxslt-transform.html#xsltApplyTemplates'/>
+    <reference name='xsltAttrListTemplateProcess' href='html/libxslt-templates.html#xsltAttrListTemplateProcess'/>
+    <reference name='xsltAttrTemplateProcess' href='html/libxslt-templates.html#xsltAttrTemplateProcess'/>
+    <reference name='xsltAttrTemplateValueProcess' href='html/libxslt-templates.html#xsltAttrTemplateValueProcess'/>
+    <reference name='xsltAttrTemplateValueProcessNode' href='html/libxslt-templates.html#xsltAttrTemplateValueProcessNode'/>
+    <reference name='xsltAttribute' href='html/libxslt-transform.html#xsltAttribute'/>
+    <reference name='xsltCalibrateAdjust' href='html/libxslt-xsltutils.html#xsltCalibrateAdjust'/>
+    <reference name='xsltCallTemplate' href='html/libxslt-transform.html#xsltCallTemplate'/>
+    <reference name='xsltCheckExtPrefix' href='html/libxslt-extensions.html#xsltCheckExtPrefix'/>
+    <reference name='xsltCheckRead' href='html/libxslt-security.html#xsltCheckRead'/>
+    <reference name='xsltCheckWrite' href='html/libxslt-security.html#xsltCheckWrite'/>
+    <reference name='xsltChoose' href='html/libxslt-transform.html#xsltChoose'/>
+    <reference name='xsltCleanupGlobals' href='html/libxslt-xslt.html#xsltCleanupGlobals'/>
+    <reference name='xsltCleanupTemplates' href='html/libxslt-pattern.html#xsltCleanupTemplates'/>
+    <reference name='xsltComment' href='html/libxslt-transform.html#xsltComment'/>
+    <reference name='xsltCompMatch' href='html/libxslt-pattern.html#xsltCompMatch'/>
+    <reference name='xsltCompMatchPtr' href='html/libxslt-pattern.html#xsltCompMatchPtr'/>
+    <reference name='xsltCompileAttr' href='html/libxslt-xsltInternals.html#xsltCompileAttr'/>
+    <reference name='xsltCompilePattern' href='html/libxslt-pattern.html#xsltCompilePattern'/>
+    <reference name='xsltComputeSortResult' href='html/libxslt-xsltutils.html#xsltComputeSortResult'/>
+    <reference name='xsltCopy' href='html/libxslt-transform.html#xsltCopy'/>
+    <reference name='xsltCopyNamespace' href='html/libxslt-namespaces.html#xsltCopyNamespace'/>
+    <reference name='xsltCopyNamespaceList' href='html/libxslt-namespaces.html#xsltCopyNamespaceList'/>
+    <reference name='xsltCopyOf' href='html/libxslt-transform.html#xsltCopyOf'/>
+    <reference name='xsltCopyTextString' href='html/libxslt-transform.html#xsltCopyTextString'/>
+    <reference name='xsltCreateRVT' href='html/libxslt-xsltInternals.html#xsltCreateRVT'/>
+    <reference name='xsltDebug' href='html/libxslt-extra.html#xsltDebug'/>
+    <reference name='xsltDebugDumpExtensions' href='html/libxslt-extensions.html#xsltDebugDumpExtensions'/>
+    <reference name='xsltDebugGetDefaultTrace' href='html/libxslt-xsltutils.html#xsltDebugGetDefaultTrace'/>
+    <reference name='xsltDebugSetDefaultTrace' href='html/libxslt-xsltutils.html#xsltDebugSetDefaultTrace'/>
+    <reference name='xsltDebugStatusCodes' href='html/libxslt-xsltutils.html#xsltDebugStatusCodes'/>
+    <reference name='xsltDebugTraceCodes' href='html/libxslt-xsltutils.html#xsltDebugTraceCodes'/>
+    <reference name='xsltDecimalFormat' href='html/libxslt-xsltInternals.html#xsltDecimalFormat'/>
+    <reference name='xsltDecimalFormatGetByName' href='html/libxslt-xsltInternals.html#xsltDecimalFormatGetByName'/>
+    <reference name='xsltDecimalFormatPtr' href='html/libxslt-xsltInternals.html#xsltDecimalFormatPtr'/>
+    <reference name='xsltDefaultSortFunction' href='html/libxslt-xsltutils.html#xsltDefaultSortFunction'/>
+    <reference name='xsltDoSortFunction' href='html/libxslt-xsltutils.html#xsltDoSortFunction'/>
+    <reference name='xsltDocDefaultLoader' href='html/libxslt-documents.html#xsltDocDefaultLoader'/>
+    <reference name='xsltDocLoaderFunc' href='html/libxslt-documents.html#xsltDocLoaderFunc'/>
+    <reference name='xsltDocument' href='html/libxslt-xsltInternals.html#xsltDocument'/>
+    <reference name='xsltDocumentComp' href='html/libxslt-preproc.html#xsltDocumentComp'/>
+    <reference name='xsltDocumentElem' href='html/libxslt-transform.html#xsltDocumentElem'/>
+    <reference name='xsltDocumentFunction' href='html/libxslt-functions.html#xsltDocumentFunction'/>
+    <reference name='xsltDocumentPtr' href='html/libxslt-xsltInternals.html#xsltDocumentPtr'/>
+    <reference name='xsltDocumentSortFunction' href='html/libxslt-xsltutils.html#xsltDocumentSortFunction'/>
+    <reference name='xsltDropCallCallback' href='html/libxslt-xsltutils.html#xsltDropCallCallback'/>
+    <reference name='xsltElemPreComp' href='html/libxslt-xsltInternals.html#xsltElemPreComp'/>
+    <reference name='xsltElemPreCompDeallocator' href='html/libxslt-xsltInternals.html#xsltElemPreCompDeallocator'/>
+    <reference name='xsltElemPreCompPtr' href='html/libxslt-xsltInternals.html#xsltElemPreCompPtr'/>
+    <reference name='xsltElement' href='html/libxslt-transform.html#xsltElement'/>
+    <reference name='xsltElementAvailableFunction' href='html/libxslt-functions.html#xsltElementAvailableFunction'/>
+    <reference name='xsltEngineVersion' href='html/libxslt-xslt.html#xsltEngineVersion'/>
+    <reference name='xsltEvalAVT' href='html/libxslt-xsltInternals.html#xsltEvalAVT'/>
+    <reference name='xsltEvalAttrValueTemplate' href='html/libxslt-templates.html#xsltEvalAttrValueTemplate'/>
+    <reference name='xsltEvalGlobalVariables' href='html/libxslt-variables.html#xsltEvalGlobalVariables'/>
+    <reference name='xsltEvalOneUserParam' href='html/libxslt-variables.html#xsltEvalOneUserParam'/>
+    <reference name='xsltEvalStaticAttrValueTemplate' href='html/libxslt-templates.html#xsltEvalStaticAttrValueTemplate'/>
+    <reference name='xsltEvalTemplateString' href='html/libxslt-templates.html#xsltEvalTemplateString'/>
+    <reference name='xsltEvalUserParams' href='html/libxslt-variables.html#xsltEvalUserParams'/>
+    <reference name='xsltEvalXPathPredicate' href='html/libxslt-templates.html#xsltEvalXPathPredicate'/>
+    <reference name='xsltEvalXPathString' href='html/libxslt-templates.html#xsltEvalXPathString'/>
+    <reference name='xsltEvalXPathStringNs' href='html/libxslt-templates.html#xsltEvalXPathStringNs'/>
+    <reference name='xsltExtElementLookup' href='html/libxslt-extensions.html#xsltExtElementLookup'/>
+    <reference name='xsltExtFunctionLookup' href='html/libxslt-extensions.html#xsltExtFunctionLookup'/>
+    <reference name='xsltExtInitFunction' href='html/libxslt-extensions.html#xsltExtInitFunction'/>
+    <reference name='xsltExtMarker' href='html/libxslt-preproc.html#xsltExtMarker'/>
+    <reference name='xsltExtModuleElementLookup' href='html/libxslt-extensions.html#xsltExtModuleElementLookup'/>
+    <reference name='xsltExtModuleElementPreComputeLookup' href='html/libxslt-extensions.html#xsltExtModuleElementPreComputeLookup'/>
+    <reference name='xsltExtModuleFunctionLookup' href='html/libxslt-extensions.html#xsltExtModuleFunctionLookup'/>
+    <reference name='xsltExtModuleTopLevelLookup' href='html/libxslt-extensions.html#xsltExtModuleTopLevelLookup'/>
+    <reference name='xsltExtShutdownFunction' href='html/libxslt-extensions.html#xsltExtShutdownFunction'/>
+    <reference name='xsltFindDocument' href='html/libxslt-documents.html#xsltFindDocument'/>
+    <reference name='xsltFindElemSpaceHandling' href='html/libxslt-imports.html#xsltFindElemSpaceHandling'/>
+    <reference name='xsltFindTemplate' href='html/libxslt-imports.html#xsltFindTemplate'/>
+    <reference name='xsltForEach' href='html/libxslt-transform.html#xsltForEach'/>
+    <reference name='xsltFormatNumberConversion' href='html/libxslt-xsltInternals.html#xsltFormatNumberConversion'/>
+    <reference name='xsltFormatNumberFunction' href='html/libxslt-functions.html#xsltFormatNumberFunction'/>
+    <reference name='xsltFormatNumberInfo' href='html/libxslt-numbersInternals.html#xsltFormatNumberInfo'/>
+    <reference name='xsltFormatNumberInfoPtr' href='html/libxslt-numbersInternals.html#xsltFormatNumberInfoPtr'/>
+    <reference name='xsltFreeAVTList' href='html/libxslt-xsltInternals.html#xsltFreeAVTList'/>
+    <reference name='xsltFreeAttributeSetsHashes' href='html/libxslt-attributes.html#xsltFreeAttributeSetsHashes'/>
+    <reference name='xsltFreeCompMatchList' href='html/libxslt-pattern.html#xsltFreeCompMatchList'/>
+    <reference name='xsltFreeCtxtExts' href='html/libxslt-extensions.html#xsltFreeCtxtExts'/>
+    <reference name='xsltFreeDocumentKeys' href='html/libxslt-keys.html#xsltFreeDocumentKeys'/>
+    <reference name='xsltFreeDocuments' href='html/libxslt-documents.html#xsltFreeDocuments'/>
+    <reference name='xsltFreeExts' href='html/libxslt-extensions.html#xsltFreeExts'/>
+    <reference name='xsltFreeGlobalVariables' href='html/libxslt-variables.html#xsltFreeGlobalVariables'/>
+    <reference name='xsltFreeKeys' href='html/libxslt-keys.html#xsltFreeKeys'/>
+    <reference name='xsltFreeNamespaceAliasHashes' href='html/libxslt-namespaces.html#xsltFreeNamespaceAliasHashes'/>
+    <reference name='xsltFreeRVTs' href='html/libxslt-xsltInternals.html#xsltFreeRVTs'/>
+    <reference name='xsltFreeSecurityPrefs' href='html/libxslt-security.html#xsltFreeSecurityPrefs'/>
+    <reference name='xsltFreeStackElemList' href='html/libxslt-xsltInternals.html#xsltFreeStackElemList'/>
+    <reference name='xsltFreeStyleDocuments' href='html/libxslt-documents.html#xsltFreeStyleDocuments'/>
+    <reference name='xsltFreeStylePreComps' href='html/libxslt-preproc.html#xsltFreeStylePreComps'/>
+    <reference name='xsltFreeStylesheet' href='html/libxslt-xsltInternals.html#xsltFreeStylesheet'/>
+    <reference name='xsltFreeTemplateHashes' href='html/libxslt-pattern.html#xsltFreeTemplateHashes'/>
+    <reference name='xsltFreeTransformContext' href='html/libxslt-transform.html#xsltFreeTransformContext'/>
+    <reference name='xsltFunctionAvailableFunction' href='html/libxslt-functions.html#xsltFunctionAvailableFunction'/>
+    <reference name='xsltFunctionNodeSet' href='html/libxslt-extra.html#xsltFunctionNodeSet'/>
+    <reference name='xsltGenerateIdFunction' href='html/libxslt-functions.html#xsltGenerateIdFunction'/>
+    <reference name='xsltGenericDebug' href='html/libxslt-xsltutils.html#xsltGenericDebug'/>
+    <reference name='xsltGenericDebugContext' href='html/libxslt-xsltutils.html#xsltGenericDebugContext'/>
+    <reference name='xsltGenericError' href='html/libxslt-xsltutils.html#xsltGenericError'/>
+    <reference name='xsltGenericErrorContext' href='html/libxslt-xsltutils.html#xsltGenericErrorContext'/>
+    <reference name='xsltGetCNsProp' href='html/libxslt-xsltutils.html#xsltGetCNsProp'/>
+    <reference name='xsltGetDebuggerStatus' href='html/libxslt-xsltutils.html#xsltGetDebuggerStatus'/>
+    <reference name='xsltGetDefaultSecurityPrefs' href='html/libxslt-security.html#xsltGetDefaultSecurityPrefs'/>
+    <reference name='xsltGetExtData' href='html/libxslt-extensions.html#xsltGetExtData'/>
+    <reference name='xsltGetExtInfo' href='html/libxslt-extensions.html#xsltGetExtInfo'/>
+    <reference name='xsltGetKey' href='html/libxslt-keys.html#xsltGetKey'/>
+    <reference name='xsltGetNamespace' href='html/libxslt-namespaces.html#xsltGetNamespace'/>
+    <reference name='xsltGetNsProp' href='html/libxslt-xsltutils.html#xsltGetNsProp'/>
+    <reference name='xsltGetPlainNamespace' href='html/libxslt-namespaces.html#xsltGetPlainNamespace'/>
+    <reference name='xsltGetProfileInformation' href='html/libxslt-xsltutils.html#xsltGetProfileInformation'/>
+    <reference name='xsltGetQNameURI' href='html/libxslt-xsltutils.html#xsltGetQNameURI'/>
+    <reference name='xsltGetQNameURI2' href='html/libxslt-xsltutils.html#xsltGetQNameURI2'/>
+    <reference name='xsltGetSecurityPrefs' href='html/libxslt-security.html#xsltGetSecurityPrefs'/>
+    <reference name='xsltGetSpecialNamespace' href='html/libxslt-namespaces.html#xsltGetSpecialNamespace'/>
+    <reference name='xsltGetTemplate' href='html/libxslt-pattern.html#xsltGetTemplate'/>
+    <reference name='xsltGetUTF8Char' href='html/libxslt-xsltutils.html#xsltGetUTF8Char'/>
+    <reference name='xsltGetXIncludeDefault' href='html/libxslt-transform.html#xsltGetXIncludeDefault'/>
+    <reference name='xsltHandleDebuggerCallback' href='html/libxslt-xsltutils.html#xsltHandleDebuggerCallback'/>
+    <reference name='xsltIf' href='html/libxslt-transform.html#xsltIf'/>
+    <reference name='xsltInitCtxtExts' href='html/libxslt-extensions.html#xsltInitCtxtExts'/>
+    <reference name='xsltInitCtxtKeys' href='html/libxslt-keys.html#xsltInitCtxtKeys'/>
+    <reference name='xsltInitElemPreComp' href='html/libxslt-extensions.html#xsltInitElemPreComp'/>
+    <reference name='xsltIsBlank' href='html/libxslt-xsltInternals.html#xsltIsBlank'/>
+    <reference name='xsltKeyFunction' href='html/libxslt-functions.html#xsltKeyFunction'/>
+    <reference name='xsltLibxmlVersion' href='html/libxslt-xslt.html#xsltLibxmlVersion'/>
+    <reference name='xsltLibxsltVersion' href='html/libxslt-xslt.html#xsltLibxsltVersion'/>
+    <reference name='xsltLoadDocument' href='html/libxslt-documents.html#xsltLoadDocument'/>
+    <reference name='xsltLoadStyleDocument' href='html/libxslt-documents.html#xsltLoadStyleDocument'/>
+    <reference name='xsltLoadStylesheetPI' href='html/libxslt-xsltInternals.html#xsltLoadStylesheetPI'/>
+    <reference name='xsltLoadType' href='html/libxslt-documents.html#xsltLoadType'/>
+    <reference name='xsltMatchPattern' href='html/libxslt-pattern.html#xsltMatchPattern'/>
+    <reference name='xsltMaxDepth' href='html/libxslt-xslt.html#xsltMaxDepth'/>
+    <reference name='xsltMessage' href='html/libxslt-xsltutils.html#xsltMessage'/>
+    <reference name='xsltNamespaceAlias' href='html/libxslt-namespaces.html#xsltNamespaceAlias'/>
+    <reference name='xsltNeedElemSpaceHandling' href='html/libxslt-imports.html#xsltNeedElemSpaceHandling'/>
+    <reference name='xsltNewDocument' href='html/libxslt-documents.html#xsltNewDocument'/>
+    <reference name='xsltNewElemPreComp' href='html/libxslt-extensions.html#xsltNewElemPreComp'/>
+    <reference name='xsltNewSecurityPrefs' href='html/libxslt-security.html#xsltNewSecurityPrefs'/>
+    <reference name='xsltNewStyleDocument' href='html/libxslt-documents.html#xsltNewStyleDocument'/>
+    <reference name='xsltNewStylesheet' href='html/libxslt-xsltInternals.html#xsltNewStylesheet'/>
+    <reference name='xsltNewTransformContext' href='html/libxslt-transform.html#xsltNewTransformContext'/>
+    <reference name='xsltNextImport' href='html/libxslt-imports.html#xsltNextImport'/>
+    <reference name='xsltNormalizeCompSteps' href='html/libxslt-pattern.html#xsltNormalizeCompSteps'/>
+    <reference name='xsltNumber' href='html/libxslt-transform.html#xsltNumber'/>
+    <reference name='xsltNumberData' href='html/libxslt-numbersInternals.html#xsltNumberData'/>
+    <reference name='xsltNumberDataPtr' href='html/libxslt-numbersInternals.html#xsltNumberDataPtr'/>
+    <reference name='xsltNumberFormat' href='html/libxslt-xsltInternals.html#xsltNumberFormat'/>
+    <reference name='xsltOutputType' href='html/libxslt-xsltInternals.html#xsltOutputType'/>
+    <reference name='xsltParseGlobalParam' href='html/libxslt-variables.html#xsltParseGlobalParam'/>
+    <reference name='xsltParseGlobalVariable' href='html/libxslt-variables.html#xsltParseGlobalVariable'/>
+    <reference name='xsltParseStylesheetAttributeSet' href='html/libxslt-attributes.html#xsltParseStylesheetAttributeSet'/>
+    <reference name='xsltParseStylesheetCallerParam' href='html/libxslt-variables.html#xsltParseStylesheetCallerParam'/>
+    <reference name='xsltParseStylesheetDoc' href='html/libxslt-xsltInternals.html#xsltParseStylesheetDoc'/>
+    <reference name='xsltParseStylesheetFile' href='html/libxslt-xsltInternals.html#xsltParseStylesheetFile'/>
+    <reference name='xsltParseStylesheetImport' href='html/libxslt-imports.html#xsltParseStylesheetImport'/>
+    <reference name='xsltParseStylesheetImportedDoc' href='html/libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc'/>
+    <reference name='xsltParseStylesheetInclude' href='html/libxslt-imports.html#xsltParseStylesheetInclude'/>
+    <reference name='xsltParseStylesheetOutput' href='html/libxslt-xsltInternals.html#xsltParseStylesheetOutput'/>
+    <reference name='xsltParseStylesheetParam' href='html/libxslt-variables.html#xsltParseStylesheetParam'/>
+    <reference name='xsltParseStylesheetProcess' href='html/libxslt-xsltInternals.html#xsltParseStylesheetProcess'/>
+    <reference name='xsltParseStylesheetVariable' href='html/libxslt-variables.html#xsltParseStylesheetVariable'/>
+    <reference name='xsltParseTemplateContent' href='html/libxslt-xsltInternals.html#xsltParseTemplateContent'/>
+    <reference name='xsltPreComputeExtModuleElement' href='html/libxslt-extensions.html#xsltPreComputeExtModuleElement'/>
+    <reference name='xsltPreComputeFunction' href='html/libxslt-extensions.html#xsltPreComputeFunction'/>
+    <reference name='xsltPrintErrorContext' href='html/libxslt-xsltutils.html#xsltPrintErrorContext'/>
+    <reference name='xsltProcessingInstruction' href='html/libxslt-transform.html#xsltProcessingInstruction'/>
+    <reference name='xsltProfileStylesheet' href='html/libxslt-transform.html#xsltProfileStylesheet'/>
+    <reference name='xsltQuoteOneUserParam' href='html/libxslt-variables.html#xsltQuoteOneUserParam'/>
+    <reference name='xsltQuoteUserParams' href='html/libxslt-variables.html#xsltQuoteUserParams'/>
+    <reference name='xsltRegisterAllElement' href='html/libxslt-transform.html#xsltRegisterAllElement'/>
+    <reference name='xsltRegisterAllExtras' href='html/libxslt-extra.html#xsltRegisterAllExtras'/>
+    <reference name='xsltRegisterAllFunctions' href='html/libxslt-functions.html#xsltRegisterAllFunctions'/>
+    <reference name='xsltRegisterExtElement' href='html/libxslt-extensions.html#xsltRegisterExtElement'/>
+    <reference name='xsltRegisterExtFunction' href='html/libxslt-extensions.html#xsltRegisterExtFunction'/>
+    <reference name='xsltRegisterExtModule' href='html/libxslt-extensions.html#xsltRegisterExtModule'/>
+    <reference name='xsltRegisterExtModuleElement' href='html/libxslt-extensions.html#xsltRegisterExtModuleElement'/>
+    <reference name='xsltRegisterExtModuleFull' href='html/libxslt-extensions.html#xsltRegisterExtModuleFull'/>
+    <reference name='xsltRegisterExtModuleFunction' href='html/libxslt-extensions.html#xsltRegisterExtModuleFunction'/>
+    <reference name='xsltRegisterExtModuleTopLevel' href='html/libxslt-extensions.html#xsltRegisterExtModuleTopLevel'/>
+    <reference name='xsltRegisterExtPrefix' href='html/libxslt-extensions.html#xsltRegisterExtPrefix'/>
+    <reference name='xsltRegisterExtras' href='html/libxslt-extra.html#xsltRegisterExtras'/>
+    <reference name='xsltRegisterPersistRVT' href='html/libxslt-xsltInternals.html#xsltRegisterPersistRVT'/>
+    <reference name='xsltRegisterTestModule' href='html/libxslt-extensions.html#xsltRegisterTestModule'/>
+    <reference name='xsltRegisterTmpRVT' href='html/libxslt-xsltInternals.html#xsltRegisterTmpRVT'/>
+    <reference name='xsltResolveStylesheetAttributeSet' href='html/libxslt-attributes.html#xsltResolveStylesheetAttributeSet'/>
+    <reference name='xsltRunStylesheet' href='html/libxslt-transform.html#xsltRunStylesheet'/>
+    <reference name='xsltRunStylesheetUser' href='html/libxslt-transform.html#xsltRunStylesheetUser'/>
+    <reference name='xsltRuntimeExtra' href='html/libxslt-xsltInternals.html#xsltRuntimeExtra'/>
+    <reference name='xsltRuntimeExtraPtr' href='html/libxslt-xsltInternals.html#xsltRuntimeExtraPtr'/>
+    <reference name='xsltSaveProfiling' href='html/libxslt-xsltutils.html#xsltSaveProfiling'/>
+    <reference name='xsltSaveResultTo' href='html/libxslt-xsltutils.html#xsltSaveResultTo'/>
+    <reference name='xsltSaveResultToFd' href='html/libxslt-xsltutils.html#xsltSaveResultToFd'/>
+    <reference name='xsltSaveResultToFile' href='html/libxslt-xsltutils.html#xsltSaveResultToFile'/>
+    <reference name='xsltSaveResultToFilename' href='html/libxslt-xsltutils.html#xsltSaveResultToFilename'/>
+    <reference name='xsltSaveResultToString' href='html/libxslt-xsltutils.html#xsltSaveResultToString'/>
+    <reference name='xsltSecurityAllow' href='html/libxslt-security.html#xsltSecurityAllow'/>
+    <reference name='xsltSecurityCheck' href='html/libxslt-security.html#xsltSecurityCheck'/>
+    <reference name='xsltSecurityForbid' href='html/libxslt-security.html#xsltSecurityForbid'/>
+    <reference name='xsltSecurityOption' href='html/libxslt-security.html#xsltSecurityOption'/>
+    <reference name='xsltSecurityPrefs' href='html/libxslt-security.html#xsltSecurityPrefs'/>
+    <reference name='xsltSecurityPrefsPtr' href='html/libxslt-security.html#xsltSecurityPrefsPtr'/>
+    <reference name='xsltSetCtxtParseOptions' href='html/libxslt-xsltutils.html#xsltSetCtxtParseOptions'/>
+    <reference name='xsltSetCtxtSecurityPrefs' href='html/libxslt-security.html#xsltSetCtxtSecurityPrefs'/>
+    <reference name='xsltSetCtxtSortFunc' href='html/libxslt-xsltutils.html#xsltSetCtxtSortFunc'/>
+    <reference name='xsltSetDebuggerCallbacks' href='html/libxslt-xsltutils.html#xsltSetDebuggerCallbacks'/>
+    <reference name='xsltSetDebuggerStatus' href='html/libxslt-xsltutils.html#xsltSetDebuggerStatus'/>
+    <reference name='xsltSetDefaultSecurityPrefs' href='html/libxslt-security.html#xsltSetDefaultSecurityPrefs'/>
+    <reference name='xsltSetGenericDebugFunc' href='html/libxslt-xsltutils.html#xsltSetGenericDebugFunc'/>
+    <reference name='xsltSetGenericErrorFunc' href='html/libxslt-xsltutils.html#xsltSetGenericErrorFunc'/>
+    <reference name='xsltSetLoaderFunc' href='html/libxslt-documents.html#xsltSetLoaderFunc'/>
+    <reference name='xsltSetSecurityPrefs' href='html/libxslt-security.html#xsltSetSecurityPrefs'/>
+    <reference name='xsltSetSortFunc' href='html/libxslt-xsltutils.html#xsltSetSortFunc'/>
+    <reference name='xsltSetTransformErrorFunc' href='html/libxslt-xsltutils.html#xsltSetTransformErrorFunc'/>
+    <reference name='xsltSetXIncludeDefault' href='html/libxslt-transform.html#xsltSetXIncludeDefault'/>
+    <reference name='xsltShutdownCtxtExts' href='html/libxslt-extensions.html#xsltShutdownCtxtExts'/>
+    <reference name='xsltShutdownExts' href='html/libxslt-extensions.html#xsltShutdownExts'/>
+    <reference name='xsltSort' href='html/libxslt-transform.html#xsltSort'/>
+    <reference name='xsltSortFunc' href='html/libxslt-xsltInternals.html#xsltSortFunc'/>
+    <reference name='xsltSplitQName' href='html/libxslt-xsltutils.html#xsltSplitQName'/>
+    <reference name='xsltStackElem' href='html/libxslt-xsltInternals.html#xsltStackElem'/>
+    <reference name='xsltStackElemPtr' href='html/libxslt-xsltInternals.html#xsltStackElemPtr'/>
+    <reference name='xsltStyleExtInitFunction' href='html/libxslt-extensions.html#xsltStyleExtInitFunction'/>
+    <reference name='xsltStyleExtShutdownFunction' href='html/libxslt-extensions.html#xsltStyleExtShutdownFunction'/>
+    <reference name='xsltStyleGetExtData' href='html/libxslt-extensions.html#xsltStyleGetExtData'/>
+    <reference name='xsltStylePreComp' href='html/libxslt-xsltInternals.html#xsltStylePreComp'/>
+    <reference name='xsltStylePreCompPtr' href='html/libxslt-xsltInternals.html#xsltStylePreCompPtr'/>
+    <reference name='xsltStylePreCompute' href='html/libxslt-preproc.html#xsltStylePreCompute'/>
+    <reference name='xsltStyleType' href='html/libxslt-xsltInternals.html#xsltStyleType'/>
+    <reference name='xsltStylesheet' href='html/libxslt-xsltInternals.html#xsltStylesheet'/>
+    <reference name='xsltStylesheetPtr' href='html/libxslt-xsltInternals.html#xsltStylesheetPtr'/>
+    <reference name='xsltSystemPropertyFunction' href='html/libxslt-functions.html#xsltSystemPropertyFunction'/>
+    <reference name='xsltTemplate' href='html/libxslt-xsltInternals.html#xsltTemplate'/>
+    <reference name='xsltTemplateProcess' href='html/libxslt-templates.html#xsltTemplateProcess'/>
+    <reference name='xsltTemplatePtr' href='html/libxslt-xsltInternals.html#xsltTemplatePtr'/>
+    <reference name='xsltTestCompMatchList' href='html/libxslt-pattern.html#xsltTestCompMatchList'/>
+    <reference name='xsltText' href='html/libxslt-transform.html#xsltText'/>
+    <reference name='xsltTimestamp' href='html/libxslt-xsltutils.html#xsltTimestamp'/>
+    <reference name='xsltTopLevelFunction' href='html/libxslt-extensions.html#xsltTopLevelFunction'/>
+    <reference name='xsltTransformContext' href='html/libxslt-xsltInternals.html#xsltTransformContext'/>
+    <reference name='xsltTransformContextPtr' href='html/libxslt-xsltInternals.html#xsltTransformContextPtr'/>
+    <reference name='xsltTransformError' href='html/libxslt-xsltutils.html#xsltTransformError'/>
+    <reference name='xsltTransformFunction' href='html/libxslt-xsltInternals.html#xsltTransformFunction'/>
+    <reference name='xsltTransformState' href='html/libxslt-xsltInternals.html#xsltTransformState'/>
+    <reference name='xsltUnparsedEntityURIFunction' href='html/libxslt-functions.html#xsltUnparsedEntityURIFunction'/>
+    <reference name='xsltUnregisterExtModule' href='html/libxslt-extensions.html#xsltUnregisterExtModule'/>
+    <reference name='xsltUnregisterExtModuleElement' href='html/libxslt-extensions.html#xsltUnregisterExtModuleElement'/>
+    <reference name='xsltUnregisterExtModuleFunction' href='html/libxslt-extensions.html#xsltUnregisterExtModuleFunction'/>
+    <reference name='xsltUnregisterExtModuleTopLevel' href='html/libxslt-extensions.html#xsltUnregisterExtModuleTopLevel'/>
+    <reference name='xsltValueOf' href='html/libxslt-transform.html#xsltValueOf'/>
+    <reference name='xsltVariableLookup' href='html/libxslt-variables.html#xsltVariableLookup'/>
+    <reference name='xsltXPathCompile' href='html/libxslt-xsltutils.html#xsltXPathCompile'/>
+    <reference name='xsltXPathFunctionLookup' href='html/libxslt-functions.html#xsltXPathFunctionLookup'/>
+    <reference name='xsltXPathGetTransformContext' href='html/libxslt-extensions.html#xsltXPathGetTransformContext'/>
+    <reference name='xsltXPathVariableLookup' href='html/libxslt-variables.html#xsltXPathVariableLookup'/>
+  </references>
+  <alpha>
+    <letter name='C'>
+      <ref name='CHECK_STOPPED'/>
+      <ref name='CHECK_STOPPED0'/>
+      <ref name='CHECK_STOPPEDE'/>
+    </letter>
+    <letter name='I'>
+      <ref name='IS_XSLT_ELEM'/>
+      <ref name='IS_XSLT_NAME'/>
+      <ref name='IS_XSLT_REAL_NODE'/>
+    </letter>
+    <letter name='L'>
+      <ref name='LIBXSLT_PUBLIC'/>
+    </letter>
+    <letter name='N'>
+      <ref name='NODE_IS_KEYED'/>
+    </letter>
+    <letter name='U'>
+      <ref name='UNDEFINED_DEFAULT_NS'/>
+    </letter>
+    <letter name='X'>
+      <ref name='XML_CAST_FPTR'/>
+      <ref name='XSLTCALL'/>
+      <ref name='XSLTPUBFUN'/>
+      <ref name='XSLTPUBVAR'/>
+      <ref name='XSLT_DEBUG_CONT'/>
+      <ref name='XSLT_DEBUG_INIT'/>
+      <ref name='XSLT_DEBUG_NEXT'/>
+      <ref name='XSLT_DEBUG_NONE'/>
+      <ref name='XSLT_DEBUG_QUIT'/>
+      <ref name='XSLT_DEBUG_RUN'/>
+      <ref name='XSLT_DEBUG_RUN_RESTART'/>
+      <ref name='XSLT_DEBUG_STEP'/>
+      <ref name='XSLT_DEBUG_STEPOUT'/>
+      <ref name='XSLT_DEBUG_STOP'/>
+      <ref name='XSLT_DEFAULT_URL'/>
+      <ref name='XSLT_DEFAULT_VENDOR'/>
+      <ref name='XSLT_DEFAULT_VERSION'/>
+      <ref name='XSLT_FUNC_APPLYIMPORTS'/>
+      <ref name='XSLT_FUNC_APPLYTEMPLATES'/>
+      <ref name='XSLT_FUNC_ATTRIBUTE'/>
+      <ref name='XSLT_FUNC_CALLTEMPLATE'/>
+      <ref name='XSLT_FUNC_CHOOSE'/>
+      <ref name='XSLT_FUNC_COMMENT'/>
+      <ref name='XSLT_FUNC_COPY'/>
+      <ref name='XSLT_FUNC_COPYOF'/>
+      <ref name='XSLT_FUNC_DOCUMENT'/>
+      <ref name='XSLT_FUNC_ELEMENT'/>
+      <ref name='XSLT_FUNC_EXTENSION'/>
+      <ref name='XSLT_FUNC_FOREACH'/>
+      <ref name='XSLT_FUNC_IF'/>
+      <ref name='XSLT_FUNC_NUMBER'/>
+      <ref name='XSLT_FUNC_PARAM'/>
+      <ref name='XSLT_FUNC_PI'/>
+      <ref name='XSLT_FUNC_SORT'/>
+      <ref name='XSLT_FUNC_TEXT'/>
+      <ref name='XSLT_FUNC_VALUEOF'/>
+      <ref name='XSLT_FUNC_VARIABLE'/>
+      <ref name='XSLT_FUNC_WHEN'/>
+      <ref name='XSLT_FUNC_WITHPARAM'/>
+      <ref name='XSLT_GET_IMPORT_INT'/>
+      <ref name='XSLT_GET_IMPORT_PTR'/>
+      <ref name='XSLT_LIBXSLT_NAMESPACE'/>
+      <ref name='XSLT_LOAD_DOCUMENT'/>
+      <ref name='XSLT_LOAD_START'/>
+      <ref name='XSLT_LOAD_STYLESHEET'/>
+      <ref name='XSLT_MAX_SORT'/>
+      <ref name='XSLT_NAMESPACE'/>
+      <ref name='XSLT_NORM_SAXON_NAMESPACE'/>
+      <ref name='XSLT_OUTPUT_HTML'/>
+      <ref name='XSLT_OUTPUT_TEXT'/>
+      <ref name='XSLT_OUTPUT_XML'/>
+      <ref name='XSLT_PARSE_OPTIONS'/>
+      <ref name='XSLT_PAT_NO_PRIORITY'/>
+      <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
+      <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
+      <ref name='XSLT_RUNTIME_EXTRA'/>
+      <ref name='XSLT_RUNTIME_EXTRA_FREE'/>
+      <ref name='XSLT_RUNTIME_EXTRA_LST'/>
+      <ref name='XSLT_SAXON_NAMESPACE'/>
+      <ref name='XSLT_SECPREF_CREATE_DIRECTORY'/>
+      <ref name='XSLT_SECPREF_READ_FILE'/>
+      <ref name='XSLT_SECPREF_READ_NETWORK'/>
+      <ref name='XSLT_SECPREF_WRITE_FILE'/>
+      <ref name='XSLT_SECPREF_WRITE_NETWORK'/>
+      <ref name='XSLT_STATE_ERROR'/>
+      <ref name='XSLT_STATE_OK'/>
+      <ref name='XSLT_STATE_STOPPED'/>
+      <ref name='XSLT_STRANGE'/>
+      <ref name='XSLT_TIMESTAMP_TICS_PER_SEC'/>
+      <ref name='XSLT_TODO'/>
+      <ref name='XSLT_TRACE'/>
+      <ref name='XSLT_TRACE_ALL'/>
+      <ref name='XSLT_TRACE_APPLY_TEMPLATE'/>
+      <ref name='XSLT_TRACE_APPLY_TEMPLATES'/>
+      <ref name='XSLT_TRACE_CALL_TEMPLATE'/>
+      <ref name='XSLT_TRACE_CHOOSE'/>
+      <ref name='XSLT_TRACE_COMMENT'/>
+      <ref name='XSLT_TRACE_COPY'/>
+      <ref name='XSLT_TRACE_COPY_OF'/>
+      <ref name='XSLT_TRACE_COPY_TEXT'/>
+      <ref name='XSLT_TRACE_FOR_EACH'/>
+      <ref name='XSLT_TRACE_IF'/>
+      <ref name='XSLT_TRACE_KEYS'/>
+      <ref name='XSLT_TRACE_NONE'/>
+      <ref name='XSLT_TRACE_PI'/>
+      <ref name='XSLT_TRACE_PROCESS_NODE'/>
+      <ref name='XSLT_TRACE_STRIP_SPACES'/>
+      <ref name='XSLT_TRACE_TEMPLATES'/>
+      <ref name='XSLT_TRACE_VALUE_OF'/>
+      <ref name='XSLT_TRACE_VARIABLES'/>
+      <ref name='XSLT_XALAN_NAMESPACE'/>
+      <ref name='XSLT_XT_NAMESPACE'/>
+    </letter>
+    <letter name='_'>
+      <ref name='_REENTRANT'/>
+      <ref name='_xsltDecimalFormat'/>
+      <ref name='_xsltDocument'/>
+      <ref name='_xsltElemPreComp'/>
+      <ref name='_xsltFormatNumberInfo'/>
+      <ref name='_xsltNumberData'/>
+      <ref name='_xsltRuntimeExtra'/>
+      <ref name='_xsltStackElem'/>
+      <ref name='_xsltStylePreComp'/>
+      <ref name='_xsltStylesheet'/>
+      <ref name='_xsltTemplate'/>
+      <ref name='_xsltTransformContext'/>
+    </letter>
+    <letter name='x'>
+      <ref name='xslAddCall'/>
+      <ref name='xslDebugStatus'/>
+      <ref name='xslDropCall'/>
+      <ref name='xslHandleDebugger'/>
+      <ref name='xsltAddCallCallback'/>
+      <ref name='xsltAddKey'/>
+      <ref name='xsltAddStackElemList'/>
+      <ref name='xsltAddTemplate'/>
+      <ref name='xsltAllocateExtra'/>
+      <ref name='xsltAllocateExtraCtxt'/>
+      <ref name='xsltApplyAttributeSet'/>
+      <ref name='xsltApplyImports'/>
+      <ref name='xsltApplyOneTemplate'/>
+      <ref name='xsltApplyStripSpaces'/>
+      <ref name='xsltApplyStylesheet'/>
+      <ref name='xsltApplyStylesheetUser'/>
+      <ref name='xsltApplyTemplates'/>
+      <ref name='xsltAttrListTemplateProcess'/>
+      <ref name='xsltAttrTemplateProcess'/>
+      <ref name='xsltAttrTemplateValueProcess'/>
+      <ref name='xsltAttrTemplateValueProcessNode'/>
+      <ref name='xsltAttribute'/>
+      <ref name='xsltCalibrateAdjust'/>
+      <ref name='xsltCallTemplate'/>
+      <ref name='xsltCheckExtPrefix'/>
+      <ref name='xsltCheckRead'/>
+      <ref name='xsltCheckWrite'/>
+      <ref name='xsltChoose'/>
+      <ref name='xsltCleanupGlobals'/>
+      <ref name='xsltCleanupTemplates'/>
+      <ref name='xsltComment'/>
+      <ref name='xsltCompMatch'/>
+      <ref name='xsltCompMatchPtr'/>
+      <ref name='xsltCompileAttr'/>
+      <ref name='xsltCompilePattern'/>
+      <ref name='xsltComputeSortResult'/>
+      <ref name='xsltCopy'/>
+      <ref name='xsltCopyNamespace'/>
+      <ref name='xsltCopyNamespaceList'/>
+      <ref name='xsltCopyOf'/>
+      <ref name='xsltCopyTextString'/>
+      <ref name='xsltCreateRVT'/>
+      <ref name='xsltDebug'/>
+      <ref name='xsltDebugDumpExtensions'/>
+      <ref name='xsltDebugGetDefaultTrace'/>
+      <ref name='xsltDebugSetDefaultTrace'/>
+      <ref name='xsltDebugStatusCodes'/>
+      <ref name='xsltDebugTraceCodes'/>
+      <ref name='xsltDecimalFormat'/>
+      <ref name='xsltDecimalFormatGetByName'/>
+      <ref name='xsltDecimalFormatPtr'/>
+      <ref name='xsltDefaultSortFunction'/>
+      <ref name='xsltDoSortFunction'/>
+      <ref name='xsltDocDefaultLoader'/>
+      <ref name='xsltDocLoaderFunc'/>
+      <ref name='xsltDocument'/>
+      <ref name='xsltDocumentComp'/>
+      <ref name='xsltDocumentElem'/>
+      <ref name='xsltDocumentFunction'/>
+      <ref name='xsltDocumentPtr'/>
+      <ref name='xsltDocumentSortFunction'/>
+      <ref name='xsltDropCallCallback'/>
+      <ref name='xsltElemPreComp'/>
+      <ref name='xsltElemPreCompDeallocator'/>
+      <ref name='xsltElemPreCompPtr'/>
+      <ref name='xsltElement'/>
+      <ref name='xsltElementAvailableFunction'/>
+      <ref name='xsltEngineVersion'/>
+      <ref name='xsltEvalAVT'/>
+      <ref name='xsltEvalAttrValueTemplate'/>
+      <ref name='xsltEvalGlobalVariables'/>
+      <ref name='xsltEvalOneUserParam'/>
+      <ref name='xsltEvalStaticAttrValueTemplate'/>
+      <ref name='xsltEvalTemplateString'/>
+      <ref name='xsltEvalUserParams'/>
+      <ref name='xsltEvalXPathPredicate'/>
+      <ref name='xsltEvalXPathString'/>
+      <ref name='xsltEvalXPathStringNs'/>
+      <ref name='xsltExtElementLookup'/>
+      <ref name='xsltExtFunctionLookup'/>
+      <ref name='xsltExtInitFunction'/>
+      <ref name='xsltExtMarker'/>
+      <ref name='xsltExtModuleElementLookup'/>
+      <ref name='xsltExtModuleElementPreComputeLookup'/>
+      <ref name='xsltExtModuleFunctionLookup'/>
+      <ref name='xsltExtModuleTopLevelLookup'/>
+      <ref name='xsltExtShutdownFunction'/>
+      <ref name='xsltFindDocument'/>
+      <ref name='xsltFindElemSpaceHandling'/>
+      <ref name='xsltFindTemplate'/>
+      <ref name='xsltForEach'/>
+      <ref name='xsltFormatNumberConversion'/>
+      <ref name='xsltFormatNumberFunction'/>
+      <ref name='xsltFormatNumberInfo'/>
+      <ref name='xsltFormatNumberInfoPtr'/>
+      <ref name='xsltFreeAVTList'/>
+      <ref name='xsltFreeAttributeSetsHashes'/>
+      <ref name='xsltFreeCompMatchList'/>
+      <ref name='xsltFreeCtxtExts'/>
+      <ref name='xsltFreeDocumentKeys'/>
+      <ref name='xsltFreeDocuments'/>
+      <ref name='xsltFreeExts'/>
+      <ref name='xsltFreeGlobalVariables'/>
+      <ref name='xsltFreeKeys'/>
+      <ref name='xsltFreeNamespaceAliasHashes'/>
+      <ref name='xsltFreeRVTs'/>
+      <ref name='xsltFreeSecurityPrefs'/>
+      <ref name='xsltFreeStackElemList'/>
+      <ref name='xsltFreeStyleDocuments'/>
+      <ref name='xsltFreeStylePreComps'/>
+      <ref name='xsltFreeStylesheet'/>
+      <ref name='xsltFreeTemplateHashes'/>
+      <ref name='xsltFreeTransformContext'/>
+      <ref name='xsltFunctionAvailableFunction'/>
+      <ref name='xsltFunctionNodeSet'/>
+      <ref name='xsltGenerateIdFunction'/>
+      <ref name='xsltGenericDebug'/>
+      <ref name='xsltGenericDebugContext'/>
+      <ref name='xsltGenericError'/>
+      <ref name='xsltGenericErrorContext'/>
+      <ref name='xsltGetCNsProp'/>
+      <ref name='xsltGetDebuggerStatus'/>
+      <ref name='xsltGetDefaultSecurityPrefs'/>
+      <ref name='xsltGetExtData'/>
+      <ref name='xsltGetExtInfo'/>
+      <ref name='xsltGetKey'/>
+      <ref name='xsltGetNamespace'/>
+      <ref name='xsltGetNsProp'/>
+      <ref name='xsltGetPlainNamespace'/>
+      <ref name='xsltGetProfileInformation'/>
+      <ref name='xsltGetQNameURI'/>
+      <ref name='xsltGetQNameURI2'/>
+      <ref name='xsltGetSecurityPrefs'/>
+      <ref name='xsltGetSpecialNamespace'/>
+      <ref name='xsltGetTemplate'/>
+      <ref name='xsltGetUTF8Char'/>
+      <ref name='xsltGetXIncludeDefault'/>
+      <ref name='xsltHandleDebuggerCallback'/>
+      <ref name='xsltIf'/>
+      <ref name='xsltInitCtxtExts'/>
+      <ref name='xsltInitCtxtKeys'/>
+      <ref name='xsltInitElemPreComp'/>
+      <ref name='xsltIsBlank'/>
+      <ref name='xsltKeyFunction'/>
+      <ref name='xsltLibxmlVersion'/>
+      <ref name='xsltLibxsltVersion'/>
+      <ref name='xsltLoadDocument'/>
+      <ref name='xsltLoadStyleDocument'/>
+      <ref name='xsltLoadStylesheetPI'/>
+      <ref name='xsltLoadType'/>
+      <ref name='xsltMatchPattern'/>
+      <ref name='xsltMaxDepth'/>
+      <ref name='xsltMessage'/>
+      <ref name='xsltNamespaceAlias'/>
+      <ref name='xsltNeedElemSpaceHandling'/>
+      <ref name='xsltNewDocument'/>
+      <ref name='xsltNewElemPreComp'/>
+      <ref name='xsltNewSecurityPrefs'/>
+      <ref name='xsltNewStyleDocument'/>
+      <ref name='xsltNewStylesheet'/>
+      <ref name='xsltNewTransformContext'/>
+      <ref name='xsltNextImport'/>
+      <ref name='xsltNormalizeCompSteps'/>
+      <ref name='xsltNumber'/>
+      <ref name='xsltNumberData'/>
+      <ref name='xsltNumberDataPtr'/>
+      <ref name='xsltNumberFormat'/>
+      <ref name='xsltOutputType'/>
+      <ref name='xsltParseGlobalParam'/>
+      <ref name='xsltParseGlobalVariable'/>
+      <ref name='xsltParseStylesheetAttributeSet'/>
+      <ref name='xsltParseStylesheetCallerParam'/>
+      <ref name='xsltParseStylesheetDoc'/>
+      <ref name='xsltParseStylesheetFile'/>
+      <ref name='xsltParseStylesheetImport'/>
+      <ref name='xsltParseStylesheetImportedDoc'/>
+      <ref name='xsltParseStylesheetInclude'/>
+      <ref name='xsltParseStylesheetOutput'/>
+      <ref name='xsltParseStylesheetParam'/>
+      <ref name='xsltParseStylesheetProcess'/>
+      <ref name='xsltParseStylesheetVariable'/>
+      <ref name='xsltParseTemplateContent'/>
+      <ref name='xsltPreComputeExtModuleElement'/>
+      <ref name='xsltPreComputeFunction'/>
+      <ref name='xsltPrintErrorContext'/>
+      <ref name='xsltProcessingInstruction'/>
+      <ref name='xsltProfileStylesheet'/>
+      <ref name='xsltQuoteOneUserParam'/>
+      <ref name='xsltQuoteUserParams'/>
+      <ref name='xsltRegisterAllElement'/>
+      <ref name='xsltRegisterAllExtras'/>
+      <ref name='xsltRegisterAllFunctions'/>
+      <ref name='xsltRegisterExtElement'/>
+      <ref name='xsltRegisterExtFunction'/>
+      <ref name='xsltRegisterExtModule'/>
+      <ref name='xsltRegisterExtModuleElement'/>
+      <ref name='xsltRegisterExtModuleFull'/>
+      <ref name='xsltRegisterExtModuleFunction'/>
+      <ref name='xsltRegisterExtModuleTopLevel'/>
+      <ref name='xsltRegisterExtPrefix'/>
+      <ref name='xsltRegisterExtras'/>
+      <ref name='xsltRegisterPersistRVT'/>
+      <ref name='xsltRegisterTestModule'/>
+      <ref name='xsltRegisterTmpRVT'/>
+      <ref name='xsltResolveStylesheetAttributeSet'/>
+      <ref name='xsltRunStylesheet'/>
+      <ref name='xsltRunStylesheetUser'/>
+      <ref name='xsltRuntimeExtra'/>
+      <ref name='xsltRuntimeExtraPtr'/>
+      <ref name='xsltSaveProfiling'/>
+      <ref name='xsltSaveResultTo'/>
+      <ref name='xsltSaveResultToFd'/>
+      <ref name='xsltSaveResultToFile'/>
+      <ref name='xsltSaveResultToFilename'/>
+      <ref name='xsltSaveResultToString'/>
+      <ref name='xsltSecurityAllow'/>
+      <ref name='xsltSecurityCheck'/>
+      <ref name='xsltSecurityForbid'/>
+      <ref name='xsltSecurityOption'/>
+      <ref name='xsltSecurityPrefs'/>
+      <ref name='xsltSecurityPrefsPtr'/>
+      <ref name='xsltSetCtxtParseOptions'/>
+      <ref name='xsltSetCtxtSecurityPrefs'/>
+      <ref name='xsltSetCtxtSortFunc'/>
+      <ref name='xsltSetDebuggerCallbacks'/>
+      <ref name='xsltSetDebuggerStatus'/>
+      <ref name='xsltSetDefaultSecurityPrefs'/>
+      <ref name='xsltSetGenericDebugFunc'/>
+      <ref name='xsltSetGenericErrorFunc'/>
+      <ref name='xsltSetLoaderFunc'/>
+      <ref name='xsltSetSecurityPrefs'/>
+      <ref name='xsltSetSortFunc'/>
+      <ref name='xsltSetTransformErrorFunc'/>
+      <ref name='xsltSetXIncludeDefault'/>
+      <ref name='xsltShutdownCtxtExts'/>
+      <ref name='xsltShutdownExts'/>
+      <ref name='xsltSort'/>
+      <ref name='xsltSortFunc'/>
+      <ref name='xsltSplitQName'/>
+      <ref name='xsltStackElem'/>
+      <ref name='xsltStackElemPtr'/>
+      <ref name='xsltStyleExtInitFunction'/>
+      <ref name='xsltStyleExtShutdownFunction'/>
+      <ref name='xsltStyleGetExtData'/>
+      <ref name='xsltStylePreComp'/>
+      <ref name='xsltStylePreCompPtr'/>
+      <ref name='xsltStylePreCompute'/>
+      <ref name='xsltStyleType'/>
+      <ref name='xsltStylesheet'/>
+      <ref name='xsltStylesheetPtr'/>
+      <ref name='xsltSystemPropertyFunction'/>
+      <ref name='xsltTemplate'/>
+      <ref name='xsltTemplateProcess'/>
+      <ref name='xsltTemplatePtr'/>
+      <ref name='xsltTestCompMatchList'/>
+      <ref name='xsltText'/>
+      <ref name='xsltTimestamp'/>
+      <ref name='xsltTopLevelFunction'/>
+      <ref name='xsltTransformContext'/>
+      <ref name='xsltTransformContextPtr'/>
+      <ref name='xsltTransformError'/>
+      <ref name='xsltTransformFunction'/>
+      <ref name='xsltTransformState'/>
+      <ref name='xsltUnparsedEntityURIFunction'/>
+      <ref name='xsltUnregisterExtModule'/>
+      <ref name='xsltUnregisterExtModuleElement'/>
+      <ref name='xsltUnregisterExtModuleFunction'/>
+      <ref name='xsltUnregisterExtModuleTopLevel'/>
+      <ref name='xsltValueOf'/>
+      <ref name='xsltVariableLookup'/>
+      <ref name='xsltXPathCompile'/>
+      <ref name='xsltXPathFunctionLookup'/>
+      <ref name='xsltXPathGetTransformContext'/>
+      <ref name='xsltXPathVariableLookup'/>
+    </letter>
+  </alpha>
+  <constructors>
+    <type name='const xmlChar *'>
+      <ref name='xsltEvalStaticAttrValueTemplate'/>
+      <ref name='xsltGetCNsProp'/>
+      <ref name='xsltGetQNameURI'/>
+      <ref name='xsltGetQNameURI2'/>
+      <ref name='xsltSplitQName'/>
+    </type>
+    <type name='long'>
+      <ref name='xsltTimestamp'/>
+    </type>
+    <type name='void *'>
+      <ref name='xsltExtInitFunction'/>
+      <ref name='xsltGetExtData'/>
+      <ref name='xsltStyleExtInitFunction'/>
+      <ref name='xsltStyleGetExtData'/>
+    </type>
+    <type name='xmlAttrPtr'>
+      <ref name='xsltAttrListTemplateProcess'/>
+      <ref name='xsltAttrTemplateProcess'/>
+    </type>
+    <type name='xmlChar *'>
+      <ref name='xsltAttrTemplateValueProcess'/>
+      <ref name='xsltAttrTemplateValueProcessNode'/>
+      <ref name='xsltEvalAVT'/>
+      <ref name='xsltEvalAttrValueTemplate'/>
+      <ref name='xsltEvalTemplateString'/>
+      <ref name='xsltEvalXPathString'/>
+      <ref name='xsltEvalXPathStringNs'/>
+      <ref name='xsltGetNsProp'/>
+    </type>
+    <type name='xmlDocPtr'>
+      <ref name='xsltApplyStylesheet'/>
+      <ref name='xsltApplyStylesheetUser'/>
+      <ref name='xsltCreateRVT'/>
+      <ref name='xsltDocLoaderFunc'/>
+      <ref name='xsltGetProfileInformation'/>
+      <ref name='xsltProfileStylesheet'/>
+    </type>
+    <type name='xmlHashTablePtr'>
+      <ref name='xsltGetExtInfo'/>
+    </type>
+    <type name='xmlNodePtr'>
+      <ref name='xsltCopyTextString'/>
+    </type>
+    <type name='xmlNodePtr *'>
+      <ref name='xsltTemplateProcess'/>
+    </type>
+    <type name='xmlNodeSetPtr'>
+      <ref name='xsltGetKey'/>
+    </type>
+    <type name='xmlNsPtr'>
+      <ref name='xsltCopyNamespace'/>
+      <ref name='xsltCopyNamespaceList'/>
+      <ref name='xsltGetNamespace'/>
+      <ref name='xsltGetPlainNamespace'/>
+      <ref name='xsltGetSpecialNamespace'/>
+    </type>
+    <type name='xmlXPathCompExprPtr'>
+      <ref name='xsltXPathCompile'/>
+    </type>
+    <type name='xmlXPathError'>
+      <ref name='xsltFormatNumberConversion'/>
+    </type>
+    <type name='xmlXPathFunction'>
+      <ref name='xsltExtFunctionLookup'/>
+      <ref name='xsltExtModuleFunctionLookup'/>
+      <ref name='xsltXPathFunctionLookup'/>
+    </type>
+    <type name='xmlXPathObjectPtr'>
+      <ref name='xsltVariableLookup'/>
+      <ref name='xsltXPathVariableLookup'/>
+    </type>
+    <type name='xmlXPathObjectPtr *'>
+      <ref name='xsltComputeSortResult'/>
+    </type>
+    <type name='xsltCompMatchPtr'>
+      <ref name='xsltCompilePattern'/>
+    </type>
+    <type name='xsltDebugTraceCodes'>
+      <ref name='xsltDebugGetDefaultTrace'/>
+    </type>
+    <type name='xsltDecimalFormatPtr'>
+      <ref name='xsltDecimalFormatGetByName'/>
+    </type>
+    <type name='xsltDocumentPtr'>
+      <ref name='xsltFindDocument'/>
+      <ref name='xsltLoadDocument'/>
+      <ref name='xsltLoadStyleDocument'/>
+      <ref name='xsltNewDocument'/>
+      <ref name='xsltNewStyleDocument'/>
+    </type>
+    <type name='xsltElemPreCompPtr'>
+      <ref name='xsltDocumentComp'/>
+      <ref name='xsltNewElemPreComp'/>
+      <ref name='xsltPreComputeExtModuleElement'/>
+      <ref name='xsltPreComputeFunction'/>
+    </type>
+    <type name='xsltPreComputeFunction'>
+      <ref name='xsltExtModuleElementPreComputeLookup'/>
+    </type>
+    <type name='xsltSecurityCheck'>
+      <ref name='xsltGetSecurityPrefs'/>
+    </type>
+    <type name='xsltSecurityPrefsPtr'>
+      <ref name='xsltGetDefaultSecurityPrefs'/>
+      <ref name='xsltNewSecurityPrefs'/>
+    </type>
+    <type name='xsltStackElemPtr'>
+      <ref name='xsltParseStylesheetCallerParam'/>
+    </type>
+    <type name='xsltStylesheetPtr'>
+      <ref name='xsltLoadStylesheetPI'/>
+      <ref name='xsltNewStylesheet'/>
+      <ref name='xsltNextImport'/>
+      <ref name='xsltParseStylesheetDoc'/>
+      <ref name='xsltParseStylesheetFile'/>
+      <ref name='xsltParseStylesheetImportedDoc'/>
+      <ref name='xsltParseStylesheetProcess'/>
+    </type>
+    <type name='xsltTemplatePtr'>
+      <ref name='xsltFindTemplate'/>
+      <ref name='xsltGetTemplate'/>
+    </type>
+    <type name='xsltTopLevelFunction'>
+      <ref name='xsltExtModuleTopLevelLookup'/>
+    </type>
+    <type name='xsltTransformContextPtr'>
+      <ref name='xsltNewTransformContext'/>
+      <ref name='xsltXPathGetTransformContext'/>
+    </type>
+    <type name='xsltTransformFunction'>
+      <ref name='xsltExtElementLookup'/>
+      <ref name='xsltExtModuleElementLookup'/>
+    </type>
+  </constructors>
+  <functions>
+    <type name='...'>
+      <ref name='xsltTransformError'/>
+    </type>
+    <type name='FILE *'>
+      <ref name='xsltApplyStylesheetUser'/>
+      <ref name='xsltDebugDumpExtensions'/>
+      <ref name='xsltProfileStylesheet'/>
+      <ref name='xsltRunStylesheetUser'/>
+      <ref name='xsltSaveProfiling'/>
+      <ref name='xsltSaveResultToFile'/>
+    </type>
+    <type name='const char **'>
+      <ref name='xsltApplyStylesheet'/>
+      <ref name='xsltApplyStylesheetUser'/>
+      <ref name='xsltEvalUserParams'/>
+      <ref name='xsltProfileStylesheet'/>
+      <ref name='xsltQuoteUserParams'/>
+      <ref name='xsltRunStylesheet'/>
+      <ref name='xsltRunStylesheetUser'/>
+    </type>
+    <type name='const unsigned char *'>
+      <ref name='xsltGetUTF8Char'/>
+    </type>
+    <type name='const xmlChar *'>
+      <ref name='xsltAddKey'/>
+      <ref name='xsltAddTemplate'/>
+      <ref name='xsltApplyAttributeSet'/>
+      <ref name='xsltAttrTemplateValueProcess'/>
+      <ref name='xsltAttrTemplateValueProcessNode'/>
+      <ref name='xsltCheckExtPrefix'/>
+      <ref name='xsltCheckRead'/>
+      <ref name='xsltCheckWrite'/>
+      <ref name='xsltCompilePattern'/>
+      <ref name='xsltCopyTextString'/>
+      <ref name='xsltDocLoaderFunc'/>
+      <ref name='xsltEvalAttrValueTemplate'/>
+      <ref name='xsltEvalOneUserParam'/>
+      <ref name='xsltEvalStaticAttrValueTemplate'/>
+      <ref name='xsltExtElementLookup'/>
+      <ref name='xsltExtFunctionLookup'/>
+      <ref name='xsltExtInitFunction'/>
+      <ref name='xsltExtModuleElementLookup'/>
+      <ref name='xsltExtModuleElementPreComputeLookup'/>
+      <ref name='xsltExtModuleFunctionLookup'/>
+      <ref name='xsltExtModuleTopLevelLookup'/>
+      <ref name='xsltExtShutdownFunction'/>
+      <ref name='xsltFindTemplate'/>
+      <ref name='xsltGetCNsProp'/>
+      <ref name='xsltGetExtData'/>
+      <ref name='xsltGetExtInfo'/>
+      <ref name='xsltGetKey'/>
+      <ref name='xsltGetNsProp'/>
+      <ref name='xsltGetSpecialNamespace'/>
+      <ref name='xsltLoadDocument'/>
+      <ref name='xsltLoadStyleDocument'/>
+      <ref name='xsltMatchPattern'/>
+      <ref name='xsltNormalizeCompSteps'/>
+      <ref name='xsltParseStylesheetFile'/>
+      <ref name='xsltQuoteOneUserParam'/>
+      <ref name='xsltRegisterExtElement'/>
+      <ref name='xsltRegisterExtFunction'/>
+      <ref name='xsltRegisterExtModule'/>
+      <ref name='xsltRegisterExtModuleElement'/>
+      <ref name='xsltRegisterExtModuleFull'/>
+      <ref name='xsltRegisterExtModuleFunction'/>
+      <ref name='xsltRegisterExtModuleTopLevel'/>
+      <ref name='xsltRegisterExtPrefix'/>
+      <ref name='xsltSplitQName'/>
+      <ref name='xsltStyleExtInitFunction'/>
+      <ref name='xsltStyleExtShutdownFunction'/>
+      <ref name='xsltStyleGetExtData'/>
+      <ref name='xsltUnregisterExtModule'/>
+      <ref name='xsltUnregisterExtModuleElement'/>
+      <ref name='xsltUnregisterExtModuleFunction'/>
+      <ref name='xsltUnregisterExtModuleTopLevel'/>
+      <ref name='xsltVariableLookup'/>
+      <ref name='xsltXPathCompile'/>
+      <ref name='xsltXPathFunctionLookup'/>
+      <ref name='xsltXPathVariableLookup'/>
+    </type>
+    <type name='const xmlChar **'>
+      <ref name='xsltGetQNameURI2'/>
+      <ref name='xsltSplitQName'/>
+    </type>
+    <type name='double'>
+      <ref name='xsltFormatNumberConversion'/>
+    </type>
+    <type name='int *'>
+      <ref name='xsltEvalStaticAttrValueTemplate'/>
+      <ref name='xsltGetUTF8Char'/>
+      <ref name='xsltSaveResultToString'/>
+    </type>
+    <type name='long'>
+      <ref name='xsltCalibrateAdjust'/>
+    </type>
+    <type name='void *'>
+      <ref name='xsltDocLoaderFunc'/>
+      <ref name='xsltEvalAVT'/>
+      <ref name='xsltExtShutdownFunction'/>
+      <ref name='xsltFreeAVTList'/>
+      <ref name='xsltNormalizeCompSteps'/>
+      <ref name='xsltSetDebuggerCallbacks'/>
+      <ref name='xsltSetGenericDebugFunc'/>
+      <ref name='xsltSetGenericErrorFunc'/>
+      <ref name='xsltSetTransformErrorFunc'/>
+      <ref name='xsltStyleExtShutdownFunction'/>
+      <ref name='xsltXPathVariableLookup'/>
+    </type>
+    <type name='xmlAttrPtr'>
+      <ref name='xsltAttrListTemplateProcess'/>
+      <ref name='xsltAttrTemplateProcess'/>
+      <ref name='xsltCompileAttr'/>
+    </type>
+    <type name='xmlChar *'>
+      <ref name='xsltDecimalFormatGetByName'/>
+      <ref name='xsltFormatNumberConversion'/>
+      <ref name='xsltIsBlank'/>
+    </type>
+    <type name='xmlChar **'>
+      <ref name='xsltFormatNumberConversion'/>
+      <ref name='xsltGetQNameURI'/>
+      <ref name='xsltSaveResultToString'/>
+    </type>
+    <type name='xmlDictPtr'>
+      <ref name='xsltDocLoaderFunc'/>
+      <ref name='xsltSplitQName'/>
+    </type>
+    <type name='xmlDocPtr'>
+      <ref name='xsltApplyStylesheet'/>
+      <ref name='xsltApplyStylesheetUser'/>
+      <ref name='xsltCompilePattern'/>
+      <ref name='xsltFindDocument'/>
+      <ref name='xsltLoadStylesheetPI'/>
+      <ref name='xsltMatchPattern'/>
+      <ref name='xsltNewDocument'/>
+      <ref name='xsltNewStyleDocument'/>
+      <ref name='xsltNewTransformContext'/>
+      <ref name='xsltParseStylesheetDoc'/>
+      <ref name='xsltParseStylesheetImportedDoc'/>
+      <ref name='xsltParseStylesheetProcess'/>
+      <ref name='xsltProfileStylesheet'/>
+      <ref name='xsltRegisterPersistRVT'/>
+      <ref name='xsltRegisterTmpRVT'/>
+      <ref name='xsltRunStylesheet'/>
+      <ref name='xsltRunStylesheetUser'/>
+      <ref name='xsltSaveResultTo'/>
+      <ref name='xsltSaveResultToFd'/>
+      <ref name='xsltSaveResultToFile'/>
+      <ref name='xsltSaveResultToFilename'/>
+      <ref name='xsltSaveResultToString'/>
+    </type>
+    <type name='xmlGenericErrorFunc'>
+      <ref name='xsltSetGenericDebugFunc'/>
+      <ref name='xsltSetGenericErrorFunc'/>
+      <ref name='xsltSetTransformErrorFunc'/>
+    </type>
+    <type name='xmlNodePtr'>
+      <ref name='xslAddCall'/>
+      <ref name='xslHandleDebugger'/>
+      <ref name='xsltAddCallCallback'/>
+      <ref name='xsltAddKey'/>
+      <ref name='xsltApplyAttributeSet'/>
+      <ref name='xsltApplyImports'/>
+      <ref name='xsltApplyOneTemplate'/>
+      <ref name='xsltApplyStripSpaces'/>
+      <ref name='xsltApplyTemplates'/>
+      <ref name='xsltAttrListTemplateProcess'/>
+      <ref name='xsltAttrTemplateProcess'/>
+      <ref name='xsltAttrTemplateValueProcessNode'/>
+      <ref name='xsltAttribute'/>
+      <ref name='xsltCallTemplate'/>
+      <ref name='xsltChoose'/>
+      <ref name='xsltComment'/>
+      <ref name='xsltCompilePattern'/>
+      <ref name='xsltComputeSortResult'/>
+      <ref name='xsltCopy'/>
+      <ref name='xsltCopyNamespace'/>
+      <ref name='xsltCopyNamespaceList'/>
+      <ref name='xsltCopyOf'/>
+      <ref name='xsltCopyTextString'/>
+      <ref name='xsltDebug'/>
+      <ref name='xsltDocumentComp'/>
+      <ref name='xsltDocumentElem'/>
+      <ref name='xsltElement'/>
+      <ref name='xsltEvalAVT'/>
+      <ref name='xsltEvalAttrValueTemplate'/>
+      <ref name='xsltEvalStaticAttrValueTemplate'/>
+      <ref name='xsltEvalTemplateString'/>
+      <ref name='xsltFindElemSpaceHandling'/>
+      <ref name='xsltForEach'/>
+      <ref name='xsltGetCNsProp'/>
+      <ref name='xsltGetNamespace'/>
+      <ref name='xsltGetNsProp'/>
+      <ref name='xsltGetPlainNamespace'/>
+      <ref name='xsltGetQNameURI'/>
+      <ref name='xsltGetQNameURI2'/>
+      <ref name='xsltGetSpecialNamespace'/>
+      <ref name='xsltGetTemplate'/>
+      <ref name='xsltHandleDebuggerCallback'/>
+      <ref name='xsltIf'/>
+      <ref name='xsltInitElemPreComp'/>
+      <ref name='xsltMatchPattern'/>
+      <ref name='xsltMessage'/>
+      <ref name='xsltNamespaceAlias'/>
+      <ref name='xsltNewElemPreComp'/>
+      <ref name='xsltNumber'/>
+      <ref name='xsltNumberFormat'/>
+      <ref name='xsltParseGlobalParam'/>
+      <ref name='xsltParseGlobalVariable'/>
+      <ref name='xsltParseStylesheetAttributeSet'/>
+      <ref name='xsltParseStylesheetCallerParam'/>
+      <ref name='xsltParseStylesheetImport'/>
+      <ref name='xsltParseStylesheetInclude'/>
+      <ref name='xsltParseStylesheetOutput'/>
+      <ref name='xsltParseStylesheetParam'/>
+      <ref name='xsltParseStylesheetVariable'/>
+      <ref name='xsltParseTemplateContent'/>
+      <ref name='xsltPreComputeExtModuleElement'/>
+      <ref name='xsltPreComputeFunction'/>
+      <ref name='xsltPrintErrorContext'/>
+      <ref name='xsltProcessingInstruction'/>
+      <ref name='xsltSort'/>
+      <ref name='xsltStylePreCompute'/>
+      <ref name='xsltTemplateProcess'/>
+      <ref name='xsltTestCompMatchList'/>
+      <ref name='xsltText'/>
+      <ref name='xsltTopLevelFunction'/>
+      <ref name='xsltTransformError'/>
+      <ref name='xsltTransformFunction'/>
+      <ref name='xsltValueOf'/>
+    </type>
+    <type name='xmlNodePtr *'>
+      <ref name='xsltDefaultSortFunction'/>
+      <ref name='xsltDoSortFunction'/>
+      <ref name='xsltSortFunc'/>
+    </type>
+    <type name='xmlNodeSetPtr'>
+      <ref name='xsltDocumentSortFunction'/>
+    </type>
+    <type name='xmlNsPtr'>
+      <ref name='xsltCopyNamespace'/>
+      <ref name='xsltCopyNamespaceList'/>
+      <ref name='xsltGetNamespace'/>
+      <ref name='xsltGetPlainNamespace'/>
+    </type>
+    <type name='xmlNsPtr *'>
+      <ref name='xsltEvalXPathPredicate'/>
+      <ref name='xsltEvalXPathStringNs'/>
+    </type>
+    <type name='xmlOutputBufferPtr'>
+      <ref name='xsltRunStylesheet'/>
+      <ref name='xsltRunStylesheetUser'/>
+      <ref name='xsltSaveResultTo'/>
+    </type>
+    <type name='xmlSAXHandlerPtr'>
+      <ref name='xsltRunStylesheet'/>
+      <ref name='xsltRunStylesheetUser'/>
+    </type>
+    <type name='xmlXPathCompExprPtr'>
+      <ref name='xsltEvalXPathPredicate'/>
+      <ref name='xsltEvalXPathString'/>
+      <ref name='xsltEvalXPathStringNs'/>
+    </type>
+    <type name='xmlXPathContextPtr'>
+      <ref name='xsltRegisterAllFunctions'/>
+      <ref name='xsltXPathFunctionLookup'/>
+    </type>
+    <type name='xmlXPathFunction'>
+      <ref name='xsltRegisterExtFunction'/>
+      <ref name='xsltRegisterExtModuleFunction'/>
+    </type>
+    <type name='xmlXPathParserContextPtr'>
+      <ref name='xsltDocumentFunction'/>
+      <ref name='xsltElementAvailableFunction'/>
+      <ref name='xsltFormatNumberFunction'/>
+      <ref name='xsltFunctionAvailableFunction'/>
+      <ref name='xsltFunctionNodeSet'/>
+      <ref name='xsltGenerateIdFunction'/>
+      <ref name='xsltKeyFunction'/>
+      <ref name='xsltSystemPropertyFunction'/>
+      <ref name='xsltUnparsedEntityURIFunction'/>
+      <ref name='xsltXPathGetTransformContext'/>
+    </type>
+    <type name='xsltCompMatchPtr'>
+      <ref name='xsltFreeCompMatchList'/>
+      <ref name='xsltTestCompMatchList'/>
+    </type>
+    <type name='xsltDebugTraceCodes'>
+      <ref name='xsltDebugSetDefaultTrace'/>
+    </type>
+    <type name='xsltDecimalFormatPtr'>
+      <ref name='xsltFormatNumberConversion'/>
+    </type>
+    <type name='xsltDocLoaderFunc'>
+      <ref name='xsltSetLoaderFunc'/>
+    </type>
+    <type name='xsltDocumentPtr'>
+      <ref name='xsltFreeDocumentKeys'/>
+      <ref name='xsltInitCtxtKeys'/>
+    </type>
+    <type name='xsltElemPreCompDeallocator'>
+      <ref name='xsltInitElemPreComp'/>
+    </type>
+    <type name='xsltElemPreCompPtr'>
+      <ref name='xsltElemPreCompDeallocator'/>
+      <ref name='xsltInitElemPreComp'/>
+      <ref name='xsltTransformFunction'/>
+    </type>
+    <type name='xsltExtInitFunction'>
+      <ref name='xsltRegisterExtModule'/>
+      <ref name='xsltRegisterExtModuleFull'/>
+    </type>
+    <type name='xsltExtShutdownFunction'>
+      <ref name='xsltRegisterExtModule'/>
+      <ref name='xsltRegisterExtModuleFull'/>
+    </type>
+    <type name='xsltLoadType'>
+      <ref name='xsltDocLoaderFunc'/>
+    </type>
+    <type name='xsltNumberDataPtr'>
+      <ref name='xsltNumberFormat'/>
+    </type>
+    <type name='xsltPreComputeFunction'>
+      <ref name='xsltRegisterExtModuleElement'/>
+    </type>
+    <type name='xsltSecurityCheck'>
+      <ref name='xsltSetSecurityPrefs'/>
+    </type>
+    <type name='xsltSecurityOption'>
+      <ref name='xsltGetSecurityPrefs'/>
+      <ref name='xsltSetSecurityPrefs'/>
+    </type>
+    <type name='xsltSecurityPrefsPtr'>
+      <ref name='xsltCheckRead'/>
+      <ref name='xsltCheckWrite'/>
+      <ref name='xsltFreeSecurityPrefs'/>
+      <ref name='xsltGetSecurityPrefs'/>
+      <ref name='xsltSecurityAllow'/>
+      <ref name='xsltSecurityCheck'/>
+      <ref name='xsltSecurityForbid'/>
+      <ref name='xsltSetCtxtSecurityPrefs'/>
+      <ref name='xsltSetDefaultSecurityPrefs'/>
+      <ref name='xsltSetSecurityPrefs'/>
+    </type>
+    <type name='xsltSortFunc'>
+      <ref name='xsltSetCtxtSortFunc'/>
+      <ref name='xsltSetSortFunc'/>
+    </type>
+    <type name='xsltStackElemPtr'>
+      <ref name='xsltAddStackElemList'/>
+      <ref name='xsltApplyOneTemplate'/>
+      <ref name='xsltFreeStackElemList'/>
+    </type>
+    <type name='xsltStyleExtInitFunction'>
+      <ref name='xsltRegisterExtModuleFull'/>
+    </type>
+    <type name='xsltStyleExtShutdownFunction'>
+      <ref name='xsltRegisterExtModuleFull'/>
+    </type>
+    <type name='xsltStylePreCompPtr'>
+      <ref name='xsltApplyImports'/>
+      <ref name='xsltApplyTemplates'/>
+      <ref name='xsltAttribute'/>
+      <ref name='xsltCallTemplate'/>
+      <ref name='xsltChoose'/>
+      <ref name='xsltComment'/>
+      <ref name='xsltCopy'/>
+      <ref name='xsltCopyOf'/>
+      <ref name='xsltDebug'/>
+      <ref name='xsltDocumentElem'/>
+      <ref name='xsltElement'/>
+      <ref name='xsltForEach'/>
+      <ref name='xsltIf'/>
+      <ref name='xsltNumber'/>
+      <ref name='xsltProcessingInstruction'/>
+      <ref name='xsltSort'/>
+      <ref name='xsltText'/>
+      <ref name='xsltValueOf'/>
+    </type>
+    <type name='xsltStylesheetPtr'>
+      <ref name='xsltAddKey'/>
+      <ref name='xsltAddTemplate'/>
+      <ref name='xsltAllocateExtra'/>
+      <ref name='xsltApplyStylesheet'/>
+      <ref name='xsltApplyStylesheetUser'/>
+      <ref name='xsltCheckExtPrefix'/>
+      <ref name='xsltCleanupTemplates'/>
+      <ref name='xsltCompileAttr'/>
+      <ref name='xsltCompilePattern'/>
+      <ref name='xsltDecimalFormatGetByName'/>
+      <ref name='xsltDocumentComp'/>
+      <ref name='xsltEvalStaticAttrValueTemplate'/>
+      <ref name='xsltFreeAttributeSetsHashes'/>
+      <ref name='xsltFreeExts'/>
+      <ref name='xsltFreeKeys'/>
+      <ref name='xsltFreeNamespaceAliasHashes'/>
+      <ref name='xsltFreeStyleDocuments'/>
+      <ref name='xsltFreeStylePreComps'/>
+      <ref name='xsltFreeStylesheet'/>
+      <ref name='xsltFreeTemplateHashes'/>
+      <ref name='xsltGetCNsProp'/>
+      <ref name='xsltGetExtInfo'/>
+      <ref name='xsltGetQNameURI2'/>
+      <ref name='xsltGetTemplate'/>
+      <ref name='xsltInitElemPreComp'/>
+      <ref name='xsltLoadStyleDocument'/>
+      <ref name='xsltNamespaceAlias'/>
+      <ref name='xsltNewElemPreComp'/>
+      <ref name='xsltNewStyleDocument'/>
+      <ref name='xsltNewTransformContext'/>
+      <ref name='xsltNextImport'/>
+      <ref name='xsltParseGlobalParam'/>
+      <ref name='xsltParseGlobalVariable'/>
+      <ref name='xsltParseStylesheetAttributeSet'/>
+      <ref name='xsltParseStylesheetImport'/>
+      <ref name='xsltParseStylesheetImportedDoc'/>
+      <ref name='xsltParseStylesheetInclude'/>
+      <ref name='xsltParseStylesheetOutput'/>
+      <ref name='xsltParseStylesheetProcess'/>
+      <ref name='xsltParseTemplateContent'/>
+      <ref name='xsltPreComputeExtModuleElement'/>
+      <ref name='xsltPreComputeFunction'/>
+      <ref name='xsltPrintErrorContext'/>
+      <ref name='xsltProfileStylesheet'/>
+      <ref name='xsltRegisterExtPrefix'/>
+      <ref name='xsltResolveStylesheetAttributeSet'/>
+      <ref name='xsltRunStylesheet'/>
+      <ref name='xsltRunStylesheetUser'/>
+      <ref name='xsltSaveResultTo'/>
+      <ref name='xsltSaveResultToFd'/>
+      <ref name='xsltSaveResultToFile'/>
+      <ref name='xsltSaveResultToFilename'/>
+      <ref name='xsltSaveResultToString'/>
+      <ref name='xsltShutdownExts'/>
+      <ref name='xsltStyleExtInitFunction'/>
+      <ref name='xsltStyleExtShutdownFunction'/>
+      <ref name='xsltStyleGetExtData'/>
+      <ref name='xsltStylePreCompute'/>
+      <ref name='xsltTopLevelFunction'/>
+      <ref name='xsltTransformError'/>
+      <ref name='xsltXPathCompile'/>
+    </type>
+    <type name='xsltTemplatePtr'>
+      <ref name='xslAddCall'/>
+      <ref name='xslHandleDebugger'/>
+      <ref name='xsltAddCallCallback'/>
+      <ref name='xsltAddTemplate'/>
+      <ref name='xsltApplyOneTemplate'/>
+      <ref name='xsltHandleDebuggerCallback'/>
+    </type>
+    <type name='xsltTopLevelFunction'>
+      <ref name='xsltRegisterExtModuleTopLevel'/>
+    </type>
+    <type name='xsltTransformContextPtr'>
+      <ref name='xslHandleDebugger'/>
+      <ref name='xsltAddStackElemList'/>
+      <ref name='xsltAllocateExtraCtxt'/>
+      <ref name='xsltApplyAttributeSet'/>
+      <ref name='xsltApplyImports'/>
+      <ref name='xsltApplyOneTemplate'/>
+      <ref name='xsltApplyStripSpaces'/>
+      <ref name='xsltApplyStylesheetUser'/>
+      <ref name='xsltApplyTemplates'/>
+      <ref name='xsltAttrListTemplateProcess'/>
+      <ref name='xsltAttrTemplateProcess'/>
+      <ref name='xsltAttrTemplateValueProcess'/>
+      <ref name='xsltAttrTemplateValueProcessNode'/>
+      <ref name='xsltAttribute'/>
+      <ref name='xsltCallTemplate'/>
+      <ref name='xsltCheckRead'/>
+      <ref name='xsltCheckWrite'/>
+      <ref name='xsltChoose'/>
+      <ref name='xsltComment'/>
+      <ref name='xsltCompilePattern'/>
+      <ref name='xsltComputeSortResult'/>
+      <ref name='xsltCopy'/>
+      <ref name='xsltCopyNamespace'/>
+      <ref name='xsltCopyNamespaceList'/>
+      <ref name='xsltCopyOf'/>
+      <ref name='xsltCopyTextString'/>
+      <ref name='xsltCreateRVT'/>
+      <ref name='xsltDebug'/>
+      <ref name='xsltDefaultSortFunction'/>
+      <ref name='xsltDoSortFunction'/>
+      <ref name='xsltDocumentElem'/>
+      <ref name='xsltElement'/>
+      <ref name='xsltEvalAVT'/>
+      <ref name='xsltEvalAttrValueTemplate'/>
+      <ref name='xsltEvalGlobalVariables'/>
+      <ref name='xsltEvalOneUserParam'/>
+      <ref name='xsltEvalTemplateString'/>
+      <ref name='xsltEvalUserParams'/>
+      <ref name='xsltEvalXPathPredicate'/>
+      <ref name='xsltEvalXPathString'/>
+      <ref name='xsltEvalXPathStringNs'/>
+      <ref name='xsltExtElementLookup'/>
+      <ref name='xsltExtFunctionLookup'/>
+      <ref name='xsltExtInitFunction'/>
+      <ref name='xsltExtShutdownFunction'/>
+      <ref name='xsltFindDocument'/>
+      <ref name='xsltFindElemSpaceHandling'/>
+      <ref name='xsltFindTemplate'/>
+      <ref name='xsltForEach'/>
+      <ref name='xsltFreeCtxtExts'/>
+      <ref name='xsltFreeDocuments'/>
+      <ref name='xsltFreeGlobalVariables'/>
+      <ref name='xsltFreeRVTs'/>
+      <ref name='xsltFreeTransformContext'/>
+      <ref name='xsltGetExtData'/>
+      <ref name='xsltGetKey'/>
+      <ref name='xsltGetNamespace'/>
+      <ref name='xsltGetPlainNamespace'/>
+      <ref name='xsltGetProfileInformation'/>
+      <ref name='xsltGetSpecialNamespace'/>
+      <ref name='xsltGetTemplate'/>
+      <ref name='xsltHandleDebuggerCallback'/>
+      <ref name='xsltIf'/>
+      <ref name='xsltInitCtxtExts'/>
+      <ref name='xsltInitCtxtKeys'/>
+      <ref name='xsltLoadDocument'/>
+      <ref name='xsltMatchPattern'/>
+      <ref name='xsltMessage'/>
+      <ref name='xsltNeedElemSpaceHandling'/>
+      <ref name='xsltNewDocument'/>
+      <ref name='xsltNumber'/>
+      <ref name='xsltNumberFormat'/>
+      <ref name='xsltParseStylesheetCallerParam'/>
+      <ref name='xsltParseStylesheetParam'/>
+      <ref name='xsltParseStylesheetVariable'/>
+      <ref name='xsltPrintErrorContext'/>
+      <ref name='xsltProcessingInstruction'/>
+      <ref name='xsltQuoteOneUserParam'/>
+      <ref name='xsltQuoteUserParams'/>
+      <ref name='xsltRegisterAllElement'/>
+      <ref name='xsltRegisterExtElement'/>
+      <ref name='xsltRegisterExtFunction'/>
+      <ref name='xsltRegisterExtras'/>
+      <ref name='xsltRegisterPersistRVT'/>
+      <ref name='xsltRegisterTmpRVT'/>
+      <ref name='xsltRunStylesheetUser'/>
+      <ref name='xsltSaveProfiling'/>
+      <ref name='xsltSecurityAllow'/>
+      <ref name='xsltSecurityCheck'/>
+      <ref name='xsltSecurityForbid'/>
+      <ref name='xsltSetCtxtParseOptions'/>
+      <ref name='xsltSetCtxtSecurityPrefs'/>
+      <ref name='xsltSetCtxtSortFunc'/>
+      <ref name='xsltSetTransformErrorFunc'/>
+      <ref name='xsltShutdownCtxtExts'/>
+      <ref name='xsltSort'/>
+      <ref name='xsltSortFunc'/>
+      <ref name='xsltTemplateProcess'/>
+      <ref name='xsltTestCompMatchList'/>
+      <ref name='xsltText'/>
+      <ref name='xsltTransformError'/>
+      <ref name='xsltTransformFunction'/>
+      <ref name='xsltValueOf'/>
+      <ref name='xsltVariableLookup'/>
+    </type>
+    <type name='xsltTransformFunction'>
+      <ref name='xsltDocumentComp'/>
+      <ref name='xsltInitElemPreComp'/>
+      <ref name='xsltNewElemPreComp'/>
+      <ref name='xsltPreComputeFunction'/>
+      <ref name='xsltRegisterExtElement'/>
+      <ref name='xsltRegisterExtModuleElement'/>
+    </type>
+  </functions>
+  <files>
+    <file name='attributes'>
+      <ref name='xsltApplyAttributeSet'/>
+      <ref name='xsltFreeAttributeSetsHashes'/>
+      <ref name='xsltParseStylesheetAttributeSet'/>
+      <ref name='xsltResolveStylesheetAttributeSet'/>
+    </file>
+    <file name='documents'>
+      <ref name='XSLT_LOAD_DOCUMENT'/>
+      <ref name='XSLT_LOAD_START'/>
+      <ref name='XSLT_LOAD_STYLESHEET'/>
+      <ref name='xsltDocDefaultLoader'/>
+      <ref name='xsltDocLoaderFunc'/>
+      <ref name='xsltFindDocument'/>
+      <ref name='xsltFreeDocuments'/>
+      <ref name='xsltFreeStyleDocuments'/>
+      <ref name='xsltLoadDocument'/>
+      <ref name='xsltLoadStyleDocument'/>
+      <ref name='xsltLoadType'/>
+      <ref name='xsltNewDocument'/>
+      <ref name='xsltNewStyleDocument'/>
+      <ref name='xsltSetLoaderFunc'/>
+    </file>
+    <file name='extensions'>
+      <ref name='xsltCheckExtPrefix'/>
+      <ref name='xsltDebugDumpExtensions'/>
+      <ref name='xsltExtElementLookup'/>
+      <ref name='xsltExtFunctionLookup'/>
+      <ref name='xsltExtInitFunction'/>
+      <ref name='xsltExtModuleElementLookup'/>
+      <ref name='xsltExtModuleElementPreComputeLookup'/>
+      <ref name='xsltExtModuleFunctionLookup'/>
+      <ref name='xsltExtModuleTopLevelLookup'/>
+      <ref name='xsltExtShutdownFunction'/>
+      <ref name='xsltFreeCtxtExts'/>
+      <ref name='xsltFreeExts'/>
+      <ref name='xsltGetExtData'/>
+      <ref name='xsltGetExtInfo'/>
+      <ref name='xsltInitCtxtExts'/>
+      <ref name='xsltInitElemPreComp'/>
+      <ref name='xsltNewElemPreComp'/>
+      <ref name='xsltPreComputeExtModuleElement'/>
+      <ref name='xsltPreComputeFunction'/>
+      <ref name='xsltRegisterExtElement'/>
+      <ref name='xsltRegisterExtFunction'/>
+      <ref name='xsltRegisterExtModule'/>
+      <ref name='xsltRegisterExtModuleElement'/>
+      <ref name='xsltRegisterExtModuleFull'/>
+      <ref name='xsltRegisterExtModuleFunction'/>
+      <ref name='xsltRegisterExtModuleTopLevel'/>
+      <ref name='xsltRegisterExtPrefix'/>
+      <ref name='xsltRegisterTestModule'/>
+      <ref name='xsltShutdownCtxtExts'/>
+      <ref name='xsltShutdownExts'/>
+      <ref name='xsltStyleExtInitFunction'/>
+      <ref name='xsltStyleExtShutdownFunction'/>
+      <ref name='xsltStyleGetExtData'/>
+      <ref name='xsltTopLevelFunction'/>
+      <ref name='xsltUnregisterExtModule'/>
+      <ref name='xsltUnregisterExtModuleElement'/>
+      <ref name='xsltUnregisterExtModuleFunction'/>
+      <ref name='xsltUnregisterExtModuleTopLevel'/>
+      <ref name='xsltXPathGetTransformContext'/>
+    </file>
+    <file name='extra'>
+      <ref name='XSLT_LIBXSLT_NAMESPACE'/>
+      <ref name='XSLT_NORM_SAXON_NAMESPACE'/>
+      <ref name='XSLT_SAXON_NAMESPACE'/>
+      <ref name='XSLT_XALAN_NAMESPACE'/>
+      <ref name='XSLT_XT_NAMESPACE'/>
+      <ref name='xsltDebug'/>
+      <ref name='xsltFunctionNodeSet'/>
+      <ref name='xsltRegisterAllExtras'/>
+      <ref name='xsltRegisterExtras'/>
+    </file>
+    <file name='functions'>
+      <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
+      <ref name='xsltDocumentFunction'/>
+      <ref name='xsltElementAvailableFunction'/>
+      <ref name='xsltFormatNumberFunction'/>
+      <ref name='xsltFunctionAvailableFunction'/>
+      <ref name='xsltGenerateIdFunction'/>
+      <ref name='xsltKeyFunction'/>
+      <ref name='xsltRegisterAllFunctions'/>
+      <ref name='xsltSystemPropertyFunction'/>
+      <ref name='xsltUnparsedEntityURIFunction'/>
+      <ref name='xsltXPathFunctionLookup'/>
+    </file>
+    <file name='imports'>
+      <ref name='XSLT_GET_IMPORT_INT'/>
+      <ref name='XSLT_GET_IMPORT_PTR'/>
+      <ref name='xsltFindElemSpaceHandling'/>
+      <ref name='xsltFindTemplate'/>
+      <ref name='xsltNeedElemSpaceHandling'/>
+      <ref name='xsltNextImport'/>
+      <ref name='xsltParseStylesheetImport'/>
+      <ref name='xsltParseStylesheetInclude'/>
+    </file>
+    <file name='keys'>
+      <ref name='NODE_IS_KEYED'/>
+      <ref name='xsltAddKey'/>
+      <ref name='xsltFreeDocumentKeys'/>
+      <ref name='xsltFreeKeys'/>
+      <ref name='xsltGetKey'/>
+      <ref name='xsltInitCtxtKeys'/>
+    </file>
+    <file name='namespaces'>
+      <ref name='UNDEFINED_DEFAULT_NS'/>
+      <ref name='xsltCopyNamespace'/>
+      <ref name='xsltCopyNamespaceList'/>
+      <ref name='xsltFreeNamespaceAliasHashes'/>
+      <ref name='xsltGetNamespace'/>
+      <ref name='xsltGetPlainNamespace'/>
+      <ref name='xsltGetSpecialNamespace'/>
+      <ref name='xsltNamespaceAlias'/>
+    </file>
+    <file name='numbersInternals'>
+      <ref name='_xsltFormatNumberInfo'/>
+      <ref name='_xsltNumberData'/>
+      <ref name='xsltFormatNumberInfo'/>
+      <ref name='xsltFormatNumberInfoPtr'/>
+      <ref name='xsltNumberData'/>
+      <ref name='xsltNumberDataPtr'/>
+    </file>
+    <file name='pattern'>
+      <ref name='xsltAddTemplate'/>
+      <ref name='xsltCleanupTemplates'/>
+      <ref name='xsltCompMatch'/>
+      <ref name='xsltCompMatchPtr'/>
+      <ref name='xsltCompilePattern'/>
+      <ref name='xsltFreeCompMatchList'/>
+      <ref name='xsltFreeTemplateHashes'/>
+      <ref name='xsltGetTemplate'/>
+      <ref name='xsltMatchPattern'/>
+      <ref name='xsltNormalizeCompSteps'/>
+      <ref name='xsltTestCompMatchList'/>
+    </file>
+    <file name='preproc'>
+      <ref name='xsltDocumentComp'/>
+      <ref name='xsltExtMarker'/>
+      <ref name='xsltFreeStylePreComps'/>
+      <ref name='xsltStylePreCompute'/>
+    </file>
+    <file name='security'>
+      <ref name='XSLT_SECPREF_CREATE_DIRECTORY'/>
+      <ref name='XSLT_SECPREF_READ_FILE'/>
+      <ref name='XSLT_SECPREF_READ_NETWORK'/>
+      <ref name='XSLT_SECPREF_WRITE_FILE'/>
+      <ref name='XSLT_SECPREF_WRITE_NETWORK'/>
+      <ref name='xsltCheckRead'/>
+      <ref name='xsltCheckWrite'/>
+      <ref name='xsltFreeSecurityPrefs'/>
+      <ref name='xsltGetDefaultSecurityPrefs'/>
+      <ref name='xsltGetSecurityPrefs'/>
+      <ref name='xsltNewSecurityPrefs'/>
+      <ref name='xsltSecurityAllow'/>
+      <ref name='xsltSecurityCheck'/>
+      <ref name='xsltSecurityForbid'/>
+      <ref name='xsltSecurityOption'/>
+      <ref name='xsltSecurityPrefs'/>
+      <ref name='xsltSecurityPrefsPtr'/>
+      <ref name='xsltSetCtxtSecurityPrefs'/>
+      <ref name='xsltSetDefaultSecurityPrefs'/>
+      <ref name='xsltSetSecurityPrefs'/>
+    </file>
+    <file name='templates'>
+      <ref name='xsltAttrListTemplateProcess'/>
+      <ref name='xsltAttrTemplateProcess'/>
+      <ref name='xsltAttrTemplateValueProcess'/>
+      <ref name='xsltAttrTemplateValueProcessNode'/>
+      <ref name='xsltEvalAttrValueTemplate'/>
+      <ref name='xsltEvalStaticAttrValueTemplate'/>
+      <ref name='xsltEvalTemplateString'/>
+      <ref name='xsltEvalXPathPredicate'/>
+      <ref name='xsltEvalXPathString'/>
+      <ref name='xsltEvalXPathStringNs'/>
+      <ref name='xsltTemplateProcess'/>
+    </file>
+    <file name='transform'>
+      <ref name='xslHandleDebugger'/>
+      <ref name='xsltApplyImports'/>
+      <ref name='xsltApplyOneTemplate'/>
+      <ref name='xsltApplyStripSpaces'/>
+      <ref name='xsltApplyStylesheet'/>
+      <ref name='xsltApplyStylesheetUser'/>
+      <ref name='xsltApplyTemplates'/>
+      <ref name='xsltAttribute'/>
+      <ref name='xsltCallTemplate'/>
+      <ref name='xsltChoose'/>
+      <ref name='xsltComment'/>
+      <ref name='xsltCopy'/>
+      <ref name='xsltCopyOf'/>
+      <ref name='xsltCopyTextString'/>
+      <ref name='xsltDocumentElem'/>
+      <ref name='xsltElement'/>
+      <ref name='xsltForEach'/>
+      <ref name='xsltFreeTransformContext'/>
+      <ref name='xsltGetXIncludeDefault'/>
+      <ref name='xsltIf'/>
+      <ref name='xsltNewTransformContext'/>
+      <ref name='xsltNumber'/>
+      <ref name='xsltProcessingInstruction'/>
+      <ref name='xsltProfileStylesheet'/>
+      <ref name='xsltRegisterAllElement'/>
+      <ref name='xsltRunStylesheet'/>
+      <ref name='xsltRunStylesheetUser'/>
+      <ref name='xsltSetXIncludeDefault'/>
+      <ref name='xsltSort'/>
+      <ref name='xsltText'/>
+      <ref name='xsltValueOf'/>
+    </file>
+    <file name='variables'>
+      <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
+      <ref name='xsltAddStackElemList'/>
+      <ref name='xsltEvalGlobalVariables'/>
+      <ref name='xsltEvalOneUserParam'/>
+      <ref name='xsltEvalUserParams'/>
+      <ref name='xsltFreeGlobalVariables'/>
+      <ref name='xsltParseGlobalParam'/>
+      <ref name='xsltParseGlobalVariable'/>
+      <ref name='xsltParseStylesheetCallerParam'/>
+      <ref name='xsltParseStylesheetParam'/>
+      <ref name='xsltParseStylesheetVariable'/>
+      <ref name='xsltQuoteOneUserParam'/>
+      <ref name='xsltQuoteUserParams'/>
+      <ref name='xsltVariableLookup'/>
+      <ref name='xsltXPathVariableLookup'/>
+    </file>
+    <file name='xslt'>
+      <ref name='XSLT_DEFAULT_URL'/>
+      <ref name='XSLT_DEFAULT_VENDOR'/>
+      <ref name='XSLT_DEFAULT_VERSION'/>
+      <ref name='XSLT_NAMESPACE'/>
+      <ref name='XSLT_PARSE_OPTIONS'/>
+      <ref name='xsltCleanupGlobals'/>
+      <ref name='xsltEngineVersion'/>
+      <ref name='xsltLibxmlVersion'/>
+      <ref name='xsltLibxsltVersion'/>
+      <ref name='xsltMaxDepth'/>
+    </file>
+    <file name='xsltInternals'>
+      <ref name='CHECK_STOPPED'/>
+      <ref name='CHECK_STOPPED0'/>
+      <ref name='CHECK_STOPPEDE'/>
+      <ref name='XML_CAST_FPTR'/>
+      <ref name='XSLT_FUNC_APPLYIMPORTS'/>
+      <ref name='XSLT_FUNC_APPLYTEMPLATES'/>
+      <ref name='XSLT_FUNC_ATTRIBUTE'/>
+      <ref name='XSLT_FUNC_CALLTEMPLATE'/>
+      <ref name='XSLT_FUNC_CHOOSE'/>
+      <ref name='XSLT_FUNC_COMMENT'/>
+      <ref name='XSLT_FUNC_COPY'/>
+      <ref name='XSLT_FUNC_COPYOF'/>
+      <ref name='XSLT_FUNC_DOCUMENT'/>
+      <ref name='XSLT_FUNC_ELEMENT'/>
+      <ref name='XSLT_FUNC_EXTENSION'/>
+      <ref name='XSLT_FUNC_FOREACH'/>
+      <ref name='XSLT_FUNC_IF'/>
+      <ref name='XSLT_FUNC_NUMBER'/>
+      <ref name='XSLT_FUNC_PARAM'/>
+      <ref name='XSLT_FUNC_PI'/>
+      <ref name='XSLT_FUNC_SORT'/>
+      <ref name='XSLT_FUNC_TEXT'/>
+      <ref name='XSLT_FUNC_VALUEOF'/>
+      <ref name='XSLT_FUNC_VARIABLE'/>
+      <ref name='XSLT_FUNC_WHEN'/>
+      <ref name='XSLT_FUNC_WITHPARAM'/>
+      <ref name='XSLT_MAX_SORT'/>
+      <ref name='XSLT_OUTPUT_HTML'/>
+      <ref name='XSLT_OUTPUT_TEXT'/>
+      <ref name='XSLT_OUTPUT_XML'/>
+      <ref name='XSLT_PAT_NO_PRIORITY'/>
+      <ref name='XSLT_RUNTIME_EXTRA'/>
+      <ref name='XSLT_RUNTIME_EXTRA_FREE'/>
+      <ref name='XSLT_RUNTIME_EXTRA_LST'/>
+      <ref name='XSLT_STATE_ERROR'/>
+      <ref name='XSLT_STATE_OK'/>
+      <ref name='XSLT_STATE_STOPPED'/>
+      <ref name='_xsltDecimalFormat'/>
+      <ref name='_xsltDocument'/>
+      <ref name='_xsltElemPreComp'/>
+      <ref name='_xsltRuntimeExtra'/>
+      <ref name='_xsltStackElem'/>
+      <ref name='_xsltStylePreComp'/>
+      <ref name='_xsltStylesheet'/>
+      <ref name='_xsltTemplate'/>
+      <ref name='_xsltTransformContext'/>
+      <ref name='xsltAllocateExtra'/>
+      <ref name='xsltAllocateExtraCtxt'/>
+      <ref name='xsltCompileAttr'/>
+      <ref name='xsltCreateRVT'/>
+      <ref name='xsltDecimalFormat'/>
+      <ref name='xsltDecimalFormatGetByName'/>
+      <ref name='xsltDecimalFormatPtr'/>
+      <ref name='xsltDocument'/>
+      <ref name='xsltDocumentPtr'/>
+      <ref name='xsltElemPreComp'/>
+      <ref name='xsltElemPreCompDeallocator'/>
+      <ref name='xsltElemPreCompPtr'/>
+      <ref name='xsltEvalAVT'/>
+      <ref name='xsltFormatNumberConversion'/>
+      <ref name='xsltFreeAVTList'/>
+      <ref name='xsltFreeRVTs'/>
+      <ref name='xsltFreeStackElemList'/>
+      <ref name='xsltFreeStylesheet'/>
+      <ref name='xsltIsBlank'/>
+      <ref name='xsltLoadStylesheetPI'/>
+      <ref name='xsltNewStylesheet'/>
+      <ref name='xsltNumberFormat'/>
+      <ref name='xsltOutputType'/>
+      <ref name='xsltParseStylesheetDoc'/>
+      <ref name='xsltParseStylesheetFile'/>
+      <ref name='xsltParseStylesheetImportedDoc'/>
+      <ref name='xsltParseStylesheetOutput'/>
+      <ref name='xsltParseStylesheetProcess'/>
+      <ref name='xsltParseTemplateContent'/>
+      <ref name='xsltRegisterPersistRVT'/>
+      <ref name='xsltRegisterTmpRVT'/>
+      <ref name='xsltRuntimeExtra'/>
+      <ref name='xsltRuntimeExtraPtr'/>
+      <ref name='xsltSortFunc'/>
+      <ref name='xsltStackElem'/>
+      <ref name='xsltStackElemPtr'/>
+      <ref name='xsltStylePreComp'/>
+      <ref name='xsltStylePreCompPtr'/>
+      <ref name='xsltStyleType'/>
+      <ref name='xsltStylesheet'/>
+      <ref name='xsltStylesheetPtr'/>
+      <ref name='xsltTemplate'/>
+      <ref name='xsltTemplatePtr'/>
+      <ref name='xsltTransformContext'/>
+      <ref name='xsltTransformContextPtr'/>
+      <ref name='xsltTransformFunction'/>
+      <ref name='xsltTransformState'/>
+    </file>
+    <file name='xsltexports'>
+      <ref name='LIBXSLT_PUBLIC'/>
+      <ref name='XSLTCALL'/>
+      <ref name='XSLTPUBFUN'/>
+      <ref name='XSLTPUBVAR'/>
+      <ref name='_REENTRANT'/>
+    </file>
+    <file name='xsltutils'>
+      <ref name='IS_XSLT_ELEM'/>
+      <ref name='IS_XSLT_NAME'/>
+      <ref name='IS_XSLT_REAL_NODE'/>
+      <ref name='XSLT_DEBUG_CONT'/>
+      <ref name='XSLT_DEBUG_INIT'/>
+      <ref name='XSLT_DEBUG_NEXT'/>
+      <ref name='XSLT_DEBUG_NONE'/>
+      <ref name='XSLT_DEBUG_QUIT'/>
+      <ref name='XSLT_DEBUG_RUN'/>
+      <ref name='XSLT_DEBUG_RUN_RESTART'/>
+      <ref name='XSLT_DEBUG_STEP'/>
+      <ref name='XSLT_DEBUG_STEPOUT'/>
+      <ref name='XSLT_DEBUG_STOP'/>
+      <ref name='XSLT_STRANGE'/>
+      <ref name='XSLT_TIMESTAMP_TICS_PER_SEC'/>
+      <ref name='XSLT_TODO'/>
+      <ref name='XSLT_TRACE'/>
+      <ref name='XSLT_TRACE_ALL'/>
+      <ref name='XSLT_TRACE_APPLY_TEMPLATE'/>
+      <ref name='XSLT_TRACE_APPLY_TEMPLATES'/>
+      <ref name='XSLT_TRACE_CALL_TEMPLATE'/>
+      <ref name='XSLT_TRACE_CHOOSE'/>
+      <ref name='XSLT_TRACE_COMMENT'/>
+      <ref name='XSLT_TRACE_COPY'/>
+      <ref name='XSLT_TRACE_COPY_OF'/>
+      <ref name='XSLT_TRACE_COPY_TEXT'/>
+      <ref name='XSLT_TRACE_FOR_EACH'/>
+      <ref name='XSLT_TRACE_IF'/>
+      <ref name='XSLT_TRACE_KEYS'/>
+      <ref name='XSLT_TRACE_NONE'/>
+      <ref name='XSLT_TRACE_PI'/>
+      <ref name='XSLT_TRACE_PROCESS_NODE'/>
+      <ref name='XSLT_TRACE_STRIP_SPACES'/>
+      <ref name='XSLT_TRACE_TEMPLATES'/>
+      <ref name='XSLT_TRACE_VALUE_OF'/>
+      <ref name='XSLT_TRACE_VARIABLES'/>
+      <ref name='xslAddCall'/>
+      <ref name='xslDebugStatus'/>
+      <ref name='xslDropCall'/>
+      <ref name='xsltAddCallCallback'/>
+      <ref name='xsltCalibrateAdjust'/>
+      <ref name='xsltComputeSortResult'/>
+      <ref name='xsltDebugGetDefaultTrace'/>
+      <ref name='xsltDebugSetDefaultTrace'/>
+      <ref name='xsltDebugStatusCodes'/>
+      <ref name='xsltDebugTraceCodes'/>
+      <ref name='xsltDefaultSortFunction'/>
+      <ref name='xsltDoSortFunction'/>
+      <ref name='xsltDocumentSortFunction'/>
+      <ref name='xsltDropCallCallback'/>
+      <ref name='xsltGenericDebug'/>
+      <ref name='xsltGenericDebugContext'/>
+      <ref name='xsltGenericError'/>
+      <ref name='xsltGenericErrorContext'/>
+      <ref name='xsltGetCNsProp'/>
+      <ref name='xsltGetDebuggerStatus'/>
+      <ref name='xsltGetNsProp'/>
+      <ref name='xsltGetProfileInformation'/>
+      <ref name='xsltGetQNameURI'/>
+      <ref name='xsltGetQNameURI2'/>
+      <ref name='xsltGetUTF8Char'/>
+      <ref name='xsltHandleDebuggerCallback'/>
+      <ref name='xsltMessage'/>
+      <ref name='xsltPrintErrorContext'/>
+      <ref name='xsltSaveProfiling'/>
+      <ref name='xsltSaveResultTo'/>
+      <ref name='xsltSaveResultToFd'/>
+      <ref name='xsltSaveResultToFile'/>
+      <ref name='xsltSaveResultToFilename'/>
+      <ref name='xsltSaveResultToString'/>
+      <ref name='xsltSetCtxtParseOptions'/>
+      <ref name='xsltSetCtxtSortFunc'/>
+      <ref name='xsltSetDebuggerCallbacks'/>
+      <ref name='xsltSetDebuggerStatus'/>
+      <ref name='xsltSetGenericDebugFunc'/>
+      <ref name='xsltSetGenericErrorFunc'/>
+      <ref name='xsltSetSortFunc'/>
+      <ref name='xsltSetTransformErrorFunc'/>
+      <ref name='xsltSplitQName'/>
+      <ref name='xsltTimestamp'/>
+      <ref name='xsltTransformError'/>
+      <ref name='xsltXPathCompile'/>
+    </file>
+  </files>
+  <index>
+    <chunk name='chunk0'>
+      <letter name='A'>
+        <word name='API'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='AVT'>
+          <ref name='xsltEvalAVT'/>
+          <ref name='xsltFreeAVTList'/>
+        </word>
+        <word name='Add'>
+          <ref name='xslAddCall'/>
+        </word>
+        <word name='Allocate'>
+          <ref name='xsltAllocateExtra'/>
+          <ref name='xsltAllocateExtraCtxt'/>
+        </word>
+        <word name='Apache'>
+          <ref name='XSLT_XALAN_NAMESPACE'/>
+        </word>
+        <word name='Apply'>
+          <ref name='xsltApplyAttributeSet'/>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='Attribute'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+      </letter>
+      <letter name='C'>
+        <word name='CDTATA'>
+          <ref name='xsltFindElemSpaceHandling'/>
+        </word>
+        <word name='Change'>
+          <ref name='xsltSetCtxtParseOptions'/>
+        </word>
+        <word name='Char'>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='Characters:'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='Check'>
+          <ref name='IS_XSLT_REAL_NODE'/>
+          <ref name='xsltCheckExtPrefix'/>
+          <ref name='xsltCheckRead'/>
+          <ref name='xsltCheckWrite'/>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+          <ref name='xsltIsBlank'/>
+        </word>
+        <word name='Checks'>
+          <ref name='IS_XSLT_ELEM'/>
+          <ref name='IS_XSLT_NAME'/>
+          <ref name='xsltNeedElemSpaceHandling'/>
+        </word>
+        <word name='Clark'>
+          <ref name='XSLT_XT_NAMESPACE'/>
+        </word>
+        <word name='Clean-up'>
+          <ref name='xsltParseTemplateContent'/>
+        </word>
+        <word name='Cleanup'>
+          <ref name='xsltCleanupTemplates'/>
+        </word>
+        <word name='Compile'>
+          <ref name='xsltCompilePattern'/>
+          <ref name='xsltXPathCompile'/>
+        </word>
+        <word name='Computes'>
+          <ref name='xsltInitCtxtKeys'/>
+        </word>
+        <word name='Context'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='Control'>
+          <ref name='XSLT_TRACE'/>
+        </word>
+        <word name='Convert'>
+          <ref name='xsltNumberFormat'/>
+        </word>
+        <word name='Create'>
+          <ref name='xsltCopyTextString'/>
+          <ref name='xsltCreateRVT'/>
+          <ref name='xsltNewSecurityPrefs'/>
+          <ref name='xsltNewStylesheet'/>
+          <ref name='xsltNewTransformContext'/>
+        </word>
+        <word name='Creates'>
+          <ref name='xsltNewElemPreComp'/>
+        </word>
+      </letter>
+      <letter name='D'>
+        <word name='DTD'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='Deallocates'>
+          <ref name='xsltElemPreCompDeallocator'/>
+        </word>
+        <word name='Debugging'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='DecimalFormat'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='Display'>
+          <ref name='xsltPrintErrorContext'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='Drop'>
+          <ref name='xslDropCall'/>
+        </word>
+        <word name='Dumps'>
+          <ref name='xsltDebugDumpExtensions'/>
+        </word>
+      </letter>
+      <letter name='E'>
+        <word name='EXSLT'>
+          <ref name='xsltDocumentElem'/>
+        </word>
+        <word name='Each'>
+          <ref name='xsltEvalUserParams'/>
+        </word>
+        <word name='Element'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='Errors'>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='Evaluate'>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltEvalUserParams'/>
+        </word>
+        <word name='Extensions'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+      </letter>
+      <letter name='F'>
+        <word name='FILE'>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltDebugDumpExtensions'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSaveProfiling'/>
+          <ref name='xsltSaveResultToFile'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='FIXED'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='Find'>
+          <ref name='xsltDecimalFormatGetByName'/>
+          <ref name='xsltFindElemSpaceHandling'/>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltGetSpecialNamespace'/>
+          <ref name='xsltNextImport'/>
+        </word>
+        <word name='Finds'>
+          <ref name='xsltFindTemplate'/>
+          <ref name='xsltGetTemplate'/>
+        </word>
+        <word name='Flag'>
+          <ref name='_xsltFormatNumberInfo'/>
+        </word>
+        <word name='For'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltEvalOneUserParam'/>
+        </word>
+        <word name='Free'>
+          <ref name='xsltFreeAVTList'/>
+          <ref name='xsltFreeAttributeSetsHashes'/>
+          <ref name='xsltFreeCompMatchList'/>
+          <ref name='xsltFreeCtxtExts'/>
+          <ref name='xsltFreeDocumentKeys'/>
+          <ref name='xsltFreeDocuments'/>
+          <ref name='xsltFreeExts'/>
+          <ref name='xsltFreeGlobalVariables'/>
+          <ref name='xsltFreeKeys'/>
+          <ref name='xsltFreeNamespaceAliasHashes'/>
+          <ref name='xsltFreeRVTs'/>
+          <ref name='xsltFreeSecurityPrefs'/>
+          <ref name='xsltFreeStackElemList'/>
+          <ref name='xsltFreeStyleDocuments'/>
+          <ref name='xsltFreeStylePreComps'/>
+          <ref name='xsltFreeStylesheet'/>
+          <ref name='xsltFreeTemplateHashes'/>
+          <ref name='xsltFreeTransformContext'/>
+        </word>
+        <word name='Function'>
+          <ref name='xsltGetUTF8Char'/>
+          <ref name='xsltSecurityAllow'/>
+          <ref name='xsltSecurityForbid'/>
+          <ref name='xsltSetCtxtSortFunc'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetSortFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+        </word>
+      </letter>
+      <letter name='G'>
+        <word name='General'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='Get'>
+          <ref name='xsltDebugGetDefaultTrace'/>
+          <ref name='xsltGetDebuggerStatus'/>
+          <ref name='xsltGetDefaultSecurityPrefs'/>
+        </word>
+        <word name='Global'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+      </letter>
+      <letter name='H'>
+        <word name='Handle'>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+        </word>
+      </letter>
+      <letter name='I'>
+        <word name='IObuf'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='ISO'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='Implement'>
+          <ref name='xsltDocumentFunction'/>
+          <ref name='xsltElementAvailableFunction'/>
+          <ref name='xsltFormatNumberFunction'/>
+          <ref name='xsltFunctionAvailableFunction'/>
+          <ref name='xsltFunctionNodeSet'/>
+          <ref name='xsltGenerateIdFunction'/>
+          <ref name='xsltKeyFunction'/>
+          <ref name='xsltSystemPropertyFunction'/>
+          <ref name='xsltUnparsedEntityURIFunction'/>
+        </word>
+        <word name='Initialize'>
+          <ref name='xsltInitCtxtExts'/>
+        </word>
+        <word name='Initializes'>
+          <ref name='xsltInitElemPreComp'/>
+        </word>
+      </letter>
+      <letter name='J'>
+        <word name='JDK'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='James'>
+          <ref name='XSLT_XT_NAMESPACE'/>
+        </word>
+      </letter>
+      <letter name='K'>
+        <word name='Kay'>
+          <ref name='XSLT_SAXON_NAMESPACE'/>
+        </word>
+        <word name='Key'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+      </letter>
+      <letter name='L'>
+        <word name='Length'>
+          <ref name='xsltSaveResultToString'/>
+        </word>
+        <word name='Literal'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='Load'>
+          <ref name='xsltParseStylesheetFile'/>
+        </word>
+        <word name='LocationPathPattern'>
+          <ref name='xsltCompilePattern'/>
+        </word>
+        <word name='Looks'>
+          <ref name='xsltExtElementLookup'/>
+          <ref name='xsltExtModuleElementLookup'/>
+          <ref name='xsltExtModuleElementPreComputeLookup'/>
+          <ref name='xsltExtModuleFunctionLookup'/>
+          <ref name='xsltExtModuleTopLevelLookup'/>
+        </word>
+        <word name='Lookup'>
+          <ref name='xsltGetKey'/>
+          <ref name='xsltGetSecurityPrefs'/>
+        </word>
+      </letter>
+      <letter name='M'>
+        <word name='MUST'>
+          <ref name='xsltInitElemPreComp'/>
+        </word>
+        <word name='Macro'>
+          <ref name='CHECK_STOPPED'/>
+          <ref name='CHECK_STOPPED0'/>
+          <ref name='CHECK_STOPPEDE'/>
+          <ref name='XML_CAST_FPTR'/>
+          <ref name='XSLT_RUNTIME_EXTRA'/>
+          <ref name='XSLT_RUNTIME_EXTRA_FREE'/>
+          <ref name='XSLT_RUNTIME_EXTRA_LST'/>
+          <ref name='XSLT_STRANGE'/>
+          <ref name='XSLT_TODO'/>
+        </word>
+        <word name='Max'>
+          <ref name='XSLT_MAX_SORT'/>
+        </word>
+        <word name='May'>
+          <ref name='_xsltDecimalFormat'/>
+        </word>
+        <word name='Meaning'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='Memory'>
+          <ref name='xsltSaveResultToString'/>
+        </word>
+        <word name='Michael'>
+          <ref name='XSLT_SAXON_NAMESPACE'/>
+        </word>
+      </letter>
+      <letter name='N'>
+        <word name='NCName'>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='NOTE:'>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='Name'>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+        </word>
+        <word name='Namespace'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='Namespaces'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='Norm'>
+          <ref name='XSLT_NORM_SAXON_NAMESPACE'/>
+        </word>
+        <word name='Not-a-number'>
+          <ref name='_xsltDecimalFormat'/>
+        </word>
+        <word name='Notation:'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='Number'>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='_xsltStylesheet'/>
+        </word>
+      </letter>
+      <letter name='O'>
+        <word name='One'>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='Otherwise'>
+          <ref name='xsltDoSortFunction'/>
+        </word>
+        <word name='Output'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+      </letter>
+      <letter name='P'>
+        <word name='Parser'>
+          <ref name='xsltDocumentFunction'/>
+          <ref name='xsltElementAvailableFunction'/>
+          <ref name='xsltFormatNumberFunction'/>
+          <ref name='xsltFunctionAvailableFunction'/>
+          <ref name='xsltFunctionNodeSet'/>
+          <ref name='xsltGenerateIdFunction'/>
+          <ref name='xsltKeyFunction'/>
+          <ref name='xsltSystemPropertyFunction'/>
+          <ref name='xsltUnparsedEntityURIFunction'/>
+        </word>
+        <word name='Pattern'>
+          <ref name='xsltCompilePattern'/>
+        </word>
+        <word name='Per'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='Pre'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='xsltDocumentComp'/>
+        </word>
+        <word name='Precompile'>
+          <ref name='xsltCompileAttr'/>
+        </word>
+        <word name='Precompute'>
+          <ref name='xsltStylePreCompute'/>
+        </word>
+        <word name='Precomputed'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='Precomputes'>
+          <ref name='xsltPreComputeExtModuleElement'/>
+        </word>
+        <word name='Process'>
+          <ref name='xsltApplyImports'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltApplyTemplates'/>
+          <ref name='xsltAttrTemplateProcess'/>
+          <ref name='xsltAttrTemplateValueProcess'/>
+          <ref name='xsltAttrTemplateValueProcessNode'/>
+          <ref name='xsltAttribute'/>
+          <ref name='xsltCallTemplate'/>
+          <ref name='xsltChoose'/>
+          <ref name='xsltComment'/>
+          <ref name='xsltCopy'/>
+          <ref name='xsltCopyOf'/>
+          <ref name='xsltDebug'/>
+          <ref name='xsltDocumentElem'/>
+          <ref name='xsltElement'/>
+          <ref name='xsltEvalAVT'/>
+          <ref name='xsltEvalXPathPredicate'/>
+          <ref name='xsltEvalXPathString'/>
+          <ref name='xsltEvalXPathStringNs'/>
+          <ref name='xsltForEach'/>
+          <ref name='xsltIf'/>
+          <ref name='xsltMessage'/>
+          <ref name='xsltNumber'/>
+          <ref name='xsltProcessingInstruction'/>
+          <ref name='xsltTemplateProcess'/>
+          <ref name='xsltText'/>
+          <ref name='xsltValueOf'/>
+        </word>
+        <word name='Profiling'>
+          <ref name='_xsltTemplate'/>
+        </word>
+        <word name='Provides'>
+          <ref name='xsltGetXIncludeDefault'/>
+          <ref name='xsltXPathGetTransformContext'/>
+        </word>
+      </letter>
+    </chunk>
+    <chunk name='chunk1'>
+      <letter name='Q'>
+        <word name='QName'>
+          <ref name='_xsltStackElem'/>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltGetQNameURI2'/>
+          <ref name='xsltSplitQName'/>
+        </word>
+        <word name='QNames'>
+          <ref name='xsltSplitQName'/>
+        </word>
+      </letter>
+      <letter name='R'>
+        <word name='RVT'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='RVTs'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='Read'>
+          <ref name='xsltGetUTF8Char'/>
+          <ref name='xsltNamespaceAlias'/>
+        </word>
+        <word name='Register'>
+          <ref name='xsltAddTemplate'/>
+          <ref name='xsltNewDocument'/>
+          <ref name='xsltNewStyleDocument'/>
+          <ref name='xsltRegisterExtModule'/>
+          <ref name='xsltRegisterExtModuleFull'/>
+          <ref name='xsltRegisterPersistRVT'/>
+          <ref name='xsltRegisterTmpRVT'/>
+        </word>
+        <word name='Registering'>
+          <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
+          <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
+        </word>
+        <word name='Registers'>
+          <ref name='xsltRegisterAllElement'/>
+          <ref name='xsltRegisterAllExtras'/>
+          <ref name='xsltRegisterAllFunctions'/>
+          <ref name='xsltRegisterExtElement'/>
+          <ref name='xsltRegisterExtFunction'/>
+          <ref name='xsltRegisterExtModuleElement'/>
+          <ref name='xsltRegisterExtModuleFunction'/>
+          <ref name='xsltRegisterExtModuleTopLevel'/>
+          <ref name='xsltRegisterExtPrefix'/>
+          <ref name='xsltRegisterExtras'/>
+          <ref name='xsltRegisterTestModule'/>
+        </word>
+        <word name='Result'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='Retrieve'>
+          <ref name='xsltGetExtData'/>
+          <ref name='xsltStyleGetExtData'/>
+        </word>
+      </letter>
+      <letter name='S'>
+        <word name='SAX'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='SAXON'>
+          <ref name='XSLT_NORM_SAXON_NAMESPACE'/>
+        </word>
+        <word name='Sampling'>
+          <ref name='XSLT_TIMESTAMP_TICS_PER_SEC'/>
+        </word>
+        <word name='Save'>
+          <ref name='xsltSaveProfiling'/>
+          <ref name='xsltSaveResultTo'/>
+          <ref name='xsltSaveResultToFd'/>
+          <ref name='xsltSaveResultToFile'/>
+          <ref name='xsltSaveResultToFilename'/>
+          <ref name='xsltSaveResultToString'/>
+        </word>
+        <word name='Saxon'>
+          <ref name='XSLT_SAXON_NAMESPACE'/>
+        </word>
+        <word name='Scaling'>
+          <ref name='_xsltFormatNumberInfo'/>
+        </word>
+        <word name='Search'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltVariableLookup'/>
+        </word>
+        <word name='Set'>
+          <ref name='xsltDebugSetDefaultTrace'/>
+          <ref name='xsltSetCtxtSecurityPrefs'/>
+          <ref name='xsltSetDefaultSecurityPrefs'/>
+          <ref name='xsltSetLoaderFunc'/>
+          <ref name='xsltSetXIncludeDefault'/>
+        </word>
+        <word name='Should'>
+          <ref name='xsltInitCtxtKeys'/>
+        </word>
+        <word name='Shutdown'>
+          <ref name='xsltShutdownCtxtExts'/>
+          <ref name='xsltShutdownExts'/>
+        </word>
+        <word name='Signature'>
+          <ref name='xsltSortFunc'/>
+          <ref name='xsltTransformFunction'/>
+        </word>
+        <word name='Similar'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='Size'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='Special'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='Specific'>
+          <ref name='XSLT_PAT_NO_PRIORITY'/>
+        </word>
+        <word name='Speed'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='Split'>
+          <ref name='xsltSplitQName'/>
+        </word>
+        <word name='Strip'>
+          <ref name='xsltApplyStripSpaces'/>
+        </word>
+        <word name='Structure:'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='Stylesheet'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltNewStylesheet'/>
+        </word>
+        <word name='Symbol'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+      </letter>
+      <letter name='T'>
+        <word name='Template'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='Test'>
+          <ref name='xsltTestCompMatchList'/>
+        </word>
+        <word name='TransformContext'>
+          <ref name='xsltNewTransformContext'/>
+        </word>
+        <word name='Tree'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='Try'>
+          <ref name='xsltFindDocument'/>
+          <ref name='xsltLoadDocument'/>
+          <ref name='xsltLoadStyleDocument'/>
+        </word>
+      </letter>
+      <letter name='U'>
+        <word name='URL'>
+          <ref name='XSLT_DEFAULT_URL'/>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='xsltParseStylesheetFile'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSaveResultToFilename'/>
+          <ref name='xsltSecurityCheck'/>
+        </word>
+        <word name='UTF-8'>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='UTF8'>
+          <ref name='xsltGetUTF8Char'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='Unregister'>
+          <ref name='xsltCleanupGlobals'/>
+          <ref name='xsltUnregisterExtModule'/>
+        </word>
+        <word name='Unregisters'>
+          <ref name='xsltUnregisterExtModuleElement'/>
+          <ref name='xsltUnregisterExtModuleFunction'/>
+          <ref name='xsltUnregisterExtModuleTopLevel'/>
+        </word>
+        <word name='Update'>
+          <ref name='xsltSetSecurityPrefs'/>
+        </word>
+        <word name='Used'>
+          <ref name='_xsltDecimalFormat'/>
+          <ref name='xsltCalibrateAdjust'/>
+          <ref name='xsltTimestamp'/>
+        </word>
+        <word name='User'>
+          <ref name='xsltSecurityCheck'/>
+        </word>
+      </letter>
+      <letter name='V'>
+        <word name='Value'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='Variable'>
+          <ref name='xsltVariableLookup'/>
+        </word>
+      </letter>
+      <letter name='W'>
+        <word name='WITH_XSLT_DEBUG_BREAKPOINTS'>
+          <ref name='xslAddCall'/>
+        </word>
+        <word name='Will'>
+          <ref name='CHECK_STOPPED'/>
+          <ref name='CHECK_STOPPED0'/>
+          <ref name='CHECK_STOPPEDE'/>
+        </word>
+      </letter>
+      <letter name='X'>
+        <word name='XALAN'>
+          <ref name='XSLT_XALAN_NAMESPACE'/>
+        </word>
+        <word name='XInclude'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltGetXIncludeDefault'/>
+          <ref name='xsltSetXIncludeDefault'/>
+        </word>
+        <word name='XML'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltApplyStripSpaces'/>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltFindDocument'/>
+          <ref name='xsltFindElemSpaceHandling'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltNewDocument'/>
+          <ref name='xsltNewStyleDocument'/>
+          <ref name='xsltParseStylesheetDoc'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+          <ref name='xsltParseStylesheetProcess'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSaveResultToString'/>
+        </word>
+        <word name='XML_CAST_FPTR'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='XSLT-1'>
+          <ref name='xsltDocumentComp'/>
+          <ref name='xsltDocumentElem'/>
+        </word>
+        <word name='XSLT_GET_IMPORT_PTR'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+      </letter>
+      <letter name='a'>
+        <word name='absent'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='accelerators'>
+          <ref name='_xsltNumberData'/>
+        </word>
+        <word name='access'>
+          <ref name='XSLT_RUNTIME_EXTRA_LST'/>
+        </word>
+        <word name='according'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='accordingly'>
+          <ref name='xsltComputeSortResult'/>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltDocumentSortFunction'/>
+        </word>
+        <word name='activated'>
+          <ref name='xsltCopyTextString'/>
+        </word>
+        <word name='actual'>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltRegisterExtElement'/>
+          <ref name='xsltRegisterExtFunction'/>
+        </word>
+        <word name='actually'>
+          <ref name='xsltXPathFunctionLookup'/>
+          <ref name='xsltXPathVariableLookup'/>
+        </word>
+        <word name='add'>
+          <ref name='xsltAddKey'/>
+          <ref name='xsltAddStackElemList'/>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltGetSpecialNamespace'/>
+        </word>
+        <word name='added'>
+          <ref name='xsltCopyNamespace'/>
+          <ref name='xsltCopyNamespaceList'/>
+        </word>
+        <word name='adding'>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
+        <word name='address'>
+          <ref name='xsltSetDebuggerCallbacks'/>
+        </word>
+        <word name='after'>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='alias'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='aliases'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltCopyNamespace'/>
+          <ref name='xsltCopyNamespaceList'/>
+          <ref name='xsltFreeNamespaceAliasHashes'/>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+        </word>
+        <word name='aliasing'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='all'>
+          <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
+          <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltCleanupGlobals'/>
+          <ref name='xsltFreeCompMatchList'/>
+          <ref name='xsltFreeDocuments'/>
+          <ref name='xsltFreeRVTs'/>
+          <ref name='xsltFreeStyleDocuments'/>
+          <ref name='xsltFreeStylePreComps'/>
+          <ref name='xsltInitCtxtKeys'/>
+          <ref name='xsltRegisterAllElement'/>
+          <ref name='xsltRegisterAllFunctions'/>
+        </word>
+        <word name='allocated'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltFreeCompMatchList'/>
+          <ref name='xsltFreeStackElemList'/>
+          <ref name='xsltFreeStylePreComps'/>
+          <ref name='xsltFreeStylesheet'/>
+          <ref name='xsltFreeTransformContext'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltNewStylesheet'/>
+          <ref name='xsltNewTransformContext'/>
+          <ref name='xsltSaveResultToString'/>
+          <ref name='xsltSplitQName'/>
+        </word>
+        <word name='allow'>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltSecurityAllow'/>
+          <ref name='xsltSetDebuggerCallbacks'/>
+        </word>
+        <word name='allowed'>
+          <ref name='xsltCheckRead'/>
+          <ref name='xsltCheckWrite'/>
+        </word>
+        <word name='allowing'>
+          <ref name='xsltAttrTemplateValueProcessNode'/>
+          <ref name='xsltEvalXPathStringNs'/>
+        </word>
+        <word name='already'>
+          <ref name='_xsltDocument'/>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='also'>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='always'>
+          <ref name='xsltSecurityAllow'/>
+          <ref name='xsltSecurityForbid'/>
+        </word>
+        <word name='amiss'>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
+        <word name='analyzes'>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='anchored'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='another'>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='any'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltInitElemPreComp'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='anymore'>
+          <ref name='xsltDocumentSortFunction'/>
+        </word>
+        <word name='api'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='appear'>
+          <ref name='_xsltDecimalFormat'/>
+        </word>
+        <word name='appears'>
+          <ref name='_xsltFormatNumberInfo'/>
+        </word>
+        <word name='application-wide'>
+          <ref name='xsltGetDefaultSecurityPrefs'/>
+          <ref name='xsltSetDefaultSecurityPrefs'/>
+        </word>
+        <word name='applied'>
+          <ref name='xslAddCall'/>
+        </word>
+        <word name='applies'>
+          <ref name='xslHandleDebugger'/>
+        </word>
+        <word name='apply'>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltFindTemplate'/>
+          <ref name='xsltNewDocument'/>
+          <ref name='xsltNewStyleDocument'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='apply-imports'>
+          <ref name='xsltApplyImports'/>
+        </word>
+        <word name='apply-templates'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltApplyTemplates'/>
+        </word>
+        <word name='applying'>
+          <ref name='xsltGetTemplate'/>
+          <ref name='xsltSaveResultTo'/>
+          <ref name='xsltSaveResultToFd'/>
+          <ref name='xsltSaveResultToFile'/>
+          <ref name='xsltSaveResultToFilename'/>
+          <ref name='xsltSaveResultToString'/>
+        </word>
+        <word name='are'>
+          <ref name='_xsltDocument'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltCopyNamespace'/>
+          <ref name='xsltCopyNamespaceList'/>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltInitCtxtKeys'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='argument'>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='arguments'>
+          <ref name='xsltDocumentFunction'/>
+          <ref name='xsltElementAvailableFunction'/>
+          <ref name='xsltFormatNumberFunction'/>
+          <ref name='xsltFunctionAvailableFunction'/>
+          <ref name='xsltFunctionNodeSet'/>
+          <ref name='xsltGenerateIdFunction'/>
+          <ref name='xsltKeyFunction'/>
+          <ref name='xsltSystemPropertyFunction'/>
+          <ref name='xsltUnparsedEntityURIFunction'/>
+        </word>
+        <word name='array'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltComputeSortResult'/>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltVariableLookup'/>
+        </word>
+        <word name='arry'>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='associated'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltAddTemplate'/>
+          <ref name='xsltExtShutdownFunction'/>
+          <ref name='xsltFreeAVTList'/>
+          <ref name='xsltFreeDocumentKeys'/>
+          <ref name='xsltFreeGlobalVariables'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetExtData'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltParseStylesheetDoc'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+          <ref name='xsltParseStylesheetProcess'/>
+          <ref name='xsltRegisterExtElement'/>
+          <ref name='xsltRegisterExtFunction'/>
+          <ref name='xsltRegisterExtModule'/>
+          <ref name='xsltRegisterExtModuleFull'/>
+          <ref name='xsltRegisterExtPrefix'/>
+          <ref name='xsltStyleExtShutdownFunction'/>
+          <ref name='xsltStyleGetExtData'/>
+          <ref name='xsltTransformFunction'/>
+          <ref name='xsltUnregisterExtModule'/>
+          <ref name='xsltXPathGetTransformContext'/>
+        </word>
+        <word name='attached'>
+          <ref name='xsltCopyTextString'/>
+          <ref name='xsltSort'/>
+        </word>
+        <word name='attempt'>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='attribute-set'>
+          <ref name='xsltParseStylesheetAttributeSet'/>
+        </word>
+        <word name='attributes'>
+          <ref name='xsltAttrListTemplateProcess'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltNamespaceAlias'/>
+        </word>
+        <word name='attrubute'>
+          <ref name='xsltCompileAttr'/>
+        </word>
+        <word name='automatically'>
+          <ref name='xsltCopyNamespace'/>
+          <ref name='xsltCopyNamespaceList'/>
+        </word>
+        <word name='available'>
+          <ref name='xsltFunctionNodeSet'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='availble'>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='average='>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+      </letter>
+    </chunk>
+    <chunk name='chunk2'>
+      <letter name='b'>
+        <word name='based'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='basically'>
+          <ref name='xsltCompileAttr'/>
+        </word>
+        <word name='been'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='before'>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltInitCtxtKeys'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='beginning'>
+          <ref name='xsltTimestamp'/>
+        </word>
+        <word name='being'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xslAddCall'/>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltGetTemplate'/>
+          <ref name='xsltPrintErrorContext'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSetXIncludeDefault'/>
+        </word>
+        <word name='between'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltResolveStylesheetAttributeSet'/>
+        </word>
+        <word name='blank'>
+          <ref name='xsltParseTemplateContent'/>
+        </word>
+        <word name='blanks'>
+          <ref name='xsltIsBlank'/>
+        </word>
+        <word name='block'>
+          <ref name='xsltFreeSecurityPrefs'/>
+          <ref name='xsltGetSecurityPrefs'/>
+          <ref name='xsltNewSecurityPrefs'/>
+          <ref name='xsltSecurityAllow'/>
+          <ref name='xsltSecurityForbid'/>
+          <ref name='xsltSetCtxtSecurityPrefs'/>
+          <ref name='xsltSetDebuggerCallbacks'/>
+          <ref name='xsltSetDefaultSecurityPrefs'/>
+          <ref name='xsltSetSecurityPrefs'/>
+        </word>
+        <word name='blocks'>
+          <ref name='XSLT_TODO'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltFreeStylePreComps'/>
+        </word>
+        <word name='boolean'>
+          <ref name='xsltElementAvailableFunction'/>
+          <ref name='xsltFunctionAvailableFunction'/>
+        </word>
+        <word name='both'>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSplitQName'/>
+        </word>
+        <word name='braces'>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+        </word>
+        <word name='breakpoint'>
+          <ref name='xslHandleDebugger'/>
+        </word>
+        <word name='broke'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='buffer'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSaveResultTo'/>
+        </word>
+        <word name='build'>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='building'>
+          <ref name='xsltParseStylesheetDoc'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+        </word>
+        <word name='built-in'>
+          <ref name='xsltRegisterAllExtras'/>
+          <ref name='xsltRegisterExtras'/>
+        </word>
+        <word name='but'>
+          <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
+          <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltGetQNameURI2'/>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltParseStylesheetCallerParam'/>
+          <ref name='xsltQuoteUserParams'/>
+          <ref name='xsltSort'/>
+          <ref name='xsltXPathFunctionLookup'/>
+          <ref name='xsltXPathVariableLookup'/>
+        </word>
+        <word name='bypass'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='byte'>
+          <ref name='xsltSaveResultTo'/>
+          <ref name='xsltSaveResultToFilename'/>
+          <ref name='xsltSaveResultToString'/>
+        </word>
+        <word name='bytes'>
+          <ref name='xsltGetUTF8Char'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltSaveResultToFd'/>
+          <ref name='xsltSaveResultToFile'/>
+        </word>
+      </letter>
+      <letter name='c'>
+        <word name='calibration'>
+          <ref name='xsltCalibrateAdjust'/>
+        </word>
+        <word name='call'>
+          <ref name='xslAddCall'/>
+          <ref name='xslDropCall'/>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+        <word name='call-template'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='xsltCallTemplate'/>
+        </word>
+        <word name='callback'>
+          <ref name='xsltExtElementLookup'/>
+          <ref name='xsltExtModuleElementLookup'/>
+          <ref name='xsltExtModuleElementPreComputeLookup'/>
+          <ref name='xsltExtModuleTopLevelLookup'/>
+          <ref name='xsltGetSecurityPrefs'/>
+          <ref name='xsltRegisterExtModuleElement'/>
+          <ref name='xsltRegisterExtModuleFunction'/>
+          <ref name='xsltRegisterExtModuleTopLevel'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSetDebuggerCallbacks'/>
+          <ref name='xsltSetSecurityPrefs'/>
+          <ref name='xsltXPathFunctionLookup'/>
+        </word>
+        <word name='callbacks'>
+          <ref name='xsltSetDebuggerCallbacks'/>
+        </word>
+        <word name='called'>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltExtInitFunction'/>
+          <ref name='xsltExtShutdownFunction'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltInitElemPreComp'/>
+          <ref name='xsltQuoteOneUserParam'/>
+          <ref name='xsltRegisterExtElement'/>
+          <ref name='xsltRegisterExtFunction'/>
+          <ref name='xsltSetCtxtSortFunc'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+          <ref name='xsltSort'/>
+          <ref name='xsltStyleExtInitFunction'/>
+          <ref name='xsltStyleExtShutdownFunction'/>
+          <ref name='xsltXPathGetTransformContext'/>
+        </word>
+        <word name='caller'>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltAttrTemplateValueProcess'/>
+          <ref name='xsltAttrTemplateValueProcessNode'/>
+          <ref name='xsltEvalAVT'/>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltEvalXPathString'/>
+          <ref name='xsltEvalXPathStringNs'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltXPathCompile'/>
+        </word>
+        <word name='calls='>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='can'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltExtElementLookup'/>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltParseTemplateContent'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='cascading'>
+          <ref name='XSLT_GET_IMPORT_INT'/>
+          <ref name='XSLT_GET_IMPORT_PTR'/>
+        </word>
+        <word name='cases'>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='casting'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='catch'>
+          <ref name='_xsltFormatNumberInfo'/>
+        </word>
+        <word name='chained'>
+          <ref name='_xsltDecimalFormat'/>
+          <ref name='_xsltDocument'/>
+          <ref name='_xsltElemPreComp'/>
+          <ref name='_xsltStackElem'/>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='_xsltTemplate'/>
+        </word>
+        <word name='channel'>
+          <ref name='xsltSaveResultTo'/>
+        </word>
+        <word name='char'>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='character'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='characters'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='chars'>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='xsltIsBlank'/>
+        </word>
+        <word name='check'>
+          <ref name='CHECK_STOPPED'/>
+          <ref name='CHECK_STOPPED0'/>
+          <ref name='CHECK_STOPPEDE'/>
+          <ref name='xsltSecurityCheck'/>
+        </word>
+        <word name='checking'>
+          <ref name='xsltGetSecurityPrefs'/>
+          <ref name='xsltSetSecurityPrefs'/>
+        </word>
+        <word name='checks'>
+          <ref name='xsltCompileAttr'/>
+        </word>
+        <word name='choose'>
+          <ref name='xsltChoose'/>
+        </word>
+        <word name='class:'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='close'>
+          <ref name='xsltSaveResultToFd'/>
+          <ref name='xsltSaveResultToFile'/>
+        </word>
+        <word name='coalescing'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='com'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='combination'>
+          <ref name='xsltSetCtxtParseOptions'/>
+        </word>
+        <word name='coming'>
+          <ref name='xsltCompileAttr'/>
+        </word>
+        <word name='comment'>
+          <ref name='xsltComment'/>
+        </word>
+        <word name='common'>
+          <ref name='_xsltElemPreComp'/>
+        </word>
+        <word name='comp'>
+          <ref name='xsltFreeCompMatchList'/>
+        </word>
+        <word name='compilation'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltXPathCompile'/>
+        </word>
+        <word name='compiled'>
+          <ref name='_xsltStackElem'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltEvalXPathPredicate'/>
+          <ref name='xsltEvalXPathString'/>
+          <ref name='xsltEvalXPathStringNs'/>
+          <ref name='xsltNormalizeCompSteps'/>
+          <ref name='xsltTransformFunction'/>
+        </word>
+        <word name='compiling'>
+          <ref name='xsltAllocateExtra'/>
+        </word>
+        <word name='completed'>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='compression'>
+          <ref name='xsltSaveResultToFilename'/>
+        </word>
+        <word name='computations'>
+          <ref name='xsltNewDocument'/>
+          <ref name='xsltNewStyleDocument'/>
+        </word>
+        <word name='compute'>
+          <ref name='xsltParseStylesheetCallerParam'/>
+        </word>
+        <word name='computed'>
+          <ref name='_xsltStackElem'/>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltAttrTemplateValueProcess'/>
+          <ref name='xsltAttrTemplateValueProcessNode'/>
+          <ref name='xsltEvalAVT'/>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltEvalXPathString'/>
+          <ref name='xsltEvalXPathStringNs'/>
+          <ref name='xsltLoadDocument'/>
+          <ref name='xsltLoadStyleDocument'/>
+          <ref name='xsltTemplateProcess'/>
+        </word>
+        <word name='construct'>
+          <ref name='xsltMessage'/>
+        </word>
+        <word name='consumption'>
+          <ref name='XSLT_PARSE_OPTIONS'/>
+        </word>
+        <word name='contain'>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+        </word>
+        <word name='contained'>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='container'>
+          <ref name='xsltParseTemplateContent'/>
+        </word>
+        <word name='containing'>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltCompilePattern'/>
+          <ref name='xsltMessage'/>
+          <ref name='xsltSetDebuggerCallbacks'/>
+        </word>
+        <word name='contains'>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='content'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltParseTemplateContent'/>
+        </word>
+        <word name='content-model'>
+          <ref name='xsltParseTemplateContent'/>
+        </word>
+        <word name='control'>
+          <ref name='xslHandleDebugger'/>
+        </word>
+        <word name='copied'>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='copy'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='xsltAttrListTemplateProcess'/>
+          <ref name='xsltAttrTemplateProcess'/>
+          <ref name='xsltCopy'/>
+          <ref name='xsltCopyNamespace'/>
+          <ref name='xsltCopyNamespaceList'/>
+        </word>
+        <word name='copy-of'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='xsltCopyOf'/>
+        </word>
+        <word name='correct'>
+          <ref name='xsltCalibrateAdjust'/>
+        </word>
+        <word name='corresponding'>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltNamespaceAlias'/>
+        </word>
+        <word name='create'>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltGetSpecialNamespace'/>
+        </word>
+        <word name='creating'>
+          <ref name='xsltCheckWrite'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='cur'>
+          <ref name='xslHandleDebugger'/>
+        </word>
+        <word name='curly'>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+        </word>
+        <word name='current'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xslAddCall'/>
+          <ref name='xsltComputeSortResult'/>
+          <ref name='xsltDebug'/>
+          <ref name='xsltDebugGetDefaultTrace'/>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltDocumentElem'/>
+          <ref name='xsltDocumentSortFunction'/>
+          <ref name='xsltGetDefaultSecurityPrefs'/>
+          <ref name='xsltGetTemplate'/>
+          <ref name='xsltInitCtxtKeys'/>
+          <ref name='xsltMessage'/>
+          <ref name='xsltNextImport'/>
+          <ref name='xsltPrintErrorContext'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='currently'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+      </letter>
+    </chunk>
+    <chunk name='chunk3'>
+      <letter name='d'>
+        <word name='data'>
+          <ref name='_xsltRuntimeExtra'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltDocumentComp'/>
+          <ref name='xsltExtInitFunction'/>
+          <ref name='xsltExtShutdownFunction'/>
+          <ref name='xsltFreeCtxtExts'/>
+          <ref name='xsltFreeGlobalVariables'/>
+          <ref name='xsltGetExtData'/>
+          <ref name='xsltInitCtxtExts'/>
+          <ref name='xsltInitElemPreComp'/>
+          <ref name='xsltNumberFormat'/>
+          <ref name='xsltPreComputeExtModuleElement'/>
+          <ref name='xsltStyleExtInitFunction'/>
+          <ref name='xsltStyleExtShutdownFunction'/>
+          <ref name='xsltStyleGetExtData'/>
+          <ref name='xsltTimestamp'/>
+          <ref name='xsltXPathGetTransformContext'/>
+        </word>
+        <word name='deallocated'>
+          <ref name='xsltAttrTemplateValueProcess'/>
+          <ref name='xsltAttrTemplateValueProcessNode'/>
+          <ref name='xsltEvalAVT'/>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltEvalXPathString'/>
+          <ref name='xsltEvalXPathStringNs'/>
+        </word>
+        <word name='deallocation'>
+          <ref name='_xsltRuntimeExtra'/>
+        </word>
+        <word name='deallocator'>
+          <ref name='_xsltElemPreComp'/>
+          <ref name='xsltInitElemPreComp'/>
+        </word>
+        <word name='dealy'>
+          <ref name='xsltCalibrateAdjust'/>
+        </word>
+        <word name='debug'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltDebug'/>
+          <ref name='xsltDebugGetDefaultTrace'/>
+          <ref name='xsltDebugSetDefaultTrace'/>
+        </word>
+        <word name='debugger'>
+          <ref name='xsltSetDebuggerCallbacks'/>
+        </word>
+        <word name='debugging'>
+          <ref name='xslHandleDebugger'/>
+        </word>
+        <word name='debugtrace'>
+          <ref name='XSLT_TRACE'/>
+        </word>
+        <word name='decalaration'>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltGetSpecialNamespace'/>
+        </word>
+        <word name='decimal'>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='decimal-format'>
+          <ref name='xsltDecimalFormatGetByName'/>
+        </word>
+        <word name='declaration'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltParseGlobalParam'/>
+          <ref name='xsltParseGlobalVariable'/>
+          <ref name='xsltParseStylesheetCallerParam'/>
+          <ref name='xsltParseStylesheetParam'/>
+          <ref name='xsltParseStylesheetVariable'/>
+        </word>
+        <word name='declared'>
+          <ref name='xsltCheckExtPrefix'/>
+        </word>
+        <word name='default'>
+          <ref name='XSLT_DEFAULT_VERSION'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltDebugGetDefaultTrace'/>
+          <ref name='xsltDebugSetDefaultTrace'/>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetDefaultSecurityPrefs'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltGetXIncludeDefault'/>
+          <ref name='xsltRegisterAllElement'/>
+          <ref name='xsltRegisterAllFunctions'/>
+          <ref name='xsltSetCtxtParseOptions'/>
+          <ref name='xsltSetDefaultSecurityPrefs'/>
+          <ref name='xsltSetLoaderFunc'/>
+          <ref name='xsltSetSortFunc'/>
+          <ref name='xsltSetXIncludeDefault'/>
+        </word>
+        <word name='define'>
+          <ref name='XML_CAST_FPTR'/>
+          <ref name='XSLT_RUNTIME_EXTRA'/>
+        </word>
+        <word name='defined'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xslAddCall'/>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='definition'>
+          <ref name='xsltAddKey'/>
+        </word>
+        <word name='definitions'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='deprecated'>
+          <ref name='xsltRegisterExtras'/>
+        </word>
+        <word name='derived'>
+          <ref name='xsltInitElemPreComp'/>
+        </word>
+        <word name='description'>
+          <ref name='xsltEvalOneUserParam'/>
+        </word>
+        <word name='descriptions'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='descriptor'>
+          <ref name='xsltSaveResultToFd'/>
+        </word>
+        <word name='desired'>
+          <ref name='xsltFindDocument'/>
+          <ref name='xsltGetExtInfo'/>
+        </word>
+        <word name='destruction'>
+          <ref name='xsltRegisterPersistRVT'/>
+          <ref name='xsltRegisterTmpRVT'/>
+        </word>
+        <word name='details'>
+          <ref name='xsltEvalOneUserParam'/>
+        </word>
+        <word name='detected'>
+          <ref name='XSLT_STRANGE'/>
+        </word>
+        <word name='dictionary'>
+          <ref name='xsltGetQNameURI2'/>
+        </word>
+        <word name='dictionnary'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltSplitQName'/>
+        </word>
+        <word name='dictionnary:'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='different'>
+          <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
+          <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='digit'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='directly'>
+          <ref name='xsltSort'/>
+        </word>
+        <word name='directories'>
+          <ref name='xsltCheckWrite'/>
+        </word>
+        <word name='disable-escaping'>
+          <ref name='xsltCopyTextString'/>
+        </word>
+        <word name='disabled'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='discard'>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='display'>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='doc'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='docs'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='doctype-public'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='doctype-system'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='documents'>
+          <ref name='_xsltDocument'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltFreeDocuments'/>
+          <ref name='xsltFreeStyleDocuments'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+        </word>
+        <word name='does'>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltSaveResultToFd'/>
+          <ref name='xsltSaveResultToFile'/>
+        </word>
+        <word name='doesn'>
+          <ref name='xsltParseStylesheetCallerParam'/>
+          <ref name='xsltTestCompMatchList'/>
+        </word>
+        <word name='done'>
+          <ref name='_xsltDocument'/>
+          <ref name='_xsltStackElem'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltCompilePattern'/>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltInitCtxtKeys'/>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='dump'>
+          <ref name='xsltProfileStylesheet'/>
+        </word>
+        <word name='during'>
+          <ref name='xsltSortFunc'/>
+        </word>
+      </letter>
+      <letter name='e'>
+        <word name='either'>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='element-available'>
+          <ref name='xsltElementAvailableFunction'/>
+        </word>
+        <word name='elements'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltDebugDumpExtensions'/>
+          <ref name='xsltExtElementLookup'/>
+          <ref name='xsltFreeCompMatchList'/>
+          <ref name='xsltRegisterAllElement'/>
+          <ref name='xsltTransformFunction'/>
+        </word>
+        <word name='else'>
+          <ref name='xsltGetExtInfo'/>
+        </word>
+        <word name='emitted'>
+          <ref name='XSLT_TRACE'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='encoded'>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='encoding'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='encountering'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='end'>
+          <ref name='_xsltElemPreComp'/>
+          <ref name='xsltRegisterPersistRVT'/>
+          <ref name='xsltRegisterTmpRVT'/>
+        </word>
+        <word name='engine'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltSetCtxtParseOptions'/>
+        </word>
+        <word name='entity'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='entry'>
+          <ref name='xsltGetQNameURI2'/>
+          <ref name='xsltNormalizeCompSteps'/>
+          <ref name='xsltXPathFunctionLookup'/>
+          <ref name='xsltXPathVariableLookup'/>
+        </word>
+        <word name='error:'>
+          <ref name='CHECK_STOPPEDE'/>
+        </word>
+        <word name='errors'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='establish'>
+          <ref name='xsltCompileAttr'/>
+        </word>
+        <word name='eval'>
+          <ref name='_xsltStackElem'/>
+        </word>
+        <word name='evaluate'>
+          <ref name='xsltEvalXPathPredicate'/>
+        </word>
+        <word name='evaluated'>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='evaluation'>
+          <ref name='_xsltStackElem'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='everything'>
+          <ref name='xsltFindElemSpaceHandling'/>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
+        <word name='example'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltXPathGetTransformContext'/>
+        </word>
+        <word name='except'>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+        </word>
+        <word name='excluded'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='executed'>
+          <ref name='xslHandleDebugger'/>
+        </word>
+        <word name='exension'>
+          <ref name='xsltGetExtData'/>
+          <ref name='xsltStyleGetExtData'/>
+        </word>
+        <word name='existing'>
+          <ref name='xsltInitElemPreComp'/>
+        </word>
+        <word name='expressed'>
+          <ref name='XSLT_PAT_NO_PRIORITY'/>
+        </word>
+        <word name='expression'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltEvalXPathPredicate'/>
+          <ref name='xsltEvalXPathString'/>
+          <ref name='xsltEvalXPathStringNs'/>
+          <ref name='xsltXPathCompile'/>
+        </word>
+        <word name='expressions'>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='extInfos'>
+          <ref name='xsltGetExtInfo'/>
+        </word>
+        <word name='extending'>
+          <ref name='xsltInitElemPreComp'/>
+        </word>
+        <word name='extensions'>
+          <ref name='XSLT_LIBXSLT_NAMESPACE'/>
+          <ref name='XSLT_NORM_SAXON_NAMESPACE'/>
+          <ref name='XSLT_SAXON_NAMESPACE'/>
+          <ref name='XSLT_XALAN_NAMESPACE'/>
+          <ref name='XSLT_XT_NAMESPACE'/>
+          <ref name='xsltCheckExtPrefix'/>
+          <ref name='xsltFreeExts'/>
+          <ref name='xsltRegisterAllExtras'/>
+          <ref name='xsltRegisterExtras'/>
+        </word>
+        <word name='external'>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='extra'>
+          <ref name='XSLT_RUNTIME_EXTRA'/>
+          <ref name='XSLT_RUNTIME_EXTRA_FREE'/>
+          <ref name='XSLT_RUNTIME_EXTRA_LST'/>
+          <ref name='_xsltRuntimeExtra'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltAllocateExtra'/>
+          <ref name='xsltAllocateExtraCtxt'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='extract'>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='extras'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+      </letter>
+    </chunk>
+    <chunk name='chunk4'>
+      <letter name='f'>
+        <word name='factor'>
+          <ref name='xsltSaveResultToFilename'/>
+        </word>
+        <word name='failure'>
+          <ref name='xsltAddKey'/>
+          <ref name='xsltAddStackElemList'/>
+          <ref name='xsltCompilePattern'/>
+          <ref name='xsltParseStylesheetImport'/>
+          <ref name='xsltParseStylesheetInclude'/>
+          <ref name='xsltRegisterExtElement'/>
+          <ref name='xsltRegisterExtFunction'/>
+          <ref name='xsltRegisterExtPrefix'/>
+          <ref name='xsltSaveResultTo'/>
+          <ref name='xsltSaveResultToFd'/>
+          <ref name='xsltSaveResultToFile'/>
+          <ref name='xsltSaveResultToFilename'/>
+          <ref name='xsltSaveResultToString'/>
+          <ref name='xsltTestCompMatchList'/>
+        </word>
+        <word name='fast'>
+          <ref name='xsltCompilePattern'/>
+        </word>
+        <word name='file'>
+          <ref name='xsltSaveResultToFd'/>
+          <ref name='xsltSaveResultToFilename'/>
+          <ref name='xsltSaveResultToString'/>
+          <ref name='xsltSecurityCheck'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='filename'>
+          <ref name='xsltParseStylesheetFile'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSaveResultToFilename'/>
+        </word>
+        <word name='files'>
+          <ref name='XSLT_PARSE_OPTIONS'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='find'>
+          <ref name='xsltDecimalFormatGetByName'/>
+          <ref name='xsltFindDocument'/>
+        </word>
+        <word name='first'>
+          <ref name='xsltAttrListTemplateProcess'/>
+          <ref name='xsltCopyNamespaceList'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='flag'>
+          <ref name='XSLT_STRANGE'/>
+          <ref name='XSLT_TODO'/>
+        </word>
+        <word name='following'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='for-each'>
+          <ref name='xsltForEach'/>
+        </word>
+        <word name='forbid'>
+          <ref name='xsltSecurityForbid'/>
+        </word>
+        <word name='force'>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='form'>
+          <ref name='_xsltStackElem'/>
+          <ref name='xsltCompilePattern'/>
+        </word>
+        <word name='format'>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltNumberFormat'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='format-number'>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltFormatNumberFunction'/>
+        </word>
+        <word name='formats'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='formatting'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltNumberFormat'/>
+        </word>
+        <word name='found'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltCalibrateAdjust'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltExtElementLookup'/>
+          <ref name='xsltExtModuleElementLookup'/>
+          <ref name='xsltExtModuleElementPreComputeLookup'/>
+          <ref name='xsltExtModuleFunctionLookup'/>
+          <ref name='xsltExtModuleTopLevelLookup'/>
+          <ref name='xsltFindTemplate'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetExtInfo'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltGetSecurityPrefs'/>
+          <ref name='xsltGetTemplate'/>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltVariableLookup'/>
+          <ref name='xsltXPathFunctionLookup'/>
+          <ref name='xsltXPathVariableLookup'/>
+        </word>
+        <word name='fptr'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='fraction'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='fractional'>
+          <ref name='_xsltFormatNumberInfo'/>
+        </word>
+        <word name='fraction}{suffix}'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='free'>
+          <ref name='XSLT_RUNTIME_EXTRA_FREE'/>
+          <ref name='xsltElemPreCompDeallocator'/>
+          <ref name='xsltFreeSecurityPrefs'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltXPathCompile'/>
+        </word>
+        <word name='freed'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='from'>
+          <ref name='CHECK_STOPPED'/>
+          <ref name='CHECK_STOPPED0'/>
+          <ref name='XML_CAST_FPTR'/>
+          <ref name='XSLT_GET_IMPORT_INT'/>
+          <ref name='XSLT_GET_IMPORT_PTR'/>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltApplyStripSpaces'/>
+          <ref name='xsltCompileAttr'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltGetKey'/>
+          <ref name='xsltGetUTF8Char'/>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltParseTemplateContent'/>
+          <ref name='xsltQuoteOneUserParam'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSplitQName'/>
+          <ref name='xsltTransformFunction'/>
+          <ref name='xsltUnregisterExtModule'/>
+          <ref name='xsltXPathCompile'/>
+          <ref name='xsltXPathGetTransformContext'/>
+        </word>
+        <word name='full'>
+          <ref name='xsltSplitQName'/>
+        </word>
+        <word name='function-available'>
+          <ref name='xsltFunctionAvailableFunction'/>
+        </word>
+        <word name='functions'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltDebugDumpExtensions'/>
+          <ref name='xsltRegisterAllFunctions'/>
+        </word>
+      </letter>
+      <letter name='g'>
+        <word name='gathering'>
+          <ref name='xsltTimestamp'/>
+        </word>
+        <word name='gcc'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='gcc4'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='general'>
+          <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
+          <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
+        </word>
+        <word name='generally'>
+          <ref name='xsltInitElemPreComp'/>
+        </word>
+        <word name='generate'>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='generate-id'>
+          <ref name='xsltGenerateIdFunction'/>
+        </word>
+        <word name='generated'>
+          <ref name='xsltCompilePattern'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSaveResultToString'/>
+        </word>
+        <word name='generates'>
+          <ref name='xsltCompilePattern'/>
+        </word>
+        <word name='get'>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltEvalXPathString'/>
+          <ref name='xsltEvalXPathStringNs'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltGetSecurityPrefs'/>
+        </word>
+        <word name='given'>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltAttrTemplateProcess'/>
+          <ref name='xsltAttrTemplateValueProcess'/>
+          <ref name='xsltAttrTemplateValueProcessNode'/>
+          <ref name='xsltCheckExtPrefix'/>
+          <ref name='xsltEvalAVT'/>
+          <ref name='xsltGetExtData'/>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+          <ref name='xsltStyleGetExtData'/>
+          <ref name='xsltTemplateProcess'/>
+          <ref name='xsltVariableLookup'/>
+        </word>
+        <word name='gives'>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='giving'>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltQuoteOneUserParam'/>
+        </word>
+        <word name='global'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltCleanupGlobals'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltFreeGlobalVariables'/>
+          <ref name='xsltInitCtxtKeys'/>
+          <ref name='xsltQuoteOneUserParam'/>
+          <ref name='xsltSetCtxtSortFunc'/>
+          <ref name='xsltSetSortFunc'/>
+        </word>
+        <word name='goto'>
+          <ref name='CHECK_STOPPEDE'/>
+        </word>
+        <word name='grafted'>
+          <ref name='xsltAttrListTemplateProcess'/>
+        </word>
+        <word name='group'>
+          <ref name='_xsltFormatNumberInfo'/>
+        </word>
+        <word name='grouping'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+      </letter>
+      <letter name='h'>
+        <word name='handle'>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetLoaderFunc'/>
+        </word>
+        <word name='handler'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltNewDocument'/>
+          <ref name='xsltNewStyleDocument'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSetCtxtSortFunc'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetSortFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+        </word>
+        <word name='handles'>
+          <ref name='xsltCopyNamespace'/>
+          <ref name='xsltCopyNamespaceList'/>
+        </word>
+        <word name='handling'>
+          <ref name='_xsltElemPreComp'/>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+        </word>
+        <word name='has'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltXPathCompile'/>
+        </word>
+        <word name='hash'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltGetExtInfo'/>
+          <ref name='xsltNormalizeCompSteps'/>
+          <ref name='xsltQuoteOneUserParam'/>
+        </word>
+        <word name='hashtable'>
+          <ref name='xsltNormalizeCompSteps'/>
+        </word>
+        <word name='have'>
+          <ref name='xsltEvalOneUserParam'/>
+        </word>
+        <word name='hence'>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='holding'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltGetQNameURI2'/>
+        </word>
+        <word name='hosting'>
+          <ref name='xsltAttrTemplateValueProcessNode'/>
+          <ref name='xsltEvalAVT'/>
+        </word>
+        <word name='html'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='http:'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+      </letter>
+    </chunk>
+    <chunk name='chunk5'>
+      <letter name='i'>
+        <word name='ignorable'>
+          <ref name='xsltApplyStripSpaces'/>
+          <ref name='xsltIsBlank'/>
+          <ref name='xsltParseTemplateContent'/>
+        </word>
+        <word name='implementation'>
+          <ref name='xsltRegisterExtElement'/>
+          <ref name='xsltRegisterExtFunction'/>
+        </word>
+        <word name='implemented'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='import'>
+          <ref name='XSLT_GET_IMPORT_INT'/>
+          <ref name='XSLT_GET_IMPORT_PTR'/>
+          <ref name='xsltFindElemSpaceHandling'/>
+          <ref name='xsltFindTemplate'/>
+          <ref name='xsltNextImport'/>
+          <ref name='xsltParseStylesheetImport'/>
+        </word>
+        <word name='imported'>
+          <ref name='xsltGetTemplate'/>
+          <ref name='xsltNormalizeCompSteps'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+        </word>
+        <word name='imports'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltCleanupTemplates'/>
+        </word>
+        <word name='in-scope'>
+          <ref name='xsltEvalXPathStringNs'/>
+        </word>
+        <word name='include'>
+          <ref name='xsltParseStylesheetInclude'/>
+        </word>
+        <word name='included'>
+          <ref name='xsltSaveResultToFilename'/>
+        </word>
+        <word name='includes'>
+          <ref name='_xsltDocument'/>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='inclusive'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='indented'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='index'>
+          <ref name='nr'/>
+        </word>
+        <word name='indicating'>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+        <word name='indicator'>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+        </word>
+        <word name='info'>
+          <ref name='xsltEvalAVT'/>
+        </word>
+        <word name='information'>
+          <ref name='XSLT_RUNTIME_EXTRA'/>
+          <ref name='XSLT_RUNTIME_EXTRA_FREE'/>
+          <ref name='XSLT_RUNTIME_EXTRA_LST'/>
+          <ref name='xsltAllocateExtra'/>
+          <ref name='xsltAllocateExtraCtxt'/>
+          <ref name='xsltApplyImports'/>
+          <ref name='xsltApplyTemplates'/>
+          <ref name='xsltAttribute'/>
+          <ref name='xsltCallTemplate'/>
+          <ref name='xsltChoose'/>
+          <ref name='xsltComment'/>
+          <ref name='xsltCopy'/>
+          <ref name='xsltCopyOf'/>
+          <ref name='xsltDocumentElem'/>
+          <ref name='xsltElement'/>
+          <ref name='xsltForEach'/>
+          <ref name='xsltIf'/>
+          <ref name='xsltNumber'/>
+          <ref name='xsltParseStylesheetOutput'/>
+          <ref name='xsltProcessingInstruction'/>
+          <ref name='xsltSort'/>
+          <ref name='xsltText'/>
+          <ref name='xsltTransformFunction'/>
+          <ref name='xsltValueOf'/>
+        </word>
+        <word name='informations'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTemplate'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltDebug'/>
+          <ref name='xsltFindElemSpaceHandling'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltNumberFormat'/>
+          <ref name='xsltSaveProfiling'/>
+        </word>
+        <word name='inherited'>
+          <ref name='_xsltTemplate'/>
+        </word>
+        <word name='initial'>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltGetQNameURI2'/>
+        </word>
+        <word name='initialization'>
+          <ref name='xsltExtInitFunction'/>
+          <ref name='xsltRegisterExtModule'/>
+          <ref name='xsltRegisterExtModuleFull'/>
+          <ref name='xsltStyleExtInitFunction'/>
+        </word>
+        <word name='initialized'>
+          <ref name='xsltInitCtxtExts'/>
+          <ref name='xsltInitCtxtKeys'/>
+          <ref name='xsltNewElemPreComp'/>
+        </word>
+        <word name='initializes'>
+          <ref name='xsltNewElemPreComp'/>
+        </word>
+        <word name='input'>
+          <ref name='xsltApplyStripSpaces'/>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltGetSpecialNamespace'/>
+          <ref name='xsltInitCtxtKeys'/>
+          <ref name='xsltNewTransformContext'/>
+          <ref name='xsltTransformFunction'/>
+        </word>
+        <word name='insertion'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='instances'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='instead'>
+          <ref name='xsltRegisterExtras'/>
+        </word>
+        <word name='instruction'>
+          <ref name='_xsltElemPreComp'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltAddKey'/>
+          <ref name='xsltDebug'/>
+          <ref name='xsltDocumentComp'/>
+          <ref name='xsltDocumentElem'/>
+          <ref name='xsltMessage'/>
+          <ref name='xsltStylePreCompute'/>
+        </word>
+        <word name='integer'>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='interface'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='intergers'>
+          <ref name='XSLT_GET_IMPORT_INT'/>
+        </word>
+        <word name='internalized'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='internally'>
+          <ref name='XSLT_STRANGE'/>
+        </word>
+        <word name='interpretation'>
+          <ref name='_xsltDecimalFormat'/>
+        </word>
+        <word name='interpreter'>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltXPathGetTransformContext'/>
+        </word>
+        <word name='interpretor'>
+          <ref name='xsltXPathFunctionLookup'/>
+          <ref name='xsltXPathVariableLookup'/>
+        </word>
+        <word name='into'>
+          <ref name='xsltSetDebuggerCallbacks'/>
+          <ref name='xsltSplitQName'/>
+        </word>
+        <word name='item'>
+          <ref name='xslDropCall'/>
+        </word>
+        <word name='item1'>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='item2|item3'>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='its'>
+          <ref name='xsltAllocateExtra'/>
+          <ref name='xsltAllocateExtraCtxt'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltFreeGlobalVariables'/>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltGetSpecialNamespace'/>
+          <ref name='xsltParseGlobalParam'/>
+          <ref name='xsltParseGlobalVariable'/>
+          <ref name='xsltParseStylesheetCallerParam'/>
+          <ref name='xsltParseStylesheetParam'/>
+          <ref name='xsltParseStylesheetVariable'/>
+        </word>
+        <word name='itself'>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+      </letter>
+      <letter name='j'>
+        <word name='java'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='jdk'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+      </letter>
+      <letter name='k'>
+        <word name='keeping'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='kept'>
+          <ref name='_xsltDocument'/>
+        </word>
+        <word name='key'>
+          <ref name='_xsltDocument'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltAddKey'/>
+          <ref name='xsltGetKey'/>
+          <ref name='xsltKeyFunction'/>
+          <ref name='xsltNewDocument'/>
+          <ref name='xsltNewStyleDocument'/>
+        </word>
+        <word name='keys'>
+          <ref name='xsltFreeDocumentKeys'/>
+          <ref name='xsltFreeKeys'/>
+          <ref name='xsltInitCtxtKeys'/>
+        </word>
+        <word name='kind'>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+        <word name='known'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+      </letter>
+      <letter name='l'>
+        <word name='label'>
+          <ref name='CHECK_STOPPEDE'/>
+        </word>
+        <word name='language'>
+          <ref name='xsltTransformFunction'/>
+        </word>
+        <word name='last'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltNextImport'/>
+        </word>
+        <word name='later'>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+        <word name='lead'>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='left'>
+          <ref name='xsltApplyOneTemplate'/>
+        </word>
+        <word name='len'>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='level'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltAddStackElemList'/>
+          <ref name='xsltDebugGetDefaultTrace'/>
+          <ref name='xsltDebugSetDefaultTrace'/>
+        </word>
+        <word name='library'>
+          <ref name='xsltCleanupGlobals'/>
+          <ref name='xsltRegisterExtModule'/>
+          <ref name='xsltRegisterExtModuleFull'/>
+          <ref name='xsltSetDebuggerCallbacks'/>
+          <ref name='xsltUnregisterExtModule'/>
+        </word>
+        <word name='libxml2'>
+          <ref name='xsltGetUTF8Char'/>
+          <ref name='xsltSetCtxtParseOptions'/>
+        </word>
+        <word name='libxslt'>
+          <ref name='XSLT_LIBXSLT_NAMESPACE'/>
+          <ref name='xsltFunctionNodeSet'/>
+        </word>
+        <word name='lifespan'>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='like'>
+          <ref name='xsltCheckWrite'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltSecurityCheck'/>
+          <ref name='xsltTransformFunction'/>
+        </word>
+        <word name='line'>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='literal'>
+          <ref name='xsltParseTemplateContent'/>
+        </word>
+        <word name='literally'>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='load'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltLoadDocument'/>
+          <ref name='xsltLoadStyleDocument'/>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltSetLoaderFunc'/>
+        </word>
+        <word name='loaded'>
+          <ref name='xsltFreeDocuments'/>
+          <ref name='xsltFreeStyleDocuments'/>
+          <ref name='xsltSetXIncludeDefault'/>
+          <ref name='xsltShutdownCtxtExts'/>
+          <ref name='xsltShutdownExts'/>
+        </word>
+        <word name='loading'>
+          <ref name='XSLT_PARSE_OPTIONS'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltSetCtxtParseOptions'/>
+          <ref name='xsltSetLoaderFunc'/>
+        </word>
+        <word name='local'>
+          <ref name='_xsltStackElem'/>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltSplitQName'/>
+        </word>
+        <word name='localname'>
+          <ref name='xsltSplitQName'/>
+        </word>
+        <word name='locate'>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='location'>
+          <ref name='_xsltStackElem'/>
+        </word>
+        <word name='look'>
+          <ref name='xsltGetKey'/>
+          <ref name='xsltGetTemplate'/>
+        </word>
+        <word name='looks'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetExtInfo'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='lookup'>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltGetSecurityPrefs'/>
+        </word>
+        <word name='lost'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+      </letter>
+      <letter name='m'>
+        <word name='macro'>
+          <ref name='XML_CAST_FPTR'/>
+          <ref name='XSLT_GET_IMPORT_INT'/>
+          <ref name='XSLT_GET_IMPORT_PTR'/>
+          <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
+          <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='made'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltIsBlank'/>
+        </word>
+        <word name='main'>
+          <ref name='_xsltDocument'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='make'>
+          <ref name='xsltAllocateExtraCtxt'/>
+          <ref name='xsltGetPlainNamespace'/>
+        </word>
+        <word name='makes'>
+          <ref name='xsltCheckWrite'/>
+        </word>
+        <word name='mapping'>
+          <ref name='xsltAttrTemplateValueProcessNode'/>
+          <ref name='xsltEvalXPathStringNs'/>
+        </word>
+        <word name='mask'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltDebugGetDefaultTrace'/>
+          <ref name='xsltDebugSetDefaultTrace'/>
+        </word>
+        <word name='match'>
+          <ref name='xsltAddKey'/>
+          <ref name='xsltNormalizeCompSteps'/>
+        </word>
+        <word name='match='>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='matches'>
+          <ref name='xsltTestCompMatchList'/>
+        </word>
+        <word name='matching'>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltCompilePattern'/>
+        </word>
+        <word name='may'>
+          <ref name='_xsltDecimalFormat'/>
+          <ref name='xslAddCall'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='means'>
+          <ref name='xsltGetTemplate'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+        </word>
+        <word name='mechanism'>
+          <ref name='xsltFreeTemplateHashes'/>
+        </word>
+        <word name='memory'>
+          <ref name='xsltFreeAVTList'/>
+          <ref name='xsltFreeAttributeSetsHashes'/>
+          <ref name='xsltFreeCompMatchList'/>
+          <ref name='xsltFreeExts'/>
+          <ref name='xsltFreeKeys'/>
+          <ref name='xsltFreeNamespaceAliasHashes'/>
+          <ref name='xsltFreeStackElemList'/>
+          <ref name='xsltFreeStylePreComps'/>
+          <ref name='xsltFreeStylesheet'/>
+          <ref name='xsltFreeTemplateHashes'/>
+          <ref name='xsltFreeTransformContext'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltSetDebuggerCallbacks'/>
+        </word>
+        <word name='message'>
+          <ref name='xsltMessage'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='messages'>
+          <ref name='XSLT_TRACE'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='method'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='mille'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='milliseconds'>
+          <ref name='xsltTimestamp'/>
+        </word>
+        <word name='mode'>
+          <ref name='_xsltTemplate'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltAddTemplate'/>
+        </word>
+        <word name='mode='>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='modified'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='modules'>
+          <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
+          <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
+          <ref name='xsltInitCtxtExts'/>
+          <ref name='xsltShutdownCtxtExts'/>
+          <ref name='xsltShutdownExts'/>
+        </word>
+        <word name='more'>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='multiple'>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='multiply'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='must'>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltAttrTemplateValueProcess'/>
+          <ref name='xsltAttrTemplateValueProcessNode'/>
+          <ref name='xsltEvalAVT'/>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltEvalXPathString'/>
+          <ref name='xsltEvalXPathStringNs'/>
+        </word>
+      </letter>
+    </chunk>
+    <chunk name='chunk6'>
+      <letter name='n'>
+        <word name='name='>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='named'>
+          <ref name='xsltFindTemplate'/>
+        </word>
+        <word name='names'>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltQuoteUserParams'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSplitQName'/>
+        </word>
+        <word name='namespace-alias'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='namespaces'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltCopyNamespace'/>
+          <ref name='xsltCopyNamespaceList'/>
+          <ref name='xsltEvalXPathPredicate'/>
+          <ref name='xsltEvalXPathStringNs'/>
+          <ref name='xsltFreeNamespaceAliasHashes'/>
+        </word>
+        <word name='necessary'>
+          <ref name='xsltCheckWrite'/>
+        </word>
+        <word name='need'>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='needed'>
+          <ref name='xsltCompileAttr'/>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltGetSpecialNamespace'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+          <ref name='xsltXPathFunctionLookup'/>
+          <ref name='xsltXPathGetTransformContext'/>
+          <ref name='xsltXPathVariableLookup'/>
+        </word>
+        <word name='needs'>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltGetTemplate'/>
+        </word>
+        <word name='negative'>
+          <ref name='xsltCalibrateAdjust'/>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='nested'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='newly'>
+          <ref name='xsltNewStylesheet'/>
+          <ref name='xsltNewTransformContext'/>
+        </word>
+        <word name='next'>
+          <ref name='xsltGetTemplate'/>
+          <ref name='xsltNextImport'/>
+        </word>
+        <word name='node-set'>
+          <ref name='xsltDocumentFunction'/>
+          <ref name='xsltFunctionNodeSet'/>
+          <ref name='xsltKeyFunction'/>
+          <ref name='xsltSortFunc'/>
+        </word>
+        <word name='node-set?'>
+          <ref name='xsltDocumentFunction'/>
+          <ref name='xsltGenerateIdFunction'/>
+        </word>
+        <word name='nodelist'>
+          <ref name='xsltApplyOneTemplate'/>
+        </word>
+        <word name='nodes'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltComputeSortResult'/>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltParseTemplateContent'/>
+          <ref name='xsltSort'/>
+        </word>
+        <word name='nodeset'>
+          <ref name='xsltComputeSortResult'/>
+          <ref name='xsltGetKey'/>
+        </word>
+        <word name='non-NULL'>
+          <ref name='xsltCopyNamespace'/>
+          <ref name='xsltCopyNamespaceList'/>
+          <ref name='xsltGetTemplate'/>
+        </word>
+        <word name='non-excluded'>
+          <ref name='_xsltTemplate'/>
+        </word>
+        <word name='non-wellformed'>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='none'>
+          <ref name='xsltGetDefaultSecurityPrefs'/>
+        </word>
+        <word name='nor'>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='normalize'>
+          <ref name='xsltNormalizeCompSteps'/>
+        </word>
+        <word name='normally'>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltQuoteOneUserParam'/>
+        </word>
+        <word name='now'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='null'>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltQuoteOneUserParam'/>
+        </word>
+      </letter>
+      <letter name='o'>
+        <word name='object'>
+          <ref name='XML_CAST_FPTR'/>
+          <ref name='xsltDocumentFunction'/>
+          <ref name='xsltKeyFunction'/>
+          <ref name='xsltSystemPropertyFunction'/>
+          <ref name='xsltXPathCompile'/>
+        </word>
+        <word name='obsolete'>
+          <ref name='xsltDocumentSortFunction'/>
+        </word>
+        <word name='obtained'>
+          <ref name='xsltSaveResultTo'/>
+          <ref name='xsltSaveResultToFd'/>
+          <ref name='xsltSaveResultToFile'/>
+          <ref name='xsltSaveResultToFilename'/>
+          <ref name='xsltSaveResultToString'/>
+        </word>
+        <word name='occcur'>
+          <ref name='xslHandleDebugger'/>
+        </word>
+        <word name='occurences'>
+          <ref name='_xsltFormatNumberInfo'/>
+        </word>
+        <word name='off'>
+          <ref name='xslDropCall'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='old'>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='once'>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='one'>
+          <ref name='xsltCheckExtPrefix'/>
+          <ref name='xsltGetTemplate'/>
+          <ref name='xsltGetUTF8Char'/>
+          <ref name='xsltNextImport'/>
+          <ref name='xsltNumberFormat'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltTestCompMatchList'/>
+        </word>
+        <word name='one:'>
+          <ref name='IS_XSLT_REAL_NODE'/>
+        </word>
+        <word name='ones'>
+          <ref name='xsltCleanupTemplates'/>
+        </word>
+        <word name='only'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltExtElementLookup'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='open'>
+          <ref name='xsltSaveResultToFd'/>
+          <ref name='xsltSaveResultToFile'/>
+        </word>
+        <word name='operation'>
+          <ref name='xsltSecurityAllow'/>
+          <ref name='xsltSecurityForbid'/>
+        </word>
+        <word name='optimization'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='option'>
+          <ref name='xsltGetSecurityPrefs'/>
+          <ref name='xsltSetCtxtParseOptions'/>
+          <ref name='xsltSetSecurityPrefs'/>
+        </word>
+        <word name='options'>
+          <ref name='XSLT_PARSE_OPTIONS'/>
+          <ref name='xsltCheckRead'/>
+          <ref name='xsltCheckWrite'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltSetCtxtParseOptions'/>
+        </word>
+        <word name='order'>
+          <ref name='XSLT_GET_IMPORT_INT'/>
+          <ref name='XSLT_GET_IMPORT_PTR'/>
+          <ref name='xsltDocumentSortFunction'/>
+        </word>
+        <word name='ordered'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltComputeSortResult'/>
+        </word>
+        <word name='original'>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='other'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='otherwise'>
+          <ref name='xslAddCall'/>
+          <ref name='xsltAddTemplate'/>
+          <ref name='xsltCheckExtPrefix'/>
+          <ref name='xsltEvalXPathPredicate'/>
+          <ref name='xsltExtModuleElementLookup'/>
+          <ref name='xsltExtModuleElementPreComputeLookup'/>
+          <ref name='xsltExtModuleFunctionLookup'/>
+          <ref name='xsltExtModuleTopLevelLookup'/>
+          <ref name='xsltGetSecurityPrefs'/>
+          <ref name='xsltGetXIncludeDefault'/>
+          <ref name='xsltIsBlank'/>
+          <ref name='xsltSetCtxtSecurityPrefs'/>
+          <ref name='xsltSetSecurityPrefs'/>
+        </word>
+        <word name='ouput'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='out'>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+        </word>
+        <word name='own'>
+          <ref name='xsltApplyStylesheetUser'/>
+        </word>
+      </letter>
+      <letter name='p'>
+        <word name='param'>
+          <ref name='xsltParseGlobalParam'/>
+          <ref name='xsltParseStylesheetCallerParam'/>
+          <ref name='xsltParseStylesheetParam'/>
+        </word>
+        <word name='parameter'>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltParseStylesheetProcess'/>
+          <ref name='xsltQuoteOneUserParam'/>
+        </word>
+        <word name='parameters'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltQuoteOneUserParam'/>
+          <ref name='xsltQuoteUserParams'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='params'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltApplyOneTemplate'/>
+        </word>
+        <word name='parent'>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltGetSpecialNamespace'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+        </word>
+        <word name='parse'>
+          <ref name='xsltParseGlobalParam'/>
+          <ref name='xsltParseGlobalVariable'/>
+          <ref name='xsltParseStylesheetAttributeSet'/>
+          <ref name='xsltParseStylesheetCallerParam'/>
+          <ref name='xsltParseStylesheetDoc'/>
+          <ref name='xsltParseStylesheetFile'/>
+          <ref name='xsltParseStylesheetImport'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+          <ref name='xsltParseStylesheetInclude'/>
+          <ref name='xsltParseStylesheetOutput'/>
+          <ref name='xsltParseStylesheetParam'/>
+          <ref name='xsltParseStylesheetProcess'/>
+          <ref name='xsltParseStylesheetVariable'/>
+          <ref name='xsltParseTemplateContent'/>
+        </word>
+        <word name='parsed'>
+          <ref name='_xsltDocument'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltFindDocument'/>
+          <ref name='xsltNewDocument'/>
+          <ref name='xsltNewStyleDocument'/>
+          <ref name='xsltNewTransformContext'/>
+          <ref name='xsltParseStylesheetDoc'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+          <ref name='xsltParseStylesheetProcess'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltQuoteUserParams'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='parser'>
+          <ref name='xsltFreeTransformContext'/>
+          <ref name='xsltSetCtxtParseOptions'/>
+        </word>
+        <word name='parsing'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='part'>
+          <ref name='_xsltElemPreComp'/>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='_xsltStackElem'/>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltTransformFunction'/>
+        </word>
+        <word name='pass'>
+          <ref name='XSLT_PARSE_OPTIONS'/>
+          <ref name='xsltAttrTemplateValueProcessNode'/>
+          <ref name='xsltEvalXPathStringNs'/>
+        </word>
+        <word name='passed'>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltSetCtxtParseOptions'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='path'>
+          <ref name='xsltSecurityCheck'/>
+        </word>
+        <word name='pattern'>
+          <ref name='XSLT_PAT_NO_PRIORITY'/>
+          <ref name='_xsltDecimalFormat'/>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='xsltAddTemplate'/>
+          <ref name='xsltCompilePattern'/>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltTestCompMatchList'/>
+        </word>
+        <word name='patterns'>
+          <ref name='xsltTestCompMatchList'/>
+        </word>
+        <word name='per'>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='percent'>
+          <ref name='_xsltFormatNumberInfo'/>
+        </word>
+        <word name='percentage'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='permille'>
+          <ref name='_xsltFormatNumberInfo'/>
+        </word>
+        <word name='persistance'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='persistant'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='pertaining'>
+          <ref name='xsltXPathGetTransformContext'/>
+        </word>
+        <word name='pertains'>
+          <ref name='IS_XSLT_ELEM'/>
+        </word>
+        <word name='place'>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='placeholder'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='plug'>
+          <ref name='xsltSetDebuggerCallbacks'/>
+        </word>
+        <word name='point'>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='xsltXPathFunctionLookup'/>
+          <ref name='xsltXPathVariableLookup'/>
+        </word>
+        <word name='pointer'>
+          <ref name='XML_CAST_FPTR'/>
+          <ref name='_xsltRuntimeExtra'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='fptr'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltExtInitFunction'/>
+          <ref name='xsltFreeAVTList'/>
+          <ref name='xsltGetExtData'/>
+          <ref name='xsltGetExtInfo'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltGetQNameURI2'/>
+          <ref name='xsltGetUTF8Char'/>
+          <ref name='xsltNewSecurityPrefs'/>
+          <ref name='xsltNormalizeCompSteps'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+          <ref name='xsltSaveResultToString'/>
+          <ref name='xsltStyleExtInitFunction'/>
+          <ref name='xsltStyleGetExtData'/>
+        </word>
+        <word name='pointers'>
+          <ref name='XSLT_GET_IMPORT_PTR'/>
+        </word>
+        <word name='points'>
+          <ref name='xsltSetDebuggerCallbacks'/>
+        </word>
+        <word name='popped'>
+          <ref name='xsltApplyOneTemplate'/>
+        </word>
+        <word name='position'>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='possible'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='possibly'>
+          <ref name='xsltCheckExtPrefix'/>
+        </word>
+        <word name='pre-computation'>
+          <ref name='xsltExtModuleElementPreComputeLookup'/>
+          <ref name='xsltRegisterExtModuleElement'/>
+        </word>
+        <word name='pre-processing'>
+          <ref name='_xsltDocument'/>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='precedence'>
+          <ref name='xsltFindElemSpaceHandling'/>
+          <ref name='xsltFindTemplate'/>
+          <ref name='xsltNextImport'/>
+        </word>
+        <word name='precision'>
+          <ref name='XSLT_TIMESTAMP_TICS_PER_SEC'/>
+        </word>
+        <word name='precompiled'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltCompilePattern'/>
+          <ref name='xsltDocumentComp'/>
+          <ref name='xsltTestCompMatchList'/>
+        </word>
+        <word name='precomputed'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltApplyImports'/>
+          <ref name='xsltApplyTemplates'/>
+          <ref name='xsltAttribute'/>
+          <ref name='xsltCallTemplate'/>
+          <ref name='xsltChoose'/>
+          <ref name='xsltComment'/>
+          <ref name='xsltCopy'/>
+          <ref name='xsltCopyOf'/>
+          <ref name='xsltDebug'/>
+          <ref name='xsltDocumentElem'/>
+          <ref name='xsltElement'/>
+          <ref name='xsltForEach'/>
+          <ref name='xsltFreeStylePreComps'/>
+          <ref name='xsltIf'/>
+          <ref name='xsltInitElemPreComp'/>
+          <ref name='xsltNumber'/>
+          <ref name='xsltPreComputeExtModuleElement'/>
+          <ref name='xsltProcessingInstruction'/>
+          <ref name='xsltSort'/>
+          <ref name='xsltText'/>
+          <ref name='xsltValueOf'/>
+        </word>
+        <word name='predicate'>
+          <ref name='xsltEvalXPathPredicate'/>
+        </word>
+        <word name='preference'>
+          <ref name='xsltFreeSecurityPrefs'/>
+          <ref name='xsltGetDefaultSecurityPrefs'/>
+          <ref name='xsltNewSecurityPrefs'/>
+          <ref name='xsltSetCtxtSecurityPrefs'/>
+          <ref name='xsltSetDefaultSecurityPrefs'/>
+        </word>
+        <word name='preferences'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='prefix'>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltCheckExtPrefix'/>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltGetQNameURI2'/>
+          <ref name='xsltGetSpecialNamespace'/>
+          <ref name='xsltRegisterExtPrefix'/>
+          <ref name='xsltSplitQName'/>
+        </word>
+        <word name='prefixed'>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltGetQNameURI2'/>
+        </word>
+        <word name='prefixes'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='preliminary'>
+          <ref name='xsltCheckWrite'/>
+        </word>
+        <word name='present'>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+          <ref name='xsltGetExtData'/>
+          <ref name='xsltStyleGetExtData'/>
+        </word>
+        <word name='preserve'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='preserve-space'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltFindElemSpaceHandling'/>
+        </word>
+        <word name='previous'>
+          <ref name='xsltSetCtxtParseOptions'/>
+        </word>
+        <word name='prevompiled'>
+          <ref name='xsltEvalAVT'/>
+        </word>
+        <word name='printed'>
+          <ref name='xslAddCall'/>
+        </word>
+        <word name='priority'>
+          <ref name='XSLT_PAT_NO_PRIORITY'/>
+          <ref name='_xsltTemplate'/>
+        </word>
+        <word name='problem'>
+          <ref name='XSLT_STRANGE'/>
+        </word>
+        <word name='processed'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xslAddCall'/>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltAttrTemplateProcess'/>
+          <ref name='xsltGetTemplate'/>
+          <ref name='xsltPrintErrorContext'/>
+          <ref name='xsltSetXIncludeDefault'/>
+        </word>
+        <word name='processing'>
+          <ref name='CHECK_STOPPED'/>
+          <ref name='CHECK_STOPPED0'/>
+          <ref name='CHECK_STOPPEDE'/>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltAttrListTemplateProcess'/>
+          <ref name='xsltDebug'/>
+          <ref name='xsltDocumentElem'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltGetXIncludeDefault'/>
+          <ref name='xsltMessage'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+          <ref name='xsltRegisterPersistRVT'/>
+          <ref name='xsltSetXIncludeDefault'/>
+        </word>
+        <word name='processing-instruction'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltProcessingInstruction'/>
+        </word>
+        <word name='processor'>
+          <ref name='XSLT_DEFAULT_URL'/>
+          <ref name='XSLT_DEFAULT_VENDOR'/>
+          <ref name='XSLT_SAXON_NAMESPACE'/>
+          <ref name='XSLT_XALAN_NAMESPACE'/>
+          <ref name='XSLT_XT_NAMESPACE'/>
+        </word>
+        <word name='products'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='profile'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='profiled'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='profiling'>
+          <ref name='XSLT_TIMESTAMP_TICS_PER_SEC'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltSaveProfiling'/>
+          <ref name='xsltTimestamp'/>
+        </word>
+        <word name='progressive'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='project'>
+          <ref name='XSLT_XALAN_NAMESPACE'/>
+        </word>
+        <word name='provide'>
+          <ref name='xsltApplyStylesheetUser'/>
+        </word>
+        <word name='provided'>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltComputeSortResult'/>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSecurityCheck'/>
+        </word>
+        <word name='ptr'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='purpose'>
+          <ref name='XSLT_REGISTER_FUNCTION_LOOKUP'/>
+          <ref name='XSLT_REGISTER_VARIABLE_LOOKUP'/>
+        </word>
+        <word name='pushed'>
+          <ref name='xsltApplyOneTemplate'/>
+        </word>
+      </letter>
+    </chunk>
+    <chunk name='chunk7'>
+      <letter name='q'>
+        <word name='query'>
+          <ref name='xsltGetKey'/>
+        </word>
+        <word name='quote'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+      </letter>
+      <letter name='r'>
+        <word name='rank='>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='read'>
+          <ref name='xsltCheckRead'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='ready'>
+          <ref name='xsltAllocateExtraCtxt'/>
+        </word>
+        <word name='real'>
+          <ref name='IS_XSLT_REAL_NODE'/>
+          <ref name='xsltApplyOneTemplate'/>
+        </word>
+        <word name='record'>
+          <ref name='xsltParseGlobalParam'/>
+          <ref name='xsltParseGlobalVariable'/>
+          <ref name='xsltParseStylesheetCallerParam'/>
+          <ref name='xsltParseStylesheetOutput'/>
+          <ref name='xsltParseStylesheetParam'/>
+          <ref name='xsltParseStylesheetVariable'/>
+        </word>
+        <word name='references'>
+          <ref name='xsltResolveStylesheetAttributeSet'/>
+        </word>
+        <word name='referencing'>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='register'>
+          <ref name='xsltNamespaceAlias'/>
+        </word>
+        <word name='registered'>
+          <ref name='xsltDebugDumpExtensions'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltFreeRVTs'/>
+          <ref name='xsltInitCtxtExts'/>
+        </word>
+        <word name='related'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltParseStylesheetOutput'/>
+        </word>
+        <word name='reorder'>
+          <ref name='xsltComputeSortResult'/>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltDocumentSortFunction'/>
+        </word>
+        <word name='replace'>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='replacement'>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltAttrTemplateProcess'/>
+          <ref name='xsltTemplateProcess'/>
+        </word>
+        <word name='requested'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='required'>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+        <word name='requirement'>
+          <ref name='xsltComputeSortResult'/>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+        </word>
+        <word name='requires'>
+          <ref name='xsltNeedElemSpaceHandling'/>
+        </word>
+        <word name='reset'>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetSortFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+        </word>
+        <word name='resets'>
+          <ref name='xsltSetLoaderFunc'/>
+        </word>
+        <word name='resolve'>
+          <ref name='xsltResolveStylesheetAttributeSet'/>
+        </word>
+        <word name='resource'>
+          <ref name='xsltCheckRead'/>
+          <ref name='xsltCheckWrite'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='respect'>
+          <ref name='xsltFindElemSpaceHandling'/>
+        </word>
+        <word name='result-prefix'>
+          <ref name='xsltNamespaceAlias'/>
+        </word>
+        <word name='result-tree'>
+          <ref name='xsltFunctionNodeSet'/>
+        </word>
+        <word name='resulting'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltGetKey'/>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltXPathCompile'/>
+        </word>
+        <word name='results'>
+          <ref name='xsltParseTemplateContent'/>
+        </word>
+        <word name='ret'>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
+        <word name='retrieve'>
+          <ref name='xsltXPathGetTransformContext'/>
+        </word>
+        <word name='return'>
+          <ref name='CHECK_STOPPED'/>
+          <ref name='CHECK_STOPPED0'/>
+          <ref name='xsltAllocateExtra'/>
+          <ref name='xsltAllocateExtraCtxt'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltAttrTemplateProcess'/>
+          <ref name='xsltAttrTemplateValueProcess'/>
+          <ref name='xsltAttrTemplateValueProcessNode'/>
+          <ref name='xsltEvalAVT'/>
+          <ref name='xsltSplitQName'/>
+          <ref name='xsltTemplateProcess'/>
+        </word>
+        <word name='returned'>
+          <ref name='xsltEvalTemplateString'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='reused'>
+          <ref name='xsltApplyOneTemplate'/>
+        </word>
+        <word name='right'>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltGetSpecialNamespace'/>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
+        <word name='root'>
+          <ref name='xsltApplyStripSpaces'/>
+        </word>
+        <word name='routine'>
+          <ref name='_xsltRuntimeExtra'/>
+        </word>
+        <word name='routines'>
+          <ref name='xsltSetDebuggerCallbacks'/>
+        </word>
+        <word name='rule'>
+          <ref name='xsltFindTemplate'/>
+        </word>
+        <word name='rules'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='run'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='run-time'>
+          <ref name='xsltAllocateExtraCtxt'/>
+          <ref name='xsltCompilePattern'/>
+        </word>
+        <word name='running'>
+          <ref name='xsltSetTransformErrorFunc'/>
+        </word>
+        <word name='runtime'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltAllocateExtra'/>
+          <ref name='xsltAllocateExtraCtxt'/>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+      </letter>
+      <letter name='s'>
+        <word name='s390'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='same'>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='saving'>
+          <ref name='xsltSaveProfiling'/>
+        </word>
+        <word name='saxon'>
+          <ref name='xsltFunctionNodeSet'/>
+        </word>
+        <word name='scanner'>
+          <ref name='xsltNormalizeCompSteps'/>
+        </word>
+        <word name='scope'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltEvalXPathPredicate'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltGetTemplate'/>
+        </word>
+        <word name='seaches'>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='search'>
+          <ref name='xsltExtElementLookup'/>
+        </word>
+        <word name='section'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='security'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltCheckRead'/>
+          <ref name='xsltCheckWrite'/>
+          <ref name='xsltFreeSecurityPrefs'/>
+          <ref name='xsltGetDefaultSecurityPrefs'/>
+          <ref name='xsltGetSecurityPrefs'/>
+          <ref name='xsltNewSecurityPrefs'/>
+          <ref name='xsltSecurityAllow'/>
+          <ref name='xsltSecurityForbid'/>
+          <ref name='xsltSetCtxtSecurityPrefs'/>
+          <ref name='xsltSetDefaultSecurityPrefs'/>
+          <ref name='xsltSetSecurityPrefs'/>
+        </word>
+        <word name='see'>
+          <ref name='xsltEvalOneUserParam'/>
+        </word>
+        <word name='semantic'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='separates'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='separator'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='sequence'>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='set'>
+          <ref name='XSLT_PARSE_OPTIONS'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltApplyAttributeSet'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltCleanupGlobals'/>
+          <ref name='xsltComputeSortResult'/>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltDocumentSortFunction'/>
+          <ref name='xsltInitCtxtExts'/>
+          <ref name='xsltSetCtxtSortFunc'/>
+          <ref name='xsltSetDebuggerStatus'/>
+          <ref name='xsltShutdownCtxtExts'/>
+          <ref name='xsltShutdownExts'/>
+        </word>
+        <word name='sets'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltFreeAttributeSetsHashes'/>
+          <ref name='xsltResolveStylesheetAttributeSet'/>
+          <ref name='xsltSetDebuggerStatus'/>
+        </word>
+        <word name='setting'>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='shared'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='sheet'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltFreeStyleDocuments'/>
+          <ref name='xsltLoadStyleDocument'/>
+          <ref name='xsltNewStyleDocument'/>
+        </word>
+        <word name='should'>
+          <ref name='CHECK_STOPPED'/>
+          <ref name='CHECK_STOPPED0'/>
+          <ref name='CHECK_STOPPEDE'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltCopyTextString'/>
+          <ref name='xsltDocumentSortFunction'/>
+          <ref name='xsltFindElemSpaceHandling'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltNeedElemSpaceHandling'/>
+          <ref name='xsltQuoteUserParams'/>
+          <ref name='xsltRegisterExtElement'/>
+          <ref name='xsltRegisterExtFunction'/>
+          <ref name='xsltSetXIncludeDefault'/>
+          <ref name='xsltSort'/>
+        </word>
+        <word name='show'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='shows'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='shutdown'>
+          <ref name='xsltExtShutdownFunction'/>
+          <ref name='xsltRegisterExtModule'/>
+          <ref name='xsltRegisterExtModuleFull'/>
+          <ref name='xsltStyleExtShutdownFunction'/>
+        </word>
+        <word name='signalled'>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='signature'>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+        <word name='similar'>
+          <ref name='xsltGetQNameURI2'/>
+        </word>
+        <word name='simply'>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+        </word>
+        <word name='since'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltTimestamp'/>
+        </word>
+        <word name='single'>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltQuoteOneUserParam'/>
+        </word>
+        <word name='size'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='slightly'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='slot'>
+          <ref name='xsltAllocateExtra'/>
+          <ref name='xsltAllocateExtraCtxt'/>
+        </word>
+        <word name='slow'>
+          <ref name='xsltDocumentSortFunction'/>
+        </word>
+        <word name='some'>
+          <ref name='xsltCheckWrite'/>
+          <ref name='xsltCompileAttr'/>
+        </word>
+        <word name='something'>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
+        <word name='sort'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltSetCtxtSortFunc'/>
+          <ref name='xsltSetSortFunc'/>
+          <ref name='xsltSort'/>
+          <ref name='xsltSortFunc'/>
+        </word>
+        <word name='sorted'>
+          <ref name='_xsltTemplate'/>
+        </word>
+        <word name='sorting'>
+          <ref name='xsltComputeSortResult'/>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltSetCtxtSortFunc'/>
+          <ref name='xsltSetSortFunc'/>
+          <ref name='xsltSortFunc'/>
+        </word>
+        <word name='sorts'>
+          <ref name='xsltDefaultSortFunction'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltSortFunc'/>
+        </word>
+        <word name='space'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltFindElemSpaceHandling'/>
+          <ref name='xsltFreeDocuments'/>
+          <ref name='xsltFreeStyleDocuments'/>
+          <ref name='xsltNeedElemSpaceHandling'/>
+        </word>
+        <word name='spaces'>
+          <ref name='xsltApplyStripSpaces'/>
+        </word>
+        <word name='special'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='specialCharacters'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='specific'>
+          <ref name='XSLT_LIBXSLT_NAMESPACE'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltExtInitFunction'/>
+          <ref name='xsltSetCtxtSecurityPrefs'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+          <ref name='xsltStyleExtInitFunction'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='specification'>
+          <ref name='XSLT_NAMESPACE'/>
+        </word>
+        <word name='specified'>
+          <ref name='XSLT_MAX_SORT'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSetCtxtSortFunc'/>
+        </word>
+        <word name='specify'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='spent'>
+          <ref name='_xsltTemplate'/>
+        </word>
+        <word name='stack'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xslAddCall'/>
+          <ref name='xslDropCall'/>
+          <ref name='xsltAddStackElemList'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltFreeStackElemList'/>
+        </word>
+        <word name='standalone'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='starting'>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='state'>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltCleanupTemplates'/>
+          <ref name='xsltGetXIncludeDefault'/>
+        </word>
+        <word name='static'>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+        </word>
+        <word name='statically'>
+          <ref name='xsltAllocateExtra'/>
+        </word>
+        <word name='status'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='stderr'>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='stdout'>
+          <ref name='xsltDebugDumpExtensions'/>
+        </word>
+        <word name='steps'>
+          <ref name='xsltNormalizeCompSteps'/>
+        </word>
+        <word name='stopped'>
+          <ref name='CHECK_STOPPED'/>
+          <ref name='CHECK_STOPPED0'/>
+          <ref name='CHECK_STOPPEDE'/>
+        </word>
+        <word name='storage'>
+          <ref name='_xsltDocument'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='store'>
+          <ref name='xsltInitElemPreComp'/>
+        </word>
+        <word name='stored'>
+          <ref name='XSLT_RUNTIME_EXTRA'/>
+          <ref name='XSLT_RUNTIME_EXTRA_FREE'/>
+          <ref name='XSLT_RUNTIME_EXTRA_LST'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltQuoteOneUserParam'/>
+        </word>
+        <word name='string?'>
+          <ref name='xsltFormatNumberFunction'/>
+        </word>
+        <word name='strings'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='strip-space'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltFindElemSpaceHandling'/>
+        </word>
+        <word name='stripped'>
+          <ref name='xsltFindElemSpaceHandling'/>
+          <ref name='xsltNeedElemSpaceHandling'/>
+        </word>
+        <word name='stripping'>
+          <ref name='xsltNeedElemSpaceHandling'/>
+        </word>
+        <word name='struct'>
+          <ref name='xsltInitElemPreComp'/>
+        </word>
+        <word name='structure'>
+          <ref name='xsltDocumentComp'/>
+          <ref name='xsltElemPreCompDeallocator'/>
+          <ref name='xsltInitElemPreComp'/>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltParseStylesheetDoc'/>
+          <ref name='xsltParseStylesheetFile'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+        </word>
+        <word name='structures'>
+          <ref name='xsltCompileAttr'/>
+          <ref name='xsltFreeAVTList'/>
+          <ref name='xsltParseStylesheetDoc'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
+        <word name='stuff'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='style'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltFreeStyleDocuments'/>
+          <ref name='xsltGetTemplate'/>
+          <ref name='xsltLoadStyleDocument'/>
+          <ref name='xsltNewStyleDocument'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='stylesheet-prefix'>
+          <ref name='xsltNamespaceAlias'/>
+        </word>
+        <word name='stylesheets'>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='subpattern'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='subpattern{'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='subpattern}'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='subsequent'>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+        </word>
+        <word name='subsidiary'>
+          <ref name='_xsltDocument'/>
+        </word>
+        <word name='substituted'>
+          <ref name='xsltEvalAttrValueTemplate'/>
+        </word>
+        <word name='substitution'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='subtree'>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='success'>
+          <ref name='xsltAddKey'/>
+          <ref name='xsltAddStackElemList'/>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltParseStylesheetImport'/>
+          <ref name='xsltParseStylesheetInclude'/>
+          <ref name='xsltQuoteOneUserParam'/>
+          <ref name='xsltQuoteUserParams'/>
+          <ref name='xsltRegisterExtElement'/>
+          <ref name='xsltRegisterExtFunction'/>
+          <ref name='xsltRegisterExtPrefix'/>
+          <ref name='xsltRegisterPersistRVT'/>
+          <ref name='xsltRegisterTmpRVT'/>
+          <ref name='xsltSetDebuggerCallbacks'/>
+        </word>
+        <word name='successful'>
+          <ref name='xsltRegisterExtModuleElement'/>
+          <ref name='xsltRegisterExtModuleFunction'/>
+          <ref name='xsltRegisterExtModuleTopLevel'/>
+          <ref name='xsltUnregisterExtModuleElement'/>
+          <ref name='xsltUnregisterExtModuleFunction'/>
+          <ref name='xsltUnregisterExtModuleTopLevel'/>
+        </word>
+        <word name='sucess'>
+          <ref name='xslAddCall'/>
+        </word>
+        <word name='sucessful'>
+          <ref name='xsltRegisterExtModule'/>
+          <ref name='xsltRegisterExtModuleFull'/>
+          <ref name='xsltUnregisterExtModule'/>
+        </word>
+        <word name='suffix'>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='suggested'>
+          <ref name='xsltGetSpecialNamespace'/>
+        </word>
+        <word name='suitable'>
+          <ref name='xsltCompilePattern'/>
+        </word>
+        <word name='sun'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='supported'>
+          <ref name='XSLT_DEFAULT_VERSION'/>
+        </word>
+        <word name='sure'>
+          <ref name='xsltAllocateExtraCtxt'/>
+          <ref name='xsltGetPlainNamespace'/>
+        </word>
+        <word name='system-property'>
+          <ref name='xsltSystemPropertyFunction'/>
+        </word>
+      </letter>
+    </chunk>
+    <chunk name='chunk8'>
+      <letter name='t'>
+        <word name='table'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltGetExtInfo'/>
+          <ref name='xsltNormalizeCompSteps'/>
+          <ref name='xsltQuoteOneUserParam'/>
+        </word>
+        <word name='tables'>
+          <ref name='_xsltDocument'/>
+          <ref name='xsltInitCtxtKeys'/>
+        </word>
+        <word name='target'>
+          <ref name='xsltCopyNamespace'/>
+          <ref name='xsltCopyNamespaceList'/>
+        </word>
+        <word name='targetted'>
+          <ref name='xsltApplyStylesheetUser'/>
+        </word>
+        <word name='temlate'>
+          <ref name='xslHandleDebugger'/>
+        </word>
+        <word name='templates'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltCleanupTemplates'/>
+          <ref name='xsltFreeAVTList'/>
+        </word>
+        <word name='templtaes'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='templtes'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='temporary'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='tenth'>
+          <ref name='xsltTimestamp'/>
+        </word>
+        <word name='terminated'>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltQuoteOneUserParam'/>
+          <ref name='xsltQuoteUserParams'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='test'>
+          <ref name='xsltRegisterTestModule'/>
+        </word>
+        <word name='text'>
+          <ref name='IS_XSLT_REAL_NODE'/>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltCopyTextString'/>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltSaveResultToString'/>
+          <ref name='xsltText'/>
+        </word>
+        <word name='than'>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='that'>
+          <ref name='IS_XSLT_ELEM'/>
+          <ref name='IS_XSLT_REAL_NODE'/>
+          <ref name='XSLT_STRANGE'/>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltNeedElemSpaceHandling'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+          <ref name='xsltXPathGetTransformContext'/>
+        </word>
+        <word name='them'>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltNamespaceAlias'/>
+        </word>
+        <word name='themselve'>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+        <word name='then'>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltSetCtxtSortFunc'/>
+        </word>
+        <word name='there'>
+          <ref name='xsltAllocateExtraCtxt'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltGetQNameURI2'/>
+          <ref name='xsltGetXIncludeDefault'/>
+        </word>
+        <word name='they'>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltEvalAttrValueTemplate'/>
+        </word>
+        <word name='those'>
+          <ref name='xsltEvalAttrValueTemplate'/>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+        <word name='time'>
+          <ref name='_xsltTemplate'/>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltCompileAttr'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltExtInitFunction'/>
+          <ref name='xsltExtShutdownFunction'/>
+          <ref name='xsltStyleExtInitFunction'/>
+          <ref name='xsltStyleExtShutdownFunction'/>
+        </word>
+        <word name='time='>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='top-level'>
+          <ref name='xsltExtModuleTopLevelLookup'/>
+          <ref name='xsltRegisterExtModuleTopLevel'/>
+          <ref name='xsltUnregisterExtModuleTopLevel'/>
+        </word>
+        <word name='topmost'>
+          <ref name='xslDropCall'/>
+        </word>
+        <word name='tracing'>
+          <ref name='xsltDebugGetDefaultTrace'/>
+          <ref name='xsltDebugSetDefaultTrace'/>
+        </word>
+        <word name='track'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='transfer'>
+          <ref name='xslHandleDebugger'/>
+        </word>
+        <word name='transform'>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltInitElemPreComp'/>
+          <ref name='xsltNewElemPreComp'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='transformations'>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='transmit'>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='transromation'>
+          <ref name='xsltSetTransformErrorFunc'/>
+        </word>
+        <word name='treated'>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='tries'>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='true'>
+          <ref name='xsltEvalXPathPredicate'/>
+        </word>
+        <word name='tuples'>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltQuoteUserParams'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='turned'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='type'>
+          <ref name='XSLT_TRACE'/>
+          <ref name='_xsltElemPreComp'/>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+      </letter>
+      <letter name='u'>
+        <word name='ultimately'>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='unimplemented'>
+          <ref name='XSLT_TODO'/>
+        </word>
+        <word name='unless'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='unparsed-entity-uri'>
+          <ref name='xsltUnparsedEntityURIFunction'/>
+        </word>
+        <word name='unused'>
+          <ref name='xsltDocumentComp'/>
+          <ref name='xsltSecurityAllow'/>
+          <ref name='xsltSecurityForbid'/>
+        </word>
+        <word name='unwanted'>
+          <ref name='xsltApplyStripSpaces'/>
+          <ref name='xsltParseTemplateContent'/>
+        </word>
+        <word name='update'>
+          <ref name='xsltGetSecurityPrefs'/>
+          <ref name='xsltGetUTF8Char'/>
+          <ref name='xsltSetSecurityPrefs'/>
+        </word>
+        <word name='use'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltAddKey'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltEvalXPathStringNs'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetDefaultSecurityPrefs'/>
+          <ref name='xsltGetNamespace'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltGetPlainNamespace'/>
+          <ref name='xsltGetSpecialNamespace'/>
+          <ref name='xsltGetUTF8Char'/>
+          <ref name='xsltRegisterExtras'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSecurityAllow'/>
+          <ref name='xsltSecurityForbid'/>
+          <ref name='xsltSetCtxtSecurityPrefs'/>
+          <ref name='xsltSetDefaultSecurityPrefs'/>
+          <ref name='xsltSetSecurityPrefs'/>
+          <ref name='xsltSortFunc'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='useful'>
+          <ref name='xsltXPathGetTransformContext'/>
+        </word>
+        <word name='usefull'>
+          <ref name='xsltInitElemPreComp'/>
+        </word>
+        <word name='user'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSetSecurityPrefs'/>
+        </word>
+        <word name='uses'>
+          <ref name='xsltFormatNumberConversion'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='using'>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltEvalXPathPredicate'/>
+          <ref name='xsltEvalXPathString'/>
+          <ref name='xsltEvalXPathStringNs'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSetCtxtParseOptions'/>
+        </word>
+      </letter>
+      <letter name='v'>
+        <word name='validating'>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+        </word>
+        <word name='value-of'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='xsltValueOf'/>
+        </word>
+        <word name='values'>
+          <ref name='_xsltStylePreComp'/>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltApplyStylesheetUser'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltProfileStylesheet'/>
+          <ref name='xsltQuoteUserParams'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='var'>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='variable'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltApplyOneTemplate'/>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltParseGlobalVariable'/>
+          <ref name='xsltParseStylesheetVariable'/>
+          <ref name='xsltQuoteOneUserParam'/>
+          <ref name='xsltVariableLookup'/>
+          <ref name='xsltXPathVariableLookup'/>
+        </word>
+        <word name='variables'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltCleanupGlobals'/>
+          <ref name='xsltEvalGlobalVariables'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltFreeGlobalVariables'/>
+        </word>
+        <word name='varibale'>
+          <ref name='xsltXPathVariableLookup'/>
+        </word>
+        <word name='varibales'>
+          <ref name='xsltInitCtxtKeys'/>
+        </word>
+        <word name='vendor'>
+          <ref name='XSLT_DEFAULT_URL'/>
+          <ref name='XSLT_DEFAULT_VENDOR'/>
+        </word>
+        <word name='version'>
+          <ref name='XSLT_DEFAULT_VERSION'/>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='version='>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='violated'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='void'>
+          <ref name='XML_CAST_FPTR'/>
+          <ref name='xsltXPathFunctionLookup'/>
+          <ref name='xsltXPathVariableLookup'/>
+        </word>
+      </letter>
+    </chunk>
+    <chunk name='chunk9'>
+      <letter name='w'>
+        <word name='want'>
+          <ref name='xsltEvalUserParams'/>
+        </word>
+        <word name='warning'>
+          <ref name='XML_CAST_FPTR'/>
+        </word>
+        <word name='warnings'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='was'>
+          <ref name='XSLT_STRANGE'/>
+          <ref name='_xsltStackElem'/>
+          <ref name='_xsltTemplate'/>
+          <ref name='xsltEvalXPathPredicate'/>
+          <ref name='xsltNextImport'/>
+        </word>
+        <word name='well'>
+          <ref name='xsltNamespaceAlias'/>
+        </word>
+        <word name='went'>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
+        <word name='were'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='when'>
+          <ref name='XSLT_PARSE_OPTIONS'/>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltGetQNameURI2'/>
+          <ref name='xsltInitElemPreComp'/>
+          <ref name='xsltSetCtxtParseOptions'/>
+          <ref name='xsltXPathFunctionLookup'/>
+          <ref name='xsltXPathGetTransformContext'/>
+          <ref name='xsltXPathVariableLookup'/>
+        </word>
+        <word name='where'>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltAttrListTemplateProcess'/>
+          <ref name='xsltCopyTextString'/>
+          <ref name='xsltGetQNameURI'/>
+        </word>
+        <word name='wherever'>
+          <ref name='_xsltStylesheet'/>
+        </word>
+        <word name='whether'>
+          <ref name='_xsltFormatNumberInfo'/>
+          <ref name='xsltEvalStaticAttrValueTemplate'/>
+          <ref name='xsltNeedElemSpaceHandling'/>
+          <ref name='xsltSetXIncludeDefault'/>
+          <ref name='xsltTestCompMatchList'/>
+        </word>
+        <word name='which'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltRegisterExtElement'/>
+          <ref name='xsltRegisterExtFunction'/>
+        </word>
+        <word name='while'>
+          <ref name='xsltAllocateExtra'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+        </word>
+        <word name='white-space'>
+          <ref name='xsltNeedElemSpaceHandling'/>
+        </word>
+        <word name='wildcards'>
+          <ref name='xsltFindElemSpaceHandling'/>
+        </word>
+        <word name='will'>
+          <ref name='xsltAttrListTemplateProcess'/>
+          <ref name='xsltCopyTextString'/>
+          <ref name='xsltDoSortFunction'/>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltLoadStylesheetPI'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSetCtxtSortFunc'/>
+          <ref name='xsltSetGenericDebugFunc'/>
+          <ref name='xsltSetGenericErrorFunc'/>
+          <ref name='xsltSetSortFunc'/>
+          <ref name='xsltSetTransformErrorFunc'/>
+          <ref name='xsltTransformError'/>
+        </word>
+        <word name='wise'>
+          <ref name='xsltApplyStylesheet'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='with'>
+          <ref name='CHECK_STOPPED0'/>
+          <ref name='xsltAttrListTemplateProcess'/>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltGetQNameURI'/>
+          <ref name='xsltGetUTF8Char'/>
+          <ref name='xsltInitCtxtExts'/>
+        </word>
+        <word name='within'>
+          <ref name='xsltFindDocument'/>
+          <ref name='xsltLoadDocument'/>
+          <ref name='xsltLoadStyleDocument'/>
+          <ref name='xsltLoadStylesheetPI'/>
+        </word>
+        <word name='without'>
+          <ref name='XML_CAST_FPTR'/>
+          <ref name='XSLT_PAT_NO_PRIORITY'/>
+          <ref name='_xsltTransformContext'/>
+        </word>
+        <word name='work'>
+          <ref name='xsltCheckWrite'/>
+        </word>
+        <word name='wrapped'>
+          <ref name='xsltFindElemSpaceHandling'/>
+        </word>
+        <word name='wrapper'>
+          <ref name='xsltDoSortFunction'/>
+        </word>
+        <word name='write'>
+          <ref name='xsltCheckWrite'/>
+        </word>
+        <word name='written'>
+          <ref name='xsltCheckWrite'/>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+          <ref name='xsltSaveResultTo'/>
+          <ref name='xsltSaveResultToFd'/>
+          <ref name='xsltSaveResultToFile'/>
+          <ref name='xsltSaveResultToFilename'/>
+          <ref name='xsltSaveResultToString'/>
+        </word>
+      </letter>
+      <letter name='x'>
+        <word name='xmlAttrPtr'>
+          <ref name='xsltAttrListTemplateProcess'/>
+        </word>
+        <word name='xmlDoc'>
+          <ref name='xsltParseStylesheetDoc'/>
+          <ref name='xsltParseStylesheetImportedDoc'/>
+          <ref name='xsltParseStylesheetProcess'/>
+        </word>
+        <word name='xmlDocPtr'>
+          <ref name='xsltGetProfileInformation'/>
+          <ref name='xsltSaveResultTo'/>
+          <ref name='xsltSaveResultToFd'/>
+          <ref name='xsltSaveResultToFile'/>
+          <ref name='xsltSaveResultToFilename'/>
+          <ref name='xsltSaveResultToString'/>
+        </word>
+        <word name='xmlFreeDoc'>
+          <ref name='xsltGetProfileInformation'/>
+        </word>
+        <word name='xmlGetNsProp'>
+          <ref name='xsltGetCNsProp'/>
+          <ref name='xsltGetNsProp'/>
+        </word>
+        <word name='xmlGetUTF8Char'>
+          <ref name='xsltGetUTF8Char'/>
+        </word>
+        <word name='xmlNodePtr'>
+          <ref name='_xsltTransformContext'/>
+          <ref name='xsltCopyTextString'/>
+        </word>
+        <word name='xmlNsPtr'>
+          <ref name='xsltCopyNamespace'/>
+          <ref name='xsltCopyNamespaceList'/>
+        </word>
+        <word name='xmlParserOption'>
+          <ref name='xsltDocLoaderFunc'/>
+          <ref name='xsltSetCtxtParseOptions'/>
+        </word>
+        <word name='xmlReadxxx'>
+          <ref name='XSLT_PARSE_OPTIONS'/>
+        </word>
+        <word name='xmlXPathCompExprPtr'>
+          <ref name='xsltXPathCompile'/>
+        </word>
+        <word name='xsl'>
+          <ref name='XSLT_TRACE'/>
+        </word>
+        <word name='xsl:apply-templates'>
+          <ref name='xsltTransformFunction'/>
+        </word>
+        <word name='xsl:comment'>
+          <ref name='xsltEvalTemplateString'/>
+        </word>
+        <word name='xsl:if'>
+          <ref name='xsltTransformFunction'/>
+        </word>
+        <word name='xsl:import'>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+        <word name='xsl:include'>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+        <word name='xsl:message'>
+          <ref name='xsltMessage'/>
+        </word>
+        <word name='xsl:namespace-alias'>
+          <ref name='xsltNamespaceAlias'/>
+        </word>
+        <word name='xsl:processing-instruction'>
+          <ref name='xsltEvalTemplateString'/>
+        </word>
+        <word name='xsl:sort'>
+          <ref name='XSLT_MAX_SORT'/>
+          <ref name='xsltSort'/>
+        </word>
+        <word name='xsl:use-attribute-sets'>
+          <ref name='xsltApplyAttributeSet'/>
+        </word>
+        <word name='xslDebugBreak'>
+          <ref name='xslHandleDebugger'/>
+        </word>
+        <word name='xslDebugStatus'>
+          <ref name='xslHandleDebugger'/>
+          <ref name='xsltGetDebuggerStatus'/>
+          <ref name='xsltSetDebuggerStatus'/>
+        </word>
+        <word name='xslt:text'>
+          <ref name='xsltParseTemplateContent'/>
+        </word>
+        <word name='xsltAddTemplate'>
+          <ref name='xsltFreeTemplateHashes'/>
+        </word>
+        <word name='xsltDecimalFormatPtr'>
+          <ref name='xsltDecimalFormatGetByName'/>
+        </word>
+        <word name='xsltDocLoaderFunc'>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+        <word name='xsltDocumentPtr'>
+          <ref name='xsltFindDocument'/>
+          <ref name='xsltLoadDocument'/>
+          <ref name='xsltLoadStyleDocument'/>
+        </word>
+        <word name='xsltElemPreComp'>
+          <ref name='xsltElemPreCompDeallocator'/>
+          <ref name='xsltInitElemPreComp'/>
+          <ref name='xsltNewElemPreComp'/>
+        </word>
+        <word name='xsltEvalUserParams'>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltQuoteUserParams'/>
+        </word>
+        <word name='xsltGetQNameURI'>
+          <ref name='xsltGetQNameURI2'/>
+        </word>
+        <word name='xsltGetTemplate'>
+          <ref name='xsltFreeTemplateHashes'/>
+        </word>
+        <word name='xsltLoadType'>
+          <ref name='xsltDocLoaderFunc'/>
+        </word>
+        <word name='xsltProcessOneUserParamInternal'>
+          <ref name='xsltEvalOneUserParam'/>
+        </word>
+        <word name='xsltQuoteOneUserParam'>
+          <ref name='xsltEvalOneUserParam'/>
+        </word>
+        <word name='xsltQuoteUserParams'>
+          <ref name='xsltEvalOneUserParam'/>
+          <ref name='xsltEvalUserParams'/>
+          <ref name='xsltQuoteOneUserParam'/>
+        </word>
+        <word name='xsltRegisterAllExtras'>
+          <ref name='xsltRegisterExtras'/>
+        </word>
+        <word name='xsltSecurityPrefsPtr'>
+          <ref name='xsltGetDefaultSecurityPrefs'/>
+        </word>
+        <word name='xsltSetCtxtSortFunc'>
+          <ref name='xsltDoSortFunction'/>
+        </word>
+        <word name='xsltSetSortFunc'>
+          <ref name='xsltDoSortFunction'/>
+        </word>
+        <word name='xsltStackElemPtr'>
+          <ref name='xsltParseStylesheetCallerParam'/>
+        </word>
+        <word name='xsltStylesheetPtr'>
+          <ref name='xsltNewStylesheet'/>
+        </word>
+        <word name='xsltTemplatePtr'>
+          <ref name='xsltFindTemplate'/>
+          <ref name='xsltGetTemplate'/>
+        </word>
+        <word name='xsltTimestamp'>
+          <ref name='xsltCalibrateAdjust'/>
+        </word>
+        <word name='xsltTransformContextPtr'>
+          <ref name='xsltNewTransformContext'/>
+        </word>
+      </letter>
+      <letter name='y'>
+        <word name='yes'>
+          <ref name='_xsltStylesheet'/>
+          <ref name='xsltCompileAttr'/>
+        </word>
+        <word name='yet'>
+          <ref name='xsltRunStylesheet'/>
+          <ref name='xsltRunStylesheetUser'/>
+        </word>
+        <word name='you'>
+          <ref name='xsltEvalUserParams'/>
+        </word>
+        <word name='your'>
+          <ref name='xsltEvalUserParams'/>
+        </word>
+      </letter>
+      <letter name='z'>
+        <word name='zero'>
+          <ref name='xsltFormatNumberConversion'/>
+        </word>
+      </letter>
+    </chunk>
+    <chunks>
+      <chunk name='chunk0' start='A' end='P'/>
+      <chunk name='chunk1' start='Q' end='a'/>
+      <chunk name='chunk2' start='b' end='c'/>
+      <chunk name='chunk3' start='d' end='e'/>
+      <chunk name='chunk4' start='f' end='h'/>
+      <chunk name='chunk5' start='i' end='m'/>
+      <chunk name='chunk6' start='n' end='p'/>
+      <chunk name='chunk7' start='q' end='s'/>
+      <chunk name='chunk8' start='t' end='v'/>
+      <chunk name='chunk9' start='w' end='z'/>
+    </chunks>
+  </index>
+</apirefs>

Added: packages/libxslt/branches/upstream/1.1.16/doc/libxslt.xsa
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/libxslt.xsa	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/libxslt.xsa	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsa PUBLIC "-//LM Garshol//DTD XML Software Autoupdate 1.0//EN//XML" "http://www.garshol.priv.no/download/xsa/xsa.dtd">
+<xsa>
+  <vendor>
+    <name>Daniel Veillard</name>
+    <email>daniel at veillard.com</email>
+    <url>http://veillard.com/</url>
+  </vendor>
+  <product id="libxslt">
+    <name>libxslt</name>
+    <version>1.1.15</version>
+    <last-release> Sep 04 2005</last-release>
+    <info-url>http://xmlsoft.org/XSLT/</info-url>
+    <changes>   - build fixes: Windows build cleanups and updates (Igor Zlatkovic),
+    remove jhbuild warnings
+   - bug fixes: negative number formatting (William Brack), number
+    formatting per mille definition (William Brack), XInclude default values
+    (William), text copy bugs (William), bug related to xmlXPathContext size,
+    reuse libxml2 memory management for text nodes, dictionnary text bug,
+    forbid variables in match (needs libxml2-2.6.21)
+   - improvements: EXSLT dyn:map (Mark Vakoc),
+   - documentation: EXSLT date and time functions namespace in man (Jonathan
+    Wakely)
+
+</changes>
+  </product>
+</xsa>

Added: packages/libxslt/branches/upstream/1.1.16/doc/newapi.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/newapi.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/newapi.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,719 @@
+<?xml version="1.0"?>
+<!--
+  Stylesheet to generate the HTML documentation from an XML API descriptions:
+  xsltproc newapi.xsl libxslt-api.xml
+
+  Daniel Veillard
+
+  Note: This stylesheet was adapted from the original (written for libxml2)
+	by William Brack, who is fully responsible for any mistakes or
+	problems.  The major enhancement is changing all references to the
+	library and to the output directory into references to global
+	parameters ('libdir' and 'html_dir' respectively).
+-->
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:exsl="http://exslt.org/common"
+  xmlns:str="http://exslt.org/strings"
+  extension-element-prefixes="exsl str"
+  exclude-result-prefixes="exsl str">
+
+  <!-- Import the main part of the site stylesheets -->
+  <xsl:import href="site.xsl"/>
+
+  <!-- Generate XHTML-1.0 transitional -->
+  <xsl:output method="xml" encoding="ISO-8859-1" indent="yes"
+      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+  <!-- Build keys for all symbols -->
+  <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
+
+  <!--
+    Note that variables declared as "param" may be changed at runtime
+  <-->
+  <!-- the name of the library being documented -->
+  <xsl:param name="libname">libxslt</xsl:param>
+
+  <!-- the directory for the 'home' files-->
+  <xsl:param name="dirname" select="'../'"/>
+
+  <!-- the location of logos for the pages -->
+  <xsl:param name="logo_base" select="'../'"/>
+
+  <!-- these override the definition in site.xsl -->
+  <xsl:variable name="href_base" select="'../'"/>
+  <xsl:variable name="html_dir" select="'html/'"/>
+  <xsl:variable name="api_base" select="''"/>
+  <xsl:variable name="globaltitle">
+    <xsl:choose>
+      <xsl:when test="$libname='libxslt'">
+        <xsl:value-of select="'The XSLT C library for Gnome'"/>
+     </xsl:when>
+     <xsl:when test="$libname='libxml'">
+	  <xsl:value-of select="'The XML C library for Gnome'"/>
+	</xsl:when>
+	<xsl:when test="$libname='libexslt'">
+	  <xsl:value-of select="'The EXSLT C library for Gnome'"/>
+	</xsl:when>
+     <xsl:otherwise>
+       <xsl:value-of select="'Unknown Library'"/>
+     </xsl:otherwise>
+   </xsl:choose>
+  </xsl:variable>
+
+  <!-- The table of content for the HTML API pages -->
+  <xsl:variable name="menu_name">API Menu</xsl:variable>
+  <xsl:variable name="toc">
+    <form action="../search.php"
+          enctype="application/x-www-form-urlencoded" method="get">
+      <input name="query" type="text" size="20" value=""/>
+      <input name="submit" type="submit" value="Search ..."/>
+    </form>
+    <ul><!-- style="margin-left: -1em" -->
+      <li><a style="font-weight:bold"
+             href="{$href_base}index.html">Main Menu</a></li>
+      <li><a style="font-weight:bold" 
+             href="{$href_base}docs.html">Developer Menu</a></li>
+      <!--   Coming soon .....
+      <li><a style="font-weight:bold" 
+             href="{$href_base}examples/index.html">Code Examples</a></li>
+      -->
+      <li><a style="font-weight:bold"
+             href="index.html">API Menu</a></li>
+      <!--   Coming soon .....
+      <li><a href="{$href_base}guidelines.html">XSLT Guidelines</a></li>
+      -->
+      <li><a href="{$href_base}ChangeLog.html">ChangeLog</a></li>
+    </ul>
+  </xsl:variable>
+  <xsl:template name="toc">
+    <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
+      <tr>
+        <td>
+          <table width="100%" border="0" cellspacing="1" cellpadding="3">
+            <tr>
+              <td colspan="1" bgcolor="#eecfa1" align="center">
+                <center>
+                  <b><xsl:value-of select="$menu_name"/></b>
+                </center>
+              </td>
+            </tr>
+            <tr>
+              <td bgcolor="#fffacd">
+                <xsl:copy-of select="$toc"/>
+              </td>
+            </tr>
+          </table>
+          <table width="100%" border="0" cellspacing="1" cellpadding="3">
+            <tr>
+              <td colspan="1" bgcolor="#eecfa1" align="center">
+                <center>
+                  <b>API Indexes</b>
+                </center>
+              </td>
+            </tr>
+            <tr>
+              <td bgcolor="#fffacd">
+                <xsl:copy-of select="$api"/>
+              </td>
+            </tr>
+          </table>
+          <table width="100%" border="0" cellspacing="1" cellpadding="3">
+            <tr>
+              <td colspan="1" bgcolor="#eecfa1" align="center">
+                <center>
+                  <b>Related links</b>
+                </center>
+              </td>
+            </tr>
+            <tr>
+              <td bgcolor="#fffacd">
+                <xsl:copy-of select="$related"/>
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+    </table>
+  </xsl:template>
+
+  <xsl:template name="docstyle">
+    <style type="text/css">
+      div.deprecated pre.programlisting {border-style: double;border-color:red}
+      pre.programlisting {border-style: double;background: #EECFA1}
+    </style>
+  </xsl:template>
+  <xsl:template name="navbar">
+    <xsl:variable name="previous" select="preceding-sibling::file[1]"/>
+    <xsl:variable name="next" select="following-sibling::file[1]"/>
+    <table class="navigation" width="100%" summary="Navigation header"
+           cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <xsl:if test="$previous">
+          <td><a accesskey="p" href="{$libname}-{$previous/@name}.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></img></a></td>
+	  <th align="left"><a href="{$libname}-{$previous/@name}.html"><xsl:value-of select="$previous/@name"/></a></th>
+	</xsl:if>
+        <td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></img></a></td>
+	<th align="left"><a href="index.html">API documentation</a></th>
+        <td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></img></a></td>
+        <th align="center"><a href="../index.html">Home</a></th>
+        <xsl:if test="$next">
+	  <th align="right"><a href="{$libname}-{$next/@name}.html"><xsl:value-of select="$next/@name"/></a></th>
+          <td><a accesskey="n" href="{$libname}-{$next/@name}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></img></a></td>
+        </xsl:if>
+      </tr>
+    </table>
+  </xsl:template>
+
+  <!-- This is convoluted but needed to force the current document to
+       be the API one and not the result tree from the tokenize() result,
+       because the keys are only defined on the main document -->
+  <xsl:template mode="dumptoken" match='*'>
+    <xsl:param name="token"/>
+    <xsl:variable name="ref" select="key('symbols', $token)"/>
+    <xsl:choose>
+      <xsl:when test="$ref">
+        <a href="{$libname}-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$token"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- dumps a string, making cross-reference links -->
+  <xsl:template name="dumptext">
+    <xsl:param name="text"/>
+    <xsl:variable name="ctxt" select='.'/>
+    <!-- <xsl:value-of select="$text"/> -->
+    <xsl:for-each select="str:tokenize($text, ' &#9;')">
+      <xsl:apply-templates select="$ctxt" mode='dumptoken'>
+        <xsl:with-param name="token" select="string(.)"/>
+      </xsl:apply-templates>
+      <xsl:if test="position() != last()">
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+  </xsl:template>
+
+  <xsl:template match="macro" mode="toc">
+    <pre class="programlisting">
+    <xsl:text>#define </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a>
+    </pre>
+  </xsl:template>
+
+  <xsl:template match="variable" mode="toc">
+    <pre class="programlisting">
+    <xsl:text>Variable </xsl:text>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="string(@type)"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <a name="{@name}"></a>
+    <xsl:value-of select="@name"/>
+    <xsl:text>
+
+</xsl:text>
+    </pre>
+  </xsl:template>
+
+  <xsl:template match="typedef" mode="toc">
+    <xsl:variable name="name" select="string(@name)"/>
+    <pre class="programlisting">
+    <xsl:choose>
+      <xsl:when test="@type = 'enum'">
+	<xsl:text>Enum </xsl:text>
+	<a href="#{$name}"><xsl:value-of select="$name"/></a>
+	<xsl:text>
+</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:text>Typedef </xsl:text>
+	<xsl:call-template name="dumptext">
+	  <xsl:with-param name="text" select="@type"/>
+	</xsl:call-template>
+	<xsl:text> </xsl:text>
+	<a name="{$name}"><xsl:value-of select="$name"/></a>
+	<xsl:text>
+</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    </pre>
+  </xsl:template>
+
+  <xsl:template match="typedef[@type = 'enum']">
+    <xsl:variable name="name" select="string(@name)"/>
+    <h3>Enum <a name="{$name}"><xsl:value-of select="$name"/></a></h3>
+    <pre class="programlisting">
+      <xsl:text>Enum </xsl:text>
+      <xsl:value-of select="$name"/>
+      <xsl:text> {
+</xsl:text>
+      <xsl:for-each select="/api/symbols/enum[@type = $name]">
+        <xsl:sort select="@value" data-type="number" order="ascending"/>
+        <xsl:text>    </xsl:text>
+        <a name="{@name}"><xsl:value-of select="@name"/></a>
+        <xsl:text> = </xsl:text>
+        <xsl:value-of select="@value"/>
+        <xsl:if test="@info != ''">
+	  <xsl:text> : </xsl:text>
+	  <xsl:call-template name="dumptext">
+	    <xsl:with-param name="text" select="@info"/>
+	  </xsl:call-template>
+        </xsl:if>
+        <xsl:text>
+</xsl:text>
+      </xsl:for-each>
+      <xsl:text>}
+</xsl:text>
+    </pre>
+  </xsl:template>
+
+  <xsl:template match="struct" mode="toc">
+    <pre class="programlisting">
+    <xsl:text>Structure </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a><br/>
+    <xsl:value-of select="@type"/><xsl:text>
+</xsl:text>
+    <xsl:if test="not(field)">
+      <xsl:text>The content of this structure is not made public by the API.
+</xsl:text>
+    </xsl:if>
+    </pre>
+  </xsl:template>
+
+  <xsl:template match="struct">
+    <h3><a name="{@name}">Structure <xsl:value-of select="@name"/></a></h3>
+    <pre class="programlisting">
+    <xsl:text>Structure </xsl:text><xsl:value-of select="@name"/><br/>
+    <xsl:value-of select="@type"/><xsl:text> {
+</xsl:text>
+    <xsl:if test="not(field)">
+      <xsl:text>The content of this structure is not made public by the API.
+</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="field">
+        <xsl:text>    </xsl:text>
+	<xsl:call-template name="dumptext">
+	  <xsl:with-param name="text" select="@type"/>
+	</xsl:call-template>
+	<xsl:text>&#9;</xsl:text>
+	<xsl:value-of select="@name"/>
+	<xsl:if test="@info != ''">
+	  <xsl:text>&#9;: </xsl:text>
+	  <xsl:call-template name="dumptext">
+	    <xsl:with-param name="text" select="substring(@info, 1, 40)"/>
+	  </xsl:call-template>
+	</xsl:if>
+	<xsl:text>
+</xsl:text>
+    </xsl:for-each>
+    <xsl:text>}</xsl:text>
+    </pre>
+  </xsl:template>
+
+  <xsl:template match="macro">
+    <xsl:variable name="name" select="string(@name)"/>
+    <h3><a name="{$name}"></a>Macro: <xsl:value-of select="$name"/></h3>
+    <pre><xsl:text>#define </xsl:text><xsl:value-of select="$name"/></pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="function" mode="toc">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <a href="#{@name}"><xsl:value-of select="@name"/></a>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+	<xsl:if test="$blen - 40 &gt; 8">
+	  <xsl:text>&#9;</xsl:text>
+	</xsl:if>
+	<xsl:if test="$blen - 40 &gt; 0">
+	  <xsl:text>&#9;</xsl:text>
+	</xsl:if>
+	<xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>)</xsl:text>
+    </pre><xsl:text>
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="functype" mode="toc">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+    <pre class="programlisting">
+    <xsl:text>Function type: </xsl:text>
+    <a href="#{$name}"><xsl:value-of select="$name"/></a>
+    <xsl:text>
+</xsl:text>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <a href="#{$name}"><xsl:value-of select="$name"/></a>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+	<xsl:if test="$blen - 40 &gt; 8">
+	  <xsl:text>&#9;</xsl:text>
+	</xsl:if>
+	<xsl:if test="$blen - 40 &gt; 0">
+	  <xsl:text>&#9;</xsl:text>
+	</xsl:if>
+	<xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>)
+</xsl:text>
+    </pre>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="functype">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+    <h3>
+      <a name="{$name}"></a>
+      <xsl:text>Function type: </xsl:text>
+      <xsl:value-of select="$name"/>
+    </h3>
+    <pre class="programlisting">
+    <xsl:text>Function type: </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:text>
+</xsl:text>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <xsl:value-of select="@name"/>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+	<xsl:if test="$blen - 40 &gt; 8">
+	  <xsl:text>&#9;</xsl:text>
+	</xsl:if>
+	<xsl:if test="$blen - 40 &gt; 0">
+	  <xsl:text>&#9;</xsl:text>
+	</xsl:if>
+	<xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>)
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p>
+    <xsl:if test="arg | return">
+      <div class="variablelist"><table border="0"><col align="left"/><tbody>
+      <xsl:for-each select="arg">
+        <tr>
+          <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+	  <td>
+	    <xsl:call-template name="dumptext">
+	      <xsl:with-param name="text" select="@info"/>
+	    </xsl:call-template>
+	  </td>
+        </tr>
+      </xsl:for-each>
+      <xsl:if test="return/@info">
+        <tr>
+          <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+	  <td>
+	    <xsl:call-template name="dumptext">
+	      <xsl:with-param name="text" select="return/@info"/>
+	    </xsl:call-template>
+	  </td>
+        </tr>
+      </xsl:if>
+      </tbody></table></div>
+    </xsl:if>
+    <br/>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="function">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
+    <h3><a name="{$name}"></a>Function: <xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <xsl:value-of select="@name"/>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+	<xsl:if test="$blen - 40 &gt; 8">
+	  <xsl:text>&#9;</xsl:text>
+	</xsl:if>
+	<xsl:if test="$blen - 40 &gt; 0">
+	  <xsl:text>&#9;</xsl:text>
+	</xsl:if>
+	<xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>)</xsl:text><br/>
+    <xsl:text>
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    <xsl:if test="arg | return/@info">
+      <div class="variablelist"><table border="0"><col align="left"/><tbody>
+      <xsl:for-each select="arg">
+        <tr>
+          <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+	  <td>
+	    <xsl:call-template name="dumptext">
+	      <xsl:with-param name="text" select="@info"/>
+	    </xsl:call-template>
+	  </td>
+        </tr>
+      </xsl:for-each>
+      <xsl:if test="return/@info">
+        <tr>
+          <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+	  <td>
+	    <xsl:call-template name="dumptext">
+	      <xsl:with-param name="text" select="return/@info"/>
+	    </xsl:call-template>
+	  </td>
+        </tr>
+      </xsl:if>
+      </tbody></table></div>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="exports" mode="toc">
+    <xsl:apply-templates select="key('symbols', string(@symbol))[1]" mode="toc"/>
+  </xsl:template>
+
+  <xsl:template match="exports">
+    <xsl:apply-templates select="key('symbols', string(@symbol))[1]"/>
+  </xsl:template>
+
+  <xsl:template name="description">
+    <xsl:if test="deprecated">
+      <h2 style="font-weight:bold;color:red;text-align:center">This module is deprecated</h2>
+    </xsl:if>
+    <xsl:if test="description">
+      <p><xsl:value-of select="description"/></p>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="docomponents">
+    <xsl:param name="mode"/>
+    <xsl:apply-templates select="exports[@type='macro']" mode="$mode">
+      <xsl:sort select='@symbol'/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="exports[@type='enum']" mode="$mode">
+      <xsl:sort select='@symbol'/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="exports[@type='typedef']" mode="$mode">
+      <xsl:sort select='@symbol'/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="exports[@type='struct']" mode="$mode">
+      <xsl:sort select='@symbol'/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="exports[@type='function']" mode="$mode">
+      <xsl:sort select='@symbol'/>
+    </xsl:apply-templates>
+  </xsl:template>
+  
+  <xsl:template match="file">
+    <xsl:variable name="name" select="@name"/>
+    <xsl:variable name="title">Module <xsl:value-of select="$name"/> from <xsl:value-of select="/api/@name"/></xsl:variable>
+    <xsl:variable name="content">
+      <xsl:call-template name="navbar"/>
+      <xsl:call-template name="description"/>
+      <xsl:choose>
+        <xsl:when test="deprecated">
+          <div class="deprecated">
+          <h2>Table of Contents</h2>
+          <xsl:apply-templates select="exports" mode="toc"/>
+            <h2>Description</h2>
+            <xsl:text>
+</xsl:text>
+          <xsl:apply-templates select="exports"/>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <h2>Table of Contents</h2>
+          <xsl:apply-templates select="exports[@type='macro']" mode="toc">
+            <xsl:sort select='@symbol'/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="exports[@type='enum']" mode="toc">
+            <xsl:sort select='@symbol'/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="exports[@type='typedef']" mode="toc">
+            <xsl:sort select='@symbol'/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="exports[@type='struct']" mode="toc">
+            <xsl:sort select='@symbol'/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="exports[@type='function']" mode="toc">
+            <xsl:sort select='@symbol'/>
+          </xsl:apply-templates>
+          <h2>Description</h2>
+          <xsl:text>
+</xsl:text>
+          <xsl:apply-templates select="exports[@type='macro']">
+            <xsl:sort select='@symbol'/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="exports[@type='enum']">
+            <xsl:sort select='@symbol'/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="exports[@type='typedef']">
+            <xsl:sort select='@symbol'/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="exports[@type='struct']">
+            <xsl:sort select='@symbol'/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="exports[@type='function']">
+            <xsl:sort select='@symbol'/>
+          </xsl:apply-templates>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:call-template name="new_page">
+      <xsl:with-param name="filename"
+          select="concat($html_dir, $libname, '-', $name, '.html')"/>
+      <xsl:with-param name="title" select="$title"/>
+      <xsl:with-param name="target" select="$content"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="file" mode="toc">
+    <xsl:variable name="name" select="@name"/>
+    <li>
+      <a href="{$libname}-{$name}.html"><xsl:value-of select="$name"/></a>
+      <xsl:text>: </xsl:text>
+      <xsl:value-of select="summary"/>
+    </li>
+  </xsl:template>
+
+  <xsl:template name="mainpage">
+    <xsl:param name="file" select="concat($html_dir, 'index.html')"/>
+    <xsl:variable name="title">Reference Manual for <xsl:value-of select="/api/@name"/></xsl:variable>
+    <xsl:variable name="content">
+      <h2>Table of Contents</h2>
+      <ul>
+        <xsl:apply-templates select="/api/files/file" mode="toc"/>
+      </ul>
+    </xsl:variable>
+    <xsl:call-template name="new_page">
+      <xsl:with-param name="filename" select="$file"/>
+      <xsl:with-param name="title" select="$title"/>
+      <xsl:with-param name="target" select="$content"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template match="/">
+    <xsl:message>Processing library <xsl:value-of select="$libname"
+      />, output directory is <xsl:value-of select="$html_dir"
+      /></xsl:message>
+    <!-- Save the main index.html as well as a couple of copies -->
+    <xsl:call-template name="mainpage"/>
+    <xsl:call-template name="mainpage">
+      <xsl:with-param name="file" select="concat($html_dir, '/book1.html')"/>
+    </xsl:call-template>
+    <xsl:call-template name="mainpage">
+      <xsl:with-param name="file" select="concat($html_dir, '/',
+	    $libname, '-lib.html')"/>
+    </xsl:call-template>
+    <!-- now build the file for each of the modules -->
+    <xsl:apply-templates select="/api/files/file"/>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/doc/news.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/news.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/news.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,495 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>News</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>News</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>The <a href="ChangeLog.html">change log</a> describes the recents commits
+to the <a href="http://cvs.gnome.org/viewcvs/libxslt/">CVS</a> code base.</p><p>Those are the public releases made:</p><h3>1.1.16: May 01 2006</h3><ul><li>portability fixes: EXSLT date/time on Solaris and IRIX (Albert Chin),
+      HP-UX  build (Albert Chin), 
+  </li><li>build fixes: Python detection(Joseph Sacco), plugin configurei
+      (Joel Reed)</li>
+  <li>bug fixes: pattern compilation fix(William Brack), EXSLT date/time
+      fix (Thomas Broyer), EXSLT function bug, potential loop on variable
+      eval, startup race (Christopher Palmer), debug statement left in python
+      (Nic Ferrier), various cleanup based on Coverity reports), error on
+      Out of memory condition (Charles Hardin), various namespace prefixes
+      fixes (Kasimier Buchcik), </li>
+  <li>improvement: speed up sortingi, start of internals refactoring (Kasimier
+      Buchcik)</li>
+  <li>documentation: man page fixes and updates (Daniel Leidert)
+</li></ul><h3>1.1.15: Sep 04 2005</h3><ul><li>build fixes: Windows build cleanups and updates (Igor Zlatkovic),
+    remove jhbuild warnings</li>
+  <li>bug fixes: negative number formatting (William Brack), number
+    formatting per mille definition (William Brack), XInclude default values
+    (William), text copy bugs (William), bug related to xmlXPathContext size,
+    reuse libxml2 memory management for text nodes, dictionnary text bug,
+    forbid variables in match (needs libxml2-2.6.21)</li>
+  <li>improvements: EXSLT dyn:map (Mark Vakoc),</li>
+  <li>documentation: EXSLT date and time functions namespace in man (Jonathan
+    Wakely)</li>
+</ul><h3>1.1.14: Apr 02 2005</h3><ul><li>bug fixes: text node on stylesheet document without a dictionary
+    (William Brack), more checking of XSLT syntax, calling xsltInit()
+    multiple times, mode values interning raised by Mark Vakoc, bug in
+    pattern matching with ancestors, bug in patterna matching with cascading
+    select, xinclude and document() problem, build outside of source tree
+    (Mike Castle)</li>
+  <li>improvement: added a --nodict mode to xsltproc to check problems for
+    docuemtns without dictionnaries</li>
+</ul><h3>1.1.13: Mar 13 2005</h3><ul><li>build fixes: 64bits cleanup (William Brack), python 2.4 test (William),
+    LIBXSLT_VERSION_EXTRA on Windows (William), Windows makefiles fixes (Joel
+    Reed), libgcrypt-devel requires for RPM spec.</li>
+  <li>bug fixes: exslt day-of-week-in-month (Sal Paradise), xsl:call-template
+    should not change the current template rule (William Brack), evaluation
+    of global variables (William Brack), RVT's in XPath predicates (William),
+    namespace URI on template names (Mark Vakoc), stat() for Windows patch
+    (Aleksey Gurtovoy), pattern expression fixes (William Brack), out of
+    memory detection misses (William), parserOptions propagation (William),
+    exclude-result-prefixes fix (William), // patten fix (William).</li>
+  <li>extensions: module support (Joel Reed), dictionnary based speedups
+    trying to get rid of xmlStrEqual as much as possible.</li>
+  <li>documentation: added Wiki (Joel Reed)</li>
+</ul><h3>1.1.12: Oct 29 2004</h3><ul><li>build fixes: warnings removal (William).</li>
+  <li>bug fixes: attribute document pointer fix (Mark Vakoc), exslt date
+    negative periods (William Brack), generated tree structure fixes,
+    namespace lookup fix, use reentrant gmtime_r (William Brack),
+    exslt:funtion namespace fix (William), potential NULL pointer reference
+    (Dennis Dams, William), force string interning on generated
+  documents.</li>
+  <li>documentation: update of the second tutorial (Panagiotis Louridas), add
+    exslt doc in rpm packages, fix the xsltproc man page.</li>
+</ul><h3>1.1.11: Sep 29 2004</h3><ul><li>bug fixes: xsl:include problems (William Brack), UTF8 number pattern
+    (William), date-time validation (William), namespace fix (William),
+    various Exslt date fixes (William), error callback fixes, leak with
+    namespaced global variable, attempt to fix a weird problem #153137</li>
+  <li>improvements: exslt:date-sum tests (Derek Poon)</li>
+  <li>documentation: second tutorial by Panagiotis Lourida</li>
+</ul><h3>1.1.10: Aug 31 2004</h3><ul><li>build fix: NUL in c file blocking compilation on Solaris, Windows build
+    (Igor Zlatkovic)</li>
+  <li>fix: key initialization problem (William Brack)</li>
+  <li>documentation: fixed missing man page description for --path</li>
+</ul><h3>1.1.9: Aug 22 2004</h3><ul><li>build fixes: missing tests (William Brack), Python dependancies, Python
+    on 64bits boxes, --with-crypto flag (Rob Richards),</li>
+  <li>fixes: RVT key handling (William), Python binding (William and Sitsofe
+    Wheeler), key and XPath troubles (William), template priority on imports
+    (William), str:tokenize with empty strings (William), #default namespace
+    alias behaviour (William), doc ordering missing for main document
+    (William), 64bit bug (Andreas Schwab)</li>
+  <li>improvements: EXSLT date:sum added (Joel Reed), hook for document
+    loading for David Hyatt, xsltproc --nodtdattr to avoid defaulting DTD
+    attributes, extend xsltproc --version with CVS stamp (William).</li>
+  <li>Documentation: web page problem reported by Oliver Stoeneberg</li>
+</ul><h3>1.1.8: July 5 2004</h3><ul><li>build fixes: Windows runtime options (Oliver Stoeneberg), Windows
+    binary package layout (Igor Zlatkovic), libgcrypt version test and link
+    (William)</li>
+  <li>documentation: fix libxslt namespace name in doc (William)</li>
+  <li>bug fixes: undefined namespace message (William Brack), search engine
+    (William), multiple namespace fixups (William), namespace fix for key
+    evaluation (William), Python memory debug bindings,</li>
+  <li>improvements: crypto extensions for exslt (Joel Reed, William)</li>
+</ul><h3>1.1.7: May 17 2004</h3><ul><li>build fix: warning about localtime_r on Solaris</li>
+  <li>bug fix: UTF8 string tokenize (William Brack), subtle memory
+    corruption, linefeed after comment at document level (William),
+    disable-output-escaping problem (William), pattern compilation in deep
+    imported stylesheets (William), namespace extension prefix bug,
+    libxslt.m4 bug (Edward Rudd), namespace lookup for attribute, namespaced
+    DOCTYPE name</li>
+</ul><h3>1.1.6: Apr 18 2004</h3><ul><li>2 bug fixes about keys fixed one by Mark Vakoc</li>
+</ul><h3>1.1.5: Mar 23 2004</h3><ul><li>performance: use dictionnary lookup for variables</li>
+  <li>remove use of _private from source documents</li>
+  <li>cleanup of "make tests" output</li>
+  <li>bugfixes: AVT in local variables, use localtime_r to avoid thread
+    troubles (William), dictionary handling bug (William), limited number of
+    stubstitutions in AVT (William), tokenize fix for UTF-8 (William),
+    superfluous namespace (William), xsltproc error code on
+    &lt;xsl:message&gt; halt, OpenVMS fix, dictionnary reference counting
+    change.</li>
+</ul><h3>1.1.4: Feb 23 2004</h3><ul><li>bugfixes: attributes without doc (Mariano Suárez-Alvarez), problem with
+    Yelp, extension problem</li>
+  <li>display extension modules (Steve Little)</li>
+  <li>Windows compilation patch (Mark Vadoc), Mingw (Mikhail Grushinskiy)</li>
+</ul><h3>1.1.3: Feb 16 2004</h3><ul><li>Rewrote the Attribute Value Template code, new XPath compilation
+    interfaces, dictionnary reuses for XSLT with potential for serious
+    performance improvements.</li>
+  <li>bug fixes: portability (William Brack), key() in node-set() results
+    (William), comment before doctype (William), math and node-set() problems
+    (William), cdata element and default namespace (William), behaviour on
+    unknown XSLT elements (Stefan Kost), priority of "//foo" patterns
+    (William), xsl:element and xsl:attribute QName check (William), comments
+    with -- (William), attribute namespace (William), check for ?&gt; in PI
+    (William)</li>
+  <li>Documentations: cleanup (John Fleck and William)</li>
+  <li>Python: patch for OS-X (Gianni Ceccarelli), enums export (Stephane
+    bidoul)</li>
+</ul><h3>1.1.2: Dec 24 2003</h3><ul><li>Documentation fixes (John Fleck, William Brack), EXSLT documentation
+    (William Brack)</li>
+  <li>Windows compilation fixes for MSVC and Mingw (Igor Zlatkovic)</li>
+  <li>Bug fixes: exslt:date returning NULL strings (William Brack),
+    namespaces output (William Brack),  key and namespace definition problem,
+    passing options down to the document() parser, xsl:number fixes (William
+    Brack)</li>
+</ul><h3>1.1.1: Dec 10 2003</h3><ul><li>code cleanup (William Brack)</li>
+  <li>Windows: Makefile improvements (Igor Zlatkovic)</li>
+  <li>documentation improvements: William Brack, libexslt man page (Jonathan
+    Wakely)</li>
+  <li>param in EXSLT functions (Shaun McCance)</li>
+  <li>XSLT debugging improvements (Mark Vakoc)</li>
+  <li>bug fixes: number formatting (Bjorn Reese), exslt:tokenize (William
+    Brack), key selector parsing with | reported by Oleg Paraschenko,
+    xsl:element with computed namespaces (William Brack), xslt:import/include
+    recursion detection (William Brack), exslt:function used in keys (William
+    Brack), bug when CDATA_SECTION are foun in the tree (William Brack),
+    entities handling when using XInclude.</li>
+</ul><h3>1.1.0: Nov 4 2003</h3><ul><li>Removed DocBook SGML broken support</li>
+  <li>fix xsl:key to work with PIs</li>
+  <li>Makefile and build improvement (Graham Wilson), build cleanup (William
+    Brack), macro fix (Justin Fletcher), build outside of source tree (Roumen
+    Petrov)</li>
+  <li>xsltproc option display fix (Alexey Efimov), --load-trace (Crutcher
+    Dunnavant)</li>
+  <li>Python: never use stdout for error</li>
+  <li>extension memory error fix (Karl Eichwalder)</li>
+  <li>header path fixes (Steve Ball)</li>
+  <li>added saxon:line-number() to libexslt (Brett Kail)</li>
+  <li>Fix some tortuous template problems when using predicates (William
+    Brack)</li>
+  <li>Debugger status patch (Kasimier Buchcik)</li>
+  <li>Use new libxml2-2.6.x APIs for faster processing</li>
+  <li>Make sure xsl:sort is empty</li>
+  <li>Fixed a bug in default processing of attributes</li>
+  <li>Removes the deprecated breakpoint library</li>
+  <li>detect invalid names on templates (William Brack)</li>
+  <li>fix exslt:document (and similar) base handling problem</li>
+</ul><h3>1.0.33: Sep 12 2003</h3><p>This is a bugfix only release</p><ul><li>error message missing argument (William Brack)</li>
+  <li>mode not cascaded in template fallbacks (William Brack)</li>
+  <li>catch redefinition of parameter/variables  (William Brack)</li>
+  <li>multiple keys with same namespace name (William Brack)</li>
+  <li>patch for compilation using MingW on Windows (Mikhail Grushinskiy)</li>
+  <li>header export macros for Windows (Igor Zlatkovic)</li>
+  <li>cdata-section-elements handling of namespaced names</li>
+  <li>compilation without libxml2 XPointer support (Mark Vadoc)</li>
+  <li>apply-templates crash (William Brack)</li>
+  <li>bug with imported templates (William Brack)</li>
+  <li>imported attribute-sets merging bug (DocBook) (William Brack)</li>
+</ul><h3>1.0.32: Aug 9 2003</h3><ul><li>bugfixes: xsltSaveResultToFile() python binding (Chris Jaeger), EXSLT
+    function (William Brack), RVT for globals (William Brack), EXSLT date
+    (William Brack),
+    <p>speed of large text output, xsl:copy with attributes, strip-space and
+    namespaces prefix, fix for --path xsltproc option, EXST:tokenize (Shaun
+    McCance), EXSLT:seconds (William Brack), sort with multiple keys (William
+    Brack), checking of { and } for attribute value templates (William
+    Brack)</p>
+  </li>
+  <li>Python bindings for extension elements (Sean Treadway)</li>
+  <li>EXSLT:split added (Shaun McCance)</li>
+  <li>portability fixes for HP-UX/Solaris/IRIX (William Brack)</li>
+  <li>doc cleanup</li>
+</ul><h3>1.0.31: Jul 6 2003</h3><ul><li>bugfixes: xsl:copy on namespace nodes, AVT for xsl:sort order, fix for
+    the debugger (Keith Isdale), output filename limitation, trio.h and
+    triodef.h added (Albert Chin), EXSLT node-set (Peter Breitenlohner),
+    xsltChoose and whitespace (Igor Zlatkovic),
+    <p>stylesheet compilation (Igor Zlatkovic), NaN and sort (William Brack),
+    RVT bug introduced in 1.0.30</p>
+  </li>
+  <li>avoid generating &amp;quot; (fix in libxml2-2.5.8)</li>
+  <li>fix 64bit cleaness problem and compilation troubles introduced in
+  1.0.30</li>
+  <li>Windows makefile generation (Igor Zlatkovic)</li>
+  <li>HP-UX portability fix</li>
+</ul><h3>1.0.30: May 4 2003</h3><ul><li>Fixes and new APIs to handle Result Value Trees and avoid leaks</li>
+  <li>Fixes for: EXSLT math pow() function (Charles Bozeman), global
+    parameter and global variables mismatch, a segfault on pattern
+    compilation errors, namespace copy in xsl:copy-of, python generator
+    problem, OpenVMS trio update, premature call to xsltFreeStackElem (Igor),
+    current node when templates applies to attributes</li>
+</ul><h3>1.0.29: Apr 1 2003</h3><ul><li>performance improvements especially for large flat documents</li>
+  <li>bug fixes: Result Value Tree handling, XML IDs, keys(), extra namespace
+    declarations with xsl:elements.</li>
+  <li>portability: python and trio fixes (Albert Chin), python on Solaris
+    (Ben Phillips)</li>
+</ul><h3>1.0.28: Mar 24 2003</h3><ul><li>fixed node() in patterns semantic.</li>
+  <li>fixed a memory access problem in format-number()</li>
+  <li>fixed stack overflow in recursive global variable or params</li>
+  <li>cleaned up Result Value Tree handling, and fixed a couple of old bugs
+    in the process</li>
+</ul><h3>1.0.27: Feb 24 2003</h3><ul><li>bug fixes: spurious xmlns:nsX="" generation, serialization bug (in
+    libxml2), a namespace copy problem, errors in the RPM spec prereqs</li>
+  <li>Windows path canonicalization and document cache fix (Igor)</li>
+</ul><h3>1.0.26: Feb 10 2003</h3><ul><li>Fixed 3 serious bugs in document() and stylesheet compilation which
+    could lead to a crash</li>
+</ul><h3>1.0.25: Feb 5 2003</h3><ul><li>Bug fix: double-free for standalone stylesheets introduced in 1.0.24, C
+    syntax pbm, 3 bugs reported by Eric van der Vlist</li>
+  <li>Some XPath and XInclude related problems were actually fixed in
+    libxml2-2.5.2</li>
+  <li>Documentation: emphasize taht --docbook is not for XML docs.</li>
+</ul><h3>1.0.24: Jan 14 2003</h3><ul><li>bug fixes: imported global varables, python bindings (Stéphane Bidoul),
+    EXSLT memory leak (Charles Bozeman), namespace generation on
+    xsl:attribute, space handling with imports (Daniel Stodden),
+    extension-element-prefixes (Josh Parsons), comments within xsl:text (Matt
+    Sergeant), superfluous xmlns generation, XInclude related bug for
+    numbering, EXSLT strings (Alexey Efimov), attribute-sets computation on
+    imports, extension module init and shutdown callbacks not called</li>
+  <li>HP-UX portability (Alexey Efimov), Windows makefiles (Igor and Stephane
+    Bidoul), VMS makefile updates (Craig A. Berry)</li>
+  <li>adds xsltGetProfileInformation() (Michael Rothwell)</li>
+  <li>fix the API generation scripts</li>
+  <li>API to provide the sorting routines (Richard Jinks)</li>
+  <li>added XML description of the EXSLT API</li>
+  <li>added ESXLT URI (un)escaping (Jörg Walter)</li>
+  <li>Some memory leaks have been found and fixed</li>
+  <li>document() now support fragment identifiers in URIs</li>
+</ul><h3>1.0.23: Nov 17 2002</h3><ul><li>Windows build cleanup (Igor)</li>
+  <li>Unix build and RPM packaging cleanup</li>
+  <li>Improvement of the python bindings: extension functions and activating
+    EXSLT</li>
+  <li>various bug fixes: number formatting, portability for bounded string
+    functions, CData nodes, key(), @*[...] patterns</li>
+  <li>Documentation improvements (John Fleck)</li>
+  <li>added libxslt.m4 (Thomas Schraitle)</li>
+</ul><h3>1.0.22: Oct 18 2002</h3><ul><li>Updates on the Windows Makefiles</li>
+  <li>Added a security module, and a related set of new options to
+  xsltproc</li>
+  <li>Allowed per transformation error handler.</li>
+  <li>Fixed a few bugs: node() semantic, URI escaping, media-type, attribute
+    lists</li>
+</ul><h3>1.0.21: Sep 26 2002</h3><ul><li>Bug fixes: match="node()", date:difference() (Igor and Charlie
+    Bozeman), disable-output-escaping</li>
+  <li>Python bindings: style.saveResultToString() from Ralf Mattes</li>
+  <li>Logos from Marc Liyanage</li>
+  <li>Mem leak fix from Nathan Myers</li>
+  <li>Makefile: DESTDIR fix from Christophe Merlet, AMD x86_64 (Mandrake),
+    Windows (Igor), Python detection</li>
+  <li>Documentation improvements: John Fleck</li>
+</ul><h3>1.0.20: Aug 23 2002</h3><ul><li>Windows makefile updates (Igor) and x86-64 (Frederic Crozat)</li>
+  <li>fixed HTML meta tag saving for Mac/IE users</li>
+  <li>possible leak patches from Nathan Myers</li>
+  <li>try to handle document('') as best as possible depending in the
+  cases</li>
+  <li>Fixed the DocBook stylesheets handling problem</li>
+  <li>Fixed a few XSLT reported errors</li>
+</ul><h3>1.0.19:  July 6 2002</h3><ul><li>EXSLT: dynamic functions and date support bug fixes (Mark Vakoc)</li>
+  <li>xsl:number fix: Richard Jinks</li>
+  <li>xsl:format-numbers fix: Ken Neighbors</li>
+  <li>document('') fix: bug pointed by Eric van der Vlist</li>
+  <li>xsl:message with terminate="yes" fixes: William Brack</li>
+  <li>xsl:sort order support added: Ken Neighbors</li>
+  <li>a few other bug fixes, some of them requiring the latest version of
+    libxml2</li>
+</ul><h3>1.0.18: May 27 2002</h3><ul><li>a number of bug fixes: attributes, extra namespace declarations
+    (DocBook), xsl:include crash (Igor), documentation (Christian Cornelssen,
+    Charles Bozeman and Geert Kloosterman),  element-available (Richard
+  Jinks)</li>
+  <li>xsltproc can now list teh registered extensions thanks to Mark
+  Vakoc</li>
+  <li>there is a new API to save directly to a string
+    xsltSaveResultToString() by Morus Walter</li>
+  <li>specific error registration function for the python API</li>
+</ul><h3>1.0.17: April 29 2002</h3><ul><li>cleanup in code, XSLT debugger support and Makefiles for Windows by
+  Igor</li>
+  <li>a C++ portability fix by Mark Vakoc</li>
+  <li>EXSLT date improvement and regression tests by Charles Bozeman</li>
+  <li>attempt to fix a bug in xsltProcessUserParamInternal</li>
+</ul><h3>1.0.16: April 15 2002</h3><ul><li>Bug fixes: strip-space, URL in HTML output, error when xsltproc can't
+    save</li>
+  <li>portability fixes: OSF/1, IEEE on alphas, Windows, Python bindings</li>
+</ul><h3>1.0.15: Mar 25 2002</h3><ul><li>Bugfixes: XPath, python Makefile, recursive attribute sets, @foo[..]
+    templates</li>
+  <li>Debug of memory alocation with valgind</li>
+  <li>serious profiling leading to significant improvement for DocBook
+    processing</li>
+  <li>revamp of the Windows build</li>
+</ul><h3>1.0.14: Mar 18 2002</h3><ul><li>Improvement in the XPath engine (libxml2-2.4.18)</li>
+  <li>Nasty bug fix related to exslt:node-set</li>
+  <li>Fixed the python Makefiles, cleanup of doc comments, Windows
+    portability fixes</li>
+</ul><h3>1.0.13: Mar 8 2002</h3><ul><li>a number of bug fixes including "namespace node have no parents"</li>
+  <li>Improvement of the Python bindings</li>
+  <li>Charles Bozeman provided fixes and regression tests for exslt date
+    functions.</li>
+</ul><h3>1.0.12: Feb 11 2002</h3><ul><li>Fixed the makefiles especially the python module ones</li>
+  <li>half a dozen bugs fixes including 2 old ones</li>
+</ul><h3>1.0.11: Feb 8 2002</h3><ul><li>Change of Licence to the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
+  Licence</a></li>
+  <li>Added a beta version of the Python bindings, including support to
+    extend the engine with functions written in Python</li>
+  <li>A number of bug fixes</li>
+  <li>Charlie Bozeman provided more EXSLT functions</li>
+  <li>Portability fixes</li>
+</ul><h3>1.0.10: Jan 14 2002</h3><ul><li>Windows fixes for Win32 from Igor</li>
+  <li>Fixed the Solaris compilation trouble (Albert)</li>
+  <li>Documentation changes and updates: John Fleck</li>
+  <li>Added a stringparam option to avoid escaping hell at the shell
+  level</li>
+  <li>A few bug fixes</li>
+</ul><h3>1.0.9: Dec 7 2001</h3><ul><li>Makefile patches from Peter Williams</li>
+  <li>attempt to fix the compilation problem associated to prelinking</li>
+  <li>obsoleted libxsltbreakpoint now deprecated and frozen to 1.0.8 API</li>
+  <li>xsltproc return codes are now significant, John Fleck updated the
+    documentation</li>
+  <li>patch to allow as much as 40 steps in patterns (Marc Tardif), should be
+    made dynamic really</li>
+  <li>fixed a bug raised by Nik Clayton when using doctypes with HTML
+  output</li>
+  <li>patches from Keith Isdale to interface with xsltdebugger</li>
+</ul><h3>1.0.8: Nov 26 2001</h3><ul><li>fixed an annoying header problem, removed a few bugs and some code
+    cleanup</li>
+  <li>patches for Windows and update of Windows Makefiles by Igor</li>
+  <li>OpenVMS port instructions from John A Fotheringham</li>
+  <li>fixed some Makefiles annoyance and libraries prelinking
+  informations</li>
+</ul><h3>1.0.7: Nov 10 2001</h3><ul><li>remove a compilation problem with LIBXSLT_PUBLIC</li>
+  <li>Finishing the integration steps for Keith Isdale debugger</li>
+  <li>fixes the handling of indent="no" on HTML output</li>
+  <li>fixes on the configure script and RPM spec file</li>
+</ul><h3>1.0.6: Oct 30 2001</h3><ul><li>bug fixes on number formatting (Thomas), date/time functions (Bruce
+    Miller)</li>
+  <li>update of the Windows Makefiles (Igor)</li>
+  <li>fixed DOCTYPE generation rules for HTML output (me)</li>
+</ul><h3>1.0.5: Oct 10 2001</h3><ul><li>some portability fixes, including Windows makefile updates from
+  Igor</li>
+  <li>fixed a dozen bugs on XSLT and EXSLT (me and Thomas Broyer)</li>
+  <li>support for Saxon's evaluate and expressions extensions added (initial
+    contribution from Darren Graves)</li>
+  <li>better handling of XPath evaluation errors</li>
+</ul><h3>1.0.4: Sep 12 2001</h3><ul><li>Documentation updates from John fleck</li>
+  <li>bug fixes (DocBook  FO generation should be fixed)  and portability
+    improvements</li>
+  <li>Thomas Broyer improved the existing EXSLT support and added String,
+    Time and Date core functions support</li>
+</ul><h3>1.0.3:  Aug 23 2001</h3><ul><li>XML Catalog support see the doc</li>
+  <li>New NaN/Infinity floating point code</li>
+  <li>A few bug fixes</li>
+</ul><h3>1.0.2:  Aug 15 2001</h3><ul><li>lot of bug fixes, increased the testsuite</li>
+  <li>a large chunk of EXSLT is implemented</li>
+  <li>improvements on the extension framework</li>
+  <li>documentation improvements</li>
+  <li>Windows MSC projects files should be up-to-date</li>
+  <li>handle attributes inherited from the DTD by default</li>
+</ul><h3>1.0.1:  July 24 2001</h3><ul><li>initial EXSLT framework</li>
+  <li>better error reporting</li>
+  <li>fixed the profiler on Windows</li>
+  <li>bug fixes</li>
+</ul><h3>1.0.0: July 10 2001</h3><ul><li>a lot of cleanup, a lot of regression tests added or fixed</li>
+  <li>added a documentation for <a href="extensions.html">writing
+    extensions</a></li>
+  <li>fixed some variable evaluation problems (with William)</li>
+  <li>added profiling of stylesheet execution accessible as the xsltproc
+    --profile option</li>
+  <li>fixed element-available() and the implementation of the various
+    chunking methods present, Norm Walsh provided a lot of feedback</li>
+  <li>exclude-result-prefixes and namespaces output should now work as
+    expected</li>
+  <li>added support of embedded stylesheet as described in section 2.7 of the
+    spec</li>
+</ul><h3>0.14.0: July 5 2001</h3><ul><li>lot of bug fixes, and code cleanup</li>
+  <li>completion of the little XSLT-1.0 features left unimplemented</li>
+  <li>Added and implemented the extension API suggested by Thomas Broyer</li>
+  <li>the Windows MSC environment should be complete</li>
+  <li>tested and optimized with a really large document (DocBook Definitive
+    Guide) libxml/libxslt should really be faster on serious workloads</li>
+</ul><h3>0.13.0: June 26 2001</h3><ul><li>lots of cleanups</li>
+  <li>fixed a C++ compilation problem</li>
+  <li>couple of fixes to xsltSaveTo()</li>
+  <li>try to fix Docbook-xslt-1.4 and chunking, updated the regression test
+    with them</li>
+  <li>fixed pattern compilation and priorities problems</li>
+  <li>Patches for Windows and MSC project mostly contributed by Yon Derek</li>
+  <li>update to the Tutorial by John Fleck</li>
+  <li>William fixed bugs in templates and for-each functions</li>
+  <li>added a new interface xsltRunStylesheet() for a more flexible output
+    (incomplete), added -o option to xsltproc</li>
+</ul><h3>0.12.0: June 18 2001</h3><ul><li>fixed a dozen of bugs reported</li>
+  <li>HTML generation should be quite better (requires libxml-2.3.11 upgrade
+    too)</li>
+  <li>William fixed some problems with document()</li>
+  <li>Fix namespace nodes selection and copy (requires libxml-2.3.11 upgrade
+    too)</li>
+  <li>John Fleck added a<a href="tutorial/libxslttutorial.html">
+  tutorial</a></li>
+  <li>Fixes for namespace handling when evaluating variables</li>
+  <li>XInclude global flag added to process XInclude on document() if
+    requested</li>
+  <li>made xsltproc --version more detailed</li>
+</ul><h3>0.11.0: June 1 2001</h3><p>Mostly a bug fix release.</p><ul><li>integration of catalogs from xsltproc</li>
+  <li>added --version to xsltproc for bug reporting</li>
+  <li>fixed errors when handling ID in external parsed entities</li>
+  <li>document() should hopefully work correctly but ...</li>
+  <li>fixed bug with PI and comments processing</li>
+  <li>William fixed the XPath string functions when using unicode</li>
+</ul><h3>0.10.0: May 19 2001</h3><ul><li>cleanups to make stylesheet read-only (not 100% complete)</li>
+  <li>fixed URI resolution in document()</li>
+  <li>force all XPath expression to be compiled at stylesheet parsing time,
+    even if unused ...</li>
+  <li>Fixed HTML default output detection</li>
+  <li>Fixed double attribute generation #54446</li>
+  <li>Fixed {{ handling in attributes #54451</li>
+  <li>More tests and speedups for DocBook document transformations</li>
+  <li>Fixed a really bad race like bug in xsltCopyTreeList()</li>
+  <li>added a documentation on the libxslt internals</li>
+  <li>William Brack and Bjorn Reese improved format-number()</li>
+  <li>Fixed multiple sort, it should really work now</li>
+  <li>added a --docbook option for SGML DocBook input (hackish)</li>
+  <li>a number of other bug fixes and regression test added as people were
+    submitting them</li>
+</ul><h3>0.9.0: May 3 2001</h3><ul><li>lot of various bugfixes, extended the regression suite</li>
+  <li>xsltproc should work with multiple params</li>
+  <li>added an option to use xsltproc with HTML input</li>
+  <li>improved the stylesheet compilation, processing of complex stylesheets
+    should be faster</li>
+  <li>using the same stylesheet for concurrent processing on multithreaded
+    programs should work now</li>
+  <li>fixed another batch of namespace handling problems</li>
+  <li>Implemented multiple level of sorting</li>
+</ul><h3>0.8.0: Apr 22 2001</h3><ul><li>fixed ansidecl.h problem</li>
+  <li>fixed unparsed-entity-uri() and generate-id()</li>
+  <li>sort semantic fixes and priority prob from William M. Brack</li>
+  <li>fixed namespace handling problems in XPath expression computations
+    (requires libxml-2.3.7)</li>
+  <li>fixes to current() and key()</li>
+  <li>other, smaller fixes, lots of testing with N Walsh DocBook HTML
+    stylesheets</li>
+</ul><h3>0.7.0: Apr 10 2001</h3><ul><li>cleanup using stricter compiler flags</li>
+  <li>command line parameter passing</li>
+  <li>fix to xsltApplyTemplates from William M. Brack</li>
+  <li>added the XSLTMark in the regression tests as well as document()</li>
+</ul><h3>0.6.0: Mar 22 2001</h3><ul><li>another beta</li>
+  <li>requires 2.3.5, which provide XPath expression compilation support</li>
+  <li>document() extension should function properly</li>
+  <li>fixed a number or reported bugs</li>
+</ul><h3>0.5.0: Mar 10 2001</h3><ul><li>fifth beta</li>
+  <li>some optimization work, for the moment 2 XSLT transform cannot use the
+    same stylesheet at the same time (to be fixed)</li>
+  <li>fixed problems with handling of tree results</li>
+  <li>fixed a reported strip-spaces problem</li>
+  <li>added more reported/fixed bugs to the test suite</li>
+  <li>incorporated William M. Brack fix for imports and global variables as
+    well as patch for with-param support in apply-templates</li>
+  <li>a bug fix on for-each</li>
+</ul><h3>0.4.0: Mar 1 2001</h3><ul><li>fourth beta test, released at the same time of libxml2-2.3.3</li>
+  <li>bug fixes</li>
+  <li>some optimization</li>
+  <li>started implement extension support, not finished</li>
+  <li>implemented but not tested multiple file output</li>
+</ul><h3>0.3.0: Feb 24 2001</h3><ul><li>third beta test, released at the same time of libxml2-2.3.2</li>
+  <li>lot of bug fixes</li>
+  <li>some optimization</li>
+  <li>added DocBook XSL based testsuite</li>
+</ul><h3>0.2.0: Feb 15 2001</h3><ul><li>second beta version, released at the same time as libxml2-2.3.1</li>
+  <li>getting close to feature completion, lot of bug fixes, some in the HTML
+    and XPath support of libxml</li>
+  <li>start becoming usable for real work. This version can now regenerate
+    the XML 2e HTML from the original XML sources and the associated
+    stylesheets (in <a href="http://www.w3.org/TR/REC-xml#b4d250b6c21">section I of the XML
+    REC</a>)</li>
+  <li>Still misses extension element/function/prefixes support. Support of
+    key() and document() is not complete</li>
+</ul><h3>0.1.0: Feb 8 2001</h3><ul><li>first beta version, released at the same time as libxml2-2.3.0</li>
+  <li>lots of bug fixes, first "testing" version, but incomplete</li>
+</ul><h3>0.0.1: Jan 25 2001</h3><ul><li>first alpha version released at the same time as libxml2-2.2.12</li>
+  <li>Framework in place, should work on simple examples, but far from being
+    feature complete</li>
+</ul><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/news.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/news.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/news.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xhtml="http://www.w3.org/1999/xhtml"
+                version="1.0">
+  <xsl:output method="text" encoding="ISO-8859-1"/>
+
+  <xsl:template match="/">
+    <xsl:text>
+        NEWS file for libxslt
+
+  Note that this is automatically generated from the news webpage at:
+       http://xmlsoft.org/XSLT/news.html
+
+</xsl:text>
+    <xsl:apply-templates select="//xhtml:h3[1]/.."/>
+  </xsl:template>
+  <xsl:template match="xhtml:h3">
+    <xsl:text>
+</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>:
+</xsl:text>
+  </xsl:template>
+  <xsl:template match="xhtml:ul">
+    <xsl:apply-templates select=".//xhtml:li"/>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+  <xsl:template match="xhtml:li">
+    <xsl:text>   - </xsl:text>
+    <xsl:value-of select="."/>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+  <xsl:template match="xhtml:a">
+    <xsl:value-of select="."/>
+    <xsl:text> at 
+</xsl:text>
+    <xsl:value-of select="@href"/>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/doc/node.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/node.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/object.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/object.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/processing.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/processing.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/python.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/python.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/python.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>Python and bindings</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>Python and bindings</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>There is a number of language bindings and wrappers available for libxml2,
+the list below is not exhaustive. Please contact the <a href="http://mail.gnome.org/mailman/listinfo/xml-bindings">xml-bindings at gnome.org</a>
+(<a href="http://mail.gnome.org/archives/xml-bindings/">archives</a>) in
+order to get updates to this list or to discuss the specific topic of libxml2
+or libxslt wrappers or bindings:</p><ul><li><a href="http://mail.gnome.org/archives/xml/2001-March/msg00014.html">Matt
+    Sergeant</a> developped <a href="http://axkit.org/download/">XML::LibXML
+    and XML::LibXSLT</a>, Perl wrappers for libxml2/libxslt as part of the <a href="http://axkit.com/">AxKit XML application server</a></li>
+  <li><a href="mailto:dkuhlman at cutter.rexx.com">Dave Kuhlman</a> provides and
+    earlier version of the libxml/libxslt <a href="http://www.rexx.com/~dkuhlman">wrappers for Python</a></li>
+  <li>Petr Kozelka provides <a href="http://sourceforge.net/projects/libxml2-pas">Pascal units to glue
+    libxml2</a> with Kylix, Delphi and other Pascal compilers</li>
+  <li>Wai-Sun "Squidster" Chia provides <a href="http://www.rubycolor.org/arc/redist/">bindings for Ruby</a>  and
+    libxml2 bindings are also available in Ruby through the <a href="http://libgdome-ruby.berlios.de/">libgdome-ruby</a> module
+    maintained by Tobias Peters.</li>
+  <li>Steve Ball and contributors maintains <a href="http://tclxml.sourceforge.net/">libxml2 and libxslt bindings for
+    Tcl</a></li>
+  <li><a href="mailto:xmlwrapp at pmade.org">Peter Jones</a> maintains C++
+    bindings for libxslt within <a href="http://pmade.org/pjones/software/xmlwrapp/">xmlwrapp</a></li>
+  <li><a href="phillim2 at comcast.net">Mike Phillips</a> provides a module
+    using <a href="http://siasl.dyndns.org/projects/projects.html">libxslt
+    for PHP</a>.</li>
+  <li><a href="http://savannah.gnu.org/projects/classpathx/">LibxmlJ</a> is
+    an effort to create a 100% JAXP-compatible Java wrapper for libxml2 and
+    libxslt as part of GNU ClasspathX project.</li>
+  <li>Patrick McPhee provides Rexx bindings fof libxml2 and libxslt, look for
+    <a href="http://www.interlog.com/~ptjm/software.html">RexxXML</a>.</li>
+  <li><a href="http://www.satimage.fr/software/en/xml_suite.html">Satimage</a>
+    provides <a href="http://www.satimage.fr/software/en/downloads_osaxen.html">XMLLib
+    osax</a>. This is an osax for Mac OS X with a set of commands to
+    implement in AppleScript the XML DOM, XPATH and XSLT.</li>
+</ul><p>The libxslt Python module depends on the <a href="http://xmlsoft.org/python.html">libxml2 Python</a> module.</p><p>The distribution includes a set of Python bindings, which are garanteed to
+be maintained as part of the library in the future, though the Python
+interface have not yet reached the completeness of the C API.</p><p><a href="mailto:stephane.bidoul at softwareag.com">Stéphane Bidoul</a>
+maintains <a href="http://users.skynet.be/sbi/libxml-python/">a Windows port
+of the Python bindings</a>.</p><p>Note to people interested in building bindings, the API is formalized as
+<a href="libxslt-api.xml">an XML API description file</a> which allows to
+automate a large part of the Python bindings, this includes function
+descriptions, enums, structures, typedefs, etc... The Python script used to
+build the bindings is python/generator.py in the source distribution.</p><p>To install the Python bindings there are 2 options:</p><ul><li>If you use an RPM based distribution, simply install the <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2-python">libxml2-python
+    RPM</a> and the <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxslt-python">libxslt-python
+    RPM</a>.</li>
+  <li>Otherwise use the <a href="ftp://xmlsoft.org/libxml2/python/">libxml2-python
+    module distribution</a> corresponding to your installed version of
+    libxml2 and libxslt. Note that to install it you will need both libxml2
+    and libxslt installed and run "python setup.py build install" in the
+    module tree.</li>
+</ul><p>The distribution includes a set of examples and regression tests for the
+python bindings in the <code>python/tests</code> directory. Here are some
+excepts from those tests:</p><h3>basic.py:</h3><p>This is a basic test of XSLT interfaces: loading a stylesheet and a
+document, transforming the document and saving the result.</p><pre>import libxml2
+import libxslt
+
+styledoc = libxml2.parseFile("test.xsl")
+style = libxslt.parseStylesheetDoc(styledoc)
+doc = libxml2.parseFile("test.xml")
+result = style.applyStylesheet(doc, None)
+style.saveResultToFilename("foo", result, 0)
+style.freeStylesheet()
+doc.freeDoc()
+result.freeDoc()</pre><p>The Python module is called libxslt, you will also need the libxml2 module
+for the operations on XML trees. Let's have a look at the objects manipulated
+in that example and how is the processing done:</p><ul><li><code>styledoc</code> : is a libxml2 document tree. It is obtained by
+    parsing the XML file "test.xsl" containing the stylesheet.</li>
+  <li><code>style</code> : this is a precompiled stylesheet ready to be used
+    by the following transformations (note the plural form, multiple
+    transformations can resuse the same stylesheet).</li>
+  <li><code>doc</code> : this is the document to apply the transformation to.
+    In this case it is simply generated by parsing it from a file but any
+    other processing is possible as long as one get a libxml2 Doc. Note that
+    HTML tree are suitable for XSLT processing in libxslt. This is actually
+    how this page is generated !</li>
+  <li><code>result</code> : this is a document generated by applying the
+    stylesheet to the document. Note that some of the stylesheet informations
+    may be related to the serialization of that document and as in this
+    example a specific saveResultToFilename() method of the stylesheet should
+    be used to save it to a file (in that case to "foo").</li>
+</ul><p>Also note the need to explicitely deallocate documents with freeDoc()
+except for the stylesheet document which is freed when its compiled form is
+garbage collected.</p><h3>extfunc.py:</h3><p>This one is a far more complex test. It shows how to modify the behaviour
+of an XSLT transformation by passing parameters and how to extend the XSLT
+engine with functions defined in python:</p><pre>import libxml2
+import libxslt
+import string
+
+nodeName = None
+def f(ctx, str):
+    global nodeName
+
+    #
+    # Small check to verify the context is correcly accessed
+    #
+    try:
+        pctxt = libxslt.xpathParserContext(_obj=ctx)
+        ctxt = pctxt.context()
+        tctxt = ctxt.transformContext()
+        nodeName = tctxt.insertNode().name
+    except:
+        pass
+
+    return string.upper(str)
+
+libxslt.registerExtModuleFunction("foo", "http://example.com/foo", f)</pre><p>This code defines and register an extension function. Note that the
+function can be bound to any name (foo) and how the binding is also
+associated to a namespace name "http://example.com/foo". From an XSLT point
+of view the function just returns an upper case version of the string passed
+as a parameter. But the first part of the function also read some contextual
+information from the current XSLT processing environement, in that case it
+looks for the current insertion node in the resulting output (either the
+resulting document or the Result Value Tree being generated), and saves it to
+a global variable for checking that the access actually worked.</p><p>For more informations on the xpathParserContext and transformContext
+objects check the <a href="internals.html">libray internals description</a>.
+The pctxt is actually an object from a class derived from the
+libxml2.xpathParserContext() with just a couple more properties including the
+possibility to look up the XSLT transformation context from the XPath
+context.</p><pre>styledoc = libxml2.parseDoc("""
+&lt;xsl:stylesheet version='1.0'
+  xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+  xmlns:foo='http://example.com/foo'
+  xsl:exclude-result-prefixes='foo'&gt;
+
+  &lt;xsl:param name='bar'&gt;failure&lt;/xsl:param&gt;
+  &lt;xsl:template match='/'&gt;
+    &lt;article&gt;&lt;xsl:value-of select='foo:foo($bar)'/&gt;&lt;/article&gt;
+  &lt;/xsl:template&gt;
+&lt;/xsl:stylesheet&gt;
+""")</pre><p>Here is a simple example of how to read an XML document from a python
+string with libxml2. Note how this stylesheet:</p><ul><li>Uses a global parameter <code>bar</code></li>
+  <li>Reference the extension function f</li>
+  <li>how the Namespace name "http://example.com/foo" has to be bound to a
+    prefix</li>
+  <li>how that prefix is excluded from the output</li>
+  <li>how the function is called from the select</li>
+</ul><pre>style = libxslt.parseStylesheetDoc(styledoc)
+doc = libxml2.parseDoc("&lt;doc/&gt;")
+result = style.applyStylesheet(doc, { "bar": "'success'" })
+style.freeStylesheet()
+doc.freeDoc()</pre><p>that part is identical, to the basic example except that the
+transformation is passed a dictionnary of parameters. Note that the string
+passed "success" had to be quoted, otherwise it is interpreted as an XPath
+query for the childs of root named "success".</p><pre>root = result.children
+if root.name != "article":
+    print "Unexpected root node name"
+    sys.exit(1)
+if root.content != "SUCCESS":
+    print "Unexpected root node content, extension function failed"
+    sys.exit(1)
+if nodeName != 'article':
+    print "The function callback failed to access its context"
+    sys.exit(1)
+
+result.freeDoc()</pre><p>That part just verifies that the transformation worked, that the parameter
+got properly passed to the engine, that the function f() got called and that
+it properly accessed the context to find the name of the insertion node.</p><h3>pyxsltproc.py:</h3><p>this module is a bit too long to be described there but it is basically a
+rewrite of the xsltproc command line interface of libxslt in Python. It
+provides nearly all the functionalities of xsltproc and can be used as a base
+module to write Python customized XSLT processors. One of the thing to notice
+are:</p><pre>libxml2.lineNumbersDefault(1)
+libxml2.substituteEntitiesDefault(1)</pre><p>those two calls in the main() function are needed to force the libxml2
+processor to generate DOM trees compliant with the XPath data model.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/redhat.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/redhat.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/search.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/search.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/search.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!--
+  This stylesheet is not used directly, but rather is processed by
+  xmllint with xinclude in order to "insert" the php code from the
+  file search.php.inc.
+
+  It processes a "generic" documentation page (search.templ) which
+  is produced by api.xsl, changes it from xhtml to html (because of
+  php limitations), and inserts the php code at the "right spot".
+  This "right spot" is a unique element generated by api.xsl with
+  the tag name "insert_php".  This script replaces that element.
+  In order to avoid parsing problems, php code is contained within
+  a <xsl:text disable-output-escaping="yes"> node.
+-->
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xhtml="http://www.w3.org/1999/xhtml"
+  xmlns:xi="http://www.w3.org/2003/XInclude"
+  exclude-result-prefixes="xhtml xi">
+
+  <xsl:output method="xml" omit-xml-declaration="yes"
+    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+    doctype-system="http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"/>
+
+  <!-- The <html> element is the root for our processing -->
+  <xsl:template match="xhtml:html">
+    <html>
+      <xsl:apply-templates/>
+    </html>
+  </xsl:template>
+
+  <!-- api.xsl has put a dummy tag at the insert point -->
+  <xsl:template match="xhtml:insert_php">
+    <xsl:text disable-output-escaping="yes">
+<!-- This will be replaced with the php code -->
+<xi:include parse="text" href="search.php.inc"/>
+    </xsl:text>
+  </xsl:template>
+
+  <!-- anything else just gets copied out -->
+  <xsl:template match="@*|node()">
+    <xsl:copy>
+      <xsl:apply-templates select="@*"/>
+      <xsl:apply-templates/>
+    </xsl:copy>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/doc/site.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/site.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/site.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,463 @@
+<?xml version="1.0"?>
+<!--
+  This stylesheet is imported by the other stylesheets (e.g. newapi.xsl
+  and api.xsl).  For flexibility, it depends upon a global param
+  which is normally defined in the importing stylesheet.  This is:
+   href_base	The most superior documentation directory (e.g. XML/)
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="xml" encoding="ISO-8859-1"
+      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+
+  <!-- dirname is used to 'choose' between libxslt and libexslt -->
+  <xsl:param name="dirname" select="''"/>
+  <!-- libname is the name of the library being documented -->
+  <xsl:param name="libname" select="'libxslt'"/>
+  <!-- logo_base points to the *.png logos used in headers -->
+  <xsl:param name="logo_base" select="''"/>
+
+  <!-- href_base gives the location of 'base documentation' files 
+       and can be changed by importing stylesheets -->
+  <xsl:variable name="href_base" select="''"/>
+
+  <xsl:variable name="home_base">
+    <xsl:choose>
+      <xsl:when test="$dirname != ''">
+        <xsl:value-of select = "'../'"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select = "''"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="menu_name" select="'Main Menu'"/>
+
+<!--
+ - returns the filename associated to an ID in the original file
+ -->
+  <xsl:template name="filename">
+    <xsl:param name="name" select="string(@href)"/>
+    <xsl:choose>
+      <xsl:when test="$name = '#Introducti'">
+        <xsl:text>intro.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#Documentat'">
+        <xsl:text>docs.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#Reporting'">
+        <xsl:text>bugs.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#help'">
+        <xsl:text>help.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#Help'">
+        <xsl:text>help.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#Downloads'">
+        <xsl:text>downloads.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#News'">
+        <xsl:text>news.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#Contributi'">
+        <xsl:text>contribs.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#xsltproc'">
+        <xsl:text>xsltproc2.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#API'">
+        <xsl:text>API.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#Extensions'">
+        <xsl:text>extensions.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#Internals'">
+        <xsl:text>internals.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#DocBook'">
+        <xsl:text>docbook.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#FAQ'">
+        <xsl:text>FAQ.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = '#Python'">
+        <xsl:text>python.html</xsl:text>
+      </xsl:when>
+      <xsl:when test="$name = ''">
+        <xsl:text>unknown.html</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$name"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+<!--
+ - The table of content
+ -->
+  <xsl:variable name="toc">
+    <form action="{$home_base}search.php"
+          enctype="application/x-www-form-urlencoded" method="get">
+      <input name="query" type="text" size="20" value=""/>
+      <input name="submit" type="submit" value="Search ..."/>
+    </form>
+    <ul>
+      <li><a href="index.html">Home</a></li>
+      <li><a href="http://xmlsoft.org/wiki">Wiki</a></li>
+      <xsl:for-each select="/html/body/h2">
+        <xsl:variable name="filename">
+          <xsl:call-template name="filename">
+            <xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <li>
+          <xsl:element name="a">
+            <xsl:attribute name="href">
+              <xsl:value-of select="$filename"/>
+            </xsl:attribute>
+            <xsl:value-of select="."/>
+          </xsl:element>
+        </li>
+      </xsl:for-each>
+
+      <xsl:choose>
+        <xsl:when test="$dirname != ''">
+	  <li><a href="../index.html" style="font-weight:bold">libxslt</a></li>
+	</xsl:when>
+	<xsl:otherwise>
+	  <li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li>
+          <li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li>
+	</xsl:otherwise>
+      </xsl:choose>
+
+      <li><a href="html/index.html" style="font-weight:bold">API Menu</a></li>
+      <li><a href="ChangeLog.html">ChangeLog</a></li>
+    </ul>
+  </xsl:variable>
+
+  <xsl:variable name="api">
+    <ul>
+      <li><a href="{$href_base}APIchunk0.html">Alphabetic</a></li>
+      <li><a href="{$href_base}APIconstructors.html">Constructors</a></li>
+      <li><a href="{$href_base}APIfunctions.html">Functions/Types</a></li>
+      <li><a href="{$href_base}APIfiles.html">Modules</a></li>
+      <li><a href="{$href_base}APIsymbols.html">Symbols</a></li>
+    </ul>
+  </xsl:variable>
+
+  <xsl:variable name="related">
+    <ul>
+      <xsl:choose>
+        <xsl:when test="$dirname = ''">
+      <li><a href="{$href_base}tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="{$href_base}tutorial2/libxslt_pipes.html">Tutorial2</a></li>
+      <li><a href="{$href_base}xsltproc.html">Man page for xsltproc</a></li>
+        </xsl:when>
+      </xsl:choose>
+      <li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li>
+      <li><a href="http://xmlsoft.org/">XML libxml2</a></li>
+      <li><a href="ftp://xmlsoft.org/">FTP</a></li>
+      <li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li>
+      <li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li>
+      <li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li>
+      <li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li>
+      <li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li>
+      <li><a href="http://www.mod-xslt2.com/">Apache module</a></li>
+      <li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li>
+      <li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li>
+    </ul>
+  </xsl:variable>
+
+  <xsl:template name="develtoc">
+    <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
+      <tr>
+        <td>
+          <table width="100%" border="0" cellspacing="1" cellpadding="3">
+            <tr>
+              <td colspan="1" bgcolor="#eecfa1" align="center">
+                <center>
+                  <b><xsl:value-of select="$menu_name"/></b>
+                </center>
+              </td>
+            </tr>
+            <tr>
+              <td bgcolor="#fffacd">
+                <xsl:copy-of select="$toc"/>
+              </td>
+            </tr>
+          </table>
+          <table width="100%" border="0" cellspacing="1" cellpadding="3">
+            <tr>
+              <td colspan="1" bgcolor="#eecfa1" align="center">
+                <center>
+                  <b>Related links</b>
+                </center>
+              </td>
+            </tr>
+            <tr>
+              <td bgcolor="#fffacd">
+                <xsl:copy-of select="$related"/>
+              </td>
+            </tr>
+          </table>
+          <table width="100%" border="0" cellspacing="1" cellpadding="3">
+            <tr>
+              <td colspan="1" bgcolor="#eecfa1" align="center">
+                <center>
+                  <b>API Indexes</b>
+                </center>
+              </td>
+            </tr>
+            <tr>
+              <td bgcolor="#fffacd">
+                <xsl:copy-of select="$api"/>
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+    </table>
+  </xsl:template>
+
+  <xsl:template mode="head" match="title">
+    <title>
+      <xsl:apply-templates/>
+    </title>
+  </xsl:template>
+  <xsl:template mode="head" match="meta">
+</xsl:template>
+
+<!--
+ - The global title
+ -->
+  <xsl:variable name="globaltitle" select="string(/html/body/h1[1])"/>
+<!--
+ - Write the styles in the head
+ -->
+  <xsl:template name="style">
+    <style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style>
+  </xsl:template>
+
+<!--
+ - Write the title box on top
+ -->
+  <xsl:template name="titlebox">
+    <xsl:param name="title" select="'Main Page'"/>
+    <table border="0" width="100%" cellpadding="5" cellspacing="0" align="center">
+      <tr>
+        <td width="120">
+          <a href="http://swpat.ffii.org/"><img src="{$logo_base}epatents.png" alt="Action against software patents"/></a>
+        </td>
+        <td width="180">
+          <a href="http://www.gnome.org/"><img src="{$logo_base}gnome2.png" alt="Gnome2 Logo"/></a>
+          <a href="http://www.w3.org/Status"><img src="{$logo_base}w3c.png" alt="W3C logo"/></a>
+          <a href="http://www.redhat.com"><img src="{$logo_base}redhat.gif" alt="Red Hat Logo"/></a>
+          <div align="left">
+            <a href="http://xmlsoft.org/XSLT/"><img src="{$logo_base}Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo"/></a>
+          </div>
+        </td>
+        <td>
+          <table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000">
+            <tr>
+              <td>
+                <table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd">
+                  <tr>
+                    <td align="center">
+                      <xsl:element name="h1">
+                        <xsl:value-of select="$globaltitle"/>
+                      </xsl:element>
+                      <xsl:element name="h2">
+                        <xsl:value-of select="$title"/>
+                      </xsl:element>
+                    </td>
+                  </tr>
+                </table>
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+    </table>
+  </xsl:template>
+
+<!--
+ - Handling of nodes in the body before the first H2, table of content
+ - Everything is just copied over, except href which may get rewritten
+ - and h1/h2/a at the top level
+ -->
+  <xsl:template priority="2" mode="subcontent" match="a">
+    <xsl:variable name="filename">
+      <xsl:call-template name="filename">
+        <xsl:with-param name="name" select="string(@href)"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:copy>
+      <xsl:attribute name="href">
+        <xsl:value-of select="$filename"/>
+      </xsl:attribute>
+      <xsl:apply-templates mode="subcontent" select="node()"/>
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template mode="subcontent" match="@*|node()">
+    <xsl:copy>
+      <xsl:apply-templates mode="subcontent" select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template mode="content" match="@*|node()">
+    <xsl:if test="name() != 'h1' and name() != 'h2'">
+      <xsl:copy>
+        <xsl:apply-templates mode="subcontent" select="@*|node()"/>
+      </xsl:copy>
+    </xsl:if>
+  </xsl:template>
+
+<!--
+ - Handling of nodes in the body after an H2
+ - Open a new file and dump all the siblings up to the next H2
+ -->
+  <xsl:template name="subfile">
+    <xsl:param name="header" select="following-sibling::h2[1]"/>
+    <xsl:variable name="filename">
+      <xsl:call-template name="filename">
+        <xsl:with-param name="name" select="concat('#', string($header/a[1]/@name))"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="title">
+      <xsl:value-of select="$header"/>
+    </xsl:variable>
+    <xsl:variable name="content">
+      <xsl:apply-templates mode="subfile" select=
+         "$header/following-sibling::*[preceding-sibling::h2[1] = $header and name() != 'h2' and position() != last()]"/>
+    </xsl:variable>
+    <xsl:call-template name="new_page">
+      <xsl:with-param name="filename" select="concat($dirname, $filename)"/>
+      <xsl:with-param name="title" select="$title"/>
+      <xsl:with-param name="target" select="$content"/>
+    </xsl:call-template>
+  </xsl:template>
+
+  <xsl:template mode="subfile" match="@*|node()">
+    <xsl:copy>
+      <xsl:apply-templates mode="content" select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+
+<!--
+ - Handling of the initial body and head HTML document
+ -->
+  <xsl:template match="body">
+    <xsl:variable name="firsth2" select="./h2[1]"/>
+    <xsl:variable name="rest2" select="./h2[position()&gt;1]"/>
+    <xsl:variable name="content">
+      <xsl:apply-templates mode="content" select="($firsth2/preceding-sibling::*)"/>
+      <xsl:for-each select="./h2">
+        <xsl:call-template name="subfile">
+          <xsl:with-param name="header" select="."/>
+        </xsl:call-template>
+      </xsl:for-each>
+    </xsl:variable>
+    <xsl:call-template name="generic_page">
+      <xsl:with-param name="title" select="$libname"/>
+      <xsl:with-param name="target" select="$content"/>
+    </xsl:call-template>
+
+  </xsl:template>
+
+  <xsl:template match="head">
+  <!--
+    The output <head> node is created during initial processing
+  -->
+  </xsl:template>
+
+  <xsl:template match="html">
+  <!--
+    The output <html> node is created during initial processing
+  -->
+    <xsl:apply-templates/>
+  </xsl:template>
+
+<!--
+  new_page creates a new output document using the parameter "filename", then calls upon
+  the template generic_page to do the actual page generation.
+-->
+  <xsl:template name="new_page">
+    <xsl:param name="filename"/>  <!-- Output filename -->
+    <xsl:param name="title"/>     <!-- Page title -->
+    <xsl:param name="target"/>    <!-- The nodes (RTF) to be copied into document -->
+    <xsl:document href="{$filename}" method="xml" encoding="ISO-8859-1"
+          doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+          doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+      <xsl:call-template name="generic_page">
+        <xsl:with-param name="title" select="$title"/>
+        <xsl:with-param name="target" select="$target"/>
+	  <xsl:with-param name="toc" select="$toc"/>
+      </xsl:call-template>
+    </xsl:document>
+  </xsl:template>
+
+<!--
+  generic_page produces the "standard" page used by all the different doc files.
+-->
+  <xsl:template name="generic_page">
+    <xsl:param name="title"/>
+    <xsl:param name="target"/>    <!-- The nodes (RTF) that make up the main page content -->
+      <html>
+        <head>
+        <xsl:call-template name="style"/>
+	<xsl:element name="title">
+	  <xsl:value-of select="$title"/>
+	</xsl:element>
+        </head>
+        <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
+          <xsl:call-template name="titlebox">
+	    <xsl:with-param name="title" select="$title"/>
+	  </xsl:call-template>
+          <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
+            <tr>
+              <td bgcolor="#8b7765">
+                <table border="0" cellspacing="0" cellpadding="2" width="100%">
+                  <tr>
+                    <td valign="top" width="200" bgcolor="#8b7765">
+                      <xsl:call-template name="develtoc"/>
+                    </td>
+                    <td valign="top" bgcolor="#8b7765">
+                      <table border="0" cellspacing="0" cellpadding="1" width="100%">
+                        <tr>
+                          <td>
+                            <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
+                              <tr>
+                                <td>
+                                  <table border="0" cellpadding="3" cellspacing="1" width="100%">
+                                    <tr>
+                                      <td bgcolor="#fffacd">
+                                        <xsl:copy-of select="$target"/>
+                                        <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
+                                      </td>
+                                    </tr>
+                                  </table>
+                                </td>
+                              </tr>
+                            </table>
+                          </td>
+                        </tr>
+                      </table>
+                    </td>
+                  </tr>
+                </table>
+              </td>
+            </tr>
+          </table>
+        </body>
+      </html>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/doc/smallfootonly.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/smallfootonly.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/stylesheet.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/stylesheet.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/templates.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/doc/templates.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslt_tutorial.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslt_tutorial.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslt_tutorial.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,98 @@
+<![CDATA[
+/*
+ * libxslt_tutorial.c: demo program for the XSL Transformation 1.0 engine
+ *
+ * based on xsltproc.c, by Daniel.Veillard at imag.fr
+ * by John Fleck 
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc.,  59 Temple Place - Suite 330, Cambridge, MA 02139, USA.
+ *
+ */ 
+
+#include <string.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/debugXML.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/xmlIO.h>
+#include <libxml/DOCBparser.h>
+#include <libxml/xinclude.h>
+#include <libxml/catalog.h>
+#include <libxslt/xslt.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/transform.h>
+#include <libxslt/xsltutils.h>
+
+
+
+extern int xmlLoadExtDtdDefaultValue;
+
+static void usage(const char *name) {
+    printf("Usage: %s [options] stylesheet file [file ...]\n", name);
+    printf("      --param name value : pass a (parameter,value) pair\n");
+
+}
+
+int
+main(int argc, char **argv) {
+	int i;
+	const char *params[16 + 1];
+	int nbparams = 0;
+	xsltStylesheetPtr cur = NULL;
+	xmlDocPtr doc, res;
+
+	if (argc <= 1) {
+		usage(argv[0]);
+		return(1);
+	}
+	
+
+ for (i = 1; i < argc; i++) {
+        if (argv[i][0] != '-')
+            break;
+	if ((!strcmp(argv[i], "-param")) ||
+                   (!strcmp(argv[i], "--param"))) {
+		i++;
+		params[nbparams++] = argv[i++];
+		params[nbparams++] = argv[i];
+		if (nbparams >= 16) {
+			fprintf(stderr, "too many params\n");
+			return (1);
+		}
+        }  else {
+            fprintf(stderr, "Unknown option %s\n", argv[i]);
+            usage(argv[0]);
+            return (1);
+        }
+    }
+
+	params[nbparams] = NULL;
+	xmlSubstituteEntitiesDefault(1);
+	xmlLoadExtDtdDefaultValue = 1;
+	cur = xsltParseStylesheetFile((const xmlChar *)argv[i]);
+	i++;
+	doc = xmlParseFile(argv[i]);
+	res = xsltApplyStylesheet(cur, doc, params);
+	xsltSaveResultToFile(stdout, res, cur);
+
+	xsltFreeStylesheet(cur);
+	xmlFreeDoc(res);
+	xmlFreeDoc(doc);
+
+        xsltCleanupGlobals();
+        xmlCleanupParser();
+	return(0);
+
+}
+]]>

Added: packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslttutorial.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslttutorial.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslttutorial.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,437 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html>
+<head>
+<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
+<title>libxslt Tutorial</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.41">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2702654"></a>libxslt Tutorial</h1></div>
+<div><h3 class="author">John Fleck</h3></div>
+<div><p class="releaseinfo">
+      This is version 0.4 of the libxslt Tutorial
+    </p></div>
+<div><p class="copyright">Copyright © 2001 John Fleck</p></div>
+<div><div class="legalnotice"><p>Permission is granted to copy, distribute and/or modify this
+	document under the terms of the <i>GNU Free Documentation
+	License</i>, Version 1.1 or any later version
+	published by the Free Software Foundation with no Invariant
+	Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of
+	the license can be found <a href="http://www.gnu.org/copyleft/fdl.html" target="_top">here</a>.</p></div></div>
+<hr>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt> <a href="#introduction">Introduction</a>
+</dt>
+<dt> <a href="#functions">Primary Functions</a>
+</dt>
+<dd><dl>
+<dt> <a href="#preparing">Preparing to Parse</a>
+</dt>
+<dt> <a href="#parsethestylesheet">Parse the Stylesheet</a>
+</dt>
+<dt> <a href="#parseinputfile">Parse the Input File</a>
+</dt>
+<dt> <a href="#applyingstylesheet">Applying the Stylesheet</a>
+</dt>
+<dt> <a href="#saveresult">Saving the result</a>
+</dt>
+<dt> <a href="#parameters">Parameters</a>
+</dt>
+<dt> <a href="#cleanup">Cleanup</a>
+</dt>
+</dl></dd>
+<dt>A <a href="#thecode">The Code</a>
+</dt>
+</dl>
+</div>
+<div class="abstract">
+<p>
+<a name="id2705766"></a><b>Abstract</b>
+</p>
+<p>A tutorial on building a simple application using the
+      libxslt library to perform
+      XSLT transformations to convert an
+      XML file into HTML.</p>
+</div>
+<div class="sect1">
+<a name="introduction"></a><div class="titlepage"><div><h2 class="title" style="clear: both">
+<a name="introduction"></a>Introduction</h2></div></div>
+<p>The Extensible Markup Language (XML) is a World
+    Wide Web Consortium standard for the exchange of structured data in text
+    form. Its popularity stems from its universality. Any computer can
+    read a text file. With the proper tools, any computer can read any other
+    computer's XML files.
+    </p>
+<p>One of the most important of those tools is XSLT:
+      Extensible Stylesheet Language Transformations. XSLT
+      is a declarative language that allows you to
+      translate your XML into arbitrary text output
+      using a stylesheet. libxslt provides the
+      functions to perform the transformation.
+    </p>
+<p>libxslt is a free C language library
+      written by Daniel Veillard for the GNOME project
+      allowing you to write programs that perform XSLT
+      transformations. 
+
+      <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">
+<a name="id2754803"></a>Note</h3>
+<p>
+	While libxslt was written
+	under the auspices of the GNOME project, it does not
+	depend on any GNOME libraries. None are used in the
+	example in this tutorial.
+	</p>
+</div>
+
+    </p>
+<p>This tutorial illustrates a simple program that reads an
+      XML file, applies a stylesheet and saves the resulting
+      output. This is not a program you would want to create
+      yourself. xsltproc, which is included with the
+      libxslt package, does the same thing and is
+      more robust and full-featured. The program written for this tutorial is a
+      stripped-down version of xsltproc designed to
+      illustrate the functionality of libxslt. 
+    </p>
+<p>The full code for xsltproc is in
+      <tt>xsltproc.c</tt> in the libxslt
+      distribution. It also is available <a href="http://cvs.gnome.org/lxr/source/libxslt/libxslt/xsltproc.c" target="_top">on the
+      web</a>.
+    </p>
+<p>References:
+      <div class="itemizedlist"><ul>
+<li><p>
+<a name="id2708005"></a><a href="http://www.w3.org/XML/" target="_top">W3C XML page</a>
+</p></li>
+<li><p>
+<a name="id2708026"></a><a href="http://www.w3.org/Style/XSL/" target="_top">W3C
+	  XSL page.</a>
+</p></li>
+<li><p>
+<a name="id2708047"></a><a href="http://xmlsoft.org/XSLT/" target="_top">libxslt</a>
+</p></li>
+</ul></div>
+
+    </p>
+</div>
+<div class="sect1">
+<a name="functions"></a><div class="titlepage"><div><h2 class="title" style="clear: both">
+<a name="functions"></a>Primary Functions</h2></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt> <a href="#preparing">Preparing to Parse</a>
+</dt>
+<dt> <a href="#parsethestylesheet">Parse the Stylesheet</a>
+</dt>
+<dt> <a href="#parseinputfile">Parse the Input File</a>
+</dt>
+<dt> <a href="#applyingstylesheet">Applying the Stylesheet</a>
+</dt>
+<dt> <a href="#saveresult">Saving the result</a>
+</dt>
+<dt> <a href="#parameters">Parameters</a>
+</dt>
+<dt> <a href="#cleanup">Cleanup</a>
+</dt>
+</dl>
+</div>
+<p>To transform an XML file, you must perform three
+    functions:
+      <div class="orderedlist"><ol type="1">
+<li><p>
+<a name="id2708093"></a>parse the input file</p></li>
+<li><p>
+<a name="id2708101"></a>parse the stylesheet</p></li>
+<li><p>
+<a name="id2708110"></a>apply the stylesheet</p></li>
+</ol></div>
+    </p>
+<div class="sect2">
+<a name="preparing"></a><div class="titlepage"><div><h3 class="title">
+<a name="preparing"></a>Preparing to Parse</h3></div></div>
+<p>Before you can begin parsing input files or stylesheets, there are
+      several steps you need to take to set up entity handling. These steps are
+	not unique to libxslt. Any
+	libxml2 program that parses
+      XML files would need to take similar steps. 
+      </p>
+<p>First, you need set up some libxml
+	housekeeping. Pass the integer value <i><tt>1</tt></i> to the
+	<tt>xmlSubstituteEntitiesDefault</tt> function, which tells
+	the libxml2 parser to substitute entities as
+	it parses your file. (Passing <i><tt>0</tt></i> causes
+	libxml2 to not perform entity substitution.)
+      </p>
+<p>Second, set <tt>xmlLoadExtDtdDefaultValue</tt> equal to
+	<i><tt>1</tt></i>. This tells libxml
+	to load external entity subsets. If you do not do this and your
+	input file includes entities through external subsets, you will get
+	errors.</p>
+</div>
+<div class="sect2">
+<a name="parsethestylesheet"></a><div class="titlepage"><div><h3 class="title">
+<a name="parsethestylesheet"></a>Parse the Stylesheet</h3></div></div>
+<p>Parsing the stylesheet takes a single function call, which takes a
+	variable of type xmlChar:
+	<pre class="programlisting">
+	  <tt>cur</tt> = xsltParseStylesheetFile((const xmlChar *)argv[i]);
+	</pre>
+	In this case, I cast the stylesheet file name, passed in as a
+	command line argument, to <i>xmlChar</i>. The return value
+	is of type <i>xsltStylesheetPtr</i>, a struct in memory
+	that contains the stylesheet tree and other information about the
+	stylesheet. It can be manipulated directly, but for this example you
+	will not need to.
+      </p>
+</div>
+<div class="sect2">
+<a name="parseinputfile"></a><div class="titlepage"><div><h3 class="title">
+<a name="parseinputfile"></a>Parse the Input File</h3></div></div>
+<p>Parsing the input file takes a single function call:
+	<pre class="programlisting">
+doc = xmlParseFile(argv[i]);
+	</pre>
+	It returns an <i>xmlDocPtr</i>, a struct in memory that
+	contains the document tree. It can be manipulated directly, but for this
+	example you will not need to.
+      </p>
+</div>
+<div class="sect2">
+<a name="applyingstylesheet"></a><div class="titlepage"><div><h3 class="title">
+<a name="applyingstylesheet"></a>Applying the Stylesheet</h3></div></div>
+<p>Now that you have trees representing the document and the stylesheet
+	in memory, apply the stylesheet to the document. The
+	function that does this is <tt>xsltApplyStylesheet</tt>:
+	<pre class="programlisting">
+res = xsltApplyStylesheet(cur, doc, params);
+	</pre>
+	The function takes an xsltStylesheetPtr and an
+	xmlDocPtr, the values returned by the previous two functions. The third
+	variable, <tt>params</tt> can be used to pass
+	XSLT parameters to the stylesheet. It is a
+	NULL-terminated array of name/value pairs of const char's.
+      </p>
+</div>
+<div class="sect2">
+<a name="saveresult"></a><div class="titlepage"><div><h3 class="title">
+<a name="saveresult"></a>Saving the result</h3></div></div>
+<p>libxslt includes a family of functions to use in
+	saving the resulting output. For this example,
+      <tt>xsltSaveResultToFile</tt> is used, and the results are
+      saved to stdout:
+
+	<pre class="programlisting">
+xsltSaveResultToFile(stdout, res, cur);
+	</pre>
+
+	<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">
+<a name="id2708587"></a>Note</h3>
+<p>libxml also contains output
+	    functions, such as <tt>xmlSaveFile</tt>, which can be
+	    used here. However, output-related information contained in the
+	    stylesheet, such as a declaration of the encoding to be used, will
+	    be lost if one of the libxslt save
+	    functions is not used.</p>
+</div>
+      </p>
+</div>
+<div class="sect2">
+<a name="parameters"></a><div class="titlepage"><div><h3 class="title">
+<a name="parameters"></a>Parameters</h3></div></div>
+<p>
+	In XSLT, parameters may be used as a way to pass
+	additional information to a
+	stylesheet. libxslt accepts
+	XSLT parameters as one of the values passed to
+	<tt>xsltApplyStylesheet</tt>.
+      </p>
+<p>
+	In the tutorial example and in xsltproc,
+	on which the tutorial example is based, parameters to be passed take the
+	form of key-value pairs. The program collects them from command line
+	arguments, inserting them in the array <tt>params</tt>, then
+	passes them to the function. The final element in the array is set to
+	<i><tt>NULL</tt></i>.
+
+	<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">
+<a name="id2708668"></a>Note</h3>
+<p>
+	    If a parameter being passed is a string rather than an
+	    XSLT node, it must be escaped. For the tutorial
+	    program, that would be done as follows:
+	    <b>tutorial]$ ./libxslt_tutorial --param rootid &quot;'asect1'&quot;
+	    stylesheet.xsl filename.xml</b>
+	  </p>
+</div>
+      </p>
+</div>
+<div class="sect2">
+<a name="cleanup"></a><div class="titlepage"><div><h3 class="title">
+<a name="cleanup"></a>Cleanup</h3></div></div>
+<p>After you are finished, libxslt and
+	libxml provide functions for deallocating
+      memory.
+      </p>
+<p>
+      
+	  <pre class="programlisting">
+	  xsltFreeStylesheet(cur);<a name="cleanupstylesheet"></a><img src="../images/callouts/1.png" alt="1" border="0">
+	  xmlFreeDoc(res);<a name="cleanupresults"></a><img src="../images/callouts/2.png" alt="2" border="0">
+	  xmlFreeDoc(doc);<a name="cleanupdoc"></a><img src="../images/callouts/3.png" alt="3" border="0">
+	  xsltCleanupGlobals();<a name="cleanupglobals"></a><img src="../images/callouts/4.png" alt="4" border="0">
+	  xmlCleanupParser();<a name="cleanupparser"></a><img src="../images/callouts/5.png" alt="5" border="0">
+
+	  </pre>
+	
+	  <div class="calloutlist">
+<a name="id2708994"></a><table border="0" summary="Callout list">
+<tr>
+<td width="5%" valign="top" align="left">
+<a name="id2709000"></a><a href="#cleanupstylesheet"><img src="../images/callouts/1.png" alt="1" border="0"></a> </td>
+<td valign="top" align="left"><p>Free the memory used by your stylesheet.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a name="id2709117"></a><a href="#cleanupresults"><img src="../images/callouts/2.png" alt="2" border="0"></a> </td>
+<td valign="top" align="left"><p>Free the memory used by the results document.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a name="id2709136"></a><a href="#cleanupdoc"><img src="../images/callouts/3.png" alt="3" border="0"></a> </td>
+<td valign="top" align="left"><p>Free the memory used by your original document.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a name="id2709155"></a><a href="#cleanupglobals"><img src="../images/callouts/4.png" alt="4" border="0"></a> </td>
+<td valign="top" align="left"><p>Free memory used by libxslt global
+	    variables</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a name="id2709176"></a><a href="#cleanupparser"><img src="../images/callouts/5.png" alt="5" border="0"></a> </td>
+<td valign="top" align="left"><p>Free memory used by the XML parser</p></td>
+</tr>
+</table>
+</div>
+      </p>
+</div>
+</div>
+<div class="appendix">
+<h2 class="title" style="clear: both">
+<a name="thecode"></a>A. The Code</h2>
+<p>
+<tt>libxslt_tutorial.c</tt>
+ <pre class="programlisting">
+/*
+ * libxslt_tutorial.c: demo program for the XSL Transformation 1.0 engine
+ *
+ * based on xsltproc.c, by Daniel.Veillard at imag.fr
+ * by John Fleck 
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc.,  59 Temple Place - Suite 330, Cambridge, MA 02139, USA.
+ *
+ */ 
+
+#include &lt;string.h&gt;
+#include &lt;libxml/xmlmemory.h&gt;
+#include &lt;libxml/debugXML.h&gt;
+#include &lt;libxml/HTMLtree.h&gt;
+#include &lt;libxml/xmlIO.h&gt;
+#include &lt;libxml/DOCBparser.h&gt;
+#include &lt;libxml/xinclude.h&gt;
+#include &lt;libxml/catalog.h&gt;
+#include &lt;libxslt/xslt.h&gt;
+#include &lt;libxslt/xsltInternals.h&gt;
+#include &lt;libxslt/transform.h&gt;
+#include &lt;libxslt/xsltutils.h&gt;
+
+
+
+extern int xmlLoadExtDtdDefaultValue;
+
+static void usage(const char *name) {
+    printf(&quot;Usage: %s [options] stylesheet file [file ...]\n&quot;, name);
+    printf(&quot;      --param name value : pass a (parameter,value) pair\n&quot;);
+
+}
+
+int
+main(int argc, char **argv) {
+	int i;
+	const char *params[16 + 1];
+	int nbparams = 0;
+	xsltStylesheetPtr cur = NULL;
+	xmlDocPtr doc, res;
+
+	if (argc &lt;= 1) {
+		usage(argv[0]);
+		return(1);
+	}
+	
+
+ for (i = 1; i &lt; argc; i++) {
+        if (argv[i][0] != '-')
+            break;
+	if ((!strcmp(argv[i], &quot;-param&quot;)) ||
+                   (!strcmp(argv[i], &quot;--param&quot;))) {
+		i++;
+		params[nbparams++] = argv[i++];
+		params[nbparams++] = argv[i];
+		if (nbparams &gt;= 16) {
+			fprintf(stderr, &quot;too many params\n&quot;);
+			return (1);
+		}
+        }  else {
+            fprintf(stderr, &quot;Unknown option %s\n&quot;, argv[i]);
+            usage(argv[0]);
+            return (1);
+        }
+    }
+
+	params[nbparams] = NULL;
+	xmlSubstituteEntitiesDefault(1);
+	xmlLoadExtDtdDefaultValue = 1;
+	cur = xsltParseStylesheetFile((const xmlChar *)argv[i]);
+	i++;
+	doc = xmlParseFile(argv[i]);
+	res = xsltApplyStylesheet(cur, doc, params);
+	xsltSaveResultToFile(stdout, res, cur);
+
+	xsltFreeStylesheet(cur);
+	xmlFreeDoc(res);
+	xmlFreeDoc(doc);
+
+        xsltCleanupGlobals();
+        xmlCleanupParser();
+	return(0);
+
+}
+
+</pre>
+
+    </p>
+</div>
+</div></body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslttutorial.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslttutorial.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/tutorial/libxslttutorial.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,288 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+<!ENTITY CODE SYSTEM "libxslt_tutorial.c">
+]>
+<article>
+  <articleinfo>
+    <title>libxslt Tutorial</title>
+    <copyright>
+      <year>2001</year>
+      <holder>John Fleck</holder>
+    </copyright>
+    <legalnotice id="legalnotice">
+
+      <para>Permission is granted to copy, distribute and/or modify this
+	document under the terms of the <citetitle>GNU Free Documentation
+	License</citetitle>, Version 1.1 or any later version
+	published by the Free Software Foundation with no Invariant
+	Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of
+	the license can be found <ulink type="http"
+	url="http://www.gnu.org/copyleft/fdl.html">here</ulink>.</para>
+
+  </legalnotice>
+    <author>
+      <firstname>John</firstname>
+      <surname>Fleck</surname>
+    </author>
+    <releaseinfo>
+      This is version 0.4 of the libxslt Tutorial
+    </releaseinfo>
+  </articleinfo>
+  <abstract>
+    <para>A tutorial on building a simple application using the
+      <application>libxslt</application> library to perform
+      <acronym>XSLT</acronym> transformations to convert an
+      <acronym>XML</acronym> file into <acronym>HTML</acronym>.</para>
+  </abstract>
+  <sect1 id="introduction">
+    <title>Introduction</title>
+
+    <para>The Extensible Markup Language (<acronym>XML</acronym>) is a World
+    Wide Web Consortium standard for the exchange of structured data in text
+    form. Its popularity stems from its universality. Any computer can
+    read a text file. With the proper tools, any computer can read any other
+    computer's <acronym>XML</acronym> files.
+    </para>
+
+    <para>One of the most important of those tools is <acronym>XSLT</acronym>:
+      Extensible Stylesheet Language Transformations. <acronym>XSLT</acronym>
+      is a declarative language that allows you to
+      translate your <acronym>XML</acronym> into arbitrary text output
+      using a stylesheet. <application>libxslt</application> provides the
+      functions to perform the transformation.
+    </para>
+   
+    <para><application>libxslt</application> is a free C language library
+      written by Daniel Veillard for the <acronym>GNOME</acronym> project
+      allowing you to write programs that perform <acronym>XSLT</acronym>
+      transformations. 
+
+      <note>
+	<para>
+	While <application>libxslt</application> was written
+	under the auspices of the <acronym>GNOME</acronym> project, it does not
+	depend on any <acronym>GNOME</acronym> libraries. None are used in the
+	example in this tutorial.
+	</para>
+      </note>
+
+    </para>
+
+    <para>This tutorial illustrates a simple program that reads an
+      <acronym>XML</acronym> file, applies a stylesheet and saves the resulting
+      output. This is not a program you would want to create
+      yourself. <application>xsltproc</application>, which is included with the
+      <application>libxslt</application> package, does the same thing and is
+      more robust and full-featured. The program written for this tutorial is a
+      stripped-down version of <application>xsltproc</application> designed to
+      illustrate the functionality of <application>libxslt</application>. 
+    </para>
+    <para>The full code for <application>xsltproc</application> is in
+      <filename>xsltproc.c</filename> in the <application>libxslt</application>
+      distribution. It also is available <ulink
+      url="http://cvs.gnome.org/lxr/source/libxslt/libxslt/xsltproc.c">on the
+      web</ulink>.
+    </para>
+
+    <para>References:
+      <itemizedlist>
+	<listitem>
+	  <para><ulink url="http://www.w3.org/XML/">W3C <acronym>XML</acronym> page</ulink></para>
+	</listitem>
+	<listitem>
+	  <para><ulink url="http://www.w3.org/Style/XSL/">W3C
+	  <acronym>XSL</acronym> page.</ulink></para>
+	</listitem>
+	<listitem>
+	  <para><ulink url="http://xmlsoft.org/XSLT/">libxslt</ulink></para>
+	</listitem>
+      </itemizedlist>
+
+    </para>
+  </sect1>
+
+  <sect1 id="functions">
+    <title>Primary Functions</title>
+    <para>To transform an <acronym>XML</acronym> file, you must perform three
+    functions:
+      <orderedlist>
+	<listitem>
+	  <para>parse the input file</para>
+	</listitem>
+	<listitem>
+	  <para>parse the stylesheet</para>
+	</listitem>
+	<listitem>
+	  <para>apply the stylesheet</para>
+	</listitem>
+      </orderedlist>
+    </para>
+    <sect2 id="preparing">
+      <title>Preparing to Parse</title>
+      <para>Before you can begin parsing input files or stylesheets, there are
+      several steps you need to take to set up entity handling. These steps are
+	not unique to <application>libxslt</application>. Any
+	<application>libxml2</application> program that parses
+      <acronym>XML</acronym> files would need to take similar steps. 
+      </para>
+      <para>First, you need set up some <application>libxml</application>
+	housekeeping. Pass the integer value <parameter>1</parameter> to the
+	<function>xmlSubstituteEntitiesDefault</function> function, which tells
+	the <application>libxml2</application> parser to substitute entities as
+	it parses your file. (Passing <parameter>0</parameter> causes
+	<application>libxml2</application> to not perform entity substitution.)
+      </para>
+
+      <para>Second, set <varname>xmlLoadExtDtdDefaultValue</varname> equal to
+	<parameter>1</parameter>. This tells <application>libxml</application>
+	to load external entity subsets. If you do not do this and your
+	input file includes entities through external subsets, you will get
+	errors.</para>
+    </sect2>
+    <sect2 id="parsethestylesheet">
+      <title>Parse the Stylesheet</title>
+      <para>Parsing the stylesheet takes a single function call, which takes a
+	variable of type <type>xmlChar</type>:
+	<programlisting>
+	  <varname>cur</varname> = xsltParseStylesheetFile((const xmlChar *)argv[i]);
+	</programlisting>
+	In this case, I cast the stylesheet file name, passed in as a
+	command line argument, to <emphasis>xmlChar</emphasis>. The return value
+	is of type <emphasis>xsltStylesheetPtr</emphasis>, a struct in memory
+	that contains the stylesheet tree and other information about the
+	stylesheet. It can be manipulated directly, but for this example you
+	will not need to.
+      </para>
+    </sect2>
+
+    <sect2 id="parseinputfile">
+      <title>Parse the Input File</title>
+      <para>Parsing the input file takes a single function call:
+	<programlisting>
+doc = xmlParseFile(argv[i]);
+	</programlisting>
+	It returns an <emphasis>xmlDocPtr</emphasis>, a struct in memory that
+	contains the document tree. It can be manipulated directly, but for this
+	example you will not need to.
+      </para>
+    </sect2>
+
+    <sect2 id="applyingstylesheet">
+      <title>Applying the Stylesheet</title>
+      <para>Now that you have trees representing the document and the stylesheet
+	in memory, apply the stylesheet to the document. The
+	function that does this is <function>xsltApplyStylesheet</function>:
+	<programlisting>
+res = xsltApplyStylesheet(cur, doc, params);
+	</programlisting>
+	The function takes an xsltStylesheetPtr and an
+	xmlDocPtr, the values returned by the previous two functions. The third
+	variable, <varname>params</varname> can be used to pass
+	<acronym>XSLT</acronym> parameters to the stylesheet. It is a
+	NULL-terminated array of name/value pairs of const char's.
+      </para>
+    </sect2>
+
+    <sect2 id="saveresult">
+      <title>Saving the result</title>
+      <para><application>libxslt</application> includes a family of functions to use in
+	saving the resulting output. For this example,
+      <function>xsltSaveResultToFile</function> is used, and the results are
+      saved to stdout:
+
+	<programlisting>
+xsltSaveResultToFile(stdout, res, cur);
+	</programlisting>
+
+	<note>
+	  <para><application>libxml</application> also contains output
+	    functions, such as <function>xmlSaveFile</function>, which can be
+	    used here. However, output-related information contained in the
+	    stylesheet, such as a declaration of the encoding to be used, will
+	    be lost if one of the <application>libxslt</application> save
+	    functions is not used.</para>
+	</note>
+      </para>
+    </sect2>
+
+    <sect2 id="parameters">
+      <title>Parameters</title>
+      <para>
+	In <acronym>XSLT</acronym>, parameters may be used as a way to pass
+	additional information to a
+	stylesheet. <application>libxslt</application> accepts
+	<acronym>XSLT</acronym> parameters as one of the values passed to
+	<function>xsltApplyStylesheet</function>.
+      </para>
+      
+      <para>
+	In the tutorial example and in <application>xsltproc</application>,
+	on which the tutorial example is based, parameters to be passed take the
+	form of key-value pairs. The program collects them from command line
+	arguments, inserting them in the array <varname>params</varname>, then
+	passes them to the function. The final element in the array is set to
+	<parameter>NULL</parameter>.
+
+	<note>
+	  <para>
+	    If a parameter being passed is a string rather than an
+	    <acronym>XSLT</acronym> node, it must be escaped. For the tutorial
+	    program, that would be done as follows:
+	    <command>tutorial]$ ./libxslt_tutorial --param rootid "'asect1'"
+	    stylesheet.xsl filename.xml</command>
+	  </para>
+	</note>
+      </para>
+
+    </sect2>
+
+    <sect2 id="cleanup">
+      <title>Cleanup</title>
+      <para>After you are finished, <application>libxslt</application> and
+	<application>libxml</application> provide functions for deallocating
+      memory.
+      </para>
+
+      <para>
+      
+	  <programlisting>
+	  xsltFreeStylesheet(cur);<co id="cleanupstylesheet" />
+	  xmlFreeDoc(res);<co id="cleanupresults" />
+	  xmlFreeDoc(doc);<co id="cleanupdoc" />
+	  xsltCleanupGlobals();<co id="cleanupglobals" />
+	  xmlCleanupParser();<co id="cleanupparser" />
+
+	  </programlisting>
+	
+	  <calloutlist>
+	    <callout arearefs="cleanupstylesheet">
+	    <para>Free the memory used by your stylesheet.</para>
+	  </callout>
+	  <callout arearefs="cleanupresults">
+	    <para>Free the memory used by the results document.</para>
+	  </callout>
+	  <callout arearefs="cleanupdoc">
+	    <para>Free the memory used by your original document.</para>
+	  </callout>
+	  <callout arearefs="cleanupglobals">
+	    <para>Free memory used by <application>libxslt</application> global
+	    variables</para>
+	  </callout>
+	  <callout arearefs="cleanupparser">
+	    <para>Free memory used by the <acronym>XML</acronym> parser</para>
+	  </callout>
+	</calloutlist>
+      </para>
+    </sect2>
+
+  </sect1>
+
+  <appendix id="thecode">
+    <title>The Code</title>
+    <para><filename>libxslt_tutorial.c</filename>
+ <programlisting>&CODE;</programlisting>
+
+    </para>
+  </appendix>
+</article>

Added: packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,139 @@
+/*
+ * libxslt_pipes.c: a program for performing a series of XSLT
+ * transformations
+ *
+ * Writen by Panos Louridas, based on libxslt_tutorial.c by John Fleck.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc.,  59 Temple Place - Suite 330, Cambridge, MA 02139, USA.
+ *
+ */ 
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <libxslt/transform.h>
+#include <libxslt/xsltutils.h>
+
+extern int xmlLoadExtDtdDefaultValue;
+
+static void usage(const char *name) {
+    printf("Usage: %s [options] stylesheet [stylesheet ...] file [file ...]\n",
+            name);
+    printf("      --out file: send output to file\n");
+    printf("      --param name value: pass a (parameter,value) pair\n");
+}
+
+int main(int argc, char **argv) {
+    int arg_indx;
+    const char *params[16 + 1];
+    int params_indx = 0;
+    int stylesheet_indx = 0;
+    int file_indx = 0;
+    int i, j, k;
+    FILE *output_file = stdout;
+    xsltStylesheetPtr *stylesheets = 
+        (xsltStylesheetPtr *) calloc(argc, sizeof(xsltStylesheetPtr));
+    xmlDocPtr *files = (xmlDocPtr *) calloc(argc, sizeof(xmlDocPtr));
+    xmlDocPtr doc, res;
+    int return_value = 0;
+        
+    if (argc <= 1) {
+        usage(argv[0]);
+        return_value = 1;
+        goto finish;
+    }
+        
+    /* Collect arguments */
+    for (arg_indx = 1; arg_indx < argc; arg_indx++) {
+        if (argv[arg_indx][0] != '-')
+            break;
+        if ((!strcmp(argv[arg_indx], "-param"))
+                || (!strcmp(argv[arg_indx], "--param"))) {
+            arg_indx++;
+            params[params_indx++] = argv[arg_indx++];
+            params[params_indx++] = argv[arg_indx];
+            if (params_indx >= 16) {
+                fprintf(stderr, "too many params\n");
+                return_value = 1;
+                goto finish;
+            }
+        }  else if ((!strcmp(argv[arg_indx], "-o"))
+                || (!strcmp(argv[arg_indx], "--out"))) {
+            arg_indx++;
+            output_file = fopen(argv[arg_indx], "w");
+        } else {
+            fprintf(stderr, "Unknown option %s\n", argv[arg_indx]);
+            usage(argv[0]);
+            return_value = 1;
+            goto finish;
+        }
+    }
+    params[params_indx] = 0;
+
+    /* Collect and parse stylesheets and files to be transformed */
+    for (; arg_indx < argc; arg_indx++) {
+        char *argument =
+            (char *) malloc(sizeof(char) * (strlen(argv[arg_indx]) + 1));
+        strcpy(argument, argv[arg_indx]);
+        if (strtok(argument, ".")) {
+            char *suffix = strtok(0, ".");
+            if (suffix && !strcmp(suffix, "xsl")) {
+                stylesheets[stylesheet_indx++] =
+                    xsltParseStylesheetFile((const xmlChar *)argv[arg_indx]);;
+            } else {
+                files[file_indx++] = xmlParseFile(argv[arg_indx]);
+            }
+        } else {
+            files[file_indx++] = xmlParseFile(argv[arg_indx]);
+        }
+        free(argument);
+    }
+
+    xmlSubstituteEntitiesDefault(1);
+    xmlLoadExtDtdDefaultValue = 1;
+
+    /* Process files */
+    for (i = 0; files[i]; i++) {
+        doc = files[i];
+        res = doc;
+        for (j = 0; stylesheets[j]; j++) {
+            res = xsltApplyStylesheet(stylesheets[j], doc, params);
+            xmlFreeDoc(doc);
+            doc = res;
+        }
+
+        if (stylesheets[0]) {
+            xsltSaveResultToFile(output_file, res, stylesheets[j-1]);
+        } else {
+            xmlDocDump(output_file, res);
+        }
+        xmlFreeDoc(res);
+    }
+
+    fclose(output_file);
+
+    for (k = 0; stylesheets[k]; k++) {
+        xsltFreeStylesheet(stylesheets[k]);
+    }
+
+    xsltCleanupGlobals();
+    xmlCleanupParser();
+
+ finish:
+    free(stylesheets);
+    free(files);
+    return(return_value);
+}

Added: packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,624 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>libxslt: An Extended Tutorial</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.0"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="libxslt"></a>libxslt: An Extended Tutorial</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Panos</span> <span class="surname">Louridas</span></h3></div></div><div><p class="copyright">Copyright © 2004 Panagiotis Louridas</p></div><div><div class="legalnotice"><a name="id2839296"></a><p>Permission is hereby granted, free of charge, to
+  any person obtaining a copy of this software and associated
+  documentation files (the "Software"), to deal in the Software
+  without restriction, including without limitation the rights to use,
+  copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software
+  is furnished to do so, subject to the following conditions:
+  </p><p>The above copyright notice and this permission notice shall be
+  included in all copies or substantial portions of the Software.
+  </p><p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#id2771767">Introduction</a></span></dt><dt><span class="sect1"><a href="#id2771862">Setting the Scene</a></span></dt><dt><span class="sect1"><a href="#id2799225">Program Start</a></span></dt><dt><span class="sect1"><a href="#id2799358">Arguments Collection</a></span></dt><dt><span class="sect1"><a href="#id2799396">Parsing</a></span></dt><dt><span class="sect1"><a href="#id2771038">File Processing</a></span></dt><dt><span class="sect1"><a href="#id2771153">*NIX Compiling and Linking</a></span></dt><dt><span class="sect1"><a href="#windows-build">MS-Windows Compiling and
+Linking</a></span></dt><dd><dl><dt><span class="sect2"><a href="#windows-ports-build">Building the Ports in
+MS-Windows</a></span></dt></dl></dd><dt><span class="sect1"><a href="#id2839739">zlib, iconv and All That</a></span></dt><dt><span class="sect1"><a href="#id2839841">The Complete Program</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2771767"></a>Introduction</h2></div></div></div><p>The Extensible Stylesheet Language Transformations (XSLT)
+specification defines an XML template language for transforming XML
+documents. An XSLT engine reads an XSLT file and an XML document and
+transforms the document accordingly.</p><p>We want to perform a series of XSLT transformations to a series
+of documents. An obvious solution is to use the operating system's
+pipe mechanism and start a series of transformation processes, each
+one taking as input the output of the previous transformation. It
+would be interesting, though, and perhaps more efficient if we could
+do our job within a single process.</p><p>libxslt is a library for doing XSLT transformations. It is built
+on libxml, which is a library for handling XML documents. libxml and
+libxslt are used by the GNOME project. Although developed in the
+*NIX world, both libxml and libxslt have been
+ported to the MS-Windows platform. In principle an application using
+libxslt should be easily portable between the two systems. In
+practice, however, there arise various wrinkles. These do not have
+anything to do with libxml or libxslt per se, but rather with the
+different compilation and linking procedures of each system.</p><p>The presented solution is an extension of <a href="http://xmlsoft.org/XSLT/tutorial/libxslttutorial.html" target="_top">John
+Fleck's libxslt tutorial</a>, but the present tutorial tries to be
+self-contained. It develops a minimal libxslt application
+(libxslt_pipes) that can perform a series of transformations to a
+series of files in a pipe-like manner. An invocation might be:</p><p>
+  <b class="userinput"><tt>
+    libxslt_pipes --out results.xml foo.xsl bar.xsl doc1.xml doc2.xml
+  </tt></b>
+</p><p>The <tt class="filename">foo.xsl</tt> stylesheet will be applied to
+<tt class="filename"> doc1.xml</tt> and the <tt class="filename">bar.xsl</tt>
+stylesheet will be applied to the resulting document; then the two
+stylesheets will be applied in the same sequence to
+<tt class="filename">bar.xsl</tt>. The results are sent to
+<tt class="filename">results.xml</tt> (if no output is specified they are
+sent to standard output).</p><p>The application is compiled in both *NIX
+systems and MS-Windows, where by *NIX systems we
+mean Linux, BSD, and other members of the
+family. The gcc suite is used in the *NIX platform
+and the Microsoft compiler and linker are used in the
+MS-Windows platform.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2771862"></a>Setting the Scene</h2></div></div></div><p>
+We need to include the necessary libraries:
+
+</p><pre class="programlisting">
+  
+  #include &lt;stdio.h&gt;
+  #include &lt;string.h&gt;
+  #include &lt;stdlib.h&gt;
+  
+  #include &lt;libxslt/transform.h&gt;
+  #include &lt;libxslt/xsltutils.h&gt;
+  
+</pre><p>
+</p><p>The first group of include directives includes general C
+libraries. The libraries we need to make libxslt work are in the
+second group. The <tt class="filename">transform.h</tt> header file
+declares the API that does the bulk of the actual processing. The
+<tt class="filename">xsltutils.h</tt> header file declares the API for some
+generic utility functions of the XSLT engine; among other things,
+saving to a file, which is what we need it for.</p><p>
+If our input files contain entities through external subsets, we need
+to tell libxslt to load them. The global variable
+<tt class="function">xmlLoadExtDtdDefaultValue</tt>, defined in
+<tt class="filename">libxml/globals.h</tt>, is responsible for that. As the
+variable is defined outside our program we must specify external
+linkage:
+  </p><pre class="programlisting">
+    extern int xmlLoadExtDtdDefaultValue;
+  </pre><p>
+</p><p>
+The program is called from the command line. We anticipate that the
+user may not call it the right way, so we define a function for
+describing its usage:
+</p><pre class="programlisting">
+  static void usage(const char *name) {
+      printf("Usage: %s [options] stylesheet [stylesheet ...] file [file ...]\n",
+          name);
+      printf("      --out file: send output to file\n");
+      printf("      --param name value: pass a (parameter,value) pair\n");
+  }
+</pre><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2799225"></a>Program Start</h2></div></div></div><p>We need to define a few variables that are used throughout the
+program:
+</p><pre class="programlisting">
+    int main(int argc, char **argv) {
+        int arg_indx;
+	const char *params[16 + 1];
+	int params_indx = 0;
+	int stylesheet_indx = 0;
+	int file_indx = 0;
+	int i, j, k;
+	FILE *output_file = stdout;
+	xsltStylesheetPtr *stylesheets = 
+	    (xsltStylesheetPtr *) calloc(argc, sizeof(xsltStylesheetPtr));
+	    xmlDocPtr *files = (xmlDocPtr *) calloc(argc, sizeof(xmlDocPtr));
+	int return_value = 0;
+</pre><p>
+</p><p>The <tt class="varname">arg_indx</tt> integer is an index used to
+iterate over the program arguments. The <tt class="varname">params</tt>
+string array is used to collect the XSLT parameters. In XSLT,
+additional information may be passed to the processor via
+parameters. The user of the program specifies these in key-value pairs
+in the command line following the <b class="userinput"><tt>--param</tt></b>
+command line argument. We accept up to 8 such key-value pairs, which
+we track with the <tt class="varname">params_indx</tt> integer. libxslt
+expects the parameters array to be null-terminated, so we have to
+allocate one extra place (16 + 1) for it. The
+<tt class="varname">file_indx</tt> is an index to iterate over the files to
+be processed. The <tt class="varname">i</tt>, <tt class="varname">j</tt>,
+<tt class="varname">k</tt> integers are additional indices for iteration
+purposes, and <tt class="varname">return_value</tt> is the value the program
+returns to the operating system. We expect the result of the
+transformation to be the standard output in most cases, but the user
+may wish otherwise via the <tt class="option">--out</tt> command line
+option, so we need to keep track of the situation with the
+<tt class="varname">output_file</tt> file pointer.</p><p>In libxslt, XSLT stylesheets are internally stored in
+<span class="structname">xsltStylesheet</span> structures; similarly, in
+libxml XML documents are stored in <span class="structname">xmlDoc</span>
+structures. <span class="type">xsltStylesheetPtr</span> and <span class="type">xmlDocPtr</span>
+are simply typedefs of pointers to them. The user may specify any
+number of stylesheets that will be applied to the documents one after
+the other. To save time we parse the stylesheets and the documents as
+we read them from the command line and keep the parsed representation
+of them. The parsed results are kept in arrays. These are dynamically
+allocated and sized to the number of arguments; this wastes some
+space, but not much (the size of <span class="type">xmlStyleSheetPtr</span> and
+<span class="type">xmlDocPtr</span> is the size of a pointer) and simplifies code
+later on. The array memory is allocated with
+<tt class="function">calloc</tt> to ensure contents are initialised to
+zero.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2799358"></a>Arguments Collection</h2></div></div></div><p>If the program gets no arguments at all, we print the usage
+description, set the program return value to 1 and exit. Instead of
+returning directly we go to (literally) to the end of the program text
+where some housekeeping takes place.</p><p>
+</p><pre class="programlisting">
+  
+    if (argc &lt;= 1) {
+        usage(argv[0]);
+        return_value = 1;
+        goto finish;
+    }
+        
+    /* Collect arguments */
+    for (arg_indx = 1; arg_indx &lt; argc; arg_indx++) {
+        if (argv[arg_indx][0] != '-')
+            break;
+        if ((!strcmp(argv[arg_indx], "-param"))
+                || (!strcmp(argv[arg_indx], "--param"))) {
+            arg_indx++;
+            params[params_indx++] = argv[arg_indx++];
+            params[params_indx++] = argv[arg_indx];
+            if (params_indx &gt;= 16) {
+                fprintf(stderr, "too many params\n");
+                return_value = 1;
+                goto finish;
+            }
+        }  else if ((!strcmp(argv[arg_indx], "-o"))
+                || (!strcmp(argv[arg_indx], "--out"))) {
+            arg_indx++;
+            output_file = fopen(argv[arg_indx], "w");
+        } else {
+            fprintf(stderr, "Unknown option %s\n", argv[arg_indx]);
+            usage(argv[0]);
+            return_value = 1;
+            goto finish;
+        }
+    }
+    params[params_indx] = 0;
+    
+</pre><p>
+</p><p>If the user passes arguments we have to collect them. This is a
+matter of iterating over the program argument list while we encounter
+arguments starting with a dash. The XSLT parameters are put into the
+<tt class="varname">params</tt> array and the <tt class="varname">output_file</tt>
+is set to the user request, if any. After processing all the parameter
+key-value pairs we set the last element of the <tt class="varname">params</tt>
+array to null.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2799396"></a>Parsing</h2></div></div></div><p>The rest of the argument list is taken to be stylesheets and
+files to be transformed. Stylesheets are identified by their suffix,
+which is expected to be xsl (case sensitive). All other files are
+assumed to be XML documents, regardless of suffix.</p><p>
+</p><pre class="programlisting">
+  
+    /* Collect and parse stylesheets and files to be transformed */
+    for (; arg_indx &lt; argc; arg_indx++) {
+        char *argument =
+            (char *) malloc(sizeof(char) * (strlen(argv[arg_indx]) + 1));
+        strcpy(argument, argv[arg_indx]);
+        if (strtok(argument, ".")) {
+            char *suffix = strtok(0, ".");
+            if (suffix &amp;&amp; !strcmp(suffix, "xsl")) {
+                stylesheets[stylesheet_indx++] =
+                    xsltParseStylesheetFile((const xmlChar *)argv[arg_indx]);;
+            } else {
+                files[file_indx++] = xmlParseFile(argv[arg_indx]);
+            }
+        } else {
+            files[file_indx++] = xmlParseFile(argv[arg_indx]);
+        }
+        free(argument);
+    }
+  
+</pre><p>
+</p><p>Stylesheets are parsed using the
+<tt class="function">xsltParseStylesheetFile</tt>
+function. <tt class="function">xsltParseStylesheetFile</tt> takes as
+argument a pointer to an <span class="type">xmlChar</span>, a typedef of an
+unsigned char; in effect, the filename of the stylesheet. The
+resulting <span class="type">xsltStylesheetPtr</span> is placed in the
+<tt class="varname">stylesheets</tt> array. In the same vein, XML files are
+parsed using the <tt class="function">xmlParseFile</tt> function that takes
+as argument the file's name; the resulting <span class="type">xmlDocPtr</span> is
+placed in the <tt class="varname">files</tt> array.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2771038"></a>File Processing</h2></div></div></div><p>All stylesheets are applied to each file one after the
+other. Stylesheets are applied with the
+<tt class="function">xsltApplyStylesheet</tt> function that takes as
+argument the stylesheet to be applied, the file to be transformed and
+any parameters we have collected. The in-memory representation of an
+XML document takes space, which we free using the
+<tt class="function">xmlFreeDoc</tt> function. The file is then saved to the
+specified output.</p><p>
+</p><pre class="programlisting">
+  
+    /* Process files */
+    for (i = 0; files[i]; i++) {
+        doc = files[i];
+        res = doc;
+        for (j = 0; stylesheets[j]; j++) {
+            res = xsltApplyStylesheet(stylesheets[j], doc, params);
+            xmlFreeDoc(doc);
+            doc = res;
+        }
+
+        if (stylesheets[0]) {
+            xsltSaveResultToFile(output_file, res, stylesheets[j-1]);
+        } else {
+            xmlDocDump(output_file, res);
+        }
+        xmlFreeDoc(res);
+    }
+
+    fclose(output_file);
+
+    for (k = 0; stylesheets[k]; k++) {
+        xsltFreeStylesheet(stylesheets[k]);
+    }
+
+    xsltCleanupGlobals();
+    xmlCleanupParser();
+
+ finish:
+    free(stylesheets);
+    free(files);
+    return(return_value);
+    
+</pre><p>
+</p><p>To output an XML document we have in memory we use the
+<tt class="function">xlstSaveResultToFile</tt> function, where we specify
+the destination, the document and the stylesheet that has been applied
+to it. The stylesheet is required so that output-related information
+contained in the stylesheet, such as the encoding to be used, is used
+in output. If no transformation has taken place, which will happen
+when the user specifies no stylesheets at all in the command line, we
+use the <tt class="function">xmlDocDump</tt> libxml function that saves the
+source document to the file without further ado.</p><p>As parsed stylesheets take up space in memory, we take care to
+free that memory after use with a call to
+<tt class="function">xmlFreeStyleSheet</tt>. When all work is done, we
+clean up all global variables used by the XSLT library using
+<tt class="function">xsltCleanupGlobals</tt>. Likewise, all global memory
+allocated for the XML parser is reclaimed by a call to
+<tt class="function">xmlCleanupParser</tt>. Before returning we deallocate
+the memory allocated for the holding the pointers to the XML documents
+and stylesheets.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2771153"></a>*NIX Compiling and Linking</h2></div></div></div><p>Compiling and linking in a *NIX environment
+is easy, as the required libraries are almost certain to be already in
+place (remember that libxml and libxslt are used by the GNOME project,
+so they are present in most installations). The program can be
+dynamically linked so that its footprint is minimized, or statically
+linked, so that it stands by itself, carrying all required code.</p><p>For dynamic linking the following one liner will do:</p><p>
+<b class="userinput"><tt>gcc -o libxslt_pipes -Wall -I/usr/include/libxml2 -lxslt
+-lxml2 -L/usr/lib libxslt_pipes.c</tt></b>
+</p><p>We assume that the necessary header files are in <tt class="filename">/usr/include/libxml2</tt> and that the
+required libraries (<tt class="filename">libxslt.so</tt>,
+<tt class="filename">libxml2.so</tt>) are in <tt class="filename">/usr/lib</tt>.</p><p>In general, a program may need to link to additional libraries,
+depending on the processing it actually performs. A good way to start
+is to use the <span><b class="command">xslt-config</b></span> script. The
+<tt class="option">--help</tt> option displays usage
+information. Running</p><p>
+  <b class="userinput"><tt>
+    xslt-config --cflags
+  </tt></b>
+</p><p>we get compile flags, while running</p><p>
+  <b class="userinput"><tt>
+    xslt-config --libs
+  </tt></b>
+</p><p>we get the library settings for the linker.</p><p>For static linking we must list more libraries than we did for
+dynamic linking, as the libraries on which the libxsl and libxslt
+libraries depend are also needed. Using <span><b class="command">xslt-config</b></span>
+on a particular installation we create the following one-liner:</p><p>
+<b class="userinput"><tt>
+gcc -o libxslt_pipes -Wall -I/usr/include/libxml2 libxslt_pipes.c
+-static -L/usr/lib -lxslt -lxml2 -lz -lpthread -lm
+</tt></b>
+</p><p>If we get warnings to the effect that some function in
+statically linked applications requires at runtime the shared
+libraries used from the glibc version used for linking, that means
+that the binary is not completely static. Although we statically
+linked against the GNU C runtime library glibc, glibc uses external
+libraries to perform some of its functions. Same version libraries
+must be present on the system we want the application to run. One way
+to avoid this it to use an alternative C runtime, for example <a href="http://www.uclibc.org" target="_top">uClibc</a>, which requires obtaining
+and building a uClibc toolchain first (if the reason for trying to get
+a statically linked version of the program is to embed it somewhere,
+using uClibc might be a good idea anyway).
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="windows-build"></a>MS-Windows Compiling and
+Linking</h2></div></div></div><p>Compiling and linking in MS-Windows requires
+some attention. First, the MS-Windows ports must be
+downloaded and installed in the programming workstation. The ports are
+available in <a href="http://www.zlatkovic.com/libxml.en.html" target="_top">Igor
+Zlatkovi&#263;'s site</a>. We need the ports for iconv, zlib, libxml,
+and libxslt. In contrast to *NIX environments, we
+cannot assume that the libraries needed will be present in other
+computers where the program will be used. One solution is to
+distribute the program along with the necessary dynamic
+libraries. Another solution is to statically link the program so that
+only a single executable file will have to be distributed.</p><p>We assume that we have decompressed the downloaded ports and
+have placed the required contents of their <tt class="filename">include</tt> directories in an <tt class="filename">include</tt> directory in our file system. The
+required contents include everything apart from the <tt class="filename">libexslt</tt> directory of the libxslt port,
+as we are not using EXLST (an initiative to provide extensions to
+XSLT) in this project. In order to compile the program we have to make
+sure that all necessary header files are included. When using the
+Microsoft compiler this translates to adding the required
+<tt class="option">/I</tt> switches in the command line. If using a Visual
+Studio product the same effect is attained by specifying additional
+include directories in the compilation options. In the end, if the
+headers have been copied in <tt class="filename">C:\include</tt> the command line must contain
+<tt class="option">/I"C:\include" /I"C:\include\libslt"
+/I"C:\include\libxml"</tt>.</p><p>This being a C program, it needs to be compiled against an
+implementation of the C libraries. Microsoft provides various
+implementations. The ports, however, have been compiled against the
+<tt class="filename">msvcrt.dll</tt> implementation, so it is wise to use
+the same runtime in our project, lest we wish to come against
+unexpected runtime crashes. The <tt class="filename">msvcrt.dll</tt> is a
+multi-threaded implementation and is specified by giving
+<tt class="option">/MD</tt> as a compiler option. Unfortunately, the
+correspondence between the <tt class="option">/MD</tt> switch and
+<tt class="filename">msvcrt.dll</tt> breaks after version 6 of the
+Microsoft compiler. In version 7 and later (i.e., Visual Studio .NET),
+<tt class="option">/MD</tt> links against a different DLL; in version 7.1
+this is <tt class="filename">msvcrt71.dll</tt>. The end result of this bit
+of esoterica is that if you try to dynamically link your application
+with a compiler whose version is greater than 6, your program is
+likely to crash unexpectedly. Alternatively, you may wish to compile
+all iconv, zlib, libxml and libxslt yourself, using the new runtime
+library. This is not a tall order, and some details are given
+<a href="#windows-ports-build" title="Building the Ports in
+MS-Windows">below</a>.</p><p>There are three kinds of libraries in MS-Windows. Dynamically
+Linked Libraries (DLLs), like <tt class="filename">msvcrt.dll</tt> we met
+above, are used for dynamic linking; an application links to them at
+runtime, so the application does not include the code contained in
+them. Static libraries are used for static linking; an application
+adds the libraries' code to its own code at link time. Import
+libraries are used when building an application that uses DLLs. For
+the application to be built, the linker must somehow find the
+definitions of the functions that will be provided in runtime by the
+DLLs, otherwise it will complain about unresolved references. Import
+libraries contain function stubs that, for each DLL function we want
+to call, know where to look for it in the DLL. In essence, in order to
+use a DLL we must link against its corresponding import library. DLLs
+have a <tt class="filename">.dll</tt> suffix; static and import libraries
+both have a <tt class="filename">.lib</tt> suffix. In the MS-Windows ports
+of libxml and libxslt static libraries are distinguished by their name
+ending in <tt class="filename">_a.lib</tt>, while in the zlib port the
+import library is <tt class="filename">zdll.lib</tt> and the static library
+is <tt class="filename">zlib.lib</tt>. In what follows we assume we have a
+<tt class="filename">lib</tt> directory in our filesystem
+where we place the libraries we need for linking.</p><p>If we want to link dynamically we must make sure the <tt class="filename">lib</tt> directory contains
+<tt class="filename">iconv.lib</tt>, <tt class="filename">libxslt.lib</tt>,
+<tt class="filename">libxml2.lib</tt>, and
+<tt class="filename">zdll.lib</tt>. When using the Microsoft linker this
+translates to adding the required <tt class="option">/LIBPATH</tt>
+switch and the necessary libraries in the command line. In Visual
+Studio we must specify an additional library directory for <tt class="filename">lib</tt> and put the necessary libraries in
+the additional dependencies. In the end, the command line must include
+<tt class="option">/LIBPATH:"C:\lib" "lib\iconv.lib" "lib\libxslt.lib"
+"lib\libxml2.lib" "lib\zdll.lib"</tt>, provided the libraries'
+directory is <tt class="filename">C:\lib</tt>. In order
+for the resulting executable to run, the ports DLLs must be present;
+one way is to place all DLLs contained in the ports in the home
+directory of our application, and make sure they are distributed
+together.</p><p>If we want to link statically we must make sure the <tt class="filename">lib</tt> directory contains
+<tt class="filename">iconv_a.lib</tt>, <tt class="filename">libxslt_a.lib</tt>,
+<tt class="filename">libxml2_a.lib</tt>, and
+<tt class="filename">zlib.lib</tt>. Adding <tt class="filename">lib</tt> as a library directory and putting
+the necessary libraries in the additional dependencies, we get a
+command line that should include <tt class="option">/LIBPATH:"C:\lib"
+"lib\iconv_a.lib" "lib\libxslt_a.lib" "lib\libxml2_a.lib"
+"lib\zlib.lib"</tt>. The resulting executable is much bigger
+than if we linked dynamically; it is, however, self-contained and can
+be distributed more easily, in theory at least. In practice, however,
+the executable is not completely static. We saw that the ports are
+compiled against <tt class="filename">msvcrt.dll</tt>, so the program does
+require that DLL at runtime. Moreover, since when using a version of
+Microsoft developer tools with a version number greater than 6, we are
+no longer using <tt class="filename">msvcrt.dll</tt>, but another runtime
+like <tt class="filename">msvcrt71.dll</tt>, and we then need that DLL.  In
+contrast to <tt class="filename">msvcrt.dll</tt> it may not be present on
+the target computer, so we may have to copy it along.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="windows-ports-build"></a>Building the Ports in
+MS-Windows</h3></div></div></div><p>The source code of the ports is readily available on the web,
+one has to check the ports sites. Each port can be built without
+problems in an MS-Windows environment using Microsoft development
+tools.  The necessary command line tools (compiler, linker,
+<span><b class="command">nmake</b></span>) must be available. This means running a
+batch file called <span><b class="command">vcvars32.bat</b></span> that comes with
+Visual Studio (its exact location in the directory tree may vary
+depending on the version of Visual Studio, but a file search will find
+it anyway). Makefiles for the Microsoft tools are found in all
+ports. They are distinguished by their suffix, e.g.,
+<tt class="filename">Makefile.msvc</tt> or
+<tt class="filename">Makefile.msc</tt>. To build zlib it suffices to run
+<span><b class="command">nmake</b></span> against <tt class="filename">Makefile.msc</tt>
+(i.e., with the <tt class="option">/F</tt> option); similarly, to build
+<tt class="filename">iconv</tt> it suffices to run <span><b class="command">nmake</b></span>
+against <tt class="filename">Makefile.msvc</tt>. Building libxml and
+libxslt requires an extra configuration step; we must run the
+<tt class="filename">configure.js</tt> configuration script with the
+<span><b class="command">cscript</b></span> command. <tt class="filename">configure.js</tt>
+is found in the <tt class="filename">win32</tt> directory
+in the distributions. It is written in JScript, Microsoft's
+implementation of the ECMA 262 language specification (ECMAScript
+Edition 3), a JavaScript offspring. The configuration string takes a
+number of parameters detailing our environment and needs;
+<b class="userinput"><tt>cscript configure.js help</tt></b> documents
+them.</p><p>It is wise to read all documentation files in the source
+distributions before starting; moreover, pay attention to the
+dependencies between the ports. If we configure libxml and libxslt to
+use iconv and zlib we must build these two first and make sure their
+headers and libraries can be found by the compiler and the
+linker when building libxml and libxslt.</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2839739"></a>zlib, iconv and All That</h2></div></div></div><p>We saw that libxml and libxslt depend on various other
+libraries, for instance zlib, iconv, and so forth. Taking a look into
+them gives us clues on the capabilities of libxml and libxslt.</p><p><a href="http://www.zlib.org" target="_top">zlib</a> is a free general
+purpose lossless data compression library. It is a venerable
+workhorse; more than <a href="http://www.gzip.org/zlib/apps.html" target="_top">500 applications</a>
+(both commercial and open source) seem to use the library. libxml uses
+zlib so that it can read from or write to compressed files
+directly. The <tt class="function">xmlParseFile</tt> function can
+transparently parse a compressed document to produce an
+<span class="structname">xmlDoc</span>. If we want to create a compressed
+document with libxml we can use an
+<span class="structname">xmlTextWriterPtr</span> (obtained through
+<tt class="function">xmlNewTextWriterDoc</tt>), or another related
+structure from <tt class="filename">libxml/xmlwriter.h</tt>, with
+compression enabled.</p><p>XML allows documents to use a variety of different character
+encodings. <a href="http://www.gnu.org/software/libiconv" target="_top">iconv</a> is a free
+library for converting between different character encodings.  libxml
+provides a set of default converters for some encodings: UTF-8, UTF-16
+(little endian and big endian), ISO-8859-1, ASCII, and HTML (a
+specific handler for the conversion of UTF-8 to ASCII with HTML
+predefined entities like &amp;copy; for the copyright sign). However,
+when compiled with iconv support, libxml and libxslt can handle the
+full range of encodings provided by iconv; these should cover most
+needs.</p><p>libxml and libxslt can be used in multi-threaded
+applications. In MS-Windows they are linked against
+<tt class="filename">MSVCRT.DLL</tt> (or one of its descendants, as we saw
+<a href="#windows-build" title="MS-Windows Compiling and
+Linking">above</a>). In *NIX the pthreads
+(POSIX threads) library is used.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2839841"></a>The Complete Program</h2></div></div></div><p>
+The complete program listing is given below. The program is also
+<a href="libxslt_pipes.c" target="_top">available online</a>.
+</p><p>
+</p><pre class="programlisting">
+/*
+ * libxslt_pipes.c: a program for performing a series of XSLT
+ * transformations
+ *
+ * Writen by Panos Louridas, based on libxslt_tutorial.c by John Fleck.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc.,  59 Temple Place - Suite 330, Cambridge, MA 02139, USA.
+ *
+ */ 
+
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+#include &lt;stdlib.h&gt;
+
+#include &lt;libxslt/transform.h&gt;
+#include &lt;libxslt/xsltutils.h&gt;
+
+extern int xmlLoadExtDtdDefaultValue;
+
+static void usage(const char *name) {
+    printf("Usage: %s [options] stylesheet [stylesheet ...] file [file ...]\n",
+            name);
+    printf("      --out file: send output to file\n");
+    printf("      --param name value: pass a (parameter,value) pair\n");
+}
+
+int main(int argc, char **argv) {
+    int arg_indx;
+    const char *params[16 + 1];
+    int params_indx = 0;
+    int stylesheet_indx = 0;
+    int file_indx = 0;
+    int i, j, k;
+    FILE *output_file = stdout;
+    xsltStylesheetPtr *stylesheets = 
+        (xsltStylesheetPtr *) calloc(argc, sizeof(xsltStylesheetPtr));
+    xmlDocPtr *files = (xmlDocPtr *) calloc(argc, sizeof(xmlDocPtr));
+    xmlDocPtr doc, res;
+    int return_value = 0;
+        
+    if (argc &lt;= 1) {
+        usage(argv[0]);
+        return_value = 1;
+        goto finish;
+    }
+        
+    /* Collect arguments */
+    for (arg_indx = 1; arg_indx &lt; argc; arg_indx++) {
+        if (argv[arg_indx][0] != '-')
+            break;
+        if ((!strcmp(argv[arg_indx], "-param"))
+                || (!strcmp(argv[arg_indx], "--param"))) {
+            arg_indx++;
+            params[params_indx++] = argv[arg_indx++];
+            params[params_indx++] = argv[arg_indx];
+            if (params_indx &gt;= 16) {
+                fprintf(stderr, "too many params\n");
+                return_value = 1;
+                goto finish;
+            }
+        }  else if ((!strcmp(argv[arg_indx], "-o"))
+                || (!strcmp(argv[arg_indx], "--out"))) {
+            arg_indx++;
+            output_file = fopen(argv[arg_indx], "w");
+        } else {
+            fprintf(stderr, "Unknown option %s\n", argv[arg_indx]);
+            usage(argv[0]);
+            return_value = 1;
+            goto finish;
+        }
+    }
+    params[params_indx] = 0;
+
+    /* Collect and parse stylesheets and files to be transformed */
+    for (; arg_indx &lt; argc; arg_indx++) {
+        char *argument =
+            (char *) malloc(sizeof(char) * (strlen(argv[arg_indx]) + 1));
+        strcpy(argument, argv[arg_indx]);
+        if (strtok(argument, ".")) {
+            char *suffix = strtok(0, ".");
+            if (suffix &amp;&amp; !strcmp(suffix, "xsl")) {
+                stylesheets[stylesheet_indx++] =
+                    xsltParseStylesheetFile((const xmlChar *)argv[arg_indx]);;
+            } else {
+                files[file_indx++] = xmlParseFile(argv[arg_indx]);
+            }
+        } else {
+            files[file_indx++] = xmlParseFile(argv[arg_indx]);
+        }
+        free(argument);
+    }
+
+    xmlSubstituteEntitiesDefault(1);
+    xmlLoadExtDtdDefaultValue = 1;
+
+    /* Process files */
+    for (i = 0; files[i]; i++) {
+        doc = files[i];
+        res = doc;
+        for (j = 0; stylesheets[j]; j++) {
+            res = xsltApplyStylesheet(stylesheets[j], doc, params);
+            xmlFreeDoc(doc);
+            doc = res;
+        }
+
+        if (stylesheets[0]) {
+            xsltSaveResultToFile(output_file, res, stylesheets[j-1]);
+        } else {
+            xmlDocDump(output_file, res);
+        }
+        xmlFreeDoc(res);
+    }
+
+    fclose(output_file);
+
+    for (k = 0; stylesheets[k]; k++) {
+        xsltFreeStylesheet(stylesheets[k]);
+    }
+
+    xsltCleanupGlobals();
+    xmlCleanupParser();
+
+ finish:
+    free(stylesheets);
+    free(files);
+    return(return_value);
+}
+
+</pre><p>
+</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/tutorial2/libxslt_pipes.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,661 @@
+<?xml version="1.0" encoding="iso-8859-2"?>
+<!DOCTYPE article 
+SYSTEM "file:///usr/share/docbook/docbook-xml-4.3/docbookx.dtd">
+
+<article id="libxslt">
+<articleinfo>
+  <author><firstname>Panos</firstname><surname>Louridas</surname></author>
+  <copyright>
+    <year>2004</year>
+    <holder>Panagiotis Louridas</holder>
+  </copyright>
+  <legalnotice>
+    <para>Permission is hereby granted, free of charge, to
+  any person obtaining a copy of this software and associated
+  documentation files (the "Software"), to deal in the Software
+  without restriction, including without limitation the rights to use,
+  copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software
+  is furnished to do so, subject to the following conditions:
+  </para>
+
+  <para>The above copyright notice and this permission notice shall be
+  included in all copies or substantial portions of the Software.
+  </para>
+
+  <para>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</para>
+
+  </legalnotice>
+</articleinfo>
+
+<title>libxslt: An Extended Tutorial</title>
+
+<sect1><title>Introduction</title>
+
+<para>The Extensible Stylesheet Language Transformations (XSLT)
+specification defines an XML template language for transforming XML
+documents. An XSLT engine reads an XSLT file and an XML document and
+transforms the document accordingly.</para>
+
+<para>We want to perform a series of XSLT transformations to a series
+of documents. An obvious solution is to use the operating system's
+pipe mechanism and start a series of transformation processes, each
+one taking as input the output of the previous transformation. It
+would be interesting, though, and perhaps more efficient if we could
+do our job within a single process.</para>
+
+<para>libxslt is a library for doing XSLT transformations. It is built
+on libxml, which is a library for handling XML documents. libxml and
+libxslt are used by the GNOME project. Although developed in the
+*NIX world, both libxml and libxslt have been
+ported to the MS-Windows platform. In principle an application using
+libxslt should be easily portable between the two systems. In
+practice, however, there arise various wrinkles. These do not have
+anything to do with libxml or libxslt per se, but rather with the
+different compilation and linking procedures of each system.</para>
+
+<para>The presented solution is an extension of <ulink
+url="http://xmlsoft.org/XSLT/tutorial/libxslttutorial.html">John
+Fleck's libxslt tutorial</ulink>, but the present tutorial tries to be
+self-contained. It develops a minimal libxslt application
+(libxslt_pipes) that can perform a series of transformations to a
+series of files in a pipe-like manner. An invocation might be:</para>
+
+<para>
+  <userinput>
+    libxslt_pipes --out results.xml foo.xsl bar.xsl doc1.xml doc2.xml
+  </userinput>
+</para>
+
+<para>The <filename>foo.xsl</filename> stylesheet will be applied to
+<filename> doc1.xml</filename> and the <filename>bar.xsl</filename>
+stylesheet will be applied to the resulting document; then the two
+stylesheets will be applied in the same sequence to
+<filename>bar.xsl</filename>. The results are sent to
+<filename>results.xml</filename> (if no output is specified they are
+sent to standard output).</para>
+
+<para>The application is compiled in both *NIX
+systems and MS-Windows, where by *NIX systems we
+mean Linux, BSD, and other members of the
+family. The gcc suite is used in the *NIX platform
+and the Microsoft compiler and linker are used in the
+MS-Windows platform.</para>
+
+</sect1>
+
+<sect1><title>Setting the Scene</title>
+
+<para>
+We need to include the necessary libraries:
+
+<programlisting>
+  <![CDATA[
+  #include <stdio.h>
+  #include <string.h>
+  #include <stdlib.h>
+  
+  #include <libxslt/transform.h>
+  #include <libxslt/xsltutils.h>
+  ]]>
+</programlisting>
+</para>
+
+<para>The first group of include directives includes general C
+libraries. The libraries we need to make libxslt work are in the
+second group. The <filename>transform.h</filename> header file
+declares the API that does the bulk of the actual processing. The
+<filename>xsltutils.h</filename> header file declares the API for some
+generic utility functions of the XSLT engine; among other things,
+saving to a file, which is what we need it for.</para>
+
+<para>
+If our input files contain entities through external subsets, we need
+to tell libxslt to load them. The global variable
+<function>xmlLoadExtDtdDefaultValue</function>, defined in
+<filename>libxml/globals.h</filename>, is responsible for that. As the
+variable is defined outside our program we must specify external
+linkage:
+  <programlisting>
+    extern int xmlLoadExtDtdDefaultValue;
+  </programlisting>
+</para>
+
+<para>
+The program is called from the command line. We anticipate that the
+user may not call it the right way, so we define a function for
+describing its usage:
+<programlisting>
+  static void usage(const char *name) {
+      printf("Usage: %s [options] stylesheet [stylesheet ...] file [file ...]\n",
+          name);
+      printf("      --out file: send output to file\n");
+      printf("      --param name value: pass a (parameter,value) pair\n");
+  }
+</programlisting>
+</para>
+</sect1>
+
+<sect1><title>Program Start</title>
+
+<para>We need to define a few variables that are used throughout the
+program:
+<programlisting>
+    int main(int argc, char **argv) {
+        int arg_indx;
+	const char *params[16 + 1];
+	int params_indx = 0;
+	int stylesheet_indx = 0;
+	int file_indx = 0;
+	int i, j, k;
+	FILE *output_file = stdout;
+	xsltStylesheetPtr *stylesheets = 
+	    (xsltStylesheetPtr *) calloc(argc, sizeof(xsltStylesheetPtr));
+	    xmlDocPtr *files = (xmlDocPtr *) calloc(argc, sizeof(xmlDocPtr));
+	int return_value = 0;
+</programlisting>
+</para>
+
+<para>The <varname>arg_indx</varname> integer is an index used to
+iterate over the program arguments. The <varname>params</varname>
+string array is used to collect the XSLT parameters. In XSLT,
+additional information may be passed to the processor via
+parameters. The user of the program specifies these in key-value pairs
+in the command line following the <userinput>--param</userinput>
+command line argument. We accept up to 8 such key-value pairs, which
+we track with the <varname>params_indx</varname> integer. libxslt
+expects the parameters array to be null-terminated, so we have to
+allocate one extra place (16 + 1) for it. The
+<varname>file_indx</varname> is an index to iterate over the files to
+be processed. The <varname>i</varname>, <varname>j</varname>,
+<varname>k</varname> integers are additional indices for iteration
+purposes, and <varname>return_value</varname> is the value the program
+returns to the operating system. We expect the result of the
+transformation to be the standard output in most cases, but the user
+may wish otherwise via the <option>--out</option> command line
+option, so we need to keep track of the situation with the
+<varname>output_file</varname> file pointer.</para>
+
+<para>In libxslt, XSLT stylesheets are internally stored in
+<structname>xsltStylesheet</structname> structures; similarly, in
+libxml XML documents are stored in <structname>xmlDoc</structname>
+structures. <type>xsltStylesheetPtr</type> and <type>xmlDocPtr</type>
+are simply typedefs of pointers to them. The user may specify any
+number of stylesheets that will be applied to the documents one after
+the other. To save time we parse the stylesheets and the documents as
+we read them from the command line and keep the parsed representation
+of them. The parsed results are kept in arrays. These are dynamically
+allocated and sized to the number of arguments; this wastes some
+space, but not much (the size of <type>xmlStyleSheetPtr</type> and
+<type>xmlDocPtr</type> is the size of a pointer) and simplifies code
+later on. The array memory is allocated with
+<function>calloc</function> to ensure contents are initialised to
+zero.
+</para>
+
+</sect1>
+
+<sect1><title>Arguments Collection</title>
+
+<para>If the program gets no arguments at all, we print the usage
+description, set the program return value to 1 and exit. Instead of
+returning directly we go to (literally) to the end of the program text
+where some housekeeping takes place.</para> 
+
+<para>
+<programlisting>
+  <![CDATA[
+    if (argc <= 1) {
+        usage(argv[0]);
+        return_value = 1;
+        goto finish;
+    }
+        
+    /* Collect arguments */
+    for (arg_indx = 1; arg_indx < argc; arg_indx++) {
+        if (argv[arg_indx][0] != '-')
+            break;
+        if ((!strcmp(argv[arg_indx], "-param"))
+                || (!strcmp(argv[arg_indx], "--param"))) {
+            arg_indx++;
+            params[params_indx++] = argv[arg_indx++];
+            params[params_indx++] = argv[arg_indx];
+            if (params_indx >= 16) {
+                fprintf(stderr, "too many params\n");
+                return_value = 1;
+                goto finish;
+            }
+        }  else if ((!strcmp(argv[arg_indx], "-o"))
+                || (!strcmp(argv[arg_indx], "--out"))) {
+            arg_indx++;
+            output_file = fopen(argv[arg_indx], "w");
+        } else {
+            fprintf(stderr, "Unknown option %s\n", argv[arg_indx]);
+            usage(argv[0]);
+            return_value = 1;
+            goto finish;
+        }
+    }
+    params[params_indx] = 0;
+    ]]>
+</programlisting>
+</para>
+
+<para>If the user passes arguments we have to collect them. This is a
+matter of iterating over the program argument list while we encounter
+arguments starting with a dash. The XSLT parameters are put into the
+<varname>params</varname> array and the <varname>output_file</varname>
+is set to the user request, if any. After processing all the parameter
+key-value pairs we set the last element of the <varname>params</varname>
+array to null.
+</para>
+</sect1>
+
+<sect1><title>Parsing</title>
+
+<para>The rest of the argument list is taken to be stylesheets and
+files to be transformed. Stylesheets are identified by their suffix,
+which is expected to be xsl (case sensitive). All other files are
+assumed to be XML documents, regardless of suffix.</para>
+
+<para>
+<programlisting>
+  <![CDATA[
+    /* Collect and parse stylesheets and files to be transformed */
+    for (; arg_indx < argc; arg_indx++) {
+        char *argument =
+            (char *) malloc(sizeof(char) * (strlen(argv[arg_indx]) + 1));
+        strcpy(argument, argv[arg_indx]);
+        if (strtok(argument, ".")) {
+            char *suffix = strtok(0, ".");
+            if (suffix && !strcmp(suffix, "xsl")) {
+                stylesheets[stylesheet_indx++] =
+                    xsltParseStylesheetFile((const xmlChar *)argv[arg_indx]);;
+            } else {
+                files[file_indx++] = xmlParseFile(argv[arg_indx]);
+            }
+        } else {
+            files[file_indx++] = xmlParseFile(argv[arg_indx]);
+        }
+        free(argument);
+    }
+  ]]>
+</programlisting>
+</para>
+
+<para>Stylesheets are parsed using the
+<function>xsltParseStylesheetFile</function>
+function. <function>xsltParseStylesheetFile</function> takes as
+argument a pointer to an <type>xmlChar</type>, a typedef of an
+unsigned char; in effect, the filename of the stylesheet. The
+resulting <type>xsltStylesheetPtr</type> is placed in the
+<varname>stylesheets</varname> array. In the same vein, XML files are
+parsed using the <function>xmlParseFile</function> function that takes
+as argument the file's name; the resulting <type>xmlDocPtr</type> is
+placed in the <varname>files</varname> array.
+</para>
+
+</sect1>
+
+<sect1><title>File Processing</title>
+
+<para>All stylesheets are applied to each file one after the
+other. Stylesheets are applied with the
+<function>xsltApplyStylesheet</function> function that takes as
+argument the stylesheet to be applied, the file to be transformed and
+any parameters we have collected. The in-memory representation of an
+XML document takes space, which we free using the
+<function>xmlFreeDoc</function> function. The file is then saved to the
+specified output.</para>
+
+<para>
+<programlisting>
+  <![CDATA[
+    /* Process files */
+    for (i = 0; files[i]; i++) {
+        doc = files[i];
+        res = doc;
+        for (j = 0; stylesheets[j]; j++) {
+            res = xsltApplyStylesheet(stylesheets[j], doc, params);
+            xmlFreeDoc(doc);
+            doc = res;
+        }
+
+        if (stylesheets[0]) {
+            xsltSaveResultToFile(output_file, res, stylesheets[j-1]);
+        } else {
+            xmlDocDump(output_file, res);
+        }
+        xmlFreeDoc(res);
+    }
+
+    fclose(output_file);
+
+    for (k = 0; stylesheets[k]; k++) {
+        xsltFreeStylesheet(stylesheets[k]);
+    }
+
+    xsltCleanupGlobals();
+    xmlCleanupParser();
+
+ finish:
+    free(stylesheets);
+    free(files);
+    return(return_value);
+    ]]>
+</programlisting>
+</para>
+
+<para>To output an XML document we have in memory we use the
+<function>xlstSaveResultToFile</function> function, where we specify
+the destination, the document and the stylesheet that has been applied
+to it. The stylesheet is required so that output-related information
+contained in the stylesheet, such as the encoding to be used, is used
+in output. If no transformation has taken place, which will happen
+when the user specifies no stylesheets at all in the command line, we
+use the <function>xmlDocDump</function> libxml function that saves the
+source document to the file without further ado.</para>
+
+<para>As parsed stylesheets take up space in memory, we take care to
+free that memory after use with a call to
+<function>xmlFreeStyleSheet</function>. When all work is done, we
+clean up all global variables used by the XSLT library using
+<function>xsltCleanupGlobals</function>. Likewise, all global memory
+allocated for the XML parser is reclaimed by a call to
+<function>xmlCleanupParser</function>. Before returning we deallocate
+the memory allocated for the holding the pointers to the XML documents
+and stylesheets.</para>
+
+</sect1>
+
+<sect1><title>*NIX Compiling and Linking</title>
+
+<para>Compiling and linking in a *NIX environment
+is easy, as the required libraries are almost certain to be already in
+place (remember that libxml and libxslt are used by the GNOME project,
+so they are present in most installations). The program can be
+dynamically linked so that its footprint is minimized, or statically
+linked, so that it stands by itself, carrying all required code.</para>
+
+<para>For dynamic linking the following one liner will do:</para>
+
+<para>
+<userinput>gcc -o libxslt_pipes -Wall -I/usr/include/libxml2 -lxslt
+-lxml2 -L/usr/lib libxslt_pipes.c</userinput>
+</para>
+
+<para>We assume that the necessary header files are in <filename
+class="directory">/usr/include/libxml2</filename> and that the
+required libraries (<filename>libxslt.so</filename>,
+<filename>libxml2.so</filename>) are in <filename
+class="directory">/usr/lib</filename>.</para>
+
+<para>In general, a program may need to link to additional libraries,
+depending on the processing it actually performs. A good way to start
+is to use the <command>xslt-config</command> script. The
+<option>--help</option> option displays usage
+information. Running</para>
+
+<para>
+  <userinput>
+    xslt-config --cflags
+  </userinput>
+</para>
+
+<para>we get compile flags, while running</para>
+
+<para>
+  <userinput>
+    xslt-config --libs
+  </userinput>
+</para>
+
+<para>we get the library settings for the linker.</para>
+
+<para>For static linking we must list more libraries than we did for
+dynamic linking, as the libraries on which the libxsl and libxslt
+libraries depend are also needed. Using <command>xslt-config</command>
+on a particular installation we create the following one-liner:</para>
+
+<para>
+<userinput>
+gcc -o libxslt_pipes -Wall -I/usr/include/libxml2 libxslt_pipes.c
+-static -L/usr/lib -lxslt -lxml2 -lz -lpthread -lm
+</userinput>
+</para>
+
+<para>If we get warnings to the effect that some function in
+statically linked applications requires at runtime the shared
+libraries used from the glibc version used for linking, that means
+that the binary is not completely static. Although we statically
+linked against the GNU C runtime library glibc, glibc uses external
+libraries to perform some of its functions. Same version libraries
+must be present on the system we want the application to run. One way
+to avoid this it to use an alternative C runtime, for example <ulink
+url="http://www.uclibc.org">uClibc</ulink>, which requires obtaining
+and building a uClibc toolchain first (if the reason for trying to get
+a statically linked version of the program is to embed it somewhere,
+using uClibc might be a good idea anyway).
+</para>
+
+</sect1>
+
+<sect1 id="windows-build"><title>MS-Windows Compiling and
+Linking</title>
+
+<para>Compiling and linking in MS-Windows requires
+some attention. First, the MS-Windows ports must be
+downloaded and installed in the programming workstation. The ports are
+available in <ulink url="http://www.zlatkovic.com/libxml.en.html">Igor
+Zlatkoviæ's site</ulink>. We need the ports for iconv, zlib, libxml,
+and libxslt. In contrast to *NIX environments, we
+cannot assume that the libraries needed will be present in other
+computers where the program will be used. One solution is to
+distribute the program along with the necessary dynamic
+libraries. Another solution is to statically link the program so that
+only a single executable file will have to be distributed.</para>
+
+<para>We assume that we have decompressed the downloaded ports and
+have placed the required contents of their <filename
+class="directory">include</filename> directories in an <filename
+class="directory">include</filename> directory in our file system. The
+required contents include everything apart from the <filename
+class="directory">libexslt</filename> directory of the libxslt port,
+as we are not using EXLST (an initiative to provide extensions to
+XSLT) in this project. In order to compile the program we have to make
+sure that all necessary header files are included. When using the
+Microsoft compiler this translates to adding the required
+<option>/I</option> switches in the command line. If using a Visual
+Studio product the same effect is attained by specifying additional
+include directories in the compilation options. In the end, if the
+headers have been copied in <filename
+class="directory">C:\include</filename> the command line must contain
+<option>/I"C:\include" /I"C:\include\libslt"
+/I"C:\include\libxml"</option>.</para>
+
+<para>This being a C program, it needs to be compiled against an
+implementation of the C libraries. Microsoft provides various
+implementations. The ports, however, have been compiled against the
+<filename>msvcrt.dll</filename> implementation, so it is wise to use
+the same runtime in our project, lest we wish to come against
+unexpected runtime crashes. The <filename>msvcrt.dll</filename> is a
+multi-threaded implementation and is specified by giving
+<option>/MD</option> as a compiler option. Unfortunately, the
+correspondence between the <option>/MD</option> switch and
+<filename>msvcrt.dll</filename> breaks after version 6 of the
+Microsoft compiler. In version 7 and later (i.e., Visual Studio .NET),
+<option>/MD</option> links against a different DLL; in version 7.1
+this is <filename>msvcrt71.dll</filename>. The end result of this bit
+of esoterica is that if you try to dynamically link your application
+with a compiler whose version is greater than 6, your program is
+likely to crash unexpectedly. Alternatively, you may wish to compile
+all iconv, zlib, libxml and libxslt yourself, using the new runtime
+library. This is not a tall order, and some details are given
+<link linkend="windows-ports-build">below</link>.</para>
+
+<para>There are three kinds of libraries in MS-Windows. Dynamically
+Linked Libraries (DLLs), like <filename>msvcrt.dll</filename> we met
+above, are used for dynamic linking; an application links to them at
+runtime, so the application does not include the code contained in
+them. Static libraries are used for static linking; an application
+adds the libraries' code to its own code at link time. Import
+libraries are used when building an application that uses DLLs. For
+the application to be built, the linker must somehow find the
+definitions of the functions that will be provided in runtime by the
+DLLs, otherwise it will complain about unresolved references. Import
+libraries contain function stubs that, for each DLL function we want
+to call, know where to look for it in the DLL. In essence, in order to
+use a DLL we must link against its corresponding import library. DLLs
+have a <filename>.dll</filename> suffix; static and import libraries
+both have a <filename>.lib</filename> suffix. In the MS-Windows ports
+of libxml and libxslt static libraries are distinguished by their name
+ending in <filename>_a.lib</filename>, while in the zlib port the
+import library is <filename>zdll.lib</filename> and the static library
+is <filename>zlib.lib</filename>. In what follows we assume we have a
+<filename class="directory">lib</filename> directory in our filesystem
+where we place the libraries we need for linking.</para>
+
+<para>If we want to link dynamically we must make sure the <filename
+class="directory">lib</filename> directory contains
+<filename>iconv.lib</filename>, <filename>libxslt.lib</filename>,
+<filename>libxml2.lib</filename>, and
+<filename>zdll.lib</filename>. When using the Microsoft linker this
+translates to adding the required <option>/LIBPATH</option>
+switch and the necessary libraries in the command line. In Visual
+Studio we must specify an additional library directory for <filename
+class="directory">lib</filename> and put the necessary libraries in
+the additional dependencies. In the end, the command line must include
+<option>/LIBPATH:"C:\lib" "lib\iconv.lib" "lib\libxslt.lib"
+"lib\libxml2.lib" "lib\zdll.lib"</option>, provided the libraries'
+directory is <filename class="directory">C:\lib</filename>. In order
+for the resulting executable to run, the ports DLLs must be present;
+one way is to place all DLLs contained in the ports in the home
+directory of our application, and make sure they are distributed
+together.</para>
+
+<para>If we want to link statically we must make sure the <filename
+class="directory">lib</filename> directory contains
+<filename>iconv_a.lib</filename>, <filename>libxslt_a.lib</filename>,
+<filename>libxml2_a.lib</filename>, and
+<filename>zlib.lib</filename>. Adding <filename
+class="directory">lib</filename> as a library directory and putting
+the necessary libraries in the additional dependencies, we get a
+command line that should include <option>/LIBPATH:"C:\lib"
+"lib\iconv_a.lib" "lib\libxslt_a.lib" "lib\libxml2_a.lib"
+"lib\zlib.lib"</option>. The resulting executable is much bigger
+than if we linked dynamically; it is, however, self-contained and can
+be distributed more easily, in theory at least. In practice, however,
+the executable is not completely static. We saw that the ports are
+compiled against <filename>msvcrt.dll</filename>, so the program does
+require that DLL at runtime. Moreover, since when using a version of
+Microsoft developer tools with a version number greater than 6, we are
+no longer using <filename>msvcrt.dll</filename>, but another runtime
+like <filename>msvcrt71.dll</filename>, and we then need that DLL.  In
+contrast to <filename>msvcrt.dll</filename> it may not be present on
+the target computer, so we may have to copy it along.</para>
+
+<sect2 id="windows-ports-build"><title>Building the Ports in
+MS-Windows</title>
+
+<para>The source code of the ports is readily available on the web,
+one has to check the ports sites. Each port can be built without
+problems in an MS-Windows environment using Microsoft development
+tools.  The necessary command line tools (compiler, linker,
+<command>nmake</command>) must be available. This means running a
+batch file called <command>vcvars32.bat</command> that comes with
+Visual Studio (its exact location in the directory tree may vary
+depending on the version of Visual Studio, but a file search will find
+it anyway). Makefiles for the Microsoft tools are found in all
+ports. They are distinguished by their suffix, e.g.,
+<filename>Makefile.msvc</filename> or
+<filename>Makefile.msc</filename>. To build zlib it suffices to run
+<command>nmake</command> against <filename>Makefile.msc</filename>
+(i.e., with the <option>/F</option> option); similarly, to build
+<filename>iconv</filename> it suffices to run <command>nmake</command>
+against <filename>Makefile.msvc</filename>. Building libxml and
+libxslt requires an extra configuration step; we must run the
+<filename>configure.js</filename> configuration script with the
+<command>cscript</command> command. <filename>configure.js</filename>
+is found in the <filename class="directory">win32</filename> directory
+in the distributions. It is written in JScript, Microsoft's
+implementation of the ECMA 262 language specification (ECMAScript
+Edition 3), a JavaScript offspring. The configuration string takes a
+number of parameters detailing our environment and needs;
+<userinput>cscript configure.js help</userinput> documents
+them.</para>
+
+<para>It is wise to read all documentation files in the source
+distributions before starting; moreover, pay attention to the
+dependencies between the ports. If we configure libxml and libxslt to
+use iconv and zlib we must build these two first and make sure their
+headers and libraries can be found by the compiler and the
+linker when building libxml and libxslt.</para>
+
+</sect2>
+
+</sect1>
+
+<sect1><title>zlib, iconv and All That</title>
+
+<para>We saw that libxml and libxslt depend on various other
+libraries, for instance zlib, iconv, and so forth. Taking a look into
+them gives us clues on the capabilities of libxml and libxslt.</para>
+
+<para><ulink url="http://www.zlib.org">zlib</ulink> is a free general
+purpose lossless data compression library. It is a venerable
+workhorse; more than <ulink
+url="http://www.gzip.org/zlib/apps.html">500 applications</ulink>
+(both commercial and open source) seem to use the library. libxml uses
+zlib so that it can read from or write to compressed files
+directly. The <function>xmlParseFile</function> function can
+transparently parse a compressed document to produce an
+<structname>xmlDoc</structname>. If we want to create a compressed
+document with libxml we can use an
+<structname>xmlTextWriterPtr</structname> (obtained through
+<function>xmlNewTextWriterDoc</function>), or another related
+structure from <filename>libxml/xmlwriter.h</filename>, with
+compression enabled.</para>
+
+<para>XML allows documents to use a variety of different character
+encodings. <ulink
+url="http://www.gnu.org/software/libiconv">iconv</ulink> is a free
+library for converting between different character encodings.  libxml
+provides a set of default converters for some encodings: UTF-8, UTF-16
+(little endian and big endian), ISO-8859-1, ASCII, and HTML (a
+specific handler for the conversion of UTF-8 to ASCII with HTML
+predefined entities like &amp;copy; for the copyright sign). However,
+when compiled with iconv support, libxml and libxslt can handle the
+full range of encodings provided by iconv; these should cover most
+needs.</para>
+
+<para>libxml and libxslt can be used in multi-threaded
+applications. In MS-Windows they are linked against
+<filename>MSVCRT.DLL</filename> (or one of its descendants, as we saw
+<link linkend="windows-build">above</link>). In *NIX the pthreads
+(POSIX threads) library is used.</para>
+
+</sect1>
+
+<sect1><title>The Complete Program</title>
+
+<para>
+The complete program listing is given below. The program is also
+<ulink url="libxslt_pipes.c">available online</ulink>.
+</para>
+
+<para>
+<programlisting>
+<xi:include href="libxslt_pipes.c" parse="text"
+	    xmlns:xi="http://www.w3.org/2003/XInclude"/>
+</programlisting>
+</para>
+
+</sect1>
+
+</article>

Added: packages/libxslt/branches/upstream/1.1.16/doc/xsa.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/xsa.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/xsa.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+<!--
+  Stylesheet generating the XSA entry for libxslt based on the 
+  latest News entry.
+  See http://www.garshol.priv.no/download/xsa/ for a description of XSA
+ -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+     xmlns:xhtml="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xhtml">
+  <xsl:output method="xml"
+      doctype-public="-//LM Garshol//DTD XML Software Autoupdate 1.0//EN//XML"
+      doctype-system="http://www.garshol.priv.no/download/xsa/xsa.dtd"
+      indent="yes"/>
+
+  <xsl:template match="/">
+<xsa>
+  <vendor>
+    <name>Daniel Veillard</name>
+    <email>daniel at veillard.com</email>
+    <url>http://veillard.com/</url>
+  </vendor>
+  <product id="libxslt">
+    <name>libxslt</name>
+    <version><xsl:value-of select="substring-before(//xhtml:h3[2], ':')"/></version>
+    <last-release><xsl:value-of select="substring-after(//xhtml:h3[2], ':')"/></last-release>
+    <info-url>http://xmlsoft.org/XSLT/</info-url>
+    <changes>
+    <xsl:apply-templates select="//xhtml:h3[2]/following-sibling::*[1]"/>
+    </changes>
+  </product>
+</xsa>
+  </xsl:template>
+  <xsl:template match="xhtml:h3">
+  </xsl:template>
+  <xsl:template match="xhtml:ul">
+    <xsl:apply-templates select=".//xhtml:li"/>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+  <xsl:template match="xhtml:li">
+    <xsl:text>   - </xsl:text>
+    <xsl:value-of select="."/>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+  <xsl:template match="xhtml:a">
+    <xsl:value-of select="."/>
+    <xsl:text> at 
+</xsl:text>
+    <xsl:value-of select="@href"/>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/doc/xslt.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/xslt.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/xslt.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2373 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+    "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+  <title>The XSLT C library for Gnome</title>
+  <meta name="GENERATOR" content="amaya 8.5, see http://www.w3.org/Amaya/">
+  <meta http-equiv="Content-Type" content="text/html">
+</head>
+
+<body bgcolor="#ffffff">
+<h1 align="center">The XSLT C library for Gnome</h1>
+
+<h1 style="text-align: center">libxslt</h1>
+
+<p>Libxslt is the <a href="http://www.w3.org/TR/xslt">XSLT</a> C library
+developed for the Gnome project. XSLT itself is a an XML language to define
+transformation for XML. Libxslt is based on <a
+href="http://xmlsoft.org/">libxml2</a> the XML C library developed for the
+Gnome project. It also implements most of the <a
+href="http://www.exslt.org/">EXSLT</a> set of processor-portable extensions
+functions and some of Saxon's evaluate and expressions extensions.</p>
+
+<p>People can either embed the library in their application or use xsltproc
+the command line processing tool. This library is free software and can be
+reused in commercial applications (see the <a href="intro.html">intro</a>)</p>
+
+<p>External documents:</p>
+<ul>
+  <li>John Fleck wrote <a href="tutorial/libxslttutorial.html">a tutorial for
+    libxslt</a></li>
+  <li><a href="xsltproc.html">xsltproc user manual</a></li>
+  <li><a href="http://xmlsoft.org/">the libxml documentation</a></li>
+</ul>
+
+<p></p>
+
+<p>Logo designed by <a href="mailto:liyanage at access.ch">Marc Liyanage</a>.</p>
+
+<h2><a name="Introducti">Introduction</a></h2>
+
+<p>This document describes <a href="http://xmlsoft.org/XSLT/">libxslt</a>,
+the <a href="http://www.w3.org/TR/xslt">XSLT</a> C library developed for the
+<a href="http://www.gnome.org/">Gnome</a> project.</p>
+
+<p>Here are some key points about libxslt:</p>
+<ul>
+  <li>Libxslt is a C implementation</li>
+  <li>Libxslt is based on libxml for XML parsing, tree manipulation and XPath
+    support</li>
+  <li>It is written in plain C, making as few assumptions as possible, and
+    sticking closely to ANSI C/POSIX for easy embedding. Should works on
+    Linux/Unix/Windows.</li>
+  <li>This library is released under the <a
+    href="http://www.opensource.org/licenses/mit-license.html">MIT
+  Licence</a></li>
+  <li>Though not designed primarily with performances in mind, libxslt seems
+    to be a relatively fast processor.</li>
+</ul>
+
+<h2><a name="Documentat">Documentation</a></h2>
+
+<p>There are some on-line resources about using libxslt:</p>
+<ol>
+  <li>Check the <a href="html/libxslt-lib.html#LIBXSLT-LIB">API
+    documentation</a> automatically extracted from code comments (using the
+    program apibuild.py, developed for libxml, together with the xsl script
+    'newapi.xsl' and the libxslt xsltproc program).</li>
+  <li>Look at the <a href="http://mail.gnome.org/archives/xslt/">mailing-list
+    archive</a>.</li>
+  <li>Of course since libxslt is based on libxml, it's a good idea to at
+    least read <a href="http://xmlsoft.org/">libxml description</a></li>
+</ol>
+
+<h2><a name="Reporting">Reporting bugs and getting help</a></h2>
+
+<p>If you need help with the XSLT language itself, here are a number of
+useful resources:</p>
+<ul>
+  <li>I strongly suggest to subscribe to <a
+    href="http://www.mulberrytech.com/xsl/xsl-list">XSL-list</a>, check <a
+    href="http://www.biglist.com/lists/xsl-list/archives/">the XSL-list
+    archives</a></li>
+  <li>The <a href="http://www.dpawson.co.uk/xsl/xslfaq.html">XSL FAQ</a>.</li>
+  <li>The <a
+    href="http://www.nwalsh.com/docs/tutorials/xsl/xsl/slides.html">tutorial</a>
+    written by Paul Grosso and Norman Walsh is a very good on-line
+    introdution to the language.</li>
+  <li>The <a
+    href="http://www.zvon.org/xxl/XSLTutorial/Books/Book1/index.html">only
+    Zvon XSLT tutorial</a> details a lot of constructs with examples.</li>
+  <li><a href="http://www.jenitennison.com/xslt/index.html">Jeni Tennison's
+    XSLT</a> pages provide links to a lot of answers</li>
+  <li>the <a href="http://incrementaldevelopment.com/xsltrick/">Gallery of
+    XSLT Tricks</a> provides non-standard use case of XSLT</li>
+  <li>And I suggest to buy Michael Kay "XSLT Programmer's Reference" book
+    published by <a href="http://www.wrox.com/">Wrox</a> if you plan to work
+    seriously with XSLT in the future.</li>
+</ul>
+
+<p>Well, bugs or missing features are always possible, and I will make a
+point of fixing them in a timely fashion. The best way to report a bug is to
+use the <a
+href="http://bugzilla.gnome.org/enter_bug.cgi?product=libxslt">Gnome bug
+tracking database</a> (make sure to use the "libxslt" module name). Before
+filing a bug, check the <a
+href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">list of existing
+libxslt bugs</a> to make sure it hasn't already been filed. I look at reports
+there regularly and it's good to have a reminder when a bug is still open. Be
+sure to specify that the bug is for the package libxslt.</p>
+
+<p>For small problems you can try to get help on IRC, the #xml channel on
+irc.gnome.org (port 6667) usually have a few person subscribed which may help
+(but there is no garantee and if a real issue is raised it should go on the
+mailing-list for archival).</p>
+
+<p>There is also a mailing-list <a
+href="mailto:xslt at gnome.org">xslt at gnome.org</a> for libxslt, with an <a
+href="http://mail.gnome.org/archives/xslt/">on-line archive</a>. To subscribe
+to this list, please visit the <a
+href="http://mail.gnome.org/mailman/listinfo/xslt">associated Web</a> page
+and follow the instructions.</p>
+
+<p>Alternatively, you can just send the bug to the <a
+href="mailto:xslt at gnome.org">xslt at gnome.org</a> list, if it's really libxslt
+related I will approve it.. Please do not send me mail directly especially
+for portability problem, it makes things really harder to track and in some
+cases I'm not the best person to answer a given question, ask the list
+instead. <strong>Do not send code, I won't debug it</strong> (but patches are
+really appreciated!).</p>
+
+<p>Please note that with the current amount of virus and SPAM, sending mail
+to the list without being subscribed won't work. There is *far too many
+bounces* (in the order of a thousand a day !) I cannot approve them manually
+anymore. If your mail to the list bounced waiting for administrator approval,
+it is LOST ! Repost it and fix the problem triggering the error. Also please
+note that <span style="color: #FF0000; background-color: #FFFFFF">emails with
+a legal warning asking to not copy or redistribute freely the informations
+they contain</span> are <strong>NOT</strong> acceptable for the mailing-list,
+such mail will as much as possible be discarded automatically, and are less
+likely to be answered if they made it to the list, <strong>DO NOT</strong>
+post to the list from an email address where such legal requirements are
+automatically added, get private paying support if you can't share
+informations.</p>
+
+<p>Check the following too <span style="color: #E50000">before
+posting</span>:</p>
+<ul>
+  <li><a href="search.php">use the search engine</a> to get informations
+    related to your problem.</li>
+  <li>make sure you are <a href="ftp://xmlsoft.org/libxslt/">using a recent
+    version</a>, and that the problem still shows up in those</li>
+  <li>check the <a href="http://mail.gnome.org/archives/xslt/">list
+    archives</a> to see if the problem was reported already, in this case
+    there is probably a fix available, similarly check the <a
+    href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">registered
+    open bugs</a></li>
+  <li>make sure you can reproduce the bug with xsltproc, a very useful thing
+    to do is run the transformation with -v argument and redirect the
+    standard error to a file, then search in this file for the transformation
+    logs just preceding the possible problem</li>
+  <li>Please send the command showing the error as well as the input and
+    stylesheet (as an attachment)</li>
+</ul>
+
+<p>Then send the bug with associated informations to reproduce it to the <a
+href="mailto:xslt at gnome.org">xslt at gnome.org</a> list; if it's really libxslt
+related I will approve it. Please do not send mail to me directly, it makes
+things really hard to track and in some cases I am not the best person to
+answer a given question, ask on the list.</p>
+
+<p>To <span style="color: #E50000">be really clear about support</span>:</p>
+<ul>
+  <li>Support or help <span style="color: #E50000">request MUST be sent to
+    the list or on bugzilla</span> in case of problems, so that the Question
+    and Answers can be shared publicly. Failing to do so carries the implicit
+    message "I want free support but I don't want to share the benefits with
+    others" and is not welcome. I will automatically Carbon-Copy the
+    xslt at gnome.org mailing list for any technical reply made about libxml2 or
+    libxslt.</li>
+  <li>There is <span style="color: #E50000">no garantee for support</span>,
+    if your question remains unanswered after a week, repost it, making sure
+    you gave all the detail needed and the informations requested.</li>
+  <li>Failing to provide informations as requested or double checking first
+    for prior feedback also carries the implicit message "the time of the
+    library maintainers is less valuable than my time" and might not be
+    welcome.</li>
+</ul>
+
+<p>Of course, bugs reports with a suggested patch for fixing them will
+probably be processed faster.</p>
+
+<p>If you're looking for help, a quick look at <a
+href="http://mail.gnome.org/archives/xslt/">the list archive</a> may actually
+provide the answer, I usually send source samples when answering libxslt
+usage questions. The <a
+href="html/libxslt-lib.html#LIBXSLT-LIB">auto-generated documentation</a> is
+not as polished as I would like (I need to learn more about Docbook), but
+it's a good starting point.</p>
+
+<h2><a name="help">How to help</a></h2>
+
+<p>You can help the project in various ways, the best thing to do first is to
+subscribe to the mailing-list as explained before, check the <a
+href="http://mail.gnome.org/archives/xslt/">archives </a>and the <a
+href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Gnome bug
+database:</a>:</p>
+<ol>
+  <li>provide patches when you find problems</li>
+  <li>provide the diffs when you port libxslt to a new platform. They may not
+    be integrated in all cases but help pinpointing portability problems
+  and</li>
+  <li>provide documentation fixes (either as patches to the code comments or
+    as HTML diffs).</li>
+  <li>provide new documentations pieces (translations, examples, etc ...)</li>
+  <li>Check the TODO file and try to close one of the items</li>
+  <li>take one of the points raised in the archive or the bug database and
+    provide a fix. <a href="mailto:daniel at veillard.com">Get in touch with me
+    </a>before to avoid synchronization problems and check that the suggested
+    fix will fit in nicely :-)</li>
+</ol>
+
+<h2><a name="Downloads">Downloads</a></h2>
+
+<p>The latest versions of libxslt can be found on the <a
+href="ftp://xmlsoft.org/libxslt/">xmlsoft.org</a> server and on mirrors (<a
+href="ftp://fr.rpmfind.net/pub/libxml/">France</a>) or on the <a
+href="ftp://ftp.gnome.org/pub/GNOME/MIRRORS.html">Gnome FTP server</a> as a
+<a href="ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/">source
+archive</a>, Antonin Sprinzl also provides <a
+href="ftp://gd.tuwien.ac.at/pub/libxml/">a mirror in Austria</a>. (NOTE that
+you need the <a href="http://rpmfind.net/linux/RPM/libxml2.html">libxml2</a>,
+<a href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml2-devel</a>,
+<a href="http://rpmfind.net/linux/RPM/libxslt.html">libxslt</a> and <a
+href="http://rpmfind.net/linux/RPM/libxslt-devel.html">libxslt-devel</a>
+packages installed to compile applications using libxslt.) <a
+href="mailto:igor at zlatkovic.com">Igor Zlatkovic</a> is now the maintainer of
+the Windows port, <a
+href="http://www.zlatkovic.com/projects/libxml/index.html">he provides
+binaries</a>. <a href="mailto:Gary.Pennington at sun.com">Gary Pennington</a>
+provides <a href="http://garypennington.net/libxml2/">Solaris binaries</a>.
+<a href="mailto:Steve.Ball at explain.com.au">Steve Ball</a> provides <a
+href="http://www.explain.com.au/oss/libxml2xslt.html">Mac Os X
+binaries</a>.</p>
+
+<p><a name="Contribs">Contribs:</a></p>
+
+<p>I do accept external contributions, especially if compiling on another
+platform, get in touch with me to upload the package. I will keep them in the
+<a href="ftp://xmlsoft.org/libxml2/contribs/">contrib directory</a></p>
+
+<p>Libxslt is also available from CVS:</p>
+<ul>
+  <li><p>The <a href="http://cvs.gnome.org/viewcvs/libxslt/">Gnome CVS
+    base</a>. Check the <a
+    href="http://developer.gnome.org/tools/cvs.html">Gnome CVS Tools</a>
+    page; the CVS module is <b>libxslt</b>.</p>
+  </li>
+  <li><a href="ftp://xmlsoft.org/libxml2/libxslt-cvs-snapshot.tar.gz">snapshots from
+    CVS</a> updated every hour are also provided</li>
+</ul>
+
+<h2><a name="FAQ">FAQ</a></h2>
+<ol>
+  <li><em>Troubles compiling or linking programs using libxslt</em>
+    <p>Usually the problem comes from the fact that the compiler doesn't get
+    the right compilation or linking flags. There is a small shell script
+    <code>xslt-config</code> which is installed as part of libxslt usual
+    install process which provides those flags. Use</p>
+    <p><code>xslt-config --cflags</code></p>
+    <p>to get the compilation flags and</p>
+    <p><code>xslt-config --libs</code></p>
+    <p>to get the linker flags. Usually this is done directly from the
+    Makefile as:</p>
+    <p><code>CFLAGS=`xslt-config --cflags`</code></p>
+    <p><code>LIBS=`xslt-config --libs`</code></p>
+    <p>Note also that if you use the EXSLT extensions from the program then
+    you should prepend <code>-lexslt</code> to the LIBS options</p>
+  </li>
+  <li><em>passing parameters on the xsltproc command line doesn't work</em>
+    <p><em>xsltproc --param test alpha foo.xsl foo.xml</em></p>
+    <p><em>the param does not get passed and ends up as ""</em></p>
+    <p>In a nutshell do a double escaping at the shell prompt:</p>
+    <p>xsltproc --param test "'alpha'" foo.xsl foo.xml</p>
+    <p>i.e. the string value is surrounded by " and ' then terminated by '
+    and ". Libxslt interpret the parameter values as XPath expressions, so
+    the string -&gt;<code>alpha</code>&lt;- is intepreted as the node set
+    matching this string. You really want -&gt;<code>'alpha'</code>&lt;- to
+    be passed to the processor. And to allow this you need to escape the
+    quotes at the shell level using -&gt;<code>"'alpha'"</code>&lt;- .</p>
+    <p>or use</p>
+    <p>xsltproc --stringparam test alpha foo.xsl foo.xml</p>
+  </li>
+  <li><em>Is there C++ bindings ?</em>
+    <p>Yes for example <a
+    href="http://pmade.org/pjones/software/xmlwrapp/">xmlwrapp</a> , see <a
+    href="python.html">the related pages about bindings</a></p>
+  </li>
+</ol>
+
+<h2><a name="News">News</a></h2>
+
+<p>The <a href="ChangeLog.html">change log</a> describes the recents commits
+to the <a href="http://cvs.gnome.org/viewcvs/libxslt/">CVS</a> code base.</p>
+
+<p>Those are the public releases made:</p>
+
+<h3>1.1.16: May 01 2006</h3>
+<ul>
+  <li>portability fixes: EXSLT date/time on Solaris and IRIX (Albert Chin),
+      HP-UX  build (Albert Chin), 
+  <li>build fixes: Python detection(Joseph Sacco), plugin configurei
+      (Joel Reed)</li>
+  <li>bug fixes: pattern compilation fix(William Brack), EXSLT date/time
+      fix (Thomas Broyer), EXSLT function bug, potential loop on variable
+      eval, startup race (Christopher Palmer), debug statement left in python
+      (Nic Ferrier), various cleanup based on Coverity reports), error on
+      Out of memory condition (Charles Hardin), various namespace prefixes
+      fixes (Kasimier Buchcik), </li>
+  <li>improvement: speed up sortingi, start of internals refactoring (Kasimier
+      Buchcik)</li>
+  <li>documentation: man page fixes and updates (Daniel Leidert)
+</ul>
+
+<h3>1.1.15: Sep 04 2005</h3>
+<ul>
+  <li>build fixes: Windows build cleanups and updates (Igor Zlatkovic),
+    remove jhbuild warnings</li>
+  <li>bug fixes: negative number formatting (William Brack), number
+    formatting per mille definition (William Brack), XInclude default values
+    (William), text copy bugs (William), bug related to xmlXPathContext size,
+    reuse libxml2 memory management for text nodes, dictionnary text bug,
+    forbid variables in match (needs libxml2-2.6.21)</li>
+  <li>improvements: EXSLT dyn:map (Mark Vakoc),</li>
+  <li>documentation: EXSLT date and time functions namespace in man (Jonathan
+    Wakely)</li>
+</ul>
+
+<h3>1.1.14: Apr 02 2005</h3>
+<ul>
+  <li>bug fixes: text node on stylesheet document without a dictionary
+    (William Brack), more checking of XSLT syntax, calling xsltInit()
+    multiple times, mode values interning raised by Mark Vakoc, bug in
+    pattern matching with ancestors, bug in patterna matching with cascading
+    select, xinclude and document() problem, build outside of source tree
+    (Mike Castle)</li>
+  <li>improvement: added a --nodict mode to xsltproc to check problems for
+    docuemtns without dictionnaries</li>
+</ul>
+
+<h3>1.1.13: Mar 13 2005</h3>
+<ul>
+  <li>build fixes: 64bits cleanup (William Brack), python 2.4 test (William),
+    LIBXSLT_VERSION_EXTRA on Windows (William), Windows makefiles fixes (Joel
+    Reed), libgcrypt-devel requires for RPM spec.</li>
+  <li>bug fixes: exslt day-of-week-in-month (Sal Paradise), xsl:call-template
+    should not change the current template rule (William Brack), evaluation
+    of global variables (William Brack), RVT's in XPath predicates (William),
+    namespace URI on template names (Mark Vakoc), stat() for Windows patch
+    (Aleksey Gurtovoy), pattern expression fixes (William Brack), out of
+    memory detection misses (William), parserOptions propagation (William),
+    exclude-result-prefixes fix (William), // patten fix (William).</li>
+  <li>extensions: module support (Joel Reed), dictionnary based speedups
+    trying to get rid of xmlStrEqual as much as possible.</li>
+  <li>documentation: added Wiki (Joel Reed)</li>
+</ul>
+
+<h3>1.1.12: Oct 29 2004</h3>
+<ul>
+  <li>build fixes: warnings removal (William).</li>
+  <li>bug fixes: attribute document pointer fix (Mark Vakoc), exslt date
+    negative periods (William Brack), generated tree structure fixes,
+    namespace lookup fix, use reentrant gmtime_r (William Brack),
+    exslt:funtion namespace fix (William), potential NULL pointer reference
+    (Dennis Dams, William), force string interning on generated
+  documents.</li>
+  <li>documentation: update of the second tutorial (Panagiotis Louridas), add
+    exslt doc in rpm packages, fix the xsltproc man page.</li>
+</ul>
+
+<h3>1.1.11: Sep 29 2004</h3>
+<ul>
+  <li>bug fixes: xsl:include problems (William Brack), UTF8 number pattern
+    (William), date-time validation (William), namespace fix (William),
+    various Exslt date fixes (William), error callback fixes, leak with
+    namespaced global variable, attempt to fix a weird problem #153137</li>
+  <li>improvements: exslt:date-sum tests (Derek Poon)</li>
+  <li>documentation: second tutorial by Panagiotis Lourida</li>
+</ul>
+
+<h3>1.1.10: Aug 31 2004</h3>
+<ul>
+  <li>build fix: NUL in c file blocking compilation on Solaris, Windows build
+    (Igor Zlatkovic)</li>
+  <li>fix: key initialization problem (William Brack)</li>
+  <li>documentation: fixed missing man page description for --path</li>
+</ul>
+
+<h3>1.1.9: Aug 22 2004</h3>
+<ul>
+  <li>build fixes: missing tests (William Brack), Python dependancies, Python
+    on 64bits boxes, --with-crypto flag (Rob Richards),</li>
+  <li>fixes: RVT key handling (William), Python binding (William and Sitsofe
+    Wheeler), key and XPath troubles (William), template priority on imports
+    (William), str:tokenize with empty strings (William), #default namespace
+    alias behaviour (William), doc ordering missing for main document
+    (William), 64bit bug (Andreas Schwab)</li>
+  <li>improvements: EXSLT date:sum added (Joel Reed), hook for document
+    loading for David Hyatt, xsltproc --nodtdattr to avoid defaulting DTD
+    attributes, extend xsltproc --version with CVS stamp (William).</li>
+  <li>Documentation: web page problem reported by Oliver Stoeneberg</li>
+</ul>
+
+<h3>1.1.8: July 5 2004</h3>
+<ul>
+  <li>build fixes: Windows runtime options (Oliver Stoeneberg), Windows
+    binary package layout (Igor Zlatkovic), libgcrypt version test and link
+    (William)</li>
+  <li>documentation: fix libxslt namespace name in doc (William)</li>
+  <li>bug fixes: undefined namespace message (William Brack), search engine
+    (William), multiple namespace fixups (William), namespace fix for key
+    evaluation (William), Python memory debug bindings,</li>
+  <li>improvements: crypto extensions for exslt (Joel Reed, William)</li>
+</ul>
+
+<h3>1.1.7: May 17 2004</h3>
+<ul>
+  <li>build fix: warning about localtime_r on Solaris</li>
+  <li>bug fix: UTF8 string tokenize (William Brack), subtle memory
+    corruption, linefeed after comment at document level (William),
+    disable-output-escaping problem (William), pattern compilation in deep
+    imported stylesheets (William), namespace extension prefix bug,
+    libxslt.m4 bug (Edward Rudd), namespace lookup for attribute, namespaced
+    DOCTYPE name</li>
+</ul>
+
+<h3>1.1.6: Apr 18 2004</h3>
+<ul>
+  <li>2 bug fixes about keys fixed one by Mark Vakoc</li>
+</ul>
+
+<h3>1.1.5: Mar 23 2004</h3>
+<ul>
+  <li>performance: use dictionnary lookup for variables</li>
+  <li>remove use of _private from source documents</li>
+  <li>cleanup of "make tests" output</li>
+  <li>bugfixes: AVT in local variables, use localtime_r to avoid thread
+    troubles (William), dictionary handling bug (William), limited number of
+    stubstitutions in AVT (William), tokenize fix for UTF-8 (William),
+    superfluous namespace (William), xsltproc error code on
+    &lt;xsl:message&gt; halt, OpenVMS fix, dictionnary reference counting
+    change.</li>
+</ul>
+
+<h3>1.1.4: Feb 23 2004</h3>
+<ul>
+  <li>bugfixes: attributes without doc (Mariano Suárez-Alvarez), problem with
+    Yelp, extension problem</li>
+  <li>display extension modules (Steve Little)</li>
+  <li>Windows compilation patch (Mark Vadoc), Mingw (Mikhail Grushinskiy)</li>
+</ul>
+
+<h3>1.1.3: Feb 16 2004</h3>
+<ul>
+  <li>Rewrote the Attribute Value Template code, new XPath compilation
+    interfaces, dictionnary reuses for XSLT with potential for serious
+    performance improvements.</li>
+  <li>bug fixes: portability (William Brack), key() in node-set() results
+    (William), comment before doctype (William), math and node-set() problems
+    (William), cdata element and default namespace (William), behaviour on
+    unknown XSLT elements (Stefan Kost), priority of "//foo" patterns
+    (William), xsl:element and xsl:attribute QName check (William), comments
+    with -- (William), attribute namespace (William), check for ?&gt; in PI
+    (William)</li>
+  <li>Documentations: cleanup (John Fleck and William)</li>
+  <li>Python: patch for OS-X (Gianni Ceccarelli), enums export (Stephane
+    bidoul)</li>
+</ul>
+
+<h3>1.1.2: Dec 24 2003</h3>
+<ul>
+  <li>Documentation fixes (John Fleck, William Brack), EXSLT documentation
+    (William Brack)</li>
+  <li>Windows compilation fixes for MSVC and Mingw (Igor Zlatkovic)</li>
+  <li>Bug fixes: exslt:date returning NULL strings (William Brack),
+    namespaces output (William Brack),  key and namespace definition problem,
+    passing options down to the document() parser, xsl:number fixes (William
+    Brack)</li>
+</ul>
+
+<h3>1.1.1: Dec 10 2003</h3>
+<ul>
+  <li>code cleanup (William Brack)</li>
+  <li>Windows: Makefile improvements (Igor Zlatkovic)</li>
+  <li>documentation improvements: William Brack, libexslt man page (Jonathan
+    Wakely)</li>
+  <li>param in EXSLT functions (Shaun McCance)</li>
+  <li>XSLT debugging improvements (Mark Vakoc)</li>
+  <li>bug fixes: number formatting (Bjorn Reese), exslt:tokenize (William
+    Brack), key selector parsing with | reported by Oleg Paraschenko,
+    xsl:element with computed namespaces (William Brack), xslt:import/include
+    recursion detection (William Brack), exslt:function used in keys (William
+    Brack), bug when CDATA_SECTION are foun in the tree (William Brack),
+    entities handling when using XInclude.</li>
+</ul>
+
+<h3>1.1.0: Nov 4 2003</h3>
+<ul>
+  <li>Removed DocBook SGML broken support</li>
+  <li>fix xsl:key to work with PIs</li>
+  <li>Makefile and build improvement (Graham Wilson), build cleanup (William
+    Brack), macro fix (Justin Fletcher), build outside of source tree (Roumen
+    Petrov)</li>
+  <li>xsltproc option display fix (Alexey Efimov), --load-trace (Crutcher
+    Dunnavant)</li>
+  <li>Python: never use stdout for error</li>
+  <li>extension memory error fix (Karl Eichwalder)</li>
+  <li>header path fixes (Steve Ball)</li>
+  <li>added saxon:line-number() to libexslt (Brett Kail)</li>
+  <li>Fix some tortuous template problems when using predicates (William
+    Brack)</li>
+  <li>Debugger status patch (Kasimier Buchcik)</li>
+  <li>Use new libxml2-2.6.x APIs for faster processing</li>
+  <li>Make sure xsl:sort is empty</li>
+  <li>Fixed a bug in default processing of attributes</li>
+  <li>Removes the deprecated breakpoint library</li>
+  <li>detect invalid names on templates (William Brack)</li>
+  <li>fix exslt:document (and similar) base handling problem</li>
+</ul>
+
+<h3>1.0.33: Sep 12 2003</h3>
+
+<p>This is a bugfix only release</p>
+<ul>
+  <li>error message missing argument (William Brack)</li>
+  <li>mode not cascaded in template fallbacks (William Brack)</li>
+  <li>catch redefinition of parameter/variables  (William Brack)</li>
+  <li>multiple keys with same namespace name (William Brack)</li>
+  <li>patch for compilation using MingW on Windows (Mikhail Grushinskiy)</li>
+  <li>header export macros for Windows (Igor Zlatkovic)</li>
+  <li>cdata-section-elements handling of namespaced names</li>
+  <li>compilation without libxml2 XPointer support (Mark Vadoc)</li>
+  <li>apply-templates crash (William Brack)</li>
+  <li>bug with imported templates (William Brack)</li>
+  <li>imported attribute-sets merging bug (DocBook) (William Brack)</li>
+</ul>
+
+<h3>1.0.32: Aug 9 2003</h3>
+<ul>
+  <li>bugfixes: xsltSaveResultToFile() python binding (Chris Jaeger), EXSLT
+    function (William Brack), RVT for globals (William Brack), EXSLT date
+    (William Brack),
+    <p>speed of large text output, xsl:copy with attributes, strip-space and
+    namespaces prefix, fix for --path xsltproc option, EXST:tokenize (Shaun
+    McCance), EXSLT:seconds (William Brack), sort with multiple keys (William
+    Brack), checking of { and } for attribute value templates (William
+    Brack)</p>
+  </li>
+  <li>Python bindings for extension elements (Sean Treadway)</li>
+  <li>EXSLT:split added (Shaun McCance)</li>
+  <li>portability fixes for HP-UX/Solaris/IRIX (William Brack)</li>
+  <li>doc cleanup</li>
+</ul>
+
+<h3>1.0.31: Jul 6 2003</h3>
+<ul>
+  <li>bugfixes: xsl:copy on namespace nodes, AVT for xsl:sort order, fix for
+    the debugger (Keith Isdale), output filename limitation, trio.h and
+    triodef.h added (Albert Chin), EXSLT node-set (Peter Breitenlohner),
+    xsltChoose and whitespace (Igor Zlatkovic),
+    <p>stylesheet compilation (Igor Zlatkovic), NaN and sort (William Brack),
+    RVT bug introduced in 1.0.30</p>
+  </li>
+  <li>avoid generating &amp;quot; (fix in libxml2-2.5.8)</li>
+  <li>fix 64bit cleaness problem and compilation troubles introduced in
+  1.0.30</li>
+  <li>Windows makefile generation (Igor Zlatkovic)</li>
+  <li>HP-UX portability fix</li>
+</ul>
+
+<h3>1.0.30: May 4 2003</h3>
+<ul>
+  <li>Fixes and new APIs to handle Result Value Trees and avoid leaks</li>
+  <li>Fixes for: EXSLT math pow() function (Charles Bozeman), global
+    parameter and global variables mismatch, a segfault on pattern
+    compilation errors, namespace copy in xsl:copy-of, python generator
+    problem, OpenVMS trio update, premature call to xsltFreeStackElem (Igor),
+    current node when templates applies to attributes</li>
+</ul>
+
+<h3>1.0.29: Apr 1 2003</h3>
+<ul>
+  <li>performance improvements especially for large flat documents</li>
+  <li>bug fixes: Result Value Tree handling, XML IDs, keys(), extra namespace
+    declarations with xsl:elements.</li>
+  <li>portability: python and trio fixes (Albert Chin), python on Solaris
+    (Ben Phillips)</li>
+</ul>
+
+<h3>1.0.28: Mar 24 2003</h3>
+<ul>
+  <li>fixed node() in patterns semantic.</li>
+  <li>fixed a memory access problem in format-number()</li>
+  <li>fixed stack overflow in recursive global variable or params</li>
+  <li>cleaned up Result Value Tree handling, and fixed a couple of old bugs
+    in the process</li>
+</ul>
+
+<h3>1.0.27: Feb 24 2003</h3>
+<ul>
+  <li>bug fixes: spurious xmlns:nsX="" generation, serialization bug (in
+    libxml2), a namespace copy problem, errors in the RPM spec prereqs</li>
+  <li>Windows path canonicalization and document cache fix (Igor)</li>
+</ul>
+
+<h3>1.0.26: Feb 10 2003</h3>
+<ul>
+  <li>Fixed 3 serious bugs in document() and stylesheet compilation which
+    could lead to a crash</li>
+</ul>
+
+<h3>1.0.25: Feb 5 2003</h3>
+<ul>
+  <li>Bug fix: double-free for standalone stylesheets introduced in 1.0.24, C
+    syntax pbm, 3 bugs reported by Eric van der Vlist</li>
+  <li>Some XPath and XInclude related problems were actually fixed in
+    libxml2-2.5.2</li>
+  <li>Documentation: emphasize taht --docbook is not for XML docs.</li>
+</ul>
+
+<h3>1.0.24: Jan 14 2003</h3>
+<ul>
+  <li>bug fixes: imported global varables, python bindings (Stéphane Bidoul),
+    EXSLT memory leak (Charles Bozeman), namespace generation on
+    xsl:attribute, space handling with imports (Daniel Stodden),
+    extension-element-prefixes (Josh Parsons), comments within xsl:text (Matt
+    Sergeant), superfluous xmlns generation, XInclude related bug for
+    numbering, EXSLT strings (Alexey Efimov), attribute-sets computation on
+    imports, extension module init and shutdown callbacks not called</li>
+  <li>HP-UX portability (Alexey Efimov), Windows makefiles (Igor and Stephane
+    Bidoul), VMS makefile updates (Craig A. Berry)</li>
+  <li>adds xsltGetProfileInformation() (Michael Rothwell)</li>
+  <li>fix the API generation scripts</li>
+  <li>API to provide the sorting routines (Richard Jinks)</li>
+  <li>added XML description of the EXSLT API</li>
+  <li>added ESXLT URI (un)escaping (Jörg Walter)</li>
+  <li>Some memory leaks have been found and fixed</li>
+  <li>document() now support fragment identifiers in URIs</li>
+</ul>
+
+<h3>1.0.23: Nov 17 2002</h3>
+<ul>
+  <li>Windows build cleanup (Igor)</li>
+  <li>Unix build and RPM packaging cleanup</li>
+  <li>Improvement of the python bindings: extension functions and activating
+    EXSLT</li>
+  <li>various bug fixes: number formatting, portability for bounded string
+    functions, CData nodes, key(), @*[...] patterns</li>
+  <li>Documentation improvements (John Fleck)</li>
+  <li>added libxslt.m4 (Thomas Schraitle)</li>
+</ul>
+
+<h3>1.0.22: Oct 18 2002</h3>
+<ul>
+  <li>Updates on the Windows Makefiles</li>
+  <li>Added a security module, and a related set of new options to
+  xsltproc</li>
+  <li>Allowed per transformation error handler.</li>
+  <li>Fixed a few bugs: node() semantic, URI escaping, media-type, attribute
+    lists</li>
+</ul>
+
+<h3>1.0.21: Sep 26 2002</h3>
+<ul>
+  <li>Bug fixes: match="node()", date:difference() (Igor and Charlie
+    Bozeman), disable-output-escaping</li>
+  <li>Python bindings: style.saveResultToString() from Ralf Mattes</li>
+  <li>Logos from Marc Liyanage</li>
+  <li>Mem leak fix from Nathan Myers</li>
+  <li>Makefile: DESTDIR fix from Christophe Merlet, AMD x86_64 (Mandrake),
+    Windows (Igor), Python detection</li>
+  <li>Documentation improvements: John Fleck</li>
+</ul>
+
+<h3>1.0.20: Aug 23 2002</h3>
+<ul>
+  <li>Windows makefile updates (Igor) and x86-64 (Frederic Crozat)</li>
+  <li>fixed HTML meta tag saving for Mac/IE users</li>
+  <li>possible leak patches from Nathan Myers</li>
+  <li>try to handle document('') as best as possible depending in the
+  cases</li>
+  <li>Fixed the DocBook stylesheets handling problem</li>
+  <li>Fixed a few XSLT reported errors</li>
+</ul>
+
+<h3>1.0.19:  July 6 2002</h3>
+<ul>
+  <li>EXSLT: dynamic functions and date support bug fixes (Mark Vakoc)</li>
+  <li>xsl:number fix: Richard Jinks</li>
+  <li>xsl:format-numbers fix: Ken Neighbors</li>
+  <li>document('') fix: bug pointed by Eric van der Vlist</li>
+  <li>xsl:message with terminate="yes" fixes: William Brack</li>
+  <li>xsl:sort order support added: Ken Neighbors</li>
+  <li>a few other bug fixes, some of them requiring the latest version of
+    libxml2</li>
+</ul>
+
+<h3>1.0.18: May 27 2002</h3>
+<ul>
+  <li>a number of bug fixes: attributes, extra namespace declarations
+    (DocBook), xsl:include crash (Igor), documentation (Christian Cornelssen,
+    Charles Bozeman and Geert Kloosterman),  element-available (Richard
+  Jinks)</li>
+  <li>xsltproc can now list teh registered extensions thanks to Mark
+  Vakoc</li>
+  <li>there is a new API to save directly to a string
+    xsltSaveResultToString() by Morus Walter</li>
+  <li>specific error registration function for the python API</li>
+</ul>
+
+<h3>1.0.17: April 29 2002</h3>
+<ul>
+  <li>cleanup in code, XSLT debugger support and Makefiles for Windows by
+  Igor</li>
+  <li>a C++ portability fix by Mark Vakoc</li>
+  <li>EXSLT date improvement and regression tests by Charles Bozeman</li>
+  <li>attempt to fix a bug in xsltProcessUserParamInternal</li>
+</ul>
+
+<h3>1.0.16: April 15 2002</h3>
+<ul>
+  <li>Bug fixes: strip-space, URL in HTML output, error when xsltproc can't
+    save</li>
+  <li>portability fixes: OSF/1, IEEE on alphas, Windows, Python bindings</li>
+</ul>
+
+<h3>1.0.15: Mar 25 2002</h3>
+<ul>
+  <li>Bugfixes: XPath, python Makefile, recursive attribute sets, @foo[..]
+    templates</li>
+  <li>Debug of memory alocation with valgind</li>
+  <li>serious profiling leading to significant improvement for DocBook
+    processing</li>
+  <li>revamp of the Windows build</li>
+</ul>
+
+<h3>1.0.14: Mar 18 2002</h3>
+<ul>
+  <li>Improvement in the XPath engine (libxml2-2.4.18)</li>
+  <li>Nasty bug fix related to exslt:node-set</li>
+  <li>Fixed the python Makefiles, cleanup of doc comments, Windows
+    portability fixes</li>
+</ul>
+
+<h3>1.0.13: Mar 8 2002</h3>
+<ul>
+  <li>a number of bug fixes including "namespace node have no parents"</li>
+  <li>Improvement of the Python bindings</li>
+  <li>Charles Bozeman provided fixes and regression tests for exslt date
+    functions.</li>
+</ul>
+
+<h3>1.0.12: Feb 11 2002</h3>
+<ul>
+  <li>Fixed the makefiles especially the python module ones</li>
+  <li>half a dozen bugs fixes including 2 old ones</li>
+</ul>
+
+<h3>1.0.11: Feb 8 2002</h3>
+<ul>
+  <li>Change of Licence to the <a
+    href="http://www.opensource.org/licenses/mit-license.html">MIT
+  Licence</a></li>
+  <li>Added a beta version of the Python bindings, including support to
+    extend the engine with functions written in Python</li>
+  <li>A number of bug fixes</li>
+  <li>Charlie Bozeman provided more EXSLT functions</li>
+  <li>Portability fixes</li>
+</ul>
+
+<h3>1.0.10: Jan 14 2002</h3>
+<ul>
+  <li>Windows fixes for Win32 from Igor</li>
+  <li>Fixed the Solaris compilation trouble (Albert)</li>
+  <li>Documentation changes and updates: John Fleck</li>
+  <li>Added a stringparam option to avoid escaping hell at the shell
+  level</li>
+  <li>A few bug fixes</li>
+</ul>
+
+<h3>1.0.9: Dec 7 2001</h3>
+<ul>
+  <li>Makefile patches from Peter Williams</li>
+  <li>attempt to fix the compilation problem associated to prelinking</li>
+  <li>obsoleted libxsltbreakpoint now deprecated and frozen to 1.0.8 API</li>
+  <li>xsltproc return codes are now significant, John Fleck updated the
+    documentation</li>
+  <li>patch to allow as much as 40 steps in patterns (Marc Tardif), should be
+    made dynamic really</li>
+  <li>fixed a bug raised by Nik Clayton when using doctypes with HTML
+  output</li>
+  <li>patches from Keith Isdale to interface with xsltdebugger</li>
+</ul>
+
+<h3>1.0.8: Nov 26 2001</h3>
+<ul>
+  <li>fixed an annoying header problem, removed a few bugs and some code
+    cleanup</li>
+  <li>patches for Windows and update of Windows Makefiles by Igor</li>
+  <li>OpenVMS port instructions from John A Fotheringham</li>
+  <li>fixed some Makefiles annoyance and libraries prelinking
+  informations</li>
+</ul>
+
+<h3>1.0.7: Nov 10 2001</h3>
+<ul>
+  <li>remove a compilation problem with LIBXSLT_PUBLIC</li>
+  <li>Finishing the integration steps for Keith Isdale debugger</li>
+  <li>fixes the handling of indent="no" on HTML output</li>
+  <li>fixes on the configure script and RPM spec file</li>
+</ul>
+
+<h3>1.0.6: Oct 30 2001</h3>
+<ul>
+  <li>bug fixes on number formatting (Thomas), date/time functions (Bruce
+    Miller)</li>
+  <li>update of the Windows Makefiles (Igor)</li>
+  <li>fixed DOCTYPE generation rules for HTML output (me)</li>
+</ul>
+
+<h3>1.0.5: Oct 10 2001</h3>
+<ul>
+  <li>some portability fixes, including Windows makefile updates from
+  Igor</li>
+  <li>fixed a dozen bugs on XSLT and EXSLT (me and Thomas Broyer)</li>
+  <li>support for Saxon's evaluate and expressions extensions added (initial
+    contribution from Darren Graves)</li>
+  <li>better handling of XPath evaluation errors</li>
+</ul>
+
+<h3>1.0.4: Sep 12 2001</h3>
+<ul>
+  <li>Documentation updates from John fleck</li>
+  <li>bug fixes (DocBook  FO generation should be fixed)  and portability
+    improvements</li>
+  <li>Thomas Broyer improved the existing EXSLT support and added String,
+    Time and Date core functions support</li>
+</ul>
+
+<h3>1.0.3:  Aug 23 2001</h3>
+<ul>
+  <li>XML Catalog support see the doc</li>
+  <li>New NaN/Infinity floating point code</li>
+  <li>A few bug fixes</li>
+</ul>
+
+<h3>1.0.2:  Aug 15 2001</h3>
+<ul>
+  <li>lot of bug fixes, increased the testsuite</li>
+  <li>a large chunk of EXSLT is implemented</li>
+  <li>improvements on the extension framework</li>
+  <li>documentation improvements</li>
+  <li>Windows MSC projects files should be up-to-date</li>
+  <li>handle attributes inherited from the DTD by default</li>
+</ul>
+
+<h3>1.0.1:  July 24 2001</h3>
+<ul>
+  <li>initial EXSLT framework</li>
+  <li>better error reporting</li>
+  <li>fixed the profiler on Windows</li>
+  <li>bug fixes</li>
+</ul>
+
+<h3>1.0.0: July 10 2001</h3>
+<ul>
+  <li>a lot of cleanup, a lot of regression tests added or fixed</li>
+  <li>added a documentation for <a href="extensions.html">writing
+    extensions</a></li>
+  <li>fixed some variable evaluation problems (with William)</li>
+  <li>added profiling of stylesheet execution accessible as the xsltproc
+    --profile option</li>
+  <li>fixed element-available() and the implementation of the various
+    chunking methods present, Norm Walsh provided a lot of feedback</li>
+  <li>exclude-result-prefixes and namespaces output should now work as
+    expected</li>
+  <li>added support of embedded stylesheet as described in section 2.7 of the
+    spec</li>
+</ul>
+
+<h3>0.14.0: July 5 2001</h3>
+<ul>
+  <li>lot of bug fixes, and code cleanup</li>
+  <li>completion of the little XSLT-1.0 features left unimplemented</li>
+  <li>Added and implemented the extension API suggested by Thomas Broyer</li>
+  <li>the Windows MSC environment should be complete</li>
+  <li>tested and optimized with a really large document (DocBook Definitive
+    Guide) libxml/libxslt should really be faster on serious workloads</li>
+</ul>
+
+<h3>0.13.0: June 26 2001</h3>
+<ul>
+  <li>lots of cleanups</li>
+  <li>fixed a C++ compilation problem</li>
+  <li>couple of fixes to xsltSaveTo()</li>
+  <li>try to fix Docbook-xslt-1.4 and chunking, updated the regression test
+    with them</li>
+  <li>fixed pattern compilation and priorities problems</li>
+  <li>Patches for Windows and MSC project mostly contributed by Yon Derek</li>
+  <li>update to the Tutorial by John Fleck</li>
+  <li>William fixed bugs in templates and for-each functions</li>
+  <li>added a new interface xsltRunStylesheet() for a more flexible output
+    (incomplete), added -o option to xsltproc</li>
+</ul>
+
+<h3>0.12.0: June 18 2001</h3>
+<ul>
+  <li>fixed a dozen of bugs reported</li>
+  <li>HTML generation should be quite better (requires libxml-2.3.11 upgrade
+    too)</li>
+  <li>William fixed some problems with document()</li>
+  <li>Fix namespace nodes selection and copy (requires libxml-2.3.11 upgrade
+    too)</li>
+  <li>John Fleck added a<a href="tutorial/libxslttutorial.html">
+  tutorial</a></li>
+  <li>Fixes for namespace handling when evaluating variables</li>
+  <li>XInclude global flag added to process XInclude on document() if
+    requested</li>
+  <li>made xsltproc --version more detailed</li>
+</ul>
+
+<h3>0.11.0: June 1 2001</h3>
+
+<p>Mostly a bug fix release.</p>
+<ul>
+  <li>integration of catalogs from xsltproc</li>
+  <li>added --version to xsltproc for bug reporting</li>
+  <li>fixed errors when handling ID in external parsed entities</li>
+  <li>document() should hopefully work correctly but ...</li>
+  <li>fixed bug with PI and comments processing</li>
+  <li>William fixed the XPath string functions when using unicode</li>
+</ul>
+
+<h3>0.10.0: May 19 2001</h3>
+<ul>
+  <li>cleanups to make stylesheet read-only (not 100% complete)</li>
+  <li>fixed URI resolution in document()</li>
+  <li>force all XPath expression to be compiled at stylesheet parsing time,
+    even if unused ...</li>
+  <li>Fixed HTML default output detection</li>
+  <li>Fixed double attribute generation #54446</li>
+  <li>Fixed {{ handling in attributes #54451</li>
+  <li>More tests and speedups for DocBook document transformations</li>
+  <li>Fixed a really bad race like bug in xsltCopyTreeList()</li>
+  <li>added a documentation on the libxslt internals</li>
+  <li>William Brack and Bjorn Reese improved format-number()</li>
+  <li>Fixed multiple sort, it should really work now</li>
+  <li>added a --docbook option for SGML DocBook input (hackish)</li>
+  <li>a number of other bug fixes and regression test added as people were
+    submitting them</li>
+</ul>
+
+<h3>0.9.0: May 3 2001</h3>
+<ul>
+  <li>lot of various bugfixes, extended the regression suite</li>
+  <li>xsltproc should work with multiple params</li>
+  <li>added an option to use xsltproc with HTML input</li>
+  <li>improved the stylesheet compilation, processing of complex stylesheets
+    should be faster</li>
+  <li>using the same stylesheet for concurrent processing on multithreaded
+    programs should work now</li>
+  <li>fixed another batch of namespace handling problems</li>
+  <li>Implemented multiple level of sorting</li>
+</ul>
+
+<h3>0.8.0: Apr 22 2001</h3>
+<ul>
+  <li>fixed ansidecl.h problem</li>
+  <li>fixed unparsed-entity-uri() and generate-id()</li>
+  <li>sort semantic fixes and priority prob from William M. Brack</li>
+  <li>fixed namespace handling problems in XPath expression computations
+    (requires libxml-2.3.7)</li>
+  <li>fixes to current() and key()</li>
+  <li>other, smaller fixes, lots of testing with N Walsh DocBook HTML
+    stylesheets</li>
+</ul>
+
+<h3>0.7.0: Apr 10 2001</h3>
+<ul>
+  <li>cleanup using stricter compiler flags</li>
+  <li>command line parameter passing</li>
+  <li>fix to xsltApplyTemplates from William M. Brack</li>
+  <li>added the XSLTMark in the regression tests as well as document()</li>
+</ul>
+
+<h3>0.6.0: Mar 22 2001</h3>
+<ul>
+  <li>another beta</li>
+  <li>requires 2.3.5, which provide XPath expression compilation support</li>
+  <li>document() extension should function properly</li>
+  <li>fixed a number or reported bugs</li>
+</ul>
+
+<h3>0.5.0: Mar 10 2001</h3>
+<ul>
+  <li>fifth beta</li>
+  <li>some optimization work, for the moment 2 XSLT transform cannot use the
+    same stylesheet at the same time (to be fixed)</li>
+  <li>fixed problems with handling of tree results</li>
+  <li>fixed a reported strip-spaces problem</li>
+  <li>added more reported/fixed bugs to the test suite</li>
+  <li>incorporated William M. Brack fix for imports and global variables as
+    well as patch for with-param support in apply-templates</li>
+  <li>a bug fix on for-each</li>
+</ul>
+
+<h3>0.4.0: Mar 1 2001</h3>
+<ul>
+  <li>fourth beta test, released at the same time of libxml2-2.3.3</li>
+  <li>bug fixes</li>
+  <li>some optimization</li>
+  <li>started implement extension support, not finished</li>
+  <li>implemented but not tested multiple file output</li>
+</ul>
+
+<h3>0.3.0: Feb 24 2001</h3>
+<ul>
+  <li>third beta test, released at the same time of libxml2-2.3.2</li>
+  <li>lot of bug fixes</li>
+  <li>some optimization</li>
+  <li>added DocBook XSL based testsuite</li>
+</ul>
+
+<h3>0.2.0: Feb 15 2001</h3>
+<ul>
+  <li>second beta version, released at the same time as libxml2-2.3.1</li>
+  <li>getting close to feature completion, lot of bug fixes, some in the HTML
+    and XPath support of libxml</li>
+  <li>start becoming usable for real work. This version can now regenerate
+    the XML 2e HTML from the original XML sources and the associated
+    stylesheets (in <a
+    href="http://www.w3.org/TR/REC-xml#b4d250b6c21">section I of the XML
+    REC</a>)</li>
+  <li>Still misses extension element/function/prefixes support. Support of
+    key() and document() is not complete</li>
+</ul>
+
+<h3>0.1.0: Feb 8 2001</h3>
+<ul>
+  <li>first beta version, released at the same time as libxml2-2.3.0</li>
+  <li>lots of bug fixes, first "testing" version, but incomplete</li>
+</ul>
+
+<h3>0.0.1: Jan 25 2001</h3>
+<ul>
+  <li>first alpha version released at the same time as libxml2-2.2.12</li>
+  <li>Framework in place, should work on simple examples, but far from being
+    feature complete</li>
+</ul>
+
+<h2><a name="xsltproc">The xsltproc tool</a></h2>
+
+<p>This program is the simplest way to use libxslt: from the command line. It
+is also used for doing the regression tests of the library.</p>
+
+<p>It takes as first argument the path or URL to an XSLT stylesheet, the next
+arguments are filenames or URIs of the inputs to be processed. The output of
+the processing is redirected on the standard output. There is actually a few
+more options available:</p>
+<pre>orchis:~ -&gt; xsltproc
+Usage: xsltproc [options] stylesheet file [file ...]
+   Options:
+      --version or -V: show the version of libxml and libxslt used
+      --verbose or -v: show logs of what's happening
+      --output file or -o file: save to a given file
+      --timing: display the time used
+      --repeat: run the transformation 20 times
+      --debug: dump the tree of the result instead
+      --novalid: skip the Dtd loading phase
+      --noout: do not dump the result
+      --maxdepth val : increase the maximum depth
+      --html: the input document is(are) an HTML file(s)
+      --docbook: the input document is SGML docbook
+      --param name value : pass a (parameter,value) pair
+      --nonet refuse to fetch DTDs or entities over network
+      --warnnet warn against fetching over the network
+      --catalogs : use the catalogs from $SGML_CATALOG_FILES
+      --xinclude : do XInclude processing on document intput
+      --profile or --norman : dump profiling informations 
+orchis:~ -&gt;</pre>
+
+<h2><a name="DocBook">DocBook</a></h2>
+
+<p><img src="duck.png" align="right" alt="The duck picture"></p>
+
+<p><a href="http://www.oasis-open.org/committees/docbook/">DocBook</a> is an
+XML/SGML vocabulary particularly well suited to books and papers about
+computer hardware and software.</p>
+
+<p>xsltproc and libxslt are not specifically dependant on DocBook, but since
+a lot of people use xsltproc and libxml2 for DocBook formatting, here are a
+few pointers and informations which may be helpful:</p>
+<ul>
+  <li>The <a href="http://www.oasis-open.org/committees/docbook/">DocBook
+    homepage at Oasis</a> you should find pointers there on all the lastest
+    versions of the DTDs and XSLT stylesheets</li>
+  <li><a href="http://www.docbook.org/">DocBook: The Definitive Guide</a> is
+    the official reference documentation for DocBook.</li>
+  <li><a
+    href="https://sourceforge.net/docman/index.php?group_id=21935">DocBook
+    Open Repository</a> contains a lot of informations about DocBook</li>
+  <li>Bob Stayton provides a <a href="http://www.sagehill.net/">lot of
+    resources</a> and consulting services around DocBook.</li>
+  <li>Here is a <a href="/buildDocBookCatalog">shell script</a> to generate
+    XML Catalogs for DocBook 4.1.2 . If it can write to the /etc/xml/
+    directory, it will set-up /etc/xml/catalog and /etc/xml/docbook based on
+    the resources found on the system. Otherwise it will just create
+    ~/xmlcatalog and ~/dbkxmlcatalog and doing:
+    <p><code>export XMLCATALOG=$HOME/xmlcatalog</code></p>
+    <p>should allow to process DocBook documentations without requiring
+    network accesses for the DTd or stylesheets</p>
+  </li>
+  <li>I have uploaded <a href="ftp://xmlsoft.org/libxml2/test/dbk412catalog.tar.gz">a
+    small tarball</a> containing XML Catalogs for DocBook 4.1.2 which seems
+    to work fine for me too</li>
+  <li>Informations on installing a <a
+    href="http://ourworld.compuserve.com/homepages/hoenicka_markus/ntsgml.html">Windows
+    DocBook processing setup</a> based on Cygwin (using the binaries from the
+    official Windows port should be possible too)</li>
+  <li>Alexander Kirillov's page on <a
+    href="http://www.math.sunysb.edu/~kirillov/dbxml/">Using DocBook XML
+    4.1.2</a> (RPM packages)</li>
+  <li>Tim Waugh's <a href="http://cyberelk.net/tim/xmlto/">xmlto front-end
+    conversion script</a></li>
+  <li>Linux Documentation Project <a
+    href="http://www.linuxdoc.org/HOWTO/mini/DocBook-Install/">
+    DocBook-Install-mini-HOWTO</a></li>
+  <li>ScrollKeeper the open documentation cataloging project has a <a
+    href="http://scrollkeeper.sourceforge.net/docbook.shtml">DocBook
+    section</a></li>
+  <li>Dan York presentation on <a
+    href="http://www.lodestar2.com/people/dyork/talks/2001/xugo/docbook/index.html">Publishing
+    using DocBook XML</a></li>
+</ul>
+
+<p>Do not use the --docbook option of xsltproc to process XML DocBook
+documents, this option is only intended to provide some (limited) support of
+the SGML version of DocBook.</p>
+
+<p>Points which are not DocBook specific but still worth mentionning
+again:</p>
+<ul>
+  <li>if you think DocBook processing time is too slow, make sure you have
+    XML Catalogs pointing to a local installation of the DTD of DocBook.
+    Check the <a href="http://xmlsoft.org/catalog.html">XML Catalog page</a>
+    to understand more on this subject.</li>
+  <li>before processing a new document, use the command
+    <p><code>xmllint --valid --noout path_to_document</code></p>
+    <p>to make sure that your input is valid DocBook. And fixes the errors
+    before processing further. Note that XSLT processing may work correctly
+    with some forms of validity errors left, but in general it can give
+    troubles on output.</p>
+  </li>
+</ul>
+
+<h2><a name="API">The programming API</a></h2>
+
+<p>Okay this section is clearly incomplete. But integrating libxslt into your
+application should be relatively easy. First check the few steps described
+below, then for more detailed informations, look at the<a
+href="html/libxslt-lib.html"> generated pages</a> for the API and the source
+of libxslt/xsltproc.c  and the  <a
+href="tutorial/libxslttutorial.html">tutorial</a>.</p>
+
+<p>Basically doing an XSLT transformation can be done in a few steps:</p>
+<ol>
+  <li>configure the parser for XSLT:
+    <p>xmlSubstituteEntitiesDefault(1);</p>
+    <p>xmlLoadExtDtdDefaultValue = 1;</p>
+  </li>
+  <li>parse the stylesheet with xsltParseStylesheetFile()</li>
+  <li>parse the document with xmlParseFile()</li>
+  <li>apply the stylesheet using xsltApplyStylesheet()</li>
+  <li>save the result using xsltSaveResultToFile() if needed set
+    xmlIndentTreeOutput to 1</li>
+</ol>
+
+<p>Steps 2,3, and 5 will probably need to be changed depending on you
+processing needs and environment for example if reading/saving from/to
+memory, or if you want to apply XInclude processing to the stylesheet or
+input documents.</p>
+
+<h2><a name="Python">Python and bindings</a></h2>
+
+<p>There is a number of language bindings and wrappers available for libxml2,
+the list below is not exhaustive. Please contact the <a
+href="http://mail.gnome.org/mailman/listinfo/xml-bindings">xml-bindings at gnome.org</a>
+(<a href="http://mail.gnome.org/archives/xml-bindings/">archives</a>) in
+order to get updates to this list or to discuss the specific topic of libxml2
+or libxslt wrappers or bindings:</p>
+<ul>
+  <li><a
+    href="http://mail.gnome.org/archives/xml/2001-March/msg00014.html">Matt
+    Sergeant</a> developped <a href="http://axkit.org/download/">XML::LibXML
+    and XML::LibXSLT</a>, Perl wrappers for libxml2/libxslt as part of the <a
+    href="http://axkit.com/">AxKit XML application server</a></li>
+  <li><a href="mailto:dkuhlman at cutter.rexx.com">Dave Kuhlman</a> provides and
+    earlier version of the libxml/libxslt <a
+    href="http://www.rexx.com/~dkuhlman">wrappers for Python</a></li>
+  <li>Petr Kozelka provides <a
+    href="http://sourceforge.net/projects/libxml2-pas">Pascal units to glue
+    libxml2</a> with Kylix, Delphi and other Pascal compilers</li>
+  <li>Wai-Sun "Squidster" Chia provides <a
+    href="http://www.rubycolor.org/arc/redist/">bindings for Ruby</a>  and
+    libxml2 bindings are also available in Ruby through the <a
+    href="http://libgdome-ruby.berlios.de/">libgdome-ruby</a> module
+    maintained by Tobias Peters.</li>
+  <li>Steve Ball and contributors maintains <a
+    href="http://tclxml.sourceforge.net/">libxml2 and libxslt bindings for
+    Tcl</a></li>
+  <li><a href="mailto:xmlwrapp at pmade.org">Peter Jones</a> maintains C++
+    bindings for libxslt within <a
+    href="http://pmade.org/pjones/software/xmlwrapp/">xmlwrapp</a></li>
+  <li><a href="phillim2 at comcast.net">Mike Phillips</a> provides a module
+    using <a href="http://siasl.dyndns.org/projects/projects.html">libxslt
+    for PHP</a>.</li>
+  <li><a href="http://savannah.gnu.org/projects/classpathx/">LibxmlJ</a> is
+    an effort to create a 100% JAXP-compatible Java wrapper for libxml2 and
+    libxslt as part of GNU ClasspathX project.</li>
+  <li>Patrick McPhee provides Rexx bindings fof libxml2 and libxslt, look for
+    <a href="http://www.interlog.com/~ptjm/software.html">RexxXML</a>.</li>
+  <li><a
+    href="http://www.satimage.fr/software/en/xml_suite.html">Satimage</a>
+    provides <a
+    href="http://www.satimage.fr/software/en/downloads_osaxen.html">XMLLib
+    osax</a>. This is an osax for Mac OS X with a set of commands to
+    implement in AppleScript the XML DOM, XPATH and XSLT.</li>
+</ul>
+
+<p>The libxslt Python module depends on the <a
+href="http://xmlsoft.org/python.html">libxml2 Python</a> module.</p>
+
+<p>The distribution includes a set of Python bindings, which are garanteed to
+be maintained as part of the library in the future, though the Python
+interface have not yet reached the completeness of the C API.</p>
+
+<p><a href="mailto:stephane.bidoul at softwareag.com">Stéphane Bidoul</a>
+maintains <a href="http://users.skynet.be/sbi/libxml-python/">a Windows port
+of the Python bindings</a>.</p>
+
+<p>Note to people interested in building bindings, the API is formalized as
+<a href="libxslt-api.xml">an XML API description file</a> which allows to
+automate a large part of the Python bindings, this includes function
+descriptions, enums, structures, typedefs, etc... The Python script used to
+build the bindings is python/generator.py in the source distribution.</p>
+
+<p>To install the Python bindings there are 2 options:</p>
+<ul>
+  <li>If you use an RPM based distribution, simply install the <a
+    href="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2-python">libxml2-python
+    RPM</a> and the <a
+    href="http://rpmfind.net/linux/rpm2html/search.php?query=libxslt-python">libxslt-python
+    RPM</a>.</li>
+  <li>Otherwise use the <a href="ftp://xmlsoft.org/libxml2/python/">libxml2-python
+    module distribution</a> corresponding to your installed version of
+    libxml2 and libxslt. Note that to install it you will need both libxml2
+    and libxslt installed and run "python setup.py build install" in the
+    module tree.</li>
+</ul>
+
+<p>The distribution includes a set of examples and regression tests for the
+python bindings in the <code>python/tests</code> directory. Here are some
+excepts from those tests:</p>
+
+<h3>basic.py:</h3>
+
+<p>This is a basic test of XSLT interfaces: loading a stylesheet and a
+document, transforming the document and saving the result.</p>
+<pre>import libxml2
+import libxslt
+
+styledoc = libxml2.parseFile("test.xsl")
+style = libxslt.parseStylesheetDoc(styledoc)
+doc = libxml2.parseFile("test.xml")
+result = style.applyStylesheet(doc, None)
+style.saveResultToFilename("foo", result, 0)
+style.freeStylesheet()
+doc.freeDoc()
+result.freeDoc()</pre>
+
+<p>The Python module is called libxslt, you will also need the libxml2 module
+for the operations on XML trees. Let's have a look at the objects manipulated
+in that example and how is the processing done:</p>
+<ul>
+  <li><code>styledoc</code> : is a libxml2 document tree. It is obtained by
+    parsing the XML file "test.xsl" containing the stylesheet.</li>
+  <li><code>style</code> : this is a precompiled stylesheet ready to be used
+    by the following transformations (note the plural form, multiple
+    transformations can resuse the same stylesheet).</li>
+  <li><code>doc</code> : this is the document to apply the transformation to.
+    In this case it is simply generated by parsing it from a file but any
+    other processing is possible as long as one get a libxml2 Doc. Note that
+    HTML tree are suitable for XSLT processing in libxslt. This is actually
+    how this page is generated !</li>
+  <li><code>result</code> : this is a document generated by applying the
+    stylesheet to the document. Note that some of the stylesheet informations
+    may be related to the serialization of that document and as in this
+    example a specific saveResultToFilename() method of the stylesheet should
+    be used to save it to a file (in that case to "foo").</li>
+</ul>
+
+<p>Also note the need to explicitely deallocate documents with freeDoc()
+except for the stylesheet document which is freed when its compiled form is
+garbage collected.</p>
+
+<h3>extfunc.py:</h3>
+
+<p>This one is a far more complex test. It shows how to modify the behaviour
+of an XSLT transformation by passing parameters and how to extend the XSLT
+engine with functions defined in python:</p>
+<pre>import libxml2
+import libxslt
+import string
+
+nodeName = None
+def f(ctx, str):
+    global nodeName
+
+    #
+    # Small check to verify the context is correcly accessed
+    #
+    try:
+        pctxt = libxslt.xpathParserContext(_obj=ctx)
+        ctxt = pctxt.context()
+        tctxt = ctxt.transformContext()
+        nodeName = tctxt.insertNode().name
+    except:
+        pass
+
+    return string.upper(str)
+
+libxslt.registerExtModuleFunction("foo", "http://example.com/foo", f)</pre>
+
+<p>This code defines and register an extension function. Note that the
+function can be bound to any name (foo) and how the binding is also
+associated to a namespace name "http://example.com/foo". From an XSLT point
+of view the function just returns an upper case version of the string passed
+as a parameter. But the first part of the function also read some contextual
+information from the current XSLT processing environement, in that case it
+looks for the current insertion node in the resulting output (either the
+resulting document or the Result Value Tree being generated), and saves it to
+a global variable for checking that the access actually worked.</p>
+
+<p>For more informations on the xpathParserContext and transformContext
+objects check the <a href="internals.html">libray internals description</a>.
+The pctxt is actually an object from a class derived from the
+libxml2.xpathParserContext() with just a couple more properties including the
+possibility to look up the XSLT transformation context from the XPath
+context.</p>
+<pre>styledoc = libxml2.parseDoc("""
+&lt;xsl:stylesheet version='1.0'
+  xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+  xmlns:foo='http://example.com/foo'
+  xsl:exclude-result-prefixes='foo'&gt;
+
+  &lt;xsl:param name='bar'&gt;failure&lt;/xsl:param&gt;
+  &lt;xsl:template match='/'&gt;
+    &lt;article&gt;&lt;xsl:value-of select='foo:foo($bar)'/&gt;&lt;/article&gt;
+  &lt;/xsl:template&gt;
+&lt;/xsl:stylesheet&gt;
+""")</pre>
+
+<p>Here is a simple example of how to read an XML document from a python
+string with libxml2. Note how this stylesheet:</p>
+<ul>
+  <li>Uses a global parameter <code>bar</code></li>
+  <li>Reference the extension function f</li>
+  <li>how the Namespace name "http://example.com/foo" has to be bound to a
+    prefix</li>
+  <li>how that prefix is excluded from the output</li>
+  <li>how the function is called from the select</li>
+</ul>
+<pre>style = libxslt.parseStylesheetDoc(styledoc)
+doc = libxml2.parseDoc("&lt;doc/&gt;")
+result = style.applyStylesheet(doc, { "bar": "'success'" })
+style.freeStylesheet()
+doc.freeDoc()</pre>
+
+<p>that part is identical, to the basic example except that the
+transformation is passed a dictionnary of parameters. Note that the string
+passed "success" had to be quoted, otherwise it is interpreted as an XPath
+query for the childs of root named "success".</p>
+<pre>root = result.children
+if root.name != "article":
+    print "Unexpected root node name"
+    sys.exit(1)
+if root.content != "SUCCESS":
+    print "Unexpected root node content, extension function failed"
+    sys.exit(1)
+if nodeName != 'article':
+    print "The function callback failed to access its context"
+    sys.exit(1)
+
+result.freeDoc()</pre>
+
+<p>That part just verifies that the transformation worked, that the parameter
+got properly passed to the engine, that the function f() got called and that
+it properly accessed the context to find the name of the insertion node.</p>
+
+<h3>pyxsltproc.py:</h3>
+
+<p>this module is a bit too long to be described there but it is basically a
+rewrite of the xsltproc command line interface of libxslt in Python. It
+provides nearly all the functionalities of xsltproc and can be used as a base
+module to write Python customized XSLT processors. One of the thing to notice
+are:</p>
+<pre>libxml2.lineNumbersDefault(1)
+libxml2.substituteEntitiesDefault(1)</pre>
+
+<p>those two calls in the main() function are needed to force the libxml2
+processor to generate DOM trees compliant with the XPath data model.</p>
+
+<h2><a name="Internals">Library internals</a></h2>
+
+<h3>Table  of contents</h3>
+<ul>
+  <li><a href="internals.html#Introducti">Introduction</a></li>
+  <li><a href="internals.html#Basics">Basics</a></li>
+  <li><a href="internals.html#Keep">Keep it simple stupid</a></li>
+  <li><a href="internals.html#libxml">The libxml nodes</a></li>
+  <li><a href="internals.html#XSLT">The XSLT processing steps</a></li>
+  <li><a href="internals.html#XSLT1">The XSLT stylesheet compilation</a></li>
+  <li><a href="internals.html#XSLT2">The XSLT template compilation</a></li>
+  <li><a href="internals.html#processing">The processing itself</a></li>
+  <li><a href="internals.html#XPath">XPath expressions compilation</a></li>
+  <li><a href="internals.html#XPath1">XPath interpretation</a></li>
+  <li><a href="internals.html#Descriptio">Description of XPath
+  Objects</a></li>
+  <li><a href="internals.html#XPath3">XPath functions</a></li>
+  <li><a href="internals.html#stack">The variables stack frame</a></li>
+  <li><a href="internals.html#Extension">Extension support</a></li>
+  <li><a href="internals.html#Futher">Further reading</a></li>
+  <li><a href="internals.html#TODOs">TODOs</a></li>
+</ul>
+
+<h3><a name="Introducti2">Introduction</a></h3>
+
+<p>This document describes the processing of <a
+href="http://xmlsoft.org/XSLT/">libxslt</a>, the <a
+href="http://www.w3.org/TR/xslt">XSLT</a> C library developed for the <a
+href="http://www.gnome.org/">Gnome</a> project.</p>
+
+<p>Note: this documentation is by definition incomplete and I am not good at
+spelling, grammar, so patches and suggestions are <a
+href="mailto:veillard at redhat.com">really welcome</a>.</p>
+
+<h3><a name="Basics1">Basics</a></h3>
+
+<p>XSLT is a transformation language. It takes an input document and a
+stylesheet document and generates an output document:</p>
+
+<p align="center"><img src="processing.gif"
+alt="the XSLT processing model"></p>
+
+<p>Libxslt is written in C. It relies on <a
+href="http://www.xmlsoft.org/">libxml</a>, the XML C library for Gnome, for
+the following operations:</p>
+<ul>
+  <li>parsing files</li>
+  <li>building the in-memory DOM structure associated with the documents
+    handled</li>
+  <li>the XPath implementation</li>
+  <li>serializing back the result document to XML and HTML. (Text is handled
+    directly.)</li>
+</ul>
+
+<h3><a name="Keep1">Keep it simple stupid</a></h3>
+
+<p>Libxslt is not very specialized. It is built under the assumption that all
+nodes from the source and output document can fit in the virtual memory of
+the system. There is a big trade-off there. It is fine for reasonably sized
+documents but may not be suitable for large sets of data. The gain is that it
+can be used in a relatively versatile way. The input or output may never be
+serialized, but the size of documents it can handle are limited by the size
+of the memory available.</p>
+
+<p>More specialized memory handling approaches are possible, like building
+the input tree from a serialization progressively as it is consumed,
+factoring repetitive patterns, or even on-the-fly generation of the output as
+the input is parsed but it is possible only for a limited subset of the
+stylesheets. In general the implementation of libxslt follows the following
+pattern:</p>
+<ul>
+  <li>KISS (keep it simple stupid)</li>
+  <li>when there is a clear bottleneck optimize on top of this simple
+    framework and refine only as much as is needed to reach the expected
+    result</li>
+</ul>
+
+<p>The result is not that bad, clearly one can do a better job but more
+specialized too. Most optimization like building the tree on-demand would
+need serious changes to the libxml XPath framework. An easy step would be to
+serialize the output directly (or call a set of SAX-like output handler to
+keep this a flexible interface) and hence avoid the memory consumption of the
+result.</p>
+
+<h3><a name="libxml">The libxml nodes</a></h3>
+
+<p>DOM-like trees, as used and generated by libxml and libxslt, are
+relatively complex. Most node types follow the given structure except a few
+variations depending on the node type:</p>
+
+<p align="center"><img src="node.gif" alt="description of a libxml node"></p>
+
+<p>Nodes carry a <strong>name</strong> and the node <strong>type</strong>
+indicates the kind of node it represents, the most common ones are:</p>
+<ul>
+  <li>document nodes</li>
+  <li>element nodes</li>
+  <li>text nodes</li>
+</ul>
+
+<p>For the XSLT processing, entity nodes should not be generated (i.e. they
+should be replaced by their content). Most nodes also contains the following
+"navigation" informations:</p>
+<ul>
+  <li>the containing <strong>doc</strong>ument</li>
+  <li>the <strong>parent</strong> node</li>
+  <li>the first <strong>children</strong> node</li>
+  <li>the <strong>last</strong> children node</li>
+  <li>the <strong>prev</strong>ious sibling</li>
+  <li>the following sibling (<strong>next</strong>)</li>
+</ul>
+
+<p>Elements nodes carries the list of attributes in the properties, an
+attribute itself holds the navigation pointers and the children list (the
+attribute value is not represented as a simple string to allow usage of
+entities references).</p>
+
+<p>The <strong>ns</strong> points to the namespace declaration for the
+namespace associated to the node, <strong>nsDef</strong> is the linked list
+of namespace declaration present on element nodes.</p>
+
+<p>Most nodes also carry an <strong>_private</strong> pointer which can be
+used by the application to hold specific data on this node.</p>
+
+<h3><a name="XSLT">The XSLT processing steps</a></h3>
+
+<p>There are a few steps which are clearly decoupled at the interface
+level:</p>
+<ol>
+  <li>parse the stylesheet and generate a DOM tree</li>
+  <li>take the stylesheet tree and build a compiled version of it (the
+    compilation phase)</li>
+  <li>take the input and generate a DOM tree</li>
+  <li>process the stylesheet against the input tree and generate an output
+    tree</li>
+  <li>serialize the output tree</li>
+</ol>
+
+<p>A few things should be noted here:</p>
+<ul>
+  <li>the steps 1/ 3/ and 5/ are optional</li>
+  <li>the stylesheet obtained at 2/ can be reused by multiple processing 4/
+    (and this should also work in threaded programs)</li>
+  <li>the tree provided in 2/ should never be freed using xmlFreeDoc, but by
+    freeing the stylesheet.</li>
+  <li>the input tree 4/ is not modified except the _private field which may
+    be used for labelling keys if used by the stylesheet</li>
+</ul>
+
+<h3><a name="XSLT1">The XSLT stylesheet compilation</a></h3>
+
+<p>This is the second step described. It takes a stylesheet tree, and
+"compiles" it. This associates to each node a structure stored in the
+_private field and containing information computed in the stylesheet:</p>
+
+<p align="center"><img src="stylesheet.gif"
+alt="a compiled XSLT stylesheet"></p>
+
+<p>One xsltStylesheet structure is generated per document parsed for the
+stylesheet. XSLT documents allow includes and imports of other documents,
+imports are stored in the <strong>imports</strong> list (hence keeping the
+tree hierarchy of includes which is very important for a proper XSLT
+processing model) and includes are stored in the <strong>doclist</strong>
+list. An imported stylesheet has a parent link to allow browsing of the
+tree.</p>
+
+<p>The DOM tree associated to the document is stored in <strong>doc</strong>.
+It is preprocessed to remove ignorable empty nodes and all the nodes in the
+XSLT namespace are subject to precomputing. This usually consist of
+extracting all the context information from the context tree (attributes,
+namespaces, XPath expressions), and storing them in an xsltStylePreComp
+structure associated to the <strong>_private</strong> field of the node.</p>
+
+<p>A couple of notable exceptions to this are XSLT template nodes (more on
+this later) and attribute value templates. If they are actually templates,
+the value cannot be computed at compilation time. (Some preprocessing could
+be done like isolation and preparsing of the XPath subexpressions but it's
+not done, yet.)</p>
+
+<p>The xsltStylePreComp structure also allows storing of the precompiled form
+of an XPath expression that can be associated to an XSLT element (more on
+this later).</p>
+
+<h3><a name="XSLT2">The XSLT template compilation</a></h3>
+
+<p>A proper handling of templates lookup is one of the keys of fast XSLT
+processing. (Given a node in the source document this is the process of
+finding which templates should be applied to this node.) Libxslt follows the
+hint suggested in the <a href="http://www.w3.org/TR/xslt#patterns">5.2
+Patterns</a> section of the XSLT Recommendation, i.e. it doesn't evaluate it
+as an XPath expression but tokenizes it and compiles it as a set of rules to
+be evaluated on a candidate node. There usually is an indication of the node
+name in the last step of this evaluation and this is used as a key check for
+the match. As a result libxslt builds a relatively more complex set of
+structures for the templates:</p>
+
+<p align="center"><img src="templates.gif"
+alt="The templates related structure"></p>
+
+<p>Let's describe a bit more closely what is built. First the xsltStylesheet
+structure holds a pointer to the template hash table. All the XSLT patterns
+compiled in this stylesheet are indexed by the value of the the target
+element (or attribute, pi ...) name, so when a element or an attribute "foo"
+needs to be processed the lookup is done using the name as a key.</p>
+
+<p>Each of the patterns is compiled into an xsltCompMatch structure. It holds
+the set of rules based on the tokenization of the pattern stored in reverse
+order (matching is easier this way). It also holds some information about the
+previous matches used to speed up the process when one iterates over a set of
+siblings. (This optimization may be defeated by trashing when running
+threaded computation, it's unclear that this is a big deal in practice.)
+Predicate expressions are not compiled at this stage, they may be at run-time
+if needed, but in this case they are compiled as full XPath expressions (the
+use of some fixed predicate can probably be optimized, they are not yet).</p>
+
+<p>The xsltCompMatch are then stored in the hash table, the clash list is
+itself sorted by priority of the template to implement "naturally" the XSLT
+priority rules.</p>
+
+<p>Associated to the compiled pattern is the xsltTemplate itself containing
+the information required for the processing of the pattern including, of
+course, a pointer to the list of elements used for building the pattern
+result.</p>
+
+<p>Last but not least a number of patterns do not fit in the hash table
+because they are not associated to a name, this is the case for patterns
+applying to the root, any element, any attributes, text nodes, pi nodes, keys
+etc. Those are stored independently in the stylesheet structure as separate
+linked lists of xsltCompMatch.</p>
+
+<h3><a name="processing">The processing itself</a></h3>
+
+<p>The processing is defined by the XSLT specification (the basis of the
+algorithm is explained in <a
+href="http://www.w3.org/TR/xslt#section-Introduction">the Introduction</a>
+section). Basically it works by taking the root of the input document and
+applying the following algorithm:</p>
+<ol>
+  <li>Finding the template applying to it. This is a lookup in the template
+    hash table, walking the hash list until the node satisfies all the steps
+    of the pattern, then checking the appropriate(s) global templates to see
+    if there isn't a higher priority rule to apply</li>
+  <li>If there is no template, apply the default rule (recurse on the
+    children)</li>
+  <li>else walk the content list of the selected templates, for each of them:
+    <ul>
+      <li>if the node is in the XSLT namespace then the node has a _private
+        field pointing to the preprocessed values, jump to the specific
+      code</li>
+      <li>if the node is in an extension namespace, look up the associated
+        behavior</li>
+      <li>otherwise copy the node.</li>
+    </ul>
+    <p>The closure is usually done through the XSLT
+    <strong>apply-templates</strong> construct recursing by applying the
+    adequate template on the input node children or on the result of an
+    associated XPath selection lookup.</p>
+  </li>
+</ol>
+
+<p>Note that large parts of the input tree may not be processed by a given
+stylesheet and that on the opposite some may be processed multiple times.
+(This often is the case when a Table of Contents is built).</p>
+
+<p>The module <code>transform.c</code> is the one implementing most of this
+logic. <strong>xsltApplyStylesheet()</strong> is the entry point, it
+allocates an xsltTransformContext containing the following:</p>
+<ul>
+  <li>a pointer to the stylesheet being processed</li>
+  <li>a stack of templates</li>
+  <li>a stack of variables and parameters</li>
+  <li>an XPath context</li>
+  <li>the template mode</li>
+  <li>current document</li>
+  <li>current input node</li>
+  <li>current selected node list</li>
+  <li>the current insertion points in the output document</li>
+  <li>a couple of hash tables for extension elements and functions</li>
+</ul>
+
+<p>Then a new document gets allocated (HTML or XML depending on the type of
+output), the user parameters and global variables and parameters are
+evaluated. Then <strong>xsltProcessOneNode()</strong> which implements the
+1-2-3 algorithm is called on the root element of the input. Step 1/ is
+implemented by calling <strong>xsltGetTemplate()</strong>, step 2/ is
+implemented by <strong>xsltDefaultProcessOneNode()</strong> and step 3/ is
+implemented by <strong>xsltApplyOneTemplate()</strong>.</p>
+
+<h3><a name="XPath">XPath expression compilation</a></h3>
+
+<p>The XPath support is actually implemented in the libxml module (where it
+is reused by the XPointer implementation). XPath is a relatively classic
+expression language. The only uncommon feature is that it is working on XML
+trees and hence has specific syntax and types to handle them.</p>
+
+<p>XPath expressions are compiled using <strong>xmlXPathCompile()</strong>.
+It will take an expression string in input and generate a structure
+containing the parsed expression tree, for example the expression:</p>
+<pre>/doc/chapter[title='Introduction']</pre>
+
+<p>will be compiled as</p>
+<pre>Compiled Expression : 10 elements
+  SORT
+    COLLECT  'child' 'name' 'node' chapter
+      COLLECT  'child' 'name' 'node' doc
+        ROOT
+      PREDICATE
+        SORT
+          EQUAL =
+            COLLECT  'child' 'name' 'node' title
+              NODE
+            ELEM Object is a string : Introduction
+              COLLECT  'child' 'name' 'node' title
+                NODE</pre>
+
+<p>This can be tested using the  <code>testXPath</code>  command (in the
+libxml codebase) using the <code>--tree</code> option.</p>
+
+<p>Again, the KISS approach is used. No optimization is done. This could be
+an interesting thing to add. <a
+href="http://www-106.ibm.com/developerworks/library/x-xslt2/?dwzone=x?open&amp;l=132%2ct=gr%2c+p=saxon">Michael
+Kay describes</a> a lot of possible and interesting optimizations done in
+Saxon which would be possible at this level. I'm unsure they would provide
+much gain since the expressions tends to be relatively simple in general and
+stylesheets are still hand generated. Optimizations at the interpretation
+sounds likely to be more efficient.</p>
+
+<h3><a name="XPath1">XPath interpretation</a></h3>
+
+<p>The interpreter is implemented by <strong>xmlXPathCompiledEval()</strong>
+which is the front-end to <strong>xmlXPathCompOpEval()</strong> the function
+implementing the evaluation of the expression tree. This evaluation follows
+the KISS approach again. It's recursive and calls
+<strong>xmlXPathNodeCollectAndTest()</strong> to collect nodes set when
+evaluating a <code>COLLECT</code> node.</p>
+
+<p>An evaluation is done within the framework of an XPath context stored in
+an <strong>xmlXPathContext</strong> structure, in the framework of a
+transformation the context is maintained within the XSLT context. Its content
+follows the requirements from the XPath specification:</p>
+<ul>
+  <li>the current document</li>
+  <li>the current node</li>
+  <li>a hash table of defined variables (but not used by XSLT)</li>
+  <li>a hash table of defined functions</li>
+  <li>the proximity position (the place of the node in the current node
+  list)</li>
+  <li>the context size (the size of the current node list)</li>
+  <li>the array of namespace declarations in scope (there also is a namespace
+    hash table but it is not used in the XSLT transformation).</li>
+</ul>
+
+<p>For the purpose of XSLT an <strong>extra</strong> pointer has been added
+allowing to retrieve the XSLT transformation context. When an XPath
+evaluation is about to be performed, an XPath parser context is allocated
+containing and XPath object stack (this is actually an XPath evaluation
+context, this is a remain of the time where there was no separate parsing and
+evaluation phase in the XPath implementation). Here is an overview of the set
+of contexts associated to an XPath evaluation within an XSLT
+transformation:</p>
+
+<p align="center"><img src="contexts.gif"
+alt="The set of contexts associated "></p>
+
+<p>Clearly this is a bit too complex and confusing and should be refactored
+at the next set of binary incompatible releases of libxml. For example the
+xmlXPathCtxt has a lot of unused parts and should probably be merged with
+xmlXPathParserCtxt.</p>
+
+<h3><a name="Descriptio">Description of XPath Objects</a></h3>
+
+<p>An XPath expression manipulates XPath objects. XPath defines the default
+types boolean, numbers, strings and node sets. XSLT adds the result tree
+fragment type which is basically an unmodifiable node set.</p>
+
+<p>Implementation-wise, libxml follows again a KISS approach, the
+xmlXPathObject is a structure containing a type description and the various
+possibilities. (Using an enum could have gained some bytes.) In the case of
+node sets (or result tree fragments), it points to a separate xmlNodeSet
+object which contains the list of pointers to the document nodes:</p>
+
+<p align="center"><img src="object.gif"
+alt="An Node set object pointing to "></p>
+
+<p>The <a href="http://xmlsoft.org/html/libxml-xpath.html">XPath API</a> (and
+its <a href="http://xmlsoft.org/html/libxml-xpathinternals.html">'internal'
+part</a>) includes a number of functions to create, copy, compare, convert or
+free XPath objects.</p>
+
+<h3><a name="XPath3">XPath functions</a></h3>
+
+<p>All the XPath functions available to the interpreter are registered in the
+function hash table linked from the XPath context. They all share the same
+signature:</p>
+<pre>void xmlXPathFunc (xmlXPathParserContextPtr ctxt, int nargs);</pre>
+
+<p>The first argument is the XPath interpretation context, holding the
+interpretation stack. The second argument defines the number of objects
+passed on the stack for the function to consume (last argument is on top of
+the stack).</p>
+
+<p>Basically an XPath function does the following:</p>
+<ul>
+  <li>check <code>nargs</code> for proper handling of errors or functions
+    with variable numbers of parameters</li>
+  <li>pop the parameters from the stack using <code>obj =
+    valuePop(ctxt);</code></li>
+  <li>do the function specific computation</li>
+  <li>push the result parameter on the stack using <code>valuePush(ctxt,
+    res);</code></li>
+  <li>free up the input parameters with
+  <code>xmlXPathFreeObject(obj);</code></li>
+  <li>return</li>
+</ul>
+
+<p>Sometime the work can be done directly by modifying in-situ the top object
+on the stack <code>ctxt-&gt;value</code>.</p>
+
+<h3><a name="stack">The XSLT variables stack frame</a></h3>
+
+<p>Not to be confused with XPath object stack, this stack holds the XSLT
+variables and parameters as they are defined through the recursive calls of
+call-template, apply-templates and default templates. This is used to define
+the scope of variables being called.</p>
+
+<p>This part seems to be the most urgent attention right now, first it is
+done in a very inefficient way since the location of the variables and
+parameters within the stylesheet tree is still done at run time (it really
+should be done statically at compile time), and I am still unsure that my
+understanding of the template variables and parameter scope is actually
+right.</p>
+
+<p>This part of the documentation is still to be written once this part of
+the code will be stable. <span
+style="background-color: #FF0000">TODO</span></p>
+
+<h3><a name="Extension">Extension support</a></h3>
+
+<p>There is a separate document explaining <a href="extensions.html">how the
+extension support works</a>.</p>
+
+<h3><a name="Futher">Further reading</a></h3>
+
+<p>Michael Kay wrote <a
+href="http://www-106.ibm.com/developerworks/library/x-xslt2/?dwzone=x?open&amp;l=132%2ct=gr%2c+p=saxon">a
+really interesting article on Saxon internals</a> and the work he did on
+performance issues. I wishes I had read it before starting libxslt design (I
+would probably have avoided a few mistakes and progressed faster). A lot of
+the ideas in his papers should be implemented or at least tried in
+libxslt.</p>
+
+<p>The <a href="http://xmlsoft.org/">libxml documentation</a>, especially <a
+href="http://xmlsoft.org/xmlio.html">the I/O interfaces</a> and the <a
+href="http://xmlsoft.org/xmlmem.html">memory management</a>.</p>
+
+<h3><a name="TODOs">TODOs</a></h3>
+
+<p>redesign the XSLT stack frame handling. Far too much work is done at
+execution time. Similarly for the attribute value templates handling, at
+least the embedded subexpressions ought to be precompiled.</p>
+
+<p>Allow output to be saved to a SAX like output (this notion of SAX like API
+for output should be added directly to libxml).</p>
+
+<p>Implement and test some of the optimization explained by Michael Kay
+especially:</p>
+<ul>
+  <li>static slot allocation on the stack frame</li>
+  <li>specific boolean interpretation of an XPath expression</li>
+  <li>some of the sorting optimization</li>
+  <li>Lazy evaluation of location path. (this may require more changes but
+    sounds really interesting. XT does this too.)</li>
+  <li>Optimization of an expression tree (This could be done as a completely
+    independent module.)</li>
+</ul>
+
+<p></p>
+
+<p>Error reporting, there is a lot of case where the XSLT specification
+specify that a given construct is an error are not checked adequately by
+libxslt. Basically one should do a complete pass on the XSLT spec again and
+add all tests to the stylesheet compilation. Using the DTD provided in the
+appendix and making direct checks using the libxml validation API sounds a
+good idea too (though one should take care of not raising errors for
+elements/attributes in different namespaces).</p>
+
+<p>Double check all the places where the stylesheet compiled form might be
+modified at run time (extra removal of blanks nodes, hint on the
+xsltCompMatch).</p>
+
+<p></p>
+
+<h2><a name="Extensions">Writing extensions</a></h2>
+
+<h3>Table  of content</h3>
+<ul>
+  <li><a href="extensions.html#Introducti">Introduction</a></li>
+  <li><a href="extensions.html#Basics">Basics</a></li>
+  <li><a href="extensions.html#Keep">Extension modules</a></li>
+  <li><a href="extensions.html#Registerin">Registering a module</a></li>
+  <li><a href="extensions.html#module">Loading a module</a></li>
+  <li><a href="extensions.html#Registerin1">Registering an extension
+    function</a></li>
+  <li><a href="extensions.html#Implementi">Implementing an extension
+    function</a></li>
+  <li><a href="extensions.html#Examples">Examples for extension
+  functions</a></li>
+  <li><a href="extensions.html#Registerin2">Registering an extension
+    element</a></li>
+  <li><a href="extensions.html#Implementi1">Implementing an extension
+    element</a></li>
+  <li><a href="extensions.html#Example">Example for extension
+  elements</a></li>
+  <li><a href="extensions.html#shutdown">The shutdown of a module</a></li>
+  <li><a href="extensions.html#Future">Future work</a></li>
+</ul>
+
+<h3><a name="Introducti1">Introduction</a></h3>
+
+<p>This document describes the work needed to write extensions to the
+standard XSLT library for use with <a
+href="http://xmlsoft.org/XSLT/">libxslt</a>, the <a
+href="http://www.w3.org/TR/xslt">XSLT</a> C library developed for the <a
+href="http://www.gnome.org/">Gnome</a> project.</p>
+
+<p>Before starting reading this document it is highly recommended to get
+familiar with <a href="internals.html">the libxslt internals</a>.</p>
+
+<p>Note: this documentation is by definition incomplete and I am not good at
+spelling, grammar, so patches and suggestions are <a
+href="mailto:veillard at redhat.com">really welcome</a>.</p>
+
+<h3><a name="Basics">Basics</a></h3>
+
+<p>The <a href="http://www.w3.org/TR/xslt">XSLT specification</a> provides
+two <a href="http://www.w3.org/TR/xslt">ways to extend an XSLT engine</a>:</p>
+<ul>
+  <li>providing <a href="http://www.w3.org/TR/xslt">new extension
+    functions</a> which can be called from XPath expressions</li>
+  <li>providing <a href="http://www.w3.org/TR/xslt">new extension
+    elements</a> which can be inserted in stylesheets</li>
+</ul>
+
+<p>In both cases the extensions need to be associated to a new namespace,
+i.e. an URI used as the name for the extension's namespace (there is no need
+to have a resource there for this to work).</p>
+
+<p>libxslt provides a few extensions itself, either in the libxslt namespace
+"http://xmlsoft.org/XSLT/namespace" or in namespaces for other well known
+extensions provided by other XSLT processors like Saxon, Xalan or XT.</p>
+
+<h3><a name="Keep">Extension modules</a></h3>
+
+<p>Since extensions are bound to a namespace name, usually sets of extensions
+coming from a given source are using the same namespace name defining in
+practice a group of extensions providing elements, functions or both. From
+the libxslt point of view those are considered as an "extension module", and
+most of the APIs work at a module point of view.</p>
+
+<p>Registration of new functions or elements are bound to the activation of
+the module. This is currently done by declaring the namespace as an extension
+by using the attribute  <code>extension-element-prefixes</code> on the
+<code><a href="http://www.w3.org/TR/xslt">xsl:stylesheet</a></code>
+element.</p>
+
+<p>An extension module is defined by 3 objects:</p>
+<ul>
+  <li>the namespace name associated</li>
+  <li>an initialization function</li>
+  <li>a shutdown function</li>
+</ul>
+
+<h3><a name="Registerin">Registering a module</a></h3>
+
+<p>Currently a libxslt module has to be compiled within the application using
+libxslt. There is no code to load dynamically shared libraries associated to
+a namespace (this may be added but is likely to become a portability
+nightmare).</p>
+
+<p>The current way to register a module is to link the code implementing it
+with the application and to call a registration function:</p>
+<pre>int xsltRegisterExtModule(const xmlChar *URI,
+                          xsltExtInitFunction initFunc,
+                          xsltExtShutdownFunction shutdownFunc);</pre>
+
+<p>The associated header is read by:</p>
+<pre>#include&lt;libxslt/extensions.h&gt;</pre>
+
+<p>which also defines the type for the initialization and shutdown
+functions</p>
+
+<h3><a name="module">Loading a module</a></h3>
+
+<p>Once the module URI has been registered and if the XSLT processor detects
+that a given stylesheet needs the functionalities of an extended module, this
+one is initialized.</p>
+
+<p>The xsltExtInitFunction type defines the interface for an initialization
+function:</p>
+<pre>/**
+ * xsltExtInitFunction:
+ * @ctxt:  an XSLT transformation context
+ * @URI:  the namespace URI for the extension
+ *
+ * A function called at initialization time of an XSLT
+ * extension module
+ *
+ * Returns a pointer to the module specific data for this
+ * transformation
+ */
+typedef void *(*xsltExtInitFunction)(xsltTransformContextPtr ctxt,
+                                     const xmlChar *URI);</pre>
+
+<p>There are 3 things to notice:</p>
+<ul>
+  <li>The function gets passed the namespace name URI as an argument. This
+    allows a single function to provide the initialization for multiple
+    logical modules.</li>
+  <li>It also gets passed a transformation context. The initialization is
+    done at run time before any processing occurs on the stylesheet but it
+    will be invoked separately each time for each transformation.</li>
+  <li>It returns a pointer.  This can be used to store module specific
+    information which can be retrieved later when a function or an element
+    from the extension is used.  An obvious example is a connection to a
+    database which should be kept and reused along with the transformation.
+    NULL is a perfectly valid return; there is no way to indicate a failure
+    at this level</li>
+</ul>
+
+<p>What this function is expected to do is:</p>
+<ul>
+  <li>prepare the context for this module (like opening the database
+    connection)</li>
+  <li>register the extensions specific to this module</li>
+</ul>
+
+<h3><a name="Registerin1">Registering an extension function</a></h3>
+
+<p>There is a single call to do this registration:</p>
+<pre>int xsltRegisterExtFunction(xsltTransformContextPtr ctxt,
+                            const xmlChar *name,
+                            const xmlChar *URI,
+                            xmlXPathEvalFunc function);</pre>
+
+<p>The registration is bound to a single transformation instance referred by
+ctxt, name is the UTF8 encoded name for the NCName of the function, and URI
+is the namespace name for the extension (no checking is done, a module could
+register functions or elements from a different namespace, but it is not
+recommended).</p>
+
+<h3><a name="Implementi">Implementing an extension function</a></h3>
+
+<p>The implementation of the function must have the signature of a libxml
+XPath function:</p>
+<pre>/**
+ * xmlXPathEvalFunc:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments passed to the function
+ *
+ * an XPath evaluation function, the parameters are on the
+ * XPath context stack
+ */
+
+typedef void (*xmlXPathEvalFunc)(xmlXPathParserContextPtr ctxt,
+                                 int nargs);</pre>
+
+<p>The context passed to an XPath function is not an XSLT context but an <a
+href="internals.html#XPath1">XPath context</a>. However it is possible to
+find one from the other:</p>
+<ul>
+  <li>The function xsltXPathGetTransformContext provides this lookup facility:
+    <pre>xsltTransformContextPtr
+         xsltXPathGetTransformContext
+                          (xmlXPathParserContextPtr ctxt);</pre>
+  </li>
+  <li>The <code>xmlXPathContextPtr</code> associated to an
+    <code>xsltTransformContext</code> is stored in the <code>xpathCtxt</code>
+    field.</li>
+</ul>
+
+<p>The first thing an extension function may want to do is to check the
+arguments passed on the stack, the <code>nargs</code> parameter will tell how
+many of them were provided on the XPath expression. The macro valuePop will
+extract them from the XPath stack:</p>
+<pre>#include &lt;libxml/xpath.h&gt;
+#include &lt;libxml/xpathInternals.h&gt;
+
+xmlXPathObjectPtr obj = valuePop(ctxt); </pre>
+
+<p>Note that <code>ctxt</code> is the XPath context not the XSLT one. It is
+then possible to examine the content of the value. Check <a
+href="internals.html#Descriptio">the description of XPath objects</a> if
+necessary. The following is a common sequence checking whether the argument
+passed is a string and converting it using the built-in XPath
+<code>string()</code> function if this is not the case:</p>
+<pre>if (obj-&gt;type != XPATH_STRING) {
+    valuePush(ctxt, obj);
+    xmlXPathStringFunction(ctxt, 1);
+    obj = valuePop(ctxt);
+}</pre>
+
+<p>Most common XPath functions are available directly at the C level and are
+exported either in <code>&lt;libxml/xpath.h&gt;</code> or in
+<code>&lt;libxml/xpathInternals.h&gt;</code>.</p>
+
+<p>The extension function may also need to retrieve the data associated to
+this module instance (the database connection in the previous example) this
+can be done using the xsltGetExtData:</p>
+<pre>void * xsltGetExtData(xsltTransformContextPtr ctxt,
+                      const xmlChar *URI);</pre>
+
+<p>Again the URI to be provided is the one which was used when registering
+the module.</p>
+
+<p>Once the function finishes, don't forget to:</p>
+<ul>
+  <li>push the return value on the stack using <code>valuePush(ctxt,
+    obj)</code></li>
+  <li>deallocate the parameters passed to the function using
+    <code>xmlXPathFreeObject(obj)</code></li>
+</ul>
+
+<h3><a name="Examples">Examples for extension functions</a></h3>
+
+<p>The module libxslt/functions.c contains the sources of the XSLT built-in
+functions, including document(), key(), generate-id(), etc. as well as a full
+example module at the end. Here is the test function implementation for the
+libxslt:test function:</p>
+<pre>/**
+ * xsltExtFunctionTest:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * function libxslt:test() for testing the extensions support.
+ */
+static void
+xsltExtFunctionTest(xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xsltTransformContextPtr tctxt;
+    void *data;
+
+    tctxt = xsltXPathGetTransformContext(ctxt);
+    if (tctxt == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+            "xsltExtFunctionTest: failed to get the transformation context\n");
+        return;
+    }
+    data = xsltGetExtData(tctxt, (const xmlChar *) XSLT_DEFAULT_URL);
+    if (data == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+            "xsltExtFunctionTest: failed to get module data\n");
+        return;
+    }
+#ifdef WITH_XSLT_DEBUG_FUNCTION
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "libxslt:test() called with %d args\n", nargs);
+#endif
+}</pre>
+
+<h3><a name="Registerin2">Registering an extension element</a></h3>
+
+<p>There is a single call to do this registration:</p>
+<pre>int xsltRegisterExtElement(xsltTransformContextPtr ctxt,
+                           const xmlChar *name,
+                           const xmlChar *URI,
+                           xsltTransformFunction function);</pre>
+
+<p>It is similar to the mechanism used to register an extension function,
+except that the signature of an extension element implementation is
+different.</p>
+
+<p>The registration is bound to a single transformation instance referred to
+by ctxt, name is the UTF8 encoded name for the NCName of the element, and URI
+is the namespace name for the extension (no checking is done, a module could
+register elements for a different namespace, but it is not recommended).</p>
+
+<h3><a name="Implementi1">Implementing an extension element</a></h3>
+
+<p>The implementation of the element must have the signature of an XSLT
+transformation function:</p>
+<pre>/** 
+ * xsltTransformFunction: 
+ * @ctxt: the XSLT transformation context
+ * @node: the input node
+ * @inst: the stylesheet node 
+ * @comp: the compiled information from the stylesheet 
+ * 
+ * signature of the function associated to elements part of the
+ * stylesheet language like xsl:if or xsl:apply-templates.
+ */ 
+typedef void (*xsltTransformFunction)
+                          (xsltTransformContextPtr ctxt,
+                           xmlNodePtr node,
+                           xmlNodePtr inst,
+                           xsltStylePreCompPtr comp);</pre>
+
+<p>The first argument is the XSLT transformation context. The second and
+third arguments are xmlNodePtr i.e. internal memory <a
+href="internals.html#libxml">representation of  XML nodes</a>. They are
+respectively <code>node</code> from the the input document being transformed
+by the stylesheet and <code>inst</code> the extension element in the
+stylesheet. The last argument is <code>comp</code> a pointer to a precompiled
+representation of <code>inst</code> but usually for an extension function
+this value is <code>NULL</code> by default (it could be added and associated
+to the instruction in <code>inst-&gt;_private</code>).</p>
+
+<p>The same functions are available from a function implementing an extension
+element as in an extension function, including
+<code>xsltGetExtData()</code>.</p>
+
+<p>The goal of an extension element being usually to enrich the generated
+output, it is expected that they will grow the currently generated output
+tree. This can be done by grabbing ctxt-&gt;insert which is the current
+libxml node being generated (Note this can also be the intermediate value
+tree being built for example to initialize a variable, the processing should
+be similar). The functions for libxml tree manipulation from <a
+href="http://xmlsoft.org/html/libxml-tree.html">&lt;libxml/tree.h&gt;</a> can
+be employed to extend or modify the tree, but it is required to preserve the
+insertion node and its ancestors since there are existing pointers to those
+elements still in use in the XSLT template execution stack.</p>
+
+<h3><a name="Example">Example for extension elements</a></h3>
+
+<p>The module libxslt/transform.c contains the sources of the XSLT built-in
+elements, including xsl:element, xsl:attribute, xsl:if, etc. There is a small
+but full example in functions.c providing the implementation for the
+libxslt:test element, it will output a comment in the result tree:</p>
+<pre>/**
+ * xsltExtElementTest:
+ * @ctxt:  an XSLT processing context
+ * @node:  The current node
+ * @inst:  the instruction in the stylesheet
+ * @comp:  precomputed informations
+ *
+ * Process a libxslt:test node
+ */
+static void
+xsltExtElementTest(xsltTransformContextPtr ctxt, xmlNodePtr node,
+                   xmlNodePtr inst,
+                   xsltStylePreCompPtr comp)
+{
+    xmlNodePtr comment;
+
+    if (ctxt == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "xsltExtElementTest: no transformation context\n");
+        return;
+    }
+    if (node == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "xsltExtElementTest: no current node\n");
+        return;
+    }
+    if (inst == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "xsltExtElementTest: no instruction\n");
+        return;
+    }
+    if (ctxt-&gt;insert == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "xsltExtElementTest: no insertion point\n");
+        return;
+    }
+    comment =
+        xmlNewComment((const xmlChar *)
+                      "libxslt:test element test worked");
+    xmlAddChild(ctxt-&gt;insert, comment);
+}</pre>
+
+<h3><a name="shutdown">The shutdown of a module</a></h3>
+
+<p>When the XSLT processor ends a transformation, the shutdown function (if
+it exists) for each of the modules initialized is called.  The
+xsltExtShutdownFunction type defines the interface for a shutdown
+function:</p>
+<pre>/**
+ * xsltExtShutdownFunction:
+ * @ctxt:  an XSLT transformation context
+ * @URI:  the namespace URI for the extension
+ * @data:  the data associated to this module
+ *
+ * A function called at shutdown time of an XSLT extension module
+ */
+typedef void (*xsltExtShutdownFunction) (xsltTransformContextPtr ctxt,
+                                         const xmlChar *URI,
+                                         void *data);</pre>
+
+<p>This is really similar to a module initialization function except a third
+argument is passed, it's the value that was returned by the initialization
+function. This allows the routine to deallocate resources from the module for
+example close the connection to the database to keep the same example.</p>
+
+<h3><a name="Future">Future work</a></h3>
+
+<p>Well, some of the pieces missing:</p>
+<ul>
+  <li>a way to load shared libraries to instantiate new modules</li>
+  <li>a better detection of extension functions usage and their registration
+    without having to use the extension prefix which ought to be reserved to
+    element extensions.</li>
+  <li>more examples</li>
+  <li>implementations of the <a href="http://www.exslt.org/">EXSLT</a> common
+    extension libraries, Thomas Broyer nearly finished implementing them.</li>
+</ul>
+
+<p></p>
+
+<h2><a name="Contributi">Contributions</a></h2>
+<ul>
+  <li>Bjorn Reese is the author of the number support and worked on the
+    XSLTMark support</li>
+  <li>William Brack was an early adopted, contributed a number of patches and
+    spent quite some time debugging non-trivial problems in early versions of
+    libxslt</li>
+  <li><a href="mailto:igor at zlatkovic.com">Igor  Zlatkovic</a> is now the
+    maintainer of the Windows port, <a
+    href="http://www.zlatkovic.com/projects/libxml/index.html">he provides
+    binaries</a></li>
+  <li>Thomas Broyer provided a lot of suggestions, and drafted most of the
+    extension API</li>
+  <li>John Fleck maintains <a href="tutorial/libxslttutorial.html">a tutorial
+    for libxslt</a></li>
+  <li><a
+    href="http://mail.gnome.org/archives/xml/2001-March/msg00014.html">Matt
+    Sergeant</a> developed <a
+    href="http://axkit.org/download/">XML::LibXSLT</a>, a perl wrapper for
+    libxml2/libxslt as part of the <a href="http://axkit.com/">AxKit XML
+    application server</a></li>
+  <li>there is a module for <a
+    href="http://acs-misc.sourceforge.net/nsxml.html">libxml/libxslt support
+    in OpenNSD/AOLServer</a></li>
+  <li><a href="mailto:dkuhlman at cutter.rexx.com">Dave Kuhlman</a> provides
+    libxml/libxslt <a href="http://www.rexx.com/~dkuhlman">wrappers for
+    Python</a></li>
+  <li><a href="mailto:Steve.Ball at explain.com.au">Steve Ball</a>, and
+    contributors maintain <a href="http://tclxml.sourceforge.net/">tcl
+    bindings for libxml2 and libxslt</a>, as well as <a
+    href="http://tclxml.sf.net/tkxmllint.html">tkxmllint</a> a GUI for
+    xmllint and <a href="http://tclxml.sf.net/tkxsltproc.html">tkxsltproc</a>
+    a GUI for xsltproc.</li>
+  <li>If you want to use libxslt in a Mac OS X/Cocoa or Objective-C
+    framework, Marc Liyanage provides <a
+    href="http://www.entropy.ch/software/macosx/#testxslt">an application
+    TestXSLT for XSLT and XML editing</a> including wrapper classes for the
+    XML parser and XSLT processor.</li>
+</ul>
+
+<p></p>
+
+<p><a href="mailto:daniel at veillard.com">Daniel Veillard</a></p>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.1
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.1	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.1	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,231 @@
+.\" ** You probably do not want to edit this file directly **
+.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
+.\" Instead of manually editing it, you probably should edit the DocBook XML
+.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
+.TH "XSLTPROC" "1" "2006\-03\-05" "libxslt" ""
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.SH "NAME"
+xsltproc \- command line XSLT processor
+.SH "SYNOPSIS"
+.HP 9
+\fBxsltproc\fR [[\fB\-V\fR \fB\-\-version\fR] [\fB\-v\fR \fB\-\-verbose\fR] [{\fB\-o\fR \fB\-\-output\fR} {\fIFILE\fR \fIDIRECTORY\fR}] \fB\-\-timing\fR \fB\-\-repeat\fR \fB\-\-debug\fR \fB\-\-novalid\fR \fB\-\-noout\fR \fB\-\-maxdepth\ \fR\fB\fIVALUE\fR\fR \fB\-\-html\fR \fB\-\-param\ \fR\fB\fIPARAMNAME\fR\fR\fB\ \fR\fB\fIPARAMVALUE\fR\fR\fB\ \fR \fB\-\-stringparam\ \fR\fB\fIPARAMNAME\fR\fR\fB\ \fR\fB\fIPARAMVALUE\fR\fR\fB\ \fR \fB\-\-nonet\fR \fB\-\-path\ "\fR\fB\fIPATH(S)\fR\fR\fB"\fR \fB\-\-load\-trace\fR \fB\-\-catalogs\fR \fB\-\-xinclude\fR [\fB\-\-profile\fR\ \fB\-\-norman\fR] \fB\-\-dumpextensions\fR \fB\-\-nowrite\fR \fB\-\-nomkdir\fR \fB\-\-writesubtree\ \fR\fB\fIPATH\fR\fR \fB\-\-nodtdattr\fR] [\fISTYLESHEET\fR] {\fIXML\-FILE\fR \-}
+.SH "DESCRIPTION"
+.PP
+\fBxsltproc\fR
+is a command line tool for applying
+XSLT
+stylesheets to
+XML
+documents. It is part of
+\fBlibxslt\fR(3), the XSLT C library for GNOME. While it was developed as part of the GNOME project, it can operate independently of the GNOME desktop.
+.PP
+\fBxsltproc\fR
+is invoked from the command line with the name of the stylesheet to be used followed by the name of the file or files to which the stylesheet is to be applied. It will use the standard input if a filename provided is
+\fB\-\fR
+.
+.PP
+If a stylesheet is included in an
+XML
+document with a Stylesheet Processing Instruction, no stylesheet need to be named at the command line.
+\fBxsltproc\fR
+will automatically detect the included stylesheet and use it.
+.PP
+By default, output is to
+\fIstdout\fR. You can specify a file for output using the
+\fB\-o\fR
+or
+\fB\-\-output\fR
+option.
+.PP
+More information can be found at
+.TP 3
+\(bu
+\fBlibxml\fR(3)
+web page
+\fI\%http://www.xmlsoft.org/\fR
+.TP
+\(bu
+W3C
+XSLT
+page
+\fI\%http://www.w3.org/TR/xslt\fR
+.SH "OPTIONS"
+.PP
+\fBxsltproc\fR
+accepts the following options (in alphabetical order):
+.TP
+\fB\-\-catalogs\fR
+Use the
+SGML
+catalog specified in
+\fBSGML_CATALOG_FILES\fR
+to resolve the location of external entities. By default,
+\fBxsltproc\fR
+looks for the catalog specified in
+\fBXML_CATALOG_FILES\fR. If that is not specified, it uses
+\fI/etc/xml/catalog\fR.
+.TP
+\fB\-\-debug\fR
+Output an
+XML
+tree of the transformed document for debugging purposes.
+.TP
+\fB\-\-dumpextensions\fR
+Dumps the list of all registered extensions on
+\fIstdout\fR.
+.TP
+\fB\-\-html\fR
+The input document is an
+HTML
+file.
+.TP
+\fB\-\-load\-trace\fR
+Display all the documents loaded during the processing to
+\fIstderr\fR.
+.TP
+\fB\-\-maxdepth \fR\fB\fIVALUE\fR\fR
+Adjust the maximum depth of the template stack before
+\fBlibxslt\fR(3)
+concludes it is in an infinite loop. The default is 500.
+.TP
+\fB\-\-nodtdattr\fR
+Do not apply default attributes from the document's
+DTD.
+.TP
+\fB\-\-nomkdir\fR
+Refuses to create directories.
+.TP
+\fB\-\-nonet\fR
+Do not use the Internet to fetch
+DTDs, entities or documents.
+.TP
+\fB\-\-noout\fR
+Do not output the result.
+.TP
+\fB\-\-novalid\fR
+Skip loading the document's
+DTD.
+.TP
+\fB\-\-nowrite\fR
+Refuses to write to any file or resource.
+.TP
+\fB\-o\fR or \fB\-\-output\fR \fIFILE\fR | \fIDIRECTORY\fR
+Direct output to the given
+\fIFILE\fR. Using the option with a
+\fIDIRECTORY\fR
+directs the output files to the specified directory. This can be useful for multiple outputs (also known as "chunking") or manpage processing.
+\fBNote:\fR
+The given directory
+\fBmust\fR
+already exist.
+.TP
+\fB\-\-param \fR\fB\fIPARAMNAME\fR\fR\fB \fR\fB\fIPARAMVALUE\fR\fR
+Pass a parameter of name
+\fIPARAMNAME\fR
+and value
+\fIPARAMVALUE\fR
+to the stylesheet. You may pass multiple name/value pairs up to a maximum of 32. If the value being passed is a string rather than a node identifier, use
+\fB\-\-stringparam\fR
+instead.
+.TP
+\fB\-\-path "\fR\fB\fIPATH(S)\fR\fR\fB"\fR
+Use the (space\- or colon\-separated) list of filesystem paths specified by
+\fIPATHS\fR
+to load
+DTDs, entities or documents. Enclose space\-separated lists by quotation marks.
+.TP
+\fB\-\-profile\fR or \fB\-\-norman\fR
+Output profiling information detailing the amount of time spent in each part of the stylesheet. This is useful in optimizing stylesheet performance.
+.TP
+\fB\-\-repeat\fR
+Run the transformation 20 times. Used for timing tests.
+.TP
+\fB\-\-stringparam \fR\fB\fIPARAMNAME\fR\fR\fB \fR\fB\fIPARAMVALUE\fR\fR
+Pass a paramenter of name
+\fIPARAMNAME\fR
+and value
+\fIPARAMVALUE\fR
+where
+\fIPARAMVALUE\fR
+is a string rather than a node identifier.
+\fBNote:\fR
+The string must be UTF\-8 encoded.
+.TP
+\fB\-\-timing\fR
+Display the time used for parsing the stylesheet, parsing the document and applying the stylesheet and saving the result. Displayed in milliseconds.
+.TP
+\fB\-v\fR or \fB\-\-verbose\fR
+Output each step taken by
+\fBxsltproc\fR
+in processing the stylesheet and the document.
+.TP
+\fB\-V\fR or \fB\-\-version\fR
+Show the version of
+\fBlibxml\fR(3)
+and
+\fBlibxslt\fR(3)
+used.
+.TP
+\fB\-\-writesubtree \fR\fB\fIPATH\fR\fR
+Allow file write only within the
+\fIPATH\fR
+subtree.
+.TP
+\fB\-\-xinclude\fR
+Process the input document using the Xinclude specification. More details on this can be found in the Xinclude specification:
+\fI\%http://www.w3.org/TR/xinclude/\fR
+.SH "ENVIRONMENT"
+.TP
+\fBSGML_CATALOG_FILES\fR
+to be written ...
+.TP
+\fBXML_CATALOG_FILES\fR
+Catalog behavior can be changed by redirecting queries to the user's own set of catalogs. This can be done by setting the
+\fBXML_CATALOG_FILES\fR
+environment variable to a list of catalogs. An empty one should deactivate loading the default
+\fI/etc/xml/catalog\fR
+default catalog.
+.SH "DIAGNOSTICS"
+.PP
+\fBxsltproc\fR's return codes provide information that can be used when calling it from scripts.
+.TP
+\fB0\fR
+No error (normal operation)
+.TP
+\fB1\fR
+No argument
+.TP
+\fB2\fR
+Too many parameters
+.TP
+\fB3\fR
+Unknown option
+.TP
+\fB4\fR
+Failed to parse the stylesheet
+.TP
+\fB5\fR
+Error in the stylesheet
+.TP
+\fB6\fR
+Error in one of the documents
+.TP
+\fB7\fR
+Unsupported xsl:output method
+.TP
+\fB8\fR
+String parameter contains both quote and double\-quotes
+.TP
+\fB9\fR
+Internal processing error
+.TP
+\fB10\fR
+Processing was stopped by a terminating message
+.SH "SEE ALSO"
+.PP
+\fBlibxslt\fR(3)
+.SH "AUTHOR"
+John Fleck <jfleck at inkstain.net>. 

Added: packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,101 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xsltproc</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"><a name="id2685813"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2>Name</h2><p>xsltproc &#8212; command line xslt processor</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><tt class="command">xsltproc</tt>  [[-V] |  [-v] |  [-o <i class="replaceable"><tt>file</tt></i>] |  [--timing] |  [--repeat] |  [--debug] |  [--novalid] |  [--noout] |  [--maxdepth <i class="replaceable"><tt>val</tt></i>] |  [--html] |  [--param <i class="replaceable"><tt>name</tt></i> <i class="replaceable"><tt>value</tt></i>] |  [--stringparam <i class="replaceable"><tt>name</tt></i> <i class="replaceable"><tt>value</tt></i>] |  [--nonet] |  [--path <i class="replaceable"><tt>paths</tt></i>] |  [--load-trace] |  [--catalogs] |  [--xinclude] |  [--profile] |  [--dumpextensions] |  [--nowrite] |  [--nomkdir] |  [--writesubtree] |  [--nodtdattr]] [<tt class="option"><i class="replaceable"><tt>stylesheet</tt></i></tt>] [<i class="replaceable"><tt>file1</tt></i>] [<i class="replaceable"><tt>file2</tt></i>] [<i class="replaceable"><tt>....</tt></i>]</p></div></div><div class="refsect1" lang="en"><a name="introduction"></a><h2>Introduction</h2><p>
+      <span class="application">xsltproc</span> is a command line tool for applying
+      <span class="acronym">XSLT</span> stylesheets to <span class="acronym">XML</span>
+      documents. It is part of <span class="application">libxslt</span>, the XSLT C
+      library for GNOME. While it was developed as part of the GNOME project, it
+      can operate independently of the GNOME desktop.
+   </p><p>
+      <span class="application">xsltproc</span> is invoked from the command line with
+      the name of the stylesheet to be used followed by the name of the file or
+      files to which the stylesheet is to be applied. It will use the standard
+      input if a filename provided is - .
+    </p><p>
+      If a stylesheet is included in an <span class="acronym">XML</span> document with a
+      Stylesheet Processing Instruction, no stylesheet need be named at the
+      command line. <span class="application">xsltproc</span> will automatically
+      detect the included stylesheet and use it.
+    </p><p>
+      By default, output is to stdout. You can specify a file for output using
+      the <tt class="option">-o</tt> option.
+    </p></div><div class="refsect1" lang="en"><a name="options"></a><h2>Command Line Options</h2><div class="variablelist"><dl><dt><span class="term"><tt class="option">-V</tt> or <tt class="option">--version</tt></span></dt><dd>Show the version of
+      <span class="application">libxml</span> and <span class="application">libxslt</span> used.
+    </dd><dt><span class="term">
+      <tt class="option">-v</tt> or <tt class="option">--verbose</tt></span></dt><dd>Output each step taken
+      by <span class="application">xsltproc</span> in processing the stylesheet and the document.
+    </dd><dt><span class="term">
+      <tt class="option">-o</tt> or <tt class="option">--output</tt> <i class="replaceable"><tt>file</tt></i></span></dt><dd>Direct output to the file named
+      <i class="replaceable"><tt>file</tt></i>. For multiple outputs, also known as
+      "chunking", <tt class="option">-o</tt> <tt class="option">directory/</tt> directs the
+      output files to a specified directory. The directory must already exist.
+    </dd><dt><span class="term">
+      <tt class="option">--timing</tt></span></dt><dd>Display the time used for parsing the
+      stylesheet, parsing the document and applying the stylesheet and saving
+      the result. Displayed in milliseconds.
+    </dd><dt><span class="term">
+      <tt class="option">--repeat</tt></span></dt><dd>Run the transformation 20 times. Used for
+      timing tests.
+    </dd><dt><span class="term">
+      <tt class="option">--debug</tt></span></dt><dd>Output an <span class="acronym">XML</span> tree of the
+      transformed document for debugging purposes.
+    </dd><dt><span class="term">
+      <tt class="option">--novalid</tt></span></dt><dd>Skip loading the document's <span class="acronym">DTD</span>.
+    </dd><dt><span class="term">
+      <tt class="option">--noout</tt></span></dt><dd>Do not output the result.
+    </dd><dt><span class="term">
+      <tt class="option">--maxdepth</tt> <i class="replaceable"><tt>value</tt></i></span></dt><dd>Adjust the
+      maximum depth of the template stack before
+      <span class="application">libxslt</span> concludes it is in an infinite
+      loop. The default is 500.
+    </dd><dt><span class="term">
+      <tt class="option">--html</tt></span></dt><dd>The input document is an <span class="acronym">HTML</span>
+      file.
+    </dd><dt><span class="term">
+      <tt class="option">--param</tt> <i class="replaceable"><tt>name</tt></i> <i class="replaceable"><tt>value</tt></i></span></dt><dd>Pass a parameter of name
+      <i class="replaceable"><tt>name</tt></i> and value
+      <i class="replaceable"><tt>value</tt></i> to the stylesheet. You may pass multiple
+      name/value pairs up to a maximum of 32. If the value being passed is a
+	    string rather than a node identifier, use
+	    <tt class="option">--stringparam</tt> instead.
+	  </dd><dt><span class="term">
+	  <tt class="option">--stringparam</tt> <i class="replaceable"><tt>name</tt></i> <i class="replaceable"><tt>value</tt></i></span></dt><dd>Pass a paramenter of name <i class="replaceable"><tt>name</tt></i> and
+	    value <i class="replaceable"><tt>value</tt></i> where
+	    <i class="replaceable"><tt>value</tt></i> is a string rather than a node
+	    identifier. (Note: The string must be utf-8.) </dd><dt><span class="term">
+      <tt class="option">--nonet</tt></span></dt><dd>Do not use the Internet to fetch DTD's,
+      entities or documents.
+    </dd><dt><span class="term"> <tt class="option">--path</tt> <i class="replaceable"><tt>paths</tt></i></span></dt><dd>
+	    Use the list (separated by space or column) of filesystem paths 
+	specified by <i class="replaceable"><tt>paths</tt></i> to load
+        <span class="acronym">DTDs</span>, entities or documents.
+	  </dd><dt><span class="term"><tt class="option">--load-trace</tt></span></dt><dd>
+	    Display to stderr all the documents loaded during the processing.
+	  </dd><dt><span class="term">
+      <tt class="option">--catalogs</tt></span></dt><dd>Use the <span class="acronym">SGML</span> catalog specified in
+      <tt class="envar">SGML_CATALOG_FILES</tt> to resolve the location of
+	    external entities. By default, <span class="application">xsltproc</span>
+	    looks for the catalog specified in
+      <tt class="envar">XML_CATALOG_FILES</tt>. If that is not specified, it uses
+      <tt class="filename">/etc/xml/catalog</tt>.
+    </dd><dt><span class="term">
+      <tt class="option">--xinclude</tt></span></dt><dd>Process the input document using the
+      Xinclude specification. More details on this can be found in the Xinclude
+      specification: <a href="http://www.w3.org/TR/xinclude/" target="_top">http://www.w3.org/TR/xinclude/</a>
+    </dd><dt><span class="term">
+      <tt class="option">--profile</tt> or <tt class="option">--norman</tt></span></dt><dd>Output profiling
+      information detailing the amount of time spent in each part of the
+      stylesheet. This is useful in optimizing stylesheet performance.
+    </dd><dt><span class="term">
+      <tt class="option">--dumpextensions</tt></span></dt><dd>Dumps the list of all registered extensions on stdout.
+    </dd><dt><span class="term">
+      <tt class="option">--nowrite</tt></span></dt><dd>Refuses to write to any file or resource.
+    </dd><dt><span class="term">
+      <tt class="option">--nomkdir</tt></span></dt><dd>Refuses to create directories.
+    </dd><dt><span class="term">
+      <tt class="option">--writesubtree</tt> <i class="replaceable"><tt>path</tt></i></span></dt><dd>Allow file write only within the
+	  <i class="replaceable"><tt>path</tt></i> subtree.
+    </dd><dt><span class="term">
+	  <tt class="option">--nodtdattr</tt>
+	</span></dt><dd>Do not apply default attributes from the document's
+	  <span class="acronym">DTD</span>.
+	  </dd></dl></div></div><div class="refsect1" lang="en"><a name="return"></a><h2>Return values</h2><p><span class="application">xsltproc</span>'s return codes provide information
+    that can be used when calling it from scripts.</p><p>0: normal</p><p>1: no argument</p><p>2: too many parameters</p><p>3: unknown option</p><p>4: failed to parse the stylesheet</p><p>5: error in the stylesheet</p><p>6: error in one of the documents</p><p>7: unsupported xsl:output method</p><p>8: string parameter contains both quote and double-quotes</p><p>9: internal processing error</p><p>10: processing was stopped by a terminating message</p></div><div class="refsect1" lang="en"><a name="moreinfo"></a><h2>More Information</h2><p><span class="application">libxml web page: </span><a href="http://www.xmlsoft.org/" target="_top">http://www.xmlsoft.org/</a></p><p>W3C <span class="acronym">XSLT page: </span><a href="http://www.w3.org/TR/xslt" target="_top">http://www.w3.org/TR/xslt</a></p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/xsltproc.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,534 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl"
+   href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+    
+    <!ENTITY xsltproc "<command>xsltproc</command>">
+]>
+
+<refentry>
+
+<refentryinfo>
+	<title>xsltproc Manual</title>
+	<productname>libxslt</productname>
+	<copyright>
+		<year>2001</year>
+		<year>2002</year>
+	</copyright>
+	<author>
+		<firstname>John</firstname>
+		<surname>Fleck</surname>
+		<affiliation>
+			<address>
+				<email>jfleck at inkstain.net</email>
+			</address>
+		</affiliation>
+	</author>
+	<!-- date should be the date of the latest change or the release version -->
+	<date>2006-03-05</date>
+	<!-- still a bit buggy output, will talk to docbook-xsl upstream to fix this -->
+	<!-- <releaseinfo>This is release 0.4 of the xsltproc Manual.</releaseinfo> -->
+	<!-- <edition>0.4</edition> -->
+</refentryinfo>
+
+<refmeta>
+	<refentrytitle>xsltproc</refentrytitle>
+	<manvolnum>1</manvolnum>
+</refmeta>
+
+<refnamediv>
+	<refname>xsltproc</refname>
+	<refpurpose>command line XSLT processor</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+	<cmdsynopsis>
+		<command>xsltproc</command>
+		<group choice="opt">
+			<group choice="opt">
+				<arg choice="plain"><option>-V</option></arg>
+				<arg choice="plain"><option>--version</option></arg>
+			</group>
+			<group choice="opt">
+				<arg choice="plain"><option>-v</option></arg>
+				<arg choice="plain"><option>--verbose</option></arg>
+			</group>
+			<group choice="opt">
+				<group choice="req">
+					<arg choice="plain"><option>-o</option></arg>
+					<arg choice="plain"><option>--output</option></arg>
+				</group>
+				<group choice="req">
+					<arg choice="plain"><replaceable class="option">FILE</replaceable></arg>
+					<arg choice="plain"><replaceable class="option">DIRECTORY</replaceable></arg>
+				</group>
+			</group>
+			<arg choice="plain"><option>--timing</option></arg>
+			<arg choice="plain"><option>--repeat</option></arg>
+			<arg choice="plain"><option>--debug</option></arg>
+			<arg choice="plain"><option>--novalid</option></arg>
+			<arg choice="plain"><option>--noout</option></arg>
+			<arg choice="plain"><option>--maxdepth <replaceable class="option">VALUE</replaceable></option></arg>
+			<arg choice="plain"><option>--html</option></arg>
+			<arg choice="plain"><option>--param
+			 <replaceable class="option">PARAMNAME</replaceable>
+			 <replaceable class="option">PARAMVALUE</replaceable>
+			</option></arg>
+			<arg choice="plain"><option>--stringparam
+			 <replaceable class="option">PARAMNAME</replaceable>
+			 <replaceable class="option">PARAMVALUE</replaceable>
+			</option></arg>
+			<arg choice="plain"><option>--nonet</option></arg>
+			<arg choice="plain"><option>--path "<replaceable class="option">PATH(S)</replaceable>"</option></arg>
+			<arg choice="plain"><option>--load-trace</option></arg>
+			<arg choice="plain"><option>--catalogs</option></arg>
+			<arg choice="plain"><option>--xinclude</option></arg>
+			<arg choice="plain">			
+				<group choice="opt">
+					<arg choice="plain"><option>--profile</option></arg>
+					<arg choice="plain"><option>--norman</option></arg>
+				</group>
+			</arg>
+			<arg choice="plain"><option>--dumpextensions</option></arg>
+			<arg choice="plain"><option>--nowrite</option></arg>
+			<arg choice="plain"><option>--nomkdir</option></arg>
+			<arg choice="plain"><option>--writesubtree <replaceable>PATH</replaceable></option></arg>
+			<arg choice="plain"><option>--nodtdattr</option></arg>
+		</group>
+		<arg choice="opt"><replaceable>STYLESHEET</replaceable></arg>
+		<group choice="req">
+			<arg choice="plain" rep="norepeat"><replaceable>XML-FILE</replaceable></arg>
+			<arg choice="plain" rep="norepeat">-</arg>
+		</group>
+	</cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1 id="description">
+	<title>DESCRIPTION</title>
+	<para>
+		&xsltproc; is a command line tool for applying <acronym>XSLT</acronym>
+		stylesheets to <acronym>XML</acronym> documents. It is part
+		of <citerefentry>
+			<refentrytitle>libxslt</refentrytitle>
+			<manvolnum>3</manvolnum>
+		</citerefentry>, the XSLT C library for GNOME.
+		While it was developed as part of the GNOME project, it can operate
+		independently of the GNOME desktop.
+	</para>
+	<para>
+		&xsltproc; is invoked from the command line with the name of the
+		stylesheet to be used followed by the name of the file or files to which
+		the stylesheet is to be applied. It will use the standard input if a
+		filename provided is <emphasis role="bold">-</emphasis> .
+	</para>
+	<para>
+		If a stylesheet is included in an <acronym>XML</acronym> document with a
+		Stylesheet Processing Instruction, no stylesheet need to be named at the
+		command line. &xsltproc; will automatically detect the included stylesheet
+		and use it.
+	</para>
+	<para>
+		By default, output is to <filename class="devicefile">stdout</filename>.
+		You can specify a file for output using
+		the <option>-o</option> or <option>--output</option> option.
+	</para>
+	<para>More information can be found at
+		<itemizedlist>
+			<listitem>
+				<para><citerefentry>
+						<refentrytitle>libxml</refentrytitle>
+						<manvolnum>3</manvolnum>
+					</citerefentry> web page <ulink url="http://www.xmlsoft.org/"/>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					W3C <acronym>XSLT</acronym> page <ulink url="http://www.w3.org/TR/xslt"/>
+				</para>
+			</listitem>
+		</itemizedlist>
+	</para>
+</refsect1>
+
+<refsect1 id="options">
+	<title>OPTIONS</title>
+	<para>
+		&xsltproc; accepts the following options (in alphabetical order):
+	</para>
+	<variablelist>
+
+		<varlistentry>
+	<term><option>--catalogs</option></term>
+	<listitem>
+		<para>
+			Use the <acronym>SGML</acronym> catalog specified 
+			in <envar>SGML_CATALOG_FILES</envar> to resolve the location of
+			external entities. By default, &xsltproc; looks for the catalog
+			specified in <envar>XML_CATALOG_FILES</envar>. If that is not
+			specified, it uses <filename>/etc/xml/catalog</filename>.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--debug</option></term>
+	<listitem>
+		<para>
+			Output an <acronym>XML</acronym> tree of the transformed document
+			for debugging purposes.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--dumpextensions</option></term>
+	<listitem>
+		<para>
+			Dumps the list of all registered extensions
+			on <filename class="devicefile">stdout</filename>.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--html</option></term>
+	<listitem>
+		<para>The input document is an <acronym>HTML</acronym> file.</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--load-trace</option></term>
+	<listitem>
+		<para>
+			Display all the documents loaded during the processing
+			to <filename class="devicefile">stderr</filename>.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--maxdepth <replaceable>VALUE</replaceable></option></term>
+	<listitem>
+		<para>
+			Adjust the maximum depth of the template stack
+			before <citerefentry>
+			<refentrytitle>libxslt</refentrytitle>
+			<manvolnum>3</manvolnum>
+		</citerefentry> concludes it is in an infinite loop. The default is 500.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--nodtdattr</option></term>
+	<listitem>
+		<para>
+			Do not apply default attributes from the
+			document's <acronym>DTD</acronym>.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--nomkdir</option></term>
+	<listitem>
+		<para>Refuses to create directories.</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--nonet</option></term>
+	<listitem>
+		<para>
+			Do not use the Internet to fetch <acronym>DTD</acronym>s, entities
+			or documents.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--noout</option></term>
+	<listitem>
+		<para>Do not output the result.</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--novalid</option></term>
+	<listitem>
+		<para>Skip loading the document's <acronym>DTD</acronym>.</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--nowrite</option></term>
+	<listitem>
+		<para>Refuses to write to any file or resource.</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term>
+		<option>-o</option> or <option>--output</option>
+		 <replaceable>FILE</replaceable> | <replaceable>DIRECTORY</replaceable>
+	</term>
+	<listitem>
+		<para>
+			Direct output to the given <replaceable>FILE</replaceable>. Using
+			the option with a <replaceable>DIRECTORY</replaceable> directs the
+			output files to the specified directory. This can be
+			useful for multiple outputs (also known as "chunking") or manpage
+			processing. <emphasis role="bold">Note:</emphasis> The given
+			directory <emphasis role="bold">must</emphasis>
+			already exist.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term>
+		<option>--param <replaceable>PARAMNAME</replaceable> <replaceable>PARAMVALUE</replaceable></option>
+	</term>
+	<listitem>
+		<para>
+			Pass a parameter of name <replaceable>PARAMNAME</replaceable> and
+			value <replaceable>PARAMVALUE</replaceable> to the stylesheet. You
+			may pass multiple name/value pairs up to a maximum of 32. If the
+			value being passed is a string rather than a node identifier,
+			use <option>--stringparam</option> instead.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--path "<replaceable>PATH(S)</replaceable>"</option></term>
+	<listitem>
+		<para>
+			Use the (space- or colon-separated) list of filesystem paths specified
+			by <replaceable>PATHS</replaceable> to load <acronym>DTD</acronym>s,
+			entities or documents. Enclose space-separated lists by quotation marks.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--profile</option> or <option>--norman</option></term>
+	<listitem>
+		<para>
+			Output profiling information detailing the amount of time spent in
+			each part of the stylesheet. This is useful in optimizing stylesheet
+			performance.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--repeat</option></term>
+	<listitem>
+		<para>Run the transformation 20 times. Used for timing tests.</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term>
+		<option>--stringparam <replaceable>PARAMNAME</replaceable> <replaceable>PARAMVALUE</replaceable></option>
+	</term>
+	<listitem>
+		<para>
+			Pass a paramenter of name <replaceable>PARAMNAME</replaceable> and
+			value <replaceable>PARAMVALUE</replaceable>
+			where <replaceable>PARAMVALUE</replaceable> is a string rather than a
+			node identifier. <emphasis role="bold">Note:</emphasis> The string
+			must be UTF-8 encoded.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--timing</option></term>
+	<listitem>
+		<para>
+			Display the time used for parsing the stylesheet, parsing the document
+			and applying the stylesheet and saving the result. Displayed in
+			milliseconds.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>-v</option> or <option>--verbose</option></term>
+	<listitem>
+		<para>
+			Output each step taken by &xsltproc; in processing the stylesheet
+			and the document.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>-V</option> or <option>--version</option></term>
+	<listitem>
+		<para>
+			Show the version of <citerefentry>
+			<refentrytitle>libxml</refentrytitle>
+			<manvolnum>3</manvolnum>
+		</citerefentry> and <citerefentry>
+			<refentrytitle>libxslt</refentrytitle>
+			<manvolnum>3</manvolnum>
+		</citerefentry> used.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--writesubtree <replaceable>PATH</replaceable></option></term>
+	<listitem>
+		<para>
+			Allow file write only within the <replaceable>PATH</replaceable>
+			subtree.
+		</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><option>--xinclude</option></term>
+	<listitem>
+		<para>
+			Process the input document using the Xinclude specification. More
+			details on this can be found in the Xinclude
+			specification: <ulink url="http://www.w3.org/TR/xinclude/"/>
+		</para>
+	</listitem>
+		</varlistentry>
+
+	</variablelist>
+</refsect1>
+
+<refsect1 id="environment">
+	<title>ENVIRONMENT</title>
+	<variablelist>
+
+		<varlistentry>
+	<term><envar>SGML_CATALOG_FILES</envar></term>
+	<listitem>
+		<para>to be written ...</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><envar>XML_CATALOG_FILES</envar></term>
+	<listitem>
+		<para>
+			Catalog behavior can be changed by redirecting queries to the user's
+			own set of catalogs. This can be done by setting
+			the <envar>XML_CATALOG_FILES</envar> environment variable to a list
+			of catalogs. An empty one should deactivate loading the
+			default <filename>/etc/xml/catalog</filename> default catalog.
+		</para>
+	</listitem>
+		</varlistentry>
+
+	</variablelist>
+</refsect1>
+
+<refsect1 id="diagnostics">
+	<title>DIAGNOSTICS</title>
+	<para>
+		&xsltproc;'s return codes provide information that can be used when
+		calling it from scripts.
+	</para>
+	<variablelist>
+
+		<varlistentry>
+	<term><errorcode>0</errorcode></term>
+	<listitem>
+		<para>No error (normal operation)</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><errorcode>1</errorcode></term>
+	<listitem>
+		<para>No argument</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><errorcode>2</errorcode></term>
+	<listitem>
+		<para>Too many parameters</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><errorcode>3</errorcode></term>
+	<listitem>
+		<para>Unknown option</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><errorcode>4</errorcode></term>
+	<listitem>
+		<para>Failed to parse the stylesheet</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><errorcode>5</errorcode></term>
+	<listitem>
+		<para>Error in the stylesheet</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><errorcode>6</errorcode></term>
+	<listitem>
+		<para>Error in one of the documents</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><errorcode>7</errorcode></term>
+	<listitem>
+		<para>Unsupported xsl:output method</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><errorcode>8</errorcode></term>
+	<listitem>
+		<para>String parameter contains both quote and double-quotes</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><errorcode>9</errorcode></term>
+	<listitem>
+		<para>Internal processing error</para>
+	</listitem>
+		</varlistentry>
+
+		<varlistentry>
+	<term><errorcode>10</errorcode></term>
+	<listitem>
+		<para>Processing was stopped by a terminating message</para>
+	</listitem>
+		</varlistentry>
+
+	</variablelist>
+</refsect1>
+
+<refsect1 id="seealso">
+	<title>SEE ALSO</title>
+	<para>
+		<citerefentry>
+			<refentrytitle>libxslt</refentrytitle>
+			<manvolnum>3</manvolnum>
+		</citerefentry>
+	</para>
+</refsect1>
+
+</refentry>

Added: packages/libxslt/branches/upstream/1.1.16/doc/xsltproc2.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/doc/xsltproc2.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/doc/xsltproc2.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><style type="text/css">
+TD {font-family: Verdana,Arial,Helvetica}
+BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
+H1 {font-family: Verdana,Arial,Helvetica}
+H2 {font-family: Verdana,Arial,Helvetica}
+H3 {font-family: Verdana,Arial,Helvetica}
+A:link, A:visited, A:active { text-decoration: underline }
+    </style><title>The xsltproc tool</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C logo" /></a><a href="http://www.redhat.com"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/XSLT/"><img src="Libxslt-Logo-180x168.gif" alt="Made with Libxslt Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XSLT C library for Gnome</h1><h2>The xsltproc tool</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="http://xmlsoft.org/wiki">Wiki</a></li><li><a href="intro.html">Introduction</a></li><li><a href="docs.html">Documentation</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="news.html">News</a></li><li><a href="xsltproc2.html">The xsltproc tool</a></li><li><a href="docbook.html">DocBook</a></li><li><a href="API.html">The programming API</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="internals.html">Library internals</a></li><li><a href="extensions.html">Writing extensions</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="EXSLT/index.html" style="font-weight:bold">libexslt</a></li><li><a href="xslt.html">flat page</a>, <a href="site.xsl">stylesheet</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="tutorial/libxslttutorial.html">Tutorial</a>,
+          <a href="tutorial2/libxslt_pipes.html">Tutorial2</a></li><li><a href="xsltproc.html">Man page for xsltproc</a></li><li><a href="http://mail.gnome.org/archives/xslt/">Mail archive</a></li><li><a href="http://xmlsoft.org/">XML libxml2</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxslt">Bug Tracker</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17">XSLT with PHP</a></li><li><a href="http://www.mod-xslt2.com/">Apache module</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://xsldbg.sourceforge.net/">Xsldbg Debugger</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="APIchunk0.html">Alphabetic</a></li><li><a href="APIconstructors.html">Constructors</a></li><li><a href="APIfunctions.html">Functions/Types</a></li><li><a href="APIfiles.html">Modules</a></li><li><a href="APIsymbols.html">Symbols</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>This program is the simplest way to use libxslt: from the command line. It
+is also used for doing the regression tests of the library.</p><p>It takes as first argument the path or URL to an XSLT stylesheet, the next
+arguments are filenames or URIs of the inputs to be processed. The output of
+the processing is redirected on the standard output. There is actually a few
+more options available:</p><pre>orchis:~ -&gt; xsltproc
+Usage: xsltproc [options] stylesheet file [file ...]
+   Options:
+      --version or -V: show the version of libxml and libxslt used
+      --verbose or -v: show logs of what's happening
+      --output file or -o file: save to a given file
+      --timing: display the time used
+      --repeat: run the transformation 20 times
+      --debug: dump the tree of the result instead
+      --novalid: skip the Dtd loading phase
+      --noout: do not dump the result
+      --maxdepth val : increase the maximum depth
+      --html: the input document is(are) an HTML file(s)
+      --docbook: the input document is SGML docbook
+      --param name value : pass a (parameter,value) pair
+      --nonet refuse to fetch DTDs or entities over network
+      --warnnet warn against fetching over the network
+      --catalogs : use the catalogs from $SGML_CATALOG_FILES
+      --xinclude : do XInclude processing on document intput
+      --profile or --norman : dump profiling informations 
+orchis:~ -&gt;</pre><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/examples/xsltICUSort.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/examples/xsltICUSort.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/examples/xsltICUSort.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,304 @@
+/**
+ * xsltICUSort.c: module provided by Richard Jinks to provide a 
+ *                sort function replacement using ICU, it is not
+ *                included in standard due to the size of the ICU
+ *                library
+ *
+ * See http://mail.gnome.org/archives/xslt/2002-November/msg00093.html
+ *     http://oss.software.ibm.com/icu/index.html
+ *
+ * Copyright Richard Jinks
+ */
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <libxml/parserInternals.h>
+
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "transform.h"
+#include "templates.h"
+
+#include <unicode/ucnv.h>
+#include <unicode/ustring.h>
+#include <unicode/utypes.h>
+#include <unicode/uloc.h>
+#include <unicode/ucol.h>
+
+/**
+ * xsltICUSortFunction:
+ * @ctxt:  a XSLT process context
+ * @sorts:  array of sort nodes
+ * @nbsorts:  the number of sorts in the array
+ *
+ * reorder the current node list accordingly to the set of sorting
+ * requirement provided by the arry of nodes.
+ * uses the ICU library
+ */
+void
+xsltICUSortFunction(xsltTransformContextPtr ctxt, xmlNodePtr *sorts,
+	           int nbsorts) {
+    xmlXPathObjectPtr *resultsTab[XSLT_MAX_SORT];
+    xmlXPathObjectPtr *results = NULL, *res;
+    xmlNodeSetPtr list = NULL;
+    int descending, number, desc, numb;
+    int len = 0;
+    int i, j, incr;
+    int tst;
+    int depth;
+    xmlNodePtr node;
+    xmlXPathObjectPtr tmp;
+    xsltStylePreCompPtr comp;
+    int tempstype[XSLT_MAX_SORT], temporder[XSLT_MAX_SORT];
+
+    /* Start ICU change */
+    UCollator *coll = 0;
+    UConverter *conv;
+    UErrorCode status;
+    UChar *target,*target2;
+    int targetlen, target2len;
+    /* End ICU change */
+
+    if ((ctxt == NULL) || (sorts == NULL) || (nbsorts <= 0) ||
+	(nbsorts >= XSLT_MAX_SORT))
+	return;
+    if (sorts[0] == NULL)
+	return;
+    comp = sorts[0]->_private;
+    if (comp == NULL)
+	return;
+
+    list = ctxt->nodeList;
+    if ((list == NULL) || (list->nodeNr <= 1))
+	return; /* nothing to do */
+
+    for (j = 0; j < nbsorts; j++) {
+	comp = sorts[j]->_private;
+	tempstype[j] = 0;
+	if ((comp->stype == NULL) && (comp->has_stype != 0)) {
+	    comp->stype =
+		xsltEvalAttrValueTemplate(ctxt, sorts[j],
+					  (const xmlChar *) "data-type",
+					  XSLT_NAMESPACE);
+	    if (comp->stype != NULL) {
+		tempstype[j] = 1;
+		if (xmlStrEqual(comp->stype, (const xmlChar *) "text"))
+		    comp->number = 0;
+		else if (xmlStrEqual(comp->stype, (const xmlChar *) "number"))
+		    comp->number = 1;
+		else {
+		    xsltTransformError(ctxt, NULL, sorts[j],
+			  "xsltDoSortFunction: no support for data-type = %s\n",
+				     comp->stype);
+		    comp->number = 0; /* use default */
+		}
+	    }
+	}
+	temporder[j] = 0;
+	if ((comp->order == NULL) && (comp->has_order != 0)) {
+	    comp->order = xsltEvalAttrValueTemplate(ctxt, sorts[j],
+						    (const xmlChar *) "order",
+						    XSLT_NAMESPACE);
+	    if (comp->order != NULL) {
+		temporder[j] = 1;
+		if (xmlStrEqual(comp->order, (const xmlChar *) "ascending"))
+		    comp->descending = 0;
+		else if (xmlStrEqual(comp->order,
+				     (const xmlChar *) "descending"))
+		    comp->descending = 1;
+		else {
+		    xsltTransformError(ctxt, NULL, sorts[j],
+			     "xsltDoSortFunction: invalid value %s for order\n",
+				     comp->order);
+		    comp->descending = 0; /* use default */
+		}
+	    }
+	}
+    }
+
+    len = list->nodeNr;
+
+    resultsTab[0] = xsltComputeSortResult(ctxt, sorts[0]);
+    for (i = 1;i < XSLT_MAX_SORT;i++)
+	resultsTab[i] = NULL;
+
+    results = resultsTab[0];
+
+    comp = sorts[0]->_private;
+    descending = comp->descending;
+    number = comp->number;
+    if (results == NULL)
+	return;
+
+    /* Start ICU change */
+    status = U_ZERO_ERROR;
+    conv = ucnv_open("UTF8", &status);
+    if(U_FAILURE(status)) {
+	xsltTransformError(ctxt, NULL, NULL, "xsltICUSortFunction: Error opening converter\n");
+    }	
+    if(comp->has_lang) 
+	coll = ucol_open(comp->lang, &status);
+    if(U_FAILURE(status) || !comp->has_lang) {
+	status = U_ZERO_ERROR;
+	coll = ucol_open("en", &status);
+    }
+    if(U_FAILURE(status)) {
+	xsltTransformError(ctxt, NULL, NULL, "xsltICUSortFunction: Error opening collator\n");
+    }
+    if(comp->lower_first) 
+	ucol_setAttribute(coll,UCOL_CASE_FIRST,UCOL_LOWER_FIRST,&status);
+    else 
+	ucol_setAttribute(coll,UCOL_CASE_FIRST,UCOL_UPPER_FIRST,&status);
+    if(U_FAILURE(status)) {
+	xsltTransformError(ctxt, NULL, NULL, "xsltICUSortFunction: Error setting collator attribute\n");
+    }
+    /* End ICU change */
+
+    /* Shell's sort of node-set */
+    for (incr = len / 2; incr > 0; incr /= 2) {
+	for (i = incr; i < len; i++) {
+	    j = i - incr;
+	    if (results[i] == NULL)
+		continue;
+	    
+	    while (j >= 0) {
+		if (results[j] == NULL)
+		    tst = 1;
+		else {
+		    if (number) {
+			if (results[j]->floatval == results[j + incr]->floatval)
+			    tst = 0;
+			else if (results[j]->floatval > 
+				results[j + incr]->floatval)
+			    tst = 1;
+			else tst = -1;
+		    } else {
+/*			tst = xmlStrcmp(results[j]->stringval,
+				     results[j + incr]->stringval); */
+			/* Start ICU change */
+			targetlen = xmlStrlen(results[j]->stringval) * 2;
+			target2len = xmlStrlen(results[j + incr]->stringval) * 2;
+			target = xmlMalloc(targetlen * sizeof(UChar));
+			target2 = xmlMalloc(target2len * sizeof(UChar));
+			targetlen = ucnv_toUChars(conv, target, targetlen, results[j]->stringval, -1, &status);
+			target2len = ucnv_toUChars(conv, target2, target2len, results[j+incr]->stringval, -1, &status);
+			tst = ucol_strcoll(coll, target, u_strlen(target), target2, u_strlen(target2));
+			/* End ICU change */
+		    }
+		    if (descending)
+			tst = -tst;
+		}
+		if (tst == 0) {
+		    /*
+		     * Okay we need to use multi level sorts
+		     */
+		    depth = 1;
+		    while (depth < nbsorts) {
+			if (sorts[depth] == NULL)
+			    break;
+			comp = sorts[depth]->_private;
+			if (comp == NULL)
+			    break;
+			desc = comp->descending;
+			numb = comp->number;
+
+			/*
+			 * Compute the result of the next level for the
+			 * full set, this might be optimized ... or not
+			 */
+			if (resultsTab[depth] == NULL) 
+			    resultsTab[depth] = xsltComputeSortResult(ctxt,
+				                        sorts[depth]);
+			res = resultsTab[depth];
+			if (res == NULL) 
+			    break;
+			if (res[j] == NULL)
+			    tst = 1;
+			else {
+			    if (numb) {
+				if (res[j]->floatval == res[j + incr]->floatval)
+				    tst = 0;
+				else if (res[j]->floatval > 
+					res[j + incr]->floatval)
+				    tst = 1;
+				else tst = -1;
+			    } else {
+/*				tst = xmlStrcmp(res[j]->stringval,
+					     res[j + incr]->stringval); */
+				/* Start ICU change */
+				targetlen = xmlStrlen(res[j]->stringval) * 2;
+				target2len = xmlStrlen(res[j + incr]->stringval) * 2;
+				target = xmlMalloc(targetlen * sizeof(UChar));
+				target2 = xmlMalloc(target2len * sizeof(UChar));
+				targetlen = ucnv_toUChars(conv, target, targetlen, res[j]->stringval, -1, &status);
+				target2len = ucnv_toUChars(conv, target2, target2len, res[j+incr]->stringval, -1, &status);
+				tst = ucol_strcoll(coll, target, u_strlen(target), target2, u_strlen(target2));
+				/* End ICU change */
+			    }
+			    if (desc)
+			      tst = -tst;
+			}
+			/*
+			 * if we still can't differenciate at this level
+			 * try one level deeper.
+			 */
+			if (tst != 0)
+			    break;
+			depth++;
+		    }
+		}
+		if (tst == 0) {
+		    tst = results[j]->index > results[j + incr]->index;
+		}
+		if (tst > 0) {
+		    tmp = results[j];
+		    results[j] = results[j + incr];
+		    results[j + incr] = tmp;
+		    node = list->nodeTab[j];
+		    list->nodeTab[j] = list->nodeTab[j + incr];
+		    list->nodeTab[j + incr] = node;
+		    depth = 1;
+		    while (depth < nbsorts) {
+			if (sorts[depth] == NULL)
+			    break;
+			if (resultsTab[depth] == NULL)
+			    break;
+			res = resultsTab[depth];
+			tmp = res[j];
+			res[j] = res[j + incr];
+			res[j + incr] = tmp;
+			depth++;
+		    }
+		    j -= incr;
+		} else
+		    break;
+	    }
+	}
+    }
+
+    /* Start ICU change */
+    ucol_close(coll);
+    ucnv_close(conv);
+    /* End ICU change */
+
+    for (j = 0; j < nbsorts; j++) {
+	comp = sorts[j]->_private;
+	if (tempstype[j] == 1) {
+	    /* The data-type needs to be recomputed each time */
+	    xmlFree(comp->stype);
+	    comp->stype = NULL;
+	}
+	if (temporder[j] == 1) {
+	    /* The order needs to be recomputed each time */
+	    xmlFree(comp->order);
+	    comp->order = NULL;
+	}
+	if (resultsTab[j] != NULL) {
+	    for (i = 0;i < len;i++)
+		xmlXPathFreeObject(resultsTab[j][i]);
+	    xmlFree(resultsTab[j]);
+	}
+    }
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/install-sh
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/install-sh	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/install-sh	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,251 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.  It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+	-c) instcmd="$cpprog"
+	    shift
+	    continue;;
+
+	-d) dir_arg=true
+	    shift
+	    continue;;
+
+	-m) chmodcmd="$chmodprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-o) chowncmd="$chownprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-g) chgrpcmd="$chgrpprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-s) stripcmd="$stripprog"
+	    shift
+	    continue;;
+
+	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
+	    shift
+	    continue;;
+
+	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+	    shift
+	    continue;;
+
+	*)  if [ x"$src" = x ]
+	    then
+		src=$1
+	    else
+		# this colon is to work around a 386BSD /bin/sh bug
+		:
+		dst=$1
+	    fi
+	    shift
+	    continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+	echo "install:	no input file specified"
+	exit 1
+else
+	true
+fi
+
+if [ x"$dir_arg" != x ]; then
+	dst=$src
+	src=""
+	
+	if [ -d $dst ]; then
+		instcmd=:
+		chmodcmd=""
+	else
+		instcmd=mkdir
+	fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad 
+# if $src (and thus $dsttmp) contains '*'.
+
+	if [ -f $src -o -d $src ]
+	then
+		true
+	else
+		echo "install:  $src does not exist"
+		exit 1
+	fi
+	
+	if [ x"$dst" = x ]
+	then
+		echo "install:	no destination specified"
+		exit 1
+	else
+		true
+	fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+	if [ -d $dst ]
+	then
+		dst="$dst"/`basename $src`
+	else
+		true
+	fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+#  this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='	
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+	pathcomp="${pathcomp}${1}"
+	shift
+
+	if [ ! -d "${pathcomp}" ] ;
+        then
+		$mkdirprog "${pathcomp}"
+	else
+		true
+	fi
+
+	pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+	$doit $instcmd $dst &&
+
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+	if [ x"$transformarg" = x ] 
+	then
+		dstfile=`basename $dst`
+	else
+		dstfile=`basename $dst $transformbasename | 
+			sed $transformarg`$transformbasename
+	fi
+
+# don't allow the sed command to completely eliminate the filename
+
+	if [ x"$dstfile" = x ] 
+	then
+		dstfile=`basename $dst`
+	else
+		true
+	fi
+
+# Make a temp file name in the proper directory.
+
+	dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+	$doit $instcmd $src $dsttmp &&
+
+	trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing.  If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+	$doit $rmcmd -f $dstdir/$dstfile &&
+	$doit $mvcmd $dsttmp $dstdir/$dstfile 
+
+fi &&
+
+
+exit 0


Property changes on: packages/libxslt/branches/upstream/1.1.16/install-sh
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,36 @@
+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/libxslt -I$(top_srcdir)/libexslt \
+	   -I$(top_builddir) -I$(top_builddir)/libxslt \
+	   -I$(top_builddir)/libexslt $(LIBXML_CFLAGS) $(CFLAGS)
+
+AM_CFLAGS = $(LIBGCRYPT_CFLAGS)
+
+lib_LTLIBRARIES = libexslt.la
+
+exsltincdir = $(includedir)/libexslt
+
+exsltinc_HEADERS =                      \
+	exslt.h				\
+	exsltconfig.h			\
+	exslt.h				\
+	exsltconfig.h			\
+	exsltexports.h
+
+libexslt_la_SOURCES =                   \
+	exslt.c				\
+	common.c			\
+	crypto.c			\
+	math.c				\
+	sets.c				\
+	functions.c			\
+	strings.c			\
+	date.c				\
+	saxon.c				\
+	libexslt.h			\
+	dynamic.c
+
+libexslt_la_LIBADD = $(top_builddir)/libxslt/libxslt.la $(EXTRA_LIBS)
+libexslt_la_LDFLAGS = -version-info @LIBEXSLT_VERSION_INFO@ $(LIBGCRYPT_LIBS)
+
+man_MANS = libexslt.3
+
+EXTRA_DIST = $(man_MANS)

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,626 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libexslt
+DIST_COMMON = $(exsltinc_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in $(srcdir)/exsltconfig.h.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = exsltconfig.h
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man3dir)" \
+	"$(DESTDIR)$(exsltincdir)"
+libLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libexslt_la_DEPENDENCIES = $(top_builddir)/libxslt/libxslt.la \
+	$(am__DEPENDENCIES_1)
+am_libexslt_la_OBJECTS = exslt.lo common.lo crypto.lo math.lo sets.lo \
+	functions.lo strings.lo date.lo saxon.lo dynamic.lo
+libexslt_la_OBJECTS = $(am_libexslt_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libexslt_la_SOURCES)
+DIST_SOURCES = $(libexslt_la_SOURCES)
+man3dir = $(mandir)/man3
+NROFF = nroff
+MANS = $(man_MANS)
+exsltincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(exsltinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/libxslt -I$(top_srcdir)/libexslt \
+	   -I$(top_builddir) -I$(top_builddir)/libxslt \
+	   -I$(top_builddir)/libexslt $(LIBXML_CFLAGS) $(CFLAGS)
+
+AM_CFLAGS = $(LIBGCRYPT_CFLAGS)
+lib_LTLIBRARIES = libexslt.la
+exsltincdir = $(includedir)/libexslt
+exsltinc_HEADERS = \
+	exslt.h				\
+	exsltconfig.h			\
+	exslt.h				\
+	exsltconfig.h			\
+	exsltexports.h
+
+libexslt_la_SOURCES = \
+	exslt.c				\
+	common.c			\
+	crypto.c			\
+	math.c				\
+	sets.c				\
+	functions.c			\
+	strings.c			\
+	date.c				\
+	saxon.c				\
+	libexslt.h			\
+	dynamic.c
+
+libexslt_la_LIBADD = $(top_builddir)/libxslt/libxslt.la $(EXTRA_LIBS)
+libexslt_la_LDFLAGS = -version-info @LIBEXSLT_VERSION_INFO@ $(LIBGCRYPT_LIBS)
+man_MANS = libexslt.3
+EXTRA_DIST = $(man_MANS)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libexslt/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libexslt/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+exsltconfig.h: $(top_builddir)/config.status $(srcdir)/exsltconfig.h.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
+	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    f=$(am__strip_dir) \
+	    echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
+	    $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+	  else :; fi; \
+	done
+
+uninstall-libLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	  p=$(am__strip_dir) \
+	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
+	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+	done
+
+clean-libLTLIBRARIES:
+	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libexslt.la: $(libexslt_la_OBJECTS) $(libexslt_la_DEPENDENCIES) 
+	$(LINK) -rpath $(libdir) $(libexslt_la_LDFLAGS) $(libexslt_la_OBJECTS) $(libexslt_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/common.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/crypto.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/date.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dynamic.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/exslt.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/functions.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/math.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/saxon.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/sets.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/strings.Plo at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ at am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+install-man3: $(man3_MANS) $(man_MANS)
+	@$(NORMAL_INSTALL)
+	test -z "$(man3dir)" || $(mkdir_p) "$(DESTDIR)$(man3dir)"
+	@list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \
+	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+	for i in $$l2; do \
+	  case "$$i" in \
+	    *.3*) list="$$list $$i" ;; \
+	  esac; \
+	done; \
+	for i in $$list; do \
+	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+	  else file=$$i; fi; \
+	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+	  case "$$ext" in \
+	    3*) ;; \
+	    *) ext='3' ;; \
+	  esac; \
+	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \
+	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst"; \
+	done
+uninstall-man3:
+	@$(NORMAL_UNINSTALL)
+	@list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \
+	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+	for i in $$l2; do \
+	  case "$$i" in \
+	    *.3*) list="$$list $$i" ;; \
+	  esac; \
+	done; \
+	for i in $$list; do \
+	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+	  case "$$ext" in \
+	    3*) ;; \
+	    *) ext='3' ;; \
+	  esac; \
+	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+	  echo " rm -f '$(DESTDIR)$(man3dir)/$$inst'"; \
+	  rm -f "$(DESTDIR)$(man3dir)/$$inst"; \
+	done
+install-exsltincHEADERS: $(exsltinc_HEADERS)
+	@$(NORMAL_INSTALL)
+	test -z "$(exsltincdir)" || $(mkdir_p) "$(DESTDIR)$(exsltincdir)"
+	@list='$(exsltinc_HEADERS)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(exsltincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(exsltincdir)/$$f'"; \
+	  $(exsltincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(exsltincdir)/$$f"; \
+	done
+
+uninstall-exsltincHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(exsltinc_HEADERS)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(exsltincdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(exsltincdir)/$$f"; \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(MANS) $(HEADERS)
+installdirs:
+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(exsltincdir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-exsltincHEADERS install-man
+
+install-exec-am: install-libLTLIBRARIES
+
+install-info: install-info-am
+
+install-man: install-man3
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-exsltincHEADERS uninstall-info-am \
+	uninstall-libLTLIBRARIES uninstall-man
+
+uninstall-man: uninstall-man3
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-exsltincHEADERS install-info \
+	install-info-am install-libLTLIBRARIES install-man \
+	install-man3 install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am uninstall-exsltincHEADERS uninstall-info-am \
+	uninstall-libLTLIBRARIES uninstall-man uninstall-man3
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/common.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/common.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/common.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,116 @@
+#define IN_LIBEXSLT
+#include "libexslt/libexslt.h"
+
+#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#include <win32config.h>
+#else
+#include "config.h"
+#endif
+
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+
+#include <libxslt/xsltconfig.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/extensions.h>
+#include <libxslt/transform.h>
+#include <libxslt/extra.h>
+#include <libxslt/preproc.h>
+
+#include "exslt.h"
+
+static void
+exsltNodeSetFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlChar *strval;
+    xmlNodePtr retNode;
+    xmlXPathObjectPtr ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (xmlXPathStackIsNodeSet (ctxt)) {
+	xsltFunctionNodeSet (ctxt, nargs);
+	return;
+    }
+
+    strval = xmlXPathPopString (ctxt);
+    retNode = xmlNewDocText (NULL, strval);
+    ret = xmlXPathNewValueTree (retNode);
+    if (ret == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+			 "exsltNodeSetFunction: ret == NULL\n");
+    } else {
+        ret->type = XPATH_NODESET;
+    }
+
+    if (strval != NULL)
+	xmlFree (strval);
+
+    valuePush (ctxt, ret);
+}
+
+static void
+exsltObjectTypeFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlXPathObjectPtr obj, ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    obj = valuePop(ctxt);
+
+    switch (obj->type) {
+    case XPATH_STRING:
+	ret = xmlXPathNewCString("string");
+	break;
+    case XPATH_NUMBER:
+	ret = xmlXPathNewCString("number");
+	break;
+    case XPATH_BOOLEAN:
+	ret = xmlXPathNewCString("boolean");
+	break;
+    case XPATH_NODESET:
+	ret = xmlXPathNewCString("node-set");
+	break;
+    case XPATH_XSLT_TREE:
+	ret = xmlXPathNewCString("RTF");
+	break;
+    case XPATH_USERS:
+	ret = xmlXPathNewCString("external");
+	break;
+    default:
+	xsltGenericError(xsltGenericErrorContext,
+		"object-type() invalid arg\n");
+	ctxt->error = XPATH_INVALID_TYPE;
+	xmlXPathFreeObject(obj);
+	return;
+    }
+    xmlXPathFreeObject(obj);
+    valuePush(ctxt, ret);
+}
+
+
+/**
+ * exsltCommonRegister:
+ *
+ * Registers the EXSLT - Common module
+ */
+
+void
+exsltCommonRegister (void) {
+    xsltRegisterExtModuleFunction((const xmlChar *) "node-set",
+				  EXSLT_COMMON_NAMESPACE,
+				  exsltNodeSetFunction);
+    xsltRegisterExtModuleFunction((const xmlChar *) "object-type",
+				  EXSLT_COMMON_NAMESPACE,
+				  exsltObjectTypeFunction);
+    xsltRegisterExtModuleElement((const xmlChar *) "document",
+				 EXSLT_COMMON_NAMESPACE,
+				 (xsltPreComputeFunction) xsltDocumentComp,
+				 (xsltTransformFunction) xsltDocumentElem);
+}

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/crypto.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/crypto.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/crypto.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,749 @@
+#define IN_LIBEXSLT
+#include "libexslt/libexslt.h"
+
+#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#include <win32config.h>
+#else
+#include "config.h"
+#endif
+
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/parser.h>
+#include <libxml/encoding.h>
+#include <libxml/uri.h>
+
+#include <libxslt/xsltconfig.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/extensions.h>
+
+#include "exslt.h"
+
+#ifdef EXSLT_CRYPTO_ENABLED
+
+#define HASH_DIGEST_LENGTH 32
+#define MD5_DIGEST_LENGTH 16
+#define SHA1_DIGEST_LENGTH 20
+
+/* gcrypt rc4 can do 256 bit keys, but cryptoapi limit 
+   seems to be 128 for the default provider */
+#define RC4_KEY_LENGTH 128
+
+/* The following routines have been declared static - this should be
+   reviewed to consider whether we want to expose them to the API
+   exsltCryptoBin2Hex
+   exsltCryptoHex2Bin
+   exsltCryptoGcryptInit
+   exsltCryptoGcryptHash
+   exsltCryptoGcryptRc4Encrypt
+   exsltCryptoGcryptRC4Decrypt
+*/
+
+/**
+ * exsltCryptoBin2Hex:
+ * @bin: binary blob to convert
+ * @binlen: length of binary blob
+ * @hex: buffer to store hex version of blob
+ * @hexlen: length of buffer to store hex version of blob
+ *
+ * Helper function which encodes a binary blob as hex. 
+ */
+static void
+exsltCryptoBin2Hex (const unsigned char *bin, int binlen,
+		    unsigned char *hex, int hexlen) {
+    static const char bin2hex[] = { '0', '1', '2', '3',
+	'4', '5', '6', '7',
+	'8', '9', 'a', 'b',
+	'c', 'd', 'e', 'f'
+    };
+
+    unsigned char lo, hi;
+    int i, pos;
+    for (i = 0, pos = 0; (i < binlen && pos < hexlen); i++) {
+	lo = bin[i] & 0xf;
+	hi = bin[i] >> 4;
+	hex[pos++] = bin2hex[hi];
+	hex[pos++] = bin2hex[lo];
+    }
+
+    hex[pos] = '\0';
+}
+
+/**
+ * exsltCryptoHex2Bin:
+ * @hex: hex version of blob to convert
+ * @hexlen: length of hex buffer
+ * @bin: destination binary buffer
+ * @binlen: length of binary buffer
+ *
+ * Helper function which decodes a hex blob to binary
+ */
+static int
+exsltCryptoHex2Bin (const unsigned char *hex, int hexlen,
+		    unsigned char *bin, int binlen) {
+    int i = 0, j = 0;
+    unsigned char lo, hi, result, tmp;
+
+    while (i < hexlen && j < binlen) {
+	hi = lo = 0;
+
+	tmp = hex[i++];
+	if (tmp >= '0' && tmp <= '9')
+	    hi = tmp - '0';
+	else if (tmp >= 'a' && tmp <= 'f')
+	    hi = 10 + (tmp - 'a');
+
+	tmp = hex[i++];
+	if (tmp >= '0' && tmp <= '9')
+	    lo = tmp - '0';
+	else if (tmp >= 'a' && tmp <= 'f')
+	    lo = 10 + (tmp - 'a');
+
+	result = hi << 4;
+	result += lo;
+	bin[j++] = result;
+    }
+
+    return j;
+}
+
+#if defined(WIN32)
+
+#define HAVE_CRYPTO
+#define PLATFORM_HASH	exsltCryptoCryptoApiHash
+#define PLATFORM_RC4_ENCRYPT exsltCryptoCryptoApiRc4Encrypt
+#define PLATFORM_RC4_DECRYPT exsltCryptoCryptoApiRc4Decrypt
+#define PLATFORM_MD4 CALG_MD4
+#define PLATFORM_MD5 CALG_MD5
+#define PLATFORM_SHA1 CALG_SHA1
+
+#include <windows.h>
+#include <wincrypt.h>
+#pragma comment(lib, "advapi32.lib")
+
+static void
+exsltCryptoCryptoApiReportError (xmlXPathParserContextPtr ctxt,
+				 int line) {
+    LPVOID lpMsgBuf;
+    DWORD dw = GetLastError ();
+
+    FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER |
+		   FORMAT_MESSAGE_FROM_SYSTEM, NULL, dw,
+		   MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
+		   (LPTSTR) & lpMsgBuf, 0, NULL);
+
+    xsltTransformError (xsltXPathGetTransformContext (ctxt), NULL, NULL,
+			"exslt:crypto error (line %d). %s", line,
+			lpMsgBuf);
+    LocalFree (lpMsgBuf);
+}
+
+HCRYPTHASH
+exsltCryptoCryptoApiCreateHash (xmlXPathParserContextPtr ctxt,
+				HCRYPTPROV hCryptProv, ALG_ID algorithm,
+				const char *msg, unsigned int msglen,
+				char *dest, unsigned int destlen)
+{
+    HCRYPTHASH hHash = 0;
+    DWORD dwHashLen = destlen;
+
+    if (!CryptCreateHash (hCryptProv, algorithm, 0, 0, &hHash)) {
+	exsltCryptoCryptoApiReportError (ctxt, __LINE__);
+	return 0;
+    }
+
+    if (!CryptHashData (hHash, (const BYTE *) msg, msglen, 0)) {
+	exsltCryptoCryptoApiReportError (ctxt, __LINE__);
+	goto fail;
+    }
+
+    if (!CryptGetHashParam (hHash, HP_HASHVAL, dest, &dwHashLen, 0)) {
+	exsltCryptoCryptoApiReportError (ctxt, __LINE__);
+	goto fail;
+    }
+
+  fail:
+    return hHash;
+}
+
+/**
+ * exsltCryptoCryptoApiHash:
+ * @ctxt: an XPath parser context
+ * @algorithm: hashing algorithm to use
+ * @msg: text to be hashed
+ * @msglen: length of text to be hashed
+ * @dest: buffer to place hash result
+ *
+ * Helper function which hashes a message using MD4, MD5, or SHA1.
+ * Uses Win32 CryptoAPI.
+ */
+static void
+exsltCryptoCryptoApiHash (xmlXPathParserContextPtr ctxt,
+			  ALG_ID algorithm, const char *msg,
+			  unsigned long msglen,
+			  char dest[HASH_DIGEST_LENGTH]) {
+    HCRYPTPROV hCryptProv;
+    HCRYPTHASH hHash;
+
+    if (!CryptAcquireContext (&hCryptProv, NULL, NULL, PROV_RSA_FULL,
+			      CRYPT_VERIFYCONTEXT | CRYPT_SILENT)) {
+	exsltCryptoCryptoApiReportError (ctxt, __LINE__);
+	return;
+    }
+
+    hHash = exsltCryptoCryptoApiCreateHash (ctxt, hCryptProv,
+					    algorithm, msg, msglen,
+					    dest, HASH_DIGEST_LENGTH);
+    if (0 != hHash) {
+	CryptDestroyHash (hHash);
+    }
+
+    CryptReleaseContext (hCryptProv, 0);
+}
+
+void
+exsltCryptoCryptoApiRc4Encrypt (xmlXPathParserContextPtr ctxt,
+				const unsigned char *key,
+				const unsigned char *msg, int msglen,
+				unsigned char *dest, int destlen) {
+    HCRYPTPROV hCryptProv;
+    HCRYPTKEY hKey;
+    HCRYPTHASH hHash;
+    DWORD dwDataLen;
+    unsigned char hash[HASH_DIGEST_LENGTH];
+
+    if (msglen > destlen) {
+	xsltTransformError (xsltXPathGetTransformContext (ctxt), NULL,
+			    NULL,
+			    "exslt:crypto : internal error exsltCryptoCryptoApiRc4Encrypt dest buffer too small.\n");
+	return;
+    }
+
+    if (!CryptAcquireContext (&hCryptProv, NULL, NULL, PROV_RSA_FULL,
+			      CRYPT_VERIFYCONTEXT | CRYPT_SILENT)) {
+	exsltCryptoCryptoApiReportError (ctxt, __LINE__);
+	return;
+    }
+
+    hHash = exsltCryptoCryptoApiCreateHash (ctxt, hCryptProv,
+					    CALG_SHA1, key,
+					    RC4_KEY_LENGTH, hash,
+					    HASH_DIGEST_LENGTH);
+
+    if (!CryptDeriveKey
+	(hCryptProv, CALG_RC4, hHash, 0x00800000, &hKey)) {
+	exsltCryptoCryptoApiReportError (ctxt, __LINE__);
+	goto fail;
+    }
+/* Now encrypt data. */
+    dwDataLen = msglen;
+    memcpy (dest, msg, msglen);
+    if (!CryptEncrypt (hKey, 0, TRUE, 0, dest, &dwDataLen, msglen)) {
+	exsltCryptoCryptoApiReportError (ctxt, __LINE__);
+	goto fail;
+    }
+
+  fail:
+    if (0 != hHash) {
+	CryptDestroyHash (hHash);
+    }
+
+    CryptDestroyKey (hKey);
+    CryptReleaseContext (hCryptProv, 0);
+}
+
+void
+exsltCryptoCryptoApiRc4Decrypt (xmlXPathParserContextPtr ctxt,
+				const unsigned char *key,
+				const unsigned char *msg, int msglen,
+				unsigned char *dest, int destlen) {
+    HCRYPTPROV hCryptProv;
+    HCRYPTKEY hKey;
+    HCRYPTHASH hHash;
+    DWORD dwDataLen;
+    unsigned char hash[HASH_DIGEST_LENGTH];
+
+    if (msglen > destlen) {
+	xsltTransformError (xsltXPathGetTransformContext (ctxt), NULL,
+			    NULL,
+			    "exslt:crypto : internal error exsltCryptoCryptoApiRc4Encrypt dest buffer too small.\n");
+	return;
+    }
+
+    if (!CryptAcquireContext (&hCryptProv, NULL, NULL, PROV_RSA_FULL,
+			      CRYPT_VERIFYCONTEXT | CRYPT_SILENT)) {
+	exsltCryptoCryptoApiReportError (ctxt, __LINE__);
+	return;
+    }
+
+    hHash = exsltCryptoCryptoApiCreateHash (ctxt, hCryptProv,
+					    CALG_SHA1, key,
+					    RC4_KEY_LENGTH, hash,
+					    HASH_DIGEST_LENGTH);
+
+    if (!CryptDeriveKey
+	(hCryptProv, CALG_RC4, hHash, 0x00800000, &hKey)) {
+	exsltCryptoCryptoApiReportError (ctxt, __LINE__);
+	goto fail;
+    }
+/* Now encrypt data. */
+    dwDataLen = msglen;
+    memcpy (dest, msg, msglen);
+    if (!CryptDecrypt (hKey, 0, TRUE, 0, dest, &dwDataLen)) {
+	exsltCryptoCryptoApiReportError (ctxt, __LINE__);
+	goto fail;
+    }
+
+  fail:
+    if (0 != hHash) {
+	CryptDestroyHash (hHash);
+    }
+
+    CryptDestroyKey (hKey);
+    CryptReleaseContext (hCryptProv, 0);
+}
+
+#endif /* defined(WIN32) */
+
+#if defined(HAVE_GCRYPT)
+
+#define HAVE_CRYPTO
+#define PLATFORM_HASH	exsltCryptoGcryptHash
+#define PLATFORM_RC4_ENCRYPT exsltCryptoGcryptRc4Encrypt
+#define PLATFORM_RC4_DECRYPT exsltCryptoGcryptRc4Decrypt
+#define PLATFORM_MD4 GCRY_MD_MD4
+#define PLATFORM_MD5 GCRY_MD_MD5
+#define PLATFORM_SHA1 GCRY_MD_SHA1
+
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>		/* needed by gcrypt.h 4 Jul 04 */
+#endif
+#include <gcrypt.h>
+
+static void
+exsltCryptoGcryptInit (void) {
+    static int gcrypt_init;
+    xmlLockLibrary ();
+
+    if (!gcrypt_init) {
+/* The function `gcry_check_version' must be called before any other
+	 function in the library, because it initializes the thread support
+	 subsystem in Libgcrypt. To achieve this in all generality, it is
+	 necessary to synchronize the call to this function with all other calls
+	 to functions in the library, using the synchronization mechanisms
+	 available in your thread library. (from gcrypt.info)
+*/
+	gcry_check_version (GCRYPT_VERSION);
+	gcrypt_init = 1;
+    }
+
+    xmlUnlockLibrary ();
+}
+
+/**
+ * exsltCryptoGcryptHash:
+ * @ctxt: an XPath parser context
+ * @algorithm: hashing algorithm to use
+ * @msg: text to be hashed
+ * @msglen: length of text to be hashed
+ * @dest: buffer to place hash result
+ *
+ * Helper function which hashes a message using MD4, MD5, or SHA1. 
+ * using gcrypt
+ */
+static void
+exsltCryptoGcryptHash (xmlXPathParserContextPtr ctxt ATTRIBUTE_UNUSED,
+/* changed the enum to int */
+		       int algorithm, const char *msg,
+		       unsigned long msglen,
+		       char dest[HASH_DIGEST_LENGTH]) {
+    exsltCryptoGcryptInit ();
+    gcry_md_hash_buffer (algorithm, dest, msg, msglen);
+}
+
+static void
+exsltCryptoGcryptRc4Encrypt (xmlXPathParserContextPtr ctxt,
+			     const unsigned char *key,
+			     const unsigned char *msg, int msglen,
+			     unsigned char *dest, int destlen) {
+    gcry_cipher_hd_t cipher;
+    gcry_error_t rc = 0;
+
+    exsltCryptoGcryptInit ();
+
+    rc = gcry_cipher_open (&cipher, GCRY_CIPHER_ARCFOUR,
+			   GCRY_CIPHER_MODE_STREAM, 0);
+    if (rc) {
+	xsltTransformError (xsltXPathGetTransformContext (ctxt), NULL,
+			    NULL,
+			    "exslt:crypto internal error %s (gcry_cipher_open)\n",
+			    gcry_strerror (rc));
+    }
+
+    rc = gcry_cipher_setkey (cipher, key, RC4_KEY_LENGTH);
+    if (rc) {
+	xsltTransformError (xsltXPathGetTransformContext (ctxt), NULL,
+			    NULL,
+			    "exslt:crypto internal error %s (gcry_cipher_setkey)\n",
+			    gcry_strerror (rc));
+    }
+
+    rc = gcry_cipher_encrypt (cipher, (unsigned char *) dest, destlen,
+			      (const unsigned char *) msg, msglen);
+    if (rc) {
+	xsltTransformError (xsltXPathGetTransformContext (ctxt), NULL,
+			    NULL,
+			    "exslt:crypto internal error %s (gcry_cipher_encrypt)\n",
+			    gcry_strerror (rc));
+    }
+
+    gcry_cipher_close (cipher);
+}
+
+static void
+exsltCryptoGcryptRc4Decrypt (xmlXPathParserContextPtr ctxt,
+			     const unsigned char *key,
+			     const unsigned char *msg, int msglen,
+			     unsigned char *dest, int destlen) {
+    gcry_cipher_hd_t cipher;
+    gcry_error_t rc = 0;
+
+    exsltCryptoGcryptInit ();
+
+    rc = gcry_cipher_open (&cipher, GCRY_CIPHER_ARCFOUR,
+			   GCRY_CIPHER_MODE_STREAM, 0);
+    if (rc) {
+	xsltTransformError (xsltXPathGetTransformContext (ctxt), NULL,
+			    NULL,
+			    "exslt:crypto internal error %s (gcry_cipher_open)\n",
+			    gcry_strerror (rc));
+    }
+
+    rc = gcry_cipher_setkey (cipher, key, RC4_KEY_LENGTH);
+    if (rc) {
+	xsltTransformError (xsltXPathGetTransformContext (ctxt), NULL,
+			    NULL,
+			    "exslt:crypto internal error %s (gcry_cipher_setkey)\n",
+			    gcry_strerror (rc));
+    }
+
+    rc = gcry_cipher_decrypt (cipher, (unsigned char *) dest, destlen,
+			      (const unsigned char *) msg, msglen);
+    if (rc) {
+	xsltTransformError (xsltXPathGetTransformContext (ctxt), NULL,
+			    NULL,
+			    "exslt:crypto internal error %s (gcry_cipher_decrypt)\n",
+			    gcry_strerror (rc));
+    }
+
+    gcry_cipher_close (cipher);
+}
+
+#endif /* defined(HAVE_GCRYPT) */
+
+#if defined(HAVE_CRYPTO)
+
+/**
+ * exsltCryptoPopString:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * Helper function which checks for and returns first string argument and its length
+ */
+static int
+exsltCryptoPopString (xmlXPathParserContextPtr ctxt, int nargs,
+		      xmlChar ** str) {
+
+    int str_len = 0;
+
+    if ((nargs < 1) || (nargs > 2)) {
+	xmlXPathSetArityError (ctxt);
+	return 0;
+    }
+
+    *str = xmlXPathPopString (ctxt);
+    str_len = xmlUTF8Strlen (*str);
+
+    if (str_len == 0) {
+	xmlXPathReturnEmptyString (ctxt);
+	xmlFree (*str);
+	return 0;
+    }
+
+    return str_len;
+}
+
+/**
+ * exsltCryptoMd4Function:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * computes the md4 hash of a string and returns as hex
+ */
+static void
+exsltCryptoMd4Function (xmlXPathParserContextPtr ctxt, int nargs) {
+
+    int str_len = 0;
+    xmlChar *str = NULL, *ret = NULL;
+    unsigned char hash[HASH_DIGEST_LENGTH];
+    unsigned char hex[MD5_DIGEST_LENGTH * 2 + 1];
+
+    str_len = exsltCryptoPopString (ctxt, nargs, &str);
+    if (str_len == 0) {
+	xmlXPathReturnEmptyString (ctxt);
+	xmlFree (str);
+	return;
+    }
+
+    PLATFORM_HASH (ctxt, PLATFORM_MD4, (const char *) str, str_len,
+		   (char *) hash);
+    exsltCryptoBin2Hex (hash, sizeof (hash) - 1, hex, sizeof (hex) - 1);
+
+    ret = xmlStrdup ((xmlChar *) hex);
+    xmlXPathReturnString (ctxt, ret);
+
+    if (str != NULL)
+	xmlFree (str);
+}
+
+/**
+ * exsltCryptoMd5Function:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * computes the md5 hash of a string and returns as hex
+ */
+static void
+exsltCryptoMd5Function (xmlXPathParserContextPtr ctxt, int nargs) {
+
+    int str_len = 0;
+    xmlChar *str = NULL, *ret = NULL;
+    unsigned char hash[HASH_DIGEST_LENGTH];
+    unsigned char hex[MD5_DIGEST_LENGTH * 2 + 1];
+
+    str_len = exsltCryptoPopString (ctxt, nargs, &str);
+    if (str_len == 0) {
+	xmlXPathReturnEmptyString (ctxt);
+	xmlFree (str);
+	return;
+    }
+
+    PLATFORM_HASH (ctxt, PLATFORM_MD5, (const char *) str, str_len,
+		   (char *) hash);
+    exsltCryptoBin2Hex (hash, sizeof (hash) - 1, hex, sizeof (hex) - 1);
+
+    ret = xmlStrdup ((xmlChar *) hex);
+    xmlXPathReturnString (ctxt, ret);
+
+    if (str != NULL)
+	xmlFree (str);
+}
+
+/**
+ * exsltCryptoSha1Function:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * computes the sha1 hash of a string and returns as hex
+ */
+static void
+exsltCryptoSha1Function (xmlXPathParserContextPtr ctxt, int nargs) {
+
+    int str_len = 0;
+    xmlChar *str = NULL, *ret = NULL;
+    unsigned char hash[HASH_DIGEST_LENGTH];
+    unsigned char hex[SHA1_DIGEST_LENGTH * 2 + 1];
+
+    str_len = exsltCryptoPopString (ctxt, nargs, &str);
+    if (str_len == 0) {
+	xmlXPathReturnEmptyString (ctxt);
+	xmlFree (str);
+	return;
+    }
+
+    PLATFORM_HASH (ctxt, PLATFORM_SHA1, (const char *) str, str_len,
+		   (char *) hash);
+    exsltCryptoBin2Hex (hash, sizeof (hash) - 1, hex, sizeof (hex) - 1);
+
+    ret = xmlStrdup ((xmlChar *) hex);
+    xmlXPathReturnString (ctxt, ret);
+
+    if (str != NULL)
+	xmlFree (str);
+}
+
+/**
+ * exsltCryptoRc4EncryptFunction:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * computes the sha1 hash of a string and returns as hex
+ */
+static void
+exsltCryptoRc4EncryptFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+
+    int key_len = 0, key_size = 0;
+    int str_len = 0, bin_len = 0, hex_len = 0;
+    xmlChar *key = NULL, *str = NULL, *padkey = NULL;
+    xmlChar *bin = NULL, *hex = NULL;
+
+    if ((nargs < 1) || (nargs > 3)) {
+	xmlXPathSetArityError (ctxt);
+	return;
+    }
+
+    str = xmlXPathPopString (ctxt);
+    str_len = xmlUTF8Strlen (str);
+
+    if (str_len == 0) {
+	xmlXPathReturnEmptyString (ctxt);
+	xmlFree (str);
+	return;
+    }
+
+    key = xmlXPathPopString (ctxt);
+    key_len = xmlUTF8Strlen (str);
+
+    if (key_len == 0) {
+	xmlXPathReturnEmptyString (ctxt);
+	xmlFree (key);
+	xmlFree (str);
+	return;
+    }
+
+    padkey = xmlMallocAtomic (RC4_KEY_LENGTH);
+    key_size = xmlUTF8Strsize (key, key_len);
+    memcpy (padkey, key, key_size);
+    memset (padkey + key_size, '\0', sizeof (padkey));
+
+/* encrypt it */
+    bin_len = str_len;
+    bin = xmlStrdup (str);
+    if (bin == NULL) {
+	xmlXPathReturnEmptyString (ctxt);
+	goto done;
+    }
+    PLATFORM_RC4_ENCRYPT (ctxt, padkey, str, str_len, bin, bin_len);
+
+/* encode it */
+    hex_len = str_len * 2 + 1;
+    hex = xmlMallocAtomic (hex_len);
+    if (hex == NULL) {
+	xmlXPathReturnEmptyString (ctxt);
+	goto done;
+    }
+
+    exsltCryptoBin2Hex (bin, str_len, hex, hex_len);
+    xmlXPathReturnString (ctxt, hex);
+
+done:
+    if (key != NULL)
+	xmlFree (key);
+    if (str != NULL)
+	xmlFree (str);
+    if (padkey != NULL)
+	xmlFree (padkey);
+    if (bin != NULL)
+	xmlFree (bin);
+}
+
+/**
+ * exsltCryptoRc4DecryptFunction:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * computes the sha1 hash of a string and returns as hex
+ */
+static void
+exsltCryptoRc4DecryptFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+
+    int key_len = 0, key_size = 0;
+    int str_len = 0, bin_len = 0, ret_len = 0;
+    xmlChar *key = NULL, *str = NULL, *padkey = NULL, *bin =
+	NULL, *ret = NULL;
+
+    if ((nargs < 1) || (nargs > 3)) {
+	xmlXPathSetArityError (ctxt);
+	return;
+    }
+
+    str = xmlXPathPopString (ctxt);
+    str_len = xmlUTF8Strlen (str);
+
+    if (str_len == 0) {
+	xmlXPathReturnEmptyString (ctxt);
+	xmlFree (str);
+	return;
+    }
+
+    key = xmlXPathPopString (ctxt);
+    key_len = xmlUTF8Strlen (str);
+
+    if (key_len == 0) {
+	xmlXPathReturnEmptyString (ctxt);
+	xmlFree (key);
+	xmlFree (str);
+	return;
+    }
+
+    padkey = xmlMallocAtomic (RC4_KEY_LENGTH);
+    key_size = xmlUTF8Strsize (key, key_len);
+    memcpy (padkey, key, key_size);
+    memset (padkey + key_size, '\0', sizeof (padkey));
+
+/* decode hex to binary */
+    bin_len = str_len;
+    bin = xmlMallocAtomic (bin_len);
+    ret_len = exsltCryptoHex2Bin (str, str_len, bin, bin_len);
+
+/* decrypt the binary blob */
+    ret = xmlMallocAtomic (ret_len);
+    PLATFORM_RC4_DECRYPT (ctxt, padkey, bin, ret_len, ret, ret_len);
+
+    xmlXPathReturnString (ctxt, ret);
+
+    if (key != NULL)
+	xmlFree (key);
+    if (str != NULL)
+	xmlFree (str);
+    if (padkey != NULL)
+	xmlFree (padkey);
+    if (bin != NULL)
+	xmlFree (bin);
+}
+
+/**
+ * exsltCryptoRegister:
+ *
+ * Registers the EXSLT - Crypto module
+ */
+
+void
+exsltCryptoRegister (void) {
+    xsltRegisterExtModuleFunction ((const xmlChar *) "md4",
+				   EXSLT_CRYPTO_NAMESPACE,
+				   exsltCryptoMd4Function);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "md5",
+				   EXSLT_CRYPTO_NAMESPACE,
+				   exsltCryptoMd5Function);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "sha1",
+				   EXSLT_CRYPTO_NAMESPACE,
+				   exsltCryptoSha1Function);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "rc4_encrypt",
+				   EXSLT_CRYPTO_NAMESPACE,
+				   exsltCryptoRc4EncryptFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "rc4_decrypt",
+				   EXSLT_CRYPTO_NAMESPACE,
+				   exsltCryptoRc4DecryptFunction);
+}
+
+#else
+void
+exsltCryptoRegister (void) {
+}
+
+#endif /* defined(HAVE_CRYPTO) */
+
+#endif /* EXSLT_CRYPTO_ENABLED */

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/date.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/date.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/date.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3769 @@
+/*
+ * date.c: Implementation of the EXSLT -- Dates and Times module
+ *
+ * References:
+ *   http://www.exslt.org/date/date.html
+ *
+ * See Copyright for the status of this software.
+ *
+ * Authors:
+ *   Charlie Bozeman <cbozeman at HiWAAY.net>
+ *   Thomas Broyer <tbroyer at ltgt.net>
+ *
+ * TODO:
+ * elements:
+ *   date-format
+ * functions:
+ *   format-date
+ *   parse-date
+ *   sum
+ */
+
+#define IN_LIBEXSLT
+#include "libexslt/libexslt.h"
+
+#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#include <win32config.h>
+#else
+#include "config.h"
+#endif
+
+#if HAVE_LOCALTIME_R	/* _POSIX_SOURCE required by gnu libc */
+#define _POSIX_SOURCE
+#endif
+
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+
+#include <libxslt/xsltconfig.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/extensions.h>
+
+#include "exslt.h"
+
+#include <string.h>
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+/* needed to get localtime_r on Solaris */
+#ifdef __sun
+#ifndef __EXTENSIONS__
+#define __EXTENSIONS__
+#endif
+#endif
+
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+
+/*
+ * types of date and/or time (from schema datatypes)
+ *   somewhat ordered from least specific to most specific (i.e.
+ *   most truncated to least truncated).
+ */
+typedef enum {
+    EXSLT_UNKNOWN  =    0,
+    XS_TIME        =    1,       /* time is left-truncated */
+    XS_GDAY        = (XS_TIME   << 1),
+    XS_GMONTH      = (XS_GDAY   << 1),
+    XS_GMONTHDAY   = (XS_GMONTH | XS_GDAY),
+    XS_GYEAR       = (XS_GMONTH << 1),
+    XS_GYEARMONTH  = (XS_GYEAR  | XS_GMONTH),
+    XS_DATE        = (XS_GYEAR  | XS_GMONTH | XS_GDAY),
+    XS_DATETIME    = (XS_DATE   | XS_TIME),
+    XS_DURATION    = (XS_GYEAR  << 1)
+} exsltDateType;
+
+/* Date value */
+typedef struct _exsltDateValDate exsltDateValDate;
+typedef exsltDateValDate *exsltDateValDatePtr;
+struct _exsltDateValDate {
+    long		year;
+    unsigned int	mon	:4;	/* 1 <=  mon    <= 12   */
+    unsigned int	day	:5;	/* 1 <=  day    <= 31   */
+    unsigned int	hour	:5;	/* 0 <=  hour   <= 23   */
+    unsigned int	min	:6;	/* 0 <=  min    <= 59	*/
+    double		sec;
+    unsigned int	tz_flag	:1;	/* is tzo explicitely set? */
+    signed int		tzo	:12;	/* -1440 <= tzo <= 1440
+    					   currently only -840 to +840 are needed */
+};
+
+/* Duration value */
+typedef struct _exsltDateValDuration exsltDateValDuration;
+typedef exsltDateValDuration *exsltDateValDurationPtr;
+struct _exsltDateValDuration {
+    long	        mon;		/* mon stores years also */
+    long        	day;
+    double		sec;            /* sec stores min and hour also */
+};
+
+typedef struct _exsltDateVal exsltDateVal;
+typedef exsltDateVal *exsltDateValPtr;
+struct _exsltDateVal {
+    exsltDateType       type;
+    union {
+        exsltDateValDate        date;
+        exsltDateValDuration    dur;
+    } value;
+};
+
+/****************************************************************
+ *								*
+ *			Compat./Port. macros			*
+ *								*
+ ****************************************************************/
+
+#if defined(HAVE_TIME_H) 					\
+    && (defined(HAVE_LOCALTIME) || defined(HAVE_LOCALTIME_R))	\
+    && (defined(HAVE_GMTIME) || defined(HAVE_GMTIME_R))		\
+    && defined(HAVE_TIME)
+#define WITH_TIME
+#endif
+
+/****************************************************************
+ *								*
+ *		Convenience macros and functions		*
+ *								*
+ ****************************************************************/
+
+#define IS_TZO_CHAR(c)						\
+	((c == 0) || (c == 'Z') || (c == '+') || (c == '-'))
+
+#define VALID_ALWAYS(num)	(num >= 0)
+#define VALID_YEAR(yr)          (yr != 0)
+#define VALID_MONTH(mon)        ((mon >= 1) && (mon <= 12))
+/* VALID_DAY should only be used when month is unknown */
+#define VALID_DAY(day)          ((day >= 1) && (day <= 31))
+#define VALID_HOUR(hr)          ((hr >= 0) && (hr <= 23))
+#define VALID_MIN(min)          ((min >= 0) && (min <= 59))
+#define VALID_SEC(sec)          ((sec >= 0) && (sec < 60))
+#define VALID_TZO(tzo)          ((tzo > -1440) && (tzo < 1440))
+#define IS_LEAP(y)						\
+	(((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
+
+static const unsigned long daysInMonth[12] =
+	{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
+static const unsigned long daysInMonthLeap[12] =
+	{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
+
+#define MAX_DAYINMONTH(yr,mon)                                  \
+        (IS_LEAP(yr) ? daysInMonthLeap[mon - 1] : daysInMonth[mon - 1])
+
+#define VALID_MDAY(dt)						\
+	(IS_LEAP(dt->year) ?				        \
+	    (dt->day <= daysInMonthLeap[dt->mon - 1]) :	        \
+	    (dt->day <= daysInMonth[dt->mon - 1]))
+
+#define VALID_DATE(dt)						\
+	(VALID_YEAR(dt->year) && VALID_MONTH(dt->mon) && VALID_MDAY(dt))
+
+/*
+    hour and min structure vals are unsigned, so normal macros give
+    warnings on some compilers.
+*/
+#define VALID_TIME(dt)						\
+	((dt->hour <=23 ) && (dt->min <= 59) &&			\
+	 VALID_SEC(dt->sec) && VALID_TZO(dt->tzo))
+
+#define VALID_DATETIME(dt)					\
+	(VALID_DATE(dt) && VALID_TIME(dt))
+
+#define SECS_PER_MIN            (60)
+#define SECS_PER_HOUR           (60 * SECS_PER_MIN)
+#define SECS_PER_DAY            (24 * SECS_PER_HOUR)
+
+static const unsigned long dayInYearByMonth[12] =
+	{ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
+static const unsigned long dayInLeapYearByMonth[12] =
+	{ 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 };
+
+#define DAY_IN_YEAR(day, month, year)				\
+        ((IS_LEAP(year) ?					\
+                dayInLeapYearByMonth[month - 1] :		\
+                dayInYearByMonth[month - 1]) + day)
+
+/**
+ * _exsltDateParseGYear:
+ * @dt:  pointer to a date structure
+ * @str: pointer to the string to analyze
+ *
+ * Parses a xs:gYear without time zone and fills in the appropriate
+ * field of the @dt structure. @str is updated to point just after the
+ * xs:gYear. It is supposed that @dt->year is big enough to contain
+ * the year.
+ *
+ * Returns 0 or the error code
+ */
+static int
+_exsltDateParseGYear (exsltDateValDatePtr dt, const xmlChar **str)
+{
+    const xmlChar *cur = *str, *firstChar;
+    int isneg = 0, digcnt = 0;
+
+    if (((*cur < '0') || (*cur > '9')) &&
+	(*cur != '-') && (*cur != '+'))
+	return -1;
+
+    if (*cur == '-') {
+	isneg = 1;
+	cur++;
+    }
+
+    firstChar = cur;
+
+    while ((*cur >= '0') && (*cur <= '9')) {
+	dt->year = dt->year * 10 + (*cur - '0');
+	cur++;
+	digcnt++;
+    }
+
+    /* year must be at least 4 digits (CCYY); over 4
+     * digits cannot have a leading zero. */
+    if ((digcnt < 4) || ((digcnt > 4) && (*firstChar == '0')))
+	return 1;
+
+    if (isneg)
+	dt->year = - dt->year;
+
+    if (!VALID_YEAR(dt->year))
+	return 2;
+
+    *str = cur;
+
+#ifdef DEBUG_EXSLT_DATE
+    xsltGenericDebug(xsltGenericDebugContext,
+		     "Parsed year %04i\n", dt->year);
+#endif
+
+    return 0;
+}
+
+/**
+ * FORMAT_GYEAR:
+ * @yr:  the year to format
+ * @cur: a pointer to an allocated buffer
+ *
+ * Formats @yr in xsl:gYear format. Result is appended to @cur and
+ * @cur is updated to point after the xsl:gYear.
+ */
+#define FORMAT_GYEAR(yr, cur)					\
+	if (yr < 0) {					        \
+	    *cur = '-';						\
+	    cur++;						\
+	}							\
+	{							\
+	    long year = (yr < 0) ? - yr : yr;                   \
+	    xmlChar tmp_buf[100], *tmp = tmp_buf;		\
+	    /* result is in reverse-order */			\
+	    while (year > 0) {					\
+		*tmp = '0' + (xmlChar)(year % 10);		\
+		year /= 10;					\
+		tmp++;						\
+	    }							\
+	    /* virtually adds leading zeros */			\
+	    while ((tmp - tmp_buf) < 4)				\
+		*tmp++ = '0';					\
+	    /* restore the correct order */			\
+	    while (tmp > tmp_buf) {				\
+		tmp--;						\
+		*cur = *tmp;					\
+		cur++;						\
+	    }							\
+	}
+
+/**
+ * PARSE_2_DIGITS:
+ * @num:  the integer to fill in
+ * @cur:  an #xmlChar *
+ * @func: validation function for the number
+ * @invalid: an integer
+ *
+ * Parses a 2-digits integer and updates @num with the value. @cur is
+ * updated to point just after the integer.
+ * In case of error, @invalid is set to %TRUE, values of @num and
+ * @cur are undefined.
+ */
+#define PARSE_2_DIGITS(num, cur, func, invalid)			\
+	if ((cur[0] < '0') || (cur[0] > '9') ||			\
+	    (cur[1] < '0') || (cur[1] > '9'))			\
+	    invalid = 1;					\
+	else {							\
+	    int val;						\
+	    val = (cur[0] - '0') * 10 + (cur[1] - '0');		\
+	    if (!func(val))					\
+	        invalid = 2;					\
+	    else						\
+	        num = val;					\
+	}							\
+	cur += 2;
+
+/**
+ * FORMAT_2_DIGITS:
+ * @num:  the integer to format
+ * @cur: a pointer to an allocated buffer
+ *
+ * Formats a 2-digits integer. Result is appended to @cur and
+ * @cur is updated to point after the integer.
+ */
+#define FORMAT_2_DIGITS(num, cur)				\
+	*cur = '0' + ((num / 10) % 10);				\
+	cur++;							\
+	*cur = '0' + (num % 10);				\
+	cur++;
+
+/**
+ * PARSE_FLOAT:
+ * @num:  the double to fill in
+ * @cur:  an #xmlChar *
+ * @invalid: an integer
+ *
+ * Parses a float and updates @num with the value. @cur is
+ * updated to point just after the float. The float must have a
+ * 2-digits integer part and may or may not have a decimal part.
+ * In case of error, @invalid is set to %TRUE, values of @num and
+ * @cur are undefined.
+ */
+#define PARSE_FLOAT(num, cur, invalid)				\
+	PARSE_2_DIGITS(num, cur, VALID_ALWAYS, invalid);	\
+	if (!invalid && (*cur == '.')) {			\
+	    double mult = 1;				        \
+	    cur++;						\
+	    if ((*cur < '0') || (*cur > '9'))			\
+		invalid = 1;					\
+	    while ((*cur >= '0') && (*cur <= '9')) {		\
+		mult /= 10;					\
+		num += (*cur - '0') * mult;			\
+		cur++;						\
+	    }							\
+	}
+
+/**
+ * FORMAT_FLOAT:
+ * @num:  the double to format
+ * @cur: a pointer to an allocated buffer
+ * @pad: a flag for padding to 2 integer digits
+ *
+ * Formats a float. Result is appended to @cur and @cur is updated to
+ * point after the integer. If the @pad flag is non-zero, then the
+ * float representation has a minimum 2-digits integer part. The
+ * fractional part is formatted if @num has a fractional value.
+ */
+#define FORMAT_FLOAT(num, cur, pad)				\
+	{							\
+            xmlChar *sav, *str;                                 \
+            if ((pad) && (num < 10.0))                          \
+                *cur++ = '0';                                   \
+            str = xmlXPathCastNumberToString(num);              \
+            sav = str;                                          \
+            while (*str != 0)                                   \
+                *cur++ = *str++;                                \
+            xmlFree(sav);                                       \
+	}
+
+/**
+ * _exsltDateParseGMonth:
+ * @dt:  pointer to a date structure
+ * @str: pointer to the string to analyze
+ *
+ * Parses a xs:gMonth without time zone and fills in the appropriate
+ * field of the @dt structure. @str is updated to point just after the
+ * xs:gMonth.
+ *
+ * Returns 0 or the error code
+ */
+static int
+_exsltDateParseGMonth (exsltDateValDatePtr dt, const xmlChar **str)
+{
+    const xmlChar *cur = *str;
+    int ret = 0;
+
+    PARSE_2_DIGITS(dt->mon, cur, VALID_MONTH, ret);
+    if (ret != 0)
+	return ret;
+
+    *str = cur;
+
+#ifdef DEBUG_EXSLT_DATE
+    xsltGenericDebug(xsltGenericDebugContext,
+		     "Parsed month %02i\n", dt->mon);
+#endif
+
+    return 0;
+}
+
+/**
+ * FORMAT_GMONTH:
+ * @mon:  the month to format
+ * @cur: a pointer to an allocated buffer
+ *
+ * Formats @mon in xsl:gMonth format. Result is appended to @cur and
+ * @cur is updated to point after the xsl:gMonth.
+ */
+#define FORMAT_GMONTH(mon, cur)					\
+	FORMAT_2_DIGITS(mon, cur)
+
+/**
+ * _exsltDateParseGDay:
+ * @dt:  pointer to a date structure
+ * @str: pointer to the string to analyze
+ *
+ * Parses a xs:gDay without time zone and fills in the appropriate
+ * field of the @dt structure. @str is updated to point just after the
+ * xs:gDay.
+ *
+ * Returns 0 or the error code
+ */
+static int
+_exsltDateParseGDay (exsltDateValDatePtr dt, const xmlChar **str)
+{
+    const xmlChar *cur = *str;
+    int ret = 0;
+
+    PARSE_2_DIGITS(dt->day, cur, VALID_DAY, ret);
+    if (ret != 0)
+	return ret;
+
+    *str = cur;
+
+#ifdef DEBUG_EXSLT_DATE
+    xsltGenericDebug(xsltGenericDebugContext,
+		     "Parsed day %02i\n", dt->day);
+#endif
+
+    return 0;
+}
+
+/**
+ * FORMAT_GDAY:
+ * @dt:  the #exsltDateValDate to format
+ * @cur: a pointer to an allocated buffer
+ *
+ * Formats @dt in xsl:gDay format. Result is appended to @cur and
+ * @cur is updated to point after the xsl:gDay.
+ */
+#define FORMAT_GDAY(dt, cur)					\
+	FORMAT_2_DIGITS(dt->day, cur)
+
+/**
+ * FORMAT_DATE:
+ * @dt:  the #exsltDateValDate to format
+ * @cur: a pointer to an allocated buffer
+ *
+ * Formats @dt in xsl:date format. Result is appended to @cur and
+ * @cur is updated to point after the xsl:date.
+ */
+#define FORMAT_DATE(dt, cur)					\
+	FORMAT_GYEAR(dt->year, cur);				\
+	*cur = '-';						\
+	cur++;							\
+	FORMAT_GMONTH(dt->mon, cur);				\
+	*cur = '-';						\
+	cur++;							\
+	FORMAT_GDAY(dt, cur);
+
+/**
+ * _exsltDateParseTime:
+ * @dt:  pointer to a date structure
+ * @str: pointer to the string to analyze
+ *
+ * Parses a xs:time without time zone and fills in the appropriate
+ * fields of the @dt structure. @str is updated to point just after the
+ * xs:time.
+ * In case of error, values of @dt fields are undefined.
+ *
+ * Returns 0 or the error code
+ */
+static int
+_exsltDateParseTime (exsltDateValDatePtr dt, const xmlChar **str)
+{
+    const xmlChar *cur = *str;
+    unsigned int hour = 0; /* use temp var in case str is not xs:time */
+    int ret = 0;
+
+    PARSE_2_DIGITS(hour, cur, VALID_HOUR, ret);
+    if (ret != 0)
+	return ret;
+
+    if (*cur != ':')
+	return 1;
+    cur++;
+
+    /* the ':' insures this string is xs:time */
+    dt->hour = hour;
+
+    PARSE_2_DIGITS(dt->min, cur, VALID_MIN, ret);
+    if (ret != 0)
+	return ret;
+
+    if (*cur != ':')
+	return 1;
+    cur++;
+
+    PARSE_FLOAT(dt->sec, cur, ret);
+    if (ret != 0)
+	return ret;
+
+    if (!VALID_TIME(dt))
+	return 2;
+
+    *str = cur;
+
+#ifdef DEBUG_EXSLT_DATE
+    xsltGenericDebug(xsltGenericDebugContext,
+		     "Parsed time %02i:%02i:%02.f\n",
+		     dt->hour, dt->min, dt->sec);
+#endif
+
+    return 0;
+}
+
+/**
+ * FORMAT_TIME:
+ * @dt:  the #exsltDateValDate to format
+ * @cur: a pointer to an allocated buffer
+ *
+ * Formats @dt in xsl:time format. Result is appended to @cur and
+ * @cur is updated to point after the xsl:time.
+ */
+#define FORMAT_TIME(dt, cur)					\
+	FORMAT_2_DIGITS(dt->hour, cur);				\
+	*cur = ':';						\
+	cur++;							\
+	FORMAT_2_DIGITS(dt->min, cur);				\
+	*cur = ':';						\
+	cur++;							\
+	FORMAT_FLOAT(dt->sec, cur, 1);
+
+/**
+ * _exsltDateParseTimeZone:
+ * @dt:  pointer to a date structure
+ * @str: pointer to the string to analyze
+ *
+ * Parses a time zone without time zone and fills in the appropriate
+ * field of the @dt structure. @str is updated to point just after the
+ * time zone.
+ *
+ * Returns 0 or the error code
+ */
+static int
+_exsltDateParseTimeZone (exsltDateValDatePtr dt, const xmlChar **str)
+{
+    const xmlChar *cur;
+    int ret = 0;
+
+    if (str == NULL)
+	return -1;
+    cur = *str;
+    switch (*cur) {
+    case 0:
+	dt->tz_flag = 0;
+	dt->tzo = 0;
+	break;
+
+    case 'Z':
+	dt->tz_flag = 1;
+	dt->tzo = 0;
+	cur++;
+	break;
+
+    case '+':
+    case '-': {
+	int isneg = 0, tmp = 0;
+	isneg = (*cur == '-');
+
+	cur++;
+
+	PARSE_2_DIGITS(tmp, cur, VALID_HOUR, ret);
+	if (ret != 0)
+	    return ret;
+
+	if (*cur != ':')
+	    return 1;
+	cur++;
+
+	dt->tzo = tmp * 60;
+
+	PARSE_2_DIGITS(tmp, cur, VALID_MIN, ret);
+	if (ret != 0)
+	    return ret;
+
+	dt->tzo += tmp;
+	if (isneg)
+	    dt->tzo = - dt->tzo;
+
+	if (!VALID_TZO(dt->tzo))
+	    return 2;
+
+	break;
+      }
+    default:
+	return 1;
+    }
+
+    *str = cur;
+
+#ifdef DEBUG_EXSLT_DATE
+    xsltGenericDebug(xsltGenericDebugContext,
+		     "Parsed time zone offset (%s) %i\n",
+		     dt->tz_flag ? "explicit" : "implicit", dt->tzo);
+#endif
+
+    return 0;
+}
+
+/**
+ * FORMAT_TZ:
+ * @tzo:  the timezone offset to format
+ * @cur: a pointer to an allocated buffer
+ *
+ * Formats @tzo timezone. Result is appended to @cur and
+ * @cur is updated to point after the timezone.
+ */
+#define FORMAT_TZ(tzo, cur)					\
+	if (tzo == 0) {					        \
+	    *cur = 'Z';						\
+	    cur++;						\
+	} else {						\
+	    int aTzo = (tzo < 0) ? - tzo : tzo;                 \
+	    int tzHh = aTzo / 60, tzMm = aTzo % 60;		\
+	    *cur = (tzo < 0) ? '-' : '+' ;			\
+	    cur++;						\
+	    FORMAT_2_DIGITS(tzHh, cur);				\
+	    *cur = ':';						\
+	    cur++;						\
+	    FORMAT_2_DIGITS(tzMm, cur);				\
+	}
+
+/****************************************************************
+ *								*
+ *	XML Schema Dates/Times Datatypes Handling		*
+ *								*
+ ****************************************************************/
+
+/**
+ * exsltDateCreateDate:
+ * @type:       type to create
+ *
+ * Creates a new #exsltDateVal, uninitialized.
+ *
+ * Returns the #exsltDateValPtr
+ */
+static exsltDateValPtr
+exsltDateCreateDate (exsltDateType type)
+{
+    exsltDateValPtr ret;
+
+    ret = (exsltDateValPtr) xmlMalloc(sizeof(exsltDateVal));
+    if (ret == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "exsltDateCreateDate: out of memory\n");
+	return (NULL);
+    }
+    memset (ret, 0, sizeof(exsltDateVal));
+
+    if (type != EXSLT_UNKNOWN)
+        ret->type = type;
+
+    return ret;
+}
+
+/**
+ * exsltDateFreeDate:
+ * @date: an #exsltDateValPtr
+ *
+ * Frees up the @date
+ */
+static void
+exsltDateFreeDate (exsltDateValPtr date) {
+    if (date == NULL)
+	return;
+
+    xmlFree(date);
+}
+
+/**
+ * PARSE_DIGITS:
+ * @num:  the integer to fill in
+ * @cur:  an #xmlChar *
+ * @num_type: an integer flag
+ *
+ * Parses a digits integer and updates @num with the value. @cur is
+ * updated to point just after the integer.
+ * In case of error, @num_type is set to -1, values of @num and
+ * @cur are undefined.
+ */
+#define PARSE_DIGITS(num, cur, num_type)	                \
+	if ((*cur < '0') || (*cur > '9'))			\
+	    num_type = -1;					\
+        else                                                    \
+	    while ((*cur >= '0') && (*cur <= '9')) {		\
+	        num = num * 10 + (*cur - '0');		        \
+	        cur++;                                          \
+            }
+
+/**
+ * PARSE_NUM:
+ * @num:  the double to fill in
+ * @cur:  an #xmlChar *
+ * @num_type: an integer flag
+ *
+ * Parses a float or integer and updates @num with the value. @cur is
+ * updated to point just after the number. If the number is a float,
+ * then it must have an integer part and a decimal part; @num_type will
+ * be set to 1. If there is no decimal part, @num_type is set to zero.
+ * In case of error, @num_type is set to -1, values of @num and
+ * @cur are undefined.
+ */
+#define PARSE_NUM(num, cur, num_type)				\
+        num = 0;                                                \
+	PARSE_DIGITS(num, cur, num_type);	                \
+	if (!num_type && (*cur == '.')) {			\
+	    double mult = 1;				        \
+	    cur++;						\
+	    if ((*cur < '0') || (*cur > '9'))			\
+		num_type = -1;					\
+            else                                                \
+                num_type = 1;                                   \
+	    while ((*cur >= '0') && (*cur <= '9')) {		\
+		mult /= 10;					\
+		num += (*cur - '0') * mult;			\
+		cur++;						\
+	    }							\
+	}
+
+#ifdef WITH_TIME
+/**
+ * exsltDateCurrent:
+ *
+ * Returns the current date and time.
+ */
+static exsltDateValPtr
+exsltDateCurrent (void)
+{
+    struct tm *localTm, *gmTm;
+    time_t secs;
+#if HAVE_LOCALTIME_R
+    struct tm localTmS;
+#endif
+#if HAVE_GMTIME_R
+    struct tm gmTmS;
+#endif
+    exsltDateValPtr ret;
+
+    ret = exsltDateCreateDate(XS_DATETIME);
+    if (ret == NULL)
+        return NULL;
+
+    /* get current time */
+    secs    = time(NULL);
+#if HAVE_LOCALTIME_R
+    localtime_r(&secs, &localTmS);
+    localTm = &localTmS;
+#else
+    localTm = localtime(&secs);
+#endif
+
+    /* get real year, not years since 1900 */
+    ret->value.date.year = localTm->tm_year + 1900;
+
+    ret->value.date.mon  = localTm->tm_mon + 1;
+    ret->value.date.day  = localTm->tm_mday;
+    ret->value.date.hour = localTm->tm_hour;
+    ret->value.date.min  = localTm->tm_min;
+
+    /* floating point seconds */
+    ret->value.date.sec  = (double) localTm->tm_sec;
+
+    /* determine the time zone offset from local to gm time */
+#if HAVE_GMTIME_R
+    gmtime_r(&secs, &gmTmS);
+    gmTm = &gmTmS;
+#else
+    gmTm = gmtime(&secs);
+#endif
+    ret->value.date.tz_flag = 0;
+    ret->value.date.tzo = (((ret->value.date.day * 1440) +
+                            (ret->value.date.hour * 60) +
+                             ret->value.date.min) -
+                           ((gmTm->tm_mday * 1440) + (gmTm->tm_hour * 60) +
+                             gmTm->tm_min));
+
+    return ret;
+}
+#endif
+
+/**
+ * exsltDateParse:
+ * @dateTime:  string to analyze
+ *
+ * Parses a date/time string
+ *
+ * Returns a newly built #exsltDateValPtr of NULL in case of error
+ */
+static exsltDateValPtr
+exsltDateParse (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    int ret;
+    const xmlChar *cur = dateTime;
+
+#define RETURN_TYPE_IF_VALID(t)					\
+    if (IS_TZO_CHAR(*cur)) {					\
+	ret = _exsltDateParseTimeZone(&(dt->value.date), &cur);	\
+	if (ret == 0) {						\
+	    if (*cur != 0)					\
+		goto error;					\
+	    dt->type = t;					\
+	    return dt;						\
+	}							\
+    }
+
+    if (dateTime == NULL)
+	return NULL;
+
+    if ((*cur != '-') && (*cur < '0') && (*cur > '9'))
+	return NULL;
+
+    dt = exsltDateCreateDate(EXSLT_UNKNOWN);
+    if (dt == NULL)
+	return NULL;
+
+    if ((cur[0] == '-') && (cur[1] == '-')) {
+	/*
+	 * It's an incomplete date (xs:gMonthDay, xs:gMonth or
+	 * xs:gDay)
+	 */
+	cur += 2;
+
+	/* is it an xs:gDay? */
+	if (*cur == '-') {
+	  ++cur;
+	    ret = _exsltDateParseGDay(&(dt->value.date), &cur);
+	    if (ret != 0)
+		goto error;
+
+	    RETURN_TYPE_IF_VALID(XS_GDAY);
+
+	    goto error;
+	}
+
+	/*
+	 * it should be an xs:gMonthDay or xs:gMonth
+	 */
+	ret = _exsltDateParseGMonth(&(dt->value.date), &cur);
+	if (ret != 0)
+	    goto error;
+
+	if (*cur != '-')
+	    goto error;
+	cur++;
+
+	/* is it an xs:gMonth? */
+	if (*cur == '-') {
+	    cur++;
+	    RETURN_TYPE_IF_VALID(XS_GMONTH);
+	    goto error;
+	}
+
+	/* it should be an xs:gMonthDay */
+	ret = _exsltDateParseGDay(&(dt->value.date), &cur);
+	if (ret != 0)
+	    goto error;
+
+	RETURN_TYPE_IF_VALID(XS_GMONTHDAY);
+
+	goto error;
+    }
+
+    /*
+     * It's a right-truncated date or an xs:time.
+     * Try to parse an xs:time then fallback on right-truncated dates.
+     */
+    if ((*cur >= '0') && (*cur <= '9')) {
+	ret = _exsltDateParseTime(&(dt->value.date), &cur);
+	if (ret == 0) {
+	    /* it's an xs:time */
+	    RETURN_TYPE_IF_VALID(XS_TIME);
+	}
+    }
+
+    /* fallback on date parsing */
+    cur = dateTime;
+
+    ret = _exsltDateParseGYear(&(dt->value.date), &cur);
+    if (ret != 0)
+	goto error;
+
+    /* is it an xs:gYear? */
+    RETURN_TYPE_IF_VALID(XS_GYEAR);
+
+    if (*cur != '-')
+	goto error;
+    cur++;
+
+    ret = _exsltDateParseGMonth(&(dt->value.date), &cur);
+    if (ret != 0)
+	goto error;
+
+    /* is it an xs:gYearMonth? */
+    RETURN_TYPE_IF_VALID(XS_GYEARMONTH);
+
+    if (*cur != '-')
+	goto error;
+    cur++;
+
+    ret = _exsltDateParseGDay(&(dt->value.date), &cur);
+    if ((ret != 0) || !VALID_DATE((&(dt->value.date))))
+	goto error;
+
+    /* is it an xs:date? */
+    RETURN_TYPE_IF_VALID(XS_DATE);
+
+    if (*cur != 'T')
+	goto error;
+    cur++;
+
+    /* it should be an xs:dateTime */
+    ret = _exsltDateParseTime(&(dt->value.date), &cur);
+    if (ret != 0)
+	goto error;
+
+    ret = _exsltDateParseTimeZone(&(dt->value.date), &cur);
+    if ((ret != 0) || (*cur != 0) || !VALID_DATETIME((&(dt->value.date))))
+	goto error;
+
+    dt->type = XS_DATETIME;
+
+    return dt;
+
+error:
+    if (dt != NULL)
+	exsltDateFreeDate(dt);
+    return NULL;
+}
+
+/**
+ * exsltDateParseDuration:
+ * @duration:  string to analyze
+ *
+ * Parses a duration string
+ *
+ * Returns a newly built #exsltDateValPtr of NULL in case of error
+ */
+static exsltDateValPtr
+exsltDateParseDuration (const xmlChar *duration)
+{
+    const xmlChar  *cur = duration;
+    exsltDateValPtr dur;
+    int isneg = 0;
+    unsigned int seq = 0;
+
+    if (duration == NULL)
+	return NULL;
+
+    if (*cur == '-') {
+        isneg = 1;
+        cur++;
+    }
+
+    /* duration must start with 'P' (after sign) */
+    if (*cur++ != 'P')
+	return NULL;
+
+    dur = exsltDateCreateDate(XS_DURATION);
+    if (dur == NULL)
+	return NULL;
+
+    while (*cur != 0) {
+        double         num;
+        int            num_type = 0;  /* -1 = invalid, 0 = int, 1 = floating */
+        const xmlChar  desig[] = {'Y', 'M', 'D', 'H', 'M', 'S'};
+        const double   multi[] = { 0.0, 0.0, 86400.0, 3600.0, 60.0, 1.0, 0.0};
+
+        /* input string should be empty or invalid date/time item */
+        if (seq >= sizeof(desig))
+            goto error;
+
+        /* T designator must be present for time items */
+        if (*cur == 'T') {
+            if (seq <= 3) {
+                seq = 3;
+                cur++;
+            } else
+                return NULL;
+        } else if (seq == 3)
+            goto error;
+
+        /* parse the number portion of the item */
+        PARSE_NUM(num, cur, num_type);
+
+        if ((num_type == -1) || (*cur == 0))
+            goto error;
+
+        /* update duration based on item type */
+        while (seq < sizeof(desig)) {
+            if (*cur == desig[seq]) {
+
+                /* verify numeric type; only seconds can be float */
+                if ((num_type != 0) && (seq < (sizeof(desig)-1)))
+                    goto error;
+
+                switch (seq) {
+                    case 0:
+                        dur->value.dur.mon = (long)num * 12;
+                        break;
+                    case 1:
+                        dur->value.dur.mon += (long)num;
+                        break;
+                    default:
+                        /* convert to seconds using multiplier */
+                        dur->value.dur.sec += num * multi[seq];
+                        seq++;
+                        break;
+                }
+
+                break;          /* exit loop */
+            }
+            /* no date designators found? */
+            if (++seq == 3)
+                goto error;
+        }
+        cur++;
+    }
+
+    if (isneg) {
+        dur->value.dur.mon = -dur->value.dur.mon;
+        dur->value.dur.day = -dur->value.dur.day;
+        dur->value.dur.sec = -dur->value.dur.sec;
+    }
+
+#ifdef DEBUG_EXSLT_DATE
+    xsltGenericDebug(xsltGenericDebugContext,
+		     "Parsed duration %f\n", dur->value.dur.sec);
+#endif
+
+    return dur;
+
+error:
+    if (dur != NULL)
+	exsltDateFreeDate(dur);
+    return NULL;
+}
+
+/**
+ * FORMAT_ITEM:
+ * @num:        number to format
+ * @cur:        current location to convert number
+ * @limit:      max value
+ * @item:       char designator
+ *
+ */
+#define FORMAT_ITEM(num, cur, limit, item)                      \
+        if (num != 0) {                                         \
+            long comp = (long)num / limit;                      \
+            if (comp != 0) {                                    \
+                FORMAT_FLOAT((double)comp, cur, 0);             \
+                *cur++ = item;                                  \
+                num -= (double)(comp * limit);                  \
+            }                                                   \
+        }
+
+/**
+ * exsltDateFormatDuration:
+ * @dt: an #exsltDateValDurationPtr
+ *
+ * Formats @dt in xs:duration format.
+ *
+ * Returns a newly allocated string, or NULL in case of error
+ */
+static xmlChar *
+exsltDateFormatDuration (const exsltDateValDurationPtr dt)
+{
+    xmlChar buf[100], *cur = buf;
+    double secs, days;
+    double years, months;
+
+    if (dt == NULL)
+	return NULL;
+
+    /* quick and dirty check */
+    if ((dt->sec == 0.0) && (dt->day == 0) && (dt->mon == 0)) 
+        return xmlStrdup((xmlChar*)"P0D");
+        
+    secs   = dt->sec;
+    days   = (double)dt->day;
+    years  = (double)(dt->mon / 12);
+    months = (double)(dt->mon % 12);
+
+    *cur = '\0';
+    if (secs < 0.0) {
+        secs = -secs;
+        *cur = '-';
+    } 
+    if (days < 0) {
+        days = -days;
+        *cur = '-';
+    } 
+    if (years < 0) {
+        years = -years;
+        *cur = '-';
+    } 
+    if (months < 0) {
+        months = -months;
+        *cur = '-';
+    }
+    if (*cur == '-')
+	cur++;
+
+    *cur++ = 'P';
+
+    if (years != 0.0) {
+        FORMAT_ITEM(years, cur, 1, 'Y');
+    }
+
+    if (months != 0.0) {
+        FORMAT_ITEM(months, cur, 1, 'M');
+    }
+
+    if (secs >= SECS_PER_DAY) {
+        double tmp = floor(secs / SECS_PER_DAY);
+        days += tmp;
+        secs -= (tmp * SECS_PER_DAY);
+    }
+
+    FORMAT_ITEM(days, cur, 1, 'D');
+    if (secs > 0.0) {
+        *cur++ = 'T';
+    }
+    FORMAT_ITEM(secs, cur, SECS_PER_HOUR, 'H');
+    FORMAT_ITEM(secs, cur, SECS_PER_MIN, 'M');
+    if (secs > 0.0) {
+        FORMAT_FLOAT(secs, cur, 0);
+        *cur++ = 'S';
+    }
+
+    *cur = 0;
+
+    return xmlStrdup(buf);
+}
+
+/**
+ * exsltDateFormatDateTime:
+ * @dt: an #exsltDateValDatePtr
+ *
+ * Formats @dt in xs:dateTime format.
+ *
+ * Returns a newly allocated string, or NULL in case of error
+ */
+static xmlChar *
+exsltDateFormatDateTime (const exsltDateValDatePtr dt)
+{
+    xmlChar buf[100], *cur = buf;
+
+    if ((dt == NULL) ||	!VALID_DATETIME(dt))
+	return NULL;
+
+    FORMAT_DATE(dt, cur);
+    *cur = 'T';
+    cur++;
+    FORMAT_TIME(dt, cur);
+    FORMAT_TZ(dt->tzo, cur);
+    *cur = 0;
+
+    return xmlStrdup(buf);
+}
+
+/**
+ * exsltDateFormatDate:
+ * @dt: an #exsltDateValDatePtr
+ *
+ * Formats @dt in xs:date format.
+ *
+ * Returns a newly allocated string, or NULL in case of error
+ */
+static xmlChar *
+exsltDateFormatDate (const exsltDateValDatePtr dt)
+{
+    xmlChar buf[100], *cur = buf;
+
+    if ((dt == NULL) || !VALID_DATETIME(dt))
+	return NULL;
+
+    FORMAT_DATE(dt, cur);
+    if (dt->tz_flag || (dt->tzo != 0)) {
+	FORMAT_TZ(dt->tzo, cur);
+    }
+    *cur = 0;
+
+    return xmlStrdup(buf);
+}
+
+/**
+ * exsltDateFormatTime:
+ * @dt: an #exsltDateValDatePtr
+ *
+ * Formats @dt in xs:time format.
+ *
+ * Returns a newly allocated string, or NULL in case of error
+ */
+static xmlChar *
+exsltDateFormatTime (const exsltDateValDatePtr dt)
+{
+    xmlChar buf[100], *cur = buf;
+
+    if ((dt == NULL) || !VALID_TIME(dt))
+	return NULL;
+
+    FORMAT_TIME(dt, cur);
+    if (dt->tz_flag || (dt->tzo != 0)) {
+	FORMAT_TZ(dt->tzo, cur);
+    }
+    *cur = 0;
+
+    return xmlStrdup(buf);
+}
+
+/**
+ * exsltDateFormat:
+ * @dt: an #exsltDateValPtr
+ *
+ * Formats @dt in the proper format.
+ * Note: xs:gmonth and xs:gday are not formatted as there are no
+ * routines that output them.
+ *
+ * Returns a newly allocated string, or NULL in case of error
+ */
+static xmlChar *
+exsltDateFormat (const exsltDateValPtr dt)
+{
+
+    if (dt == NULL)
+	return NULL;
+
+    switch (dt->type) {
+    case XS_DURATION:
+        return exsltDateFormatDuration(&(dt->value.dur));
+    case XS_DATETIME:
+        return exsltDateFormatDateTime(&(dt->value.date));
+    case XS_DATE:
+        return exsltDateFormatDate(&(dt->value.date));
+    case XS_TIME:
+        return exsltDateFormatTime(&(dt->value.date));
+    default:
+        break;
+    }
+
+    if (dt->type & XS_GYEAR) {
+        xmlChar buf[20], *cur = buf;
+
+        FORMAT_GYEAR(dt->value.date.year, cur);
+        if (dt->type == XS_GYEARMONTH) {
+	    *cur = '-';
+	    cur++;
+	    FORMAT_GMONTH(dt->value.date.mon, cur);
+        }
+
+        if (dt->value.date.tz_flag || (dt->value.date.tzo != 0)) {
+	    FORMAT_TZ(dt->value.date.tzo, cur);
+        }
+        *cur = 0;
+        return xmlStrdup(buf);
+    }
+
+    return NULL;
+}
+
+/**
+ * _exsltDateCastYMToDays:
+ * @dt: an #exsltDateValPtr
+ *
+ * Convert mon and year of @dt to total number of days. Take the 
+ * number of years since (or before) 1 AD and add the number of leap
+ * years. This is a function  because negative
+ * years must be handled a little differently and there is no zero year.
+ *
+ * Returns number of days.
+ */
+static long
+_exsltDateCastYMToDays (const exsltDateValPtr dt)
+{
+    long ret;
+
+    if (dt->value.date.year < 0)
+        ret = (dt->value.date.year * 365) +
+              (((dt->value.date.year+1)/4)-((dt->value.date.year+1)/100)+
+               ((dt->value.date.year+1)/400)) +
+              DAY_IN_YEAR(0, dt->value.date.mon, dt->value.date.year);
+    else
+        ret = ((dt->value.date.year-1) * 365) +
+              (((dt->value.date.year-1)/4)-((dt->value.date.year-1)/100)+
+               ((dt->value.date.year-1)/400)) +
+              DAY_IN_YEAR(0, dt->value.date.mon, dt->value.date.year);
+
+    return ret;
+}
+
+/**
+ * TIME_TO_NUMBER:
+ * @dt:  an #exsltDateValPtr
+ *
+ * Calculates the number of seconds in the time portion of @dt.
+ *
+ * Returns seconds.
+ */
+#define TIME_TO_NUMBER(dt)                              \
+    ((double)((dt->value.date.hour * SECS_PER_HOUR) +   \
+              (dt->value.date.min * SECS_PER_MIN)) + dt->value.date.sec)
+
+/**
+ * exsltDateCastDateToNumber:
+ * @dt:  an #exsltDateValPtr
+ *
+ * Calculates the number of seconds from year zero.
+ *
+ * Returns seconds from zero year.
+ */
+static double
+exsltDateCastDateToNumber (const exsltDateValPtr dt)
+{
+    double ret = 0.0;
+
+    if (dt == NULL)
+        return 0.0;
+
+    if ((dt->type & XS_GYEAR) == XS_GYEAR) {
+        ret = (double)_exsltDateCastYMToDays(dt) * SECS_PER_DAY;
+    }
+
+    /* add in days */
+    if (dt->type == XS_DURATION) {
+        ret += (double)dt->value.dur.day * SECS_PER_DAY;
+        ret += dt->value.dur.sec;
+    } else {
+        ret += (double)dt->value.date.day * SECS_PER_DAY;
+        /* add in time */
+        ret += TIME_TO_NUMBER(dt);
+    }
+
+
+    return ret;
+}
+
+/**
+ * _exsltDateTruncateDate:
+ * @dt: an #exsltDateValPtr
+ * @type: dateTime type to set to
+ *
+ * Set @dt to truncated @type.
+ *
+ * Returns 0 success, non-zero otherwise.
+ */
+static int
+_exsltDateTruncateDate (exsltDateValPtr dt, exsltDateType type)
+{
+    if (dt == NULL)
+        return 1;
+
+    if ((type & XS_TIME) != XS_TIME) {
+        dt->value.date.hour = 0;
+        dt->value.date.min  = 0;
+        dt->value.date.sec  = 0.0;
+    }
+
+    if ((type & XS_GDAY) != XS_GDAY)
+        dt->value.date.day = 0;
+
+    if ((type & XS_GMONTH) != XS_GMONTH)
+        dt->value.date.mon = 0;
+
+    if ((type & XS_GYEAR) != XS_GYEAR)
+        dt->value.date.year = 0;
+
+    dt->type = type;
+
+    return 0;
+}
+
+/**
+ * _exsltDayInWeek:
+ * @yday: year day (1-366)
+ * @yr: year
+ *
+ * Determine the day-in-week from @yday and @yr. 0001-01-01 was
+ * a Monday so all other days are calculated from there. Take the 
+ * number of years since (or before) add the number of leap years and
+ * the day-in-year and mod by 7. This is a function  because negative
+ * years must be handled a little differently and there is no zero year.
+ *
+ * Returns day in week (Sunday = 0).
+ */
+static long
+_exsltDateDayInWeek(long yday, long yr)
+{
+    long ret;
+
+    if (yr < 0) {
+        ret = ((yr + (((yr+1)/4)-((yr+1)/100)+((yr+1)/400)) + yday) % 7);
+        if (ret < 0) 
+            ret += 7;
+    } else
+        ret = (((yr-1) + (((yr-1)/4)-((yr-1)/100)+((yr-1)/400)) + yday) % 7);
+
+    return ret;
+}
+
+/*
+ * macros for adding date/times and durations
+ */
+#define FQUOTIENT(a,b)                  ((floor(((double)a/(double)b))))
+#define MODULO(a,b)                     ((a - FQUOTIENT(a,b) * b))
+#define FQUOTIENT_RANGE(a,low,high)     (FQUOTIENT((a-low),(high-low)))
+#define MODULO_RANGE(a,low,high)        ((MODULO((a-low),(high-low)))+low)
+
+/**
+ * _exsltDateAdd:
+ * @dt: an #exsltDateValPtr
+ * @dur: an #exsltDateValPtr of type #XS_DURATION
+ *
+ * Compute a new date/time from @dt and @dur. This function assumes @dt
+ * is either #XS_DATETIME, #XS_DATE, #XS_GYEARMONTH, or #XS_GYEAR.
+ *
+ * Returns date/time pointer or NULL.
+ */
+static exsltDateValPtr
+_exsltDateAdd (exsltDateValPtr dt, exsltDateValPtr dur)
+{
+    exsltDateValPtr ret;
+    long carry, tempdays, temp;
+    exsltDateValDatePtr r, d;
+    exsltDateValDurationPtr u;
+
+    if ((dt == NULL) || (dur == NULL))
+        return NULL;
+
+    ret = exsltDateCreateDate(dt->type);
+    if (ret == NULL)
+        return NULL;
+
+    r = &(ret->value.date);
+    d = &(dt->value.date);
+    u = &(dur->value.dur);
+
+    /* normalization */
+    if (d->mon == 0)
+        d->mon = 1;
+
+    /* normalize for time zone offset */
+    u->sec -= (d->tzo * 60);	/* changed from + to - (bug 153000) */
+    d->tzo = 0;
+
+    /* normalization */
+    if (d->day == 0)
+        d->day = 1;
+
+    /* month */
+    carry  = d->mon + u->mon;
+    r->mon = (unsigned int)MODULO_RANGE(carry, 1, 13);
+    carry  = (long)FQUOTIENT_RANGE(carry, 1, 13);
+
+    /* year (may be modified later) */
+    r->year = d->year + carry;
+    if (r->year == 0) {
+        if (d->year > 0)
+            r->year--;
+        else
+            r->year++;
+    }
+
+    /* time zone */
+    r->tzo     = d->tzo;
+    r->tz_flag = d->tz_flag;
+
+    /* seconds */
+    r->sec = d->sec + u->sec;
+    carry  = (long)FQUOTIENT((long)r->sec, 60);
+    if (r->sec != 0.0) {
+        r->sec = MODULO(r->sec, 60.0);
+    }
+
+    /* minute */
+    carry += d->min;
+    r->min = (unsigned int)MODULO(carry, 60);
+    carry  = (long)FQUOTIENT(carry, 60);
+
+    /* hours */
+    carry  += d->hour;
+    r->hour = (unsigned int)MODULO(carry, 24);
+    carry   = (long)FQUOTIENT(carry, 24);
+
+    /*
+     * days
+     * Note we use tempdays because the temporary values may need more
+     * than 5 bits
+     */
+    if ((VALID_YEAR(r->year)) && (VALID_MONTH(r->mon)) &&
+                  (d->day > MAX_DAYINMONTH(r->year, r->mon)))
+        tempdays = MAX_DAYINMONTH(r->year, r->mon);
+    else if (d->day < 1)
+        tempdays = 1;
+    else
+        tempdays = d->day;
+
+    tempdays += u->day + carry;
+
+    while (1) {
+        if (tempdays < 1) {
+            long tmon = (long)MODULO_RANGE((int)r->mon-1, 1, 13);
+            long tyr  = r->year + (long)FQUOTIENT_RANGE((int)r->mon-1, 1, 13);
+            if (tyr == 0)
+                tyr--;
+	    /*
+	     * Coverity detected an overrun in daysInMonth 
+	     * of size 12 at position 12 with index variable "((r)->mon - 1)"
+	     */
+	    if (tmon < 0)
+	        tmon = 0;
+	    if (tmon > 12)
+	        tmon = 12;
+            tempdays += MAX_DAYINMONTH(tyr, tmon);
+            carry = -1;
+        } else if (tempdays > (long)MAX_DAYINMONTH(r->year, r->mon)) {
+            tempdays = tempdays - MAX_DAYINMONTH(r->year, r->mon);
+            carry = 1;
+        } else
+            break;
+
+        temp = r->mon + carry;
+        r->mon = (unsigned int)MODULO_RANGE(temp, 1, 13);
+        r->year = r->year + (long)FQUOTIENT_RANGE(temp, 1, 13);
+        if (r->year == 0) {
+            if (temp < 1)
+                r->year--;
+            else
+                r->year++;
+	}
+    }
+    
+    r->day = tempdays;
+
+    /*
+     * adjust the date/time type to the date values
+     */
+    if (ret->type != XS_DATETIME) {
+        if ((r->hour) || (r->min) || (r->sec))
+            ret->type = XS_DATETIME;
+        else if (ret->type != XS_DATE) {
+            if ((r->mon != 1) && (r->day != 1))
+                ret->type = XS_DATE;
+            else if ((ret->type != XS_GYEARMONTH) && (r->mon != 1))
+                ret->type = XS_GYEARMONTH;
+        }
+    }
+
+    return ret;
+}
+
+/**
+ * exsltDateNormalize:
+ * @dt: an #exsltDateValPtr
+ *
+ * Normalize @dt to GMT time.
+ *
+ */
+static void
+exsltDateNormalize (exsltDateValPtr dt)
+{
+    exsltDateValPtr dur, tmp;
+
+    if (dt == NULL)
+        return;
+
+    if (((dt->type & XS_TIME) != XS_TIME) || (dt->value.date.tzo == 0))
+        return;
+
+    dur = exsltDateCreateDate(XS_DURATION);
+    if (dur == NULL)
+        return;
+
+    tmp = _exsltDateAdd(dt, dur);
+    if (tmp == NULL)
+        return;
+
+    memcpy(dt, tmp, sizeof(exsltDateVal));
+
+    exsltDateFreeDate(tmp);
+    exsltDateFreeDate(dur);
+
+    dt->value.date.tzo = 0;
+}
+
+/**
+ * _exsltDateDifference:
+ * @x: an #exsltDateValPtr
+ * @y: an #exsltDateValPtr
+ * @flag: force difference in days
+ *
+ * Calculate the difference between @x and @y as a duration
+ * (i.e. y - x). If the @flag is set then even if the least specific
+ * format of @x or @y is xs:gYear or xs:gYearMonth.
+ *
+ * Returns date/time pointer or NULL.
+ */
+static exsltDateValPtr
+_exsltDateDifference (exsltDateValPtr x, exsltDateValPtr y, int flag)
+{
+    exsltDateValPtr ret;
+
+    if ((x == NULL) || (y == NULL))
+        return NULL;
+
+    if (((x->type < XS_GYEAR) || (x->type > XS_DATETIME)) ||
+        ((y->type < XS_GYEAR) || (y->type > XS_DATETIME))) 
+        return NULL;
+
+    exsltDateNormalize(x);
+    exsltDateNormalize(y);
+
+    /*
+     * the operand with the most specific format must be converted to
+     * the same type as the operand with the least specific format.
+     */
+    if (x->type != y->type) {
+        if (x->type < y->type) {
+            _exsltDateTruncateDate(y, x->type);
+        } else {
+            _exsltDateTruncateDate(x, y->type);
+        }
+    }
+
+    ret = exsltDateCreateDate(XS_DURATION);
+    if (ret == NULL)
+        return NULL;
+
+    if (((x->type == XS_GYEAR) || (x->type == XS_GYEARMONTH)) && (!flag)) {
+        /* compute the difference in months */
+        ret->value.dur.mon = ((y->value.date.year * 12) + y->value.date.mon) -
+                             ((x->value.date.year * 12) + x->value.date.mon);
+	/* The above will give a wrong result if x and y are on different sides
+	 of the September 1752. Resolution is welcome :-) */
+    } else {
+        ret->value.dur.day  = _exsltDateCastYMToDays(y) -
+                              _exsltDateCastYMToDays(x);
+        ret->value.dur.day += y->value.date.day - x->value.date.day;
+        ret->value.dur.sec  = TIME_TO_NUMBER(y) - TIME_TO_NUMBER(x);
+	if (ret->value.dur.day > 0.0 && ret->value.dur.sec < 0.0) {
+	    ret->value.dur.day -= 1;
+	    ret->value.dur.sec = ret->value.dur.sec + SECS_PER_DAY;
+	} else if (ret->value.dur.day < 0.0 && ret->value.dur.sec > 0.0) {
+	    ret->value.dur.day += 1;
+	    ret->value.dur.sec = ret->value.dur.sec - SECS_PER_DAY;
+	}
+    }
+
+    return ret;
+}
+
+/**
+ * _exsltDateAddDurCalc
+ * @ret: an exsltDateValPtr for the return value:
+ * @x: an exsltDateValPtr for the first operand
+ * @y: an exsltDateValPtr for the second operand
+ *
+ * Add two durations, catering for possible negative values.
+ * The sum is placed in @ret.
+ *
+ * Returns 1 for success, 0 if error detected.
+ */
+static int
+_exsltDateAddDurCalc (exsltDateValPtr ret, exsltDateValPtr x,
+		      exsltDateValPtr y)
+{
+    long carry;
+
+    /* months */
+    ret->value.dur.mon = x->value.dur.mon + y->value.dur.mon;
+
+    /* seconds */
+    ret->value.dur.sec = x->value.dur.sec + y->value.dur.sec;
+    carry = (long)FQUOTIENT(ret->value.dur.sec, SECS_PER_DAY);
+    if (ret->value.dur.sec != 0.0) {
+        ret->value.dur.sec = MODULO(ret->value.dur.sec, SECS_PER_DAY);
+	/*
+	 * Our function MODULO always gives us a positive value, so
+	 * if we end up with a "-ve" carry we need to adjust it
+	 * appropriately (bug 154021)
+	 */
+	if ((carry < 0) && (ret->value.dur.sec != 0)) {
+	    /* change seconds to equiv negative modulus */
+	    ret->value.dur.sec = ret->value.dur.sec - SECS_PER_DAY;
+	    carry++;
+	}
+    }
+
+    /* days */
+    ret->value.dur.day = x->value.dur.day + y->value.dur.day + carry;
+
+    /*
+     * are the results indeterminate? i.e. how do you subtract days from
+     * months or years?
+     */
+    if ((((ret->value.dur.day > 0) || (ret->value.dur.sec > 0)) &&
+         (ret->value.dur.mon < 0)) ||
+        (((ret->value.dur.day < 0) || (ret->value.dur.sec < 0)) &&
+         (ret->value.dur.mon > 0))) {
+        return 0;
+    }
+    return 1;
+}
+
+/**
+ * _exsltDateAddDuration:
+ * @x: an #exsltDateValPtr of type #XS_DURATION
+ * @y: an #exsltDateValPtr of type #XS_DURATION
+ *
+ * Compute a new duration from @x and @y.
+ *
+ * Returns date/time pointer or NULL.
+ */
+static exsltDateValPtr
+_exsltDateAddDuration (exsltDateValPtr x, exsltDateValPtr y)
+{
+    exsltDateValPtr ret;
+
+    if ((x == NULL) || (y == NULL))
+        return NULL;
+
+    ret = exsltDateCreateDate(XS_DURATION);
+    if (ret == NULL)
+        return NULL;
+
+    if (_exsltDateAddDurCalc(ret, x, y))
+        return ret;
+
+    exsltDateFreeDate(ret);
+    return NULL;
+}
+
+/****************************************************************
+ *								*
+ *		EXSLT - Dates and Times functions		*
+ *								*
+ ****************************************************************/
+
+/**
+ * exsltDateDateTime:
+ *
+ * Implements the EXSLT - Dates and Times date-time() function:
+ *     string date:date-time()
+ * 
+ * Returns the current date and time as a date/time string.
+ */
+static xmlChar *
+exsltDateDateTime (void)
+{
+    xmlChar *ret = NULL;
+#ifdef WITH_TIME
+    exsltDateValPtr cur;
+
+    cur = exsltDateCurrent();
+    if (cur != NULL) {
+	ret = exsltDateFormatDateTime(&(cur->value.date));
+	exsltDateFreeDate(cur);
+    }
+#endif
+
+    return ret;
+}
+
+/**
+ * exsltDateDate:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times date() function:
+ *     string date:date (string?)
+ * 
+ * Returns the date specified in the date/time string given as the
+ * argument.  If no argument is given, then the current local
+ * date/time, as returned by date:date-time is used as a default
+ * argument.
+ * The date/time string specified as an argument must be a string in
+ * the format defined as the lexical representation of either
+ * xs:dateTime or xs:date.  If the argument is not in either of these
+ * formats, returns NULL.
+ */
+static xmlChar *
+exsltDateDate (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt = NULL;
+    xmlChar *ret = NULL;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return NULL;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return NULL;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE)) {
+	    exsltDateFreeDate(dt);
+	    return NULL;
+	}
+    }
+
+    ret = exsltDateFormatDate(&(dt->value.date));
+    exsltDateFreeDate(dt);
+
+    return ret;
+}
+
+/**
+ * exsltDateTime:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times time() function:
+ *     string date:time (string?)
+ * 
+ * Returns the time specified in the date/time string given as the
+ * argument.  If no argument is given, then the current local
+ * date/time, as returned by date:date-time is used as a default
+ * argument.
+ * The date/time string specified as an argument must be a string in
+ * the format defined as the lexical representation of either
+ * xs:dateTime or xs:time.  If the argument is not in either of these
+ * formats, returns NULL.
+ */
+static xmlChar *
+exsltDateTime (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt = NULL;
+    xmlChar *ret = NULL;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return NULL;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return NULL;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_TIME)) {
+	    exsltDateFreeDate(dt);
+	    return NULL;
+	}
+    }
+
+    ret = exsltDateFormatTime(&(dt->value.date));
+    exsltDateFreeDate(dt);
+
+    return ret;
+}
+
+/**
+ * exsltDateYear:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times year() function
+ *    number date:year (string?)
+ * Returns the year of a date as a number.  If no argument is given,
+ * then the current local date/time, as returned by date:date-time is
+ * used as a default argument.
+ * The date/time string specified as the first argument must be a
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ *  - xs:gYearMonth (CCYY-MM)
+ *  - xs:gYear (CCYY)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ */
+static double
+exsltDateYear (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    double ret;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return xmlXPathNAN;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE) &&
+	    (dt->type != XS_GYEARMONTH) && (dt->type != XS_GYEAR)) {
+	    exsltDateFreeDate(dt);
+	    return xmlXPathNAN;
+	}
+    }
+
+    ret = (double) dt->value.date.year;
+    exsltDateFreeDate(dt);
+
+    return ret;
+}
+
+/**
+ * exsltDateLeapYear:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times leap-year() function:
+ *    boolean date:leap-yea (string?)
+ * Returns true if the year given in a date is a leap year.  If no
+ * argument is given, then the current local date/time, as returned by
+ * date:date-time is used as a default argument.
+ * The date/time string specified as the first argument must be a
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ *  - xs:gYearMonth (CCYY-MM)
+ *  - xs:gYear (CCYY)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ */
+static xmlXPathObjectPtr
+exsltDateLeapYear (const xmlChar *dateTime)
+{
+    double year;
+
+    year = exsltDateYear(dateTime);
+    if (xmlXPathIsNaN(year))
+	return xmlXPathNewFloat(xmlXPathNAN);
+
+    if (IS_LEAP((long)year))
+	return xmlXPathNewBoolean(1);
+
+    return xmlXPathNewBoolean(0);
+}
+
+/**
+ * exsltDateMonthInYear:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times month-in-year() function:
+ *    number date:month-in-year (string?)
+ * Returns the month of a date as a number.  If no argument is given,
+ * then the current local date/time, as returned by date:date-time is
+ * used the default argument.
+ * The date/time string specified as the argument is a left or
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ *  - xs:gYearMonth (CCYY-MM)
+ *  - xs:gMonth (--MM--)
+ *  - xs:gMonthDay (--MM-DD)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ */
+static double
+exsltDateMonthInYear (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    double ret;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return xmlXPathNAN;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE) &&
+	    (dt->type != XS_GYEARMONTH) && (dt->type != XS_GMONTH) &&
+	    (dt->type != XS_GMONTHDAY)) {
+	    exsltDateFreeDate(dt);
+	    return xmlXPathNAN;
+	}
+    }
+
+    ret = (double) dt->value.date.mon;
+    exsltDateFreeDate(dt);
+
+    return ret;
+}
+
+/**
+ * exsltDateMonthName:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Time month-name() function
+ *    string date:month-name (string?)
+ * Returns the full name of the month of a date.  If no argument is
+ * given, then the current local date/time, as returned by
+ * date:date-time is used the default argument.
+ * The date/time string specified as the argument is a left or
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ *  - xs:gYearMonth (CCYY-MM)
+ *  - xs:gMonth (--MM--)
+ * If the date/time string is not in one of these formats, then an
+ * empty string ('') is returned.
+ * The result is an English month name: one of 'January', 'February',
+ * 'March', 'April', 'May', 'June', 'July', 'August', 'September',
+ * 'October', 'November' or 'December'.
+ */
+static const xmlChar *
+exsltDateMonthName (const xmlChar *dateTime)
+{
+    static const xmlChar monthNames[13][10] = {
+        { 0 },
+	{ 'J', 'a', 'n', 'u', 'a', 'r', 'y', 0 },
+	{ 'F', 'e', 'b', 'r', 'u', 'a', 'r', 'y', 0 },
+	{ 'M', 'a', 'r', 'c', 'h', 0 },
+	{ 'A', 'p', 'r', 'i', 'l', 0 },
+	{ 'M', 'a', 'y', 0 },
+	{ 'J', 'u', 'n', 'e', 0 },
+	{ 'J', 'u', 'l', 'y', 0 },
+	{ 'A', 'u', 'g', 'u', 's', 't', 0 },
+	{ 'S', 'e', 'p', 't', 'e', 'm', 'b', 'e', 'r', 0 },
+	{ 'O', 'c', 't', 'o', 'b', 'e', 'r', 0 },
+	{ 'N', 'o', 'v', 'e', 'm', 'b', 'e', 'r', 0 },
+	{ 'D', 'e', 'c', 'e', 'm', 'b', 'e', 'r', 0 }
+    };
+    int month;
+    month = (int) exsltDateMonthInYear(dateTime);
+    if (!VALID_MONTH(month))
+      month = 0;
+    return monthNames[month];
+}
+
+/**
+ * exsltDateMonthAbbreviation:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Time month-abbreviation() function
+ *    string date:month-abbreviation (string?)
+ * Returns the abbreviation of the month of a date.  If no argument is
+ * given, then the current local date/time, as returned by
+ * date:date-time is used the default argument.
+ * The date/time string specified as the argument is a left or
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ *  - xs:gYearMonth (CCYY-MM)
+ *  - xs:gMonth (--MM--)
+ * If the date/time string is not in one of these formats, then an
+ * empty string ('') is returned.
+ * The result is an English month abbreviation: one of 'Jan', 'Feb',
+ * 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov' or
+ * 'Dec'.
+ */
+static const xmlChar *
+exsltDateMonthAbbreviation (const xmlChar *dateTime)
+{
+    static const xmlChar monthAbbreviations[13][4] = {
+        { 0 },
+	{ 'J', 'a', 'n', 0 },
+	{ 'F', 'e', 'b', 0 },
+	{ 'M', 'a', 'r', 0 },
+	{ 'A', 'p', 'r', 0 },
+	{ 'M', 'a', 'y', 0 },
+	{ 'J', 'u', 'n', 0 },
+	{ 'J', 'u', 'l', 0 },
+	{ 'A', 'u', 'g', 0 },
+	{ 'S', 'e', 'p', 0 },
+	{ 'O', 'c', 't', 0 },
+	{ 'N', 'o', 'v', 0 },
+	{ 'D', 'e', 'c', 0 }
+    };
+    int month;
+    month = (int) exsltDateMonthInYear(dateTime);
+    if(!VALID_MONTH(month))
+      month = 0;
+    return monthAbbreviations[month];
+}
+
+/**
+ * exsltDateWeekInYear:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times week-in-year() function
+ *    number date:week-in-year (string?)
+ * Returns the week of the year as a number.  If no argument is given,
+ * then the current local date/time, as returned by date:date-time is
+ * used as the default argument.  For the purposes of numbering,
+ * counting follows ISO 8601: week 1 in a year is the week containing
+ * the first Thursday of the year, with new weeks beginning on a
+ * Monday.
+ * The date/time string specified as the argument is a right-truncated
+ * string in the format defined as the lexical representation of
+ * xs:dateTime in one of the formats defined in [XML Schema Part 2:
+ * Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ */
+static double
+exsltDateWeekInYear (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    long fdiy, fdiw, ret;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return xmlXPathNAN;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE)) {
+	    exsltDateFreeDate(dt);
+	    return xmlXPathNAN;
+	}
+    }
+
+    fdiy = DAY_IN_YEAR(1, 1, dt->value.date.year);
+    
+    /*
+     * Determine day-in-week (0=Sun, 1=Mon, etc.) then adjust so Monday
+     * is the first day-in-week
+     */
+    fdiw = (_exsltDateDayInWeek(fdiy, dt->value.date.year) + 6) % 7;
+
+    ret = (DAY_IN_YEAR(dt->value.date.day, dt->value.date.mon,
+                      dt->value.date.year) + fdiw) / 7;
+
+    /* ISO 8601 adjustment, 3 is Thu */
+    if (fdiw <= 3)
+	ret += 1;
+
+    exsltDateFreeDate(dt);
+
+    return (double) ret;
+}
+
+/**
+ * exsltDateWeekInMonth:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times week-in-month() function
+ *    number date:week-in-month (string?)
+ * The date:week-in-month function returns the week in a month of a
+ * date as a number. If no argument is given, then the current local
+ * date/time, as returned by date:date-time is used the default
+ * argument. For the purposes of numbering, the first day of the month
+ * is in week 1 and new weeks begin on a Monday (so the first and last
+ * weeks in a month will often have less than 7 days in them).
+ * The date/time string specified as the argument is a right-truncated
+ * string in the format defined as the lexical representation of
+ * xs:dateTime in one of the formats defined in [XML Schema Part 2:
+ * Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ */
+static double
+exsltDateWeekInMonth (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    long fdiy, fdiw, ret;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return xmlXPathNAN;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE)) {
+	    exsltDateFreeDate(dt);
+	    return xmlXPathNAN;
+	}
+    }
+
+    fdiy = DAY_IN_YEAR(1, dt->value.date.mon, dt->value.date.year);
+    /*
+     * Determine day-in-week (0=Sun, 1=Mon, etc.) then adjust so Monday
+     * is the first day-in-week
+     */
+    fdiw = (_exsltDateDayInWeek(fdiy, dt->value.date.year) + 6) % 7;
+
+    ret = ((dt->value.date.day + fdiw - 1) / 7) + 1;
+
+    exsltDateFreeDate(dt);
+
+    return (double) ret;
+}
+
+/**
+ * exsltDateDayInYear:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times day-in-year() function
+ *    number date:day-in-year (string?)
+ * Returns the day of a date in a year as a number.  If no argument is
+ * given, then the current local date/time, as returned by
+ * date:date-time is used the default argument.
+ * The date/time string specified as the argument is a right-truncated
+ * string in the format defined as the lexical representation of
+ * xs:dateTime in one of the formats defined in [XML Schema Part 2:
+ * Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ */
+static double
+exsltDateDayInYear (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    long ret;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return xmlXPathNAN;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE)) {
+	    exsltDateFreeDate(dt);
+	    return xmlXPathNAN;
+	}
+    }
+
+    ret = DAY_IN_YEAR(dt->value.date.day, dt->value.date.mon,
+                      dt->value.date.year);
+
+    exsltDateFreeDate(dt);
+
+    return (double) ret;
+}
+
+/**
+ * exsltDateDayInMonth:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times day-in-month() function:
+ *    number date:day-in-month (string?)
+ * Returns the day of a date as a number.  If no argument is given,
+ * then the current local date/time, as returned by date:date-time is
+ * used the default argument.
+ * The date/time string specified as the argument is a left or
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ *  - xs:gMonthDay (--MM-DD)
+ *  - xs:gDay (---DD)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ */
+static double
+exsltDateDayInMonth (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    double ret;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return xmlXPathNAN;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE) &&
+	    (dt->type != XS_GMONTHDAY) && (dt->type != XS_GDAY)) {
+	    exsltDateFreeDate(dt);
+	    return xmlXPathNAN;
+	}
+    }
+
+    ret = (double) dt->value.date.day;
+    exsltDateFreeDate(dt);
+
+    return ret;
+}
+
+/**
+ * exsltDateDayOfWeekInMonth:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times day-of-week-in-month() function:
+ *    number date:day-of-week-in-month (string?)
+ * Returns the day-of-the-week in a month of a date as a number
+ * (e.g. 3 for the 3rd Tuesday in May).  If no argument is
+ * given, then the current local date/time, as returned by
+ * date:date-time is used the default argument.
+ * The date/time string specified as the argument is a right-truncated
+ * string in the format defined as the lexical representation of
+ * xs:dateTime in one of the formats defined in [XML Schema Part 2:
+ * Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ */
+static double
+exsltDateDayOfWeekInMonth (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    long ret;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return xmlXPathNAN;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE)) {
+	    exsltDateFreeDate(dt);
+	    return xmlXPathNAN;
+	}
+    }
+
+    ret = ((dt->value.date.day -1) / 7) + 1;
+
+    exsltDateFreeDate(dt);
+
+    return (double) ret;
+}
+
+/**
+ * exsltDateDayInWeek:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times day-in-week() function:
+ *    number date:day-in-week (string?)
+ * Returns the day of the week given in a date as a number.  If no
+ * argument is given, then the current local date/time, as returned by
+ * date:date-time is used the default argument.
+ * The date/time string specified as the argument is a left or
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ * The numbering of days of the week starts at 1 for Sunday, 2 for
+ * Monday and so on up to 7 for Saturday.
+ */
+static double
+exsltDateDayInWeek (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    long diy, ret;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return xmlXPathNAN;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_DATE)) {
+	    exsltDateFreeDate(dt);
+	    return xmlXPathNAN;
+	}
+    }
+
+    diy = DAY_IN_YEAR(dt->value.date.day, dt->value.date.mon,
+                      dt->value.date.year);
+
+    ret = _exsltDateDayInWeek(diy, dt->value.date.year) + 1;
+
+    exsltDateFreeDate(dt);
+
+    return (double) ret;
+}
+
+/**
+ * exsltDateDayName:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Time day-name() function
+ *    string date:day-name (string?)
+ * Returns the full name of the day of the week of a date.  If no
+ * argument is given, then the current local date/time, as returned by
+ * date:date-time is used the default argument.
+ * The date/time string specified as the argument is a left or
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ * If the date/time string is not in one of these formats, then an
+ * empty string ('') is returned.
+ * The result is an English day name: one of 'Sunday', 'Monday',
+ * 'Tuesday', 'Wednesday', 'Thursday' or 'Friday'.
+ */
+static const xmlChar *
+exsltDateDayName (const xmlChar *dateTime)
+{
+    static const xmlChar dayNames[8][10] = {
+        { 0 },
+	{ 'S', 'u', 'n', 'd', 'a', 'y', 0 },
+	{ 'M', 'o', 'n', 'd', 'a', 'y', 0 },
+	{ 'T', 'u', 'e', 's', 'd', 'a', 'y', 0 },
+	{ 'W', 'e', 'd', 'n', 'e', 's', 'd', 'a', 'y', 0 },
+	{ 'T', 'h', 'u', 'r', 's', 'd', 'a', 'y', 0 },
+	{ 'F', 'r', 'i', 'd', 'a', 'y', 0 },
+	{ 'S', 'a', 't', 'u', 'r', 'd', 'a', 'y', 0 }
+    };
+    int day;
+    day = (int) exsltDateDayInWeek(dateTime);
+    if((day < 1) || (day > 7))
+      day = 0;
+    return dayNames[day];
+}
+
+/**
+ * exsltDateDayAbbreviation:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Time day-abbreviation() function
+ *    string date:day-abbreviation (string?)
+ * Returns the abbreviation of the day of the week of a date.  If no
+ * argument is given, then the current local date/time, as returned by
+ * date:date-time is used the default argument.
+ * The date/time string specified as the argument is a left or
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date (CCYY-MM-DD)
+ * If the date/time string is not in one of these formats, then an
+ * empty string ('') is returned.
+ * The result is a three-letter English day abbreviation: one of
+ * 'Sun', 'Mon', 'Tue', 'Wed', 'Thu' or 'Fri'.
+ */
+static const xmlChar *
+exsltDateDayAbbreviation (const xmlChar *dateTime)
+{
+    static const xmlChar dayAbbreviations[8][4] = {
+        { 0 },
+	{ 'S', 'u', 'n', 0 },
+	{ 'M', 'o', 'n', 0 },
+	{ 'T', 'u', 'e', 0 },
+	{ 'W', 'e', 'd', 0 },
+	{ 'T', 'h', 'u', 0 },
+	{ 'F', 'r', 'i', 0 },
+	{ 'S', 'a', 't', 0 }
+    };
+    int day;
+    day = (int) exsltDateDayInWeek(dateTime);
+    if((day < 1) || (day > 7))
+      day = 0;
+    return dayAbbreviations[day];
+}
+
+/**
+ * exsltDateHourInDay:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times day-in-month() function:
+ *    number date:day-in-month (string?)
+ * Returns the hour of the day as a number.  If no argument is given,
+ * then the current local date/time, as returned by date:date-time is
+ * used the default argument.
+ * The date/time string specified as the argument is a left or
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:time (hh:mm:ss)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ */
+static double
+exsltDateHourInDay (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    double ret;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return xmlXPathNAN;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_TIME)) {
+	    exsltDateFreeDate(dt);
+	    return xmlXPathNAN;
+	}
+    }
+
+    ret = (double) dt->value.date.hour;
+    exsltDateFreeDate(dt);
+
+    return ret;
+}
+
+/**
+ * exsltDateMinuteInHour:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times day-in-month() function:
+ *    number date:day-in-month (string?)
+ * Returns the minute of the hour as a number.  If no argument is
+ * given, then the current local date/time, as returned by
+ * date:date-time is used the default argument.
+ * The date/time string specified as the argument is a left or
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:time (hh:mm:ss)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ */
+static double
+exsltDateMinuteInHour (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    double ret;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return xmlXPathNAN;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_TIME)) {
+	    exsltDateFreeDate(dt);
+	    return xmlXPathNAN;
+	}
+    }
+
+    ret = (double) dt->value.date.min;
+    exsltDateFreeDate(dt);
+
+    return ret;
+}
+
+/**
+ * exsltDateSecondInMinute:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times second-in-minute() function:
+ *    number date:day-in-month (string?)
+ * Returns the second of the minute as a number.  If no argument is
+ * given, then the current local date/time, as returned by
+ * date:date-time is used the default argument.
+ * The date/time string specified as the argument is a left or
+ * right-truncated string in the format defined as the lexical
+ * representation of xs:dateTime in one of the formats defined in [XML
+ * Schema Part 2: Datatypes].  The permitted formats are as follows:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:time (hh:mm:ss)
+ * If the date/time string is not in one of these formats, then NaN is
+ * returned.
+ * 
+ * Returns the second or NaN.
+ */
+static double
+exsltDateSecondInMinute (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    double ret;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+	dt = exsltDateParse(dateTime);
+	if (dt == NULL)
+	    return xmlXPathNAN;
+	if ((dt->type != XS_DATETIME) && (dt->type != XS_TIME)) {
+	    exsltDateFreeDate(dt);
+	    return xmlXPathNAN;
+	}
+    }
+
+    ret = dt->value.date.sec;
+    exsltDateFreeDate(dt);
+
+    return ret;
+}
+
+/**
+ * exsltDateAdd:
+ * @xstr: date/time string
+ * @ystr: date/time string
+ *
+ * Implements the date:add (string,string) function which returns the
+ * date/time * resulting from adding a duration to a date/time. 
+ * The first argument (@xstr) must be right-truncated date/time
+ * strings in one of the formats defined in [XML Schema Part 2:
+ * Datatypes]. The permitted formats are as follows: 
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss) 
+ *  - xs:date (CCYY-MM-DD) 
+ *  - xs:gYearMonth (CCYY-MM) 
+ *  - xs:gYear (CCYY) 
+ * The second argument (@ystr) is a string in the format defined for
+ * xs:duration in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. 
+ * The return value is a right-truncated date/time strings in one of
+ * the formats defined in [XML Schema Part 2: Datatypes] and listed
+ * above. This value is calculated using the algorithm described in
+ * [Appendix E Adding durations to dateTimes] of [XML Schema Part 2:
+ * Datatypes]. 
+
+ * Returns date/time string or NULL.
+ */
+static xmlChar *
+exsltDateAdd (const xmlChar *xstr, const xmlChar *ystr)
+{
+    exsltDateValPtr dt, dur, res;
+    xmlChar     *ret;   
+
+    if ((xstr == NULL) || (ystr == NULL))
+        return NULL;
+
+    dt = exsltDateParse(xstr);
+    if (dt == NULL)
+        return NULL;
+    else if ((dt->type < XS_GYEAR) || (dt->type > XS_DATETIME)) {
+        exsltDateFreeDate(dt);
+        return NULL;
+    }
+
+    dur = exsltDateParseDuration(ystr);
+    if (dur == NULL) {
+        exsltDateFreeDate(dt);
+        return NULL;
+    }
+
+    res = _exsltDateAdd(dt, dur);
+
+    exsltDateFreeDate(dt);
+    exsltDateFreeDate(dur);
+
+    if (res == NULL)
+        return NULL;
+
+    ret = exsltDateFormat(res);
+    exsltDateFreeDate(res);
+
+    return ret;
+}
+
+/**
+ * exsltDateAddDuration:
+ * @xstr:      first duration string
+ * @ystr:      second duration string
+ *
+ * Implements the date:add-duration (string,string) function which returns
+ * the duration resulting from adding two durations together. 
+ * Both arguments are strings in the format defined for xs:duration
+ * in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. If either
+ * argument is not in this format, the function returns an empty string
+ * (''). 
+ * The return value is a string in the format defined for xs:duration
+ * in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. 
+ * The durations can usually be added by summing the numbers given for
+ * each of the components in the durations. However, if the durations
+ * are differently signed, then this sometimes results in durations
+ * that are impossible to express in this syntax (e.g. 'P1M' + '-P1D').
+ * In these cases, the function returns an empty string (''). 
+ *
+ * Returns duration string or NULL.
+ */
+static xmlChar *
+exsltDateAddDuration (const xmlChar *xstr, const xmlChar *ystr)
+{
+    exsltDateValPtr x, y, res;
+    xmlChar     *ret;   
+
+    if ((xstr == NULL) || (ystr == NULL))
+        return NULL;
+
+    x = exsltDateParseDuration(xstr);
+    if (x == NULL)
+        return NULL;
+
+    y = exsltDateParseDuration(ystr);
+    if (y == NULL) {
+        exsltDateFreeDate(x);
+        return NULL;
+    }
+
+    res = _exsltDateAddDuration(x, y);
+
+    exsltDateFreeDate(x);
+    exsltDateFreeDate(y);
+
+    if (res == NULL)
+        return NULL;
+
+    ret = exsltDateFormatDuration(&(res->value.dur));
+    exsltDateFreeDate(res);
+
+    return ret;
+}
+
+/**
+ * exsltDateSumFunction:
+ * @ns:      a node set of duration strings
+ *
+ * The date:sum function adds a set of durations together. 
+ * The string values of the nodes in the node set passed as an argument 
+ * are interpreted as durations and added together as if using the 
+ * date:add-duration function. (from exslt.org)
+ *
+ * The return value is a string in the format defined for xs:duration
+ * in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. 
+ * The durations can usually be added by summing the numbers given for
+ * each of the components in the durations. However, if the durations
+ * are differently signed, then this sometimes results in durations
+ * that are impossible to express in this syntax (e.g. 'P1M' + '-P1D').
+ * In these cases, the function returns an empty string (''). 
+ *
+ * Returns duration string or NULL.
+ */
+static void
+exsltDateSumFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlNodeSetPtr ns;
+    void *user = NULL;
+    xmlChar *tmp;
+    exsltDateValPtr x, total;
+    xmlChar *ret;
+    int i;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError (ctxt);
+	return;
+    }
+
+    /* We need to delay the freeing of value->user */
+    if ((ctxt->value != NULL) && ctxt->value->boolval != 0) {
+	user = ctxt->value->user;
+	ctxt->value->boolval = 0;
+	ctxt->value->user = NULL;
+    }
+
+    ns = xmlXPathPopNodeSet (ctxt);
+    if (xmlXPathCheckError (ctxt))
+	return;
+
+    if ((ns == NULL) || (ns->nodeNr == 0)) {
+	xmlXPathReturnEmptyString (ctxt);
+	if (ns != NULL)
+	    xmlXPathFreeNodeSet (ns);
+	return;
+    }
+
+    total = exsltDateCreateDate (XS_DURATION);
+    if (total == NULL) {
+        xmlXPathFreeNodeSet (ns);
+        return;
+    }
+
+    for (i = 0; i < ns->nodeNr; i++) {
+    	int result;
+	tmp = xmlXPathCastNodeToString (ns->nodeTab[i]);
+	if (tmp == NULL) {
+	    xmlXPathFreeNodeSet (ns);
+	    exsltDateFreeDate (total);
+	    return;
+	}
+
+	x = exsltDateParseDuration (tmp);
+	if (x == NULL) {
+	    xmlFree (tmp);
+	    exsltDateFreeDate (total);
+	    xmlXPathFreeNodeSet (ns);
+	    xmlXPathReturnEmptyString (ctxt);
+	    return;
+	}
+
+	result = _exsltDateAddDurCalc(total, total, x);
+
+	exsltDateFreeDate (x);
+	xmlFree (tmp);
+	if (!result) {
+	    exsltDateFreeDate (total);
+	    xmlXPathFreeNodeSet (ns);
+	    xmlXPathReturnEmptyString (ctxt);
+	    return;
+	}
+    }
+
+    ret = exsltDateFormatDuration (&(total->value.dur));
+    exsltDateFreeDate (total);
+
+    xmlXPathFreeNodeSet (ns);
+    if (user != NULL)
+	xmlFreeNodeList ((xmlNodePtr) user);
+
+    if (ret == NULL)
+	xmlXPathReturnEmptyString (ctxt);
+    else
+	xmlXPathReturnString (ctxt, ret);
+}
+
+/**
+ * exsltDateSeconds:
+ * @dateTime: a date/time string
+ *
+ * Implements the EXSLT - Dates and Times seconds() function:
+ *    number date:seconds(string?)
+ * The date:seconds function returns the number of seconds specified
+ * by the argument string. If no argument is given, then the current
+ * local date/time, as returned by exsltDateCurrent() is used as the
+ * default argument. If the date/time string is a xs:duration, then the
+ * years and months must be zero (or not present). Parsing a duration
+ * converts the fields to seconds. If the date/time string is not a 
+ * duration (and not null), then the legal formats are:
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss)
+ *  - xs:date     (CCYY-MM-DD)
+ *  - xs:gYearMonth (CCYY-MM)
+ *  - xs:gYear      (CCYY)
+ * In these cases the difference between the @dateTime and 
+ * 1970-01-01T00:00:00Z is calculated and converted to seconds.
+ *
+ * Note that there was some confusion over whether "difference" meant
+ * that a dateTime of 1970-01-01T00:00:01Z should be a positive one or
+ * a negative one.  After correspondence with exslt.org, it was determined
+ * that the intent of the specification was to have it positive.  The
+ * coding was modified in July 2003 to reflect this.
+ *
+ * Returns seconds or Nan.
+ */
+static double
+exsltDateSeconds (const xmlChar *dateTime)
+{
+    exsltDateValPtr dt;
+    double ret = xmlXPathNAN;
+
+    if (dateTime == NULL) {
+#ifdef WITH_TIME
+	dt = exsltDateCurrent();
+	if (dt == NULL)
+#endif
+	    return xmlXPathNAN;
+    } else {
+        dt = exsltDateParseDuration(dateTime);
+        if (dt == NULL)
+            dt = exsltDateParse(dateTime);
+    }
+
+    if (dt == NULL)
+        return xmlXPathNAN;
+
+    if ((dt->type <= XS_DATETIME) && (dt->type >= XS_GYEAR)) {
+        exsltDateValPtr y, dur;
+
+        /*
+         * compute the difference between the given (or current) date
+         * and epoch date
+         */
+        y = exsltDateCreateDate(XS_DATETIME);
+        if (y != NULL) {
+            y->value.date.year = 1970;
+            y->value.date.mon  = 1;
+            y->value.date.day  = 1;
+            y->value.date.tz_flag = 1;
+
+            dur = _exsltDateDifference(y, dt, 1);
+            if (dur != NULL) {
+                ret = exsltDateCastDateToNumber(dur); 
+                exsltDateFreeDate(dur);
+            }
+            exsltDateFreeDate(y);
+        }
+
+    } else if ((dt->type == XS_DURATION) && (dt->value.dur.mon == 0))
+        ret = exsltDateCastDateToNumber(dt);
+
+    exsltDateFreeDate(dt);
+
+    return ret;
+}
+
+/**
+ * exsltDateDifference:
+ * @xstr: date/time string
+ * @ystr: date/time string
+ *
+ * Implements the date:difference (string,string) function which returns
+ * the duration between the first date and the second date. If the first
+ * date occurs before the second date, then the result is a positive
+ * duration; if it occurs after the second date, the result is a
+ * negative duration.  The two dates must both be right-truncated
+ * date/time strings in one of the formats defined in [XML Schema Part
+ * 2: Datatypes]. The date/time with the most specific format (i.e. the
+ * least truncation) is converted into the same format as the date with
+ * the least specific format (i.e. the most truncation). The permitted
+ * formats are as follows, from most specific to least specific: 
+ *  - xs:dateTime (CCYY-MM-DDThh:mm:ss) 
+ *  - xs:date (CCYY-MM-DD) 
+ *  - xs:gYearMonth (CCYY-MM) 
+ *  - xs:gYear (CCYY) 
+ * If either of the arguments is not in one of these formats,
+ * date:difference returns the empty string (''). 
+ * The difference between the date/times is returned as a string in the
+ * format defined for xs:duration in [3.2.6 duration] of [XML Schema
+ * Part 2: Datatypes]. 
+ * If the date/time string with the least specific format is in either
+ * xs:gYearMonth or xs:gYear format, then the number of days, hours,
+ * minutes and seconds in the duration string must be equal to zero.
+ * (The format of the string will be PnYnM.) The number of months
+ * specified in the duration must be less than 12. 
+ * Otherwise, the number of years and months in the duration string
+ * must be equal to zero. (The format of the string will be
+ * PnDTnHnMnS.) The number of seconds specified in the duration string
+ * must be less than 60; the number of minutes must be less than 60;
+ * the number of hours must be less than 24. 
+ *
+ * Returns duration string or NULL.
+ */
+static xmlChar *
+exsltDateDifference (const xmlChar *xstr, const xmlChar *ystr)
+{
+    exsltDateValPtr x, y, dur;
+    xmlChar        *ret = NULL;   
+
+    if ((xstr == NULL) || (ystr == NULL))
+        return NULL;
+
+    x = exsltDateParse(xstr);
+    if (x == NULL)
+        return NULL;
+
+    y = exsltDateParse(ystr);
+    if (y == NULL) {
+        exsltDateFreeDate(x);
+        return NULL;
+    }
+
+    if (((x->type < XS_GYEAR) || (x->type > XS_DATETIME)) ||
+        ((y->type < XS_GYEAR) || (y->type > XS_DATETIME)))  {
+	exsltDateFreeDate(x);
+	exsltDateFreeDate(y);
+        return NULL;
+    }
+
+    dur = _exsltDateDifference(x, y, 0);
+
+    exsltDateFreeDate(x);
+    exsltDateFreeDate(y);
+
+    if (dur == NULL)
+        return NULL;
+
+    ret = exsltDateFormatDuration(&(dur->value.dur));
+    exsltDateFreeDate(dur);
+
+    return ret;
+}
+
+/**
+ * exsltDateDuration:
+ * @number: a xmlChar string
+ *
+ * Implements the The date:duration function returns a duration string
+ * representing the number of seconds specified by the argument string.
+ * If no argument is given, then the result of calling date:seconds
+ * without any arguments is used as a default argument. 
+ * The duration is returned as a string in the format defined for
+ * xs:duration in [3.2.6 duration] of [XML Schema Part 2: Datatypes]. 
+ * The number of years and months in the duration string must be equal
+ * to zero. (The format of the string will be PnDTnHnMnS.) The number
+ * of seconds specified in the duration string must be less than 60;
+ * the number of minutes must be less than 60; the number of hours must
+ * be less than 24. 
+ * If the argument is Infinity, -Infinity or NaN, then date:duration
+ * returns an empty string (''). 
+ *
+ * Returns duration string or NULL.
+ */
+static xmlChar *
+exsltDateDuration (const xmlChar *number)
+{
+    exsltDateValPtr dur;
+    double       secs;
+    xmlChar     *ret;
+
+    if (number == NULL)
+        secs = exsltDateSeconds(number);
+    else
+        secs = xmlXPathCastStringToNumber(number);
+
+    if ((xmlXPathIsNaN(secs)) || (xmlXPathIsInf(secs)))
+        return NULL;
+
+    dur = exsltDateCreateDate(XS_DURATION);
+    if (dur == NULL)
+        return NULL;
+
+    dur->value.dur.sec = secs;
+
+    ret = exsltDateFormatDuration(&(dur->value.dur));
+    exsltDateFreeDate(dur);
+
+    return ret;
+}
+
+/****************************************************************
+ *								*
+ *		Wrappers for use by the XPath engine		*
+ *								*
+ ****************************************************************/
+
+#ifdef WITH_TIME
+/**
+ * exsltDateDateTimeFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateDateTime() for use by the XPath engine.
+ */
+static void
+exsltDateDateTimeFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *ret;
+
+    if (nargs != 0) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    ret = exsltDateDateTime();
+    if (ret == NULL)
+        xmlXPathReturnEmptyString(ctxt);
+    else
+        xmlXPathReturnString(ctxt, ret);
+}
+#endif
+
+/**
+ * exsltDateDateFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateDate() for use by the XPath engine.
+ */
+static void
+exsltDateDateFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *ret, *dt = NULL;
+
+    if ((nargs < 0) || (nargs > 1)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    if (nargs == 1) {
+	dt = xmlXPathPopString(ctxt);
+	if (xmlXPathCheckError(ctxt)) {
+	    xmlXPathSetTypeError(ctxt);
+	    return;
+	}
+    }
+
+    ret = exsltDateDate(dt);
+
+    if (ret == NULL) {
+	xsltGenericDebug(xsltGenericDebugContext,
+			 "{http://exslt.org/dates-and-times}date: "
+			 "invalid date or format %s\n", dt);
+	xmlXPathReturnEmptyString(ctxt);
+    } else {
+	xmlXPathReturnString(ctxt, ret);
+    }
+
+    if (dt != NULL)
+	xmlFree(dt);
+}
+
+/**
+ * exsltDateTimeFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateTime() for use by the XPath engine.
+ */
+static void
+exsltDateTimeFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *ret, *dt = NULL;
+
+    if ((nargs < 0) || (nargs > 1)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    if (nargs == 1) {
+	dt = xmlXPathPopString(ctxt);
+	if (xmlXPathCheckError(ctxt)) {
+	    xmlXPathSetTypeError(ctxt);
+	    return;
+	}
+    }
+
+    ret = exsltDateTime(dt);
+
+    if (ret == NULL) {
+	xsltGenericDebug(xsltGenericDebugContext,
+			 "{http://exslt.org/dates-and-times}time: "
+			 "invalid date or format %s\n", dt);
+	xmlXPathReturnEmptyString(ctxt);
+    } else {
+	xmlXPathReturnString(ctxt, ret);
+    }
+
+    if (dt != NULL)
+	xmlFree(dt);
+}
+
+/**
+ * exsltDateYearFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateYear() for use by the XPath engine.
+ */
+static void
+exsltDateYearFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *dt = NULL;
+    double ret;
+
+    if ((nargs < 0) || (nargs > 1)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs == 1) {
+	dt = xmlXPathPopString(ctxt);
+	if (xmlXPathCheckError(ctxt)) {
+	    xmlXPathSetTypeError(ctxt);
+	    return;
+	}
+    }
+
+    ret = exsltDateYear(dt);
+
+    if (dt != NULL)
+	xmlFree(dt);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltDateLeapYearFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateLeapYear() for use by the XPath engine.
+ */
+static void
+exsltDateLeapYearFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *dt = NULL;
+    xmlXPathObjectPtr ret;
+
+    if ((nargs < 0) || (nargs > 1)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs == 1) {
+	dt = xmlXPathPopString(ctxt);
+	if (xmlXPathCheckError(ctxt)) {
+	    xmlXPathSetTypeError(ctxt);
+	    return;
+	}
+    }
+
+    ret = exsltDateLeapYear(dt);
+
+    if (dt != NULL)
+	xmlFree(dt);
+
+    valuePush(ctxt, ret);
+}
+
+#define X_IN_Y(x, y)						\
+static void							\
+exsltDate##x##In##y##Function (xmlXPathParserContextPtr ctxt,	\
+			      int nargs) {			\
+    xmlChar *dt = NULL;						\
+    double ret;							\
+								\
+    if ((nargs < 0) || (nargs > 1)) {				\
+	xmlXPathSetArityError(ctxt);				\
+	return;							\
+    }								\
+								\
+    if (nargs == 1) {						\
+	dt = xmlXPathPopString(ctxt);				\
+	if (xmlXPathCheckError(ctxt)) {				\
+	    xmlXPathSetTypeError(ctxt);				\
+	    return;						\
+	}							\
+    }								\
+								\
+    ret = exsltDate##x##In##y(dt);				\
+								\
+    if (dt != NULL)						\
+	xmlFree(dt);						\
+								\
+    xmlXPathReturnNumber(ctxt, ret);				\
+}
+
+/**
+ * exsltDateMonthInYearFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateMonthInYear() for use by the XPath engine.
+ */
+X_IN_Y(Month,Year)
+
+/**
+ * exsltDateMonthNameFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateMonthName() for use by the XPath engine.
+ */
+static void
+exsltDateMonthNameFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *dt = NULL;
+    const xmlChar *ret;
+
+    if ((nargs < 0) || (nargs > 1)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs == 1) {
+	dt = xmlXPathPopString(ctxt);
+	if (xmlXPathCheckError(ctxt)) {
+	    xmlXPathSetTypeError(ctxt);
+	    return;
+	}
+    }
+
+    ret = exsltDateMonthName(dt);
+
+    if (dt != NULL)
+	xmlFree(dt);
+
+    if (ret == NULL)
+	xmlXPathReturnEmptyString(ctxt);
+    else
+	xmlXPathReturnString(ctxt, xmlStrdup(ret));
+}
+
+/**
+ * exsltDateMonthAbbreviationFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateMonthAbbreviation() for use by the XPath engine.
+ */
+static void
+exsltDateMonthAbbreviationFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *dt = NULL;
+    const xmlChar *ret;
+
+    if ((nargs < 0) || (nargs > 1)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs == 1) {
+	dt = xmlXPathPopString(ctxt);
+	if (xmlXPathCheckError(ctxt)) {
+	    xmlXPathSetTypeError(ctxt);
+	    return;
+	}
+    }
+
+    ret = exsltDateMonthAbbreviation(dt);
+
+    if (dt != NULL)
+	xmlFree(dt);
+
+    if (ret == NULL)
+	xmlXPathReturnEmptyString(ctxt);
+    else
+	xmlXPathReturnString(ctxt, xmlStrdup(ret));
+}
+
+/**
+ * exsltDateWeekInYearFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateWeekInYear() for use by the XPath engine.
+ */
+X_IN_Y(Week,Year)
+
+/**
+ * exsltDateWeekInMonthFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateWeekInMonthYear() for use by the XPath engine.
+ */
+X_IN_Y(Week,Month)
+
+/**
+ * exsltDateDayInYearFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateDayInYear() for use by the XPath engine.
+ */
+X_IN_Y(Day,Year)
+
+/**
+ * exsltDateDayInMonthFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateDayInMonth() for use by the XPath engine.
+ */
+X_IN_Y(Day,Month)
+
+/**
+ * exsltDateDayOfWeekInMonthFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDayOfWeekInMonth() for use by the XPath engine.
+ */
+X_IN_Y(DayOfWeek,Month)
+
+/**
+ * exsltDateDayInWeekFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateDayInWeek() for use by the XPath engine.
+ */
+X_IN_Y(Day,Week)
+
+/**
+ * exsltDateDayNameFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateDayName() for use by the XPath engine.
+ */
+static void
+exsltDateDayNameFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *dt = NULL;
+    const xmlChar *ret;
+
+    if ((nargs < 0) || (nargs > 1)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs == 1) {
+	dt = xmlXPathPopString(ctxt);
+	if (xmlXPathCheckError(ctxt)) {
+	    xmlXPathSetTypeError(ctxt);
+	    return;
+	}
+    }
+
+    ret = exsltDateDayName(dt);
+
+    if (dt != NULL)
+	xmlFree(dt);
+
+    if (ret == NULL)
+	xmlXPathReturnEmptyString(ctxt);
+    else
+	xmlXPathReturnString(ctxt, xmlStrdup(ret));
+}
+
+/**
+ * exsltDateMonthDayFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateDayAbbreviation() for use by the XPath engine.
+ */
+static void
+exsltDateDayAbbreviationFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *dt = NULL;
+    const xmlChar *ret;
+
+    if ((nargs < 0) || (nargs > 1)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs == 1) {
+	dt = xmlXPathPopString(ctxt);
+	if (xmlXPathCheckError(ctxt)) {
+	    xmlXPathSetTypeError(ctxt);
+	    return;
+	}
+    }
+
+    ret = exsltDateDayAbbreviation(dt);
+
+    if (dt != NULL)
+	xmlFree(dt);
+
+    if (ret == NULL)
+	xmlXPathReturnEmptyString(ctxt);
+    else
+	xmlXPathReturnString(ctxt, xmlStrdup(ret));
+}
+
+
+/**
+ * exsltDateHourInDayFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateHourInDay() for use by the XPath engine.
+ */
+X_IN_Y(Hour,Day)
+
+/**
+ * exsltDateMinuteInHourFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateMinuteInHour() for use by the XPath engine.
+ */
+X_IN_Y(Minute,Hour)
+
+/**
+ * exsltDateSecondInMinuteFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateSecondInMinute() for use by the XPath engine.
+ */
+X_IN_Y(Second,Minute)
+
+/**
+ * exsltDateSecondsFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateSeconds() for use by the XPath engine.
+ */
+static void
+exsltDateSecondsFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *str = NULL;
+    double   ret;
+
+    if (nargs > 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs == 1) {
+	str = xmlXPathPopString(ctxt);
+	if (xmlXPathCheckError(ctxt)) {
+	    xmlXPathSetTypeError(ctxt);
+	    return;
+	}
+    }
+
+    ret = exsltDateSeconds(str);
+    if (str != NULL)
+	xmlFree(str);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltDateAddFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps exsltDateAdd() for use by the XPath processor.
+ */
+static void
+exsltDateAddFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *ret, *xstr, *ystr;
+
+    if (nargs != 2) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ystr = xmlXPathPopString(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    xstr = xmlXPathPopString(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+        xmlFree(ystr);
+	return;
+    }
+
+    ret = exsltDateAdd(xstr, ystr);
+
+    xmlFree(ystr);
+    xmlFree(xstr);
+
+    if (ret == NULL)
+        xmlXPathReturnEmptyString(ctxt);
+    else
+	xmlXPathReturnString(ctxt, ret);
+}
+
+/**
+ * exsltDateAddDurationFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps exsltDateAddDuration() for use by the XPath processor.
+ */
+static void
+exsltDateAddDurationFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *ret, *xstr, *ystr;
+
+    if (nargs != 2) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ystr = xmlXPathPopString(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    xstr = xmlXPathPopString(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+        xmlFree(ystr);
+	return;
+    }
+
+    ret = exsltDateAddDuration(xstr, ystr);
+
+    xmlFree(ystr);
+    xmlFree(xstr);
+
+    if (ret == NULL)
+        xmlXPathReturnEmptyString(ctxt);
+    else
+	xmlXPathReturnString(ctxt, ret);
+}
+
+/**
+ * exsltDateDifferenceFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps exsltDateDifference() for use by the XPath processor.
+ */
+static void
+exsltDateDifferenceFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *ret, *xstr, *ystr;
+
+    if (nargs != 2) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ystr = xmlXPathPopString(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    xstr = xmlXPathPopString(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+        xmlFree(ystr);
+	return;
+    }
+
+    ret = exsltDateDifference(xstr, ystr);
+
+    xmlFree(ystr);
+    xmlFree(xstr);
+
+    if (ret == NULL)
+        xmlXPathReturnEmptyString(ctxt);
+    else
+	xmlXPathReturnString(ctxt, ret);
+}
+
+/**
+ * exsltDateDurationFunction:
+ * @ctxt: an XPath parser context
+ * @nargs : the number of arguments
+ *
+ * Wraps exsltDateDuration() for use by the XPath engine
+ */
+static void
+exsltDateDurationFunction (xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *ret;
+    xmlChar *number = NULL;
+
+    if ((nargs < 0) || (nargs > 1)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs == 1) {
+	number = xmlXPathPopString(ctxt);
+	if (xmlXPathCheckError(ctxt)) {
+	    xmlXPathSetTypeError(ctxt);
+	    return;
+	}
+    }
+
+    ret = exsltDateDuration(number);
+
+    if (number != NULL)
+	xmlFree(number);
+
+    if (ret == NULL)
+	xmlXPathReturnEmptyString(ctxt);
+    else
+	xmlXPathReturnString(ctxt, ret);
+}
+
+/**
+ * exsltDateRegister:
+ *
+ * Registers the EXSLT - Dates and Times module
+ */
+void
+exsltDateRegister (void)
+{
+    xsltRegisterExtModuleFunction ((const xmlChar *) "add",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateAddFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "add-duration",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateAddDurationFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "date",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateDateFunction);
+#ifdef WITH_TIME
+    xsltRegisterExtModuleFunction ((const xmlChar *) "date-time",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateDateTimeFunction);
+#endif
+    xsltRegisterExtModuleFunction ((const xmlChar *) "day-abbreviation",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateDayAbbreviationFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "day-in-month",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateDayInMonthFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "day-in-week",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateDayInWeekFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "day-in-year",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateDayInYearFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "day-name",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateDayNameFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "day-of-week-in-month",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateDayOfWeekInMonthFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "difference",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateDifferenceFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "duration",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateDurationFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "hour-in-day",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateHourInDayFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "leap-year",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateLeapYearFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "minute-in-hour",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateMinuteInHourFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "month-abbreviation",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateMonthAbbreviationFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "month-in-year",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateMonthInYearFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "month-name",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateMonthNameFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "second-in-minute",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateSecondInMinuteFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "seconds",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateSecondsFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "sum",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateSumFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "time",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateTimeFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "week-in-month",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateWeekInMonthFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "week-in-year",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateWeekInYearFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "year",
+				   (const xmlChar *) EXSLT_DATE_NAMESPACE,
+				   exsltDateYearFunction);
+}

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/dynamic.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/dynamic.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/dynamic.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,274 @@
+/*
+ * dynamic.c: Implementation of the EXSLT -- Dynamic module
+ *
+ * References:
+ *   http://www.exslt.org/dyn/dyn.html
+ *
+ * See Copyright for the status of this software.
+ *
+ * Authors:
+ *   Mark Vakoc <mark_vakoc at jdedwards.com>
+ *   Thomas Broyer <tbroyer at ltgt.net>
+ *
+ * TODO:
+ * elements:
+ * functions:
+ *    min
+ *    max
+ *    sum
+ *    map
+ *    closure
+ */
+
+#define IN_LIBEXSLT
+#include "libexslt/libexslt.h"
+
+#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#include <win32config.h>
+#else
+#include "config.h"
+#endif
+
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+
+#include <libxslt/xsltconfig.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/extensions.h>
+
+#include "exslt.h"
+
+/**
+ * exsltDynEvaluateFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Evaluates the string as an XPath expression and returns the result
+ * value, which may be a boolean, number, string, node set, result tree
+ * fragment or external object.
+ */
+
+static void
+exsltDynEvaluateFunction(xmlXPathParserContextPtr ctxt, int nargs) {
+	xmlChar *str = NULL;
+	xmlXPathObjectPtr ret = NULL;
+
+	if (ctxt == NULL)
+		return;
+	if (nargs != 1) {
+		xsltPrintErrorContext(xsltXPathGetTransformContext(ctxt), NULL, NULL);
+        xsltGenericError(xsltGenericErrorContext,
+			"dyn:evalute() : invalid number of args %d\n", nargs);
+		ctxt->error = XPATH_INVALID_ARITY;
+		return;
+	}
+	str = xmlXPathPopString(ctxt);
+	/* return an empty node-set if an empty string is passed in */
+	if (!str||!xmlStrlen(str)) {
+		if (str) xmlFree(str);
+		valuePush(ctxt,xmlXPathNewNodeSet(NULL));
+		return;
+	}
+	ret = xmlXPathEval(str,ctxt->context);
+	if (ret)
+		valuePush(ctxt,ret);
+ 	else {
+		xsltGenericError(xsltGenericErrorContext,
+			"dyn:evaluate() : unable to evaluate expression '%s'\n",str);
+		valuePush(ctxt,xmlXPathNewNodeSet(NULL));
+	}	
+	xmlFree(str);
+	return;
+}
+
+/**
+ * exsltDynMapFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Evaluates the string as an XPath expression and returns the result
+ * value, which may be a boolean, number, string, node set, result tree
+ * fragment or external object.
+ */
+
+static void
+exsltDynMapFunction(xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlChar *str = NULL;
+    xmlNodeSetPtr nodeset = NULL;
+    xmlXPathCompExprPtr comp = NULL;
+    xmlXPathObjectPtr ret = NULL;
+    xmlDocPtr oldDoc, container;
+    xmlNodePtr oldNode;
+    int oldContextSize;
+    int oldProximityPosition;
+    int i, j;
+
+
+    if (nargs != 2) {
+        xmlXPathSetArityError(ctxt);
+        return;
+    }
+    str = xmlXPathPopString(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+        xmlXPathSetTypeError(ctxt);
+        return;
+    }
+
+    nodeset = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+        xmlXPathSetTypeError(ctxt);
+        return;
+    }
+    if (str == NULL || !xmlStrlen(str) || !(comp = xmlXPathCompile(str))) {
+        if (nodeset != NULL)
+            xmlXPathFreeNodeSet(nodeset);
+        if (str != NULL)
+            xmlFree(str);
+        valuePush(ctxt, xmlXPathNewNodeSet(NULL));
+        return;
+    }
+
+    ret = xmlXPathNewNodeSet(NULL);
+    if (ret == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "exsltDynMapFunctoin: ret == NULL\n");
+        goto cleanup;
+    }
+
+    oldDoc = ctxt->context->doc;
+    oldNode = ctxt->context->node;
+    oldContextSize = ctxt->context->contextSize;
+    oldProximityPosition = ctxt->context->proximityPosition;
+
+        /** 
+	 * since we really don't know we're going to be adding node(s) 
+	 * down the road we create the RVT regardless 
+	 */
+    container = xsltCreateRVT(xsltXPathGetTransformContext(ctxt));
+    if (container != NULL)
+        xsltRegisterTmpRVT(xsltXPathGetTransformContext(ctxt), container);
+
+    if (nodeset && nodeset->nodeNr > 0) {
+        xmlXPathNodeSetSort(nodeset);
+        ctxt->context->contextSize = nodeset->nodeNr;
+        ctxt->context->proximityPosition = 0;
+        for (i = 0; i < nodeset->nodeNr; i++) {
+            xmlXPathObjectPtr subResult = NULL;
+
+            ctxt->context->proximityPosition++;
+            ctxt->context->node = nodeset->nodeTab[i];
+            ctxt->context->doc = nodeset->nodeTab[i]->doc;
+
+            subResult = xmlXPathCompiledEval(comp, ctxt->context);
+            if (subResult != NULL) {
+                switch (subResult->type) {
+                    case XPATH_NODESET:
+                        if (subResult->nodesetval != NULL)
+                            for (j = 0; j < subResult->nodesetval->nodeNr;
+                                 j++)
+                                xmlXPathNodeSetAdd(ret->nodesetval,
+                                                   subResult->nodesetval->
+                                                   nodeTab[j]);
+                        break;
+                    case XPATH_BOOLEAN:
+                        if (container != NULL) {
+                            xmlNodePtr cur =
+                                xmlNewChild((xmlNodePtr) container, NULL,
+                                            BAD_CAST "boolean",
+                                            BAD_CAST (subResult->
+                                            boolval ? "true" : ""));
+                            if (cur != NULL) {
+                                cur->ns =
+                                    xmlNewNs(cur,
+                                             BAD_CAST
+                                             "http://exslt.org/common",
+                                             BAD_CAST "exsl");
+                                xmlXPathNodeSetAddUnique(ret->nodesetval,
+                                                         cur);
+                            }
+                        }
+                        break;
+                    case XPATH_NUMBER:
+                        if (container != NULL) {
+                            xmlChar *val =
+                                xmlXPathCastNumberToString(subResult->
+                                                           floatval);
+                            xmlNodePtr cur =
+                                xmlNewChild((xmlNodePtr) container, NULL,
+                                            BAD_CAST "number", val);
+                            if (val != NULL)
+                                xmlFree(val);
+
+                            if (cur != NULL) {
+                                cur->ns =
+                                    xmlNewNs(cur,
+                                             BAD_CAST
+                                             "http://exslt.org/common",
+                                             BAD_CAST "exsl");
+                                xmlXPathNodeSetAddUnique(ret->nodesetval,
+                                                         cur);
+                            }
+                        }
+                        break;
+                    case XPATH_STRING:
+                        if (container != NULL) {
+                            xmlNodePtr cur =
+                                xmlNewChild((xmlNodePtr) container, NULL,
+                                            BAD_CAST "string",
+                                            subResult->stringval);
+                            if (cur != NULL) {
+                                cur->ns =
+                                    xmlNewNs(cur,
+                                             BAD_CAST
+                                             "http://exslt.org/common",
+                                             BAD_CAST "exsl");
+                                xmlXPathNodeSetAddUnique(ret->nodesetval,
+                                                         cur);
+                            }
+                        }
+                        break;
+		    default:
+                        break;
+                }
+                xmlXPathFreeObject(subResult);
+            }
+        }
+    }
+    ctxt->context->doc = oldDoc;
+    ctxt->context->node = oldNode;
+    ctxt->context->contextSize = oldContextSize;
+    ctxt->context->proximityPosition = oldProximityPosition;
+
+
+  cleanup:
+    /* restore the xpath context */
+    if (comp != NULL)
+        xmlXPathFreeCompExpr(comp);
+    if (nodeset != NULL)
+        xmlXPathFreeNodeSet(nodeset);
+    if (str != NULL)
+        xmlFree(str);
+    valuePush(ctxt, ret);
+    return;
+}
+
+
+/**
+ * exsltDynRegister:
+ *
+ * Registers the EXSLT - Dynamic module
+ */
+
+void
+exsltDynRegister (void) {
+    xsltRegisterExtModuleFunction ((const xmlChar *) "evaluate",
+				   EXSLT_DYNAMIC_NAMESPACE,
+				   exsltDynEvaluateFunction);
+  xsltRegisterExtModuleFunction ((const xmlChar *) "map",
+				   EXSLT_DYNAMIC_NAMESPACE,
+				   exsltDynMapFunction);
+
+}

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/exslt.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/exslt.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/exslt.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,39 @@
+#define IN_LIBEXSLT
+#include "libexslt/libexslt.h"
+
+#include <libxml/xmlversion.h>
+
+#include "config.h"
+
+#include <libxslt/xsltconfig.h>
+#include <libxslt/extensions.h>
+
+#include "exsltconfig.h"
+#include "exslt.h"
+
+const char *exsltLibraryVersion = LIBEXSLT_VERSION_STRING 
+				LIBEXSLT_VERSION_EXTRA;
+const int exsltLibexsltVersion = LIBEXSLT_VERSION;
+const int exsltLibxsltVersion = LIBXSLT_VERSION;
+const int exsltLibxmlVersion = LIBXML_VERSION;
+
+/**
+ * exsltRegisterAll:
+ *
+ * Registers all available EXSLT extensions
+ */
+void
+exsltRegisterAll (void) {
+    exsltCommonRegister();
+#ifdef EXSLT_CRYPTO_ENABLED
+    exsltCryptoRegister();
+#endif
+    exsltMathRegister();
+    exsltSetsRegister();
+    exsltFuncRegister();
+    exsltStrRegister();
+    exsltDateRegister();
+    exsltSaxonRegister();
+    exsltDynRegister();
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/exslt.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/exslt.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/exslt.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,92 @@
+
+#ifndef __EXSLT_H__
+#define __EXSLT_H__
+
+#include <libxml/tree.h>
+#include "exsltexports.h"
+#include "exsltconfig.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXSLTPUBVAR const char *exsltLibraryVersion;
+EXSLTPUBVAR const int exsltLibexsltVersion;
+EXSLTPUBVAR const int exsltLibxsltVersion;
+EXSLTPUBVAR const int exsltLibxmlVersion;
+
+/**
+ * EXSLT_COMMON_NAMESPACE:
+ *
+ * Namespace for EXSLT common functions
+ */
+#define EXSLT_COMMON_NAMESPACE ((const xmlChar *) "http://exslt.org/common")
+/**
+ * EXSLT_CRYPTO_NAMESPACE:
+ *
+ * Namespace for EXSLT crypto functions
+ */
+#define EXSLT_CRYPTO_NAMESPACE ((const xmlChar *) "http://exslt.org/crypto")
+/**
+ * EXSLT_MATH_NAMESPACE:
+ *
+ * Namespace for EXSLT math functions
+ */
+#define EXSLT_MATH_NAMESPACE ((const xmlChar *) "http://exslt.org/math")
+/**
+ * EXSLT_SETS_NAMESPACE:
+ *
+ * Namespace for EXSLT set functions
+ */
+#define EXSLT_SETS_NAMESPACE ((const xmlChar *) "http://exslt.org/sets")
+/**
+ * EXSLT_FUNCTIONS_NAMESPACE:
+ *
+ * Namespace for EXSLT functions extension functions
+ */
+#define EXSLT_FUNCTIONS_NAMESPACE ((const xmlChar *) "http://exslt.org/functions")
+/**
+ * EXSLT_STRINGS_NAMESPACE:
+ *
+ * Namespace for EXSLT strings functions
+ */
+#define EXSLT_STRINGS_NAMESPACE ((const xmlChar *) "http://exslt.org/strings")
+/**
+ * EXSLT_DATE_NAMESPACE:
+ *
+ * Namespace for EXSLT date functions
+ */
+#define EXSLT_DATE_NAMESPACE ((const xmlChar *) "http://exslt.org/dates-and-times")
+/**
+ * EXSLT_DYNAMIC_NAMESPACE:
+ *
+ * Namespace for EXSLT dynamic functions
+ */
+#define EXSLT_DYNAMIC_NAMESPACE ((const xmlChar *) "http://exslt.org/dynamic")
+
+/**
+ * SAXON_NAMESPACE:
+ *
+ * Namespace for SAXON extensions functions
+ */
+#define SAXON_NAMESPACE ((const xmlChar *) "http://icl.com/saxon")
+
+EXSLTPUBFUN void EXSLTCALL exsltCommonRegister (void);
+#ifdef EXSLT_CRYPTO_ENABLED
+EXSLTPUBFUN void EXSLTCALL exsltCryptoRegister (void);
+#endif
+EXSLTPUBFUN void EXSLTCALL exsltMathRegister (void);
+EXSLTPUBFUN void EXSLTCALL exsltSetsRegister (void);
+EXSLTPUBFUN void EXSLTCALL exsltFuncRegister (void);
+EXSLTPUBFUN void EXSLTCALL exsltStrRegister (void);
+EXSLTPUBFUN void EXSLTCALL exsltDateRegister (void);
+EXSLTPUBFUN void EXSLTCALL exsltSaxonRegister (void);
+EXSLTPUBFUN void EXSLTCALL exsltDynRegister(void);
+
+EXSLTPUBFUN void EXSLTCALL exsltRegisterAll (void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __EXSLT_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/exsltconfig.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/exsltconfig.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/exsltconfig.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,73 @@
+/*
+ * exsltconfig.h: compile-time version informations for the EXSLT library
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#ifndef __XML_EXSLTCONFIG_H__
+#define __XML_EXSLTCONFIG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * LIBEXSLT_DOTTED_VERSION:
+ *
+ * the version string like "1.2.3"
+ */
+#define LIBEXSLT_DOTTED_VERSION "1.1.16"
+
+/**
+ * LIBEXSLT_VERSION:
+ *
+ * the version number: 1.2.3 value is 1002003
+ */
+#define LIBEXSLT_VERSION 813
+
+/**
+ * LIBEXSLT_VERSION_STRING:
+ *
+ * the version number string, 1.2.3 value is "1002003"
+ */
+#define LIBEXSLT_VERSION_STRING "813"
+
+/**
+ * LIBEXSLT_VERSION_EXTRA:
+ *
+ * extra version information, used to show a CVS compilation
+ */
+#define	LIBEXSLT_VERSION_EXTRA "-CVS1050"
+
+/**
+ * WITH_CRYPTO:
+ *
+ * Whether crypto support is configured into exslt
+ */
+#if 1
+#define EXSLT_CRYPTO_ENABLED
+#endif
+
+/**
+ * ATTRIBUTE_UNUSED:
+ *
+ * This macro is used to flag unused function parameters to GCC
+ */
+#ifdef __GNUC__
+#ifdef HAVE_ANSIDECL_H
+#include <ansidecl.h>
+#endif
+#ifndef ATTRIBUTE_UNUSED
+#define ATTRIBUTE_UNUSED __attribute__((unused))
+#endif
+#else
+#define ATTRIBUTE_UNUSED
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_EXSLTCONFIG_H__ */

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/exsltconfig.h.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/exsltconfig.h.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/exsltconfig.h.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,73 @@
+/*
+ * exsltconfig.h: compile-time version informations for the EXSLT library
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#ifndef __XML_EXSLTCONFIG_H__
+#define __XML_EXSLTCONFIG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * LIBEXSLT_DOTTED_VERSION:
+ *
+ * the version string like "1.2.3"
+ */
+#define LIBEXSLT_DOTTED_VERSION "@VERSION@"
+
+/**
+ * LIBEXSLT_VERSION:
+ *
+ * the version number: 1.2.3 value is 1002003
+ */
+#define LIBEXSLT_VERSION @LIBEXSLT_VERSION_NUMBER@
+
+/**
+ * LIBEXSLT_VERSION_STRING:
+ *
+ * the version number string, 1.2.3 value is "1002003"
+ */
+#define LIBEXSLT_VERSION_STRING "@LIBEXSLT_VERSION_NUMBER@"
+
+/**
+ * LIBEXSLT_VERSION_EXTRA:
+ *
+ * extra version information, used to show a CVS compilation
+ */
+#define	LIBEXSLT_VERSION_EXTRA "@LIBEXSLT_VERSION_EXTRA@"
+
+/**
+ * WITH_CRYPTO:
+ *
+ * Whether crypto support is configured into exslt
+ */
+#if @WITH_CRYPTO@
+#define EXSLT_CRYPTO_ENABLED
+#endif
+
+/**
+ * ATTRIBUTE_UNUSED:
+ *
+ * This macro is used to flag unused function parameters to GCC
+ */
+#ifdef __GNUC__
+#ifdef HAVE_ANSIDECL_H
+#include <ansidecl.h>
+#endif
+#ifndef ATTRIBUTE_UNUSED
+#define ATTRIBUTE_UNUSED __attribute__((unused))
+#endif
+#else
+#define ATTRIBUTE_UNUSED
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_EXSLTCONFIG_H__ */

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/exsltexports.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/exsltexports.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/exsltexports.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,140 @@
+/*
+ * exsltexports.h : macros for marking symbols as exportable/importable.
+ *
+ * See Copyright for the status of this software.
+ *
+ * igor at zlatkovic.com
+ */
+
+#ifndef __EXSLT_EXPORTS_H__
+#define __EXSLT_EXPORTS_H__
+
+/**
+ * EXSLTPUBFUN, EXSLTPUBVAR, EXSLTCALL
+ *
+ * Macros which declare an exportable function, an exportable variable and
+ * the calling convention used for functions.
+ *
+ * Please use an extra block for every platform/compiler combination when
+ * modifying this, rather than overlong #ifdef lines. This helps
+ * readability as well as the fact that different compilers on the same
+ * platform might need different definitions.
+ */
+
+/**
+ * EXSLTPUBFUN:
+ *
+ * Macros which declare an exportable function
+ */
+#define EXSLTPUBFUN
+/**
+ * EXSLTPUBVAR:
+ *
+ * Macros which declare an exportable variable
+ */
+#define EXSLTPUBVAR extern
+/**
+ * EXSLTCALL:
+ *
+ * Macros which declare the called convention for exported functions
+ */
+#define EXSLTCALL
+
+/** DOC_DISABLE */
+
+/* Windows platform with MS compiler */
+#if defined(_WIN32) && defined(_MSC_VER)
+  #undef EXSLTPUBFUN
+  #undef EXSLTPUBVAR
+  #undef EXSLTCALL
+  #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
+    #define EXSLTPUBFUN __declspec(dllexport)
+    #define EXSLTPUBVAR __declspec(dllexport)
+  #else
+    #define EXSLTPUBFUN
+    #if !defined(LIBEXSLT_STATIC)
+      #define EXSLTPUBVAR __declspec(dllimport) extern
+    #else
+      #define EXSLTPUBVAR extern
+    #endif
+  #endif
+  #define EXSLTCALL __cdecl
+  #if !defined _REENTRANT
+    #define _REENTRANT
+  #endif
+#endif
+
+/* Windows platform with Borland compiler */
+#if defined(_WIN32) && defined(__BORLANDC__)
+  #undef EXSLTPUBFUN
+  #undef EXSLTPUBVAR
+  #undef EXSLTCALL
+  #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
+    #define EXSLTPUBFUN __declspec(dllexport)
+    #define EXSLTPUBVAR __declspec(dllexport) extern
+  #else
+    #define EXSLTPUBFUN
+    #if !defined(LIBEXSLT_STATIC)
+      #define EXSLTPUBVAR __declspec(dllimport) extern
+    #else
+      #define EXSLTPUBVAR extern
+    #endif
+  #endif
+  #define EXSLTCALL __cdecl
+  #if !defined _REENTRANT
+    #define _REENTRANT
+  #endif
+#endif
+
+/* Windows platform with GNU compiler (Mingw) */
+#if defined(_WIN32) && defined(__MINGW32__)
+  #undef EXSLTPUBFUN
+  #undef EXSLTPUBVAR
+  #undef EXSLTCALL
+/*
+  #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
+*/
+  #if !defined(LIBEXSLT_STATIC)
+    #define EXSLTPUBFUN __declspec(dllexport)
+    #define EXSLTPUBVAR __declspec(dllexport) extern
+  #else
+    #define EXSLTPUBFUN
+    #if !defined(LIBEXSLT_STATIC)
+      #define EXSLTPUBVAR __declspec(dllimport) extern
+    #else
+      #define EXSLTPUBVAR extern
+    #endif
+  #endif
+  #define EXSLTCALL __cdecl
+  #if !defined _REENTRANT
+    #define _REENTRANT
+  #endif
+#endif
+
+/* Cygwin platform, GNU compiler */
+#if defined(_WIN32) && defined(__CYGWIN__)
+  #undef EXSLTPUBFUN
+  #undef EXSLTPUBVAR
+  #undef EXSLTCALL
+  #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
+    #define EXSLTPUBFUN __declspec(dllexport)
+    #define EXSLTPUBVAR __declspec(dllexport)
+  #else
+    #define EXSLTPUBFUN
+    #if !defined(LIBEXSLT_STATIC)
+      #define EXSLTPUBVAR __declspec(dllimport) extern
+    #else
+      #define EXSLTPUBVAR
+    #endif
+  #endif
+  #define EXSLTCALL __cdecl
+#endif
+
+/* Compatibility */
+#if !defined(LIBEXSLT_PUBLIC)
+#define LIBEXSLT_PUBLIC EXSLTPUBVAR
+#endif
+
+#endif /* __EXSLT_EXPORTS_H__ */
+
+

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/functions.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/functions.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/functions.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,661 @@
+#define IN_LIBEXSLT
+#include "libexslt/libexslt.h"
+
+#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#include <win32config.h>
+#else
+#include "config.h"
+#endif
+
+#include <string.h>
+
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/hash.h>
+#include <libxml/debugXML.h>
+
+#include <libxslt/xsltutils.h>
+#include <libxslt/variables.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/extensions.h>
+#include <libxslt/transform.h>
+#include <libxslt/imports.h>
+
+#include "exslt.h"
+
+typedef struct _exsltFuncFunctionData exsltFuncFunctionData;
+struct _exsltFuncFunctionData {
+    int nargs;			/* number of arguments to the function */
+    xmlNodePtr content;		/* the func:fuction template content */
+};
+
+typedef struct _exsltFuncData exsltFuncData;
+struct _exsltFuncData {
+    xmlHashTablePtr funcs;	/* pointer to the stylesheet module data */
+    xmlXPathObjectPtr result;	/* returned by func:result */
+    int error;			/* did an error occur? */
+};
+
+typedef struct _exsltFuncResultPreComp exsltFuncResultPreComp;
+struct _exsltFuncResultPreComp {
+    xsltElemPreComp comp;
+    xmlXPathCompExprPtr select;
+    xmlNsPtr *nsList;
+    int nsNr;
+};
+
+/* Used for callback function in exsltInitFunc */
+typedef struct _exsltFuncImportRegData exsltFuncImportRegData;
+struct _exsltFuncImportRegData {
+    xsltTransformContextPtr ctxt;
+    xmlHashTablePtr hash;
+};
+
+static void exsltFuncFunctionFunction (xmlXPathParserContextPtr ctxt,
+				       int nargs);
+static exsltFuncFunctionData *exsltFuncNewFunctionData(void);
+
+/**
+ * exsltFuncRegisterFunc:
+ * @func:  the #exsltFuncFunctionData for the function
+ * @ctxt:  an XSLT transformation context
+ * @URI:  the function namespace URI
+ * @name: the function name
+ *
+ * Registers a function declared by a func:function element
+ */
+static void
+exsltFuncRegisterFunc (exsltFuncFunctionData *data,
+		       xsltTransformContextPtr ctxt,
+		       const xmlChar *URI, const xmlChar *name,
+		       ATTRIBUTE_UNUSED const xmlChar *ignored) {
+    if ((data == NULL) || (ctxt == NULL) || (URI == NULL) || (name == NULL))
+	return;
+
+    xsltGenericDebug(xsltGenericDebugContext,
+		     "exsltFuncRegisterFunc: register {%s}%s\n",
+		     URI, name);
+    xsltRegisterExtFunction(ctxt, name, URI,
+			    exsltFuncFunctionFunction);
+}
+
+/*
+ * exsltFuncRegisterImportFunc
+ * @data:    the exsltFuncFunctionData for the function
+ * @ch:	     structure containing context and hash table
+ * @URI:     the function namespace URI
+ * @name:    the function name
+ *
+ * Checks if imported function is already registered in top-level
+ * stylesheet.  If not, copies function data and registers function
+ */
+static void
+exsltFuncRegisterImportFunc (exsltFuncFunctionData *data,
+			     exsltFuncImportRegData *ch,
+			     const xmlChar *URI, const xmlChar *name,
+			     ATTRIBUTE_UNUSED const xmlChar *ignored) {
+    exsltFuncFunctionData *func=NULL;
+
+    if ((data == NULL) || (ch == NULL) || (URI == NULL) || (name == NULL))
+            return;
+
+    if (ch->ctxt == NULL || ch->hash == NULL)
+    	return;
+
+    /* Check if already present */
+    func = (exsltFuncFunctionData*)xmlHashLookup2(ch->hash, URI, name);
+    if (func == NULL) {		/* Not yet present - copy it in */
+    	func = exsltFuncNewFunctionData();
+	memcpy(func, data, sizeof(exsltFuncFunctionData));
+	if (xmlHashAddEntry2(ch->hash, URI, name, func) < 0) {
+	    xsltGenericError(xsltGenericErrorContext,
+	    	    "Failed to register function {%s}%s\n",
+		    URI, name);
+	} else {		/* Do the registration */
+	    xsltGenericDebug(xsltGenericDebugContext,
+	            "exsltFuncRegisterImportFunc: register {%s}%s\n",
+		    URI, name);
+	    xsltRegisterExtFunction(ch->ctxt, name, URI,
+		    exsltFuncFunctionFunction);
+	}
+    }
+}
+
+/**
+ * exsltFuncInit:
+ * @ctxt: an XSLT transformation context
+ * @URI: the namespace URI for the extension
+ *
+ * Initializes the EXSLT - Functions module.
+ *
+ * Returns the data for this transformation
+ */
+static exsltFuncData *
+exsltFuncInit (xsltTransformContextPtr ctxt, const xmlChar *URI) {
+    exsltFuncData *ret;
+    xsltStylesheetPtr tmp;
+    exsltFuncImportRegData ch;
+    xmlHashTablePtr hash;
+    
+    ret = (exsltFuncData *) xmlMalloc (sizeof(exsltFuncData));
+    if (ret == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "exsltFuncInit: not enough memory\n");
+	return(NULL);
+    }
+    memset(ret, 0, sizeof(exsltFuncData));
+
+    ret->result = NULL;
+    ret->error = 0;
+
+    ch.hash = (xmlHashTablePtr) xsltStyleGetExtData(ctxt->style, URI);
+    ret->funcs = ch.hash;
+    xmlHashScanFull(ch.hash, (xmlHashScannerFull) exsltFuncRegisterFunc, ctxt);
+    tmp = ctxt->style;
+    ch.ctxt = ctxt;
+    while ((tmp=xsltNextImport(tmp))!=NULL) {
+	hash = xsltGetExtInfo(tmp, URI);
+	if (hash != NULL) {
+	    xmlHashScanFull(hash, 
+		    (xmlHashScannerFull) exsltFuncRegisterImportFunc, &ch);
+	}
+    }
+
+    return(ret);
+}
+
+/**
+ * exsltFuncShutdown:
+ * @ctxt: an XSLT transformation context
+ * @URI: the namespace URI for the extension
+ * @data: the module data to free up
+ *
+ * Shutdown the EXSLT - Functions module
+ */
+static void
+exsltFuncShutdown (xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,
+		   const xmlChar *URI ATTRIBUTE_UNUSED,
+		   exsltFuncData *data) {
+    if (data->result != NULL)
+	xmlXPathFreeObject(data->result);
+    xmlFree(data);
+}
+
+/**
+ * exsltFuncStyleInit:
+ * @style: an XSLT stylesheet
+ * @URI: the namespace URI for the extension
+ *
+ * Allocates the stylesheet data for EXSLT - Function
+ *
+ * Returns the allocated data
+ */
+static xmlHashTablePtr
+exsltFuncStyleInit (xsltStylesheetPtr style ATTRIBUTE_UNUSED,
+		    const xmlChar *URI ATTRIBUTE_UNUSED) {
+    return xmlHashCreate(1);
+}
+
+/**
+ * exsltFuncStyleShutdown:
+ * @style: an XSLT stylesheet
+ * @URI: the namespace URI for the extension
+ * @data: the stylesheet data to free up
+ *
+ * Shutdown the EXSLT - Function module
+ */
+static void
+exsltFuncStyleShutdown (xsltStylesheetPtr style ATTRIBUTE_UNUSED,
+			const xmlChar *URI ATTRIBUTE_UNUSED,
+			xmlHashTablePtr data) {
+    xmlHashFree(data, (xmlHashDeallocator) xmlFree);
+}
+
+/**
+ * exsltFuncNewFunctionData:
+ *
+ * Allocates an #exslFuncFunctionData object
+ *
+ * Returns the new structure
+ */
+static exsltFuncFunctionData *
+exsltFuncNewFunctionData (void) {
+    exsltFuncFunctionData *ret;
+
+    ret = (exsltFuncFunctionData *) xmlMalloc (sizeof(exsltFuncFunctionData));
+    if (ret == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "exsltFuncNewFunctionData: not enough memory\n");
+	return (NULL);
+    }
+    memset(ret, 0, sizeof(exsltFuncFunctionData));
+
+    ret->nargs = 0;
+    ret->content = NULL;
+
+    return(ret);
+}
+
+/**
+ * exsltFreeFuncResultPreComp:
+ * @comp:  the #exsltFuncResultPreComp to free up
+ *
+ * Deallocates an #exsltFuncResultPreComp
+ */
+static void
+exsltFreeFuncResultPreComp (exsltFuncResultPreComp *comp) {
+    if (comp == NULL)
+	return;
+
+    if (comp->select != NULL)
+	xmlXPathFreeCompExpr (comp->select);
+    if (comp->nsList != NULL)
+        xmlFree(comp->nsList);
+    xmlFree(comp);
+}
+
+/**
+ * exsltFuncFunctionFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Evaluates the func:function element that defines the called function.
+ */
+static void
+exsltFuncFunctionFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlXPathObjectPtr obj, oldResult, ret;
+    exsltFuncData *data;
+    exsltFuncFunctionData *func;
+    xmlNodePtr paramNode, oldInsert, fake, content = NULL;
+    int oldBase;
+    xsltStackElemPtr params = NULL, param;
+    xsltTransformContextPtr tctxt = xsltXPathGetTransformContext(ctxt);
+    int i;
+
+    /*
+     * retrieve func:function template
+     */
+    data = (exsltFuncData *) xsltGetExtData (tctxt,
+					     EXSLT_FUNCTIONS_NAMESPACE);
+    oldResult = data->result;
+    data->result = NULL;
+
+    func = (exsltFuncFunctionData*) xmlHashLookup2 (data->funcs,
+						    ctxt->context->functionURI,
+						    ctxt->context->function);
+
+    /*
+     * params handling
+     */
+    if (nargs > func->nargs) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "{%s}%s: called with too many arguments\n",
+			 ctxt->context->functionURI, ctxt->context->function);
+	ctxt->error = XPATH_INVALID_ARITY;
+	return;
+    }
+    if (func->content != NULL) {
+	paramNode = func->content->prev;
+	content = func->content;
+    }
+    else
+	paramNode = NULL;
+    if ((paramNode == NULL) && (func->nargs != 0)) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "exsltFuncFunctionFunction: nargs != 0 and "
+			 "param == NULL\n");
+	return;
+    }
+
+    /* set params */
+    for (i = func->nargs; (i > nargs) && (paramNode != NULL); i--) {
+	paramNode = paramNode->prev;
+	if (content != NULL)
+	    content = content->prev;
+    }
+    while ((i-- > 0) && (paramNode != NULL)) {
+	obj = valuePop(ctxt);
+	/* FIXME: this is a bit hackish */
+	param = xsltParseStylesheetCallerParam (tctxt, paramNode);
+	param->computed = 1;
+	if (param->value != NULL)
+	    xmlXPathFreeObject(param->value);
+	param->value = obj;
+	param->next = params;
+	params = param;
+	paramNode = paramNode->prev;
+    }
+
+    /*
+     * actual processing
+     */
+    fake = xmlNewDocNode(tctxt->output, NULL,
+			 (const xmlChar *)"fake", NULL);
+    oldInsert = tctxt->insert;
+    tctxt->insert = fake;
+    /* 
+     * In order to give the function variables a new 'scope' we
+     * change varsBase in the context.
+     */
+    oldBase = tctxt->varsBase;
+    tctxt->varsBase = tctxt->varsNr;
+    xsltApplyOneTemplate (tctxt, xmlXPathGetContextNode(ctxt),
+			  content, NULL, params);
+    tctxt->insert = oldInsert;
+    tctxt->varsBase = oldBase;	/* restore original scope */
+    if (params != NULL)
+	xsltFreeStackElemList(params);
+
+    if (data->error != 0)
+	return;
+
+    if (data->result != NULL)
+	ret = data->result;
+    else
+	ret = xmlXPathNewCString("");
+
+    data->result = oldResult;
+
+    /*
+     * It is an error if the instantiation of the template results in
+     * the generation of result nodes.
+     */
+    if (fake->children != NULL) {
+#ifdef LIBXML_DEBUG_ENABLED
+	xmlDebugDumpNode (stderr, fake, 1);
+#endif
+	xsltGenericError(xsltGenericErrorContext,
+			 "{%s}%s: cannot write to result tree while "
+			 "executing a function\n",
+			 ctxt->context->functionURI, ctxt->context->function);
+	xmlFreeNode(fake);
+	return;
+    }
+    xmlFreeNode(fake);
+    valuePush(ctxt, ret);
+}
+
+
+static void
+exsltFuncFunctionComp (xsltStylesheetPtr style, xmlNodePtr inst) {
+    xmlChar *name, *prefix;
+    xmlNsPtr ns;
+    xmlHashTablePtr data;
+    exsltFuncFunctionData *func;
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+
+    {
+	xmlChar *qname;
+
+	qname = xmlGetProp(inst, (const xmlChar *) "name");
+	name = xmlSplitQName2 (qname, &prefix);
+	xmlFree(qname);
+    }
+    if ((name == NULL) || (prefix == NULL)) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "func:function: not a QName\n");
+	if (name != NULL)
+	    xmlFree(name);
+	return;
+    }
+    /* namespace lookup */
+    ns = xmlSearchNs (inst->doc, inst, prefix);
+    if (ns == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "func:function: undeclared prefix %s\n",
+			 prefix);
+	xmlFree(name);
+	xmlFree(prefix);
+	return;
+    }
+    xmlFree(prefix);
+
+    /*
+     * Create function data
+     */
+    func = exsltFuncNewFunctionData();
+    func->content = inst->children;
+    while (IS_XSLT_ELEM(func->content) &&
+	   IS_XSLT_NAME(func->content, "param")) {
+	func->content = func->content->next;
+	func->nargs++;
+    }
+
+    xsltParseTemplateContent(style, inst);
+
+    /*
+     * Register the function data such that it can be retrieved
+     * by exslFuncFunctionFunction
+     */
+    data = (xmlHashTablePtr) xsltStyleGetExtData (style,
+						  EXSLT_FUNCTIONS_NAMESPACE);
+    if (data == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "exsltFuncFunctionComp: no stylesheet data\n");
+	xmlFree(name);
+	return;
+    }
+
+    if (xmlHashAddEntry2 (data, ns->href, name, func) < 0) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "Failed to register function {%s}%s\n",
+			 ns->href, name);
+    } else {
+	xsltGenericDebug(xsltGenericDebugContext,
+			 "exsltFuncFunctionComp: register {%s}%s\n",
+			 ns->href, name);
+    }
+    xmlFree(name);
+}
+
+static xsltElemPreCompPtr
+exsltFuncResultComp (xsltStylesheetPtr style, xmlNodePtr inst,
+		     xsltTransformFunction function) {
+    xmlNodePtr test;
+    xmlChar *sel;
+    exsltFuncResultPreComp *ret;
+
+    /*
+     * "Validity" checking
+     */
+    /* it is an error to have any following sibling elements aside
+     * from the xsl:fallback element.
+     */
+    for (test = inst->next; test != NULL; test = test->next) {
+	if (test->type != XML_ELEMENT_NODE)
+	    continue;
+	if (IS_XSLT_ELEM(test) && IS_XSLT_NAME(test, "fallback"))
+	    continue;
+	xsltGenericError(xsltGenericErrorContext,
+			 "exsltFuncResultElem: only xsl:fallback is "
+			 "allowed to follow func:result\n");
+	return (NULL);
+    }
+    /* it is an error for a func:result element to not be a descendant
+     * of func:function.
+     * it is an error if a func:result occurs within a func:result
+     * element.
+     * it is an error if instanciating the content of a variable
+     * binding element (i.e. xsl:variable, xsl:param) results in the 
+     * instanciation of a func:result element.
+     */
+    for (test = inst->parent; test != NULL; test = test->parent) {
+	if ((test->ns != NULL) &&
+	    (xmlStrEqual(test->ns->href, EXSLT_FUNCTIONS_NAMESPACE))) {
+	    if (xmlStrEqual(test->name, (const xmlChar *) "function")) {
+		break;
+	    }
+	    if (xmlStrEqual(test->name, (const xmlChar *) "result")) {
+		xsltGenericError(xsltGenericErrorContext,
+				 "func:result element not allowed within"
+				 " another func:result element\n");
+		return (NULL);
+	    }
+	}
+	if (IS_XSLT_ELEM(test) &&
+	    (IS_XSLT_NAME(test, "variable") ||
+	     IS_XSLT_NAME(test, "param"))) {
+	    xsltGenericError(xsltGenericErrorContext,
+			     "func:result element not allowed within"
+			     " a variable binding element\n");
+	    return (NULL);
+	}
+    }
+
+    /*
+     * Precomputation
+     */
+    ret = (exsltFuncResultPreComp *)
+	xmlMalloc (sizeof(exsltFuncResultPreComp));
+    if (ret == NULL) {
+	xsltPrintErrorContext(NULL, NULL, NULL);
+        xsltGenericError(xsltGenericErrorContext,
+                         "exsltFuncResultComp : malloc failed\n");
+        return (NULL);
+    }
+    memset(ret, 0, sizeof(exsltFuncResultPreComp));
+
+    xsltInitElemPreComp ((xsltElemPreCompPtr) ret, style, inst, function,
+		 (xsltElemPreCompDeallocator) exsltFreeFuncResultPreComp);
+    ret->select = NULL;
+
+    /*
+     * Precompute the select attribute
+     */
+    sel = xmlGetNsProp(inst, (const xmlChar *) "select", NULL);
+    if (sel != NULL) {
+	ret->select = xmlXPathCompile (sel);
+	xmlFree(sel);
+    }
+    /*
+     * Precompute the namespace list
+     */
+    ret->nsList = xmlGetNsList(inst->doc, inst);
+    if (ret->nsList != NULL) {
+        int i = 0;
+        while (ret->nsList[i] != NULL)
+	    i++;
+	ret->nsNr = i;
+    }
+    return ((xsltElemPreCompPtr) ret);
+}
+
+static void
+exsltFuncResultElem (xsltTransformContextPtr ctxt,
+	             xmlNodePtr node ATTRIBUTE_UNUSED, xmlNodePtr inst,
+		     exsltFuncResultPreComp *comp) {
+    exsltFuncData *data;
+    xmlXPathObjectPtr ret;
+    xmlNsPtr *oldNsList;
+    int oldNsNr;
+
+    /* It is an error if instantiating the content of the
+     * func:function element results in the instantiation of more than
+     * one func:result elements.
+     */
+    data = (exsltFuncData *) xsltGetExtData (ctxt, EXSLT_FUNCTIONS_NAMESPACE);
+    if (data == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "exsltFuncReturnElem: data == NULL\n");
+	return;
+    }
+    if (data->result != NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "func:result already instanciated\n");
+	data->error = 1;
+	return;
+    }
+    /*
+     * Processing
+     */
+    if (comp->select != NULL) {
+	/* If the func:result element has a select attribute, then the
+	 * value of the attribute must be an expression and the
+	 * returned value is the object that results from evaluating
+	 * the expression. In this case, the content must be empty.
+	 */
+	if (inst->children != NULL) {
+	    xsltGenericError(xsltGenericErrorContext,
+			     "func:result content must be empty if it"
+			     " has a select attribute\n");
+	    data->error = 1;
+	    return;
+	}
+	oldNsList = ctxt->xpathCtxt->namespaces;
+	oldNsNr = ctxt->xpathCtxt->nsNr;
+	ctxt->xpathCtxt->namespaces = comp->nsList;
+	ctxt->xpathCtxt->nsNr = comp->nsNr;
+	ret = xmlXPathCompiledEval(comp->select, ctxt->xpathCtxt);
+	ctxt->xpathCtxt->nsNr = oldNsNr;
+	ctxt->xpathCtxt->namespaces = oldNsList;
+	if (ret == NULL) {
+	    xsltGenericError(xsltGenericErrorContext,
+			     "exsltFuncResultElem: ret == NULL\n");
+	    return;
+	}
+    } else if (inst->children != NULL) {
+	/* If the func:result element does not have a select attribute
+	 * and has non-empty content (i.e. the func:result element has
+	 * one or more child nodes), then the content of the
+	 * func:result element specifies the value.
+	 */
+	xmlNodePtr oldInsert;
+	xmlDocPtr container;
+
+	container = xsltCreateRVT(ctxt);
+	if (container == NULL) {
+	    xsltGenericError(xsltGenericErrorContext,
+			     "exsltFuncResultElem: out of memory\n");
+	    data->error = 1;
+	    return;
+	}
+	xsltRegisterTmpRVT(ctxt, container);
+	oldInsert = ctxt->insert;
+	ctxt->insert = (xmlNodePtr) container;
+	xsltApplyOneTemplate (ctxt, ctxt->xpathCtxt->node,
+			      inst->children, NULL, NULL);
+	ctxt->insert = oldInsert;
+
+	ret = xmlXPathNewValueTree((xmlNodePtr) container);
+	if (ret == NULL) {
+	    xsltGenericError(xsltGenericErrorContext,
+			     "exsltFuncResultElem: ret == NULL\n");
+	    data->error = 1;
+	} else {
+	    ret->boolval = 0; /* Freeing is not handled there anymore */
+	}
+    } else {
+	/* If the func:result element has empty content and does not
+	 * have a select attribute, then the returned value is an
+	 * empty string.
+	 */
+	ret = xmlXPathNewCString("");
+    }
+    data->result = ret;
+}
+
+/**
+ * exsltFuncRegister:
+ *
+ * Registers the EXSLT - Functions module
+ */
+void
+exsltFuncRegister (void) {
+    xsltRegisterExtModuleFull (EXSLT_FUNCTIONS_NAMESPACE,
+		       (xsltExtInitFunction) exsltFuncInit,
+		       (xsltExtShutdownFunction) exsltFuncShutdown,
+		       (xsltStyleExtInitFunction) exsltFuncStyleInit,
+		       (xsltStyleExtShutdownFunction) exsltFuncStyleShutdown);
+
+    xsltRegisterExtModuleTopLevel ((const xmlChar *) "function",
+				   EXSLT_FUNCTIONS_NAMESPACE,
+				   exsltFuncFunctionComp);
+    xsltRegisterExtModuleElement ((const xmlChar *) "result",
+			  EXSLT_FUNCTIONS_NAMESPACE,
+			  (xsltPreComputeFunction)exsltFuncResultComp,
+			  (xsltTransformFunction) exsltFuncResultElem);
+}

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/libexslt.3
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/libexslt.3	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/libexslt.3	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,270 @@
+.TH LIBEXSLT 3 "04 November 2003" libxslt
+.SH NAME
+libexslt \- extension library for XSLT
+.SH SYNOPSIS
+.B #include <libexslt/exslt.h>
+.sp
+.B void exsltCommonRegister(void);
+.br
+.B void exsltDateRegister(void);
+.br
+.B void exsltDynRegister(void);
+.br
+.B void exsltFuncRegister(void);
+.br
+.B void exsltMathRegister(void);
+.br
+.B void exsltSetsRegister(void);
+.br
+.B void exsltStrRegister(void);
+.br
+.B void exsltRegisterAll(void);
+.br
+.B void exsltSaxonRegister(void);
+.SH DESCRIPTION
+The 
+.B libexslt
+library is used to provide extensions to
+.SM XSLT
+functions. These extensions come from the
+.SM EXSLT
+project <http://www.exslt.org/>
+.LP
+.SH USAGE
+To make use of these functions in
+.SM XSLT
+the appropriate namespace must be defined on the
+.B xsl:stylesheet
+element.  To enable support for them in 
+.BR libxslt (3)
+you must call the appropriate functions (listed in the
+.B SYNOPSIS
+section) to register the extensions.  The
+.I xslt-config
+shell script can be used to obtain the necessary flags for
+the pre-processor and linker.
+The supported extensions are:
+.SS COMMON
+.TP 2.2i
+Namespace: http://exslt.org/common
+.TP 2.2i
+See http://www.exslt.org/exsl/index.html for a description.
+.TP 2.2i
+.B node-set()
+convert the given RTF into a node-set.
+.TP
+.B object-type()
+returns the type of the given argument.
+.TP
+.B document
+Create multiple output documents. See http://www.exslt.org/exsl/elements/document/index.html
+
+.SS MATH
+.TP 2.2i
+Namespace: http://exslt.org/math
+.TP 2.2i
+See http://www.exslt.org/math/index.html for a description.
+.TP 2.2i
+.B min()
+returns the minimum value of the given node-set
+.TP
+.B max()
+returns the maximum value of the given node-set
+.TP
+.B highest()
+returns the nodes in the node-set whose value is the maximum value for the node-set.
+.TP
+.B lowest()
+returns the nodes in the node-set whose value is the minimum value for the node-set.
+.TP
+.B constant()
+returns a number value of the given constant with the given precision. The constants are PI, E, SQRRT2, LN2, LN10, LOG2E, and SQRT1_2.
+.TP
+.B random()
+returns a random number between 0 and 1 inclusive.
+.TP
+.B abs()
+returns the absolute value of the argument.
+.TP
+.B sqrt()
+returns the square root of the argument.
+.TP
+.B power()
+returns the power base and power arguments.
+.TP
+.B log()
+returns the natural log of the argument.
+.TP
+.B sin()
+returns the sine of the argument.
+.TP
+.B cos()
+returns the cosine of the argument.
+.TP
+.B tan()
+returns the tangent of the argument.
+.TP
+.B asin()
+returns the arc sine of the argument.
+.TP
+.B acos()
+returns the arc cosine of the argument.
+.TP
+.B atan()
+returns the arc tangent of the argument.
+.TP
+.B atan2()
+returns the arc tangent function of the y/x arguments.
+.TP
+.B exp()
+returns the exponential function of the argument.
+
+.SS SETS
+.TP 2.2i
+Namespace: http://exslt.org/sets
+.TP 2.2i
+See http://www.exslt.org/set/index.html for a description.
+.TP 2.2i
+.B difference()
+returns the difference between the two given node-sets.
+.TP
+.B intersection()
+returns a node-set of the nodes within both given node-sets.
+.TP
+.B distinct()
+returns a node-set of all nodes in the first argument that are not in the seconds argument.
+.TP
+.B has-same-node()
+returns TRUE if there is an intersection between the two given node-sets.
+.TP
+.B leading()
+returns a node-set of all nodes in the first argument that precede the first node in the second argument.
+.TP
+.B trailing()
+returns a node-set of all nodes in the first argument that follow the first node in the second argument.
+
+.SS "DATES and TIMES"
+.TP 2.2i
+Namespace: http://exslt.org/dates-and-times
+.TP 2.2i
+See http://www.exslt.org/date/date.html for a description.
+.TP 2.2i
+.B date-time()
+returns the current date and time as a date/time string.
+.TP
+.B date()
+returns the date specified in the given date/time string.
+.TP
+.B time()
+returns the time specified in the date/time string given as the argument.
+.TP
+.B year()
+returns the year of a date as a number.
+.TP
+.B leap-year()
+returns true if the year given in a date is a leap year.
+.TP
+.B month-in-year()
+returns the month of a date as a number.
+.TP
+.B month-name()
+returns the full name of the month of a date.
+.TP
+.B month-abbreviation()
+returns the abbreviation of the month of a date.
+.TP
+.B week-in-year()
+returns the week of the year as a number.
+.TP
+.B week-in-month()
+returns the week in a month of a date as a number.
+.TP
+.B day-in-year()
+returns the month of a date as a number.
+.TP
+.B day-in-month()
+returns the day of a date as a number.
+.TP
+.B day-of-week-in-month()
+returns the day-of-the-week in a month of a date as a number.
+.TP
+.B day-in-week()
+returns the day of the week given in a date as a number.
+.TP
+.B day-name()
+returns the full name of the day of the week of a date.
+.TP
+.B day-abbreviation()
+returns the abbreviation of the day of the week of a date.
+.TP
+.B hour-in-day()
+returns the hour of the day as a number.
+.TP
+.B minute-in-hour()
+returns the minute of the hour as a number.
+.TP
+.B second-in-minute()
+returns the second of the minute as a number.
+.TP
+.B seconds()
+returns the number of seconds specified by the argument string.
+.TP
+.B add()
+returns the date/time resulting from adding a duration to a date/time. 
+.TP
+.B add-duration()
+returns the duration resulting from adding two given durations together. 
+.TP
+.B difference()
+returns the duration between the first date and the second date.
+.TP
+.B duration()
+returns a duration string that represents the given number of seconds since 1970-01-01T00:00:00.
+
+.SS STRINGS
+.TP 2.2i
+Namespace: http://exslt.org/strings
+.TP 2.2i
+See http://www.exslt.org/str/index.html for a description.
+.TP 2.2i
+.B tokenize()
+returns a node set of token elements, each containing one token from the string.
+.TP
+.B padding()
+returns a string padded to a certain length.
+.TP
+.B align()
+returns a string aligned within another string.
+.TP
+.B concat()
+returns the concatenation of the string values of the nodes in that node set.
+
+.SS FUNCTIONS
+.TP 2.2i
+Namespace: http://exslt.org/functions
+.TP 2.2i
+See http://www.exslt.org/func/index.html for a description.
+.TP 2.2i
+.B function
+declares an extension function.
+.TP
+.B result
+returns the result of an extension function declared in function().
+.SH FILES
+.TP
+.I /usr/bin/xslt-config
+shell script giving pre-processor and linker flags.
+.TP
+.I /usr/lib/libexslt.a
+static library
+.TP
+.I /usr/lib/libexslt.so
+sharable library
+.SH AUTHORS
+Manual page by Heiko W. Rupp (hwr at pilhuhn.de)
+.SH "SEE ALSO"
+.BR libxml (3), 
+.BR libxslt (3), 
+.BR xmllint (1)
+.BR xsltproc (1), 
+.\" end of manual page

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/libexslt.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/libexslt.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/libexslt.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+/*
+ * libexslt.h: internal header only used during the compilation of libexslt
+ *
+ * See COPYRIGHT for the status of this software
+ *
+ * Author: daniel at veillard.com
+ */
+
+#ifndef __XSLT_LIBEXSLT_H__
+#define __XSLT_LIBEXSLT_H__
+
+#if defined(WIN32) && !defined (__CYGWIN__) && !defined (__MINGW32__)
+#include <win32config.h>
+#else
+#include "config.h"
+#endif
+
+#include "xsltconfig.h"
+#include <libxml/xmlversion.h>
+
+#if !defined LIBEXSLT_PUBLIC
+#if (defined (__CYGWIN__) || defined _MSC_VER) && !defined IN_LIBEXSLT && !defined LIBEXSLT_STATIC
+#define LIBEXSLT_PUBLIC __declspec(dllimport)
+#else
+#define LIBEXSLT_PUBLIC 
+#endif
+#endif
+
+#endif /* ! __XSLT_LIBEXSLT_H__ */

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/math.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/math.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/math.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1128 @@
+#define IN_LIBEXSLT
+#include "libexslt/libexslt.h"
+
+#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#include <win32config.h>
+#else
+#include "config.h"
+#endif
+
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+
+#include <libxslt/xsltconfig.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/extensions.h>
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include "exslt.h"
+
+/**
+ * exsltMathMin:
+ * @ns:  a node-set
+ *
+ * Implements the EXSLT - Math min() function:
+ *    number math:min (node-set)
+ *
+ * Returns the minimum value of the nodes passed as the argument, or
+ *         xmlXPathNAN if @ns is NULL or empty or if one of the nodes
+ *         turns into NaN.
+ */
+static double
+exsltMathMin (xmlNodeSetPtr ns) {
+    double ret, cur;
+    int i;
+
+    if ((ns == NULL) || (ns->nodeNr == 0))
+	return(xmlXPathNAN);
+    ret = xmlXPathCastNodeToNumber(ns->nodeTab[0]);
+    if (xmlXPathIsNaN(ret))
+	return(xmlXPathNAN);
+    for (i = 1; i < ns->nodeNr; i++) {
+	cur = xmlXPathCastNodeToNumber(ns->nodeTab[i]);
+	if (xmlXPathIsNaN(cur))
+	    return(xmlXPathNAN);
+	if (cur < ret)
+	    ret = cur;
+    }
+    return(ret);
+}
+
+/**
+ * exsltMathMinFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathMin for use by the XPath processor.
+ */
+static void
+exsltMathMinFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlNodeSetPtr ns;
+    double ret;
+    void *user = NULL;
+
+    if (nargs != 1) {
+	xsltGenericError(xsltGenericErrorContext,
+			 "math:min: invalid number of arguments\n");
+	ctxt->error = XPATH_INVALID_ARITY;
+	return;
+    }
+    /* We need to delay the freeing of value->user */
+    if ((ctxt->value != NULL) && (ctxt->value->boolval != 0)) {
+        user = ctxt->value->user;
+	ctxt->value->boolval = 0;
+	ctxt->value->user = NULL;
+    }
+    ns = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathMin(ns);
+
+    xmlXPathFreeNodeSet(ns);
+    if (user != NULL)
+        xmlFreeNodeList((xmlNodePtr)user);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathMax:
+ * @ns:  a node-set
+ *
+ * Implements the EXSLT - Math max() function:
+ *    number math:max (node-set)
+ *
+ * Returns the maximum value of the nodes passed as arguments, or
+ *         xmlXPathNAN if @ns is NULL or empty or if one of the nodes
+ *         turns into NaN.
+ */
+static double
+exsltMathMax (xmlNodeSetPtr ns) {
+    double ret, cur;
+    int i;
+
+    if ((ns == NULL) || (ns->nodeNr == 0))
+	return(xmlXPathNAN);
+    ret = xmlXPathCastNodeToNumber(ns->nodeTab[0]);
+    if (xmlXPathIsNaN(ret))
+	return(xmlXPathNAN);
+    for (i = 1; i < ns->nodeNr; i++) {
+	cur = xmlXPathCastNodeToNumber(ns->nodeTab[i]);
+	if (xmlXPathIsNaN(cur))
+	    return(xmlXPathNAN);
+	if (cur > ret)
+	    ret = cur;
+    }
+    return(ret);
+}
+
+/**
+ * exsltMathMaxFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathMax for use by the XPath processor.
+ */
+static void
+exsltMathMaxFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlNodeSetPtr ns;
+    double ret;
+    void *user = NULL;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    /* We need to delay the freeing of value->user */
+    if ((ctxt->value != NULL) && (ctxt->value->boolval != 0)) {
+	user = ctxt->value->user;
+	ctxt->value->boolval = 0;
+	ctxt->value->user = 0;
+    }
+    ns = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathMax(ns);
+
+    xmlXPathFreeNodeSet(ns);
+
+    if (user != NULL)
+        xmlFreeNodeList((xmlNodePtr)user);
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathHighest:
+ * @ns:  a node-set
+ *
+ * Implements the EXSLT - Math highest() function:
+ *    node-set math:highest (node-set)
+ *
+ * Returns the nodes in the node-set whose value is the maximum value
+ *         for the node-set.
+ */
+static xmlNodeSetPtr
+exsltMathHighest (xmlNodeSetPtr ns) {
+    xmlNodeSetPtr ret = xmlXPathNodeSetCreate(NULL);
+    double max, cur;
+    int i;
+
+    if ((ns == NULL) || (ns->nodeNr == 0))
+	return(ret);
+
+    max = xmlXPathCastNodeToNumber(ns->nodeTab[0]);
+    if (xmlXPathIsNaN(max))
+	return(ret);
+    else
+	xmlXPathNodeSetAddUnique(ret, ns->nodeTab[0]);
+
+    for (i = 1; i < ns->nodeNr; i++) {
+	cur = xmlXPathCastNodeToNumber(ns->nodeTab[i]);
+	if (xmlXPathIsNaN(cur)) {
+	    xmlXPathEmptyNodeSet(ret);
+	    return(ret);
+	}
+	if (cur < max)
+	    continue;
+	if (cur > max) {
+	    max = cur;
+	    xmlXPathEmptyNodeSet(ret);
+	    xmlXPathNodeSetAddUnique(ret, ns->nodeTab[i]);
+	    continue;
+	}
+	xmlXPathNodeSetAddUnique(ret, ns->nodeTab[i]);
+    }
+    return(ret);
+}
+
+/**
+ * exsltMathHighestFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathHighest for use by the XPath processor
+ */
+static void
+exsltMathHighestFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlNodeSetPtr ns, ret;
+    void *user = NULL;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    /* We need to delay the freeing of value->user */
+    if ((ctxt->value != NULL) && ctxt->value->boolval != 0) {
+        user = ctxt->value->user;
+	ctxt->value->boolval = 0;
+	ctxt->value->user = NULL;
+    }
+    ns = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathHighest(ns);
+
+    xmlXPathFreeNodeSet(ns);
+    if (user != NULL)
+        xmlFreeNodeList((xmlNodePtr)user);
+
+    xmlXPathReturnNodeSet(ctxt, ret);
+}
+
+/**
+ * exsltMathLowest:
+ * @ns:  a node-set
+ *
+ * Implements the EXSLT - Math lowest() function
+ *    node-set math:lowest (node-set)
+ *
+ * Returns the nodes in the node-set whose value is the minimum value
+ *         for the node-set.
+ */
+static xmlNodeSetPtr
+exsltMathLowest (xmlNodeSetPtr ns) {
+    xmlNodeSetPtr ret = xmlXPathNodeSetCreate(NULL);
+    double min, cur;
+    int i;
+
+    if ((ns == NULL) || (ns->nodeNr == 0))
+	return(ret);
+
+    min = xmlXPathCastNodeToNumber(ns->nodeTab[0]);
+    if (xmlXPathIsNaN(min))
+	return(ret);
+    else
+	xmlXPathNodeSetAddUnique(ret, ns->nodeTab[0]);
+
+    for (i = 1; i < ns->nodeNr; i++) {
+	cur = xmlXPathCastNodeToNumber(ns->nodeTab[i]);
+	if (xmlXPathIsNaN(cur)) {
+	    xmlXPathEmptyNodeSet(ret);
+	    return(ret);
+	}
+        if (cur > min)
+	    continue;
+	if (cur < min) {
+	    min = cur;
+	    xmlXPathEmptyNodeSet(ret);
+	    xmlXPathNodeSetAddUnique(ret, ns->nodeTab[i]);
+            continue;
+	}
+	xmlXPathNodeSetAddUnique(ret, ns->nodeTab[i]);
+    }
+    return(ret);
+}
+
+/**
+ * exsltMathLowestFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathLowest for use by the XPath processor
+ */
+static void
+exsltMathLowestFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlNodeSetPtr ns, ret;
+    void *user = NULL;
+    
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    /* We need to delay the freeing of value->user */
+    if ((ctxt->value != NULL) && (ctxt->value->boolval != 0)) {
+        user = ctxt->value->user;
+	ctxt->value->boolval = 0;
+	ctxt->value->user = NULL;
+    }
+    ns = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathLowest(ns);
+
+    xmlXPathFreeNodeSet(ns);
+    if (user != NULL)
+        xmlFreeNodeList((xmlNodePtr)user);
+
+    xmlXPathReturnNodeSet(ctxt, ret);
+}
+
+/* math other functions */
+
+/* constant values */
+#define EXSLT_PI        (const xmlChar *) \
+			"3.1415926535897932384626433832795028841971693993751"
+#define EXSLT_E         (const xmlChar *) \
+			"2.71828182845904523536028747135266249775724709369996"
+#define EXSLT_SQRRT2    (const xmlChar *) \
+			"1.41421356237309504880168872420969807856967187537694"
+#define EXSLT_LN2       (const xmlChar *) \
+			"0.69314718055994530941723212145817656807550013436025"
+#define EXSLT_LN10      (const xmlChar *) \
+			"2.30258509299404568402"
+#define EXSLT_LOG2E     (const xmlChar *) \
+			"1.4426950408889634074"
+#define EXSLT_SQRT1_2   (const xmlChar *) \
+			"0.70710678118654752440"
+
+/**
+ * exsltMathConstant
+ * @name: string
+ * @precision:  number
+ *
+ * Implements the EXSLT - Math constant function:
+ *     number math:constant(string, number)
+ *
+ * Returns a number value of the given constant with the given precision or
+ * xmlXPathNAN if name is unknown.
+ * The constants are PI, E, SQRRT2, LN2, LN10, LOG2E, and SQRT1_2
+ */
+static double
+exsltMathConstant (xmlChar *name, double precision) {
+    xmlChar *str;
+
+    if ((name == NULL) || (xmlXPathIsNaN(precision)) || (precision < 1.0)) {
+        return xmlXPathNAN;
+    }
+
+    if (xmlStrEqual(name, BAD_CAST "PI")) {
+        int len = xmlStrlen(EXSLT_PI);
+
+        if (precision <= len)
+            len = (int)precision;
+        
+        str = xmlStrsub(EXSLT_PI, 0, len);
+        if (str == NULL)
+            return xmlXPathNAN;
+
+        return xmlXPathCastStringToNumber(str);
+
+    } else if (xmlStrEqual(name, BAD_CAST "E")) {
+        int len = xmlStrlen(EXSLT_E);
+
+        if (precision <= len)
+            len = (int)precision;
+        
+        str = xmlStrsub(EXSLT_E, 0, len);
+        if (str == NULL)
+            return xmlXPathNAN;
+
+        return xmlXPathCastStringToNumber(str);
+
+    } else if (xmlStrEqual(name, BAD_CAST "SQRRT2")) {
+        int len = xmlStrlen(EXSLT_SQRRT2);
+
+        if (precision <= len)
+            len = (int)precision;
+        
+        str = xmlStrsub(EXSLT_SQRRT2, 0, len);
+        if (str == NULL)
+            return xmlXPathNAN;
+
+        return xmlXPathCastStringToNumber(str);
+
+    } else if (xmlStrEqual(name, BAD_CAST "LN2")) {
+        int len = xmlStrlen(EXSLT_LN2);
+
+        if (precision <= len)
+            len = (int)precision;
+        
+        str = xmlStrsub(EXSLT_LN2, 0, len);
+        if (str == NULL)
+            return xmlXPathNAN;
+
+        return xmlXPathCastStringToNumber(str);
+
+    } else if (xmlStrEqual(name, BAD_CAST "LN10")) {
+        int len = xmlStrlen(EXSLT_LN10);
+
+        if (precision <= len)
+            len = (int)precision;
+        
+        str = xmlStrsub(EXSLT_LN10, 0, len);
+        if (str == NULL)
+            return xmlXPathNAN;
+
+        return xmlXPathCastStringToNumber(str);
+
+    } else if (xmlStrEqual(name, BAD_CAST "LOG2E")) {
+        int len = xmlStrlen(EXSLT_LOG2E);
+
+        if (precision <= len)
+            len = (int)precision;
+        
+        str = xmlStrsub(EXSLT_LOG2E, 0, len);
+        if (str == NULL)
+            return xmlXPathNAN;
+
+        return xmlXPathCastStringToNumber(str);
+
+    } else if (xmlStrEqual(name, BAD_CAST "SQRT1_2")) {
+        int len = xmlStrlen(EXSLT_SQRT1_2);
+
+        if (precision <= len)
+            len = (int)precision;
+        
+        str = xmlStrsub(EXSLT_SQRT1_2, 0, len);
+        if (str == NULL)
+            return xmlXPathNAN;
+
+        return xmlXPathCastStringToNumber(str);
+
+    } else {
+        return xmlXPathNAN;
+    } 
+}
+
+/**
+ * exsltMathConstantFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathConstant for use by the XPath processor.
+ */
+static void
+exsltMathConstantFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double   ret;
+    xmlChar *name;
+
+    if (nargs != 2) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    name = xmlXPathPopString(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathConstant(name, ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+#if defined(HAVE_STDLIB_H) && defined(RAND_MAX)
+
+/**
+ * exsltMathRandom:
+ *
+ * Implements the EXSLT - Math random() function:
+ *    number math:random ()
+ *
+ * Returns a random number between 0 and 1 inclusive.
+ */
+static double
+exsltMathRandom (void) {
+    double ret;
+    int num;
+
+    num = rand();
+    ret = (double)num / (double)RAND_MAX;
+    return(ret);
+}
+
+/**
+ * exsltMathRandomFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathRandom for use by the XPath processor.
+ */
+static void
+exsltMathRandomFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret;
+
+    if (nargs != 0) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    ret = exsltMathRandom();
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+#endif /* defined(HAVE_STDLIB_H) && defined(RAND_MAX) */
+
+#if HAVE_MATH_H
+
+/**
+ * exsltMathAbs:
+ * @num:  a double
+ *
+ * Implements the EXSLT - Math abs() function:
+ *    number math:abs (number)
+ *
+ * Returns the absolute value of the argument, or xmlXPathNAN if @num is Nan.
+ */
+static double
+exsltMathAbs (double num) {
+    double ret;
+
+    if (xmlXPathIsNaN(num))
+	return(xmlXPathNAN);
+    ret = fabs(num);
+    return(ret);
+}
+
+/**
+ * exsltMathAbsFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathAbs for use by the XPath processor.
+ */
+static void
+exsltMathAbsFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathAbs(ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathSqrt:
+ * @num:  a double
+ *
+ * Implements the EXSLT - Math sqrt() function:
+ *    number math:sqrt (number)
+ *
+ * Returns the square root of the argument, or xmlXPathNAN if @num is Nan.
+ */
+static double
+exsltMathSqrt (double num) {
+    double ret;
+
+    if (xmlXPathIsNaN(num))
+	return(xmlXPathNAN);
+    ret = sqrt(num);
+    return(ret);
+}
+
+/**
+ * exsltMathSqrtFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathSqrt for use by the XPath processor.
+ */
+static void
+exsltMathSqrtFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathSqrt(ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathPower:
+ * @base:  a double
+ * @power:  a double
+ *
+ * Implements the EXSLT - Math power() function:
+ *    number math:power (number, number)
+ *
+ * Returns the power base and power arguments, or xmlXPathNAN
+ * if either @base or @power is Nan.
+ */
+static double
+exsltMathPower (double base, double power) {
+    double ret;
+
+    if ((xmlXPathIsNaN(base) || xmlXPathIsNaN(power)))
+	return(xmlXPathNAN);
+    ret = pow(base, power);
+    return(ret);
+}
+
+/**
+ * exsltMathPower:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathPower for use by the XPath processor.
+ */
+static void
+exsltMathPowerFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret, base;
+
+    if (nargs != 2) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    /* power */
+    base = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathPower(base, ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathLog:
+ * @num:  a double
+ *
+ * Implements the EXSLT - Math log() function:
+ *    number math:log (number)
+ *
+ * Returns the natural log of the argument, or xmlXPathNAN if @num is Nan.
+ */
+static double
+exsltMathLog (double num) {
+    double ret;
+
+    if (xmlXPathIsNaN(num))
+	return(xmlXPathNAN);
+    ret = log(num);
+    return(ret);
+}
+
+/**
+ * exsltMathLogFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathLog for use by the XPath processor.
+ */
+static void
+exsltMathLogFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathLog(ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathSin:
+ * @num:  a double
+ *
+ * Implements the EXSLT - Math sin() function:
+ *    number math:sin (number)
+ *
+ * Returns the sine of the argument, or xmlXPathNAN if @num is Nan.
+ */
+static double
+exsltMathSin (double num) {
+    double ret;
+
+    if (xmlXPathIsNaN(num))
+	return(xmlXPathNAN);
+    ret = sin(num);
+    return(ret);
+}
+
+/**
+ * exsltMathSinFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathSin for use by the XPath processor.
+ */
+static void
+exsltMathSinFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathSin(ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathCos:
+ * @num:  a double
+ *
+ * Implements the EXSLT - Math cos() function:
+ *    number math:cos (number)
+ *
+ * Returns the cosine of the argument, or xmlXPathNAN if @num is Nan.
+ */
+static double
+exsltMathCos (double num) {
+    double ret;
+
+    if (xmlXPathIsNaN(num))
+	return(xmlXPathNAN);
+    ret = cos(num);
+    return(ret);
+}
+
+/**
+ * exsltMathCosFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathCos for use by the XPath processor.
+ */
+static void
+exsltMathCosFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathCos(ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathTan:
+ * @num:  a double
+ *
+ * Implements the EXSLT - Math tan() function:
+ *    number math:tan (number)
+ *
+ * Returns the tangent of the argument, or xmlXPathNAN if @num is Nan.
+ */
+static double
+exsltMathTan (double num) {
+    double ret;
+
+    if (xmlXPathIsNaN(num))
+	return(xmlXPathNAN);
+    ret = tan(num);
+    return(ret);
+}
+
+/**
+ * exsltMathTanFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathTan for use by the XPath processor.
+ */
+static void
+exsltMathTanFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathTan(ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathAsin:
+ * @num:  a double
+ *
+ * Implements the EXSLT - Math asin() function:
+ *    number math:asin (number)
+ *
+ * Returns the arc sine of the argument, or xmlXPathNAN if @num is Nan.
+ */
+static double
+exsltMathAsin (double num) {
+    double ret;
+
+    if (xmlXPathIsNaN(num))
+	return(xmlXPathNAN);
+    ret = asin(num);
+    return(ret);
+}
+
+/**
+ * exsltMathAsinFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathAsin for use by the XPath processor.
+ */
+static void
+exsltMathAsinFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathAsin(ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathAcos:
+ * @num:  a double
+ *
+ * Implements the EXSLT - Math acos() function:
+ *    number math:acos (number)
+ *
+ * Returns the arc cosine of the argument, or xmlXPathNAN if @num is Nan.
+ */
+static double
+exsltMathAcos (double num) {
+    double ret;
+
+    if (xmlXPathIsNaN(num))
+	return(xmlXPathNAN);
+    ret = acos(num);
+    return(ret);
+}
+
+/**
+ * exsltMathAcosFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathAcos for use by the XPath processor.
+ */
+static void
+exsltMathAcosFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathAcos(ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathAtan:
+ * @num:  a double
+ *
+ * Implements the EXSLT - Math atan() function:
+ *    number math:atan (number)
+ *
+ * Returns the arc tangent of the argument, or xmlXPathNAN if @num is Nan.
+ */
+static double
+exsltMathAtan (double num) {
+    double ret;
+
+    if (xmlXPathIsNaN(num))
+	return(xmlXPathNAN);
+    ret = atan(num);
+    return(ret);
+}
+
+/**
+ * exsltMathAtanFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathAtan for use by the XPath processor.
+ */
+static void
+exsltMathAtanFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathAtan(ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathAtan2:
+ * @y:  a double
+ * @x:  a double
+ *
+ * Implements the EXSLT - Math atan2() function:
+ *    number math:atan2 (number, number)
+ *
+ * Returns the arc tangent function of the y/x arguments, or xmlXPathNAN
+ * if either @y or @x is Nan.
+ */
+static double
+exsltMathAtan2 (double y, double x) {
+    double ret;
+
+    if ((xmlXPathIsNaN(y) || xmlXPathIsNaN(x)))
+	return(xmlXPathNAN);
+    ret = atan2(y, x);
+    return(ret);
+}
+
+/**
+ * exsltMathAtan2Function:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathAtan2 for use by the XPath processor.
+ */
+static void
+exsltMathAtan2Function (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret, y;
+
+    if (nargs != 2) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    y = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    /* x */
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathAtan2(y, ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+/**
+ * exsltMathExp:
+ * @num:  a double
+ *
+ * Implements the EXSLT - Math exp() function:
+ *    number math:exp (number)
+ *
+ * Returns the exponential function of the argument, or xmlXPathNAN if
+ * @num is Nan.
+ */
+static double
+exsltMathExp (double num) {
+    double ret;
+
+    if (xmlXPathIsNaN(num))
+	return(xmlXPathNAN);
+    ret = exp(num);
+    return(ret);
+}
+
+/**
+ * exsltMathExpFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #exsltMathExp for use by the XPath processor.
+ */
+static void
+exsltMathExpFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    double ret;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+    ret = xmlXPathPopNumber(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    ret = exsltMathExp(ret);
+
+    xmlXPathReturnNumber(ctxt, ret);
+}
+
+#endif /* HAVE_MATH_H */
+
+/**
+ * exsltMathRegister:
+ *
+ * Registers the EXSLT - Math module
+ */
+
+void
+exsltMathRegister (void) {
+    xsltRegisterExtModuleFunction ((const xmlChar *) "min",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathMinFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "max",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathMaxFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "highest",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathHighestFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "lowest",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathLowestFunction);
+    /* register other math functions */
+    xsltRegisterExtModuleFunction ((const xmlChar *) "constant",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathConstantFunction);
+#ifdef HAVE_STDLIB_H
+    xsltRegisterExtModuleFunction ((const xmlChar *) "random",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathRandomFunction);
+#endif
+#if HAVE_MATH_H
+    xsltRegisterExtModuleFunction ((const xmlChar *) "abs",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathAbsFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "sqrt",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathSqrtFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "power",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathPowerFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "log",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathLogFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "sin",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathSinFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "cos",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathCosFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "tan",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathTanFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "asin",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathAsinFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "acos",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathAcosFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "atan",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathAtanFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "atan2",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathAtan2Function);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "exp",
+				   EXSLT_MATH_NAMESPACE,
+				   exsltMathExpFunction);
+#endif
+}

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/saxon.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/saxon.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/saxon.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,267 @@
+#define IN_LIBEXSLT
+#include "libexslt/libexslt.h"
+
+#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#include <win32config.h>
+#else
+#include "config.h"
+#endif
+
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/parser.h>
+#include <libxml/hash.h>
+
+#include <libxslt/xsltconfig.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/extensions.h>
+
+#include "exslt.h"
+
+/**
+ * exsltSaxonInit:
+ * @ctxt: an XSLT transformation context
+ * @URI: the namespace URI for the extension
+ *
+ * Initializes the SAXON module.
+ *
+ * Returns the data for this transformation
+ */
+static xmlHashTablePtr
+exsltSaxonInit (xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,
+		const xmlChar *URI ATTRIBUTE_UNUSED) {
+    return xmlHashCreate(1);
+}
+
+/**
+ * exsltSaxonShutdown:
+ * @ctxt: an XSLT transformation context
+ * @URI: the namespace URI for the extension
+ * @data: the module data to free up
+ *
+ * Shutdown the SAXON extension module
+ */
+static void
+exsltSaxonShutdown (xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,
+		    const xmlChar *URI ATTRIBUTE_UNUSED,
+		    xmlHashTablePtr data) {
+    xmlHashFree(data, (xmlHashDeallocator) xmlXPathFreeCompExpr);
+}
+
+
+/**
+ * exsltSaxonExpressionFunction:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * The supplied string must contain an XPath expression. The result of
+ * the function is a stored expression, which may be supplied as an
+ * argument to other extension functions such as saxon:eval(),
+ * saxon:sum() and saxon:distinct(). The result of the expression will
+ * usually depend on the current node. The expression may contain
+ * references to variables that are in scope at the point where
+ * saxon:expression() is called: these variables will be replaced in
+ * the stored expression with the values they take at the time
+ * saxon:expression() is called, not the values of the variables at
+ * the time the stored expression is evaluated.  Similarly, if the
+ * expression contains namespace prefixes, these are interpreted in
+ * terms of the namespace declarations in scope at the point where the
+ * saxon:expression() function is called, not those in scope where the
+ * stored expression is evaluated.
+ *
+ * TODO: current implementation doesn't conform to SAXON behaviour
+ * regarding context and namespaces.
+ */
+static void
+exsltSaxonExpressionFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlChar *arg;
+    xmlXPathCompExprPtr ret;
+    xmlHashTablePtr hash;
+    xsltTransformContextPtr tctxt = xsltXPathGetTransformContext(ctxt);
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    arg = xmlXPathPopString(ctxt);
+    if (xmlXPathCheckError(ctxt) || (arg == NULL)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    hash = (xmlHashTablePtr) xsltGetExtData(tctxt,
+					    ctxt->context->functionURI);
+
+    ret = xmlHashLookup(hash, arg);
+
+    if (ret == NULL) {
+	 ret = xmlXPathCompile(arg);
+	 if (ret == NULL) {
+	      xmlFree(arg);
+	      xsltGenericError(xsltGenericErrorContext,
+			"{%s}:%s: argument is not an XPath expression\n",
+			ctxt->context->functionURI, ctxt->context->function);
+	      return;
+	 }
+	 xmlHashAddEntry(hash, arg, (void *) ret);
+    }
+
+    xmlFree(arg);
+
+    xmlXPathReturnExternal(ctxt, ret);
+}
+
+/**
+ * exsltSaxonEvalFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  number of arguments
+ *
+ * Implements de SAXON eval() function:
+ *    object saxon:eval (saxon:stored-expression)
+ * Returns the result of evaluating the supplied stored expression.
+ * A stored expression may be obtained as the result of calling
+ * the saxon:expression() function.
+ * The stored expression is evaluated in the current context, that
+ * is, the context node is the current node, and the context position
+ * and context size are the same as the result of calling position()
+ * or last() respectively.
+ */
+static void
+exsltSaxonEvalFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+     xmlXPathCompExprPtr expr;
+     xmlXPathObjectPtr ret;
+
+     if (nargs != 1) {
+	  xmlXPathSetArityError(ctxt);
+	  return;
+     }
+
+     if (!xmlXPathStackIsExternal(ctxt)) {
+	  xmlXPathSetTypeError(ctxt);
+	  return;
+     }
+
+     expr = (xmlXPathCompExprPtr) xmlXPathPopExternal(ctxt);
+
+     ret = xmlXPathCompiledEval(expr, ctxt->context);
+
+     valuePush(ctxt, ret);
+}
+
+/**
+ * exsltSaxonEvaluateFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs: number of arguments
+ *
+ * Implements the SAXON evaluate() function
+ *     object saxon:evaluate (string)
+ * The supplied string must contain an XPath expression. The result of
+ * the function is the result of evaluating the XPath expression. This
+ * is useful where an expression needs to be constructed at run-time or
+ * passed to the stylesheet as a parameter, for example where the sort
+ * key is determined dynamically. The context for the expression (e.g.
+ * which variables and namespaces are available) is exactly the same as
+ * if the expression were written explicitly at this point in the
+ * stylesheet. The function saxon:evaluate(string) is shorthand for
+ * saxon:eval(saxon:expression(string)).
+ */
+static void
+exsltSaxonEvaluateFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+     if (nargs != 1) {
+	  xmlXPathSetArityError(ctxt);
+	  return;
+     }
+
+     exsltSaxonExpressionFunction(ctxt, 1);
+     exsltSaxonEvalFunction(ctxt, 1);
+}
+
+/**
+ * exsltSaxonLineNumberFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs: number of arguments
+ * 
+ * Implements the SAXON line-number() function
+ *     integer saxon:line-number()
+ *
+ * This returns the line number of the context node in the source document
+ * within the entity that contains it. There are no arguments. If line numbers
+ * are not maintained for the current document, the function returns -1. (To
+ * ensure that line numbers are maintained, use the -l option on the command
+ * line)
+ *
+ * The extension has been extended to have the following form:
+ *     integer saxon:line-number([node-set-1])
+ * If a node-set is given, this extension will return the line number of the
+ * node in the argument node-set that is first in document order.
+ */
+static void
+exsltSaxonLineNumberFunction(xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlNodePtr cur = NULL;
+
+    if (nargs == 0) {
+	cur = ctxt->context->node;
+    } else if (nargs == 1) {
+	xmlXPathObjectPtr obj;
+	xmlNodeSetPtr nodelist;
+	int i;
+
+	if ((ctxt->value == NULL) || (ctxt->value->type != XPATH_NODESET)) {
+	    xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"saxon:line-number() : invalid arg expecting a node-set\n");
+	    ctxt->error = XPATH_INVALID_TYPE;
+	    return;
+	}
+
+	obj = valuePop(ctxt);
+	nodelist = obj->nodesetval;
+	if ((nodelist == NULL) || (nodelist->nodeNr <= 0)) {
+	    xmlXPathFreeObject(obj);
+	    valuePush(ctxt, xmlXPathNewFloat(-1));
+	    return;
+	}
+	cur = nodelist->nodeTab[0];
+	for (i = 1;i < nodelist->nodeNr;i++) {
+	    int ret = xmlXPathCmpNodes(cur, nodelist->nodeTab[i]);
+	    if (ret == -1)
+		cur = nodelist->nodeTab[i];
+	}
+	xmlXPathFreeObject(obj);
+    } else {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"saxon:line-number() : invalid number of args %d\n",
+		nargs);
+	ctxt->error = XPATH_INVALID_ARITY;
+	return;
+    }
+
+    valuePush(ctxt, xmlXPathNewFloat(xmlGetLineNo(cur)));
+    return;
+}
+
+/**
+ * exsltSaxonRegister:
+ *
+ * Registers the SAXON extension module
+ */
+void
+exsltSaxonRegister (void) {
+     xsltRegisterExtModule (SAXON_NAMESPACE,
+			    (xsltExtInitFunction) exsltSaxonInit,
+			    (xsltExtShutdownFunction) exsltSaxonShutdown);
+     xsltRegisterExtModuleFunction((const xmlChar *) "expression",
+				   SAXON_NAMESPACE,
+				   exsltSaxonExpressionFunction);
+     xsltRegisterExtModuleFunction((const xmlChar *) "eval",
+				   SAXON_NAMESPACE,
+				   exsltSaxonEvalFunction);
+     xsltRegisterExtModuleFunction((const xmlChar *) "evaluate",
+				   SAXON_NAMESPACE,
+				   exsltSaxonEvaluateFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "line-number",
+				   SAXON_NAMESPACE,
+				   exsltSaxonLineNumberFunction);
+}

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/sets.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/sets.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/sets.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,292 @@
+#define IN_LIBEXSLT
+#include "libexslt/libexslt.h"
+
+#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#include <win32config.h>
+#else
+#include "config.h"
+#endif
+
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+
+#include <libxslt/xsltutils.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/extensions.h>
+
+#include "exslt.h"
+
+/**
+ * exsltSetsDifferenceFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #xmlXPathDifference for use by the XPath processor
+ */
+static void
+exsltSetsDifferenceFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlNodeSetPtr arg1, arg2, ret;
+
+    if (nargs != 2) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    arg2 = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    arg1 = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    ret = xmlXPathDifference(arg1, arg2);
+
+    if (ret != arg1)
+	xmlXPathFreeNodeSet(arg1);
+    xmlXPathFreeNodeSet(arg2);
+
+    xmlXPathReturnNodeSet(ctxt, ret);
+}
+
+/**
+ * exsltSetsIntersectionFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #xmlXPathIntersection for use by the XPath processor
+ */
+static void
+exsltSetsIntersectionFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlNodeSetPtr arg1, arg2, ret;
+
+    if (nargs != 2) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    arg2 = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    arg1 = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    ret = xmlXPathIntersection(arg1, arg2);
+
+    xmlXPathFreeNodeSet(arg1);
+    xmlXPathFreeNodeSet(arg2);
+
+    xmlXPathReturnNodeSet(ctxt, ret);
+}
+
+/**
+ * exsltSetsDistinctFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #xmlXPathDistinct for use by the XPath processor
+ */
+static void
+exsltSetsDistinctFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlXPathObjectPtr obj;
+    xmlNodeSetPtr ns, ret;
+    int boolval = 0;
+    void *user = NULL;
+
+    if (nargs != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (ctxt->value != NULL) {
+        boolval = ctxt->value->boolval;
+	user = ctxt->value->user;
+	ctxt->value->boolval = 0;
+	ctxt->value->user = NULL;
+    }
+    ns = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt))
+	return;
+
+    /* !!! must be sorted !!! */
+    ret = xmlXPathDistinctSorted(ns);
+
+	if (ret != ns)
+		xmlXPathFreeNodeSet(ns);
+
+    obj = xmlXPathWrapNodeSet(ret);
+    obj->user = user;
+    obj->boolval = boolval;
+    valuePush((ctxt), obj);
+}
+
+/**
+ * exsltSetsHasSameNodesFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #xmlXPathHasSameNodes for use by the XPath processor
+ */
+static void
+exsltSetsHasSameNodesFunction (xmlXPathParserContextPtr ctxt,
+			      int nargs) {
+    xmlNodeSetPtr arg1, arg2;
+    int ret;
+
+    if (nargs != 2) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    arg2 = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    arg1 = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    ret = xmlXPathHasSameNodes(arg1, arg2);
+
+    xmlXPathFreeNodeSet(arg1);
+    xmlXPathFreeNodeSet(arg2);
+
+    xmlXPathReturnBoolean(ctxt, ret);
+}
+
+/**
+ * exsltSetsLeadingFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #xmlXPathLeading for use by the XPath processor
+ */
+static void
+exsltSetsLeadingFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlNodeSetPtr arg1, arg2, ret;
+
+    if (nargs != 2) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    arg2 = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    arg1 = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    /*  If the second node set is empty, then the first node set is
+     * returned.
+     */
+    if (xmlXPathNodeSetIsEmpty(arg2)) {
+	xmlXPathReturnNodeSet(ctxt, arg1);
+
+	xmlXPathFreeNodeSet(arg2);
+
+	return;
+    }
+    /* !!! must be sorted */
+    ret = xmlXPathNodeLeadingSorted(arg1, xmlXPathNodeSetItem(arg2, 0));
+
+    xmlXPathFreeNodeSet(arg1);
+    xmlXPathFreeNodeSet(arg2);
+
+    xmlXPathReturnNodeSet(ctxt, ret);
+}
+
+/**
+ * exsltSetsTrailingFunction:
+ * @ctxt:  an XPath parser context
+ * @nargs:  the number of arguments
+ *
+ * Wraps #xmlXPathTrailing for use by the XPath processor
+ */
+static void
+exsltSetsTrailingFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlNodeSetPtr arg1, arg2, ret;
+
+    if (nargs != 2) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    arg2 = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    arg1 = xmlXPathPopNodeSet(ctxt);
+    if (xmlXPathCheckError(ctxt)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    /*  If the second node set is empty, then the first node set is
+     * returned.
+     */
+    if (xmlXPathNodeSetIsEmpty(arg2)) {
+	xmlXPathReturnNodeSet(ctxt, arg1);
+
+	xmlXPathFreeNodeSet(arg2);
+
+	return;
+    }
+    /* !!! mist be sorted */
+    ret = xmlXPathNodeTrailingSorted(arg1, xmlXPathNodeSetItem(arg2, 0));
+
+    xmlXPathFreeNodeSet(arg1);
+    xmlXPathFreeNodeSet(arg2);
+
+    xmlXPathReturnNodeSet(ctxt, ret);
+}
+
+/**
+ * exsltSetsRegister:
+ *
+ * Registers the EXSLT - Sets module
+ */
+
+void
+exsltSetsRegister (void) {
+    xsltRegisterExtModuleFunction ((const xmlChar *) "difference",
+				   EXSLT_SETS_NAMESPACE,
+				   exsltSetsDifferenceFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "intersection",
+				   EXSLT_SETS_NAMESPACE,
+				   exsltSetsIntersectionFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "distinct",
+				   EXSLT_SETS_NAMESPACE,
+				   exsltSetsDistinctFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "has-same-node",
+				   EXSLT_SETS_NAMESPACE,
+				   exsltSetsHasSameNodesFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "leading",
+				   EXSLT_SETS_NAMESPACE,
+				   exsltSetsLeadingFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "trailing",
+				   EXSLT_SETS_NAMESPACE,
+				   exsltSetsTrailingFunction);
+}

Added: packages/libxslt/branches/upstream/1.1.16/libexslt/strings.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt/strings.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt/strings.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,525 @@
+#define IN_LIBEXSLT
+#include "libexslt/libexslt.h"
+
+#if defined(WIN32) && !defined (__CYGWIN__) && (!__MINGW32__)
+#include <win32config.h>
+#else
+#include "config.h"
+#endif
+
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/parser.h>
+#include <libxml/encoding.h>
+#include <libxml/uri.h>
+
+#include <libxslt/xsltconfig.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/extensions.h>
+
+#include "exslt.h"
+
+/**
+ * exsltStrTokenizeFunction:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * Splits up a string on the characters of the delimiter string and returns a
+ * node set of token elements, each containing one token from the string. 
+ */
+static void
+exsltStrTokenizeFunction(xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xsltTransformContextPtr tctxt;
+    xmlChar *str, *delimiters, *cur;
+    const xmlChar *token, *delimiter;
+    xmlNodePtr node;
+    xmlDocPtr container;
+    xmlXPathObjectPtr ret = NULL;
+    int clen;
+
+    if ((nargs < 1) || (nargs > 2)) {
+        xmlXPathSetArityError(ctxt);
+        return;
+    }
+
+    if (nargs == 2) {
+        delimiters = xmlXPathPopString(ctxt);
+        if (xmlXPathCheckError(ctxt))
+            return;
+    } else {
+        delimiters = xmlStrdup((const xmlChar *) "\t\r\n ");
+    }
+    if (delimiters == NULL)
+        return;
+
+    str = xmlXPathPopString(ctxt);
+    if (xmlXPathCheckError(ctxt) || (str == NULL)) {
+        xmlFree(delimiters);
+        return;
+    }
+
+    /* Return a result tree fragment */
+    tctxt = xsltXPathGetTransformContext(ctxt);
+    if (tctxt == NULL) {
+        xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+	      "exslt:tokenize : internal error tctxt == NULL\n");
+	goto fail;
+    }
+
+    container = xsltCreateRVT(tctxt);
+    if (container != NULL) {
+        xsltRegisterTmpRVT(tctxt, container);
+        ret = xmlXPathNewNodeSet(NULL);
+        if (ret != NULL) {
+            ret->boolval = 0; /* Freeing is not handled there anymore */
+            for (cur = str, token = str; *cur != 0; cur += clen) {
+	        clen = xmlUTF8Size(cur);
+		if (*delimiters == 0) {	/* empty string case */
+		    xmlChar ctmp;
+		    ctmp = *(cur+clen);
+		    *(cur+clen) = 0;
+                    node = xmlNewDocRawNode(container, NULL,
+                                       (const xmlChar *) "token", cur);
+		    xmlAddChild((xmlNodePtr) container, node);
+		    xmlXPathNodeSetAddUnique(ret->nodesetval, node);
+                    *(cur+clen) = ctmp; /* restore the changed byte */
+                    token = cur + clen;
+                } else for (delimiter = delimiters; *delimiter != 0;
+				delimiter += xmlUTF8Size(delimiter)) {
+                    if (!xmlUTF8Charcmp(cur, delimiter)) {
+                        if (cur == token) {
+                            /* discard empty tokens */
+                            token = cur + clen;
+                            break;
+                        }
+                        *cur = 0;	/* terminate the token */
+                        node = xmlNewDocRawNode(container, NULL,
+                                           (const xmlChar *) "token", token);
+			xmlAddChild((xmlNodePtr) container, node);
+			xmlXPathNodeSetAddUnique(ret->nodesetval, node);
+                        *cur = *delimiter; /* restore the changed byte */
+                        token = cur + clen;
+                        break;
+                    }
+                }
+            }
+            if (token != cur) {
+	    	node = xmlNewDocRawNode(container, NULL,
+				    (const xmlChar *) "token", token);
+                xmlAddChild((xmlNodePtr) container, node);
+	        xmlXPathNodeSetAddUnique(ret->nodesetval, node);
+            }
+        }
+    }
+
+fail:
+    if (str != NULL)
+        xmlFree(str);
+    if (delimiters != NULL)
+        xmlFree(delimiters);
+    if (ret != NULL)
+        valuePush(ctxt, ret);
+    else
+        valuePush(ctxt, xmlXPathNewNodeSet(NULL));
+}
+
+/**
+ * exsltStrSplitFunction:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * Splits up a string on a delimiting string and returns a node set of token
+ * elements, each containing one token from the string. 
+ */
+static void
+exsltStrSplitFunction(xmlXPathParserContextPtr ctxt, int nargs) {
+    xsltTransformContextPtr tctxt;
+    xmlChar *str, *delimiter, *cur;
+    const xmlChar *token;
+    xmlNodePtr node;
+    xmlDocPtr container;
+    xmlXPathObjectPtr ret = NULL;
+    int delimiterLength;
+
+    if ((nargs < 1) || (nargs > 2)) {
+        xmlXPathSetArityError(ctxt);
+        return;
+    }
+
+    if (nargs == 2) {
+        delimiter = xmlXPathPopString(ctxt);
+        if (xmlXPathCheckError(ctxt))
+            return;
+    } else {
+        delimiter = xmlStrdup((const xmlChar *) " ");
+    }
+    if (delimiter == NULL)
+        return;
+    delimiterLength = xmlStrlen (delimiter);
+
+    str = xmlXPathPopString(ctxt);
+    if (xmlXPathCheckError(ctxt) || (str == NULL)) {
+        xmlFree(delimiter);
+        return;
+    }
+
+    /* Return a result tree fragment */
+    tctxt = xsltXPathGetTransformContext(ctxt);
+    if (tctxt == NULL) {
+        xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+	      "exslt:tokenize : internal error tctxt == NULL\n");
+	goto fail;
+    }
+
+    container = xsltCreateRVT(tctxt);
+    if (container != NULL) {
+        xsltRegisterTmpRVT(tctxt, container);
+        ret = xmlXPathNewNodeSet(NULL);
+        if (ret != NULL) {
+            ret->boolval = 0; /* Freeing is not handled there anymore */
+            for (cur = str, token = str; *cur != 0; cur++) {
+		if (delimiterLength == 0) {
+		    if (cur != token) {
+			xmlChar tmp = *cur;
+			*cur = 0;
+                        node = xmlNewDocRawNode(container, NULL,
+                                           (const xmlChar *) "token", token);
+			xmlAddChild((xmlNodePtr) container, node);
+			xmlXPathNodeSetAddUnique(ret->nodesetval, node);
+			*cur = tmp;
+			token++;
+		    }
+		}
+		else if (!xmlStrncasecmp(cur, delimiter, delimiterLength)) {
+		    if (cur == token) {
+			/* discard empty tokens */
+			cur = cur + delimiterLength - 1;
+			token = cur + 1;
+			continue;
+		    }
+		    *cur = 0;
+		    node = xmlNewDocRawNode(container, NULL,
+				       (const xmlChar *) "token", token);
+		    xmlAddChild((xmlNodePtr) container, node);
+		    xmlXPathNodeSetAddUnique(ret->nodesetval, node);
+		    *cur = *delimiter;
+		    cur = cur + delimiterLength - 1;
+		    token = cur + 1;
+                }
+            }
+	    if (token != cur) {
+		node = xmlNewDocRawNode(container, NULL,
+				   (const xmlChar *) "token", token);
+		xmlAddChild((xmlNodePtr) container, node);
+		xmlXPathNodeSetAddUnique(ret->nodesetval, node);
+	    }
+        }
+    }
+
+fail:
+    if (str != NULL)
+        xmlFree(str);
+    if (delimiter != NULL)
+        xmlFree(delimiter);
+    if (ret != NULL)
+        valuePush(ctxt, ret);
+    else
+        valuePush(ctxt, xmlXPathNewNodeSet(NULL));
+}
+
+/**
+ * exsltStrEncodeUriFunction:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * URI-Escapes a string
+ */
+static void
+exsltStrEncodeUriFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    int escape_all = 1, str_len = 0;
+    xmlChar *str = NULL, *ret = NULL, *tmp;
+
+    if ((nargs < 2) || (nargs > 3)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs >= 3) {
+        /* check for UTF-8 if encoding was explicitly given;
+           we don't support anything else yet */
+        tmp = xmlXPathPopString(ctxt);
+        if (xmlUTF8Strlen(tmp) != 5 || xmlStrcmp((const xmlChar *)"UTF-8",tmp)) {
+	    xmlXPathReturnEmptyString(ctxt);
+	    xmlFree(tmp);
+	    return;
+	}
+	xmlFree(tmp);
+    }
+
+    escape_all = xmlXPathPopBoolean(ctxt);
+
+    str = xmlXPathPopString(ctxt);
+    str_len = xmlUTF8Strlen(str);
+
+    if (str_len == 0) {
+	xmlXPathReturnEmptyString(ctxt);
+	xmlFree(str);
+	return;
+    }
+
+    ret = xmlURIEscapeStr(str,(const xmlChar *)(escape_all?"-_.!~*'()":"-_.!~*'();/?:@&=+$,[]"));
+    xmlXPathReturnString(ctxt, ret);
+
+    if (str != NULL)
+	xmlFree(str);
+}
+
+/**
+ * exsltStrDecodeUriFunction:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * reverses URI-Escaping of a string
+ */
+static void
+exsltStrDecodeUriFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    int str_len = 0;
+    xmlChar *str = NULL, *ret = NULL, *tmp;
+
+    if ((nargs < 1) || (nargs > 2)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs >= 2) {
+        /* check for UTF-8 if encoding was explicitly given;
+           we don't support anything else yet */
+        tmp = xmlXPathPopString(ctxt);
+        if (xmlUTF8Strlen(tmp) != 5 || xmlStrcmp((const xmlChar *)"UTF-8",tmp)) {
+	    xmlXPathReturnEmptyString(ctxt);
+	    xmlFree(tmp);
+	    return;
+	}
+	xmlFree(tmp);
+    }
+
+    str = xmlXPathPopString(ctxt);
+    str_len = xmlUTF8Strlen(str);
+
+    if (str_len == 0) {
+	xmlXPathReturnEmptyString(ctxt);
+	xmlFree(str);
+	return;
+    }
+
+    ret = (xmlChar *) xmlURIUnescapeString((const char *)str,0,NULL);
+    if (!xmlCheckUTF8(ret)) {
+	/* FIXME: instead of throwing away the whole URI, we should
+        only discard the invalid sequence(s). How to do that? */
+	xmlXPathReturnEmptyString(ctxt);
+	xmlFree(str);
+	xmlFree(ret);
+	return;
+    }
+    
+    xmlXPathReturnString(ctxt, ret);
+
+    if (str != NULL)
+	xmlFree(str);
+}
+
+/**
+ * exsltStrPaddingFunction:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * Creates a padding string of a certain length.
+ */
+static void
+exsltStrPaddingFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    int number, str_len = 0;
+    xmlChar *str = NULL, *ret = NULL, *tmp;
+
+    if ((nargs < 1) || (nargs > 2)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs == 2) {
+	str = xmlXPathPopString(ctxt);
+	str_len = xmlUTF8Strlen(str);
+    }
+    if (str_len == 0) {
+	if (str != NULL) xmlFree(str);
+	str = xmlStrdup((const xmlChar *) " ");
+	str_len = 1;
+    }
+
+    number = (int) xmlXPathPopNumber(ctxt);
+
+    if (number <= 0) {
+	xmlXPathReturnEmptyString(ctxt);
+	xmlFree(str);
+	return;
+    }
+
+    while (number >= str_len) {
+	ret = xmlStrncat(ret, str, str_len);
+	number -= str_len;
+    }
+    tmp = xmlUTF8Strndup (str, number);
+    ret = xmlStrcat(ret, tmp);
+    if (tmp != NULL)
+	xmlFree (tmp);
+
+    xmlXPathReturnString(ctxt, ret);
+
+    if (str != NULL)
+	xmlFree(str);
+}
+
+/**
+ * exsltStrAlignFunction:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * Aligns a string within another string.
+ */
+static void
+exsltStrAlignFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlChar *str, *padding, *alignment, *ret;
+    int str_l, padding_l;
+
+    if ((nargs < 2) || (nargs > 3)) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (nargs == 3)
+	alignment = xmlXPathPopString(ctxt);
+    else
+	alignment = NULL;
+
+    padding = xmlXPathPopString(ctxt);
+    str = xmlXPathPopString(ctxt);
+
+    str_l = xmlUTF8Strlen (str);
+    padding_l = xmlUTF8Strlen (padding);
+
+    if (str_l == padding_l) {
+	xmlXPathReturnString (ctxt, str);
+	xmlFree(padding);
+	xmlFree(alignment);
+	return;
+    }
+
+    if (str_l > padding_l) {
+	ret = xmlUTF8Strndup (str, padding_l);
+    } else {
+	if (xmlStrEqual(alignment, (const xmlChar *) "right")) {
+	    ret = xmlUTF8Strndup (padding, padding_l - str_l);
+	    ret = xmlStrcat (ret, str);
+	} else if (xmlStrEqual(alignment, (const xmlChar *) "center")) {
+	    int left = (padding_l - str_l) / 2;
+	    int right_start;
+
+	    ret = xmlUTF8Strndup (padding, left);
+	    ret = xmlStrcat (ret, str);
+
+	    right_start = xmlUTF8Strsize (padding, left + str_l);
+	    ret = xmlStrcat (ret, padding + right_start);
+	} else {
+	    int str_s;
+
+	    str_s = xmlStrlen (str);
+	    ret = xmlStrdup (str);
+	    ret = xmlStrcat (ret, padding + str_s);
+	}
+    }
+
+    xmlXPathReturnString (ctxt, ret);
+
+    xmlFree(str);
+    xmlFree(padding);
+    xmlFree(alignment);
+}
+
+/**
+ * exsltStrConcatFunction:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments
+ *
+ * Takes a node set and returns the concatenation of the string values
+ * of the nodes in that node set.  If the node set is empty, it
+ * returns an empty string.
+ */
+static void
+exsltStrConcatFunction (xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlXPathObjectPtr obj;
+    xmlChar *ret = NULL;
+    int i;
+
+    if (nargs  != 1) {
+	xmlXPathSetArityError(ctxt);
+	return;
+    }
+
+    if (!xmlXPathStackIsNodeSet(ctxt)) {
+	xmlXPathSetTypeError(ctxt);
+	return;
+    }
+
+    obj = valuePop (ctxt);
+
+    if (xmlXPathNodeSetIsEmpty(obj->nodesetval)) {
+	xmlXPathReturnEmptyString(ctxt);
+	return;
+    }
+
+    for (i = 0; i < obj->nodesetval->nodeNr; i++) {
+	xmlChar *tmp;
+	tmp = xmlXPathCastNodeToString(obj->nodesetval->nodeTab[i]);
+
+	ret = xmlStrcat (ret, tmp);
+
+	xmlFree(tmp);
+    }
+
+    xmlXPathFreeObject (obj);
+
+    xmlXPathReturnString(ctxt, ret);
+}
+
+/**
+ * exsltStrRegister:
+ *
+ * Registers the EXSLT - Strings module
+ */
+
+void
+exsltStrRegister (void) {
+    xsltRegisterExtModuleFunction ((const xmlChar *) "tokenize",
+				   EXSLT_STRINGS_NAMESPACE,
+				   exsltStrTokenizeFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "split",
+				   EXSLT_STRINGS_NAMESPACE,
+				   exsltStrSplitFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "encode-uri",
+				   EXSLT_STRINGS_NAMESPACE,
+				   exsltStrEncodeUriFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "decode-uri",
+				   EXSLT_STRINGS_NAMESPACE,
+				   exsltStrDecodeUriFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "padding",
+				   EXSLT_STRINGS_NAMESPACE,
+				   exsltStrPaddingFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "align",
+				   EXSLT_STRINGS_NAMESPACE,
+				   exsltStrAlignFunction);
+    xsltRegisterExtModuleFunction ((const xmlChar *) "concat",
+				   EXSLT_STRINGS_NAMESPACE,
+				   exsltStrConcatFunction);
+}

Added: packages/libxslt/branches/upstream/1.1.16/libexslt.pc.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libexslt.pc.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libexslt.pc.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+
+Name: libexslt
+Version: @LIBEXSLT_VERSION@
+Description: EXSLT Extension library
+Requires: libxml-2.0
+Libs: @EXSLT_LIBDIR@ @EXSLT_LIBS@
+Cflags: @EXSLT_INCLUDEDIR@

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,64 @@
+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/libxslt $(LIBXML_CFLAGS)
+
+lib_LTLIBRARIES = libxslt.la
+
+xsltincdir = $(includedir)/libxslt
+
+xsltinc_HEADERS = 			\
+	xslt.h				\
+	xsltutils.h			\
+	pattern.h			\
+	templates.h			\
+	variables.h			\
+	keys.h				\
+	numbersInternals.h		\
+	extensions.h			\
+	extra.h				\
+	functions.h			\
+	namespaces.h			\
+	imports.h			\
+	attributes.h			\
+	documents.h			\
+	preproc.h			\
+	transform.h			\
+	security.h			\
+	xsltInternals.h			\
+	xsltconfig.h			\
+	xsltexports.h
+
+libxslt_la_SOURCES = 			\
+	attrvt.c			\
+	xslt.c				\
+	xsltutils.c			\
+	pattern.c			\
+	templates.c			\
+	variables.c			\
+	keys.c				\
+	numbers.c			\
+	extensions.c			\
+	extra.c				\
+	functions.c			\
+	namespaces.c			\
+	imports.c			\
+	attributes.c			\
+	documents.c			\
+	preproc.c			\
+	transform.c			\
+	security.c			\
+	win32config.h			\
+	xsltwin32config.h		\
+	xsltwin32config.h.in		\
+	libxslt.h
+
+libxslt_la_LIBADD = $(EXTRA_LIBS)
+libxslt_la_LDFLAGS = -version-info @LIBXSLT_VERSION_INFO@
+
+man_MANS = libxslt.3
+
+EXTRA_DIST = $(man_MANS) trio.h triodef.h
+
+xsltproc: all
+	@(cd ../xsltproc ; $(MAKE))
+
+install-exec-hook:
+	$(mkinstalldirs) "$(libdir)/libxslt-plugins"

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,668 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libxslt
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+	$(srcdir)/xsltconfig.h.in $(srcdir)/xsltwin32config.h.in \
+	$(xsltinc_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = xsltconfig.h xsltwin32config.h
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man3dir)" \
+	"$(DESTDIR)$(xsltincdir)"
+libLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libxslt_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libxslt_la_OBJECTS = attrvt.lo xslt.lo xsltutils.lo pattern.lo \
+	templates.lo variables.lo keys.lo numbers.lo extensions.lo \
+	extra.lo functions.lo namespaces.lo imports.lo attributes.lo \
+	documents.lo preproc.lo transform.lo security.lo
+libxslt_la_OBJECTS = $(am_libxslt_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libxslt_la_SOURCES)
+DIST_SOURCES = $(libxslt_la_SOURCES)
+man3dir = $(mandir)/man3
+NROFF = nroff
+MANS = $(man_MANS)
+xsltincHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(xsltinc_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/libxslt $(LIBXML_CFLAGS)
+lib_LTLIBRARIES = libxslt.la
+xsltincdir = $(includedir)/libxslt
+xsltinc_HEADERS = \
+	xslt.h				\
+	xsltutils.h			\
+	pattern.h			\
+	templates.h			\
+	variables.h			\
+	keys.h				\
+	numbersInternals.h		\
+	extensions.h			\
+	extra.h				\
+	functions.h			\
+	namespaces.h			\
+	imports.h			\
+	attributes.h			\
+	documents.h			\
+	preproc.h			\
+	transform.h			\
+	security.h			\
+	xsltInternals.h			\
+	xsltconfig.h			\
+	xsltexports.h
+
+libxslt_la_SOURCES = \
+	attrvt.c			\
+	xslt.c				\
+	xsltutils.c			\
+	pattern.c			\
+	templates.c			\
+	variables.c			\
+	keys.c				\
+	numbers.c			\
+	extensions.c			\
+	extra.c				\
+	functions.c			\
+	namespaces.c			\
+	imports.c			\
+	attributes.c			\
+	documents.c			\
+	preproc.c			\
+	transform.c			\
+	security.c			\
+	win32config.h			\
+	xsltwin32config.h		\
+	xsltwin32config.h.in		\
+	libxslt.h
+
+libxslt_la_LIBADD = $(EXTRA_LIBS)
+libxslt_la_LDFLAGS = -version-info @LIBXSLT_VERSION_INFO@
+man_MANS = libxslt.3
+EXTRA_DIST = $(man_MANS) trio.h triodef.h
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libxslt/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libxslt/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+xsltconfig.h: $(top_builddir)/config.status $(srcdir)/xsltconfig.h.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+xsltwin32config.h: $(top_builddir)/config.status $(srcdir)/xsltwin32config.h.in
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
+	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    f=$(am__strip_dir) \
+	    echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
+	    $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+	  else :; fi; \
+	done
+
+uninstall-libLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	  p=$(am__strip_dir) \
+	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
+	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+	done
+
+clean-libLTLIBRARIES:
+	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libxslt.la: $(libxslt_la_OBJECTS) $(libxslt_la_DEPENDENCIES) 
+	$(LINK) -rpath $(libdir) $(libxslt_la_LDFLAGS) $(libxslt_la_OBJECTS) $(libxslt_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/attributes.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/attrvt.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/documents.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/extensions.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/extra.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/functions.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/imports.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/keys.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/namespaces.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/numbers.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pattern.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/preproc.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/security.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/templates.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/transform.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/variables.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xslt.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xsltutils.Plo at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ at am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+install-man3: $(man3_MANS) $(man_MANS)
+	@$(NORMAL_INSTALL)
+	test -z "$(man3dir)" || $(mkdir_p) "$(DESTDIR)$(man3dir)"
+	@list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \
+	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+	for i in $$l2; do \
+	  case "$$i" in \
+	    *.3*) list="$$list $$i" ;; \
+	  esac; \
+	done; \
+	for i in $$list; do \
+	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+	  else file=$$i; fi; \
+	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+	  case "$$ext" in \
+	    3*) ;; \
+	    *) ext='3' ;; \
+	  esac; \
+	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \
+	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst"; \
+	done
+uninstall-man3:
+	@$(NORMAL_UNINSTALL)
+	@list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \
+	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+	for i in $$l2; do \
+	  case "$$i" in \
+	    *.3*) list="$$list $$i" ;; \
+	  esac; \
+	done; \
+	for i in $$list; do \
+	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+	  case "$$ext" in \
+	    3*) ;; \
+	    *) ext='3' ;; \
+	  esac; \
+	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+	  echo " rm -f '$(DESTDIR)$(man3dir)/$$inst'"; \
+	  rm -f "$(DESTDIR)$(man3dir)/$$inst"; \
+	done
+install-xsltincHEADERS: $(xsltinc_HEADERS)
+	@$(NORMAL_INSTALL)
+	test -z "$(xsltincdir)" || $(mkdir_p) "$(DESTDIR)$(xsltincdir)"
+	@list='$(xsltinc_HEADERS)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(xsltincHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(xsltincdir)/$$f'"; \
+	  $(xsltincHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(xsltincdir)/$$f"; \
+	done
+
+uninstall-xsltincHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(xsltinc_HEADERS)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(xsltincdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(xsltincdir)/$$f"; \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(MANS) $(HEADERS)
+installdirs:
+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(xsltincdir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man install-xsltincHEADERS
+
+install-exec-am: install-libLTLIBRARIES
+	@$(NORMAL_INSTALL)
+	$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
+
+install-info: install-info-am
+
+install-man: install-man3
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES uninstall-man \
+	uninstall-xsltincHEADERS
+
+uninstall-man: uninstall-man3
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libLTLIBRARIES clean-libtool ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-exec-hook install-info install-info-am \
+	install-libLTLIBRARIES install-man install-man3 install-strip \
+	install-xsltincHEADERS installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am uninstall-info-am uninstall-libLTLIBRARIES \
+	uninstall-man uninstall-man3 uninstall-xsltincHEADERS
+
+
+xsltproc: all
+	@(cd ../xsltproc ; $(MAKE))
+
+install-exec-hook:
+	$(mkinstalldirs) "$(libdir)/libxslt-plugins"
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/attributes.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/attributes.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/attributes.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,799 @@
+/*
+ * attributes.c: Implementation of the XSLT attributes handling
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+#ifdef HAVE_FLOAT_H
+#include <float.h>
+#endif
+#ifdef HAVE_IEEEFP_H
+#include <ieeefp.h>
+#endif
+#ifdef HAVE_NAN_H
+#include <nan.h>
+#endif
+#ifdef HAVE_CTYPE_H
+#include <ctype.h>
+#endif
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/hash.h>
+#include <libxml/xmlerror.h>
+#include <libxml/uri.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "attributes.h"
+#include "namespaces.h"
+#include "templates.h"
+#include "imports.h"
+#include "transform.h"
+
+#define WITH_XSLT_DEBUG_ATTRIBUTES
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_ATTRIBUTES
+#endif
+
+/*
+ * TODO: merge attribute sets from different import precedence.
+ *       all this should be precomputed just before the transformation
+ *       starts or at first hit with a cache in the context.
+ *       The simple way for now would be to not allow redefinition of
+ *       attributes once generated in the output tree, possibly costlier.
+ */
+
+/*
+ * Useful macros
+ */
+
+#define IS_BLANK(c) (((c) == 0x20) || ((c) == 0x09) || ((c) == 0xA) ||	\
+                     ((c) == 0x0D))
+
+#define IS_BLANK_NODE(n)						\
+    (((n)->type == XML_TEXT_NODE) && (xsltIsBlank((n)->content)))
+
+
+/*
+ * The in-memory structure corresponding to an XSLT Attribute in
+ * an attribute set
+ */
+
+
+typedef struct _xsltAttrElem xsltAttrElem;
+typedef xsltAttrElem *xsltAttrElemPtr;
+struct _xsltAttrElem {
+    struct _xsltAttrElem *next;/* chained list */
+    xmlNodePtr attr;	/* the xsl:attribute definition */
+    const xmlChar *set; /* or the attribute set */
+    const xmlChar *ns;  /* and its namespace */
+};
+
+/************************************************************************
+ *									*
+ *			XSLT Attribute handling				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltNewAttrElem:
+ * @attr:  the new xsl:attribute node
+ *
+ * Create a new XSLT AttrElem
+ *
+ * Returns the newly allocated xsltAttrElemPtr or NULL in case of error
+ */
+static xsltAttrElemPtr
+xsltNewAttrElem(xmlNodePtr attr) {
+    xsltAttrElemPtr cur;
+
+    cur = (xsltAttrElemPtr) xmlMalloc(sizeof(xsltAttrElem));
+    if (cur == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+		"xsltNewAttrElem : malloc failed\n");
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltAttrElem));
+    cur->attr = attr;
+    return(cur);
+}
+
+/**
+ * xsltFreeAttrElem:
+ * @attr:  an XSLT AttrElem
+ *
+ * Free up the memory allocated by @attr
+ */
+static void
+xsltFreeAttrElem(xsltAttrElemPtr attr) {
+    xmlFree(attr);
+}
+
+/**
+ * xsltFreeAttrElemList:
+ * @list:  an XSLT AttrElem list
+ *
+ * Free up the memory allocated by @list
+ */
+static void
+xsltFreeAttrElemList(xsltAttrElemPtr list) {
+    xsltAttrElemPtr next;
+    
+    while (list != NULL) {
+	next = list->next;
+	xsltFreeAttrElem(list);
+	list = next;
+    }
+}
+
+/**
+ * xsltAddAttrElemList:
+ * @list:  an XSLT AttrElem list
+ * @attr:  the new xsl:attribute node
+ *
+ * Add the new attribute to the list.
+ *
+ * Returns the new list pointer
+ */
+static xsltAttrElemPtr
+xsltAddAttrElemList(xsltAttrElemPtr list, xmlNodePtr attr) {
+    xsltAttrElemPtr next, cur;
+
+    if (attr == NULL)
+	return(list);
+    if (list == NULL)
+	return(xsltNewAttrElem(attr));
+    cur = list;
+    while (cur != NULL) {
+	next = cur->next;
+	if (cur->attr == attr)
+	    return(cur);
+	if (cur->next == NULL) {
+	    cur->next = xsltNewAttrElem(attr);
+	    return(list);
+	}
+	cur = next;
+    }
+    return(list);
+}
+
+/**
+ * xsltMergeAttrElemList:
+ * @list:  an XSLT AttrElem list
+ * @old:  another XSLT AttrElem list
+ *
+ * Add all the attributes from list @old to list @list,
+ * but drop redefinition of existing values.
+ *
+ * Returns the new list pointer
+ */
+static xsltAttrElemPtr
+xsltMergeAttrElemList(xsltAttrElemPtr list, xsltAttrElemPtr old) {
+    xsltAttrElemPtr cur;
+    int add;
+
+    while (old != NULL) {
+	if ((old->attr == NULL) && (old->set == NULL)) {
+	    old = old->next;
+	    continue;
+	}
+	/*
+	 * Check that the attribute is not yet in the list
+	 */
+	cur = list;
+	add = 1;
+	while (cur != NULL) {
+	    if ((cur->attr == NULL) && (cur->set == NULL)) {
+		if (cur->next == NULL)
+		    break;
+		cur = cur->next;
+		continue;
+	    }
+	    if ((cur->set != NULL) && (cur->set == old->set)) {
+		add = 0;
+		break;
+	    }
+	    if (cur->set != NULL) {
+		if (cur->next == NULL)
+		    break;
+		cur = cur->next;
+		continue;
+	    }
+	    if (old->set != NULL) {
+		if (cur->next == NULL)
+		    break;
+		cur = cur->next;
+		continue;
+	    }
+	    if (cur->attr == old->attr) {
+		xsltGenericError(xsltGenericErrorContext,
+	     "xsl:attribute-set : use-attribute-sets recursion detected\n");
+		return(list);
+	    }
+	    if (cur->next == NULL)
+		break;
+            cur = cur->next;
+	}
+
+	if (add == 1) {
+	    if (cur == NULL) {
+		list = xsltNewAttrElem(old->attr);
+		if (old->set != NULL) {
+		    list->set = xmlStrdup(old->set);
+		    if (old->ns != NULL)
+			list->ns = xmlStrdup(old->ns);
+		}
+	    } else if (add) {
+		cur->next = xsltNewAttrElem(old->attr);
+		if (old->set != NULL) {
+		    cur->next->set = xmlStrdup(old->set);
+		    if (old->ns != NULL)
+			cur->next->ns = xmlStrdup(old->ns);
+		}
+	    }
+	}
+
+	old = old->next;
+    }
+    return(list);
+}
+
+/************************************************************************
+ *									*
+ *			Module interfaces				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltParseStylesheetAttributeSet:
+ * @style:  the XSLT stylesheet
+ * @cur:  the "attribute-set" element
+ *
+ * parse an XSLT stylesheet attribute-set element
+ */
+
+void
+xsltParseStylesheetAttributeSet(xsltStylesheetPtr style, xmlNodePtr cur) {
+    const xmlChar *ncname;
+    const xmlChar *prefix;
+    const xmlChar *attrib, *endattr;
+    xmlChar *prop;
+    xmlChar *attributes;
+    xmlNodePtr list;
+    xsltAttrElemPtr values;
+
+    if ((cur == NULL) || (style == NULL))
+	return;
+
+    prop = xmlGetNsProp(cur, (const xmlChar *)"name", NULL);
+    if (prop == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+	     "xsl:attribute-set : name is missing\n");
+	return;
+    }
+
+    ncname = xsltSplitQName(style->dict, prop, &prefix);
+    xmlFree(prop);
+
+    if (style->attributeSets == NULL) {
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
+	xsltGenericDebug(xsltGenericDebugContext,
+	    "creating attribute set table\n");
+#endif
+	style->attributeSets = xmlHashCreate(10);
+    }
+    if (style->attributeSets == NULL)
+	return;
+
+    values = xmlHashLookup2(style->attributeSets, ncname, prefix);
+
+    /*
+     * check the children list
+     */
+    list = cur->children;
+    while (list != NULL) {
+	if (IS_XSLT_ELEM(list)) {
+	    if (!IS_XSLT_NAME(list, "attribute")) {
+		xsltGenericError(xsltGenericErrorContext,
+		    "xsl:attribute-set : unexpected child xsl:%s\n",
+		                 list->name);
+	    } else {
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
+		xsltGenericDebug(xsltGenericDebugContext,
+		    "add attribute to list %s\n", ncname);
+#endif
+                values = xsltAddAttrElemList(values, list);
+	    }
+	} else {
+	    xsltGenericError(xsltGenericErrorContext,
+		"xsl:attribute-set : unexpected child %s\n", list->name);
+	}
+	list = list->next;
+    }
+
+    /*
+     * Check a possible use-attribute-sets definition
+     */
+    /* TODO check recursion */
+
+    attributes = xmlGetNsProp(cur, (const xmlChar *)"use-attribute-sets",
+	NULL);
+    if (attributes == NULL) {
+	goto done;
+    }
+
+    attrib = attributes;
+    while (*attrib != 0) {
+	while (IS_BLANK(*attrib)) attrib++;
+	if (*attrib == 0)
+	    break;
+        endattr = attrib;
+	while ((*endattr != 0) && (!IS_BLANK(*endattr))) endattr++;
+	attrib = xmlDictLookup(style->dict, attrib, endattr - attrib);
+	if (attrib) {
+	    const xmlChar *ncname2 = NULL;
+	    const xmlChar *prefix2 = NULL;
+	    xsltAttrElemPtr values2;
+
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
+	    xsltGenericDebug(xsltGenericDebugContext,
+		"xsl:attribute-set : %s adds use %s\n", ncname, attrib);
+#endif
+	    ncname2 = xsltSplitQName(style->dict, attrib, &prefix2);
+	    values2 = xsltNewAttrElem(NULL);
+	    if (values2 != NULL) {
+		values2->set = ncname2;
+		values2->ns = prefix2;
+		values = xsltMergeAttrElemList(values, values2);
+		xsltFreeAttrElem(values2);
+	    }
+	}
+	attrib = endattr;
+    }
+    xmlFree(attributes);
+
+done:
+    /*
+     * Update the value
+     */
+    if (values == NULL)
+	values = xsltNewAttrElem(NULL);
+    xmlHashUpdateEntry2(style->attributeSets, ncname, prefix, values, NULL);
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
+    xsltGenericDebug(xsltGenericDebugContext,
+	"updated attribute list %s\n", ncname);
+#endif
+}
+
+/**
+ * xsltGetSAS:
+ * @style:  the XSLT stylesheet
+ * @name:  the attribute list name
+ * @ns:  the attribute list namespace
+ *
+ * lookup an attribute set based on the style cascade
+ *
+ * Returns the attribute set or NULL
+ */
+static xsltAttrElemPtr
+xsltGetSAS(xsltStylesheetPtr style, const xmlChar *name, const xmlChar *ns) {
+    xsltAttrElemPtr values;
+
+    while (style != NULL) {
+	values = xmlHashLookup2(style->attributeSets, name, ns);
+	if (values != NULL)
+	    return(values);
+	style = xsltNextImport(style);
+    }
+    return(NULL);
+}
+
+/**
+ * xsltResolveSASCallback,:
+ * @style:  the XSLT stylesheet
+ *
+ * resolve the references in an attribute set.
+ */
+static void
+xsltResolveSASCallback(xsltAttrElemPtr values, xsltStylesheetPtr style,
+	               const xmlChar *name, const xmlChar *ns,
+		       ATTRIBUTE_UNUSED const xmlChar *ignored) {
+    xsltAttrElemPtr tmp;
+    xsltAttrElemPtr refs;
+
+    tmp = values;
+    while (tmp != NULL) {
+	if (tmp->set != NULL) {
+	    /*
+	     * Check against cycles !
+	     */
+	    if ((xmlStrEqual(name, tmp->set)) && (xmlStrEqual(ns, tmp->ns))) {
+		xsltGenericError(xsltGenericErrorContext,
+     "xsl:attribute-set : use-attribute-sets recursion detected on %s\n",
+                                 name);
+	    } else {
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
+		xsltGenericDebug(xsltGenericDebugContext,
+			"Importing attribute list %s\n", tmp->set);
+#endif
+
+		refs = xsltGetSAS(style, tmp->set, tmp->ns);
+		if (refs == NULL) {
+		    xsltGenericError(xsltGenericErrorContext,
+     "xsl:attribute-set : use-attribute-sets %s reference missing %s\n",
+				     name, tmp->set);
+		} else {
+		    /*
+		     * recurse first for cleanup
+		     */
+		    xsltResolveSASCallback(refs, style, name, ns, NULL);
+		    /*
+		     * Then merge
+		     */
+		    xsltMergeAttrElemList(values, refs);
+		    /*
+		     * Then suppress the reference
+		     */
+		    xmlFree((char *)tmp->set);
+		    tmp->set = NULL;
+		    if (tmp->ns != NULL) {
+			xmlFree((char *)tmp->ns);
+		    }
+		}
+	    }
+	}
+	tmp = tmp->next;
+    }
+}
+
+/**
+ * xsltMergeSASCallback,:
+ * @style:  the XSLT stylesheet
+ *
+ * Merge an attribute set from an imported stylesheet.
+ */
+static void
+xsltMergeSASCallback(xsltAttrElemPtr values, xsltStylesheetPtr style,
+	               const xmlChar *name, const xmlChar *ns,
+		       ATTRIBUTE_UNUSED const xmlChar *ignored) {
+    int ret;
+    xsltAttrElemPtr topSet;
+
+    ret = xmlHashAddEntry2(style->attributeSets, name, ns, values);
+    if (ret < 0) {
+	/*
+	 * Add failed, this attribute set can be removed.
+	 */
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
+	xsltGenericDebug(xsltGenericDebugContext,
+		"attribute set %s present already in top stylesheet"
+		" - merging\n", name);
+#endif
+	topSet = xmlHashLookup2(style->attributeSets, name, ns);
+	if (topSet==NULL) {
+	    xsltGenericError(xsltGenericErrorContext,
+	        "xsl:attribute-set : logic error merging from imports for"
+		" attribute-set %s\n", name);
+	} else {
+	    topSet = xsltMergeAttrElemList(topSet, values);
+	    xmlHashUpdateEntry2(style->attributeSets, name, ns, topSet, NULL);
+	}
+	xsltFreeAttrElemList(values);
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
+    } else {
+	xsltGenericDebug(xsltGenericDebugContext,
+		"attribute set %s moved to top stylesheet\n",
+		         name);
+#endif
+    }
+}
+
+/**
+ * xsltResolveStylesheetAttributeSet:
+ * @style:  the XSLT stylesheet
+ *
+ * resolve the references between attribute sets.
+ */
+void
+xsltResolveStylesheetAttributeSet(xsltStylesheetPtr style) {
+    xsltStylesheetPtr cur;
+
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
+    xsltGenericDebug(xsltGenericDebugContext,
+	    "Resolving attribute sets references\n");
+#endif
+    /*
+     * First aggregate all the attribute sets definitions from the imports
+     */
+    cur = xsltNextImport(style);
+    while (cur != NULL) {
+	if (cur->attributeSets != NULL) {
+	    if (style->attributeSets == NULL) {
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
+		xsltGenericDebug(xsltGenericDebugContext,
+		    "creating attribute set table\n");
+#endif
+		style->attributeSets = xmlHashCreate(10);
+	    }
+	    xmlHashScanFull(cur->attributeSets, 
+		(xmlHashScannerFull) xsltMergeSASCallback, style);
+	    /*
+	     * the attribute lists have either been migrated to style
+	     * or freed directly in xsltMergeSASCallback()
+	     */
+	    xmlHashFree(cur->attributeSets, NULL);
+	    cur->attributeSets = NULL;
+	}
+	cur = xsltNextImport(cur);
+    }
+
+    /*
+     * Then resolve all the references and computes the resulting sets
+     */
+    if (style->attributeSets != NULL) {
+	xmlHashScanFull(style->attributeSets, 
+		(xmlHashScannerFull) xsltResolveSASCallback, style);
+    }
+}
+
+/**
+ * xsltAttributeInternal:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt attribute node
+ * @comp:  precomputed information
+ * @fromset:  the attribute comes from an attribute-set
+ *
+ * Process the xslt attribute node on the source node
+ */
+static void
+xsltAttributeInternal(xsltTransformContextPtr ctxt, xmlNodePtr node,
+                      xmlNodePtr inst,
+		      xsltStylePreCompPtr castedComp,
+                      int fromset) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemAttributePtr comp =
+	(xsltStyleItemAttributePtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif
+    xmlChar *prop = NULL;
+    xmlChar *namespace;
+    const xmlChar *name = NULL;
+    const xmlChar *prefix = NULL;
+    xmlChar *value = NULL;
+    xmlNsPtr ns = NULL;
+    xmlAttrPtr attr;
+    const xmlChar *URL = NULL;
+
+
+    if ((comp == NULL) || (ctxt == NULL)) {
+        xsltTransformError(ctxt, NULL, inst,
+                         "xsl:attribute : compilation failed\n");
+        return;
+    }
+    if (ctxt->insert == NULL)
+        return;
+
+    if ((node == NULL) || (inst == NULL) || (comp == NULL))
+        return;
+    if (!comp->has_name) {
+        return;
+    }
+    if (ctxt->insert->children != NULL) {
+        xsltTransformError(ctxt, NULL, inst,
+                         "xsl:attribute : node already has children\n");
+        return;
+    }
+#ifdef WITH_DEBUGGER
+    if (ctxt->debugStatus != XSLT_DEBUG_NONE) {
+        xslHandleDebugger(inst, node, NULL, ctxt);
+    }
+#endif
+
+    if (comp->name == NULL) {
+        prop =
+            xsltEvalAttrValueTemplate(ctxt, inst, (const xmlChar *) "name",
+                                      XSLT_NAMESPACE);
+        if (prop == NULL) {
+            xsltTransformError(ctxt, NULL, inst,
+                             "xsl:attribute : name is missing\n");
+            goto error;
+        }
+	if (xmlValidateQName(prop, 0)) {
+	    xsltTransformError(ctxt, NULL, inst,
+			    "xsl:attribute : invalid QName\n");
+	    /* we fall through to catch any further errors, if possible */
+	}
+	name = xsltSplitQName(ctxt->dict, prop, &prefix);
+	xmlFree(prop);
+    } else {
+	name = xsltSplitQName(ctxt->dict, comp->name, &prefix);
+    }
+
+    if (!xmlStrncasecmp(prefix, (xmlChar *) "xmlns", 5)) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "xsltAttribute: xmlns prefix forbidden\n");
+#endif
+        goto error;
+    }
+    if ((comp->ns == NULL) && (comp->has_ns)) {
+        namespace = xsltEvalAttrValueTemplate(ctxt, inst,
+                                              (const xmlChar *)
+                                              "namespace", XSLT_NAMESPACE);
+        if (namespace != NULL) {
+            ns = xsltGetSpecialNamespace(ctxt, inst, namespace, prefix,
+                                         ctxt->insert);
+            xmlFree(namespace);
+        } else {
+            if (prefix != NULL) {
+                ns = xmlSearchNs(inst->doc, inst, prefix);
+                if (ns == NULL) {
+                    xsltTransformError(ctxt, NULL, inst,
+			 "xsl:attribute : no namespace bound to prefix %s\n",
+                                     prefix);
+                } else {
+                    ns = xsltGetNamespace(ctxt, inst, ns, ctxt->insert);
+                }
+            }
+        }
+    } else if (comp->ns != NULL) {
+        ns = xsltGetSpecialNamespace(ctxt, inst, comp->ns, prefix,
+                                     ctxt->insert);
+    } else if (prefix != NULL) {
+	xmlNsPtr tmp;
+	tmp = xmlSearchNs(inst->doc, inst, prefix);
+	if (tmp != NULL) {
+	    ns = xsltGetNamespace(ctxt, inst, tmp, ctxt->insert);
+	}
+    }
+
+    if ((fromset) && (ns != NULL))
+        URL = ns->href;
+
+    if (fromset) {
+	if (URL != NULL)
+	    attr = xmlHasNsProp(ctxt->insert, name, URL);
+	else
+	    attr = xmlHasProp(ctxt->insert, name);
+	if (attr != NULL)
+	    return;
+    }
+    value = xsltEvalTemplateString(ctxt, node, inst);
+    if (value == NULL) {
+        if (ns) {
+            attr = xmlSetNsProp(ctxt->insert, ns, name,
+                                (const xmlChar *) "");
+        } else {
+            attr =
+                xmlSetProp(ctxt->insert, name, (const xmlChar *) "");
+        }
+    } else {
+        if (ns) {
+            attr = xmlSetNsProp(ctxt->insert, ns, name, value);
+        } else {
+            attr = xmlSetProp(ctxt->insert, name, value);
+        }
+    }
+
+error:
+    if (value != NULL)
+        xmlFree(value);
+}
+
+/**
+ * xsltAttribute:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt attribute node
+ * @comp:  precomputed information
+ *
+ * Process the xslt attribute node on the source node
+ */
+void
+xsltAttribute(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	      xmlNodePtr inst, xsltStylePreCompPtr comp) {
+    xsltAttributeInternal(ctxt, node, inst, comp, 0);
+}
+
+/**
+ * xsltApplyAttributeSet:
+ * @ctxt:  the XSLT stylesheet
+ * @node:  the node in the source tree.
+ * @inst:  the xslt attribute node
+ * @attributes:  the set list.
+ *
+ * Apply the xsl:use-attribute-sets
+ */
+
+void
+xsltApplyAttributeSet(xsltTransformContextPtr ctxt, xmlNodePtr node,
+                      xmlNodePtr inst ATTRIBUTE_UNUSED,
+                      const xmlChar * attributes)
+{
+    const xmlChar *ncname = NULL;
+    const xmlChar *prefix = NULL;
+    const xmlChar *attrib, *endattr;
+    xsltAttrElemPtr values;
+    xsltStylesheetPtr style;
+
+    if (attributes == NULL) {
+        return;
+    }
+
+    attrib = attributes;
+    while (*attrib != 0) {
+        while (IS_BLANK(*attrib))
+            attrib++;
+        if (*attrib == 0)
+            break;
+        endattr = attrib;
+        while ((*endattr != 0) && (!IS_BLANK(*endattr)))
+            endattr++;
+        attrib = xmlDictLookup(ctxt->dict, attrib, endattr - attrib);
+        if (attrib) {
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
+            xsltGenericDebug(xsltGenericDebugContext,
+                             "apply attribute set %s\n", attrib);
+#endif
+            ncname = xsltSplitQName(ctxt->dict, attrib, &prefix);
+
+            style = ctxt->style;
+#ifdef WITH_DEBUGGER
+            if ((style != NULL) && (style->attributeSets != NULL) &&
+		(ctxt->debugStatus != XSLT_DEBUG_NONE)) {
+                values =
+                    xmlHashLookup2(style->attributeSets, ncname, prefix);
+                if ((values != NULL) && (values->attr != NULL))
+                    xslHandleDebugger(values->attr->parent, node, NULL,
+                                      ctxt);
+            }
+#endif
+            while (style != NULL) {
+                values =
+                    xmlHashLookup2(style->attributeSets, ncname, prefix);
+                while (values != NULL) {
+                    if (values->attr != NULL) {
+                        xsltAttributeInternal(ctxt, node, values->attr,
+                                              values->attr->psvi, 1);
+                    }
+                    values = values->next;
+                }
+                style = xsltNextImport(style);
+            }
+        }
+        attrib = endattr;
+    }
+}
+
+/**
+ * xsltFreeAttributeSetsHashes:
+ * @style: an XSLT stylesheet
+ *
+ * Free up the memory used by attribute sets
+ */
+void
+xsltFreeAttributeSetsHashes(xsltStylesheetPtr style) {
+    if (style->attributeSets != NULL)
+	xmlHashFree((xmlHashTablePtr) style->attributeSets,
+		    (xmlHashDeallocator) xsltFreeAttrElemList);
+    style->attributeSets = NULL;
+}

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/attributes.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/attributes.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/attributes.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,38 @@
+/*
+ * Summary: interface for the XSLT attribute handling
+ * Description: this module handles the specificities of attribute
+ *              and attribute groups processing.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_ATTRIBUTES_H__
+#define __XML_XSLT_ATTRIBUTES_H__
+
+#include <libxml/tree.h>
+#include "xsltexports.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+XSLTPUBFUN void XSLTCALL
+	xsltParseStylesheetAttributeSet	(xsltStylesheetPtr style,
+					 xmlNodePtr cur);
+XSLTPUBFUN void XSLTCALL    
+	xsltFreeAttributeSetsHashes	(xsltStylesheetPtr style);
+XSLTPUBFUN void XSLTCALL	
+	xsltApplyAttributeSet		(xsltTransformContextPtr ctxt,
+					 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 const xmlChar *attributes);
+XSLTPUBFUN void XSLTCALL	
+	xsltResolveStylesheetAttributeSet(xsltStylesheetPtr style);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_ATTRIBUTES_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/attrvt.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/attrvt.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/attrvt.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,367 @@
+/*
+ * attrvt.c: Implementation of the XSL Transformation 1.0 engine
+ *           attribute value template handling part.
+ *
+ * References:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ *   Michael Kay "XSLT Programmer's Reference" pp 637-643
+ *   Writing Multiple Output Files
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include "xslt.h"
+#include "xsltutils.h"
+#include "xsltInternals.h"
+#include "templates.h"
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_AVT
+#endif
+
+#define MAX_AVT_SEG 10
+
+typedef struct _xsltAttrVT xsltAttrVT;
+typedef xsltAttrVT *xsltAttrVTPtr;
+struct _xsltAttrVT {
+    struct _xsltAttrVT *next; /* next xsltAttrVT */
+    int nb_seg;		/* Number of segments */
+    int max_seg;	/* max capacity before re-alloc needed */
+    int strstart;	/* is the start a string */
+    /*
+     * the namespaces in scope
+     */
+    xmlNsPtr *nsList;
+    int nsNr;
+    /*
+     * the content is an alternate of string and xmlXPathCompExprPtr
+     */
+    void *segments[MAX_AVT_SEG];
+};
+
+/**
+ * xsltNewAttrVT:
+ * @style:  a XSLT process context
+ *
+ * Build a new xsltAttrVT structure
+ *
+ * Returns the structure or NULL in case of error
+ */
+static xsltAttrVTPtr
+xsltNewAttrVT(xsltStylesheetPtr style) {
+    xsltAttrVTPtr cur;
+
+    cur = (xsltAttrVTPtr) xmlMalloc(sizeof(xsltAttrVT));
+    if (cur == NULL) {
+	xsltTransformError(NULL, style, NULL,
+		"xsltNewAttrVTPtr : malloc failed\n");
+	if (style != NULL) style->errors++;
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltAttrVT));
+
+    cur->nb_seg = 0;
+    cur->max_seg = MAX_AVT_SEG;
+    cur->strstart = 0;
+    cur->next = style->attVTs;
+    /*
+     * Note: this pointer may be changed by a re-alloc within xsltCompileAttr,
+     * so that code may change the stylesheet pointer also!
+     */
+    style->attVTs = (xsltAttrVTPtr) cur;
+
+    return(cur);
+}
+
+/**
+ * xsltFreeAttrVT:
+ * @avt: pointer to an xsltAttrVT structure
+ *
+ * Free up the memory associated to the attribute value template
+ */
+static void
+xsltFreeAttrVT(xsltAttrVTPtr avt) {
+    int i;
+
+    if (avt == NULL) return;
+
+    if (avt->strstart == 1) {
+	for (i = 0;i < avt->nb_seg; i += 2)
+	    if (avt->segments[i] != NULL)
+		xmlFree((xmlChar *) avt->segments[i]);
+	for (i = 1;i < avt->nb_seg; i += 2)
+	    xmlXPathFreeCompExpr((xmlXPathCompExprPtr) avt->segments[i]);
+    } else {
+	for (i = 0;i < avt->nb_seg; i += 2)
+	    xmlXPathFreeCompExpr((xmlXPathCompExprPtr) avt->segments[i]);
+	for (i = 1;i < avt->nb_seg; i += 2)
+	    if (avt->segments[i] != NULL)
+		xmlFree((xmlChar *) avt->segments[i]);
+    }
+    if (avt->nsList != NULL)
+        xmlFree(avt->nsList);
+    xmlFree(avt);
+}
+
+/**
+ * xsltFreeAVTList:
+ * @avt: pointer to an list of AVT structures
+ *
+ * Free up the memory associated to the attribute value templates
+ */
+void
+xsltFreeAVTList(void *avt) {
+    xsltAttrVTPtr cur = (xsltAttrVTPtr) avt, next;
+
+    while (cur != NULL) {
+        next = cur->next;
+	xsltFreeAttrVT(cur);
+	cur = next;
+    }
+}
+/**
+ * xsltSetAttrVTsegment:
+ * @ avt: pointer to an xsltAttrVT structure
+ * @ val: the value to be set to the next available segment
+ *
+ * Within xsltCompileAttr there are several places where a value
+ * needs to be added to the 'segments' array within the xsltAttrVT
+ * structure, and at each place the allocated size may have to be
+ * re-allocated.  This routine takes care of that situation.
+ *
+ * Returns the avt pointer, which may have been changed by a re-alloc
+ */
+static xsltAttrVTPtr
+xsltSetAttrVTsegment(xsltAttrVTPtr avt, void *val) {
+    if (avt->nb_seg >= avt->max_seg) {
+	avt = (xsltAttrVTPtr) xmlRealloc(avt, sizeof(xsltAttrVT) +
+	    		avt->max_seg * sizeof(void *));
+	if (avt == NULL) {
+	    return NULL;
+	}
+	memset(&avt->segments[avt->nb_seg], 0, MAX_AVT_SEG*sizeof(void *));
+	avt->max_seg += MAX_AVT_SEG;
+    }
+    avt->segments[avt->nb_seg++] = val;
+    return avt;
+}
+
+/**
+ * xsltCompileAttr:
+ * @style:  a XSLT process context
+ * @attr: the attribute coming from the stylesheet.
+ *
+ * Precompile an attribute in a stylesheet, basically it checks if it is
+ * an attrubute value template, and if yes establish some structures needed
+ * to process it at transformation time.
+ */
+void
+xsltCompileAttr(xsltStylesheetPtr style, xmlAttrPtr attr) {
+    const xmlChar *str;
+    const xmlChar *cur;
+    xmlChar *ret = NULL;
+    xmlChar *expr = NULL;
+    xsltAttrVTPtr avt;
+    int i = 0, lastavt = 0;
+
+    if ((style == NULL) || (attr == NULL) || (attr->children == NULL))
+        return;
+    if ((attr->children->type != XML_TEXT_NODE) || 
+        (attr->children->next != NULL)) {
+        xsltTransformError(NULL, style, attr->parent,
+	        "Attribute %s content is not a text node\n", attr->name);
+	style->errors++;
+	return;
+    }
+    str = attr->children->content;
+    if ((xmlStrchr(str, '{') == NULL) &&
+        (xmlStrchr(str, '}') == NULL)) return;
+
+#ifdef WITH_XSLT_DEBUG_AVT
+    xsltGenericDebug(xsltGenericDebugContext,
+		    "Found AVT %s: %s\n", attr->name, str);
+#endif
+    if (attr->psvi != NULL) {
+#ifdef WITH_XSLT_DEBUG_AVT
+	xsltGenericDebug(xsltGenericDebugContext,
+			"AVT %s: already compiled\n", attr->name);
+#endif
+        return;
+    }
+    avt = xsltNewAttrVT(style);
+    if (avt == NULL) return;
+    attr->psvi = avt;
+
+    avt->nsList = xmlGetNsList(attr->doc, attr->parent);
+    if (avt->nsList != NULL) {
+	while (avt->nsList[i] != NULL)
+	    i++;
+    }
+    avt->nsNr = i;
+
+    cur = str;
+    while (*cur != 0) {
+	if (*cur == '{') {
+	    if (*(cur+1) == '{') {	/* escaped '{' */
+	        cur++;
+		ret = xmlStrncat(ret, str, cur - str);
+		cur++;
+		str = cur;
+		continue;
+	    }
+	    if (*(cur+1) == '}') {	/* skip empty AVT */
+		ret = xmlStrncat(ret, str, cur - str);
+	        cur+=2;
+		str = cur;
+		continue;
+	    }
+	    if ((ret != NULL) || (cur - str > 0)) {
+		ret = xmlStrncat(ret, str, cur - str);
+		str = cur;
+		if (avt->nb_seg == 0)
+		    avt->strstart = 1;
+		if ((avt=xsltSetAttrVTsegment(avt, (void *) ret)) == NULL)
+		    goto error;
+		ret = NULL;
+		lastavt = 0;
+	    }
+
+	    cur++;
+	    while ((*cur != 0) && (*cur != '}')) cur++;
+	    if (*cur == 0) {
+	        xsltTransformError(NULL, style, attr->parent,
+		     "Attribute template %s: unmatched '{'\n", attr->name);
+		style->errors++;
+		goto error;
+	    }
+	    str++;
+	    expr = xmlStrndup(str, cur - str);
+	    if (expr == NULL) {
+	        XSLT_TODO
+		goto error;
+	    } else {
+		xmlXPathCompExprPtr comp;
+
+		comp = xsltXPathCompile(style, expr);
+		if (comp == NULL) {
+		    xsltTransformError(NULL, style, attr->parent,
+			 "Attribute template %s: failed to compile %s\n",
+			               attr->name, expr);
+		    style->errors++;
+		    goto error;
+		}
+		if (avt->nb_seg == 0)
+		    avt->strstart = 0;
+		if (lastavt == 1) {
+		    if ((avt=xsltSetAttrVTsegment(avt, NULL)) == NULL)
+		        goto error;
+		}
+		if ((avt=xsltSetAttrVTsegment(avt, (void *) comp))==NULL)
+		    goto error;
+		lastavt = 1;
+		xmlFree(expr);
+		expr = NULL;
+	    }
+	    cur++;
+	    str = cur;
+	} else if (*cur == '}') {
+	    cur++;
+	    if (*cur == '}') {	/* escaped '}' */
+		ret = xmlStrncat(ret, str, cur - str);
+		cur++;
+		str = cur;
+		continue;
+	    } else {
+	        xsltTransformError(NULL, style, attr->parent,
+		     "Attribute template %s: unmatched '}'\n", attr->name);
+		goto error;
+	    }
+	} else
+	    cur++;
+    }
+    if ((ret != NULL) || (cur - str > 0)) {
+	ret = xmlStrncat(ret, str, cur - str);
+	str = cur;
+	if (avt->nb_seg == 0)
+	    avt->strstart = 1;
+	if ((avt=xsltSetAttrVTsegment(avt, (void *) ret)) == NULL)
+	    goto error;
+	ret = NULL;
+    }
+
+error:
+    if (avt == NULL) {
+        xsltTransformError(NULL, style, attr->parent,
+		"xsltCompileAttr: malloc problem\n");
+    } else {
+        if (attr->psvi != avt) {  /* may have changed from realloc */
+            attr->psvi = avt;
+	    /*
+	     * This is a "hack", but I can't see any clean method of
+	     * doing it.  If a re-alloc has taken place, then the pointer
+	     * for this AVT may have changed.  style->attVTs was set by
+	     * xsltNewAttrVT, so it needs to be re-set to the new value!
+	     */
+	    style->attVTs = avt;
+	}
+    }
+    if (ret != NULL)
+	xmlFree(ret);
+    if (expr != NULL)
+	xmlFree(expr);
+}
+
+
+/**
+ * xsltEvalAVT:
+ * @ctxt: the XSLT transformation context
+ * @avt: the prevompiled attribute value template info
+ * @node: the node hosting the attribute
+ *
+ * Process the given AVT, and return the new string value.
+ *
+ * Returns the computed string value or NULL, must be deallocated by the
+ *         caller.
+ */
+xmlChar *
+xsltEvalAVT(xsltTransformContextPtr ctxt, void *avt, xmlNodePtr node) {
+    xmlChar *ret = NULL, *tmp;
+    xmlXPathCompExprPtr comp;
+    xsltAttrVTPtr cur = (xsltAttrVTPtr) avt;
+    int i;
+    int str;
+
+    if ((ctxt == NULL) || (avt == NULL) || (node == NULL))
+        return(NULL);
+    str = cur->strstart;
+    for (i = 0;i < cur->nb_seg;i++) {
+        if (str) {
+	    ret = xmlStrcat(ret, (const xmlChar *) cur->segments[i]);
+	} else {
+	    comp = (xmlXPathCompExprPtr) cur->segments[i];
+	    tmp = xsltEvalXPathStringNs(ctxt, comp, cur->nsNr, cur->nsList);
+	    if (tmp != NULL) {
+	        if (ret != NULL) {
+		    ret = xmlStrcat(ret, tmp);
+		    xmlFree(tmp);
+		} else {
+		    ret = tmp;
+		}
+	    }
+	}
+	str = !str;
+    }
+    return(ret);
+}

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/documents.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/documents.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/documents.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,402 @@
+/*
+ * documents.c: Implementation of the documents handling
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/hash.h>
+#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "documents.h"
+#include "transform.h"
+#include "imports.h"
+#include "keys.h"
+#include "security.h"
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+#include <libxml/xinclude.h>
+#endif
+
+#define WITH_XSLT_DEBUG_DOCUMENTS
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_DOCUMENTS
+#endif
+
+/************************************************************************
+ * 									*
+ * 		Hooks for the document loader				*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltDocDefaultLoaderFunc:
+ * @URI: the URI of the document to load
+ * @dict: the dictionnary to use when parsing that document
+ * @options: parsing options, a set of xmlParserOption
+ * @ctxt: the context, either a stylesheet or a transformation context
+ * @type: the xsltLoadType indicating the kind of loading required
+ *
+ * Default function to load document not provided by the compilation or
+ * transformation API themselve, for example when an xsl:import,
+ * xsl:include is found at compilation time or when a document()
+ * call is made at runtime.
+ *
+ * Returns the pointer to the document (which will be modified and
+ * freed by the engine later), or NULL in case of error.
+ */
+static xmlDocPtr
+xsltDocDefaultLoaderFunc(const xmlChar * URI, xmlDictPtr dict, int options,
+                         void *ctxt ATTRIBUTE_UNUSED,
+			 xsltLoadType type ATTRIBUTE_UNUSED)
+{
+    xmlParserCtxtPtr pctxt;
+    xmlParserInputPtr inputStream;
+    xmlDocPtr doc;
+
+    pctxt = xmlNewParserCtxt();
+    if (pctxt == NULL)
+        return(NULL);
+    if ((dict != NULL) && (pctxt->dict != NULL)) {
+        xmlDictFree(pctxt->dict);
+	pctxt->dict = NULL;
+    }
+    if (dict != NULL) {
+	pctxt->dict = dict;
+	xmlDictReference(pctxt->dict);
+#ifdef WITH_XSLT_DEBUG
+	xsltGenericDebug(xsltGenericDebugContext,
+                     "Reusing dictionary for document\n");
+#endif
+    }
+    xmlCtxtUseOptions(pctxt, options);
+    inputStream = xmlLoadExternalEntity((const char *) URI, NULL, pctxt);
+    if (inputStream == NULL) {
+        xmlFreeParserCtxt(pctxt);
+	return(NULL);
+    }
+    inputPush(pctxt, inputStream);
+    if (pctxt->directory == NULL)
+        pctxt->directory = xmlParserGetDirectory((const char *) URI);
+
+    xmlParseDocument(pctxt);
+
+    if (pctxt->wellFormed) {
+        doc = pctxt->myDoc;
+    }
+    else {
+        doc = NULL;
+        xmlFreeDoc(pctxt->myDoc);
+        pctxt->myDoc = NULL;
+    }
+    xmlFreeParserCtxt(pctxt);
+
+    return(doc);
+}
+
+
+xsltDocLoaderFunc xsltDocDefaultLoader = xsltDocDefaultLoaderFunc;
+
+/**
+ * xsltSetLoaderFunc:
+ * @f: the new function to handle document loading.
+ *
+ * Set the new function to load document, if NULL it resets it to the
+ * default function.
+ */
+ 
+void
+xsltSetLoaderFunc(xsltDocLoaderFunc f) {
+    if (f == NULL)
+        xsltDocDefaultLoader = xsltDocDefaultLoaderFunc;
+    else
+        xsltDocDefaultLoader = f;
+}
+
+/************************************************************************
+ *									*
+ *			Module interfaces				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltNewDocument:
+ * @ctxt: an XSLT transformation context (or NULL)
+ * @doc:  a parsed XML document
+ *
+ * Register a new document, apply key computations
+ *
+ * Returns a handler to the document
+ */
+xsltDocumentPtr	
+xsltNewDocument(xsltTransformContextPtr ctxt, xmlDocPtr doc) {
+    xsltDocumentPtr cur;
+
+    cur = (xsltDocumentPtr) xmlMalloc(sizeof(xsltDocument));
+    if (cur == NULL) {
+	xsltTransformError(ctxt, NULL, (xmlNodePtr) doc,
+		"xsltNewDocument : malloc failed\n");
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltDocument));
+    cur->doc = doc;
+    if (ctxt != NULL) {
+        if (!xmlStrEqual((xmlChar *)doc->name, BAD_CAST " fake node libxslt")) {
+	    cur->next = ctxt->docList;
+	    ctxt->docList = cur;
+	}
+	xsltInitCtxtKeys(ctxt, cur);
+    }
+    return(cur);
+}
+
+/**
+ * xsltNewStyleDocument:
+ * @style: an XSLT style sheet
+ * @doc:  a parsed XML document
+ *
+ * Register a new document, apply key computations
+ *
+ * Returns a handler to the document
+ */
+xsltDocumentPtr	
+xsltNewStyleDocument(xsltStylesheetPtr style, xmlDocPtr doc) {
+    xsltDocumentPtr cur;
+
+    cur = (xsltDocumentPtr) xmlMalloc(sizeof(xsltDocument));
+    if (cur == NULL) {
+	xsltTransformError(NULL, style, (xmlNodePtr) doc,
+		"xsltNewStyleDocument : malloc failed\n");
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltDocument));
+    cur->doc = doc;
+    if (style != NULL) {
+	cur->next = style->docList;
+	style->docList = cur;
+    }
+    return(cur);
+}
+
+/**
+ * xsltFreeStyleDocuments:
+ * @style: an XSLT style sheet
+ *
+ * Free up all the space used by the loaded documents
+ */
+void	
+xsltFreeStyleDocuments(xsltStylesheetPtr style) {
+    xsltDocumentPtr doc, cur;
+
+    cur = style->docList;
+    while (cur != NULL) {
+	doc = cur;
+	cur = cur->next;
+	xsltFreeDocumentKeys(doc);
+	if (!doc->main)
+	    xmlFreeDoc(doc->doc);
+        xmlFree(doc);
+    }
+}
+
+/**
+ * xsltFreeDocuments:
+ * @ctxt: an XSLT transformation context
+ *
+ * Free up all the space used by the loaded documents
+ */
+void	
+xsltFreeDocuments(xsltTransformContextPtr ctxt) {
+    xsltDocumentPtr doc, cur;
+
+    cur = ctxt->docList;
+    while (cur != NULL) {
+	doc = cur;
+	cur = cur->next;
+	xsltFreeDocumentKeys(doc);
+	if (!doc->main)
+	    xmlFreeDoc(doc->doc);
+        xmlFree(doc);
+    }
+    cur = ctxt->styleList;
+    while (cur != NULL) {
+	doc = cur;
+	cur = cur->next;
+	xsltFreeDocumentKeys(doc);
+	if (!doc->main)
+	    xmlFreeDoc(doc->doc);
+        xmlFree(doc);
+    }
+}
+
+/**
+ * xsltLoadDocument:
+ * @ctxt: an XSLT transformation context
+ * @URI:  the computed URI of the document
+ *
+ * Try to load a document (not a stylesheet)
+ * within the XSLT transformation context
+ *
+ * Returns the new xsltDocumentPtr or NULL in case of error
+ */
+xsltDocumentPtr	
+xsltLoadDocument(xsltTransformContextPtr ctxt, const xmlChar *URI) {
+    xsltDocumentPtr ret;
+    xmlDocPtr doc;
+
+    if ((ctxt == NULL) || (URI == NULL))
+	return(NULL);
+
+    /*
+     * Security framework check
+     */
+    if (ctxt->sec != NULL) {
+	int res;
+	
+	res = xsltCheckRead(ctxt->sec, ctxt, URI);
+	if (res == 0) {
+	    xsltTransformError(ctxt, NULL, NULL,
+		 "xsltLoadDocument: read rights for %s denied\n",
+			     URI);
+	    return(NULL);
+	}
+    }
+
+    /*
+     * Walk the context list to find the document if preparsed
+     */
+    ret = ctxt->docList;
+    while (ret != NULL) {
+	if ((ret->doc != NULL) && (ret->doc->URL != NULL) &&
+	    (xmlStrEqual(ret->doc->URL, URI)))
+	    return(ret);
+	ret = ret->next;
+    }
+
+    doc = xsltDocDefaultLoader(URI, ctxt->dict, ctxt->parserOptions,
+                               (void *) ctxt, XSLT_LOAD_DOCUMENT);
+
+    if (doc == NULL)
+	return(NULL);
+
+    if (ctxt->xinclude != 0) {
+#ifdef LIBXML_XINCLUDE_ENABLED
+#if LIBXML_VERSION >= 20603
+	xmlXIncludeProcessFlags(doc, ctxt->parserOptions);
+#else
+	xmlXIncludeProcess(doc);
+#endif
+#else
+	xsltTransformError(ctxt, NULL, NULL,
+	    "xsltLoadDocument(%s) : XInclude processing not compiled in\n",
+	                 URI);
+#endif
+    }
+    /*
+     * Apply white-space stripping if asked for
+     */
+    if (xsltNeedElemSpaceHandling(ctxt))
+	xsltApplyStripSpaces(ctxt, xmlDocGetRootElement(doc));
+    if (ctxt->debugStatus == XSLT_DEBUG_NONE)
+	xmlXPathOrderDocElems(doc);
+
+    ret = xsltNewDocument(ctxt, doc);
+    return(ret);
+}
+
+/**
+ * xsltLoadStyleDocument:
+ * @style: an XSLT style sheet
+ * @URI:  the computed URI of the document
+ *
+ * Try to load a stylesheet document within the XSLT transformation context
+ *
+ * Returns the new xsltDocumentPtr or NULL in case of error
+ */
+xsltDocumentPtr	
+xsltLoadStyleDocument(xsltStylesheetPtr style, const xmlChar *URI) {
+    xsltDocumentPtr ret;
+    xmlDocPtr doc;
+    xsltSecurityPrefsPtr sec;
+
+    if ((style == NULL) || (URI == NULL))
+	return(NULL);
+
+    /*
+     * Security framework check
+     */
+    sec = xsltGetDefaultSecurityPrefs();
+    if (sec != NULL) {
+	int res;
+
+	res = xsltCheckRead(sec, NULL, URI);
+	if (res == 0) {
+	    xsltTransformError(NULL, NULL, NULL,
+		 "xsltLoadStyleDocument: read rights for %s denied\n",
+			     URI);
+	    return(NULL);
+	}
+    }
+
+    /*
+     * Walk the context list to find the document if preparsed
+     */
+    ret = style->docList;
+    while (ret != NULL) {
+	if ((ret->doc != NULL) && (ret->doc->URL != NULL) &&
+	    (xmlStrEqual(ret->doc->URL, URI)))
+	    return(ret);
+	ret = ret->next;
+    }
+
+    doc = xsltDocDefaultLoader(URI, style->dict, XSLT_PARSE_OPTIONS,
+                               (void *) style, XSLT_LOAD_STYLESHEET);
+    if (doc == NULL)
+	return(NULL);
+
+    ret = xsltNewStyleDocument(style, doc);
+    return(ret);
+}
+
+/**
+ * xsltFindDocument:
+ * @ctxt: an XSLT transformation context
+ * @doc: a parsed XML document
+ *
+ * Try to find a document within the XSLT transformation context
+ *
+ * Returns the desired xsltDocumentPtr or NULL in case of error
+ */
+xsltDocumentPtr
+xsltFindDocument (xsltTransformContextPtr ctxt, xmlDocPtr doc) {
+    xsltDocumentPtr ret;
+
+    if ((ctxt == NULL) || (doc == NULL))
+	return(NULL);
+
+    /*
+     * Walk the context list to find the document
+     */
+    ret = ctxt->docList;
+    while (ret != NULL) {
+	if (ret->doc == doc)
+	    return(ret);
+	ret = ret->next;
+    }
+    if (doc == ctxt->style->doc)
+	return(ctxt->document);
+    return(NULL);
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/documents.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/documents.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/documents.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,93 @@
+/*
+ * Summary: interface for the document handling
+ * Description: implements document loading and cache (multiple
+ *              document() reference for the same resources must
+ *              be equal.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_DOCUMENTS_H__
+#define __XML_XSLT_DOCUMENTS_H__
+
+#include <libxml/tree.h>
+#include "xsltexports.h"
+#include "xsltInternals.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+XSLTPUBFUN xsltDocumentPtr XSLTCALL	
+		xsltNewDocument		(xsltTransformContextPtr ctxt,
+					 xmlDocPtr doc);
+XSLTPUBFUN xsltDocumentPtr XSLTCALL	
+    		xsltLoadDocument	(xsltTransformContextPtr ctxt,
+					 const xmlChar *URI);
+XSLTPUBFUN xsltDocumentPtr XSLTCALL	
+    		xsltFindDocument	(xsltTransformContextPtr ctxt,
+					 xmlDocPtr doc);
+XSLTPUBFUN void XSLTCALL		
+    		xsltFreeDocuments	(xsltTransformContextPtr ctxt);
+
+XSLTPUBFUN xsltDocumentPtr XSLTCALL	
+    		xsltLoadStyleDocument	(xsltStylesheetPtr style,
+					 const xmlChar *URI);
+XSLTPUBFUN xsltDocumentPtr XSLTCALL	
+    		xsltNewStyleDocument	(xsltStylesheetPtr style,
+					 xmlDocPtr doc);
+XSLTPUBFUN void XSLTCALL		
+    		xsltFreeStyleDocuments	(xsltStylesheetPtr style);
+
+/*
+ * Hooks for document loading
+ */
+
+/**
+ * xsltLoadType:
+ *
+ * Enum defining the kind of loader requirement.
+ */
+typedef enum {
+    XSLT_LOAD_START = 0,	/* loading for a top stylesheet */
+    XSLT_LOAD_STYLESHEET = 1,	/* loading for a stylesheet include/import */
+    XSLT_LOAD_DOCUMENT = 2	/* loading document at transformation time */
+} xsltLoadType;
+
+/**
+ * xsltDocLoaderFunc:
+ * @URI: the URI of the document to load
+ * @dict: the dictionnary to use when parsing that document
+ * @options: parsing options, a set of xmlParserOption
+ * @ctxt: the context, either a stylesheet or a transformation context
+ * @type: the xsltLoadType indicating the kind of loading required
+ *
+ * An xsltDocLoaderFunc is a signature for a function which can be
+ * registered to load document not provided by the compilation or
+ * transformation API themselve, for example when an xsl:import,
+ * xsl:include is found at compilation time or when a document()
+ * call is made at runtime.
+ *
+ * Returns the pointer to the document (which will be modified and
+ * freed by the engine later), or NULL in case of error.
+ */
+typedef xmlDocPtr (*xsltDocLoaderFunc)		(const xmlChar *URI,
+						 xmlDictPtr dict,
+						 int options,
+						 void *ctxt,
+						 xsltLoadType type);
+
+XSLTPUBFUN void XSLTCALL
+		xsltSetLoaderFunc		(xsltDocLoaderFunc f);
+
+/* the loader may be needed by extension libraries so it is exported */
+XSLTPUBVAR xsltDocLoaderFunc xsltDocDefaultLoader;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_DOCUMENTS_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/extensions.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/extensions.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/extensions.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1948 @@
+/*
+ * extensions.c: Implemetation of the extensions support
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+#include <limits.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/hash.h>
+#include <libxml/xmlerror.h>
+#include <libxml/parserInternals.h>
+#include <libxml/xpathInternals.h>
+#ifdef WITH_MODULES
+#include <libxml/xmlmodule.h>
+#endif
+#include <libxml/list.h>
+#include <libxml/xmlIO.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "imports.h"
+#include "extensions.h"
+
+#ifdef _WIN32
+#include <stdlib.h>             /* for _MAX_PATH */
+#define PATH_MAX _MAX_PATH
+#endif
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_EXTENSIONS
+#endif
+
+/************************************************************************
+ * 									*
+ * 			Private Types and Globals			*
+ * 									*
+ ************************************************************************/
+
+typedef struct _xsltExtDef xsltExtDef;
+typedef xsltExtDef *xsltExtDefPtr;
+struct _xsltExtDef {
+    struct _xsltExtDef *next;
+    xmlChar *prefix;
+    xmlChar *URI;
+    void *data;
+};
+
+typedef struct _xsltExtModule xsltExtModule;
+typedef xsltExtModule *xsltExtModulePtr;
+struct _xsltExtModule {
+    xsltExtInitFunction initFunc;
+    xsltExtShutdownFunction shutdownFunc;
+    xsltStyleExtInitFunction styleInitFunc;
+    xsltStyleExtShutdownFunction styleShutdownFunc;
+};
+
+typedef struct _xsltExtData xsltExtData;
+typedef xsltExtData *xsltExtDataPtr;
+struct _xsltExtData {
+    xsltExtModulePtr extModule;
+    void *extData;
+};
+
+typedef struct _xsltExtElement xsltExtElement;
+typedef xsltExtElement *xsltExtElementPtr;
+struct _xsltExtElement {
+    xsltPreComputeFunction precomp;
+    xsltTransformFunction transform;
+};
+
+static xmlHashTablePtr xsltExtensionsHash = NULL;
+static xmlHashTablePtr xsltFunctionsHash = NULL;
+static xmlHashTablePtr xsltElementsHash = NULL;
+static xmlHashTablePtr xsltTopLevelsHash = NULL;
+static xmlHashTablePtr xsltModuleHash = NULL;
+
+/************************************************************************
+ * 									*
+ * 			Type functions 					*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltNewExtDef:
+ * @prefix:  the extension prefix
+ * @URI:  the namespace URI
+ *
+ * Create a new XSLT ExtDef
+ *
+ * Returns the newly allocated xsltExtDefPtr or NULL in case of error
+ */
+static xsltExtDefPtr
+xsltNewExtDef(const xmlChar * prefix, const xmlChar * URI)
+{
+    xsltExtDefPtr cur;
+
+    cur = (xsltExtDefPtr) xmlMalloc(sizeof(xsltExtDef));
+    if (cur == NULL) {
+        xsltTransformError(NULL, NULL, NULL,
+                           "xsltNewExtDef : malloc failed\n");
+        return (NULL);
+    }
+    memset(cur, 0, sizeof(xsltExtDef));
+    if (prefix != NULL)
+        cur->prefix = xmlStrdup(prefix);
+    if (URI != NULL)
+        cur->URI = xmlStrdup(URI);
+    return (cur);
+}
+
+/**
+ * xsltFreeExtDef:
+ * @extensiond:  an XSLT extension definition
+ *
+ * Free up the memory allocated by @extensiond
+ */
+static void
+xsltFreeExtDef(xsltExtDefPtr extensiond)
+{
+    if (extensiond == NULL)
+        return;
+    if (extensiond->prefix != NULL)
+        xmlFree(extensiond->prefix);
+    if (extensiond->URI != NULL)
+        xmlFree(extensiond->URI);
+    xmlFree(extensiond);
+}
+
+/**
+ * xsltFreeExtDefList:
+ * @extensiond:  an XSLT extension definition list
+ *
+ * Free up the memory allocated by all the elements of @extensiond
+ */
+static void
+xsltFreeExtDefList(xsltExtDefPtr extensiond)
+{
+    xsltExtDefPtr cur;
+
+    while (extensiond != NULL) {
+        cur = extensiond;
+        extensiond = extensiond->next;
+        xsltFreeExtDef(cur);
+    }
+}
+
+/**
+ * xsltNewExtModule:
+ * @initFunc:  the module initialization function
+ * @shutdownFunc:  the module shutdown function
+ * @styleInitFunc:  the stylesheet module data allocator function
+ * @styleShutdownFunc:  the stylesheet module data free function
+ *
+ * Create a new XSLT extension module
+ *
+ * Returns the newly allocated xsltExtModulePtr or NULL in case of error
+ */
+static xsltExtModulePtr
+xsltNewExtModule(xsltExtInitFunction initFunc,
+                 xsltExtShutdownFunction shutdownFunc,
+                 xsltStyleExtInitFunction styleInitFunc,
+                 xsltStyleExtShutdownFunction styleShutdownFunc)
+{
+    xsltExtModulePtr cur;
+
+    cur = (xsltExtModulePtr) xmlMalloc(sizeof(xsltExtModule));
+    if (cur == NULL) {
+        xsltTransformError(NULL, NULL, NULL,
+                           "xsltNewExtModule : malloc failed\n");
+        return (NULL);
+    }
+    cur->initFunc = initFunc;
+    cur->shutdownFunc = shutdownFunc;
+    cur->styleInitFunc = styleInitFunc;
+    cur->styleShutdownFunc = styleShutdownFunc;
+    return (cur);
+}
+
+/**
+ * xsltFreeExtModule:
+ * @ext:  an XSLT extension module
+ *
+ * Free up the memory allocated by @ext
+ */
+static void
+xsltFreeExtModule(xsltExtModulePtr ext)
+{
+    if (ext == NULL)
+        return;
+    xmlFree(ext);
+}
+
+/**
+ * xsltNewExtData:
+ * @extModule:  the module
+ * @extData:  the associated data
+ *
+ * Create a new XSLT extension module data wrapper
+ *
+ * Returns the newly allocated xsltExtDataPtr or NULL in case of error
+ */
+static xsltExtDataPtr
+xsltNewExtData(xsltExtModulePtr extModule, void *extData)
+{
+    xsltExtDataPtr cur;
+
+    if (extModule == NULL)
+        return (NULL);
+    cur = (xsltExtDataPtr) xmlMalloc(sizeof(xsltExtData));
+    if (cur == NULL) {
+        xsltTransformError(NULL, NULL, NULL,
+                           "xsltNewExtData : malloc failed\n");
+        return (NULL);
+    }
+    cur->extModule = extModule;
+    cur->extData = extData;
+    return (cur);
+}
+
+/**
+ * xsltFreeExtData:
+ * @ext:  an XSLT extension module data wrapper
+ *
+ * Free up the memory allocated by @ext
+ */
+static void
+xsltFreeExtData(xsltExtDataPtr ext)
+{
+    if (ext == NULL)
+        return;
+    xmlFree(ext);
+}
+
+/**
+ * xsltNewExtElement:
+ * @precomp:  the pre-computation function
+ * @transform:  the transformation function
+ *
+ * Create a new XSLT extension element
+ *
+ * Returns the newly allocated xsltExtElementPtr or NULL in case of
+ * error
+ */
+static xsltExtElementPtr
+xsltNewExtElement(xsltPreComputeFunction precomp,
+                  xsltTransformFunction transform)
+{
+    xsltExtElementPtr cur;
+
+    if (transform == NULL)
+        return (NULL);
+
+    cur = (xsltExtElementPtr) xmlMalloc(sizeof(xsltExtElement));
+    if (cur == NULL) {
+        xsltTransformError(NULL, NULL, NULL,
+                           "xsltNewExtElement : malloc failed\n");
+        return (NULL);
+    }
+    cur->precomp = precomp;
+    cur->transform = transform;
+    return (cur);
+}
+
+/**
+ * xsltFreeExtElement:
+ * @ext: an XSLT extension element
+ *
+ * Frees up the memory allocated by @ext
+ */
+static void
+xsltFreeExtElement(xsltExtElementPtr ext)
+{
+    if (ext == NULL)
+        return;
+    xmlFree(ext);
+}
+
+
+#ifdef WITH_MODULES
+typedef void (*exsltRegisterFunction) (void);
+
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
+/**
+ * xsltExtModuleRegisterDynamic:
+ * @URI:  the function or element namespace URI
+ *
+ * Dynamically loads an extension plugin when available.
+ * 
+ * The plugin name is derived from the URI by removing the 
+ * initial protocol designation, e.g. "http://", then converting
+ * the characters ".", "-", "/", and "\" into "_", the removing
+ * any trailing "/", then concatenating LIBXML_MODULE_EXTENSION.
+ * 
+ * Plugins are loaded from the directory specified by the 
+ * environment variable LIBXSLT_PLUGINS_PATH, or if NULL, 
+ * by LIBXSLT_DEFAULT_PLUGINS_PATH() which is determined at
+ * compile time.
+ *
+ * Returns 0 if successful, -1 in case of error. 
+ */
+
+static int
+xsltExtModuleRegisterDynamic(const xmlChar * URI)
+{
+
+    xmlModulePtr m;
+    exsltRegisterFunction regfunc;
+    xmlChar *ext_name;
+    char module_filename[PATH_MAX];
+    const xmlChar *ext_directory = NULL;
+    const xmlChar *protocol = NULL;
+    xmlChar *i, *regfunc_name;
+    int rc, seen_before;
+
+    /* check for bad inputs */
+    if (URI == NULL)
+        return (-1);
+
+    if (NULL == xsltModuleHash) {
+        xsltModuleHash = xmlHashCreate(5);
+        if (xsltModuleHash == NULL)
+            return (-1);
+    }
+
+    /* have we attempted to register this module already? */
+    seen_before = (int) xmlHashLookup(xsltModuleHash, URI);
+    if (0 != seen_before) {
+        return (-1);
+    }
+
+    /* transform extension namespace into a module name */
+    protocol = xmlStrstr(URI, BAD_CAST "://");
+    if (protocol == NULL) {
+        ext_name = xmlStrdup(URI);
+    } else {
+        ext_name = xmlStrdup(protocol + 3);
+    }
+    if (ext_name == NULL) {
+        return (-1);
+    }
+
+    i = ext_name;
+    while ('\0' != *i) {
+        if (('/' == *i) || ('\\' == *i) || ('.' == *i) || ('-' == *i))
+            *i = '_';
+        i++;
+    }
+
+    if (*(i - 1) == '_')
+        *i = '\0';
+
+    /* determine module directory */
+    ext_directory = (xmlChar *) getenv("LIBXSLT_PLUGINS_PATH");
+
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "LIBXSLT_PLUGINS_PATH is %s\n", ext_directory);
+#endif
+
+    if (NULL == ext_directory)
+        ext_directory = BAD_CAST LIBXSLT_DEFAULT_PLUGINS_PATH();
+    if (NULL == ext_directory)
+        return (-1);
+
+    /* build the module filename, and confirm the module exists */
+    xmlStrPrintf((xmlChar *) module_filename, sizeof(module_filename),
+                 BAD_CAST "%s/%s%s",
+                 ext_directory, ext_name, LIBXML_MODULE_EXTENSION);
+
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Attempting to load plugin: %s for URI: %s\n", 
+                     module_filename, URI);
+#endif
+
+    if (1 != xmlCheckFilename(module_filename)) {
+
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+	xsltGenericDebug(xsltGenericDebugContext,
+                     "xmlCheckFilename failed for plugin: %s\n", module_filename);
+#endif
+
+        xmlFree(ext_name);
+        return (-1);
+    }
+
+    /* attempt to open the module */
+    m = xmlModuleOpen(module_filename, 0);
+    if (NULL == m) {
+
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+	xsltGenericDebug(xsltGenericDebugContext,
+                     "xmlModuleOpen failed for plugin: %s\n", module_filename);
+#endif
+
+        xmlFree(ext_name);
+        return (-1);
+    }
+
+    /* construct initialization func name */
+    regfunc_name = xmlStrdup(ext_name);
+    regfunc_name = xmlStrcat(regfunc_name, BAD_CAST "_init");
+
+    rc = xmlModuleSymbol(m, (const char *) regfunc_name, (void **) &regfunc);
+    if (0 == rc) {
+        /* call the module's init function */
+        (*regfunc) ();
+
+        /* register this module in our hash */
+        xmlHashAddEntry(xsltModuleHash, URI, (void *) m);
+    } else {
+
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+	xsltGenericDebug(xsltGenericDebugContext,
+                     "xmlModuleSymbol failed for plugin: %s, regfunc: %s\n", 
+                     module_filename, regfunc_name);
+#endif
+
+        /* if regfunc not found unload the module immediately */
+        xmlModuleClose(m);
+    }
+
+    xmlFree(ext_name);
+    xmlFree(regfunc_name);
+    return (NULL == regfunc) ? -1 : 0;
+}
+#else
+static int
+xsltExtModuleRegisterDynamic(const xmlChar * ATTRIBUTE_UNUSED URI)
+{
+  return -1;
+}
+#endif
+
+/************************************************************************
+ * 									*
+ * 		The stylesheet extension prefixes handling		*
+ * 									*
+ ************************************************************************/
+
+
+/**
+ * xsltFreeExts:
+ * @style: an XSLT stylesheet
+ *
+ * Free up the memory used by XSLT extensions in a stylesheet
+ */
+void
+xsltFreeExts(xsltStylesheetPtr style)
+{
+    if (style->nsDefs != NULL)
+        xsltFreeExtDefList((xsltExtDefPtr) style->nsDefs);
+}
+
+/**
+ * xsltRegisterExtPrefix:
+ * @style: an XSLT stylesheet
+ * @prefix: the prefix used
+ * @URI: the URI associated to the extension
+ *
+ * Registers an extension namespace
+ *
+ * Returns 0 in case of success, -1 in case of failure
+ */
+int
+xsltRegisterExtPrefix(xsltStylesheetPtr style,
+                      const xmlChar * prefix, const xmlChar * URI)
+{
+    xsltExtDefPtr def, ret;
+
+    if ((style == NULL) || (prefix == NULL) | (URI == NULL))
+        return (-1);
+
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Registering extension prefix %s : %s\n", prefix,
+                     URI);
+#endif
+    def = (xsltExtDefPtr) style->nsDefs;
+    while (def != NULL) {
+        if (xmlStrEqual(prefix, def->prefix))
+            return (-1);
+        def = def->next;
+    }
+    ret = xsltNewExtDef(prefix, URI);
+    if (ret == NULL)
+        return (-1);
+    ret->next = (xsltExtDefPtr) style->nsDefs;
+    style->nsDefs = ret;
+
+    /*
+     * check wether there is an extension module with a stylesheet
+     * initialization function.
+     */
+    if (xsltExtensionsHash != NULL) {
+        xsltExtModulePtr module;
+
+        module = xmlHashLookup(xsltExtensionsHash, URI);
+        if (NULL == module) {
+            if (!xsltExtModuleRegisterDynamic(URI)) {
+                module = xmlHashLookup(xsltExtensionsHash, URI);
+            }
+        }
+
+        if (module != NULL) {
+            xsltStyleGetExtData(style, URI);
+        }
+    }
+    return (0);
+}
+
+/************************************************************************
+ * 									*
+ * 		The extensions modules interfaces			*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltRegisterExtFunction:
+ * @ctxt: an XSLT transformation context
+ * @name: the name of the element
+ * @URI: the URI associated to the element
+ * @function: the actual implementation which should be called 
+ *
+ * Registers an extension function
+ *
+ * Returns 0 in case of success, -1 in case of failure
+ */
+int
+xsltRegisterExtFunction(xsltTransformContextPtr ctxt, const xmlChar * name,
+                        const xmlChar * URI, xmlXPathFunction function)
+{
+    if ((ctxt == NULL) || (name == NULL) ||
+        (URI == NULL) || (function == NULL))
+        return (-1);
+    if (ctxt->xpathCtxt != NULL) {
+        xmlXPathRegisterFuncNS(ctxt->xpathCtxt, name, URI, function);
+    }
+    if (ctxt->extFunctions == NULL)
+        ctxt->extFunctions = xmlHashCreate(10);
+    if (ctxt->extFunctions == NULL)
+        return (-1);
+    return (xmlHashAddEntry2
+            (ctxt->extFunctions, name, URI, XML_CAST_FPTR(function)));
+}
+
+/**
+ * xsltRegisterExtElement:
+ * @ctxt: an XSLT transformation context
+ * @name: the name of the element
+ * @URI: the URI associated to the element
+ * @function: the actual implementation which should be called 
+ *
+ * Registers an extension element
+ *
+ * Returns 0 in case of success, -1 in case of failure
+ */
+int
+xsltRegisterExtElement(xsltTransformContextPtr ctxt, const xmlChar * name,
+                       const xmlChar * URI, xsltTransformFunction function)
+{
+    if ((ctxt == NULL) || (name == NULL) ||
+        (URI == NULL) || (function == NULL))
+        return (-1);
+    if (ctxt->extElements == NULL)
+        ctxt->extElements = xmlHashCreate(10);
+    if (ctxt->extElements == NULL)
+        return (-1);
+    return (xmlHashAddEntry2
+            (ctxt->extElements, name, URI, XML_CAST_FPTR(function)));
+}
+
+/**
+ * xsltFreeCtxtExts:
+ * @ctxt: an XSLT transformation context
+ *
+ * Free the XSLT extension data
+ */
+void
+xsltFreeCtxtExts(xsltTransformContextPtr ctxt)
+{
+    if (ctxt->extElements != NULL)
+        xmlHashFree(ctxt->extElements, NULL);
+    if (ctxt->extFunctions != NULL)
+        xmlHashFree(ctxt->extFunctions, NULL);
+}
+
+/**
+ * xsltStyleGetExtData:
+ * @style: an XSLT stylesheet
+ * @URI:  the URI associated to the exension module
+ *
+ * Retrieve the data associated to the extension module in this given
+ * stylesheet.
+ *
+ * Returns the pointer or NULL if not present
+ */
+void *
+xsltStyleGetExtData(xsltStylesheetPtr style, const xmlChar * URI)
+{
+    xsltExtDataPtr data = NULL;
+    xsltStylesheetPtr tmp;
+
+
+    if ((style == NULL) || (URI == NULL))
+        return (NULL);
+
+    tmp = style;
+    while (tmp != NULL) {
+        if (tmp->extInfos != NULL) {
+            data = (xsltExtDataPtr) xmlHashLookup(tmp->extInfos, URI);
+            if (data != NULL)
+                break;
+        }
+        tmp = xsltNextImport(tmp);
+    }
+    if (data == NULL) {
+        if (style->extInfos == NULL) {
+            style->extInfos = xmlHashCreate(10);
+            if (style->extInfos == NULL)
+                return (NULL);
+        }
+    }
+    if (data == NULL) {
+        void *extData;
+        xsltExtModulePtr module;
+
+        module = xmlHashLookup(xsltExtensionsHash, URI);
+        if (module == NULL) {
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+            xsltGenericDebug(xsltGenericDebugContext,
+                             "Not registered extension module: %s\n", URI);
+#endif
+            return (NULL);
+        } else {
+            if (module->styleInitFunc == NULL) {
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+                xsltGenericDebug(xsltGenericDebugContext,
+                                 "Registering style module: %s\n", URI);
+#endif
+                extData = NULL;
+            } else {
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+                xsltGenericDebug(xsltGenericDebugContext,
+                                 "Initializing module: %s\n", URI);
+#endif
+                extData = module->styleInitFunc(style, URI);
+            }
+
+            data = xsltNewExtData(module, extData);
+            if (data == NULL)
+                return (NULL);
+            if (xmlHashAddEntry(style->extInfos, URI, (void *) data) < 0) {
+                xsltGenericError(xsltGenericErrorContext,
+                                 "Failed to register module data: %s\n",
+                                 URI);
+                if (module->styleShutdownFunc)
+                    module->styleShutdownFunc(style, URI, extData);
+                xsltFreeExtData(data);
+                return (NULL);
+            }
+        }
+    }
+    return (data->extData);
+}
+
+/**
+ * xsltGetExtData:
+ * @ctxt: an XSLT transformation context
+ * @URI:  the URI associated to the exension module
+ *
+ * Retrieve the data associated to the extension module in this given
+ * transformation.
+ *
+ * Returns the pointer or NULL if not present
+ */
+void *
+xsltGetExtData(xsltTransformContextPtr ctxt, const xmlChar * URI)
+{
+    xsltExtDataPtr data;
+
+    if ((ctxt == NULL) || (URI == NULL))
+        return (NULL);
+    if (ctxt->extInfos == NULL) {
+        ctxt->extInfos = xmlHashCreate(10);
+        if (ctxt->extInfos == NULL)
+            return (NULL);
+        data = NULL;
+    } else {
+        data = (xsltExtDataPtr) xmlHashLookup(ctxt->extInfos, URI);
+    }
+    if (data == NULL) {
+        void *extData;
+        xsltExtModulePtr module;
+
+        module = xmlHashLookup(xsltExtensionsHash, URI);
+        if (module == NULL) {
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+            xsltGenericDebug(xsltGenericDebugContext,
+                             "Not registered extension module: %s\n", URI);
+#endif
+            return (NULL);
+        } else {
+            if (module->initFunc == NULL)
+                return (NULL);
+
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+            xsltGenericDebug(xsltGenericDebugContext,
+                             "Initializing module: %s\n", URI);
+#endif
+
+            extData = module->initFunc(ctxt, URI);
+            if (extData == NULL)
+                return (NULL);
+
+            data = xsltNewExtData(module, extData);
+            if (data == NULL)
+                return (NULL);
+            if (xmlHashAddEntry(ctxt->extInfos, URI, (void *) data) < 0) {
+                xsltTransformError(ctxt, NULL, NULL,
+                                   "Failed to register module data: %s\n",
+                                   URI);
+                if (module->shutdownFunc)
+                    module->shutdownFunc(ctxt, URI, extData);
+                xsltFreeExtData(data);
+                return (NULL);
+            }
+        }
+    }
+    return (data->extData);
+}
+
+typedef struct _xsltInitExtCtxt xsltInitExtCtxt;
+struct _xsltInitExtCtxt {
+    xsltTransformContextPtr ctxt;
+    int ret;
+};
+
+/**
+ * xsltInitCtxtExt:
+ * @styleData:  the registered stylesheet data for the module
+ * @ctxt:  the XSLT transformation context + the return value
+ * @URI:  the extension URI
+ *
+ * Initializes an extension module
+ */
+static void
+xsltInitCtxtExt(xsltExtDataPtr styleData, xsltInitExtCtxt * ctxt,
+                const xmlChar * URI)
+{
+    xsltExtModulePtr module;
+    xsltExtDataPtr ctxtData;
+    void *extData;
+
+    if ((styleData == NULL) || (ctxt == NULL) || (URI == NULL) ||
+        (ctxt->ret == -1)) {
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "xsltInitCtxtExt: NULL param or error\n");
+#endif
+        return;
+    }
+    module = styleData->extModule;
+    if ((module == NULL) || (module->initFunc == NULL)) {
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "xsltInitCtxtExt: no module or no initFunc\n");
+#endif
+        return;
+    }
+
+    ctxtData = (xsltExtDataPtr) xmlHashLookup(ctxt->ctxt->extInfos, URI);
+    if (ctxtData != NULL) {
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "xsltInitCtxtExt: already initialized\n");
+#endif
+        return;
+    }
+
+    extData = module->initFunc(ctxt->ctxt, URI);
+    if (extData == NULL) {
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "xsltInitCtxtExt: no extData\n");
+#endif
+    }
+    ctxtData = xsltNewExtData(module, extData);
+    if (ctxtData == NULL) {
+        ctxt->ret = -1;
+        return;
+    }
+
+    if (ctxt->ctxt->extInfos == NULL)
+        ctxt->ctxt->extInfos = xmlHashCreate(10);
+    if (ctxt->ctxt->extInfos == NULL) {
+        ctxt->ret = -1;
+        return;
+    }
+
+    if (xmlHashAddEntry(ctxt->ctxt->extInfos, URI, ctxtData) < 0) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "Failed to register module data: %s\n", URI);
+        if (module->shutdownFunc)
+            module->shutdownFunc(ctxt->ctxt, URI, extData);
+        xsltFreeExtData(ctxtData);
+        ctxt->ret = -1;
+        return;
+    }
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+    xsltGenericDebug(xsltGenericDebugContext, "Registered module %s\n",
+                     URI);
+#endif
+    ctxt->ret++;
+}
+
+/**
+ * xsltInitCtxtExts:
+ * @ctxt: an XSLT transformation context
+ *
+ * Initialize the set of modules with registered stylesheet data
+ *
+ * Returns the number of modules initialized or -1 in case of error
+ */
+int
+xsltInitCtxtExts(xsltTransformContextPtr ctxt)
+{
+    xsltStylesheetPtr style;
+    xsltInitExtCtxt ctx;
+
+    if (ctxt == NULL)
+        return (-1);
+
+    style = ctxt->style;
+    if (style == NULL)
+        return (-1);
+
+    ctx.ctxt = ctxt;
+    ctx.ret = 0;
+
+    while (style != NULL) {
+        if (style->extInfos != NULL) {
+            xmlHashScan(style->extInfos,
+                        (xmlHashScanner) xsltInitCtxtExt, &ctx);
+            if (ctx.ret == -1)
+                return (-1);
+        }
+        style = xsltNextImport(style);
+    }
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+    xsltGenericDebug(xsltGenericDebugContext, "Registered %d modules\n",
+                     ctx.ret);
+#endif
+    return (ctx.ret);
+}
+
+/**
+ * xsltShutdownCtxtExt:
+ * @data:  the registered data for the module
+ * @ctxt:  the XSLT transformation context
+ * @URI:  the extension URI
+ *
+ * Shutdown an extension module loaded
+ */
+static void
+xsltShutdownCtxtExt(xsltExtDataPtr data, xsltTransformContextPtr ctxt,
+                    const xmlChar * URI)
+{
+    xsltExtModulePtr module;
+
+    if ((data == NULL) || (ctxt == NULL) || (URI == NULL))
+        return;
+    module = data->extModule;
+    if ((module == NULL) || (module->shutdownFunc == NULL))
+        return;
+
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Shutting down module : %s\n", URI);
+#endif
+    module->shutdownFunc(ctxt, URI, data->extData);
+}
+
+/**
+ * xsltShutdownCtxtExts:
+ * @ctxt: an XSLT transformation context
+ *
+ * Shutdown the set of modules loaded
+ */
+void
+xsltShutdownCtxtExts(xsltTransformContextPtr ctxt)
+{
+    if (ctxt == NULL)
+        return;
+    if (ctxt->extInfos == NULL)
+        return;
+    xmlHashScan(ctxt->extInfos, (xmlHashScanner) xsltShutdownCtxtExt,
+                ctxt);
+    xmlHashFree(ctxt->extInfos, (xmlHashDeallocator) xsltFreeExtData);
+    ctxt->extInfos = NULL;
+}
+
+/**
+ * xsltShutdownExt:
+ * @data:  the registered data for the module
+ * @ctxt:  the XSLT stylesheet
+ * @URI:  the extension URI
+ *
+ * Shutdown an extension module loaded
+ */
+static void
+xsltShutdownExt(xsltExtDataPtr data, xsltStylesheetPtr style,
+                const xmlChar * URI)
+{
+    xsltExtModulePtr module;
+
+    if ((data == NULL) || (style == NULL) || (URI == NULL))
+        return;
+    module = data->extModule;
+    if ((module == NULL) || (module->styleShutdownFunc == NULL))
+        return;
+
+#ifdef WITH_XSLT_DEBUG_EXTENSIONS
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Shutting down module : %s\n", URI);
+#endif
+    module->styleShutdownFunc(style, URI, data->extData);
+    xmlHashRemoveEntry(style->extInfos, URI,
+                       (xmlHashDeallocator) xsltFreeExtData);
+}
+
+/**
+ * xsltShutdownExts:
+ * @style: an XSLT stylesheet
+ *
+ * Shutdown the set of modules loaded
+ */
+void
+xsltShutdownExts(xsltStylesheetPtr style)
+{
+    if (style == NULL)
+        return;
+    if (style->extInfos == NULL)
+        return;
+    xmlHashScan(style->extInfos, (xmlHashScanner) xsltShutdownExt, style);
+    xmlHashFree(style->extInfos, (xmlHashDeallocator) xsltFreeExtData);
+    style->extInfos = NULL;
+}
+
+/**
+ * xsltCheckExtPrefix:
+ * @style: the stylesheet
+ * @prefix: the namespace prefix (possibly NULL)
+ *
+ * Check if the given prefix is one of the declared extensions
+ *
+ * Returns 1 if this is an extension, 0 otherwise
+ */
+int
+xsltCheckExtPrefix(xsltStylesheetPtr style, const xmlChar * prefix)
+{
+    xsltExtDefPtr cur;
+
+    if ((style == NULL) || (style->nsDefs == NULL))
+        return (0);
+
+    if (prefix == NULL)
+        prefix = BAD_CAST "#default";
+
+    cur = (xsltExtDefPtr) style->nsDefs;
+    while (cur != NULL) {
+        if (xmlStrEqual(prefix, cur->prefix))
+            return (1);
+        cur = cur->next;
+    }
+    return (0);
+}
+
+/**
+ * xsltRegisterExtModuleFull:
+ * @URI:  URI associated to this module
+ * @initFunc:  the module initialization function
+ * @shutdownFunc:  the module shutdown function
+ * @styleInitFunc:  the module initialization function
+ * @styleShutdownFunc:  the module shutdown function
+ *
+ * Register an XSLT extension module to the library.
+ *
+ * Returns 0 if sucessful, -1 in case of error
+ */
+int
+xsltRegisterExtModuleFull(const xmlChar * URI,
+                          xsltExtInitFunction initFunc,
+                          xsltExtShutdownFunction shutdownFunc,
+                          xsltStyleExtInitFunction styleInitFunc,
+                          xsltStyleExtShutdownFunction styleShutdownFunc)
+{
+    int ret;
+    xsltExtModulePtr module;
+
+    if ((URI == NULL) || (initFunc == NULL))
+        return (-1);
+    if (xsltExtensionsHash == NULL)
+        xsltExtensionsHash = xmlHashCreate(10);
+
+    if (xsltExtensionsHash == NULL)
+        return (-1);
+
+    module = xmlHashLookup(xsltExtensionsHash, URI);
+    if (module != NULL) {
+        if ((module->initFunc == initFunc) &&
+            (module->shutdownFunc == shutdownFunc))
+            return (0);
+        return (-1);
+    }
+    module = xsltNewExtModule(initFunc, shutdownFunc,
+                              styleInitFunc, styleShutdownFunc);
+    if (module == NULL)
+        return (-1);
+    ret = xmlHashAddEntry(xsltExtensionsHash, URI, (void *) module);
+    return (ret);
+}
+
+/**
+ * xsltRegisterExtModule:
+ * @URI:  URI associated to this module
+ * @initFunc:  the module initialization function
+ * @shutdownFunc:  the module shutdown function
+ *
+ * Register an XSLT extension module to the library.
+ *
+ * Returns 0 if sucessful, -1 in case of error
+ */
+int
+xsltRegisterExtModule(const xmlChar * URI,
+                      xsltExtInitFunction initFunc,
+                      xsltExtShutdownFunction shutdownFunc)
+{
+    return xsltRegisterExtModuleFull(URI, initFunc, shutdownFunc,
+                                     NULL, NULL);
+}
+
+/**
+ * xsltUnregisterExtModule:
+ * @URI:  URI associated to this module
+ *
+ * Unregister an XSLT extension module from the library.
+ *
+ * Returns 0 if sucessful, -1 in case of error
+ */
+int
+xsltUnregisterExtModule(const xmlChar * URI)
+{
+    int ret;
+
+    if (URI == NULL)
+        return (-1);
+    if (xsltExtensionsHash == NULL)
+        return (-1);
+
+    ret =
+        xmlHashRemoveEntry(xsltExtensionsHash, URI,
+                           (xmlHashDeallocator) xsltFreeExtModule);
+    return (ret);
+}
+
+/**
+ * xsltUnregisterAllExtModules:
+ *
+ * Unregister all the XSLT extension module from the library.
+ */
+static void
+xsltUnregisterAllExtModules(void)
+{
+    if (xsltExtensionsHash == NULL)
+        return;
+
+    xmlHashFree(xsltExtensionsHash,
+                (xmlHashDeallocator) xsltFreeExtModule);
+    xsltExtensionsHash = NULL;
+}
+
+/**
+ * xsltXPathGetTransformContext:
+ * @ctxt:  an XPath transformation context
+ *
+ * Provides the XSLT transformation context from the XPath transformation
+ * context. This is useful when an XPath function in the extension module
+ * is called by the XPath interpreter and that the XSLT context is needed
+ * for example to retrieve the associated data pertaining to this XSLT
+ * transformation.
+ *
+ * Returns the XSLT transformation context or NULL in case of error.
+ */
+xsltTransformContextPtr
+xsltXPathGetTransformContext(xmlXPathParserContextPtr ctxt)
+{
+    if ((ctxt == NULL) || (ctxt->context == NULL))
+        return (NULL);
+    return (ctxt->context->extra);
+}
+
+/**
+ * xsltRegisterExtModuleFunction:
+ * @name:  the function name
+ * @URI:  the function namespace URI
+ * @function:  the function callback
+ *
+ * Registers an extension module function.
+ *
+ * Returns 0 if successful, -1 in case of error.
+ */
+int
+xsltRegisterExtModuleFunction(const xmlChar * name, const xmlChar * URI,
+                              xmlXPathFunction function)
+{
+    if ((name == NULL) || (URI == NULL) || (function == NULL))
+        return (-1);
+
+    if (xsltFunctionsHash == NULL)
+        xsltFunctionsHash = xmlHashCreate(10);
+    if (xsltFunctionsHash == NULL)
+        return (-1);
+
+    xmlHashUpdateEntry2(xsltFunctionsHash, name, URI,
+                        XML_CAST_FPTR(function), NULL);
+
+    return (0);
+}
+
+/**
+ * xsltExtModuleFunctionLookup:
+ * @name:  the function name
+ * @URI:  the function namespace URI
+ *
+ * Looks up an extension module function
+ *
+ * Returns the function if found, NULL otherwise.
+ */
+xmlXPathFunction
+xsltExtModuleFunctionLookup(const xmlChar * name, const xmlChar * URI)
+{
+    xmlXPathFunction ret;
+
+    if ((xsltFunctionsHash == NULL) || (name == NULL) || (URI == NULL))
+        return (NULL);
+
+    XML_CAST_FPTR(ret) = xmlHashLookup2(xsltFunctionsHash, name, URI);
+
+    /* if lookup fails, attempt a dynamic load on supported platforms */
+    if (NULL == ret) {
+        if (!xsltExtModuleRegisterDynamic(URI)) {
+            XML_CAST_FPTR(ret) =
+                xmlHashLookup2(xsltFunctionsHash, name, URI);
+        }
+    }
+
+    return ret;
+}
+
+/**
+ * xsltUnregisterExtModuleFunction:
+ * @name:  the function name
+ * @URI:  the function namespace URI
+ *
+ * Unregisters an extension module function
+ *
+ * Returns 0 if successful, -1 in case of error.
+ */
+int
+xsltUnregisterExtModuleFunction(const xmlChar * name, const xmlChar * URI)
+{
+    if ((xsltFunctionsHash == NULL) || (name == NULL) || (URI == NULL))
+        return (-1);
+
+    return xmlHashRemoveEntry2(xsltFunctionsHash, name, URI, NULL);
+}
+
+/**
+ * xsltUnregisterAllExtModuleFunction:
+ *
+ * Unregisters all extension module function
+ */
+static void
+xsltUnregisterAllExtModuleFunction(void)
+{
+    xmlHashFree(xsltFunctionsHash, NULL);
+    xsltFunctionsHash = NULL;
+}
+
+
+/**
+ * xsltNewElemPreComp:
+ * @style:  the XSLT stylesheet
+ * @inst:  the element node
+ * @function: the transform function
+ *
+ * Creates and initializes an #xsltElemPreComp
+ *
+ * Returns the new and initialized #xsltElemPreComp
+ */
+xsltElemPreCompPtr
+xsltNewElemPreComp(xsltStylesheetPtr style, xmlNodePtr inst,
+                   xsltTransformFunction function)
+{
+    xsltElemPreCompPtr cur;
+
+    cur = (xsltElemPreCompPtr) xmlMalloc(sizeof(xsltElemPreComp));
+    if (cur == NULL) {
+        xsltTransformError(NULL, style, NULL,
+                           "xsltNewExtElement : malloc failed\n");
+        return (NULL);
+    }
+    memset(cur, 0, sizeof(xsltElemPreComp));
+
+    xsltInitElemPreComp(cur, style, inst, function,
+                        (xsltElemPreCompDeallocator) xmlFree);
+
+    return (cur);
+}
+
+/**
+ * xsltInitElemPreComp:
+ * @comp:  an #xsltElemPreComp (or generally a derived structure)
+ * @style:  the XSLT stylesheet
+ * @inst:  the element node
+ * @function:  the transform function
+ * @freeFunc:  the @comp deallocator
+ *
+ * Initializes an existing #xsltElemPreComp structure. This is usefull
+ * when extending an #xsltElemPreComp to store precomputed data.
+ * This function MUST be called on any extension element precomputed
+ * data struct.
+ */
+void
+xsltInitElemPreComp(xsltElemPreCompPtr comp, xsltStylesheetPtr style,
+                    xmlNodePtr inst, xsltTransformFunction function,
+                    xsltElemPreCompDeallocator freeFunc)
+{
+    comp->type = XSLT_FUNC_EXTENSION;
+    comp->func = function;
+    comp->inst = inst;
+    comp->free = freeFunc;
+
+    comp->next = style->preComps;
+    style->preComps = comp;
+}
+
+/**
+ * xsltPreComputeExtModuleElement:
+ * @style:  the stylesheet
+ * @inst:  the element node
+ *
+ * Precomputes an extension module element
+ *
+ * Returns the precomputed data
+ */
+xsltElemPreCompPtr
+xsltPreComputeExtModuleElement(xsltStylesheetPtr style, xmlNodePtr inst)
+{
+    xsltExtElementPtr ext;
+    xsltElemPreCompPtr comp = NULL;
+
+    if ((style == NULL) || (inst == NULL) ||
+        (inst->type != XML_ELEMENT_NODE) || (inst->ns == NULL))
+        return (NULL);
+
+    ext = (xsltExtElementPtr)
+        xmlHashLookup2(xsltElementsHash, inst->name, inst->ns->href);
+    if (ext == NULL)
+        return (NULL);
+
+    if (ext->precomp != NULL)
+        comp = ext->precomp(style, inst, ext->transform);
+    if (comp == NULL)
+        comp = xsltNewElemPreComp(style, inst, ext->transform);
+
+    return (comp);
+}
+
+/**
+ * xsltRegisterExtModuleElement:
+ * @name:  the element name
+ * @URI:  the element namespace URI
+ * @precomp:  the pre-computation callback
+ * @transform:  the transformation callback
+ *
+ * Registers an extension module element.
+ *
+ * Returns 0 if successful, -1 in case of error.
+ */
+int
+xsltRegisterExtModuleElement(const xmlChar * name, const xmlChar * URI,
+                             xsltPreComputeFunction precomp,
+                             xsltTransformFunction transform)
+{
+    xsltExtElementPtr ext;
+
+    if ((name == NULL) || (URI == NULL) || (transform == NULL))
+        return (-1);
+
+    if (xsltElementsHash == NULL)
+        xsltElementsHash = xmlHashCreate(10);
+    if (xsltElementsHash == NULL)
+        return (-1);
+
+    ext = xsltNewExtElement(precomp, transform);
+    if (ext == NULL)
+        return (-1);
+
+    xmlHashUpdateEntry2(xsltElementsHash, name, URI, (void *) ext,
+                        (xmlHashDeallocator) xsltFreeExtElement);
+
+    return (0);
+}
+
+/**
+ * xsltExtElementLookup:
+ * @ctxt:  an XSLT process context
+ * @name:  the element name
+ * @URI:  the element namespace URI
+ *
+ * Looks up an extension element. @ctxt can be NULL to search only in
+ * module elements.
+ *
+ * Returns the element callback or NULL if not found
+ */
+xsltTransformFunction
+xsltExtElementLookup(xsltTransformContextPtr ctxt,
+                     const xmlChar * name, const xmlChar * URI)
+{
+    xsltTransformFunction ret;
+
+    if ((name == NULL) || (URI == NULL))
+        return (NULL);
+
+    if ((ctxt != NULL) && (ctxt->extElements != NULL)) {
+        XML_CAST_FPTR(ret) = xmlHashLookup2(ctxt->extElements, name, URI);
+        if (ret != NULL)
+            return (ret);
+    }
+    return xsltExtModuleElementLookup(name, URI);
+}
+
+/**
+ * xsltExtModuleElementLookup:
+ * @name:  the element name
+ * @URI:  the element namespace URI
+ *
+ * Looks up an extension module element
+ *
+ * Returns the callback function if found, NULL otherwise.
+ */
+xsltTransformFunction
+xsltExtModuleElementLookup(const xmlChar * name, const xmlChar * URI)
+{
+    xsltExtElementPtr ext;
+
+    if ((xsltElementsHash == NULL) || (name == NULL) || (URI == NULL))
+        return (NULL);
+
+    ext = (xsltExtElementPtr) xmlHashLookup2(xsltElementsHash, name, URI);
+
+    /* if function lookup fails, attempt a dynamic load on supported platforms */
+    ext = (xsltExtElementPtr) xmlHashLookup2(xsltElementsHash, name, URI);
+    if (NULL == ext) {
+        if (!xsltExtModuleRegisterDynamic(URI)) {
+            ext = (xsltExtElementPtr)
+	          xmlHashLookup2(xsltElementsHash, name, URI);
+        }
+    }
+
+    if (ext == NULL)
+        return (NULL);
+    return (ext->transform);
+}
+
+/**
+ * xsltExtModuleElementPreComputeLookup:
+ * @name:  the element name
+ * @URI:  the element namespace URI
+ *
+ * Looks up an extension module element pre-computation function
+ *
+ * Returns the callback function if found, NULL otherwise.
+ */
+xsltPreComputeFunction
+xsltExtModuleElementPreComputeLookup(const xmlChar * name,
+                                     const xmlChar * URI)
+{
+    xsltExtElementPtr ext;
+
+    if ((xsltElementsHash == NULL) || (name == NULL) || (URI == NULL))
+        return (NULL);
+
+    ext = (xsltExtElementPtr) xmlHashLookup2(xsltElementsHash, name, URI);
+
+    if (ext == NULL) {
+        if (!xsltExtModuleRegisterDynamic(URI)) {
+            ext = (xsltExtElementPtr)
+	          xmlHashLookup2(xsltElementsHash, name, URI);
+        }
+    }
+
+    if (ext == NULL)
+        return (NULL);
+    return (ext->precomp);
+}
+
+/**
+ * xsltUnregisterExtModuleElement:
+ * @name:  the element name
+ * @URI:  the element namespace URI
+ *
+ * Unregisters an extension module element
+ *
+ * Returns 0 if successful, -1 in case of error.
+ */
+int
+xsltUnregisterExtModuleElement(const xmlChar * name, const xmlChar * URI)
+{
+    if ((xsltElementsHash == NULL) || (name == NULL) || (URI == NULL))
+        return (-1);
+
+    return xmlHashRemoveEntry2(xsltElementsHash, name, URI,
+                               (xmlHashDeallocator) xsltFreeExtElement);
+}
+
+/**
+ * xsltUnregisterAllExtModuleElement:
+ *
+ * Unregisters all extension module element
+ */
+static void
+xsltUnregisterAllExtModuleElement(void)
+{
+    xmlHashFree(xsltElementsHash, (xmlHashDeallocator) xsltFreeExtElement);
+    xsltElementsHash = NULL;
+}
+
+/**
+ * xsltRegisterExtModuleTopLevel:
+ * @name:  the top-level element name
+ * @URI:  the top-level element namespace URI
+ * @function:  the top-level element callback
+ *
+ * Registers an extension module top-level element.
+ *
+ * Returns 0 if successful, -1 in case of error.
+ */
+int
+xsltRegisterExtModuleTopLevel(const xmlChar * name, const xmlChar * URI,
+                              xsltTopLevelFunction function)
+{
+    if ((name == NULL) || (URI == NULL) || (function == NULL))
+        return (-1);
+
+    if (xsltTopLevelsHash == NULL)
+        xsltTopLevelsHash = xmlHashCreate(10);
+    if (xsltTopLevelsHash == NULL)
+        return (-1);
+
+    xmlHashUpdateEntry2(xsltTopLevelsHash, name, URI,
+                        XML_CAST_FPTR(function), NULL);
+
+    return (0);
+}
+
+/**
+ * xsltExtModuleTopLevelLookup:
+ * @name:  the top-level element name
+ * @URI:  the top-level element namespace URI
+ *
+ * Looks up an extension module top-level element
+ *
+ * Returns the callback function if found, NULL otherwise.
+ */
+xsltTopLevelFunction
+xsltExtModuleTopLevelLookup(const xmlChar * name, const xmlChar * URI)
+{
+    xsltTopLevelFunction ret;
+
+    if ((xsltTopLevelsHash == NULL) || (name == NULL) || (URI == NULL))
+        return (NULL);
+
+    XML_CAST_FPTR(ret) = xmlHashLookup2(xsltTopLevelsHash, name, URI);
+
+    /* if lookup fails, attempt a dynamic load on supported platforms */
+    if (NULL == ret) {
+        if (!xsltExtModuleRegisterDynamic(URI)) {
+            XML_CAST_FPTR(ret) = xmlHashLookup2(xsltTopLevelsHash, name, URI);
+        }
+    }
+
+    return (ret);
+}
+
+/**
+ * xsltUnregisterExtModuleTopLevel:
+ * @name:  the top-level element name
+ * @URI:  the top-level element namespace URI
+ *
+ * Unregisters an extension module top-level element
+ *
+ * Returns 0 if successful, -1 in case of error.
+ */
+int
+xsltUnregisterExtModuleTopLevel(const xmlChar * name, const xmlChar * URI)
+{
+    if ((xsltTopLevelsHash == NULL) || (name == NULL) || (URI == NULL))
+        return (-1);
+
+    return xmlHashRemoveEntry2(xsltTopLevelsHash, name, URI, NULL);
+}
+
+/**
+ * xsltUnregisterAllExtModuleTopLevel:
+ *
+ * Unregisters all extension module function
+ */
+static void
+xsltUnregisterAllExtModuleTopLevel(void)
+{
+    xmlHashFree(xsltTopLevelsHash, NULL);
+    xsltTopLevelsHash = NULL;
+}
+
+/**
+ * xsltGetExtInfo:
+ * @style:  pointer to a stylesheet
+ * @URI:    the namespace URI desired
+ *
+ * looks up URI in extInfos of the stylesheet
+ *
+ * returns a pointer to the hash table if found, else NULL
+ */
+xmlHashTablePtr
+xsltGetExtInfo(xsltStylesheetPtr style, const xmlChar * URI)
+{
+    xsltExtDataPtr data;
+
+    if (style != NULL && style->extInfos != NULL) {
+        data = xmlHashLookup(style->extInfos, URI);
+        if (data != NULL && data->extData != NULL)
+            return data->extData;
+    }
+    return NULL;
+}
+
+/************************************************************************
+ * 									*
+ * 		Test module http://xmlsoft.org/XSLT/			*
+ * 									*
+ ************************************************************************/
+
+/************************************************************************
+ * 									*
+ * 		Test of the extension module API			*
+ * 									*
+ ************************************************************************/
+
+static xmlChar *testData = NULL;
+static xmlChar *testStyleData = NULL;
+
+/**
+ * xsltExtFunctionTest:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * function libxslt:test() for testing the extensions support.
+ */
+static void
+xsltExtFunctionTest(xmlXPathParserContextPtr ctxt,
+                    int nargs ATTRIBUTE_UNUSED)
+{
+    xsltTransformContextPtr tctxt;
+    void *data = NULL;
+
+    tctxt = xsltXPathGetTransformContext(ctxt);
+
+    if (testData == NULL) {
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "xsltExtFunctionTest: not initialized,"
+                         " calling xsltGetExtData\n");
+        data = xsltGetExtData(tctxt, (const xmlChar *) XSLT_DEFAULT_URL);
+        if (data == NULL) {
+            xsltTransformError(tctxt, NULL, NULL,
+                               "xsltExtElementTest: not initialized\n");
+            return;
+        }
+    }
+    if (tctxt == NULL) {
+        xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+                           "xsltExtFunctionTest: failed to get the transformation context\n");
+        return;
+    }
+    if (data == NULL)
+        data = xsltGetExtData(tctxt, (const xmlChar *) XSLT_DEFAULT_URL);
+    if (data == NULL) {
+        xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+                           "xsltExtFunctionTest: failed to get module data\n");
+        return;
+    }
+    if (data != testData) {
+        xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+                           "xsltExtFunctionTest: got wrong module data\n");
+        return;
+    }
+#ifdef WITH_XSLT_DEBUG_FUNCTION
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "libxslt:test() called with %d args\n", nargs);
+#endif
+}
+
+/**
+ * xsltExtElementPreCompTest:
+ * @style:  the stylesheet
+ * @inst:  the instruction in the stylesheet
+ *
+ * Process a libxslt:test node
+ */
+static xsltElemPreCompPtr
+xsltExtElementPreCompTest(xsltStylesheetPtr style, xmlNodePtr inst,
+                          xsltTransformFunction function)
+{
+    xsltElemPreCompPtr ret;
+
+    if (style == NULL) {
+        xsltTransformError(NULL, NULL, inst,
+                           "xsltExtElementTest: no transformation context\n");
+        return (NULL);
+    }
+    if (testStyleData == NULL) {
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "xsltExtElementPreCompTest: not initialized,"
+                         " calling xsltStyleGetExtData\n");
+        xsltStyleGetExtData(style, (const xmlChar *) XSLT_DEFAULT_URL);
+        if (testStyleData == NULL) {
+            xsltTransformError(NULL, style, inst,
+                               "xsltExtElementPreCompTest: not initialized\n");
+            if (style != NULL)
+                style->errors++;
+            return (NULL);
+        }
+    }
+    if (inst == NULL) {
+        xsltTransformError(NULL, style, inst,
+                           "xsltExtElementPreCompTest: no instruction\n");
+        if (style != NULL)
+            style->errors++;
+        return (NULL);
+    }
+    ret = xsltNewElemPreComp(style, inst, function);
+    return (ret);
+}
+
+/**
+ * xsltExtElementTest:
+ * @ctxt:  an XSLT processing context
+ * @node:  The current node
+ * @inst:  the instruction in the stylesheet
+ * @comp:  precomputed informations
+ *
+ * Process a libxslt:test node
+ */
+static void
+xsltExtElementTest(xsltTransformContextPtr ctxt, xmlNodePtr node,
+                   xmlNodePtr inst,
+                   xsltElemPreCompPtr comp ATTRIBUTE_UNUSED)
+{
+    xmlNodePtr commentNode;
+
+    if (testData == NULL) {
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "xsltExtElementTest: not initialized,"
+                         " calling xsltGetExtData\n");
+        xsltGetExtData(ctxt, (const xmlChar *) XSLT_DEFAULT_URL);
+        if (testData == NULL) {
+            xsltTransformError(ctxt, NULL, inst,
+                               "xsltExtElementTest: not initialized\n");
+            return;
+        }
+    }
+    if (ctxt == NULL) {
+        xsltTransformError(ctxt, NULL, inst,
+                           "xsltExtElementTest: no transformation context\n");
+        return;
+    }
+    if (node == NULL) {
+        xsltTransformError(ctxt, NULL, inst,
+                           "xsltExtElementTest: no current node\n");
+        return;
+    }
+    if (inst == NULL) {
+        xsltTransformError(ctxt, NULL, inst,
+                           "xsltExtElementTest: no instruction\n");
+        return;
+    }
+    if (ctxt->insert == NULL) {
+        xsltTransformError(ctxt, NULL, inst,
+                           "xsltExtElementTest: no insertion point\n");
+        return;
+    }
+    commentNode = xmlNewComment((const xmlChar *)
+                                "libxslt:test element test worked");
+    xmlAddChild(ctxt->insert, commentNode);
+}
+
+/**
+ * xsltExtInitTest:
+ * @ctxt:  an XSLT transformation context
+ * @URI:  the namespace URI for the extension
+ *
+ * A function called at initialization time of an XSLT extension module
+ *
+ * Returns a pointer to the module specific data for this transformation
+ */
+static void *
+xsltExtInitTest(xsltTransformContextPtr ctxt, const xmlChar * URI)
+{
+    if (testStyleData == NULL) {
+        xsltGenericDebug(xsltGenericErrorContext,
+                         "xsltExtInitTest: not initialized,"
+                         " calling xsltStyleGetExtData\n");
+        xsltStyleGetExtData(ctxt->style, URI);
+        if (testStyleData == NULL) {
+            xsltTransformError(ctxt, NULL, NULL,
+                               "xsltExtInitTest: not initialized\n");
+            return (NULL);
+        }
+    }
+    if (testData != NULL) {
+        xsltTransformError(ctxt, NULL, NULL,
+                           "xsltExtInitTest: already initialized\n");
+        return (NULL);
+    }
+    testData = (void *) "test data";
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Registered test module : %s\n", URI);
+    return (testData);
+}
+
+
+/**
+ * xsltExtShutdownTest:
+ * @ctxt:  an XSLT transformation context
+ * @URI:  the namespace URI for the extension
+ * @data:  the data associated to this module
+ *
+ * A function called at shutdown time of an XSLT extension module
+ */
+static void
+xsltExtShutdownTest(xsltTransformContextPtr ctxt,
+                    const xmlChar * URI, void *data)
+{
+    if (testData == NULL) {
+        xsltTransformError(ctxt, NULL, NULL,
+                           "xsltExtShutdownTest: not initialized\n");
+        return;
+    }
+    if (data != testData) {
+        xsltTransformError(ctxt, NULL, NULL,
+                           "xsltExtShutdownTest: wrong data\n");
+    }
+    testData = NULL;
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Unregistered test module : %s\n", URI);
+}
+
+/**
+ * xsltExtStyleInitTest:
+ * @style:  an XSLT stylesheet
+ * @URI:  the namespace URI for the extension
+ *
+ * A function called at initialization time of an XSLT extension module
+ *
+ * Returns a pointer to the module specific data for this transformation
+ */
+static void *
+xsltExtStyleInitTest(xsltStylesheetPtr style ATTRIBUTE_UNUSED,
+                     const xmlChar * URI)
+{
+    if (testStyleData != NULL) {
+        xsltTransformError(NULL, NULL, NULL,
+                           "xsltExtInitTest: already initialized\n");
+        return (NULL);
+    }
+    testStyleData = (void *) "test data";
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Registered test module : %s\n", URI);
+    return (testStyleData);
+}
+
+
+/**
+ * xsltExtStyleShutdownTest:
+ * @style:  an XSLT stylesheet
+ * @URI:  the namespace URI for the extension
+ * @data:  the data associated to this module
+ *
+ * A function called at shutdown time of an XSLT extension module
+ */
+static void
+xsltExtStyleShutdownTest(xsltStylesheetPtr style ATTRIBUTE_UNUSED,
+                         const xmlChar * URI, void *data)
+{
+    if (testStyleData == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "xsltExtShutdownTest: not initialized\n");
+        return;
+    }
+    if (data != testStyleData) {
+        xsltTransformError(NULL, NULL, NULL,
+                           "xsltExtShutdownTest: wrong data\n");
+    }
+    testStyleData = NULL;
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Unregistered test module : %s\n", URI);
+}
+
+/**
+ * xsltRegisterTestModule:
+ *
+ * Registers the test module
+ */
+void
+xsltRegisterTestModule(void)
+{
+    xsltRegisterExtModuleFull((const xmlChar *) XSLT_DEFAULT_URL,
+                              xsltExtInitTest, xsltExtShutdownTest,
+                              xsltExtStyleInitTest,
+                              xsltExtStyleShutdownTest);
+    xsltRegisterExtModuleFunction((const xmlChar *) "test",
+                                  (const xmlChar *) XSLT_DEFAULT_URL,
+                                  xsltExtFunctionTest);
+    xsltRegisterExtModuleElement((const xmlChar *) "test",
+                                 (const xmlChar *) XSLT_DEFAULT_URL,
+                                 xsltExtElementPreCompTest,
+                                 xsltExtElementTest);
+}
+
+static void
+xsltHashScannerModuleFree(void *payload, void *data ATTRIBUTE_UNUSED,
+                          xmlChar * name ATTRIBUTE_UNUSED)
+{
+#ifdef WITH_MODULES
+    xmlModuleClose(payload);
+#endif
+}
+
+/**
+ * xsltCleanupGlobals:
+ *
+ * Unregister all global variables set up by the XSLT library
+ */
+void
+xsltCleanupGlobals(void)
+{
+    xsltUnregisterAllExtModules();
+    xsltUnregisterAllExtModuleFunction();
+    xsltUnregisterAllExtModuleElement();
+    xsltUnregisterAllExtModuleTopLevel();
+
+    /* cleanup dynamic module hash */
+    if (NULL != xsltModuleHash) {
+        xmlHashScan(xsltModuleHash, xsltHashScannerModuleFree, 0);
+        xmlHashFree(xsltModuleHash, NULL);
+        xsltModuleHash = NULL;
+    }
+
+    xsltUninit();
+}
+
+static void
+xsltDebugDumpExtensionsCallback(void *function ATTRIBUTE_UNUSED,
+                                FILE * output, const xmlChar * name,
+                                const xmlChar * URI,
+                                const xmlChar * not_used ATTRIBUTE_UNUSED)
+{
+    if (!name || !URI)
+        return;
+    fprintf(output, "{%s}%s\n", URI, name);
+}
+
+static void
+xsltDebugDumpExtModulesCallback(void *function ATTRIBUTE_UNUSED,
+                                FILE * output, const xmlChar * URI,
+                                const xmlChar * not_used ATTRIBUTE_UNUSED,
+                                const xmlChar * not_used2 ATTRIBUTE_UNUSED)
+{
+    if (!URI)
+        return;
+    fprintf(output, "%s\n", URI);
+}
+
+/**
+ * xsltDebugDumpExtensions:
+ * @output:  the FILE * for the output, if NULL stdout is used
+ *
+ * Dumps a list of the registered XSLT extension functions and elements
+ */
+void
+xsltDebugDumpExtensions(FILE * output)
+{
+    if (output == NULL)
+        output = stdout;
+    fprintf(output,
+            "Registered XSLT Extensions\n--------------------------\n");
+    if (!xsltFunctionsHash)
+        fprintf(output, "No registered extension functions\n");
+    else {
+        fprintf(output, "Registered Extension Functions:\n");
+        xmlHashScanFull(xsltFunctionsHash,
+                        (xmlHashScannerFull)
+                        xsltDebugDumpExtensionsCallback, output);
+    }
+    if (!xsltElementsHash)
+        fprintf(output, "\nNo registered extension elements\n");
+    else {
+        fprintf(output, "\nRegistered Extension Elements:\n");
+        xmlHashScanFull(xsltElementsHash,
+                        (xmlHashScannerFull)
+                        xsltDebugDumpExtensionsCallback, output);
+    }
+    if (!xsltExtensionsHash)
+        fprintf(output, "\nNo registered extension modules\n");
+    else {
+        fprintf(output, "\nRegistered Extension Modules:\n");
+        xmlHashScanFull(xsltExtensionsHash,
+                        (xmlHashScannerFull)
+                        xsltDebugDumpExtModulesCallback, output);
+    }
+
+}

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/extensions.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/extensions.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/extensions.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,248 @@
+/*
+ * Summary: interface for the extension support
+ * Description: This provide the API needed for simple and module
+ *              extension support.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_EXTENSION_H__
+#define __XML_XSLT_EXTENSION_H__
+
+#include <libxml/xpath.h>
+#include "xsltexports.h"
+#include "xsltInternals.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Extension Modules API.
+ */
+
+/**
+ * xsltStyleExtInitFunction:
+ * @ctxt:  an XSLT stylesheet
+ * @URI:  the namespace URI for the extension
+ *
+ * A function called at initialization time of an XSLT extension module.
+ *
+ * Returns a pointer to the module specific data for this transformation.
+ */
+typedef void * (*xsltStyleExtInitFunction)	(xsltStylesheetPtr style,
+						 const xmlChar *URI);
+
+/**
+ * xsltStyleExtShutdownFunction:
+ * @ctxt:  an XSLT stylesheet
+ * @URI:  the namespace URI for the extension
+ * @data:  the data associated to this module
+ *
+ * A function called at shutdown time of an XSLT extension module.
+ */
+typedef void (*xsltStyleExtShutdownFunction)	(xsltStylesheetPtr style,
+						 const xmlChar *URI,
+						 void *data);
+
+/**
+ * xsltExtInitFunction:
+ * @ctxt:  an XSLT transformation context
+ * @URI:  the namespace URI for the extension
+ *
+ * A function called at initialization time of an XSLT extension module.
+ *
+ * Returns a pointer to the module specific data for this transformation.
+ */
+typedef void * (*xsltExtInitFunction)	(xsltTransformContextPtr ctxt,
+					 const xmlChar *URI);
+
+/**
+ * xsltExtShutdownFunction:
+ * @ctxt:  an XSLT transformation context
+ * @URI:  the namespace URI for the extension
+ * @data:  the data associated to this module
+ *
+ * A function called at shutdown time of an XSLT extension module.
+ */
+typedef void (*xsltExtShutdownFunction) (xsltTransformContextPtr ctxt,
+					 const xmlChar *URI,
+					 void *data);
+
+XSLTPUBFUN int XSLTCALL
+		xsltRegisterExtModule	(const xmlChar *URI,
+					 xsltExtInitFunction initFunc,
+					 xsltExtShutdownFunction shutdownFunc);
+XSLTPUBFUN int XSLTCALL		
+		xsltRegisterExtModuleFull
+					(const xmlChar * URI,
+					 xsltExtInitFunction initFunc,
+					 xsltExtShutdownFunction shutdownFunc,
+					 xsltStyleExtInitFunction styleInitFunc,
+					 xsltStyleExtShutdownFunction styleShutdownFunc);
+
+XSLTPUBFUN int XSLTCALL		
+    		xsltUnregisterExtModule	(const xmlChar * URI);
+
+XSLTPUBFUN void * XSLTCALL		
+		xsltGetExtData		(xsltTransformContextPtr ctxt,
+					 const xmlChar *URI);
+
+XSLTPUBFUN void * XSLTCALL		
+		xsltStyleGetExtData	(xsltStylesheetPtr style,
+					 const xmlChar *URI);
+
+XSLTPUBFUN void XSLTCALL		
+    		xsltShutdownCtxtExts	(xsltTransformContextPtr ctxt);
+
+XSLTPUBFUN void XSLTCALL		
+    		xsltShutdownExts	(xsltStylesheetPtr style);
+
+XSLTPUBFUN xsltTransformContextPtr XSLTCALL 
+    		xsltXPathGetTransformContext
+					(xmlXPathParserContextPtr ctxt);
+
+/*
+ * extension functions
+*/
+XSLTPUBFUN int XSLTCALL	
+		xsltRegisterExtModuleFunction	
+					(const xmlChar *name,
+					 const xmlChar *URI,
+					 xmlXPathFunction function);
+XSLTPUBFUN xmlXPathFunction XSLTCALL
+	xsltExtFunctionLookup		(xsltTransformContextPtr ctxt,
+					 const xmlChar *name,
+					 const xmlChar *URI);
+XSLTPUBFUN xmlXPathFunction XSLTCALL
+	xsltExtModuleFunctionLookup	(const xmlChar *name,
+					 const xmlChar *URI);
+XSLTPUBFUN int XSLTCALL	
+		xsltUnregisterExtModuleFunction	
+					(const xmlChar *name,
+					 const xmlChar *URI);
+
+/*
+ * extension elements
+ */
+typedef xsltElemPreCompPtr (*xsltPreComputeFunction)
+    					(xsltStylesheetPtr style,
+					 xmlNodePtr inst,
+					 xsltTransformFunction function);
+
+XSLTPUBFUN xsltElemPreCompPtr XSLTCALL
+		xsltNewElemPreComp	(xsltStylesheetPtr style,
+					 xmlNodePtr inst,
+					 xsltTransformFunction function);
+XSLTPUBFUN void XSLTCALL	
+		xsltInitElemPreComp	(xsltElemPreCompPtr comp,
+					 xsltStylesheetPtr style,
+					 xmlNodePtr inst,
+					 xsltTransformFunction function,
+					 xsltElemPreCompDeallocator freeFunc);
+
+XSLTPUBFUN int XSLTCALL	
+		xsltRegisterExtModuleElement	
+					(const xmlChar *name,
+					 const xmlChar *URI,
+					 xsltPreComputeFunction precomp,
+					 xsltTransformFunction transform);
+XSLTPUBFUN xsltTransformFunction XSLTCALL 
+		xsltExtElementLookup	(xsltTransformContextPtr ctxt,
+					 const xmlChar *name,
+					 const xmlChar *URI);
+XSLTPUBFUN xsltTransformFunction XSLTCALL 
+		xsltExtModuleElementLookup
+					(const xmlChar *name,
+					 const xmlChar *URI);
+XSLTPUBFUN xsltPreComputeFunction XSLTCALL 
+		xsltExtModuleElementPreComputeLookup 
+					(const xmlChar *name,
+					 const xmlChar *URI);
+XSLTPUBFUN int XSLTCALL	
+		xsltUnregisterExtModuleElement	
+					(const xmlChar *name,
+					 const xmlChar *URI);
+
+/*
+ * top-level elements
+ */
+typedef void (*xsltTopLevelFunction)	(xsltStylesheetPtr style,
+					 xmlNodePtr inst);
+
+XSLTPUBFUN int XSLTCALL	
+		xsltRegisterExtModuleTopLevel
+					(const xmlChar *name,
+					 const xmlChar *URI,
+					 xsltTopLevelFunction function);
+XSLTPUBFUN xsltTopLevelFunction XSLTCALL 
+		xsltExtModuleTopLevelLookup 
+					(const xmlChar *name,
+					 const xmlChar *URI);
+XSLTPUBFUN int XSLTCALL	
+		xsltUnregisterExtModuleTopLevel	
+					(const xmlChar *name,
+					 const xmlChar *URI);
+
+
+/* These 2 functions are deprecated for use within modules. */
+XSLTPUBFUN int XSLTCALL		
+		xsltRegisterExtFunction	(xsltTransformContextPtr ctxt,
+					 const xmlChar *name,
+					 const xmlChar *URI,
+					 xmlXPathFunction function);
+XSLTPUBFUN int XSLTCALL		
+		xsltRegisterExtElement	(xsltTransformContextPtr ctxt,
+					 const xmlChar *name,
+					 const xmlChar *URI,
+					 xsltTransformFunction function);
+
+/*
+ * Extension Prefix handling API.
+ * Those are used by the XSLT (pre)processor.
+ */
+
+XSLTPUBFUN int XSLTCALL		
+		xsltRegisterExtPrefix	(xsltStylesheetPtr style,
+					 const xmlChar *prefix,
+					 const xmlChar *URI);
+XSLTPUBFUN int XSLTCALL		
+		xsltCheckExtPrefix	(xsltStylesheetPtr style,
+					 const xmlChar *prefix);
+XSLTPUBFUN int XSLTCALL		
+		xsltInitCtxtExts	(xsltTransformContextPtr ctxt);
+XSLTPUBFUN void XSLTCALL		
+		xsltFreeCtxtExts	(xsltTransformContextPtr ctxt);
+XSLTPUBFUN void XSLTCALL		
+		xsltFreeExts		(xsltStylesheetPtr style);
+
+XSLTPUBFUN xsltElemPreCompPtr XSLTCALL 
+		xsltPreComputeExtModuleElement
+					(xsltStylesheetPtr style,
+					 xmlNodePtr inst);
+/*
+ * Extension Infos access.
+ * Used by exslt initialisation
+ */
+
+XSLTPUBFUN xmlHashTablePtr XSLTCALL 
+		xsltGetExtInfo		(xsltStylesheetPtr style, 
+					 const xmlChar *URI);
+
+/**
+ * Test module http://xmlsoft.org/XSLT/
+ */
+XSLTPUBFUN void XSLTCALL	
+		xsltRegisterTestModule	(void);
+XSLTPUBFUN void XSLTCALL	
+		xsltDebugDumpExtensions	(FILE * output);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_EXTENSION_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/extra.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/extra.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/extra.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,330 @@
+/*
+ * extra.c: Implementation of non-standard features
+ *
+ * Reference:
+ *   Michael Kay "XSLT Programmer's Reference" pp 637-643
+ *   The node-set() extension function
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+#ifdef HAVE_TIME_H
+#define __USE_XOPEN
+#include <time.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/hash.h>
+#include <libxml/xmlerror.h>
+#include <libxml/parserInternals.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "extensions.h"
+#include "variables.h"
+#include "transform.h"
+#include "extra.h"
+#include "preproc.h"
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_EXTRA
+#endif
+
+/************************************************************************
+ * 									*
+ * 		Handling of XSLT debugging				*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltDebug:
+ * @ctxt:  an XSLT processing context
+ * @node:  The current node
+ * @inst:  the instruction in the stylesheet
+ * @comp:  precomputed informations
+ *
+ * Process an debug node
+ */
+void
+xsltDebug(xsltTransformContextPtr ctxt, xmlNodePtr node ATTRIBUTE_UNUSED,
+          xmlNodePtr inst ATTRIBUTE_UNUSED,
+          xsltStylePreCompPtr comp ATTRIBUTE_UNUSED)
+{
+    int i, j;
+
+    xsltGenericError(xsltGenericErrorContext, "Templates:\n");
+    for (i = 0, j = ctxt->templNr - 1; ((i < 15) && (j >= 0)); i++, j--) {
+        xsltGenericError(xsltGenericErrorContext, "#%d ", i);
+        if (ctxt->templTab[j]->name != NULL)
+            xsltGenericError(xsltGenericErrorContext, "name %s ",
+                             ctxt->templTab[j]->name);
+        if (ctxt->templTab[j]->match != NULL)
+            xsltGenericError(xsltGenericErrorContext, "name %s ",
+                             ctxt->templTab[j]->match);
+        if (ctxt->templTab[j]->mode != NULL)
+            xsltGenericError(xsltGenericErrorContext, "name %s ",
+                             ctxt->templTab[j]->mode);
+        xsltGenericError(xsltGenericErrorContext, "\n");
+    }
+    xsltGenericError(xsltGenericErrorContext, "Variables:\n");
+    for (i = 0, j = ctxt->varsNr - 1; ((i < 15) && (j >= 0)); i++, j--) {
+        xsltStackElemPtr cur;
+
+        if (ctxt->varsTab[j] == NULL)
+            continue;
+        xsltGenericError(xsltGenericErrorContext, "#%d\n", i);
+        cur = ctxt->varsTab[j];
+        while (cur != NULL) {
+            if (cur->comp == NULL) {
+                xsltGenericError(xsltGenericErrorContext,
+                                 "corrupted !!!\n");
+            } else if (cur->comp->type == XSLT_FUNC_PARAM) {
+                xsltGenericError(xsltGenericErrorContext, "param ");
+            } else if (cur->comp->type == XSLT_FUNC_VARIABLE) {
+                xsltGenericError(xsltGenericErrorContext, "var ");
+            }
+            if (cur->name != NULL)
+                xsltGenericError(xsltGenericErrorContext, "%s ",
+                                 cur->name);
+            else
+                xsltGenericError(xsltGenericErrorContext, "noname !!!!");
+#ifdef LIBXML_DEBUG_ENABLED
+            if (cur->value != NULL) {
+                xmlXPathDebugDumpObject(stdout, cur->value, 1);
+            } else {
+                xsltGenericError(xsltGenericErrorContext, "NULL !!!!");
+            }
+#endif
+            xsltGenericError(xsltGenericErrorContext, "\n");
+            cur = cur->next;
+        }
+
+    }
+}
+
+/************************************************************************
+ * 									*
+ * 		Classic extensions as described by M. Kay		*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltFunctionNodeSet:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * Implement the node-set() XSLT function
+ *   node-set node-set(result-tree)
+ *
+ * This function is available in libxslt, saxon or xt namespace.
+ */
+void
+xsltFunctionNodeSet(xmlXPathParserContextPtr ctxt, int nargs){
+    if (nargs != 1) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"node-set() : expects one result-tree arg\n");
+	ctxt->error = XPATH_INVALID_ARITY;
+	return;
+    }
+    if ((ctxt->value == NULL) ||
+	((ctxt->value->type != XPATH_XSLT_TREE) &&
+	 (ctxt->value->type != XPATH_NODESET))) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+	    "node-set() invalid arg expecting a result tree\n");
+	ctxt->error = XPATH_INVALID_TYPE;
+	return;
+    }
+    if (ctxt->value->type == XPATH_XSLT_TREE) {
+	ctxt->value->type = XPATH_NODESET;
+    }
+}
+
+
+/*
+ * Okay the following really seems unportable and since it's not
+ * part of any standard I'm not too ashamed to do this
+ */
+#if defined(linux) || defined(__sun)
+#if defined(HAVE_MKTIME) && defined(HAVE_LOCALTIME) && defined(HAVE_ASCTIME)
+#define WITH_LOCALTIME
+
+/**
+ * xsltFunctionLocalTime:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * Implement the localTime XSLT function used by NORM
+ *   string localTime(???)
+ *
+ * This function is available in Norm's extension namespace
+ * Code (and comments) contributed by Norm
+ */
+static void
+xsltFunctionLocalTime(xmlXPathParserContextPtr ctxt, int nargs) {
+    xmlXPathObjectPtr obj;
+    char *str;
+    char digits[5];
+    char result[29];
+    long int field;
+    time_t gmt, lmt;
+    struct tm gmt_tm;
+    struct tm *local_tm;
+ 
+    if (nargs != 1) {
+       xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+                      "localTime() : invalid number of args %d\n", nargs);
+       ctxt->error = XPATH_INVALID_ARITY;
+       return;
+    }
+ 
+    obj = valuePop(ctxt);
+
+    if (obj->type != XPATH_STRING) {
+	obj = xmlXPathConvertString(obj);
+    }
+    if (obj == NULL) {
+	valuePush(ctxt, xmlXPathNewString((const xmlChar *)""));
+	return;
+    }
+    
+    str = (char *) obj->stringval;
+
+    /* str = "$Date: 2002/10/15 16:06:47 $" */
+    memset(digits, 0, sizeof(digits));
+    strncpy(digits, str+7, 4);
+    field = strtol(digits, NULL, 10);
+    gmt_tm.tm_year = field - 1900;
+
+    memset(digits, 0, sizeof(digits));
+    strncpy(digits, str+12, 2);
+    field = strtol(digits, NULL, 10);
+    gmt_tm.tm_mon = field - 1;
+
+    memset(digits, 0, sizeof(digits));
+    strncpy(digits, str+15, 2);
+    field = strtol(digits, NULL, 10);
+    gmt_tm.tm_mday = field;
+
+    memset(digits, 0, sizeof(digits));
+    strncpy(digits, str+18, 2);
+    field = strtol(digits, NULL, 10);
+    gmt_tm.tm_hour = field;
+
+    memset(digits, 0, sizeof(digits));
+    strncpy(digits, str+21, 2);
+    field = strtol(digits, NULL, 10);
+    gmt_tm.tm_min = field;
+
+    memset(digits, 0, sizeof(digits));
+    strncpy(digits, str+24, 2);
+    field = strtol(digits, NULL, 10);
+    gmt_tm.tm_sec = field;
+
+    /* Now turn gmt_tm into a time. */
+    gmt = mktime(&gmt_tm);
+
+
+    /*
+     * FIXME: it's been too long since I did manual memory management.
+     * (I swore never to do it again.) Does this introduce a memory leak?
+     */
+    local_tm = localtime(&gmt);
+
+    /*
+     * Calling localtime() has the side-effect of setting timezone.
+     * After we know the timezone, we can adjust for it
+     */
+    lmt = gmt - timezone;
+
+    /*
+     * FIXME: it's been too long since I did manual memory management.
+     * (I swore never to do it again.) Does this introduce a memory leak?
+     */
+    local_tm = localtime(&lmt);
+
+    /*
+     * Now convert local_tm back into a string. This doesn't introduce
+     * a memory leak, so says asctime(3).
+     */
+
+    str = asctime(local_tm);           /* "Tue Jun 26 05:02:16 2001" */
+                                       /*  0123456789 123456789 123 */
+
+    memset(result, 0, sizeof(result)); /* "Thu, 26 Jun 2001" */
+                                       /*  0123456789 12345 */
+
+    strncpy(result, str, 20);
+    strcpy(result+20, "???");          /* tzname doesn't work, fake it */
+    strncpy(result+23, str+19, 5);
+
+    /* Ok, now result contains the string I want to send back. */
+    valuePush(ctxt, xmlXPathNewString((xmlChar *)result));
+}
+#endif
+#endif /* linux or sun */
+
+
+/**
+ * xsltRegisterExtras:
+ * @ctxt:  a XSLT process context
+ *
+ * Registers the built-in extensions. This function is deprecated, use
+ * xsltRegisterAllExtras instead.
+ */
+void
+xsltRegisterExtras(xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED) {
+    xsltRegisterAllExtras();
+}
+
+/**
+ * xsltRegisterAllExtras:
+ *
+ * Registers the built-in extensions
+ */
+void
+xsltRegisterAllExtras (void) {
+    xsltRegisterExtModuleFunction((const xmlChar *) "node-set",
+				  XSLT_LIBXSLT_NAMESPACE,
+				  xsltFunctionNodeSet);
+    xsltRegisterExtModuleFunction((const xmlChar *) "node-set",
+				  XSLT_SAXON_NAMESPACE,
+				  xsltFunctionNodeSet);
+    xsltRegisterExtModuleFunction((const xmlChar *) "node-set",
+				  XSLT_XT_NAMESPACE,
+				  xsltFunctionNodeSet);
+#ifdef WITH_LOCALTIME
+    xsltRegisterExtModuleFunction((const xmlChar *) "localTime",
+				  XSLT_NORM_SAXON_NAMESPACE,
+				  xsltFunctionLocalTime);
+#endif
+    xsltRegisterExtModuleElement((const xmlChar *) "debug",
+				 XSLT_LIBXSLT_NAMESPACE,
+				 NULL,
+				 (xsltTransformFunction) xsltDebug);
+    xsltRegisterExtModuleElement((const xmlChar *) "output",
+				 XSLT_SAXON_NAMESPACE,
+				 xsltDocumentComp,
+				 (xsltTransformFunction) xsltDocumentElem);
+    xsltRegisterExtModuleElement((const xmlChar *) "write",
+				 XSLT_XALAN_NAMESPACE,
+				 xsltDocumentComp,
+				 (xsltTransformFunction) xsltDocumentElem);
+    xsltRegisterExtModuleElement((const xmlChar *) "document",
+				 XSLT_XT_NAMESPACE,
+				 xsltDocumentComp,
+				 (xsltTransformFunction) xsltDocumentElem);
+    xsltRegisterExtModuleElement((const xmlChar *) "document",
+				 XSLT_NAMESPACE,
+				 xsltDocumentComp,
+				 (xsltTransformFunction) xsltDocumentElem);
+}

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/extra.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/extra.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/extra.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,80 @@
+/*
+ * Summary: interface for the non-standard features
+ * Description: implement some extension outside the XSLT namespace
+ *              but not EXSLT with is in a different library.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_EXTRA_H__
+#define __XML_XSLT_EXTRA_H__
+
+#include <libxml/xpath.h>
+#include "xsltexports.h"
+#include "xsltInternals.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * XSLT_LIBXSLT_NAMESPACE:
+ *
+ * This is the libxslt namespace for specific extensions.
+ */
+#define XSLT_LIBXSLT_NAMESPACE ((xmlChar *) "http://xmlsoft.org/XSLT/namespace")
+
+/**
+ * XSLT_SAXON_NAMESPACE:
+ *
+ * This is Michael Kay's Saxon processor namespace for extensions.
+ */
+#define XSLT_SAXON_NAMESPACE ((xmlChar *) "http://icl.com/saxon")
+
+/**
+ * XSLT_XT_NAMESPACE:
+ *
+ * This is James Clark's XT processor namespace for extensions.
+ */
+#define XSLT_XT_NAMESPACE ((xmlChar *) "http://www.jclark.com/xt")
+
+/**
+ * XSLT_XALAN_NAMESPACE:
+ *
+ * This is the Apache project XALAN processor namespace for extensions.
+ */
+#define XSLT_XALAN_NAMESPACE ((xmlChar *)	\
+	                        "org.apache.xalan.xslt.extensions.Redirect")
+
+/**
+ * XSLT_NORM_SAXON_NAMESPACE:
+ *
+ * This is Norm's namespace for SAXON extensions.
+ */
+#define XSLT_NORM_SAXON_NAMESPACE ((xmlChar *)	\
+	"http://nwalsh.com/xslt/ext/com.nwalsh.saxon.CVS")
+
+
+XSLTPUBFUN void XSLTCALL
+		xsltFunctionNodeSet	(xmlXPathParserContextPtr ctxt,
+					 int nargs);
+XSLTPUBFUN void XSLTCALL		
+		xsltDebug		(xsltTransformContextPtr ctxt,
+					 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+
+
+XSLTPUBFUN void XSLTCALL		
+		xsltRegisterExtras	(xsltTransformContextPtr ctxt);
+XSLTPUBFUN void XSLTCALL		
+		xsltRegisterAllExtras	(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_EXTRA_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/functions.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/functions.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/functions.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,917 @@
+/*
+ * functions.c: Implementation of the XSLT extra functions
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ * Bjorn Reese <breese at users.sourceforge.net> for number formatting
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_CTYPE_H
+#include <ctype.h>
+#endif
+
+#include <libxml/xmlmemory.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <libxml/valid.h>
+#include <libxml/hash.h>
+#include <libxml/xmlerror.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/parserInternals.h>
+#include <libxml/uri.h>
+#include <libxml/xpointer.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "functions.h"
+#include "extensions.h"
+#include "numbersInternals.h"
+#include "keys.h"
+#include "documents.h"
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_FUNCTION
+#endif
+
+/*
+ * Some versions of DocBook XSL use the vendor string to detect
+ * supporting chunking, this is a workaround to be considered
+ * in the list of decent XSLT processors <grin/>
+ */
+#define DOCBOOK_XSL_HACK
+
+/**
+ * xsltXPathFunctionLookup:
+ * @ctxt:  a void * but the XSLT transformation context actually
+ * @name:  the function name
+ * @ns_uri:  the function namespace URI
+ *
+ * This is the entry point when a function is needed by the XPath
+ * interpretor.
+ *
+ * Returns the callback function or NULL if not found
+ */
+xmlXPathFunction
+xsltXPathFunctionLookup (xmlXPathContextPtr ctxt,
+			 const xmlChar *name, const xmlChar *ns_uri) {
+    xmlXPathFunction ret;
+
+    if ((ctxt == NULL) || (name == NULL) || (ns_uri == NULL))
+	return (NULL);
+
+#ifdef WITH_XSLT_DEBUG_FUNCTION
+    xsltGenericDebug(xsltGenericDebugContext,
+            "Lookup function {%s}%s\n", ns_uri, name);
+#endif
+
+    /* give priority to context-level functions */
+    /*
+    ret = (xmlXPathFunction) xmlHashLookup2(ctxt->funcHash, name, ns_uri);
+    */
+    XML_CAST_FPTR(ret) = xmlHashLookup2(ctxt->funcHash, name, ns_uri);
+
+    if (ret == NULL)
+	ret = xsltExtModuleFunctionLookup(name, ns_uri);
+
+#ifdef WITH_XSLT_DEBUG_FUNCTION
+    if (ret != NULL)
+        xsltGenericDebug(xsltGenericDebugContext,
+            "found function %s\n", name);
+#endif
+    return(ret);
+}
+
+
+/************************************************************************
+ *									*
+ *			Module interfaces				*
+ *									*
+ ************************************************************************/
+
+static void
+xsltDocumentFunctionLoadDocument(xmlXPathParserContextPtr ctxt, xmlChar* URI)
+{
+    xsltTransformContextPtr tctxt;
+    xmlURIPtr uri;
+    xmlChar *fragment;
+    xsltDocumentPtr xsltdoc;
+    xmlDocPtr doc;
+    xmlXPathContextPtr xptrctxt = NULL;
+    xmlXPathObjectPtr object = NULL;
+
+    tctxt = xsltXPathGetTransformContext(ctxt);
+    if (tctxt == NULL) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+			   "document() : internal error tctxt == NULL\n");
+	valuePush(ctxt, xmlXPathNewNodeSet(NULL));
+	return;
+    } 
+	
+    uri = xmlParseURI((const char *) URI);
+    if (uri == NULL) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+			   "document() : failed to parse URI\n");
+	valuePush(ctxt, xmlXPathNewNodeSet(NULL));
+	return;
+    } 
+    
+    /*
+     * check for and remove fragment identifier
+     */
+    fragment = (xmlChar *)uri->fragment;
+    if (fragment != NULL) {
+	uri->fragment = NULL;
+	URI = xmlSaveUri(uri);
+	xsltdoc = xsltLoadDocument(tctxt, URI);
+	xmlFree(URI);
+    } else
+	xsltdoc = xsltLoadDocument(tctxt, URI);
+    xmlFreeURI(uri);
+    
+    if (xsltdoc == NULL) {
+	if ((URI == NULL) ||
+	    (URI[0] == '#') ||
+	    (xmlStrEqual(tctxt->style->doc->URL, URI))) {
+	    doc = tctxt->style->doc;
+	} else {
+	    valuePush(ctxt, xmlXPathNewNodeSet(NULL));
+
+	    if (fragment != NULL)
+		xmlFree(fragment);
+
+	    return;
+	}
+    } else
+	doc = xsltdoc->doc;
+
+    if ( fragment == NULL ) {
+	valuePush(ctxt,
+		  xmlXPathNewNodeSet((xmlNodePtr) doc));
+	return;
+    }
+	
+    /* use XPointer of HTML location for fragment ID */
+#ifdef LIBXML_XPTR_ENABLED
+    xptrctxt = xmlXPtrNewContext(doc, NULL, NULL);
+    if (xptrctxt == NULL) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+			   "document() : internal error xptrctxt == NULL\n");
+	goto out_fragment;
+    }
+
+    object = xmlXPtrEval(fragment, xptrctxt);
+#endif
+    xmlFree(fragment);
+	if (xptrctxt != NULL)
+    		xmlXPathFreeContext(xptrctxt);
+
+    if (object == NULL)
+	goto out_fragment;
+	
+    switch (object->type) {
+    case XPATH_NODESET:
+	break;
+    case XPATH_UNDEFINED:
+    case XPATH_BOOLEAN:
+    case XPATH_NUMBER:
+    case XPATH_STRING:
+    case XPATH_POINT:
+    case XPATH_USERS:
+    case XPATH_XSLT_TREE:
+    case XPATH_RANGE:
+    case XPATH_LOCATIONSET:
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+			   "document() : XPointer does not select a node set: #%s\n", 
+			   fragment);
+	goto out_object;
+    }
+    
+    valuePush(ctxt, object);
+    return;
+
+out_object:
+    xmlXPathFreeObject(object);
+
+out_fragment:
+    valuePush(ctxt, xmlXPathNewNodeSet(NULL));
+}
+
+/**
+ * xsltDocumentFunction:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * Implement the document() XSLT function
+ *   node-set document(object, node-set?)
+ */
+void
+xsltDocumentFunction(xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlXPathObjectPtr obj, obj2 = NULL;
+    xmlChar *base = NULL, *URI;
+
+
+    if ((nargs < 1) || (nargs > 2)) {
+        xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+                         "document() : invalid number of args %d\n",
+                         nargs);
+        ctxt->error = XPATH_INVALID_ARITY;
+        return;
+    }
+    if (ctxt->value == NULL) {
+        xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+                         "document() : invalid arg value\n");
+        ctxt->error = XPATH_INVALID_TYPE;
+        return;
+    }
+
+    if (nargs == 2) {
+        if (ctxt->value->type != XPATH_NODESET) {
+            xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+                             "document() : invalid arg expecting a nodeset\n");
+            ctxt->error = XPATH_INVALID_TYPE;
+            return;
+        }
+
+        obj2 = valuePop(ctxt);
+    }
+
+    if (ctxt->value->type == XPATH_NODESET) {
+        int i;
+        xmlXPathObjectPtr newobj, ret;
+
+        obj = valuePop(ctxt);
+        ret = xmlXPathNewNodeSet(NULL);
+
+        if (obj->nodesetval) {
+            for (i = 0; i < obj->nodesetval->nodeNr; i++) {
+                valuePush(ctxt,
+                          xmlXPathNewNodeSet(obj->nodesetval->nodeTab[i]));
+                xmlXPathStringFunction(ctxt, 1);
+                if (nargs == 2) {
+                    valuePush(ctxt, xmlXPathObjectCopy(obj2));
+                } else {
+                    valuePush(ctxt,
+                              xmlXPathNewNodeSet(obj->nodesetval->
+                                                 nodeTab[i]));
+                }
+                xsltDocumentFunction(ctxt, 2);
+                newobj = valuePop(ctxt);
+                ret->nodesetval = xmlXPathNodeSetMerge(ret->nodesetval,
+                                                       newobj->nodesetval);
+                xmlXPathFreeObject(newobj);
+            }
+        }
+
+        xmlXPathFreeObject(obj);
+        if (obj2 != NULL)
+            xmlXPathFreeObject(obj2);
+        valuePush(ctxt, ret);
+        return;
+    }
+    /*
+     * Make sure it's converted to a string
+     */
+    xmlXPathStringFunction(ctxt, 1);
+    if (ctxt->value->type != XPATH_STRING) {
+        xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+                         "document() : invalid arg expecting a string\n");
+        ctxt->error = XPATH_INVALID_TYPE;
+        if (obj2 != NULL)
+            xmlXPathFreeObject(obj2);
+        return;
+    }
+    obj = valuePop(ctxt);
+    if (obj->stringval == NULL) {
+        valuePush(ctxt, xmlXPathNewNodeSet(NULL));
+    } else {
+        if ((obj2 != NULL) && (obj2->nodesetval != NULL) &&
+            (obj2->nodesetval->nodeNr > 0) &&
+            IS_XSLT_REAL_NODE(obj2->nodesetval->nodeTab[0])) {
+            xmlNodePtr target;
+
+            target = obj2->nodesetval->nodeTab[0];
+            if ((target->type == XML_ATTRIBUTE_NODE) ||
+	        (target->type == XML_PI_NODE)) {
+                target = ((xmlAttrPtr) target)->parent;
+            }
+            base = xmlNodeGetBase(target->doc, target);
+        } else {
+            xsltTransformContextPtr tctxt;
+
+            tctxt = xsltXPathGetTransformContext(ctxt);
+            if ((tctxt != NULL) && (tctxt->inst != NULL)) {
+                base = xmlNodeGetBase(tctxt->inst->doc, tctxt->inst);
+            } else if ((tctxt != NULL) && (tctxt->style != NULL) &&
+                       (tctxt->style->doc != NULL)) {
+                base = xmlNodeGetBase(tctxt->style->doc,
+                                      (xmlNodePtr) tctxt->style->doc);
+            }
+        }
+        URI = xmlBuildURI(obj->stringval, base);
+        if (base != NULL)
+            xmlFree(base);
+        if (URI == NULL) {
+            valuePush(ctxt, xmlXPathNewNodeSet(NULL));
+        } else {
+	    xsltDocumentFunctionLoadDocument( ctxt, URI );
+	    xmlFree(URI);
+	}
+    }
+    xmlXPathFreeObject(obj);
+    if (obj2 != NULL)
+        xmlXPathFreeObject(obj2);
+}
+
+/**
+ * xsltKeyFunction:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * Implement the key() XSLT function
+ *   node-set key(string, object)
+ */
+void
+xsltKeyFunction(xmlXPathParserContextPtr ctxt, int nargs){
+    xmlNodeSetPtr nodelist;
+    xmlXPathObjectPtr obj1, obj2;
+    xmlChar *key = NULL, *value;
+    const xmlChar *keyURI;
+    xsltTransformContextPtr tctxt;
+    xsltDocumentPtr oldDocumentPtr;
+    xmlDocPtr oldXPathDocPtr;
+    
+    if (nargs != 2) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"key() : expects two arguments\n");
+	ctxt->error = XPATH_INVALID_ARITY;
+	return;
+    }
+
+    obj2 = valuePop(ctxt);
+    xmlXPathStringFunction(ctxt, 1);
+    if ((obj2 == NULL) ||
+	(ctxt->value == NULL) || (ctxt->value->type != XPATH_STRING)) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+	    "key() : invalid arg expecting a string\n");
+	ctxt->error = XPATH_INVALID_TYPE;
+	xmlXPathFreeObject(obj2);
+
+	return;
+    }
+    obj1 = valuePop(ctxt);
+
+    if ((obj2->type == XPATH_NODESET) || (obj2->type == XPATH_XSLT_TREE)) {
+	int i;
+	xmlXPathObjectPtr newobj, ret;
+
+	ret = xmlXPathNewNodeSet(NULL);
+
+	if (obj2->nodesetval != NULL) {
+	    for (i = 0; i < obj2->nodesetval->nodeNr; i++) {
+		valuePush(ctxt, xmlXPathObjectCopy(obj1));
+		valuePush(ctxt,
+			  xmlXPathNewNodeSet(obj2->nodesetval->nodeTab[i]));
+		xmlXPathStringFunction(ctxt, 1);
+		xsltKeyFunction(ctxt, 2);
+		newobj = valuePop(ctxt);
+		ret->nodesetval = xmlXPathNodeSetMerge(ret->nodesetval,
+						       newobj->nodesetval);
+		xmlXPathFreeObject(newobj);
+	    }
+	}
+	valuePush(ctxt, ret);
+    } else {
+	xmlChar *qname, *prefix;
+
+	/*
+	 * Get the associated namespace URI if qualified name
+	 */
+	qname = obj1->stringval;
+	key = xmlSplitQName2(qname, &prefix);
+	if (key == NULL) {
+	    key = xmlStrdup(obj1->stringval);
+	    keyURI = NULL;
+	    if (prefix != NULL)
+		xmlFree(prefix);
+	} else {
+	    if (prefix != NULL) {
+		keyURI = xmlXPathNsLookup(ctxt->context, prefix);
+		if (keyURI == NULL) {
+		    xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+			"key() : prefix %s is not bound\n", prefix);
+		}
+		xmlFree(prefix);
+	    } else {
+		keyURI = NULL;
+	    }
+	}
+
+	/*
+	 * Force conversion of first arg to string
+	 */
+	valuePush(ctxt, obj2);
+	xmlXPathStringFunction(ctxt, 1);
+	if ((ctxt->value == NULL) || (ctxt->value->type != XPATH_STRING)) {
+	    xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"key() : invalid arg expecting a string\n");
+	    ctxt->error = XPATH_INVALID_TYPE;
+	    xmlXPathFreeObject(obj1);
+
+	    return;
+	}
+	obj2 = valuePop(ctxt);
+	value = obj2->stringval;
+
+	tctxt = xsltXPathGetTransformContext(ctxt);
+	oldDocumentPtr = tctxt->document;
+	oldXPathDocPtr = tctxt->xpathCtxt->doc;
+	if ((ctxt->context->doc != NULL) &&
+		    (tctxt->document->doc != ctxt->context->doc)) {
+	    /*
+	     * The xpath context document needs to be changed.  If the
+	     * current context document is a node-set, we must use an
+	     * xsltDocument associated with the node-set, which may or
+	     * may not currently exist.
+	     */
+	    if (xmlStrEqual((const xmlChar *)ctxt->context->doc->name,
+	    		BAD_CAST " fake node libxslt")) {	/* node-set */
+		/*
+		 * Check whether we already have an xsltDocument set up
+		 */
+		if (ctxt->context->doc->_private == NULL)	/* nope */
+		    ctxt->context->doc->_private =
+		    	xsltNewDocument(tctxt, ctxt->context->doc);
+	        tctxt->document = ctxt->context->doc->_private;
+	    }
+	    else {
+	        tctxt->document = xsltFindDocument(tctxt, ctxt->context->doc);
+	        if (tctxt->document == NULL)
+	            tctxt->document = oldDocumentPtr;
+	        else
+	            tctxt->xpathCtxt->doc = ctxt->context->doc;
+	    }
+	}
+	nodelist = xsltGetKey(tctxt, key, keyURI, value);
+	tctxt->document = oldDocumentPtr;
+	tctxt->xpathCtxt->doc = oldXPathDocPtr;
+	valuePush(ctxt, xmlXPathWrapNodeSet(
+		        xmlXPathNodeSetMerge(NULL, nodelist)));
+    }
+
+
+    if (obj1 != NULL)
+	xmlXPathFreeObject(obj1);
+    if (obj2 != NULL)
+	xmlXPathFreeObject(obj2);
+    if (key != NULL)
+	xmlFree(key);
+}
+
+/**
+ * xsltUnparsedEntityURIFunction:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * Implement the unparsed-entity-uri() XSLT function
+ *   string unparsed-entity-uri(string)
+ */
+void
+xsltUnparsedEntityURIFunction(xmlXPathParserContextPtr ctxt, int nargs){
+    xmlXPathObjectPtr obj;
+    xmlChar *str;
+
+    if ((nargs != 1) || (ctxt->value == NULL)) {
+        xsltGenericError(xsltGenericErrorContext,
+		"unparsed-entity-uri() : expects one string arg\n");
+	ctxt->error = XPATH_INVALID_ARITY;
+	return;
+    }
+    obj = valuePop(ctxt);
+    if (obj->type != XPATH_STRING) {
+	obj = xmlXPathConvertString(obj);
+    }
+
+    str = obj->stringval;
+    if (str == NULL) {
+	valuePush(ctxt, xmlXPathNewString((const xmlChar *)""));
+    } else {
+	xmlEntityPtr entity;
+
+	entity = xmlGetDocEntity(ctxt->context->doc, str);
+	if (entity == NULL) {
+	    valuePush(ctxt, xmlXPathNewString((const xmlChar *)""));
+	} else {
+	    if (entity->URI != NULL)
+		valuePush(ctxt, xmlXPathNewString(entity->URI));
+	    else
+		valuePush(ctxt, xmlXPathNewString((const xmlChar *)""));
+	}
+    }
+    xmlXPathFreeObject(obj);
+}
+
+/**
+ * xsltFormatNumberFunction:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * Implement the format-number() XSLT function
+ *   string format-number(number, string, string?)
+ */
+void
+xsltFormatNumberFunction(xmlXPathParserContextPtr ctxt, int nargs)
+{
+    xmlXPathObjectPtr numberObj = NULL;
+    xmlXPathObjectPtr formatObj = NULL;
+    xmlXPathObjectPtr decimalObj = NULL;
+    xsltStylesheetPtr sheet;
+    xsltDecimalFormatPtr formatValues;
+    xmlChar *result;
+    xsltTransformContextPtr tctxt;
+
+    tctxt = xsltXPathGetTransformContext(ctxt);
+    if (tctxt == NULL)
+	return;
+    sheet = tctxt->style;
+    if (sheet == NULL)
+	return;
+    formatValues = sheet->decimalFormat;
+    
+    switch (nargs) {
+    case 3:
+	CAST_TO_STRING;
+	decimalObj = valuePop(ctxt);
+	formatValues = xsltDecimalFormatGetByName(sheet, decimalObj->stringval);
+	if (formatValues == NULL) {
+	    xsltTransformError(tctxt, NULL, NULL,
+		    "format-number() : undeclared decimal format '%s'\n", 
+		    decimalObj->stringval);
+	}
+	/* Intentional fall-through */
+    case 2:
+	CAST_TO_STRING;
+	formatObj = valuePop(ctxt);
+	CAST_TO_NUMBER;
+	numberObj = valuePop(ctxt);
+	break;
+    default:
+	XP_ERROR(XPATH_INVALID_ARITY);
+    }
+
+    if (formatValues != NULL) {
+	if (xsltFormatNumberConversion(formatValues,
+				       formatObj->stringval,
+				       numberObj->floatval,
+				       &result) == XPATH_EXPRESSION_OK) {
+	    valuePush(ctxt, xmlXPathNewString(result));
+	    xmlFree(result);
+	}
+    }
+
+    xmlXPathFreeObject(numberObj);
+    xmlXPathFreeObject(formatObj);
+    xmlXPathFreeObject(decimalObj);
+}
+
+/**
+ * xsltGenerateIdFunction:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * Implement the generate-id() XSLT function
+ *   string generate-id(node-set?)
+ */
+void
+xsltGenerateIdFunction(xmlXPathParserContextPtr ctxt, int nargs){
+    xmlNodePtr cur = NULL;
+    unsigned long val;
+    xmlChar str[20];
+
+    if (nargs == 0) {
+	cur = ctxt->context->node;
+    } else if (nargs == 1) {
+	xmlXPathObjectPtr obj;
+	xmlNodeSetPtr nodelist;
+	int i, ret;
+
+	if ((ctxt->value == NULL) || (ctxt->value->type != XPATH_NODESET)) {
+	    ctxt->error = XPATH_INVALID_TYPE;
+	    xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"generate-id() : invalid arg expecting a node-set\n");
+	    return;
+	}
+	obj = valuePop(ctxt);
+	nodelist = obj->nodesetval;
+	if ((nodelist == NULL) || (nodelist->nodeNr <= 0)) {
+	    xmlXPathFreeObject(obj);
+	    valuePush(ctxt, xmlXPathNewCString(""));
+	    return;
+	}
+	cur = nodelist->nodeTab[0];
+	for (i = 1;i < nodelist->nodeNr;i++) {
+	    ret = xmlXPathCmpNodes(cur, nodelist->nodeTab[i]);
+	    if (ret == -1)
+	        cur = nodelist->nodeTab[i];
+	}
+	xmlXPathFreeObject(obj);
+    } else {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"generate-id() : invalid number of args %d\n", nargs);
+	ctxt->error = XPATH_INVALID_ARITY;
+	return;
+    }
+    /*
+     * Okay this is ugly but should work, use the NodePtr address
+     * to forge the ID
+     */
+    val = (unsigned long)((char *)cur - (char *)0);
+    val /= sizeof(xmlNode);
+    sprintf((char *)str, "id%ld", val);
+    valuePush(ctxt, xmlXPathNewString(str));
+}
+
+/**
+ * xsltSystemPropertyFunction:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * Implement the system-property() XSLT function
+ *   object system-property(string)
+ */
+void
+xsltSystemPropertyFunction(xmlXPathParserContextPtr ctxt, int nargs){
+    xmlXPathObjectPtr obj;
+    xmlChar *prefix, *name;
+    const xmlChar *nsURI = NULL;
+
+    if (nargs != 1) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"system-property() : expects one string arg\n");
+	ctxt->error = XPATH_INVALID_ARITY;
+	return;
+    }
+    if ((ctxt->value == NULL) || (ctxt->value->type != XPATH_STRING)) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+	    "system-property() : invalid arg expecting a string\n");
+	ctxt->error = XPATH_INVALID_TYPE;
+	return;
+    }
+    obj = valuePop(ctxt);
+    if (obj->stringval == NULL) {
+	valuePush(ctxt, xmlXPathNewString((const xmlChar *)""));
+    } else {
+	name = xmlSplitQName2(obj->stringval, &prefix);
+	if (name == NULL) {
+	    name = xmlStrdup(obj->stringval);
+	} else {
+	    nsURI = xmlXPathNsLookup(ctxt->context, prefix);
+	    if (nsURI == NULL) {
+		xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		    "system-property() : prefix %s is not bound\n", prefix);
+	    }
+	}
+
+	if (xmlStrEqual(nsURI, XSLT_NAMESPACE)) {
+#ifdef DOCBOOK_XSL_HACK
+	    if (xmlStrEqual(name, (const xmlChar *)"vendor")) {
+		xsltStylesheetPtr sheet;
+		xsltTransformContextPtr tctxt;
+
+		tctxt = xsltXPathGetTransformContext(ctxt);
+		if ((tctxt != NULL) && (tctxt->inst != NULL) &&
+		    (xmlStrEqual(tctxt->inst->name, BAD_CAST "variable")) &&
+		    (tctxt->inst->parent != NULL) &&
+		    (xmlStrEqual(tctxt->inst->parent->name,
+				 BAD_CAST "template")))
+		    sheet = tctxt->style;
+		else
+		    sheet = NULL;
+		if ((sheet != NULL) && (sheet->doc != NULL) &&
+		    (sheet->doc->URL != NULL) &&
+		    (xmlStrstr(sheet->doc->URL,
+			       (const xmlChar *)"chunk") != NULL)) {
+		    valuePush(ctxt, xmlXPathNewString(
+			(const xmlChar *)"libxslt (SAXON 6.2 compatible)"));
+
+		} else {
+		    valuePush(ctxt, xmlXPathNewString(
+			(const xmlChar *)XSLT_DEFAULT_VENDOR));
+		}
+	    } else
+#else
+	    if (xmlStrEqual(name, (const xmlChar *)"vendor")) {
+		valuePush(ctxt, xmlXPathNewString(
+			  (const xmlChar *)XSLT_DEFAULT_VENDOR));
+	    } else
+#endif
+	    if (xmlStrEqual(name, (const xmlChar *)"version")) {
+		valuePush(ctxt, xmlXPathNewString(
+		    (const xmlChar *)XSLT_DEFAULT_VERSION));
+	    } else if (xmlStrEqual(name, (const xmlChar *)"vendor-url")) {
+		valuePush(ctxt, xmlXPathNewString(
+		    (const xmlChar *)XSLT_DEFAULT_URL));
+	    } else {
+		valuePush(ctxt, xmlXPathNewString((const xmlChar *)""));
+	    }
+	}
+	if (name != NULL)
+	    xmlFree(name);
+	if (prefix != NULL)
+	    xmlFree(prefix);
+    }
+    xmlXPathFreeObject(obj);
+}
+
+/**
+ * xsltElementAvailableFunction:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * Implement the element-available() XSLT function
+ *   boolean element-available(string)
+ */
+void
+xsltElementAvailableFunction(xmlXPathParserContextPtr ctxt, int nargs){
+    xmlXPathObjectPtr obj;
+    xmlChar *prefix, *name;
+    const xmlChar *nsURI = NULL;
+    xsltTransformContextPtr tctxt;
+
+    if (nargs != 1) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"element-available() : expects one string arg\n");
+	ctxt->error = XPATH_INVALID_ARITY;
+	return;
+    }
+    if ((ctxt->value == NULL) || (ctxt->value->type != XPATH_STRING)) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+	    "element-available() : invalid arg expecting a string\n");
+	ctxt->error = XPATH_INVALID_TYPE;
+	return;
+    }
+    obj = valuePop(ctxt);
+    tctxt = xsltXPathGetTransformContext(ctxt);
+    if (tctxt == NULL) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"element-available() : internal error tctxt == NULL\n");
+	xmlXPathFreeObject(obj);
+	valuePush(ctxt, xmlXPathNewBoolean(0));
+	return;
+    }
+
+
+    name = xmlSplitQName2(obj->stringval, &prefix);
+    if (name == NULL) {
+	xmlNsPtr ns;
+
+	name = xmlStrdup(obj->stringval);
+	ns = xmlSearchNs(tctxt->inst->doc, tctxt->inst, NULL);
+	if (ns != NULL) nsURI = xmlStrdup(ns->href);
+    } else {
+	nsURI = xmlXPathNsLookup(ctxt->context, prefix);
+	if (nsURI == NULL) {
+	    xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"element-available() : prefix %s is not bound\n", prefix);
+	}
+    }
+
+    if (xsltExtElementLookup(tctxt, name, nsURI) != NULL) {
+	valuePush(ctxt, xmlXPathNewBoolean(1));
+    } else {
+	valuePush(ctxt, xmlXPathNewBoolean(0));
+    }
+
+    xmlXPathFreeObject(obj);
+    if (name != NULL)
+	xmlFree(name);
+    if (prefix != NULL)
+	xmlFree(prefix);
+}
+
+/**
+ * xsltFunctionAvailableFunction:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * Implement the function-available() XSLT function
+ *   boolean function-available(string)
+ */
+void
+xsltFunctionAvailableFunction(xmlXPathParserContextPtr ctxt, int nargs){
+    xmlXPathObjectPtr obj;
+    xmlChar *prefix, *name;
+    const xmlChar *nsURI = NULL;
+
+    if (nargs != 1) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"function-available() : expects one string arg\n");
+	ctxt->error = XPATH_INVALID_ARITY;
+	return;
+    }
+    if ((ctxt->value == NULL) || (ctxt->value->type != XPATH_STRING)) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+	    "function-available() : invalid arg expecting a string\n");
+	ctxt->error = XPATH_INVALID_TYPE;
+	return;
+    }
+    obj = valuePop(ctxt);
+
+    name = xmlSplitQName2(obj->stringval, &prefix);
+    if (name == NULL) {
+	name = xmlStrdup(obj->stringval);
+    } else {
+	nsURI = xmlXPathNsLookup(ctxt->context, prefix);
+	if (nsURI == NULL) {
+	    xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"function-available() : prefix %s is not bound\n", prefix);
+	}
+    }
+
+    if (xmlXPathFunctionLookupNS(ctxt->context, name, nsURI) != NULL) {
+	valuePush(ctxt, xmlXPathNewBoolean(1));
+    } else {
+	valuePush(ctxt, xmlXPathNewBoolean(0));
+    }
+
+    xmlXPathFreeObject(obj);
+    if (name != NULL)
+	xmlFree(name);
+    if (prefix != NULL)
+	xmlFree(prefix);
+}
+
+/**
+ * xsltCurrentFunction:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * Implement the current() XSLT function
+ *   node-set current()
+ */
+static void
+xsltCurrentFunction(xmlXPathParserContextPtr ctxt, int nargs){
+    xsltTransformContextPtr tctxt;
+
+    if (nargs != 0) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"current() : function uses no argument\n");
+	ctxt->error = XPATH_INVALID_ARITY;
+	return;
+    }
+    tctxt = xsltXPathGetTransformContext(ctxt);
+    if (tctxt == NULL) {
+	xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+		"current() : internal error tctxt == NULL\n");
+	valuePush(ctxt, xmlXPathNewNodeSet(NULL));
+    } else {
+	valuePush(ctxt, xmlXPathNewNodeSet(tctxt->node)); /* current */
+    }
+}
+
+/************************************************************************
+ * 									*
+ * 		Registration of XSLT and libxslt functions		*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltRegisterAllFunctions:
+ * @ctxt:  the XPath context
+ *
+ * Registers all default XSLT functions in this context
+ */
+void
+xsltRegisterAllFunctions(xmlXPathContextPtr ctxt)
+{
+    xmlXPathRegisterFunc(ctxt, (const xmlChar *) "current",
+                         xsltCurrentFunction);
+    xmlXPathRegisterFunc(ctxt, (const xmlChar *) "document",
+                         xsltDocumentFunction);
+    xmlXPathRegisterFunc(ctxt, (const xmlChar *) "key", xsltKeyFunction);
+    xmlXPathRegisterFunc(ctxt, (const xmlChar *) "unparsed-entity-uri",
+                         xsltUnparsedEntityURIFunction);
+    xmlXPathRegisterFunc(ctxt, (const xmlChar *) "format-number",
+                         xsltFormatNumberFunction);
+    xmlXPathRegisterFunc(ctxt, (const xmlChar *) "generate-id",
+                         xsltGenerateIdFunction);
+    xmlXPathRegisterFunc(ctxt, (const xmlChar *) "system-property",
+                         xsltSystemPropertyFunction);
+    xmlXPathRegisterFunc(ctxt, (const xmlChar *) "element-available",
+                         xsltElementAvailableFunction);
+    xmlXPathRegisterFunc(ctxt, (const xmlChar *) "function-available",
+                         xsltFunctionAvailableFunction);
+}

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/functions.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/functions.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/functions.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,78 @@
+/*
+ * Summary: interface for the XSLT functions not from XPath
+ * Description: a set of extra functions coming from XSLT but not in XPath
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard and Bjorn Reese <breese at users.sourceforge.net>
+ */
+
+#ifndef __XML_XSLT_FUNCTIONS_H__
+#define __XML_XSLT_FUNCTIONS_H__
+
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include "xsltexports.h"
+#include "xsltInternals.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * XSLT_REGISTER_FUNCTION_LOOKUP:
+ *
+ * Registering macro, not general purpose at all but used in different modules.
+ */
+#define XSLT_REGISTER_FUNCTION_LOOKUP(ctxt)			\
+    xmlXPathRegisterFuncLookup((ctxt)->xpathCtxt,		\
+	(xmlXPathFuncLookupFunc) xsltXPathFunctionLookup,	\
+	(void *)(ctxt->xpathCtxt));
+
+XSLTPUBFUN xmlXPathFunction XSLTCALL
+	xsltXPathFunctionLookup		(xmlXPathContextPtr ctxt,
+					 const xmlChar *name,
+					 const xmlChar *ns_uri);
+
+/*
+ * Interfaces for the functions implementations.
+ */
+
+XSLTPUBFUN void XSLTCALL	
+	xsltDocumentFunction		(xmlXPathParserContextPtr ctxt,
+					 int nargs);
+XSLTPUBFUN void XSLTCALL	
+	xsltKeyFunction			(xmlXPathParserContextPtr ctxt,
+					 int nargs);
+XSLTPUBFUN void XSLTCALL	
+	xsltUnparsedEntityURIFunction	(xmlXPathParserContextPtr ctxt,
+					 int nargs);
+XSLTPUBFUN void XSLTCALL	
+	xsltFormatNumberFunction	(xmlXPathParserContextPtr ctxt,
+					 int nargs);
+XSLTPUBFUN void XSLTCALL	
+	xsltGenerateIdFunction		(xmlXPathParserContextPtr ctxt,
+					 int nargs);
+XSLTPUBFUN void XSLTCALL	
+	xsltSystemPropertyFunction	(xmlXPathParserContextPtr ctxt,
+					 int nargs);
+XSLTPUBFUN void XSLTCALL	
+	xsltElementAvailableFunction	(xmlXPathParserContextPtr ctxt,
+					 int nargs);
+XSLTPUBFUN void XSLTCALL	
+	xsltFunctionAvailableFunction	(xmlXPathParserContextPtr ctxt,
+					 int nargs);
+
+/*
+ * And the registration
+ */
+
+XSLTPUBFUN void XSLTCALL	
+	xsltRegisterAllFunctions	(xmlXPathContextPtr ctxt);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_FUNCTIONS_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/imports.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/imports.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/imports.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,391 @@
+/*
+ * imports.c: Implementation of the XSLT imports
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+#ifdef HAVE_FLOAT_H
+#include <float.h>
+#endif
+#ifdef HAVE_IEEEFP_H
+#include <ieeefp.h>
+#endif
+#ifdef HAVE_NAN_H
+#include <nan.h>
+#endif
+#ifdef HAVE_CTYPE_H
+#include <ctype.h>
+#endif
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/hash.h>
+#include <libxml/xmlerror.h>
+#include <libxml/uri.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "imports.h"
+#include "documents.h"
+#include "security.h"
+#include "pattern.h"
+
+
+/************************************************************************
+ *									*
+ *			Module interfaces				*
+ *									*
+ ************************************************************************/
+/**
+ * xsltFixImportedCompSteps:
+ * @master: the "master" stylesheet
+ * @style: the stylesheet being imported by the master
+ *
+ * normalize the comp steps for the stylesheet being imported
+ * by the master, together with any imports within that. 
+ *
+ */
+static void xsltFixImportedCompSteps(xsltStylesheetPtr master, 
+			xsltStylesheetPtr style) {
+    xsltStylesheetPtr res;
+    xmlHashScan(style->templatesHash,
+	            (xmlHashScanner) xsltNormalizeCompSteps, master);
+    master->extrasNr += style->extrasNr;
+    for (res = style->imports; res != NULL; res = res->next) {
+        xsltFixImportedCompSteps(master, res);
+    }
+}
+
+/**
+ * xsltParseStylesheetImport:
+ * @style:  the XSLT stylesheet
+ * @cur:  the import element
+ *
+ * parse an XSLT stylesheet import element
+ *
+ * Returns 0 in case of success -1 in case of failure.
+ */
+
+int
+xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr cur) {
+    int ret = -1;
+    xmlDocPtr import = NULL;
+    xmlChar *base = NULL;
+    xmlChar *uriRef = NULL;
+    xmlChar *URI = NULL;
+    xsltStylesheetPtr res;
+    xsltSecurityPrefsPtr sec;
+
+    if ((cur == NULL) || (style == NULL))
+	return (ret);
+
+    uriRef = xmlGetNsProp(cur, (const xmlChar *)"href", NULL);
+    if (uriRef == NULL) {
+	xsltTransformError(NULL, style, cur,
+	    "xsl:import : missing href attribute\n");
+	goto error;
+    }
+
+    base = xmlNodeGetBase(style->doc, cur);
+    URI = xmlBuildURI(uriRef, base);
+    if (URI == NULL) {
+	xsltTransformError(NULL, style, cur,
+	    "xsl:import : invalid URI reference %s\n", uriRef);
+	goto error;
+    }
+
+    res = style;
+    while (res != NULL) {
+        if (res->doc == NULL)
+	    break;
+	if (xmlStrEqual(res->doc->URL, URI)) {
+	    xsltTransformError(NULL, style, cur,
+	       "xsl:import : recursion detected on imported URL %s\n", URI);
+	    goto error;
+	}
+	res = res->parent;
+    }
+
+    /*
+     * Security framework check
+     */
+    sec = xsltGetDefaultSecurityPrefs();
+    if (sec != NULL) {
+	int secres;
+
+	secres = xsltCheckRead(sec, NULL, URI);
+	if (secres == 0) {
+	    xsltTransformError(NULL, NULL, NULL,
+		 "xsl:import: read rights for %s denied\n",
+			     URI);
+	    goto error;
+	}
+    }
+
+    import = xsltDocDefaultLoader(URI, style->dict, XSLT_PARSE_OPTIONS,
+                                  (void *) style, XSLT_LOAD_STYLESHEET);
+    if (import == NULL) {
+	xsltTransformError(NULL, style, cur,
+	    "xsl:import : unable to load %s\n", URI);
+	goto error;
+    }
+
+    res = xsltParseStylesheetImportedDoc(import, style);
+    if (res != NULL) {
+	res->next = style->imports;
+	style->imports = res;
+	if (style->parent == NULL) {
+	    xsltFixImportedCompSteps(style, res);
+	}
+	ret = 0;
+    } else {
+	xmlFreeDoc(import);
+	}
+
+error:
+    if (uriRef != NULL)
+	xmlFree(uriRef);
+    if (base != NULL)
+	xmlFree(base);
+    if (URI != NULL)
+	xmlFree(URI);
+
+    return (ret);
+}
+
+/**
+ * xsltParseStylesheetInclude:
+ * @style:  the XSLT stylesheet
+ * @cur:  the include node
+ *
+ * parse an XSLT stylesheet include element
+ *
+ * Returns 0 in case of success -1 in case of failure
+ */
+
+int
+xsltParseStylesheetInclude(xsltStylesheetPtr style, xmlNodePtr cur) {
+    int ret = -1;
+    xmlDocPtr oldDoc;
+    xmlChar *base = NULL;
+    xmlChar *uriRef = NULL;
+    xmlChar *URI = NULL;
+    xsltStylesheetPtr result;
+    xsltDocumentPtr include;
+    xsltDocumentPtr docptr;
+    int oldNopreproc;
+
+    if ((cur == NULL) || (style == NULL))
+	return (ret);
+
+    uriRef = xmlGetNsProp(cur, (const xmlChar *)"href", NULL);
+    if (uriRef == NULL) {
+	xsltTransformError(NULL, style, cur,
+	    "xsl:include : missing href attribute\n");
+	goto error;
+    }
+
+    base = xmlNodeGetBase(style->doc, cur);
+    URI = xmlBuildURI(uriRef, base);
+    if (URI == NULL) {
+	xsltTransformError(NULL, style, cur,
+	    "xsl:include : invalid URI reference %s\n", uriRef);
+	goto error;
+    }
+
+    /*
+     * in order to detect recursion, we check all previously included
+     * stylesheets.
+     */
+    docptr = style->includes;
+    while (docptr != NULL) {
+        if (xmlStrEqual(docptr->doc->URL, URI)) {
+	    xsltTransformError(NULL, style, cur,
+	        "xsl:include : recursion detected on included URL %s\n", URI);
+	    goto error;
+	}
+	docptr = docptr->includes;
+    }
+
+    include = xsltLoadStyleDocument(style, URI);
+    if (include == NULL) {
+	xsltTransformError(NULL, style, cur,
+	    "xsl:include : unable to load %s\n", URI);
+	goto error;
+    }
+
+    oldDoc = style->doc;
+    style->doc = include->doc;
+    /* chain to stylesheet for recursion checking */
+    include->includes = style->includes;
+    style->includes = include;
+    oldNopreproc = style->nopreproc;
+    style->nopreproc = include->preproc;
+    result = xsltParseStylesheetProcess(style, include->doc);
+    style->nopreproc = oldNopreproc;
+    include->preproc = 1;
+    style->includes = include->includes;
+    style->doc = oldDoc;
+    if (result == NULL) {
+	ret = -1;
+	goto error;
+    }
+    ret = 0;
+
+error:
+    if (uriRef != NULL)
+	xmlFree(uriRef);
+    if (base != NULL)
+	xmlFree(base);
+    if (URI != NULL)
+	xmlFree(URI);
+
+    return (ret);
+}
+
+/**
+ * xsltNextImport:
+ * @cur:  the current XSLT stylesheet
+ *
+ * Find the next stylesheet in import precedence.
+ *
+ * Returns the next stylesheet or NULL if it was the last one
+ */
+
+xsltStylesheetPtr
+xsltNextImport(xsltStylesheetPtr cur) {
+    if (cur == NULL)
+	return(NULL);
+    if (cur->imports != NULL)
+	return(cur->imports);
+    if (cur->next != NULL)
+	return(cur->next) ;
+    do {
+	cur = cur->parent;
+	if (cur == NULL) break;
+	if (cur->next != NULL) return(cur->next);
+    } while (cur != NULL);
+    return(cur);
+}
+
+/**
+ * xsltNeedElemSpaceHandling:
+ * @ctxt:  an XSLT transformation context
+ *
+ * Checks whether that stylesheet requires white-space stripping
+ *
+ * Returns 1 if space should be stripped, 0 if not
+ */
+
+int
+xsltNeedElemSpaceHandling(xsltTransformContextPtr ctxt) {
+    xsltStylesheetPtr style;
+
+    if (ctxt == NULL)
+	return(0);
+    style = ctxt->style;
+    while (style != NULL) {
+	if (style->stripSpaces != NULL)
+	    return(1);
+	style = xsltNextImport(style);
+    }
+    return(0);
+}
+
+/**
+ * xsltFindElemSpaceHandling:
+ * @ctxt:  an XSLT transformation context
+ * @node:  an XML node
+ *
+ * Find strip-space or preserve-space informations for an element
+ * respect the import precedence or the wildcards
+ *
+ * Returns 1 if space should be stripped, 0 if not, and 2 if everything
+ *         should be CDTATA wrapped.
+ */
+
+int
+xsltFindElemSpaceHandling(xsltTransformContextPtr ctxt, xmlNodePtr node) {
+    xsltStylesheetPtr style;
+    const xmlChar *val;
+
+    if ((ctxt == NULL) || (node == NULL))
+	return(0);
+    style = ctxt->style;
+    while (style != NULL) {
+	if (node->ns != NULL) {
+	    val = (const xmlChar *)
+	      xmlHashLookup2(style->stripSpaces, node->name, node->ns->href);
+	} else {
+	    val = (const xmlChar *)
+		  xmlHashLookup2(style->stripSpaces, node->name, NULL);
+	}
+	if (val != NULL) {
+	    if (xmlStrEqual(val, (xmlChar *) "strip"))
+		return(1);
+	    if (xmlStrEqual(val, (xmlChar *) "preserve"))
+		return(0);
+	} 
+	if (style->stripAll == 1)
+	    return(1);
+	if (style->stripAll == -1)
+	    return(0);
+
+	style = xsltNextImport(style);
+    }
+    return(0);
+}
+
+/**
+ * xsltFindTemplate:
+ * @ctxt:  an XSLT transformation context
+ * @name: the template name
+ * @nameURI: the template name URI
+ *
+ * Finds the named template, apply import precedence rule.
+ *
+ * Returns the xsltTemplatePtr or NULL if not found
+ */
+xsltTemplatePtr
+xsltFindTemplate(xsltTransformContextPtr ctxt, const xmlChar *name,
+	         const xmlChar *nameURI) {
+    xsltTemplatePtr cur;
+    xsltStylesheetPtr style;
+
+    if ((ctxt == NULL) || (name == NULL))
+	return(NULL);
+    style = ctxt->style;
+    while (style != NULL) {
+	cur = style->templates;
+	while (cur != NULL) {
+	    if (xmlStrEqual(name, cur->name)) {
+		if (((nameURI == NULL) && (cur->nameURI == NULL)) ||
+		    ((nameURI != NULL) && (cur->nameURI != NULL) &&
+		     (xmlStrEqual(nameURI, cur->nameURI)))) {
+		    return(cur);
+		}
+	    }
+	    cur = cur->next;
+	}
+
+	style = xsltNextImport(style);
+    }
+    return(NULL);
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/imports.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/imports.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/imports.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,75 @@
+/*
+ * Summary: interface for the XSLT import support
+ * Description: macros and fuctions needed to implement and
+ *              access the import tree
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_IMPORTS_H__
+#define __XML_XSLT_IMPORTS_H__
+
+#include <libxml/tree.h>
+#include "xsltexports.h"
+#include "xsltInternals.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * XSLT_GET_IMPORT_PTR:
+ *
+ * A macro to import pointers from the stylesheet cascading order.
+ */
+#define XSLT_GET_IMPORT_PTR(res, style, name) {			\
+    xsltStylesheetPtr st = style;				\
+    res = NULL;							\
+    while (st != NULL) {					\
+	if (st->name != NULL) { res = st->name; break; }	\
+	st = xsltNextImport(st);				\
+    }}
+
+/**
+ * XSLT_GET_IMPORT_INT:
+ *
+ * A macro to import intergers from the stylesheet cascading order.
+ */
+#define XSLT_GET_IMPORT_INT(res, style, name) {			\
+    xsltStylesheetPtr st = style;				\
+    res = -1;							\
+    while (st != NULL) {					\
+	if (st->name != -1) { res = st->name; break; }	\
+	st = xsltNextImport(st);				\
+    }}
+
+/*
+ * Module interfaces
+ */
+XSLTPUBFUN int XSLTCALL			
+			xsltParseStylesheetImport(xsltStylesheetPtr style,
+						  xmlNodePtr cur);
+XSLTPUBFUN int XSLTCALL			
+			xsltParseStylesheetInclude
+						 (xsltStylesheetPtr style,
+						  xmlNodePtr cur);
+XSLTPUBFUN xsltStylesheetPtr XSLTCALL	
+			xsltNextImport		 (xsltStylesheetPtr style);
+XSLTPUBFUN int XSLTCALL			
+			xsltNeedElemSpaceHandling(xsltTransformContextPtr ctxt);
+XSLTPUBFUN int XSLTCALL			
+			xsltFindElemSpaceHandling(xsltTransformContextPtr ctxt,
+						  xmlNodePtr node);
+XSLTPUBFUN xsltTemplatePtr XSLTCALL		
+			xsltFindTemplate	 (xsltTransformContextPtr ctxt,
+						  const xmlChar *name,
+						  const xmlChar *nameURI);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_IMPORTS_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/keys.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/keys.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/keys.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,741 @@
+/*
+ * keys.c: Implemetation of the keys support
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/valid.h>
+#include <libxml/hash.h>
+#include <libxml/xmlerror.h>
+#include <libxml/parserInternals.h>
+#include <libxml/xpathInternals.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "imports.h"
+#include "templates.h"
+#include "keys.h"
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_KEYS
+#endif
+
+typedef struct _xsltKeyDef xsltKeyDef;
+typedef xsltKeyDef *xsltKeyDefPtr;
+struct _xsltKeyDef {
+    struct _xsltKeyDef *next;
+    xmlNodePtr inst;
+    xmlChar *name;
+    xmlChar *nameURI;
+    xmlChar *match;
+    xmlChar *use;
+    xmlXPathCompExprPtr comp;
+    xmlXPathCompExprPtr usecomp;
+    xmlNsPtr *nsList;           /* the namespaces in scope */
+    int nsNr;                   /* the number of namespaces in scope */
+};
+
+typedef struct _xsltKeyTable xsltKeyTable;
+typedef xsltKeyTable *xsltKeyTablePtr;
+struct _xsltKeyTable {
+    struct _xsltKeyTable *next;
+    xmlChar *name;
+    xmlChar *nameURI;
+    xmlHashTablePtr keys;
+};
+
+
+/************************************************************************
+ * 									*
+ * 			Type functions 					*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltNewKeyDef:
+ * @name:  the key name or NULL
+ * @nameURI:  the name URI or NULL
+ *
+ * Create a new XSLT KeyDef
+ *
+ * Returns the newly allocated xsltKeyDefPtr or NULL in case of error
+ */
+static xsltKeyDefPtr
+xsltNewKeyDef(const xmlChar *name, const xmlChar *nameURI) {
+    xsltKeyDefPtr cur;
+
+    cur = (xsltKeyDefPtr) xmlMalloc(sizeof(xsltKeyDef));
+    if (cur == NULL) {
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltNewKeyDef : malloc failed\n");
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltKeyDef));
+    if (name != NULL)
+	cur->name = xmlStrdup(name);
+    if (nameURI != NULL)
+	cur->nameURI = xmlStrdup(nameURI);
+    cur->nsList = NULL;
+    return(cur);
+}
+
+/**
+ * xsltFreeKeyDef:
+ * @keyd:  an XSLT key definition
+ *
+ * Free up the memory allocated by @keyd
+ */
+static void
+xsltFreeKeyDef(xsltKeyDefPtr keyd) {
+    if (keyd == NULL)
+	return;
+    if (keyd->comp != NULL)
+	xmlXPathFreeCompExpr(keyd->comp);
+    if (keyd->usecomp != NULL)
+	xmlXPathFreeCompExpr(keyd->usecomp);
+    if (keyd->name != NULL)
+	xmlFree(keyd->name);
+    if (keyd->nameURI != NULL)
+	xmlFree(keyd->nameURI);
+    if (keyd->match != NULL)
+	xmlFree(keyd->match);
+    if (keyd->use != NULL)
+	xmlFree(keyd->use);
+    if (keyd->nsList != NULL)
+        xmlFree(keyd->nsList);
+    memset(keyd, -1, sizeof(xsltKeyDef));
+    xmlFree(keyd);
+}
+
+/**
+ * xsltFreeKeyDefList:
+ * @keyd:  an XSLT key definition list
+ *
+ * Free up the memory allocated by all the elements of @keyd
+ */
+static void
+xsltFreeKeyDefList(xsltKeyDefPtr keyd) {
+    xsltKeyDefPtr cur;
+
+    while (keyd != NULL) {
+	cur = keyd;
+	keyd = keyd->next;
+	xsltFreeKeyDef(cur);
+    }
+}
+
+/**
+ * xsltNewKeyTable:
+ * @name:  the key name or NULL
+ * @nameURI:  the name URI or NULL
+ *
+ * Create a new XSLT KeyTable
+ *
+ * Returns the newly allocated xsltKeyTablePtr or NULL in case of error
+ */
+static xsltKeyTablePtr
+xsltNewKeyTable(const xmlChar *name, const xmlChar *nameURI) {
+    xsltKeyTablePtr cur;
+
+    cur = (xsltKeyTablePtr) xmlMalloc(sizeof(xsltKeyTable));
+    if (cur == NULL) {
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltNewKeyTable : malloc failed\n");
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltKeyTable));
+    if (name != NULL)
+	cur->name = xmlStrdup(name);
+    if (nameURI != NULL)
+	cur->nameURI = xmlStrdup(nameURI);
+    cur->keys = xmlHashCreate(0);
+    return(cur);
+}
+
+/**
+ * xsltFreeKeyTable:
+ * @keyt:  an XSLT key table
+ *
+ * Free up the memory allocated by @keyt
+ */
+static void
+xsltFreeKeyTable(xsltKeyTablePtr keyt) {
+    if (keyt == NULL)
+	return;
+    if (keyt->name != NULL)
+	xmlFree(keyt->name);
+    if (keyt->nameURI != NULL)
+	xmlFree(keyt->nameURI);
+    if (keyt->keys != NULL)
+	xmlHashFree(keyt->keys, 
+		    (xmlHashDeallocator) xmlXPathFreeNodeSet);
+    memset(keyt, -1, sizeof(xsltKeyTable));
+    xmlFree(keyt);
+}
+
+/**
+ * xsltFreeKeyTableList:
+ * @keyt:  an XSLT key table list
+ *
+ * Free up the memory allocated by all the elements of @keyt
+ */
+static void
+xsltFreeKeyTableList(xsltKeyTablePtr keyt) {
+    xsltKeyTablePtr cur;
+
+    while (keyt != NULL) {
+	cur = keyt;
+	keyt = keyt->next;
+	xsltFreeKeyTable(cur);
+    }
+}
+
+/************************************************************************
+ * 									*
+ * 		The interpreter for the precompiled patterns		*
+ * 									*
+ ************************************************************************/
+
+
+/**
+ * xsltFreeKeys:
+ * @style: an XSLT stylesheet
+ *
+ * Free up the memory used by XSLT keys in a stylesheet
+ */
+void
+xsltFreeKeys(xsltStylesheetPtr style) {
+    if (style->keys)
+	xsltFreeKeyDefList((xsltKeyDefPtr) style->keys);
+}
+
+/**
+ * skipString:
+ * @cur: the current pointer
+ * @end: the current offset
+ *
+ * skip a string delimited by " or '
+ *
+ * Returns the byte after the string or -1 in case of error
+ */
+static int
+skipString(const xmlChar *cur, int end) {
+    xmlChar limit;
+
+    if ((cur == NULL) || (end < 0)) return(-1);
+    if ((cur[end] == '\'') || (cur[end] == '"')) limit = cur[end];
+    else return(end);
+    end++;
+    while (cur[end] != 0) {
+        if (cur[end] == limit)
+	    return(end + 1);
+	end++;
+    }
+    return(-1);
+}
+
+/**
+ * skipPredicate:
+ * @cur: the current pointer
+ * @end: the current offset
+ *
+ * skip a predicate
+ *
+ * Returns the byte after the predicate or -1 in case of error
+ */
+static int
+skipPredicate(const xmlChar *cur, int end) {
+    if ((cur == NULL) || (end < 0)) return(-1);
+    if (cur[end] != '[') return(end);
+    end++;
+    while (cur[end] != 0) {
+        if ((cur[end] == '\'') || (cur[end] == '"')) {
+	    end = skipString(cur, end);
+	    if (end <= 0)
+	        return(-1);
+	    continue;
+	} else if (cur[end] == '[') {
+	    end = skipPredicate(cur, end);
+	    if (end <= 0)
+	        return(-1);
+	    continue;
+	} else if (cur[end] == ']')
+	    return(end + 1);
+	end++;
+    }
+    return(-1);
+}
+
+/**
+ * xsltAddKey:
+ * @style: an XSLT stylesheet
+ * @name:  the key name or NULL
+ * @nameURI:  the name URI or NULL
+ * @match:  the match value
+ * @use:  the use value
+ * @inst: the key instruction
+ *
+ * add a key definition to a stylesheet
+ *
+ * Returns 0 in case of success, and -1 in case of failure.
+ */
+int	
+xsltAddKey(xsltStylesheetPtr style, const xmlChar *name,
+	   const xmlChar *nameURI, const xmlChar *match,
+	   const xmlChar *use, xmlNodePtr inst) {
+    xsltKeyDefPtr key;
+    xmlChar *pattern = NULL;
+    int current, end, start, i = 0;
+
+    if ((style == NULL) || (name == NULL) || (match == NULL) || (use == NULL))
+	return(-1);
+
+#ifdef WITH_XSLT_DEBUG_KEYS
+    xsltGenericDebug(xsltGenericDebugContext,
+	"Add key %s, match %s, use %s\n", name, match, use);
+#endif
+
+    key = xsltNewKeyDef(name, nameURI);
+    key->match = xmlStrdup(match);
+    key->use = xmlStrdup(use);
+    key->inst = inst;
+    key->nsList = xmlGetNsList(inst->doc, inst);
+    if (key->nsList != NULL) {
+        while (key->nsList[i] != NULL)
+	    i++;
+    }
+    key->nsNr = i;
+
+    /*
+     * Split the | and register it as as many keys
+     */
+    current = end = 0;
+    while (match[current] != 0) {
+	start = current;
+	while (IS_BLANK_CH(match[current]))
+	    current++;
+	end = current;
+	while ((match[end] != 0) && (match[end] != '|')) {
+	    if (match[end] == '[') {
+	        end = skipPredicate(match, end);
+		if (end <= 0) {
+		    xsltTransformError(NULL, style, inst,
+		                       "key pattern is malformed: %s",
+				       key->match);
+		    if (style != NULL) style->errors++;
+		    goto error;
+		}
+	    } else
+		end++;
+	}
+	if (current == end) {
+	    xsltTransformError(NULL, style, inst,
+			       "key pattern is empty\n");
+	    if (style != NULL) style->errors++;
+	    goto error;
+	}
+	if (match[start] != '/') {
+	    pattern = xmlStrcat(pattern, (xmlChar *)"//");
+	    if (pattern == NULL) {
+		if (style != NULL) style->errors++;
+		goto error;
+	    }
+	}
+	pattern = xmlStrncat(pattern, &match[start], end - start);
+	if (pattern == NULL) {
+	    if (style != NULL) style->errors++;
+	    goto error;
+	}
+
+	if (match[end] == '|') {
+	    pattern = xmlStrcat(pattern, (xmlChar *)"|");
+	    end++;
+	}
+	current = end;
+    }
+#ifdef WITH_XSLT_DEBUG_KEYS
+    xsltGenericDebug(xsltGenericDebugContext,
+	"   resulting pattern %s\n", pattern);
+#endif
+    key->comp = xsltXPathCompile(style, pattern);
+    if (key->comp == NULL) {
+	xsltTransformError(NULL, style, inst,
+		"xsl:key : XPath pattern compilation failed '%s'\n",
+		         pattern);
+	if (style != NULL) style->errors++;
+    }
+    key->usecomp = xsltXPathCompile(style, use);
+    if (key->usecomp == NULL) {
+	xsltTransformError(NULL, style, inst,
+		"xsl:key : XPath pattern compilation failed '%s'\n",
+		         use);
+	if (style != NULL) style->errors++;
+    }
+    key->next = style->keys;
+    style->keys = key;
+error:
+    if (pattern != NULL)
+	xmlFree(pattern);
+    return(0);
+}
+
+/**
+ * xsltGetKey:
+ * @ctxt: an XSLT transformation context
+ * @name:  the key name or NULL
+ * @nameURI:  the name URI or NULL
+ * @value:  the key value to look for
+ *
+ * Lookup a key
+ *
+ * Returns the nodeset resulting from the query or NULL
+ */
+xmlNodeSetPtr
+xsltGetKey(xsltTransformContextPtr ctxt, const xmlChar *name,
+	   const xmlChar *nameURI, const xmlChar *value) {
+    xmlNodeSetPtr ret;
+    xsltKeyTablePtr table;
+
+    if ((ctxt == NULL) || (name == NULL) || (value == NULL) ||
+	(ctxt->document == NULL))
+	return(NULL);
+
+#ifdef WITH_XSLT_DEBUG_KEYS
+    xsltGenericDebug(xsltGenericDebugContext,
+	"Get key %s, value %s\n", name, value);
+#endif
+    table = (xsltKeyTablePtr) ctxt->document->keys;
+    while (table != NULL) {
+	if (xmlStrEqual(table->name, name) &&
+	    (((nameURI == NULL) && (table->nameURI == NULL)) ||
+	     ((nameURI != NULL) && (table->nameURI != NULL) &&
+	      (xmlStrEqual(table->nameURI, nameURI))))) {
+	    ret = (xmlNodeSetPtr)xmlHashLookup(table->keys, value);
+	    return(ret);
+	}
+	table = table->next;
+    }
+    return(NULL);
+}
+
+/**
+ * xsltEvalXPathKeys:
+ * @ctxt:  the XSLT transformation context
+ * @comp:  the compiled XPath expression
+ *
+ * Process the expression using XPath to get the list of keys
+ *
+ * Returns the array of computed string value or NULL, must be deallocated
+ *         by the caller.
+ */
+static xmlChar **
+xsltEvalXPathKeys(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp,
+                  xsltKeyDefPtr keyd) {
+    xmlChar **ret = NULL;
+    xmlXPathObjectPtr res;
+    xmlNodePtr oldInst;
+    xmlNodePtr oldNode;
+    int	oldPos, oldSize;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+
+    oldInst = ctxt->inst;
+    oldNode = ctxt->node;
+    oldPos = ctxt->xpathCtxt->proximityPosition;
+    oldSize = ctxt->xpathCtxt->contextSize;
+    oldNsNr = ctxt->xpathCtxt->nsNr;
+    oldNamespaces = ctxt->xpathCtxt->namespaces;
+
+    ctxt->xpathCtxt->node = ctxt->node;
+    ctxt->xpathCtxt->namespaces = keyd->nsList;
+    ctxt->xpathCtxt->nsNr = keyd->nsNr;
+    res = xmlXPathCompiledEval(comp, ctxt->xpathCtxt);
+    if (res != NULL) {
+	if (res->type == XPATH_NODESET) {
+	    int len, i, j;
+
+	    if (res->nodesetval != NULL)
+		len = res->nodesetval->nodeNr;
+	    else
+		len = 0;
+	    if (len != 0) {
+		ret = (xmlChar **) xmlMalloc((len + 1) * sizeof(xmlChar *));
+		if (ret != NULL) {
+		    for (i = 0,j = 0;i < len;i++) {
+			ret[j] = xmlXPathCastNodeToString(
+				res->nodesetval->nodeTab[i]);
+			if (ret[j] != NULL)
+			    j++;
+		    }
+		    ret[j] = NULL;
+		}
+	    }
+	} else {
+	    if (res->type != XPATH_STRING)
+		res = xmlXPathConvertString(res);
+	    if (res->type == XPATH_STRING) {
+		ret = (xmlChar **) xmlMalloc(2 * sizeof(xmlChar *));
+		if (ret != NULL) {
+		    ret[0] = res->stringval;
+		    ret[1] = NULL;
+		    res->stringval = NULL;
+		}
+	    } else {
+		xsltTransformError(ctxt, NULL, NULL,
+		     "xpath : string() function didn't return a String\n");
+	    }
+	}
+	xmlXPathFreeObject(res);
+    } else {
+	ctxt->state = XSLT_STATE_STOPPED;
+    }
+#ifdef WITH_XSLT_DEBUG_TEMPLATES
+    xsltGenericDebug(xsltGenericDebugContext,
+	 "xsltEvalXPathString: returns %s\n", ret);
+#endif
+    ctxt->inst = oldInst;
+    ctxt->node = oldNode;
+    ctxt->xpathCtxt->contextSize = oldSize;
+    ctxt->xpathCtxt->proximityPosition = oldPos;
+    ctxt->xpathCtxt->nsNr = oldNsNr;
+    ctxt->xpathCtxt->namespaces = oldNamespaces;
+    return(ret);
+}
+/**
+ * xsltInitCtxtKey:
+ * @ctxt: an XSLT transformation context
+ * @doc:  an XSLT document
+ * @keyd: the key definition
+ *
+ * Computes the key tables this key and for the current input document.
+ */
+static void
+xsltInitCtxtKey(xsltTransformContextPtr ctxt, xsltDocumentPtr doc,
+	        xsltKeyDefPtr keyd) {
+    int i;
+    xmlNodeSetPtr nodelist = NULL, keylist;
+    xmlXPathObjectPtr res = NULL;
+    xmlChar *str, **list;
+    xsltKeyTablePtr table;
+    int	oldPos, oldSize;
+    xmlNodePtr oldInst;
+    xmlNodePtr oldNode;
+    xsltDocumentPtr oldDoc;
+    xmlDocPtr oldXDoc;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+
+    /*
+     * Evaluate the nodelist
+     */
+
+    oldXDoc= ctxt->xpathCtxt->doc;
+    oldPos = ctxt->xpathCtxt->proximityPosition;
+    oldSize = ctxt->xpathCtxt->contextSize;
+    oldNsNr = ctxt->xpathCtxt->nsNr;
+    oldNamespaces = ctxt->xpathCtxt->namespaces;
+    oldInst = ctxt->inst;
+    oldDoc = ctxt->document;
+    oldNode = ctxt->node;
+
+    if (keyd->comp == NULL)
+	goto error;
+    if (keyd->usecomp == NULL)
+	goto error;
+
+    ctxt->document = doc;
+    ctxt->xpathCtxt->doc = doc->doc;
+    ctxt->xpathCtxt->node = (xmlNodePtr) doc->doc;
+    ctxt->node = (xmlNodePtr) doc->doc;
+    /* TODO : clarify the use of namespaces in keys evaluation */
+    ctxt->xpathCtxt->namespaces = keyd->nsList;
+    ctxt->xpathCtxt->nsNr = keyd->nsNr;
+    ctxt->inst = keyd->inst;
+    res = xmlXPathCompiledEval(keyd->comp, ctxt->xpathCtxt);
+    ctxt->xpathCtxt->contextSize = oldSize;
+    ctxt->xpathCtxt->proximityPosition = oldPos;
+    ctxt->inst = oldInst;
+
+    if (res != NULL) {
+	if (res->type == XPATH_NODESET) {
+	    nodelist = res->nodesetval;
+#ifdef WITH_XSLT_DEBUG_KEYS
+	    if (nodelist != NULL)
+		XSLT_TRACE(ctxt,XSLT_TRACE_KEYS,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltInitCtxtKey: %s evaluates to %d nodes\n",
+				 keyd->match, nodelist->nodeNr));
+#endif
+	} else {
+#ifdef WITH_XSLT_DEBUG_KEYS
+	    XSLT_TRACE(ctxt,XSLT_TRACE_KEYS,xsltGenericDebug(xsltGenericDebugContext,
+		 "xsltInitCtxtKey: %s is not a node set\n", keyd->match));
+#endif
+	    goto error;
+	}
+    } else {
+#ifdef WITH_XSLT_DEBUG_KEYS
+	XSLT_TRACE(ctxt,XSLT_TRACE_KEYS,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltInitCtxtKey: %s evaluation failed\n", keyd->match));
+#endif
+	ctxt->state = XSLT_STATE_STOPPED;
+	goto error;
+    }
+
+    /*
+     * for each node in the list evaluate the key and insert the node
+     */
+    if ((nodelist == NULL) || (nodelist->nodeNr <= 0))
+	goto error;
+
+    /**
+     * Multiple key definitions for the same name are allowed, so
+     * we must check if the key is already present for this doc
+     */
+    table = (xsltKeyTablePtr) doc->keys;
+    while (table != NULL) {
+        if (xmlStrEqual(table->name, keyd->name) &&
+	    (((keyd->nameURI == NULL) && (table->nameURI == NULL)) ||
+	     ((keyd->nameURI != NULL) && (table->nameURI != NULL) &&
+	      (xmlStrEqual(table->nameURI, keyd->nameURI)))))
+	    break;
+	table = table->next;
+    }
+    /**
+     * If the key was not previously defined, create it now and
+     * chain it to the list of keys for the doc
+     */
+    if (table == NULL) {
+        table = xsltNewKeyTable(keyd->name, keyd->nameURI);
+        if (table == NULL)
+	    goto error;
+        table->next = doc->keys;
+        doc->keys = table;
+    }
+
+    for (i = 0;i < nodelist->nodeNr;i++) {
+	if (IS_XSLT_REAL_NODE(nodelist->nodeTab[i])) {
+	    ctxt->node = nodelist->nodeTab[i];
+
+	    list = xsltEvalXPathKeys(ctxt, keyd->usecomp, keyd);
+	    if (list != NULL) {
+		int ix = 0;
+
+		str = list[ix++];
+		while (str != NULL) {
+#ifdef WITH_XSLT_DEBUG_KEYS
+		    XSLT_TRACE(ctxt,XSLT_TRACE_KEYS,xsltGenericDebug(xsltGenericDebugContext,
+			 "xsl:key : node associated to(%s,%s)\n",
+				     keyd->name, str));
+#endif
+		    keylist = xmlHashLookup(table->keys, str);
+		    if (keylist == NULL) {
+			keylist = xmlXPathNodeSetCreate(nodelist->nodeTab[i]);
+			xmlHashAddEntry(table->keys, str, keylist);
+		    } else {
+			xmlXPathNodeSetAdd(keylist, nodelist->nodeTab[i]);
+		    }
+		    switch (nodelist->nodeTab[i]->type) {
+                        case XML_ELEMENT_NODE:
+                        case XML_TEXT_NODE:
+                        case XML_CDATA_SECTION_NODE:
+                        case XML_PI_NODE:
+                        case XML_COMMENT_NODE:
+			    nodelist->nodeTab[i]->psvi = keyd;
+			    break;
+                        case XML_ATTRIBUTE_NODE: {
+			    xmlAttrPtr attr = (xmlAttrPtr) 
+			                      nodelist->nodeTab[i];
+			    attr->psvi = keyd;
+			    break;
+			}
+                        case XML_DOCUMENT_NODE:
+                        case XML_HTML_DOCUMENT_NODE: {
+			    xmlDocPtr kdoc = (xmlDocPtr) 
+			                    nodelist->nodeTab[i];
+			    kdoc->psvi = keyd;
+			    break;
+			}
+			default:
+			    break;
+		    }
+		    xmlFree(str);
+		    str = list[ix++];
+		}
+		xmlFree(list);
+#ifdef WITH_XSLT_DEBUG_KEYS
+	    } else {
+		XSLT_TRACE(ctxt,XSLT_TRACE_KEYS,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsl:key : use %s failed to return strings\n",
+				 keyd->use));
+#endif
+	    }
+	}
+    }
+
+error:
+    ctxt->document = oldDoc;
+    ctxt->xpathCtxt->doc = oldXDoc;
+    ctxt->xpathCtxt->nsNr = oldNsNr;
+    ctxt->xpathCtxt->namespaces = oldNamespaces;
+    ctxt->node = oldNode;
+    if (res != NULL)
+	xmlXPathFreeObject(res);
+}
+
+/**
+ * xsltInitCtxtKeys:
+ * @ctxt:  an XSLT transformation context
+ * @doc:  an XSLT document
+ *
+ * Computes all the keys tables for the current input document.
+ * Should be done before global varibales are initialized.
+ */
+void
+xsltInitCtxtKeys(xsltTransformContextPtr ctxt, xsltDocumentPtr doc) {
+    xsltStylesheetPtr style;
+    xsltKeyDefPtr keyd;
+
+    if ((ctxt == NULL) || (doc == NULL))
+	return;
+#ifdef WITH_XSLT_DEBUG_KEYS
+    if ((doc->doc != NULL) && (doc->doc->URL != NULL))
+	XSLT_TRACE(ctxt,XSLT_TRACE_KEYS,xsltGenericDebug(xsltGenericDebugContext, "Initializing keys on %s\n",
+		     doc->doc->URL));
+#endif
+    style = ctxt->style;
+    while (style != NULL) {
+	keyd = (xsltKeyDefPtr) style->keys;
+	while (keyd != NULL) {
+	    xsltInitCtxtKey(ctxt, doc, keyd);
+
+	    keyd = keyd->next;
+	}
+
+	style = xsltNextImport(style);
+    }
+}
+
+/**
+ * xsltFreeDocumentKeys:
+ * @doc: a XSLT document
+ *
+ * Free the keys associated to a document
+ */
+void	
+xsltFreeDocumentKeys(xsltDocumentPtr doc) {
+    if (doc != NULL)
+        xsltFreeKeyTableList(doc->keys);
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/keys.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/keys.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/keys.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,47 @@
+/*
+ * Summary:  interface for the key matching used in key() and template matches.
+ * Description: implementation of the key mechanims.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_KEY_H__
+#define __XML_XSLT_KEY_H__
+
+#include <libxml/xpath.h>
+#include "xsltexports.h"
+#include "xsltInternals.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define NODE_IS_KEYED (1 >> 15)
+XSLTPUBFUN int XSLTCALL
+		xsltAddKey		(xsltStylesheetPtr style,
+					 const xmlChar *name,
+					 const xmlChar *nameURI,
+					 const xmlChar *match,
+					 const xmlChar *use,
+					 xmlNodePtr inst);
+XSLTPUBFUN xmlNodeSetPtr XSLTCALL	
+		xsltGetKey		(xsltTransformContextPtr ctxt,
+					 const xmlChar *name,
+					 const xmlChar *nameURI,
+					 const xmlChar *value);
+XSLTPUBFUN void XSLTCALL		
+		xsltInitCtxtKeys	(xsltTransformContextPtr ctxt,
+					 xsltDocumentPtr doc);
+XSLTPUBFUN void XSLTCALL		
+		xsltFreeKeys		(xsltStylesheetPtr style);
+XSLTPUBFUN void XSLTCALL		
+		xsltFreeDocumentKeys	(xsltDocumentPtr doc);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/libxslt.3
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/libxslt.3	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/libxslt.3	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+.TH libxslt 3 "30 August 2001"
+.SH NAME
+libxslt \- library used to do XSL transformations on XML documents
+.SH DESCRIPTION
+The 
+.I libxslt
+library is used to do XSL transformations on XML documents that
+have been loaded into memory with functions from
+.I libxml.
+.LP
+.SH FILES
+.TP 2.2i
+.B /usr/lib/libxslt_1.0.0/libxslt.a
+static library
+.TP
+.B /usr/lib/libxslt_1.0.0/libxslt.so
+sharable library
+.TP
+.B /usr/package/libxslt_1.0.0/bin/xsltproc
+binary application to do XSL transformations on the command line
+.SH AUTHORS
+Daniel Veillard (daniel at veillard.com).
+If you download and install this package look at instructions on the
+Web site http://xmlsoft.org/XSLT/ .
+Manual page by Heiko W. Rupp (hwr at pilhuhn.de)
+.SH SEE ALSO
+.IR libexslt (3), 
+.IR libxml (3), 
+.IR xsltproc (1), 
+.IR xmllint (1)
+.\" end of manual page

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/libxslt.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/libxslt.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/libxslt.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,30 @@
+/*
+ * Summary: internal header only used during the compilation of libxslt
+ * Description: internal header only used during the compilation of libxslt
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XSLT_LIBXSLT_H__
+#define __XSLT_LIBXSLT_H__
+
+#if defined(WIN32) && !defined (__CYGWIN__) && !defined (__MINGW32__)
+#include <win32config.h>
+#else
+#include "config.h"
+#endif
+
+#include "xsltconfig.h"
+#include <libxml/xmlversion.h>
+
+#if !defined LIBXSLT_PUBLIC
+#if (defined (__CYGWIN__) || defined _MSC_VER) && !defined IN_LIBXSLT && !defined LIBXSLT_STATIC
+#define LIBXSLT_PUBLIC __declspec(dllimport)
+#else
+#define LIBXSLT_PUBLIC 
+#endif
+#endif
+
+#endif /* ! __XSLT_LIBXSLT_H__ */

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/namespaces.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/namespaces.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/namespaces.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,592 @@
+/*
+ * namespaces.c: Implementation of the XSLT namespaces handling
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+#ifdef HAVE_FLOAT_H
+#include <float.h>
+#endif
+#ifdef HAVE_IEEEFP_H
+#include <ieeefp.h>
+#endif
+#ifdef HAVE_NAN_H
+#include <nan.h>
+#endif
+#ifdef HAVE_CTYPE_H
+#include <ctype.h>
+#endif
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/hash.h>
+#include <libxml/xmlerror.h>
+#include <libxml/uri.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "namespaces.h"
+#include "imports.h"
+
+
+
+/************************************************************************
+ *									*
+ *			Module interfaces				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltNamespaceAlias:
+ * @style:  the XSLT stylesheet
+ * @node:  the xsl:namespace-alias node
+ *
+ * Read the stylesheet-prefix and result-prefix attributes, register
+ * them as well as the corresponding namespace.
+ */
+void
+xsltNamespaceAlias(xsltStylesheetPtr style, xmlNodePtr node) {
+    xmlChar *sprefix;
+    xmlNsPtr sNs;
+    const xmlChar *shref;
+    xmlChar *rprefix;
+    xmlNsPtr rNs;
+    const xmlChar *rhref;
+
+    sprefix = xmlGetNsProp(node, (const xmlChar *)"stylesheet-prefix", NULL);
+    if (sprefix == NULL) {
+	xsltTransformError(NULL, style, node,
+	    "namespace-alias: stylesheet-prefix attribute missing\n");
+	return;
+    }
+    rprefix = xmlGetNsProp(node, (const xmlChar *)"result-prefix", NULL);
+    if (rprefix == NULL) {
+	xsltTransformError(NULL, style, node,
+	    "namespace-alias: result-prefix attribute missing\n");
+	goto error;
+    }
+    
+    if (xmlStrEqual(sprefix, (const xmlChar *)"#default")) {
+        /*
+	 * Do we have a default namespace previously declared?
+	 */
+	sNs = xmlSearchNs(node->doc, node, NULL);
+	if (sNs == NULL)
+	    shref = NULL;	/* No - set NULL */
+	else
+	    shref = sNs->href;	/* Yes - set for nsAlias table */
+    } else {
+	sNs = xmlSearchNs(node->doc, node, sprefix);
+ 
+	if ((sNs == NULL) || (sNs->href == NULL)) {
+	    xsltTransformError(NULL, style, node,
+	        "namespace-alias: prefix %s not bound to any namespace\n",
+					sprefix);
+	    goto error;
+	} else
+	    shref = sNs->href;
+    }
+
+    /*
+     * When "#default" is used for result, if a default namespace has not
+     * been explicitly declared the special value UNDEFINED_DEFAULT_NS is
+     * put into the nsAliases table
+     */
+    if (xmlStrEqual(rprefix, (const xmlChar *)"#default")) {
+	rNs = xmlSearchNs(node->doc, node, NULL);
+	if (rNs == NULL)
+	    rhref = UNDEFINED_DEFAULT_NS;
+	else
+	    rhref = rNs->href;
+    } else {
+	rNs = xmlSearchNs(node->doc, node, rprefix);
+
+        if ((rNs == NULL) || (rNs->href == NULL)) {
+	    xsltTransformError(NULL, style, node,
+	        "namespace-alias: prefix %s not bound to any namespace\n",
+					rprefix);
+	    goto error;
+	} else
+	    rhref = rNs->href;
+    }
+    /*
+     * Special case if #default is used for stylesheet and no default has
+     * been explicitly declared.  We use style->defaultAlias for this
+     */
+    if (shref == NULL) {
+        if (rNs != NULL)
+            style->defaultAlias = rNs->href;
+    } else {
+        if (style->nsAliases == NULL)
+	    style->nsAliases = xmlHashCreate(10);
+        if (style->nsAliases == NULL) {
+	    xsltTransformError(NULL, style, node,
+	        "namespace-alias: cannot create hash table\n");
+	    goto error;
+        }
+        xmlHashAddEntry((xmlHashTablePtr) style->nsAliases,
+	            shref, (void *) rhref);
+    }
+
+error:
+    if (sprefix != NULL)
+	xmlFree(sprefix);
+    if (rprefix != NULL)
+	xmlFree(rprefix);
+}
+
+/**
+ * xsltNsInScope:
+ * @doc:  the document
+ * @node:  the current node
+ * @ancestor:  the ancestor carrying the namespace
+ * @prefix:  the namespace prefix
+ *
+ * Copy of xmlNsInScope which is not public ...
+ * 
+ * Returns 1 if true, 0 if false and -1 in case of error.
+ */
+static int
+xsltNsInScope(xmlDocPtr doc ATTRIBUTE_UNUSED, xmlNodePtr node,
+             xmlNodePtr ancestor, const xmlChar * prefix)
+{
+    xmlNsPtr tst;
+
+    while ((node != NULL) && (node != ancestor)) {
+        if ((node->type == XML_ENTITY_REF_NODE) ||
+            (node->type == XML_ENTITY_NODE) ||
+            (node->type == XML_ENTITY_DECL))
+            return (-1);
+        if (node->type == XML_ELEMENT_NODE) {
+            tst = node->nsDef;
+            while (tst != NULL) {
+                if ((tst->prefix == NULL)
+                    && (prefix == NULL))
+                    return (0);
+                if ((tst->prefix != NULL)
+                    && (prefix != NULL)
+                    && (xmlStrEqual(tst->prefix, prefix)))
+                    return (0);
+                tst = tst->next;
+            }
+        }
+        node = node->parent;
+    }
+    if (node != ancestor)
+        return (-1);
+    return (1);
+}
+
+/**
+ * xsltSearchPlainNsByHref:
+ * @doc:  the document
+ * @node:  the current node
+ * @href:  the namespace value
+ *
+ * Search a Ns aliasing a given URI and without a NULL prefix.
+ * Recurse on the parents until it finds
+ * the defined namespace or return NULL otherwise.
+ * Returns the namespace pointer or NULL.
+ */
+static xmlNsPtr
+xsltSearchPlainNsByHref(xmlDocPtr doc, xmlNodePtr node, const xmlChar * href)
+{
+    xmlNsPtr cur;
+    xmlNodePtr orig = node;
+
+    if ((node == NULL) || (href == NULL))
+        return (NULL);
+
+    while (node != NULL) {
+        if ((node->type == XML_ENTITY_REF_NODE) ||
+            (node->type == XML_ENTITY_NODE) ||
+            (node->type == XML_ENTITY_DECL))
+            return (NULL);
+        if (node->type == XML_ELEMENT_NODE) {
+            cur = node->nsDef;
+            while (cur != NULL) {
+                if ((cur->href != NULL) && (cur->prefix != NULL) &&
+		    (href != NULL) && (xmlStrEqual(cur->href, href))) {
+		    if (xsltNsInScope(doc, orig, node, cur->href) == 1)
+			return (cur);
+                }
+                cur = cur->next;
+            }
+            if (orig != node) {
+                cur = node->ns;
+                if (cur != NULL) {
+                    if ((cur->href != NULL) && (cur->prefix != NULL) &&
+		        (href != NULL) && (xmlStrEqual(cur->href, href))) {
+			if (xsltNsInScope(doc, orig, node, cur->href) == 1)
+			    return (cur);
+                    }
+                }
+            }    
+        }
+        node = node->parent;
+    }
+    return (NULL);
+}
+
+/**
+ * xsltGetPlainNamespace:
+ * @ctxt:  a transformation context
+ * @cur:  the input node
+ * @ns:  the namespace
+ * @out:  the output node (or its parent)
+ *
+ * Find the right namespace value for this prefix, if needed create
+ * and add a new namespace decalaration on the node
+ * Handle namespace aliases and make sure the prefix is not NULL, this
+ * is needed for attributes.
+ *
+ * Returns the namespace node to use or NULL
+ */
+xmlNsPtr
+xsltGetPlainNamespace(xsltTransformContextPtr ctxt, xmlNodePtr cur,
+                      xmlNsPtr ns, xmlNodePtr out) {
+    xsltStylesheetPtr style;
+    xmlNsPtr ret;
+    const xmlChar *URI = NULL; /* the replacement URI */
+
+    if ((ctxt == NULL) || (cur == NULL) || (out == NULL) || (ns == NULL))
+	return(NULL);
+
+    style = ctxt->style;
+    while (style != NULL) {
+	if (style->nsAliases != NULL)
+	    URI = (const xmlChar *) xmlHashLookup(style->nsAliases, ns->href);
+	if (URI != NULL)
+	    break;
+
+	style = xsltNextImport(style);
+    }
+
+    if (URI == UNDEFINED_DEFAULT_NS) {
+        xmlNsPtr dflt;
+	dflt = xmlSearchNs(cur->doc, cur, NULL);
+        if (dflt == NULL)
+	    return NULL;
+	else
+	    URI = dflt->href;
+    }
+
+    if (URI == NULL)
+	URI = ns->href;
+
+    if ((out->parent != NULL) &&
+	(out->parent->type == XML_ELEMENT_NODE) &&
+	(out->parent->ns != NULL) &&
+	(out->parent->ns->prefix != NULL) &&
+	(xmlStrEqual(out->parent->ns->href, URI)))
+	ret = out->parent->ns;
+    else {
+	if (ns->prefix != NULL) {
+	    ret = xmlSearchNs(out->doc, out, ns->prefix);
+	    if ((ret == NULL) || (!xmlStrEqual(ret->href, URI)) ||
+	        (ret->prefix == NULL)) {
+		ret = xsltSearchPlainNsByHref(out->doc, out, URI);
+	    }
+	} else {
+	    ret = xsltSearchPlainNsByHref(out->doc, out, URI);
+	}
+    }
+
+    if (ret == NULL) {
+	if (out->type == XML_ELEMENT_NODE)
+	    ret = xmlNewNs(out, URI, ns->prefix);
+    }
+    return(ret);
+}
+
+/**
+ * xsltGetSpecialNamespace:
+ * @ctxt:  a transformation context
+ * @cur:  the input node
+ * @URI:  the namespace URI
+ * @prefix:  the suggested prefix
+ * @out:  the output node (or its parent)
+ *
+ * Find the right namespace value for this URI, if needed create
+ * and add a new namespace decalaration on the node
+ *
+ * Returns the namespace node to use or NULL
+ */
+xmlNsPtr
+xsltGetSpecialNamespace(xsltTransformContextPtr ctxt, xmlNodePtr cur,
+		const xmlChar *URI, const xmlChar *prefix, xmlNodePtr out) {
+    xmlNsPtr ret;
+    static int prefixno = 1;
+    char nprefix[10];
+
+    if ((ctxt == NULL) || (cur == NULL) || (out == NULL) || (URI == NULL))
+	return(NULL);
+
+    if ((prefix == NULL) && (URI[0] == 0)) {
+	ret = xmlSearchNs(out->doc, out, NULL);
+	if (ret != NULL) {
+	    ret = xmlNewNs(out, URI, prefix);
+	    return(ret);
+	}
+	return(NULL);
+    }
+
+    if ((out->parent != NULL) &&
+	(out->parent->type == XML_ELEMENT_NODE) &&
+	(out->parent->ns != NULL) &&
+	(xmlStrEqual(out->parent->ns->href, URI)))
+	ret = out->parent->ns;
+    else 
+	ret = xmlSearchNsByHref(out->doc, out, URI);
+
+    if ((ret == NULL) || (ret->prefix == NULL)) {
+	if (prefix == NULL) {
+	    do {
+		sprintf(nprefix, "ns%d", prefixno++);
+		ret = xmlSearchNs(out->doc, out, (xmlChar *)nprefix);
+	    } while (ret != NULL);
+	    prefix = (const xmlChar *) &nprefix[0];
+	} else if ((ret != NULL) && (ret->prefix == NULL)) {
+	    /* found ns but no prefix - search for the prefix */
+	    ret = xmlSearchNs(out->doc, out, prefix);
+	    if (ret != NULL)
+	        return(ret);	/* found it */
+	}
+	if (out->type == XML_ELEMENT_NODE)
+	    ret = xmlNewNs(out, URI, prefix);
+    }
+    return(ret);
+}
+
+/**
+ * xsltGetNamespace:
+ * @ctxt:  a transformation context
+ * @cur:  the input node
+ * @ns:  the namespace
+ * @out:  the output node (or its parent)
+ *
+ * Find the right namespace value for this prefix, if needed create
+ * and add a new namespace decalaration on the node
+ * Handle namespace aliases
+ *
+ * Returns the namespace node to use or NULL
+ */
+xmlNsPtr
+xsltGetNamespace(xsltTransformContextPtr ctxt, xmlNodePtr cur, xmlNsPtr ns,
+	         xmlNodePtr out) {
+    xsltStylesheetPtr style;
+    xmlNsPtr ret;
+    const xmlChar *URI = NULL; /* the replacement URI */
+
+    if ((ctxt == NULL) || (cur == NULL) || (out == NULL) || (ns == NULL))
+	return(NULL);
+
+    style = ctxt->style;
+    while (style != NULL) {
+	if (style->nsAliases != NULL)
+	    URI = (const xmlChar *) 
+		xmlHashLookup(style->nsAliases, ns->href);
+	if (URI != NULL)
+	    break;
+
+	style = xsltNextImport(style);
+    }
+
+    if (URI == UNDEFINED_DEFAULT_NS) {
+        xmlNsPtr dflt;
+	dflt = xmlSearchNs(cur->doc, cur, NULL);
+	if (dflt != NULL)
+	    URI = dflt->href;
+	else
+	    return NULL;
+    } else if (URI == NULL)
+	URI = ns->href;
+
+    /*
+     * If the parent is an XML_ELEMENT_NODE, and has the "equivalent"
+     * namespace as ns (either both default, or both with a prefix
+     * with the same href) then return the parent's ns record
+     */
+    if ((out->parent != NULL) &&
+	(out->parent->type == XML_ELEMENT_NODE) &&
+	(out->parent->ns != NULL) &&
+	(((out->parent->ns->prefix == NULL) && (ns->prefix == NULL)) ||
+	 ((out->parent->ns->prefix != NULL) && (ns->prefix != NULL))) &&
+	(xmlStrEqual(out->parent->ns->href, URI)))
+	ret = out->parent->ns;
+    else {
+        /*
+	 * do a standard namespace search for ns in the output doc
+	 */
+        ret = xmlSearchNs(out->doc, out, ns->prefix);
+	if ((ret != NULL) && (!xmlStrEqual(ret->href, URI)))
+	    ret = NULL;
+
+	/*
+	 * if the search fails and it's not for the default prefix
+	 * do a search by href
+	 */
+	if ((ret == NULL) && (ns->prefix != NULL))
+	    ret = xmlSearchNsByHref(out->doc, out, URI);
+    }
+
+    /*
+     * For an element node, if we don't find it, or it's the default
+     * and this element already defines a default (bug 165560), we need to
+     * create it.
+     */
+    if (out->type == XML_ELEMENT_NODE) {
+	if ((ret == NULL) || ((ret->prefix == NULL) && (out->ns == NULL) &&
+	    (out->nsDef != NULL) && (!xmlStrEqual(URI, out->nsDef->href)))) {
+	        ret = xmlNewNs(out, URI, ns->prefix);
+	}
+    }
+    return(ret);
+}
+
+/**
+ * xsltCopyNamespaceList:
+ * @ctxt:  a transformation context
+ * @node:  the target node
+ * @cur:  the first namespace
+ *
+ * Do a copy of an namespace list. If @node is non-NULL the
+ * new namespaces are added automatically. This handles namespaces
+ * aliases
+ *
+ * Returns: a new xmlNsPtr, or NULL in case of error.
+ */
+xmlNsPtr
+xsltCopyNamespaceList(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	              xmlNsPtr cur) {
+    xmlNsPtr ret = NULL, tmp;
+    xmlNsPtr p = NULL,q;
+    const xmlChar *URI;
+
+    if (cur == NULL)
+	return(NULL);
+    if (cur->type != XML_NAMESPACE_DECL)
+	return(NULL);
+
+    /*
+     * One can add namespaces only on element nodes
+     */
+    if ((node != NULL) && (node->type != XML_ELEMENT_NODE))
+	node = NULL;
+
+    while (cur != NULL) {
+	if (cur->type != XML_NAMESPACE_DECL)
+	    break;
+
+	/*
+	 * Avoid duplicating namespace declrations on the tree
+	 */
+	if (node != NULL) {
+	    if ((node->ns != NULL) &&
+        	(xmlStrEqual(node->ns->href, cur->href)) &&
+        	(xmlStrEqual(node->ns->prefix, cur->prefix))) {
+		cur = cur->next;
+		continue;
+	    }
+	    tmp = xmlSearchNs(node->doc, node, cur->prefix);
+	    if ((tmp != NULL) && (xmlStrEqual(tmp->href, cur->href))) {
+		cur = cur->next;
+		continue;
+	    }
+	}
+	
+	if (!xmlStrEqual(cur->href, XSLT_NAMESPACE)) {
+	    /* TODO apply cascading */
+	    URI = (const xmlChar *) xmlHashLookup(ctxt->style->nsAliases,
+		                                  cur->href);
+	    if (URI == UNDEFINED_DEFAULT_NS)
+	        continue;
+	    if (URI != NULL) {
+		q = xmlNewNs(node, URI, cur->prefix);
+	    } else {
+		q = xmlNewNs(node, cur->href, cur->prefix);
+	    }
+	    if (p == NULL) {
+		ret = p = q;
+	    } else {
+		p->next = q;
+		p = q;
+	    }
+	}
+	cur = cur->next;
+    }
+    return(ret);
+}
+
+/**
+ * xsltCopyNamespace:
+ * @ctxt:  a transformation context
+ * @node:  the target node
+ * @cur:  the namespace node
+ *
+ * Do a copy of an namespace node. If @node is non-NULL the
+ * new namespaces are added automatically. This handles namespaces
+ * aliases
+ *
+ * Returns: a new xmlNsPtr, or NULL in case of error.
+ */
+xmlNsPtr
+xsltCopyNamespace(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	          xmlNsPtr cur) {
+    xmlNsPtr ret = NULL;
+    const xmlChar *URI;
+
+    if (cur == NULL)
+	return(NULL);
+    if (cur->type != XML_NAMESPACE_DECL)
+	return(NULL);
+
+    /*
+     * One can add namespaces only on element nodes
+     */
+    if ((node != NULL) && (node->type != XML_ELEMENT_NODE))
+	node = NULL;
+
+    if (!xmlStrEqual(cur->href, XSLT_NAMESPACE)) {
+	URI = (const xmlChar *) xmlHashLookup(ctxt->style->nsAliases,
+					      cur->href);
+	if (URI == UNDEFINED_DEFAULT_NS)
+	    return(NULL);
+	if (URI != NULL) {
+	    ret = xmlNewNs(node, URI, cur->prefix);
+	} else {
+	    ret = xmlNewNs(node, cur->href, cur->prefix);
+	}
+    }
+    return(ret);
+}
+
+
+/**
+ * xsltFreeNamespaceAliasHashes:
+ * @style: an XSLT stylesheet
+ *
+ * Free up the memory used by namespaces aliases
+ */
+void
+xsltFreeNamespaceAliasHashes(xsltStylesheetPtr style) {
+    if (style->nsAliases != NULL)
+	xmlHashFree((xmlHashTablePtr) style->nsAliases, NULL);
+    style->nsAliases = NULL;
+}

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/namespaces.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/namespaces.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/namespaces.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,63 @@
+/*
+ * Summary: interface for the XSLT namespace handling
+ * Description: set of function easing the processing and generation
+ *              of namespace nodes in XSLT.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_NAMESPACES_H__
+#define __XML_XSLT_NAMESPACES_H__
+
+#include <libxml/tree.h>
+#include "xsltexports.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Used within nsAliases hashtable when the default namespace is required
+ * but it's not been explicitly defined
+ */
+#define	UNDEFINED_DEFAULT_NS	(const xmlChar *) -1L
+
+XSLTPUBFUN void XSLTCALL
+		xsltNamespaceAlias	(xsltStylesheetPtr style,
+					 xmlNodePtr node);
+XSLTPUBFUN xmlNsPtr XSLTCALL	
+		xsltGetNamespace	(xsltTransformContextPtr ctxt,
+					 xmlNodePtr cur,
+					 xmlNsPtr ns,
+					 xmlNodePtr out);
+XSLTPUBFUN xmlNsPtr XSLTCALL	
+		xsltGetPlainNamespace	(xsltTransformContextPtr ctxt,
+					 xmlNodePtr cur,
+					 xmlNsPtr ns,
+					 xmlNodePtr out);
+XSLTPUBFUN xmlNsPtr XSLTCALL	
+		xsltGetSpecialNamespace	(xsltTransformContextPtr ctxt,
+					 xmlNodePtr cur,
+					 const xmlChar *URI,
+					 const xmlChar *prefix,
+					 xmlNodePtr out);
+XSLTPUBFUN xmlNsPtr XSLTCALL	
+		xsltCopyNamespace	(xsltTransformContextPtr ctxt,
+					 xmlNodePtr node,
+					 xmlNsPtr cur);
+XSLTPUBFUN xmlNsPtr XSLTCALL	
+		xsltCopyNamespaceList	(xsltTransformContextPtr ctxt,
+					 xmlNodePtr node,
+					 xmlNsPtr cur);
+XSLTPUBFUN void XSLTCALL		
+		xsltFreeNamespaceAliasHashes
+					(xsltStylesheetPtr style);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_NAMESPACES_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/numbers.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/numbers.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/numbers.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1351 @@
+/*
+ * numbers.c: Implementation of the XSLT number functions
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ * Bjorn Reese <breese at users.sourceforge.net>
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <math.h>
+#include <limits.h>
+#include <float.h>
+#include <string.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/parserInternals.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/encoding.h>
+#include "xsltutils.h"
+#include "pattern.h"
+#include "templates.h"
+#include "transform.h"
+#include "numbersInternals.h"
+
+#ifndef FALSE
+# define FALSE (0 == 1)
+# define TRUE (1 == 1)
+#endif
+
+#define SYMBOL_QUOTE		((xmlChar)'\'')
+
+#define DEFAULT_TOKEN		(xmlChar)'0'
+#define DEFAULT_SEPARATOR	"."
+
+#define MAX_TOKENS		1024
+
+typedef struct _xsltFormatToken xsltFormatToken;
+typedef xsltFormatToken *xsltFormatTokenPtr;
+struct _xsltFormatToken {
+    xmlChar	*separator;
+    xmlChar	 token;
+    int		 width;
+};
+
+typedef struct _xsltFormat xsltFormat;
+typedef xsltFormat *xsltFormatPtr;
+struct _xsltFormat {
+    xmlChar		*start;
+    xsltFormatToken	 tokens[MAX_TOKENS];
+    int			 nTokens;
+    xmlChar		*end;
+};
+
+static char alpha_upper_list[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+static char alpha_lower_list[] = "abcdefghijklmnopqrstuvwxyz";
+static xsltFormatToken default_token;
+
+/*
+ * **** Start temp insert ****
+ *
+ * The following two routines (xsltUTF8Size and xsltUTF8Charcmp)
+ * will be replaced with calls to the corresponding libxml routines
+ * at a later date (when other inter-library dependencies require it)
+ */
+
+/**
+ * xsltUTF8Size:
+ * @utf: pointer to the UTF8 character
+ *
+ * returns the numbers of bytes in the character, -1 on format error
+ */
+static int
+xsltUTF8Size(xmlChar *utf) {
+    xmlChar mask;
+    int len;
+
+    if (utf == NULL)
+        return -1;
+    if (*utf < 0x80)
+        return 1;
+    /* check valid UTF8 character */
+    if (!(*utf & 0x40))
+        return -1;
+    /* determine number of bytes in char */
+    len = 2;
+    for (mask=0x20; mask != 0; mask>>=1) {
+        if (!(*utf & mask))
+            return len;
+        len++;
+    }
+    return -1;
+}
+
+/**
+ * xsltUTF8Charcmp
+ * @utf1: pointer to first UTF8 char
+ * @utf2: pointer to second UTF8 char
+ *
+ * returns result of comparing the two UCS4 values
+ * as with xmlStrncmp
+ */
+static int
+xsltUTF8Charcmp(xmlChar *utf1, xmlChar *utf2) {
+
+    if (utf1 == NULL ) {
+        if (utf2 == NULL)
+            return 0;
+        return -1;
+    }
+    return xmlStrncmp(utf1, utf2, xsltUTF8Size(utf1));
+}
+
+/***** Stop temp insert *****/
+/************************************************************************
+ *									*
+ *			Utility functions				*
+ *									*
+ ************************************************************************/
+
+#define IS_SPECIAL(self,letter)			\
+    ((xsltUTF8Charcmp((letter), (self)->zeroDigit) == 0)	    ||	\
+     (xsltUTF8Charcmp((letter), (self)->digit) == 0)	    ||	\
+     (xsltUTF8Charcmp((letter), (self)->decimalPoint) == 0)  ||	\
+     (xsltUTF8Charcmp((letter), (self)->grouping) == 0)	    ||	\
+     (xsltUTF8Charcmp((letter), (self)->patternSeparator) == 0))
+
+#define IS_DIGIT_ZERO(x) xsltIsDigitZero(x)
+#define IS_DIGIT_ONE(x) xsltIsDigitZero((xmlChar)(x)-1)
+
+static int
+xsltIsDigitZero(unsigned int ch)
+{
+    /*
+     * Reference: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt
+     */
+    switch (ch) {
+    case 0x0030: case 0x0660: case 0x06F0: case 0x0966:
+    case 0x09E6: case 0x0A66: case 0x0AE6: case 0x0B66:
+    case 0x0C66: case 0x0CE6: case 0x0D66: case 0x0E50:
+    case 0x0E60: case 0x0F20: case 0x1040: case 0x17E0:
+    case 0x1810: case 0xFF10:
+	return TRUE;
+    default:
+	return FALSE;
+    }
+}
+
+static void
+xsltNumberFormatDecimal(xmlBufferPtr buffer,
+			double number,
+			int digit_zero,
+			int width,
+			int digitsPerGroup,
+			int groupingCharacter,
+			int groupingCharacterLen)
+{
+    /*
+     * This used to be
+     *  xmlChar temp_string[sizeof(double) * CHAR_BIT * sizeof(xmlChar) + 4];
+     * which would be length 68 on x86 arch.  It was changed to be a longer,
+     * fixed length in order to try to cater for (reasonable) UTF8
+     * separators and numeric characters.  The max UTF8 char size will be
+     * 6 or less, so the value used [500] should be *much* larger than needed
+     */
+    xmlChar temp_string[500];
+    xmlChar *pointer;
+    xmlChar temp_char[6];
+    int i;
+    int val;
+    int len;
+
+    /* Build buffer from back */
+    pointer = &temp_string[sizeof(temp_string)] - 1;	/* last char */
+    *pointer = 0;
+    i = 0;
+    while (pointer > temp_string) {
+	if ((i >= width) && (fabs(number) < 1.0))
+	    break; /* for */
+	if ((i > 0) && (groupingCharacter != 0) &&
+	    (digitsPerGroup > 0) &&
+	    ((i % digitsPerGroup) == 0)) {
+	    if (pointer - groupingCharacterLen < temp_string) {
+	        i = -1;		/* flag error */
+		break;
+	    }
+	    pointer -= groupingCharacterLen;
+	    xmlCopyCharMultiByte(pointer, groupingCharacter);
+	}
+	
+	val = digit_zero + (int)fmod(number, 10.0);
+	if (val < 0x80) {			/* shortcut if ASCII */
+	    if (pointer <= temp_string) {	/* Check enough room */
+	        i = -1;
+		break;
+	    }
+	    *(--pointer) = val;
+	}
+	else {
+	/* 
+	 * Here we have a multibyte character.  It's a little messy,
+	 * because until we generate the char we don't know how long
+	 * it is.  So, we generate it into the buffer temp_char, then
+	 * copy from there into temp_string.
+	 */
+	    len = xmlCopyCharMultiByte(temp_char, val);
+	    if ( (pointer - len) < temp_string ) {
+	        i = -1;
+		break;
+	    }
+	    pointer -= len;
+	    memcpy(pointer, temp_char, len);
+	}
+	number /= 10.0;
+	++i;
+    }
+    if (i < 0)
+        xsltGenericError(xsltGenericErrorContext,
+		"xsltNumberFormatDecimal: Internal buffer size exceeded");
+    xmlBufferCat(buffer, pointer);
+}
+
+static void
+xsltNumberFormatAlpha(xmlBufferPtr buffer,
+		      double number,
+		      int is_upper)
+{
+    char temp_string[sizeof(double) * CHAR_BIT * sizeof(xmlChar) + 1];
+    char *pointer;
+    int i;
+    char *alpha_list;
+    double alpha_size = (double)(sizeof(alpha_upper_list) - 1);
+
+    /* Build buffer from back */
+    pointer = &temp_string[sizeof(temp_string)];
+    *(--pointer) = 0;
+    alpha_list = (is_upper) ? alpha_upper_list : alpha_lower_list;
+    
+    for (i = 1; i < (int)sizeof(temp_string); i++) {
+	number--;
+	*(--pointer) = alpha_list[((int)fmod(number, alpha_size))];
+	number /= alpha_size;
+	if (fabs(number) < 1.0)
+	    break; /* for */
+    }
+    xmlBufferCCat(buffer, pointer);
+}
+
+static void
+xsltNumberFormatRoman(xmlBufferPtr buffer,
+		      double number,
+		      int is_upper)
+{
+    /*
+     * Based on an example by Jim Walsh
+     */
+    while (number >= 1000.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "M" : "m");
+	number -= 1000.0;
+    }
+    if (number >= 900.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "CM" : "cm");
+	number -= 900.0;
+    }
+    while (number >= 500.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "D" : "d");
+	number -= 500.0;
+    }
+    if (number >= 400.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "CD" : "cd");
+	number -= 400.0;
+    }
+    while (number >= 100.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "C" : "c");
+	number -= 100.0;
+    }
+    if (number >= 90.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "XC" : "xc");
+	number -= 90.0;
+    }
+    while (number >= 50.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "L" : "l");
+	number -= 50.0;
+    }
+    if (number >= 40.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "XL" : "xl");
+	number -= 40.0;
+    }
+    while (number >= 10.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "X" : "x");
+	number -= 10.0;
+    }
+    if (number >= 9.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "IX" : "ix");
+	number -= 9.0;
+    }
+    while (number >= 5.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "V" : "v");
+	number -= 5.0;
+    }
+    if (number >= 4.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "IV" : "iv");
+	number -= 4.0;
+    }
+    while (number >= 1.0) {
+	xmlBufferCCat(buffer, (is_upper) ? "I" : "i");
+	number--;
+    }
+}
+
+static void
+xsltNumberFormatTokenize(const xmlChar *format,
+			 xsltFormatPtr tokens)
+{
+    int ix = 0;
+    int j;
+    int val;
+    int len;
+
+    default_token.token = DEFAULT_TOKEN;
+    default_token.width = 1;
+    default_token.separator = BAD_CAST(DEFAULT_SEPARATOR);
+
+
+    tokens->start = NULL;
+    tokens->tokens[0].separator = NULL;
+    tokens->end = NULL;
+
+    /*
+     * Insert initial non-alphanumeric token.
+     * There is always such a token in the list, even if NULL
+     */
+    while (! (IS_LETTER(val=xmlStringCurrentChar(NULL, format+ix, &len)) ||
+    	      IS_DIGIT(val)) ) {
+	if (format[ix] == 0)		/* if end of format string */
+	    break; /* while */
+	ix += len;
+    }
+    if (ix > 0)
+	tokens->start = xmlStrndup(format, ix);
+
+
+    for (tokens->nTokens = 0; tokens->nTokens < MAX_TOKENS;
+	 tokens->nTokens++) {
+	if (format[ix] == 0)
+	    break; /* for */
+
+	/*
+	 * separator has already been parsed (except for the first
+	 * number) in tokens->end, recover it.
+	 */
+	if (tokens->nTokens > 0) {
+	    tokens->tokens[tokens->nTokens].separator = tokens->end;
+	    tokens->end = NULL;
+	}
+
+	val = xmlStringCurrentChar(NULL, format+ix, &len);
+	if (IS_DIGIT_ONE(val) ||
+		 IS_DIGIT_ZERO(val)) {
+	    tokens->tokens[tokens->nTokens].width = 1;
+	    while (IS_DIGIT_ZERO(val)) {
+		tokens->tokens[tokens->nTokens].width++;
+		ix += len;
+		val = xmlStringCurrentChar(NULL, format+ix, &len);
+	    }
+	    if (IS_DIGIT_ONE(val)) {
+		tokens->tokens[tokens->nTokens].token = val - 1;
+		ix += len;
+		val = xmlStringCurrentChar(NULL, format+ix, &len);
+	    }
+	} else if ( (val == (xmlChar)'A') ||
+		    (val == (xmlChar)'a') ||
+		    (val == (xmlChar)'I') ||
+		    (val == (xmlChar)'i') ) {
+	    tokens->tokens[tokens->nTokens].token = val;
+	    ix += len;
+	    val = xmlStringCurrentChar(NULL, format+ix, &len);
+	} else {
+	    /* XSLT section 7.7
+	     * "Any other format token indicates a numbering sequence
+	     *  that starts with that token. If an implementation does
+	     *  not support a numbering sequence that starts with that
+	     *  token, it must use a format token of 1."
+	     */
+	    tokens->tokens[tokens->nTokens].token = (xmlChar)'0';
+	    tokens->tokens[tokens->nTokens].width = 1;
+	}
+	/*
+	 * Skip over remaining alphanumeric characters from the Nd
+	 * (Number, decimal digit), Nl (Number, letter), No (Number,
+	 * other), Lu (Letter, uppercase), Ll (Letter, lowercase), Lt
+	 * (Letters, titlecase), Lm (Letters, modifiers), and Lo
+	 * (Letters, other (uncased)) Unicode categories. This happens
+	 * to correspond to the Letter and Digit classes from XML (and
+	 * one wonders why XSLT doesn't refer to these instead).
+	 */
+	while (IS_LETTER(val) || IS_DIGIT(val)) {
+	    ix += len;
+	    val = xmlStringCurrentChar(NULL, format+ix, &len);
+	}
+
+	/*
+	 * Insert temporary non-alphanumeric final tooken.
+	 */
+	j = ix;
+	while (! (IS_LETTER(val) || IS_DIGIT(val))) {
+	    if (val == 0)
+		break; /* while */
+	    ix += len;
+	    val = xmlStringCurrentChar(NULL, format+ix, &len);
+	}
+	if (ix > j)
+	    tokens->end = xmlStrndup(&format[j], ix - j);
+    }
+}
+
+static void
+xsltNumberFormatInsertNumbers(xsltNumberDataPtr data,
+			      double *numbers,
+			      int numbers_max,
+			      xsltFormatPtr tokens,
+			      xmlBufferPtr buffer)
+{
+    int i = 0;
+    double number;
+    xsltFormatTokenPtr token;
+
+    /*
+     * Handle initial non-alphanumeric token
+     */
+    if (tokens->start != NULL)
+	 xmlBufferCat(buffer, tokens->start);
+
+    for (i = 0; i < numbers_max; i++) {
+	/* Insert number */
+	number = numbers[(numbers_max - 1) - i];
+	if (i < tokens->nTokens) {
+	  /*
+	   * The "n"th format token will be used to format the "n"th
+	   * number in the list
+	   */
+	  token = &(tokens->tokens[i]);
+	} else if (tokens->nTokens > 0) {
+	  /*
+	   * If there are more numbers than format tokens, then the
+	   * last format token will be used to format the remaining
+	   * numbers.
+	   */
+	  token = &(tokens->tokens[tokens->nTokens - 1]);
+	} else {
+	  /*
+	   * If there are no format tokens, then a format token of
+	   * 1 is used to format all numbers.
+	   */
+	  token = &default_token;
+	}
+
+	/* Print separator, except for the first number */
+	if (i > 0) {
+	    if (token->separator != NULL)
+		xmlBufferCat(buffer, token->separator);
+	    else
+		xmlBufferCCat(buffer, DEFAULT_SEPARATOR);
+	}
+
+	switch (xmlXPathIsInf(number)) {
+	case -1:
+	    xmlBufferCCat(buffer, "-Infinity");
+	    break;
+	case 1:
+	    xmlBufferCCat(buffer, "Infinity");
+	    break;
+	default:
+	    if (xmlXPathIsNaN(number)) {
+		xmlBufferCCat(buffer, "NaN");
+	    } else {
+
+		switch (token->token) {
+		case 'A':
+		    xsltNumberFormatAlpha(buffer,
+					  number,
+					  TRUE);
+
+		    break;
+		case 'a':
+		    xsltNumberFormatAlpha(buffer,
+					  number,
+					  FALSE);
+
+		    break;
+		case 'I':
+		    xsltNumberFormatRoman(buffer,
+					  number,
+					  TRUE);
+
+		    break;
+		case 'i':
+		    xsltNumberFormatRoman(buffer,
+					  number,
+					  FALSE);
+
+		    break;
+		default:
+		    if (IS_DIGIT_ZERO(token->token)) {
+			xsltNumberFormatDecimal(buffer,
+						number,
+						token->token,
+						token->width,
+						data->digitsPerGroup,
+						data->groupingCharacter,
+						data->groupingCharacterLen);
+		    }
+		    break;
+		}
+	    }
+
+	}
+    }
+
+    /*
+     * Handle final non-alphanumeric token
+     */
+    if (tokens->end != NULL)
+	 xmlBufferCat(buffer, tokens->end);
+
+}
+
+static int
+xsltNumberFormatGetAnyLevel(xsltTransformContextPtr context,
+			    xmlNodePtr node,
+			    const xmlChar *count,
+			    const xmlChar *from,
+			    double *array,
+			    xmlDocPtr doc,
+			    xmlNodePtr elem)
+{
+    int amount = 0;
+    int cnt = 0;
+    xmlNodePtr cur;
+    xsltCompMatchPtr countPat = NULL;
+    xsltCompMatchPtr fromPat = NULL;
+
+    if (count != NULL)
+	countPat = xsltCompilePattern(count, doc, elem, NULL, context);
+    if (from != NULL)
+	fromPat = xsltCompilePattern(from, doc, elem, NULL, context);
+	
+    /* select the starting node */
+    switch (node->type) {
+	case XML_ELEMENT_NODE:
+	    cur = node;
+	    break;
+	case XML_ATTRIBUTE_NODE:
+	    cur = ((xmlAttrPtr) node)->parent;
+	    break;
+	case XML_TEXT_NODE:
+	case XML_PI_NODE:
+	case XML_COMMENT_NODE:
+	    cur = node->parent;
+	    break;
+	default:
+	    cur = NULL;
+	    break;
+    }
+
+    while (cur != NULL) {
+	/* process current node */
+	if (count == NULL) {
+	    if ((node->type == cur->type) &&
+		/* FIXME: must use expanded-name instead of local name */
+		xmlStrEqual(node->name, cur->name)) {
+		    if ((node->ns == cur->ns) ||
+		        ((node->ns != NULL) &&
+			 (cur->ns != NULL) &&
+		         (xmlStrEqual(node->ns->href,
+		             cur->ns->href) )))
+		        cnt++;
+	    }
+	} else {
+	    if (xsltTestCompMatchList(context, cur, countPat))
+		cnt++;
+	}
+	if ((from != NULL) &&
+	    xsltTestCompMatchList(context, cur, fromPat)) {
+	    break; /* while */
+	}
+
+	/* Skip to next preceding or ancestor */
+	if ((cur->type == XML_DOCUMENT_NODE) ||
+#ifdef LIBXML_DOCB_ENABLED
+            (cur->type == XML_DOCB_DOCUMENT_NODE) ||
+#endif
+            (cur->type == XML_HTML_DOCUMENT_NODE))
+	    break; /* while */
+
+	while ((cur->prev != NULL) && ((cur->prev->type == XML_DTD_NODE) ||
+	       (cur->prev->type == XML_XINCLUDE_START) ||
+	       (cur->prev->type == XML_XINCLUDE_END)))
+	    cur = cur->prev;
+	if (cur->prev != NULL) {
+	    for (cur = cur->prev; cur->last != NULL; cur = cur->last);
+	} else {
+	    cur = cur->parent;
+	}
+
+    }
+
+    array[amount++] = (double) cnt;
+
+    if (countPat != NULL)
+	xsltFreeCompMatchList(countPat);
+    if (fromPat != NULL)
+	xsltFreeCompMatchList(fromPat);
+    return(amount);
+}
+
+static int
+xsltNumberFormatGetMultipleLevel(xsltTransformContextPtr context,
+				 xmlNodePtr node,
+				 const xmlChar *count,
+				 const xmlChar *from,
+				 double *array,
+				 int max,
+				 xmlDocPtr doc,
+				 xmlNodePtr elem)
+{
+    int amount = 0;
+    int cnt;
+    xmlNodePtr ancestor;
+    xmlNodePtr preceding;
+    xmlXPathParserContextPtr parser;
+    xsltCompMatchPtr countPat;
+    xsltCompMatchPtr fromPat;
+
+    if (count != NULL)
+	countPat = xsltCompilePattern(count, doc, elem, NULL, context);
+    else
+	countPat = NULL;
+    if (from != NULL)
+	fromPat = xsltCompilePattern(from, doc, elem, NULL, context);
+    else
+	fromPat = NULL;
+    context->xpathCtxt->node = node;
+    parser = xmlXPathNewParserContext(NULL, context->xpathCtxt);
+    if (parser) {
+	/* ancestor-or-self::*[count] */
+	for (ancestor = node;
+	     (ancestor != NULL) && (ancestor->type != XML_DOCUMENT_NODE);
+	     ancestor = xmlXPathNextAncestor(parser, ancestor)) {
+	    
+	    if ((from != NULL) &&
+		xsltTestCompMatchList(context, ancestor, fromPat))
+		break; /* for */
+	    
+	    if ((count == NULL && node->type == ancestor->type && 
+		xmlStrEqual(node->name, ancestor->name)) ||
+		xsltTestCompMatchList(context, ancestor, countPat)) {
+		/* count(preceding-sibling::*) */
+		cnt = 0;
+		for (preceding = ancestor;
+		     preceding != NULL;
+		     preceding = 
+		        xmlXPathNextPrecedingSibling(parser, preceding)) {
+		    if (count == NULL) {
+			if ((preceding->type == ancestor->type) &&
+			    xmlStrEqual(preceding->name, ancestor->name)){
+			    if ((preceding->ns == ancestor->ns) ||
+			        ((preceding->ns != NULL) &&
+				 (ancestor->ns != NULL) &&
+			         (xmlStrEqual(preceding->ns->href,
+			             ancestor->ns->href) )))
+			        cnt++;
+			}
+		    } else {
+			if (xsltTestCompMatchList(context, preceding,
+				                  countPat))
+			    cnt++;
+		    }
+		}
+		array[amount++] = (double)cnt;
+		if (amount >= max)
+		    break; /* for */
+	    }
+	}
+	xmlXPathFreeParserContext(parser);
+    }
+    xsltFreeCompMatchList(countPat);
+    xsltFreeCompMatchList(fromPat);
+    return amount;
+}
+
+static int
+xsltNumberFormatGetValue(xmlXPathContextPtr context,
+			 xmlNodePtr node,
+			 const xmlChar *value,
+			 double *number)
+{
+    int amount = 0;
+    xmlBufferPtr pattern;
+    xmlXPathObjectPtr obj;
+    
+    pattern = xmlBufferCreate();
+    if (pattern != NULL) {
+	xmlBufferCCat(pattern, "number(");
+	xmlBufferCat(pattern, value);
+	xmlBufferCCat(pattern, ")");
+	context->node = node;
+	obj = xmlXPathEvalExpression(xmlBufferContent(pattern),
+				     context);
+	if (obj != NULL) {
+	    *number = obj->floatval;
+	    amount++;
+	    xmlXPathFreeObject(obj);
+	}
+	xmlBufferFree(pattern);
+    }
+    return amount;
+}
+
+/**
+ * xsltNumberFormat:
+ * @ctxt: the XSLT transformation context
+ * @data: the formatting informations
+ * @node: the data to format
+ *
+ * Convert one number.
+ */
+void
+xsltNumberFormat(xsltTransformContextPtr ctxt,
+		 xsltNumberDataPtr data,
+		 xmlNodePtr node)
+{
+    xmlBufferPtr output = NULL;
+    int amount, i;
+    double number;
+    xsltFormat tokens;
+    int tempformat = 0;
+
+    if ((data->format == NULL) && (data->has_format != 0)) {
+	data->format = xsltEvalAttrValueTemplate(ctxt, data->node,
+					     (const xmlChar *) "format",
+					     XSLT_NAMESPACE);
+	tempformat = 1;
+    }
+    if (data->format == NULL) {
+	return;
+    }
+
+    output = xmlBufferCreate();
+    if (output == NULL)
+	goto XSLT_NUMBER_FORMAT_END;
+
+    xsltNumberFormatTokenize(data->format, &tokens);
+
+    /*
+     * Evaluate the XPath expression to find the value(s)
+     */
+    if (data->value) {
+	amount = xsltNumberFormatGetValue(ctxt->xpathCtxt,
+					  node,
+					  data->value,
+					  &number);
+	if (amount == 1) {
+	    xsltNumberFormatInsertNumbers(data,
+					  &number,
+					  1,
+					  &tokens,
+					  output);
+	}
+	
+    } else if (data->level) {
+	
+	if (xmlStrEqual(data->level, (const xmlChar *) "single")) {
+	    amount = xsltNumberFormatGetMultipleLevel(ctxt,
+						      node,
+						      data->count,
+						      data->from,
+						      &number,
+						      1,
+						      data->doc,
+						      data->node);
+	    if (amount == 1) {
+		xsltNumberFormatInsertNumbers(data,
+					      &number,
+					      1,
+					      &tokens,
+					      output);
+	    }
+	} else if (xmlStrEqual(data->level, (const xmlChar *) "multiple")) {
+	    double numarray[1024];
+	    int max = sizeof(numarray)/sizeof(numarray[0]);
+	    amount = xsltNumberFormatGetMultipleLevel(ctxt,
+						      node,
+						      data->count,
+						      data->from,
+						      numarray,
+						      max,
+						      data->doc,
+						      data->node);
+	    if (amount > 0) {
+		xsltNumberFormatInsertNumbers(data,
+					      numarray,
+					      amount,
+					      &tokens,
+					      output);
+	    }
+	} else if (xmlStrEqual(data->level, (const xmlChar *) "any")) {
+	    amount = xsltNumberFormatGetAnyLevel(ctxt,
+						 node,
+						 data->count,
+						 data->from,
+						 &number, 
+						 data->doc,
+						 data->node);
+	    if (amount > 0) {
+		xsltNumberFormatInsertNumbers(data,
+					      &number,
+					      1,
+					      &tokens,
+					      output);
+	    }
+	}
+    }
+    /* Insert number as text node */
+    xsltCopyTextString(ctxt, ctxt->insert, xmlBufferContent(output), 0);
+
+    if (tokens.start != NULL)
+	xmlFree(tokens.start);
+    if (tokens.end != NULL)
+	xmlFree(tokens.end);
+    for (i = 0;i < tokens.nTokens;i++) {
+	if (tokens.tokens[i].separator != NULL)
+	    xmlFree(tokens.tokens[i].separator);
+    }
+    
+XSLT_NUMBER_FORMAT_END:
+    if (tempformat == 1) {
+	/* The format need to be recomputed each time */
+	data->format = NULL;
+    }
+    if (output != NULL)
+	xmlBufferFree(output);
+}
+
+static int
+xsltFormatNumberPreSuffix(xsltDecimalFormatPtr self, xmlChar **format, xsltFormatNumberInfoPtr info)
+{
+    int	count=0;	/* will hold total length of prefix/suffix */
+    int len;
+
+    while (1) {
+	/* 
+	 * prefix / suffix ends at end of string or at 
+	 * first 'special' character 
+	 */
+	if (**format == 0)
+	    return count;
+	/* if next character 'escaped' just count it */
+	if (**format == SYMBOL_QUOTE) {
+	    if (*++(*format) == 0)
+		return -1;
+	}
+	else if (IS_SPECIAL(self, *format))
+	    return count;
+	/*
+	 * else treat percent/per-mille as special cases,
+	 * depending on whether +ve or -ve 
+	 */
+	else {
+	    /*
+	     * for +ve prefix/suffix, allow only a 
+	     * single occurence of either 
+	     */
+	    if (xsltUTF8Charcmp(*format, self->percent) == 0) {
+		if (info->is_multiplier_set)
+		    return -1;
+		info->multiplier = 100;
+		info->is_multiplier_set = TRUE;
+	    } else if (xsltUTF8Charcmp(*format, self->permille) == 0) {
+		if (info->is_multiplier_set)
+		    return -1;
+		info->multiplier = 1000;
+		info->is_multiplier_set = TRUE;
+	    }
+	}
+	
+	if ((len=xsltUTF8Size(*format)) < 1)
+	    return -1;
+	count += len;
+	*format += len;
+    }
+}
+	    
+/**
+ * xsltFormatNumberConversion:
+ * @self: the decimal format
+ * @format: the format requested
+ * @number: the value to format
+ * @result: the place to ouput the result
+ *
+ * format-number() uses the JDK 1.1 DecimalFormat class:
+ *
+ * http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html
+ *
+ * Structure:
+ *
+ *   pattern    := subpattern{;subpattern}
+ *   subpattern := {prefix}integer{.fraction}{suffix}
+ *   prefix     := '\\u0000'..'\\uFFFD' - specialCharacters
+ *   suffix     := '\\u0000'..'\\uFFFD' - specialCharacters
+ *   integer    := '#'* '0'* '0'
+ *   fraction   := '0'* '#'*
+ *
+ *   Notation:
+ *    X*       0 or more instances of X
+ *    (X | Y)  either X or Y.
+ *    X..Y     any character from X up to Y, inclusive.
+ *    S - T    characters in S, except those in T
+ *
+ * Special Characters:
+ *
+ *   Symbol Meaning
+ *   0      a digit
+ *   #      a digit, zero shows as absent
+ *   .      placeholder for decimal separator
+ *   ,      placeholder for grouping separator.
+ *   ;      separates formats.
+ *   -      default negative prefix.
+ *   %      multiply by 100 and show as percentage
+ *   ?      multiply by 1000 and show as per mille
+ *   X      any other characters can be used in the prefix or suffix
+ *   '      used to quote special characters in a prefix or suffix.
+ *
+ * Returns a possible XPath error
+ */
+xmlXPathError
+xsltFormatNumberConversion(xsltDecimalFormatPtr self,
+			   xmlChar *format,
+			   double number,
+			   xmlChar **result)
+{
+    xmlXPathError status = XPATH_EXPRESSION_OK;
+    xmlBufferPtr buffer;
+    xmlChar *the_format, *prefix = NULL, *suffix = NULL;
+    xmlChar *nprefix, *nsuffix = NULL;
+    xmlChar pchar;
+    int	    prefix_length, suffix_length = 0, nprefix_length, nsuffix_length;
+    double  scale;
+    int	    j, len;
+    int     self_grouping_len;
+    xsltFormatNumberInfo format_info;
+    /* 
+     * delayed_multiplier allows a 'trailing' percent or
+     * permille to be treated as suffix 
+     */
+    int		delayed_multiplier = 0;
+    /* flag to show no -ve format present for -ve number */
+    char	default_sign = 0;
+    /* flag to show error found, should use default format */
+    char	found_error = 0;
+
+    if (xmlStrlen(format) <= 0) {
+	xsltTransformError(NULL, NULL, NULL,
+                "xsltFormatNumberConversion : "
+		"Invalid format (0-length)\n");
+    }
+    *result = NULL;
+    switch (xmlXPathIsInf(number)) {
+	case -1:
+	    if (self->minusSign == NULL)
+		*result = xmlStrdup(BAD_CAST "-");
+	    else
+		*result = xmlStrdup(self->minusSign);
+	    /* no-break on purpose */
+	case 1:
+	    if ((self == NULL) || (self->infinity == NULL))
+		*result = xmlStrcat(*result, BAD_CAST "Infinity");
+	    else
+		*result = xmlStrcat(*result, self->infinity);
+	    return(status);
+	default:
+	    if (xmlXPathIsNaN(number)) {
+		if ((self == NULL) || (self->noNumber == NULL))
+		    *result = xmlStrdup(BAD_CAST "NaN");
+		else
+		    *result = xmlStrdup(self->noNumber);
+		return(status);
+	    }
+    }
+
+    buffer = xmlBufferCreate();
+    if (buffer == NULL) {
+	return XPATH_MEMORY_ERROR;
+    }
+
+    format_info.integer_hash = 0;
+    format_info.integer_digits = 0;
+    format_info.frac_digits = 0;
+    format_info.frac_hash = 0;
+    format_info.group = -1;
+    format_info.multiplier = 1;
+    format_info.add_decimal = FALSE;
+    format_info.is_multiplier_set = FALSE;
+    format_info.is_negative_pattern = FALSE;
+
+    the_format = format;
+
+    /*
+     * First we process the +ve pattern to get percent / permille,
+     * as well as main format 
+     */
+    prefix = the_format;
+    prefix_length = xsltFormatNumberPreSuffix(self, &the_format, &format_info);
+    if (prefix_length < 0) {
+	found_error = 1;
+	goto OUTPUT_NUMBER;
+    }
+
+    /* 
+     * Here we process the "number" part of the format.  It gets 
+     * a little messy because of the percent/per-mille - if that
+     * appears at the end, it may be part of the suffix instead 
+     * of part of the number, so the variable delayed_multiplier 
+     * is used to handle it 
+     */
+    self_grouping_len = xmlStrlen(self->grouping);
+    while ((*the_format != 0) &&
+	   (xsltUTF8Charcmp(the_format, self->decimalPoint) != 0) &&
+	   (xsltUTF8Charcmp(the_format, self->patternSeparator) != 0)) {
+	
+	if (delayed_multiplier != 0) {
+	    format_info.multiplier = delayed_multiplier;
+	    format_info.is_multiplier_set = TRUE;
+	    delayed_multiplier = 0;
+	}
+	if (xsltUTF8Charcmp(the_format, self->digit) == 0) {
+	    if (format_info.integer_digits > 0) {
+		found_error = 1;
+		goto OUTPUT_NUMBER;
+	    }
+	    format_info.integer_hash++;
+	    if (format_info.group >= 0)
+		format_info.group++;
+	} else if (xsltUTF8Charcmp(the_format, self->zeroDigit) == 0) {
+	    format_info.integer_digits++;
+	    if (format_info.group >= 0)
+		format_info.group++;
+	} else if ((self_grouping_len > 0) &&
+	    (!xmlStrncmp(the_format, self->grouping, self_grouping_len))) {
+	    /* Reset group count */
+	    format_info.group = 0;
+	    the_format += self_grouping_len;
+	    continue;
+	} else if (xsltUTF8Charcmp(the_format, self->percent) == 0) {
+	    if (format_info.is_multiplier_set) {
+		found_error = 1;
+		goto OUTPUT_NUMBER;
+	    }
+	    delayed_multiplier = 100;
+	} else  if (xsltUTF8Charcmp(the_format, self->permille) == 0) {
+	    if (format_info.is_multiplier_set) {
+		found_error = 1;
+		goto OUTPUT_NUMBER;
+	    }
+	    delayed_multiplier = 1000;
+	} else
+	    break; /* while */
+	
+	if ((len=xsltUTF8Size(the_format)) < 1) {
+	    found_error = 1;
+	    goto OUTPUT_NUMBER;
+	}
+	the_format += len;
+
+    }
+
+    /* We have finished the integer part, now work on fraction */
+    if (xsltUTF8Charcmp(the_format, self->decimalPoint) == 0) {
+        format_info.add_decimal = TRUE;
+	the_format += xsltUTF8Size(the_format);	/* Skip over the decimal */
+    }
+    
+    while (*the_format != 0) {
+	
+	if (xsltUTF8Charcmp(the_format, self->zeroDigit) == 0) {
+	    if (format_info.frac_hash != 0) {
+		found_error = 1;
+		goto OUTPUT_NUMBER;
+	    }
+	    format_info.frac_digits++;
+	} else if (xsltUTF8Charcmp(the_format, self->digit) == 0) {
+	    format_info.frac_hash++;
+	} else if (xsltUTF8Charcmp(the_format, self->percent) == 0) {
+	    if (format_info.is_multiplier_set) {
+		found_error = 1;
+		goto OUTPUT_NUMBER;
+	    }
+	    delayed_multiplier = 100;
+	    if ((len = xsltUTF8Size(the_format)) < 1) {
+	        found_error = 1;
+		goto OUTPUT_NUMBER;
+	    }
+	    the_format += len;
+	    continue; /* while */
+	} else if (xsltUTF8Charcmp(the_format, self->permille) == 0) {
+	    if (format_info.is_multiplier_set) {
+		found_error = 1;
+		goto OUTPUT_NUMBER;
+	    }
+	    delayed_multiplier = 1000;
+	    if  ((len = xsltUTF8Size(the_format)) < 1) {
+	        found_error = 1;
+		goto OUTPUT_NUMBER;
+	    }
+	    the_format += len;
+	    continue; /* while */
+	} else if (xsltUTF8Charcmp(the_format, self->grouping) != 0) {
+	    break; /* while */
+	}
+	if ((len = xsltUTF8Size(the_format)) < 1) {
+	    found_error = 1;
+	    goto OUTPUT_NUMBER;
+	}
+	the_format += len;
+	if (delayed_multiplier != 0) {
+	    format_info.multiplier = delayed_multiplier;
+	    delayed_multiplier = 0;
+	    format_info.is_multiplier_set = TRUE;
+	}
+    }
+
+    /* 
+     * If delayed_multiplier is set after processing the 
+     * "number" part, should be in suffix 
+     */
+    if (delayed_multiplier != 0) {
+	the_format -= len;
+	delayed_multiplier = 0;
+    }
+
+    suffix = the_format;
+    suffix_length = xsltFormatNumberPreSuffix(self, &the_format, &format_info);
+    if ( (suffix_length < 0) ||
+	 ((*the_format != 0) && 
+	  (xsltUTF8Charcmp(the_format, self->patternSeparator) != 0)) ) {
+	found_error = 1;
+	goto OUTPUT_NUMBER;
+    }
+
+    /*
+     * We have processed the +ve prefix, number part and +ve suffix.
+     * If the number is -ve, we must substitute the -ve prefix / suffix
+     */
+    if (number < 0) {
+        /*
+	 * Note that j is the number of UTF8 chars before the separator,
+	 * not the number of bytes! (bug 151975)
+	 */
+        j =  xmlUTF8Strloc(format, self->patternSeparator);
+	if (j < 0) {
+	/* No -ve pattern present, so use default signing */
+	    default_sign = 1;
+	}
+	else {
+	    /* Skip over pattern separator (accounting for UTF8) */
+	    the_format = (xmlChar *)xmlUTF8Strpos(format, j + 1);
+	    /* 
+	     * Flag changes interpretation of percent/permille 
+	     * in -ve pattern 
+	     */
+	    format_info.is_negative_pattern = TRUE;
+	    format_info.is_multiplier_set = FALSE;
+
+	    /* First do the -ve prefix */
+	    nprefix = the_format;
+	    nprefix_length = xsltFormatNumberPreSuffix(self, 
+	    				&the_format, &format_info);
+	    if (nprefix_length<0) {
+		found_error = 1;
+		goto OUTPUT_NUMBER;
+	    }
+
+	    while (*the_format != 0) {
+		if ( (xsltUTF8Charcmp(the_format, (self)->percent) == 0) ||
+		     (xsltUTF8Charcmp(the_format, (self)->permille)== 0) ) {
+		    if (format_info.is_multiplier_set) {
+			found_error = 1;
+			goto OUTPUT_NUMBER;
+		    }
+		    format_info.is_multiplier_set = TRUE;
+		    delayed_multiplier = 1;
+		}
+		else if (IS_SPECIAL(self, the_format))
+		    delayed_multiplier = 0;
+		else
+		    break; /* while */
+		if ((len = xsltUTF8Size(the_format)) < 1) {
+		    found_error = 1;
+		    goto OUTPUT_NUMBER;
+		}
+		the_format += len;
+	    }
+	    if (delayed_multiplier != 0) {
+		format_info.is_multiplier_set = FALSE;
+		the_format -= len;
+	    }
+
+	    /* Finally do the -ve suffix */
+	    if (*the_format != 0) {
+		nsuffix = the_format;
+		nsuffix_length = xsltFormatNumberPreSuffix(self, 
+					&the_format, &format_info);
+		if (nsuffix_length < 0) {
+		    found_error = 1;
+		    goto OUTPUT_NUMBER;
+		}
+	    }
+	    else
+		nsuffix_length = 0;
+	    if (*the_format != 0) {
+		found_error = 1;
+		goto OUTPUT_NUMBER;
+	    }
+	    /*
+	     * Here's another Java peculiarity:
+	     * if -ve prefix/suffix == +ve ones, discard & use default
+	     */
+	    if ((nprefix_length != prefix_length) ||
+	    	(nsuffix_length != suffix_length) ||
+		((nprefix_length > 0) && 
+		 (xmlStrncmp(nprefix, prefix, prefix_length) !=0 )) ||
+		((nsuffix_length > 0) && 
+		 (xmlStrncmp(nsuffix, suffix, suffix_length) !=0 ))) {
+	 	prefix = nprefix;
+		prefix_length = nprefix_length;
+		suffix = nsuffix;
+		suffix_length = nsuffix_length;
+	    } /* else {
+		default_sign = 1;
+	    }
+	    */
+	}
+    }
+
+OUTPUT_NUMBER:
+    if (found_error != 0) {
+	xsltTransformError(NULL, NULL, NULL,
+                "xsltFormatNumberConversion : "
+		"error in format string '%s', using default\n", format);
+	default_sign = (number < 0.0) ? 1 : 0;
+	prefix_length = suffix_length = 0;
+	format_info.integer_hash = 0;
+	format_info.integer_digits = 1;
+	format_info.frac_digits = 1;
+	format_info.frac_hash = 4;
+	format_info.group = -1;
+	format_info.multiplier = 1;
+	format_info.add_decimal = TRUE;
+    }
+
+    /* Ready to output our number.  First see if "default sign" is required */
+    if (default_sign != 0)
+	xmlBufferAdd(buffer, self->minusSign, xsltUTF8Size(self->minusSign));
+
+    /* Put the prefix into the buffer */
+    for (j = 0; j < prefix_length; j++) {
+	if ((pchar = *prefix++) == SYMBOL_QUOTE) {
+	    len = xsltUTF8Size(prefix);
+	    xmlBufferAdd(buffer, prefix, len);
+	    prefix += len;
+	    j += len - 1;	/* length of symbol less length of quote */
+	} else
+	    xmlBufferAdd(buffer, &pchar, 1);
+    }
+
+    /* Next do the integer part of the number */
+    number = fabs(number) * (double)format_info.multiplier;
+    scale = pow(10.0, (double)(format_info.frac_digits + format_info.frac_hash));
+    number = floor((scale * number + 0.5)) / scale;
+    if ((self->grouping != NULL) && 
+        (self->grouping[0] != 0)) {
+	
+	len = xmlStrlen(self->grouping);
+	pchar = xsltGetUTF8Char(self->grouping, &len);
+	xsltNumberFormatDecimal(buffer, floor(number), self->zeroDigit[0],
+				format_info.integer_digits,
+				format_info.group,
+				pchar, len);
+    } else
+	xsltNumberFormatDecimal(buffer, floor(number), self->zeroDigit[0],
+				format_info.integer_digits,
+				format_info.group,
+				',', 1);
+
+    /* Special case: java treats '.#' like '.0', '.##' like '.0#', etc. */
+    if ((format_info.integer_digits + format_info.integer_hash +
+	 format_info.frac_digits == 0) && (format_info.frac_hash > 0)) {
+        ++format_info.frac_digits;
+	--format_info.frac_hash;
+    }
+
+    /* Add leading zero, if required */
+    if ((floor(number) == 0) &&
+	(format_info.integer_digits + format_info.frac_digits == 0)) {
+        xmlBufferAdd(buffer, self->zeroDigit, xsltUTF8Size(self->zeroDigit));
+    }
+
+    /* Next the fractional part, if required */
+    if (format_info.frac_digits + format_info.frac_hash == 0) {
+        if (format_info.add_decimal)
+	    xmlBufferAdd(buffer, self->decimalPoint, 
+	    		 xsltUTF8Size(self->decimalPoint));
+    }
+    else {
+      number -= floor(number);
+	if ((number != 0) || (format_info.frac_digits != 0)) {
+	    xmlBufferAdd(buffer, self->decimalPoint,
+	    		 xsltUTF8Size(self->decimalPoint));
+	    number = floor(scale * number + 0.5);
+	    for (j = format_info.frac_hash; j > 0; j--) {
+		if (fmod(number, 10.0) >= 1.0)
+		    break; /* for */
+		number /= 10.0;
+	    }
+	    xsltNumberFormatDecimal(buffer, floor(number), self->zeroDigit[0],
+				format_info.frac_digits + j,
+				0, 0, 0);
+	}
+    }
+    /* Put the suffix into the buffer */
+    for (j = 0; j < suffix_length; j++) {
+	if ((pchar = *suffix++) == SYMBOL_QUOTE) {
+            len = xsltUTF8Size(suffix);
+	    xmlBufferAdd(buffer, suffix, len);
+	    suffix += len;
+	    j += len - 1;	/* length of symbol less length of escape */
+	} else
+	    xmlBufferAdd(buffer, &pchar, 1);
+    }
+
+    *result = xmlStrdup(xmlBufferContent(buffer));
+    xmlBufferFree(buffer);
+    return status;
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/numbersInternals.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/numbersInternals.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/numbersInternals.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,69 @@
+/*
+ * Summary: Implementation of the XSLT number functions
+ * Description: Implementation of the XSLT number functions
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Bjorn Reese <breese at users.sourceforge.net> and Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_NUMBERSINTERNALS_H__
+#define __XML_XSLT_NUMBERSINTERNALS_H__
+
+#include <libxml/tree.h>
+#include "xsltexports.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xsltNumberData:
+ *
+ * This data structure is just a wrapper to pass xsl:number data in.
+ */
+typedef struct _xsltNumberData xsltNumberData;
+typedef xsltNumberData *xsltNumberDataPtr;
+    
+struct _xsltNumberData {
+    const xmlChar *level;
+    const xmlChar *count;
+    const xmlChar *from;
+    const xmlChar *value;
+    const xmlChar *format;
+    int has_format;
+    int digitsPerGroup;
+    int groupingCharacter;
+    int groupingCharacterLen;
+    xmlDocPtr doc;
+    xmlNodePtr node;
+
+    /*
+     * accelerators
+     */
+};
+
+/**
+ * xsltFormatNumberInfo,:
+ *
+ * This data structure lists the various parameters needed to format numbers.
+ */
+typedef struct _xsltFormatNumberInfo xsltFormatNumberInfo;
+typedef xsltFormatNumberInfo *xsltFormatNumberInfoPtr;
+
+struct _xsltFormatNumberInfo {
+    int	    integer_hash;	/* Number of '#' in integer part */
+    int	    integer_digits;	/* Number of '0' in integer part */
+    int	    frac_digits;	/* Number of '0' in fractional part */
+    int	    frac_hash;		/* Number of '#' in fractional part */
+    int	    group;		/* Number of chars per display 'group' */
+    int     multiplier;		/* Scaling for percent or permille */
+    char    add_decimal;	/* Flag for whether decimal point appears in pattern */
+    char    is_multiplier_set;	/* Flag to catch multiple occurences of percent/permille */
+    char    is_negative_pattern;/* Flag for processing -ve prefix/suffix */
+};
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __XML_XSLT_NUMBERSINTERNALS_H__ */

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/pattern.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/pattern.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/pattern.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2469 @@
+/*
+ * pattern.c: Implemetation of the template match compilation and lookup
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+/*
+ * TODO: handle pathological cases like *[*[@a="b"]]
+ * TODO: detect [number] at compilation, optimize accordingly
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/valid.h>
+#include <libxml/hash.h>
+#include <libxml/xmlerror.h>
+#include <libxml/parserInternals.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "imports.h"
+#include "templates.h"
+#include "keys.h"
+#include "pattern.h"
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_PATTERN
+#endif
+
+/*
+ * Types are private:
+ */
+
+typedef enum {
+    XSLT_OP_END=0,
+    XSLT_OP_ROOT,
+    XSLT_OP_ELEM,
+    XSLT_OP_CHILD,
+    XSLT_OP_ATTR,
+    XSLT_OP_PARENT,
+    XSLT_OP_ANCESTOR,
+    XSLT_OP_ID,
+    XSLT_OP_KEY,
+    XSLT_OP_NS,
+    XSLT_OP_ALL,
+    XSLT_OP_PI,
+    XSLT_OP_COMMENT,
+    XSLT_OP_TEXT,
+    XSLT_OP_NODE,
+    XSLT_OP_PREDICATE
+} xsltOp;
+
+typedef struct _xsltStepState xsltStepState;
+typedef xsltStepState *xsltStepStatePtr;
+struct _xsltStepState {
+    int step;
+    xmlNodePtr node;
+};
+
+typedef struct _xsltStepStates xsltStepStates;
+typedef xsltStepStates *xsltStepStatesPtr;
+struct _xsltStepStates {
+    int nbstates;
+    int maxstates;
+    xsltStepStatePtr states;
+};
+
+typedef struct _xsltStepOp xsltStepOp;
+typedef xsltStepOp *xsltStepOpPtr;
+struct _xsltStepOp {
+    xsltOp op;
+    xmlChar *value;
+    xmlChar *value2;
+    xmlChar *value3;
+    xmlXPathCompExprPtr comp;
+    /*
+     * Optimisations for count
+     */
+    int        previousExtra;
+    int        indexExtra;
+    int        lenExtra;
+};
+
+struct _xsltCompMatch {
+    struct _xsltCompMatch *next; /* siblings in the name hash */
+    float priority;              /* the priority */
+    const xmlChar *pattern;       /* the pattern */
+    const xmlChar *mode;         /* the mode */
+    const xmlChar *modeURI;      /* the mode URI */
+    xsltTemplatePtr template;    /* the associated template */
+
+    int direct;
+    /* TODO fix the statically allocated size steps[] */
+    int nbStep;
+    int maxStep;
+    xmlNsPtr *nsList;		/* the namespaces in scope */
+    int nsNr;			/* the number of namespaces in scope */
+    xsltStepOp steps[40];        /* ops for computation */
+};
+
+typedef struct _xsltParserContext xsltParserContext;
+typedef xsltParserContext *xsltParserContextPtr;
+struct _xsltParserContext {
+    xsltStylesheetPtr style;		/* the stylesheet */
+    xsltTransformContextPtr ctxt;	/* the transformation or NULL */
+    const xmlChar *cur;			/* the current char being parsed */
+    const xmlChar *base;		/* the full expression */
+    xmlDocPtr      doc;			/* the source document */
+    xmlNodePtr    elem;			/* the source element */
+    int error;				/* error code */
+    xsltCompMatchPtr comp;		/* the result */
+};
+
+/************************************************************************
+ * 									*
+ * 			Type functions 					*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltNewCompMatch:
+ *
+ * Create a new XSLT CompMatch
+ *
+ * Returns the newly allocated xsltCompMatchPtr or NULL in case of error
+ */
+static xsltCompMatchPtr
+xsltNewCompMatch(void) {
+    xsltCompMatchPtr cur;
+
+    cur = (xsltCompMatchPtr) xmlMalloc(sizeof(xsltCompMatch));
+    if (cur == NULL) {
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltNewCompMatch : malloc failed\n");
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltCompMatch));
+    cur->maxStep = 40;
+    cur->nsNr = 0;
+    cur->nsList = NULL;
+    cur->direct = 0;
+    return(cur);
+}
+
+/**
+ * xsltFreeCompMatch:
+ * @comp:  an XSLT comp
+ *
+ * Free up the memory allocated by @comp
+ */
+static void
+xsltFreeCompMatch(xsltCompMatchPtr comp) {
+    xsltStepOpPtr op;
+    int i;
+
+    if (comp == NULL)
+	return;
+    if (comp->pattern != NULL)
+	xmlFree((xmlChar *)comp->pattern);
+    if (comp->nsList != NULL)
+	xmlFree(comp->nsList);
+    for (i = 0;i < comp->nbStep;i++) {
+	op = &comp->steps[i];
+	if (op->value != NULL)
+	    xmlFree(op->value);
+	if (op->value2 != NULL)
+	    xmlFree(op->value2);
+	if (op->value3 != NULL)
+	    xmlFree(op->value3);
+	if (op->comp != NULL)
+	    xmlXPathFreeCompExpr(op->comp);
+    }
+    memset(comp, -1, sizeof(xsltCompMatch));
+    xmlFree(comp);
+}
+
+/**
+ * xsltFreeCompMatchList:
+ * @comp:  an XSLT comp list
+ *
+ * Free up the memory allocated by all the elements of @comp
+ */
+void
+xsltFreeCompMatchList(xsltCompMatchPtr comp) {
+    xsltCompMatchPtr cur;
+
+    while (comp != NULL) {
+	cur = comp;
+	comp = comp->next;
+	xsltFreeCompMatch(cur);
+    }
+}
+
+/**
+ * xsltNormalizeCompSteps:
+ * @payload: pointer to template hash table entry
+ * @data: pointer to the stylesheet
+ * @name: template match name
+ *
+ * This is a hashtable scanner function to normalize the compiled
+ * steps of an imported stylesheet.
+ */
+void xsltNormalizeCompSteps(void *payload,
+        void *data, const xmlChar *name ATTRIBUTE_UNUSED) {
+    xsltCompMatchPtr comp = payload;
+    xsltStylesheetPtr style = data;
+    int ix;
+
+    for (ix = 0; ix < comp->nbStep; ix++) {
+        comp->steps[ix].previousExtra += style->extrasNr;
+        comp->steps[ix].indexExtra += style->extrasNr;
+        comp->steps[ix].lenExtra += style->extrasNr;
+    }
+}
+
+/**
+ * xsltNewParserContext:
+ * @style:  the stylesheet
+ * @ctxt:  the transformation context, if done at run-time
+ *
+ * Create a new XSLT ParserContext
+ *
+ * Returns the newly allocated xsltParserContextPtr or NULL in case of error
+ */
+static xsltParserContextPtr
+xsltNewParserContext(xsltStylesheetPtr style, xsltTransformContextPtr ctxt) {
+    xsltParserContextPtr cur;
+
+    cur = (xsltParserContextPtr) xmlMalloc(sizeof(xsltParserContext));
+    if (cur == NULL) {
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltNewParserContext : malloc failed\n");
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltParserContext));
+    cur->style = style;
+    cur->ctxt = ctxt;
+    return(cur);
+}
+
+/**
+ * xsltFreeParserContext:
+ * @ctxt:  an XSLT parser context
+ *
+ * Free up the memory allocated by @ctxt
+ */
+static void
+xsltFreeParserContext(xsltParserContextPtr ctxt) {
+    if (ctxt == NULL)
+	return;
+    memset(ctxt, -1, sizeof(xsltParserContext));
+    xmlFree(ctxt);
+}
+
+/**
+ * xsltCompMatchAdd:
+ * @comp:  the compiled match expression
+ * @op:  an op
+ * @value:  the first value
+ * @value2:  the second value
+ * @novar:  flag to set XML_XPATH_NOVAR
+ *
+ * Add an step to an XSLT Compiled Match
+ *
+ * Returns -1 in case of failure, 0 otherwise.
+ */
+static int
+xsltCompMatchAdd(xsltParserContextPtr ctxt, xsltCompMatchPtr comp,
+                 xsltOp op, xmlChar * value, xmlChar * value2, int novar)
+{
+    if (comp->nbStep >= 40) {
+        xsltTransformError(NULL, NULL, NULL,
+                         "xsltCompMatchAdd: overflow\n");
+        return (-1);
+    }
+    comp->steps[comp->nbStep].op = op;
+    comp->steps[comp->nbStep].value = value;
+    comp->steps[comp->nbStep].value2 = value2;
+    if (ctxt->ctxt != NULL) {
+	comp->steps[comp->nbStep].previousExtra =
+	    xsltAllocateExtraCtxt(ctxt->ctxt);
+	comp->steps[comp->nbStep].indexExtra =
+	    xsltAllocateExtraCtxt(ctxt->ctxt);
+	comp->steps[comp->nbStep].lenExtra =
+	    xsltAllocateExtraCtxt(ctxt->ctxt);
+    } else {
+	comp->steps[comp->nbStep].previousExtra =
+	    xsltAllocateExtra(ctxt->style);
+	comp->steps[comp->nbStep].indexExtra =
+	    xsltAllocateExtra(ctxt->style);
+	comp->steps[comp->nbStep].lenExtra =
+	    xsltAllocateExtra(ctxt->style);
+    }
+    if (op == XSLT_OP_PREDICATE) {
+	xmlXPathContextPtr xctxt;
+
+	if (ctxt->style != NULL)
+	    xctxt = xmlXPathNewContext(ctxt->style->doc);
+	else
+	    xctxt = xmlXPathNewContext(NULL);
+#ifdef XML_XPATH_NOVAR
+	if (novar != 0)
+	    xctxt->flags = XML_XPATH_NOVAR;
+#endif
+	if (ctxt->style != NULL)
+	    xctxt->dict = ctxt->style->dict;
+	comp->steps[comp->nbStep].comp = xmlXPathCtxtCompile(xctxt, value);
+	xmlXPathFreeContext(xctxt);
+	if (comp->steps[comp->nbStep].comp == NULL) {
+	    xsltTransformError(NULL, ctxt->style, ctxt->elem,
+		    "Failed to compile predicate\n");
+	    if (ctxt->style != NULL)
+		ctxt->style->errors++;
+	}
+    }
+    comp->nbStep++;
+    return (0);
+}
+
+/**
+ * xsltSwapTopCompMatch:
+ * @comp:  the compiled match expression
+ *
+ * reverse the two top steps.
+ */
+static void
+xsltSwapTopCompMatch(xsltCompMatchPtr comp) {
+    int i;
+    int j = comp->nbStep - 1;
+
+    if (j > 0) {
+	register xmlChar *tmp;
+	register xsltOp op;
+	register xmlXPathCompExprPtr expr; 
+	i = j - 1;
+	tmp = comp->steps[i].value;
+	comp->steps[i].value = comp->steps[j].value;
+	comp->steps[j].value = tmp;
+	tmp = comp->steps[i].value2;
+	comp->steps[i].value2 = comp->steps[j].value2;
+	comp->steps[j].value2 = tmp;
+	op = comp->steps[i].op;
+	comp->steps[i].op = comp->steps[j].op;
+	comp->steps[j].op = op;
+	expr = comp->steps[i].comp;
+	comp->steps[i].comp = comp->steps[j].comp;
+	comp->steps[j].comp = expr;
+    }
+}
+
+/**
+ * xsltReverseCompMatch:
+ * @comp:  the compiled match expression
+ *
+ * reverse all the stack of expressions
+ */
+static void
+xsltReverseCompMatch(xsltCompMatchPtr comp) {
+    int i = 0;
+    int j = comp->nbStep - 1;
+
+    while (j > i) {
+	register xmlChar *tmp;
+	register xsltOp op;
+	register xmlXPathCompExprPtr expr; 
+	tmp = comp->steps[i].value;
+	comp->steps[i].value = comp->steps[j].value;
+	comp->steps[j].value = tmp;
+	tmp = comp->steps[i].value2;
+	comp->steps[i].value2 = comp->steps[j].value2;
+	comp->steps[j].value2 = tmp;
+	op = comp->steps[i].op;
+	comp->steps[i].op = comp->steps[j].op;
+	comp->steps[j].op = op;
+	expr = comp->steps[i].comp;
+	comp->steps[i].comp = comp->steps[j].comp;
+	comp->steps[j].comp = expr;
+	j--;
+	i++;
+    }
+    comp->steps[comp->nbStep++].op = XSLT_OP_END;
+    /*
+     * detect consecutive XSLT_OP_PREDICATE indicating a direct
+     * matching should be done.
+     */
+    for (i = 0;i < comp->nbStep - 1;i++) {
+        if ((comp->steps[i].op == XSLT_OP_PREDICATE) &&
+	    (comp->steps[i + 1].op == XSLT_OP_PREDICATE)) {
+
+	    comp->direct = 1;
+	    if (comp->pattern[0] != '/') {
+		xmlChar *query;
+
+		query = xmlStrdup((const xmlChar *)"//");
+		query = xmlStrcat(query, comp->pattern);
+
+		xmlFree((xmlChar *) comp->pattern);
+		comp->pattern = query;
+	    }
+	    break;
+	}
+    }
+}
+
+/************************************************************************
+ * 									*
+ * 		The interpreter for the precompiled patterns		*
+ * 									*
+ ************************************************************************/
+
+static int
+xsltPatPushState(xsltStepStates *states, int step, xmlNodePtr node) {
+    if ((states->states == NULL) || (states->maxstates <= 0)) {
+        states->maxstates = 4;
+	states->nbstates = 0;
+	states->states = xmlMalloc(4 * sizeof(xsltStepState));
+    }
+    else if (states->maxstates <= states->nbstates) {
+        xsltStepState *tmp;
+
+	tmp = (xsltStepStatePtr) xmlRealloc(states->states,
+			       2 * states->maxstates * sizeof(xsltStepState));
+	if (tmp == NULL)
+	    return(-1);
+	states->states = tmp;
+	states->maxstates *= 2;
+    }
+    states->states[states->nbstates].step = step;
+    states->states[states->nbstates++].node = node;
+#if 0
+    fprintf(stderr, "Push: %d, %s\n", step, node->name);
+#endif
+    return(0);
+}
+
+/**
+ * xsltTestCompMatchDirect:
+ * @ctxt:  a XSLT process context
+ * @comp: the precompiled pattern
+ * @node: a node
+ *
+ * Test whether the node matches the pattern, do a direct evalutation
+ * and not a step by step evaluation.
+ *
+ * Returns 1 if it matches, 0 if it doesn't and -1 in case of failure
+ */
+static int
+xsltTestCompMatchDirect(xsltTransformContextPtr ctxt, xsltCompMatchPtr comp,
+	                xmlNodePtr node) {
+    xsltStepOpPtr sel = NULL;
+    xmlDocPtr prevdoc;
+    xmlDocPtr doc;
+    xmlXPathObjectPtr list;
+    int ix, j;
+    int nocache = 0;
+    int isRVT;
+
+    doc = node->doc;
+    if ((doc != NULL) &&
+	(doc->name != NULL) &&
+	(doc->name[0] == ' ') &&
+	(xmlStrEqual(BAD_CAST doc->name,
+		     BAD_CAST " fake node libxslt")))
+	isRVT = 1;
+    else
+	isRVT = 0;
+    sel = &comp->steps[0]; /* store extra in first step arbitrarily */
+
+    prevdoc = (xmlDocPtr)
+	XSLT_RUNTIME_EXTRA(ctxt, sel->previousExtra, ptr);
+    ix = XSLT_RUNTIME_EXTRA(ctxt, sel->indexExtra, ival);
+    list = (xmlXPathObjectPtr)
+	XSLT_RUNTIME_EXTRA_LST(ctxt, sel->lenExtra);
+    
+    if ((list == NULL) || (prevdoc != doc)) {
+	xmlXPathObjectPtr newlist;
+	xmlNodePtr parent = node->parent;
+	xmlDocPtr olddoc;
+	xmlNodePtr oldnode;
+
+	oldnode = ctxt->xpathCtxt->node;
+	olddoc = ctxt->xpathCtxt->doc;
+	ctxt->xpathCtxt->node = node;
+	ctxt->xpathCtxt->doc = doc;
+	newlist = xmlXPathEval(comp->pattern, ctxt->xpathCtxt);
+	ctxt->xpathCtxt->node = oldnode;
+	ctxt->xpathCtxt->doc = olddoc;
+	if (newlist == NULL)
+	    return(-1);
+	if (newlist->type != XPATH_NODESET) {
+	    xmlXPathFreeObject(newlist);
+	    return(-1);
+	}
+	ix = 0;
+
+	if ((parent == NULL) || (node->doc == NULL) || isRVT)
+	    nocache = 1;
+	
+	if (nocache == 0) {
+	    if (list != NULL)
+		xmlXPathFreeObject(list);
+	    list = newlist;
+
+	    XSLT_RUNTIME_EXTRA_LST(ctxt, sel->lenExtra) =
+		(void *) list;
+	    XSLT_RUNTIME_EXTRA(ctxt, sel->previousExtra, ptr) =
+		(void *) doc;
+	    XSLT_RUNTIME_EXTRA(ctxt, sel->indexExtra, ival) =
+		0;
+	    XSLT_RUNTIME_EXTRA_FREE(ctxt, sel->lenExtra) =
+		(xmlFreeFunc) xmlXPathFreeObject;
+	} else
+	    list = newlist;
+    }
+    if ((list->nodesetval == NULL) ||
+	(list->nodesetval->nodeNr <= 0)) {
+	if (nocache == 1)
+	    xmlXPathFreeObject(list);
+	return(0);
+    }
+    /* TODO: store the index and use it for the scan */
+    if (ix == 0) {
+	for (j = 0;j < list->nodesetval->nodeNr;j++) {
+	    if (list->nodesetval->nodeTab[j] == node) {
+		if (nocache == 1)
+		    xmlXPathFreeObject(list);
+		return(1);
+	    }
+	}
+    } else {
+    }
+    if (nocache == 1)
+	xmlXPathFreeObject(list);
+    return(0);
+}
+
+/**
+ * xsltTestCompMatch:
+ * @ctxt:  a XSLT process context
+ * @comp: the precompiled pattern
+ * @node: a node
+ * @mode:  the mode name or NULL
+ * @modeURI:  the mode URI or NULL
+ *
+ * Test whether the node matches the pattern
+ *
+ * Returns 1 if it matches, 0 if it doesn't and -1 in case of failure
+ */
+static int
+xsltTestCompMatch(xsltTransformContextPtr ctxt, xsltCompMatchPtr comp,
+	          xmlNodePtr node, const xmlChar *mode,
+		  const xmlChar *modeURI) {
+    int i;
+    xsltStepOpPtr step, sel = NULL;
+    xsltStepStates states = {0, 0, NULL}; /* // may require backtrack */
+
+    if ((comp == NULL) || (node == NULL) || (ctxt == NULL)) {
+	xsltTransformError(ctxt, NULL, node,
+		"xsltTestCompMatch: null arg\n");
+        return(-1);
+    }
+    if (mode != NULL) {
+	if (comp->mode == NULL)
+	    return(0);
+	/*
+	 * both mode strings must be interned on the stylesheet dictionary
+	 */
+	if (comp->mode != mode)
+	    return(0);
+    } else {
+	if (comp->mode != NULL)
+	    return(0);
+    }
+    if (modeURI != NULL) {
+	if (comp->modeURI == NULL)
+	    return(0);
+	/*
+	 * both modeURI strings must be interned on the stylesheet dictionary
+	 */
+	if (comp->modeURI != modeURI)
+	    return(0);
+    } else {
+	if (comp->modeURI != NULL)
+	    return(0);
+    }
+
+    i = 0;
+restart:
+    for (;i < comp->nbStep;i++) {
+	step = &comp->steps[i];
+	if (step->op != XSLT_OP_PREDICATE)
+	    sel = step;
+	switch (step->op) {
+            case XSLT_OP_END:
+		goto found;
+            case XSLT_OP_ROOT:
+		if ((node->type == XML_DOCUMENT_NODE) ||
+#ifdef LIBXML_DOCB_ENABLED
+		    (node->type == XML_DOCB_DOCUMENT_NODE) ||
+#endif
+		    (node->type == XML_HTML_DOCUMENT_NODE))
+		    continue;
+		if ((node->type == XML_ELEMENT_NODE) && (node->name[0] == ' '))
+		    continue;
+		goto rollback;
+            case XSLT_OP_ELEM:
+		if (node->type != XML_ELEMENT_NODE)
+		    goto rollback;
+		if (step->value == NULL)
+		    continue;
+		if (step->value[0] != node->name[0])
+		    goto rollback;
+		if (!xmlStrEqual(step->value, node->name))
+		    goto rollback;
+
+		/* Namespace test */
+		if (node->ns == NULL) {
+		    if (step->value2 != NULL)
+			goto rollback;
+		} else if (node->ns->href != NULL) {
+		    if (step->value2 == NULL)
+			goto rollback;
+		    if (!xmlStrEqual(step->value2, node->ns->href))
+			goto rollback;
+		}
+		continue;
+            case XSLT_OP_CHILD: {
+		xmlNodePtr lst;
+
+		if ((node->type != XML_ELEMENT_NODE) &&
+		    (node->type != XML_DOCUMENT_NODE) &&
+#ifdef LIBXML_DOCB_ENABLED
+		    (node->type != XML_DOCB_DOCUMENT_NODE) &&
+#endif
+		    (node->type != XML_HTML_DOCUMENT_NODE))
+		    goto rollback;
+
+		lst = node->children;
+
+		if (step->value != NULL) {
+		    while (lst != NULL) {
+			if ((lst->type == XML_ELEMENT_NODE) &&
+			    (step->value[0] == lst->name[0]) &&
+			    (xmlStrEqual(step->value, lst->name)))
+			    break;
+			lst = lst->next;
+		    }
+		    if (lst != NULL)
+			continue;
+		}
+		goto rollback;
+	    }
+            case XSLT_OP_ATTR:
+		if (node->type != XML_ATTRIBUTE_NODE)
+		    goto rollback;
+		if (step->value != NULL) {
+		    if (step->value[0] != node->name[0])
+			goto rollback;
+		    if (!xmlStrEqual(step->value, node->name))
+			goto rollback;
+		}
+		/* Namespace test */
+		if (node->ns == NULL) {
+		    if (step->value2 != NULL)
+			goto rollback;
+		} else if (step->value2 != NULL) {
+		    if (!xmlStrEqual(step->value2, node->ns->href))
+			goto rollback;
+		}
+		continue;
+            case XSLT_OP_PARENT:
+		if ((node->type == XML_DOCUMENT_NODE) ||
+		    (node->type == XML_HTML_DOCUMENT_NODE) ||
+#ifdef LIBXML_DOCB_ENABLED
+		    (node->type == XML_DOCB_DOCUMENT_NODE) ||
+#endif
+		    (node->type == XML_NAMESPACE_DECL))
+		    goto rollback;
+		node = node->parent;
+		if (node == NULL)
+		    goto rollback;
+		if (step->value == NULL)
+		    continue;
+		if (step->value[0] != node->name[0])
+		    goto rollback;
+		if (!xmlStrEqual(step->value, node->name))
+		    goto rollback;
+		/* Namespace test */
+		if (node->ns == NULL) {
+		    if (step->value2 != NULL)
+			goto rollback;
+		} else if (node->ns->href != NULL) {
+		    if (step->value2 == NULL)
+			goto rollback;
+		    if (!xmlStrEqual(step->value2, node->ns->href))
+			goto rollback;
+		}
+		continue;
+            case XSLT_OP_ANCESTOR:
+		/* TODO: implement coalescing of ANCESTOR/NODE ops */
+		if (step->value == NULL) {
+		    step = &comp->steps[i+1];
+		    if (step->op == XSLT_OP_ROOT)
+			goto found;
+		    /* added NS, ID and KEY as a result of bug 168208 */
+		    if ((step->op != XSLT_OP_ELEM) && 
+			(step->op != XSLT_OP_ALL) && 
+			(step->op != XSLT_OP_NS) &&
+			(step->op != XSLT_OP_ID) &&
+			(step->op != XSLT_OP_KEY))
+			goto rollback;
+		}
+		if (node == NULL)
+		    goto rollback;
+		if ((node->type == XML_DOCUMENT_NODE) ||
+		    (node->type == XML_HTML_DOCUMENT_NODE) ||
+#ifdef LIBXML_DOCB_ENABLED
+		    (node->type == XML_DOCB_DOCUMENT_NODE) ||
+#endif
+		    (node->type == XML_NAMESPACE_DECL))
+		    goto rollback;
+		node = node->parent;
+		if ((step->op != XSLT_OP_ELEM) && step->op != XSLT_OP_ALL) {
+		    xsltPatPushState(&states, i, node);
+		    continue;
+		}
+		i++;
+		if (step->value == NULL) {
+		    xsltPatPushState(&states, i - 1, node);
+		    continue;
+		}
+		while (node != NULL) {
+		    if ((node->type == XML_ELEMENT_NODE) &&
+			(step->value[0] == node->name[0]) &&
+			(xmlStrEqual(step->value, node->name))) {
+			/* Namespace test */
+			if (node->ns == NULL) {
+			    if (step->value2 == NULL)
+				break;
+			} else if (node->ns->href != NULL) {
+			    if ((step->value2 != NULL) &&
+			        (xmlStrEqual(step->value2, node->ns->href)))
+				break;
+			}
+		    }
+		    node = node->parent;
+		}
+		if (node == NULL)
+		    goto rollback;
+		xsltPatPushState(&states, i - 1, node);
+		continue;
+            case XSLT_OP_ID: {
+		/* TODO Handle IDs decently, must be done differently */
+		xmlAttrPtr id;
+
+		if (node->type != XML_ELEMENT_NODE)
+		    goto rollback;
+
+		id = xmlGetID(node->doc, step->value);
+		if ((id == NULL) || (id->parent != node))
+		    goto rollback;
+		break;
+	    }
+            case XSLT_OP_KEY: {
+		xmlNodeSetPtr list;
+		int indx;
+
+		list = xsltGetKey(ctxt, step->value,
+			          step->value3, step->value2);
+		if (list == NULL)
+		    goto rollback;
+		for (indx = 0;indx < list->nodeNr;indx++)
+		    if (list->nodeTab[indx] == node)
+			break;
+		if (indx >= list->nodeNr)
+		    goto rollback;
+		break;
+	    }
+            case XSLT_OP_NS:
+		if (node->type != XML_ELEMENT_NODE)
+		    goto rollback;
+		if (node->ns == NULL) {
+		    if (step->value != NULL)
+			goto rollback;
+		} else if (node->ns->href != NULL) {
+		    if (step->value == NULL)
+			goto rollback;
+		    if (!xmlStrEqual(step->value, node->ns->href))
+			goto rollback;
+		}
+		break;
+            case XSLT_OP_ALL:
+		if (node->type != XML_ELEMENT_NODE)
+		    goto rollback;
+		break;
+	    case XSLT_OP_PREDICATE: {
+		xmlNodePtr oldNode;
+		xmlDocPtr doc;
+		int oldCS, oldCP;
+		int pos = 0, len = 0;
+		int isRVT;
+
+		/*
+		 * when there is cascading XSLT_OP_PREDICATE, then use a
+		 * direct computation approach. It's not done directly
+		 * at the beginning of the routine to filter out as much
+		 * as possible this costly computation.
+		 */
+		if (comp->direct) {
+		    if (states.states != NULL) {
+			/* Free the rollback states */
+			xmlFree(states.states);
+		    }
+		    return(xsltTestCompMatchDirect(ctxt, comp, node));
+		}
+
+		doc = node->doc;
+		if ((doc != NULL) &&
+		    (doc->name != NULL) &&
+		    (doc->name[0] == ' ') &&
+		    (xmlStrEqual(BAD_CAST doc->name,
+		    		 BAD_CAST " fake node libxslt")))
+		    isRVT = 1;
+		else
+		    isRVT = 0;
+
+		/*
+		 * Depending on the last selection, one may need to
+		 * recompute contextSize and proximityPosition.
+		 */
+		oldCS = ctxt->xpathCtxt->contextSize;
+		oldCP = ctxt->xpathCtxt->proximityPosition;
+		if ((sel != NULL) &&
+		    (sel->op == XSLT_OP_ELEM) &&
+		    (sel->value != NULL) &&
+		    (node->type == XML_ELEMENT_NODE) &&
+		    (node->parent != NULL)) {
+		    xmlNodePtr previous;
+		    int ix, nocache = 0;
+
+		    previous = (xmlNodePtr)
+			XSLT_RUNTIME_EXTRA(ctxt, sel->previousExtra, ptr);
+		    ix = XSLT_RUNTIME_EXTRA(ctxt, sel->indexExtra, ival);
+		    if ((previous != NULL) &&
+			(previous->parent == node->parent)) {
+			/*
+			 * just walk back to adjust the index
+			 */
+			int indx = 0;
+			xmlNodePtr sibling = node;
+
+			while (sibling != NULL) {
+			    if (sibling == previous)
+				break;
+			    if ((previous->type == XML_ELEMENT_NODE) &&
+				(previous->name != NULL) &&
+				(sibling->name != NULL) &&
+				(previous->name[0] == sibling->name[0]) &&
+				(xmlStrEqual(previous->name, sibling->name))) {
+				if ((sel->value2 == NULL) ||
+				    ((sibling->ns != NULL) &&
+				     (xmlStrEqual(sel->value2,
+						  sibling->ns->href))))
+				    indx++;
+			    }
+			    sibling = sibling->prev;
+			}
+			if (sibling == NULL) {
+			    /* hum going backward in document order ... */
+			    indx = 0;
+			    sibling = node;
+			    while (sibling != NULL) {
+				if (sibling == previous)
+				    break;
+				if ((sel->value2 == NULL) ||
+				    ((sibling->ns != NULL) &&
+				     (xmlStrEqual(sel->value2,
+						  sibling->ns->href))))
+				    indx--;
+				sibling = sibling->next;
+			    }
+			}
+			if (sibling != NULL) {
+			    pos = ix + indx;
+			    /*
+			     * If the node is in a Value Tree we need to
+			     * save len, but cannot cache the node!
+			     * (bugs 153137 and 158840)
+			     */
+			    if (node->doc != NULL) {
+				len = XSLT_RUNTIME_EXTRA(ctxt,
+				        sel->lenExtra, ival);
+				if (!isRVT) {
+				    XSLT_RUNTIME_EXTRA(ctxt,
+					sel->previousExtra, ptr) = node;
+				    XSLT_RUNTIME_EXTRA(ctxt,
+				        sel->indexExtra, ival) = pos;
+				}
+			    }
+			    ix = pos;
+			} else
+			    pos = 0;
+		    } else {
+			/*
+			 * recompute the index
+			 */
+			xmlNodePtr siblings = node->parent->children;
+			xmlNodePtr parent = node->parent;
+
+			while (siblings != NULL) {
+			    if (siblings->type == XML_ELEMENT_NODE) {
+				if (siblings == node) {
+				    len++;
+				    pos = len;
+				} else if ((node->name != NULL) &&
+					   (siblings->name != NULL) &&
+				    (node->name[0] == siblings->name[0]) &&
+				    (xmlStrEqual(node->name, siblings->name))) {
+				    if ((sel->value2 == NULL) ||
+					((siblings->ns != NULL) &&
+					 (xmlStrEqual(sel->value2,
+						      siblings->ns->href))))
+					len++;
+				}
+			    }
+			    siblings = siblings->next;
+			}
+			if ((parent == NULL) || (node->doc == NULL))
+			    nocache = 1;
+			else {
+			    while (parent->parent != NULL)
+				parent = parent->parent;
+			    if (((parent->type != XML_DOCUMENT_NODE) &&
+				 (parent->type != XML_HTML_DOCUMENT_NODE)) ||
+				 (parent != (xmlNodePtr) node->doc))
+				nocache = 1;
+			}
+		    }
+		    if (pos != 0) {
+			ctxt->xpathCtxt->contextSize = len;
+			ctxt->xpathCtxt->proximityPosition = pos;
+			/*
+			 * If the node is in a Value Tree we cannot
+			 * cache it !
+			 */
+			if ((!isRVT) && (node->doc != NULL) &&
+			    (nocache == 0)) {
+			    XSLT_RUNTIME_EXTRA(ctxt, sel->previousExtra, ptr) =
+				node;
+			    XSLT_RUNTIME_EXTRA(ctxt, sel->indexExtra, ival) =
+				pos;
+			    XSLT_RUNTIME_EXTRA(ctxt, sel->lenExtra, ival) =
+				len;
+			}
+		    }
+		} else if ((sel != NULL) && (sel->op == XSLT_OP_ALL) &&
+			   (node->type == XML_ELEMENT_NODE)) {
+		    xmlNodePtr previous;
+		    int ix, nocache = 0;
+
+		    previous = (xmlNodePtr)
+			XSLT_RUNTIME_EXTRA(ctxt, sel->previousExtra, ptr);
+		    ix = XSLT_RUNTIME_EXTRA(ctxt, sel->indexExtra, ival);
+		    if ((previous != NULL) &&
+			(previous->parent == node->parent)) {
+			/*
+			 * just walk back to adjust the index
+			 */
+			int indx = 0;
+			xmlNodePtr sibling = node;
+
+			while (sibling != NULL) {
+			    if (sibling == previous)
+				break;
+			    if (sibling->type == XML_ELEMENT_NODE)
+				indx++;
+			    sibling = sibling->prev;
+			}
+			if (sibling == NULL) {
+			    /* hum going backward in document order ... */
+			    indx = 0;
+			    sibling = node;
+			    while (sibling != NULL) {
+				if (sibling == previous)
+				    break;
+				if (sibling->type == XML_ELEMENT_NODE)
+				    indx--;
+				sibling = sibling->next;
+			    }
+			}
+			if (sibling != NULL) {
+			    pos = ix + indx;
+			    /*
+			     * If the node is in a Value Tree we cannot
+			     * cache it !
+			     */
+			    if ((node->doc != NULL) && !isRVT) {
+				len = XSLT_RUNTIME_EXTRA(ctxt,
+				        sel->lenExtra, ival);
+				XSLT_RUNTIME_EXTRA(ctxt,
+					sel->previousExtra, ptr) = node;
+				XSLT_RUNTIME_EXTRA(ctxt,
+					sel->indexExtra, ival) = pos;
+			    }
+			} else
+			    pos = 0;
+		    } else {
+			/*
+			 * recompute the index
+			 */
+			xmlNodePtr siblings = node->parent->children;
+			xmlNodePtr parent = node->parent;
+
+			while (siblings != NULL) {
+			    if (siblings->type == XML_ELEMENT_NODE) {
+				len++;
+				if (siblings == node) {
+				    pos = len;
+				}
+			    }
+			    siblings = siblings->next;
+			}
+			if ((parent == NULL) || (node->doc == NULL))
+			    nocache = 1;
+			else {
+			    while (parent->parent != NULL)
+				parent = parent->parent;
+			    if (((parent->type != XML_DOCUMENT_NODE) &&
+				 (parent->type != XML_HTML_DOCUMENT_NODE)) ||
+				 (parent != (xmlNodePtr) node->doc))
+				nocache = 1;
+			}
+		    }
+		    if (pos != 0) {
+			ctxt->xpathCtxt->contextSize = len;
+			ctxt->xpathCtxt->proximityPosition = pos;
+			/*
+			 * If the node is in a Value Tree we cannot
+			 * cache it !
+			 */
+			if ((node->doc != NULL) && (nocache == 0) && !isRVT) {
+			    XSLT_RUNTIME_EXTRA(ctxt, sel->previousExtra, ptr) =
+				node;
+			    XSLT_RUNTIME_EXTRA(ctxt, sel->indexExtra, ival) =
+				pos;
+			    XSLT_RUNTIME_EXTRA(ctxt, sel->lenExtra, ival) =
+				len;
+			}
+		    }
+		}
+		oldNode = ctxt->node;
+		ctxt->node = node;
+
+		if (step->value == NULL)
+		    goto wrong_index;
+		if (step->comp == NULL)
+		    goto wrong_index;
+
+		if (!xsltEvalXPathPredicate(ctxt, step->comp, comp->nsList,
+			                    comp->nsNr))
+		    goto wrong_index;
+
+		if (pos != 0) {
+		    ctxt->xpathCtxt->contextSize = oldCS;
+		    ctxt->xpathCtxt->proximityPosition = oldCP;
+		}
+		ctxt->node = oldNode;
+		break;
+wrong_index:
+		if (pos != 0) {
+		    ctxt->xpathCtxt->contextSize = oldCS;
+		    ctxt->xpathCtxt->proximityPosition = oldCP;
+		}
+		ctxt->node = oldNode;
+		goto rollback;
+	    }
+            case XSLT_OP_PI:
+		if (node->type != XML_PI_NODE)
+		    goto rollback;
+		if (step->value != NULL) {
+		    if (!xmlStrEqual(step->value, node->name))
+			goto rollback;
+		}
+		break;
+            case XSLT_OP_COMMENT:
+		if (node->type != XML_COMMENT_NODE)
+		    goto rollback;
+		break;
+            case XSLT_OP_TEXT:
+		if ((node->type != XML_TEXT_NODE) &&
+		    (node->type != XML_CDATA_SECTION_NODE))
+		    goto rollback;
+		break;
+            case XSLT_OP_NODE:
+		switch (node->type) {
+		    case XML_ELEMENT_NODE:
+		    case XML_CDATA_SECTION_NODE:
+		    case XML_PI_NODE:
+		    case XML_COMMENT_NODE:
+		    case XML_TEXT_NODE:
+			break;
+		    default:
+			goto rollback;
+		}
+		break;
+	}
+    }
+found:
+    if (states.states != NULL) {
+        /* Free the rollback states */
+	xmlFree(states.states);
+    }
+    return(1);
+rollback:
+    /* got an error try to rollback */
+    if (states.states == NULL)
+	return(0);
+    if (states.nbstates <= 0) {
+	xmlFree(states.states);
+	return(0);
+    }
+    states.nbstates--;
+    i = states.states[states.nbstates].step;
+    node = states.states[states.nbstates].node;
+#if 0
+    fprintf(stderr, "Pop: %d, %s\n", i, node->name);
+#endif
+    goto restart;
+}
+
+/**
+ * xsltTestCompMatchList:
+ * @ctxt:  a XSLT process context
+ * @node: a node
+ * @comp: the precompiled pattern list
+ *
+ * Test whether the node matches one of the patterns in the list
+ *
+ * Returns 1 if it matches, 0 if it doesn't and -1 in case of failure
+ */
+int
+xsltTestCompMatchList(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	              xsltCompMatchPtr comp) {
+    int ret;
+
+    if ((ctxt == NULL) || (node == NULL))
+	return(-1);
+    while (comp != NULL) {
+	ret = xsltTestCompMatch(ctxt, comp, node, NULL, NULL);
+	if (ret == 1)
+	    return(1);
+	comp = comp->next;
+    }
+    return(0);
+}
+
+/************************************************************************
+ *									*
+ *			Dedicated parser for templates			*
+ *									*
+ ************************************************************************/
+
+#define CUR (*ctxt->cur)
+#define SKIP(val) ctxt->cur += (val)
+#define NXT(val) ctxt->cur[(val)]
+#define CUR_PTR ctxt->cur
+
+#define SKIP_BLANKS 							\
+    while (IS_BLANK_CH(CUR)) NEXT
+
+#define CURRENT (*ctxt->cur)
+#define NEXT ((*ctxt->cur) ?  ctxt->cur++: ctxt->cur)
+
+
+#define PUSH(op, val, val2, novar) 						\
+    if (xsltCompMatchAdd(ctxt, ctxt->comp, (op), (val), (val2), (novar))) goto error;
+
+#define SWAP() 						\
+    xsltSwapTopCompMatch(ctxt->comp);
+
+#define XSLT_ERROR(X)							\
+    { xsltError(ctxt, __FILE__, __LINE__, X);			\
+      ctxt->error = (X); return; }
+
+#define XSLT_ERROR0(X)							\
+    { xsltError(ctxt, __FILE__, __LINE__, X);			\
+      ctxt->error = (X); return(0); }
+
+/**
+ * xsltScanLiteral:
+ * @ctxt:  the XPath Parser context
+ *
+ * Parse an XPath Litteral:
+ *
+ * [29] Literal ::= '"' [^"]* '"'
+ *                | "'" [^']* "'"
+ *
+ * Returns the Literal parsed or NULL
+ */
+
+static xmlChar *
+xsltScanLiteral(xsltParserContextPtr ctxt) {
+    const xmlChar *q, *cur;
+    xmlChar *ret = NULL;
+    int val, len;
+
+    SKIP_BLANKS;
+    if (CUR == '"') {
+        NEXT;
+	cur = q = CUR_PTR;
+	val = xmlStringCurrentChar(NULL, cur, &len);
+	while ((IS_CHAR(val)) && (val != '"')) {
+	    cur += len;
+	    val = xmlStringCurrentChar(NULL, cur, &len);
+	}
+	if (!IS_CHAR(val)) {
+	    ctxt->error = 1;
+	    return(NULL);
+	} else {
+	    ret = xmlStrndup(q, cur - q);
+        }
+	cur += len;
+	CUR_PTR = cur;
+    } else if (CUR == '\'') {
+        NEXT;
+	cur = q = CUR_PTR;
+	val = xmlStringCurrentChar(NULL, cur, &len);
+	while ((IS_CHAR(val)) && (val != '\'')) {
+	    cur += len;
+	    val = xmlStringCurrentChar(NULL, cur, &len);
+	}
+	if (!IS_CHAR(val)) {
+	    ctxt->error = 1;
+	    return(NULL);
+	} else {
+	    ret = xmlStrndup(q, cur - q);
+        }
+	cur += len;
+	CUR_PTR = cur;
+    } else {
+	/* XP_ERROR(XPATH_START_LITERAL_ERROR); */
+	ctxt->error = 1;
+	return(NULL);
+    }
+    return(ret);
+}
+
+/**
+ * xsltScanName:
+ * @ctxt:  the XPath Parser context
+ *
+ * [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | 
+ *                  CombiningChar | Extender
+ *
+ * [5] Name ::= (Letter | '_' | ':') (NameChar)*
+ *
+ * [6] Names ::= Name (S Name)*
+ *
+ * Returns the Name parsed or NULL
+ */
+
+static xmlChar *
+xsltScanName(xsltParserContextPtr ctxt) {
+    const xmlChar *q, *cur;
+    xmlChar *ret = NULL;
+    int val, len;
+
+    SKIP_BLANKS;
+
+    cur = q = CUR_PTR;
+    val = xmlStringCurrentChar(NULL, cur, &len);
+    if (!IS_LETTER(val) && (val != '_') && (val != ':'))
+	return(NULL);
+
+    while ((IS_LETTER(val)) || (IS_DIGIT(val)) ||
+           (val == '.') || (val == '-') ||
+	   (val == '_') || 
+	   (IS_COMBINING(val)) ||
+	   (IS_EXTENDER(val))) {
+	cur += len;
+	val = xmlStringCurrentChar(NULL, cur, &len);
+    }
+    ret = xmlStrndup(q, cur - q);
+    CUR_PTR = cur;
+    return(ret);
+}
+
+/**
+ * xsltScanNCName:
+ * @ctxt:  the XPath Parser context
+ *
+ * Parses a non qualified name
+ *
+ * Returns the Name parsed or NULL
+ */
+
+static xmlChar *
+xsltScanNCName(xsltParserContextPtr ctxt) {
+    const xmlChar *q, *cur;
+    xmlChar *ret = NULL;
+    int val, len;
+
+    SKIP_BLANKS;
+
+    cur = q = CUR_PTR;
+    val = xmlStringCurrentChar(NULL, cur, &len);
+    if (!IS_LETTER(val) && (val != '_'))
+	return(NULL);
+
+    while ((IS_LETTER(val)) || (IS_DIGIT(val)) ||
+           (val == '.') || (val == '-') ||
+	   (val == '_') ||
+	   (IS_COMBINING(val)) ||
+	   (IS_EXTENDER(val))) {
+	cur += len;
+	val = xmlStringCurrentChar(NULL, cur, &len);
+    }
+    ret = xmlStrndup(q, cur - q);
+    CUR_PTR = cur;
+    return(ret);
+}
+
+/**
+ * xsltScanQName:
+ * @ctxt:  the XPath Parser context
+ * @prefix:  the place to store the prefix
+ *
+ * Parse a qualified name
+ *
+ * Returns the Name parsed or NULL
+ */
+
+static xmlChar *
+xsltScanQName(xsltParserContextPtr ctxt, xmlChar **prefix) {
+    xmlChar *ret = NULL;
+
+    *prefix = NULL;
+    ret = xsltScanNCName(ctxt);
+    if (CUR == ':') {
+        *prefix = ret;
+	NEXT;
+	ret = xsltScanNCName(ctxt);
+    }
+    return(ret);
+}
+
+/*
+ * xsltCompileIdKeyPattern:
+ * @ctxt:  the compilation context
+ * @name:  a preparsed name
+ * @aid:  whether id/key are allowed there
+ * @novar:  flag to prohibit xslt var
+ *
+ * Compile the XSLT LocationIdKeyPattern
+ * [3] IdKeyPattern ::= 'id' '(' Literal ')'
+ *                    | 'key' '(' Literal ',' Literal ')'
+ *
+ * also handle NodeType and PI from:
+ *
+ * [7]  NodeTest ::= NameTest
+ *                 | NodeType '(' ')'
+ *                 | 'processing-instruction' '(' Literal ')'
+ */
+static void
+xsltCompileIdKeyPattern(xsltParserContextPtr ctxt, xmlChar *name,
+		int aid, int novar) {
+    xmlChar *lit = NULL;
+    xmlChar *lit2 = NULL;
+
+    if (CUR != '(') {
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltCompileIdKeyPattern : ( expected\n");
+	ctxt->error = 1;
+	return;
+    }
+    if ((aid) && (xmlStrEqual(name, (const xmlChar *)"id"))) {
+	NEXT;
+	SKIP_BLANKS;
+        lit = xsltScanLiteral(ctxt);
+	if (ctxt->error)
+	    return;
+	SKIP_BLANKS;
+	if (CUR != ')') {
+	    xsltTransformError(NULL, NULL, NULL,
+		    "xsltCompileIdKeyPattern : ) expected\n");
+	    ctxt->error = 1;
+	    return;
+	}
+	NEXT;
+	PUSH(XSLT_OP_ID, lit, NULL, novar);
+    } else if ((aid) && (xmlStrEqual(name, (const xmlChar *)"key"))) {
+	NEXT;
+	SKIP_BLANKS;
+        lit = xsltScanLiteral(ctxt);
+	if (ctxt->error)
+	    return;
+	SKIP_BLANKS;
+	if (CUR != ',') {
+	    xsltTransformError(NULL, NULL, NULL,
+		    "xsltCompileIdKeyPattern : , expected\n");
+	    ctxt->error = 1;
+	    return;
+	}
+	NEXT;
+	SKIP_BLANKS;
+        lit2 = xsltScanLiteral(ctxt);
+	if (ctxt->error)
+	    return;
+	SKIP_BLANKS;
+	if (CUR != ')') {
+	    xsltTransformError(NULL, NULL, NULL,
+		    "xsltCompileIdKeyPattern : ) expected\n");
+	    ctxt->error = 1;
+	    return;
+	}
+	NEXT;
+	/* TODO: support namespace in keys */
+	PUSH(XSLT_OP_KEY, lit, lit2, novar);
+    } else if (xmlStrEqual(name, (const xmlChar *)"processing-instruction")) {
+	NEXT;
+	SKIP_BLANKS;
+	if (CUR != ')') {
+	    lit = xsltScanLiteral(ctxt);
+	    if (ctxt->error)
+		return;
+	    SKIP_BLANKS;
+	    if (CUR != ')') {
+		xsltTransformError(NULL, NULL, NULL,
+			"xsltCompileIdKeyPattern : ) expected\n");
+		ctxt->error = 1;
+		return;
+	    }
+	}
+	NEXT;
+	PUSH(XSLT_OP_PI, lit, NULL, novar);
+    } else if (xmlStrEqual(name, (const xmlChar *)"text")) {
+	NEXT;
+	SKIP_BLANKS;
+	if (CUR != ')') {
+	    xsltTransformError(NULL, NULL, NULL,
+		    "xsltCompileIdKeyPattern : ) expected\n");
+	    ctxt->error = 1;
+	    return;
+	}
+	NEXT;
+	PUSH(XSLT_OP_TEXT, NULL, NULL, novar);
+    } else if (xmlStrEqual(name, (const xmlChar *)"comment")) {
+	NEXT;
+	SKIP_BLANKS;
+	if (CUR != ')') {
+	    xsltTransformError(NULL, NULL, NULL,
+		    "xsltCompileIdKeyPattern : ) expected\n");
+	    ctxt->error = 1;
+	    return;
+	}
+	NEXT;
+	PUSH(XSLT_OP_COMMENT, NULL, NULL, novar);
+    } else if (xmlStrEqual(name, (const xmlChar *)"node")) {
+	NEXT;
+	SKIP_BLANKS;
+	if (CUR != ')') {
+	    xsltTransformError(NULL, NULL, NULL,
+		    "xsltCompileIdKeyPattern : ) expected\n");
+	    ctxt->error = 1;
+	    return;
+	}
+	NEXT;
+	PUSH(XSLT_OP_NODE, NULL, NULL, novar);
+    } else if (aid) {
+	xsltTransformError(NULL, NULL, NULL,
+	    "xsltCompileIdKeyPattern : expecting 'key' or 'id' or node type\n");
+	ctxt->error = 1;
+	return;
+    } else {
+	xsltTransformError(NULL, NULL, NULL,
+	    "xsltCompileIdKeyPattern : node type\n");
+	ctxt->error = 1;
+	return;
+    }
+error:
+    if (name != NULL)
+	xmlFree(name);
+}
+
+/**
+ * xsltCompileStepPattern:
+ * @ctxt:  the compilation context
+ * @token:  a posible precompiled name
+ * @novar: flag to prohibit xslt variables from pattern
+ *
+ * Compile the XSLT StepPattern and generates a precompiled
+ * form suitable for fast matching.
+ *
+ * [5] StepPattern ::= ChildOrAttributeAxisSpecifier NodeTest Predicate* 
+ * [6] ChildOrAttributeAxisSpecifier ::= AbbreviatedAxisSpecifier
+ *                                     | ('child' | 'attribute') '::'
+ * from XPath
+ * [7]  NodeTest ::= NameTest
+ *                 | NodeType '(' ')'
+ *                 | 'processing-instruction' '(' Literal ')'
+ * [8] Predicate ::= '[' PredicateExpr ']'
+ * [9] PredicateExpr ::= Expr
+ * [13] AbbreviatedAxisSpecifier ::= '@'?
+ * [37] NameTest ::= '*' | NCName ':' '*' | QName
+ */
+
+static void
+xsltCompileStepPattern(xsltParserContextPtr ctxt, xmlChar *token, int novar) {
+    xmlChar *name = NULL;
+    const xmlChar *URI = NULL;
+    xmlChar *URL = NULL;
+    int level;
+
+    SKIP_BLANKS;
+    if ((token == NULL) && (CUR == '@')) {
+	xmlChar *prefix = NULL;
+
+	NEXT;
+	if (CUR == '*') {
+	    NEXT;
+	    PUSH(XSLT_OP_ATTR, NULL, NULL, novar);
+	    goto parse_predicate;
+	}
+	token = xsltScanQName(ctxt, &prefix);
+	if (prefix != NULL) {
+	    xmlNsPtr ns;
+
+	    ns = xmlSearchNs(ctxt->doc, ctxt->elem, prefix);
+	    if (ns == NULL) {
+		xsltTransformError(NULL, NULL, NULL,
+		"xsltCompileStepPattern : no namespace bound to prefix %s\n",
+				 prefix);
+	    } else {
+		URL = xmlStrdup(ns->href);
+	    }
+	    xmlFree(prefix);
+	}
+	if (token == NULL) {
+	    if (CUR == '*') {
+		NEXT;
+		PUSH(XSLT_OP_ATTR, NULL, URL, novar);
+		return;
+	    }
+	    xsltTransformError(NULL, NULL, NULL,
+		    "xsltCompileStepPattern : Name expected\n");
+	    ctxt->error = 1;
+	    goto error;
+	}
+	PUSH(XSLT_OP_ATTR, token, URL, novar);
+	goto parse_predicate;
+    }
+    if (token == NULL)
+	token = xsltScanName(ctxt);
+    if (token == NULL) {
+	if (CUR == '*') {
+	    NEXT;
+	    PUSH(XSLT_OP_ALL, token, NULL, novar);
+	    goto parse_predicate;
+	} else {
+	    xsltTransformError(NULL, NULL, NULL,
+		    "xsltCompileStepPattern : Name expected\n");
+	    ctxt->error = 1;
+	    goto error;
+	}
+    }
+
+
+    SKIP_BLANKS;
+    if (CUR == '(') {
+	xsltCompileIdKeyPattern(ctxt, token, 0, novar);
+	if (ctxt->error)
+	    goto error;
+    } else if (CUR == ':') {
+	NEXT;
+	if (CUR != ':') {
+	    xmlChar *prefix = token;
+	    xmlNsPtr ns;
+
+	    /*
+	     * This is a namespace match
+	     */
+	    token = xsltScanName(ctxt);
+	    ns = xmlSearchNs(ctxt->doc, ctxt->elem, prefix);
+	    if (ns == NULL) {
+		xsltTransformError(NULL, NULL, NULL,
+	    "xsltCompileStepPattern : no namespace bound to prefix %s\n",
+				 prefix);
+		ctxt->error = 1;
+		goto error;
+	    } else {
+		URL = xmlStrdup(ns->href);
+	    }
+	    xmlFree(prefix);
+	    if (token == NULL) {
+		if (CUR == '*') {
+		    NEXT;
+		    PUSH(XSLT_OP_NS, URL, NULL, novar);
+		} else {
+		    xsltTransformError(NULL, NULL, NULL,
+			    "xsltCompileStepPattern : Name expected\n");
+		    ctxt->error = 1;
+		    goto error;
+		}
+	    } else {
+		PUSH(XSLT_OP_ELEM, token, URL, novar);
+	    }
+	} else {
+	    NEXT;
+	    if (xmlStrEqual(token, (const xmlChar *) "child")) {
+		xmlFree(token);
+		token = xsltScanName(ctxt);
+		if (token == NULL) {
+	            if (CUR == '*') {
+            	        NEXT;
+	                PUSH(XSLT_OP_ALL, token, NULL, novar);
+	                goto parse_predicate;
+	            } else {
+		        xsltTransformError(NULL, NULL, NULL,
+			    "xsltCompileStepPattern : QName expected\n");
+		        ctxt->error = 1;
+		        goto error;
+		    }
+		}
+		URI = xsltGetQNameURI(ctxt->elem, &token);
+		if (token == NULL) {
+		    ctxt->error = 1;
+		    goto error;
+		} else {
+		    name = xmlStrdup(token);
+		    if (URI != NULL)
+			URL = xmlStrdup(URI);
+		}
+		PUSH(XSLT_OP_CHILD, name, URL, novar);
+	    } else if (xmlStrEqual(token, (const xmlChar *) "attribute")) {
+		xmlFree(token);
+		token = xsltScanName(ctxt);
+		if (token == NULL) {
+		    xsltTransformError(NULL, NULL, NULL,
+			    "xsltCompileStepPattern : QName expected\n");
+		    ctxt->error = 1;
+		    goto error;
+		}
+		URI = xsltGetQNameURI(ctxt->elem, &token);
+		if (token == NULL) {
+		    ctxt->error = 1;
+		    goto error;
+		} else {
+		    name = xmlStrdup(token);
+		    if (URI != NULL)
+			URL = xmlStrdup(URI);
+		}
+		PUSH(XSLT_OP_ATTR, name, URL, novar);
+	    } else {
+		xsltTransformError(NULL, NULL, NULL,
+		    "xsltCompileStepPattern : 'child' or 'attribute' expected\n");
+		ctxt->error = 1;
+		goto error;
+	    }
+	    xmlFree(token);
+	}
+    } else if (CUR == '*') {
+	NEXT;
+	PUSH(XSLT_OP_ALL, token, NULL, novar);
+    } else {
+	URI = xsltGetQNameURI(ctxt->elem, &token);
+	if (token == NULL) {
+	    ctxt->error = 1;
+	    goto error;
+	}
+	if (URI != NULL)
+	    URL = xmlStrdup(URI);
+	PUSH(XSLT_OP_ELEM, token, URL, novar);
+    }
+parse_predicate:
+    SKIP_BLANKS;
+    level = 0;
+    while (CUR == '[') {
+	const xmlChar *q;
+	xmlChar *ret = NULL;
+
+	level++;
+	NEXT;
+	q = CUR_PTR;
+	while (CUR != 0) {
+	    /* Skip over nested predicates */
+	    if (CUR == '[')
+		level++;
+	    else if (CUR == ']') {
+		level--;
+		if (level == 0)
+		    break;
+	    } else if (CUR == '"') {
+		NEXT;
+		while ((CUR != 0) && (CUR != '"'))
+		    NEXT;
+	    } else if (CUR == '\'') {
+		NEXT;
+		while ((CUR != 0) && (CUR != '\''))
+		    NEXT;
+	    }
+	    NEXT;
+	}
+	if (CUR == 0) {
+	    xsltTransformError(NULL, NULL, NULL,
+		    "xsltCompileStepPattern : ']' expected\n");
+	    ctxt->error = 1;
+	    return;
+        }
+	ret = xmlStrndup(q, CUR_PTR - q);
+	PUSH(XSLT_OP_PREDICATE, ret, NULL, novar);
+	/* push the predicate lower than local test */
+	SWAP();
+	NEXT;
+	SKIP_BLANKS;
+    }
+    return;
+error:
+    if (token != NULL)
+	xmlFree(token);
+    if (name != NULL)
+	xmlFree(name);
+}
+
+/**
+ * xsltCompileRelativePathPattern:
+ * @comp:  the compilation context
+ * @token:  a posible precompiled name
+ * @novar:  flag to prohibit xslt variables
+ *
+ * Compile the XSLT RelativePathPattern and generates a precompiled
+ * form suitable for fast matching.
+ *
+ * [4] RelativePathPattern ::= StepPattern
+ *                           | RelativePathPattern '/' StepPattern
+ *                           | RelativePathPattern '//' StepPattern
+ */
+static void
+xsltCompileRelativePathPattern(xsltParserContextPtr ctxt, xmlChar *token, int novar) {
+    xsltCompileStepPattern(ctxt, token, novar);
+    if (ctxt->error)
+	goto error;
+    SKIP_BLANKS;
+    while ((CUR != 0) && (CUR != '|')) {
+	if ((CUR == '/') && (NXT(1) == '/')) {
+	    PUSH(XSLT_OP_ANCESTOR, NULL, NULL, novar);
+	    NEXT;
+	    NEXT;
+	    SKIP_BLANKS;
+	    xsltCompileStepPattern(ctxt, NULL, novar);
+	} else if (CUR == '/') {
+	    PUSH(XSLT_OP_PARENT, NULL, NULL, novar);
+	    NEXT;
+	    SKIP_BLANKS;
+	    if ((CUR != 0) && (CUR != '|')) {
+		xsltCompileRelativePathPattern(ctxt, NULL, novar);
+	    }
+	} else {
+	    ctxt->error = 1;
+	}
+	if (ctxt->error)
+	    goto error;
+	SKIP_BLANKS;
+    }
+error:
+    return;
+}
+
+/**
+ * xsltCompileLocationPathPattern:
+ * @ctxt:  the compilation context
+ * @novar:  flag to prohibit xslt variables
+ *
+ * Compile the XSLT LocationPathPattern and generates a precompiled
+ * form suitable for fast matching.
+ *
+ * [2] LocationPathPattern ::= '/' RelativePathPattern?
+ *                           | IdKeyPattern (('/' | '//') RelativePathPattern)?
+ *                           | '//'? RelativePathPattern
+ */
+static void
+xsltCompileLocationPathPattern(xsltParserContextPtr ctxt, int novar) {
+    SKIP_BLANKS;
+    if ((CUR == '/') && (NXT(1) == '/')) {
+	/*
+	 * since we reverse the query
+	 * a leading // can be safely ignored
+	 */
+	NEXT;
+	NEXT;
+	ctxt->comp->priority = 0.5;	/* '//' means not 0 priority */
+	xsltCompileRelativePathPattern(ctxt, NULL, novar);
+    } else if (CUR == '/') {
+	/*
+	 * We need to find root as the parent
+	 */
+	NEXT;
+	SKIP_BLANKS;
+	PUSH(XSLT_OP_ROOT, NULL, NULL, novar);
+	if ((CUR != 0) && (CUR != '|')) {
+	    PUSH(XSLT_OP_PARENT, NULL, NULL, novar);
+	    xsltCompileRelativePathPattern(ctxt, NULL, novar);
+	}
+    } else if (CUR == '*') {
+	xsltCompileRelativePathPattern(ctxt, NULL, novar);
+    } else if (CUR == '@') {
+	xsltCompileRelativePathPattern(ctxt, NULL, novar);
+    } else {
+	xmlChar *name;
+	name = xsltScanName(ctxt);
+	if (name == NULL) {
+	    xsltTransformError(NULL, NULL, NULL,
+		    "xsltCompileLocationPathPattern : Name expected\n");
+	    ctxt->error = 1;
+	    return;
+	}
+	SKIP_BLANKS;
+	if ((CUR == '(') && !xmlXPathIsNodeType(name)) {
+	    xsltCompileIdKeyPattern(ctxt, name, 1, novar);
+	    if ((CUR == '/') && (NXT(1) == '/')) {
+		PUSH(XSLT_OP_ANCESTOR, NULL, NULL, novar);
+		NEXT;
+		NEXT;
+		SKIP_BLANKS;
+		xsltCompileRelativePathPattern(ctxt, NULL, novar);
+	    } else if (CUR == '/') {
+		PUSH(XSLT_OP_PARENT, NULL, NULL, novar);
+		NEXT;
+		SKIP_BLANKS;
+		xsltCompileRelativePathPattern(ctxt, NULL, novar);
+	    }
+	    return;
+	}
+	xsltCompileRelativePathPattern(ctxt, name, novar);
+    }
+error:
+    return;
+}
+
+/**
+ * xsltCompilePatternInternal:
+ * @pattern: an XSLT pattern
+ * @doc:  the containing document
+ * @node:  the containing element
+ * @style:  the stylesheet
+ * @runtime:  the transformation context, if done at run-time
+ * @novar:  flag to prohibit xslt variables
+ *
+ * Compile the XSLT pattern and generates a list of precompiled form suitable
+ * for fast matching.
+ *
+ * [1] Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern
+ *
+ * Returns the generated pattern list or NULL in case of failure
+ */
+
+static xsltCompMatchPtr
+xsltCompilePatternInternal(const xmlChar *pattern, xmlDocPtr doc,
+	           xmlNodePtr node, xsltStylesheetPtr style,
+		   xsltTransformContextPtr runtime, int novar) {
+    xsltParserContextPtr ctxt = NULL;
+    xsltCompMatchPtr element, first = NULL, previous = NULL;
+    int current, start, end, level, j;
+
+    if (pattern == NULL) {
+	xsltTransformError(NULL, NULL, node,
+			 "xsltCompilePattern : NULL pattern\n");
+	return(NULL);
+    }
+
+    ctxt = xsltNewParserContext(style, runtime);
+    if (ctxt == NULL)
+	return(NULL);
+    ctxt->doc = doc;
+    ctxt->elem = node;
+    current = end = 0;
+    while (pattern[current] != 0) {
+	start = current;
+	while (IS_BLANK_CH(pattern[current]))
+	    current++;
+	end = current;
+	level = 0;
+	while ((pattern[end] != 0) && ((pattern[end] != '|') || (level != 0))) {
+	    if (pattern[end] == '[')
+		level++;
+	    else if (pattern[end] == ']')
+		level--;
+	    else if (pattern[end] == '\'') {
+		end++;
+		while ((pattern[end] != 0) && (pattern[end] != '\''))
+		    end++;
+	    } else if (pattern[end] == '"') {
+		end++;
+		while ((pattern[end] != 0) && (pattern[end] != '"'))
+		    end++;
+	    }
+	    end++;
+	}
+	if (current == end) {
+	    xsltTransformError(NULL, NULL, node,
+			     "xsltCompilePattern : NULL pattern\n");
+	    goto error;
+	}
+	element = xsltNewCompMatch();
+	if (element == NULL) {
+	    goto error;
+	}
+	if (first == NULL)
+	    first = element;
+	else if (previous != NULL)
+	    previous->next = element;
+	previous = element;
+
+	ctxt->comp = element;
+	ctxt->base = xmlStrndup(&pattern[start], end - start);
+	if (ctxt->base == NULL)
+	    goto error;
+	ctxt->cur = &(ctxt->base)[current - start];
+	element->pattern = ctxt->base;
+	element->nsList = xmlGetNsList(doc, node);
+	j = 0;
+	if (element->nsList != NULL) {
+	    while (element->nsList[j] != NULL)
+		j++;
+	}
+	element->nsNr = j;
+
+
+#ifdef WITH_XSLT_DEBUG_PATTERN
+	xsltGenericDebug(xsltGenericDebugContext,
+			 "xsltCompilePattern : parsing '%s'\n",
+			 element->pattern);
+#endif
+	/*
+	 Preset default priority to be zero.
+	 This may be changed by xsltCompileLocationPathPattern.
+	 */
+	element->priority = 0;
+	xsltCompileLocationPathPattern(ctxt, novar);
+	if (ctxt->error) {
+	    xsltTransformError(NULL, style, node,
+			     "xsltCompilePattern : failed to compile '%s'\n",
+			     element->pattern);
+	    if (style != NULL) style->errors++;
+	    goto error;
+	}
+
+	/*
+	 * Reverse for faster interpretation.
+	 */
+	xsltReverseCompMatch(element);
+
+	/*
+	 * Set-up the priority
+	 */
+	if (element->priority == 0) {	/* if not yet determined */
+	    if (((element->steps[0].op == XSLT_OP_ELEM) ||
+		 (element->steps[0].op == XSLT_OP_ATTR) ||
+		 (element->steps[0].op == XSLT_OP_PI)) &&
+		(element->steps[0].value != NULL) &&
+		(element->steps[1].op == XSLT_OP_END)) {
+		;	/* previously preset */
+	    } else if ((element->steps[0].op == XSLT_OP_ATTR) &&
+		       (element->steps[0].value2 != NULL) &&
+		       (element->steps[1].op == XSLT_OP_END)) {
+			element->priority = -0.25;
+	    } else if ((element->steps[0].op == XSLT_OP_NS) &&
+		       (element->steps[0].value != NULL) &&
+		       (element->steps[1].op == XSLT_OP_END)) {
+			element->priority = -0.25;
+	    } else if ((element->steps[0].op == XSLT_OP_ATTR) &&
+		       (element->steps[0].value == NULL) &&
+		       (element->steps[0].value2 == NULL) &&
+		       (element->steps[1].op == XSLT_OP_END)) {
+			element->priority = -0.5;
+	    } else if (((element->steps[0].op == XSLT_OP_PI) ||
+		       (element->steps[0].op == XSLT_OP_TEXT) ||
+		       (element->steps[0].op == XSLT_OP_ALL) ||
+		       (element->steps[0].op == XSLT_OP_NODE) ||
+		       (element->steps[0].op == XSLT_OP_COMMENT)) &&
+		       (element->steps[1].op == XSLT_OP_END)) {
+			element->priority = -0.5;
+	    } else {
+		element->priority = 0.5;
+	    }
+	}
+#ifdef WITH_XSLT_DEBUG_PATTERN
+	xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltCompilePattern : parsed %s, default priority %f\n",
+			 element->pattern, element->priority);
+#endif
+	if (pattern[end] == '|')
+	    end++;
+	current = end;
+    }
+    if (end == 0) {
+	xsltTransformError(NULL, style, node,
+			 "xsltCompilePattern : NULL pattern\n");
+	if (style != NULL) style->errors++;
+	goto error;
+    }
+
+    xsltFreeParserContext(ctxt);
+    return(first);
+
+error:
+    if (ctxt != NULL)
+	xsltFreeParserContext(ctxt);
+    if (first != NULL)
+	xsltFreeCompMatchList(first);
+    return(NULL);
+}
+
+/**
+ * xsltCompilePattern:
+ * @pattern: an XSLT pattern
+ * @doc:  the containing document
+ * @node:  the containing element
+ * @style:  the stylesheet
+ * @runtime:  the transformation context, if done at run-time
+ *
+ * Compile the XSLT pattern and generates a list of precompiled form suitable
+ * for fast matching.
+ *
+ * [1] Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern
+ *
+ * Returns the generated pattern list or NULL in case of failure
+ */
+
+xsltCompMatchPtr
+xsltCompilePattern(const xmlChar *pattern, xmlDocPtr doc,
+	           xmlNodePtr node, xsltStylesheetPtr style,
+		   xsltTransformContextPtr runtime) {
+    return (xsltCompilePatternInternal(pattern, doc, node, style, runtime, 0));
+}
+
+/************************************************************************
+ *									*
+ *			Module interfaces				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltAddTemplate:
+ * @style: an XSLT stylesheet
+ * @cur: an XSLT template
+ * @mode:  the mode name or NULL
+ * @modeURI:  the mode URI or NULL
+ *
+ * Register the XSLT pattern associated to @cur
+ *
+ * Returns -1 in case of error, 0 otherwise
+ */
+int
+xsltAddTemplate(xsltStylesheetPtr style, xsltTemplatePtr cur,
+	        const xmlChar *mode, const xmlChar *modeURI) {
+    xsltCompMatchPtr pat, list, *top = NULL, next;
+    const xmlChar *name = NULL;
+    float priority;              /* the priority */
+
+    if ((style == NULL) || (cur == NULL) || (cur->match == NULL))
+	return(-1);
+
+    priority = cur->priority;
+    pat = xsltCompilePatternInternal(cur->match, style->doc, cur->elem,
+		    style, NULL, 1);
+    while (pat) {
+	next = pat->next;
+	pat->next = NULL;
+	name = NULL;
+	
+	pat->template = cur;
+	if (mode != NULL)
+	    pat->mode = xmlDictLookup(style->dict, mode, -1);
+	if (modeURI != NULL)
+	    pat->modeURI = xmlDictLookup(style->dict, modeURI, -1);
+	if (priority != XSLT_PAT_NO_PRIORITY)
+	    pat->priority = priority;
+
+	/*
+	 * insert it in the hash table list corresponding to its lookup name
+	 */
+	switch (pat->steps[0].op) {
+        case XSLT_OP_ATTR:
+	    if (pat->steps[0].value != NULL)
+		name = pat->steps[0].value;
+	    else
+		top = (xsltCompMatchPtr *) &(style->attrMatch);
+	    break;
+        case XSLT_OP_CHILD:
+        case XSLT_OP_PARENT:
+        case XSLT_OP_ANCESTOR:
+	    top = (xsltCompMatchPtr *) &(style->elemMatch);
+	    break;
+        case XSLT_OP_ROOT:
+	    top = (xsltCompMatchPtr *) &(style->rootMatch);
+	    break;
+        case XSLT_OP_KEY:
+	    top = (xsltCompMatchPtr *) &(style->keyMatch);
+	    break;
+        case XSLT_OP_ID:
+	    /* TODO optimize ID !!! */
+        case XSLT_OP_NS:
+        case XSLT_OP_ALL:
+	    top = (xsltCompMatchPtr *) &(style->elemMatch);
+	    break;
+        case XSLT_OP_END:
+	case XSLT_OP_PREDICATE:
+	    xsltTransformError(NULL, style, NULL,
+			     "xsltAddTemplate: invalid compiled pattern\n");
+	    xsltFreeCompMatch(pat);
+	    return(-1);
+	    /*
+	     * TODO: some flags at the top level about type based patterns
+	     *       would be faster than inclusion in the hash table.
+	     */
+	case XSLT_OP_PI:
+	    if (pat->steps[0].value != NULL)
+		name = pat->steps[0].value;
+	    else
+		top = (xsltCompMatchPtr *) &(style->piMatch);
+	    break;
+	case XSLT_OP_COMMENT:
+	    top = (xsltCompMatchPtr *) &(style->commentMatch);
+	    break;
+	case XSLT_OP_TEXT:
+	    top = (xsltCompMatchPtr *) &(style->textMatch);
+	    break;
+        case XSLT_OP_ELEM:
+	case XSLT_OP_NODE:
+	    if (pat->steps[0].value != NULL)
+		name = pat->steps[0].value;
+	    else
+		top = (xsltCompMatchPtr *) &(style->elemMatch);
+	    break;
+	}
+	if (name != NULL) {
+	    if (style->templatesHash == NULL) {
+		style->templatesHash = xmlHashCreate(1024);
+		if (style->templatesHash == NULL) {
+		    xsltFreeCompMatch(pat);
+		    return(-1);
+		}
+		xmlHashAddEntry3(style->templatesHash, name, mode, modeURI, pat);
+	    } else {
+		list = (xsltCompMatchPtr) xmlHashLookup3(style->templatesHash,
+							 name, mode, modeURI);
+		if (list == NULL) {
+		    xmlHashAddEntry3(style->templatesHash, name,
+				     mode, modeURI, pat);
+		} else {
+		    /*
+		     * Note '<=' since one must choose among the matching
+		     * template rules that are left, the one that occurs
+		     * last in the stylesheet
+		     */
+		    if (list->priority <= pat->priority) {
+			pat->next = list;
+			xmlHashUpdateEntry3(style->templatesHash, name,
+					    mode, modeURI, pat, NULL);
+		    } else {
+			while (list->next != NULL) {
+			    if (list->next->priority <= pat->priority)
+				break;
+			    list = list->next;
+			}
+			pat->next = list->next;
+			list->next = pat;
+		    }
+		}
+	    }
+	} else if (top != NULL) {
+	    list = *top;
+	    if (list == NULL) {
+		*top = pat;
+		pat->next = NULL;
+	    } else if (list->priority <= pat->priority) {
+		pat->next = list;
+		*top = pat;
+	    } else {
+		while (list->next != NULL) {
+		    if (list->next->priority <= pat->priority)
+			break;
+		    list = list->next;
+		}
+		pat->next = list->next;
+		list->next = pat;
+	    }
+	} else {
+	    xsltTransformError(NULL, style, NULL,
+			     "xsltAddTemplate: invalid compiled pattern\n");
+	    xsltFreeCompMatch(pat);
+	    return(-1);
+	}
+#ifdef WITH_XSLT_DEBUG_PATTERN
+	if (mode)
+	    xsltGenericDebug(xsltGenericDebugContext,
+			 "added pattern : '%s' mode '%s' priority %f\n",
+			     pat->pattern, pat->mode, pat->priority);
+	else
+	    xsltGenericDebug(xsltGenericDebugContext,
+			 "added pattern : '%s' priority %f\n",
+			     pat->pattern, pat->priority);
+#endif
+
+	pat = next;
+    }
+    return(0);
+}
+
+/**
+ * xsltGetTemplate:
+ * @ctxt:  a XSLT process context
+ * @node:  the node being processed
+ * @style:  the current style
+ *
+ * Finds the template applying to this node, if @style is non-NULL
+ * it means one needs to look for the next imported template in scope.
+ *
+ * Returns the xsltTemplatePtr or NULL if not found
+ */
+xsltTemplatePtr
+xsltGetTemplate(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	        xsltStylesheetPtr style) {
+    xsltStylesheetPtr curstyle;
+    xsltTemplatePtr ret = NULL;
+    const xmlChar *name = NULL;
+    xsltCompMatchPtr list = NULL;
+    float priority;
+    int keyed = 0;
+
+    if ((ctxt == NULL) || (node == NULL))
+	return(NULL);
+
+    if (style == NULL) {
+	curstyle = ctxt->style;
+    } else {
+	curstyle = xsltNextImport(style);
+    }
+
+    while ((curstyle != NULL) && (curstyle != style)) {
+	priority = XSLT_PAT_NO_PRIORITY;
+	/* TODO : handle IDs/keys here ! */
+	if (curstyle->templatesHash != NULL) {
+	    /*
+	     * Use the top name as selector
+	     */
+	    switch (node->type) {
+		case XML_ELEMENT_NODE:
+		    if (node->name[0] == ' ')
+			break;
+		case XML_ATTRIBUTE_NODE:
+		case XML_PI_NODE:
+		    name = node->name;
+		    break;
+		case XML_DOCUMENT_NODE:
+		case XML_HTML_DOCUMENT_NODE:
+		case XML_TEXT_NODE:
+		case XML_CDATA_SECTION_NODE:
+		case XML_COMMENT_NODE:
+		case XML_ENTITY_REF_NODE:
+		case XML_ENTITY_NODE:
+		case XML_DOCUMENT_TYPE_NODE:
+		case XML_DOCUMENT_FRAG_NODE:
+		case XML_NOTATION_NODE:
+		case XML_DTD_NODE:
+		case XML_ELEMENT_DECL:
+		case XML_ATTRIBUTE_DECL:
+		case XML_ENTITY_DECL:
+		case XML_NAMESPACE_DECL:
+		case XML_XINCLUDE_START:
+		case XML_XINCLUDE_END:
+		    break;
+		default:
+		    return(NULL);
+
+	    }
+	}
+	if (name != NULL) {
+	    /*
+	     * find the list of applicable expressions based on the name
+	     */
+	    list = (xsltCompMatchPtr) xmlHashLookup3(curstyle->templatesHash,
+					     name, ctxt->mode, ctxt->modeURI);
+	} else
+	    list = NULL;
+	while (list != NULL) {
+	    if (xsltTestCompMatch(ctxt, list, node,
+			          ctxt->mode, ctxt->modeURI)) {
+		ret = list->template;
+		priority = list->priority;
+		break;
+	    }
+	    list = list->next;
+	}
+	list = NULL;
+
+	/*
+	 * find alternate generic matches
+	 */
+	switch (node->type) {
+	    case XML_ELEMENT_NODE:
+		if (node->name[0] == ' ')
+		    list = curstyle->rootMatch;
+		else
+		    list = curstyle->elemMatch;
+		if (node->psvi != NULL) keyed = 1;
+		break;
+	    case XML_ATTRIBUTE_NODE: {
+	        xmlAttrPtr attr;
+
+		list = curstyle->attrMatch;
+		attr = (xmlAttrPtr) node;
+		if (attr->psvi != NULL) keyed = 1;
+		break;
+	    }
+	    case XML_PI_NODE:
+		list = curstyle->piMatch;
+		if (node->psvi != NULL) keyed = 1;
+		break;
+	    case XML_DOCUMENT_NODE:
+	    case XML_HTML_DOCUMENT_NODE: {
+	        xmlDocPtr doc;
+
+		list = curstyle->rootMatch;
+		doc = (xmlDocPtr) node;
+		if (doc->psvi != NULL) keyed = 1;
+		break;
+	    }
+	    case XML_TEXT_NODE:
+	    case XML_CDATA_SECTION_NODE:
+		list = curstyle->textMatch;
+		if (node->psvi != NULL) keyed = 1;
+		break;
+	    case XML_COMMENT_NODE:
+		list = curstyle->commentMatch;
+		if (node->psvi != NULL) keyed = 1;
+		break;
+	    case XML_ENTITY_REF_NODE:
+	    case XML_ENTITY_NODE:
+	    case XML_DOCUMENT_TYPE_NODE:
+	    case XML_DOCUMENT_FRAG_NODE:
+	    case XML_NOTATION_NODE:
+	    case XML_DTD_NODE:
+	    case XML_ELEMENT_DECL:
+	    case XML_ATTRIBUTE_DECL:
+	    case XML_ENTITY_DECL:
+	    case XML_NAMESPACE_DECL:
+	    case XML_XINCLUDE_START:
+	    case XML_XINCLUDE_END:
+		break;
+	    default:
+		break;
+	}
+	while ((list != NULL) &&
+	       ((ret == NULL)  || (list->priority > priority))) {
+	    if (xsltTestCompMatch(ctxt, list, node,
+			          ctxt->mode, ctxt->modeURI)) {
+		ret = list->template;
+		priority = list->priority;
+		break;
+	    }
+	    list = list->next;
+	}
+	/*
+	 * Some of the tests for elements can also apply to documents
+	 */
+	if ((node->type == XML_DOCUMENT_NODE) ||
+	    (node->type == XML_HTML_DOCUMENT_NODE) ||
+	    (node->type == XML_TEXT_NODE)) {
+	    list = curstyle->elemMatch;
+	    while ((list != NULL) &&
+		   ((ret == NULL)  || (list->priority > priority))) {
+		if (xsltTestCompMatch(ctxt, list, node,
+				      ctxt->mode, ctxt->modeURI)) {
+		    ret = list->template;
+		    priority = list->priority;
+		    break;
+		}
+		list = list->next;
+	    }
+	} else if ((node->type == XML_PI_NODE) ||
+		   (node->type == XML_COMMENT_NODE)) {
+	    list = curstyle->elemMatch;
+	    while ((list != NULL) &&
+		   ((ret == NULL)  || (list->priority > priority))) {
+		if (xsltTestCompMatch(ctxt, list, node,
+				      ctxt->mode, ctxt->modeURI)) {
+		    ret = list->template;
+		    priority = list->priority;
+		    break;
+		}
+		list = list->next;
+	    }
+	}
+
+	if (keyed) {
+	    list = curstyle->keyMatch;
+	    while ((list != NULL) &&
+		   ((ret == NULL)  || (list->priority > priority))) {
+		if (xsltTestCompMatch(ctxt, list, node,
+				      ctxt->mode, ctxt->modeURI)) {
+		    ret = list->template;
+		    priority = list->priority;
+		    break;
+		}
+		list = list->next;
+	    }
+	}
+	if (ret != NULL)
+	    return(ret);
+
+	/*
+	 * Cycle on next curstylesheet import.
+	 */
+	curstyle = xsltNextImport(curstyle);
+    }
+    return(NULL);
+}
+
+/**
+ * xsltCleanupTemplates:
+ * @style: an XSLT stylesheet
+ *
+ * Cleanup the state of the templates used by the stylesheet and
+ * the ones it imports.
+ */
+void
+xsltCleanupTemplates(xsltStylesheetPtr style ATTRIBUTE_UNUSED) {
+}
+
+/**
+ * xsltFreeTemplateHashes:
+ * @style: an XSLT stylesheet
+ *
+ * Free up the memory used by xsltAddTemplate/xsltGetTemplate mechanism
+ */
+void
+xsltFreeTemplateHashes(xsltStylesheetPtr style) {
+    if (style->templatesHash != NULL)
+	xmlHashFree((xmlHashTablePtr) style->templatesHash,
+		    (xmlHashDeallocator) xsltFreeCompMatchList);
+    if (style->rootMatch != NULL)
+        xsltFreeCompMatchList(style->rootMatch);
+    if (style->keyMatch != NULL)
+        xsltFreeCompMatchList(style->keyMatch);
+    if (style->elemMatch != NULL)
+        xsltFreeCompMatchList(style->elemMatch);
+    if (style->attrMatch != NULL)
+        xsltFreeCompMatchList(style->attrMatch);
+    if (style->parentMatch != NULL)
+        xsltFreeCompMatchList(style->parentMatch);
+    if (style->textMatch != NULL)
+        xsltFreeCompMatchList(style->textMatch);
+    if (style->piMatch != NULL)
+        xsltFreeCompMatchList(style->piMatch);
+    if (style->commentMatch != NULL)
+        xsltFreeCompMatchList(style->commentMatch);
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/pattern.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/pattern.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/pattern.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,81 @@
+/*
+ * Summary: interface for the pattern matching used in template matches.
+ * Description: the implementation of the lookup of the right template
+ *              for a given node must be really fast in order to keep
+ *              decent performances.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_PATTERN_H__
+#define __XML_XSLT_PATTERN_H__
+
+#include "xsltInternals.h"
+#include "xsltexports.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xsltCompMatch:
+ *
+ * Data structure used for the implementation of patterns.
+ * It is kept private (in pattern.c).
+ */
+typedef struct _xsltCompMatch xsltCompMatch;
+typedef xsltCompMatch *xsltCompMatchPtr;
+
+/*
+ * Pattern related interfaces.
+ */
+
+XSLTPUBFUN xsltCompMatchPtr XSLTCALL 
+		xsltCompilePattern	(const xmlChar *pattern,
+					 xmlDocPtr doc,
+					 xmlNodePtr node,
+					 xsltStylesheetPtr style,
+					 xsltTransformContextPtr runtime);
+XSLTPUBFUN void XSLTCALL		 
+		xsltFreeCompMatchList	(xsltCompMatchPtr comp);
+XSLTPUBFUN int XSLTCALL		 
+		xsltTestCompMatchList	(xsltTransformContextPtr ctxt,
+					 xmlNodePtr node,
+					 xsltCompMatchPtr comp);
+XSLTPUBFUN void XSLTCALL
+		xsltNormalizeCompSteps	(void *payload,
+					 void *data,
+					 const xmlChar *name);
+
+/*
+ * Template related interfaces.
+ */
+XSLTPUBFUN int XSLTCALL		
+		xsltAddTemplate		(xsltStylesheetPtr style,
+					 xsltTemplatePtr cur,
+					 const xmlChar *mode,
+					 const xmlChar *modeURI);
+XSLTPUBFUN xsltTemplatePtr XSLTCALL	
+		xsltGetTemplate		(xsltTransformContextPtr ctxt,
+					 xmlNodePtr node,
+					 xsltStylesheetPtr style);
+XSLTPUBFUN void XSLTCALL		
+		xsltFreeTemplateHashes	(xsltStylesheetPtr style);
+XSLTPUBFUN void XSLTCALL		
+		xsltCleanupTemplates	(xsltStylesheetPtr style);
+
+#if 0
+int		xsltMatchPattern	(xsltTransformContextPtr ctxt,
+					 xmlNodePtr node,
+					 const xmlChar *pattern,
+					 xmlDocPtr ctxtdoc,
+					 xmlNodePtr ctxtnode);
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_PATTERN_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/preproc.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/preproc.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/preproc.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2075 @@
+/*
+ * preproc.c: Preprocessing of style operations
+ *
+ * References:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ *   Michael Kay "XSLT Programmer's Reference" pp 637-643
+ *   Writing Multiple Output Files
+ *
+ *   XSLT-1.1 Working Draft
+ *   http://www.w3.org/TR/xslt11#multiple-output
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <libxml/valid.h>
+#include <libxml/hash.h>
+#include <libxml/uri.h>
+#include <libxml/encoding.h>
+#include <libxml/xmlerror.h>
+#include "xslt.h"
+#include "xsltutils.h"
+#include "xsltInternals.h"
+#include "transform.h"
+#include "templates.h"
+#include "variables.h"
+#include "numbersInternals.h"
+#include "preproc.h"
+#include "extra.h"
+#include "imports.h"
+#include "extensions.h"
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_PREPROC
+#endif
+
+const xmlChar *xsltExtMarker = (const xmlChar *) "Extension Element";
+
+/************************************************************************
+ *									*
+ *			Grammar checks					*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltCheckTopLevelElement:
+ * @style: the XSLT stylesheet
+ * @inst: the XSLT instruction
+ * @err: raise an error or not
+ *
+ * Check that the instruction is instanciated as a top level element.
+ *
+ * Returns -1 in case of error, 0 if failed and 1 in case of success
+ */
+static int
+xsltCheckTopLevelElement(xsltStylesheetPtr style, xmlNodePtr inst, int err) {
+    xmlNodePtr parent;
+    if ((style == NULL) || (inst == NULL) || (inst->ns == NULL))
+        return(-1);
+    
+    parent = inst->parent;
+    if (parent == NULL) {
+        if (err) {
+	    xsltTransformError(NULL, style, inst,
+		    "internal problem: element has no parent\n");
+	    style->errors++;
+	}
+	return(0);
+    }
+    if ((parent->ns == NULL) ||
+        ((parent->ns != inst->ns) &&
+	 (!xmlStrEqual(parent->ns->href, inst->ns->href))) ||
+	((!xmlStrEqual(parent->name, BAD_CAST "stylesheet")) &&
+	 (!xmlStrEqual(parent->name, BAD_CAST "transform")))) {
+	if (err) {
+	    xsltTransformError(NULL, style, inst,
+		    "element %s only allowed as child of stylesheet\n",
+			       inst->name);
+	    style->errors++;
+	}
+	return(0);
+    }
+    return(1);
+}
+
+/**
+ * xsltCheckInstructionElement:
+ * @style: the XSLT stylesheet
+ * @inst: the XSLT instruction
+ *
+ * Check that the instruction is instanciated as an instruction element.
+ */
+static void
+xsltCheckInstructionElement(xsltStylesheetPtr style, xmlNodePtr inst) {
+    xmlNodePtr parent;
+    int has_ext;
+
+    if ((style == NULL) || (inst == NULL) || (inst->ns == NULL) ||
+        (style->literal_result))
+        return;
+
+    has_ext = (style->extInfos != NULL);
+    
+    parent = inst->parent;
+    if (parent == NULL) {
+	xsltTransformError(NULL, style, inst,
+		"internal problem: element has no parent\n");
+	style->errors++;
+	return;
+    }
+    while ((parent != NULL) && (parent->type != XML_DOCUMENT_NODE)) {
+        if (((parent->ns == inst->ns) ||
+	     ((parent->ns != NULL) &&
+	      (xmlStrEqual(parent->ns->href, inst->ns->href)))) &&
+	    ((xmlStrEqual(parent->name, BAD_CAST "template")) ||
+	     (xmlStrEqual(parent->name, BAD_CAST "param")) ||
+	     (xmlStrEqual(parent->name, BAD_CAST "attribute")) ||
+	     (xmlStrEqual(parent->name, BAD_CAST "variable")))) {
+	    return;
+	}
+
+	/*
+	 * if we are within an extension element all bets are off
+	 * about the semantic there e.g. xsl:param within func:function
+	 */
+	if ((has_ext) && (parent->ns != NULL) &&
+	    (xmlHashLookup(style->extInfos, parent->ns->href) != NULL))
+	    return;
+	
+        parent = parent->parent;
+    }
+    xsltTransformError(NULL, style, inst,
+	    "element %s only allowed within a template, variable or param\n",
+		           inst->name);
+    style->errors++;
+}
+
+/**
+ * xsltCheckParentElement:
+ * @style: the XSLT stylesheet
+ * @inst: the XSLT instruction
+ * @allow1: allowed parent1
+ * @allow2: allowed parent2
+ *
+ * Check that the instruction is instanciated as the childre of one of the
+ * possible parents.
+ */
+static void
+xsltCheckParentElement(xsltStylesheetPtr style, xmlNodePtr inst,
+                       const xmlChar *allow1, const xmlChar *allow2) {
+    xmlNodePtr parent;
+
+    if ((style == NULL) || (inst == NULL) || (inst->ns == NULL) ||
+        (style->literal_result))
+        return;
+
+    parent = inst->parent;
+    if (parent == NULL) {
+	xsltTransformError(NULL, style, inst,
+		"internal problem: element has no parent\n");
+	style->errors++;
+	return;
+    }
+    if (((parent->ns == inst->ns) ||
+	 ((parent->ns != NULL) &&
+	  (xmlStrEqual(parent->ns->href, inst->ns->href)))) &&
+	((xmlStrEqual(parent->name, allow1)) ||
+	 (xmlStrEqual(parent->name, allow2)))) {
+	return;
+    }
+
+    if (style->extInfos != NULL) {
+	while ((parent != NULL) && (parent->type != XML_DOCUMENT_NODE)) {
+	    /*
+	     * if we are within an extension element all bets are off
+	     * about the semantic there e.g. xsl:param within func:function
+	     */
+	    if ((parent->ns != NULL) &&
+		(xmlHashLookup(style->extInfos, parent->ns->href) != NULL))
+		return;
+	    
+	    parent = parent->parent;
+	}
+    }
+    xsltTransformError(NULL, style, inst,
+		       "element %s is not allowed within that context\n",
+		       inst->name);
+    style->errors++;
+}
+
+/************************************************************************
+ *									*
+ *			handling of precomputed data			*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltNewStylePreComp:
+ * @style:  the XSLT stylesheet
+ * @type:  the construct type
+ *
+ * Create a new XSLT Style precomputed block
+ *
+ * Returns the newly allocated specialized structure
+ *         or NULL in case of error
+ */
+static xsltStylePreCompPtr
+xsltNewStylePreComp(xsltStylesheetPtr style, xsltStyleType type) {
+    xsltStylePreCompPtr cur;
+#ifdef XSLT_REFACTORED
+    size_t size;
+#endif
+
+    if (style == NULL)
+        return(NULL);
+   
+#ifdef XSLT_REFACTORED
+    /*
+    * URGENT TODO: Use specialized factory functions in order
+    *   to avoid this ugliness.
+    */
+    switch (type) {
+        case XSLT_FUNC_COPY:
+            size = sizeof(xsltStyleItemCopy); break;
+        case XSLT_FUNC_SORT:
+            size = sizeof(xsltStyleItemSort); break;
+        case XSLT_FUNC_TEXT:
+            size = sizeof(xsltStyleItemText); break;
+        case XSLT_FUNC_ELEMENT:
+            size = sizeof(xsltStyleItemElement); break;
+        case XSLT_FUNC_ATTRIBUTE:
+            size = sizeof(xsltStyleItemAttribute); break;
+        case XSLT_FUNC_COMMENT:
+            size = sizeof(xsltStyleItemComment); break;
+        case XSLT_FUNC_PI:
+            size = sizeof(xsltStyleItemPI); break;
+        case XSLT_FUNC_COPYOF:
+            size = sizeof(xsltStyleItemCopyOf); break;
+        case XSLT_FUNC_VALUEOF:
+            size = sizeof(xsltStyleItemValueOf); break;;
+        case XSLT_FUNC_NUMBER:
+            size = sizeof(xsltStyleItemNumber); break;
+        case XSLT_FUNC_APPLYIMPORTS:
+            size = sizeof(xsltStyleItemApplyImports); break;
+        case XSLT_FUNC_CALLTEMPLATE:
+            size = sizeof(xsltStyleItemCallTemplate); break;
+        case XSLT_FUNC_APPLYTEMPLATES:
+            size = sizeof(xsltStyleItemApplyTemplates); break;
+        case XSLT_FUNC_CHOOSE:
+            size = sizeof(xsltStyleItemChoose); break;
+        case XSLT_FUNC_IF:
+            size = sizeof(xsltStyleItemIf); break;
+        case XSLT_FUNC_FOREACH:
+            size = sizeof(xsltStyleItemForEach); break;
+        case XSLT_FUNC_DOCUMENT:
+            size = sizeof(xsltStyleItemDocument); break;
+	case XSLT_FUNC_WITHPARAM:
+	    size = sizeof(xsltStyleItemWithParam); break;
+	case XSLT_FUNC_PARAM:
+	    size = sizeof(xsltStyleItemParam); break;
+	case XSLT_FUNC_VARIABLE:
+	    size = sizeof(xsltStyleItemVariable); break;
+	case XSLT_FUNC_WHEN:
+	    size = sizeof(xsltStyleItemWhen); break;
+	case XSLT_FUNC_OTHERWISE:
+	    size = sizeof(xsltStyleItemOtherwise); break;
+	default:	
+	    xsltTransformError(NULL, style, NULL,
+		    "xsltNewStylePreComp : invalid type %d\n", type);
+	    style->errors++;
+	    return(NULL);
+    }
+    /*
+    * Create the structure.
+    */
+    cur = (xsltStylePreCompPtr) xmlMalloc(size);
+    if (cur == NULL) {
+	xsltTransformError(NULL, style, NULL,
+		"xsltNewStylePreComp : malloc failed\n");
+	style->errors++;
+	return(NULL);
+    }
+    memset(cur, 0, size);
+
+#else /* XSLT_REFACTORED */
+    /*
+    * Old behaviour.
+    */
+    cur = (xsltStylePreCompPtr) xmlMalloc(sizeof(xsltStylePreComp));
+    if (cur == NULL) {
+	xsltTransformError(NULL, style, NULL,
+		"xsltNewStylePreComp : malloc failed\n");
+	style->errors++;
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltStylePreComp));
+#endif /* XSLT_REFACTORED */
+
+    /*
+    * URGENT TODO: Better to move this to spezialized factory functions.
+    */
+    cur->type = type;
+    switch (cur->type) {
+        case XSLT_FUNC_COPY:
+            cur->func = (xsltTransformFunction) xsltCopy;break;
+        case XSLT_FUNC_SORT:
+            cur->func = (xsltTransformFunction) xsltSort;break;
+        case XSLT_FUNC_TEXT:
+            cur->func = (xsltTransformFunction) xsltText;break;
+        case XSLT_FUNC_ELEMENT:
+            cur->func = (xsltTransformFunction) xsltElement;break;
+        case XSLT_FUNC_ATTRIBUTE:
+            cur->func = (xsltTransformFunction) xsltAttribute;break;
+        case XSLT_FUNC_COMMENT:
+            cur->func = (xsltTransformFunction) xsltComment;break;
+        case XSLT_FUNC_PI:
+            cur->func = (xsltTransformFunction) xsltProcessingInstruction;
+	    break;
+        case XSLT_FUNC_COPYOF:
+            cur->func = (xsltTransformFunction) xsltCopyOf;break;
+        case XSLT_FUNC_VALUEOF:
+            cur->func = (xsltTransformFunction) xsltValueOf;break;
+        case XSLT_FUNC_NUMBER:
+            cur->func = (xsltTransformFunction) xsltNumber;break;
+        case XSLT_FUNC_APPLYIMPORTS:
+            cur->func = (xsltTransformFunction) xsltApplyImports;break;
+        case XSLT_FUNC_CALLTEMPLATE:
+            cur->func = (xsltTransformFunction) xsltCallTemplate;break;
+        case XSLT_FUNC_APPLYTEMPLATES:
+            cur->func = (xsltTransformFunction) xsltApplyTemplates;break;
+        case XSLT_FUNC_CHOOSE:
+            cur->func = (xsltTransformFunction) xsltChoose;break;
+        case XSLT_FUNC_IF:
+            cur->func = (xsltTransformFunction) xsltIf;break;
+        case XSLT_FUNC_FOREACH:
+            cur->func = (xsltTransformFunction) xsltForEach;break;
+        case XSLT_FUNC_DOCUMENT:
+            cur->func = (xsltTransformFunction) xsltDocumentElem;break;
+	case XSLT_FUNC_WITHPARAM:
+	case XSLT_FUNC_PARAM:	    
+	case XSLT_FUNC_VARIABLE:	    
+	case XSLT_FUNC_WHEN:
+	case XSLT_FUNC_OTHERWISE:
+	    break;
+	default:
+	if (cur->func == NULL) {
+	    xsltTransformError(NULL, style, NULL,
+		    "xsltNewStylePreComp : no function for type %d\n", type);
+	    style->errors++;
+	}
+    }
+    cur->next = style->preComps;
+    style->preComps = (xsltElemPreCompPtr) cur;
+
+    return(cur);
+}
+
+/**
+ * xsltFreeStylePreComp:
+ * @comp:  an XSLT Style precomputed block
+ *
+ * Free up the memory allocated by @comp
+ */
+static void
+xsltFreeStylePreComp(xsltStylePreCompPtr comp) {
+    if (comp == NULL)
+	return;
+#ifdef XSLT_REFACTORED
+    /*
+    * URGENT TODO: Implement destructors.
+    */
+    switch (comp->type) {
+	case XSLT_FUNC_COPY:
+            break;
+        case XSLT_FUNC_SORT: {
+		xsltStyleItemSortPtr item = (xsltStyleItemSortPtr) comp;
+		if (item->comp != NULL)
+		    xmlXPathFreeCompExpr(item->comp);
+	    }
+            break;
+        case XSLT_FUNC_TEXT:
+            break;
+        case XSLT_FUNC_ELEMENT:
+            break;
+        case XSLT_FUNC_ATTRIBUTE:
+            break;
+        case XSLT_FUNC_COMMENT:
+            break;
+        case XSLT_FUNC_PI:
+	    break;
+        case XSLT_FUNC_COPYOF: {
+		xsltStyleItemCopyOfPtr item = (xsltStyleItemCopyOfPtr) comp;
+		if (item->comp != NULL)
+		    xmlXPathFreeCompExpr(item->comp);
+	    }
+            break;
+        case XSLT_FUNC_VALUEOF: {
+		xsltStyleItemValueOfPtr item = (xsltStyleItemValueOfPtr) comp;
+		if (item->comp != NULL)
+		    xmlXPathFreeCompExpr(item->comp);
+	    }
+            break;
+        case XSLT_FUNC_NUMBER:
+            break;
+        case XSLT_FUNC_APPLYIMPORTS:
+            break;
+        case XSLT_FUNC_CALLTEMPLATE:
+            break;
+        case XSLT_FUNC_APPLYTEMPLATES: {
+		xsltStyleItemApplyTemplatesPtr item =
+		    (xsltStyleItemApplyTemplatesPtr) comp;
+		if (item->comp != NULL)
+		    xmlXPathFreeCompExpr(item->comp);
+	    }
+            break;
+        case XSLT_FUNC_CHOOSE:
+            break;
+        case XSLT_FUNC_IF: {
+		xsltStyleItemIfPtr item = (xsltStyleItemIfPtr) comp;
+		if (item->comp != NULL)
+		    xmlXPathFreeCompExpr(item->comp);
+	    }
+            break;
+        case XSLT_FUNC_FOREACH: {
+		xsltStyleItemForEachPtr item =
+		    (xsltStyleItemForEachPtr) comp;
+		if (item->comp != NULL)
+		    xmlXPathFreeCompExpr(item->comp);
+	    }
+            break;
+        case XSLT_FUNC_DOCUMENT:
+            break;
+	case XSLT_FUNC_WITHPARAM: {
+		xsltStyleItemWithParamPtr item =
+		    (xsltStyleItemWithParamPtr) comp;
+		if (item->comp != NULL)
+		    xmlXPathFreeCompExpr(item->comp);
+	    }
+	    break;
+	case XSLT_FUNC_PARAM: {
+		xsltStyleItemParamPtr item =
+		    (xsltStyleItemParamPtr) comp;
+		if (item->comp != NULL)
+		    xmlXPathFreeCompExpr(item->comp);
+	    }
+	    break;
+	case XSLT_FUNC_VARIABLE: {
+		xsltStyleItemVariablePtr item =
+		    (xsltStyleItemVariablePtr) comp;
+		if (item->comp != NULL)
+		    xmlXPathFreeCompExpr(item->comp);
+	    }
+	    break;
+	case XSLT_FUNC_WHEN: {
+		xsltStyleItemWhenPtr item =
+		    (xsltStyleItemWhenPtr) comp;
+		if (item->comp != NULL)
+		    xmlXPathFreeCompExpr(item->comp);
+	    }
+	    break;
+	case XSLT_FUNC_OTHERWISE:
+	    break;
+	default:
+	    /* TODO: Raise error. */
+	    break;
+    }
+#else    
+    if (comp->comp != NULL)
+	xmlXPathFreeCompExpr(comp->comp);
+    if (comp->nsList != NULL)
+	xmlFree(comp->nsList);
+#endif
+
+    xmlFree(comp);
+}
+
+
+/************************************************************************
+ *									*
+ *		    XSLT-1.1 extensions					*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltDocumentComp:
+ * @style:  the XSLT stylesheet
+ * @inst:  the instruction in the stylesheet
+ * @function:  unused
+ *
+ * Pre process an XSLT-1.1 document element
+ *
+ * Returns a precompiled data structure for the element
+ */
+xsltElemPreCompPtr
+xsltDocumentComp(xsltStylesheetPtr style, xmlNodePtr inst,
+		 xsltTransformFunction function ATTRIBUTE_UNUSED) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemDocumentPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    const xmlChar *filename = NULL;
+
+    /*
+    * As of 2006-03-30, this function is currently defined in Libxslt
+    * to be used for:
+    * (in libxslt/extra.c)
+    * "output" in XSLT_SAXON_NAMESPACE
+    * "write" XSLT_XALAN_NAMESPACE
+    * "document" XSLT_XT_NAMESPACE
+    * "document" XSLT_NAMESPACE
+    * (in libexslt/common.c)
+    * "document" in EXSLT_COMMON_NAMESPACE
+    */
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemDocumentPtr)
+	xsltNewStylePreComp(style, XSLT_FUNC_DOCUMENT);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_DOCUMENT);
+#endif
+    
+    if (comp == NULL)
+	return (NULL);
+    comp->inst = inst;
+    comp->ver11 = 0;
+
+    if (xmlStrEqual(inst->name, (const xmlChar *) "output")) {
+#ifdef WITH_XSLT_DEBUG_EXTRA
+	xsltGenericDebug(xsltGenericDebugContext,
+	    "Found saxon:output extension\n");
+#endif
+	/*
+	* The element "output" is in the namespace XSLT_SAXON_NAMESPACE
+	*   (http://icl.com/saxon)
+	* The @file is in no namespace; it is an AVT.
+	*   (http://www.computerwizards.com/saxon/doc/extensions.html#saxon:output)
+	*/
+	filename = xsltEvalStaticAttrValueTemplate(style, inst,
+			 (const xmlChar *)"file",
+			 NULL, &comp->has_filename);
+    } else if (xmlStrEqual(inst->name, (const xmlChar *) "write")) {
+#ifdef WITH_XSLT_DEBUG_EXTRA
+	xsltGenericDebug(xsltGenericDebugContext,
+	    "Found xalan:write extension\n");
+#endif
+	/* the filename need to be interpreted */
+	/*
+	* TODO: Is "filename need to be interpreted" meant to be a todo?
+	*   Where will be the filename of xalan:write be processed?
+	*/
+    } else if (xmlStrEqual(inst->name, (const xmlChar *) "document")) {
+	if (inst->ns != NULL) {
+	    if (xmlStrEqual(inst->ns->href, XSLT_NAMESPACE)) {
+		/*
+		* Mark the instruction as being of
+		* XSLT version 1.1 (abandoned).
+		*/
+		comp->ver11 = 1;
+#ifdef WITH_XSLT_DEBUG_EXTRA
+		xsltGenericDebug(xsltGenericDebugContext,
+		    "Found xslt11:document construct\n");
+#endif	    		
+	    } else {		
+		if (xmlStrEqual(inst->ns->href,
+		    (const xmlChar *)"http://exslt.org/common")) {
+		    /* EXSLT. */
+#ifdef WITH_XSLT_DEBUG_EXTRA
+		    xsltGenericDebug(xsltGenericDebugContext,
+			"Found exslt:document extension\n");
+#endif
+		} else if (xmlStrEqual(inst->ns->href, XSLT_XT_NAMESPACE)) {
+		    /* James Clark's XT. */
+#ifdef WITH_XSLT_DEBUG_EXTRA
+		    xsltGenericDebug(xsltGenericDebugContext,
+			"Found xt:document extension\n");
+#endif
+		}
+	    }
+	}
+	/*
+	* The element "document" is used in conjunction with the
+	* following namespaces:
+	*
+	* 1) XSLT_NAMESPACE (http://www.w3.org/1999/XSL/Transform version 1.1)
+	*    <!ELEMENT xsl:document %template;>
+	*    <!ATTLIST xsl:document
+	*       href %avt; #REQUIRED
+	*    @href is an AVT
+	*    IMPORTANT: xsl:document was in the abandoned XSLT 1.1 draft,
+	*    it was removed and isn't available in XSLT 1.1 anymore.
+	*    In XSLT 2.0 it was renamed to xsl:result-document.
+	*
+	*   All other attributes are identical to the attributes
+	*   on xsl:output
+	*
+	* 2) EXSLT_COMMON_NAMESPACE (http://exslt.org/common)
+	*    <exsl:document
+	*       href = { uri-reference }
+	*    TODO: is @href is an AVT?
+	*
+	* 3) XSLT_XT_NAMESPACE (http://www.jclark.com/xt)
+	*     Example: <xt:document method="xml" href="myFile.xml">
+	*    TODO: is @href is an AVT?
+	*		
+	* In all cases @href is in no namespace.
+	*/
+	filename = xsltEvalStaticAttrValueTemplate(style, inst,
+	    (const xmlChar *)"href", NULL, &comp->has_filename);
+    }		
+    if (!comp->has_filename) {
+	goto error;
+    }
+    comp->filename = filename;
+
+error:
+    return ((xsltElemPreCompPtr) comp);
+}
+
+/************************************************************************
+ *									*
+ *		Most of the XSLT-1.0 transformations			*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltSortComp:
+ * @style:  the XSLT stylesheet
+ * @inst:  the xslt sort node
+ *
+ * Process the xslt sort node on the source node
+ */
+static void
+xsltSortComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemSortPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemSortPtr) xsltNewStylePreComp(style, XSLT_FUNC_SORT);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_SORT);
+#endif
+    
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    comp->stype = xsltEvalStaticAttrValueTemplate(style, inst,
+			 (const xmlChar *)"data-type",
+			 NULL, &comp->has_stype);
+    if (comp->stype != NULL) {
+	if (xmlStrEqual(comp->stype, (const xmlChar *) "text"))
+	    comp->number = 0;
+	else if (xmlStrEqual(comp->stype, (const xmlChar *) "number"))
+	    comp->number = 1;
+	else {
+	    xsltTransformError(NULL, style, inst,
+		 "xsltSortComp: no support for data-type = %s\n", comp->stype);
+	    comp->number = 0; /* use default */
+	    if (style != NULL) style->warnings++;
+	}
+    }
+    comp->order = xsltEvalStaticAttrValueTemplate(style, inst,
+			      (const xmlChar *)"order",
+			      NULL, &comp->has_order);
+    if (comp->order != NULL) {
+	if (xmlStrEqual(comp->order, (const xmlChar *) "ascending"))
+	    comp->descending = 0;
+	else if (xmlStrEqual(comp->order, (const xmlChar *) "descending"))
+	    comp->descending = 1;
+	else {
+	    xsltTransformError(NULL, style, inst,
+		 "xsltSortComp: invalid value %s for order\n", comp->order);
+	    comp->descending = 0; /* use default */
+	    if (style != NULL) style->warnings++;
+	}
+    }
+    comp->case_order = xsltEvalStaticAttrValueTemplate(style, inst,
+			      (const xmlChar *)"case-order",
+			      NULL, &comp->has_use);
+    if (comp->case_order != NULL) {
+	if (xmlStrEqual(comp->case_order, (const xmlChar *) "upper-first"))
+	    comp->lower_first = 0;
+	else if (xmlStrEqual(comp->case_order, (const xmlChar *) "lower-first"))
+	    comp->lower_first = 1;
+	else {
+	    xsltTransformError(NULL, style, inst,
+		 "xsltSortComp: invalid value %s for order\n", comp->order);
+	    comp->lower_first = 0; /* use default */
+	    if (style != NULL) style->warnings++;
+	}
+    }
+
+    comp->lang = xsltEvalStaticAttrValueTemplate(style, inst,
+				 (const xmlChar *)"lang",
+				 NULL, &comp->has_lang);
+
+    comp->select = xsltGetCNsProp(style, inst,(const xmlChar *)"select", XSLT_NAMESPACE);
+    if (comp->select == NULL) {
+	/*
+	 * The default value of the select attribute is ., which will
+	 * cause the string-value of the current node to be used as
+	 * the sort key.
+	 */
+	comp->select = xmlDictLookup(style->dict, BAD_CAST ".", 1);
+    }
+    comp->comp = xsltXPathCompile(style, comp->select);
+    if (comp->comp == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsltSortComp: could not compile select expression '%s'\n",
+	                 comp->select);
+	if (style != NULL) style->errors++;
+    }
+    if (inst->children != NULL) {
+	xsltTransformError(NULL, style, inst,
+	"xsl:sort : is not empty\n");
+	if (style != NULL) style->errors++;
+    }
+}
+
+/**
+ * xsltCopyComp:
+ * @style:  the XSLT stylesheet
+ * @inst:  the xslt copy node
+ *
+ * Process the xslt copy node on the source node
+ */
+static void
+xsltCopyComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemCopyPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemCopyPtr) xsltNewStylePreComp(style, XSLT_FUNC_COPY);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_COPY);
+#endif
+    
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+
+    comp->use = xsltGetCNsProp(style, inst, (const xmlChar *)"use-attribute-sets",
+				    XSLT_NAMESPACE);
+    if (comp->use == NULL)
+	comp->has_use = 0;
+    else
+	comp->has_use = 1;
+}
+
+/**
+ * xsltTextComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt text node
+ *
+ * Process the xslt text node on the source node
+ */
+static void
+xsltTextComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemTextPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    const xmlChar *prop;
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemTextPtr) xsltNewStylePreComp(style, XSLT_FUNC_TEXT);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_TEXT);
+#endif    
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+    comp->noescape = 0;
+
+    prop = xsltGetCNsProp(style, inst,
+	    (const xmlChar *)"disable-output-escaping",
+			XSLT_NAMESPACE);
+    if (prop != NULL) {
+	if (xmlStrEqual(prop, (const xmlChar *)"yes")) {
+	    comp->noescape = 1;
+	} else if (!xmlStrEqual(prop,
+				(const xmlChar *)"no")){
+	    xsltTransformError(NULL, style, inst,
+"xsl:text: disable-output-escaping allows only yes or no\n");
+	    if (style != NULL) style->warnings++;
+	}
+    }
+}
+
+/**
+ * xsltElementComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt element node
+ *
+ * Process the xslt element node on the source node
+ */
+static void
+xsltElementComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemElementPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    /*
+    * <xsl:element
+    *   name = { qname }
+    *   namespace = { uri-reference }
+    *   use-attribute-sets = qnames>
+    *   <!-- Content: template -->
+    * </xsl:element>
+    */
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemElementPtr) xsltNewStylePreComp(style, XSLT_FUNC_ELEMENT);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_ELEMENT);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    comp->name = xsltEvalStaticAttrValueTemplate(style, inst,
+				 (const xmlChar *)"name",
+				 NULL, &comp->has_name);
+    if (comp->name != NULL) {
+	if (xmlValidateQName(comp->name, 0)) {
+	    xsltTransformError(NULL, style, inst,
+		    "xsl:element : invalid name\n");
+	    if (style != NULL) style->errors++;
+	}
+    }
+    comp->ns = xsltEvalStaticAttrValueTemplate(style, inst,
+			 (const xmlChar *)"namespace",
+			 NULL, &comp->has_ns);
+    if (comp->has_ns == 0) {
+	xmlNsPtr defaultNs;
+
+	defaultNs = xmlSearchNs(inst->doc, inst, NULL);
+	if (defaultNs != NULL) {
+	    comp->ns = xmlDictLookup(style->dict, defaultNs->href, -1);
+	    comp->has_ns = 1;
+	}
+    }
+    comp->use = xsltEvalStaticAttrValueTemplate(style, inst,
+		       (const xmlChar *)"use-attribute-sets",
+		       NULL, &comp->has_use);
+}
+
+/**
+ * xsltAttributeComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt attribute node
+ *
+ * Process the xslt attribute node on the source node
+ */
+static void
+xsltAttributeComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemAttributePtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    /*
+    * <xsl:attribute
+    *   name = { qname }
+    *   namespace = { uri-reference }>
+    *   <!-- Content: template -->
+    * </xsl:attribute>
+    */
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemAttributePtr) xsltNewStylePreComp(style, XSLT_FUNC_ATTRIBUTE);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_ATTRIBUTE);
+#endif
+    
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    /*
+     * TODO: more computation can be done there, especially namespace lookup
+     */
+    comp->name = xsltEvalStaticAttrValueTemplate(style, inst,
+				 (const xmlChar *)"name",
+				 NULL, &comp->has_name);
+    if (comp->name != NULL) {
+	if (xmlValidateQName(comp->name, 0)) {
+	    xsltTransformError(NULL, style, inst,
+			    "xsl:attribute : invalid QName\n");
+	    if (style != NULL) style->errors++;
+	}
+    }
+    comp->ns = xsltEvalStaticAttrValueTemplate(style, inst,
+			 (const xmlChar *)"namespace",
+			 NULL, &comp->has_ns);
+
+}
+
+/**
+ * xsltCommentComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt comment node
+ *
+ * Process the xslt comment node on the source node
+ */
+static void
+xsltCommentComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemCommentPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemCommentPtr) xsltNewStylePreComp(style, XSLT_FUNC_COMMENT);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_COMMENT);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+}
+
+/**
+ * xsltProcessingInstructionComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt processing-instruction node
+ *
+ * Process the xslt processing-instruction node on the source node
+ */
+static void
+xsltProcessingInstructionComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemPIPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemPIPtr) xsltNewStylePreComp(style, XSLT_FUNC_PI);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_PI);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    comp->name = xsltEvalStaticAttrValueTemplate(style, inst,
+				 (const xmlChar *)"name",
+				 XSLT_NAMESPACE, &comp->has_name);
+}
+
+/**
+ * xsltCopyOfComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt copy-of node
+ *
+ * Process the xslt copy-of node on the source node
+ */
+static void
+xsltCopyOfComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemCopyOfPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemCopyOfPtr) xsltNewStylePreComp(style, XSLT_FUNC_COPYOF);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_COPYOF);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    comp->select = xsltGetCNsProp(style, inst, (const xmlChar *)"select",
+	                        XSLT_NAMESPACE);
+    if (comp->select == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:copy-of : select is missing\n");
+	if (style != NULL) style->errors++;
+	return;
+    }
+    comp->comp = xsltXPathCompile(style, comp->select);
+    if (comp->comp == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:copy-of : could not compile select expression '%s'\n",
+	                 comp->select);
+	if (style != NULL) style->errors++;
+    }
+}
+
+/**
+ * xsltValueOfComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt value-of node
+ *
+ * Process the xslt value-of node on the source node
+ */
+static void
+xsltValueOfComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemValueOfPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    const xmlChar *prop;
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemValueOfPtr) xsltNewStylePreComp(style, XSLT_FUNC_VALUEOF);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_VALUEOF);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    prop = xsltGetCNsProp(style, inst,
+	    (const xmlChar *)"disable-output-escaping",
+			XSLT_NAMESPACE);
+    if (prop != NULL) {
+	if (xmlStrEqual(prop, (const xmlChar *)"yes")) {
+	    comp->noescape = 1;
+	} else if (!xmlStrEqual(prop,
+				(const xmlChar *)"no")){
+	    xsltTransformError(NULL, style, inst,
+"xsl:value-of : disable-output-escaping allows only yes or no\n");
+	    if (style != NULL) style->warnings++;
+	}
+    }
+    comp->select = xsltGetCNsProp(style, inst, (const xmlChar *)"select",
+	                        XSLT_NAMESPACE);
+    if (comp->select == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:value-of : select is missing\n");
+	if (style != NULL) style->errors++;
+	return;
+    }
+    comp->comp = xsltXPathCompile(style, comp->select);
+    if (comp->comp == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:value-of : could not compile select expression '%s'\n",
+	                 comp->select);
+	if (style != NULL) style->errors++;
+    }
+}
+
+/**
+ * xsltWithParamComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt with-param node
+ *
+ * Process the xslt with-param node on the source node
+ * Allowed parents: xsl:call-template, xsl:apply-templates.
+ * <xsl:with-param
+ *  name = qname
+ *  select = expression>
+ *  <!-- Content: template -->
+ * </xsl:with-param>
+ */
+static void
+xsltWithParamComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemWithParamPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    const xmlChar *prop;
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemWithParamPtr) xsltNewStylePreComp(style, XSLT_FUNC_WITHPARAM);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_WITHPARAM);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    /*
+     * The full namespace resolution can be done statically
+     */
+    prop = xsltGetCNsProp(style, inst, (const xmlChar *)"name", XSLT_NAMESPACE);
+    if (prop == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:with-param : name is missing\n");
+	if (style != NULL) style->errors++;
+    } else {
+        const xmlChar *URI;
+
+	URI = xsltGetQNameURI2(style, inst, &prop);
+	if (prop == NULL) {
+	    if (style != NULL) style->errors++;
+	} else {
+	    comp->name = prop;
+	    comp->has_name = 1;
+	    if (URI != NULL) {
+		comp->ns = xmlStrdup(URI);
+		comp->has_ns = 1;
+	    } else {
+		comp->has_ns = 0;
+	    }
+	}
+    }
+
+    comp->select = xsltGetCNsProp(style, inst, (const xmlChar *)"select",
+	                        XSLT_NAMESPACE);
+    if (comp->select != NULL) {
+	comp->comp = xsltXPathCompile(style, comp->select);
+	if (comp->comp == NULL) {
+	    xsltTransformError(NULL, style, inst,
+		 "xsl:param : could not compile select expression '%s'\n",
+			     comp->select);
+	    if (style != NULL) style->errors++;
+	}
+	if (inst->children != NULL) {
+	    xsltTransformError(NULL, style, inst,
+	    "xsl:param : content should be empty since select is present \n");
+	    if (style != NULL) style->warnings++;
+	}
+    }
+}
+
+/**
+ * xsltNumberComp:
+ * @style: an XSLT compiled stylesheet
+ * @cur:   the xslt number node
+ *
+ * Process the xslt number node on the source node
+ */
+static void
+xsltNumberComp(xsltStylesheetPtr style, xmlNodePtr cur) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemNumberPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    const xmlChar *prop;
+
+    if ((style == NULL) || (cur == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemNumberPtr) xsltNewStylePreComp(style, XSLT_FUNC_NUMBER);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_NUMBER);
+#endif
+
+    if (comp == NULL)
+	return;
+    cur->psvi = comp;
+
+    if ((style == NULL) || (cur == NULL))
+	return;
+
+    comp->numdata.doc = cur->doc;
+    comp->numdata.node = cur;
+    comp->numdata.value = xsltGetCNsProp(style, cur, (const xmlChar *)"value",
+	                                XSLT_NAMESPACE);
+    
+    prop = xsltEvalStaticAttrValueTemplate(style, cur,
+			 (const xmlChar *)"format",
+			 XSLT_NAMESPACE, &comp->numdata.has_format);
+    if (comp->numdata.has_format == 0) {
+	comp->numdata.format = xmlDictLookup(style->dict, BAD_CAST "" , 0);
+    } else {
+	comp->numdata.format = prop;
+    }
+
+    comp->numdata.count = xsltGetCNsProp(style, cur, (const xmlChar *)"count",
+					XSLT_NAMESPACE);
+    comp->numdata.from = xsltGetCNsProp(style, cur, (const xmlChar *)"from",
+					XSLT_NAMESPACE);
+    
+    prop = xsltGetCNsProp(style, cur, (const xmlChar *)"level", XSLT_NAMESPACE);
+    if (prop != NULL) {
+	if (xmlStrEqual(prop, BAD_CAST("single")) ||
+	    xmlStrEqual(prop, BAD_CAST("multiple")) ||
+	    xmlStrEqual(prop, BAD_CAST("any"))) {
+	    comp->numdata.level = prop;
+	} else {
+	    xsltTransformError(NULL, style, cur,
+			 "xsl:number : invalid value %s for level\n", prop);
+	    if (style != NULL) style->warnings++;
+	    xmlFree((void *)(prop));
+	}
+    }
+    
+    prop = xsltGetCNsProp(style, cur, (const xmlChar *)"lang", XSLT_NAMESPACE);
+    if (prop != NULL) {
+	XSLT_TODO; /* xsl:number lang attribute */
+	xmlFree((void *)prop);
+    }
+    
+    prop = xsltGetCNsProp(style, cur, (const xmlChar *)"letter-value", XSLT_NAMESPACE);
+    if (prop != NULL) {
+	if (xmlStrEqual(prop, BAD_CAST("alphabetic"))) {
+	    xsltTransformError(NULL, style, cur,
+		 "xsl:number : letter-value 'alphabetic' not implemented\n");
+	    if (style != NULL) style->warnings++;
+	    XSLT_TODO; /* xsl:number letter-value attribute alphabetic */
+	} else if (xmlStrEqual(prop, BAD_CAST("traditional"))) {
+	    xsltTransformError(NULL, style, cur,
+		 "xsl:number : letter-value 'traditional' not implemented\n");
+	    if (style != NULL) style->warnings++;
+	    XSLT_TODO; /* xsl:number letter-value attribute traditional */
+	} else {
+	    xsltTransformError(NULL, style, cur,
+		     "xsl:number : invalid value %s for letter-value\n", prop);
+	    if (style != NULL) style->warnings++;
+	}
+    }
+    
+    prop = xsltGetCNsProp(style, cur, (const xmlChar *)"grouping-separator",
+	                XSLT_NAMESPACE);
+    if (prop != NULL) {
+        comp->numdata.groupingCharacterLen = xmlStrlen(prop);
+	comp->numdata.groupingCharacter =
+	    xsltGetUTF8Char(prop, &(comp->numdata.groupingCharacterLen));
+    }
+    
+    prop = xsltGetCNsProp(style, cur, (const xmlChar *)"grouping-size", XSLT_NAMESPACE);
+    if (prop != NULL) {
+	sscanf((char *)prop, "%d", &comp->numdata.digitsPerGroup);
+    } else {
+	comp->numdata.groupingCharacter = 0;
+    }
+
+    /* Set default values */
+    if (comp->numdata.value == NULL) {
+	if (comp->numdata.level == NULL) {
+	    comp->numdata.level = xmlDictLookup(style->dict,
+	                                        BAD_CAST"single", 6);
+	}
+    }
+    
+}
+
+/**
+ * xsltApplyImportsComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt apply-imports node
+ *
+ * Process the xslt apply-imports node on the source node
+ */
+static void
+xsltApplyImportsComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemApplyImportsPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemApplyImportsPtr) xsltNewStylePreComp(style, XSLT_FUNC_APPLYIMPORTS);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_APPLYIMPORTS);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+}
+
+/**
+ * xsltCallTemplateComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt call-template node
+ *
+ * Process the xslt call-template node on the source node
+ */
+static void
+xsltCallTemplateComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemCallTemplatePtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    const xmlChar *prop;
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemCallTemplatePtr)
+	xsltNewStylePreComp(style, XSLT_FUNC_CALLTEMPLATE);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_CALLTEMPLATE);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    /*
+     * The full template resolution can be done statically
+     */
+    prop = xsltGetCNsProp(style, inst, (const xmlChar *)"name", XSLT_NAMESPACE);
+    if (prop == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:call-template : name is missing\n");
+	if (style != NULL) style->errors++;
+    } else {
+        const xmlChar *URI;
+
+	URI = xsltGetQNameURI2(style, inst, &prop);
+	if (prop == NULL) {
+	    if (style != NULL) style->errors++;
+	} else {
+	    comp->name = prop;
+	    comp->has_name = 1;
+	    if (URI != NULL) {
+		comp->ns = URI;
+		comp->has_ns = 1;
+	    } else {
+		comp->has_ns = 0;
+	    }
+	}
+	comp->templ = NULL;
+    }
+}
+
+/**
+ * xsltApplyTemplatesComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the apply-templates node
+ *
+ * Process the apply-templates node on the source node
+ */
+static void
+xsltApplyTemplatesComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemApplyTemplatesPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    const xmlChar *prop;
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemApplyTemplatesPtr)
+	xsltNewStylePreComp(style, XSLT_FUNC_APPLYTEMPLATES);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_APPLYTEMPLATES);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    /*
+     * Get mode if any
+     */
+    prop = xsltGetCNsProp(style, inst, (const xmlChar *)"mode", XSLT_NAMESPACE);
+    if (prop != NULL) {
+        const xmlChar *URI;
+
+	URI = xsltGetQNameURI2(style, inst, &prop);
+	if (prop == NULL) {
+	    if (style != NULL) style->errors++;
+	} else {
+	    comp->mode = xmlDictLookup(style->dict, prop, -1);
+	    if (URI != NULL) {
+		comp->modeURI = xmlDictLookup(style->dict, URI, -1);
+	    } else {
+		comp->modeURI = NULL;
+	    }
+	}
+    }
+    comp->select = xsltGetCNsProp(style, inst, (const xmlChar *)"select",
+	                        XSLT_NAMESPACE);
+    if (comp->select != NULL) {
+	comp->comp = xsltXPathCompile(style, comp->select);
+	if (comp->comp == NULL) {
+	    xsltTransformError(NULL, style, inst,
+     "xsl:apply-templates : could not compile select expression '%s'\n",
+			     comp->select);
+	    if (style != NULL) style->errors++;
+	}
+    }
+
+    /* TODO: handle (or skip) the xsl:sort and xsl:with-param */
+}
+
+/**
+ * xsltChooseComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt choose node
+ *
+ * Process the xslt choose node on the source node
+ */
+static void
+xsltChooseComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemChoosePtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemChoosePtr)
+	xsltNewStylePreComp(style, XSLT_FUNC_CHOOSE);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_CHOOSE);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+}
+
+/**
+ * xsltIfComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt if node
+ *
+ * Process the xslt if node on the source node
+ */
+static void
+xsltIfComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemIfPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemIfPtr)
+	xsltNewStylePreComp(style, XSLT_FUNC_IF);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_IF);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    comp->test = xsltGetCNsProp(style, inst, (const xmlChar *)"test", XSLT_NAMESPACE);
+    if (comp->test == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:if : test is not defined\n");
+	if (style != NULL) style->errors++;
+	return;
+    }
+    comp->comp = xsltXPathCompile(style, comp->test);
+    if (comp->comp == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:if : could not compile test expression '%s'\n",
+	                 comp->test);
+	if (style != NULL) style->errors++;
+    }
+}
+
+/**
+ * xsltWhenComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt if node
+ *
+ * Process the xslt if node on the source node
+ */
+static void
+xsltWhenComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemWhenPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemWhenPtr)
+	xsltNewStylePreComp(style, XSLT_FUNC_WHEN);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_WHEN);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    comp->test = xsltGetCNsProp(style, inst, (const xmlChar *)"test", XSLT_NAMESPACE);
+    if (comp->test == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:when : test is not defined\n");
+	if (style != NULL) style->errors++;
+	return;
+    }
+    comp->comp = xsltXPathCompile(style, comp->test);
+    if (comp->comp == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:when : could not compile test expression '%s'\n",
+	                 comp->test);
+	if (style != NULL) style->errors++;
+    }
+}
+
+/**
+ * xsltForEachComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt for-each node
+ *
+ * Process the xslt for-each node on the source node
+ */
+static void
+xsltForEachComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemForEachPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemForEachPtr)
+	xsltNewStylePreComp(style, XSLT_FUNC_FOREACH);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_FOREACH);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    comp->select = xsltGetCNsProp(style, inst, (const xmlChar *)"select",
+	                        XSLT_NAMESPACE);
+    if (comp->select == NULL) {
+	xsltTransformError(NULL, style, inst,
+		"xsl:for-each : select is missing\n");
+	if (style != NULL) style->errors++;
+    } else {
+	comp->comp = xsltXPathCompile(style, comp->select);
+	if (comp->comp == NULL) {
+	    xsltTransformError(NULL, style, inst,
+     "xsl:for-each : could not compile select expression '%s'\n",
+			     comp->select);
+	    if (style != NULL) style->errors++;
+	}
+    }
+    /* TODO: handle and skip the xsl:sort */
+}
+
+/**
+ * xsltVariableComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt variable node
+ *
+ * Process the xslt variable node on the source node
+ */
+static void
+xsltVariableComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemVariablePtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    const xmlChar *prop;
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemVariablePtr)
+	xsltNewStylePreComp(style, XSLT_FUNC_VARIABLE);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_VARIABLE);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    /*
+     * The full template resolution can be done statically
+     */
+    prop = xsltGetCNsProp(style, inst, (const xmlChar *)"name", XSLT_NAMESPACE);
+    if (prop == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:variable : name is missing\n");
+	if (style != NULL) style->errors++;
+    } else {
+        const xmlChar *URI;
+
+	URI = xsltGetQNameURI2(style, inst, &prop);
+	if (prop == NULL) {
+	    if (style != NULL) style->errors++;
+	} else {
+	    comp->name = prop;
+	    comp->has_name = 1;
+	    if (URI != NULL) {
+		comp->ns = xmlDictLookup(style->dict, URI, -1);
+		comp->has_ns = 1;
+	    } else {
+		comp->has_ns = 0;
+	    }
+	}
+    }
+
+    comp->select = xsltGetCNsProp(style, inst, (const xmlChar *)"select",
+	                        XSLT_NAMESPACE);
+    if (comp->select != NULL) {
+	comp->comp = xsltXPathCompile(style, comp->select);
+	if (comp->comp == NULL) {
+	    xsltTransformError(NULL, style, inst,
+		 "xsl:variable : could not compile select expression '%s'\n",
+			     comp->select);
+	    if (style != NULL) style->errors++;
+	}
+	if (inst->children != NULL) {
+	    xsltTransformError(NULL, style, inst,
+	"xsl:variable : content should be empty since select is present \n");
+	    if (style != NULL) style->warnings++;
+	}
+    }
+}
+
+/**
+ * xsltParamComp:
+ * @style: an XSLT compiled stylesheet
+ * @inst:  the xslt param node
+ *
+ * Process the xslt param node on the source node
+ */
+static void
+xsltParamComp(xsltStylesheetPtr style, xmlNodePtr inst) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemParamPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    const xmlChar *prop;
+
+    if ((style == NULL) || (inst == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemParamPtr)
+	xsltNewStylePreComp(style, XSLT_FUNC_PARAM);
+#else
+    comp = xsltNewStylePreComp(style, XSLT_FUNC_PARAM);
+#endif
+
+    if (comp == NULL)
+	return;
+    inst->psvi = comp;
+    comp->inst = inst;
+
+    /*
+     * The full template resolution can be done statically
+     */
+    prop = xsltGetCNsProp(style, inst, (const xmlChar *)"name", XSLT_NAMESPACE);
+    if (prop == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "xsl:param : name is missing\n");
+	if (style != NULL) style->errors++;
+    } else {
+        const xmlChar *URI;
+
+	URI = xsltGetQNameURI2(style, inst, &prop);
+	if (prop == NULL) {
+	    if (style != NULL) style->errors++;
+	} else {
+	    comp->name = prop;
+	    comp->has_name = 1;
+	    if (URI != NULL) {
+		comp->ns = xmlStrdup(URI);
+		comp->has_ns = 1;
+	    } else {
+		comp->has_ns = 0;
+	    }
+	}
+    }
+
+    comp->select = xsltGetCNsProp(style, inst, (const xmlChar *)"select",
+	                        XSLT_NAMESPACE);
+    if (comp->select != NULL) {
+	comp->comp = xsltXPathCompile(style, comp->select);
+	if (comp->comp == NULL) {
+	    xsltTransformError(NULL, style, inst,
+		 "xsl:param : could not compile select expression '%s'\n",
+			     comp->select);
+	    if (style != NULL) style->errors++;
+	}
+	if (inst->children != NULL) {
+	    xsltTransformError(NULL, style, inst,
+	"xsl:param : content should be empty since select is present \n");
+	    if (style != NULL) style->warnings++;
+	}
+    }
+}
+
+#ifdef XSLT_REFACTORED
+
+/*
+* xsltCompilerGetInScopeNSInfo:
+*
+* Create and store the list of in-scope namespaces for the given
+* node in the stylesheet. If there are no changes in the in-scope
+* namespaces then the last ns-info of the ancestor axis will be returned.
+* Compilation-time only.
+*
+* Returns the ns-info or NULL if there are no namespaces in scope.
+*/
+xsltNsListPtr
+xsltCompilerGetInScopeNSInfo(xsltCompilerCtxtPtr cctxt, xmlNodePtr node)
+{
+    xsltNsListPtr nsi = NULL;
+    xmlNsPtr *list = NULL;
+    /*
+    * Create a new ns-list for this position in the node-tree.
+    * xmlGetNsList() will return NULL, if there are no ns-decls in the
+    * tree. Note that the ns-decl for the XML namespace is not added
+    * to the resulting list; the XPath module handles the XML namespace
+    * internally.
+    */
+    list = xmlGetNsList(node->doc, node);
+    if (list == NULL)
+	return(NULL);
+    /*
+    * Initialize the list hold by the stylesheet.
+    */
+    if (cctxt->sheet->inScopeNamespaces == NULL) {
+	cctxt->sheet->inScopeNamespaces = xsltPointerListCreate();
+	if (cctxt->sheet->inScopeNamespaces == NULL) {	    
+	    xsltTransformError(NULL, cctxt->sheet, NULL,
+		"xsltCompilerGetInScopeNSInfo: malloc failed.\n");	    
+	    goto internal_err;	    
+	}
+    }
+    /*
+    * Create the info-structure.
+    */
+    nsi = (xsltNsListPtr) xmlMalloc(sizeof(xsltNsList));
+    if (nsi == NULL) {	
+	xsltTransformError(NULL, cctxt->sheet, NULL,
+	    "xsltCompilerGetInScopeNSInfo: malloc failed.\n");
+	goto internal_err;
+    }
+    memset(nsi, 0, sizeof(xsltNsList));
+    nsi->list = list;
+    /*
+    * Eval the number of ns-decls; this is used to speed up
+    * XPath-context initialization.
+    */
+    while (list[nsi->number] != NULL)
+	nsi->number++;
+    /*
+    * Store the ns-list in the stylesheet.
+    */
+    if (xsltPointerListAdd(
+	(xsltPointerListPtr)cctxt->sheet->inScopeNamespaces,
+	(void *) nsi) == -1)
+    {	
+	xmlFree(nsi);
+	nsi = NULL;
+	xsltTransformError(NULL, cctxt->sheet, NULL,
+	    "xsltCompilerGetInScopeNSInfo: failed to add ns-info.\n");
+	goto internal_err;
+    }     
+
+    return(nsi);
+
+internal_err:
+    if (list != NULL)
+	xmlFree(list);    
+    cctxt->sheet->errors++;
+    return(NULL);
+}
+#endif /* XSLT_REFACTORED */
+
+/************************************************************************
+ *									*
+ *		    Generic interface					*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltFreeStylePreComps:
+ * @style:  an XSLT transformation context
+ *
+ * Free up the memory allocated by all precomputed blocks
+ */
+void
+xsltFreeStylePreComps(xsltStylesheetPtr style) {
+    xsltElemPreCompPtr cur, next;
+
+    if (style == NULL)
+	return;
+    cur = style->preComps;
+    while (cur != NULL) {
+	next = cur->next;
+	if (cur->type == XSLT_FUNC_EXTENSION)
+	    cur->free(cur);
+	else
+	    xsltFreeStylePreComp((xsltStylePreCompPtr) cur);
+	cur = next;
+    }
+}
+
+/**
+ * xsltStylePreCompute:
+ * @style:  the XSLT stylesheet
+ * @inst:  the instruction in the stylesheet
+ *
+ * Precompute an XSLT stylesheet element
+ */
+void
+xsltStylePreCompute(xsltStylesheetPtr style, xmlNodePtr inst) {
+    /*
+    * URGENT TODO: Normally inst->psvi Should never be reserved here,
+    *   BUT: since if we include the same stylesheet from
+    *   multiple imports, then the stylesheet will be parsed
+    *   again. We simply must not try to compute the stylesheet again.    
+    */
+    if (inst->psvi != NULL) 
+        return;
+    if (IS_XSLT_ELEM(inst)) {
+	xsltStylePreCompPtr cur;
+
+	if (IS_XSLT_NAME(inst, "apply-templates")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltApplyTemplatesComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "with-param")) {
+	    xsltCheckParentElement(style, inst, BAD_CAST "apply-templates",
+	                           BAD_CAST "call-template");
+	    xsltWithParamComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "value-of")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltValueOfComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "copy")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltCopyComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "copy-of")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltCopyOfComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "if")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltIfComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "when")) {
+	    xsltCheckParentElement(style, inst, BAD_CAST "choose", NULL);
+	    xsltWhenComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "choose")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltChooseComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "for-each")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltForEachComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "apply-imports")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltApplyImportsComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "attribute")) {
+	    xmlNodePtr parent = inst->parent;
+
+	    if ((parent == NULL) || (parent->ns == NULL) ||
+		((parent->ns != inst->ns) &&
+		 (!xmlStrEqual(parent->ns->href, inst->ns->href))) ||
+		(!xmlStrEqual(parent->name, BAD_CAST "attribute-set"))) {
+		xsltCheckInstructionElement(style, inst);
+	    }
+	    xsltAttributeComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "element")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltElementComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "text")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltTextComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "sort")) {
+	    xsltCheckParentElement(style, inst, BAD_CAST "apply-templates",
+	                           BAD_CAST "for-each");
+	    xsltSortComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "comment")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltCommentComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "number")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltNumberComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "processing-instruction")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltProcessingInstructionComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "call-template")) {
+	    xsltCheckInstructionElement(style, inst);
+	    xsltCallTemplateComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "param")) {
+	    if (xsltCheckTopLevelElement(style, inst, 0) == 0)
+	        xsltCheckInstructionElement(style, inst);
+	    xsltParamComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "variable")) {
+	    if (xsltCheckTopLevelElement(style, inst, 0) == 0)
+	        xsltCheckInstructionElement(style, inst);
+	    xsltVariableComp(style, inst);
+	} else if (IS_XSLT_NAME(inst, "otherwise")) {
+	    xsltCheckParentElement(style, inst, BAD_CAST "choose", NULL);
+	    xsltCheckInstructionElement(style, inst);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "template")) {
+	    xsltCheckTopLevelElement(style, inst, 1);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "output")) {
+	    xsltCheckTopLevelElement(style, inst, 1);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "preserve-space")) {
+	    xsltCheckTopLevelElement(style, inst, 1);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "strip-space")) {
+	    xsltCheckTopLevelElement(style, inst, 1);
+	    return;
+	} else if ((IS_XSLT_NAME(inst, "stylesheet")) ||
+	           (IS_XSLT_NAME(inst, "transform"))) {
+	    xmlNodePtr parent = inst->parent;
+
+	    if ((parent == NULL) || (parent->type != XML_DOCUMENT_NODE)) {
+		xsltTransformError(NULL, style, inst,
+		    "element %s only allowed only as root element\n",
+				   inst->name);
+		style->errors++;
+	    }
+	    return;
+	} else if (IS_XSLT_NAME(inst, "key")) {
+	    xsltCheckTopLevelElement(style, inst, 1);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "message")) {
+	    xsltCheckInstructionElement(style, inst);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "attribute-set")) {
+	    xsltCheckTopLevelElement(style, inst, 1);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "namespace-alias")) {
+	    xsltCheckTopLevelElement(style, inst, 1);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "include")) {
+	    xsltCheckTopLevelElement(style, inst, 1);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "import")) {
+	    xsltCheckTopLevelElement(style, inst, 1);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "decimal-format")) {
+	    xsltCheckTopLevelElement(style, inst, 1);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "fallback")) {
+	    xsltCheckInstructionElement(style, inst);
+	    return;
+	} else if (IS_XSLT_NAME(inst, "document")) {
+	    xsltCheckInstructionElement(style, inst);
+	    inst->psvi = (void *) xsltDocumentComp(style, inst,
+				(xsltTransformFunction) xsltDocumentElem);
+	} else {
+	    xsltTransformError(NULL, style, inst,
+		 "xsltStylePreCompute: unknown xsl:%s\n", inst->name);
+	    if (style != NULL) style->warnings++;
+	}
+	
+	
+	cur = (xsltStylePreCompPtr) inst->psvi;
+
+#ifdef XSLT_REFACTORED
+	/*
+	* Assign the current list of in-scope namespaces to the
+	* item. This is needed for XPath expressions.
+	*/
+	if (cur != NULL) {
+	    cur->inScopeNS = XSLT_CCTXT(style)->inode->inScopeNS;	    	    
+	}
+#else
+	/*
+	* A ns-list is build for every XSLT item in the
+	* node-tree. This is needed for XPath expressions.
+	*/
+	if (cur != NULL) {
+	    int i = 0;
+
+	    cur->nsList = xmlGetNsList(inst->doc, inst);
+            if (cur->nsList != NULL) {
+		while (cur->nsList[i] != NULL)
+		    i++;
+	    }
+	    cur->nsNr = i;
+	}
+#endif
+    } else {
+	inst->psvi =
+	    (void *) xsltPreComputeExtModuleElement(style, inst);
+
+	/*
+	 * Unknown element, maybe registered at the context
+	 * level. Mark it for later recognition.
+	 */
+	if (inst->psvi == NULL)
+	    inst->psvi = (void *) xsltExtMarker;
+    }
+}

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/preproc.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/preproc.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/preproc.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,43 @@
+/*
+ * Summary: precomputing stylesheets
+ * Description: this is the compilation phase, where most of the
+ *              stylesheet is "compiled" into faster to use data.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_PRECOMP_H__
+#define __XML_XSLT_PRECOMP_H__
+
+#include <libxml/tree.h>
+#include "xsltexports.h"
+#include "xsltInternals.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Interfaces
+ */
+extern const xmlChar *xsltExtMarker;
+
+XSLTPUBFUN xsltElemPreCompPtr XSLTCALL 
+		xsltDocumentComp	(xsltStylesheetPtr style,
+					 xmlNodePtr inst,
+					 xsltTransformFunction function);
+
+XSLTPUBFUN void XSLTCALL		
+		xsltStylePreCompute	(xsltStylesheetPtr style,
+					 xmlNodePtr inst);
+XSLTPUBFUN void XSLTCALL		
+		xsltFreeStylePreComps	(xsltStylesheetPtr style);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_PRECOMP_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/security.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/security.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/security.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,435 @@
+/*
+ * security.c: Implementation of the XSLT security framework
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+
+#ifdef HAVE_MATH_H
+#include <math.h>
+#endif
+#ifdef HAVE_FLOAT_H
+#include <float.h>
+#endif
+#ifdef HAVE_IEEEFP_H
+#include <ieeefp.h>
+#endif
+#ifdef HAVE_NAN_H
+#include <nan.h>
+#endif
+#ifdef HAVE_CTYPE_H
+#include <ctype.h>
+#endif
+
+#ifndef HAVE_STAT
+#  ifdef HAVE__STAT
+     /* MS C library seems to define stat and _stat. The definition
+      *         is identical. Still, mapping them to each other causes a warning. */
+#    ifndef _MSC_VER
+#      define stat(x,y) _stat(x,y)
+#    endif
+#    define HAVE_STAT
+#  endif
+#endif
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/uri.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "security.h"
+
+
+struct _xsltSecurityPrefs {
+    xsltSecurityCheck readFile;
+    xsltSecurityCheck createFile;
+    xsltSecurityCheck createDir;
+    xsltSecurityCheck readNet;
+    xsltSecurityCheck writeNet;
+};
+
+static xsltSecurityPrefsPtr xsltDefaultSecurityPrefs = NULL;
+
+/************************************************************************
+ *									*
+ *			Module interfaces				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltNewSecurityPrefs:
+ *
+ * Create a new security preference block
+ *
+ * Returns a pointer to the new block or NULL in case of error
+ */
+xsltSecurityPrefsPtr
+xsltNewSecurityPrefs(void) {
+    xsltSecurityPrefsPtr ret;
+
+    ret = (xsltSecurityPrefsPtr) xmlMalloc(sizeof(xsltSecurityPrefs));
+    if (ret == NULL) {
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltNewSecurityPrefs : malloc failed\n");
+	return(NULL);
+    }
+    memset(ret, 0, sizeof(xsltSecurityPrefs));
+    return(ret);
+}
+
+/**
+ * xsltFreeSecurityPrefs:
+ * @sec:  the security block to free
+ *
+ * Free up a security preference block
+ */
+void
+xsltFreeSecurityPrefs(xsltSecurityPrefsPtr sec) {
+    if (sec == NULL)
+	return;
+    xmlFree(sec);
+}
+
+/**
+ * xsltSetSecurityPrefs:
+ * @sec:  the security block to update
+ * @option:  the option to update
+ * @func:  the user callback to use for this option
+ *
+ * Update the security option to use the new callback checking function
+ *
+ * Returns -1 in case of error, 0 otherwise
+ */
+int
+xsltSetSecurityPrefs(xsltSecurityPrefsPtr sec, xsltSecurityOption option,
+                     xsltSecurityCheck func) {
+    if (sec == NULL)
+	return(-1);
+    switch (option) {
+        case XSLT_SECPREF_READ_FILE:
+            sec->readFile = func; return(0);
+        case XSLT_SECPREF_WRITE_FILE:
+            sec->createFile = func; return(0);
+        case XSLT_SECPREF_CREATE_DIRECTORY:
+            sec->createDir = func; return(0);
+        case XSLT_SECPREF_READ_NETWORK:
+            sec->readNet = func; return(0);
+        case XSLT_SECPREF_WRITE_NETWORK:
+            sec->writeNet = func; return(0);
+    }
+    return(-1);
+}
+
+/**
+ * xsltGetSecurityPrefs:
+ * @sec:  the security block to update
+ * @option:  the option to lookup
+ *
+ * Lookup the security option to get the callback checking function
+ *
+ * Returns NULL if not found, the function otherwise
+ */
+xsltSecurityCheck
+xsltGetSecurityPrefs(xsltSecurityPrefsPtr sec, xsltSecurityOption option) {
+    if (sec == NULL)
+	return(NULL);
+    switch (option) {
+        case XSLT_SECPREF_READ_FILE:
+            return(sec->readFile);
+        case XSLT_SECPREF_WRITE_FILE:
+            return(sec->createFile);
+        case XSLT_SECPREF_CREATE_DIRECTORY:
+            return(sec->createDir);
+        case XSLT_SECPREF_READ_NETWORK:
+            return(sec->readNet);
+        case XSLT_SECPREF_WRITE_NETWORK:
+            return(sec->writeNet);
+    }
+    return(NULL);
+}
+
+/**
+ * xsltSetDefaultSecurityPrefs:
+ * @sec:  the security block to use
+ *
+ * Set the default security preference application-wide
+ */
+void
+xsltSetDefaultSecurityPrefs(xsltSecurityPrefsPtr sec) {
+    xsltDefaultSecurityPrefs = sec;
+}
+
+/**
+ * xsltGetDefaultSecurityPrefs:
+ *
+ * Get the default security preference application-wide
+ *
+ * Returns the current xsltSecurityPrefsPtr in use or NULL if none
+ */
+xsltSecurityPrefsPtr
+xsltGetDefaultSecurityPrefs(void) {
+    return(xsltDefaultSecurityPrefs);
+}
+
+/**
+ * xsltSetCtxtSecurityPrefs:
+ * @sec:  the security block to use
+ * @ctxt:  an XSLT transformation context
+ *
+ * Set the security preference for a specific transformation
+ *
+ * Returns -1 in case of error, 0 otherwise
+ */
+int                    
+xsltSetCtxtSecurityPrefs(xsltSecurityPrefsPtr sec,
+	                 xsltTransformContextPtr ctxt) {
+    if (ctxt == NULL)
+	return(-1);
+    ctxt->sec = (void *) sec;
+    return(0);
+}
+
+
+/**
+ * xsltSecurityAllow:
+ * @sec:  the security block to use
+ * @ctxt:  an XSLT transformation context
+ * @value:  unused
+ *
+ * Function used to always allow an operation
+ *
+ * Returns 1 always
+ */
+int
+xsltSecurityAllow(xsltSecurityPrefsPtr sec ATTRIBUTE_UNUSED,
+	          xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,
+		  const char *value ATTRIBUTE_UNUSED) {
+    return(1);
+}
+
+/**
+ * xsltSecurityForbid:
+ * @sec:  the security block to use
+ * @ctxt:  an XSLT transformation context
+ * @value:  unused
+ *
+ * Function used to always forbid an operation
+ *
+ * Returns 0 always
+ */
+int
+xsltSecurityForbid(xsltSecurityPrefsPtr sec ATTRIBUTE_UNUSED,
+	          xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,
+		  const char *value ATTRIBUTE_UNUSED) {
+    return(0);
+}
+
+/************************************************************************
+ *									*
+ *			Internal interfaces				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltCheckFilename
+ * @path:  the path to check
+ *
+ * function checks to see if @path is a valid source
+ * (file, socket...) for XML.
+ *
+ * TODO: remove at some point !!!
+ * Local copy of xmlCheckFilename to avoid a hard dependency on
+ * a new version of libxml2 
+ *
+ * if stat is not available on the target machine,
+ * returns 1.  if stat fails, returns 0 (if calling
+ * stat on the filename fails, it can't be right).
+ * if stat succeeds and the file is a directory,
+ * returns 2.  otherwise returns 1.
+ */
+
+static int
+xsltCheckFilename (const char *path)
+{
+#ifdef HAVE_STAT
+    struct stat stat_buffer;
+
+    if (stat(path, &stat_buffer) == -1)
+        return 0;
+
+#ifdef S_ISDIR
+    if (S_ISDIR(stat_buffer.st_mode)) {
+        return 2;
+    }
+#endif
+#endif
+    return 1;
+}
+
+/**
+ * xsltCheckWrite:
+ * @sec:  the security options
+ * @ctxt:  an XSLT transformation context
+ * @URL:  the resource to be written
+ *
+ * Check if the resource is allowed to be written, if necessary makes
+ * some preliminary work like creating directories
+ *
+ * Return 1 if write is allowed, 0 if not and -1 in case or error.
+ */
+int
+xsltCheckWrite(xsltSecurityPrefsPtr sec,
+	       xsltTransformContextPtr ctxt, const xmlChar *URL) {
+    int ret;
+    xmlURIPtr uri;
+    xsltSecurityCheck check;
+
+    uri = xmlParseURI((const char *)URL);
+    if (uri == NULL) {
+        uri = xmlCreateURI();
+	if (uri == NULL) {
+	    xsltTransformError(ctxt, NULL, NULL,
+	     "xsltCheckWrite: out of memory for %s\n", URL);
+	    return(-1);
+	}
+	uri->path = (char *)xmlStrdup(URL);
+    }
+    if ((uri->scheme == NULL) ||
+	(xmlStrEqual(BAD_CAST uri->scheme, BAD_CAST "file"))) {
+	char *directory;
+
+	/*
+	 * Check if we are allowed to write this file
+	 */
+	check = xsltGetSecurityPrefs(sec, XSLT_SECPREF_WRITE_FILE);
+	if (check != NULL) {
+	    ret = check(sec, ctxt, uri->path);
+	    if (ret == 0) {
+		xsltTransformError(ctxt, NULL, NULL,
+			     "File write for %s refused\n", URL);
+		xmlFreeURI(uri);
+		return(0);
+	    }
+	}
+
+	directory = xmlParserGetDirectory (uri->path);
+	if (directory != NULL) {
+	    ret = xsltCheckFilename(directory);
+	    if (ret == 0) {
+		/*
+		 * The directory doesn't exist check for creation
+		 */
+		check = xsltGetSecurityPrefs(sec,
+				 XSLT_SECPREF_CREATE_DIRECTORY);
+		if (check != NULL) {
+		    ret = check(sec, ctxt, directory);
+		    if (ret == 0) {
+			xsltTransformError(ctxt, NULL, NULL,
+					 "Directory creation for %s refused\n",
+					 URL);
+			xmlFree(directory);
+			xmlFreeURI(uri);
+			return(0);
+		    }
+		}
+		ret = xsltCheckWrite(sec, ctxt, (const xmlChar *)directory);
+		if (ret == 1)
+		    ret = mkdir(directory, 0755);
+		if (ret < 0)
+		    return(ret);
+	    }
+	    xmlFree(directory);
+	}
+    } else {
+	/*
+	 * Check if we are allowed to write this network resource
+	 */
+	check = xsltGetSecurityPrefs(sec, XSLT_SECPREF_WRITE_NETWORK);
+	if (check != NULL) {
+	    ret = check(sec, ctxt, uri->path);
+	    if (ret == 0) {
+		xsltTransformError(ctxt, NULL, NULL,
+			     "File write for %s refused\n", URL);
+		xmlFreeURI(uri);
+		return(0);
+	    }
+	}
+    }
+    xmlFreeURI(uri);
+    return(1);
+}
+
+
+/**
+ * xsltCheckRead:
+ * @sec:  the security options
+ * @ctxt: an XSLT transformation context
+ * @URL:  the resource to be read
+ *
+ * Check if the resource is allowed to be read
+ *
+ * Return 1 if read is allowed, 0 if not and -1 in case or error.
+ */
+int
+xsltCheckRead(xsltSecurityPrefsPtr sec,
+	      xsltTransformContextPtr ctxt, const xmlChar *URL) {
+    int ret;
+    xmlURIPtr uri;
+    xsltSecurityCheck check;
+
+    uri = xmlParseURI((const char *)URL);
+    if (uri == NULL) {
+	xsltTransformError(ctxt, NULL, NULL,
+	 "xsltCheckRead: URL parsing failed for %s\n",
+			 URL);
+	return(-1);
+    }
+    if ((uri->scheme == NULL) ||
+	(xmlStrEqual(BAD_CAST uri->scheme, BAD_CAST "file"))) {
+
+	/*
+	 * Check if we are allowed to read this file
+	 */
+	check = xsltGetSecurityPrefs(sec, XSLT_SECPREF_READ_FILE);
+	if (check != NULL) {
+	    ret = check(sec, ctxt, uri->path);
+	    if (ret == 0) {
+		xsltTransformError(ctxt, NULL, NULL,
+			     "Local file read for %s refused\n", URL);
+		xmlFreeURI(uri);
+		return(0);
+	    }
+	}
+    } else {
+	/*
+	 * Check if we are allowed to write this network resource
+	 */
+	check = xsltGetSecurityPrefs(sec, XSLT_SECPREF_READ_NETWORK);
+	if (check != NULL) {
+	    ret = check(sec, ctxt, uri->path);
+	    if (ret == 0) {
+		xsltTransformError(ctxt, NULL, NULL,
+			     "Network file read for %s refused\n", URL);
+		xmlFreeURI(uri);
+		return(0);
+	    }
+	}
+    }
+    xmlFreeURI(uri);
+    return(1);
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/security.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/security.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/security.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,104 @@
+/*
+ * Summary: interface for the libxslt security framework
+ * Description: the libxslt security framework allow to restrict
+ *              the access to new resources (file or URL) from
+ *              the stylesheet at runtime.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_SECURITY_H__
+#define __XML_XSLT_SECURITY_H__
+
+#include <libxml/tree.h>
+#include "xsltexports.h"
+#include "xsltInternals.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xsltSecurityPref:
+ *
+ * structure to indicate the preferences for security in the XSLT
+ * transformation.
+ */
+typedef struct _xsltSecurityPrefs xsltSecurityPrefs;
+typedef xsltSecurityPrefs *xsltSecurityPrefsPtr;
+
+/**
+ * xsltSecurityOption:
+ *
+ * the set of option that can be configured
+ */
+typedef enum {
+    XSLT_SECPREF_READ_FILE = 1,
+    XSLT_SECPREF_WRITE_FILE,
+    XSLT_SECPREF_CREATE_DIRECTORY,
+    XSLT_SECPREF_READ_NETWORK,
+    XSLT_SECPREF_WRITE_NETWORK
+} xsltSecurityOption;
+
+/**
+ * xsltSecurityCheck:
+ *
+ * User provided function to check the value of a string like a file
+ * path or an URL ...
+ */
+typedef int (*xsltSecurityCheck)	(xsltSecurityPrefsPtr sec,
+					 xsltTransformContextPtr ctxt,
+					 const char *value);
+
+/*
+ * Module interfaces
+ */
+XSLTPUBFUN xsltSecurityPrefsPtr XSLTCALL	
+		    xsltNewSecurityPrefs	(void);
+XSLTPUBFUN void XSLTCALL			
+		    xsltFreeSecurityPrefs	(xsltSecurityPrefsPtr sec);
+XSLTPUBFUN int XSLTCALL			
+		    xsltSetSecurityPrefs	(xsltSecurityPrefsPtr sec,
+						 xsltSecurityOption option,
+						 xsltSecurityCheck func);
+XSLTPUBFUN xsltSecurityCheck XSLTCALL	
+		    xsltGetSecurityPrefs	(xsltSecurityPrefsPtr sec,
+						 xsltSecurityOption option);
+
+XSLTPUBFUN void XSLTCALL			
+		    xsltSetDefaultSecurityPrefs	(xsltSecurityPrefsPtr sec);
+XSLTPUBFUN xsltSecurityPrefsPtr XSLTCALL	
+		    xsltGetDefaultSecurityPrefs	(void);
+
+XSLTPUBFUN int XSLTCALL			
+		    xsltSetCtxtSecurityPrefs	(xsltSecurityPrefsPtr sec,
+						 xsltTransformContextPtr ctxt);
+
+XSLTPUBFUN int XSLTCALL			
+		    xsltSecurityAllow		(xsltSecurityPrefsPtr sec,
+						 xsltTransformContextPtr ctxt,
+						 const char *value);
+XSLTPUBFUN int XSLTCALL	
+		    xsltSecurityForbid		(xsltSecurityPrefsPtr sec,
+						 xsltTransformContextPtr ctxt,
+						 const char *value);
+/*
+ * internal interfaces
+ */
+XSLTPUBFUN int XSLTCALL			
+		    xsltCheckWrite		(xsltSecurityPrefsPtr sec,
+						 xsltTransformContextPtr ctxt,
+						 const xmlChar *URL);
+XSLTPUBFUN int XSLTCALL			
+		    xsltCheckRead		(xsltSecurityPrefsPtr sec,
+						 xsltTransformContextPtr ctxt,
+						 const xmlChar *URL);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_SECURITY_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/templates.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/templates.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/templates.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,574 @@
+/*
+ * templates.c: Implementation of the template processing
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/globals.h>
+#include <libxml/xmlerror.h>
+#include <libxml/tree.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/parserInternals.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "variables.h"
+#include "functions.h"
+#include "templates.h"
+#include "transform.h"
+#include "namespaces.h"
+#include "attributes.h"
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_TEMPLATES
+#endif
+
+/************************************************************************
+ *									*
+ *			Module interfaces				*
+ *									*
+ ************************************************************************/
+ 
+/**
+ * xsltEvalXPathPredicate:
+ * @ctxt:  the XSLT transformation context
+ * @comp:  the XPath compiled expression
+ * @nsList:  the namespaces in scope
+ * @nsNr:  the number of namespaces in scope
+ *
+ * Process the expression using XPath and evaluate the result as
+ * an XPath predicate
+ *
+ * Returns 1 is the predicate was true, 0 otherwise
+ */
+int
+xsltEvalXPathPredicate(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp,
+		       xmlNsPtr *nsList, int nsNr) {
+    int ret;
+    xmlXPathObjectPtr res;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+    xmlNodePtr oldInst;
+    int oldProximityPosition, oldContextSize;
+
+    oldContextSize = ctxt->xpathCtxt->contextSize;
+    oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
+    oldNsNr = ctxt->xpathCtxt->nsNr;
+    oldNamespaces = ctxt->xpathCtxt->namespaces;
+    oldInst = ctxt->inst;
+
+    ctxt->xpathCtxt->node = ctxt->node;
+    ctxt->xpathCtxt->namespaces = nsList;
+    ctxt->xpathCtxt->nsNr = nsNr;
+
+    res = xmlXPathCompiledEval(comp, ctxt->xpathCtxt);
+
+    if (res != NULL) {
+	ret = xmlXPathEvalPredicate(ctxt->xpathCtxt, res);
+	xmlXPathFreeObject(res);
+#ifdef WITH_XSLT_DEBUG_TEMPLATES
+	XSLT_TRACE(ctxt,XSLT_TRACE_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltEvalXPathPredicate: returns %d\n", ret));
+#endif
+    } else {
+#ifdef WITH_XSLT_DEBUG_TEMPLATES
+	XSLT_TRACE(ctxt,XSLT_TRACE_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltEvalXPathPredicate: failed\n"));
+#endif
+	ctxt->state = XSLT_STATE_STOPPED;
+	ret = 0;
+    }
+    ctxt->xpathCtxt->nsNr = oldNsNr;
+
+    ctxt->xpathCtxt->namespaces = oldNamespaces;
+    ctxt->inst = oldInst;
+    ctxt->xpathCtxt->contextSize = oldContextSize;
+    ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+
+    return(ret);
+}
+
+/**
+ * xsltEvalXPathStringNs:
+ * @ctxt:  the XSLT transformation context
+ * @comp:  the compiled XPath expression
+ * @nsNr:  the number of namespaces in the list
+ * @nsList:  the list of in-scope namespaces to use
+ *
+ * Process the expression using XPath, allowing to pass a namespace mapping
+ * context and get a string
+ *
+ * Returns the computed string value or NULL, must be deallocated by the
+ *    caller.
+ */
+xmlChar *
+xsltEvalXPathStringNs(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp,
+	              int nsNr, xmlNsPtr *nsList) {
+    xmlChar *ret = NULL;
+    xmlXPathObjectPtr res;
+    xmlNodePtr oldInst;
+    xmlNodePtr oldNode;
+    int	oldPos, oldSize;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+
+    oldInst = ctxt->inst;
+    oldNode = ctxt->node;
+    oldPos = ctxt->xpathCtxt->proximityPosition;
+    oldSize = ctxt->xpathCtxt->contextSize;
+    oldNsNr = ctxt->xpathCtxt->nsNr;
+    oldNamespaces = ctxt->xpathCtxt->namespaces;
+
+    ctxt->xpathCtxt->node = ctxt->node;
+    /* TODO: do we need to propagate the namespaces here ? */
+    ctxt->xpathCtxt->namespaces = nsList;
+    ctxt->xpathCtxt->nsNr = nsNr;
+    res = xmlXPathCompiledEval(comp, ctxt->xpathCtxt);
+    if (res != NULL) {
+	if (res->type != XPATH_STRING)
+	    res = xmlXPathConvertString(res);
+	if (res->type == XPATH_STRING) {
+            ret = res->stringval;
+	    res->stringval = NULL;
+	} else {
+	    xsltTransformError(ctxt, NULL, NULL,
+		 "xpath : string() function didn't return a String\n");
+	}
+	xmlXPathFreeObject(res);
+    } else {
+	ctxt->state = XSLT_STATE_STOPPED;
+    }
+#ifdef WITH_XSLT_DEBUG_TEMPLATES
+    XSLT_TRACE(ctxt,XSLT_TRACE_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+	 "xsltEvalXPathString: returns %s\n", ret));
+#endif
+    ctxt->inst = oldInst;
+    ctxt->node = oldNode;
+    ctxt->xpathCtxt->contextSize = oldSize;
+    ctxt->xpathCtxt->proximityPosition = oldPos;
+    ctxt->xpathCtxt->nsNr = oldNsNr;
+    ctxt->xpathCtxt->namespaces = oldNamespaces;
+    return(ret);
+}
+
+/**
+ * xsltEvalXPathString:
+ * @ctxt:  the XSLT transformation context
+ * @comp:  the compiled XPath expression
+ *
+ * Process the expression using XPath and get a string
+ *
+ * Returns the computed string value or NULL, must be deallocated by the
+ *    caller.
+ */
+xmlChar *
+xsltEvalXPathString(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp) {
+    return(xsltEvalXPathStringNs(ctxt, comp, 0, NULL));
+}
+
+/**
+ * xsltEvalTemplateString:
+ * @ctxt:  the XSLT transformation context
+ * @node:  the stylesheet node
+ * @parent:  the content parent
+ *
+ * Evaluate a template string value, i.e. the parent list is interpreter
+ * as template content and the resulting tree string value is returned
+ * This is needed for example by xsl:comment and xsl:processing-instruction
+ *
+ * Returns the computed string value or NULL, must be deallocated by the
+ *    caller.
+ */
+xmlChar *
+xsltEvalTemplateString(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	               xmlNodePtr parent) {
+    xmlNodePtr oldInsert, insert = NULL;
+    xmlChar *ret;
+
+    if ((ctxt == NULL) || (node == NULL) || (parent == NULL))
+	return(NULL);
+
+    if (parent->children == NULL)
+	return(NULL);
+
+    insert = xmlNewDocNode(ctxt->output, NULL,
+	                   (const xmlChar *)"fake", NULL);
+    if (insert == NULL) {
+	xsltTransformError(ctxt, NULL, node,
+		"Failed to create temporary node\n");
+	return(NULL);
+    }
+    oldInsert = ctxt->insert;
+    ctxt->insert = insert;
+
+    xsltApplyOneTemplate(ctxt, node, parent->children, NULL, NULL);
+
+    ctxt->insert = oldInsert;
+
+    ret = xmlNodeGetContent(insert);
+    if (insert != NULL)
+	xmlFreeNode(insert);
+    return(ret);
+}
+
+/**
+ * xsltAttrTemplateValueProcessNode:
+ * @ctxt:  the XSLT transformation context
+ * @str:  the attribute template node value
+ * @node:  the node hosting the attribute
+ *
+ * Process the given string, allowing to pass a namespace mapping
+ * context and return the new string value.
+ *
+ * Returns the computed string value or NULL, must be deallocated by the
+ *    caller.
+ */
+xmlChar *
+xsltAttrTemplateValueProcessNode(xsltTransformContextPtr ctxt,
+	  const xmlChar *str, xmlNodePtr node) {
+    xmlChar *ret = NULL;
+    const xmlChar *cur;
+    xmlChar *expr, *val;
+    xmlNsPtr *nsList = NULL;
+    int nsNr = 0;
+
+    if (str == NULL) return(NULL);
+    if (*str == 0)
+	return(xmlStrndup((xmlChar *)"", 0));
+
+    cur = str;
+    while (*cur != 0) {
+	if (*cur == '{') {
+	    if (*(cur+1) == '{') {	/* escaped '{' */
+	        cur++;
+		ret = xmlStrncat(ret, str, cur - str);
+		cur++;
+		str = cur;
+		continue;
+	    }
+	    ret = xmlStrncat(ret, str, cur - str);
+	    str = cur;
+	    cur++;
+	    while ((*cur != 0) && (*cur != '}')) cur++;
+	    if (*cur == 0) {
+	        xsltTransformError(ctxt, NULL, NULL,
+			"xsltAttrTemplateValueProcessNode: unmatched '{'\n");
+		ret = xmlStrncat(ret, str, cur - str);
+		return(ret);
+	    }
+	    str++;
+	    expr = xmlStrndup(str, cur - str);
+	    if (expr == NULL)
+		return(ret);
+	    else if (*expr == '{') {
+		ret = xmlStrcat(ret, expr);
+		xmlFree(expr);
+	    } else {
+		xmlXPathCompExprPtr comp;
+		/*
+		 * TODO: keep precompiled form around
+		 */
+		if ((nsList == NULL) && (node != NULL)) {
+		    int i = 0;
+
+		    nsList = xmlGetNsList(node->doc, node);
+		    if (nsList != NULL) {
+			while (nsList[i] != NULL)
+			    i++;
+			nsNr = i;
+		    }
+		}
+		comp = xmlXPathCompile(expr);
+                val = xsltEvalXPathStringNs(ctxt, comp, nsNr, nsList);
+		xmlXPathFreeCompExpr(comp);
+		xmlFree(expr);
+		if (val != NULL) {
+		    ret = xmlStrcat(ret, val);
+		    xmlFree(val);
+		}
+	    }
+	    cur++;
+	    str = cur;
+	} else if (*cur == '}') {
+	    cur++;
+	    if (*cur == '}') {	/* escaped '}' */
+		ret = xmlStrncat(ret, str, cur - str);
+		cur++;
+		str = cur;
+		continue;
+	    } else {
+	        xsltTransformError(ctxt, NULL, NULL,
+		     "xsltAttrTemplateValueProcessNode: unmatched '}'\n");
+	    }
+	} else
+	    cur++;
+    }
+    if (cur != str) {
+	ret = xmlStrncat(ret, str, cur - str);
+    }
+
+    if (nsList != NULL)
+	xmlFree(nsList);
+
+    return(ret);
+}
+
+/**
+ * xsltAttrTemplateValueProcess:
+ * @ctxt:  the XSLT transformation context
+ * @str:  the attribute template node value
+ *
+ * Process the given node and return the new string value.
+ *
+ * Returns the computed string value or NULL, must be deallocated by the
+ *    caller.
+ */
+xmlChar *
+xsltAttrTemplateValueProcess(xsltTransformContextPtr ctxt, const xmlChar *str) {
+    return(xsltAttrTemplateValueProcessNode(ctxt, str, NULL));
+}
+
+/**
+ * xsltEvalAttrValueTemplate:
+ * @ctxt:  the XSLT transformation context
+ * @node:  the stylesheet node
+ * @name:  the attribute QName
+ * @ns:  the attribute namespace URI
+ *
+ * Evaluate a attribute value template, i.e. the attribute value can
+ * contain expressions contained in curly braces ({}) and those are
+ * substituted by they computed value.
+ *
+ * Returns the computed string value or NULL, must be deallocated by the
+ *    caller.
+ */
+xmlChar *
+xsltEvalAttrValueTemplate(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	                  const xmlChar *name, const xmlChar *ns) {
+    xmlChar *ret;
+    xmlChar *expr;
+
+    if ((ctxt == NULL) || (node == NULL) || (name == NULL))
+	return(NULL);
+
+    expr = xsltGetNsProp(node, name, ns);
+    if (expr == NULL)
+	return(NULL);
+
+    /*
+     * TODO: though now {} is detected ahead, it would still be good to
+     *       optimize both functions to keep the splitted value if the
+     *       attribute content and the XPath precompiled expressions around
+     */
+
+    ret = xsltAttrTemplateValueProcessNode(ctxt, expr, node);
+#ifdef WITH_XSLT_DEBUG_TEMPLATES
+    XSLT_TRACE(ctxt,XSLT_TRACE_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+	 "xsltEvalAttrValueTemplate: %s returns %s\n", expr, ret));
+#endif
+    if (expr != NULL)
+	xmlFree(expr);
+    return(ret);
+}
+
+/**
+ * xsltEvalStaticAttrValueTemplate:
+ * @style:  the XSLT stylesheet
+ * @node:  the stylesheet node
+ * @name:  the attribute Name
+ * @ns:  the attribute namespace URI
+ * @found:  indicator whether the attribute is present
+ *
+ * Check if an attribute value template has a static value, i.e. the
+ * attribute value does not contain expressions contained in curly braces ({})
+ *
+ * Returns the static string value or NULL, must be deallocated by the
+ *    caller.
+ */
+const xmlChar *
+xsltEvalStaticAttrValueTemplate(xsltStylesheetPtr style, xmlNodePtr node,
+			const xmlChar *name, const xmlChar *ns, int *found) {
+    const xmlChar *ret;
+    xmlChar *expr;
+
+    if ((style == NULL) || (node == NULL) || (name == NULL))
+	return(NULL);
+
+    expr = xsltGetNsProp(node, name, ns);
+    if (expr == NULL) {
+	*found = 0;
+	return(NULL);
+    }
+    *found = 1;
+
+    ret = xmlStrchr(expr, '{');
+    if (ret != NULL) {
+	xmlFree(expr);
+	return(NULL);
+    }
+    ret = xmlDictLookup(style->dict, expr, -1);
+    xmlFree(expr);
+    return(ret);
+}
+
+/**
+ * xsltAttrTemplateProcess:
+ * @ctxt:  the XSLT transformation context
+ * @target:  the result node
+ * @cur:  the attribute template node
+ *
+ * Process the given attribute and return the new processed copy.
+ *
+ * Returns the attribute replacement.
+ */
+xmlAttrPtr
+xsltAttrTemplateProcess(xsltTransformContextPtr ctxt, xmlNodePtr target,
+	                xmlAttrPtr cur) {
+    const xmlChar *value;
+    xmlNsPtr ns;
+    xmlAttrPtr ret;
+    if ((ctxt == NULL) || (cur == NULL) || (target == NULL))
+	return(NULL);
+    
+    if (cur->type != XML_ATTRIBUTE_NODE)
+	return(NULL);
+
+    if ((cur->children == NULL) || (cur->children->type != XML_TEXT_NODE) ||
+        (cur->children->next != NULL)) {
+	xsltTransformError(ctxt, NULL, cur->parent,
+		"attribute %s content problem\n", cur->name);
+        return(NULL);
+    }
+    value = cur->children->content;
+    if (value == NULL)
+        value = xmlDictLookup(ctxt->dict, BAD_CAST "", 0);
+    if ((cur->ns != NULL) &&
+	(xmlStrEqual(cur->ns->href, XSLT_NAMESPACE))) {
+	if (xmlStrEqual(cur->name, (const xmlChar *)"use-attribute-sets")) {
+	    xsltApplyAttributeSet(ctxt, ctxt->node, NULL, value);
+	}
+	return(NULL);
+    }
+
+    ret = target->properties;
+    while (ret != NULL) {
+        if (xmlStrEqual(ret->name, cur->name)) {
+	    if (cur->ns == NULL) {
+	        if (ret->ns == NULL)
+		    break;
+	    } else {
+	        if ((ret->ns != NULL) &&
+		    (xmlStrEqual(ret->ns->href, cur->ns->href)))
+		    break;
+	    }
+	}
+        ret = ret->next;
+    }
+    if (ret != NULL) {
+        /* free the existing value */
+	xmlFreeNodeList(ret->children);
+	ret->children = ret->last = NULL;
+    } else {
+        /* create a new attribute */
+	if (cur->ns != NULL)
+	    ns = xsltGetPlainNamespace(ctxt, cur->parent, cur->ns, target);
+	else
+	    ns = NULL;
+	ret = xmlNewNsProp(target, ns, cur->name, NULL);
+    }
+    if (ret != NULL) {
+        xmlNodePtr text;
+
+        text = xmlNewText(NULL);
+	if (text != NULL) {
+	    ret->last = ret->children = text;
+	    text->parent = (xmlNodePtr) ret;
+	    text->doc = ret->doc;
+	    if (cur->psvi != NULL) {
+		xmlChar *val;
+		val = xsltEvalAVT(ctxt, cur->psvi, cur->parent);
+		if (val == NULL) {
+		    text->content = xmlStrdup(BAD_CAST "runtime error");
+		} else {
+		    text->content = val;
+		}
+	    } else if ((ctxt->internalized) && (target != NULL) &&
+	               (target->doc != NULL) &&
+		       (target->doc->dict == ctxt->dict)) {
+		text->content = (xmlChar *) value;
+	    } else {
+		text->content = xmlStrdup(value);
+	    }
+	}
+    } else {
+	xsltTransformError(ctxt, NULL, cur->parent,
+		"Failed to create attribute %s\n", cur->name);
+    }
+    return(ret);
+}
+
+
+/**
+ * xsltAttrListTemplateProcess:
+ * @ctxt:  the XSLT transformation context
+ * @target:  the element where the attributes will be grafted
+ * @cur:  the first attribute
+ *
+ * Do a copy of an attribute list with attribute template processing
+ *
+ * Returns: a new xmlAttrPtr, or NULL in case of error.
+ */
+xmlAttrPtr
+xsltAttrListTemplateProcess(xsltTransformContextPtr ctxt, 
+	                    xmlNodePtr target, xmlAttrPtr cur) {
+    xmlAttrPtr ret = NULL;
+    xmlAttrPtr q;
+    xmlNodePtr oldInsert;
+
+    oldInsert = ctxt->insert;
+    ctxt->insert = target;
+    while (cur != NULL) {
+        q = xsltAttrTemplateProcess(ctxt, target, cur);
+	if (q != NULL) {
+	    q->parent = target;
+	    q->doc = target->doc;
+	    if (ret == NULL) {
+		ret = q;
+	    }
+	}
+	cur = cur->next;
+    }
+    ctxt->insert = oldInsert;
+    return(ret);
+}
+
+
+/**
+ * xsltTemplateProcess:
+ * @ctxt:  the XSLT transformation context
+ * @node:  the attribute template node
+ *
+ * Process the given node and return the new string value.
+ *
+ * Returns the computed tree replacement
+ */
+xmlNodePtr *
+xsltTemplateProcess(xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED, xmlNodePtr node) {
+    if (node == NULL)
+	return(NULL);
+    
+    return(0);
+}
+
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/templates.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/templates.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/templates.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,77 @@
+/*
+ * Summary: interface for the template processing
+ * Description: This set of routine encapsulates XPath calls
+ *              and Attribute Value Templates evaluation.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_TEMPLATES_H__
+#define __XML_XSLT_TEMPLATES_H__
+
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include "xsltexports.h"
+#include "xsltInternals.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+XSLTPUBFUN int XSLTCALL		
+		xsltEvalXPathPredicate		(xsltTransformContextPtr ctxt,
+						 xmlXPathCompExprPtr comp,
+		                                 xmlNsPtr *nsList,
+						 int nsNr);
+XSLTPUBFUN xmlChar * XSLTCALL	
+		xsltEvalTemplateString		(xsltTransformContextPtr ctxt,
+						 xmlNodePtr node,
+						 xmlNodePtr parent);
+XSLTPUBFUN xmlChar * XSLTCALL	
+		xsltEvalAttrValueTemplate	(xsltTransformContextPtr ctxt,
+						 xmlNodePtr node,
+						 const xmlChar *name,
+						 const xmlChar *ns);
+XSLTPUBFUN const xmlChar * XSLTCALL	
+		xsltEvalStaticAttrValueTemplate	(xsltStylesheetPtr style,
+						 xmlNodePtr node,
+						 const xmlChar *name,
+						 const xmlChar *ns,
+						 int *found);
+
+/* TODO: this is obviously broken ... the namespaces should be passed too ! */
+XSLTPUBFUN xmlChar * XSLTCALL	
+		xsltEvalXPathString		(xsltTransformContextPtr ctxt,
+						 xmlXPathCompExprPtr comp);
+XSLTPUBFUN xmlChar * XSLTCALL	
+		xsltEvalXPathStringNs		(xsltTransformContextPtr ctxt,
+						 xmlXPathCompExprPtr comp,
+						 int nsNr,
+						 xmlNsPtr *nsList);
+
+XSLTPUBFUN xmlNodePtr * XSLTCALL	
+		xsltTemplateProcess		(xsltTransformContextPtr ctxt,
+						 xmlNodePtr node);
+XSLTPUBFUN xmlAttrPtr XSLTCALL	
+		xsltAttrListTemplateProcess	(xsltTransformContextPtr ctxt,
+						 xmlNodePtr target,
+						 xmlAttrPtr cur);
+XSLTPUBFUN xmlAttrPtr XSLTCALL	
+		xsltAttrTemplateProcess		(xsltTransformContextPtr ctxt,
+						 xmlNodePtr target,
+						 xmlAttrPtr attr);
+XSLTPUBFUN xmlChar * XSLTCALL	
+		xsltAttrTemplateValueProcess	(xsltTransformContextPtr ctxt,
+						 const xmlChar* attr);
+XSLTPUBFUN xmlChar * XSLTCALL	
+		xsltAttrTemplateValueProcessNode(xsltTransformContextPtr ctxt,
+						 const xmlChar* str,
+						 xmlNodePtr node);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_TEMPLATES_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/transform.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/transform.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/transform.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4734 @@
+/*
+ * transform.c: Implementation of the XSL Transformation 1.0 engine
+ *              transform part, i.e. applying a Stylesheet to a document
+ *
+ * References:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ *   Michael Kay "XSLT Programmer's Reference" pp 637-643
+ *   Writing Multiple Output Files
+ *
+ *   XSLT-1.1 Working Draft
+ *   http://www.w3.org/TR/xslt11#multiple-output
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <libxml/valid.h>
+#include <libxml/hash.h>
+#include <libxml/encoding.h>
+#include <libxml/xmlerror.h>
+#include <libxml/xpath.h>
+#include <libxml/parserInternals.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/debugXML.h>
+#include <libxml/uri.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "pattern.h"
+#include "transform.h"
+#include "variables.h"
+#include "numbersInternals.h"
+#include "namespaces.h"
+#include "attributes.h"
+#include "templates.h"
+#include "imports.h"
+#include "keys.h"
+#include "documents.h"
+#include "extensions.h"
+#include "extra.h"
+#include "preproc.h"
+#include "security.h"
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_EXTRA
+#define WITH_XSLT_DEBUG_PROCESS
+#endif
+
+#define XSLT_GENERATE_HTML_DOCTYPE
+#ifdef XSLT_GENERATE_HTML_DOCTYPE
+static int xsltGetHTMLIDs(const xmlChar *version, const xmlChar **publicID,
+			  const xmlChar **systemID);
+#endif
+
+static void
+xsltApplyOneTemplateInt(xsltTransformContextPtr ctxt, xmlNodePtr node,
+                     xmlNodePtr list, xsltTemplatePtr templ,
+                     xsltStackElemPtr params, int notcur);
+
+int xsltMaxDepth = 5000;
+
+/*
+ * Useful macros
+ */
+
+#ifndef FALSE
+# define FALSE (0 == 1)
+# define TRUE (!FALSE)
+#endif
+
+#define IS_BLANK_NODE(n)						\
+    (((n)->type == XML_TEXT_NODE) && (xsltIsBlank((n)->content)))
+
+/**
+ * templPush:
+ * @ctxt: the transformation context
+ * @value:  the template to push on the stack
+ *
+ * Push a template on the stack
+ *
+ * Returns the new index in the stack or 0 in case of error
+ */
+static int
+templPush(xsltTransformContextPtr ctxt, xsltTemplatePtr value)
+{
+    if (ctxt->templMax == 0) {
+        ctxt->templMax = 4;
+        ctxt->templTab =
+            (xsltTemplatePtr *) xmlMalloc(ctxt->templMax *
+                                          sizeof(ctxt->templTab[0]));
+        if (ctxt->templTab == NULL) {
+            xmlGenericError(xmlGenericErrorContext, "malloc failed !\n");
+            return (0);
+        }
+    }
+    if (ctxt->templNr >= ctxt->templMax) {
+        ctxt->templMax *= 2;
+        ctxt->templTab =
+            (xsltTemplatePtr *) xmlRealloc(ctxt->templTab,
+                                           ctxt->templMax *
+                                           sizeof(ctxt->templTab[0]));
+        if (ctxt->templTab == NULL) {
+            xmlGenericError(xmlGenericErrorContext, "realloc failed !\n");
+            return (0);
+        }
+    }
+    ctxt->templTab[ctxt->templNr] = value;
+    ctxt->templ = value;
+    return (ctxt->templNr++);
+}
+/**
+ * templPop:
+ * @ctxt: the transformation context
+ *
+ * Pop a template value from the stack
+ *
+ * Returns the stored template value
+ */
+static xsltTemplatePtr
+templPop(xsltTransformContextPtr ctxt)
+{
+    xsltTemplatePtr ret;
+
+    if (ctxt->templNr <= 0)
+        return (0);
+    ctxt->templNr--;
+    if (ctxt->templNr > 0)
+        ctxt->templ = ctxt->templTab[ctxt->templNr - 1];
+    else
+        ctxt->templ = (xsltTemplatePtr) 0;
+    ret = ctxt->templTab[ctxt->templNr];
+    ctxt->templTab[ctxt->templNr] = 0;
+    return (ret);
+}
+/**
+ * varsPush:
+ * @ctxt: the transformation context
+ * @value:  the variable to push on the stack
+ *
+ * Push a variable on the stack
+ *
+ * Returns the new index in the stack or 0 in case of error
+ */
+static int
+varsPush(xsltTransformContextPtr ctxt, xsltStackElemPtr value)
+{
+    if (ctxt->varsMax == 0) {
+        ctxt->varsMax = 4;
+        ctxt->varsTab =
+            (xsltStackElemPtr *) xmlMalloc(ctxt->varsMax *
+                                           sizeof(ctxt->varsTab[0]));
+        if (ctxt->varsTab == NULL) {
+            xmlGenericError(xmlGenericErrorContext, "malloc failed !\n");
+            return (0);
+        }
+    }
+    if (ctxt->varsNr >= ctxt->varsMax) {
+        ctxt->varsMax *= 2;
+        ctxt->varsTab =
+            (xsltStackElemPtr *) xmlRealloc(ctxt->varsTab,
+                                            ctxt->varsMax *
+                                            sizeof(ctxt->varsTab[0]));
+        if (ctxt->varsTab == NULL) {
+            xmlGenericError(xmlGenericErrorContext, "realloc failed !\n");
+            return (0);
+        }
+    }
+    ctxt->varsTab[ctxt->varsNr] = value;
+    ctxt->vars = value;
+    return (ctxt->varsNr++);
+}
+/**
+ * varsPop:
+ * @ctxt: the transformation context
+ *
+ * Pop a variable value from the stack
+ *
+ * Returns the stored variable value
+ */
+static xsltStackElemPtr
+varsPop(xsltTransformContextPtr ctxt)
+{
+    xsltStackElemPtr ret;
+
+    if (ctxt->varsNr <= 0)
+        return (0);
+    ctxt->varsNr--;
+    if (ctxt->varsNr > 0)
+        ctxt->vars = ctxt->varsTab[ctxt->varsNr - 1];
+    else
+        ctxt->vars = (xsltStackElemPtr) 0;
+    ret = ctxt->varsTab[ctxt->varsNr];
+    ctxt->varsTab[ctxt->varsNr] = 0;
+    return (ret);
+}
+/**
+ * profPush:
+ * @ctxt: the transformation context
+ * @value:  the profiling value to push on the stack
+ *
+ * Push a profiling value on the stack
+ *
+ * Returns the new index in the stack or 0 in case of error
+ */
+static int
+profPush(xsltTransformContextPtr ctxt, long value)
+{
+    if (ctxt->profMax == 0) {
+        ctxt->profMax = 4;
+        ctxt->profTab =
+            (long *) xmlMalloc(ctxt->profMax * sizeof(ctxt->profTab[0]));
+        if (ctxt->profTab == NULL) {
+            xmlGenericError(xmlGenericErrorContext, "malloc failed !\n");
+            return (0);
+        }
+    }
+    if (ctxt->profNr >= ctxt->profMax) {
+        ctxt->profMax *= 2;
+        ctxt->profTab =
+            (long *) xmlRealloc(ctxt->profTab,
+                                ctxt->profMax * sizeof(ctxt->profTab[0]));
+        if (ctxt->profTab == NULL) {
+            xmlGenericError(xmlGenericErrorContext, "realloc failed !\n");
+            return (0);
+        }
+    }
+    ctxt->profTab[ctxt->profNr] = value;
+    ctxt->prof = value;
+    return (ctxt->profNr++);
+}
+/**
+ * profPop:
+ * @ctxt: the transformation context
+ *
+ * Pop a profiling value from the stack
+ *
+ * Returns the stored profiling value
+ */
+static long
+profPop(xsltTransformContextPtr ctxt)
+{
+    long ret;
+
+    if (ctxt->profNr <= 0)
+        return (0);
+    ctxt->profNr--;
+    if (ctxt->profNr > 0)
+        ctxt->prof = ctxt->profTab[ctxt->profNr - 1];
+    else
+        ctxt->prof = (long) 0;
+    ret = ctxt->profTab[ctxt->profNr];
+    ctxt->profTab[ctxt->profNr] = 0;
+    return (ret);
+}
+
+/************************************************************************
+ *									*
+ *			XInclude default settings			*
+ *									*
+ ************************************************************************/
+
+static int xsltDoXIncludeDefault = 0;
+
+/**
+ * xsltSetXIncludeDefault:
+ * @xinclude: whether to do XInclude processing
+ *
+ * Set whether XInclude should be processed on document being loaded by default
+ */
+void
+xsltSetXIncludeDefault(int xinclude) {
+    xsltDoXIncludeDefault = (xinclude != 0);
+}
+
+/**
+ * xsltGetXIncludeDefault:
+ *
+ * Provides the default state for XInclude processing
+ *
+ * Returns 0 if there is no processing 1 otherwise
+ */
+int
+xsltGetXIncludeDefault(void) {
+    return(xsltDoXIncludeDefault);
+}
+
+unsigned long xsltDefaultTrace = (unsigned long) XSLT_TRACE_ALL;
+
+/**
+ * xsltDebugSetDefaultTrace:
+ * @val: tracing level mask
+ *
+ * Set the default debug tracing level mask
+ */
+void xsltDebugSetDefaultTrace(xsltDebugTraceCodes val) {
+	xsltDefaultTrace = val;
+}
+
+/**
+ * xsltDebugGetDefaultTrace:
+ *
+ * Get the current default debug tracing level mask
+ *
+ * Returns the current default debug tracing level mask
+ */
+xsltDebugTraceCodes xsltDebugGetDefaultTrace() {
+	return xsltDefaultTrace;
+}
+
+/************************************************************************
+ *									*
+ *			Handling of Transformation Contexts		*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltNewTransformContext:
+ * @style:  a parsed XSLT stylesheet
+ * @doc:  the input document
+ *
+ * Create a new XSLT TransformContext
+ *
+ * Returns the newly allocated xsltTransformContextPtr or NULL in case of error
+ */
+xsltTransformContextPtr
+xsltNewTransformContext(xsltStylesheetPtr style, xmlDocPtr doc) {
+    xsltTransformContextPtr cur;
+    xsltDocumentPtr docu;
+    int i;
+
+    cur = (xsltTransformContextPtr) xmlMalloc(sizeof(xsltTransformContext));
+    if (cur == NULL) {
+	xsltTransformError(NULL, NULL, (xmlNodePtr)doc,
+		"xsltNewTransformContext : malloc failed\n");
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltTransformContext));
+
+    /*
+     * setup of the dictionnary must be done early as some of the
+     * processing later like key handling may need it.
+     */
+    cur->dict = xmlDictCreateSub(style->dict);
+    cur->internalized = ((style->internalized) && (cur->dict != NULL));
+#ifdef WITH_XSLT_DEBUG
+    xsltGenericDebug(xsltGenericDebugContext,
+	     "Creating sub-dictionary from stylesheet for transformation\n");
+#endif
+
+    /*
+     * initialize the template stack
+     */
+    cur->templTab = (xsltTemplatePtr *)
+	        xmlMalloc(10 * sizeof(xsltTemplatePtr));
+    if (cur->templTab == NULL) {
+	xsltTransformError(NULL, NULL, (xmlNodePtr) doc,
+		"xsltNewTransformContext: out of memory\n");
+	xmlFree(cur);
+	return(NULL);
+    }
+    cur->templNr = 0;
+    cur->templMax = 5;
+    cur->templ = NULL;
+
+    /*
+     * initialize the variables stack
+     */
+    cur->varsTab = (xsltStackElemPtr *)
+	        xmlMalloc(10 * sizeof(xsltStackElemPtr));
+    if (cur->varsTab == NULL) {
+        xmlGenericError(xmlGenericErrorContext,
+		"xsltNewTransformContext: out of memory\n");
+	xmlFree(cur->templTab);
+	xmlFree(cur);
+	return(NULL);
+    }
+    cur->varsNr = 0;
+    cur->varsMax = 5;
+    cur->vars = NULL;
+    cur->varsBase = 0;
+
+    /*
+     * the profiling stack is not initialized by default
+     */
+    cur->profTab = NULL;
+    cur->profNr = 0;
+    cur->profMax = 0;
+    cur->prof = 0;
+
+    cur->style = style;
+    xmlXPathInit();
+    cur->xpathCtxt = xmlXPathNewContext(doc);
+    if (cur->xpathCtxt == NULL) {
+	xsltTransformError(NULL, NULL, (xmlNodePtr) doc,
+		"xsltNewTransformContext : xmlXPathNewContext failed\n");
+	xmlFree(cur->templTab);
+	xmlFree(cur->varsTab);
+	xmlFree(cur);
+	return(NULL);
+    }
+    cur->xpathCtxt->proximityPosition = 0;
+    cur->xpathCtxt->contextSize = 0;
+
+    /*
+     * Initialize the extras array
+     */
+    if (style->extrasNr != 0) {
+	cur->extrasMax = style->extrasNr + 20;
+	cur->extras = (xsltRuntimeExtraPtr) 
+	    xmlMalloc(cur->extrasMax * sizeof(xsltRuntimeExtra));
+	if (cur->extras == NULL) {
+	    xmlGenericError(xmlGenericErrorContext,
+		    "xsltNewTransformContext: out of memory\n");
+	    xmlFree(cur->xpathCtxt);
+	    xmlFree(cur->varsTab);
+	    xmlFree(cur->templTab);
+	    xmlFree(cur);
+	    return(NULL);
+	}
+	cur->extrasNr = style->extrasNr;
+	for (i = 0;i < cur->extrasMax;i++) {
+	    cur->extras[i].info = NULL;
+	    cur->extras[i].deallocate = NULL;
+	    cur->extras[i].val.ptr = NULL;
+	}
+    } else {
+	cur->extras = NULL;
+	cur->extrasNr = 0;
+	cur->extrasMax = 0;
+    }
+
+    XSLT_REGISTER_VARIABLE_LOOKUP(cur);
+    XSLT_REGISTER_FUNCTION_LOOKUP(cur);
+    cur->xpathCtxt->nsHash = style->nsHash;
+    /*
+     * Initialize the registered external modules
+     */
+    xsltInitCtxtExts(cur);
+    /*
+     * Setup document element ordering for later efficiencies
+     * (bug 133289)
+     */
+    if (xslDebugStatus == XSLT_DEBUG_NONE)
+        xmlXPathOrderDocElems(doc);
+    /*
+     * Must set parserOptions before calling xsltNewDocument
+     * (bug 164530)
+     */
+    cur->parserOptions = XSLT_PARSE_OPTIONS;
+    docu = xsltNewDocument(cur, doc);
+    if (docu == NULL) {
+	xsltTransformError(cur, NULL, (xmlNodePtr)doc,
+		"xsltNewTransformContext : xsltNewDocument failed\n");
+	xmlFree(cur->templTab);
+	xmlFree(cur->varsTab);
+	xmlFree(cur);
+	return(NULL);
+    }
+    docu->main = 1;
+    cur->document = docu;
+    cur->inst = NULL;
+    cur->outputFile = NULL;
+    cur->sec = xsltGetDefaultSecurityPrefs();
+    cur->debugStatus = xslDebugStatus;
+    cur->traceCode = (unsigned long*) &xsltDefaultTrace;
+    cur->xinclude = xsltGetXIncludeDefault();
+
+    return(cur);
+}
+
+/**
+ * xsltFreeTransformContext:
+ * @ctxt:  an XSLT parser context
+ *
+ * Free up the memory allocated by @ctxt
+ */
+void
+xsltFreeTransformContext(xsltTransformContextPtr ctxt) {
+    if (ctxt == NULL)
+	return;
+
+    /*
+     * Shutdown the extension modules associated to the stylesheet
+     * used if needed.
+     */
+    xsltShutdownCtxtExts(ctxt);
+
+    if (ctxt->xpathCtxt != NULL) {
+	ctxt->xpathCtxt->nsHash = NULL;
+	xmlXPathFreeContext(ctxt->xpathCtxt);
+    }
+    if (ctxt->templTab != NULL)
+	xmlFree(ctxt->templTab);
+    if (ctxt->varsTab != NULL)
+	xmlFree(ctxt->varsTab);
+    if (ctxt->profTab != NULL)
+	xmlFree(ctxt->profTab);
+    if ((ctxt->extrasNr > 0) && (ctxt->extras != NULL)) {
+	int i;
+
+	for (i = 0;i < ctxt->extrasNr;i++) {
+	    if ((ctxt->extras[i].deallocate != NULL) &&
+		(ctxt->extras[i].info != NULL))
+		ctxt->extras[i].deallocate(ctxt->extras[i].info);
+	}
+	xmlFree(ctxt->extras);
+    }
+    xsltFreeGlobalVariables(ctxt);
+    xsltFreeDocuments(ctxt);
+    xsltFreeCtxtExts(ctxt);
+    xsltFreeRVTs(ctxt);
+    xmlDictFree(ctxt->dict);
+#ifdef WITH_XSLT_DEBUG
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "freeing transformation dictionnary\n");
+#endif
+    memset(ctxt, -1, sizeof(xsltTransformContext));
+    xmlFree(ctxt);
+}
+
+/************************************************************************
+ *									*
+ *			Copy of Nodes in an XSLT fashion		*
+ *									*
+ ************************************************************************/
+
+xmlNodePtr xsltCopyTree(xsltTransformContextPtr ctxt,
+                        xmlNodePtr node, xmlNodePtr insert, int literal);
+
+/**
+ * xsltAddTextString:
+ * @ctxt:  a XSLT process context
+ * @target:  the text node where the text will be attached
+ * @string:  the text string
+ * @len:  the string length in byte
+ *
+ * Extend the current text node with the new string, it handles coalescing
+ *
+ * Returns: the text node
+ */
+static xmlNodePtr
+xsltAddTextString(xsltTransformContextPtr ctxt, xmlNodePtr target,
+		  const xmlChar *string, int len) {
+    /*
+     * optimization
+     */
+    if ((len <= 0) || (string == NULL) || (target == NULL))
+        return(target);
+
+    if (ctxt->lasttext == target->content) {
+
+	if (ctxt->lasttuse + len >= ctxt->lasttsize) {
+	    xmlChar *newbuf;
+	    int size;
+
+	    size = ctxt->lasttsize + len + 100;
+	    size *= 2;
+	    newbuf = (xmlChar *) xmlRealloc(target->content,size);
+	    if (newbuf == NULL) {
+		xsltTransformError(ctxt, NULL, target,
+		 "xsltCopyText: text allocation failed\n");
+		return(NULL);
+	    }
+	    ctxt->lasttsize = size;
+	    ctxt->lasttext = newbuf;
+	    target->content = newbuf;
+	}
+	memcpy(&(target->content[ctxt->lasttuse]), string, len);
+	ctxt->lasttuse += len;
+	target->content[ctxt->lasttuse] = 0;
+    } else {
+	xmlNodeAddContent(target, string);
+	ctxt->lasttext = target->content;
+	len = xmlStrlen(target->content);
+	ctxt->lasttsize = len;
+	ctxt->lasttuse = len;
+    }
+    return(target);
+}
+
+/**
+ * xsltCopyTextString:
+ * @ctxt:  a XSLT process context
+ * @target:  the element where the text will be attached
+ * @string:  the text string
+ * @noescape:  should disable-escaping be activated for this text node.
+ *
+ * Create a text node
+ *
+ * Returns: a new xmlNodePtr, or NULL in case of error.
+ */
+xmlNodePtr
+xsltCopyTextString(xsltTransformContextPtr ctxt, xmlNodePtr target,
+	           const xmlChar *string, int noescape) {
+    xmlNodePtr copy;
+    int len;
+
+    if (string == NULL)
+	return(NULL);
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    XSLT_TRACE(ctxt,XSLT_TRACE_COPY_TEXT,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltCopyTextString: copy text %s\n",
+		     string));
+#endif
+
+    /* handle coalescing of text nodes here */
+    len = xmlStrlen(string);
+    if ((ctxt->type == XSLT_OUTPUT_XML) &&
+	(ctxt->style->cdataSection != NULL) &&
+	(target != NULL) && (target->type == XML_ELEMENT_NODE) &&
+	(((target->ns == NULL) && 
+	  (xmlHashLookup2(ctxt->style->cdataSection,
+		          target->name, NULL) != NULL)) ||
+	 ((target->ns != NULL) &&
+	  (xmlHashLookup2(ctxt->style->cdataSection,
+	                  target->name, target->ns->href) != NULL)))) {
+	if ((target != NULL) && (target->last != NULL) &&
+	    (target->last->type == XML_CDATA_SECTION_NODE)) {
+	    return(xsltAddTextString(ctxt, target->last, string, len));
+	}
+	copy = xmlNewCDataBlock(ctxt->output, string, len);
+    } else if (noescape) {
+	if ((target != NULL) && (target->last != NULL) &&
+	    (target->last->type == XML_TEXT_NODE) &&
+	    (target->last->name == xmlStringTextNoenc)) {
+	    return(xsltAddTextString(ctxt, target->last, string, len));
+	}
+	copy = xmlNewTextLen(string, len);
+	if (copy != NULL)
+	    copy->name = xmlStringTextNoenc;
+    } else {
+	if ((target != NULL) && (target->last != NULL) &&
+	    (target->last->type == XML_TEXT_NODE) &&
+	    (target->last->name == xmlStringText)) {
+	    return(xsltAddTextString(ctxt, target->last, string, len));
+	}
+	copy = xmlNewTextLen(string, len);
+    }
+    if (copy != NULL) {
+	if (target != NULL)
+	    xmlAddChild(target, copy);
+	ctxt->lasttext = copy->content;
+	ctxt->lasttsize = len;
+	ctxt->lasttuse = len;
+    } else {
+	xsltTransformError(ctxt, NULL, target,
+			 "xsltCopyTextString: text copy failed\n");
+	ctxt->lasttext = NULL;
+    }
+    return(copy);
+}
+
+/**
+ * xsltCopyText:
+ * @ctxt:  a XSLT process context
+ * @target:  the element where the text will be attached
+ * @cur:  the text or CDATA node
+ * @interned:  the string is in the target doc dictionnary
+ *
+ * Do a copy of a text node
+ *
+ * Returns: a new xmlNodePtr, or NULL in case of error.
+ */
+static xmlNodePtr
+xsltCopyText(xsltTransformContextPtr ctxt, xmlNodePtr target,
+	     xmlNodePtr cur, int interned) {
+    xmlNodePtr copy;
+
+    if ((cur->type != XML_TEXT_NODE) &&
+	(cur->type != XML_CDATA_SECTION_NODE))
+	return(NULL);
+    if (cur->content == NULL) 
+	return(NULL);
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    if (cur->type == XML_CDATA_SECTION_NODE) {
+	XSLT_TRACE(ctxt,XSLT_TRACE_COPY_TEXT,xsltGenericDebug(xsltGenericDebugContext,
+			 "xsltCopyText: copy CDATA text %s\n",
+			 cur->content));
+    } else if (cur->name == xmlStringTextNoenc) {
+	XSLT_TRACE(ctxt,XSLT_TRACE_COPY_TEXT,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltCopyText: copy unescaped text %s\n",
+			 cur->content));
+    } else {
+	XSLT_TRACE(ctxt,XSLT_TRACE_COPY_TEXT,xsltGenericDebug(xsltGenericDebugContext,
+			 "xsltCopyText: copy text %s\n",
+			 cur->content));
+    }
+#endif
+
+    if ((ctxt->type == XSLT_OUTPUT_XML) &&
+	(ctxt->style->cdataSection != NULL) &&
+	(target != NULL) && (target->type == XML_ELEMENT_NODE) &&
+	(((target->ns == NULL) && 
+	  (xmlHashLookup2(ctxt->style->cdataSection,
+		          target->name, NULL) != NULL)) ||
+	 ((target->ns != NULL) &&
+	  (xmlHashLookup2(ctxt->style->cdataSection,
+	                  target->name, target->ns->href) != NULL)))) {
+	/*
+	 * nodes which must be output as CDATA due to the stylesheet
+	 */
+	copy = xmlNewCDataBlock(ctxt->output, cur->content,
+				xmlStrlen(cur->content));
+	ctxt->lasttext = NULL;
+    } else if ((target != NULL) && (target->last != NULL) &&
+	    (target->last->type == XML_TEXT_NODE) &&
+	    (target->last->name == xmlStringText) &&
+	    (cur->name != xmlStringTextNoenc)) {
+	/*
+	 * we are appending to an existing text node
+	 */
+	return(xsltAddTextString(ctxt, target->last, cur->content,
+	                         xmlStrlen(cur->content)));
+    } else if ((interned) && (target != NULL) && (target->doc != NULL) &&
+               (target->doc->dict == ctxt->dict)) {
+        copy = xmlNewTextLen(NULL, 0);
+	if (copy == NULL)
+	    return NULL;
+	if (cur->name == xmlStringTextNoenc)
+	    copy->name = xmlStringTextNoenc;
+	/*
+	 * Must confirm that content is in dict
+	 * (bug 302821)
+	 */
+	if (xmlDictOwns(ctxt->dict, cur->content))
+	    copy->content = cur->content;
+	else {
+	    if ((copy->content = xmlStrdup(cur->content)) == NULL)
+		return NULL;
+	}
+    } else {
+        /*
+	 * normal processing. keep counters to extend the text node
+	 * in xsltAddTextString if needed.
+	 */
+        unsigned int len;
+
+	len = xmlStrlen(cur->content);
+	copy = xmlNewTextLen(cur->content, len);
+	if (copy == NULL)
+	    return NULL;
+	if (cur->name == xmlStringTextNoenc)
+	    copy->name = xmlStringTextNoenc;
+	ctxt->lasttext = copy->content;
+	ctxt->lasttsize = len;
+	ctxt->lasttuse = len;
+    }
+    if (copy != NULL) {
+	if (target != NULL) {
+	    copy->doc = target->doc;
+	    xmlAddChild(target, copy);
+	}
+    } else {
+	xsltTransformError(ctxt, NULL, target,
+			 "xsltCopyText: text copy failed\n");
+    }
+    return(copy);
+}
+
+/**
+ * xsltCopyProp:
+ * @ctxt:  a XSLT process context
+ * @target:  the element where the attribute will be grafted
+ * @attr:  the attribute
+ *
+ * Do a copy of an attribute
+ *
+ * Returns: a new xmlAttrPtr, or NULL in case of error.
+ */
+static xmlAttrPtr
+xsltCopyProp(xsltTransformContextPtr ctxt, xmlNodePtr target,
+	     xmlAttrPtr attr) {
+    xmlAttrPtr ret = NULL;
+    xmlNsPtr ns;
+    xmlChar *val;
+
+    if (attr == NULL)
+	return(NULL);
+    if (target->type != XML_ELEMENT_NODE)
+	return(NULL);
+
+    if (attr->ns != NULL) {
+	ns = xsltGetPlainNamespace(ctxt, attr->parent, attr->ns, target);
+    } else {
+	ns = NULL;
+    }
+    val = xmlNodeListGetString(attr->doc, attr->children, 1);
+    ret = xmlSetNsProp(target, ns, attr->name, val);
+    if (val != NULL)
+	xmlFree(val);
+    return(ret);
+}
+
+/**
+ * xsltCopyPropList:
+ * @ctxt:  a XSLT process context
+ * @target:  the element where the properties will be grafted
+ * @cur:  the first property
+ *
+ * Do a copy of a properties list.
+ *
+ * Returns: a new xmlAttrPtr, or NULL in case of error.
+ */
+static xmlAttrPtr
+xsltCopyPropList(xsltTransformContextPtr ctxt, xmlNodePtr target,
+	         xmlAttrPtr cur) {
+    xmlAttrPtr ret = NULL;
+    xmlAttrPtr p = NULL,q;
+    xmlNsPtr ns;
+
+    while (cur != NULL) {
+	if (cur->ns != NULL) {
+	    ns = xsltGetNamespace(ctxt, cur->parent, cur->ns, target);
+	} else {
+	    ns = NULL;
+	}
+        q = xmlCopyProp(target, cur);
+	if (q != NULL) {
+	    q->ns = ns;
+	    if (p == NULL) {
+		ret = p = q;
+	    } else {
+		p->next = q;
+		q->prev = p;
+		p = q;
+	    }
+	}
+	cur = cur->next;
+    }
+    return(ret);
+}
+
+/**
+ * xsltCopyNode:
+ * @ctxt:  a XSLT process context
+ * @node:  the element node in the source tree.
+ * @insert:  the parent in the result tree.
+ *
+ * Make a copy of the element node @node
+ * and insert it as last child of @insert
+ *
+ * Returns a pointer to the new node, or NULL in case of error
+ */
+static xmlNodePtr
+xsltCopyNode(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	     xmlNodePtr insert) {
+    xmlNodePtr copy;
+
+    if ((node->type == XML_DTD_NODE) || (insert == NULL))
+	return(NULL);
+    if ((node->type == XML_TEXT_NODE) ||
+	(node->type == XML_CDATA_SECTION_NODE))
+	return(xsltCopyText(ctxt, insert, node, 0));
+    copy = xmlDocCopyNode(node, insert->doc, 0);
+    if (copy != NULL) {
+	copy->doc = ctxt->output;
+	xmlAddChild(insert, copy);
+	if (node->type == XML_ELEMENT_NODE) {
+	    /*
+	     * Add namespaces as they are needed
+	     */
+	    if (node->nsDef != NULL)
+		xsltCopyNamespaceList(ctxt, copy, node->nsDef);
+	}
+	if ((node->type == XML_ELEMENT_NODE) ||
+	     (node->type == XML_ATTRIBUTE_NODE)) {
+	    if (node->ns != NULL) {
+		copy->ns = xsltGetNamespace(ctxt, node, node->ns, copy);
+	    } else if ((insert->type == XML_ELEMENT_NODE) &&
+		       (insert->ns != NULL)) {
+		xmlNsPtr defaultNs;
+
+		defaultNs = xmlSearchNs(insert->doc, insert, NULL);
+		if (defaultNs != NULL)
+		    xmlNewNs(copy, BAD_CAST "", NULL);
+	    }
+	}
+    } else {
+	xsltTransformError(ctxt, NULL, node,
+		"xsltCopyNode: copy %s failed\n", node->name);
+    }
+    return(copy);
+}
+
+/**
+ * xsltCopyTreeList:
+ * @ctxt:  a XSLT process context
+ * @list:  the list of element nodes in the source tree.
+ * @insert:  the parent in the result tree.
+ * @literal:  is this a literal result element list
+ *
+ * Make a copy of the full list of tree @list
+ * and insert it as last children of @insert
+ * For literal result element, some of the namespaces may not be copied
+ * over according to section 7.1 .
+ *
+ * Returns a pointer to the new list, or NULL in case of error
+ */
+static xmlNodePtr
+xsltCopyTreeList(xsltTransformContextPtr ctxt, xmlNodePtr list,
+	     xmlNodePtr insert, int literal) {
+    xmlNodePtr copy, ret = NULL;
+
+    while (list != NULL) {
+	copy = xsltCopyTree(ctxt, list, insert, literal);
+	if (copy != NULL) {
+	    if (ret == NULL) {
+		ret = copy;
+	    }
+	}
+	list = list->next;
+    }
+    return(ret);
+}
+
+/**
+ * xsltCopyNamespaceListInternal:
+ * @node:  the target node
+ * @cur:  the first namespace
+ *
+ * Do a copy of a namespace list. If @node is non-NULL the
+ * new namespaces are added automatically.
+ *
+ * Returns: a new xmlNsPtr, or NULL in case of error.
+ */
+static xmlNsPtr
+xsltCopyNamespaceListInternal(xmlNodePtr node, xmlNsPtr cur) {
+    xmlNsPtr ret = NULL;
+    xmlNsPtr p = NULL,q;
+
+    if (cur == NULL)
+	return(NULL);
+    if (cur->type != XML_NAMESPACE_DECL)
+	return(NULL);
+
+    /*
+     * One can add namespaces only on element nodes
+     */
+    if ((node != NULL) && (node->type != XML_ELEMENT_NODE))
+	node = NULL;
+
+    while (cur != NULL) {
+	if (cur->type != XML_NAMESPACE_DECL)
+	    break;
+
+	/*
+	 * Avoid duplicating namespace declarations on the tree
+	 */
+	if ((node != NULL) && (node->ns != NULL) &&
+            (xmlStrEqual(node->ns->href, cur->href)) &&
+            (xmlStrEqual(node->ns->prefix, cur->prefix))) {
+	    cur = cur->next;
+	    continue;
+	}
+	
+	q = xmlNewNs(node, cur->href, cur->prefix);
+	if (p == NULL) {
+	    ret = p = q;
+	} else if (q != NULL) {
+	    p->next = q;
+	    p = q;
+	}
+	cur = cur->next;
+    }
+    return(ret);
+}
+
+/**
+ * xsltCopyTree:
+ * @ctxt:  a XSLT process context
+ * @node:  the element node in the source tree.
+ * @insert:  the parent in the result tree.
+ * @literal:  is this a literal result element list
+ *
+ * Make a copy of the full tree under the element node @node
+ * and insert it as last child of @insert
+ * For literal result element, some of the namespaces may not be copied
+ * over according to section 7.1 .
+ *
+ * Returns a pointer to the new tree, or NULL in case of error
+ */
+xmlNodePtr
+xsltCopyTree(xsltTransformContextPtr ctxt, xmlNodePtr node,
+		     xmlNodePtr insert, int literal) {
+    xmlNodePtr copy;
+
+    if (node == NULL)
+	return(NULL);
+    switch (node->type) {
+        case XML_ELEMENT_NODE:
+        case XML_ENTITY_REF_NODE:
+        case XML_ENTITY_NODE:
+        case XML_PI_NODE:
+        case XML_COMMENT_NODE:
+        case XML_DOCUMENT_NODE:
+        case XML_HTML_DOCUMENT_NODE:
+#ifdef LIBXML_DOCB_ENABLED
+        case XML_DOCB_DOCUMENT_NODE:
+#endif
+	    break;
+        case XML_TEXT_NODE: {
+	    int noenc = (node->name == xmlStringTextNoenc);
+	    return(xsltCopyTextString(ctxt, insert, node->content, noenc));
+	    }
+        case XML_CDATA_SECTION_NODE:
+	    return(xsltCopyTextString(ctxt, insert, node->content, 0));
+        case XML_ATTRIBUTE_NODE:
+	    return((xmlNodePtr)
+		   xsltCopyProp(ctxt, insert, (xmlAttrPtr) node));
+        case XML_NAMESPACE_DECL:
+	    if (insert->type != XML_ELEMENT_NODE)
+		return(NULL);
+	    return((xmlNodePtr)
+		   xsltCopyNamespaceList(ctxt, insert, (xmlNsPtr) node));
+	    
+        case XML_DOCUMENT_TYPE_NODE:
+        case XML_DOCUMENT_FRAG_NODE:
+        case XML_NOTATION_NODE:
+        case XML_DTD_NODE:
+        case XML_ELEMENT_DECL:
+        case XML_ATTRIBUTE_DECL:
+        case XML_ENTITY_DECL:
+        case XML_XINCLUDE_START:
+        case XML_XINCLUDE_END:
+            return(NULL);
+    }
+    if ((node->name != NULL) && (node->name[0] == ' ') &&
+	(xmlStrEqual(node->name, (const xmlChar *) " fake node libxslt"))) {
+	if (node->children != NULL)
+	    copy = xsltCopyTreeList(ctxt, node->children, insert, 0);
+	else
+	    copy = NULL;
+	return(copy);
+    }
+    copy = xmlDocCopyNode(node, insert->doc, 0);
+    if (copy != NULL) {
+	copy->doc = ctxt->output;
+	xmlAddChild(insert, copy);
+	/*
+	 * The node may have been coalesced into another text node.
+	 */
+	if (insert->last != copy)
+	    return(insert->last);
+
+	copy->next = NULL;
+	/*
+	 * Add namespaces as they are needed
+	 */
+	if ((node->type == XML_ELEMENT_NODE) ||
+	    (node->type == XML_ATTRIBUTE_NODE)) {
+	    xmlNsPtr *nsList, *cur, ns;
+	    /*
+	     * must add in any new namespaces in scope for the node
+	     */
+	    nsList = xmlGetNsList(node->doc, node);
+	    if (nsList != NULL) {
+		cur = nsList;
+		while (*cur != NULL) {
+		    ns = xmlSearchNsByHref(insert->doc, insert, (*cur)->href);
+		    if (ns == NULL)
+			xmlNewNs(copy, (*cur)->href, (*cur)->prefix);
+		    cur++;
+		}
+		xmlFree(nsList);
+	    }
+	    if (node->ns != NULL)
+		copy->ns = xsltGetNamespace(ctxt, node, node->ns, copy);
+	    else if ((insert->type == XML_ELEMENT_NODE) && (insert->ns != NULL)) {
+		xmlNsPtr defaultNs;
+
+		defaultNs = xmlSearchNs(insert->doc, insert, NULL);
+		if (defaultNs != NULL)
+		    xmlNewNs(copy, BAD_CAST "", NULL);
+	    }
+	}
+	if (node->nsDef != NULL) {
+	    if (literal)
+	        xsltCopyNamespaceList(ctxt, copy, node->nsDef);
+	    else
+	        xsltCopyNamespaceListInternal(copy, node->nsDef);
+	}
+	if (node->properties != NULL)
+	    copy->properties = xsltCopyPropList(ctxt, copy,
+					       node->properties);
+	if (node->children != NULL)
+	    xsltCopyTreeList(ctxt, node->children, copy, literal);
+    } else {
+	xsltTransformError(ctxt, NULL, node,
+		"xsltCopyTree: copy %s failed\n", node->name);
+    }
+    return(copy);
+}
+
+/************************************************************************
+ *									*
+ *		Error/fallback processing				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltApplyFallbacks:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the node generating the error
+ *
+ * Process possible xsl:fallback nodes present under @inst
+ *
+ * Returns the number of xsl:fallback element found and processed
+ */
+static int
+xsltApplyFallbacks(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	           xmlNodePtr inst) {
+
+    xmlNodePtr child;
+    int ret = 0;
+    
+    if ((ctxt == NULL) || (node == NULL) || (inst == NULL))
+	return(ret);
+
+    child = inst->children;
+    while (child != NULL) {
+        if ((IS_XSLT_ELEM(child)) &&
+            (xmlStrEqual(child->name, BAD_CAST "fallback"))) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+	    xsltGenericDebug(xsltGenericDebugContext,
+			     "applying xsl:fallback\n");
+#endif
+	    ret++;
+	    xsltApplyOneTemplateInt(ctxt, node, child->children, NULL, NULL, 0);
+	}
+	child = child->next;
+    }
+    return(ret);
+}
+
+/************************************************************************
+ *									*
+ *			Default processing				*
+ *									*
+ ************************************************************************/
+
+void xsltProcessOneNode(xsltTransformContextPtr ctxt, xmlNodePtr node,
+			xsltStackElemPtr params);
+/**
+ * xsltDefaultProcessOneNode:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @params: extra parameters passed to the template if any
+ *
+ * Process the source node with the default built-in template rule:
+ * <xsl:template match="*|/">
+ *   <xsl:apply-templates/>
+ * </xsl:template>
+ *
+ * and
+ *
+ * <xsl:template match="text()|@*">
+ *   <xsl:value-of select="."/>
+ * </xsl:template>
+ *
+ * Note also that namespace declarations are copied directly:
+ *
+ * the built-in template rule is the only template rule that is applied
+ * for namespace nodes.
+ */
+static void
+xsltDefaultProcessOneNode(xsltTransformContextPtr ctxt, xmlNodePtr node,
+			  xsltStackElemPtr params) {
+    xmlNodePtr copy;
+    xmlNodePtr delete = NULL, cur;
+    int nbchild = 0, oldSize;
+    int childno = 0, oldPos;
+    xsltTemplatePtr template;
+
+    CHECK_STOPPED;
+    /*
+     * Handling of leaves
+     */
+    switch (node->type) {
+	case XML_DOCUMENT_NODE:
+	case XML_HTML_DOCUMENT_NODE:
+	case XML_ELEMENT_NODE:
+	    break;
+	case XML_CDATA_SECTION_NODE:
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltDefaultProcessOneNode: copy CDATA %s\n",
+		node->content));
+#endif
+	    copy = xsltCopyText(ctxt, ctxt->insert, node, 0);
+	    if (copy == NULL) {
+		xsltTransformError(ctxt, NULL, node,
+		 "xsltDefaultProcessOneNode: cdata copy failed\n");
+	    }
+	    return;
+	case XML_TEXT_NODE:
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	    if (node->content == NULL) {
+		XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+		 "xsltDefaultProcessOneNode: copy empty text\n"));
+	    } else {
+		XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+		 "xsltDefaultProcessOneNode: copy text %s\n",
+			node->content));
+            }
+#endif
+	    copy = xsltCopyText(ctxt, ctxt->insert, node, 0);
+	    if (copy == NULL) {
+		xsltTransformError(ctxt, NULL, node,
+		 "xsltDefaultProcessOneNode: text copy failed\n");
+	    }
+	    return;
+	case XML_ATTRIBUTE_NODE:
+	    cur = node->children;
+	    while ((cur != NULL) && (cur->type != XML_TEXT_NODE))
+		cur = cur->next;
+	    if (cur == NULL) {
+		xsltTransformError(ctxt, NULL, node,
+		 "xsltDefaultProcessOneNode: no text for attribute\n");
+	    } else {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		if (cur->content == NULL) {
+		    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltDefaultProcessOneNode: copy empty text\n"));
+		} else {
+		    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltDefaultProcessOneNode: copy text %s\n",
+			cur->content));
+                }
+#endif
+		copy = xsltCopyText(ctxt, ctxt->insert, cur, 0);
+		if (copy == NULL) {
+		    xsltTransformError(ctxt, NULL, node,
+		     "xsltDefaultProcessOneNode: text copy failed\n");
+		}
+	    }
+	    return;
+	default:
+	    return;
+    }
+    /*
+     * Handling of Elements: first pass, cleanup and counting
+     */
+    cur = node->children;
+    while (cur != NULL) {
+	switch (cur->type) {
+	    case XML_TEXT_NODE:
+	    case XML_CDATA_SECTION_NODE:
+	    case XML_DOCUMENT_NODE:
+	    case XML_HTML_DOCUMENT_NODE:
+	    case XML_ELEMENT_NODE:
+	    case XML_PI_NODE:
+	    case XML_COMMENT_NODE:
+		nbchild++;
+		break;
+            case XML_DTD_NODE:
+		/* Unlink the DTD, it's still reachable using doc->intSubset */
+		if (cur->next != NULL)
+		    cur->next->prev = cur->prev;
+		if (cur->prev != NULL)
+		    cur->prev->next = cur->next;
+		break;
+	    default:
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+		 "xsltDefaultProcessOneNode: skipping node type %d\n",
+		                 cur->type));
+#endif
+		delete = cur;
+	}
+	cur = cur->next;
+	if (delete != NULL) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+		 "xsltDefaultProcessOneNode: removing ignorable blank node\n"));
+#endif
+	    xmlUnlinkNode(delete);
+	    xmlFreeNode(delete);
+	    delete = NULL;
+	}
+    }
+    if (delete != NULL) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltDefaultProcessOneNode: removing ignorable blank node\n"));
+#endif
+	xmlUnlinkNode(delete);
+	xmlFreeNode(delete);
+	delete = NULL;
+    }
+
+    /*
+     * Handling of Elements: second pass, actual processing
+     */
+    oldSize = ctxt->xpathCtxt->contextSize;
+    oldPos = ctxt->xpathCtxt->proximityPosition;
+    cur = node->children;
+    while (cur != NULL) {
+	childno++;
+	switch (cur->type) {
+	    case XML_DOCUMENT_NODE:
+	    case XML_HTML_DOCUMENT_NODE:
+	    case XML_ELEMENT_NODE:
+		ctxt->xpathCtxt->contextSize = nbchild;
+		ctxt->xpathCtxt->proximityPosition = childno;
+		xsltProcessOneNode(ctxt, cur, params);
+		break;
+	    case XML_CDATA_SECTION_NODE:
+		template = xsltGetTemplate(ctxt, cur, NULL);
+		if (template) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+		 "xsltDefaultProcessOneNode: applying template for CDATA %s\n",
+				     cur->content));
+#endif
+		    xsltApplyOneTemplateInt(ctxt, cur, template->content,
+			                 template, params, 0);
+		} else /* if (ctxt->mode == NULL) */ {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltDefaultProcessOneNode: copy CDATA %s\n",
+				     cur->content));
+#endif
+		    copy = xsltCopyText(ctxt, ctxt->insert, cur, 0);
+		    if (copy == NULL) {
+			xsltTransformError(ctxt, NULL, cur,
+			    "xsltDefaultProcessOneNode: cdata copy failed\n");
+		    }
+		}
+		break;
+	    case XML_TEXT_NODE:
+		template = xsltGetTemplate(ctxt, cur, NULL);
+		if (template) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltDefaultProcessOneNode: applying template for text %s\n",
+				     cur->content));
+#endif
+		    ctxt->xpathCtxt->contextSize = nbchild;
+		    ctxt->xpathCtxt->proximityPosition = childno;
+		    xsltApplyOneTemplateInt(ctxt, cur, template->content,
+			                 template, params, 0);
+		} else /* if (ctxt->mode == NULL) */ {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		    if (cur->content == NULL) {
+			XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+			 "xsltDefaultProcessOneNode: copy empty text\n"));
+		    } else {
+			XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltDefaultProcessOneNode: copy text %s\n",
+					 cur->content));
+                    }
+#endif
+		    copy = xsltCopyText(ctxt, ctxt->insert, cur, 0);
+		    if (copy == NULL) {
+			xsltTransformError(ctxt, NULL, cur,
+			    "xsltDefaultProcessOneNode: text copy failed\n");
+		    }
+		}
+		break;
+	    case XML_PI_NODE:
+	    case XML_COMMENT_NODE:
+		template = xsltGetTemplate(ctxt, cur, NULL);
+		if (template) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		    if (cur->type == XML_PI_NODE) {
+			XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltDefaultProcessOneNode: template found for PI %s\n",
+			                 cur->name));
+		    } else if (cur->type == XML_COMMENT_NODE) {
+			XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltDefaultProcessOneNode: template found for comment\n"));
+                    }
+#endif
+		    ctxt->xpathCtxt->contextSize = nbchild;
+		    ctxt->xpathCtxt->proximityPosition = childno;
+		    xsltApplyOneTemplateInt(ctxt, cur, template->content,
+			                 template, params, 0);
+		}
+		break;
+	    default:
+		break;
+	}
+	cur = cur->next;
+    }
+    ctxt->xpathCtxt->contextSize = oldSize;
+    ctxt->xpathCtxt->proximityPosition = oldPos;
+}
+
+/**
+ * xsltProcessOneNode:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @params:  extra parameters passed to the template if any
+ *
+ * Process the source node.
+ */
+void
+xsltProcessOneNode(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	           xsltStackElemPtr params) {
+    xsltTemplatePtr template;
+    xmlNodePtr oldNode;
+    
+    template = xsltGetTemplate(ctxt, node, NULL);
+    /*
+     * If no template is found, apply the default rule.
+     */
+    if (template == NULL) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	if (node->type == XML_DOCUMENT_NODE) {
+	    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltProcessOneNode: no template found for /\n"));
+	} else if (node->type == XML_CDATA_SECTION_NODE) {
+	    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltProcessOneNode: no template found for CDATA\n"));
+	} else if (node->type == XML_ATTRIBUTE_NODE) {
+	    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltProcessOneNode: no template found for attribute %s\n",
+	                     ((xmlAttrPtr) node)->name));
+	} else  {
+	    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltProcessOneNode: no template found for %s\n", node->name));
+        }
+#endif
+	oldNode = ctxt->node;
+	ctxt->node = node;
+	xsltDefaultProcessOneNode(ctxt, node, params);
+	ctxt->node = oldNode;
+	return;
+    }
+
+    if (node->type == XML_ATTRIBUTE_NODE) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltProcessOneNode: applying template '%s' for attribute %s\n",
+	                 template->match, node->name));
+#endif
+	xsltApplyOneTemplateInt(ctxt, node, template->content, template, params, 0);
+    } else {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	if (node->type == XML_DOCUMENT_NODE) {
+	    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltProcessOneNode: applying template '%s' for /\n",
+	                     template->match));
+	} else {
+	    XSLT_TRACE(ctxt,XSLT_TRACE_PROCESS_NODE,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltProcessOneNode: applying template '%s' for %s\n",
+	                     template->match, node->name));
+        }
+#endif
+	xsltApplyOneTemplateInt(ctxt, node, template->content, template, params, 0);
+    }
+}
+
+
+/**
+ * xsltApplyOneTemplate:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @list:  the template replacement nodelist
+ * @templ: if is this a real template processing, the template processed
+ * @params:  a set of parameters for the template or NULL
+ *
+ * Process the apply-templates node on the source node, if params are passed
+ * they are pushed on the variable stack but not popped, it's left to the
+ * caller to handle them after return (they may be reused).
+ */
+void
+xsltApplyOneTemplate(xsltTransformContextPtr ctxt, xmlNodePtr node,
+                     xmlNodePtr list, xsltTemplatePtr templ,
+                     xsltStackElemPtr params)
+{
+    xsltApplyOneTemplateInt(ctxt, node, list, templ, params, 0);
+}
+
+/**
+ * xsltApplyOneTemplateInt:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @list:  the template replacement nodelist
+ * @templ: if is this a real template processing, the template processed
+ * @params:  a set of parameters for the template or NULL
+ * @notcur: flag to show current template rule doesn't change
+ *
+ * See above description for xsltApplyOneTemplate.  Internally there is
+ * an additional parameter 'notcur'.  When this parameter is non-zero,
+ * ctxt->templ is not changed (i.e. templPush and tempPop are not called).
+ * This is used by xsltCallTemplate in order to meet the XSLT spec (5.6)
+ * requirement that the "current template rule" should not be changed
+ * (bug 157859).
+ */
+static void
+xsltApplyOneTemplateInt(xsltTransformContextPtr ctxt, xmlNodePtr node,
+                     xmlNodePtr list, xsltTemplatePtr templ,
+                     xsltStackElemPtr params, int notcur)
+{
+    xmlNodePtr cur = NULL, insert, copy = NULL;
+    xmlNodePtr oldInsert;
+    xmlNodePtr oldCurrent = NULL;
+    xmlNodePtr oldInst = NULL;
+    int oldBase;
+    xmlDocPtr tmpRVT = NULL;
+
+    int level = 0;
+
+#ifdef WITH_DEBUGGER
+    int addCallResult = 0;
+    xmlNodePtr debugedNode = NULL;
+#endif
+    long start = 0;
+
+    if (ctxt == NULL) return;
+
+#ifdef WITH_DEBUGGER
+    if (ctxt->debugStatus != XSLT_DEBUG_NONE) {
+        if (templ) {
+            addCallResult = xslAddCall(templ, templ->elem);
+        } else {
+            addCallResult = xslAddCall(NULL, list);
+        }
+
+        switch (ctxt->debugStatus) {
+
+            case XSLT_DEBUG_RUN_RESTART:
+            case XSLT_DEBUG_QUIT:
+                if (addCallResult)
+                    xslDropCall();
+                return;
+        }
+
+        if (templ) {
+            xslHandleDebugger(templ->elem, node, templ, ctxt);
+            debugedNode = templ->elem;
+        } else if (list) {
+            xslHandleDebugger(list, node, templ, ctxt);
+            debugedNode = list;
+        } else if (ctxt->inst) {
+            xslHandleDebugger(ctxt->inst, node, templ, ctxt);
+            debugedNode = ctxt->inst;
+        }
+    }
+#endif
+
+    if (list == NULL)
+        return;
+    CHECK_STOPPED;
+
+    if ((ctxt->templNr >= xsltMaxDepth) ||
+        (ctxt->varsNr >= 5 * xsltMaxDepth)) {
+        xsltTransformError(ctxt, NULL, list,
+                         "xsltApplyOneTemplate: loop found ???\n");
+        xsltGenericError(xsltGenericErrorContext,
+                         "try increasing xsltMaxDepth (--maxdepth)\n");
+        xsltDebug(ctxt, node, list, NULL);
+        return;
+    }
+
+    /*
+     * stack saves, beware ordering of operations counts
+     */
+    oldInsert = insert = ctxt->insert;
+    oldInst = ctxt->inst;
+    oldCurrent = ctxt->node;
+    varsPush(ctxt, params);
+    oldBase = ctxt->varsBase;   /* only needed if templ != NULL */
+    if (templ != NULL) {
+        ctxt->varsBase = ctxt->varsNr - 1;
+        ctxt->node = node;
+        if (ctxt->profile) {
+            templ->nbCalls++;
+            start = xsltTimestamp();
+            profPush(ctxt, 0);
+        }
+	tmpRVT = ctxt->tmpRVT;
+	ctxt->tmpRVT = NULL;
+	if (!notcur)
+            templPush(ctxt, templ);
+#ifdef WITH_XSLT_DEBUG_PROCESS
+        if (templ->name != NULL)
+            XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATE,xsltGenericDebug(xsltGenericDebugContext,
+                             "applying template '%s'\n", templ->name));
+#endif
+    }
+
+    /*
+     * Insert all non-XSLT nodes found in the template
+     */
+    cur = list;
+    while (cur != NULL) {
+        ctxt->inst = cur;
+#ifdef WITH_DEBUGGER
+        switch (ctxt->debugStatus) {
+            case XSLT_DEBUG_RUN_RESTART:
+            case XSLT_DEBUG_QUIT:
+                break;
+
+        }
+#endif
+        /*
+         * test, we must have a valid insertion point
+         */
+        if (insert == NULL) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+            XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATE,xsltGenericDebug(xsltGenericDebugContext,
+                             "xsltApplyOneTemplate: insert == NULL !\n"));
+#endif
+            goto error;
+        }
+#ifdef WITH_DEBUGGER
+        if ((ctxt->debugStatus != XSLT_DEBUG_NONE) && (debugedNode != cur))
+            xslHandleDebugger(cur, node, templ, ctxt);
+#endif
+
+        if (IS_XSLT_ELEM(cur)) {
+            /*
+             * This is an XSLT node
+             */
+            xsltStylePreCompPtr info = (xsltStylePreCompPtr) cur->psvi;
+
+            if (info == NULL) {
+                if (IS_XSLT_NAME(cur, "message")) {
+                    xsltMessage(ctxt, node, cur);
+                } else {
+                    /*
+                     * That's an error try to apply one of the fallback cases
+                     */
+                    ctxt->insert = insert;
+                    if (!xsltApplyFallbacks(ctxt, node, cur)) {
+                        xsltGenericError(xsltGenericErrorContext,
+                                         "xsltApplyOneTemplate: %s was not compiled\n",
+                                         cur->name);
+                    }
+                    ctxt->insert = oldInsert;
+                }
+                goto skip_children;
+            }
+
+            if (info->func != NULL) {
+                ctxt->insert = insert;
+                info->func(ctxt, node, cur, (xsltElemPreCompPtr) info);
+                ctxt->insert = oldInsert;
+                goto skip_children;
+            }
+
+            if (IS_XSLT_NAME(cur, "variable")) {
+		if (level != 0) {
+		    /*
+		     * Build a new subframe and skip all the nodes
+		     * at that level.
+		     */
+		    ctxt->insert = insert;
+		    xsltApplyOneTemplateInt(ctxt, node, cur, NULL, NULL, 0);
+		    while (cur->next != NULL)
+			cur = cur->next;
+		    ctxt->insert = oldInsert;
+		} else {
+		    xsltParseStylesheetVariable(ctxt, cur);
+		}
+            } else if (IS_XSLT_NAME(cur, "param")) {
+                xsltParseStylesheetParam(ctxt, cur);
+            } else if (IS_XSLT_NAME(cur, "message")) {
+                xsltMessage(ctxt, node, cur);
+            } else {
+                xsltGenericError(xsltGenericErrorContext,
+                                 "xsltApplyOneTemplate: problem with xsl:%s\n",
+                                 cur->name);
+            }
+            goto skip_children;
+        } else if ((cur->type == XML_TEXT_NODE) ||
+                   (cur->type == XML_CDATA_SECTION_NODE)) {
+            /*
+             * This text comes from the stylesheet
+             * For stylesheets, the set of whitespace-preserving
+             * element names consists of just xsl:text.
+             */
+#ifdef WITH_XSLT_DEBUG_PROCESS
+            if (cur->type == XML_CDATA_SECTION_NODE) {
+                XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATE,xsltGenericDebug(xsltGenericDebugContext,
+                                 "xsltApplyOneTemplate: copy CDATA text %s\n",
+                                 cur->content));
+            } else if (cur->name == xmlStringTextNoenc) {
+                XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATE,xsltGenericDebug(xsltGenericDebugContext,
+                                 "xsltApplyOneTemplate: copy unescaped text %s\n",
+                                 cur->content));
+            } else {
+                XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATE,xsltGenericDebug(xsltGenericDebugContext,
+                                 "xsltApplyOneTemplate: copy text %s\n",
+                                 cur->content));
+            }
+#endif
+            if (xsltCopyText(ctxt, insert, cur, ctxt->internalized) == NULL)
+		goto error;
+        } else if ((cur->type == XML_ELEMENT_NODE) &&
+                   (cur->ns != NULL) && (cur->psvi != NULL)) {
+            xsltTransformFunction function;
+
+            /*
+             * Flagged as an extension element
+             */
+            if (cur->psvi == xsltExtMarker)
+                function = (xsltTransformFunction)
+                    xsltExtElementLookup(ctxt, cur->name, cur->ns->href);
+            else
+                function = ((xsltElemPreCompPtr) cur->psvi)->func;
+
+            if (function == NULL) {
+                xmlNodePtr child;
+                int found = 0;
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+                XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATE,xsltGenericDebug(xsltGenericDebugContext,
+                                 "xsltApplyOneTemplate: unknown extension %s\n",
+                                 cur->name));
+#endif
+                /*
+                 * Search if there are fallbacks
+                 */
+                child = cur->children;
+                while (child != NULL) {
+                    if ((IS_XSLT_ELEM(child)) &&
+                        (IS_XSLT_NAME(child, "fallback"))) {
+                        found = 1;
+                        xsltApplyOneTemplateInt(ctxt, node, child->children,
+                                             NULL, NULL, 0);
+                    }
+                    child = child->next;
+                }
+
+                if (!found) {
+                    xsltTransformError(ctxt, NULL, cur,
+                                     "xsltApplyOneTemplate: failed to find extension %s\n",
+                                     cur->name);
+                }
+            } else {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+                XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATE,xsltGenericDebug(xsltGenericDebugContext,
+                                 "xsltApplyOneTemplate: extension construct %s\n",
+                                 cur->name));
+#endif
+
+                ctxt->insert = insert;
+                function(ctxt, node, cur, cur->psvi);
+                ctxt->insert = oldInsert;
+            }
+            goto skip_children;
+        } else if (cur->type == XML_ELEMENT_NODE) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+            XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATE,xsltGenericDebug(xsltGenericDebugContext,
+                             "xsltApplyOneTemplate: copy node %s\n",
+                             cur->name));
+#endif
+            if ((copy = xsltCopyNode(ctxt, cur, insert)) == NULL)
+		goto error;
+            /*
+             * all the attributes are directly inherited
+             */
+            if (cur->properties != NULL) {
+                xsltAttrListTemplateProcess(ctxt, copy,
+					    cur->properties);
+            }
+            /*
+             * Add extra namespaces inherited from the current template
+             * if we are in the first level children and this is a
+	     * "real" template.
+             */
+            if ((templ != NULL) && (oldInsert == insert) &&
+                (ctxt->templ != NULL) && (ctxt->templ->inheritedNs != NULL)) {
+                int i;
+                xmlNsPtr ns, ret;
+
+                for (i = 0; i < ctxt->templ->inheritedNsNr; i++) {
+		    const xmlChar *URI = NULL;
+		    xsltStylesheetPtr style;
+                    ns = ctxt->templ->inheritedNs[i];
+		    style = ctxt->style;
+		    while (style != NULL) {
+		      if (style->nsAliases != NULL)
+			URI = (const xmlChar *) 
+			  xmlHashLookup(style->nsAliases, ns->href);
+		      if (URI != NULL)
+			break;
+		      
+		      style = xsltNextImport(style);
+		    }
+
+		    if (URI == UNDEFINED_DEFAULT_NS) {
+		      xmlNsPtr dflt;
+		      dflt = xmlSearchNs(cur->doc, cur, NULL);
+		      if (dflt == NULL)
+		        continue;
+		      else
+		        URI = dflt->href;
+		    }
+
+		    if (URI == NULL) {
+		      ret = xmlSearchNs(copy->doc, copy, ns->prefix);
+		      if ((ret == NULL) ||
+			  (!xmlStrEqual(ret->href, ns->href)))
+			xmlNewNs(copy, ns->href, ns->prefix);
+		    } else if (!xmlStrEqual(URI, XSLT_NAMESPACE)) {
+		      ret = xmlSearchNs(copy->doc, copy, ns->prefix);
+		      if ((ret == NULL) ||
+			  (!xmlStrEqual(ret->href, URI)))
+			xmlNewNs(copy, URI, ns->prefix);
+		    }
+                }
+		if (copy->ns != NULL) {
+		    /*
+		     * Fix the node namespace if needed
+		     */
+		    copy->ns = xsltGetNamespace(ctxt, copy, copy->ns, copy);
+		}
+            }
+        }
+
+        /*
+         * Skip to next node, in document order.
+         */
+        if (cur->children != NULL) {
+            if (cur->children->type != XML_ENTITY_DECL) {
+                cur = cur->children;
+		level++;
+                if (copy != NULL)
+                    insert = copy;
+                continue;
+            }
+        }
+      skip_children:
+	/*
+	If xslt:message just processed, might have terminate='yes'
+	If so, break out of while to clean up processing.
+	*/
+	if (ctxt->state == XSLT_STATE_STOPPED)
+	    break;
+        if (cur->next != NULL) {
+            cur = cur->next;
+            continue;
+        }
+
+        do {
+            cur = cur->parent;
+	    level--;
+            insert = insert->parent;
+            if (cur == NULL)
+                break;
+            if (cur == list->parent) {
+                cur = NULL;
+                break;
+            }
+            if (cur->next != NULL) {
+                cur = cur->next;
+                break;
+            }
+        } while (cur != NULL);
+    }
+  error:
+    ctxt->node = oldCurrent;
+    ctxt->inst = oldInst;
+    ctxt->insert = oldInsert;
+    if (params == NULL)
+        xsltFreeStackElemList(varsPop(ctxt));
+    else {
+        xsltStackElemPtr p, tmp = varsPop(ctxt);
+
+        if (tmp != params) {
+            p = tmp;
+            while ((p != NULL) && (p->next != params))
+                p = p->next;
+            if (p == NULL) {
+                xsltFreeStackElemList(tmp);
+            } else {
+                p->next = NULL;
+                xsltFreeStackElemList(tmp);
+            }
+        }
+    }
+    if (templ != NULL) {
+        ctxt->varsBase = oldBase;
+	if (!notcur)
+            templPop(ctxt);
+	/*
+	 * Free up all the unreferenced RVT
+	 * Also set any global variables instantiated
+	 * using them, to be "not yet computed".
+	 */
+	if (ctxt->tmpRVT != NULL) {
+	    xsltStackElemPtr elem;
+	    xmlDocPtr tmp = ctxt->tmpRVT, next;
+            while (tmp != NULL) {
+	        elem = (xsltStackElemPtr)tmp->psvi;
+		if (elem != NULL) {
+		    elem->computed = 0;
+		    xmlXPathFreeObject(elem->value);
+		}
+	        next = (xmlDocPtr) tmp->next;
+		if (tmp->_private != NULL) {
+		    xsltFreeDocumentKeys(tmp->_private);
+		    xmlFree(tmp->_private);
+		}
+		xmlFreeDoc(tmp);
+		tmp = next;
+	    }
+	}
+	ctxt->tmpRVT = tmpRVT;
+        if (ctxt->profile) {
+            long spent, child, total, end;
+
+            end = xsltTimestamp();
+            child = profPop(ctxt);
+            total = end - start;
+            spent = total - child;
+            if (spent <= 0) {
+                /*
+                 * Not possible unless the original calibration failed
+                 * we can try to correct it on the fly.
+                 */
+                xsltCalibrateAdjust(spent);
+                spent = 0;
+            }
+
+            templ->time += spent;
+            if (ctxt->profNr > 0)
+                ctxt->profTab[ctxt->profNr - 1] += total;
+        }
+    }
+#ifdef WITH_DEBUGGER
+    if ((ctxt->debugStatus != XSLT_DEBUG_NONE) && (addCallResult)) {
+        xslDropCall();
+    }
+#endif
+}
+
+/************************************************************************
+ *									*
+ *		    XSLT-1.1 extensions					*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltDocumentElem:
+ * @ctxt:  an XSLT processing context
+ * @node:  The current node
+ * @inst:  the instruction in the stylesheet
+ * @comp:  precomputed information
+ *
+ * Process an EXSLT/XSLT-1.1 document element
+ */
+void
+xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node,
+                 xmlNodePtr inst, xsltStylePreCompPtr castedComp)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleItemDocumentPtr comp = (xsltStyleItemDocumentPtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif
+    xsltStylesheetPtr style = NULL;
+    int ret;
+    xmlChar *filename = NULL, *prop, *elements;
+    xmlChar *element, *end;
+    xmlDocPtr res = NULL;
+    xmlDocPtr oldOutput;
+    xmlNodePtr oldInsert, root;
+    const char *oldOutputFile;
+    xsltOutputType oldType;
+    xmlChar *URL = NULL;
+    const xmlChar *method;
+    const xmlChar *doctypePublic;
+    const xmlChar *doctypeSystem;
+    const xmlChar *version;
+
+    if ((ctxt == NULL) || (node == NULL) || (inst == NULL) || (comp == NULL))
+        return;
+
+    if (comp->filename == NULL) {
+
+        if (xmlStrEqual(inst->name, (const xmlChar *) "output")) {
+	    /*
+	    * The element "output" is in the namespace XSLT_SAXON_NAMESPACE
+	    *   (http://icl.com/saxon)
+	    * The @file is in no namespace.
+	    */
+#ifdef WITH_XSLT_DEBUG_EXTRA
+            xsltGenericDebug(xsltGenericDebugContext,
+                             "Found saxon:output extension\n");
+#endif
+            URL = xsltEvalAttrValueTemplate(ctxt, inst,
+                                                 (const xmlChar *) "file",
+                                                 XSLT_SAXON_NAMESPACE);
+	     
+	    if (URL == NULL)
+		URL = xsltEvalAttrValueTemplate(ctxt, inst,
+                                                 (const xmlChar *) "href",
+                                                 XSLT_SAXON_NAMESPACE);
+        } else if (xmlStrEqual(inst->name, (const xmlChar *) "write")) {
+#ifdef WITH_XSLT_DEBUG_EXTRA
+            xsltGenericDebug(xsltGenericDebugContext,
+                             "Found xalan:write extension\n");
+#endif
+            URL = xsltEvalAttrValueTemplate(ctxt, inst,
+                                                 (const xmlChar *)
+                                                 "select",
+                                                 XSLT_XALAN_NAMESPACE);
+	    if (URL != NULL) {
+		xmlXPathCompExprPtr cmp;
+		xmlChar *val;
+
+		/*
+		 * Trying to handle bug #59212
+		 * The value of the "select" attribute is an
+		 * XPath expression.
+		 * (see http://xml.apache.org/xalan-j/extensionslib.html#redirect) 
+		 */
+		cmp = xmlXPathCompile(URL);
+                val = xsltEvalXPathString(ctxt, cmp);
+		xmlXPathFreeCompExpr(cmp);
+		xmlFree(URL);
+		URL = val;
+	    }
+	    if (URL == NULL)
+		URL = xsltEvalAttrValueTemplate(ctxt, inst,
+						     (const xmlChar *)
+						     "file",
+						     XSLT_XALAN_NAMESPACE);
+	    if (URL == NULL)
+		URL = xsltEvalAttrValueTemplate(ctxt, inst,
+						     (const xmlChar *)
+						     "href",
+						     XSLT_XALAN_NAMESPACE);
+        } else if (xmlStrEqual(inst->name, (const xmlChar *) "document")) {
+            URL = xsltEvalAttrValueTemplate(ctxt, inst,
+                                                 (const xmlChar *) "href",
+                                                 NULL);
+        }
+
+    } else {
+        URL = xmlStrdup(comp->filename);
+    }
+
+    if (URL == NULL) {
+	xsltTransformError(ctxt, NULL, inst,
+		         "xsltDocumentElem: href/URI-Reference not found\n");
+	return;
+    }
+
+    /*
+     * If the computation failed, it's likely that the URL wasn't escaped
+     */
+    filename = xmlBuildURI(URL, (const xmlChar *) ctxt->outputFile);
+    if (filename == NULL) {
+	xmlChar *escURL;
+
+	escURL=xmlURIEscapeStr(URL, BAD_CAST ":/.?,");
+	if (escURL != NULL) {
+	    filename = xmlBuildURI(escURL, (const xmlChar *) ctxt->outputFile);
+	    xmlFree(escURL);
+	}
+    }
+
+    if (filename == NULL) {
+	xsltTransformError(ctxt, NULL, inst,
+		         "xsltDocumentElem: URL computation failed for %s\n",
+			 URL);
+	xmlFree(URL);
+	return;
+    }
+
+    /*
+     * Security checking: can we write to this resource
+     */
+    if (ctxt->sec != NULL) {
+	ret = xsltCheckWrite(ctxt->sec, ctxt, filename);
+	if (ret == 0) {
+	    xsltTransformError(ctxt, NULL, inst,
+		 "xsltDocumentElem: write rights for %s denied\n",
+			     filename);
+	    xmlFree(URL);
+	    xmlFree(filename);
+	    return;
+	}
+    }
+
+    oldOutputFile = ctxt->outputFile;
+    oldOutput = ctxt->output;
+    oldInsert = ctxt->insert;
+    oldType = ctxt->type;
+    ctxt->outputFile = (const char *) filename;
+
+    style = xsltNewStylesheet();
+    if (style == NULL) {
+	xsltTransformError(ctxt, NULL, inst,
+                         "xsltDocumentElem: out of memory\n");
+        goto error;
+    }
+
+    /*
+     * Version described in 1.1 draft allows full parameterization
+     * of the output.
+     */
+    prop = xsltEvalAttrValueTemplate(ctxt, inst,
+				     (const xmlChar *) "version",
+				     NULL);
+    if (prop != NULL) {
+	if (style->version != NULL)
+	    xmlFree(style->version);
+	style->version = prop;
+    }
+    prop = xsltEvalAttrValueTemplate(ctxt, inst,
+				     (const xmlChar *) "encoding",
+				     NULL);
+    if (prop != NULL) {
+	if (style->encoding != NULL)
+	    xmlFree(style->encoding);
+	style->encoding = prop;
+    }
+    prop = xsltEvalAttrValueTemplate(ctxt, inst,
+				     (const xmlChar *) "method",
+				     NULL);
+    if (prop != NULL) {
+	const xmlChar *URI;
+
+	if (style->method != NULL)
+	    xmlFree(style->method);
+	style->method = NULL;
+	if (style->methodURI != NULL)
+	    xmlFree(style->methodURI);
+	style->methodURI = NULL;
+
+	URI = xsltGetQNameURI(inst, &prop);
+	if (prop == NULL) {
+	    if (style != NULL) style->errors++;
+	} else if (URI == NULL) {
+	    if ((xmlStrEqual(prop, (const xmlChar *) "xml")) ||
+		(xmlStrEqual(prop, (const xmlChar *) "html")) ||
+		(xmlStrEqual(prop, (const xmlChar *) "text"))) {
+		style->method = prop;
+	    } else {
+		xsltTransformError(ctxt, NULL, inst,
+				 "invalid value for method: %s\n", prop);
+		if (style != NULL) style->warnings++;
+	    }
+	} else {
+	    style->method = prop;
+	    style->methodURI = xmlStrdup(URI);
+	}
+    }
+    prop = xsltEvalAttrValueTemplate(ctxt, inst,
+				     (const xmlChar *)
+				     "doctype-system", NULL);
+    if (prop != NULL) {
+	if (style->doctypeSystem != NULL)
+	    xmlFree(style->doctypeSystem);
+	style->doctypeSystem = prop;
+    }
+    prop = xsltEvalAttrValueTemplate(ctxt, inst,
+				     (const xmlChar *)
+				     "doctype-public", NULL);
+    if (prop != NULL) {
+	if (style->doctypePublic != NULL)
+	    xmlFree(style->doctypePublic);
+	style->doctypePublic = prop;
+    }
+    prop = xsltEvalAttrValueTemplate(ctxt, inst,
+				     (const xmlChar *) "standalone",
+				     NULL);
+    if (prop != NULL) {
+	if (xmlStrEqual(prop, (const xmlChar *) "yes")) {
+	    style->standalone = 1;
+	} else if (xmlStrEqual(prop, (const xmlChar *) "no")) {
+	    style->standalone = 0;
+	} else {
+	    xsltTransformError(ctxt, NULL, inst,
+			     "invalid value for standalone: %s\n",
+			     prop);
+	    if (style != NULL) style->warnings++;
+	}
+	xmlFree(prop);
+    }
+
+    prop = xsltEvalAttrValueTemplate(ctxt, inst,
+				     (const xmlChar *) "indent",
+				     NULL);
+    if (prop != NULL) {
+	if (xmlStrEqual(prop, (const xmlChar *) "yes")) {
+	    style->indent = 1;
+	} else if (xmlStrEqual(prop, (const xmlChar *) "no")) {
+	    style->indent = 0;
+	} else {
+	    xsltTransformError(ctxt, NULL, inst,
+			     "invalid value for indent: %s\n", prop);
+	    if (style != NULL) style->warnings++;
+	}
+	xmlFree(prop);
+    }
+
+    prop = xsltEvalAttrValueTemplate(ctxt, inst,
+				     (const xmlChar *)
+				     "omit-xml-declaration",
+				     NULL);
+    if (prop != NULL) {
+	if (xmlStrEqual(prop, (const xmlChar *) "yes")) {
+	    style->omitXmlDeclaration = 1;
+	} else if (xmlStrEqual(prop, (const xmlChar *) "no")) {
+	    style->omitXmlDeclaration = 0;
+	} else {
+	    xsltTransformError(ctxt, NULL, inst,
+			     "invalid value for omit-xml-declaration: %s\n",
+			     prop);
+	    if (style != NULL) style->warnings++;
+	}
+	xmlFree(prop);
+    }
+
+    elements = xsltEvalAttrValueTemplate(ctxt, inst,
+					 (const xmlChar *)
+					 "cdata-section-elements",
+					 NULL);
+    if (elements != NULL) {
+	if (style->stripSpaces == NULL)
+	    style->stripSpaces = xmlHashCreate(10);
+	if (style->stripSpaces == NULL)
+	    return;
+
+	element = elements;
+	while (*element != 0) {
+	    while (IS_BLANK_CH(*element))
+		element++;
+	    if (*element == 0)
+		break;
+	    end = element;
+	    while ((*end != 0) && (!IS_BLANK_CH(*end)))
+		end++;
+	    element = xmlStrndup(element, end - element);
+	    if (element) {
+		const xmlChar *URI;
+
+#ifdef WITH_XSLT_DEBUG_PARSING
+		xsltGenericDebug(xsltGenericDebugContext,
+				 "add cdata section output element %s\n",
+				 element);
+#endif
+                URI = xsltGetQNameURI(inst, &element);
+
+		xmlHashAddEntry2(style->stripSpaces, element, URI,
+			        (xmlChar *) "cdata");
+		xmlFree(element);
+	    }
+	    element = end;
+	}
+	xmlFree(elements);
+    }
+
+    /*
+     * Create a new document tree and process the element template
+     */
+    XSLT_GET_IMPORT_PTR(method, style, method)
+    XSLT_GET_IMPORT_PTR(doctypePublic, style, doctypePublic)
+    XSLT_GET_IMPORT_PTR(doctypeSystem, style, doctypeSystem)
+    XSLT_GET_IMPORT_PTR(version, style, version)
+
+    if ((method != NULL) &&
+	(!xmlStrEqual(method, (const xmlChar *) "xml"))) {
+	if (xmlStrEqual(method, (const xmlChar *) "html")) {
+	    ctxt->type = XSLT_OUTPUT_HTML;
+	    if (((doctypePublic != NULL) || (doctypeSystem != NULL)))
+		res = htmlNewDoc(doctypeSystem, doctypePublic);
+	    else {
+		if (version != NULL) {
+#ifdef XSLT_GENERATE_HTML_DOCTYPE
+		    xsltGetHTMLIDs(version, &doctypePublic, &doctypeSystem);
+#endif
+                }
+		res = htmlNewDocNoDtD(doctypeSystem, doctypePublic);
+	    }
+	    if (res == NULL)
+		goto error;
+	    res->dict = ctxt->dict;
+	    xmlDictReference(res->dict);
+	} else if (xmlStrEqual(method, (const xmlChar *) "xhtml")) {
+	    xsltTransformError(ctxt, NULL, inst,
+	     "xsltDocumentElem: unsupported method xhtml\n",
+		             style->method);
+	    ctxt->type = XSLT_OUTPUT_HTML;
+	    res = htmlNewDocNoDtD(doctypeSystem, doctypePublic);
+	    if (res == NULL)
+		goto error;
+	    res->dict = ctxt->dict;
+	    xmlDictReference(res->dict);
+	} else if (xmlStrEqual(method, (const xmlChar *) "text")) {
+	    ctxt->type = XSLT_OUTPUT_TEXT;
+	    res = xmlNewDoc(style->version);
+	    if (res == NULL)
+		goto error;
+	    res->dict = ctxt->dict;
+	    xmlDictReference(res->dict);
+#ifdef WITH_XSLT_DEBUG
+	    xsltGenericDebug(xsltGenericDebugContext,
+                     "reusing transformation dict for output\n");
+#endif
+	} else {
+	    xsltTransformError(ctxt, NULL, inst,
+			     "xsltDocumentElem: unsupported method %s\n",
+		             style->method);
+	    goto error;
+	}
+    } else {
+	ctxt->type = XSLT_OUTPUT_XML;
+	res = xmlNewDoc(style->version);
+	if (res == NULL)
+	    goto error;
+	res->dict = ctxt->dict;
+	xmlDictReference(res->dict);
+#ifdef WITH_XSLT_DEBUG
+	xsltGenericDebug(xsltGenericDebugContext,
+                     "reusing transformation dict for output\n");
+#endif
+    }
+    res->charset = XML_CHAR_ENCODING_UTF8;
+    if (style->encoding != NULL)
+	res->encoding = xmlStrdup(style->encoding);
+    ctxt->output = res;
+    ctxt->insert = (xmlNodePtr) res;
+    xsltApplyOneTemplateInt(ctxt, node, inst->children, NULL, NULL, 0);
+
+    /*
+     * Do some post processing work depending on the generated output
+     */
+    root = xmlDocGetRootElement(res);
+    if (root != NULL) {
+        const xmlChar *doctype = NULL;
+
+        if ((root->ns != NULL) && (root->ns->prefix != NULL))
+	    doctype = xmlDictQLookup(ctxt->dict, root->ns->prefix, root->name);
+	if (doctype == NULL)
+	    doctype = root->name;
+
+        /*
+         * Apply the default selection of the method
+         */
+        if ((method == NULL) &&
+            (root->ns == NULL) &&
+            (!xmlStrcasecmp(root->name, (const xmlChar *) "html"))) {
+            xmlNodePtr tmp;
+
+            tmp = res->children;
+            while ((tmp != NULL) && (tmp != root)) {
+                if (tmp->type == XML_ELEMENT_NODE)
+                    break;
+                if ((tmp->type == XML_TEXT_NODE) && (!xmlIsBlankNode(tmp)))
+                    break;
+		tmp = tmp->next;
+            }
+            if (tmp == root) {
+                ctxt->type = XSLT_OUTPUT_HTML;
+                res->type = XML_HTML_DOCUMENT_NODE;
+                if (((doctypePublic != NULL) || (doctypeSystem != NULL))) {
+                    res->intSubset = xmlCreateIntSubset(res, doctype,
+                                                        doctypePublic,
+                                                        doctypeSystem);
+#ifdef XSLT_GENERATE_HTML_DOCTYPE
+		} else if (version != NULL) {
+                    xsltGetHTMLIDs(version, &doctypePublic,
+                                   &doctypeSystem);
+                    if (((doctypePublic != NULL) || (doctypeSystem != NULL)))
+                        res->intSubset =
+                            xmlCreateIntSubset(res, doctype,
+                                               doctypePublic,
+                                               doctypeSystem);
+#endif
+                }
+            }
+
+        }
+        if (ctxt->type == XSLT_OUTPUT_XML) {
+            XSLT_GET_IMPORT_PTR(doctypePublic, style, doctypePublic)
+                XSLT_GET_IMPORT_PTR(doctypeSystem, style, doctypeSystem)
+                if (((doctypePublic != NULL) || (doctypeSystem != NULL)))
+                res->intSubset = xmlCreateIntSubset(res, doctype,
+                                                    doctypePublic,
+                                                    doctypeSystem);
+        }
+    }
+
+    /*
+     * Save the result
+     */
+    ret = xsltSaveResultToFilename((const char *) filename,
+                                   res, style, 0);
+    if (ret < 0) {
+	xsltTransformError(ctxt, NULL, inst,
+                         "xsltDocumentElem: unable to save to %s\n",
+                         filename);
+	ctxt->state = XSLT_STATE_ERROR;
+#ifdef WITH_XSLT_DEBUG_EXTRA
+    } else {
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "Wrote %d bytes to %s\n", ret, filename);
+#endif
+    }
+
+  error:
+    ctxt->output = oldOutput;
+    ctxt->insert = oldInsert;
+    ctxt->type = oldType;
+    ctxt->outputFile = oldOutputFile;
+    if (URL != NULL)
+        xmlFree(URL);
+    if (filename != NULL)
+        xmlFree(filename);
+    if (style != NULL)
+        xsltFreeStylesheet(style);
+    if (res != NULL)
+        xmlFreeDoc(res);
+}
+
+/************************************************************************
+ *									*
+ *		Most of the XSLT-1.0 transformations			*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltSort:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt sort node
+ * @comp:  precomputed information
+ *
+ * function attached to xsl:sort nodes, but this should not be
+ * called directly
+ */
+void
+xsltSort(xsltTransformContextPtr ctxt,
+	xmlNodePtr node ATTRIBUTE_UNUSED, xmlNodePtr inst,
+	xsltStylePreCompPtr comp) {
+    if (comp == NULL) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:sort : compilation failed\n");
+	return;
+    }
+    xsltTransformError(ctxt, NULL, inst,
+	 "xsl:sort : improper use this should not be reached\n");
+}
+
+/**
+ * xsltCopy:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt copy node
+ * @comp:  precomputed information
+ *
+ * Process the xslt copy node on the source node
+ */
+void
+xsltCopy(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	           xmlNodePtr inst, xsltStylePreCompPtr castedComp) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemCopyPtr comp = (xsltStyleItemCopyPtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif
+    xmlNodePtr copy, oldInsert;
+
+    oldInsert = ctxt->insert;
+    if (ctxt->insert != NULL) {
+	switch (node->type) {
+	    case XML_TEXT_NODE:
+	    case XML_CDATA_SECTION_NODE:
+		/*
+		 * This text comes from the stylesheet
+		 * For stylesheets, the set of whitespace-preserving
+		 * element names consists of just xsl:text.
+		 */
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		if (node->type == XML_CDATA_SECTION_NODE) {
+		    XSLT_TRACE(ctxt,XSLT_TRACE_COPY,xsltGenericDebug(xsltGenericDebugContext,
+			 "xsltCopy: CDATA text %s\n", node->content));
+		} else {
+		    XSLT_TRACE(ctxt,XSLT_TRACE_COPY,xsltGenericDebug(xsltGenericDebugContext,
+			 "xsltCopy: text %s\n", node->content));
+                }
+#endif
+		xsltCopyText(ctxt, ctxt->insert, node, 0);
+		break;
+	    case XML_DOCUMENT_NODE:
+	    case XML_HTML_DOCUMENT_NODE:
+		break;
+	    case XML_ELEMENT_NODE:
+		if (xmlStrEqual(node->name, BAD_CAST " fake node libxslt"))
+		    return;
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		XSLT_TRACE(ctxt,XSLT_TRACE_COPY,xsltGenericDebug(xsltGenericDebugContext,
+				 "xsltCopy: node %s\n", node->name));
+#endif
+		copy = xsltCopyNode(ctxt, node, ctxt->insert);
+		ctxt->insert = copy;
+		if (comp->use != NULL) {
+		    xsltApplyAttributeSet(ctxt, node, inst, comp->use);
+		}
+		break;
+	    case XML_ATTRIBUTE_NODE: {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		XSLT_TRACE(ctxt,XSLT_TRACE_COPY,xsltGenericDebug(xsltGenericDebugContext,
+				 "xsltCopy: attribute %s\n", node->name));
+#endif
+		if (ctxt->insert->type == XML_ELEMENT_NODE) {
+		    xmlAttrPtr attr = (xmlAttrPtr) node, ret = NULL, cur;
+
+		    if (attr->ns != NULL) {
+			if (!xmlStrEqual(attr->ns->href, XSLT_NAMESPACE)) {
+			    ret = xmlCopyProp(ctxt->insert, attr);
+			    ret->ns = xsltGetNamespace(ctxt, node, attr->ns,
+						       ctxt->insert);
+			} 
+		    } else
+			ret = xmlCopyProp(ctxt->insert, attr);
+
+		    if (ret != NULL) {
+			cur = ctxt->insert->properties;
+			if (cur != NULL) {
+			    /*
+			     * Avoid duplicates and insert at the end
+			     * of the attribute list
+			     */
+			    while (cur->next != NULL) {
+				if ((xmlStrEqual(cur->name, ret->name)) &&
+                                    (((cur->ns == NULL) && (ret->ns == NULL)) ||
+				     ((cur->ns != NULL) && (ret->ns != NULL) &&
+				      (xmlStrEqual(cur->ns->href,
+						   ret->ns->href))))) {
+				    xmlFreeProp(ret);
+				    return;
+				}
+				cur = cur->next;
+			    }
+			    if ((xmlStrEqual(cur->name, ret->name)) &&
+				(((cur->ns == NULL) && (ret->ns == NULL)) ||
+				 ((cur->ns != NULL) && (ret->ns != NULL) &&
+				  (xmlStrEqual(cur->ns->href,
+					       ret->ns->href))))) {
+				xmlNodePtr tmp;
+
+				/*
+				 * Attribute already exists,
+				 * update it with the new value
+				 */
+				tmp = cur->children;
+				cur->children = ret->children;
+				ret->children = tmp;
+				tmp = cur->last;
+				cur->last = ret->last;
+				ret->last = tmp;
+				xmlFreeProp(ret);
+				return;
+			    }
+			    cur->next = ret;
+			    ret->prev = cur;
+			} else
+			    ctxt->insert->properties = ret;
+		    }
+		}
+		break;
+	    }
+	    case XML_PI_NODE:
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		XSLT_TRACE(ctxt,XSLT_TRACE_COPY,xsltGenericDebug(xsltGenericDebugContext,
+				 "xsltCopy: PI %s\n", node->name));
+#endif
+		copy = xmlNewDocPI(ctxt->insert->doc, node->name,
+		                   node->content);
+		xmlAddChild(ctxt->insert, copy);
+		break;
+	    case XML_COMMENT_NODE:
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		XSLT_TRACE(ctxt,XSLT_TRACE_COPY,xsltGenericDebug(xsltGenericDebugContext,
+				 "xsltCopy: comment\n"));
+#endif
+		copy = xmlNewComment(node->content);
+		xmlAddChild(ctxt->insert, copy);
+		break;
+	    case XML_NAMESPACE_DECL:
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		XSLT_TRACE(ctxt,XSLT_TRACE_COPY,xsltGenericDebug(xsltGenericDebugContext,
+				 "xsltCopy: namespace declaration\n"));
+#endif
+                xsltCopyNamespace(ctxt, ctxt->insert, (xmlNsPtr)node);
+		break;
+	    default:
+		break;
+
+	}
+    }
+
+    switch (node->type) {
+	case XML_DOCUMENT_NODE:
+	case XML_HTML_DOCUMENT_NODE:
+	case XML_ELEMENT_NODE:
+	    xsltApplyOneTemplateInt(ctxt, ctxt->node, inst->children,
+		                 NULL, NULL, 0);
+	    break;
+	default:
+	    break;
+    }
+    ctxt->insert = oldInsert;
+}
+
+/**
+ * xsltText:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt text node
+ * @comp:  precomputed information
+ *
+ * Process the xslt text node on the source node
+ */
+void
+xsltText(xsltTransformContextPtr ctxt, xmlNodePtr node ATTRIBUTE_UNUSED,
+	    xmlNodePtr inst, xsltStylePreCompPtr comp ATTRIBUTE_UNUSED) {
+    if ((inst->children != NULL) && (comp != NULL)) {
+	xmlNodePtr text = inst->children;
+	xmlNodePtr copy;
+
+	while (text != NULL) {
+	    if ((text->type != XML_TEXT_NODE) &&
+	         (text->type != XML_CDATA_SECTION_NODE)) {
+		xsltTransformError(ctxt, NULL, inst,
+				 "xsl:text content problem\n");
+		break;
+	    }
+	    copy = xmlNewDocText(ctxt->output, text->content);
+	    if (text->type != XML_CDATA_SECTION_NODE) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+		xsltGenericDebug(xsltGenericDebugContext,
+		     "Disable escaping: %s\n", text->content);
+#endif
+		copy->name = xmlStringTextNoenc;
+	    }
+	    xmlAddChild(ctxt->insert, copy);
+	    text = text->next;
+	}
+    }
+}
+
+/**
+ * xsltElement:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt element node
+ * @comp:  precomputed information
+ *
+ * Process the xslt element node on the source node
+ */
+void
+xsltElement(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	    xmlNodePtr inst, xsltStylePreCompPtr castedComp) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemElementPtr comp = (xsltStyleItemElementPtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif
+    xmlChar *prop = NULL, *attributes = NULL, *namespace;
+    const xmlChar *name;
+    const xmlChar *prefix;
+    xmlNsPtr ns = NULL, oldns = NULL;
+    xmlNodePtr copy;
+    xmlNodePtr oldInsert;
+    int generateDefault = 0;
+
+
+    if (ctxt->insert == NULL)
+	return;
+    if (!comp->has_name) {
+	return;
+    }
+
+    /*
+     * stack and saves
+     */
+    oldInsert = ctxt->insert;
+
+    if (comp->name == NULL) {
+	prop = xsltEvalAttrValueTemplate(ctxt, inst,
+		      (const xmlChar *)"name", NULL);
+	if (prop == NULL) {
+	    xsltTransformError(ctxt, NULL, inst,
+		 "xsl:element : name is missing\n");
+	    return;
+	}
+	if (xmlValidateQName(prop, 0)) {
+	    xsltTransformError(ctxt, NULL, inst,
+		    "xsl:element : invalid name\n");
+	    /* we fall through to catch any other errors if possible */
+	}
+	name = xsltSplitQName(ctxt->dict, prop, &prefix);
+	xmlFree(prop);
+    } else {
+	name = xsltSplitQName(ctxt->dict, comp->name, &prefix);
+    }
+
+    /*
+     * Create the new element
+     */
+    if (ctxt->output->dict == ctxt->dict) {
+	copy = xmlNewDocNodeEatName(ctxt->output, NULL, (xmlChar *)name, NULL);
+    } else {
+	copy = xmlNewDocNode(ctxt->output, NULL, (xmlChar *)name, NULL);
+    }
+    if (copy == NULL) {
+	xsltTransformError(ctxt, NULL, inst,
+	    "xsl:element : creation of %s failed\n", name);
+	return;
+    }
+    xmlAddChild(ctxt->insert, copy);
+    ctxt->insert = copy;
+
+    if ((comp->ns == NULL) && (comp->has_ns)) {
+	namespace = xsltEvalAttrValueTemplate(ctxt, inst,
+		(const xmlChar *)"namespace", NULL);
+	if (namespace != NULL) {
+	    ns = xsltGetSpecialNamespace(ctxt, inst, namespace, prefix,
+		                         ctxt->insert);
+	    xmlFree(namespace);
+	}
+    } else if ((comp->ns != NULL) && (prefix == NULL) && (comp->has_ns)) {
+	generateDefault = 1;
+    } else if (comp->ns != NULL) {
+	ns = xsltGetSpecialNamespace(ctxt, inst, comp->ns, prefix,
+				     ctxt->insert);
+    }
+    if ((ns == NULL) && (prefix != NULL)) {
+	if (!xmlStrncasecmp(prefix, (xmlChar *)"xml", 3)) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+	    xsltGenericDebug(xsltGenericDebugContext,
+		 "xsltElement: xml prefix forbidden\n");
+#endif
+	    return;
+	}
+	oldns = xmlSearchNs(inst->doc, inst, prefix);
+	if (oldns == NULL) {
+	    xsltTransformError(ctxt, NULL, inst,
+		"xsl:element : no namespace bound to prefix %s\n", prefix);
+	} else {
+	    ns = xsltGetNamespace(ctxt, inst, oldns, ctxt->insert);
+	}
+    }
+
+    if (generateDefault == 1) {
+	xmlNsPtr defaultNs = NULL;
+
+	if ((oldInsert != NULL) && (oldInsert->type == XML_ELEMENT_NODE))
+	    defaultNs = xmlSearchNs(oldInsert->doc, oldInsert, NULL);
+	if ((defaultNs == NULL) || (!xmlStrEqual(defaultNs->href, comp->ns))) {
+	    ns = xmlNewNs(ctxt->insert, comp->ns, NULL);
+	    ctxt->insert->ns = ns;
+	} else {
+	    ctxt->insert->ns = defaultNs;
+	}
+    } else if ((ns == NULL) && (oldns != NULL)) {
+	/* very specific case xsltGetNamespace failed */
+        ns = xmlNewNs(ctxt->insert, oldns->href, oldns->prefix);
+	ctxt->insert->ns = ns;
+    } else
+        ctxt->insert->ns = ns;
+
+
+    if (comp->has_use) {
+	if (comp->use != NULL) {
+	    xsltApplyAttributeSet(ctxt, node, inst, comp->use);
+	} else {
+	    attributes = xsltEvalAttrValueTemplate(ctxt, inst,
+		       (const xmlChar *)"use-attribute-sets", NULL);
+	    if (attributes != NULL) {
+		xsltApplyAttributeSet(ctxt, node, inst, attributes);
+		xmlFree(attributes);
+	    }
+	}
+    }
+    
+    xsltApplyOneTemplateInt(ctxt, ctxt->node, inst->children, NULL, NULL, 0);
+
+    ctxt->insert = oldInsert;
+}
+
+
+/**
+ * xsltComment:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt comment node
+ * @comp:  precomputed information
+ *
+ * Process the xslt comment node on the source node
+ */
+void
+xsltComment(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	           xmlNodePtr inst, xsltStylePreCompPtr comp ATTRIBUTE_UNUSED) {
+    xmlChar *value = NULL;
+    xmlNodePtr commentNode;
+    int len;
+    
+    value = xsltEvalTemplateString(ctxt, node, inst);
+    /* TODO: use or generate the compiled form */
+    len = xmlStrlen(value);
+    if (len > 0) {
+        if ((value[len-1] == '-') || 
+	    (xmlStrstr(value, BAD_CAST "--"))) {
+	    xsltTransformError(ctxt, NULL, inst,
+	    	    "xsl:comment : '--' or ending '-' not allowed in comment\n");
+	    /* fall through to try to catch further errors */
+	}
+    }
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    if (value == NULL) {
+	XSLT_TRACE(ctxt,XSLT_TRACE_COMMENT,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltComment: empty\n"));
+    } else {
+	XSLT_TRACE(ctxt,XSLT_TRACE_COMMENT,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltComment: content %s\n", value));
+    }
+#endif
+
+    commentNode = xmlNewComment(value);
+    xmlAddChild(ctxt->insert, commentNode);
+
+    if (value != NULL)
+	xmlFree(value);
+}
+
+/**
+ * xsltProcessingInstruction:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt processing-instruction node
+ * @comp:  precomputed information
+ *
+ * Process the xslt processing-instruction node on the source node
+ */
+void
+xsltProcessingInstruction(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	           xmlNodePtr inst, xsltStylePreCompPtr castedComp) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemPIPtr comp = (xsltStyleItemPIPtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif
+    const xmlChar *name;
+    xmlChar *value = NULL;
+    xmlNodePtr pi;
+
+
+    if (ctxt->insert == NULL)
+	return;
+    if (comp->has_name == 0)
+	return;
+    if (comp->name == NULL) {
+	name = xsltEvalAttrValueTemplate(ctxt, inst,
+			    (const xmlChar *)"name", NULL);
+	if (name == NULL) {
+	    xsltTransformError(ctxt, NULL, inst,
+		 "xsl:processing-instruction : name is missing\n");
+	    goto error;
+	}
+    } else {
+	name = comp->name;
+    }
+    /* TODO: check that it's both an an NCName and a PITarget. */
+
+
+    value = xsltEvalTemplateString(ctxt, node, inst);
+    if (xmlStrstr(value, BAD_CAST "?>") != NULL) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:processing-instruction: '?>' not allowed within PI content\n");
+	goto error;
+    }
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    if (value == NULL) {
+	XSLT_TRACE(ctxt,XSLT_TRACE_PI,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltProcessingInstruction: %s empty\n", name));
+    } else {
+	XSLT_TRACE(ctxt,XSLT_TRACE_PI,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltProcessingInstruction: %s content %s\n", name, value));
+    }
+#endif
+
+    pi = xmlNewDocPI(ctxt->insert->doc, name, value);
+    xmlAddChild(ctxt->insert, pi);
+
+error:
+    if ((name != NULL) && (name != comp->name))
+        xmlFree((xmlChar *) name);
+    if (value != NULL)
+	xmlFree(value);
+}
+
+/**
+ * xsltCopyOf:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt copy-of node
+ * @comp:  precomputed information
+ *
+ * Process the xslt copy-of node on the source node
+ */
+void
+xsltCopyOf(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	           xmlNodePtr inst, xsltStylePreCompPtr castedComp) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemCopyOfPtr comp = (xsltStyleItemCopyOfPtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif
+    xmlXPathObjectPtr res = NULL;
+    xmlNodeSetPtr list = NULL;
+    int i;
+    int oldProximityPosition, oldContextSize;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+
+    if ((ctxt == NULL) || (node == NULL) || (inst == NULL))
+	return;
+    if ((comp == NULL) || (comp->select == NULL) || (comp->comp == NULL)) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:copy-of : compilation failed\n");
+	return;
+    }
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    XSLT_TRACE(ctxt,XSLT_TRACE_COPY_OF,xsltGenericDebug(xsltGenericDebugContext,
+	 "xsltCopyOf: select %s\n", comp->select));
+#endif
+
+    oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
+    oldContextSize = ctxt->xpathCtxt->contextSize;
+    oldNsNr = ctxt->xpathCtxt->nsNr;
+    oldNamespaces = ctxt->xpathCtxt->namespaces;
+    ctxt->xpathCtxt->node = node;
+#ifdef XSLT_REFACTORED
+    if (comp->inScopeNS != NULL) {
+	ctxt->xpathCtxt->namespaces = comp->inScopeNS->list;
+	ctxt->xpathCtxt->nsNr = comp->inScopeNS->number;
+    } else {
+	ctxt->xpathCtxt->namespaces = NULL;
+	ctxt->xpathCtxt->nsNr = 0;
+    }
+#else
+    ctxt->xpathCtxt->namespaces = comp->nsList;
+    ctxt->xpathCtxt->nsNr = comp->nsNr;
+#endif
+    res = xmlXPathCompiledEval(comp->comp, ctxt->xpathCtxt);
+    ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+    ctxt->xpathCtxt->contextSize = oldContextSize;
+    ctxt->xpathCtxt->nsNr = oldNsNr;
+    ctxt->xpathCtxt->namespaces = oldNamespaces;
+    if (res != NULL) {
+	if (res->type == XPATH_NODESET) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	    XSLT_TRACE(ctxt,XSLT_TRACE_COPY_OF,xsltGenericDebug(xsltGenericDebugContext,
+		 "xsltCopyOf: result is a node set\n"));
+#endif
+	    list = res->nodesetval;
+	    if (list != NULL) {
+		/* the list is already sorted in document order by XPath */
+		/* append everything in this order under ctxt->insert */
+		for (i = 0;i < list->nodeNr;i++) {
+		    if (list->nodeTab[i] == NULL)
+			continue;
+		    if ((list->nodeTab[i]->type == XML_DOCUMENT_NODE) ||
+			(list->nodeTab[i]->type == XML_HTML_DOCUMENT_NODE)) {
+			xsltCopyTreeList(ctxt, list->nodeTab[i]->children,
+				         ctxt->insert, 0);
+		    } else if (list->nodeTab[i]->type == XML_ATTRIBUTE_NODE) {
+			xsltCopyProp(ctxt, ctxt->insert, 
+				     (xmlAttrPtr) list->nodeTab[i]);
+		    } else {
+			xsltCopyTree(ctxt, list->nodeTab[i], ctxt->insert, 0);
+		    }
+		}
+	    }
+	} else if (res->type == XPATH_XSLT_TREE) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	    XSLT_TRACE(ctxt,XSLT_TRACE_COPY_OF,xsltGenericDebug(xsltGenericDebugContext,
+		 "xsltCopyOf: result is a result tree fragment\n"));
+#endif
+	    list = res->nodesetval;
+	    if ((list != NULL) && (list->nodeTab != NULL) &&
+		(list->nodeTab[0] != NULL) &&
+		(IS_XSLT_REAL_NODE(list->nodeTab[0]))) {
+		xsltCopyTreeList(ctxt, list->nodeTab[0]->children,
+			         ctxt->insert, 0);
+	    }
+	} else {
+	    /* convert to a string */
+	    res = xmlXPathConvertString(res);
+	    if ((res != NULL) && (res->type == XPATH_STRING)) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		XSLT_TRACE(ctxt,XSLT_TRACE_COPY_OF,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltCopyOf: result %s\n", res->stringval));
+#endif
+		/* append content as text node */
+		xsltCopyTextString(ctxt, ctxt->insert, res->stringval, 0);
+	    }
+	}
+    } else {
+	ctxt->state = XSLT_STATE_STOPPED;
+    }
+
+    if (res != NULL)
+	xmlXPathFreeObject(res);
+}
+
+/**
+ * xsltValueOf:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt value-of node
+ * @comp:  precomputed information
+ *
+ * Process the xslt value-of node on the source node
+ */
+void
+xsltValueOf(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	           xmlNodePtr inst, xsltStylePreCompPtr castedComp)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleItemValueOfPtr comp = (xsltStyleItemValueOfPtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif
+    xmlXPathObjectPtr res = NULL;
+    xmlNodePtr copy = NULL;
+    int oldProximityPosition, oldContextSize;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+
+    if ((ctxt == NULL) || (node == NULL) || (inst == NULL))
+	return;
+    if ((comp == NULL) || (comp->select == NULL) || (comp->comp == NULL)) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:value-of : compilation failed\n");
+	return;
+    }
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    XSLT_TRACE(ctxt,XSLT_TRACE_VALUE_OF,xsltGenericDebug(xsltGenericDebugContext,
+	 "xsltValueOf: select %s\n", comp->select));
+#endif
+
+    oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
+    oldContextSize = ctxt->xpathCtxt->contextSize;
+    oldNsNr = ctxt->xpathCtxt->nsNr;
+    oldNamespaces = ctxt->xpathCtxt->namespaces;
+    ctxt->xpathCtxt->node = node;
+#ifdef XSLT_REFACTORED
+    if (comp->inScopeNS != NULL) {
+	ctxt->xpathCtxt->namespaces = comp->inScopeNS->list;
+	ctxt->xpathCtxt->nsNr = comp->inScopeNS->number;
+    } else {
+	ctxt->xpathCtxt->namespaces = NULL;
+	ctxt->xpathCtxt->nsNr = 0;
+    }
+#else
+    ctxt->xpathCtxt->namespaces = comp->nsList;
+    ctxt->xpathCtxt->nsNr = comp->nsNr;
+#endif
+    res = xmlXPathCompiledEval(comp->comp, ctxt->xpathCtxt);
+    ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+    ctxt->xpathCtxt->contextSize = oldContextSize;
+    ctxt->xpathCtxt->nsNr = oldNsNr;
+    ctxt->xpathCtxt->namespaces = oldNamespaces;
+    if (res != NULL) {
+	if (res->type != XPATH_STRING)
+	    res = xmlXPathConvertString(res);
+	if (res->type == XPATH_STRING) {
+	    copy = xsltCopyTextString(ctxt, ctxt->insert, res->stringval,
+		               comp->noescape);
+	}
+    } else {
+	ctxt->state = XSLT_STATE_STOPPED;
+    }
+    if (copy == NULL) {
+	if ((res == NULL) || (res->stringval != NULL)) {
+	    xsltTransformError(ctxt, NULL, inst,
+		"xsltValueOf: text copy failed\n");
+	}
+    }
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    else
+	XSLT_TRACE(ctxt,XSLT_TRACE_VALUE_OF,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltValueOf: result %s\n", res->stringval));
+#endif
+    if (res != NULL)
+	xmlXPathFreeObject(res);
+}
+
+/**
+ * xsltNumber:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt number node
+ * @comp:  precomputed information
+ *
+ * Process the xslt number node on the source node
+ */
+void
+xsltNumber(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	   xmlNodePtr inst, xsltStylePreCompPtr castedComp)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleItemNumberPtr comp = (xsltStyleItemNumberPtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif
+    if (comp == NULL) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:number : compilation failed\n");
+	return;
+    }
+
+    if ((ctxt == NULL) || (node == NULL) || (inst == NULL) || (comp == NULL))
+	return;
+
+    comp->numdata.doc = inst->doc;
+    comp->numdata.node = inst;
+    
+    xsltNumberFormat(ctxt, &comp->numdata, node);
+}
+
+/**
+ * xsltApplyImports:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt apply-imports node
+ * @comp:  precomputed information
+ *
+ * Process the xslt apply-imports node on the source node
+ */
+void
+xsltApplyImports(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	         xmlNodePtr inst,
+		 xsltStylePreCompPtr comp ATTRIBUTE_UNUSED) {
+    xsltTemplatePtr template;
+
+    if ((ctxt->templ == NULL) || (ctxt->templ->style == NULL)) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:apply-imports : internal error no current template\n");
+	return;
+    }
+    template = xsltGetTemplate(ctxt, node, ctxt->templ->style);
+    if (template != NULL) {
+	xsltApplyOneTemplateInt(ctxt, node, template->content, template, NULL, 0);
+    }
+}
+
+/**
+ * xsltCallTemplate:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt call-template node
+ * @comp:  precomputed information
+ *
+ * Process the xslt call-template node on the source node
+ */
+void
+xsltCallTemplate(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	           xmlNodePtr inst, xsltStylePreCompPtr castedComp)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleItemCallTemplatePtr comp =
+	(xsltStyleItemCallTemplatePtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif
+    xmlNodePtr cur = NULL;
+    xsltStackElemPtr params = NULL, param;
+
+    if (ctxt->insert == NULL)
+	return;
+    if (comp == NULL) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:call-template : compilation failed\n");
+	return;
+    }
+
+    /*
+     * The template must have been precomputed
+     */
+    if (comp->templ == NULL) {
+	comp->templ = xsltFindTemplate(ctxt, comp->name, comp->ns);
+	if (comp->templ == NULL) {
+	    if (comp->ns != NULL) {
+	        xsltTransformError(ctxt, NULL, inst,
+			"xsl:call-template : template %s:%s not found\n",
+			comp->ns, comp->name);
+	    } else {
+	        xsltTransformError(ctxt, NULL, inst,
+			"xsl:call-template : template %s not found\n",
+			comp->name);
+	    }
+	    return;
+	}
+    }
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    if ((comp != NULL) && (comp->name != NULL))
+	XSLT_TRACE(ctxt,XSLT_TRACE_CALL_TEMPLATE,xsltGenericDebug(xsltGenericDebugContext,
+			 "call-template: name %s\n", comp->name));
+#endif
+
+    cur = inst->children;
+    while (cur != NULL) {
+#ifdef WITH_DEBUGGER
+        if (ctxt->debugStatus != XSLT_DEBUG_NONE)
+            xslHandleDebugger(cur, node, comp->templ, ctxt);
+#endif
+	if (ctxt->state == XSLT_STATE_STOPPED) break;
+	/*
+	* TODO: The "with-param"s could be part of the "call-template"
+	*   structure. Avoid to "search" for params dynamically
+	*   in the XML tree every time.
+	*/
+	if (IS_XSLT_ELEM(cur)) {
+	    if (IS_XSLT_NAME(cur, "with-param")) {
+		param = xsltParseStylesheetCallerParam(ctxt, cur);
+		if (param != NULL) {
+		    param->next = params;
+		    params = param;
+		}
+	    } else {
+		xsltGenericError(xsltGenericErrorContext,
+		     "xsl:call-template: misplaced xsl:%s\n", cur->name);
+	    }
+	} else {
+	    xsltGenericError(xsltGenericErrorContext,
+		 "xsl:call-template: misplaced %s element\n", cur->name);
+	}
+	cur = cur->next;
+    }
+    /*
+     * Create a new frame using the params first
+     * Set the "notcur" flag to abide by Section 5.6 of the spec
+     */
+    xsltApplyOneTemplateInt(ctxt, node, comp->templ->content, comp->templ, params, 1);
+    if (params != NULL)
+	xsltFreeStackElemList(params);
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    if ((comp != NULL) && (comp->name != NULL))
+	XSLT_TRACE(ctxt,XSLT_TRACE_CALL_TEMPLATE,xsltGenericDebug(xsltGenericDebugContext,
+			 "call-template returned: name %s\n", comp->name));
+#endif
+}
+
+/**
+ * xsltApplyTemplates:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the apply-templates node
+ * @comp:  precomputed information
+ *
+ * Process the apply-templates node on the source node
+ */
+void
+xsltApplyTemplates(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	           xmlNodePtr inst, xsltStylePreCompPtr castedComp)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleItemApplyTemplatesPtr comp =
+	(xsltStyleItemApplyTemplatesPtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif
+    xmlNodePtr cur, delete = NULL, oldNode;
+    xmlXPathObjectPtr res = NULL;
+    xmlNodeSetPtr list = NULL, oldList;
+    int i, oldProximityPosition, oldContextSize;
+    const xmlChar *oldMode, *oldModeURI;
+    xsltStackElemPtr params = NULL, param;
+    int nbsorts = 0;
+    xmlNodePtr sorts[XSLT_MAX_SORT];
+    xmlDocPtr oldXDocPtr;
+    xsltDocumentPtr oldCDocPtr;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+
+    if (comp == NULL) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:apply-templates : compilation failed\n");
+	return;
+    }
+    if ((ctxt == NULL) || (node == NULL) || (inst == NULL) || (comp == NULL))
+	return;
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    if ((node != NULL) && (node->name != NULL))
+	XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltApplyTemplates: node: %s\n", node->name));
+#endif
+
+    /*
+     * Get mode if any
+     */
+    oldNode = ctxt->node;
+    oldMode = ctxt->mode;
+    oldModeURI = ctxt->modeURI;
+    ctxt->mode = comp->mode;
+    ctxt->modeURI = comp->modeURI;
+
+    /*
+     * The xpath context size and proximity position, as
+     * well as the xpath and context documents, may be changed
+     * so we save their initial state and will restore on exit
+     */
+    oldXDocPtr = ctxt->xpathCtxt->doc;
+    oldCDocPtr = ctxt->document;
+    oldContextSize = ctxt->xpathCtxt->contextSize;
+    oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
+    oldNsNr = ctxt->xpathCtxt->nsNr;
+    oldNamespaces = ctxt->xpathCtxt->namespaces;
+    oldList = ctxt->nodeList;
+
+    if (comp->select != NULL) {
+	if (comp->comp == NULL) {
+	    xsltTransformError(ctxt, NULL, inst,
+		 "xsl:apply-templates : compilation failed\n");
+	    goto error;
+	}
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltApplyTemplates: select %s\n", comp->select));
+#endif
+
+	ctxt->xpathCtxt->node = node;
+#ifdef XSLT_REFACTORED
+	if (comp->inScopeNS != NULL) {
+	    ctxt->xpathCtxt->namespaces = comp->inScopeNS->list;
+	    ctxt->xpathCtxt->nsNr = comp->inScopeNS->number;
+	} else {
+	    ctxt->xpathCtxt->namespaces = NULL;
+	    ctxt->xpathCtxt->nsNr = 0;
+	}
+#else
+	ctxt->xpathCtxt->namespaces = comp->nsList;
+	ctxt->xpathCtxt->nsNr = comp->nsNr;
+#endif
+	res = xmlXPathCompiledEval(comp->comp, ctxt->xpathCtxt);
+	ctxt->xpathCtxt->contextSize = oldContextSize;
+	ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+	if (res != NULL) {
+	    if (res->type == XPATH_NODESET) {
+		list = res->nodesetval;
+		res->nodesetval = NULL;
+		/*
+		 In order to take care of potential keys we need to
+		 do some extra work in the case of an RVT converted
+		 into a nodeset (e.g. exslt:node-set())
+		 We create a "pseudo-doc" (if not already created) and
+		 store it's pointer into _private.  This doc, together
+		 with the keyset, will be freed when the RVT is freed.
+	        */
+		if ((list != NULL) && (ctxt->document->keys != NULL)) {
+		    if ((list->nodeNr != 0) &&
+		        (list->nodeTab[0]->doc != NULL) &&
+		        (xmlStrEqual((xmlChar *)list->nodeTab[0]->doc->name,
+			   (const xmlChar *) " fake node libxslt")) &&
+			(list->nodeTab[0]->doc->_private == NULL)) {
+			    list->nodeTab[0]->doc->_private = xsltNewDocument(
+			    	ctxt, list->nodeTab[0]->doc);
+			if (list->nodeTab[0]->doc->_private == NULL) {
+			    xsltTransformError(ctxt, NULL, inst,
+		    "xsltApplyTemplates : failed to allocate subdoc\n");
+		        }
+
+			ctxt->document = list->nodeTab[0]->doc->_private;
+		    }
+
+		}
+	     } else {
+		list = NULL;
+	     }
+	} else {
+	    ctxt->state = XSLT_STATE_STOPPED;
+	}
+	if (list == NULL) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	    XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+		"xsltApplyTemplates: select didn't evaluate to a node list\n"));
+#endif
+	    goto error;
+	}
+    } else {
+	/*
+	 * Build an XPath nodelist with the children
+	 */
+	list = xmlXPathNodeSetCreate(NULL);
+	cur = node->children;
+	while (cur != NULL) {
+	    switch (cur->type) {
+		case XML_TEXT_NODE:
+		    if ((IS_BLANK_NODE(cur)) &&
+			(cur->parent != NULL) &&
+			(cur->parent->type == XML_ELEMENT_NODE) &&
+			(ctxt->style->stripSpaces != NULL)) {
+			const xmlChar *val;
+
+			if (cur->parent->ns != NULL) {
+			    val = (const xmlChar *)
+				  xmlHashLookup2(ctxt->style->stripSpaces,
+						 cur->parent->name,
+						 cur->parent->ns->href);
+			    if (val == NULL) {
+				val = (const xmlChar *)
+				  xmlHashLookup2(ctxt->style->stripSpaces,
+						 BAD_CAST "*",
+						 cur->parent->ns->href);
+			    }
+			} else {
+			    val = (const xmlChar *)
+				  xmlHashLookup2(ctxt->style->stripSpaces,
+						 cur->parent->name, NULL);
+			}
+			if ((val != NULL) &&
+			    (xmlStrEqual(val, (xmlChar *) "strip"))) {
+			    delete = cur;
+			    break;
+			}
+		    }
+		    /* no break on purpose */
+		case XML_ELEMENT_NODE:
+		case XML_DOCUMENT_NODE:
+		case XML_HTML_DOCUMENT_NODE:
+		case XML_CDATA_SECTION_NODE:
+		case XML_PI_NODE:
+		case XML_COMMENT_NODE:
+		    xmlXPathNodeSetAddUnique(list, cur);
+		    break;
+		case XML_DTD_NODE:
+		    /* Unlink the DTD, it's still reachable
+		     * using doc->intSubset */
+		    if (cur->next != NULL)
+			cur->next->prev = cur->prev;
+		    if (cur->prev != NULL)
+			cur->prev->next = cur->next;
+		    break;
+		default:
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		    XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltApplyTemplates: skipping cur type %d\n",
+				     cur->type));
+#endif
+		    delete = cur;
+	    }
+	    cur = cur->next;
+	    if (delete != NULL) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+		     "xsltApplyTemplates: removing ignorable blank cur\n"));
+#endif
+		xmlUnlinkNode(delete);
+		xmlFreeNode(delete);
+		delete = NULL;
+	    }
+	}
+    }
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    if (list != NULL)
+    XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+	"xsltApplyTemplates: list of %d nodes\n", list->nodeNr));
+#endif
+
+    ctxt->nodeList = list;
+    ctxt->xpathCtxt->contextSize = list->nodeNr;
+
+    /* 
+     * handle (or skip) the xsl:sort and xsl:with-param
+     */
+    cur = inst->children;
+    while (cur!=NULL) {
+#ifdef WITH_DEBUGGER
+        if (ctxt->debugStatus != XSLT_DEBUG_NONE)
+#ifdef XSLT_REFACTORED
+            xslHandleDebugger(cur, node, NULL, ctxt);
+#else
+	    /* TODO: Isn't comp->templ always NULL for apply-template? */
+            xslHandleDebugger(cur, node, comp->templ, ctxt);
+#endif
+#endif
+        if (ctxt->state == XSLT_STATE_STOPPED) break;
+        if (IS_XSLT_ELEM(cur)) {
+            if (IS_XSLT_NAME(cur, "with-param")) {
+                param = xsltParseStylesheetCallerParam(ctxt, cur);
+		if (param != NULL) {
+		    param->next = params;
+		    params = param;
+		}
+	    } else if (IS_XSLT_NAME(cur, "sort")) {
+		if (nbsorts >= XSLT_MAX_SORT) {
+		    xsltGenericError(xsltGenericErrorContext,
+			"xsl:apply-template: %s too many sort\n", node->name);
+		} else {
+		    sorts[nbsorts++] = cur;
+		}
+	    } else {
+		xsltGenericError(xsltGenericErrorContext,
+		    "xsl:apply-template: misplaced xsl:%s\n", cur->name);
+	    }
+        } else {
+            xsltGenericError(xsltGenericErrorContext,
+                 "xsl:apply-template: misplaced %s element\n", cur->name);
+        }
+        cur = cur->next;
+    }
+
+    if (nbsorts > 0) {
+	xsltDoSortFunction(ctxt, sorts, nbsorts);
+    }
+
+    for (i = 0;i < list->nodeNr;i++) {
+	ctxt->node = list->nodeTab[i];
+	ctxt->xpathCtxt->proximityPosition = i + 1;
+	/* For a 'select' nodeset, need to check if document has changed */
+	if ((IS_XSLT_REAL_NODE(list->nodeTab[i])) &&
+	    (list->nodeTab[i]->doc!=NULL) &&
+	    (list->nodeTab[i]->doc->doc!=NULL) &&
+	    (list->nodeTab[i]->doc->doc)!=ctxt->xpathCtxt->doc) {	  
+	    /* The nodeset is from another document, so must change */
+	    ctxt->xpathCtxt->doc=list->nodeTab[i]->doc->doc;
+	    if ((list->nodeTab[i]->doc->name != NULL) ||
+		(list->nodeTab[i]->doc->URL != NULL)) {
+		ctxt->document = xsltFindDocument(ctxt,
+			            list->nodeTab[i]->doc->doc);
+		if (ctxt->document == NULL) {
+		    /* restore the previous context */
+		    ctxt->document = oldCDocPtr;
+		}
+		ctxt->xpathCtxt->node = list->nodeTab[i];
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		if ((ctxt->document != NULL) &&
+		    (ctxt->document->doc != NULL)) {
+		    XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+		 "xsltApplyTemplates: Changing document - context doc %s, xpathdoc %s\n",
+		   ctxt->document->doc->URL, ctxt->xpathCtxt->doc->URL));
+		} else {
+		    XSLT_TRACE(ctxt,XSLT_TRACE_APPLY_TEMPLATES,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltApplyTemplates: Changing document - Return tree fragment\n"));
+		}
+#endif
+	    }
+	}
+	xsltProcessOneNode(ctxt, list->nodeTab[i], params);
+    }
+error:
+    if (params != NULL)
+	xsltFreeStackElemList(params);	/* free the parameter list */
+    if (list != NULL)
+	xmlXPathFreeNodeSet(list);
+    /*
+     * res must be deallocated after list
+     */
+    if (res != NULL)
+	xmlXPathFreeObject(res);
+
+    ctxt->nodeList = oldList;
+    ctxt->xpathCtxt->contextSize = oldContextSize;
+    ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+    ctxt->xpathCtxt->doc = oldXDocPtr;
+    ctxt->document = oldCDocPtr;
+    ctxt->xpathCtxt->nsNr = oldNsNr;
+    ctxt->xpathCtxt->namespaces = oldNamespaces;
+
+    ctxt->node = oldNode;
+    ctxt->mode = oldMode;
+    ctxt->modeURI = oldModeURI;
+}
+
+
+/**
+ * xsltChoose:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt choose node
+ * @comp:  precomputed information
+ *
+ * Process the xslt choose node on the source node
+ */
+void
+xsltChoose(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	   xmlNodePtr inst, xsltStylePreCompPtr comp ATTRIBUTE_UNUSED)
+{
+    xmlXPathObjectPtr res = NULL;
+    xmlNodePtr replacement, when;
+    int doit = 1;
+    int oldProximityPosition, oldContextSize;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+
+    if ((ctxt == NULL) || (node == NULL) || (inst == NULL))
+	return;
+
+    /* 
+     * Check the when's
+     */
+    replacement = inst->children;
+    if (replacement == NULL) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:choose: empty content not allowed\n");
+	goto error;
+    }
+    if (((!IS_XSLT_ELEM(replacement)) || (!IS_XSLT_NAME(replacement, "when")))
+	    && (!xmlIsBlankNode(replacement))) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:choose: xsl:when expected first\n");
+	goto error;
+    }
+    while ((IS_XSLT_ELEM(replacement) && (IS_XSLT_NAME(replacement, "when")))
+	    || xmlIsBlankNode(replacement)) {
+#ifdef XSLT_REFACTORED
+	xsltStyleItemWhenPtr wcomp =
+	    (xsltStyleItemWhenPtr) replacement->psvi;
+#else
+	xsltStylePreCompPtr wcomp = replacement->psvi;
+#endif
+
+	if (xmlIsBlankNode(replacement)) {
+	    replacement = replacement->next;
+	    continue;
+	}
+	
+	if ((wcomp == NULL) || (wcomp->test == NULL) || (wcomp->comp == NULL)) {
+	    xsltTransformError(ctxt, NULL, inst,
+		 "xsl:choose: compilation failed !\n");
+	    goto error;
+	}
+	when = replacement;
+
+
+#ifdef WITH_DEBUGGER
+        if (xslDebugStatus != XSLT_DEBUG_NONE)
+#ifdef XSLT_REFACTORED
+            xslHandleDebugger(when, node, NULL, ctxt);
+#else
+	    /* TODO: Isn't comp->templ always NULL for xsl:choose? */
+            xslHandleDebugger(when, node, comp->templ, ctxt);
+#endif
+#endif
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	XSLT_TRACE(ctxt,XSLT_TRACE_CHOOSE,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltChoose: test %s\n", wcomp->test));
+#endif
+
+	oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
+	oldContextSize = ctxt->xpathCtxt->contextSize;
+	oldNsNr = ctxt->xpathCtxt->nsNr;
+	oldNamespaces = ctxt->xpathCtxt->namespaces;
+  	ctxt->xpathCtxt->node = node;
+#ifdef XSLT_REFACTORED
+	if (wcomp->inScopeNS != NULL) {
+	    ctxt->xpathCtxt->namespaces = wcomp->inScopeNS->list;
+	    ctxt->xpathCtxt->nsNr = wcomp->inScopeNS->number;
+	} else {
+	    ctxt->xpathCtxt->namespaces = NULL;
+	    ctxt->xpathCtxt->nsNr = 0;
+	}
+#else
+	ctxt->xpathCtxt->namespaces = wcomp->nsList;
+	ctxt->xpathCtxt->nsNr = wcomp->nsNr;
+#endif
+  	res = xmlXPathCompiledEval(wcomp->comp, ctxt->xpathCtxt);
+	ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+	ctxt->xpathCtxt->contextSize = oldContextSize;
+	ctxt->xpathCtxt->nsNr = oldNsNr;
+	ctxt->xpathCtxt->namespaces = oldNamespaces;
+	if (res != NULL) {
+	    if (res->type != XPATH_BOOLEAN)
+		res = xmlXPathConvertBoolean(res);
+	    if (res->type == XPATH_BOOLEAN)
+		doit = res->boolval;
+	    else {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		XSLT_TRACE(ctxt,XSLT_TRACE_CHOOSE,xsltGenericDebug(xsltGenericDebugContext,
+		    "xsltChoose: test didn't evaluate to a boolean\n"));
+#endif
+		goto error;
+	    }
+	} else {
+	    ctxt->state = XSLT_STATE_STOPPED;
+	}
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	XSLT_TRACE(ctxt,XSLT_TRACE_CHOOSE,xsltGenericDebug(xsltGenericDebugContext,
+	    "xsltChoose: test evaluate to %d\n", doit));
+#endif
+	if (doit) {
+	    xsltApplyOneTemplateInt(ctxt, ctxt->node, when->children,
+		                 NULL, NULL, 0);
+	    goto done;
+	}
+	if (res != NULL)
+	    xmlXPathFreeObject(res);
+	res = NULL;
+	replacement = replacement->next;
+    }
+    if (IS_XSLT_ELEM(replacement) && (IS_XSLT_NAME(replacement, "otherwise"))) {
+#ifdef WITH_DEBUGGER
+        if (xslDebugStatus != XSLT_DEBUG_NONE)
+#ifdef XSLT_REFACTORED
+            xslHandleDebugger(replacement, node, NULL, ctxt);
+#else
+	    /* TODO: Isn't comp->templ always NULL for xsl:otherwise? */
+            xslHandleDebugger(replacement, node, comp->templ, ctxt);
+#endif
+#endif
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	XSLT_TRACE(ctxt,XSLT_TRACE_CHOOSE,xsltGenericDebug(xsltGenericDebugContext,
+			 "evaluating xsl:otherwise\n"));
+#endif
+	xsltApplyOneTemplateInt(ctxt, ctxt->node, replacement->children,
+		             NULL, NULL, 0);
+	replacement = replacement->next;
+    }
+    while (xmlIsBlankNode(replacement)) {
+	replacement = replacement->next;
+    }
+    if (replacement != NULL) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:choose: unexpected content %s\n", replacement->name);
+	goto error;
+    }
+
+done:
+error:
+    if (res != NULL)
+	xmlXPathFreeObject(res);
+}
+
+/**
+ * xsltIf:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt if node
+ * @comp:  precomputed information
+ *
+ * Process the xslt if node on the source node
+ */
+void
+xsltIf(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	           xmlNodePtr inst, xsltStylePreCompPtr castedComp){
+#ifdef XSLT_REFACTORED
+	xsltStyleItemIfPtr comp = (xsltStyleItemIfPtr) castedComp;
+#else
+	xsltStylePreCompPtr comp = castedComp;
+#endif
+    xmlXPathObjectPtr res = NULL;
+    int doit = 1;
+    int oldContextSize, oldProximityPosition;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+
+    if ((ctxt == NULL) || (node == NULL) || (inst == NULL))
+	return;
+    if ((comp == NULL) || (comp->test == NULL) || (comp->comp == NULL)) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:if : compilation failed\n");
+	return;
+    }
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    XSLT_TRACE(ctxt,XSLT_TRACE_IF,xsltGenericDebug(xsltGenericDebugContext,
+	 "xsltIf: test %s\n", comp->test));
+#endif
+
+    oldContextSize = ctxt->xpathCtxt->contextSize;
+    oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
+    oldNsNr = ctxt->xpathCtxt->nsNr;
+    oldNamespaces = ctxt->xpathCtxt->namespaces;
+    ctxt->xpathCtxt->node = node;
+#ifdef XSLT_REFACTORED
+    if (comp->inScopeNS != NULL) {
+	ctxt->xpathCtxt->namespaces = comp->inScopeNS->list;
+	ctxt->xpathCtxt->nsNr = comp->inScopeNS->number;
+    } else {
+	ctxt->xpathCtxt->namespaces = NULL;
+	ctxt->xpathCtxt->nsNr = 0;
+    }
+#else
+    ctxt->xpathCtxt->namespaces = comp->nsList;
+    ctxt->xpathCtxt->nsNr = comp->nsNr;
+#endif
+    res = xmlXPathCompiledEval(comp->comp, ctxt->xpathCtxt);
+    ctxt->xpathCtxt->contextSize = oldContextSize;
+    ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+    ctxt->xpathCtxt->nsNr = oldNsNr;
+    ctxt->xpathCtxt->namespaces = oldNamespaces;
+    if (res != NULL) {
+	if (res->type != XPATH_BOOLEAN)
+	    res = xmlXPathConvertBoolean(res);
+	if (res->type == XPATH_BOOLEAN)
+	    doit = res->boolval;
+	else {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	    XSLT_TRACE(ctxt,XSLT_TRACE_IF,xsltGenericDebug(xsltGenericDebugContext,
+		"xsltIf: test didn't evaluate to a boolean\n"));
+#endif
+	    goto error;
+	}
+    } else {
+	ctxt->state = XSLT_STATE_STOPPED;
+    }
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    XSLT_TRACE(ctxt,XSLT_TRACE_IF,xsltGenericDebug(xsltGenericDebugContext,
+	"xsltIf: test evaluate to %d\n", doit));
+#endif
+    if (doit) {
+	xsltApplyOneTemplateInt(ctxt, node, inst->children, NULL, NULL, 0);
+    }
+
+error:
+    if (res != NULL)
+	xmlXPathFreeObject(res);
+}
+
+/**
+ * xsltForEach:
+ * @ctxt:  a XSLT process context
+ * @node:  the node in the source tree.
+ * @inst:  the xslt for-each node
+ * @comp:  precomputed information
+ *
+ * Process the xslt for-each node on the source node
+ */
+void
+xsltForEach(xsltTransformContextPtr ctxt, xmlNodePtr node,
+	           xmlNodePtr inst, xsltStylePreCompPtr castedComp)
+{
+#ifdef XSLT_REFACTORED
+	xsltStyleItemForEachPtr comp = (xsltStyleItemForEachPtr) castedComp;
+#else
+	xsltStylePreCompPtr comp = castedComp;
+#endif
+    xmlXPathObjectPtr res = NULL;
+    xmlNodePtr replacement;
+    xmlNodeSetPtr list = NULL, oldList;
+    int i, oldProximityPosition, oldContextSize;
+    xmlNodePtr oldNode;
+    int nbsorts = 0;
+    xmlNodePtr sorts[XSLT_MAX_SORT];
+    xmlDocPtr oldXDocPtr;
+    xsltDocumentPtr oldCDocPtr;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+
+    if ((ctxt == NULL) || (node == NULL) || (inst == NULL))
+	return;
+    if ((comp == NULL) || (comp->select == NULL) || (comp->comp == NULL)) {
+	xsltTransformError(ctxt, NULL, inst,
+	     "xsl:for-each : compilation failed\n");
+	return;
+    }
+    oldNode = ctxt->node;
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    XSLT_TRACE(ctxt,XSLT_TRACE_FOR_EACH,xsltGenericDebug(xsltGenericDebugContext,
+	 "xsltForEach: select %s\n", comp->select));
+#endif
+
+    oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
+    oldContextSize = ctxt->xpathCtxt->contextSize;
+    oldNsNr = ctxt->xpathCtxt->nsNr;
+    oldNamespaces = ctxt->xpathCtxt->namespaces;
+    ctxt->xpathCtxt->node = node;
+#ifdef XSLT_REFACTORED
+    if (comp->inScopeNS != NULL) {
+	ctxt->xpathCtxt->namespaces = comp->inScopeNS->list;
+	ctxt->xpathCtxt->nsNr = comp->inScopeNS->number;
+    } else {
+	ctxt->xpathCtxt->namespaces = NULL;
+	ctxt->xpathCtxt->nsNr = 0;
+    }
+#else
+    ctxt->xpathCtxt->namespaces = comp->nsList;
+    ctxt->xpathCtxt->nsNr = comp->nsNr;
+#endif   
+    oldCDocPtr = ctxt->document;
+    oldXDocPtr = ctxt->xpathCtxt->doc;
+    res = xmlXPathCompiledEval(comp->comp, ctxt->xpathCtxt);
+    ctxt->xpathCtxt->contextSize = oldContextSize;
+    ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+    ctxt->xpathCtxt->nsNr = oldNsNr;
+    ctxt->xpathCtxt->namespaces = oldNamespaces;
+    if (res != NULL) {
+	if (res->type == XPATH_NODESET)
+	    list = res->nodesetval;
+    } else {
+	ctxt->state = XSLT_STATE_STOPPED;
+    }
+    if (list == NULL) {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+	XSLT_TRACE(ctxt,XSLT_TRACE_FOR_EACH,xsltGenericDebug(xsltGenericDebugContext,
+	    "xsltForEach: select didn't evaluate to a node list\n"));
+#endif
+	goto error;
+    }
+
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    XSLT_TRACE(ctxt,XSLT_TRACE_FOR_EACH,xsltGenericDebug(xsltGenericDebugContext,
+	"xsltForEach: select evaluates to %d nodes\n", list->nodeNr));
+#endif
+
+    oldList = ctxt->nodeList;
+    ctxt->nodeList = list;
+    oldContextSize = ctxt->xpathCtxt->contextSize;
+    oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
+    ctxt->xpathCtxt->contextSize = list->nodeNr;
+
+    /* 
+     * handle and skip the xsl:sort
+     */
+    replacement = inst->children;
+    while (IS_XSLT_ELEM(replacement) && (IS_XSLT_NAME(replacement, "sort"))) {
+	if (nbsorts >= XSLT_MAX_SORT) {
+	    xsltGenericError(xsltGenericErrorContext,
+		"xsl:for-each: too many sorts\n");
+	} else {
+	    sorts[nbsorts++] = replacement;
+	}
+#ifdef WITH_DEBUGGER
+        if (xslDebugStatus != XSLT_DEBUG_NONE)
+            xslHandleDebugger(replacement, node, NULL, ctxt);
+#endif
+	replacement = replacement->next;
+    }
+
+    if (nbsorts > 0) {
+	xsltDoSortFunction(ctxt, sorts, nbsorts);
+    }
+
+
+    for (i = 0;i < list->nodeNr;i++) {
+	ctxt->node = list->nodeTab[i];
+	ctxt->xpathCtxt->proximityPosition = i + 1;
+	/* For a 'select' nodeset, need to check if document has changed */
+	if ((IS_XSLT_REAL_NODE(list->nodeTab[i])) &&
+	    (list->nodeTab[i]->doc!=NULL) &&
+	    (list->nodeTab[i]->doc->doc!=NULL) &&
+	    (list->nodeTab[i]->doc->doc)!=ctxt->xpathCtxt->doc) {	  
+	    /* The nodeset is from another document, so must change */
+	    ctxt->xpathCtxt->doc=list->nodeTab[i]->doc->doc;
+	    if ((list->nodeTab[i]->doc->name != NULL) ||
+		(list->nodeTab[i]->doc->URL != NULL)) {
+		ctxt->document = xsltFindDocument(ctxt,
+			            list->nodeTab[i]->doc->doc);
+		if (ctxt->document == NULL) {
+		    /* restore the previous context */
+		    ctxt->document = oldCDocPtr;
+		}
+		ctxt->xpathCtxt->node = list->nodeTab[i];
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		if ((ctxt->document != NULL) &&
+		    (ctxt->document->doc != NULL)) {
+		    XSLT_TRACE(ctxt,XSLT_TRACE_FOR_EACH,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltForEach: Changing document - context doc %s, xpathdoc %s\n",
+		 ctxt->document->doc->URL, ctxt->xpathCtxt->doc->URL));
+		} else {
+		    XSLT_TRACE(ctxt,XSLT_TRACE_FOR_EACH,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltForEach: Changing document - Return tree fragment\n"));
+		}
+#endif
+	    }
+	}
+	xsltApplyOneTemplateInt(ctxt, list->nodeTab[i], replacement, NULL, NULL, 0);
+    }
+    ctxt->document = oldCDocPtr;
+    ctxt->nodeList = oldList;
+    ctxt->node = oldNode;
+    ctxt->xpathCtxt->doc = oldXDocPtr;
+    ctxt->xpathCtxt->contextSize = oldContextSize;
+    ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+    ctxt->xpathCtxt->nsNr = oldNsNr;
+    ctxt->xpathCtxt->namespaces = oldNamespaces;
+
+error:
+    if (res != NULL)
+	xmlXPathFreeObject(res);
+}
+
+/************************************************************************
+ *									*
+ *			Generic interface				*
+ *									*
+ ************************************************************************/
+
+#ifdef XSLT_GENERATE_HTML_DOCTYPE
+typedef struct xsltHTMLVersion {
+    const char *version;
+    const char *public;
+    const char *system;
+} xsltHTMLVersion;
+
+static xsltHTMLVersion xsltHTMLVersions[] = {
+    { "4.01frame", "-//W3C//DTD HTML 4.01 Frameset//EN",
+      "http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd"},
+    { "4.01strict", "-//W3C//DTD HTML 4.01//EN",
+      "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd"},
+    { "4.01trans", "-//W3C//DTD HTML 4.01 Transitional//EN",
+      "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"},
+    { "4.01", "-//W3C//DTD HTML 4.01 Transitional//EN",
+      "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"},
+    { "4.0strict", "-//W3C//DTD HTML 4.01//EN",
+      "http://www.w3.org/TR/html4/strict.dtd"},
+    { "4.0trans", "-//W3C//DTD HTML 4.01 Transitional//EN",
+      "http://www.w3.org/TR/html4/loose.dtd"},
+    { "4.0frame", "-//W3C//DTD HTML 4.01 Frameset//EN",
+      "http://www.w3.org/TR/html4/frameset.dtd"},
+    { "4.0", "-//W3C//DTD HTML 4.01 Transitional//EN",
+      "http://www.w3.org/TR/html4/loose.dtd"},
+    { "3.2", "-//W3C//DTD HTML 3.2//EN", NULL }
+};
+
+/**
+ * xsltGetHTMLIDs:
+ * @version:  the version string
+ * @publicID:  used to return the public ID
+ * @systemID:  used to return the system ID
+ *
+ * Returns -1 if not found, 0 otherwise and the system and public
+ *         Identifier for this given verion of HTML
+ */
+static int
+xsltGetHTMLIDs(const xmlChar *version, const xmlChar **publicID,
+	            const xmlChar **systemID) {
+    unsigned int i;
+    if (version == NULL)
+	return(-1);
+    for (i = 0;i < (sizeof(xsltHTMLVersions)/sizeof(xsltHTMLVersions[1]));
+	 i++) {
+	if (!xmlStrcasecmp(version,
+		           (const xmlChar *) xsltHTMLVersions[i].version)) {
+	    if (publicID != NULL)
+		*publicID = (const xmlChar *) xsltHTMLVersions[i].public;
+	    if (systemID != NULL)
+		*systemID = (const xmlChar *) xsltHTMLVersions[i].system;
+	    return(0);
+	}
+    }
+    return(-1);
+}
+#endif
+
+/**
+ * xsltApplyStripSpaces:
+ * @ctxt:  a XSLT process context
+ * @node:  the root of the XML tree
+ *
+ * Strip the unwanted ignorable spaces from the input tree
+ */
+void
+xsltApplyStripSpaces(xsltTransformContextPtr ctxt, xmlNodePtr node) {
+    xmlNodePtr current;
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    int nb = 0;
+#endif
+
+
+    current = node;
+    while (current != NULL) {
+	/*
+	 * Cleanup children empty nodes if asked for
+	 */
+	if ((IS_XSLT_REAL_NODE(current)) &&
+	    (current->children != NULL) &&
+	    (xsltFindElemSpaceHandling(ctxt, current))) {
+	    xmlNodePtr delete = NULL, cur = current->children;
+
+	    while (cur != NULL) {
+		if (IS_BLANK_NODE(cur))
+		    delete = cur;
+		
+		cur = cur->next;
+		if (delete != NULL) {
+		    xmlUnlinkNode(delete);
+		    xmlFreeNode(delete);
+		    delete = NULL;
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		    nb++;
+#endif
+		}
+	    }
+	}
+
+	/*
+	 * Skip to next node in document order.
+	 */
+	if (node->type == XML_ENTITY_REF_NODE) {
+	    /* process deep in entities */
+	    xsltApplyStripSpaces(ctxt, node->children);
+	}
+	if ((current->children != NULL) &&
+            (current->type != XML_ENTITY_REF_NODE)) {
+	    current = current->children;
+	} else if (current->next != NULL) {
+	    current = current->next;
+	} else {
+	    do {
+		current = current->parent;
+		if (current == NULL)
+		    break;
+		if (current == node)
+		    goto done;
+		if (current->next != NULL) {
+		    current = current->next;
+		    break;
+		}
+	    } while (current != NULL);
+	}
+    }
+
+done:
+#ifdef WITH_XSLT_DEBUG_PROCESS
+    XSLT_TRACE(ctxt,XSLT_TRACE_STRIP_SPACES,xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltApplyStripSpaces: removed %d ignorable blank node\n", nb));
+#endif
+    return;
+}
+
+/**
+ * xsltApplyStylesheetInternal:
+ * @style:  a parsed XSLT stylesheet
+ * @doc:  a parsed XML document
+ * @params:  a NULL terminated array of parameters names/values tuples
+ * @output:  the targetted output
+ * @profile:  profile FILE * output or NULL
+ * @user:  user provided parameter
+ *
+ * Apply the stylesheet to the document
+ * NOTE: This may lead to a non-wellformed output XML wise !
+ *
+ * Returns the result document or NULL in case of error
+ */
+static xmlDocPtr
+xsltApplyStylesheetInternal(xsltStylesheetPtr style, xmlDocPtr doc,
+                            const char **params, const char *output,
+                            FILE * profile, xsltTransformContextPtr userCtxt)
+{
+    xmlDocPtr res = NULL;
+    xsltTransformContextPtr ctxt = NULL;
+    xmlNodePtr root, node;
+    const xmlChar *method;
+    const xmlChar *doctypePublic;
+    const xmlChar *doctypeSystem;
+    const xmlChar *version;
+    xsltStackElemPtr variables;
+    xsltStackElemPtr vptr;
+
+    if ((style == NULL) || (doc == NULL))
+        return (NULL);
+
+    if (style->internalized == 0) {
+#ifdef WITH_XSLT_DEBUG
+	xsltGenericDebug(xsltGenericDebugContext,
+			 "Stylesheet was not fully internalized !\n");
+#endif
+    }
+    if (doc->intSubset != NULL) {
+	/*
+	 * Avoid hitting the DTD when scanning nodes
+	 * but keep it linked as doc->intSubset
+	 */
+	xmlNodePtr cur = (xmlNodePtr) doc->intSubset;
+	if (cur->next != NULL)
+	    cur->next->prev = cur->prev;
+	if (cur->prev != NULL)
+	    cur->prev->next = cur->next;
+	if (doc->children == cur)
+	    doc->children = cur->next;
+	if (doc->last == cur)
+	    doc->last = cur->prev;
+	cur->prev = cur->next = NULL;
+    }
+
+    /*
+     * Check for XPath document order availability
+     */
+    root = xmlDocGetRootElement(doc);
+    if (root != NULL) {
+	if (((long) root->content) >= 0 && (xslDebugStatus == XSLT_DEBUG_NONE))
+	    xmlXPathOrderDocElems(doc);
+    }
+
+    if (userCtxt != NULL)
+	ctxt = userCtxt;
+    else
+	ctxt = xsltNewTransformContext(style, doc);
+
+    if (ctxt == NULL)
+        return (NULL);
+
+    if (profile != NULL)
+        ctxt->profile = 1;
+
+    if (output != NULL)
+        ctxt->outputFile = output;
+    else
+        ctxt->outputFile = NULL;
+
+    /*
+     * internalize the modes if needed
+     */
+    if (ctxt->dict != NULL) {
+        if (ctxt->mode != NULL)
+	    ctxt->mode = xmlDictLookup(ctxt->dict, ctxt->mode, -1);
+        if (ctxt->modeURI != NULL)
+	    ctxt->modeURI = xmlDictLookup(ctxt->dict, ctxt->modeURI, -1);
+    }
+
+    XSLT_GET_IMPORT_PTR(method, style, method)
+        XSLT_GET_IMPORT_PTR(doctypePublic, style, doctypePublic)
+        XSLT_GET_IMPORT_PTR(doctypeSystem, style, doctypeSystem)
+        XSLT_GET_IMPORT_PTR(version, style, version)
+
+        if ((method != NULL) &&
+            (!xmlStrEqual(method, (const xmlChar *) "xml"))) {
+        if (xmlStrEqual(method, (const xmlChar *) "html")) {
+            ctxt->type = XSLT_OUTPUT_HTML;
+            if (((doctypePublic != NULL) || (doctypeSystem != NULL))) {
+                res = htmlNewDoc(doctypeSystem, doctypePublic);
+	    } else {
+                if (version == NULL) {
+		    xmlDtdPtr dtd;
+
+		    res = htmlNewDoc(NULL, NULL);
+		    /*
+		     * Make sure no DTD node is generated in this case
+		     */
+		    if (res != NULL) {
+			dtd = xmlGetIntSubset(res);
+			if (dtd != NULL) {
+			    xmlUnlinkNode((xmlNodePtr) dtd);
+			    xmlFreeDtd(dtd);
+			}
+			res->intSubset = NULL;
+			res->extSubset = NULL;
+		    }
+		} else {
+#ifdef XSLT_GENERATE_HTML_DOCTYPE
+		    xsltGetHTMLIDs(version, &doctypePublic, &doctypeSystem);
+#endif
+		    res = htmlNewDoc(doctypeSystem, doctypePublic);
+		}
+            }
+            if (res == NULL)
+                goto error;
+	    res->dict = ctxt->dict;
+	    xmlDictReference(res->dict);
+#ifdef WITH_XSLT_DEBUG
+	    xsltGenericDebug(xsltGenericDebugContext,
+			 "reusing transformation dict for output\n");
+#endif
+        } else if (xmlStrEqual(method, (const xmlChar *) "xhtml")) {
+	    xsltTransformError(ctxt, NULL, (xmlNodePtr) doc,
+     "xsltApplyStylesheetInternal: unsupported method xhtml, using html\n",
+			 style->method);
+            ctxt->type = XSLT_OUTPUT_HTML;
+            res = htmlNewDoc(doctypeSystem, doctypePublic);
+            if (res == NULL)
+                goto error;
+	    res->dict = ctxt->dict;
+	    xmlDictReference(res->dict);
+#ifdef WITH_XSLT_DEBUG
+	    xsltGenericDebug(xsltGenericDebugContext,
+			 "reusing transformation dict for output\n");
+#endif
+        } else if (xmlStrEqual(method, (const xmlChar *) "text")) {
+            ctxt->type = XSLT_OUTPUT_TEXT;
+            res = xmlNewDoc(style->version);
+            if (res == NULL)
+                goto error;
+	    res->dict = ctxt->dict;
+	    xmlDictReference(res->dict);
+#ifdef WITH_XSLT_DEBUG
+	    xsltGenericDebug(xsltGenericDebugContext,
+			 "reusing transformation dict for output\n");
+#endif
+        } else {
+	    xsltTransformError(ctxt, NULL, (xmlNodePtr) doc,
+		     "xsltApplyStylesheetInternal: unsupported method %s\n",
+                             style->method);
+            goto error;
+        }
+    } else {
+        ctxt->type = XSLT_OUTPUT_XML;
+        res = xmlNewDoc(style->version);
+        if (res == NULL)
+            goto error;
+	res->dict = ctxt->dict;
+	xmlDictReference(ctxt->dict);
+#ifdef WITH_XSLT_DEBUG
+	xsltGenericDebug(xsltGenericDebugContext,
+			 "reusing transformation dict for output\n");
+#endif
+    }
+    res->charset = XML_CHAR_ENCODING_UTF8;
+    if (style->encoding != NULL)
+        res->encoding = xmlStrdup(style->encoding);
+    variables = style->variables;
+
+    /*
+     * Start the evaluation, evaluate the params, the stylesheets globals
+     * and start by processing the top node.
+     */
+    if (xsltNeedElemSpaceHandling(ctxt))
+	xsltApplyStripSpaces(ctxt, xmlDocGetRootElement(doc));
+    ctxt->output = res;
+    ctxt->insert = (xmlNodePtr) res;
+    if (ctxt->globalVars == NULL)
+	ctxt->globalVars = xmlHashCreate(20);
+    if (params != NULL)
+        xsltEvalUserParams(ctxt, params);
+    xsltEvalGlobalVariables(ctxt);
+    ctxt->node = (xmlNodePtr) doc;
+    varsPush(ctxt, NULL);
+    ctxt->varsBase = ctxt->varsNr - 1;
+    xsltProcessOneNode(ctxt, ctxt->node, NULL);
+    xsltFreeStackElemList(varsPop(ctxt));
+    xsltShutdownCtxtExts(ctxt);
+
+    xsltCleanupTemplates(style); /* TODO: <- style should be read only */
+
+    /*
+     * Now cleanup our variables so stylesheet can be re-used
+     *
+     * TODO: this is not needed anymore global variables are copied
+     *       and not evaluated directly anymore, keep this as a check
+     */
+    if (style->variables != variables) {
+        vptr = style->variables;
+        while (vptr->next != variables)
+            vptr = vptr->next;
+        vptr->next = NULL;
+        xsltFreeStackElemList(style->variables);
+        style->variables = variables;
+    }
+    vptr = style->variables;
+    while (vptr != NULL) {
+        if (vptr->computed) {
+            if (vptr->value != NULL) {
+                xmlXPathFreeObject(vptr->value);
+                vptr->value = NULL;
+                vptr->computed = 0;
+            }
+        }
+        vptr = vptr->next;
+    }
+
+
+    /*
+     * Do some post processing work depending on the generated output
+     */
+    root = xmlDocGetRootElement(res);
+    if (root != NULL) {
+        const xmlChar *doctype = NULL;
+
+        if ((root->ns != NULL) && (root->ns->prefix != NULL))
+	    doctype = xmlDictQLookup(ctxt->dict, root->ns->prefix, root->name);
+	if (doctype == NULL)
+	    doctype = root->name;
+
+        /*
+         * Apply the default selection of the method
+         */
+        if ((method == NULL) &&
+            (root->ns == NULL) &&
+            (!xmlStrcasecmp(root->name, (const xmlChar *) "html"))) {
+            xmlNodePtr tmp;
+
+            tmp = res->children;
+            while ((tmp != NULL) && (tmp != root)) {
+                if (tmp->type == XML_ELEMENT_NODE)
+                    break;
+                if ((tmp->type == XML_TEXT_NODE) && (!xmlIsBlankNode(tmp)))
+                    break;
+		tmp = tmp->next;
+            }
+            if (tmp == root) {
+                ctxt->type = XSLT_OUTPUT_HTML;
+                res->type = XML_HTML_DOCUMENT_NODE;
+                if (((doctypePublic != NULL) || (doctypeSystem != NULL))) {
+                    res->intSubset = xmlCreateIntSubset(res, doctype,
+                                                        doctypePublic,
+                                                        doctypeSystem);
+#ifdef XSLT_GENERATE_HTML_DOCTYPE
+		} else if (version != NULL) {
+                    xsltGetHTMLIDs(version, &doctypePublic,
+                                   &doctypeSystem);
+                    if (((doctypePublic != NULL) || (doctypeSystem != NULL)))
+                        res->intSubset =
+                            xmlCreateIntSubset(res, doctype,
+                                               doctypePublic,
+                                               doctypeSystem);
+#endif
+                }
+            }
+
+        }
+        if (ctxt->type == XSLT_OUTPUT_XML) {
+            XSLT_GET_IMPORT_PTR(doctypePublic, style, doctypePublic)
+            XSLT_GET_IMPORT_PTR(doctypeSystem, style, doctypeSystem)
+            if (((doctypePublic != NULL) || (doctypeSystem != NULL))) {
+	        xmlNodePtr last;
+		/* Need a small "hack" here to assure DTD comes before
+		   possible comment nodes */
+		node = res->children;
+		last = res->last;
+		res->children = NULL;
+		res->last = NULL;
+                res->intSubset = xmlCreateIntSubset(res, doctype,
+                                                    doctypePublic,
+                                                    doctypeSystem);
+		if (res->children != NULL) {
+		    res->children->next = node;
+		    node->prev = res->children;
+		    res->last = last;
+		} else {
+		    res->children = node;
+		    res->last = last;
+		}
+	    }
+        }
+    }
+    xmlXPathFreeNodeSet(ctxt->nodeList);
+    if (profile != NULL) {
+        xsltSaveProfiling(ctxt, profile);
+    }
+
+    /*
+     * Be pedantic.
+     */
+    if ((ctxt != NULL) && (ctxt->state == XSLT_STATE_ERROR)) {
+	xmlFreeDoc(res);
+	res = NULL;
+    }
+    if ((res != NULL) && (ctxt != NULL) && (output != NULL)) {
+	int ret;
+
+	ret = xsltCheckWrite(ctxt->sec, ctxt, (const xmlChar *) output);
+	if (ret == 0) {
+	    xsltTransformError(ctxt, NULL, NULL,
+		     "xsltApplyStylesheet: forbidden to save to %s\n",
+			       output);
+	} else if (ret < 0) {
+	    xsltTransformError(ctxt, NULL, NULL,
+		     "xsltApplyStylesheet: saving to %s may not be possible\n",
+			       output);
+	}
+    }
+
+    if ((ctxt != NULL) && (userCtxt == NULL))
+	xsltFreeTransformContext(ctxt);
+
+    return (res);
+
+error:
+    if (res != NULL)
+        xmlFreeDoc(res);
+    if ((ctxt != NULL) && (userCtxt == NULL))
+        xsltFreeTransformContext(ctxt);
+    return (NULL);
+}
+
+/**
+ * xsltApplyStylesheet:
+ * @style:  a parsed XSLT stylesheet
+ * @doc:  a parsed XML document
+ * @params:  a NULL terminated arry of parameters names/values tuples
+ *
+ * Apply the stylesheet to the document
+ * NOTE: This may lead to a non-wellformed output XML wise !
+ *
+ * Returns the result document or NULL in case of error
+ */
+xmlDocPtr
+xsltApplyStylesheet(xsltStylesheetPtr style, xmlDocPtr doc,
+                    const char **params)
+{
+    return (xsltApplyStylesheetInternal(style, doc, params, NULL, NULL, NULL));
+}
+
+/**
+ * xsltProfileStylesheet:
+ * @style:  a parsed XSLT stylesheet
+ * @doc:  a parsed XML document
+ * @params:  a NULL terminated arry of parameters names/values tuples
+ * @output:  a FILE * for the profiling output
+ *
+ * Apply the stylesheet to the document and dump the profiling to
+ * the given output.
+ *
+ * Returns the result document or NULL in case of error
+ */
+xmlDocPtr
+xsltProfileStylesheet(xsltStylesheetPtr style, xmlDocPtr doc,
+                      const char **params, FILE * output)
+{
+    xmlDocPtr res;
+
+    res = xsltApplyStylesheetInternal(style, doc, params, NULL, output, NULL);
+    return (res);
+}
+
+/**
+ * xsltApplyStylesheetUser:
+ * @style:  a parsed XSLT stylesheet
+ * @doc:  a parsed XML document
+ * @params:  a NULL terminated array of parameters names/values tuples
+ * @output:  the targetted output
+ * @profile:  profile FILE * output or NULL
+ * @userCtxt:  user provided transform context
+ *
+ * Apply the stylesheet to the document and allow the user to provide
+ * its own transformation context.
+ *
+ * Returns the result document or NULL in case of error
+ */
+xmlDocPtr
+xsltApplyStylesheetUser(xsltStylesheetPtr style, xmlDocPtr doc,
+                            const char **params, const char *output,
+                            FILE * profile, xsltTransformContextPtr userCtxt)
+{
+    xmlDocPtr res;
+
+    res = xsltApplyStylesheetInternal(style, doc, params, output,
+	                              profile, userCtxt);
+    return (res);
+}
+
+/**
+ * xsltRunStylesheetUser:
+ * @style:  a parsed XSLT stylesheet
+ * @doc:  a parsed XML document
+ * @params:  a NULL terminated array of parameters names/values tuples
+ * @output:  the URL/filename ot the generated resource if available
+ * @SAX:  a SAX handler for progressive callback output (not implemented yet)
+ * @IObuf:  an output buffer for progressive output (not implemented yet)
+ * @profile:  profile FILE * output or NULL
+ * @userCtxt:  user provided transform context
+ *
+ * Apply the stylesheet to the document and generate the output according
+ * to @output @SAX and @IObuf. It's an error to specify both @SAX and @IObuf.
+ *
+ * NOTE: This may lead to a non-wellformed output XML wise !
+ * NOTE: This may also result in multiple files being generated
+ * NOTE: using IObuf, the result encoding used will be the one used for
+ *       creating the output buffer, use the following macro to read it
+ *       from the stylesheet
+ *       XSLT_GET_IMPORT_PTR(encoding, style, encoding)
+ * NOTE: using SAX, any encoding specified in the stylesheet will be lost
+ *       since the interface uses only UTF8
+ *
+ * Returns the number of by written to the main resource or -1 in case of
+ *         error.
+ */
+int
+xsltRunStylesheetUser(xsltStylesheetPtr style, xmlDocPtr doc,
+                  const char **params, const char *output,
+                  xmlSAXHandlerPtr SAX, xmlOutputBufferPtr IObuf,
+		  FILE * profile, xsltTransformContextPtr userCtxt)
+{
+    xmlDocPtr tmp;
+    int ret;
+
+    if ((output == NULL) && (SAX == NULL) && (IObuf == NULL))
+        return (-1);
+    if ((SAX != NULL) && (IObuf != NULL))
+        return (-1);
+
+    /* unsupported yet */
+    if (SAX != NULL) {
+        XSLT_TODO   /* xsltRunStylesheet xmlSAXHandlerPtr SAX */
+	return (-1);
+    }
+
+    tmp = xsltApplyStylesheetInternal(style, doc, params, output, profile,
+	                              userCtxt);
+    if (tmp == NULL) {
+	xsltTransformError(NULL, NULL, (xmlNodePtr) doc,
+                         "xsltRunStylesheet : run failed\n");
+        return (-1);
+    }
+    if (IObuf != NULL) {
+        /* TODO: incomplete, IObuf output not progressive */
+        ret = xsltSaveResultTo(IObuf, tmp, style);
+    } else {
+        ret = xsltSaveResultToFilename(output, tmp, style, 0);
+    }
+    xmlFreeDoc(tmp);
+    return (ret);
+}
+
+/**
+ * xsltRunStylesheet:
+ * @style:  a parsed XSLT stylesheet
+ * @doc:  a parsed XML document
+ * @params:  a NULL terminated array of parameters names/values tuples
+ * @output:  the URL/filename ot the generated resource if available
+ * @SAX:  a SAX handler for progressive callback output (not implemented yet)
+ * @IObuf:  an output buffer for progressive output (not implemented yet)
+ *
+ * Apply the stylesheet to the document and generate the output according
+ * to @output @SAX and @IObuf. It's an error to specify both @SAX and @IObuf.
+ *
+ * NOTE: This may lead to a non-wellformed output XML wise !
+ * NOTE: This may also result in multiple files being generated
+ * NOTE: using IObuf, the result encoding used will be the one used for
+ *       creating the output buffer, use the following macro to read it
+ *       from the stylesheet
+ *       XSLT_GET_IMPORT_PTR(encoding, style, encoding)
+ * NOTE: using SAX, any encoding specified in the stylesheet will be lost
+ *       since the interface uses only UTF8
+ *
+ * Returns the number of bytes written to the main resource or -1 in case of
+ *         error.
+ */
+int
+xsltRunStylesheet(xsltStylesheetPtr style, xmlDocPtr doc,
+                  const char **params, const char *output,
+                  xmlSAXHandlerPtr SAX, xmlOutputBufferPtr IObuf)
+{
+    return(xsltRunStylesheetUser(style, doc, params, output, SAX, IObuf,
+		                 NULL, NULL));
+}
+
+/**
+ * xsltRegisterAllElement:
+ * @ctxt:  the XPath context
+ *
+ * Registers all default XSLT elements in this context
+ */
+void
+xsltRegisterAllElement(xsltTransformContextPtr ctxt)
+{
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "apply-templates",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltApplyTemplates);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "apply-imports",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltApplyImports);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "call-template",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltCallTemplate);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "element",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltElement);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "attribute",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltAttribute);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "text",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltText);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "processing-instruction",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltProcessingInstruction);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "comment",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltComment);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "copy",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltCopy);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "value-of",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltValueOf);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "number",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltNumber);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "for-each",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltForEach);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "if",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltIf);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "choose",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltChoose);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "sort",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltSort);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "copy-of",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltCopyOf);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "message",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltMessage);
+
+    /*
+     * Those don't have callable entry points but are registered anyway
+     */
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "variable",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltDebug);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "param",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltDebug);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "with-param",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltDebug);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "decimal-format",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltDebug);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "when",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltDebug);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "otherwise",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltDebug);
+    xsltRegisterExtElement(ctxt, (const xmlChar *) "fallback",
+                           XSLT_NAMESPACE,
+			   (xsltTransformFunction) xsltDebug);
+
+}

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/transform.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/transform.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/transform.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,193 @@
+/*
+ * Summary: the XSLT engine transformation part.
+ * Description: This module implements the bulk of the actual
+ *              transformation processing. Most of the xsl: element
+ *              constructs are implemented in this module.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_TRANSFORM_H__
+#define __XML_XSLT_TRANSFORM_H__
+
+#include <libxml/parser.h>
+#include <libxml/xmlIO.h>
+#include "xsltexports.h"
+#include <libxslt/xsltInternals.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * XInclude default processing.
+ */
+XSLTPUBFUN void XSLTCALL		
+		xsltSetXIncludeDefault	(int xinclude);
+XSLTPUBFUN int XSLTCALL		
+		xsltGetXIncludeDefault	(void);
+
+/**
+ * Export context to users.
+ */
+XSLTPUBFUN xsltTransformContextPtr XSLTCALL 
+		xsltNewTransformContext	(xsltStylesheetPtr style,
+					 xmlDocPtr doc);
+
+XSLTPUBFUN void XSLTCALL			
+		xsltFreeTransformContext(xsltTransformContextPtr ctxt);
+
+XSLTPUBFUN xmlDocPtr XSLTCALL		
+		xsltApplyStylesheetUser	(xsltStylesheetPtr style,
+					 xmlDocPtr doc,
+					 const char **params,
+					 const char *output,
+					 FILE * profile,
+					 xsltTransformContextPtr userCtxt);
+/**
+ * Private Interfaces.
+ */
+XSLTPUBFUN void XSLTCALL		
+		xsltApplyStripSpaces	(xsltTransformContextPtr ctxt,
+					 xmlNodePtr node);
+XSLTPUBFUN xmlDocPtr XSLTCALL	
+		xsltApplyStylesheet	(xsltStylesheetPtr style,
+					 xmlDocPtr doc,
+					 const char **params);
+XSLTPUBFUN xmlDocPtr XSLTCALL	
+		xsltProfileStylesheet	(xsltStylesheetPtr style,
+					 xmlDocPtr doc,
+					 const char **params,
+					 FILE * output);
+XSLTPUBFUN int XSLTCALL		
+		xsltRunStylesheet	(xsltStylesheetPtr style,
+					 xmlDocPtr doc,
+					 const char **params,
+					 const char *output,
+					 xmlSAXHandlerPtr SAX,
+					 xmlOutputBufferPtr IObuf);
+XSLTPUBFUN int XSLTCALL		
+		xsltRunStylesheetUser	(xsltStylesheetPtr style,
+					 xmlDocPtr doc,
+					 const char **params,
+					 const char *output,
+					 xmlSAXHandlerPtr SAX,
+					 xmlOutputBufferPtr IObuf,
+					 FILE * profile,
+					 xsltTransformContextPtr userCtxt);
+XSLTPUBFUN void XSLTCALL		
+		xsltApplyOneTemplate	(xsltTransformContextPtr ctxt,
+					 xmlNodePtr node,
+					 xmlNodePtr list,
+					 xsltTemplatePtr templ,
+					 xsltStackElemPtr params);
+XSLTPUBFUN void XSLTCALL 		
+		xsltDocumentElem	(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltSort		(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltCopy		(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltText		(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltElement		(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltComment		(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltAttribute		(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltProcessingInstruction(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltCopyOf		(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltValueOf		(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltNumber		(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltApplyImports	(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltCallTemplate	(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltApplyTemplates	(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltChoose		(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltIf			(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL 		
+		xsltForEach		(xsltTransformContextPtr ctxt,
+	                                 xmlNodePtr node,
+					 xmlNodePtr inst,
+					 xsltStylePreCompPtr comp);
+XSLTPUBFUN void XSLTCALL		
+		xsltRegisterAllElement	(xsltTransformContextPtr ctxt);
+
+XSLTPUBFUN xmlNodePtr XSLTCALL	
+		xsltCopyTextString	(xsltTransformContextPtr ctxt,
+					 xmlNodePtr target,
+					 const xmlChar *string,
+					 int noescape);
+/*
+ * Hook for the debugger if activated.
+ */
+XSLTPUBFUN void XSLTCALL		
+		xslHandleDebugger	(xmlNodePtr cur,
+					 xmlNodePtr node,
+					 xsltTemplatePtr templ,
+					 xsltTransformContextPtr ctxt);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_TRANSFORM_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/trio.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/trio.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/trio.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,216 @@
+/*************************************************************************
+ *
+ * $Id: trio.h,v 1.2 2003/04/07 12:41:54 veillard Exp $
+ *
+ * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
+ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
+ *
+ *************************************************************************
+ *
+ * http://ctrio.sourceforge.net/
+ *
+ ************************************************************************/
+
+#ifndef TRIO_TRIO_H
+#define TRIO_TRIO_H
+
+#if !defined(WITHOUT_TRIO)
+
+/*
+ * Use autoconf defines if present. Packages using trio must define
+ * HAVE_CONFIG_H as a compiler option themselves.
+ */
+#if defined(HAVE_CONFIG_H)
+# include <config.h>
+#endif
+
+#include "triodef.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#if defined(TRIO_COMPILER_ANCIENT)
+# include <varargs.h>
+#else
+# include <stdarg.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Error codes.
+ *
+ * Remember to add a textual description to trio_strerror.
+ */
+enum {
+  TRIO_EOF      = 1,
+  TRIO_EINVAL   = 2,
+  TRIO_ETOOMANY = 3,
+  TRIO_EDBLREF  = 4,
+  TRIO_EGAP     = 5,
+  TRIO_ENOMEM   = 6,
+  TRIO_ERANGE   = 7,
+  TRIO_ERRNO    = 8,
+  TRIO_ECUSTOM  = 9
+};
+
+/* Error macros */
+#define TRIO_ERROR_CODE(x) ((-(x)) & 0x00FF)
+#define TRIO_ERROR_POSITION(x) ((-(x)) >> 8)
+#define TRIO_ERROR_NAME(x) trio_strerror(x)
+
+typedef int (*trio_outstream_t) TRIO_PROTO((trio_pointer_t, int));
+typedef int (*trio_instream_t) TRIO_PROTO((trio_pointer_t));
+
+TRIO_CONST char *trio_strerror TRIO_PROTO((int));
+
+/*************************************************************************
+ * Print Functions
+ */
+
+int trio_printf TRIO_PROTO((TRIO_CONST char *format, ...));
+int trio_vprintf TRIO_PROTO((TRIO_CONST char *format, va_list args));
+int trio_printfv TRIO_PROTO((TRIO_CONST char *format, void **args));
+
+int trio_fprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...));
+int trio_vfprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args));
+int trio_fprintfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args));
+
+int trio_dprintf TRIO_PROTO((int fd, TRIO_CONST char *format, ...));
+int trio_vdprintf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args));
+int trio_dprintfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args));
+
+int trio_cprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
+			     TRIO_CONST char *format, ...));
+int trio_vcprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
+			      TRIO_CONST char *format, va_list args));
+int trio_cprintfv TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
+			      TRIO_CONST char *format, void **args));
+
+int trio_sprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, ...));
+int trio_vsprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, va_list args));
+int trio_sprintfv TRIO_PROTO((char *buffer, TRIO_CONST char *format, void **args));
+
+int trio_snprintf TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...));
+int trio_vsnprintf TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
+		   va_list args));
+int trio_snprintfv TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
+		   void **args));
+
+int trio_snprintfcat TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...));
+int trio_vsnprintfcat TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
+                      va_list args));
+
+char *trio_aprintf TRIO_PROTO((TRIO_CONST char *format, ...));
+char *trio_vaprintf TRIO_PROTO((TRIO_CONST char *format, va_list args));
+
+int trio_asprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, ...));
+int trio_vasprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, va_list args));
+
+/*************************************************************************
+ * Scan Functions
+ */
+int trio_scanf TRIO_PROTO((TRIO_CONST char *format, ...));
+int trio_vscanf TRIO_PROTO((TRIO_CONST char *format, va_list args));
+int trio_scanfv TRIO_PROTO((TRIO_CONST char *format, void **args));
+
+int trio_fscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...));
+int trio_vfscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args));
+int trio_fscanfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args));
+
+int trio_dscanf TRIO_PROTO((int fd, TRIO_CONST char *format, ...));
+int trio_vdscanf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args));
+int trio_dscanfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args));
+
+int trio_cscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
+			    TRIO_CONST char *format, ...));
+int trio_vcscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
+			     TRIO_CONST char *format, va_list args));
+int trio_cscanfv TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
+			     TRIO_CONST char *format, void **args));
+
+int trio_sscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, ...));
+int trio_vsscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, va_list args));
+int trio_sscanfv TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, void **args));
+
+/*************************************************************************
+ * Locale Functions
+ */
+void trio_locale_set_decimal_point TRIO_PROTO((char *decimalPoint));
+void trio_locale_set_thousand_separator TRIO_PROTO((char *thousandSeparator));
+void trio_locale_set_grouping TRIO_PROTO((char *grouping));
+
+/*************************************************************************
+ * Renaming
+ */
+#ifdef TRIO_REPLACE_STDIO
+/* Replace the <stdio.h> functions */
+#ifndef HAVE_PRINTF
+# define printf trio_printf
+#endif
+#ifndef HAVE_VPRINTF
+# define vprintf trio_vprintf
+#endif
+#ifndef HAVE_FPRINTF
+# define fprintf trio_fprintf
+#endif
+#ifndef HAVE_VFPRINTF
+# define vfprintf trio_vfprintf
+#endif
+#ifndef HAVE_SPRINTF
+# define sprintf trio_sprintf
+#endif
+#ifndef HAVE_VSPRINTF
+# define vsprintf trio_vsprintf
+#endif
+#ifndef HAVE_SNPRINTF
+# define snprintf trio_snprintf
+#endif
+#ifndef HAVE_VSNPRINTF
+# define vsnprintf trio_vsnprintf
+#endif
+#ifndef HAVE_SCANF
+# define scanf trio_scanf
+#endif
+#ifndef HAVE_VSCANF
+# define vscanf trio_vscanf
+#endif
+#ifndef HAVE_FSCANF
+# define fscanf trio_fscanf
+#endif
+#ifndef HAVE_VFSCANF
+# define vfscanf trio_vfscanf
+#endif
+#ifndef HAVE_SSCANF
+# define sscanf trio_sscanf
+#endif
+#ifndef HAVE_VSSCANF
+# define vsscanf trio_vsscanf
+#endif
+/* These aren't stdio functions, but we make them look similar */
+#define dprintf trio_dprintf
+#define vdprintf trio_vdprintf
+#define aprintf trio_aprintf
+#define vaprintf trio_vaprintf
+#define asprintf trio_asprintf
+#define vasprintf trio_vasprintf
+#define dscanf trio_dscanf
+#define vdscanf trio_vdscanf
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* WITHOUT_TRIO */
+
+#endif /* TRIO_TRIO_H */

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/triodef.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/triodef.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/triodef.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,220 @@
+/*************************************************************************
+ *
+ * $Id: triodef.h,v 1.3 2003/04/26 12:06:35 veillard Exp $
+ *
+ * Copyright (C) 2001 Bjorn Reese <breese at users.sourceforge.net>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
+ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
+ *
+ ************************************************************************/
+
+#ifndef TRIO_TRIODEF_H
+#define TRIO_TRIODEF_H
+
+/*************************************************************************
+ * Platform and compiler support detection
+ */
+#if defined(__GNUC__)
+# define TRIO_COMPILER_GCC
+#elif defined(__SUNPRO_C)
+# define TRIO_COMPILER_SUNPRO
+#elif defined(__SUNPRO_CC)
+# define TRIO_COMPILER_SUNPRO
+# define __SUNPRO_C __SUNPRO_CC
+#elif defined(__xlC__) || defined(__IBMC__) || defined(__IBMCPP__)
+# define TRIO_COMPILER_XLC
+#elif defined(_AIX) && !defined(__GNUC__)
+# define TRIO_COMPILER_XLC /* Workaround for old xlc */
+#elif defined(__DECC) || defined(__DECCXX)
+# define TRIO_COMPILER_DECC
+#elif defined(__osf__) && defined(__LANGUAGE_C__)
+# define TRIO_COMPILER_DECC /* Workaround for old DEC C compilers */
+#elif defined(_MSC_VER)
+# define TRIO_COMPILER_MSVC
+#elif defined(__BORLANDC__)
+# define TRIO_COMPILER_BCB
+#endif
+
+#if defined(VMS) || defined(__VMS)
+/*
+ * VMS is placed first to avoid identifying the platform as Unix
+ * based on the DECC compiler later on.
+ */
+# define TRIO_PLATFORM_VMS
+#elif defined(unix) || defined(__unix) || defined(__unix__)
+# define TRIO_PLATFORM_UNIX
+#elif defined(TRIO_COMPILER_XLC) || defined(_AIX)
+# define TRIO_PLATFORM_UNIX
+#elif defined(TRIO_COMPILER_DECC) || defined(__osf___)
+# define TRIO_PLATFORM_UNIX
+#elif defined(__NetBSD__)
+# define TRIO_PLATFORM_UNIX
+#elif defined(__QNX__)
+# define TRIO_PLATFORM_UNIX
+# define TRIO_PLATFORM_QNX
+#elif defined(__CYGWIN__)
+# define TRIO_PLATFORM_UNIX
+#elif defined(AMIGA) && defined(TRIO_COMPILER_GCC)
+# define TRIO_PLATFORM_UNIX
+#elif defined(TRIO_COMPILER_MSVC) || defined(WIN32) || defined(_WIN32)
+# define TRIO_PLATFORM_WIN32
+#elif defined(mpeix) || defined(__mpexl)
+# define TRIO_PLATFORM_MPEIX
+#endif
+
+#if defined(_AIX)
+# define TRIO_PLATFORM_AIX
+#elif defined(__hpux)
+# define TRIO_PLATFORM_HPUX
+#elif defined(sun) || defined(__sun__)
+# if defined(__SVR4) || defined(__svr4__)
+#  define TRIO_PLATFORM_SOLARIS
+# else
+#  define TRIO_PLATFORM_SUNOS
+# endif
+#endif
+
+#if defined(__STDC__) || defined(TRIO_COMPILER_MSVC) || defined(TRIO_COMPILER_BCB)
+# define TRIO_COMPILER_SUPPORTS_C89
+# if defined(__STDC_VERSION__)
+#  define TRIO_COMPILER_SUPPORTS_C90
+#  if (__STDC_VERSION__ >= 199409L)
+#   define TRIO_COMPILER_SUPPORTS_C94
+#  endif
+#  if (__STDC_VERSION__ >= 199901L)
+#   define TRIO_COMPILER_SUPPORTS_C99
+#  endif
+# elif defined(TRIO_COMPILER_SUNPRO)
+#  if (__SUNPRO_C >= 0x420)
+#   define TRIO_COMPILER_SUPPORTS_C94
+#  endif
+# endif
+#endif
+
+#if defined(_XOPEN_SOURCE)
+# if defined(_XOPEN_SOURCE_EXTENDED)
+#  define TRIO_COMPILER_SUPPORTS_UNIX95
+# endif
+# if (_XOPEN_VERSION >= 500)
+#  define TRIO_COMPILER_SUPPORTS_UNIX98
+# endif
+# if (_XOPEN_VERSION >= 600)
+#  define TRIO_COMPILER_SUPPORTS_UNIX01
+# endif
+#endif
+
+/*************************************************************************
+ * Generic defines
+ */
+
+#if !defined(TRIO_PUBLIC)
+# define TRIO_PUBLIC
+#endif
+#if !defined(TRIO_PRIVATE)
+# define TRIO_PRIVATE static
+#endif
+
+#if !(defined(TRIO_COMPILER_SUPPORTS_C89) || defined(__cplusplus))
+# define TRIO_COMPILER_ANCIENT
+#endif
+
+#if defined(TRIO_COMPILER_ANCIENT)
+# define TRIO_CONST
+# define TRIO_VOLATILE
+# define TRIO_SIGNED
+typedef double trio_long_double_t;
+typedef char * trio_pointer_t;
+# define TRIO_SUFFIX_LONG(x) x
+# define TRIO_PROTO(x) ()
+# define TRIO_NOARGS
+# define TRIO_ARGS1(list,a1) list a1;
+# define TRIO_ARGS2(list,a1,a2) list a1; a2;
+# define TRIO_ARGS3(list,a1,a2,a3) list a1; a2; a3;
+# define TRIO_ARGS4(list,a1,a2,a3,a4) list a1; a2; a3; a4;
+# define TRIO_ARGS5(list,a1,a2,a3,a4,a5) list a1; a2; a3; a4; a5;
+# define TRIO_ARGS6(list,a1,a2,a3,a4,a5,a6) list a1; a2; a3; a4; a5; a6;
+# define TRIO_VARGS2(list,a1,a2) list a1; a2
+# define TRIO_VARGS3(list,a1,a2,a3) list a1; a2; a3
+# define TRIO_VARGS4(list,a1,a2,a3,a4) list a1; a2; a3; a4
+# define TRIO_VARGS5(list,a1,a2,a3,a4,a5) list a1; a2; a3; a4; a5
+# define TRIO_VA_DECL va_dcl
+# define TRIO_VA_START(x,y) va_start(x)
+# define TRIO_VA_END(x) va_end(x)
+#else /* ANSI C */
+# define TRIO_CONST const
+# define TRIO_VOLATILE volatile
+# define TRIO_SIGNED signed
+typedef long double trio_long_double_t;
+typedef void * trio_pointer_t;
+# define TRIO_SUFFIX_LONG(x) x ## L
+# define TRIO_PROTO(x) x
+# define TRIO_NOARGS void
+# define TRIO_ARGS1(list,a1) (a1)
+# define TRIO_ARGS2(list,a1,a2) (a1,a2)
+# define TRIO_ARGS3(list,a1,a2,a3) (a1,a2,a3)
+# define TRIO_ARGS4(list,a1,a2,a3,a4) (a1,a2,a3,a4)
+# define TRIO_ARGS5(list,a1,a2,a3,a4,a5) (a1,a2,a3,a4,a5)
+# define TRIO_ARGS6(list,a1,a2,a3,a4,a5,a6) (a1,a2,a3,a4,a5,a6)
+# define TRIO_VARGS2 TRIO_ARGS2
+# define TRIO_VARGS3 TRIO_ARGS3
+# define TRIO_VARGS4 TRIO_ARGS4
+# define TRIO_VARGS5 TRIO_ARGS5
+# define TRIO_VA_DECL ...
+# define TRIO_VA_START(x,y) va_start(x,y)
+# define TRIO_VA_END(x) va_end(x)
+#endif
+
+#if defined(TRIO_COMPILER_SUPPORTS_C99) || defined(__cplusplus)
+# define TRIO_INLINE inline
+#elif defined(TRIO_COMPILER_GCC)
+# define TRIO_INLINE __inline__
+#elif defined(TRIO_COMPILER_MSVC)
+# define TRIO_INLINE _inline
+#elif defined(TRIO_COMPILER_BCB)
+# define TRIO_INLINE __inline
+#else
+# define TRIO_INLINE
+#endif
+
+/*************************************************************************
+ * Workarounds
+ */
+
+#if defined(TRIO_PLATFORM_VMS)
+/*
+ * Computations done with constants at compile time can trigger these
+ * even when compiling with IEEE enabled.
+ */
+# pragma message disable (UNDERFLOW, FLOATOVERFL)
+
+# if (__CRTL_VER < 80000000)
+/*
+ * Although the compiler supports C99 language constructs, the C
+ * run-time library does not contain all C99 functions.
+ *
+ * This was the case for 70300022. Update the 80000000 value when
+ * it has been accurately determined what version of the library
+ * supports C99.
+ */
+#  if defined(TRIO_COMPILER_SUPPORTS_C99)
+#   undef TRIO_COMPILER_SUPPORTS_C99
+#  endif
+# endif
+#endif
+
+/*
+ * Not all preprocessors supports the LL token.
+ */
+#if defined(TRIO_COMPILER_BCB)
+#else
+# define TRIO_COMPILER_SUPPORTS_LL
+#endif
+
+#endif /* TRIO_TRIODEF_H */

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/variables.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/variables.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/variables.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1696 @@
+/*
+ * variables.c: Implementation of the variable storage and lookup
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/valid.h>
+#include <libxml/hash.h>
+#include <libxml/xmlerror.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/parserInternals.h>
+#include <libxml/dict.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "xsltutils.h"
+#include "variables.h"
+#include "transform.h"
+#include "imports.h"
+#include "preproc.h"
+#include "keys.h"
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_VARIABLE
+#endif
+
+/************************************************************************
+ *									*
+ *			Result Value Tree interfaces			*
+ *									*
+ ************************************************************************/
+/**
+ * xsltCreateRVT:
+ * @ctxt:  an XSLT transformation context
+ *
+ * Create a result value tree
+ *
+ * Returns the result value tree or NULL in case of error
+ */
+xmlDocPtr
+xsltCreateRVT(xsltTransformContextPtr ctxt)
+{
+    xmlDocPtr container;
+
+    if (ctxt == NULL) return(NULL);
+
+    container = xmlNewDoc(NULL);
+    if (container == NULL)
+	return(NULL);
+    container->dict = ctxt->dict;
+    xmlDictReference(container->dict);
+#ifdef WITH_XSLT_DEBUG
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "reusing transformation dict for RVT\n");
+#endif
+
+    container->name = (char *) xmlStrdup(BAD_CAST " fake node libxslt");
+    container->doc = container;
+    container->parent = NULL;
+    return(container);
+}
+
+/**
+ * xsltRegisterTmpRVT:
+ * @ctxt:  an XSLT transformation context
+ * @RVT:  a result value tree
+ *
+ * Register the result value tree for destruction at the end of the context
+ *
+ * Returns 0 in case of success and -1 in case of error.
+ */
+int
+xsltRegisterTmpRVT(xsltTransformContextPtr ctxt, xmlDocPtr RVT)
+{
+    if ((ctxt == NULL) || (RVT == NULL)) return(-1);
+
+    RVT->next = (xmlNodePtr) ctxt->tmpRVT;
+    if (ctxt->tmpRVT != NULL)
+	ctxt->tmpRVT->prev = (xmlNodePtr) RVT;
+    ctxt->tmpRVT = RVT;
+    return(0);
+}
+
+/**
+ * xsltRegisterPersistRVT:
+ * @ctxt:  an XSLT transformation context
+ * @RVT:  a result value tree
+ *
+ * Register the result value tree for destruction at the end of the processing
+ *
+ * Returns 0 in case of success and -1 in case of error.
+ */
+int
+xsltRegisterPersistRVT(xsltTransformContextPtr ctxt, xmlDocPtr RVT)
+{
+    if ((ctxt == NULL) || (RVT == NULL)) return(-1);
+
+    RVT->next = (xmlNodePtr) ctxt->persistRVT;
+    if (ctxt->persistRVT != NULL)
+	ctxt->persistRVT->prev = (xmlNodePtr) RVT;
+    ctxt->persistRVT = RVT;
+    return(0);
+}
+
+/**
+ * xsltFreeRVTs:
+ * @ctxt:  an XSLT transformation context
+ *
+ * Free all the registered result value tree of the transformation
+ */
+void
+xsltFreeRVTs(xsltTransformContextPtr ctxt)
+{
+    xmlDocPtr cur, next;
+
+    if (ctxt == NULL) return;
+
+    cur = ctxt->tmpRVT;
+    while (cur != NULL) {
+        next = (xmlDocPtr) cur->next;
+	if (cur->_private != NULL) {
+	    xsltFreeDocumentKeys(cur->_private);
+	    xmlFree(cur->_private);
+	}
+	xmlFreeDoc(cur);
+	cur = next;
+    }
+    cur = ctxt->persistRVT;
+    while (cur != NULL) {
+        next = (xmlDocPtr) cur->next;
+	if (cur->_private != NULL) {
+	    xsltFreeDocumentKeys(cur->_private);
+	    xmlFree(cur->_private);
+	}
+	xmlFreeDoc(cur);
+	cur = next;
+    }
+}
+
+/************************************************************************
+ *									*
+ *			Module interfaces				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltNewStackElem:
+ *
+ * Create a new XSLT ParserContext
+ *
+ * Returns the newly allocated xsltParserStackElem or NULL in case of error
+ */
+static xsltStackElemPtr
+xsltNewStackElem(void) {
+    xsltStackElemPtr cur;
+
+    cur = (xsltStackElemPtr) xmlMalloc(sizeof(xsltStackElem));
+    if (cur == NULL) {
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltNewStackElem : malloc failed\n");
+	return(NULL);
+    }
+    cur->computed = 0;
+    cur->name = NULL;
+    cur->nameURI = NULL;
+    cur->select = NULL;
+    cur->tree = NULL;
+    cur->value = NULL;
+    cur->comp = NULL;
+    return(cur);
+}
+
+/**
+ * xsltCopyStackElem:
+ * @elem:  an XSLT stack element
+ *
+ * Makes a copy of the stack element
+ *
+ * Returns the copy of NULL
+ */
+static xsltStackElemPtr
+xsltCopyStackElem(xsltStackElemPtr elem) {
+    xsltStackElemPtr cur;
+
+    cur = (xsltStackElemPtr) xmlMalloc(sizeof(xsltStackElem));
+    if (cur == NULL) {
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltCopyStackElem : malloc failed\n");
+	return(NULL);
+    }
+    cur->name = elem->name;
+    cur->nameURI = elem->nameURI;
+    cur->select = elem->select;
+    cur->tree = elem->tree;
+    cur->comp = elem->comp;
+    cur->computed = 0;
+    cur->value = NULL;
+    return(cur);
+}
+
+/**
+ * xsltFreeStackElem:
+ * @elem:  an XSLT stack element
+ *
+ * Free up the memory allocated by @elem
+ */
+static void
+xsltFreeStackElem(xsltStackElemPtr elem) {
+    if (elem == NULL)
+	return;
+    if (elem->value != NULL)
+	xmlXPathFreeObject(elem->value);
+
+    xmlFree(elem);
+}
+
+/**
+ * xsltFreeStackElemList:
+ * @elem:  an XSLT stack element
+ *
+ * Free up the memory allocated by @elem
+ */
+void
+xsltFreeStackElemList(xsltStackElemPtr elem) {
+    xsltStackElemPtr next;
+
+    while(elem != NULL) {
+	next = elem->next;
+	xsltFreeStackElem(elem);
+	elem = next;
+    }
+}
+
+/**
+ * xsltStackLookup:
+ * @ctxt:  an XSLT transformation context
+ * @name:  the local part of the name
+ * @nameURI:  the URI part of the name
+ *
+ * Locate an element in the stack based on its name.
+ */
+static int stack_addr = 0;
+static int stack_cmp = 0;
+static xsltStackElemPtr
+xsltStackLookup(xsltTransformContextPtr ctxt, const xmlChar *name,
+	        const xmlChar *nameURI) {
+    int i;
+    xsltStackElemPtr cur;
+
+    if ((ctxt == NULL) || (name == NULL) || (ctxt->varsNr == 0))
+	return(NULL);
+
+    /*
+     * Do the lookup from the top of the stack, but
+     * don't use params being computed in a call-param
+     * First lookup expects the variable name and URI to
+     * come from the disctionnary and hence get equality
+     */
+    for (i = ctxt->varsNr; i > ctxt->varsBase; i--) {
+	cur = ctxt->varsTab[i-1];
+	while (cur != NULL) {
+	    if (cur->name == name) {
+		if (nameURI == NULL) {
+		    if (cur->nameURI == NULL) {
+		        stack_addr++;
+			return(cur);
+		    }
+		} else {
+		    if ((cur->nameURI != NULL) &&
+			(cur->nameURI == nameURI)) {
+		        stack_addr++;
+			return(cur);
+		    }
+		}
+
+	    }
+	    cur = cur->next;
+	}
+    }
+
+    /*
+     * Redo the lookup with interned string compares
+     * to avoid string compares.
+     */
+    name = xmlDictLookup(ctxt->dict, name, -1);
+    if (nameURI != NULL)
+        nameURI = xmlDictLookup(ctxt->dict, nameURI, -1);
+    else
+        nameURI = NULL;
+    for (i = ctxt->varsNr; i > ctxt->varsBase; i--) {
+	cur = ctxt->varsTab[i-1];
+	while (cur != NULL) {
+	    if (cur->name == name) {
+		if (nameURI == NULL) {
+		    if (cur->nameURI == NULL) {
+		        stack_cmp++;
+			return(cur);
+		    }
+		} else {
+		    if ((cur->nameURI != NULL) &&
+			(cur->nameURI == nameURI)) {
+		        stack_cmp++;
+			return(cur);
+		    }
+		}
+
+	    }
+	    cur = cur->next;
+	}
+    }
+
+    return(NULL);
+}
+
+/**
+ * xsltCheckStackElem:
+ * @ctxt:  xn XSLT transformation context
+ * @name:  the variable name
+ * @nameURI:  the variable namespace URI
+ *
+ * check wether the variable or param is already defined
+ *
+ * Returns 1 if variable is present, 2 if param is present, 3 if this
+ *         is an inherited param, 0 if not found, -1 in case of failure.
+ */
+static int
+xsltCheckStackElem(xsltTransformContextPtr ctxt, const xmlChar *name,
+	           const xmlChar *nameURI) {
+    xsltStackElemPtr cur;
+
+    if ((ctxt == NULL) || (name == NULL))
+	return(-1);
+
+    cur = xsltStackLookup(ctxt, name, nameURI);
+    if (cur == NULL)
+        return(0);
+    if (cur->comp != NULL) {
+        if (cur->comp->type == XSLT_FUNC_WITHPARAM)
+	    return(3);
+	else if (cur->comp->type == XSLT_FUNC_PARAM)
+	    return(2);
+    }
+    
+    return(1);
+}
+
+/**
+ * xsltAddStackElem:
+ * @ctxt:  xn XSLT transformation context
+ * @elem:  a stack element
+ *
+ * add a new element at this level of the stack.
+ *
+ * Returns 0 in case of success, -1 in case of failure.
+ */
+static int
+xsltAddStackElem(xsltTransformContextPtr ctxt, xsltStackElemPtr elem) {
+    if ((ctxt == NULL) || (elem == NULL))
+	return(-1);
+
+    elem->next = ctxt->varsTab[ctxt->varsNr - 1];
+    ctxt->varsTab[ctxt->varsNr - 1] = elem;
+    ctxt->vars = elem;
+    return(0);
+}
+
+/**
+ * xsltAddStackElemList:
+ * @ctxt:  xn XSLT transformation context
+ * @elems:  a stack element list
+ *
+ * add the new element list at this level of the stack.
+ *
+ * Returns 0 in case of success, -1 in case of failure.
+ */
+int
+xsltAddStackElemList(xsltTransformContextPtr ctxt, xsltStackElemPtr elems) {
+    xsltStackElemPtr cur;
+
+    if ((ctxt == NULL) || (elems == NULL))
+	return(-1);
+
+    /* TODO: check doublons */
+    if (ctxt->varsTab[ctxt->varsNr - 1] != NULL) {
+	cur = ctxt->varsTab[ctxt->varsNr - 1];
+	while (cur->next != NULL)
+	    cur = cur->next;
+	cur->next = elems;
+    } else {
+	elems->next = ctxt->varsTab[ctxt->varsNr - 1];
+	ctxt->varsTab[ctxt->varsNr - 1] = elems;
+	ctxt->vars = elems;
+    }
+    return(0);
+}
+
+/************************************************************************
+ *									*
+ *			Module interfaces				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltEvalVariable:
+ * @ctxt:  the XSLT transformation context
+ * @elem:  the variable or parameter.
+ * @precomp: pointer to precompiled data
+ *
+ * Evaluate a variable value.
+ *
+ * Returns the XPath Object value or NULL in case of error
+ */
+static xmlXPathObjectPtr
+xsltEvalVariable(xsltTransformContextPtr ctxt, xsltStackElemPtr elem,
+	         xsltStylePreCompPtr castedComp)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleItemVariablePtr precomp =
+	(xsltStyleItemVariablePtr) castedComp;
+#else
+    xsltStylePreCompPtr precomp = castedComp;
+#endif   
+    xmlXPathObjectPtr result = NULL;
+    int oldProximityPosition, oldContextSize;
+    xmlNodePtr oldInst, oldNode;
+    xsltDocumentPtr oldDoc;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+
+    if ((ctxt == NULL) || (elem == NULL))
+	return(NULL);
+
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+	"Evaluating variable %s\n", elem->name));
+#endif
+    if (elem->select != NULL) {
+	xmlXPathCompExprPtr comp = NULL;
+
+	if ((precomp != NULL) && (precomp->comp != NULL)) {
+	    comp = precomp->comp;
+	} else {
+	    comp = xmlXPathCompile(elem->select);
+	}
+	if (comp == NULL)
+	    return(NULL);
+	oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
+	oldContextSize = ctxt->xpathCtxt->contextSize;
+	ctxt->xpathCtxt->node = (xmlNodePtr) ctxt->node;
+	oldDoc = ctxt->document;
+	oldNode = ctxt->node;
+	oldInst = ctxt->inst;
+	oldNsNr = ctxt->xpathCtxt->nsNr;
+	oldNamespaces = ctxt->xpathCtxt->namespaces;
+	if (precomp != NULL) {
+	    ctxt->inst = precomp->inst;
+#ifdef XSLT_REFACTORED
+	    if (precomp->inScopeNS != NULL) {
+		ctxt->xpathCtxt->namespaces = precomp->inScopeNS->list;
+		ctxt->xpathCtxt->nsNr = precomp->inScopeNS->number;
+	    } else {
+		ctxt->xpathCtxt->namespaces = NULL;
+		ctxt->xpathCtxt->nsNr = 0;
+	    }
+#else
+	    ctxt->xpathCtxt->namespaces = precomp->nsList;
+	    ctxt->xpathCtxt->nsNr = precomp->nsNr;
+#endif
+	} else {
+	    ctxt->inst = NULL;
+	    ctxt->xpathCtxt->namespaces = NULL;
+	    ctxt->xpathCtxt->nsNr = 0;
+	}
+	result = xmlXPathCompiledEval(comp, ctxt->xpathCtxt);
+	ctxt->xpathCtxt->contextSize = oldContextSize;
+	ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+	ctxt->xpathCtxt->nsNr = oldNsNr;
+	ctxt->xpathCtxt->namespaces = oldNamespaces;
+	ctxt->inst = oldInst;
+	ctxt->node = oldNode;
+	ctxt->document = oldDoc;
+	if ((precomp == NULL) || (precomp->comp == NULL))
+	    xmlXPathFreeCompExpr(comp);
+	if (result == NULL) {
+	    if (precomp == NULL)
+		xsltTransformError(ctxt, NULL, NULL,
+		    "Evaluating variable %s failed\n", elem->name);
+	    else
+		xsltTransformError(ctxt, NULL, precomp->inst,
+		    "Evaluating variable %s failed\n", elem->name);
+	    ctxt->state = XSLT_STATE_STOPPED;
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+#ifdef LIBXML_DEBUG_ENABLED
+	} else {
+	    if ((xsltGenericDebugContext == stdout) ||
+		(xsltGenericDebugContext == stderr))
+		xmlXPathDebugDumpObject((FILE *)xsltGenericDebugContext,
+					result, 0);
+#endif
+#endif
+	}
+    } else {
+	if (elem->tree == NULL) {
+	    result = xmlXPathNewCString("");
+	} else {
+	    /*
+	     * This is a result tree fragment.
+	     */
+	    xmlDocPtr container;
+	    xmlNodePtr oldInsert;
+	    xmlDocPtr  oldoutput;
+
+	    container = xsltCreateRVT(ctxt);
+	    if (container == NULL)
+		return(NULL);
+	    /*
+	     * Tag the subtree for removal once consumed
+	     */
+	    xsltRegisterTmpRVT(ctxt, container);
+	    oldoutput = ctxt->output;
+	    ctxt->output = container;
+	    oldInsert = ctxt->insert;
+	    ctxt->insert = (xmlNodePtr) container;
+	    xsltApplyOneTemplate(ctxt, ctxt->node, elem->tree, NULL, NULL);
+	    ctxt->insert = oldInsert;
+	    ctxt->output = oldoutput;
+
+	    result = xmlXPathNewValueTree((xmlNodePtr) container);
+	    if (result == NULL) {
+		result = xmlXPathNewCString("");
+	    } else {
+	        result->boolval = 0; /* Freeing is not handled there anymore */
+	    }
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+#ifdef LIBXML_DEBUG_ENABLED
+	    if ((xsltGenericDebugContext == stdout) ||
+		(xsltGenericDebugContext == stderr))
+		xmlXPathDebugDumpObject((FILE *)xsltGenericDebugContext,
+					result, 0);
+#endif
+#endif
+	}
+    }
+    return(result);
+}
+
+/**
+ * xsltEvalGlobalVariable:
+ * @elem:  the variable or parameter.
+ * @ctxt:  the XSLT transformation context
+ *
+ * Evaluate a global variable value.
+ *
+ * Returns the XPath Object value or NULL in case of error
+ */
+static xmlXPathObjectPtr
+xsltEvalGlobalVariable(xsltStackElemPtr elem, xsltTransformContextPtr ctxt)
+{
+    xmlXPathObjectPtr result = NULL;
+#ifdef XSLT_REFACTORED
+    xsltStyleBasicItemVariablePtr precomp;
+#else
+    xsltStylePreCompPtr precomp;
+#endif    
+    int oldProximityPosition, oldContextSize;
+    xmlDocPtr oldDoc;
+    xmlNodePtr oldInst;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+    const xmlChar *name;
+
+    if ((ctxt == NULL) || (elem == NULL))
+	return(NULL);
+    if (elem->computed)
+	return(elem->value);
+
+
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+	"Evaluating global variable %s\n", elem->name));
+#endif
+
+#ifdef WITH_DEBUGGER
+    if ((ctxt->debugStatus != XSLT_DEBUG_NONE) &&
+        elem->comp && elem->comp->inst)
+        xslHandleDebugger(elem->comp->inst, NULL, NULL, ctxt);
+#endif
+
+    name = elem->name;
+    elem->name = BAD_CAST "  being computed ... ";
+
+#ifdef XSLT_REFACTORED
+    precomp = (xsltStyleBasicItemVariablePtr) elem->comp;
+#else
+    precomp = elem->comp;
+#endif
+    if (elem->select != NULL) {
+	xmlXPathCompExprPtr comp = NULL;
+
+	if ((precomp != NULL) && (precomp->comp != NULL)) {
+	    comp = precomp->comp;
+	} else {
+	    comp = xmlXPathCompile(elem->select);
+	}
+	if (comp == NULL) {
+	    elem->name = name;
+	    return(NULL);
+	}
+	oldDoc = ctxt->xpathCtxt->doc;
+	oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
+	oldContextSize = ctxt->xpathCtxt->contextSize;
+	oldInst = ctxt->inst;
+	oldNsNr = ctxt->xpathCtxt->nsNr;
+	oldNamespaces = ctxt->xpathCtxt->namespaces;
+	
+	if (precomp != NULL) {
+	    ctxt->inst = precomp->inst;
+#ifdef XSLT_REFACTORED
+	    if (precomp->inScopeNS != NULL) {
+		ctxt->xpathCtxt->namespaces = precomp->inScopeNS->list;
+		ctxt->xpathCtxt->nsNr = precomp->inScopeNS->number;
+	    } else {
+		ctxt->xpathCtxt->namespaces = NULL;
+		ctxt->xpathCtxt->nsNr = 0;
+	    }
+#else
+	    ctxt->xpathCtxt->namespaces = precomp->nsList;
+	    ctxt->xpathCtxt->nsNr = precomp->nsNr;
+#endif
+	} else {
+	    ctxt->inst = NULL;
+	    ctxt->xpathCtxt->namespaces = NULL;
+	    ctxt->xpathCtxt->nsNr = 0;
+	}
+	ctxt->xpathCtxt->doc = ctxt->tmpDoc;
+	ctxt->xpathCtxt->node = (xmlNodePtr) ctxt->tmpDoc;
+	result = xmlXPathCompiledEval(comp, ctxt->xpathCtxt);
+
+	ctxt->xpathCtxt->doc = oldDoc;
+	ctxt->xpathCtxt->contextSize = oldContextSize;
+	ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+	ctxt->inst = oldInst;
+	ctxt->xpathCtxt->nsNr = oldNsNr;
+	ctxt->xpathCtxt->namespaces = oldNamespaces;
+	if ((precomp == NULL) || (precomp->comp == NULL))
+	    xmlXPathFreeCompExpr(comp);
+	if (result == NULL) {
+	    if (precomp == NULL)
+		xsltTransformError(ctxt, NULL, NULL,
+		    "Evaluating global variable %s failed\n", elem->name);
+	    else
+		xsltTransformError(ctxt, NULL, precomp->inst,
+		    "Evaluating global variable %s failed\n", elem->name);
+	    ctxt->state = XSLT_STATE_STOPPED;
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+#ifdef LIBXML_DEBUG_ENABLED
+	} else {
+	    if ((xsltGenericDebugContext == stdout) ||
+		(xsltGenericDebugContext == stderr))
+		xmlXPathDebugDumpObject((FILE *)xsltGenericDebugContext,
+					result, 0);
+#endif
+#endif
+	}
+    } else {
+	if (elem->tree == NULL) {
+	    result = xmlXPathNewCString("");
+	} else {
+	    /*
+	     * This is a result tree fragment.
+	     */
+	    xmlDocPtr container;
+	    xmlNodePtr oldInsert;
+	    xmlDocPtr  oldoutput;
+
+	    container = xsltCreateRVT(ctxt);
+	    if (container == NULL)
+		return(NULL);
+	    /*
+	     * Tag the subtree for removal once consumed
+	     */
+	    xsltRegisterTmpRVT(ctxt, container);
+	    /*
+	     * Save a pointer to the global variable for later cleanup
+	     */
+	    container->psvi = elem;
+	    oldoutput = ctxt->output;
+	    ctxt->output = container;
+	    oldInsert = ctxt->insert;
+	    ctxt->insert = (xmlNodePtr) container;
+	    xsltApplyOneTemplate(ctxt, ctxt->node, elem->tree, NULL, NULL);
+	    ctxt->insert = oldInsert;
+	    ctxt->output = oldoutput;
+
+	    result = xmlXPathNewValueTree((xmlNodePtr) container);
+	    if (result == NULL) {
+		result = xmlXPathNewCString("");
+	    } else {
+	        result->boolval = 0; /* Freeing is not handled there anymore */
+	    }
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+#ifdef LIBXML_DEBUG_ENABLED
+	    if ((xsltGenericDebugContext == stdout) ||
+		(xsltGenericDebugContext == stderr))
+		xmlXPathDebugDumpObject((FILE *)xsltGenericDebugContext,
+					result, 0);
+#endif
+#endif
+	}
+    }
+    if (result != NULL) {
+	elem->value = result;
+	elem->computed = 1;
+    }
+    elem->name = name;
+    return(result);
+}
+
+/**
+ * xsltEvalGlobalVariables:
+ * @ctxt:  the XSLT transformation context
+ *
+ * Evaluate the global variables of a stylesheet. This need to be
+ * done on parsed stylesheets before starting to apply transformations
+ *
+ * Returns 0 in case of success, -1 in case of error
+ */
+int
+xsltEvalGlobalVariables(xsltTransformContextPtr ctxt) {
+    xsltStackElemPtr elem;
+    xsltStylesheetPtr style;
+
+    if ((ctxt == NULL) || (ctxt->document == NULL))
+	return(-1);
+ 
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+	"Registering global variables\n"));
+#endif
+
+    ctxt->tmpDoc = ctxt->document->doc;
+    ctxt->node = (xmlNodePtr) ctxt->document->doc;
+    ctxt->xpathCtxt->contextSize = 1;
+    ctxt->xpathCtxt->proximityPosition = 1;
+
+    /*
+     * Walk the list from the stylesheets and populate the hash table
+     */
+    style = ctxt->style;
+    while (style != NULL) {
+	elem = style->variables;
+	
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+	if ((style->doc != NULL) && (style->doc->URL != NULL)) {
+	    XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+			     "Registering global variables from %s\n",
+		             style->doc->URL));
+	}
+#endif
+
+	while (elem != NULL) {
+	    xsltStackElemPtr def;
+
+	    /*
+	     * Global variables are stored in the variables pool.
+	     */
+	    def = (xsltStackElemPtr) 
+		    xmlHashLookup2(ctxt->globalVars,
+		                 elem->name, elem->nameURI);
+	    if (def == NULL) {
+
+		def = xsltCopyStackElem(elem);
+		xmlHashAddEntry2(ctxt->globalVars,
+				 elem->name, elem->nameURI, def);
+	    } else if ((elem->comp != NULL) &&
+		       (elem->comp->type == XSLT_FUNC_VARIABLE)) {
+		/*
+		 * Redefinition of variables from a different stylesheet
+		 * should not generate a message.
+		 */
+		if ((elem->comp->inst != NULL) &&
+		    (def->comp != NULL) && (def->comp->inst != NULL) &&
+		    (elem->comp->inst->doc == def->comp->inst->doc)) {
+		    xsltTransformError(ctxt, style, elem->comp->inst,
+			"Global variable %s already defined\n", elem->name);
+		    if (style != NULL) style->errors++;
+		}
+	    }
+	    elem = elem->next;
+	}
+
+	style = xsltNextImport(style);
+    }
+
+    /*
+     * This part does the actual evaluation
+     */
+    ctxt->node = (xmlNodePtr) ctxt->document->doc;
+    ctxt->xpathCtxt->contextSize = 1;
+    ctxt->xpathCtxt->proximityPosition = 1;
+    xmlHashScan(ctxt->globalVars,
+	        (xmlHashScanner) xsltEvalGlobalVariable, ctxt);
+
+    return(0);
+}
+
+/**
+ * xsltRegisterGlobalVariable:
+ * @style:  the XSLT transformation context
+ * @name:  the variable name
+ * @ns_uri:  the variable namespace URI
+ * @sel:  the expression which need to be evaluated to generate a value
+ * @tree:  the subtree if sel is NULL
+ * @comp:  the precompiled value
+ * @value:  the string value if available
+ *
+ * Register a new variable value. If @value is NULL it unregisters
+ * the variable
+ *
+ * Returns 0 in case of success, -1 in case of error
+ */
+static int
+xsltRegisterGlobalVariable(xsltStylesheetPtr style, const xmlChar *name,
+		     const xmlChar *ns_uri, const xmlChar *sel,
+		     xmlNodePtr tree, xsltStylePreCompPtr comp,
+		     const xmlChar *value) {
+    xsltStackElemPtr elem, tmp;
+    if (style == NULL)
+	return(-1);
+    if (name == NULL)
+	return(-1);
+    if (comp == NULL)
+	return(-1);
+
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    if (comp->type == XSLT_FUNC_PARAM)
+	xsltGenericDebug(xsltGenericDebugContext,
+			 "Defining global param %s\n", name);
+    else
+	xsltGenericDebug(xsltGenericDebugContext,
+			 "Defining global variable %s\n", name);
+#endif
+
+    elem = xsltNewStackElem();
+    if (elem == NULL)
+	return(-1);
+    elem->comp = comp;
+    elem->name = xmlDictLookup(style->dict, name, -1);
+    elem->select = xmlDictLookup(style->dict, sel, -1);
+    if (ns_uri)
+	elem->nameURI = xmlDictLookup(style->dict, ns_uri, -1);
+    elem->tree = tree;
+    tmp = style->variables;
+    if (tmp == NULL) {
+	elem->next = NULL;
+	style->variables = elem;
+    } else {
+	while (tmp != NULL) {
+	    if ((elem->comp->type == XSLT_FUNC_VARIABLE) &&
+		(tmp->comp->type == XSLT_FUNC_VARIABLE) &&
+		(xmlStrEqual(elem->name, tmp->name)) &&
+		((elem->nameURI == tmp->nameURI) ||
+		 (xmlStrEqual(elem->nameURI, tmp->nameURI)))) {
+		xsltTransformError(NULL, style, comp->inst,
+		"redefinition of global variable %s\n", elem->name);
+		if (style != NULL) style->errors++;
+	    }
+	    if (tmp->next == NULL)
+	        break;
+	    tmp = tmp->next;
+	}
+	elem->next = NULL;
+	tmp->next = elem;
+    }
+    if (value != NULL) {
+	elem->computed = 1;
+	elem->value = xmlXPathNewString(value);
+    }
+    return(0);
+}
+
+/**
+ * xsltProcessUserParamInternal
+ *
+ * @ctxt:  the XSLT transformation context
+ * @name:  a null terminated parameter name
+ * @value: a null terminated value (may be an XPath expression)
+ * @eval:  0 to treat the value literally, else evaluate as XPath expression
+ *
+ * If @eval is 0 then @value is treated literally and is stored in the global
+ * parameter/variable table without any change.
+ *
+ * Uf @eval is 1 then @value is treated as an XPath expression and is
+ * evaluated.  In this case, if you want to pass a string which will be
+ * interpreted literally then it must be enclosed in single or double quotes.
+ * If the string contains single quotes (double quotes) then it cannot be
+ * enclosed single quotes (double quotes).  If the string which you want to
+ * be treated literally contains both single and double quotes (e.g. Meet
+ * at Joe's for "Twelfth Night" at 7 o'clock) then there is no suitable
+ * quoting character.  You cannot use &apos; or &quot; inside the string
+ * because the replacement of character entities with their equivalents is
+ * done at a different stage of processing.  The solution is to call
+ * xsltQuoteUserParams or xsltQuoteOneUserParam.
+ *
+ * This needs to be done on parsed stylesheets before starting to apply
+ * transformations.  Normally this will be called (directly or indirectly)
+ * only from xsltEvalUserParams, xsltEvalOneUserParam, xsltQuoteUserParams,
+ * or xsltQuoteOneUserParam.
+ *
+ * Returns 0 in case of success, -1 in case of error
+ */
+
+static
+int
+xsltProcessUserParamInternal(xsltTransformContextPtr ctxt,
+		             const xmlChar * name,
+			     const xmlChar * value,
+			     int eval) {
+
+    xsltStylesheetPtr style;
+    const xmlChar *prefix;
+    const xmlChar *href;
+    xmlXPathCompExprPtr comp;
+    xmlXPathObjectPtr result;
+    int oldProximityPosition;
+    int oldContextSize;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+    xsltStackElemPtr elem;
+    int res;
+    void *res_ptr;
+
+    if (ctxt == NULL)
+	return(-1);
+    if (name == NULL)
+	return(0);
+    if (value == NULL)
+	return(0);
+
+    style = ctxt->style;
+
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+	    "Evaluating user parameter %s=%s\n", name, value));
+#endif
+
+    /*
+     * Name lookup
+     */
+
+    name = xsltSplitQName(ctxt->dict, name, &prefix);
+    href = NULL;
+    if (prefix != NULL) {
+	xmlNsPtr ns;
+
+	ns = xmlSearchNs(style->doc, xmlDocGetRootElement(style->doc),
+			 prefix);
+	if (ns == NULL) {
+	    xsltTransformError(ctxt, style, NULL,
+	    "user param : no namespace bound to prefix %s\n", prefix);
+	    href = NULL;
+	} else {
+	    href = ns->href;
+	}
+    }
+
+    if (name == NULL)
+	return (-1);
+
+    res_ptr = xmlHashLookup2(ctxt->globalVars, name, href);
+    if (res_ptr != 0) {
+	xsltTransformError(ctxt, style, NULL,
+	    "Global parameter %s already defined\n", name);
+    }
+    if (ctxt->globalVars == NULL)
+	ctxt->globalVars = xmlHashCreate(20);
+
+    /*
+     * do not overwrite variables with parameters from the command line
+     */
+    while (style != NULL) {
+        elem = ctxt->style->variables;
+	while (elem != NULL) {
+	    if ((elem->comp != NULL) &&
+	        (elem->comp->type == XSLT_FUNC_VARIABLE) &&
+		(xmlStrEqual(elem->name, name)) &&
+		(xmlStrEqual(elem->nameURI, href))) {
+		return(0);
+	    }
+            elem = elem->next;
+	}
+        style = xsltNextImport(style);
+    }
+    style = ctxt->style;
+    elem = NULL;
+
+    /*
+     * Do the evaluation if @eval is non-zero.
+     */
+
+    result = NULL;
+    if (eval != 0) {
+        comp = xmlXPathCompile(value);
+	if (comp != NULL) {
+	    oldProximityPosition = ctxt->xpathCtxt->proximityPosition;
+	    oldContextSize = ctxt->xpathCtxt->contextSize;
+	    ctxt->xpathCtxt->node = (xmlNodePtr) ctxt->node;
+
+	    /* 
+	     * There is really no in scope namespace for parameters on the
+	     * command line.
+	     */
+
+	    oldNsNr = ctxt->xpathCtxt->nsNr;
+	    oldNamespaces = ctxt->xpathCtxt->namespaces;
+	    ctxt->xpathCtxt->namespaces = NULL;
+	    ctxt->xpathCtxt->nsNr = 0;
+	    result = xmlXPathCompiledEval(comp, ctxt->xpathCtxt);
+	    ctxt->xpathCtxt->contextSize = oldContextSize;
+	    ctxt->xpathCtxt->proximityPosition = oldProximityPosition;
+	    ctxt->xpathCtxt->nsNr = oldNsNr;
+	    ctxt->xpathCtxt->namespaces = oldNamespaces;
+	    xmlXPathFreeCompExpr(comp);
+	}
+	if (result == NULL) {
+	    xsltTransformError(ctxt, style, NULL,
+		"Evaluating user parameter %s failed\n", name);
+	    ctxt->state = XSLT_STATE_STOPPED;
+	    return(-1);
+	}
+    }
+
+    /* 
+     * If @eval is 0 then @value is to be taken literally and result is NULL
+     * 
+     * If @eval is not 0, then @value is an XPath expression and has been
+     * successfully evaluated and result contains the resulting value and
+     * is not NULL.
+     *
+     * Now create an xsltStackElemPtr for insertion into the context's
+     * global variable/parameter hash table.
+     */
+
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+#ifdef LIBXML_DEBUG_ENABLED
+    if ((xsltGenericDebugContext == stdout) ||
+        (xsltGenericDebugContext == stderr))
+	    xmlXPathDebugDumpObject((FILE *)xsltGenericDebugContext,
+				    result, 0);
+#endif
+#endif
+
+    elem = xsltNewStackElem();
+    if (elem != NULL) {
+	elem->name = name;
+	elem->select = xmlDictLookup(ctxt->dict, value, -1);
+	if (href != NULL)
+	    elem->nameURI = xmlDictLookup(ctxt->dict, href, -1);
+	elem->tree = NULL;
+	elem->computed = 1;
+	if (eval == 0) {
+	    elem->value = xmlXPathNewString(value);
+	} 
+	else {
+	    elem->value = result;
+	}
+    }
+
+    /*
+     * Global parameters are stored in the XPath context variables pool.
+     */
+
+    res = xmlHashAddEntry2(ctxt->globalVars, name, href, elem);
+    if (res != 0) {
+	xsltFreeStackElem(elem);
+	xsltTransformError(ctxt, style, NULL,
+	    "Global parameter %s already defined\n", name);
+    }
+    return(0);
+}
+
+/**
+ * xsltEvalUserParams:
+ *
+ * @ctxt:  the XSLT transformation context
+ * @params:  a NULL terminated array of parameters name/value tuples
+ *
+ * Evaluate the global variables of a stylesheet. This needs to be
+ * done on parsed stylesheets before starting to apply transformations.
+ * Each of the parameters is evaluated as an XPath expression and stored
+ * in the global variables/parameter hash table.  If you want your
+ * parameter used literally, use xsltQuoteUserParams.
+ *
+ * Returns 0 in case of success, -1 in case of error
+ */
+ 
+int
+xsltEvalUserParams(xsltTransformContextPtr ctxt, const char **params) {
+    int indx = 0;
+    const xmlChar *name;
+    const xmlChar *value;
+
+    if (params == NULL)
+	return(0);
+    while (params[indx] != NULL) {
+	name = (const xmlChar *) params[indx++];
+	value = (const xmlChar *) params[indx++];
+    	if (xsltEvalOneUserParam(ctxt, name, value) != 0) 
+	    return(-1);
+    }
+    return 0;
+}
+
+/**
+ * xsltQuoteUserParams:
+ *
+ * @ctxt:  the XSLT transformation context
+ * @params:  a NULL terminated arry of parameters names/values tuples
+ *
+ * Similar to xsltEvalUserParams, but the values are treated literally and
+ * are * *not* evaluated as XPath expressions. This should be done on parsed
+ * stylesheets before starting to apply transformations.
+ *
+ * Returns 0 in case of success, -1 in case of error.
+ */
+ 
+int
+xsltQuoteUserParams(xsltTransformContextPtr ctxt, const char **params) {
+    int indx = 0;
+    const xmlChar *name;
+    const xmlChar *value;
+
+    if (params == NULL)
+	return(0);
+    while (params[indx] != NULL) {
+	name = (const xmlChar *) params[indx++];
+	value = (const xmlChar *) params[indx++];
+    	if (xsltQuoteOneUserParam(ctxt, name, value) != 0) 
+	    return(-1);
+    }
+    return 0;
+}
+
+/**
+ * xsltEvalOneUserParam:
+ * @ctxt:  the XSLT transformation context
+ * @name:  a null terminated string giving the name of the parameter
+ * @value:  a null terminated string giving the XPath expression to be evaluated
+ *
+ * This is normally called from xsltEvalUserParams to process a single
+ * parameter from a list of parameters.  The @value is evaluated as an
+ * XPath expression and the result is stored in the context's global
+ * variable/parameter hash table.
+ *
+ * To have a parameter treated literally (not as an XPath expression)
+ * use xsltQuoteUserParams (or xsltQuoteOneUserParam).  For more
+ * details see description of xsltProcessOneUserParamInternal.
+ *
+ * Returns 0 in case of success, -1 in case of error.
+ */
+
+int
+xsltEvalOneUserParam(xsltTransformContextPtr ctxt,
+    		     const xmlChar * name,
+		     const xmlChar * value) {
+    return xsltProcessUserParamInternal(ctxt, name, value,
+		                        1 /* xpath eval ? */);
+}
+
+/**
+ * xsltQuoteOneUserParam:
+ * @ctxt:  the XSLT transformation context
+ * @name:  a null terminated string giving the name of the parameter
+ * @value:  a null terminated string giving the parameter value
+ *
+ * This is normally called from xsltQuoteUserParams to process a single
+ * parameter from a list of parameters.  The @value is stored in the
+ * context's global variable/parameter hash table.
+ *
+ * Returns 0 in case of success, -1 in case of error.
+ */
+
+int
+xsltQuoteOneUserParam(xsltTransformContextPtr ctxt,
+			 const xmlChar * name,
+			 const xmlChar * value) {
+    return xsltProcessUserParamInternal(ctxt, name, value,
+					0 /* xpath eval ? */);
+}
+
+/**
+ * xsltBuildVariable:
+ * @ctxt:  the XSLT transformation context
+ * @comp:  the precompiled form
+ * @tree:  the tree if select is NULL
+ *
+ * Computes a new variable value.
+ *
+ * Returns the xsltStackElemPtr or NULL in case of error
+ */
+static xsltStackElemPtr
+xsltBuildVariable(xsltTransformContextPtr ctxt,
+		  xsltStylePreCompPtr castedComp,
+		  xmlNodePtr tree)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleBasicItemVariablePtr comp =
+	(xsltStyleBasicItemVariablePtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif 
+    xsltStackElemPtr elem;
+
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+		     "Building variable %s", comp->name));
+    if (comp->select != NULL)
+	XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+			 " select %s", comp->select));
+    XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext, "\n"));
+#endif
+
+    elem = xsltNewStackElem();
+    if (elem == NULL)
+	return(NULL);
+    elem->comp = (xsltStylePreCompPtr) comp;
+    elem->name = comp->name;
+    if (comp->select != NULL)
+	elem->select = comp->select;
+    else
+	elem->select = NULL;
+    if (comp->ns)
+	elem->nameURI = comp->ns;
+    elem->tree = tree;
+    if (elem->computed == 0) {
+	elem->value = xsltEvalVariable(ctxt, elem,
+	    (xsltStylePreCompPtr) comp);
+	if (elem->value != NULL)
+	    elem->computed = 1;
+    }
+    return(elem);
+}
+
+/**
+ * xsltRegisterVariable:
+ * @ctxt:  the XSLT transformation context
+ * @comp:  pointer to precompiled data
+ * @tree:  the tree if select is NULL
+ * @param:  this is a parameter actually
+ *
+ * Computes and register a new variable value.
+ * TODO: Is this intended for xsl:param as well?
+ *
+ * Returns 0 in case of success, -1 in case of error
+ */
+static int
+xsltRegisterVariable(xsltTransformContextPtr ctxt,
+		     xsltStylePreCompPtr castedComp,
+		     xmlNodePtr tree, int param)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleBasicItemVariablePtr comp =
+	(xsltStyleBasicItemVariablePtr) castedComp;
+#else
+    xsltStylePreCompPtr comp = castedComp;
+#endif
+    xsltStackElemPtr elem;
+    int present;
+
+    present = xsltCheckStackElem(ctxt, comp->name, comp->ns);
+    if (param == 0) {
+	if ((present != 0) && (present != 3)) {
+	    xsltTransformError(ctxt, NULL, comp->inst,
+		"xsl:variable : redefining %s\n", comp->name);
+	    return(0);
+	}
+    } else if (present != 0) {
+	if ((present == 1) || (present == 2)) {
+	    xsltTransformError(ctxt, NULL, comp->inst,
+		"xsl:param : redefining %s\n", comp->name);
+	    return(0);
+	}
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+	XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+		 "param %s defined by caller\n", comp->name));
+#endif
+	return(0);
+    }
+    elem = xsltBuildVariable(ctxt, (xsltStylePreCompPtr) comp, tree);
+    xsltAddStackElem(ctxt, elem);
+    return(0);
+}
+
+/**
+ * xsltGlobalVariableLookup:
+ * @ctxt:  the XSLT transformation context
+ * @name:  the variable name
+ * @ns_uri:  the variable namespace URI
+ *
+ * Search in the Variable array of the context for the given
+ * variable value.
+ *
+ * Returns the value or NULL if not found
+ */
+static xmlXPathObjectPtr
+xsltGlobalVariableLookup(xsltTransformContextPtr ctxt, const xmlChar *name,
+		         const xmlChar *ns_uri) {
+    xsltStackElemPtr elem;
+    xmlXPathObjectPtr ret = NULL;
+
+    /*
+     * Lookup the global variables in XPath global variable hash table
+     */
+    if ((ctxt->xpathCtxt == NULL) || (ctxt->globalVars == NULL))
+	return(NULL);
+    elem = (xsltStackElemPtr)
+	    xmlHashLookup2(ctxt->globalVars, name, ns_uri);
+    if (elem == NULL) {
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+	XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+			 "global variable not found %s\n", name));
+#endif
+	return(NULL);
+    }
+    if (elem->computed == 0) {
+	if (xmlStrEqual(elem->name, BAD_CAST "  being computed ... ")) {
+	    xsltTransformError(ctxt, NULL, elem->comp->inst,
+		"Recursive definition of %s\n", name);
+	    return(NULL);
+	}
+	ret = xsltEvalGlobalVariable(elem, ctxt);
+    } else
+	ret = elem->value;
+    return(xmlXPathObjectCopy(ret));
+}
+
+/**
+ * xsltVariableLookup:
+ * @ctxt:  the XSLT transformation context
+ * @name:  the variable name
+ * @ns_uri:  the variable namespace URI
+ *
+ * Search in the Variable array of the context for the given
+ * variable value.
+ *
+ * Returns the value or NULL if not found
+ */
+xmlXPathObjectPtr
+xsltVariableLookup(xsltTransformContextPtr ctxt, const xmlChar *name,
+		   const xmlChar *ns_uri) {
+    xsltStackElemPtr elem;
+
+    if (ctxt == NULL)
+	return(NULL);
+
+    elem = xsltStackLookup(ctxt, name, ns_uri);
+    if (elem == NULL) {
+	return(xsltGlobalVariableLookup(ctxt, name, ns_uri));
+    }
+    if (elem->computed == 0) {
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+	XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+		         "uncomputed variable %s\n", name));
+#endif
+        elem->value = xsltEvalVariable(ctxt, elem, NULL);
+	elem->computed = 1;
+    }
+    if (elem->value != NULL)
+	return(xmlXPathObjectCopy(elem->value));
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+		     "variable not found %s\n", name));
+#endif
+    return(NULL);
+}
+
+/**
+ * xsltParseStylesheetCallerParam:
+ * @ctxt:  the XSLT transformation context
+ * @cur:  the "param" element
+ *
+ * parse an XSLT transformation param declaration, compute
+ * its value but doesn't record it.
+ *
+ * Returns the new xsltStackElemPtr or NULL
+ */
+
+xsltStackElemPtr
+xsltParseStylesheetCallerParam(xsltTransformContextPtr ctxt, xmlNodePtr cur)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleBasicItemVariablePtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    xmlNodePtr tree = NULL;
+    xsltStackElemPtr elem = NULL;
+    
+    if ((cur == NULL) || (ctxt == NULL))
+	return(NULL);
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleBasicItemVariablePtr) cur->psvi;
+#else
+    comp = (xsltStylePreCompPtr) cur->psvi;
+#endif     
+    if (comp == NULL) {
+	xsltTransformError(ctxt, NULL, cur,
+	    "xsl:param : compilation error\n");
+	return(NULL);
+    }
+
+    if (comp->name == NULL) {
+	xsltTransformError(ctxt, NULL, cur,
+	    "xsl:param : missing name attribute\n");
+	return(NULL);
+    }
+
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+	    "Handling param %s\n", comp->name));
+#endif
+
+    if (comp->select == NULL) {
+	tree = cur->children;
+    } else {
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+	XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+	    "        select %s\n", comp->select));
+#endif
+	tree = cur;
+    }
+
+    elem = xsltBuildVariable(ctxt, (xsltStylePreCompPtr) comp, tree);
+
+    return(elem);
+}
+
+/**
+ * xsltParseGlobalVariable:
+ * @style:  the XSLT stylesheet
+ * @cur:  the "variable" element
+ *
+ * parse an XSLT transformation variable declaration and record
+ * its value.
+ */
+
+void
+xsltParseGlobalVariable(xsltStylesheetPtr style, xmlNodePtr cur)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleItemVariablePtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((cur == NULL) || (style == NULL))
+	return;
+
+    xsltStylePreCompute(style, cur);
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemVariablePtr) cur->psvi;
+#else
+    comp = (xsltStylePreCompPtr) cur->psvi;
+#endif
+    if (comp == NULL) {
+	xsltTransformError(NULL, style, cur,
+	     "xsl:variable : compilation failed\n");
+	return;
+    }
+
+    if (comp->name == NULL) {
+	xsltTransformError(NULL, style, cur,
+	    "xsl:variable : missing name attribute\n");
+	return;
+    }
+
+    if (cur->children != NULL) {
+        xsltParseTemplateContent(style, cur);
+    }
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    xsltGenericDebug(xsltGenericDebugContext,
+	"Registering global variable %s\n", comp->name);
+#endif
+
+    xsltRegisterGlobalVariable(style, comp->name, comp->ns,
+	comp->select, cur->children, (xsltStylePreCompPtr) comp,
+	NULL);
+}
+
+/**
+ * xsltParseGlobalParam:
+ * @style:  the XSLT stylesheet
+ * @cur:  the "param" element
+ *
+ * parse an XSLT transformation param declaration and record
+ * its value.
+ */
+
+void
+xsltParseGlobalParam(xsltStylesheetPtr style, xmlNodePtr cur) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemParamPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((cur == NULL) || (style == NULL))
+	return;
+
+    xsltStylePreCompute(style, cur);
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemParamPtr) cur->psvi;
+#else
+    comp = (xsltStylePreCompPtr) cur->psvi;
+#endif    
+    if (comp == NULL) {
+	xsltTransformError(NULL, style, cur,
+	     "xsl:param : compilation failed\n");
+	return;
+    }
+
+    if (comp->name == NULL) {
+	xsltTransformError(NULL, style, cur,
+	    "xsl:param : missing name attribute\n");
+	return;
+    }
+
+    if (cur->children != NULL) {
+        xsltParseTemplateContent(style, cur);
+    }
+
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    xsltGenericDebug(xsltGenericDebugContext,
+	"Registering global param %s\n", comp->name);
+#endif
+
+    xsltRegisterGlobalVariable(style, comp->name, comp->ns,
+	comp->select, cur->children, (xsltStylePreCompPtr) comp,
+	NULL);
+}
+
+/**
+ * xsltParseStylesheetVariable:
+ * @ctxt:  the XSLT transformation context
+ * @cur:  the "variable" element
+ *
+ * parse an XSLT transformation variable declaration and record
+ * its value.
+ */
+
+void
+xsltParseStylesheetVariable(xsltTransformContextPtr ctxt, xmlNodePtr cur)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleItemVariablePtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((cur == NULL) || (ctxt == NULL))
+	return;
+
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemVariablePtr) cur->psvi;
+#else
+    comp = (xsltStylePreCompPtr) cur->psvi;
+#endif   
+    if (comp == NULL) {
+	xsltTransformError(ctxt, NULL, cur,
+	     "xsl:variable : compilation failed\n");
+	return;
+    }
+
+    if (comp->name == NULL) {
+	xsltTransformError(ctxt, NULL, cur,
+	    "xsl:variable : missing name attribute\n");
+	return;
+    }
+
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+	"Registering variable %s\n", comp->name));
+#endif
+
+    xsltRegisterVariable(ctxt, (xsltStylePreCompPtr) comp, cur->children, 0);
+}
+
+/**
+ * xsltParseStylesheetParam:
+ * @ctxt:  the XSLT transformation context
+ * @cur:  the "param" element
+ *
+ * parse an XSLT transformation param declaration and record
+ * its value.
+ */
+
+void
+xsltParseStylesheetParam(xsltTransformContextPtr ctxt, xmlNodePtr cur)
+{
+#ifdef XSLT_REFACTORED
+    xsltStyleItemParamPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+
+    if ((cur == NULL) || (ctxt == NULL))
+	return;
+#ifdef XSLT_REFACTORED
+    comp = (xsltStyleItemParamPtr) cur->psvi;
+#else
+    comp = (xsltStylePreCompPtr) cur->psvi;
+#endif 
+    if (comp == NULL) {
+	xsltTransformError(ctxt, NULL, cur,
+	     "xsl:param : compilation failed\n");
+	return;
+    }
+
+    if (comp->name == NULL) {
+	xsltTransformError(ctxt, NULL, cur,
+	    "xsl:param : missing name attribute\n");
+	return;
+    }
+
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    XSLT_TRACE(ctxt,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+	"Registering param %s\n", comp->name));
+#endif
+
+    xsltRegisterVariable(ctxt, (xsltStylePreCompPtr) comp, cur->children, 1);
+}
+
+/**
+ * xsltFreeGlobalVariables:
+ * @ctxt:  the XSLT transformation context
+ *
+ * Free up the data associated to the global variables
+ * its value.
+ */
+
+void
+xsltFreeGlobalVariables(xsltTransformContextPtr ctxt) {
+    xmlHashFree(ctxt->globalVars, (xmlHashDeallocator) xsltFreeStackElem);
+}
+
+/**
+ * xsltXPathVariableLookup:
+ * @ctxt:  a void * but the the XSLT transformation context actually
+ * @name:  the variable name
+ * @ns_uri:  the variable namespace URI
+ *
+ * This is the entry point when a varibale is needed by the XPath
+ * interpretor.
+ *
+ * Returns the value or NULL if not found
+ */
+xmlXPathObjectPtr
+xsltXPathVariableLookup(void *ctxt, const xmlChar *name,
+	                const xmlChar *ns_uri) {
+    xsltTransformContextPtr context;
+    xmlXPathObjectPtr ret;
+
+    if ((ctxt == NULL) || (name == NULL))
+	return(NULL);
+
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    XSLT_TRACE(((xsltTransformContextPtr)ctxt),XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+	    "Lookup variable %s\n", name));
+#endif
+    context = (xsltTransformContextPtr) ctxt;
+    ret = xsltVariableLookup(context, name, ns_uri);
+    if (ret == NULL) {
+	xsltTransformError(ctxt, NULL, NULL,
+	    "unregistered variable %s\n", name);
+    }
+#ifdef WITH_XSLT_DEBUG_VARIABLE
+    if (ret != NULL)
+	XSLT_TRACE(context,XSLT_TRACE_VARIABLES,xsltGenericDebug(xsltGenericDebugContext,
+	    "found variable %s\n", name));
+#endif
+    return(ret);
+}
+
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/variables.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/variables.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/variables.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,91 @@
+/*
+ * Summary: interface for the variable matching and lookup.
+ * Description: interface for the variable matching and lookup.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_VARIABLES_H__
+#define __XML_XSLT_VARIABLES_H__
+
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include "xsltexports.h"
+#include "xsltInternals.h"
+#include "functions.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * XSLT_REGISTER_VARIABLE_LOOKUP:
+ *
+ * Registering macro, not general purpose at all but used in different modules.
+ */
+
+#define XSLT_REGISTER_VARIABLE_LOOKUP(ctxt)			\
+    xmlXPathRegisterVariableLookup((ctxt)->xpathCtxt,		\
+	       xsltXPathVariableLookup,	(void *)(ctxt));	\
+    xsltRegisterAllFunctions((ctxt)->xpathCtxt);		\
+    xsltRegisterAllElement(ctxt);				\
+    (ctxt)->xpathCtxt->extra = ctxt
+
+/*
+ * Interfaces for the variable module.
+ */
+
+XSLTPUBFUN int XSLTCALL		
+		xsltEvalGlobalVariables		(xsltTransformContextPtr ctxt);
+XSLTPUBFUN int XSLTCALL		
+		xsltEvalUserParams		(xsltTransformContextPtr ctxt,
+						 const char **params);
+XSLTPUBFUN int XSLTCALL		
+    		xsltQuoteUserParams		(xsltTransformContextPtr ctxt,
+						 const char **params);
+XSLTPUBFUN int XSLTCALL		
+		xsltEvalOneUserParam		(xsltTransformContextPtr ctxt,
+    						 const xmlChar * name,
+						 const xmlChar * value);
+XSLTPUBFUN int XSLTCALL		
+    		xsltQuoteOneUserParam		(xsltTransformContextPtr ctxt,
+    						 const xmlChar * name,
+						 const xmlChar * value);
+
+XSLTPUBFUN void XSLTCALL		
+    		xsltParseGlobalVariable		(xsltStylesheetPtr style,
+						 xmlNodePtr cur);
+XSLTPUBFUN void XSLTCALL		
+    		xsltParseGlobalParam		(xsltStylesheetPtr style,
+						 xmlNodePtr cur);
+XSLTPUBFUN void XSLTCALL		
+    		xsltParseStylesheetVariable	(xsltTransformContextPtr ctxt,
+						 xmlNodePtr cur);
+XSLTPUBFUN void XSLTCALL		
+    		xsltParseStylesheetParam	(xsltTransformContextPtr ctxt,
+						 xmlNodePtr cur);
+XSLTPUBFUN xsltStackElemPtr XSLTCALL 
+		xsltParseStylesheetCallerParam	(xsltTransformContextPtr ctxt,
+						 xmlNodePtr cur);
+XSLTPUBFUN int XSLTCALL		
+    		xsltAddStackElemList		(xsltTransformContextPtr ctxt,
+						 xsltStackElemPtr elems);
+XSLTPUBFUN void XSLTCALL		
+    		xsltFreeGlobalVariables		(xsltTransformContextPtr ctxt);
+XSLTPUBFUN xmlXPathObjectPtr XSLTCALL	
+		xsltVariableLookup		(xsltTransformContextPtr ctxt,
+						 const xmlChar *name,
+						 const xmlChar *ns_uri);
+XSLTPUBFUN xmlXPathObjectPtr XSLTCALL	
+		xsltXPathVariableLookup		(void *ctxt,
+						 const xmlChar *name,
+						 const xmlChar *ns_uri);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_VARIABLES_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/win32config.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/win32config.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/win32config.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,97 @@
+/*
+ * Summary: Windows configuration header
+ * Description: Windows configuration header
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Igor Zlatkovic
+ */
+#ifndef __LIBXSLT_WIN32_CONFIG__
+#define __LIBXSLT_WIN32_CONFIG__
+
+#define HAVE_CTYPE_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STDARG_H 1
+#define HAVE_MALLOC_H 1
+#define HAVE_TIME_H 1
+#define HAVE_LOCALTIME 1
+#define HAVE_GMTIME 1
+#define HAVE_TIME 1
+#define HAVE_MATH_H 1
+#define HAVE_FCNTL_H 1
+
+#include <io.h>
+
+#define HAVE_ISINF
+#define HAVE_ISNAN
+
+#include <math.h>
+#if defined _MSC_VER || defined __MINGW32__
+/* MS C-runtime has functions which can be used in order to determine if
+   a given floating-point variable contains NaN, (+-)INF. These are 
+   preferred, because floating-point technology is considered propriatary
+   by MS and we can assume that their functions know more about their 
+   oddities than we do. */
+#include <float.h>
+/* Bjorn Reese figured a quite nice construct for isinf() using the 
+   _fpclass() function. */
+#ifndef isinf
+#define isinf(d) ((_fpclass(d) == _FPCLASS_PINF) ? 1 \
+	: ((_fpclass(d) == _FPCLASS_NINF) ? -1 : 0))
+#endif
+/* _isnan(x) returns nonzero if (x == NaN) and zero otherwise. */
+#ifndef isnan
+#define isnan(d) (_isnan(d))
+#endif
+#else /* _MSC_VER */
+static int isinf (double d) {
+    int expon = 0;
+    double val = frexp (d, &expon);
+    if (expon == 1025) {
+        if (val == 0.5) {
+            return 1;
+        } else if (val == -0.5) {
+            return -1;
+        } else {
+            return 0;
+        }
+    } else {
+        return 0;
+    }
+}
+static int isnan (double d) {
+    int expon = 0;
+    double val = frexp (d, &expon);
+    if (expon == 1025) {
+        if (val == 0.5) {
+            return 0;
+        } else if (val == -0.5) {
+            return 0;
+        } else {
+            return 1;
+        }
+    } else {
+        return 0;
+    }
+}
+#endif /* _MSC_VER */
+
+#include <direct.h>
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#define mkdir(p,m) _mkdir(p)
+#define snprintf _snprintf
+#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
+#endif
+
+#define HAVE_SYS_STAT_H
+#define HAVE__STAT
+#define HAVE_STRING_H
+
+#include <libxml/xmlversion.h>
+
+#ifndef ATTRIBUTE_UNUSED
+#define ATTRIBUTE_UNUSED
+#endif
+
+#endif /* __LIBXSLT_WIN32_CONFIG__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/xslt.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/xslt.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/xslt.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2861 @@
+/*
+ * xslt.c: Implemetation of an XSL Transformation 1.0 engine
+ *
+ * Reference:
+ *   XSLT specification
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ *   Associating Style Sheets with XML documents
+ *   http://www.w3.org/1999/06/REC-xml-stylesheet-19990629
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <string.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <libxml/valid.h>
+#include <libxml/hash.h>
+#include <libxml/uri.h>
+#include <libxml/xmlerror.h>
+#include <libxml/parserInternals.h>
+#include <libxml/xpathInternals.h>
+#include "xslt.h"
+#include "xsltInternals.h"
+#include "pattern.h"
+#include "variables.h"
+#include "namespaces.h"
+#include "attributes.h"
+#include "xsltutils.h"
+#include "imports.h"
+#include "keys.h"
+#include "documents.h"
+#include "extensions.h"
+#include "preproc.h"
+#include "extra.h"
+#include "security.h"
+
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_PARSING
+/* #define WITH_XSLT_DEBUG_BLANKS */
+#endif
+
+const char *xsltEngineVersion = LIBXSLT_VERSION_STRING LIBXSLT_VERSION_EXTRA;
+const int xsltLibxsltVersion = LIBXSLT_VERSION;
+const int xsltLibxmlVersion = LIBXML_VERSION;
+
+/*
+ * Harmless but avoiding a problem when compiling against a
+ * libxml <= 2.3.11 without LIBXML_DEBUG_ENABLED
+ */
+#ifndef LIBXML_DEBUG_ENABLED
+double xmlXPathStringEvalNumber(const xmlChar *str);
+#endif
+/*
+ * Useful macros
+ */
+
+#ifdef  IS_BLANK
+#undef	IS_BLANK
+#endif
+#define IS_BLANK(c) (((c) == 0x20) || ((c) == 0x09) || ((c) == 0xA) ||	\
+                     ((c) == 0x0D))
+
+#ifdef	IS_BLANK_NODE
+#undef	IS_BLANK_NODE
+#endif
+#define IS_BLANK_NODE(n)						\
+    (((n)->type == XML_TEXT_NODE) && (xsltIsBlank((n)->content)))
+
+/**
+ * exclPrefixPush:
+ * @style: the transformation stylesheet
+ * @value:  the excluded prefix to push on the stack
+ *
+ * Push an excluded prefix on the stack
+ *
+ * Returns the new index in the stack or 0 in case of error
+ */
+static int
+exclPrefixPush(xsltStylesheetPtr style, xmlChar * value)
+{
+    if (style->exclPrefixMax == 0) {
+        style->exclPrefixMax = 4;
+        style->exclPrefixTab =
+            (xmlChar * *)xmlMalloc(style->exclPrefixMax *
+                                   sizeof(style->exclPrefixTab[0]));
+        if (style->exclPrefixTab == NULL) {
+            xmlGenericError(xmlGenericErrorContext, "malloc failed !\n");
+            return (0);
+        }
+    }
+    if (style->exclPrefixNr >= style->exclPrefixMax) {
+        style->exclPrefixMax *= 2;
+        style->exclPrefixTab =
+            (xmlChar * *)xmlRealloc(style->exclPrefixTab,
+                                    style->exclPrefixMax *
+                                    sizeof(style->exclPrefixTab[0]));
+        if (style->exclPrefixTab == NULL) {
+            xmlGenericError(xmlGenericErrorContext, "realloc failed !\n");
+            return (0);
+        }
+    }
+    style->exclPrefixTab[style->exclPrefixNr] = value;
+    style->exclPrefix = value;
+    return (style->exclPrefixNr++);
+}
+/**
+ * exclPrefixPop:
+ * @style: the transformation stylesheet
+ *
+ * Pop an excluded prefix value from the stack
+ *
+ * Returns the stored excluded prefix value
+ */
+static xmlChar *
+exclPrefixPop(xsltStylesheetPtr style)
+{
+    xmlChar *ret;
+
+    if (style->exclPrefixNr <= 0)
+        return (0);
+    style->exclPrefixNr--;
+    if (style->exclPrefixNr > 0)
+        style->exclPrefix = style->exclPrefixTab[style->exclPrefixNr - 1];
+    else
+        style->exclPrefix = NULL;
+    ret = style->exclPrefixTab[style->exclPrefixNr];
+    style->exclPrefixTab[style->exclPrefixNr] = 0;
+    return (ret);
+}
+
+/************************************************************************
+ *									*
+ *			Helper functions				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltInit:
+ *
+ * Initializes the processor (e.g. registers built-in extensions,
+ * etc.)
+ */
+
+static int initialized = 0;
+
+void
+xsltInit (void) {
+    if (initialized == 0) {
+	initialized = 1;
+        xsltRegisterAllExtras();
+    }
+}
+
+/**
+ * xsltUninit
+ *
+ * Uninitializes the processor.
+ */
+
+void
+xsltUninit (void) {
+    initialized = 0;
+}
+
+/**
+ * xsltIsBlank:
+ * @str:  a string
+ *
+ * Check if a string is ignorable
+ *
+ * Returns 1 if the string is NULL or made of blanks chars, 0 otherwise
+ */
+int
+xsltIsBlank(xmlChar *str) {
+    if (str == NULL)
+	return(1);
+    while (*str != 0) {
+	if (!(IS_BLANK(*str))) return(0);
+	str++;
+    }
+    return(1);
+}
+
+/************************************************************************
+ *									*
+ *		Routines to handle XSLT data structures			*
+ *									*
+ ************************************************************************/
+static xsltDecimalFormatPtr
+xsltNewDecimalFormat(xmlChar *name)
+{
+    xsltDecimalFormatPtr self;
+    /* UTF-8 for 0x2030 */
+    static const xmlChar permille[4] = {0xe2, 0x80, 0xb0, 0};
+
+    self = xmlMalloc(sizeof(xsltDecimalFormat));
+    if (self != NULL) {
+	self->next = NULL;
+	self->name = name;
+	
+	/* Default values */
+	self->digit = xmlStrdup(BAD_CAST("#"));
+	self->patternSeparator = xmlStrdup(BAD_CAST(";"));
+	self->decimalPoint = xmlStrdup(BAD_CAST("."));
+	self->grouping = xmlStrdup(BAD_CAST(","));
+	self->percent = xmlStrdup(BAD_CAST("%"));
+	self->permille = xmlStrdup(BAD_CAST(permille));
+	self->zeroDigit = xmlStrdup(BAD_CAST("0"));
+	self->minusSign = xmlStrdup(BAD_CAST("-"));
+	self->infinity = xmlStrdup(BAD_CAST("Infinity"));
+	self->noNumber = xmlStrdup(BAD_CAST("NaN"));
+    }
+    return self;
+}
+
+static void
+xsltFreeDecimalFormat(xsltDecimalFormatPtr self)
+{
+    if (self != NULL) {
+	if (self->digit)
+	    xmlFree(self->digit);
+	if (self->patternSeparator)
+	    xmlFree(self->patternSeparator);
+	if (self->decimalPoint)
+	    xmlFree(self->decimalPoint);
+	if (self->grouping)
+	    xmlFree(self->grouping);
+	if (self->percent)
+	    xmlFree(self->percent);
+	if (self->permille)
+	    xmlFree(self->permille);
+	if (self->zeroDigit)
+	    xmlFree(self->zeroDigit);
+	if (self->minusSign)
+	    xmlFree(self->minusSign);
+	if (self->infinity)
+	    xmlFree(self->infinity);
+	if (self->noNumber)
+	    xmlFree(self->noNumber);
+	if (self->name)
+	    xmlFree(self->name);
+	xmlFree(self);
+    }
+}
+
+static void
+xsltFreeDecimalFormatList(xsltStylesheetPtr self)
+{
+    xsltDecimalFormatPtr iter;
+    xsltDecimalFormatPtr tmp;
+
+    if (self == NULL)
+	return;
+    
+    iter = self->decimalFormat;
+    while (iter != NULL) {
+	tmp = iter->next;
+	xsltFreeDecimalFormat(iter);
+	iter = tmp;
+    }
+}
+
+/**
+ * xsltDecimalFormatGetByName:
+ * @sheet: the XSLT stylesheet
+ * @name: the decimal-format name to find
+ *
+ * Find decimal-format by name
+ *
+ * Returns the xsltDecimalFormatPtr
+ */
+xsltDecimalFormatPtr
+xsltDecimalFormatGetByName(xsltStylesheetPtr sheet, xmlChar *name)
+{
+    xsltDecimalFormatPtr result = NULL;
+
+    if (name == NULL)
+	return sheet->decimalFormat;
+
+    while (sheet != NULL) {
+	for (result = sheet->decimalFormat->next;
+	     result != NULL;
+	     result = result->next) {
+	    if (xmlStrEqual(name, result->name))
+		return result;
+	}
+	sheet = xsltNextImport(sheet);
+    }
+    return result;
+}
+
+
+/**
+ * xsltNewTemplate:
+ *
+ * Create a new XSLT Template
+ *
+ * Returns the newly allocated xsltTemplatePtr or NULL in case of error
+ */
+static xsltTemplatePtr
+xsltNewTemplate(void) {
+    xsltTemplatePtr cur;
+
+    cur = (xsltTemplatePtr) xmlMalloc(sizeof(xsltTemplate));
+    if (cur == NULL) {
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltNewTemplate : malloc failed\n");
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltTemplate));
+    cur->priority = XSLT_PAT_NO_PRIORITY;
+    return(cur);
+}
+
+/**
+ * xsltFreeTemplate:
+ * @template:  an XSLT template
+ *
+ * Free up the memory allocated by @template
+ */
+static void
+xsltFreeTemplate(xsltTemplatePtr template) {
+    if (template == NULL)
+	return;
+    if (template->match) xmlFree(template->match);
+    if (template->name) xmlFree(template->name);
+    if (template->nameURI) xmlFree(template->nameURI);
+/*
+    if (template->mode) xmlFree(template->mode);
+    if (template->modeURI) xmlFree(template->modeURI);
+ */
+    if (template->inheritedNs) xmlFree(template->inheritedNs);
+    memset(template, -1, sizeof(xsltTemplate));
+    xmlFree(template);
+}
+
+/**
+ * xsltFreeTemplateList:
+ * @template:  an XSLT template list
+ *
+ * Free up the memory allocated by all the elements of @template
+ */
+static void
+xsltFreeTemplateList(xsltTemplatePtr template) {
+    xsltTemplatePtr cur;
+
+    while (template != NULL) {
+	cur = template;
+	template = template->next;
+	xsltFreeTemplate(cur);
+    }
+}
+
+/**
+ * xsltNewStylesheet:
+ *
+ * Create a new XSLT Stylesheet
+ *
+ * Returns the newly allocated xsltStylesheetPtr or NULL in case of error
+ */
+xsltStylesheetPtr
+xsltNewStylesheet(void) {
+    xsltStylesheetPtr cur;
+#ifdef XSLT_REFACTORED
+    xsltCompilerCtxtPtr cctxt;
+#endif
+
+    cur = (xsltStylesheetPtr) xmlMalloc(sizeof(xsltStylesheet));
+    if (cur == NULL) {
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltNewStylesheet : malloc failed\n");
+	return(NULL);
+    }
+    memset(cur, 0, sizeof(xsltStylesheet));
+#ifdef XSLT_REFACTORED
+    /*
+    * Create the compiler context.
+    */
+    cctxt = (xsltCompilerCtxtPtr) xmlMalloc(sizeof(xsltCompilerCtxt));
+    if (cctxt == NULL) {
+	xmlFree(cur);
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltNewStylesheet : malloc of compilation context failed\n");
+	return(NULL);
+    }
+    memset(cctxt, 0, sizeof(xsltCompilerCtxt));
+    cur->compCtxt = (void *) cctxt;
+    cctxt->sheet = cur;
+#endif
+    /*
+    * TODO: This here seems to be the best place where to create
+    *   the compilation context, right?
+    */
+    	    
+    cur->omitXmlDeclaration = -1;
+    cur->standalone = -1;
+    cur->decimalFormat = xsltNewDecimalFormat(NULL);
+    cur->indent = -1;
+    cur->errors = 0;
+    cur->warnings = 0;
+    cur->exclPrefixNr = 0;
+    cur->exclPrefixMax = 0;
+    cur->exclPrefixTab = NULL;
+    cur->extInfos = NULL;
+    cur->extrasNr = 0;
+    cur->internalized = 1;
+    cur->literal_result = 0;
+    cur->dict = xmlDictCreate();
+#ifdef WITH_XSLT_DEBUG
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "creating dictionary for stylesheet\n");
+#endif
+
+    xsltInit();
+
+    return(cur);
+}
+
+/**
+ * xsltAllocateExtra:
+ * @style:  an XSLT stylesheet
+ *
+ * Allocate an extra runtime information slot statically while compiling
+ * the stylesheet and return its number
+ *
+ * Returns the number of the slot
+ */
+int
+xsltAllocateExtra(xsltStylesheetPtr style)
+{
+    return(style->extrasNr++);
+}
+
+/**
+ * xsltAllocateExtraCtxt:
+ * @ctxt:  an XSLT transformation context
+ *
+ * Allocate an extra runtime information slot at run-time
+ * and return its number
+ * This make sure there is a slot ready in the transformation context
+ *
+ * Returns the number of the slot
+ */
+int
+xsltAllocateExtraCtxt(xsltTransformContextPtr ctxt)
+{
+    if (ctxt->extrasNr >= ctxt->extrasMax) {
+	int i;
+	if (ctxt->extrasNr == 0) {
+	    ctxt->extrasMax = 20;
+	    ctxt->extras = (xsltRuntimeExtraPtr)
+		xmlMalloc(ctxt->extrasMax * sizeof(xsltRuntimeExtra));
+	    if (ctxt->extras == NULL) {
+		xmlGenericError(xmlGenericErrorContext,
+			"xsltAllocateExtraCtxt: out of memory\n");
+		ctxt->state = XSLT_STATE_ERROR;
+		return(0);
+	    }
+	    for (i = 0;i < ctxt->extrasMax;i++) {
+		ctxt->extras[i].info = NULL;
+		ctxt->extras[i].deallocate = NULL;
+		ctxt->extras[i].val.ptr = NULL;
+	    }
+
+	} else {
+	    xsltRuntimeExtraPtr tmp;
+
+	    ctxt->extrasMax += 100;
+	    tmp = (xsltRuntimeExtraPtr) xmlRealloc(ctxt->extras,
+		            ctxt->extrasMax * sizeof(xsltRuntimeExtra));
+	    if (tmp == NULL) {
+		xmlGenericError(xmlGenericErrorContext,
+			"xsltAllocateExtraCtxt: out of memory\n");
+		ctxt->state = XSLT_STATE_ERROR;
+		return(0);
+	    }
+	    ctxt->extras = tmp;
+	    for (i = ctxt->extrasNr;i < ctxt->extrasMax;i++) {
+		ctxt->extras[i].info = NULL;
+		ctxt->extras[i].deallocate = NULL;
+		ctxt->extras[i].val.ptr = NULL;
+	    }
+	}
+    }
+    return(ctxt->extrasNr++);
+}
+
+/**
+ * xsltFreeStylesheetList:
+ * @sheet:  an XSLT stylesheet list
+ *
+ * Free up the memory allocated by the list @sheet
+ */
+static void
+xsltFreeStylesheetList(xsltStylesheetPtr sheet) {
+    xsltStylesheetPtr next;
+
+    while (sheet != NULL) {
+	next = sheet->next;
+	xsltFreeStylesheet(sheet);
+	sheet = next;
+    }
+}
+
+#ifdef XSLT_REFACTORED
+/**
+ * xsltFreeInScopeNamespaces:
+ * @sheet:  an XSLT stylesheet
+ *
+ * Frees the list of in-scope namespace lists.
+ */
+static void
+xsltFreeInScopeNamespaces(xsltStylesheetPtr sheet)
+{
+    if (sheet->inScopeNamespaces == NULL)
+	return;
+    else {
+	int i;
+	xsltNsListPtr nsi;
+	xsltPointerListPtr list = sheet->inScopeNamespaces;
+
+	for (i = 0; i < list->number; i++) {
+	    /*
+	    * REVISIT TODO: Free info of in-scope namespaces.
+	    */
+	    nsi = (xsltNsListPtr) list->items[i];
+	    if (nsi->list != NULL)
+		xmlFree(nsi->list);
+	    xmlFree(nsi);
+	}
+	xsltPointerListFree(list);
+	sheet->inScopeNamespaces = NULL;
+    }
+    return;
+}
+
+static void
+xsltCompilerCtxtFree(xsltCompilerCtxtPtr cctxt)
+{    
+    if (cctxt == NULL)
+	return;
+    /*
+    * Free node-infos.
+    */
+    if (cctxt->inodeList != NULL) {
+	xsltCompilerNodeInfoPtr tmp, cur = cctxt->inodeList;
+	while (cur != NULL) {
+	    tmp = cur;
+	    cur = cur->next;
+	    xmlFree(tmp);
+	}
+    }
+    xmlFree(cctxt);
+}
+#endif
+
+/**
+ * xsltFreeStylesheet:
+ * @sheet:  an XSLT stylesheet
+ *
+ * Free up the memory allocated by @sheet
+ */
+void
+xsltFreeStylesheet(xsltStylesheetPtr sheet)
+{
+    if (sheet == NULL)
+        return;
+
+    xsltFreeKeys(sheet);
+    xsltFreeExts(sheet);
+    xsltFreeTemplateHashes(sheet);
+    xsltFreeDecimalFormatList(sheet);
+    xsltFreeTemplateList(sheet->templates);
+    xsltFreeAttributeSetsHashes(sheet);
+    xsltFreeNamespaceAliasHashes(sheet);
+#ifdef XSLT_REFACTORED
+    if (sheet->inScopeNamespaces != NULL)
+	xsltFreeInScopeNamespaces(sheet);
+#endif
+    xsltFreeStyleDocuments(sheet);
+    xsltFreeStylePreComps(sheet);
+    xsltShutdownExts(sheet);
+    if (sheet->doc != NULL)
+        xmlFreeDoc(sheet->doc);
+    if (sheet->variables != NULL)
+        xsltFreeStackElemList(sheet->variables);
+    if (sheet->cdataSection != NULL)
+        xmlHashFree(sheet->cdataSection, NULL);
+    if (sheet->stripSpaces != NULL)
+        xmlHashFree(sheet->stripSpaces, NULL);
+    if (sheet->nsHash != NULL)
+        xmlHashFree(sheet->nsHash, NULL);
+
+    if (sheet->exclPrefixTab != NULL)
+        xmlFree(sheet->exclPrefixTab);
+    if (sheet->method != NULL)
+        xmlFree(sheet->method);
+    if (sheet->methodURI != NULL)
+        xmlFree(sheet->methodURI);
+    if (sheet->version != NULL)
+        xmlFree(sheet->version);
+    if (sheet->encoding != NULL)
+        xmlFree(sheet->encoding);
+    if (sheet->doctypePublic != NULL)
+        xmlFree(sheet->doctypePublic);
+    if (sheet->doctypeSystem != NULL)
+        xmlFree(sheet->doctypeSystem);
+    if (sheet->mediaType != NULL)
+        xmlFree(sheet->mediaType);
+    if (sheet->attVTs)
+        xsltFreeAVTList(sheet->attVTs);
+
+    if (sheet->imports != NULL)
+        xsltFreeStylesheetList(sheet->imports);
+#ifdef XSLT_REFACTORED
+    /*
+    * TODO: Just a paranoid cleanup, in case the compilation
+    *   context was not freed after the compilation.
+    */
+    if (sheet->compCtxt != NULL) {
+	xsltCompilerCtxtFree((xsltCompilerCtxtPtr) sheet->compCtxt);
+    }
+#endif
+
+#ifdef WITH_XSLT_DEBUG
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "freeing dictionary from stylesheet\n");
+#endif
+    xmlDictFree(sheet->dict);
+
+    memset(sheet, -1, sizeof(xsltStylesheet));
+    xmlFree(sheet);
+}
+
+/************************************************************************
+ *									*
+ *		Parsing of an XSLT Stylesheet				*
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltGetInheritedNsList:
+ * @style:  the stylesheet
+ * @template: the template
+ * @node:  the current node
+ *
+ * Search all the namespace applying to a given element except the ones 
+ * from excluded output prefixes currently in scope. Initialize the
+ * template inheritedNs list with it.
+ *
+ * Returns the number of entries found
+ */
+static int
+xsltGetInheritedNsList(xsltStylesheetPtr style,
+	               xsltTemplatePtr template,
+	               xmlNodePtr node)
+{
+    xmlNsPtr cur;
+    xmlNsPtr *ret = NULL;
+    int nbns = 0;
+    int maxns = 10;
+    int i;
+
+    /*
+    * TODO: This will gather the ns-decls of elements even if
+    * outside xsl:stylesheet. Example:
+    * <doc xmlns:foo="urn:test:foo">
+    *  	<xsl:stylesheet ...    
+    * </doc>
+    * Will have foo="urn:test:foo" in the list.
+    * Is this a bug?
+    */
+
+    if ((style == NULL) || (template == NULL) || (node == NULL) ||
+	(template->inheritedNsNr != 0) || (template->inheritedNs != NULL))
+	return(0);
+    while (node != NULL) {
+        if (node->type == XML_ELEMENT_NODE) {
+            cur = node->nsDef;
+            while (cur != NULL) {
+		if (xmlStrEqual(cur->href, XSLT_NAMESPACE))
+		    goto skip_ns;
+		if ((cur->prefix != NULL) &&
+		    (xsltCheckExtPrefix(style, cur->prefix)))
+		    goto skip_ns;
+		/*
+		* Check if this namespace was excluded.
+		* Note that at this point only the exclusions defined
+		* on the topmost stylesheet element are in the exclusion-list.
+		*/
+		for (i = 0;i < style->exclPrefixNr;i++) {
+		    if (xmlStrEqual(cur->href, style->exclPrefixTab[i]))
+			goto skip_ns;
+		}
+                if (ret == NULL) {
+                    ret =
+                        (xmlNsPtr *) xmlMalloc((maxns + 1) *
+                                               sizeof(xmlNsPtr));
+                    if (ret == NULL) {
+                        xmlGenericError(xmlGenericErrorContext,
+                                        "xsltGetInheritedNsList : out of memory!\n");
+                        return(0);
+                    }
+                    ret[nbns] = NULL;
+                }
+		/*
+		* Skip shadowed namespace bindings.
+		*/
+                for (i = 0; i < nbns; i++) {
+                    if ((cur->prefix == ret[i]->prefix) ||
+                        (xmlStrEqual(cur->prefix, ret[i]->prefix)))
+                        break;
+                }
+                if (i >= nbns) {
+                    if (nbns >= maxns) {
+                        maxns *= 2;
+                        ret = (xmlNsPtr *) xmlRealloc(ret,
+                                                      (maxns +
+                                                       1) *
+                                                      sizeof(xmlNsPtr));
+                        if (ret == NULL) {
+                            xmlGenericError(xmlGenericErrorContext,
+                                            "xsltGetInheritedNsList : realloc failed!\n");
+                            return(0);
+                        }
+                    }
+                    ret[nbns++] = cur;
+                    ret[nbns] = NULL;
+                }
+skip_ns:
+                cur = cur->next;
+            }
+        }
+        node = node->parent;
+    }
+    if (nbns != 0) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "template has %d inherited namespaces\n", nbns);
+#endif
+	template->inheritedNsNr = nbns;
+	template->inheritedNs = ret;
+    }
+    return (nbns);
+}
+
+/**
+ * xsltParseStylesheetOutput:
+ * @style:  the XSLT stylesheet
+ * @cur:  the "output" element
+ *
+ * parse an XSLT stylesheet output element and record
+ * information related to the stylesheet output
+ */
+
+void
+xsltParseStylesheetOutput(xsltStylesheetPtr style, xmlNodePtr cur)
+{
+    xmlChar *elements,
+     *prop;
+    xmlChar *element,
+     *end;
+
+    if ((cur == NULL) || (style == NULL))
+        return;
+   
+    prop = xmlGetNsProp(cur, (const xmlChar *) "version", NULL);
+    if (prop != NULL) {
+        if (style->version != NULL)
+            xmlFree(style->version);
+        style->version = prop;
+    }
+
+    prop = xmlGetNsProp(cur, (const xmlChar *) "encoding", NULL);
+    if (prop != NULL) {
+        if (style->encoding != NULL)
+            xmlFree(style->encoding);
+        style->encoding = prop;
+    }
+
+    /* relaxed to support xt:document
+    * TODO KB: What does "relaxed to support xt:document" mean?
+    */
+    prop = xmlGetNsProp(cur, (const xmlChar *) "method", NULL);
+    if (prop != NULL) {
+        const xmlChar *URI;
+
+        if (style->method != NULL)
+            xmlFree(style->method);
+        style->method = NULL;
+        if (style->methodURI != NULL)
+            xmlFree(style->methodURI);
+        style->methodURI = NULL;
+
+	URI = xsltGetQNameURI(cur, &prop);
+	if (prop == NULL) {
+	    if (style != NULL) style->errors++;
+	} else if (URI == NULL) {
+            if ((xmlStrEqual(prop, (const xmlChar *) "xml")) ||
+                (xmlStrEqual(prop, (const xmlChar *) "html")) ||
+                (xmlStrEqual(prop, (const xmlChar *) "text"))) {
+                style->method = prop;
+            } else {
+		xsltTransformError(NULL, style, cur,
+                                 "invalid value for method: %s\n", prop);
+                if (style != NULL) style->warnings++;
+            }
+	} else {
+	    style->method = prop;
+	    style->methodURI = xmlStrdup(URI);
+	}
+    }
+
+    prop = xmlGetNsProp(cur, (const xmlChar *) "doctype-system", NULL);
+    if (prop != NULL) {
+        if (style->doctypeSystem != NULL)
+            xmlFree(style->doctypeSystem);
+        style->doctypeSystem = prop;
+    }
+
+    prop = xmlGetNsProp(cur, (const xmlChar *) "doctype-public", NULL);
+    if (prop != NULL) {
+        if (style->doctypePublic != NULL)
+            xmlFree(style->doctypePublic);
+        style->doctypePublic = prop;
+    }
+
+    prop = xmlGetNsProp(cur, (const xmlChar *) "standalone", NULL);
+    if (prop != NULL) {
+        if (xmlStrEqual(prop, (const xmlChar *) "yes")) {
+            style->standalone = 1;
+        } else if (xmlStrEqual(prop, (const xmlChar *) "no")) {
+            style->standalone = 0;
+        } else {
+	    xsltTransformError(NULL, style, cur,
+                             "invalid value for standalone: %s\n", prop);
+            if (style != NULL) style->warnings++;
+        }
+        xmlFree(prop);
+    }
+
+    prop = xmlGetNsProp(cur, (const xmlChar *) "indent", NULL);
+    if (prop != NULL) {
+        if (xmlStrEqual(prop, (const xmlChar *) "yes")) {
+            style->indent = 1;
+        } else if (xmlStrEqual(prop, (const xmlChar *) "no")) {
+            style->indent = 0;
+        } else {
+	    xsltTransformError(NULL, style, cur,
+                             "invalid value for indent: %s\n", prop);
+            if (style != NULL) style->warnings++;
+        }
+        xmlFree(prop);
+    }
+
+    prop = xmlGetNsProp(cur, (const xmlChar *) "omit-xml-declaration", NULL);
+    if (prop != NULL) {
+        if (xmlStrEqual(prop, (const xmlChar *) "yes")) {
+            style->omitXmlDeclaration = 1;
+        } else if (xmlStrEqual(prop, (const xmlChar *) "no")) {
+            style->omitXmlDeclaration = 0;
+        } else {
+	    xsltTransformError(NULL, style, cur,
+                             "invalid value for omit-xml-declaration: %s\n",
+                             prop);
+            if (style != NULL) style->warnings++;
+        }
+        xmlFree(prop);
+    }
+
+    elements = xmlGetNsProp(cur, (const xmlChar *) "cdata-section-elements",
+	NULL);
+    if (elements != NULL) {
+        if (style->cdataSection == NULL)
+            style->cdataSection = xmlHashCreate(10);
+        if (style->cdataSection == NULL)
+            return;
+
+        element = elements;
+        while (*element != 0) {
+            while (IS_BLANK(*element))
+                element++;
+            if (*element == 0)
+                break;
+            end = element;
+            while ((*end != 0) && (!IS_BLANK(*end)))
+                end++;
+            element = xmlStrndup(element, end - element);
+            if (element) {
+		const xmlChar *URI;
+#ifdef WITH_XSLT_DEBUG_PARSING
+                xsltGenericDebug(xsltGenericDebugContext,
+                                 "add cdata section output element %s\n",
+                                 element);
+#endif
+
+		URI = xsltGetQNameURI(cur, &element);
+		if (element == NULL) {
+		    if (style != NULL) style->errors++;
+		} else {
+		    xmlNsPtr ns;
+		    
+		    xmlHashAddEntry2(style->cdataSection, element, URI,
+			             (void *) "cdata");
+		    /*
+		     * if prefix is NULL, we must check whether it's
+		     * necessary to also put in the name of the default
+		     * namespace.
+		     */
+		    if (URI == NULL) {
+		        ns = xmlSearchNs(style->doc, cur, NULL);
+			if (ns != NULL)  
+			    xmlHashAddEntry2(style->cdataSection, element,
+			        ns->href, (void *) "cdata");
+		    }
+		    xmlFree(element);
+		}
+            }
+            element = end;
+        }
+        xmlFree(elements);
+    }
+
+    prop = xmlGetNsProp(cur, (const xmlChar *) "media-type", NULL);
+    if (prop != NULL) {
+	if (style->mediaType)
+	    xmlFree(style->mediaType);
+	style->mediaType = prop;
+    }
+}
+
+/**
+ * xsltParseStylesheetDecimalFormat:
+ * @style:  the XSLT stylesheet
+ * @cur:  the "decimal-format" element
+ *
+ * <!-- Category: top-level-element -->
+ * <xsl:decimal-format
+ *   name = qname, decimal-separator = char, grouping-separator = char,
+ *   infinity = string, minus-sign = char, NaN = string, percent = char
+ *   per-mille = char, zero-digit = char, digit = char,
+ * pattern-separator = char />
+ *
+ * parse an XSLT stylesheet decimal-format element and
+ * and record the formatting characteristics
+ */
+static void
+xsltParseStylesheetDecimalFormat(xsltStylesheetPtr style, xmlNodePtr cur)
+{
+    xmlChar *prop;
+    xsltDecimalFormatPtr format;
+    xsltDecimalFormatPtr iter;
+    
+    if ((cur == NULL) || (style == NULL))
+	return;
+
+    format = style->decimalFormat;
+    
+    prop = xmlGetNsProp(cur, BAD_CAST("name"), NULL);
+    if (prop != NULL) {
+	format = xsltDecimalFormatGetByName(style, prop);
+	if (format != NULL) {
+	    xsltTransformError(NULL, style, cur,
+	 "xsltParseStylestyleDecimalFormat: %s already exists\n", prop);
+	    if (style != NULL) style->warnings++;
+	    return;
+	}
+	format = xsltNewDecimalFormat(prop);
+	if (format == NULL) {
+	    xsltTransformError(NULL, style, cur,
+     "xsltParseStylestyleDecimalFormat: failed creating new decimal-format\n");
+	    if (style != NULL) style->errors++;
+	    return;
+	}
+	/* Append new decimal-format structure */
+	for (iter = style->decimalFormat; iter->next; iter = iter->next)
+	    ;
+	if (iter)
+	    iter->next = format;
+    }
+
+    prop = xmlGetNsProp(cur, (const xmlChar *)"decimal-separator", NULL);
+    if (prop != NULL) {
+	if (format->decimalPoint != NULL) xmlFree(format->decimalPoint);
+	format->decimalPoint  = prop;
+    }
+    
+    prop = xmlGetNsProp(cur, (const xmlChar *)"grouping-separator", NULL);
+    if (prop != NULL) {
+	if (format->grouping != NULL) xmlFree(format->grouping);
+	format->grouping  = prop;
+    }
+
+    prop = xmlGetNsProp(cur, (const xmlChar *)"infinity", NULL);
+    if (prop != NULL) {
+	if (format->infinity != NULL) xmlFree(format->infinity);
+	format->infinity  = prop;
+    }
+    
+    prop = xmlGetNsProp(cur, (const xmlChar *)"minus-sign", NULL);
+    if (prop != NULL) {
+	if (format->minusSign != NULL) xmlFree(format->minusSign);
+	format->minusSign  = prop;
+    }
+    
+    prop = xmlGetNsProp(cur, (const xmlChar *)"NaN", NULL);
+    if (prop != NULL) {
+	if (format->noNumber != NULL) xmlFree(format->noNumber);
+	format->noNumber  = prop;
+    }
+    
+    prop = xmlGetNsProp(cur, (const xmlChar *)"percent", NULL);
+    if (prop != NULL) {
+	if (format->percent != NULL) xmlFree(format->percent);
+	format->percent  = prop;
+    }
+    
+    prop = xmlGetNsProp(cur, (const xmlChar *)"per-mille", NULL);
+    if (prop != NULL) {
+	if (format->permille != NULL) xmlFree(format->permille);
+	format->permille  = prop;
+    }
+    
+    prop = xmlGetNsProp(cur, (const xmlChar *)"zero-digit", NULL);
+    if (prop != NULL) {
+	if (format->zeroDigit != NULL) xmlFree(format->zeroDigit);
+	format->zeroDigit  = prop;
+    }
+    
+    prop = xmlGetNsProp(cur, (const xmlChar *)"digit", NULL);
+    if (prop != NULL) {
+	if (format->digit != NULL) xmlFree(format->digit);
+	format->digit  = prop;
+    }
+    
+    prop = xmlGetNsProp(cur, (const xmlChar *)"pattern-separator", NULL);
+    if (prop != NULL) {
+	if (format->patternSeparator != NULL) xmlFree(format->patternSeparator);
+	format->patternSeparator  = prop;
+    }
+}
+
+/**
+ * xsltParseStylesheetPreserveSpace:
+ * @style:  the XSLT stylesheet
+ * @cur:  the "preserve-space" element
+ *
+ * parse an XSLT stylesheet preserve-space element and record
+ * elements needing preserving
+ */
+
+static void
+xsltParseStylesheetPreserveSpace(xsltStylesheetPtr style, xmlNodePtr cur) {
+    xmlChar *elements;
+    xmlChar *element, *end;
+
+    if ((cur == NULL) || (style == NULL))
+	return;
+
+    elements = xmlGetNsProp(cur, (const xmlChar *)"elements", NULL);
+    if (elements == NULL) {
+	xsltTransformError(NULL, style, cur,
+	    "xsltParseStylesheetPreserveSpace: missing elements attribute\n");
+	if (style != NULL) style->warnings++;
+	return;
+    }
+
+    if (style->stripSpaces == NULL)
+	style->stripSpaces = xmlHashCreate(10);
+    if (style->stripSpaces == NULL)
+	return;
+
+    element = elements;
+    while (*element != 0) {
+	while (IS_BLANK(*element)) element++;
+	if (*element == 0)
+	    break;
+        end = element;
+	while ((*end != 0) && (!IS_BLANK(*end))) end++;
+	element = xmlStrndup(element, end - element);
+	if (element) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+	    xsltGenericDebug(xsltGenericDebugContext,
+		"add preserved space element %s\n", element);
+#endif
+	    if (xmlStrEqual(element, (const xmlChar *)"*")) {
+		style->stripAll = -1;
+	    } else {
+		const xmlChar *URI;
+
+                URI = xsltGetQNameURI(cur, &element);
+
+		xmlHashAddEntry2(style->stripSpaces, element, URI,
+				(xmlChar *) "preserve");
+	    }
+	    xmlFree(element);
+	}
+	element = end;
+    }
+    xmlFree(elements);
+}
+
+/**
+ * xsltParseStylesheetExtPrefix:
+ * @style:  the XSLT stylesheet
+ * @template:  the "extension-element-prefixes" prefix
+ *
+ * parse an XSLT stylesheet's "extension-element-prefix" attribute value
+ * and register the namespaces of extension elements.
+ * SPEC "A namespace is designated as an extension namespace by using
+ *   an extension-element-prefixes attribute on:
+ *   1) an xsl:stylesheet element
+ *   2) TODO: an xsl:extension-element-prefixes attribute on a
+ *      literal result element 
+ *   3) TODO: an extension element."
+ */
+
+static void
+xsltParseStylesheetExtPrefix(xsltStylesheetPtr style, xmlNodePtr cur,
+			     int isXsltElem) {
+    xmlChar *prefixes;
+    xmlChar *prefix, *end;
+
+    if ((cur == NULL) || (style == NULL))
+	return;
+
+    if (isXsltElem) {
+	/* For xsl:stylesheet/xsl:transform. */
+	prefixes = xmlGetNsProp(cur,
+	    (const xmlChar *)"extension-element-prefixes", NULL);
+    } else {
+	/* For literal result elements and extension elements. */
+	prefixes = xmlGetNsProp(cur,
+	    (const xmlChar *)"extension-element-prefixes", XSLT_NAMESPACE);
+    }
+    if (prefixes == NULL) {
+	return;
+    }
+
+    prefix = prefixes;
+    while (*prefix != 0) {
+	while (IS_BLANK(*prefix)) prefix++;
+	if (*prefix == 0)
+	    break;
+        end = prefix;
+	while ((*end != 0) && (!IS_BLANK(*end))) end++;
+	prefix = xmlStrndup(prefix, end - prefix);
+	if (prefix) {
+	    xmlNsPtr ns;
+
+	    if (xmlStrEqual(prefix, (const xmlChar *)"#default"))
+		ns = xmlSearchNs(style->doc, cur, NULL);
+	    else
+		ns = xmlSearchNs(style->doc, cur, prefix);
+	    if (ns == NULL) {
+		xsltTransformError(NULL, style, cur,
+	    "xsl:extension-element-prefix : undefined namespace %s\n",
+	                         prefix);
+		if (style != NULL) style->warnings++;
+	    } else {
+#ifdef WITH_XSLT_DEBUG_PARSING
+		xsltGenericDebug(xsltGenericDebugContext,
+		    "add extension prefix %s\n", prefix);
+#endif
+		xsltRegisterExtPrefix(style, prefix, ns->href);
+	    }
+	    xmlFree(prefix);
+	}
+	prefix = end;
+    }
+    xmlFree(prefixes);
+}
+
+/**
+ * xsltParseStylesheetStripSpace:
+ * @style:  the XSLT stylesheet
+ * @cur:  the "strip-space" element
+ *
+ * parse an XSLT stylesheet's strip-space element and record
+ * the elements needing stripping
+ */
+
+static void
+xsltParseStylesheetStripSpace(xsltStylesheetPtr style, xmlNodePtr cur) {
+    xmlChar *elements;
+    xmlChar *element, *end;
+
+    if ((cur == NULL) || (style == NULL))
+	return;
+
+    elements = xmlGetNsProp(cur, (const xmlChar *)"elements", NULL);
+    if (elements == NULL) {
+	xsltTransformError(NULL, style, cur,
+	    "xsltParseStylesheetStripSpace: missing elements attribute\n");
+	if (style != NULL) style->warnings++;
+	return;
+    }
+
+    if (style->stripSpaces == NULL)
+	style->stripSpaces = xmlHashCreate(10);
+    if (style->stripSpaces == NULL)
+	return;
+
+    element = elements;
+    while (*element != 0) {
+	while (IS_BLANK(*element)) element++;
+	if (*element == 0)
+	    break;
+        end = element;
+	while ((*end != 0) && (!IS_BLANK(*end))) end++;
+	element = xmlStrndup(element, end - element);
+	if (element) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+	    xsltGenericDebug(xsltGenericDebugContext,
+		"add stripped space element %s\n", element);
+#endif
+	    if (xmlStrEqual(element, (const xmlChar *)"*")) {
+		style->stripAll = 1;
+	    } else {
+		const xmlChar *URI;
+
+                URI = xsltGetQNameURI(cur, &element);
+
+		xmlHashAddEntry2(style->stripSpaces, element, URI,
+			        (xmlChar *) "strip");
+	    }
+	    xmlFree(element);
+	}
+	element = end;
+    }
+    xmlFree(elements);
+}
+
+/**
+ * xsltParseStylesheetExcludePrefix:
+ * @style:  the XSLT stylesheet
+ * @cur:  the current point in the stylesheet
+ *
+ * parse an XSLT stylesheet exclude prefix and record
+ * namespaces needing stripping
+ *
+ * Returns the number of Excluded prefixes added at that level
+ */
+
+static int
+xsltParseStylesheetExcludePrefix(xsltStylesheetPtr style, xmlNodePtr cur,
+				 int isXsltElem)
+{
+    int nb = 0;
+    xmlChar *prefixes;
+    xmlChar *prefix, *end;
+
+    if ((cur == NULL) || (style == NULL))
+	return(0);
+
+    if (isXsltElem)
+	prefixes = xmlGetNsProp(cur,
+	    (const xmlChar *)"exclude-result-prefixes", NULL);
+    else
+	prefixes = xmlGetNsProp(cur,
+	    (const xmlChar *)"exclude-result-prefixes", XSLT_NAMESPACE);
+
+    if (prefixes == NULL) {
+	return(0);
+    }
+
+    prefix = prefixes;
+    while (*prefix != 0) {
+	while (IS_BLANK(*prefix)) prefix++;
+	if (*prefix == 0)
+	    break;
+        end = prefix;
+	while ((*end != 0) && (!IS_BLANK(*end))) end++;
+	prefix = xmlStrndup(prefix, end - prefix);
+	if (prefix) {
+	    xmlNsPtr ns;
+
+	    if (xmlStrEqual(prefix, (const xmlChar *)"#default"))
+		ns = xmlSearchNs(style->doc, cur, NULL);
+	    else
+		ns = xmlSearchNs(style->doc, cur, prefix);
+	    if (ns == NULL) {
+		xsltTransformError(NULL, style, cur,
+	    "xsl:exclude-result-prefixes : undefined namespace %s\n",
+	                         prefix);
+		if (style != NULL) style->warnings++;
+	    } else {
+#ifdef WITH_XSLT_DEBUG_PARSING
+		xsltGenericDebug(xsltGenericDebugContext,
+		    "exclude result prefix %s\n", prefix);
+#endif
+		exclPrefixPush(style, (xmlChar *) ns->href);
+		nb++;
+	    }
+	    xmlFree(prefix);
+	}
+	prefix = end;
+    }
+    xmlFree(prefixes);
+    return(nb);
+}
+
+#ifdef XSLT_REFACTORED
+
+static xsltCompilerNodeInfoPtr
+xsltCompilerNodePush(xsltCompilerCtxtPtr cctxt, xmlNodePtr node)
+{    
+    if ((cctxt->inode != NULL) && (cctxt->inode->next != NULL)) {	
+	cctxt->inode = cctxt->inode->next;
+    } else if ((cctxt->inode == NULL) && (cctxt->inodeList != NULL)) {
+	cctxt->inode = cctxt->inodeList;	
+    } else {
+	/*
+	* Create a new node-info.
+	*/
+	cctxt->inode = (xsltCompilerNodeInfoPtr)
+	    xmlMalloc(sizeof(xsltCompilerNodeInfo));
+	if (cctxt->inode == NULL) {
+	    xsltTransformError(NULL, cctxt->sheet, NULL,
+		"xsltCompilerNodePush: malloc failed.\n");
+	    return(NULL);
+	}
+	memset(cctxt->inode, 0, sizeof(xsltCompilerNodeInfo));
+	if (cctxt->inodeList == NULL)
+	    cctxt->inodeList = cctxt->inode;
+	else {
+	    cctxt->inodeLast->next = cctxt->inode;
+	    cctxt->inode->prev = cctxt->inodeLast;
+	}
+	cctxt->inodeLast = cctxt->inode;
+    }
+    /*
+    * REVISIT TODO: Keep the reset always complete.
+    */
+    cctxt->depth++;
+    cctxt->inode->depth = cctxt->depth;
+    cctxt->inode->templ = NULL;
+    cctxt->inode->item = NULL;
+    cctxt->inode->node = node;
+    /*
+    * Inherit the list of in-scope namespaces.
+    */
+    if (cctxt->inode->prev != NULL)
+	cctxt->inode->inScopeNS = cctxt->inode->prev->inScopeNS;
+    else
+	cctxt->inode->inScopeNS = NULL;
+    
+    return(cctxt->inode);
+}
+
+static void
+xsltCompilerNodePop(xsltCompilerCtxtPtr cctxt, xmlNodePtr node)
+{    
+    if (cctxt->inode == NULL) {
+	xmlGenericError(xmlGenericErrorContext,
+	    "xsltCompilerNodePop: Top-node mismatch.\n");
+	return;
+    }    	
+    if (cctxt->inode->node != node)
+	xmlGenericError(xmlGenericErrorContext,
+	"xsltCompilerNodePop: Node mismatch.\n");
+    if (cctxt->inode->depth != cctxt->depth)
+	xmlGenericError(xmlGenericErrorContext,
+	"xsltCompilerNodePop: Depth mismatch.\n");
+    cctxt->depth--;
+    cctxt->inode = cctxt->inode->prev;
+}
+
+#endif
+
+/**
+ * xsltPrecomputeStylesheet:
+ * @style:  the XSLT stylesheet
+ * @cur:  the current child list
+ *
+ * Clean-up the stylesheet content from unwanted ignorable blank nodes
+ * and run the preprocessing of all XSLT constructs.
+ *
+ * and process xslt:text
+ *
+ * URGENT TODO: In order to avoid separation of the parsing of the stylesheet's
+ *   node-tree, this should either only strip whitespace-only text-nodes,
+ *   or it should be merged completely with the stylesheet-parsing
+ *   functions (e.g. xsltParseStylesheetTop()).
+ */
+static void
+xsltPrecomputeStylesheet(xsltStylesheetPtr style, xmlNodePtr cur) {
+    xmlNodePtr delete;
+    int internalize = 0;
+#ifdef XSLT_REFACTORED
+    xsltCompilerCtxtPtr cctxt;
+#endif
+
+    if ((style == NULL) || (cur == NULL)
+#ifdef XSLT_REFACTORED
+	||(style->compCtxt == NULL)
+#endif
+	)
+        return;
+
+    if ((cur->doc != NULL) && (style->dict != NULL) &&
+        (cur->doc->dict == style->dict))
+	internalize = 1;
+    else
+        style->internalized = 0;
+#ifdef XSLT_REFACTORED
+    cctxt = (xsltCompilerCtxtPtr) style->compCtxt;    
+#endif
+    /*
+     * This content comes from the stylesheet
+     * For stylesheets, the set of whitespace-preserving
+     * element names consists of just xsl:text.
+     */
+    delete = NULL;
+    while (cur != NULL) {
+	if (delete != NULL) {
+#ifdef WITH_XSLT_DEBUG_BLANKS
+	    xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltPrecomputeStylesheet: removing ignorable blank node\n");
+#endif
+	    xmlUnlinkNode(delete);
+	    xmlFreeNode(delete);
+	    delete = NULL;
+	}
+	if (cur->type == XML_ELEMENT_NODE) {
+	    int exclPrefixes;	    
+
+#ifdef XSLT_REFACTORED
+	    xsltCompilerNodePush(cctxt, cur);
+#endif
+	    /*
+	     * Internalize attributes values.
+	     */
+	    if ((internalize) && (cur->properties != NULL)) {
+	        xmlAttrPtr prop = cur->properties;
+		xmlNodePtr txt;
+
+		while (prop != NULL) {
+		    txt = prop->children;
+		    if ((txt != NULL) && (txt->type == XML_TEXT_NODE) &&
+		        (txt->content != NULL) &&
+			(!xmlDictOwns(style->dict, txt->content))) {
+			xmlChar *tmp;
+
+			/*
+			 * internalize the text string, goal is to speed
+			 * up operations and minimize used space by compiled
+			 * stylesheets.
+			 */
+			tmp = (xmlChar *) xmlDictLookup(style->dict,
+			                                txt->content, -1);
+			if (tmp != txt->content) {
+			    xmlNodeSetContent(txt, NULL);
+			    txt->content = tmp;
+			}
+		    }
+		    prop = prop->next;
+		}
+	    }
+	    /*
+	    * TODO: "exclude-result-prefixes"
+	    *   SPEC 1.0:
+	    *   "exclude-result-prefixes" is only allowed on literal
+	    *   result elements and "xsl:exclude-result-prefixes" only
+	    *   on xsl:stylesheet/xsl:transform.
+	    *   SPEC 2.0:
+	    *   "There are a number of standard attributes
+	    *   that may appear on any XSLT element: specifically version,
+	    *   exclude-result-prefixes, extension-element-prefixes,
+	    *   xpath-default-namespace, default-collation, and use-when."
+	    */
+	    if (IS_XSLT_ELEM(cur)) {
+		exclPrefixes = 0;
+#ifdef XSLT_REFACTORED
+		if ((cctxt->depth == 0) && (cur->nsDef != NULL)) {
+		    /*
+		    * In every case, we need the in-scope namespaces of the
+		    * element, where the stylesheet is rooted at.
+		    * Otherwise we need to pre-compute the in-scope namespaces
+		    * only if there's a new ns-decl.
+		    */
+		    cctxt->inode->inScopeNS =
+			xsltCompilerGetInScopeNSInfo(cctxt, cur);
+		}
+#endif		
+		xsltStylePreCompute(style, cur);
+		if (IS_XSLT_NAME(cur, "text")) {
+		    for (;exclPrefixes > 0;exclPrefixes--)
+			exclPrefixPop(style);
+		    goto skip_children;
+		}
+	    } else {
+#ifdef XSLT_REFACTORED
+		if (cctxt->depth == 0)
+		    cctxt->inode->inScopeNS =
+			xsltCompilerGetInScopeNSInfo(cctxt, cur);
+#endif
+		exclPrefixes = xsltParseStylesheetExcludePrefix(style, cur, 0);
+	    }
+
+	    /*
+	     * Remove excluded prefixes
+	     * TODO BUG:
+	     *   This will incorrectly apply excluded-result-prefixes
+	     *   of the including stylesheet to the included stylesheet.
+	     *   We need to localize the list of excluded-prefixes for
+	     *   every processed stylesheet.
+	     * SPEC 1.0: "a subtree rooted at an xsl:stylesheet element
+	     *   does not include any stylesheets imported or included by
+	     *   children of that xsl:stylesheet element."
+	     */
+	    if ((cur->nsDef != NULL) && (style->exclPrefixNr > 0)) {
+		xmlNsPtr ns = cur->nsDef, prev = NULL, next;
+		xmlNodePtr root = NULL;
+		int i, moved;
+
+		root = xmlDocGetRootElement(cur->doc);
+		if ((root != NULL) && (root != cur)) {
+		    while (ns != NULL) {
+			moved = 0;
+			next = ns->next;
+			for (i = 0;i < style->exclPrefixNr;i++) {
+			    if ((ns->prefix != NULL) && 
+			        (xmlStrEqual(ns->href,
+					     style->exclPrefixTab[i]))) {
+				/*
+				 * Move the namespace definition on the root
+				 * element to avoid duplicating it without
+				 * loosing it.
+				 */
+				if (prev == NULL) {
+				    cur->nsDef = ns->next;
+				} else {
+				    prev->next = ns->next;
+				}
+				ns->next = root->nsDef;
+				root->nsDef = ns;
+				moved = 1;
+				break;
+			    }
+			}
+			if (moved == 0)
+			    prev = ns;
+			ns = next;
+		    }
+		}
+	    }
+
+	    /*
+	     * If we have prefixes locally, recurse and pop them up when
+	     * going back
+	     */
+	    if (exclPrefixes > 0) {
+		xsltPrecomputeStylesheet(style, cur->children);
+		for (;exclPrefixes > 0;exclPrefixes--)
+		    exclPrefixPop(style);
+		goto skip_children;
+	    }
+
+	} else if (cur->type == XML_TEXT_NODE) {
+	    if (IS_BLANK_NODE(cur)) {
+		if (xmlNodeGetSpacePreserve(cur) != 1) {
+		    delete = cur;
+		}
+	    } else if ((cur->content != NULL) && (internalize) &&
+	               (!xmlDictOwns(style->dict, cur->content))) {
+		xmlChar *tmp;
+
+		/*
+		 * internalize the text string, goal is to speed
+		 * up operations and minimize used space by compiled
+		 * stylesheets.
+		 */
+		tmp = (xmlChar *) xmlDictLookup(style->dict, cur->content, -1);
+		xmlNodeSetContent(cur, NULL);
+		cur->content = tmp;
+	    }
+	} else if ((cur->type != XML_ELEMENT_NODE) &&
+		   (cur->type != XML_CDATA_SECTION_NODE)) {
+	    delete = cur;
+	    goto skip_children;
+	}
+
+	/*
+	 * Skip to next node
+	 */
+	if (cur->children != NULL) {
+	    if ((cur->children->type != XML_ENTITY_DECL) &&
+		(cur->children->type != XML_ENTITY_REF_NODE) &&
+		(cur->children->type != XML_ENTITY_NODE)) {
+		cur = cur->children;
+		continue;
+	    }
+	}
+#ifdef XSLT_REFACTORED
+	if (cur->type == XML_ELEMENT_NODE) {
+	    /* Leaving the scope of an element-node. */
+	    xsltCompilerNodePop(cctxt, cur);
+	}
+#endif
+
+skip_children:
+	if (cur->next != NULL) {
+	    cur = cur->next;
+	    continue;
+	}	
+	do {
+
+	    cur = cur->parent;
+	    if (cur == NULL)
+		break;
+	    if (cur == (xmlNodePtr) style->doc) {
+		cur = NULL;
+		break;
+	    }
+	    if (cur->next != NULL) {
+		cur = cur->next;
+		break;
+	    }
+	} while (cur != NULL);
+    }
+    if (delete != NULL) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+	xsltGenericDebug(xsltGenericDebugContext,
+	 "xsltPrecomputeStylesheet: removing ignorable blank node\n");
+#endif
+	xmlUnlinkNode(delete);
+	xmlFreeNode(delete);
+	delete = NULL;
+    }
+}
+
+/**
+ * xsltGatherNamespaces:
+ * @style:  the XSLT stylesheet
+ *
+ * Browse the stylesheet and build the namspace hash table which
+ * will be used for XPath interpretation. If needed do a bit of normalization
+ */
+
+static void
+xsltGatherNamespaces(xsltStylesheetPtr style) {
+    xmlNodePtr cur;
+    const xmlChar *URI;
+
+    if (style == NULL)
+        return;
+    /* 
+     * TODO: basically if the stylesheet uses the same prefix for different
+     *       patterns, well they may be in problem, hopefully they will get
+     *       a warning first.
+     */
+    /*
+    * TODO: Eliminate the use of the hash for XPath expressions.
+    *   An expression should be evaluated in the context of the in-scope
+    *   namespaces; eliminate the restriction of an XML document to contain
+    *   no duplicate prefixes for different namespace names.
+    * 
+    */
+    cur = xmlDocGetRootElement(style->doc);
+    while (cur != NULL) {
+	if (cur->type == XML_ELEMENT_NODE) {
+	    xmlNsPtr ns = cur->nsDef;
+	    while (ns != NULL) {
+		if (ns->prefix != NULL) {
+		    if (style->nsHash == NULL) {
+			style->nsHash = xmlHashCreate(10);
+			if (style->nsHash == NULL) {
+			    xsltTransformError(NULL, style, cur,
+		 "xsltGatherNamespaces: failed to create hash table\n");
+			    style->errors++;
+			    return;
+			}
+		    }
+		    URI = xmlHashLookup(style->nsHash, ns->prefix);
+		    if ((URI != NULL) && (!xmlStrEqual(URI, ns->href))) {
+			xsltTransformError(NULL, style, cur,
+	     "Namespaces prefix %s used for multiple namespaces\n",ns->prefix);
+			style->warnings++;
+		    } else if (URI == NULL) {
+			xmlHashUpdateEntry(style->nsHash, ns->prefix,
+			    (void *) ns->href, (xmlHashDeallocator)xmlFree);
+
+#ifdef WITH_XSLT_DEBUG_PARSING
+			xsltGenericDebug(xsltGenericDebugContext,
+		 "Added namespace: %s mapped to %s\n", ns->prefix, ns->href);
+#endif
+		    }
+		}
+		ns = ns->next;
+	    }
+	}
+
+	/*
+	 * Skip to next node
+	 */
+	if (cur->children != NULL) {
+	    if (cur->children->type != XML_ENTITY_DECL) {
+		cur = cur->children;
+		continue;
+	    }
+	}
+	if (cur->next != NULL) {
+	    cur = cur->next;
+	    continue;
+	}
+	
+	do {
+	    cur = cur->parent;
+	    if (cur == NULL)
+		break;
+	    if (cur == (xmlNodePtr) style->doc) {
+		cur = NULL;
+		break;
+	    }
+	    if (cur->next != NULL) {
+		cur = cur->next;
+		break;
+	    }
+	} while (cur != NULL);
+    }
+}
+
+/**
+ * xsltParseTemplateContent:
+ * @style:  the XSLT stylesheet
+ * @templ:  the container node (can be a document for literal results)
+ *
+ * parse a template content-model
+ * Clean-up the template content from unwanted ignorable blank nodes
+ * and process xslt:text
+ */
+
+void
+xsltParseTemplateContent(xsltStylesheetPtr style, xmlNodePtr templ) {
+    xmlNodePtr cur, delete;
+    /*
+     * This content comes from the stylesheet
+     * For stylesheets, the set of whitespace-preserving
+     * element names consists of just xsl:text.
+     */
+    cur = templ->children;
+    delete = NULL;
+    while (cur != NULL) {
+	if (delete != NULL) {
+#ifdef WITH_XSLT_DEBUG_BLANKS
+	    xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltParseTemplateContent: removing text\n");
+#endif
+	    xmlUnlinkNode(delete);
+	    xmlFreeNode(delete);
+	    delete = NULL;
+	}
+	if (IS_XSLT_ELEM(cur)) {
+	    if (IS_XSLT_NAME(cur, "text")) {
+		if (cur->children != NULL) {
+		    xmlChar *prop;
+		    xmlNodePtr text = cur->children, next;
+		    int noesc = 0;
+			
+		    prop = xmlGetNsProp(cur,
+			(const xmlChar *)"disable-output-escaping",
+			NULL);
+		    if (prop != NULL) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+			xsltGenericDebug(xsltGenericDebugContext,
+			     "Disable escaping: %s\n", text->content);
+#endif
+			if (xmlStrEqual(prop, (const xmlChar *)"yes")) {
+			    noesc = 1;
+			} else if (!xmlStrEqual(prop,
+						(const xmlChar *)"no")){
+			    xsltTransformError(NULL, style, cur,
+	     "xsl:text: disable-output-escaping allows only yes or no\n");
+			    style->warnings++;
+
+			}
+			xmlFree(prop);
+		    }
+
+		    while (text != NULL) {
+			if (text->type == XML_COMMENT_NODE) {
+			    text = text->next;
+			    continue;
+			}
+			if ((text->type != XML_TEXT_NODE) &&
+			     (text->type != XML_CDATA_SECTION_NODE)) {
+			    xsltTransformError(NULL, style, cur,
+		 "xsltParseTemplateContent: xslt:text content problem\n");
+			    style->errors++;
+			    break;
+			}
+			if ((noesc) && (text->type != XML_CDATA_SECTION_NODE))
+			    text->name = xmlStringTextNoenc;
+			text = text->next;
+		    }
+
+		    /*
+		     * replace xsl:text by the list of childs
+		     */
+		    if (text == NULL) {
+			text = cur->children;
+			while (text != NULL) {
+			    if ((text->content != NULL) &&
+			        (!xmlDictOwns(style->dict, text->content))) {
+
+				/*
+				 * internalize the text string
+				 */
+				if (text->doc->dict != NULL) {
+				    const xmlChar *tmp;
+				    
+				    tmp = xmlDictLookup(text->doc->dict,
+				                        text->content, -1);
+				    if (tmp != text->content) {
+				        xmlNodeSetContent(text, NULL);
+					text->content = (xmlChar *) tmp;
+				    }
+				}
+			    }
+
+			    next = text->next;
+			    xmlUnlinkNode(text);
+			    xmlAddPrevSibling(cur, text);
+			    text = next;
+			}
+		    }
+		}
+		delete = cur;
+		goto skip_children;
+	    }
+	} else if ((cur->ns != NULL) && (style->nsDefs != NULL) &&
+	           (xsltCheckExtPrefix(style, cur->ns->prefix))) {
+	    /*
+	     * okay this is an extension element compile it too
+	     */
+	    xsltStylePreCompute(style, cur);
+	} else {
+	    /*
+	     * This is an element which will be output as part of the
+	     * template exectution, precompile AVT if found.
+	     */
+	    if ((cur->ns == NULL) && (style->defaultAlias != NULL) &&
+	    		(cur->type == XML_ELEMENT_NODE)) {
+		cur->ns = xmlSearchNsByHref(cur->doc, cur,
+			style->defaultAlias);
+	    }
+	    if (cur->properties != NULL) {
+	        xmlAttrPtr attr = cur->properties;
+
+		while (attr != NULL) {
+		    xsltCompileAttr(style, attr);
+		    attr = attr->next;
+		}
+	    }
+	}
+
+	/*
+	 * Skip to next node
+	 */
+	if (cur->children != NULL) {
+	    if (cur->children->type != XML_ENTITY_DECL) {
+		cur = cur->children;
+		continue;
+	    }
+	}
+skip_children:
+	if (cur->next != NULL) {
+	    cur = cur->next;
+	    continue;
+	}
+	
+	do {
+	    cur = cur->parent;
+	    if (cur == NULL)
+		break;
+	    if (cur == templ) {
+		cur = NULL;
+		break;
+	    }
+	    if (cur->next != NULL) {
+		cur = cur->next;
+		break;
+	    }
+	} while (cur != NULL);
+    }
+    if (delete != NULL) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+	xsltGenericDebug(xsltGenericDebugContext,
+	 "xsltParseTemplateContent: removing text\n");
+#endif
+	xmlUnlinkNode(delete);
+	xmlFreeNode(delete);
+	delete = NULL;
+    }
+
+    /*
+     * Skip the first params
+     */
+    cur = templ->children;
+    while (cur != NULL) {
+	if ((IS_XSLT_ELEM(cur)) && (!(IS_XSLT_NAME(cur, "param"))))
+	    break;
+	cur = cur->next;
+    }
+
+    /*
+     * Browse the remainder of the template
+     */
+    while (cur != NULL) {
+	if ((IS_XSLT_ELEM(cur)) && (IS_XSLT_NAME(cur, "param"))) {
+	    xmlNodePtr param = cur;
+
+	    xsltTransformError(NULL, style, cur,
+		"xsltParseTemplateContent: ignoring misplaced param element\n");
+	    if (style != NULL) style->warnings++;
+            cur = cur->next;
+	    xmlUnlinkNode(param);
+	    xmlFreeNode(param);
+	} else
+	    break;
+    }
+}
+
+/**
+ * xsltParseStylesheetKey:
+ * @style:  the XSLT stylesheet
+ * @key:  the "key" element
+ *
+ * <!-- Category: top-level-element -->
+ * <xsl:key name = qname, match = pattern, use = expression />
+ *
+ * parse an XSLT stylesheet key definition and register it
+ */
+
+static void
+xsltParseStylesheetKey(xsltStylesheetPtr style, xmlNodePtr key) {
+    xmlChar *prop = NULL;
+    xmlChar *use = NULL;
+    xmlChar *match = NULL;
+    xmlChar *name = NULL;
+    xmlChar *nameURI = NULL;
+
+    if (key == NULL)
+	return;
+
+    /*
+     * Get arguments
+     */
+    prop = xmlGetNsProp(key, (const xmlChar *)"name", NULL);
+    if (prop != NULL) {
+        const xmlChar *URI;
+
+	URI = xsltGetQNameURI(key, &prop);
+	if (prop == NULL) {
+	    if (style != NULL) style->errors++;
+	    goto error;
+	} else {
+	    name = prop;
+	    if (URI != NULL)
+		nameURI = xmlStrdup(URI);
+	}
+#ifdef WITH_XSLT_DEBUG_PARSING
+	xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltParseStylesheetKey: name %s\n", name);
+#endif
+    } else {
+	xsltTransformError(NULL, style, key,
+	    "xsl:key : error missing name\n");
+	if (style != NULL) style->errors++;
+	goto error;
+    }
+
+    match = xmlGetNsProp(key, (const xmlChar *)"match", NULL);
+    if (match == NULL) {
+	xsltTransformError(NULL, style, key,
+	    "xsl:key : error missing match\n");
+	if (style != NULL) style->errors++;
+	goto error;
+    }
+
+    use = xmlGetNsProp(key, (const xmlChar *)"use", NULL);
+    if (use == NULL) {
+	xsltTransformError(NULL, style, key,
+	    "xsl:key : error missing use\n");
+	if (style != NULL) style->errors++;
+	goto error;
+    }
+
+    /*
+     * register the keys
+     */
+    xsltAddKey(style, name, nameURI, match, use, key);
+
+
+error:
+    if (use != NULL)
+	xmlFree(use);
+    if (match != NULL)
+	xmlFree(match);
+    if (name != NULL)
+	xmlFree(name);
+    if (nameURI != NULL)
+	xmlFree(nameURI);
+}
+
+/**
+ * xsltParseStylesheetTemplate:
+ * @style:  the XSLT stylesheet
+ * @template:  the "template" element
+ *
+ * parse an XSLT stylesheet template building the associated structures
+ */
+
+static void
+xsltParseStylesheetTemplate(xsltStylesheetPtr style, xmlNodePtr template) {
+    xsltTemplatePtr ret;
+    xmlChar *prop;
+    xmlChar *mode = NULL;
+    xmlChar *modeURI = NULL;
+    double  priority;
+
+    if (template == NULL)
+	return;
+
+    /*
+     * Create and link the structure
+     */
+    ret = xsltNewTemplate();
+    if (ret == NULL)
+	return;
+    ret->next = style->templates;
+    style->templates = ret;
+    ret->style = style;
+   
+    /*
+     * Get inherited namespaces
+     */
+    /*
+    * TODO: Apply the optimized in-scope-namespace mechanism
+    *   as for the other XSLT instructions.
+    */
+    xsltGetInheritedNsList(style, ret, template);
+
+    /*
+     * Get arguments
+     */
+    prop = xmlGetNsProp(template, (const xmlChar *)"mode", NULL);
+    if (prop != NULL) {
+        const xmlChar *URI;
+
+	URI = xsltGetQNameURI(template, &prop);
+	if (prop == NULL) {
+	    if (style != NULL) style->errors++;
+	    goto error;
+	} else {
+	    mode = prop;
+	    if (URI != NULL)
+		modeURI = xmlStrdup(URI);
+	}
+	ret->mode = xmlDictLookup(style->dict, mode, -1);
+	ret->modeURI = xmlDictLookup(style->dict, modeURI, -1);
+#ifdef WITH_XSLT_DEBUG_PARSING
+	xsltGenericDebug(xsltGenericDebugContext,
+	     "xsltParseStylesheetTemplate: mode %s\n", mode);
+#endif
+        if (mode != NULL) xmlFree(mode);
+	if (modeURI != NULL) xmlFree(modeURI);
+    }
+    prop = xmlGetNsProp(template, (const xmlChar *)"match", NULL);
+    if (prop != NULL) {
+	if (ret->match != NULL) xmlFree(ret->match);
+	ret->match  = prop;
+    }
+
+    prop = xmlGetNsProp(template, (const xmlChar *)"priority", NULL);
+    if (prop != NULL) {
+	priority = xmlXPathStringEvalNumber(prop);
+	ret->priority = (float) priority;
+	xmlFree(prop);
+    }
+
+    prop = xmlGetNsProp(template, (const xmlChar *)"name", NULL);
+    if (prop != NULL) {
+        const xmlChar *URI;
+	xsltTemplatePtr cur;
+
+	if (ret->name != NULL) {
+	    xmlFree(ret->name);
+	    ret->name = NULL;
+	}
+	if (ret->nameURI != NULL) {
+	    xmlFree(ret->nameURI);
+	    ret->nameURI = NULL;
+	}
+
+	URI = xsltGetQNameURI(template, &prop);
+	if (prop == NULL) {
+	    if (style != NULL) style->errors++;
+	    goto error;
+	} else {
+	    if (xmlValidateNCName(prop,0)) {
+	        xsltTransformError(NULL, style, template,
+	            "xsl:template : error invalid name '%s'\n", prop);
+		if (style != NULL) style->errors++;
+		goto error;
+	    } 
+	    ret->name = prop;
+	    if (URI != NULL)
+		ret->nameURI = xmlStrdup(URI);
+	    else
+		ret->nameURI = NULL;
+	    cur = ret->next;
+	    while (cur != NULL) {
+	        if ((URI != NULL && xmlStrEqual(cur->name, prop) &&
+				xmlStrEqual(cur->nameURI, URI) ) ||
+		    (URI == NULL && cur->nameURI == NULL &&
+				xmlStrEqual(cur->name, prop))) {
+		    xsltTransformError(NULL, style, template,
+		        "xsl:template: error duplicate name '%s'\n", prop);
+		    style->errors++;
+		    goto error;
+		}
+		cur = cur->next;
+	    }
+	}
+    }
+
+    /*
+     * parse the content and register the pattern
+     */
+    xsltParseTemplateContent(style, template);
+    ret->elem = template;
+    ret->content = template->children;
+    xsltAddTemplate(style, ret, ret->mode, ret->modeURI);
+
+error:
+    return;
+}
+
+#ifdef XSLT_REFACTORED_PARSING
+/*
+* xsltParseStylesheetTreeNew:
+*
+* Parses and compiles an XSLT stylesheet's XML tree.
+*
+* TODO: Adjust error report text.
+*/
+static int
+xsltParseStylesheetTreeNew(xsltStylesheetPtr sheet, xmlNodePtr cur)
+{
+    xsltCompilerCtxtPtr cctxt;
+    xmlNodePtr top = cur;
+    int depth = 0, simpleSyntax = 0;
+
+    if ((cur == NULL) || (cur->type != XML_ELEMENT_NODE) ||
+	(sheet == NULL) || (sheet->compCtxt == NULL))
+	return(-1);
+    cctxt = (xsltCompilerCtxtPtr) sheet->compCtxt;
+
+    /*
+    * Evalute if we have a simplified syntax.
+    */
+    if ((IS_XSLT_ELEM(cur)) && 
+	((IS_XSLT_NAME(cur, "stylesheet")) ||
+	 (IS_XSLT_NAME(cur, "transform"))))
+    {	
+#ifdef WITH_XSLT_DEBUG_PARSING
+	xsltGenericDebug(xsltGenericDebugContext,
+		"xsltParseStylesheetProcess : found stylesheet\n");
+#endif
+	/*
+	* TODO: Initialize.
+	*/
+    } else {
+	simpleSyntax = 1;	
+	/*
+	* TODO: Create the initial template.
+	* TODO: Initialize.
+	*/
+    }        
+    /*
+    * Reset the compiler context.
+    */
+    cctxt->depth = 0;
+    cctxt->inode = NULL;
+    /*
+    * Initialize the in-scope namespaces. We need to have
+    * the in-scope ns-decls of the first given node, regardless
+    * if it's a XSLT instruction or a literal result element.
+    */
+    xsltCompilerNodePush(cctxt, cur);
+    xsltCompilerGetInScopeNSInfo(cctxt, cur);
+    goto next_sibling;
+
+    while (cur != NULL) {
+	if (cur->type == XML_ELEMENT_NODE) {
+	    
+	}
+
+next_sibling:
+	if (cur->type == XML_ELEMENT_NODE) {
+	    /*
+	    * Leaving an element.
+	    */
+	    xsltCompilerNodePop(cctxt, cur);
+	}
+	if (cur == top)
+	    break;
+	if (cur->next != NULL)
+	    cur = cur->next;
+	else {
+	    cur = cur->parent;
+	    goto next_sibling;
+	}	
+    }
+    return(0);
+}
+#endif /* XSLT_REFACTORED_PARSING */
+
+/**
+ * xsltParseStylesheetTop:
+ * @style:  the XSLT stylesheet
+ * @top:  the top level "stylesheet" or "transform" element
+ *
+ * scan the top level elements of an XSL stylesheet
+ */
+static void
+xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
+    xmlNodePtr cur;
+    xmlChar *prop;
+#ifdef WITH_XSLT_DEBUG_PARSING
+    int templates = 0;
+#endif
+
+    if (top == NULL)
+	return;
+
+    prop = xmlGetNsProp(top, (const xmlChar *)"version", NULL);
+    if (prop == NULL) {
+	xsltTransformError(NULL, style, top,
+	    "xsl:version is missing: document may not be a stylesheet\n");
+	if (style != NULL) style->warnings++;
+    } else {
+	if ((!xmlStrEqual(prop, (const xmlChar *)"1.0")) &&
+            (!xmlStrEqual(prop, (const xmlChar *)"1.1"))) {
+	    xsltTransformError(NULL, style, top,
+		"xsl:version: only 1.0 features are supported\n");
+	     /* TODO set up compatibility when not XSLT 1.0 */
+	    if (style != NULL) style->warnings++;
+	}
+	xmlFree(prop);
+    }
+
+    cur = top->children;
+
+    /*
+     * process xsl:import elements
+     */
+    while (cur != NULL) {
+	    if (IS_BLANK_NODE(cur)) {
+		    cur = cur->next;
+		    continue;
+	    }
+	    if (IS_XSLT_ELEM(cur) && IS_XSLT_NAME(cur, "import")) {
+		    if (xsltParseStylesheetImport(style, cur) != 0)
+			    if (style != NULL) style->errors++;
+	    } else
+		    break;
+	    cur = cur->next;
+    }
+
+    /*
+     * process other top-level elements
+     */
+    while (cur != NULL) {
+	if (IS_BLANK_NODE(cur)) {
+	    cur = cur->next;
+	    continue;
+	}
+	if (cur->type == XML_TEXT_NODE) {
+	    if (cur->content != NULL) {
+		xsltTransformError(NULL, style, cur,
+		    "misplaced text element: '%s'\n", cur->content);
+	    }
+	    if (style != NULL) style->errors++;
+            cur = cur->next;
+	    continue;
+	}
+	if ((cur->type == XML_ELEMENT_NODE) && (cur->ns == NULL)) {
+	    xsltGenericError(xsltGenericErrorContext,
+		     "Found a top-level element %s with null namespace URI\n",
+		     cur->name);
+	    if (style != NULL) style->errors++;
+	    cur = cur->next;
+	    continue;
+	}
+	if ((cur->type == XML_ELEMENT_NODE) && (!(IS_XSLT_ELEM(cur)))) {
+	    xsltTopLevelFunction function;
+
+	    function = xsltExtModuleTopLevelLookup(cur->name,
+						   cur->ns->href);
+	    if (function != NULL)
+		function(style, cur);
+
+#ifdef WITH_XSLT_DEBUG_PARSING
+	    xsltGenericDebug(xsltGenericDebugContext,
+		    "xsltParseStylesheetTop : found foreign element %s\n",
+		    cur->name);
+#endif
+            cur = cur->next;
+	    continue;
+	}
+	if (IS_XSLT_NAME(cur, "import")) {
+	    xsltTransformError(NULL, style, cur,
+			"xsltParseStylesheetTop: ignoring misplaced import element\n");
+	    if (style != NULL) style->errors++;
+    } else if (IS_XSLT_NAME(cur, "include")) {
+	    if (xsltParseStylesheetInclude(style, cur) != 0)
+		if (style != NULL) style->errors++;
+    } else if (IS_XSLT_NAME(cur, "strip-space")) {
+	    xsltParseStylesheetStripSpace(style, cur);
+    } else if (IS_XSLT_NAME(cur, "preserve-space")) {
+	    xsltParseStylesheetPreserveSpace(style, cur);
+    } else if (IS_XSLT_NAME(cur, "output")) {
+	    xsltParseStylesheetOutput(style, cur);
+    } else if (IS_XSLT_NAME(cur, "key")) {
+	    xsltParseStylesheetKey(style, cur);
+    } else if (IS_XSLT_NAME(cur, "decimal-format")) {
+	    xsltParseStylesheetDecimalFormat(style, cur);
+    } else if (IS_XSLT_NAME(cur, "attribute-set")) {
+	    xsltParseStylesheetAttributeSet(style, cur);
+    } else if (IS_XSLT_NAME(cur, "variable")) {
+	    xsltParseGlobalVariable(style, cur);
+    } else if (IS_XSLT_NAME(cur, "param")) {
+	    xsltParseGlobalParam(style, cur);
+    } else if (IS_XSLT_NAME(cur, "template")) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+	    templates++;
+#endif
+	    xsltParseStylesheetTemplate(style, cur);
+    } else if (IS_XSLT_NAME(cur, "namespace-alias")) {
+	    xsltNamespaceAlias(style, cur);
+	} else {
+            if ((style != NULL) && (style->doc->version != NULL) &&
+	        (!strncmp((const char *) style->doc->version, "1.0", 3))) {
+	        xsltTransformError(NULL, style, cur,
+			"xsltParseStylesheetTop: unknown %s element\n",
+			cur->name);
+	        if (style != NULL) style->errors++;
+	    }
+	    else {
+                /* do Forwards-Compatible Processing */
+	        xsltTransformError(NULL, style, cur,
+			"xsltParseStylesheetTop: ignoring unknown %s element\n",
+			cur->name);
+	        if (style != NULL) style->warnings++;
+            }
+	}
+	cur = cur->next;
+    }
+#ifdef WITH_XSLT_DEBUG_PARSING
+    xsltGenericDebug(xsltGenericDebugContext,
+		    "parsed %d templates\n", templates);
+#endif
+}
+
+/**
+ * xsltParseStylesheetProcess:
+ * @ret:  the XSLT stylesheet
+ * @doc:  and xmlDoc parsed XML
+ *
+ * parse an XSLT stylesheet adding the associated structures
+ *
+ * Returns the value of the 'ret' parameter if everything
+ * went right, NULL if something went amiss.
+ */
+
+xsltStylesheetPtr
+xsltParseStylesheetProcess(xsltStylesheetPtr ret, xmlDocPtr doc) {
+    xmlNodePtr cur;
+
+    if (doc == NULL)
+	return(NULL);
+    if (ret == NULL)
+	return(ret);
+    
+    /*
+     * First steps, remove blank nodes,
+     * locate the xsl:stylesheet element and the
+     * namespace declaration.
+     */
+    cur = xmlDocGetRootElement(doc);
+    if (cur == NULL) {
+	xsltTransformError(NULL, ret, (xmlNodePtr) doc,
+		"xsltParseStylesheetProcess : empty stylesheet\n");
+	return(NULL);
+    }    
+    if ((IS_XSLT_ELEM(cur)) && 
+	((IS_XSLT_NAME(cur, "stylesheet")) ||
+	 (IS_XSLT_NAME(cur, "transform")))) {	
+#ifdef WITH_XSLT_DEBUG_PARSING
+	xsltGenericDebug(xsltGenericDebugContext,
+		"xsltParseStylesheetProcess : found stylesheet\n");
+#endif
+	ret->literal_result = 0;
+	xsltParseStylesheetExcludePrefix(ret, cur, 1);
+	xsltParseStylesheetExtPrefix(ret, cur, 1);
+    } else {
+	xsltParseStylesheetExcludePrefix(ret, cur, 0);
+	xsltParseStylesheetExtPrefix(ret, cur, 0);
+	ret->literal_result = 1;
+    }
+    if (!ret->nopreproc) {
+#ifdef XSLT_REFACTORED
+	/*
+	* Reset the compiler context.
+	* TODO: This all looks ugly; but note that this will go
+	*   into an other function; it's just temporarily here.
+	*/
+	XSLT_CCTXT(ret)->depth = -1;
+	XSLT_CCTXT(ret)->inode = NULL;
+#endif
+	xsltPrecomputeStylesheet(ret, cur);
+#ifdef XSLT_REFACTORED
+	XSLT_CCTXT(ret)->depth = -1;
+	XSLT_CCTXT(ret)->inode = NULL;
+#endif
+    }
+
+    if (ret->literal_result == 0) {
+	xsltParseStylesheetTop(ret, cur);
+    } else {
+	xmlChar *prop;
+	xsltTemplatePtr template;
+
+	/*
+	 * the document itself might be the template, check xsl:version
+	 */
+	prop = xmlGetNsProp(cur, (const xmlChar *)"version", XSLT_NAMESPACE);
+	if (prop == NULL) {
+	    xsltTransformError(NULL, ret, cur,
+		"xsltParseStylesheetProcess : document is not a stylesheet\n");
+	    return(NULL);
+	}
+
+#ifdef WITH_XSLT_DEBUG_PARSING
+        xsltGenericDebug(xsltGenericDebugContext,
+		"xsltParseStylesheetProcess : document is stylesheet\n");
+#endif
+	
+	if (!xmlStrEqual(prop, (const xmlChar *)"1.0")) {
+	    xsltTransformError(NULL, ret, cur,
+		"xsl:version: only 1.0 features are supported\n");
+	     /* TODO set up compatibility when not XSLT 1.0 */
+	    ret->warnings++;
+	}
+	xmlFree(prop);
+
+	/*
+	 * Create and link the template
+	 */
+	template = xsltNewTemplate();
+	if (template == NULL) {
+	    return(NULL);
+	}
+	template->next = ret->templates;
+	ret->templates = template;
+	template->match = xmlStrdup((const xmlChar *)"/");
+
+	/*
+	 * parse the content and register the pattern
+	 */
+	xsltParseTemplateContent(ret, (xmlNodePtr) doc);
+	template->elem = (xmlNodePtr) doc;
+	template->content = doc->children;
+	xsltAddTemplate(ret, template, NULL, NULL);
+	ret->literal_result = 1;
+    }
+
+    return(ret);
+}
+
+/**
+ * xsltParseStylesheetImportedDoc:
+ * @doc:  an xmlDoc parsed XML
+ * @style: pointer to parent stylesheet
+ *
+ * parse an XSLT stylesheet building the associated structures
+ * except the processing not needed for imported documents.
+ *
+ * Returns a new XSLT stylesheet structure.
+ */
+
+xsltStylesheetPtr
+xsltParseStylesheetImportedDoc(xmlDocPtr doc, xsltStylesheetPtr style) {
+    xsltStylesheetPtr ret;
+
+    if (doc == NULL)
+	return(NULL);
+
+    ret = xsltNewStylesheet();
+    if (ret == NULL)
+	return(NULL);
+    
+    if (doc->dict != NULL) {
+        xmlDictFree(ret->dict);
+	ret->dict = doc->dict;
+#ifdef WITH_XSLT_DEBUG
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "reusing dictionary from %s for stylesheet\n",
+			 doc->URL);
+#endif
+	xmlDictReference(ret->dict);
+    }
+    
+    ret->doc = doc;
+    ret->parent = style;	/* needed to prevent loops */
+    xsltGatherNamespaces(ret);
+    if (xsltParseStylesheetProcess(ret, doc) == NULL) {
+	ret->doc = NULL;
+	xsltFreeStylesheet(ret);
+	ret = NULL;
+    }
+    if (ret != NULL) {
+	if (ret->errors != 0) {
+	    ret->doc = NULL;
+	    xsltFreeStylesheet(ret);
+	    ret = NULL;
+	}
+    }
+    
+    return(ret);
+}
+
+/**
+ * xsltParseStylesheetDoc:
+ * @doc:  and xmlDoc parsed XML
+ *
+ * parse an XSLT stylesheet building the associated structures
+ *
+ * Returns a new XSLT stylesheet structure.
+ */
+
+xsltStylesheetPtr
+xsltParseStylesheetDoc(xmlDocPtr doc) {
+    xsltStylesheetPtr ret;
+
+    ret = xsltParseStylesheetImportedDoc(doc, NULL);
+    if (ret == NULL)
+	return(NULL);
+
+    xsltResolveStylesheetAttributeSet(ret);
+#ifdef XSLT_REFACTORED
+    /*
+    * Free the compilation context.
+    * TODO: Check if it's better to move this cleanup to
+    *   xsltParseStylesheetImportedDoc().
+    */
+    if (ret->compCtxt != NULL) {
+	xsltCompilerCtxtFree(XSLT_CCTXT(ret));
+	ret->compCtxt = NULL;
+    }
+#endif
+    return(ret);
+}
+
+/**
+ * xsltParseStylesheetFile:
+ * @filename:  the filename/URL to the stylesheet
+ *
+ * Load and parse an XSLT stylesheet
+ *
+ * Returns a new XSLT stylesheet structure.
+ */
+
+xsltStylesheetPtr
+xsltParseStylesheetFile(const xmlChar* filename) {
+    xsltSecurityPrefsPtr sec;
+    xsltStylesheetPtr ret;
+    xmlDocPtr doc;
+    
+
+    if (filename == NULL)
+	return(NULL);
+
+#ifdef WITH_XSLT_DEBUG_PARSING
+    xsltGenericDebug(xsltGenericDebugContext,
+	    "xsltParseStylesheetFile : parse %s\n", filename);
+#endif
+
+    /*
+     * Security framework check
+     */
+    sec = xsltGetDefaultSecurityPrefs();
+    if (sec != NULL) {
+	int res;
+
+	res = xsltCheckRead(sec, NULL, filename);
+	if (res == 0) {
+	    xsltTransformError(NULL, NULL, NULL,
+		 "xsltParseStylesheetFile: read rights for %s denied\n",
+			     filename);
+	    return(NULL);
+	}
+    }
+
+    doc = xsltDocDefaultLoader(filename, NULL, XSLT_PARSE_OPTIONS,
+                               NULL, XSLT_LOAD_START);
+    if (doc == NULL) {
+	xsltTransformError(NULL, NULL, NULL,
+		"xsltParseStylesheetFile : cannot parse %s\n", filename);
+	return(NULL);
+    }
+    ret = xsltParseStylesheetDoc(doc);
+    if (ret == NULL) {
+	xmlFreeDoc(doc);
+	return(NULL);
+    }
+
+    return(ret);
+}
+
+/************************************************************************
+ *									*
+ *			Handling of Stylesheet PI			*
+ *									*
+ ************************************************************************/
+
+#define CUR (*cur)
+#define SKIP(val) cur += (val)
+#define NXT(val) cur[(val)]
+#define SKIP_BLANKS						\
+    while (IS_BLANK(CUR)) NEXT
+#define NEXT ((*cur) ?  cur++ : cur)
+
+/**
+ * xsltParseStylesheetPI:
+ * @value: the value of the PI
+ *
+ * This function checks that the type is text/xml and extracts
+ * the URI-Reference for the stylesheet
+ *
+ * Returns the URI-Reference for the stylesheet or NULL (it need to
+ *         be freed by the caller)
+ */
+static xmlChar *
+xsltParseStylesheetPI(const xmlChar *value) {
+    const xmlChar *cur;
+    const xmlChar *start;
+    xmlChar *val;
+    xmlChar tmp;
+    xmlChar *href = NULL;
+    int isXml = 0;
+
+    if (value == NULL)
+	return(NULL);
+
+    cur = value;
+    while (CUR != 0) {
+	SKIP_BLANKS;
+	if ((CUR == 't') && (NXT(1) == 'y') && (NXT(2) == 'p') &&
+	    (NXT(3) == 'e')) {
+	    SKIP(4);
+	    SKIP_BLANKS;
+	    if (CUR != '=')
+		continue;
+	    NEXT;
+	    if ((CUR != '\'') && (CUR != '"'))
+		continue;
+	    tmp = CUR;
+	    NEXT;
+	    start = cur;
+	    while ((CUR != 0) && (CUR != tmp))
+		NEXT;
+	    if (CUR != tmp)
+		continue;
+	    val = xmlStrndup(start, cur - start);
+	    NEXT;
+	    if (val == NULL) 
+		return(NULL);
+	    if ((xmlStrcasecmp(val, BAD_CAST "text/xml")) &&
+		(xmlStrcasecmp(val, BAD_CAST "text/xsl"))) {
+                xmlFree(val);
+		break;
+	    }
+	    isXml = 1;
+	    xmlFree(val);
+	} else if ((CUR == 'h') && (NXT(1) == 'r') && (NXT(2) == 'e') &&
+	    (NXT(3) == 'f')) {
+	    SKIP(4);
+	    SKIP_BLANKS;
+	    if (CUR != '=')
+		continue;
+	    NEXT;
+	    if ((CUR != '\'') && (CUR != '"'))
+		continue;
+	    tmp = CUR;
+	    NEXT;
+	    start = cur;
+	    while ((CUR != 0) && (CUR != tmp))
+		NEXT;
+	    if (CUR != tmp)
+		continue;
+	    if (href == NULL)
+		href = xmlStrndup(start, cur - start);
+	    NEXT;
+	} else {
+	    while ((CUR != 0) && (!IS_BLANK(CUR)))
+		NEXT;
+	}
+            
+    }
+
+    if (!isXml) {
+	if (href != NULL)
+	    xmlFree(href);
+	href = NULL;
+    }
+    return(href);
+}
+
+/**
+ * xsltLoadStylesheetPI:
+ * @doc:  a document to process
+ *
+ * This function tries to locate the stylesheet PI in the given document
+ * If found, and if contained within the document, it will extract 
+ * that subtree to build the stylesheet to process @doc (doc itself will
+ * be modified). If found but referencing an external document it will
+ * attempt to load it and generate a stylesheet from it. In both cases,
+ * the resulting stylesheet and the document need to be freed once the
+ * transformation is done.
+ *
+ * Returns a new XSLT stylesheet structure or NULL if not found.
+ */
+xsltStylesheetPtr
+xsltLoadStylesheetPI(xmlDocPtr doc) {
+    xmlNodePtr child;
+    xsltStylesheetPtr ret = NULL;
+    xmlChar *href = NULL;
+    xmlURIPtr URI;
+
+    if (doc == NULL)
+	return(NULL);
+
+    /*
+     * Find the text/xml stylesheet PI id any before the root
+     */
+    child = doc->children;
+    while ((child != NULL) && (child->type != XML_ELEMENT_NODE)) {
+	if ((child->type == XML_PI_NODE) &&
+	    (xmlStrEqual(child->name, BAD_CAST "xml-stylesheet"))) {
+	    href = xsltParseStylesheetPI(child->content);
+	    if (href != NULL)
+		break;
+	}
+	child = child->next;
+    }
+
+    /*
+     * If found check the href to select processing
+     */
+    if (href != NULL) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+	xsltGenericDebug(xsltGenericDebugContext,
+		"xsltLoadStylesheetPI : found PI href=%s\n", href);
+#endif
+	URI = xmlParseURI((const char *) href);
+	if (URI == NULL) {
+	    xsltTransformError(NULL, NULL, child,
+		    "xml-stylesheet : href %s is not valid\n", href);
+	    xmlFree(href);
+	    return(NULL);
+	}
+	if ((URI->fragment != NULL) && (URI->scheme == NULL) &&
+            (URI->opaque == NULL) && (URI->authority == NULL) &&
+            (URI->server == NULL) && (URI->user == NULL) &&
+            (URI->path == NULL) && (URI->query == NULL)) {
+	    xmlAttrPtr ID;
+
+#ifdef WITH_XSLT_DEBUG_PARSING
+	    xsltGenericDebug(xsltGenericDebugContext,
+		    "xsltLoadStylesheetPI : Reference to ID %s\n", href);
+#endif
+	    if (URI->fragment[0] == '#')
+		ID = xmlGetID(doc, (const xmlChar *) &(URI->fragment[1]));
+	    else
+		ID = xmlGetID(doc, (const xmlChar *) URI->fragment);
+	    if (ID == NULL) {
+		xsltTransformError(NULL, NULL, child,
+		    "xml-stylesheet : no ID %s found\n", URI->fragment);
+	    } else {
+		xmlDocPtr fake;
+		xmlNodePtr subtree;
+
+		/*
+		 * move the subtree in a new document passed to
+		 * the stylesheet analyzer
+		 */
+		subtree = ID->parent;
+		fake = xmlNewDoc(NULL);
+		if (fake != NULL) {
+                    /*
+		     * the dictionnary should be shared since nodes are
+		     * moved over.
+		     */
+		    fake->dict = doc->dict;
+		    xmlDictReference(doc->dict);
+#ifdef WITH_XSLT_DEBUG
+		    xsltGenericDebug(xsltGenericDebugContext,
+                         "reusing dictionary from %s for stylesheet\n",
+			 doc->URL);
+#endif
+
+		    xmlUnlinkNode(subtree);
+		    xmlAddChild((xmlNodePtr) fake, subtree);
+		    ret = xsltParseStylesheetDoc(fake);
+		    if (ret == NULL)
+			xmlFreeDoc(fake);
+		}
+	    }
+	} else {
+	    xmlChar *URL, *base;
+
+	    /*
+	     * Reference to an external stylesheet
+	     */
+
+	    base = xmlNodeGetBase(doc, (xmlNodePtr) doc);
+	    URL = xmlBuildURI(href, base);
+	    if (URL != NULL) {
+#ifdef WITH_XSLT_DEBUG_PARSING
+		xsltGenericDebug(xsltGenericDebugContext,
+			"xsltLoadStylesheetPI : fetching %s\n", URL);
+#endif
+		ret = xsltParseStylesheetFile(URL);
+		xmlFree(URL);
+	    } else {
+#ifdef WITH_XSLT_DEBUG_PARSING
+		xsltGenericDebug(xsltGenericDebugContext,
+			"xsltLoadStylesheetPI : fetching %s\n", href);
+#endif
+		ret = xsltParseStylesheetFile(href);
+	    }
+	    if (base != NULL)
+		xmlFree(base);
+	}
+	xmlFreeURI(URI);
+	xmlFree(href);
+    }
+    return(ret);
+}

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/xslt.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/xslt.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/xslt.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,103 @@
+/*
+ * Summary: Interfaces, constants and types related to the XSLT engine
+ * Description: Interfaces, constants and types related to the XSLT engine
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_H__
+#define __XML_XSLT_H__
+
+#include <libxml/tree.h>
+#include "xsltexports.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * XSLT_DEFAULT_VERSION:
+ *
+ * The default version of XSLT supported.
+ */
+#define XSLT_DEFAULT_VERSION     "1.0"
+
+/**
+ * XSLT_DEFAULT_VENDOR:
+ *
+ * The XSLT "vendor" string for this processor.
+ */
+#define XSLT_DEFAULT_VENDOR      "libxslt"
+
+/**
+ * XSLT_DEFAULT_URL:
+ *
+ * The XSLT "vendor" URL for this processor.
+ */
+#define XSLT_DEFAULT_URL         "http://xmlsoft.org/XSLT/"
+
+/**
+ * XSLT_NAMESPACE:
+ *
+ * The XSLT specification namespace.
+ */
+#define XSLT_NAMESPACE ((xmlChar *) "http://www.w3.org/1999/XSL/Transform")
+
+/**
+ * XSLT_PARSE_OPTIONS:
+ *
+ * The set of options to pass to an xmlReadxxx when loading files for
+ * XSLT consumption.
+ */
+#define XSLT_PARSE_OPTIONS \
+ XML_PARSE_NOENT | XML_PARSE_DTDLOAD | XML_PARSE_DTDATTR | XML_PARSE_NOCDATA
+
+/**
+ * xsltMaxDepth:
+ *
+ * This value is used to detect templates loops.
+ */
+XSLTPUBVAR int xsltMaxDepth;
+
+/**
+ * xsltEngineVersion:
+ *
+ * The version string for libxslt.
+ */
+XSLTPUBVAR const char *xsltEngineVersion;
+
+/**
+ * xsltLibxsltVersion:
+ *
+ * The version of libxslt compiled.
+ */
+XSLTPUBVAR const int xsltLibxsltVersion;
+
+/**
+ * xsltLibxmlVersion:
+ *
+ * The version of libxml libxslt was compiled against.
+ */
+XSLTPUBVAR const int xsltLibxmlVersion;
+
+/*
+ * Global initialization function.
+ */
+
+XSLTPUBFUN void XSLTCALL
+		xsltInit		(void);
+
+/*
+ * Global cleanup function.
+ */
+XSLTPUBFUN void XSLTCALL	
+		xsltCleanupGlobals	(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/xsltInternals.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/xsltInternals.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/xsltInternals.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1415 @@
+/*
+ * Summary: internal data structures, constants and functions
+ * Description: Internal data structures, constants and functions used
+ *              by the XSLT engine. 
+ *              They are not part of the API or ABI, i.e. they can change
+ *              without prior notice, use carefully.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLT_INTERNALS_H__
+#define __XML_XSLT_INTERNALS_H__
+
+#include <libxml/tree.h>
+#include <libxml/hash.h>
+#include <libxml/xpath.h>
+#include <libxml/xmlerror.h>
+#include <libxml/dict.h>
+#include <libxslt/xslt.h>
+#include "xsltexports.h"
+#include "numbersInternals.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * XSLT_REFACTORED:
+ *
+ * Internal define to enable the refactored parts of Libxslt
+ * mostly related to pre-computation.
+ */
+/* #define XSLT_REFACTORED */
+
+/**
+ * XSLT_REFACTORED_PARSING:
+ *
+ * Internal define to enable the refactored parts of Libxslt
+ * related to parsing.
+ */
+/* #define XSLT_REFACTORED_PARSING */
+
+/**
+ * XSLT_MAX_SORT:
+ *
+ * Max number of specified xsl:sort on an element.
+ */
+#define XSLT_MAX_SORT 15
+
+/**
+ * XSLT_PAT_NO_PRIORITY:
+ *
+ * Specific value for pattern without priority expressed.
+ */
+#define XSLT_PAT_NO_PRIORITY -12345789
+
+/**
+ * xsltRuntimeExtra:
+ *
+ * Extra information added to the transformation context.
+ */
+typedef struct _xsltRuntimeExtra xsltRuntimeExtra;
+typedef xsltRuntimeExtra *xsltRuntimeExtraPtr;
+struct _xsltRuntimeExtra {
+    void       *info;		/* pointer to the extra data */
+    xmlFreeFunc deallocate;	/* pointer to the deallocation routine */
+    union {			/* dual-purpose field */
+        void   *ptr;		/* data not needing deallocation */
+	int    ival;		/* integer value storage */
+    } val;
+};
+
+/**
+ * XSLT_RUNTIME_EXTRA_LST:
+ * @ctxt: the transformation context
+ * @nr: the index
+ *
+ * Macro used to access extra information stored in the context
+ */
+#define XSLT_RUNTIME_EXTRA_LST(ctxt, nr) (ctxt)->extras[(nr)].info
+/**
+ * XSLT_RUNTIME_EXTRA_FREE:
+ * @ctxt: the transformation context
+ * @nr: the index
+ *
+ * Macro used to free extra information stored in the context
+ */
+#define XSLT_RUNTIME_EXTRA_FREE(ctxt, nr) (ctxt)->extras[(nr)].deallocate
+/**
+ * XSLT_RUNTIME_EXTRA:
+ * @ctxt: the transformation context
+ * @nr: the index
+ *
+ * Macro used to define extra information stored in the context
+ */
+#define	XSLT_RUNTIME_EXTRA(ctxt, nr, typ) (ctxt)->extras[(nr)].val.typ
+
+/**
+ * xsltTemplate:
+ *
+ * The in-memory structure corresponding to an XSLT Template.
+ */
+typedef struct _xsltTemplate xsltTemplate;
+typedef xsltTemplate *xsltTemplatePtr;
+struct _xsltTemplate {
+    struct _xsltTemplate *next;/* chained list sorted by priority */
+    struct _xsltStylesheet *style;/* the containing stylesheet */
+    xmlChar *match;	/* the matching string */
+    float priority;	/* as given from the stylesheet, not computed */
+    xmlChar *name;	/* the local part of the name QName */
+    xmlChar *nameURI;	/* the URI part of the name QName */
+    const xmlChar *mode;/* the local part of the mode QName */
+    const xmlChar *modeURI;/* the URI part of the mode QName */
+    xmlNodePtr content;	/* the template replacement value */
+    xmlNodePtr elem;	/* the source element */
+
+    int inheritedNsNr;  /* number of inherited namespaces */
+    xmlNsPtr *inheritedNs;/* inherited non-excluded namespaces */
+
+    /* Profiling informations */
+    int nbCalls;        /* the number of time the template was called */
+    unsigned long time; /* the time spent in this template */
+};
+
+/**
+ * xsltDecimalFormat:
+ *
+ * Data structure of decimal-format.
+ */
+typedef struct _xsltDecimalFormat xsltDecimalFormat;
+typedef xsltDecimalFormat *xsltDecimalFormatPtr;
+struct _xsltDecimalFormat {
+    struct _xsltDecimalFormat *next; /* chained list */
+    xmlChar *name;
+    /* Used for interpretation of pattern */
+    xmlChar *digit;
+    xmlChar *patternSeparator;
+    /* May appear in result */
+    xmlChar *minusSign;
+    xmlChar *infinity;
+    xmlChar *noNumber; /* Not-a-number */
+    /* Used for interpretation of pattern and may appear in result */
+    xmlChar *decimalPoint;
+    xmlChar *grouping;
+    xmlChar *percent;
+    xmlChar *permille;
+    xmlChar *zeroDigit;
+};
+
+/**
+ * xsltDocument:
+ *
+ * Data structure associated to a parsed document.
+ */
+
+typedef struct _xsltDocument xsltDocument;
+typedef xsltDocument *xsltDocumentPtr;
+struct _xsltDocument {
+    struct _xsltDocument *next;	/* documents are kept in a chained list */
+    int main;			/* is this the main document */
+    xmlDocPtr doc;		/* the parsed document */
+    void *keys;			/* key tables storage */
+    struct _xsltDocument *includes; /* subsidiary includes */
+    int preproc;		/* pre-processing already done */
+};
+
+/*
+ * The in-memory structure corresponding to an XSLT Stylesheet.
+ * NOTE: most of the content is simply linked from the doc tree
+ *       structure, no specific allocation is made.
+ */
+typedef struct _xsltStylesheet xsltStylesheet;
+typedef xsltStylesheet *xsltStylesheetPtr;
+
+typedef struct _xsltTransformContext xsltTransformContext;
+typedef xsltTransformContext *xsltTransformContextPtr;
+
+/**
+ * xsltElemPreComp:
+ *
+ * The in-memory structure corresponding to element precomputed data,
+ * designed to be extended by extension implementors.
+ */
+typedef struct _xsltElemPreComp xsltElemPreComp;
+typedef xsltElemPreComp *xsltElemPreCompPtr;
+
+/**
+ * xsltTransformFunction:
+ * @ctxt: the XSLT transformation context
+ * @node: the input node
+ * @inst: the stylesheet node
+ * @comp: the compiled information from the stylesheet
+ *
+ * Signature of the function associated to elements part of the
+ * stylesheet language like xsl:if or xsl:apply-templates.
+ */
+typedef void (*xsltTransformFunction) (xsltTransformContextPtr ctxt,
+	                               xmlNodePtr node,
+				       xmlNodePtr inst,
+			               xsltElemPreCompPtr comp);
+
+/**
+ * xsltSortFunc:
+ * @ctxt:    a transformation context
+ * @sorts:   the node-set to sort
+ * @nbsorts: the number of sorts
+ *
+ * Signature of the function to use during sorting
+ */
+typedef void (*xsltSortFunc) (xsltTransformContextPtr ctxt, xmlNodePtr *sorts,
+			      int nbsorts);
+
+typedef enum {
+    XSLT_FUNC_COPY=1,
+    XSLT_FUNC_SORT,
+    XSLT_FUNC_TEXT,
+    XSLT_FUNC_ELEMENT,
+    XSLT_FUNC_ATTRIBUTE,
+    XSLT_FUNC_COMMENT,
+    XSLT_FUNC_PI,
+    XSLT_FUNC_COPYOF,
+    XSLT_FUNC_VALUEOF,
+    XSLT_FUNC_NUMBER,
+    XSLT_FUNC_APPLYIMPORTS,
+    XSLT_FUNC_CALLTEMPLATE,
+    XSLT_FUNC_APPLYTEMPLATES,
+    XSLT_FUNC_CHOOSE,
+    XSLT_FUNC_IF,
+    XSLT_FUNC_FOREACH,
+    XSLT_FUNC_DOCUMENT,
+    XSLT_FUNC_WITHPARAM,
+    XSLT_FUNC_PARAM,
+    XSLT_FUNC_VARIABLE,
+    XSLT_FUNC_WHEN,
+    XSLT_FUNC_EXTENSION,
+    XSLT_FUNC_OTHERWISE,
+} xsltStyleType;
+
+/**
+ * xsltElemPreCompDeallocator:
+ * @comp:  the #xsltElemPreComp to free up
+ *
+ * Deallocates an #xsltElemPreComp structure.
+ */
+typedef void (*xsltElemPreCompDeallocator) (xsltElemPreCompPtr comp);
+
+/**
+ * xsltElemPreComp:
+ *
+ * The basic structure for compiled items of the AST of the XSLT processor.
+ * This structure is also intended to be extended by extension implementors.
+ * TODO: This is somehow not nice, since it has a "free" field, which
+ *   derived stylesheet-structs do not have.
+ */
+struct _xsltElemPreComp {
+    xsltElemPreCompPtr next;		/* next item in the global chained
+					   list hold by xsltStylesheet. */
+    xsltStyleType type;			/* type of the element */
+    xsltTransformFunction func; 	/* handling function */
+    xmlNodePtr inst;			/* the node in the stylesheet's tree
+					   corresponding to this item */
+
+    /* end of common part */
+    xsltElemPreCompDeallocator free;	/* the deallocator */
+};
+
+/**
+ * xsltStylePreComp:
+ *
+ * The abstract basic structure for items of the
+ * AST of the XSLT processor.
+ * The AST includes:
+ * 1) compiled forms of XSLT instructions (xsl:if, xsl:attribute, etc.)
+ * 2) compiled forms of literal result elements
+ */
+typedef struct _xsltStylePreComp xsltStylePreComp;
+typedef xsltStylePreComp *xsltStylePreCompPtr;
+
+/*************************
+ * Refactored structures *
+ *************************/
+#ifdef XSLT_REFACTORED
+
+typedef struct _xsltNsList xsltNsList;
+
+typedef xsltNsList *xsltNsListPtr;
+struct _xsltNsList {
+    xmlNsPtr *list;
+    int number;
+};
+
+#if 0
+/*
+ * TODO: xsltBasicItem is not used yet; maybe never will be used, since
+ * xsltElemPreCompPtr is acting as the base type for the compiled
+ * items of a stylesheet. It seems not practical to try to change
+ * this type to xsltBasicItemPtr, since xsltElemPreCompPtr is
+ * used already used too massively (e.g. xsltStylesheet->preComps) and
+ * for extension functions.
+ */
+/**
+ * xsltBasicItem:
+ *
+ * The basic structure for all items of the AST of the XSLT processor.
+ */
+typedef struct _xsltBasicItem xsltBasicItem;
+
+typedef xsltBasicItem *xsltBasicItemPtr;
+struct _xsltBasicItem {
+    xsltBasicASTItemPtr next;
+    xsltStyleType type;
+};
+#endif
+
+/**
+ * XSLT_ITEM_COMPATIBILITY_FIELDS:
+ * 
+ * Fields for API compatibility to the structure
+ * _xsltElemPreComp which is used for extension functions.
+ * TODO: Evaluate if we really need such a compatibility.
+ */
+#define XSLT_ITEM_COMPATIBILITY_FIELDS \
+    xsltElemPreCompPtr next;\
+    xsltStyleType type;\
+    xsltTransformFunction func;\
+    xmlNodePtr inst;
+
+/**
+ * XSLT_ITEM_NAVIGATION_FIELDS:
+ *
+ * Currently empty.
+ * TODO: It is intended to hold navigational fields in the future.
+ */
+#define XSLT_ITEM_NAVIGATION_FIELDS
+/*
+    xsltStylePreCompPtr parent;\
+    xsltStylePreCompPtr children;\
+    xsltStylePreCompPtr nextItem; 
+*/
+
+/**
+ * XSLT_ITEM_NSINSCOPE_FIELDS:
+ *
+ * The in-scope namespaces.
+ */
+#define XSLT_ITEM_NSINSCOPE_FIELDS xsltNsListPtr inScopeNS;
+
+/**
+ * XSLT_ITEM_COMMON_FIELDS:
+ *
+ * Common fields used for all items.
+ */
+#define XSLT_ITEM_COMMON_FIELDS \
+    XSLT_ITEM_COMPATIBILITY_FIELDS \
+    XSLT_ITEM_NAVIGATION_FIELDS \
+    XSLT_ITEM_NSINSCOPE_FIELDS
+
+/**
+ * _xsltStylePreComp: 
+ *
+ * The abstract basic structure for items of the XSLT processor.
+ * This includes:
+ * 1) compiled forms of XSLT instructions (e.g. xsl:if, xsl:attribute, etc.)
+ * 2) compiled forms of literal result elements
+ * 3) various properties for XSLT instructions (e.g. xsl:when,
+ *    xsl:with-param)
+ *
+ * REVISIT TODO: Keep this structure equal to the fields
+ *   defined by XSLT_ITEM_COMMON_FIELDS
+ */
+struct _xsltStylePreComp {
+    xsltElemPreCompPtr next;    /* next item in the global chained
+				   list hold by xsltStylesheet */
+    xsltStyleType type;         /* type of the item */ 
+    xsltTransformFunction func; /* handling function */
+    xmlNodePtr inst;		/* the node in the stylesheet's tree
+				   corresponding to this item. */
+    /* Currenlty to navigational fields. */
+    xsltNsListPtr inScopeNS;
+};
+
+/**
+ * xsltStyleBasicEmptyItem:
+ * 
+ * Abstract structure only used as a short-cut for
+ * XSLT items with no extra fields.
+ * NOTE that it is intended that this structure looks the same as
+ *  _xsltStylePreComp.
+ */
+typedef struct _xsltStyleBasicEmptyItem xsltStyleBasicEmptyItem;
+typedef xsltStyleBasicEmptyItem *xsltStyleBasicEmptyItemPtr;
+
+struct _xsltStyleBasicEmptyItem {
+    XSLT_ITEM_COMMON_FIELDS
+};
+
+/**
+ * xsltStyleBasicExpressionItem:
+ * 
+ * Abstract structure only used as a short-cut for
+ * XSLT items with just an expression.
+ */
+typedef struct _xsltStyleBasicExpressionItem xsltStyleBasicExpressionItem;
+typedef xsltStyleBasicExpressionItem *xsltStyleBasicExpressionItemPtr;
+
+struct _xsltStyleBasicExpressionItem {
+    XSLT_ITEM_COMMON_FIELDS
+
+    const xmlChar *select; /* TODO: Change this to "expression". */
+    xmlXPathCompExprPtr comp; /* TODO: Change this to compExpr. */
+};
+
+/************************************************************************
+ *									*
+ * XSLT-instructions/declarations                                       *
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltStyleItemElement:
+ * 
+ * <!-- Category: instruction -->
+ * <xsl:element
+ *  name = { qname }
+ *  namespace = { uri-reference }
+ *  use-attribute-sets = qnames>
+ *  <!-- Content: template -->
+ * </xsl:element>
+ */
+typedef struct _xsltStyleItemElement xsltStyleItemElement;
+typedef xsltStyleItemElement *xsltStyleItemElementPtr;
+
+struct _xsltStyleItemElement {
+    XSLT_ITEM_COMMON_FIELDS 
+
+    const xmlChar *use;		/* copy, element */
+    int      has_use;		/* copy, element */
+    const xmlChar *name;	/* element, attribute, pi */
+    int      has_name;		/* element, attribute, pi */
+    const xmlChar *ns;		/* element */
+    int      has_ns;		/* element */
+
+};
+
+/**
+ * xsltStyleItemAttribute:
+ *
+ * <!-- Category: instruction -->
+ * <xsl:attribute
+ *  name = { qname }
+ *  namespace = { uri-reference }>
+ *  <!-- Content: template -->
+ * </xsl:attribute>
+ */
+typedef struct _xsltStyleItemAttribute xsltStyleItemAttribute;
+typedef xsltStyleItemAttribute *xsltStyleItemAttributePtr;
+
+struct _xsltStyleItemAttribute {
+    XSLT_ITEM_COMMON_FIELDS
+    const xmlChar *name;	/* element, attribute, pi */
+    int      has_name;		/* element, attribute, pi */
+    const xmlChar *ns;		/* element  attribute */
+    int      has_ns;		/* element  attribute */
+};
+
+/**
+ * xsltStyleItemText:
+ *
+ * <!-- Category: instruction -->
+ * <xsl:text
+ *  disable-output-escaping = "yes" | "no">
+ *  <!-- Content: #PCDATA -->
+ * </xsl:text>
+ */
+typedef struct _xsltStyleItemText xsltStyleItemText;
+typedef xsltStyleItemText *xsltStyleItemTextPtr;
+
+struct _xsltStyleItemText {
+    XSLT_ITEM_COMMON_FIELDS
+    int      noescape;		/* text */
+};
+
+/**
+ * xsltStyleItemComment:
+ *
+ * <!-- Category: instruction -->
+ *  <xsl:comment>
+ *  <!-- Content: template -->
+ * </xsl:comment>
+ */
+typedef xsltStyleBasicEmptyItem xsltStyleItemComment;
+typedef xsltStyleItemComment *xsltStyleItemCommentPtr;
+
+/**
+ * xsltStyleItemPI:
+ *
+ * <!-- Category: instruction -->
+ *  <xsl:processing-instruction
+ *  name = { ncname }>
+ *  <!-- Content: template -->
+ * </xsl:processing-instruction>
+ */
+typedef struct _xsltStyleItemPI xsltStyleItemPI;
+typedef xsltStyleItemPI *xsltStyleItemPIPtr;
+
+struct _xsltStyleItemPI {
+    XSLT_ITEM_COMMON_FIELDS
+    const xmlChar *name;
+    int      has_name;
+};
+
+/**
+ * xsltStyleItemApplyImports:
+ *
+ * <!-- Category: instruction -->
+ * <xsl:apply-imports />
+ */
+typedef xsltStyleBasicEmptyItem xsltStyleItemApplyImports;
+typedef xsltStyleItemApplyImports *xsltStyleItemApplyImportsPtr;
+
+/**
+ * xsltStyleItemApplyTemplates:
+ *
+ * <!-- Category: instruction -->
+ *  <xsl:apply-templates
+ *  select = node-set-expression
+ *  mode = qname>
+ *  <!-- Content: (xsl:sort | xsl:with-param)* -->
+ * </xsl:apply-templates>
+ */
+typedef struct _xsltStyleItemApplyTemplates xsltStyleItemApplyTemplates;
+typedef xsltStyleItemApplyTemplates *xsltStyleItemApplyTemplatesPtr;
+
+struct _xsltStyleItemApplyTemplates {
+   XSLT_ITEM_COMMON_FIELDS
+
+    const xmlChar *mode;	/* apply-templates */
+    const xmlChar *modeURI;	/* apply-templates */
+    const xmlChar *select;	/* sort, copy-of, value-of, apply-templates */
+    xmlXPathCompExprPtr comp;	/* a precompiled XPath expression */
+    /* TODO: with-params */
+};
+
+/**
+ * xsltStyleItemCallTemplate:
+ *
+ * <!-- Category: instruction -->
+ *  <xsl:call-template
+ *  name = qname>
+ *  <!-- Content: xsl:with-param* -->
+ * </xsl:call-template>
+ */
+typedef struct _xsltStyleItemCallTemplate xsltStyleItemCallTemplate;
+typedef xsltStyleItemCallTemplate *xsltStyleItemCallTemplatePtr;
+
+struct _xsltStyleItemCallTemplate {
+    XSLT_ITEM_COMMON_FIELDS
+
+    xsltTemplatePtr templ;	/* call-template */
+    const xmlChar *name;	/* element, attribute, pi */
+    int      has_name;		/* element, attribute, pi */
+    const xmlChar *ns;		/* element */
+    int      has_ns;		/* element */
+    /* TODO: with-params */
+};
+
+/**
+ * xsltStyleItemCopy:
+ *
+ * <!-- Category: instruction -->
+ * <xsl:copy
+ *  use-attribute-sets = qnames>
+ *  <!-- Content: template -->
+ * </xsl:copy>
+ */
+typedef struct _xsltStyleItemCopy xsltStyleItemCopy;
+typedef xsltStyleItemCopy *xsltStyleItemCopyPtr;
+
+struct _xsltStyleItemCopy {
+   XSLT_ITEM_COMMON_FIELDS
+    const xmlChar *use;		/* copy, element */
+    int      has_use;		/* copy, element */    
+};
+
+/**
+ * xsltStyleItemIf:
+ *
+ * <!-- Category: instruction -->
+ *  <xsl:if
+ *  test = boolean-expression>
+ *  <!-- Content: template -->
+ * </xsl:if>
+ */
+typedef struct _xsltStyleItemIf xsltStyleItemIf;
+typedef xsltStyleItemIf *xsltStyleItemIfPtr;
+
+struct _xsltStyleItemIf {
+    XSLT_ITEM_COMMON_FIELDS
+
+    const xmlChar *test;	/* if */
+    xmlXPathCompExprPtr comp;	/* a precompiled XPath expression */
+};
+
+
+/**
+ * xsltStyleItemCopyOf:
+ *
+ * <!-- Category: instruction -->
+ * <xsl:copy-of
+ *  select = expression />
+ */
+typedef xsltStyleBasicExpressionItem xsltStyleItemCopyOf;
+typedef xsltStyleItemCopyOf *xsltStyleItemCopyOfPtr;
+
+/**
+ * xsltStyleItemValueOf:
+ *
+ * <!-- Category: instruction -->
+ * <xsl:value-of
+ *  select = string-expression
+ *  disable-output-escaping = "yes" | "no" />
+ */
+typedef struct _xsltStyleItemValueOf xsltStyleItemValueOf;
+typedef xsltStyleItemValueOf *xsltStyleItemValueOfPtr;
+
+struct _xsltStyleItemValueOf {
+    XSLT_ITEM_COMMON_FIELDS
+
+    const xmlChar *select;
+    xmlXPathCompExprPtr comp;	/* a precompiled XPath expression */
+    int      noescape;
+};
+
+/**
+ * xsltStyleItemNumber:
+ *
+ * <!-- Category: instruction -->
+ *  <xsl:number
+ *  level = "single" | "multiple" | "any"
+ *  count = pattern
+ *  from = pattern
+ *  value = number-expression
+ *  format = { string }
+ *  lang = { nmtoken }
+ *  letter-value = { "alphabetic" | "traditional" }
+ *  grouping-separator = { char }
+ *  grouping-size = { number } />
+ */
+typedef struct _xsltStyleItemNumber xsltStyleItemNumber;
+typedef xsltStyleItemNumber *xsltStyleItemNumberPtr;
+
+struct _xsltStyleItemNumber {
+    XSLT_ITEM_COMMON_FIELDS
+    xsltNumberData numdata;	/* number */
+};
+
+/**
+ * xsltStyleItemChoose:
+ *
+ * <!-- Category: instruction -->
+ *  <xsl:choose>
+ *  <!-- Content: (xsl:when+, xsl:otherwise?) -->
+ * </xsl:choose>
+ */
+typedef xsltStyleBasicEmptyItem xsltStyleItemChoose;
+typedef xsltStyleItemChoose *xsltStyleItemChoosePtr;
+
+/**
+ * xsltStyleItemFallback:
+ *
+ * <!-- Category: instruction -->
+ *  <xsl:fallback>
+ *  <!-- Content: template -->
+ * </xsl:fallback>
+ */
+typedef xsltStyleBasicEmptyItem xsltStyleItemFallback;
+typedef xsltStyleItemFallback *xsltStyleItemFallbackPtr;
+
+/**
+ * xsltStyleItemForEach:
+ *
+ * <!-- Category: instruction -->
+ * <xsl:for-each
+ *   select = node-set-expression>
+ *   <!-- Content: (xsl:sort*, template) -->
+ * </xsl:for-each>
+ */
+typedef xsltStyleBasicExpressionItem xsltStyleItemForEach;
+typedef xsltStyleItemForEach *xsltStyleItemForEachPtr;
+
+/**
+ * xsltStyleItemMessage:
+ *
+ * <!-- Category: instruction -->
+ * <xsl:message
+ *   terminate = "yes" | "no">
+ *   <!-- Content: template -->
+ * </xsl:message>
+ */
+typedef struct _xsltStyleItemMessage xsltStyleItemMessage;
+typedef xsltStyleItemMessage *xsltStyleItemMessagePtr;
+
+struct _xsltStyleItemMessage {
+    XSLT_ITEM_COMMON_FIELDS    
+    int terminate;
+};
+
+/**
+ * xsltStyleItemDocument:
+ *
+ * NOTE: This is not an instruction of XSLT 1.0.
+ */
+typedef struct _xsltStyleItemDocument xsltStyleItemDocument;
+typedef xsltStyleItemDocument *xsltStyleItemDocumentPtr;
+
+struct _xsltStyleItemDocument {
+    XSLT_ITEM_COMMON_FIELDS
+    int      ver11;		/* assigned: in xsltDocumentComp;
+                                  read: nowhere;
+                                  TODO: Check if we need. */
+    const xmlChar *filename;	/* document URL */
+    int has_filename;
+};   
+
+/************************************************************************
+ *									*
+ * Non-instructions (actually properties of instructions/declarations)  *
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltStyleBasicItemVariable:
+ *
+ * Basic struct for xsl:variable, xsl:param and xsl:with-param.
+ * It's currently important to have equal fields, since
+ * xsltParseStylesheetCallerParam() is used with xsl:with-param from
+ * the xslt side and with xsl:param from the exslt side (in
+ * exsltFuncFunctionFunction()).
+ *
+ * FUTURE NOTE: In XSLT 2.0 xsl:param, xsl:variable and xsl:with-param
+ *   have additional different fields.
+ */
+typedef struct _xsltStyleBasicItemVariable xsltStyleBasicItemVariable;
+typedef xsltStyleBasicItemVariable *xsltStyleBasicItemVariablePtr;
+
+struct _xsltStyleBasicItemVariable {
+    XSLT_ITEM_COMMON_FIELDS
+
+    const xmlChar *select;
+    xmlXPathCompExprPtr comp;
+
+    const xmlChar *name;
+    int      has_name;
+    const xmlChar *ns;
+    int      has_ns;
+};
+
+/**
+ * xsltStyleItemVariable:
+ *
+ * <!-- Category: top-level-element -->
+ * <xsl:param
+ *   name = qname
+ *   select = expression>
+ *   <!-- Content: template -->
+ * </xsl:param>
+ */
+typedef xsltStyleBasicItemVariable xsltStyleItemVariable;
+typedef xsltStyleItemVariable *xsltStyleItemVariablePtr;
+
+/**
+ * xsltStyleItemParam:
+ *
+ * <!-- Category: top-level-element -->
+ * <xsl:param
+ *   name = qname
+ *   select = expression>
+ *   <!-- Content: template -->
+ * </xsl:param>
+ */
+typedef xsltStyleBasicItemVariable xsltStyleItemParam;
+typedef xsltStyleItemParam *xsltStyleItemParamPtr;
+
+/**
+ * xsltStyleItemWithParam:
+ *
+ * <xsl:with-param
+ *  name = qname
+ *  select = expression>
+ *  <!-- Content: template -->
+ * </xsl:with-param>
+ */
+typedef xsltStyleBasicItemVariable xsltStyleItemWithParam;
+typedef xsltStyleItemWithParam *xsltStyleItemWithParamPtr;
+
+/**
+ * xsltStyleItemSort:
+ *
+ * Reflects the XSLT xsl:sort item.
+ * Allowed parents: xsl:apply-templates, xsl:for-each
+ * <xsl:sort
+ *   select = string-expression
+ *   lang = { nmtoken }
+ *   data-type = { "text" | "number" | qname-but-not-ncname }
+ *   order = { "ascending" | "descending" }
+ *   case-order = { "upper-first" | "lower-first" } />
+ */
+typedef struct _xsltStyleItemSort xsltStyleItemSort;
+typedef xsltStyleItemSort *xsltStyleItemSortPtr;
+
+struct _xsltStyleItemSort {
+    XSLT_ITEM_COMMON_FIELDS
+
+    const xmlChar *stype;       /* sort */
+    int      has_stype;		/* sort */
+    int      number;		/* sort */
+    const xmlChar *order;	/* sort */
+    int      has_order;		/* sort */
+    int      descending;	/* sort */
+    const xmlChar *lang;	/* sort */
+    int      has_lang;		/* sort */
+    const xmlChar *case_order;	/* sort */
+    int      lower_first;	/* sort */
+
+    const xmlChar *use;
+    int      has_use;
+
+    const xmlChar *select;	/* sort, copy-of, value-of, apply-templates */
+
+    xmlXPathCompExprPtr comp;	/* a precompiled XPath expression */
+};
+
+
+/**
+ * xsltStyleItemWhen:
+ * 
+ * <xsl:when
+ *   test = boolean-expression>
+ *   <!-- Content: template -->
+ * </xsl:when>
+ * Allowed parent: xsl:choose
+ */
+typedef struct _xsltStyleItemWhen xsltStyleItemWhen;
+typedef xsltStyleItemWhen *xsltStyleItemWhenPtr;
+
+struct _xsltStyleItemWhen {
+    XSLT_ITEM_COMMON_FIELDS
+
+    const xmlChar *test;
+    xmlXPathCompExprPtr comp;
+};
+
+/**
+ * xsltStyleItemOtherwise:
+ *
+ * Allowed parent: xsl:choose
+ * <xsl:otherwise>
+ *   <!-- Content: template -->
+ * </xsl:otherwise>
+ */
+typedef struct _xsltStyleItemOtherwise xsltStyleItemOtherwise;
+typedef xsltStyleItemOtherwise *xsltStyleItemOtherwisePtr;
+
+struct _xsltStyleItemOtherwise {
+    XSLT_ITEM_COMMON_FIELDS
+};
+
+/*
+ * Literal result elements.
+ * TODO: Not used yet.
+ */
+typedef struct _xsltStyleItemLRE xsltStyleItemLRE;
+typedef xsltStyleItemLRE *xsltStyleItemLREPtr;
+struct _xsltStyleItemLRE {
+    XSLT_ITEM_COMMON_FIELDS
+};
+
+/************************************************************************
+ *									*
+ *  Compile-time structures for *internal* use only                     *
+ *									*
+ ************************************************************************/
+
+/**
+ * xsltCompilerNodeInfo:
+ *
+ * Per-node information during compile-time.
+ */
+typedef struct _xsltCompilerNodeInfo xsltCompilerNodeInfo;
+typedef xsltCompilerNodeInfo *xsltCompilerNodeInfoPtr;
+struct _xsltCompilerNodeInfo {
+    xsltCompilerNodeInfoPtr next;
+    xsltCompilerNodeInfoPtr prev;
+    xmlNodePtr node;
+    int depth;
+    xsltNsListPtr inScopeNS; /* The in-scope namespaces for the current
+                                position in the node-tree */
+    xsltTemplatePtr templ;   /* The owning template */
+    xsltElemPreCompPtr item; /* The compiled information */
+};
+
+#define XSLT_CCTXT(style) ((xsltCompilerCtxtPtr) style->compCtxt)
+
+typedef struct _xsltCompilerCtxt xsltCompilerCtxt;
+typedef xsltCompilerCtxt *xsltCompilerCtxtPtr;
+struct _xsltCompilerCtxt {
+    void *errorCtxt;             /* user specific error context */
+    int warnings;		/* TODO: number of warnings found at
+                                   compilation */
+    int errors;			/* TODO: number of errors found at
+                                   compilation */
+    xsltStylesheetPtr sheet;
+    /* TODO: structured/unstructured error contexts. */
+    int depth; /* TODO: current depth in the stylesheets node-tree */
+    
+    xsltCompilerNodeInfoPtr inode;
+    xsltCompilerNodeInfoPtr inodeList;
+    xsltCompilerNodeInfoPtr inodeLast;
+};   
+
+#else /* XSLT_REFACTORED */
+/*
+* The old structures before refactoring.
+*/
+
+/**
+ * _xsltStylePreComp:
+ *
+ * The in-memory structure corresponding to XSLT stylesheet constructs
+ * precomputed data.
+ */
+struct _xsltStylePreComp {
+    xsltElemPreCompPtr next;	/* chained list */
+    xsltStyleType type;		/* type of the element */
+    xsltTransformFunction func; /* handling function */
+    xmlNodePtr inst;		/* the instruction */
+
+    /*
+     * Pre computed values.
+     */
+
+    const xmlChar *stype;       /* sort */
+    int      has_stype;		/* sort */
+    int      number;		/* sort */
+    const xmlChar *order;	/* sort */
+    int      has_order;		/* sort */
+    int      descending;	/* sort */
+    const xmlChar *lang;	/* sort */
+    int      has_lang;		/* sort */
+    const xmlChar *case_order;	/* sort */
+    int      lower_first;	/* sort */
+
+    const xmlChar *use;		/* copy, element */
+    int      has_use;		/* copy, element */
+
+    int      noescape;		/* text */
+
+    const xmlChar *name;	/* element, attribute, pi */
+    int      has_name;		/* element, attribute, pi */
+    const xmlChar *ns;		/* element */
+    int      has_ns;		/* element */
+
+    const xmlChar *mode;	/* apply-templates */
+    const xmlChar *modeURI;	/* apply-templates */
+
+    const xmlChar *test;	/* if */
+
+    xsltTemplatePtr templ;	/* call-template */
+
+    const xmlChar *select;	/* sort, copy-of, value-of, apply-templates */
+
+    int      ver11;		/* document */
+    const xmlChar *filename;	/* document URL */
+    int      has_filename;	/* document */
+
+    xsltNumberData numdata;	/* number */
+
+    xmlXPathCompExprPtr comp;	/* a precompiled XPath expression */
+    xmlNsPtr *nsList;		/* the namespaces in scope */
+    int nsNr;			/* the number of namespaces in scope */
+};
+
+#endif /* XSLT_REFACTORED */
+
+/*
+ * The in-memory structure corresponding to an XSLT Variable
+ * or Param.
+ */
+typedef struct _xsltStackElem xsltStackElem;
+typedef xsltStackElem *xsltStackElemPtr;
+struct _xsltStackElem {
+    struct _xsltStackElem *next;/* chained list */
+    xsltStylePreCompPtr comp;   /* the compiled form */
+    int computed;		/* was the evaluation done */
+    const xmlChar *name;	/* the local part of the name QName */
+    const xmlChar *nameURI;	/* the URI part of the name QName */
+    const xmlChar *select;	/* the eval string */
+    xmlNodePtr tree;		/* the tree if no eval string or the location */
+    xmlXPathObjectPtr value;	/* The value if computed */
+};
+
+/*
+ * TODO: We need a field to anchor an stylesheet compilation context, since,
+ *   due to historical reasons, various compile-time function take only the
+ *   stylesheet as argument and not a compilation context.
+ */
+struct _xsltStylesheet {
+    /*
+     * The stylesheet import relation is kept as a tree.
+     */
+    struct _xsltStylesheet *parent;
+    struct _xsltStylesheet *next;
+    struct _xsltStylesheet *imports;
+
+    xsltDocumentPtr docList;		/* the include document list */
+
+    /*
+     * General data on the style sheet document.
+     */
+    xmlDocPtr doc;		/* the parsed XML stylesheet */
+    xmlHashTablePtr stripSpaces;/* the hash table of the strip-space and
+				   preserve space elements */
+    int             stripAll;	/* strip-space * (1) preserve-space * (-1) */
+    xmlHashTablePtr cdataSection;/* the hash table of the cdata-section */
+
+    /*
+     * Global variable or parameters.
+     */
+    xsltStackElemPtr variables; /* linked list of param and variables */
+
+    /*
+     * Template descriptions.
+     */
+    xsltTemplatePtr templates;	/* the ordered list of templates */
+    void *templatesHash;	/* hash table or wherever compiled templates
+				   informations are stored */
+    void *rootMatch;		/* template based on / */
+    void *keyMatch;		/* template based on key() */
+    void *elemMatch;		/* template based on * */
+    void *attrMatch;		/* template based on @* */
+    void *parentMatch;		/* template based on .. */
+    void *textMatch;		/* template based on text() */
+    void *piMatch;		/* template based on processing-instruction() */
+    void *commentMatch;		/* template based on comment() */
+    
+    /*
+     * Namespace aliases.
+     */
+    xmlHashTablePtr nsAliases;	/* the namespace alias hash tables */
+
+    /*
+     * Attribute sets.
+     */
+    xmlHashTablePtr attributeSets;/* the attribute sets hash tables */
+
+    /*
+     * Namespaces.
+     */
+    xmlHashTablePtr nsHash;     /* the set of namespaces in use */
+    void           *nsDefs;     /* the namespaces defined */
+
+    /*
+     * Key definitions.
+     */
+    void *keys;				/* key definitions */
+
+    /*
+     * Output related stuff.
+     */
+    xmlChar *method;		/* the output method */
+    xmlChar *methodURI;		/* associated namespace if any */
+    xmlChar *version;		/* version string */
+    xmlChar *encoding;		/* encoding string */
+    int omitXmlDeclaration;     /* omit-xml-declaration = "yes" | "no" */
+
+    /* 
+     * Number formatting.
+     */
+    xsltDecimalFormatPtr decimalFormat;
+    int standalone;             /* standalone = "yes" | "no" */
+    xmlChar *doctypePublic;     /* doctype-public string */
+    xmlChar *doctypeSystem;     /* doctype-system string */
+    int indent;			/* should output being indented */
+    xmlChar *mediaType;		/* media-type string */
+
+    /*
+     * Precomputed blocks.
+     */
+    xsltElemPreCompPtr preComps;/* list of precomputed blocks */
+    int warnings;		/* number of warnings found at compilation */
+    int errors;			/* number of errors found at compilation */
+
+    xmlChar  *exclPrefix;	/* last excluded prefixes */
+    xmlChar **exclPrefixTab;	/* array of excluded prefixes */
+    int       exclPrefixNr;	/* number of excluded prefixes in scope */
+    int       exclPrefixMax;	/* size of the array */
+
+    void     *_private;		/* user defined data */
+
+    /*
+     * Extensions.
+     */
+    xmlHashTablePtr extInfos;	/* the extension data */
+    int		    extrasNr;	/* the number of extras required */
+
+    /*
+     * For keeping track of nested includes
+     */
+    xsltDocumentPtr includes;	/* points to last nested include */
+
+    /*
+     * dictionnary: shared between stylesheet, context and documents.
+     */
+    xmlDictPtr dict;
+    /*
+     * precompiled attribute value templates.
+     */
+    void *attVTs;
+    /*
+     * if namespace-alias has an alias for the default stylesheet prefix
+     */
+    const xmlChar *defaultAlias;
+    /*
+     * bypass pre-processing (already done) (used in imports)
+     */
+    int nopreproc;
+    /*
+     * all document text strings were internalized
+     */
+    int internalized;
+    /*
+     * Literal Result Element as Stylesheet c.f. section 2.3
+     */
+    int literal_result;
+#ifdef XSLT_REFACTORED
+    /*
+    * Compilation context used during compile-time.
+    */
+    void * compCtxt;
+    /*
+    * Namespace lists.
+    */
+    void *inScopeNamespaces;    
+#endif    
+};
+
+/*
+ * The in-memory structure corresponding to an XSLT Transformation.
+ */
+typedef enum {
+    XSLT_OUTPUT_XML = 0,
+    XSLT_OUTPUT_HTML,
+    XSLT_OUTPUT_TEXT
+} xsltOutputType;
+
+typedef enum {
+    XSLT_STATE_OK = 0,
+    XSLT_STATE_ERROR,
+    XSLT_STATE_STOPPED
+} xsltTransformState;
+
+struct _xsltTransformContext {
+    xsltStylesheetPtr style;		/* the stylesheet used */
+    xsltOutputType type;		/* the type of output */
+
+    xsltTemplatePtr  templ;		/* the current template */
+    int              templNr;		/* Nb of templates in the stack */
+    int              templMax;		/* Size of the templtes stack */
+    xsltTemplatePtr *templTab;		/* the template stack */
+
+    xsltStackElemPtr  vars;		/* the current variable list */
+    int               varsNr;		/* Nb of variable list in the stack */
+    int               varsMax;		/* Size of the variable list stack */
+    xsltStackElemPtr *varsTab;		/* the variable list stack */
+    int               varsBase;		/* the var base for current templ */
+
+    /*
+     * Extensions
+     */
+    xmlHashTablePtr   extFunctions;	/* the extension functions */
+    xmlHashTablePtr   extElements;	/* the extension elements */
+    xmlHashTablePtr   extInfos;		/* the extension data */
+
+    const xmlChar *mode;		/* the current mode */
+    const xmlChar *modeURI;		/* the current mode URI */
+
+    xsltDocumentPtr docList;		/* the document list */
+
+    xsltDocumentPtr document;		/* the current document */
+    xmlNodePtr node;			/* the current node being processed */
+    xmlNodeSetPtr nodeList;		/* the current node list */
+    /* xmlNodePtr current;			the node */
+
+    xmlDocPtr output;			/* the resulting document */
+    xmlNodePtr insert;			/* the insertion node */
+
+    xmlXPathContextPtr xpathCtxt;	/* the XPath context */
+    xsltTransformState state;		/* the current state */
+
+    /*
+     * Global variables
+     */
+    xmlHashTablePtr   globalVars;	/* the global variables and params */
+
+    xmlNodePtr inst;			/* the instruction in the stylesheet */
+
+    int xinclude;			/* should XInclude be processed */
+
+    const char *      outputFile;	/* the output URI if known */
+
+    int profile;                        /* is this run profiled */
+    long             prof;		/* the current profiled value */
+    int              profNr;		/* Nb of templates in the stack */
+    int              profMax;		/* Size of the templtaes stack */
+    long            *profTab;		/* the profile template stack */
+
+    void            *_private;		/* user defined data */
+
+    int              extrasNr;		/* the number of extras used */
+    int              extrasMax;		/* the number of extras allocated */
+    xsltRuntimeExtraPtr extras;		/* extra per runtime informations */
+
+    xsltDocumentPtr  styleList;		/* the stylesheet docs list */
+    void                 * sec;		/* the security preferences if any */
+
+    xmlGenericErrorFunc  error;		/* a specific error handler */
+    void              * errctx;		/* context for the error handler */
+
+    xsltSortFunc      sortfunc;		/* a ctxt specific sort routine */
+
+    /*
+     * handling of temporary Result Value Tree
+     */
+    xmlDocPtr       tmpRVT;		/* list of RVT without persistance */
+    xmlDocPtr       persistRVT;		/* list of persistant RVTs */
+    int             ctxtflags;          /* context processing flags */
+
+    /*
+     * Speed optimization when coalescing text nodes
+     */
+    const xmlChar  *lasttext;		/* last text node content */
+    unsigned int    lasttsize;		/* last text node size */
+    unsigned int    lasttuse;		/* last text node use */
+    /*
+     * Per Context Debugging
+     */
+    int debugStatus;			/* the context level debug status */
+    unsigned long* traceCode;		/* pointer to the variable holding the mask */
+
+    int parserOptions;			/* parser options xmlParserOption */
+
+    /*
+     * dictionnary: shared between stylesheet, context and documents.
+     */
+    xmlDictPtr dict;
+    /*
+     * temporary storage for doc ptr, currently only used for
+     * global var evaluation
+     */
+    xmlDocPtr		tmpDoc;
+    /*
+     * all document text strings are internalized
+     */
+    int internalized;
+};
+
+/**
+ * CHECK_STOPPED:
+ *
+ * Macro to check if the XSLT processing should be stopped.
+ * Will return from the function.
+ */
+#define CHECK_STOPPED if (ctxt->state == XSLT_STATE_STOPPED) return;
+
+/**
+ * CHECK_STOPPEDE:
+ *
+ * Macro to check if the XSLT processing should be stopped.
+ * Will goto the error: label.
+ */
+#define CHECK_STOPPEDE if (ctxt->state == XSLT_STATE_STOPPED) goto error;
+
+/**
+ * CHECK_STOPPED0:
+ *
+ * Macro to check if the XSLT processing should be stopped.
+ * Will return from the function with a 0 value.
+ */
+#define CHECK_STOPPED0 if (ctxt->state == XSLT_STATE_STOPPED) return(0);
+
+/*
+ * The macro XML_CAST_FPTR is a hack to avoid a gcc warning about
+ * possible incompatibilities between function pointers and object
+ * pointers.  It is defined in libxml/hash.h within recent versions
+ * of libxml2, but is put here for compatibility.
+ */
+#ifndef XML_CAST_FPTR
+/**
+ * XML_CAST_FPTR:
+ * @fptr:  pointer to a function
+ *
+ * Macro to do a casting from an object pointer to a
+ * function pointer without encountering a warning from
+ * gcc
+ *
+ * #define XML_CAST_FPTR(fptr) (*(void **)(&fptr))
+ * This macro violated ISO C aliasing rules (gcc4 on s390 broke)
+ * so it is disabled now
+ */
+
+#define XML_CAST_FPTR(fptr) fptr
+#endif
+/*
+ * Functions associated to the internal types
+xsltDecimalFormatPtr	xsltDecimalFormatGetByName(xsltStylesheetPtr sheet,
+						   xmlChar *name);
+ */
+XSLTPUBFUN xsltStylesheetPtr XSLTCALL	
+			xsltNewStylesheet	(void);
+XSLTPUBFUN xsltStylesheetPtr XSLTCALL	
+			xsltParseStylesheetFile	(const xmlChar* filename);
+XSLTPUBFUN void XSLTCALL			
+			xsltFreeStylesheet	(xsltStylesheetPtr sheet);
+XSLTPUBFUN int XSLTCALL			
+			xsltIsBlank		(xmlChar *str);
+XSLTPUBFUN void XSLTCALL			
+			xsltFreeStackElemList	(xsltStackElemPtr elem);
+XSLTPUBFUN xsltDecimalFormatPtr XSLTCALL	
+			xsltDecimalFormatGetByName(xsltStylesheetPtr sheet,
+						 xmlChar *name);
+
+XSLTPUBFUN xsltStylesheetPtr XSLTCALL	
+			xsltParseStylesheetProcess(xsltStylesheetPtr ret,
+						 xmlDocPtr doc);
+XSLTPUBFUN void XSLTCALL			
+			xsltParseStylesheetOutput(xsltStylesheetPtr style,
+						 xmlNodePtr cur);
+XSLTPUBFUN xsltStylesheetPtr XSLTCALL	
+			xsltParseStylesheetDoc	(xmlDocPtr doc);
+XSLTPUBFUN xsltStylesheetPtr XSLTCALL	
+			xsltParseStylesheetImportedDoc(xmlDocPtr doc,
+						xsltStylesheetPtr style);
+XSLTPUBFUN xsltStylesheetPtr XSLTCALL	
+			xsltLoadStylesheetPI	(xmlDocPtr doc);
+XSLTPUBFUN void XSLTCALL 			
+			xsltNumberFormat	(xsltTransformContextPtr ctxt,
+						 xsltNumberDataPtr data,
+						 xmlNodePtr node);
+XSLTPUBFUN xmlXPathError XSLTCALL		 
+			xsltFormatNumberConversion(xsltDecimalFormatPtr self,
+						 xmlChar *format,
+						 double number,
+						 xmlChar **result);
+
+XSLTPUBFUN void XSLTCALL			
+			xsltParseTemplateContent(xsltStylesheetPtr style,
+						 xmlNodePtr templ);
+XSLTPUBFUN int XSLTCALL			
+			xsltAllocateExtra	(xsltStylesheetPtr style);
+XSLTPUBFUN int XSLTCALL			
+			xsltAllocateExtraCtxt	(xsltTransformContextPtr ctxt);
+/*
+ * Extra functions for Result Value Trees
+ */
+XSLTPUBFUN xmlDocPtr XSLTCALL		
+			xsltCreateRVT		(xsltTransformContextPtr ctxt);
+XSLTPUBFUN int XSLTCALL			
+			xsltRegisterTmpRVT	(xsltTransformContextPtr ctxt,
+						 xmlDocPtr RVT);
+XSLTPUBFUN int XSLTCALL			
+			xsltRegisterPersistRVT	(xsltTransformContextPtr ctxt,
+						 xmlDocPtr RVT);
+XSLTPUBFUN void XSLTCALL			
+			xsltFreeRVTs		(xsltTransformContextPtr ctxt);
+			
+/*
+ * Extra functions for Attribute Value Templates
+ */
+XSLTPUBFUN void XSLTCALL
+			xsltCompileAttr		(xsltStylesheetPtr style,
+						 xmlAttrPtr attr);
+XSLTPUBFUN xmlChar * XSLTCALL
+			xsltEvalAVT		(xsltTransformContextPtr ctxt,
+						 void *avt,
+						 xmlNodePtr node);
+XSLTPUBFUN void XSLTCALL
+			xsltFreeAVTList		(void *avt);
+
+/************************************************************************
+ *									*
+ *  Compile-time functions for *internal* use only                      *
+ *									*
+ ************************************************************************/
+
+#ifdef XSLT_REFACTORED
+XSLTPUBFUN xsltNsListPtr XSLTCALL
+			xsltCompilerGetInScopeNSInfo(xsltCompilerCtxtPtr cctxt,
+						     xmlNodePtr node);
+#endif /* XSLT_REFACTORED */
+/*
+ * Extra function for successful xsltCleanupGlobals / xsltInit sequence.
+ */
+
+XSLTPUBFUN void XSLTCALL
+			xsltUninit		(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLT_H__ */
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/xsltconfig.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/xsltconfig.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/xsltconfig.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,155 @@
+/*
+ * Summary: compile-time version informations for the XSLT engine
+ * Description: compile-time version informations for the XSLT engine
+ *              this module is autogenerated.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLTCONFIG_H__
+#define __XML_XSLTCONFIG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * LIBXSLT_DOTTED_VERSION:
+ *
+ * the version string like "1.2.3"
+ */
+#define LIBXSLT_DOTTED_VERSION "1.1.16"
+
+/**
+ * LIBXSLT_VERSION:
+ *
+ * the version number: 1.2.3 value is 1002003
+ */
+#define LIBXSLT_VERSION 10116
+
+/**
+ * LIBXSLT_VERSION_STRING:
+ *
+ * the version number string, 1.2.3 value is "1002003"
+ */
+#define LIBXSLT_VERSION_STRING "10116"
+
+/**
+ * LIBXSLT_VERSION_EXTRA:
+ *
+ * extra version information, used to show a CVS compilation
+ */
+#define	LIBXSLT_VERSION_EXTRA "-CVS1050"
+
+/**
+ * WITH_XSLT_DEBUG:
+ *
+ * Activate the compilation of the debug reporting. Speed penalty
+ * is insignifiant and being able to run xsltpoc -v is useful. On
+ * by default unless --without-debug is passed to configure
+ */
+#if 1
+#define WITH_XSLT_DEBUG
+#endif
+
+#if 1
+/**
+ * DEBUG_MEMORY:
+ *
+ * should be activated only when debugging libxslt. It replaces the
+ * allocator with a collect and debug shell to the libc allocator.
+ * Use configure --with-mem-debug to activate it on both library
+ */
+#define DEBUG_MEMORY
+
+/**
+ * DEBUG_MEMORY_LOCATION:
+ *
+ * should be activated only when debugging libxslt.
+ * DEBUG_MEMORY_LOCATION should be activated only when libxml has
+ * been configured with --with-debug-mem too
+ */
+#define DEBUG_MEMORY_LOCATION
+#endif
+
+/**
+ * XSLT_NEED_TRIO:
+ *
+ * should be activated in the existing libc library lacks some of the
+ * string formatting function, in that case reuse the Trio ones already
+ * compiled in the libxml2 library.
+ */
+
+#if 0
+#define XSLT_NEED_TRIO
+#endif
+#ifdef __VMS
+#define HAVE_MATH_H 1
+#define HAVE_SYS_STAT_H 1
+#ifndef XSLT_NEED_TRIO
+#define XSLT_NEED_TRIO
+#endif
+#endif
+
+/**
+ * WITH_XSLT_DEBUGGER:
+ *
+ * Activate the compilation of the debugger support. Speed penalty
+ * is insignifiant.
+ * On by default unless --without-debugger is passed to configure
+ */
+#if 1
+#ifndef WITH_DEBUGGER
+#define WITH_DEBUGGER
+#endif
+#endif
+
+/**
+ * WITH_MODULES:
+ *
+ * Whether module support is configured into libxslt
+ * Note: no default module path for win32 platforms
+ */
+#if 1
+#ifndef WITH_MODULES
+#define WITH_MODULES
+#endif
+#define LIBXSLT_DEFAULT_PLUGINS_PATH() "/usr/lib/libxslt-plugins"
+#endif
+
+/**
+ * ATTRIBUTE_UNUSED:
+ *
+ * This macro is used to flag unused function parameters to GCC
+ */
+#ifdef __GNUC__
+#ifdef HAVE_ANSIDECL_H
+#include <ansidecl.h>
+#endif
+#ifndef ATTRIBUTE_UNUSED
+#define ATTRIBUTE_UNUSED __attribute__((unused))
+#endif
+#else
+#define ATTRIBUTE_UNUSED
+#endif
+
+/**
+ * LIBXSLT_PUBLIC:
+ *
+ * This macro is used to declare PUBLIC variables for Cygwin and for MSC on Windows
+ */
+#if !defined LIBXSLT_PUBLIC
+#if (defined(__CYGWIN__) || defined _MSC_VER) && !defined IN_LIBXSLT && !defined LIBXSLT_STATIC
+#define LIBXSLT_PUBLIC __declspec(dllimport)
+#else
+#define LIBXSLT_PUBLIC
+#endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLTCONFIG_H__ */

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/xsltconfig.h.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/xsltconfig.h.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/xsltconfig.h.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,155 @@
+/*
+ * Summary: compile-time version informations for the XSLT engine
+ * Description: compile-time version informations for the XSLT engine
+ *              this module is autogenerated.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLTCONFIG_H__
+#define __XML_XSLTCONFIG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * LIBXSLT_DOTTED_VERSION:
+ *
+ * the version string like "1.2.3"
+ */
+#define LIBXSLT_DOTTED_VERSION "@VERSION@"
+
+/**
+ * LIBXSLT_VERSION:
+ *
+ * the version number: 1.2.3 value is 1002003
+ */
+#define LIBXSLT_VERSION @LIBXSLT_VERSION_NUMBER@
+
+/**
+ * LIBXSLT_VERSION_STRING:
+ *
+ * the version number string, 1.2.3 value is "1002003"
+ */
+#define LIBXSLT_VERSION_STRING "@LIBXSLT_VERSION_NUMBER@"
+
+/**
+ * LIBXSLT_VERSION_EXTRA:
+ *
+ * extra version information, used to show a CVS compilation
+ */
+#define	LIBXSLT_VERSION_EXTRA "@LIBXSLT_VERSION_EXTRA@"
+
+/**
+ * WITH_XSLT_DEBUG:
+ *
+ * Activate the compilation of the debug reporting. Speed penalty
+ * is insignifiant and being able to run xsltpoc -v is useful. On
+ * by default unless --without-debug is passed to configure
+ */
+#if @WITH_XSLT_DEBUG@
+#define WITH_XSLT_DEBUG
+#endif
+
+#if @WITH_MEM_DEBUG@
+/**
+ * DEBUG_MEMORY:
+ *
+ * should be activated only when debugging libxslt. It replaces the
+ * allocator with a collect and debug shell to the libc allocator.
+ * Use configure --with-mem-debug to activate it on both library
+ */
+#define DEBUG_MEMORY
+
+/**
+ * DEBUG_MEMORY_LOCATION:
+ *
+ * should be activated only when debugging libxslt.
+ * DEBUG_MEMORY_LOCATION should be activated only when libxml has
+ * been configured with --with-debug-mem too
+ */
+#define DEBUG_MEMORY_LOCATION
+#endif
+
+/**
+ * XSLT_NEED_TRIO:
+ *
+ * should be activated in the existing libc library lacks some of the
+ * string formatting function, in that case reuse the Trio ones already
+ * compiled in the libxml2 library.
+ */
+
+#if @WITH_TRIO@
+#define XSLT_NEED_TRIO
+#endif
+#ifdef __VMS
+#define HAVE_MATH_H 1
+#define HAVE_SYS_STAT_H 1
+#ifndef XSLT_NEED_TRIO
+#define XSLT_NEED_TRIO
+#endif
+#endif
+
+/**
+ * WITH_XSLT_DEBUGGER:
+ *
+ * Activate the compilation of the debugger support. Speed penalty
+ * is insignifiant.
+ * On by default unless --without-debugger is passed to configure
+ */
+#if @WITH_DEBUGGER@
+#ifndef WITH_DEBUGGER
+#define WITH_DEBUGGER
+#endif
+#endif
+
+/**
+ * WITH_MODULES:
+ *
+ * Whether module support is configured into libxslt
+ * Note: no default module path for win32 platforms
+ */
+#if @WITH_MODULES@
+#ifndef WITH_MODULES
+#define WITH_MODULES
+#endif
+#define LIBXSLT_DEFAULT_PLUGINS_PATH() "@LIBXSLT_DEFAULT_PLUGINS_PATH@"
+#endif
+
+/**
+ * ATTRIBUTE_UNUSED:
+ *
+ * This macro is used to flag unused function parameters to GCC
+ */
+#ifdef __GNUC__
+#ifdef HAVE_ANSIDECL_H
+#include <ansidecl.h>
+#endif
+#ifndef ATTRIBUTE_UNUSED
+#define ATTRIBUTE_UNUSED __attribute__((unused))
+#endif
+#else
+#define ATTRIBUTE_UNUSED
+#endif
+
+/**
+ * LIBXSLT_PUBLIC:
+ *
+ * This macro is used to declare PUBLIC variables for Cygwin and for MSC on Windows
+ */
+#if !defined LIBXSLT_PUBLIC
+#if (defined(__CYGWIN__) || defined _MSC_VER) && !defined IN_LIBXSLT && !defined LIBXSLT_STATIC
+#define LIBXSLT_PUBLIC __declspec(dllimport)
+#else
+#define LIBXSLT_PUBLIC
+#endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLTCONFIG_H__ */

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/xsltexports.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/xsltexports.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/xsltexports.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,142 @@
+/*
+ * Summary: macros for marking symbols as exportable/importable.
+ * Description: macros for marking symbols as exportable/importable.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Igor Zlatkovic <igor at zlatkovic.com>
+ */
+
+#ifndef __XSLT_EXPORTS_H__
+#define __XSLT_EXPORTS_H__
+
+/**
+ * XSLTPUBFUN:
+ * XSLTPUBFUN, XSLTPUBVAR, XSLTCALL
+ *
+ * Macros which declare an exportable function, an exportable variable and
+ * the calling convention used for functions.
+ *
+ * Please use an extra block for every platform/compiler combination when
+ * modifying this, rather than overlong #ifdef lines. This helps
+ * readability as well as the fact that different compilers on the same
+ * platform might need different definitions.
+ */
+
+/**
+ * XSLTPUBFUN:
+ *
+ * Macros which declare an exportable function
+ */
+#define XSLTPUBFUN
+/**
+ * XSLTPUBVAR:
+ *
+ * Macros which declare an exportable variable
+ */
+#define XSLTPUBVAR extern
+/**
+ * XSLTCALL:
+ *
+ * Macros which declare the called convention for exported functions
+ */
+#define XSLTCALL
+
+/** DOC_DISABLE */
+
+/* Windows platform with MS compiler */
+#if defined(_WIN32) && defined(_MSC_VER)
+  #undef XSLTPUBFUN
+  #undef XSLTPUBVAR
+  #undef XSLTCALL
+  #if defined(IN_LIBXSLT) && !defined(LIBXSLT_STATIC)
+    #define XSLTPUBFUN __declspec(dllexport)
+    #define XSLTPUBVAR __declspec(dllexport)
+  #else
+    #define XSLTPUBFUN
+    #if !defined(LIBXSLT_STATIC)
+      #define XSLTPUBVAR __declspec(dllimport) extern
+    #else
+      #define XSLTPUBVAR extern
+    #endif
+  #endif
+  #define XSLTCALL __cdecl
+  #if !defined _REENTRANT
+    #define _REENTRANT
+  #endif
+#endif
+
+/* Windows platform with Borland compiler */
+#if defined(_WIN32) && defined(__BORLANDC__)
+  #undef XSLTPUBFUN
+  #undef XSLTPUBVAR
+  #undef XSLTCALL
+  #if defined(IN_LIBXSLT) && !defined(LIBXSLT_STATIC)
+    #define XSLTPUBFUN __declspec(dllexport)
+    #define XSLTPUBVAR __declspec(dllexport) extern
+  #else
+    #define XSLTPUBFUN
+    #if !defined(LIBXSLT_STATIC)
+      #define XSLTPUBVAR __declspec(dllimport) extern
+    #else
+      #define XSLTPUBVAR extern
+    #endif
+  #endif
+  #define XSLTCALL __cdecl
+  #if !defined _REENTRANT
+    #define _REENTRANT
+  #endif
+#endif
+
+/* Windows platform with GNU compiler (Mingw) */
+#if defined(_WIN32) && defined(__MINGW32__)
+  #undef XSLTPUBFUN
+  #undef XSLTPUBVAR
+  #undef XSLTCALL
+/*
+  #if defined(IN_LIBXSLT) && !defined(LIBXSLT_STATIC)
+*/
+  #if !defined(LIBXSLT_STATIC)
+    #define XSLTPUBFUN __declspec(dllexport)
+    #define XSLTPUBVAR __declspec(dllexport) extern
+  #else
+    #define XSLTPUBFUN
+    #if !defined(LIBXSLT_STATIC)
+      #define XSLTPUBVAR __declspec(dllimport) extern
+    #else
+      #define XSLTPUBVAR extern
+    #endif
+  #endif
+  #define XSLTCALL __cdecl
+  #if !defined _REENTRANT
+    #define _REENTRANT
+  #endif
+#endif
+
+/* Cygwin platform, GNU compiler */
+#if defined(_WIN32) && defined(__CYGWIN__)
+  #undef XSLTPUBFUN
+  #undef XSLTPUBVAR
+  #undef XSLTCALL
+  #if defined(IN_LIBXSLT) && !defined(LIBXSLT_STATIC)
+    #define XSLTPUBFUN __declspec(dllexport)
+    #define XSLTPUBVAR __declspec(dllexport)
+  #else
+    #define XSLTPUBFUN
+    #if !defined(LIBXSLT_STATIC)
+      #define XSLTPUBVAR __declspec(dllimport) extern
+    #else
+      #define XSLTPUBVAR
+    #endif
+  #endif
+  #define XSLTCALL __cdecl
+#endif
+
+/* Compatibility */
+#if !defined(LIBXSLT_PUBLIC)
+#define LIBXSLT_PUBLIC XSLTPUBVAR
+#endif
+
+#endif /* __XSLT_EXPORTS_H__ */
+
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/xsltutils.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/xsltutils.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/xsltutils.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2226 @@
+/*
+ * xsltutils.c: Utilities for the XSL Transformation 1.0 engine
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#define IN_LIBXSLT
+#include "libxslt.h"
+
+#include <stdio.h>
+#include <string.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#include <stdarg.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/xmlerror.h>
+#include <libxml/xmlIO.h>
+#include "xsltutils.h"
+#include "templates.h"
+#include "xsltInternals.h"
+#include "imports.h"
+#include "transform.h"
+
+/* gettimeofday on Windows ??? */
+#if defined(WIN32) && !defined(__CYGWIN__)
+#ifdef _MSC_VER
+#include <winsock2.h>
+#pragma comment(lib, "ws2_32.lib")
+#define gettimeofday(p1,p2)
+#define HAVE_GETTIMEOFDAY
+#define XSLT_WIN32_PERFORMANCE_COUNTER
+#endif /* _MS_VER */
+#endif /* WIN32 */
+
+#ifdef XSLT_NEED_TRIO
+#include "trio.h"
+#define vsnprintf trio_vsnprintf
+#endif
+
+/************************************************************************
+ * 									*
+ * 			Convenience function				*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltGetCNsProp:
+ * @style: the stylesheet
+ * @node:  the node
+ * @name:  the attribute name
+ * @nameSpace:  the URI of the namespace
+ *
+ * Similar to xmlGetNsProp() but with a slightly different semantic
+ *
+ * Search and get the value of an attribute associated to a node
+ * This attribute has to be anchored in the namespace specified,
+ * or has no namespace and the element is in that namespace.
+ *
+ * This does the entity substitution.
+ * This function looks in DTD attribute declaration for #FIXED or
+ * default declaration values unless DTD use has been turned off.
+ *
+ * Returns the attribute value or NULL if not found. The string is allocated
+ *         in the stylesheet dictionnary.
+ */
+const xmlChar *
+xsltGetCNsProp(xsltStylesheetPtr style, xmlNodePtr node,
+              const xmlChar *name, const xmlChar *nameSpace) {
+    xmlAttrPtr prop;
+    xmlDocPtr doc;
+    xmlNsPtr ns;
+    xmlChar *tmp;
+    const xmlChar *ret;
+
+    if ((node == NULL) || (style == NULL) || (style->dict == NULL))
+	return(NULL);
+
+    prop = node->properties;
+    if (nameSpace == NULL) {
+        return xmlGetProp(node, name);
+    }
+    while (prop != NULL) {
+	/*
+	 * One need to have
+	 *   - same attribute names
+	 *   - and the attribute carrying that namespace
+	 */
+        if ((xmlStrEqual(prop->name, name)) &&
+	    (((prop->ns == NULL) && (node->ns != NULL) &&
+	      (xmlStrEqual(node->ns->href, nameSpace))) ||
+	     ((prop->ns != NULL) &&
+	      (xmlStrEqual(prop->ns->href, nameSpace))))) {
+
+	    tmp = xmlNodeListGetString(node->doc, prop->children, 1);
+	    if (tmp == NULL)
+	        ret = xmlDictLookup(style->dict, BAD_CAST "", 0);
+	    else {
+	        ret = xmlDictLookup(style->dict, tmp, -1);
+		xmlFree(tmp);
+	    }
+	    return ret;
+        }
+	prop = prop->next;
+    }
+    tmp = NULL;
+    /*
+     * Check if there is a default declaration in the internal
+     * or external subsets
+     */
+    doc =  node->doc;
+    if (doc != NULL) {
+        if (doc->intSubset != NULL) {
+	    xmlAttributePtr attrDecl;
+
+	    attrDecl = xmlGetDtdAttrDesc(doc->intSubset, node->name, name);
+	    if ((attrDecl == NULL) && (doc->extSubset != NULL))
+		attrDecl = xmlGetDtdAttrDesc(doc->extSubset, node->name, name);
+		
+	    if ((attrDecl != NULL) && (attrDecl->prefix != NULL)) {
+	        /*
+		 * The DTD declaration only allows a prefix search
+		 */
+		ns = xmlSearchNs(doc, node, attrDecl->prefix);
+		if ((ns != NULL) && (xmlStrEqual(ns->href, nameSpace)))
+		    return(xmlDictLookup(style->dict,
+		                         attrDecl->defaultValue, -1));
+	    }
+	}
+    }
+    return(NULL);
+}
+/**
+ * xsltGetNsProp:
+ * @node:  the node
+ * @name:  the attribute name
+ * @nameSpace:  the URI of the namespace
+ *
+ * Similar to xmlGetNsProp() but with a slightly different semantic
+ *
+ * Search and get the value of an attribute associated to a node
+ * This attribute has to be anchored in the namespace specified,
+ * or has no namespace and the element is in that namespace.
+ *
+ * This does the entity substitution.
+ * This function looks in DTD attribute declaration for #FIXED or
+ * default declaration values unless DTD use has been turned off.
+ *
+ * Returns the attribute value or NULL if not found.
+ *     It's up to the caller to free the memory.
+ */
+xmlChar *
+xsltGetNsProp(xmlNodePtr node, const xmlChar *name, const xmlChar *nameSpace) {
+    xmlAttrPtr prop;
+    xmlDocPtr doc;
+    xmlNsPtr ns;
+
+    if (node == NULL)
+	return(NULL);
+
+    prop = node->properties;
+    /*
+    * TODO: Substitute xmlGetProp() for xmlGetNsProp(), since the former
+    * is not namespace-aware and will return an attribute with equal
+    * name regardless of its namespace.
+    * Example:
+    *   <xsl:element foo:name="myName"/>
+    *   So this would return "myName" even if an attribute @name
+    *   in the XSLT was requested.
+    */
+    if (nameSpace == NULL)
+	return(xmlGetProp(node, name));
+    while (prop != NULL) {
+	/*
+	 * One need to have
+	 *   - same attribute names
+	 *   - and the attribute carrying that namespace
+	 */
+        if ((xmlStrEqual(prop->name, name)) &&
+	    (((prop->ns == NULL) && (node->ns != NULL) &&
+	      (xmlStrEqual(node->ns->href, nameSpace))) ||
+	     ((prop->ns != NULL) &&
+	      (xmlStrEqual(prop->ns->href, nameSpace))))) {
+	    xmlChar *ret;
+
+	    ret = xmlNodeListGetString(node->doc, prop->children, 1);
+	    if (ret == NULL) return(xmlStrdup((xmlChar *)""));
+	    return(ret);
+        }
+	prop = prop->next;
+    }
+
+    /*
+     * Check if there is a default declaration in the internal
+     * or external subsets
+     */
+    doc =  node->doc;
+    if (doc != NULL) {
+        if (doc->intSubset != NULL) {
+	    xmlAttributePtr attrDecl;
+
+	    attrDecl = xmlGetDtdAttrDesc(doc->intSubset, node->name, name);
+	    if ((attrDecl == NULL) && (doc->extSubset != NULL))
+		attrDecl = xmlGetDtdAttrDesc(doc->extSubset, node->name, name);
+		
+	    if ((attrDecl != NULL) && (attrDecl->prefix != NULL)) {
+	        /*
+		 * The DTD declaration only allows a prefix search
+		 */
+		ns = xmlSearchNs(doc, node, attrDecl->prefix);
+		if ((ns != NULL) && (xmlStrEqual(ns->href, nameSpace)))
+		    return(xmlStrdup(attrDecl->defaultValue));
+	    }
+	}
+    }
+    return(NULL);
+}
+
+/**
+ * xsltGetUTF8Char:
+ * @utf:  a sequence of UTF-8 encoded bytes
+ * @len:  a pointer to @bytes len
+ *
+ * Read one UTF8 Char from @utf
+ * Function copied from libxml2 xmlGetUTF8Char() ... to discard ultimately
+ * and use the original API
+ *
+ * Returns the char value or -1 in case of error and update @len with the
+ *        number of bytes used
+ */
+int
+xsltGetUTF8Char(const unsigned char *utf, int *len) {
+    unsigned int c;
+
+    if (utf == NULL)
+	goto error;
+    if (len == NULL)
+	goto error;
+    if (*len < 1)
+	goto error;
+
+    c = utf[0];
+    if (c & 0x80) {
+	if (*len < 2)
+	    goto error;
+	if ((utf[1] & 0xc0) != 0x80)
+	    goto error;
+	if ((c & 0xe0) == 0xe0) {
+	    if (*len < 3)
+		goto error;
+	    if ((utf[2] & 0xc0) != 0x80)
+		goto error;
+	    if ((c & 0xf0) == 0xf0) {
+		if (*len < 4)
+		    goto error;
+		if ((c & 0xf8) != 0xf0 || (utf[3] & 0xc0) != 0x80)
+		    goto error;
+		*len = 4;
+		/* 4-byte code */
+		c = (utf[0] & 0x7) << 18;
+		c |= (utf[1] & 0x3f) << 12;
+		c |= (utf[2] & 0x3f) << 6;
+		c |= utf[3] & 0x3f;
+	    } else {
+	      /* 3-byte code */
+		*len = 3;
+		c = (utf[0] & 0xf) << 12;
+		c |= (utf[1] & 0x3f) << 6;
+		c |= utf[2] & 0x3f;
+	    }
+	} else {
+	  /* 2-byte code */
+	    *len = 2;
+	    c = (utf[0] & 0x1f) << 6;
+	    c |= utf[1] & 0x3f;
+	}
+    } else {
+	/* 1-byte code */
+	*len = 1;
+    }
+    return(c);
+
+error:
+    if (len != NULL)
+	*len = 0;
+    return(-1);
+}
+
+#ifdef XSLT_REFACTORED
+
+/**
+ * xsltPointerListCreate:
+ *
+ * Creates an xsltPointerList structure.
+ *
+ * Returns a xsltPointerList structure or NULL in case of an error.
+ */
+xsltPointerListPtr
+xsltPointerListCreate(void)
+{
+    xsltPointerListPtr ret;
+
+    ret = xmlMalloc(sizeof(xsltPointerList));
+    if (ret == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+	     "xsltPointerListCreate: memory allocation failure.\n");
+	return (NULL);
+    }
+    memset(ret, 0, sizeof(xsltPointerList));
+    return (ret);
+}
+
+/**
+ * xsltPointerListFree:
+ *
+ * Frees the xsltPointerList structure. This does not free
+ * the content of the list.
+ */
+void
+xsltPointerListFree(xsltPointerListPtr list)
+{
+    if (list == NULL)
+	return;
+    if (list->items != NULL)
+	xmlFree(list->items);
+    xmlFree(list);
+}
+
+/**
+ * xsltPointerListFree:
+ *
+ * Resets the list, but does not free the allocated array
+ * and does not free the content of the list.
+ */
+void
+xsltPointerListClear(xsltPointerListPtr list)
+{
+    if (list->items != NULL) {
+	xmlFree(list->items);
+	list->items = NULL;
+    }
+    list->number = 0;
+    list->size = 0;
+}
+
+/**
+ * xsltPointerListAdd:
+ *
+ * Adds an item to the list.
+ *
+ * Returns the position of the added item in the list or
+ *         -1 in case of an error.
+ */
+int
+xsltPointerListAdd(xsltPointerListPtr list, void *item)
+{
+    if (list->items == NULL) {
+	list->items = (void **) xmlMalloc(
+	    20 * sizeof(void *));
+	if (list->items == NULL) {
+	    xsltGenericError(xsltGenericErrorContext,
+	     "xsltPointerListAdd: memory allocation failure.\n");
+	    return(-1);
+	}
+	list->number = 0;
+	list->size = 20;
+    } else if (list->size <= list->number) {
+	list->size *= 2;
+	list->items = (void **) xmlRealloc(list->items,
+	    list->size * sizeof(void *));
+	if (list->items == NULL) {
+	    xsltGenericError(xsltGenericErrorContext,
+	     "xsltPointerListAdd: memory re-allocation failure.\n");
+	    list->size = 0;
+	    return(-1);
+	}
+    }
+    list->items[list->number++] = item;
+    return(0);
+}
+
+#if 0 /* TODO: Not used yet. Enable if ever needed. */
+static int
+xsltPointerListAddSize(xsltPointerListPtr list,
+		       int initialSize,
+		       void *item)
+{
+    if (list->items == NULL) {
+	if (initialSize <= 0)
+	    initialSize = 1;
+	list->items = (void **) xmlMalloc(
+	    initialSize * sizeof(void *));
+	if (list->items == NULL) {
+	    xsltGenericError(xsltGenericErrorContext,
+	     "xsltPointerListAddSize: memory allocation failure.\n");
+	    return(-1);
+	}
+	list->number = 0;
+	list->size = initialSize;
+    } else if (list->size <= list->number) {
+	list->size *= 2;
+	list->items = (void **) xmlRealloc(list->items,
+	    list->size * sizeof(void *));
+	if (list->items == NULL) {
+	    xsltGenericError(xsltGenericErrorContext,
+	     "xsltPointerListAddSize: memory re-allocation failure.\n");
+	    list->size = 0;
+	    return(-1);
+	}
+    }
+    list->items[list->number++] = item;
+    return(0);
+}
+#endif
+
+#endif /* XSLT_REFACTORED */
+
+/************************************************************************
+ * 									*
+ * 		Handling of XSLT stylesheets messages			*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltMessage:
+ * @ctxt:  an XSLT processing context
+ * @node:  The current node
+ * @inst:  The node containing the message instruction
+ *
+ * Process and xsl:message construct
+ */
+void
+xsltMessage(xsltTransformContextPtr ctxt, xmlNodePtr node, xmlNodePtr inst) {
+    xmlChar *prop, *message;
+    int terminate = 0;
+
+    if ((ctxt == NULL) || (inst == NULL))
+	return;
+
+    prop = xmlGetNsProp(inst, (const xmlChar *)"terminate", NULL);
+    if (prop != NULL) {
+	if (xmlStrEqual(prop, (const xmlChar *)"yes")) {
+	    terminate = 1;
+	} else if (xmlStrEqual(prop, (const xmlChar *)"no")) {
+	    terminate = 0;
+	} else {
+	    xsltGenericError(xsltGenericErrorContext,
+		"xsl:message : terminate expecting 'yes' or 'no'\n");
+	    ctxt->state = XSLT_STATE_ERROR;
+	}
+	xmlFree(prop);
+    }
+    message = xsltEvalTemplateString(ctxt, node, inst);
+    if (message != NULL) {
+	int len = xmlStrlen(message);
+
+	xsltGenericError(xsltGenericErrorContext, "%s",
+		         (const char *)message);
+	if ((len > 0) && (message[len - 1] != '\n'))
+	    xsltGenericError(xsltGenericErrorContext, "\n");
+	xmlFree(message);
+    }
+    if (terminate)
+	ctxt->state = XSLT_STATE_STOPPED;
+}
+
+/************************************************************************
+ * 									*
+ * 		Handling of out of context errors			*
+ * 									*
+ ************************************************************************/
+
+#define XSLT_GET_VAR_STR(msg, str) {				\
+    int       size;						\
+    int       chars;						\
+    char      *larger;						\
+    va_list   ap;						\
+								\
+    str = (char *) xmlMalloc(150);				\
+    if (str == NULL) 						\
+	return;							\
+								\
+    size = 150;							\
+								\
+    while (1) {							\
+	va_start(ap, msg);					\
+  	chars = vsnprintf(str, size, msg, ap);			\
+	va_end(ap);						\
+	if ((chars > -1) && (chars < size))			\
+	    break;						\
+	if (chars > -1)						\
+	    size += chars + 1;					\
+	else							\
+	    size += 100;					\
+	if ((larger = (char *) xmlRealloc(str, size)) == NULL) {\
+	    xmlFree(str);					\
+	    return;						\
+	}							\
+	str = larger;						\
+    }								\
+}
+/**
+ * xsltGenericErrorDefaultFunc:
+ * @ctx:  an error context
+ * @msg:  the message to display/transmit
+ * @...:  extra parameters for the message display
+ * 
+ * Default handler for out of context error messages.
+ */
+static void
+xsltGenericErrorDefaultFunc(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) {
+    va_list args;
+
+    if (xsltGenericErrorContext == NULL)
+	xsltGenericErrorContext = (void *) stderr;
+
+    va_start(args, msg);
+    vfprintf((FILE *)xsltGenericErrorContext, msg, args);
+    va_end(args);
+}
+
+xmlGenericErrorFunc xsltGenericError = xsltGenericErrorDefaultFunc;
+void *xsltGenericErrorContext = NULL;
+
+
+/**
+ * xsltSetGenericErrorFunc:
+ * @ctx:  the new error handling context
+ * @handler:  the new handler function
+ *
+ * Function to reset the handler and the error context for out of
+ * context error messages.
+ * This simply means that @handler will be called for subsequent
+ * error messages while not parsing nor validating. And @ctx will
+ * be passed as first argument to @handler
+ * One can simply force messages to be emitted to another FILE * than
+ * stderr by setting @ctx to this file handle and @handler to NULL.
+ */
+void
+xsltSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) {
+    xsltGenericErrorContext = ctx;
+    if (handler != NULL)
+	xsltGenericError = handler;
+    else
+	xsltGenericError = xsltGenericErrorDefaultFunc;
+}
+
+/**
+ * xsltGenericDebugDefaultFunc:
+ * @ctx:  an error context
+ * @msg:  the message to display/transmit
+ * @...:  extra parameters for the message display
+ * 
+ * Default handler for out of context error messages.
+ */
+static void
+xsltGenericDebugDefaultFunc(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) {
+    va_list args;
+
+    if (xsltGenericDebugContext == NULL)
+	return;
+
+    va_start(args, msg);
+    vfprintf((FILE *)xsltGenericDebugContext, msg, args);
+    va_end(args);
+}
+
+xmlGenericErrorFunc xsltGenericDebug = xsltGenericDebugDefaultFunc;
+void *xsltGenericDebugContext = NULL;
+
+
+/**
+ * xsltSetGenericDebugFunc:
+ * @ctx:  the new error handling context
+ * @handler:  the new handler function
+ *
+ * Function to reset the handler and the error context for out of
+ * context error messages.
+ * This simply means that @handler will be called for subsequent
+ * error messages while not parsing or validating. And @ctx will
+ * be passed as first argument to @handler
+ * One can simply force messages to be emitted to another FILE * than
+ * stderr by setting @ctx to this file handle and @handler to NULL.
+ */
+void
+xsltSetGenericDebugFunc(void *ctx, xmlGenericErrorFunc handler) {
+    xsltGenericDebugContext = ctx;
+    if (handler != NULL)
+	xsltGenericDebug = handler;
+    else
+	xsltGenericDebug = xsltGenericDebugDefaultFunc;
+}
+
+/**
+ * xsltPrintErrorContext:
+ * @ctxt:  the transformation context
+ * @style:  the stylesheet
+ * @node:  the current node being processed
+ *
+ * Display the context of an error.
+ */
+void
+xsltPrintErrorContext(xsltTransformContextPtr ctxt,
+	              xsltStylesheetPtr style, xmlNodePtr node) {
+    int line = 0;
+    const xmlChar *file = NULL;
+    const xmlChar *name = NULL;
+    const char *type = "error";
+    xmlGenericErrorFunc error = xsltGenericError;
+    void *errctx = xsltGenericErrorContext;
+
+    if (ctxt != NULL) {
+	ctxt->state = XSLT_STATE_ERROR;
+	if (ctxt->error != NULL) {
+	    error = ctxt->error;
+	    errctx = ctxt->errctx;
+	}
+    }
+    if ((node == NULL) && (ctxt != NULL))
+	node = ctxt->inst;
+
+    if (node != NULL)  {
+	if ((node->type == XML_DOCUMENT_NODE) ||
+	    (node->type == XML_HTML_DOCUMENT_NODE)) {
+	    xmlDocPtr doc = (xmlDocPtr) node;
+
+	    file = doc->URL;
+	} else {
+	    line = xmlGetLineNo(node);
+	    if ((node->doc != NULL) && (node->doc->URL != NULL))
+		file = node->doc->URL;
+	    if (node->name != NULL)
+		name = node->name;
+	}
+    } 
+    
+    if (ctxt != NULL)
+	type = "runtime error";
+    else if (style != NULL)
+	type = "compilation error";
+
+    if ((file != NULL) && (line != 0) && (name != NULL))
+	error(errctx, "%s: file %s line %d element %s\n",
+	      type, file, line, name);
+    else if ((file != NULL) && (name != NULL))
+	error(errctx, "%s: file %s element %s\n", type, file, name);
+    else if ((file != NULL) && (line != 0))
+	error(errctx, "%s: file %s line %d\n", type, file, line);
+    else if (file != NULL)
+	error(errctx, "%s: file %s\n", type, file);
+    else if (name != NULL)
+	error(errctx, "%s: element %s\n", type, name);
+    else
+	error(errctx, "%s\n", type);
+}
+
+/**
+ * xsltSetTransformErrorFunc:
+ * @ctxt:  the XSLT transformation context
+ * @ctx:  the new error handling context
+ * @handler:  the new handler function
+ *
+ * Function to reset the handler and the error context for out of
+ * context error messages specific to a given XSLT transromation.
+ *
+ * This simply means that @handler will be called for subsequent
+ * error messages while running the transformation.
+ */
+void
+xsltSetTransformErrorFunc(xsltTransformContextPtr ctxt,
+                          void *ctx, xmlGenericErrorFunc handler)
+{
+    ctxt->error = handler;
+    ctxt->errctx = ctx;
+}
+
+/**
+ * xsltTransformError:
+ * @ctxt:  an XSLT transformation context
+ * @style:  the XSLT stylesheet used
+ * @node:  the current node in the stylesheet
+ * @msg:  the message to display/transmit
+ * @...:  extra parameters for the message display
+ *
+ * Display and format an error messages, gives file, line, position and
+ * extra parameters, will use the specific transformation context if available
+ */
+void
+xsltTransformError(xsltTransformContextPtr ctxt,
+		   xsltStylesheetPtr style,
+		   xmlNodePtr node,
+		   const char *msg, ...) {
+    xmlGenericErrorFunc error = xsltGenericError;
+    void *errctx = xsltGenericErrorContext;
+    char * str;
+
+    if (ctxt != NULL) {
+	ctxt->state = XSLT_STATE_ERROR;
+	if (ctxt->error != NULL) {
+	    error = ctxt->error;
+	    errctx = ctxt->errctx;
+	}
+    }
+    if ((node == NULL) && (ctxt != NULL))
+	node = ctxt->inst;
+    xsltPrintErrorContext(ctxt, style, node);
+    XSLT_GET_VAR_STR(msg, str);
+    error(errctx, "%s", str);
+    if (str != NULL)
+	xmlFree(str);
+}
+
+/************************************************************************
+ * 									*
+ * 				QNames					*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltSplitQName:
+ * @dict: a dictionnary
+ * @name:  the full QName
+ * @prefix: the return value
+ *
+ * Split QNames into prefix and local names, both allocated from a dictionnary.
+ *
+ * Returns: the localname or NULL in case of error.
+ */
+const xmlChar *
+xsltSplitQName(xmlDictPtr dict, const xmlChar *name, const xmlChar **prefix) {
+    int len = 0;
+    const xmlChar *ret = NULL;
+
+    *prefix = NULL;
+    if ((name == NULL) || (dict == NULL)) return(NULL);
+    if (name[0] == ':')
+        return(xmlDictLookup(dict, name, -1));
+    while ((name[len] != 0) && (name[len] != ':')) len++;
+    if (name[len] == 0) return(xmlDictLookup(dict, name, -1));
+    *prefix = xmlDictLookup(dict, name, len);
+    ret = xmlDictLookup(dict, &name[len + 1], -1);
+    return(ret);
+}
+
+/**
+ * xsltGetQNameURI:
+ * @node:  the node holding the QName
+ * @name:  pointer to the initial QName value
+ *
+ * This function analyzes @name, if the name contains a prefix,
+ * the function seaches the associated namespace in scope for it.
+ * It will also replace @name value with the NCName, the old value being
+ * freed.
+ * Errors in the prefix lookup are signalled by setting @name to NULL.
+ *
+ * NOTE: the namespace returned is a pointer to the place where it is
+ *       defined and hence has the same lifespan as the document holding it.
+ *
+ * Returns the namespace URI if there is a prefix, or NULL if @name is
+ *         not prefixed.
+ */
+const xmlChar *
+xsltGetQNameURI(xmlNodePtr node, xmlChar ** name)
+{
+    int len = 0;
+    xmlChar *qname;
+    xmlNsPtr ns;
+
+    if (name == NULL)
+	return(NULL);
+    qname = *name;
+    if ((qname == NULL) || (*qname == 0))
+	return(NULL);
+    if (node == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+		         "QName: no element for namespace lookup %s\n",
+			 qname);
+	xmlFree(qname);
+	*name = NULL;
+	return(NULL);
+    }
+
+    /* nasty but valid */
+    if (qname[0] == ':')
+	return(NULL);
+
+    /*
+     * we are not trying to validate but just to cut, and yes it will
+     * work even if this is a set of UTF-8 encoded chars
+     */
+    while ((qname[len] != 0) && (qname[len] != ':')) 
+	len++;
+    
+    if (qname[len] == 0)
+	return(NULL);
+
+    /*
+     * handle xml: separately, this one is magical
+     */
+    if ((qname[0] == 'x') && (qname[1] == 'm') &&
+        (qname[2] == 'l') && (qname[3] == ':')) {
+	if (qname[4] == 0)
+	    return(NULL);
+        *name = xmlStrdup(&qname[4]);
+	xmlFree(qname);
+	return(XML_XML_NAMESPACE);
+    }
+
+    qname[len] = 0;
+    ns = xmlSearchNs(node->doc, node, qname);
+    if (ns == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+		"%s:%s : no namespace bound to prefix %s\n",
+		         qname, &qname[len + 1], qname);
+	*name = NULL;
+	xmlFree(qname);
+	return(NULL);
+    }
+    *name = xmlStrdup(&qname[len + 1]);
+    xmlFree(qname);
+    return(ns->href);
+}
+
+/**
+ * xsltGetQNameURI2:
+ * @style:  stylesheet pointer
+ * @node:   the node holding the QName
+ * @name:   pointer to the initial QName value
+ *
+ * This function is similar to xsltGetQNameURI, but is used when
+ * @name is a dictionary entry.
+ *
+ * Returns the namespace URI if there is a prefix, or NULL if @name is
+ * not prefixed.
+ */
+const xmlChar *
+xsltGetQNameURI2(xsltStylesheetPtr style, xmlNodePtr node,
+		 const xmlChar **name) {
+    int len = 0;
+    xmlChar *qname;
+    xmlNsPtr ns;
+
+    if (name == NULL)
+        return(NULL);
+    qname = (xmlChar *)*name;
+    if ((qname == NULL) || (*qname == 0))
+        return(NULL);
+    if (node == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "QName: no element for namespace lookup %s\n",
+                          qname);
+	*name = NULL;
+	return(NULL);
+    }
+
+    /*
+     * we are not trying to validate but just to cut, and yes it will
+     * work even if this is a set of UTF-8 encoded chars
+     */
+    while ((qname[len] != 0) && (qname[len] != ':'))
+        len++;
+
+    if (qname[len] == 0)
+        return(NULL);
+
+    /*
+     * handle xml: separately, this one is magical
+     */
+    if ((qname[0] == 'x') && (qname[1] == 'm') &&
+        (qname[2] == 'l') && (qname[3] == ':')) {
+        if (qname[4] == 0)
+            return(NULL);
+        *name = xmlDictLookup(style->dict, &qname[4], -1);
+        return(XML_XML_NAMESPACE);
+    }
+
+    qname = xmlStrndup(*name, len);
+    ns = xmlSearchNs(node->doc, node, qname);
+    if (ns == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                "%s : no namespace bound to prefix %s\n",
+		*name, qname);
+        *name = NULL;
+        xmlFree(qname);
+        return(NULL);
+    }
+    *name = xmlDictLookup(style->dict, (*name)+len+1, -1);
+    xmlFree(qname);
+    return(ns->href);
+}
+										      
+/************************************************************************
+ * 									*
+ * 				Sorting					*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltDocumentSortFunction:
+ * @list:  the node set
+ *
+ * reorder the current node list @list accordingly to the document order
+ * This function is slow, obsolete and should not be used anymore.
+ */
+void
+xsltDocumentSortFunction(xmlNodeSetPtr list) {
+    int i, j;
+    int len, tst;
+    xmlNodePtr node;
+
+    if (list == NULL)
+	return;
+    len = list->nodeNr;
+    if (len <= 1)
+	return;
+    /* TODO: sort is really not optimized, does it needs to ? */
+    for (i = 0;i < len -1;i++) {
+	for (j = i + 1; j < len; j++) {
+	    tst = xmlXPathCmpNodes(list->nodeTab[i], list->nodeTab[j]);
+	    if (tst == -1) {
+		node = list->nodeTab[i];
+		list->nodeTab[i] = list->nodeTab[j];
+		list->nodeTab[j] = node;
+	    }
+	}
+    }
+}
+
+/**
+ * xsltComputeSortResult:
+ * @ctxt:  a XSLT process context
+ * @sort:  node list
+ *
+ * reorder the current node list accordingly to the set of sorting
+ * requirement provided by the array of nodes.
+ *
+ * Returns a ordered XPath nodeset or NULL in case of error.
+ */
+xmlXPathObjectPtr *
+xsltComputeSortResult(xsltTransformContextPtr ctxt, xmlNodePtr sort) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemSortPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    xmlXPathObjectPtr *results = NULL;
+    xmlNodeSetPtr list = NULL;
+    xmlXPathObjectPtr res;
+    int len = 0;
+    int i;    
+    xmlNodePtr oldNode;
+    xmlNodePtr oldInst;
+    int	oldPos, oldSize ;
+    int oldNsNr;
+    xmlNsPtr *oldNamespaces;
+
+    comp = sort->psvi;
+    if (comp == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+	     "xsl:sort : compilation failed\n");
+	return(NULL);
+    }
+
+    if ((comp->select == NULL) || (comp->comp == NULL))
+	return(NULL);
+
+    list = ctxt->nodeList;
+    if ((list == NULL) || (list->nodeNr <= 1))
+	return(NULL);
+
+    len = list->nodeNr;
+
+    /* TODO: xsl:sort lang attribute */
+    /* TODO: xsl:sort case-order attribute */
+
+
+    results = xmlMalloc(len * sizeof(xmlXPathObjectPtr));
+    if (results == NULL) {
+	xsltGenericError(xsltGenericErrorContext,
+	     "xsltComputeSortResult: memory allocation failure\n");
+	return(NULL);
+    }
+
+    oldNode = ctxt->node;
+    oldInst = ctxt->inst;
+    oldPos = ctxt->xpathCtxt->proximityPosition;
+    oldSize = ctxt->xpathCtxt->contextSize;
+    oldNsNr = ctxt->xpathCtxt->nsNr;
+    oldNamespaces = ctxt->xpathCtxt->namespaces;
+    for (i = 0;i < len;i++) {
+	ctxt->inst = sort;
+	ctxt->xpathCtxt->contextSize = len;
+	ctxt->xpathCtxt->proximityPosition = i + 1;
+	ctxt->node = list->nodeTab[i];
+	ctxt->xpathCtxt->node = ctxt->node;
+#ifdef XSLT_REFACTORED
+	if (comp->inScopeNS != NULL) {
+	    ctxt->xpathCtxt->namespaces = comp->inScopeNS->list;
+	    ctxt->xpathCtxt->nsNr = comp->inScopeNS->number;
+	} else {
+	    ctxt->xpathCtxt->namespaces = NULL;
+	    ctxt->xpathCtxt->nsNr = 0;
+	}
+#else
+	ctxt->xpathCtxt->namespaces = comp->nsList;
+	ctxt->xpathCtxt->nsNr = comp->nsNr;
+#endif
+	res = xmlXPathCompiledEval(comp->comp, ctxt->xpathCtxt);
+	if (res != NULL) {
+	    if (res->type != XPATH_STRING)
+		res = xmlXPathConvertString(res);
+	    if (comp->number)
+		res = xmlXPathConvertNumber(res);
+	    res->index = i;	/* Save original pos for dupl resolv */
+	    if (comp->number) {
+		if (res->type == XPATH_NUMBER) {
+		    results[i] = res;
+		} else {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		    xsltGenericDebug(xsltGenericDebugContext,
+			"xsltComputeSortResult: select didn't evaluate to a number\n");
+#endif
+		    results[i] = NULL;
+		}
+	    } else {
+		if (res->type == XPATH_STRING) {
+		    results[i] = res;
+		} else {
+#ifdef WITH_XSLT_DEBUG_PROCESS
+		    xsltGenericDebug(xsltGenericDebugContext,
+			"xsltComputeSortResult: select didn't evaluate to a string\n");
+#endif
+		    results[i] = NULL;
+		}
+	    }
+	} else {
+	    ctxt->state = XSLT_STATE_STOPPED;
+	    results[i] = NULL;
+	}
+    }
+    ctxt->node = oldNode;
+    ctxt->inst = oldInst;
+    ctxt->xpathCtxt->contextSize = oldSize;
+    ctxt->xpathCtxt->proximityPosition = oldPos;
+    ctxt->xpathCtxt->nsNr = oldNsNr;
+    ctxt->xpathCtxt->namespaces = oldNamespaces;
+
+    return(results);
+}
+
+/**
+ * xsltDefaultSortFunction:
+ * @ctxt:  a XSLT process context
+ * @sorts:  array of sort nodes
+ * @nbsorts:  the number of sorts in the array
+ *
+ * reorder the current node list accordingly to the set of sorting
+ * requirement provided by the arry of nodes.
+ */
+void	
+xsltDefaultSortFunction(xsltTransformContextPtr ctxt, xmlNodePtr *sorts,
+	           int nbsorts) {
+#ifdef XSLT_REFACTORED
+    xsltStyleItemSortPtr comp;
+#else
+    xsltStylePreCompPtr comp;
+#endif
+    xmlXPathObjectPtr *resultsTab[XSLT_MAX_SORT];
+    xmlXPathObjectPtr *results = NULL, *res;
+    xmlNodeSetPtr list = NULL;
+    int descending, number, desc, numb;
+    int len = 0;
+    int i, j, incr;
+    int tst;
+    int depth;
+    xmlNodePtr node;
+    xmlXPathObjectPtr tmp;    
+    int tempstype[XSLT_MAX_SORT], temporder[XSLT_MAX_SORT];
+
+    if ((ctxt == NULL) || (sorts == NULL) || (nbsorts <= 0) ||
+	(nbsorts >= XSLT_MAX_SORT))
+	return;
+    if (sorts[0] == NULL)
+	return;
+    comp = sorts[0]->psvi;
+    if (comp == NULL)
+	return;
+
+    list = ctxt->nodeList;
+    if ((list == NULL) || (list->nodeNr <= 1))
+	return; /* nothing to do */
+
+    for (j = 0; j < nbsorts; j++) {
+	comp = sorts[j]->psvi;
+	tempstype[j] = 0;
+	if ((comp->stype == NULL) && (comp->has_stype != 0)) {
+	    comp->stype =
+		xsltEvalAttrValueTemplate(ctxt, sorts[j],
+					  (const xmlChar *) "data-type",
+					  XSLT_NAMESPACE);
+	    if (comp->stype != NULL) {
+		tempstype[j] = 1;
+		if (xmlStrEqual(comp->stype, (const xmlChar *) "text"))
+		    comp->number = 0;
+		else if (xmlStrEqual(comp->stype, (const xmlChar *) "number"))
+		    comp->number = 1;
+		else {
+		    xsltTransformError(ctxt, NULL, sorts[j],
+			  "xsltDoSortFunction: no support for data-type = %s\n",
+				     comp->stype);
+		    comp->number = 0; /* use default */
+		}
+	    }
+	}
+	temporder[j] = 0;
+	if ((comp->order == NULL) && (comp->has_order != 0)) {
+	    comp->order = xsltEvalAttrValueTemplate(ctxt, sorts[j],
+						    (const xmlChar *) "order",
+						    XSLT_NAMESPACE);
+	    if (comp->order != NULL) {
+		temporder[j] = 1;
+		if (xmlStrEqual(comp->order, (const xmlChar *) "ascending"))
+		    comp->descending = 0;
+		else if (xmlStrEqual(comp->order,
+				     (const xmlChar *) "descending"))
+		    comp->descending = 1;
+		else {
+		    xsltTransformError(ctxt, NULL, sorts[j],
+			     "xsltDoSortFunction: invalid value %s for order\n",
+				     comp->order);
+		    comp->descending = 0; /* use default */
+		}
+	    }
+	}
+    }
+
+    len = list->nodeNr;
+
+    resultsTab[0] = xsltComputeSortResult(ctxt, sorts[0]);
+    for (i = 1;i < XSLT_MAX_SORT;i++)
+	resultsTab[i] = NULL;
+
+    results = resultsTab[0];
+
+    comp = sorts[0]->psvi;
+    descending = comp->descending;
+    number = comp->number;
+    if (results == NULL)
+	return;
+
+    /* Shell's sort of node-set */
+    for (incr = len / 2; incr > 0; incr /= 2) {
+	for (i = incr; i < len; i++) {
+	    j = i - incr;
+	    if (results[i] == NULL)
+		continue;
+	    
+	    while (j >= 0) {
+		if (results[j] == NULL)
+		    tst = 1;
+		else {
+		    if (number) {
+			/* We make NaN smaller than number in accordance
+			   with XSLT spec */
+			if (xmlXPathIsNaN(results[j]->floatval)) {
+			    if (xmlXPathIsNaN(results[j + incr]->floatval))
+				tst = 0;
+			    else
+				tst = -1;
+			} else if (xmlXPathIsNaN(results[j + incr]->floatval))
+			    tst = 1;
+			else if (results[j]->floatval ==
+				results[j + incr]->floatval)
+			    tst = 0;
+			else if (results[j]->floatval > 
+				results[j + incr]->floatval)
+			    tst = 1;
+			else tst = -1;
+		    } else {
+			tst = xmlStrcmp(results[j]->stringval,
+				     results[j + incr]->stringval); 
+		    }
+		    if (descending)
+			tst = -tst;
+		}
+		if (tst == 0) {
+		    /*
+		     * Okay we need to use multi level sorts
+		     */
+		    depth = 1;
+		    while (depth < nbsorts) {
+			if (sorts[depth] == NULL)
+			    break;
+			comp = sorts[depth]->psvi;
+			if (comp == NULL)
+			    break;
+			desc = comp->descending;
+			numb = comp->number;
+
+			/*
+			 * Compute the result of the next level for the
+			 * full set, this might be optimized ... or not
+			 */
+			if (resultsTab[depth] == NULL) 
+			    resultsTab[depth] = xsltComputeSortResult(ctxt,
+				                        sorts[depth]);
+			res = resultsTab[depth];
+			if (res == NULL) 
+			    break;
+			if (res[j] == NULL) {
+			    if (res[j+incr] != NULL)
+				tst = 1;
+			} else {
+			    if (numb) {
+				/* We make NaN smaller than number in
+				   accordance with XSLT spec */
+				if (xmlXPathIsNaN(res[j]->floatval)) {
+				    if (xmlXPathIsNaN(res[j +
+				    		incr]->floatval))
+					tst = 0;
+				    else
+				        tst = -1;
+				} else if (xmlXPathIsNaN(res[j + incr]->
+						floatval))
+				    tst = 1;
+				else if (res[j]->floatval == res[j + incr]->
+						floatval)
+				    tst = 0;
+				else if (res[j]->floatval > 
+					res[j + incr]->floatval)
+				    tst = 1;
+				else tst = -1;
+			    } else {
+				tst = xmlStrcmp(res[j]->stringval,
+					     res[j + incr]->stringval); 
+			    }
+			    if (desc)
+				tst = -tst;
+			}
+
+			/*
+			 * if we still can't differenciate at this level
+			 * try one level deeper.
+			 */
+			if (tst != 0)
+			    break;
+			depth++;
+		    }
+		}
+		if (tst == 0) {
+		    tst = results[j]->index > results[j + incr]->index;
+		}
+		if (tst > 0) {
+		    tmp = results[j];
+		    results[j] = results[j + incr];
+		    results[j + incr] = tmp;
+		    node = list->nodeTab[j];
+		    list->nodeTab[j] = list->nodeTab[j + incr];
+		    list->nodeTab[j + incr] = node;
+		    depth = 1;
+		    while (depth < nbsorts) {
+			if (sorts[depth] == NULL)
+			    break;
+			if (resultsTab[depth] == NULL)
+			    break;
+			res = resultsTab[depth];
+			tmp = res[j];
+			res[j] = res[j + incr];
+			res[j + incr] = tmp;
+			depth++;
+		    }
+		    j -= incr;
+		} else
+		    break;
+	    }
+	}
+    }
+
+    for (j = 0; j < nbsorts; j++) {
+	comp = sorts[j]->psvi;
+	if (tempstype[j] == 1) {
+	    /* The data-type needs to be recomputed each time */
+	    xmlFree((void *)(comp->stype));
+	    comp->stype = NULL;
+	}
+	if (temporder[j] == 1) {
+	    /* The order needs to be recomputed each time */
+	    xmlFree((void *)(comp->order));
+	    comp->order = NULL;
+	}
+	if (resultsTab[j] != NULL) {
+	    for (i = 0;i < len;i++)
+		xmlXPathFreeObject(resultsTab[j][i]);
+	    xmlFree(resultsTab[j]);
+	}
+    }
+}
+
+
+static xsltSortFunc xsltSortFunction = xsltDefaultSortFunction;
+
+/**
+ * xsltDoSortFunction:
+ * @ctxt:  a XSLT process context
+ * @sorts:  array of sort nodes
+ * @nbsorts:  the number of sorts in the array
+ *
+ * reorder the current node list accordingly to the set of sorting
+ * requirement provided by the arry of nodes.
+ * This is a wrapper function, the actual function used is specified
+ * using xsltSetCtxtSortFunc() to set the context specific sort function,
+ * or xsltSetSortFunc() to set the global sort function.
+ * If a sort function is set on the context, this will get called.
+ * Otherwise the global sort function is called.
+ */
+void
+xsltDoSortFunction(xsltTransformContextPtr ctxt, xmlNodePtr * sorts,
+                   int nbsorts)
+{
+    if (ctxt->sortfunc != NULL)
+	(ctxt->sortfunc)(ctxt, sorts, nbsorts);
+    else if (xsltSortFunction != NULL)
+        xsltSortFunction(ctxt, sorts, nbsorts);
+}
+
+/**
+ * xsltSetSortFunc:
+ * @handler:  the new handler function
+ *
+ * Function to reset the global handler for XSLT sorting.
+ * If the handler is NULL, the default sort function will be used.
+ */
+void
+xsltSetSortFunc(xsltSortFunc handler) {
+    if (handler != NULL)
+	xsltSortFunction = handler;
+    else
+	xsltSortFunction = xsltDefaultSortFunction;
+}
+
+/**
+ * xsltSetCtxtSortFunc:
+ * @ctxt:  a XSLT process context
+ * @handler:  the new handler function
+ *
+ * Function to set the handler for XSLT sorting
+ * for the specified context. 
+ * If the handler is NULL, then the global
+ * sort function will be called
+ */
+void 
+xsltSetCtxtSortFunc(xsltTransformContextPtr ctxt, xsltSortFunc handler) {
+    ctxt->sortfunc = handler;
+}
+
+/************************************************************************
+ * 									*
+ * 				Parsing options				*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltSetCtxtParseOptions:
+ * @ctxt:  a XSLT process context
+ * @options:  a combination of libxml2 xmlParserOption
+ * 
+ * Change the default parser option passed by the XSLT engine to the 
+ * parser when using document() loading.
+ *
+ * Returns the previous options or -1 in case of error
+ */
+int 
+xsltSetCtxtParseOptions(xsltTransformContextPtr ctxt, int options)
+{
+    int oldopts;
+
+    if (ctxt == NULL)
+        return(-1);
+    oldopts = ctxt->parserOptions;
+    ctxt->parserOptions = options;
+    return(oldopts);
+}
+
+/************************************************************************
+ * 									*
+ * 				Output					*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltSaveResultTo:
+ * @buf:  an output buffer
+ * @result:  the result xmlDocPtr
+ * @style:  the stylesheet
+ *
+ * Save the result @result obtained by applying the @style stylesheet
+ * to an I/O output channel @buf
+ *
+ * Returns the number of byte written or -1 in case of failure.
+ */
+int
+xsltSaveResultTo(xmlOutputBufferPtr buf, xmlDocPtr result,
+	       xsltStylesheetPtr style) {
+    const xmlChar *encoding;
+    int base;
+    const xmlChar *method;
+    int indent;
+
+    if ((buf == NULL) || (result == NULL) || (style == NULL))
+	return(-1);
+    if ((result->children == NULL) ||
+	((result->children->type == XML_DTD_NODE) &&
+	 (result->children->next == NULL)))
+	return(0);
+
+    if ((style->methodURI != NULL) &&
+	((style->method == NULL) ||
+	 (!xmlStrEqual(style->method, (const xmlChar *) "xhtml")))) {
+        xsltGenericError(xsltGenericErrorContext,
+		"xsltSaveResultTo : unknown ouput method\n");
+        return(-1);
+    }
+
+    base = buf->written;
+
+    XSLT_GET_IMPORT_PTR(method, style, method)
+    XSLT_GET_IMPORT_PTR(encoding, style, encoding)
+    XSLT_GET_IMPORT_INT(indent, style, indent);
+
+    if ((method == NULL) && (result->type == XML_HTML_DOCUMENT_NODE))
+	method = (const xmlChar *) "html";
+
+    if ((method != NULL) &&
+	(xmlStrEqual(method, (const xmlChar *) "html"))) {
+	if (encoding != NULL) {
+	    htmlSetMetaEncoding(result, (const xmlChar *) encoding);
+	} else {
+	    htmlSetMetaEncoding(result, (const xmlChar *) "UTF-8");
+	}
+	if (indent == -1)
+	    indent = 1;
+	htmlDocContentDumpFormatOutput(buf, result, (const char *) encoding,
+		                       indent);
+	xmlOutputBufferFlush(buf);
+    } else if ((method != NULL) &&
+	(xmlStrEqual(method, (const xmlChar *) "xhtml"))) {
+	if (encoding != NULL) {
+	    htmlSetMetaEncoding(result, (const xmlChar *) encoding);
+	} else {
+	    htmlSetMetaEncoding(result, (const xmlChar *) "UTF-8");
+	}
+	htmlDocContentDumpOutput(buf, result, (const char *) encoding);
+	xmlOutputBufferFlush(buf);
+    } else if ((method != NULL) &&
+	       (xmlStrEqual(method, (const xmlChar *) "text"))) {
+	xmlNodePtr cur;
+
+	cur = result->children;
+	while (cur != NULL) {
+	    if (cur->type == XML_TEXT_NODE)
+		xmlOutputBufferWriteString(buf, (const char *) cur->content);
+
+	    /*
+	     * Skip to next node
+	     */
+	    if (cur->children != NULL) {
+		if ((cur->children->type != XML_ENTITY_DECL) &&
+		    (cur->children->type != XML_ENTITY_REF_NODE) &&
+		    (cur->children->type != XML_ENTITY_NODE)) {
+		    cur = cur->children;
+		    continue;
+		}
+	    }
+	    if (cur->next != NULL) {
+		cur = cur->next;
+		continue;
+	    }
+	    
+	    do {
+		cur = cur->parent;
+		if (cur == NULL)
+		    break;
+		if (cur == (xmlNodePtr) style->doc) {
+		    cur = NULL;
+		    break;
+		}
+		if (cur->next != NULL) {
+		    cur = cur->next;
+		    break;
+		}
+	    } while (cur != NULL);
+	}
+	xmlOutputBufferFlush(buf);
+    } else {
+	int omitXmlDecl;
+	int standalone;
+
+	XSLT_GET_IMPORT_INT(omitXmlDecl, style, omitXmlDeclaration);
+	XSLT_GET_IMPORT_INT(standalone, style, standalone);
+
+	if (omitXmlDecl != 1) {
+	    xmlOutputBufferWriteString(buf, "<?xml version=");
+	    if (result->version != NULL) 
+		xmlBufferWriteQuotedString(buf->buffer, result->version);
+	    else
+		xmlOutputBufferWriteString(buf, "\"1.0\"");
+	    if (encoding == NULL) {
+		if (result->encoding != NULL)
+		    encoding = result->encoding;
+		else if (result->charset != XML_CHAR_ENCODING_UTF8)
+		    encoding = (const xmlChar *)
+			       xmlGetCharEncodingName((xmlCharEncoding)
+			                              result->charset);
+	    }
+	    if (encoding != NULL) {
+		xmlOutputBufferWriteString(buf, " encoding=");
+		xmlBufferWriteQuotedString(buf->buffer, (xmlChar *) encoding);
+	    }
+	    switch (standalone) {
+		case 0:
+		    xmlOutputBufferWriteString(buf, " standalone=\"no\"");
+		    break;
+		case 1:
+		    xmlOutputBufferWriteString(buf, " standalone=\"yes\"");
+		    break;
+		default:
+		    break;
+	    }
+	    xmlOutputBufferWriteString(buf, "?>\n");
+	}
+	if (result->children != NULL) {
+	    xmlNodePtr child = result->children;
+
+	    while (child != NULL) {
+		xmlNodeDumpOutput(buf, result, child, 0, (indent == 1),
+			          (const char *) encoding);
+		if ((child->type == XML_DTD_NODE) ||
+		    ((child->type == XML_COMMENT_NODE) &&
+		     (child->next != NULL)))
+		    xmlOutputBufferWriteString(buf, "\n");
+		child = child->next;
+	    }
+	    xmlOutputBufferWriteString(buf, "\n");
+	}
+	xmlOutputBufferFlush(buf);
+    }
+    return(buf->written - base);
+}
+
+/**
+ * xsltSaveResultToFilename:
+ * @URL:  a filename or URL
+ * @result:  the result xmlDocPtr
+ * @style:  the stylesheet
+ * @compression:  the compression factor (0 - 9 included)
+ *
+ * Save the result @result obtained by applying the @style stylesheet
+ * to a file or @URL
+ *
+ * Returns the number of byte written or -1 in case of failure.
+ */
+int
+xsltSaveResultToFilename(const char *URL, xmlDocPtr result,
+			 xsltStylesheetPtr style, int compression) {
+    xmlOutputBufferPtr buf;
+    const xmlChar *encoding;
+    int ret;
+
+    if ((URL == NULL) || (result == NULL) || (style == NULL))
+	return(-1);
+    if (result->children == NULL)
+	return(0);
+
+    XSLT_GET_IMPORT_PTR(encoding, style, encoding)
+    if (encoding != NULL) {
+	xmlCharEncodingHandlerPtr encoder;
+
+	encoder = xmlFindCharEncodingHandler((char *)encoding);
+	if ((encoder != NULL) &&
+	    (xmlStrEqual((const xmlChar *)encoder->name,
+			 (const xmlChar *) "UTF-8")))
+	    encoder = NULL;
+	buf = xmlOutputBufferCreateFilename(URL, encoder, compression);
+    } else {
+	buf = xmlOutputBufferCreateFilename(URL, NULL, compression);
+    }
+    if (buf == NULL)
+	return(-1);
+    xsltSaveResultTo(buf, result, style);
+    ret = xmlOutputBufferClose(buf);
+    return(ret);
+}
+
+/**
+ * xsltSaveResultToFile:
+ * @file:  a FILE * I/O
+ * @result:  the result xmlDocPtr
+ * @style:  the stylesheet
+ *
+ * Save the result @result obtained by applying the @style stylesheet
+ * to an open FILE * I/O.
+ * This does not close the FILE @file
+ *
+ * Returns the number of bytes written or -1 in case of failure.
+ */
+int
+xsltSaveResultToFile(FILE *file, xmlDocPtr result, xsltStylesheetPtr style) {
+    xmlOutputBufferPtr buf;
+    const xmlChar *encoding;
+    int ret;
+
+    if ((file == NULL) || (result == NULL) || (style == NULL))
+	return(-1);
+    if (result->children == NULL)
+	return(0);
+
+    XSLT_GET_IMPORT_PTR(encoding, style, encoding)
+    if (encoding != NULL) {
+	xmlCharEncodingHandlerPtr encoder;
+
+	encoder = xmlFindCharEncodingHandler((char *)encoding);
+	if ((encoder != NULL) &&
+	    (xmlStrEqual((const xmlChar *)encoder->name,
+			 (const xmlChar *) "UTF-8")))
+	    encoder = NULL;
+	buf = xmlOutputBufferCreateFile(file, encoder);
+    } else {
+	buf = xmlOutputBufferCreateFile(file, NULL);
+    }
+
+    if (buf == NULL)
+	return(-1);
+    xsltSaveResultTo(buf, result, style);
+    ret = xmlOutputBufferClose(buf);
+    return(ret);
+}
+
+/**
+ * xsltSaveResultToFd:
+ * @fd:  a file descriptor
+ * @result:  the result xmlDocPtr
+ * @style:  the stylesheet
+ *
+ * Save the result @result obtained by applying the @style stylesheet
+ * to an open file descriptor
+ * This does not close the descriptor.
+ *
+ * Returns the number of bytes written or -1 in case of failure.
+ */
+int
+xsltSaveResultToFd(int fd, xmlDocPtr result, xsltStylesheetPtr style) {
+    xmlOutputBufferPtr buf;
+    const xmlChar *encoding;
+    int ret;
+
+    if ((fd < 0) || (result == NULL) || (style == NULL))
+	return(-1);
+    if (result->children == NULL)
+	return(0);
+
+    XSLT_GET_IMPORT_PTR(encoding, style, encoding)
+    if (encoding != NULL) {
+	xmlCharEncodingHandlerPtr encoder;
+
+	encoder = xmlFindCharEncodingHandler((char *)encoding);
+	if ((encoder != NULL) &&
+	    (xmlStrEqual((const xmlChar *)encoder->name,
+			 (const xmlChar *) "UTF-8")))
+	    encoder = NULL;
+	buf = xmlOutputBufferCreateFd(fd, encoder);
+    } else {
+	buf = xmlOutputBufferCreateFd(fd, NULL);
+    }
+    if (buf == NULL)
+	return(-1);
+    xsltSaveResultTo(buf, result, style);
+    ret = xmlOutputBufferClose(buf);
+    return(ret);
+}
+
+/**
+ * xsltSaveResultToString:
+ * @doc_txt_ptr:  Memory pointer for allocated XML text
+ * @doc_txt_len:  Length of the generated XML text
+ * @result:  the result xmlDocPtr
+ * @style:  the stylesheet
+ *
+ * Save the result @result obtained by applying the @style stylesheet
+ * to a new allocated string.
+ *
+ * Returns 0 in case of success and -1 in case of error
+ */
+int
+xsltSaveResultToString(xmlChar **doc_txt_ptr, int * doc_txt_len, 
+		       xmlDocPtr result, xsltStylesheetPtr style) {
+    xmlOutputBufferPtr buf;
+    const xmlChar *encoding;
+
+    *doc_txt_ptr = NULL;
+    *doc_txt_len = 0;
+    if (result->children == NULL)
+	return(0);
+
+    XSLT_GET_IMPORT_PTR(encoding, style, encoding)
+    if (encoding != NULL) {
+	xmlCharEncodingHandlerPtr encoder;
+
+	encoder = xmlFindCharEncodingHandler((char *)encoding);
+	if ((encoder != NULL) &&
+	    (xmlStrEqual((const xmlChar *)encoder->name,
+			 (const xmlChar *) "UTF-8")))
+	    encoder = NULL;
+	buf = xmlAllocOutputBuffer(encoder);
+    } else {
+	buf = xmlAllocOutputBuffer(NULL);
+    }
+    if (buf == NULL)
+	return(-1);
+    xsltSaveResultTo(buf, result, style);
+    if (buf->conv != NULL) {
+	*doc_txt_len = buf->conv->use;
+	*doc_txt_ptr = xmlStrndup(buf->conv->content, *doc_txt_len);
+    } else {
+	*doc_txt_len = buf->buffer->use;
+	*doc_txt_ptr = xmlStrndup(buf->buffer->content, *doc_txt_len);
+    }
+    (void)xmlOutputBufferClose(buf);
+    return 0;
+}
+
+/************************************************************************
+ * 									*
+ * 		Generating profiling informations			*
+ * 									*
+ ************************************************************************/
+
+static long calibration = -1;
+
+/**
+ * xsltCalibrateTimestamps:
+ *
+ * Used for to calibrate the xsltTimestamp() function
+ * Should work if launched at startup and we don't loose our quantum :-)
+ *
+ * Returns the number of milliseconds used by xsltTimestamp()
+ */
+static long
+xsltCalibrateTimestamps(void) {
+    register int i;
+
+    for (i = 0;i < 999;i++)
+	xsltTimestamp();
+    return(xsltTimestamp() / 1000);
+}
+
+/**
+ * xsltCalibrateAdjust:
+ * @delta:  a negative dealy value found
+ *
+ * Used for to correct the calibration for xsltTimestamp()
+ */
+void
+xsltCalibrateAdjust(long delta) {
+    calibration += delta;
+}
+
+/**
+ * xsltTimestamp:
+ *
+ * Used for gathering profiling data
+ *
+ * Returns the number of tenth of milliseconds since the beginning of the
+ * profiling
+ */
+long
+xsltTimestamp(void)
+{
+#ifdef XSLT_WIN32_PERFORMANCE_COUNTER
+    BOOL ok;
+    LARGE_INTEGER performanceCount;
+    LARGE_INTEGER performanceFrequency;
+    LONGLONG quadCount;
+    double seconds;
+    static LONGLONG startupQuadCount = 0;
+    static LONGLONG startupQuadFreq = 0;
+
+    ok = QueryPerformanceCounter(&performanceCount);
+    if (!ok)
+        return 0;
+    quadCount = performanceCount.QuadPart;
+    if (calibration < 0) {
+        calibration = 0;
+        ok = QueryPerformanceFrequency(&performanceFrequency);
+        if (!ok)
+            return 0;
+        startupQuadFreq = performanceFrequency.QuadPart;
+        startupQuadCount = quadCount;
+        return (0);
+    }
+    if (startupQuadFreq == 0)
+        return 0;
+    seconds = (quadCount - startupQuadCount) / (double) startupQuadFreq;
+    return (long) (seconds * XSLT_TIMESTAMP_TICS_PER_SEC);
+
+#else /* XSLT_WIN32_PERFORMANCE_COUNTER */
+#ifdef HAVE_GETTIMEOFDAY
+    static struct timeval startup;
+    struct timeval cur;
+    long tics;
+
+    if (calibration < 0) {
+        gettimeofday(&startup, NULL);
+        calibration = 0;
+        calibration = xsltCalibrateTimestamps();
+        gettimeofday(&startup, NULL);
+        return (0);
+    }
+
+    gettimeofday(&cur, NULL);
+    tics = (cur.tv_sec - startup.tv_sec) * XSLT_TIMESTAMP_TICS_PER_SEC;
+    tics += (cur.tv_usec - startup.tv_usec) /
+                          (1000000l / XSLT_TIMESTAMP_TICS_PER_SEC);
+    
+    tics -= calibration;
+    return(tics);
+#else
+
+    /* Neither gettimeofday() nor Win32 performance counter available */
+
+    return (0);
+
+#endif /* HAVE_GETTIMEOFDAY */
+#endif /* XSLT_WIN32_PERFORMANCE_COUNTER */
+}
+
+#define MAX_TEMPLATES 10000
+
+/**
+ * xsltSaveProfiling:
+ * @ctxt:  an XSLT context
+ * @output:  a FILE * for saving the informations
+ *
+ * Save the profiling informations on @output
+ */
+void
+xsltSaveProfiling(xsltTransformContextPtr ctxt, FILE *output) {
+    int nb, i,j;
+    int max;
+    int total;
+    long totalt;
+    xsltTemplatePtr *templates;
+    xsltStylesheetPtr style;
+    xsltTemplatePtr template;
+
+    if ((output == NULL) || (ctxt == NULL))
+	return;
+    if (ctxt->profile == 0)
+	return;
+
+    nb = 0;
+    max = MAX_TEMPLATES;
+    templates = xmlMalloc(max * sizeof(xsltTemplatePtr));
+    if (templates == NULL)
+	return;
+
+    style = ctxt->style;
+    while (style != NULL) {
+	template = style->templates;
+	while (template != NULL) {
+	    if (nb >= max)
+		break;
+
+	    if (template->nbCalls > 0)
+		templates[nb++] = template;
+	    template = template->next;
+	}
+
+	style = xsltNextImport(style);
+    }
+
+    for (i = 0;i < nb -1;i++) {
+	for (j = i + 1; j < nb; j++) {
+	    if ((templates[i]->time <= templates[j]->time) ||
+		((templates[i]->time == templates[j]->time) &&
+	         (templates[i]->nbCalls <= templates[j]->nbCalls))) {
+		template = templates[j];
+		templates[j] = templates[i];
+		templates[i] = template;
+	    }
+	}
+    }
+
+    fprintf(output, "%6s%20s%20s%10s  Calls Tot 100us Avg\n\n",
+	    "number", "match", "name", "mode");
+    total = 0;
+    totalt = 0;
+    for (i = 0;i < nb;i++) {
+	fprintf(output, "%5d ", i);
+	if (templates[i]->match != NULL) {
+	    if (xmlStrlen(templates[i]->match) > 20)
+		fprintf(output, "%s\n%26s", templates[i]->match, "");
+	    else
+		fprintf(output, "%20s", templates[i]->match);
+	} else {
+	    fprintf(output, "%20s", "");
+	}
+	if (templates[i]->name != NULL) {
+	    if (xmlStrlen(templates[i]->name) > 20)
+		fprintf(output, "%s\n%46s", templates[i]->name, "");
+	    else
+		fprintf(output, "%20s", templates[i]->name);
+	} else {
+	    fprintf(output, "%20s", "");
+	}
+	if (templates[i]->mode != NULL) {
+	    if (xmlStrlen(templates[i]->mode) > 10)
+		fprintf(output, "%s\n%56s", templates[i]->mode, "");
+	    else
+		fprintf(output, "%10s", templates[i]->mode);
+	} else {
+	    fprintf(output, "%10s", "");
+	}
+	fprintf(output, " %6d", templates[i]->nbCalls);
+	fprintf(output, " %6ld %6ld\n", templates[i]->time,
+		templates[i]->time / templates[i]->nbCalls);
+	total += templates[i]->nbCalls;
+	totalt += templates[i]->time;
+    }
+    fprintf(output, "\n%30s%26s %6d %6ld\n", "Total", "", total, totalt);
+
+    xmlFree(templates);
+}
+
+/************************************************************************
+ * 									*
+ * 		Fetching profiling informations				*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltGetProfileInformation:
+ * @ctxt:  a transformation context
+ *
+ * This function should be called after the transformation completed
+ * to extract template processing profiling informations if availble.
+ * The informations are returned as an XML document tree like
+ * <?xml version="1.0"?>
+ * <profile>
+ * <template rank="1" match="*" name=""
+ *         mode="" calls="6" time="48" average="8"/>
+ * <template rank="2" match="item2|item3" name=""
+ *         mode="" calls="10" time="30" average="3"/>
+ * <template rank="3" match="item1" name=""
+ *         mode="" calls="5" time="17" average="3"/>
+ * </profile>
+ * The caller will need to free up the returned tree with xmlFreeDoc()
+ *
+ * Returns the xmlDocPtr corresponding to the result or NULL if not available.
+ */
+
+xmlDocPtr
+xsltGetProfileInformation(xsltTransformContextPtr ctxt)
+{
+    xmlDocPtr ret = NULL;
+    xmlNodePtr root, child;
+    char buf[100];
+
+    xsltStylesheetPtr style;
+    xsltTemplatePtr *templates;
+    xsltTemplatePtr templ;
+    int nb = 0, max = 0, i, j;
+
+    if (!ctxt)
+        return NULL;
+
+    if (!ctxt->profile)
+        return NULL;
+
+    nb = 0;
+    max = 10000;
+    templates =
+        (xsltTemplatePtr *) xmlMalloc(max * sizeof(xsltTemplatePtr));
+    if (templates == NULL)
+        return NULL;
+
+    /*
+     * collect all the templates in an array
+     */
+    style = ctxt->style;
+    while (style != NULL) {
+        templ = style->templates;
+        while (templ != NULL) {
+            if (nb >= max)
+                break;
+
+            if (templ->nbCalls > 0)
+                templates[nb++] = templ;
+            templ = templ->next;
+        }
+
+        style = (xsltStylesheetPtr) xsltNextImport(style);
+    }
+
+    /*
+     * Sort the array by time spent
+     */
+    for (i = 0; i < nb - 1; i++) {
+        for (j = i + 1; j < nb; j++) {
+            if ((templates[i]->time <= templates[j]->time) ||
+                ((templates[i]->time == templates[j]->time) &&
+                 (templates[i]->nbCalls <= templates[j]->nbCalls))) {
+                templ = templates[j];
+                templates[j] = templates[i];
+                templates[i] = templ;
+            }
+        }
+    }
+
+    /*
+     * Generate a document corresponding to the results.
+     */
+    ret = xmlNewDoc(BAD_CAST "1.0");
+    root = xmlNewDocNode(ret, NULL, BAD_CAST "profile", NULL);
+    xmlDocSetRootElement(ret, root);
+
+    for (i = 0; i < nb; i++) {
+        child = xmlNewChild(root, NULL, BAD_CAST "template", NULL);
+        sprintf(buf, "%d", i + 1);
+        xmlSetProp(child, BAD_CAST "rank", BAD_CAST buf);
+        xmlSetProp(child, BAD_CAST "match", BAD_CAST templates[i]->match);
+        xmlSetProp(child, BAD_CAST "name", BAD_CAST templates[i]->name);
+        xmlSetProp(child, BAD_CAST "mode", BAD_CAST templates[i]->mode);
+
+        sprintf(buf, "%d", templates[i]->nbCalls);
+        xmlSetProp(child, BAD_CAST "calls", BAD_CAST buf);
+
+        sprintf(buf, "%ld", templates[i]->time);
+        xmlSetProp(child, BAD_CAST "time", BAD_CAST buf);
+
+        sprintf(buf, "%ld", templates[i]->time / templates[i]->nbCalls);
+        xmlSetProp(child, BAD_CAST "average", BAD_CAST buf);
+    };
+
+    xmlFree(templates);
+
+    return ret;
+}
+
+/************************************************************************
+ * 									*
+ * 		Hooks for libxml2 XPath					*
+ * 									*
+ ************************************************************************/
+
+/**
+ * xsltXPathCompile:
+ * @style: the stylesheet
+ * @str:  the XPath expression
+ *
+ * Compile an XPath expression
+ *
+ * Returns the xmlXPathCompExprPtr resulting from the compilation or NULL.
+ *         the caller has to free the object.
+ */
+xmlXPathCompExprPtr
+xsltXPathCompile(xsltStylesheetPtr style, const xmlChar *str) {
+    xmlXPathContextPtr xctxt;
+    xmlXPathCompExprPtr ret;
+
+    if (style != NULL)
+	xctxt = xmlXPathNewContext(style->doc);
+    else
+	xctxt = xmlXPathNewContext(NULL);
+    if (style != NULL)
+	xctxt->dict = style->dict;
+    ret = xmlXPathCtxtCompile(xctxt, str);
+    xmlXPathFreeContext(xctxt);
+    /*
+     * TODO: there is a lot of optimizations which should be possible
+     *       like variable slot precomputations, function precomputations, etc.
+     */
+     
+    return(ret);
+}
+
+/************************************************************************
+ * 									*
+ * 		Hooks for the debugger					*
+ * 									*
+ ************************************************************************/
+
+/*
+ * There is currently only 3 debugging callback defined
+ * Debugger callbacks are disabled by default
+ */
+#define XSLT_CALLBACK_NUMBER 3
+
+typedef struct _xsltDebuggerCallbacks xsltDebuggerCallbacks;
+typedef xsltDebuggerCallbacks *xsltDebuggerCallbacksPtr;
+struct _xsltDebuggerCallbacks {
+    xsltHandleDebuggerCallback handler;
+    xsltAddCallCallback add;
+    xsltDropCallCallback drop;
+};
+
+static xsltDebuggerCallbacks xsltDebuggerCurrentCallbacks = {
+    NULL, /* handler */
+    NULL, /* add */
+    NULL  /* drop */
+};
+
+int xslDebugStatus;
+
+/**
+ * xsltSetDebuggerStatus:
+ * @value : the value to be set
+ * 
+ * This function sets the value of xslDebugStatus.
+ */
+void
+xsltSetDebuggerStatus(int value)
+{
+    xslDebugStatus = value;	
+}
+
+/**
+ * xsltGetDebuggerStatus: 
+ * 
+ * Get xslDebugStatus.
+ *
+ * Returns the value of xslDebugStatus.
+ */
+int
+xsltGetDebuggerStatus(void)
+{
+    return(xslDebugStatus);	
+}
+
+/**
+ * xsltSetDebuggerCallbacks:
+ * @no : number of callbacks
+ * @block : the block of callbacks
+ * 
+ * This function allow to plug a debugger into the XSLT library
+ * @block points to a block of memory containing the address of @no 
+ * callback routines.
+ *
+ * Returns 0 in case of success and -1 in case of error
+ */
+int
+xsltSetDebuggerCallbacks(int no, void *block)
+{
+    xsltDebuggerCallbacksPtr callbacks;
+
+    if ((block == NULL) || (no != XSLT_CALLBACK_NUMBER))
+	return(-1);
+
+    callbacks = (xsltDebuggerCallbacksPtr) block;
+    xsltDebuggerCurrentCallbacks.handler = callbacks->handler;
+    xsltDebuggerCurrentCallbacks.add  = callbacks->add;
+    xsltDebuggerCurrentCallbacks.drop  = callbacks->drop;
+    return(0);
+}
+
+/**
+ * xslHandleDebugger:
+ * @cur : source node being executed
+ * @node : data node being processed
+ * @templ : temlate that applies to node
+ * @ctxt : the xslt transform context 
+ * 
+ * If either cur or node are a breakpoint, or xslDebugStatus in state 
+ *   where debugging must occcur at this time then transfer control
+ *   to the xslDebugBreak function
+ */
+void
+xslHandleDebugger(xmlNodePtr cur, xmlNodePtr node, xsltTemplatePtr templ,
+	          xsltTransformContextPtr ctxt)
+{
+    if (xsltDebuggerCurrentCallbacks.handler != NULL)
+	xsltDebuggerCurrentCallbacks.handler(cur, node, templ, ctxt);
+}
+
+/**
+ * xslAddCall:
+ * @templ : current template being applied
+ * @source : the source node being processed
+ *
+ * Add template "call" to call stack
+ * Returns : 1 on sucess 0 otherwise an error may be printed if 
+ *            WITH_XSLT_DEBUG_BREAKPOINTS is defined
+ */
+int
+xslAddCall(xsltTemplatePtr templ, xmlNodePtr source)
+{
+    if (xsltDebuggerCurrentCallbacks.add != NULL)
+	return(xsltDebuggerCurrentCallbacks.add(templ, source));
+    return(0);
+}
+
+/**
+ * xslDropCall:
+ *
+ * Drop the topmost item off the call stack
+ */
+void
+xslDropCall(void)
+{
+    if (xsltDebuggerCurrentCallbacks.drop != NULL)
+	xsltDebuggerCurrentCallbacks.drop();
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/xsltutils.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/xsltutils.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/xsltutils.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,332 @@
+/*
+ * Summary: set of utilities for the XSLT engine
+ * Description: interfaces for the utilities module of the XSLT engine.
+ *              things like message handling, profiling, and other
+ *              generally useful routines.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLTUTILS_H__
+#define __XML_XSLTUTILS_H__
+
+#include <libxslt/xsltconfig.h>
+#ifdef HAVE_STDARG_H
+#include <stdarg.h>
+#endif
+#include <libxml/xpath.h>
+#include <libxml/dict.h>
+#include <libxml/xmlerror.h>
+#include "xsltexports.h"
+#include "xsltInternals.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * XSLT_TODO:
+ *
+ * Macro to flag unimplemented blocks.
+ */
+#define XSLT_TODO 							\
+    xsltGenericError(xsltGenericErrorContext,				\
+	    "Unimplemented block at %s:%d\n",				\
+            __FILE__, __LINE__);
+
+/**
+ * XSLT_STRANGE:
+ *
+ * Macro to flag that a problem was detected internally.
+ */
+#define XSLT_STRANGE 							\
+    xsltGenericError(xsltGenericErrorContext,				\
+	    "Internal error at %s:%d\n",				\
+            __FILE__, __LINE__);
+
+/**
+ * IS_XSLT_ELEM:
+ *
+ * Checks that the element pertains to XSLT namespace.
+ */
+#define IS_XSLT_ELEM(n)							\
+    (((n) != NULL) && ((n)->ns != NULL) &&				\
+     (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE)))
+
+/**
+ * IS_XSLT_NAME:
+ *
+ * Checks the value of an element in XSLT namespace.
+ */
+#define IS_XSLT_NAME(n, val)						\
+    (xmlStrEqual((n)->name, (const xmlChar *) (val)))
+
+/**
+ * IS_XSLT_REAL_NODE:
+ *
+ * Check that a node is a 'real' one: document, element, text or attribute.
+ */
+#define IS_XSLT_REAL_NODE(n)						\
+    (((n) != NULL) &&							\
+     (((n)->type == XML_ELEMENT_NODE) ||				\
+      ((n)->type == XML_TEXT_NODE) ||					\
+      ((n)->type == XML_ATTRIBUTE_NODE) ||				\
+      ((n)->type == XML_DOCUMENT_NODE) ||				\
+      ((n)->type == XML_HTML_DOCUMENT_NODE) ||				\
+      ((n)->type == XML_PI_NODE)))
+
+/*
+ * Our own version of namespaced atributes lookup.
+ */
+XSLTPUBFUN xmlChar * XSLTCALL
+		xsltGetNsProp	(xmlNodePtr node,
+				 const xmlChar *name,
+				 const xmlChar *nameSpace);
+XSLTPUBFUN const xmlChar * XSLTCALL
+		xsltGetCNsProp	(xsltStylesheetPtr style,
+				 xmlNodePtr node,
+				 const xmlChar *name,
+				 const xmlChar *nameSpace);
+XSLTPUBFUN int XSLTCALL
+		xsltGetUTF8Char	(const unsigned char *utf,
+				 int *len);
+
+/*
+ * XSLT Debug Tracing Tracing Types
+ */
+typedef enum {
+	XSLT_TRACE_ALL =		-1,
+	XSLT_TRACE_NONE = 		0,
+	XSLT_TRACE_COPY_TEXT = 		1<<0,
+	XSLT_TRACE_PROCESS_NODE = 	1<<1,
+	XSLT_TRACE_APPLY_TEMPLATE = 	1<<2,
+	XSLT_TRACE_COPY = 		1<<3,
+	XSLT_TRACE_COMMENT = 		1<<4,
+	XSLT_TRACE_PI = 		1<<5,
+	XSLT_TRACE_COPY_OF = 		1<<6,
+	XSLT_TRACE_VALUE_OF = 		1<<7,
+	XSLT_TRACE_CALL_TEMPLATE = 	1<<8,
+	XSLT_TRACE_APPLY_TEMPLATES = 	1<<9,
+	XSLT_TRACE_CHOOSE = 		1<<10,
+	XSLT_TRACE_IF = 		1<<11,
+	XSLT_TRACE_FOR_EACH = 		1<<12,
+	XSLT_TRACE_STRIP_SPACES = 	1<<13,
+	XSLT_TRACE_TEMPLATES = 		1<<14,
+	XSLT_TRACE_KEYS = 		1<<15,
+	XSLT_TRACE_VARIABLES = 		1<<16
+} xsltDebugTraceCodes;
+
+/**
+ * XSLT_TRACE:
+ *
+ * Control the type of xsl debugtrace messages emitted.
+ */
+#define XSLT_TRACE(ctxt,code,call)	\
+	if (ctxt->traceCode && (*(ctxt->traceCode) & code)) \
+	    call
+
+XSLTPUBFUN void XSLTCALL
+		xsltDebugSetDefaultTrace(xsltDebugTraceCodes val);
+XSLTPUBFUN xsltDebugTraceCodes XSLTCALL
+		xsltDebugGetDefaultTrace(void);
+
+/*
+ * XSLT specific error and debug reporting functions.
+ */
+XSLTPUBVAR xmlGenericErrorFunc xsltGenericError;
+XSLTPUBVAR void *xsltGenericErrorContext;
+XSLTPUBVAR xmlGenericErrorFunc xsltGenericDebug;
+XSLTPUBVAR void *xsltGenericDebugContext;
+
+XSLTPUBFUN void XSLTCALL		
+		xsltPrintErrorContext		(xsltTransformContextPtr ctxt,
+	                                         xsltStylesheetPtr style,
+						 xmlNodePtr node);
+XSLTPUBFUN void XSLTCALL		
+    		xsltMessage			(xsltTransformContextPtr ctxt,
+						 xmlNodePtr node,
+						 xmlNodePtr inst);
+XSLTPUBFUN void XSLTCALL		
+    		xsltSetGenericErrorFunc		(void *ctx,
+						 xmlGenericErrorFunc handler);
+XSLTPUBFUN void XSLTCALL		
+    		xsltSetGenericDebugFunc		(void *ctx,
+						 xmlGenericErrorFunc handler);
+XSLTPUBFUN void XSLTCALL		
+    		xsltSetTransformErrorFunc	(xsltTransformContextPtr ctxt,
+						 void *ctx,
+						 xmlGenericErrorFunc handler);
+XSLTPUBFUN void XSLTCALL		
+    		xsltTransformError		(xsltTransformContextPtr ctxt,
+						 xsltStylesheetPtr style,
+						 xmlNodePtr node,
+						 const char *msg,
+						 ...);
+
+XSLTPUBFUN int XSLTCALL
+		xsltSetCtxtParseOptions		(xsltTransformContextPtr ctxt,
+						 int options);
+/*
+ * Sorting.
+ */
+
+XSLTPUBFUN void XSLTCALL		
+    		xsltDocumentSortFunction	(xmlNodeSetPtr list);
+XSLTPUBFUN void XSLTCALL		
+    		xsltSetSortFunc			(xsltSortFunc handler);
+XSLTPUBFUN void XSLTCALL		
+    		xsltSetCtxtSortFunc		(xsltTransformContextPtr ctxt,
+						 xsltSortFunc handler);
+XSLTPUBFUN void XSLTCALL		
+    		xsltDefaultSortFunction		(xsltTransformContextPtr ctxt,
+						 xmlNodePtr *sorts,
+						 int nbsorts);
+XSLTPUBFUN void XSLTCALL		
+    		xsltDoSortFunction		(xsltTransformContextPtr ctxt,
+						 xmlNodePtr * sorts,
+						 int nbsorts);
+XSLTPUBFUN xmlXPathObjectPtr * XSLTCALL 
+    		xsltComputeSortResult		(xsltTransformContextPtr ctxt,
+						 xmlNodePtr sort);
+
+/*
+ * QNames handling.
+ */
+
+XSLTPUBFUN const xmlChar * XSLTCALL
+		xsltSplitQName			(xmlDictPtr dict,
+						 const xmlChar *name,
+						 const xmlChar **prefix);
+XSLTPUBFUN const xmlChar * XSLTCALL 
+    		xsltGetQNameURI			(xmlNodePtr node,
+						 xmlChar **name);
+
+XSLTPUBFUN const xmlChar * XSLTCALL
+		xsltGetQNameURI2		(xsltStylesheetPtr style,
+						 xmlNodePtr node,
+						 const xmlChar **name);
+
+/*
+ * Output, reuse libxml I/O buffers.
+ */
+XSLTPUBFUN int XSLTCALL		
+    		xsltSaveResultTo		(xmlOutputBufferPtr buf,
+						 xmlDocPtr result,
+						 xsltStylesheetPtr style);
+XSLTPUBFUN int XSLTCALL		
+    		xsltSaveResultToFilename	(const char *URI,
+						 xmlDocPtr result,
+						 xsltStylesheetPtr style,
+						 int compression);
+XSLTPUBFUN int XSLTCALL		
+    		xsltSaveResultToFile		(FILE *file,
+						 xmlDocPtr result,
+						 xsltStylesheetPtr style);
+XSLTPUBFUN int XSLTCALL		
+    		xsltSaveResultToFd		(int fd,
+						 xmlDocPtr result,
+						 xsltStylesheetPtr style);
+XSLTPUBFUN int XSLTCALL             
+    		xsltSaveResultToString          (xmlChar **doc_txt_ptr, 
+                                                 int * doc_txt_len, 
+                                                 xmlDocPtr result, 
+                                                 xsltStylesheetPtr style);
+
+/*
+ * XPath interface
+ */
+XSLTPUBFUN xmlXPathCompExprPtr XSLTCALL
+		xsltXPathCompile		(xsltStylesheetPtr style,
+						 const xmlChar *str);
+
+/*
+ * Profiling.
+ */
+XSLTPUBFUN void XSLTCALL		
+    		xsltSaveProfiling		(xsltTransformContextPtr ctxt,
+						 FILE *output);
+XSLTPUBFUN xmlDocPtr XSLTCALL	
+    		xsltGetProfileInformation	(xsltTransformContextPtr ctxt);
+
+XSLTPUBFUN long XSLTCALL		
+    		xsltTimestamp			(void);
+XSLTPUBFUN void XSLTCALL		
+    		xsltCalibrateAdjust		(long delta);
+
+/**
+ * XSLT_TIMESTAMP_TICS_PER_SEC:
+ *
+ * Sampling precision for profiling
+ */
+#define XSLT_TIMESTAMP_TICS_PER_SEC 100000l
+
+/*
+ * Hooks for the debugger.
+ */
+
+typedef enum {
+    XSLT_DEBUG_NONE = 0, /* no debugging allowed */
+    XSLT_DEBUG_INIT,
+    XSLT_DEBUG_STEP,
+    XSLT_DEBUG_STEPOUT,
+    XSLT_DEBUG_NEXT,
+    XSLT_DEBUG_STOP,
+    XSLT_DEBUG_CONT,
+    XSLT_DEBUG_RUN,
+    XSLT_DEBUG_RUN_RESTART,
+    XSLT_DEBUG_QUIT
+} xsltDebugStatusCodes;
+
+XSLTPUBVAR int xslDebugStatus;
+
+typedef void (*xsltHandleDebuggerCallback) (xmlNodePtr cur, xmlNodePtr node,
+			xsltTemplatePtr templ, xsltTransformContextPtr ctxt);
+typedef int (*xsltAddCallCallback) (xsltTemplatePtr templ, xmlNodePtr source);
+typedef void (*xsltDropCallCallback) (void);
+
+XSLTPUBFUN void XSLTCALL
+		xsltSetDebuggerStatus		(int value);
+XSLTPUBFUN int XSLTCALL
+		xsltGetDebuggerStatus		(void);
+XSLTPUBFUN int XSLTCALL		
+		xsltSetDebuggerCallbacks	(int no, void *block);
+XSLTPUBFUN int XSLTCALL		
+		xslAddCall			(xsltTemplatePtr templ,
+						 xmlNodePtr source);
+XSLTPUBFUN void XSLTCALL		
+		xslDropCall			(void);
+
+#ifdef XSLT_REFACTORED
+/**
+ * xsltPointerList:
+ *
+ * Pointer-list for various purposes.
+ */
+typedef struct _xsltPointerList xsltPointerList;
+typedef xsltPointerList *xsltPointerListPtr;
+struct _xsltPointerList {
+    void **items;
+    int number;
+    int size;
+};
+
+XSLTPUBFUN xsltPointerListPtr XSLTCALL
+		xsltPointerListCreate		(void);
+XSLTPUBFUN void XSLTCALL
+		xsltPointerListFree		(xsltPointerListPtr list);
+XSLTPUBFUN void XSLTCALL
+		xsltPointerListClear		(xsltPointerListPtr list);
+XSLTPUBFUN int XSLTCALL
+		xsltPointerListAdd		(xsltPointerListPtr list,
+						 void *item);
+#endif /* XSLT_REFACTOR */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLTUTILS_H__ */
+
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/xsltwin32config.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/xsltwin32config.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/xsltwin32config.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,105 @@
+/*
+ * Summary: compile-time version informations for the XSLT engine 
+ *          when compiled on windows
+ * Description: compile-time version informations for the XSLT engine
+ *              when compiled on windows. This file is generated.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLTWIN32CONFIG_H__
+#define __XML_XSLTWIN32CONFIG_H__
+
+#include "win32config.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * LIBXSLT_DOTTED_VERSION:
+ *
+ * the version string like "1.2.3"
+ */
+#define LIBXSLT_DOTTED_VERSION "1.1.16"
+
+/**
+ * LIBXSLT_VERSION:
+ *
+ * the version number: 1.2.3 value is 1002003
+ */
+#define LIBXSLT_VERSION 10116
+
+/**
+ * LIBXSLT_VERSION_STRING:
+ *
+ * the version number string, 1.2.3 value is "1002003"
+ */
+#define LIBXSLT_VERSION_STRING "10116"
+
+/**
+ * LIBXSLT_VERSION_EXTRA:
+ *
+ * extra version information, used to show a CVS compilation
+ */
+#define LIBXSLT_VERSION_EXTRA "-win32"
+
+/**
+ * WITH_XSLT_DEBUG:
+ *
+ * Activate the compilation of the debug reporting. Speed penalty
+ * is insignifiant and being able to run xsltpoc -v is useful. On
+ * by default
+ */
+#if 1
+#define WITH_XSLT_DEBUG
+#endif
+
+/**
+ * WITH_MODULES:
+ *
+ * Whether module support is configured into libxslt
+ */
+#if 1
+#ifndef WITH_MODULES
+#define WITH_MODULES
+#endif
+#define LIBXSLT_PLUGINS_PATH() getenv("LIBXSLT_PLUGINS_PATH")
+#endif
+
+#if 0
+/**
+ * DEBUG_MEMORY:
+ *
+ * should be activated only when debugging libxslt. It replaces the
+ * allocator with a collect and debug shell to the libc allocator.
+ * Use configure --with-mem-debug to activate it on both library
+ */
+#define DEBUG_MEMORY
+
+/**
+ * DEBUG_MEMORY_LOCATION:
+ *
+ * should be activated only when debugging libxslt.
+ * DEBUG_MEMORY_LOCATION should be activated only when libxml has
+ * been configured with --with-debug-mem too
+ */
+#define DEBUG_MEMORY_LOCATION
+#endif
+
+/**
+ * ATTRIBUTE_UNUSED:
+ *
+ * This macro is used to flag unused function parameters to GCC, useless here
+ */
+#ifndef ATTRIBUTE_UNUSED
+#define ATTRIBUTE_UNUSED
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLTWIN32CONFIG_H__ */

Added: packages/libxslt/branches/upstream/1.1.16/libxslt/xsltwin32config.h.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt/xsltwin32config.h.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt/xsltwin32config.h.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,105 @@
+/*
+ * Summary: compile-time version informations for the XSLT engine 
+ *          when compiled on windows
+ * Description: compile-time version informations for the XSLT engine
+ *              when compiled on windows. This file is generated.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XSLTWIN32CONFIG_H__
+#define __XML_XSLTWIN32CONFIG_H__
+
+#include "win32config.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * LIBXSLT_DOTTED_VERSION:
+ *
+ * the version string like "1.2.3"
+ */
+#define LIBXSLT_DOTTED_VERSION "@VERSION@"
+
+/**
+ * LIBXSLT_VERSION:
+ *
+ * the version number: 1.2.3 value is 1002003
+ */
+#define LIBXSLT_VERSION @LIBXSLT_VERSION_NUMBER@
+
+/**
+ * LIBXSLT_VERSION_STRING:
+ *
+ * the version number string, 1.2.3 value is "1002003"
+ */
+#define LIBXSLT_VERSION_STRING "@LIBXSLT_VERSION_NUMBER@"
+
+/**
+ * LIBXSLT_VERSION_EXTRA:
+ *
+ * extra version information, used to show a CVS compilation
+ */
+#define LIBXSLT_VERSION_EXTRA "-win32"
+
+/**
+ * WITH_XSLT_DEBUG:
+ *
+ * Activate the compilation of the debug reporting. Speed penalty
+ * is insignifiant and being able to run xsltpoc -v is useful. On
+ * by default
+ */
+#if 1
+#define WITH_XSLT_DEBUG
+#endif
+
+/**
+ * WITH_MODULES:
+ *
+ * Whether module support is configured into libxslt
+ */
+#if @WITH_MODULES@
+#ifndef WITH_MODULES
+#define WITH_MODULES
+#endif
+#define LIBXSLT_PLUGINS_PATH() getenv("LIBXSLT_PLUGINS_PATH")
+#endif
+
+#if 0
+/**
+ * DEBUG_MEMORY:
+ *
+ * should be activated only when debugging libxslt. It replaces the
+ * allocator with a collect and debug shell to the libc allocator.
+ * Use configure --with-mem-debug to activate it on both library
+ */
+#define DEBUG_MEMORY
+
+/**
+ * DEBUG_MEMORY_LOCATION:
+ *
+ * should be activated only when debugging libxslt.
+ * DEBUG_MEMORY_LOCATION should be activated only when libxml has
+ * been configured with --with-debug-mem too
+ */
+#define DEBUG_MEMORY_LOCATION
+#endif
+
+/**
+ * ATTRIBUTE_UNUSED:
+ *
+ * This macro is used to flag unused function parameters to GCC, useless here
+ */
+#ifndef ATTRIBUTE_UNUSED
+#define ATTRIBUTE_UNUSED
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XSLTWIN32CONFIG_H__ */

Added: packages/libxslt/branches/upstream/1.1.16/libxslt.m4
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt.m4	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt.m4	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,191 @@
+# Based on:
+# Configure paths for LIBXML2
+# Toshio Kuratomi 2001-04-21
+# Adapted from:
+# Configure paths for GLIB
+# Owen Taylor     97-11-3
+#
+# Modified to work with libxslt by Thomas Schraitle 2002/10/25
+# Fixed by Edward Rudd 2004/05/12
+
+dnl AM_PATH_XSLT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for XML, and define XML_CFLAGS and XML_LIBS
+dnl
+AC_DEFUN([AM_PATH_XSLT],[
+AC_ARG_WITH(xslt-prefix,
+            [  --with-xslt-prefix=PFX   Prefix where libxslt is installed (optional)],
+            xslt_config_prefix="$withval", xslt_config_prefix="")
+AC_ARG_WITH(xslt-exec-prefix,
+            [  --with-xslt-exec-prefix=PFX Exec prefix where libxslt is installed (optional)],
+            xslt_config_exec_prefix="$withval", xslt_config_exec_prefix="")
+AC_ARG_ENABLE(xslttest,
+              [  --disable-xslttest       Do not try to compile and run a test LIBXSLT program],,
+              enable_xslttest=yes)
+
+  if test x$xslt_config_exec_prefix != x ; then
+     xslt_config_args="$xslt_config_args --exec-prefix=$xslt_config_exec_prefix"
+     if test x${XSLT_CONFIG+set} != xset ; then
+        XSLT_CONFIG=$xslt_config_exec_prefix/bin/xslt-config
+     fi
+  fi
+  if test x$xslt_config_prefix != x ; then
+     xslt_config_args="$xslt_config_args --prefix=$xslt_config_prefix"
+     if test x${XSLT_CONFIG+set} != xset ; then
+        XSLT_CONFIG=$xslt_config_prefix/bin/xslt-config
+     fi
+  fi
+
+  AC_PATH_PROG(XSLT_CONFIG, xslt-config, no)
+  min_xslt_version=ifelse([$1], ,1.0.0,[$1])
+  AC_MSG_CHECKING(for libxslt - version >= $min_xslt_version)
+  no_xslt=""
+  if test "$XSLT_CONFIG" = "no" ; then
+    no_xslt=yes
+  else
+    XSLT_CFLAGS=`$XSLT_CONFIG $xslt_config_args --cflags`
+    XSLT_LIBS=`$XSLT_CONFIG $xslt_config_args --libs`
+    xslt_config_major_version=`$XSLT_CONFIG $xslt_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    xslt_config_minor_version=`$XSLT_CONFIG $xslt_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    xslt_config_micro_version=`$XSLT_CONFIG $xslt_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_xslttest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $XSLT_CFLAGS"
+      LIBS="$XSLT_LIBS $LIBS"
+dnl
+dnl Now check if the installed libxslt is sufficiently new.
+dnl (Also sanity checks the results of xslt-config to some extent)
+dnl
+      rm -f conf.xslttest
+      AC_TRY_RUN([
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <libxslt/xsltconfig.h>
+#include <libxslt/xslt.h>
+int 
+main()
+{
+  int xslt_major_version, xslt_minor_version, xslt_micro_version;
+  int major, minor, micro;
+  char *tmp_version;
+
+  system("touch conf.xslttest");
+
+  /* Capture xslt-config output via autoconf/configure variables */
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = (char *)strdup("$min_xslt_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string from xslt-config\n", "$min_xslt_version");
+     exit(1);
+   }
+   free(tmp_version);
+
+   /* Capture the version information from the header files */
+   tmp_version = (char *)strdup(LIBXSLT_DOTTED_VERSION);
+   if (sscanf(tmp_version, "%d.%d.%d", &xslt_major_version, &xslt_minor_version, &xslt_micro_version) != 3) {
+     printf("%s, bad version string from libxslt includes\n", "LIBXSLT_DOTTED_VERSION");
+     exit(1);
+   }
+   free(tmp_version);
+
+ /* Compare xslt-config output to the libxslt headers */
+  if ((xslt_major_version != $xslt_config_major_version) ||
+      (xslt_minor_version != $xslt_config_minor_version) ||
+      (xslt_micro_version != $xslt_config_micro_version))
+    {
+      printf("*** libxslt header files (version %d.%d.%d) do not match\n",
+         xslt_major_version, xslt_minor_version, xslt_micro_version);
+      printf("*** xslt-config (version %d.%d.%d)\n",
+         $xslt_config_major_version, $xslt_config_minor_version, $xslt_config_micro_version);
+      return 1;
+    } 
+/* Compare the headers to the library to make sure we match */
+  /* Less than ideal -- doesn't provide us with return value feedback, 
+   * only exits if there's a serious mismatch between header and library.
+   */
+    /* copied from LIBXML_TEST_VERSION; */
+    xmlCheckVersion(LIBXML_VERSION);
+
+    /* Test that the library is greater than our minimum version */
+    if ((xslt_major_version > major) ||
+        ((xslt_major_version == major) && (xslt_minor_version > minor)) ||
+        ((xslt_major_version == major) && (xslt_minor_version == minor) &&
+        (xslt_micro_version >= micro)))
+      {
+        return 0;
+       }
+     else
+      {
+        printf("\n*** An old version of libxslt (%d.%d.%d) was found.\n",
+               xslt_major_version, xslt_minor_version, xslt_micro_version);
+        printf("*** You need a version of libxslt newer than %d.%d.%d. The latest version of\n",
+           major, minor, micro);
+        printf("*** libxslt is always available from ftp://ftp.xmlsoft.org.\n");
+        printf("***\n");
+        printf("*** If you have already installed a sufficiently new version, this error\n");
+        printf("*** probably means that the wrong copy of the xslt-config shell script is\n");
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
+        printf("*** of LIBXSLT, but you can also set the XSLT_CONFIG environment to point to the\n");
+        printf("*** correct copy of xslt-config. (In this case, you will have to\n");
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+        printf("*** so that the correct libraries are found at run-time))\n");
+    }
+  return 1;
+}
+],, no_xslt=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+
+  if test "x$no_xslt" = x ; then
+     AC_MSG_RESULT(yes (version $xslt_config_major_version.$xslt_config_minor_version.$xslt_config_micro_version))
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$XSLT_CONFIG" = "no" ; then
+       echo "*** The xslt-config script installed by LIBXSLT could not be found"
+       echo "*** If libxslt was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the XSLT_CONFIG environment variable to the"
+       echo "*** full path to xslt-config."
+     else
+       if test -f conf.xslttest ; then
+        :
+       else
+          echo "*** Could not run libxslt test program, checking why..."
+          CFLAGS="$CFLAGS $XSLT_CFLAGS"
+          LIBS="$LIBS $XSLT_LIBS"
+          AC_TRY_LINK([
+#include <libxslt/xslt.h>
+#include <stdio.h>
+],      [ LIBXSLT_TEST_VERSION; return 0;],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding LIBXSLT or finding the wrong"
+          echo "*** version of LIBXSLT. If it is not finding LIBXSLT, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+          echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means LIBXSLT was incorrectly installed"
+          echo "*** or that you have moved LIBXSLT since it was installed. In the latter case, you"
+          echo "*** may want to edit the xslt-config script: $XSLT_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+
+     XSLT_CFLAGS=""
+     XSLT_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(XSLT_CFLAGS)
+  AC_SUBST(XSLT_LIBS)
+  rm -f conf.xslttest
+])

Added: packages/libxslt/branches/upstream/1.1.16/libxslt.pc.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt.pc.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt.pc.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+
+Name: libxslt
+Version: @VERSION@
+Description: XSLT library version 2.
+Requires: libxml-2.0
+Libs: @XSLT_LIBDIR@ @XSLT_LIBS@
+Cflags: @XSLT_INCLUDEDIR@

Added: packages/libxslt/branches/upstream/1.1.16/libxslt.spec
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt.spec	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt.spec	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,149 @@
+Summary: Library providing the Gnome XSLT engine
+Name: libxslt
+Version: 1.1.16
+Release: 1
+License: MIT
+Group: Development/Libraries
+Source: ftp://xmlsoft.org/XSLT/libxslt-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+URL: http://xmlsoft.org/XSLT/
+Requires: libxml2 >= 2.6.17
+BuildRequires: libxml2-devel >= 2.6.17
+BuildRequires: python python-devel
+BuildRequires: libxml2-python
+BuildRequires: libgcrypt-devel
+Prefix: %{_prefix}
+Docdir: %{_docdir}
+
+%description
+This C library allows to transform XML files into other XML files
+(or HTML, text, ...) using the standard XSLT stylesheet transformation
+mechanism. To use it you need to have a version of libxml2 >= 2.6.17
+installed. The xsltproc command is a command line interface to the XSLT engine
+
+%package devel
+Summary: Libraries, includes, etc. to embed the Gnome XSLT engine
+Group: Development/Libraries
+Requires: libxslt = %{version}
+Requires: libxml2-devel >= 2.5.6
+Requires: libgcrypt-devel
+
+%description devel
+This C library allows to transform XML files into other XML files
+(or HTML, text, ...) using the standard XSLT stylesheet transformation
+mechanism. To use it you need to have a version of libxml2 >= 2.6.17
+installed.
+
+%package python
+Summary: Python bindings for the libxslt library
+Group: Development/Libraries
+Requires: libxslt = %{version}
+Requires: libxml2 >= 2.6.17
+Requires: libxml2-python >= 2.6.17
+Requires: %{_libdir}/python%(echo `python -c "import sys; print sys.version[0:3]"`)
+
+%description python
+The libxslt-python package contains a module that permits applications
+written in the Python programming language to use the interface
+supplied by the libxslt library to apply XSLT transformations.
+
+This library allows to parse sytlesheets, uses the libxml2-python
+to load and save XML and HTML files. Direct access to XPath and
+the XSLT transformation context are possible to extend the XSLT language
+with XPath functions written in Python.
+
+%prep
+%setup -q
+
+%build
+%configure
+make
+gzip -9 ChangeLog
+
+%install
+rm -fr %{buildroot}
+
+%makeinstall
+
+rm -fr $RPM_BUILD_ROOT%{_libdir}/*.la \
+       $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/libxsltmod*a
+
+%clean
+rm -fr %{buildroot}
+
+%post
+/sbin/ldconfig
+
+%postun
+/sbin/ldconfig
+
+%files
+%defattr(-, root, root)
+
+%doc AUTHORS ChangeLog.gz NEWS README Copyright TODO FEATURES
+%doc doc/*.html doc/html doc/tutorial doc/tutorial2 doc/*.gif
+%doc doc/EXSLT
+%doc %{_mandir}/man1/xsltproc.1*
+%{_libdir}/lib*.so.*
+%{_libdir}/libxslt-plugins
+%{prefix}/bin/xsltproc
+
+%files devel
+%defattr(-, root, root)
+
+%doc AUTHORS ChangeLog.gz NEWS README Copyright TODO FEATURES
+%doc doc/libxslt-api.xml
+%doc doc/libxslt-refs.xml
+%doc doc/EXSLT/libexslt-api.xml
+%doc doc/EXSLT/libexslt-refs.xml
+%doc %{_mandir}/man3/libxslt.3*
+%doc %{_mandir}/man3/libexslt.3*
+%{_libdir}/lib*.so
+%{_libdir}/*a
+%{_libdir}/*.sh
+%{prefix}/share/aclocal/libxslt.m4
+%{prefix}/include/*
+%{prefix}/bin/xslt-config
+%{_libdir}/pkgconfig/libxslt.pc
+%{_libdir}/pkgconfig/libexslt.pc
+
+%files python
+%defattr(-, root, root)
+
+%doc AUTHORS ChangeLog.gz NEWS README Copyright FEATURES
+%{_libdir}/python*/site-packages/libxslt.py*
+%{_libdir}/python*/site-packages/libxsltmod*
+%doc python/TODO
+%doc python/libxsltclass.txt
+%doc python/tests/*.py
+%doc python/tests/*.xml
+%doc python/tests/*.xsl
+
+%changelog
+* Mon May  1 2006 Daniel Veillard <veillard at redhat.com>
+- upstream release 1.1.16 see http://xmlsoft.org/XSLT/news.html
+
+* Sun Nov  2 2003 Daniel Veillard <veillard at redhat.com>
+- cleanup, removal of the deprecated breakpoint library and
+  automated libxml2 dependancy level in the generated spec file.
+
+* Wed Oct 23 2002 Daniel Veillard <veillard at redhat.com>
+- revamped the spec file, cleaned up some rpm building problems
+
+* Wed Sep  4 2002 Daniel Veillard <veillard at redhat.com>
+
+- library paths fixed for x86-64
+
+* Fri Feb  8 2002 Daniel.Veillard <veillard at redhat.com>
+
+- added the python module
+- changed the Licence to MIT
+
+* Sat Nov 10 2001 Daniel.Veillard <daniel at veillard.com>
+
+- cleaned up the specfile
+
+* Mon Jan 22 2001 Daniel.Veillard <daniel at veillard.com>
+
+- created based on libxml2 spec file
+

Added: packages/libxslt/branches/upstream/1.1.16/libxslt.spec.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/libxslt.spec.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/libxslt.spec.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,149 @@
+Summary: Library providing the Gnome XSLT engine
+Name: libxslt
+Version: @VERSION@
+Release: 1
+License: MIT
+Group: Development/Libraries
+Source: ftp://xmlsoft.org/XSLT/libxslt-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+URL: http://xmlsoft.org/XSLT/
+Requires: libxml2 >= @LIBXML_REQUIRED_VERSION@
+BuildRequires: libxml2-devel >= @LIBXML_REQUIRED_VERSION@
+BuildRequires: python python-devel
+BuildRequires: libxml2-python
+BuildRequires: libgcrypt-devel
+Prefix: %{_prefix}
+Docdir: %{_docdir}
+
+%description
+This C library allows to transform XML files into other XML files
+(or HTML, text, ...) using the standard XSLT stylesheet transformation
+mechanism. To use it you need to have a version of libxml2 >= @LIBXML_REQUIRED_VERSION@
+installed. The xsltproc command is a command line interface to the XSLT engine
+
+%package devel
+Summary: Libraries, includes, etc. to embed the Gnome XSLT engine
+Group: Development/Libraries
+Requires: libxslt = %{version}
+Requires: libxml2-devel >= 2.5.6
+Requires: libgcrypt-devel
+
+%description devel
+This C library allows to transform XML files into other XML files
+(or HTML, text, ...) using the standard XSLT stylesheet transformation
+mechanism. To use it you need to have a version of libxml2 >= @LIBXML_REQUIRED_VERSION@
+installed.
+
+%package python
+Summary: Python bindings for the libxslt library
+Group: Development/Libraries
+Requires: libxslt = %{version}
+Requires: libxml2 >= @LIBXML_REQUIRED_VERSION@
+Requires: libxml2-python >= @LIBXML_REQUIRED_VERSION@
+Requires: %{_libdir}/python%(echo `python -c "import sys; print sys.version[0:3]"`)
+
+%description python
+The libxslt-python package contains a module that permits applications
+written in the Python programming language to use the interface
+supplied by the libxslt library to apply XSLT transformations.
+
+This library allows to parse sytlesheets, uses the libxml2-python
+to load and save XML and HTML files. Direct access to XPath and
+the XSLT transformation context are possible to extend the XSLT language
+with XPath functions written in Python.
+
+%prep
+%setup -q
+
+%build
+%configure
+make
+gzip -9 ChangeLog
+
+%install
+rm -fr %{buildroot}
+
+%makeinstall
+
+rm -fr $RPM_BUILD_ROOT%{_libdir}/*.la \
+       $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/libxsltmod*a
+
+%clean
+rm -fr %{buildroot}
+
+%post
+/sbin/ldconfig
+
+%postun
+/sbin/ldconfig
+
+%files
+%defattr(-, root, root)
+
+%doc AUTHORS ChangeLog.gz NEWS README Copyright TODO FEATURES
+%doc doc/*.html doc/html doc/tutorial doc/tutorial2 doc/*.gif
+%doc doc/EXSLT
+%doc %{_mandir}/man1/xsltproc.1*
+%{_libdir}/lib*.so.*
+%{_libdir}/libxslt-plugins
+%{prefix}/bin/xsltproc
+
+%files devel
+%defattr(-, root, root)
+
+%doc AUTHORS ChangeLog.gz NEWS README Copyright TODO FEATURES
+%doc doc/libxslt-api.xml
+%doc doc/libxslt-refs.xml
+%doc doc/EXSLT/libexslt-api.xml
+%doc doc/EXSLT/libexslt-refs.xml
+%doc %{_mandir}/man3/libxslt.3*
+%doc %{_mandir}/man3/libexslt.3*
+%{_libdir}/lib*.so
+%{_libdir}/*a
+%{_libdir}/*.sh
+%{prefix}/share/aclocal/libxslt.m4
+%{prefix}/include/*
+%{prefix}/bin/xslt-config
+%{_libdir}/pkgconfig/libxslt.pc
+%{_libdir}/pkgconfig/libexslt.pc
+
+%files python
+%defattr(-, root, root)
+
+%doc AUTHORS ChangeLog.gz NEWS README Copyright FEATURES
+%{_libdir}/python*/site-packages/libxslt.py*
+%{_libdir}/python*/site-packages/libxsltmod*
+%doc python/TODO
+%doc python/libxsltclass.txt
+%doc python/tests/*.py
+%doc python/tests/*.xml
+%doc python/tests/*.xsl
+
+%changelog
+* @RELDATE@ Daniel Veillard <veillard at redhat.com>
+- upstream release @VERSION@ see http://xmlsoft.org/XSLT/news.html
+
+* Sun Nov  2 2003 Daniel Veillard <veillard at redhat.com>
+- cleanup, removal of the deprecated breakpoint library and
+  automated libxml2 dependancy level in the generated spec file.
+
+* Wed Oct 23 2002 Daniel Veillard <veillard at redhat.com>
+- revamped the spec file, cleaned up some rpm building problems
+
+* Wed Sep  4 2002 Daniel Veillard <veillard at redhat.com>
+
+- library paths fixed for x86-64
+
+* Fri Feb  8 2002 Daniel.Veillard <veillard at redhat.com>
+
+- added the python module
+- changed the Licence to MIT
+
+* Sat Nov 10 2001 Daniel.Veillard <daniel at veillard.com>
+
+- cleaned up the specfile
+
+* Mon Jan 22 2001 Daniel.Veillard <daniel at veillard.com>
+
+- created based on libxml2 spec file
+

Added: packages/libxslt/branches/upstream/1.1.16/ltconfig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/ltconfig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/ltconfig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3114 @@
+#! /bin/sh
+
+# ltconfig - Create a system-specific libtool.
+# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A lot of this script is taken from autoconf-2.10.
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+echo=echo
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec "$SHELL" "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit 0
+fi
+
+# Find the correct PATH separator.  Usually this is `:', but
+# DJGPP uses `;' like DOS.
+if test "X${PATH_SEPARATOR+set}" != Xset; then
+  UNAME=${UNAME-`uname 2>/dev/null`}
+  case X$UNAME in
+    *-DOS) PATH_SEPARATOR=';' ;;
+    *)     PATH_SEPARATOR=':' ;;
+  esac
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test "X${echo_test_string+set}" != Xset; then
+  # find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+       echo_test_string="`eval $cmd`" &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" != 'X\t' ||
+   test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+  for dir in $PATH /usr/ucb; do
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running ltconfig again with it.
+      ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
+    else
+      # Try using printf.
+      echo='printf "%s\n"'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
+	   test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+	CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' &&
+	   test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "$0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# The name of this program.
+progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
+
+# Constants:
+PROGRAM=ltconfig
+PACKAGE=libtool
+VERSION=1.3.5
+TIMESTAMP=" (1.385.2.206 2000/05/27 11:12:27)"
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+rm="rm -f"
+
+help="Try \`$progname --help' for more information."
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+enable_shared=yes
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+enable_static=yes
+enable_fast_install=yes
+enable_dlopen=unknown
+enable_win32_dll=no
+ltmain=
+silent=
+srcdir=
+ac_config_guess=
+ac_config_sub=
+host=
+nonopt=
+ofile="$default_ofile"
+verify_host=yes
+with_gcc=no
+with_gnu_ld=no
+need_locks=yes
+ac_ext=c
+objext=o
+libext=a
+exeext=
+cache_file=
+
+old_AR="$AR"
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+old_CPPFLAGS="$CPPFLAGS"
+old_LDFLAGS="$LDFLAGS"
+old_LD="$LD"
+old_LN_S="$LN_S"
+old_LIBS="$LIBS"
+old_NM="$NM"
+old_RANLIB="$RANLIB"
+old_DLLTOOL="$DLLTOOL"
+old_OBJDUMP="$OBJDUMP"
+old_AS="$AS"
+
+# Parse the command line options.
+args=
+prev=
+for option
+do
+  case "$option" in
+  -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) optarg= ;;
+  esac
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$prev"; then
+    eval "$prev=\$option"
+    prev=
+    continue
+  fi
+
+  case "$option" in
+  --help) cat <<EOM
+Usage: $progname [OPTION]... [HOST [LTMAIN]]
+
+Generate a system-specific libtool script.
+
+    --debug                enable verbose shell tracing
+    --disable-shared       do not build shared libraries
+    --disable-static       do not build static libraries
+    --disable-fast-install do not optimize for fast installation
+    --enable-dlopen        enable dlopen support
+    --enable-win32-dll     enable building dlls on win32 hosts
+    --help                 display this help and exit
+    --no-verify            do not verify that HOST is a valid host type
+-o, --output=FILE          specify the output file [default=$default_ofile]
+    --quiet                same as \`--silent'
+    --silent               do not print informational messages
+    --srcdir=DIR           find \`config.guess' in DIR
+    --version              output version information and exit
+    --with-gcc             assume that the GNU C compiler will be used
+    --with-gnu-ld          assume that the C compiler uses the GNU linker
+    --disable-lock         disable file locking
+    --cache-file=FILE      configure cache file
+
+LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program
+that provides basic libtool functionality.
+
+HOST is the canonical host system name [default=guessed].
+EOM
+  exit 0
+  ;;
+
+  --debug)
+    echo "$progname: enabling shell trace mode"
+    set -x
+    ;;
+
+  --disable-shared) enable_shared=no ;;
+
+  --disable-static) enable_static=no ;;
+
+  --disable-fast-install) enable_fast_install=no ;;
+
+  --enable-dlopen) enable_dlopen=yes ;;
+
+  --enable-win32-dll) enable_win32_dll=yes ;;
+
+  --quiet | --silent) silent=yes ;;
+
+  --srcdir) prev=srcdir ;;
+  --srcdir=*) srcdir="$optarg" ;;
+
+  --no-verify) verify_host=no ;;
+
+  --output | -o) prev=ofile ;;
+  --output=*) ofile="$optarg" ;;
+
+  --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;;
+
+  --with-gcc) with_gcc=yes ;;
+  --with-gnu-ld) with_gnu_ld=yes ;;
+
+  --disable-lock) need_locks=no ;;
+
+  --cache-file=*) cache_file="$optarg" ;;
+
+  -*)
+    echo "$progname: unrecognized option \`$option'" 1>&2
+    echo "$help" 1>&2
+    exit 1
+    ;;
+
+  *)
+    if test -z "$ltmain"; then
+      ltmain="$option"
+    elif test -z "$host"; then
+# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
+#      if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
+#        echo "$progname: warning \`$option' is not a valid host type" 1>&2
+#      fi
+      host="$option"
+    else
+      echo "$progname: too many arguments" 1>&2
+      echo "$help" 1>&2
+      exit 1
+    fi ;;
+  esac
+done
+
+if test -z "$ltmain"; then
+  echo "$progname: you must specify a LTMAIN file" 1>&2
+  echo "$help" 1>&2
+  exit 1
+fi
+
+if test ! -f "$ltmain"; then
+  echo "$progname: \`$ltmain' does not exist" 1>&2
+  echo "$help" 1>&2
+  exit 1
+fi
+
+# Quote any args containing shell metacharacters.
+ltconfig_args=
+for arg
+do
+  case "$arg" in
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ltconfig_args="$ltconfig_args '$arg'" ;;
+  *) ltconfig_args="$ltconfig_args $arg" ;;
+  esac
+done
+
+# A relevant subset of AC_INIT.
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 5 compiler messages saved in config.log
+# 6 checking for... messages and results
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>>./config.log
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi
+if test "X${LANG+set}"   = Xset; then LANG=C;   export LANG;   fi
+
+if test -n "$cache_file" && test -r "$cache_file"; then
+  echo "loading cache $cache_file within ltconfig"
+  . $cache_file
+fi
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi at caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+if test -z "$srcdir"; then
+  # Assume the source directory is the same one as the path to LTMAIN.
+  srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
+  test "$srcdir" = "$ltmain" && srcdir=.
+fi
+
+trap "$rm conftest*; exit 1" 1 2 15
+if test "$verify_host" = yes; then
+  # Check for config.guess and config.sub.
+  ac_aux_dir=
+  for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+    if test -f $ac_dir/config.guess; then
+      ac_aux_dir=$ac_dir
+      break
+    fi
+  done
+  if test -z "$ac_aux_dir"; then
+    echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2
+    echo "$help" 1>&2
+    exit 1
+  fi
+  ac_config_guess=$ac_aux_dir/config.guess
+  ac_config_sub=$ac_aux_dir/config.sub
+
+  # Make sure we can run config.sub.
+  if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
+  else
+    echo "$progname: cannot run $ac_config_sub" 1>&2
+    echo "$help" 1>&2
+    exit 1
+  fi
+
+  echo $ac_n "checking host system type""... $ac_c" 1>&6
+
+  host_alias=$host
+  case "$host_alias" in
+  "")
+    if host_alias=`$SHELL $ac_config_guess`; then :
+    else
+      echo "$progname: cannot guess host type; you must specify one" 1>&2
+      echo "$help" 1>&2
+      exit 1
+    fi ;;
+  esac
+  host=`$SHELL $ac_config_sub $host_alias`
+  echo "$ac_t$host" 1>&6
+
+  # Make sure the host verified.
+  test -z "$host" && exit 1
+
+elif test -z "$host"; then
+  echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
+  echo "$help" 1>&2
+  exit 1
+else
+  host_alias=$host
+fi
+
+# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+case "$host_os" in
+linux-gnu*) ;;
+linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+esac
+
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+case "$host_os" in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR cru $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+# Set a sane default for `AR'.
+test -z "$AR" && AR=ar
+
+# Set a sane default for `OBJDUMP'.
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+# If RANLIB is not set, then run the test.
+if test "${RANLIB+set}" != "set"; then
+  result=no
+
+  echo $ac_n "checking for ranlib... $ac_c" 1>&6
+  IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+  for dir in $PATH; do
+    test -z "$dir" && dir=.
+    if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then
+      RANLIB="ranlib"
+      result="ranlib"
+      break
+    fi
+  done
+  IFS="$save_ifs"
+
+  echo "$ac_t$result" 1>&6
+fi
+
+if test -n "$RANLIB"; then
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+fi
+
+# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin.
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$AS" && AS=as
+
+# Check to see if we are using GCC.
+if test "$with_gcc" != yes || test -z "$CC"; then
+  # If CC is not set, then try to find GCC or a usable CC.
+  if test -z "$CC"; then
+    echo $ac_n "checking for gcc... $ac_c" 1>&6
+    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+    for dir in $PATH; do
+      test -z "$dir" && dir=.
+      if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then
+	CC="gcc"
+	break
+      fi
+    done
+    IFS="$save_ifs"
+
+    if test -n "$CC"; then
+      echo "$ac_t$CC" 1>&6
+    else
+      echo "$ac_t"no 1>&6
+    fi
+  fi
+
+  # Not "gcc", so try "cc", rejecting "/usr/ucb/cc".
+  if test -z "$CC"; then
+    echo $ac_n "checking for cc... $ac_c" 1>&6
+    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+    cc_rejected=no
+    for dir in $PATH; do
+      test -z "$dir" && dir=.
+      if test -f $dir/cc || test -f $dir/cc$ac_exeext; then
+	if test "$dir/cc" = "/usr/ucb/cc"; then
+	  cc_rejected=yes
+	  continue
+	fi
+	CC="cc"
+	break
+      fi
+    done
+    IFS="$save_ifs"
+    if test $cc_rejected = yes; then
+      # We found a bogon in the path, so make sure we never use it.
+      set dummy $CC
+      shift
+      if test $# -gt 0; then
+	# We chose a different compiler from the bogus one.
+	# However, it has the same name, so the bogon will be chosen
+	# first if we set CC to just the name; use the full file name.
+	shift
+	set dummy "$dir/cc" "$@"
+	shift
+	CC="$@"
+      fi
+    fi
+
+    if test -n "$CC"; then
+      echo "$ac_t$CC" 1>&6
+    else
+      echo "$ac_t"no 1>&6
+    fi
+
+    if test -z "$CC"; then
+      echo "$progname: error: no acceptable cc found in \$PATH" 1>&2
+      exit 1
+    fi
+  fi
+
+  # Now see if the compiler is really GCC.
+  with_gcc=no
+  echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6
+  echo "$progname:581: checking whether we are using GNU C" >&5
+
+  $rm conftest.c
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+  if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+    with_gcc=yes
+  fi
+  $rm conftest.c
+  echo "$ac_t$with_gcc" 1>&6
+fi
+
+# Allow CC to be a program name with arguments.
+set dummy $CC
+compiler="$2"
+
+echo $ac_n "checking for object suffix... $ac_c" 1>&6
+$rm conftest*
+echo 'int i = 1;' > conftest.c
+echo "$progname:603: checking for object suffix" >& 5
+if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then
+  # Append any warnings to the config.log.
+  cat conftest.err 1>&5
+
+  for ac_file in conftest.*; do
+    case $ac_file in
+    *.c) ;;
+    *) objext=`echo $ac_file | sed -e s/conftest.//` ;;
+    esac
+  done
+else
+  cat conftest.err 1>&5
+  echo "$progname: failed program was:" >&5
+  cat conftest.c >&5
+fi
+$rm conftest*
+echo "$ac_t$objext" 1>&6
+
+echo $ac_n "checking for executable suffix... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_exeext="no"
+  $rm conftest*
+  echo 'main () { return 0; }' > conftest.c
+  echo "$progname:629: checking for executable suffix" >& 5
+  if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then
+    # Append any warnings to the config.log.
+    cat conftest.err 1>&5
+
+    for ac_file in conftest.*; do
+      case $ac_file in
+      *.c | *.err | *.$objext ) ;;
+      *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;;
+      esac
+    done
+  else
+    cat conftest.err 1>&5
+    echo "$progname: failed program was:" >&5
+    cat conftest.c >&5
+  fi
+  $rm conftest*
+fi
+if test "X$ac_cv_exeext" = Xno; then
+  exeext=""
+else
+  exeext="$ac_cv_exeext"
+fi
+echo "$ac_t$ac_cv_exeext" 1>&6
+
+echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
+pic_flag=
+special_shlib_compile_flags=
+wl=
+link_static_flag=
+no_builtin_flag=
+
+if test "$with_gcc" = yes; then
+  wl='-Wl,'
+  link_static_flag='-static'
+
+  case "$host_os" in
+  beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
+    # PIC is the default for these OSes.
+    ;;
+  aix*)
+    # Below there is a dirty hack to force normal static linking with -ldl
+    # The problem is because libdl dynamically linked with both libc and
+    # libC (AIX C++ library), which obviously doesn't included in libraries
+    # list by gcc. This cause undefined symbols with -static flags.
+    # This hack allows C programs to be linked with "-static -ldl", but
+    # we not sure about C++ programs.
+    link_static_flag="$link_static_flag ${wl}-lC"
+    ;;
+  cygwin* | mingw* | os2*)
+    # We can build DLLs from non-PIC.
+    ;;
+  amigaos*)
+    # FIXME: we need at least 68020 code to build shared libraries, but
+    # adding the `-m68020' flag to GCC prevents building anything better,
+    # like `-m68040'.
+    pic_flag='-m68020 -resident32 -malways-restore-a4'
+    ;;
+  sysv4*MP*)
+    if test -d /usr/nec; then
+       pic_flag=-Kconform_pic
+    fi
+    ;;
+  *)
+    pic_flag='-fPIC'
+    ;;
+  esac
+else
+  # PORTME Check for PIC flags for the system compiler.
+  case "$host_os" in
+  aix3* | aix4*)
+    # All AIX code is PIC.
+    link_static_flag='-bnso -bI:/lib/syscalls.exp'
+    ;;
+
+  hpux9* | hpux10* | hpux11*)
+    # Is there a better link_static_flag that works with the bundled CC?
+    wl='-Wl,'
+    link_static_flag="${wl}-a ${wl}archive"
+    pic_flag='+Z'
+    ;;
+
+  irix5* | irix6*)
+    wl='-Wl,'
+    link_static_flag='-non_shared'
+    # PIC (with -KPIC) is the default.
+    ;;
+
+  cygwin* | mingw* | os2*)
+    # We can build DLLs from non-PIC.
+    ;;
+
+  osf3* | osf4* | osf5*)
+    # All OSF/1 code is PIC.
+    wl='-Wl,'
+    link_static_flag='-non_shared'
+    ;;
+
+  sco3.2v5*)
+    pic_flag='-Kpic'
+    link_static_flag='-dn'
+    special_shlib_compile_flags='-belf'
+    ;;
+
+  solaris*)
+    pic_flag='-KPIC'
+    link_static_flag='-Bstatic'
+    wl='-Wl,'
+    ;;
+
+  sunos4*)
+    pic_flag='-PIC'
+    link_static_flag='-Bstatic'
+    wl='-Qoption ld '
+    ;;
+
+  sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    pic_flag='-KPIC'
+    link_static_flag='-Bstatic'
+    wl='-Wl,'
+    ;;
+
+  uts4*)
+    pic_flag='-pic'
+    link_static_flag='-Bstatic'
+    ;;
+  sysv4*MP*)
+    if test -d /usr/nec ;then
+      pic_flag='-Kconform_pic'
+      link_static_flag='-Bstatic'
+    fi
+    ;;
+  *)
+    can_build_shared=no
+    ;;
+  esac
+fi
+
+if test -n "$pic_flag"; then
+  echo "$ac_t$pic_flag" 1>&6
+
+  # Check to make sure the pic_flag actually works.
+  echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6
+  $rm conftest*
+  echo "int some_variable = 0;" > conftest.c
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS $pic_flag -DPIC"
+  echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5
+  if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
+    # Append any warnings to the config.log.
+    cat conftest.err 1>&5
+    
+    case "$host_os" in
+    hpux9* | hpux10* | hpux11*)
+      # On HP-UX, both CC and GCC only warn that PIC is supported... then they
+      # create non-PIC objects.  So, if there were any warnings, we assume that
+      # PIC is not supported.
+      if test -s conftest.err; then
+	echo "$ac_t"no 1>&6
+	can_build_shared=no
+	pic_flag=
+      else
+	echo "$ac_t"yes 1>&6
+	pic_flag=" $pic_flag"
+      fi
+      ;;
+    *)
+      echo "$ac_t"yes 1>&6
+      pic_flag=" $pic_flag"
+      ;;
+    esac
+  else
+    # Append any errors to the config.log.
+    cat conftest.err 1>&5
+    can_build_shared=no
+    pic_flag=
+    echo "$ac_t"no 1>&6
+  fi
+  CFLAGS="$save_CFLAGS"
+  $rm conftest*
+else
+  echo "$ac_t"none 1>&6
+fi
+
+# Check to see if options -o and -c are simultaneously supported by compiler
+echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6
+$rm -r conftest 2>/dev/null
+mkdir conftest
+cd conftest
+$rm conftest*
+echo "int some_variable = 0;" > conftest.c
+mkdir out
+# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+# that will create temporary files in the current directory regardless of
+# the output directory.  Thus, making CWD read-only will cause this test
+# to fail, enabling locking or at least warning the user not to do parallel
+# builds.
+chmod -w .
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -o out/conftest2.o"
+echo "$progname:829: checking if $compiler supports -c -o file.o" >&5
+if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then
+
+  # The compiler can only warn and ignore the option if not recognized
+  # So say no if there are warnings
+    if test -s out/conftest.err; then
+      echo "$ac_t"no 1>&6
+      compiler_c_o=no
+    else
+      echo "$ac_t"yes 1>&6
+      compiler_c_o=yes
+    fi
+else
+  # Append any errors to the config.log.
+  cat out/conftest.err 1>&5
+  compiler_c_o=no
+  echo "$ac_t"no 1>&6
+fi
+CFLAGS="$save_CFLAGS"
+chmod u+w .
+$rm conftest* out/*
+rmdir out
+cd ..
+rmdir conftest
+$rm -r conftest 2>/dev/null
+
+if test x"$compiler_c_o" = x"yes"; then
+  # Check to see if we can write to a .lo
+  echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6
+  $rm conftest*
+  echo "int some_variable = 0;" > conftest.c
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -c -o conftest.lo"
+  echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5
+if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then
+
+    # The compiler can only warn and ignore the option if not recognized
+    # So say no if there are warnings
+      if test -s conftest.err; then
+	echo "$ac_t"no 1>&6
+	compiler_o_lo=no
+      else
+	echo "$ac_t"yes 1>&6
+	compiler_o_lo=yes
+      fi
+  else
+    # Append any errors to the config.log.
+    cat conftest.err 1>&5
+    compiler_o_lo=no
+    echo "$ac_t"no 1>&6
+  fi
+  CFLAGS="$save_CFLAGS"
+  $rm conftest*
+else
+  compiler_o_lo=no
+fi
+
+# Check to see if we can do hard links to lock some files if needed
+hard_links="nottested"
+if test "$compiler_c_o" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$ac_t$hard_links" 1>&6
+  $rm conftest*
+  if test "$hard_links" = no; then
+    echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+if test "$with_gcc" = yes; then
+  # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
+  echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6
+  $rm conftest*
+  echo "int some_variable = 0;" > conftest.c
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c"
+  echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+  if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then
+
+    # The compiler can only warn and ignore the option if not recognized
+    # So say no if there are warnings
+      if test -s conftest.err; then
+	echo "$ac_t"no 1>&6
+	compiler_rtti_exceptions=no
+      else
+	echo "$ac_t"yes 1>&6
+	compiler_rtti_exceptions=yes
+      fi
+  else
+    # Append any errors to the config.log.
+    cat conftest.err 1>&5
+    compiler_rtti_exceptions=no
+    echo "$ac_t"no 1>&6
+  fi
+  CFLAGS="$save_CFLAGS"
+  $rm conftest*
+
+  if test "$compiler_rtti_exceptions" = "yes"; then
+    no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
+  else
+    no_builtin_flag=' -fno-builtin'
+  fi
+  
+fi
+
+# Check for any special shared library compilation flags.
+if test -n "$special_shlib_compile_flags"; then
+  echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2
+  if echo "$old_CC $old_CFLAGS " | egrep -e "[ 	]$special_shlib_compile_flags[ 	]" >/dev/null; then :
+  else
+    echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2
+    can_build_shared=no
+  fi
+fi
+
+echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6
+$rm conftest*
+echo 'main(){return(0);}' > conftest.c
+save_LDFLAGS="$LDFLAGS"
+LDFLAGS="$LDFLAGS $link_static_flag"
+echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5
+if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  echo "$ac_t$link_static_flag" 1>&6
+else
+  echo "$ac_t"none 1>&6
+  link_static_flag=
+fi
+LDFLAGS="$save_LDFLAGS"
+$rm conftest*
+
+if test -z "$LN_S"; then
+  # Check to see if we can use ln -s, or we need hard links.
+  echo $ac_n "checking whether ln -s works... $ac_c" 1>&6
+  $rm conftest.dat
+  if ln -s X conftest.dat 2>/dev/null; then
+    $rm conftest.dat
+    LN_S="ln -s"
+  else
+    LN_S=ln
+  fi
+  if test "$LN_S" = "ln -s"; then
+    echo "$ac_t"yes 1>&6
+  else
+    echo "$ac_t"no 1>&6
+  fi
+fi
+
+# Make sure LD is an absolute path.
+if test -z "$LD"; then
+  ac_prog=ld
+  if test "$with_gcc" = yes; then
+    # Check if gcc -print-prog-name=ld gives a path.
+    echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6
+    echo "$progname:991: checking for ld used by GCC" >&5
+    ac_prog=`($CC -print-prog-name=ld) 2>&5`
+    case "$ac_prog" in
+    # Accept absolute paths.
+    [\\/]* | [A-Za-z]:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+    "")
+      # If it fails, then pretend we are not using GCC.
+      ac_prog=ld
+      ;;
+    *)
+      # If it is relative, then search for the first ld in PATH.
+      with_gnu_ld=unknown
+      ;;
+    esac
+  elif test "$with_gnu_ld" = yes; then
+    echo $ac_n "checking for GNU ld... $ac_c" 1>&6
+    echo "$progname:1015: checking for GNU ld" >&5
+  else
+    echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
+    echo "$progname:1018: checking for non-GNU ld" >&5
+  fi
+
+  if test -z "$LD"; then
+    IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+    for ac_dir in $PATH; do
+      test -z "$ac_dir" && ac_dir=.
+      if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+	LD="$ac_dir/$ac_prog"
+	# Check to see if the program is GNU ld.  I'd rather use --version,
+	# but apparently some GNU ld's only accept -v.
+	# Break only if it was the GNU/non-GNU ld that we prefer.
+	if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+	  test "$with_gnu_ld" != no && break
+	else
+	  test "$with_gnu_ld" != yes && break
+	fi
+      fi
+    done
+    IFS="$ac_save_ifs"
+  fi
+
+  if test -n "$LD"; then
+    echo "$ac_t$LD" 1>&6
+  else
+    echo "$ac_t"no 1>&6
+  fi
+
+  if test -z "$LD"; then
+    echo "$progname: error: no acceptable ld found in \$PATH" 1>&2
+    exit 1
+  fi
+fi
+
+# Check to see if it really is or is not GNU ld.
+echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6
+# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+  with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi
+echo "$ac_t$with_gnu_ld" 1>&6
+
+# See if the linker supports building shared libraries.
+echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
+
+allow_undefined_flag=
+no_undefined_flag=
+need_lib_prefix=unknown
+need_version=unknown
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+archive_cmds=
+archive_expsym_cmds=
+old_archive_from_new_cmds=
+export_dynamic_flag_spec=
+whole_archive_flag_spec=
+thread_safe_flag_spec=
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+hardcode_shlibpath_var=unsupported
+runpath_var=
+always_export_symbols=no
+export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
+# include_expsyms should be a list of space-separated symbols to be *always*
+# included in the symbol list
+include_expsyms=
+# exclude_expsyms can be an egrep regular expression of symbols to exclude
+# it will be wrapped by ` (' and `)$', so one must not match beginning or
+# end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+# as well as any symbol that contains `d'.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+# platforms (ab)use it in PIC code, but their linkers get confused if
+# the symbol is explicitly referenced.  Since portable code cannot
+# rely on this symbol name, it's probably fine to never include it in
+# preloaded symbol tables.
+
+case "$host_os" in
+cygwin* | mingw*)
+  # FIXME: the MSVC++ port hasn't been tested in a loooong time
+  # When not using gcc, we currently assume that we are using
+  # Microsoft Visual C++.
+  if test "$with_gcc" != yes; then
+    with_gnu_ld=no
+  fi
+  ;;
+
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+  # If archive_cmds runs LD, not CC, wlarc should be empty
+  wlarc='${wl}'
+
+  # See if GNU ld supports shared libraries.
+  case "$host_os" in
+  aix3* | aix4*)
+    # On AIX, the GNU linker is very broken
+    ld_shlibs=no
+    cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+    ;;
+
+  amigaos*)
+    archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
+    hardcode_libdir_flag_spec='-L$libdir'
+    hardcode_minus_L=yes
+
+    # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+    # that the semantics of dynamic libraries on AmigaOS, at least up
+    # to version 4, is to share data among multiple programs linked
+    # with the same dynamic library.  Since this doesn't match the
+    # behavior of shared libraries on other platforms, we can use
+    # them.
+    ld_shlibs=no
+    ;;
+
+  beos*)
+    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+      allow_undefined_flag=unsupported
+      # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+      # support --undefined.  This deserves some investigation.  FIXME
+      archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+    else
+      ld_shlibs=no
+    fi
+    ;;
+
+  cygwin* | mingw*)
+    # hardcode_libdir_flag_spec is actually meaningless, as there is
+    # no search path for DLLs.
+    hardcode_libdir_flag_spec='-L$libdir'
+    allow_undefined_flag=unsupported
+    always_export_symbols=yes
+
+    # Extract the symbol export list from an `--export-all' def file,
+    # then regenerate the def file from the symbol export list, so that
+    # the compiled dll only exports the symbol export list.
+    # Be careful not to strip the DATA tag left by newer dlltools.
+    export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
+      test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
+      $DLLTOOL --export-all --exclude-symbols DllMain at 12,_cygwin_dll_entry at 12,_cygwin_noncygwin_dll_entry at 12 --output-def $objdir/$soname-def  $objdir/$soname-ltdll.$objext $libobjs $convenience~
+      sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $objdir/$soname-def > $export_symbols'
+
+    # If DATA tags from a recent dlltool are present, honour them!
+    archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
+      _lt_hint=1;
+      cat $export_symbols | while read symbol; do
+        set dummy \$symbol;
+        case \$# in
+          2) echo "	\$2 @ \$_lt_hint ; " >> $objdir/$soname-def;;
+          *) echo "     \$2 @ \$_lt_hint \$3 ; " >> $objdir/$soname-def;;
+        esac;
+	_lt_hint=`expr 1 + \$_lt_hint`;
+      done~
+      test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
+      test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~
+      $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry at 12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
+      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain at 12,_cygwin_dll_entry at 12,_cygwin_noncygwin_dll_entry at 12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
+      $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry at 12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~
+      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain at 12,_cygwin_dll_entry at 12,_cygwin_noncygwin_dll_entry at 12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
+      $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry at 12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
+
+      old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' 
+    ;;
+
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+      archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+    else
+      archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib'
+      # can we support soname and/or expsyms with a.out? -oliva
+    fi
+    ;;
+
+  solaris* | sysv5*)
+    if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+      ld_shlibs=no
+      cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+    elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+      archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+    else
+      ld_shlibs=no
+    fi
+    ;;      
+
+  sunos4*)
+    archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts'
+    wlarc=
+    hardcode_direct=yes
+    hardcode_shlibpath_var=no
+    ;;
+
+  *)
+    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
+      archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+    else
+      ld_shlibs=no
+    fi
+    ;;
+  esac
+
+  if test "$ld_shlibs" = yes; then
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec='${wl}--export-dynamic'
+    case $host_os in
+    cygwin* | mingw*)
+      # dlltool doesn't understand --whole-archive et. al.
+      whole_archive_flag_spec=
+      ;;
+    *)
+      # ancient GNU ld didn't support --whole-archive et. al.
+      if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
+        whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+        whole_archive_flag_spec=
+      fi
+      ;;
+    esac
+  fi
+else
+  # PORTME fill in a description of your system's linker (not GNU ld)
+  case "$host_os" in
+  aix3*)
+    allow_undefined_flag=unsupported
+    always_export_symbols=yes
+    archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname'
+    # Note: this linker hardcodes the directories in LIBPATH if there
+    # are no directories specified by -L.
+    hardcode_minus_L=yes
+    if test "$with_gcc" = yes && test -z "$link_static_flag"; then
+      # Neither direct hardcoding nor static linking is supported with a
+      # broken collect2.
+      hardcode_direct=unsupported
+    fi
+    ;;
+
+  aix4*)
+    hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib'
+    hardcode_libdir_separator=':'
+    if test "$with_gcc" = yes; then
+      collect2name=`${CC} -print-prog-name=collect2`
+      if test -f "$collect2name" && \
+	 strings "$collect2name" | grep resolve_lib_name >/dev/null
+      then
+	# We have reworked collect2
+	hardcode_direct=yes
+      else
+	# We have old collect2
+	hardcode_direct=unsupported
+	# It fails to find uninstalled libraries when the uninstalled
+	# path is not listed in the libpath.  Setting hardcode_minus_L
+	# to unsupported forces relinking
+	hardcode_minus_L=yes
+	hardcode_libdir_flag_spec='-L$libdir'
+	hardcode_libdir_separator=
+      fi
+      shared_flag='-shared'
+    else
+      shared_flag='${wl}-bM:SRE'
+      hardcode_direct=yes
+    fi
+    allow_undefined_flag=' ${wl}-berok'
+    archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}'
+    archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}'
+    case "$host_os" in aix4.[01]|aix4.[01].*)
+      # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on
+      always_export_symbols=yes ;;
+    esac
+   ;;
+
+  amigaos*)
+    archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)'
+    hardcode_libdir_flag_spec='-L$libdir'
+    hardcode_minus_L=yes
+    # see comment about different semantics on the GNU ld section
+    ld_shlibs=no
+    ;;
+
+  cygwin* | mingw*)
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    # hardcode_libdir_flag_spec is actually meaningless, as there is
+    # no search path for DLLs.
+    hardcode_libdir_flag_spec=' '
+    allow_undefined_flag=unsupported
+    # Tell ltmain to make .lib files, not .a files.
+    libext=lib
+    # FIXME: Setting linknames here is a bad hack.
+    archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+    # The linker will automatically build a .lib file if we build a DLL.
+    old_archive_from_new_cmds='true'
+    # FIXME: Should let the user specify the lib program.
+    old_archive_cmds='lib /OUT:$oldlib$oldobjs'
+    fix_srcfile_path='`cygpath -w $srcfile`'
+    ;;
+
+  freebsd1*)
+    ld_shlibs=no
+    ;;
+
+  # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+  # support.  Future versions do this automatically, but an explicit c++rt0.o
+  # does not break anything, and helps significantly (at the cost of a little
+  # extra space).
+  freebsd2.2*)
+    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o'
+    hardcode_libdir_flag_spec='-R$libdir'
+    hardcode_direct=yes
+    hardcode_shlibpath_var=no
+    ;;
+
+  # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+  freebsd2*)
+    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
+    hardcode_direct=yes
+    hardcode_minus_L=yes
+    hardcode_shlibpath_var=no
+    ;;
+
+  # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+  freebsd*)
+    archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts'
+    hardcode_libdir_flag_spec='-R$libdir'
+    hardcode_direct=yes
+    hardcode_shlibpath_var=no
+    ;;
+
+  hpux9* | hpux10* | hpux11*)
+    case "$host_os" in
+    hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;;
+    *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;;
+    esac
+    hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+    hardcode_libdir_separator=:
+    hardcode_direct=yes
+    hardcode_minus_L=yes # Not in the search PATH, but as the default
+			 # location of the library.
+    export_dynamic_flag_spec='${wl}-E'
+    ;;
+
+  irix5* | irix6*)
+    if test "$with_gcc" = yes; then
+      archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+    else
+      archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+    fi
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+    hardcode_libdir_separator=:
+    ;;
+
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'  # a.out
+    else
+      archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts'      # ELF
+    fi
+    hardcode_libdir_flag_spec='${wl}-R$libdir'
+    hardcode_direct=yes
+    hardcode_shlibpath_var=no
+    ;;
+
+  openbsd*)
+    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts'
+    hardcode_libdir_flag_spec='-R$libdir'
+    hardcode_direct=yes
+    hardcode_shlibpath_var=no
+    ;;
+
+  os2*)
+    hardcode_libdir_flag_spec='-L$libdir'
+    hardcode_minus_L=yes
+    allow_undefined_flag=unsupported
+    archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def'
+    old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def'
+    ;;
+
+  osf3*)
+    if test "$with_gcc" = yes; then
+      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+    else
+      allow_undefined_flag=' -expect_unresolved \*'
+      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+    fi
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+    hardcode_libdir_separator=:
+    ;;
+
+  osf4* | osf5*)  # As osf3* with the addition of the -msym flag
+    if test "$with_gcc" = yes; then
+      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+    else
+      allow_undefined_flag=' -expect_unresolved \*'
+      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+    fi
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+    hardcode_libdir_separator=:
+    ;;
+  rhapsody*)
+    archive_cmds='$CC -bundle -undefined suppress -o $lib $libobjs $deplibs $linkopts'
+    hardcode_libdir_flags_spec='-L$libdir'
+    hardcode_direct=yes
+    hardcode_shlibpath_var=no
+    ;;
+                                       
+  sco3.2v5*)
+    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+    hardcode_shlibpath_var=no
+    runpath_var=LD_RUN_PATH
+    hardcode_runpath_var=yes
+    ;;
+
+  solaris*)
+    no_undefined_flag=' -z text'
+    # $CC -shared without GNU ld will not create a library from C++
+    # object files and a static libstdc++, better avoid it by now
+    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
+    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
+    hardcode_libdir_flag_spec='-R$libdir'
+    hardcode_shlibpath_var=no
+    case "$host_os" in
+    solaris2.[0-5] | solaris2.[0-5].*) ;;
+    *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+      whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+    esac
+    ;;
+
+  sunos4*)
+    archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts'
+    hardcode_libdir_flag_spec='-L$libdir'
+    hardcode_direct=yes
+    hardcode_minus_L=yes
+    hardcode_shlibpath_var=no
+    ;;
+
+  sysv4)
+    if test "x$host_vendor" = xsequent; then
+      # Use $CC to link under sequent, because it throws in some extra .o 
+      # files that make .init and .fini sections work.
+      archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $linkopts'
+    else
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+    fi
+    runpath_var='LD_RUN_PATH'
+    hardcode_shlibpath_var=no
+    hardcode_direct=no #Motorola manual says yes, but my tests say they lie 
+    ;;  
+
+  sysv4.3*)
+    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+    hardcode_shlibpath_var=no
+    export_dynamic_flag_spec='-Bexport'
+    ;;
+
+  sysv5*)
+    no_undefined_flag=' -z text'
+    # $CC -shared without GNU ld will not create a library from C++
+    # object files and a static libstdc++, better avoid it by now
+    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts'
+    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp'
+    hardcode_libdir_flag_spec=
+    hardcode_shlibpath_var=no
+    runpath_var='LD_RUN_PATH'
+    ;;
+
+  uts4*)
+    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+    hardcode_libdir_flag_spec='-L$libdir'
+    hardcode_shlibpath_var=no
+    ;;
+
+  dgux*)
+    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+    hardcode_libdir_flag_spec='-L$libdir'
+    hardcode_shlibpath_var=no
+    ;;
+
+  sysv4*MP*)
+    if test -d /usr/nec; then
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+      hardcode_shlibpath_var=no
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ld_shlibs=yes
+    fi
+    ;;
+
+  sysv4.2uw2*)
+    archive_cmds='$LD -G -o $lib $libobjs $deplibs $linkopts'
+    hardcode_direct=yes
+    hardcode_minus_L=no
+    hardcode_shlibpath_var=no
+    hardcode_runpath_var=yes
+    runpath_var=LD_RUN_PATH
+    ;;
+
+  unixware7*)
+    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
+    runpath_var='LD_RUN_PATH'
+    hardcode_shlibpath_var=no
+    ;;
+
+  *)
+    ld_shlibs=no
+    ;;
+  esac
+fi
+echo "$ac_t$ld_shlibs" 1>&6
+test "$ld_shlibs" = no && can_build_shared=no
+
+if test -z "$NM"; then
+  echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6
+  case "$NM" in
+  [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path.
+  *)
+    IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+    for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do
+      test -z "$ac_dir" && ac_dir=.
+      if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+	  NM="$ac_dir/nm -B"
+	  break
+	elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+	  NM="$ac_dir/nm -p"
+	  break
+	else
+	  NM=${NM="$ac_dir/nm"} # keep the first match, but
+	  continue # so that we can try to find one that supports BSD flags
+	fi
+      fi
+    done
+    IFS="$ac_save_ifs"
+    test -z "$NM" && NM=nm
+    ;;
+  esac
+  echo "$ac_t$NM" 1>&6
+fi
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
+
+# Define system-specific variables.
+case "$host_os" in
+aix*)
+  symcode='[BCDT]'
+  ;;
+cygwin* | mingw*)
+  symcode='[ABCDGISTW]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'"
+  ;;
+irix*)
+  symcode='[BCDEGRST]'
+  ;;
+solaris*)
+  symcode='[BDT]'
+  ;;
+sysv4)
+  symcode='[DFNSTU]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+  symcode='[ABCDGISTW]'
+fi
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Write the raw and C identifiers.
+  global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode\)[ 	][ 	]*\($ac_symprfx\)$sympat$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+  $rm conftest*
+  cat > conftest.c <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  echo "$progname:1653: checking if global_symbol_pipe works" >&5
+  if { (eval echo $progname:1654: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if { echo "$progname:1657: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
+
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if egrep ' nm_test_var$' "$nlist" >/dev/null; then
+	if egrep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.c
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c'
+
+	  cat <<EOF >> conftest.c
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+	  sed 's/^. \(.*\) \(.*\)$/  {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c
+	  cat <<\EOF >> conftest.c
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$objext conftstm.$objext
+	  save_LIBS="$LIBS"
+	  save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$objext"
+	  CFLAGS="$CFLAGS$no_builtin_flag"
+	  if { (eval echo $progname:1709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+	    pipe_works=yes
+	  else
+	    echo "$progname: failed program was:" >&5
+	    cat conftest.c >&5
+	  fi
+	  LIBS="$save_LIBS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&5
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&5
+      fi
+    else
+      echo "cannot run $global_symbol_pipe" >&5
+    fi
+  else
+    echo "$progname: failed program was:" >&5
+    cat conftest.c >&5
+  fi
+  $rm conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    global_symbol_pipe=
+  fi
+done
+if test "$pipe_works" = yes; then
+  echo "${ac_t}ok" 1>&6
+else
+  echo "${ac_t}failed" 1>&6
+fi
+
+if test -z "$global_symbol_pipe"; then
+  global_symbol_to_cdecl=
+fi
+
+# Check hardcoding attributes.
+echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+   test -n "$runpath_var"; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$hardcode_shlibpath_var" != no &&
+     test "$hardcode_minus_L" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action=unsupported
+fi
+echo "$ac_t$hardcode_action" 1>&6
+
+
+reload_flag=
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6
+# PORTME Some linkers may need a different reload flag.
+reload_flag='-r'
+echo "$ac_t$reload_flag" 1>&6
+test -n "$reload_flag" && reload_flag=" $reload_flag"
+
+# PORTME Fill in your ld.so characteristics
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+file_magic_cmd=
+file_magic_test_file=
+deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [regex]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given egrep regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
+case "$host_os" in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}.so$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}.so$major'
+  ;;
+
+aix4*)
+  version_type=linux
+  # AIX has no versioning support, so currently we can not hardcode correct
+  # soname into executable. Probably we can add versioning support to
+  # collect2, so additional links can be useful in future.
+  # We preserve .a as extension for shared libraries though AIX4.2
+  # and later linker supports .so
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a'
+  shlibpath_var=LIBPATH
+  deplibs_check_method=pass_all
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}.so'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  deplibs_check_method=pass_all
+  lt_cv_dlopen="load_add_on"
+  lt_cv_dlopen_libs=
+  lt_cv_dlopen_self=yes
+  ;;
+
+bsdi4*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+  soname_spec='${libname}${release}.so$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+  file_magic_cmd=/usr/bin/file
+  file_magic_test_file=/shlib/libc.so
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  export_dynamic_flag_spec=-rdynamic
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw*)
+  version_type=windows
+  need_version=no
+  need_lib_prefix=no
+  if test "$with_gcc" = yes; then
+    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a'
+  else
+    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
+  fi
+  dynamic_linker='Win32 ld.exe'
+  deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+  file_magic_cmd='${OBJDUMP} -f'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  lt_cv_dlopen="LoadLibrary"
+  lt_cv_dlopen_libs=
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+  
+freebsd*)
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case "$version_type" in
+    freebsd-elf*)
+      deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
+      file_magic_cmd=/usr/bin/file
+      file_magic_test_file=`echo /usr/lib/libc.so*`
+      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      deplibs_check_method=unknown
+      library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case "$host_os" in
+  freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
+  soname_spec='${libname}${release}.so$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  dynamic_linker="$host_os dld.sl"
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  shlibpath_var=SHLIB_PATH
+  shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+  library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
+  soname_spec='${libname}${release}.sl$major'
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  case "$host_os" in
+  hpux10.20*)
+    # TODO:  Does this work for hpux-11 too?
+    deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+    file_magic_cmd=/usr/bin/file
+    file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+irix5* | irix6*)
+  version_type=irix
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}.so.$major'
+  library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so'
+  case "$host_os" in
+  irix5*)
+    libsuff= shlibsuff=
+    # this will be overridden with pass_all, but let us keep it just in case
+    deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+    ;;
+  *)
+    case "$LD" in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  file_magic_cmd=/usr/bin/file
+  file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+  deplibs_check_method='pass_all'
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+  soname_spec='${libname}${release}.so$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  deplibs_check_method=pass_all
+
+  if test -f /lib/ld.so.1; then
+    dynamic_linker='GNU ld.so'
+  else
+    # Only the GNU ld.so supports shared libraries on MkLinux.
+    case "$host_cpu" in
+    powerpc*) dynamic_linker=no ;;
+    *) dynamic_linker='Linux ld.so' ;;
+    esac
+  fi
+  ;;
+
+netbsd*)
+  version_type=sunos
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
+    soname_spec='${libname}${release}.so$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+openbsd*)
+  version_type=sunos
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+    need_version=no
+  fi
+  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+os2*)
+  libname_spec='$name'
+  need_lib_prefix=no
+  library_names_spec='$libname.dll $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_version=no
+  soname_spec='${libname}${release}.so'
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+  shlibpath_var=LD_LIBRARY_PATH
+  # this will be overridden with pass_all, but let us keep it just in case
+  deplibs_check_method='file_magic COFF format alpha shared library'
+  file_magic_cmd=/usr/bin/file
+  file_magic_test_file=/shlib/libc.so
+  deplibs_check_method='pass_all'
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rhapsody*)
+  version_type=sunos
+  library_names_spec='${libname}.so'
+  soname_spec='${libname}.so'
+  shlibpath_var=DYLD_LIBRARY_PATH
+  deplibs_check_method=pass_all
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}.so$major'
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+  soname_spec='${libname}${release}.so$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib"
+  file_magic_cmd=/usr/bin/file
+  file_magic_test_file=/lib/libc.so
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+  soname_spec='${libname}${release}.so$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case "$host_vendor" in
+    sequent)
+      file_magic_cmd='/bin/file'
+      deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+      ;;
+    ncr)
+      deplibs_check_method='pass_all'
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+      file_magic_cmd=/usr/bin/file
+      file_magic_test_file=`echo /usr/lib/libc.so*`
+      ;;
+  esac
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+  soname_spec='${libname}${release}.so$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+  soname_spec='${libname}${release}.so$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
+    soname_spec='$libname.so.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$ac_t$dynamic_linker" 1>&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+# Report the final consequences.
+echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
+
+# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
+# configure.in, otherwise build static only libraries.
+case "$host_os" in
+cygwin* | mingw* | os2*)
+  if test x$can_build_shared = xyes; then
+    test x$enable_win32_dll = xno && can_build_shared=no
+    echo "checking if package supports dlls... $can_build_shared" 1>&6
+  fi
+;;
+esac
+
+if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then
+  case "$deplibs_check_method" in
+  "file_magic "*)
+    file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+    if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+       egrep "$file_magic_regex" > /dev/null; then
+      :
+    else
+      cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+EOF
+    fi ;;
+  esac
+fi
+
+echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4*)
+  test "$enable_shared" = yes && enable_static=no
+  ;;
+esac
+
+echo "$ac_t$enable_shared" 1>&6
+
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+
+echo "checking whether to build static libraries... $enable_static" 1>&6
+
+if test "$hardcode_action" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+echo $ac_n "checking for objdir... $ac_c" 1>&6
+rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+echo "$ac_t$objdir" 1>&6
+
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then
+  lt_cv_dlopen=no lt_cv_dlopen_libs=
+echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
+echo "$progname:2248: checking for dlopen in -ldl" >&5
+ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-ldl  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2256 "ltconfig"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen();
+
+int main() {
+dlopen()
+; return 0; }
+EOF
+if { (eval echo $progname:2269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "$progname: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dlopen""... $ac_c" 1>&6
+echo "$progname:2288: checking for dlopen" >&5
+if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2293 "ltconfig"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlopen(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+dlopen();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo $progname:2318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_dlopen=yes"
+else
+  echo "$progname: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_dlopen=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  lt_cv_dlopen="dlopen"
+else
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
+echo "$progname:2335: checking for dld_link in -ldld" >&5
+ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-ldld  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2343 "ltconfig"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link();
+
+int main() {
+dld_link()
+; return 0; }
+EOF
+if { (eval echo $progname:2356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "$progname: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+else
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for shl_load""... $ac_c" 1>&6
+echo "$progname:2375: checking for shl_load" >&5
+if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2380 "ltconfig"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shl_load(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+shl_load();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo $progname:2405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_shl_load=yes"
+else
+  echo "$progname: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_shl_load=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  lt_cv_dlopen="shl_load"
+else
+  echo "$ac_t""no" 1>&6
+echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
+echo "$progname:2423: checking for shl_load in -ldld" >&5
+ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-ldld  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2431 "ltconfig"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load();
+
+int main() {
+shl_load()
+; return 0; }
+EOF
+if { (eval echo $progname:2445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "$progname: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+fi
+
+    
+fi
+
+  
+fi
+
+
+fi
+
+fi
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  fi
+
+  case "$lt_cv_dlopen" in
+  dlopen)
+for ac_hdr in dlfcn.h; do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "$progname:2488: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2493 "ltconfig"
+#include <$ac_hdr>
+int fnord = 0;
+EOF
+ac_try="$ac_compile >/dev/null 2>conftest.out"
+{ (eval echo $progname:2498: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "$progname: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+    if test "x$ac_cv_header_dlfcn_h" = xyes; then
+      CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+    fi
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+  echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
+echo "$progname:2526: checking whether a program can dlopen itself" >&5
+if test "${lt_cv_dlopen_self+set}" = set; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+    lt_cv_dlopen_self=cross
+  else
+    cat > conftest.c <<EOF
+#line 2534 "ltconfig"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LTDL_GLOBAL	RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+#  define LTDL_GLOBAL	DL_GLOBAL
+# else
+#  define LTDL_GLOBAL	0
+# endif
+#endif
+
+/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LTDL_LAZY_OR_NOW
+# ifdef RTLD_LAZY
+#  define LTDL_LAZY_OR_NOW	RTLD_LAZY
+# else
+#  ifdef DL_LAZY
+#   define LTDL_LAZY_OR_NOW	DL_LAZY
+#  else
+#   ifdef RTLD_NOW
+#    define LTDL_LAZY_OR_NOW	RTLD_NOW
+#   else
+#    ifdef DL_NOW
+#     define LTDL_LAZY_OR_NOW	DL_NOW
+#    else
+#     define LTDL_LAZY_OR_NOW	0
+#    endif
+#   endif
+#  endif
+# endif
+#endif
+
+fnord() { int i=42;}
+main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+    if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+	       if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } 
+
+EOF
+if { (eval echo $progname:2580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+  lt_cv_dlopen_self=yes
+else
+  echo "$progname: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  lt_cv_dlopen_self=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$lt_cv_dlopen_self" 1>&6
+
+  if test "$lt_cv_dlopen_self" = yes; then
+    LDFLAGS="$LDFLAGS $link_static_flag"
+  echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
+echo "$progname:2599: checking whether a statically linked program can dlopen itself" >&5
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+    lt_cv_dlopen_self_static=cross
+  else
+    cat > conftest.c <<EOF
+#line 2607 "ltconfig"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LTDL_GLOBAL	RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+#  define LTDL_GLOBAL	DL_GLOBAL
+# else
+#  define LTDL_GLOBAL	0
+# endif
+#endif
+
+/* We may have to define LTDL_LAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LTDL_LAZY_OR_NOW
+# ifdef RTLD_LAZY
+#  define LTDL_LAZY_OR_NOW	RTLD_LAZY
+# else
+#  ifdef DL_LAZY
+#   define LTDL_LAZY_OR_NOW	DL_LAZY
+#  else
+#   ifdef RTLD_NOW
+#    define LTDL_LAZY_OR_NOW	RTLD_NOW
+#   else
+#    ifdef DL_NOW
+#     define LTDL_LAZY_OR_NOW	DL_NOW
+#    else
+#     define LTDL_LAZY_OR_NOW	0
+#    endif
+#   endif
+#  endif
+# endif
+#endif
+
+fnord() { int i=42;}
+main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
+    if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
+    if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } 
+
+EOF
+if { (eval echo $progname:2653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+  lt_cv_dlopen_self_static=yes
+else
+  echo "$progname: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  lt_cv_dlopen_self_static=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
+fi
+    ;;
+  esac
+
+  case "$lt_cv_dlopen_self" in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case "$lt_cv_dlopen_self_static" in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+# Copy echo and quote the copy, instead of the original, because it is
+# used later.
+ltecho="$echo"
+if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+   ltecho="$CONFIG_SHELL \$0 --fallback-echo"
+fi
+LTSHELL="$SHELL"
+
+LTCONFIG_VERSION="$VERSION"
+
+# Only quote variables if we're using ltmain.sh.
+case "$ltmain" in
+*.sh)
+  # Now quote all the things that may contain metacharacters.
+  for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \
+    old_LD old_LDFLAGS old_LIBS \
+    old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \
+    AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \
+    reload_flag reload_cmds wl \
+    pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+    thread_safe_flag_spec whole_archive_flag_spec libname_spec \
+    library_names_spec soname_spec \
+    RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
+    old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \
+    file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \
+    finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
+    hardcode_libdir_flag_spec hardcode_libdir_separator  \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+
+    case "$var" in
+    reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case "$ltecho" in
+  *'\$0 --fallback-echo"')
+    ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+  trap "$rm \"$ofile\"; exit 1" 1 2 15
+  echo "creating $ofile"
+  $rm "$ofile"
+  cat <<EOF > "$ofile"
+#! $SHELL
+
+# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
+#
+# Copyright (C) 1996-1999 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="sed -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+### BEGIN LIBTOOL CONFIG
+EOF
+  cfgfile="$ofile"
+  ;;
+
+*)
+  # Double-quote the variables that need it (for aesthetics).
+  for var in old_CC old_CFLAGS old_CPPFLAGS \
+    old_LD old_LDFLAGS old_LIBS \
+    old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do
+    eval "$var=\\\"\$var\\\""
+  done
+
+  # Just create a config file.
+  cfgfile="$ofile.cfg"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  echo "creating $cfgfile"
+  $rm "$cfgfile"
+  cat <<EOF > "$cfgfile"
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+EOF
+  ;;
+esac
+
+cat <<EOF >> "$cfgfile"
+# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
+# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
+# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\
+# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\
+#   $0$ltconfig_args
+#
+# Compiler and other test output produced by $progname, useful for
+# debugging $progname, is in ./config.log if it exists.
+
+# The version of $progname that generated this script.
+LTCONFIG_VERSION=$LTCONFIG_VERSION
+
+# Shell to use when invoking shell scripts.
+SHELL=$LTSHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$ltecho
+
+# The archiver.
+AR=$AR
+
+# The default C compiler.
+CC=$CC
+
+# The linker used to build libraries.
+LD=$LD
+
+# Whether we need hard or soft links.
+LN_S=$LN_S
+
+# A BSD-compatible nm program.
+NM=$NM
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$reload_flag
+reload_cmds=$reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$wl
+
+# Object file suffix (normally "o").
+objext="$objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$pic_flag
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$compiler_c_o
+
+# Can we write directly to a .lo ?
+compiler_o_lo=$compiler_o_lo
+
+# Must we lock files when doing compilation ?
+need_locks=$need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$link_static_flag
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$RANLIB
+old_archive_cmds=$old_archive_cmds
+old_postinstall_cmds=$old_postinstall_cmds
+old_postuninstall_cmds=$old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$old_archive_from_new_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$archive_cmds
+archive_expsym_cmds=$archive_expsym_cmds
+postinstall_cmds=$postinstall_cmds
+postuninstall_cmds=$postuninstall_cmds
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$global_symbol_to_cdecl
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$include_expsyms
+
+EOF
+
+case "$ltmain" in
+*.sh)
+  echo '### END LIBTOOL CONFIG' >> "$ofile"
+  echo >> "$ofile"
+  case "$host_os" in
+  aix3*)
+    cat <<\EOF >> "$ofile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # Append the ltmain.sh script.
+  sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+
+  chmod +x "$ofile"
+  ;;
+
+*)
+  # Compile the libtool program.
+  echo "FIXME: would compile $ltmain"
+  ;;
+esac
+
+test -n "$cache_file" || exit 0
+
+# AC_CACHE_SAVE
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+exit 0
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:


Property changes on: packages/libxslt/branches/upstream/1.1.16/ltconfig
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/ltmain.sh
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/ltmain.sh	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/ltmain.sh	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6863 @@
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun configure.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+basename="s,^.*/,,g"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+progname=`echo "$progpath" | $SED $basename`
+modename="$progname"
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.5.22
+TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes.
+if test -n "${ZSH_VERSION+set}" ; then
+  setopt NO_GLOB_SUBST
+fi
+
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell, and then maybe $echo will work.
+  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit $EXIT_SUCCESS
+fi
+
+default_mode=
+help="Try \`$progname --help' for more information."
+magic="%%%MAGIC variable%%%"
+mkdir="mkdir"
+mv="mv -f"
+rm="rm -f"
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  SP2NL='tr \040 \012'
+  NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  SP2NL='tr \100 \n'
+  NL2SP='tr \r\n \100\100'
+  ;;
+esac
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+# We save the old values to restore during execute mode.
+if test "${LC_ALL+set}" = set; then
+  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+  save_LANG="$LANG"; LANG=C; export LANG
+fi
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" 	$lt_nl"
+
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+  $echo "$modename: not configured to build any kind of library" 1>&2
+  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+  exit $EXIT_FAILURE
+fi
+
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+duplicate_deps=no
+preserve_args=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+    my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+    if test "$run" = ":"; then
+      # Return a directory name, but don't create it in dry-run mode
+      my_tmpdir="${my_template}-$$"
+    else
+
+      # If mktemp works, use that first and foremost
+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$my_tmpdir"; then
+	# Failing that, at least try and use $RANDOM to avoid a race
+	my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+	save_mktempdir_umask=`umask`
+	umask 0077
+	$mkdir "$my_tmpdir"
+	umask $save_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$my_tmpdir" || {
+        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
+	exit $EXIT_FAILURE
+      }
+    fi
+
+    $echo "X$my_tmpdir" | $Xsed
+}
+
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
+      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 | \
+	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $echo $win32_libid_type
+}
+
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+	case $arg in
+	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	CC_quoted="$CC_quoted $arg"
+      done
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+	    CC_quoted=
+	    for arg in $CC; do
+	    # Double-quote args containing other shell metacharacters.
+	    case $arg in
+	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	      arg="\"$arg\""
+	      ;;
+	    esac
+	    CC_quoted="$CC_quoted $arg"
+	  done
+	    case "$@ " in
+	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  $echo "$modename: unable to infer tagged configuration"
+	  $echo "$modename: specify a tag with \`--tag'" 1>&2
+	  exit $EXIT_FAILURE
+#        else
+#          $echo "$modename: using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    f_ex_an_ar_dir="$1"; shift
+    f_ex_an_ar_oldlib="$1"
+
+    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
+    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
+      exit $EXIT_FAILURE
+    fi
+}
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    my_gentop="$1"; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=""
+    my_xlib=""
+    my_xabs=""
+    my_xdir=""
+    my_status=""
+
+    $show "${rm}r $my_gentop"
+    $run ${rm}r "$my_gentop"
+    $show "$mkdir $my_gentop"
+    $run $mkdir "$my_gentop"
+    my_status=$?
+    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
+      exit $my_status
+    fi
+
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+	*) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
+      my_xdir="$my_gentop/$my_xlib"
+
+      $show "${rm}r $my_xdir"
+      $run ${rm}r "$my_xdir"
+      $show "$mkdir $my_xdir"
+      $run $mkdir "$my_xdir"
+      exit_status=$?
+      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
+	exit $exit_status
+      fi
+      case $host in
+      *-darwin*)
+	$show "Extracting $my_xabs"
+	# Do not bother doing anything if just a dry run
+	if test -z "$run"; then
+	  darwin_orig_dir=`pwd`
+	  cd $my_xdir || exit $?
+	  darwin_archive=$my_xabs
+	  darwin_curdir=`pwd`
+	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
+	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
+	  if test -n "$darwin_arches"; then 
+	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
+	    darwin_arch=
+	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
+	    for darwin_arch in  $darwin_arches ; do
+	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+	      cd "$darwin_curdir"
+	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+	    done # $darwin_arches
+      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
+	    darwin_file=
+	    darwin_files=
+	    for darwin_file in $darwin_filelist; do
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+	      lipo -create -output "$darwin_file" $darwin_files
+	    done # $darwin_filelist
+	    ${rm}r unfat-$$
+	    cd "$darwin_orig_dir"
+	  else
+	    cd "$darwin_orig_dir"
+ 	    func_extract_an_archive "$my_xdir" "$my_xabs"
+	  fi # $darwin_arches
+	fi # $run
+	;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+        ;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+    done
+    func_extract_archives_result="$my_oldobjs"
+}
+# End of Shell function definitions
+#####################################
+
+# Darwin sucks
+eval std_shrext=\"$shrext_cmds\"
+
+disable_libs=no
+
+# Parse our command line options once, thoroughly.
+while test "$#" -gt 0
+do
+  arg="$1"
+  shift
+
+  case $arg in
+  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) optarg= ;;
+  esac
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$prev"; then
+    case $prev in
+    execute_dlfiles)
+      execute_dlfiles="$execute_dlfiles $arg"
+      ;;
+    tag)
+      tagname="$arg"
+      preserve_args="${preserve_args}=$arg"
+
+      # Check whether tagname contains only valid characters
+      case $tagname in
+      *[!-_A-Za-z0-9,/]*)
+	$echo "$progname: invalid tag name: $tagname" 1>&2
+	exit $EXIT_FAILURE
+	;;
+      esac
+
+      case $tagname in
+      CC)
+	# Don't test for the "default" C tag, as we know, it's there, but
+	# not specially marked.
+	;;
+      *)
+	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
+	  taglist="$taglist $tagname"
+	  # Evaluate the configuration.
+	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
+	else
+	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
+	fi
+	;;
+      esac
+      ;;
+    *)
+      eval "$prev=\$arg"
+      ;;
+    esac
+
+    prev=
+    prevopt=
+    continue
+  fi
+
+  # Have we seen a non-optional argument yet?
+  case $arg in
+  --help)
+    show_help=yes
+    ;;
+
+  --version)
+    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+    $echo
+    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
+    $echo "This is free software; see the source for copying conditions.  There is NO"
+    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+    exit $?
+    ;;
+
+  --config)
+    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
+    done
+    exit $?
+    ;;
+
+  --debug)
+    $echo "$progname: enabling shell trace mode"
+    set -x
+    preserve_args="$preserve_args $arg"
+    ;;
+
+  --dry-run | -n)
+    run=:
+    ;;
+
+  --features)
+    $echo "host: $host"
+    if test "$build_libtool_libs" = yes; then
+      $echo "enable shared libraries"
+    else
+      $echo "disable shared libraries"
+    fi
+    if test "$build_old_libs" = yes; then
+      $echo "enable static libraries"
+    else
+      $echo "disable static libraries"
+    fi
+    exit $?
+    ;;
+
+  --finish) mode="finish" ;;
+
+  --mode) prevopt="--mode" prev=mode ;;
+  --mode=*) mode="$optarg" ;;
+
+  --preserve-dup-deps) duplicate_deps="yes" ;;
+
+  --quiet | --silent)
+    show=:
+    preserve_args="$preserve_args $arg"
+    ;;
+
+  --tag)
+    prevopt="--tag"
+    prev=tag
+    preserve_args="$preserve_args --tag"
+    ;;
+  --tag=*)
+    set tag "$optarg" ${1+"$@"}
+    shift
+    prev=tag
+    preserve_args="$preserve_args --tag"
+    ;;
+
+  -dlopen)
+    prevopt="-dlopen"
+    prev=execute_dlfiles
+    ;;
+
+  -*)
+    $echo "$modename: unrecognized option \`$arg'" 1>&2
+    $echo "$help" 1>&2
+    exit $EXIT_FAILURE
+    ;;
+
+  *)
+    nonopt="$arg"
+    break
+    ;;
+  esac
+done
+
+if test -n "$prevopt"; then
+  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+  $echo "$help" 1>&2
+  exit $EXIT_FAILURE
+fi
+
+case $disable_libs in
+no) 
+  ;;
+shared)
+  build_libtool_libs=no
+  build_old_libs=yes
+  ;;
+static)
+  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+  ;;
+esac
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+if test -z "$show_help"; then
+
+  # Infer the operation mode.
+  if test -z "$mode"; then
+    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
+    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
+    case $nonopt in
+    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+      mode=link
+      for arg
+      do
+	case $arg in
+	-c)
+	   mode=compile
+	   break
+	   ;;
+	esac
+      done
+      ;;
+    *db | *dbx | *strace | *truss)
+      mode=execute
+      ;;
+    *install*|cp|mv)
+      mode=install
+      ;;
+    *rm)
+      mode=uninstall
+      ;;
+    *)
+      # If we have no mode, but dlfiles were specified, then do execute mode.
+      test -n "$execute_dlfiles" && mode=execute
+
+      # Just use the default operation mode.
+      if test -z "$mode"; then
+	if test -n "$nonopt"; then
+	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+	else
+	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+	fi
+      fi
+      ;;
+    esac
+  fi
+
+  # Only execute mode is allowed to have -dlopen flags.
+  if test -n "$execute_dlfiles" && test "$mode" != execute; then
+    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+    $echo "$help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+
+  # Change the help message to a mode-specific one.
+  generic_help="$help"
+  help="Try \`$modename --help --mode=$mode' for more information."
+
+  # These modes are in order of execution frequency so that they run quickly.
+  case $mode in
+  # libtool compile mode
+  compile)
+    modename="$modename: compile"
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg="$arg"
+	arg_mode=normal
+	;;
+
+      target )
+	libobj="$arg"
+	arg_mode=normal
+	continue
+	;;
+
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  if test -n "$libobj" ; then
+	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  arg_mode=target
+	  continue
+	  ;;
+
+	-static | -prefer-pic | -prefer-non-pic)
+	  later="$later $arg"
+	  continue
+	  ;;
+
+	-no-suppress)
+	  suppress_opt=no
+	  continue
+	  ;;
+
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
+
+	-Wc,*)
+	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+	  lastarg=
+	  save_ifs="$IFS"; IFS=','
+ 	  for arg in $args; do
+	    IFS="$save_ifs"
+
+	    # Double-quote args containing other shell metacharacters.
+	    # Many Bourne shells cannot handle close brackets correctly
+	    # in scan sets, so we specify it separately.
+	    case $arg in
+	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	      arg="\"$arg\""
+	      ;;
+	    esac
+	    lastarg="$lastarg $arg"
+	  done
+	  IFS="$save_ifs"
+	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
+
+	  # Add the arguments to base_compile.
+	  base_compile="$base_compile $lastarg"
+	  continue
+	  ;;
+
+	* )
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg="$srcfile"
+	  srcfile="$arg"
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
+      case $lastarg in
+      # Double-quote args containing other shell metacharacters.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, and some SunOS ksh mistreat backslash-escaping
+      # in scan sets (worked around with variable expansion),
+      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
+      # at all, so we specify them separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	lastarg="\"$lastarg\""
+	;;
+      esac
+
+      base_compile="$base_compile $lastarg"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      $echo "$modename: you must specify an argument for -Xcompile"
+      exit $EXIT_FAILURE
+      ;;
+    target)
+      $echo "$modename: you must specify a target with \`-o'" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    *)
+      # Get the name of the library object.
+      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    xform='[cCFSifmso]'
+    case $libobj in
+    *.ada) xform=ada ;;
+    *.adb) xform=adb ;;
+    *.ads) xform=ads ;;
+    *.asm) xform=asm ;;
+    *.c++) xform=c++ ;;
+    *.cc) xform=cc ;;
+    *.ii) xform=ii ;;
+    *.class) xform=class ;;
+    *.cpp) xform=cpp ;;
+    *.cxx) xform=cxx ;;
+    *.f90) xform=f90 ;;
+    *.for) xform=for ;;
+    *.java) xform=java ;;
+    esac
+
+    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+    case $libobj in
+    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+    *)
+      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    esac
+
+    func_infer_tag $base_compile
+
+    for arg in $later; do
+      case $arg in
+      -static)
+	build_old_libs=yes
+	continue
+	;;
+
+      -prefer-pic)
+	pic_mode=yes
+	continue
+	;;
+
+      -prefer-non-pic)
+	pic_mode=no
+	continue
+	;;
+      esac
+    done
+
+    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
+    case $qlibobj in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	qlibobj="\"$qlibobj\"" ;;
+    esac
+    test "X$libobj" != "X$qlibobj" \
+	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
+	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
+    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$xdir" = "X$obj"; then
+      xdir=
+    else
+      xdir=$xdir/
+    fi
+    lobj=${xdir}$objdir/$objname
+
+    if test -z "$base_compile"; then
+      $echo "$modename: you must specify a compilation command" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    $run $rm $removelist
+    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+      removelist="$removelist $output_obj $lockfile"
+      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
+	$show "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+	$echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+      $echo "$srcfile" > "$lockfile"
+    fi
+
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
+    case $qsrcfile in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+      qsrcfile="\"$qsrcfile\"" ;;
+    esac
+
+    $run $rm "$libobj" "${libobj}T"
+
+    # Create a libtool object file (analogous to a ".la" file),
+    # but don't create it if we're doing a dry run.
+    test -z "$run" && cat > ${libobj}T <<EOF
+# $libobj - a libtool object file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+EOF
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test "$pic_mode" != no; then
+	command="$base_compile $qsrcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      fi
+
+      if test ! -d "${xdir}$objdir"; then
+	$show "$mkdir ${xdir}$objdir"
+	$run $mkdir ${xdir}$objdir
+	exit_status=$?
+	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
+	  exit $exit_status
+	fi
+      fi
+
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	command="$command -o $lobj"
+      fi
+
+      $run $rm "$lobj" "$output_obj"
+
+      $show "$command"
+      if $run eval "$command"; then :
+      else
+	test -n "$output_obj" && $run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	$show "$mv $output_obj $lobj"
+	if $run $mv $output_obj $lobj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
+
+      # Append the name of the PIC object to the libtool object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object='$objdir/$objname'
+
+EOF
+
+      # Allow error messages only from the first compilation.
+      if test "$suppress_opt" = yes; then
+        suppress_output=' >/dev/null 2>&1'
+      fi
+    else
+      # No PIC object so indicate it doesn't exist in the libtool
+      # object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object=none
+
+EOF
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      else
+	command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+	command="$command -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      $run $rm "$obj" "$output_obj"
+      $show "$command"
+      if $run eval "$command"; then :
+      else
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	$show "$mv $output_obj $obj"
+	if $run $mv $output_obj $obj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
+
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object='$objname'
+
+EOF
+    else
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object=none
+
+EOF
+    fi
+
+    $run $mv "${libobj}T" "${libobj}"
+
+    # Unlock the critical section if it was locked
+    if test "$need_locks" != no; then
+      $run $rm "$lockfile"
+    fi
+
+    exit $EXIT_SUCCESS
+    ;;
+
+  # libtool link mode
+  link | relink)
+    modename="$modename: link"
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args="$nonopt"
+    base_compile="$nonopt $@"
+    compile_command="$nonopt"
+    finalize_command="$nonopt"
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    notinst_path= # paths that contain not-installed libtool libraries
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+
+    func_infer_tag $base_compile
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -all-static | -static)
+	if test "X$arg" = "X-all-static"; then
+	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	else
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=built
+	fi
+	build_libtool_libs=no
+	build_old_libs=yes
+	break
+	;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      shift
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
+	;;
+      *) qarg=$arg ;;
+      esac
+      libtool_args="$libtool_args $qarg"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  compile_command="$compile_command @OUTPUT@"
+	  finalize_command="$finalize_command @OUTPUT@"
+	  ;;
+	esac
+
+	case $prev in
+	dlfiles|dlprefiles)
+	  if test "$preload" = no; then
+	    # Add the symbol object into the linking commands.
+	    compile_command="$compile_command @SYMFILE@"
+	    finalize_command="$finalize_command @SYMFILE@"
+	    preload=yes
+	  fi
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test "$dlself" = no; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test "$prev" = dlprefiles; then
+	      dlself=yes
+	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test "$prev" = dlfiles; then
+	      dlfiles="$dlfiles $arg"
+	    else
+	      dlprefiles="$dlprefiles $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols="$arg"
+	  if test ! -f "$arg"; then
+	    $echo "$modename: symbol file \`$arg' does not exist"
+	    exit $EXIT_FAILURE
+	  fi
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir="$arg"
+	  prev=
+	  continue
+	  ;;
+	precious_regex)
+	  precious_files_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release="-$arg"
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat $save_arg`
+	    do
+#	      moreargs="$moreargs $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
+
+	      # Check to see that this really is a libtool object.
+	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		pic_object=
+		non_pic_object=
+
+		# Read the .lo file
+		# If there is no directory component, then add one.
+		case $arg in
+		*/* | *\\*) . $arg ;;
+		*) . ./$arg ;;
+		esac
+
+		if test -z "$pic_object" || \
+		   test -z "$non_pic_object" ||
+		   test "$pic_object" = none && \
+		   test "$non_pic_object" = none; then
+		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+		  exit $EXIT_FAILURE
+		fi
+
+		# Extract subdirectory from the argument.
+		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		if test "X$xdir" = "X$arg"; then
+		  xdir=
+		else
+		  xdir="$xdir/"
+		fi
+
+		if test "$pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object="$xdir$pic_object"
+
+		  if test "$prev" = dlfiles; then
+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		      dlfiles="$dlfiles $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
+
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test "$prev" = dlprefiles; then
+		    # Preload the old-style object.
+		    dlprefiles="$dlprefiles $pic_object"
+		    prev=
+		  fi
+
+		  # A PIC object.
+		  libobjs="$libobjs $pic_object"
+		  arg="$pic_object"
+		fi
+
+		# Non-PIC object.
+		if test "$non_pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object="$xdir$non_pic_object"
+
+		  # A standard non-PIC object
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		  if test -z "$pic_object" || test "$pic_object" = none ; then
+		    arg="$non_pic_object"
+		  fi
+		else
+		  # If the PIC object exists, use it instead.
+		  # $xdir was prepended to $pic_object above.
+		  non_pic_object="$pic_object"
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if test -z "$run"; then
+		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+		  exit $EXIT_FAILURE
+		else
+		  # Dry-run case.
+
+		  # Extract subdirectory from the argument.
+		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		  if test "X$xdir" = "X$arg"; then
+		    xdir=
+		  else
+		    xdir="$xdir/"
+		  fi
+
+		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+		  libobjs="$libobjs $pic_object"
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		fi
+	      fi
+	    done
+	  else
+	    $echo "$modename: link input file \`$save_arg' does not exist"
+	    exit $EXIT_FAILURE
+	  fi
+	  arg=$save_arg
+	  prev=
+	  continue
+	  ;;
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    $echo "$modename: only absolute run-paths are allowed" 1>&2
+	    exit $EXIT_FAILURE
+	    ;;
+	  esac
+	  if test "$prev" = rpath; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) rpath="$rpath $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) xrpath="$xrpath $arg" ;;
+	    esac
+	  fi
+	  prev=
+	  continue
+	  ;;
+	xcompiler)
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
+	  continue
+	  ;;
+	xlinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $wl$qarg"
+	  prev=
+	  compile_command="$compile_command $wl$qarg"
+	  finalize_command="$finalize_command $wl$qarg"
+	  continue
+	  ;;
+	xcclinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
+	  continue
+	  ;;
+	shrext)
+  	  shrext_cmds="$arg"
+	  prev=
+	  continue
+	  ;;
+	darwin_framework|darwin_framework_skip)
+	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
+	  compile_command="$compile_command $arg"
+	  finalize_command="$finalize_command $arg"
+	  prev=
+	  continue
+	  ;;
+	*)
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
+	  ;;
+	esac
+      fi # test -n "$prev"
+
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  compile_command="$compile_command $link_static_flag"
+	  finalize_command="$finalize_command $link_static_flag"
+	fi
+	continue
+	;;
+
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+	continue
+	;;
+
+      -avoid-version)
+	avoid_version=yes
+	continue
+	;;
+
+      -dlopen)
+	prev=dlfiles
+	continue
+	;;
+
+      -dlpreopen)
+	prev=dlprefiles
+	continue
+	;;
+
+      -export-dynamic)
+	export_dynamic=yes
+	continue
+	;;
+
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  $echo "$modename: more than one -exported-symbols argument is not allowed"
+	  exit $EXIT_FAILURE
+	fi
+	if test "X$arg" = "X-export-symbols"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
+
+      -framework|-arch|-isysroot)
+	case " $CC " in
+	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
+		prev=darwin_framework_skip ;;
+	  *) compiler_flags="$compiler_flags $arg"
+	     prev=darwin_framework ;;
+	esac
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+	continue
+	;;
+
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  compile_command="$compile_command $arg"
+	  finalize_command="$finalize_command $arg"
+	  ;;
+	esac
+	continue
+	;;
+
+      -L*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  if test -z "$absdir"; then
+	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+	    absdir="$dir"
+	    notinst_path="$notinst_path $dir"
+	  fi
+	  dir="$absdir"
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "*) ;;
+	*)
+	  deplibs="$deplibs -L$dir"
+	  lib_search_path="$lib_search_path $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
+
+      -l*)
+	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    deplibs="$deplibs -framework System"
+	    continue
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  esac
+	elif test "X$arg" = "X-lc_r"; then
+	 case $host in
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	deplibs="$deplibs $arg"
+	continue
+	;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      -model)
+	compile_command="$compile_command $arg"
+	compiler_flags="$compiler_flags $arg"
+	finalize_command="$finalize_command $arg"
+	prev=xcompiler
+	continue
+	;;
+
+     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+	compiler_flags="$compiler_flags $arg"
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+	continue
+	;;
+
+      -module)
+	module=yes
+	continue
+	;;
+
+      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+      # -r[0-9][0-9]* specifies the processor on the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+      # +DA*, +DD* enable 64-bit mode on the HP compiler
+      # -q* pass through compiler args for the IBM compiler
+      # -m* pass through architecture-specific compiler args for GCC
+      # -m*, -t[45]*, -txscale* pass through architecture-specific
+      # compiler args for GCC
+      # -pg pass through profiling flag for GCC
+      # @file GCC response files
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
+      -t[45]*|-txscale*|@*)
+
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+        compile_command="$compile_command $arg"
+        finalize_command="$finalize_command $arg"
+        compiler_flags="$compiler_flags $arg"
+        continue
+        ;;
+
+      -shrext)
+	prev=shrext
+	continue
+	;;
+
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
+
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # in order for the loader to find any dlls it needs.
+	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
+	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
+
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
+
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+	prev=precious_regex
+	continue
+	;;
+
+      -release)
+	prev=release
+	continue
+	;;
+
+      -rpath)
+	prev=rpath
+	continue
+	;;
+
+      -R)
+	prev=xrpath
+	continue
+	;;
+
+      -R*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  $echo "$modename: only absolute run-paths are allowed" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) xrpath="$xrpath $dir" ;;
+	esac
+	continue
+	;;
+
+      -static)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
+
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
+
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
+
+      -Wc,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
+
+      -Wl,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $wl$flag"
+	  linker_flags="$linker_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
+
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
+
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
+
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
+
+      # Some other compiler flag.
+      -* | +*)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	;;
+
+      *.$objext)
+	# A standard object.
+	objs="$objs $arg"
+	;;
+
+      *.lo)
+	# A libtool-controlled object.
+
+	# Check to see that this really is a libtool object.
+	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  pic_object=
+	  non_pic_object=
+
+	  # Read the .lo file
+	  # If there is no directory component, then add one.
+	  case $arg in
+	  */* | *\\*) . $arg ;;
+	  *) . ./$arg ;;
+	  esac
+
+	  if test -z "$pic_object" || \
+	     test -z "$non_pic_object" ||
+	     test "$pic_object" = none && \
+	     test "$non_pic_object" = none; then
+	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+
+	  # Extract subdirectory from the argument.
+	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	  if test "X$xdir" = "X$arg"; then
+	    xdir=
+ 	  else
+	    xdir="$xdir/"
+	  fi
+
+	  if test "$pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    pic_object="$xdir$pic_object"
+
+	    if test "$prev" = dlfiles; then
+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		dlfiles="$dlfiles $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
+
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test "$prev" = dlprefiles; then
+	      # Preload the old-style object.
+	      dlprefiles="$dlprefiles $pic_object"
+	      prev=
+	    fi
+
+	    # A PIC object.
+	    libobjs="$libobjs $pic_object"
+	    arg="$pic_object"
+	  fi
+
+	  # Non-PIC object.
+	  if test "$non_pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object="$xdir$non_pic_object"
+
+	    # A standard non-PIC object
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	    if test -z "$pic_object" || test "$pic_object" = none ; then
+	      arg="$non_pic_object"
+	    fi
+	  else
+	    # If the PIC object exists, use it instead.
+	    # $xdir was prepended to $pic_object above.
+	    non_pic_object="$pic_object"
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if test -z "$run"; then
+	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+	    exit $EXIT_FAILURE
+	  else
+	    # Dry-run case.
+
+	    # Extract subdirectory from the argument.
+	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	    if test "X$xdir" = "X$arg"; then
+	      xdir=
+	    else
+	      xdir="$xdir/"
+	    fi
+
+	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+	    libobjs="$libobjs $pic_object"
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	  fi
+	fi
+	;;
+
+      *.$libext)
+	# An archive.
+	deplibs="$deplibs $arg"
+	old_deplibs="$old_deplibs $arg"
+	continue
+	;;
+
+      *.la)
+	# A libtool-controlled library.
+
+	if test "$prev" = dlfiles; then
+	  # This library was specified with -dlopen.
+	  dlfiles="$dlfiles $arg"
+	  prev=
+	elif test "$prev" = dlprefiles; then
+	  # The library was specified with -dlpreopen.
+	  dlprefiles="$dlprefiles $arg"
+	  prev=
+	else
+	  deplibs="$deplibs $arg"
+	fi
+	continue
+	;;
+
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+      fi
+    done # argument parsing loop
+
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      compile_command="$compile_command $arg"
+      finalize_command="$finalize_command $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+    libobjs_save="$libobjs"
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$output_objdir" = "X$output"; then
+      output_objdir="$objdir"
+    else
+      output_objdir="$output_objdir/$objdir"
+    fi
+    # Create the object directory.
+    if test ! -d "$output_objdir"; then
+      $show "$mkdir $output_objdir"
+      $run $mkdir $output_objdir
+      exit_status=$?
+      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
+	exit $exit_status
+      fi
+    fi
+
+    # Determine the type of output
+    case $output in
+    "")
+      $echo "$modename: you must specify an output file" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    case $host in
+    *cygwin* | *mingw* | *pw32*)
+      # don't eliminate duplications in $postdeps and $predeps
+      duplicate_compiler_generated_deps=yes
+      ;;
+    *)
+      duplicate_compiler_generated_deps=$duplicate_deps
+      ;;
+    esac
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if test "X$duplicate_deps" = "Xyes" ; then
+	case "$libs " in
+	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	esac
+      fi
+      libs="$libs $deplib"
+    done
+
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  esac
+	  pre_post_deps="$pre_post_deps $pre_post_dep"
+	done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    case $linkmode in
+    lib)
+	passes="conv link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+	    exit $EXIT_FAILURE
+	    ;;
+	  esac
+	done
+	;;
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=no
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
+	;;
+    *)  passes="conv"
+	;;
+    esac
+    for pass in $passes; do
+      if test "$linkmode,$pass" = "lib,link" ||
+	 test "$linkmode,$pass" = "prog,scan"; then
+	libs="$deplibs"
+	deplibs=
+      fi
+      if test "$linkmode" = prog; then
+	case $pass in
+	dlopen) libs="$dlfiles" ;;
+	dlpreopen) libs="$dlprefiles" ;;
+	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	esac
+      fi
+      if test "$pass" = dlopen; then
+	# Collect dlpreopened libraries
+	save_deplibs="$deplibs"
+	deplibs=
+      fi
+      for deplib in $libs; do
+	lib=
+	found=no
+	case $deplib in
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    compiler_flags="$compiler_flags $deplib"
+	  fi
+	  continue
+	  ;;
+	-l*)
+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
+	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
+	    continue
+	  fi
+	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
+	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+	    for search_ext in .la $std_shrext .so .a; do
+	      # Search the libtool library
+	      lib="$searchdir/lib${name}${search_ext}"
+	      if test -f "$lib"; then
+		if test "$search_ext" = ".la"; then
+		  found=yes
+		else
+		  found=no
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if test "$found" != yes; then
+	    # deplib doesn't seem to be a libtool library
+	    if test "$linkmode,$pass" = "prog,link"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  else # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if (${SED} -e '2q' $lib |
+                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		  library_names=
+		  old_library=
+		  case $lib in
+		  */* | *\\*) . $lib ;;
+		  *) . ./$lib ;;
+		  esac
+		  for l in $old_library $library_names; do
+		    ll="$l"
+		  done
+		  if test "X$ll" = "X$old_library" ; then # only static version available
+		    found=no
+		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+		    test "X$ladir" = "X$lib" && ladir="."
+		    lib=$ladir/$old_library
+		    if test "$linkmode,$pass" = "prog,link"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+	        ;;
+	      *) ;;
+	      esac
+	    fi
+	  fi
+	  ;; # -l
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test "$pass" = conv && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+	    ;;
+	  prog)
+	    if test "$pass" = conv; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test "$pass" = scan; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+	    ;;
+	  *)
+	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
+	    ;;
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test "$pass" = link; then
+	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) xrpath="$xrpath $dir" ;;
+	    esac
+	  fi
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la) lib="$deplib" ;;
+	*.$libext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    valid_a_lib=no
+	    case $deplibs_check_method in
+	      match_pattern*)
+		set dummy $deplibs_check_method
+	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+		if eval $echo \"$deplib\" 2>/dev/null \
+		    | $SED 10q \
+		    | $EGREP "$match_pattern_regex" > /dev/null; then
+		  valid_a_lib=yes
+		fi
+		;;
+	      pass_all)
+		valid_a_lib=yes
+		;;
+            esac
+	    if test "$valid_a_lib" != yes; then
+	      $echo
+	      $echo "*** Warning: Trying to link with static lib archive $deplib."
+	      $echo "*** I have the capability to make that library automatically link in when"
+	      $echo "*** you link to this library.  But I can only do this if you have a"
+	      $echo "*** shared version of the library, which you do not appear to have"
+	      $echo "*** because the file extensions .$libext of this argument makes me believe"
+	      $echo "*** that it is just a static archive that I should not used here."
+	    else
+	      $echo
+	      $echo "*** Warning: Linking the shared library $output against the"
+	      $echo "*** static library $deplib is not portable!"
+	      deplibs="$deplib $deplibs"
+	    fi
+	    continue
+	    ;;
+	  prog)
+	    if test "$pass" != link; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
+	    ;;
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	  elif test "$linkmode" = prog; then
+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      newdlprefiles="$newdlprefiles $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      newdlfiles="$newdlfiles $deplib"
+	    fi
+	  fi
+	  continue
+	  ;;
+	%DEPLIBS%)
+	  alldeplibs=yes
+	  continue
+	  ;;
+	esac # case $deplib
+	if test "$found" = yes || test -f "$lib"; then :
+	else
+	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$ladir" = "X$lib" && ladir="."
+
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+	avoidtemprpath=
+
+
+	# Read the .la file
+	case $lib in
+	*/* | *\\*) . $lib ;;
+	*) . ./$lib ;;
+	esac
+
+	if test "$linkmode,$pass" = "lib,link" ||
+	   test "$linkmode,$pass" = "prog,scan" ||
+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	fi
+
+	if test "$pass" = conv; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	      exit $EXIT_FAILURE
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    convenience="$convenience $ladir/$objdir/$old_library"
+	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	    tmp_libs=
+	    for deplib in $dependency_libs; do
+	      deplibs="$deplib $deplibs"
+              if test "X$duplicate_deps" = "Xyes" ; then
+	        case "$tmp_libs " in
+	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	        esac
+              fi
+	      tmp_libs="$tmp_libs $deplib"
+	    done
+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
+	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  continue
+	fi # $pass = conv
+
+
+	# Get the name of the library we link against.
+	linklib=
+	for l in $old_library $library_names; do
+	  linklib="$l"
+	done
+	if test -z "$linklib"; then
+	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# This library was specified with -dlopen.
+	if test "$pass" = dlopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  if test -z "$dlname" ||
+	     test "$dlopen_support" != yes ||
+	     test "$build_libtool_libs" = no; then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	  else
+	    newdlfiles="$newdlfiles $lib"
+	  fi
+	  continue
+	fi # $pass = dlopen
+
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
+	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+	    abs_ladir="$ladir"
+	  fi
+	  ;;
+	esac
+	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+
+	# Find the relevant object directory and library name.
+	if test "X$installed" = Xyes; then
+	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    libdir="$abs_ladir"
+	  else
+	    dir="$libdir"
+	    absdir="$libdir"
+	  fi
+	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+	else
+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  else
+	    dir="$ladir/$objdir"
+	    absdir="$abs_ladir/$objdir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  fi
+	fi # $installed = yes
+	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+
+	# This library was specified with -dlpreopen.
+	if test "$pass" = dlpreopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  # Prefer using a static library (so that no silly _DYNAMIC symbols
+	  # are required to link).
+	  if test -n "$old_library"; then
+	    newdlprefiles="$newdlprefiles $dir/$old_library"
+	  # Otherwise, use the dlname, so that lt_dlopen finds it.
+	  elif test -n "$dlname"; then
+	    newdlprefiles="$newdlprefiles $dir/$dlname"
+	  else
+	    newdlprefiles="$newdlprefiles $dir/$linklib"
+	  fi
+	fi # $pass = dlpreopen
+
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test "$linkmode" = lib; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
+	  else
+	    deplibs="$lib $deplibs" # used for prog,scan pass
+	  fi
+	  continue
+	fi
+
+
+	if test "$linkmode" = prog && test "$pass" != link; then
+	  newlib_search_path="$newlib_search_path $ladir"
+	  deplibs="$lib $deplibs"
+
+	  linkalldeplibs=no
+	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
+	     test "$build_libtool_libs" = no; then
+	    linkalldeplibs=yes
+	  fi
+
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+	    esac
+	    # Need to link against all dependency_libs?
+	    if test "$linkalldeplibs" = yes; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
+
+	if test "$linkmode,$pass" = "prog,link"; then
+	  if test -n "$library_names" &&
+	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+	      # Make sure the rpath contains only unique directories.
+	      case "$temp_rpath " in
+	      *" $dir "*) ;;
+	      *" $absdir "*) ;;
+	      *) temp_rpath="$temp_rpath $absdir" ;;
+	      esac
+	    fi
+
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
+
+	  if test "$alldeplibs" = yes &&
+	     { test "$deplibs_check_method" = pass_all ||
+	       { test "$build_libtool_libs" = yes &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
+
+	link_static=no # Whether the deplib will be linked statically
+	use_static_libs=$prefer_static_libs
+	if test "$use_static_libs" = built && test "$installed" = yes ; then
+	  use_static_libs=no
+	fi
+	if test -n "$library_names" &&
+	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
+	  if test "$installed" = no; then
+	    notinst_deplibs="$notinst_deplibs $lib"
+	    need_relink=yes
+	  fi
+	  # This is a shared library
+
+	  # Warn about portability, can't link against -module's on
+	  # some systems (darwin)
+	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
+	    $echo
+	    if test "$linkmode" = prog; then
+	      $echo "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $echo "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $echo "*** $linklib is not portable!"
+	  fi
+	  if test "$linkmode" = lib &&
+	     test "$hardcode_into_libs" = yes; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi
+
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    realname="$2"
+	    shift; shift
+	    libname=`eval \\$echo \"$libname_spec\"`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname="$dlname"
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw*)
+		major=`expr $current - $age`
+		versuffix="-$major"
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname="$realname"
+	    fi
+
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot="$soname"
+	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
+	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
+
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      $show "extracting exported symbol list from \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      cmds=$extract_expsyms_cmds
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
+
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      $show "generating import library for \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      cmds=$old_archive_from_expsyms_cmds
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
+
+	  if test "$linkmode" = prog || test "$mode" != relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test "$hardcode_direct" = no; then
+		add="$dir/$linklib"
+		case $host in
+		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+		    *-*-unixware7*) add_dir="-L$dir" ;;
+		  *-*-darwin* )
+		    # if the lib is a module then we can not link against
+		    # it, someone is ignoring the new warnings I added
+		    if /usr/bin/file -L $add 2> /dev/null |
+                      $EGREP ": [^:]* bundle" >/dev/null ; then
+		      $echo "** Warning, lib $linklib is a module, not a shared library"
+		      if test -z "$old_library" ; then
+		        $echo
+		        $echo "** And there doesn't seem to be a static archive available"
+		        $echo "** The link will probably fail, sorry"
+		      else
+		        add="$dir/$old_library"
+		      fi
+		    fi
+		esac
+	      elif test "$hardcode_minus_L" = no; then
+		case $host in
+		*-*-sunos*) add_shlibpath="$dir" ;;
+		esac
+		add_dir="-L$dir"
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = no; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test "$hardcode_direct" = yes; then
+		add="$dir/$linklib"
+	      elif test "$hardcode_minus_L" = yes; then
+		add_dir="-L$dir"
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case $libdir in
+		    [\\/]*)
+		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		      ;;
+		  esac
+		fi
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = yes; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
+
+	    if test "$lib_linked" != yes; then
+	      $echo "$modename: configuration error: unsupported hardcode properties"
+	      exit $EXIT_FAILURE
+	    fi
+
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test "$hardcode_direct" != yes && \
+		 test "$hardcode_minus_L" != yes && \
+		 test "$hardcode_shlibpath_var" = yes; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
+
+	  if test "$linkmode" = prog || test "$mode" = relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test "$hardcode_direct" = yes; then
+	      add="$libdir/$linklib"
+	    elif test "$hardcode_minus_L" = yes; then
+	      add_dir="-L$libdir"
+	      add="-l$name"
+	    elif test "$hardcode_shlibpath_var" = yes; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      esac
+	      add="-l$name"
+	    elif test "$hardcode_automatic" = yes; then
+	      if test -n "$inst_prefix_dir" &&
+		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
+	        add="$inst_prefix_dir$libdir/$linklib"
+	      else
+	        add="$libdir/$linklib"
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir="-L$libdir"
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case $libdir in
+		  [\\/]*)
+		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		    ;;
+		esac
+	      fi
+	      add="-l$name"
+	    fi
+
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test "$linkmode" = prog; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test "$hardcode_direct" != unsupported; then
+	    test -n "$old_library" && linklib="$old_library"
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test "$build_libtool_libs" = yes; then
+	  # Not a shared library
+	  if test "$deplibs_check_method" != pass_all; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
+
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    $echo
+	    $echo "*** Warning: This system can not link to static lib archive $lib."
+	    $echo "*** I have the capability to make that library automatically link in when"
+	    $echo "*** you link to this library.  But I can only do this if you have a"
+	    $echo "*** shared version of the library, which you do not appear to have."
+	    if test "$module" = yes; then
+	      $echo "*** But as you try to build a module library, libtool will still create "
+	      $echo "*** a static module, that should work as long as the dlopening application"
+	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		$echo
+		$echo "*** However, this would only work if libtool was able to extract symbol"
+		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		$echo "*** not find such a program.  So, this module is probably useless."
+		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test "$build_old_libs" = no; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
+
+	if test "$linkmode" = lib; then
+	  if test -n "$dependency_libs" &&
+	     { test "$hardcode_into_libs" != yes ||
+	       test "$build_old_libs" = yes ||
+	       test "$link_static" = yes; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) xrpath="$xrpath $temp_xrpath";;
+		   esac;;
+	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      esac
+	    done
+	    dependency_libs="$temp_deplibs"
+	  fi
+
+	  newlib_search_path="$newlib_search_path $absdir"
+	  # Link against this library
+	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+
+	  if test "$link_all_deplibs" != no; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      -L*) path="$deplib" ;;
+	      *.la)
+		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
+		test "X$dir" = "X$deplib" && dir="."
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+		    absdir="$dir"
+		  fi
+		  ;;
+		esac
+		if grep "^installed=no" $deplib > /dev/null; then
+		  path="$absdir/$objdir"
+		else
+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  if test -z "$libdir"; then
+		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		    exit $EXIT_FAILURE
+		  fi
+		  if test "$absdir" != "$libdir"; then
+		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+		  fi
+		  path="$absdir"
+		fi
+		depdepl=
+		case $host in
+		*-*-darwin*)
+		  # we do not want to link against static libs,
+		  # but need to link against shared
+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names" ; then
+		    for tmp in $deplibrary_names ; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$path/$depdepl" ; then
+		      depdepl="$path/$depdepl"
+		    fi
+		    # do not add paths which are already there
+		    case " $newlib_search_path " in
+		    *" $path "*) ;;
+		    *) newlib_search_path="$newlib_search_path $path";;
+		    esac
+		  fi
+		  path=""
+		  ;;
+		*)
+		  path="-L$path"
+		  ;;
+		esac
+		;;
+	      -l*)
+		case $host in
+		*-*-darwin*)
+		  # Again, we only want to link against shared libraries
+		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
+		  for tmp in $newlib_search_path ; do
+		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
+		      eval depdepl="$tmp/lib$tmp_libs.dylib"
+		      break
+		    fi
+		  done
+		  path=""
+		  ;;
+		*) continue ;;
+		esac
+		;;
+	      *) continue ;;
+	      esac
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$path $deplibs" ;;
+	      esac
+	      case " $deplibs " in
+	      *" $depdepl "*) ;;
+	      *) deplibs="$depdepl $deplibs" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test "$pass" != dlopen; then
+	if test "$pass" != conv; then
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) lib_search_path="$lib_search_path $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	fi
+
+	if test "$linkmode,$pass" != "prog,link"; then
+	  vars="deplibs"
+	else
+	  vars="compile_deplibs finalize_deplibs"
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      esac
+	      ;;
+	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=""
+	  ;;
+	esac
+	if test -n "$i" ; then
+	  tmp_libs="$tmp_libs $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+      dlprefiles="$newdlprefiles"
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$deplibs"; then
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+      fi
+
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+      fi
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+	eval shared_ext=\"$shrext_cmds\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	if test "$module" = no; then
+	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+	if test "$need_lib_prefix" != no; then
+	  # Add the "lib" prefix for modules if required
+	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	  eval shared_ext=\"$shrext_cmds\"
+	  eval libname=\"$libname_spec\"
+	else
+	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	fi
+	;;
+      esac
+
+      if test -n "$objs"; then
+	if test "$deplibs_check_method" != pass_all; then
+	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
+	  exit $EXIT_FAILURE
+	else
+	  $echo
+	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
+	  $echo "*** objects $objs is not portable!"
+	  libobjs="$libobjs $objs"
+	fi
+      fi
+
+      if test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+      fi
+
+      set dummy $rpath
+      if test "$#" -gt 2; then
+	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+      fi
+      install_libdir="$2"
+
+      oldlibs=
+      if test -z "$rpath"; then
+	if test "$build_libtool_libs" = yes; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a `.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
+
+	if test -n "$vinfo"; then
+	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
+	fi
+
+	if test -n "$release"; then
+	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+	fi
+      else
+
+	# Parse the version information argument.
+	save_ifs="$IFS"; IFS=':'
+	set dummy $vinfo 0 0 0
+	IFS="$save_ifs"
+
+	if test -n "$8"; then
+	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
+
+	case $vinfo_number in
+	yes)
+	  number_major="$2"
+	  number_minor="$3"
+	  number_revision="$4"
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # which has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  darwin|linux|osf|windows)
+	    current=`expr $number_major + $number_minor`
+	    age="$number_minor"
+	    revision="$number_revision"
+	    ;;
+	  freebsd-aout|freebsd-elf|sunos)
+	    current="$number_major"
+	    revision="$number_minor"
+	    age="0"
+	    ;;
+	  irix|nonstopux)
+	    current=`expr $number_major + $number_minor - 1`
+	    age="$number_minor"
+	    revision="$number_minor"
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current="$2"
+	  revision="$3"
+	  age="$4"
+	  ;;
+	esac
+
+	# Check that each of the things are valid numbers.
+	case $current in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	case $revision in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	case $age in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	if test "$age" -gt "$current"; then
+	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
+
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  # Darwin ld doesn't like 0 for these options...
+	  minor_current=`expr $current + 1`
+	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+	  ;;
+
+	freebsd-aout)
+	  major=".$current"
+	  versuffix=".$current.$revision";
+	  ;;
+
+	freebsd-elf)
+	  major=".$current"
+	  versuffix=".$current";
+	  ;;
+
+	irix | nonstopux)
+	  major=`expr $current - $age + 1`
+
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring="$verstring_prefix$major.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test "$loop" -ne 0; do
+	    iface=`expr $revision - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring_prefix$major.$iface:$verstring"
+	  done
+
+	  # Before this point, $major must not contain `.'.
+	  major=.$major
+	  versuffix="$major.$revision"
+	  ;;
+
+	linux)
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  ;;
+
+	osf)
+	  major=.`expr $current - $age`
+	  versuffix=".$current.$age.$revision"
+	  verstring="$current.$age.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test "$loop" -ne 0; do
+	    iface=`expr $current - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring:${iface}.0"
+	  done
+
+	  # Make executables depend on our current version.
+	  verstring="$verstring:${current}.0"
+	  ;;
+
+	sunos)
+	  major=".$current"
+	  versuffix=".$current.$revision"
+	  ;;
+
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 filesystems.
+	  major=`expr $current - $age`
+	  versuffix="-$major"
+	  ;;
+
+	*)
+	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
+	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring="0.0"
+	    ;;
+	  esac
+	  if test "$need_version" = no; then
+	    versuffix=
+	  else
+	    versuffix=".0.0"
+	  fi
+	fi
+
+	# Remove version info from name if versioning should be avoided
+	if test "$avoid_version" = yes && test "$need_version" = no; then
+	  major=
+	  versuffix=
+	  verstring=""
+	fi
+
+	# Check to see if the archive will have undefined symbols.
+	if test "$allow_undefined" = yes; then
+	  if test "$allow_undefined_flag" = unsupported; then
+	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+	    build_libtool_libs=no
+	    build_old_libs=yes
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag="$no_undefined_flag"
+	fi
+      fi
+
+      if test "$mode" != relink; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$echo "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+	       if test "X$precious_files_regex" != "X"; then
+	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+	         then
+		   continue
+		 fi
+	       fi
+	       removelist="$removelist $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	if test -n "$removelist"; then
+	  $show "${rm}r $removelist"
+	  $run ${rm}r $removelist
+	fi
+      fi
+
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+	oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+      for path in $notinst_path; do
+	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
+	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
+	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
+      done
+
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  temp_xrpath="$temp_xrpath -R$libdir"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) dlfiles="$dlfiles $lib" ;;
+	esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) dlprefiles="$dlprefiles $lib" ;;
+	esac
+      done
+
+      if test "$build_libtool_libs" = yes; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    deplibs="$deplibs -framework System"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    ;;
+ 	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test "$build_libtool_need_lc" = "yes"; then
+	      deplibs="$deplibs -lc"
+	    fi
+	    ;;
+	  esac
+	fi
+
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=""
+	versuffix=""
+	major=""
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $rm conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $rm conftest
+	  $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
+	  if test "$?" -eq 0 ; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      name=`expr $i : '-l\(.*\)'`
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" -ne "0"; then
+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    newdeplibs="$newdeplibs $i"
+		    i=""
+		    ;;
+		  esac
+	        fi
+		if test -n "$i" ; then
+		  libname=`eval \\$echo \"$libname_spec\"`
+		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		  set dummy $deplib_matches
+		  deplib_match=$2
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		    newdeplibs="$newdeplibs $i"
+		  else
+		    droppeddeps=yes
+		    $echo
+		    $echo "*** Warning: dynamic linker does not accept needed library $i."
+		    $echo "*** I have the capability to make that library automatically link in when"
+		    $echo "*** you link to this library.  But I can only do this if you have a"
+		    $echo "*** shared version of the library, which I believe you do not have"
+		    $echo "*** because a test_compile did reveal that the linker did not use it for"
+		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      name=`expr $i : '-l\(.*\)'`
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" != "0"; then
+		$rm conftest
+		$LTCC $LTCFLAGS -o conftest conftest.c $i
+		# Did it work?
+		if test "$?" -eq 0 ; then
+		  ldd_output=`ldd conftest`
+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      newdeplibs="$newdeplibs $i"
+		      i=""
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i" ; then
+		    libname=`eval \\$echo \"$libname_spec\"`
+		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		    set dummy $deplib_matches
+		    deplib_match=$2
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		      newdeplibs="$newdeplibs $i"
+		    else
+		      droppeddeps=yes
+		      $echo
+		      $echo "*** Warning: dynamic linker does not accept needed library $i."
+		      $echo "*** I have the capability to make that library automatically link in when"
+		      $echo "*** you link to this library.  But I can only do this if you have a"
+		      $echo "*** shared version of the library, which you do not appear to have"
+		      $echo "*** because a test_compile did reveal that the linker did not use this one"
+		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  $echo
+		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
+		  $echo "***  make it link in!  You will probably need to install it or some"
+		  $echo "*** library that it depends on before this library will be fully"
+		  $echo "*** functional.  Installing it before continuing would be even better."
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method
+	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name=`expr $a_deplib : '-l\(.*\)'`
+	    # If $name is empty we are operating on a -L argument.
+            if test "$name" != "" && test  "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null \
+			 | grep " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib="$potent_lib"
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+			 | ${SED} 10q \
+			 | $EGREP "$file_magic_regex" > /dev/null; then
+			newdeplibs="$newdeplibs $a_deplib"
+			a_deplib=""
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name=`expr $a_deplib : '-l\(.*\)'`
+	    # If $name is empty we are operating on a -L argument.
+	    if test -n "$name" && test "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib="$potent_lib" # see symlink-check above in file_magic test
+		    if eval $echo \"$potent_lib\" 2>/dev/null \
+		        | ${SED} 10q \
+		        | $EGREP "$match_pattern_regex" > /dev/null; then
+		      newdeplibs="$newdeplibs $a_deplib"
+		      a_deplib=""
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=""
+	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+	    -e 's/ -[LR][^ ]*//g'`
+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	    for i in $predeps $postdeps ; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
+	    done
+	  fi
+	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
+	    | grep . >/dev/null; then
+	    $echo
+	    if test "X$deplibs_check_method" = "Xnone"; then
+	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      $echo "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    $echo "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	  fi
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
+
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library is the System framework
+	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	  ;;
+	esac
+
+	if test "$droppeddeps" = yes; then
+	  if test "$module" = yes; then
+	    $echo
+	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
+	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
+	    $echo "*** a static module, that should work as long as the dlopening"
+	    $echo "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      $echo
+	      $echo "*** However, this would only work if libtool was able to extract symbol"
+	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      $echo "*** not find such a program.  So, this module is probably useless."
+	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test "$build_old_libs" = no; then
+	      oldlibs="$output_objdir/$libname.$libext"
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    $echo "*** The inter-library dependencies that have been dropped here will be"
+	    $echo "*** automatically added whenever a program is linked with this library"
+	    $echo "*** or is declared to -dlopen it."
+
+	    if test "$allow_undefined" = no; then
+	      $echo
+	      $echo "*** Since this library must not contain undefined symbols,"
+	      $echo "*** because either the platform does not support them or"
+	      $echo "*** it was explicitly requested with -no-undefined,"
+	      $echo "*** libtool will only create a static version of it."
+	      if test "$build_old_libs" = no; then
+		oldlibs="$output_objdir/$libname.$libext"
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
+
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      deplibs="$new_libs"
+
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+	if test "$hardcode_into_libs" = yes; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath="$finalize_rpath"
+	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs="$libdir"
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		dep_rpath="$dep_rpath $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir="$hardcode_libdirs"
+	    if test -n "$hardcode_libdir_flag_spec_ld"; then
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+	    else
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+	    fi
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      rpath="$rpath$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
+
+	shlibpath="$finalize_shlibpath"
+	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
+
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext_cmds\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	realname="$2"
+	shift; shift
+
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname="$realname"
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
+
+	lib="$output_objdir/$realname"
+	linknames=
+	for link
+	do
+	  linknames="$linknames $link"
+	done
+
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    cmds=$export_symbols_cmds
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $cmds; do
+	      IFS="$save_ifs"
+	      eval cmd=\"$cmd\"
+	      if len=`expr "X$cmd" : ".*"` &&
+	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	        $show "$cmd"
+	        $run eval "$cmd" || exit $?
+	        skipped_export=false
+	      else
+	        # The command line is too long to execute in one step.
+	        $show "using reloadable object file for export list..."
+	        skipped_export=:
+		# Break out early, otherwise skipped_export may be
+		# set to false by a later but shorter cmd.
+		break
+	      fi
+	    done
+	    IFS="$save_ifs"
+	    if test -n "$export_symbols_regex"; then
+	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
+
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+	fi
+
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+		case " $convenience " in
+		*" $test_deplib "*) ;;
+		*)
+			tmp_deplibs="$tmp_deplibs $test_deplib"
+			;;
+		esac
+	done
+	deplibs="$tmp_deplibs"
+
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  else
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
+
+	    func_extract_archives $gentop $convenience
+	    libobjs="$libobjs $func_extract_archives_result"
+	  fi
+	fi
+	
+	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  linker_flags="$linker_flags $flag"
+	fi
+
+	# Make a backup of the uninstalled library when relinking
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+	fi
+
+	# Do each of the archive commands.
+	if test "$module" = yes && test -n "$module_cmds" ; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval test_cmds=\"$module_expsym_cmds\"
+	    cmds=$module_expsym_cmds
+	  else
+	    eval test_cmds=\"$module_cmds\"
+	    cmds=$module_cmds
+	  fi
+	else
+	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	  eval test_cmds=\"$archive_expsym_cmds\"
+	  cmds=$archive_expsym_cmds
+	else
+	  eval test_cmds=\"$archive_cmds\"
+	  cmds=$archive_cmds
+	  fi
+	fi
+
+	if test "X$skipped_export" != "X:" &&
+	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise.
+	  $echo "creating reloadable object files..."
+
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
+
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  delfiles=
+	  last_robj=
+	  k=1
+	  output=$output_objdir/$output_la-${k}.$objext
+	  # Loop over the list of objects to be linked.
+	  for obj in $save_libobjs
+	  do
+	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+	    if test "X$objlist" = X ||
+	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+		 test "$len" -le "$max_cmd_len"; }; then
+	      objlist="$objlist $obj"
+	    else
+	      # The command $test_cmds is almost too long, add a
+	      # command to the queue.
+	      if test "$k" -eq 1 ; then
+		# The first file doesn't have a previous command to add.
+		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+	      else
+		# All subsequent reloadable object files will link in
+		# the last one created.
+		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+	      fi
+	      last_robj=$output_objdir/$output_la-${k}.$objext
+	      k=`expr $k + 1`
+	      output=$output_objdir/$output_la-${k}.$objext
+	      objlist=$obj
+	      len=1
+	    fi
+	  done
+	  # Handle the remaining objects by creating one last
+	  # reloadable object file.  All subsequent reloadable object
+	  # files will link in the last one created.
+	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+
+	  if ${skipped_export-false}; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    libobjs=$output
+	    # Append the command to create the export file.
+	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
+          fi
+
+	  # Set up a command to remove the reloadable object files
+	  # after they are used.
+	  i=0
+	  while test "$i" -lt "$k"
+	  do
+	    i=`expr $i + 1`
+	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
+	  done
+
+	  $echo "creating a temporary reloadable object file: $output"
+
+	  # Loop through the commands generated above and execute them.
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $concat_cmds; do
+	    IFS="$save_ifs"
+	    $show "$cmd"
+	    $run eval "$cmd" || exit $?
+	  done
+	  IFS="$save_ifs"
+
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
+
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
+
+	  # Do each of the archive commands.
+	  if test "$module" = yes && test -n "$module_cmds" ; then
+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	      cmds=$module_expsym_cmds
+	    else
+	      cmds=$module_cmds
+	    fi
+	  else
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    cmds=$archive_expsym_cmds
+	  else
+	    cmds=$archive_cmds
+	    fi
+	  fi
+
+	  # Append the command to remove the reloadable object files
+	  # to the just-reset $cmds.
+	  eval cmds=\"\$cmds~\$rm $delfiles\"
+	fi
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $show "$cmd"
+	  $run eval "$cmd" || {
+	    lt_exit=$?
+
+	    # Restore the uninstalled library and exit
+	    if test "$mode" = relink; then
+	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
+	    fi
+
+	    exit $lt_exit
+	  }
+	done
+	IFS="$save_ifs"
+
+	# Restore the uninstalled library and exit
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
+
+	  if test -n "$convenience"; then
+	    if test -z "$whole_archive_flag_spec"; then
+	      $show "${rm}r $gentop"
+	      $run ${rm}r "$gentop"
+	    fi
+	  fi
+
+	  exit $EXIT_SUCCESS
+	fi
+
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+	  fi
+	done
+
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test "$module" = yes || test "$export_dynamic" = yes; then
+	  # On all known operating systems, these are identical.
+	  dlname="$soname"
+	fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$deplibs"; then
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+      fi
+
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+      fi
+
+      case $output in
+      *.lo)
+	if test -n "$objs$old_deplibs"; then
+	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+	libobj="$output"
+	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+	;;
+      *)
+	libobj=
+	obj="$output"
+	;;
+      esac
+
+      # Delete the old objects.
+      $run $rm $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec
+      wl=
+
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+	else
+	  gentop="$output_objdir/${obj}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $convenience
+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
+	fi
+      fi
+
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+      output="$obj"
+      cmds=$reload_cmds
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	eval cmd=\"$cmd\"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
+
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$build_libtool_libs" != yes; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
+
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $run eval "echo timestamp > $libobj" || exit $?
+	exit $EXIT_SUCCESS
+      fi
+
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output="$libobj"
+	cmds=$reload_cmds
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $show "$cmd"
+	  $run eval "$cmd" || exit $?
+	done
+	IFS="$save_ifs"
+      fi
+
+      if test -n "$gentop"; then
+	$show "${rm}r $gentop"
+	$run ${rm}r $gentop
+      fi
+
+      exit $EXIT_SUCCESS
+      ;;
+
+    prog)
+      case $host in
+	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
+      esac
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+      fi
+
+      if test "$preload" = yes; then
+	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+	   test "$dlopen_self_static" = unknown; then
+	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+	fi
+      fi
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	;;
+      esac
+
+      case $host in
+      *darwin*)
+        # Don't allow lazy linking, it breaks C++ global constructors
+        if test "$tagname" = CXX ; then
+        compile_command="$compile_command ${wl}-bind_at_load"
+        finalize_command="$finalize_command ${wl}-bind_at_load"
+        fi
+        ;;
+      esac
+
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $compile_deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $compile_deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      compile_deplibs="$new_libs"
+
+
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) perm_rpath="$perm_rpath $libdir" ;;
+	  esac
+	fi
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$libdir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$libdir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+	  esac
+	fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
+
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
+
+      dlsyms=
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	  dlsyms="${outputname}S.c"
+	else
+	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+	fi
+      fi
+
+      if test -n "$dlsyms"; then
+	case $dlsyms in
+	"") ;;
+	*.c)
+	  # Discover the nlist of each of the dlfiles.
+	  nlist="$output_objdir/${outputname}.nm"
+
+	  $show "$rm $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
+
+	  # Parse the name list into a source file.
+	  $show "creating $output_objdir/$dlsyms"
+
+	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
+
+/* External symbol declarations for the compiler. */\
+"
+
+	  if test "$dlself" = yes; then
+	    $show "generating symbol list for \`$output'"
+
+	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+	    # Add our own program objects to the symbol list.
+	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	    for arg in $progfiles; do
+	      $show "extracting global C symbols from \`$arg'"
+	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	    done
+
+	    if test -n "$exclude_expsyms"; then
+	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
+
+	    if test -n "$export_symbols_regex"; then
+	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
+
+	    # Prepare the list of exported symbols
+	    if test -z "$export_symbols"; then
+	      export_symbols="$output_objdir/$outputname.exp"
+	      $run $rm $export_symbols
+	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+              case $host in
+              *cygwin* | *mingw* )
+	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+                ;;
+              esac
+	    else
+	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+	      $run eval 'mv "$nlist"T "$nlist"'
+              case $host in
+              *cygwin* | *mingw* )
+	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+                ;;
+              esac
+	    fi
+	  fi
+
+	  for arg in $dlprefiles; do
+	    $show "extracting global C symbols from \`$arg'"
+	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
+	    $run eval '$echo ": $name " >> "$nlist"'
+	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	  done
+
+	  if test -z "$run"; then
+	    # Make sure we have at least an empty file.
+	    test -f "$nlist" || : > "$nlist"
+
+	    if test -n "$exclude_expsyms"; then
+	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	      $mv "$nlist"T "$nlist"
+	    fi
+
+	    # Try sorting and uniquifying the output.
+	    if grep -v "^: " < "$nlist" |
+		if sort -k 3 </dev/null >/dev/null 2>&1; then
+		  sort -k 3
+		else
+		  sort +2
+		fi |
+		uniq > "$nlist"S; then
+	      :
+	    else
+	      grep -v "^: " < "$nlist" > "$nlist"S
+	    fi
+
+	    if test -f "$nlist"S; then
+	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+	    else
+	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
+	    fi
+
+	    $echo >> "$output_objdir/$dlsyms" "\
+
+#undef lt_preloaded_symbols
+
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+"
+
+	    case $host in
+	    *cygwin* | *mingw* )
+	  $echo >> "$output_objdir/$dlsyms" "\
+/* DATA imports from DLLs on WIN32 can't be const, because
+   runtime relocations are performed -- see ld's documentation
+   on pseudo-relocs */
+struct {
+"
+	      ;;
+	    * )
+	  $echo >> "$output_objdir/$dlsyms" "\
+const struct {
+"
+	      ;;
+	    esac
+
+
+	  $echo >> "$output_objdir/$dlsyms" "\
+  const char *name;
+  lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{\
+"
+
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+
+	    $echo >> "$output_objdir/$dlsyms" "\
+  {0, (lt_ptr) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+	  fi
+
+	  pic_flag_for_symtable=
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
+	    esac;;
+	  *-*-hpux*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag";;
+	    esac
+	  esac
+
+	  # Now compile the dynamic symbol file.
+	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+	  # Clean up the generated files.
+	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+	  # Transform the symbol file into the correct name.
+          case $host in
+          *cygwin* | *mingw* )
+            if test -f "$output_objdir/${outputname}.def" ; then
+              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
+              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
+            else
+              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+             fi
+            ;;
+          * )
+            compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+            finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+            ;;
+          esac
+	  ;;
+	*)
+	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+      else
+	# We keep going just in case the user didn't refer to
+	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+	# really was required.
+
+	# Nullify the symbol file.
+	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+      fi
+
+      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+	# Replace the output file specification.
+	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	link_command="$compile_command$compile_rpath"
+
+	# We have no uninstalled library dependencies, so finalize right now.
+	$show "$link_command"
+	$run eval "$link_command"
+	exit_status=$?
+
+	# Delete the generated files.
+	if test -n "$dlsyms"; then
+	  $show "$rm $output_objdir/${outputname}S.${objext}"
+	  $run $rm "$output_objdir/${outputname}S.${objext}"
+	fi
+
+	exit $exit_status
+      fi
+
+      if test -n "$shlibpath_var"; then
+	# We should set the shlibpath_var
+	rpath=
+	for dir in $temp_rpath; do
+	  case $dir in
+	  [\\/]* | [A-Za-z]:[\\/]*)
+	    # Absolute path.
+	    rpath="$rpath$dir:"
+	    ;;
+	  *)
+	    # Relative path: add a thisdir entry.
+	    rpath="$rpath\$thisdir/$dir:"
+	    ;;
+	  esac
+	done
+	temp_rpath="$rpath"
+      fi
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
+
+      if test "$no_install" = yes; then
+	# We don't need to create a wrapper script.
+	link_command="$compile_var$compile_command$compile_rpath"
+	# Replace the output file specification.
+	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$run $rm $output
+	# Link the executable and exit
+	$show "$link_command"
+	$run eval "$link_command" || exit $?
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$hardcode_action" = relink; then
+	# Fast installation is not supported
+	link_command="$compile_var$compile_command$compile_rpath"
+	relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+	$echo "$modename: \`$output' will be relinked during installation" 1>&2
+      else
+	if test "$fast_install" != no; then
+	  link_command="$finalize_var$compile_command$finalize_rpath"
+	  if test "$fast_install" = yes; then
+	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+	  else
+	    # fast_install is set to needless
+	    relink_command=
+	  fi
+	else
+	  link_command="$compile_var$compile_command$compile_rpath"
+	  relink_command="$finalize_var$finalize_command$finalize_rpath"
+	fi
+      fi
+
+      # Replace the output file specification.
+      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      $show "$link_command"
+      $run eval "$link_command" || exit $?
+
+      # Now create the wrapper script.
+      $show "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Quote $echo for shipping.
+      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
+	case $progpath in
+	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+	esac
+	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if our run command is non-null.
+      if test -z "$run"; then
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *cygwin* | *mingw* )
+            output_name=`basename $output`
+            output_path=`dirname $output`
+            cwrappersource="$output_path/$objdir/lt-$output_name.c"
+            cwrapper="$output_path/$output_name.exe"
+            $rm $cwrappersource $cwrapper
+            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+	    cat > $cwrappersource <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+
+   Currently, it simply execs the wrapper *script* "/bin/sh $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+	    cat >> $cwrappersource<<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <sys/stat.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+/* -DDEBUG is fairly common in CFLAGS.  */
+#undef DEBUG
+#if defined DEBUGWRAPPER
+# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
+#else
+# define DEBUG(format, ...)
+#endif
+
+const char *program_name = NULL;
+
+void * xmalloc (size_t num);
+char * xstrdup (const char *string);
+const char * base_name (const char *name);
+char * find_executable(const char *wrapper);
+int    check_executable(const char *path);
+char * strendzap(char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int i;
+
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  DEBUG("(main) argv[0]      : %s\n",argv[0]);
+  DEBUG("(main) program_name : %s\n",program_name);
+  newargz = XMALLOC(char *, argc+2);
+EOF
+
+            cat >> $cwrappersource <<EOF
+  newargz[0] = (char *) xstrdup("$SHELL");
+EOF
+
+            cat >> $cwrappersource <<"EOF"
+  newargz[1] = find_executable(argv[0]);
+  if (newargz[1] == NULL)
+    lt_fatal("Couldn't find %s", argv[0]);
+  DEBUG("(main) found exe at : %s\n",newargz[1]);
+  /* we know the script has the same name, without the .exe */
+  /* so make sure newargz[1] doesn't end in .exe */
+  strendzap(newargz[1],".exe");
+  for (i = 1; i < argc; i++)
+    newargz[i+1] = xstrdup(argv[i]);
+  newargz[argc+1] = NULL;
+
+  for (i=0; i<argc+1; i++)
+  {
+    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
+    ;
+  }
+
+EOF
+
+            case $host_os in
+              mingw*)
+                cat >> $cwrappersource <<EOF
+  execv("$SHELL",(char const **)newargz);
+EOF
+              ;;
+              *)
+                cat >> $cwrappersource <<EOF
+  execv("$SHELL",newargz);
+EOF
+              ;;
+            esac
+
+            cat >> $cwrappersource <<"EOF"
+  return 127;
+}
+
+void *
+xmalloc (size_t num)
+{
+  void * p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
+
+  return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+;
+}
+
+const char *
+base_name (const char *name)
+{
+  const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
+
+int
+check_executable(const char * path)
+{
+  struct stat st;
+
+  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
+  if ((!path) || (!*path))
+    return 0;
+
+  if ((stat (path, &st) >= 0) &&
+      (
+        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
+#if defined (S_IXOTH)
+       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
+#endif
+#if defined (S_IXGRP)
+       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
+#endif
+       ((st.st_mode & S_IXUSR) == S_IXUSR))
+      )
+    return 1;
+  else
+    return 0;
+}
+
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise */
+char *
+find_executable (const char* wrapper)
+{
+  int has_slash = 0;
+  const char* p;
+  const char* p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  int tmp_len;
+  char* concat_name;
+
+  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
+
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
+
+  /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
+  {
+    concat_name = xstrdup (wrapper);
+    if (check_executable(concat_name))
+      return concat_name;
+    XFREE(concat_name);
+  }
+  else
+  {
+#endif
+    if (IS_DIR_SEPARATOR (wrapper[0]))
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable(concat_name))
+        return concat_name;
+      XFREE(concat_name);
+    }
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  }
+#endif
+
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+    {
+      has_slash = 1;
+      break;
+    }
+  if (!has_slash)
+  {
+    /* no slashes; search PATH */
+    const char* path = getenv ("PATH");
+    if (path != NULL)
+    {
+      for (p = path; *p; p = p_next)
+      {
+        const char* q;
+        size_t p_len;
+        for (q = p; *q; q++)
+          if (IS_PATH_SEPARATOR(*q))
+            break;
+        p_len = q - p;
+        p_next = (*q == '\0' ? q : q + 1);
+        if (p_len == 0)
+        {
+          /* empty path: current directory */
+          if (getcwd (tmp, LT_PATHMAX) == NULL)
+            lt_fatal ("getcwd failed");
+          tmp_len = strlen(tmp);
+          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+          memcpy (concat_name, tmp, tmp_len);
+          concat_name[tmp_len] = '/';
+          strcpy (concat_name + tmp_len + 1, wrapper);
+        }
+        else
+        {
+          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
+          memcpy (concat_name, p, p_len);
+          concat_name[p_len] = '/';
+          strcpy (concat_name + p_len + 1, wrapper);
+        }
+        if (check_executable(concat_name))
+          return concat_name;
+        XFREE(concat_name);
+      }
+    }
+    /* not found in PATH; assume curdir */
+  }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  tmp_len = strlen(tmp);
+  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
+
+  if (check_executable(concat_name))
+    return concat_name;
+  XFREE(concat_name);
+  return NULL;
+}
+
+char *
+strendzap(char *str, const char *pat)
+{
+  size_t len, patlen;
+
+  assert(str != NULL);
+  assert(pat != NULL);
+
+  len = strlen(str);
+  patlen = strlen(pat);
+
+  if (patlen <= len)
+  {
+    str += len - patlen;
+    if (strcmp(str, pat) == 0)
+      *str = '\0';
+  }
+  return str;
+}
+
+static void
+lt_error_core (int exit_status, const char * mode,
+          const char * message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
+EOF
+          # we should really use a build-platform specific compiler
+          # here, but OTOH, the wrappers (shell script and this C one)
+          # are only useful if you want to execute the "real" binary.
+          # Since the "real" binary is built for $host, then this
+          # wrapper might as well be built for $host, too.
+          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
+          ;;
+        esac
+        $rm $output
+        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
+
+	$echo > $output "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variable:
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$echo are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    echo=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$echo works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$echo will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+	$echo >> $output "\
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+	if test "$fast_install" = yes; then
+	  $echo >> $output "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" || \\
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $mkdir \"\$progdir\"
+    else
+      $rm \"\$progdir/\$file\"
+    fi"
+
+	  $echo >> $output "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	$echo \"\$relink_command_output\" >&2
+	$rm \"\$progdir/\$file\"
+	exit $EXIT_FAILURE
+      fi
+    fi
+
+    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $rm \"\$progdir/\$program\";
+      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $rm \"\$progdir/\$file\"
+  fi"
+	else
+	  $echo >> $output "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+	fi
+
+	$echo >> $output "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+	# Export our shlibpath_var if we have one.
+	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $echo >> $output "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+	fi
+
+	# fixup the dll searchpath if we need to.
+	if test -n "$dllsearchpath"; then
+	  $echo >> $output "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	$echo >> $output "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+	case $host in
+	# Backslashes separate directories on plain windows
+	*-*-mingw | *-*-os2*)
+	  $echo >> $output "\
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+	  ;;
+
+	*)
+	  $echo >> $output "\
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+	  ;;
+	esac
+	$echo >> $output "\
+      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
+      exit $EXIT_FAILURE
+    fi
+  else
+    # The program doesn't exist.
+    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$echo \"This script is just a wrapper for \$program.\" 1>&2
+    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit $EXIT_FAILURE
+  fi
+fi\
+"
+	chmod +x $output
+      fi
+      exit $EXIT_SUCCESS
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      if test "$build_libtool_libs" = convenience; then
+	oldobjs="$libobjs_save"
+	addlibs="$convenience"
+	build_libtool_libs=no
+      else
+	if test "$build_libtool_libs" = module; then
+	  oldobjs="$libobjs_save"
+	  build_libtool_libs=no
+	else
+	  oldobjs="$old_deplibs $non_pic_objects"
+	fi
+	addlibs="$old_convenience"
+      fi
+
+      if test -n "$addlibs"; then
+	gentop="$output_objdir/${outputname}x"
+	generated="$generated $gentop"
+
+	func_extract_archives $gentop $addlibs
+	oldobjs="$oldobjs $func_extract_archives_result"
+      fi
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+       cmds=$old_archive_from_new_cmds
+      else
+	# POSIX demands no paths to be encoded in archives.  We have
+	# to avoid creating archives with duplicate basenames if we
+	# might have to extract them afterwards, e.g., when creating a
+	# static archive out of a convenience library, or when linking
+	# the entirety of a libtool archive into another (currently
+	# not supported by libtool).
+	if (for obj in $oldobjs
+	    do
+	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	  :
+	else
+	  $echo "copying selected object files to avoid basename conflicts..."
+
+	  if test -z "$gentop"; then
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
+
+	    $show "${rm}r $gentop"
+	    $run ${rm}r "$gentop"
+	    $show "$mkdir $gentop"
+	    $run $mkdir "$gentop"
+	    exit_status=$?
+	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
+	      exit $exit_status
+	    fi
+	  fi
+
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  counter=1
+	  for obj in $save_oldobjs
+	  do
+	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+	    case " $oldobjs " in
+	    " ") oldobjs=$obj ;;
+	    *[\ /]"$objbase "*)
+	      while :; do
+		# Make sure we don't pick an alternate name that also
+		# overlaps.
+		newobj=lt$counter-$objbase
+		counter=`expr $counter + 1`
+		case " $oldobjs " in
+		*[\ /]"$newobj "*) ;;
+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
+		esac
+	      done
+	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+	      $run ln "$obj" "$gentop/$newobj" ||
+	      $run cp "$obj" "$gentop/$newobj"
+	      oldobjs="$oldobjs $gentop/$newobj"
+	      ;;
+	    *) oldobjs="$oldobjs $obj" ;;
+	    esac
+	  done
+	fi
+
+	eval cmds=\"$old_archive_cmds\"
+
+	if len=`expr "X$cmds" : ".*"` &&
+	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  cmds=$old_archive_cmds
+	else
+	  # the command line is too long to link in one step, link in parts
+	  $echo "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done
+	  for obj in $save_oldobjs
+	  do
+	    oldobjs="$objlist $obj"
+	    objlist="$objlist $obj"
+	    eval test_cmds=\"$old_archive_cmds\"
+	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+	       test "$len" -le "$max_cmd_len"; then
+	      :
+	    else
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj" ; then
+	        RANLIB=$save_RANLIB
+	      fi
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+	      objlist=
+	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test "X$oldobjs" = "X" ; then
+	    eval cmds=\"\$concat_cmds\"
+	  else
+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+	  fi
+	fi
+      fi
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+        eval cmd=\"$cmd\"
+	IFS="$save_ifs"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
+
+    if test -n "$generated"; then
+      $show "${rm}r$generated"
+      $run ${rm}r$generated
+    fi
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      $show "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
+	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      if test "$hardcode_automatic" = yes ; then
+	relink_command=
+      fi
+
+
+      # Only create the output if not a dry run.
+      if test -z "$run"; then
+	for installed in no yes; do
+	  if test "$installed" = yes; then
+	    if test -z "$install_libdir"; then
+	      break
+	    fi
+	    output="$output_objdir/$outputname"i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		if test -z "$libdir"; then
+		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		  exit $EXIT_FAILURE
+		fi
+		newdependency_libs="$newdependency_libs $libdir/$name"
+		;;
+	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      esac
+	    done
+	    dependency_libs="$newdependency_libs"
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit $EXIT_FAILURE
+	      fi
+	      newdlfiles="$newdlfiles $libdir/$name"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit $EXIT_FAILURE
+	      fi
+	      newdlprefiles="$newdlprefiles $libdir/$name"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  else
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlfiles="$newdlfiles $abs"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlprefiles="$newdlprefiles $abs"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  fi
+	  $rm $output
+	  # place dlname in correct position for cygwin
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	  esac
+	  $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test "$installed" = no && test "$need_relink" = yes; then
+	    $echo >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      fi
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+    ;;
+
+  # libtool install mode
+  install)
+    modename="$modename: install"
+
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       $echo "X$nonopt" | grep shtool > /dev/null; then
+      # Aesthetically quote it.
+      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	arg="\"$arg\""
+	;;
+      esac
+      install_prog="$arg "
+      arg="$1"
+      shift
+    else
+      install_prog=
+      arg=$nonopt
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+    case $arg in
+    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+      arg="\"$arg\""
+      ;;
+    esac
+    install_prog="$install_prog$arg"
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    for arg
+    do
+      if test -n "$dest"; then
+	files="$files $dest"
+	dest=$arg
+	continue
+      fi
+
+      case $arg in
+      -d) isdir=yes ;;
+      -f) 
+      	case " $install_prog " in
+	*[\\\ /]cp\ *) ;;
+	*) prev=$arg ;;
+	esac
+	;;
+      -g | -m | -o) prev=$arg ;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*)
+	;;
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  prev=
+	else
+	  dest=$arg
+	  continue
+	fi
+	;;
+      esac
+
+      # Aesthetically quote the argument.
+      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	arg="\"$arg\""
+	;;
+      esac
+      install_prog="$install_prog $arg"
+    done
+
+    if test -z "$install_prog"; then
+      $echo "$modename: you must specify an install program" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prev' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	$echo "$modename: no file or destination specified" 1>&2
+      else
+	$echo "$modename: you must specify a destination" 1>&2
+      fi
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    # Strip any trailing slash from the destination.
+    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+      test "X$destdir" = "X$dest" && destdir=.
+      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files
+      if test "$#" -gt 2; then
+	$echo "$modename: \`$dest' is not a directory" 1>&2
+	$echo "$help" 1>&2
+	exit $EXIT_FAILURE
+      fi
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	staticlibs="$staticlibs $file"
+	;;
+
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	library_names=
+	old_library=
+	relink_command=
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
+
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) current_libdirs="$current_libdirs $libdir" ;;
+	  esac
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) future_libdirs="$future_libdirs $libdir" ;;
+	  esac
+	fi
+
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+	test "X$dir" = "X$file/" && dir=
+	dir="$dir$objdir"
+
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
+
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  if test "$inst_prefix_dir" = "$destdir"; then
+	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	  else
+	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+	  fi
+
+	  $echo "$modename: warning: relinking \`$file'" 1>&2
+	  $show "$relink_command"
+	  if $run eval "$relink_command"; then :
+	  else
+	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	fi
+
+	# See the names of the shared library.
+	set dummy $library_names
+	if test -n "$2"; then
+	  realname="$2"
+	  shift
+	  shift
+
+	  srcname="$realname"
+	  test -n "$relink_command" && srcname="$realname"T
+
+	  # Install the shared library and build the symlinks.
+	  $show "$install_prog $dir/$srcname $destdir/$realname"
+	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
+	  if test -n "$stripme" && test -n "$striplib"; then
+	    $show "$striplib $destdir/$realname"
+	    $run eval "$striplib $destdir/$realname" || exit $?
+	  fi
+
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    # Try `ln -sf' first, because the `ln' binary might depend on
+	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
+	    # so we also need to try rm && ln -s.
+	    for linkname
+	    do
+	      if test "$linkname" != "$realname"; then
+                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
+                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
+	      fi
+	    done
+	  fi
+
+	  # Do each command in the postinstall commands.
+	  lib="$destdir/$realname"
+	  cmds=$postinstall_cmds
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    eval cmd=\"$cmd\"
+	    $show "$cmd"
+	    $run eval "$cmd" || {
+	      lt_exit=$?
+
+	      # Restore the uninstalled library and exit
+	      if test "$mode" = relink; then
+		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
+	      fi
+
+	      exit $lt_exit
+	    }
+	  done
+	  IFS="$save_ifs"
+	fi
+
+	# Install the pseudo-library for information purposes.
+	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	instname="$dir/$name"i
+	$show "$install_prog $instname $destdir/$name"
+	$run eval "$install_prog $instname $destdir/$name" || exit $?
+
+	# Maybe install the static library, too.
+	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	;;
+
+      *.lo)
+	# Install (i.e. copy) a libtool object.
+
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
+	fi
+
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+	  ;;
+	*.$objext)
+	  staticdest="$destfile"
+	  destfile=
+	  ;;
+	*)
+	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	# Install the libtool object if requested.
+	if test -n "$destfile"; then
+	  $show "$install_prog $file $destfile"
+	  $run eval "$install_prog $file $destfile" || exit $?
+	fi
+
+	# Install the old object if enabled.
+	if test "$build_old_libs" = yes; then
+	  # Deduce the name of the old-style object file.
+	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+	  $show "$install_prog $staticobj $staticdest"
+	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+	fi
+	exit $EXIT_SUCCESS
+	;;
+
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
+	fi
+
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=""
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      file=`$echo $file|${SED} 's,.exe$,,'`
+	      stripped_ext=".exe"
+	    fi
+	    ;;
+	esac
+
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin*|*mingw*)
+	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+	  notinst_deplibs=
+	  relink_command=
+
+	  # Note that it is not necessary on cygwin/mingw to append a dot to
+	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
+	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
+	  # `FILE.' does not work on cygwin managed mounts.
+	  #
+	  # If there is no directory component, then add one.
+	  case $wrapper in
+	  */* | *\\*) . ${wrapper} ;;
+	  *) . ./${wrapper} ;;
+	  esac
+
+	  # Check the variables that should have been set.
+	  if test -z "$notinst_deplibs"; then
+	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+
+	  finalize=yes
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      # If there is no directory component, then add one.
+	      case $lib in
+	      */* | *\\*) . $lib ;;
+	      *) . ./$lib ;;
+	      esac
+	    fi
+	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+	      finalize=no
+	    fi
+	  done
+
+	  relink_command=
+	  # Note that it is not necessary on cygwin/mingw to append a dot to
+	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
+	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
+	  # `FILE.' does not work on cygwin managed mounts.
+	  #
+	  # If there is no directory component, then add one.
+	  case $wrapper in
+	  */* | *\\*) . ${wrapper} ;;
+	  *) . ./${wrapper} ;;
+	  esac
+
+	  outputname=
+	  if test "$fast_install" = no && test -n "$relink_command"; then
+	    if test "$finalize" = yes && test -z "$run"; then
+	      tmpdir=`func_mktempdir`
+	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+	      outputname="$tmpdir/$file"
+	      # Replace the output file specification.
+	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+	      $show "$relink_command"
+	      if $run eval "$relink_command"; then :
+	      else
+		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+		${rm}r "$tmpdir"
+		continue
+	      fi
+	      file="$outputname"
+	    else
+	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
+	    fi
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
+
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyway 
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
+	    ;;
+	  esac
+	  ;;
+	esac
+	$show "$install_prog$stripme $file $destfile"
+	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+	test -n "$outputname" && ${rm}r "$tmpdir"
+	;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
+
+      $show "$install_prog $file $oldlib"
+      $run eval "$install_prog \$file \$oldlib" || exit $?
+
+      if test -n "$stripme" && test -n "$old_striplib"; then
+	$show "$old_striplib $oldlib"
+	$run eval "$old_striplib $oldlib" || exit $?
+      fi
+
+      # Do each command in the postinstall commands.
+      cmds=$old_postinstall_cmds
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	eval cmd=\"$cmd\"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
+
+    if test -n "$future_libdirs"; then
+      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+    fi
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      test -n "$run" && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+    ;;
+
+  # libtool finish mode
+  finish)
+    modename="$modename: finish"
+    libdirs="$nonopt"
+    admincmds=
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for dir
+      do
+	libdirs="$libdirs $dir"
+      done
+
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  cmds=$finish_cmds
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    eval cmd=\"$cmd\"
+	    $show "$cmd"
+	    $run eval "$cmd" || admincmds="$admincmds
+       $cmd"
+	  done
+	  IFS="$save_ifs"
+	fi
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $run eval "$cmds" || admincmds="$admincmds
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    test "$show" = : && exit $EXIT_SUCCESS
+
+    $echo "X----------------------------------------------------------------------" | $Xsed
+    $echo "Libraries have been installed in:"
+    for libdir in $libdirs; do
+      $echo "   $libdir"
+    done
+    $echo
+    $echo "If you ever happen to want to link against installed libraries"
+    $echo "in a given directory, LIBDIR, you must either use libtool, and"
+    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+    $echo "flag during linking and do at least one of the following:"
+    if test -n "$shlibpath_var"; then
+      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+      $echo "     during execution"
+    fi
+    if test -n "$runpath_var"; then
+      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+      $echo "     during linking"
+    fi
+    if test -n "$hardcode_libdir_flag_spec"; then
+      libdir=LIBDIR
+      eval flag=\"$hardcode_libdir_flag_spec\"
+
+      $echo "   - use the \`$flag' linker flag"
+    fi
+    if test -n "$admincmds"; then
+      $echo "   - have your system administrator run these commands:$admincmds"
+    fi
+    if test -f /etc/ld.so.conf; then
+      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+    fi
+    $echo
+    $echo "See any operating system documentation about shared libraries for"
+    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
+    $echo "X----------------------------------------------------------------------" | $Xsed
+    exit $EXIT_SUCCESS
+    ;;
+
+  # libtool execute mode
+  execute)
+    modename="$modename: execute"
+
+    # The first argument is the command name.
+    cmd="$nonopt"
+    if test -z "$cmd"; then
+      $echo "$modename: you must specify a COMMAND" 1>&2
+      $echo "$help"
+      exit $EXIT_FAILURE
+    fi
+
+    # Handle -dlopen flags immediately.
+    for file in $execute_dlfiles; do
+      if test ! -f "$file"; then
+	$echo "$modename: \`$file' is not a file" 1>&2
+	$echo "$help" 1>&2
+	exit $EXIT_FAILURE
+      fi
+
+      dir=
+      case $file in
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# Read the libtool library.
+	dlname=
+	library_names=
+
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
+
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+	  continue
+	fi
+
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
+
+	if test -f "$dir/$objdir/$dlname"; then
+	  dir="$dir/$objdir"
+	else
+	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+	;;
+
+      *.lo)
+	# Just add the directory containing the .lo file.
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
+	;;
+
+      *)
+	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+	continue
+	;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -*) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . $file ;;
+	  *) . ./$file ;;
+	  esac
+
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+      args="$args \"$file\""
+    done
+
+    if test -z "$run"; then
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      if test "${save_LC_ALL+set}" = set; then
+	LC_ALL="$save_LC_ALL"; export LC_ALL
+      fi
+      if test "${save_LANG+set}" = set; then
+	LANG="$save_LANG"; export LANG
+      fi
+
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+	$echo "export $shlibpath_var"
+      fi
+      $echo "$cmd$args"
+      exit $EXIT_SUCCESS
+    fi
+    ;;
+
+  # libtool clean and uninstall mode
+  clean | uninstall)
+    modename="$modename: $mode"
+    rm="$nonopt"
+    files=
+    rmforce=
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    for arg
+    do
+      case $arg in
+      -f) rm="$rm $arg"; rmforce=yes ;;
+      -*) rm="$rm $arg" ;;
+      *) files="$files $arg" ;;
+      esac
+    done
+
+    if test -z "$rm"; then
+      $echo "$modename: you must specify an RM program" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    rmdirs=
+
+    origobjdir="$objdir"
+    for file in $files; do
+      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+      if test "X$dir" = "X$file"; then
+	dir=.
+	objdir="$origobjdir"
+      else
+	objdir="$dir/$origobjdir"
+      fi
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+      test "$mode" = uninstall && objdir="$dir"
+
+      # Remember objdir for removal later, being careful to avoid duplicates
+      if test "$mode" = clean; then
+	case " $rmdirs " in
+	  *" $objdir "*) ;;
+	  *) rmdirs="$rmdirs $objdir" ;;
+	esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if (test -L "$file") >/dev/null 2>&1 \
+	|| (test -h "$file") >/dev/null 2>&1 \
+	|| test -f "$file"; then
+	:
+      elif test -d "$file"; then
+	exit_status=1
+	continue
+      elif test "$rmforce" = yes; then
+	continue
+      fi
+
+      rmfiles="$file"
+
+      case $name in
+      *.la)
+	# Possibly a libtool archive, so verify it.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  . $dir/$name
+
+	  # Delete the libtool libraries and symlinks.
+	  for n in $library_names; do
+	    rmfiles="$rmfiles $objdir/$n"
+	  done
+	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+
+	  case "$mode" in
+	  clean)
+	    case "  $library_names " in
+	    # "  " in the beginning catches empty $dlname
+	    *" $dlname "*) ;;
+	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
+	    esac
+	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+	    ;;
+	  uninstall)
+	    if test -n "$library_names"; then
+	      # Do each command in the postuninstall commands.
+	      cmds=$postuninstall_cmds
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
+	    fi
+
+	    if test -n "$old_library"; then
+	      # Do each command in the old_postuninstall commands.
+	      cmds=$old_postuninstall_cmds
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
+	    fi
+	    # FIXME: should reinstall the best remaining shared library.
+	    ;;
+	  esac
+	fi
+	;;
+
+      *.lo)
+	# Possibly a libtool object, so verify it.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+
+	  # Read the .lo file
+	  . $dir/$name
+
+	  # Add PIC object to the list of files to remove.
+	  if test -n "$pic_object" \
+	     && test "$pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$pic_object"
+	  fi
+
+	  # Add non-PIC object to the list of files to remove.
+	  if test -n "$non_pic_object" \
+	     && test "$non_pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$non_pic_object"
+	  fi
+	fi
+	;;
+
+      *)
+	if test "$mode" = clean ; then
+	  noexename=$name
+	  case $file in
+	  *.exe)
+	    file=`$echo $file|${SED} 's,.exe$,,'`
+	    noexename=`$echo $name|${SED} 's,.exe$,,'`
+	    # $file with .exe has already been added to rmfiles,
+	    # add $file without .exe
+	    rmfiles="$rmfiles $file"
+	    ;;
+	  esac
+	  # Do a test to see if this is a libtool program.
+	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	    relink_command=
+	    . $dir/$noexename
+
+	    # note $name still contains .exe if it was in $file originally
+	    # as does the version of $file that was added into $rmfiles
+	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+	    if test "$fast_install" = yes && test -n "$relink_command"; then
+	      rmfiles="$rmfiles $objdir/lt-$name"
+	    fi
+	    if test "X$noexename" != "X$name" ; then
+	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+	    fi
+	  fi
+	fi
+	;;
+      esac
+      $show "$rm $rmfiles"
+      $run $rm $rmfiles || exit_status=1
+    done
+    objdir="$origobjdir"
+
+    # Try to remove the ${objdir}s in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+	$show "rmdir $dir"
+	$run rmdir $dir >/dev/null 2>&1
+      fi
+    done
+
+    exit $exit_status
+    ;;
+
+  "")
+    $echo "$modename: you must specify a MODE" 1>&2
+    $echo "$generic_help" 1>&2
+    exit $EXIT_FAILURE
+    ;;
+  esac
+
+  if test -z "$exec_cmd"; then
+    $echo "$modename: invalid operation mode \`$mode'" 1>&2
+    $echo "$generic_help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+fi # test -z "$show_help"
+
+if test -n "$exec_cmd"; then
+  eval exec $exec_cmd
+  exit $EXIT_FAILURE
+fi
+
+# We need to display help for each of the modes.
+case $mode in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+    --config          show all configuration variables
+    --debug           enable verbose shell tracing
+-n, --dry-run         display commands without modifying any files
+    --features        display basic configuration information and exit
+    --finish          same as \`--mode=finish'
+    --help            display this help message and exit
+    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
+    --quiet           same as \`--silent'
+    --silent          don't print informational messages
+    --tag=TAG         use configuration variables from tag TAG
+    --version         print version information
+
+MODE must be one of the following:
+
+      clean           remove files from the build directory
+      compile         compile a source file into a libtool object
+      execute         automatically set library path, then run a program
+      finish          complete the installation of libtool libraries
+      install         install libraries or executables
+      link            create a library or an executable
+      uninstall       remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool at gnu.org>."
+  exit $EXIT_SUCCESS
+  ;;
+
+clean)
+  $echo \
+"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+compile)
+  $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -static           always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+  ;;
+
+execute)
+  $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+  ;;
+
+finish)
+  $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+  ;;
+
+install)
+  $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+  ;;
+
+link)
+  $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+		    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+		    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -static           do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+		    specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+  ;;
+
+uninstall)
+  $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+*)
+  $echo "$modename: invalid operation mode \`$mode'" 1>&2
+  $echo "$help" 1>&2
+  exit $EXIT_FAILURE
+  ;;
+esac
+
+$echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit $?
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+disable_libs=shared
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+disable_libs=static
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:

Added: packages/libxslt/branches/upstream/1.1.16/missing
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/missing	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/missing	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,336 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try \`$0 --help' for more information"
+  exit 1
+fi
+
+run=:
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+  configure_ac=configure.ac
+else
+  configure_ac=configure.in
+fi
+
+case "$1" in
+--run)
+  # Try to run requested program, and just exit if it succeeds.
+  run=
+  shift
+  "$@" && exit 0
+  ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+  --run           try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+  aclocal      touch file \`aclocal.m4'
+  autoconf     touch file \`configure'
+  autoheader   touch file \`config.h.in'
+  automake     touch all \`Makefile.in' files
+  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
+  flex         create \`lex.yy.c', if possible, from existing .c
+  help2man     touch the output file
+  lex          create \`lex.yy.c', if possible, from existing .c
+  makeinfo     touch the output file
+  tar          try tar, gnutar, gtar, then tar without non-portable flags
+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing 0.4 - GNU automake"
+    ;;
+
+  -*)
+    echo 1>&2 "$0: Unknown \`$1' option"
+    echo 1>&2 "Try \`$0 --help' for more information"
+    exit 1
+    ;;
+
+  aclocal*)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
+         to install the \`Automake' and \`Perl' packages.  Grab them from
+         any GNU archive site."
+    touch aclocal.m4
+    ;;
+
+  autoconf)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`${configure_ac}'.  You might want to install the
+         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+         archive site."
+    touch configure
+    ;;
+
+  autoheader)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
+         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+         from any GNU archive site."
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+    test -z "$files" && files="config.h"
+    touch_files=
+    for f in $files; do
+      case "$f" in
+      *:*) touch_files="$touch_files "`echo "$f" |
+				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+      *) touch_files="$touch_files $f.in";;
+      esac
+    done
+    touch $touch_files
+    ;;
+
+  automake*)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+         You might want to install the \`Automake' and \`Perl' packages.
+         Grab them from any GNU archive site."
+    find . -type f -name Makefile.am -print |
+	   sed 's/\.am$/.in/' |
+	   while read f; do touch "$f"; done
+    ;;
+
+  autom4te)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+         system.  You might have modified some files without having the
+         proper tools for further handling them.
+         You can get \`$1Help2man' as part of \`Autoconf' from any GNU
+         archive site."
+
+    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
+    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo "#! /bin/sh"
+	echo "# Created by GNU Automake missing as a replacement of"
+	echo "#  $ $@"
+	echo "exit 0"
+	chmod +x $file
+	exit 1
+    fi
+    ;;
+
+  bison|yacc)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.y' file.  You may need the \`Bison' package
+         in order for those modifications to take effect.  You can get
+         \`Bison' from any GNU archive site."
+    rm -f y.tab.c y.tab.h
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+	case "$LASTARG" in
+	*.y)
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+	    if [ -f "$SRCFILE" ]; then
+	         cp "$SRCFILE" y.tab.c
+	    fi
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+	    if [ -f "$SRCFILE" ]; then
+	         cp "$SRCFILE" y.tab.h
+	    fi
+	  ;;
+	esac
+    fi
+    if [ ! -f y.tab.h ]; then
+	echo >y.tab.h
+    fi
+    if [ ! -f y.tab.c ]; then
+	echo 'main() { return 0; }' >y.tab.c
+    fi
+    ;;
+
+  lex|flex)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.l' file.  You may need the \`Flex' package
+         in order for those modifications to take effect.  You can get
+         \`Flex' from any GNU archive site."
+    rm -f lex.yy.c
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+	case "$LASTARG" in
+	*.l)
+	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+	    if [ -f "$SRCFILE" ]; then
+	         cp "$SRCFILE" lex.yy.c
+	    fi
+	  ;;
+	esac
+    fi
+    if [ ! -f lex.yy.c ]; then
+	echo 'main() { return 0; }' >lex.yy.c
+    fi
+    ;;
+
+  help2man)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+	 you modified a dependency of a manual page.  You may need the
+	 \`Help2man' package in order for those modifications to take
+	 effect.  You can get \`Help2man' from any GNU archive site."
+
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+	file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
+    fi
+    if [ -f "$file" ]; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo ".ab help2man is required to generate this page"
+	exit 1
+    fi
+    ;;
+
+  makeinfo)
+    if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
+       # We have makeinfo, but it failed.
+       exit 1
+    fi
+
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.texi' or \`.texinfo' file, or any other file
+         indirectly affecting the aspect of the manual.  The spurious
+         call might also be the consequence of using a buggy \`make' (AIX,
+         DU, IRIX).  You might want to install the \`Texinfo' package or
+         the \`GNU make' package.  Grab either from any GNU archive site."
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+    fi
+    touch $file
+    ;;
+
+  tar)
+    shift
+    if test -n "$run"; then
+      echo 1>&2 "ERROR: \`tar' requires --run"
+      exit 1
+    fi
+
+    # We have already tried tar in the generic part.
+    # Look for gnutar/gtar before invocation to avoid ugly error
+    # messages.
+    if (gnutar --version > /dev/null 2>&1); then
+       gnutar "$@" && exit 0
+    fi
+    if (gtar --version > /dev/null 2>&1); then
+       gtar "$@" && exit 0
+    fi
+    firstarg="$1"
+    if shift; then
+	case "$firstarg" in
+	*o*)
+	    firstarg=`echo "$firstarg" | sed s/o//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+	case "$firstarg" in
+	*h*)
+	    firstarg=`echo "$firstarg" | sed s/h//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+    fi
+
+    echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+         You may want to install GNU tar or Free paxutils, or check the
+         command line arguments."
+    exit 1
+    ;;
+
+  *)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+         system.  You might have modified some files without having the
+         proper tools for further handling them.  Check the \`README' file,
+         it often tells you about the needed prerequirements for installing
+         this package.  You may also peek at any GNU archive site, in case
+         some other package would contain this missing \`$1' program."
+    exit 1
+    ;;
+esac
+
+exit 0


Property changes on: packages/libxslt/branches/upstream/1.1.16/missing
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/mkinstalldirs
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/mkinstalldirs	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/mkinstalldirs	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,99 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman at prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+errstatus=0
+dirmode=""
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
+
+# process command line arguments
+while test $# -gt 0 ; do
+   case "${1}" in
+     -h | --help | --h* )			# -h for help
+	echo "${usage}" 1>&2; exit 0 ;;
+     -m )					# -m PERM arg
+	shift
+	test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+	dirmode="${1}"
+	shift ;;
+     -- ) shift; break ;;			# stop option processing
+     -* ) echo "${usage}" 1>&2; exit 1 ;;	# unknown option
+     * )  break ;;				# first non-opt arg
+   esac
+done
+
+for file
+do
+  if test -d "$file"; then
+    shift
+  else
+    break
+  fi
+done
+
+case $# in
+0) exit 0 ;;
+esac
+
+case $dirmode in
+'')
+  if mkdir -p -- . 2>/dev/null; then
+    echo "mkdir -p -- $*"
+    exec mkdir -p -- "$@"
+  fi ;;
+*)
+  if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
+    echo "mkdir -m $dirmode -p -- $*"
+    exec mkdir -m "$dirmode" -p -- "$@"
+  fi ;;
+esac
+
+for file
+do
+   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+   shift
+
+   pathcomp=
+   for d
+   do
+     pathcomp="$pathcomp$d"
+     case "$pathcomp" in
+       -* ) pathcomp=./$pathcomp ;;
+     esac
+
+     if test ! -d "$pathcomp"; then
+	echo "mkdir $pathcomp"
+
+	mkdir "$pathcomp" || lasterr=$?
+
+	if test ! -d "$pathcomp"; then
+	  errstatus=$lasterr
+	else
+	  if test ! -z "$dirmode"; then
+	     echo "chmod $dirmode $pathcomp"
+
+	     lasterr=""
+	     chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+	     if test ! -z "$lasterr"; then
+	       errstatus=$lasterr
+	     fi
+	  fi
+	fi
+     fi
+
+     pathcomp="$pathcomp/"
+   done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 3
+# End:
+# mkinstalldirs ends here


Property changes on: packages/libxslt/branches/upstream/1.1.16/mkinstalldirs
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/python/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,74 @@
+# Makefile for libxml2 python library
+AUTOMAKE_OPTIONS = 1.4 foreign
+
+SUBDIRS= . tests
+
+INCLUDES = \
+	-I$(PYTHON_INCLUDES) \
+	 $(LIBXML_CFLAGS) \
+	-I$(top_srcdir)/libxslt \
+	-I$(top_srcdir) \
+	-I../libexslt
+
+DOCS_DIR = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION)
+# libxsltclass.txt is generated
+DOCS = TODO
+
+EXTRA_DIST = 			\
+	libxslt.c		\
+	types.c			\
+	generator.py		\
+	libxml_wrap.h		\
+	libxslt_wrap.h		\
+	libxsl.py		\
+	libxslt-python-api.xml	\
+	$(DOCS)
+
+libxsltmod_la_LDFLAGS = -module -avoid-version -L$(top_builddir)/libxslt/.libs \
+                        -L$(top_builddir)/libexslt/.libs
+
+if WITH_PYTHON
+mylibs = \
+	$(top_builddir)/libxslt/libxslt.la \
+	$(top_builddir)/libexslt/libexslt.la
+
+all-local: libxslt.py
+
+python_LTLIBRARIES = libxsltmod.la
+
+libxsltmod_la_SOURCES = libxslt.c types.c libxslt-py.c
+libxsltmod_la_LIBADD = $(mylibs) 
+
+libxslt.py: $(srcdir)/libxsl.py $(srcdir)/libxsltclass.py
+	cat $(srcdir)/libxsl.py $(srcdir)/libxsltclass.py > libxslt.py
+
+install-data-local:
+	$(mkinstalldirs) $(DESTDIR)$(pythondir)
+	@INSTALL@ -m 0644 libxslt.py $(DESTDIR)$(pythondir)
+	$(mkinstalldirs) $(DESTDIR)$(DOCS_DIR)
+	@(for doc in $(DOCS) ; \
+	   do @INSTALL@ -m 0644 $(srcdir)/$$doc $(DESTDIR)$(DOCS_DIR) ; done)
+
+GENERATE = generator.py
+API_DESC = $(top_srcdir)/doc/libxslt-api.xml $(srcdir)/libxslt-python-api.xml
+GENERATED= $(srcdir)/libxsltclass.py \
+           $(srcdir)/libxslt-export.c \
+	   $(srcdir)/libxslt-py.c \
+	   $(srcdir)/libxslt-py.h \
+	   $(srcdir)/libxsltclass.txt
+
+$(GENERATED): gen_prog
+
+gen_prog:  $(srcdir)/$(GENERATE) $(API_DESC)
+	cd $(srcdir) && $(PYTHON) $(GENERATE)
+	touch gen_prog
+
+$(libxsltmod_la_OBJECTS): $(GENERATED)
+
+else
+all: 
+endif
+tests test: all
+	cd tests && $(MAKE) tests
+
+CLEANFILES= $(GENERATED) *.o libxslt.so *.pyc libxslt.py gen_prog

Added: packages/libxslt/branches/upstream/1.1.16/python/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,697 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = python
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(pythondir)"
+pythonLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(python_LTLIBRARIES)
+ at WITH_PYTHON_TRUE@am__DEPENDENCIES_1 =  \
+ at WITH_PYTHON_TRUE@	$(top_builddir)/libxslt/libxslt.la \
+ at WITH_PYTHON_TRUE@	$(top_builddir)/libexslt/libexslt.la
+ at WITH_PYTHON_TRUE@libxsltmod_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am__libxsltmod_la_SOURCES_DIST = libxslt.c types.c libxslt-py.c
+ at WITH_PYTHON_TRUE@am_libxsltmod_la_OBJECTS = libxslt.lo types.lo \
+ at WITH_PYTHON_TRUE@	libxslt-py.lo
+libxsltmod_la_OBJECTS = $(am_libxsltmod_la_OBJECTS)
+ at WITH_PYTHON_TRUE@am_libxsltmod_la_rpath = -rpath $(pythondir)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libxsltmod_la_SOURCES)
+DIST_SOURCES = $(am__libxsltmod_la_SOURCES_DIST)
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-exec-recursive install-info-recursive \
+	install-recursive installcheck-recursive installdirs-recursive \
+	pdf-recursive ps-recursive uninstall-info-recursive \
+	uninstall-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+
+# Makefile for libxml2 python library
+AUTOMAKE_OPTIONS = 1.4 foreign
+SUBDIRS = . tests
+INCLUDES = \
+	-I$(PYTHON_INCLUDES) \
+	 $(LIBXML_CFLAGS) \
+	-I$(top_srcdir)/libxslt \
+	-I$(top_srcdir) \
+	-I../libexslt
+
+DOCS_DIR = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION)
+# libxsltclass.txt is generated
+DOCS = TODO
+EXTRA_DIST = \
+	libxslt.c		\
+	types.c			\
+	generator.py		\
+	libxml_wrap.h		\
+	libxslt_wrap.h		\
+	libxsl.py		\
+	libxslt-python-api.xml	\
+	$(DOCS)
+
+libxsltmod_la_LDFLAGS = -module -avoid-version -L$(top_builddir)/libxslt/.libs \
+                        -L$(top_builddir)/libexslt/.libs
+
+ at WITH_PYTHON_TRUE@mylibs = \
+ at WITH_PYTHON_TRUE@	$(top_builddir)/libxslt/libxslt.la \
+ at WITH_PYTHON_TRUE@	$(top_builddir)/libexslt/libexslt.la
+
+ at WITH_PYTHON_TRUE@python_LTLIBRARIES = libxsltmod.la
+ at WITH_PYTHON_TRUE@libxsltmod_la_SOURCES = libxslt.c types.c libxslt-py.c
+ at WITH_PYTHON_TRUE@libxsltmod_la_LIBADD = $(mylibs) 
+ at WITH_PYTHON_TRUE@GENERATE = generator.py
+ at WITH_PYTHON_TRUE@API_DESC = $(top_srcdir)/doc/libxslt-api.xml $(srcdir)/libxslt-python-api.xml
+ at WITH_PYTHON_TRUE@GENERATED = $(srcdir)/libxsltclass.py \
+ at WITH_PYTHON_TRUE@           $(srcdir)/libxslt-export.c \
+ at WITH_PYTHON_TRUE@	   $(srcdir)/libxslt-py.c \
+ at WITH_PYTHON_TRUE@	   $(srcdir)/libxslt-py.h \
+ at WITH_PYTHON_TRUE@	   $(srcdir)/libxsltclass.txt
+
+CLEANFILES = $(GENERATED) *.o libxslt.so *.pyc libxslt.py gen_prog
+all: all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  python/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  python/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-pythonLTLIBRARIES: $(python_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	test -z "$(pythondir)" || $(mkdir_p) "$(DESTDIR)$(pythondir)"
+	@list='$(python_LTLIBRARIES)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    f=$(am__strip_dir) \
+	    echo " $(LIBTOOL) --mode=install $(pythonLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pythondir)/$$f'"; \
+	    $(LIBTOOL) --mode=install $(pythonLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pythondir)/$$f"; \
+	  else :; fi; \
+	done
+
+uninstall-pythonLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@set -x; list='$(python_LTLIBRARIES)'; for p in $$list; do \
+	  p=$(am__strip_dir) \
+	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pythondir)/$$p'"; \
+	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pythondir)/$$p"; \
+	done
+
+clean-pythonLTLIBRARIES:
+	-test -z "$(python_LTLIBRARIES)" || rm -f $(python_LTLIBRARIES)
+	@list='$(python_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libxsltmod.la: $(libxsltmod_la_OBJECTS) $(libxsltmod_la_DEPENDENCIES) 
+	$(LINK) $(am_libxsltmod_la_rpath) $(libxsltmod_la_LDFLAGS) $(libxsltmod_la_OBJECTS) $(libxsltmod_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxslt-py.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxslt.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/types.Plo at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ at am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(mkdir_p) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+ at WITH_PYTHON_FALSE@all-local:
+all-am: Makefile $(LTLIBRARIES) all-local
+installdirs: installdirs-recursive
+installdirs-am:
+	for dir in "$(DESTDIR)$(pythondir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+ at WITH_PYTHON_FALSE@install-data-local:
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool clean-pythonLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-data-local install-pythonLTLIBRARIES
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-pythonLTLIBRARIES
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-local check \
+	check-am clean clean-generic clean-libtool \
+	clean-pythonLTLIBRARIES clean-recursive ctags ctags-recursive \
+	distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-recursive distclean-tags distdir \
+	dvi dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-data-local install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-pythonLTLIBRARIES install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic maintainer-clean-recursive \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+	tags tags-recursive uninstall uninstall-am uninstall-info-am \
+	uninstall-pythonLTLIBRARIES
+
+
+ at WITH_PYTHON_TRUE@all-local: libxslt.py
+
+ at WITH_PYTHON_TRUE@libxslt.py: $(srcdir)/libxsl.py $(srcdir)/libxsltclass.py
+ at WITH_PYTHON_TRUE@	cat $(srcdir)/libxsl.py $(srcdir)/libxsltclass.py > libxslt.py
+
+ at WITH_PYTHON_TRUE@install-data-local:
+ at WITH_PYTHON_TRUE@	$(mkinstalldirs) $(DESTDIR)$(pythondir)
+ at WITH_PYTHON_TRUE@	@INSTALL@ -m 0644 libxslt.py $(DESTDIR)$(pythondir)
+ at WITH_PYTHON_TRUE@	$(mkinstalldirs) $(DESTDIR)$(DOCS_DIR)
+ at WITH_PYTHON_TRUE@	@(for doc in $(DOCS) ; \
+ at WITH_PYTHON_TRUE@	   do @INSTALL@ -m 0644 $(srcdir)/$$doc $(DESTDIR)$(DOCS_DIR) ; done)
+
+ at WITH_PYTHON_TRUE@$(GENERATED): gen_prog
+
+ at WITH_PYTHON_TRUE@gen_prog:  $(srcdir)/$(GENERATE) $(API_DESC)
+ at WITH_PYTHON_TRUE@	cd $(srcdir) && $(PYTHON) $(GENERATE)
+ at WITH_PYTHON_TRUE@	touch gen_prog
+
+ at WITH_PYTHON_TRUE@$(libxsltmod_la_OBJECTS): $(GENERATED)
+
+ at WITH_PYTHON_FALSE@all: 
+tests test: all
+	cd tests && $(MAKE) tests
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/python/TODO
===================================================================

Added: packages/libxslt/branches/upstream/1.1.16/python/generator.py
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/generator.py	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/generator.py	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,968 @@
+#!/usr/bin/python -u
+#
+# generate python wrappers from the XML API description
+#
+
+functions = {}
+enums = {} # { enumType: { enumConstant: enumValue } }
+
+import string
+
+#######################################################################
+#
+#  That part if purely the API acquisition phase from the
+#  XML API description
+#
+#######################################################################
+import os
+import xmllib
+try:
+    import sgmlop
+except ImportError:
+    sgmlop = None # accelerator not available
+
+debug = 0
+
+if sgmlop:
+    class FastParser:
+        """sgmlop based XML parser.  this is typically 15x faster
+           than SlowParser..."""
+
+        def __init__(self, target):
+
+            # setup callbacks
+            self.finish_starttag = target.start
+            self.finish_endtag = target.end
+            self.handle_data = target.data
+
+            # activate parser
+            self.parser = sgmlop.XMLParser()
+            self.parser.register(self)
+            self.feed = self.parser.feed
+            self.entity = {
+                "amp": "&", "gt": ">", "lt": "<",
+                "apos": "'", "quot": '"'
+                }
+
+        def close(self):
+            try:
+                self.parser.close()
+            finally:
+                self.parser = self.feed = None # nuke circular reference
+
+        def handle_entityref(self, entity):
+            # <string> entity
+            try:
+                self.handle_data(self.entity[entity])
+            except KeyError:
+                self.handle_data("&%s;" % entity)
+
+else:
+    FastParser = None
+
+
+class SlowParser(xmllib.XMLParser):
+    """slow but safe standard parser, based on the XML parser in
+       Python's standard library."""
+
+    def __init__(self, target):
+        self.unknown_starttag = target.start
+        self.handle_data = target.data
+        self.unknown_endtag = target.end
+        xmllib.XMLParser.__init__(self)
+
+def getparser(target = None):
+    # get the fastest available parser, and attach it to an
+    # unmarshalling object.  return both objects.
+    if target == None:
+        target = docParser()
+    if FastParser:
+        return FastParser(target), target
+    return SlowParser(target), target
+
+class docParser:
+    def __init__(self):
+        self._methodname = None
+        self._data = []
+        self.in_function = 0
+
+    def close(self):
+        if debug:
+            print "close"
+
+    def getmethodname(self):
+        return self._methodname
+
+    def data(self, text):
+        if debug:
+            print "data %s" % text
+        self._data.append(text)
+
+    def start(self, tag, attrs):
+        if debug:
+            print "start %s, %s" % (tag, attrs)
+        if tag == 'function':
+            self._data = []
+            self.in_function = 1
+            self.function = None
+            self.function_args = []
+            self.function_descr = None
+            self.function_return = None
+            self.function_file = None
+            if attrs.has_key('name'):
+                self.function = attrs['name']
+            if attrs.has_key('file'):
+                self.function_file = attrs['file']
+        elif tag == 'info':
+            self._data = []
+        elif tag == 'arg':
+            if self.in_function == 1:
+                self.function_arg_name = None
+                self.function_arg_type = None
+                self.function_arg_info = None
+                if attrs.has_key('name'):
+                    self.function_arg_name = attrs['name']
+                if attrs.has_key('type'):
+                    self.function_arg_type = attrs['type']
+                if attrs.has_key('info'):
+                    self.function_arg_info = attrs['info']
+        elif tag == 'return':
+            if self.in_function == 1:
+                self.function_return_type = None
+                self.function_return_info = None
+                self.function_return_field = None
+                if attrs.has_key('type'):
+                    self.function_return_type = attrs['type']
+                if attrs.has_key('info'):
+                    self.function_return_info = attrs['info']
+                if attrs.has_key('field'):
+                    self.function_return_field = attrs['field']
+        elif tag == 'enum':
+            enum(attrs['type'],attrs['name'],attrs['value']) 
+        
+
+
+    def end(self, tag):
+        if debug:
+            print "end %s" % tag
+        if tag == 'function':
+            if self.function != None:
+                function(self.function, self.function_descr,
+                         self.function_return, self.function_args,
+                         self.function_file)
+                self.in_function = 0
+        elif tag == 'arg':
+            if self.in_function == 1:
+                self.function_args.append([self.function_arg_name,
+                                           self.function_arg_type,
+                                           self.function_arg_info])
+        elif tag == 'return':
+            if self.in_function == 1:
+                self.function_return = [self.function_return_type,
+                                        self.function_return_info,
+                                        self.function_return_field]
+        elif tag == 'info':
+            str = ''
+            for c in self._data:
+                str = str + c
+            if self.in_function == 1:
+                self.function_descr = str
+                
+                
+def function(name, desc, ret, args, file):
+    functions[name] = (desc, ret, args, file)
+
+def enum(type, name, value):
+    if not enums.has_key(type):
+        enums[type] = {}
+    enums[type][name] = value 
+
+#######################################################################
+#
+#  Some filtering rukes to drop functions/types which should not
+#  be exposed as-is on the Python interface
+#
+#######################################################################
+
+skipped_modules = {
+    'xmlmemory': None,
+    'DOCBparser': None,
+    'SAX': None,
+    'hash': None,
+    'list': None,
+    'threads': None,
+    'xpointer': None,
+    'transform': None,
+}
+skipped_types = {
+    'int *': "usually a return type",
+    'xmlSAXHandlerPtr': "not the proper interface for SAX",
+    'htmlSAXHandlerPtr': "not the proper interface for SAX",
+    'xmlRMutexPtr': "thread specific, skipped",
+    'xmlMutexPtr': "thread specific, skipped",
+    'xmlGlobalStatePtr': "thread specific, skipped",
+    'xmlListPtr': "internal representation not suitable for python",
+    'xmlBufferPtr': "internal representation not suitable for python",
+    'FILE *': None,
+}
+
+#######################################################################
+#
+#  Table of remapping to/from the python type or class to the C
+#  counterpart.
+#
+#######################################################################
+
+py_types = {
+    'void': (None, None, None, None, None),
+    'int':  ('i', None, "int", "int", "libxml_"),
+    'long':  ('i', None, "int", "int", "libxml_"),
+    'double':  ('d', None, "double", "double", "libxml_"),
+    'unsigned int':  ('i', None, "int", "int", "libxml_"),
+    'xmlChar':  ('c', None, "int", "int", "libxml_"),
+    'unsigned char *':  ('z', None, "charPtr", "char *", "libxml_"),
+    'char *':  ('z', None, "charPtr", "char *", "libxml_"),
+    'const char *':  ('z', None, "charPtrConst", "const char *", "libxml_"),
+    'xmlChar *':  ('z', None, "xmlCharPtr", "xmlChar *", "libxml_"),
+    'const xmlChar *':  ('z', None, "xmlCharPtrConst", "const xmlChar *", "libxml_"),
+    'xmlNodePtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'const xmlNodePtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'xmlNode *':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'const xmlNode *':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'xmlDtdPtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'const xmlDtdPtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'xmlDtd *':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'const xmlDtd *':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'xmlAttrPtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'const xmlAttrPtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'xmlAttr *':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'const xmlAttr *':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'xmlEntityPtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'const xmlEntityPtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'xmlEntity *':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'const xmlEntity *':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'xmlElementPtr':  ('O', "xmlElement", "xmlElementPtr", "xmlElementPtr", "libxml_"),
+    'const xmlElementPtr':  ('O', "xmlElement", "xmlElementPtr", "xmlElementPtr", "libxml_"),
+    'xmlElement *':  ('O', "xmlElement", "xmlElementPtr", "xmlElementPtr", "libxml_"),
+    'const xmlElement *':  ('O', "xmlElement", "xmlElementPtr", "xmlElementPtr", "libxml_"),
+    'xmlAttributePtr':  ('O', "xmlAttribute", "xmlAttributePtr", "xmlAttributePtr", "libxml_"),
+    'const xmlAttributePtr':  ('O', "xmlAttribute", "xmlAttributePtr", "xmlAttributePtr", "libxml_"),
+    'xmlAttribute *':  ('O', "xmlAttribute", "xmlAttributePtr", "xmlAttributePtr", "libxml_"),
+    'const xmlAttribute *':  ('O', "xmlAttribute", "xmlAttributePtr", "xmlAttributePtr", "libxml_"),
+    'xmlNsPtr':  ('O', "xmlNode", "xmlNsPtr", "xmlNsPtr", "libxml_"),
+    'const xmlNsPtr':  ('O', "xmlNode", "xmlNsPtr", "xmlNsPtr", "libxml_"),
+    'xmlNs *':  ('O', "xmlNode", "xmlNsPtr", "xmlNsPtr", "libxml_"),
+    'const xmlNs *':  ('O', "xmlNode", "xmlNsPtr", "xmlNsPtr", "libxml_"),
+    'xmlDocPtr':  ('O', "xmlNode", "xmlDocPtr", "xmlDocPtr", "libxml_"),
+    'const xmlDocPtr':  ('O', "xmlNode", "xmlDocPtr", "xmlDocPtr", "libxml_"),
+    'xmlDoc *':  ('O', "xmlNode", "xmlDocPtr", "xmlDocPtr", "libxml_"),
+    'const xmlDoc *':  ('O', "xmlNode", "xmlDocPtr", "xmlDocPtr", "libxml_"),
+    'htmlDocPtr':  ('O', "xmlNode", "xmlDocPtr", "xmlDocPtr", "libxml_"),
+    'const htmlDocPtr':  ('O', "xmlNode", "xmlDocPtr", "xmlDocPtr", "libxml_"),
+    'htmlDoc *':  ('O', "xmlNode", "xmlDocPtr", "xmlDocPtr", "libxml_"),
+    'const htmlDoc *':  ('O', "xmlNode", "xmlDocPtr", "xmlDocPtr", "libxml_"),
+    'htmlNodePtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'const htmlNodePtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'htmlNode *':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'const htmlNode *':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr", "libxml_"),
+    'xmlXPathContextPtr':  ('O', "xmlXPathContext", "xmlXPathContextPtr", "xmlXPathContextPtr", "libxml_"),
+    'xmlXPathParserContextPtr':  ('O', "xmlXPathParserContext", "xmlXPathParserContextPtr", "xmlXPathParserContextPtr", "libxml_"),
+    'xmlParserCtxtPtr': ('O', "parserCtxt", "xmlParserCtxtPtr", "xmlParserCtxtPtr", "libxml_"),
+    'xmlParserCtxt *': ('O', "parserCtxt", "xmlParserCtxtPtr", "xmlParserCtxtPtr", "libxml_"),
+    'htmlParserCtxtPtr': ('O', "parserCtxt", "xmlParserCtxtPtr", "xmlParserCtxtPtr", "libxml_"),
+    'htmlParserCtxt *': ('O', "parserCtxt", "xmlParserCtxtPtr", "xmlParserCtxtPtr", "libxml_"),
+    'xmlCatalogPtr': ('O', "catalog", "xmlCatalogPtr", "xmlCatalogPtr"),
+    'FILE *': ('O', "File", "FILEPtr", "FILE *", "libxml_"),
+    'xsltTransformContextPtr':  ('O', "transformCtxt", "xsltTransformContextPtr", "xsltTransformContextPtr", "libxslt_"),
+    'xsltTransformContext *':  ('O', "transformCtxt", "xsltTransformContextPtr", "xsltTransformContextPtr", "libxslt_"),
+    'xsltStylePreCompPtr':  ('O', "compiledStyle", "xsltStylePreCompPtr", "xsltStylePreCompPtr", "libxslt_"),
+    'xsltStylePreComp *':  ('O', "compiledStyle", "xsltStylePreCompPtr", "xsltStylePreCompPtr", "libxslt_"),
+    'xsltStylesheetPtr':  ('O', "stylesheet", "xsltStylesheetPtr", "xsltStylesheetPtr", "libxslt_"),
+    'xsltStylesheet *':  ('O', "stylesheet", "xsltStylesheetPtr", "xsltStylesheetPtr", "libxslt_"),
+    'xmlXPathContext *':  ('O', "xpathContext", "xmlXPathContextPtr", "xmlXPathContextPtr", "libxslt_"),
+}
+
+py_return_types = {
+    'xmlXPathObjectPtr':  ('O', "foo", "xmlXPathObjectPtr", "xmlXPathObjectPtr", "libxml_"),
+}
+
+unknown_types = {}
+
+#######################################################################
+#
+#  This part writes the C <-> Python stubs libxslt-py.[ch] and
+#  the table libxslt-export.c to add when registrering the Python module
+#
+#######################################################################
+
+def skip_function(name):
+    if name[0:12] == "xmlXPathWrap":
+        return 1
+    if name == "xsltMatchPattern":
+        return 1
+#    if name[0:11] == "xmlXPathNew":
+#        return 1
+    return 0
+
+def print_function_wrapper(name, output, export, include):
+    global py_types
+    global unknown_types
+    global functions
+    global skipped_modules
+
+    try:
+        (desc, ret, args, file) = functions[name]
+    except:
+        print "failed to get function %s infos"
+        return
+
+    if skipped_modules.has_key(file):
+        return 0
+    if skip_function(name) == 1:
+        return 0
+
+    c_call = "";
+    format=""
+    format_args=""
+    c_args=""
+    c_return=""
+    c_convert=""
+    for arg in args:
+        # This should be correct
+        if arg[1][0:6] == "const ":
+            arg[1] = arg[1][6:]
+        c_args = c_args + "    %s %s;\n" % (arg[1], arg[0])
+        if py_types.has_key(arg[1]):
+            (f, t, n, c, p) = py_types[arg[1]]
+            if f != None:
+                format = format + f
+            if t != None:
+                format_args = format_args + ", &pyobj_%s" % (arg[0])
+                c_args = c_args + "    PyObject *pyobj_%s;\n" % (arg[0])
+                c_convert = c_convert + \
+                   "    %s = (%s) Py%s_Get(pyobj_%s);\n" % (arg[0],
+                   arg[1], t, arg[0]);
+            else:
+                format_args = format_args + ", &%s" % (arg[0])
+            if c_call != "":
+                c_call = c_call + ", ";
+            c_call = c_call + "%s" % (arg[0])
+        else:
+            if skipped_types.has_key(arg[1]):
+                return 0
+            if unknown_types.has_key(arg[1]):
+                lst = unknown_types[arg[1]]
+                lst.append(name)
+            else:
+                unknown_types[arg[1]] = [name]
+            return -1
+    if format != "":
+        format = format + ":%s" % (name)
+
+    if ret[0] == 'void':
+        if file == "python_accessor":
+	    if args[1][1] == "char *" or args[1][1] == "xmlChar *":
+		c_call = "\n    if (%s->%s != NULL) xmlFree(%s->%s);\n" % (
+		                 args[0][0], args[1][0], args[0][0], args[1][0])
+		c_call = c_call + "    %s->%s = xmlStrdup((const xmlChar *)%s);\n" % (args[0][0],
+		                 args[1][0], args[1][0])
+	    else:
+		c_call = "\n    %s->%s = %s;\n" % (args[0][0], args[1][0],
+						   args[1][0])
+        else:
+            c_call = "\n    %s(%s);\n" % (name, c_call);
+        ret_convert = "    Py_INCREF(Py_None);\n    return(Py_None);\n"
+    elif py_types.has_key(ret[0]):
+        (f, t, n, c, p) = py_types[ret[0]]
+        c_return = "    %s c_retval;\n" % (ret[0])
+        if file == "python_accessor" and ret[2] != None:
+            c_call = "\n    c_retval = %s->%s;\n" % (args[0][0], ret[2])
+        else:
+            c_call = "\n    c_retval = %s(%s);\n" % (name, c_call);
+        ret_convert = "    py_retval = %s%sWrap((%s) c_retval);\n" % (p,n,c)
+        ret_convert = ret_convert + "    return(py_retval);\n"
+    elif py_return_types.has_key(ret[0]):
+        (f, t, n, c, p) = py_return_types[ret[0]]
+        c_return = "    %s c_retval;\n" % (ret[0])
+        if file == "python_accessor" and ret[2] != None:
+            c_call = "\n    c_retval = %s->%s;\n" % (args[0][0], ret[2])
+        else:
+            c_call = "\n    c_retval = %s(%s);\n" % (name, c_call);
+        ret_convert = "    py_retval = %s%sWrap((%s) c_retval);\n" % (p,n,c)
+        ret_convert = ret_convert + "    return(py_retval);\n"
+    else:
+        if skipped_types.has_key(ret[0]):
+            return 0
+        if unknown_types.has_key(ret[0]):
+            lst = unknown_types[ret[0]]
+            lst.append(name)
+        else:
+            unknown_types[ret[0]] = [name]
+        return -1
+
+    include.write("PyObject * ")
+    include.write("libxslt_%s(PyObject *self, PyObject *args);\n" % (name))
+
+    export.write("    { (char *)\"%s\", libxslt_%s, METH_VARARGS, NULL },\n" % (name, name))
+
+    if file == "python":
+        # Those have been manually generated
+        return 1
+    if file == "python_accessor" and ret[0] != "void" and ret[2] == None:
+        # Those have been manually generated
+        return 1
+
+    output.write("PyObject *\n")
+    output.write("libxslt_%s(PyObject *self ATTRIBUTE_UNUSED," % (name))
+    output.write(" PyObject *args")
+    if format == "":
+	output.write(" ATTRIBUTE_UNUSED")
+    output.write(") {\n")
+    if ret[0] != 'void':
+        output.write("    PyObject *py_retval;\n")
+    if c_return != "":
+        output.write(c_return)
+    if c_args != "":
+        output.write(c_args)
+    if format != "":
+        output.write("\n    if (!PyArg_ParseTuple(args, (char *)\"%s\"%s))\n" %
+                     (format, format_args))
+        output.write("        return(NULL);\n")
+    if c_convert != "":
+        output.write(c_convert)
+                                                              
+    output.write(c_call)
+    output.write(ret_convert)
+    output.write("}\n\n")
+    return 1
+
+def buildStubs():
+    global py_types
+    global py_return_types
+    global unknown_types
+
+    try:
+	f = open("libxslt-api.xml")
+	data = f.read()
+	(parser, target)  = getparser()
+	parser.feed(data)
+	parser.close()
+    except IOError, msg:
+	try:
+	    f = open("../doc/libxslt-api.xml")
+	    data = f.read()
+	    (parser, target)  = getparser()
+	    parser.feed(data)
+	    parser.close()
+	except IOError, msg:
+	    print "../doc/libxslt-api.xml", ":", msg
+
+    n = len(functions.keys())
+    print "Found %d functions in libxslt-api.xml" % (n)
+
+    py_types['pythonObject'] = ('O', "pythonObject", "pythonObject",
+                                "pythonObject", "libxml_")
+    try:
+	f = open("libxslt-python-api.xml")
+	data = f.read()
+	(parser, target)  = getparser()
+	parser.feed(data)
+	parser.close()
+    except IOError, msg:
+	print "libxslt-python-api.xml", ":", msg
+
+
+    print "Found %d functions in libxslt-python-api.xml" % (
+	  len(functions.keys()) - n)
+    nb_wrap = 0
+    failed = 0
+    skipped = 0
+
+    include = open("libxslt-py.h", "w")
+    include.write("/* Generated */\n\n")
+    export = open("libxslt-export.c", "w")
+    export.write("/* Generated */\n\n")
+    wrapper = open("libxslt-py.c", "w")
+    wrapper.write("/* Generated */\n\n")
+#    wrapper.write("#include \"config.h\"\n")
+    wrapper.write("#include <libxslt/xsltconfig.h>\n")
+    wrapper.write("#include \"libxslt_wrap.h\"\n")
+    wrapper.write("#include \"libxslt-py.h\"\n\n")
+    for function in functions.keys():
+	ret = print_function_wrapper(function, wrapper, export, include)
+	if ret < 0:
+	    failed = failed + 1
+	    del functions[function]
+	if ret == 0:
+	    skipped = skipped + 1
+	    del functions[function]
+	if ret == 1:
+	    nb_wrap = nb_wrap + 1
+    include.close()
+    export.close()
+    wrapper.close()
+
+    print "Generated %d wrapper functions, %d failed, %d skipped\n" % (nb_wrap,
+							      failed, skipped);
+    print "Missing type converters:"
+    for type in unknown_types.keys():
+	print "%s:%d " % (type, len(unknown_types[type])),
+    print
+
+#######################################################################
+#
+#  This part writes part of the Python front-end classes based on
+#  mapping rules between types and classes and also based on function
+#  renaming to get consistent function names at the Python level
+#
+#######################################################################
+
+#
+# The type automatically remapped to generated classes
+#
+libxml2_classes_type = {
+    "xmlNodePtr": ("._o", "xmlNode(_obj=%s)", "xmlNode"),
+    "xmlNode *": ("._o", "xmlNode(_obj=%s)", "xmlNode"),
+    "xmlDocPtr": ("._o", "xmlDoc(_obj=%s)", "xmlDoc"),
+    "xmlDocPtr *": ("._o", "xmlDoc(_obj=%s)", "xmlDoc"),
+    "htmlDocPtr": ("._o", "xmlDoc(_obj=%s)", "xmlDoc"),
+    "htmlxmlDocPtr *": ("._o", "xmlDoc(_obj=%s)", "xmlDoc"),
+    "xmlAttrPtr": ("._o", "xmlAttr(_obj=%s)", "xmlAttr"),
+    "xmlAttr *": ("._o", "xmlAttr(_obj=%s)", "xmlAttr"),
+    "xmlNsPtr": ("._o", "xmlNs(_obj=%s)", "xmlNs"),
+    "xmlNs *": ("._o", "xmlNs(_obj=%s)", "xmlNs"),
+    "xmlDtdPtr": ("._o", "xmlDtd(_obj=%s)", "xmlDtd"),
+    "xmlDtd *": ("._o", "xmlDtd(_obj=%s)", "xmlDtd"),
+    "xmlEntityPtr": ("._o", "xmlEntity(_obj=%s)", "xmlEntity"),
+    "xmlEntity *": ("._o", "xmlEntity(_obj=%s)", "xmlEntity"),
+    "xmlElementPtr": ("._o", "xmlElement(_obj=%s)", "xmlElement"),
+    "xmlElement *": ("._o", "xmlElement(_obj=%s)", "xmlElement"),
+    "xmlAttributePtr": ("._o", "xmlAttribute(_obj=%s)", "xmlAttribute"),
+    "xmlAttribute *": ("._o", "xmlAttribute(_obj=%s)", "xmlAttribute"),
+    "xmlParserCtxtPtr": ("._o", "parserCtxt(_obj=%s)", "parserCtxt"),
+    "xmlParserCtxt *": ("._o", "parserCtxt(_obj=%s)", "parserCtxt"),
+    "xmlCatalogPtr": ("._o", "catalog(_obj=%s)", "catalog"),
+}
+
+classes_type = {
+    "xsltTransformContextPtr": ("._o", "transformCtxt(_obj=%s)", "transformCtxt"),
+    "xsltTransformContext *": ("._o", "transformCtxt(_obj=%s)", "transformCtxt"),
+    "xsltStylesheetPtr": ("._o", "stylesheet(_obj=%s)", "stylesheet"),
+    "xsltStylesheet *": ("._o", "stylesheet(_obj=%s)", "stylesheet"),
+    "xmlXPathContextPtr": ("._o", "xpathContext(_obj=%s)", "xpathContext"),
+    "xmlXPathContext *": ("._o", "xpathContext(_obj=%s)", "xpathContext"),
+    "xmlXPathParserContextPtr": ("._o", "xpathParserContext(_obj=%s)", "xpathParserContext"),
+    "xmlXPathParserContext *": ("._o", "xpathParserContext(_obj=%s)", "xpathParserContext"),
+}
+
+converter_type = {
+    "xmlXPathObjectPtr": "libxml2.xpathObjectRet(%s)",
+}
+
+primary_classes = ["xpathParserContext", "xpathContext", "transformCtxt", "stylesheet"]
+
+classes_ancestor = {
+    "xpathContext" : "libxml2.xpathContext",
+    "xpathParserContext" : "libxml2.xpathParserContext",
+}
+classes_destructors = {
+    "xpathContext" : "pass"
+}
+
+function_classes = {}
+ctypes = []
+classes_list = []
+
+
+def nameFixup(name, classe, type, file):
+    listname = classe + "List"
+    ll = len(listname)
+    l = len(classe)
+    if name[0:l] == listname:
+        func = name[l:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:12] == "xmlParserGet" and file == "python_accessor":
+        func = name[12:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:12] == "xmlParserSet" and file == "python_accessor":
+        func = name[12:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:10] == "xmlNodeGet" and file == "python_accessor":
+        func = name[10:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:18] == "xsltXPathParserGet" and file == "python_accessor":
+        func = name[18:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:12] == "xsltXPathGet" and file == "python_accessor":
+        func = name[12:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:16] == "xsltTransformGet" and file == "python_accessor":
+        func = name[16:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:16] == "xsltTransformSet" and file == "python_accessor":
+        func = name[13:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:17] == "xsltStylesheetGet" and file == "python_accessor":
+        func = name[17:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:17] == "xsltStylesheetSet" and file == "python_accessor":
+        func = name[14:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:l] == classe:
+        func = name[l:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:7] == "libxml_":
+        func = name[7:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:8] == "libxslt_":
+        func = name[8:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:6] == "xmlGet":
+        func = name[6:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:3] == "xml":
+        func = name[3:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:7] == "xsltGet":
+        func = name[7:]
+        func = string.lower(func[0:1]) + func[1:]
+    elif name[0:4] == "xslt":
+        func = name[4:]
+        func = string.lower(func[0:1]) + func[1:]
+    else:
+        func = name
+    if func[0:5] == "xPath":
+        func = "xpath" + func[5:]
+    elif func[0:4] == "xPtr":
+        func = "xpointer" + func[4:]
+    elif func[0:8] == "xInclude":
+        func = "xinclude" + func[8:]
+    elif func[0:2] == "iD":
+        func = "ID" + func[2:]
+    elif func[0:3] == "uRI":
+        func = "URI" + func[3:]
+    elif func[0:4] == "uTF8":
+        func = "UTF8" + func[4:]
+    return func
+
+def functionCompare(info1, info2):
+    (index1, func1, name1, ret1, args1, file1) = info1
+    (index2, func2, name2, ret2, args2, file2) = info2
+    if file1 == file2:
+        if func1 < func2:
+            return -1
+        if func1 > func2:
+            return 1
+    if file1 == "python_accessor":
+        return -1
+    if file2 == "python_accessor":
+        return 1
+    if file1 < file2:
+        return -1
+    if file1 > file2:
+        return 1
+    return 0
+
+def writeDoc(name, args, indent, output):
+     if functions[name][0] == None or functions[name][0] == "":
+         return
+     val = functions[name][0]
+     val = string.replace(val, "NULL", "None");
+     output.write(indent)
+     output.write('"""')
+     while len(val) > 60:
+         str = val[0:60]
+         i = string.rfind(str, " ");
+         if i < 0:
+             i = 60
+         str = val[0:i]
+         val = val[i:]
+         output.write(str)
+         output.write('\n  ');
+         output.write(indent)
+     output.write(val);
+     output.write('"""\n')
+
+def buildWrappers():
+    global ctypes
+    global py_types
+    global py_return_types
+    global unknown_types
+    global functions
+    global function_classes
+    global libxml2_classes_type
+    global classes_type
+    global classes_list
+    global converter_type
+    global primary_classes
+    global converter_type
+    global classes_ancestor
+    global converter_type
+    global primary_classes
+    global classes_ancestor
+    global classes_destructors
+
+    function_classes["None"] = []
+    for type in classes_type.keys():
+	function_classes[classes_type[type][2]] = []
+	
+    #
+    # Build the list of C types to look for ordered to start with
+    # primary classes
+    #
+    ctypes_processed = {}
+    classes_processed = {}
+    for classe in primary_classes:
+	classes_list.append(classe)
+	classes_processed[classe] = ()
+	for type in classes_type.keys():
+	    tinfo = classes_type[type]
+	    if tinfo[2] == classe:
+		ctypes.append(type)
+		ctypes_processed[type] = ()
+    for type in classes_type.keys():
+	if ctypes_processed.has_key(type):
+	    continue
+	tinfo = classes_type[type]
+	if not classes_processed.has_key(tinfo[2]):
+	    classes_list.append(tinfo[2])
+	    classes_processed[tinfo[2]] = ()
+	    
+	ctypes.append(type)
+	ctypes_processed[type] = ()
+
+    for name in functions.keys():
+	found = 0;
+	(desc, ret, args, file) = functions[name]
+	for type in ctypes:
+	    classe = classes_type[type][2]
+
+	    if name[0:4] == "xslt" and len(args) >= 1 and args[0][1] == type:
+		found = 1
+		func = nameFixup(name, classe, type, file)
+		info = (0, func, name, ret, args, file)
+		function_classes[classe].append(info)
+	    elif name[0:4] == "xslt" and len(args) >= 2 and args[1][1] == type:
+		found = 1
+		func = nameFixup(name, classe, type, file)
+		info = (1, func, name, ret, args, file)
+		function_classes[classe].append(info)
+	    elif name[0:4] == "xslt" and len(args) >= 3 and args[2][1] == type:
+		found = 1
+		func = nameFixup(name, classe, type, file)
+		info = (2, func, name, ret, args, file)
+		function_classes[classe].append(info)
+	if found == 1:
+	    continue
+	if name[0:8] == "xmlXPath":
+	    continue
+	if name[0:6] == "xmlStr":
+	    continue
+	if name[0:10] == "xmlCharStr":
+	    continue
+	func = nameFixup(name, "None", file, file)
+	info = (0, func, name, ret, args, file)
+	function_classes['None'].append(info)
+
+    classes = open("libxsltclass.py", "w")
+    txt = open("libxsltclass.txt", "w")
+    txt.write("          Generated Classes for libxslt-python\n\n")
+
+    txt.write("#\n# Global functions of the module\n#\n\n")
+    if function_classes.has_key("None"):
+	flist = function_classes["None"]
+	flist.sort(functionCompare)
+	oldfile = ""
+	for info in flist:
+	    (index, func, name, ret, args, file) = info
+	    if file != oldfile:
+		classes.write("#\n# Functions from module %s\n#\n\n" % file)
+		txt.write("\n# functions from module %s\n" % file)
+		oldfile = file
+	    classes.write("def %s(" % func)
+	    txt.write("%s()\n" % func);
+	    n = 0
+	    for arg in args:
+		if n != 0:
+		    classes.write(", ")
+		classes.write("%s" % arg[0])
+		n = n + 1
+	    classes.write("):\n")
+	    writeDoc(name, args, '    ', classes);
+
+	    for arg in args:
+		if classes_type.has_key(arg[1]):
+		    classes.write("    if %s == None: %s__o = None\n" %
+				  (arg[0], arg[0]))
+		    classes.write("    else: %s__o = %s%s\n" %
+				  (arg[0], arg[0], classes_type[arg[1]][0]))
+		elif libxml2_classes_type.has_key(arg[1]):
+		    classes.write("    if %s == None: %s__o = None\n" %
+				  (arg[0], arg[0]))
+		    classes.write("    else: %s__o = %s%s\n" %
+				  (arg[0], arg[0], libxml2_classes_type[arg[1]][0]))
+	    if ret[0] != "void":
+		classes.write("    ret = ");
+	    else:
+		classes.write("    ");
+	    classes.write("libxsltmod.%s(" % name)
+	    n = 0
+	    for arg in args:
+		if n != 0:
+		    classes.write(", ");
+		classes.write("%s" % arg[0])
+		if classes_type.has_key(arg[1]):
+		    classes.write("__o");
+		if libxml2_classes_type.has_key(arg[1]):
+		    classes.write("__o");
+		n = n + 1
+	    classes.write(")\n");
+	    if ret[0] != "void":
+		if classes_type.has_key(ret[0]):
+		    classes.write("    if ret == None: return None\n");
+		    classes.write("    return ");
+		    classes.write(classes_type[ret[0]][1] % ("ret"));
+		    classes.write("\n");
+		elif libxml2_classes_type.has_key(ret[0]):
+		    classes.write("    if ret == None: return None\n");
+		    classes.write("    return libxml2.");
+		    classes.write(libxml2_classes_type[ret[0]][1] % ("ret"));
+		    classes.write("\n");
+		else:
+		    classes.write("    return ret\n");
+	    classes.write("\n");
+
+    txt.write("\n\n#\n# Set of classes of the module\n#\n\n")
+    for classname in classes_list:
+	if classname == "None":
+	    pass
+	else:
+	    if classes_ancestor.has_key(classname):
+		txt.write("\n\nClass %s(%s)\n" % (classname,
+			  classes_ancestor[classname]))
+		classes.write("class %s(%s):\n" % (classname,
+			      classes_ancestor[classname]))
+		classes.write("    def __init__(self, _obj=None):\n")
+		classes.write("        self._o = None\n")
+		classes.write("        %s.__init__(self, _obj=_obj)\n\n" % (
+			      classes_ancestor[classname]))
+		if classes_ancestor[classname] == "xmlCore" or \
+		   classes_ancestor[classname] == "xmlNode":
+		    classes.write("    def __repr__(self):\n")
+		    format = "%s:%%s" % (classname)
+		    classes.write("        return \"%s\" %% (self.name)\n\n" % (
+				  format))
+	    else:
+		txt.write("Class %s()\n" % (classname))
+		classes.write("class %s:\n" % (classname))
+		classes.write("    def __init__(self, _obj=None):\n")
+		classes.write("        if _obj != None:self._o = _obj;return\n")
+		classes.write("        self._o = None\n\n");
+	    if classes_destructors.has_key(classname):
+		classes.write("    def __del__(self):\n")
+		if classes_destructors[classname] == "pass":
+		    classes.write("        pass\n")
+		else:
+		    classes.write("        if self._o != None:\n")
+		    classes.write("            libxsltmod.%s(self._o)\n" %
+				  classes_destructors[classname]);
+		    classes.write("        self._o = None\n\n");
+	    flist = function_classes[classname]
+	    flist.sort(functionCompare)
+	    oldfile = ""
+	    for info in flist:
+		(index, func, name, ret, args, file) = info
+		if file != oldfile:
+		    if file == "python_accessor":
+			classes.write("    # accessors for %s\n" % (classname))
+			txt.write("    # accessors\n")
+		    else:
+			classes.write("    #\n")
+			classes.write("    # %s functions from module %s\n" % (
+				      classname, file))
+			txt.write("\n    # functions from module %s\n" % file)
+			classes.write("    #\n\n")
+		oldfile = file
+		classes.write("    def %s(self" % func)
+		txt.write("    %s()\n" % func);
+		n = 0
+		for arg in args:
+		    if n != index:
+			classes.write(", %s" % arg[0])
+		    n = n + 1
+		classes.write("):\n")
+		writeDoc(name, args, '        ', classes);
+		n = 0
+		for arg in args:
+		    if classes_type.has_key(arg[1]):
+			if n != index:
+			    classes.write("        if %s == None: %s__o = None\n" %
+					  (arg[0], arg[0]))
+			    classes.write("        else: %s__o = %s%s\n" %
+					  (arg[0], arg[0], classes_type[arg[1]][0]))
+		    elif libxml2_classes_type.has_key(arg[1]):
+			classes.write("        if %s == None: %s__o = None\n" %
+				      (arg[0], arg[0]))
+			classes.write("        else: %s__o = %s%s\n" %
+				      (arg[0], arg[0],
+				       libxml2_classes_type[arg[1]][0]))
+		    n = n + 1
+		if ret[0] != "void":
+		    classes.write("        ret = ");
+		else:
+		    classes.write("        ");
+		classes.write("libxsltmod.%s(" % name)
+		n = 0
+		for arg in args:
+		    if n != 0:
+			classes.write(", ");
+		    if n != index:
+			classes.write("%s" % arg[0])
+			if classes_type.has_key(arg[1]):
+			    classes.write("__o");
+			elif libxml2_classes_type.has_key(arg[1]):
+			    classes.write("__o");
+		    else:
+			classes.write("self");
+			if classes_type.has_key(arg[1]):
+			    classes.write(classes_type[arg[1]][0])
+			elif libxml2_classes_type.has_key(arg[1]):
+			    classes.write(libxml2_classes_type[arg[1]][0])
+		    n = n + 1
+		classes.write(")\n");
+		if ret[0] != "void":
+		    if classes_type.has_key(ret[0]):
+			classes.write("        if ret == None: return None\n");
+			classes.write("        return ");
+			classes.write(classes_type[ret[0]][1] % ("ret"));
+			classes.write("\n");
+		    elif libxml2_classes_type.has_key(ret[0]):
+			classes.write("        if ret == None: return None\n");
+			classes.write("        return libxml2.");
+			classes.write(libxml2_classes_type[ret[0]][1] % ("ret"));
+			classes.write("\n");
+		    elif converter_type.has_key(ret[0]):
+			classes.write("        if ret == None: return None\n");
+			classes.write("        return ");
+			classes.write(converter_type[ret[0]] % ("ret"));
+			classes.write("\n");
+		    else:
+			classes.write("        return ret\n");
+		classes.write("\n");
+
+    #
+    # Generate enum constants
+    #
+    for type,enum in enums.items():
+        classes.write("# %s\n" % type)
+        items = enum.items()
+        items.sort(lambda i1,i2: cmp(long(i1[1]),long(i2[1])))
+        for name,value in items:
+            classes.write("%s = %s\n" % (name,value))
+        classes.write("\n"); 
+
+    txt.close()
+    classes.close()
+
+buildStubs()
+buildWrappers()


Property changes on: packages/libxslt/branches/upstream/1.1.16/python/generator.py
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/python/libxml_wrap.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/libxml_wrap.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/libxml_wrap.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,86 @@
+#include <Python.h>
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
+#include <libxml/catalog.h>
+#include <libxml/threads.h>
+#include <libxml/nanoftp.h>
+#include <libxml/nanohttp.h>
+#include <libxml/uri.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/debugXML.h>
+#include <libxml/HTMLparser.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/xinclude.h>
+#include <libxml/xpointer.h>
+
+#define PyxmlNode_Get(v) (((v) == Py_None) ? NULL : \
+	(((PyxmlNode_Object *)(v))->obj))
+
+typedef struct {
+    PyObject_HEAD
+    xmlNodePtr obj;
+} PyxmlNode_Object;
+
+#define PyxmlXPathContext_Get(v) (((v) == Py_None) ? NULL : \
+	(((PyxmlXPathContext_Object *)(v))->obj))
+
+typedef struct {
+    PyObject_HEAD
+    xmlXPathContextPtr obj;
+} PyxmlXPathContext_Object;
+
+#define PyxmlXPathParserContext_Get(v) (((v) == Py_None) ? NULL : \
+	(((PyxmlXPathParserContext_Object *)(v))->obj))
+
+typedef struct {
+    PyObject_HEAD
+    xmlXPathParserContextPtr obj;
+} PyxmlXPathParserContext_Object;
+
+#define PyparserCtxt_Get(v) (((v) == Py_None) ? NULL : \
+        (((PyparserCtxt_Object *)(v))->obj))
+
+typedef struct {
+    PyObject_HEAD
+    xmlParserCtxtPtr obj;
+} PyparserCtxt_Object;
+
+#define Pycatalog_Get(v) (((v) == Py_None) ? NULL : \
+        (((Pycatalog_Object *)(v))->obj))
+
+typedef struct {
+    PyObject_HEAD
+    xmlCatalogPtr obj;
+} Pycatalog_Object;
+
+#define PyFile_Get(v) (((v) == Py_None) ? NULL : \
+	(PyFile_Check(v) ? (PyFile_AsFile(v)) : stdout))
+
+PyObject * libxml_intWrap(int val);
+PyObject * libxml_longWrap(long val);
+PyObject * libxml_xmlCharPtrWrap(xmlChar *str);
+PyObject * libxml_constxmlCharPtrWrap(const xmlChar *str);
+PyObject * libxml_charPtrWrap(char *str);
+PyObject * libxml_constcharPtrWrap(const char *str);
+PyObject * libxml_charPtrConstWrap(const char *str);
+PyObject * libxml_xmlCharPtrConstWrap(const xmlChar *str);
+PyObject * libxml_xmlDocPtrWrap(xmlDocPtr doc);
+PyObject * libxml_xmlNodePtrWrap(xmlNodePtr node);
+PyObject * libxml_xmlAttrPtrWrap(xmlAttrPtr attr);
+PyObject * libxml_xmlNsPtrWrap(xmlNsPtr ns);
+PyObject * libxml_xmlAttributePtrWrap(xmlAttributePtr ns);
+PyObject * libxml_xmlElementPtrWrap(xmlElementPtr ns);
+PyObject * libxml_doubleWrap(double val);
+PyObject * libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt);
+PyObject * libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt);
+PyObject * libxml_xmlXPathParserContextPtrWrap(xmlXPathParserContextPtr ctxt);
+PyObject * libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj);
+PyObject * libxml_xmlCatalogPtrWrap(xmlCatalogPtr obj);
+PyObject * libxml_xmlURIPtrWrap(xmlURIPtr uri);
+PyObject * libxml_xmlOutputBufferPtrWrap(xmlOutputBufferPtr buffer);
+PyObject * libxml_xmlParserInputBufferPtrWrap(xmlParserInputBufferPtr buffer);
+PyObject * libxml_xmlRegexpPtrWrap(xmlRegexpPtr regexp);
+
+xmlXPathObjectPtr libxml_xmlXPathObjectPtrConvert(PyObject * obj);

Added: packages/libxslt/branches/upstream/1.1.16/python/libxsl.py
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/libxsl.py	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/libxsl.py	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,98 @@
+#
+# Both libxml2mod and libxsltmod have a dependancy on libxml2.so
+# and they should share the same module, try to convince the python
+# loader to work in that mode if feasible
+#
+import sys
+if not hasattr(sys,'getdlopenflags'):
+    import libxml2mod
+    import libxsltmod
+    import libxml2
+else:
+    try:
+        from dl import RTLD_GLOBAL, RTLD_NOW
+    except ImportError:
+        RTLD_GLOBAL = -1
+        RTLD_NOW = -1
+        try:
+            import os
+            osname = os.uname()[0]
+            if osname == 'Linux' or osname == 'SunOS':
+                RTLD_GLOBAL = 0x00100
+                RTLD_NOW = 0x00002
+	    elif osname == 'Darwin':
+	        RTLD_GLOBAL = 0x8
+		RTLD_NOW = 0x2
+            #
+            # is there a better method ?
+            #
+#            else:
+#                print "libxslt could not guess RTLD_GLOBAL and RTLD_NOW " + \
+#                      "on this platform: %s" % (osname)
+        except:
+	     pass
+#            print "libxslt could not guess RTLD_GLOBAL and RTLD_NOW " + \
+#                  "on this platform: %s" % (osname)
+    except:
+	 RTLD_GLOBAL = -1
+	 RTLD_NOW = -1
+
+    if RTLD_GLOBAL != -1 and RTLD_NOW != -1:
+        try:
+            flags = sys.getdlopenflags() 
+            sys.setdlopenflags(RTLD_GLOBAL | RTLD_NOW)
+            try:
+                import libxml2mod
+                import libxsltmod
+                import libxml2
+            finally:
+                sys.setdlopenflags(flags)
+        except:
+            import libxml2mod
+            import libxsltmod
+            import libxml2
+    else:
+        import libxml2mod
+        import libxsltmod
+        import libxml2
+
+class extensionModule:
+    def _styleInit(self, style, URI):
+        return self.styleInit(stylesheet(_obj=style), URI)
+
+    def _styleShutdown(self, style, URI, data):
+        return self.styleShutdown(stylesheet(_obj=style), URI, data)
+
+    def _ctxtInit(self, ctxt, URI):
+        return self.ctxtInit(transformCtxt(_obj=ctxt), URI)
+
+    def _ctxtShutdown(self, ctxt, URI, data):
+        return self.ctxtShutdown(transformCtxt(_obj=ctxt), URI, data)
+
+    def styleInit(self, style, URI):
+        """Callback function when used in a newly compiled stylesheet,
+	   the return value is passed in subsequent calls"""
+	pass
+
+    def styleShutdown(self, style, URI, data):
+        """Callback function when a stylesheet using it is destroyed"""
+	pass
+
+    def ctxtInit(self, ctxt, URI):
+        """Callback function when used in a new transformation process,
+	   the return value is passed in subsequent calls"""
+	pass
+
+    def ctxtShutdown(self, ctxt, URI, data):
+        """Callback function when a transformation using it finishes"""
+	pass
+
+def cleanup():
+    """Cleanup all libxslt and libxml2 memory allocated"""
+    libxsltmod.xsltPythonCleanup()
+    libxml2.cleanupParser()
+
+#
+# Everything below this point is automatically generated
+#
+

Added: packages/libxslt/branches/upstream/1.1.16/python/libxslt-py.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/libxslt-py.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/libxslt-py.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1953 @@
+/* Generated */
+
+#include <libxslt/xsltconfig.h>
+#include "libxslt_wrap.h"
+#include "libxslt-py.h"
+
+PyObject *
+libxslt_xsltTransformGetInstruction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlNodePtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltTransformGetInstruction", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = ctxt->inst;
+    py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltParseStylesheetImportedDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xsltStylesheetPtr c_retval;
+    xmlDocPtr doc;
+    PyObject *pyobj_doc;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltParseStylesheetImportedDoc", &pyobj_doc, &pyobj_style))
+        return(NULL);
+    doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = xsltParseStylesheetImportedDoc(doc, style);
+    py_retval = libxslt_xsltStylesheetPtrWrap((xsltStylesheetPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltGenerateIdFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlXPathParserContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    int nargs;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oi:xsltGenerateIdFunction", &pyobj_ctxt, &nargs))
+        return(NULL);
+    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
+
+    xsltGenerateIdFunction(ctxt, nargs);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltApplyAttributeSet(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+    xmlNodePtr inst;
+    PyObject *pyobj_inst;
+    xmlChar * attributes;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOOz:xsltApplyAttributeSet", &pyobj_ctxt, &pyobj_node, &pyobj_inst, &attributes))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+    inst = (xmlNodePtr) PyxmlNode_Get(pyobj_inst);
+
+    xsltApplyAttributeSet(ctxt, node, inst, attributes);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltAttrListTemplateProcess(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlAttrPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr target;
+    PyObject *pyobj_target;
+    xmlAttrPtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOO:xsltAttrListTemplateProcess", &pyobj_ctxt, &pyobj_target, &pyobj_cur))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    target = (xmlNodePtr) PyxmlNode_Get(pyobj_target);
+    cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur);
+
+    c_retval = xsltAttrListTemplateProcess(ctxt, target, cur);
+    py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltParseStylesheetAttributeSet(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlNodePtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltParseStylesheetAttributeSet", &pyobj_style, &pyobj_cur))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur);
+
+    xsltParseStylesheetAttributeSet(style, cur);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltUnparsedEntityURIFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlXPathParserContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    int nargs;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oi:xsltUnparsedEntityURIFunction", &pyobj_ctxt, &nargs))
+        return(NULL);
+    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
+
+    xsltUnparsedEntityURIFunction(ctxt, nargs);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltMessage(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+    xmlNodePtr inst;
+    PyObject *pyobj_inst;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOO:xsltMessage", &pyobj_ctxt, &pyobj_node, &pyobj_inst))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+    inst = (xmlNodePtr) PyxmlNode_Get(pyobj_inst);
+
+    xsltMessage(ctxt, node, inst);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltCreateRVT(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlDocPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltCreateRVT", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = xsltCreateRVT(ctxt);
+    py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltParseStylesheetProcess(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xsltStylesheetPtr c_retval;
+    xsltStylesheetPtr ret;
+    PyObject *pyobj_ret;
+    xmlDocPtr doc;
+    PyObject *pyobj_doc;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltParseStylesheetProcess", &pyobj_ret, &pyobj_doc))
+        return(NULL);
+    ret = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_ret);
+    doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc);
+
+    c_retval = xsltParseStylesheetProcess(ret, doc);
+    py_retval = libxslt_xsltStylesheetPtrWrap((xsltStylesheetPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltGetDebuggerStatus(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
+    PyObject *py_retval;
+    int c_retval;
+
+    c_retval = xsltGetDebuggerStatus();
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltStylesheetGetVersion(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlChar * c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltStylesheetGetVersion", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = style->version;
+    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltXPathGetTransformContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xsltTransformContextPtr c_retval;
+    xmlXPathContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltXPathGetTransformContext", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt);
+
+    c_retval = ctxt->extra;
+    py_retval = libxslt_xsltTransformContextPtrWrap((xsltTransformContextPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltStylesheetGetImports(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xsltStylesheetPtr c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltStylesheetGetImports", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = style->imports;
+    py_retval = libxslt_xsltStylesheetPtrWrap((xsltStylesheetPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltAttrTemplateValueProcess(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlChar * c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlChar * str;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oz:xsltAttrTemplateValueProcess", &pyobj_ctxt, &str))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = xsltAttrTemplateValueProcess(ctxt, str);
+    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltNextImport(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xsltStylesheetPtr c_retval;
+    xsltStylesheetPtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltNextImport", &pyobj_cur))
+        return(NULL);
+    cur = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_cur);
+
+    c_retval = xsltNextImport(cur);
+    py_retval = libxslt_xsltStylesheetPtrWrap((xsltStylesheetPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltFreeCtxtExts(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeCtxtExts", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    xsltFreeCtxtExts(ctxt);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltNamespaceAlias(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltNamespaceAlias", &pyobj_style, &pyobj_node))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+
+    xsltNamespaceAlias(style, node);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltTransformGetModeURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    const xmlChar * c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltTransformGetModeURI", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = ctxt->modeURI;
+    py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltFreeDocuments(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeDocuments", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    xsltFreeDocuments(ctxt);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltDocumentFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlXPathParserContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    int nargs;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oi:xsltDocumentFunction", &pyobj_ctxt, &nargs))
+        return(NULL);
+    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
+
+    xsltDocumentFunction(ctxt, nargs);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltNewStylesheet(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
+    PyObject *py_retval;
+    xsltStylesheetPtr c_retval;
+
+    c_retval = xsltNewStylesheet();
+    py_retval = libxslt_xsltStylesheetPtrWrap((xsltStylesheetPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltSetDebuggerStatus(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    int value;
+
+    if (!PyArg_ParseTuple(args, (char *)"i:xsltSetDebuggerStatus", &value))
+        return(NULL);
+
+    xsltSetDebuggerStatus(value);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltCopyNamespaceList(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlNsPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+    xmlNsPtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOO:xsltCopyNamespaceList", &pyobj_ctxt, &pyobj_node, &pyobj_cur))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+    cur = (xmlNsPtr) PyxmlNode_Get(pyobj_cur);
+
+    c_retval = xsltCopyNamespaceList(ctxt, node, cur);
+    py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltEvalGlobalVariables(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltEvalGlobalVariables", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = xsltEvalGlobalVariables(ctxt);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltCleanupGlobals(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
+
+    xsltCleanupGlobals();
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltParseTemplateContent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlNodePtr templ;
+    PyObject *pyobj_templ;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltParseTemplateContent", &pyobj_style, &pyobj_templ))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    templ = (xmlNodePtr) PyxmlNode_Get(pyobj_templ);
+
+    xsltParseTemplateContent(style, templ);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltEvalOneUserParam(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlChar * name;
+    xmlChar * value;
+
+    if (!PyArg_ParseTuple(args, (char *)"Ozz:xsltEvalOneUserParam", &pyobj_ctxt, &name, &value))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = xsltEvalOneUserParam(ctxt, name, value);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltUnregisterExtModuleFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xmlChar * name;
+    xmlChar * URI;
+
+    if (!PyArg_ParseTuple(args, (char *)"zz:xsltUnregisterExtModuleFunction", &name, &URI))
+        return(NULL);
+
+    c_retval = xsltUnregisterExtModuleFunction(name, URI);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltFreeGlobalVariables(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeGlobalVariables", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    xsltFreeGlobalVariables(ctxt);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltSaveResultToFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    FILE * file;
+    PyObject *pyobj_file;
+    xmlDocPtr result;
+    PyObject *pyobj_result;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOO:xsltSaveResultToFile", &pyobj_file, &pyobj_result, &pyobj_style))
+        return(NULL);
+    file = (FILE *) PyFile_Get(pyobj_file);
+    result = (xmlDocPtr) PyxmlNode_Get(pyobj_result);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = xsltSaveResultToFile(file, result, style);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltParseGlobalVariable(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlNodePtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltParseGlobalVariable", &pyobj_style, &pyobj_cur))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur);
+
+    xsltParseGlobalVariable(style, cur);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltShutdownExts(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltShutdownExts", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    xsltShutdownExts(style);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltFindElemSpaceHandling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltFindElemSpaceHandling", &pyobj_ctxt, &pyobj_node))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+
+    c_retval = xsltFindElemSpaceHandling(ctxt, node);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltStylesheetGetParent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xsltStylesheetPtr c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltStylesheetGetParent", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = style->parent;
+    py_retval = libxslt_xsltStylesheetPtrWrap((xsltStylesheetPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltSaveResultToFd(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    int fd;
+    xmlDocPtr result;
+    PyObject *pyobj_result;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"iOO:xsltSaveResultToFd", &fd, &pyobj_result, &pyobj_style))
+        return(NULL);
+    result = (xmlDocPtr) PyxmlNode_Get(pyobj_result);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = xsltSaveResultToFd(fd, result, style);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltCopyNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlNsPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+    xmlNsPtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOO:xsltCopyNamespace", &pyobj_ctxt, &pyobj_node, &pyobj_cur))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+    cur = (xmlNsPtr) PyxmlNode_Get(pyobj_cur);
+
+    c_retval = xsltCopyNamespace(ctxt, node, cur);
+    py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltCalibrateAdjust(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    long delta;
+
+    if (!PyArg_ParseTuple(args, (char *)"i:xsltCalibrateAdjust", &delta))
+        return(NULL);
+
+    xsltCalibrateAdjust(delta);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltSaveProfiling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    FILE * output;
+    PyObject *pyobj_output;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltSaveProfiling", &pyobj_ctxt, &pyobj_output))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    output = (FILE *) PyFile_Get(pyobj_output);
+
+    xsltSaveProfiling(ctxt, output);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltStylesheetGetMethod(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlChar * c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltStylesheetGetMethod", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = style->method;
+    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltFunctionNodeSet(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlXPathParserContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    int nargs;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oi:xsltFunctionNodeSet", &pyobj_ctxt, &nargs))
+        return(NULL);
+    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
+
+    xsltFunctionNodeSet(ctxt, nargs);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltCleanupTemplates(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltCleanupTemplates", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    xsltCleanupTemplates(style);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltCheckExtPrefix(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlChar * prefix;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oz:xsltCheckExtPrefix", &pyobj_style, &prefix))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = xsltCheckExtPrefix(style, prefix);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltParseStylesheetFile(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xsltStylesheetPtr c_retval;
+    xmlChar * filename;
+
+    if (!PyArg_ParseTuple(args, (char *)"z:xsltParseStylesheetFile", &filename))
+        return(NULL);
+
+    c_retval = xsltParseStylesheetFile(filename);
+    py_retval = libxslt_xsltStylesheetPtrWrap((xsltStylesheetPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltElementAvailableFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlXPathParserContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    int nargs;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oi:xsltElementAvailableFunction", &pyobj_ctxt, &nargs))
+        return(NULL);
+    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
+
+    xsltElementAvailableFunction(ctxt, nargs);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltRegisterExtras(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltRegisterExtras", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    xsltRegisterExtras(ctxt);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltFunctionAvailableFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlXPathParserContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    int nargs;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oi:xsltFunctionAvailableFunction", &pyobj_ctxt, &nargs))
+        return(NULL);
+    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
+
+    xsltFunctionAvailableFunction(ctxt, nargs);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltFormatNumberFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlXPathParserContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    int nargs;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oi:xsltFormatNumberFunction", &pyobj_ctxt, &nargs))
+        return(NULL);
+    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
+
+    xsltFormatNumberFunction(ctxt, nargs);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltEvalTemplateString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlChar * c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+    xmlNodePtr parent;
+    PyObject *pyobj_parent;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOO:xsltEvalTemplateString", &pyobj_ctxt, &pyobj_node, &pyobj_parent))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+    parent = (xmlNodePtr) PyxmlNode_Get(pyobj_parent);
+
+    c_retval = xsltEvalTemplateString(ctxt, node, parent);
+    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltGetNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlChar * c_retval;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+    xmlChar * name;
+    xmlChar * nameSpace;
+
+    if (!PyArg_ParseTuple(args, (char *)"Ozz:xsltGetNsProp", &pyobj_node, &name, &nameSpace))
+        return(NULL);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+
+    c_retval = xsltGetNsProp(node, name, nameSpace);
+    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltAddKey(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlChar * name;
+    xmlChar * nameURI;
+    xmlChar * match;
+    xmlChar * use;
+    xmlNodePtr inst;
+    PyObject *pyobj_inst;
+
+    if (!PyArg_ParseTuple(args, (char *)"OzzzzO:xsltAddKey", &pyobj_style, &name, &nameURI, &match, &use, &pyobj_inst))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    inst = (xmlNodePtr) PyxmlNode_Get(pyobj_inst);
+
+    c_retval = xsltAddKey(style, name, nameURI, match, use, inst);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltRegisterAllFunctions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlXPathContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltRegisterAllFunctions", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xmlXPathContextPtr) PyxmlXPathContext_Get(pyobj_ctxt);
+
+    xsltRegisterAllFunctions(ctxt);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltAttrTemplateValueProcessNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlChar * c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlChar * str;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+
+    if (!PyArg_ParseTuple(args, (char *)"OzO:xsltAttrTemplateValueProcessNode", &pyobj_ctxt, &str, &pyobj_node))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+
+    c_retval = xsltAttrTemplateValueProcessNode(ctxt, str, node);
+    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltSystemPropertyFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlXPathParserContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    int nargs;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oi:xsltSystemPropertyFunction", &pyobj_ctxt, &nargs))
+        return(NULL);
+    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
+
+    xsltSystemPropertyFunction(ctxt, nargs);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltUnregisterExtModuleTopLevel(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xmlChar * name;
+    xmlChar * URI;
+
+    if (!PyArg_ParseTuple(args, (char *)"zz:xsltUnregisterExtModuleTopLevel", &name, &URI))
+        return(NULL);
+
+    c_retval = xsltUnregisterExtModuleTopLevel(name, URI);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltParseStylesheetImport(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlNodePtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltParseStylesheetImport", &pyobj_style, &pyobj_cur))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur);
+
+    c_retval = xsltParseStylesheetImport(style, cur);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltXPathParserGetContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlXPathContextPtr c_retval;
+    xmlXPathParserContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltXPathParserGetContext", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
+
+    c_retval = ctxt->context;
+    py_retval = libxml_xmlXPathContextPtrWrap((xmlXPathContextPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltAllocateExtraCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltAllocateExtraCtxt", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = xsltAllocateExtraCtxt(ctxt);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltTransformGetContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlXPathContextPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltTransformGetContext", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = ctxt->xpathCtxt;
+    py_retval = libxml_xmlXPathContextPtrWrap((xmlXPathContextPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltRegisterTestModule(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
+
+    xsltRegisterTestModule();
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltFreeKeys(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeKeys", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    xsltFreeKeys(style);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltParseStylesheetVariable(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltParseStylesheetVariable", &pyobj_ctxt, &pyobj_cur))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur);
+
+    xsltParseStylesheetVariable(ctxt, cur);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltGetSpecialNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlNsPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr cur;
+    PyObject *pyobj_cur;
+    xmlChar * URI;
+    xmlChar * prefix;
+    xmlNodePtr out;
+    PyObject *pyobj_out;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOzzO:xsltGetSpecialNamespace", &pyobj_ctxt, &pyobj_cur, &URI, &prefix, &pyobj_out))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur);
+    out = (xmlNodePtr) PyxmlNode_Get(pyobj_out);
+
+    c_retval = xsltGetSpecialNamespace(ctxt, cur, URI, prefix, out);
+    py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltLoadStylesheetPI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xsltStylesheetPtr c_retval;
+    xmlDocPtr doc;
+    PyObject *pyobj_doc;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltLoadStylesheetPI", &pyobj_doc))
+        return(NULL);
+    doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc);
+
+    c_retval = xsltLoadStylesheetPI(doc);
+    py_retval = libxslt_xsltStylesheetPtrWrap((xsltStylesheetPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltStylesheetGetDoctypePublic(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    const xmlChar * c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltStylesheetGetDoctypePublic", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = style->doctypePublic;
+    py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltAllocateExtra(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltAllocateExtra", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = xsltAllocateExtra(style);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltAttrTemplateProcess(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlAttrPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr target;
+    PyObject *pyobj_target;
+    xmlAttrPtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOO:xsltAttrTemplateProcess", &pyobj_ctxt, &pyobj_target, &pyobj_cur))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    target = (xmlNodePtr) PyxmlNode_Get(pyobj_target);
+    cur = (xmlAttrPtr) PyxmlNode_Get(pyobj_cur);
+
+    c_retval = xsltAttrTemplateProcess(ctxt, target, cur);
+    py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltNeedElemSpaceHandling(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltNeedElemSpaceHandling", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = xsltNeedElemSpaceHandling(ctxt);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltTransformGetOutputDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlDocPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltTransformGetOutputDoc", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = ctxt->output;
+    py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltInitCtxtExts(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltInitCtxtExts", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = xsltInitCtxtExts(ctxt);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltStylesheetGetEncoding(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlChar * c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltStylesheetGetEncoding", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = style->encoding;
+    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltTransformGetMode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    const xmlChar * c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltTransformGetMode", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = ctxt->mode;
+    py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltTransformGetOutputURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    const char * c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltTransformGetOutputURI", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = ctxt->outputFile;
+    py_retval = libxml_charPtrConstWrap((const char *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltFreeExts(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeExts", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    xsltFreeExts(style);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltParseGlobalParam(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlNodePtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltParseGlobalParam", &pyobj_style, &pyobj_cur))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur);
+
+    xsltParseGlobalParam(style, cur);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltParseStylesheetParam(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltParseStylesheetParam", &pyobj_ctxt, &pyobj_cur))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur);
+
+    xsltParseStylesheetParam(ctxt, cur);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltParseStylesheetOutput(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlNodePtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltParseStylesheetOutput", &pyobj_style, &pyobj_cur))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur);
+
+    xsltParseStylesheetOutput(style, cur);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltFreeStylePreComps(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeStylePreComps", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    xsltFreeStylePreComps(style);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltFreeNamespaceAliasHashes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeNamespaceAliasHashes", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    xsltFreeNamespaceAliasHashes(style);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltShutdownCtxtExts(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltShutdownCtxtExts", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    xsltShutdownCtxtExts(ctxt);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltGetPlainNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlNsPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr cur;
+    PyObject *pyobj_cur;
+    xmlNsPtr ns;
+    PyObject *pyobj_ns;
+    xmlNodePtr out;
+    PyObject *pyobj_out;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOOO:xsltGetPlainNamespace", &pyobj_ctxt, &pyobj_cur, &pyobj_ns, &pyobj_out))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur);
+    ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns);
+    out = (xmlNodePtr) PyxmlNode_Get(pyobj_out);
+
+    c_retval = xsltGetPlainNamespace(ctxt, cur, ns, out);
+    py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltQuoteOneUserParam(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlChar * name;
+    xmlChar * value;
+
+    if (!PyArg_ParseTuple(args, (char *)"Ozz:xsltQuoteOneUserParam", &pyobj_ctxt, &name, &value))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = xsltQuoteOneUserParam(ctxt, name, value);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltUnregisterExtModule(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xmlChar * URI;
+
+    if (!PyArg_ParseTuple(args, (char *)"z:xsltUnregisterExtModule", &URI))
+        return(NULL);
+
+    c_retval = xsltUnregisterExtModule(URI);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltTransformGetInsertNode(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlNodePtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltTransformGetInsertNode", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = ctxt->insert;
+    py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltStylesheetGetNext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xsltStylesheetPtr c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltStylesheetGetNext", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = style->next;
+    py_retval = libxslt_xsltStylesheetPtrWrap((xsltStylesheetPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltUnregisterExtModuleElement(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xmlChar * name;
+    xmlChar * URI;
+
+    if (!PyArg_ParseTuple(args, (char *)"zz:xsltUnregisterExtModuleElement", &name, &URI))
+        return(NULL);
+
+    c_retval = xsltUnregisterExtModuleElement(name, URI);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltTimestamp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
+    PyObject *py_retval;
+    long c_retval;
+
+    c_retval = xsltTimestamp();
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltParseStylesheetInclude(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlNodePtr cur;
+    PyObject *pyobj_cur;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltParseStylesheetInclude", &pyobj_style, &pyobj_cur))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur);
+
+    c_retval = xsltParseStylesheetInclude(style, cur);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltFreeTemplateHashes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeTemplateHashes", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    xsltFreeTemplateHashes(style);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltSaveResultToFilename(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    char * URL;
+    xmlDocPtr result;
+    PyObject *pyobj_result;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    int compression;
+
+    if (!PyArg_ParseTuple(args, (char *)"zOOi:xsltSaveResultToFilename", &URL, &pyobj_result, &pyobj_style, &compression))
+        return(NULL);
+    result = (xmlDocPtr) PyxmlNode_Get(pyobj_result);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = xsltSaveResultToFilename(URL, result, style, compression);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltSetCtxtParseOptions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    int options;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oi:xsltSetCtxtParseOptions", &pyobj_ctxt, &options))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = xsltSetCtxtParseOptions(ctxt, options);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltGetProfileInformation(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlDocPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltGetProfileInformation", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = xsltGetProfileInformation(ctxt);
+    py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltFreeStyleDocuments(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeStyleDocuments", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    xsltFreeStyleDocuments(style);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltRegisterPersistRVT(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlDocPtr RVT;
+    PyObject *pyobj_RVT;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltRegisterPersistRVT", &pyobj_ctxt, &pyobj_RVT))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    RVT = (xmlDocPtr) PyxmlNode_Get(pyobj_RVT);
+
+    c_retval = xsltRegisterPersistRVT(ctxt, RVT);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltResolveStylesheetAttributeSet(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltResolveStylesheetAttributeSet", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    xsltResolveStylesheetAttributeSet(style);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltGetNamespace(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlNsPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr cur;
+    PyObject *pyobj_cur;
+    xmlNsPtr ns;
+    PyObject *pyobj_ns;
+    xmlNodePtr out;
+    PyObject *pyobj_out;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOOO:xsltGetNamespace", &pyobj_ctxt, &pyobj_cur, &pyobj_ns, &pyobj_out))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    cur = (xmlNodePtr) PyxmlNode_Get(pyobj_cur);
+    ns = (xmlNsPtr) PyxmlNode_Get(pyobj_ns);
+    out = (xmlNodePtr) PyxmlNode_Get(pyobj_out);
+
+    c_retval = xsltGetNamespace(ctxt, cur, ns, out);
+    py_retval = libxml_xmlNsPtrWrap((xmlNsPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltEvalAttrValueTemplate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlChar * c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+    xmlChar * name;
+    xmlChar * ns;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOzz:xsltEvalAttrValueTemplate", &pyobj_ctxt, &pyobj_node, &name, &ns))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+
+    c_retval = xsltEvalAttrValueTemplate(ctxt, node, name, ns);
+    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltTransformGetCurrent(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlNodePtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltTransformGetCurrent", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = ctxt->node;
+    py_retval = libxml_xmlNodePtrWrap((xmlNodePtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltRegisterTmpRVT(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlDocPtr RVT;
+    PyObject *pyobj_RVT;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltRegisterTmpRVT", &pyobj_ctxt, &pyobj_RVT))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    RVT = (xmlDocPtr) PyxmlNode_Get(pyobj_RVT);
+
+    c_retval = xsltRegisterTmpRVT(ctxt, RVT);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltPrintErrorContext(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOO:xsltPrintErrorContext", &pyobj_ctxt, &pyobj_style, &pyobj_node))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+
+    xsltPrintErrorContext(ctxt, style, node);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltStylesheetGetDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlDocPtr c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltStylesheetGetDoc", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = style->doc;
+    py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltGetCNsProp(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    const xmlChar * c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+    xmlChar * name;
+    xmlChar * nameSpace;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOzz:xsltGetCNsProp", &pyobj_style, &pyobj_node, &name, &nameSpace))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+
+    c_retval = xsltGetCNsProp(style, node, name, nameSpace);
+    py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltDebugDumpExtensions(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    FILE * output;
+    PyObject *pyobj_output;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltDebugDumpExtensions", &pyobj_output))
+        return(NULL);
+    output = (FILE *) PyFile_Get(pyobj_output);
+
+    xsltDebugDumpExtensions(output);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltStylePreCompute(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlNodePtr inst;
+    PyObject *pyobj_inst;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltStylePreCompute", &pyobj_style, &pyobj_inst))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    inst = (xmlNodePtr) PyxmlNode_Get(pyobj_inst);
+
+    xsltStylePreCompute(style, inst);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltFreeStylesheet(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr sheet;
+    PyObject *pyobj_sheet;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeStylesheet", &pyobj_sheet))
+        return(NULL);
+    sheet = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_sheet);
+
+    xsltFreeStylesheet(sheet);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltFreeAttributeSetsHashes(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeAttributeSetsHashes", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    xsltFreeAttributeSetsHashes(style);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltRegisterAllExtras(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
+
+    xsltRegisterAllExtras();
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltTransformGetStyle(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xsltStylesheetPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltTransformGetStyle", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = ctxt->style;
+    py_retval = libxslt_xsltStylesheetPtrWrap((xsltStylesheetPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltCompileAttr(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlAttrPtr attr;
+    PyObject *pyobj_attr;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltCompileAttr", &pyobj_style, &pyobj_attr))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    attr = (xmlAttrPtr) PyxmlNode_Get(pyobj_attr);
+
+    xsltCompileAttr(style, attr);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltFreeRVTs(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltFreeRVTs", &pyobj_ctxt))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    xsltFreeRVTs(ctxt);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltIsBlank(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xmlChar * str;
+
+    if (!PyArg_ParseTuple(args, (char *)"z:xsltIsBlank", &str))
+        return(NULL);
+
+    c_retval = xsltIsBlank(str);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltStylesheetGetDoctypeSystem(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    const xmlChar * c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltStylesheetGetDoctypeSystem", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = style->doctypeSystem;
+    py_retval = libxml_xmlCharPtrConstWrap((const xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltDebug(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlNodePtr node;
+    PyObject *pyobj_node;
+    xmlNodePtr inst;
+    PyObject *pyobj_inst;
+    xsltStylePreCompPtr comp;
+    PyObject *pyobj_comp;
+
+    if (!PyArg_ParseTuple(args, (char *)"OOOO:xsltDebug", &pyobj_ctxt, &pyobj_node, &pyobj_inst, &pyobj_comp))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+    node = (xmlNodePtr) PyxmlNode_Get(pyobj_node);
+    inst = (xmlNodePtr) PyxmlNode_Get(pyobj_inst);
+    comp = (xsltStylePreCompPtr) PycompiledStyle_Get(pyobj_comp);
+
+    xsltDebug(ctxt, node, inst, comp);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltStylesheetGetMethodURI(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlChar * c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltStylesheetGetMethodURI", &pyobj_style))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = style->methodURI;
+    py_retval = libxml_xmlCharPtrWrap((xmlChar *) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltParseStylesheetDoc(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xsltStylesheetPtr c_retval;
+    xmlDocPtr doc;
+    PyObject *pyobj_doc;
+
+    if (!PyArg_ParseTuple(args, (char *)"O:xsltParseStylesheetDoc", &pyobj_doc))
+        return(NULL);
+    doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc);
+
+    c_retval = xsltParseStylesheetDoc(doc);
+    py_retval = libxslt_xsltStylesheetPtrWrap((xsltStylesheetPtr) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltKeyFunction(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    xmlXPathParserContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    int nargs;
+
+    if (!PyArg_ParseTuple(args, (char *)"Oi:xsltKeyFunction", &pyobj_ctxt, &nargs))
+        return(NULL);
+    ctxt = (xmlXPathParserContextPtr) PyxmlXPathParserContext_Get(pyobj_ctxt);
+
+    xsltKeyFunction(ctxt, nargs);
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltRegisterExtPrefix(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    int c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlChar * prefix;
+    xmlChar * URI;
+
+    if (!PyArg_ParseTuple(args, (char *)"Ozz:xsltRegisterExtPrefix", &pyobj_style, &prefix, &URI))
+        return(NULL);
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+    c_retval = xsltRegisterExtPrefix(style, prefix, URI);
+    py_retval = libxml_intWrap((int) c_retval);
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xslDropCall(PyObject *self ATTRIBUTE_UNUSED, PyObject *args ATTRIBUTE_UNUSED) {
+
+    xslDropCall();
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+PyObject *
+libxslt_xsltVariableLookup(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlXPathObjectPtr c_retval;
+    xsltTransformContextPtr ctxt;
+    PyObject *pyobj_ctxt;
+    xmlChar * name;
+    xmlChar * ns_uri;
+
+    if (!PyArg_ParseTuple(args, (char *)"Ozz:xsltVariableLookup", &pyobj_ctxt, &name, &ns_uri))
+        return(NULL);
+    ctxt = (xsltTransformContextPtr) PytransformCtxt_Get(pyobj_ctxt);
+
+    c_retval = xsltVariableLookup(ctxt, name, ns_uri);
+    py_retval = libxml_xmlXPathObjectPtrWrap((xmlXPathObjectPtr) c_retval);
+    return(py_retval);
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/python/libxslt-python-api.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/libxslt-python-api.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/libxslt-python-api.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<api name='libxslt-python'>
+  <files>
+    <file name='python'>
+    </file>
+  </files>
+  <symbols>
+    <function name='xsltSaveResultToString' file='python'>
+      <info>Have the stylesheet serialize the result of a transformation to a python string</info>
+      <return type='char *' info='The result document as a string' />
+      <arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
+      <arg name='result' type='xmlDocPtr' info='The result document'/>
+    </function>
+    <function name='xsltApplyStylesheet' file='python'>
+      <info>Apply the stylesheet to the document</info>
+      <return type='xmlDocPtr' info="the result document or NULL in case of error"/>
+      <arg name='style' type='xsltStylesheetPtr' info='a parsed XSLT stylesheet'/>
+      <arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
+      <arg name='params' type='pythonObject' info='the parameters dictionnary'/>
+    </function>
+    <function name='xsltRegisterErrorHandler' file='python'>
+      <info>Register a Python written function to for error reporting. The function is called back as f(ctx, error).</info>
+      <return type='int' info="1 in case of success, 0 or -1 in case of error"/>
+      <arg name='f' type='pythonObject' info='the python function'/>
+      <arg name='ctx' type='pythonObject' info='a context for the callback'/>
+    </function>
+    <function name='xsltRegisterExtModuleElement' file='python'>
+      <info>Register a Python written element to the XSLT engine</info>
+      <return type='int' info="0 in case of success, -1 in case of error"/>
+      <arg name='name' type='xmlChar *' info='the element name'/>
+      <arg name='URI' type='xmlChar *' info='the namespace or NULL'/>
+      <arg name='precompile' type='pythonObject' info='method called when stylesheet is compiled'/>
+      <arg name='transform' type='pythonObject' info='method called during transform, must not modify stylesheet'/>
+    </function>
+    <function name='xsltRegisterExtModuleFunction' file='python'>
+      <info>Register a Python written function to the XSLT engine</info>
+      <return type='int' info="0 in case of success, -1 in case of error"/>
+      <arg name='name' type='xmlChar *' info='the function name'/>
+      <arg name='URI' type='xmlChar *' info='the namespace or NULL'/>
+      <arg name='f' type='pythonObject' info='the python function'/>
+    </function>
+    <function name='xsltRegisterExtensionClass' file='python'>
+      <info>Register a Python written extension class to the XSLT engine</info>
+      <return type='int' info="0 in case of success, -1 in case of error"/>
+      <arg name='URI' type='xmlChar *' info='the namespace or NULL'/>
+      <arg name='c' type='pythonObject' info='the python class instance'/>
+    </function>
+    <function name='xsltPythonCleanup' file='python'>
+      <info>Cleanup just libxslt (not libxml2) memory allocated</info>
+      <return type='void'/>
+    </function>
+    <!-- xmlXPathParserContextPtr accessors -->
+    <function name='xsltXPathParserGetContext' file='python_accessor'>
+      <info>Get the xpathContext from an xpathParserContext</info>
+      <return type='xmlXPathContextPtr' info="The XPath context" field="context"/>
+      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath parser context'/>
+    </function>
+    <!-- xmlXPathContextPtr accessors -->
+    <function name='xsltXPathGetTransformContext' file='python_accessor'>
+      <info>Get the transformation context from an xpathContext</info>
+      <return type='xsltTransformContextPtr' info="The node context" field="extra"/>
+      <arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
+    </function>
+    <!-- xsltTransformContextPtr accessors -->
+    <function name='xsltTransformGetStyle' file='python_accessor'>
+      <info>Get the stylesheet from a transformation</info>
+      <return type='xsltStylesheetPtr' info="The stylesheet" field="style"/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+    </function>
+    <function name='xsltTransformGetCurrent' file='python_accessor'>
+      <info>Get the current() node of a transformation</info>
+      <return type='xmlNodePtr' info="The node" field="node"/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+    </function>
+    <function name='xsltTransformGetOutputDoc' file='python_accessor'>
+      <info>Get the output document of a transformation</info>
+      <return type='xmlDocPtr' info="The output doc" field="output"/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+    </function>
+    <function name='xsltTransformGetOutputURI' file='python_accessor'>
+      <info>Get the output URI of a transformation if known</info>
+      <return type='const char *' info="The output URI" field="outputFile"/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+    </function>
+    <function name='xsltTransformGetInsertNode' file='python_accessor'>
+      <info>Get the insertion node in the output document</info>
+      <return type='xmlNodePtr' info="The insertion node" field="insert"/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+    </function>
+    <function name='xsltTransformGetInstruction' file='python_accessor'>
+      <info>Get the instruction node in the stylesheet</info>
+      <return type='xmlNodePtr' info="The instruction node" field="inst"/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+    </function>
+    <function name='xsltTransformGetMode' file='python_accessor'>
+      <info>Get the mode of a transformation</info>
+      <return type='const xmlChar *' info="The mode" field="mode"/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+    </function>
+    <function name='xsltTransformGetModeURI' file='python_accessor'>
+      <info>Get the mode URI of a transformation</info>
+      <return type='const xmlChar *' info="The mode URI" field="modeURI"/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+    </function>
+    <function name='xsltTransformGetContext' file='python_accessor'>
+      <info>Get the XPath context of a transformation</info>
+      <return type='xmlXPathContextPtr' info="The XPath context" field="xpathCtxt"/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+    </function>
+    <function name='xsltTransformGetPrivate' file='python_accessor'>
+      <info>Get the private field of a transformation</info>
+      <return type='pythonObject *' info="The private field" field="_private"/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+    </function>
+    <function name='xsltTransformSetPrivate' file='python_accessor'>
+      <info>Set the private field of a transformation</info>
+      <return type='void'/>
+      <arg name='ctxt' type='xsltTransformContextPtr' info='the transformation context'/>
+      <arg name='_private' type='pythonObject *' info='The private field'/>
+    </function>
+    <!-- xsltStylesheetPtr accessors -->
+    <function name='xsltStylesheetGetParent' file='python_accessor'>
+      <info>Get the parent of a stylesheet</info>
+      <return type='xsltStylesheetPtr' info="The parent" field="parent"/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltStylesheetGetNext' file='python_accessor'>
+      <info>Get the next sibling of a stylesheet</info>
+      <return type='xsltStylesheetPtr' info="The next sibling" field="next"/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltStylesheetGetImports' file='python_accessor'>
+      <info>Get the imports of a stylesheet</info>
+      <return type='xsltStylesheetPtr' info="The next sibling" field="imports"/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltStylesheetGetDoc' file='python_accessor'>
+      <info>Get the document of a stylesheet</info>
+      <return type='xmlDocPtr' info="The XML document" field="doc"/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltStylesheetGetMethod' file='python_accessor'>
+      <info>Get the output method of a stylesheet</info>
+      <return type='xmlChar *' info="The output method" field="method"/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltStylesheetGetMethodURI' file='python_accessor'>
+      <info>Get the output method URI of a stylesheet</info>
+      <return type='xmlChar *' info="The output method URI" field="methodURI"/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltStylesheetGetVersion' file='python_accessor'>
+      <info>Get the output version of a stylesheet</info>
+      <return type='xmlChar *' info="The output version" field="version"/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltStylesheetGetEncoding' file='python_accessor'>
+      <info>Get the output encoding of a stylesheet</info>
+      <return type='xmlChar *' info="The output encoding" field="encoding"/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltStylesheetGetDoctypePublic' file='python_accessor'>
+      <info>Get the output PUBLIC of a stylesheet</info>
+      <return type='const xmlChar *' info="The output PUBLIC" field="doctypePublic"/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltStylesheetGetDoctypeSystem' file='python_accessor'>
+      <info>Get the output SYSTEM of a stylesheet</info>
+      <return type='const xmlChar *' info="The output SYSTEM" field="doctypeSystem"/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltStylesheetGetPrivate' file='python_accessor'>
+      <info>Get the private field of a stylesheet</info>
+      <return type='pythonObject *' info="The private field" field="_private"/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+    </function>
+    <function name='xsltStylesheetSetPrivate' file='python_accessor'>
+      <info>Set the private field of a stylesheet</info>
+      <return type='void'/>
+      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
+      <arg name='_private' type='pythonObject *' info='The private field'/>
+    </function>
+  </symbols>
+</api>

Added: packages/libxslt/branches/upstream/1.1.16/python/libxslt.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/libxslt.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/libxslt.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,902 @@
+/*
+  libxslt.c: this modules implements the main part of the glue of the
+ *           libxslt library and the Python interpreter. It provides the
+ *           entry points where an automatically generated stub is either
+ *           unpractical or would not match cleanly the Python model.
+ *
+ * If compiled with MERGED_MODULES, the entry point will be used to
+ * initialize both the libxml2 and the libxslt wrappers
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+#include <Python.h>
+/* #include "config.h" */
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include "libexslt/exslt.h"
+#include "libxslt_wrap.h"
+#include "libxslt-py.h"
+
+#if (defined(_MSC_VER) || defined(__MINGW32__)) && !defined(vsnprintf)
+#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
+#elif defined(XSLT_NEED_TRIO)
+#include "trio.h"
+#define vsnprintf trio_vsnprintf
+#endif
+
+/* #define DEBUG */
+/* #define DEBUG_XPATH */
+/* #define DEBUG_ERROR */
+/* #define DEBUG_MEMORY */
+/* #define DEBUG_EXTENSIONS */
+/* #define DEBUG_EXTENSIONS */
+
+void initlibxsltmod(void);
+
+/************************************************************************
+ *									*
+ *			Per type specific glue				*
+ *									*
+ ************************************************************************/
+
+PyObject *
+libxslt_xsltStylesheetPtrWrap(xsltStylesheetPtr style) {
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxslt_xsltStylesheetPtrWrap: style = %p\n", style);
+#endif
+    if (style == NULL) {
+	Py_INCREF(Py_None);
+	return(Py_None);
+    }
+    ret = PyCObject_FromVoidPtrAndDesc((void *) style,
+	                               (char *)"xsltStylesheetPtr", NULL);
+    return(ret);
+}
+
+PyObject *
+libxslt_xsltTransformContextPtrWrap(xsltTransformContextPtr ctxt) {
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxslt_xsltTransformContextPtrWrap: ctxt = %p\n", ctxt);
+#endif
+    if (ctxt == NULL) {
+	Py_INCREF(Py_None);
+	return(Py_None);
+    }
+    ret = PyCObject_FromVoidPtrAndDesc((void *) ctxt,
+	                               (char *)"xsltTransformContextPtr", NULL);
+    return(ret);
+}
+
+PyObject *
+libxslt_xsltElemPreCompPtrWrap(xsltElemPreCompPtr ctxt) {
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxslt_xsltElemPreCompPtrWrap: ctxt = %p\n", ctxt);
+#endif
+    if (ctxt == NULL) {
+	Py_INCREF(Py_None);
+	return(Py_None);
+    }
+    ret = PyCObject_FromVoidPtrAndDesc((void *) ctxt,
+	                               (char *)"xsltElemPreCompPtr", NULL);
+    return(ret);
+}
+
+/************************************************************************
+ *									*
+ *			Extending the API				*
+ *									*
+ ************************************************************************/
+
+static xmlHashTablePtr libxslt_extModuleFunctions = NULL;
+static xmlHashTablePtr libxslt_extModuleElements = NULL;
+static xmlHashTablePtr libxslt_extModuleElementPreComp = NULL;
+
+static void
+deallocateCallback(void *payload, xmlChar *name ATTRIBUTE_UNUSED) {
+    PyObject *function = (PyObject *) payload;
+
+#ifdef DEBUG_EXTENSIONS
+    printf("deallocateCallback(%s) called\n", name);
+#endif
+
+    Py_XDECREF(function);
+}
+
+static void
+deallocateClasse(void *payload, xmlChar *name ATTRIBUTE_UNUSED) {
+    PyObject *class = (PyObject *) payload;
+
+#ifdef DEBUG_EXTENSIONS
+    printf("deallocateClasse(%s) called\n", name);
+#endif
+
+    Py_XDECREF(class);
+}
+
+
+/**
+ * libxslt_xsltElementPreCompCallback
+ * @style:  the stylesheet
+ * @inst:  the instruction in the stylesheet
+ *
+ * Callback for preprocessing of a custom element
+ */
+static xsltElemPreCompPtr
+libxslt_xsltElementPreCompCallback(xsltStylesheetPtr style, xmlNodePtr inst,
+              xsltTransformFunction function) {
+    xsltElemPreCompPtr ret;
+    const xmlChar *name;
+    PyObject *args;
+    PyObject *result;
+    PyObject *pyobj_element_f;
+    PyObject *pyobj_precomp_f;
+
+   const xmlChar *ns_uri;
+
+
+#ifdef DEBUG_EXTENSIONS
+    printf("libxslt_xsltElementPreCompCallback called\n");
+#endif
+
+    if (style == NULL) {
+	xsltTransformError(NULL, NULL, inst,
+	     "libxslt_xsltElementPreCompCallback: no transformation context\n");
+	    return (NULL);
+    }
+
+    if (inst == NULL) {
+	xsltTransformError(NULL, style, inst,
+	     "libxslt_xsltElementPreCompCallback: no instruction\n");
+	if (style != NULL) style->errors++;
+	return (NULL);
+    }
+
+    if (style == NULL)
+	return (NULL);
+    
+    if (inst != NULL && inst->ns != NULL) {
+	name = inst->name;
+	ns_uri = inst->ns->href;
+    } else {
+	xsltTransformError(NULL, style, inst, 
+		"libxslt_xsltElementPreCompCallback: internal error bad parameter\n");
+		printf("libxslt_xsltElementPreCompCallback: internal error bad parameter\n");
+	if (style != NULL) style->errors++;
+	return (NULL);
+    }
+
+    /*
+     * Find the functions, they should be there it was there at lookup
+     */
+    pyobj_precomp_f = xmlHashLookup2(libxslt_extModuleElementPreComp,
+	                              name, ns_uri);
+    if (pyobj_precomp_f == NULL) {
+	xsltTransformError(NULL, style, inst, 
+		"libxslt_xsltElementPreCompCallback: internal error, could not find precompile python function!\n");
+	if (style != NULL) style->errors++;
+	return (NULL);
+    }
+
+    pyobj_element_f = xmlHashLookup2(libxslt_extModuleElements,
+	                              name, ns_uri);
+    if (pyobj_element_f == NULL) {
+	xsltTransformError(NULL, style, inst, 
+		"libxslt_xsltElementPreCompCallback: internal error, could not find element python function!\n");
+	if (style != NULL) style->errors++;
+	return (NULL);
+    }
+
+    args = Py_BuildValue((char *)"(OOO)", 
+	    libxslt_xsltStylesheetPtrWrap(style),
+	    libxml_xmlNodePtrWrap(inst),
+	    pyobj_element_f);
+
+    Py_INCREF(pyobj_precomp_f); /* Protect refcount against reentrant manipulation of callback hash */
+    result = PyEval_CallObject(pyobj_precomp_f, args);
+    Py_DECREF(pyobj_precomp_f);
+    Py_DECREF(args);
+
+    /* FIXME allow callbacks to return meaningful information to modify compile process */
+    /* If error, do we need to check the result and throw exception? */
+
+    Py_XDECREF(result);
+
+    ret = xsltNewElemPreComp (style, inst, function);
+    return (ret);
+}
+
+
+static void
+libxslt_xsltElementTransformCallback(xsltTransformContextPtr ctxt,
+				    xmlNodePtr node, 
+				    xmlNodePtr inst,
+				    xsltElemPreCompPtr comp) 
+{
+    PyObject *args, *result;
+    PyObject *func = NULL;
+    const xmlChar *name;
+    const xmlChar *ns_uri;
+
+    if (ctxt == NULL)
+	return;
+    
+    if (inst != NULL && inst->name != NULL && inst->ns != NULL && inst->ns->href != NULL) {
+	name = inst->name;
+	ns_uri = inst->ns->href;
+    } else {
+	printf("libxslt_xsltElementTransformCallback: internal error bad parameter\n");
+	return;
+    }
+
+#ifdef DEBUG_EXTENSIONS
+    printf("libxslt_xsltElementTransformCallback called name %s URI %s\n", name, ns_uri);
+#endif
+
+    /*
+     * Find the function, it should be there it was there at lookup
+     */
+    func = xmlHashLookup2(libxslt_extModuleElements,
+	                              name, ns_uri);
+    if (func == NULL) {
+	printf("libxslt_xsltElementTransformCallback: internal error %s not found !\n",
+	       name);
+	return;
+    }
+
+    args = Py_BuildValue((char *)"OOOO",
+    	libxslt_xsltTransformContextPtrWrap(ctxt),
+    	libxml_xmlNodePtrWrap(node),
+    	libxml_xmlNodePtrWrap(inst),
+    	libxslt_xsltElemPreCompPtrWrap(comp));
+
+    Py_INCREF(func); /* Protect refcount against reentrant manipulation of callback hash */
+    result = PyEval_CallObject(func, args);
+    Py_DECREF(func);
+    Py_DECREF(args);
+
+    /* FIXME Check result of callobject and set exception if fail */
+
+    Py_XDECREF(result);
+}
+
+PyObject *
+libxslt_xsltRegisterExtModuleElement(PyObject *self ATTRIBUTE_UNUSED,
+	                              PyObject *args) {
+    PyObject *py_retval;
+    int ret = 0;
+    xmlChar *name;
+    xmlChar *ns_uri;
+    PyObject *pyobj_element_f;
+    PyObject *pyobj_precomp_f;
+
+#ifdef DEBUG_EXTENSIONS
+    printf("libxslt_xsltRegisterExtModuleElement called\n",
+	   name, ns_uri);
+#endif
+
+    if (!PyArg_ParseTuple(args, (char *)"szOO:registerExtModuleElement",
+		          &name, &ns_uri, &pyobj_precomp_f, &pyobj_element_f))
+        return(NULL);
+
+    if ((name == NULL) || (pyobj_element_f == NULL) || (pyobj_precomp_f == NULL)) {
+	py_retval = libxml_intWrap(-1);
+	return(py_retval);
+    }
+
+#ifdef DEBUG_EXTENSIONS
+    printf("libxslt_xsltRegisterExtModuleElement(%s, %s) called\n",
+	   name, ns_uri);
+#endif
+
+    if (libxslt_extModuleElements == NULL)
+	libxslt_extModuleElements = xmlHashCreate(10);
+
+    if (libxslt_extModuleElementPreComp == NULL)
+	libxslt_extModuleElementPreComp = xmlHashCreate(10);
+
+    if (libxslt_extModuleElements == NULL || libxslt_extModuleElementPreComp == NULL) {
+	py_retval = libxml_intWrap(-1);
+	return(py_retval);
+    }
+
+    ret = xmlHashAddEntry2(libxslt_extModuleElements, name, ns_uri, pyobj_element_f);
+    if (ret != 0) {
+	py_retval = libxml_intWrap(-1);
+	return(py_retval);
+    }
+    Py_XINCREF(pyobj_element_f);
+
+    ret = xmlHashAddEntry2(libxslt_extModuleElementPreComp, name, ns_uri, pyobj_precomp_f);
+    if (ret != 0) {
+	xmlHashRemoveEntry2(libxslt_extModuleElements, name, ns_uri, deallocateCallback);
+	py_retval = libxml_intWrap(-1);
+	return(py_retval);
+    }
+    Py_XINCREF(pyobj_precomp_f);
+
+    ret = xsltRegisterExtModuleElement(name, ns_uri, 
+					libxslt_xsltElementPreCompCallback,
+					libxslt_xsltElementTransformCallback);
+    py_retval = libxml_intWrap((int) ret);
+    return(py_retval);
+}
+static void
+libxslt_xmlXPathFuncCallback(xmlXPathParserContextPtr ctxt, int nargs) {
+    PyObject *list, *cur, *result;
+    xmlXPathObjectPtr obj;
+    xmlXPathContextPtr rctxt;
+    PyObject *current_function = NULL;
+    const xmlChar *name;
+    const xmlChar *ns_uri;
+    int i;
+
+    if (ctxt == NULL)
+	return;
+    rctxt = ctxt->context;
+    if (rctxt == NULL)
+	return;
+    name = rctxt->function;
+    ns_uri = rctxt->functionURI;
+#ifdef DEBUG_XPATH
+    printf("libxslt_xmlXPathFuncCallback called name %s URI %s\n", name, ns_uri);
+#endif
+
+    /*
+     * Find the function, it should be there it was there at lookup
+     */
+    current_function = xmlHashLookup2(libxslt_extModuleFunctions,
+	                              name, ns_uri);
+    if (current_function == NULL) {
+	printf("libxslt_xmlXPathFuncCallback: internal error %s not found !\n",
+	       name);
+	return;
+    }
+
+    list = PyTuple_New(nargs + 1);
+    PyTuple_SetItem(list, 0, libxml_xmlXPathParserContextPtrWrap(ctxt));
+    for (i = nargs - 1;i >= 0;i--) {
+	obj = valuePop(ctxt);
+	cur = libxml_xmlXPathObjectPtrWrap(obj);
+	PyTuple_SetItem(list, i + 1, cur);
+    }
+
+    Py_INCREF(current_function);
+    result = PyEval_CallObject(current_function, list);
+    Py_DECREF(current_function);
+    Py_DECREF(list);
+
+    /* Check for null in case of exception */
+    if (result != NULL) {
+	obj = libxml_xmlXPathObjectPtrConvert(result);
+	valuePush(ctxt, obj);
+    }
+}
+
+PyObject *
+libxslt_xsltRegisterExtModuleFunction(PyObject *self ATTRIBUTE_UNUSED,
+	                              PyObject *args) {
+    PyObject *py_retval;
+    int ret = 0;
+    xmlChar *name;
+    xmlChar *ns_uri;
+    PyObject *pyobj_f;
+
+    if (!PyArg_ParseTuple(args, (char *)"szO:registerExtModuleFunction",
+		          &name, &ns_uri, &pyobj_f))
+        return(NULL);
+
+    if ((name == NULL) || (pyobj_f == NULL)) {
+	py_retval = libxml_intWrap(-1);
+	return(py_retval);
+    }
+
+#ifdef DEBUG_XPATH
+    printf("libxslt_xsltRegisterExtModuleFunction(%s, %s) called\n",
+	   name, ns_uri);
+#endif
+
+    if (libxslt_extModuleFunctions == NULL)
+	libxslt_extModuleFunctions = xmlHashCreate(10);
+    if (libxslt_extModuleFunctions == NULL) {
+	py_retval = libxml_intWrap(-1);
+	return(py_retval);
+    }
+    ret = xmlHashAddEntry2(libxslt_extModuleFunctions, name, ns_uri, pyobj_f);
+    if (ret != 0) {
+	py_retval = libxml_intWrap(-1);
+	return(py_retval);
+    }
+    Py_XINCREF(pyobj_f);
+
+    ret = xsltRegisterExtModuleFunction(name, ns_uri, 
+	                                     libxslt_xmlXPathFuncCallback);
+    py_retval = libxml_intWrap((int) ret);
+    return(py_retval);
+}
+
+/************************************************************************
+ *									*
+ *			Some customized front-ends			*
+ *									*
+ ************************************************************************/
+
+PyObject *
+libxslt_xsltApplyStylesheet(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;
+    xmlDocPtr c_retval;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+    xmlDocPtr doc;
+    PyObject *pyobj_doc;
+    PyObject *pyobj_params;
+    const char **params = NULL;
+    int len = 0, i = 0, j;
+    PyObject *name;
+    PyObject *value;
+
+    if (!PyArg_ParseTuple(args, (char *) "OOO:xsltApplyStylesheet",
+		          &pyobj_style, &pyobj_doc, &pyobj_params))
+        return(NULL);
+
+    if (pyobj_params != Py_None) {
+	if (PyDict_Check(pyobj_params)) {
+	    len = PyDict_Size(pyobj_params);
+	    if (len > 0) {
+		params = (const char **) xmlMalloc((len + 1) * 2 *
+			                           sizeof(char *));
+		if (params == NULL) {
+		    printf("libxslt_xsltApplyStylesheet: out of memory\n");
+		    Py_INCREF(Py_None);
+		    return(Py_None);
+		}
+		j = 0;
+		while (PyDict_Next(pyobj_params, &i, &name, &value)) {
+		    const char *tmp;
+		    int size;
+
+		    tmp = PyString_AS_STRING(name);
+		    size = PyString_GET_SIZE(name);
+		    params[j * 2] = (char *) xmlCharStrndup(tmp, size);
+		    if (PyString_Check(value)) {
+			tmp = PyString_AS_STRING(value);
+			size = PyString_GET_SIZE(value);
+			params[(j * 2) + 1] = (char *)
+			    xmlCharStrndup(tmp, size);
+		    } else {
+			params[(j * 2) + 1] = NULL;
+		    }
+		    j = j + 1;
+		}
+		params[j * 2] = NULL;
+		params[(j * 2) + 1] = NULL;
+	    }
+	} else {
+	    printf("libxslt_xsltApplyStylesheet: parameters not a dict\n");
+	    Py_INCREF(Py_None);
+	    return(Py_None);
+	}
+    }
+    style = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+    doc = (xmlDocPtr) PyxmlNode_Get(pyobj_doc);
+
+    c_retval = xsltApplyStylesheet(style, doc, params);
+    py_retval = libxml_xmlDocPtrWrap((xmlDocPtr) c_retval);
+    if (params != NULL) {
+	if (len > 0) {
+	    for (i = 0;i < 2 * len;i++) {
+		if (params[i] != NULL)
+		    xmlFree((char *)params[i]);
+	    }
+	    xmlFree(params);
+	}
+    }
+    return(py_retval);
+}
+
+PyObject *
+libxslt_xsltSaveResultToString(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+    PyObject *py_retval;        /* our final return value, a python string   */ 
+    xmlChar  *buffer;
+    int       size    = 0;
+    int       emitted = 0;
+    xmlDocPtr result;
+    PyObject *pyobj_result;
+    xsltStylesheetPtr style;
+    PyObject *pyobj_style;
+
+    if (!PyArg_ParseTuple(args, (char *)"OO:xsltSaveResultToString", &pyobj_style, &pyobj_result))
+      goto FAIL;
+    result = (xmlDocPtr) PyxmlNode_Get(pyobj_result);
+    style  = (xsltStylesheetPtr) Pystylesheet_Get(pyobj_style);
+
+     
+    /* FIXME: We should probably add more restrictive error checking
+     * and raise an error instead of "just" returning NULL.
+     * FIXME: Documentation and code for xsltSaveResultToString diff
+     * -> emmitted will never be positive non-null. 
+     */
+    emitted = xsltSaveResultToString(&buffer, &size, result, style);
+    if(!buffer || emitted < 0) 
+      goto FAIL;
+    /* We haven't tested the aberrant case of a transformation that
+     * renders to an empty string. For now we try to play it save.
+     */
+    if(size)
+      {
+      buffer[size] = '\0';
+      py_retval = PyString_FromString((char *) buffer); 
+      xmlFree(buffer);
+      }
+    else
+      py_retval = PyString_FromString("");
+    return(py_retval);
+ FAIL:
+    return(0);
+}
+
+
+/************************************************************************
+ *									*
+ *			Error message callback				*
+ *									*
+ ************************************************************************/
+
+static PyObject *libxslt_xsltPythonErrorFuncHandler = NULL;
+static PyObject *libxslt_xsltPythonErrorFuncCtxt = NULL;
+
+static void
+libxslt_xsltErrorFuncHandler(void *ctx ATTRIBUTE_UNUSED, const char *msg,
+                           ...)
+{
+    int size;
+    int chars;
+    char *larger;
+    va_list ap;
+    char *str;
+    PyObject *list;
+    PyObject *message;
+    PyObject *result;
+
+#ifdef DEBUG_ERROR
+    printf("libxslt_xsltErrorFuncHandler(%p, %s, ...) called\n", ctx, msg);
+#endif
+
+
+    if (libxslt_xsltPythonErrorFuncHandler == NULL) {
+        va_start(ap, msg);
+        vfprintf(stderr, msg, ap);
+        va_end(ap);
+    } else {
+        str = (char *) xmlMalloc(150);
+        if (str == NULL)
+            return;
+
+        size = 150;
+
+        while (1) {
+            va_start(ap, msg);
+            chars = vsnprintf(str, size, msg, ap);
+            va_end(ap);
+            if ((chars > -1) && (chars < size))
+                break;
+            if (chars > -1)
+                size += chars + 1;
+            else
+                size += 100;
+            if ((larger = (char *) xmlRealloc(str, size)) == NULL) {
+                xmlFree(str);
+                return;
+            }
+            str = larger;
+        }
+
+        list = PyTuple_New(2);
+        PyTuple_SetItem(list, 0, libxslt_xsltPythonErrorFuncCtxt);
+        Py_XINCREF(libxslt_xsltPythonErrorFuncCtxt);
+        message = libxml_charPtrWrap(str);
+        PyTuple_SetItem(list, 1, message);
+        result = PyEval_CallObject(libxslt_xsltPythonErrorFuncHandler, list);
+        Py_XDECREF(list);
+        Py_XDECREF(result);
+    }
+}
+
+static void
+libxslt_xsltErrorInitialize(void)
+{
+#ifdef DEBUG_ERROR
+    printf("libxslt_xsltErrorInitialize() called\n");
+#endif
+    xmlSetGenericErrorFunc(NULL, libxslt_xsltErrorFuncHandler);
+    xsltSetGenericErrorFunc(NULL, libxslt_xsltErrorFuncHandler);
+}
+
+PyObject *
+libxslt_xsltRegisterErrorHandler(PyObject * self ATTRIBUTE_UNUSED,
+                               PyObject * args)
+{
+    PyObject *py_retval;
+    PyObject *pyobj_f;
+    PyObject *pyobj_ctx;
+
+    if (!PyArg_ParseTuple
+        (args, (char *) "OO:xmlRegisterErrorHandler", &pyobj_f,
+         &pyobj_ctx))
+        return (NULL);
+
+#ifdef DEBUG_ERROR
+    printf("libxml_registerXPathFunction(%p, %p) called\n", pyobj_ctx,
+           pyobj_f);
+#endif
+
+    if (libxslt_xsltPythonErrorFuncHandler != NULL) {
+        Py_XDECREF(libxslt_xsltPythonErrorFuncHandler);
+    }
+    if (libxslt_xsltPythonErrorFuncCtxt != NULL) {
+        Py_XDECREF(libxslt_xsltPythonErrorFuncCtxt);
+    }
+
+    Py_XINCREF(pyobj_ctx);
+    Py_XINCREF(pyobj_f);
+
+    /* TODO: check f is a function ! */
+    libxslt_xsltPythonErrorFuncHandler = pyobj_f;
+    libxslt_xsltPythonErrorFuncCtxt = pyobj_ctx;
+
+    py_retval = libxml_intWrap(1);
+    return (py_retval);
+}
+
+/************************************************************************
+ *									*
+ *			Extension classes				*
+ *									*
+ ************************************************************************/
+
+static xmlHashTablePtr libxslt_extModuleClasses = NULL;
+
+static void *
+libxslt_xsltPythonExtModuleStyleInit(xsltStylesheetPtr style,
+	                            const xmlChar * URI) {
+    PyObject *result = NULL;
+    PyObject *class = NULL;
+
+#ifdef DEBUG_EXTENSIONS
+    printf("libxslt_xsltPythonExtModuleStyleInit(%p, %s) called\n",
+	   style, URI);
+#endif
+
+    if ((style == NULL) || (URI == NULL))
+	return(NULL);
+
+    /*
+     * Find the function, it should be there it was there at lookup
+     */
+    class = xmlHashLookup(libxslt_extModuleClasses, URI);
+    if (class == NULL) {
+	fprintf(stderr, "libxslt_xsltPythonExtModuleStyleInit: internal error %s not found !\n", URI);
+	return(NULL);
+    }
+
+    if (PyObject_HasAttrString(class, (char *) "_styleInit")) {
+	result = PyObject_CallMethod(class, (char *) "_styleInit",
+		     (char *) "Os", libxslt_xsltStylesheetPtrWrap(style), URI);
+    }
+    return((void *)result);
+}
+static void
+libxslt_xsltPythonExtModuleStyleShutdown(xsltStylesheetPtr style,
+	                                const xmlChar * URI, void *data) {
+    PyObject *class = NULL;
+    PyObject *result;
+
+#ifdef DEBUG_EXTENSIONS
+    printf("libxslt_xsltPythonExtModuleStyleShutdown(%p, %s, %p) called\n",
+	   style, URI, data);
+#endif
+
+    if ((style == NULL) || (URI == NULL))
+	return;
+
+    /*
+     * Find the function, it should be there it was there at lookup
+     */
+    class = xmlHashLookup(libxslt_extModuleClasses, URI);
+    if (class == NULL) {
+	fprintf(stderr, "libxslt_xsltPythonExtModuleStyleShutdown: internal error %s not found !\n", URI);
+	return;
+    }
+
+    if (PyObject_HasAttrString(class, (char *) "_styleShutdown")) {
+	result = PyObject_CallMethod(class, (char *) "_styleShutdown",
+		     (char *) "OsO", libxslt_xsltStylesheetPtrWrap(style),
+		     URI, (PyObject *) data);
+	Py_XDECREF(result);
+	Py_XDECREF((PyObject *)data);
+    }
+}
+
+static void *
+libxslt_xsltPythonExtModuleCtxtInit(xsltTransformContextPtr ctxt,
+	                            const xmlChar * URI) {
+    PyObject *result = NULL;
+    PyObject *class = NULL;
+
+#ifdef DEBUG_EXTENSIONS
+    printf("libxslt_xsltPythonExtModuleCtxtInit(%p, %s) called\n",
+	   ctxt, URI);
+#endif
+
+    if ((ctxt == NULL) || (URI == NULL))
+	return(NULL);
+
+    /*
+     * Find the function, it should be there it was there at lookup
+     */
+    class = xmlHashLookup(libxslt_extModuleClasses, URI);
+    if (class == NULL) {
+	fprintf(stderr, "libxslt_xsltPythonExtModuleCtxtInit: internal error %s not found !\n", URI);
+	return(NULL);
+    }
+
+    if (PyObject_HasAttrString(class, (char *) "_ctxtInit")) {
+	result = PyObject_CallMethod(class, (char *) "_ctxtInit",
+		     (char *) "Os", libxslt_xsltTransformContextPtrWrap(ctxt),
+		     URI);
+    }
+    return((void *)result);
+}
+static void
+libxslt_xsltPythonExtModuleCtxtShutdown(xsltTransformContextPtr ctxt,
+	                                const xmlChar * URI, void *data) {
+    PyObject *class = NULL;
+    PyObject *result;
+
+#ifdef DEBUG_EXTENSIONS
+    printf("libxslt_xsltPythonExtModuleCtxtShutdown(%p, %s, %p) called\n",
+	   ctxt, URI, data);
+#endif
+
+    if ((ctxt == NULL) || (URI == NULL))
+	return;
+
+    /*
+     * Find the function, it should be there it was there at lookup
+     */
+    class = xmlHashLookup(libxslt_extModuleClasses, URI);
+    if (class == NULL) {
+	fprintf(stderr, "libxslt_xsltPythonExtModuleCtxtShutdown: internal error %s not found !\n", URI);
+	return;
+    }
+
+    if (PyObject_HasAttrString(class, (char *) "_ctxtShutdown")) {
+	result = PyObject_CallMethod(class, (char *) "_ctxtShutdown",
+		     (char *) "OsO", libxslt_xsltTransformContextPtrWrap(ctxt),
+		     URI, (PyObject *) data);
+	Py_XDECREF(result);
+	Py_XDECREF((PyObject *)data);
+    }
+}
+
+PyObject *
+libxslt_xsltRegisterExtensionClass(PyObject *self ATTRIBUTE_UNUSED,
+	                           PyObject *args) {
+    PyObject *py_retval;
+    int ret = 0;
+    xmlChar *ns_uri;
+    PyObject *pyobj_c;
+
+    if (!PyArg_ParseTuple(args, (char *)"zO:registerExtensionClass",
+		          &ns_uri, &pyobj_c))
+        return(NULL);
+
+    if ((ns_uri == NULL) || (pyobj_c == NULL)) {
+	py_retval = libxml_intWrap(-1);
+	return(py_retval);
+    }
+
+#ifdef DEBUG_EXTENSIONS
+    printf("libxslt_xsltRegisterExtensionClass(%s) called\n", ns_uri);
+#endif
+
+    if (libxslt_extModuleClasses == NULL)
+	libxslt_extModuleClasses = xmlHashCreate(10);
+    if (libxslt_extModuleClasses == NULL) {
+	py_retval = libxml_intWrap(-1);
+	return(py_retval);
+    }
+    ret = xmlHashAddEntry(libxslt_extModuleClasses, ns_uri, pyobj_c);
+    if (ret != 0) {
+	py_retval = libxml_intWrap(-1);
+	return(py_retval);
+    }
+    Py_XINCREF(pyobj_c);
+
+    ret = xsltRegisterExtModuleFull(ns_uri, 
+       (xsltExtInitFunction) libxslt_xsltPythonExtModuleCtxtInit,
+       (xsltExtShutdownFunction) libxslt_xsltPythonExtModuleCtxtShutdown,
+       (xsltStyleExtInitFunction) libxslt_xsltPythonExtModuleStyleInit,
+       (xsltStyleExtShutdownFunction) libxslt_xsltPythonExtModuleStyleShutdown);
+    py_retval = libxml_intWrap((int) ret);
+    if (ret < 0) {
+	Py_XDECREF(pyobj_c);
+    }
+    return(py_retval);
+}
+
+/************************************************************************
+ *									*
+ *			Integrated cleanup				*
+ *									*
+ ************************************************************************/
+
+PyObject *
+libxslt_xsltPythonCleanup(PyObject *self ATTRIBUTE_UNUSED,
+	                  PyObject *args ATTRIBUTE_UNUSED) {
+
+    if (libxslt_extModuleFunctions != NULL) {
+	xmlHashFree(libxslt_extModuleFunctions, deallocateCallback);
+    }
+    if (libxslt_extModuleElements != NULL) {
+	xmlHashFree(libxslt_extModuleElements, deallocateCallback);
+    }
+    if (libxslt_extModuleElementPreComp != NULL) {
+	xmlHashFree(libxslt_extModuleElementPreComp, deallocateCallback);
+    }
+    if (libxslt_extModuleClasses != NULL) {
+	xmlHashFree(libxslt_extModuleClasses, deallocateClasse);
+    }
+    xsltCleanupGlobals();
+    Py_INCREF(Py_None);
+    return(Py_None);
+}
+
+/************************************************************************
+ *									*
+ *			The registration stuff				*
+ *									*
+ ************************************************************************/
+static PyMethodDef libxsltMethods[] = {
+#include "libxslt-export.c"
+    { NULL, NULL, 0, NULL }
+};
+
+#ifdef MERGED_MODULES
+extern void initlibxml2mod(void);
+#endif
+
+void initlibxsltmod(void) {
+    static int initialized = 0;
+    PyObject *m;
+
+#ifdef MERGED_MODULES
+    initlibxml2mod();
+#endif
+
+    if (initialized != 0)
+	return;
+    m = Py_InitModule((char *)"libxsltmod", libxsltMethods);
+    initialized = 1;
+    /*
+     * Specific XSLT initializations
+     */
+    libxslt_xsltErrorInitialize();
+    xmlInitMemory();
+    xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
+    xmlDefaultSAXHandler.cdataBlock = NULL;
+    /*
+     * Register the EXSLT extensions and the test module
+     */
+    exsltRegisterAll();
+}
+
+

Added: packages/libxslt/branches/upstream/1.1.16/python/libxslt_wrap.h
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/libxslt_wrap.h	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/libxslt_wrap.h	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,49 @@
+#include "libxml_wrap.h"
+#include <libxslt/xslt.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/attributes.h>
+#include <libxslt/documents.h>
+#include <libxslt/extensions.h>
+#include <libxslt/extra.h>
+#include <libxslt/functions.h>
+#include <libxslt/imports.h>
+#include <libxslt/keys.h>
+#include <libxslt/namespaces.h>
+#include <libxslt/numbersInternals.h>
+#include <libxslt/pattern.h>
+#include <libxslt/preproc.h>
+#include <libxslt/templates.h>
+#include <libxslt/transform.h>
+#include <libxslt/variables.h>
+#include <libxslt/xsltconfig.h>
+
+#define Pystylesheet_Get(v) (((v) == Py_None) ? NULL : \
+        (((Pystylesheet_Object *)(v))->obj))
+
+typedef struct {
+    PyObject_HEAD
+    xsltStylesheetPtr obj;
+} Pystylesheet_Object;
+
+#define PytransformCtxt_Get(v) (((v) == Py_None) ? NULL : \
+        (((PytransformCtxt_Object *)(v))->obj))
+
+typedef struct {
+    PyObject_HEAD
+    xsltTransformContextPtr obj;
+} PytransformCtxt_Object;
+
+#define PycompiledStyle_Get(v) (((v) == Py_None) ? NULL : \
+        (((PycompiledStyle_Object *)(v))->obj))
+
+typedef struct {
+    PyObject_HEAD
+    xsltTransformContextPtr obj;
+} PycompiledStyle_Object;
+
+
+PyObject * libxslt_xsltStylesheetPtrWrap(xsltStylesheetPtr ctxt);
+PyObject * libxslt_xsltTransformContextPtrWrap(xsltTransformContextPtr ctxt);
+PyObject * libxslt_xsltStylePreCompPtrWrap(xsltStylePreCompPtr comp);
+PyObject * libxslt_xsltElemPreCompPtrWrap(xsltElemPreCompPtr comp);

Added: packages/libxslt/branches/upstream/1.1.16/python/tests/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/tests/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/tests/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,35 @@
+EXAMPLE_DIR = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION)/examples
+
+TESTSPY=	\
+    basic.py	\
+    exslt.py	\
+    extelem.py	\
+    extfunc.py
+
+XMLS=		\
+    test.xml	\
+    test.xsl
+
+EXTRAS=		\
+    pyxsltproc.py
+
+EXTRA_DIST = $(TESTSPY) $(XMLS) $(EXTRAS)
+
+if WITH_PYTHON
+tests: $(TESTSPY)
+	-@(PYTHONPATH="`pwd`/..:`pwd`/../.libs:$(srcdir)/.."; \
+	  if test "x$(LIBXML_SRC)" != "x" ; then PYTHONPATH="$$PYTHONPATH:$(LIBXML_SRC)/python:$(LIBXML_SRC)/python/.libs"; fi; \
+	  export PYTHONPATH; \
+	   for test in $(TESTSPY) ; do echo "-- $$test" ; (cd $(srcdir) && $(PYTHON) $$test ); done)
+else
+tests:
+endif
+
+clean:
+	rm -f *.pyc core
+
+install-data-local:
+	$(mkinstalldirs) $(DESTDIR)$(EXAMPLE_DIR)
+	-(for test in $(TESTSPY) $(XMLS) $(EXTRAS); \
+	  do @INSTALL@ -m 0644 $(srcdir)/$$test $(DESTDIR)$(EXAMPLE_DIR) ; done)
+

Added: packages/libxslt/branches/upstream/1.1.16/python/tests/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/tests/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/tests/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,397 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = python/tests
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXAMPLE_DIR = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION)/examples
+TESTSPY = \
+    basic.py	\
+    exslt.py	\
+    extelem.py	\
+    extfunc.py
+
+XMLS = \
+    test.xml	\
+    test.xsl
+
+EXTRAS = \
+    pyxsltproc.py
+
+EXTRA_DIST = $(TESTSPY) $(XMLS) $(EXTRAS)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  python/tests/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  python/tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-data-local install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am uninstall-info-am
+
+
+ at WITH_PYTHON_TRUE@tests: $(TESTSPY)
+ at WITH_PYTHON_TRUE@	-@(PYTHONPATH="`pwd`/..:`pwd`/../.libs:$(srcdir)/.."; \
+ at WITH_PYTHON_TRUE@	  if test "x$(LIBXML_SRC)" != "x" ; then PYTHONPATH="$$PYTHONPATH:$(LIBXML_SRC)/python:$(LIBXML_SRC)/python/.libs"; fi; \
+ at WITH_PYTHON_TRUE@	  export PYTHONPATH; \
+ at WITH_PYTHON_TRUE@	   for test in $(TESTSPY) ; do echo "-- $$test" ; (cd $(srcdir) && $(PYTHON) $$test ); done)
+ at WITH_PYTHON_FALSE@tests:
+
+clean:
+	rm -f *.pyc core
+
+install-data-local:
+	$(mkinstalldirs) $(DESTDIR)$(EXAMPLE_DIR)
+	-(for test in $(TESTSPY) $(XMLS) $(EXTRAS); \
+	  do @INSTALL@ -m 0644 $(srcdir)/$$test $(DESTDIR)$(EXAMPLE_DIR) ; done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/python/tests/basic.py
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/tests/basic.py	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/tests/basic.py	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+#!/usr/bin/python -u
+import sys
+import libxml2
+# Memory debug specific
+libxml2.debugMemory(1)
+import libxslt
+
+
+
+styledoc = libxml2.parseFile("test.xsl")
+style = libxslt.parseStylesheetDoc(styledoc)
+doc = libxml2.parseFile("test.xml")
+result = style.applyStylesheet(doc, None)
+style.saveResultToFilename("foo", result, 0)
+stringval = style.saveResultToString(result)
+if (len(stringval) != 68):
+  print "Error in saveResultToString"
+  sys.exit(255)
+style.freeStylesheet()
+doc.freeDoc()
+result.freeDoc()
+
+# Memory debug specific
+libxslt.cleanup()
+if libxml2.debugMemory(1) == 0:
+    print "OK"
+else:
+    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+    libxml2.dumpMemory()


Property changes on: packages/libxslt/branches/upstream/1.1.16/python/tests/basic.py
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/python/tests/exslt.py
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/tests/exslt.py	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/tests/exslt.py	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,56 @@
+#!/usr/bin/python -u
+import sys
+import libxml2
+# Memory debug specific
+libxml2.debugMemory(1)
+import libxslt
+
+
+styledoc = libxml2.parseDoc(
+"""<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:str="http://exslt.org/strings"
+    exclude-result-prefixes="str">
+
+<xsl:template match="/">
+<out>;
+  str:tokenize('2001-06-03T11:40:23', '-T:')
+  <xsl:copy-of select="str:tokenize('2001-06-03T11:40:23', '-T:')"/>;
+
+  str:tokenize('date math str')
+  <xsl:copy-of select="str:tokenize('date math str')"/>;
+</out>
+</xsl:template>
+
+</xsl:stylesheet>
+""")
+style = libxslt.parseStylesheetDoc(styledoc)
+doc = libxml2.parseDoc("<doc/>")
+result = style.applyStylesheet(doc, None)
+stringval = style.saveResultToString(result)
+style.freeStylesheet()
+doc.freeDoc()
+result.freeDoc()
+
+expect="""<?xml version="1.0"?>
+<out>;
+  str:tokenize('2001-06-03T11:40:23', '-T:')
+  <token>2001</token><token>06</token><token>03</token><token>11</token><token>40</token><token>23</token>;
+
+  str:tokenize('date math str')
+  <token>date</token><token>math</token><token>str</token>;
+</out>
+"""
+
+if stringval != expect:
+  print "Exslt processing failed"
+  sys.exit(255)
+    
+# Memory debug specific
+libxslt.cleanup()
+if libxml2.debugMemory(1) == 0:
+    print "OK"
+else:
+    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+    libxml2.dumpMemory()


Property changes on: packages/libxslt/branches/upstream/1.1.16/python/tests/exslt.py
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/python/tests/extelem.py
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/tests/extelem.py	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/tests/extelem.py	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,89 @@
+#!/usr/bin/python -u
+import sys
+import string
+import StringIO
+import libxml2
+# Memory debug specific
+libxml2.debugMemory(1)
+import libxslt
+
+EXT_URL="http://example.com/foo"
+
+insertNodeName = None
+transformNodeName = None
+
+def compile_test(style, inst, func):
+    pass
+
+def transform_test(ctx, node, inst, comp):
+    global insertNodeName
+
+    #
+    # Small check to verify the context is correcly accessed
+    #
+    try:
+        #
+        # FIXME add some more sanity checks
+        #
+        tctxt = libxslt.transformCtxt(_obj=ctx)
+        insertNodeName = tctxt.insertNode().name
+
+        # FIXME find and confirm the note being replaced is called 'test'
+        # transformNodeName = libxml2.xmlNode(inst).name
+    except:
+        pass
+
+    tctxt.insertNode().addContent('SUCCESS')
+    
+
+
+styledoc = libxml2.parseDoc("""
+<xsl:stylesheet version='1.0'
+  xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+  xmlns:foo='%s'
+  extension-element-prefixes='foo'>
+
+  <xsl:template match='/'>
+    <article><foo:test>FAILURE</foo:test></article>
+    <deeper><article><foo:test>something<foo:test>nested</foo:test>even</foo:test></article></deeper>
+  </xsl:template>
+</xsl:stylesheet>
+""" % EXT_URL)
+
+style = libxslt.parseStylesheetDoc(styledoc)
+libxslt.registerExtModuleElement("test", EXT_URL, compile_test, transform_test)
+doc = libxml2.parseDoc("<doc/>")
+result = style.applyStylesheet(doc, None)
+style.freeStylesheet()
+doc.freeDoc()
+
+
+extensions = StringIO.StringIO()
+libxslt.debugDumpExtensions(extensions)
+
+if 0 and extensions.buf.find(EXT_URL) < 0:
+    print "Element extension not registered (or dumping broken)"
+    sys.exit(1)
+
+root = result.children
+
+if root.name != "article":
+    print "Unexpected root node name"
+    sys.exit(1)
+if root.content != "SUCCESS":
+    print "Unexpected root node content, extension function failed"
+    sys.exit(1)
+if insertNodeName != 'article':
+    print "The function callback failed to access its context"
+    sys.exit(1)
+
+result.dump(sys.stdout)
+result.freeDoc()
+
+# Memory debug specific
+libxslt.cleanup()
+if libxml2.debugMemory(1) == 0:
+    print "OK"
+else:
+    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+    libxml2.dumpMemory()

Added: packages/libxslt/branches/upstream/1.1.16/python/tests/extfunc.py
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/tests/extfunc.py	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/tests/extfunc.py	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,66 @@
+#!/usr/bin/python -u
+import sys
+import string
+import libxml2
+# Memory debug specific
+libxml2.debugMemory(1)
+import libxslt
+
+nodeName = None
+
+def f(ctx, str):
+    global nodeName
+
+    #
+    # Small check to verify the context is correcly accessed
+    #
+    try:
+        pctxt = libxslt.xpathParserContext(_obj=ctx)
+        ctxt = pctxt.context()
+        tctxt = ctxt.transformContext()
+        nodeName = tctxt.insertNode().name
+    except:
+        pass
+
+    return string.upper(str)
+
+libxslt.registerExtModuleFunction("foo", "http://example.com/foo", f)
+
+styledoc = libxml2.parseDoc("""
+<xsl:stylesheet version='1.0'
+  xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+  xmlns:foo='http://example.com/foo'
+  exclude-result-prefixes='foo'>
+
+  <xsl:param name='bar'>failure</xsl:param>
+  <xsl:template match='/'>
+    <article><xsl:value-of select='foo:foo($bar)'/></article>
+  </xsl:template>
+</xsl:stylesheet>
+""")
+style = libxslt.parseStylesheetDoc(styledoc)
+doc = libxml2.parseDoc("<doc/>")
+result = style.applyStylesheet(doc, { "bar": "'success'" })
+style.freeStylesheet()
+doc.freeDoc()
+
+root = result.children
+if root.name != "article":
+    print "Unexpected root node name"
+    sys.exit(1)
+if root.content != "SUCCESS":
+    print "Unexpected root node content, extension function failed"
+    sys.exit(1)
+if nodeName != 'article':
+    print "The function callback failed to access its context"
+    sys.exit(1)
+
+result.freeDoc()
+
+# Memory debug specific
+libxslt.cleanup()
+if libxml2.debugMemory(1) == 0:
+    print "OK"
+else:
+    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+    libxml2.dumpMemory()


Property changes on: packages/libxslt/branches/upstream/1.1.16/python/tests/extfunc.py
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/python/tests/pyxsltproc.py
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/tests/pyxsltproc.py	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/tests/pyxsltproc.py	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,298 @@
+#!/usr/bin/python -u
+#
+# The exercise of rewriting xsltproc on top of the python
+# bindings, not complete yet and shows up the things missing
+# from the existing python interfaces
+#
+import sys
+import time
+import posix
+import string
+import libxml2
+# Memory debug specific
+libxml2.debugMemory(1)
+import libxslt
+
+debug = 0
+repeat = 0
+timing = 0
+novalid = 0
+noout = 0
+docbook = 0
+html = 0
+xinclude = 0
+profile = 0
+params = {}
+output = None
+errorno = 0
+
+#
+# timing
+#
+begin = 0
+endtime = 0
+def startTimer():
+    global begin
+
+    begin = time.time()
+
+def endTimer(msg):
+    global begin
+    global endtime
+
+    endtime = time.time()
+    print "%s took %d ms" % (msg, (endtime - begin) * 1000)
+
+def xsltProcess(doc, cur, filename):
+    global timing
+    global xinclude
+    global params
+    global html
+
+    if xinclude:
+        if timing:
+            startTimer()
+        doc.XIncludeProcess()
+        if timing:
+            endTimer("XInclude processing %s" % (filename))
+
+    if timing:
+        startTimer()
+    if output == None:
+        if repeat != 0:
+            for j in range(1, repeat):
+                res = cur.applyStylesheet(doc, params)
+                res.freeDoc()
+                doc.freeDoc()
+                if html == 1:
+                    doc = libxml2.htmlParseFile(filename, None)
+                else:
+                    doc = libxml2.parseFile(filename, None)
+#        ctxt = libxslt.newTransformContext(doc)
+#        if ctxt == None:
+#            return
+        if profile:
+            print "TODO: Profiling not yet supported"
+        else:
+            res = cur.applyStylesheet(doc, params)
+        if timing:
+            if repeat != 0:
+                endTimer("Applying stylesheet %d times" % (repeat))
+            else:
+                endTimer("Applying stylesheet")
+        doc.freeDoc()
+        if res == None:
+            print "no result for %s" % (filename)
+            return
+        if noout != 0:
+            res.freeDoc()
+            return
+        if debug == 1:
+            res.debugDumpDocument(None)
+        else:
+            if timing:
+                startTimer()
+            cur.saveResultToFilename("-", res, 0)
+            if timing:
+                endTimer("Saving result")
+        res.freeDoc()
+    else:
+        print "TODO: xsltRunStylesheet not yet mapped"
+
+def usage(name = 'pyxsltproc'):
+    print "Usage: %s [options] stylesheet file [file ...]" % (name)
+    print "a reimplementation of xsltproc(1) on top of libxslt-python"
+    print "   Options:"
+    print "\t--version or -V: show the version of libxml and libxslt used"
+    print "\t--verbose or -v: show logs of what's happening"
+    print "\t--output file or -o file: save to a given file"
+    print "\t--timing: display the time used"
+    print "\t--repeat: run the transformation 20 times"
+    print "\t--debug: dump the tree of the result instead"
+    print "\t--novalid skip the Dtd loading phase"
+    print "\t--noout: do not dump the result"
+    print "\t--maxdepth val : increase the maximum depth"
+    print "\t--html: the input document is(are) an HTML file(s)"
+    print "\t--param name value : pass a (parameter,value) pair"
+    print "\t       value is an XPath expression."
+    print "\t       string values must be quoted like \"'string'\""
+    print "\t       or use stringparam to avoid it"
+    print "\t--stringparam name value : pass a (parameter,string value) pair"
+    print "\t--nonet refuse to fetch DTDs or entities over network"
+    print "\t--catalogs : use SGML catalogs from $SGML_CATALOG_FILES"
+    print "\t             otherwise XML Catalogs starting from "
+    print "\t         file:///etc/xml/catalog are activated by default"
+    print "\t--xinclude : do XInclude processing on document intput"
+    print "\t--profile or --norman : dump profiling informations "
+    print "\nProject libxslt home page: http://xmlsoft.org/XSLT/"
+    print "To report bugs and get help: http://xmlsoft.org/XSLT/bugs.html"
+
+def main(args = None):
+    global debug
+    global repeat
+    global timing
+    global novalid
+    global noout
+    global docbook
+    global html
+    global xinclude
+    global profile
+    global params
+    global output
+    global errorno
+
+    done = 0
+    cur = None
+
+    if not args:
+        args = sys.argv[1:]
+        if len(args) <= 0:
+            usage(sys.argv[0])
+            
+
+    i = 0
+    while i < len(args):
+        if args[i] == "-":
+            break
+        if args[i][0] != '-':
+            i = i + 1
+            continue
+        if args[i] == "-timing" or args[i] == "--timing":
+            timing = 1
+        elif args[i] == "-debug" or args[i] == "--debug":
+            debug = 1
+        elif args[i] == "-verbose" or args[i] == "--verbose" or \
+             args[i] == "-v":
+            print "TODO: xsltSetGenericDebugFunc() mapping missing"
+        elif args[i] == "-version" or args[i] == "--version" or \
+             args[i] == "-V":
+            print "TODO: version informations mapping missing"
+        elif args[i] == "-verbose" or args[i] == "--verbose" or \
+             args[i] == "-v":
+            if repeat == 0:
+                repeat = 20
+            else:
+                repeat = 100
+        elif args[i] == "-novalid" or args[i] == "--novalid":
+            print "TODO: xmlLoadExtDtdDefaultValue mapping missing"
+            novalid = 1
+        elif args[i] == "-noout" or args[i] == "--noout":
+            noout = 1
+        elif args[i] == "-html" or args[i] == "--html":
+            html = 1
+        elif args[i] == "-nonet" or args[i] == "--nonet":
+            print "TODO: xmlSetExternalEntityLoader mapping missing"
+            nonet = 1
+        elif args[i] == "-catalogs" or args[i] == "--catalogs":
+            try:
+                catalogs = posix.environ['SGML_CATALOG_FILES']
+            except:
+                catalogs = None
+            if catalogs != none:
+                libxml2.xmlLoadCatalogs(catalogs)
+            else:
+                print "Variable $SGML_CATALOG_FILES not set"
+        elif args[i] == "-xinclude" or args[i] == "--xinclude":
+            xinclude = 1
+            libxslt.setXIncludeDefault(1)
+        elif args[i] == "-param" or args[i] == "--param":
+            i = i + 1
+            params[args[i]] = args[i + 1]
+            i = i + 1
+        elif args[i] == "-stringparam" or args[i] == "--stringparam":
+            i = i + 1
+            params[args[i]] = "'%s'" % (args[i + 1])
+            i = i + 1
+        elif args[i] == "-maxdepth" or args[i] == "--maxdepth":
+            print "TODO: xsltMaxDepth mapping missing"
+        else:
+            print "Unknown option %s" % (args[i])
+            usage()
+            return(3)
+        
+        
+        
+        
+        i = i + 1
+        
+    libxml2.lineNumbersDefault(1)
+    libxml2.substituteEntitiesDefault(1)
+    # TODO: xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS
+    # if novalid:
+    # TODO: xmlLoadExtDtdDefaultValue = 0
+
+    # TODO libxslt.exsltRegisterAll();
+    libxslt.registerTestModule()
+
+    i = 0
+    while i < len(args) and done == 0:
+        if args[i] == "-maxdepth" or args[i] == "--maxdepth":
+            i = i + 2
+            continue
+        if args[i] == "-o" or args[i] == "-output" or args[i] == "--output":
+            i = i + 2
+            continue
+        if args[i] == "-param" or args[i] == "--param":
+            i = i + 3
+            continue
+        if args[i] == "-stringparam" or args[i] == "--stringparam":
+            i = i + 3
+            continue
+        if args[i] != "-" and args[i][0] == '-':
+            i = i + 1
+            continue
+        if timing:
+            startTimer()
+        style = libxml2.parseFile(args[i])
+        if timing:
+            endTimer("Parsing stylesheet %s" % (args[i]))
+        if style == None:
+            print "cannot parse %s" % (args[i])
+            cur = None
+            errorno = 4
+            done = 1
+        else:
+            cur = libxslt.loadStylesheetPI(style)
+            if cur != None:
+                xsltProcess(style, cur, args[i])
+                cur = None
+            else:
+                cur = libxslt.parseStylesheetDoc(style)
+                if cur == None:
+                    style.freeDoc()
+                    errorno = 5
+                    done = 1
+        i = i + 1
+        break
+
+    while i < len(args) and done == 0 and cur != None:
+        if timing:
+            startTimer()
+        if html:
+            doc = libxml2.htmlParseFile(args[i], None)
+        else:
+            doc = libxml2.parseFile(args[i])
+        if doc == None:
+            print "unable to parse %s" % (args[i])
+            errorno = 6
+            i = i + 1
+            continue
+        if timing:
+            endTimer("Parsing document %s" % (args[i]))
+        xsltProcess(doc, cur, args[i])
+        i = i + 1
+
+    if cur != None:
+        cur.freeStylesheet()
+    params = None
+
+if __name__ == "__main__":
+    main()
+
+# Memory debug specific
+libxslt.cleanup()
+if libxml2.debugMemory(1) != 0:
+    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+    libxml2.dumpMemory()
+
+sys.exit(errorno)


Property changes on: packages/libxslt/branches/upstream/1.1.16/python/tests/pyxsltproc.py
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/python/tests/test.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/tests/test.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/tests/test.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<test/>

Added: packages/libxslt/branches/upstream/1.1.16/python/tests/test.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/tests/test.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/tests/test.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="/">
+    <article>
+      <title>Hello World</title>
+    </article>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/python/types.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/python/types.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/python/types.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,561 @@
+/*
+xmlParserInputPtr xmlNoNetExternalEntityLoader(const char *URL,
+	                                       const char *ID,
+					       xmlParserCtxtPtr ctxt);
+
+ * types.c: converter functions between the internal representation
+ *          and the Python objects
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+#include "libxml_wrap.h"
+
+PyObject *
+libxml_intWrap(int val)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_intWrap: val = %d\n", val);
+#endif
+    ret = PyInt_FromLong((long) val);
+    return (ret);
+}
+
+PyObject *
+libxml_longWrap(long val)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_longWrap: val = %ld\n", val);
+#endif
+    ret = PyInt_FromLong(val);
+    return (ret);
+}
+
+PyObject *
+libxml_doubleWrap(double val)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_doubleWrap: val = %f\n", val);
+#endif
+    ret = PyFloat_FromDouble((double) val);
+    return (ret);
+}
+
+PyObject *
+libxml_charPtrWrap(char *str)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlcharPtrWrap: str = %s\n", str);
+#endif
+    if (str == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    /* TODO: look at deallocation */
+    ret = PyString_FromString(str);
+    xmlFree(str);
+    return (ret);
+}
+
+PyObject *
+libxml_charPtrConstWrap(const char *str)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlcharPtrWrap: str = %s\n", str);
+#endif
+    if (str == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    /* TODO: look at deallocation */
+    ret = PyString_FromString(str);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlCharPtrWrap(xmlChar * str)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlCharPtrWrap: str = %s\n", str);
+#endif
+    if (str == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    /* TODO: look at deallocation */
+    ret = PyString_FromString((char *) str);
+    xmlFree(str);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlCharPtrConstWrap(const xmlChar * str)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlCharPtrWrap: str = %s\n", str);
+#endif
+    if (str == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    /* TODO: look at deallocation */
+    ret = PyString_FromString((char *) str);
+    return (ret);
+}
+
+PyObject *
+libxml_constcharPtrWrap(const char *str)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlcharPtrWrap: str = %s\n", str);
+#endif
+    if (str == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    /* TODO: look at deallocation */
+    ret = PyString_FromString(str);
+    return (ret);
+}
+
+PyObject *
+libxml_constxmlCharPtrWrap(const xmlChar * str)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlCharPtrWrap: str = %s\n", str);
+#endif
+    if (str == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    /* TODO: look at deallocation */
+    ret = PyString_FromString((char *) str);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlDocPtrWrap(xmlDocPtr doc)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlDocPtrWrap: doc = %p\n", doc);
+#endif
+    if (doc == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    /* TODO: look at deallocation */
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) doc, (char *) "xmlDocPtr",
+                                     NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlNodePtrWrap(xmlNodePtr node)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlNodePtrWrap: node = %p\n", node);
+#endif
+    if (node == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) node, (char *) "xmlNodePtr",
+                                     NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlURIPtrWrap(xmlURIPtr uri)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlURIPtrWrap: uri = %p\n", uri);
+#endif
+    if (uri == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) uri, (char *) "xmlURIPtr",
+                                     NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlNsPtrWrap(xmlNsPtr ns)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlNsPtrWrap: node = %p\n", ns);
+#endif
+    if (ns == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) ns, (char *) "xmlNsPtr",
+                                     NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlAttrPtrWrap(xmlAttrPtr attr)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlAttrNodePtrWrap: attr = %p\n", attr);
+#endif
+    if (attr == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) attr, (char *) "xmlAttrPtr",
+                                     NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlAttributePtrWrap(xmlAttributePtr attr)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlAttributePtrWrap: attr = %p\n", attr);
+#endif
+    if (attr == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) attr,
+                                     (char *) "xmlAttributePtr", NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlElementPtrWrap(xmlElementPtr elem)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlElementNodePtrWrap: elem = %p\n", elem);
+#endif
+    if (elem == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) elem,
+                                     (char *) "xmlElementPtr", NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlXPathContextPtrWrap: ctxt = %p\n", ctxt);
+#endif
+    if (ctxt == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) ctxt,
+                                     (char *) "xmlXPathContextPtr", NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlXPathParserContextPtrWrap(xmlXPathParserContextPtr ctxt)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlXPathParserContextPtrWrap: ctxt = %p\n", ctxt);
+#endif
+    if (ctxt == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret = PyCObject_FromVoidPtrAndDesc((void *) ctxt,
+                                       (char *) "xmlXPathParserContextPtr",
+                                       NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlParserCtxtPtrWrap: ctxt = %p\n", ctxt);
+#endif
+    if (ctxt == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) ctxt,
+                                     (char *) "xmlParserCtxtPtr", NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlXPathObjectPtrWrap: ctxt = %p\n", obj);
+#endif
+    if (obj == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    switch (obj->type) {
+        case XPATH_XSLT_TREE: {
+            if ((obj->nodesetval == NULL) ||
+		(obj->nodesetval->nodeNr == 0) ||
+		(obj->nodesetval->nodeTab == NULL)) {
+                ret = PyList_New(0);
+	    } else {
+		int i, len = 0;
+		xmlNodePtr node;
+
+		node = obj->nodesetval->nodeTab[0]->children;
+		while (node != NULL) {
+		    len++;
+		    node = node->next;
+		}
+		ret = PyList_New(len);
+		node = obj->nodesetval->nodeTab[0]->children;
+		for (i = 0;i < len;i++) {
+                    PyList_SetItem(ret, i, libxml_xmlNodePtrWrap(node));
+		    node = node->next;
+		}
+	    }
+	    /*
+	     * Return now, do not free the object passed down
+	     */
+	    return (ret);
+	}
+        case XPATH_NODESET:
+            if ((obj->nodesetval == NULL)
+                || (obj->nodesetval->nodeNr == 0)) {
+                ret = PyList_New(0);
+	    } else {
+                int i;
+                xmlNodePtr node;
+
+                ret = PyList_New(obj->nodesetval->nodeNr);
+                for (i = 0; i < obj->nodesetval->nodeNr; i++) {
+                    node = obj->nodesetval->nodeTab[i];
+                    /* TODO: try to cast directly to the proper node type */
+                    PyList_SetItem(ret, i, libxml_xmlNodePtrWrap(node));
+                }
+            }
+            break;
+        case XPATH_BOOLEAN:
+            ret = PyInt_FromLong((long) obj->boolval);
+            break;
+        case XPATH_NUMBER:
+            ret = PyFloat_FromDouble(obj->floatval);
+            break;
+        case XPATH_STRING:
+            ret = PyString_FromString((char *) obj->stringval);
+            break;
+        case XPATH_POINT:
+        case XPATH_RANGE:
+        case XPATH_LOCATIONSET:
+        default:
+#ifdef DEBUG
+            printf("Unable to convert XPath object type %d\n", obj->type);
+#endif
+            Py_INCREF(Py_None);
+            ret = Py_None;
+    }
+    xmlXPathFreeObject(obj);
+    return (ret);
+}
+
+xmlXPathObjectPtr
+libxml_xmlXPathObjectPtrConvert(PyObject * obj)
+{
+    xmlXPathObjectPtr ret = NULL;
+
+#ifdef DEBUG
+    printf("libxml_xmlXPathObjectPtrConvert: obj = %p\n", obj);
+#endif
+    if (obj == NULL) {
+        return (NULL);
+    }
+    if PyFloat_Check
+        (obj) {
+        ret = xmlXPathNewFloat((double) PyFloat_AS_DOUBLE(obj));
+    } else if PyString_Check
+        (obj) {
+        xmlChar *str;
+
+        str = xmlStrndup((const xmlChar *) PyString_AS_STRING(obj),
+                         PyString_GET_SIZE(obj));
+        ret = xmlXPathWrapString(str);
+    } else if PyList_Check
+        (obj) {
+        int i;
+        PyObject *node;
+        xmlNodePtr cur;
+        xmlNodeSetPtr set;
+
+        set = xmlXPathNodeSetCreate(NULL);
+
+        for (i = 0; i < PyList_Size(obj); i++) {
+            node = PyList_GetItem(obj, i);
+            if ((node == NULL) || (node->ob_type == NULL))
+                continue;
+
+            cur = NULL;
+            if (PyCObject_Check(node)) {
+#ifdef DEBUG
+                printf("Got a CObject\n");
+#endif
+                cur = PyxmlNode_Get(node);
+            } else if (PyInstance_Check(node)) {
+                PyInstanceObject *inst = (PyInstanceObject *) node;
+                PyObject *name = inst->in_class->cl_name;
+
+                if PyString_Check
+                    (name) {
+                    char *type = PyString_AS_STRING(name);
+                    PyObject *wrapper;
+
+                    if (!strcmp(type, "xmlNode")) {
+                        wrapper =
+                            PyObject_GetAttrString(node, (char *) "_o");
+                        if (wrapper != NULL) {
+                            cur = PyxmlNode_Get(wrapper);
+                        }
+                    }
+                    }
+            } else {
+#ifdef DEBUG
+                printf("Unknown object in Python return list\n");
+#endif
+            }
+            if (cur != NULL) {
+                xmlXPathNodeSetAdd(set, cur);
+            }
+        }
+        ret = xmlXPathWrapNodeSet(set);
+    } else {
+#ifdef DEBUG
+        printf("Unable to convert Python Object to XPath");
+#endif
+    }
+    Py_DECREF(obj);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlCatalogPtrWrap(xmlCatalogPtr catal)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlNodePtrWrap: catal = %p\n", catal);
+#endif
+    if (catal == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) catal,
+                                     (char *) "xmlCatalogPtr", NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlOutputBufferPtrWrap(xmlOutputBufferPtr buffer)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlOutputBufferPtrWrap: buffer = %p\n", buffer);
+#endif
+    if (buffer == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) buffer,
+                                     (char *) "xmlOutputBufferPtr", NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlParserInputBufferPtrWrap(xmlParserInputBufferPtr buffer)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlParserInputBufferPtrWrap: buffer = %p\n", buffer);
+#endif
+    if (buffer == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) buffer,
+                                     (char *) "xmlParserInputBufferPtr", NULL);
+    return (ret);
+}
+
+PyObject *
+libxml_xmlRegexpPtrWrap(xmlRegexpPtr regexp)
+{
+    PyObject *ret;
+
+#ifdef DEBUG
+    printf("libxml_xmlRegexpPtrWrap: regexp = %p\n", regexp);
+#endif
+    if (regexp == NULL) {
+        Py_INCREF(Py_None);
+        return (Py_None);
+    }
+    ret =
+        PyCObject_FromVoidPtrAndDesc((void *) regexp,
+                                     (char *) "xmlRegexpPtr", NULL);
+    return (ret);
+}

Added: packages/libxslt/branches/upstream/1.1.16/tests/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+## Process this file with automake to produce Makefile.in
+
+SUBDIRS=docs REC1 REC2 REC general namespaces keys numbers documents \
+        extensions reports xmlspec multiple xinclude XSLTMark docbook \
+	exslt plugins
+
+all:
+
+# Each subdirectory has it's own Makefile to cater for the unique
+# requirements of that subdirectory.  In general, xsltproc will be
+# run on the *.xsl / *.xml file combinations, and the output of that
+# run will be compared with the "expected" output contained in *.out
+# and (if errors are expected) in *.err
+test tests:
+	@(cur=`pwd` ; for dir in $(SUBDIRS) ; do cd $$dir ; $(MAKE) CHECKER='$(CHECKER)' tests ; cd $$cur ; done)
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	@echo '## Go get a cup of coffee it is gonna take a while ...'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+full: tests docbook_tests
+
+docbook_tests:
+	@(cd docbook ; $(MAKE) full)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,550 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-exec-recursive install-info-recursive \
+	install-recursive installcheck-recursive installdirs-recursive \
+	pdf-recursive ps-recursive uninstall-info-recursive \
+	uninstall-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+SUBDIRS = docs REC1 REC2 REC general namespaces keys numbers documents \
+        extensions reports xmlspec multiple xinclude XSLTMark docbook \
+	exslt plugins
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(mkdir_p) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+	distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
+	clean clean-generic clean-libtool clean-recursive ctags \
+	ctags-recursive distclean distclean-generic distclean-libtool \
+	distclean-recursive distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-exec install-exec-am install-info \
+	install-info-am install-man install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic maintainer-clean-recursive \
+	mostlyclean mostlyclean-generic mostlyclean-libtool \
+	mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
+	uninstall uninstall-am uninstall-info-am
+
+
+all:
+
+# Each subdirectory has it's own Makefile to cater for the unique
+# requirements of that subdirectory.  In general, xsltproc will be
+# run on the *.xsl / *.xml file combinations, and the output of that
+# run will be compared with the "expected" output contained in *.out
+# and (if errors are expected) in *.err
+test tests:
+	@(cur=`pwd` ; for dir in $(SUBDIRS) ; do cd $$dir ; $(MAKE) CHECKER='$(CHECKER)' tests ; cd $$cur ; done)
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	@echo '## Go get a cup of coffee it is gonna take a while ...'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+full: tests docbook_tests
+
+docbook_tests:
+	@(cd docbook ; $(MAKE) full)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,207 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = 						\
+    article.xsl bigfont.xsl 				\
+    test-10-1.out test-10-1.xml test-10-1.xsl		\
+    test-11.2-1.out test-11.2-1.xml test-11.2-1.xsl	\
+    test-11.2-2.out test-11.2-2.xml test-11.2-2.xsl	\
+    test-11.2-3.out test-11.2-3.xml test-11.2-3.xsl	\
+    test-11.2-4.out test-11.2-4.xml test-11.2-4.xsl	\
+    test-11.2-5.out test-11.2-5.xml test-11.2-5.xsl	\
+    test-11.2-6.out test-11.2-6.xml test-11.2-6.xsl	\
+    test-12.2-1.out test-12.2-1.xml test-12.2-1.xsl	\
+    test-12.2-2.out test-12.2-2.xml test-12.2-2.xsl	\
+    test-15-1.out test-15-1.xml test-15-1.xsl		\
+    test-16.1-1.out test-16.1-1.xml test-16.1-1.xsl	\
+    test-16.1-2.out test-16.1-2.xml test-16.1-2.xsl	\
+    test-2.3-1.out test-2.3-1.xml test-2.3-1.xsl	\
+    test-2.3-2.out test-2.3-2.xml test-2.3-2.xsl	\
+    test-2.5-1.out test-2.5-1.xml test-2.5-1.xsl test-2.5-1.err	\
+    test-2.6.2-1.out test-2.6.2-1.xml test-2.6.2-1.xsl	\
+    test-5.2-1.out test-5.2-1.xml test-5.2-1.xsl	\
+    test-5.2-2.out test-5.2-2.xml test-5.2-2.xsl	\
+    test-5.2-3.out test-5.2-3.xml test-5.2-3.xsl	\
+    test-5.2-4.out test-5.2-4.xml test-5.2-4.xsl	\
+    test-5.2-5.out test-5.2-5.xml test-5.2-5.xsl	\
+    test-5.2-6.out test-5.2-6.xml test-5.2-6.xsl	\
+    test-5.2-7.out test-5.2-7.xml test-5.2-7.xsl	\
+    test-5.2-8.out test-5.2-8.xml test-5.2-8.xsl	\
+    test-5.2-9.out test-5.2-9.xml test-5.2-9.xsl	\
+    test-5.2-10.out test-5.2-10.xml test-5.2-10.xsl	\
+    test-5.2-11.out test-5.2-11.xml test-5.2-11.xsl	\
+    test-5.2-12.out test-5.2-12.xml test-5.2-12.xsl	\
+    test-5.2-13.out test-5.2-13.xml test-5.2-13.xsl	\
+    test-5.2-14.out test-5.2-14.xml test-5.2-14.xsl	\
+    test-5.2-15.out test-5.2-15.xml test-5.2-15.xsl	\
+    test-5.2-16.out test-5.2-16.xml test-5.2-16.xsl	\
+    test-5.2-17.out test-5.2-17.xml test-5.2-17.xsl	\
+    test-5.2-18.out test-5.2-18.xml test-5.2-18.xsl	\
+    test-5.3.out test-5.3.xml test-5.3.xsl		\
+    test-5.4-1.out test-5.4-1.xml test-5.4-1.xsl	\
+    test-5.4-2.out test-5.4-2.xml test-5.4-2.xsl	\
+    test-5.4-3.out test-5.4-3.xml test-5.4-3.xsl	\
+    test-5.4-4.out test-5.4-4.xml test-5.4-4.xsl	\
+    test-5.4-5.out test-5.4-5.xml test-5.4-5.xsl	\
+    test-5.8.out test-5.8.xml test-5.8.xsl		\
+    test-6.out test-6.xml test-6.xsl			\
+    test-7.1.1.out test-7.1.1.xml test-7.1.1.xsl	\
+    test-7.1.1-2.out test-7.1.1-2.xml test-7.1.1-2.xsl	\
+    test-7.1.1-3.out test-7.1.1-3.xml test-7.1.1-3.xsl	\
+    test-7.1.3.out test-7.1.3.xml test-7.1.3.xsl	\
+    test-7.1.4.out test-7.1.4.xml test-7.1.4.xsl	\
+    test-7.3.out test-7.3.xml test-7.3.xsl		\
+    test-7.4.out test-7.4.xml test-7.4.xsl		\
+    test-7.5-1.out test-7.5-1.xml test-7.5-1.xsl	\
+    test-7.6.1-1.out test-7.6.1-1.xml test-7.6.1-1.xsl	\
+    test-7.6.1-2.out test-7.6.1-2.xml test-7.6.1-2.xsl	\
+    test-7.6.1-3.out test-7.6.1-3.xml test-7.6.1-3.xsl	\
+    test-7.6.2-1.out test-7.6.2-1.xml test-7.6.2-1.xsl	\
+    test-7.7-1.out test-7.7-1.xml test-7.7-1.xsl	\
+    test-7.7-2.out test-7.7-2.xml test-7.7-2.xsl	\
+    test-7.7-3.out test-7.7-3.xml test-7.7-3.xsl	\
+    test-7.7-4.out test-7.7-4.xml test-7.7-4.xsl	\
+    test-7.7-5.out test-7.7-5.xml test-7.7-5.xsl	\
+    test-8-1.out test-8-1.xml test-8-1.xsl		\
+    test-9.1-1.out test-9.1-1.xml test-9.1-1.xsl	\
+    test-9.1-2.out test-9.1-2.xml test-9.1-2.xsl	\
+    test-9.2-1.xsl					\
+    stand-2.7-1.dtd stand-2.7-1.stand.out stand-2.7-1.xsl \
+    stand-2.7-1.out  stand-2.7-1.xml
+
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@(echo > .memdump)
+	@echo '## Running REC tests'
+	-@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then \
+	  	continue ; \
+	  fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+	  	$(srcdir)/$$name.xsl $(srcdir)/$$name.xml \
+	  	> $$name.res 2>$$name.bad ; \
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+	  	cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			cp $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+	  	if  [ ! -s $$name.res ] ; then \
+	  		echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+	  		diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $$name.err ] ; then \
+				diff $(srcdir)/$$name.err $$name.bad ; \
+			else \
+				diff /dev/null $$name.bad ; \
+			fi ; \
+	  	fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | \
+	  grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+	@(for i in $(srcdir)/stand*.xml ; do \
+	  name=`basename $$i .xml` ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+	  	$(srcdir)/$$name.xml > $$name.res 2>$$name.bad ;\
+	  if [ ! -f $(srcdir)/$$name.stand.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.stand.out ; \
+		if [ -s $$name.bad ] ; then \
+			cp $$name.bad $(srcdir)/$$name.stand.err ; \
+		fi ; \
+	  else \
+	  	if  [ ! -s $$name.res ] ; then \
+	  		echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+	  		diff $(srcdir)/$$name.stand.out $$name.res ; \
+			if [ -s $$name.stand.err ] ; then \
+	  			diff $(srcdir)/$$name.stand.err $$name.bad ; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+	@echo '## Running REC tests without dictionaries'
+	-@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then \
+	  	continue ; \
+	  fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict \
+	  	$(srcdir)/$$name.xsl $(srcdir)/$$name.xml \
+	  	> $$name.res 2>$$name.bad ; \
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+	  	cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			cp $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+	  	if  [ ! -s $$name.res ] ; then \
+	  		echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+	  		diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $$name.err ] ; then \
+				diff $(srcdir)/$$name.err $$name.bad ; \
+			else \
+				diff /dev/null $$name.bad ; \
+			fi ; \
+	  	fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | \
+	  grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+	@(for i in $(srcdir)/stand*.xml ; do \
+	  name=`basename $$i .xml` ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict \
+	  	$(srcdir)/$$name.xml > $$name.res 2>$$name.bad ;\
+	  if [ ! -f $(srcdir)/$$name.stand.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.stand.out ; \
+		if [ -s $$name.bad ] ; then \
+			cp $$name.bad $(srcdir)/$$name.stand.err ; \
+		fi ; \
+	  else \
+	  	if  [ ! -s $$name.res ] ; then \
+	  		echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+	  		diff $(srcdir)/$$name.stand.out $$name.res ; \
+			if [ -s $$name.stand.err ] ; then \
+	  			diff $(srcdir)/$$name.stand.err $$name.bad ; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,573 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/REC
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+    article.xsl bigfont.xsl 				\
+    test-10-1.out test-10-1.xml test-10-1.xsl		\
+    test-11.2-1.out test-11.2-1.xml test-11.2-1.xsl	\
+    test-11.2-2.out test-11.2-2.xml test-11.2-2.xsl	\
+    test-11.2-3.out test-11.2-3.xml test-11.2-3.xsl	\
+    test-11.2-4.out test-11.2-4.xml test-11.2-4.xsl	\
+    test-11.2-5.out test-11.2-5.xml test-11.2-5.xsl	\
+    test-11.2-6.out test-11.2-6.xml test-11.2-6.xsl	\
+    test-12.2-1.out test-12.2-1.xml test-12.2-1.xsl	\
+    test-12.2-2.out test-12.2-2.xml test-12.2-2.xsl	\
+    test-15-1.out test-15-1.xml test-15-1.xsl		\
+    test-16.1-1.out test-16.1-1.xml test-16.1-1.xsl	\
+    test-16.1-2.out test-16.1-2.xml test-16.1-2.xsl	\
+    test-2.3-1.out test-2.3-1.xml test-2.3-1.xsl	\
+    test-2.3-2.out test-2.3-2.xml test-2.3-2.xsl	\
+    test-2.5-1.out test-2.5-1.xml test-2.5-1.xsl test-2.5-1.err	\
+    test-2.6.2-1.out test-2.6.2-1.xml test-2.6.2-1.xsl	\
+    test-5.2-1.out test-5.2-1.xml test-5.2-1.xsl	\
+    test-5.2-2.out test-5.2-2.xml test-5.2-2.xsl	\
+    test-5.2-3.out test-5.2-3.xml test-5.2-3.xsl	\
+    test-5.2-4.out test-5.2-4.xml test-5.2-4.xsl	\
+    test-5.2-5.out test-5.2-5.xml test-5.2-5.xsl	\
+    test-5.2-6.out test-5.2-6.xml test-5.2-6.xsl	\
+    test-5.2-7.out test-5.2-7.xml test-5.2-7.xsl	\
+    test-5.2-8.out test-5.2-8.xml test-5.2-8.xsl	\
+    test-5.2-9.out test-5.2-9.xml test-5.2-9.xsl	\
+    test-5.2-10.out test-5.2-10.xml test-5.2-10.xsl	\
+    test-5.2-11.out test-5.2-11.xml test-5.2-11.xsl	\
+    test-5.2-12.out test-5.2-12.xml test-5.2-12.xsl	\
+    test-5.2-13.out test-5.2-13.xml test-5.2-13.xsl	\
+    test-5.2-14.out test-5.2-14.xml test-5.2-14.xsl	\
+    test-5.2-15.out test-5.2-15.xml test-5.2-15.xsl	\
+    test-5.2-16.out test-5.2-16.xml test-5.2-16.xsl	\
+    test-5.2-17.out test-5.2-17.xml test-5.2-17.xsl	\
+    test-5.2-18.out test-5.2-18.xml test-5.2-18.xsl	\
+    test-5.3.out test-5.3.xml test-5.3.xsl		\
+    test-5.4-1.out test-5.4-1.xml test-5.4-1.xsl	\
+    test-5.4-2.out test-5.4-2.xml test-5.4-2.xsl	\
+    test-5.4-3.out test-5.4-3.xml test-5.4-3.xsl	\
+    test-5.4-4.out test-5.4-4.xml test-5.4-4.xsl	\
+    test-5.4-5.out test-5.4-5.xml test-5.4-5.xsl	\
+    test-5.8.out test-5.8.xml test-5.8.xsl		\
+    test-6.out test-6.xml test-6.xsl			\
+    test-7.1.1.out test-7.1.1.xml test-7.1.1.xsl	\
+    test-7.1.1-2.out test-7.1.1-2.xml test-7.1.1-2.xsl	\
+    test-7.1.1-3.out test-7.1.1-3.xml test-7.1.1-3.xsl	\
+    test-7.1.3.out test-7.1.3.xml test-7.1.3.xsl	\
+    test-7.1.4.out test-7.1.4.xml test-7.1.4.xsl	\
+    test-7.3.out test-7.3.xml test-7.3.xsl		\
+    test-7.4.out test-7.4.xml test-7.4.xsl		\
+    test-7.5-1.out test-7.5-1.xml test-7.5-1.xsl	\
+    test-7.6.1-1.out test-7.6.1-1.xml test-7.6.1-1.xsl	\
+    test-7.6.1-2.out test-7.6.1-2.xml test-7.6.1-2.xsl	\
+    test-7.6.1-3.out test-7.6.1-3.xml test-7.6.1-3.xsl	\
+    test-7.6.2-1.out test-7.6.2-1.xml test-7.6.2-1.xsl	\
+    test-7.7-1.out test-7.7-1.xml test-7.7-1.xsl	\
+    test-7.7-2.out test-7.7-2.xml test-7.7-2.xsl	\
+    test-7.7-3.out test-7.7-3.xml test-7.7-3.xsl	\
+    test-7.7-4.out test-7.7-4.xml test-7.7-4.xsl	\
+    test-7.7-5.out test-7.7-5.xml test-7.7-5.xsl	\
+    test-8-1.out test-8-1.xml test-8-1.xsl		\
+    test-9.1-1.out test-9.1-1.xml test-9.1-1.xsl	\
+    test-9.1-2.out test-9.1-2.xml test-9.1-2.xsl	\
+    test-9.2-1.xsl					\
+    stand-2.7-1.dtd stand-2.7-1.stand.out stand-2.7-1.xsl \
+    stand-2.7-1.out  stand-2.7-1.xml
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/REC/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/REC/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@(echo > .memdump)
+	@echo '## Running REC tests'
+	-@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then \
+	  	continue ; \
+	  fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+	  	$(srcdir)/$$name.xsl $(srcdir)/$$name.xml \
+	  	> $$name.res 2>$$name.bad ; \
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+	  	cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			cp $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+	  	if  [ ! -s $$name.res ] ; then \
+	  		echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+	  		diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $$name.err ] ; then \
+				diff $(srcdir)/$$name.err $$name.bad ; \
+			else \
+				diff /dev/null $$name.bad ; \
+			fi ; \
+	  	fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | \
+	  grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+	@(for i in $(srcdir)/stand*.xml ; do \
+	  name=`basename $$i .xml` ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+	  	$(srcdir)/$$name.xml > $$name.res 2>$$name.bad ;\
+	  if [ ! -f $(srcdir)/$$name.stand.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.stand.out ; \
+		if [ -s $$name.bad ] ; then \
+			cp $$name.bad $(srcdir)/$$name.stand.err ; \
+		fi ; \
+	  else \
+	  	if  [ ! -s $$name.res ] ; then \
+	  		echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+	  		diff $(srcdir)/$$name.stand.out $$name.res ; \
+			if [ -s $$name.stand.err ] ; then \
+	  			diff $(srcdir)/$$name.stand.err $$name.bad ; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+	@echo '## Running REC tests without dictionaries'
+	-@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then \
+	  	continue ; \
+	  fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict \
+	  	$(srcdir)/$$name.xsl $(srcdir)/$$name.xml \
+	  	> $$name.res 2>$$name.bad ; \
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+	  	cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			cp $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+	  	if  [ ! -s $$name.res ] ; then \
+	  		echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+	  		diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $$name.err ] ; then \
+				diff $(srcdir)/$$name.err $$name.bad ; \
+			else \
+				diff /dev/null $$name.bad ; \
+			fi ; \
+	  	fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | \
+	  grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+	@(for i in $(srcdir)/stand*.xml ; do \
+	  name=`basename $$i .xml` ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict \
+	  	$(srcdir)/$$name.xml > $$name.res 2>$$name.bad ;\
+	  if [ ! -f $(srcdir)/$$name.stand.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.stand.out ; \
+		if [ -s $$name.bad ] ; then \
+			cp $$name.bad $(srcdir)/$$name.stand.err ; \
+		fi ; \
+	  else \
+	  	if  [ ! -s $$name.res ] ; then \
+	  		echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+	  		diff $(srcdir)/$$name.stand.out $$name.res ; \
+			if [ -s $$name.stand.err ] ; then \
+	  			diff $(srcdir)/$$name.stand.err $$name.bad ; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/article.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/article.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/article.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="article">
+<h3><xsl:value-of select="title"/></h3>
+<xsl:apply-templates select="para"/>
+</xsl:template>
+<xsl:template match="para">
+<p><xsl:apply-templates/>
+</p>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/bigfont.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/bigfont.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/bigfont.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="big">
+<em><xsl:apply-templates/></em>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<!ATTLIST xsl:stylesheet
+    id ID #IMPLIED>
+<!ATTLIST stylesheet
+    id ID #IMPLIED>
+<!ATTLIST para
+    id ID #IMPLIED>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+SUCCESS
+...
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.stand.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.stand.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.stand.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+SUCCESS<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" font-weight="bold">
+...
+</fo:block>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<?xml-stylesheet type="text/xml" href="#style1"?>
+<!DOCTYPE doc SYSTEM "stand-2.7-1.dtd">
+<doc>
+<head>
+<xsl:stylesheet id="style1"
+		version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		xmlns:fo="http://www.w3.org/1999/XSL/Format">
+<xsl:import href="stand-2.7-1.xsl"/>
+<xsl:template match="id('foo')">
+  <fo:block font-weight="bold"><xsl:apply-templates/></fo:block>
+</xsl:template>
+<xsl:template match="xsl:stylesheet">
+  <!-- ignore -->
+</xsl:template>
+</xsl:stylesheet>
+</head>
+<body>
+<para id="foo">
+...
+</para>
+</body>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/stand-2.7-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:strip-space elements="*"/>
+<xsl:template match="/">
+<xsl:text>SUCCESS</xsl:text>
+<xsl:apply-templates/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<ul><li>James Clark</li><li>Michael Kay</li><li>Daniel Veillard</li></ul>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<employees>
+  <employee>
+    <name>
+      <given>James</given>
+      <family>Clark</family>
+    </name>
+  </employee>
+  <employee>
+    <name>
+      <given>Daniel</given>
+      <family>Veillard</family>
+    </name>
+  </employee>
+  <employee>
+    <name>
+      <given>Michael</given>
+      <family>Kay</family>
+    </name>
+  </employee>
+</employees>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-10-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="employees">
+  <ul>
+    <xsl:apply-templates select="employee">
+      <xsl:sort select="name/family"/>
+      <xsl:sort select="name/given"/>
+    </xsl:apply-templates>
+  </ul>
+</xsl:template>
+
+<xsl:template match="employee">
+  <li>
+    <xsl:value-of select="name/given"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="name/family"/>
+  </li>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc x=""/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:variable name="x"/>
+
+<xsl:template match="doc">
+<doc x="{$x}"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc x=""/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:variable name="x" select="''"/>
+
+<xsl:template match="doc">
+<doc x="{$x}"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+item1

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<doc>
+<item>item1</item>
+<item>item2</item>
+<item>item3</item>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:variable name="n">2</xsl:variable>
+
+<xsl:template match="doc">
+<xsl:value-of select="item[$n]"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+item2

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<doc>
+<item>item1</item>
+<item>item2</item>
+<item>item3</item>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-4.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:variable name="n" select="2"/>
+
+<xsl:template match="doc">
+<xsl:value-of select="item[$n]"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+item2

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<doc>
+<item>item1</item>
+<item>item2</item>
+<item>item3</item>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-5.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:variable name="n">2</xsl:variable>
+
+<xsl:template match="doc">
+<xsl:value-of select="item[position()=$n]"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc value="0"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-11.2-6.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:param name="x" select="/.."/>
+
+<xsl:template match="doc">
+<doc value="{count($x)}"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+Success

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<doc>
+  <div id="lookup">Success</div>
+  <div id="unwanted">Failed</div>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:key name="idkey" match="div" use="@id"/>
+
+<xsl:template match="doc">
+<xsl:value-of select="key('idkey','lookup')"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+  
+Success
+
+  
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<doc>
+  <div id="lookup"/>
+  <div id="unwanted"/>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-12.2-2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:key name="idkey" match="div" use="@id"/>
+
+<xsl:template match="key('idkey','lookup')">
+Success
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc>SUCCESS</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-15-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		xmlns:test="http://example.org/"
+		extension-element-prefixes="test"
+		exclude-result-prefixes="test"
+                version='1.0'>
+<xsl:template match="/">
+<test:test>
+<xsl:fallback><doc>SUCCESS</doc></xsl:fallback>
+</test:test>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<example><![CDATA[<foo>]]></example>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:output cdata-section-elements="example"/>
+
+<xsl:template match="/">
+<example>&lt;foo></example>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<example><![CDATA[<foo>]]></example>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-16.1-2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:output cdata-section-elements="example"/>
+
+<xsl:template match="/">
+<example><![CDATA[<foo>]]></example>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/xhtml1/strict"><head><title>Expense Report Summary</title></head><body><p>Total Amount: 1234</p></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<expense-report>
+<total>1234</total>
+</expense-report>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<html xsl:version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns="http://www.w3.org/TR/xhtml1/strict">
+  <head>
+    <title>Expense Report Summary</title>
+  </head>
+  <body>
+    <p>Total Amount: <xsl:value-of select="expense-report/total"/></p>
+  </body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/TR/xhtml1/strict"><head><title>Expense Report Summary</title></head><body><p>Total Amount: 1234</p></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<expense-report>
+<total>1234</total>
+</expense-report>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.3-2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		xmlns="http://www.w3.org/TR/xhtml1/strict">
+<xsl:template match="/">
+<html>
+  <head>
+    <title>Expense Report Summary</title>
+  </head>
+  <body>
+    <p>Total Amount: <xsl:value-of select="expense-report/total"/></p>
+  </body>
+</html>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.err
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.err	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.err	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+compilation error: file ./test-2.5-1.xsl line 6 element exciting-new-1.8-feature
+xsltStylePreCompute: unknown xsl:exciting-new-1.8-feature
+compilation error: file ./test-2.5-1.xsl line 2 element stylesheet
+xsl:version: only 1.0 features are supported

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>XSLT 1.8 required</title>
+</head>
+<body><p>Sorry, this stylesheet requires XSLT 1.8.</p></body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.5-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<xsl:stylesheet version="1.8"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="/">
+    <xsl:choose>
+      <xsl:when test="system-property('xsl:version') >= 1.8">
+	<xsl:exciting-new-1.8-feature/>
+      </xsl:when>
+      <xsl:otherwise>
+	<html>
+	<head>
+	  <title>XSLT 1.8 required</title>
+	</head>
+	<body>
+	  <p>Sorry, this stylesheet requires XSLT 1.8.</p>
+	</body>
+	</html>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<h3>The article title</h3><p>first para <em>important stuff</em> ...</p><p>second para ...</p>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<article>
+<title>The article title</title>
+<para>first para <big>important stuff</big> ...</para>
+<para>second para ...</para>
+</article>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-2.6.2-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:import href="article.xsl"/>
+  <xsl:import href="bigfont.xsl"/>
+  <xsl:attribute-set name="note-style">
+    <xsl:attribute name="font-style">italic</xsl:attribute>
+  </xsl:attribute-set>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+Success
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc><para>Failed</para></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="para">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+Success
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<!DOCTYPE doc [
+<!ELEMENT para (#PCDATA)>
+<!ATTLIST para label ID #IMPLIED>
+]>
+<doc><para label="W11">Failed</para></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-10.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match='id("W11")'>
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+
+
+Success
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<doc>
+<title/>
+<para>Failed</para>
+<para></para>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-11.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="para[1]">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+Success
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<doc>
+<para>Failed</para>
+<title/>
+<para/>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-12.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:strip-space elements="doc"/>
+<xsl:template match="*[position()=1 and self::para]">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+
+
+Success
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<doc>
+<title/>
+<para>Failed</para>
+<title/>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-13.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="para[last()=1]">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+
+
+
+Success
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<doc>
+<items>
+<item/>
+<item>Failed</item>
+</items>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-14.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="items/item[position()>1]">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+Success
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc><item>Failed</item><item/></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-15.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="item[position() mod 2 = 1]">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+
+
+
+
+Success
+
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<doc>
+<p/>
+<div class="appendix">
+<para>
+<p>Failed</p>
+</para>
+</div>
+</doc>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-16.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match='div[@class="appendix"]//p'>
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+Success

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc><para class="Failed"/></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-17.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="/">
+<xsl:apply-templates select="/doc/para/@*"/>
+</xsl:template>
+<xsl:template match="@class">
+<xsl:text>Success</xsl:text>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+Success

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc><para attr="Failed"/></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-18.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="/">
+<xsl:apply-templates select="/doc/para/@*"/>
+</xsl:template>
+<xsl:template match="@*">
+<xsl:text>Success</xsl:text>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+Success
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<a>Failed</a>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="*">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+Success
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc><appendix>Failed</appendix></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="chapter|appendix">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+Success
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc><olist><item>Failed</item></olist></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-4.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="olist/item">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+  
+    
+    
+      
+Success
+
+    
+  
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<doc>
+  <appendix>
+    <title/>
+    <content>
+      <para>Failed</para>
+    </content>
+  </appendix>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-5.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="appendix//para">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+Success
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc>Failure</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-6.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="/">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+Success
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc>Failed</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-7.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="text()">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+Success
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc><?failed?></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-8.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="processing-instruction()">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+Success
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc>Failed</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.2-9.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="node()">
+Success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+This is an <fo:inline-sequence xmlns:fo="http://www.w3.org/1999/XSL/Format" font-weight="bold">important</fo:inline-sequence> point.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<doc>
+This is an <emph>important</emph> point.
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+<xsl:template match="emph">
+  <fo:inline-sequence font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:inline-sequence>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<doc xmlns:fo="http://www.w3.org/1999/XSL/Format">
+<fo:block>
+This is a chapter
+</fo:block>
+<fo:block>This is another chapter</fo:block>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<doc>
+<chapter>
+This is a chapter
+</chapter>
+<chapter>This is <em>another</em> chapter</chapter>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+<xsl:template match="chapter">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+<xsl:template match="doc">
+<doc>
+    <xsl:apply-templates/>
+</doc>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<doc xmlns:fo="http://www.w3.org/1999/XSL/Format">
+<fo:inline-sequence>name1name2</fo:inline-sequence>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<doc>
+<author-group>
+<author>name1</author>
+<author>name2</author>
+<info>skipped</info>
+</author-group>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+<xsl:template match="doc">
+<doc>
+    <xsl:apply-templates/>
+</doc>
+</xsl:template>
+
+<xsl:template match="author-group">
+  <fo:inline-sequence>
+    <xsl:apply-templates select="author"/>
+  </fo:inline-sequence>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<doc xmlns:fo="http://www.w3.org/1999/XSL/Format">
+<fo:inline-sequence>name1name2</fo:inline-sequence>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<doc>
+<author-group>
+<author><given-name>name1</given-name></author>
+<author><given-name>name2</given-name></author>
+<author>skipped</author>
+</author-group>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+<xsl:template match="doc">
+<doc>
+    <xsl:apply-templates/>
+</doc>
+</xsl:template>
+
+<xsl:template match="author-group">
+  <fo:inline-sequence>
+    <xsl:apply-templates select="author/given-name"/>
+  </fo:inline-sequence>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<doc xmlns:fo="http://www.w3.org/1999/XSL/Format"><fo:block>
+    Employee employee1 belongs to group
+	group1</fo:block><fo:block>
+    Employee employee3 belongs to group
+	group1</fo:block><fo:block>
+    Employee employee2 belongs to group
+	group2</fo:block></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<doc>
+<department>
+<name>dept1</name>
+<group>
+<name>group1</name>
+<employee><name>employee1</name></employee>
+<employee><name>employee3</name></employee>
+</group>
+</department>
+<department>
+<name>dept2</name>
+<group>
+<name>group2</name>
+<employee><name>employee2</name></employee>
+</group>
+</department>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-4.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+<xsl:template match="doc">
+<doc>
+    <xsl:apply-templates select="//employee"/>
+</doc>
+</xsl:template>
+
+<xsl:template match="employee">
+    <fo:block>
+    Employee <xsl:apply-templates select="name"/> belongs to group
+	<xsl:apply-templates select="ancestor::department/group"/>
+    </fo:block>
+</xsl:template>
+<xsl:template match="group">
+<xsl:apply-templates select="name"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+div found div found 

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc><div><div></div></div></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.4-5.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="doc">
+    <xsl:apply-templates select=".//div"/>
+</xsl:template>
+<xsl:template match="div">
+<xsl:text>div found </xsl:text>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+
+    
+    
+    elem content
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?tst-pi pi 1 ?>
+<!-- comment 1 -->
+<doc xmlns:unused="http://example.org/unused">
+    <?tst-pi pi 2 ?>
+    <!-- comment 2 -->
+    <elem attr="attr value">elem content</elem>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-5.8.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<!-- empty stylesheet -->
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+doc found

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc><div></div></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-6.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="doc">
+    <xsl:call-template name="docfound"/>
+</xsl:template>
+
+<xsl:template name="docfound">
+<xsl:text>doc found</xsl:text>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<out>SUCCESS</out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:doc="http://example.org/doc"
+  exclude-result-prefixes="doc">
+
+<doc:doc>Some ignored documentation the prefix should not show
+         up on the doc element</doc:doc>
+<xsl:template match="/">
+<out>SUCCESS</out>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<out>SUCCESS</out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1-3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:doc="http://example.org/doc">
+
+<doc:doc>Some ignored documentation the prefix should not show
+         up on the doc element</doc:doc>
+<xsl:template match="/">
+<out xsl:exclude-result-prefixes="doc">SUCCESS</out>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<axsl:stylesheet xmlns:axsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
+<axsl:template match="p"><fo:block><axsl:apply-templates/></fo:block></axsl:template>
+<axsl:template match="h1"><fo:block><axsl:apply-templates/></fo:block></axsl:template>
+<axsl:template match="h2"><fo:block><axsl:apply-templates/></fo:block></axsl:template>
+<axsl:template match="h3"><fo:block><axsl:apply-templates/></fo:block></axsl:template>
+<axsl:template match="h4"><fo:block><axsl:apply-templates/></fo:block></axsl:template>
+</axsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<elements>
+<block>p</block>
+<block>h1</block>
+<block>h2</block>
+<block>h3</block>
+<block>h4</block>
+</elements>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:fo="http://www.w3.org/1999/XSL/Format"
+  xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias">
+
+<xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/>
+
+<xsl:template match="/">
+  <axsl:stylesheet>
+    <xsl:apply-templates/>
+  </axsl:stylesheet>
+</xsl:template>
+
+<xsl:template match="block">
+  <axsl:template match="{.}">
+     <fo:block><axsl:apply-templates/></fo:block>
+  </axsl:template>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc attr="value"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias">
+
+<xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/>
+
+<xsl:template match="doc">
+<doc>
+<xsl:attribute name="xmlns:xsl" namespace="whatever">http://www.w3.org/1999/XSL/Transform</xsl:attribute>
+<xsl:attribute name="attr">value</xsl:attribute>
+<!--
+<xsl:attribute name="a">x
+y</xsl:attribute>
+-->
+</doc>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+
+
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" quadding="start" font-size="12pt" font-weight="bold">this is the heading</fo:block>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<doc>
+<chapter>
+<heading>this is the heading</heading>
+</chapter>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.1.4.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:fo="http://www.w3.org/1999/XSL/Format"
+  xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias">
+
+<xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/>
+
+<xsl:template match="chapter/heading">
+  <fo:block quadding="start" xsl:use-attribute-sets="title-style">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:attribute-set name="title-style">
+  <xsl:attribute name="font-size">12pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+</xsl:attribute-set>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc><?xml-stylesheet href="book.css" type="text/css"?></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<doc>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias">
+
+<xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/>
+
+<xsl:template match="doc">
+<doc>
+<xsl:processing-instruction name="xml-stylesheet">href="book.css" type="text/css"</xsl:processing-instruction>
+</doc>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc><!--This file is automatically generated. Do not edit!--></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<doc>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.4.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias">
+
+<xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/>
+
+<xsl:template match="doc">
+<doc>
+<xsl:comment>This file is automatically generated. Do not edit!</xsl:comment>
+</doc>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<doc attr="value">
+    <child attr1="val" attr2="val2">content</child>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<doc attr="value">
+    <child attr1="val" attr2="val2">content</child>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.5-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:fo="http://www.w3.org/1999/XSL/Format"
+  xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias">
+
+<xsl:template match="@*|node()">
+  <xsl:copy>
+    <xsl:apply-templates select="@*|node()"/>
+  </xsl:copy>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+
+    <p>Joe Bar</p>
+    <p>Boc Dude</p>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<doc>
+    <person given-name="Joe" family-name="Bar"/>
+    <person given-name="Boc" family-name="Dude"/>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="person">
+  <p>
+   <xsl:value-of select="@given-name"/>
+   <xsl:text> </xsl:text>
+   <xsl:value-of select="@family-name"/>
+  </p>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+
+    <p>Joe Bar</p>
+    <p>Boc Dude</p>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<doc>
+    <person><given-name>Joe</given-name><family-name>Bar</family-name></person>
+    <person><given-name>Boc</given-name><family-name>Dude</family-name></person>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="person">
+  <p>
+   <xsl:value-of select="given-name"/>
+   <xsl:text> </xsl:text>
+   <xsl:value-of select="family-name"/>
+  </p>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+    
+        
+	    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">high</fo:block>secure-proc
+	
+        
+	    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">low</fo:block>insecure-proc
+	
+    
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<doc>
+    <chapter security="low">
+        <para security="high">
+	    <procedure>secure-proc</procedure>
+	</para>
+        <para>
+	    <procedure>insecure-proc</procedure>
+	</para>
+    </chapter>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.1-3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:template match="procedure">
+  <fo:block>
+    <xsl:value-of select="ancestor-or-self::*[@security][1]/@security"/>
+  </fo:block>
+  <xsl:apply-templates/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<img src="/images/headquarters.jpg" width="300"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<photograph>
+  <href>headquarters.jpg</href>
+  <size width="300"/>
+</photograph>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.6.2-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:variable name="image-dir">/images</xsl:variable>
+
+<xsl:template match="photograph">
+<img src="{$image-dir}/{href}" width="{size/@width}"/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<p>1. First</p><p>2. Fourth</p><p>3. Second</p><p>4. Third</p>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<items>
+  <item>First</item>
+  <item>Second</item>
+  <item>Third</item>
+  <item>Fourth</item>
+</items>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="items">
+  <xsl:for-each select="item">
+    <xsl:sort select="."/>
+    <p>
+      <xsl:number value="position()" format="1. "/>
+      <xsl:value-of select="."/>
+    </p>
+  </xsl:for-each>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+  
+    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">1. First</fo:block>
+    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">2. Second</fo:block>
+    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">3. Third</fo:block>
+    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">4. Fourth</fo:block>
+  
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<list>
+  <ol>
+    <item>First</item>
+    <item>Second</item>
+    <item>Third</item>
+    <item>Fourth</item>
+  </ol>
+</list>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:template match="ol/item">
+  <fo:block>
+    <xsl:number/><xsl:text>. </xsl:text><xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+
+  
+    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">1 First Chapter</fo:block>
+      Here is some text.
+    
+      <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">1.1 First Chapter, First Section</fo:block>
+        More text here.
+      
+        <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">1.1.1 First Chapter, First Section, First Subsection</fo:block>
+      
+      
+        <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">1.1.2 First Chapter, First Section, Second Subsection</fo:block>
+      
+    
+  
+  
+    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">2 Second Chapter</fo:block>
+  
+  
+    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">A First Appendix</fo:block>
+    
+      <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">A.1 First Appendix, First Section</fo:block>
+    
+  
+  
+    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">B Second Appendix</fo:block>
+  
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+<book>
+  <chapter>
+    <title>First Chapter</title>
+      Here is some text.
+    <section>
+      <title>First Chapter, First Section</title>
+        More text here.
+      <subsection>
+        <title>First Chapter, First Section, First Subsection</title>
+      </subsection>
+      <subsection>
+        <title>First Chapter, First Section, Second Subsection</title>
+      </subsection>
+    </section>
+  </chapter>
+  <chapter>
+    <title>Second Chapter</title>
+  </chapter>
+  <appendix>
+    <title>First Appendix</title>
+    <section>
+      <title>First Appendix, First Section</title>
+    </section>
+  </appendix>
+  <appendix>
+    <title>Second Appendix</title>
+  </appendix>
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:template match="title">
+  <fo:block>
+    <xsl:number level="multiple"
+                count="chapter|section|subsection"
+                format="1.1 "/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="appendix//title" priority="1">
+  <fo:block>
+    <xsl:number level="multiple"
+                count="appendix|section|subsection"
+                format="A.1 "/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+
+  
+    
+      
+	<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">(1) A note here</fo:block>
+	<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">(2) And here</fo:block>
+      
+      
+      
+    
+  
+  
+    <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">(1) And another note here</fo:block>
+  
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<book>
+  <chapter>
+    <section>
+      <subsection>
+	<note>A note here</note>
+	<note>And here</note>
+      </subsection>
+      <subsection>
+      </subsection>
+    </section>
+  </chapter>
+  <chapter>
+    <note>And another note here</note>
+  </chapter>
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-4.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:template match="note">
+  <fo:block>
+    <xsl:number level="any" from="chapter" format="(1) "/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+  
+    
+      <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">1.1.1 one</fo:block>
+      <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">1.1.2 two</fo:block>
+      <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">1.1.3 three</fo:block>
+    
+  
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<H1>
+  <H2>
+    <H3>
+      <H4>one</H4>
+      <H4>two</H4>
+      <H4>three</H4>
+    </H3>
+  </H2>
+</H1>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-7.7-5.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<xsl:stylesheet
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:template match="H4">
+  <fo:block>
+    <xsl:number level="any" from="H1" count="H2"/>
+    <xsl:text>.</xsl:text>
+    <xsl:number level="any" from="H2" count="H3"/>
+    <xsl:text>.</xsl:text>
+    <xsl:number level="any" from="H3" count="H4"/>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Customers</title>
+</head>
+<body><table><tbody>
+<tr>
+<th>...</th>
+<td>...</td>
+<td>...</td>
+</tr>
+<tr>
+<th>...</th>
+<td>...</td>
+<td>...</td>
+</tr>
+</tbody></table></body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<customers>
+  <customer>
+    <name>...</name>
+    <order>...</order>
+    <order>...</order>
+  </customer>
+  <customer>
+    <name>...</name>
+    <order>...</order>
+    <order>...</order>
+  </customer>
+</customers>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-8-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,30 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format"
+      exclude-result-prefixes="fo">
+<xsl:template match="/">
+  <html>
+    <head>
+      <title>Customers</title>
+    </head>
+    <body>
+      <table>
+	<tbody>
+	  <xsl:for-each select="customers/customer">
+	    <tr>
+	      <th>
+		<xsl:apply-templates select="name"/>
+	      </th>
+	      <xsl:for-each select="order">
+		<td>
+		  <xsl:apply-templates/>
+		</td>
+	      </xsl:for-each>
+	    </tr>
+	  </xsl:for-each>
+	</tbody>
+      </table>
+    </body>
+  </html>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+name1, name2, name3

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<namelist>
+  <name>name1</name>
+  <name>name2</name>
+  <name>name3</name>
+</namelist>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:strip-space elements="namelist"/>
+
+<xsl:template match="namelist/name">
+  <xsl:apply-templates/>
+  <xsl:if test="not(position()=last())">, </xsl:if>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<html><body><table><tbody>
+<tr>item1</tr>
+<tr bgcolor="yellow">item2</tr>
+<tr>item3</tr>
+<tr bgcolor="yellow">item4</tr>
+<tr>item5</tr>
+<tr bgcolor="yellow">item6</tr>
+</tbody></table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<itemlist>
+  <item>item1</item>
+  <item>item2</item>
+  <item>item3</item>
+  <item>item4</item>
+  <item>item5</item>
+  <item>item6</item>
+</itemlist>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.1-2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format"
+      exclude-result-prefixes="fo">
+
+<xsl:strip-space elements="itemlist"/>
+
+<xsl:template match="/">
+<html>
+<body>
+<xsl:apply-templates/>
+</body>
+</html>
+</xsl:template>
+
+<xsl:template match="itemlist">
+<table>
+<tbody>
+<xsl:apply-templates/>
+</tbody>
+</table>
+</xsl:template>
+
+<xsl:template match="item">
+  <tr>
+    <xsl:if test="position() mod 2 = 0">
+       <xsl:attribute name="bgcolor">yellow</xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </tr>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.2-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.2-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC/test-9.2-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,30 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:strip-space elements="orderedlist"/>
+
+<xsl:template match="orderedlist/listitem">
+  <fo:list-item indent-start='2pi'>
+    <fo:list-item-label>
+      <xsl:variable name="level"
+		    select="count(ancestor::orderedlist) mod 3"/>
+      <xsl:choose>
+	<xsl:when test='$level=1'>
+	  <xsl:number format="i"/>
+	</xsl:when>
+	<xsl:when test='$level=2'>
+	  <xsl:number format="a"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:number format="1"/>
+	</xsl:otherwise>
+      </xsl:choose>
+      <xsl:text>. </xsl:text>
+    </fo:list-item-label>
+    <fo:list-item-body>
+      <xsl:apply-templates/>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC1/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC1/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC1/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = doc.xsl doc.xml doc.dtd result.xml
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+# No special stuff here, just a single test that either works or doesn't!
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running REC1 tests'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+	  $(srcdir)/doc.xsl $(srcdir)/doc.xml > doc.res ; \
+	diff $(srcdir)/result.xml doc.res ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true; \
+	rm -f doc.res)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC1/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC1/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC1/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,389 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/REC1
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = doc.xsl doc.xml doc.dtd result.xml
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/REC1/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/REC1/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+# No special stuff here, just a single test that either works or doesn't!
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running REC1 tests'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+	  $(srcdir)/doc.xsl $(srcdir)/doc.xml > doc.res ; \
+	diff $(srcdir)/result.xml doc.res ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true; \
+	rm -f doc.res)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<!ELEMENT doc (title, chapter*)>
+<!ELEMENT chapter (title, (para|note)*, section*)>
+<!ELEMENT section (title, (para|note)*)>
+<!ELEMENT title (#PCDATA|emph)*>
+<!ELEMENT para (#PCDATA|emph)*>
+<!ELEMENT note (#PCDATA|emph)*>
+<!ELEMENT emph (#PCDATA|emph)*>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<!DOCTYPE doc SYSTEM "doc.dtd">
+<doc>
+<title>Document Title</title>
+<chapter>
+<title>Chapter Title</title>
+<section>
+<title>Section Title</title>
+<para>This is a test.</para>
+<note>This is a note.</note>
+</section>
+<section>
+<title>Another Section Title</title>
+<para>This is <emph>another</emph> test.</para>
+<note>This is another note.</note>
+</section>
+</chapter>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC1/doc.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,62 @@
+<xsl:stylesheet version="1.0"
+	      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	      xmlns="http://www.w3.org/TR/xhtml1/strict">
+
+<xsl:strip-space elements="doc chapter section"/>
+<xsl:output
+ method="xml"
+ indent="yes"
+ encoding="iso-8859-1"
+/>
+
+<xsl:template match="doc">
+<html>
+ <head>
+   <title>
+     <xsl:value-of select="title"/>
+   </title>
+ </head>
+ <body>
+   <xsl:apply-templates/>
+ </body>
+</html>
+</xsl:template>
+
+<xsl:template match="doc/title">
+<h1>
+  <xsl:apply-templates/>
+</h1>
+</xsl:template>
+
+<xsl:template match="chapter/title">
+<h2>
+  <xsl:apply-templates/>
+</h2>
+</xsl:template>
+
+<xsl:template match="section/title">
+<h3>
+  <xsl:apply-templates/>
+</h3>
+</xsl:template>
+
+<xsl:template match="para">
+<p>
+  <xsl:apply-templates/>
+</p>
+</xsl:template>
+
+<xsl:template match="note">
+<p class="note">
+  <b>NOTE: </b>
+  <xsl:apply-templates/>
+</p>
+</xsl:template>
+
+<xsl:template match="emph">
+<em>
+  <xsl:apply-templates/>
+</em>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC1/result.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC1/result.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC1/result.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<html xmlns="http://www.w3.org/TR/xhtml1/strict">
+  <head>
+    <title>Document Title</title>
+  </head>
+  <body>
+    <h1>Document Title</h1>
+    <h2>Chapter Title</h2>
+    <h3>Section Title</h3>
+    <p>This is a test.</p>
+    <p class="note"><b>NOTE: </b>This is a note.</p>
+    <h3>Another Section Title</h3>
+    <p>This is <em>another</em> test.</p>
+    <p class="note"><b>NOTE: </b>This is another note.</p>
+  </body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC2/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC2/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC2/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,30 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = data.xml vrml.xsl vrml.xml svg.xsl svg.xml	html.xsl html.xml
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+# Just 3 specific files tested, they either work or don't!
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running REC2 tests'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/vrml.xsl $(srcdir)/data.xml > vrml.res ; \
+	diff $(srcdir)/vrml.xml vrml.res ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f vrml.res)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/svg.xsl $(srcdir)/data.xml > svg.res ; \
+	diff $(srcdir)/svg.xml svg.res ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f svg.res)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/html.xsl $(srcdir)/data.xml > html.res ; \
+	diff $(srcdir)/html.xml html.res ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f html.res)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC2/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC2/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC2/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,396 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/REC2
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = data.xml vrml.xsl vrml.xml svg.xsl svg.xml	html.xsl html.xml
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/REC2/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/REC2/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+# Just 3 specific files tested, they either work or don't!
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running REC2 tests'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/vrml.xsl $(srcdir)/data.xml > vrml.res ; \
+	diff $(srcdir)/vrml.xml vrml.res ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f vrml.res)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/svg.xsl $(srcdir)/data.xml > svg.res ; \
+	diff $(srcdir)/svg.xml svg.res ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f svg.res)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/html.xsl $(srcdir)/data.xml > html.res ; \
+	diff $(srcdir)/html.xml html.res ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f html.res)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC2/data.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC2/data.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC2/data.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<sales>
+
+        <division id="North">
+                <revenue>10</revenue>
+                <growth>9</growth>
+                <bonus>7</bonus>
+        </division>
+
+        <division id="South">
+                <revenue>4</revenue>
+                <growth>3</growth>
+                <bonus>4</bonus>
+        </division>
+
+        <division id="West">
+                <revenue>6</revenue>
+                <growth>-1.5</growth>
+                <bonus>2</bonus>
+        </division>
+
+</sales>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC2/html.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC2/html.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC2/html.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Sales Results By Division</title>
+</head>
+<body><table border="1">
+<tr>
+<th>Division</th>
+<th>Revenue</th>
+<th>Growth</th>
+<th>Bonus</th>
+</tr>
+<tr>
+<td><em>North</em></td>
+<td>10</td>
+<td>9</td>
+<td>7</td>
+</tr>
+<tr>
+<td><em>West</em></td>
+<td>6</td>
+<td style="color:red">-1.5</td>
+<td>2</td>
+</tr>
+<tr>
+<td><em>South</em></td>
+<td>4</td>
+<td>3</td>
+<td>4</td>
+</tr>
+</table></body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC2/html.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC2/html.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC2/html.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,43 @@
+<html xsl:version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      lang="en">
+    <head>
+        <title>Sales Results By Division</title>
+    </head>
+    <body>
+        <table border="1">
+            <tr>
+                <th>Division</th>
+                <th>Revenue</th>
+                <th>Growth</th>
+                <th>Bonus</th>
+            </tr>
+            <xsl:for-each select="sales/division">
+                <!-- order the result by revenue -->
+                <xsl:sort select="revenue"
+                          data-type="number"
+                          order="descending"/>
+                <tr>
+                    <td>
+                        <em><xsl:value-of select="@id"/></em>
+                    </td>
+                    <td>
+                        <xsl:value-of select="revenue"/>
+                    </td>
+                    <td>
+                        <!-- highlight negative growth in red -->
+                        <xsl:if test="growth &lt; 0">
+                             <xsl:attribute name="style">
+                                 <xsl:text>color:red</xsl:text>
+                             </xsl:attribute>
+                        </xsl:if>
+                        <xsl:value-of select="growth"/>
+                    </td>
+                    <td>
+                        <xsl:value-of select="bonus"/>
+                    </td>
+                </tr>
+            </xsl:for-each>
+        </table>
+    </body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC2/svg.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC2/svg.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC2/svg.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<svg xmlns="http://www.w3.org/Graphics/SVG/SVG-19990812.dtd" width="3in" height="3in">
+  <g style="stroke: #000000">
+    <line x1="0" x2="150" y1="150" y2="150"/>
+    <line x1="0" x2="0" y1="0" y2="150"/>
+    <text x="0" y="10">Revenue</text>
+    <text x="150" y="165">Division</text>
+    <rect x="10" y="50" width="20" height="100"/>
+    <text x="10" y="165">North</text>
+    <text x="10" y="45">10</text>
+    <rect x="50" y="110" width="20" height="40"/>
+    <text x="50" y="165">South</text>
+    <text x="50" y="105">4</text>
+    <rect x="90" y="90" width="20" height="60"/>
+    <text x="90" y="165">West</text>
+    <text x="90" y="85">6</text>
+  </g>
+</svg>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC2/svg.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC2/svg.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC2/svg.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,45 @@
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns="http://www.w3.org/Graphics/SVG/SVG-19990812.dtd">
+
+<xsl:output method="xml" indent="yes" media-type="image/svg"/>
+
+<xsl:template match="/">
+
+<svg width = "3in" height="3in">
+    <g style = "stroke: #000000"> 
+        <!-- draw the axes -->
+        <line x1="0" x2="150" y1="150" y2="150"/>
+        <line x1="0" x2="0" y1="0" y2="150"/>
+        <text x="0" y="10">Revenue</text>
+        <text x="150" y="165">Division</text>
+        <xsl:for-each select="sales/division">
+            <!-- define some useful variables -->
+
+            <!-- the bar's x position -->
+            <xsl:variable name="pos"
+                          select="(position()*40)-30"/>
+
+            <!-- the bar's height -->
+            <xsl:variable name="height"
+                          select="revenue*10"/>
+
+            <!-- the rectangle -->
+            <rect x="{$pos}" y="{150-$height}"
+                  width="20" height="{$height}"/>
+
+            <!-- the text label -->
+            <text x="{$pos}" y="165">
+                <xsl:value-of select="@id"/>
+            </text> 
+
+            <!-- the bar value -->
+            <text x="{$pos}" y="{145-$height}">
+                <xsl:value-of select="revenue"/>
+            </text>
+        </xsl:for-each>
+    </g>
+</svg>
+
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC2/vrml.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC2/vrml.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC2/vrml.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,38 @@
+#VRML V2.0 utf8 
+ 
+# externproto definition of a single bar element 
+EXTERNPROTO bar [ 
+  field SFInt32 x  
+  field SFInt32 y  
+  field SFInt32 z  
+  field SFString name  
+  ] 
+  "http://www.vrml.org/WorkingGroups/dbwork/barProto.wrl" 
+ 
+# inline containing the graph axes 
+Inline {  
+        url "http://www.vrml.org/WorkingGroups/dbwork/barAxes.wrl" 
+        } 
+        
+                
+bar {
+        x 10
+        y 9
+        z 7
+        name "North" 
+        }
+                
+bar {
+        x 4
+        y 3
+        z 4
+        name "South" 
+        }
+                
+bar {
+        x 6
+        y -1.5
+        z 2
+        name "West" 
+        }
+                
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/REC2/vrml.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/REC2/vrml.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/REC2/vrml.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,34 @@
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- generate text output as mime type model/vrml, using default charset -->
+<xsl:output method="text" encoding="UTF-8" media-type="model/vrml"/>  
+
+        <xsl:template match="/">#VRML V2.0 utf8 
+ 
+# externproto definition of a single bar element 
+EXTERNPROTO bar [ 
+  field SFInt32 x  
+  field SFInt32 y  
+  field SFInt32 z  
+  field SFString name  
+  ] 
+  "http://www.vrml.org/WorkingGroups/dbwork/barProto.wrl" 
+ 
+# inline containing the graph axes 
+Inline {  
+        url "http://www.vrml.org/WorkingGroups/dbwork/barAxes.wrl" 
+        } 
+        
+                <xsl:for-each select="sales/division">
+bar {
+        x <xsl:value-of select="revenue"/>
+        y <xsl:value-of select="growth"/>
+        z <xsl:value-of select="bonus"/>
+        name "<xsl:value-of select="@id"/>" 
+        }
+                </xsl:for-each>
+        
+        </xsl:template> 
+ 
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,740 @@
+## Process this file with automake to produce Makefile.in
+%.out : %
+
+EXTRA_DIST = \
+  dbgen.pl \
+  alphabetize.out alphabetize.ref alphabetize.xsl \
+  attsets.out attsets.ref attsets.xsl \
+  avts.out avts.ref avts.xsl \
+  axis.out axis.ref axis.xml axis.xsl \
+  backwards.out backwards.ref backwards.xsl \
+  bottles.out bottles.ref bottles.xml bottles.xsl \
+  breadth.out breadth.ref breadth.xml \
+  brutal.out brutal.ref brutal.xml brutal.xsl \
+  chart.out chart.ref chart.xml chart.xsl \
+  creation.out creation.ref creation.xsl \
+  current.out current.ref current.xml current.xsl \
+  dbonerow.out dbonerow.ref dbonerow.xsl \
+  dbtail.out dbtail.ref dbtail.xsl \
+  decoy.out decoy.xsl \
+  depth.out depth.ref depth.xml \
+  encrypt.out encrypt.ref encrypt.xsl \
+  find.xsl \
+  functions.out functions.ref functions.xsl \
+  game.out game.ref game.xml game.xsl \
+  gettysburg.xml \
+  html.out html.ref html.xml html.xsl \
+  identity.out identity.ref identity.xml identity.xsl \
+  inventory.out inventory.ref inventory.xml inventory.xsl \
+  metric.out metric.ref metric.xml metric.xsl \
+  number.out number.xml number.xsl \
+  oddtemplate.out oddtemplate.ref oddtemplate.xml oddtemplate.xsl \
+  patterns.out patterns.ref patterns.xsl \
+  prettyprint.out prettyprint.ref prettyprint.xsl \
+  priority.out priority.ref priority.xml priority.xsl \
+  products.out products.ref products.xml products.xsl \
+  queens.out queens.ref queens.xml queens.xsl \
+  reverser.out reverser.ref reverser.xsl \
+  stringsort.out stringsort.ref stringsort.xsl \
+  summarize.out summarize.ref summarize.xsl \
+  total.out total.ref total.xsl \
+  tower.out tower.ref tower.xml tower.xsl tower2.xsl \
+  trend.out trend.ref trend.xml trend.xsl \
+  union.out union.ref union.xml union.xsl \
+  xpath.out xpath.ref xpath.xml xpath.xsl \
+  xslbench1.out xslbench1.xml xslbench1.xsl \
+  xslbench2.out xslbench2.xsl \
+  xslbench3.out xslbench3.xsl \
+  xslbenchdream.xml
+
+ALL_TESTS=	alphabetize attsets avts axis backwards bottles breadth brutal chart \
+  creation current dbonerow dbtail decoy depth encrypt functions game \
+  html identity inventory metric number oddtemplate patterns prettyprint \
+  priority products queens reverser stringsort summarize total tower trend \
+  union xpath xslbench1 xslbench2 xslbench3
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+test tests:
+	@echo '## Running XSLTMark tests'
+	@for i in $(ALL_TESTS); do $(MAKE) $$i; done
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+clean:
+	rm -f *.tmp *~ core db100.xml db1000.xml db10000.xml
+
+
+if WITH_PERL
+db100.xml: $(srcdir)/dbgen.pl
+	$(PERL) $(srcdir)/dbgen.pl 100 > db100.xml
+
+db1000.xml: $(srcdir)/dbgen.pl
+	$(PERL) $(srcdir)/dbgen.pl 1000 > db1000.xml
+
+db10000.xml: $(srcdir)/dbgen.pl
+	$(PERL) $(srcdir)/dbgen.pl 10000 > db10000.xml
+
+alphabetize:	db100.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+avts:			db100.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+creation:		db100.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+dbonerow:		db10000.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+dbtail:		db100.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+decoy:		db100.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+encrypt:		db100.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+functions:		db100.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+identity:		db1000.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+patterns:		db100.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+prettyprint:	db100.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+stringsort:		db1000.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+else
+
+alphabetize:
+avts:
+creation:
+dbonerow:
+dbtail:
+decoy:
+encrypt:
+functions:
+identity:
+patterns:
+prettyprint:
+stringsort:
+
+endif
+
+attsets:		chart.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+axis:			axis.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+backwards:		game.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+bottles:		bottles.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+brutal:		brutal.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+chart:		chart.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+current:		current.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+game:			game.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+html:			html.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+inventory:		inventory.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+metric:		metric.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+number:		number.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+oddtemplate:	oddtemplate.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+priority:		priority.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+products:		products.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+queens:		queens.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+reverser:		gettysburg.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+summarize:		queens.xsl
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+total:		chart.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+tower:		tower.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+trend:		trend.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+union:		union.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+xpath:		xpath.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+xslbench1:		xslbench1.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+xslbench2:		xslbenchdream.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+xslbench3:		xslbenchdream.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+breadth:		
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/find.xsl $@.xml > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+depth:		
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/find.xsl $@.xml > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1096 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/XSLTMark
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+  dbgen.pl \
+  alphabetize.out alphabetize.ref alphabetize.xsl \
+  attsets.out attsets.ref attsets.xsl \
+  avts.out avts.ref avts.xsl \
+  axis.out axis.ref axis.xml axis.xsl \
+  backwards.out backwards.ref backwards.xsl \
+  bottles.out bottles.ref bottles.xml bottles.xsl \
+  breadth.out breadth.ref breadth.xml \
+  brutal.out brutal.ref brutal.xml brutal.xsl \
+  chart.out chart.ref chart.xml chart.xsl \
+  creation.out creation.ref creation.xsl \
+  current.out current.ref current.xml current.xsl \
+  dbonerow.out dbonerow.ref dbonerow.xsl \
+  dbtail.out dbtail.ref dbtail.xsl \
+  decoy.out decoy.xsl \
+  depth.out depth.ref depth.xml \
+  encrypt.out encrypt.ref encrypt.xsl \
+  find.xsl \
+  functions.out functions.ref functions.xsl \
+  game.out game.ref game.xml game.xsl \
+  gettysburg.xml \
+  html.out html.ref html.xml html.xsl \
+  identity.out identity.ref identity.xml identity.xsl \
+  inventory.out inventory.ref inventory.xml inventory.xsl \
+  metric.out metric.ref metric.xml metric.xsl \
+  number.out number.xml number.xsl \
+  oddtemplate.out oddtemplate.ref oddtemplate.xml oddtemplate.xsl \
+  patterns.out patterns.ref patterns.xsl \
+  prettyprint.out prettyprint.ref prettyprint.xsl \
+  priority.out priority.ref priority.xml priority.xsl \
+  products.out products.ref products.xml products.xsl \
+  queens.out queens.ref queens.xml queens.xsl \
+  reverser.out reverser.ref reverser.xsl \
+  stringsort.out stringsort.ref stringsort.xsl \
+  summarize.out summarize.ref summarize.xsl \
+  total.out total.ref total.xsl \
+  tower.out tower.ref tower.xml tower.xsl tower2.xsl \
+  trend.out trend.ref trend.xml trend.xsl \
+  union.out union.ref union.xml union.xsl \
+  xpath.out xpath.ref xpath.xml xpath.xsl \
+  xslbench1.out xslbench1.xml xslbench1.xsl \
+  xslbench2.out xslbench2.xsl \
+  xslbench3.out xslbench3.xsl \
+  xslbenchdream.xml
+
+ALL_TESTS = alphabetize attsets avts axis backwards bottles breadth brutal chart \
+  creation current dbonerow dbtail decoy depth encrypt functions game \
+  html identity inventory metric number oddtemplate patterns prettyprint \
+  priority products queens reverser stringsort summarize total tower trend \
+  union xpath xslbench1 xslbench2 xslbench3
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/XSLTMark/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/XSLTMark/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+%.out : %
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+test tests:
+	@echo '## Running XSLTMark tests'
+	@for i in $(ALL_TESTS); do $(MAKE) $$i; done
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+clean:
+	rm -f *.tmp *~ core db100.xml db1000.xml db10000.xml
+
+ at WITH_PERL_TRUE@db100.xml: $(srcdir)/dbgen.pl
+ at WITH_PERL_TRUE@	$(PERL) $(srcdir)/dbgen.pl 100 > db100.xml
+
+ at WITH_PERL_TRUE@db1000.xml: $(srcdir)/dbgen.pl
+ at WITH_PERL_TRUE@	$(PERL) $(srcdir)/dbgen.pl 1000 > db1000.xml
+
+ at WITH_PERL_TRUE@db10000.xml: $(srcdir)/dbgen.pl
+ at WITH_PERL_TRUE@	$(PERL) $(srcdir)/dbgen.pl 10000 > db10000.xml
+
+ at WITH_PERL_TRUE@alphabetize:	db100.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_TRUE@avts:			db100.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_TRUE@creation:		db100.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_TRUE@dbonerow:		db10000.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_TRUE@dbtail:		db100.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_TRUE@decoy:		db100.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_TRUE@encrypt:		db100.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_TRUE@functions:		db100.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_TRUE@identity:		db1000.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_TRUE@patterns:		db100.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_TRUE@prettyprint:	db100.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_TRUE@stringsort:		db1000.xml
+ at WITH_PERL_TRUE@	@(echo > .memdump)
+ at WITH_PERL_TRUE@	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+ at WITH_PERL_TRUE@		$(srcdir)/$@.xsl $< > $@.tmp; \
+ at WITH_PERL_TRUE@	  if [ ! -f $(srcdir)/$@.out ] ; then \
+ at WITH_PERL_TRUE@		cp $@.tmp $(srcdir)/$@.out ; \
+ at WITH_PERL_TRUE@	  else \
+ at WITH_PERL_TRUE@		diff $(srcdir)/$@.out $@.tmp ; \
+ at WITH_PERL_TRUE@	  fi ; \
+ at WITH_PERL_TRUE@	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+ at WITH_PERL_TRUE@	@if [ -n "$$log" ] ; then \
+ at WITH_PERL_TRUE@	  	echo $@ result ; \
+ at WITH_PERL_TRUE@		echo $$log ; \
+ at WITH_PERL_TRUE@	fi
+ at WITH_PERL_TRUE@	@rm -f $@.tmp
+
+ at WITH_PERL_FALSE@alphabetize:
+ at WITH_PERL_FALSE@avts:
+ at WITH_PERL_FALSE@creation:
+ at WITH_PERL_FALSE@dbonerow:
+ at WITH_PERL_FALSE@dbtail:
+ at WITH_PERL_FALSE@decoy:
+ at WITH_PERL_FALSE@encrypt:
+ at WITH_PERL_FALSE@functions:
+ at WITH_PERL_FALSE@identity:
+ at WITH_PERL_FALSE@patterns:
+ at WITH_PERL_FALSE@prettyprint:
+ at WITH_PERL_FALSE@stringsort:
+
+attsets:		chart.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+axis:			axis.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+backwards:		game.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+bottles:		bottles.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+brutal:		brutal.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+chart:		chart.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+current:		current.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+game:			game.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+html:			html.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+inventory:		inventory.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+metric:		metric.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+number:		number.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+oddtemplate:	oddtemplate.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+priority:		priority.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+products:		products.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+queens:		queens.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+reverser:		gettysburg.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+summarize:		queens.xsl
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+total:		chart.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+tower:		tower.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+trend:		trend.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+union:		union.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+xpath:		xpath.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+xslbench1:		xslbench1.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+xslbench2:		xslbenchdream.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+xslbench3:		xslbenchdream.xml
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$@.xsl $< > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+breadth:		
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/find.xsl $@.xml > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+
+depth:		
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/find.xsl $@.xml > $@.tmp; \
+	  if [ ! -f $(srcdir)/$@.out ] ; then \
+		cp $@.tmp $(srcdir)/$@.out ; \
+	  else \
+		diff $(srcdir)/$@.out $@.tmp ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo $@ result ; \
+		echo $$log ; \
+	fi
+	@rm -f $@.tmp
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<table><row><city>Anytown</city><firstname>Al</firstname><id>0000</id><lastname>Aranow</lastname><state>AL</state><street>1 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Bob</firstname><id>0001</id><lastname>Aranow</lastname><state>AL</state><street>2 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Charles</firstname><id>0002</id><lastname>Aranow</lastname><state>AL</state><street>3 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>David</firstname><id>0003</id><lastname>Aranow</lastname><state>AL</state><street>4 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Egon</firstname><id>0004</id><lastname>Aranow</lastname><state>AL</state><street>5 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Farbood</firstname><id>0005</id><lastname>Aranow</lastname><state>AL</state><street>6 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>George</firstname><id>0006</id><lastname>Aranow</lastname><state>AL</state><street>7 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Hank</firstname><id>0007</id><lastname>Aranow</lastname><state>AL</state><street>8 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Inki</firstname><id>0008</id><lastname>Aranow</lastname><state>AL</state><street>9 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>James</firstname><id>0009</id><lastname>Aranow</lastname><state>AL</state><street>10 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Al</firstname><id>0010</id><lastname>Barker</lastname><state>AL</state><street>11 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Bob</firstname><id>0011</id><lastname>Barker</lastname><state>AL</state><street>12 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Charles</firstname><id>0012</id><lastname>Barker</lastname><state>AL</state><street>13 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>David</firstname><id>0013</id><lastname>Barker</lastname><state>AL</state><street>14 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Egon</firstname><id>0014</id><lastname>Barker</lastname><state>AL</state><street>15 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Farbood</firstname><id>0015</id><lastname>Barker</lastname><state>AL</state><street>16 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>George</firstname><id>0016</id><lastname>Barker</lastname><state>AL</state><street>17 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Hank</firstname><id>0017</id><lastname>Barker</lastname><state>AL</state><street>18 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Inki</firstname><id>0018</id><lastname>Barker</lastname><state>AL</state><street>19 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>James</firstname><id>0019</id><lastname>Barker</lastname><state>AL</state><street>20 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Al</firstname><id>0020</id><lastname>Corsetti</lastname><state>AL</state><street>21 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Bob</firstname><id>0021</id><lastname>Corsetti</lastname><state>AL</state><street>22 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Charles</firstname><id>0022</id><lastname>Corsetti</lastname><state>AL</state><street>23 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>David</firstname><id>0023</id><lastname>Corsetti</lastname><state>AL</state><street>24 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Egon</firstname><id>0024</id><lastname>Corsetti</lastname><state>AL</state><street>25 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Farbood</firstname><id>0025</id><lastname>Corsetti</lastname><state>AL</state><street>26 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>George</firstname><id>0026</id><lastname>Corsetti</lastname><state>AL</state><street>27 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Hank</firstname><id>0027</id><lastname>Corsetti</lastname><state>AL</state><street>28 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Inki</firstname><id>0028</id><lastname>Corsetti</lastname><state>AL</state><street>29 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>James</firstname><id>0029</id><lastname>Corsetti</lastname><state>AL</state><street>30 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Al</firstname><id>0030</id><lastname>Dershowitz</lastname><state>AL</state><street>31 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Bob</firstname><id>0031</id><lastname>Dershowitz</lastname><state>AL</state><street>32 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Charles</firstname><id>0032</id><lastname>Dershowitz</lastname><state>AL</state><street>33 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>David</firstname><id>0033</id><lastname>Dershowitz</lastname><state>AL</state><street>34 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Egon</firstname><id>0034</id><lastname>Dershowitz</lastname><state>AL</state><street>35 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Farbood</firstname><id>0035</id><lastname>Dershowitz</lastname><state>AL</state><street>36 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>George</firstname><id>0036</id><lastname>Dershowitz</lastname><state>AL</state><street>37 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Hank</firstname><id>0037</id><lastname>Dershowitz</lastname><state>AL</state><street>38 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Inki</firstname><id>0038</id><lastname>Dershowitz</lastname><state>AL</state><street>39 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>James</firstname><id>0039</id><lastname>Dershowitz</lastname><state>AL</state><street>40 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Al</firstname><id>0040</id><lastname>Engleman</lastname><state>AL</state><street>41 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Bob</firstname><id>0041</id><lastname>Engleman</lastname><state>AL</state><street>42 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Charles</firstname><id>0042</id><lastname>Engleman</lastname><state>AL</state><street>43 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>David</firstname><id>0043</id><lastname>Engleman</lastname><state>AL</state><street>44 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Egon</firstname><id>0044</id><lastname>Engleman</lastname><state>AL</state><street>45 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Farbood</firstname><id>0045</id><lastname>Engleman</lastname><state>AL</state><street>46 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>George</firstname><id>0046</id><lastname>Engleman</lastname><state>AL</state><street>47 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Hank</firstname><id>0047</id><lastname>Engleman</lastname><state>AL</state><street>48 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Inki</firstname><id>0048</id><lastname>Engleman</lastname><state>AL</state><street>49 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>James</firstname><id>0049</id><lastname>Engleman</lastname><state>AL</state><street>50 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Al</firstname><id>0050</id><lastname>Franklin</lastname><state>AL</state><street>51 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Bob</firstname><id>0051</id><lastname>Franklin</lastname><state>AL</state><street>52 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Charles</firstname><id>0052</id><lastname>Franklin</lastname><state>AL</state><street>53 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>David</firstname><id>0053</id><lastname>Franklin</lastname><state>AL</state><street>54 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Egon</firstname><id>0054</id><lastname>Franklin</lastname><state>AL</state><street>55 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Farbood</firstname><id>0055</id><lastname>Franklin</lastname><state>AL</state><street>56 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>George</firstname><id>0056</id><lastname>Franklin</lastname><state>AL</state><street>57 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Hank</firstname><id>0057</id><lastname>Franklin</lastname><state>AL</state><street>58 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Inki</firstname><id>0058</id><lastname>Franklin</lastname><state>AL</state><street>59 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>James</firstname><id>0059</id><lastname>Franklin</lastname><state>AL</state><street>60 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Al</firstname><id>0060</id><lastname>Grice</lastname><state>AL</state><street>61 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Bob</firstname><id>0061</id><lastname>Grice</lastname><state>AL</state><street>62 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Charles</firstname><id>0062</id><lastname>Grice</lastname><state>AL</state><street>63 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>David</firstname><id>0063</id><lastname>Grice</lastname><state>AL</state><street>64 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Egon</firstname><id>0064</id><lastname>Grice</lastname><state>AL</state><street>65 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Farbood</firstname><id>0065</id><lastname>Grice</lastname><state>AL</state><street>66 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>George</firstname><id>0066</id><lastname>Grice</lastname><state>AL</state><street>67 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Hank</firstname><id>0067</id><lastname>Grice</lastname><state>AL</state><street>68 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Inki</firstname><id>0068</id><lastname>Grice</lastname><state>AL</state><street>69 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>James</firstname><id>0069</id><lastname>Grice</lastname><state>AL</state><street>70 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Al</firstname><id>0070</id><lastname>Haverford</lastname><state>AL</state><street>71 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Bob</firstname><id>0071</id><lastname>Haverford</lastname><state>AL</state><street>72 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Charles</firstname><id>0072</id><lastname>Haverford</lastname><state>AL</state><street>73 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>David</firstname><id>0073</id><lastname>Haverford</lastname><state>AL</state><street>74 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Egon</firstname><id>0074</id><lastname>Haverford</lastname><state>AL</state><street>75 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Farbood</firstname><id>0075</id><lastname>Haverford</lastname><state>AL</state><street>76 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>George</firstname><id>0076</id><lastname>Haverford</lastname><state>AL</state><street>77 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Hank</firstname><id>0077</id><lastname>Haverford</lastname><state>AL</state><street>78 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Inki</firstname><id>0078</id><lastname>Haverford</lastname><state>AL</state><street>79 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>James</firstname><id>0079</id><lastname>Haverford</lastname><state>AL</state><street>80 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Al</firstname><id>0080</id><lastname>Ilvedson</lastname><state>AL</state><street>81 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Bob</firstname><id>0081</id><lastname>Ilvedson</lastname><state>AL</state><street>82 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Charles</firstname><id>0082</id><lastname>Ilvedson</lastname><state>AL</state><street>83 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>David</firstname><id>0083</id><lastname>Ilvedson</lastname><state>AL</state><street>84 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Egon</firstname><id>0084</id><lastname>Ilvedson</lastname><state>AL</state><street>85 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Farbood</firstname><id>0085</id><lastname>Ilvedson</lastname><state>AL</state><street>86 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>George</firstname><id>0086</id><lastname>Ilvedson</lastname><state>AL</state><street>87 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Hank</firstname><id>0087</id><lastname>Ilvedson</lastname><state>AL</state><street>88 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Inki</firstname><id>0088</id><lastname>Ilvedson</lastname><state>AL</state><street>89 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>James</firstname><id>0089</id><lastname>Ilvedson</lastname><state>AL</state><street>90 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Al</firstname><id>0090</id><lastname>Jones</lastname><state>AL</state><street>91 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Bob</firstname><id>0091</id><lastname>Jones</lastname><state>AL</state><street>92 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Charles</firstname><id>0092</id><lastname>Jones</lastname><state>AL</state><street>93 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>David</firstname><id>0093</id><lastname>Jones</lastname><state>AL</state><street>94 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Egon</firstname><id>0094</id><lastname>Jones</lastname><state>AL</state><street>95 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Farbood</firstname><id>0095</id><lastname>Jones</lastname><state>AL</state><street>96 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>George</firstname><id>0096</id><lastname>Jones</lastname><state>AL</state><street>97 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Hank</firstname><id>0097</id><lastname>Jones</lastname><state>AL</state><street>98 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>Inki</firstname><id>0098</id><lastname>Jones</lastname><state>AL</state><street>99 Any St.</street><zip>22000</zip></row><row><city>Anytown</city><firstname>James</firstname><id>0099</id><lastname>Jones</lastname><state>AL</state><street>100 Any St.</street><zip>22000</zip></row></table>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2502 @@
+<table>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Al
+</firstname>
+<id>
+0000
+</id>
+<lastname>
+Aranow
+</lastname>
+<state>
+AL
+</state>
+<street>
+1
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Bob
+</firstname>
+<id>
+0001
+</id>
+<lastname>
+Aranow
+</lastname>
+<state>
+AL
+</state>
+<street>
+2
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Charles
+</firstname>
+<id>
+0002
+</id>
+<lastname>
+Aranow
+</lastname>
+<state>
+AL
+</state>
+<street>
+3
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+David
+</firstname>
+<id>
+0003
+</id>
+<lastname>
+Aranow
+</lastname>
+<state>
+AL
+</state>
+<street>
+4
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Egon
+</firstname>
+<id>
+0004
+</id>
+<lastname>
+Aranow
+</lastname>
+<state>
+AL
+</state>
+<street>
+5
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Farbood
+</firstname>
+<id>
+0005
+</id>
+<lastname>
+Aranow
+</lastname>
+<state>
+AL
+</state>
+<street>
+6
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+George
+</firstname>
+<id>
+0006
+</id>
+<lastname>
+Aranow
+</lastname>
+<state>
+AL
+</state>
+<street>
+7
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Hank
+</firstname>
+<id>
+0007
+</id>
+<lastname>
+Aranow
+</lastname>
+<state>
+AL
+</state>
+<street>
+8
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Inki
+</firstname>
+<id>
+0008
+</id>
+<lastname>
+Aranow
+</lastname>
+<state>
+AL
+</state>
+<street>
+9
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+James
+</firstname>
+<id>
+0009
+</id>
+<lastname>
+Aranow
+</lastname>
+<state>
+AL
+</state>
+<street>
+10
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Al
+</firstname>
+<id>
+0010
+</id>
+<lastname>
+Barker
+</lastname>
+<state>
+AL
+</state>
+<street>
+11
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Bob
+</firstname>
+<id>
+0011
+</id>
+<lastname>
+Barker
+</lastname>
+<state>
+AL
+</state>
+<street>
+12
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Charles
+</firstname>
+<id>
+0012
+</id>
+<lastname>
+Barker
+</lastname>
+<state>
+AL
+</state>
+<street>
+13
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+David
+</firstname>
+<id>
+0013
+</id>
+<lastname>
+Barker
+</lastname>
+<state>
+AL
+</state>
+<street>
+14
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Egon
+</firstname>
+<id>
+0014
+</id>
+<lastname>
+Barker
+</lastname>
+<state>
+AL
+</state>
+<street>
+15
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Farbood
+</firstname>
+<id>
+0015
+</id>
+<lastname>
+Barker
+</lastname>
+<state>
+AL
+</state>
+<street>
+16
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+George
+</firstname>
+<id>
+0016
+</id>
+<lastname>
+Barker
+</lastname>
+<state>
+AL
+</state>
+<street>
+17
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Hank
+</firstname>
+<id>
+0017
+</id>
+<lastname>
+Barker
+</lastname>
+<state>
+AL
+</state>
+<street>
+18
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Inki
+</firstname>
+<id>
+0018
+</id>
+<lastname>
+Barker
+</lastname>
+<state>
+AL
+</state>
+<street>
+19
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+James
+</firstname>
+<id>
+0019
+</id>
+<lastname>
+Barker
+</lastname>
+<state>
+AL
+</state>
+<street>
+20
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Al
+</firstname>
+<id>
+0020
+</id>
+<lastname>
+Corsetti
+</lastname>
+<state>
+AL
+</state>
+<street>
+21
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Bob
+</firstname>
+<id>
+0021
+</id>
+<lastname>
+Corsetti
+</lastname>
+<state>
+AL
+</state>
+<street>
+22
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Charles
+</firstname>
+<id>
+0022
+</id>
+<lastname>
+Corsetti
+</lastname>
+<state>
+AL
+</state>
+<street>
+23
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+David
+</firstname>
+<id>
+0023
+</id>
+<lastname>
+Corsetti
+</lastname>
+<state>
+AL
+</state>
+<street>
+24
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Egon
+</firstname>
+<id>
+0024
+</id>
+<lastname>
+Corsetti
+</lastname>
+<state>
+AL
+</state>
+<street>
+25
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Farbood
+</firstname>
+<id>
+0025
+</id>
+<lastname>
+Corsetti
+</lastname>
+<state>
+AL
+</state>
+<street>
+26
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+George
+</firstname>
+<id>
+0026
+</id>
+<lastname>
+Corsetti
+</lastname>
+<state>
+AL
+</state>
+<street>
+27
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Hank
+</firstname>
+<id>
+0027
+</id>
+<lastname>
+Corsetti
+</lastname>
+<state>
+AL
+</state>
+<street>
+28
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Inki
+</firstname>
+<id>
+0028
+</id>
+<lastname>
+Corsetti
+</lastname>
+<state>
+AL
+</state>
+<street>
+29
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+James
+</firstname>
+<id>
+0029
+</id>
+<lastname>
+Corsetti
+</lastname>
+<state>
+AL
+</state>
+<street>
+30
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Al
+</firstname>
+<id>
+0030
+</id>
+<lastname>
+Dershowitz
+</lastname>
+<state>
+AL
+</state>
+<street>
+31
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Bob
+</firstname>
+<id>
+0031
+</id>
+<lastname>
+Dershowitz
+</lastname>
+<state>
+AL
+</state>
+<street>
+32
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Charles
+</firstname>
+<id>
+0032
+</id>
+<lastname>
+Dershowitz
+</lastname>
+<state>
+AL
+</state>
+<street>
+33
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+David
+</firstname>
+<id>
+0033
+</id>
+<lastname>
+Dershowitz
+</lastname>
+<state>
+AL
+</state>
+<street>
+34
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Egon
+</firstname>
+<id>
+0034
+</id>
+<lastname>
+Dershowitz
+</lastname>
+<state>
+AL
+</state>
+<street>
+35
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Farbood
+</firstname>
+<id>
+0035
+</id>
+<lastname>
+Dershowitz
+</lastname>
+<state>
+AL
+</state>
+<street>
+36
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+George
+</firstname>
+<id>
+0036
+</id>
+<lastname>
+Dershowitz
+</lastname>
+<state>
+AL
+</state>
+<street>
+37
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Hank
+</firstname>
+<id>
+0037
+</id>
+<lastname>
+Dershowitz
+</lastname>
+<state>
+AL
+</state>
+<street>
+38
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Inki
+</firstname>
+<id>
+0038
+</id>
+<lastname>
+Dershowitz
+</lastname>
+<state>
+AL
+</state>
+<street>
+39
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+James
+</firstname>
+<id>
+0039
+</id>
+<lastname>
+Dershowitz
+</lastname>
+<state>
+AL
+</state>
+<street>
+40
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Al
+</firstname>
+<id>
+0040
+</id>
+<lastname>
+Engleman
+</lastname>
+<state>
+AL
+</state>
+<street>
+41
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Bob
+</firstname>
+<id>
+0041
+</id>
+<lastname>
+Engleman
+</lastname>
+<state>
+AL
+</state>
+<street>
+42
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Charles
+</firstname>
+<id>
+0042
+</id>
+<lastname>
+Engleman
+</lastname>
+<state>
+AL
+</state>
+<street>
+43
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+David
+</firstname>
+<id>
+0043
+</id>
+<lastname>
+Engleman
+</lastname>
+<state>
+AL
+</state>
+<street>
+44
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Egon
+</firstname>
+<id>
+0044
+</id>
+<lastname>
+Engleman
+</lastname>
+<state>
+AL
+</state>
+<street>
+45
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Farbood
+</firstname>
+<id>
+0045
+</id>
+<lastname>
+Engleman
+</lastname>
+<state>
+AL
+</state>
+<street>
+46
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+George
+</firstname>
+<id>
+0046
+</id>
+<lastname>
+Engleman
+</lastname>
+<state>
+AL
+</state>
+<street>
+47
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Hank
+</firstname>
+<id>
+0047
+</id>
+<lastname>
+Engleman
+</lastname>
+<state>
+AL
+</state>
+<street>
+48
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Inki
+</firstname>
+<id>
+0048
+</id>
+<lastname>
+Engleman
+</lastname>
+<state>
+AL
+</state>
+<street>
+49
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+James
+</firstname>
+<id>
+0049
+</id>
+<lastname>
+Engleman
+</lastname>
+<state>
+AL
+</state>
+<street>
+50
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Al
+</firstname>
+<id>
+0050
+</id>
+<lastname>
+Franklin
+</lastname>
+<state>
+AL
+</state>
+<street>
+51
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Bob
+</firstname>
+<id>
+0051
+</id>
+<lastname>
+Franklin
+</lastname>
+<state>
+AL
+</state>
+<street>
+52
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Charles
+</firstname>
+<id>
+0052
+</id>
+<lastname>
+Franklin
+</lastname>
+<state>
+AL
+</state>
+<street>
+53
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+David
+</firstname>
+<id>
+0053
+</id>
+<lastname>
+Franklin
+</lastname>
+<state>
+AL
+</state>
+<street>
+54
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Egon
+</firstname>
+<id>
+0054
+</id>
+<lastname>
+Franklin
+</lastname>
+<state>
+AL
+</state>
+<street>
+55
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Farbood
+</firstname>
+<id>
+0055
+</id>
+<lastname>
+Franklin
+</lastname>
+<state>
+AL
+</state>
+<street>
+56
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+George
+</firstname>
+<id>
+0056
+</id>
+<lastname>
+Franklin
+</lastname>
+<state>
+AL
+</state>
+<street>
+57
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Hank
+</firstname>
+<id>
+0057
+</id>
+<lastname>
+Franklin
+</lastname>
+<state>
+AL
+</state>
+<street>
+58
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Inki
+</firstname>
+<id>
+0058
+</id>
+<lastname>
+Franklin
+</lastname>
+<state>
+AL
+</state>
+<street>
+59
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+James
+</firstname>
+<id>
+0059
+</id>
+<lastname>
+Franklin
+</lastname>
+<state>
+AL
+</state>
+<street>
+60
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Al
+</firstname>
+<id>
+0060
+</id>
+<lastname>
+Grice
+</lastname>
+<state>
+AL
+</state>
+<street>
+61
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Bob
+</firstname>
+<id>
+0061
+</id>
+<lastname>
+Grice
+</lastname>
+<state>
+AL
+</state>
+<street>
+62
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Charles
+</firstname>
+<id>
+0062
+</id>
+<lastname>
+Grice
+</lastname>
+<state>
+AL
+</state>
+<street>
+63
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+David
+</firstname>
+<id>
+0063
+</id>
+<lastname>
+Grice
+</lastname>
+<state>
+AL
+</state>
+<street>
+64
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Egon
+</firstname>
+<id>
+0064
+</id>
+<lastname>
+Grice
+</lastname>
+<state>
+AL
+</state>
+<street>
+65
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Farbood
+</firstname>
+<id>
+0065
+</id>
+<lastname>
+Grice
+</lastname>
+<state>
+AL
+</state>
+<street>
+66
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+George
+</firstname>
+<id>
+0066
+</id>
+<lastname>
+Grice
+</lastname>
+<state>
+AL
+</state>
+<street>
+67
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Hank
+</firstname>
+<id>
+0067
+</id>
+<lastname>
+Grice
+</lastname>
+<state>
+AL
+</state>
+<street>
+68
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Inki
+</firstname>
+<id>
+0068
+</id>
+<lastname>
+Grice
+</lastname>
+<state>
+AL
+</state>
+<street>
+69
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+James
+</firstname>
+<id>
+0069
+</id>
+<lastname>
+Grice
+</lastname>
+<state>
+AL
+</state>
+<street>
+70
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Al
+</firstname>
+<id>
+0070
+</id>
+<lastname>
+Haverford
+</lastname>
+<state>
+AL
+</state>
+<street>
+71
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Bob
+</firstname>
+<id>
+0071
+</id>
+<lastname>
+Haverford
+</lastname>
+<state>
+AL
+</state>
+<street>
+72
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Charles
+</firstname>
+<id>
+0072
+</id>
+<lastname>
+Haverford
+</lastname>
+<state>
+AL
+</state>
+<street>
+73
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+David
+</firstname>
+<id>
+0073
+</id>
+<lastname>
+Haverford
+</lastname>
+<state>
+AL
+</state>
+<street>
+74
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Egon
+</firstname>
+<id>
+0074
+</id>
+<lastname>
+Haverford
+</lastname>
+<state>
+AL
+</state>
+<street>
+75
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Farbood
+</firstname>
+<id>
+0075
+</id>
+<lastname>
+Haverford
+</lastname>
+<state>
+AL
+</state>
+<street>
+76
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+George
+</firstname>
+<id>
+0076
+</id>
+<lastname>
+Haverford
+</lastname>
+<state>
+AL
+</state>
+<street>
+77
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Hank
+</firstname>
+<id>
+0077
+</id>
+<lastname>
+Haverford
+</lastname>
+<state>
+AL
+</state>
+<street>
+78
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Inki
+</firstname>
+<id>
+0078
+</id>
+<lastname>
+Haverford
+</lastname>
+<state>
+AL
+</state>
+<street>
+79
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+James
+</firstname>
+<id>
+0079
+</id>
+<lastname>
+Haverford
+</lastname>
+<state>
+AL
+</state>
+<street>
+80
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Al
+</firstname>
+<id>
+0080
+</id>
+<lastname>
+Ilvedson
+</lastname>
+<state>
+AL
+</state>
+<street>
+81
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Bob
+</firstname>
+<id>
+0081
+</id>
+<lastname>
+Ilvedson
+</lastname>
+<state>
+AL
+</state>
+<street>
+82
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Charles
+</firstname>
+<id>
+0082
+</id>
+<lastname>
+Ilvedson
+</lastname>
+<state>
+AL
+</state>
+<street>
+83
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+David
+</firstname>
+<id>
+0083
+</id>
+<lastname>
+Ilvedson
+</lastname>
+<state>
+AL
+</state>
+<street>
+84
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Egon
+</firstname>
+<id>
+0084
+</id>
+<lastname>
+Ilvedson
+</lastname>
+<state>
+AL
+</state>
+<street>
+85
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Farbood
+</firstname>
+<id>
+0085
+</id>
+<lastname>
+Ilvedson
+</lastname>
+<state>
+AL
+</state>
+<street>
+86
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+George
+</firstname>
+<id>
+0086
+</id>
+<lastname>
+Ilvedson
+</lastname>
+<state>
+AL
+</state>
+<street>
+87
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Hank
+</firstname>
+<id>
+0087
+</id>
+<lastname>
+Ilvedson
+</lastname>
+<state>
+AL
+</state>
+<street>
+88
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Inki
+</firstname>
+<id>
+0088
+</id>
+<lastname>
+Ilvedson
+</lastname>
+<state>
+AL
+</state>
+<street>
+89
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+James
+</firstname>
+<id>
+0089
+</id>
+<lastname>
+Ilvedson
+</lastname>
+<state>
+AL
+</state>
+<street>
+90
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Al
+</firstname>
+<id>
+0090
+</id>
+<lastname>
+Jones
+</lastname>
+<state>
+AL
+</state>
+<street>
+91
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Bob
+</firstname>
+<id>
+0091
+</id>
+<lastname>
+Jones
+</lastname>
+<state>
+AL
+</state>
+<street>
+92
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Charles
+</firstname>
+<id>
+0092
+</id>
+<lastname>
+Jones
+</lastname>
+<state>
+AL
+</state>
+<street>
+93
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+David
+</firstname>
+<id>
+0093
+</id>
+<lastname>
+Jones
+</lastname>
+<state>
+AL
+</state>
+<street>
+94
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Egon
+</firstname>
+<id>
+0094
+</id>
+<lastname>
+Jones
+</lastname>
+<state>
+AL
+</state>
+<street>
+95
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Farbood
+</firstname>
+<id>
+0095
+</id>
+<lastname>
+Jones
+</lastname>
+<state>
+AL
+</state>
+<street>
+96
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+George
+</firstname>
+<id>
+0096
+</id>
+<lastname>
+Jones
+</lastname>
+<state>
+AL
+</state>
+<street>
+97
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Hank
+</firstname>
+<id>
+0097
+</id>
+<lastname>
+Jones
+</lastname>
+<state>
+AL
+</state>
+<street>
+98
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+Inki
+</firstname>
+<id>
+0098
+</id>
+<lastname>
+Jones
+</lastname>
+<state>
+AL
+</state>
+<street>
+99
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<city>
+Anytown
+</city>
+<firstname>
+James
+</firstname>
+<id>
+0099
+</id>
+<lastname>
+Jones
+</lastname>
+<state>
+AL
+</state>
+<street>
+100
+Any
+St.
+</street>
+<zip>
+22000
+</zip>
+</row>
+</table>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/alphabetize.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:output encoding="utf-8"/>
+
+  <!-- alphabetizes an xml tree -->
+
+  <xsl:template match="*">
+    <xsl:copy>
+      <xsl:apply-templates select="*|text()">
+        <xsl:sort select="name(.)" data-type="text" order="ascending"/>
+      </xsl:apply-templates>
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="text()">
+    <xsl:value-of select="normalize-space(.)"/>
+  </xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<salesdata att1="foo" att2="bar">
+  <year att1="foo" att2="bar">
+    <year att1="foo" att2="bar">1997</year>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">west</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">32</sales>
+    </region>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">central</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">11</sales>
+    </region>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">east</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">19</sales>
+    </region>
+  </year>
+  <year att1="foo" att2="bar">
+    <year att1="foo" att2="bar">1998</year>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">west</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">35</sales>
+    </region>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">central</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">12</sales>
+    </region>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">east</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">25</sales>
+    </region>
+  </year>
+  <year att1="foo" att2="bar">
+    <year att1="foo" att2="bar">1999</year>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">west</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">36</sales>
+    </region>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">central</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">12</sales>
+    </region>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">east</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">31</sales>
+    </region>
+  </year>
+  <year att1="foo" att2="bar">
+    <year att1="foo" att2="bar">2000</year>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">west</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">37</sales>
+    </region>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">central</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">11</sales>
+    </region>
+	<region att3="baz" att4="quux">
+	  <name att1="foo" att2="bar" att3="baz" att4="quux">east</name>
+      <sales att1="foo" att2="bar" att3="baz" att4="quux">40</sales>
+    </region>
+  </year>
+</salesdata>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,118 @@
+<salesdata att1="foo" att2="bar">
+<year att1="foo" att2="bar">
+<year att1="foo" att2="bar">
+1997
+</year>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+west
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+32
+</sales>
+</region>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+central
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+11
+</sales>
+</region>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+east
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+19
+</sales>
+</region>
+</year>
+<year att1="foo" att2="bar">
+<year att1="foo" att2="bar">
+1998
+</year>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+west
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+35
+</sales>
+</region>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+central
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+12
+</sales>
+</region>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+east
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+25
+</sales>
+</region>
+</year>
+<year att1="foo" att2="bar">
+<year att1="foo" att2="bar">
+1999
+</year>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+west
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+36
+</sales>
+</region>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+central
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+12
+</sales>
+</region>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+east
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+31
+</sales>
+</region>
+</year>
+<year att1="foo" att2="bar">
+<year att1="foo" att2="bar">
+2000
+</year>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+west
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+37
+</sales>
+</region>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+central
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+11
+</sales>
+</region>
+<region att3="baz" att4="quux">
+<name att1="foo" att2="bar" att3="baz" att4="quux">
+east
+</name>
+<sales att1="foo" att2="bar" att3="baz" att4="quux">
+40
+</sales>
+</region>
+</year>
+</salesdata>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/attsets.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,33 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:attribute-set name="attset1">
+  <xsl:attribute name="att1">foo</xsl:attribute>
+  <xsl:attribute name="att2">bar</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="attset2">
+  <xsl:attribute name="att3">baz</xsl:attribute>
+  <xsl:attribute name="att4">quux</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:template match="salesdata|year">
+  <xsl:copy use-attribute-sets="attset1">
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="region">
+  <xsl:copy use-attribute-sets="attset2">
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="name|sales">
+  <xsl:copy use-attribute-sets="attset1 attset2">
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<table>
+  <address id="0000" firstname="Al" lastname="Aranow" street="1 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0001" firstname="Bob" lastname="Aranow" street="2 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0002" firstname="Charles" lastname="Aranow" street="3 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0003" firstname="David" lastname="Aranow" street="4 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0004" firstname="Egon" lastname="Aranow" street="5 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0005" firstname="Farbood" lastname="Aranow" street="6 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0006" firstname="George" lastname="Aranow" street="7 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0007" firstname="Hank" lastname="Aranow" street="8 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0008" firstname="Inki" lastname="Aranow" street="9 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0009" firstname="James" lastname="Aranow" street="10 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0010" firstname="Al" lastname="Barker" street="11 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0011" firstname="Bob" lastname="Barker" street="12 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0012" firstname="Charles" lastname="Barker" street="13 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0013" firstname="David" lastname="Barker" street="14 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0014" firstname="Egon" lastname="Barker" street="15 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0015" firstname="Farbood" lastname="Barker" street="16 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0016" firstname="George" lastname="Barker" street="17 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0017" firstname="Hank" lastname="Barker" street="18 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0018" firstname="Inki" lastname="Barker" street="19 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0019" firstname="James" lastname="Barker" street="20 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0020" firstname="Al" lastname="Corsetti" street="21 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0021" firstname="Bob" lastname="Corsetti" street="22 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0022" firstname="Charles" lastname="Corsetti" street="23 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0023" firstname="David" lastname="Corsetti" street="24 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0024" firstname="Egon" lastname="Corsetti" street="25 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0025" firstname="Farbood" lastname="Corsetti" street="26 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0026" firstname="George" lastname="Corsetti" street="27 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0027" firstname="Hank" lastname="Corsetti" street="28 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0028" firstname="Inki" lastname="Corsetti" street="29 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0029" firstname="James" lastname="Corsetti" street="30 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0030" firstname="Al" lastname="Dershowitz" street="31 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0031" firstname="Bob" lastname="Dershowitz" street="32 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0032" firstname="Charles" lastname="Dershowitz" street="33 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0033" firstname="David" lastname="Dershowitz" street="34 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0034" firstname="Egon" lastname="Dershowitz" street="35 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0035" firstname="Farbood" lastname="Dershowitz" street="36 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0036" firstname="George" lastname="Dershowitz" street="37 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0037" firstname="Hank" lastname="Dershowitz" street="38 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0038" firstname="Inki" lastname="Dershowitz" street="39 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0039" firstname="James" lastname="Dershowitz" street="40 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0040" firstname="Al" lastname="Engleman" street="41 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0041" firstname="Bob" lastname="Engleman" street="42 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0042" firstname="Charles" lastname="Engleman" street="43 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0043" firstname="David" lastname="Engleman" street="44 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0044" firstname="Egon" lastname="Engleman" street="45 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0045" firstname="Farbood" lastname="Engleman" street="46 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0046" firstname="George" lastname="Engleman" street="47 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0047" firstname="Hank" lastname="Engleman" street="48 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0048" firstname="Inki" lastname="Engleman" street="49 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0049" firstname="James" lastname="Engleman" street="50 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0050" firstname="Al" lastname="Franklin" street="51 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0051" firstname="Bob" lastname="Franklin" street="52 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0052" firstname="Charles" lastname="Franklin" street="53 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0053" firstname="David" lastname="Franklin" street="54 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0054" firstname="Egon" lastname="Franklin" street="55 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0055" firstname="Farbood" lastname="Franklin" street="56 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0056" firstname="George" lastname="Franklin" street="57 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0057" firstname="Hank" lastname="Franklin" street="58 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0058" firstname="Inki" lastname="Franklin" street="59 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0059" firstname="James" lastname="Franklin" street="60 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0060" firstname="Al" lastname="Grice" street="61 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0061" firstname="Bob" lastname="Grice" street="62 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0062" firstname="Charles" lastname="Grice" street="63 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0063" firstname="David" lastname="Grice" street="64 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0064" firstname="Egon" lastname="Grice" street="65 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0065" firstname="Farbood" lastname="Grice" street="66 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0066" firstname="George" lastname="Grice" street="67 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0067" firstname="Hank" lastname="Grice" street="68 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0068" firstname="Inki" lastname="Grice" street="69 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0069" firstname="James" lastname="Grice" street="70 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0070" firstname="Al" lastname="Haverford" street="71 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0071" firstname="Bob" lastname="Haverford" street="72 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0072" firstname="Charles" lastname="Haverford" street="73 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0073" firstname="David" lastname="Haverford" street="74 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0074" firstname="Egon" lastname="Haverford" street="75 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0075" firstname="Farbood" lastname="Haverford" street="76 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0076" firstname="George" lastname="Haverford" street="77 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0077" firstname="Hank" lastname="Haverford" street="78 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0078" firstname="Inki" lastname="Haverford" street="79 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0079" firstname="James" lastname="Haverford" street="80 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0080" firstname="Al" lastname="Ilvedson" street="81 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0081" firstname="Bob" lastname="Ilvedson" street="82 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0082" firstname="Charles" lastname="Ilvedson" street="83 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0083" firstname="David" lastname="Ilvedson" street="84 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0084" firstname="Egon" lastname="Ilvedson" street="85 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0085" firstname="Farbood" lastname="Ilvedson" street="86 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0086" firstname="George" lastname="Ilvedson" street="87 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0087" firstname="Hank" lastname="Ilvedson" street="88 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0088" firstname="Inki" lastname="Ilvedson" street="89 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0089" firstname="James" lastname="Ilvedson" street="90 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0090" firstname="Al" lastname="Jones" street="91 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0091" firstname="Bob" lastname="Jones" street="92 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0092" firstname="Charles" lastname="Jones" street="93 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0093" firstname="David" lastname="Jones" street="94 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0094" firstname="Egon" lastname="Jones" street="95 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0095" firstname="Farbood" lastname="Jones" street="96 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0096" firstname="George" lastname="Jones" street="97 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0097" firstname="Hank" lastname="Jones" street="98 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0098" firstname="Inki" lastname="Jones" street="99 Any St." city="Anytown" state="AL" zip="22000"/>
+  <address id="0099" firstname="James" lastname="Jones" street="100 Any St." city="Anytown" state="AL" zip="22000"/>
+</table>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,102 @@
+<table>
+<address city="Anytown" firstname="Al" id="0000" lastname="Aranow" state="AL" street="1 Any St." zip="22000"/>
+<address city="Anytown" firstname="Bob" id="0001" lastname="Aranow" state="AL" street="2 Any St." zip="22000"/>
+<address city="Anytown" firstname="Charles" id="0002" lastname="Aranow" state="AL" street="3 Any St." zip="22000"/>
+<address city="Anytown" firstname="David" id="0003" lastname="Aranow" state="AL" street="4 Any St." zip="22000"/>
+<address city="Anytown" firstname="Egon" id="0004" lastname="Aranow" state="AL" street="5 Any St." zip="22000"/>
+<address city="Anytown" firstname="Farbood" id="0005" lastname="Aranow" state="AL" street="6 Any St." zip="22000"/>
+<address city="Anytown" firstname="George" id="0006" lastname="Aranow" state="AL" street="7 Any St." zip="22000"/>
+<address city="Anytown" firstname="Hank" id="0007" lastname="Aranow" state="AL" street="8 Any St." zip="22000"/>
+<address city="Anytown" firstname="Inki" id="0008" lastname="Aranow" state="AL" street="9 Any St." zip="22000"/>
+<address city="Anytown" firstname="James" id="0009" lastname="Aranow" state="AL" street="10 Any St." zip="22000"/>
+<address city="Anytown" firstname="Al" id="0010" lastname="Barker" state="AL" street="11 Any St." zip="22000"/>
+<address city="Anytown" firstname="Bob" id="0011" lastname="Barker" state="AL" street="12 Any St." zip="22000"/>
+<address city="Anytown" firstname="Charles" id="0012" lastname="Barker" state="AL" street="13 Any St." zip="22000"/>
+<address city="Anytown" firstname="David" id="0013" lastname="Barker" state="AL" street="14 Any St." zip="22000"/>
+<address city="Anytown" firstname="Egon" id="0014" lastname="Barker" state="AL" street="15 Any St." zip="22000"/>
+<address city="Anytown" firstname="Farbood" id="0015" lastname="Barker" state="AL" street="16 Any St." zip="22000"/>
+<address city="Anytown" firstname="George" id="0016" lastname="Barker" state="AL" street="17 Any St." zip="22000"/>
+<address city="Anytown" firstname="Hank" id="0017" lastname="Barker" state="AL" street="18 Any St." zip="22000"/>
+<address city="Anytown" firstname="Inki" id="0018" lastname="Barker" state="AL" street="19 Any St." zip="22000"/>
+<address city="Anytown" firstname="James" id="0019" lastname="Barker" state="AL" street="20 Any St." zip="22000"/>
+<address city="Anytown" firstname="Al" id="0020" lastname="Corsetti" state="AL" street="21 Any St." zip="22000"/>
+<address city="Anytown" firstname="Bob" id="0021" lastname="Corsetti" state="AL" street="22 Any St." zip="22000"/>
+<address city="Anytown" firstname="Charles" id="0022" lastname="Corsetti" state="AL" street="23 Any St." zip="22000"/>
+<address city="Anytown" firstname="David" id="0023" lastname="Corsetti" state="AL" street="24 Any St." zip="22000"/>
+<address city="Anytown" firstname="Egon" id="0024" lastname="Corsetti" state="AL" street="25 Any St." zip="22000"/>
+<address city="Anytown" firstname="Farbood" id="0025" lastname="Corsetti" state="AL" street="26 Any St." zip="22000"/>
+<address city="Anytown" firstname="George" id="0026" lastname="Corsetti" state="AL" street="27 Any St." zip="22000"/>
+<address city="Anytown" firstname="Hank" id="0027" lastname="Corsetti" state="AL" street="28 Any St." zip="22000"/>
+<address city="Anytown" firstname="Inki" id="0028" lastname="Corsetti" state="AL" street="29 Any St." zip="22000"/>
+<address city="Anytown" firstname="James" id="0029" lastname="Corsetti" state="AL" street="30 Any St." zip="22000"/>
+<address city="Anytown" firstname="Al" id="0030" lastname="Dershowitz" state="AL" street="31 Any St." zip="22000"/>
+<address city="Anytown" firstname="Bob" id="0031" lastname="Dershowitz" state="AL" street="32 Any St." zip="22000"/>
+<address city="Anytown" firstname="Charles" id="0032" lastname="Dershowitz" state="AL" street="33 Any St." zip="22000"/>
+<address city="Anytown" firstname="David" id="0033" lastname="Dershowitz" state="AL" street="34 Any St." zip="22000"/>
+<address city="Anytown" firstname="Egon" id="0034" lastname="Dershowitz" state="AL" street="35 Any St." zip="22000"/>
+<address city="Anytown" firstname="Farbood" id="0035" lastname="Dershowitz" state="AL" street="36 Any St." zip="22000"/>
+<address city="Anytown" firstname="George" id="0036" lastname="Dershowitz" state="AL" street="37 Any St." zip="22000"/>
+<address city="Anytown" firstname="Hank" id="0037" lastname="Dershowitz" state="AL" street="38 Any St." zip="22000"/>
+<address city="Anytown" firstname="Inki" id="0038" lastname="Dershowitz" state="AL" street="39 Any St." zip="22000"/>
+<address city="Anytown" firstname="James" id="0039" lastname="Dershowitz" state="AL" street="40 Any St." zip="22000"/>
+<address city="Anytown" firstname="Al" id="0040" lastname="Engleman" state="AL" street="41 Any St." zip="22000"/>
+<address city="Anytown" firstname="Bob" id="0041" lastname="Engleman" state="AL" street="42 Any St." zip="22000"/>
+<address city="Anytown" firstname="Charles" id="0042" lastname="Engleman" state="AL" street="43 Any St." zip="22000"/>
+<address city="Anytown" firstname="David" id="0043" lastname="Engleman" state="AL" street="44 Any St." zip="22000"/>
+<address city="Anytown" firstname="Egon" id="0044" lastname="Engleman" state="AL" street="45 Any St." zip="22000"/>
+<address city="Anytown" firstname="Farbood" id="0045" lastname="Engleman" state="AL" street="46 Any St." zip="22000"/>
+<address city="Anytown" firstname="George" id="0046" lastname="Engleman" state="AL" street="47 Any St." zip="22000"/>
+<address city="Anytown" firstname="Hank" id="0047" lastname="Engleman" state="AL" street="48 Any St." zip="22000"/>
+<address city="Anytown" firstname="Inki" id="0048" lastname="Engleman" state="AL" street="49 Any St." zip="22000"/>
+<address city="Anytown" firstname="James" id="0049" lastname="Engleman" state="AL" street="50 Any St." zip="22000"/>
+<address city="Anytown" firstname="Al" id="0050" lastname="Franklin" state="AL" street="51 Any St." zip="22000"/>
+<address city="Anytown" firstname="Bob" id="0051" lastname="Franklin" state="AL" street="52 Any St." zip="22000"/>
+<address city="Anytown" firstname="Charles" id="0052" lastname="Franklin" state="AL" street="53 Any St." zip="22000"/>
+<address city="Anytown" firstname="David" id="0053" lastname="Franklin" state="AL" street="54 Any St." zip="22000"/>
+<address city="Anytown" firstname="Egon" id="0054" lastname="Franklin" state="AL" street="55 Any St." zip="22000"/>
+<address city="Anytown" firstname="Farbood" id="0055" lastname="Franklin" state="AL" street="56 Any St." zip="22000"/>
+<address city="Anytown" firstname="George" id="0056" lastname="Franklin" state="AL" street="57 Any St." zip="22000"/>
+<address city="Anytown" firstname="Hank" id="0057" lastname="Franklin" state="AL" street="58 Any St." zip="22000"/>
+<address city="Anytown" firstname="Inki" id="0058" lastname="Franklin" state="AL" street="59 Any St." zip="22000"/>
+<address city="Anytown" firstname="James" id="0059" lastname="Franklin" state="AL" street="60 Any St." zip="22000"/>
+<address city="Anytown" firstname="Al" id="0060" lastname="Grice" state="AL" street="61 Any St." zip="22000"/>
+<address city="Anytown" firstname="Bob" id="0061" lastname="Grice" state="AL" street="62 Any St." zip="22000"/>
+<address city="Anytown" firstname="Charles" id="0062" lastname="Grice" state="AL" street="63 Any St." zip="22000"/>
+<address city="Anytown" firstname="David" id="0063" lastname="Grice" state="AL" street="64 Any St." zip="22000"/>
+<address city="Anytown" firstname="Egon" id="0064" lastname="Grice" state="AL" street="65 Any St." zip="22000"/>
+<address city="Anytown" firstname="Farbood" id="0065" lastname="Grice" state="AL" street="66 Any St." zip="22000"/>
+<address city="Anytown" firstname="George" id="0066" lastname="Grice" state="AL" street="67 Any St." zip="22000"/>
+<address city="Anytown" firstname="Hank" id="0067" lastname="Grice" state="AL" street="68 Any St." zip="22000"/>
+<address city="Anytown" firstname="Inki" id="0068" lastname="Grice" state="AL" street="69 Any St." zip="22000"/>
+<address city="Anytown" firstname="James" id="0069" lastname="Grice" state="AL" street="70 Any St." zip="22000"/>
+<address city="Anytown" firstname="Al" id="0070" lastname="Haverford" state="AL" street="71 Any St." zip="22000"/>
+<address city="Anytown" firstname="Bob" id="0071" lastname="Haverford" state="AL" street="72 Any St." zip="22000"/>
+<address city="Anytown" firstname="Charles" id="0072" lastname="Haverford" state="AL" street="73 Any St." zip="22000"/>
+<address city="Anytown" firstname="David" id="0073" lastname="Haverford" state="AL" street="74 Any St." zip="22000"/>
+<address city="Anytown" firstname="Egon" id="0074" lastname="Haverford" state="AL" street="75 Any St." zip="22000"/>
+<address city="Anytown" firstname="Farbood" id="0075" lastname="Haverford" state="AL" street="76 Any St." zip="22000"/>
+<address city="Anytown" firstname="George" id="0076" lastname="Haverford" state="AL" street="77 Any St." zip="22000"/>
+<address city="Anytown" firstname="Hank" id="0077" lastname="Haverford" state="AL" street="78 Any St." zip="22000"/>
+<address city="Anytown" firstname="Inki" id="0078" lastname="Haverford" state="AL" street="79 Any St." zip="22000"/>
+<address city="Anytown" firstname="James" id="0079" lastname="Haverford" state="AL" street="80 Any St." zip="22000"/>
+<address city="Anytown" firstname="Al" id="0080" lastname="Ilvedson" state="AL" street="81 Any St." zip="22000"/>
+<address city="Anytown" firstname="Bob" id="0081" lastname="Ilvedson" state="AL" street="82 Any St." zip="22000"/>
+<address city="Anytown" firstname="Charles" id="0082" lastname="Ilvedson" state="AL" street="83 Any St." zip="22000"/>
+<address city="Anytown" firstname="David" id="0083" lastname="Ilvedson" state="AL" street="84 Any St." zip="22000"/>
+<address city="Anytown" firstname="Egon" id="0084" lastname="Ilvedson" state="AL" street="85 Any St." zip="22000"/>
+<address city="Anytown" firstname="Farbood" id="0085" lastname="Ilvedson" state="AL" street="86 Any St." zip="22000"/>
+<address city="Anytown" firstname="George" id="0086" lastname="Ilvedson" state="AL" street="87 Any St." zip="22000"/>
+<address city="Anytown" firstname="Hank" id="0087" lastname="Ilvedson" state="AL" street="88 Any St." zip="22000"/>
+<address city="Anytown" firstname="Inki" id="0088" lastname="Ilvedson" state="AL" street="89 Any St." zip="22000"/>
+<address city="Anytown" firstname="James" id="0089" lastname="Ilvedson" state="AL" street="90 Any St." zip="22000"/>
+<address city="Anytown" firstname="Al" id="0090" lastname="Jones" state="AL" street="91 Any St." zip="22000"/>
+<address city="Anytown" firstname="Bob" id="0091" lastname="Jones" state="AL" street="92 Any St." zip="22000"/>
+<address city="Anytown" firstname="Charles" id="0092" lastname="Jones" state="AL" street="93 Any St." zip="22000"/>
+<address city="Anytown" firstname="David" id="0093" lastname="Jones" state="AL" street="94 Any St." zip="22000"/>
+<address city="Anytown" firstname="Egon" id="0094" lastname="Jones" state="AL" street="95 Any St." zip="22000"/>
+<address city="Anytown" firstname="Farbood" id="0095" lastname="Jones" state="AL" street="96 Any St." zip="22000"/>
+<address city="Anytown" firstname="George" id="0096" lastname="Jones" state="AL" street="97 Any St." zip="22000"/>
+<address city="Anytown" firstname="Hank" id="0097" lastname="Jones" state="AL" street="98 Any St." zip="22000"/>
+<address city="Anytown" firstname="Inki" id="0098" lastname="Jones" state="AL" street="99 Any St." zip="22000"/>
+<address city="Anytown" firstname="James" id="0099" lastname="Jones" state="AL" street="100 Any St." zip="22000"/>
+</table>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/avts.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:template match="table">
+  <table>
+    <xsl:apply-templates/>
+  </table>
+</xsl:template>
+
+<xsl:template match="row">
+  <address id="{id}" 
+           firstname="{firstname}"
+           lastname="{lastname}"
+           street="{street}"
+           city="{city}"
+           state="{state}"
+           zip="{zip}"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+a
+   b
+      c
+         d
+         e
+      f
+      g
+         h
+         i
+      j
+      <FOLLOWING>n
+      o
+         p
+      q
+      r
+   </FOLLOWING><PRECEDING>d</PRECEDING><EMPTY></EMPTY><EMPTY></EMPTY><ANCESTOR2>a
+   b
+      c
+         d
+         e
+      f
+      g
+         h
+         i
+      j
+      k
+   l
+   m
+   n
+      o
+         p
+      q
+      r
+   s
+   t
+</ANCESTOR2><TRICKY>e</TRICKY>k
+   l
+   <FOLLOWINGSIBLING1>n
+      o
+         p
+      q
+      r
+   </FOLLOWINGSIBLING1><FOLLOWINGSIBLING2>t</FOLLOWINGSIBLING2><FOLLOWINGSIBLING3></FOLLOWINGSIBLING3>m
+   n
+      o
+         p
+      q
+      r
+   s
+   t
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,70 @@
+<dgnorm_document>
+a
+b
+c
+d
+e
+f
+g
+h
+i
+j
+<FOLLOWING>
+n
+o
+p
+q
+r
+</FOLLOWING>
+<PRECEDING>
+d
+</PRECEDING>
+<EMPTY/>
+<EMPTY/>
+<ANCESTOR2>
+a
+b
+c
+d
+e
+f
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+r
+s
+t
+</ANCESTOR2>
+<TRICKY>
+e
+</TRICKY>
+k
+l
+<FOLLOWINGSIBLING1>
+n
+o
+p
+q
+r
+</FOLLOWINGSIBLING1>
+<FOLLOWINGSIBLING2>
+t
+</FOLLOWINGSIBLING2>
+<FOLLOWINGSIBLING3/>
+m
+n
+o
+p
+q
+r
+s
+t
+</dgnorm_document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?> 
+<TOP>a
+   <ONE>b
+      <TWO>c
+         <THREE>d</THREE>
+         <FOUR>e</FOUR>
+      </TWO>f
+      <FIVE>g
+         <SIX>h</SIX>
+         <SEVEN/>i
+      </FIVE>j
+      <EIGHT/>k
+   </ONE>l
+   <NINE/>m
+   <TEN>n
+      <ELEVEN>o
+         <TWELVE>p</TWELVE>
+      </ELEVEN>q
+      <THIRTEEN/>r
+   </TEN>s
+   <FOURTEEN>t</FOURTEEN>
+</TOP>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/axis.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,42 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:output encoding="utf-8"/>
+
+  <xsl:template match="EIGHT">
+      <FOLLOWING>
+          <xsl:value-of select="following::*[2]"/>
+      </FOLLOWING>
+      <PRECEDING>
+          <xsl:value-of select="preceding::THREE"/>
+      </PRECEDING>
+      <EMPTY>
+          <xsl:value-of select="preceding::TEN"/>
+          <xsl:value-of select="preceding::ELEVEN"/>
+          <xsl:value-of select="preceding::TOP"/>
+      </EMPTY>
+      <EMPTY>
+          <xsl:value-of select="following::TWO"/>
+          <xsl:value-of select="following::FOUR"/>
+          <xsl:value-of select="following::ONE"/>
+      </EMPTY>
+      <ANCESTOR2>
+          <xsl:value-of select="ancestor::*[2]"/>
+      </ANCESTOR2>
+      <TRICKY>
+          <xsl:value-of select="parent::*/descendant::*[3]"/>
+      </TRICKY>
+  </xsl:template>
+  <xsl:template match="NINE">
+      <FOLLOWINGSIBLING1>
+          <xsl:value-of select="following-sibling::*[1]"/>
+      </FOLLOWINGSIBLING1>
+      <FOLLOWINGSIBLING2>
+          <xsl:value-of select="following-sibling::*[2]"/>
+      </FOLLOWINGSIBLING2>
+      <FOLLOWINGSIBLING3>
+          <xsl:value-of select="following-sibling::*[3]"/>
+      </FOLLOWINGSIBLING3>
+  </xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<games>
+<game>
+  <innings>
+    <inning>
+      <visitors>
+        <errors>0</errors>
+          <hits>2</hits>
+          <runs>0</runs>
+          </visitors>
+        <home>
+        <errors>0</errors>
+          <hits>2</hits>
+          <runs>1</runs>
+          </home>
+        <num>9</num>
+        </inning>
+      <inning>
+      <visitors>
+        <errors>0</errors>
+          <hits>2</hits>
+          <runs>0</runs>
+          </visitors>
+        <home>
+        <errors>0</errors>
+          <hits>3</hits>
+          <runs>0</runs>
+          </home>
+        <num>8</num>
+        </inning>
+      <inning>
+      <visitors>
+        <errors>0</errors>
+          <hits>4</hits>
+          <runs>2</runs>
+          </visitors>
+        <home>
+        <errors>0</errors>
+          <hits>2</hits>
+          <runs>0</runs>
+          </home>
+        <num>7</num>
+        </inning>
+      <inning>
+      <visitors>
+        <errors>0</errors>
+          <hits>1</hits>
+          <runs>0</runs>
+          </visitors>
+        <home>
+        <errors>0</errors>
+          <hits>5</hits>
+          <runs>2</runs>
+          </home>
+        <num>6</num>
+        </inning>
+      <inning>
+      <visitors>
+        <errors>0</errors>
+          <hits>1</hits>
+          <runs>0</runs>
+          </visitors>
+        <home>
+        <errors>0</errors>
+          <hits>1</hits>
+          <runs>0</runs>
+          </home>
+        <num>5</num>
+        </inning>
+      <inning>
+      <visitors>
+        <errors>0</errors>
+          <hits>1</hits>
+          <runs>0</runs>
+          </visitors>
+        <home>
+        <errors>0</errors>
+          <hits>0</hits>
+          <runs>0</runs>
+          </home>
+        <num>4</num>
+        </inning>
+      <inning>
+      <visitors>
+        <errors>0</errors>
+          <hits>4</hits>
+          <runs>1</runs>
+          </visitors>
+        <home>
+        <errors>0</errors>
+          <hits>3</hits>
+          <runs>1</runs>
+          </home>
+        <num>3</num>
+        </inning>
+      <inning>
+      <visitors>
+        <errors>0</errors>
+          <hits>1</hits>
+          <runs>0</runs>
+          </visitors>
+        <home>
+        <errors>1</errors>
+          <hits>2</hits>
+          <runs>1</runs>
+          </home>
+        <num>2</num>
+        </inning>
+      <inning>
+      <visitors>
+        <errors>0</errors>
+          <hits>1</hits>
+          <runs>0</runs>
+          </visitors>
+        <home>
+        <errors>0</errors>
+          <hits>2</hits>
+          <runs>0</runs>
+          </home>
+        <num>1</num>
+        </inning>
+      </innings>
+    <visitors>Whosits</visitors>
+    <home>Foobars</home>
+    </game>
+  </games>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,255 @@
+<games>
+<game>
+<innings>
+<inning>
+<visitors>
+<errors>
+0
+</errors>
+<hits>
+2
+</hits>
+<runs>
+0
+</runs>
+</visitors>
+<home>
+<errors>
+0
+</errors>
+<hits>
+2
+</hits>
+<runs>
+1
+</runs>
+</home>
+<num>
+9
+</num>
+</inning>
+<inning>
+<visitors>
+<errors>
+0
+</errors>
+<hits>
+2
+</hits>
+<runs>
+0
+</runs>
+</visitors>
+<home>
+<errors>
+0
+</errors>
+<hits>
+3
+</hits>
+<runs>
+0
+</runs>
+</home>
+<num>
+8
+</num>
+</inning>
+<inning>
+<visitors>
+<errors>
+0
+</errors>
+<hits>
+4
+</hits>
+<runs>
+2
+</runs>
+</visitors>
+<home>
+<errors>
+0
+</errors>
+<hits>
+2
+</hits>
+<runs>
+0
+</runs>
+</home>
+<num>
+7
+</num>
+</inning>
+<inning>
+<visitors>
+<errors>
+0
+</errors>
+<hits>
+1
+</hits>
+<runs>
+0
+</runs>
+</visitors>
+<home>
+<errors>
+0
+</errors>
+<hits>
+5
+</hits>
+<runs>
+2
+</runs>
+</home>
+<num>
+6
+</num>
+</inning>
+<inning>
+<visitors>
+<errors>
+0
+</errors>
+<hits>
+1
+</hits>
+<runs>
+0
+</runs>
+</visitors>
+<home>
+<errors>
+0
+</errors>
+<hits>
+1
+</hits>
+<runs>
+0
+</runs>
+</home>
+<num>
+5
+</num>
+</inning>
+<inning>
+<visitors>
+<errors>
+0
+</errors>
+<hits>
+1
+</hits>
+<runs>
+0
+</runs>
+</visitors>
+<home>
+<errors>
+0
+</errors>
+<hits>
+0
+</hits>
+<runs>
+0
+</runs>
+</home>
+<num>
+4
+</num>
+</inning>
+<inning>
+<visitors>
+<errors>
+0
+</errors>
+<hits>
+4
+</hits>
+<runs>
+1
+</runs>
+</visitors>
+<home>
+<errors>
+0
+</errors>
+<hits>
+3
+</hits>
+<runs>
+1
+</runs>
+</home>
+<num>
+3
+</num>
+</inning>
+<inning>
+<visitors>
+<errors>
+0
+</errors>
+<hits>
+1
+</hits>
+<runs>
+0
+</runs>
+</visitors>
+<home>
+<errors>
+1
+</errors>
+<hits>
+2
+</hits>
+<runs>
+1
+</runs>
+</home>
+<num>
+2
+</num>
+</inning>
+<inning>
+<visitors>
+<errors>
+0
+</errors>
+<hits>
+1
+</hits>
+<runs>
+0
+</runs>
+</visitors>
+<home>
+<errors>
+0
+</errors>
+<hits>
+2
+</hits>
+<runs>
+0
+</runs>
+</home>
+<num>
+1
+</num>
+</inning>
+</innings>
+<visitors>
+Whosits
+</visitors>
+<home>
+Foobars
+</home>
+</game>
+</games>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/backwards.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?> 
+
+<!-- reassembles an xml tree in reverse order -->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:template match="*">
+  <xsl:copy>
+    <xsl:apply-templates select="node()">
+      <xsl:sort select="position()" data-type="number" order="descending"/> 
+    </xsl:apply-templates> 
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,499 @@
+99 bottles of beer on the wall,
+99 bottles of beer!
+Take one down, pass it around;
+98 bottles of beer on the wall.
+
+98 bottles of beer on the wall,
+98 bottles of beer!
+Take one down, pass it around;
+97 bottles of beer on the wall.
+
+97 bottles of beer on the wall,
+97 bottles of beer!
+Take one down, pass it around;
+96 bottles of beer on the wall.
+
+96 bottles of beer on the wall,
+96 bottles of beer!
+Take one down, pass it around;
+95 bottles of beer on the wall.
+
+95 bottles of beer on the wall,
+95 bottles of beer!
+Take one down, pass it around;
+94 bottles of beer on the wall.
+
+94 bottles of beer on the wall,
+94 bottles of beer!
+Take one down, pass it around;
+93 bottles of beer on the wall.
+
+93 bottles of beer on the wall,
+93 bottles of beer!
+Take one down, pass it around;
+92 bottles of beer on the wall.
+
+92 bottles of beer on the wall,
+92 bottles of beer!
+Take one down, pass it around;
+91 bottles of beer on the wall.
+
+91 bottles of beer on the wall,
+91 bottles of beer!
+Take one down, pass it around;
+90 bottles of beer on the wall.
+
+90 bottles of beer on the wall,
+90 bottles of beer!
+Take one down, pass it around;
+89 bottles of beer on the wall.
+
+89 bottles of beer on the wall,
+89 bottles of beer!
+Take one down, pass it around;
+88 bottles of beer on the wall.
+
+88 bottles of beer on the wall,
+88 bottles of beer!
+Take one down, pass it around;
+87 bottles of beer on the wall.
+
+87 bottles of beer on the wall,
+87 bottles of beer!
+Take one down, pass it around;
+86 bottles of beer on the wall.
+
+86 bottles of beer on the wall,
+86 bottles of beer!
+Take one down, pass it around;
+85 bottles of beer on the wall.
+
+85 bottles of beer on the wall,
+85 bottles of beer!
+Take one down, pass it around;
+84 bottles of beer on the wall.
+
+84 bottles of beer on the wall,
+84 bottles of beer!
+Take one down, pass it around;
+83 bottles of beer on the wall.
+
+83 bottles of beer on the wall,
+83 bottles of beer!
+Take one down, pass it around;
+82 bottles of beer on the wall.
+
+82 bottles of beer on the wall,
+82 bottles of beer!
+Take one down, pass it around;
+81 bottles of beer on the wall.
+
+81 bottles of beer on the wall,
+81 bottles of beer!
+Take one down, pass it around;
+80 bottles of beer on the wall.
+
+80 bottles of beer on the wall,
+80 bottles of beer!
+Take one down, pass it around;
+79 bottles of beer on the wall.
+
+79 bottles of beer on the wall,
+79 bottles of beer!
+Take one down, pass it around;
+78 bottles of beer on the wall.
+
+78 bottles of beer on the wall,
+78 bottles of beer!
+Take one down, pass it around;
+77 bottles of beer on the wall.
+
+77 bottles of beer on the wall,
+77 bottles of beer!
+Take one down, pass it around;
+76 bottles of beer on the wall.
+
+76 bottles of beer on the wall,
+76 bottles of beer!
+Take one down, pass it around;
+75 bottles of beer on the wall.
+
+75 bottles of beer on the wall,
+75 bottles of beer!
+Take one down, pass it around;
+74 bottles of beer on the wall.
+
+74 bottles of beer on the wall,
+74 bottles of beer!
+Take one down, pass it around;
+73 bottles of beer on the wall.
+
+73 bottles of beer on the wall,
+73 bottles of beer!
+Take one down, pass it around;
+72 bottles of beer on the wall.
+
+72 bottles of beer on the wall,
+72 bottles of beer!
+Take one down, pass it around;
+71 bottles of beer on the wall.
+
+71 bottles of beer on the wall,
+71 bottles of beer!
+Take one down, pass it around;
+70 bottles of beer on the wall.
+
+70 bottles of beer on the wall,
+70 bottles of beer!
+Take one down, pass it around;
+69 bottles of beer on the wall.
+
+69 bottles of beer on the wall,
+69 bottles of beer!
+Take one down, pass it around;
+68 bottles of beer on the wall.
+
+68 bottles of beer on the wall,
+68 bottles of beer!
+Take one down, pass it around;
+67 bottles of beer on the wall.
+
+67 bottles of beer on the wall,
+67 bottles of beer!
+Take one down, pass it around;
+66 bottles of beer on the wall.
+
+66 bottles of beer on the wall,
+66 bottles of beer!
+Take one down, pass it around;
+65 bottles of beer on the wall.
+
+65 bottles of beer on the wall,
+65 bottles of beer!
+Take one down, pass it around;
+64 bottles of beer on the wall.
+
+64 bottles of beer on the wall,
+64 bottles of beer!
+Take one down, pass it around;
+63 bottles of beer on the wall.
+
+63 bottles of beer on the wall,
+63 bottles of beer!
+Take one down, pass it around;
+62 bottles of beer on the wall.
+
+62 bottles of beer on the wall,
+62 bottles of beer!
+Take one down, pass it around;
+61 bottles of beer on the wall.
+
+61 bottles of beer on the wall,
+61 bottles of beer!
+Take one down, pass it around;
+60 bottles of beer on the wall.
+
+60 bottles of beer on the wall,
+60 bottles of beer!
+Take one down, pass it around;
+59 bottles of beer on the wall.
+
+59 bottles of beer on the wall,
+59 bottles of beer!
+Take one down, pass it around;
+58 bottles of beer on the wall.
+
+58 bottles of beer on the wall,
+58 bottles of beer!
+Take one down, pass it around;
+57 bottles of beer on the wall.
+
+57 bottles of beer on the wall,
+57 bottles of beer!
+Take one down, pass it around;
+56 bottles of beer on the wall.
+
+56 bottles of beer on the wall,
+56 bottles of beer!
+Take one down, pass it around;
+55 bottles of beer on the wall.
+
+55 bottles of beer on the wall,
+55 bottles of beer!
+Take one down, pass it around;
+54 bottles of beer on the wall.
+
+54 bottles of beer on the wall,
+54 bottles of beer!
+Take one down, pass it around;
+53 bottles of beer on the wall.
+
+53 bottles of beer on the wall,
+53 bottles of beer!
+Take one down, pass it around;
+52 bottles of beer on the wall.
+
+52 bottles of beer on the wall,
+52 bottles of beer!
+Take one down, pass it around;
+51 bottles of beer on the wall.
+
+51 bottles of beer on the wall,
+51 bottles of beer!
+Take one down, pass it around;
+50 bottles of beer on the wall.
+
+50 bottles of beer on the wall,
+50 bottles of beer!
+Take one down, pass it around;
+49 bottles of beer on the wall.
+
+49 bottles of beer on the wall,
+49 bottles of beer!
+Take one down, pass it around;
+48 bottles of beer on the wall.
+
+48 bottles of beer on the wall,
+48 bottles of beer!
+Take one down, pass it around;
+47 bottles of beer on the wall.
+
+47 bottles of beer on the wall,
+47 bottles of beer!
+Take one down, pass it around;
+46 bottles of beer on the wall.
+
+46 bottles of beer on the wall,
+46 bottles of beer!
+Take one down, pass it around;
+45 bottles of beer on the wall.
+
+45 bottles of beer on the wall,
+45 bottles of beer!
+Take one down, pass it around;
+44 bottles of beer on the wall.
+
+44 bottles of beer on the wall,
+44 bottles of beer!
+Take one down, pass it around;
+43 bottles of beer on the wall.
+
+43 bottles of beer on the wall,
+43 bottles of beer!
+Take one down, pass it around;
+42 bottles of beer on the wall.
+
+42 bottles of beer on the wall,
+42 bottles of beer!
+Take one down, pass it around;
+41 bottles of beer on the wall.
+
+41 bottles of beer on the wall,
+41 bottles of beer!
+Take one down, pass it around;
+40 bottles of beer on the wall.
+
+40 bottles of beer on the wall,
+40 bottles of beer!
+Take one down, pass it around;
+39 bottles of beer on the wall.
+
+39 bottles of beer on the wall,
+39 bottles of beer!
+Take one down, pass it around;
+38 bottles of beer on the wall.
+
+38 bottles of beer on the wall,
+38 bottles of beer!
+Take one down, pass it around;
+37 bottles of beer on the wall.
+
+37 bottles of beer on the wall,
+37 bottles of beer!
+Take one down, pass it around;
+36 bottles of beer on the wall.
+
+36 bottles of beer on the wall,
+36 bottles of beer!
+Take one down, pass it around;
+35 bottles of beer on the wall.
+
+35 bottles of beer on the wall,
+35 bottles of beer!
+Take one down, pass it around;
+34 bottles of beer on the wall.
+
+34 bottles of beer on the wall,
+34 bottles of beer!
+Take one down, pass it around;
+33 bottles of beer on the wall.
+
+33 bottles of beer on the wall,
+33 bottles of beer!
+Take one down, pass it around;
+32 bottles of beer on the wall.
+
+32 bottles of beer on the wall,
+32 bottles of beer!
+Take one down, pass it around;
+31 bottles of beer on the wall.
+
+31 bottles of beer on the wall,
+31 bottles of beer!
+Take one down, pass it around;
+30 bottles of beer on the wall.
+
+30 bottles of beer on the wall,
+30 bottles of beer!
+Take one down, pass it around;
+29 bottles of beer on the wall.
+
+29 bottles of beer on the wall,
+29 bottles of beer!
+Take one down, pass it around;
+28 bottles of beer on the wall.
+
+28 bottles of beer on the wall,
+28 bottles of beer!
+Take one down, pass it around;
+27 bottles of beer on the wall.
+
+27 bottles of beer on the wall,
+27 bottles of beer!
+Take one down, pass it around;
+26 bottles of beer on the wall.
+
+26 bottles of beer on the wall,
+26 bottles of beer!
+Take one down, pass it around;
+25 bottles of beer on the wall.
+
+25 bottles of beer on the wall,
+25 bottles of beer!
+Take one down, pass it around;
+24 bottles of beer on the wall.
+
+24 bottles of beer on the wall,
+24 bottles of beer!
+Take one down, pass it around;
+23 bottles of beer on the wall.
+
+23 bottles of beer on the wall,
+23 bottles of beer!
+Take one down, pass it around;
+22 bottles of beer on the wall.
+
+22 bottles of beer on the wall,
+22 bottles of beer!
+Take one down, pass it around;
+21 bottles of beer on the wall.
+
+21 bottles of beer on the wall,
+21 bottles of beer!
+Take one down, pass it around;
+20 bottles of beer on the wall.
+
+20 bottles of beer on the wall,
+20 bottles of beer!
+Take one down, pass it around;
+19 bottles of beer on the wall.
+
+19 bottles of beer on the wall,
+19 bottles of beer!
+Take one down, pass it around;
+18 bottles of beer on the wall.
+
+18 bottles of beer on the wall,
+18 bottles of beer!
+Take one down, pass it around;
+17 bottles of beer on the wall.
+
+17 bottles of beer on the wall,
+17 bottles of beer!
+Take one down, pass it around;
+16 bottles of beer on the wall.
+
+16 bottles of beer on the wall,
+16 bottles of beer!
+Take one down, pass it around;
+15 bottles of beer on the wall.
+
+15 bottles of beer on the wall,
+15 bottles of beer!
+Take one down, pass it around;
+14 bottles of beer on the wall.
+
+14 bottles of beer on the wall,
+14 bottles of beer!
+Take one down, pass it around;
+13 bottles of beer on the wall.
+
+13 bottles of beer on the wall,
+13 bottles of beer!
+Take one down, pass it around;
+12 bottles of beer on the wall.
+
+12 bottles of beer on the wall,
+12 bottles of beer!
+Take one down, pass it around;
+11 bottles of beer on the wall.
+
+11 bottles of beer on the wall,
+11 bottles of beer!
+Take one down, pass it around;
+10 bottles of beer on the wall.
+
+10 bottles of beer on the wall,
+10 bottles of beer!
+Take one down, pass it around;
+9 bottles of beer on the wall.
+
+9 bottles of beer on the wall,
+9 bottles of beer!
+Take one down, pass it around;
+8 bottles of beer on the wall.
+
+8 bottles of beer on the wall,
+8 bottles of beer!
+Take one down, pass it around;
+7 bottles of beer on the wall.
+
+7 bottles of beer on the wall,
+7 bottles of beer!
+Take one down, pass it around;
+6 bottles of beer on the wall.
+
+6 bottles of beer on the wall,
+6 bottles of beer!
+Take one down, pass it around;
+5 bottles of beer on the wall.
+
+5 bottles of beer on the wall,
+5 bottles of beer!
+Take one down, pass it around;
+4 bottles of beer on the wall.
+
+4 bottles of beer on the wall,
+4 bottles of beer!
+Take one down, pass it around;
+3 bottles of beer on the wall.
+
+3 bottles of beer on the wall,
+3 bottles of beer!
+Take one down, pass it around;
+2 bottles of beer on the wall.
+
+2 bottles of beer on the wall,
+2 bottles of beer!
+Take one down, pass it around;
+1 bottle of beer on the wall.
+
+1 bottle of beer on the wall,
+1 bottle of beer!
+Take one down, pass it around;
+0 bottles of beer on the wall.
+
+0 bottles of beer on the wall,
+0 bottles of beer!
+Go into town, buy a new round
+Get some more bottles of beer on the wall!

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2405 @@
+<dgnorm_document>
+99
+bottles
+of
+beer
+on
+the
+wall,
+99
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+98
+bottles
+of
+beer
+on
+the
+wall.
+98
+bottles
+of
+beer
+on
+the
+wall,
+98
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+97
+bottles
+of
+beer
+on
+the
+wall.
+97
+bottles
+of
+beer
+on
+the
+wall,
+97
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+96
+bottles
+of
+beer
+on
+the
+wall.
+96
+bottles
+of
+beer
+on
+the
+wall,
+96
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+95
+bottles
+of
+beer
+on
+the
+wall.
+95
+bottles
+of
+beer
+on
+the
+wall,
+95
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+94
+bottles
+of
+beer
+on
+the
+wall.
+94
+bottles
+of
+beer
+on
+the
+wall,
+94
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+93
+bottles
+of
+beer
+on
+the
+wall.
+93
+bottles
+of
+beer
+on
+the
+wall,
+93
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+92
+bottles
+of
+beer
+on
+the
+wall.
+92
+bottles
+of
+beer
+on
+the
+wall,
+92
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+91
+bottles
+of
+beer
+on
+the
+wall.
+91
+bottles
+of
+beer
+on
+the
+wall,
+91
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+90
+bottles
+of
+beer
+on
+the
+wall.
+90
+bottles
+of
+beer
+on
+the
+wall,
+90
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+89
+bottles
+of
+beer
+on
+the
+wall.
+89
+bottles
+of
+beer
+on
+the
+wall,
+89
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+88
+bottles
+of
+beer
+on
+the
+wall.
+88
+bottles
+of
+beer
+on
+the
+wall,
+88
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+87
+bottles
+of
+beer
+on
+the
+wall.
+87
+bottles
+of
+beer
+on
+the
+wall,
+87
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+86
+bottles
+of
+beer
+on
+the
+wall.
+86
+bottles
+of
+beer
+on
+the
+wall,
+86
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+85
+bottles
+of
+beer
+on
+the
+wall.
+85
+bottles
+of
+beer
+on
+the
+wall,
+85
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+84
+bottles
+of
+beer
+on
+the
+wall.
+84
+bottles
+of
+beer
+on
+the
+wall,
+84
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+83
+bottles
+of
+beer
+on
+the
+wall.
+83
+bottles
+of
+beer
+on
+the
+wall,
+83
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+82
+bottles
+of
+beer
+on
+the
+wall.
+82
+bottles
+of
+beer
+on
+the
+wall,
+82
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+81
+bottles
+of
+beer
+on
+the
+wall.
+81
+bottles
+of
+beer
+on
+the
+wall,
+81
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+80
+bottles
+of
+beer
+on
+the
+wall.
+80
+bottles
+of
+beer
+on
+the
+wall,
+80
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+79
+bottles
+of
+beer
+on
+the
+wall.
+79
+bottles
+of
+beer
+on
+the
+wall,
+79
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+78
+bottles
+of
+beer
+on
+the
+wall.
+78
+bottles
+of
+beer
+on
+the
+wall,
+78
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+77
+bottles
+of
+beer
+on
+the
+wall.
+77
+bottles
+of
+beer
+on
+the
+wall,
+77
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+76
+bottles
+of
+beer
+on
+the
+wall.
+76
+bottles
+of
+beer
+on
+the
+wall,
+76
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+75
+bottles
+of
+beer
+on
+the
+wall.
+75
+bottles
+of
+beer
+on
+the
+wall,
+75
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+74
+bottles
+of
+beer
+on
+the
+wall.
+74
+bottles
+of
+beer
+on
+the
+wall,
+74
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+73
+bottles
+of
+beer
+on
+the
+wall.
+73
+bottles
+of
+beer
+on
+the
+wall,
+73
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+72
+bottles
+of
+beer
+on
+the
+wall.
+72
+bottles
+of
+beer
+on
+the
+wall,
+72
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+71
+bottles
+of
+beer
+on
+the
+wall.
+71
+bottles
+of
+beer
+on
+the
+wall,
+71
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+70
+bottles
+of
+beer
+on
+the
+wall.
+70
+bottles
+of
+beer
+on
+the
+wall,
+70
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+69
+bottles
+of
+beer
+on
+the
+wall.
+69
+bottles
+of
+beer
+on
+the
+wall,
+69
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+68
+bottles
+of
+beer
+on
+the
+wall.
+68
+bottles
+of
+beer
+on
+the
+wall,
+68
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+67
+bottles
+of
+beer
+on
+the
+wall.
+67
+bottles
+of
+beer
+on
+the
+wall,
+67
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+66
+bottles
+of
+beer
+on
+the
+wall.
+66
+bottles
+of
+beer
+on
+the
+wall,
+66
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+65
+bottles
+of
+beer
+on
+the
+wall.
+65
+bottles
+of
+beer
+on
+the
+wall,
+65
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+64
+bottles
+of
+beer
+on
+the
+wall.
+64
+bottles
+of
+beer
+on
+the
+wall,
+64
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+63
+bottles
+of
+beer
+on
+the
+wall.
+63
+bottles
+of
+beer
+on
+the
+wall,
+63
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+62
+bottles
+of
+beer
+on
+the
+wall.
+62
+bottles
+of
+beer
+on
+the
+wall,
+62
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+61
+bottles
+of
+beer
+on
+the
+wall.
+61
+bottles
+of
+beer
+on
+the
+wall,
+61
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+60
+bottles
+of
+beer
+on
+the
+wall.
+60
+bottles
+of
+beer
+on
+the
+wall,
+60
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+59
+bottles
+of
+beer
+on
+the
+wall.
+59
+bottles
+of
+beer
+on
+the
+wall,
+59
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+58
+bottles
+of
+beer
+on
+the
+wall.
+58
+bottles
+of
+beer
+on
+the
+wall,
+58
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+57
+bottles
+of
+beer
+on
+the
+wall.
+57
+bottles
+of
+beer
+on
+the
+wall,
+57
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+56
+bottles
+of
+beer
+on
+the
+wall.
+56
+bottles
+of
+beer
+on
+the
+wall,
+56
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+55
+bottles
+of
+beer
+on
+the
+wall.
+55
+bottles
+of
+beer
+on
+the
+wall,
+55
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+54
+bottles
+of
+beer
+on
+the
+wall.
+54
+bottles
+of
+beer
+on
+the
+wall,
+54
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+53
+bottles
+of
+beer
+on
+the
+wall.
+53
+bottles
+of
+beer
+on
+the
+wall,
+53
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+52
+bottles
+of
+beer
+on
+the
+wall.
+52
+bottles
+of
+beer
+on
+the
+wall,
+52
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+51
+bottles
+of
+beer
+on
+the
+wall.
+51
+bottles
+of
+beer
+on
+the
+wall,
+51
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+50
+bottles
+of
+beer
+on
+the
+wall.
+50
+bottles
+of
+beer
+on
+the
+wall,
+50
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+49
+bottles
+of
+beer
+on
+the
+wall.
+49
+bottles
+of
+beer
+on
+the
+wall,
+49
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+48
+bottles
+of
+beer
+on
+the
+wall.
+48
+bottles
+of
+beer
+on
+the
+wall,
+48
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+47
+bottles
+of
+beer
+on
+the
+wall.
+47
+bottles
+of
+beer
+on
+the
+wall,
+47
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+46
+bottles
+of
+beer
+on
+the
+wall.
+46
+bottles
+of
+beer
+on
+the
+wall,
+46
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+45
+bottles
+of
+beer
+on
+the
+wall.
+45
+bottles
+of
+beer
+on
+the
+wall,
+45
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+44
+bottles
+of
+beer
+on
+the
+wall.
+44
+bottles
+of
+beer
+on
+the
+wall,
+44
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+43
+bottles
+of
+beer
+on
+the
+wall.
+43
+bottles
+of
+beer
+on
+the
+wall,
+43
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+42
+bottles
+of
+beer
+on
+the
+wall.
+42
+bottles
+of
+beer
+on
+the
+wall,
+42
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+41
+bottles
+of
+beer
+on
+the
+wall.
+41
+bottles
+of
+beer
+on
+the
+wall,
+41
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+40
+bottles
+of
+beer
+on
+the
+wall.
+40
+bottles
+of
+beer
+on
+the
+wall,
+40
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+39
+bottles
+of
+beer
+on
+the
+wall.
+39
+bottles
+of
+beer
+on
+the
+wall,
+39
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+38
+bottles
+of
+beer
+on
+the
+wall.
+38
+bottles
+of
+beer
+on
+the
+wall,
+38
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+37
+bottles
+of
+beer
+on
+the
+wall.
+37
+bottles
+of
+beer
+on
+the
+wall,
+37
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+36
+bottles
+of
+beer
+on
+the
+wall.
+36
+bottles
+of
+beer
+on
+the
+wall,
+36
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+35
+bottles
+of
+beer
+on
+the
+wall.
+35
+bottles
+of
+beer
+on
+the
+wall,
+35
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+34
+bottles
+of
+beer
+on
+the
+wall.
+34
+bottles
+of
+beer
+on
+the
+wall,
+34
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+33
+bottles
+of
+beer
+on
+the
+wall.
+33
+bottles
+of
+beer
+on
+the
+wall,
+33
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+32
+bottles
+of
+beer
+on
+the
+wall.
+32
+bottles
+of
+beer
+on
+the
+wall,
+32
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+31
+bottles
+of
+beer
+on
+the
+wall.
+31
+bottles
+of
+beer
+on
+the
+wall,
+31
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+30
+bottles
+of
+beer
+on
+the
+wall.
+30
+bottles
+of
+beer
+on
+the
+wall,
+30
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+29
+bottles
+of
+beer
+on
+the
+wall.
+29
+bottles
+of
+beer
+on
+the
+wall,
+29
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+28
+bottles
+of
+beer
+on
+the
+wall.
+28
+bottles
+of
+beer
+on
+the
+wall,
+28
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+27
+bottles
+of
+beer
+on
+the
+wall.
+27
+bottles
+of
+beer
+on
+the
+wall,
+27
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+26
+bottles
+of
+beer
+on
+the
+wall.
+26
+bottles
+of
+beer
+on
+the
+wall,
+26
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+25
+bottles
+of
+beer
+on
+the
+wall.
+25
+bottles
+of
+beer
+on
+the
+wall,
+25
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+24
+bottles
+of
+beer
+on
+the
+wall.
+24
+bottles
+of
+beer
+on
+the
+wall,
+24
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+23
+bottles
+of
+beer
+on
+the
+wall.
+23
+bottles
+of
+beer
+on
+the
+wall,
+23
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+22
+bottles
+of
+beer
+on
+the
+wall.
+22
+bottles
+of
+beer
+on
+the
+wall,
+22
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+21
+bottles
+of
+beer
+on
+the
+wall.
+21
+bottles
+of
+beer
+on
+the
+wall,
+21
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+20
+bottles
+of
+beer
+on
+the
+wall.
+20
+bottles
+of
+beer
+on
+the
+wall,
+20
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+19
+bottles
+of
+beer
+on
+the
+wall.
+19
+bottles
+of
+beer
+on
+the
+wall,
+19
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+18
+bottles
+of
+beer
+on
+the
+wall.
+18
+bottles
+of
+beer
+on
+the
+wall,
+18
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+17
+bottles
+of
+beer
+on
+the
+wall.
+17
+bottles
+of
+beer
+on
+the
+wall,
+17
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+16
+bottles
+of
+beer
+on
+the
+wall.
+16
+bottles
+of
+beer
+on
+the
+wall,
+16
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+15
+bottles
+of
+beer
+on
+the
+wall.
+15
+bottles
+of
+beer
+on
+the
+wall,
+15
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+14
+bottles
+of
+beer
+on
+the
+wall.
+14
+bottles
+of
+beer
+on
+the
+wall,
+14
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+13
+bottles
+of
+beer
+on
+the
+wall.
+13
+bottles
+of
+beer
+on
+the
+wall,
+13
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+12
+bottles
+of
+beer
+on
+the
+wall.
+12
+bottles
+of
+beer
+on
+the
+wall,
+12
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+11
+bottles
+of
+beer
+on
+the
+wall.
+11
+bottles
+of
+beer
+on
+the
+wall,
+11
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+10
+bottles
+of
+beer
+on
+the
+wall.
+10
+bottles
+of
+beer
+on
+the
+wall,
+10
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+9
+bottles
+of
+beer
+on
+the
+wall.
+9
+bottles
+of
+beer
+on
+the
+wall,
+9
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+8
+bottles
+of
+beer
+on
+the
+wall.
+8
+bottles
+of
+beer
+on
+the
+wall,
+8
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+7
+bottles
+of
+beer
+on
+the
+wall.
+7
+bottles
+of
+beer
+on
+the
+wall,
+7
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+6
+bottles
+of
+beer
+on
+the
+wall.
+6
+bottles
+of
+beer
+on
+the
+wall,
+6
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+5
+bottles
+of
+beer
+on
+the
+wall.
+5
+bottles
+of
+beer
+on
+the
+wall,
+5
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+4
+bottles
+of
+beer
+on
+the
+wall.
+4
+bottles
+of
+beer
+on
+the
+wall,
+4
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+3
+bottles
+of
+beer
+on
+the
+wall.
+3
+bottles
+of
+beer
+on
+the
+wall,
+3
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+2
+bottles
+of
+beer
+on
+the
+wall.
+2
+bottles
+of
+beer
+on
+the
+wall,
+2
+bottles
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+1
+bottle
+of
+beer
+on
+the
+wall.
+1
+bottle
+of
+beer
+on
+the
+wall,
+1
+bottle
+of
+beer!
+Take
+one
+down,
+pass
+it
+around;
+0
+bottles
+of
+beer
+on
+the
+wall.
+0
+bottles
+of
+beer
+on
+the
+wall,
+0
+bottles
+of
+beer!
+Go
+into
+town,
+buy
+a
+new
+round
+Get
+some
+more
+bottles
+of
+beer
+on
+the
+wall!
+</dgnorm_document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+
+<bottles>99</bottles>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/bottles.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,64 @@
+<?xml version="1.0"?> 
+
+<!-- bottles of beer by Cyrus Dolph May 16, 2000 -->
+
+<!-- input template of form: <bottles>99</bottles> -->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+   <xsl:output method="text" encoding="utf-8"/>
+
+   <xsl:template name="bottles">
+       <xsl:param name="bottles"/>
+       <xsl:choose>
+           <xsl:when test="$bottles = 1">
+               <xsl:text>1 bottle</xsl:text>
+           </xsl:when>
+           <xsl:otherwise>
+               <xsl:value-of select='concat ($bottles, " bottles")'/>
+           </xsl:otherwise>
+       </xsl:choose>
+   </xsl:template>
+
+   <xsl:template name="verse">
+       <xsl:param name="bottles"/>
+       <xsl:choose>
+           <xsl:when test="$bottles = 0">
+               <xsl:text>0 bottles of beer on the wall,
+0 bottles of beer!
+Go into town, buy a new round
+Get some more bottles of beer on the wall!
+</xsl:text>
+           </xsl:when>
+           <xsl:otherwise>
+               <xsl:call-template name="bottles">
+                   <xsl:with-param name="bottles" select="$bottles"/>
+               </xsl:call-template>
+               <xsl:text> of beer on the wall,
+</xsl:text>
+               <xsl:call-template name="bottles">
+                   <xsl:with-param name="bottles" select="$bottles"/>
+               </xsl:call-template>
+               <xsl:text> of beer!
+Take one down, pass it around;
+</xsl:text>
+               <xsl:call-template name="bottles">
+                   <xsl:with-param name="bottles" select="$bottles - 1"/>
+               </xsl:call-template>
+               <xsl:text> of beer on the wall.
+
+</xsl:text>
+               <xsl:call-template name="verse">
+                   <xsl:with-param name="bottles" select="$bottles - 1"/>
+               </xsl:call-template>
+           </xsl:otherwise>
+       </xsl:choose>
+   </xsl:template>
+ 
+   <xsl:template match="/">
+       <xsl:call-template name="verse">
+           <xsl:with-param name="bottles" select="/bottles"/>
+       </xsl:call-template>
+   </xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<element><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><found/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/><element/></element>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,202 @@
+<element>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<found/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+<element/>
+</element>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/breadth.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<element><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="1"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/><element needle="0"/></element>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,165 @@
+<html>
+<table border="1">
+<tr><td class="bigtablehead" colspan="3">
+            Warehouse: 
+      Virginia
+    </td></tr>
+<tr>
+<td class="tablehead">Sku</td>
+<td class="tablehead">Quantity</td>
+<td class="tablehead">Description</td>
+</tr>
+<tr>
+<td class="tablecell">2201</td>
+<td class="tablecell"><table border="1"><tr>
+<td width="40">12</td>
+<td width="12" bgcolor="#ffffff">.</td>
+<td width="88" bgcolor="#000000">.</td>
+</tr></table></td>
+<td class="tablecell">sprocket</td>
+</tr>
+<tr>
+<td class="tablecell">2202</td>
+<td class="tablecell"><table border="1"><tr>
+<td width="40">19</td>
+<td width="19" bgcolor="#ffffff">.</td>
+<td width="81" bgcolor="#000000">.</td>
+</tr></table></td>
+<td class="tablecell">widget</td>
+</tr>
+<tr>
+<td class="tablecell">2203</td>
+<td class="tablecell"><table border="1"><tr>
+<td width="40">0</td>
+<td width="0" bgcolor="#ffffff">.</td>
+<td width="100" bgcolor="#000000">.</td>
+</tr></table></td>
+<td class="tablecell">cog</td>
+</tr>
+<tr>
+<td class="tablecell">2204</td>
+<td class="tablecell"><table border="1"><tr>
+<td width="40">11</td>
+<td width="11" bgcolor="#ffffff">.</td>
+<td width="89" bgcolor="#000000">.</td>
+</tr></table></td>
+<td class="tablecell">whoozit</td>
+</tr>
+<tr>
+<td class="tablecell">2205</td>
+<td class="tablecell"><table border="1"><tr>
+<td width="40">42</td>
+<td width="42" bgcolor="#ffffff">.</td>
+<td width="58" bgcolor="#000000">.</td>
+</tr></table></td>
+<td class="tablecell">whatchamidigger</td>
+</tr>
+<tr>
+<td class="tablecell">2209</td>
+<td class="tablecell"><table border="1"><tr>
+<td width="40">0</td>
+<td width="0" bgcolor="#ffffff">.</td>
+<td width="100" bgcolor="#000000">.</td>
+</tr></table></td>
+<td class="tablecell">doohickey</td>
+</tr>
+<tr>
+<td class="tablehead">Total:</td>
+<td class="tablehead" colspan="2">84 instances of
+             6 kinds of items.
+          </td>
+</tr>
+<tr><td class="bigtablehead" colspan="3">
+            Warehouse: 
+      Pluto
+    </td></tr>
+<tr>
+<td class="tablehead">Sku</td>
+<td class="tablehead">Quantity</td>
+<td class="tablehead">Description</td>
+</tr>
+<tr>
+<td class="tablecell">2201</td>
+<td class="tablecell"><table border="1"><tr>
+<td width="40">4</td>
+<td width="4" bgcolor="#ffffff">.</td>
+<td width="96" bgcolor="#000000">.</td>
+</tr></table></td>
+<td class="tablecell">sprocket</td>
+</tr>
+<tr>
+<td class="tablecell">2204</td>
+<td class="tablecell"><table border="1"><tr>
+<td width="40">4</td>
+<td width="4" bgcolor="#ffffff">.</td>
+<td width="96" bgcolor="#000000">.</td>
+</tr></table></td>
+<td class="tablecell">whoozit</td>
+</tr>
+<tr>
+<td class="tablecell">2210</td>
+<td class="tablecell"><table border="1"><tr>
+<td width="40">0</td>
+<td width="0" bgcolor="#ffffff">.</td>
+<td width="100" bgcolor="#000000">.</td>
+</tr></table></td>
+<td class="tablecell">flange</td>
+</tr>
+<tr>
+<td class="tablecell">2210</td>
+<td class="tablecell"><table border="1"><tr>
+<td width="40">5</td>
+<td width="5" bgcolor="#ffffff">.</td>
+<td width="95" bgcolor="#000000">.</td>
+</tr></table></td>
+<td class="tablecell">knick knack</td>
+</tr>
+<tr>
+<td class="tablecell">2214</td>
+<td class="tablecell"><table border="1"><tr>
+<td width="40">74</td>
+<td width="74" bgcolor="#ffffff">.</td>
+<td width="26" bgcolor="#000000">.</td>
+</tr></table></td>
+<td class="tablecell">squeegie</td>
+</tr>
+<tr>
+<td class="tablehead">Total:</td>
+<td class="tablehead" colspan="2">87 instances of
+             5 kinds of items.
+          </td>
+</tr>
+</table>
+<table border="1">
+<tr><td colspan="4">Need to Reorder:</td></tr>
+<tr>
+<td class="tablecell">
+      Virginia
+    </td>
+<td class="tablecell">2203</td>
+<td class="tablecell">0</td>
+<td class="tablecell">cog</td>
+</tr>
+<tr>
+<td class="tablecell">
+      Virginia
+    </td>
+<td class="tablecell">2209</td>
+<td class="tablecell">0</td>
+<td class="tablecell">doohickey</td>
+</tr>
+<tr>
+<td class="tablecell">
+      Pluto
+    </td>
+<td class="tablecell">2210</td>
+<td class="tablecell">0</td>
+<td class="tablecell">flange</td>
+</tr>
+<tr>
+<td>Total:</td>
+<td colspan="3">3 items
+        </td>
+</tr>
+</table>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,380 @@
+<html>
+<table border="1">
+<tr>
+<td class="bigtablehead" colspan="3">
+Warehouse:
+Virginia
+</td>
+</tr>
+<tr>
+<td class="tablehead">
+Sku
+</td>
+<td class="tablehead">
+Quantity
+</td>
+<td class="tablehead">
+Description
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+2201
+</td>
+<td class="tablecell">
+<table border="1">
+<tr>
+<td width="40">
+12
+</td>
+<td bgcolor="#ffffff" width="12">
+.
+</td>
+<td bgcolor="#000000" width="88">
+.
+</td>
+</tr>
+</table>
+</td>
+<td class="tablecell">
+sprocket
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+2202
+</td>
+<td class="tablecell">
+<table border="1">
+<tr>
+<td width="40">
+19
+</td>
+<td bgcolor="#ffffff" width="19">
+.
+</td>
+<td bgcolor="#000000" width="81">
+.
+</td>
+</tr>
+</table>
+</td>
+<td class="tablecell">
+widget
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+2203
+</td>
+<td class="tablecell">
+<table border="1">
+<tr>
+<td width="40">
+0
+</td>
+<td bgcolor="#ffffff" width="0">
+.
+</td>
+<td bgcolor="#000000" width="100">
+.
+</td>
+</tr>
+</table>
+</td>
+<td class="tablecell">
+cog
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+2204
+</td>
+<td class="tablecell">
+<table border="1">
+<tr>
+<td width="40">
+11
+</td>
+<td bgcolor="#ffffff" width="11">
+.
+</td>
+<td bgcolor="#000000" width="89">
+.
+</td>
+</tr>
+</table>
+</td>
+<td class="tablecell">
+whoozit
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+2205
+</td>
+<td class="tablecell">
+<table border="1">
+<tr>
+<td width="40">
+42
+</td>
+<td bgcolor="#ffffff" width="42">
+.
+</td>
+<td bgcolor="#000000" width="58">
+.
+</td>
+</tr>
+</table>
+</td>
+<td class="tablecell">
+whatchamidigger
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+2209
+</td>
+<td class="tablecell">
+<table border="1">
+<tr>
+<td width="40">
+0
+</td>
+<td bgcolor="#ffffff" width="0">
+.
+</td>
+<td bgcolor="#000000" width="100">
+.
+</td>
+</tr>
+</table>
+</td>
+<td class="tablecell">
+doohickey
+</td>
+</tr>
+<tr>
+<td class="tablehead">
+Total:
+</td>
+<td class="tablehead" colspan="2">
+84
+instances
+of
+6
+kinds
+of
+items.
+</td>
+</tr>
+<tr>
+<td class="bigtablehead" colspan="3">
+Warehouse:
+Pluto
+</td>
+</tr>
+<tr>
+<td class="tablehead">
+Sku
+</td>
+<td class="tablehead">
+Quantity
+</td>
+<td class="tablehead">
+Description
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+2201
+</td>
+<td class="tablecell">
+<table border="1">
+<tr>
+<td width="40">
+4
+</td>
+<td bgcolor="#ffffff" width="4">
+.
+</td>
+<td bgcolor="#000000" width="96">
+.
+</td>
+</tr>
+</table>
+</td>
+<td class="tablecell">
+sprocket
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+2204
+</td>
+<td class="tablecell">
+<table border="1">
+<tr>
+<td width="40">
+4
+</td>
+<td bgcolor="#ffffff" width="4">
+.
+</td>
+<td bgcolor="#000000" width="96">
+.
+</td>
+</tr>
+</table>
+</td>
+<td class="tablecell">
+whoozit
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+2210
+</td>
+<td class="tablecell">
+<table border="1">
+<tr>
+<td width="40">
+0
+</td>
+<td bgcolor="#ffffff" width="0">
+.
+</td>
+<td bgcolor="#000000" width="100">
+.
+</td>
+</tr>
+</table>
+</td>
+<td class="tablecell">
+flange
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+2210
+</td>
+<td class="tablecell">
+<table border="1">
+<tr>
+<td width="40">
+5
+</td>
+<td bgcolor="#ffffff" width="5">
+.
+</td>
+<td bgcolor="#000000" width="95">
+.
+</td>
+</tr>
+</table>
+</td>
+<td class="tablecell">
+knick
+knack
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+2214
+</td>
+<td class="tablecell">
+<table border="1">
+<tr>
+<td width="40">
+74
+</td>
+<td bgcolor="#ffffff" width="74">
+.
+</td>
+<td bgcolor="#000000" width="26">
+.
+</td>
+</tr>
+</table>
+</td>
+<td class="tablecell">
+squeegie
+</td>
+</tr>
+<tr>
+<td class="tablehead">
+Total:
+</td>
+<td class="tablehead" colspan="2">
+87
+instances
+of
+5
+kinds
+of
+items.
+</td>
+</tr>
+</table>
+<table border="1">
+<tr>
+<td colspan="4">
+Need
+to
+Reorder:
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+Virginia
+</td>
+<td class="tablecell">
+2203
+</td>
+<td class="tablecell">
+0
+</td>
+<td class="tablecell">
+cog
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+Virginia
+</td>
+<td class="tablecell">
+2209
+</td>
+<td class="tablecell">
+0
+</td>
+<td class="tablecell">
+doohickey
+</td>
+</tr>
+<tr>
+<td class="tablecell">
+Pluto
+</td>
+<td class="tablecell">
+2210
+</td>
+<td class="tablecell">
+0
+</td>
+<td class="tablecell">
+flange
+</td>
+</tr>
+<tr>
+<td>
+Total:
+</td>
+<td colspan="3">
+3
+items
+</td>
+</tr>
+</table>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,74 @@
+<inventory>
+  <warehouse>
+    <name>
+      Virginia
+    </name>
+    <items>
+      <item>
+        <sku>2201</sku>
+        <desc>sprocket</desc>
+        <qty>12</qty>
+      </item>
+      <item>
+        <sku>2203</sku>
+        <desc>cog</desc>
+        <qty>0</qty>
+      </item>
+      <item>
+        <sku>2202</sku>
+        <desc>widget</desc>
+        <qty>19</qty>
+      </item>
+      <item>
+        <sku>2209</sku>
+        <desc>doohickey</desc>
+        <qty>0</qty>
+      </item>
+      <item>
+        <sku>2205</sku>
+        <desc>whatchamidigger</desc>
+        <qty>42</qty>
+      </item>
+      <item>
+        <sku>2204</sku>
+        <desc>whoozit</desc>
+        <qty>11</qty>
+      </item>
+    </items>
+  </warehouse>
+  <warehouse>
+    <name>
+      Pluto
+    </name>
+    <items>
+      <item>
+        <sku>2201</sku>
+        <desc>sprocket</desc>
+        <qty>4</qty>
+      </item>
+      <item>
+        <sku>2210</sku>
+        <desc>flange</desc>
+        <qty>0</qty>
+      </item>
+      <item>
+        <sku>2214</sku>
+        <desc>squeegie</desc>
+        <qty>74</qty>
+      </item>
+      <item>
+        <sku>2204</sku>
+        <desc>whoozit</desc>
+        <qty>4</qty>
+      </item>
+      <item>
+        <sku>2210</sku>
+        <desc>knick knack</desc>
+        <qty>5</qty>
+      </item>
+    </items>
+  </warehouse>
+
+</inventory>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/brutal.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,108 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="html" encoding="utf-8"/>
+
+<xsl:template name="inventory" match="inventory">
+  <html>
+    <table border="1">
+      <xsl:for-each select="warehouse">
+        <tr>
+          <td class="bigtablehead" colspan="3">
+            Warehouse: <xsl:value-of select="name"/>
+          </td>
+        </tr>
+        <tr>
+          <td class="tablehead">Sku</td>
+          <td class="tablehead">Quantity</td>
+          <td class="tablehead">Description</td>
+        </tr>
+        <xsl:apply-templates select="items/item">
+          <xsl:sort select="sku" data-type="number" order="ascending"/>
+        </xsl:apply-templates>
+        <tr>
+          <td class="tablehead">Total:</td>
+          <td class="tablehead" colspan="2"> 
+             <xsl:value-of select="sum(items/item/qty)"/> instances of
+             <xsl:value-of select="count(items/item)"/> kinds of items.
+          </td>
+        </tr>
+      </xsl:for-each>
+    </table>
+    <table border="1">
+      <tr>
+        <td colspan="4">Need to Reorder:</td>
+      </tr>
+<!--        <xsl:copy-of select="$soldout"/> -->
+      
+      <xsl:apply-templates select="/inventory/warehouse/items/item[qty=0]">
+        <xsl:with-param name="pwh" select="1"/>
+      </xsl:apply-templates>
+      
+      <tr>
+        <td>Total:</td>
+        <td colspan="3">
+          <xsl:value-of select="count(/inventory/warehouse/items/item[qty=0])"/> items
+        </td>
+      </tr>
+    </table>
+  </html>
+</xsl:template>
+
+
+<xsl:template name="item" match="item">
+  <xsl:param name="pwh" select="0"/>
+  <tr>
+    <xsl:choose>
+      <xsl:when test="$pwh=0">
+        <td>
+          <xsl:attribute name="class">tablecell</xsl:attribute>
+          <xsl:value-of select="sku"/>
+        </td>
+        <td class="tablecell">
+          <table border="1">
+            <tr>
+              <td width="40">     
+                 <xsl:value-of select="qty"/>
+              </td>
+              <td width="{qty}" bgcolor="#ffffff">.</td>
+              <td width="{100-qty}" bgcolor="#000000">.</td>
+            </tr>     
+          </table>
+        </td>
+        <td class="tablecell">
+          <xsl:value-of select="desc"/>
+        </td>
+      </xsl:when>
+      <xsl:otherwise>
+        <td class="tablecell">
+           <xsl:value-of select="ancestor::warehouse/name"/>
+        </td>
+        <td>
+          <xsl:attribute name="class">tablecell</xsl:attribute>
+          <xsl:value-of select="sku"/>
+        </td>
+        <td class="tablecell">
+          <xsl:value-of select="qty"/>
+        </td>
+        <td class="tablecell">
+          <xsl:value-of select="desc"/>
+        </td>
+      </xsl:otherwise>
+    </xsl:choose>
+  </tr>    
+</xsl:template>
+
+<!--
+<xsl:variable name="soldout">
+  <xsl:apply-templates select="/inventory/warehouse/items/item[qty=0]">
+    <xsl:with-param name="pwh" select="1"/>
+  </xsl:apply-templates>
+</xsl:variable>
+-->
+
+</xsl:stylesheet>
+
+
+
+    
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,73 @@
+<html><body bgcolor="#ffffff"><table border="0">
+<tr><td colspan="4" align="center">Sales By Region</td></tr>
+<tr>
+<td valign="top"><table border="0" cellpadding="2" cellspacing="0">
+<tr>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="90"><td bgcolor="#ffffff" width="10" height="90">&#160;</td></tr>
+<tr height="160"><td bgcolor="#0000ff" width="10" height="160">&#160;</td></tr>
+</table></td>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="195"><td bgcolor="#ffffff" width="10" height="195">&#160;</td></tr>
+<tr height="55"><td bgcolor="#ff00ff" width="10" height="55">&#160;</td></tr>
+</table></td>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="155"><td bgcolor="#ffffff" width="10" height="155">&#160;</td></tr>
+<tr height="95"><td bgcolor="#00ff00" width="10" height="95">&#160;</td></tr>
+</table></td>
+</tr>
+<tr><td colspan="3" align="center">1997</td></tr>
+</table></td>
+<td valign="top"><table border="0" cellpadding="2" cellspacing="0">
+<tr>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="75"><td bgcolor="#ffffff" width="10" height="75">&#160;</td></tr>
+<tr height="175"><td bgcolor="#0000ff" width="10" height="175">&#160;</td></tr>
+</table></td>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="190"><td bgcolor="#ffffff" width="10" height="190">&#160;</td></tr>
+<tr height="60"><td bgcolor="#ff00ff" width="10" height="60">&#160;</td></tr>
+</table></td>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="125"><td bgcolor="#ffffff" width="10" height="125">&#160;</td></tr>
+<tr height="125"><td bgcolor="#00ff00" width="10" height="125">&#160;</td></tr>
+</table></td>
+</tr>
+<tr><td colspan="3" align="center">1998</td></tr>
+</table></td>
+<td valign="top"><table border="0" cellpadding="2" cellspacing="0">
+<tr>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="70"><td bgcolor="#ffffff" width="10" height="70">&#160;</td></tr>
+<tr height="180"><td bgcolor="#0000ff" width="10" height="180">&#160;</td></tr>
+</table></td>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="190"><td bgcolor="#ffffff" width="10" height="190">&#160;</td></tr>
+<tr height="60"><td bgcolor="#ff00ff" width="10" height="60">&#160;</td></tr>
+</table></td>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="95"><td bgcolor="#ffffff" width="10" height="95">&#160;</td></tr>
+<tr height="155"><td bgcolor="#00ff00" width="10" height="155">&#160;</td></tr>
+</table></td>
+</tr>
+<tr><td colspan="3" align="center">1999</td></tr>
+</table></td>
+<td valign="top"><table border="0" cellpadding="2" cellspacing="0">
+<tr>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="65"><td bgcolor="#ffffff" width="10" height="65">&#160;</td></tr>
+<tr height="185"><td bgcolor="#0000ff" width="10" height="185">&#160;</td></tr>
+</table></td>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="195"><td bgcolor="#ffffff" width="10" height="195">&#160;</td></tr>
+<tr height="55"><td bgcolor="#ff00ff" width="10" height="55">&#160;</td></tr>
+</table></td>
+<td valign="top"><table border="0" cellpadding="0" cellspacing="0">
+<tr height="50"><td bgcolor="#ffffff" width="10" height="50">&#160;</td></tr>
+<tr height="200"><td bgcolor="#00ff00" width="10" height="200">&#160;</td></tr>
+</table></td>
+</tr>
+<tr><td colspan="3" align="center">2000</td></tr>
+</table></td>
+</tr>
+</table></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,227 @@
+<html>
+<body bgcolor="#ffffff">
+<table border="0">
+<tr>
+<td align="center" colspan="4">
+Sales
+By
+Region
+</td>
+</tr>
+<tr>
+<td valign="top">
+<table border="0" cellpadding="2" cellspacing="0">
+<tr>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="90">
+<td bgcolor="#ffffff" height="90" width="10">
+ 
+</td>
+</tr>
+<tr height="160">
+<td bgcolor="#0000ff" height="160" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="195">
+<td bgcolor="#ffffff" height="195" width="10">
+ 
+</td>
+</tr>
+<tr height="55">
+<td bgcolor="#ff00ff" height="55" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="155">
+<td bgcolor="#ffffff" height="155" width="10">
+ 
+</td>
+</tr>
+<tr height="95">
+<td bgcolor="#00ff00" height="95" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td align="center" colspan="3">
+1997
+</td>
+</tr>
+</table>
+</td>
+<td valign="top">
+<table border="0" cellpadding="2" cellspacing="0">
+<tr>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="75">
+<td bgcolor="#ffffff" height="75" width="10">
+ 
+</td>
+</tr>
+<tr height="175">
+<td bgcolor="#0000ff" height="175" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="190">
+<td bgcolor="#ffffff" height="190" width="10">
+ 
+</td>
+</tr>
+<tr height="60">
+<td bgcolor="#ff00ff" height="60" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="125">
+<td bgcolor="#ffffff" height="125" width="10">
+ 
+</td>
+</tr>
+<tr height="125">
+<td bgcolor="#00ff00" height="125" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td align="center" colspan="3">
+1998
+</td>
+</tr>
+</table>
+</td>
+<td valign="top">
+<table border="0" cellpadding="2" cellspacing="0">
+<tr>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="70">
+<td bgcolor="#ffffff" height="70" width="10">
+ 
+</td>
+</tr>
+<tr height="180">
+<td bgcolor="#0000ff" height="180" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="190">
+<td bgcolor="#ffffff" height="190" width="10">
+ 
+</td>
+</tr>
+<tr height="60">
+<td bgcolor="#ff00ff" height="60" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="95">
+<td bgcolor="#ffffff" height="95" width="10">
+ 
+</td>
+</tr>
+<tr height="155">
+<td bgcolor="#00ff00" height="155" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td align="center" colspan="3">
+1999
+</td>
+</tr>
+</table>
+</td>
+<td valign="top">
+<table border="0" cellpadding="2" cellspacing="0">
+<tr>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="65">
+<td bgcolor="#ffffff" height="65" width="10">
+ 
+</td>
+</tr>
+<tr height="185">
+<td bgcolor="#0000ff" height="185" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="195">
+<td bgcolor="#ffffff" height="195" width="10">
+ 
+</td>
+</tr>
+<tr height="55">
+<td bgcolor="#ff00ff" height="55" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+<td valign="top">
+<table border="0" cellpadding="0" cellspacing="0">
+<tr height="50">
+<td bgcolor="#ffffff" height="50" width="10">
+ 
+</td>
+</tr>
+<tr height="200">
+<td bgcolor="#00ff00" height="200" width="10">
+ 
+</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td align="center" colspan="3">
+2000
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<salesdata>
+  <year>
+    <year>1997</year>
+	<region>
+	  <name>west</name>
+      <sales unit="millions">32</sales>
+    </region>
+	<region>
+	  <name>central</name>
+      <sales unit="millions">11</sales>
+    </region>
+	<region>
+	  <name>east</name>
+      <sales unit="millions">19</sales>
+    </region>
+  </year>
+  <year>
+    <year>1998</year>
+	<region>
+	  <name>west</name>
+      <sales unit="millions">35</sales>
+    </region>
+	<region>
+	  <name>central</name>
+      <sales unit="millions">12</sales>
+    </region>
+	<region>
+	  <name>east</name>
+      <sales unit="millions">25</sales>
+    </region>
+  </year>
+  <year>
+    <year>1999</year>
+	<region>
+	  <name>west</name>
+      <sales unit="millions">36</sales>
+    </region>
+	<region>
+	  <name>central</name>
+      <sales unit="millions">12</sales>
+    </region>
+	<region>
+	  <name>east</name>
+      <sales unit="millions">31</sales>
+    </region>
+  </year>
+  <year>
+    <year>2000</year>
+	<region>
+	  <name>west</name>
+      <sales unit="millions">37</sales>
+    </region>
+	<region>
+	  <name>central</name>
+      <sales unit="millions">11</sales>
+    </region>
+	<region>
+	  <name>east</name>
+      <sales unit="millions">40</sales>
+    </region>
+  </year>
+</salesdata>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/chart.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,60 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:output method="html" encoding="utf-8"/>
+
+  <xsl:template match="salesdata">
+    <xsl:variable name="max" select="50"/>
+
+    <html>
+      <body bgcolor="#ffffff">
+      <table border="0">
+        <tr>
+          <td colspan="{count(year)}" align="center">Sales By Region</td>
+        </tr>
+        <tr>
+          <xsl:for-each select="year">
+            <td valign="top">
+              <table border="0" cellpadding="2" cellspacing="0">
+                <tr>
+                  <xsl:for-each select="region">
+                    <xsl:variable name="color">
+                      <xsl:choose>
+                        <xsl:when test="name='west'">#0000ff</xsl:when>
+                        <xsl:when test="name='central'">#ff00ff</xsl:when>
+                        <xsl:when test="name='east'">#00ff00</xsl:when>
+                      </xsl:choose>
+                    </xsl:variable>
+                    <td valign="top">
+                      <table border="0" cellpadding="0" cellspacing="0">
+                        <tr height="{5 * ($max - sales)}">
+                          <td bgcolor="#ffffff" width="10" height="{5 * ($max - sales)}">
+                            <xsl:text disable-output-escaping="yes">&amp;#160;</xsl:text>
+                          </td>
+                        </tr>
+                        <tr height="{5 * sales}">
+                          <td bgcolor="{$color}" width="10" height="{5 * sales}">
+                            <xsl:text disable-output-escaping="yes">&amp;#160;</xsl:text>
+                          </td>
+                        </tr>
+                        
+                      </table>
+                    </td>
+                  </xsl:for-each>
+                </tr>
+                <tr>
+                  <td colspan="{count(region)}" align="center">
+                    <xsl:value-of select="year"/>
+                  </td>
+                </tr>
+              </table>
+            </td>
+          </xsl:for-each>
+        </tr>
+      </table>
+    </body>
+    </html>
+
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,903 @@
+<?xml version="1.0" encoding="utf-8"?>
+<table>
+  <row>
+    <column name="id" value="0000"/>
+    <column name="firstname" value="Al"/>
+    <column name="lastname" value="Aranow"/>
+    <column name="street" value="1 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0001"/>
+    <column name="firstname" value="Bob"/>
+    <column name="lastname" value="Aranow"/>
+    <column name="street" value="2 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0002"/>
+    <column name="firstname" value="Charles"/>
+    <column name="lastname" value="Aranow"/>
+    <column name="street" value="3 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0003"/>
+    <column name="firstname" value="David"/>
+    <column name="lastname" value="Aranow"/>
+    <column name="street" value="4 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0004"/>
+    <column name="firstname" value="Egon"/>
+    <column name="lastname" value="Aranow"/>
+    <column name="street" value="5 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0005"/>
+    <column name="firstname" value="Farbood"/>
+    <column name="lastname" value="Aranow"/>
+    <column name="street" value="6 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0006"/>
+    <column name="firstname" value="George"/>
+    <column name="lastname" value="Aranow"/>
+    <column name="street" value="7 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0007"/>
+    <column name="firstname" value="Hank"/>
+    <column name="lastname" value="Aranow"/>
+    <column name="street" value="8 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0008"/>
+    <column name="firstname" value="Inki"/>
+    <column name="lastname" value="Aranow"/>
+    <column name="street" value="9 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0009"/>
+    <column name="firstname" value="James"/>
+    <column name="lastname" value="Aranow"/>
+    <column name="street" value="10 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0010"/>
+    <column name="firstname" value="Al"/>
+    <column name="lastname" value="Barker"/>
+    <column name="street" value="11 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0011"/>
+    <column name="firstname" value="Bob"/>
+    <column name="lastname" value="Barker"/>
+    <column name="street" value="12 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0012"/>
+    <column name="firstname" value="Charles"/>
+    <column name="lastname" value="Barker"/>
+    <column name="street" value="13 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0013"/>
+    <column name="firstname" value="David"/>
+    <column name="lastname" value="Barker"/>
+    <column name="street" value="14 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0014"/>
+    <column name="firstname" value="Egon"/>
+    <column name="lastname" value="Barker"/>
+    <column name="street" value="15 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0015"/>
+    <column name="firstname" value="Farbood"/>
+    <column name="lastname" value="Barker"/>
+    <column name="street" value="16 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0016"/>
+    <column name="firstname" value="George"/>
+    <column name="lastname" value="Barker"/>
+    <column name="street" value="17 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0017"/>
+    <column name="firstname" value="Hank"/>
+    <column name="lastname" value="Barker"/>
+    <column name="street" value="18 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0018"/>
+    <column name="firstname" value="Inki"/>
+    <column name="lastname" value="Barker"/>
+    <column name="street" value="19 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0019"/>
+    <column name="firstname" value="James"/>
+    <column name="lastname" value="Barker"/>
+    <column name="street" value="20 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0020"/>
+    <column name="firstname" value="Al"/>
+    <column name="lastname" value="Corsetti"/>
+    <column name="street" value="21 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0021"/>
+    <column name="firstname" value="Bob"/>
+    <column name="lastname" value="Corsetti"/>
+    <column name="street" value="22 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0022"/>
+    <column name="firstname" value="Charles"/>
+    <column name="lastname" value="Corsetti"/>
+    <column name="street" value="23 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0023"/>
+    <column name="firstname" value="David"/>
+    <column name="lastname" value="Corsetti"/>
+    <column name="street" value="24 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0024"/>
+    <column name="firstname" value="Egon"/>
+    <column name="lastname" value="Corsetti"/>
+    <column name="street" value="25 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0025"/>
+    <column name="firstname" value="Farbood"/>
+    <column name="lastname" value="Corsetti"/>
+    <column name="street" value="26 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0026"/>
+    <column name="firstname" value="George"/>
+    <column name="lastname" value="Corsetti"/>
+    <column name="street" value="27 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0027"/>
+    <column name="firstname" value="Hank"/>
+    <column name="lastname" value="Corsetti"/>
+    <column name="street" value="28 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0028"/>
+    <column name="firstname" value="Inki"/>
+    <column name="lastname" value="Corsetti"/>
+    <column name="street" value="29 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0029"/>
+    <column name="firstname" value="James"/>
+    <column name="lastname" value="Corsetti"/>
+    <column name="street" value="30 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0030"/>
+    <column name="firstname" value="Al"/>
+    <column name="lastname" value="Dershowitz"/>
+    <column name="street" value="31 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0031"/>
+    <column name="firstname" value="Bob"/>
+    <column name="lastname" value="Dershowitz"/>
+    <column name="street" value="32 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0032"/>
+    <column name="firstname" value="Charles"/>
+    <column name="lastname" value="Dershowitz"/>
+    <column name="street" value="33 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0033"/>
+    <column name="firstname" value="David"/>
+    <column name="lastname" value="Dershowitz"/>
+    <column name="street" value="34 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0034"/>
+    <column name="firstname" value="Egon"/>
+    <column name="lastname" value="Dershowitz"/>
+    <column name="street" value="35 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0035"/>
+    <column name="firstname" value="Farbood"/>
+    <column name="lastname" value="Dershowitz"/>
+    <column name="street" value="36 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0036"/>
+    <column name="firstname" value="George"/>
+    <column name="lastname" value="Dershowitz"/>
+    <column name="street" value="37 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0037"/>
+    <column name="firstname" value="Hank"/>
+    <column name="lastname" value="Dershowitz"/>
+    <column name="street" value="38 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0038"/>
+    <column name="firstname" value="Inki"/>
+    <column name="lastname" value="Dershowitz"/>
+    <column name="street" value="39 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0039"/>
+    <column name="firstname" value="James"/>
+    <column name="lastname" value="Dershowitz"/>
+    <column name="street" value="40 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0040"/>
+    <column name="firstname" value="Al"/>
+    <column name="lastname" value="Engleman"/>
+    <column name="street" value="41 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0041"/>
+    <column name="firstname" value="Bob"/>
+    <column name="lastname" value="Engleman"/>
+    <column name="street" value="42 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0042"/>
+    <column name="firstname" value="Charles"/>
+    <column name="lastname" value="Engleman"/>
+    <column name="street" value="43 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0043"/>
+    <column name="firstname" value="David"/>
+    <column name="lastname" value="Engleman"/>
+    <column name="street" value="44 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0044"/>
+    <column name="firstname" value="Egon"/>
+    <column name="lastname" value="Engleman"/>
+    <column name="street" value="45 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0045"/>
+    <column name="firstname" value="Farbood"/>
+    <column name="lastname" value="Engleman"/>
+    <column name="street" value="46 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0046"/>
+    <column name="firstname" value="George"/>
+    <column name="lastname" value="Engleman"/>
+    <column name="street" value="47 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0047"/>
+    <column name="firstname" value="Hank"/>
+    <column name="lastname" value="Engleman"/>
+    <column name="street" value="48 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0048"/>
+    <column name="firstname" value="Inki"/>
+    <column name="lastname" value="Engleman"/>
+    <column name="street" value="49 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0049"/>
+    <column name="firstname" value="James"/>
+    <column name="lastname" value="Engleman"/>
+    <column name="street" value="50 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0050"/>
+    <column name="firstname" value="Al"/>
+    <column name="lastname" value="Franklin"/>
+    <column name="street" value="51 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0051"/>
+    <column name="firstname" value="Bob"/>
+    <column name="lastname" value="Franklin"/>
+    <column name="street" value="52 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0052"/>
+    <column name="firstname" value="Charles"/>
+    <column name="lastname" value="Franklin"/>
+    <column name="street" value="53 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0053"/>
+    <column name="firstname" value="David"/>
+    <column name="lastname" value="Franklin"/>
+    <column name="street" value="54 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0054"/>
+    <column name="firstname" value="Egon"/>
+    <column name="lastname" value="Franklin"/>
+    <column name="street" value="55 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0055"/>
+    <column name="firstname" value="Farbood"/>
+    <column name="lastname" value="Franklin"/>
+    <column name="street" value="56 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0056"/>
+    <column name="firstname" value="George"/>
+    <column name="lastname" value="Franklin"/>
+    <column name="street" value="57 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0057"/>
+    <column name="firstname" value="Hank"/>
+    <column name="lastname" value="Franklin"/>
+    <column name="street" value="58 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0058"/>
+    <column name="firstname" value="Inki"/>
+    <column name="lastname" value="Franklin"/>
+    <column name="street" value="59 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0059"/>
+    <column name="firstname" value="James"/>
+    <column name="lastname" value="Franklin"/>
+    <column name="street" value="60 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0060"/>
+    <column name="firstname" value="Al"/>
+    <column name="lastname" value="Grice"/>
+    <column name="street" value="61 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0061"/>
+    <column name="firstname" value="Bob"/>
+    <column name="lastname" value="Grice"/>
+    <column name="street" value="62 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0062"/>
+    <column name="firstname" value="Charles"/>
+    <column name="lastname" value="Grice"/>
+    <column name="street" value="63 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0063"/>
+    <column name="firstname" value="David"/>
+    <column name="lastname" value="Grice"/>
+    <column name="street" value="64 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0064"/>
+    <column name="firstname" value="Egon"/>
+    <column name="lastname" value="Grice"/>
+    <column name="street" value="65 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0065"/>
+    <column name="firstname" value="Farbood"/>
+    <column name="lastname" value="Grice"/>
+    <column name="street" value="66 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0066"/>
+    <column name="firstname" value="George"/>
+    <column name="lastname" value="Grice"/>
+    <column name="street" value="67 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0067"/>
+    <column name="firstname" value="Hank"/>
+    <column name="lastname" value="Grice"/>
+    <column name="street" value="68 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0068"/>
+    <column name="firstname" value="Inki"/>
+    <column name="lastname" value="Grice"/>
+    <column name="street" value="69 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0069"/>
+    <column name="firstname" value="James"/>
+    <column name="lastname" value="Grice"/>
+    <column name="street" value="70 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0070"/>
+    <column name="firstname" value="Al"/>
+    <column name="lastname" value="Haverford"/>
+    <column name="street" value="71 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0071"/>
+    <column name="firstname" value="Bob"/>
+    <column name="lastname" value="Haverford"/>
+    <column name="street" value="72 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0072"/>
+    <column name="firstname" value="Charles"/>
+    <column name="lastname" value="Haverford"/>
+    <column name="street" value="73 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0073"/>
+    <column name="firstname" value="David"/>
+    <column name="lastname" value="Haverford"/>
+    <column name="street" value="74 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0074"/>
+    <column name="firstname" value="Egon"/>
+    <column name="lastname" value="Haverford"/>
+    <column name="street" value="75 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0075"/>
+    <column name="firstname" value="Farbood"/>
+    <column name="lastname" value="Haverford"/>
+    <column name="street" value="76 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0076"/>
+    <column name="firstname" value="George"/>
+    <column name="lastname" value="Haverford"/>
+    <column name="street" value="77 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0077"/>
+    <column name="firstname" value="Hank"/>
+    <column name="lastname" value="Haverford"/>
+    <column name="street" value="78 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0078"/>
+    <column name="firstname" value="Inki"/>
+    <column name="lastname" value="Haverford"/>
+    <column name="street" value="79 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0079"/>
+    <column name="firstname" value="James"/>
+    <column name="lastname" value="Haverford"/>
+    <column name="street" value="80 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0080"/>
+    <column name="firstname" value="Al"/>
+    <column name="lastname" value="Ilvedson"/>
+    <column name="street" value="81 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0081"/>
+    <column name="firstname" value="Bob"/>
+    <column name="lastname" value="Ilvedson"/>
+    <column name="street" value="82 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0082"/>
+    <column name="firstname" value="Charles"/>
+    <column name="lastname" value="Ilvedson"/>
+    <column name="street" value="83 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0083"/>
+    <column name="firstname" value="David"/>
+    <column name="lastname" value="Ilvedson"/>
+    <column name="street" value="84 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0084"/>
+    <column name="firstname" value="Egon"/>
+    <column name="lastname" value="Ilvedson"/>
+    <column name="street" value="85 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0085"/>
+    <column name="firstname" value="Farbood"/>
+    <column name="lastname" value="Ilvedson"/>
+    <column name="street" value="86 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0086"/>
+    <column name="firstname" value="George"/>
+    <column name="lastname" value="Ilvedson"/>
+    <column name="street" value="87 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0087"/>
+    <column name="firstname" value="Hank"/>
+    <column name="lastname" value="Ilvedson"/>
+    <column name="street" value="88 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0088"/>
+    <column name="firstname" value="Inki"/>
+    <column name="lastname" value="Ilvedson"/>
+    <column name="street" value="89 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0089"/>
+    <column name="firstname" value="James"/>
+    <column name="lastname" value="Ilvedson"/>
+    <column name="street" value="90 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0090"/>
+    <column name="firstname" value="Al"/>
+    <column name="lastname" value="Jones"/>
+    <column name="street" value="91 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0091"/>
+    <column name="firstname" value="Bob"/>
+    <column name="lastname" value="Jones"/>
+    <column name="street" value="92 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0092"/>
+    <column name="firstname" value="Charles"/>
+    <column name="lastname" value="Jones"/>
+    <column name="street" value="93 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0093"/>
+    <column name="firstname" value="David"/>
+    <column name="lastname" value="Jones"/>
+    <column name="street" value="94 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0094"/>
+    <column name="firstname" value="Egon"/>
+    <column name="lastname" value="Jones"/>
+    <column name="street" value="95 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0095"/>
+    <column name="firstname" value="Farbood"/>
+    <column name="lastname" value="Jones"/>
+    <column name="street" value="96 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0096"/>
+    <column name="firstname" value="George"/>
+    <column name="lastname" value="Jones"/>
+    <column name="street" value="97 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0097"/>
+    <column name="firstname" value="Hank"/>
+    <column name="lastname" value="Jones"/>
+    <column name="street" value="98 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0098"/>
+    <column name="firstname" value="Inki"/>
+    <column name="lastname" value="Jones"/>
+    <column name="street" value="99 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+  <row>
+    <column name="id" value="0099"/>
+    <column name="firstname" value="James"/>
+    <column name="lastname" value="Jones"/>
+    <column name="street" value="100 Any St."/>
+    <column name="city" value="Anytown"/>
+    <column name="state" value="AL"/>
+    <column name="zip" value="22000"/>
+  </row>
+</table>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,902 @@
+<table>
+<row>
+<column name="id" value="0000"/>
+<column name="firstname" value="Al"/>
+<column name="lastname" value="Aranow"/>
+<column name="street" value="1 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0001"/>
+<column name="firstname" value="Bob"/>
+<column name="lastname" value="Aranow"/>
+<column name="street" value="2 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0002"/>
+<column name="firstname" value="Charles"/>
+<column name="lastname" value="Aranow"/>
+<column name="street" value="3 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0003"/>
+<column name="firstname" value="David"/>
+<column name="lastname" value="Aranow"/>
+<column name="street" value="4 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0004"/>
+<column name="firstname" value="Egon"/>
+<column name="lastname" value="Aranow"/>
+<column name="street" value="5 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0005"/>
+<column name="firstname" value="Farbood"/>
+<column name="lastname" value="Aranow"/>
+<column name="street" value="6 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0006"/>
+<column name="firstname" value="George"/>
+<column name="lastname" value="Aranow"/>
+<column name="street" value="7 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0007"/>
+<column name="firstname" value="Hank"/>
+<column name="lastname" value="Aranow"/>
+<column name="street" value="8 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0008"/>
+<column name="firstname" value="Inki"/>
+<column name="lastname" value="Aranow"/>
+<column name="street" value="9 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0009"/>
+<column name="firstname" value="James"/>
+<column name="lastname" value="Aranow"/>
+<column name="street" value="10 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0010"/>
+<column name="firstname" value="Al"/>
+<column name="lastname" value="Barker"/>
+<column name="street" value="11 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0011"/>
+<column name="firstname" value="Bob"/>
+<column name="lastname" value="Barker"/>
+<column name="street" value="12 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0012"/>
+<column name="firstname" value="Charles"/>
+<column name="lastname" value="Barker"/>
+<column name="street" value="13 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0013"/>
+<column name="firstname" value="David"/>
+<column name="lastname" value="Barker"/>
+<column name="street" value="14 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0014"/>
+<column name="firstname" value="Egon"/>
+<column name="lastname" value="Barker"/>
+<column name="street" value="15 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0015"/>
+<column name="firstname" value="Farbood"/>
+<column name="lastname" value="Barker"/>
+<column name="street" value="16 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0016"/>
+<column name="firstname" value="George"/>
+<column name="lastname" value="Barker"/>
+<column name="street" value="17 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0017"/>
+<column name="firstname" value="Hank"/>
+<column name="lastname" value="Barker"/>
+<column name="street" value="18 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0018"/>
+<column name="firstname" value="Inki"/>
+<column name="lastname" value="Barker"/>
+<column name="street" value="19 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0019"/>
+<column name="firstname" value="James"/>
+<column name="lastname" value="Barker"/>
+<column name="street" value="20 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0020"/>
+<column name="firstname" value="Al"/>
+<column name="lastname" value="Corsetti"/>
+<column name="street" value="21 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0021"/>
+<column name="firstname" value="Bob"/>
+<column name="lastname" value="Corsetti"/>
+<column name="street" value="22 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0022"/>
+<column name="firstname" value="Charles"/>
+<column name="lastname" value="Corsetti"/>
+<column name="street" value="23 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0023"/>
+<column name="firstname" value="David"/>
+<column name="lastname" value="Corsetti"/>
+<column name="street" value="24 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0024"/>
+<column name="firstname" value="Egon"/>
+<column name="lastname" value="Corsetti"/>
+<column name="street" value="25 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0025"/>
+<column name="firstname" value="Farbood"/>
+<column name="lastname" value="Corsetti"/>
+<column name="street" value="26 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0026"/>
+<column name="firstname" value="George"/>
+<column name="lastname" value="Corsetti"/>
+<column name="street" value="27 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0027"/>
+<column name="firstname" value="Hank"/>
+<column name="lastname" value="Corsetti"/>
+<column name="street" value="28 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0028"/>
+<column name="firstname" value="Inki"/>
+<column name="lastname" value="Corsetti"/>
+<column name="street" value="29 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0029"/>
+<column name="firstname" value="James"/>
+<column name="lastname" value="Corsetti"/>
+<column name="street" value="30 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0030"/>
+<column name="firstname" value="Al"/>
+<column name="lastname" value="Dershowitz"/>
+<column name="street" value="31 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0031"/>
+<column name="firstname" value="Bob"/>
+<column name="lastname" value="Dershowitz"/>
+<column name="street" value="32 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0032"/>
+<column name="firstname" value="Charles"/>
+<column name="lastname" value="Dershowitz"/>
+<column name="street" value="33 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0033"/>
+<column name="firstname" value="David"/>
+<column name="lastname" value="Dershowitz"/>
+<column name="street" value="34 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0034"/>
+<column name="firstname" value="Egon"/>
+<column name="lastname" value="Dershowitz"/>
+<column name="street" value="35 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0035"/>
+<column name="firstname" value="Farbood"/>
+<column name="lastname" value="Dershowitz"/>
+<column name="street" value="36 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0036"/>
+<column name="firstname" value="George"/>
+<column name="lastname" value="Dershowitz"/>
+<column name="street" value="37 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0037"/>
+<column name="firstname" value="Hank"/>
+<column name="lastname" value="Dershowitz"/>
+<column name="street" value="38 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0038"/>
+<column name="firstname" value="Inki"/>
+<column name="lastname" value="Dershowitz"/>
+<column name="street" value="39 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0039"/>
+<column name="firstname" value="James"/>
+<column name="lastname" value="Dershowitz"/>
+<column name="street" value="40 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0040"/>
+<column name="firstname" value="Al"/>
+<column name="lastname" value="Engleman"/>
+<column name="street" value="41 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0041"/>
+<column name="firstname" value="Bob"/>
+<column name="lastname" value="Engleman"/>
+<column name="street" value="42 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0042"/>
+<column name="firstname" value="Charles"/>
+<column name="lastname" value="Engleman"/>
+<column name="street" value="43 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0043"/>
+<column name="firstname" value="David"/>
+<column name="lastname" value="Engleman"/>
+<column name="street" value="44 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0044"/>
+<column name="firstname" value="Egon"/>
+<column name="lastname" value="Engleman"/>
+<column name="street" value="45 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0045"/>
+<column name="firstname" value="Farbood"/>
+<column name="lastname" value="Engleman"/>
+<column name="street" value="46 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0046"/>
+<column name="firstname" value="George"/>
+<column name="lastname" value="Engleman"/>
+<column name="street" value="47 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0047"/>
+<column name="firstname" value="Hank"/>
+<column name="lastname" value="Engleman"/>
+<column name="street" value="48 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0048"/>
+<column name="firstname" value="Inki"/>
+<column name="lastname" value="Engleman"/>
+<column name="street" value="49 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0049"/>
+<column name="firstname" value="James"/>
+<column name="lastname" value="Engleman"/>
+<column name="street" value="50 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0050"/>
+<column name="firstname" value="Al"/>
+<column name="lastname" value="Franklin"/>
+<column name="street" value="51 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0051"/>
+<column name="firstname" value="Bob"/>
+<column name="lastname" value="Franklin"/>
+<column name="street" value="52 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0052"/>
+<column name="firstname" value="Charles"/>
+<column name="lastname" value="Franklin"/>
+<column name="street" value="53 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0053"/>
+<column name="firstname" value="David"/>
+<column name="lastname" value="Franklin"/>
+<column name="street" value="54 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0054"/>
+<column name="firstname" value="Egon"/>
+<column name="lastname" value="Franklin"/>
+<column name="street" value="55 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0055"/>
+<column name="firstname" value="Farbood"/>
+<column name="lastname" value="Franklin"/>
+<column name="street" value="56 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0056"/>
+<column name="firstname" value="George"/>
+<column name="lastname" value="Franklin"/>
+<column name="street" value="57 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0057"/>
+<column name="firstname" value="Hank"/>
+<column name="lastname" value="Franklin"/>
+<column name="street" value="58 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0058"/>
+<column name="firstname" value="Inki"/>
+<column name="lastname" value="Franklin"/>
+<column name="street" value="59 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0059"/>
+<column name="firstname" value="James"/>
+<column name="lastname" value="Franklin"/>
+<column name="street" value="60 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0060"/>
+<column name="firstname" value="Al"/>
+<column name="lastname" value="Grice"/>
+<column name="street" value="61 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0061"/>
+<column name="firstname" value="Bob"/>
+<column name="lastname" value="Grice"/>
+<column name="street" value="62 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0062"/>
+<column name="firstname" value="Charles"/>
+<column name="lastname" value="Grice"/>
+<column name="street" value="63 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0063"/>
+<column name="firstname" value="David"/>
+<column name="lastname" value="Grice"/>
+<column name="street" value="64 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0064"/>
+<column name="firstname" value="Egon"/>
+<column name="lastname" value="Grice"/>
+<column name="street" value="65 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0065"/>
+<column name="firstname" value="Farbood"/>
+<column name="lastname" value="Grice"/>
+<column name="street" value="66 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0066"/>
+<column name="firstname" value="George"/>
+<column name="lastname" value="Grice"/>
+<column name="street" value="67 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0067"/>
+<column name="firstname" value="Hank"/>
+<column name="lastname" value="Grice"/>
+<column name="street" value="68 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0068"/>
+<column name="firstname" value="Inki"/>
+<column name="lastname" value="Grice"/>
+<column name="street" value="69 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0069"/>
+<column name="firstname" value="James"/>
+<column name="lastname" value="Grice"/>
+<column name="street" value="70 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0070"/>
+<column name="firstname" value="Al"/>
+<column name="lastname" value="Haverford"/>
+<column name="street" value="71 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0071"/>
+<column name="firstname" value="Bob"/>
+<column name="lastname" value="Haverford"/>
+<column name="street" value="72 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0072"/>
+<column name="firstname" value="Charles"/>
+<column name="lastname" value="Haverford"/>
+<column name="street" value="73 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0073"/>
+<column name="firstname" value="David"/>
+<column name="lastname" value="Haverford"/>
+<column name="street" value="74 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0074"/>
+<column name="firstname" value="Egon"/>
+<column name="lastname" value="Haverford"/>
+<column name="street" value="75 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0075"/>
+<column name="firstname" value="Farbood"/>
+<column name="lastname" value="Haverford"/>
+<column name="street" value="76 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0076"/>
+<column name="firstname" value="George"/>
+<column name="lastname" value="Haverford"/>
+<column name="street" value="77 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0077"/>
+<column name="firstname" value="Hank"/>
+<column name="lastname" value="Haverford"/>
+<column name="street" value="78 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0078"/>
+<column name="firstname" value="Inki"/>
+<column name="lastname" value="Haverford"/>
+<column name="street" value="79 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0079"/>
+<column name="firstname" value="James"/>
+<column name="lastname" value="Haverford"/>
+<column name="street" value="80 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0080"/>
+<column name="firstname" value="Al"/>
+<column name="lastname" value="Ilvedson"/>
+<column name="street" value="81 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0081"/>
+<column name="firstname" value="Bob"/>
+<column name="lastname" value="Ilvedson"/>
+<column name="street" value="82 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0082"/>
+<column name="firstname" value="Charles"/>
+<column name="lastname" value="Ilvedson"/>
+<column name="street" value="83 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0083"/>
+<column name="firstname" value="David"/>
+<column name="lastname" value="Ilvedson"/>
+<column name="street" value="84 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0084"/>
+<column name="firstname" value="Egon"/>
+<column name="lastname" value="Ilvedson"/>
+<column name="street" value="85 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0085"/>
+<column name="firstname" value="Farbood"/>
+<column name="lastname" value="Ilvedson"/>
+<column name="street" value="86 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0086"/>
+<column name="firstname" value="George"/>
+<column name="lastname" value="Ilvedson"/>
+<column name="street" value="87 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0087"/>
+<column name="firstname" value="Hank"/>
+<column name="lastname" value="Ilvedson"/>
+<column name="street" value="88 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0088"/>
+<column name="firstname" value="Inki"/>
+<column name="lastname" value="Ilvedson"/>
+<column name="street" value="89 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0089"/>
+<column name="firstname" value="James"/>
+<column name="lastname" value="Ilvedson"/>
+<column name="street" value="90 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0090"/>
+<column name="firstname" value="Al"/>
+<column name="lastname" value="Jones"/>
+<column name="street" value="91 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0091"/>
+<column name="firstname" value="Bob"/>
+<column name="lastname" value="Jones"/>
+<column name="street" value="92 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0092"/>
+<column name="firstname" value="Charles"/>
+<column name="lastname" value="Jones"/>
+<column name="street" value="93 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0093"/>
+<column name="firstname" value="David"/>
+<column name="lastname" value="Jones"/>
+<column name="street" value="94 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0094"/>
+<column name="firstname" value="Egon"/>
+<column name="lastname" value="Jones"/>
+<column name="street" value="95 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0095"/>
+<column name="firstname" value="Farbood"/>
+<column name="lastname" value="Jones"/>
+<column name="street" value="96 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0096"/>
+<column name="firstname" value="George"/>
+<column name="lastname" value="Jones"/>
+<column name="street" value="97 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0097"/>
+<column name="firstname" value="Hank"/>
+<column name="lastname" value="Jones"/>
+<column name="street" value="98 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0098"/>
+<column name="firstname" value="Inki"/>
+<column name="lastname" value="Jones"/>
+<column name="street" value="99 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+<row>
+<column name="id" value="0099"/>
+<column name="firstname" value="James"/>
+<column name="lastname" value="Jones"/>
+<column name="street" value="100 Any St."/>
+<column name="city" value="Anytown"/>
+<column name="state" value="AL"/>
+<column name="zip" value="22000"/>
+</row>
+</table>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/creation.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:template match="table">
+  <table>
+    <xsl:apply-templates/>
+  </table>
+</xsl:template>
+
+<xsl:template match="row">
+  <row>
+    <xsl:apply-templates/>
+  </row>
+</xsl:template>
+
+<xsl:template match="*">
+  <xsl:element name="column">
+    <xsl:attribute name="name"><xsl:value-of select="name(.)"/></xsl:attribute>
+    <xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute>
+  </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+
+   <first><item>foo</item></first><second><item>baz</item></second><third><item>baz</item></third>
+   <first><item>bar</item></first><second><item>baz</item></second><third><item>baz</item></third>
+
+
+
+    <item>foo</item>
+    <item>bar</item>
+    <item>baz</item>
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,41 @@
+<dgnorm_document>
+<first>
+<item>
+foo
+</item>
+</first>
+<second>
+<item>
+baz
+</item>
+</second>
+<third>
+<item>
+baz
+</item>
+</third>
+<first>
+<item>
+bar
+</item>
+</first>
+<second>
+<item>
+baz
+</item>
+</second>
+<third>
+<item>
+baz
+</item>
+</third>
+<item>
+foo
+</item>
+<item>
+bar
+</item>
+<item>
+baz
+</item>
+</dgnorm_document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<top>
+<refs>
+   <blah ref="foo"/>
+   <blah ref="bar"/>
+</refs>
+
+<glossary>
+    <item name="foo" ref="bar"/>
+    <item name="bar" ref="foo"/>
+    <item name="baz" ref="baz"/>
+</glossary>
+
+</top>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/current.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'> 
+
+  <xsl:output encoding="utf-8"/>
+
+  <xsl:template match="item">
+      <item>
+         <xsl:value-of select="@name"/>
+         
+      </item>
+  </xsl:template>
+
+  <xsl:template match="//blah">
+      <first>
+         <xsl:apply-templates select="//glossary/item[@name=current()/@ref]"/>
+      </first>
+      <second>
+         <xsl:apply-templates select="//glossary/item[@name=./@ref]"/>
+      </second>
+      <third>
+         <xsl:apply-templates select="//glossary/item[@name=@ref]"/>
+      </third>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbgen.pl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbgen.pl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbgen.pl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,43 @@
+#!/usr/bin/perl
+
+$size = shift;
+
+if ($size eq "") 
+{
+    die "usage:  dbgen.pl [size]\n";
+}
+
+ at firstnames = ("Al", "Bob", "Charles", "David", "Egon", "Farbood", 
+               "George", "Hank", "Inki", "James");
+ at lastnames = ("Aranow", "Barker", "Corsetti", "Dershowitz", "Engleman", 
+              "Franklin", "Grice", "Haverford", "Ilvedson", "Jones");
+ at states = ("AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", 
+           "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", 
+           "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", 
+           "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", 
+           "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY");
+
+print "<?xml version=\"1.0\"?>\n";
+print "\n";
+print "<table>\n";
+
+for ($i=0; $i<$size; $i++)
+{
+    $first = $firstnames [$i % 10];
+    $last = $lastnames [($i / 10) % 10];
+    $state = $states [($i / 100) % 50];
+    $zip = 22000 + $i / 5000;
+
+    printf "  <row>\n";
+    printf "    <id>%04d</id>\n", $i;
+    printf "    <firstname>$first</firstname>\n", $i;
+    printf "    <lastname>$last</lastname>\n", $i;
+    printf "    <street>%d Any St.</street>\n", ($i % 100) + 1;
+    printf "    <city>Anytown</city>\n";
+    printf "    <state>$state</state>\n";
+    printf "    <zip>%d</zip>\n", $zip;
+    printf "  </row>\n";
+}
+
+print "</table>\n";
+


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbgen.pl
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,42 @@
+<html>
+<head bgcolor="#ffffff"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
+<body><table border="0">
+<tr><td colspan="2" bgcolor="#000000"><font color="#ffffff">personel record #0432</font></td></tr>
+<tr>
+<td bgcolor="#888888">
+              First Name:
+            </td>
+<td bgcolor="#dddddd">Charles</td>
+</tr>
+<tr>
+<td bgcolor="#888888">
+              Last Name:
+            </td>
+<td bgcolor="#dddddd">Dershowitz</td>
+</tr>
+<tr>
+<td bgcolor="#888888">
+              Street:
+            </td>
+<td bgcolor="#dddddd">33 Any St.</td>
+</tr>
+<tr>
+<td bgcolor="#888888">
+              City:
+            </td>
+<td bgcolor="#dddddd">Anytown</td>
+</tr>
+<tr>
+<td bgcolor="#888888">
+              State:
+            </td>
+<td bgcolor="#dddddd">CA</td>
+</tr>
+<tr>
+<td bgcolor="#888888">
+              Zip
+            </td>
+<td bgcolor="#dddddd">22000</td>
+</tr>
+</table></body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,69 @@
+<html>
+<head bgcolor="#ffffff">
+</head>
+<body>
+<table border="0">
+<tr>
+<td bgcolor="#000000" colspan="2">
+<font color="#ffffff">
+personel
+record
+#0432
+</font>
+</td>
+</tr>
+<tr>
+<td bgcolor="#888888">
+First
+Name:
+</td>
+<td bgcolor="#dddddd">
+Charles
+</td>
+</tr>
+<tr>
+<td bgcolor="#888888">
+Last
+Name:
+</td>
+<td bgcolor="#dddddd">
+Dershowitz
+</td>
+</tr>
+<tr>
+<td bgcolor="#888888">
+Street:
+</td>
+<td bgcolor="#dddddd">
+33
+Any
+St.
+</td>
+</tr>
+<tr>
+<td bgcolor="#888888">
+City:
+</td>
+<td bgcolor="#dddddd">
+Anytown
+</td>
+</tr>
+<tr>
+<td bgcolor="#888888">
+State:
+</td>
+<td bgcolor="#dddddd">
+CA
+</td>
+</tr>
+<tr>
+<td bgcolor="#888888">
+Zip
+</td>
+<td bgcolor="#dddddd">
+22000
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbonerow.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,73 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+  <xsl:output method="html" encoding="utf-8"/>
+
+  <xsl:template match="row[id='0432']">
+    <html>
+      <head bgcolor="#ffffff">
+      </head>
+      <body>
+        <table border="0">
+          <tr>
+            <td colspan="2" bgcolor="#000000">
+              <font color="#ffffff">
+                <xsl:value-of select="concat('personel record #', id)"/>
+              </font>
+            </td>
+          </tr>
+          <tr>
+            <td bgcolor="#888888">
+              First Name:
+            </td>
+            <td bgcolor="#dddddd">
+              <xsl:value-of select="firstname"/>
+            </td>
+          </tr>
+          <tr>
+            <td bgcolor="#888888">
+              Last Name:
+            </td>
+            <td bgcolor="#dddddd">
+              <xsl:value-of select="lastname"/>
+            </td>
+          </tr>
+          <tr>
+            <td bgcolor="#888888">
+              Street:
+            </td>
+            <td bgcolor="#dddddd">
+              <xsl:value-of select="street"/>
+            </td>
+          </tr>
+          <tr>
+            <td bgcolor="#888888">
+              City:
+            </td>
+            <td bgcolor="#dddddd">
+              <xsl:value-of select="city"/>
+            </td>
+          </tr>
+          <tr>
+            <td bgcolor="#888888">
+              State:
+            </td>
+            <td bgcolor="#dddddd">
+              <xsl:value-of select="state"/>
+            </td>
+          </tr>
+          <tr>
+            <td bgcolor="#888888">
+              Zip
+            </td>
+            <td bgcolor="#dddddd">
+              <xsl:value-of select="zip"/>
+            </td>
+          </tr>
+        </table>
+      </body>
+    </html>
+  </xsl:template>
+
+  <xsl:template match="text()"/>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<document><row><first>Al</first><last>Aranow</last></row><row><first>Bob</first><last>Aranow</last></row><row><first>Charles</first><last>Aranow</last></row><row><first>David</first><last>Aranow</last></row><row><first>Egon</first><last>Aranow</last></row><row><first>Farbood</first><last>Aranow</last></row><row><first>George</first><last>Aranow</last></row><row><first>Hank</first><last>Aranow</last></row><row><first>Inki</first><last>Aranow</last></row><row><first>James</first><last>Aranow</last></row><row><first>Al</first><last>Barker</last></row><row><first>Bob</first><last>Barker</last></row><row><first>Charles</first><last>Barker</last></row><row><first>David</first><last>Barker</last></row><row><first>Egon</first><last>Barker</last></row><row><first>Farbood</first><last>Barker</last></row><row><first>George</first><last>Barker</last></row><row><first>Hank</first><last>Barker</last></row><row><first>Inki</first><last>Barker</last></row><row><first>James</first><last>Barker</last></row><row><first>Al</first><last>Corsetti</last></row><row><first>Bob</first><last>Corsetti</last></row><row><first>Charles</first><last>Corsetti</last></row><row><first>David</first><last>Corsetti</last></row><row><first>Egon</first><last>Corsetti</last></row><row><first>Farbood</first><last>Corsetti</last></row><row><first>George</first><last>Corsetti</last></row><row><first>Hank</first><last>Corsetti</last></row><row><first>Inki</first><last>Corsetti</last></row><row><first>James</first><last>Corsetti</last></row><row><first>Al</first><last>Dershowitz</last></row><row><first>Bob</first><last>Dershowitz</last></row><row><first>Charles</first><last>Dershowitz</last></row><row><first>David</first><last>Dershowitz</last></row><row><first>Egon</first><last>Dershowitz</last></row><row><first>Farbood</first><last>Dershowitz</last></row><row><first>George</first><last>Dershowitz</last></row><row><first>Hank</first><last>Dershowitz</last></row><row><first>Inki</first><last>Dershowitz</last></row><row><first>James</first><last>Dershowitz</last></row><row><first>Al</first><last>Engleman</last></row><row><first>Bob</first><last>Engleman</last></row><row><first>Charles</first><last>Engleman</last></row><row><first>David</first><last>Engleman</last></row><row><first>Egon</first><last>Engleman</last></row><row><first>Farbood</first><last>Engleman</last></row><row><first>George</first><last>Engleman</last></row><row><first>Hank</first><last>Engleman</last></row><row><first>Inki</first><last>Engleman</last></row><row><first>James</first><last>Engleman</last></row><row><first>Al</first><last>Franklin</last></row><row><first>Bob</first><last>Franklin</last></row><row><first>Charles</first><last>Franklin</last></row><row><first>David</first><last>Franklin</last></row><row><first>Egon</first><last>Franklin</last></row><row><first>Farbood</first><last>Franklin</last></row><row><first>George</first><last>Franklin</last></row><row><first>Hank</first><last>Franklin</last></row><row><first>Inki</first><last>Franklin</last></row><row><first>James</first><last>Franklin</last></row><row><first>Al</first><last>Grice</last></row><row><first>Bob</first><last>Grice</last></row><row><first>Charles</first><last>Grice</last></row><row><first>David</first><last>Grice</last></row><row><first>Egon</first><last>Grice</last></row><row><first>Farbood</first><last>Grice</last></row><row><first>George</first><last>Grice</last></row><row><first>Hank</first><last>Grice</last></row><row><first>Inki</first><last>Grice</last></row><row><first>James</first><last>Grice</last></row><row><first>Al</first><last>Haverford</last></row><row><first>Bob</first><last>Haverford</last></row><row><first>Charles</first><last>Haverford</last></row><row><first>David</first><last>Haverford</last></row><row><first>Egon</first><last>Haverford</last></row><row><first>Farbood</first><last>Haverford</last></row><row><first>George</first><last>Haverford</last></row><row><first>Hank</first><last>Haverford</last></row><row><first>Inki</first><last>Haverford</last></row><row><first>James</first><last>Haverford</last></row><row><first>Al</first><last>Ilvedson</last></row><row><first>Bob</first><last>Ilvedson</last></row><row><first>Charles</first><last>Ilvedson</last></row><row><first>David</first><last>Ilvedson</last></row><row><first>Egon</first><last>Ilvedson</last></row><row><first>Farbood</first><last>Ilvedson</last></row><row><first>George</first><last>Ilvedson</last></row><row><first>Hank</first><last>Ilvedson</last></row><row><first>Inki</first><last>Ilvedson</last></row><row><first>James</first><last>Ilvedson</last></row><row><first>Al</first><last>Jones</last></row><row><first>Bob</first><last>Jones</last></row><row><first>Charles</first><last>Jones</last></row><row><first>David</first><last>Jones</last></row><row><first>Egon</first><last>Jones</last></row><row><first>Farbood</first><last>Jones</last></row><row><first>George</first><last>Jones</last></row><row><first>Hank</first><last>Jones</last></row><row><first>Inki</first><last>Jones</last></row><row><first>James</first><last>Jones</last></row></document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,802 @@
+<document>
+<row>
+<first>
+Al
+</first>
+<last>
+Aranow
+</last>
+</row>
+<row>
+<first>
+Bob
+</first>
+<last>
+Aranow
+</last>
+</row>
+<row>
+<first>
+Charles
+</first>
+<last>
+Aranow
+</last>
+</row>
+<row>
+<first>
+David
+</first>
+<last>
+Aranow
+</last>
+</row>
+<row>
+<first>
+Egon
+</first>
+<last>
+Aranow
+</last>
+</row>
+<row>
+<first>
+Farbood
+</first>
+<last>
+Aranow
+</last>
+</row>
+<row>
+<first>
+George
+</first>
+<last>
+Aranow
+</last>
+</row>
+<row>
+<first>
+Hank
+</first>
+<last>
+Aranow
+</last>
+</row>
+<row>
+<first>
+Inki
+</first>
+<last>
+Aranow
+</last>
+</row>
+<row>
+<first>
+James
+</first>
+<last>
+Aranow
+</last>
+</row>
+<row>
+<first>
+Al
+</first>
+<last>
+Barker
+</last>
+</row>
+<row>
+<first>
+Bob
+</first>
+<last>
+Barker
+</last>
+</row>
+<row>
+<first>
+Charles
+</first>
+<last>
+Barker
+</last>
+</row>
+<row>
+<first>
+David
+</first>
+<last>
+Barker
+</last>
+</row>
+<row>
+<first>
+Egon
+</first>
+<last>
+Barker
+</last>
+</row>
+<row>
+<first>
+Farbood
+</first>
+<last>
+Barker
+</last>
+</row>
+<row>
+<first>
+George
+</first>
+<last>
+Barker
+</last>
+</row>
+<row>
+<first>
+Hank
+</first>
+<last>
+Barker
+</last>
+</row>
+<row>
+<first>
+Inki
+</first>
+<last>
+Barker
+</last>
+</row>
+<row>
+<first>
+James
+</first>
+<last>
+Barker
+</last>
+</row>
+<row>
+<first>
+Al
+</first>
+<last>
+Corsetti
+</last>
+</row>
+<row>
+<first>
+Bob
+</first>
+<last>
+Corsetti
+</last>
+</row>
+<row>
+<first>
+Charles
+</first>
+<last>
+Corsetti
+</last>
+</row>
+<row>
+<first>
+David
+</first>
+<last>
+Corsetti
+</last>
+</row>
+<row>
+<first>
+Egon
+</first>
+<last>
+Corsetti
+</last>
+</row>
+<row>
+<first>
+Farbood
+</first>
+<last>
+Corsetti
+</last>
+</row>
+<row>
+<first>
+George
+</first>
+<last>
+Corsetti
+</last>
+</row>
+<row>
+<first>
+Hank
+</first>
+<last>
+Corsetti
+</last>
+</row>
+<row>
+<first>
+Inki
+</first>
+<last>
+Corsetti
+</last>
+</row>
+<row>
+<first>
+James
+</first>
+<last>
+Corsetti
+</last>
+</row>
+<row>
+<first>
+Al
+</first>
+<last>
+Dershowitz
+</last>
+</row>
+<row>
+<first>
+Bob
+</first>
+<last>
+Dershowitz
+</last>
+</row>
+<row>
+<first>
+Charles
+</first>
+<last>
+Dershowitz
+</last>
+</row>
+<row>
+<first>
+David
+</first>
+<last>
+Dershowitz
+</last>
+</row>
+<row>
+<first>
+Egon
+</first>
+<last>
+Dershowitz
+</last>
+</row>
+<row>
+<first>
+Farbood
+</first>
+<last>
+Dershowitz
+</last>
+</row>
+<row>
+<first>
+George
+</first>
+<last>
+Dershowitz
+</last>
+</row>
+<row>
+<first>
+Hank
+</first>
+<last>
+Dershowitz
+</last>
+</row>
+<row>
+<first>
+Inki
+</first>
+<last>
+Dershowitz
+</last>
+</row>
+<row>
+<first>
+James
+</first>
+<last>
+Dershowitz
+</last>
+</row>
+<row>
+<first>
+Al
+</first>
+<last>
+Engleman
+</last>
+</row>
+<row>
+<first>
+Bob
+</first>
+<last>
+Engleman
+</last>
+</row>
+<row>
+<first>
+Charles
+</first>
+<last>
+Engleman
+</last>
+</row>
+<row>
+<first>
+David
+</first>
+<last>
+Engleman
+</last>
+</row>
+<row>
+<first>
+Egon
+</first>
+<last>
+Engleman
+</last>
+</row>
+<row>
+<first>
+Farbood
+</first>
+<last>
+Engleman
+</last>
+</row>
+<row>
+<first>
+George
+</first>
+<last>
+Engleman
+</last>
+</row>
+<row>
+<first>
+Hank
+</first>
+<last>
+Engleman
+</last>
+</row>
+<row>
+<first>
+Inki
+</first>
+<last>
+Engleman
+</last>
+</row>
+<row>
+<first>
+James
+</first>
+<last>
+Engleman
+</last>
+</row>
+<row>
+<first>
+Al
+</first>
+<last>
+Franklin
+</last>
+</row>
+<row>
+<first>
+Bob
+</first>
+<last>
+Franklin
+</last>
+</row>
+<row>
+<first>
+Charles
+</first>
+<last>
+Franklin
+</last>
+</row>
+<row>
+<first>
+David
+</first>
+<last>
+Franklin
+</last>
+</row>
+<row>
+<first>
+Egon
+</first>
+<last>
+Franklin
+</last>
+</row>
+<row>
+<first>
+Farbood
+</first>
+<last>
+Franklin
+</last>
+</row>
+<row>
+<first>
+George
+</first>
+<last>
+Franklin
+</last>
+</row>
+<row>
+<first>
+Hank
+</first>
+<last>
+Franklin
+</last>
+</row>
+<row>
+<first>
+Inki
+</first>
+<last>
+Franklin
+</last>
+</row>
+<row>
+<first>
+James
+</first>
+<last>
+Franklin
+</last>
+</row>
+<row>
+<first>
+Al
+</first>
+<last>
+Grice
+</last>
+</row>
+<row>
+<first>
+Bob
+</first>
+<last>
+Grice
+</last>
+</row>
+<row>
+<first>
+Charles
+</first>
+<last>
+Grice
+</last>
+</row>
+<row>
+<first>
+David
+</first>
+<last>
+Grice
+</last>
+</row>
+<row>
+<first>
+Egon
+</first>
+<last>
+Grice
+</last>
+</row>
+<row>
+<first>
+Farbood
+</first>
+<last>
+Grice
+</last>
+</row>
+<row>
+<first>
+George
+</first>
+<last>
+Grice
+</last>
+</row>
+<row>
+<first>
+Hank
+</first>
+<last>
+Grice
+</last>
+</row>
+<row>
+<first>
+Inki
+</first>
+<last>
+Grice
+</last>
+</row>
+<row>
+<first>
+James
+</first>
+<last>
+Grice
+</last>
+</row>
+<row>
+<first>
+Al
+</first>
+<last>
+Haverford
+</last>
+</row>
+<row>
+<first>
+Bob
+</first>
+<last>
+Haverford
+</last>
+</row>
+<row>
+<first>
+Charles
+</first>
+<last>
+Haverford
+</last>
+</row>
+<row>
+<first>
+David
+</first>
+<last>
+Haverford
+</last>
+</row>
+<row>
+<first>
+Egon
+</first>
+<last>
+Haverford
+</last>
+</row>
+<row>
+<first>
+Farbood
+</first>
+<last>
+Haverford
+</last>
+</row>
+<row>
+<first>
+George
+</first>
+<last>
+Haverford
+</last>
+</row>
+<row>
+<first>
+Hank
+</first>
+<last>
+Haverford
+</last>
+</row>
+<row>
+<first>
+Inki
+</first>
+<last>
+Haverford
+</last>
+</row>
+<row>
+<first>
+James
+</first>
+<last>
+Haverford
+</last>
+</row>
+<row>
+<first>
+Al
+</first>
+<last>
+Ilvedson
+</last>
+</row>
+<row>
+<first>
+Bob
+</first>
+<last>
+Ilvedson
+</last>
+</row>
+<row>
+<first>
+Charles
+</first>
+<last>
+Ilvedson
+</last>
+</row>
+<row>
+<first>
+David
+</first>
+<last>
+Ilvedson
+</last>
+</row>
+<row>
+<first>
+Egon
+</first>
+<last>
+Ilvedson
+</last>
+</row>
+<row>
+<first>
+Farbood
+</first>
+<last>
+Ilvedson
+</last>
+</row>
+<row>
+<first>
+George
+</first>
+<last>
+Ilvedson
+</last>
+</row>
+<row>
+<first>
+Hank
+</first>
+<last>
+Ilvedson
+</last>
+</row>
+<row>
+<first>
+Inki
+</first>
+<last>
+Ilvedson
+</last>
+</row>
+<row>
+<first>
+James
+</first>
+<last>
+Ilvedson
+</last>
+</row>
+<row>
+<first>
+Al
+</first>
+<last>
+Jones
+</last>
+</row>
+<row>
+<first>
+Bob
+</first>
+<last>
+Jones
+</last>
+</row>
+<row>
+<first>
+Charles
+</first>
+<last>
+Jones
+</last>
+</row>
+<row>
+<first>
+David
+</first>
+<last>
+Jones
+</last>
+</row>
+<row>
+<first>
+Egon
+</first>
+<last>
+Jones
+</last>
+</row>
+<row>
+<first>
+Farbood
+</first>
+<last>
+Jones
+</last>
+</row>
+<row>
+<first>
+George
+</first>
+<last>
+Jones
+</last>
+</row>
+<row>
+<first>
+Hank
+</first>
+<last>
+Jones
+</last>
+</row>
+<row>
+<first>
+Inki
+</first>
+<last>
+Jones
+</last>
+</row>
+<row>
+<first>
+James
+</first>
+<last>
+Jones
+</last>
+</row>
+</document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/dbtail.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:template match="table">
+  <document>
+    <xsl:apply-templates select="row[1]"/>
+  </document>
+</xsl:template>
+
+<xsl:template match="row">
+  <row>
+    <first>
+      <xsl:value-of select="firstname"/>
+    </first>
+    <last>
+      <xsl:value-of select="lastname"/>
+    </last>
+  </row>
+  <xsl:apply-templates select="following-sibling::row[1]"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/decoy.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/decoy.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/decoy.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,903 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+  <aranow>
+    <id>0000</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0001</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0002</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0003</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0004</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <row6>
+    <id>0005</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row6>
+  <aranow>
+    <id>0006</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0007</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0008</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0009</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <row>
+    <id>0010</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0011</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0012</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0013</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0014</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0015</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0016</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <crazy>
+    <id>0017</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </crazy>
+  <row>
+    <id>0018</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0019</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0020</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0021</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0022</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0023</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0024</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0025</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0026</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0027</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0028</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0029</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0030</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0031</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0032</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0033</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0034</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0035</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0036</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0037</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0038</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0039</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0040</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0041</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0042</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0043</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0044</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0045</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0046</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <crazy>
+    <id>0047</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </crazy>
+  <row>
+    <id>0048</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0049</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0050</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0051</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0052</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0053</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0054</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0055</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0056</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0057</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0058</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0059</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0060</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0061</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0062</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0063</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0064</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0065</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0066</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0067</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0068</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0069</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0070</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0071</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0072</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0073</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0074</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0075</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0076</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <crazy>
+    <id>0077</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </crazy>
+  <row>
+    <id>0078</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0079</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0080</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0081</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0082</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0083</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0084</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0085</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0086</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0087</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0088</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0089</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0090</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <id91>
+    <id>0091</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </id91>
+  <row>
+    <id>0092</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0093</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0094</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0095</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0096</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0097</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0098</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0099</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/decoy.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/decoy.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/decoy.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output encoding="utf-8"/>
+<!-- 
+       decoy stylesheet is same as patterns.xsl, but has lots of decoy patterns 
+       to distract the matching process...
+     -->
+
+  <xsl:template match="decoy" priority="2">
+    <ERROR>
+      <xsl:apply-templates/>
+    </ERROR>
+  </xsl:template>
+  <!--
+  <xsl:template match="*/*/*/*/*">
+    <ERROR/>
+  </xsl:template>
+-->
+  <xsl:template match="decoy2" priority="-100">
+    <ERROR/>
+  </xsl:template>
+  
+  <xsl:template name="decoy">
+    <ERROR/>
+  </xsl:template>
+    
+  <xsl:template match="/decoy/*/*/*/*">
+    <ERROR/>
+  </xsl:template>
+
+  <xsl:template match="/foo/bar/baz/quux">
+    <ERROR/>
+  </xsl:template>
+
+  <xsl:template match="text()[*/../*/../foobar]">
+    <ERROR/>
+  </xsl:template>
+
+  <xsl:template match="foobar[../*/../*/baz]">
+    <ERROR/>
+  </xsl:template>
+
+  <xsl:template match="foobar[3]">
+    <ERROR/>
+  </xsl:template>
+
+  <xsl:template match="foo|bar|baz|quux|metasyntactic|variable|fubar">
+    <ERROR/>
+  </xsl:template>
+
+  <xsl:template match="foobar/table/row/id">
+    <ERROR/>
+  </xsl:template>
+
+  <xsl:template match="table/row[id='abcdefg']" priority="3">
+    <ERROR/>
+  </xsl:template>
+
+  <xsl:template match="text()[contains(.,'decoy')]">
+    <ERROR/>
+  </xsl:template>
+
+
+
+  <xsl:template match="table/row[6]" priority="5">
+    <row6>
+      <xsl:apply-templates/>
+    </row6>
+  </xsl:template>
+
+  <xsl:template match="table/row[id='0091']">
+    <id91>
+      <xsl:apply-templates/>
+    </id91>
+  </xsl:template>
+
+  <xsl:template match="//row[firstname='Egon']">
+    <egon>
+      <xsl:apply-templates/>
+    </egon>
+  </xsl:template>
+
+  <xsl:template match="table//row[*[.='Aranow']]">
+    <aranow>
+      <xsl:apply-templates/>
+    </aranow>
+  </xsl:template>
+
+  <xsl:template match="row" priority="-1">
+    <row>
+      <xsl:apply-templates/>
+    </row>
+  </xsl:template>
+
+  <xsl:template match="row[id mod 3 = 2][following-sibling::row[4]/firstname='Bob']">
+    <crazy>
+      <xsl:apply-templates/>
+    </crazy>
+  </xsl:template>
+
+  <xsl:template match="id|firstname|lastname|street|city|state|zip">
+    <xsl:copy><xsl:value-of select="."/></xsl:copy>
+  </xsl:template>
+
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><found><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element><element/></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></found></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,399 @@
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<found>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element>
+<element/>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</found>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>
+</element>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/depth.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="1"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"><element needle="0"/></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element></element>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,903 @@
+<?xml version="1.0" encoding="utf-8"?>
+<gzyov>
+  <ild>
+    <rw>0000</rw>
+    <urihgmznv>Ny</urihgmznv>
+    <ozhgmznv>Nenabj</ozhgmznv>
+    <hgivvg>1 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0001</rw>
+    <urihgmznv>Obo</urihgmznv>
+    <ozhgmznv>Nenabj</ozhgmznv>
+    <hgivvg>2 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0002</rw>
+    <urihgmznv>Puneyrf</urihgmznv>
+    <ozhgmznv>Nenabj</ozhgmznv>
+    <hgivvg>3 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0003</rw>
+    <urihgmznv>Qnivq</urihgmznv>
+    <ozhgmznv>Nenabj</ozhgmznv>
+    <hgivvg>4 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0004</rw>
+    <urihgmznv>Rtba</urihgmznv>
+    <ozhgmznv>Nenabj</ozhgmznv>
+    <hgivvg>5 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0005</rw>
+    <urihgmznv>Sneobbq</urihgmznv>
+    <ozhgmznv>Nenabj</ozhgmznv>
+    <hgivvg>6 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0006</rw>
+    <urihgmznv>Trbetr</urihgmznv>
+    <ozhgmznv>Nenabj</ozhgmznv>
+    <hgivvg>7 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0007</rw>
+    <urihgmznv>Unax</urihgmznv>
+    <ozhgmznv>Nenabj</ozhgmznv>
+    <hgivvg>8 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0008</rw>
+    <urihgmznv>Vaxv</urihgmznv>
+    <ozhgmznv>Nenabj</ozhgmznv>
+    <hgivvg>9 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0009</rw>
+    <urihgmznv>Wnzrf</urihgmznv>
+    <ozhgmznv>Nenabj</ozhgmznv>
+    <hgivvg>10 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0010</rw>
+    <urihgmznv>Ny</urihgmznv>
+    <ozhgmznv>Onexre</ozhgmznv>
+    <hgivvg>11 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0011</rw>
+    <urihgmznv>Obo</urihgmznv>
+    <ozhgmznv>Onexre</ozhgmznv>
+    <hgivvg>12 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0012</rw>
+    <urihgmznv>Puneyrf</urihgmznv>
+    <ozhgmznv>Onexre</ozhgmznv>
+    <hgivvg>13 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0013</rw>
+    <urihgmznv>Qnivq</urihgmznv>
+    <ozhgmznv>Onexre</ozhgmznv>
+    <hgivvg>14 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0014</rw>
+    <urihgmznv>Rtba</urihgmznv>
+    <ozhgmznv>Onexre</ozhgmznv>
+    <hgivvg>15 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0015</rw>
+    <urihgmznv>Sneobbq</urihgmznv>
+    <ozhgmznv>Onexre</ozhgmznv>
+    <hgivvg>16 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0016</rw>
+    <urihgmznv>Trbetr</urihgmznv>
+    <ozhgmznv>Onexre</ozhgmznv>
+    <hgivvg>17 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0017</rw>
+    <urihgmznv>Unax</urihgmznv>
+    <ozhgmznv>Onexre</ozhgmznv>
+    <hgivvg>18 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0018</rw>
+    <urihgmznv>Vaxv</urihgmznv>
+    <ozhgmznv>Onexre</ozhgmznv>
+    <hgivvg>19 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0019</rw>
+    <urihgmznv>Wnzrf</urihgmznv>
+    <ozhgmznv>Onexre</ozhgmznv>
+    <hgivvg>20 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0020</rw>
+    <urihgmznv>Ny</urihgmznv>
+    <ozhgmznv>Pbefrggv</ozhgmznv>
+    <hgivvg>21 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0021</rw>
+    <urihgmznv>Obo</urihgmznv>
+    <ozhgmznv>Pbefrggv</ozhgmznv>
+    <hgivvg>22 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0022</rw>
+    <urihgmznv>Puneyrf</urihgmznv>
+    <ozhgmznv>Pbefrggv</ozhgmznv>
+    <hgivvg>23 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0023</rw>
+    <urihgmznv>Qnivq</urihgmznv>
+    <ozhgmznv>Pbefrggv</ozhgmznv>
+    <hgivvg>24 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0024</rw>
+    <urihgmznv>Rtba</urihgmznv>
+    <ozhgmznv>Pbefrggv</ozhgmznv>
+    <hgivvg>25 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0025</rw>
+    <urihgmznv>Sneobbq</urihgmznv>
+    <ozhgmznv>Pbefrggv</ozhgmznv>
+    <hgivvg>26 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0026</rw>
+    <urihgmznv>Trbetr</urihgmznv>
+    <ozhgmznv>Pbefrggv</ozhgmznv>
+    <hgivvg>27 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0027</rw>
+    <urihgmznv>Unax</urihgmznv>
+    <ozhgmznv>Pbefrggv</ozhgmznv>
+    <hgivvg>28 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0028</rw>
+    <urihgmznv>Vaxv</urihgmznv>
+    <ozhgmznv>Pbefrggv</ozhgmznv>
+    <hgivvg>29 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0029</rw>
+    <urihgmznv>Wnzrf</urihgmznv>
+    <ozhgmznv>Pbefrggv</ozhgmznv>
+    <hgivvg>30 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0030</rw>
+    <urihgmznv>Ny</urihgmznv>
+    <ozhgmznv>Qrefubjvgm</ozhgmznv>
+    <hgivvg>31 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0031</rw>
+    <urihgmznv>Obo</urihgmznv>
+    <ozhgmznv>Qrefubjvgm</ozhgmznv>
+    <hgivvg>32 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0032</rw>
+    <urihgmznv>Puneyrf</urihgmznv>
+    <ozhgmznv>Qrefubjvgm</ozhgmznv>
+    <hgivvg>33 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0033</rw>
+    <urihgmznv>Qnivq</urihgmznv>
+    <ozhgmznv>Qrefubjvgm</ozhgmznv>
+    <hgivvg>34 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0034</rw>
+    <urihgmznv>Rtba</urihgmznv>
+    <ozhgmznv>Qrefubjvgm</ozhgmznv>
+    <hgivvg>35 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0035</rw>
+    <urihgmznv>Sneobbq</urihgmznv>
+    <ozhgmznv>Qrefubjvgm</ozhgmznv>
+    <hgivvg>36 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0036</rw>
+    <urihgmznv>Trbetr</urihgmznv>
+    <ozhgmznv>Qrefubjvgm</ozhgmznv>
+    <hgivvg>37 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0037</rw>
+    <urihgmznv>Unax</urihgmznv>
+    <ozhgmznv>Qrefubjvgm</ozhgmznv>
+    <hgivvg>38 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0038</rw>
+    <urihgmznv>Vaxv</urihgmznv>
+    <ozhgmznv>Qrefubjvgm</ozhgmznv>
+    <hgivvg>39 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0039</rw>
+    <urihgmznv>Wnzrf</urihgmznv>
+    <ozhgmznv>Qrefubjvgm</ozhgmznv>
+    <hgivvg>40 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0040</rw>
+    <urihgmznv>Ny</urihgmznv>
+    <ozhgmznv>Ratyrzna</ozhgmznv>
+    <hgivvg>41 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0041</rw>
+    <urihgmznv>Obo</urihgmznv>
+    <ozhgmznv>Ratyrzna</ozhgmznv>
+    <hgivvg>42 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0042</rw>
+    <urihgmznv>Puneyrf</urihgmznv>
+    <ozhgmznv>Ratyrzna</ozhgmznv>
+    <hgivvg>43 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0043</rw>
+    <urihgmznv>Qnivq</urihgmznv>
+    <ozhgmznv>Ratyrzna</ozhgmznv>
+    <hgivvg>44 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0044</rw>
+    <urihgmznv>Rtba</urihgmznv>
+    <ozhgmznv>Ratyrzna</ozhgmznv>
+    <hgivvg>45 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0045</rw>
+    <urihgmznv>Sneobbq</urihgmznv>
+    <ozhgmznv>Ratyrzna</ozhgmznv>
+    <hgivvg>46 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0046</rw>
+    <urihgmznv>Trbetr</urihgmznv>
+    <ozhgmznv>Ratyrzna</ozhgmznv>
+    <hgivvg>47 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0047</rw>
+    <urihgmznv>Unax</urihgmznv>
+    <ozhgmznv>Ratyrzna</ozhgmznv>
+    <hgivvg>48 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0048</rw>
+    <urihgmznv>Vaxv</urihgmznv>
+    <ozhgmznv>Ratyrzna</ozhgmznv>
+    <hgivvg>49 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0049</rw>
+    <urihgmznv>Wnzrf</urihgmznv>
+    <ozhgmznv>Ratyrzna</ozhgmznv>
+    <hgivvg>50 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0050</rw>
+    <urihgmznv>Ny</urihgmznv>
+    <ozhgmznv>Senaxyva</ozhgmznv>
+    <hgivvg>51 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0051</rw>
+    <urihgmznv>Obo</urihgmznv>
+    <ozhgmznv>Senaxyva</ozhgmznv>
+    <hgivvg>52 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0052</rw>
+    <urihgmznv>Puneyrf</urihgmznv>
+    <ozhgmznv>Senaxyva</ozhgmznv>
+    <hgivvg>53 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0053</rw>
+    <urihgmznv>Qnivq</urihgmznv>
+    <ozhgmznv>Senaxyva</ozhgmznv>
+    <hgivvg>54 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0054</rw>
+    <urihgmznv>Rtba</urihgmznv>
+    <ozhgmznv>Senaxyva</ozhgmznv>
+    <hgivvg>55 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0055</rw>
+    <urihgmznv>Sneobbq</urihgmznv>
+    <ozhgmznv>Senaxyva</ozhgmznv>
+    <hgivvg>56 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0056</rw>
+    <urihgmznv>Trbetr</urihgmznv>
+    <ozhgmznv>Senaxyva</ozhgmznv>
+    <hgivvg>57 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0057</rw>
+    <urihgmznv>Unax</urihgmznv>
+    <ozhgmznv>Senaxyva</ozhgmznv>
+    <hgivvg>58 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0058</rw>
+    <urihgmznv>Vaxv</urihgmznv>
+    <ozhgmznv>Senaxyva</ozhgmznv>
+    <hgivvg>59 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0059</rw>
+    <urihgmznv>Wnzrf</urihgmznv>
+    <ozhgmznv>Senaxyva</ozhgmznv>
+    <hgivvg>60 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0060</rw>
+    <urihgmznv>Ny</urihgmznv>
+    <ozhgmznv>Tevpr</ozhgmznv>
+    <hgivvg>61 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0061</rw>
+    <urihgmznv>Obo</urihgmznv>
+    <ozhgmznv>Tevpr</ozhgmznv>
+    <hgivvg>62 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0062</rw>
+    <urihgmznv>Puneyrf</urihgmznv>
+    <ozhgmznv>Tevpr</ozhgmznv>
+    <hgivvg>63 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0063</rw>
+    <urihgmznv>Qnivq</urihgmznv>
+    <ozhgmznv>Tevpr</ozhgmznv>
+    <hgivvg>64 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0064</rw>
+    <urihgmznv>Rtba</urihgmznv>
+    <ozhgmznv>Tevpr</ozhgmznv>
+    <hgivvg>65 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0065</rw>
+    <urihgmznv>Sneobbq</urihgmznv>
+    <ozhgmznv>Tevpr</ozhgmznv>
+    <hgivvg>66 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0066</rw>
+    <urihgmznv>Trbetr</urihgmznv>
+    <ozhgmznv>Tevpr</ozhgmznv>
+    <hgivvg>67 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0067</rw>
+    <urihgmznv>Unax</urihgmznv>
+    <ozhgmznv>Tevpr</ozhgmznv>
+    <hgivvg>68 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0068</rw>
+    <urihgmznv>Vaxv</urihgmznv>
+    <ozhgmznv>Tevpr</ozhgmznv>
+    <hgivvg>69 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0069</rw>
+    <urihgmznv>Wnzrf</urihgmznv>
+    <ozhgmznv>Tevpr</ozhgmznv>
+    <hgivvg>70 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0070</rw>
+    <urihgmznv>Ny</urihgmznv>
+    <ozhgmznv>Uniresbeq</ozhgmznv>
+    <hgivvg>71 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0071</rw>
+    <urihgmznv>Obo</urihgmznv>
+    <ozhgmznv>Uniresbeq</ozhgmznv>
+    <hgivvg>72 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0072</rw>
+    <urihgmznv>Puneyrf</urihgmznv>
+    <ozhgmznv>Uniresbeq</ozhgmznv>
+    <hgivvg>73 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0073</rw>
+    <urihgmznv>Qnivq</urihgmznv>
+    <ozhgmznv>Uniresbeq</ozhgmznv>
+    <hgivvg>74 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0074</rw>
+    <urihgmznv>Rtba</urihgmznv>
+    <ozhgmznv>Uniresbeq</ozhgmznv>
+    <hgivvg>75 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0075</rw>
+    <urihgmznv>Sneobbq</urihgmznv>
+    <ozhgmznv>Uniresbeq</ozhgmznv>
+    <hgivvg>76 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0076</rw>
+    <urihgmznv>Trbetr</urihgmznv>
+    <ozhgmznv>Uniresbeq</ozhgmznv>
+    <hgivvg>77 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0077</rw>
+    <urihgmznv>Unax</urihgmznv>
+    <ozhgmznv>Uniresbeq</ozhgmznv>
+    <hgivvg>78 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0078</rw>
+    <urihgmznv>Vaxv</urihgmznv>
+    <ozhgmznv>Uniresbeq</ozhgmznv>
+    <hgivvg>79 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0079</rw>
+    <urihgmznv>Wnzrf</urihgmznv>
+    <ozhgmznv>Uniresbeq</ozhgmznv>
+    <hgivvg>80 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0080</rw>
+    <urihgmznv>Ny</urihgmznv>
+    <ozhgmznv>Vyirqfba</ozhgmznv>
+    <hgivvg>81 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0081</rw>
+    <urihgmznv>Obo</urihgmznv>
+    <ozhgmznv>Vyirqfba</ozhgmznv>
+    <hgivvg>82 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0082</rw>
+    <urihgmznv>Puneyrf</urihgmznv>
+    <ozhgmznv>Vyirqfba</ozhgmznv>
+    <hgivvg>83 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0083</rw>
+    <urihgmznv>Qnivq</urihgmznv>
+    <ozhgmznv>Vyirqfba</ozhgmznv>
+    <hgivvg>84 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0084</rw>
+    <urihgmznv>Rtba</urihgmznv>
+    <ozhgmznv>Vyirqfba</ozhgmznv>
+    <hgivvg>85 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0085</rw>
+    <urihgmznv>Sneobbq</urihgmznv>
+    <ozhgmznv>Vyirqfba</ozhgmznv>
+    <hgivvg>86 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0086</rw>
+    <urihgmznv>Trbetr</urihgmznv>
+    <ozhgmznv>Vyirqfba</ozhgmznv>
+    <hgivvg>87 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0087</rw>
+    <urihgmznv>Unax</urihgmznv>
+    <ozhgmznv>Vyirqfba</ozhgmznv>
+    <hgivvg>88 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0088</rw>
+    <urihgmznv>Vaxv</urihgmznv>
+    <ozhgmznv>Vyirqfba</ozhgmznv>
+    <hgivvg>89 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0089</rw>
+    <urihgmznv>Wnzrf</urihgmznv>
+    <ozhgmznv>Vyirqfba</ozhgmznv>
+    <hgivvg>90 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0090</rw>
+    <urihgmznv>Ny</urihgmznv>
+    <ozhgmznv>Wbarf</ozhgmznv>
+    <hgivvg>91 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0091</rw>
+    <urihgmznv>Obo</urihgmznv>
+    <ozhgmznv>Wbarf</ozhgmznv>
+    <hgivvg>92 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0092</rw>
+    <urihgmznv>Puneyrf</urihgmznv>
+    <ozhgmznv>Wbarf</ozhgmznv>
+    <hgivvg>93 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0093</rw>
+    <urihgmznv>Qnivq</urihgmznv>
+    <ozhgmznv>Wbarf</ozhgmznv>
+    <hgivvg>94 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0094</rw>
+    <urihgmznv>Rtba</urihgmznv>
+    <ozhgmznv>Wbarf</ozhgmznv>
+    <hgivvg>95 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0095</rw>
+    <urihgmznv>Sneobbq</urihgmznv>
+    <ozhgmznv>Wbarf</ozhgmznv>
+    <hgivvg>96 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0096</rw>
+    <urihgmznv>Trbetr</urihgmznv>
+    <ozhgmznv>Wbarf</ozhgmznv>
+    <hgivvg>97 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0097</rw>
+    <urihgmznv>Unax</urihgmznv>
+    <ozhgmznv>Wbarf</ozhgmznv>
+    <hgivvg>98 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0098</rw>
+    <urihgmznv>Vaxv</urihgmznv>
+    <ozhgmznv>Wbarf</ozhgmznv>
+    <hgivvg>99 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+  <ild>
+    <rw>0099</rw>
+    <urihgmznv>Wnzrf</urihgmznv>
+    <ozhgmznv>Wbarf</ozhgmznv>
+    <hgivvg>100 Nal Fg.</hgivvg>
+    <xrgb>Nalgbja</xrgb>
+    <hgzgv>NY</hgzgv>
+    <ark>22000</ark>
+  </ild>
+</gzyov>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2502 @@
+<gzyov>
+<ild>
+<rw>
+0000
+</rw>
+<urihgmznv>
+Ny
+</urihgmznv>
+<ozhgmznv>
+Nenabj
+</ozhgmznv>
+<hgivvg>
+1
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0001
+</rw>
+<urihgmznv>
+Obo
+</urihgmznv>
+<ozhgmznv>
+Nenabj
+</ozhgmznv>
+<hgivvg>
+2
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0002
+</rw>
+<urihgmznv>
+Puneyrf
+</urihgmznv>
+<ozhgmznv>
+Nenabj
+</ozhgmznv>
+<hgivvg>
+3
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0003
+</rw>
+<urihgmznv>
+Qnivq
+</urihgmznv>
+<ozhgmznv>
+Nenabj
+</ozhgmznv>
+<hgivvg>
+4
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0004
+</rw>
+<urihgmznv>
+Rtba
+</urihgmznv>
+<ozhgmznv>
+Nenabj
+</ozhgmznv>
+<hgivvg>
+5
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0005
+</rw>
+<urihgmznv>
+Sneobbq
+</urihgmznv>
+<ozhgmznv>
+Nenabj
+</ozhgmznv>
+<hgivvg>
+6
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0006
+</rw>
+<urihgmznv>
+Trbetr
+</urihgmznv>
+<ozhgmznv>
+Nenabj
+</ozhgmznv>
+<hgivvg>
+7
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0007
+</rw>
+<urihgmznv>
+Unax
+</urihgmznv>
+<ozhgmznv>
+Nenabj
+</ozhgmznv>
+<hgivvg>
+8
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0008
+</rw>
+<urihgmznv>
+Vaxv
+</urihgmznv>
+<ozhgmznv>
+Nenabj
+</ozhgmznv>
+<hgivvg>
+9
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0009
+</rw>
+<urihgmznv>
+Wnzrf
+</urihgmznv>
+<ozhgmznv>
+Nenabj
+</ozhgmznv>
+<hgivvg>
+10
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0010
+</rw>
+<urihgmznv>
+Ny
+</urihgmznv>
+<ozhgmznv>
+Onexre
+</ozhgmznv>
+<hgivvg>
+11
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0011
+</rw>
+<urihgmznv>
+Obo
+</urihgmznv>
+<ozhgmznv>
+Onexre
+</ozhgmznv>
+<hgivvg>
+12
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0012
+</rw>
+<urihgmznv>
+Puneyrf
+</urihgmznv>
+<ozhgmznv>
+Onexre
+</ozhgmznv>
+<hgivvg>
+13
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0013
+</rw>
+<urihgmznv>
+Qnivq
+</urihgmznv>
+<ozhgmznv>
+Onexre
+</ozhgmznv>
+<hgivvg>
+14
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0014
+</rw>
+<urihgmznv>
+Rtba
+</urihgmznv>
+<ozhgmznv>
+Onexre
+</ozhgmznv>
+<hgivvg>
+15
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0015
+</rw>
+<urihgmznv>
+Sneobbq
+</urihgmznv>
+<ozhgmznv>
+Onexre
+</ozhgmznv>
+<hgivvg>
+16
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0016
+</rw>
+<urihgmznv>
+Trbetr
+</urihgmznv>
+<ozhgmznv>
+Onexre
+</ozhgmznv>
+<hgivvg>
+17
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0017
+</rw>
+<urihgmznv>
+Unax
+</urihgmznv>
+<ozhgmznv>
+Onexre
+</ozhgmznv>
+<hgivvg>
+18
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0018
+</rw>
+<urihgmznv>
+Vaxv
+</urihgmznv>
+<ozhgmznv>
+Onexre
+</ozhgmznv>
+<hgivvg>
+19
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0019
+</rw>
+<urihgmznv>
+Wnzrf
+</urihgmznv>
+<ozhgmznv>
+Onexre
+</ozhgmznv>
+<hgivvg>
+20
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0020
+</rw>
+<urihgmznv>
+Ny
+</urihgmznv>
+<ozhgmznv>
+Pbefrggv
+</ozhgmznv>
+<hgivvg>
+21
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0021
+</rw>
+<urihgmznv>
+Obo
+</urihgmznv>
+<ozhgmznv>
+Pbefrggv
+</ozhgmznv>
+<hgivvg>
+22
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0022
+</rw>
+<urihgmznv>
+Puneyrf
+</urihgmznv>
+<ozhgmznv>
+Pbefrggv
+</ozhgmznv>
+<hgivvg>
+23
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0023
+</rw>
+<urihgmznv>
+Qnivq
+</urihgmznv>
+<ozhgmznv>
+Pbefrggv
+</ozhgmznv>
+<hgivvg>
+24
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0024
+</rw>
+<urihgmznv>
+Rtba
+</urihgmznv>
+<ozhgmznv>
+Pbefrggv
+</ozhgmznv>
+<hgivvg>
+25
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0025
+</rw>
+<urihgmznv>
+Sneobbq
+</urihgmznv>
+<ozhgmznv>
+Pbefrggv
+</ozhgmznv>
+<hgivvg>
+26
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0026
+</rw>
+<urihgmznv>
+Trbetr
+</urihgmznv>
+<ozhgmznv>
+Pbefrggv
+</ozhgmznv>
+<hgivvg>
+27
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0027
+</rw>
+<urihgmznv>
+Unax
+</urihgmznv>
+<ozhgmznv>
+Pbefrggv
+</ozhgmznv>
+<hgivvg>
+28
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0028
+</rw>
+<urihgmznv>
+Vaxv
+</urihgmznv>
+<ozhgmznv>
+Pbefrggv
+</ozhgmznv>
+<hgivvg>
+29
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0029
+</rw>
+<urihgmznv>
+Wnzrf
+</urihgmznv>
+<ozhgmznv>
+Pbefrggv
+</ozhgmznv>
+<hgivvg>
+30
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0030
+</rw>
+<urihgmznv>
+Ny
+</urihgmznv>
+<ozhgmznv>
+Qrefubjvgm
+</ozhgmznv>
+<hgivvg>
+31
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0031
+</rw>
+<urihgmznv>
+Obo
+</urihgmznv>
+<ozhgmznv>
+Qrefubjvgm
+</ozhgmznv>
+<hgivvg>
+32
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0032
+</rw>
+<urihgmznv>
+Puneyrf
+</urihgmznv>
+<ozhgmznv>
+Qrefubjvgm
+</ozhgmznv>
+<hgivvg>
+33
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0033
+</rw>
+<urihgmznv>
+Qnivq
+</urihgmznv>
+<ozhgmznv>
+Qrefubjvgm
+</ozhgmznv>
+<hgivvg>
+34
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0034
+</rw>
+<urihgmznv>
+Rtba
+</urihgmznv>
+<ozhgmznv>
+Qrefubjvgm
+</ozhgmznv>
+<hgivvg>
+35
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0035
+</rw>
+<urihgmznv>
+Sneobbq
+</urihgmznv>
+<ozhgmznv>
+Qrefubjvgm
+</ozhgmznv>
+<hgivvg>
+36
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0036
+</rw>
+<urihgmznv>
+Trbetr
+</urihgmznv>
+<ozhgmznv>
+Qrefubjvgm
+</ozhgmznv>
+<hgivvg>
+37
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0037
+</rw>
+<urihgmznv>
+Unax
+</urihgmznv>
+<ozhgmznv>
+Qrefubjvgm
+</ozhgmznv>
+<hgivvg>
+38
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0038
+</rw>
+<urihgmznv>
+Vaxv
+</urihgmznv>
+<ozhgmznv>
+Qrefubjvgm
+</ozhgmznv>
+<hgivvg>
+39
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0039
+</rw>
+<urihgmznv>
+Wnzrf
+</urihgmznv>
+<ozhgmznv>
+Qrefubjvgm
+</ozhgmznv>
+<hgivvg>
+40
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0040
+</rw>
+<urihgmznv>
+Ny
+</urihgmznv>
+<ozhgmznv>
+Ratyrzna
+</ozhgmznv>
+<hgivvg>
+41
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0041
+</rw>
+<urihgmznv>
+Obo
+</urihgmznv>
+<ozhgmznv>
+Ratyrzna
+</ozhgmznv>
+<hgivvg>
+42
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0042
+</rw>
+<urihgmznv>
+Puneyrf
+</urihgmznv>
+<ozhgmznv>
+Ratyrzna
+</ozhgmznv>
+<hgivvg>
+43
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0043
+</rw>
+<urihgmznv>
+Qnivq
+</urihgmznv>
+<ozhgmznv>
+Ratyrzna
+</ozhgmznv>
+<hgivvg>
+44
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0044
+</rw>
+<urihgmznv>
+Rtba
+</urihgmznv>
+<ozhgmznv>
+Ratyrzna
+</ozhgmznv>
+<hgivvg>
+45
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0045
+</rw>
+<urihgmznv>
+Sneobbq
+</urihgmznv>
+<ozhgmznv>
+Ratyrzna
+</ozhgmznv>
+<hgivvg>
+46
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0046
+</rw>
+<urihgmznv>
+Trbetr
+</urihgmznv>
+<ozhgmznv>
+Ratyrzna
+</ozhgmznv>
+<hgivvg>
+47
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0047
+</rw>
+<urihgmznv>
+Unax
+</urihgmznv>
+<ozhgmznv>
+Ratyrzna
+</ozhgmznv>
+<hgivvg>
+48
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0048
+</rw>
+<urihgmznv>
+Vaxv
+</urihgmznv>
+<ozhgmznv>
+Ratyrzna
+</ozhgmznv>
+<hgivvg>
+49
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0049
+</rw>
+<urihgmznv>
+Wnzrf
+</urihgmznv>
+<ozhgmznv>
+Ratyrzna
+</ozhgmznv>
+<hgivvg>
+50
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0050
+</rw>
+<urihgmznv>
+Ny
+</urihgmznv>
+<ozhgmznv>
+Senaxyva
+</ozhgmznv>
+<hgivvg>
+51
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0051
+</rw>
+<urihgmznv>
+Obo
+</urihgmznv>
+<ozhgmznv>
+Senaxyva
+</ozhgmznv>
+<hgivvg>
+52
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0052
+</rw>
+<urihgmznv>
+Puneyrf
+</urihgmznv>
+<ozhgmznv>
+Senaxyva
+</ozhgmznv>
+<hgivvg>
+53
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0053
+</rw>
+<urihgmznv>
+Qnivq
+</urihgmznv>
+<ozhgmznv>
+Senaxyva
+</ozhgmznv>
+<hgivvg>
+54
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0054
+</rw>
+<urihgmznv>
+Rtba
+</urihgmznv>
+<ozhgmznv>
+Senaxyva
+</ozhgmznv>
+<hgivvg>
+55
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0055
+</rw>
+<urihgmznv>
+Sneobbq
+</urihgmznv>
+<ozhgmznv>
+Senaxyva
+</ozhgmznv>
+<hgivvg>
+56
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0056
+</rw>
+<urihgmznv>
+Trbetr
+</urihgmznv>
+<ozhgmznv>
+Senaxyva
+</ozhgmznv>
+<hgivvg>
+57
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0057
+</rw>
+<urihgmznv>
+Unax
+</urihgmznv>
+<ozhgmznv>
+Senaxyva
+</ozhgmznv>
+<hgivvg>
+58
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0058
+</rw>
+<urihgmznv>
+Vaxv
+</urihgmznv>
+<ozhgmznv>
+Senaxyva
+</ozhgmznv>
+<hgivvg>
+59
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0059
+</rw>
+<urihgmznv>
+Wnzrf
+</urihgmznv>
+<ozhgmznv>
+Senaxyva
+</ozhgmznv>
+<hgivvg>
+60
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0060
+</rw>
+<urihgmznv>
+Ny
+</urihgmznv>
+<ozhgmznv>
+Tevpr
+</ozhgmznv>
+<hgivvg>
+61
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0061
+</rw>
+<urihgmznv>
+Obo
+</urihgmznv>
+<ozhgmznv>
+Tevpr
+</ozhgmznv>
+<hgivvg>
+62
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0062
+</rw>
+<urihgmznv>
+Puneyrf
+</urihgmznv>
+<ozhgmznv>
+Tevpr
+</ozhgmznv>
+<hgivvg>
+63
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0063
+</rw>
+<urihgmznv>
+Qnivq
+</urihgmznv>
+<ozhgmznv>
+Tevpr
+</ozhgmznv>
+<hgivvg>
+64
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0064
+</rw>
+<urihgmznv>
+Rtba
+</urihgmznv>
+<ozhgmznv>
+Tevpr
+</ozhgmznv>
+<hgivvg>
+65
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0065
+</rw>
+<urihgmznv>
+Sneobbq
+</urihgmznv>
+<ozhgmznv>
+Tevpr
+</ozhgmznv>
+<hgivvg>
+66
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0066
+</rw>
+<urihgmznv>
+Trbetr
+</urihgmznv>
+<ozhgmznv>
+Tevpr
+</ozhgmznv>
+<hgivvg>
+67
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0067
+</rw>
+<urihgmznv>
+Unax
+</urihgmznv>
+<ozhgmznv>
+Tevpr
+</ozhgmznv>
+<hgivvg>
+68
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0068
+</rw>
+<urihgmznv>
+Vaxv
+</urihgmznv>
+<ozhgmznv>
+Tevpr
+</ozhgmznv>
+<hgivvg>
+69
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0069
+</rw>
+<urihgmznv>
+Wnzrf
+</urihgmznv>
+<ozhgmznv>
+Tevpr
+</ozhgmznv>
+<hgivvg>
+70
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0070
+</rw>
+<urihgmznv>
+Ny
+</urihgmznv>
+<ozhgmznv>
+Uniresbeq
+</ozhgmznv>
+<hgivvg>
+71
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0071
+</rw>
+<urihgmznv>
+Obo
+</urihgmznv>
+<ozhgmznv>
+Uniresbeq
+</ozhgmznv>
+<hgivvg>
+72
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0072
+</rw>
+<urihgmznv>
+Puneyrf
+</urihgmznv>
+<ozhgmznv>
+Uniresbeq
+</ozhgmznv>
+<hgivvg>
+73
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0073
+</rw>
+<urihgmznv>
+Qnivq
+</urihgmznv>
+<ozhgmznv>
+Uniresbeq
+</ozhgmznv>
+<hgivvg>
+74
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0074
+</rw>
+<urihgmznv>
+Rtba
+</urihgmznv>
+<ozhgmznv>
+Uniresbeq
+</ozhgmznv>
+<hgivvg>
+75
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0075
+</rw>
+<urihgmznv>
+Sneobbq
+</urihgmznv>
+<ozhgmznv>
+Uniresbeq
+</ozhgmznv>
+<hgivvg>
+76
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0076
+</rw>
+<urihgmznv>
+Trbetr
+</urihgmznv>
+<ozhgmznv>
+Uniresbeq
+</ozhgmznv>
+<hgivvg>
+77
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0077
+</rw>
+<urihgmznv>
+Unax
+</urihgmznv>
+<ozhgmznv>
+Uniresbeq
+</ozhgmznv>
+<hgivvg>
+78
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0078
+</rw>
+<urihgmznv>
+Vaxv
+</urihgmznv>
+<ozhgmznv>
+Uniresbeq
+</ozhgmznv>
+<hgivvg>
+79
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0079
+</rw>
+<urihgmznv>
+Wnzrf
+</urihgmznv>
+<ozhgmznv>
+Uniresbeq
+</ozhgmznv>
+<hgivvg>
+80
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0080
+</rw>
+<urihgmznv>
+Ny
+</urihgmznv>
+<ozhgmznv>
+Vyirqfba
+</ozhgmznv>
+<hgivvg>
+81
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0081
+</rw>
+<urihgmznv>
+Obo
+</urihgmznv>
+<ozhgmznv>
+Vyirqfba
+</ozhgmznv>
+<hgivvg>
+82
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0082
+</rw>
+<urihgmznv>
+Puneyrf
+</urihgmznv>
+<ozhgmznv>
+Vyirqfba
+</ozhgmznv>
+<hgivvg>
+83
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0083
+</rw>
+<urihgmznv>
+Qnivq
+</urihgmznv>
+<ozhgmznv>
+Vyirqfba
+</ozhgmznv>
+<hgivvg>
+84
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0084
+</rw>
+<urihgmznv>
+Rtba
+</urihgmznv>
+<ozhgmznv>
+Vyirqfba
+</ozhgmznv>
+<hgivvg>
+85
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0085
+</rw>
+<urihgmznv>
+Sneobbq
+</urihgmznv>
+<ozhgmznv>
+Vyirqfba
+</ozhgmznv>
+<hgivvg>
+86
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0086
+</rw>
+<urihgmznv>
+Trbetr
+</urihgmznv>
+<ozhgmznv>
+Vyirqfba
+</ozhgmznv>
+<hgivvg>
+87
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0087
+</rw>
+<urihgmznv>
+Unax
+</urihgmznv>
+<ozhgmznv>
+Vyirqfba
+</ozhgmznv>
+<hgivvg>
+88
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0088
+</rw>
+<urihgmznv>
+Vaxv
+</urihgmznv>
+<ozhgmznv>
+Vyirqfba
+</ozhgmznv>
+<hgivvg>
+89
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0089
+</rw>
+<urihgmznv>
+Wnzrf
+</urihgmznv>
+<ozhgmznv>
+Vyirqfba
+</ozhgmznv>
+<hgivvg>
+90
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0090
+</rw>
+<urihgmznv>
+Ny
+</urihgmznv>
+<ozhgmznv>
+Wbarf
+</ozhgmznv>
+<hgivvg>
+91
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0091
+</rw>
+<urihgmznv>
+Obo
+</urihgmznv>
+<ozhgmznv>
+Wbarf
+</ozhgmznv>
+<hgivvg>
+92
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0092
+</rw>
+<urihgmznv>
+Puneyrf
+</urihgmznv>
+<ozhgmznv>
+Wbarf
+</ozhgmznv>
+<hgivvg>
+93
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0093
+</rw>
+<urihgmznv>
+Qnivq
+</urihgmznv>
+<ozhgmznv>
+Wbarf
+</ozhgmznv>
+<hgivvg>
+94
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0094
+</rw>
+<urihgmznv>
+Rtba
+</urihgmznv>
+<ozhgmznv>
+Wbarf
+</ozhgmznv>
+<hgivvg>
+95
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0095
+</rw>
+<urihgmznv>
+Sneobbq
+</urihgmznv>
+<ozhgmznv>
+Wbarf
+</ozhgmznv>
+<hgivvg>
+96
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0096
+</rw>
+<urihgmznv>
+Trbetr
+</urihgmznv>
+<ozhgmznv>
+Wbarf
+</ozhgmznv>
+<hgivvg>
+97
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0097
+</rw>
+<urihgmznv>
+Unax
+</urihgmznv>
+<ozhgmznv>
+Wbarf
+</ozhgmznv>
+<hgivvg>
+98
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0098
+</rw>
+<urihgmznv>
+Vaxv
+</urihgmznv>
+<ozhgmznv>
+Wbarf
+</ozhgmznv>
+<hgivvg>
+99
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+<ild>
+<rw>
+0099
+</rw>
+<urihgmznv>
+Wnzrf
+</urihgmznv>
+<ozhgmznv>
+Wbarf
+</ozhgmznv>
+<hgivvg>
+100
+Nal
+Fg.
+</hgivvg>
+<xrgb>
+Nalgbja
+</xrgb>
+<hgzgv>
+NY
+</hgzgv>
+<ark>
+22000
+</ark>
+</ild>
+</gzyov>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/encrypt.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output encoding="utf-8"/>
+  <xsl:template match="*">
+    <xsl:element name="{translate(name(.),
+                       'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYXZ',
+                       'zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA')}">
+      <xsl:apply-templates select="node()"/>
+    </xsl:element>
+  </xsl:template>
+
+  <xsl:template match="text()">
+    <!--rot13-->
+    <xsl:value-of select="translate(.,
+                          'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
+                          'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM')"/>
+  </xsl:template>
+
+
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/find.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/find.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/find.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output encoding="utf-8"/>
+  <xsl:template match="element[@needle=1]">
+    <found>
+      <xsl:apply-templates/>
+    </found>
+  </xsl:template>
+
+  <xsl:template match="element">
+    <element>
+      <xsl:apply-templates/>
+    </element>
+  </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+      <person>Al Aranow2Ny000now</person><extra/>
+      <person>Bob Aranow3Obo004now</person><extra/>
+      <person>Charles Aranow7Puneyrf107now</person><extra/>
+      <person>David Aranow5Qnivq3010now</person><extra/>
+      <person>Egon Aranow4Rtba6013now</person><extra/>
+      <person>Farbood Aranow7Sneobbq10016now</person><extra/>
+      <person>George Aranow6Trbetr15019now</person><extra/>
+      <person>Hank Aranow4Unax21022now</person><extra/>
+      <person>Inki Aranow4Vaxv28026now</person><extra/>
+      <person>James Aranow5Wnzrf36029now</person><extra/>
+      <person>Al Barker2Ny45032ker</person><extra>22000er</extra>
+      <person>Bob Barker3Obo55035ker</person><extra>22000er</extra>
+      <person>Charles Barker7Puneyrf66038ker</person><extra>22000er</extra>
+      <person>David Barker5Qnivq78041ker</person><extra>22000er</extra>
+      <person>Egon Barker4Rtba91044ker</person><extra>22000er</extra>
+      <person>Farbood Barker7Sneobbq105048ker</person><extra>22000er</extra>
+      <person>George Barker6Trbetr120051ker</person><extra>22000er</extra>
+      <person>Hank Barker4Unax136154ker</person><extra>22000er</extra>
+      <person>Inki Barker4Vaxv153157ker</person><extra>22000er</extra>
+      <person>James Barker5Wnzrf171160ker</person><extra>22000er</extra>
+      <person>Al Corsetti2Ny190163set</person><extra/>
+      <person>Bob Corsetti3Obo210166set</person><extra/>
+      <person>Charles Corsetti7Puneyrf231170set</person><extra/>
+      <person>David Corsetti5Qnivq253173set</person><extra/>
+      <person>Egon Corsetti4Rtba276176set</person><extra/>
+      <person>Farbood Corsetti7Sneobbq300179set</person><extra/>
+      <person>George Corsetti6Trbetr325182set</person><extra/>
+      <person>Hank Corsetti4Unax351185set</person><extra/>
+      <person>Inki Corsetti4Vaxv378188set</person><extra/>
+      <person>James Corsetti5Wnzrf406192set</person><extra/>
+      <person>Al Dershowitz2Ny435195sho</person><extra/>
+      <person>Bob Dershowitz3Obo465198sho</person><extra/>
+      <person>Charles Dershowitz7Puneyrf4961101sho</person><extra/>
+      <person>David Dershowitz5Qnivq5281104sho</person><extra/>
+      <person>Egon Dershowitz4Rtba5612107sho</person><extra/>
+      <person>Farbood Dershowitz7Sneobbq5952110sho</person><extra/>
+      <person>George Dershowitz6Trbetr6302114sho</person><extra/>
+      <person>Hank Dershowitz4Unax6662117sho</person><extra/>
+      <person>Inki Dershowitz4Vaxv7032120sho</person><extra/>
+      <person>James Dershowitz5Wnzrf7412123sho</person><extra/>
+      <person>Al Engleman2Ny7802126lem</person><extra/>
+      <person>Bob Engleman3Obo8202129lem</person><extra/>
+      <person>Charles Engleman7Puneyrf8612132lem</person><extra/>
+      <person>David Engleman5Qnivq9032136lem</person><extra/>
+      <person>Egon Engleman4Rtba9462139lem</person><extra/>
+      <person>Farbood Engleman7Sneobbq9902142lem</person><extra/>
+      <person>George Engleman6Trbetr10352145lem</person><extra/>
+      <person>Hank Engleman4Unax10812148lem</person><extra/>
+      <person>Inki Engleman4Vaxv11282151lem</person><extra/>
+      <person>James Engleman5Wnzrf11762154lem</person><extra/>
+      <person>Al Franklin2Ny12252158nkl</person><extra>lin</extra>
+      <person>Bob Franklin3Obo12753161nkl</person><extra>lin</extra>
+      <person>Charles Franklin7Puneyrf13263164nkl</person><extra>lin</extra>
+      <person>David Franklin5Qnivq13783167nkl</person><extra>lin</extra>
+      <person>Egon Franklin4Rtba14313170nkl</person><extra>lin</extra>
+      <person>Farbood Franklin7Sneobbq14853173nkl</person><extra>lin</extra>
+      <person>George Franklin6Trbetr15403176nkl</person><extra>lin</extra>
+      <person>Hank Franklin4Unax15963180nkl</person><extra>lin</extra>
+      <person>Inki Franklin4Vaxv16533183nkl</person><extra>lin</extra>
+      <person>James Franklin5Wnzrf17113186nkl</person><extra>lin</extra>
+      <person>Al Grice2Ny17703189ce</person><extra/>
+      <person>Bob Grice3Obo18303192ce</person><extra/>
+      <person>Charles Grice7Puneyrf18913195ce</person><extra/>
+      <person>David Grice5Qnivq19533198ce</person><extra/>
+      <person>Egon Grice4Rtba20163202ce</person><extra/>
+      <person>Farbood Grice7Sneobbq20803205ce</person><extra/>
+      <person>George Grice6Trbetr21453208ce</person><extra/>
+      <person>Hank Grice4Unax22113211ce</person><extra/>
+      <person>Inki Grice4Vaxv22784214ce</person><extra/>
+      <person>James Grice5Wnzrf23464217ce</person><extra/>
+      <person>Al Haverford2Ny24154220erf</person><extra/>
+      <person>Bob Haverford3Obo24854224erf</person><extra/>
+      <person>Charles Haverford7Puneyrf25564227erf</person><extra/>
+      <person>David Haverford5Qnivq26284230erf</person><extra/>
+      <person>Egon Haverford4Rtba27014233erf</person><extra/>
+      <person>Farbood Haverford7Sneobbq27754236erf</person><extra/>
+      <person>George Haverford6Trbetr28504239erf</person><extra/>
+      <person>Hank Haverford4Unax29264242erf</person><extra/>
+      <person>Inki Haverford4Vaxv30034246erf</person><extra/>
+      <person>James Haverford5Wnzrf30814249erf</person><extra/>
+      <person>Al Ilvedson2Ny31604252eds</person><extra/>
+      <person>Bob Ilvedson3Obo32404255eds</person><extra/>
+      <person>Charles Ilvedson7Puneyrf33214258eds</person><extra/>
+      <person>David Ilvedson5Qnivq34034261eds</person><extra/>
+      <person>Egon Ilvedson4Rtba34864264eds</person><extra/>
+      <person>Farbood Ilvedson7Sneobbq35705268eds</person><extra/>
+      <person>George Ilvedson6Trbetr36555271eds</person><extra/>
+      <person>Hank Ilvedson4Unax37415274eds</person><extra/>
+      <person>Inki Ilvedson4Vaxv38285277eds</person><extra/>
+      <person>James Ilvedson5Wnzrf39165280eds</person><extra/>
+      <person>Al Jones2Ny40055283es</person><extra/>
+      <person>Bob Jones3Obo40955286es</person><extra/>
+      <person>Charles Jones7Puneyrf41865290es</person><extra/>
+      <person>David Jones5Qnivq42785293es</person><extra/>
+      <person>Egon Jones4Rtba43715296es</person><extra/>
+      <person>Farbood Jones7Sneobbq44655299es</person><extra/>
+      <person>George Jones6Trbetr45605302es</person><extra/>
+      <person>Hank Jones4Unax46565305es</person><extra/>
+      <person>Inki Jones4Vaxv47535308es</person><extra/>
+      <person>James Jones5Wnzrf48515312es</person><extra/>
+    

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,542 @@
+<dgnorm_document>
+<person>
+Al
+Aranow2Ny000now
+</person>
+<extra/>
+<person>
+Bob
+Aranow3Obo004now
+</person>
+<extra/>
+<person>
+Charles
+Aranow7Puneyrf107now
+</person>
+<extra/>
+<person>
+David
+Aranow5Qnivq3010now
+</person>
+<extra/>
+<person>
+Egon
+Aranow4Rtba6013now
+</person>
+<extra/>
+<person>
+Farbood
+Aranow7Sneobbq10016now
+</person>
+<extra/>
+<person>
+George
+Aranow6Trbetr15019now
+</person>
+<extra/>
+<person>
+Hank
+Aranow4Unax21022now
+</person>
+<extra/>
+<person>
+Inki
+Aranow4Vaxv28026now
+</person>
+<extra/>
+<person>
+James
+Aranow5Wnzrf36029now
+</person>
+<extra/>
+<person>
+Al
+Barker2Ny45032ker
+</person>
+<extra>
+22000er
+</extra>
+<person>
+Bob
+Barker3Obo55035ker
+</person>
+<extra>
+22000er
+</extra>
+<person>
+Charles
+Barker7Puneyrf66038ker
+</person>
+<extra>
+22000er
+</extra>
+<person>
+David
+Barker5Qnivq78041ker
+</person>
+<extra>
+22000er
+</extra>
+<person>
+Egon
+Barker4Rtba91044ker
+</person>
+<extra>
+22000er
+</extra>
+<person>
+Farbood
+Barker7Sneobbq105048ker
+</person>
+<extra>
+22000er
+</extra>
+<person>
+George
+Barker6Trbetr120051ker
+</person>
+<extra>
+22000er
+</extra>
+<person>
+Hank
+Barker4Unax136154ker
+</person>
+<extra>
+22000er
+</extra>
+<person>
+Inki
+Barker4Vaxv153157ker
+</person>
+<extra>
+22000er
+</extra>
+<person>
+James
+Barker5Wnzrf171160ker
+</person>
+<extra>
+22000er
+</extra>
+<person>
+Al
+Corsetti2Ny190163set
+</person>
+<extra/>
+<person>
+Bob
+Corsetti3Obo210166set
+</person>
+<extra/>
+<person>
+Charles
+Corsetti7Puneyrf231170set
+</person>
+<extra/>
+<person>
+David
+Corsetti5Qnivq253173set
+</person>
+<extra/>
+<person>
+Egon
+Corsetti4Rtba276176set
+</person>
+<extra/>
+<person>
+Farbood
+Corsetti7Sneobbq300179set
+</person>
+<extra/>
+<person>
+George
+Corsetti6Trbetr325182set
+</person>
+<extra/>
+<person>
+Hank
+Corsetti4Unax351185set
+</person>
+<extra/>
+<person>
+Inki
+Corsetti4Vaxv378188set
+</person>
+<extra/>
+<person>
+James
+Corsetti5Wnzrf406192set
+</person>
+<extra/>
+<person>
+Al
+Dershowitz2Ny435195sho
+</person>
+<extra/>
+<person>
+Bob
+Dershowitz3Obo465198sho
+</person>
+<extra/>
+<person>
+Charles
+Dershowitz7Puneyrf4961101sho
+</person>
+<extra/>
+<person>
+David
+Dershowitz5Qnivq5281104sho
+</person>
+<extra/>
+<person>
+Egon
+Dershowitz4Rtba5612107sho
+</person>
+<extra/>
+<person>
+Farbood
+Dershowitz7Sneobbq5952110sho
+</person>
+<extra/>
+<person>
+George
+Dershowitz6Trbetr6302114sho
+</person>
+<extra/>
+<person>
+Hank
+Dershowitz4Unax6662117sho
+</person>
+<extra/>
+<person>
+Inki
+Dershowitz4Vaxv7032120sho
+</person>
+<extra/>
+<person>
+James
+Dershowitz5Wnzrf7412123sho
+</person>
+<extra/>
+<person>
+Al
+Engleman2Ny7802126lem
+</person>
+<extra/>
+<person>
+Bob
+Engleman3Obo8202129lem
+</person>
+<extra/>
+<person>
+Charles
+Engleman7Puneyrf8612132lem
+</person>
+<extra/>
+<person>
+David
+Engleman5Qnivq9032136lem
+</person>
+<extra/>
+<person>
+Egon
+Engleman4Rtba9462139lem
+</person>
+<extra/>
+<person>
+Farbood
+Engleman7Sneobbq9902142lem
+</person>
+<extra/>
+<person>
+George
+Engleman6Trbetr10352145lem
+</person>
+<extra/>
+<person>
+Hank
+Engleman4Unax10812148lem
+</person>
+<extra/>
+<person>
+Inki
+Engleman4Vaxv11282151lem
+</person>
+<extra/>
+<person>
+James
+Engleman5Wnzrf11762154lem
+</person>
+<extra/>
+<person>
+Al
+Franklin2Ny12252158nkl
+</person>
+<extra>
+lin
+</extra>
+<person>
+Bob
+Franklin3Obo12753161nkl
+</person>
+<extra>
+lin
+</extra>
+<person>
+Charles
+Franklin7Puneyrf13263164nkl
+</person>
+<extra>
+lin
+</extra>
+<person>
+David
+Franklin5Qnivq13783167nkl
+</person>
+<extra>
+lin
+</extra>
+<person>
+Egon
+Franklin4Rtba14313170nkl
+</person>
+<extra>
+lin
+</extra>
+<person>
+Farbood
+Franklin7Sneobbq14853173nkl
+</person>
+<extra>
+lin
+</extra>
+<person>
+George
+Franklin6Trbetr15403176nkl
+</person>
+<extra>
+lin
+</extra>
+<person>
+Hank
+Franklin4Unax15963180nkl
+</person>
+<extra>
+lin
+</extra>
+<person>
+Inki
+Franklin4Vaxv16533183nkl
+</person>
+<extra>
+lin
+</extra>
+<person>
+James
+Franklin5Wnzrf17113186nkl
+</person>
+<extra>
+lin
+</extra>
+<person>
+Al
+Grice2Ny17703189ce
+</person>
+<extra/>
+<person>
+Bob
+Grice3Obo18303192ce
+</person>
+<extra/>
+<person>
+Charles
+Grice7Puneyrf18913195ce
+</person>
+<extra/>
+<person>
+David
+Grice5Qnivq19533198ce
+</person>
+<extra/>
+<person>
+Egon
+Grice4Rtba20163202ce
+</person>
+<extra/>
+<person>
+Farbood
+Grice7Sneobbq20803205ce
+</person>
+<extra/>
+<person>
+George
+Grice6Trbetr21453208ce
+</person>
+<extra/>
+<person>
+Hank
+Grice4Unax22113211ce
+</person>
+<extra/>
+<person>
+Inki
+Grice4Vaxv22784214ce
+</person>
+<extra/>
+<person>
+James
+Grice5Wnzrf23464217ce
+</person>
+<extra/>
+<person>
+Al
+Haverford2Ny24154220erf
+</person>
+<extra/>
+<person>
+Bob
+Haverford3Obo24854224erf
+</person>
+<extra/>
+<person>
+Charles
+Haverford7Puneyrf25564227erf
+</person>
+<extra/>
+<person>
+David
+Haverford5Qnivq26284230erf
+</person>
+<extra/>
+<person>
+Egon
+Haverford4Rtba27014233erf
+</person>
+<extra/>
+<person>
+Farbood
+Haverford7Sneobbq27754236erf
+</person>
+<extra/>
+<person>
+George
+Haverford6Trbetr28504239erf
+</person>
+<extra/>
+<person>
+Hank
+Haverford4Unax29264242erf
+</person>
+<extra/>
+<person>
+Inki
+Haverford4Vaxv30034246erf
+</person>
+<extra/>
+<person>
+James
+Haverford5Wnzrf30814249erf
+</person>
+<extra/>
+<person>
+Al
+Ilvedson2Ny31604252eds
+</person>
+<extra/>
+<person>
+Bob
+Ilvedson3Obo32404255eds
+</person>
+<extra/>
+<person>
+Charles
+Ilvedson7Puneyrf33214258eds
+</person>
+<extra/>
+<person>
+David
+Ilvedson5Qnivq34034261eds
+</person>
+<extra/>
+<person>
+Egon
+Ilvedson4Rtba34864264eds
+</person>
+<extra/>
+<person>
+Farbood
+Ilvedson7Sneobbq35705268eds
+</person>
+<extra/>
+<person>
+George
+Ilvedson6Trbetr36555271eds
+</person>
+<extra/>
+<person>
+Hank
+Ilvedson4Unax37415274eds
+</person>
+<extra/>
+<person>
+Inki
+Ilvedson4Vaxv38285277eds
+</person>
+<extra/>
+<person>
+James
+Ilvedson5Wnzrf39165280eds
+</person>
+<extra/>
+<person>
+Al
+Jones2Ny40055283es
+</person>
+<extra/>
+<person>
+Bob
+Jones3Obo40955286es
+</person>
+<extra/>
+<person>
+Charles
+Jones7Puneyrf41865290es
+</person>
+<extra/>
+<person>
+David
+Jones5Qnivq42785293es
+</person>
+<extra/>
+<person>
+Egon
+Jones4Rtba43715296es
+</person>
+<extra/>
+<person>
+Farbood
+Jones7Sneobbq44655299es
+</person>
+<extra/>
+<person>
+George
+Jones6Trbetr45605302es
+</person>
+<extra/>
+<person>
+Hank
+Jones4Unax46565305es
+</person>
+<extra/>
+<person>
+Inki
+Jones4Vaxv47535308es
+</person>
+<extra/>
+<person>
+James
+Jones5Wnzrf48515312es
+</person>
+<extra/>
+</dgnorm_document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/functions.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:output encoding="utf-8"/>
+
+  <xsl:template match="table">
+    <xsl:for-each select="row">
+      <xsl:text>
+      </xsl:text>
+      <person>
+        <xsl:value-of select="concat(firstname, ' ', lastname)"/>
+        <xsl:value-of select="string-length(firstname)"/>
+        <!-- rot13 -->
+        <xsl:value-of select="translate(firstname,
+                              'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
+                              'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM')"/>
+        <xsl:value-of select="sum(preceding-sibling::row/id)"/>
+        <xsl:value-of select="floor(id div 17)"/>
+        <xsl:value-of select="ceiling(id*3.1415)"/>
+        <xsl:value-of select="substring(lastname,4,3)"/>
+      </person>
+      <extra>
+        <xsl:if test="starts-with(id,'001')">
+          <xsl:value-of select="zip"/>
+        </xsl:if>
+        <xsl:if test="contains(lastname,'k')">
+          <xsl:value-of select="substring-after(lastname,'k')"/>
+        </xsl:if>
+      </extra>
+
+
+
+    </xsl:for-each>
+    <xsl:text>
+    </xsl:text>
+
+  </xsl:template>
+
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,41 @@
+<html><table border="1">
+<tr>
+<td>Inning</td>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>final</td>
+</tr>
+<tr>
+<td><b>Foobars</b></td>
+<td>0</td>
+<td>1</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>5</td>
+</tr>
+<tr>
+<td><b>Whosits</b></td>
+<td>0</td>
+<td>0</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+<td>0</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+<td>3</td>
+</tr>
+</table></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,113 @@
+<html>
+<table border="1">
+<tr>
+<td>
+Inning
+</td>
+<td>
+1
+</td>
+<td>
+2
+</td>
+<td>
+3
+</td>
+<td>
+4
+</td>
+<td>
+5
+</td>
+<td>
+6
+</td>
+<td>
+7
+</td>
+<td>
+8
+</td>
+<td>
+9
+</td>
+<td>
+final
+</td>
+</tr>
+<tr>
+<td>
+<b>
+Foobars
+</b>
+</td>
+<td>
+0
+</td>
+<td>
+1
+</td>
+<td>
+1
+</td>
+<td>
+0
+</td>
+<td>
+0
+</td>
+<td>
+2
+</td>
+<td>
+0
+</td>
+<td>
+0
+</td>
+<td>
+1
+</td>
+<td>
+5
+</td>
+</tr>
+<tr>
+<td>
+<b>
+Whosits
+</b>
+</td>
+<td>
+0
+</td>
+<td>
+0
+</td>
+<td>
+1
+</td>
+<td>
+0
+</td>
+<td>
+0
+</td>
+<td>
+0
+</td>
+<td>
+2
+</td>
+<td>
+0
+</td>
+<td>
+0
+</td>
+<td>
+3
+</td>
+</tr>
+</table>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+
+<games>
+  <game>
+    <home>Foobars</home>
+    <visitors>Whosits</visitors>
+    <innings>
+      <inning>
+        <num>1</num>
+        <home>
+          <runs>0</runs>
+          <hits>2</hits>
+          <errors>0</errors>
+        </home>
+        <visitors>
+          <runs>0</runs>
+          <hits>1</hits>
+          <errors>0</errors>
+        </visitors>
+      </inning>
+      <inning>
+        <num>2</num>
+        <home>
+          <runs>1</runs>
+          <hits>2</hits>
+          <errors>1</errors>
+        </home>
+        <visitors>
+          <runs>0</runs>
+          <hits>1</hits>
+          <errors>0</errors>
+        </visitors>
+      </inning>
+      <inning>
+        <num>3</num>
+        <home>
+          <runs>1</runs>
+          <hits>3</hits>
+          <errors>0</errors>
+        </home>
+        <visitors>
+          <runs>1</runs>
+          <hits>4</hits>
+          <errors>0</errors>
+        </visitors>
+      </inning>
+      <inning>
+        <num>4</num>
+        <home>
+          <runs>0</runs>
+          <hits>0</hits>
+          <errors>0</errors>
+        </home>
+        <visitors>
+          <runs>0</runs>
+          <hits>1</hits>
+          <errors>0</errors>
+        </visitors>
+      </inning>
+      <inning>
+        <num>5</num>
+        <home>
+          <runs>0</runs>
+          <hits>1</hits>
+          <errors>0</errors>
+        </home>
+        <visitors>
+          <runs>0</runs>
+          <hits>1</hits>
+          <errors>0</errors>
+        </visitors>
+      </inning>
+      <inning>
+        <num>6</num>
+        <home>
+          <runs>2</runs>
+          <hits>5</hits>
+          <errors>0</errors>
+        </home>
+        <visitors>
+          <runs>0</runs>
+          <hits>1</hits>
+          <errors>0</errors>
+        </visitors>
+      </inning>
+      <inning>
+        <num>7</num>
+        <home>
+          <runs>0</runs>
+          <hits>2</hits>
+          <errors>0</errors>
+        </home>
+        <visitors>
+          <runs>2</runs>
+          <hits>4</hits>
+          <errors>0</errors>
+        </visitors>
+      </inning>
+      <inning>
+        <num>8</num>
+        <home>
+          <runs>0</runs>
+          <hits>3</hits>
+          <errors>0</errors>
+        </home>
+        <visitors>
+          <runs>0</runs>
+          <hits>2</hits>
+          <errors>0</errors>
+        </visitors>
+      </inning>
+      <inning>
+        <num>9</num>
+        <home>
+          <runs>1</runs>
+          <hits>2</hits>
+          <errors>0</errors>
+        </home>
+        <visitors>
+          <runs>0</runs>
+          <hits>2</hits>
+          <errors>0</errors>
+        </visitors>
+      </inning>
+    </innings>
+  </game>
+</games>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/game.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,50 @@
+<?xml version="1.0"?> 
+
+<!-- baseball game stats -->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output encoding="utf-8"/>
+<xsl:template match="game">
+  <tr>
+    <td>Inning</td>
+    <xsl:for-each select="innings/inning">
+      <td>
+        <xsl:value-of select="num"/>
+      </td>
+    </xsl:for-each>
+    <td>final</td>
+  </tr>
+  <tr>
+    <td><b><xsl:value-of select="home"/></b></td>
+    <xsl:for-each select="innings/inning">
+      <td>
+        <xsl:value-of select="home/runs"/>
+      </td>
+    </xsl:for-each>
+    <td>
+      <xsl:value-of select="sum(innings/inning/home/runs)"/>
+    </td>
+  </tr>
+  <tr>
+    <td><b><xsl:value-of select="visitors"/></b></td>
+    <xsl:for-each select="innings/inning">
+      <td>
+        <xsl:value-of select="visitors/runs"/>
+      </td>
+    </xsl:for-each>
+    <td>
+      <xsl:value-of select="sum(innings/inning/visitors/runs)"/>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="/">
+  <html>
+    <table border="1">
+      <xsl:apply-templates select="games/game"/>
+    </table>
+  </html>
+
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/gettysburg.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/gettysburg.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/gettysburg.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+
+<text>
+
+Four score and seven years ago our fathers brought forth, upon this
+continent, a new nation, conceived in liberty, and dedicated to the
+proposition that "all men are created equal"
+
+Now we are engaged in a great civil war, testing whether that nation,
+or any nation so conceived, and so dedicated, can long endure. We are
+met on a great battle field of that war. We come to dedicate a portion
+of it, as a final resting place for those who died here, that the
+nation might live. This we may, in all propriety do. But, in a larger
+sense, we can not dedicate -- we can not consecrate -- we can not
+hallow, this ground -- The brave men, living and dead, who struggled
+here, have hallowed it, far above our poor power to add or
+detract. The world will little note, nor long remember what we say
+here; while it can never forget what they did here.
+
+It is rather for us, the living, we here be dedicated to the great
+task remaining before us -- that, from these honored dead we take
+increased devotion to that cause for which they here, gave the last
+full measure of devotion -- that we here highly resolve these dead
+shall not have died in vain; that the nation, shall have a new birth
+of freedom, and that government of the people by the people for the
+people, shall not perish from the earth.
+
+</text>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Sales Results By Division</title>
+</head>
+<body><table border="1">
+<tr>
+<th>Division</th>
+<th>Revenue</th>
+<th>Growth</th>
+<th>Bonus</th>
+</tr>
+<tr>
+<td><em>North</em></td>
+<td>10</td>
+<td>9</td>
+<td>7</td>
+</tr>
+<tr>
+<td><em>West</em></td>
+<td>6</td>
+<td style="color:red">-1.5</td>
+<td>2</td>
+</tr>
+<tr>
+<td><em>South</em></td>
+<td>4</td>
+<td>3</td>
+<td>4</td>
+</tr>
+</table></body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,76 @@
+<html lang="en">
+<head>
+<title>
+Sales
+Results
+By
+Division
+</title>
+</head>
+<body>
+<table border="1">
+<tr>
+<th>
+Division
+</th>
+<th>
+Revenue
+</th>
+<th>
+Growth
+</th>
+<th>
+Bonus
+</th>
+</tr>
+<tr>
+<td>
+<em>
+North
+</em>
+</td>
+<td>
+10
+</td>
+<td>
+9
+</td>
+<td>
+7
+</td>
+</tr>
+<tr>
+<td>
+<em>
+West
+</em>
+</td>
+<td>
+6
+</td>
+<td style="color:red">
+-1.5
+</td>
+<td>
+2
+</td>
+</tr>
+<tr>
+<td>
+<em>
+South
+</em>
+</td>
+<td>
+4
+</td>
+<td>
+3
+</td>
+<td>
+4
+</td>
+</tr>
+</table>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<sales>
+
+<division id="North">
+<revenue>10</revenue>
+<growth>9</growth>
+<bonus>7</bonus>
+</division>
+
+<division id="South">
+<revenue>4</revenue>
+<growth>3</growth>
+<bonus>4</bonus>
+</division>
+
+<division id="West">
+<revenue>6</revenue>
+<growth>-1.5</growth>
+<bonus>2</bonus>
+</division>
+
+</sales>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/html.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,44 @@
+
+<html xsl:version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+lang="en">
+<head>
+<title>Sales Results By Division</title>
+</head>
+<body>
+<table border="1">
+<tr>
+<th>Division</th>
+<th>Revenue</th>
+<th>Growth</th>
+<th>Bonus</th>
+</tr>
+<xsl:for-each select="sales/division">
+<!-- order the result by revenue -->
+<xsl:sort select="revenue"
+data-type="number"
+order="descending"/>
+<tr>
+<td>
+<em><xsl:value-of select="@id"/></em>
+</td>
+<td>
+<xsl:value-of select="revenue"/>
+</td>
+<td>
+<!-- highlight negative growth in red -->
+<xsl:if test="growth &lt; 0">
+<xsl:attribute name="style">
+<xsl:text>color:red</xsl:text>
+</xsl:attribute>
+</xsl:if>
+<xsl:value-of select="growth"/>
+</td>
+<td>
+<xsl:value-of select="bonus"/>
+</td>
+</tr>
+</xsl:for-each>
+</table>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9003 @@
+<?xml version="1.0" encoding="utf-8"?>
+<table>
+  <row>
+    <id>0000</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0001</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0002</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0003</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0004</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0005</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0006</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0007</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0008</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0009</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0010</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0011</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0012</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0013</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0014</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0015</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0016</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0017</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0018</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0019</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0020</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0021</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0022</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0023</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0024</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0025</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0026</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0027</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0028</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0029</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0030</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0031</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0032</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0033</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0034</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0035</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0036</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0037</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0038</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0039</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0040</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0041</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0042</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0043</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0044</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0045</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0046</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0047</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0048</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0049</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0050</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0051</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0052</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0053</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0054</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0055</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0056</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0057</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0058</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0059</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0060</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0061</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0062</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0063</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0064</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0065</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0066</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0067</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0068</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0069</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0070</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0071</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0072</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0073</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0074</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0075</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0076</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0077</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0078</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0079</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0080</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0081</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0082</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0083</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0084</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0085</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0086</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0087</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0088</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0089</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0090</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0091</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0092</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0093</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0094</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0095</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0096</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0097</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0098</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0099</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0100</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0101</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0102</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0103</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0104</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0105</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0106</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0107</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0108</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0109</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0110</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0111</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0112</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0113</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0114</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0115</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0116</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0117</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0118</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0119</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0120</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0121</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0122</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0123</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0124</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0125</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0126</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0127</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0128</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0129</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0130</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0131</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0132</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0133</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0134</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0135</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0136</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0137</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0138</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0139</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0140</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0141</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0142</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0143</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0144</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0145</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0146</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0147</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0148</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0149</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0150</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0151</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0152</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0153</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0154</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0155</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0156</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0157</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0158</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0159</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0160</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0161</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0162</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0163</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0164</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0165</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0166</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0167</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0168</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0169</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0170</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0171</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0172</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0173</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0174</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0175</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0176</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0177</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0178</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0179</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0180</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0181</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0182</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0183</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0184</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0185</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0186</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0187</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0188</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0189</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0190</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0191</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0192</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0193</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0194</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0195</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0196</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0197</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0198</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0199</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0200</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0201</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0202</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0203</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0204</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0205</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0206</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0207</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0208</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0209</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0210</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0211</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0212</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0213</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0214</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0215</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0216</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0217</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0218</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0219</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0220</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0221</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0222</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0223</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0224</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0225</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0226</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0227</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0228</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0229</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0230</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0231</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0232</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0233</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0234</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0235</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0236</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0237</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0238</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0239</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0240</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0241</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0242</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0243</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0244</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0245</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0246</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0247</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0248</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0249</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0250</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0251</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0252</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0253</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0254</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0255</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0256</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0257</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0258</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0259</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0260</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0261</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0262</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0263</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0264</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0265</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0266</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0267</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0268</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0269</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0270</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0271</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0272</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0273</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0274</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0275</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0276</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0277</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0278</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0279</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0280</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0281</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0282</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0283</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0284</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0285</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0286</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0287</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0288</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0289</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0290</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0291</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0292</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0293</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0294</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0295</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0296</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0297</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0298</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0299</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0300</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0301</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0302</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0303</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0304</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0305</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0306</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0307</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0308</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0309</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0310</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0311</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0312</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0313</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0314</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0315</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0316</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0317</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0318</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0319</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0320</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0321</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0322</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0323</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0324</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0325</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0326</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0327</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0328</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0329</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0330</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0331</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0332</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0333</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0334</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0335</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0336</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0337</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0338</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0339</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0340</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0341</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0342</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0343</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0344</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0345</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0346</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0347</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0348</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0349</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0350</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0351</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0352</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0353</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0354</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0355</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0356</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0357</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0358</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0359</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0360</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0361</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0362</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0363</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0364</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0365</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0366</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0367</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0368</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0369</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0370</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0371</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0372</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0373</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0374</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0375</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0376</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0377</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0378</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0379</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0380</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0381</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0382</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0383</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0384</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0385</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0386</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0387</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0388</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0389</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0390</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0391</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0392</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0393</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0394</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0395</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0396</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0397</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0398</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0399</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0400</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0401</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0402</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0403</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0404</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0405</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0406</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0407</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0408</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0409</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0410</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0411</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0412</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0413</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0414</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0415</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0416</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0417</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0418</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0419</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0420</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0421</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0422</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0423</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0424</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0425</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0426</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0427</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0428</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0429</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0430</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0431</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0432</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0433</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0434</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0435</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0436</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0437</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0438</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0439</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0440</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0441</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0442</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0443</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0444</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0445</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0446</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0447</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0448</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0449</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0450</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0451</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0452</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0453</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0454</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0455</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0456</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0457</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0458</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0459</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0460</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0461</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0462</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0463</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0464</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0465</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0466</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0467</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0468</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0469</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0470</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0471</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0472</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0473</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0474</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0475</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0476</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0477</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0478</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0479</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0480</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0481</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0482</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0483</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0484</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0485</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0486</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0487</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0488</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0489</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0490</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0491</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0492</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0493</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0494</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0495</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0496</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0497</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0498</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0499</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0500</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0501</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0502</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0503</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0504</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0505</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0506</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0507</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0508</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0509</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0510</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0511</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0512</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0513</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0514</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0515</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0516</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0517</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0518</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0519</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0520</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0521</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0522</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0523</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0524</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0525</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0526</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0527</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0528</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0529</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0530</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0531</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0532</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0533</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0534</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0535</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0536</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0537</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0538</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0539</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0540</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0541</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0542</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0543</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0544</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0545</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0546</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0547</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0548</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0549</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0550</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0551</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0552</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0553</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0554</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0555</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0556</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0557</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0558</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0559</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0560</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0561</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0562</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0563</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0564</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0565</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0566</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0567</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0568</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0569</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0570</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0571</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0572</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0573</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0574</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0575</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0576</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0577</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0578</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0579</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0580</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0581</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0582</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0583</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0584</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0585</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0586</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0587</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0588</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0589</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0590</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0591</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0592</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0593</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0594</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0595</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0596</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0597</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0598</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0599</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0600</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0601</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0602</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0603</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0604</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0605</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0606</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0607</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0608</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0609</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0610</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0611</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0612</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0613</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0614</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0615</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0616</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0617</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0618</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0619</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0620</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0621</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0622</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0623</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0624</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0625</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0626</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0627</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0628</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0629</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0630</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0631</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0632</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0633</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0634</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0635</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0636</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0637</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0638</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0639</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0640</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0641</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0642</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0643</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0644</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0645</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0646</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0647</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0648</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0649</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0650</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0651</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0652</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0653</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0654</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0655</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0656</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0657</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0658</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0659</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0660</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0661</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0662</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0663</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0664</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0665</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0666</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0667</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0668</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0669</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0670</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0671</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0672</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0673</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0674</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0675</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0676</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0677</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0678</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0679</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0680</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0681</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0682</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0683</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0684</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0685</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0686</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0687</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0688</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0689</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0690</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0691</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0692</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0693</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0694</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0695</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0696</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0697</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0698</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0699</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0700</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0701</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0702</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0703</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0704</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0705</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0706</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0707</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0708</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0709</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0710</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0711</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0712</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0713</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0714</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0715</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0716</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0717</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0718</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0719</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0720</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0721</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0722</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0723</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0724</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0725</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0726</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0727</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0728</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0729</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0730</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0731</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0732</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0733</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0734</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0735</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0736</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0737</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0738</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0739</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0740</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0741</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0742</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0743</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0744</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0745</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0746</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0747</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0748</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0749</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0750</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0751</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0752</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0753</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0754</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0755</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0756</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0757</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0758</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0759</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0760</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0761</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0762</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0763</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0764</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0765</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0766</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0767</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0768</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0769</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0770</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0771</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0772</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0773</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0774</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0775</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0776</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0777</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0778</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0779</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0780</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0781</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0782</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0783</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0784</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0785</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0786</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0787</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0788</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0789</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0790</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0791</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0792</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0793</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0794</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0795</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0796</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0797</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0798</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0799</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0800</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0801</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0802</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0803</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0804</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0805</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0806</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0807</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0808</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0809</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0810</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0811</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0812</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0813</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0814</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0815</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0816</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0817</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0818</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0819</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0820</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0821</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0822</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0823</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0824</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0825</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0826</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0827</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0828</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0829</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0830</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0831</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0832</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0833</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0834</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0835</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0836</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0837</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0838</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0839</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0840</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0841</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0842</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0843</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0844</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0845</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0846</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0847</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0848</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0849</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0850</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0851</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0852</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0853</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0854</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0855</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0856</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0857</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0858</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0859</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0860</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0861</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0862</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0863</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0864</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0865</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0866</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0867</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0868</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0869</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0870</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0871</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0872</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0873</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0874</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0875</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0876</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0877</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0878</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0879</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0880</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0881</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0882</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0883</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0884</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0885</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0886</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0887</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0888</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0889</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0890</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0891</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0892</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0893</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0894</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0895</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0896</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0897</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0898</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0899</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0900</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0901</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0902</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0903</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0904</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0905</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0906</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0907</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0908</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0909</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0910</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0911</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0912</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0913</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0914</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0915</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0916</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0917</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0918</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0919</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0920</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0921</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0922</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0923</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0924</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0925</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0926</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0927</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0928</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0929</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0930</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0931</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0932</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0933</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0934</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0935</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0936</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0937</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0938</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0939</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0940</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0941</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0942</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0943</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0944</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0945</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0946</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0947</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0948</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0949</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0950</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0951</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0952</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0953</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0954</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0955</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0956</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0957</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0958</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0959</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0960</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0961</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0962</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0963</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0964</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0965</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0966</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0967</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0968</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0969</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0970</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0971</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0972</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0973</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0974</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0975</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0976</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0977</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0978</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0979</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0980</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0981</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0982</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0983</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0984</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0985</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0986</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0987</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0988</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0989</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0990</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0991</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0992</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0993</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0994</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0995</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0996</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0997</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0998</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0999</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row>
+</table>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25002 @@
+<table>
+<row>
+<id>
+0000
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0001
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0002
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0003
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0004
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0005
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0006
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0007
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0008
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0009
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0010
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0011
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0012
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0013
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0014
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0015
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0016
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0017
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0018
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0019
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0020
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0021
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0022
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0023
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0024
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0025
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0026
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0027
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0028
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0029
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0030
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0031
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0032
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0033
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0034
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0035
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0036
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0037
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0038
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0039
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0040
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0041
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0042
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0043
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0044
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0045
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0046
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0047
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0048
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0049
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0050
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0051
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0052
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0053
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0054
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0055
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0056
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0057
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0058
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0059
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0060
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0061
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0062
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0063
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0064
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0065
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0066
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0067
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0068
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0069
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0070
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0071
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0072
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0073
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0074
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0075
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0076
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0077
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0078
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0079
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0080
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0081
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0082
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0083
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0084
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0085
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0086
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0087
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0088
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0089
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0090
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0091
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0092
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0093
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0094
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0095
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0096
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0097
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0098
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0099
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0100
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0101
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0102
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0103
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0104
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0105
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0106
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0107
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0108
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0109
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0110
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0111
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0112
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0113
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0114
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0115
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0116
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0117
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0118
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0119
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0120
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0121
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0122
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0123
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0124
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0125
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0126
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0127
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0128
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0129
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0130
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0131
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0132
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0133
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0134
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0135
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0136
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0137
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0138
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0139
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0140
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0141
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0142
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0143
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0144
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0145
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0146
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0147
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0148
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0149
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0150
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0151
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0152
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0153
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0154
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0155
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0156
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0157
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0158
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0159
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0160
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0161
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0162
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0163
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0164
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0165
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0166
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0167
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0168
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0169
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0170
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0171
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0172
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0173
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0174
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0175
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0176
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0177
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0178
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0179
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0180
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0181
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0182
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0183
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0184
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0185
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0186
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0187
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0188
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0189
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0190
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0191
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0192
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0193
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0194
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0195
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0196
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0197
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0198
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0199
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0200
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0201
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0202
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0203
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0204
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0205
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0206
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0207
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0208
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0209
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0210
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0211
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0212
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0213
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0214
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0215
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0216
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0217
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0218
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0219
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0220
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0221
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0222
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0223
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0224
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0225
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0226
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0227
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0228
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0229
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0230
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0231
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0232
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0233
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0234
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0235
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0236
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0237
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0238
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0239
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0240
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0241
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0242
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0243
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0244
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0245
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0246
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0247
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0248
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0249
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0250
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0251
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0252
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0253
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0254
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0255
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0256
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0257
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0258
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0259
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0260
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0261
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0262
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0263
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0264
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0265
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0266
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0267
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0268
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0269
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0270
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0271
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0272
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0273
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0274
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0275
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0276
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0277
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0278
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0279
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0280
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0281
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0282
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0283
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0284
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0285
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0286
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0287
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0288
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0289
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0290
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0291
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0292
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0293
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0294
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0295
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0296
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0297
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0298
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0299
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0300
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0301
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0302
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0303
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0304
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0305
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0306
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0307
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0308
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0309
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0310
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0311
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0312
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0313
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0314
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0315
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0316
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0317
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0318
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0319
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0320
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0321
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0322
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0323
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0324
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0325
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0326
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0327
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0328
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0329
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0330
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0331
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0332
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0333
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0334
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0335
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0336
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0337
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0338
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0339
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0340
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0341
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0342
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0343
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0344
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0345
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0346
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0347
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0348
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0349
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0350
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0351
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0352
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0353
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0354
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0355
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0356
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0357
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0358
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0359
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0360
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0361
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0362
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0363
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0364
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0365
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0366
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0367
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0368
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0369
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0370
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0371
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0372
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0373
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0374
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0375
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0376
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0377
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0378
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0379
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0380
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0381
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0382
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0383
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0384
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0385
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0386
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0387
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0388
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0389
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0390
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0391
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0392
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0393
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0394
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0395
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0396
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0397
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0398
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0399
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0400
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0401
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0402
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0403
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0404
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0405
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0406
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0407
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0408
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0409
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0410
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0411
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0412
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0413
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0414
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0415
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0416
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0417
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0418
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0419
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0420
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0421
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0422
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0423
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0424
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0425
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0426
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0427
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0428
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0429
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0430
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0431
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0432
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0433
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0434
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0435
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0436
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0437
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0438
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0439
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0440
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0441
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0442
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0443
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0444
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0445
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0446
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0447
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0448
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0449
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0450
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0451
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0452
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0453
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0454
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0455
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0456
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0457
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0458
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0459
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0460
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0461
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0462
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0463
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0464
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0465
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0466
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0467
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0468
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0469
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0470
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0471
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0472
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0473
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0474
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0475
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0476
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0477
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0478
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0479
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0480
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0481
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0482
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0483
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0484
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0485
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0486
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0487
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0488
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0489
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0490
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0491
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0492
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0493
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0494
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0495
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0496
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0497
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0498
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0499
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0500
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0501
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0502
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0503
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0504
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0505
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0506
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0507
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0508
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0509
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0510
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0511
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0512
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0513
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0514
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0515
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0516
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0517
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0518
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0519
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0520
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0521
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0522
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0523
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0524
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0525
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0526
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0527
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0528
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0529
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0530
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0531
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0532
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0533
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0534
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0535
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0536
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0537
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0538
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0539
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0540
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0541
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0542
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0543
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0544
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0545
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0546
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0547
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0548
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0549
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0550
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0551
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0552
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0553
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0554
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0555
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0556
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0557
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0558
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0559
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0560
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0561
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0562
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0563
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0564
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0565
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0566
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0567
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0568
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0569
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0570
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0571
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0572
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0573
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0574
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0575
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0576
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0577
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0578
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0579
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0580
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0581
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0582
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0583
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0584
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0585
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0586
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0587
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0588
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0589
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0590
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0591
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0592
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0593
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0594
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0595
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0596
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0597
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0598
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0599
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0600
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0601
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0602
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0603
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0604
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0605
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0606
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0607
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0608
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0609
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0610
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0611
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0612
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0613
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0614
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0615
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0616
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0617
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0618
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0619
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0620
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0621
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0622
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0623
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0624
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0625
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0626
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0627
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0628
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0629
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0630
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0631
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0632
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0633
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0634
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0635
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0636
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0637
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0638
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0639
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0640
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0641
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0642
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0643
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0644
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0645
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0646
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0647
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0648
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0649
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0650
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0651
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0652
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0653
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0654
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0655
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0656
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0657
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0658
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0659
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0660
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0661
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0662
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0663
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0664
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0665
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0666
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0667
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0668
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0669
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0670
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0671
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0672
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0673
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0674
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0675
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0676
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0677
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0678
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0679
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0680
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0681
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0682
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0683
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0684
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0685
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0686
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0687
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0688
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0689
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0690
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0691
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0692
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0693
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0694
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0695
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0696
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0697
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0698
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0699
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0700
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0701
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0702
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0703
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0704
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0705
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0706
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0707
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0708
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0709
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0710
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0711
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0712
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0713
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0714
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0715
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0716
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0717
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0718
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0719
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0720
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0721
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0722
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0723
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0724
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0725
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0726
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0727
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0728
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0729
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0730
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0731
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0732
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0733
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0734
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0735
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0736
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0737
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0738
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0739
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0740
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0741
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0742
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0743
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0744
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0745
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0746
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0747
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0748
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0749
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0750
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0751
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0752
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0753
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0754
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0755
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0756
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0757
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0758
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0759
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0760
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0761
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0762
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0763
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0764
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0765
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0766
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0767
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0768
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0769
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0770
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0771
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0772
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0773
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0774
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0775
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0776
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0777
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0778
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0779
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0780
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0781
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0782
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0783
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0784
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0785
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0786
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0787
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0788
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0789
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0790
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0791
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0792
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0793
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0794
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0795
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0796
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0797
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0798
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0799
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0800
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0801
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0802
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0803
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0804
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0805
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0806
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0807
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0808
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0809
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0810
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0811
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0812
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0813
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0814
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0815
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0816
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0817
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0818
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0819
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0820
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0821
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0822
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0823
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0824
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0825
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0826
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0827
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0828
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0829
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0830
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0831
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0832
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0833
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0834
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0835
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0836
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0837
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0838
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0839
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0840
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0841
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0842
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0843
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0844
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0845
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0846
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0847
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0848
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0849
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0850
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0851
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0852
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0853
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0854
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0855
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0856
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0857
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0858
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0859
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0860
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0861
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0862
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0863
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0864
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0865
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0866
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0867
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0868
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0869
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0870
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0871
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0872
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0873
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0874
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0875
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0876
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0877
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0878
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0879
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0880
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0881
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0882
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0883
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0884
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0885
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0886
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0887
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0888
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0889
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0890
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0891
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0892
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0893
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0894
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0895
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0896
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0897
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0898
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0899
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0900
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0901
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0902
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0903
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0904
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0905
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0906
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0907
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0908
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0909
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0910
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0911
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0912
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0913
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0914
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0915
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0916
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0917
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0918
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0919
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0920
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0921
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0922
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0923
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0924
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0925
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0926
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0927
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0928
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0929
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0930
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0931
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0932
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0933
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0934
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0935
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0936
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0937
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0938
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0939
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0940
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0941
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0942
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0943
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0944
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0945
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0946
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0947
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0948
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0949
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0950
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0951
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0952
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0953
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0954
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0955
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0956
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0957
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0958
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0959
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0960
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0961
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0962
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0963
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0964
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0965
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0966
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0967
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0968
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0969
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0970
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0971
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0972
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0973
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0974
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0975
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0976
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0977
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0978
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0979
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0980
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0981
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0982
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0983
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0984
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0985
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0986
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0987
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0988
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0989
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0990
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0991
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0992
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0993
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0994
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0995
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0996
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0997
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0998
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0999
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+</table>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?> 
+
+<!-- identity transformation -->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="*">
+  <xsl:copy>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/identity.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?> 
+
+<!-- identity transformation -->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:template match="*">
+  <xsl:copy>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<factory><name>Detroit</name><inventory><item><name>Sprockets</name><quantity>14</quantity></item><item><name>Widgets</name><quantity>11</quantity></item><item><name>Whozits</name><quantity>15</quantity></item><item><name>Whatchamacallems</name><quantity>9</quantity></item><item><name>Grommits</name><quantity>0</quantity></item><item><name>Foobars</name><quantity>12</quantity></item></inventory></factory><factory><name>Boston</name><inventory><item><name>Sprockets</name><quantity>0</quantity></item><item><name>Widgets</name><quantity>32</quantity></item><item><name>Whozits</name><quantity>4</quantity></item><item><name>Whatchamacallems</name><quantity>6</quantity></item><item><name>Grommits</name><quantity>0</quantity></item><item><name>Foobars</name><quantity>8</quantity></item></inventory></factory><factory><name>London</name><inventory><item><name>Sprockets</name><quantity>8</quantity></item><item><name>Widgets</name><quantity>22</quantity></item><item><name>Whozits</name><quantity>0</quantity></item><item><name>Whatchamacallems</name><quantity>18</quantity></item><item><name>Grommits</name><quantity>4</quantity></item><item><name>Foobars</name><quantity>13</quantity></item></inventory></factory><factory><name>New York</name><inventory><item><name>Sprockets</name><quantity>16</quantity></item><item><name>Widgets</name><quantity>3</quantity></item><item><name>Whozits</name><quantity>24</quantity></item><item><name>Whatchamacallems</name><quantity>17</quantity></item><item><name>Grommits</name><quantity>3</quantity></item><item><name>Foobars</name><quantity>6</quantity></item></inventory></factory><factory><name>Paris</name><inventory><item><name>Sprockets</name><quantity>10</quantity></item><item><name>Widgets</name><quantity>0</quantity></item><item><name>Whozits</name><quantity>28</quantity></item><item><name>Whatchamacallems</name><quantity>9</quantity></item><item><name>Grommits</name><quantity>1</quantity></item><item><name>Foobars</name><quantity>1</quantity></item></inventory></factory>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,278 @@
+<dgnorm_document>
+<factory>
+<name>
+Detroit
+</name>
+<inventory>
+<item>
+<name>
+Sprockets
+</name>
+<quantity>
+14
+</quantity>
+</item>
+<item>
+<name>
+Widgets
+</name>
+<quantity>
+11
+</quantity>
+</item>
+<item>
+<name>
+Whozits
+</name>
+<quantity>
+15
+</quantity>
+</item>
+<item>
+<name>
+Whatchamacallems
+</name>
+<quantity>
+9
+</quantity>
+</item>
+<item>
+<name>
+Grommits
+</name>
+<quantity>
+0
+</quantity>
+</item>
+<item>
+<name>
+Foobars
+</name>
+<quantity>
+12
+</quantity>
+</item>
+</inventory>
+</factory>
+<factory>
+<name>
+Boston
+</name>
+<inventory>
+<item>
+<name>
+Sprockets
+</name>
+<quantity>
+0
+</quantity>
+</item>
+<item>
+<name>
+Widgets
+</name>
+<quantity>
+32
+</quantity>
+</item>
+<item>
+<name>
+Whozits
+</name>
+<quantity>
+4
+</quantity>
+</item>
+<item>
+<name>
+Whatchamacallems
+</name>
+<quantity>
+6
+</quantity>
+</item>
+<item>
+<name>
+Grommits
+</name>
+<quantity>
+0
+</quantity>
+</item>
+<item>
+<name>
+Foobars
+</name>
+<quantity>
+8
+</quantity>
+</item>
+</inventory>
+</factory>
+<factory>
+<name>
+London
+</name>
+<inventory>
+<item>
+<name>
+Sprockets
+</name>
+<quantity>
+8
+</quantity>
+</item>
+<item>
+<name>
+Widgets
+</name>
+<quantity>
+22
+</quantity>
+</item>
+<item>
+<name>
+Whozits
+</name>
+<quantity>
+0
+</quantity>
+</item>
+<item>
+<name>
+Whatchamacallems
+</name>
+<quantity>
+18
+</quantity>
+</item>
+<item>
+<name>
+Grommits
+</name>
+<quantity>
+4
+</quantity>
+</item>
+<item>
+<name>
+Foobars
+</name>
+<quantity>
+13
+</quantity>
+</item>
+</inventory>
+</factory>
+<factory>
+<name>
+New
+York
+</name>
+<inventory>
+<item>
+<name>
+Sprockets
+</name>
+<quantity>
+16
+</quantity>
+</item>
+<item>
+<name>
+Widgets
+</name>
+<quantity>
+3
+</quantity>
+</item>
+<item>
+<name>
+Whozits
+</name>
+<quantity>
+24
+</quantity>
+</item>
+<item>
+<name>
+Whatchamacallems
+</name>
+<quantity>
+17
+</quantity>
+</item>
+<item>
+<name>
+Grommits
+</name>
+<quantity>
+3
+</quantity>
+</item>
+<item>
+<name>
+Foobars
+</name>
+<quantity>
+6
+</quantity>
+</item>
+</inventory>
+</factory>
+<factory>
+<name>
+Paris
+</name>
+<inventory>
+<item>
+<name>
+Sprockets
+</name>
+<quantity>
+10
+</quantity>
+</item>
+<item>
+<name>
+Widgets
+</name>
+<quantity>
+0
+</quantity>
+</item>
+<item>
+<name>
+Whozits
+</name>
+<quantity>
+28
+</quantity>
+</item>
+<item>
+<name>
+Whatchamacallems
+</name>
+<quantity>
+9
+</quantity>
+</item>
+<item>
+<name>
+Grommits
+</name>
+<quantity>
+1
+</quantity>
+</item>
+<item>
+<name>
+Foobars
+</name>
+<quantity>
+1
+</quantity>
+</item>
+</inventory>
+</factory>
+</dgnorm_document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,145 @@
+<?xml version="1.0"?>
+
+<table>
+  <tr>
+    <td colspan="2">Detroit</td>
+  </tr>
+  <tr>
+    <td>Sprockets</td>
+    <td>14</td>
+  </tr>
+   <tr>
+    <td>Widgets</td>
+    <td>11</td>
+  </tr>
+  <tr>
+    <td>Whozits</td>
+    <td>15</td>
+  </tr>
+  <tr>
+    <td>Whatchamacallems</td>
+    <td>9</td>
+  </tr>
+  <tr>
+    <td>Grommits</td>
+    <td>0</td>
+  </tr>
+  <tr>
+    <td>Foobars</td>
+    <td>12</td>
+  </tr>
+
+  <tr>
+    <td colspan="2">Boston</td>
+  </tr>
+  <tr>
+    <td>Sprockets</td>
+    <td>0</td>
+  </tr>
+   <tr>
+    <td>Widgets</td>
+    <td>32</td>
+  </tr>
+  <tr>
+    <td>Whozits</td>
+    <td>4</td>
+  </tr>
+  <tr>
+    <td>Whatchamacallems</td>
+    <td>6</td>
+  </tr>
+  <tr>
+    <td>Grommits</td>
+    <td>0</td>
+  </tr>
+  <tr>
+    <td>Foobars</td>
+    <td>8</td>
+  </tr>
+
+  <tr>
+    <td colspan="2">London</td>
+  </tr>
+  <tr>
+    <td>Sprockets</td>
+    <td>8</td>
+  </tr>
+   <tr>
+    <td>Widgets</td>
+    <td>22</td>
+  </tr>
+  <tr>
+    <td>Whozits</td>
+    <td>0</td>
+  </tr>
+  <tr>
+    <td>Whatchamacallems</td>
+    <td>18</td>
+  </tr>
+  <tr>
+    <td>Grommits</td>
+    <td>4</td>
+  </tr>
+  <tr>
+    <td>Foobars</td>
+    <td>13</td>
+  </tr>
+
+  <tr>
+    <td colspan="2">New York</td>
+  </tr>
+  <tr>
+    <td>Sprockets</td>
+    <td>16</td>
+  </tr>
+   <tr>
+    <td>Widgets</td>
+    <td>3</td>
+  </tr>
+  <tr>
+    <td>Whozits</td>
+    <td>24</td>
+  </tr>
+  <tr>
+    <td>Whatchamacallems</td>
+    <td>17</td>
+  </tr>
+  <tr>
+    <td>Grommits</td>
+    <td>3</td>
+  </tr>
+  <tr>
+    <td>Foobars</td>
+    <td>6</td>
+  </tr>
+
+  <tr>
+    <td colspan="2">Paris</td>
+  </tr>
+  <tr>
+    <td>Sprockets</td>
+    <td>10</td>
+  </tr>
+   <tr>
+    <td>Widgets</td>
+    <td>0</td>
+  </tr>
+  <tr>
+    <td>Whozits</td>
+    <td>28</td>
+  </tr>
+  <tr>
+    <td>Whatchamacallems</td>
+    <td>9</td>
+  </tr>
+  <tr>
+    <td>Grommits</td>
+    <td>1</td>
+  </tr>
+  <tr>
+    <td>Foobars</td>
+    <td>1</td>
+  </tr>
+  
+</table>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/inventory.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,35 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:template match="tr">
+  <xsl:choose>
+    <xsl:when test='td[@colspan="2"]'/>
+    <xsl:otherwise>
+      <item>
+        <name><xsl:value-of select="td[1]"/></name>
+        <quantity><xsl:value-of select="td[2]"/></quantity>
+      </item>
+      <xsl:apply-templates select="following-sibling::tr[1]"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+
+<xsl:template match="table">
+  <xsl:for-each select='tr[td[1][@colspan="2"]]'>
+    <factory>
+      <name><xsl:value-of select="td[1]"/></name>
+      <inventory>
+        <xsl:apply-templates select="following-sibling::tr[1]"/>
+      </inventory>
+    </factory>
+  </xsl:for-each>
+</xsl:template>
+
+</xsl:stylesheet>
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+
+  <measurement unit="in">12362180</measurement>
+  <measurement unit="ft">521.6472</measurement>
+  <measurement unit="yd">276683.33</measurement>
+  <measurement unit="mi">0.0001367014</measurement>
+  <measurement unit="in">1.275588</measurement>
+  <measurement unit="ft">1332004.8</measurement>
+  <measurement unit="yd">95012.3884199</measurement>
+  <measurement unit="mi">0.00250598521</measurement>
+  <measurement unit="in">39370</measurement>
+  <measurement unit="ft">8.612395272</measurement>
+  <measurement unit="yd">0.04702523</measurement>
+  <measurement unit="mi">0.000089353006</measurement>
+  <measurement unit="in">3031490</measurement>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,41 @@
+<dgnorm_document>
+<measurement unit="in">
+12362180
+</measurement>
+<measurement unit="ft">
+521.6472
+</measurement>
+<measurement unit="yd">
+276683.33
+</measurement>
+<measurement unit="mi">
+0.0001367014
+</measurement>
+<measurement unit="in">
+1.275588
+</measurement>
+<measurement unit="ft">
+1332004.8
+</measurement>
+<measurement unit="yd">
+95012.38841989999
+</measurement>
+<measurement unit="mi">
+0.00250598521
+</measurement>
+<measurement unit="in">
+39370
+</measurement>
+<measurement unit="ft">
+8.612395272
+</measurement>
+<measurement unit="yd">
+0.047025229999999994
+</measurement>
+<measurement unit="mi">
+0.000089353006
+</measurement>
+<measurement unit="in">
+3031490
+</measurement>
+</dgnorm_document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<measurements>
+  <measurement fromunit="km" tounit="in">
+	 314
+  </measurement>
+  <measurement fromunit="m" tounit="ft">
+	 159
+  </measurement>
+  <measurement fromunit="km" tounit="yd">
+	 253
+  </measurement>
+  <measurement fromunit="cm" tounit="mi">
+	 22
+  </measurement>
+  <measurement fromunit="mm" tounit="in">
+	 32.4
+  </measurement>
+  <measurement fromunit="km" tounit="ft">
+	 406
+  </measurement>
+  <measurement fromunit="m" tounit="yd">
+	 86879.59
+  </measurement>
+  <measurement fromunit="m" tounit="mi">
+	 4.033
+  </measurement>
+  <measurement fromunit="km" tounit="in">
+	 1.0
+  </measurement>
+  <measurement fromunit="mm" tounit="ft">
+	 2625.09
+  </measurement>
+  <measurement fromunit="cm" tounit="yd">
+	 4.3
+  </measurement>
+  <measurement fromunit="cm" tounit="mi">
+	 14.38
+  </measurement>
+  <measurement fromunit="km" tounit="in">
+	 77
+  </measurement>
+</measurements>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/metric.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,43 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output method="html" encoding="utf-8"/>
+
+
+  <xsl:template match="measurement">
+    <xsl:variable name="m">
+      <xsl:choose>
+        <xsl:when test="@fromunit='km'">
+          <xsl:value-of select=". * 1000"/>
+        </xsl:when>
+        <xsl:when test="@fromunit='m'">
+          <xsl:value-of select="."/>
+        </xsl:when>
+        <xsl:when test="@fromunit='cm'">
+          <xsl:value-of select=". * 0.01"/>
+        </xsl:when>
+        <xsl:when test="@fromunit='mm'">
+          <xsl:value-of select=". * 0.001"/>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:variable>
+
+    <measurement unit="{@tounit}">
+      <xsl:choose>
+        <xsl:when test="@tounit='mi'">
+          <xsl:value-of select="0.00062137 * $m"/>
+        </xsl:when>
+        <xsl:when test="@tounit='yd'">
+          <xsl:value-of select="1.09361 * $m"/>
+        </xsl:when>
+        <xsl:when test="@tounit='ft'">
+          <xsl:value-of select="3.2808 * $m"/>
+        </xsl:when>
+        <xsl:when test="@tounit='in'">
+        <xsl:value-of select="39.37 * $m"/>
+      </xsl:when>
+    </xsl:choose>
+    </measurement>
+
+
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,70 @@
+
+ONE 22
+TWO 0,00,22
+THREE %2200.00
+FOUR ?22000.00
+FIVE 00,022
+SIX abc22.00123
+SEVEN -22
+EIGHT -22
+NINE -22
+
+ONE 22.22
+TWO 0,00,22.22
+THREE %2222.00
+FOUR ?22220.00
+FIVE 00,022.22
+SIX abc22.22123
+SEVEN -22
+EIGHT -22
+NINE -22
+
+ONE 1,23.46
+TWO 0,01,23.46
+THREE %12345.60
+FOUR ?123456.00
+FIVE 00,123.46
+SIX abc123.46123
+SEVEN -123
+EIGHT -123
+NINE -123
+
+ONE -7,77,77.78
+TWO -7,77,77.78
+THREE -%7777777.78
+FOUR -?77777777.77
+FIVE -77,777.78
+SIX -abc77777.78123
+SEVEN 77778
+EIGHT --77778
+NINE --77778
+
+ONE -61,23.03
+TWO -0,61,23.03
+THREE -%612303.00
+FOUR -?6123030.00
+FIVE -06,123.03
+SIX -abc6123.03123
+SEVEN 6123
+EIGHT --6123
+NINE --6123
+
+ONE 00
+TWO 0,00,00
+THREE %0.00
+FOUR ?0.00
+FIVE 00,000
+SIX abc0.00123
+SEVEN -0
+EIGHT -0
+NINE -0
+
+ONE 00
+TWO 0,00,00
+THREE %0.00
+FOUR ?0.00
+FIVE 00,000
+SIX abc0.00123
+SEVEN -0
+EIGHT -0
+NINE -0

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<numbertest>
+<number>22</number>
+<number>22.22</number>
+<number>123.456</number>
+<number>-77777.77777</number>
+<number>-6123.03</number>
+<number>0.0</number>
+<number>-0.0</number>
+</numbertest>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/number.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,49 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:output method="text" encoding="utf-8"/>
+
+<xsl:decimal-format name="default"/>
+
+<xsl:decimal-format name="funky" 
+  decimal-separator="&amp;" 
+  grouping-separator="/"
+  infinity="unfunity"
+  minus-sign="_"
+  NaN="(c'est nes pas un nombre)"
+  percent="@"
+  per-mille="!"
+  zero-digit="x"
+  digit="#"
+  pattern-separator=";"/> 
+
+<xsl:decimal-format name="dumb" digit="@" pattern-separator="R"/>
+
+<xsl:template match="numbertest">
+<xsl:apply-templates select="number"/>
+</xsl:template>
+
+<xsl:template match="number">
+<xsl:text>
+ONE </xsl:text><xsl:value-of select="format-number(., '##,##,00.##')"/>
+<xsl:text>
+TWO </xsl:text><xsl:value-of select="format-number(., '####000,00.##;000.00000')"/>
+<xsl:text>
+THREE </xsl:text><xsl:value-of select="format-number(., '%##0.00')"/>
+<xsl:text>
+FOUR </xsl:text><xsl:value-of select="format-number(., '?###0.00')"/>
+<xsl:text>
+FIVE </xsl:text><xsl:value-of select="format-number(., '##,##00,000.##;-000000000.0')"/>
+<xsl:text>
+SIX </xsl:text><xsl:value-of select="format-number(., 'abc0.00123')"/>
+<xsl:text>
+SEVEN </xsl:text><xsl:value-of select="format-number(., '-0;0')"/>
+<xsl:text>
+EIGHT </xsl:text><xsl:value-of select="format-number(., '-0;-0')"/>
+<xsl:text>
+NINE </xsl:text><xsl:value-of select="format-number(., '-0')"/>
+<xsl:text>
+</xsl:text>
+</xsl:template>
+
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TOP>
+   <A>1</A>
+   <B>2</B>
+   <C>3</C>
+   4
+   5
+   
+     6
+     <D>7</D>
+     8
+     9
+   
+   <LAST>10</LAST>
+</TOP>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<TOP>
+<A>
+1
+</A>
+<B>
+2
+</B>
+<C>
+3
+</C>
+4
+5
+6
+<D>
+7
+</D>
+8
+9
+<LAST>
+10
+</LAST>
+</TOP>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<top>
+   <a>1</a>
+   <b>2</b>
+   <c>3</c>
+   <d>4</d>
+   <e>5</e>
+   <f>
+     <kid>6</kid>
+     <kid>7</kid>
+     <kid>8</kid>
+     <kid>9</kid>
+   </f>
+   <g>10</g>
+</top>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/oddtemplate.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,37 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:template match='top/*[1]'>
+    <A><xsl:value-of select="."/></A>
+</xsl:template>
+
+<xsl:template match='top/*[6]/kid[2]'>
+    <D><xsl:value-of select="."/></D>
+</xsl:template>
+
+
+<xsl:template match='top/*[position()=2]'>
+    <B><xsl:value-of select="."/></B>
+</xsl:template>
+
+<xsl:template match='top/*[position()=3]'>
+    <C><xsl:value-of select="."/></C>
+</xsl:template>
+
+<!-- bug in jclark's xt: "last()=position()" doesn't equal "position()=last()" -->
+
+<xsl:template match='top/*[position()=last()]'>
+    <LAST><xsl:value-of select="."/></LAST>
+</xsl:template>
+
+<xsl:template match='top' priority="1">
+    <TOP>
+       <xsl:apply-templates/>
+    </TOP>
+</xsl:template>
+    
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,903 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+  <aranow>
+    <id>0000</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0001</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0002</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0003</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0004</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <row6>
+    <id>0005</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row6>
+  <aranow>
+    <id>0006</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0007</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0008</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <aranow>
+    <id>0009</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </aranow>
+  <row>
+    <id>0010</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0011</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0012</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0013</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0014</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0015</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0016</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <crazy>
+    <id>0017</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </crazy>
+  <row>
+    <id>0018</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0019</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0020</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0021</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0022</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0023</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0024</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0025</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0026</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0027</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0028</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0029</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0030</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0031</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0032</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0033</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0034</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0035</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0036</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0037</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0038</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0039</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0040</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0041</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0042</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0043</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0044</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0045</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0046</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <crazy>
+    <id>0047</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </crazy>
+  <row>
+    <id>0048</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0049</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0050</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0051</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0052</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0053</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0054</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0055</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0056</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0057</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0058</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0059</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0060</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0061</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0062</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0063</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0064</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0065</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0066</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0067</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0068</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0069</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0070</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0071</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0072</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0073</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0074</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0075</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0076</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <crazy>
+    <id>0077</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </crazy>
+  <row>
+    <id>0078</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0079</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0080</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0081</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0082</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0083</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0084</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0085</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0086</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0087</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0088</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0089</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0090</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <id91>
+    <id>0091</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </id91>
+  <row>
+    <id>0092</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0093</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <egon>
+    <id>0094</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </egon>
+  <row>
+    <id>0095</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0096</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0097</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0098</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+  <row>
+    <id>0099</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2502 @@
+<dgnorm_document>
+<aranow>
+<id>
+0000
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</aranow>
+<aranow>
+<id>
+0001
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</aranow>
+<aranow>
+<id>
+0002
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</aranow>
+<aranow>
+<id>
+0003
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</aranow>
+<aranow>
+<id>
+0004
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</aranow>
+<row6>
+<id>
+0005
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row6>
+<aranow>
+<id>
+0006
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</aranow>
+<aranow>
+<id>
+0007
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</aranow>
+<aranow>
+<id>
+0008
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</aranow>
+<aranow>
+<id>
+0009
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</aranow>
+<row>
+<id>
+0010
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0011
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0012
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0013
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<egon>
+<id>
+0014
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</egon>
+<row>
+<id>
+0015
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0016
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<crazy>
+<id>
+0017
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</crazy>
+<row>
+<id>
+0018
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0019
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0020
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0021
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0022
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0023
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<egon>
+<id>
+0024
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</egon>
+<row>
+<id>
+0025
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0026
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0027
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0028
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0029
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0030
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0031
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0032
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0033
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<egon>
+<id>
+0034
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</egon>
+<row>
+<id>
+0035
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0036
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0037
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0038
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0039
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0040
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0041
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0042
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0043
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<egon>
+<id>
+0044
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</egon>
+<row>
+<id>
+0045
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0046
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<crazy>
+<id>
+0047
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</crazy>
+<row>
+<id>
+0048
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0049
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0050
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0051
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0052
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0053
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<egon>
+<id>
+0054
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</egon>
+<row>
+<id>
+0055
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0056
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0057
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0058
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0059
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0060
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0061
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0062
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0063
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<egon>
+<id>
+0064
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</egon>
+<row>
+<id>
+0065
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0066
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0067
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0068
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0069
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0070
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0071
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0072
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0073
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<egon>
+<id>
+0074
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</egon>
+<row>
+<id>
+0075
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0076
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<crazy>
+<id>
+0077
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</crazy>
+<row>
+<id>
+0078
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0079
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0080
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0081
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0082
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0083
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<egon>
+<id>
+0084
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</egon>
+<row>
+<id>
+0085
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0086
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0087
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0088
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0089
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0090
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<id91>
+<id>
+0091
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</id91>
+<row>
+<id>
+0092
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0093
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<egon>
+<id>
+0094
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</egon>
+<row>
+<id>
+0095
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0096
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0097
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0098
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0099
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+</dgnorm_document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/patterns.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:output encoding="utf-8"/>
+
+  <xsl:template match="table/row[6]" priority="5">
+    <row6>
+      <xsl:apply-templates/>
+    </row6>
+  </xsl:template>
+
+  <xsl:template match="table/row[id='0091']">
+    <id91>
+      <xsl:apply-templates/>
+    </id91>
+  </xsl:template>
+
+  <xsl:template match="//row[firstname='Egon']">
+    <egon>
+      <xsl:apply-templates/>
+    </egon>
+  </xsl:template>
+
+  <xsl:template match="table//row[*[.='Aranow']]">
+    <aranow>
+      <xsl:apply-templates/>
+    </aranow>
+  </xsl:template>
+
+  <xsl:template match="row" priority="-1">
+    <row>
+      <xsl:apply-templates/>
+    </row>
+  </xsl:template>
+
+  <xsl:template match="row[id mod 3 = 2][following-sibling::row[4]/firstname='Bob']">
+    <crazy>
+      <xsl:apply-templates/>
+    </crazy>
+  </xsl:template>
+
+  <xsl:template match="id|firstname|lastname|street|city|state|zip">
+    <xsl:copy><xsl:value-of select="."/></xsl:copy>
+  </xsl:template>
+
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3211 @@
+<html>
+<style>
+body      { background-color: #ffffff; }
+.element  { color: #447744; }
+.text     { color: #774444; }
+      </style>
+<body><pre>
+  <span class="element">&lt;table&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0000</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Al</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Aranow</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">1 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0001</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Bob</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Aranow</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">2 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0002</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Charles</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Aranow</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">3 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0003</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">David</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Aranow</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">4 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0004</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Egon</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Aranow</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">5 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0005</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Farbood</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Aranow</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">6 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0006</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">George</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Aranow</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">7 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0007</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Hank</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Aranow</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">8 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0008</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Inki</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Aranow</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">9 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0009</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">James</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Aranow</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">10 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0010</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Al</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Barker</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">11 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0011</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Bob</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Barker</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">12 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0012</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Charles</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Barker</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">13 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0013</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">David</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Barker</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">14 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0014</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Egon</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Barker</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">15 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0015</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Farbood</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Barker</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">16 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0016</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">George</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Barker</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">17 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0017</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Hank</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Barker</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">18 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0018</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Inki</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Barker</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">19 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0019</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">James</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Barker</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">20 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0020</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Al</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Corsetti</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">21 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0021</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Bob</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Corsetti</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">22 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0022</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Charles</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Corsetti</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">23 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0023</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">David</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Corsetti</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">24 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0024</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Egon</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Corsetti</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">25 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0025</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Farbood</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Corsetti</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">26 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0026</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">George</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Corsetti</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">27 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0027</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Hank</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Corsetti</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">28 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0028</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Inki</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Corsetti</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">29 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0029</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">James</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Corsetti</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">30 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0030</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Al</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Dershowitz</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">31 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0031</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Bob</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Dershowitz</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">32 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0032</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Charles</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Dershowitz</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">33 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0033</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">David</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Dershowitz</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">34 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0034</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Egon</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Dershowitz</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">35 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0035</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Farbood</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Dershowitz</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">36 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0036</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">George</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Dershowitz</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">37 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0037</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Hank</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Dershowitz</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">38 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0038</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Inki</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Dershowitz</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">39 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0039</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">James</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Dershowitz</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">40 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0040</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Al</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Engleman</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">41 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0041</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Bob</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Engleman</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">42 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0042</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Charles</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Engleman</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">43 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0043</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">David</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Engleman</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">44 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0044</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Egon</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Engleman</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">45 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0045</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Farbood</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Engleman</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">46 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0046</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">George</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Engleman</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">47 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0047</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Hank</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Engleman</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">48 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0048</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Inki</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Engleman</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">49 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0049</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">James</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Engleman</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">50 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0050</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Al</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Franklin</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">51 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0051</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Bob</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Franklin</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">52 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0052</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Charles</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Franklin</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">53 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0053</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">David</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Franklin</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">54 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0054</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Egon</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Franklin</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">55 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0055</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Farbood</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Franklin</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">56 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0056</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">George</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Franklin</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">57 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0057</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Hank</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Franklin</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">58 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0058</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Inki</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Franklin</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">59 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0059</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">James</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Franklin</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">60 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0060</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Al</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Grice</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">61 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0061</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Bob</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Grice</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">62 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0062</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Charles</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Grice</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">63 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0063</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">David</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Grice</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">64 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0064</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Egon</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Grice</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">65 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0065</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Farbood</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Grice</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">66 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0066</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">George</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Grice</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">67 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0067</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Hank</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Grice</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">68 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0068</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Inki</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Grice</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">69 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0069</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">James</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Grice</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">70 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0070</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Al</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Haverford</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">71 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0071</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Bob</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Haverford</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">72 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0072</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Charles</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Haverford</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">73 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0073</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">David</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Haverford</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">74 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0074</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Egon</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Haverford</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">75 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0075</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Farbood</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Haverford</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">76 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0076</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">George</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Haverford</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">77 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0077</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Hank</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Haverford</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">78 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0078</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Inki</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Haverford</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">79 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0079</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">James</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Haverford</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">80 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0080</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Al</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Ilvedson</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">81 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0081</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Bob</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Ilvedson</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">82 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0082</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Charles</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Ilvedson</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">83 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0083</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">David</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Ilvedson</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">84 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0084</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Egon</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Ilvedson</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">85 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0085</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Farbood</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Ilvedson</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">86 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0086</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">George</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Ilvedson</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">87 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0087</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Hank</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Ilvedson</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">88 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0088</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Inki</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Ilvedson</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">89 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0089</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">James</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Ilvedson</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">90 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0090</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Al</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Jones</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">91 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0091</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Bob</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Jones</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">92 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0092</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Charles</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Jones</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">93 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0093</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">David</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Jones</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">94 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0094</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Egon</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Jones</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">95 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0095</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Farbood</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Jones</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">96 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0096</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">George</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Jones</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">97 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0097</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Hank</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Jones</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">98 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0098</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">Inki</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Jones</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">99 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+     <span class="element">&lt;row&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;id&gt;</span>
+           <span class="text">0099</span>
+        <span class="element">&lt;/id&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;firstname&gt;</span>
+           <span class="text">James</span>
+        <span class="element">&lt;/firstname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;lastname&gt;</span>
+           <span class="text">Jones</span>
+        <span class="element">&lt;/lastname&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;street&gt;</span>
+           <span class="text">100 Any St.</span>
+        <span class="element">&lt;/street&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;city&gt;</span>
+           <span class="text">Anytown</span>
+        <span class="element">&lt;/city&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;state&gt;</span>
+           <span class="text">AL</span>
+        <span class="element">&lt;/state&gt;</span>
+        <span class="text"></span>
+        <span class="element">&lt;zip&gt;</span>
+           <span class="text">22000</span>
+        <span class="element">&lt;/zip&gt;</span>
+        <span class="text"></span>
+     <span class="element">&lt;/row&gt;</span>
+     <span class="text"></span>
+  <span class="element">&lt;/table&gt;</span></pre></body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8931 @@
+<html>
+<style>
+body
+{
+background-color:
+#ffffff;
+}
+.element
+{
+color:
+#447744;
+}
+.text
+{
+color:
+#774444;
+}
+</style>
+<body>
+<pre>
+<span class="element">
+&lt;table&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0000
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Al
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Aranow
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+1
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0001
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Bob
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Aranow
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+2
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0002
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Charles
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Aranow
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+3
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0003
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+David
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Aranow
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+4
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0004
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Egon
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Aranow
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+5
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0005
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Farbood
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Aranow
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+6
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0006
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+George
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Aranow
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+7
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0007
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Hank
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Aranow
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+8
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0008
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Inki
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Aranow
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+9
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0009
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+James
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Aranow
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+10
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0010
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Al
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Barker
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+11
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0011
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Bob
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Barker
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+12
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0012
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Charles
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Barker
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+13
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0013
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+David
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Barker
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+14
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0014
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Egon
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Barker
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+15
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0015
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Farbood
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Barker
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+16
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0016
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+George
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Barker
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+17
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0017
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Hank
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Barker
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+18
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0018
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Inki
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Barker
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+19
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0019
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+James
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Barker
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+20
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0020
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Al
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Corsetti
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+21
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0021
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Bob
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Corsetti
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+22
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0022
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Charles
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Corsetti
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+23
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0023
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+David
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Corsetti
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+24
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0024
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Egon
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Corsetti
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+25
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0025
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Farbood
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Corsetti
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+26
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0026
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+George
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Corsetti
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+27
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0027
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Hank
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Corsetti
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+28
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0028
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Inki
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Corsetti
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+29
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0029
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+James
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Corsetti
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+30
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0030
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Al
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Dershowitz
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+31
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0031
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Bob
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Dershowitz
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+32
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0032
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Charles
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Dershowitz
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+33
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0033
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+David
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Dershowitz
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+34
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0034
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Egon
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Dershowitz
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+35
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0035
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Farbood
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Dershowitz
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+36
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0036
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+George
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Dershowitz
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+37
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0037
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Hank
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Dershowitz
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+38
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0038
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Inki
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Dershowitz
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+39
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0039
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+James
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Dershowitz
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+40
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0040
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Al
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Engleman
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+41
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0041
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Bob
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Engleman
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+42
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0042
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Charles
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Engleman
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+43
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0043
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+David
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Engleman
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+44
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0044
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Egon
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Engleman
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+45
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0045
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Farbood
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Engleman
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+46
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0046
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+George
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Engleman
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+47
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0047
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Hank
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Engleman
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+48
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0048
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Inki
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Engleman
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+49
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0049
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+James
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Engleman
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+50
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0050
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Al
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Franklin
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+51
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0051
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Bob
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Franklin
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+52
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0052
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Charles
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Franklin
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+53
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0053
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+David
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Franklin
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+54
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0054
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Egon
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Franklin
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+55
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0055
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Farbood
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Franklin
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+56
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0056
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+George
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Franklin
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+57
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0057
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Hank
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Franklin
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+58
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0058
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Inki
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Franklin
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+59
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0059
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+James
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Franklin
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+60
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0060
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Al
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Grice
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+61
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0061
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Bob
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Grice
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+62
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0062
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Charles
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Grice
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+63
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0063
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+David
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Grice
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+64
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0064
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Egon
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Grice
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+65
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0065
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Farbood
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Grice
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+66
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0066
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+George
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Grice
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+67
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0067
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Hank
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Grice
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+68
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0068
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Inki
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Grice
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+69
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0069
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+James
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Grice
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+70
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0070
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Al
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Haverford
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+71
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0071
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Bob
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Haverford
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+72
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0072
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Charles
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Haverford
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+73
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0073
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+David
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Haverford
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+74
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0074
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Egon
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Haverford
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+75
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0075
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Farbood
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Haverford
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+76
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0076
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+George
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Haverford
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+77
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0077
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Hank
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Haverford
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+78
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0078
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Inki
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Haverford
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+79
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0079
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+James
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Haverford
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+80
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0080
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Al
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Ilvedson
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+81
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0081
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Bob
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Ilvedson
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+82
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0082
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Charles
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Ilvedson
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+83
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0083
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+David
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Ilvedson
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+84
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0084
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Egon
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Ilvedson
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+85
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0085
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Farbood
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Ilvedson
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+86
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0086
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+George
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Ilvedson
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+87
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0087
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Hank
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Ilvedson
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+88
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0088
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Inki
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Ilvedson
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+89
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0089
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+James
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Ilvedson
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+90
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0090
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Al
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Jones
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+91
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0091
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Bob
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Jones
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+92
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0092
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Charles
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Jones
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+93
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0093
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+David
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Jones
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+94
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0094
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Egon
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Jones
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+95
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0095
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Farbood
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Jones
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+96
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0096
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+George
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Jones
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+97
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0097
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Hank
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Jones
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+98
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0098
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+Inki
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Jones
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+99
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;id&gt;
+</span>
+<span class="text">
+0099
+</span>
+<span class="element">
+&lt;/id&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;firstname&gt;
+</span>
+<span class="text">
+James
+</span>
+<span class="element">
+&lt;/firstname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;lastname&gt;
+</span>
+<span class="text">
+Jones
+</span>
+<span class="element">
+&lt;/lastname&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;street&gt;
+</span>
+<span class="text">
+100
+Any
+St.
+</span>
+<span class="element">
+&lt;/street&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;city&gt;
+</span>
+<span class="text">
+Anytown
+</span>
+<span class="element">
+&lt;/city&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;state&gt;
+</span>
+<span class="text">
+AL
+</span>
+<span class="element">
+&lt;/state&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;zip&gt;
+</span>
+<span class="text">
+22000
+</span>
+<span class="element">
+&lt;/zip&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/row&gt;
+</span>
+<span class="text">
+</span>
+<span class="element">
+&lt;/table&gt;
+</span>
+</pre>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/prettyprint.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,62 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:output method="html" encoding="utf-8"/>
+
+  <xsl:template name="element">
+    <xsl:param name="indent" select="0"/>
+    <xsl:text>
+</xsl:text>
+    <!-- this next one's a real kludge!! -->
+    <xsl:value-of select="substring ('                                                                                                ', 0, $indent * 3)"/>
+    <xsl:choose>
+      <xsl:when test="self::text()">
+        <span class="text">
+          <xsl:value-of select="normalize-space(.)"/>
+        </span>
+      </xsl:when>
+      <xsl:when test="self::*">
+        <span class="element">
+          <xsl:value-of select="concat('&lt;',name(.),'&gt;')"/>
+        </span>
+        <xsl:for-each select="node()">
+          <xsl:call-template name="element">
+            <xsl:with-param name="indent">
+              <xsl:value-of select="$indent + 1"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:for-each>              
+        <xsl:text>
+</xsl:text>
+        <xsl:value-of select="substring ('                                                                                                ', 0, $indent * 3)"/>
+        <span class="element">
+          <xsl:value-of select="concat('&lt;/',name(.),'&gt;')"/>
+        </span>
+      </xsl:when>
+    </xsl:choose>      
+  </xsl:template>
+
+
+  <xsl:template match="/">
+    <html>
+      <style>
+body      { background-color: #ffffff; }
+.element  { color: #447744; }
+.text     { color: #774444; }
+      </style>
+      <body>
+        <pre>
+          <xsl:for-each select="node()">
+            <xsl:call-template name="element">
+              <xsl:with-param name="indent">
+                1
+              </xsl:with-param>
+            </xsl:call-template>
+          </xsl:for-each>              
+        </pre>
+      </body>
+    </html>
+  </xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<node key="2"><left><node key="3"><left><node key="5"><left><node key="7"/></left><right><node key="9"/></right></node></left><right><node key="8"/></right></node></left><right><node key="5"><left><node key="9"><left><node key="10"/></left><right><node key="11"><left><node key="14"/></left><right><node key="12"/></right></node></right></node></left><right><node key="6"><left><node key="7"><left><node key="8"/></left><right/></node></left><right><node key="17"><right><node key="12"/></right></node></right></node></right></node></right></node>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,59 @@
+<node key="2">
+<left>
+<node key="3">
+<left>
+<node key="5">
+<left>
+<node key="7"/>
+</left>
+<right>
+<node key="9"/>
+</right>
+</node>
+</left>
+<right>
+<node key="8"/>
+</right>
+</node>
+</left>
+<right>
+<node key="5">
+<left>
+<node key="9">
+<left>
+<node key="10"/>
+</left>
+<right>
+<node key="11">
+<left>
+<node key="14"/>
+</left>
+<right>
+<node key="12"/>
+</right>
+</node>
+</right>
+</node>
+</left>
+<right>
+<node key="6">
+<left>
+<node key="7">
+<left>
+<node key="8"/>
+</left>
+<right/>
+</node>
+</left>
+<right>
+<node key="17">
+<right>
+<node key="12"/>
+</right>
+</node>
+</right>
+</node>
+</right>
+</node>
+</right>
+</node>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<node key="1">
+ <left>
+  <node key="3">
+   <left>
+    <node key="5">
+     <left>
+      <node key="7"/>
+     </left>
+     <right>
+      <node key="9"/>
+     </right>
+    </node>
+   </left>
+   <right>
+    <node key="8"/>
+   </right>
+  </node>
+ </left>
+ <right>
+  <node key="2">
+   <left>
+    <node key="9">
+     <left>
+      <node key="10"/>
+     </left>
+     <right>
+      <node key="11">
+       <left>
+        <node key="14"/>
+       </left>
+       <right>
+        <node key="12"/>
+       </right>
+      </node>
+     </right>
+    </node>
+   </left>
+   <right>
+    <node key="5">
+     <left>
+      <node key="6">
+       <left>
+        <node key="8"/>
+       </left>
+       <right>
+        <node key="7"/>
+       </right>
+      </node>
+     </left>
+     <right>
+      <node key="17">
+	   <right>
+	    <node key="12"/>
+       </right>
+      </node>
+     </right>
+    </node>
+   </right>
+  </node>
+ </right>
+</node>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/priority.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,52 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output encoding="utf-8"/>
+  <xsl:template match="node" mode="keep">
+    <node key="{@key}">
+      <xsl:if test="left">
+        <left>
+          <xsl:apply-templates select="left/node" mode="keep"/>
+        </left>
+      </xsl:if>
+      <xsl:if test="right">
+        <right>
+          <xsl:apply-templates select="right/node" mode="keep"/>
+        </right>
+      </xsl:if>
+    </node>
+  </xsl:template>
+
+  <xsl:template match="*"/>  
+
+  <xsl:template match="node">
+    <xsl:choose>
+      <xsl:when test="(left and not(right)) or (left/node/@key &lt; right/node/@key)">
+        <node key="{left/node/@key}">
+          <left>
+            <xsl:apply-templates select="left/node"/>
+          </left>
+          <xsl:if test="right">
+            <right>
+              <xsl:apply-templates select="right/node" mode="keep"/>
+            </right>
+          </xsl:if>
+        </node>
+      </xsl:when>
+      <xsl:when test="right">
+        <node key="{right/node/@key}">
+          <xsl:if test="left">
+            <left>
+              <xsl:apply-templates select="left/node" mode="keep"/>
+            </left>
+          </xsl:if>
+          <right>
+            <xsl:apply-templates select="right/node"/>
+          </right>
+        </node>
+      </xsl:when>
+      <xsl:otherwise>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,30 @@
+<html><table border="1">
+<tr>
+<td>thingamabob</td>
+<td>1003, 1007, 1011</td>
+</tr>
+<tr>
+<td>whatchamadigger</td>
+<td>1005, 1013, 1014</td>
+</tr>
+<tr>
+<td>whozit</td>
+<td>1001, 1012</td>
+</tr>
+<tr>
+<td>squeegie</td>
+<td>1002, 1006, 1016</td>
+</tr>
+<tr>
+<td>thingamadiggy</td>
+<td>1009, 1015</td>
+</tr>
+<tr>
+<td>whatzit</td>
+<td>1004, 1010</td>
+</tr>
+<tr>
+<td>whatchacallit</td>
+<td>1008, 1017</td>
+</tr>
+</table></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,70 @@
+<html>
+<table border="1">
+<tr>
+<td>
+thingamabob
+</td>
+<td>
+1003,
+1007,
+1011
+</td>
+</tr>
+<tr>
+<td>
+whatchamadigger
+</td>
+<td>
+1005,
+1013,
+1014
+</td>
+</tr>
+<tr>
+<td>
+whozit
+</td>
+<td>
+1001,
+1012
+</td>
+</tr>
+<tr>
+<td>
+squeegie
+</td>
+<td>
+1002,
+1006,
+1016
+</td>
+</tr>
+<tr>
+<td>
+thingamadiggy
+</td>
+<td>
+1009,
+1015
+</td>
+</tr>
+<tr>
+<td>
+whatzit
+</td>
+<td>
+1004,
+1010
+</td>
+</tr>
+<tr>
+<td>
+whatchacallit
+</td>
+<td>
+1008,
+1017
+</td>
+</tr>
+</table>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+
+<test4>
+  <products>
+    <product>
+      <sku>1001</sku>
+      <category>3</category>
+    </product>
+    <product>
+      <sku>1002</sku>
+      <category>4</category>
+    </product>
+    <product>
+      <sku>1003</sku>
+      <category>1</category>
+    </product>
+    <product>
+      <sku>1004</sku>
+      <category>6</category>
+    </product>
+    <product>
+      <sku>1005</sku>
+      <category>2</category>
+    </product>
+    <product>
+      <sku>1006</sku>
+      <category>4</category>
+    </product>
+    <product>
+      <sku>1007</sku>
+      <category>1</category>
+    </product>
+    <product>
+      <sku>1008</sku>
+      <category>7</category>
+    </product>
+    <product>
+      <sku>1009</sku>
+      <category>5</category>
+    </product>
+    <product>
+      <sku>1010</sku>
+      <category>6</category>
+    </product>
+    <product>
+      <sku>1011</sku>
+      <category>1</category>
+    </product>
+    <product>
+      <sku>1012</sku>
+      <category>3</category>
+    </product>
+    <product>
+      <sku>1013</sku>
+      <category>2</category>
+    </product>
+    <product>
+      <sku>1014</sku>
+      <category>2</category>
+    </product>
+    <product>
+      <sku>1015</sku>
+      <category>5</category>
+    </product>
+    <product>
+      <sku>1016</sku>
+      <category>4</category>
+    </product>
+    <product>
+      <sku>1017</sku>
+      <category>7</category>
+    </product>
+  </products>
+
+  <categories>
+    <category>
+      <id>1</id>
+      <name>thingamabob</name>
+    </category>
+    <category>
+      <id>2</id>
+      <name>whatchamadigger</name>
+    </category>
+    <category>
+      <id>3</id>
+      <name>whozit</name>
+    </category>
+    <category>
+      <id>4</id>
+      <name>squeegie</name>
+    </category>
+    <category>
+      <id>5</id>
+      <name>thingamadiggy</name>
+    </category>
+    <category>
+      <id>6</id>
+      <name>whatzit</name>
+    </category>
+    <category>
+      <id>7</id>
+      <name>whatchacallit</name>
+    </category>
+
+  </categories>
+
+</test4>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/products.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,35 @@
+<?xml version="1.0"?> 
+
+<!-- the slow way... -->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:template name="getsku">
+  <xsl:if test="position() != 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:value-of select="sku"/>
+</xsl:template>
+
+<xsl:template match="categories/category">
+  <tr>
+    <td><xsl:value-of select="name"/></td>
+    <td>
+      <xsl:for-each select="//products/product[category=current()/id]">
+        <xsl:call-template name="getsku"/>
+      </xsl:for-each>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="/">
+  <html>
+    <table border="1">
+      <xsl:apply-templates select="//categories/category"/>
+    </table>
+  </html>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<P/><TABLE><TR><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD></TR><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD></TR><TR><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR><TR><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD></TR></TABLE><P/><TABLE><TR><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD></TR><TR><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD></TR><TR><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD></TR></TABLE><P/><TABLE><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD></TR><TR><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD></TR><TR><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD></TR><TR><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR></TABLE><P/><TABLE><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD></TR><TR><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR><TR><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD></TR><TR><TD>-</TD><TD>-</TD><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD></TR><TR><TD>-</TD><TD>Q</TD><TD>-</TD><TD>-</TD><TD>-</TD><TD>-</TD></TR></TABLE>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,494 @@
+<dgnorm_document>
+<P/>
+<TABLE>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+</TR>
+<TR>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+</TR>
+</TABLE>
+<P/>
+<TABLE>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+</TABLE>
+<P/>
+<TABLE>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+</TABLE>
+<P/>
+<TABLE>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+<TR>
+<TD>
+-
+</TD>
+<TD>
+Q
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+<TD>
+-
+</TD>
+</TR>
+</TABLE>
+</dgnorm_document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<BoardSize>6</BoardSize>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/queens.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,199 @@
+<?xml version="1.0"?> 
+
+
+
+<!--
+<?xml version="1.0" encoding="ISO-8859-1"?>
+Copyright (C) 1999 Capella Computers Ltd. 
+
+Author: Oren Ben-Kiki
+Date: 1999-06-14
+
+This stylesheet is public domain. However, if you modify it or decide to use
+it as part of an XSLT benchmark/testing suite, I'd appreciate it if you let
+me know at oren at capella.co.il
+
+-->
+
+<!--
+
+This XSL stylesheet will convert an XML document of the form:
+
+<BoardSize>8</BoardSize>
+
+Into an HTML document listing all 8x8 chess boards containing
+8 queens such that no one threatens another.
+
+It uses the 1999-04-21 XSLT draft version.
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0"
+                xmlns:html="http://www.w3.org/TR/REC-html40"
+                default-space="strip"
+                indent-results="no"
+                result-ns="html">
+
+-->
+
+
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:template match="BoardSize">
+    <xsl:call-template name="PlaceQueenInRow">
+        <xsl:with-param name="BoardSize" select="."/>
+        <xsl:with-param name="PlacedQueens" select="'-'"/>
+        <xsl:with-param name="Row" select="0"/>
+    </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="PlaceQueenInRow">
+    <xsl:param name="BoardSize"/>
+    <xsl:param name="PlacedQueens"/>
+    <xsl:param name="Row"/>
+
+    <xsl:choose>
+        <xsl:when test="$Row = $BoardSize">
+            <xsl:call-template name="PrintBoard">
+                <xsl:with-param name="BoardSize" select="$BoardSize"/>
+                <xsl:with-param name="PlacedQueens"
+                           select="substring-after($PlacedQueens, '-')"/>
+            </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+            <xsl:call-template name="PlaceQueenInColumn">
+                <xsl:with-param name="BoardSize" select="$BoardSize"/>
+                <xsl:with-param name="PlacedQueens" select="$PlacedQueens"/>
+                <xsl:with-param name="Row" select="$Row"/>
+                <xsl:with-param name="Column" select="0"/>
+            </xsl:call-template>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<xsl:template name="PlaceQueenInColumn">
+    <xsl:param name="BoardSize"/>
+    <xsl:param name="PlacedQueens"/>
+    <xsl:param name="Row"/>
+    <xsl:param name="Column"/>
+
+    <xsl:if test="$Column &lt; $BoardSize">
+        <xsl:if test="not(contains(concat('-', $PlacedQueens, '-'),
+                                   concat('-', $Column, '-')))">
+            <xsl:call-template name="TestQueenPosition">
+                <xsl:with-param name="BoardSize" select="$BoardSize"/>
+                <xsl:with-param name="PlacedQueens">
+                    <xsl:value-of select="$PlacedQueens"/>
+                    <xsl:value-of select="$Column"/>
+                    <xsl:text>-</xsl:text>
+                </xsl:with-param>
+                <xsl:with-param name="Row" select="$Row"/>
+                <xsl:with-param name="Column" select="$Column"/>
+                <xsl:with-param name="TestQueens"
+                           select="substring-after($PlacedQueens, '-')"/>
+                <xsl:with-param name="Offset" select="$Row"/>
+            </xsl:call-template>
+        </xsl:if>
+        <xsl:call-template name="PlaceQueenInColumn">
+            <xsl:with-param name="BoardSize" select="$BoardSize"/>
+            <xsl:with-param name="PlacedQueens" select="$PlacedQueens"/>
+            <xsl:with-param name="Row" select="$Row"/>
+            <xsl:with-param name="Column" select="$Column + 1"/>
+        </xsl:call-template>
+    </xsl:if>
+</xsl:template>
+
+<xsl:template name="TestQueenPosition">
+    <xsl:param name="BoardSize"/>
+    <xsl:param name="PlacedQueens"/>
+    <xsl:param name="Row"/>
+    <xsl:param name="Column"/>
+    <xsl:param name="TestQueens"/>
+    <xsl:param name="Offset"/>
+
+    <xsl:choose>
+        <xsl:when test="not($TestQueens)">
+            <xsl:call-template name="PlaceQueenInRow">
+                <xsl:with-param name="BoardSize" select="$BoardSize"/>
+                <xsl:with-param name="PlacedQueens" select="$PlacedQueens"/>
+                <xsl:with-param name="Row" select="$Row + 1"/>
+            </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+            <xsl:variable name="NextQueen"
+                          select="substring-before($TestQueens, '-')"/>
+            <xsl:if test="not($Column = $NextQueen + $Offset)
+                      and not($Column = $NextQueen - $Offset)">
+                <xsl:call-template name="TestQueenPosition">
+                    <xsl:with-param name="BoardSize" select="$BoardSize"/>
+                    <xsl:with-param name="PlacedQueens" select="$PlacedQueens"/>
+                    <xsl:with-param name="Row" select="$Row"/>
+                    <xsl:with-param name="Column" select="$Column"/>
+                    <xsl:with-param name="TestQueens"
+                               select="substring-after($TestQueens, '-')"/>
+                    <xsl:with-param name="Offset" select="$Offset - 1"/>
+                </xsl:call-template>
+            </xsl:if>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<xsl:template name="PrintBoard">
+    <xsl:param name="BoardSize"/>
+    <xsl:param name="PlacedQueens"/>
+
+    <xsl:element name="P"/>
+    <xsl:element name="TABLE">
+        <xsl:call-template name="PrintBoardRow">
+            <xsl:with-param name="BoardSize" select="$BoardSize"/>
+            <xsl:with-param name="ColumnInThisRow"
+                       select="substring-before($PlacedQueens, '-')"/>
+            <xsl:with-param name="ColumnsInOtherRows"
+                       select="substring-after($PlacedQueens, '-')"/>
+        </xsl:call-template>
+    </xsl:element>
+</xsl:template>
+
+<xsl:template name="PrintBoardRow">
+    <xsl:param name="BoardSize"/>
+    <xsl:param name="ColumnInThisRow"/>
+    <xsl:param name="ColumnsInOtherRows"/>
+
+    <xsl:element name="TR">
+        <xsl:call-template name="PrintBoardCell">
+            <xsl:with-param name="CellsLeft" select="$BoardSize"/>
+            <xsl:with-param name="QueenCell" select="$ColumnInThisRow"/>
+        </xsl:call-template>
+    </xsl:element>
+
+    <xsl:if test="$ColumnsInOtherRows">
+        <xsl:call-template name="PrintBoardRow">
+            <xsl:with-param name="BoardSize" select="$BoardSize"/>
+            <xsl:with-param name="ColumnInThisRow"
+                       select="substring-before($ColumnsInOtherRows, '-')"/>
+            <xsl:with-param name="ColumnsInOtherRows"
+                       select="substring-after($ColumnsInOtherRows, '-')"/>
+        </xsl:call-template>
+    </xsl:if>
+</xsl:template>
+
+<xsl:template name="PrintBoardCell">
+    <xsl:param name="CellsLeft"/>
+    <xsl:param name="QueenCell"/>
+
+    <xsl:if test="not($CellsLeft = 0)">
+        <xsl:element name="TD">
+            <xsl:choose>
+                <xsl:when test="$QueenCell = 0">Q</xsl:when>
+                <xsl:otherwise>-</xsl:otherwise>
+            </xsl:choose>
+        </xsl:element>
+        <xsl:call-template name="PrintBoardCell">
+            <xsl:with-param name="CellsLeft" select="$CellsLeft - 1"/>
+            <xsl:with-param name="QueenCell" select="$QueenCell - 1"/>
+        </xsl:call-template>
+    </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+earth. the from perish not shall people, the for people the by people the of government that and freedom, of birth new a have shall nation, the that vain; in died have not shall dead these resolve highly here we that -- devotion of measure full last the gave here, they which for cause that to devotion increased take we dead honored these from that, -- us before remaining task great the to dedicated be here we living, the us, for rather is It here. did they what forget never can it while here; say we what remember long nor note, little will world The detract. or add to power poor our above far it, hallowed have here, struggled who dead, and living men, brave The -- ground this hallow, not can we -- consecrate not can we -- dedicate not can we sense, larger a in But, do. propriety all in may, we This live. might nation the that here, died who those for place resting final a as it, of portion a dedicate to come We war. that of field battle great a on met are We endure. long can dedicated, so and conceived, so nation any or nation, that whether testing war, civil great a in engaged are we Now equal" created are men "all that proposition the to dedicated and liberty, in conceived nation, new a continent, this upon forth, brought fathers our ago years seven and score Four

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,245 @@
+<dgnorm_document>
+earth.
+the
+from
+perish
+not
+shall
+people,
+the
+for
+people
+the
+by
+people
+the
+of
+government
+that
+and
+freedom,
+of
+birth
+new
+a
+have
+shall
+nation,
+the
+that
+vain;
+in
+died
+have
+not
+shall
+dead
+these
+resolve
+highly
+here
+we
+that
+--
+devotion
+of
+measure
+full
+last
+the
+gave
+here,
+they
+which
+for
+cause
+that
+to
+devotion
+increased
+take
+we
+dead
+honored
+these
+from
+that,
+--
+us
+before
+remaining
+task
+great
+the
+to
+dedicated
+be
+here
+we
+living,
+the
+us,
+for
+rather
+is
+It
+here.
+did
+they
+what
+forget
+never
+can
+it
+while
+here;
+say
+we
+what
+remember
+long
+nor
+note,
+little
+will
+world
+The
+detract.
+or
+add
+to
+power
+poor
+our
+above
+far
+it,
+hallowed
+have
+here,
+struggled
+who
+dead,
+and
+living
+men,
+brave
+The
+--
+ground
+this
+hallow,
+not
+can
+we
+--
+consecrate
+not
+can
+we
+--
+dedicate
+not
+can
+we
+sense,
+larger
+a
+in
+But,
+do.
+propriety
+all
+in
+may,
+we
+This
+live.
+might
+nation
+the
+that
+here,
+died
+who
+those
+for
+place
+resting
+final
+a
+as
+it,
+of
+portion
+a
+dedicate
+to
+come
+We
+war.
+that
+of
+field
+battle
+great
+a
+on
+met
+are
+We
+endure.
+long
+can
+dedicated,
+so
+and
+conceived,
+so
+nation
+any
+or
+nation,
+that
+whether
+testing
+war,
+civil
+great
+a
+in
+engaged
+are
+we
+Now
+equal"
+created
+are
+men
+"all
+that
+proposition
+the
+to
+dedicated
+and
+liberty,
+in
+conceived
+nation,
+new
+a
+continent,
+this
+upon
+forth,
+brought
+fathers
+our
+ago
+years
+seven
+and
+score
+Four
+</dgnorm_document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/reverser.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,35 @@
+<?xml version="1.0"?> 
+
+<!-- string flipper -->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:output encoding="utf-8"/>
+
+<xsl:template name="textflipper">
+  <xsl:param name="instring" select='""'/>
+ 
+  <xsl:variable name="firstword" select='substring-before($instring," ")'/>
+
+  <xsl:choose>
+    <xsl:when test="string-length($firstword) > 0">
+      <xsl:call-template name="textflipper">
+        <xsl:with-param name="instring" select="substring($instring,string-length($firstword)+2)"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text> 
+      <xsl:value-of select="$firstword"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$instring"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:call-template name="textflipper">
+    <xsl:with-param name="instring" select="normalize-space(.)"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8002 @@
+<?xml version="1.0" encoding="utf-8"?>
+<table><row>
+    <id>0000</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0010</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0020</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0030</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0040</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0050</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0060</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0070</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0080</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0090</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0100</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0110</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0120</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0130</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0140</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0150</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0160</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0170</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0180</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0190</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0200</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0210</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0220</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0230</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0240</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0250</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0260</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0270</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0280</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0290</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0300</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0310</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0320</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0330</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0340</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0350</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0360</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0370</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0380</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0390</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0400</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0410</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0420</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0430</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0440</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0450</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0460</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0470</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0480</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0490</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0500</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0510</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0520</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0530</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0540</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0550</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0560</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0570</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0580</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0590</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0600</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0610</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0620</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0630</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0640</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0650</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0660</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0670</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0680</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0690</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0700</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0710</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0720</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0730</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0740</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0750</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0760</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0770</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0780</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0790</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0800</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0810</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0820</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0830</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0840</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0850</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0860</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0870</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0880</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0890</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0900</id>
+    <firstname>Al</firstname>
+    <lastname>Aranow</lastname>
+    <street>1 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0910</id>
+    <firstname>Al</firstname>
+    <lastname>Barker</lastname>
+    <street>11 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0920</id>
+    <firstname>Al</firstname>
+    <lastname>Corsetti</lastname>
+    <street>21 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0930</id>
+    <firstname>Al</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>31 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0940</id>
+    <firstname>Al</firstname>
+    <lastname>Engleman</lastname>
+    <street>41 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0950</id>
+    <firstname>Al</firstname>
+    <lastname>Franklin</lastname>
+    <street>51 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0960</id>
+    <firstname>Al</firstname>
+    <lastname>Grice</lastname>
+    <street>61 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0970</id>
+    <firstname>Al</firstname>
+    <lastname>Haverford</lastname>
+    <street>71 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0980</id>
+    <firstname>Al</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>81 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0990</id>
+    <firstname>Al</firstname>
+    <lastname>Jones</lastname>
+    <street>91 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0001</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0011</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0021</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0031</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0041</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0051</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0061</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0071</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0081</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0091</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0101</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0111</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0121</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0131</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0141</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0151</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0161</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0171</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0181</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0191</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0201</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0211</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0221</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0231</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0241</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0251</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0261</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0271</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0281</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0291</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0301</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0311</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0321</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0331</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0341</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0351</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0361</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0371</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0381</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0391</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0401</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0411</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0421</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0431</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0441</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0451</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0461</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0471</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0481</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0491</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0501</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0511</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0521</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0531</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0541</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0551</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0561</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0571</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0581</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0591</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0601</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0611</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0621</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0631</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0641</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0651</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0661</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0671</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0681</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0691</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0701</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0711</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0721</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0731</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0741</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0751</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0761</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0771</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0781</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0791</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0801</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0811</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0821</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0831</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0841</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0851</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0861</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0871</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0881</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0891</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0901</id>
+    <firstname>Bob</firstname>
+    <lastname>Aranow</lastname>
+    <street>2 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0911</id>
+    <firstname>Bob</firstname>
+    <lastname>Barker</lastname>
+    <street>12 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0921</id>
+    <firstname>Bob</firstname>
+    <lastname>Corsetti</lastname>
+    <street>22 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0931</id>
+    <firstname>Bob</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>32 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0941</id>
+    <firstname>Bob</firstname>
+    <lastname>Engleman</lastname>
+    <street>42 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0951</id>
+    <firstname>Bob</firstname>
+    <lastname>Franklin</lastname>
+    <street>52 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0961</id>
+    <firstname>Bob</firstname>
+    <lastname>Grice</lastname>
+    <street>62 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0971</id>
+    <firstname>Bob</firstname>
+    <lastname>Haverford</lastname>
+    <street>72 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0981</id>
+    <firstname>Bob</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>82 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0991</id>
+    <firstname>Bob</firstname>
+    <lastname>Jones</lastname>
+    <street>92 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0002</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0012</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0022</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0032</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0042</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0052</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0062</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0072</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0082</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0092</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0102</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0112</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0122</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0132</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0142</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0152</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0162</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0172</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0182</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0192</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0202</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0212</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0222</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0232</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0242</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0252</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0262</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0272</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0282</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0292</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0302</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0312</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0322</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0332</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0342</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0352</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0362</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0372</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0382</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0392</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0402</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0412</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0422</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0432</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0442</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0452</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0462</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0472</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0482</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0492</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0502</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0512</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0522</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0532</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0542</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0552</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0562</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0572</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0582</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0592</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0602</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0612</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0622</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0632</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0642</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0652</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0662</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0672</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0682</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0692</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0702</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0712</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0722</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0732</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0742</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0752</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0762</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0772</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0782</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0792</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0802</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0812</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0822</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0832</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0842</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0852</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0862</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0872</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0882</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0892</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0902</id>
+    <firstname>Charles</firstname>
+    <lastname>Aranow</lastname>
+    <street>3 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0912</id>
+    <firstname>Charles</firstname>
+    <lastname>Barker</lastname>
+    <street>13 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0922</id>
+    <firstname>Charles</firstname>
+    <lastname>Corsetti</lastname>
+    <street>23 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0932</id>
+    <firstname>Charles</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>33 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0942</id>
+    <firstname>Charles</firstname>
+    <lastname>Engleman</lastname>
+    <street>43 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0952</id>
+    <firstname>Charles</firstname>
+    <lastname>Franklin</lastname>
+    <street>53 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0962</id>
+    <firstname>Charles</firstname>
+    <lastname>Grice</lastname>
+    <street>63 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0972</id>
+    <firstname>Charles</firstname>
+    <lastname>Haverford</lastname>
+    <street>73 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0982</id>
+    <firstname>Charles</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>83 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0992</id>
+    <firstname>Charles</firstname>
+    <lastname>Jones</lastname>
+    <street>93 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0003</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0013</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0023</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0033</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0043</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0053</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0063</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0073</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0083</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0093</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0103</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0113</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0123</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0133</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0143</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0153</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0163</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0173</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0183</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0193</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0203</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0213</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0223</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0233</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0243</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0253</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0263</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0273</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0283</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0293</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0303</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0313</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0323</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0333</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0343</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0353</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0363</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0373</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0383</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0393</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0403</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0413</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0423</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0433</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0443</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0453</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0463</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0473</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0483</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0493</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0503</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0513</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0523</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0533</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0543</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0553</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0563</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0573</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0583</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0593</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0603</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0613</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0623</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0633</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0643</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0653</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0663</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0673</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0683</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0693</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0703</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0713</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0723</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0733</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0743</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0753</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0763</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0773</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0783</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0793</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0803</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0813</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0823</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0833</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0843</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0853</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0863</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0873</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0883</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0893</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0903</id>
+    <firstname>David</firstname>
+    <lastname>Aranow</lastname>
+    <street>4 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0913</id>
+    <firstname>David</firstname>
+    <lastname>Barker</lastname>
+    <street>14 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0923</id>
+    <firstname>David</firstname>
+    <lastname>Corsetti</lastname>
+    <street>24 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0933</id>
+    <firstname>David</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>34 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0943</id>
+    <firstname>David</firstname>
+    <lastname>Engleman</lastname>
+    <street>44 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0953</id>
+    <firstname>David</firstname>
+    <lastname>Franklin</lastname>
+    <street>54 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0963</id>
+    <firstname>David</firstname>
+    <lastname>Grice</lastname>
+    <street>64 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0973</id>
+    <firstname>David</firstname>
+    <lastname>Haverford</lastname>
+    <street>74 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0983</id>
+    <firstname>David</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>84 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0993</id>
+    <firstname>David</firstname>
+    <lastname>Jones</lastname>
+    <street>94 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0004</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0014</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0024</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0034</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0044</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0054</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0064</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0074</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0084</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0094</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0104</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0114</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0124</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0134</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0144</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0154</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0164</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0174</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0184</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0194</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0204</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0214</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0224</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0234</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0244</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0254</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0264</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0274</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0284</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0294</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0304</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0314</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0324</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0334</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0344</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0354</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0364</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0374</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0384</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0394</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0404</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0414</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0424</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0434</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0444</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0454</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0464</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0474</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0484</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0494</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0504</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0514</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0524</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0534</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0544</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0554</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0564</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0574</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0584</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0594</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0604</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0614</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0624</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0634</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0644</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0654</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0664</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0674</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0684</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0694</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0704</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0714</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0724</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0734</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0744</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0754</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0764</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0774</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0784</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0794</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0804</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0814</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0824</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0834</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0844</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0854</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0864</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0874</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0884</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0894</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0904</id>
+    <firstname>Egon</firstname>
+    <lastname>Aranow</lastname>
+    <street>5 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0914</id>
+    <firstname>Egon</firstname>
+    <lastname>Barker</lastname>
+    <street>15 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0924</id>
+    <firstname>Egon</firstname>
+    <lastname>Corsetti</lastname>
+    <street>25 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0934</id>
+    <firstname>Egon</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>35 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0944</id>
+    <firstname>Egon</firstname>
+    <lastname>Engleman</lastname>
+    <street>45 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0954</id>
+    <firstname>Egon</firstname>
+    <lastname>Franklin</lastname>
+    <street>55 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0964</id>
+    <firstname>Egon</firstname>
+    <lastname>Grice</lastname>
+    <street>65 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0974</id>
+    <firstname>Egon</firstname>
+    <lastname>Haverford</lastname>
+    <street>75 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0984</id>
+    <firstname>Egon</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>85 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0994</id>
+    <firstname>Egon</firstname>
+    <lastname>Jones</lastname>
+    <street>95 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0005</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0015</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0025</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0035</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0045</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0055</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0065</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0075</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0085</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0095</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0105</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0115</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0125</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0135</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0145</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0155</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0165</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0175</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0185</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0195</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0205</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0215</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0225</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0235</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0245</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0255</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0265</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0275</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0285</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0295</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0305</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0315</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0325</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0335</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0345</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0355</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0365</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0375</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0385</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0395</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0405</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0415</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0425</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0435</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0445</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0455</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0465</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0475</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0485</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0495</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0505</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0515</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0525</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0535</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0545</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0555</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0565</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0575</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0585</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0595</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0605</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0615</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0625</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0635</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0645</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0655</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0665</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0675</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0685</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0695</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0705</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0715</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0725</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0735</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0745</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0755</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0765</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0775</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0785</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0795</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0805</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0815</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0825</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0835</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0845</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0855</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0865</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0875</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0885</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0895</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0905</id>
+    <firstname>Farbood</firstname>
+    <lastname>Aranow</lastname>
+    <street>6 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0915</id>
+    <firstname>Farbood</firstname>
+    <lastname>Barker</lastname>
+    <street>16 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0925</id>
+    <firstname>Farbood</firstname>
+    <lastname>Corsetti</lastname>
+    <street>26 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0935</id>
+    <firstname>Farbood</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>36 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0945</id>
+    <firstname>Farbood</firstname>
+    <lastname>Engleman</lastname>
+    <street>46 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0955</id>
+    <firstname>Farbood</firstname>
+    <lastname>Franklin</lastname>
+    <street>56 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0965</id>
+    <firstname>Farbood</firstname>
+    <lastname>Grice</lastname>
+    <street>66 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0975</id>
+    <firstname>Farbood</firstname>
+    <lastname>Haverford</lastname>
+    <street>76 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0985</id>
+    <firstname>Farbood</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>86 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0995</id>
+    <firstname>Farbood</firstname>
+    <lastname>Jones</lastname>
+    <street>96 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0006</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0016</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0026</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0036</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0046</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0056</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0066</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0076</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0086</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0096</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0106</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0116</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0126</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0136</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0146</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0156</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0166</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0176</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0186</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0196</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0206</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0216</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0226</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0236</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0246</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0256</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0266</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0276</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0286</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0296</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0306</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0316</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0326</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0336</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0346</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0356</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0366</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0376</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0386</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0396</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0406</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0416</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0426</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0436</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0446</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0456</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0466</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0476</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0486</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0496</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0506</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0516</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0526</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0536</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0546</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0556</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0566</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0576</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0586</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0596</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0606</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0616</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0626</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0636</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0646</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0656</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0666</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0676</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0686</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0696</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0706</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0716</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0726</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0736</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0746</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0756</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0766</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0776</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0786</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0796</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0806</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0816</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0826</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0836</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0846</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0856</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0866</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0876</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0886</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0896</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0906</id>
+    <firstname>George</firstname>
+    <lastname>Aranow</lastname>
+    <street>7 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0916</id>
+    <firstname>George</firstname>
+    <lastname>Barker</lastname>
+    <street>17 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0926</id>
+    <firstname>George</firstname>
+    <lastname>Corsetti</lastname>
+    <street>27 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0936</id>
+    <firstname>George</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>37 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0946</id>
+    <firstname>George</firstname>
+    <lastname>Engleman</lastname>
+    <street>47 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0956</id>
+    <firstname>George</firstname>
+    <lastname>Franklin</lastname>
+    <street>57 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0966</id>
+    <firstname>George</firstname>
+    <lastname>Grice</lastname>
+    <street>67 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0976</id>
+    <firstname>George</firstname>
+    <lastname>Haverford</lastname>
+    <street>77 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0986</id>
+    <firstname>George</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>87 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0996</id>
+    <firstname>George</firstname>
+    <lastname>Jones</lastname>
+    <street>97 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0007</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0017</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0027</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0037</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0047</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0057</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0067</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0077</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0087</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0097</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0107</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0117</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0127</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0137</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0147</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0157</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0167</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0177</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0187</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0197</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0207</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0217</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0227</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0237</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0247</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0257</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0267</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0277</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0287</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0297</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0307</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0317</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0327</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0337</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0347</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0357</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0367</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0377</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0387</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0397</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0407</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0417</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0427</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0437</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0447</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0457</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0467</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0477</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0487</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0497</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0507</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0517</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0527</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0537</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0547</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0557</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0567</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0577</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0587</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0597</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0607</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0617</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0627</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0637</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0647</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0657</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0667</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0677</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0687</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0697</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0707</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0717</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0727</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0737</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0747</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0757</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0767</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0777</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0787</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0797</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0807</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0817</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0827</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0837</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0847</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0857</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0867</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0877</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0887</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0897</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0907</id>
+    <firstname>Hank</firstname>
+    <lastname>Aranow</lastname>
+    <street>8 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0917</id>
+    <firstname>Hank</firstname>
+    <lastname>Barker</lastname>
+    <street>18 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0927</id>
+    <firstname>Hank</firstname>
+    <lastname>Corsetti</lastname>
+    <street>28 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0937</id>
+    <firstname>Hank</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>38 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0947</id>
+    <firstname>Hank</firstname>
+    <lastname>Engleman</lastname>
+    <street>48 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0957</id>
+    <firstname>Hank</firstname>
+    <lastname>Franklin</lastname>
+    <street>58 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0967</id>
+    <firstname>Hank</firstname>
+    <lastname>Grice</lastname>
+    <street>68 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0977</id>
+    <firstname>Hank</firstname>
+    <lastname>Haverford</lastname>
+    <street>78 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0987</id>
+    <firstname>Hank</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>88 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0997</id>
+    <firstname>Hank</firstname>
+    <lastname>Jones</lastname>
+    <street>98 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0008</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0018</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0028</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0038</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0048</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0058</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0068</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0078</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0088</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0098</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0108</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0118</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0128</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0138</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0148</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0158</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0168</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0178</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0188</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0198</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0208</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0218</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0228</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0238</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0248</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0258</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0268</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0278</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0288</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0298</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0308</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0318</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0328</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0338</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0348</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0358</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0368</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0378</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0388</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0398</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0408</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0418</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0428</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0438</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0448</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0458</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0468</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0478</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0488</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0498</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0508</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0518</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0528</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0538</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0548</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0558</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0568</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0578</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0588</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0598</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0608</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0618</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0628</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0638</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0648</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0658</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0668</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0678</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0688</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0698</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0708</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0718</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0728</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0738</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0748</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0758</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0768</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0778</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0788</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0798</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0808</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0818</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0828</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0838</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0848</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0858</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0868</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0878</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0888</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0898</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0908</id>
+    <firstname>Inki</firstname>
+    <lastname>Aranow</lastname>
+    <street>9 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0918</id>
+    <firstname>Inki</firstname>
+    <lastname>Barker</lastname>
+    <street>19 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0928</id>
+    <firstname>Inki</firstname>
+    <lastname>Corsetti</lastname>
+    <street>29 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0938</id>
+    <firstname>Inki</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>39 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0948</id>
+    <firstname>Inki</firstname>
+    <lastname>Engleman</lastname>
+    <street>49 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0958</id>
+    <firstname>Inki</firstname>
+    <lastname>Franklin</lastname>
+    <street>59 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0968</id>
+    <firstname>Inki</firstname>
+    <lastname>Grice</lastname>
+    <street>69 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0978</id>
+    <firstname>Inki</firstname>
+    <lastname>Haverford</lastname>
+    <street>79 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0988</id>
+    <firstname>Inki</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>89 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0998</id>
+    <firstname>Inki</firstname>
+    <lastname>Jones</lastname>
+    <street>99 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0009</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0019</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0029</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0039</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0049</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0059</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0069</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0079</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0089</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0099</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>AL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0109</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0119</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0129</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0139</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0149</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0159</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0169</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0179</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0189</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0199</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>AK</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0209</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0219</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0229</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0239</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0249</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0259</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0269</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0279</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0289</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0299</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>AZ</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0309</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0319</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0329</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0339</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0349</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0359</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0369</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0379</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0389</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0399</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>AR</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0409</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0419</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0429</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0439</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0449</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0459</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0469</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0479</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0489</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0499</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>CA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0509</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0519</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0529</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0539</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0549</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0559</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0569</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0579</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0589</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0599</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>CO</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0609</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0619</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0629</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0639</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0649</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0659</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0669</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0679</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0689</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0699</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>CT</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0709</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0719</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0729</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0739</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0749</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0759</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0769</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0779</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0789</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0799</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>DE</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0809</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0819</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0829</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0839</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0849</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0859</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0869</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0879</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0889</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0899</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>FL</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0909</id>
+    <firstname>James</firstname>
+    <lastname>Aranow</lastname>
+    <street>10 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0919</id>
+    <firstname>James</firstname>
+    <lastname>Barker</lastname>
+    <street>20 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0929</id>
+    <firstname>James</firstname>
+    <lastname>Corsetti</lastname>
+    <street>30 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0939</id>
+    <firstname>James</firstname>
+    <lastname>Dershowitz</lastname>
+    <street>40 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0949</id>
+    <firstname>James</firstname>
+    <lastname>Engleman</lastname>
+    <street>50 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0959</id>
+    <firstname>James</firstname>
+    <lastname>Franklin</lastname>
+    <street>60 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0969</id>
+    <firstname>James</firstname>
+    <lastname>Grice</lastname>
+    <street>70 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0979</id>
+    <firstname>James</firstname>
+    <lastname>Haverford</lastname>
+    <street>80 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0989</id>
+    <firstname>James</firstname>
+    <lastname>Ilvedson</lastname>
+    <street>90 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row><row>
+    <id>0999</id>
+    <firstname>James</firstname>
+    <lastname>Jones</lastname>
+    <street>100 Any St.</street>
+    <city>Anytown</city>
+    <state>GA</state>
+    <zip>22000</zip>
+  </row></table>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25002 @@
+<table>
+<row>
+<id>
+0000
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0010
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0020
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0030
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0040
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0050
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0060
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0070
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0080
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0090
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0100
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0110
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0120
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0130
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0140
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0150
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0160
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0170
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0180
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0190
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0200
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0210
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0220
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0230
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0240
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0250
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0260
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0270
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0280
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0290
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0300
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0310
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0320
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0330
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0340
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0350
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0360
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0370
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0380
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0390
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0400
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0410
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0420
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0430
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0440
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0450
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0460
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0470
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0480
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0490
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0500
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0510
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0520
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0530
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0540
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0550
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0560
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0570
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0580
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0590
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0600
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0610
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0620
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0630
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0640
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0650
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0660
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0670
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0680
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0690
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0700
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0710
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0720
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0730
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0740
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0750
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0760
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0770
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0780
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0790
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0800
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0810
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0820
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0830
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0840
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0850
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0860
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0870
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0880
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0890
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0900
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+1
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0910
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+11
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0920
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+21
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0930
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+31
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0940
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+41
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0950
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+51
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0960
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+61
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0970
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+71
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0980
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+81
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0990
+</id>
+<firstname>
+Al
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+91
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0001
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0011
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0021
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0031
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0041
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0051
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0061
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0071
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0081
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0091
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0101
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0111
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0121
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0131
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0141
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0151
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0161
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0171
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0181
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0191
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0201
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0211
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0221
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0231
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0241
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0251
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0261
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0271
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0281
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0291
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0301
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0311
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0321
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0331
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0341
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0351
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0361
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0371
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0381
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0391
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0401
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0411
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0421
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0431
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0441
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0451
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0461
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0471
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0481
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0491
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0501
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0511
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0521
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0531
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0541
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0551
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0561
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0571
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0581
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0591
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0601
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0611
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0621
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0631
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0641
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0651
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0661
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0671
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0681
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0691
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0701
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0711
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0721
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0731
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0741
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0751
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0761
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0771
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0781
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0791
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0801
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0811
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0821
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0831
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0841
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0851
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0861
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0871
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0881
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0891
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0901
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+2
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0911
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+12
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0921
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+22
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0931
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+32
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0941
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+42
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0951
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+52
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0961
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+62
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0971
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+72
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0981
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+82
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0991
+</id>
+<firstname>
+Bob
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+92
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0002
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0012
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0022
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0032
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0042
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0052
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0062
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0072
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0082
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0092
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0102
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0112
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0122
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0132
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0142
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0152
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0162
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0172
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0182
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0192
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0202
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0212
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0222
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0232
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0242
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0252
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0262
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0272
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0282
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0292
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0302
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0312
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0322
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0332
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0342
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0352
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0362
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0372
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0382
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0392
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0402
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0412
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0422
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0432
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0442
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0452
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0462
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0472
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0482
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0492
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0502
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0512
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0522
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0532
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0542
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0552
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0562
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0572
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0582
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0592
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0602
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0612
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0622
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0632
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0642
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0652
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0662
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0672
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0682
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0692
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0702
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0712
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0722
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0732
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0742
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0752
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0762
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0772
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0782
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0792
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0802
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0812
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0822
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0832
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0842
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0852
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0862
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0872
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0882
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0892
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0902
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+3
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0912
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+13
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0922
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+23
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0932
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+33
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0942
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+43
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0952
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+53
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0962
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+63
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0972
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+73
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0982
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+83
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0992
+</id>
+<firstname>
+Charles
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+93
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0003
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0013
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0023
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0033
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0043
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0053
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0063
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0073
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0083
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0093
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0103
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0113
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0123
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0133
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0143
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0153
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0163
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0173
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0183
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0193
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0203
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0213
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0223
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0233
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0243
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0253
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0263
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0273
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0283
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0293
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0303
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0313
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0323
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0333
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0343
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0353
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0363
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0373
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0383
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0393
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0403
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0413
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0423
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0433
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0443
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0453
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0463
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0473
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0483
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0493
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0503
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0513
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0523
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0533
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0543
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0553
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0563
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0573
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0583
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0593
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0603
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0613
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0623
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0633
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0643
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0653
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0663
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0673
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0683
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0693
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0703
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0713
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0723
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0733
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0743
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0753
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0763
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0773
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0783
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0793
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0803
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0813
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0823
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0833
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0843
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0853
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0863
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0873
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0883
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0893
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0903
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+4
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0913
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+14
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0923
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+24
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0933
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+34
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0943
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+44
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0953
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+54
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0963
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+64
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0973
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+74
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0983
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+84
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0993
+</id>
+<firstname>
+David
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+94
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0004
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0014
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0024
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0034
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0044
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0054
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0064
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0074
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0084
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0094
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0104
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0114
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0124
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0134
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0144
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0154
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0164
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0174
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0184
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0194
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0204
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0214
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0224
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0234
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0244
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0254
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0264
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0274
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0284
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0294
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0304
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0314
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0324
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0334
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0344
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0354
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0364
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0374
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0384
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0394
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0404
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0414
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0424
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0434
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0444
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0454
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0464
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0474
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0484
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0494
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0504
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0514
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0524
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0534
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0544
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0554
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0564
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0574
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0584
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0594
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0604
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0614
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0624
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0634
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0644
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0654
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0664
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0674
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0684
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0694
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0704
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0714
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0724
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0734
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0744
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0754
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0764
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0774
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0784
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0794
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0804
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0814
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0824
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0834
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0844
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0854
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0864
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0874
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0884
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0894
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0904
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+5
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0914
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+15
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0924
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+25
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0934
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+35
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0944
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+45
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0954
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+55
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0964
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+65
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0974
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+75
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0984
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+85
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0994
+</id>
+<firstname>
+Egon
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+95
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0005
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0015
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0025
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0035
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0045
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0055
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0065
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0075
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0085
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0095
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0105
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0115
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0125
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0135
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0145
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0155
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0165
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0175
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0185
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0195
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0205
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0215
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0225
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0235
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0245
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0255
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0265
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0275
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0285
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0295
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0305
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0315
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0325
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0335
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0345
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0355
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0365
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0375
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0385
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0395
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0405
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0415
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0425
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0435
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0445
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0455
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0465
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0475
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0485
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0495
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0505
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0515
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0525
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0535
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0545
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0555
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0565
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0575
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0585
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0595
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0605
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0615
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0625
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0635
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0645
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0655
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0665
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0675
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0685
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0695
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0705
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0715
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0725
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0735
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0745
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0755
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0765
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0775
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0785
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0795
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0805
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0815
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0825
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0835
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0845
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0855
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0865
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0875
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0885
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0895
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0905
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+6
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0915
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+16
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0925
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+26
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0935
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+36
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0945
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+46
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0955
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+56
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0965
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+66
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0975
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+76
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0985
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+86
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0995
+</id>
+<firstname>
+Farbood
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+96
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0006
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0016
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0026
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0036
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0046
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0056
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0066
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0076
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0086
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0096
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0106
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0116
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0126
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0136
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0146
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0156
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0166
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0176
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0186
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0196
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0206
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0216
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0226
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0236
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0246
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0256
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0266
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0276
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0286
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0296
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0306
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0316
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0326
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0336
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0346
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0356
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0366
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0376
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0386
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0396
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0406
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0416
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0426
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0436
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0446
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0456
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0466
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0476
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0486
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0496
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0506
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0516
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0526
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0536
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0546
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0556
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0566
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0576
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0586
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0596
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0606
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0616
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0626
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0636
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0646
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0656
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0666
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0676
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0686
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0696
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0706
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0716
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0726
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0736
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0746
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0756
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0766
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0776
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0786
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0796
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0806
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0816
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0826
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0836
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0846
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0856
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0866
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0876
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0886
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0896
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0906
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+7
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0916
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+17
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0926
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+27
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0936
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+37
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0946
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+47
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0956
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+57
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0966
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+67
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0976
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+77
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0986
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+87
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0996
+</id>
+<firstname>
+George
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+97
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0007
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0017
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0027
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0037
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0047
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0057
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0067
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0077
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0087
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0097
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0107
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0117
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0127
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0137
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0147
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0157
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0167
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0177
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0187
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0197
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0207
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0217
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0227
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0237
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0247
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0257
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0267
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0277
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0287
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0297
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0307
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0317
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0327
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0337
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0347
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0357
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0367
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0377
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0387
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0397
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0407
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0417
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0427
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0437
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0447
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0457
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0467
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0477
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0487
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0497
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0507
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0517
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0527
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0537
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0547
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0557
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0567
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0577
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0587
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0597
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0607
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0617
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0627
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0637
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0647
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0657
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0667
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0677
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0687
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0697
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0707
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0717
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0727
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0737
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0747
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0757
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0767
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0777
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0787
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0797
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0807
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0817
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0827
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0837
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0847
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0857
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0867
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0877
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0887
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0897
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0907
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+8
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0917
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+18
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0927
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+28
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0937
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+38
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0947
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+48
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0957
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+58
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0967
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+68
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0977
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+78
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0987
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+88
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0997
+</id>
+<firstname>
+Hank
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+98
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0008
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0018
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0028
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0038
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0048
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0058
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0068
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0078
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0088
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0098
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0108
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0118
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0128
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0138
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0148
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0158
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0168
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0178
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0188
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0198
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0208
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0218
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0228
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0238
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0248
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0258
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0268
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0278
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0288
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0298
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0308
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0318
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0328
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0338
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0348
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0358
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0368
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0378
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0388
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0398
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0408
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0418
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0428
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0438
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0448
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0458
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0468
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0478
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0488
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0498
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0508
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0518
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0528
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0538
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0548
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0558
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0568
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0578
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0588
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0598
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0608
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0618
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0628
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0638
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0648
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0658
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0668
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0678
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0688
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0698
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0708
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0718
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0728
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0738
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0748
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0758
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0768
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0778
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0788
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0798
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0808
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0818
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0828
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0838
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0848
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0858
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0868
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0878
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0888
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0898
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0908
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+9
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0918
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+19
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0928
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+29
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0938
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+39
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0948
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+49
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0958
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+59
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0968
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+69
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0978
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+79
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0988
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+89
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0998
+</id>
+<firstname>
+Inki
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+99
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0009
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0019
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0029
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0039
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0049
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0059
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0069
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0079
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0089
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0099
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0109
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0119
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0129
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0139
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0149
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0159
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0169
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0179
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0189
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0199
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AK
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0209
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0219
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0229
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0239
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0249
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0259
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0269
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0279
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0289
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0299
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AZ
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0309
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0319
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0329
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0339
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0349
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0359
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0369
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0379
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0389
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0399
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+AR
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0409
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0419
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0429
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0439
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0449
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0459
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0469
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0479
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0489
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0499
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0509
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0519
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0529
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0539
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0549
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0559
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0569
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0579
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0589
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0599
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CO
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0609
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0619
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0629
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0639
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0649
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0659
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0669
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0679
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0689
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0699
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+CT
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0709
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0719
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0729
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0739
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0749
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0759
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0769
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0779
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0789
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0799
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+DE
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0809
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0819
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0829
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0839
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0849
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0859
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0869
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0879
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0889
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0899
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+FL
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0909
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Aranow
+</lastname>
+<street>
+10
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0919
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Barker
+</lastname>
+<street>
+20
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0929
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Corsetti
+</lastname>
+<street>
+30
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0939
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Dershowitz
+</lastname>
+<street>
+40
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0949
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Engleman
+</lastname>
+<street>
+50
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0959
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Franklin
+</lastname>
+<street>
+60
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0969
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Grice
+</lastname>
+<street>
+70
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0979
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Haverford
+</lastname>
+<street>
+80
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0989
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Ilvedson
+</lastname>
+<street>
+90
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+<row>
+<id>
+0999
+</id>
+<firstname>
+James
+</firstname>
+<lastname>
+Jones
+</lastname>
+<street>
+100
+Any
+St.
+</street>
+<city>
+Anytown
+</city>
+<state>
+GA
+</state>
+<zip>
+22000
+</zip>
+</row>
+</table>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/stringsort.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:output encoding="utf-8"/>
+<xsl:template match="table">
+  <table>
+    <xsl:apply-templates select="row">
+      <xsl:sort select="firstname"/>
+    </xsl:apply-templates>
+  </table>
+</xsl:template>
+
+<xsl:template match="*">
+  <xsl:copy>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<summary><total>239 nodes,
+      100 elements,
+      137 text nodes,
+      131 attributes.
+    </total><analysis><description>Recognized as xslt stylesheet:</description><stats>7 templates,
+      1 variables,
+      2 value-of's,
+    </stats></analysis></summary>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<summary>
+<total>
+239
+nodes,
+100
+elements,
+137
+text
+nodes,
+131
+attributes.
+</total>
+<analysis>
+<description>
+Recognized
+as
+xslt
+stylesheet:
+</description>
+<stats>
+7
+templates,
+1
+variables,
+2
+value-of's,
+</stats>
+</analysis>
+</summary>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/summarize.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,33 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output encoding="utf-8"/>
+<xsl:template match="/">
+  <summary>
+    <total>
+      <xsl:value-of select="count(//node())"/> nodes,
+      <xsl:value-of select="count(//*)"/> elements,
+      <xsl:value-of select="count(//text())"/> text nodes,
+      <xsl:value-of select="count(//*/@*)"/> attributes.
+    </total>
+
+    <xsl:apply-templates/>
+
+  </summary>
+
+</xsl:template>
+
+
+<xsl:template match="/xsl:stylesheet|/xsl:transform">
+  <analysis>
+    <description>Recognized as xslt stylesheet:</description>
+    <stats>
+      <xsl:value-of select="count(xsl:template)"/> templates,
+      <xsl:value-of select="count(descendant::xsl:variable)"/> variables,
+      <xsl:value-of select="count(descendant::xsl:value-of)"/> value-of's,
+    </stats>
+  </analysis>
+</xsl:template>
+
+<xsl:template match="text()"/>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<html><table border="1">
+<tr><td colspan="2">Total Sales</td></tr>
+<tr>
+<td>1997</td>
+<td align="right">62</td>
+</tr>
+<tr>
+<td>1998</td>
+<td align="right">72</td>
+</tr>
+<tr>
+<td>1999</td>
+<td align="right">79</td>
+</tr>
+<tr>
+<td>2000</td>
+<td align="right">88</td>
+</tr>
+<tr>
+<td>Grand Total</td>
+<td align="right">301</td>
+</tr>
+</table></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,51 @@
+<html>
+<table border="1">
+<tr>
+<td colspan="2">
+Total
+Sales
+</td>
+</tr>
+<tr>
+<td>
+1997
+</td>
+<td align="right">
+62
+</td>
+</tr>
+<tr>
+<td>
+1998
+</td>
+<td align="right">
+72
+</td>
+</tr>
+<tr>
+<td>
+1999
+</td>
+<td align="right">
+79
+</td>
+</tr>
+<tr>
+<td>
+2000
+</td>
+<td align="right">
+88
+</td>
+</tr>
+<tr>
+<td>
+Grand
+Total
+</td>
+<td align="right">
+301
+</td>
+</tr>
+</table>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/total.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,30 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output method="html" encoding="utf-8"/>
+
+  <xsl:template match="/">
+    <html>
+      <table border="1">
+        <tr>
+          <td colspan="2">Total Sales</td>
+        </tr>
+        <xsl:for-each select="salesdata/year">
+          <tr>
+            <td>
+              <xsl:value-of select="year"/>
+            </td>
+            <td align="right">
+              <xsl:value-of select="sum(region/sales)"/>
+            </td>
+          </tr>
+        </xsl:for-each>
+        <tr>
+          <td>Grand Total</td>
+          <td align="right">
+            <xsl:value-of select="sum(salesdata/year/region/sales)"/>
+          </td>
+        </tr>
+      </table>
+    </html>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<towersequence><tower><pole height="10"/><pole height="0"/><pole height="0"/></tower><tower><pole height="9"/><pole height="0"/><pole height="1"/></tower><tower><pole height="8"/><pole height="1"/><pole height="1"/></tower><tower><pole height="8"/><pole height="2"/><pole height="0"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="8"/><pole height="1"/><pole height="1"/></tower><tower><pole height="8"/><pole height="0"/><pole height="2"/></tower><tower><pole height="7"/><pole height="0"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="8"/><pole height="1"/><pole height="1"/></tower><tower><pole height="8"/><pole height="2"/><pole height="0"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="4"/><pole height="0"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="8"/><pole height="1"/><pole height="1"/></tower><tower><pole height="8"/><pole height="0"/><pole height="2"/></tower><tower><pole height="7"/><pole height="0"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="0"/><pole height="4"/></tower><tower><pole height="5"/><pole height="0"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="8"/><pole height="1"/><pole height="1"/></tower><tower><pole height="8"/><pole height="2"/><pole height="0"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="4"/><pole height="0"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="4"/><pole height="0"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="6"/><pole height="0"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="8"/><pole height="1"/><pole height="1"/></tower><tower><pole height="8"/><pole height="0"/><pole height="2"/></tower><tower><pole height="7"/><pole height="0"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="0"/><pole height="4"/></tower><tower><pole height="5"/><pole height="0"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="0"/><pole height="4"/></tower><tower><pole height="5"/><pole height="0"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="0"/><pole height="6"/></tower><tower><pole height="3"/><pole height="0"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="8"/><pole height="1"/><pole height="1"/></tower><tower><pole height="8"/><pole height="2"/><pole height="0"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="4"/><pole height="0"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="4"/><pole height="0"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="6"/><pole height="0"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="4"/><pole height="0"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="6"/><pole height="0"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="6"/><pole height="0"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="8"/><pole height="0"/></tower><tower><pole height="1"/><pole height="8"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="8"/><pole height="1"/><pole height="1"/></tower><tower><pole height="8"/><pole height="0"/><pole height="2"/></tower><tower><pole height="7"/><pole height="0"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="0"/><pole height="4"/></tower><tower><pole height="5"/><pole height="0"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="0"/><pole height="4"/></tower><tower><pole height="5"/><pole height="0"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="0"/><pole height="6"/></tower><tower><pole height="3"/><pole height="0"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="0"/><pole height="4"/></tower><tower><pole height="5"/><pole height="0"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="0"/><pole height="6"/></tower><tower><pole height="3"/><pole height="0"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="0"/><pole height="6"/></tower><tower><pole height="3"/><pole height="0"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="0"/><pole height="8"/></tower><tower><pole height="1"/><pole height="0"/><pole height="9"/></tower><tower><pole height="0"/><pole height="1"/><pole height="9"/></tower><tower><pole height="0"/><pole height="2"/><pole height="8"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="0"/><pole height="3"/><pole height="7"/></tower><tower><pole height="0"/><pole height="4"/><pole height="6"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="0"/><pole height="3"/><pole height="7"/></tower><tower><pole height="0"/><pole height="4"/><pole height="6"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="0"/><pole height="5"/><pole height="5"/></tower><tower><pole height="0"/><pole height="6"/><pole height="4"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="0"/><pole height="3"/><pole height="7"/></tower><tower><pole height="0"/><pole height="4"/><pole height="6"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="0"/><pole height="5"/><pole height="5"/></tower><tower><pole height="0"/><pole height="6"/><pole height="4"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="0"/><pole height="5"/><pole height="5"/></tower><tower><pole height="0"/><pole height="6"/><pole height="4"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="0"/><pole height="7"/><pole height="3"/></tower><tower><pole height="0"/><pole height="8"/><pole height="2"/></tower><tower><pole height="1"/><pole height="8"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="2"/><pole height="1"/><pole height="7"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="4"/><pole height="1"/><pole height="5"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="6"/><pole height="1"/><pole height="3"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="8"/><pole height="1"/><pole height="1"/></tower><tower><pole height="8"/><pole height="2"/><pole height="0"/></tower><tower><pole height="7"/><pole height="2"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="4"/><pole height="0"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="4"/><pole height="0"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="6"/><pole height="0"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="4"/><pole height="0"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="6"/><pole height="0"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="6"/><pole height="0"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="8"/><pole height="0"/></tower><tower><pole height="1"/><pole height="8"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="2"/><pole height="2"/></tower><tower><pole height="5"/><pole height="2"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="2"/><pole height="4"/></tower><tower><pole height="3"/><pole height="2"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="2"/><pole height="6"/></tower><tower><pole height="1"/><pole height="2"/><pole height="7"/></tower><tower><pole height="0"/><pole height="3"/><pole height="7"/></tower><tower><pole height="0"/><pole height="4"/><pole height="6"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="0"/><pole height="5"/><pole height="5"/></tower><tower><pole height="0"/><pole height="6"/><pole height="4"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="0"/><pole height="5"/><pole height="5"/></tower><tower><pole height="0"/><pole height="6"/><pole height="4"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="0"/><pole height="7"/><pole height="3"/></tower><tower><pole height="0"/><pole height="8"/><pole height="2"/></tower><tower><pole height="1"/><pole height="8"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="2"/><pole height="3"/><pole height="5"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="4"/><pole height="3"/><pole height="3"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="6"/><pole height="3"/><pole height="1"/></tower><tower><pole height="6"/><pole height="4"/><pole height="0"/></tower><tower><pole height="5"/><pole height="4"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="6"/><pole height="0"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="6"/><pole height="0"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="8"/><pole height="0"/></tower><tower><pole height="1"/><pole height="8"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="4"/><pole height="2"/></tower><tower><pole height="3"/><pole height="4"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="4"/><pole height="4"/></tower><tower><pole height="1"/><pole height="4"/><pole height="5"/></tower><tower><pole height="0"/><pole height="5"/><pole height="5"/></tower><tower><pole height="0"/><pole height="6"/><pole height="4"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="0"/><pole height="7"/><pole height="3"/></tower><tower><pole height="0"/><pole height="8"/><pole height="2"/></tower><tower><pole height="1"/><pole height="8"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="2"/><pole height="5"/><pole height="3"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="4"/><pole height="5"/><pole height="1"/></tower><tower><pole height="4"/><pole height="6"/><pole height="0"/></tower><tower><pole height="3"/><pole height="6"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="8"/><pole height="0"/></tower><tower><pole height="1"/><pole height="8"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="6"/><pole height="2"/></tower><tower><pole height="1"/><pole height="6"/><pole height="3"/></tower><tower><pole height="0"/><pole height="7"/><pole height="3"/></tower><tower><pole height="0"/><pole height="8"/><pole height="2"/></tower><tower><pole height="1"/><pole height="8"/><pole height="1"/></tower><tower><pole height="2"/><pole height="7"/><pole height="1"/></tower><tower><pole height="2"/><pole height="8"/><pole height="0"/></tower><tower><pole height="1"/><pole height="8"/><pole height="1"/></tower><tower><pole height="0"/><pole height="9"/><pole height="1"/></tower><tower><pole height="0"/><pole height="10"/><pole height="0"/></tower></towersequence>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5122 @@
+<towersequence>
+<tower>
+<pole height="10"/>
+<pole height="0"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="9"/>
+<pole height="0"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="1"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="2"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="1"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="0"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="0"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="1"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="2"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="4"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="1"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="0"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="0"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="0"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="0"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="1"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="2"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="4"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="4"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="6"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="1"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="0"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="0"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="0"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="0"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="0"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="0"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="0"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="0"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="1"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="2"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="4"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="4"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="6"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="4"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="6"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="6"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="8"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="8"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="1"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="0"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="0"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="0"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="0"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="0"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="0"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="0"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="0"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="0"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="0"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="0"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="0"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="0"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="0"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="0"/>
+<pole height="8"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="0"/>
+<pole height="9"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="1"/>
+<pole height="9"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="2"/>
+<pole height="8"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="3"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="4"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="3"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="4"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="5"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="6"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="3"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="4"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="5"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="6"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="5"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="6"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="7"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="8"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="8"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="1"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="1"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="1"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="1"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="8"/>
+<pole height="2"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="7"/>
+<pole height="2"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="4"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="4"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="6"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="4"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="6"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="6"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="8"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="8"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="2"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="2"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="2"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="2"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="2"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="2"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="3"/>
+<pole height="7"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="4"/>
+<pole height="6"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="5"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="6"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="5"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="6"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="7"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="8"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="8"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="3"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="3"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="3"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="6"/>
+<pole height="4"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="5"/>
+<pole height="4"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="6"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="6"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="8"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="8"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="4"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="4"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="4"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="4"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="5"/>
+<pole height="5"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="6"/>
+<pole height="4"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="7"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="8"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="8"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="5"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="5"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="4"/>
+<pole height="6"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="3"/>
+<pole height="6"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="8"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="8"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="6"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="6"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="7"/>
+<pole height="3"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="8"/>
+<pole height="2"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="8"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="7"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="2"/>
+<pole height="8"/>
+<pole height="0"/>
+</tower>
+<tower>
+<pole height="1"/>
+<pole height="8"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="9"/>
+<pole height="1"/>
+</tower>
+<tower>
+<pole height="0"/>
+<pole height="10"/>
+<pole height="0"/>
+</tower>
+</towersequence>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+
+<towerheight>10</towerheight>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,75 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:output encoding="utf-8"/>
+<xsl:template match="towerheight">
+    <towersequence>
+        <xsl:call-template name="print">
+            <xsl:with-param name="height1" select="."/>
+            <xsl:with-param name="height2" select="0"/>
+            <xsl:with-param name="height3" select="0"/>
+        </xsl:call-template>        
+        <xsl:call-template name="transferstack">
+            <xsl:with-param name="source" select="1"/>
+            <xsl:with-param name="target" select="2"/>
+            <xsl:with-param name="spare" select="3"/>
+            <xsl:with-param name="height1" select="."/>
+            <xsl:with-param name="height2" select="0"/>
+            <xsl:with-param name="height3" select="0"/>
+            <xsl:with-param name="howmany" select="."/>
+        </xsl:call-template>
+    </towersequence>
+</xsl:template>
+
+<xsl:template name="transferstack">
+    <xsl:param name="source"/>
+    <xsl:param name="target"/>
+    <xsl:param name="spare"/>
+    <xsl:param name="height1"/>
+    <xsl:param name="height2"/>
+    <xsl:param name="height3"/>
+    <xsl:param name="howmany"/>
+    <xsl:if test="$howmany > 0">
+        <xsl:call-template name="transferstack">
+            <xsl:with-param name="source" select="$source"/>
+            <xsl:with-param name="target" select="$spare"/>
+            <xsl:with-param name="spare" select="$target"/>
+            <xsl:with-param name="height1" select="$height1"/>
+            <xsl:with-param name="height2" select="$height2"/>
+            <xsl:with-param name="height3" select="$height3"/>
+            <xsl:with-param name="howmany" select="$howmany - 1"/>
+        </xsl:call-template>
+        <xsl:call-template name="print">
+            <xsl:with-param name="height1" 
+                select="($source = 1) * ($height1 - $howmany) + ($target = 1) * ($height1 + 1) + ($spare = 1) * ($height1 + $howmany - 1)"/>
+            <xsl:with-param name="height2" 
+                select="($source = 2) * ($height2 - $howmany) + ($target = 2) * ($height2 + 1) + ($spare = 2) * ($height2 + $howmany - 1)"/>
+            <xsl:with-param name="height3" 
+                select="($source = 3) * ($height3 - $howmany) + ($target = 3) * ($height3 + 1) + ($spare = 3) * ($height3 + $howmany - 1)"/>
+        </xsl:call-template>        
+        
+        <xsl:call-template name="transferstack">
+            <xsl:with-param name="source" select="$spare"/>
+            <xsl:with-param name="target" select="$target"/>
+            <xsl:with-param name="spare" select="$source"/>
+            <xsl:with-param name="height1" 
+                select="($source = 1) * ($height1 - $howmany) + ($target = 1) * ($height1 + 1) + ($spare = 1) * ($height1 + $howmany - 1)"/>
+            <xsl:with-param name="height2" 
+                select="($source = 2) * ($height2 - $howmany) + ($target = 2) * ($height2 + 1) + ($spare = 2) * ($height2 + $howmany - 1)"/>
+            <xsl:with-param name="height3" 
+                select="($source = 3) * ($height3 - $howmany) + ($target = 3) * ($height3 + 1) + ($spare = 3) * ($height3 + $howmany - 1)"/>
+            <xsl:with-param name="howmany" select="$howmany - 1"/>
+        </xsl:call-template>
+    </xsl:if>
+</xsl:template>
+
+<xsl:template name="print">
+    <xsl:param name="height1"/>
+    <xsl:param name="height2"/>
+    <xsl:param name="height3"/>
+    <tower>
+        <pole height="{$height1}"/>
+        <pole height="{$height2}"/>
+        <pole height="{$height3}"/>
+    </tower>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/tower2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,194 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:template match="towerheight">
+
+
+  <xsl:output encoding="utf-8"/>
+
+
+    <xsl:variable name="height">
+        <xsl:value-of select="."/>
+    </xsl:variable>
+
+    <xsl:variable name="tower">
+        <xsl:call-template name="initialize">
+            <xsl:with-param name="height" select="$height"/>
+        </xsl:call-template>
+    </xsl:variable>
+
+    <towers>
+        <xsl:copy-of select="$tower"/>
+        <xsl:call-template name="transferstack">
+            <xsl:with-param name="tower" select="$tower"/>
+            <xsl:with-param name="source" select="'left'"/>
+            <xsl:with-param name="target" select="'center'"/>
+            <xsl:with-param name="spare" select="'right'"/>
+            <xsl:with-param name="howmany" select="$height"/>
+        </xsl:call-template>
+    </towers>
+
+</xsl:template>
+
+<xsl:template name="initialize">
+    <xsl:param name="height"/>
+    <tower>
+        <leftstack>
+            <xsl:call-template name="initstack">
+                <xsl:with-param name="height" select="$height"/>
+            </xsl:call-template>
+        </leftstack>
+        <centerstack/>
+        <rightstack/>
+    </tower>
+</xsl:template>
+
+<xsl:template name="initstack">
+    <xsl:param name="height"/>
+    <xsl:param name="size" select="0"/>
+    <xsl:if test="$size > 0">
+        <disc size="{$size}"/>
+    </xsl:if>
+    <xsl:if test="$size &lt; $height">
+        <xsl:call-template name="initstack">
+            <xsl:with-param name="height" select="$height"/>
+            <xsl:with-param name="size" select="$size + 1"/>
+        </xsl:call-template>
+    </xsl:if>
+</xsl:template>
+
+<xsl:template name="transferstack">
+    <xsl:param name="tower"/>
+    <xsl:param name="source"/>
+    <xsl:param name="target"/>
+    <xsl:param name="spare"/>
+    <xsl:param name="howmany"/>
+
+    <xsl:if test="$howmany > 0">
+
+        <xsl:variable name="firstpart">
+            <xsl:call-template name="transferstack">
+                <xsl:with-param name="tower" select="$tower"/>
+                <xsl:with-param name="source" select="$source"/>
+                <xsl:with-param name="target" select="$spare"/>
+                <xsl:with-param name="spare" select="$target"/>
+                <xsl:with-param name="howmany" select="$howmany - 1"/>
+            </xsl:call-template>
+        </xsl:variable>
+
+        <xsl:variable name="lasttower">
+            <xsl:choose>
+                <xsl:when test="$firstpart/tower[last()]">
+                    <xsl:copy-of select="$firstpart/tower[last()]"/>
+                </xsl:when>
+                <xsl:otherwise>
+                    <xsl:copy-of select="$tower"/>
+                </xsl:otherwise>
+            </xsl:choose>
+        </xsl:variable>
+
+        <xsl:variable name="secondpart">
+            <xsl:call-template name="transferdisc">
+                <xsl:with-param name="tower" select="$lasttower"/>
+                <xsl:with-param name="source" select="$source"/>
+                <xsl:with-param name="target" select="$target"/>
+            </xsl:call-template>
+        </xsl:variable>
+
+        <xsl:copy-of select="$firstpart"/>
+        <xsl:copy-of select="$secondpart"/>
+
+        <xsl:call-template name="transferstack">
+            <xsl:with-param name="tower" select="$secondpart"/>
+            <xsl:with-param name="source" select="$spare"/>
+            <xsl:with-param name="target" select="$target"/>
+            <xsl:with-param name="spare" select="$source"/>
+            <xsl:with-param name="howmany" select="$howmany - 1"/>
+        </xsl:call-template>
+
+    </xsl:if>
+</xsl:template>
+
+<xsl:template name="transferdisc">
+    <xsl:param name="tower"/>
+    <xsl:param name="source"/>
+    <xsl:param name="target"/>
+
+    <xsl:variable name="disc">
+        <xsl:choose>
+            <xsl:when test="$source = 'left'">
+                <xsl:copy-of select="$tower/tower/leftstack/disc[1]"/>
+            </xsl:when>
+            <xsl:when test="$source = 'center'">
+                <xsl:copy-of select="$tower/tower/centerstack/disc[1]"/>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:copy-of select="$tower/tower/rightstack/disc[1]"/>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:variable>
+
+    <xsl:variable name="newleft">
+        <xsl:choose>
+            <xsl:when test="$source = 'left'">
+                <leftstack>
+                    <xsl:copy-of select="$tower/tower/leftstack/disc[position() > 1]"/>
+                </leftstack>
+            </xsl:when>
+            <xsl:when test="$target = 'left'">
+                <leftstack>
+                    <xsl:copy-of select="$disc"/>
+                    <xsl:copy-of select="$tower/tower/leftstack/disc"/>
+                </leftstack>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:copy-of select="$tower/tower/leftstack"/>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:variable>
+
+    <xsl:variable name="newcenter">
+        <xsl:choose>
+            <xsl:when test="$source = 'center'">
+                <centerstack>
+                    <xsl:copy-of select="$tower/tower/centerstack/disc[position() > 1]"/>
+                </centerstack>
+            </xsl:when>
+            <xsl:when test="$target = 'center'">
+                <centerstack>
+                    <xsl:copy-of select="$disc"/>
+                    <xsl:copy-of select="$tower/tower/centerstack/disc"/>
+                </centerstack>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:copy-of select="$tower/tower/centerstack"/>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:variable>
+
+    <xsl:variable name="newright">
+        <xsl:choose>
+            <xsl:when test="$source = 'right'">
+                <rightstack>
+                    <xsl:copy-of select="$tower/tower/rightstack/disc[position() > 1]"/>
+                </rightstack>
+            </xsl:when>
+            <xsl:when test="$target = 'right'">
+                <rightstack>
+                    <xsl:copy-of select="$disc"/>
+                    <xsl:copy-of select="$tower/tower/rightstack/disc"/>
+                </rightstack>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:copy-of select="$tower/tower/rightstack"/>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:variable>
+
+    <tower>
+        <xsl:copy-of select="$newleft"/>
+        <xsl:copy-of select="$newcenter"/>
+        <xsl:copy-of select="$newright"/>
+    </tower>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+ <val><current>42</current><smooth>33</smooth><delta>NaN</delta></val>
+ <val><current>34</current><smooth>44</smooth><delta>-8</delta></val>
+ <val><current>35</current><smooth>41</smooth><delta>1</delta></val>
+ <val><current>32</current><smooth>42</smooth><delta>-3</delta></val>
+ <val><current>67</current><smooth>43</smooth><delta>35</delta></val>
+ <val><current>34</current><smooth>52</smooth><delta>-33</delta></val>
+ <val><current>45</current><smooth>55</smooth><delta>11</delta></val>
+ <val><current>78</current><smooth>54</smooth><delta>33</delta></val>
+ <val><current>60</current><smooth>56</smooth><delta>-18</delta></val>
+ <val><current>63</current><smooth>61</smooth><delta>3</delta></val>
+ <val><current>56</current><smooth>66</smooth><delta>-7</delta></val>
+ <val><current>62</current><smooth>63</smooth><delta>6</delta></val>
+ <val><current>67</current><smooth>65</smooth><delta>5</delta></val>
+ <val><current>71</current><smooth>67</smooth><delta>4</delta></val>
+ <val><current>65</current><smooth>72</smooth><delta>-6</delta></val>
+ <val><current>74</current><smooth>75</smooth><delta>9</delta></val>
+ <val><current>80</current><smooth>76</smooth><delta>6</delta></val>
+ <val><current>83</current><smooth>78</smooth><delta>3</delta></val>
+ <val><current>85</current><smooth>80</smooth><delta>2</delta></val>
+ <val><current>83</current><smooth>82</smooth><delta>-2</delta></val>
+ <val><current>84</current><smooth>82</smooth><delta>1</delta></val>
+ <val><current>79</current><smooth>84</smooth><delta>-5</delta></val>
+ <val><current>82</current><smooth>84</smooth><delta>3</delta></val>
+ <val><current>85</current><smooth>85</smooth><delta>3</delta></val>
+ <val><current>87</current><smooth>86</smooth><delta>2</delta></val>
+ <val><current>90</current><smooth>87</smooth><delta>3</delta></val>
+ <val><current>91</current><smooth>87</smooth><delta>1</delta></val>
+ <val><current>93</current><smooth>85</smooth><delta>2</delta></val>
+ <val><current>88</current><smooth>82</smooth><delta>-5</delta></val>
+ <val><current>84</current><smooth>80</smooth><delta>-4</delta></val>
+ <val><current>72</current><smooth>77</smooth><delta>-12</delta></val>
+ <val><current>66</current><smooth>72</smooth><delta>-6</delta></val>
+ <val><current>73</current><smooth>63</smooth><delta>7</delta></val>
+ <val><current>61</current><smooth>58</smooth><delta>-12</delta></val>
+ <val><current>58</current><smooth>51</smooth><delta>-3</delta></val>
+ <val><current>42</current><smooth>49</smooth><delta>-16</delta></val>
+ <val><current>39</current><smooth>43</smooth><delta>-3</delta></val>
+ <val><current>30</current><smooth>39</smooth><delta>-9</delta></val>
+ <val><current>37</current><smooth>32</smooth><delta>7</delta></val>
+ <val><current>32</current><smooth>29</smooth><delta>-5</delta></val>
+ <val><current>28</current><smooth>26</smooth><delta>-4</delta></val>
+ <val><current>22</current><smooth>28</smooth><delta>-6</delta></val>
+ <val><current>18</current><smooth>26</smooth><delta>-4</delta></val>
+ <val><current>19</current><smooth>25</smooth><delta>1</delta></val>
+ <val><current>34</current><smooth>22</smooth><delta>15</delta></val>
+ <val><current>21</current><smooth>27</smooth><delta>-13</delta></val>
+ <val><current>27</current><smooth>31</smooth><delta>6</delta></val>
+ <val><current>25</current><smooth>38</smooth><delta>-2</delta></val>
+ <val><current>39</current><smooth>41</smooth><delta>14</delta></val>
+ <val><current>50</current><smooth>48</smooth><delta>11</delta></val>
+ <val><current>61</current><smooth>54</smooth><delta>11</delta></val>
+ <val><current>66</current><smooth>62</smooth><delta>5</delta></val>
+ <val><current>73</current><smooth>69</smooth><delta>7</delta></val>
+ <val><current>71</current><smooth>77</smooth><delta>-2</delta></val>
+ <val><current>80</current><smooth>80</smooth><delta>9</delta></val>
+ <val><current>90</current><smooth>84</smooth><delta>10</delta></val>
+ <val><current>92</current><smooth>79</smooth><delta>2</delta></val>
+ <val><current>93</current><smooth>72</smooth><delta>1</delta></val>
+ <val><current>99</current><smooth>64</smooth><delta>6</delta></val>
+ <val><current>42</current><smooth>64</smooth><delta>-57</delta></val>
+ <val><current>34</current><smooth>61</smooth><delta>-8</delta></val>
+ <val><current>35</current><smooth>51</smooth><delta>1</delta></val>
+ <val><current>32</current><smooth>42</smooth><delta>-3</delta></val>
+ <val><current>67</current><smooth>43</smooth><delta>35</delta></val>
+ <val><current>34</current><smooth>52</smooth><delta>-33</delta></val>
+ <val><current>45</current><smooth>55</smooth><delta>11</delta></val>
+ <val><current>78</current><smooth>54</smooth><delta>33</delta></val>
+ <val><current>60</current><smooth>56</smooth><delta>-18</delta></val>
+ <val><current>63</current><smooth>61</smooth><delta>3</delta></val>
+ <val><current>56</current><smooth>66</smooth><delta>-7</delta></val>
+ <val><current>62</current><smooth>63</smooth><delta>6</delta></val>
+ <val><current>67</current><smooth>65</smooth><delta>5</delta></val>
+ <val><current>71</current><smooth>67</smooth><delta>4</delta></val>
+ <val><current>65</current><smooth>72</smooth><delta>-6</delta></val>
+ <val><current>74</current><smooth>75</smooth><delta>9</delta></val>
+ <val><current>80</current><smooth>76</smooth><delta>6</delta></val>
+ <val><current>83</current><smooth>78</smooth><delta>3</delta></val>
+ <val><current>85</current><smooth>80</smooth><delta>2</delta></val>
+ <val><current>83</current><smooth>82</smooth><delta>-2</delta></val>
+ <val><current>84</current><smooth>82</smooth><delta>1</delta></val>
+ <val><current>79</current><smooth>84</smooth><delta>-5</delta></val>
+ <val><current>82</current><smooth>84</smooth><delta>3</delta></val>
+ <val><current>85</current><smooth>85</smooth><delta>3</delta></val>
+ <val><current>87</current><smooth>86</smooth><delta>2</delta></val>
+ <val><current>90</current><smooth>87</smooth><delta>3</delta></val>
+ <val><current>91</current><smooth>87</smooth><delta>1</delta></val>
+ <val><current>93</current><smooth>85</smooth><delta>2</delta></val>
+ <val><current>88</current><smooth>82</smooth><delta>-5</delta></val>
+ <val><current>84</current><smooth>80</smooth><delta>-4</delta></val>
+ <val><current>72</current><smooth>77</smooth><delta>-12</delta></val>
+ <val><current>66</current><smooth>72</smooth><delta>-6</delta></val>
+ <val><current>73</current><smooth>63</smooth><delta>7</delta></val>
+ <val><current>61</current><smooth>58</smooth><delta>-12</delta></val>
+ <val><current>58</current><smooth>51</smooth><delta>-3</delta></val>
+ <val><current>42</current><smooth>49</smooth><delta>-16</delta></val>
+ <val><current>39</current><smooth>43</smooth><delta>-3</delta></val>
+ <val><current>30</current><smooth>39</smooth><delta>-9</delta></val>
+ <val><current>37</current><smooth>32</smooth><delta>7</delta></val>
+ <val><current>32</current><smooth>29</smooth><delta>-5</delta></val>
+ <val><current>28</current><smooth>26</smooth><delta>-4</delta></val>
+ <val><current>22</current><smooth>28</smooth><delta>-6</delta></val>
+ <val><current>18</current><smooth>26</smooth><delta>-4</delta></val>
+ <val><current>19</current><smooth>25</smooth><delta>1</delta></val>
+ <val><current>34</current><smooth>22</smooth><delta>15</delta></val>
+ <val><current>21</current><smooth>27</smooth><delta>-13</delta></val>
+ <val><current>27</current><smooth>31</smooth><delta>6</delta></val>
+ <val><current>25</current><smooth>38</smooth><delta>-2</delta></val>
+ <val><current>39</current><smooth>41</smooth><delta>14</delta></val>
+ <val><current>50</current><smooth>48</smooth><delta>11</delta></val>
+ <val><current>61</current><smooth>54</smooth><delta>11</delta></val>
+ <val><current>66</current><smooth>62</smooth><delta>5</delta></val>
+ <val><current>73</current><smooth>69</smooth><delta>7</delta></val>
+ <val><current>71</current><smooth>77</smooth><delta>-2</delta></val>
+ <val><current>80</current><smooth>80</smooth><delta>9</delta></val>
+ <val><current>90</current><smooth>84</smooth><delta>10</delta></val>
+ <val><current>92</current><smooth>86</smooth><delta>2</delta></val>
+ <val><current>93</current><smooth>90</smooth><delta>1</delta></val>
+ <val><current>99</current><smooth>91</smooth><delta>6</delta></val>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1300 @@
+<dgnorm_document>
+<val>
+<current>
+42
+</current>
+<smooth>
+33
+</smooth>
+<delta>
+NaN
+</delta>
+</val>
+<val>
+<current>
+34
+</current>
+<smooth>
+44
+</smooth>
+<delta>
+-8
+</delta>
+</val>
+<val>
+<current>
+35
+</current>
+<smooth>
+41
+</smooth>
+<delta>
+1
+</delta>
+</val>
+<val>
+<current>
+32
+</current>
+<smooth>
+42
+</smooth>
+<delta>
+-3
+</delta>
+</val>
+<val>
+<current>
+67
+</current>
+<smooth>
+43
+</smooth>
+<delta>
+35
+</delta>
+</val>
+<val>
+<current>
+34
+</current>
+<smooth>
+52
+</smooth>
+<delta>
+-33
+</delta>
+</val>
+<val>
+<current>
+45
+</current>
+<smooth>
+55
+</smooth>
+<delta>
+11
+</delta>
+</val>
+<val>
+<current>
+78
+</current>
+<smooth>
+54
+</smooth>
+<delta>
+33
+</delta>
+</val>
+<val>
+<current>
+60
+</current>
+<smooth>
+56
+</smooth>
+<delta>
+-18
+</delta>
+</val>
+<val>
+<current>
+63
+</current>
+<smooth>
+61
+</smooth>
+<delta>
+3
+</delta>
+</val>
+<val>
+<current>
+56
+</current>
+<smooth>
+66
+</smooth>
+<delta>
+-7
+</delta>
+</val>
+<val>
+<current>
+62
+</current>
+<smooth>
+63
+</smooth>
+<delta>
+6
+</delta>
+</val>
+<val>
+<current>
+67
+</current>
+<smooth>
+65
+</smooth>
+<delta>
+5
+</delta>
+</val>
+<val>
+<current>
+71
+</current>
+<smooth>
+67
+</smooth>
+<delta>
+4
+</delta>
+</val>
+<val>
+<current>
+65
+</current>
+<smooth>
+72
+</smooth>
+<delta>
+-6
+</delta>
+</val>
+<val>
+<current>
+74
+</current>
+<smooth>
+75
+</smooth>
+<delta>
+9
+</delta>
+</val>
+<val>
+<current>
+80
+</current>
+<smooth>
+76
+</smooth>
+<delta>
+6
+</delta>
+</val>
+<val>
+<current>
+83
+</current>
+<smooth>
+78
+</smooth>
+<delta>
+3
+</delta>
+</val>
+<val>
+<current>
+85
+</current>
+<smooth>
+80
+</smooth>
+<delta>
+2
+</delta>
+</val>
+<val>
+<current>
+83
+</current>
+<smooth>
+82
+</smooth>
+<delta>
+-2
+</delta>
+</val>
+<val>
+<current>
+84
+</current>
+<smooth>
+82
+</smooth>
+<delta>
+1
+</delta>
+</val>
+<val>
+<current>
+79
+</current>
+<smooth>
+84
+</smooth>
+<delta>
+-5
+</delta>
+</val>
+<val>
+<current>
+82
+</current>
+<smooth>
+84
+</smooth>
+<delta>
+3
+</delta>
+</val>
+<val>
+<current>
+85
+</current>
+<smooth>
+85
+</smooth>
+<delta>
+3
+</delta>
+</val>
+<val>
+<current>
+87
+</current>
+<smooth>
+86
+</smooth>
+<delta>
+2
+</delta>
+</val>
+<val>
+<current>
+90
+</current>
+<smooth>
+87
+</smooth>
+<delta>
+3
+</delta>
+</val>
+<val>
+<current>
+91
+</current>
+<smooth>
+87
+</smooth>
+<delta>
+1
+</delta>
+</val>
+<val>
+<current>
+93
+</current>
+<smooth>
+85
+</smooth>
+<delta>
+2
+</delta>
+</val>
+<val>
+<current>
+88
+</current>
+<smooth>
+82
+</smooth>
+<delta>
+-5
+</delta>
+</val>
+<val>
+<current>
+84
+</current>
+<smooth>
+80
+</smooth>
+<delta>
+-4
+</delta>
+</val>
+<val>
+<current>
+72
+</current>
+<smooth>
+77
+</smooth>
+<delta>
+-12
+</delta>
+</val>
+<val>
+<current>
+66
+</current>
+<smooth>
+72
+</smooth>
+<delta>
+-6
+</delta>
+</val>
+<val>
+<current>
+73
+</current>
+<smooth>
+63
+</smooth>
+<delta>
+7
+</delta>
+</val>
+<val>
+<current>
+61
+</current>
+<smooth>
+58
+</smooth>
+<delta>
+-12
+</delta>
+</val>
+<val>
+<current>
+58
+</current>
+<smooth>
+51
+</smooth>
+<delta>
+-3
+</delta>
+</val>
+<val>
+<current>
+42
+</current>
+<smooth>
+49
+</smooth>
+<delta>
+-16
+</delta>
+</val>
+<val>
+<current>
+39
+</current>
+<smooth>
+43
+</smooth>
+<delta>
+-3
+</delta>
+</val>
+<val>
+<current>
+30
+</current>
+<smooth>
+39
+</smooth>
+<delta>
+-9
+</delta>
+</val>
+<val>
+<current>
+37
+</current>
+<smooth>
+32
+</smooth>
+<delta>
+7
+</delta>
+</val>
+<val>
+<current>
+32
+</current>
+<smooth>
+29
+</smooth>
+<delta>
+-5
+</delta>
+</val>
+<val>
+<current>
+28
+</current>
+<smooth>
+26
+</smooth>
+<delta>
+-4
+</delta>
+</val>
+<val>
+<current>
+22
+</current>
+<smooth>
+28
+</smooth>
+<delta>
+-6
+</delta>
+</val>
+<val>
+<current>
+18
+</current>
+<smooth>
+26
+</smooth>
+<delta>
+-4
+</delta>
+</val>
+<val>
+<current>
+19
+</current>
+<smooth>
+25
+</smooth>
+<delta>
+1
+</delta>
+</val>
+<val>
+<current>
+34
+</current>
+<smooth>
+22
+</smooth>
+<delta>
+15
+</delta>
+</val>
+<val>
+<current>
+21
+</current>
+<smooth>
+27
+</smooth>
+<delta>
+-13
+</delta>
+</val>
+<val>
+<current>
+27
+</current>
+<smooth>
+31
+</smooth>
+<delta>
+6
+</delta>
+</val>
+<val>
+<current>
+25
+</current>
+<smooth>
+38
+</smooth>
+<delta>
+-2
+</delta>
+</val>
+<val>
+<current>
+39
+</current>
+<smooth>
+41
+</smooth>
+<delta>
+14
+</delta>
+</val>
+<val>
+<current>
+50
+</current>
+<smooth>
+48
+</smooth>
+<delta>
+11
+</delta>
+</val>
+<val>
+<current>
+61
+</current>
+<smooth>
+54
+</smooth>
+<delta>
+11
+</delta>
+</val>
+<val>
+<current>
+66
+</current>
+<smooth>
+62
+</smooth>
+<delta>
+5
+</delta>
+</val>
+<val>
+<current>
+73
+</current>
+<smooth>
+69
+</smooth>
+<delta>
+7
+</delta>
+</val>
+<val>
+<current>
+71
+</current>
+<smooth>
+77
+</smooth>
+<delta>
+-2
+</delta>
+</val>
+<val>
+<current>
+80
+</current>
+<smooth>
+80
+</smooth>
+<delta>
+9
+</delta>
+</val>
+<val>
+<current>
+90
+</current>
+<smooth>
+84
+</smooth>
+<delta>
+10
+</delta>
+</val>
+<val>
+<current>
+92
+</current>
+<smooth>
+79
+</smooth>
+<delta>
+2
+</delta>
+</val>
+<val>
+<current>
+93
+</current>
+<smooth>
+72
+</smooth>
+<delta>
+1
+</delta>
+</val>
+<val>
+<current>
+99
+</current>
+<smooth>
+64
+</smooth>
+<delta>
+6
+</delta>
+</val>
+<val>
+<current>
+42
+</current>
+<smooth>
+64
+</smooth>
+<delta>
+-57
+</delta>
+</val>
+<val>
+<current>
+34
+</current>
+<smooth>
+61
+</smooth>
+<delta>
+-8
+</delta>
+</val>
+<val>
+<current>
+35
+</current>
+<smooth>
+51
+</smooth>
+<delta>
+1
+</delta>
+</val>
+<val>
+<current>
+32
+</current>
+<smooth>
+42
+</smooth>
+<delta>
+-3
+</delta>
+</val>
+<val>
+<current>
+67
+</current>
+<smooth>
+43
+</smooth>
+<delta>
+35
+</delta>
+</val>
+<val>
+<current>
+34
+</current>
+<smooth>
+52
+</smooth>
+<delta>
+-33
+</delta>
+</val>
+<val>
+<current>
+45
+</current>
+<smooth>
+55
+</smooth>
+<delta>
+11
+</delta>
+</val>
+<val>
+<current>
+78
+</current>
+<smooth>
+54
+</smooth>
+<delta>
+33
+</delta>
+</val>
+<val>
+<current>
+60
+</current>
+<smooth>
+56
+</smooth>
+<delta>
+-18
+</delta>
+</val>
+<val>
+<current>
+63
+</current>
+<smooth>
+61
+</smooth>
+<delta>
+3
+</delta>
+</val>
+<val>
+<current>
+56
+</current>
+<smooth>
+66
+</smooth>
+<delta>
+-7
+</delta>
+</val>
+<val>
+<current>
+62
+</current>
+<smooth>
+63
+</smooth>
+<delta>
+6
+</delta>
+</val>
+<val>
+<current>
+67
+</current>
+<smooth>
+65
+</smooth>
+<delta>
+5
+</delta>
+</val>
+<val>
+<current>
+71
+</current>
+<smooth>
+67
+</smooth>
+<delta>
+4
+</delta>
+</val>
+<val>
+<current>
+65
+</current>
+<smooth>
+72
+</smooth>
+<delta>
+-6
+</delta>
+</val>
+<val>
+<current>
+74
+</current>
+<smooth>
+75
+</smooth>
+<delta>
+9
+</delta>
+</val>
+<val>
+<current>
+80
+</current>
+<smooth>
+76
+</smooth>
+<delta>
+6
+</delta>
+</val>
+<val>
+<current>
+83
+</current>
+<smooth>
+78
+</smooth>
+<delta>
+3
+</delta>
+</val>
+<val>
+<current>
+85
+</current>
+<smooth>
+80
+</smooth>
+<delta>
+2
+</delta>
+</val>
+<val>
+<current>
+83
+</current>
+<smooth>
+82
+</smooth>
+<delta>
+-2
+</delta>
+</val>
+<val>
+<current>
+84
+</current>
+<smooth>
+82
+</smooth>
+<delta>
+1
+</delta>
+</val>
+<val>
+<current>
+79
+</current>
+<smooth>
+84
+</smooth>
+<delta>
+-5
+</delta>
+</val>
+<val>
+<current>
+82
+</current>
+<smooth>
+84
+</smooth>
+<delta>
+3
+</delta>
+</val>
+<val>
+<current>
+85
+</current>
+<smooth>
+85
+</smooth>
+<delta>
+3
+</delta>
+</val>
+<val>
+<current>
+87
+</current>
+<smooth>
+86
+</smooth>
+<delta>
+2
+</delta>
+</val>
+<val>
+<current>
+90
+</current>
+<smooth>
+87
+</smooth>
+<delta>
+3
+</delta>
+</val>
+<val>
+<current>
+91
+</current>
+<smooth>
+87
+</smooth>
+<delta>
+1
+</delta>
+</val>
+<val>
+<current>
+93
+</current>
+<smooth>
+85
+</smooth>
+<delta>
+2
+</delta>
+</val>
+<val>
+<current>
+88
+</current>
+<smooth>
+82
+</smooth>
+<delta>
+-5
+</delta>
+</val>
+<val>
+<current>
+84
+</current>
+<smooth>
+80
+</smooth>
+<delta>
+-4
+</delta>
+</val>
+<val>
+<current>
+72
+</current>
+<smooth>
+77
+</smooth>
+<delta>
+-12
+</delta>
+</val>
+<val>
+<current>
+66
+</current>
+<smooth>
+72
+</smooth>
+<delta>
+-6
+</delta>
+</val>
+<val>
+<current>
+73
+</current>
+<smooth>
+63
+</smooth>
+<delta>
+7
+</delta>
+</val>
+<val>
+<current>
+61
+</current>
+<smooth>
+58
+</smooth>
+<delta>
+-12
+</delta>
+</val>
+<val>
+<current>
+58
+</current>
+<smooth>
+51
+</smooth>
+<delta>
+-3
+</delta>
+</val>
+<val>
+<current>
+42
+</current>
+<smooth>
+49
+</smooth>
+<delta>
+-16
+</delta>
+</val>
+<val>
+<current>
+39
+</current>
+<smooth>
+43
+</smooth>
+<delta>
+-3
+</delta>
+</val>
+<val>
+<current>
+30
+</current>
+<smooth>
+39
+</smooth>
+<delta>
+-9
+</delta>
+</val>
+<val>
+<current>
+37
+</current>
+<smooth>
+32
+</smooth>
+<delta>
+7
+</delta>
+</val>
+<val>
+<current>
+32
+</current>
+<smooth>
+29
+</smooth>
+<delta>
+-5
+</delta>
+</val>
+<val>
+<current>
+28
+</current>
+<smooth>
+26
+</smooth>
+<delta>
+-4
+</delta>
+</val>
+<val>
+<current>
+22
+</current>
+<smooth>
+28
+</smooth>
+<delta>
+-6
+</delta>
+</val>
+<val>
+<current>
+18
+</current>
+<smooth>
+26
+</smooth>
+<delta>
+-4
+</delta>
+</val>
+<val>
+<current>
+19
+</current>
+<smooth>
+25
+</smooth>
+<delta>
+1
+</delta>
+</val>
+<val>
+<current>
+34
+</current>
+<smooth>
+22
+</smooth>
+<delta>
+15
+</delta>
+</val>
+<val>
+<current>
+21
+</current>
+<smooth>
+27
+</smooth>
+<delta>
+-13
+</delta>
+</val>
+<val>
+<current>
+27
+</current>
+<smooth>
+31
+</smooth>
+<delta>
+6
+</delta>
+</val>
+<val>
+<current>
+25
+</current>
+<smooth>
+38
+</smooth>
+<delta>
+-2
+</delta>
+</val>
+<val>
+<current>
+39
+</current>
+<smooth>
+41
+</smooth>
+<delta>
+14
+</delta>
+</val>
+<val>
+<current>
+50
+</current>
+<smooth>
+48
+</smooth>
+<delta>
+11
+</delta>
+</val>
+<val>
+<current>
+61
+</current>
+<smooth>
+54
+</smooth>
+<delta>
+11
+</delta>
+</val>
+<val>
+<current>
+66
+</current>
+<smooth>
+62
+</smooth>
+<delta>
+5
+</delta>
+</val>
+<val>
+<current>
+73
+</current>
+<smooth>
+69
+</smooth>
+<delta>
+7
+</delta>
+</val>
+<val>
+<current>
+71
+</current>
+<smooth>
+77
+</smooth>
+<delta>
+-2
+</delta>
+</val>
+<val>
+<current>
+80
+</current>
+<smooth>
+80
+</smooth>
+<delta>
+9
+</delta>
+</val>
+<val>
+<current>
+90
+</current>
+<smooth>
+84
+</smooth>
+<delta>
+10
+</delta>
+</val>
+<val>
+<current>
+92
+</current>
+<smooth>
+86
+</smooth>
+<delta>
+2
+</delta>
+</val>
+<val>
+<current>
+93
+</current>
+<smooth>
+90
+</smooth>
+<delta>
+1
+</delta>
+</val>
+<val>
+<current>
+99
+</current>
+<smooth>
+91
+</smooth>
+<delta>
+6
+</delta>
+</val>
+</dgnorm_document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,121 @@
+<?xml version="1.0"?>
+<data>
+ <val>42</val>
+ <val>34</val>
+ <val>35</val>
+ <val>32</val>
+ <val>67</val>
+ <val>34</val>
+ <val>45</val>
+ <val>78</val>
+ <val>60</val>
+ <val>63</val>
+ <val>56</val>
+ <val>62</val>
+ <val>67</val>
+ <val>71</val>
+ <val>65</val>
+ <val>74</val>
+ <val>80</val>
+ <val>83</val>
+ <val>85</val>
+ <val>83</val>
+ <val>84</val>
+ <val>79</val>
+ <val>82</val>
+ <val>85</val>
+ <val>87</val>
+ <val>90</val>
+ <val>91</val>
+ <val>93</val>
+ <val>88</val>
+ <val>84</val>
+ <val>72</val>
+ <val>66</val>
+ <val>73</val>
+ <val>61</val>
+ <val>58</val>
+ <val>42</val>
+ <val>39</val>
+ <val>30</val>
+ <val>37</val>
+ <val>32</val>
+ <val>28</val>
+ <val>22</val>
+ <val>18</val>
+ <val>19</val>
+ <val>34</val>
+ <val>21</val>
+ <val>27</val>
+ <val>25</val>
+ <val>39</val>
+ <val>50</val>
+ <val>61</val>
+ <val>66</val>
+ <val>73</val>
+ <val>71</val>
+ <val>80</val>
+ <val>90</val>
+ <val>92</val>
+ <val>93</val>
+ <val>99</val>
+ <val>42</val>
+ <val>34</val>
+ <val>35</val>
+ <val>32</val>
+ <val>67</val>
+ <val>34</val>
+ <val>45</val>
+ <val>78</val>
+ <val>60</val>
+ <val>63</val>
+ <val>56</val>
+ <val>62</val>
+ <val>67</val>
+ <val>71</val>
+ <val>65</val>
+ <val>74</val>
+ <val>80</val>
+ <val>83</val>
+ <val>85</val>
+ <val>83</val>
+ <val>84</val>
+ <val>79</val>
+ <val>82</val>
+ <val>85</val>
+ <val>87</val>
+ <val>90</val>
+ <val>91</val>
+ <val>93</val>
+ <val>88</val>
+ <val>84</val>
+ <val>72</val>
+ <val>66</val>
+ <val>73</val>
+ <val>61</val>
+ <val>58</val>
+ <val>42</val>
+ <val>39</val>
+ <val>30</val>
+ <val>37</val>
+ <val>32</val>
+ <val>28</val>
+ <val>22</val>
+ <val>18</val>
+ <val>19</val>
+ <val>34</val>
+ <val>21</val>
+ <val>27</val>
+ <val>25</val>
+ <val>39</val>
+ <val>50</val>
+ <val>61</val>
+ <val>66</val>
+ <val>73</val>
+ <val>71</val>
+ <val>80</val>
+ <val>90</val>
+ <val>92</val>
+ <val>93</val>
+ <val>99</val>
+</data>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/trend.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output encoding="utf-8"/>
+  <xsl:template match="val">
+    <val>
+      <current>
+        <xsl:value-of select="."/>
+      </current>
+      <smooth>
+        <xsl:value-of select="floor(sum(preceding-sibling::val[position() &lt; 4] | following-sibling::val[position() &lt; 4]) div count(preceding-sibling::val[position() &lt; 4] | following-sibling::val[position() &lt; 4]))"/>
+
+      </smooth>
+      <delta>
+        <xsl:value-of select=". - preceding-sibling::val[1]"/>
+      </delta>
+    </val>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TOP>
+<B>x2xxxb</B>
+<A>a3xxxx</A>
+<B>a5xxxb</B>
+<B>x7xxxb</B>
+<A>a8xxxx</A>
+</TOP>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<TOP>
+<B>
+x2xxxb
+</B>
+<A>
+a3xxxx
+</A>
+<B>
+a5xxxb
+</B>
+<B>
+x7xxxb
+</B>
+<A>
+a8xxxx
+</A>
+</TOP>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<top>
+  <foo>x1xxxx</foo>
+  <foo>x2xxxb</foo>
+  <foo>a3xxxx</foo>
+  <foo>x4xxxx</foo>
+  <foo>a5xxxb</foo>
+  <foo>x6xxxx</foo>
+  <foo>x7xxxb</foo>
+  <foo>a8xxxx</foo>
+
+</top>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/union.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,27 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:template match='*[starts-with(.,"a")]'>
+    <A><xsl:value-of select="."/></A><xsl:text>
+</xsl:text>
+</xsl:template>
+
+<xsl:template match='*[starts-with(substring(.,string-length(.)),"b")]'>
+    <B><xsl:value-of select="."/></B><xsl:text>
+</xsl:text>
+</xsl:template>
+
+<xsl:template match="top">
+    <TOP><xsl:text>
+</xsl:text>
+       <xsl:apply-templates select='*[starts-with(.,"a")]|*[starts-with(substring(.,string-length(.)),"b")]'/>
+    </TOP>
+</xsl:template>
+
+
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TOP>
+   <FOO>foo1</FOO>
+   barg1
+   nar1
+   <BAR>
+      
+      
+   </BAR>
+   nomba
+   <BAR>bar2</BAR>
+   nar2
+   nyargh
+   gurf
+   hurk
+   nar2
+   foo2
+   barg2
+</TOP>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.ref
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.ref	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.ref	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<TOP>
+<FOO>
+foo1
+</FOO>
+barg1
+nar1
+<BAR>
+</BAR>
+nomba
+<BAR>
+bar2
+</BAR>
+nar2
+nyargh
+gurf
+hurk
+nar2
+foo2
+barg2
+</TOP>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<top>
+   <foo>foo1</foo>
+   <barg>barg1</barg>
+   <nar>nar1</nar>
+   <bar>
+      <baz/>
+      <yadda/>
+   </bar>
+   <foo>nomba</foo>
+   <bar>bar2</bar>
+   <nar>nar2</nar>
+   <bar>nyargh</bar>
+   <bar>gurf</bar>
+   <foo>hurk</foo>
+   <nar>nar2</nar>
+   <foo>foo2</foo>
+   <barg>barg2</barg>
+</top>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xpath.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,39 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ 
+<xsl:output encoding="utf-8"/>
+
+<xsl:template match="top">
+    <TOP>
+        <xsl:apply-templates/>
+    </TOP>
+</xsl:template>
+
+<xsl:template match="bar[baz or following-sibling::*[1][self::nar]]">
+    <BAR><xsl:value-of select="."/></BAR>
+</xsl:template>
+
+<xsl:template match="foo[following-sibling::*[position()&lt;=2][self::barg] and
+                         following-sibling::*[position()&lt;=2][self::nar]]">
+    <FOO><xsl:value-of select="."/></FOO>
+</xsl:template>
+</xsl:stylesheet>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,139 @@
+<HTML>
+<HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<TITLE>TFI Technology Products</TITLE>
+<META content="Memory, Boost, Performance, Memory+, Memory Plus, Crash Protection, StayAlive, Crash, Protector, Crash Protector, TFI, TFI Technology, WatchOut , Access Violation, General Protection Fault, Application Hang, GPF, Screen Freeze, Freeze, Page Fault, Application Recovery, Crash of the Week, Well Known Bug, Bug, Cache, RAM, Virtual Memory, VCache, Memory Tuning, SIMMS, Page File, page faults" name="keywords">
+<META content="TFI Technology Ltd, Home of StayAlive, the premier crash protection software and Memory+ the total memory control system." name="description">
+<META content="MSHTML 5.00.2920.0" name="GENERATOR">
+<META content="(c) 1998-2000, TFI Technology Ltd" name="copyright">
+<META content="TFI Technology" name="author">
+<META content="1 day" name="revisit-after">
+<META content="ALL" name="Robot">
+<META content="General" name="rating">
+<META content="TFI Technology Ltd Home of StayAlive, the premier crash protection software." name="DC.Title">
+<META content="TFI Technology" name="DC.Creator">
+<META content="TFI Technology Ltd Home of StayAlive, the premier crash protection software." name="DC.Description">
+<META content="TFI Technology" name="DC.Publisher">
+<META content="TFI Technology" name="DC.Contributors">
+<SCRIPT language="JavaScript">
+ 
+
+	if (document.images)
+	{
+		var imgBannerPreload = new Image();
+		imgBannerPreload.src="images/AboutBanner.gif";
+
+		var imgWaterMarkPreload = new Image();
+		imgWaterMarkPreload.src="images/WaterMark.gif";
+
+		var imgAboutPreload = new Image();
+		imgAboutPreload.src="images/abouttfism.gif";
+		var imgAboutSelPreload = new Image();
+		imgAboutSelPreload.src = "images/abouttfism_sel.gif"
+
+		var imgBuyNowPreload = new Image();
+		imgBuyNowPreload.src="images/buynowsm.gif";
+		var imgBuyNowSelPreload = new Image();
+		imgBuyNowSelPreload.src = "images/buynowsm_sel.gif"
+
+		var imgDownloadsPreload = new Image();
+		imgDownloadsPreload.src="images/downloadssm.gif";
+		var imgDownloadsSelPreload = new Image();
+		imgDownloadsSelPreload.src = "images/downloadssm_sel.gif"
+
+		var imgProductsPreload = new Image();
+		imgProductsPreload.src="images/productssm.gif";
+		var imgProductsSelPreload = new Image();
+		imgProductsSelPreload.src = "images/productssm_sel.gif"
+
+		var imgNewswirePreload = new Image();
+		imgNewswirePreload.src="images/newswiresm.gif";
+		var imgNewswireSelPreload = new Image();
+		imgNewswireSelPreload.src = "images/newswiresm_sel.gif"
+	}
+
+function img_preload(imgName)
+{
+	if (document.images)
+	{
+		var imgPreload = new Image();
+		imgPreload.src="images/" + imgName;
+	}
+}
+
+function act(imgName)
+{
+	if (document.images)
+	{
+		document.images[imgName].src = eval("img" + imgName + "SelPreload.src");
+	}
+}
+
+function inact(imgName)
+{
+	if (document.images)
+	{
+		document.images[imgName].src = eval("img" + imgName + "Preload.src");
+	}
+}
+//
+
+</SCRIPT>
+</HEAD>
+<BODY background="TFI Technology Products_files/WaterMark.gif" bgColor="#ffffff" bgProperties="fixed"><TABLE border="0" cellPadding="0" cellSpacing="0" height="516" width="125"><TBODY>
+<TR><TD colSpan="2" height="95">
+<MAP name="FrontPageMap0"><AREA href="http://www.tfi-technology.com/index.htm"></MAP><IMG alt="TFI Technology Products" border="0" height="97" src="TFI%20Technology%20Products_files/ProductsBanner.gif" useMap="#FrontPageMap0" width="569">
+</TD></TR>
+<TR>
+<TD align="left" height="450" vAlign="top" width="100"><TABLE border="0" cellPadding="4" cellSpacing="0" width="100%"><TBODY>
+<TR>
+<TD height="223" vAlign="top" width="6%">  
+                    <P><IMG align="middle" height="120" src="TFI%20Technology%20Products_files/vbarsm.gif" width="3"></P>
+</TD>
+<TD background="TFI Technology Products_files/bar2.gif" height="223" vAlign="top" width="94%">  
+                    <P>
+<A href="http://www.tfi-technology.com/products.htm" onmouseout="inact('Products')" onmouseover="act('Products')"><IMG align="middle" alt="Products" border="0" height="20" hspace="0" name="Products" src="TFI%20Technology%20Products_files/productssm.gif" width="95"><BR></A><A href="http://www.tfi-technology.com/downloads.htm" onmouseout="inact('Downloads')" onmouseover="act('Downloads')"><IMG align="middle" alt="Downloads" border="0" height="20" hspace="0" name="Downloads" src="TFI%20Technology%20Products_files/downloadssm.gif" width="95"><BR></A><A href="http://www.tfi-technology.com/buynow.htm" onmouseout="inact('BuyNow')" onmouseover="act('BuyNow')"><IMG align="middle" alt="Buy Now" border="0" height="20" hspace="0" name="BuyNow" src="TFI%20Technology%20Products_files/buynowsm.gif" width="95"><BR></A><A href="http://www.tfi-technology.com/about.htm" onmouseout="inact('About')" onmouseover="act('About')"><IMG align="middle" alt="About TFI" border="0" height="20" hspace="0" name="About" src="TFI%20Technology%20Products_files/abouttfism.gif" width="95"><BR></A><A href="http://www.tfi-technology.com/newsroom.htm" onmouseout="inact('Newswire')" onmouseover="act('Newswire')"><IMG align="middle" alt="News Room" border="0" height="20" hspace="0" name="Newswire" src="TFI%20Technology%20Products_files/newswiresm.gif" width="95"></A>
+</P>
+</TD>
+</TR>
+<TR><TD align="center" colSpan="2">  
+                    <FORM action="http://cgi.www.tfi-technology.com/cgi-bin/www.tfi-technology.com/subscribe.pl" method="post"><P><FONT face="Arial, Helvetica, sans-serif" size="1"><B>Keep up to date!</B><BR>Submit your e-mail address below.
+                          <BR><INPUT name="email" size="12"><INPUT name="B1" type="submit" value="Submit"><BR></FONT></P></FORM>
+</TD></TR>
+<TR><TD colSpan="2" width="100">  
+                    <P> </P>
+<P> </P>
+<P><FONT face="Arial, Helvetica, sans-serif" size="1">Copyright ©
+                        <BR>1998-2000
+                        <BR>TFI Technology Ltd
+                        <BR><A href="mailto:enquiry at tfi-technology.com">Mail Us</A></FONT></P>
+</TD></TR>
+</TBODY></TABLE></TD>
+<TD align="left" height="450" vAlign="top" width="464">
+<TABLE border="0" cellPadding="0" cellSpacing="0" width="464"><TBODY><TR>
+<TD width="78"></TD>
+<TD vAlign="top" width="386">  </TD>
+</TR></TBODY></TABLE>
+<CENTER><TABLE border="3" cellpadding="3">
+	<TR>
+		<TD>Row1 - Text1</TD>
+		<TD>Row1 - Text2</TD>
+	</TR>
+	<TR>
+		<TD>Row2 - Text1</TD>
+		<TD>Row2 - Text2</TD>
+	</TR>
+	<TR>
+		<TD>Row3 - Text1</TD>
+		<TD>Row3 - Text2</TD>
+	</TR>
+	<TR>
+		<TD>Row4 - Text1</TD>
+		<TD>Row4 - Text2</TD>
+	</TR>
+</TABLE></CENTER>
+<P align="left"><IMG alt="hbar.gif (979 bytes)" height="8" src="TFI%20Technology%20Products_files/hbar.gif" width="458"></P>
+</TD>
+</TR>
+</TBODY></TABLE></BODY>
+</HTML>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+
+<table>
+	<row>
+		<column>Row1 - Text1</column>
+		<column>Row1 - Text2</column>
+	</row>
+	<row>
+		<column>Row2 - Text1</column>
+		<column>Row2 - Text2</column>
+	</row>
+	<row>
+		<column>Row3 - Text1</column>
+		<column>Row3 - Text2</column>
+	</row>
+	<row>
+		<column>Row4 - Text1</column>
+		<column>Row4 - Text2</column>
+	</row>
+</table>		
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,202 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output encoding="utf-8"/>
+<xsl:template match="/">
+<!--<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">-->
+<!-- saved from url=(0042)http://www.tfi-technology.com/products.htm -->
+<HTML>
+  <HEAD>
+    <TITLE>TFI Technology Products</TITLE>
+    <META content="text/html; charset=windows-1252" http-equiv="Content-Type"/>
+    <META content="Memory, Boost, Performance, Memory+, Memory Plus, Crash Protection, StayAlive, Crash, Protector, Crash Protector, TFI, TFI Technology, WatchOut , Access Violation, General Protection Fault, Application Hang, GPF, Screen Freeze, Freeze, Page Fault, Application Recovery, Crash of the Week, Well Known Bug, Bug, Cache, RAM, Virtual Memory, VCache, Memory Tuning, SIMMS, Page File, page faults" name="keywords"/>
+    <META content="TFI Technology Ltd, Home of StayAlive, the premier crash protection software and Memory+ the total memory control system." name="description"/>
+    <META content="MSHTML 5.00.2920.0" name="GENERATOR"/>
+    <META content="(c) 1998-2000, TFI Technology Ltd" name="copyright"/>
+    <META content="TFI Technology" name="author"/>
+    <META content="1 day" name="revisit-after"/>
+    <META content="ALL" name="Robot"/>
+    <META content="General" name="rating"/>
+    <META content="TFI Technology Ltd Home of StayAlive, the premier crash protection software." name="DC.Title"/>
+    <META content="TFI Technology" name="DC.Creator"/>
+    <META content="TFI Technology Ltd Home of StayAlive, the premier crash protection software." name="DC.Description"/>
+    <META content="TFI Technology" name="DC.Publisher"/>
+    <META content="TFI Technology" name="DC.Contributors"/>
+    <SCRIPT language="JavaScript">
+<![CDATA[ 
+
+	if (document.images)
+	{
+		var imgBannerPreload = new Image();
+		imgBannerPreload.src="images/AboutBanner.gif";
+
+		var imgWaterMarkPreload = new Image();
+		imgWaterMarkPreload.src="images/WaterMark.gif";
+
+		var imgAboutPreload = new Image();
+		imgAboutPreload.src="images/abouttfism.gif";
+		var imgAboutSelPreload = new Image();
+		imgAboutSelPreload.src = "images/abouttfism_sel.gif"
+
+		var imgBuyNowPreload = new Image();
+		imgBuyNowPreload.src="images/buynowsm.gif";
+		var imgBuyNowSelPreload = new Image();
+		imgBuyNowSelPreload.src = "images/buynowsm_sel.gif"
+
+		var imgDownloadsPreload = new Image();
+		imgDownloadsPreload.src="images/downloadssm.gif";
+		var imgDownloadsSelPreload = new Image();
+		imgDownloadsSelPreload.src = "images/downloadssm_sel.gif"
+
+		var imgProductsPreload = new Image();
+		imgProductsPreload.src="images/productssm.gif";
+		var imgProductsSelPreload = new Image();
+		imgProductsSelPreload.src = "images/productssm_sel.gif"
+
+		var imgNewswirePreload = new Image();
+		imgNewswirePreload.src="images/newswiresm.gif";
+		var imgNewswireSelPreload = new Image();
+		imgNewswireSelPreload.src = "images/newswiresm_sel.gif"
+	}
+
+function img_preload(imgName)
+{
+	if (document.images)
+	{
+		var imgPreload = new Image();
+		imgPreload.src="images/" + imgName;
+	}
+}
+
+function act(imgName)
+{
+	if (document.images)
+	{
+		document.images[imgName].src = eval("img" + imgName + "SelPreload.src");
+	}
+}
+
+function inact(imgName)
+{
+	if (document.images)
+	{
+		document.images[imgName].src = eval("img" + imgName + "Preload.src");
+	}
+}
+//
+]]>
+</SCRIPT>
+  </HEAD>
+  <BODY background="TFI Technology Products_files/WaterMark.gif" bgColor="#ffffff" bgProperties="fixed">
+    <TABLE border="0" cellPadding="0" cellSpacing="0" height="516" width="125">
+      <TBODY>
+        <TR>
+          <TD colSpan="2" height="95">
+            <!--webbot bot="ImageMap" startspan
+    rectangle="(0,5) (68,94) index.htm" src="images/ProductsBanner.gif" width="569"
+    height="97" border="0" alt="TFI Technology Products" -->
+            <MAP name="FrontPageMap0">
+              <AREA href="http://www.tfi-technology.com/index.htm"/>
+            </MAP>
+            <IMG alt="TFI Technology Products" border="0" height="97" src="TFI Technology Products_files/ProductsBanner.gif" useMap="#FrontPageMap0" width="569"/>
+            <!--webbot bot="ImageMap"
+    i-checksum="26" endspan -->
+          </TD>
+        </TR>
+        <TR>
+          <TD align="left" height="450" vAlign="top" width="100">
+            <TABLE border="0" cellPadding="4" cellSpacing="0" width="100%">
+              <TBODY>
+                <TR>
+                  <TD height="223" vAlign="top" width="6%">  
+                    <P>
+                      <IMG align="middle" height="120" src="TFI Technology Products_files/vbarsm.gif" width="3"/>
+                    </P>
+                  </TD>
+                  <TD background="TFI Technology Products_files/bar2.gif" height="223" vAlign="top" width="94%">  
+                    <P>
+                      <A href="http://www.tfi-technology.com/products.htm" onmouseout="inact('Products')" onmouseover="act('Products')">
+                        <IMG align="middle" alt="Products" border="0" height="20" hspace="0" name="Products" src="TFI Technology Products_files/productssm.gif" width="95"/>
+                        <BR/>
+                      </A>
+                      <A href="http://www.tfi-technology.com/downloads.htm" onmouseout="inact('Downloads')" onmouseover="act('Downloads')">
+                        <IMG align="middle" alt="Downloads" border="0" height="20" hspace="0" name="Downloads" src="TFI Technology Products_files/downloadssm.gif" width="95"/>
+                        <BR/>
+                      </A>
+                      <A href="http://www.tfi-technology.com/buynow.htm" onmouseout="inact('BuyNow')" onmouseover="act('BuyNow')">
+                        <IMG align="middle" alt="Buy Now" border="0" height="20" hspace="0" name="BuyNow" src="TFI Technology Products_files/buynowsm.gif" width="95"/>
+                        <BR/>
+                      </A>
+                      <A href="http://www.tfi-technology.com/about.htm" onmouseout="inact('About')" onmouseover="act('About')">
+                        <IMG align="middle" alt="About TFI" border="0" height="20" hspace="0" name="About" src="TFI Technology Products_files/abouttfism.gif" width="95"/>
+                        <BR/>
+                      </A>
+                      <A href="http://www.tfi-technology.com/newsroom.htm" onmouseout="inact('Newswire')" onmouseover="act('Newswire')">
+                        <IMG align="middle" alt="News Room" border="0" height="20" hspace="0" name="Newswire" src="TFI Technology Products_files/newswiresm.gif" width="95"/>
+                      </A> 
+                    </P>
+                  </TD>
+                </TR>
+                <TR>
+                  <TD align="center" colSpan="2">  
+                    <FORM action="http://cgi.www.tfi-technology.com/cgi-bin/www.tfi-technology.com/subscribe.pl" method="post">
+                      <P>
+                        <FONT face="Arial, Helvetica, sans-serif" size="1">
+                          <B>Keep up to date!</B>
+                          <BR/>Submit your e-mail address below.
+                          <BR/>
+                          <INPUT name="email" size="12"/> 
+                          <INPUT name="B1" type="submit" value="Submit"/> 
+                          <BR/>
+                        </FONT>
+                      </P>
+                    </FORM>
+                  </TD>
+                </TR>
+                <TR>
+                  <TD colSpan="2" width="100">  
+                    <P> </P>
+                    <P> </P>
+                    <P>
+                      <FONT face="Arial, Helvetica, sans-serif" size="1">Copyright ©
+                        <BR/>1998-2000
+                        <BR/>TFI Technology Ltd
+                        <BR/>
+                        <A href="mailto:enquiry at tfi-technology.com">Mail Us</A>
+                      </FONT>
+                    </P>
+                  </TD>
+                </TR>
+              </TBODY>
+            </TABLE>
+          </TD>
+          <TD align="left" height="450" vAlign="top" width="464">
+            <TABLE border="0" cellPadding="0" cellSpacing="0" width="464">
+              <TBODY>
+                <TR>
+                  <TD width="78"/>
+                  <TD vAlign="top" width="386">  </TD>
+                </TR>
+              </TBODY>
+            </TABLE>
+			<xsl:apply-templates/>
+            <P align="left">
+              <IMG alt="hbar.gif (979 bytes)" height="8" src="TFI Technology Products_files/hbar.gif" width="458"/>
+            </P>
+               
+          </TD>
+        </TR>
+      </TBODY>
+    </TABLE>
+  </BODY>
+</HTML></xsl:template>
+
+<xsl:template match="table"><CENTER><TABLE border="3" cellpadding="3">
+	<xsl:apply-templates/>
+</TABLE></CENTER></xsl:template>
+
+<xsl:template match="row"><TR><xsl:apply-templates/></TR></xsl:template>
+
+<xsl:template match="column"><TD><xsl:apply-templates/></TD></xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3227 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>A Midsummer Night's Dream</title>
+</head>
+<body>
+<h1>A Midsummer Night's Dream</h1>
+<i>
+ASCII text placed in the public domain by Moby Lexical Tools, 1992.
+SGML markup by Jon Bosak, 1992-1994.
+XML version by Jon Bosak, 1996-1999.
+The XML markup in this version is Copyright © 1999 Jon Bosak.
+This work may freely be distributed on condition that it not be
+modified or altered in any way.
+</i><h2>Parts - Dramatis Personae</h2>
+<p><b><i>THESEUS, Duke of Athens.</i></b></p>
+<p><b><i>EGEUS, father to Hermia.</i></b></p>
+<p><b><i>LYSANDER</i></b></p>
+<p><b><i>DEMETRIUS</i></b></p>
+<p><b><i>PHILOSTRATE, master of the revels to Theseus.</i></b></p>
+<p><b><i>QUINCE, a carpenter.</i></b></p>
+<p><b><i>SNUG, a joiner.</i></b></p>
+<p><b><i>BOTTOM, a weaver.</i></b></p>
+<p><b><i>FLUTE, a bellows-mender.</i></b></p>
+<p><b><i>SNOUT, a tinker.</i></b></p>
+<p><b><i>STARVELING, a tailor.</i></b></p>
+<p><b><i>HIPPOLYTA, queen of the Amazons, betrothed to Theseus.</i></b></p>
+<p><b><i>HERMIA, daughter to Egeus, in love with Lysander.</i></b></p>
+<p><b><i>HELENA, in love with Demetrius.</i></b></p>
+<p><b><i>OBERON, king of the fairies.</i></b></p>
+<p><b><i>TITANIA, queen of the fairies.</i></b></p>
+<p><b><i>PUCK, or Robin Goodfellow.</i></b></p>
+<p><b><i>PEASEBLOSSOM</i></b></p>
+<p><b><i>COBWEB</i></b></p>
+<p><b><i>MOTH</i></b></p>
+<p><b><i>MUSTARDSEED</i></b></p>
+<p><b><i>Other fairies attending their King and Queen.</i></b></p>
+<p><b><i>Attendants on Theseus and Hippolyta.</i></b></p>
+<h3>ACT I</h3>
+<h3>SCENE I.  Athens. The palace of THESEUS.</h3>
+<p><b>THESEUS</b></p>
+Now, fair Hippolyta, our nuptial hour<br>
+Draws on apace; four happy days bring in<br>
+Another moon: but, O, methinks, how slow<br>
+This old moon wanes! she lingers my desires,<br>
+Like to a step-dame or a dowager<br>
+Long withering out a young man revenue.<br>
+
+<p><b>HIPPOLYTA</b></p>
+Four days will quickly steep themselves in night;<br>
+Four nights will quickly dream away the time;<br>
+And then the moon, like to a silver bow<br>
+New-bent in heaven, shall behold the night<br>
+Of our solemnities.<br>
+
+<p><b>THESEUS</b></p>
+Go, Philostrate,<br>
+Stir up the Athenian youth to merriments;<br>
+Awake the pert and nimble spirit of mirth;<br>
+Turn melancholy forth to funerals;<br>
+The pale companion is not for our pomp.<br>
+Exit PHILOSTRATE
+Hippolyta, I woo'd thee with my sword,<br>
+And won thy love, doing thee injuries;<br>
+But I will wed thee in another key,<br>
+With pomp, with triumph and with revelling.<br>
+
+<p><b>EGEUS</b></p>
+Happy be Theseus, our renowned duke!<br>
+
+<p><b>THESEUS</b></p>
+Thanks, good Egeus: what's the news with thee?<br>
+
+<p><b>EGEUS</b></p>
+Full of vexation come I, with complaint<br>
+Against my child, my daughter Hermia.<br>
+Stand forth, Demetrius. My noble lord,<br>
+This man hath my consent to marry her.<br>
+Stand forth, Lysander: and my gracious duke,<br>
+This man hath bewitch'd the bosom of my child;<br>
+Thou, thou, Lysander, thou hast given her rhymes,<br>
+And interchanged love-tokens with my child:<br>
+Thou hast by moonlight at her window sung,<br>
+With feigning voice verses of feigning love,<br>
+And stolen the impression of her fantasy<br>
+With bracelets of thy hair, rings, gawds, conceits,<br>
+Knacks, trifles, nosegays, sweetmeats, messengers<br>
+Of strong prevailment in unharden'd youth:<br>
+With cunning hast thou filch'd my daughter's heart,<br>
+Turn'd her obedience, which is due to me,<br>
+To stubborn harshness: and, my gracious duke,<br>
+Be it so she; will not here before your grace<br>
+Consent to marry with Demetrius,<br>
+I beg the ancient privilege of Athens,<br>
+As she is mine, I may dispose of her:<br>
+Which shall be either to this gentleman<br>
+Or to her death, according to our law<br>
+Immediately provided in that case.<br>
+
+<p><b>THESEUS</b></p>
+What say you, Hermia? be advised fair maid:<br>
+To you your father should be as a god;<br>
+One that composed your beauties, yea, and one<br>
+To whom you are but as a form in wax<br>
+By him imprinted and within his power<br>
+To leave the figure or disfigure it.<br>
+Demetrius is a worthy gentleman.<br>
+
+<p><b>HERMIA</b></p>
+So is Lysander.<br>
+
+<p><b>THESEUS</b></p>
+In himself he is;<br>
+But in this kind, wanting your father's voice,<br>
+The other must be held the worthier.<br>
+
+<p><b>HERMIA</b></p>
+I would my father look'd but with my eyes.<br>
+
+<p><b>THESEUS</b></p>
+Rather your eyes must with his judgment look.<br>
+
+<p><b>HERMIA</b></p>
+I do entreat your grace to pardon me.<br>
+I know not by what power I am made bold,<br>
+Nor how it may concern my modesty,<br>
+In such a presence here to plead my thoughts;<br>
+But I beseech your grace that I may know<br>
+The worst that may befall me in this case,<br>
+If I refuse to wed Demetrius.<br>
+
+<p><b>THESEUS</b></p>
+Either to die the death or to abjure<br>
+For ever the society of men.<br>
+Therefore, fair Hermia, question your desires;<br>
+Know of your youth, examine well your blood,<br>
+Whether, if you yield not to your father's choice,<br>
+You can endure the livery of a nun,<br>
+For aye to be in shady cloister mew'd,<br>
+To live a barren sister all your life,<br>
+Chanting faint hymns to the cold fruitless moon.<br>
+Thrice-blessed they that master so their blood,<br>
+To undergo such maiden pilgrimage;<br>
+But earthlier happy is the rose distill'd,<br>
+Than that which withering on the virgin thorn<br>
+Grows, lives and dies in single blessedness.<br>
+
+<p><b>HERMIA</b></p>
+So will I grow, so live, so die, my lord,<br>
+Ere I will my virgin patent up<br>
+Unto his lordship, whose unwished yoke<br>
+My soul consents not to give sovereignty.<br>
+
+<p><b>THESEUS</b></p>
+Take time to pause; and, by the nest new moon--<br>
+The sealing-day betwixt my love and me,<br>
+For everlasting bond of fellowship--<br>
+Upon that day either prepare to die<br>
+For disobedience to your father's will,<br>
+Or else to wed Demetrius, as he would;<br>
+Or on Diana's altar to protest<br>
+For aye austerity and single life.<br>
+
+<p><b>DEMETRIUS</b></p>
+Relent, sweet Hermia: and, Lysander, yield<br>
+Thy crazed title to my certain right.<br>
+
+<p><b>LYSANDER</b></p>
+You have her father's love, Demetrius;<br>
+Let me have Hermia's: do you marry him.<br>
+
+<p><b>EGEUS</b></p>
+Scornful Lysander! true, he hath my love,<br>
+And what is mine my love shall render him.<br>
+And she is mine, and all my right of her<br>
+I do estate unto Demetrius.<br>
+
+<p><b>LYSANDER</b></p>
+I am, my lord, as well derived as he,<br>
+As well possess'd; my love is more than his;<br>
+My fortunes every way as fairly rank'd,<br>
+If not with vantage, as Demetrius';<br>
+And, which is more than all these boasts can be,<br>
+I am beloved of beauteous Hermia:<br>
+Why should not I then prosecute my right?<br>
+Demetrius, I'll avouch it to his head,<br>
+Made love to Nedar's daughter, Helena,<br>
+And won her soul; and she, sweet lady, dotes,<br>
+Devoutly dotes, dotes in idolatry,<br>
+Upon this spotted and inconstant man.<br>
+
+<p><b>THESEUS</b></p>
+I must confess that I have heard so much,<br>
+And with Demetrius thought to have spoke thereof;<br>
+But, being over-full of self-affairs,<br>
+My mind did lose it. But, Demetrius, come;<br>
+And come, Egeus; you shall go with me,<br>
+I have some private schooling for you both.<br>
+For you, fair Hermia, look you arm yourself<br>
+To fit your fancies to your father's will;<br>
+Or else the law of Athens yields you up--<br>
+Which by no means we may extenuate--<br>
+To death, or to a vow of single life.<br>
+Come, my Hippolyta: what cheer, my love?<br>
+Demetrius and Egeus, go along:<br>
+I must employ you in some business<br>
+Against our nuptial and confer with you<br>
+Of something nearly that concerns yourselves.<br>
+
+<p><b>EGEUS</b></p>
+With duty and desire we follow you.<br>
+
+<p><b>LYSANDER</b></p>
+How now, my love! why is your cheek so pale?<br>
+How chance the roses there do fade so fast?<br>
+
+<p><b>HERMIA</b></p>
+Belike for want of rain, which I could well<br>
+Beteem them from the tempest of my eyes.<br>
+
+<p><b>LYSANDER</b></p>
+Ay me! for aught that I could ever read,<br>
+Could ever hear by tale or history,<br>
+The course of true love never did run smooth;<br>
+But, either it was different in blood,--<br>
+
+<p><b>HERMIA</b></p>
+O cross! too high to be enthrall'd to low.<br>
+
+<p><b>LYSANDER</b></p>
+Or else misgraffed in respect of years,--<br>
+
+<p><b>HERMIA</b></p>
+O spite! too old to be engaged to young.<br>
+
+<p><b>LYSANDER</b></p>
+Or else it stood upon the choice of friends,--<br>
+
+<p><b>HERMIA</b></p>
+O hell! to choose love by another's eyes.<br>
+
+<p><b>LYSANDER</b></p>
+Or, if there were a sympathy in choice,<br>
+War, death, or sickness did lay siege to it,<br>
+Making it momentany as a sound,<br>
+Swift as a shadow, short as any dream;<br>
+Brief as the lightning in the collied night,<br>
+That, in a spleen, unfolds both heaven and earth,<br>
+And ere a man hath power to say 'Behold!'<br>
+The jaws of darkness do devour it up:<br>
+So quick bright things come to confusion.<br>
+
+<p><b>HERMIA</b></p>
+If then true lovers have been ever cross'd,<br>
+It stands as an edict in destiny:<br>
+Then let us teach our trial patience,<br>
+Because it is a customary cross,<br>
+As due to love as thoughts and dreams and sighs,<br>
+Wishes and tears, poor fancy's followers.<br>
+
+<p><b>LYSANDER</b></p>
+A good persuasion: therefore, hear me, Hermia.<br>
+I have a widow aunt, a dowager<br>
+Of great revenue, and she hath no child:<br>
+From Athens is her house remote seven leagues;<br>
+And she respects me as her only son.<br>
+There, gentle Hermia, may I marry thee;<br>
+And to that place the sharp Athenian law<br>
+Cannot pursue us. If thou lovest me then,<br>
+Steal forth thy father's house to-morrow night;<br>
+And in the wood, a league without the town,<br>
+Where I did meet thee once with Helena,<br>
+To do observance to a morn of May,<br>
+There will I stay for thee.<br>
+
+<p><b>HERMIA</b></p>
+My good Lysander!<br>
+I swear to thee, by Cupid's strongest bow,<br>
+By his best arrow with the golden head,<br>
+By the simplicity of Venus' doves,<br>
+By that which knitteth souls and prospers loves,<br>
+And by that fire which burn'd the Carthage queen,<br>
+When the false Troyan under sail was seen,<br>
+By all the vows that ever men have broke,<br>
+In number more than ever women spoke,<br>
+In that same place thou hast appointed me,<br>
+To-morrow truly will I meet with thee.<br>
+
+<p><b>LYSANDER</b></p>
+Keep promise, love. Look, here comes Helena.<br>
+
+<p><b>HERMIA</b></p>
+God speed fair Helena! whither away?<br>
+
+<p><b>HELENA</b></p>
+Call you me fair? that fair again unsay.<br>
+Demetrius loves your fair: O happy fair!<br>
+Your eyes are lode-stars; and your tongue's sweet air<br>
+More tuneable than lark to shepherd's ear,<br>
+When wheat is green, when hawthorn buds appear.<br>
+Sickness is catching: O, were favour so,<br>
+Yours would I catch, fair Hermia, ere I go;<br>
+My ear should catch your voice, my eye your eye,<br>
+My tongue should catch your tongue's sweet melody.<br>
+Were the world mine, Demetrius being bated,<br>
+The rest I'd give to be to you translated.<br>
+O, teach me how you look, and with what art<br>
+You sway the motion of Demetrius' heart.<br>
+
+<p><b>HERMIA</b></p>
+I frown upon him, yet he loves me still.<br>
+
+<p><b>HELENA</b></p>
+O that your frowns would teach my smiles such skill!<br>
+
+<p><b>HERMIA</b></p>
+I give him curses, yet he gives me love.<br>
+
+<p><b>HELENA</b></p>
+O that my prayers could such affection move!<br>
+
+<p><b>HERMIA</b></p>
+The more I hate, the more he follows me.<br>
+
+<p><b>HELENA</b></p>
+The more I love, the more he hateth me.<br>
+
+<p><b>HERMIA</b></p>
+His folly, Helena, is no fault of mine.<br>
+
+<p><b>HELENA</b></p>
+None, but your beauty: would that fault were mine!<br>
+
+<p><b>HERMIA</b></p>
+Take comfort: he no more shall see my face;<br>
+Lysander and myself will fly this place.<br>
+Before the time I did Lysander see,<br>
+Seem'd Athens as a paradise to me:<br>
+O, then, what graces in my love do dwell,<br>
+That he hath turn'd a heaven unto a hell!<br>
+
+<p><b>LYSANDER</b></p>
+Helen, to you our minds we will unfold:<br>
+To-morrow night, when Phoebe doth behold<br>
+Her silver visage in the watery glass,<br>
+Decking with liquid pearl the bladed grass,<br>
+A time that lovers' flights doth still conceal,<br>
+Through Athens' gates have we devised to steal.<br>
+
+<p><b>HERMIA</b></p>
+And in the wood, where often you and I<br>
+Upon faint primrose-beds were wont to lie,<br>
+Emptying our bosoms of their counsel sweet,<br>
+There my Lysander and myself shall meet;<br>
+And thence from Athens turn away our eyes,<br>
+To seek new friends and stranger companies.<br>
+Farewell, sweet playfellow: pray thou for us;<br>
+And good luck grant thee thy Demetrius!<br>
+Keep word, Lysander: we must starve our sight<br>
+From lovers' food till morrow deep midnight.<br>
+
+<p><b>LYSANDER</b></p>
+I will, my Hermia.<br>
+Exit HERMIA
+Helena, adieu:<br>
+As you on him, Demetrius dote on you!<br>
+
+<p><b>HELENA</b></p>
+How happy some o'er other some can be!<br>
+Through Athens I am thought as fair as she.<br>
+But what of that? Demetrius thinks not so;<br>
+He will not know what all but he do know:<br>
+And as he errs, doting on Hermia's eyes,<br>
+So I, admiring of his qualities:<br>
+Things base and vile, folding no quantity,<br>
+Love can transpose to form and dignity:<br>
+Love looks not with the eyes, but with the mind;<br>
+And therefore is wing'd Cupid painted blind:<br>
+Nor hath Love's mind of any judgement taste;<br>
+Wings and no eyes figure unheedy haste:<br>
+And therefore is Love said to be a child,<br>
+Because in choice he is so oft beguiled.<br>
+As waggish boys in game themselves forswear,<br>
+So the boy Love is perjured every where:<br>
+For ere Demetrius look'd on Hermia's eyne,<br>
+He hail'd down oaths that he was only mine;<br>
+And when this hail some heat from Hermia felt,<br>
+So he dissolved, and showers of oaths did melt.<br>
+I will go tell him of fair Hermia's flight:<br>
+Then to the wood will he to-morrow night<br>
+Pursue her; and for this intelligence<br>
+If I have thanks, it is a dear expense:<br>
+But herein mean I to enrich my pain,<br>
+To have his sight thither and back again.<br>
+<h3>SCENE II.  Athens. QUINCE'S house.</h3>
+<p><b>QUINCE</b></p>
+Is all our company here?<br>
+
+<p><b>BOTTOM</b></p>
+You were best to call them generally, man by man,<br>
+according to the scrip.<br>
+
+<p><b>QUINCE</b></p>
+Here is the scroll of every man's name, which is<br>
+thought fit, through all Athens, to play in our<br>
+interlude before the duke and the duchess, on his<br>
+wedding-day at night.<br>
+
+<p><b>BOTTOM</b></p>
+First, good Peter Quince, say what the play treats<br>
+on, then read the names of the actors, and so grow<br>
+to a point.<br>
+
+<p><b>QUINCE</b></p>
+Marry, our play is, The most lamentable comedy, and<br>
+most cruel death of Pyramus and Thisby.<br>
+
+<p><b>BOTTOM</b></p>
+A very good piece of work, I assure you, and a<br>
+merry. Now, good Peter Quince, call forth your<br>
+actors by the scroll. Masters, spread yourselves.<br>
+
+<p><b>QUINCE</b></p>
+Answer as I call you. Nick Bottom, the weaver.<br>
+
+<p><b>BOTTOM</b></p>
+Ready. Name what part I am for, and proceed.<br>
+
+<p><b>QUINCE</b></p>
+You, Nick Bottom, are set down for Pyramus.<br>
+
+<p><b>BOTTOM</b></p>
+What is Pyramus? a lover, or a tyrant?<br>
+
+<p><b>QUINCE</b></p>
+A lover, that kills himself most gallant for love.<br>
+
+<p><b>BOTTOM</b></p>
+That will ask some tears in the true performing of<br>
+it: if I do it, let the audience look to their<br>
+eyes; I will move storms, I will condole in some<br>
+measure. To the rest: yet my chief humour is for a<br>
+tyrant: I could play Ercles rarely, or a part to<br>
+tear a cat in, to make all split.<br>
+The raging rocks<br>
+And shivering shocks<br>
+Shall break the locks<br>
+Of prison gates;<br>
+And Phibbus' car<br>
+Shall shine from far<br>
+And make and mar<br>
+The foolish Fates.<br>
+This was lofty! Now name the rest of the players.<br>
+This is Ercles' vein, a tyrant's vein; a lover is<br>
+more condoling.<br>
+
+<p><b>QUINCE</b></p>
+Francis Flute, the bellows-mender.<br>
+
+<p><b>FLUTE</b></p>
+Here, Peter Quince.<br>
+
+<p><b>QUINCE</b></p>
+Flute, you must take Thisby on you.<br>
+
+<p><b>FLUTE</b></p>
+What is Thisby? a wandering knight?<br>
+
+<p><b>QUINCE</b></p>
+It is the lady that Pyramus must love.<br>
+
+<p><b>FLUTE</b></p>
+Nay, faith, let me not play a woman; I have a beard coming.<br>
+
+<p><b>QUINCE</b></p>
+That's all one: you shall play it in a mask, and<br>
+you may speak as small as you will.<br>
+
+<p><b>BOTTOM</b></p>
+An I may hide my face, let me play Thisby too, I'll<br>
+speak in a monstrous little voice. 'Thisne,<br>
+Thisne;' 'Ah, Pyramus, lover dear! thy Thisby dear,<br>
+and lady dear!'<br>
+
+<p><b>QUINCE</b></p>
+No, no; you must play Pyramus: and, Flute, you Thisby.<br>
+
+<p><b>BOTTOM</b></p>
+Well, proceed.<br>
+
+<p><b>QUINCE</b></p>
+Robin Starveling, the tailor.<br>
+
+<p><b>STARVELING</b></p>
+Here, Peter Quince.<br>
+
+<p><b>QUINCE</b></p>
+Robin Starveling, you must play Thisby's mother.<br>
+Tom Snout, the tinker.<br>
+
+<p><b>SNOUT</b></p>
+Here, Peter Quince.<br>
+
+<p><b>QUINCE</b></p>
+You, Pyramus' father: myself, Thisby's father:<br>
+Snug, the joiner; you, the lion's part: and, I<br>
+hope, here is a play fitted.<br>
+
+<p><b>SNUG</b></p>
+Have you the lion's part written? pray you, if it<br>
+be, give it me, for I am slow of study.<br>
+
+<p><b>QUINCE</b></p>
+You may do it extempore, for it is nothing but roaring.<br>
+
+<p><b>BOTTOM</b></p>
+Let me play the lion too: I will roar, that I will<br>
+do any man's heart good to hear me; I will roar,<br>
+that I will make the duke say 'Let him roar again,<br>
+let him roar again.'<br>
+
+<p><b>QUINCE</b></p>
+An you should do it too terribly, you would fright<br>
+the duchess and the ladies, that they would shriek;<br>
+and that were enough to hang us all.<br>
+
+<p><b>ALL</b></p>
+That would hang us, every mother's son.<br>
+
+<p><b>BOTTOM</b></p>
+I grant you, friends, if that you should fright the<br>
+ladies out of their wits, they would have no more<br>
+discretion but to hang us: but I will aggravate my<br>
+voice so that I will roar you as gently as any<br>
+sucking dove; I will roar you an 'twere any<br>
+nightingale.<br>
+
+<p><b>QUINCE</b></p>
+You can play no part but Pyramus; for Pyramus is a<br>
+sweet-faced man; a proper man, as one shall see in a<br>
+summer's day; a most lovely gentleman-like man:<br>
+therefore you must needs play Pyramus.<br>
+
+<p><b>BOTTOM</b></p>
+Well, I will undertake it. What beard were I best<br>
+to play it in?<br>
+
+<p><b>QUINCE</b></p>
+Why, what you will.<br>
+
+<p><b>BOTTOM</b></p>
+I will discharge it in either your straw-colour<br>
+beard, your orange-tawny beard, your purple-in-grain<br>
+beard, or your French-crown-colour beard, your<br>
+perfect yellow.<br>
+
+<p><b>QUINCE</b></p>
+Some of your French crowns have no hair at all, and<br>
+then you will play bare-faced. But, masters, here<br>
+are your parts: and I am to entreat you, request<br>
+you and desire you, to con them by to-morrow night;<br>
+and meet me in the palace wood, a mile without the<br>
+town, by moonlight; there will we rehearse, for if<br>
+we meet in the city, we shall be dogged with<br>
+company, and our devices known. In the meantime I<br>
+will draw a bill of properties, such as our play<br>
+wants. I pray you, fail me not.<br>
+
+<p><b>BOTTOM</b></p>
+We will meet; and there we may rehearse most<br>
+obscenely and courageously. Take pains; be perfect: adieu.<br>
+
+<p><b>QUINCE</b></p>
+At the duke's oak we meet.<br>
+
+<p><b>BOTTOM</b></p>
+Enough; hold or cut bow-strings.<br>
+<h3>ACT II</h3>
+<h3>SCENE I.  A wood near Athens.</h3>
+<p><b>PUCK</b></p>
+How now, spirit! whither wander you?<br>
+
+<p><b>Fairy</b></p>
+Over hill, over dale,<br>
+Thorough bush, thorough brier,<br>
+Over park, over pale,<br>
+Thorough flood, thorough fire,<br>
+I do wander everywhere,<br>
+Swifter than the moon's sphere;<br>
+And I serve the fairy queen,<br>
+To dew her orbs upon the green.<br>
+The cowslips tall her pensioners be:<br>
+In their gold coats spots you see;<br>
+Those be rubies, fairy favours,<br>
+In those freckles live their savours:<br>
+I must go seek some dewdrops here<br>
+And hang a pearl in every cowslip's ear.<br>
+Farewell, thou lob of spirits; I'll be gone:<br>
+Our queen and all our elves come here anon.<br>
+
+<p><b>PUCK</b></p>
+The king doth keep his revels here to-night:<br>
+Take heed the queen come not within his sight;<br>
+For Oberon is passing fell and wrath,<br>
+Because that she as her attendant hath<br>
+A lovely boy, stolen from an Indian king;<br>
+She never had so sweet a changeling;<br>
+And jealous Oberon would have the child<br>
+Knight of his train, to trace the forests wild;<br>
+But she perforce withholds the loved boy,<br>
+Crowns him with flowers and makes him all her joy:<br>
+And now they never meet in grove or green,<br>
+By fountain clear, or spangled starlight sheen,<br>
+But, they do square, that all their elves for fear<br>
+Creep into acorn-cups and hide them there.<br>
+
+<p><b>Fairy</b></p>
+Either I mistake your shape and making quite,<br>
+Or else you are that shrewd and knavish sprite<br>
+Call'd Robin Goodfellow: are not you he<br>
+That frights the maidens of the villagery;<br>
+Skim milk, and sometimes labour in the quern<br>
+And bootless make the breathless housewife churn;<br>
+And sometime make the drink to bear no barm;<br>
+Mislead night-wanderers, laughing at their harm?<br>
+Those that Hobgoblin call you and sweet Puck,<br>
+You do their work, and they shall have good luck:<br>
+Are not you he?<br>
+
+<p><b>PUCK</b></p>
+Thou speak'st aright;<br>
+I am that merry wanderer of the night.<br>
+I jest to Oberon and make him smile<br>
+When I a fat and bean-fed horse beguile,<br>
+Neighing in likeness of a filly foal:<br>
+And sometime lurk I in a gossip's bowl,<br>
+In very likeness of a roasted crab,<br>
+And when she drinks, against her lips I bob<br>
+And on her wither'd dewlap pour the ale.<br>
+The wisest aunt, telling the saddest tale,<br>
+Sometime for three-foot stool mistaketh me;<br>
+Then slip I from her bum, down topples she,<br>
+And 'tailor' cries, and falls into a cough;<br>
+And then the whole quire hold their hips and laugh,<br>
+And waxen in their mirth and neeze and swear<br>
+A merrier hour was never wasted there.<br>
+But, room, fairy! here comes Oberon.<br>
+
+<p><b>Fairy</b></p>
+And here my mistress. Would that he were gone!<br>
+
+<p><b>OBERON</b></p>
+Ill met by moonlight, proud Titania.<br>
+
+<p><b>TITANIA</b></p>
+What, jealous Oberon! Fairies, skip hence:<br>
+I have forsworn his bed and company.<br>
+
+<p><b>OBERON</b></p>
+Tarry, rash wanton: am not I thy lord?<br>
+
+<p><b>TITANIA</b></p>
+Then I must be thy lady: but I know<br>
+When thou hast stolen away from fairy land,<br>
+And in the shape of Corin sat all day,<br>
+Playing on pipes of corn and versing love<br>
+To amorous Phillida. Why art thou here,<br>
+Come from the farthest Steppe of India?<br>
+But that, forsooth, the bouncing Amazon,<br>
+Your buskin'd mistress and your warrior love,<br>
+To Theseus must be wedded, and you come<br>
+To give their bed joy and prosperity.<br>
+
+<p><b>OBERON</b></p>
+How canst thou thus for shame, Titania,<br>
+Glance at my credit with Hippolyta,<br>
+Knowing I know thy love to Theseus?<br>
+Didst thou not lead him through the glimmering night<br>
+From Perigenia, whom he ravished?<br>
+And make him with fair AEgle break his faith,<br>
+With Ariadne and Antiopa?<br>
+
+<p><b>TITANIA</b></p>
+These are the forgeries of jealousy:<br>
+And never, since the middle summer's spring,<br>
+Met we on hill, in dale, forest or mead,<br>
+By paved fountain or by rushy brook,<br>
+Or in the beached margent of the sea,<br>
+To dance our ringlets to the whistling wind,<br>
+But with thy brawls thou hast disturb'd our sport.<br>
+Therefore the winds, piping to us in vain,<br>
+As in revenge, have suck'd up from the sea<br>
+Contagious fogs; which falling in the land<br>
+Have every pelting river made so proud<br>
+That they have overborne their continents:<br>
+The ox hath therefore stretch'd his yoke in vain,<br>
+The ploughman lost his sweat, and the green corn<br>
+Hath rotted ere his youth attain'd a beard;<br>
+The fold stands empty in the drowned field,<br>
+And crows are fatted with the murrion flock;<br>
+The nine men's morris is fill'd up with mud,<br>
+And the quaint mazes in the wanton green<br>
+For lack of tread are undistinguishable:<br>
+The human mortals want their winter here;<br>
+No night is now with hymn or carol blest:<br>
+Therefore the moon, the governess of floods,<br>
+Pale in her anger, washes all the air,<br>
+That rheumatic diseases do abound:<br>
+And thorough this distemperature we see<br>
+The seasons alter: hoary-headed frosts<br>
+Far in the fresh lap of the crimson rose,<br>
+And on old Hiems' thin and icy crown<br>
+An odorous chaplet of sweet summer buds<br>
+Is, as in mockery, set: the spring, the summer,<br>
+The childing autumn, angry winter, change<br>
+Their wonted liveries, and the mazed world,<br>
+By their increase, now knows not which is which:<br>
+And this same progeny of evils comes<br>
+From our debate, from our dissension;<br>
+We are their parents and original.<br>
+
+<p><b>OBERON</b></p>
+Do you amend it then; it lies in you:<br>
+Why should Titania cross her Oberon?<br>
+I do but beg a little changeling boy,<br>
+To be my henchman.<br>
+
+<p><b>TITANIA</b></p>
+Set your heart at rest:<br>
+The fairy land buys not the child of me.<br>
+His mother was a votaress of my order:<br>
+And, in the spiced Indian air, by night,<br>
+Full often hath she gossip'd by my side,<br>
+And sat with me on Neptune's yellow sands,<br>
+Marking the embarked traders on the flood,<br>
+When we have laugh'd to see the sails conceive<br>
+And grow big-bellied with the wanton wind;<br>
+Which she, with pretty and with swimming gait<br>
+Following,--her womb then rich with my young squire,--<br>
+Would imitate, and sail upon the land,<br>
+To fetch me trifles, and return again,<br>
+As from a voyage, rich with merchandise.<br>
+But she, being mortal, of that boy did die;<br>
+And for her sake do I rear up her boy,<br>
+And for her sake I will not part with him.<br>
+
+<p><b>OBERON</b></p>
+How long within this wood intend you stay?<br>
+
+<p><b>TITANIA</b></p>
+Perchance till after Theseus' wedding-day.<br>
+If you will patiently dance in our round<br>
+And see our moonlight revels, go with us;<br>
+If not, shun me, and I will spare your haunts.<br>
+
+<p><b>OBERON</b></p>
+Give me that boy, and I will go with thee.<br>
+
+<p><b>TITANIA</b></p>
+Not for thy fairy kingdom. Fairies, away!<br>
+We shall chide downright, if I longer stay.<br>
+
+<p><b>OBERON</b></p>
+Well, go thy way: thou shalt not from this grove<br>
+Till I torment thee for this injury.<br>
+My gentle Puck, come hither. Thou rememberest<br>
+Since once I sat upon a promontory,<br>
+And heard a mermaid on a dolphin's back<br>
+Uttering such dulcet and harmonious breath<br>
+That the rude sea grew civil at her song<br>
+And certain stars shot madly from their spheres,<br>
+To hear the sea-maid's music.<br>
+
+<p><b>PUCK</b></p>
+I remember.<br>
+
+<p><b>OBERON</b></p>
+That very time I saw, but thou couldst not,<br>
+Flying between the cold moon and the earth,<br>
+Cupid all arm'd: a certain aim he took<br>
+At a fair vestal throned by the west,<br>
+And loosed his love-shaft smartly from his bow,<br>
+As it should pierce a hundred thousand hearts;<br>
+But I might see young Cupid's fiery shaft<br>
+Quench'd in the chaste beams of the watery moon,<br>
+And the imperial votaress passed on,<br>
+In maiden meditation, fancy-free.<br>
+Yet mark'd I where the bolt of Cupid fell:<br>
+It fell upon a little western flower,<br>
+Before milk-white, now purple with love's wound,<br>
+And maidens call it love-in-idleness.<br>
+Fetch me that flower; the herb I shew'd thee once:<br>
+The juice of it on sleeping eye-lids laid<br>
+Will make or man or woman madly dote<br>
+Upon the next live creature that it sees.<br>
+Fetch me this herb; and be thou here again<br>
+Ere the leviathan can swim a league.<br>
+
+<p><b>PUCK</b></p>
+I'll put a girdle round about the earth<br>
+In forty minutes.<br>
+
+<p><b>OBERON</b></p>
+Having once this juice,<br>
+I'll watch Titania when she is asleep,<br>
+And drop the liquor of it in her eyes.<br>
+The next thing then she waking looks upon,<br>
+Be it on lion, bear, or wolf, or bull,<br>
+On meddling monkey, or on busy ape,<br>
+She shall pursue it with the soul of love:<br>
+And ere I take this charm from off her sight,<br>
+As I can take it with another herb,<br>
+I'll make her render up her page to me.<br>
+But who comes here? I am invisible;<br>
+And I will overhear their conference.<br>
+
+<p><b>DEMETRIUS</b></p>
+I love thee not, therefore pursue me not.<br>
+Where is Lysander and fair Hermia?<br>
+The one I'll slay, the other slayeth me.<br>
+Thou told'st me they were stolen unto this wood;<br>
+And here am I, and wode within this wood,<br>
+Because I cannot meet my Hermia.<br>
+Hence, get thee gone, and follow me no more.<br>
+
+<p><b>HELENA</b></p>
+You draw me, you hard-hearted adamant;<br>
+But yet you draw not iron, for my heart<br>
+Is true as steel: leave you your power to draw,<br>
+And I shall have no power to follow you.<br>
+
+<p><b>DEMETRIUS</b></p>
+Do I entice you? do I speak you fair?<br>
+Or, rather, do I not in plainest truth<br>
+Tell you, I do not, nor I cannot love you?<br>
+
+<p><b>HELENA</b></p>
+And even for that do I love you the more.<br>
+I am your spaniel; and, Demetrius,<br>
+The more you beat me, I will fawn on you:<br>
+Use me but as your spaniel, spurn me, strike me,<br>
+Neglect me, lose me; only give me leave,<br>
+Unworthy as I am, to follow you.<br>
+What worser place can I beg in your love,--<br>
+And yet a place of high respect with me,--<br>
+Than to be used as you use your dog?<br>
+
+<p><b>DEMETRIUS</b></p>
+Tempt not too much the hatred of my spirit;<br>
+For I am sick when I do look on thee.<br>
+
+<p><b>HELENA</b></p>
+And I am sick when I look not on you.<br>
+
+<p><b>DEMETRIUS</b></p>
+You do impeach your modesty too much,<br>
+To leave the city and commit yourself<br>
+Into the hands of one that loves you not;<br>
+To trust the opportunity of night<br>
+And the ill counsel of a desert place<br>
+With the rich worth of your virginity.<br>
+
+<p><b>HELENA</b></p>
+Your virtue is my privilege: for that<br>
+It is not night when I do see your face,<br>
+Therefore I think I am not in the night;<br>
+Nor doth this wood lack worlds of company,<br>
+For you in my respect are all the world:<br>
+Then how can it be said I am alone,<br>
+When all the world is here to look on me?<br>
+
+<p><b>DEMETRIUS</b></p>
+I'll run from thee and hide me in the brakes,<br>
+And leave thee to the mercy of wild beasts.<br>
+
+<p><b>HELENA</b></p>
+The wildest hath not such a heart as you.<br>
+Run when you will, the story shall be changed:<br>
+Apollo flies, and Daphne holds the chase;<br>
+The dove pursues the griffin; the mild hind<br>
+Makes speed to catch the tiger; bootless speed,<br>
+When cowardice pursues and valour flies.<br>
+
+<p><b>DEMETRIUS</b></p>
+I will not stay thy questions; let me go:<br>
+Or, if thou follow me, do not believe<br>
+But I shall do thee mischief in the wood.<br>
+
+<p><b>HELENA</b></p>
+Ay, in the temple, in the town, the field,<br>
+You do me mischief. Fie, Demetrius!<br>
+Your wrongs do set a scandal on my sex:<br>
+We cannot fight for love, as men may do;<br>
+We should be wood and were not made to woo.<br>
+Exit DEMETRIUS
+I'll follow thee and make a heaven of hell,<br>
+To die upon the hand I love so well.<br>
+
+<p><b>OBERON</b></p>
+Fare thee well, nymph: ere he do leave this grove,<br>
+Thou shalt fly him and he shall seek thy love.<br>
+Re-enter PUCK
+Hast thou the flower there? Welcome, wanderer.<br>
+
+<p><b>PUCK</b></p>
+Ay, there it is.<br>
+
+<p><b>OBERON</b></p>
+I pray thee, give it me.<br>
+I know a bank where the wild thyme blows,<br>
+Where oxlips and the nodding violet grows,<br>
+Quite over-canopied with luscious woodbine,<br>
+With sweet musk-roses and with eglantine:<br>
+There sleeps Titania sometime of the night,<br>
+Lull'd in these flowers with dances and delight;<br>
+And there the snake throws her enamell'd skin,<br>
+Weed wide enough to wrap a fairy in:<br>
+And with the juice of this I'll streak her eyes,<br>
+And make her full of hateful fantasies.<br>
+Take thou some of it, and seek through this grove:<br>
+A sweet Athenian lady is in love<br>
+With a disdainful youth: anoint his eyes;<br>
+But do it when the next thing he espies<br>
+May be the lady: thou shalt know the man<br>
+By the Athenian garments he hath on.<br>
+Effect it with some care, that he may prove<br>
+More fond on her than she upon her love:<br>
+And look thou meet me ere the first cock crow.<br>
+
+<p><b>PUCK</b></p>
+Fear not, my lord, your servant shall do so.<br>
+<h3>SCENE II.  Another part of the wood.</h3>
+<p><b>TITANIA</b></p>
+Come, now a roundel and a fairy song;<br>
+Then, for the third part of a minute, hence;<br>
+Some to kill cankers in the musk-rose buds,<br>
+Some war with rere-mice for their leathern wings,<br>
+To make my small elves coats, and some keep back<br>
+The clamorous owl that nightly hoots and wonders<br>
+At our quaint spirits. Sing me now asleep;<br>
+Then to your offices and let me rest.<br>
+The Fairies sing
+You spotted snakes with double tongue,<br>
+Thorny hedgehogs, be not seen;<br>
+Newts and blind-worms, do no wrong,<br>
+Come not near our fairy queen.<br>
+Philomel, with melody<br>
+Sing in our sweet lullaby;<br>
+Lulla, lulla, lullaby, lulla, lulla, lullaby:<br>
+Never harm,<br>
+Nor spell nor charm,<br>
+Come our lovely lady nigh;<br>
+So, good night, with lullaby.<br>
+Weaving spiders, come not here;<br>
+Hence, you long-legg'd spinners, hence!<br>
+Beetles black, approach not near;<br>
+Worm nor snail, do no offence.<br>
+Philomel, with melody, &amp;c.<br>
+
+<p><b>Fairy</b></p>
+Hence, away! now all is well:<br>
+One aloof stand sentinel.<br>
+
+<p><b>OBERON</b></p>
+What thou seest when thou dost wake,<br>
+Do it for thy true-love take,<br>
+Love and languish for his sake:<br>
+Be it ounce, or cat, or bear,<br>
+Pard, or boar with bristled hair,<br>
+In thy eye that shall appear<br>
+When thou wakest, it is thy dear:<br>
+Wake when some vile thing is near.<br>
+
+<p><b>LYSANDER</b></p>
+Fair love, you faint with wandering in the wood;<br>
+And to speak troth, I have forgot our way:<br>
+We'll rest us, Hermia, if you think it good,<br>
+And tarry for the comfort of the day.<br>
+
+<p><b>HERMIA</b></p>
+Be it so, Lysander: find you out a bed;<br>
+For I upon this bank will rest my head.<br>
+
+<p><b>LYSANDER</b></p>
+One turf shall serve as pillow for us both;<br>
+One heart, one bed, two bosoms and one troth.<br>
+
+<p><b>HERMIA</b></p>
+Nay, good Lysander; for my sake, my dear,<br>
+Lie further off yet, do not lie so near.<br>
+
+<p><b>LYSANDER</b></p>
+O, take the sense, sweet, of my innocence!<br>
+Love takes the meaning in love's conference.<br>
+I mean, that my heart unto yours is knit<br>
+So that but one heart we can make of it;<br>
+Two bosoms interchained with an oath;<br>
+So then two bosoms and a single troth.<br>
+Then by your side no bed-room me deny;<br>
+For lying so, Hermia, I do not lie.<br>
+
+<p><b>HERMIA</b></p>
+Lysander riddles very prettily:<br>
+Now much beshrew my manners and my pride,<br>
+If Hermia meant to say Lysander lied.<br>
+But, gentle friend, for love and courtesy<br>
+Lie further off; in human modesty,<br>
+Such separation as may well be said<br>
+Becomes a virtuous bachelor and a maid,<br>
+So far be distant; and, good night, sweet friend:<br>
+Thy love ne'er alter till thy sweet life end!<br>
+
+<p><b>LYSANDER</b></p>
+Amen, amen, to that fair prayer, say I;<br>
+And then end life when I end loyalty!<br>
+Here is my bed: sleep give thee all his rest!<br>
+
+<p><b>HERMIA</b></p>
+With half that wish the wisher's eyes be press'd!<br>
+
+<p><b>PUCK</b></p>
+Through the forest have I gone.<br>
+But Athenian found I none,<br>
+On whose eyes I might approve<br>
+This flower's force in stirring love.<br>
+Night and silence.--Who is here?<br>
+Weeds of Athens he doth wear:<br>
+This is he, my master said,<br>
+Despised the Athenian maid;<br>
+And here the maiden, sleeping sound,<br>
+On the dank and dirty ground.<br>
+Pretty soul! she durst not lie<br>
+Near this lack-love, this kill-courtesy.<br>
+Churl, upon thy eyes I throw<br>
+All the power this charm doth owe.<br>
+When thou wakest, let love forbid<br>
+Sleep his seat on thy eyelid:<br>
+So awake when I am gone;<br>
+For I must now to Oberon.<br>
+
+<p><b>HELENA</b></p>
+Stay, though thou kill me, sweet Demetrius.<br>
+
+<p><b>DEMETRIUS</b></p>
+I charge thee, hence, and do not haunt me thus.<br>
+
+<p><b>HELENA</b></p>
+O, wilt thou darkling leave me? do not so.<br>
+
+<p><b>DEMETRIUS</b></p>
+Stay, on thy peril: I alone will go.<br>
+
+<p><b>HELENA</b></p>
+O, I am out of breath in this fond chase!<br>
+The more my prayer, the lesser is my grace.<br>
+Happy is Hermia, wheresoe'er she lies;<br>
+For she hath blessed and attractive eyes.<br>
+How came her eyes so bright? Not with salt tears:<br>
+If so, my eyes are oftener wash'd than hers.<br>
+No, no, I am as ugly as a bear;<br>
+For beasts that meet me run away for fear:<br>
+Therefore no marvel though Demetrius<br>
+Do, as a monster fly my presence thus.<br>
+What wicked and dissembling glass of mine<br>
+Made me compare with Hermia's sphery eyne?<br>
+But who is here? Lysander! on the ground!<br>
+Dead? or asleep? I see no blood, no wound.<br>
+Lysander if you live, good sir, awake.<br>
+
+<p><b>LYSANDER</b></p>
+Awaking  And run through fire I will for thy sweet sake.<br>
+Transparent Helena! Nature shows art,<br>
+That through thy bosom makes me see thy heart.<br>
+Where is Demetrius? O, how fit a word<br>
+Is that vile name to perish on my sword!<br>
+
+<p><b>HELENA</b></p>
+Do not say so, Lysander; say not so<br>
+What though he love your Hermia? Lord, what though?<br>
+Yet Hermia still loves you: then be content.<br>
+
+<p><b>LYSANDER</b></p>
+Content with Hermia! No; I do repent<br>
+The tedious minutes I with her have spent.<br>
+Not Hermia but Helena I love:<br>
+Who will not change a raven for a dove?<br>
+The will of man is by his reason sway'd;<br>
+And reason says you are the worthier maid.<br>
+Things growing are not ripe until their season<br>
+So I, being young, till now ripe not to reason;<br>
+And touching now the point of human skill,<br>
+Reason becomes the marshal to my will<br>
+And leads me to your eyes, where I o'erlook<br>
+Love's stories written in love's richest book.<br>
+
+<p><b>HELENA</b></p>
+Wherefore was I to this keen mockery born?<br>
+When at your hands did I deserve this scorn?<br>
+Is't not enough, is't not enough, young man,<br>
+That I did never, no, nor never can,<br>
+Deserve a sweet look from Demetrius' eye,<br>
+But you must flout my insufficiency?<br>
+Good troth, you do me wrong, good sooth, you do,<br>
+In such disdainful manner me to woo.<br>
+But fare you well: perforce I must confess<br>
+I thought you lord of more true gentleness.<br>
+O, that a lady, of one man refused.<br>
+Should of another therefore be abused!<br>
+
+<p><b>LYSANDER</b></p>
+She sees not Hermia. Hermia, sleep thou there:<br>
+And never mayst thou come Lysander near!<br>
+For as a surfeit of the sweetest things<br>
+The deepest loathing to the stomach brings,<br>
+Or as tie heresies that men do leave<br>
+Are hated most of those they did deceive,<br>
+So thou, my surfeit and my heresy,<br>
+Of all be hated, but the most of me!<br>
+And, all my powers, address your love and might<br>
+To honour Helen and to be her knight!<br>
+
+<p><b>HERMIA</b></p>
+Awaking  Help me, Lysander, help me! do thy best<br>
+To pluck this crawling serpent from my breast!<br>
+Ay me, for pity! what a dream was here!<br>
+Lysander, look how I do quake with fear:<br>
+Methought a serpent eat my heart away,<br>
+And you sat smiling at his cruel pray.<br>
+Lysander! what, removed? Lysander! lord!<br>
+What, out of hearing? gone? no sound, no word?<br>
+Alack, where are you speak, an if you hear;<br>
+Speak, of all loves! I swoon almost with fear.<br>
+No? then I well perceive you all not nigh<br>
+Either death or you I'll find immediately.<br>
+<h3>ACT III</h3>
+<h3>SCENE I.  The wood. TITANIA lying asleep.</h3>
+<p><b>BOTTOM</b></p>
+Are we all met?<br>
+
+<p><b>QUINCE</b></p>
+Pat, pat; and here's a marvellous convenient place<br>
+for our rehearsal. This green plot shall be our<br>
+stage, this hawthorn-brake our tiring-house; and we<br>
+will do it in action as we will do it before the duke.<br>
+
+<p><b>BOTTOM</b></p>
+Peter Quince,--<br>
+
+<p><b>QUINCE</b></p>
+What sayest thou, bully Bottom?<br>
+
+<p><b>BOTTOM</b></p>
+There are things in this comedy of Pyramus and<br>
+Thisby that will never please. First, Pyramus must<br>
+draw a sword to kill himself; which the ladies<br>
+cannot abide. How answer you that?<br>
+
+<p><b>SNOUT</b></p>
+By'r lakin, a parlous fear.<br>
+
+<p><b>STARVELING</b></p>
+I believe we must leave the killing out, when all is done.<br>
+
+<p><b>BOTTOM</b></p>
+Not a whit: I have a device to make all well.<br>
+Write me a prologue; and let the prologue seem to<br>
+say, we will do no harm with our swords, and that<br>
+Pyramus is not killed indeed; and, for the more<br>
+better assurance, tell them that I, Pyramus, am not<br>
+Pyramus, but Bottom the weaver: this will put them<br>
+out of fear.<br>
+
+<p><b>QUINCE</b></p>
+Well, we will have such a prologue; and it shall be<br>
+written in eight and six.<br>
+
+<p><b>BOTTOM</b></p>
+No, make it two more; let it be written in eight and eight.<br>
+
+<p><b>SNOUT</b></p>
+Will not the ladies be afeard of the lion?<br>
+
+<p><b>STARVELING</b></p>
+I fear it, I promise you.<br>
+
+<p><b>BOTTOM</b></p>
+Masters, you ought to consider with yourselves: to<br>
+bring in--God shield us!--a lion among ladies, is a<br>
+most dreadful thing; for there is not a more fearful<br>
+wild-fowl than your lion living; and we ought to<br>
+look to 't.<br>
+
+<p><b>SNOUT</b></p>
+Therefore another prologue must tell he is not a lion.<br>
+
+<p><b>BOTTOM</b></p>
+Nay, you must name his name, and half his face must<br>
+be seen through the lion's neck: and he himself<br>
+must speak through, saying thus, or to the same<br>
+defect,--'Ladies,'--or 'Fair-ladies--I would wish<br>
+You,'--or 'I would request you,'--or 'I would<br>
+entreat you,--not to fear, not to tremble: my life<br>
+for yours. If you think I come hither as a lion, it<br>
+were pity of my life: no I am no such thing; I am a<br>
+man as other men are;' and there indeed let him name<br>
+his name, and tell them plainly he is Snug the joiner.<br>
+
+<p><b>QUINCE</b></p>
+Well it shall be so. But there is two hard things;<br>
+that is, to bring the moonlight into a chamber; for,<br>
+you know, Pyramus and Thisby meet by moonlight.<br>
+
+<p><b>SNOUT</b></p>
+Doth the moon shine that night we play our play?<br>
+
+<p><b>BOTTOM</b></p>
+A calendar, a calendar! look in the almanac; find<br>
+out moonshine, find out moonshine.<br>
+
+<p><b>QUINCE</b></p>
+Yes, it doth shine that night.<br>
+
+<p><b>BOTTOM</b></p>
+Why, then may you leave a casement of the great<br>
+chamber window, where we play, open, and the moon<br>
+may shine in at the casement.<br>
+
+<p><b>QUINCE</b></p>
+Ay; or else one must come in with a bush of thorns<br>
+and a lanthorn, and say he comes to disfigure, or to<br>
+present, the person of Moonshine. Then, there is<br>
+another thing: we must have a wall in the great<br>
+chamber; for Pyramus and Thisby says the story, did<br>
+talk through the chink of a wall.<br>
+
+<p><b>SNOUT</b></p>
+You can never bring in a wall. What say you, Bottom?<br>
+
+<p><b>BOTTOM</b></p>
+Some man or other must present Wall: and let him<br>
+have some plaster, or some loam, or some rough-cast<br>
+about him, to signify wall; and let him hold his<br>
+fingers thus, and through that cranny shall Pyramus<br>
+and Thisby whisper.<br>
+
+<p><b>QUINCE</b></p>
+If that may be, then all is well. Come, sit down,<br>
+every mother's son, and rehearse your parts.<br>
+Pyramus, you begin: when you have spoken your<br>
+speech, enter into that brake: and so every one<br>
+according to his cue.<br>
+
+<p><b>PUCK</b></p>
+What hempen home-spuns have we swaggering here,<br>
+So near the cradle of the fairy queen?<br>
+What, a play toward! I'll be an auditor;<br>
+An actor too, perhaps, if I see cause.<br>
+
+<p><b>QUINCE</b></p>
+Speak, Pyramus. Thisby, stand forth.<br>
+
+<p><b>BOTTOM</b></p>
+Thisby, the flowers of odious savours sweet,--<br>
+
+<p><b>QUINCE</b></p>
+Odours, odours.<br>
+
+<p><b>BOTTOM</b></p>
+--odours savours sweet:<br>
+So hath thy breath, my dearest Thisby dear.<br>
+But hark, a voice! stay thou but here awhile,<br>
+And by and by I will to thee appear.<br>
+
+<p><b>PUCK</b></p>
+A stranger Pyramus than e'er played here.<br>
+
+<p><b>FLUTE</b></p>
+Must I speak now?<br>
+
+<p><b>QUINCE</b></p>
+Ay, marry, must you; for you must understand he goes<br>
+but to see a noise that he heard, and is to come again.<br>
+
+<p><b>FLUTE</b></p>
+Most radiant Pyramus, most lily-white of hue,<br>
+Of colour like the red rose on triumphant brier,<br>
+Most brisky juvenal and eke most lovely Jew,<br>
+As true as truest horse that yet would never tire,<br>
+I'll meet thee, Pyramus, at Ninny's tomb.<br>
+
+<p><b>QUINCE</b></p>
+'Ninus' tomb,' man: why, you must not speak that<br>
+yet; that you answer to Pyramus: you speak all your<br>
+part at once, cues and all Pyramus enter: your cue<br>
+is past; it is, 'never tire.'<br>
+
+<p><b>FLUTE</b></p>
+O,--As true as truest horse, that yet would<br>
+never tire.<br>
+
+<p><b>BOTTOM</b></p>
+If I were fair, Thisby, I were only thine.<br>
+
+<p><b>QUINCE</b></p>
+O monstrous! O strange! we are haunted. Pray,<br>
+masters! fly, masters! Help!<br>
+
+<p><b>PUCK</b></p>
+I'll follow you, I'll lead you about a round,<br>
+Through bog, through bush, through brake, through brier:<br>
+Sometime a horse I'll be, sometime a hound,<br>
+A hog, a headless bear, sometime a fire;<br>
+And neigh, and bark, and grunt, and roar, and burn,<br>
+Like horse, hound, hog, bear, fire, at every turn.<br>
+
+<p><b>BOTTOM</b></p>
+Why do they run away? this is a knavery of them to<br>
+make me afeard.<br>
+
+<p><b>SNOUT</b></p>
+O Bottom, thou art changed! what do I see on thee?<br>
+
+<p><b>BOTTOM</b></p>
+What do you see? you see an asshead of your own, do<br>
+you?<br>
+
+<p><b>QUINCE</b></p>
+Bless thee, Bottom! bless thee! thou art<br>
+translated.<br>
+
+<p><b>BOTTOM</b></p>
+I see their knavery: this is to make an ass of me;<br>
+to fright me, if they could. But I will not stir<br>
+from this place, do what they can: I will walk up<br>
+and down here, and I will sing, that they shall hear<br>
+I am not afraid.<br>
+Sings
+The ousel cock so black of hue,<br>
+With orange-tawny bill,<br>
+The throstle with his note so true,<br>
+The wren with little quill,--<br>
+
+<p><b>TITANIA</b></p>
+Awaking  What angel wakes me from my flowery bed?<br>
+
+<p><b>BOTTOM</b></p>
+Sings<br>
+The finch, the sparrow and the lark,<br>
+The plain-song cuckoo gray,<br>
+Whose note full many a man doth mark,<br>
+And dares not answer nay;--<br>
+for, indeed, who would set his wit to so foolish<br>
+a bird? who would give a bird the lie, though he cry<br>
+'cuckoo' never so?<br>
+
+<p><b>TITANIA</b></p>
+I pray thee, gentle mortal, sing again:<br>
+Mine ear is much enamour'd of thy note;<br>
+So is mine eye enthralled to thy shape;<br>
+And thy fair virtue's force perforce doth move me<br>
+On the first view to say, to swear, I love thee.<br>
+
+<p><b>BOTTOM</b></p>
+Methinks, mistress, you should have little reason<br>
+for that: and yet, to say the truth, reason and<br>
+love keep little company together now-a-days; the<br>
+more the pity that some honest neighbours will not<br>
+make them friends. Nay, I can gleek upon occasion.<br>
+
+<p><b>TITANIA</b></p>
+Thou art as wise as thou art beautiful.<br>
+
+<p><b>BOTTOM</b></p>
+Not so, neither: but if I had wit enough to get out<br>
+of this wood, I have enough to serve mine own turn.<br>
+
+<p><b>TITANIA</b></p>
+Out of this wood do not desire to go:<br>
+Thou shalt remain here, whether thou wilt or no.<br>
+I am a spirit of no common rate;<br>
+The summer still doth tend upon my state;<br>
+And I do love thee: therefore, go with me;<br>
+I'll give thee fairies to attend on thee,<br>
+And they shall fetch thee jewels from the deep,<br>
+And sing while thou on pressed flowers dost sleep;<br>
+And I will purge thy mortal grossness so<br>
+That thou shalt like an airy spirit go.<br>
+Peaseblossom! Cobweb! Moth! and Mustardseed!<br>
+
+<p><b>PEASEBLOSSOM</b></p>
+Ready.<br>
+
+<p><b>COBWEB</b></p>
+And I.<br>
+
+<p><b>MOTH</b></p>
+And I.<br>
+
+<p><b>MUSTARDSEED</b></p>
+And I.<br>
+
+<p><b>ALL</b></p>
+Where shall we go?<br>
+
+<p><b>TITANIA</b></p>
+Be kind and courteous to this gentleman;<br>
+Hop in his walks and gambol in his eyes;<br>
+Feed him with apricocks and dewberries,<br>
+With purple grapes, green figs, and mulberries;<br>
+The honey-bags steal from the humble-bees,<br>
+And for night-tapers crop their waxen thighs<br>
+And light them at the fiery glow-worm's eyes,<br>
+To have my love to bed and to arise;<br>
+And pluck the wings from Painted butterflies<br>
+To fan the moonbeams from his sleeping eyes:<br>
+Nod to him, elves, and do him courtesies.<br>
+
+<p><b>PEASEBLOSSOM</b></p>
+Hail, mortal!<br>
+
+<p><b>COBWEB</b></p>
+Hail!<br>
+
+<p><b>MOTH</b></p>
+Hail!<br>
+
+<p><b>MUSTARDSEED</b></p>
+Hail!<br>
+
+<p><b>BOTTOM</b></p>
+I cry your worship's mercy, heartily: I beseech your<br>
+worship's name.<br>
+
+<p><b>COBWEB</b></p>
+Cobweb.<br>
+
+<p><b>BOTTOM</b></p>
+I shall desire you of more acquaintance, good Master<br>
+Cobweb: if I cut my finger, I shall make bold with<br>
+you. Your name, honest gentleman?<br>
+
+<p><b>PEASEBLOSSOM</b></p>
+Peaseblossom.<br>
+
+<p><b>BOTTOM</b></p>
+I pray you, commend me to Mistress Squash, your<br>
+mother, and to Master Peascod, your father. Good<br>
+Master Peaseblossom, I shall desire you of more<br>
+acquaintance too. Your name, I beseech you, sir?<br>
+
+<p><b>MUSTARDSEED</b></p>
+Mustardseed.<br>
+
+<p><b>BOTTOM</b></p>
+Good Master Mustardseed, I know your patience well:<br>
+that same cowardly, giant-like ox-beef hath<br>
+devoured many a gentleman of your house: I promise<br>
+you your kindred had made my eyes water ere now. I<br>
+desire your more acquaintance, good Master<br>
+Mustardseed.<br>
+
+<p><b>TITANIA</b></p>
+Come, wait upon him; lead him to my bower.<br>
+The moon methinks looks with a watery eye;<br>
+And when she weeps, weeps every little flower,<br>
+Lamenting some enforced chastity.<br>
+Tie up my love's tongue bring him silently.<br>
+<h3>SCENE II.  Another part of the wood.</h3>
+<p><b>OBERON</b></p>
+I wonder if Titania be awaked;<br>
+Then, what it was that next came in her eye,<br>
+Which she must dote on in extremity.<br>
+Enter PUCK
+Here comes my messenger.<br>
+How now, mad spirit!<br>
+What night-rule now about this haunted grove?<br>
+
+<p><b>PUCK</b></p>
+My mistress with a monster is in love.<br>
+Near to her close and consecrated bower,<br>
+While she was in her dull and sleeping hour,<br>
+A crew of patches, rude mechanicals,<br>
+That work for bread upon Athenian stalls,<br>
+Were met together to rehearse a play<br>
+Intended for great Theseus' nuptial-day.<br>
+The shallowest thick-skin of that barren sort,<br>
+Who Pyramus presented, in their sport<br>
+Forsook his scene and enter'd in a brake<br>
+When I did him at this advantage take,<br>
+An ass's nole I fixed on his head:<br>
+Anon his Thisbe must be answered,<br>
+And forth my mimic comes. When they him spy,<br>
+As wild geese that the creeping fowler eye,<br>
+Or russet-pated choughs, many in sort,<br>
+Rising and cawing at the gun's report,<br>
+Sever themselves and madly sweep the sky,<br>
+So, at his sight, away his fellows fly;<br>
+And, at our stamp, here o'er and o'er one falls;<br>
+He murder cries and help from Athens calls.<br>
+Their sense thus weak, lost with their fears<br>
+thus strong,<br>
+Made senseless things begin to do them wrong;<br>
+For briers and thorns at their apparel snatch;<br>
+Some sleeves, some hats, from yielders all<br>
+things catch.<br>
+I led them on in this distracted fear,<br>
+And left sweet Pyramus translated there:<br>
+When in that moment, so it came to pass,<br>
+Titania waked and straightway loved an ass.<br>
+
+<p><b>OBERON</b></p>
+This falls out better than I could devise.<br>
+But hast thou yet latch'd the Athenian's eyes<br>
+With the love-juice, as I did bid thee do?<br>
+
+<p><b>PUCK</b></p>
+I took him sleeping,--that is finish'd too,--<br>
+And the Athenian woman by his side:<br>
+That, when he waked, of force she must be eyed.<br>
+
+<p><b>OBERON</b></p>
+Stand close: this is the same Athenian.<br>
+
+<p><b>PUCK</b></p>
+This is the woman, but not this the man.<br>
+
+<p><b>DEMETRIUS</b></p>
+O, why rebuke you him that loves you so?<br>
+Lay breath so bitter on your bitter foe.<br>
+
+<p><b>HERMIA</b></p>
+Now I but chide; but I should use thee worse,<br>
+For thou, I fear, hast given me cause to curse,<br>
+If thou hast slain Lysander in his sleep,<br>
+Being o'er shoes in blood, plunge in the deep,<br>
+And kill me too.<br>
+The sun was not so true unto the day<br>
+As he to me: would he have stolen away<br>
+From sleeping Hermia? I'll believe as soon<br>
+This whole earth may be bored and that the moon<br>
+May through the centre creep and so displease<br>
+Her brother's noontide with Antipodes.<br>
+It cannot be but thou hast murder'd him;<br>
+So should a murderer look, so dead, so grim.<br>
+
+<p><b>DEMETRIUS</b></p>
+So should the murder'd look, and so should I,<br>
+Pierced through the heart with your stern cruelty:<br>
+Yet you, the murderer, look as bright, as clear,<br>
+As yonder Venus in her glimmering sphere.<br>
+
+<p><b>HERMIA</b></p>
+What's this to my Lysander? where is he?<br>
+Ah, good Demetrius, wilt thou give him me?<br>
+
+<p><b>DEMETRIUS</b></p>
+I had rather give his carcass to my hounds.<br>
+
+<p><b>HERMIA</b></p>
+Out, dog! out, cur! thou drivest me past the bounds<br>
+Of maiden's patience. Hast thou slain him, then?<br>
+Henceforth be never number'd among men!<br>
+O, once tell true, tell true, even for my sake!<br>
+Durst thou have look'd upon him being awake,<br>
+And hast thou kill'd him sleeping? O brave touch!<br>
+Could not a worm, an adder, do so much?<br>
+An adder did it; for with doubler tongue<br>
+Than thine, thou serpent, never adder stung.<br>
+
+<p><b>DEMETRIUS</b></p>
+You spend your passion on a misprised mood:<br>
+I am not guilty of Lysander's blood;<br>
+Nor is he dead, for aught that I can tell.<br>
+
+<p><b>HERMIA</b></p>
+I pray thee, tell me then that he is well.<br>
+
+<p><b>DEMETRIUS</b></p>
+An if I could, what should I get therefore?<br>
+
+<p><b>HERMIA</b></p>
+A privilege never to see me more.<br>
+And from thy hated presence part I so:<br>
+See me no more, whether he be dead or no.<br>
+
+<p><b>DEMETRIUS</b></p>
+There is no following her in this fierce vein:<br>
+Here therefore for a while I will remain.<br>
+So sorrow's heaviness doth heavier grow<br>
+For debt that bankrupt sleep doth sorrow owe:<br>
+Which now in some slight measure it will pay,<br>
+If for his tender here I make some stay.<br>
+
+<p><b>OBERON</b></p>
+What hast thou done? thou hast mistaken quite<br>
+And laid the love-juice on some true-love's sight:<br>
+Of thy misprision must perforce ensue<br>
+Some true love turn'd and not a false turn'd true.<br>
+
+<p><b>PUCK</b></p>
+Then fate o'er-rules, that, one man holding troth,<br>
+A million fail, confounding oath on oath.<br>
+
+<p><b>OBERON</b></p>
+About the wood go swifter than the wind,<br>
+And Helena of Athens look thou find:<br>
+All fancy-sick she is and pale of cheer,<br>
+With sighs of love, that costs the fresh blood dear:<br>
+By some illusion see thou bring her here:<br>
+I'll charm his eyes against she do appear.<br>
+
+<p><b>PUCK</b></p>
+I go, I go; look how I go,<br>
+Swifter than arrow from the Tartar's bow.<br>
+
+<p><b>OBERON</b></p>
+Flower of this purple dye,<br>
+Hit with Cupid's archery,<br>
+Sink in apple of his eye.<br>
+When his love he doth espy,<br>
+Let her shine as gloriously<br>
+As the Venus of the sky.<br>
+When thou wakest, if she be by,<br>
+Beg of her for remedy.<br>
+
+<p><b>PUCK</b></p>
+Captain of our fairy band,<br>
+Helena is here at hand;<br>
+And the youth, mistook by me,<br>
+Pleading for a lover's fee.<br>
+Shall we their fond pageant see?<br>
+Lord, what fools these mortals be!<br>
+
+<p><b>OBERON</b></p>
+Stand aside: the noise they make<br>
+Will cause Demetrius to awake.<br>
+
+<p><b>PUCK</b></p>
+Then will two at once woo one;<br>
+That must needs be sport alone;<br>
+And those things do best please me<br>
+That befal preposterously.<br>
+
+<p><b>LYSANDER</b></p>
+Why should you think that I should woo in scorn?<br>
+Scorn and derision never come in tears:<br>
+Look, when I vow, I weep; and vows so born,<br>
+In their nativity all truth appears.<br>
+How can these things in me seem scorn to you,<br>
+Bearing the badge of faith, to prove them true?<br>
+
+<p><b>HELENA</b></p>
+You do advance your cunning more and more.<br>
+When truth kills truth, O devilish-holy fray!<br>
+These vows are Hermia's: will you give her o'er?<br>
+Weigh oath with oath, and you will nothing weigh:<br>
+Your vows to her and me, put in two scales,<br>
+Will even weigh, and both as light as tales.<br>
+
+<p><b>LYSANDER</b></p>
+I had no judgment when to her I swore.<br>
+
+<p><b>HELENA</b></p>
+Nor none, in my mind, now you give her o'er.<br>
+
+<p><b>LYSANDER</b></p>
+Demetrius loves her, and he loves not you.<br>
+
+<p><b>DEMETRIUS</b></p>
+Awaking  O Helena, goddess, nymph, perfect, divine!<br>
+To what, my love, shall I compare thine eyne?<br>
+Crystal is muddy. O, how ripe in show<br>
+Thy lips, those kissing cherries, tempting grow!<br>
+That pure congealed white, high Taurus snow,<br>
+Fann'd with the eastern wind, turns to a crow<br>
+When thou hold'st up thy hand: O, let me kiss<br>
+This princess of pure white, this seal of bliss!<br>
+
+<p><b>HELENA</b></p>
+O spite! O hell! I see you all are bent<br>
+To set against me for your merriment:<br>
+If you we re civil and knew courtesy,<br>
+You would not do me thus much injury.<br>
+Can you not hate me, as I know you do,<br>
+But you must join in souls to mock me too?<br>
+If you were men, as men you are in show,<br>
+You would not use a gentle lady so;<br>
+To vow, and swear, and superpraise my parts,<br>
+When I am sure you hate me with your hearts.<br>
+You both are rivals, and love Hermia;<br>
+And now both rivals, to mock Helena:<br>
+A trim exploit, a manly enterprise,<br>
+To conjure tears up in a poor maid's eyes<br>
+With your derision! none of noble sort<br>
+Would so offend a virgin, and extort<br>
+A poor soul's patience, all to make you sport.<br>
+
+<p><b>LYSANDER</b></p>
+You are unkind, Demetrius; be not so;<br>
+For you love Hermia; this you know I know:<br>
+And here, with all good will, with all my heart,<br>
+In Hermia's love I yield you up my part;<br>
+And yours of Helena to me bequeath,<br>
+Whom I do love and will do till my death.<br>
+
+<p><b>HELENA</b></p>
+Never did mockers waste more idle breath.<br>
+
+<p><b>DEMETRIUS</b></p>
+Lysander, keep thy Hermia; I will none:<br>
+If e'er I loved her, all that love is gone.<br>
+My heart to her but as guest-wise sojourn'd,<br>
+And now to Helen is it home return'd,<br>
+There to remain.<br>
+
+<p><b>LYSANDER</b></p>
+Helen, it is not so.<br>
+
+<p><b>DEMETRIUS</b></p>
+Disparage not the faith thou dost not know,<br>
+Lest, to thy peril, thou aby it dear.<br>
+Look, where thy love comes; yonder is thy dear.<br>
+
+<p><b>HERMIA</b></p>
+Dark night, that from the eye his function takes,<br>
+The ear more quick of apprehension makes;<br>
+Wherein it doth impair the seeing sense,<br>
+It pays the hearing double recompense.<br>
+Thou art not by mine eye, Lysander, found;<br>
+Mine ear, I thank it, brought me to thy sound<br>
+But why unkindly didst thou leave me so?<br>
+
+<p><b>LYSANDER</b></p>
+Why should he stay, whom love doth press to go?<br>
+
+<p><b>HERMIA</b></p>
+What love could press Lysander from my side?<br>
+
+<p><b>LYSANDER</b></p>
+Lysander's love, that would not let him bide,<br>
+Fair Helena, who more engilds the night<br>
+Than all you fiery oes and eyes of light.<br>
+Why seek'st thou me? could not this make thee know,<br>
+The hate I bear thee made me leave thee so?<br>
+
+<p><b>HERMIA</b></p>
+You speak not as you think: it cannot be.<br>
+
+<p><b>HELENA</b></p>
+Lo, she is one of this confederacy!<br>
+Now I perceive they have conjoin'd all three<br>
+To fashion this false sport, in spite of me.<br>
+Injurious Hermia! most ungrateful maid!<br>
+Have you conspired, have you with these contrived<br>
+To bait me with this foul derision?<br>
+Is all the counsel that we two have shared,<br>
+The sisters' vows, the hours that we have spent,<br>
+When we have chid the hasty-footed time<br>
+For parting us,--O, is it all forgot?<br>
+All school-days' friendship, childhood innocence?<br>
+We, Hermia, like two artificial gods,<br>
+Have with our needles created both one flower,<br>
+Both on one sampler, sitting on one cushion,<br>
+Both warbling of one song, both in one key,<br>
+As if our hands, our sides, voices and minds,<br>
+Had been incorporate. So we grow together,<br>
+Like to a double cherry, seeming parted,<br>
+But yet an union in partition;<br>
+Two lovely berries moulded on one stem;<br>
+So, with two seeming bodies, but one heart;<br>
+Two of the first, like coats in heraldry,<br>
+Due but to one and crowned with one crest.<br>
+And will you rent our ancient love asunder,<br>
+To join with men in scorning your poor friend?<br>
+It is not friendly, 'tis not maidenly:<br>
+Our sex, as well as I, may chide you for it,<br>
+Though I alone do feel the injury.<br>
+
+<p><b>HERMIA</b></p>
+I am amazed at your passionate words.<br>
+I scorn you not: it seems that you scorn me.<br>
+
+<p><b>HELENA</b></p>
+Have you not set Lysander, as in scorn,<br>
+To follow me and praise my eyes and face?<br>
+And made your other love, Demetrius,<br>
+Who even but now did spurn me with his foot,<br>
+To call me goddess, nymph, divine and rare,<br>
+Precious, celestial? Wherefore speaks he this<br>
+To her he hates? and wherefore doth Lysander<br>
+Deny your love, so rich within his soul,<br>
+And tender me, forsooth, affection,<br>
+But by your setting on, by your consent?<br>
+What thought I be not so in grace as you,<br>
+So hung upon with love, so fortunate,<br>
+But miserable most, to love unloved?<br>
+This you should pity rather than despise.<br>
+
+<p><b>HERNIA</b></p>
+I understand not what you mean by this.<br>
+
+<p><b>HELENA</b></p>
+Ay, do, persever, counterfeit sad looks,<br>
+Make mouths upon me when I turn my back;<br>
+Wink each at other; hold the sweet jest up:<br>
+This sport, well carried, shall be chronicled.<br>
+If you have any pity, grace, or manners,<br>
+You would not make me such an argument.<br>
+But fare ye well: 'tis partly my own fault;<br>
+Which death or absence soon shall remedy.<br>
+
+<p><b>LYSANDER</b></p>
+Stay, gentle Helena; hear my excuse:<br>
+My love, my life my soul, fair Helena!<br>
+
+<p><b>HELENA</b></p>
+O excellent!<br>
+
+<p><b>HERMIA</b></p>
+Sweet, do not scorn her so.<br>
+
+<p><b>DEMETRIUS</b></p>
+If she cannot entreat, I can compel.<br>
+
+<p><b>LYSANDER</b></p>
+Thou canst compel no more than she entreat:<br>
+Thy threats have no more strength than her weak prayers.<br>
+Helen, I love thee; by my life, I do:<br>
+I swear by that which I will lose for thee,<br>
+To prove him false that says I love thee not.<br>
+
+<p><b>DEMETRIUS</b></p>
+I say I love thee more than he can do.<br>
+
+<p><b>LYSANDER</b></p>
+If thou say so, withdraw, and prove it too.<br>
+
+<p><b>DEMETRIUS</b></p>
+Quick, come!<br>
+
+<p><b>HERMIA</b></p>
+Lysander, whereto tends all this?<br>
+
+<p><b>LYSANDER</b></p>
+Away, you Ethiope!<br>
+
+<p><b>DEMETRIUS</b></p>
+No, no; he'll<br>
+Seem to break loose; take on as you would follow,<br>
+But yet come not: you are a tame man, go!<br>
+
+<p><b>LYSANDER</b></p>
+Hang off, thou cat, thou burr! vile thing, let loose,<br>
+Or I will shake thee from me like a serpent!<br>
+
+<p><b>HERMIA</b></p>
+Why are you grown so rude? what change is this?<br>
+Sweet love,--<br>
+
+<p><b>LYSANDER</b></p>
+Thy love! out, tawny Tartar, out!<br>
+Out, loathed medicine! hated potion, hence!<br>
+
+<p><b>HERMIA</b></p>
+Do you not jest?<br>
+
+<p><b>HELENA</b></p>
+Yes, sooth; and so do you.<br>
+
+<p><b>LYSANDER</b></p>
+Demetrius, I will keep my word with thee.<br>
+
+<p><b>DEMETRIUS</b></p>
+I would I had your bond, for I perceive<br>
+A weak bond holds you: I'll not trust your word.<br>
+
+<p><b>LYSANDER</b></p>
+What, should I hurt her, strike her, kill her dead?<br>
+Although I hate her, I'll not harm her so.<br>
+
+<p><b>HERMIA</b></p>
+What, can you do me greater harm than hate?<br>
+Hate me! wherefore? O me! what news, my love!<br>
+Am not I Hermia? are not you Lysander?<br>
+I am as fair now as I was erewhile.<br>
+Since night you loved me; yet since night you left<br>
+me:<br>
+Why, then you left me--O, the gods forbid!--<br>
+In earnest, shall I say?<br>
+
+<p><b>LYSANDER</b></p>
+Ay, by my life;<br>
+And never did desire to see thee more.<br>
+Therefore be out of hope, of question, of doubt;<br>
+Be certain, nothing truer; 'tis no jest<br>
+That I do hate thee and love Helena.<br>
+
+<p><b>HERMIA</b></p>
+O me! you juggler! you canker-blossom!<br>
+You thief of love! what, have you come by night<br>
+And stolen my love's heart from him?<br>
+
+<p><b>HELENA</b></p>
+Fine, i'faith!<br>
+Have you no modesty, no maiden shame,<br>
+No touch of bashfulness? What, will you tear<br>
+Impatient answers from my gentle tongue?<br>
+Fie, fie! you counterfeit, you puppet, you!<br>
+
+<p><b>HERMIA</b></p>
+Puppet? why so? ay, that way goes the game.<br>
+Now I perceive that she hath made compare<br>
+Between our statures; she hath urged her height;<br>
+And with her personage, her tall personage,<br>
+Her height, forsooth, she hath prevail'd with him.<br>
+And are you grown so high in his esteem;<br>
+Because I am so dwarfish and so low?<br>
+How low am I, thou painted maypole? speak;<br>
+How low am I? I am not yet so low<br>
+But that my nails can reach unto thine eyes.<br>
+
+<p><b>HELENA</b></p>
+I pray you, though you mock me, gentlemen,<br>
+Let her not hurt me: I was never curst;<br>
+I have no gift at all in shrewishness;<br>
+I am a right maid for my cowardice:<br>
+Let her not strike me. You perhaps may think,<br>
+Because she is something lower than myself,<br>
+That I can match her.<br>
+
+<p><b>HERMIA</b></p>
+Lower! hark, again.<br>
+
+<p><b>HELENA</b></p>
+Good Hermia, do not be so bitter with me.<br>
+I evermore did love you, Hermia,<br>
+Did ever keep your counsels, never wrong'd you;<br>
+Save that, in love unto Demetrius,<br>
+I told him of your stealth unto this wood.<br>
+He follow'd you; for love I follow'd him;<br>
+But he hath chid me hence and threaten'd me<br>
+To strike me, spurn me, nay, to kill me too:<br>
+And now, so you will let me quiet go,<br>
+To Athens will I bear my folly back<br>
+And follow you no further: let me go:<br>
+You see how simple and how fond I am.<br>
+
+<p><b>HERMIA</b></p>
+Why, get you gone: who is't that hinders you?<br>
+
+<p><b>HELENA</b></p>
+A foolish heart, that I leave here behind.<br>
+
+<p><b>HERMIA</b></p>
+What, with Lysander?<br>
+
+<p><b>HELENA</b></p>
+With Demetrius.<br>
+
+<p><b>LYSANDER</b></p>
+Be not afraid; she shall not harm thee, Helena.<br>
+
+<p><b>DEMETRIUS</b></p>
+No, sir, she shall not, though you take her part.<br>
+
+<p><b>HELENA</b></p>
+O, when she's angry, she is keen and shrewd!<br>
+She was a vixen when she went to school;<br>
+And though she be but little, she is fierce.<br>
+
+<p><b>HERMIA</b></p>
+'Little' again! nothing but 'low' and 'little'!<br>
+Why will you suffer her to flout me thus?<br>
+Let me come to her.<br>
+
+<p><b>LYSANDER</b></p>
+Get you gone, you dwarf;<br>
+You minimus, of hindering knot-grass made;<br>
+You bead, you acorn.<br>
+
+<p><b>DEMETRIUS</b></p>
+You are too officious<br>
+In her behalf that scorns your services.<br>
+Let her alone: speak not of Helena;<br>
+Take not her part; for, if thou dost intend<br>
+Never so little show of love to her,<br>
+Thou shalt aby it.<br>
+
+<p><b>LYSANDER</b></p>
+Now she holds me not;<br>
+Now follow, if thou darest, to try whose right,<br>
+Of thine or mine, is most in Helena.<br>
+
+<p><b>DEMETRIUS</b></p>
+Follow! nay, I'll go with thee, cheek by jole.<br>
+
+<p><b>HERMIA</b></p>
+You, mistress, all this coil is 'long of you:<br>
+Nay, go not back.<br>
+
+<p><b>HELENA</b></p>
+I will not trust you, I,<br>
+Nor longer stay in your curst company.<br>
+Your hands than mine are quicker for a fray,<br>
+My legs are longer though, to run away.<br>
+
+<p><b>HERMIA</b></p>
+I am amazed, and know not what to say.<br>
+
+<p><b>OBERON</b></p>
+This is thy negligence: still thou mistakest,<br>
+Or else committ'st thy knaveries wilfully.<br>
+
+<p><b>PUCK</b></p>
+Believe me, king of shadows, I mistook.<br>
+Did not you tell me I should know the man<br>
+By the Athenian garment be had on?<br>
+And so far blameless proves my enterprise,<br>
+That I have 'nointed an Athenian's eyes;<br>
+And so far am I glad it so did sort<br>
+As this their jangling I esteem a sport.<br>
+
+<p><b>OBERON</b></p>
+Thou see'st these lovers seek a place to fight:<br>
+Hie therefore, Robin, overcast the night;<br>
+The starry welkin cover thou anon<br>
+With drooping fog as black as Acheron,<br>
+And lead these testy rivals so astray<br>
+As one come not within another's way.<br>
+Like to Lysander sometime frame thy tongue,<br>
+Then stir Demetrius up with bitter wrong;<br>
+And sometime rail thou like Demetrius;<br>
+And from each other look thou lead them thus,<br>
+Till o'er their brows death-counterfeiting sleep<br>
+With leaden legs and batty wings doth creep:<br>
+Then crush this herb into Lysander's eye;<br>
+Whose liquor hath this virtuous property,<br>
+To take from thence all error with his might,<br>
+And make his eyeballs roll with wonted sight.<br>
+When they next wake, all this derision<br>
+Shall seem a dream and fruitless vision,<br>
+And back to Athens shall the lovers wend,<br>
+With league whose date till death shall never end.<br>
+Whiles I in this affair do thee employ,<br>
+I'll to my queen and beg her Indian boy;<br>
+And then I will her charmed eye release<br>
+From monster's view, and all things shall be peace.<br>
+
+<p><b>PUCK</b></p>
+My fairy lord, this must be done with haste,<br>
+For night's swift dragons cut the clouds full fast,<br>
+And yonder shines Aurora's harbinger;<br>
+At whose approach, ghosts, wandering here and there,<br>
+Troop home to churchyards: damned spirits all,<br>
+That in crossways and floods have burial,<br>
+Already to their wormy beds are gone;<br>
+For fear lest day should look their shames upon,<br>
+They willfully themselves exile from light<br>
+And must for aye consort with black-brow'd night.<br>
+
+<p><b>OBERON</b></p>
+But we are spirits of another sort:<br>
+I with the morning's love have oft made sport,<br>
+And, like a forester, the groves may tread,<br>
+Even till the eastern gate, all fiery-red,<br>
+Opening on Neptune with fair blessed beams,<br>
+Turns into yellow gold his salt green streams.<br>
+But, notwithstanding, haste; make no delay:<br>
+We may effect this business yet ere day.<br>
+
+<p><b>PUCK</b></p>
+Up and down, up and down,<br>
+I will lead them up and down:<br>
+I am fear'd in field and town:<br>
+Goblin, lead them up and down.<br>
+Here comes one.<br>
+
+<p><b>LYSANDER</b></p>
+Where art thou, proud Demetrius? speak thou now.<br>
+
+<p><b>PUCK</b></p>
+Here, villain; drawn and ready. Where art thou?<br>
+
+<p><b>LYSANDER</b></p>
+I will be with thee straight.<br>
+
+<p><b>PUCK</b></p>
+Follow me, then,<br>
+To plainer ground.<br>
+
+<p><b>DEMETRIUS</b></p>
+Lysander! speak again:<br>
+Thou runaway, thou coward, art thou fled?<br>
+Speak! In some bush? Where dost thou hide thy head?<br>
+
+<p><b>PUCK</b></p>
+Thou coward, art thou bragging to the stars,<br>
+Telling the bushes that thou look'st for wars,<br>
+And wilt not come? Come, recreant; come, thou child;<br>
+I'll whip thee with a rod: he is defiled<br>
+That draws a sword on thee.<br>
+
+<p><b>DEMETRIUS</b></p>
+Yea, art thou there?<br>
+
+<p><b>PUCK</b></p>
+Follow my voice: we'll try no manhood here.<br>
+
+<p><b>LYSANDER</b></p>
+He goes before me and still dares me on:<br>
+When I come where he calls, then he is gone.<br>
+The villain is much lighter-heel'd than I:<br>
+I follow'd fast, but faster he did fly;<br>
+That fallen am I in dark uneven way,<br>
+And here will rest me.<br>
+Lies down
+Come, thou gentle day!<br>
+For if but once thou show me thy grey light,<br>
+I'll find Demetrius and revenge this spite.<br>
+
+<p><b>PUCK</b></p>
+Ho, ho, ho! Coward, why comest thou not?<br>
+
+<p><b>DEMETRIUS</b></p>
+Abide me, if thou darest; for well I wot<br>
+Thou runn'st before me, shifting every place,<br>
+And darest not stand, nor look me in the face.<br>
+Where art thou now?<br>
+
+<p><b>PUCK</b></p>
+Come hither: I am here.<br>
+
+<p><b>DEMETRIUS</b></p>
+Nay, then, thou mock'st me. Thou shalt buy this dear,<br>
+If ever I thy face by daylight see:<br>
+Now, go thy way. Faintness constraineth me<br>
+To measure out my length on this cold bed.<br>
+By day's approach look to be visited.<br>
+
+<p><b>HELENA</b></p>
+O weary night, O long and tedious night,<br>
+Abate thy hour! Shine comforts from the east,<br>
+That I may back to Athens by daylight,<br>
+From these that my poor company detest:<br>
+And sleep, that sometimes shuts up sorrow's eye,<br>
+Steal me awhile from mine own company.<br>
+
+<p><b>PUCK</b></p>
+Yet but three? Come one more;<br>
+Two of both kinds make up four.<br>
+Here she comes, curst and sad:<br>
+Cupid is a knavish lad,<br>
+Thus to make poor females mad.<br>
+
+<p><b>HERMIA</b></p>
+Never so weary, never so in woe,<br>
+Bedabbled with the dew and torn with briers,<br>
+I can no further crawl, no further go;<br>
+My legs can keep no pace with my desires.<br>
+Here will I rest me till the break of day.<br>
+Heavens shield Lysander, if they mean a fray!<br>
+
+<p><b>PUCK</b></p>
+On the ground<br>
+Sleep sound:<br>
+I'll apply<br>
+To your eye,<br>
+Gentle lover, remedy.<br>
+Squeezing the juice on LYSANDER's eyes
+When thou wakest,<br>
+Thou takest<br>
+True delight<br>
+In the sight<br>
+Of thy former lady's eye:<br>
+And the country proverb known,<br>
+That every man should take his own,<br>
+In your waking shall be shown:<br>
+Jack shall have Jill;<br>
+Nought shall go ill;<br>
+The man shall have his mare again, and all shall be well.<br>
+<h3>ACT IV</h3>
+<h3>SCENE I.  The same. LYSANDER, DEMETRIUS, HELENA, and HERMIA lying asleep.</h3>
+<p><b>TITANIA</b></p>
+Come, sit thee down upon this flowery bed,<br>
+While I thy amiable cheeks do coy,<br>
+And stick musk-roses in thy sleek smooth head,<br>
+And kiss thy fair large ears, my gentle joy.<br>
+
+<p><b>BOTTOM</b></p>
+Where's Peaseblossom?<br>
+
+<p><b>PEASEBLOSSOM</b></p>
+Ready.<br>
+
+<p><b>BOTTOM</b></p>
+Scratch my head Peaseblossom. Where's Mounsieur Cobweb?<br>
+
+<p><b>COBWEB</b></p>
+Ready.<br>
+
+<p><b>BOTTOM</b></p>
+Mounsieur Cobweb, good mounsieur, get you your<br>
+weapons in your hand, and kill me a red-hipped<br>
+humble-bee on the top of a thistle; and, good<br>
+mounsieur, bring me the honey-bag. Do not fret<br>
+yourself too much in the action, mounsieur; and,<br>
+good mounsieur, have a care the honey-bag break not;<br>
+I would be loath to have you overflown with a<br>
+honey-bag, signior. Where's Mounsieur Mustardseed?<br>
+
+<p><b>MUSTARDSEED</b></p>
+Ready.<br>
+
+<p><b>BOTTOM</b></p>
+Give me your neaf, Mounsieur Mustardseed. Pray you,<br>
+leave your courtesy, good mounsieur.<br>
+
+<p><b>MUSTARDSEED</b></p>
+What's your Will?<br>
+
+<p><b>BOTTOM</b></p>
+Nothing, good mounsieur, but to help Cavalery Cobweb<br>
+to scratch. I must to the barber's, monsieur; for<br>
+methinks I am marvellous hairy about the face; and I<br>
+am such a tender ass, if my hair do but tickle me,<br>
+I must scratch.<br>
+
+<p><b>TITANIA</b></p>
+What, wilt thou hear some music,<br>
+my sweet love?<br>
+
+<p><b>BOTTOM</b></p>
+I have a reasonable good ear in music. Let's have<br>
+the tongs and the bones.<br>
+
+<p><b>TITANIA</b></p>
+Or say, sweet love, what thou desirest to eat.<br>
+
+<p><b>BOTTOM</b></p>
+Truly, a peck of provender: I could munch your good<br>
+dry oats. Methinks I have a great desire to a bottle<br>
+of hay: good hay, sweet hay, hath no fellow.<br>
+
+<p><b>TITANIA</b></p>
+I have a venturous fairy that shall seek<br>
+The squirrel's hoard, and fetch thee new nuts.<br>
+
+<p><b>BOTTOM</b></p>
+I had rather have a handful or two of dried peas.<br>
+But, I pray you, let none of your people stir me: I<br>
+have an exposition of sleep come upon me.<br>
+
+<p><b>TITANIA</b></p>
+Sleep thou, and I will wind thee in my arms.<br>
+Fairies, begone, and be all ways away.<br>
+Exeunt fairies
+So doth the woodbine the sweet honeysuckle<br>
+Gently entwist; the female ivy so<br>
+Enrings the barky fingers of the elm.<br>
+O, how I love thee! how I dote on thee!<br>
+
+<p><b>OBERON</b></p>
+Advancing  Welcome, good Robin.<br>
+See'st thou this sweet sight?<br>
+Her dotage now I do begin to pity:<br>
+For, meeting her of late behind the wood,<br>
+Seeking sweet favours from this hateful fool,<br>
+I did upbraid her and fall out with her;<br>
+For she his hairy temples then had rounded<br>
+With a coronet of fresh and fragrant flowers;<br>
+And that same dew, which sometime on the buds<br>
+Was wont to swell like round and orient pearls,<br>
+Stood now within the pretty flowerets' eyes<br>
+Like tears that did their own disgrace bewail.<br>
+When I had at my pleasure taunted her<br>
+And she in mild terms begg'd my patience,<br>
+I then did ask of her her changeling child;<br>
+Which straight she gave me, and her fairy sent<br>
+To bear him to my bower in fairy land.<br>
+And now I have the boy, I will undo<br>
+This hateful imperfection of her eyes:<br>
+And, gentle Puck, take this transformed scalp<br>
+From off the head of this Athenian swain;<br>
+That, he awaking when the other do,<br>
+May all to Athens back again repair<br>
+And think no more of this night's accidents<br>
+But as the fierce vexation of a dream.<br>
+But first I will release the fairy queen.<br>
+Be as thou wast wont to be;<br>
+See as thou wast wont to see:<br>
+Dian's bud o'er Cupid's flower<br>
+Hath such force and blessed power.<br>
+Now, my Titania; wake you, my sweet queen.<br>
+
+<p><b>TITANIA</b></p>
+My Oberon! what visions have I seen!<br>
+Methought I was enamour'd of an ass.<br>
+
+<p><b>OBERON</b></p>
+There lies your love.<br>
+
+<p><b>TITANIA</b></p>
+How came these things to pass?<br>
+O, how mine eyes do loathe his visage now!<br>
+
+<p><b>OBERON</b></p>
+Silence awhile. Robin, take off this head.<br>
+Titania, music call; and strike more dead<br>
+Than common sleep of all these five the sense.<br>
+
+<p><b>TITANIA</b></p>
+Music, ho! music, such as charmeth sleep!<br>
+
+<p><b>PUCK</b></p>
+Now, when thou wakest, with thine<br>
+own fool's eyes peep.<br>
+
+<p><b>OBERON</b></p>
+Sound, music! Come, my queen, take hands with me,<br>
+And rock the ground whereon these sleepers be.<br>
+Now thou and I are new in amity,<br>
+And will to-morrow midnight solemnly<br>
+Dance in Duke Theseus' house triumphantly,<br>
+And bless it to all fair prosperity:<br>
+There shall the pairs of faithful lovers be<br>
+Wedded, with Theseus, all in jollity.<br>
+
+<p><b>PUCK</b></p>
+Fairy king, attend, and mark:<br>
+I do hear the morning lark.<br>
+
+<p><b>OBERON</b></p>
+Then, my queen, in silence sad,<br>
+Trip we after the night's shade:<br>
+We the globe can compass soon,<br>
+Swifter than the wandering moon.<br>
+
+<p><b>TITANIA</b></p>
+Come, my lord, and in our flight<br>
+Tell me how it came this night<br>
+That I sleeping here was found<br>
+With these mortals on the ground.<br>
+Exeunt
+
+<p><b>THESEUS</b></p>
+Go, one of you, find out the forester;<br>
+For now our observation is perform'd;<br>
+And since we have the vaward of the day,<br>
+My love shall hear the music of my hounds.<br>
+Uncouple in the western valley; let them go:<br>
+Dispatch, I say, and find the forester.<br>
+Exit an Attendant
+We will, fair queen, up to the mountain's top,<br>
+And mark the musical confusion<br>
+Of hounds and echo in conjunction.<br>
+
+<p><b>HIPPOLYTA</b></p>
+I was with Hercules and Cadmus once,<br>
+When in a wood of Crete they bay'd the bear<br>
+With hounds of Sparta: never did I hear<br>
+Such gallant chiding: for, besides the groves,<br>
+The skies, the fountains, every region near<br>
+Seem'd all one mutual cry: I never heard<br>
+So musical a discord, such sweet thunder.<br>
+
+<p><b>THESEUS</b></p>
+My hounds are bred out of the Spartan kind,<br>
+So flew'd, so sanded, and their heads are hung<br>
+With ears that sweep away the morning dew;<br>
+Crook-knee'd, and dew-lapp'd like Thessalian bulls;<br>
+Slow in pursuit, but match'd in mouth like bells,<br>
+Each under each. A cry more tuneable<br>
+Was never holla'd to, nor cheer'd with horn,<br>
+In Crete, in Sparta, nor in Thessaly:<br>
+Judge when you hear. But, soft! what nymphs are these?<br>
+
+<p><b>EGEUS</b></p>
+My lord, this is my daughter here asleep;<br>
+And this, Lysander; this Demetrius is;<br>
+This Helena, old Nedar's Helena:<br>
+I wonder of their being here together.<br>
+
+<p><b>THESEUS</b></p>
+No doubt they rose up early to observe<br>
+The rite of May, and hearing our intent,<br>
+Came here in grace our solemnity.<br>
+But speak, Egeus; is not this the day<br>
+That Hermia should give answer of her choice?<br>
+
+<p><b>EGEUS</b></p>
+It is, my lord.<br>
+
+<p><b>THESEUS</b></p>
+Go, bid the huntsmen wake them with their horns.<br>
+Horns and shout within. LYSANDER, DEMETRIUS,
+HELENA, and HERMIA wake and start up
+Good morrow, friends. Saint Valentine is past:<br>
+Begin these wood-birds but to couple now?<br>
+
+<p><b>LYSANDER</b></p>
+Pardon, my lord.<br>
+
+<p><b>THESEUS</b></p>
+I pray you all, stand up.<br>
+I know you two are rival enemies:<br>
+How comes this gentle concord in the world,<br>
+That hatred is so far from jealousy,<br>
+To sleep by hate, and fear no enmity?<br>
+
+<p><b>LYSANDER</b></p>
+My lord, I shall reply amazedly,<br>
+Half sleep, half waking: but as yet, I swear,<br>
+I cannot truly say how I came here;<br>
+But, as I think,--for truly would I speak,<br>
+And now do I bethink me, so it is,--<br>
+I came with Hermia hither: our intent<br>
+Was to be gone from Athens, where we might,<br>
+Without the peril of the Athenian law.<br>
+
+<p><b>EGEUS</b></p>
+Enough, enough, my lord; you have enough:<br>
+I beg the law, the law, upon his head.<br>
+They would have stolen away; they would, Demetrius,<br>
+Thereby to have defeated you and me,<br>
+You of your wife and me of my consent,<br>
+Of my consent that she should be your wife.<br>
+
+<p><b>DEMETRIUS</b></p>
+My lord, fair Helen told me of their stealth,<br>
+Of this their purpose hither to this wood;<br>
+And I in fury hither follow'd them,<br>
+Fair Helena in fancy following me.<br>
+But, my good lord, I wot not by what power,--<br>
+But by some power it is,--my love to Hermia,<br>
+Melted as the snow, seems to me now<br>
+As the remembrance of an idle gaud<br>
+Which in my childhood I did dote upon;<br>
+And all the faith, the virtue of my heart,<br>
+The object and the pleasure of mine eye,<br>
+Is only Helena. To her, my lord,<br>
+Was I betroth'd ere I saw Hermia:<br>
+But, like in sickness, did I loathe this food;<br>
+But, as in health, come to my natural taste,<br>
+Now I do wish it, love it, long for it,<br>
+And will for evermore be true to it.<br>
+
+<p><b>THESEUS</b></p>
+Fair lovers, you are fortunately met:<br>
+Of this discourse we more will hear anon.<br>
+Egeus, I will overbear your will;<br>
+For in the temple by and by with us<br>
+These couples shall eternally be knit:<br>
+And, for the morning now is something worn,<br>
+Our purposed hunting shall be set aside.<br>
+Away with us to Athens; three and three,<br>
+We'll hold a feast in great solemnity.<br>
+Come, Hippolyta.<br>
+
+<p><b>DEMETRIUS</b></p>
+These things seem small and undistinguishable,<br>
+
+<p><b>HERMIA</b></p>
+Methinks I see these things with parted eye,<br>
+When every thing seems double.<br>
+
+<p><b>HELENA</b></p>
+So methinks:<br>
+And I have found Demetrius like a jewel,<br>
+Mine own, and not mine own.<br>
+
+<p><b>DEMETRIUS</b></p>
+Are you sure<br>
+That we are awake? It seems to me<br>
+That yet we sleep, we dream. Do not you think<br>
+The duke was here, and bid us follow him?<br>
+
+<p><b>HERMIA</b></p>
+Yea; and my father.<br>
+
+<p><b>HELENA</b></p>
+And Hippolyta.<br>
+
+<p><b>LYSANDER</b></p>
+And he did bid us follow to the temple.<br>
+
+<p><b>DEMETRIUS</b></p>
+Why, then, we are awake: let's follow him<br>
+And by the way let us recount our dreams.<br>
+
+<p><b>BOTTOM</b></p>
+Awaking  When my cue comes, call me, and I will<br>
+answer: my next is, 'Most fair Pyramus.' Heigh-ho!<br>
+Peter Quince! Flute, the bellows-mender! Snout,<br>
+the tinker! Starveling! God's my life, stolen<br>
+hence, and left me asleep! I have had a most rare<br>
+vision. I have had a dream, past the wit of man to<br>
+say what dream it was: man is but an ass, if he go<br>
+about to expound this dream. Methought I was--there<br>
+is no man can tell what. Methought I was,--and<br>
+methought I had,--but man is but a patched fool, if<br>
+he will offer to say what methought I had. The eye<br>
+of man hath not heard, the ear of man hath not<br>
+seen, man's hand is not able to taste, his tongue<br>
+to conceive, nor his heart to report, what my dream<br>
+was. I will get Peter Quince to write a ballad of<br>
+this dream: it shall be called Bottom's Dream,<br>
+because it hath no bottom; and I will sing it in the<br>
+latter end of a play, before the duke:<br>
+peradventure, to make it the more gracious, I shall<br>
+sing it at her death.<br>
+<h3>SCENE II.  Athens. QUINCE'S house.</h3>
+<p><b>QUINCE</b></p>
+Have you sent to Bottom's house? is he come home yet?<br>
+
+<p><b>STARVELING</b></p>
+He cannot be heard of. Out of doubt he is<br>
+transported.<br>
+
+<p><b>FLUTE</b></p>
+If he come not, then the play is marred: it goes<br>
+not forward, doth it?<br>
+
+<p><b>QUINCE</b></p>
+It is not possible: you have not a man in all<br>
+Athens able to discharge Pyramus but he.<br>
+
+<p><b>FLUTE</b></p>
+No, he hath simply the best wit of any handicraft<br>
+man in Athens.<br>
+
+<p><b>QUINCE</b></p>
+Yea and the best person too; and he is a very<br>
+paramour for a sweet voice.<br>
+
+<p><b>FLUTE</b></p>
+You must say 'paragon:' a paramour is, God bless us,<br>
+a thing of naught.<br>
+
+<p><b>SNUG</b></p>
+Masters, the duke is coming from the temple, and<br>
+there is two or three lords and ladies more married:<br>
+if our sport had gone forward, we had all been made<br>
+men.<br>
+
+<p><b>FLUTE</b></p>
+O sweet bully Bottom! Thus hath he lost sixpence a<br>
+day during his life; he could not have 'scaped<br>
+sixpence a day: an the duke had not given him<br>
+sixpence a day for playing Pyramus, I'll be hanged;<br>
+he would have deserved it: sixpence a day in<br>
+Pyramus, or nothing.<br>
+
+<p><b>BOTTOM</b></p>
+Where are these lads? where are these hearts?<br>
+
+<p><b>QUINCE</b></p>
+Bottom! O most courageous day! O most happy hour!<br>
+
+<p><b>BOTTOM</b></p>
+Masters, I am to discourse wonders: but ask me not<br>
+what; for if I tell you, I am no true Athenian. I<br>
+will tell you every thing, right as it fell out.<br>
+
+<p><b>QUINCE</b></p>
+Let us hear, sweet Bottom.<br>
+
+<p><b>BOTTOM</b></p>
+Not a word of me. All that I will tell you is, that<br>
+the duke hath dined. Get your apparel together,<br>
+good strings to your beards, new ribbons to your<br>
+pumps; meet presently at the palace; every man look<br>
+o'er his part; for the short and the long is, our<br>
+play is preferred. In any case, let Thisby have<br>
+clean linen; and let not him that plays the lion<br>
+pair his nails, for they shall hang out for the<br>
+lion's claws. And, most dear actors, eat no onions<br>
+nor garlic, for we are to utter sweet breath; and I<br>
+do not doubt but to hear them say, it is a sweet<br>
+comedy. No more words: away! go, away!<br>
+<h3>ACT V</h3>
+<h3>SCENE I.  Athens. The palace of THESEUS.</h3>
+<p><b>HIPPOLYTA</b></p>
+'Tis strange my Theseus, that these<br>
+lovers speak of.<br>
+
+<p><b>THESEUS</b></p>
+More strange than true: I never may believe<br>
+These antique fables, nor these fairy toys.<br>
+Lovers and madmen have such seething brains,<br>
+Such shaping fantasies, that apprehend<br>
+More than cool reason ever comprehends.<br>
+The lunatic, the lover and the poet<br>
+Are of imagination all compact:<br>
+One sees more devils than vast hell can hold,<br>
+That is, the madman: the lover, all as frantic,<br>
+Sees Helen's beauty in a brow of Egypt:<br>
+The poet's eye, in fine frenzy rolling,<br>
+Doth glance from heaven to earth, from earth to heaven;<br>
+And as imagination bodies forth<br>
+The forms of things unknown, the poet's pen<br>
+Turns them to shapes and gives to airy nothing<br>
+A local habitation and a name.<br>
+Such tricks hath strong imagination,<br>
+That if it would but apprehend some joy,<br>
+It comprehends some bringer of that joy;<br>
+Or in the night, imagining some fear,<br>
+How easy is a bush supposed a bear!<br>
+
+<p><b>HIPPOLYTA</b></p>
+But all the story of the night told over,<br>
+And all their minds transfigured so together,<br>
+More witnesseth than fancy's images<br>
+And grows to something of great constancy;<br>
+But, howsoever, strange and admirable.<br>
+
+<p><b>THESEUS</b></p>
+Here come the lovers, full of joy and mirth.<br>
+Enter LYSANDER, DEMETRIUS, HERMIA, and HELENA
+Joy, gentle friends! joy and fresh days of love<br>
+Accompany your hearts!<br>
+
+<p><b>LYSANDER</b></p>
+More than to us<br>
+Wait in your royal walks, your board, your bed!<br>
+
+<p><b>THESEUS</b></p>
+Come now; what masques, what dances shall we have,<br>
+To wear away this long age of three hours<br>
+Between our after-supper and bed-time?<br>
+Where is our usual manager of mirth?<br>
+What revels are in hand? Is there no play,<br>
+To ease the anguish of a torturing hour?<br>
+Call Philostrate.<br>
+
+<p><b>PHILOSTRATE</b></p>
+Here, mighty Theseus.<br>
+
+<p><b>THESEUS</b></p>
+Say, what abridgement have you for this evening?<br>
+What masque? what music? How shall we beguile<br>
+The lazy time, if not with some delight?<br>
+
+<p><b>PHILOSTRATE</b></p>
+There is a brief how many sports are ripe:<br>
+Make choice of which your highness will see first.<br>
+
+<p><b>THESEUS</b></p>
+Reads  'The battle with the Centaurs, to be sung<br>
+By an Athenian eunuch to the harp.'<br>
+We'll none of that: that have I told my love,<br>
+In glory of my kinsman Hercules.<br>
+Reads
+'The riot of the tipsy Bacchanals,<br>
+Tearing the Thracian singer in their rage.'<br>
+That is an old device; and it was play'd<br>
+When I from Thebes came last a conqueror.<br>
+Reads
+'The thrice three Muses mourning for the death<br>
+Of Learning, late deceased in beggary.'<br>
+That is some satire, keen and critical,<br>
+Not sorting with a nuptial ceremony.<br>
+Reads
+'A tedious brief scene of young Pyramus<br>
+And his love Thisbe; very tragical mirth.'<br>
+Merry and tragical! tedious and brief!<br>
+That is, hot ice and wondrous strange snow.<br>
+How shall we find the concord of this discord?<br>
+
+<p><b>PHILOSTRATE</b></p>
+A play there is, my lord, some ten words long,<br>
+Which is as brief as I have known a play;<br>
+But by ten words, my lord, it is too long,<br>
+Which makes it tedious; for in all the play<br>
+There is not one word apt, one player fitted:<br>
+And tragical, my noble lord, it is;<br>
+For Pyramus therein doth kill himself.<br>
+Which, when I saw rehearsed, I must confess,<br>
+Made mine eyes water; but more merry tears<br>
+The passion of loud laughter never shed.<br>
+
+<p><b>THESEUS</b></p>
+What are they that do play it?<br>
+
+<p><b>PHILOSTRATE</b></p>
+Hard-handed men that work in Athens here,<br>
+Which never labour'd in their minds till now,<br>
+And now have toil'd their unbreathed memories<br>
+With this same play, against your nuptial.<br>
+
+<p><b>THESEUS</b></p>
+And we will hear it.<br>
+
+<p><b>PHILOSTRATE</b></p>
+No, my noble lord;<br>
+It is not for you: I have heard it over,<br>
+And it is nothing, nothing in the world;<br>
+Unless you can find sport in their intents,<br>
+Extremely stretch'd and conn'd with cruel pain,<br>
+To do you service.<br>
+
+<p><b>THESEUS</b></p>
+I will hear that play;<br>
+For never anything can be amiss,<br>
+When simpleness and duty tender it.<br>
+Go, bring them in: and take your places, ladies.<br>
+
+<p><b>HIPPOLYTA</b></p>
+I love not to see wretchedness o'er charged<br>
+And duty in his service perishing.<br>
+
+<p><b>THESEUS</b></p>
+Why, gentle sweet, you shall see no such thing.<br>
+
+<p><b>HIPPOLYTA</b></p>
+He says they can do nothing in this kind.<br>
+
+<p><b>THESEUS</b></p>
+The kinder we, to give them thanks for nothing.<br>
+Our sport shall be to take what they mistake:<br>
+And what poor duty cannot do, noble respect<br>
+Takes it in might, not merit.<br>
+Where I have come, great clerks have purposed<br>
+To greet me with premeditated welcomes;<br>
+Where I have seen them shiver and look pale,<br>
+Make periods in the midst of sentences,<br>
+Throttle their practised accent in their fears<br>
+And in conclusion dumbly have broke off,<br>
+Not paying me a welcome. Trust me, sweet,<br>
+Out of this silence yet I pick'd a welcome;<br>
+And in the modesty of fearful duty<br>
+I read as much as from the rattling tongue<br>
+Of saucy and audacious eloquence.<br>
+Love, therefore, and tongue-tied simplicity<br>
+In least speak most, to my capacity.<br>
+
+<p><b>PHILOSTRATE</b></p>
+So please your grace, the Prologue is address'd.<br>
+
+<p><b>THESEUS</b></p>
+Let him approach.<br>
+
+<p><b>Prologue</b></p>
+If we offend, it is with our good will.<br>
+That you should think, we come not to offend,<br>
+But with good will. To show our simple skill,<br>
+That is the true beginning of our end.<br>
+Consider then we come but in despite.<br>
+We do not come as minding to contest you,<br>
+Our true intent is. All for your delight<br>
+We are not here. That you should here repent you,<br>
+The actors are at hand and by their show<br>
+You shall know all that you are like to know.<br>
+
+<p><b>THESEUS</b></p>
+This fellow doth not stand upon points.<br>
+
+<p><b>LYSANDER</b></p>
+He hath rid his prologue like a rough colt; he knows<br>
+not the stop. A good moral, my lord: it is not<br>
+enough to speak, but to speak true.<br>
+
+<p><b>HIPPOLYTA</b></p>
+Indeed he hath played on his prologue like a child<br>
+on a recorder; a sound, but not in government.<br>
+
+<p><b>THESEUS</b></p>
+His speech, was like a tangled chain; nothing<br>
+impaired, but all disordered. Who is next?<br>
+
+<p><b>Prologue</b></p>
+Gentles, perchance you wonder at this show;<br>
+But wonder on, till truth make all things plain.<br>
+This man is Pyramus, if you would know;<br>
+This beauteous lady Thisby is certain.<br>
+This man, with lime and rough-cast, doth present<br>
+Wall, that vile Wall which did these lovers sunder;<br>
+And through Wall's chink, poor souls, they are content<br>
+To whisper. At the which let no man wonder.<br>
+This man, with lanthorn, dog, and bush of thorn,<br>
+Presenteth Moonshine; for, if you will know,<br>
+By moonshine did these lovers think no scorn<br>
+To meet at Ninus' tomb, there, there to woo.<br>
+This grisly beast, which Lion hight by name,<br>
+The trusty Thisby, coming first by night,<br>
+Did scare away, or rather did affright;<br>
+And, as she fled, her mantle she did fall,<br>
+Which Lion vile with bloody mouth did stain.<br>
+Anon comes Pyramus, sweet youth and tall,<br>
+And finds his trusty Thisby's mantle slain:<br>
+Whereat, with blade, with bloody blameful blade,<br>
+He bravely broach'd is boiling bloody breast;<br>
+And Thisby, tarrying in mulberry shade,<br>
+His dagger drew, and died. For all the rest,<br>
+Let Lion, Moonshine, Wall, and lovers twain<br>
+At large discourse, while here they do remain.<br>
+
+<p><b>THESEUS</b></p>
+I wonder if the lion be to speak.<br>
+
+<p><b>DEMETRIUS</b></p>
+No wonder, my lord: one lion may, when many asses do.<br>
+
+<p><b>Wall</b></p>
+In this same interlude it doth befall<br>
+That I, one Snout by name, present a wall;<br>
+And such a wall, as I would have you think,<br>
+That had in it a crannied hole or chink,<br>
+Through which the lovers, Pyramus and Thisby,<br>
+Did whisper often very secretly.<br>
+This loam, this rough-cast and this stone doth show<br>
+That I am that same wall; the truth is so:<br>
+And this the cranny is, right and sinister,<br>
+Through which the fearful lovers are to whisper.<br>
+
+<p><b>THESEUS</b></p>
+Would you desire lime and hair to speak better?<br>
+
+<p><b>DEMETRIUS</b></p>
+It is the wittiest partition that ever I heard<br>
+discourse, my lord.<br>
+
+<p><b>THESEUS</b></p>
+Pyramus draws near the wall: silence!<br>
+
+<p><b>Pyramus</b></p>
+O grim-look'd night! O night with hue so black!<br>
+O night, which ever art when day is not!<br>
+O night, O night! alack, alack, alack,<br>
+I fear my Thisby's promise is forgot!<br>
+And thou, O wall, O sweet, O lovely wall,<br>
+That stand'st between her father's ground and mine!<br>
+Thou wall, O wall, O sweet and lovely wall,<br>
+Show me thy chink, to blink through with mine eyne!<br>
+Wall holds up his fingers
+Thanks, courteous wall: Jove shield thee well for this!<br>
+But what see I? No Thisby do I see.<br>
+O wicked wall, through whom I see no bliss!<br>
+Cursed be thy stones for thus deceiving me!<br>
+
+<p><b>THESEUS</b></p>
+The wall, methinks, being sensible, should curse again.<br>
+
+<p><b>Pyramus</b></p>
+No, in truth, sir, he should not. 'Deceiving me'<br>
+is Thisby's cue: she is to enter now, and I am to<br>
+spy her through the wall. You shall see, it will<br>
+fall pat as I told you. Yonder she comes.<br>
+
+<p><b>Thisbe</b></p>
+O wall, full often hast thou heard my moans,<br>
+For parting my fair Pyramus and me!<br>
+My cherry lips have often kiss'd thy stones,<br>
+Thy stones with lime and hair knit up in thee.<br>
+
+<p><b>Pyramus</b></p>
+I see a voice: now will I to the chink,<br>
+To spy an I can hear my Thisby's face. Thisby!<br>
+
+<p><b>Thisbe</b></p>
+My love thou art, my love I think.<br>
+
+<p><b>Pyramus</b></p>
+Think what thou wilt, I am thy lover's grace;<br>
+And, like Limander, am I trusty still.<br>
+
+<p><b>Thisbe</b></p>
+And I like Helen, till the Fates me kill.<br>
+
+<p><b>Pyramus</b></p>
+Not Shafalus to Procrus was so true.<br>
+
+<p><b>Thisbe</b></p>
+As Shafalus to Procrus, I to you.<br>
+
+<p><b>Pyramus</b></p>
+O kiss me through the hole of this vile wall!<br>
+
+<p><b>Thisbe</b></p>
+I kiss the wall's hole, not your lips at all.<br>
+
+<p><b>Pyramus</b></p>
+Wilt thou at Ninny's tomb meet me straightway?<br>
+
+<p><b>Thisbe</b></p>
+'Tide life, 'tide death, I come without delay.<br>
+
+<p><b>Wall</b></p>
+Thus have I, Wall, my part discharged so;<br>
+And, being done, thus Wall away doth go.<br>
+
+<p><b>THESEUS</b></p>
+Now is the mural down between the two neighbours.<br>
+
+<p><b>DEMETRIUS</b></p>
+No remedy, my lord, when walls are so wilful to hear<br>
+without warning.<br>
+
+<p><b>HIPPOLYTA</b></p>
+This is the silliest stuff that ever I heard.<br>
+
+<p><b>THESEUS</b></p>
+The best in this kind are but shadows; and the worst<br>
+are no worse, if imagination amend them.<br>
+
+<p><b>HIPPOLYTA</b></p>
+It must be your imagination then, and not theirs.<br>
+
+<p><b>THESEUS</b></p>
+If we imagine no worse of them than they of<br>
+themselves, they may pass for excellent men. Here<br>
+come two noble beasts in, a man and a lion.<br>
+
+<p><b>Lion</b></p>
+You, ladies, you, whose gentle hearts do fear<br>
+The smallest monstrous mouse that creeps on floor,<br>
+May now perchance both quake and tremble here,<br>
+When lion rough in wildest rage doth roar.<br>
+Then know that I, one Snug the joiner, am<br>
+A lion-fell, nor else no lion's dam;<br>
+For, if I should as lion come in strife<br>
+Into this place, 'twere pity on my life.<br>
+
+<p><b>THESEUS</b></p>
+A very gentle beast, of a good conscience.<br>
+
+<p><b>DEMETRIUS</b></p>
+The very best at a beast, my lord, that e'er I saw.<br>
+
+<p><b>LYSANDER</b></p>
+This lion is a very fox for his valour.<br>
+
+<p><b>THESEUS</b></p>
+True; and a goose for his discretion.<br>
+
+<p><b>DEMETRIUS</b></p>
+Not so, my lord; for his valour cannot carry his<br>
+discretion; and the fox carries the goose.<br>
+
+<p><b>THESEUS</b></p>
+His discretion, I am sure, cannot carry his valour;<br>
+for the goose carries not the fox. It is well:<br>
+leave it to his discretion, and let us listen to the moon.<br>
+
+<p><b>Moonshine</b></p>
+This lanthorn doth the horned moon present;--<br>
+
+<p><b>DEMETRIUS</b></p>
+He should have worn the horns on his head.<br>
+
+<p><b>THESEUS</b></p>
+He is no crescent, and his horns are<br>
+invisible within the circumference.<br>
+
+<p><b>Moonshine</b></p>
+This lanthorn doth the horned moon present;<br>
+Myself the man i' the moon do seem to be.<br>
+
+<p><b>THESEUS</b></p>
+This is the greatest error of all the rest: the man<br>
+should be put into the lanthorn. How is it else the<br>
+man i' the moon?<br>
+
+<p><b>DEMETRIUS</b></p>
+He dares not come there for the candle; for, you<br>
+see, it is already in snuff.<br>
+
+<p><b>HIPPOLYTA</b></p>
+I am aweary of this moon: would he would change!<br>
+
+<p><b>THESEUS</b></p>
+It appears, by his small light of discretion, that<br>
+he is in the wane; but yet, in courtesy, in all<br>
+reason, we must stay the time.<br>
+
+<p><b>LYSANDER</b></p>
+Proceed, Moon.<br>
+
+<p><b>Moonshine</b></p>
+All that I have to say, is, to tell you that the<br>
+lanthorn is the moon; I, the man in the moon; this<br>
+thorn-bush, my thorn-bush; and this dog, my dog.<br>
+
+<p><b>DEMETRIUS</b></p>
+Why, all these should be in the lanthorn; for all<br>
+these are in the moon. But, silence! here comes Thisbe.<br>
+
+<p><b>Thisbe</b></p>
+This is old Ninny's tomb. Where is my love?<br>
+
+<p><b>Lion</b></p>
+Roaring  Oh--<br>
+
+<p><b>DEMETRIUS</b></p>
+Well roared, Lion.<br>
+
+<p><b>THESEUS</b></p>
+Well run, Thisbe.<br>
+
+<p><b>HIPPOLYTA</b></p>
+Well shone, Moon. Truly, the moon shines with a<br>
+good grace.<br>
+
+<p><b>THESEUS</b></p>
+Well moused, Lion.<br>
+
+<p><b>LYSANDER</b></p>
+And so the lion vanished.<br>
+
+<p><b>DEMETRIUS</b></p>
+And then came Pyramus.<br>
+
+<p><b>Pyramus</b></p>
+Sweet Moon, I thank thee for thy sunny beams;<br>
+I thank thee, Moon, for shining now so bright;<br>
+For, by thy gracious, golden, glittering gleams,<br>
+I trust to take of truest Thisby sight.<br>
+But stay, O spite!<br>
+But mark, poor knight,<br>
+What dreadful dole is here!<br>
+Eyes, do you see?<br>
+How can it be?<br>
+O dainty duck! O dear!<br>
+Thy mantle good,<br>
+What, stain'd with blood!<br>
+Approach, ye Furies fell!<br>
+O Fates, come, come,<br>
+Cut thread and thrum;<br>
+Quail, crush, conclude, and quell!<br>
+
+<p><b>THESEUS</b></p>
+This passion, and the death of a dear friend, would<br>
+go near to make a man look sad.<br>
+
+<p><b>HIPPOLYTA</b></p>
+Beshrew my heart, but I pity the man.<br>
+
+<p><b>Pyramus</b></p>
+O wherefore, Nature, didst thou lions frame?<br>
+Since lion vile hath here deflower'd my dear:<br>
+Which is--no, no--which was the fairest dame<br>
+That lived, that loved, that liked, that look'd<br>
+with cheer.<br>
+Come, tears, confound;<br>
+Out, sword, and wound<br>
+The pap of Pyramus;<br>
+Ay, that left pap,<br>
+Where heart doth hop:<br>
+Stabs himself
+Thus die I, thus, thus, thus.<br>
+Now am I dead,<br>
+Now am I fled;<br>
+My soul is in the sky:<br>
+Tongue, lose thy light;<br>
+Moon take thy flight:<br>
+Exit Moonshine
+Now die, die, die, die, die.<br>
+
+<p><b>DEMETRIUS</b></p>
+No die, but an ace, for him; for he is but one.<br>
+
+<p><b>LYSANDER</b></p>
+Less than an ace, man; for he is dead; he is nothing.<br>
+
+<p><b>THESEUS</b></p>
+With the help of a surgeon he might yet recover, and<br>
+prove an ass.<br>
+
+<p><b>HIPPOLYTA</b></p>
+How chance Moonshine is gone before Thisbe comes<br>
+back and finds her lover?<br>
+
+<p><b>THESEUS</b></p>
+She will find him by starlight. Here she comes; and<br>
+her passion ends the play.<br>
+
+<p><b>HIPPOLYTA</b></p>
+Methinks she should not use a long one for such a<br>
+Pyramus: I hope she will be brief.<br>
+
+<p><b>DEMETRIUS</b></p>
+A mote will turn the balance, which Pyramus, which<br>
+Thisbe, is the better; he for a man, God warrant us;<br>
+she for a woman, God bless us.<br>
+
+<p><b>LYSANDER</b></p>
+She hath spied him already with those sweet eyes.<br>
+
+<p><b>DEMETRIUS</b></p>
+And thus she means, videlicet:--<br>
+
+<p><b>Thisbe</b></p>
+Asleep, my love?<br>
+What, dead, my dove?<br>
+O Pyramus, arise!<br>
+Speak, speak. Quite dumb?<br>
+Dead, dead? A tomb<br>
+Must cover thy sweet eyes.<br>
+These My lips,<br>
+This cherry nose,<br>
+These yellow cowslip cheeks,<br>
+Are gone, are gone:<br>
+Lovers, make moan:<br>
+His eyes were green as leeks.<br>
+O Sisters Three,<br>
+Come, come to me,<br>
+With hands as pale as milk;<br>
+Lay them in gore,<br>
+Since you have shore<br>
+With shears his thread of silk.<br>
+Tongue, not a word:<br>
+Come, trusty sword;<br>
+Come, blade, my breast imbrue:<br>
+Stabs herself
+And, farewell, friends;<br>
+Thus Thisby ends:<br>
+Adieu, adieu, adieu.<br>
+
+<p><b>THESEUS</b></p>
+Moonshine and Lion are left to bury the dead.<br>
+
+<p><b>DEMETRIUS</b></p>
+Ay, and Wall too.<br>
+
+<p><b>BOTTOM</b></p>
+Starting up  No assure you; the wall is down that<br>
+parted their fathers. Will it please you to see the<br>
+epilogue, or to hear a Bergomask dance between two<br>
+of our company?<br>
+
+<p><b>THESEUS</b></p>
+No epilogue, I pray you; for your play needs no<br>
+excuse. Never excuse; for when the players are all<br>
+dead, there needs none to be blamed. Marry, if he<br>
+that writ it had played Pyramus and hanged himself<br>
+in Thisbe's garter, it would have been a fine<br>
+tragedy: and so it is, truly; and very notably<br>
+discharged. But come, your Bergomask: let your<br>
+epilogue alone.<br>
+A dance
+The iron tongue of midnight hath told twelve:<br>
+Lovers, to bed; 'tis almost fairy time.<br>
+I fear we shall out-sleep the coming morn<br>
+As much as we this night have overwatch'd.<br>
+This palpable-gross play hath well beguiled<br>
+The heavy gait of night. Sweet friends, to bed.<br>
+A fortnight hold we this solemnity,<br>
+In nightly revels and new jollity.<br>
+
+<p><b>PUCK</b></p>
+Now the hungry lion roars,<br>
+And the wolf behowls the moon;<br>
+Whilst the heavy ploughman snores,<br>
+All with weary task fordone.<br>
+Now the wasted brands do glow,<br>
+Whilst the screech-owl, screeching loud,<br>
+Puts the wretch that lies in woe<br>
+In remembrance of a shroud.<br>
+Now it is the time of night<br>
+That the graves all gaping wide,<br>
+Every one lets forth his sprite,<br>
+In the church-way paths to glide:<br>
+And we fairies, that do run<br>
+By the triple Hecate's team,<br>
+From the presence of the sun,<br>
+Following darkness like a dream,<br>
+Now are frolic: not a mouse<br>
+Shall disturb this hallow'd house:<br>
+I am sent with broom before,<br>
+To sweep the dust behind the door.<br>
+
+<p><b>OBERON</b></p>
+Through the house give gathering light,<br>
+By the dead and drowsy fire:<br>
+Every elf and fairy sprite<br>
+Hop as light as bird from brier;<br>
+And this ditty, after me,<br>
+Sing, and dance it trippingly.<br>
+
+<p><b>TITANIA</b></p>
+First, rehearse your song by rote<br>
+To each word a warbling note:<br>
+Hand in hand, with fairy grace,<br>
+Will we sing, and bless this place.<br>
+
+<p><b>OBERON</b></p>
+Now, until the break of day,<br>
+Through this house each fairy stray.<br>
+To the best bride-bed will we,<br>
+Which by us shall blessed be;<br>
+And the issue there create<br>
+Ever shall be fortunate.<br>
+So shall all the couples three<br>
+Ever true in loving be;<br>
+And the blots of Nature's hand<br>
+Shall not in their issue stand;<br>
+Never mole, hare lip, nor scar,<br>
+Nor mark prodigious, such as are<br>
+Despised in nativity,<br>
+Shall upon their children be.<br>
+With this field-dew consecrate,<br>
+Every fairy take his gait;<br>
+And each several chamber bless,<br>
+Through this palace, with sweet peace;<br>
+And the owner of it blest<br>
+Ever shall in safety rest.<br>
+Trip away; make no stay;<br>
+Meet me all by break of day.<br>
+
+<p><b>PUCK</b></p>
+If we shadows have offended,<br>
+Think but this, and all is mended,<br>
+That you have but slumber'd here<br>
+While these visions did appear.<br>
+And this weak and idle theme,<br>
+No more yielding but a dream,<br>
+Gentles, do not reprehend:<br>
+if you pardon, we will mend:<br>
+And, as I am an honest Puck,<br>
+If we have unearned luck<br>
+Now to 'scape the serpent's tongue,<br>
+We will make amends ere long;<br>
+Else the Puck a liar call;<br>
+So, good night unto you all.<br>
+Give me your hands, if we be friends,<br>
+And Robin shall restore amends.<br>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,37 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output encoding="utf-8"/>
+
+<xsl:template match="PLAY">
+<html>
+	<head>
+		<title>
+			<xsl:value-of select="/PLAY/TITLE"/>
+		</title>
+	</head>
+<body>
+	<h1><xsl:value-of select="/PLAY/TITLE"/></h1>
+	<xsl:apply-templates select="FM|PERSONAE|ACT"/>
+</body>
+</html></xsl:template>
+
+<xsl:template match="FM"><i><xsl:apply-templates/></i></xsl:template>
+
+<xsl:template match="PERSONAE"><h2>Parts - <xsl:value-of select="TITLE"/></h2>
+<xsl:apply-templates select=".//PERSONA" />
+</xsl:template>
+
+<xsl:template match="PERSONA"><p><b><i><xsl:value-of select="."/></i></b></p></xsl:template>
+
+<xsl:template match="ACT"><h3><xsl:value-of select="TITLE"/></h3>
+<xsl:apply-templates select="SCENE"/>
+</xsl:template>
+
+<xsl:template match="SCENE"><h3><xsl:value-of select="TITLE"/></h3>
+<xsl:apply-templates select="SPEECH"/></xsl:template>
+
+<xsl:template match="SPEAKER"><p><b><xsl:value-of select="."/></b></p></xsl:template>
+
+<xsl:template match="LINE"><xsl:value-of select="."/><br/></xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>A Midsummer Night's Dream</title>
+</head>
+<body>
+<h1>A Midsummer Night's Dream</h1>
+<table>ACT I - SCENE I.  Athens. The palace of THESEUS.   
+			Has 49 speeches
+			with an average of 5
+			line(s) each.
+			<br>ACT I - SCENE II.  Athens. QUINCE'S house.   
+			Has 41 speeches
+			with an average of 2
+			line(s) each.
+			<br>ACT II - SCENE I.  A wood near Athens.   
+			Has 39 speeches
+			with an average of 7
+			line(s) each.
+			<br>ACT II - SCENE II.  Another part of the wood.   
+			Has 23 speeches
+			with an average of 7
+			line(s) each.
+			<br>ACT III - SCENE I.  The wood. TITANIA lying asleep.   
+			Has 68 speeches
+			with an average of 3
+			line(s) each.
+			<br>ACT III - SCENE II.  Another part of the wood.   
+			Has 112 speeches
+			with an average of 4
+			line(s) each.
+			<br>ACT IV - SCENE I.  The same. LYSANDER, DEMETRIUS, HELENA, and HERMIA lying asleep.   
+			Has 50 speeches
+			with an average of 4
+			line(s) each.
+			<br>ACT IV - SCENE II.  Athens. QUINCE'S house.   
+			Has 14 speeches
+			with an average of 3
+			line(s) each.
+			<br>ACT V - SCENE I.  Athens. The palace of THESEUS.   
+			Has 104 speeches
+			with an average of 4
+			line(s) each.
+			<br>
+</table>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbench3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:output encoding="utf-8"/>
+
+<xsl:template match="PLAY">
+<html>
+	<head>
+		<title>
+			<xsl:value-of select="/PLAY/TITLE"/>
+		</title>
+	</head>
+<body>
+	<h1><xsl:value-of select="/PLAY/TITLE"/></h1>
+
+	<table>
+	<xsl:for-each select="//ACT">
+		<xsl:variable name="act" select="TITLE"/>
+		<xsl:for-each select="SCENE">
+			<xsl:value-of select="concat($act,' - ',TITLE,'   ')"/>
+			Has <xsl:value-of select="count(.//SPEECH)"/> speeches
+			with an average of <xsl:value-of select="round(count(.//LINE) div count(.//SPEECH))"/>
+			line(s) each.
+			<br/>
+		</xsl:for-each>
+	</xsl:for-each>
+	</table>
+	
+</body>
+</html>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbenchdream.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbenchdream.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/XSLTMark/xslbenchdream.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4477 @@
+<?xml version="1.0"?>
+
+<PLAY>
+<TITLE>A Midsummer Night's Dream</TITLE>
+
+<FM>
+<P>ASCII text placed in the public domain by Moby Lexical Tools, 1992.</P>
+<P>SGML markup by Jon Bosak, 1992-1994.</P>
+<P>XML version by Jon Bosak, 1996-1999.</P>
+<P>The XML markup in this version is Copyright &#169; 1999 Jon Bosak.
+This work may freely be distributed on condition that it not be
+modified or altered in any way.</P>
+</FM>
+
+<PERSONAE>
+<TITLE>Dramatis Personae</TITLE>
+
+<PERSONA>THESEUS, Duke of Athens.</PERSONA>
+<PERSONA>EGEUS, father to Hermia.</PERSONA>
+
+<PGROUP>
+<PERSONA>LYSANDER</PERSONA>
+<PERSONA>DEMETRIUS</PERSONA>
+<GRPDESCR>in love with Hermia.</GRPDESCR>
+</PGROUP>
+
+<PERSONA>PHILOSTRATE, master of the revels to Theseus.</PERSONA>
+<PERSONA>QUINCE, a carpenter.</PERSONA>
+<PERSONA>SNUG, a joiner.</PERSONA>
+<PERSONA>BOTTOM, a weaver.</PERSONA>
+<PERSONA>FLUTE, a bellows-mender.</PERSONA>
+<PERSONA>SNOUT, a tinker.</PERSONA>
+<PERSONA>STARVELING, a tailor.</PERSONA>
+<PERSONA>HIPPOLYTA, queen of the Amazons, betrothed to Theseus.</PERSONA>
+<PERSONA>HERMIA, daughter to Egeus, in love with Lysander.</PERSONA>
+<PERSONA>HELENA, in love with Demetrius.</PERSONA>
+<PERSONA>OBERON, king of the fairies.</PERSONA>
+<PERSONA>TITANIA, queen of the fairies.</PERSONA>
+<PERSONA>PUCK, or Robin Goodfellow.</PERSONA>
+
+<PGROUP>
+<PERSONA>PEASEBLOSSOM</PERSONA>
+<PERSONA>COBWEB</PERSONA>
+<PERSONA>MOTH</PERSONA>
+<PERSONA>MUSTARDSEED</PERSONA>
+<GRPDESCR>fairies.</GRPDESCR>
+</PGROUP>
+
+<PERSONA>Other fairies attending their King and Queen.</PERSONA>
+<PERSONA>Attendants on Theseus and Hippolyta.</PERSONA>
+</PERSONAE>
+
+<SCNDESCR>SCENE  Athens, and a wood near it.</SCNDESCR>
+
+<PLAYSUBT>A MIDSUMMER NIGHT'S DREAM</PLAYSUBT>
+
+<ACT><TITLE>ACT I</TITLE>
+
+<SCENE><TITLE>SCENE I.  Athens. The palace of THESEUS.</TITLE>
+<STAGEDIR>Enter THESEUS, HIPPOLYTA, PHILOSTRATE, and
+Attendants</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Now, fair Hippolyta, our nuptial hour</LINE>
+<LINE>Draws on apace; four happy days bring in</LINE>
+<LINE>Another moon: but, O, methinks, how slow</LINE>
+<LINE>This old moon wanes! she lingers my desires,</LINE>
+<LINE>Like to a step-dame or a dowager</LINE>
+<LINE>Long withering out a young man revenue.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>Four days will quickly steep themselves in night;</LINE>
+<LINE>Four nights will quickly dream away the time;</LINE>
+<LINE>And then the moon, like to a silver bow</LINE>
+<LINE>New-bent in heaven, shall behold the night</LINE>
+<LINE>Of our solemnities.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Go, Philostrate,</LINE>
+<LINE>Stir up the Athenian youth to merriments;</LINE>
+<LINE>Awake the pert and nimble spirit of mirth;</LINE>
+<LINE>Turn melancholy forth to funerals;</LINE>
+<LINE>The pale companion is not for our pomp.</LINE>
+<STAGEDIR>Exit PHILOSTRATE</STAGEDIR>
+<LINE>Hippolyta, I woo'd thee with my sword,</LINE>
+<LINE>And won thy love, doing thee injuries;</LINE>
+<LINE>But I will wed thee in another key,</LINE>
+<LINE>With pomp, with triumph and with revelling.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter EGEUS, HERMIA, LYSANDER, and DEMETRIUS</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>EGEUS</SPEAKER>
+<LINE>Happy be Theseus, our renowned duke!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Thanks, good Egeus: what's the news with thee?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>EGEUS</SPEAKER>
+<LINE>Full of vexation come I, with complaint</LINE>
+<LINE>Against my child, my daughter Hermia.</LINE>
+<LINE>Stand forth, Demetrius. My noble lord,</LINE>
+<LINE>This man hath my consent to marry her.</LINE>
+<LINE>Stand forth, Lysander: and my gracious duke,</LINE>
+<LINE>This man hath bewitch'd the bosom of my child;</LINE>
+<LINE>Thou, thou, Lysander, thou hast given her rhymes,</LINE>
+<LINE>And interchanged love-tokens with my child:</LINE>
+<LINE>Thou hast by moonlight at her window sung,</LINE>
+<LINE>With feigning voice verses of feigning love,</LINE>
+<LINE>And stolen the impression of her fantasy</LINE>
+<LINE>With bracelets of thy hair, rings, gawds, conceits,</LINE>
+<LINE>Knacks, trifles, nosegays, sweetmeats, messengers</LINE>
+<LINE>Of strong prevailment in unharden'd youth:</LINE>
+<LINE>With cunning hast thou filch'd my daughter's heart,</LINE>
+<LINE>Turn'd her obedience, which is due to me,</LINE>
+<LINE>To stubborn harshness: and, my gracious duke,</LINE>
+<LINE>Be it so she; will not here before your grace</LINE>
+<LINE>Consent to marry with Demetrius,</LINE>
+<LINE>I beg the ancient privilege of Athens,</LINE>
+<LINE>As she is mine, I may dispose of her:</LINE>
+<LINE>Which shall be either to this gentleman</LINE>
+<LINE>Or to her death, according to our law</LINE>
+<LINE>Immediately provided in that case.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>What say you, Hermia? be advised fair maid:</LINE>
+<LINE>To you your father should be as a god;</LINE>
+<LINE>One that composed your beauties, yea, and one</LINE>
+<LINE>To whom you are but as a form in wax</LINE>
+<LINE>By him imprinted and within his power</LINE>
+<LINE>To leave the figure or disfigure it.</LINE>
+<LINE>Demetrius is a worthy gentleman.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>So is Lysander.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>In himself he is;</LINE>
+<LINE>But in this kind, wanting your father's voice,</LINE>
+<LINE>The other must be held the worthier.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>I would my father look'd but with my eyes.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Rather your eyes must with his judgment look.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>I do entreat your grace to pardon me.</LINE>
+<LINE>I know not by what power I am made bold,</LINE>
+<LINE>Nor how it may concern my modesty,</LINE>
+<LINE>In such a presence here to plead my thoughts;</LINE>
+<LINE>But I beseech your grace that I may know</LINE>
+<LINE>The worst that may befall me in this case,</LINE>
+<LINE>If I refuse to wed Demetrius.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Either to die the death or to abjure</LINE>
+<LINE>For ever the society of men.</LINE>
+<LINE>Therefore, fair Hermia, question your desires;</LINE>
+<LINE>Know of your youth, examine well your blood,</LINE>
+<LINE>Whether, if you yield not to your father's choice,</LINE>
+<LINE>You can endure the livery of a nun,</LINE>
+<LINE>For aye to be in shady cloister mew'd,</LINE>
+<LINE>To live a barren sister all your life,</LINE>
+<LINE>Chanting faint hymns to the cold fruitless moon.</LINE>
+<LINE>Thrice-blessed they that master so their blood,</LINE>
+<LINE>To undergo such maiden pilgrimage;</LINE>
+<LINE>But earthlier happy is the rose distill'd,</LINE>
+<LINE>Than that which withering on the virgin thorn</LINE>
+<LINE>Grows, lives and dies in single blessedness.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>So will I grow, so live, so die, my lord,</LINE>
+<LINE>Ere I will my virgin patent up</LINE>
+<LINE>Unto his lordship, whose unwished yoke</LINE>
+<LINE>My soul consents not to give sovereignty.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Take time to pause; and, by the nest new moon--</LINE>
+<LINE>The sealing-day betwixt my love and me,</LINE>
+<LINE>For everlasting bond of fellowship--</LINE>
+<LINE>Upon that day either prepare to die</LINE>
+<LINE>For disobedience to your father's will,</LINE>
+<LINE>Or else to wed Demetrius, as he would;</LINE>
+<LINE>Or on Diana's altar to protest</LINE>
+<LINE>For aye austerity and single life.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Relent, sweet Hermia: and, Lysander, yield</LINE>
+<LINE>Thy crazed title to my certain right.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>You have her father's love, Demetrius;</LINE>
+<LINE>Let me have Hermia's: do you marry him.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>EGEUS</SPEAKER>
+<LINE>Scornful Lysander! true, he hath my love,</LINE>
+<LINE>And what is mine my love shall render him.</LINE>
+<LINE>And she is mine, and all my right of her</LINE>
+<LINE>I do estate unto Demetrius.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>I am, my lord, as well derived as he,</LINE>
+<LINE>As well possess'd; my love is more than his;</LINE>
+<LINE>My fortunes every way as fairly rank'd,</LINE>
+<LINE>If not with vantage, as Demetrius';</LINE>
+<LINE>And, which is more than all these boasts can be,</LINE>
+<LINE>I am beloved of beauteous Hermia:</LINE>
+<LINE>Why should not I then prosecute my right?</LINE>
+<LINE>Demetrius, I'll avouch it to his head,</LINE>
+<LINE>Made love to Nedar's daughter, Helena,</LINE>
+<LINE>And won her soul; and she, sweet lady, dotes,</LINE>
+<LINE>Devoutly dotes, dotes in idolatry,</LINE>
+<LINE>Upon this spotted and inconstant man.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>I must confess that I have heard so much,</LINE>
+<LINE>And with Demetrius thought to have spoke thereof;</LINE>
+<LINE>But, being over-full of self-affairs,</LINE>
+<LINE>My mind did lose it. But, Demetrius, come;</LINE>
+<LINE>And come, Egeus; you shall go with me,</LINE>
+<LINE>I have some private schooling for you both.</LINE>
+<LINE>For you, fair Hermia, look you arm yourself</LINE>
+<LINE>To fit your fancies to your father's will;</LINE>
+<LINE>Or else the law of Athens yields you up--</LINE>
+<LINE>Which by no means we may extenuate--</LINE>
+<LINE>To death, or to a vow of single life.</LINE>
+<LINE>Come, my Hippolyta: what cheer, my love?</LINE>
+<LINE>Demetrius and Egeus, go along:</LINE>
+<LINE>I must employ you in some business</LINE>
+<LINE>Against our nuptial and confer with you</LINE>
+<LINE>Of something nearly that concerns yourselves.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>EGEUS</SPEAKER>
+<LINE>With duty and desire we follow you.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt all but LYSANDER and HERMIA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>How now, my love! why is your cheek so pale?</LINE>
+<LINE>How chance the roses there do fade so fast?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Belike for want of rain, which I could well</LINE>
+<LINE>Beteem them from the tempest of my eyes.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Ay me! for aught that I could ever read,</LINE>
+<LINE>Could ever hear by tale or history,</LINE>
+<LINE>The course of true love never did run smooth;</LINE>
+<LINE>But, either it was different in blood,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>O cross! too high to be enthrall'd to low.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Or else misgraffed in respect of years,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>O spite! too old to be engaged to young.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Or else it stood upon the choice of friends,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>O hell! to choose love by another's eyes.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Or, if there were a sympathy in choice,</LINE>
+<LINE>War, death, or sickness did lay siege to it,</LINE>
+<LINE>Making it momentany as a sound,</LINE>
+<LINE>Swift as a shadow, short as any dream;</LINE>
+<LINE>Brief as the lightning in the collied night,</LINE>
+<LINE>That, in a spleen, unfolds both heaven and earth,</LINE>
+<LINE>And ere a man hath power to say 'Behold!'</LINE>
+<LINE>The jaws of darkness do devour it up:</LINE>
+<LINE>So quick bright things come to confusion.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>If then true lovers have been ever cross'd,</LINE>
+<LINE>It stands as an edict in destiny:</LINE>
+<LINE>Then let us teach our trial patience,</LINE>
+<LINE>Because it is a customary cross,</LINE>
+<LINE>As due to love as thoughts and dreams and sighs,</LINE>
+<LINE>Wishes and tears, poor fancy's followers.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>A good persuasion: therefore, hear me, Hermia.</LINE>
+<LINE>I have a widow aunt, a dowager</LINE>
+<LINE>Of great revenue, and she hath no child:</LINE>
+<LINE>From Athens is her house remote seven leagues;</LINE>
+<LINE>And she respects me as her only son.</LINE>
+<LINE>There, gentle Hermia, may I marry thee;</LINE>
+<LINE>And to that place the sharp Athenian law</LINE>
+<LINE>Cannot pursue us. If thou lovest me then,</LINE>
+<LINE>Steal forth thy father's house to-morrow night;</LINE>
+<LINE>And in the wood, a league without the town,</LINE>
+<LINE>Where I did meet thee once with Helena,</LINE>
+<LINE>To do observance to a morn of May,</LINE>
+<LINE>There will I stay for thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>My good Lysander!</LINE>
+<LINE>I swear to thee, by Cupid's strongest bow,</LINE>
+<LINE>By his best arrow with the golden head,</LINE>
+<LINE>By the simplicity of Venus' doves,</LINE>
+<LINE>By that which knitteth souls and prospers loves,</LINE>
+<LINE>And by that fire which burn'd the Carthage queen,</LINE>
+<LINE>When the false Troyan under sail was seen,</LINE>
+<LINE>By all the vows that ever men have broke,</LINE>
+<LINE>In number more than ever women spoke,</LINE>
+<LINE>In that same place thou hast appointed me,</LINE>
+<LINE>To-morrow truly will I meet with thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Keep promise, love. Look, here comes Helena.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter HELENA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>God speed fair Helena! whither away?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Call you me fair? that fair again unsay.</LINE>
+<LINE>Demetrius loves your fair: O happy fair!</LINE>
+<LINE>Your eyes are lode-stars; and your tongue's sweet air</LINE>
+<LINE>More tuneable than lark to shepherd's ear,</LINE>
+<LINE>When wheat is green, when hawthorn buds appear.</LINE>
+<LINE>Sickness is catching: O, were favour so,</LINE>
+<LINE>Yours would I catch, fair Hermia, ere I go;</LINE>
+<LINE>My ear should catch your voice, my eye your eye,</LINE>
+<LINE>My tongue should catch your tongue's sweet melody.</LINE>
+<LINE>Were the world mine, Demetrius being bated,</LINE>
+<LINE>The rest I'd give to be to you translated.</LINE>
+<LINE>O, teach me how you look, and with what art</LINE>
+<LINE>You sway the motion of Demetrius' heart.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>I frown upon him, yet he loves me still.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>O that your frowns would teach my smiles such skill!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>I give him curses, yet he gives me love.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>O that my prayers could such affection move!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>The more I hate, the more he follows me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>The more I love, the more he hateth me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>His folly, Helena, is no fault of mine.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>None, but your beauty: would that fault were mine!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Take comfort: he no more shall see my face;</LINE>
+<LINE>Lysander and myself will fly this place.</LINE>
+<LINE>Before the time I did Lysander see,</LINE>
+<LINE>Seem'd Athens as a paradise to me:</LINE>
+<LINE>O, then, what graces in my love do dwell,</LINE>
+<LINE>That he hath turn'd a heaven unto a hell!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Helen, to you our minds we will unfold:</LINE>
+<LINE>To-morrow night, when Phoebe doth behold</LINE>
+<LINE>Her silver visage in the watery glass,</LINE>
+<LINE>Decking with liquid pearl the bladed grass,</LINE>
+<LINE>A time that lovers' flights doth still conceal,</LINE>
+<LINE>Through Athens' gates have we devised to steal.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>And in the wood, where often you and I</LINE>
+<LINE>Upon faint primrose-beds were wont to lie,</LINE>
+<LINE>Emptying our bosoms of their counsel sweet,</LINE>
+<LINE>There my Lysander and myself shall meet;</LINE>
+<LINE>And thence from Athens turn away our eyes,</LINE>
+<LINE>To seek new friends and stranger companies.</LINE>
+<LINE>Farewell, sweet playfellow: pray thou for us;</LINE>
+<LINE>And good luck grant thee thy Demetrius!</LINE>
+<LINE>Keep word, Lysander: we must starve our sight</LINE>
+<LINE>From lovers' food till morrow deep midnight.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>I will, my Hermia.</LINE>
+<STAGEDIR>Exit HERMIA</STAGEDIR>
+<LINE>Helena, adieu:</LINE>
+<LINE>As you on him, Demetrius dote on you!</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>How happy some o'er other some can be!</LINE>
+<LINE>Through Athens I am thought as fair as she.</LINE>
+<LINE>But what of that? Demetrius thinks not so;</LINE>
+<LINE>He will not know what all but he do know:</LINE>
+<LINE>And as he errs, doting on Hermia's eyes,</LINE>
+<LINE>So I, admiring of his qualities:</LINE>
+<LINE>Things base and vile, folding no quantity,</LINE>
+<LINE>Love can transpose to form and dignity:</LINE>
+<LINE>Love looks not with the eyes, but with the mind;</LINE>
+<LINE>And therefore is wing'd Cupid painted blind:</LINE>
+<LINE>Nor hath Love's mind of any judgement taste;</LINE>
+<LINE>Wings and no eyes figure unheedy haste:</LINE>
+<LINE>And therefore is Love said to be a child,</LINE>
+<LINE>Because in choice he is so oft beguiled.</LINE>
+<LINE>As waggish boys in game themselves forswear,</LINE>
+<LINE>So the boy Love is perjured every where:</LINE>
+<LINE>For ere Demetrius look'd on Hermia's eyne,</LINE>
+<LINE>He hail'd down oaths that he was only mine;</LINE>
+<LINE>And when this hail some heat from Hermia felt,</LINE>
+<LINE>So he dissolved, and showers of oaths did melt.</LINE>
+<LINE>I will go tell him of fair Hermia's flight:</LINE>
+<LINE>Then to the wood will he to-morrow night</LINE>
+<LINE>Pursue her; and for this intelligence</LINE>
+<LINE>If I have thanks, it is a dear expense:</LINE>
+<LINE>But herein mean I to enrich my pain,</LINE>
+<LINE>To have his sight thither and back again.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE II.  Athens. QUINCE'S house.</TITLE>
+<STAGEDIR>Enter QUINCE, SNUG, BOTTOM, FLUTE, SNOUT, and
+STARVELING</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Is all our company here?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>You were best to call them generally, man by man,</LINE>
+<LINE>according to the scrip.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Here is the scroll of every man's name, which is</LINE>
+<LINE>thought fit, through all Athens, to play in our</LINE>
+<LINE>interlude before the duke and the duchess, on his</LINE>
+<LINE>wedding-day at night.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>First, good Peter Quince, say what the play treats</LINE>
+<LINE>on, then read the names of the actors, and so grow</LINE>
+<LINE>to a point.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Marry, our play is, The most lamentable comedy, and</LINE>
+<LINE>most cruel death of Pyramus and Thisby.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>A very good piece of work, I assure you, and a</LINE>
+<LINE>merry. Now, good Peter Quince, call forth your</LINE>
+<LINE>actors by the scroll. Masters, spread yourselves.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Answer as I call you. Nick Bottom, the weaver.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Ready. Name what part I am for, and proceed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>You, Nick Bottom, are set down for Pyramus.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>What is Pyramus? a lover, or a tyrant?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>A lover, that kills himself most gallant for love.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>That will ask some tears in the true performing of</LINE>
+<LINE>it: if I do it, let the audience look to their</LINE>
+<LINE>eyes; I will move storms, I will condole in some</LINE>
+<LINE>measure. To the rest: yet my chief humour is for a</LINE>
+<LINE>tyrant: I could play Ercles rarely, or a part to</LINE>
+<LINE>tear a cat in, to make all split.</LINE>
+<LINE>The raging rocks</LINE>
+<LINE>And shivering shocks</LINE>
+<LINE>Shall break the locks</LINE>
+<LINE>Of prison gates;</LINE>
+<LINE>And Phibbus' car</LINE>
+<LINE>Shall shine from far</LINE>
+<LINE>And make and mar</LINE>
+<LINE>The foolish Fates.</LINE>
+<LINE>This was lofty! Now name the rest of the players.</LINE>
+<LINE>This is Ercles' vein, a tyrant's vein; a lover is</LINE>
+<LINE>more condoling.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Francis Flute, the bellows-mender.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FLUTE</SPEAKER>
+<LINE>Here, Peter Quince.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Flute, you must take Thisby on you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FLUTE</SPEAKER>
+<LINE>What is Thisby? a wandering knight?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>It is the lady that Pyramus must love.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FLUTE</SPEAKER>
+<LINE>Nay, faith, let me not play a woman; I have a beard coming.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>That's all one: you shall play it in a mask, and</LINE>
+<LINE>you may speak as small as you will.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>An I may hide my face, let me play Thisby too, I'll</LINE>
+<LINE>speak in a monstrous little voice. 'Thisne,</LINE>
+<LINE>Thisne;' 'Ah, Pyramus, lover dear! thy Thisby dear,</LINE>
+<LINE>and lady dear!'</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>No, no; you must play Pyramus: and, Flute, you Thisby.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Well, proceed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Robin Starveling, the tailor.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>STARVELING</SPEAKER>
+<LINE>Here, Peter Quince.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Robin Starveling, you must play Thisby's mother.</LINE>
+<LINE>Tom Snout, the tinker.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>SNOUT</SPEAKER>
+<LINE>Here, Peter Quince.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>You, Pyramus' father: myself, Thisby's father:</LINE>
+<LINE>Snug, the joiner; you, the lion's part: and, I</LINE>
+<LINE>hope, here is a play fitted.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>SNUG</SPEAKER>
+<LINE>Have you the lion's part written? pray you, if it</LINE>
+<LINE>be, give it me, for I am slow of study.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>You may do it extempore, for it is nothing but roaring.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Let me play the lion too: I will roar, that I will</LINE>
+<LINE>do any man's heart good to hear me; I will roar,</LINE>
+<LINE>that I will make the duke say 'Let him roar again,</LINE>
+<LINE>let him roar again.'</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>An you should do it too terribly, you would fright</LINE>
+<LINE>the duchess and the ladies, that they would shriek;</LINE>
+<LINE>and that were enough to hang us all.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ALL</SPEAKER>
+<LINE>That would hang us, every mother's son.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>I grant you, friends, if that you should fright the</LINE>
+<LINE>ladies out of their wits, they would have no more</LINE>
+<LINE>discretion but to hang us: but I will aggravate my</LINE>
+<LINE>voice so that I will roar you as gently as any</LINE>
+<LINE>sucking dove; I will roar you an 'twere any</LINE>
+<LINE>nightingale.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>You can play no part but Pyramus; for Pyramus is a</LINE>
+<LINE>sweet-faced man; a proper man, as one shall see in a</LINE>
+<LINE>summer's day; a most lovely gentleman-like man:</LINE>
+<LINE>therefore you must needs play Pyramus.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Well, I will undertake it. What beard were I best</LINE>
+<LINE>to play it in?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Why, what you will.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>I will discharge it in either your straw-colour</LINE>
+<LINE>beard, your orange-tawny beard, your purple-in-grain</LINE>
+<LINE>beard, or your French-crown-colour beard, your</LINE>
+<LINE>perfect yellow.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Some of your French crowns have no hair at all, and</LINE>
+<LINE>then you will play bare-faced. But, masters, here</LINE>
+<LINE>are your parts: and I am to entreat you, request</LINE>
+<LINE>you and desire you, to con them by to-morrow night;</LINE>
+<LINE>and meet me in the palace wood, a mile without the</LINE>
+<LINE>town, by moonlight; there will we rehearse, for if</LINE>
+<LINE>we meet in the city, we shall be dogged with</LINE>
+<LINE>company, and our devices known. In the meantime I</LINE>
+<LINE>will draw a bill of properties, such as our play</LINE>
+<LINE>wants. I pray you, fail me not.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>We will meet; and there we may rehearse most</LINE>
+<LINE>obscenely and courageously. Take pains; be perfect: adieu.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>At the duke's oak we meet.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Enough; hold or cut bow-strings.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+</ACT>
+
+<ACT><TITLE>ACT II</TITLE>
+
+<SCENE><TITLE>SCENE I.  A wood near Athens.</TITLE>
+<STAGEDIR>Enter, from opposite sides, a Fairy, and PUCK</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>How now, spirit! whither wander you?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Fairy</SPEAKER>
+<LINE>Over hill, over dale,</LINE>
+<LINE>Thorough bush, thorough brier,</LINE>
+<LINE>Over park, over pale,</LINE>
+<LINE>Thorough flood, thorough fire,</LINE>
+<LINE>I do wander everywhere,</LINE>
+<LINE>Swifter than the moon's sphere;</LINE>
+<LINE>And I serve the fairy queen,</LINE>
+<LINE>To dew her orbs upon the green.</LINE>
+<LINE>The cowslips tall her pensioners be:</LINE>
+<LINE>In their gold coats spots you see;</LINE>
+<LINE>Those be rubies, fairy favours,</LINE>
+<LINE>In those freckles live their savours:</LINE>
+<LINE>I must go seek some dewdrops here</LINE>
+<LINE>And hang a pearl in every cowslip's ear.</LINE>
+<LINE>Farewell, thou lob of spirits; I'll be gone:</LINE>
+<LINE>Our queen and all our elves come here anon.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>The king doth keep his revels here to-night:</LINE>
+<LINE>Take heed the queen come not within his sight;</LINE>
+<LINE>For Oberon is passing fell and wrath,</LINE>
+<LINE>Because that she as her attendant hath</LINE>
+<LINE>A lovely boy, stolen from an Indian king;</LINE>
+<LINE>She never had so sweet a changeling;</LINE>
+<LINE>And jealous Oberon would have the child</LINE>
+<LINE>Knight of his train, to trace the forests wild;</LINE>
+<LINE>But she perforce withholds the loved boy,</LINE>
+<LINE>Crowns him with flowers and makes him all her joy:</LINE>
+<LINE>And now they never meet in grove or green,</LINE>
+<LINE>By fountain clear, or spangled starlight sheen,</LINE>
+<LINE>But, they do square, that all their elves for fear</LINE>
+<LINE>Creep into acorn-cups and hide them there.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Fairy</SPEAKER>
+<LINE>Either I mistake your shape and making quite,</LINE>
+<LINE>Or else you are that shrewd and knavish sprite</LINE>
+<LINE>Call'd Robin Goodfellow: are not you he</LINE>
+<LINE>That frights the maidens of the villagery;</LINE>
+<LINE>Skim milk, and sometimes labour in the quern</LINE>
+<LINE>And bootless make the breathless housewife churn;</LINE>
+<LINE>And sometime make the drink to bear no barm;</LINE>
+<LINE>Mislead night-wanderers, laughing at their harm?</LINE>
+<LINE>Those that Hobgoblin call you and sweet Puck,</LINE>
+<LINE>You do their work, and they shall have good luck:</LINE>
+<LINE>Are not you he?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Thou speak'st aright;</LINE>
+<LINE>I am that merry wanderer of the night.</LINE>
+<LINE>I jest to Oberon and make him smile</LINE>
+<LINE>When I a fat and bean-fed horse beguile,</LINE>
+<LINE>Neighing in likeness of a filly foal:</LINE>
+<LINE>And sometime lurk I in a gossip's bowl,</LINE>
+<LINE>In very likeness of a roasted crab,</LINE>
+<LINE>And when she drinks, against her lips I bob</LINE>
+<LINE>And on her wither'd dewlap pour the ale.</LINE>
+<LINE>The wisest aunt, telling the saddest tale,</LINE>
+<LINE>Sometime for three-foot stool mistaketh me;</LINE>
+<LINE>Then slip I from her bum, down topples she,</LINE>
+<LINE>And 'tailor' cries, and falls into a cough;</LINE>
+<LINE>And then the whole quire hold their hips and laugh,</LINE>
+<LINE>And waxen in their mirth and neeze and swear</LINE>
+<LINE>A merrier hour was never wasted there.</LINE>
+<LINE>But, room, fairy! here comes Oberon.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Fairy</SPEAKER>
+<LINE>And here my mistress. Would that he were gone!</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter, from one side, OBERON, with his train;
+from the other, TITANIA, with hers</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Ill met by moonlight, proud Titania.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>What, jealous Oberon! Fairies, skip hence:</LINE>
+<LINE>I have forsworn his bed and company.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Tarry, rash wanton: am not I thy lord?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Then I must be thy lady: but I know</LINE>
+<LINE>When thou hast stolen away from fairy land,</LINE>
+<LINE>And in the shape of Corin sat all day,</LINE>
+<LINE>Playing on pipes of corn and versing love</LINE>
+<LINE>To amorous Phillida. Why art thou here,</LINE>
+<LINE>Come from the farthest Steppe of India?</LINE>
+<LINE>But that, forsooth, the bouncing Amazon,</LINE>
+<LINE>Your buskin'd mistress and your warrior love,</LINE>
+<LINE>To Theseus must be wedded, and you come</LINE>
+<LINE>To give their bed joy and prosperity.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>How canst thou thus for shame, Titania,</LINE>
+<LINE>Glance at my credit with Hippolyta,</LINE>
+<LINE>Knowing I know thy love to Theseus?</LINE>
+<LINE>Didst thou not lead him through the glimmering night</LINE>
+<LINE>From Perigenia, whom he ravished?</LINE>
+<LINE>And make him with fair AEgle break his faith,</LINE>
+<LINE>With Ariadne and Antiopa?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>These are the forgeries of jealousy:</LINE>
+<LINE>And never, since the middle summer's spring,</LINE>
+<LINE>Met we on hill, in dale, forest or mead,</LINE>
+<LINE>By paved fountain or by rushy brook,</LINE>
+<LINE>Or in the beached margent of the sea,</LINE>
+<LINE>To dance our ringlets to the whistling wind,</LINE>
+<LINE>But with thy brawls thou hast disturb'd our sport.</LINE>
+<LINE>Therefore the winds, piping to us in vain,</LINE>
+<LINE>As in revenge, have suck'd up from the sea</LINE>
+<LINE>Contagious fogs; which falling in the land</LINE>
+<LINE>Have every pelting river made so proud</LINE>
+<LINE>That they have overborne their continents:</LINE>
+<LINE>The ox hath therefore stretch'd his yoke in vain,</LINE>
+<LINE>The ploughman lost his sweat, and the green corn</LINE>
+<LINE>Hath rotted ere his youth attain'd a beard;</LINE>
+<LINE>The fold stands empty in the drowned field,</LINE>
+<LINE>And crows are fatted with the murrion flock;</LINE>
+<LINE>The nine men's morris is fill'd up with mud,</LINE>
+<LINE>And the quaint mazes in the wanton green</LINE>
+<LINE>For lack of tread are undistinguishable:</LINE>
+<LINE>The human mortals want their winter here;</LINE>
+<LINE>No night is now with hymn or carol blest:</LINE>
+<LINE>Therefore the moon, the governess of floods,</LINE>
+<LINE>Pale in her anger, washes all the air,</LINE>
+<LINE>That rheumatic diseases do abound:</LINE>
+<LINE>And thorough this distemperature we see</LINE>
+<LINE>The seasons alter: hoary-headed frosts</LINE>
+<LINE>Far in the fresh lap of the crimson rose,</LINE>
+<LINE>And on old Hiems' thin and icy crown</LINE>
+<LINE>An odorous chaplet of sweet summer buds</LINE>
+<LINE>Is, as in mockery, set: the spring, the summer,</LINE>
+<LINE>The childing autumn, angry winter, change</LINE>
+<LINE>Their wonted liveries, and the mazed world,</LINE>
+<LINE>By their increase, now knows not which is which:</LINE>
+<LINE>And this same progeny of evils comes</LINE>
+<LINE>From our debate, from our dissension;</LINE>
+<LINE>We are their parents and original.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Do you amend it then; it lies in you:</LINE>
+<LINE>Why should Titania cross her Oberon?</LINE>
+<LINE>I do but beg a little changeling boy,</LINE>
+<LINE>To be my henchman.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Set your heart at rest:</LINE>
+<LINE>The fairy land buys not the child of me.</LINE>
+<LINE>His mother was a votaress of my order:</LINE>
+<LINE>And, in the spiced Indian air, by night,</LINE>
+<LINE>Full often hath she gossip'd by my side,</LINE>
+<LINE>And sat with me on Neptune's yellow sands,</LINE>
+<LINE>Marking the embarked traders on the flood,</LINE>
+<LINE>When we have laugh'd to see the sails conceive</LINE>
+<LINE>And grow big-bellied with the wanton wind;</LINE>
+<LINE>Which she, with pretty and with swimming gait</LINE>
+<LINE>Following,--her womb then rich with my young squire,--</LINE>
+<LINE>Would imitate, and sail upon the land,</LINE>
+<LINE>To fetch me trifles, and return again,</LINE>
+<LINE>As from a voyage, rich with merchandise.</LINE>
+<LINE>But she, being mortal, of that boy did die;</LINE>
+<LINE>And for her sake do I rear up her boy,</LINE>
+<LINE>And for her sake I will not part with him.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>How long within this wood intend you stay?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Perchance till after Theseus' wedding-day.</LINE>
+<LINE>If you will patiently dance in our round</LINE>
+<LINE>And see our moonlight revels, go with us;</LINE>
+<LINE>If not, shun me, and I will spare your haunts.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Give me that boy, and I will go with thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Not for thy fairy kingdom. Fairies, away!</LINE>
+<LINE>We shall chide downright, if I longer stay.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit TITANIA with her train</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Well, go thy way: thou shalt not from this grove</LINE>
+<LINE>Till I torment thee for this injury.</LINE>
+<LINE>My gentle Puck, come hither. Thou rememberest</LINE>
+<LINE>Since once I sat upon a promontory,</LINE>
+<LINE>And heard a mermaid on a dolphin's back</LINE>
+<LINE>Uttering such dulcet and harmonious breath</LINE>
+<LINE>That the rude sea grew civil at her song</LINE>
+<LINE>And certain stars shot madly from their spheres,</LINE>
+<LINE>To hear the sea-maid's music.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>I remember.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>That very time I saw, but thou couldst not,</LINE>
+<LINE>Flying between the cold moon and the earth,</LINE>
+<LINE>Cupid all arm'd: a certain aim he took</LINE>
+<LINE>At a fair vestal throned by the west,</LINE>
+<LINE>And loosed his love-shaft smartly from his bow,</LINE>
+<LINE>As it should pierce a hundred thousand hearts;</LINE>
+<LINE>But I might see young Cupid's fiery shaft</LINE>
+<LINE>Quench'd in the chaste beams of the watery moon,</LINE>
+<LINE>And the imperial votaress passed on,</LINE>
+<LINE>In maiden meditation, fancy-free.</LINE>
+<LINE>Yet mark'd I where the bolt of Cupid fell:</LINE>
+<LINE>It fell upon a little western flower,</LINE>
+<LINE>Before milk-white, now purple with love's wound,</LINE>
+<LINE>And maidens call it love-in-idleness.</LINE>
+<LINE>Fetch me that flower; the herb I shew'd thee once:</LINE>
+<LINE>The juice of it on sleeping eye-lids laid</LINE>
+<LINE>Will make or man or woman madly dote</LINE>
+<LINE>Upon the next live creature that it sees.</LINE>
+<LINE>Fetch me this herb; and be thou here again</LINE>
+<LINE>Ere the leviathan can swim a league.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>I'll put a girdle round about the earth</LINE>
+<LINE>In forty minutes.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Having once this juice,</LINE>
+<LINE>I'll watch Titania when she is asleep,</LINE>
+<LINE>And drop the liquor of it in her eyes.</LINE>
+<LINE>The next thing then she waking looks upon,</LINE>
+<LINE>Be it on lion, bear, or wolf, or bull,</LINE>
+<LINE>On meddling monkey, or on busy ape,</LINE>
+<LINE>She shall pursue it with the soul of love:</LINE>
+<LINE>And ere I take this charm from off her sight,</LINE>
+<LINE>As I can take it with another herb,</LINE>
+<LINE>I'll make her render up her page to me.</LINE>
+<LINE>But who comes here? I am invisible;</LINE>
+<LINE>And I will overhear their conference.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter DEMETRIUS, HELENA, following him</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>I love thee not, therefore pursue me not.</LINE>
+<LINE>Where is Lysander and fair Hermia?</LINE>
+<LINE>The one I'll slay, the other slayeth me.</LINE>
+<LINE>Thou told'st me they were stolen unto this wood;</LINE>
+<LINE>And here am I, and wode within this wood,</LINE>
+<LINE>Because I cannot meet my Hermia.</LINE>
+<LINE>Hence, get thee gone, and follow me no more.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>You draw me, you hard-hearted adamant;</LINE>
+<LINE>But yet you draw not iron, for my heart</LINE>
+<LINE>Is true as steel: leave you your power to draw,</LINE>
+<LINE>And I shall have no power to follow you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Do I entice you? do I speak you fair?</LINE>
+<LINE>Or, rather, do I not in plainest truth</LINE>
+<LINE>Tell you, I do not, nor I cannot love you?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>And even for that do I love you the more.</LINE>
+<LINE>I am your spaniel; and, Demetrius,</LINE>
+<LINE>The more you beat me, I will fawn on you:</LINE>
+<LINE>Use me but as your spaniel, spurn me, strike me,</LINE>
+<LINE>Neglect me, lose me; only give me leave,</LINE>
+<LINE>Unworthy as I am, to follow you.</LINE>
+<LINE>What worser place can I beg in your love,--</LINE>
+<LINE>And yet a place of high respect with me,--</LINE>
+<LINE>Than to be used as you use your dog?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Tempt not too much the hatred of my spirit;</LINE>
+<LINE>For I am sick when I do look on thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>And I am sick when I look not on you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>You do impeach your modesty too much,</LINE>
+<LINE>To leave the city and commit yourself</LINE>
+<LINE>Into the hands of one that loves you not;</LINE>
+<LINE>To trust the opportunity of night</LINE>
+<LINE>And the ill counsel of a desert place</LINE>
+<LINE>With the rich worth of your virginity.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Your virtue is my privilege: for that</LINE>
+<LINE>It is not night when I do see your face,</LINE>
+<LINE>Therefore I think I am not in the night;</LINE>
+<LINE>Nor doth this wood lack worlds of company,</LINE>
+<LINE>For you in my respect are all the world:</LINE>
+<LINE>Then how can it be said I am alone,</LINE>
+<LINE>When all the world is here to look on me?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>I'll run from thee and hide me in the brakes,</LINE>
+<LINE>And leave thee to the mercy of wild beasts.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>The wildest hath not such a heart as you.</LINE>
+<LINE>Run when you will, the story shall be changed:</LINE>
+<LINE>Apollo flies, and Daphne holds the chase;</LINE>
+<LINE>The dove pursues the griffin; the mild hind</LINE>
+<LINE>Makes speed to catch the tiger; bootless speed,</LINE>
+<LINE>When cowardice pursues and valour flies.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>I will not stay thy questions; let me go:</LINE>
+<LINE>Or, if thou follow me, do not believe</LINE>
+<LINE>But I shall do thee mischief in the wood.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Ay, in the temple, in the town, the field,</LINE>
+<LINE>You do me mischief. Fie, Demetrius!</LINE>
+<LINE>Your wrongs do set a scandal on my sex:</LINE>
+<LINE>We cannot fight for love, as men may do;</LINE>
+<LINE>We should be wood and were not made to woo.</LINE>
+<STAGEDIR>Exit DEMETRIUS</STAGEDIR>
+<LINE>I'll follow thee and make a heaven of hell,</LINE>
+<LINE>To die upon the hand I love so well.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Fare thee well, nymph: ere he do leave this grove,</LINE>
+<LINE>Thou shalt fly him and he shall seek thy love.</LINE>
+<STAGEDIR>Re-enter PUCK</STAGEDIR>
+<LINE>Hast thou the flower there? Welcome, wanderer.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Ay, there it is.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>I pray thee, give it me.</LINE>
+<LINE>I know a bank where the wild thyme blows,</LINE>
+<LINE>Where oxlips and the nodding violet grows,</LINE>
+<LINE>Quite over-canopied with luscious woodbine,</LINE>
+<LINE>With sweet musk-roses and with eglantine:</LINE>
+<LINE>There sleeps Titania sometime of the night,</LINE>
+<LINE>Lull'd in these flowers with dances and delight;</LINE>
+<LINE>And there the snake throws her enamell'd skin,</LINE>
+<LINE>Weed wide enough to wrap a fairy in:</LINE>
+<LINE>And with the juice of this I'll streak her eyes,</LINE>
+<LINE>And make her full of hateful fantasies.</LINE>
+<LINE>Take thou some of it, and seek through this grove:</LINE>
+<LINE>A sweet Athenian lady is in love</LINE>
+<LINE>With a disdainful youth: anoint his eyes;</LINE>
+<LINE>But do it when the next thing he espies</LINE>
+<LINE>May be the lady: thou shalt know the man</LINE>
+<LINE>By the Athenian garments he hath on.</LINE>
+<LINE>Effect it with some care, that he may prove</LINE>
+<LINE>More fond on her than she upon her love:</LINE>
+<LINE>And look thou meet me ere the first cock crow.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Fear not, my lord, your servant shall do so.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE II.  Another part of the wood.</TITLE>
+<STAGEDIR>Enter TITANIA, with her train</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Come, now a roundel and a fairy song;</LINE>
+<LINE>Then, for the third part of a minute, hence;</LINE>
+<LINE>Some to kill cankers in the musk-rose buds,</LINE>
+<LINE>Some war with rere-mice for their leathern wings,</LINE>
+<LINE>To make my small elves coats, and some keep back</LINE>
+<LINE>The clamorous owl that nightly hoots and wonders</LINE>
+<LINE>At our quaint spirits. Sing me now asleep;</LINE>
+<LINE>Then to your offices and let me rest.</LINE>
+<STAGEDIR>The Fairies sing</STAGEDIR>
+<LINE>You spotted snakes with double tongue,</LINE>
+<LINE>Thorny hedgehogs, be not seen;</LINE>
+<LINE>Newts and blind-worms, do no wrong,</LINE>
+<LINE>Come not near our fairy queen.</LINE>
+<LINE>Philomel, with melody</LINE>
+<LINE>Sing in our sweet lullaby;</LINE>
+<LINE>Lulla, lulla, lullaby, lulla, lulla, lullaby:</LINE>
+<LINE>Never harm,</LINE>
+<LINE>Nor spell nor charm,</LINE>
+<LINE>Come our lovely lady nigh;</LINE>
+<LINE>So, good night, with lullaby.</LINE>
+<LINE>Weaving spiders, come not here;</LINE>
+<LINE>Hence, you long-legg'd spinners, hence!</LINE>
+<LINE>Beetles black, approach not near;</LINE>
+<LINE>Worm nor snail, do no offence.</LINE>
+<LINE>Philomel, with melody, &amp;c.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Fairy</SPEAKER>
+<LINE>Hence, away! now all is well:</LINE>
+<LINE>One aloof stand sentinel.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt Fairies. TITANIA sleeps</STAGEDIR>
+<STAGEDIR>Enter OBERON and squeezes the flower on TITANIA's eyelids</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>What thou seest when thou dost wake,</LINE>
+<LINE>Do it for thy true-love take,</LINE>
+<LINE>Love and languish for his sake:</LINE>
+<LINE>Be it ounce, or cat, or bear,</LINE>
+<LINE>Pard, or boar with bristled hair,</LINE>
+<LINE>In thy eye that shall appear</LINE>
+<LINE>When thou wakest, it is thy dear:</LINE>
+<LINE>Wake when some vile thing is near.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+<STAGEDIR>Enter LYSANDER and HERMIA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Fair love, you faint with wandering in the wood;</LINE>
+<LINE>And to speak troth, I have forgot our way:</LINE>
+<LINE>We'll rest us, Hermia, if you think it good,</LINE>
+<LINE>And tarry for the comfort of the day.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Be it so, Lysander: find you out a bed;</LINE>
+<LINE>For I upon this bank will rest my head.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>One turf shall serve as pillow for us both;</LINE>
+<LINE>One heart, one bed, two bosoms and one troth.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Nay, good Lysander; for my sake, my dear,</LINE>
+<LINE>Lie further off yet, do not lie so near.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>O, take the sense, sweet, of my innocence!</LINE>
+<LINE>Love takes the meaning in love's conference.</LINE>
+<LINE>I mean, that my heart unto yours is knit</LINE>
+<LINE>So that but one heart we can make of it;</LINE>
+<LINE>Two bosoms interchained with an oath;</LINE>
+<LINE>So then two bosoms and a single troth.</LINE>
+<LINE>Then by your side no bed-room me deny;</LINE>
+<LINE>For lying so, Hermia, I do not lie.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Lysander riddles very prettily:</LINE>
+<LINE>Now much beshrew my manners and my pride,</LINE>
+<LINE>If Hermia meant to say Lysander lied.</LINE>
+<LINE>But, gentle friend, for love and courtesy</LINE>
+<LINE>Lie further off; in human modesty,</LINE>
+<LINE>Such separation as may well be said</LINE>
+<LINE>Becomes a virtuous bachelor and a maid,</LINE>
+<LINE>So far be distant; and, good night, sweet friend:</LINE>
+<LINE>Thy love ne'er alter till thy sweet life end!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Amen, amen, to that fair prayer, say I;</LINE>
+<LINE>And then end life when I end loyalty!</LINE>
+<LINE>Here is my bed: sleep give thee all his rest!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>With half that wish the wisher's eyes be press'd!</LINE>
+</SPEECH>
+
+<STAGEDIR>They sleep</STAGEDIR>
+<STAGEDIR>Enter PUCK</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Through the forest have I gone.</LINE>
+<LINE>But Athenian found I none,</LINE>
+<LINE>On whose eyes I might approve</LINE>
+<LINE>This flower's force in stirring love.</LINE>
+<LINE>Night and silence.--Who is here?</LINE>
+<LINE>Weeds of Athens he doth wear:</LINE>
+<LINE>This is he, my master said,</LINE>
+<LINE>Despised the Athenian maid;</LINE>
+<LINE>And here the maiden, sleeping sound,</LINE>
+<LINE>On the dank and dirty ground.</LINE>
+<LINE>Pretty soul! she durst not lie</LINE>
+<LINE>Near this lack-love, this kill-courtesy.</LINE>
+<LINE>Churl, upon thy eyes I throw</LINE>
+<LINE>All the power this charm doth owe.</LINE>
+<LINE>When thou wakest, let love forbid</LINE>
+<LINE>Sleep his seat on thy eyelid:</LINE>
+<LINE>So awake when I am gone;</LINE>
+<LINE>For I must now to Oberon.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+<STAGEDIR>Enter DEMETRIUS and HELENA, running</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Stay, though thou kill me, sweet Demetrius.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>I charge thee, hence, and do not haunt me thus.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>O, wilt thou darkling leave me? do not so.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Stay, on thy peril: I alone will go.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>O, I am out of breath in this fond chase!</LINE>
+<LINE>The more my prayer, the lesser is my grace.</LINE>
+<LINE>Happy is Hermia, wheresoe'er she lies;</LINE>
+<LINE>For she hath blessed and attractive eyes.</LINE>
+<LINE>How came her eyes so bright? Not with salt tears:</LINE>
+<LINE>If so, my eyes are oftener wash'd than hers.</LINE>
+<LINE>No, no, I am as ugly as a bear;</LINE>
+<LINE>For beasts that meet me run away for fear:</LINE>
+<LINE>Therefore no marvel though Demetrius</LINE>
+<LINE>Do, as a monster fly my presence thus.</LINE>
+<LINE>What wicked and dissembling glass of mine</LINE>
+<LINE>Made me compare with Hermia's sphery eyne?</LINE>
+<LINE>But who is here? Lysander! on the ground!</LINE>
+<LINE>Dead? or asleep? I see no blood, no wound.</LINE>
+<LINE>Lysander if you live, good sir, awake.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE><STAGEDIR>Awaking</STAGEDIR>  And run through fire I will for thy sweet sake.</LINE>
+<LINE>Transparent Helena! Nature shows art,</LINE>
+<LINE>That through thy bosom makes me see thy heart.</LINE>
+<LINE>Where is Demetrius? O, how fit a word</LINE>
+<LINE>Is that vile name to perish on my sword!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Do not say so, Lysander; say not so</LINE>
+<LINE>What though he love your Hermia? Lord, what though?</LINE>
+<LINE>Yet Hermia still loves you: then be content.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Content with Hermia! No; I do repent</LINE>
+<LINE>The tedious minutes I with her have spent.</LINE>
+<LINE>Not Hermia but Helena I love:</LINE>
+<LINE>Who will not change a raven for a dove?</LINE>
+<LINE>The will of man is by his reason sway'd;</LINE>
+<LINE>And reason says you are the worthier maid.</LINE>
+<LINE>Things growing are not ripe until their season</LINE>
+<LINE>So I, being young, till now ripe not to reason;</LINE>
+<LINE>And touching now the point of human skill,</LINE>
+<LINE>Reason becomes the marshal to my will</LINE>
+<LINE>And leads me to your eyes, where I o'erlook</LINE>
+<LINE>Love's stories written in love's richest book.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Wherefore was I to this keen mockery born?</LINE>
+<LINE>When at your hands did I deserve this scorn?</LINE>
+<LINE>Is't not enough, is't not enough, young man,</LINE>
+<LINE>That I did never, no, nor never can,</LINE>
+<LINE>Deserve a sweet look from Demetrius' eye,</LINE>
+<LINE>But you must flout my insufficiency?</LINE>
+<LINE>Good troth, you do me wrong, good sooth, you do,</LINE>
+<LINE>In such disdainful manner me to woo.</LINE>
+<LINE>But fare you well: perforce I must confess</LINE>
+<LINE>I thought you lord of more true gentleness.</LINE>
+<LINE>O, that a lady, of one man refused.</LINE>
+<LINE>Should of another therefore be abused!</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>She sees not Hermia. Hermia, sleep thou there:</LINE>
+<LINE>And never mayst thou come Lysander near!</LINE>
+<LINE>For as a surfeit of the sweetest things</LINE>
+<LINE>The deepest loathing to the stomach brings,</LINE>
+<LINE>Or as tie heresies that men do leave</LINE>
+<LINE>Are hated most of those they did deceive,</LINE>
+<LINE>So thou, my surfeit and my heresy,</LINE>
+<LINE>Of all be hated, but the most of me!</LINE>
+<LINE>And, all my powers, address your love and might</LINE>
+<LINE>To honour Helen and to be her knight!</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE><STAGEDIR>Awaking</STAGEDIR>  Help me, Lysander, help me! do thy best</LINE>
+<LINE>To pluck this crawling serpent from my breast!</LINE>
+<LINE>Ay me, for pity! what a dream was here!</LINE>
+<LINE>Lysander, look how I do quake with fear:</LINE>
+<LINE>Methought a serpent eat my heart away,</LINE>
+<LINE>And you sat smiling at his cruel pray.</LINE>
+<LINE>Lysander! what, removed? Lysander! lord!</LINE>
+<LINE>What, out of hearing? gone? no sound, no word?</LINE>
+<LINE>Alack, where are you speak, an if you hear;</LINE>
+<LINE>Speak, of all loves! I swoon almost with fear.</LINE>
+<LINE>No? then I well perceive you all not nigh</LINE>
+<LINE>Either death or you I'll find immediately.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+</SCENE>
+
+</ACT>
+
+<ACT><TITLE>ACT III</TITLE>
+
+<SCENE><TITLE>SCENE I.  The wood. TITANIA lying asleep.</TITLE>
+<STAGEDIR>Enter QUINCE, SNUG, BOTTOM, FLUTE, SNOUT, and
+STARVELING</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Are we all met?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Pat, pat; and here's a marvellous convenient place</LINE>
+<LINE>for our rehearsal. This green plot shall be our</LINE>
+<LINE>stage, this hawthorn-brake our tiring-house; and we</LINE>
+<LINE>will do it in action as we will do it before the duke.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Peter Quince,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>What sayest thou, bully Bottom?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>There are things in this comedy of Pyramus and</LINE>
+<LINE>Thisby that will never please. First, Pyramus must</LINE>
+<LINE>draw a sword to kill himself; which the ladies</LINE>
+<LINE>cannot abide. How answer you that?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>SNOUT</SPEAKER>
+<LINE>By'r lakin, a parlous fear.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>STARVELING</SPEAKER>
+<LINE>I believe we must leave the killing out, when all is done.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Not a whit: I have a device to make all well.</LINE>
+<LINE>Write me a prologue; and let the prologue seem to</LINE>
+<LINE>say, we will do no harm with our swords, and that</LINE>
+<LINE>Pyramus is not killed indeed; and, for the more</LINE>
+<LINE>better assurance, tell them that I, Pyramus, am not</LINE>
+<LINE>Pyramus, but Bottom the weaver: this will put them</LINE>
+<LINE>out of fear.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Well, we will have such a prologue; and it shall be</LINE>
+<LINE>written in eight and six.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>No, make it two more; let it be written in eight and eight.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>SNOUT</SPEAKER>
+<LINE>Will not the ladies be afeard of the lion?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>STARVELING</SPEAKER>
+<LINE>I fear it, I promise you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Masters, you ought to consider with yourselves: to</LINE>
+<LINE>bring in--God shield us!--a lion among ladies, is a</LINE>
+<LINE>most dreadful thing; for there is not a more fearful</LINE>
+<LINE>wild-fowl than your lion living; and we ought to</LINE>
+<LINE>look to 't.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>SNOUT</SPEAKER>
+<LINE>Therefore another prologue must tell he is not a lion.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Nay, you must name his name, and half his face must</LINE>
+<LINE>be seen through the lion's neck: and he himself</LINE>
+<LINE>must speak through, saying thus, or to the same</LINE>
+<LINE>defect,--'Ladies,'--or 'Fair-ladies--I would wish</LINE>
+<LINE>You,'--or 'I would request you,'--or 'I would</LINE>
+<LINE>entreat you,--not to fear, not to tremble: my life</LINE>
+<LINE>for yours. If you think I come hither as a lion, it</LINE>
+<LINE>were pity of my life: no I am no such thing; I am a</LINE>
+<LINE>man as other men are;' and there indeed let him name</LINE>
+<LINE>his name, and tell them plainly he is Snug the joiner.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Well it shall be so. But there is two hard things;</LINE>
+<LINE>that is, to bring the moonlight into a chamber; for,</LINE>
+<LINE>you know, Pyramus and Thisby meet by moonlight.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>SNOUT</SPEAKER>
+<LINE>Doth the moon shine that night we play our play?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>A calendar, a calendar! look in the almanac; find</LINE>
+<LINE>out moonshine, find out moonshine.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Yes, it doth shine that night.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Why, then may you leave a casement of the great</LINE>
+<LINE>chamber window, where we play, open, and the moon</LINE>
+<LINE>may shine in at the casement.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Ay; or else one must come in with a bush of thorns</LINE>
+<LINE>and a lanthorn, and say he comes to disfigure, or to</LINE>
+<LINE>present, the person of Moonshine. Then, there is</LINE>
+<LINE>another thing: we must have a wall in the great</LINE>
+<LINE>chamber; for Pyramus and Thisby says the story, did</LINE>
+<LINE>talk through the chink of a wall.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>SNOUT</SPEAKER>
+<LINE>You can never bring in a wall. What say you, Bottom?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Some man or other must present Wall: and let him</LINE>
+<LINE>have some plaster, or some loam, or some rough-cast</LINE>
+<LINE>about him, to signify wall; and let him hold his</LINE>
+<LINE>fingers thus, and through that cranny shall Pyramus</LINE>
+<LINE>and Thisby whisper.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>If that may be, then all is well. Come, sit down,</LINE>
+<LINE>every mother's son, and rehearse your parts.</LINE>
+<LINE>Pyramus, you begin: when you have spoken your</LINE>
+<LINE>speech, enter into that brake: and so every one</LINE>
+<LINE>according to his cue.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter PUCK behind</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>What hempen home-spuns have we swaggering here,</LINE>
+<LINE>So near the cradle of the fairy queen?</LINE>
+<LINE>What, a play toward! I'll be an auditor;</LINE>
+<LINE>An actor too, perhaps, if I see cause.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Speak, Pyramus. Thisby, stand forth.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Thisby, the flowers of odious savours sweet,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Odours, odours.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>--odours savours sweet:</LINE>
+<LINE>So hath thy breath, my dearest Thisby dear.</LINE>
+<LINE>But hark, a voice! stay thou but here awhile,</LINE>
+<LINE>And by and by I will to thee appear.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>A stranger Pyramus than e'er played here.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>FLUTE</SPEAKER>
+<LINE>Must I speak now?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Ay, marry, must you; for you must understand he goes</LINE>
+<LINE>but to see a noise that he heard, and is to come again.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FLUTE</SPEAKER>
+<LINE>Most radiant Pyramus, most lily-white of hue,</LINE>
+<LINE>Of colour like the red rose on triumphant brier,</LINE>
+<LINE>Most brisky juvenal and eke most lovely Jew,</LINE>
+<LINE>As true as truest horse that yet would never tire,</LINE>
+<LINE>I'll meet thee, Pyramus, at Ninny's tomb.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>'Ninus' tomb,' man: why, you must not speak that</LINE>
+<LINE>yet; that you answer to Pyramus: you speak all your</LINE>
+<LINE>part at once, cues and all Pyramus enter: your cue</LINE>
+<LINE>is past; it is, 'never tire.'</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FLUTE</SPEAKER>
+<LINE>O,--As true as truest horse, that yet would</LINE>
+<LINE>never tire.</LINE>
+</SPEECH>
+
+<STAGEDIR>Re-enter PUCK, and BOTTOM with an ass's head</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>If I were fair, Thisby, I were only thine.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>O monstrous! O strange! we are haunted. Pray,</LINE>
+<LINE>masters! fly, masters! Help!</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt QUINCE, SNUG, FLUTE, SNOUT, and STARVELING</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>I'll follow you, I'll lead you about a round,</LINE>
+<LINE>Through bog, through bush, through brake, through brier:</LINE>
+<LINE>Sometime a horse I'll be, sometime a hound,</LINE>
+<LINE>A hog, a headless bear, sometime a fire;</LINE>
+<LINE>And neigh, and bark, and grunt, and roar, and burn,</LINE>
+<LINE>Like horse, hound, hog, bear, fire, at every turn.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Why do they run away? this is a knavery of them to</LINE>
+<LINE>make me afeard.</LINE>
+</SPEECH>
+
+<STAGEDIR>Re-enter SNOUT</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>SNOUT</SPEAKER>
+<LINE>O Bottom, thou art changed! what do I see on thee?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>What do you see? you see an asshead of your own, do</LINE>
+<LINE>you?</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit SNOUT</STAGEDIR>
+<STAGEDIR>Re-enter QUINCE</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Bless thee, Bottom! bless thee! thou art</LINE>
+<LINE>translated.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>I see their knavery: this is to make an ass of me;</LINE>
+<LINE>to fright me, if they could. But I will not stir</LINE>
+<LINE>from this place, do what they can: I will walk up</LINE>
+<LINE>and down here, and I will sing, that they shall hear</LINE>
+<LINE>I am not afraid.</LINE>
+<STAGEDIR>Sings</STAGEDIR>
+<LINE>The ousel cock so black of hue,</LINE>
+<LINE>With orange-tawny bill,</LINE>
+<LINE>The throstle with his note so true,</LINE>
+<LINE>The wren with little quill,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE><STAGEDIR>Awaking</STAGEDIR>  What angel wakes me from my flowery bed?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE><STAGEDIR>Sings</STAGEDIR></LINE>
+<LINE>The finch, the sparrow and the lark,</LINE>
+<LINE>The plain-song cuckoo gray,</LINE>
+<LINE>Whose note full many a man doth mark,</LINE>
+<LINE>And dares not answer nay;--</LINE>
+<LINE>for, indeed, who would set his wit to so foolish</LINE>
+<LINE>a bird? who would give a bird the lie, though he cry</LINE>
+<LINE>'cuckoo' never so?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>I pray thee, gentle mortal, sing again:</LINE>
+<LINE>Mine ear is much enamour'd of thy note;</LINE>
+<LINE>So is mine eye enthralled to thy shape;</LINE>
+<LINE>And thy fair virtue's force perforce doth move me</LINE>
+<LINE>On the first view to say, to swear, I love thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Methinks, mistress, you should have little reason</LINE>
+<LINE>for that: and yet, to say the truth, reason and</LINE>
+<LINE>love keep little company together now-a-days; the</LINE>
+<LINE>more the pity that some honest neighbours will not</LINE>
+<LINE>make them friends. Nay, I can gleek upon occasion.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Thou art as wise as thou art beautiful.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Not so, neither: but if I had wit enough to get out</LINE>
+<LINE>of this wood, I have enough to serve mine own turn.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Out of this wood do not desire to go:</LINE>
+<LINE>Thou shalt remain here, whether thou wilt or no.</LINE>
+<LINE>I am a spirit of no common rate;</LINE>
+<LINE>The summer still doth tend upon my state;</LINE>
+<LINE>And I do love thee: therefore, go with me;</LINE>
+<LINE>I'll give thee fairies to attend on thee,</LINE>
+<LINE>And they shall fetch thee jewels from the deep,</LINE>
+<LINE>And sing while thou on pressed flowers dost sleep;</LINE>
+<LINE>And I will purge thy mortal grossness so</LINE>
+<LINE>That thou shalt like an airy spirit go.</LINE>
+<LINE>Peaseblossom! Cobweb! Moth! and Mustardseed!</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter PEASEBLOSSOM, COBWEB, MOTH, and MUSTARDSEED</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PEASEBLOSSOM</SPEAKER>
+<LINE>Ready.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>COBWEB</SPEAKER>
+<LINE>And I.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MOTH</SPEAKER>
+<LINE>And I.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MUSTARDSEED</SPEAKER>
+<LINE>And I.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>ALL</SPEAKER>
+<LINE>Where shall we go?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Be kind and courteous to this gentleman;</LINE>
+<LINE>Hop in his walks and gambol in his eyes;</LINE>
+<LINE>Feed him with apricocks and dewberries,</LINE>
+<LINE>With purple grapes, green figs, and mulberries;</LINE>
+<LINE>The honey-bags steal from the humble-bees,</LINE>
+<LINE>And for night-tapers crop their waxen thighs</LINE>
+<LINE>And light them at the fiery glow-worm's eyes,</LINE>
+<LINE>To have my love to bed and to arise;</LINE>
+<LINE>And pluck the wings from Painted butterflies</LINE>
+<LINE>To fan the moonbeams from his sleeping eyes:</LINE>
+<LINE>Nod to him, elves, and do him courtesies.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PEASEBLOSSOM</SPEAKER>
+<LINE>Hail, mortal!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>COBWEB</SPEAKER>
+<LINE>Hail!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MOTH</SPEAKER>
+<LINE>Hail!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MUSTARDSEED</SPEAKER>
+<LINE>Hail!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>I cry your worship's mercy, heartily: I beseech your</LINE>
+<LINE>worship's name.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>COBWEB</SPEAKER>
+<LINE>Cobweb.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>I shall desire you of more acquaintance, good Master</LINE>
+<LINE>Cobweb: if I cut my finger, I shall make bold with</LINE>
+<LINE>you. Your name, honest gentleman?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PEASEBLOSSOM</SPEAKER>
+<LINE>Peaseblossom.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>I pray you, commend me to Mistress Squash, your</LINE>
+<LINE>mother, and to Master Peascod, your father. Good</LINE>
+<LINE>Master Peaseblossom, I shall desire you of more</LINE>
+<LINE>acquaintance too. Your name, I beseech you, sir?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MUSTARDSEED</SPEAKER>
+<LINE>Mustardseed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Good Master Mustardseed, I know your patience well:</LINE>
+<LINE>that same cowardly, giant-like ox-beef hath</LINE>
+<LINE>devoured many a gentleman of your house: I promise</LINE>
+<LINE>you your kindred had made my eyes water ere now. I</LINE>
+<LINE>desire your more acquaintance, good Master</LINE>
+<LINE>Mustardseed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Come, wait upon him; lead him to my bower.</LINE>
+<LINE>The moon methinks looks with a watery eye;</LINE>
+<LINE>And when she weeps, weeps every little flower,</LINE>
+<LINE>Lamenting some enforced chastity.</LINE>
+<LINE>Tie up my love's tongue bring him silently.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE II.  Another part of the wood.</TITLE>
+<STAGEDIR>Enter OBERON</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>I wonder if Titania be awaked;</LINE>
+<LINE>Then, what it was that next came in her eye,</LINE>
+<LINE>Which she must dote on in extremity.</LINE>
+<STAGEDIR>Enter PUCK</STAGEDIR>
+<LINE>Here comes my messenger.</LINE>
+<LINE>How now, mad spirit!</LINE>
+<LINE>What night-rule now about this haunted grove?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>My mistress with a monster is in love.</LINE>
+<LINE>Near to her close and consecrated bower,</LINE>
+<LINE>While she was in her dull and sleeping hour,</LINE>
+<LINE>A crew of patches, rude mechanicals,</LINE>
+<LINE>That work for bread upon Athenian stalls,</LINE>
+<LINE>Were met together to rehearse a play</LINE>
+<LINE>Intended for great Theseus' nuptial-day.</LINE>
+<LINE>The shallowest thick-skin of that barren sort,</LINE>
+<LINE>Who Pyramus presented, in their sport</LINE>
+<LINE>Forsook his scene and enter'd in a brake</LINE>
+<LINE>When I did him at this advantage take,</LINE>
+<LINE>An ass's nole I fixed on his head:</LINE>
+<LINE>Anon his Thisbe must be answered,</LINE>
+<LINE>And forth my mimic comes. When they him spy,</LINE>
+<LINE>As wild geese that the creeping fowler eye,</LINE>
+<LINE>Or russet-pated choughs, many in sort,</LINE>
+<LINE>Rising and cawing at the gun's report,</LINE>
+<LINE>Sever themselves and madly sweep the sky,</LINE>
+<LINE>So, at his sight, away his fellows fly;</LINE>
+<LINE>And, at our stamp, here o'er and o'er one falls;</LINE>
+<LINE>He murder cries and help from Athens calls.</LINE>
+<LINE>Their sense thus weak, lost with their fears</LINE>
+<LINE>thus strong,</LINE>
+<LINE>Made senseless things begin to do them wrong;</LINE>
+<LINE>For briers and thorns at their apparel snatch;</LINE>
+<LINE>Some sleeves, some hats, from yielders all</LINE>
+<LINE>things catch.</LINE>
+<LINE>I led them on in this distracted fear,</LINE>
+<LINE>And left sweet Pyramus translated there:</LINE>
+<LINE>When in that moment, so it came to pass,</LINE>
+<LINE>Titania waked and straightway loved an ass.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>This falls out better than I could devise.</LINE>
+<LINE>But hast thou yet latch'd the Athenian's eyes</LINE>
+<LINE>With the love-juice, as I did bid thee do?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>I took him sleeping,--that is finish'd too,--</LINE>
+<LINE>And the Athenian woman by his side:</LINE>
+<LINE>That, when he waked, of force she must be eyed.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter HERMIA and DEMETRIUS</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Stand close: this is the same Athenian.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>This is the woman, but not this the man.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>O, why rebuke you him that loves you so?</LINE>
+<LINE>Lay breath so bitter on your bitter foe.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Now I but chide; but I should use thee worse,</LINE>
+<LINE>For thou, I fear, hast given me cause to curse,</LINE>
+<LINE>If thou hast slain Lysander in his sleep,</LINE>
+<LINE>Being o'er shoes in blood, plunge in the deep,</LINE>
+<LINE>And kill me too.</LINE>
+<LINE>The sun was not so true unto the day</LINE>
+<LINE>As he to me: would he have stolen away</LINE>
+<LINE>From sleeping Hermia? I'll believe as soon</LINE>
+<LINE>This whole earth may be bored and that the moon</LINE>
+<LINE>May through the centre creep and so displease</LINE>
+<LINE>Her brother's noontide with Antipodes.</LINE>
+<LINE>It cannot be but thou hast murder'd him;</LINE>
+<LINE>So should a murderer look, so dead, so grim.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>So should the murder'd look, and so should I,</LINE>
+<LINE>Pierced through the heart with your stern cruelty:</LINE>
+<LINE>Yet you, the murderer, look as bright, as clear,</LINE>
+<LINE>As yonder Venus in her glimmering sphere.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>What's this to my Lysander? where is he?</LINE>
+<LINE>Ah, good Demetrius, wilt thou give him me?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>I had rather give his carcass to my hounds.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Out, dog! out, cur! thou drivest me past the bounds</LINE>
+<LINE>Of maiden's patience. Hast thou slain him, then?</LINE>
+<LINE>Henceforth be never number'd among men!</LINE>
+<LINE>O, once tell true, tell true, even for my sake!</LINE>
+<LINE>Durst thou have look'd upon him being awake,</LINE>
+<LINE>And hast thou kill'd him sleeping? O brave touch!</LINE>
+<LINE>Could not a worm, an adder, do so much?</LINE>
+<LINE>An adder did it; for with doubler tongue</LINE>
+<LINE>Than thine, thou serpent, never adder stung.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>You spend your passion on a misprised mood:</LINE>
+<LINE>I am not guilty of Lysander's blood;</LINE>
+<LINE>Nor is he dead, for aught that I can tell.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>I pray thee, tell me then that he is well.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>An if I could, what should I get therefore?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>A privilege never to see me more.</LINE>
+<LINE>And from thy hated presence part I so:</LINE>
+<LINE>See me no more, whether he be dead or no.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>There is no following her in this fierce vein:</LINE>
+<LINE>Here therefore for a while I will remain.</LINE>
+<LINE>So sorrow's heaviness doth heavier grow</LINE>
+<LINE>For debt that bankrupt sleep doth sorrow owe:</LINE>
+<LINE>Which now in some slight measure it will pay,</LINE>
+<LINE>If for his tender here I make some stay.</LINE>
+</SPEECH>
+
+<STAGEDIR>Lies down and sleeps</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>What hast thou done? thou hast mistaken quite</LINE>
+<LINE>And laid the love-juice on some true-love's sight:</LINE>
+<LINE>Of thy misprision must perforce ensue</LINE>
+<LINE>Some true love turn'd and not a false turn'd true.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Then fate o'er-rules, that, one man holding troth,</LINE>
+<LINE>A million fail, confounding oath on oath.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>About the wood go swifter than the wind,</LINE>
+<LINE>And Helena of Athens look thou find:</LINE>
+<LINE>All fancy-sick she is and pale of cheer,</LINE>
+<LINE>With sighs of love, that costs the fresh blood dear:</LINE>
+<LINE>By some illusion see thou bring her here:</LINE>
+<LINE>I'll charm his eyes against she do appear.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>I go, I go; look how I go,</LINE>
+<LINE>Swifter than arrow from the Tartar's bow.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Flower of this purple dye,</LINE>
+<LINE>Hit with Cupid's archery,</LINE>
+<LINE>Sink in apple of his eye.</LINE>
+<LINE>When his love he doth espy,</LINE>
+<LINE>Let her shine as gloriously</LINE>
+<LINE>As the Venus of the sky.</LINE>
+<LINE>When thou wakest, if she be by,</LINE>
+<LINE>Beg of her for remedy.</LINE>
+</SPEECH>
+
+<STAGEDIR>Re-enter PUCK</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Captain of our fairy band,</LINE>
+<LINE>Helena is here at hand;</LINE>
+<LINE>And the youth, mistook by me,</LINE>
+<LINE>Pleading for a lover's fee.</LINE>
+<LINE>Shall we their fond pageant see?</LINE>
+<LINE>Lord, what fools these mortals be!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Stand aside: the noise they make</LINE>
+<LINE>Will cause Demetrius to awake.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Then will two at once woo one;</LINE>
+<LINE>That must needs be sport alone;</LINE>
+<LINE>And those things do best please me</LINE>
+<LINE>That befal preposterously.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter LYSANDER and HELENA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Why should you think that I should woo in scorn?</LINE>
+<LINE>Scorn and derision never come in tears:</LINE>
+<LINE>Look, when I vow, I weep; and vows so born,</LINE>
+<LINE>In their nativity all truth appears.</LINE>
+<LINE>How can these things in me seem scorn to you,</LINE>
+<LINE>Bearing the badge of faith, to prove them true?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>You do advance your cunning more and more.</LINE>
+<LINE>When truth kills truth, O devilish-holy fray!</LINE>
+<LINE>These vows are Hermia's: will you give her o'er?</LINE>
+<LINE>Weigh oath with oath, and you will nothing weigh:</LINE>
+<LINE>Your vows to her and me, put in two scales,</LINE>
+<LINE>Will even weigh, and both as light as tales.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>I had no judgment when to her I swore.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Nor none, in my mind, now you give her o'er.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Demetrius loves her, and he loves not you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE><STAGEDIR>Awaking</STAGEDIR>  O Helena, goddess, nymph, perfect, divine!</LINE>
+<LINE>To what, my love, shall I compare thine eyne?</LINE>
+<LINE>Crystal is muddy. O, how ripe in show</LINE>
+<LINE>Thy lips, those kissing cherries, tempting grow!</LINE>
+<LINE>That pure congealed white, high Taurus snow,</LINE>
+<LINE>Fann'd with the eastern wind, turns to a crow</LINE>
+<LINE>When thou hold'st up thy hand: O, let me kiss</LINE>
+<LINE>This princess of pure white, this seal of bliss!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>O spite! O hell! I see you all are bent</LINE>
+<LINE>To set against me for your merriment:</LINE>
+<LINE>If you we re civil and knew courtesy,</LINE>
+<LINE>You would not do me thus much injury.</LINE>
+<LINE>Can you not hate me, as I know you do,</LINE>
+<LINE>But you must join in souls to mock me too?</LINE>
+<LINE>If you were men, as men you are in show,</LINE>
+<LINE>You would not use a gentle lady so;</LINE>
+<LINE>To vow, and swear, and superpraise my parts,</LINE>
+<LINE>When I am sure you hate me with your hearts.</LINE>
+<LINE>You both are rivals, and love Hermia;</LINE>
+<LINE>And now both rivals, to mock Helena:</LINE>
+<LINE>A trim exploit, a manly enterprise,</LINE>
+<LINE>To conjure tears up in a poor maid's eyes</LINE>
+<LINE>With your derision! none of noble sort</LINE>
+<LINE>Would so offend a virgin, and extort</LINE>
+<LINE>A poor soul's patience, all to make you sport.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>You are unkind, Demetrius; be not so;</LINE>
+<LINE>For you love Hermia; this you know I know:</LINE>
+<LINE>And here, with all good will, with all my heart,</LINE>
+<LINE>In Hermia's love I yield you up my part;</LINE>
+<LINE>And yours of Helena to me bequeath,</LINE>
+<LINE>Whom I do love and will do till my death.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Never did mockers waste more idle breath.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Lysander, keep thy Hermia; I will none:</LINE>
+<LINE>If e'er I loved her, all that love is gone.</LINE>
+<LINE>My heart to her but as guest-wise sojourn'd,</LINE>
+<LINE>And now to Helen is it home return'd,</LINE>
+<LINE>There to remain.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Helen, it is not so.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Disparage not the faith thou dost not know,</LINE>
+<LINE>Lest, to thy peril, thou aby it dear.</LINE>
+<LINE>Look, where thy love comes; yonder is thy dear.</LINE>
+</SPEECH>
+
+<STAGEDIR>Re-enter HERMIA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Dark night, that from the eye his function takes,</LINE>
+<LINE>The ear more quick of apprehension makes;</LINE>
+<LINE>Wherein it doth impair the seeing sense,</LINE>
+<LINE>It pays the hearing double recompense.</LINE>
+<LINE>Thou art not by mine eye, Lysander, found;</LINE>
+<LINE>Mine ear, I thank it, brought me to thy sound</LINE>
+<LINE>But why unkindly didst thou leave me so?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Why should he stay, whom love doth press to go?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>What love could press Lysander from my side?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Lysander's love, that would not let him bide,</LINE>
+<LINE>Fair Helena, who more engilds the night</LINE>
+<LINE>Than all you fiery oes and eyes of light.</LINE>
+<LINE>Why seek'st thou me? could not this make thee know,</LINE>
+<LINE>The hate I bear thee made me leave thee so?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>You speak not as you think: it cannot be.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Lo, she is one of this confederacy!</LINE>
+<LINE>Now I perceive they have conjoin'd all three</LINE>
+<LINE>To fashion this false sport, in spite of me.</LINE>
+<LINE>Injurious Hermia! most ungrateful maid!</LINE>
+<LINE>Have you conspired, have you with these contrived</LINE>
+<LINE>To bait me with this foul derision?</LINE>
+<LINE>Is all the counsel that we two have shared,</LINE>
+<LINE>The sisters' vows, the hours that we have spent,</LINE>
+<LINE>When we have chid the hasty-footed time</LINE>
+<LINE>For parting us,--O, is it all forgot?</LINE>
+<LINE>All school-days' friendship, childhood innocence?</LINE>
+<LINE>We, Hermia, like two artificial gods,</LINE>
+<LINE>Have with our needles created both one flower,</LINE>
+<LINE>Both on one sampler, sitting on one cushion,</LINE>
+<LINE>Both warbling of one song, both in one key,</LINE>
+<LINE>As if our hands, our sides, voices and minds,</LINE>
+<LINE>Had been incorporate. So we grow together,</LINE>
+<LINE>Like to a double cherry, seeming parted,</LINE>
+<LINE>But yet an union in partition;</LINE>
+<LINE>Two lovely berries moulded on one stem;</LINE>
+<LINE>So, with two seeming bodies, but one heart;</LINE>
+<LINE>Two of the first, like coats in heraldry,</LINE>
+<LINE>Due but to one and crowned with one crest.</LINE>
+<LINE>And will you rent our ancient love asunder,</LINE>
+<LINE>To join with men in scorning your poor friend?</LINE>
+<LINE>It is not friendly, 'tis not maidenly:</LINE>
+<LINE>Our sex, as well as I, may chide you for it,</LINE>
+<LINE>Though I alone do feel the injury.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>I am amazed at your passionate words.</LINE>
+<LINE>I scorn you not: it seems that you scorn me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Have you not set Lysander, as in scorn,</LINE>
+<LINE>To follow me and praise my eyes and face?</LINE>
+<LINE>And made your other love, Demetrius,</LINE>
+<LINE>Who even but now did spurn me with his foot,</LINE>
+<LINE>To call me goddess, nymph, divine and rare,</LINE>
+<LINE>Precious, celestial? Wherefore speaks he this</LINE>
+<LINE>To her he hates? and wherefore doth Lysander</LINE>
+<LINE>Deny your love, so rich within his soul,</LINE>
+<LINE>And tender me, forsooth, affection,</LINE>
+<LINE>But by your setting on, by your consent?</LINE>
+<LINE>What thought I be not so in grace as you,</LINE>
+<LINE>So hung upon with love, so fortunate,</LINE>
+<LINE>But miserable most, to love unloved?</LINE>
+<LINE>This you should pity rather than despise.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERNIA</SPEAKER>
+<LINE>I understand not what you mean by this.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Ay, do, persever, counterfeit sad looks,</LINE>
+<LINE>Make mouths upon me when I turn my back;</LINE>
+<LINE>Wink each at other; hold the sweet jest up:</LINE>
+<LINE>This sport, well carried, shall be chronicled.</LINE>
+<LINE>If you have any pity, grace, or manners,</LINE>
+<LINE>You would not make me such an argument.</LINE>
+<LINE>But fare ye well: 'tis partly my own fault;</LINE>
+<LINE>Which death or absence soon shall remedy.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Stay, gentle Helena; hear my excuse:</LINE>
+<LINE>My love, my life my soul, fair Helena!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>O excellent!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Sweet, do not scorn her so.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>If she cannot entreat, I can compel.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Thou canst compel no more than she entreat:</LINE>
+<LINE>Thy threats have no more strength than her weak prayers.</LINE>
+<LINE>Helen, I love thee; by my life, I do:</LINE>
+<LINE>I swear by that which I will lose for thee,</LINE>
+<LINE>To prove him false that says I love thee not.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>I say I love thee more than he can do.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>If thou say so, withdraw, and prove it too.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Quick, come!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Lysander, whereto tends all this?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Away, you Ethiope!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>No, no; he'll</LINE>
+<LINE>Seem to break loose; take on as you would follow,</LINE>
+<LINE>But yet come not: you are a tame man, go!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Hang off, thou cat, thou burr! vile thing, let loose,</LINE>
+<LINE>Or I will shake thee from me like a serpent!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Why are you grown so rude? what change is this?</LINE>
+<LINE>Sweet love,--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Thy love! out, tawny Tartar, out!</LINE>
+<LINE>Out, loathed medicine! hated potion, hence!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Do you not jest?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Yes, sooth; and so do you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Demetrius, I will keep my word with thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>I would I had your bond, for I perceive</LINE>
+<LINE>A weak bond holds you: I'll not trust your word.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>What, should I hurt her, strike her, kill her dead?</LINE>
+<LINE>Although I hate her, I'll not harm her so.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>What, can you do me greater harm than hate?</LINE>
+<LINE>Hate me! wherefore? O me! what news, my love!</LINE>
+<LINE>Am not I Hermia? are not you Lysander?</LINE>
+<LINE>I am as fair now as I was erewhile.</LINE>
+<LINE>Since night you loved me; yet since night you left</LINE>
+<LINE>me:</LINE>
+<LINE>Why, then you left me--O, the gods forbid!--</LINE>
+<LINE>In earnest, shall I say?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Ay, by my life;</LINE>
+<LINE>And never did desire to see thee more.</LINE>
+<LINE>Therefore be out of hope, of question, of doubt;</LINE>
+<LINE>Be certain, nothing truer; 'tis no jest</LINE>
+<LINE>That I do hate thee and love Helena.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>O me! you juggler! you canker-blossom!</LINE>
+<LINE>You thief of love! what, have you come by night</LINE>
+<LINE>And stolen my love's heart from him?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Fine, i'faith!</LINE>
+<LINE>Have you no modesty, no maiden shame,</LINE>
+<LINE>No touch of bashfulness? What, will you tear</LINE>
+<LINE>Impatient answers from my gentle tongue?</LINE>
+<LINE>Fie, fie! you counterfeit, you puppet, you!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Puppet? why so? ay, that way goes the game.</LINE>
+<LINE>Now I perceive that she hath made compare</LINE>
+<LINE>Between our statures; she hath urged her height;</LINE>
+<LINE>And with her personage, her tall personage,</LINE>
+<LINE>Her height, forsooth, she hath prevail'd with him.</LINE>
+<LINE>And are you grown so high in his esteem;</LINE>
+<LINE>Because I am so dwarfish and so low?</LINE>
+<LINE>How low am I, thou painted maypole? speak;</LINE>
+<LINE>How low am I? I am not yet so low</LINE>
+<LINE>But that my nails can reach unto thine eyes.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>I pray you, though you mock me, gentlemen,</LINE>
+<LINE>Let her not hurt me: I was never curst;</LINE>
+<LINE>I have no gift at all in shrewishness;</LINE>
+<LINE>I am a right maid for my cowardice:</LINE>
+<LINE>Let her not strike me. You perhaps may think,</LINE>
+<LINE>Because she is something lower than myself,</LINE>
+<LINE>That I can match her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Lower! hark, again.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>Good Hermia, do not be so bitter with me.</LINE>
+<LINE>I evermore did love you, Hermia,</LINE>
+<LINE>Did ever keep your counsels, never wrong'd you;</LINE>
+<LINE>Save that, in love unto Demetrius,</LINE>
+<LINE>I told him of your stealth unto this wood.</LINE>
+<LINE>He follow'd you; for love I follow'd him;</LINE>
+<LINE>But he hath chid me hence and threaten'd me</LINE>
+<LINE>To strike me, spurn me, nay, to kill me too:</LINE>
+<LINE>And now, so you will let me quiet go,</LINE>
+<LINE>To Athens will I bear my folly back</LINE>
+<LINE>And follow you no further: let me go:</LINE>
+<LINE>You see how simple and how fond I am.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Why, get you gone: who is't that hinders you?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>A foolish heart, that I leave here behind.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>What, with Lysander?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>With Demetrius.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Be not afraid; she shall not harm thee, Helena.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>No, sir, she shall not, though you take her part.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>O, when she's angry, she is keen and shrewd!</LINE>
+<LINE>She was a vixen when she went to school;</LINE>
+<LINE>And though she be but little, she is fierce.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>'Little' again! nothing but 'low' and 'little'!</LINE>
+<LINE>Why will you suffer her to flout me thus?</LINE>
+<LINE>Let me come to her.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Get you gone, you dwarf;</LINE>
+<LINE>You minimus, of hindering knot-grass made;</LINE>
+<LINE>You bead, you acorn.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>You are too officious</LINE>
+<LINE>In her behalf that scorns your services.</LINE>
+<LINE>Let her alone: speak not of Helena;</LINE>
+<LINE>Take not her part; for, if thou dost intend</LINE>
+<LINE>Never so little show of love to her,</LINE>
+<LINE>Thou shalt aby it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Now she holds me not;</LINE>
+<LINE>Now follow, if thou darest, to try whose right,</LINE>
+<LINE>Of thine or mine, is most in Helena.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Follow! nay, I'll go with thee, cheek by jole.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt LYSANDER and DEMETRIUS</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>You, mistress, all this coil is 'long of you:</LINE>
+<LINE>Nay, go not back.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>I will not trust you, I,</LINE>
+<LINE>Nor longer stay in your curst company.</LINE>
+<LINE>Your hands than mine are quicker for a fray,</LINE>
+<LINE>My legs are longer though, to run away.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>I am amazed, and know not what to say.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>This is thy negligence: still thou mistakest,</LINE>
+<LINE>Or else committ'st thy knaveries wilfully.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Believe me, king of shadows, I mistook.</LINE>
+<LINE>Did not you tell me I should know the man</LINE>
+<LINE>By the Athenian garment be had on?</LINE>
+<LINE>And so far blameless proves my enterprise,</LINE>
+<LINE>That I have 'nointed an Athenian's eyes;</LINE>
+<LINE>And so far am I glad it so did sort</LINE>
+<LINE>As this their jangling I esteem a sport.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Thou see'st these lovers seek a place to fight:</LINE>
+<LINE>Hie therefore, Robin, overcast the night;</LINE>
+<LINE>The starry welkin cover thou anon</LINE>
+<LINE>With drooping fog as black as Acheron,</LINE>
+<LINE>And lead these testy rivals so astray</LINE>
+<LINE>As one come not within another's way.</LINE>
+<LINE>Like to Lysander sometime frame thy tongue,</LINE>
+<LINE>Then stir Demetrius up with bitter wrong;</LINE>
+<LINE>And sometime rail thou like Demetrius;</LINE>
+<LINE>And from each other look thou lead them thus,</LINE>
+<LINE>Till o'er their brows death-counterfeiting sleep</LINE>
+<LINE>With leaden legs and batty wings doth creep:</LINE>
+<LINE>Then crush this herb into Lysander's eye;</LINE>
+<LINE>Whose liquor hath this virtuous property,</LINE>
+<LINE>To take from thence all error with his might,</LINE>
+<LINE>And make his eyeballs roll with wonted sight.</LINE>
+<LINE>When they next wake, all this derision</LINE>
+<LINE>Shall seem a dream and fruitless vision,</LINE>
+<LINE>And back to Athens shall the lovers wend,</LINE>
+<LINE>With league whose date till death shall never end.</LINE>
+<LINE>Whiles I in this affair do thee employ,</LINE>
+<LINE>I'll to my queen and beg her Indian boy;</LINE>
+<LINE>And then I will her charmed eye release</LINE>
+<LINE>From monster's view, and all things shall be peace.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>My fairy lord, this must be done with haste,</LINE>
+<LINE>For night's swift dragons cut the clouds full fast,</LINE>
+<LINE>And yonder shines Aurora's harbinger;</LINE>
+<LINE>At whose approach, ghosts, wandering here and there,</LINE>
+<LINE>Troop home to churchyards: damned spirits all,</LINE>
+<LINE>That in crossways and floods have burial,</LINE>
+<LINE>Already to their wormy beds are gone;</LINE>
+<LINE>For fear lest day should look their shames upon,</LINE>
+<LINE>They willfully themselves exile from light</LINE>
+<LINE>And must for aye consort with black-brow'd night.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>But we are spirits of another sort:</LINE>
+<LINE>I with the morning's love have oft made sport,</LINE>
+<LINE>And, like a forester, the groves may tread,</LINE>
+<LINE>Even till the eastern gate, all fiery-red,</LINE>
+<LINE>Opening on Neptune with fair blessed beams,</LINE>
+<LINE>Turns into yellow gold his salt green streams.</LINE>
+<LINE>But, notwithstanding, haste; make no delay:</LINE>
+<LINE>We may effect this business yet ere day.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Up and down, up and down,</LINE>
+<LINE>I will lead them up and down:</LINE>
+<LINE>I am fear'd in field and town:</LINE>
+<LINE>Goblin, lead them up and down.</LINE>
+<LINE>Here comes one.</LINE>
+</SPEECH>
+
+<STAGEDIR>Re-enter LYSANDER</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Where art thou, proud Demetrius? speak thou now.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Here, villain; drawn and ready. Where art thou?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>I will be with thee straight.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Follow me, then,</LINE>
+<LINE>To plainer ground.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit LYSANDER, as following the voice</STAGEDIR>
+<STAGEDIR>Re-enter DEMETRIUS</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Lysander! speak again:</LINE>
+<LINE>Thou runaway, thou coward, art thou fled?</LINE>
+<LINE>Speak! In some bush? Where dost thou hide thy head?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Thou coward, art thou bragging to the stars,</LINE>
+<LINE>Telling the bushes that thou look'st for wars,</LINE>
+<LINE>And wilt not come? Come, recreant; come, thou child;</LINE>
+<LINE>I'll whip thee with a rod: he is defiled</LINE>
+<LINE>That draws a sword on thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Yea, art thou there?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Follow my voice: we'll try no manhood here.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt</STAGEDIR>
+<STAGEDIR>Re-enter LYSANDER</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>He goes before me and still dares me on:</LINE>
+<LINE>When I come where he calls, then he is gone.</LINE>
+<LINE>The villain is much lighter-heel'd than I:</LINE>
+<LINE>I follow'd fast, but faster he did fly;</LINE>
+<LINE>That fallen am I in dark uneven way,</LINE>
+<LINE>And here will rest me.</LINE>
+<STAGEDIR>Lies down</STAGEDIR>
+<LINE>Come, thou gentle day!</LINE>
+<LINE>For if but once thou show me thy grey light,</LINE>
+<LINE>I'll find Demetrius and revenge this spite.</LINE>
+</SPEECH>
+
+<STAGEDIR>Sleeps</STAGEDIR>
+<STAGEDIR>Re-enter PUCK and DEMETRIUS</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Ho, ho, ho! Coward, why comest thou not?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Abide me, if thou darest; for well I wot</LINE>
+<LINE>Thou runn'st before me, shifting every place,</LINE>
+<LINE>And darest not stand, nor look me in the face.</LINE>
+<LINE>Where art thou now?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Come hither: I am here.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Nay, then, thou mock'st me. Thou shalt buy this dear,</LINE>
+<LINE>If ever I thy face by daylight see:</LINE>
+<LINE>Now, go thy way. Faintness constraineth me</LINE>
+<LINE>To measure out my length on this cold bed.</LINE>
+<LINE>By day's approach look to be visited.</LINE>
+</SPEECH>
+
+<STAGEDIR>Lies down and sleeps</STAGEDIR>
+<STAGEDIR>Re-enter HELENA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>O weary night, O long and tedious night,</LINE>
+<LINE>Abate thy hour! Shine comforts from the east,</LINE>
+<LINE>That I may back to Athens by daylight,</LINE>
+<LINE>From these that my poor company detest:</LINE>
+<LINE>And sleep, that sometimes shuts up sorrow's eye,</LINE>
+<LINE>Steal me awhile from mine own company.</LINE>
+</SPEECH>
+
+<STAGEDIR>Lies down and sleeps</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Yet but three? Come one more;</LINE>
+<LINE>Two of both kinds make up four.</LINE>
+<LINE>Here she comes, curst and sad:</LINE>
+<LINE>Cupid is a knavish lad,</LINE>
+<LINE>Thus to make poor females mad.</LINE>
+</SPEECH>
+
+<STAGEDIR>Re-enter HERMIA</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Never so weary, never so in woe,</LINE>
+<LINE>Bedabbled with the dew and torn with briers,</LINE>
+<LINE>I can no further crawl, no further go;</LINE>
+<LINE>My legs can keep no pace with my desires.</LINE>
+<LINE>Here will I rest me till the break of day.</LINE>
+<LINE>Heavens shield Lysander, if they mean a fray!</LINE>
+</SPEECH>
+
+<STAGEDIR>Lies down and sleeps</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>On the ground</LINE>
+<LINE>Sleep sound:</LINE>
+<LINE>I'll apply</LINE>
+<LINE>To your eye,</LINE>
+<LINE>Gentle lover, remedy.</LINE>
+<STAGEDIR>Squeezing the juice on LYSANDER's eyes</STAGEDIR>
+<LINE>When thou wakest,</LINE>
+<LINE>Thou takest</LINE>
+<LINE>True delight</LINE>
+<LINE>In the sight</LINE>
+<LINE>Of thy former lady's eye:</LINE>
+<LINE>And the country proverb known,</LINE>
+<LINE>That every man should take his own,</LINE>
+<LINE>In your waking shall be shown:</LINE>
+<LINE>Jack shall have Jill;</LINE>
+<LINE>Nought shall go ill;</LINE>
+<LINE>The man shall have his mare again, and all shall be well.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+</SCENE>
+
+</ACT>
+
+<ACT><TITLE>ACT IV</TITLE>
+
+<SCENE><TITLE>SCENE I.  The same. LYSANDER, DEMETRIUS, HELENA, and HERMIA lying asleep.</TITLE>
+<STAGEDIR>Enter TITANIA and BOTTOM; PEASEBLOSSOM, COBWEB, MOTH,
+MUSTARDSEED, and other Fairies attending; OBERON
+behind unseen</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Come, sit thee down upon this flowery bed,</LINE>
+<LINE>While I thy amiable cheeks do coy,</LINE>
+<LINE>And stick musk-roses in thy sleek smooth head,</LINE>
+<LINE>And kiss thy fair large ears, my gentle joy.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Where's Peaseblossom?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PEASEBLOSSOM</SPEAKER>
+<LINE>Ready.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Scratch my head Peaseblossom. Where's Mounsieur Cobweb?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>COBWEB</SPEAKER>
+<LINE>Ready.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Mounsieur Cobweb, good mounsieur, get you your</LINE>
+<LINE>weapons in your hand, and kill me a red-hipped</LINE>
+<LINE>humble-bee on the top of a thistle; and, good</LINE>
+<LINE>mounsieur, bring me the honey-bag. Do not fret</LINE>
+<LINE>yourself too much in the action, mounsieur; and,</LINE>
+<LINE>good mounsieur, have a care the honey-bag break not;</LINE>
+<LINE>I would be loath to have you overflown with a</LINE>
+<LINE>honey-bag, signior. Where's Mounsieur Mustardseed?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MUSTARDSEED</SPEAKER>
+<LINE>Ready.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Give me your neaf, Mounsieur Mustardseed. Pray you,</LINE>
+<LINE>leave your courtesy, good mounsieur.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>MUSTARDSEED</SPEAKER>
+<LINE>What's your Will?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Nothing, good mounsieur, but to help Cavalery Cobweb</LINE>
+<LINE>to scratch. I must to the barber's, monsieur; for</LINE>
+<LINE>methinks I am marvellous hairy about the face; and I</LINE>
+<LINE>am such a tender ass, if my hair do but tickle me,</LINE>
+<LINE>I must scratch.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>What, wilt thou hear some music,</LINE>
+<LINE>my sweet love?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>I have a reasonable good ear in music. Let's have</LINE>
+<LINE>the tongs and the bones.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Or say, sweet love, what thou desirest to eat.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Truly, a peck of provender: I could munch your good</LINE>
+<LINE>dry oats. Methinks I have a great desire to a bottle</LINE>
+<LINE>of hay: good hay, sweet hay, hath no fellow.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>I have a venturous fairy that shall seek</LINE>
+<LINE>The squirrel's hoard, and fetch thee new nuts.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>I had rather have a handful or two of dried peas.</LINE>
+<LINE>But, I pray you, let none of your people stir me: I</LINE>
+<LINE>have an exposition of sleep come upon me.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Sleep thou, and I will wind thee in my arms.</LINE>
+<LINE>Fairies, begone, and be all ways away.</LINE>
+<STAGEDIR>Exeunt fairies</STAGEDIR>
+<LINE>So doth the woodbine the sweet honeysuckle</LINE>
+<LINE>Gently entwist; the female ivy so</LINE>
+<LINE>Enrings the barky fingers of the elm.</LINE>
+<LINE>O, how I love thee! how I dote on thee!</LINE>
+</SPEECH>
+
+<STAGEDIR>They sleep</STAGEDIR>
+<STAGEDIR>Enter PUCK</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE><STAGEDIR>Advancing</STAGEDIR>  Welcome, good Robin.</LINE>
+<LINE>See'st thou this sweet sight?</LINE>
+<LINE>Her dotage now I do begin to pity:</LINE>
+<LINE>For, meeting her of late behind the wood,</LINE>
+<LINE>Seeking sweet favours from this hateful fool,</LINE>
+<LINE>I did upbraid her and fall out with her;</LINE>
+<LINE>For she his hairy temples then had rounded</LINE>
+<LINE>With a coronet of fresh and fragrant flowers;</LINE>
+<LINE>And that same dew, which sometime on the buds</LINE>
+<LINE>Was wont to swell like round and orient pearls,</LINE>
+<LINE>Stood now within the pretty flowerets' eyes</LINE>
+<LINE>Like tears that did their own disgrace bewail.</LINE>
+<LINE>When I had at my pleasure taunted her</LINE>
+<LINE>And she in mild terms begg'd my patience,</LINE>
+<LINE>I then did ask of her her changeling child;</LINE>
+<LINE>Which straight she gave me, and her fairy sent</LINE>
+<LINE>To bear him to my bower in fairy land.</LINE>
+<LINE>And now I have the boy, I will undo</LINE>
+<LINE>This hateful imperfection of her eyes:</LINE>
+<LINE>And, gentle Puck, take this transformed scalp</LINE>
+<LINE>From off the head of this Athenian swain;</LINE>
+<LINE>That, he awaking when the other do,</LINE>
+<LINE>May all to Athens back again repair</LINE>
+<LINE>And think no more of this night's accidents</LINE>
+<LINE>But as the fierce vexation of a dream.</LINE>
+<LINE>But first I will release the fairy queen.</LINE>
+<LINE>Be as thou wast wont to be;</LINE>
+<LINE>See as thou wast wont to see:</LINE>
+<LINE>Dian's bud o'er Cupid's flower</LINE>
+<LINE>Hath such force and blessed power.</LINE>
+<LINE>Now, my Titania; wake you, my sweet queen.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>My Oberon! what visions have I seen!</LINE>
+<LINE>Methought I was enamour'd of an ass.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>There lies your love.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>How came these things to pass?</LINE>
+<LINE>O, how mine eyes do loathe his visage now!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Silence awhile. Robin, take off this head.</LINE>
+<LINE>Titania, music call; and strike more dead</LINE>
+<LINE>Than common sleep of all these five the sense.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Music, ho! music, such as charmeth sleep!</LINE>
+</SPEECH>
+
+<STAGEDIR>Music, still</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Now, when thou wakest, with thine</LINE>
+<LINE>own fool's eyes peep.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Sound, music! Come, my queen, take hands with me,</LINE>
+<LINE>And rock the ground whereon these sleepers be.</LINE>
+<LINE>Now thou and I are new in amity,</LINE>
+<LINE>And will to-morrow midnight solemnly</LINE>
+<LINE>Dance in Duke Theseus' house triumphantly,</LINE>
+<LINE>And bless it to all fair prosperity:</LINE>
+<LINE>There shall the pairs of faithful lovers be</LINE>
+<LINE>Wedded, with Theseus, all in jollity.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Fairy king, attend, and mark:</LINE>
+<LINE>I do hear the morning lark.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Then, my queen, in silence sad,</LINE>
+<LINE>Trip we after the night's shade:</LINE>
+<LINE>We the globe can compass soon,</LINE>
+<LINE>Swifter than the wandering moon.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>Come, my lord, and in our flight</LINE>
+<LINE>Tell me how it came this night</LINE>
+<LINE>That I sleeping here was found</LINE>
+<LINE>With these mortals on the ground.</LINE>
+<STAGEDIR>Exeunt</STAGEDIR>
+</SPEECH>
+
+<STAGEDIR>Horns winded within</STAGEDIR>
+<STAGEDIR>Enter THESEUS, HIPPOLYTA, EGEUS, and train</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Go, one of you, find out the forester;</LINE>
+<LINE>For now our observation is perform'd;</LINE>
+<LINE>And since we have the vaward of the day,</LINE>
+<LINE>My love shall hear the music of my hounds.</LINE>
+<LINE>Uncouple in the western valley; let them go:</LINE>
+<LINE>Dispatch, I say, and find the forester.</LINE>
+<STAGEDIR>Exit an Attendant</STAGEDIR>
+<LINE>We will, fair queen, up to the mountain's top,</LINE>
+<LINE>And mark the musical confusion</LINE>
+<LINE>Of hounds and echo in conjunction.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>I was with Hercules and Cadmus once,</LINE>
+<LINE>When in a wood of Crete they bay'd the bear</LINE>
+<LINE>With hounds of Sparta: never did I hear</LINE>
+<LINE>Such gallant chiding: for, besides the groves,</LINE>
+<LINE>The skies, the fountains, every region near</LINE>
+<LINE>Seem'd all one mutual cry: I never heard</LINE>
+<LINE>So musical a discord, such sweet thunder.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>My hounds are bred out of the Spartan kind,</LINE>
+<LINE>So flew'd, so sanded, and their heads are hung</LINE>
+<LINE>With ears that sweep away the morning dew;</LINE>
+<LINE>Crook-knee'd, and dew-lapp'd like Thessalian bulls;</LINE>
+<LINE>Slow in pursuit, but match'd in mouth like bells,</LINE>
+<LINE>Each under each. A cry more tuneable</LINE>
+<LINE>Was never holla'd to, nor cheer'd with horn,</LINE>
+<LINE>In Crete, in Sparta, nor in Thessaly:</LINE>
+<LINE>Judge when you hear. But, soft! what nymphs are these?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>EGEUS</SPEAKER>
+<LINE>My lord, this is my daughter here asleep;</LINE>
+<LINE>And this, Lysander; this Demetrius is;</LINE>
+<LINE>This Helena, old Nedar's Helena:</LINE>
+<LINE>I wonder of their being here together.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>No doubt they rose up early to observe</LINE>
+<LINE>The rite of May, and hearing our intent,</LINE>
+<LINE>Came here in grace our solemnity.</LINE>
+<LINE>But speak, Egeus; is not this the day</LINE>
+<LINE>That Hermia should give answer of her choice?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>EGEUS</SPEAKER>
+<LINE>It is, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Go, bid the huntsmen wake them with their horns.</LINE>
+<STAGEDIR>Horns and shout within. LYSANDER, DEMETRIUS,
+HELENA, and HERMIA wake and start up</STAGEDIR>
+<LINE>Good morrow, friends. Saint Valentine is past:</LINE>
+<LINE>Begin these wood-birds but to couple now?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Pardon, my lord.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>I pray you all, stand up.</LINE>
+<LINE>I know you two are rival enemies:</LINE>
+<LINE>How comes this gentle concord in the world,</LINE>
+<LINE>That hatred is so far from jealousy,</LINE>
+<LINE>To sleep by hate, and fear no enmity?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>My lord, I shall reply amazedly,</LINE>
+<LINE>Half sleep, half waking: but as yet, I swear,</LINE>
+<LINE>I cannot truly say how I came here;</LINE>
+<LINE>But, as I think,--for truly would I speak,</LINE>
+<LINE>And now do I bethink me, so it is,--</LINE>
+<LINE>I came with Hermia hither: our intent</LINE>
+<LINE>Was to be gone from Athens, where we might,</LINE>
+<LINE>Without the peril of the Athenian law.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>EGEUS</SPEAKER>
+<LINE>Enough, enough, my lord; you have enough:</LINE>
+<LINE>I beg the law, the law, upon his head.</LINE>
+<LINE>They would have stolen away; they would, Demetrius,</LINE>
+<LINE>Thereby to have defeated you and me,</LINE>
+<LINE>You of your wife and me of my consent,</LINE>
+<LINE>Of my consent that she should be your wife.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>My lord, fair Helen told me of their stealth,</LINE>
+<LINE>Of this their purpose hither to this wood;</LINE>
+<LINE>And I in fury hither follow'd them,</LINE>
+<LINE>Fair Helena in fancy following me.</LINE>
+<LINE>But, my good lord, I wot not by what power,--</LINE>
+<LINE>But by some power it is,--my love to Hermia,</LINE>
+<LINE>Melted as the snow, seems to me now</LINE>
+<LINE>As the remembrance of an idle gaud</LINE>
+<LINE>Which in my childhood I did dote upon;</LINE>
+<LINE>And all the faith, the virtue of my heart,</LINE>
+<LINE>The object and the pleasure of mine eye,</LINE>
+<LINE>Is only Helena. To her, my lord,</LINE>
+<LINE>Was I betroth'd ere I saw Hermia:</LINE>
+<LINE>But, like in sickness, did I loathe this food;</LINE>
+<LINE>But, as in health, come to my natural taste,</LINE>
+<LINE>Now I do wish it, love it, long for it,</LINE>
+<LINE>And will for evermore be true to it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Fair lovers, you are fortunately met:</LINE>
+<LINE>Of this discourse we more will hear anon.</LINE>
+<LINE>Egeus, I will overbear your will;</LINE>
+<LINE>For in the temple by and by with us</LINE>
+<LINE>These couples shall eternally be knit:</LINE>
+<LINE>And, for the morning now is something worn,</LINE>
+<LINE>Our purposed hunting shall be set aside.</LINE>
+<LINE>Away with us to Athens; three and three,</LINE>
+<LINE>We'll hold a feast in great solemnity.</LINE>
+<LINE>Come, Hippolyta.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt THESEUS, HIPPOLYTA, EGEUS, and train</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>These things seem small and undistinguishable,</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Methinks I see these things with parted eye,</LINE>
+<LINE>When every thing seems double.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>So methinks:</LINE>
+<LINE>And I have found Demetrius like a jewel,</LINE>
+<LINE>Mine own, and not mine own.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Are you sure</LINE>
+<LINE>That we are awake? It seems to me</LINE>
+<LINE>That yet we sleep, we dream. Do not you think</LINE>
+<LINE>The duke was here, and bid us follow him?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HERMIA</SPEAKER>
+<LINE>Yea; and my father.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HELENA</SPEAKER>
+<LINE>And Hippolyta.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>And he did bid us follow to the temple.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Why, then, we are awake: let's follow him</LINE>
+<LINE>And by the way let us recount our dreams.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE><STAGEDIR>Awaking</STAGEDIR>  When my cue comes, call me, and I will</LINE>
+<LINE>answer: my next is, 'Most fair Pyramus.' Heigh-ho!</LINE>
+<LINE>Peter Quince! Flute, the bellows-mender! Snout,</LINE>
+<LINE>the tinker! Starveling! God's my life, stolen</LINE>
+<LINE>hence, and left me asleep! I have had a most rare</LINE>
+<LINE>vision. I have had a dream, past the wit of man to</LINE>
+<LINE>say what dream it was: man is but an ass, if he go</LINE>
+<LINE>about to expound this dream. Methought I was--there</LINE>
+<LINE>is no man can tell what. Methought I was,--and</LINE>
+<LINE>methought I had,--but man is but a patched fool, if</LINE>
+<LINE>he will offer to say what methought I had. The eye</LINE>
+<LINE>of man hath not heard, the ear of man hath not</LINE>
+<LINE>seen, man's hand is not able to taste, his tongue</LINE>
+<LINE>to conceive, nor his heart to report, what my dream</LINE>
+<LINE>was. I will get Peter Quince to write a ballad of</LINE>
+<LINE>this dream: it shall be called Bottom's Dream,</LINE>
+<LINE>because it hath no bottom; and I will sing it in the</LINE>
+<LINE>latter end of a play, before the duke:</LINE>
+<LINE>peradventure, to make it the more gracious, I shall</LINE>
+<LINE>sing it at her death.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+</SCENE>
+
+<SCENE><TITLE>SCENE II.  Athens. QUINCE'S house.</TITLE>
+<STAGEDIR>Enter QUINCE, FLUTE, SNOUT, and STARVELING</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Have you sent to Bottom's house? is he come home yet?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>STARVELING</SPEAKER>
+<LINE>He cannot be heard of. Out of doubt he is</LINE>
+<LINE>transported.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FLUTE</SPEAKER>
+<LINE>If he come not, then the play is marred: it goes</LINE>
+<LINE>not forward, doth it?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>It is not possible: you have not a man in all</LINE>
+<LINE>Athens able to discharge Pyramus but he.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FLUTE</SPEAKER>
+<LINE>No, he hath simply the best wit of any handicraft</LINE>
+<LINE>man in Athens.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Yea and the best person too; and he is a very</LINE>
+<LINE>paramour for a sweet voice.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FLUTE</SPEAKER>
+<LINE>You must say 'paragon:' a paramour is, God bless us,</LINE>
+<LINE>a thing of naught.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter SNUG</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>SNUG</SPEAKER>
+<LINE>Masters, the duke is coming from the temple, and</LINE>
+<LINE>there is two or three lords and ladies more married:</LINE>
+<LINE>if our sport had gone forward, we had all been made</LINE>
+<LINE>men.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>FLUTE</SPEAKER>
+<LINE>O sweet bully Bottom! Thus hath he lost sixpence a</LINE>
+<LINE>day during his life; he could not have 'scaped</LINE>
+<LINE>sixpence a day: an the duke had not given him</LINE>
+<LINE>sixpence a day for playing Pyramus, I'll be hanged;</LINE>
+<LINE>he would have deserved it: sixpence a day in</LINE>
+<LINE>Pyramus, or nothing.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter BOTTOM</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Where are these lads? where are these hearts?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Bottom! O most courageous day! O most happy hour!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Masters, I am to discourse wonders: but ask me not</LINE>
+<LINE>what; for if I tell you, I am no true Athenian. I</LINE>
+<LINE>will tell you every thing, right as it fell out.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>QUINCE</SPEAKER>
+<LINE>Let us hear, sweet Bottom.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE>Not a word of me. All that I will tell you is, that</LINE>
+<LINE>the duke hath dined. Get your apparel together,</LINE>
+<LINE>good strings to your beards, new ribbons to your</LINE>
+<LINE>pumps; meet presently at the palace; every man look</LINE>
+<LINE>o'er his part; for the short and the long is, our</LINE>
+<LINE>play is preferred. In any case, let Thisby have</LINE>
+<LINE>clean linen; and let not him that plays the lion</LINE>
+<LINE>pair his nails, for they shall hang out for the</LINE>
+<LINE>lion's claws. And, most dear actors, eat no onions</LINE>
+<LINE>nor garlic, for we are to utter sweet breath; and I</LINE>
+<LINE>do not doubt but to hear them say, it is a sweet</LINE>
+<LINE>comedy. No more words: away! go, away!</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt</STAGEDIR>
+</SCENE>
+
+</ACT>
+
+<ACT><TITLE>ACT V</TITLE>
+
+<SCENE><TITLE>SCENE I.  Athens. The palace of THESEUS.</TITLE>
+<STAGEDIR>Enter THESEUS, HIPPOLYTA, PHILOSTRATE, Lords and
+Attendants</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>'Tis strange my Theseus, that these</LINE>
+<LINE>lovers speak of.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>More strange than true: I never may believe</LINE>
+<LINE>These antique fables, nor these fairy toys.</LINE>
+<LINE>Lovers and madmen have such seething brains,</LINE>
+<LINE>Such shaping fantasies, that apprehend</LINE>
+<LINE>More than cool reason ever comprehends.</LINE>
+<LINE>The lunatic, the lover and the poet</LINE>
+<LINE>Are of imagination all compact:</LINE>
+<LINE>One sees more devils than vast hell can hold,</LINE>
+<LINE>That is, the madman: the lover, all as frantic,</LINE>
+<LINE>Sees Helen's beauty in a brow of Egypt:</LINE>
+<LINE>The poet's eye, in fine frenzy rolling,</LINE>
+<LINE>Doth glance from heaven to earth, from earth to heaven;</LINE>
+<LINE>And as imagination bodies forth</LINE>
+<LINE>The forms of things unknown, the poet's pen</LINE>
+<LINE>Turns them to shapes and gives to airy nothing</LINE>
+<LINE>A local habitation and a name.</LINE>
+<LINE>Such tricks hath strong imagination,</LINE>
+<LINE>That if it would but apprehend some joy,</LINE>
+<LINE>It comprehends some bringer of that joy;</LINE>
+<LINE>Or in the night, imagining some fear,</LINE>
+<LINE>How easy is a bush supposed a bear!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>But all the story of the night told over,</LINE>
+<LINE>And all their minds transfigured so together,</LINE>
+<LINE>More witnesseth than fancy's images</LINE>
+<LINE>And grows to something of great constancy;</LINE>
+<LINE>But, howsoever, strange and admirable.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Here come the lovers, full of joy and mirth.</LINE>
+<STAGEDIR>Enter LYSANDER, DEMETRIUS, HERMIA, and HELENA</STAGEDIR>
+<LINE>Joy, gentle friends! joy and fresh days of love</LINE>
+<LINE>Accompany your hearts!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>More than to us</LINE>
+<LINE>Wait in your royal walks, your board, your bed!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Come now; what masques, what dances shall we have,</LINE>
+<LINE>To wear away this long age of three hours</LINE>
+<LINE>Between our after-supper and bed-time?</LINE>
+<LINE>Where is our usual manager of mirth?</LINE>
+<LINE>What revels are in hand? Is there no play,</LINE>
+<LINE>To ease the anguish of a torturing hour?</LINE>
+<LINE>Call Philostrate.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PHILOSTRATE</SPEAKER>
+<LINE>Here, mighty Theseus.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Say, what abridgement have you for this evening?</LINE>
+<LINE>What masque? what music? How shall we beguile</LINE>
+<LINE>The lazy time, if not with some delight?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PHILOSTRATE</SPEAKER>
+<LINE>There is a brief how many sports are ripe:</LINE>
+<LINE>Make choice of which your highness will see first.</LINE>
+</SPEECH>
+
+<STAGEDIR>Giving a paper</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE><STAGEDIR>Reads</STAGEDIR>  'The battle with the Centaurs, to be sung</LINE>
+<LINE>By an Athenian eunuch to the harp.'</LINE>
+<LINE>We'll none of that: that have I told my love,</LINE>
+<LINE>In glory of my kinsman Hercules.</LINE>
+<STAGEDIR>Reads</STAGEDIR>
+<LINE>'The riot of the tipsy Bacchanals,</LINE>
+<LINE>Tearing the Thracian singer in their rage.'</LINE>
+<LINE>That is an old device; and it was play'd</LINE>
+<LINE>When I from Thebes came last a conqueror.</LINE>
+<STAGEDIR>Reads</STAGEDIR>
+<LINE>'The thrice three Muses mourning for the death</LINE>
+<LINE>Of Learning, late deceased in beggary.'</LINE>
+<LINE>That is some satire, keen and critical,</LINE>
+<LINE>Not sorting with a nuptial ceremony.</LINE>
+<STAGEDIR>Reads</STAGEDIR>
+<LINE>'A tedious brief scene of young Pyramus</LINE>
+<LINE>And his love Thisbe; very tragical mirth.'</LINE>
+<LINE>Merry and tragical! tedious and brief!</LINE>
+<LINE>That is, hot ice and wondrous strange snow.</LINE>
+<LINE>How shall we find the concord of this discord?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PHILOSTRATE</SPEAKER>
+<LINE>A play there is, my lord, some ten words long,</LINE>
+<LINE>Which is as brief as I have known a play;</LINE>
+<LINE>But by ten words, my lord, it is too long,</LINE>
+<LINE>Which makes it tedious; for in all the play</LINE>
+<LINE>There is not one word apt, one player fitted:</LINE>
+<LINE>And tragical, my noble lord, it is;</LINE>
+<LINE>For Pyramus therein doth kill himself.</LINE>
+<LINE>Which, when I saw rehearsed, I must confess,</LINE>
+<LINE>Made mine eyes water; but more merry tears</LINE>
+<LINE>The passion of loud laughter never shed.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>What are they that do play it?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PHILOSTRATE</SPEAKER>
+<LINE>Hard-handed men that work in Athens here,</LINE>
+<LINE>Which never labour'd in their minds till now,</LINE>
+<LINE>And now have toil'd their unbreathed memories</LINE>
+<LINE>With this same play, against your nuptial.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>And we will hear it.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>PHILOSTRATE</SPEAKER>
+<LINE>No, my noble lord;</LINE>
+<LINE>It is not for you: I have heard it over,</LINE>
+<LINE>And it is nothing, nothing in the world;</LINE>
+<LINE>Unless you can find sport in their intents,</LINE>
+<LINE>Extremely stretch'd and conn'd with cruel pain,</LINE>
+<LINE>To do you service.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>I will hear that play;</LINE>
+<LINE>For never anything can be amiss,</LINE>
+<LINE>When simpleness and duty tender it.</LINE>
+<LINE>Go, bring them in: and take your places, ladies.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit PHILOSTRATE</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>I love not to see wretchedness o'er charged</LINE>
+<LINE>And duty in his service perishing.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Why, gentle sweet, you shall see no such thing.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>He says they can do nothing in this kind.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>The kinder we, to give them thanks for nothing.</LINE>
+<LINE>Our sport shall be to take what they mistake:</LINE>
+<LINE>And what poor duty cannot do, noble respect</LINE>
+<LINE>Takes it in might, not merit.</LINE>
+<LINE>Where I have come, great clerks have purposed</LINE>
+<LINE>To greet me with premeditated welcomes;</LINE>
+<LINE>Where I have seen them shiver and look pale,</LINE>
+<LINE>Make periods in the midst of sentences,</LINE>
+<LINE>Throttle their practised accent in their fears</LINE>
+<LINE>And in conclusion dumbly have broke off,</LINE>
+<LINE>Not paying me a welcome. Trust me, sweet,</LINE>
+<LINE>Out of this silence yet I pick'd a welcome;</LINE>
+<LINE>And in the modesty of fearful duty</LINE>
+<LINE>I read as much as from the rattling tongue</LINE>
+<LINE>Of saucy and audacious eloquence.</LINE>
+<LINE>Love, therefore, and tongue-tied simplicity</LINE>
+<LINE>In least speak most, to my capacity.</LINE>
+</SPEECH>
+
+<STAGEDIR>Re-enter PHILOSTRATE</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PHILOSTRATE</SPEAKER>
+<LINE>So please your grace, the Prologue is address'd.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Let him approach.</LINE>
+</SPEECH>
+
+<STAGEDIR>Flourish of trumpets</STAGEDIR>
+<STAGEDIR>Enter QUINCE for the Prologue</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>Prologue</SPEAKER>
+<LINE>If we offend, it is with our good will.</LINE>
+<LINE>That you should think, we come not to offend,</LINE>
+<LINE>But with good will. To show our simple skill,</LINE>
+<LINE>That is the true beginning of our end.</LINE>
+<LINE>Consider then we come but in despite.</LINE>
+<LINE>We do not come as minding to contest you,</LINE>
+<LINE>Our true intent is. All for your delight</LINE>
+<LINE>We are not here. That you should here repent you,</LINE>
+<LINE>The actors are at hand and by their show</LINE>
+<LINE>You shall know all that you are like to know.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>This fellow doth not stand upon points.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>He hath rid his prologue like a rough colt; he knows</LINE>
+<LINE>not the stop. A good moral, my lord: it is not</LINE>
+<LINE>enough to speak, but to speak true.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>Indeed he hath played on his prologue like a child</LINE>
+<LINE>on a recorder; a sound, but not in government.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>His speech, was like a tangled chain; nothing</LINE>
+<LINE>impaired, but all disordered. Who is next?</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter Pyramus and Thisbe, Wall, Moonshine, and Lion</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>Prologue</SPEAKER>
+<LINE>Gentles, perchance you wonder at this show;</LINE>
+<LINE>But wonder on, till truth make all things plain.</LINE>
+<LINE>This man is Pyramus, if you would know;</LINE>
+<LINE>This beauteous lady Thisby is certain.</LINE>
+<LINE>This man, with lime and rough-cast, doth present</LINE>
+<LINE>Wall, that vile Wall which did these lovers sunder;</LINE>
+<LINE>And through Wall's chink, poor souls, they are content</LINE>
+<LINE>To whisper. At the which let no man wonder.</LINE>
+<LINE>This man, with lanthorn, dog, and bush of thorn,</LINE>
+<LINE>Presenteth Moonshine; for, if you will know,</LINE>
+<LINE>By moonshine did these lovers think no scorn</LINE>
+<LINE>To meet at Ninus' tomb, there, there to woo.</LINE>
+<LINE>This grisly beast, which Lion hight by name,</LINE>
+<LINE>The trusty Thisby, coming first by night,</LINE>
+<LINE>Did scare away, or rather did affright;</LINE>
+<LINE>And, as she fled, her mantle she did fall,</LINE>
+<LINE>Which Lion vile with bloody mouth did stain.</LINE>
+<LINE>Anon comes Pyramus, sweet youth and tall,</LINE>
+<LINE>And finds his trusty Thisby's mantle slain:</LINE>
+<LINE>Whereat, with blade, with bloody blameful blade,</LINE>
+<LINE>He bravely broach'd is boiling bloody breast;</LINE>
+<LINE>And Thisby, tarrying in mulberry shade,</LINE>
+<LINE>His dagger drew, and died. For all the rest,</LINE>
+<LINE>Let Lion, Moonshine, Wall, and lovers twain</LINE>
+<LINE>At large discourse, while here they do remain.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt Prologue, Thisbe, Lion, and Moonshine</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>I wonder if the lion be to speak.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>No wonder, my lord: one lion may, when many asses do.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Wall</SPEAKER>
+<LINE>In this same interlude it doth befall</LINE>
+<LINE>That I, one Snout by name, present a wall;</LINE>
+<LINE>And such a wall, as I would have you think,</LINE>
+<LINE>That had in it a crannied hole or chink,</LINE>
+<LINE>Through which the lovers, Pyramus and Thisby,</LINE>
+<LINE>Did whisper often very secretly.</LINE>
+<LINE>This loam, this rough-cast and this stone doth show</LINE>
+<LINE>That I am that same wall; the truth is so:</LINE>
+<LINE>And this the cranny is, right and sinister,</LINE>
+<LINE>Through which the fearful lovers are to whisper.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Would you desire lime and hair to speak better?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>It is the wittiest partition that ever I heard</LINE>
+<LINE>discourse, my lord.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter Pyramus</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Pyramus draws near the wall: silence!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Pyramus</SPEAKER>
+<LINE>O grim-look'd night! O night with hue so black!</LINE>
+<LINE>O night, which ever art when day is not!</LINE>
+<LINE>O night, O night! alack, alack, alack,</LINE>
+<LINE>I fear my Thisby's promise is forgot!</LINE>
+<LINE>And thou, O wall, O sweet, O lovely wall,</LINE>
+<LINE>That stand'st between her father's ground and mine!</LINE>
+<LINE>Thou wall, O wall, O sweet and lovely wall,</LINE>
+<LINE>Show me thy chink, to blink through with mine eyne!</LINE>
+<STAGEDIR>Wall holds up his fingers</STAGEDIR>
+<LINE>Thanks, courteous wall: Jove shield thee well for this!</LINE>
+<LINE>But what see I? No Thisby do I see.</LINE>
+<LINE>O wicked wall, through whom I see no bliss!</LINE>
+<LINE>Cursed be thy stones for thus deceiving me!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>The wall, methinks, being sensible, should curse again.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Pyramus</SPEAKER>
+<LINE>No, in truth, sir, he should not. 'Deceiving me'</LINE>
+<LINE>is Thisby's cue: she is to enter now, and I am to</LINE>
+<LINE>spy her through the wall. You shall see, it will</LINE>
+<LINE>fall pat as I told you. Yonder she comes.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter Thisbe</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>Thisbe</SPEAKER>
+<LINE>O wall, full often hast thou heard my moans,</LINE>
+<LINE>For parting my fair Pyramus and me!</LINE>
+<LINE>My cherry lips have often kiss'd thy stones,</LINE>
+<LINE>Thy stones with lime and hair knit up in thee.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Pyramus</SPEAKER>
+<LINE>I see a voice: now will I to the chink,</LINE>
+<LINE>To spy an I can hear my Thisby's face. Thisby!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Thisbe</SPEAKER>
+<LINE>My love thou art, my love I think.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Pyramus</SPEAKER>
+<LINE>Think what thou wilt, I am thy lover's grace;</LINE>
+<LINE>And, like Limander, am I trusty still.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Thisbe</SPEAKER>
+<LINE>And I like Helen, till the Fates me kill.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Pyramus</SPEAKER>
+<LINE>Not Shafalus to Procrus was so true.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Thisbe</SPEAKER>
+<LINE>As Shafalus to Procrus, I to you.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Pyramus</SPEAKER>
+<LINE>O kiss me through the hole of this vile wall!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Thisbe</SPEAKER>
+<LINE>I kiss the wall's hole, not your lips at all.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Pyramus</SPEAKER>
+<LINE>Wilt thou at Ninny's tomb meet me straightway?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Thisbe</SPEAKER>
+<LINE>'Tide life, 'tide death, I come without delay.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt Pyramus and Thisbe</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>Wall</SPEAKER>
+<LINE>Thus have I, Wall, my part discharged so;</LINE>
+<LINE>And, being done, thus Wall away doth go.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Now is the mural down between the two neighbours.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>No remedy, my lord, when walls are so wilful to hear</LINE>
+<LINE>without warning.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>This is the silliest stuff that ever I heard.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>The best in this kind are but shadows; and the worst</LINE>
+<LINE>are no worse, if imagination amend them.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>It must be your imagination then, and not theirs.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>If we imagine no worse of them than they of</LINE>
+<LINE>themselves, they may pass for excellent men. Here</LINE>
+<LINE>come two noble beasts in, a man and a lion.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter Lion and Moonshine</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>Lion</SPEAKER>
+<LINE>You, ladies, you, whose gentle hearts do fear</LINE>
+<LINE>The smallest monstrous mouse that creeps on floor,</LINE>
+<LINE>May now perchance both quake and tremble here,</LINE>
+<LINE>When lion rough in wildest rage doth roar.</LINE>
+<LINE>Then know that I, one Snug the joiner, am</LINE>
+<LINE>A lion-fell, nor else no lion's dam;</LINE>
+<LINE>For, if I should as lion come in strife</LINE>
+<LINE>Into this place, 'twere pity on my life.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>A very gentle beast, of a good conscience.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>The very best at a beast, my lord, that e'er I saw.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>This lion is a very fox for his valour.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>True; and a goose for his discretion.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Not so, my lord; for his valour cannot carry his</LINE>
+<LINE>discretion; and the fox carries the goose.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>His discretion, I am sure, cannot carry his valour;</LINE>
+<LINE>for the goose carries not the fox. It is well:</LINE>
+<LINE>leave it to his discretion, and let us listen to the moon.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Moonshine</SPEAKER>
+<LINE>This lanthorn doth the horned moon present;--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>He should have worn the horns on his head.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>He is no crescent, and his horns are</LINE>
+<LINE>invisible within the circumference.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Moonshine</SPEAKER>
+<LINE>This lanthorn doth the horned moon present;</LINE>
+<LINE>Myself the man i' the moon do seem to be.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>This is the greatest error of all the rest: the man</LINE>
+<LINE>should be put into the lanthorn. How is it else the</LINE>
+<LINE>man i' the moon?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>He dares not come there for the candle; for, you</LINE>
+<LINE>see, it is already in snuff.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>I am aweary of this moon: would he would change!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>It appears, by his small light of discretion, that</LINE>
+<LINE>he is in the wane; but yet, in courtesy, in all</LINE>
+<LINE>reason, we must stay the time.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Proceed, Moon.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Moonshine</SPEAKER>
+<LINE>All that I have to say, is, to tell you that the</LINE>
+<LINE>lanthorn is the moon; I, the man in the moon; this</LINE>
+<LINE>thorn-bush, my thorn-bush; and this dog, my dog.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Why, all these should be in the lanthorn; for all</LINE>
+<LINE>these are in the moon. But, silence! here comes Thisbe.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter Thisbe</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>Thisbe</SPEAKER>
+<LINE>This is old Ninny's tomb. Where is my love?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Lion</SPEAKER>
+<LINE><STAGEDIR>Roaring</STAGEDIR>  Oh--</LINE>
+</SPEECH>
+
+<STAGEDIR>Thisbe runs off</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Well roared, Lion.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Well run, Thisbe.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>Well shone, Moon. Truly, the moon shines with a</LINE>
+<LINE>good grace.</LINE>
+</SPEECH>
+
+<STAGEDIR>The Lion shakes Thisbe's mantle, and exit</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Well moused, Lion.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>And so the lion vanished.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>And then came Pyramus.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter Pyramus</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>Pyramus</SPEAKER>
+<LINE>Sweet Moon, I thank thee for thy sunny beams;</LINE>
+<LINE>I thank thee, Moon, for shining now so bright;</LINE>
+<LINE>For, by thy gracious, golden, glittering gleams,</LINE>
+<LINE>I trust to take of truest Thisby sight.</LINE>
+<LINE>But stay, O spite!</LINE>
+<LINE>But mark, poor knight,</LINE>
+<LINE>What dreadful dole is here!</LINE>
+<LINE>Eyes, do you see?</LINE>
+<LINE>How can it be?</LINE>
+<LINE>O dainty duck! O dear!</LINE>
+<LINE>Thy mantle good,</LINE>
+<LINE>What, stain'd with blood!</LINE>
+<LINE>Approach, ye Furies fell!</LINE>
+<LINE>O Fates, come, come,</LINE>
+<LINE>Cut thread and thrum;</LINE>
+<LINE>Quail, crush, conclude, and quell!</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>This passion, and the death of a dear friend, would</LINE>
+<LINE>go near to make a man look sad.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>Beshrew my heart, but I pity the man.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Pyramus</SPEAKER>
+<LINE>O wherefore, Nature, didst thou lions frame?</LINE>
+<LINE>Since lion vile hath here deflower'd my dear:</LINE>
+<LINE>Which is--no, no--which was the fairest dame</LINE>
+<LINE>That lived, that loved, that liked, that look'd</LINE>
+<LINE>with cheer.</LINE>
+<LINE>Come, tears, confound;</LINE>
+<LINE>Out, sword, and wound</LINE>
+<LINE>The pap of Pyramus;</LINE>
+<LINE>Ay, that left pap,</LINE>
+<LINE>Where heart doth hop:</LINE>
+<STAGEDIR>Stabs himself</STAGEDIR>
+<LINE>Thus die I, thus, thus, thus.</LINE>
+<LINE>Now am I dead,</LINE>
+<LINE>Now am I fled;</LINE>
+<LINE>My soul is in the sky:</LINE>
+<LINE>Tongue, lose thy light;</LINE>
+<LINE>Moon take thy flight:</LINE>
+<STAGEDIR>Exit Moonshine</STAGEDIR>
+<LINE>Now die, die, die, die, die.</LINE>
+</SPEECH>
+
+<STAGEDIR>Dies</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>No die, but an ace, for him; for he is but one.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>Less than an ace, man; for he is dead; he is nothing.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>With the help of a surgeon he might yet recover, and</LINE>
+<LINE>prove an ass.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>How chance Moonshine is gone before Thisbe comes</LINE>
+<LINE>back and finds her lover?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>She will find him by starlight. Here she comes; and</LINE>
+<LINE>her passion ends the play.</LINE>
+</SPEECH>
+
+<STAGEDIR>Re-enter Thisbe</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>HIPPOLYTA</SPEAKER>
+<LINE>Methinks she should not use a long one for such a</LINE>
+<LINE>Pyramus: I hope she will be brief.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>A mote will turn the balance, which Pyramus, which</LINE>
+<LINE>Thisbe, is the better; he for a man, God warrant us;</LINE>
+<LINE>she for a woman, God bless us.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>LYSANDER</SPEAKER>
+<LINE>She hath spied him already with those sweet eyes.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>And thus she means, videlicet:--</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>Thisbe</SPEAKER>
+<LINE>Asleep, my love?</LINE>
+<LINE>What, dead, my dove?</LINE>
+<LINE>O Pyramus, arise!</LINE>
+<LINE>Speak, speak. Quite dumb?</LINE>
+<LINE>Dead, dead? A tomb</LINE>
+<LINE>Must cover thy sweet eyes.</LINE>
+<LINE>These My lips,</LINE>
+<LINE>This cherry nose,</LINE>
+<LINE>These yellow cowslip cheeks,</LINE>
+<LINE>Are gone, are gone:</LINE>
+<LINE>Lovers, make moan:</LINE>
+<LINE>His eyes were green as leeks.</LINE>
+<LINE>O Sisters Three,</LINE>
+<LINE>Come, come to me,</LINE>
+<LINE>With hands as pale as milk;</LINE>
+<LINE>Lay them in gore,</LINE>
+<LINE>Since you have shore</LINE>
+<LINE>With shears his thread of silk.</LINE>
+<LINE>Tongue, not a word:</LINE>
+<LINE>Come, trusty sword;</LINE>
+<LINE>Come, blade, my breast imbrue:</LINE>
+<STAGEDIR>Stabs herself</STAGEDIR>
+<LINE>And, farewell, friends;</LINE>
+<LINE>Thus Thisby ends:</LINE>
+<LINE>Adieu, adieu, adieu.</LINE>
+</SPEECH>
+
+<STAGEDIR>Dies</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>Moonshine and Lion are left to bury the dead.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>DEMETRIUS</SPEAKER>
+<LINE>Ay, and Wall too.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>BOTTOM</SPEAKER>
+<LINE><STAGEDIR>Starting up</STAGEDIR>  No assure you; the wall is down that</LINE>
+<LINE>parted their fathers. Will it please you to see the</LINE>
+<LINE>epilogue, or to hear a Bergomask dance between two</LINE>
+<LINE>of our company?</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>THESEUS</SPEAKER>
+<LINE>No epilogue, I pray you; for your play needs no</LINE>
+<LINE>excuse. Never excuse; for when the players are all</LINE>
+<LINE>dead, there needs none to be blamed. Marry, if he</LINE>
+<LINE>that writ it had played Pyramus and hanged himself</LINE>
+<LINE>in Thisbe's garter, it would have been a fine</LINE>
+<LINE>tragedy: and so it is, truly; and very notably</LINE>
+<LINE>discharged. But come, your Bergomask: let your</LINE>
+<LINE>epilogue alone.</LINE>
+<STAGEDIR>A dance</STAGEDIR>
+<LINE>The iron tongue of midnight hath told twelve:</LINE>
+<LINE>Lovers, to bed; 'tis almost fairy time.</LINE>
+<LINE>I fear we shall out-sleep the coming morn</LINE>
+<LINE>As much as we this night have overwatch'd.</LINE>
+<LINE>This palpable-gross play hath well beguiled</LINE>
+<LINE>The heavy gait of night. Sweet friends, to bed.</LINE>
+<LINE>A fortnight hold we this solemnity,</LINE>
+<LINE>In nightly revels and new jollity.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt</STAGEDIR>
+<STAGEDIR>Enter PUCK</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>Now the hungry lion roars,</LINE>
+<LINE>And the wolf behowls the moon;</LINE>
+<LINE>Whilst the heavy ploughman snores,</LINE>
+<LINE>All with weary task fordone.</LINE>
+<LINE>Now the wasted brands do glow,</LINE>
+<LINE>Whilst the screech-owl, screeching loud,</LINE>
+<LINE>Puts the wretch that lies in woe</LINE>
+<LINE>In remembrance of a shroud.</LINE>
+<LINE>Now it is the time of night</LINE>
+<LINE>That the graves all gaping wide,</LINE>
+<LINE>Every one lets forth his sprite,</LINE>
+<LINE>In the church-way paths to glide:</LINE>
+<LINE>And we fairies, that do run</LINE>
+<LINE>By the triple Hecate's team,</LINE>
+<LINE>From the presence of the sun,</LINE>
+<LINE>Following darkness like a dream,</LINE>
+<LINE>Now are frolic: not a mouse</LINE>
+<LINE>Shall disturb this hallow'd house:</LINE>
+<LINE>I am sent with broom before,</LINE>
+<LINE>To sweep the dust behind the door.</LINE>
+</SPEECH>
+
+<STAGEDIR>Enter OBERON and TITANIA with their train</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Through the house give gathering light,</LINE>
+<LINE>By the dead and drowsy fire:</LINE>
+<LINE>Every elf and fairy sprite</LINE>
+<LINE>Hop as light as bird from brier;</LINE>
+<LINE>And this ditty, after me,</LINE>
+<LINE>Sing, and dance it trippingly.</LINE>
+</SPEECH>
+
+<SPEECH>
+<SPEAKER>TITANIA</SPEAKER>
+<LINE>First, rehearse your song by rote</LINE>
+<LINE>To each word a warbling note:</LINE>
+<LINE>Hand in hand, with fairy grace,</LINE>
+<LINE>Will we sing, and bless this place.</LINE>
+</SPEECH>
+
+<STAGEDIR>Song and dance</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>OBERON</SPEAKER>
+<LINE>Now, until the break of day,</LINE>
+<LINE>Through this house each fairy stray.</LINE>
+<LINE>To the best bride-bed will we,</LINE>
+<LINE>Which by us shall blessed be;</LINE>
+<LINE>And the issue there create</LINE>
+<LINE>Ever shall be fortunate.</LINE>
+<LINE>So shall all the couples three</LINE>
+<LINE>Ever true in loving be;</LINE>
+<LINE>And the blots of Nature's hand</LINE>
+<LINE>Shall not in their issue stand;</LINE>
+<LINE>Never mole, hare lip, nor scar,</LINE>
+<LINE>Nor mark prodigious, such as are</LINE>
+<LINE>Despised in nativity,</LINE>
+<LINE>Shall upon their children be.</LINE>
+<LINE>With this field-dew consecrate,</LINE>
+<LINE>Every fairy take his gait;</LINE>
+<LINE>And each several chamber bless,</LINE>
+<LINE>Through this palace, with sweet peace;</LINE>
+<LINE>And the owner of it blest</LINE>
+<LINE>Ever shall in safety rest.</LINE>
+<LINE>Trip away; make no stay;</LINE>
+<LINE>Meet me all by break of day.</LINE>
+</SPEECH>
+
+<STAGEDIR>Exeunt OBERON, TITANIA, and train</STAGEDIR>
+
+<SPEECH>
+<SPEAKER>PUCK</SPEAKER>
+<LINE>If we shadows have offended,</LINE>
+<LINE>Think but this, and all is mended,</LINE>
+<LINE>That you have but slumber'd here</LINE>
+<LINE>While these visions did appear.</LINE>
+<LINE>And this weak and idle theme,</LINE>
+<LINE>No more yielding but a dream,</LINE>
+<LINE>Gentles, do not reprehend:</LINE>
+<LINE>if you pardon, we will mend:</LINE>
+<LINE>And, as I am an honest Puck,</LINE>
+<LINE>If we have unearned luck</LINE>
+<LINE>Now to 'scape the serpent's tongue,</LINE>
+<LINE>We will make amends ere long;</LINE>
+<LINE>Else the Puck a liar call;</LINE>
+<LINE>So, good night unto you all.</LINE>
+<LINE>Give me your hands, if we be friends,</LINE>
+<LINE>And Robin shall restore amends.</LINE>
+</SPEECH>
+</SCENE>
+</ACT>
+</PLAY>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,34 @@
+2001-06-14  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* VERSION: Version 1.40 released.
+
+2001-05-24  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* VERSION: Version 1.39 released.
+
+2001-05-21  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* VERSION: Version 1.38 released.
+
+2001-04-20  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* VERSION: Version 1.37 released.
+
+2001-04-15  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* Makefile, README: Make distribution hacks
+
+2001-04-04  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* VERSION: Version 1.36 released.
+
+2001-04-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* .cvsignore, Makefile: Misc. cleanup in preparation for making a distrib
+
+2001-04-02  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* BUGS, Makefile, README.CVS, TODO, VERSION: New file.
+
+	* Makefile: Make common files
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,189 @@
+## Process this file with automake to produce Makefile.in
+
+all:
+
+tests:
+	@echo -n '## Running docbook tests: '
+	$(MAKE) single
+	$(MAKE) xtchunk
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = README VERSION
+
+full: tests htmltests xhtmltests fotests
+
+#
+# a single tests to check that stuff ain't broken
+#
+single:
+	@(echo > .memdump)
+	@(for i in $(srcdir)/test/gdp-handbook.xml ; do \
+	  echo -n "$(basename $$i) : html " ; \
+	  out=$(srcdir)/result/html/`basename $$i .xml`.tst; \
+	  html=$(srcdir)/result/html/`basename $$i .xml`.html; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet \
+		$(srcdir)/html/docbook.xsl $$i > $$out ; \
+	    if [ -f $$html ] ; then \
+	  	grep -v id < $$html > $$html.noid ; \
+		grep -v id < $$out > $$out.noid ; \
+		diff $$html.noid $$out.noid ; \
+		rm -f $$html.noid $$out.noid ; \
+	    else \
+		mv $$out $$html ; \
+	    fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+		echo ; \
+	  	echo result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$out ; \
+	  echo -n "fo " ; \
+	  out=$(srcdir)/result/fo/`basename $$i .xml`.tst; \
+	  fo=$(srcdir)/result/fo/`basename $$i .xml`.fo; \
+	  msg=$(srcdir)/result/fo/`basename $$i .xml`.msg; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet \
+		$(srcdir)/fo/docbook.xsl $$i > $$out 2> $$msg ; \
+	  if [ -f $$fo ] ; then \
+	      grep -v id < $$fo > $$fo.noid ; \
+	      grep -v id < $$out > $$out.noid ; \
+	      diff $$fo.noid $$out.noid ; \
+	      rm -f $$fo.noid $$out.noid ; \
+	  else \
+		mv $$out $$fo ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+		echo ; \
+	  	echo result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$out $$msg ; \
+	  echo -n "xhtml " ; \
+	  out=$(srcdir)/result/xhtml/`basename $$i .xml`.tst; \
+	  xhtml=$(srcdir)/result/xhtml/`basename $$i .xml`.xhtml; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet \
+		$(srcdir)/xhtml/docbook.xsl $$i > $$out ; \
+	  if [ -f $$xhtml ] ; then \
+	      grep -v id < $$xhtml > $$xhtml.noid ; \
+	      grep -v id < $$out > $$out.noid ; \
+	      diff $$xhtml.noid $$out.noid ; \
+	      rm -f $$xhtml.noid $$out.noid ; \
+	  else \
+		mv $$out $$xhtml ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+		echo ; \
+	  	echo result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$out ; \
+	  done )
+
+xtchunk:
+	@(echo > .memdump)
+	@echo -n html-chunking
+	@(for i in $(srcdir)/test/gdp-handbook.xml ; do \
+	  base=`basename $$i .xml` ; \
+	  html=$(srcdir)/result/html/$$base.html; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		-o $(srcdir)/result/xtchunk/html/gdp-handbook \
+		$(srcdir)/html/xtchunk.xsl $$i 2> $$base.err ; \
+	    if [ -f $(srcdir)/result/html/$$base.err ] ; then \
+		diff $(srcdir)/result/html/$$base.err $$base.err ; \
+		rm $$base.err ; \
+	    else \
+		mv $$base.err $(srcdir)/result/html/$$base.err ; \
+	    fi ; \
+	    for html in $(srcdir)/result/xtchunk/html/*.html ; do \
+	      orig=$(srcdir)/result/xtchunk/html/\`basename $$html .html\`.orig ;\
+	      if [ -f $$orig ] ; then \
+		  grep -v id < $$html > $$html.noid ; \
+		  grep -v id < $$orig > $$orig.noid ; \
+		  diff $$orig.noid $$html.noid ; \
+		  rm -f $$html.noid $$orig.noid $$html; \
+	      else \
+		  mv $$html $$orig ; \
+		fi ; \
+	    done ; \
+	    grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+		echo ; \
+	  	echo result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $(srcdir)/result/xtchunk/html/gdp-handbook ; \
+	  done )
+	@echo
+
+#
+# The full set of tests
+#
+htmltests: $(top_builddir)/xsltproc/xsltproc
+	@(echo > .memdump)
+	@echo "##"
+	@echo "## HTML stylesheets regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/*.xml ; do \
+	  echo $$i ; \
+	  out=$(srcdir)/result/html/`basename $$i .xml`.tst; \
+	  html=$(srcdir)/result/html/`basename $$i .xml`.html; \
+	  $(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet $(srcdir)/html/docbook.xsl $$i > $$out ; \
+	  if [ -f $$html ] ; then \
+	      grep -v id < $$html > $$html.noid ; \
+	      grep -v id < $$out > $$out.noid ; \
+	      diff $$html.noid $$out.noid ; \
+	      rm -f $$html.noid $$out.noid ; \
+	  else mv $$out $$html ; fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	  rm -f $$out ; done )
+
+fotests: $(top_builddir)/xsltproc/xsltproc
+	@(echo > .memdump)
+	@echo "##"
+	@echo "## XSL FO stylesheets regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/*.xml ; do \
+	  echo $$i ; \
+	  out=$(srcdir)/result/fo/`basename $$i .xml`.tst; \
+	  fo=$(srcdir)/result/fo/`basename $$i .xml`.fo; \
+	  msg=$(srcdir)/result/fo/`basename $$i .xml`.msg; \
+	  $(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet $(srcdir)/fo/docbook.xsl $$i > $$out  2> $$msg ; \
+	  if [ -f $$fo ] ; then \
+	      grep -v id < $$fo > $$fo.noid ; \
+	      grep -v id < $$out > $$out.noid ; \
+	      diff $$fo.noid $$out.noid ; \
+	      rm -f $$fo.noid $$out.noid ; \
+	  else mv $$out $$fo ; fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	  rm -f $$out $$msg ; \
+	  done )
+
+xhtmltests: $(top_builddir)/xsltproc/xsltproc
+	@(echo > .memdump)
+	@echo "##"
+	@echo "## XHTML stylesheets regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/*.xml ; do \
+	  echo $$i ; \
+	  out=$(srcdir)/result/xhtml/`basename $$i .xml`.tst; \
+	  xhtml=$(srcdir)/result/xhtml/`basename $$i .xml`.xhtml; \
+	  $(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet $(srcdir)/xhtml/docbook.xsl $$i > $$out ; \
+	  if [ -f $$xhtml ] ; then \
+	      grep -v id < $$xhtml > $$xhtml.noid ; \
+	      grep -v id < $$out > $$out.noid ; \
+	      diff $$xhtml.noid $$out.noid ; \
+	      rm -f $$xhtml.noid $$out.noid ; \
+	  else mv $$out $$xhtml ; fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	  rm -f $$out ; done )
+
+dist-hook:
+	@(cd $(srcdir) ; tar -cf - --exclude CVS common html dtd lib xhtml fo doc images template htmlhelp result test) | (cd $(distdir); tar xf -)

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,560 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/docbook
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+	ChangeLog TODO
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = README VERSION
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/docbook/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/docbook/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-hook
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	dist-hook distclean distclean-generic distclean-libtool \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am uninstall-info-am
+
+
+all:
+
+tests:
+	@echo -n '## Running docbook tests: '
+	$(MAKE) single
+	$(MAKE) xtchunk
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+full: tests htmltests xhtmltests fotests
+
+#
+# a single tests to check that stuff ain't broken
+#
+single:
+	@(echo > .memdump)
+	@(for i in $(srcdir)/test/gdp-handbook.xml ; do \
+	  echo -n "$(basename $$i) : html " ; \
+	  out=$(srcdir)/result/html/`basename $$i .xml`.tst; \
+	  html=$(srcdir)/result/html/`basename $$i .xml`.html; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet \
+		$(srcdir)/html/docbook.xsl $$i > $$out ; \
+	    if [ -f $$html ] ; then \
+	  	grep -v id < $$html > $$html.noid ; \
+		grep -v id < $$out > $$out.noid ; \
+		diff $$html.noid $$out.noid ; \
+		rm -f $$html.noid $$out.noid ; \
+	    else \
+		mv $$out $$html ; \
+	    fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+		echo ; \
+	  	echo result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$out ; \
+	  echo -n "fo " ; \
+	  out=$(srcdir)/result/fo/`basename $$i .xml`.tst; \
+	  fo=$(srcdir)/result/fo/`basename $$i .xml`.fo; \
+	  msg=$(srcdir)/result/fo/`basename $$i .xml`.msg; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet \
+		$(srcdir)/fo/docbook.xsl $$i > $$out 2> $$msg ; \
+	  if [ -f $$fo ] ; then \
+	      grep -v id < $$fo > $$fo.noid ; \
+	      grep -v id < $$out > $$out.noid ; \
+	      diff $$fo.noid $$out.noid ; \
+	      rm -f $$fo.noid $$out.noid ; \
+	  else \
+		mv $$out $$fo ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+		echo ; \
+	  	echo result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$out $$msg ; \
+	  echo -n "xhtml " ; \
+	  out=$(srcdir)/result/xhtml/`basename $$i .xml`.tst; \
+	  xhtml=$(srcdir)/result/xhtml/`basename $$i .xml`.xhtml; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet \
+		$(srcdir)/xhtml/docbook.xsl $$i > $$out ; \
+	  if [ -f $$xhtml ] ; then \
+	      grep -v id < $$xhtml > $$xhtml.noid ; \
+	      grep -v id < $$out > $$out.noid ; \
+	      diff $$xhtml.noid $$out.noid ; \
+	      rm -f $$xhtml.noid $$out.noid ; \
+	  else \
+		mv $$out $$xhtml ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+		echo ; \
+	  	echo result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$out ; \
+	  done )
+
+xtchunk:
+	@(echo > .memdump)
+	@echo -n html-chunking
+	@(for i in $(srcdir)/test/gdp-handbook.xml ; do \
+	  base=`basename $$i .xml` ; \
+	  html=$(srcdir)/result/html/$$base.html; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		-o $(srcdir)/result/xtchunk/html/gdp-handbook \
+		$(srcdir)/html/xtchunk.xsl $$i 2> $$base.err ; \
+	    if [ -f $(srcdir)/result/html/$$base.err ] ; then \
+		diff $(srcdir)/result/html/$$base.err $$base.err ; \
+		rm $$base.err ; \
+	    else \
+		mv $$base.err $(srcdir)/result/html/$$base.err ; \
+	    fi ; \
+	    for html in $(srcdir)/result/xtchunk/html/*.html ; do \
+	      orig=$(srcdir)/result/xtchunk/html/\`basename $$html .html\`.orig ;\
+	      if [ -f $$orig ] ; then \
+		  grep -v id < $$html > $$html.noid ; \
+		  grep -v id < $$orig > $$orig.noid ; \
+		  diff $$orig.noid $$html.noid ; \
+		  rm -f $$html.noid $$orig.noid $$html; \
+	      else \
+		  mv $$html $$orig ; \
+		fi ; \
+	    done ; \
+	    grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true` ; \
+	  if [ -n "$$log" ] ; then \
+		echo ; \
+	  	echo result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $(srcdir)/result/xtchunk/html/gdp-handbook ; \
+	  done )
+	@echo
+
+#
+# The full set of tests
+#
+htmltests: $(top_builddir)/xsltproc/xsltproc
+	@(echo > .memdump)
+	@echo "##"
+	@echo "## HTML stylesheets regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/*.xml ; do \
+	  echo $$i ; \
+	  out=$(srcdir)/result/html/`basename $$i .xml`.tst; \
+	  html=$(srcdir)/result/html/`basename $$i .xml`.html; \
+	  $(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet $(srcdir)/html/docbook.xsl $$i > $$out ; \
+	  if [ -f $$html ] ; then \
+	      grep -v id < $$html > $$html.noid ; \
+	      grep -v id < $$out > $$out.noid ; \
+	      diff $$html.noid $$out.noid ; \
+	      rm -f $$html.noid $$out.noid ; \
+	  else mv $$out $$html ; fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	  rm -f $$out ; done )
+
+fotests: $(top_builddir)/xsltproc/xsltproc
+	@(echo > .memdump)
+	@echo "##"
+	@echo "## XSL FO stylesheets regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/*.xml ; do \
+	  echo $$i ; \
+	  out=$(srcdir)/result/fo/`basename $$i .xml`.tst; \
+	  fo=$(srcdir)/result/fo/`basename $$i .xml`.fo; \
+	  msg=$(srcdir)/result/fo/`basename $$i .xml`.msg; \
+	  $(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet $(srcdir)/fo/docbook.xsl $$i > $$out  2> $$msg ; \
+	  if [ -f $$fo ] ; then \
+	      grep -v id < $$fo > $$fo.noid ; \
+	      grep -v id < $$out > $$out.noid ; \
+	      diff $$fo.noid $$out.noid ; \
+	      rm -f $$fo.noid $$out.noid ; \
+	  else mv $$out $$fo ; fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	  rm -f $$out $$msg ; \
+	  done )
+
+xhtmltests: $(top_builddir)/xsltproc/xsltproc
+	@(echo > .memdump)
+	@echo "##"
+	@echo "## XHTML stylesheets regression tests"
+	@echo "##"
+	@(for i in $(srcdir)/test/*.xml ; do \
+	  echo $$i ; \
+	  out=$(srcdir)/result/xhtml/`basename $$i .xml`.tst; \
+	  xhtml=$(srcdir)/result/xhtml/`basename $$i .xml`.xhtml; \
+	  $(CHECKER) $(top_builddir)/xsltproc/xsltproc --nonet $(srcdir)/xhtml/docbook.xsl $$i > $$out ; \
+	  if [ -f $$xhtml ] ; then \
+	      grep -v id < $$xhtml > $$xhtml.noid ; \
+	      grep -v id < $$out > $$out.noid ; \
+	      diff $$xhtml.noid $$out.noid ; \
+	      rm -f $$xhtml.noid $$out.noid ; \
+	  else mv $$out $$xhtml ; fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	  rm -f $$out ; done )
+
+dist-hook:
+	@(cd $(srcdir) ; tar -cf - --exclude CVS common html dtd lib xhtml fo doc images template htmlhelp result test) | (cd $(distdir); tar xf -)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/README
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/README	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/README	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,104 @@
+README for the DocBook Stylesheets
+
+These are XSL stylesheets for the DocBook XML DTD. (They would
+also work for the DocBook DTD, modulo certain namecase problems
+and the fact that there aren't (yet) any XSL implementations
+that work with SGML source documents.)
+
+As of version 1.0, most of the elements in DocBook are handled
+in some way or another, usually reasonably, but there's still
+lots of work to be done.
+
+For more information, see http://docbook.sourceforge.net/
+
+Manifest
+--------
+
+README      this file
+TODO        planned features not yet implemented (may be incomplete :-)
+BUGS        known problems (may also be incomplete :-)
+VERSION     the current version number (note that this is an XSL stylesheet,
+            included by both fo/docbook.xsl and html/docbook.xsl)
+WhatsNew    changes since the last public release (for a complete list
+            of changes, see the ChangeLog file(s))
+common/	    contains code common to both stylesheets
+doc/        documentation
+docsrc/     documentation sources
+extensions/ Java extensions
+fo/         stylesheets that produce XSL FO
+html/	    stylesheets that produce HTML
+htmlhelp/   stylesheets that produce HTML Help 
+images/     images
+javahelp/   stylesheets that produce Java Help
+lib/        contains schema-independent functions
+template/   contains templates for building stylesheet customization layers
+xhtml/      stylesheets that produce XHTML
+
+Changes
+-------
+
+See the ChangeLog in each directory for additional information
+about the specific changes.
+
+See WhatsNew for changes since the last release.
+
+Installation
+------------
+
+Unpack the distribution somewhere.
+
+Use
+---
+
+Process your DocBook documents with one of the following stylesheets
+using your favorite XSLT processor:
+
+  xhtml/docbook.xsl produces an XHTML result tree
+  html/docbook.xsl produces an HTML result tree
+  fo/docbook.xsl produces an FO result tree
+
+Copyright
+---------
+
+Copyright (C) 1999, 2000, 2001 Norman Walsh
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the ``Software''), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+Except as contained in this notice, the names of individuals
+credited with contribution to this software shall not be used in
+advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization
+from the individuals in question.
+
+Any stylesheet derived from this Software that is publically
+distributed will be identified with a different name and the
+version strings in any derived Software will be changed so that
+no possibility of confusion between the derived package and this
+Software will exist.
+
+Warranty
+--------
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT.  IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Contacting the Author
+---------------------
+
+These stylesheets are maintained by Norman Walsh, <ndw at nwalsh.com>.

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/TODO
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/TODO	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/TODO	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+Documentation
+Continued lists
+Bibliography support needs improvement
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/VERSION
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/VERSION	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/VERSION	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+<xsl:variable name="VERSION">1.40</xsl:variable>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,69 @@
+2001-06-14  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* subtitles.xsl: Support subtitle on article
+
+2001-05-23  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* common.xsl: Fix dup. template bug with is.graphic.*
+
+	* gentext.xsl: Workaround article/appendix formatting bug (HACK)
+
+	* labels.xsl: Label appendixes correctly in books and articles
+
+2001-05-21  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* labels.xsl: Tweak for section labels in articles
+
+2001-05-12  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* common.xsl: Added refsect* to the section.level template
+
+2001-05-04  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* .cvsignore, Makefile, l10n.xml: Add Serbian localization
+
+2001-04-21  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* common.xsl: My first crude attempts at support for qandaset
+
+2001-04-19  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* gentext.xsl, titles.xsl: Fix bug #417193, make sure allow-anchors is properly propagated through substitute-markup
+
+2001-04-18  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* titles.xsl: Suppress indexterms in no.anchor.mode
+
+2001-04-17  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* labels.xsl: Move label.from.part parameter into param.xsl; default it to 0 so that chapters and appendixes are numbered monotonically throughout a book by default. Moved param.xsl up in the include list, just for good measure
+
+2001-04-16  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* gentext.xsl: Fix bug in processing of subtitle content
+
+	* labels.xsl: Only label.from.part if there actually is a part
+
+	* titles.xsl: Don't put ulink, link, olink, or xref in titles if anchor's aren't allowed
+
+2001-04-15  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* gentext.xsl: Localize the textonly calculations by creating a object.title.markup.textonly mode
+
+2001-04-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* gentext.xsl, labels.xsl, titles.xsl: Fix bug 412487, make XSL-generated callout marks honor callout mark parameters
+
+	* titles.xsl: Restore no.anchor.mode and suppress footnotes in no.anchor.mode
+
+2001-04-02  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* .cvsignore, Makefile: New file.
+
+	* common.xsl, gentext.xsl, l10n.xml, l10n.xsl, labels.xsl, subtitles.xsl, titles.xsl: 
+	New file.
+
+	* gentext.xsl: Commented out debugging messages
+
+	* l10n.dtd: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/LostLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/LostLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/LostLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,167 @@
+2000-08-29  Norman Walsh  <ndw at nwalsh.com>
+
+	* nl.xml: Updated
+
+2000-08-08  Norman Walsh  <ndw at nwalsh.com>
+
+	* et.xml, id.xml, sl.xml: Fixed language attribute
+
+	* hu.xml: Fixup encoding problems; fix language attribute
+
+	* l10n.dtd, l10n.xml: Added DTD
+
+2000-07-21  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Fixed hierarchical section numbering
+
+	* et.xml, hu.xml, id.xml, l10n.xml, sl.xml, zh_cn.xml: 
+	Added first cut at ET, HU, ID, SL, and ZH (CN) localizations
+
+	* nl.xml: Updated
+
+2000-06-25  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Moved graphic extension stuff into common
+
+2000-04-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Moved IDREF checking code into common.xsl
+
+	* fr.xml: Fixed typo in gentext key
+
+2000-04-06  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Generalized title.content; added DocBook 4.0 elements to strip-space
+
+2000-04-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* it.xml: Fixed revisedby
+
+2000-03-23  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Change boolean stylesheet variables to use 0/1 instead of true()/false() to avoid representation issues when setting them from the command line
+
+	* common.xsl: Started adding documentation and fixed formal object numbering
+
+2000-02-18  Norman Walsh  <ndw at nwalsh.com>
+
+	* en.xml: Changed quote characters to avoid Netscape irritation with ldquo
+	and rdquo.
+
+2000-02-16  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Added filename.extension and mediaobject.filename named templates
+
+	* l10n.xsl: Tweaked URI for conformance with some broken XSLT processors
+
+2000-02-07  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Fiddled with label punctuation; added some xref-related string functions
+
+	* en.xml: Sorted terms; added sect1-5
+
+	* l10n.xsl: Added gentext.xref.text
+
+	* no.xml: Fixed capitalization of keys
+
+2000-01-27  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Support section.label.includes.component.label
+
+	* de.xml: Fixed RevisedBy
+
+2000-01-14  Norman Walsh  <ndw at nwalsh.com>
+
+	* ca.xml, cs.xml, da.xml, de.xml, el.xml, en.xml, es.xml, fi.xml, fr.xml, it.xml, ja.xml, nl.xml, no.xml, pl.xml, pt.xml, pt_br.xml, ro.xml, ru.xml, sk.xml, sv.xml: 
+	Fixed typos; added HTML navigation keys
+
+	* l10n.xml: Added Brazilian Portuguese
+
+	* l10n.xsl: Support country subclassing of languages; added gentext for HTML navigation
+
+	* pt_br.xml: New file.
+
+2000-01-11  Norman Walsh  <ndw at nwalsh.com>
+
+	* l10n.xsl: Fix relative URI for l10n.xml
+
+2000-01-10  Norman Walsh  <ndw at nwalsh.com>
+
+	* ca.xml, common.xsl, cs.xml, da.xml, de.xml, el.xml, en.xml, es.xml, fi.xml, fr.xml, it.xml, ja.xml, l10n.xml, l10n.xsl, nl.xml, no.xml, pl.xml, pt.xml, ro.xml, ru.xml, sk.xml, sv.xml: 
+	First cut at I18N/L10N
+
+	* ca.xml, cs.xml, da.xml, de.xml, el.xml, es.xml, fi.xml, it.xml, ja.xml, nl.xml, no.xml, pl.xml, pt.xml, ro.xml, ru.xml, sk.xml, sv.xml: 
+	Added L10N for dingbats
+
+	* common.xsl: Fix gentext space in title.ref
+
+	* l10n.xml: Added ca
+
+	* l10n.xsl: Fix editedby and by gentext calls
+
+1999-12-28  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Added modes for generating element labels and titles; added stylesheet version
+
+	* common.xsl: Support bibliography, glossary, and index titles
+
+	* l10n.xsl: Added stylesheet version
+
+1999-10-20  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl, l10n.xsl: Update URI in all the included modules
+
+1999-08-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Added xsl:preserve-space
+
+1999-07-27  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl, l10n.xsl: Updated to July spec
+
+1999-07-15  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Moved strip-space into common
+
+1999-07-06  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Removed section.title; it was bogus
+
+	* l10n.xsl: Added appendix and reference
+
+1999-07-02  Norman Walsh  <ndw at nwalsh.com>
+
+	* dbl10n.xsl, l10n.xsl: Renamed
+
+	* l10n.xsl: Added glosssee and glossseealso
+
+1999-06-14  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Added section.autolabel support; fixed bug in person.name.list
+
+	* dbl10n.xsl: Added revhistory and revision to element.name
+
+1999-06-09  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Removed section.heading and formal.object.heading--they used markup
+
+	* dbl10n.xsl: Added a few entries and sorted them
+
+	* inline.xsl: removed
+
+1999-06-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl: Top-level headings now include the clear: all CSS style property
+
+	* dbl10n.xsl: Added a few more element names
+
+1999-05-20  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl, dbl10n.xsl, inline.xsl: Many updates
+
+	* dbl10n.xsl: Updates
+
+1999-05-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* common.xsl, dbl10n.xsl, inline.xsl: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,203 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+EXTRA_DIST =      ChangeLog LostLog ca.xml common.xsl cs.xml da.xml de.xml el.xml     en.xml es.xml et.xml fi.xml fr.xml hu.xml id.xml it.xml ja.xml     ko.xml l10n.dtd l10n.xml l10n.xsl nl.xml no.xml pl.xml pt.xml     pt_br.xml ro.xml ru.xml sk.xml sl.xml sv.xml zh_cn.xml zh_tw.xml
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/common/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/common
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/common/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+all: 
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,203 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+EXTRA_DIST =      ChangeLog LostLog ca.xml common.xsl cs.xml da.xml de.xml el.xml     en.xml es.xml et.xml fi.xml fr.xml hu.xml id.xml it.xml ja.xml     ko.xml l10n.dtd l10n.xml l10n.xsl nl.xml no.xml pl.xml pt.xml     pt_br.xml ro.xml ru.xml sk.xml sl.xml sv.xml zh_cn.xml zh_tw.xml
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/common/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/common
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/common/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+all: 
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ca.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ca.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ca.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="ca">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Resum"/>
+   <gentext key="abstract" text="Resum"/>
+   <gentext key="Answer" text="Answer"/>
+   <gentext key="answer" text="Answer"/>
+   <gentext key="Appendix" text="Ap&#232;ndix"/>
+   <gentext key="Article" text="Article"/>
+   <gentext key="article" text="Article"/>
+   <gentext key="Bibliography" text="Bibliografia"/>
+   <gentext key="bibliography" text="Bibliografia"/>
+   <gentext key="Book" text="Llibre"/>
+   <gentext key="book" text="Llibre"/>
+   <gentext key="CAUTION" text="ATENCI&#211;"/>
+   <gentext key="caution" text="ATENCI&#211;"/>
+   <gentext key="Caution" text="Atenci&#243;"/>
+   <gentext key="caution" text="Atenci&#243;"/>
+   <gentext key="Chapter" text="Cap&#237;tol"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Dret de reproducci&#243;"/>
+   <gentext key="copyright" text="Dret de reproducci&#243;"/>
+   <gentext key="Dedication" text="Dedicat&#242;ria"/>
+   <gentext key="dedication" text="Dedicat&#242;ria"/>
+   <gentext key="Edition" text="Edici&#243;"/>
+   <gentext key="edition" text="Edici&#243;"/>
+   <gentext key="Equation" text="Equaci&#243;"/>
+   <gentext key="equation" text="Equaci&#243;"/>
+   <gentext key="Example" text="Exemple"/>
+   <gentext key="example" text="Exemple"/>
+   <gentext key="Figure" text="Figura"/>
+   <gentext key="figure" text="Figura"/>
+   <gentext key="GlossSee" text="Veure"/>
+   <gentext key="glosssee" text="Veure"/>
+   <gentext key="GlossSeeAlso" text="Veure tamb&#233;"/>
+   <gentext key="glossseealso" text="Veure tamb&#233;"/>
+   <gentext key="Glossary" text="Glossari"/>
+   <gentext key="glossary" text="Glossari"/>
+   <gentext key="IMPORTANT" text="IMPORTANT"/>
+   <gentext key="important" text="IMPORTANT"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Important"/>
+   <gentext key="important" text="Important"/>
+   <gentext key="Index" text="&#205;ndex alfab&#232;tic"/>
+   <gentext key="index" text="&#205;ndex alfab&#232;tic"/>
+   <gentext key="LegalNotice" text=""/>
+   <gentext key="legalnotice" text=""/>
+   <gentext key="MsgAud" text="Audi&#232;ncia"/>
+   <gentext key="msgaud" text="Audi&#232;ncia"/>
+   <gentext key="MsgLevel" text="Nivell"/>
+   <gentext key="msglevel" text="Nivell"/>
+   <gentext key="MsgOrig" text="Origen"/>
+   <gentext key="msgorig" text="Origen"/>
+   <gentext key="NOTE" text="NOTA"/>
+   <gentext key="note" text="NOTA"/>
+   <gentext key="Note" text="Nota"/>
+   <gentext key="note" text="Nota"/>
+   <gentext key="Part" text="Part"/>
+   <gentext key="part" text="Part"/>
+   <gentext key="Preface" text="Prefaci"/>
+   <gentext key="preface" text="Prefaci"/>
+   <gentext key="Procedure" text="Procediment"/>
+   <gentext key="procedure" text="Procediment"/>
+   <gentext key="PubDate" text="Data de publicaci&#243;"/>
+   <gentext key="pubdate" text="Data de publicaci&#243;"/>
+   <gentext key="Published" text="Data de publicaci&#243;"/>
+   <gentext key="published" text="Data de publicaci&#243;"/>
+   <gentext key="Question" text="Question"/>
+   <gentext key="question" text="Question"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Refer&#232;ncia"/>
+   <gentext key="reference" text="Refer&#232;ncia"/>
+   <gentext key="RefName" text="Nom"/>
+   <gentext key="refname" text="Nom"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="Revision" text="Revisi&#243;"/>
+   <gentext key="revision" text="Revisi&#243;"/>
+   <gentext key="RevHistory" text="Historial de revisions"/>
+   <gentext key="revhistory" text="Historial de revisions"/>
+   <gentext key="Section" text="Secci&#243;"/>
+   <gentext key="See" text="Veure"/>
+   <gentext key="see" text="Veure"/>
+   <gentext key="SeeAlso" text="Veure tambi&#233;"/>
+   <gentext key="seealso" text="Veure tambi&#233;"/>
+   <gentext key="Set" text="Conjunt"/>
+   <gentext key="set" text="Conjunt"/>
+   <gentext key="SetIndex" text="&#205;ndex del conjunt"/>
+   <gentext key="setindex" text="&#205;ndex del conjunt"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="Pas"/>
+   <gentext key="TIP" text="SUGGERIMENT"/>
+   <gentext key="tip" text="SUGGERIMENT"/>
+   <gentext key="Table" text="Taula"/>
+   <gentext key="table" text="Taula"/>
+   <gentext key="Tip" text="Suggeriment"/>
+   <gentext key="tip" text="Suggeriment"/>
+   <gentext key="WARNING" text="AV&#205;S"/>
+   <gentext key="warning" text="AV&#205;S"/>
+   <gentext key="Warning" text="Av&#237;s"/>
+   <gentext key="warning" text="Av&#237;s"/>
+   <gentext key="appendix" text="ap&#232;ndex"/>
+   <gentext key="chapter" text="cap&#237;tol"/>
+   <gentext key="section" text="secci&#243;"/>
+   <gentext key="sidebar" text="glossa"/>
+   <gentext key="step" text="pas"/>
+   <gentext key="Seealso" text="Veure tamb&#233;"/>
+   <gentext key="seealso" text="Veure tamb&#233;"/>
+   <gentext key="TableofContents" text="Sumari"/>
+   <gentext key="tableofcontents" text="Sumari"/>
+   <gentext key="in" text="a"/>
+   <gentext key="by" text="per"/>
+   <gentext key="Edited" text="Editat"/>
+   <gentext key="edited" text="Editat"/>
+   <gentext key="Editedby" text="Editat per"/>
+   <gentext key="editedby" text="Editat per"/>
+   <gentext key="and" text="i"/>
+   <gentext key="Notes" text="Notes"/>
+   <gentext key="notes" text="Notes"/>
+   <gentext key="TableNotes" text="Notes"/>
+   <gentext key="tablenotes" text="Notes"/>
+   <gentext key="nonexistantelement" text="element inexistent"/>
+   <gentext key="Pgs" text="P&#224;gs."/>
+   <gentext key="pgs" text="P&#224;gs."/>
+   <gentext key="unsupported" text="no reconeguda"/>
+   <gentext key="xrefto" text="xref a"/>
+   <gentext key="unexpectedelementname" text="Nom d'element no esperat"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="&#205;ndex de taules"/>
+   <gentext key="listoftables" text="&#205;ndex de taules"/>
+   <gentext key="ListofExamples" text="&#205;ndex d'exemples"/>
+   <gentext key="listofexamples" text="&#205;ndex d'exemples"/>
+   <gentext key="ListofFigures" text="&#205;ndex de figures"/>
+   <gentext key="listoffigures" text="&#205;ndex de figures"/>
+   <gentext key="ListofEquations" text="&#205;ndex d'equacions"/>
+   <gentext key="listofequations" text="&#205;ndex d'equacions"/>
+   <gentext key="ListofUnknown" text="&#205;ndex de desconegut ?"/>
+   <gentext key="listofunknown" text="&#205;ndex de desconegut ?"/>
+   <gentext key="nav-prev" text="Anterior"/>
+   <gentext key="nav-prev-sibling" text="Retrocedir"/>
+   <gentext key="nav-next-sibling" text="Avancar"/>
+   <gentext key="nav-next" text="Seguent"/>
+   <gentext key="nav-up" text="Pujar"/>
+   <gentext key="nav-home" text="Inici"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Ap&#232;ndix %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Cap&#237;tol %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Equaci&#243; %n. %t"/>
+      <template name="example" text="Exemple %n. %t"/>
+      <template name="figure" text="Figura %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Part %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Taula %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Ap&#232;ndix %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Cap&#237;tol %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Exemple %n. %t"/>
+      <template name="figure" text="Figura %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Part %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Taula %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Secci&#243; %n"/>
+      <template name="sect2" text="Secci&#243; %n"/>
+      <template name="sect3" text="Secci&#243; %n"/>
+      <template name="sect4" text="Secci&#243; %n"/>
+      <template name="sect5" text="Secci&#243; %n"/>
+      <template name="section" text="Secci&#243; %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" i "/>
+      <template name="seplast" text=", i "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Veure "/>
+      <template name="seealso" text="Veure tamb&#233; "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Nivell: "/>
+      <template name="MsgOrig" text="Origen: "/>
+      <template name="MsgAud" text="Audi&#232;ncia: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/common.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/common.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/common.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1000 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: common.xsl,v 1.2 2001/06/23 17:06:27 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     This file contains general templates common to both the HTML and FO
+     versions of the DocBook stylesheets.
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id: common.xsl,v 1.2 2001/06/23 17:06:27 veillard Exp $
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>Common Template Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+
+</doc:reference>
+
+<!-- ==================================================================== -->
+<!-- Establish strip/preserve whitespace rules -->
+
+<xsl:preserve-space elements="*"/>
+
+<xsl:strip-space elements="
+abstract affiliation anchor answer appendix area areaset areaspec
+artheader article audiodata audioobject author authorblurb authorgroup
+beginpage bibliodiv biblioentry bibliography biblioset blockquote book
+bookbiblio bookinfo callout calloutlist caption caution chapter
+citerefentry cmdsynopsis co collab colophon colspec confgroup
+copyright dedication docinfo editor entry entrytbl epigraph equation
+example figure footnote footnoteref formalpara funcprototype
+funcsynopsis glossary glossdef glossdiv glossentry glosslist graphicco
+group highlights imagedata imageobject imageobjectco important index
+indexdiv indexentry indexterm informalequation informalexample
+informalfigure informaltable inlineequation inlinemediaobject
+itemizedlist itermset keycombo keywordset legalnotice listitem lot
+mediaobject mediaobjectco menuchoice msg msgentry msgexplan msginfo
+msgmain msgrel msgset msgsub msgtext note objectinfo
+orderedlist othercredit part partintro preface printhistory procedure
+programlistingco publisher qandadiv qandaentry qandaset question
+refentry reference refmeta refnamediv refsect1 refsect1info refsect2
+refsect2info refsect3 refsect3info refsynopsisdiv refsynopsisdivinfo
+revhistory revision row sbr screenco screenshot sect1 sect1info sect2
+sect2info sect3 sect3info sect4 sect4info sect5 sect5info section
+sectioninfo seglistitem segmentedlist seriesinfo set setindex setinfo
+shortcut sidebar simplelist simplesect spanspec step subject
+subjectset substeps synopfragment table tbody textobject tfoot tgroup
+thead tip toc tocchap toclevel1 toclevel2 toclevel3 toclevel4
+toclevel5 tocpart varargs variablelist varlistentry videodata
+videoobject void warning subjectset
+
+classsynopsis
+constructorsynopsis
+destructorsynopsis
+fieldsynopsis
+methodparam
+methodsynopsis
+ooclass
+ooexception
+oointerface
+simplemsgentry
+"/>
+
+<!-- ====================================================================== -->
+
+<doc:template name="is.component" xmlns="">
+<refpurpose>Tests if a given node is a component-level element</refpurpose>
+
+<refdescription>
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.component">
+  <xsl:param name="node" select="."/>
+  <xsl:choose>
+    <xsl:when test="local-name($node) = 'appendix'
+                    or local-name($node) = 'article'
+                    or local-name($node) = 'chapter'
+                    or local-name($node) = 'preface'
+                    or local-name($node) = 'bibliography'
+                    or local-name($node) = 'glossary'
+                    or local-name($node) = 'index'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="is.section" xmlns="">
+<refpurpose>Tests if a given node is a section-level element</refpurpose>
+
+<refdescription>
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.section">
+  <xsl:param name="node" select="."/>
+  <xsl:choose>
+    <xsl:when test="local-name($node) = 'section'
+                    or local-name($node) = 'sect1'
+                    or local-name($node) = 'sect2'
+                    or local-name($node) = 'sect3'
+                    or local-name($node) = 'sect4'
+                    or local-name($node) = 'sect5'
+                    or local-name($node) = 'refsect1'
+                    or local-name($node) = 'refsect2'
+                    or local-name($node) = 'refsect3'
+                    or local-name($node) = 'simplesect'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a section.</refpurpose>
+
+<refdescription>
+<para>This template calculates the hierarchical level of a section.
+Hierarchically, components are <quote>top level</quote>, so a
+<sgmltag>sect1</sgmltag> is at level 2, <sgmltag>sect3</sgmltag> is
+at level 3, etc.</para>
+
+<para>Recursive sections are calculated down to the sixth level.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The section node for which the level should be calculated.
+Defaults to the context node.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>The section level, <quote>2</quote>, <quote>3</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="section.level">
+  <xsl:param name="node" select="."/>
+  <xsl:choose>
+    <xsl:when test="name($node)='sect1'">2</xsl:when>
+    <xsl:when test="name($node)='sect2'">3</xsl:when>
+    <xsl:when test="name($node)='sect3'">4</xsl:when>
+    <xsl:when test="name($node)='sect4'">5</xsl:when>
+    <xsl:when test="name($node)='sect5'">6</xsl:when>
+    <xsl:when test="name($node)='section'">
+      <xsl:choose>
+        <xsl:when test="$node/../../../../../section">6</xsl:when>
+        <xsl:when test="$node/../../../../section">5</xsl:when>
+        <xsl:when test="$node/../../../section">4</xsl:when>
+        <xsl:when test="$node/../../section">3</xsl:when>
+        <xsl:otherwise>2</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="name($node)='refsect1'">2</xsl:when>
+    <xsl:when test="name($node)='refsect2'">3</xsl:when>
+    <xsl:when test="name($node)='refsect3'">4</xsl:when>
+    <xsl:when test="name($node)='simplesect'">
+      <xsl:choose>
+        <xsl:when test="$node/../../sect1">3</xsl:when>
+        <xsl:when test="$node/../../sect2">4</xsl:when>
+        <xsl:when test="$node/../../sect3">5</xsl:when>
+        <xsl:when test="$node/../../sect4">6</xsl:when>
+        <xsl:when test="$node/../../sect5">6</xsl:when>
+        <xsl:when test="$node/../../section">
+          <xsl:choose>
+            <xsl:when test="$node/../../../../../section">6</xsl:when>
+            <xsl:when test="$node/../../../../section">5</xsl:when>
+            <xsl:when test="$node/../../../section">4</xsl:when>
+            <xsl:otherwise>3</xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>2</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>2</xsl:otherwise>
+  </xsl:choose>
+</xsl:template><!-- section.level -->
+
+<doc:template name="qanda.section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a QandASet.</refpurpose>
+
+<refdescription>
+<para>This template calculates the hierarchical level of a QandASet.
+</para>
+</refdescription>
+
+<refreturn>
+<para>The level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="qanda.section.level">
+  <xsl:variable name="section"
+                select="(ancestor::section
+                         |ancestor::simplesect
+                         |ancestor::sect5
+                         |ancestor::sect4
+                         |ancestor::sect3
+                         |ancestor::sect2
+                         |ancestor::sect1
+                         |ancestor::refsect3
+                         |ancestor::refsect2
+                         |ancestor::refsect1)[last()]"/>
+  <xsl:choose>
+    <xsl:when test="count($section) = '0'">1</xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="section.level">
+        <xsl:with-param name="node" select="$section"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="qandadiv.section.level">
+  <xsl:variable name="section.level">
+    <xsl:call-template name="qanda.section.level"/>
+  </xsl:variable>
+  <xsl:variable name="anc.divs" select="ancestor::qandadiv"/>
+
+  <xsl:value-of select="count($anc.divs) + number($section.level)"/>
+</xsl:template>
+
+<xsl:template name="question.answer.label">
+  <xsl:variable name="deflabel">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*[@defaultlabel]">
+        <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]
+                              /@defaultlabel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="qanda.defaultlabel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="label" select="@label"/>
+
+<!--
+	 (hnr      (hierarchical-number-recursive (normalize "qandadiv")
+						  node))
+
+	 (parsect  (ancestor-member node (section-element-list)))
+
+	 (defnum   (if (and %qanda-inherit-numeration% 
+			    %section-autolabel%)
+		       (if (node-list-empty? parsect)
+			   (section-autolabel-prefix node)
+			   (section-autolabel parsect))
+		       ""))
+
+	 (hnumber  (let loop ((numlist hnr) (number defnum) 
+			      (sep (if (equal? defnum "") "" ".")))
+		     (if (null? numlist)
+			 number
+			 (loop (cdr numlist) 
+			       (string-append number
+					      sep
+					      (number->string (car numlist)))
+			       "."))))
+	 (cnumber  (child-number (parent node)))
+	 (number   (string-append hnumber 
+				  (if (equal? hnumber "")
+				      ""
+				      ".")
+				  (number->string cnumber))))
+-->
+
+  <xsl:choose>
+    <xsl:when test="$deflabel = 'qanda'">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key">
+          <xsl:choose>
+            <xsl:when test="local-name(.) = 'question'">Question</xsl:when>
+            <xsl:when test="local-name(.) = 'question'">Answer</xsl:when>
+            <xsl:when test="local-name(.) = 'qandadiv'">QandADiv</xsl:when>
+            <xsl:otherwise>QandASet</xsl:otherwise>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$deflabel = 'label'">
+      <xsl:value-of select="$label"/>
+    </xsl:when>
+    <xsl:when test="$deflabel = 'number'
+                    and local-name(.) = 'question'">
+      <xsl:apply-templates select="ancestor::qandaset[1]"
+                           mode="number"/>
+      <xsl:choose>
+        <xsl:when test="ancestor::qandadiv">
+          <xsl:apply-templates select="ancestor::qandadiv[1]"
+                               mode="number"/>
+          <xsl:apply-templates select="ancestor::qandaentry"
+                               mode="number"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="ancestor::qandaentry"
+                               mode="number"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- nothing -->
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandaset" mode="number">
+  <!-- FIXME: -->
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="number">
+  <xsl:number level="multiple" from="qandaset" format="1."/>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="number">
+  <xsl:choose>
+    <xsl:when test="ancestor::qandadiv">
+      <xsl:number level="single" from="qandadiv" format="1."/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:number level="single" from="qandaset" format="1."/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="object.id">
+  <xsl:param name="object" select="."/>
+  <xsl:choose>
+    <xsl:when test="$object/@id">
+      <xsl:value-of select="$object/@id"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="generate-id($object)"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="person.name">
+  <!-- Return a formatted string representation of the contents of
+       the specified node (by default, the current element).
+       Handles Honorific, FirstName, SurName, and Lineage.
+       If %author-othername-in-middle% is #t, also OtherName
+       Handles *only* the first of each.
+       Format is "Honorific. FirstName [OtherName] SurName, Lineage"
+  -->
+  <xsl:param name="node" select="."/>
+
+  <xsl:choose>
+    <!-- handle corpauthor as a special case...-->
+    <xsl:when test="name($node)='corpauthor'">
+      <xsl:apply-templates select="$node"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="h_nl" select="$node//honorific[1]"/>
+      <xsl:variable name="f_nl" select="$node//firstname[1]"/>
+      <xsl:variable name="o_nl" select="$node//othername[1]"/>
+      <xsl:variable name="s_nl" select="$node//surname[1]"/>
+      <xsl:variable name="l_nl" select="$node//lineage[1]"/>
+
+      <xsl:variable name="has_h" select="$h_nl"/>
+      <xsl:variable name="has_f" select="$f_nl"/>
+      <xsl:variable name="has_o"
+                    select="$o_nl and ($author.othername.in.middle != 0)"/>
+      <xsl:variable name="has_s" select="$s_nl"/>
+      <xsl:variable name="has_l" select="$l_nl"/>
+
+      <xsl:if test="$has_h">
+        <xsl:value-of select="$h_nl"/>.
+      </xsl:if>
+
+      <xsl:if test="$has_f">
+        <xsl:if test="$has_h"><xsl:text> </xsl:text></xsl:if>
+        <xsl:value-of select="$f_nl"/>
+      </xsl:if>
+
+      <xsl:if test="$has_o">
+        <xsl:if test="$has_h or $has_f"><xsl:text> </xsl:text></xsl:if>
+        <xsl:value-of select="$o_nl"/>
+      </xsl:if>
+
+      <xsl:if test="$has_s">
+        <xsl:if test="$has_h or $has_f or $has_o">
+          <xsl:text> </xsl:text>
+        </xsl:if>
+        <xsl:value-of select="$s_nl"/>
+      </xsl:if>
+
+      <xsl:if test="$has_l">
+        <xsl:text>, </xsl:text>
+        <xsl:value-of select="$l_nl"/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template> <!-- person.name -->
+
+<xsl:template name="person.name.list">
+  <!-- Return a formatted string representation of the contents of
+       the current element. The current element must contain one or
+       more AUTHORs, CORPAUTHORs, OTHERCREDITs, and/or EDITORs.
+
+       John Doe
+     or
+       John Doe and Jane Doe
+     or
+       John Doe, Jane Doe, and A. Nonymous
+  -->
+  <xsl:param name="person.list"
+             select="./author|./corpauthor|./othercredit|./editor"/>
+  <xsl:param name="person.count" select="count($person.list)"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count &gt; $person.count"></xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="person.name">
+        <xsl:with-param name="node" select="$person.list[position()=$count]"/>
+      </xsl:call-template>
+
+      <xsl:choose>
+        <xsl:when test="$person.count = 2 and $count = 1">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'authorgroup'"/>
+            <xsl:with-param name="name" select="'sep2'"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$person.count &gt; 2 and $count+1 = $person.count">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'authorgroup'"/>
+            <xsl:with-param name="name" select="'seplast'"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$count &lt; $person.count">
+          <xsl:call-template name="gentext.template">
+            <xsl:with-param name="context" select="'authorgroup'"/>
+            <xsl:with-param name="name" select="'sep'"/>
+          </xsl:call-template>
+        </xsl:when>
+      </xsl:choose>
+
+      <xsl:call-template name="person.name.list">
+        <xsl:with-param name="person.list" select="$person.list"/>
+        <xsl:with-param name="person.count" select="$person.count"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template><!-- person.name.list -->
+
+<!-- === synopsis ======================================================= -->
+<!-- The following definitions match those given in the reference
+     documentation for DocBook V3.0
+-->
+
+<xsl:variable name="arg.choice.opt.open.str">[</xsl:variable>
+<xsl:variable name="arg.choice.opt.close.str">]</xsl:variable>
+<xsl:variable name="arg.choice.req.open.str">{</xsl:variable>
+<xsl:variable name="arg.choice.req.close.str">}</xsl:variable>
+<xsl:variable name="arg.choice.plain.open.str"><xsl:text> </xsl:text></xsl:variable>
+<xsl:variable name="arg.choice.plain.close.str"><xsl:text> </xsl:text></xsl:variable>
+<xsl:variable name="arg.choice.def.open.str">[</xsl:variable>
+<xsl:variable name="arg.choice.def.close.str">]</xsl:variable>
+<xsl:variable name="arg.rep.repeat.str">...</xsl:variable>
+<xsl:variable name="arg.rep.norepeat.str"></xsl:variable>
+<xsl:variable name="arg.rep.def.str"></xsl:variable>
+<xsl:variable name="arg.or.sep"> | </xsl:variable>
+<xsl:variable name="cmdsynopsis.hanging.indent">4pi</xsl:variable>
+
+<!-- ====================================================================== -->
+
+<!--
+<xsl:template name="xref.g.subst">
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="target" select="."/>
+  <xsl:variable name="subst">%g</xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $subst)">
+      <xsl:value-of select="substring-before($string, $subst)"/>
+      <xsl:call-template name="gentext.element.name">
+        <xsl:with-param name="element.name" select="name($target)"/>
+      </xsl:call-template>
+      <xsl:call-template name="xref.g.subst">
+        <xsl:with-param name="string"
+                        select="substring-after($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$string"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.t.subst">
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="target" select="."/>
+  <xsl:variable name="subst">%t</xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $subst)">
+      <xsl:call-template name="xref.g.subst">
+        <xsl:with-param name="string"
+                        select="substring-before($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="title.xref">
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string"
+                        select="substring-after($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="xref.g.subst">
+        <xsl:with-param name="string" select="$string"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.n.subst">
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="target" select="."/>
+  <xsl:variable name="subst">%n</xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $subst)">
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string"
+                        select="substring-before($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="number.xref">
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string"
+                        select="substring-after($string, $subst)"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="xref.t.subst">
+        <xsl:with-param name="string" select="$string"/>
+        <xsl:with-param name="target" select="$target"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="subst.xref.text">
+  <xsl:param name="xref.text"></xsl:param>
+  <xsl:param name="target" select="."/>
+
+  <xsl:call-template name="xref.n.subst">
+    <xsl:with-param name="string" select="$xref.text"/>
+    <xsl:with-param name="target" select="$target"/>
+  </xsl:call-template>
+</xsl:template>
+-->
+
+<!-- ====================================================================== -->
+
+<xsl:template name="filename-basename">
+  <!-- We assume all filenames are really URIs and use "/" -->
+  <xsl:param name="filename"></xsl:param>
+  <xsl:param name="recurse" select="false()"/>
+
+  <xsl:choose>
+    <xsl:when test="substring-after($filename, '/') != ''">
+      <xsl:call-template name="filename-basename">
+        <xsl:with-param name="filename"
+                        select="substring-after($filename, '/')"/>
+        <xsl:with-param name="recurse" select="true()"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="filename-extension">
+  <xsl:param name="filename"></xsl:param>
+  <xsl:param name="recurse" select="false()"/>
+
+  <!-- Make sure we only look at the base name... -->
+  <xsl:variable name="basefn">
+    <xsl:choose>
+      <xsl:when test="$recurse">
+        <xsl:value-of select="$filename"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="filename-basename">
+          <xsl:with-param name="filename" select="$filename"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="substring-after($basefn, '.') != ''">
+      <xsl:call-template name="filename-extension">
+        <xsl:with-param name="filename"
+                        select="substring-after($basefn, '.')"/>
+        <xsl:with-param name="recurse" select="true()"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$recurse">
+      <xsl:value-of select="$basefn"/>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="select.mediaobject" xmlns="">
+<refpurpose>Selects an appropriate media object from a list</refpurpose>
+
+<refdescription>
+<para>This template examines a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and processes
+the "right" object.</para>
+
+<para>This template relies on a template named "is.acceptable.mediaobject"
+to determine if a given object is an acceptable graphic. The semantics
+of media objects is that the first acceptable graphic should be used.
+</para>
+
+<para>If no acceptable object is located, nothing happens.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+<para>The node list of potential objects to examine.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>Calls &lt;xsl:apply-templates&gt; on the selected object.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="select.mediaobject">
+  <xsl:param name="olist"
+             select="imageobject|imageobjectco
+                     |videoobject|audioobject|textobject"/>
+  <xsl:param name="count">1</xsl:param>
+
+  <xsl:if test="$count &lt;= count($olist)">
+    <xsl:variable name="object" select="$olist[position()=$count]"/>
+
+    <xsl:variable name="useobject">
+      <xsl:choose>
+	<!-- The phrase is never used -->
+        <xsl:when test="name($object)='textobject' and $object/phrase">
+          <xsl:text>0</xsl:text>
+        </xsl:when>
+	<!-- The first textobject is a reasonable fallback -->
+        <xsl:when test="name($object)='textobject'">
+          <xsl:text>1</xsl:text>
+        </xsl:when>
+	<!-- If there's only one object, use it -->
+	<xsl:when test="$count = 1 and count($olist) = 1">
+	  <xsl:text>1</xsl:text>
+	</xsl:when>
+	<!-- Otherwise, see if this one is a useable graphic -->
+        <xsl:otherwise>
+          <xsl:choose>
+            <!-- peek inside imageobjectco to simplify the test -->
+            <xsl:when test="local-name($object) = 'imageobjectco'">
+              <xsl:call-template name="is.acceptable.mediaobject">
+                <xsl:with-param name="object" select="$object/imageobject"/>
+              </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:call-template name="is.acceptable.mediaobject">
+                <xsl:with-param name="object" select="$object"/>
+              </xsl:call-template>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test="$useobject='1'">
+        <xsl:apply-templates select="$object"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="select.mediaobject">
+          <xsl:with-param name="olist" select="$olist"/>
+          <xsl:with-param name="count" select="$count + 1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
+<doc:template name="is.acceptable.mediaobject" xmlns="">
+<refpurpose>Returns '1' if the specified media object is recognized.</refpurpose>
+
+<refdescription>
+<para>This template examines a media object and returns '1' if the
+object is recognized as a graphic.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>object</term>
+<listitem>
+<para>The media object to consider.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>0 or 1</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.acceptable.mediaobject">
+  <xsl:param name="object"></xsl:param>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="ext">
+    <xsl:call-template name="filename-extension">
+      <xsl:with-param name="filename" select="$filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- there will only be one -->
+  <xsl:variable name="data" select="$object/videodata
+                                    |$object/imagedata
+                                    |$object/audiodata"/>
+
+  <xsl:variable name="format" select="$data/@format"/>
+
+  <xsl:variable name="graphic.format">
+    <xsl:if test="$format">
+      <xsl:call-template name="is.graphic.format">
+        <xsl:with-param name="format" select="$format"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="graphic.ext">
+    <xsl:if test="$ext">
+      <xsl:call-template name="is.graphic.extension">
+        <xsl:with-param name="ext" select="$ext"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$graphic.format = '1'">1</xsl:when>
+    <xsl:when test="$graphic.ext = '1'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="mediaobject.filename">
+  <xsl:param name="object"></xsl:param>
+
+  <xsl:variable name="data" select="$object/videodata
+                                    |$object/imagedata
+                                    |$object/audiodata"/>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$data[@fileref]">
+        <xsl:value-of select="$data/@fileref"/>
+      </xsl:when>
+      <xsl:when test="$data[@entityref]">
+        <xsl:value-of select="unparsed-entity-uri($data/@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="has.ext" select="contains($filename, '.') != ''"/>
+
+  <xsl:variable name="ext">
+    <xsl:choose>
+      <xsl:when test="contains($filename, '.')">
+        <xsl:call-template name="filename-extension">
+          <xsl:with-param name="filename" select="$filename"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$graphic.default.extension"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="graphic.ext">
+    <xsl:call-template name="is.graphic.extension">
+      <xsl:with-param name="ext" select="$ext"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="not($has.ext)">
+      <xsl:choose>
+        <xsl:when test="$ext != ''">
+          <xsl:value-of select="$filename"/>
+          <xsl:text>.</xsl:text>
+          <xsl:value-of select="$ext"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="not($graphic.ext)">
+      <xsl:choose>
+        <xsl:when test="$graphic.default.extension != ''">
+          <xsl:value-of select="$filename"/>
+          <xsl:text>.</xsl:text>
+          <xsl:value-of select="$graphic.default.extension"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$filename"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="check.id.unique" xmlns="">
+<refpurpose>Warn users about references to non-unique IDs</refpurpose>
+<refdescription>
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.id.unique</function> prints
+a warning message to the user if either the ID does not exist or
+the ID is not unique.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.id.unique">
+  <xsl:param name="linkend"></xsl:param>
+  <xsl:if test="$linkend != ''">
+    <xsl:variable name="targets" select="id($linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+
+    <xsl:if test="count($targets)=0">
+      <xsl:message>
+	<xsl:text>Error: no ID for constraint linkend: </xsl:text>
+	<xsl:value-of select="$linkend"/>
+	<xsl:text>.</xsl:text>
+      </xsl:message>
+      <!--
+      <xsl:message>
+	<xsl:text>If the ID exists in your document, did your </xsl:text>
+        <xsl:text>XSLT Processor load the DTD?</xsl:text>
+      </xsl:message>
+      -->
+    </xsl:if>
+
+    <xsl:if test="count($targets)>1">
+      <xsl:message>
+	<xsl:text>Warning: multiple "IDs" for constraint linkend: </xsl:text>
+	<xsl:value-of select="$linkend"/>
+	<xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<doc:template name="check.idref.targets" xmlns="">
+<refpurpose>Warn users about incorrectly typed references</refpurpose>
+<refdescription>
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.idref.targets</function> makes sure that the element
+pointed to by the link is one of the elements listed in
+<varname>element-list</varname> and warns the user otherwise.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.idref.targets">
+  <xsl:param name="linkend"></xsl:param>
+  <xsl:param name="element-list"></xsl:param>
+  <xsl:if test="$linkend != ''">
+    <xsl:variable name="targets" select="id($linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+
+    <xsl:if test="count($target) &gt; 0">
+      <xsl:if test="not(contains(concat(' ', $element-list, ' '), name($target)))">
+	<xsl:message>
+	  <xsl:text>Error: linkend (</xsl:text>
+	  <xsl:value-of select="$linkend"/>
+	  <xsl:text>) points to "</xsl:text>
+	  <xsl:value-of select="name($target)"/>
+	  <xsl:text>" not (one of): </xsl:text>
+	  <xsl:value-of select="$element-list"/>
+	</xsl:message>
+      </xsl:if>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/cs.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/cs.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/cs.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="cs">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Abstrakt"/>
+   <gentext key="abstract" text="Abstrakt"/>
+   <gentext key="Answer" text="Odpov&#283;&#271;:"/>
+   <gentext key="answer" text="Odpov&#283;&#271;:"/>
+   <gentext key="Appendix" text="P&#345;&#237;loha"/>
+   <gentext key="appendix" text="P&#345;&#237;loha"/>
+   <gentext key="Article" text="&#268;l&#225;nek"/>
+   <gentext key="article" text="&#268;l&#225;nek"/>
+   <gentext key="Bibliography" text="Bibliografie"/>
+   <gentext key="bibliography" text="Bibliografie"/>
+   <gentext key="Book" text="Kniha"/>
+   <gentext key="book" text="Kniha"/>
+   <gentext key="CAUTION" text="V&#253;straha"/>
+   <gentext key="Caution" text="V&#253;straha"/>
+   <gentext key="caution" text="V&#253;straha"/>
+   <gentext key="Chapter" text="Kapitola"/>
+   <gentext key="chapter" text="Kapitola"/>
+   <gentext key="Colophon" text="Tir&#225;&#382;"/>
+   <gentext key="colophon" text="Tir&#225;&#382;"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="V&#283;nov&#225;n&#237;"/>
+   <gentext key="dedication" text="V&#283;nov&#225;n&#237;"/>
+   <gentext key="Edition" text="Vyd&#225;n&#237;"/>
+   <gentext key="edition" text="Vyd&#225;n&#237;"/>
+   <gentext key="Equation" text="Rovnice"/>
+   <gentext key="equation" text="Rovnice"/>
+   <gentext key="Example" text="P&#345;&#237;klad"/>
+   <gentext key="example" text="P&#345;&#237;klad"/>
+   <gentext key="Figure" text="Obr&#225;zek"/>
+   <gentext key="figure" text="Obr&#225;zek"/>
+   <gentext key="Glossary" text="Slovn&#237;k"/>
+   <gentext key="glossary" text="Slovn&#237;k"/>
+   <gentext key="GlossSee" text="Viz"/>
+   <gentext key="glosssee" text="Viz"/>
+   <gentext key="GlossSeeAlso" text="Viz t&#233;&#382;"/>
+   <gentext key="glossseealso" text="Viz t&#233;&#382;"/>
+   <gentext key="IMPORTANT" text="D&#367;le&#382;it&#233;"/>
+   <gentext key="Important" text="D&#367;le&#382;it&#233;"/>
+   <gentext key="important" text="D&#367;le&#382;it&#233;"/>
+   <gentext key="Index" text="Rejst&#345;&#237;k"/>
+   <gentext key="index" text="Rejst&#345;&#237;k"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="LegalNotice" text="Pr&#225;vn&#237; dolo&#382;ka"/>
+   <gentext key="legalnotice" text="Pr&#225;vn&#237; dolo&#382;ka"/>
+   <gentext key="MsgAud" text="Publikum"/>
+   <gentext key="msgaud" text="Publikum"/>
+   <gentext key="MsgLevel" text="&#218;rove&#328;"/>
+   <gentext key="msglevel" text="&#218;rove&#328;"/>
+   <gentext key="MsgOrig" text="P&#367;vod"/>
+   <gentext key="msgorig" text="P&#367;vod"/>
+   <gentext key="NOTE" text="Pozn&#225;mka"/>
+   <gentext key="Note" text="Pozn&#225;mka"/>
+   <gentext key="note" text="Pozn&#225;mka"/>
+   <gentext key="Part" text="&#268;&#225;st"/>
+   <gentext key="part" text="&#268;&#225;st"/>
+   <gentext key="Preface" text="P&#345;edmluva"/>
+   <gentext key="preface" text="P&#345;edmluva"/>
+   <gentext key="Procedure" text="Postup"/>
+   <gentext key="procedure" text="Postup"/>
+   <gentext key="Published" text="Vyd&#225;no"/>
+   <gentext key="published" text="Vyd&#225;no"/>
+   <gentext key="Question" text="Ot&#225;zka:"/>
+   <gentext key="question" text="Ot&#225;zka:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Odkaz"/>
+   <gentext key="reference" text="Odkaz"/>
+   <gentext key="RefName" text="Jm&#233;no"/>
+   <gentext key="refname" text="Jm&#233;no"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="P&#345;ehled"/>
+   <gentext key="refsynopsisdiv" text="P&#345;ehled"/>
+   <gentext key="RevHistory" text="P&#345;ehled reviz&#237;"/>
+   <gentext key="revhistory" text="P&#345;ehled reviz&#237;"/>
+   <gentext key="Revision" text="Revize"/>
+   <gentext key="revision" text="Revize"/>
+   <gentext key="sect1" text="Odd&#237;l"/>
+   <gentext key="sect2" text="Odd&#237;l"/>
+   <gentext key="sect3" text="Odd&#237;l"/>
+   <gentext key="sect4" text="Odd&#237;l"/>
+   <gentext key="sect5" text="Odd&#237;l"/>
+   <gentext key="Section" text="Odd&#237;l"/>
+   <gentext key="section" text="Odd&#237;l"/>
+   <gentext key="See" text="Viz"/>
+   <gentext key="see" text="Viz"/>
+   <gentext key="SeeAlso" text="Viz t&#233;&#382;"/>
+   <gentext key="Seealso" text="Viz t&#233;&#382;"/>
+   <gentext key="seealso" text="Viz t&#233;&#382;"/>
+   <gentext key="Set" text="Sada"/>
+   <gentext key="set" text="Sada"/>
+   <gentext key="SetIndex" text="Rejst&#345;&#237;k sady"/>
+   <gentext key="setindex" text="Rejst&#345;&#237;k sady"/>
+   <gentext key="Sidebar" text="Margin&#225;lie"/>
+   <gentext key="sidebar" text="Margin&#225;lie"/>
+   <gentext key="Step" text="Krok"/>
+   <gentext key="step" text="krok"/>
+   <gentext key="Table" text="Tabulka"/>
+   <gentext key="table" text="Tabulka"/>
+   <gentext key="TIP" text="Tip"/>
+   <gentext key="Tip" text="Tip"/>
+   <gentext key="tip" text="Tip"/>
+   <gentext key="WARNING" text="Varov&#225;n&#237;"/>
+   <gentext key="Warning" text="Varov&#225;n&#237;"/>
+   <gentext key="warning" text="Varov&#225;n&#237;"/>
+   <gentext key="TableofContents" text="Obsah"/>
+   <gentext key="tableofcontents" text="Obsah"/>
+   <gentext key="in" text="v"/>
+   <gentext key="by" text=""/>
+   <gentext key="Edited" text="Vyd&#225;no"/>
+   <gentext key="edited" text="Vyd&#225;no"/>
+   <gentext key="Editedby" text="Sestavil"/>
+   <gentext key="editedby" text="Sestavil"/>
+   <gentext key="and" text="a"/>
+   <gentext key="Notes" text="Pozn&#225;mky"/>
+   <gentext key="notes" text="Pozn&#225;mky"/>
+   <gentext key="TableNotes" text="Pozn&#225;mky"/>
+   <gentext key="tablenotes" text="Pozn&#225;mky"/>
+   <gentext key="nonexistantelement" text="neexistuj&#237;c&#237; prvek"/>
+   <gentext key="Pgs" text="Str."/>
+   <gentext key="pgs" text="Str."/>
+   <gentext key="unsupported" text="nepodporovan&#253;"/>
+   <gentext key="xrefto" text="xref k"/>
+   <gentext key="unexpectedelementname" text="Neo&#269;ek&#225;van&#233; jm&#233;no prvku"/>
+   <gentext key="Revisedby" text="Revidoval: "/>
+   <gentext key="revisedby" text="Revidoval: "/>
+   <gentext key="ListofTables" text="Seznam tabulek"/>
+   <gentext key="listoftables" text="Seznam tabulek"/>
+   <gentext key="ListofExamples" text="Seznam p&#345;&#237;klad&#367;"/>
+   <gentext key="listofexamples" text="Seznam p&#345;&#237;klad&#367;"/>
+   <gentext key="ListofFigures" text="Seznam obr&#225;zk&#367;"/>
+   <gentext key="listoffigures" text="Seznam obr&#225;zk&#367;"/>
+   <gentext key="ListofEquations" text="Seznam rovnic"/>
+   <gentext key="listofequations" text="Seznam rovnic"/>
+   <gentext key="ListofUnknown" text="Seznam nezn&#225;m&#233;ho"/>
+   <gentext key="listofunknown" text="Seznam nezn&#225;m&#233;ho"/>
+   <gentext key="nav-prev" text="P&#345;edch&#225;zej&#237;c&#237;"/>
+   <gentext key="nav-prev-sibling" text="Rychle zp&#283;t"/>
+   <gentext key="nav-next-sibling" text="Rychle dop&#345;edu"/>
+   <gentext key="nav-next" text="Dal&#353;&#237;"/>
+   <gentext key="nav-up" text="Nahoru"/>
+   <gentext key="nav-home" text="Dom&#367;"/>
+   <gentext key="sectioncalled" text="odd&#237;l nazvan&#253;"/>
+   <dingbat key="startquote" text="&#8222;"/>
+   <dingbat key="endquote" text="&#8220;"/>
+   <dingbat key="nestedstartquote" text="&#8218;"/>
+   <dingbat key="nestedendquote" text="&#8216;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="P&#345;&#237;loha %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Kapitola %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Rovnice %n. %t"/>
+      <template name="example" text="P&#345;&#237;klad %n. %t"/>
+      <template name="figure" text="Obr&#225;zek %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="&#268;&#225;st %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabulka %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="%n &#8211; &#8222;%t&#8220;"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="%n &#8211; &#8222;%t&#8220;"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="%n"/>
+      <template name="figure" text="%n"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="%n &#8211; &#8222;%t&#8220;"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="%n"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8222;%t&#8220;"/>
+      <template name="sect2" text="&#8222;%t&#8220;"/>
+      <template name="sect3" text="&#8222;%t&#8220;"/>
+      <template name="sect4" text="&#8222;%t&#8220;"/>
+      <template name="sect5" text="&#8222;%t&#8220;"/>
+      <template name="section" text="&#8222;%t&#8220;"/>
+      <template name="simplesect" text="&#8222;%t&#8220;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="%n"/>
+      <template name="sect2" text="%n"/>
+      <template name="sect3" text="%n"/>
+      <template name="sect4" text="%n"/>
+      <template name="sect5" text="%n"/>
+      <template name="section" text="%n"/>
+      <template name="simplesect" text="&#8222;%t&#8220;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" a "/>
+      <template name="seplast" text=" a "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Viz "/>
+      <template name="seealso" text="Viz t&#233;&#382; "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="&#218;rove&#328;: "/>
+      <template name="MsgOrig" text="P&#367;vod: "/>
+      <template name="MsgAud" text="Publikum: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/da.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/da.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/da.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="da">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Abstract"/>
+   <gentext key="abstract" text="Abstract"/>
+   <gentext key="Answer" text="Svar"/>
+   <gentext key="answer" text="Svar"/>
+   <gentext key="Appendix" text="Appendiks"/>
+   <gentext key="Article" text="Artikel"/>
+   <gentext key="article" text="Artikel"/>
+   <gentext key="Bibliography" text="Bibliografi"/>
+   <gentext key="bibliography" text="Bibliografi"/>
+   <gentext key="Book" text="Bog"/>
+   <gentext key="book" text="Bog"/>
+   <gentext key="CAUTION" text="BEM&#198;RK"/>
+   <gentext key="caution" text="BEM&#198;RK"/>
+   <gentext key="Caution" text="Bem&#230;rk"/>
+   <gentext key="caution" text="Bem&#230;rk"/>
+   <gentext key="Chapter" text="Kapitel"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Tilegnet"/>
+   <gentext key="dedication" text="Tilegnet"/>
+   <gentext key="Edition" text="Udgave"/>
+   <gentext key="edition" text="Udgave"/>
+   <gentext key="Equation" text="Ligning"/>
+   <gentext key="equation" text="Ligning"/>
+   <gentext key="Example" text="Eksempel"/>
+   <gentext key="example" text="Eksempel"/>
+   <gentext key="Figure" text="Figur"/>
+   <gentext key="figure" text="Figur"/>
+   <gentext key="GlossSee" text="Se"/>
+   <gentext key="glosssee" text="Se"/>
+   <gentext key="GlossSeeAlso" text="Se ogs&#229;"/>
+   <gentext key="glossseealso" text="Se ogs&#229;"/>
+   <gentext key="Glossary" text="Stikordregister"/>
+   <gentext key="glossary" text="Stikordregister"/>
+   <gentext key="IMPORTANT" text="VIGTIGT"/>
+   <gentext key="important" text="VIGTIGT"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Vigtigt"/>
+   <gentext key="important" text="Vigtigt"/>
+   <gentext key="Index" text="Index"/>
+   <gentext key="index" text="Index"/>
+   <gentext key="LegalNotice" text="Retslig note"/>
+   <gentext key="legalnotice" text="Retslig note"/>
+   <gentext key="MsgAud" text="M&#229;lgruppe"/>
+   <gentext key="msgaud" text="M&#229;lgruppe"/>
+   <gentext key="MsgLevel" text="Niveau"/>
+   <gentext key="msglevel" text="Niveau"/>
+   <gentext key="MsgOrig" text="Grundlag"/>
+   <gentext key="msgorig" text="Grundlag"/>
+   <gentext key="NOTE" text="NOTE"/>
+   <gentext key="note" text="NOTE"/>
+   <gentext key="Note" text="Note"/>
+   <gentext key="note" text="Note"/>
+   <gentext key="Part" text="Del"/>
+   <gentext key="part" text="Del"/>
+   <gentext key="Preface" text="Forord"/>
+   <gentext key="preface" text="Forord"/>
+   <gentext key="Procedure" text="Procedure"/>
+   <gentext key="procedure" text="Procedure"/>
+   <gentext key="PubDate" text="Udgivet"/>
+   <gentext key="pubdate" text="Udgivet"/>
+   <gentext key="Published" text="Publiseret"/>
+   <gentext key="published" text="Publiseret"/>
+   <gentext key="Question" text="Sp&#248;rgsm&#229;l"/>
+   <gentext key="question" text="Sp&#248;rgsm&#229;l"/>
+   <gentext key="RefEntry" text="Enhed"/>
+   <gentext key="refentry" text="Enhed"/>
+   <gentext key="RefName" text="Navn"/>
+   <gentext key="refname" text="Navn"/>
+   <gentext key="Reference" text="Reference"/>
+   <gentext key="reference" text="Reference"/>
+   <gentext key="Revision" text="Revision"/>
+   <gentext key="revision" text="Revision"/>
+   <gentext key="RevHistory" text="Revision historie"/>
+   <gentext key="revhistory" text="Revision historie"/>
+   <gentext key="RefSection" text="Sektion"/>
+   <gentext key="refsection" text="Sektion"/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="Section" text="Afsnit"/>
+   <gentext key="See" text="Se"/>
+   <gentext key="see" text="Se"/>
+   <gentext key="SeeAlso" text="Se ogs&#229;"/>
+   <gentext key="seealso" text="Se ogs&#229;"/>
+   <gentext key="Set" text="S&#230;t"/>
+   <gentext key="set" text="S&#230;t"/>
+   <gentext key="SetIndex" text="S&#230;t indeks"/>
+   <gentext key="setindex" text="S&#230;t indeks"/>
+   <gentext key="Sidebar" text="Side bar"/>
+   <gentext key="Step" text="Skridt"/>
+   <gentext key="TIP" text="TIP"/>
+   <gentext key="tip" text="TIP"/>
+   <gentext key="Table" text="Tabel"/>
+   <gentext key="table" text="Tabel"/>
+   <gentext key="Tip" text="Tip"/>
+   <gentext key="tip" text="Tip"/>
+   <gentext key="WARNING" text="ADVARSEL"/>
+   <gentext key="warning" text="ADVARSEL"/>
+   <gentext key="Warning" text="Advarsel"/>
+   <gentext key="warning" text="Advarsel"/>
+   <gentext key="appendix" text="appendiks"/>
+   <gentext key="chapter" text="kapitel"/>
+   <gentext key="section" text="afsnit"/>
+   <gentext key="sidebar" text="side bar"/>
+   <gentext key="step" text="skridt"/>
+   <gentext key="Seealso" text="Se ogs&#229;"/>
+   <gentext key="seealso" text="Se ogs&#229;"/>
+   <gentext key="TableofContents" text="Indholdsfortegnelse"/>
+   <gentext key="tableofcontents" text="Indholdsfortegnelse"/>
+   <gentext key="in" text="i"/>
+   <gentext key="by" text="af"/>
+   <gentext key="Edited" text="Redigeret"/>
+   <gentext key="edited" text="Redigeret"/>
+   <gentext key="Editedby" text="Redigeret af"/>
+   <gentext key="editedby" text="Redigeret af"/>
+   <gentext key="and" text="og"/>
+   <gentext key="Notes" text="Slutbem&#230;rkning:"/>
+   <gentext key="notes" text="Slutbem&#230;rkning:"/>
+   <gentext key="TableNotes" text="Noter:"/>
+   <gentext key="tablenotes" text="Noter:"/>
+   <gentext key="nonexistantelement" text="ikke-eksisterende element"/>
+   <gentext key="Pgs" text="siderne"/>
+   <gentext key="pgs" text="siderne"/>
+   <gentext key="unsupported" text="ikke underst&#248;ttet"/>
+   <gentext key="xrefto" text="xref til"/>
+   <gentext key="unexpectedelementname" text="Uventet element navn"/>
+   <gentext key="Revisedby" text="Revideret af: "/>
+   <gentext key="revisedby" text="Revideret af: "/>
+   <gentext key="ListofTables" text="Liste over alle tabeller"/>
+   <gentext key="listoftables" text="Liste over alle tabeller"/>
+   <gentext key="ListofExamples" text="Liste over alle eksempler"/>
+   <gentext key="listofexamples" text="Liste over alle eksempler"/>
+   <gentext key="ListofFigures" text="Liste over alle figurer"/>
+   <gentext key="listoffigures" text="Liste over alle figurer"/>
+   <gentext key="ListofEquations" text="Liste over alle ligninger"/>
+   <gentext key="listofequations" text="Liste over alle ligninger"/>
+   <gentext key="ListofUnknown" text="Liste over alle ????"/>
+   <gentext key="listofunknown" text="Liste over alle ????"/>
+   <gentext key="nav-prev" text="Forrige"/>
+   <gentext key="nav-prev-sibling" text="Hurtigt tilbage"/>
+   <gentext key="nav-next-sibling" text="Hurtigt fremad"/>
+   <gentext key="nav-next" text="N&#230;ste"/>
+   <gentext key="nav-up" text="Op"/>
+   <gentext key="nav-home" text="Hjem"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Appendiks %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Kapitel %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Ligning %n. %t"/>
+      <template name="example" text="Eksempel %n. %t"/>
+      <template name="figure" text="Figur %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Del %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabel %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Appendiks %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Kapitel %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Eksempel %n. %t"/>
+      <template name="figure" text="Figur %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Del %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabel %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Afsnit %n"/>
+      <template name="sect2" text="Afsnit %n"/>
+      <template name="sect3" text="Afsnit %n"/>
+      <template name="sect4" text="Afsnit %n"/>
+      <template name="sect5" text="Afsnit %n"/>
+      <template name="section" text="Afsnit %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" og "/>
+      <template name="seplast" text=", og "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Se "/>
+      <template name="seealso" text="Se ogs&#229; "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Niveau: "/>
+      <template name="MsgOrig" text="Grundlag: "/>
+      <template name="MsgAud" text="M&#229;lgruppe: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/de.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/de.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/de.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="de">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Zusammenfassung"/>
+   <gentext key="abstract" text="Zusammenfassung"/>
+   <gentext key="Answer" text="A:"/>
+   <gentext key="answer" text="A:"/>
+   <gentext key="Appendix" text="Anhang"/>
+   <gentext key="Article" text="Artikel"/>
+   <gentext key="article" text="Artikel"/>
+   <gentext key="Bibliography" text="Literaturverzeichnis"/>
+   <gentext key="bibliography" text="Literaturverzeichnis"/>
+   <gentext key="Book" text="Buch"/>
+   <gentext key="book" text="Buch"/>
+   <gentext key="CAUTION" text="ACHTUNG"/>
+   <gentext key="caution" text="ACHTUNG"/>
+   <gentext key="Caution" text="Achtung"/>
+   <gentext key="caution" text="Achtung"/>
+   <gentext key="Chapter" text="Kapitel"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Widmung"/>
+   <gentext key="dedication" text="Widmung"/>
+   <gentext key="Edition" text="Ausgabe"/>
+   <gentext key="edition" text="Ausgabe"/>
+   <gentext key="Equation" text="Gleichung"/>
+   <gentext key="equation" text="Gleichung"/>
+   <gentext key="Example" text="Beispiel"/>
+   <gentext key="example" text="Beispiel"/>
+   <gentext key="Figure" text="Abbildung"/>
+   <gentext key="figure" text="Abbildung"/>
+   <gentext key="GlossSee" text="Siehe"/>
+   <gentext key="glosssee" text="Siehe"/>
+   <gentext key="GlossSeeAlso" text="Siehe auch"/>
+   <gentext key="glossseealso" text="Siehe auch"/>
+   <gentext key="Glossary" text="Glossar"/>
+   <gentext key="glossary" text="Glossar"/>
+   <gentext key="IMPORTANT" text="WICHTIG"/>
+   <gentext key="important" text="WICHTIG"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Wichtig"/>
+   <gentext key="important" text="Wichtig"/>
+   <gentext key="Index" text="Stichwortverzeichnis"/>
+   <gentext key="index" text="Stichwortverzeichnis"/>
+   <gentext key="LegalNotice" text="Rechtlicher Hinweis"/>
+   <gentext key="legalnotice" text="Rechtlicher Hinweis"/>
+   <gentext key="MsgAud" text="Zielgruppe"/>
+   <gentext key="msgaud" text="Zielgruppe"/>
+   <gentext key="MsgLevel" text="Dringlichkeit"/>
+   <gentext key="msglevel" text="Dringlichkeit"/>
+   <gentext key="MsgOrig" text="Ursprung"/>
+   <gentext key="msgorig" text="Ursprung"/>
+   <gentext key="NOTE" text="ANMERKUNG"/>
+   <gentext key="note" text="ANMERKUNG"/>
+   <gentext key="Note" text="Anmerkung"/>
+   <gentext key="note" text="Anmerkung"/>
+   <gentext key="Part" text="Teil"/>
+   <gentext key="part" text="Teil"/>
+   <gentext key="Preface" text="Vorwort"/>
+   <gentext key="preface" text="Vorwort"/>
+   <gentext key="Procedure" text="Prozedur"/>
+   <gentext key="procedure" text="Prozedur"/>
+   <gentext key="Published" text="Ver&#246;ffentlicht"/>
+   <gentext key="published" text="Ver&#246;ffentlicht"/>
+   <gentext key="Question" text="F:"/>
+   <gentext key="question" text="F:"/>
+   <gentext key="RefName" text="Name"/>
+   <gentext key="refname" text="Name"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Verweis"/>
+   <gentext key="reference" text="Verweis"/>
+   <gentext key="RefSection" text="Abschnitt"/>
+   <gentext key="refsection" text="Abschnitt"/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="RevHistory" text="Versionsgeschichte"/>
+   <gentext key="revhistory" text="Versionsgeschichte"/>
+   <gentext key="Revision" text="Version"/>
+   <gentext key="revision" text="Version"/>
+   <gentext key="Section" text="Abschnitt"/>
+   <gentext key="See" text="Siehe"/>
+   <gentext key="see" text="Siehe"/>
+   <gentext key="SeeAlso" text="Siehe auch"/>
+   <gentext key="seealso" text="Siehe auch"/>
+   <gentext key="Seealso" text="Siehe auch"/>
+   <gentext key="seealso" text="Siehe auch"/>
+   <gentext key="Set" text="Satz"/>
+   <gentext key="set" text="Satz"/>
+   <gentext key="SetIndex" text="Stichwortverzeichnis"/>
+   <gentext key="setindex" text="Stichwortverzeichnis"/>
+   <gentext key="Sidebar" text="Randnotiz"/>
+   <gentext key="sidebar" text="randnotiz"/>
+   <gentext key="Step" text="Schritt"/>
+   <gentext key="TIP" text="TIP"/>
+   <gentext key="tip" text="TIP"/>
+   <gentext key="Table" text="Tabelle"/>
+   <gentext key="table" text="Tabelle"/>
+   <gentext key="Tip" text="Tip"/>
+   <gentext key="tip" text="Tip"/>
+   <gentext key="WARNING" text="WARNUNG"/>
+   <gentext key="warning" text="WARNUNG"/>
+   <gentext key="Warning" text="Warnung"/>
+   <gentext key="warning" text="Warnung"/>
+   <gentext key="appendix" text="Anhang"/>
+   <gentext key="chapter" text="Kapitel"/>
+   <gentext key="section" text="Abschnitt"/>
+   <gentext key="step" text="Schritt"/>
+   <gentext key="TableofContents" text="Inhaltsverzeichnis"/>
+   <gentext key="tableofcontents" text="Inhaltsverzeichnis"/>
+   <gentext key="in" text="in"/>
+   <gentext key="by" text="von"/>
+   <gentext key="Edited" text="Herausgegeben"/>
+   <gentext key="edited" text="Herausgegeben"/>
+   <gentext key="Editedby" text="Herausgegeben von"/>
+   <gentext key="editedby" text="Herausgegeben von"/>
+   <gentext key="and" text="und"/>
+   <gentext key="Notes" text="Fu&#223;noten"/>
+   <gentext key="notes" text="Fu&#223;noten"/>
+   <gentext key="TableNotes" text="Bemerkungen"/>
+   <gentext key="tablenotes" text="Bemerkungen"/>
+   <gentext key="nonexistantelement" text="nicht existierendes Element"/>
+   <gentext key="Pgs" text="Seiten"/>
+   <gentext key="pgs" text="Seiten"/>
+   <gentext key="unsupported" text="wird nicht unterst&#252;tzt"/>
+   <gentext key="xrefto" text="xref auf"/>
+   <gentext key="unexpectedelementname" text="Unerwarteter Elementname"/>
+   <gentext key="Revisedby" text="Ge&#228;ndert durch: "/>
+   <gentext key="revisedby" text="Ge&#228;ndert durch: "/>
+   <gentext key="ListofTables" text="Tabellenverzeichnis"/>
+   <gentext key="listoftables" text="Tabellenverzeichnis"/>
+   <gentext key="ListofExamples" text="Beispiele"/>
+   <gentext key="listofexamples" text="Beispiele"/>
+   <gentext key="ListofFigures" text="Abbildungsverzeichnis"/>
+   <gentext key="listoffigures" text="Abbildungsverzeichnis"/>
+   <gentext key="ListofEquations" text="Gleichungen"/>
+   <gentext key="listofequations" text="Gleichungen"/>
+   <gentext key="ListofUnknown" text="???-Verzeichnis"/>
+   <gentext key="listofunknown" text="???-Verzeichnis"/>
+   <gentext key="nav-prev" text="Zur&#252;ck"/>
+   <gentext key="nav-prev-sibling" text="Schnell zur&#252;ck"/>
+   <gentext key="nav-next-sibling" text="Schnell vor"/>
+   <gentext key="nav-next" text="Vor"/>
+   <gentext key="nav-up" text="Hoch"/>
+   <gentext key="nav-home" text="Anfang"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Anhang %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Kapitel %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Gleichung %n. %t"/>
+      <template name="example" text="Beispiel %n. %t"/>
+      <template name="figure" text="Abbildung %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Teil %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabelle %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Anhang %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Kapitel %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Beispiel %n. %t"/>
+      <template name="figure" text="Abbildung %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Teil %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabelle %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Abschnitt %n"/>
+      <template name="sect2" text="Abschnitt %n"/>
+      <template name="sect3" text="Abschnitt %n"/>
+      <template name="sect4" text="Abschnitt %n"/>
+      <template name="sect5" text="Abschnitt %n"/>
+      <template name="section" text="Abschnitt %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" und "/>
+      <template name="seplast" text=" und "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Siehe "/>
+      <template name="seealso" text="Siehe auch "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Dringlichkeit: "/>
+      <template name="MsgOrig" text="Ursprung: "/>
+      <template name="MsgAud" text="Zielgruppe: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/el.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/el.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/el.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="el">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="&#208;&#229;&#241;&#223;&#235;&#231;&#248;&#231;"/>
+   <gentext key="abstract" text="&#208;&#229;&#241;&#223;&#235;&#231;&#248;&#231;"/>
+   <gentext key="Answer" text="&#193;:"/>
+   <gentext key="answer" text="&#193;:"/>
+   <gentext key="Appendix" text="&#208;&#225;&#241;&#220;&#241;&#244;&#231;&#236;&#225;"/>
+   <gentext key="Article" text="&#182;&#241;&#232;&#241;&#239;"/>
+   <gentext key="article" text="&#182;&#241;&#232;&#241;&#239;"/>
+   <gentext key="Bibliography" text="&#194;&#233;&#226;&#235;&#233;&#239;&#227;&#241;&#225;&#246;&#223;&#225;"/>
+   <gentext key="bibliography" text="&#194;&#233;&#226;&#235;&#233;&#239;&#227;&#241;&#225;&#246;&#223;&#225;"/>
+   <gentext key="Book" text="&#194;&#233;&#226;&#235;&#223;&#239;"/>
+   <gentext key="book" text="&#194;&#233;&#226;&#235;&#223;&#239;"/>
+   <gentext key="CAUTION" text="&#208;&#209;&#207;&#211;&#207;&#215;&#199;"/>
+   <gentext key="caution" text="&#208;&#209;&#207;&#211;&#207;&#215;&#199;"/>
+   <gentext key="Caution" text="&#208;&#241;&#239;&#243;&#239;&#247;&#222;"/>
+   <gentext key="caution" text="&#208;&#241;&#239;&#243;&#239;&#247;&#222;"/>
+   <gentext key="Chapter" text="&#202;&#229;&#246;&#220;&#235;&#225;&#233;&#239;"/>
+   <gentext key="Colophon" text="&#202;&#239;&#241;&#249;&#237;&#223;&#228;&#225;"/>
+   <gentext key="colophon" text="&#202;&#239;&#241;&#249;&#237;&#223;&#228;&#225;"/>
+   <gentext key="Copyright" text="&#208;&#237;&#229;&#245;&#236;&#225;&#244;&#233;&#234;&#220; &#196;&#233;&#234;&#225;&#233;&#254;&#236;&#225;&#244;&#225;"/>
+   <gentext key="copyright" text="&#208;&#237;&#229;&#245;&#236;&#225;&#244;&#233;&#234;&#220; &#196;&#233;&#234;&#225;&#233;&#254;&#236;&#225;&#244;&#225;"/>
+   <gentext key="Dedication" text="&#193;&#246;&#233;&#221;&#241;&#249;&#243;&#231;"/>
+   <gentext key="dedication" text="&#193;&#246;&#233;&#221;&#241;&#249;&#243;&#231;"/>
+   <gentext key="Edition" text="&#184;&#234;&#228;&#239;&#243;&#231;"/>
+   <gentext key="edition" text="&#184;&#234;&#228;&#239;&#243;&#231;"/>
+   <gentext key="Equation" text="&#197;&#238;&#223;&#243;&#249;&#243;&#231;"/>
+   <gentext key="equation" text="&#197;&#238;&#223;&#243;&#249;&#243;&#231;"/>
+   <gentext key="Example" text="&#208;&#225;&#241;&#220;&#228;&#229;&#233;&#227;&#236;&#225;"/>
+   <gentext key="example" text="&#208;&#225;&#241;&#220;&#228;&#229;&#233;&#227;&#236;&#225;"/>
+   <gentext key="Figure" text="&#211;&#247;&#222;&#236;&#225;"/>
+   <gentext key="figure" text="&#211;&#247;&#222;&#236;&#225;"/>
+   <gentext key="GlossSee" text="&#196;&#229;&#223;&#244;&#229;"/>
+   <gentext key="glosssee" text="&#196;&#229;&#223;&#244;&#229;"/>
+   <gentext key="GlossSeeAlso" text="&#196;&#229;&#223;&#244;&#229; &#197;&#240;&#223;&#243;&#231;&#242;"/>
+   <gentext key="glossseealso" text="&#196;&#229;&#223;&#244;&#229; &#197;&#240;&#223;&#243;&#231;&#242;"/>
+   <gentext key="Glossary" text="&#195;&#235;&#249;&#243;&#243;&#220;&#241;&#233;&#239;"/>
+   <gentext key="glossary" text="&#195;&#235;&#249;&#243;&#243;&#220;&#241;&#233;&#239;"/>
+   <gentext key="IMPORTANT" text="&#211;&#199;&#204;&#193;&#205;&#212;&#201;&#202;&#207;"/>
+   <gentext key="important" text="&#211;&#199;&#204;&#193;&#205;&#212;&#201;&#202;&#207;"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="&#211;&#231;&#236;&#225;&#237;&#244;&#233;&#234;&#252;"/>
+   <gentext key="important" text="&#211;&#231;&#236;&#225;&#237;&#244;&#233;&#234;&#252;"/>
+   <gentext key="Index" text="&#197;&#245;&#241;&#229;&#244;&#222;&#241;&#233;&#239;"/>
+   <gentext key="index" text="&#197;&#245;&#241;&#229;&#244;&#222;&#241;&#233;&#239;"/>
+   <gentext key="LegalNotice" text="&#205;&#239;&#236;&#233;&#234;&#222; &#211;&#231;&#236;&#229;&#223;&#249;&#243;&#231;"/>
+   <gentext key="legalnotice" text="&#205;&#239;&#236;&#233;&#234;&#222; &#211;&#231;&#236;&#229;&#223;&#249;&#243;&#231;"/>
+   <gentext key="MsgAud" text="&#193;&#234;&#241;&#239;&#225;&#244;&#222;&#241;&#233;&#239;"/>
+   <gentext key="msgaud" text="&#193;&#234;&#241;&#239;&#225;&#244;&#222;&#241;&#233;&#239;"/>
+   <gentext key="MsgLevel" text="&#197;&#240;&#223;&#240;&#229;&#228;&#239;"/>
+   <gentext key="msglevel" text="&#197;&#240;&#223;&#240;&#229;&#228;&#239;"/>
+   <gentext key="MsgOrig" text="&#208;&#231;&#227;&#222;"/>
+   <gentext key="msgorig" text="&#208;&#231;&#227;&#222;"/>
+   <gentext key="NOTE" text="&#211;&#199;&#204;&#197;&#201;&#217;&#211;&#199;"/>
+   <gentext key="note" text="&#211;&#199;&#204;&#197;&#201;&#217;&#211;&#199;"/>
+   <gentext key="Note" text="&#211;&#231;&#236;&#229;&#223;&#249;&#243;&#231;"/>
+   <gentext key="note" text="&#211;&#231;&#236;&#229;&#223;&#249;&#243;&#231;"/>
+   <gentext key="Part" text="&#204;&#221;&#241;&#239;&#242;"/>
+   <gentext key="part" text="&#204;&#221;&#241;&#239;&#242;"/>
+   <gentext key="Preface" text="&#197;&#233;&#243;&#225;&#227;&#249;&#227;&#222;"/>
+   <gentext key="preface" text="&#197;&#233;&#243;&#225;&#227;&#249;&#227;&#222;"/>
+   <gentext key="Procedure" text="&#196;&#233;&#225;&#228;&#233;&#234;&#225;&#243;&#223;&#225;"/>
+   <gentext key="procedure" text="&#196;&#233;&#225;&#228;&#233;&#234;&#225;&#243;&#223;&#225;"/>
+   <gentext key="Published" text="&#196;&#231;&#236;&#239;&#243;&#233;&#229;&#245;&#236;&#221;&#237;&#239;"/>
+   <gentext key="published" text="&#196;&#231;&#236;&#239;&#243;&#233;&#229;&#245;&#236;&#221;&#237;&#239;"/>
+   <gentext key="Question" text="&#197;:"/>
+   <gentext key="question" text="&#197;:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="&#193;&#237;&#225;&#246;&#239;&#241;&#220;"/>
+   <gentext key="reference" text="&#193;&#237;&#225;&#246;&#239;&#241;&#220;"/>
+   <gentext key="RefName" text="&#188;&#237;&#239;&#236;&#225;"/>
+   <gentext key="refname" text="&#188;&#237;&#239;&#236;&#225;"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="&#211;&#253;&#237;&#239;&#248;&#231;"/>
+   <gentext key="refsynopsisdiv" text="&#211;&#253;&#237;&#239;&#248;&#231;"/>
+   <gentext key="Revision" text="&#193;&#237;&#225;&#232;&#229;&#254;&#241;&#231;&#243;&#231;"/>
+   <gentext key="revision" text="&#193;&#237;&#225;&#232;&#229;&#254;&#241;&#231;&#243;&#231;"/>
+   <gentext key="RevHistory" text="&#201;&#243;&#244;&#239;&#241;&#233;&#234;&#252; &#193;&#237;&#225;&#232;&#229;&#249;&#241;&#222;&#243;&#229;&#249;&#237;"/>
+   <gentext key="revhistory" text="&#201;&#243;&#244;&#239;&#241;&#233;&#234;&#252; &#193;&#237;&#225;&#232;&#229;&#249;&#241;&#222;&#243;&#229;&#249;&#237;"/>
+   <gentext key="Section" text="&#212;&#236;&#222;&#236;&#225;"/>
+   <gentext key="See" text="&#196;&#229;&#223;&#244;&#229;"/>
+   <gentext key="see" text="&#196;&#229;&#223;&#244;&#229;"/>
+   <gentext key="SeeAlso" text="&#196;&#229;&#223;&#244;&#229; &#197;&#240;&#223;&#243;&#231;&#242;"/>
+   <gentext key="seealso" text="&#196;&#229;&#223;&#244;&#229; &#197;&#240;&#223;&#243;&#231;&#242;"/>
+   <gentext key="Set" text="&#211;&#253;&#237;&#239;&#235;&#239;"/>
+   <gentext key="set" text="&#211;&#253;&#237;&#239;&#235;&#239;"/>
+   <gentext key="SetIndex" text="&#197;&#245;&#241;&#229;&#244;&#222;&#241;&#233;&#239; &#211;&#245;&#237;&#252;&#235;&#249;&#237;"/>
+   <gentext key="setindex" text="&#197;&#245;&#241;&#229;&#244;&#222;&#241;&#233;&#239; &#211;&#245;&#237;&#252;&#235;&#249;&#237;"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="&#214;&#220;&#243;&#231;"/>
+   <gentext key="TIP" text="&#213;&#208;&#207;&#196;&#197;&#201;&#206;&#199;"/>
+   <gentext key="tip" text="&#213;&#208;&#207;&#196;&#197;&#201;&#206;&#199;"/>
+   <gentext key="Table" text="&#208;&#223;&#237;&#225;&#234;&#225;&#242;"/>
+   <gentext key="table" text="&#208;&#223;&#237;&#225;&#234;&#225;&#242;"/>
+   <gentext key="Tip" text="&#213;&#240;&#252;&#228;&#229;&#233;&#238;&#231;"/>
+   <gentext key="tip" text="&#213;&#240;&#252;&#228;&#229;&#233;&#238;&#231;"/>
+   <gentext key="WARNING" text="&#208;&#209;&#207;&#197;&#201;&#196;&#207;&#208;&#207;&#201;&#199;&#211;&#199;"/>
+   <gentext key="warning" text="&#208;&#209;&#207;&#197;&#201;&#196;&#207;&#208;&#207;&#201;&#199;&#211;&#199;"/>
+   <gentext key="Warning" text="&#208;&#241;&#239;&#229;&#233;&#228;&#239;&#240;&#239;&#223;&#231;&#243;&#231;"/>
+   <gentext key="warning" text="&#208;&#241;&#239;&#229;&#233;&#228;&#239;&#240;&#239;&#223;&#231;&#243;&#231;"/>
+   <gentext key="appendix" text="&#240;&#225;&#241;&#220;&#241;&#244;&#231;&#236;&#225;"/>
+   <gentext key="chapter" text="&#234;&#229;&#246;&#220;&#235;&#225;&#233;&#239;"/>
+   <gentext key="section" text="&#244;&#236;&#222;&#236;&#225;"/>
+   <gentext key="sidebar" text="&#229;&#240;&#229;&#238;&#231;&#227;&#231;&#236;&#225;&#244;&#233;&#234;&#252; &#240;&#235;&#229;&#245;&#241;&#233;&#234;&#252; &#225;&#241;&#232;&#241;&#223;&#228;&#233;&#239;"/>
+   <gentext key="step" text="&#246;&#220;&#243;&#231;"/>
+   <gentext key="Seealso" text="&#196;&#229;&#223;&#244;&#229; &#229;&#240;&#223;&#243;&#231;&#242;"/>
+   <gentext key="seealso" text="&#196;&#229;&#223;&#244;&#229; &#229;&#240;&#223;&#243;&#231;&#242;"/>
+   <gentext key="TableofContents" text="&#208;&#223;&#237;&#225;&#234;&#225;&#242; &#208;&#229;&#241;&#233;&#229;&#247;&#239;&#236;&#221;&#237;&#249;&#237;"/>
+   <gentext key="tableofcontents" text="&#208;&#223;&#237;&#225;&#234;&#225;&#242; &#208;&#229;&#241;&#233;&#229;&#247;&#239;&#236;&#221;&#237;&#249;&#237;"/>
+   <gentext key="in" text="&#243;&#229;"/>
+   <gentext key="by" text="&#225;&#240;&#252;"/>
+   <gentext key="Edited" text="&#197;&#240;&#233;&#236;&#221;&#235;&#229;&#233;&#225;"/>
+   <gentext key="edited" text="&#197;&#240;&#233;&#236;&#221;&#235;&#229;&#233;&#225;"/>
+   <gentext key="Editedby" text="&#197;&#240;&#233;&#236;&#221;&#235;&#229;&#233;&#225; &#225;&#240;&#252;"/>
+   <gentext key="editedby" text="&#197;&#240;&#233;&#236;&#221;&#235;&#229;&#233;&#225; &#225;&#240;&#252;"/>
+   <gentext key="and" text="&#234;&#225;&#233;"/>
+   <gentext key="Notes" text="&#211;&#231;&#236;&#229;&#233;&#254;&#243;&#229;&#233;&#242;"/>
+   <gentext key="notes" text="&#211;&#231;&#236;&#229;&#233;&#254;&#243;&#229;&#233;&#242;"/>
+   <gentext key="TableNotes" text="&#208;&#223;&#237;&#225;&#234;&#225;&#242; &#211;&#231;&#236;&#229;&#233;&#254;&#243;&#229;&#249;&#237;"/>
+   <gentext key="tablenotes" text="&#208;&#223;&#237;&#225;&#234;&#225;&#242; &#211;&#231;&#236;&#229;&#233;&#254;&#243;&#229;&#249;&#237;"/>
+   <gentext key="nonexistantelement" text="&#236;&#231;-&#245;&#240;&#225;&#241;&#234;&#244;&#252; &#243;&#244;&#239;&#233;&#247;&#229;&#223;&#239;"/>
+   <gentext key="Pgs" text="&#211;&#235;&#228;&#242;."/>
+   <gentext key="pgs" text="&#211;&#235;&#228;&#242;."/>
+   <gentext key="unsupported" text="&#236;&#231; &#245;&#240;&#239;&#243;&#244;&#231;&#241;&#233;&#230;&#252;&#236;&#229;&#237;&#239;"/>
+   <gentext key="xrefto" text="&#225;&#237;&#244;&#233;&#240;&#225;&#241;&#225;&#240;&#239;&#236;&#240;&#222; &#243;&#229;"/>
+   <gentext key="unexpectedelementname" text="&#204;&#231; &#225;&#237;&#225;&#236;&#229;&#237;&#252;&#236;&#229;&#237;&#239; &#252;&#237;&#239;&#236;&#225; &#243;&#244;&#239;&#233;&#247;&#229;&#223;&#239;&#245;"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#208;&#233;&#237;&#220;&#234;&#249;&#237;"/>
+   <gentext key="listoftables" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#208;&#233;&#237;&#220;&#234;&#249;&#237;"/>
+   <gentext key="ListofExamples" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#208;&#225;&#241;&#225;&#228;&#229;&#233;&#227;&#236;&#220;&#244;&#249;&#237;"/>
+   <gentext key="listofexamples" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#208;&#225;&#241;&#225;&#228;&#229;&#233;&#227;&#236;&#220;&#244;&#249;&#237;"/>
+   <gentext key="ListofFigures" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#211;&#247;&#231;&#236;&#220;&#244;&#249;&#237;"/>
+   <gentext key="listoffigures" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#211;&#247;&#231;&#236;&#220;&#244;&#249;&#237;"/>
+   <gentext key="ListofEquations" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#197;&#238;&#233;&#243;&#254;&#243;&#229;&#249;&#237;"/>
+   <gentext key="listofequations" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#197;&#238;&#233;&#243;&#254;&#243;&#229;&#249;&#237;"/>
+   <gentext key="ListofUnknown" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#193;&#227;&#237;&#254;&#243;&#244;&#249;&#237;"/>
+   <gentext key="listofunknown" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#193;&#227;&#237;&#254;&#243;&#244;&#249;&#237;"/>
+   <gentext key="nav-prev" text="&#208;&#241;&#239;&#231;&#227;"/>
+   <gentext key="nav-prev-sibling" text="&#208;&#241;&#239;&#242; &#244;&#231;&#237; &#225;&#241;&#247;&#222;"/>
+   <gentext key="nav-next-sibling" text="&#208;&#241;&#239;&#242; &#244;&#239; &#244;&#221;&#235;&#239;&#242;"/>
+   <gentext key="nav-next" text="&#197;&#240;&#252;&#236;&#229;&#237;&#239;"/>
+   <gentext key="nav-up" text="&#208;&#220;&#237;&#249;"/>
+   <gentext key="nav-home" text="&#193;&#241;&#247;&#222;"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="&#208;&#225;&#241;&#220;&#241;&#244;&#231;&#236;&#225; %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="&#202;&#229;&#246;&#220;&#235;&#225;&#233;&#239; %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="&#197;&#238;&#223;&#243;&#249;&#243;&#231; %n. %t"/>
+      <template name="example" text="&#208;&#225;&#241;&#220;&#228;&#229;&#233;&#227;&#236;&#225; %n. %t"/>
+      <template name="figure" text="&#211;&#247;&#222;&#236;&#225; %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="&#204;&#221;&#241;&#239;&#242; %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="&#208;&#223;&#237;&#225;&#234;&#225;&#242; %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="&#208;&#225;&#241;&#220;&#241;&#244;&#231;&#236;&#225; %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="&#202;&#229;&#246;&#220;&#235;&#225;&#233;&#239; %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="&#208;&#225;&#241;&#220;&#228;&#229;&#233;&#227;&#236;&#225; %n. %t"/>
+      <template name="figure" text="&#211;&#247;&#222;&#236;&#225; %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="&#204;&#221;&#241;&#239;&#242; %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="&#208;&#223;&#237;&#225;&#234;&#225;&#242; %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="&#212;&#236;&#222;&#236;&#225; %n"/>
+      <template name="sect2" text="&#212;&#236;&#222;&#236;&#225; %n"/>
+      <template name="sect3" text="&#212;&#236;&#222;&#236;&#225; %n"/>
+      <template name="sect4" text="&#212;&#236;&#222;&#236;&#225; %n"/>
+      <template name="sect5" text="&#212;&#236;&#222;&#236;&#225; %n"/>
+      <template name="section" text="&#212;&#236;&#222;&#236;&#225; %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" &#234;&#225;&#233; "/>
+      <template name="seplast" text=", &#234;&#225;&#233; "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="&#196;&#229;&#223;&#244;&#229; "/>
+      <template name="seealso" text="&#196;&#229;&#223;&#244;&#229; &#197;&#240;&#223;&#243;&#231;&#242; "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="&#197;&#240;&#223;&#240;&#229;&#228;&#239;: "/>
+      <template name="MsgOrig" text="&#208;&#231;&#227;&#222;: "/>
+      <template name="MsgAud" text="&#193;&#234;&#241;&#239;&#225;&#244;&#222;&#241;&#233;&#239;: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/en.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/en.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/en.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="en">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Abstract"/>
+   <gentext key="abstract" text="Abstract"/>
+   <gentext key="Answer" text="A:"/>
+   <gentext key="answer" text="A:"/>
+   <gentext key="Appendix" text="Appendix"/>
+   <gentext key="Article" text="Article"/>
+   <gentext key="article" text="Article"/>
+   <gentext key="Bibliography" text="Bibliography"/>
+   <gentext key="bibliography" text="Bibliography"/>
+   <gentext key="Book" text="Book"/>
+   <gentext key="book" text="Book"/>
+   <gentext key="CAUTION" text="CAUTION"/>
+   <gentext key="Caution" text="Caution"/>
+   <gentext key="caution" text="Caution"/>
+   <gentext key="Chapter" text="Chapter"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Dedication"/>
+   <gentext key="dedication" text="Dedication"/>
+   <gentext key="Edition" text="Edition"/>
+   <gentext key="edition" text="Edition"/>
+   <gentext key="Equation" text="Equation"/>
+   <gentext key="equation" text="Equation"/>
+   <gentext key="Example" text="Example"/>
+   <gentext key="example" text="Example"/>
+   <gentext key="Figure" text="Figure"/>
+   <gentext key="figure" text="Figure"/>
+   <gentext key="GlossSee" text="See"/>
+   <gentext key="glosssee" text="See"/>
+   <gentext key="GlossSeeAlso" text="See Also"/>
+   <gentext key="glossseealso" text="See Also"/>
+   <gentext key="Glossary" text="Glossary"/>
+   <gentext key="glossary" text="Glossary"/>
+   <gentext key="IMPORTANT" text="IMPORTANT"/>
+   <gentext key="important" text="Important"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Important"/>
+   <gentext key="Index" text="Index"/>
+   <gentext key="index" text="Index"/>
+   <gentext key="LegalNotice" text="Legal Notice"/>
+   <gentext key="legalnotice" text="Legal Notice"/>
+   <gentext key="MsgAud" text="Audience"/>
+   <gentext key="msgaud" text="Audience"/>
+   <gentext key="MsgLevel" text="Level"/>
+   <gentext key="msglevel" text="Level"/>
+   <gentext key="MsgOrig" text="Origin"/>
+   <gentext key="msgorig" text="Origin"/>
+   <gentext key="NOTE" text="NOTE"/>
+   <gentext key="Note" text="Note"/>
+   <gentext key="note" text="Note"/>
+   <gentext key="Part" text="Part"/>
+   <gentext key="part" text="Part"/>
+   <gentext key="Preface" text="Preface"/>
+   <gentext key="preface" text="Preface"/>
+   <gentext key="Procedure" text="Procedure"/>
+   <gentext key="procedure" text="Procedure"/>
+   <gentext key="Published" text="Published"/>
+   <gentext key="published" text="Published"/>
+   <gentext key="Question" text="Q:"/>
+   <gentext key="question" text="Q:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Reference"/>
+   <gentext key="reference" text="Reference"/>
+   <gentext key="RefName" text="Name"/>
+   <gentext key="refname" text="Name"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="Revision" text="Revision"/>
+   <gentext key="revision" text="Revision"/>
+   <gentext key="RevHistory" text="Revision History"/>
+   <gentext key="revhistory" text="Revision History"/>
+   <gentext key="Section" text="Section"/>
+   <gentext key="See" text="See"/>
+   <gentext key="see" text="See"/>
+   <gentext key="SeeAlso" text="See Also"/>
+   <gentext key="seealso" text="See Also"/>
+   <gentext key="Set" text="Set"/>
+   <gentext key="set" text="Set"/>
+   <gentext key="SetIndex" text="Set Index"/>
+   <gentext key="setindex" text="Set Index"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="Step"/>
+   <gentext key="TIP" text="TIP"/>
+   <gentext key="Table" text="Table"/>
+   <gentext key="table" text="Table"/>
+   <gentext key="Tip" text="Tip"/>
+   <gentext key="tip" text="Tip"/>
+   <gentext key="WARNING" text="WARNING"/>
+   <gentext key="Warning" text="Warning"/>
+   <gentext key="warning" text="Warning"/>
+   <gentext key="appendix" text="appendix"/>
+   <gentext key="chapter" text="chapter"/>
+   <gentext key="section" text="Section"/>
+   <gentext key="sect1" text="Section"/>
+   <gentext key="sect2" text="Section"/>
+   <gentext key="sect3" text="Section"/>
+   <gentext key="sect4" text="Section"/>
+   <gentext key="sect5" text="Section"/>
+   <gentext key="sidebar" text="sidebar"/>
+   <gentext key="step" text="step"/>
+   <gentext key="Seealso" text="See also"/>
+   <gentext key="TableofContents" text="Table of Contents"/>
+   <gentext key="tableofcontents" text="Table of Contents"/>
+   <gentext key="in" text="in"/>
+   <gentext key="by" text="by"/>
+   <gentext key="Edited" text="Edited"/>
+   <gentext key="edited" text="Edited"/>
+   <gentext key="Editedby" text="Edited by"/>
+   <gentext key="editedby" text="Edited by"/>
+   <gentext key="and" text="and"/>
+   <gentext key="Notes" text="Notes"/>
+   <gentext key="notes" text="Notes"/>
+   <gentext key="TableNotes" text="Notes"/>
+   <gentext key="tablenotes" text="Notes"/>
+   <gentext key="nonexistantelement" text="non-existant element"/>
+   <gentext key="Pgs" text="Pgs."/>
+   <gentext key="pgs" text="Pgs."/>
+   <gentext key="unsupported" text="unsupported"/>
+   <gentext key="xrefto" text="xref to"/>
+   <gentext key="unexpectedelementname" text="Unexpected element name"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="List of Tables"/>
+   <gentext key="listoftables" text="List of Tables"/>
+   <gentext key="ListofExamples" text="List of Examples"/>
+   <gentext key="listofexamples" text="List of Examples"/>
+   <gentext key="ListofFigures" text="List of Figures"/>
+   <gentext key="listoffigures" text="List of Figures"/>
+   <gentext key="ListofEquations" text="List of Equations"/>
+   <gentext key="listofequations" text="List of Equations"/>
+   <gentext key="ListofUnknown" text="List of Unknown"/>
+   <gentext key="listofunknown" text="List of Unknown"/>
+   <gentext key="nav-prev" text="Prev"/>
+   <gentext key="nav-prev-sibling" text="Fast Backward"/>
+   <gentext key="nav-next-sibling" text="Fast Forward"/>
+   <gentext key="nav-next" text="Next"/>
+   <gentext key="nav-up" text="Up"/>
+   <gentext key="nav-home" text="Home"/>
+   <gentext key="sectioncalled" text="the section called"/>
+   <gentext key="index symbols" text="Symbols"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Appendix %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Chapter %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Equation %n. %t"/>
+      <template name="example" text="Example %n. %t"/>
+      <template name="figure" text="Figure %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Part %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Table %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Appendix %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Chapter %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Example %n. %t"/>
+      <template name="figure" text="Figure %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Part %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="question" text="Q: %n"/>
+      <template name="answer" text="A: %n"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Table %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="the section called &#8220;%t&#8221;"/>
+      <template name="sect2" text="the section called &#8220;%t&#8221;"/>
+      <template name="sect3" text="the section called &#8220;%t&#8221;"/>
+      <template name="sect4" text="the section called &#8220;%t&#8221;"/>
+      <template name="sect5" text="the section called &#8220;%t&#8221;"/>
+      <template name="section" text="the section called &#8220;%t&#8221;"/>
+      <template name="simplesect" text="the section called &#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Section %n"/>
+      <template name="sect2" text="Section %n"/>
+      <template name="sect3" text="Section %n"/>
+      <template name="sect4" text="Section %n"/>
+      <template name="sect5" text="Section %n"/>
+      <template name="section" text="Section %n"/>
+      <template name="simplesect" text="the section called &#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" and "/>
+      <template name="seplast" text=", and "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="See "/>
+      <template name="seealso" text="See Also "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Level: "/>
+      <template name="MsgOrig" text="Origin: "/>
+      <template name="MsgAud" text="Audience: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/es.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/es.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/es.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="es">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Resumen"/>
+   <gentext key="abstract" text="Resumen"/>
+   <gentext key="Answer" text="R:"/>
+   <gentext key="answer" text="R:"/>
+   <gentext key="Appendix" text="Ap&#233;ndice"/>
+   <gentext key="Article" text="Art&#237;culo"/>
+   <gentext key="article" text="Art&#237;culo"/>
+   <gentext key="Bibliography" text="Bibliograf&#237;a"/>
+   <gentext key="bibliography" text="Bibliograf&#237;a"/>
+   <gentext key="Book" text="Libro"/>
+   <gentext key="book" text="Libro"/>
+   <gentext key="CAUTION" text="ATENCI&#211;N"/>
+   <gentext key="caution" text="ATENCI&#211;N"/>
+   <gentext key="Caution" text="Atenci&#243;n"/>
+   <gentext key="caution" text="Atenci&#243;n"/>
+   <gentext key="Chapter" text="Cap&#237;tulo"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Dedicado"/>
+   <gentext key="dedication" text="Dedicado"/>
+   <gentext key="Edition" text="Edici&#243;n"/>
+   <gentext key="edition" text="Edici&#243;n"/>
+   <gentext key="Equation" text="Ecuaci&#243;n"/>
+   <gentext key="equation" text="Ecuaci&#243;n"/>
+   <gentext key="Example" text="Ejemplo"/>
+   <gentext key="example" text="Ejemplo"/>
+   <gentext key="Figure" text="Figura"/>
+   <gentext key="figure" text="Figura"/>
+   <gentext key="GlossSee" text="Ver"/>
+   <gentext key="glosssee" text="Ver"/>
+   <gentext key="GlossSeeAlso" text="Ver tambi&#233;n"/>
+   <gentext key="glossseealso" text="Ver tambi&#233;n"/>
+   <gentext key="Glossary" text="Glosario"/>
+   <gentext key="glossary" text="Glosario"/>
+   <gentext key="IMPORTANT" text="IMPORTANTE"/>
+   <gentext key="important" text="IMPORTANTE"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Importante"/>
+   <gentext key="important" text="Importante"/>
+   <gentext key="Index" text="&#205;ndice"/>
+   <gentext key="index" text="&#205;ndice"/>
+   <gentext key="LegalNotice" text="Aviso Legal"/>
+   <gentext key="legalnotice" text="Aviso Legal"/>
+   <gentext key="MsgAud" text="Audiencia"/>
+   <gentext key="msgaud" text="Audiencia"/>
+   <gentext key="MsgLevel" text="Nivel"/>
+   <gentext key="msglevel" text="Nivel"/>
+   <gentext key="MsgOrig" text="Origen"/>
+   <gentext key="msgorig" text="Origen"/>
+   <gentext key="NOTE" text="NOTA"/>
+   <gentext key="note" text="NOTA"/>
+   <gentext key="Note" text="Nota"/>
+   <gentext key="note" text="Nota"/>
+   <gentext key="Part" text="Parte"/>
+   <gentext key="part" text="Parte"/>
+   <gentext key="Preface" text="Prefacio"/>
+   <gentext key="preface" text="Prefacio"/>
+   <gentext key="Procedure" text="Procedimiento"/>
+   <gentext key="procedure" text="Procedimiento"/>
+   <gentext key="PubDate" text="Fecha de publicaci&#243;n"/>
+   <gentext key="pubdate" text="Fecha de publicaci&#243;n"/>
+   <gentext key="Published" text="Publicado"/>
+   <gentext key="published" text="Publicado"/>
+   <gentext key="Question" text="P:"/>
+   <gentext key="question" text="P:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="RefName" text="Nombre"/>
+   <gentext key="refname" text="Nombre"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="Reference" text="Referencia"/>
+   <gentext key="reference" text="Referencia"/>
+   <gentext key="Revision" text="Revisi&#243;n"/>
+   <gentext key="revision" text="Revisi&#243;n"/>
+   <gentext key="RevHistory" text="Historial de revisiones"/>
+   <gentext key="revhistory" text="Historial de revisiones"/>
+   <gentext key="Section" text="Secci&#243;n"/>
+   <gentext key="See" text="Ver"/>
+   <gentext key="see" text="Ver"/>
+   <gentext key="SeeAlso" text="Ver Tambi&#233;n"/>
+   <gentext key="seealso" text="Ver Tambi&#233;n"/>
+   <gentext key="Set" text="Conjunto"/>
+   <gentext key="set" text="Conjunto"/>
+   <gentext key="SetIndex" text="&#205;ndice del conjunto"/>
+   <gentext key="setindex" text="&#205;ndice del conjunto"/>
+   <gentext key="Sidebar" text="Sidebar"/>
+   <gentext key="sidebar" text="sidebar"/>
+   <gentext key="Step" text="Paso"/>
+   <gentext key="TIP" text="SUGERENCIA"/>
+   <gentext key="tip" text="SUGERENCIA"/>
+   <gentext key="Table" text="Tabla"/>
+   <gentext key="table" text="Tabla"/>
+   <gentext key="Tip" text="Sugerencia"/>
+   <gentext key="tip" text="Sugerencia"/>
+   <gentext key="WARNING" text="AVISO"/>
+   <gentext key="warning" text="AVISO"/>
+   <gentext key="Warning" text="Aviso"/>
+   <gentext key="warning" text="Aviso"/>
+   <gentext key="appendix" text="ap&#233;ndice"/>
+   <gentext key="chapter" text="cap&#237;tulo"/>
+   <gentext key="section" text="secci&#243;n"/>
+   <gentext key="step" text="paso"/>
+   <gentext key="Seealso" text="Ver Tambi&#233;n"/>
+   <gentext key="seealso" text="Ver Tambi&#233;n"/>
+   <gentext key="TableofContents" text="Tabla de contenidos"/>
+   <gentext key="tableofcontents" text="Tabla de contenidos"/>
+   <gentext key="in" text="en"/>
+   <gentext key="by" text="por"/>
+   <gentext key="Edited" text="Editado"/>
+   <gentext key="edited" text="Editado"/>
+   <gentext key="Editedby" text="Editado por"/>
+   <gentext key="editedby" text="Editado por"/>
+   <gentext key="and" text="y"/>
+   <gentext key="Notes" text="Notas"/>
+   <gentext key="notes" text="Notas"/>
+   <gentext key="TableNotes" text="Notas"/>
+   <gentext key="tablenotes" text="Notas"/>
+   <gentext key="nonexistantelement" text="elemento inexistente"/>
+   <gentext key="Pgs" text="Pags."/>
+   <gentext key="pgs" text="Pags."/>
+   <gentext key="unsupported" text="no soportado"/>
+   <gentext key="xrefto" text="referido a"/>
+   <gentext key="unexpectedelementname" text="Nombre de elemento inesperado"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="Lista de tablas"/>
+   <gentext key="listoftables" text="Lista de tablas"/>
+   <gentext key="ListofExamples" text="Tabla de ejemplos"/>
+   <gentext key="listofexamples" text="Tabla de ejemplos"/>
+   <gentext key="ListofFigures" text="Tabla de figuras"/>
+   <gentext key="listoffigures" text="Tabla de figuras"/>
+   <gentext key="ListofEquations" text="Tabla de ecuaciones"/>
+   <gentext key="listofequations" text="Tabla de ecuaciones"/>
+   <gentext key="ListofUnknown" text="Lista de ???"/>
+   <gentext key="listofunknown" text="Lista de ???"/>
+   <gentext key="nav-prev" text="Anterior"/>
+   <gentext key="nav-prev-sibling" text="Retroceder"/>
+   <gentext key="nav-next-sibling" text="Avanzar"/>
+   <gentext key="nav-next" text="Siguiente"/>
+   <gentext key="nav-up" text="Subir"/>
+   <gentext key="nav-home" text="Inicio"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Ap&#233;ndice %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Cap&#237;tulo %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Ecuaci&#243;n %n. %t"/>
+      <template name="example" text="Ejemplo %n. %t"/>
+      <template name="figure" text="Figura %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Parte %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabla %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Ap&#233;ndice %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Cap&#237;tulo %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Ejemplo %n. %t"/>
+      <template name="figure" text="Figura %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Parte %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabla %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Secci&#243;n %n"/>
+      <template name="sect2" text="Secci&#243;n %n"/>
+      <template name="sect3" text="Secci&#243;n %n"/>
+      <template name="sect4" text="Secci&#243;n %n"/>
+      <template name="sect5" text="Secci&#243;n %n"/>
+      <template name="section" text="Secci&#243;n %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" y "/>
+      <template name="seplast" text=", y "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Ver "/>
+      <template name="seealso" text="Ver tambi&#233;n "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Nivel: "/>
+      <template name="MsgOrig" text="Origen: "/>
+      <template name="MsgAud" text="Audiencia: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/et.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/et.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/et.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="et">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="&#220;levaade"/>
+   <gentext key="abstract" text="&#220;levaade"/>
+   <gentext key="Answer" text="V:"/>
+   <gentext key="answer" text="V:"/>
+   <gentext key="Appendix" text="Lisa"/>
+   <gentext key="Article" text="Artikkel"/>
+   <gentext key="article" text="Artikkel"/>
+   <gentext key="Bibliography" text="Bibliograafia"/>
+   <gentext key="bibliography" text="Bibliograafia"/>
+   <gentext key="Book" text="Raamat"/>
+   <gentext key="book" text="Raamat"/>
+   <gentext key="CAUTION" text="ETTEVAATUST"/>
+   <gentext key="caution" text="ETTEVAATUST"/>
+   <gentext key="Caution" text="Ettevaatust"/>
+   <gentext key="caution" text="Ettevaatust"/>
+   <gentext key="Chapter" text="Peat&#252;kk"/>
+   <gentext key="Colophon" text="L&#245;pum&#228;rgis"/>
+   <gentext key="colophon" text="L&#245;pum&#228;rgis"/>
+   <gentext key="Copyright" text="Autori&#245;igus"/>
+   <gentext key="copyright" text="Autori&#245;igus"/>
+   <gentext key="Dedication" text="P&#252;hendus"/>
+   <gentext key="dedication" text="P&#252;hendus"/>
+   <gentext key="Edition" text="V&#228;ljaanne"/>
+   <gentext key="edition" text="V&#228;ljaanne"/>
+   <gentext key="Equation" text="Valem"/>
+   <gentext key="equation" text="Valem"/>
+   <gentext key="Example" text="N&#228;ide"/>
+   <gentext key="example" text="N&#228;ide"/>
+   <gentext key="Figure" text="Joonis"/>
+   <gentext key="figure" text="Joonis"/>
+   <gentext key="GlossSee" text="Vt."/>
+   <gentext key="glosssee" text="Vt."/>
+   <gentext key="GlossSeeAlso" text="Vt. ka"/>
+   <gentext key="glossseealso" text="Vt. ka"/>
+   <gentext key="Glossary" text="S&#245;nastik"/>
+   <gentext key="glossary" text="S&#245;nastik"/>
+   <gentext key="IMPORTANT" text="OLULINE"/>
+   <gentext key="important" text="OLULINE"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Oluline"/>
+   <gentext key="important" text="Oluline"/>
+   <gentext key="Index" text="Aineregister"/>
+   <gentext key="index" text="Aineregister"/>
+   <gentext key="LegalNotice" text="Autori&#245;iguse m&#228;rge"/>
+   <gentext key="legalnotice" text="Autori&#245;iguse m&#228;rge"/>
+   <gentext key="MsgAud" text="Auditoorium"/>
+   <gentext key="msgaud" text="Auditoorium"/>
+   <gentext key="MsgLevel" text="Tase"/>
+   <gentext key="msglevel" text="Tase"/>
+   <gentext key="MsgOrig" text="Algallikas"/>
+   <gentext key="msgorig" text="Algallikas"/>
+   <gentext key="NOTE" text="M&#196;RKUS"/>
+   <gentext key="note" text="M&#196;RKUS"/>
+   <gentext key="Note" text="M&#228;rkus"/>
+   <gentext key="note" text="M&#228;rkus"/>
+   <gentext key="Part" text="Osa"/>
+   <gentext key="part" text="Osa"/>
+   <gentext key="Preface" text="Eess&#245;na"/>
+   <gentext key="preface" text="Eess&#245;na"/>
+   <gentext key="Procedure" text="Protseduur"/>
+   <gentext key="procedure" text="Protseduur"/>
+   <gentext key="Published" text="Avaldatud"/>
+   <gentext key="published" text="Avaldatud"/>
+   <gentext key="Question" text="K:"/>
+   <gentext key="question" text="K:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Viide"/>
+   <gentext key="reference" text="Viide"/>
+   <gentext key="RefName" text="Nimi"/>
+   <gentext key="refname" text="Nimi"/>
+   <gentext key="RefSection" text="L&#245;ik"/>
+   <gentext key="refsection" text="L&#245;ik"/>
+   <gentext key="RefSynopsisDiv" text="S&#252;nopsis"/>
+   <gentext key="refsynopsisdiv" text="S&#252;nopsis"/>
+   <gentext key="Revision" text="Vigade parandus"/>
+   <gentext key="revision" text="Vigade parandus"/>
+   <gentext key="RevHistory" text="Vigade paranduste ajalugu"/>
+   <gentext key="revhistory" text="Vigade paranduste ajalugu"/>
+   <gentext key="Section" text="Sektsioon"/>
+   <gentext key="See" text="Vt."/>
+   <gentext key="see" text="Vt."/>
+   <gentext key="SeeAlso" text="Vt. ka"/>
+   <gentext key="seealso" text="Vt. ka"/>
+   <gentext key="Set" text="Sea"/>
+   <gentext key="set" text="Sea"/>
+   <gentext key="SetIndex" text="Sea indeks"/>
+   <gentext key="setindex" text="Sea indeks"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="Samm"/>
+   <gentext key="TIP" text="VIHJE"/>
+   <gentext key="tip" text="VIHJE"/>
+   <gentext key="Table" text="Tabel"/>
+   <gentext key="table" text="Tabel"/>
+   <gentext key="Tip" text="Vihje"/>
+   <gentext key="tip" text="Vihje"/>
+   <gentext key="WARNING" text="HOIATUS"/>
+   <gentext key="warning" text="HOIATUS"/>
+   <gentext key="Warning" text="Hoiatus"/>
+   <gentext key="warning" text="Hoiatus"/>
+   <gentext key="appendix" text="lisa"/>
+   <gentext key="chapter" text="peat&#252;kk"/>
+   <gentext key="section" text="l&#245;ik"/>
+   <gentext key="sidebar" text="k&#252;lgriba"/>
+   <gentext key="step" text="samm"/>
+   <gentext key="Seealso" text="Vt. ka"/>
+   <gentext key="seealso" text="Vt. ka"/>
+   <gentext key="TableofContents" text="Sisukord"/>
+   <gentext key="tableofcontents" text="Sisukord"/>
+   <gentext key="in" text=""/>
+   <gentext key="by" text=""/>
+   <gentext key="Edited" text="Redaktsioon"/>
+   <gentext key="edited" text="Redaktsioon"/>
+   <gentext key="Editedby" text="Redaktsiooni autor(id)"/>
+   <gentext key="editedby" text="Redaktsiooni autor(id)"/>
+   <gentext key="and" text="ja"/>
+   <gentext key="Notes" text="M&#228;rkused"/>
+   <gentext key="notes" text="M&#228;rkused"/>
+   <gentext key="TableNotes" text="M&#228;rkused"/>
+   <gentext key="tablenotes" text="M&#228;rkused"/>
+   <gentext key="nonexistantelement" text="mitte eksisteeriv element"/>
+   <gentext key="Pgs" text="Lk."/>
+   <gentext key="pgs" text="Lk."/>
+   <gentext key="unsupported" text="toetuseta"/>
+   <gentext key="xrefto" text="viide"/>
+   <gentext key="unexpectedelementname" text="Ootamatu elemendi nimi"/>
+   <gentext key="Revisedby" text="&#220;le vaadanud: "/>
+   <gentext key="revisedby" text="&#220;le vaadanud: "/>
+   <gentext key="ListofTables" text="Tabelite nimekiri"/>
+   <gentext key="listoftables" text="Tabelite nimekiri"/>
+   <gentext key="ListofExamples" text="N&#228;idete nimekiri"/>
+   <gentext key="listofexamples" text="N&#228;idete nimekiri"/>
+   <gentext key="ListofFigures" text="Jooniste nimekiri"/>
+   <gentext key="listoffigures" text="Jooniste nimekiri"/>
+   <gentext key="ListofEquations" text="Valemite nimekiri"/>
+   <gentext key="listofequations" text="Valemite nimekiri"/>
+   <gentext key="ListofUnknown" text="Tundmatute nimekiri"/>
+   <gentext key="listofunknown" text="Tundmatute nimekiri"/>
+   <gentext key="nav-prev" text="Eelmine"/>
+   <gentext key="nav-prev-sibling" text="Kiiresti tagasi"/>
+   <gentext key="nav-next-sibling" text="Kiiresti edasi"/>
+   <gentext key="nav-next" text="J&#228;rgmine"/>
+   <gentext key="nav-up" text="&#220;les"/>
+   <gentext key="nav-home" text="Koju"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Lisa %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Peat&#252;kk %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Valem %n. %t"/>
+      <template name="example" text="N&#228;ide %n. %t"/>
+      <template name="figure" text="Joonis %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Osa %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabel %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Lisa %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Peat&#252;kk %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="N&#228;ide %n. %t"/>
+      <template name="figure" text="Joonis %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Osa %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabel %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Sektsioon %n"/>
+      <template name="sect2" text="Sektsioon %n"/>
+      <template name="sect3" text="Sektsioon %n"/>
+      <template name="sect4" text="Sektsioon %n"/>
+      <template name="sect5" text="Sektsioon %n"/>
+      <template name="section" text="Sektsioon %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" ja "/>
+      <template name="seplast" text=", ja "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Vt. "/>
+      <template name="seealso" text="Vt. ka "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Tase: "/>
+      <template name="MsgOrig" text="Algallikas: "/>
+      <template name="MsgAud" text="Auditoorium: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/fi.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/fi.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/fi.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="fi">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Lyhennelm&#228;"/>
+   <gentext key="abstract" text="Lyhennelm&#228;"/>
+   <gentext key="Answer" text="A:"/>
+   <gentext key="answer" text="A:"/>
+   <gentext key="Appendix" text="Liite"/>
+   <gentext key="Article" text="Artikkeli"/>
+   <gentext key="article" text="Artikkeli"/>
+   <gentext key="Bibliography" text="L&#228;hteet"/>
+   <gentext key="bibliography" text="L&#228;hteet"/>
+   <gentext key="Book" text="Kirja"/>
+   <gentext key="book" text="Kirja"/>
+   <gentext key="CAUTION" text="VARO"/>
+   <gentext key="caution" text="VARO"/>
+   <gentext key="Caution" text="Varo"/>
+   <gentext key="caution" text="Varo"/>
+   <gentext key="Chapter" text="Luku"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Omistus"/>
+   <gentext key="dedication" text="Omistus"/>
+   <gentext key="Edition" text="Edition"/>
+   <gentext key="edition" text="Edition"/>
+   <gentext key="Equation" text="Kaava"/>
+   <gentext key="equation" text="Kaava"/>
+   <gentext key="Example" text="Esimerkki"/>
+   <gentext key="example" text="Esimerkki"/>
+   <gentext key="Figure" text="Kuva"/>
+   <gentext key="figure" text="Kuva"/>
+   <gentext key="GlossSee" text="Katso"/>
+   <gentext key="glosssee" text="Katso"/>
+   <gentext key="GlossSeeAlso" text="Katso my&#246;s"/>
+   <gentext key="glossseealso" text="Katso my&#246;s"/>
+   <gentext key="Glossary" text="Sanasto"/>
+   <gentext key="glossary" text="Sanasto"/>
+   <gentext key="IMPORTANT" text="T&#196;RKE&#196;&#196;"/>
+   <gentext key="important" text="T&#196;RKE&#196;&#196;"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="T&#228;rke&#228;&#228;"/>
+   <gentext key="important" text="T&#228;rke&#228;&#228;"/>
+   <gentext key="Index" text="Indeksi"/>
+   <gentext key="index" text="Indeksi"/>
+   <gentext key="LegalNotice" text=""/>
+   <gentext key="legalnotice" text=""/>
+   <gentext key="MsgAud" text="Yleis&#246;"/>
+   <gentext key="msgaud" text="Yleis&#246;"/>
+   <gentext key="MsgLevel" text="Taso"/>
+   <gentext key="msglevel" text="Taso"/>
+   <gentext key="MsgOrig" text="Alkuper&#228;"/>
+   <gentext key="msgorig" text="Alkuper&#228;"/>
+   <gentext key="NOTE" text="HUOMAA"/>
+   <gentext key="note" text="HUOMAA"/>
+   <gentext key="Note" text="Huomaa"/>
+   <gentext key="note" text="Huomaa"/>
+   <gentext key="Part" text="Osa"/>
+   <gentext key="part" text="Osa"/>
+   <gentext key="Preface" text="Esipuhe"/>
+   <gentext key="preface" text="Esipuhe"/>
+   <gentext key="Procedure" text="Aliohjelma"/>
+   <gentext key="procedure" text="Aliohjelma"/>
+   <gentext key="Published" text="Julkaistu"/>
+   <gentext key="published" text="Julkaistu"/>
+   <gentext key="Question" text="Q:"/>
+   <gentext key="question" text="Q:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="RefName" text="Nimi"/>
+   <gentext key="refname" text="Nimi"/>
+   <gentext key="Reference" text="L&#228;hdeluettelo"/>
+   <gentext key="reference" text="L&#228;hdeluettelo"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="Revision" text="Versio"/>
+   <gentext key="revision" text="Versio"/>
+   <gentext key="RevHistory" text="Versiohistoria"/>
+   <gentext key="revhistory" text="Versiohistoria"/>
+   <gentext key="Section" text="Kohta"/>
+   <gentext key="See" text="Katso"/>
+   <gentext key="see" text="Katso"/>
+   <gentext key="SeeAlso" text="Katso my&#246;s"/>
+   <gentext key="seealso" text="Katso my&#246;s"/>
+   <gentext key="Set" text="Kokoelma"/>
+   <gentext key="set" text="Kokoelma"/>
+   <gentext key="SetIndex" text="Kokoelman indeksi"/>
+   <gentext key="setindex" text="Kokoelman indeksi"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="Step"/>
+   <gentext key="TIP" text="VIHJE"/>
+   <gentext key="tip" text="VIHJE"/>
+   <gentext key="Table" text="Taulu"/>
+   <gentext key="table" text="Taulu"/>
+   <gentext key="Tip" text="Vihje"/>
+   <gentext key="tip" text="Vihje"/>
+   <gentext key="WARNING" text="VAROITUS"/>
+   <gentext key="warning" text="VAROITUS"/>
+   <gentext key="Warning" text="Varoitus"/>
+   <gentext key="warning" text="Varoitus"/>
+   <gentext key="appendix" text="liite"/>
+   <gentext key="chapter" text="luku"/>
+   <gentext key="section" text="kohta"/>
+   <gentext key="sidebar" text="sivupalkki"/>
+   <gentext key="step" text="step"/>
+   <gentext key="Seealso" text="Katso my&#246;s"/>
+   <gentext key="seealso" text="Katso my&#246;s"/>
+   <gentext key="TableofContents" text="Sis&#228;llys"/>
+   <gentext key="tableofcontents" text="Sis&#228;llys"/>
+   <gentext key="in" text="teoksessa"/>
+   <gentext key="by" text=""/>
+   <gentext key="Edited" text="Toim."/>
+   <gentext key="edited" text="Toim."/>
+   <gentext key="Editedby" text="Toimittanut"/>
+   <gentext key="editedby" text="Toimittanut"/>
+   <gentext key="and" text="ja"/>
+   <gentext key="Notes" text=""/>
+   <gentext key="notes" text=""/>
+   <gentext key="TableNotes" text=""/>
+   <gentext key="tablenotes" text=""/>
+   <gentext key="nonexistantelement" text="elementti&#228; ei ole olemassa"/>
+   <gentext key="Pgs" text="Sivut"/>
+   <gentext key="pgs" text="Sivut"/>
+   <gentext key="unsupported" text="ei tueta"/>
+   <gentext key="xrefto" text="xref johonkin"/>
+   <gentext key="unexpectedelementname" text="Odottamaton elementin nimi"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="Luettelo tauluista"/>
+   <gentext key="listoftables" text="Luettelo tauluista"/>
+   <gentext key="ListofExamples" text="Luettelo esimerkeist&#228;"/>
+   <gentext key="listofexamples" text="Luettelo esimerkeist&#228;"/>
+   <gentext key="ListofFigures" text="Luettelo kuvista"/>
+   <gentext key="listoffigures" text="Luettelo kuvista"/>
+   <gentext key="ListofEquations" text="Luettelo esimerkeist&#228;"/>
+   <gentext key="listofequations" text="Luettelo esimerkeist&#228;"/>
+   <gentext key="ListofUnknown" text="Luettelo tuntemattomista"/>
+   <gentext key="listofunknown" text="Luettelo tuntemattomista"/>
+   <gentext key="nav-prev" text="Edellinen"/>
+   <gentext key="nav-prev-sibling" text="Nopeasti taaksep&#228;in"/>
+   <gentext key="nav-next-sibling" text="Nopeasti eteenp&#228;in"/>
+   <gentext key="nav-next" text="Seuraava"/>
+   <gentext key="nav-up" text="Yl&#246;s"/>
+   <gentext key="nav-home" text="Alkuun"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Liite %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Luku %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Kaava %n. %t"/>
+      <template name="example" text="Esimerkki %n. %t"/>
+      <template name="figure" text="Kuva %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Osa %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Taulu %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Liite %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Luku %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Esimerkki %n. %t"/>
+      <template name="figure" text="Kuva %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Osa %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Taulu %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Kohta %n"/>
+      <template name="sect2" text="Kohta %n"/>
+      <template name="sect3" text="Kohta %n"/>
+      <template name="sect4" text="Kohta %n"/>
+      <template name="sect5" text="Kohta %n"/>
+      <template name="section" text="Kohta %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" ja "/>
+      <template name="seplast" text=", ja "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Katso "/>
+      <template name="seealso" text="Katso my&#246;s "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Taso: "/>
+      <template name="MsgOrig" text="Alkuper&#228;: "/>
+      <template name="MsgAud" text="Yleis&#246;: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/fr.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/fr.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/fr.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="fr">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="R&#233;sum&#233;"/>
+   <gentext key="abstract" text="R&#233;sum&#233;"/>
+   <gentext key="Answer" text="R&#160;:"/>
+   <gentext key="answer" text="R&#160;:"/>
+   <gentext key="Appendix" text="Annexe"/>
+   <gentext key="Article" text="Article"/>
+   <gentext key="article" text="Article"/>
+   <gentext key="Bibliography" text="Bibliographie"/>
+   <gentext key="bibliography" text="Bibliographie"/>
+   <gentext key="Book" text="Livre"/>
+   <gentext key="book" text="Livre"/>
+   <gentext key="CAUTION" text="ATTENTION"/>
+   <gentext key="caution" text="ATTENTION"/>
+   <gentext key="Caution" text="Attention"/>
+   <gentext key="caution" text="Attention"/>
+   <gentext key="Chapter" text="Chapitre"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="D&#233;dicace"/>
+   <gentext key="dedication" text="D&#233;dicace"/>
+   <gentext key="Edition" text="&#201;dition"/>
+   <gentext key="edition" text="&#201;dition"/>
+   <gentext key="Equation" text="&#201;quation"/>
+   <gentext key="equation" text="&#201;quation"/>
+   <gentext key="Example" text="Exemple"/>
+   <gentext key="example" text="Exemple"/>
+   <gentext key="Figure" text="Figure"/>
+   <gentext key="figure" text="Figure"/>
+   <gentext key="GlossSee" text="Voir"/>
+   <gentext key="glosssee" text="Voir"/>
+   <gentext key="GlossSeeAlso" text="Voir aussi"/>
+   <gentext key="glossseealso" text="Voir aussi"/>
+   <gentext key="Glossary" text="Glossaire"/>
+   <gentext key="glossary" text="Glossaire"/>
+   <gentext key="IMPORTANT" text="IMPORTANT"/>
+   <gentext key="important" text="IMPORTANT"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Important"/>
+   <gentext key="important" text="Important"/>
+   <gentext key="Index" text="Index"/>
+   <gentext key="index" text="Index"/>
+   <gentext key="LegalNotice" text="Note l&#233;gale"/>
+   <gentext key="legalnotice" text="Note l&#233;gale"/>
+   <gentext key="MsgAud" text="Public vis&#233;"/>
+   <gentext key="msgaud" text="Public vis&#233;"/>
+   <gentext key="MsgLevel" text="Niveau"/>
+   <gentext key="msglevel" text="Niveau"/>
+   <gentext key="MsgOrig" text="Origine"/>
+   <gentext key="msgorig" text="Origine"/>
+   <gentext key="NOTE" text="NOTE"/>
+   <gentext key="note" text="NOTE"/>
+   <gentext key="Note" text="Note"/>
+   <gentext key="note" text="Note"/>
+   <gentext key="Part" text="Partie"/>
+   <gentext key="part" text="Partie"/>
+   <gentext key="Preface" text="Pr&#233;face"/>
+   <gentext key="preface" text="Pr&#233;face"/>
+   <gentext key="Procedure" text="Proc&#233;dure"/>
+   <gentext key="procedure" text="Proc&#233;dure"/>
+   <gentext key="Published" text="Publi&#233;"/>
+   <gentext key="published" text="Publi&#233;"/>
+   <gentext key="Question" text="Q&#160;:"/>
+   <gentext key="question" text="Q&#160;:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="RefName" text="Nom"/>
+   <gentext key="refname" text="Nom"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="Reference" text="R&#233;f&#233;rence"/>
+   <gentext key="reference" text="R&#233;f&#233;rence"/>
+   <gentext key="RevHistory" text="Historique des versions"/>
+   <gentext key="revhistory" text="Historique des versions"/>
+   <gentext key="Revision" text="Version"/>
+   <gentext key="revision" text="Version"/>
+   <gentext key="Section" text="Section"/>
+   <gentext key="See" text="Voir"/>
+   <gentext key="see" text="Voir"/>
+   <gentext key="SeeAlso" text="Voir Aussi"/>
+   <gentext key="seealso" text="Voir Aussi"/>
+   <gentext key="Seealso" text="Voir aussi"/>
+   <gentext key="seealso" text="Voir aussi"/>
+   <gentext key="Set" text="Ensemble"/>
+   <gentext key="set" text="Ensemble"/>
+   <gentext key="SetIndex" text="Index"/>
+   <gentext key="setindex" text="Index"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="&#201;tape"/>
+   <gentext key="TIP" text="TUYAU"/>
+   <gentext key="tip" text="TUYAU"/>
+   <gentext key="Table" text="Tableau"/>
+   <gentext key="table" text="Tableau"/>
+   <gentext key="Tip" text="Tuyau"/>
+   <gentext key="tip" text="Tuyau"/>
+   <gentext key="WARNING" text="AVERTISSEMENT"/>
+   <gentext key="warning" text="AVERTISSEMENT"/>
+   <gentext key="Warning" text="Avertissement"/>
+   <gentext key="warning" text="Avertissement"/>
+   <gentext key="appendix" text="annexe"/>
+   <gentext key="chapter" text="chapitre"/>
+   <gentext key="sidebar" text=""/>
+   <gentext key="section" text="section"/>
+   <gentext key="step" text="&#233;tape"/>
+   <gentext key="TableofContents" text="Table des mati&#232;res"/>
+   <gentext key="tableofcontents" text="Table des mati&#232;res"/>
+   <gentext key="in" text="dans"/>
+   <gentext key="by" text="par"/>
+   <gentext key="Edited" text="Publi&#233;"/>
+   <gentext key="edited" text="Publi&#233;"/>
+   <gentext key="Editedby" text="Publi&#233; par"/>
+   <gentext key="editedby" text="Publi&#233; par"/>
+   <gentext key="and" text="et"/>
+   <gentext key="Notes" text="Notes"/>
+   <gentext key="notes" text="Notes"/>
+   <gentext key="TableNotes" text="Remarques"/>
+   <gentext key="tablenotes" text="Remarques"/>
+   <gentext key="nonexistantelement" text="Cet &#233;l&#233;ment n'existe pas"/>
+   <gentext key="Pgs" text="Pages"/>
+   <gentext key="pgs" text="Pages"/>
+   <gentext key="unsupported" text="Non reconnu par le syst&#232;me"/>
+   <gentext key="xrefto" text="R&#233;f&#233;rence vers"/>
+   <gentext key="unexpectedelementname" text="Nom d'&#233;l&#233;ment non attendu"/>
+   <gentext key="Revisedby" text="Revu par&#160;: "/>
+   <gentext key="revisedby" text="Revu par&#160;: "/>
+   <gentext key="ListofTables" text="Liste des tableaux"/>
+   <gentext key="listoftables" text="Liste des tableaux"/>
+   <gentext key="ListofExamples" text="Liste des exemples"/>
+   <gentext key="listofexamples" text="Liste des exemples"/>
+   <gentext key="ListofFigures" text="Liste des illustrations"/>
+   <gentext key="listoffigures" text="Liste des illustrations"/>
+   <gentext key="ListofEquations" text="Liste des &#233;quations"/>
+   <gentext key="listofequations" text="Liste des &#233;quations"/>
+   <gentext key="ListofUnknown" text="Liste des inconnues"/>
+   <gentext key="listofunknown" text="Liste des inconnues"/>
+   <gentext key="nav-prev" text="Pr&#233;c&#233;dent"/>
+   <gentext key="nav-prev-sibling" text="Fast Backward"/>
+   <gentext key="nav-next-sibling" text="Fast Forward"/>
+   <gentext key="nav-next" text="Suivant"/>
+   <gentext key="nav-up" text="Niveau sup&#233;rieur"/>
+   <gentext key="nav-home" text="Sommaire"/>
+   <gentext key="sectioncalled" text="la section intitul&#233;e"/>
+   <gentext key="index symbols" text="Symboles"/>
+   <dingbat key="startquote" text="&#171;"/>
+   <dingbat key="endquote" text="&#187;"/>
+   <dingbat key="singlestartquote" text="&#8249;"/>
+   <dingbat key="singleendquote" text="&#8250;"/>
+   <dingbat key="nestedstartquote" text="&#171;"/>
+   <dingbat key="nestedendquote" text="&#187;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Annexe %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Chapitre %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="&#201;quation %n. %t"/>
+      <template name="example" text="Exemple %n. %t"/>
+      <template name="figure" text="Figure %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Partie %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tableau %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Annexe %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Chapitre %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Exemple %n. %t"/>
+      <template name="figure" text="Figure %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Partie %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tableau %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="la section intitul&#233;e &#8220;%t&#8221;"/>
+      <template name="sect2" text="la section intitul&#233;e &#8220;%t&#8221;"/>
+      <template name="sect3" text="la section intitul&#233;e &#8220;%t&#8221;"/>
+      <template name="sect4" text="la section intitul&#233;e &#8220;%t&#8221;"/>
+      <template name="sect5" text="la section intitul&#233;e &#8220;%t&#8221;"/>
+      <template name="section" text="la section intitul&#233;e &#8220;%t&#8221;"/>
+      <template name="simplesect" text="la section intitul&#233;e &#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Section %n"/>
+      <template name="sect2" text="Section %n"/>
+      <template name="sect3" text="Section %n"/>
+      <template name="sect4" text="Section %n"/>
+      <template name="sect5" text="Section %n"/>
+      <template name="section" text="Section %n"/>
+      <template name="simplesect" text="la section intitul&#233;e &#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" et "/>
+      <template name="seplast" text=", et "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Voir "/>
+      <template name="seealso" text="Voir aussi "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Niveau: "/>
+      <template name="MsgOrig" text="Origine: "/>
+      <template name="MsgAud" text="Public vis&#233;: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/gentext.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/gentext.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/gentext.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,385 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.title.template">
+  <xsl:call-template name="gentext.template">
+    <xsl:with-param name="context" select="'title'"/>
+    <xsl:with-param name="name" select="local-name(.)"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section|sect1|sect2|sect3|sect4|sect5|simplesect"
+              mode="object.title.template">
+  <xsl:choose>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'section-title-numbered'"/>
+        <xsl:with-param name="name" select="local-name(.)"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'section-title'"/>
+        <xsl:with-param name="name" select="local-name(.)"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article/appendix"
+              mode="object.title.template">
+  <!-- FIXME: HACK HACK HACK! -->
+  <xsl:text>%n. %t</xsl:text>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.subtitle.template">
+  <xsl:call-template name="gentext.template">
+    <xsl:with-param name="context" select="'subtitle'"/>
+    <xsl:with-param name="name" select="local-name(.)"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.xref.template">
+  <xsl:call-template name="gentext.template">
+    <xsl:with-param name="context" select="'xref'"/>
+    <xsl:with-param name="name" select="local-name(.)"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section|simplesect
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3"
+              mode="object.xref.template">
+  <xsl:choose>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'section-xref-numbered'"/>
+        <xsl:with-param name="name" select="local-name(.)"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'section-xref'"/>
+        <xsl:with-param name="name" select="local-name(.)"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.title.markup">
+  <xsl:variable name="template">
+    <xsl:apply-templates select="." mode="object.title.template"/>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:text>object.title.markup: </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text>: </xsl:text>
+    <xsl:value-of select="$template"/>
+  </xsl:message>
+-->
+
+  <xsl:call-template name="substitute-markup">
+    <xsl:with-param name="allow-anchors" select="1"/>
+    <xsl:with-param name="template" select="$template"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="*" mode="object.title.markup.textonly">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="object.title.markup"/>
+  </xsl:variable>
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.subtitle.markup">
+  <xsl:variable name="template">
+    <xsl:apply-templates select="." mode="object.subtitle.template"/>
+  </xsl:variable>
+
+  <xsl:call-template name="substitute-markup">
+    <xsl:with-param name="template" select="$template"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="object.xref.markup">
+  <xsl:variable name="template">
+    <xsl:apply-templates select="." mode="object.xref.template"/>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:text>object.xref.markup: </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text>: </xsl:text>
+    <xsl:value-of select="$template"/>
+  </xsl:message>
+-->
+
+  <xsl:call-template name="substitute-markup">
+    <xsl:with-param name="template" select="$template"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section|simplesect
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3"
+              mode="object.xref.markup">
+  <xsl:variable name="template">
+    <xsl:apply-templates select="." mode="object.xref.template"/>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:text>object.xref.markup: </xsl:text>
+    <xsl:value-of select="local-name(.)"/>
+    <xsl:text>: </xsl:text>
+    <xsl:value-of select="$template"/>
+  </xsl:message>
+-->
+
+  <xsl:call-template name="substitute-markup">
+    <xsl:with-param name="template" select="$template"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="substitute-markup">
+  <xsl:param name="template" select="''"/>
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="bef-n" select="substring-before($template, '%n')"/>
+  <xsl:variable name="bef-s" select="substring-before($template, '%s')"/>
+  <xsl:variable name="bef-t" select="substring-before($template, '%t')"/>
+
+<!--
+  <xsl:message>
+    <xsl:text>sm: </xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$allow-anchors"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <!-- n=1 -->
+    <xsl:when test="starts-with($template, '%n')">
+      <xsl:apply-templates select="." mode="label.markup"/>
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        <xsl:with-param name="template"
+                        select="substring-after($template, '%n')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- t=1 -->
+    <xsl:when test="starts-with($template, '%t')">
+      <xsl:apply-templates select="." mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        <xsl:with-param name="template"
+                        select="substring-after($template, '%t')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- s=1 -->
+    <xsl:when test="starts-with($template, '%s')">
+      <xsl:apply-templates select="." mode="subtitle.markup"/>
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        <xsl:with-param name="template"
+                        select="substring-after($template, '%s')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- n and t and s -->
+    <xsl:when test="contains($template, '%n')
+                    and contains($template, '%t')
+                    and contains($template, '%s')">
+      <xsl:choose>
+        <!-- n is first -->
+        <xsl:when test="string-length($bef-n) &lt; string-length($bef-s)
+                        and string-length($bef-n) &lt; string-length($bef-t)">
+          <xsl:value-of select="$bef-n"/>
+          <xsl:apply-templates select="." mode="label.markup"/>
+          <xsl:call-template name="substitute-markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+            <xsl:with-param name="template"
+                            select="substring-after($template, '%n')"/>
+          </xsl:call-template>
+        </xsl:when>
+        <!-- s is first -->
+        <xsl:when test="string-length($bef-s) &lt; string-length($bef-n)
+                        and string-length($bef-s) &lt; string-length($bef-t)">
+          <xsl:value-of select="$bef-s"/>
+          <xsl:apply-templates select="." mode="subtitle.markup"/>
+          <xsl:call-template name="substitute-markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+            <xsl:with-param name="template"
+                            select="substring-after($template, '%s')"/>
+          </xsl:call-template>
+        </xsl:when>
+        <!-- t must be first -->
+        <xsl:otherwise>
+          <xsl:value-of select="$bef-t"/>
+          <xsl:apply-templates select="." mode="title.markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+          </xsl:apply-templates>
+          <xsl:call-template name="substitute-markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+            <xsl:with-param name="template"
+                            select="substring-after($template, '%t')"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <!-- n and t -->
+    <xsl:when test="contains($template, '%n')
+                    and contains($template, '%t')">
+      <xsl:choose>
+        <!-- n is first -->
+        <xsl:when test="string-length($bef-n) &lt; string-length($bef-t)">
+          <xsl:value-of select="$bef-n"/>
+          <xsl:apply-templates select="." mode="label.markup"/>
+          <xsl:call-template name="substitute-markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+            <xsl:with-param name="template"
+                            select="substring-after($template, '%n')"/>
+          </xsl:call-template>
+        </xsl:when>
+        <!-- t is first -->
+        <xsl:otherwise>
+          <xsl:value-of select="$bef-t"/>
+          <xsl:apply-templates select="." mode="title.markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+          </xsl:apply-templates>
+          <xsl:call-template name="substitute-markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+            <xsl:with-param name="template"
+                            select="substring-after($template, '%t')"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <!-- n and s -->
+    <xsl:when test="contains($template, '%n')
+                    and contains($template, '%s')">
+      <xsl:choose>
+        <!-- n is first -->
+        <xsl:when test="string-length($bef-n) &lt; string-length($bef-s)">
+          <xsl:value-of select="$bef-n"/>
+          <xsl:apply-templates select="." mode="label.markup"/>
+          <xsl:call-template name="substitute-markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+            <xsl:with-param name="template"
+                            select="substring-after($template, '%n')"/>
+          </xsl:call-template>
+        </xsl:when>
+        <!-- s is first -->
+        <xsl:otherwise>
+          <xsl:value-of select="$bef-s"/>
+          <xsl:apply-templates select="." mode="subtitle.markup"/>
+          <xsl:call-template name="substitute-markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+            <xsl:with-param name="template"
+                            select="substring-after($template, '%s')"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <!-- t and s -->
+    <xsl:when test="contains($template, '%t')
+                    and contains($template, '%s')">
+      <xsl:choose>
+        <!-- t is first -->
+        <xsl:when test="string-length($bef-t) &lt; string-length($bef-s)">
+          <xsl:value-of select="$bef-t"/>
+          <xsl:apply-templates select="." mode="title.markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+          </xsl:apply-templates>
+          <xsl:call-template name="substitute-markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+            <xsl:with-param name="template"
+                            select="substring-after($template, '%t')"/>
+          </xsl:call-template>
+        </xsl:when>
+        <!-- s is first -->
+        <xsl:otherwise>
+          <xsl:value-of select="$bef-s"/>
+          <xsl:apply-templates select="." mode="subtitle.markup"/>
+          <xsl:call-template name="substitute-markup">
+            <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+            <xsl:with-param name="template"
+                            select="substring-after($template, '%s')"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <!-- n -->
+    <xsl:when test="contains($template, '%n')">
+      <xsl:value-of select="$bef-n"/>
+      <xsl:apply-templates select="." mode="label.markup"/>
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        <xsl:with-param name="template"
+                        select="substring-after($template, '%n')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- t -->
+    <xsl:when test="contains($template, '%t')">
+      <xsl:value-of select="$bef-t"/>
+      <xsl:apply-templates select="." mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        <xsl:with-param name="template"
+                        select="substring-after($template, '%t')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- s -->
+    <xsl:when test="contains($template, '%s')">
+      <xsl:value-of select="$bef-s"/>
+      <xsl:apply-templates select="." mode="subtitle.markup"/>
+      <xsl:call-template name="substitute-markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+        <xsl:with-param name="template"
+                        select="substring-after($template, '%s')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- neither n nor t nor s -->
+    <xsl:otherwise>
+      <xsl:value-of select="$template"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/hu.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/hu.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/hu.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="hu">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Kivonat"/>
+   <gentext key="abstract" text="kivonat"/>
+   <gentext key="Answer" text="V&#225;lasz"/>
+   <gentext key="answer" text="v&#225;lasz"/>
+   <gentext key="Appendix" text="F&#252;ggel&#233;k"/>
+   <gentext key="Article" text="Cikk"/>
+   <gentext key="article" text="cikk"/>
+   <gentext key="Bibliography" text="Irodalomjegyz&#233;k"/>
+   <gentext key="bibliography" text="irodalomjegyz&#233;k"/>
+   <gentext key="Book" text="K&#246;nyv"/>
+   <gentext key="book" text="k&#246;nyv"/>
+   <gentext key="CAUTION" text="FIGYELEM"/>
+   <gentext key="caution" text="figyelem"/>
+   <gentext key="Caution" text="Figyelem"/>
+   <gentext key="caution" text="figyelem"/>
+   <gentext key="Chapter" text="Fejezet"/>
+   <gentext key="Colophon" text="V&#233;gsz&#243;"/>
+   <gentext key="colophon" text="v&#233;gsz&#243;"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="copyright"/>
+   <gentext key="Dedication" text="Aj&#225;nl&#225;s"/>
+   <gentext key="dedication" text="aj&#225;nl&#225;s"/>
+   <gentext key="Edition" text="Kiad&#225;s"/>
+   <gentext key="edition" text="kiad&#225;s"/>
+   <gentext key="Equation" text="Egyenlet"/>
+   <gentext key="equation" text="egyenlet"/>
+   <gentext key="Example" text="P&#233;lda"/>
+   <gentext key="example" text="p&#233;lda"/>
+   <gentext key="Figure" text="&#193;bra"/>
+   <gentext key="figure" text="&#225;bra"/>
+   <gentext key="GlossSee" text="L&#225;sd"/>
+   <gentext key="glosssee" text="l&#225;sd"/>
+   <gentext key="GlossSeeAlso" text="L&#225;sd m&#233;g"/>
+   <gentext key="glossseealso" text="l&#225;sd m&#233;g"/>
+   <gentext key="Glossary" text="Sz&#243;jegyz&#233;k"/>
+   <gentext key="glossary" text="sz&#243;jegyz&#233;k"/>
+   <gentext key="IMPORTANT" text="FONTOS"/>
+   <gentext key="important" text="fontos"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="isbn"/>
+   <gentext key="Important" text="Fontos"/>
+   <gentext key="important" text="fontos"/>
+   <gentext key="Index" text="T&#225;rgymutat&#243;"/>
+   <gentext key="index" text="t&#225;rgymutat&#243;"/>
+   <gentext key="LegalNotice" text="Jogi k&#246;zlem&#233;ny"/>
+   <gentext key="legalnotice" text="jogi k&#246;zlem&#233;ny"/>
+   <gentext key="MsgAud" text="C&#233;lk&#246;z&#246;ns&#233;g"/>
+   <gentext key="msgaud" text="c&#233;lk&#246;z&#246;ns&#233;g"/>
+   <gentext key="MsgLevel" text="Szint"/>
+   <gentext key="msglevel" text="szint"/>
+   <gentext key="MsgOrig" text="Eredet"/>
+   <gentext key="msgorig" text="eredet"/>
+   <gentext key="NOTE" text="MEGJEGYZ&#201;S"/>
+   <gentext key="note" text="megjegyz&#233;s"/>
+   <gentext key="Note" text="Megjegyz&#233;s"/>
+   <gentext key="note" text="megjegyz&#233;s"/>
+   <gentext key="Part" text="R&#233;sz"/>
+   <gentext key="part" text="r&#233;sz"/>
+   <gentext key="Preface" text="El&#336;sz&#243;"/>
+   <gentext key="preface" text="el&#336;sz&#243;"/>
+   <gentext key="Procedure" text="Elj&#225;r&#225;s"/>
+   <gentext key="procedure" text="elj&#225;r&#225;s"/>
+   <gentext key="Published" text="Megjelent"/>
+   <gentext key="published" text="megjelent"/>
+   <gentext key="Question" text="K&#233;rd&#233;s"/>
+   <gentext key="question" text="k&#233;rd&#233;s"/>
+   <gentext key="RefEntry" text="Bejegyz&#233;s"/>
+   <gentext key="refentry" text="bejegyz&#233;s"/>
+   <gentext key="RefName" text="N&#233;v"/>
+   <gentext key="refname" text="n&#233;v"/>
+   <gentext key="Reference" text="Referencia"/>
+   <gentext key="reference" text="referencia"/>
+   <gentext key="RefSection" text="Szakasz"/>
+   <gentext key="refsection" text="szakasz"/>
+   <gentext key="RefSynopsisDiv" text="&#193;ttekint&#233;s"/>
+   <gentext key="refsynopsisdiv" text="&#225;ttekint&#233;s"/>
+   <gentext key="Revision" text="Verzi&#243;"/>
+   <gentext key="revision" text="verzi&#243;"/>
+   <gentext key="RevHistory" text="Verzi&#243;t&#246;rt&#233;net"/>
+   <gentext key="revhistory" text="verzi&#243;t&#246;rt&#233;net"/>
+   <gentext key="Section" text="Szakasz"/>
+   <gentext key="See" text="L&#225;sd"/>
+   <gentext key="see" text="l&#225;sd"/>
+   <gentext key="SeeAlso" text="L&#225;sd m&#233;g"/>
+   <gentext key="seealso" text="l&#225;sd m&#233;g"/>
+   <gentext key="Set" text="Set"/>
+   <gentext key="set" text="Set"/>
+   <gentext key="SetIndex" text="Set Index"/>
+   <gentext key="setindex" text="Set Index"/>
+   <gentext key="Sidebar" text="Sz&#233;ljegyzet"/>
+   <gentext key="Step" text="L&#233;p&#233;s"/>
+   <gentext key="TIP" text="TIPP"/>
+   <gentext key="tip" text="tipp"/>
+   <gentext key="Table" text="T&#225;bl&#225;zat"/>
+   <gentext key="table" text="t&#225;bl&#225;zat"/>
+   <gentext key="Tip" text="Tipp"/>
+   <gentext key="tip" text="tipp"/>
+   <gentext key="WARNING" text="FIGYELEM"/>
+   <gentext key="warning" text="figyelem"/>
+   <gentext key="Warning" text="Figyelem"/>
+   <gentext key="warning" text="figyelem"/>
+   <gentext key="appendix" text="f&#252;ggel&#233;k"/>
+   <gentext key="chapter" text="fejezet"/>
+   <gentext key="section" text="szakasz"/>
+   <gentext key="sidebar" text="sz&#233;ljegyzet"/>
+   <gentext key="step" text="l&#233;p&#233;s"/>
+   <gentext key="Seealso" text="L&#225;sd m&#233;g"/>
+   <gentext key="seealso" text="l&#225;sd m&#233;g"/>
+   <gentext key="TableofContents" text="Tartalom"/>
+   <gentext key="tableofcontents" text="tartalom"/>
+   <gentext key="in" text=""/>
+   <gentext key="by" text=""/>
+   <gentext key="Edited" text="Szerk."/>
+   <gentext key="edited" text="szerk."/>
+   <gentext key="Editedby" text="Szerkesztette"/>
+   <gentext key="editedby" text="szerkesztette"/>
+   <gentext key="and" text="&#233;s"/>
+   <gentext key="Notes" text="Megjegyz&#233;sek"/>
+   <gentext key="notes" text="megjegyz&#233;sek"/>
+   <gentext key="TableNotes" text="Megjegyz&#233;sek"/>
+   <gentext key="tablenotes" text="megjegyz&#233;sek"/>
+   <gentext key="nonexistantelement" text="nem l&#233;tez&#336; elem"/>
+   <gentext key="Pgs" text="Lsz."/>
+   <gentext key="pgs" text="lsz."/>
+   <gentext key="unsupported" text="nem t&#225;mogatott"/>
+   <gentext key="xrefto" text="keresztref"/>
+   <gentext key="unexpectedelementname" text="nem v&#225;rt elemn&#233;v"/>
+   <gentext key="Revisedby" text="Megvizsg&#225;lva"/>
+   <gentext key="revisedby" text="megvizsg&#225;lva"/>
+   <gentext key="ListofTables" text="A t&#225;bl&#225;zatok list&#225;ja"/>
+   <gentext key="listoftables" text="a t&#225;bl&#225;zatok list&#225;ja"/>
+   <gentext key="ListofExamples" text="A p&#233;ld&#225;k list&#225;ja"/>
+   <gentext key="listofexamples" text="a p&#233;ld&#225;k list&#225;ja"/>
+   <gentext key="ListofFigures" text="Az &#225;br&#225;k list&#225;ja"/>
+   <gentext key="listoffigures" text="az &#225;br&#225;k list&#225;ja"/>
+   <gentext key="ListofEquations" text="Az egyenletek list&#225;ja"/>
+   <gentext key="listofequations" text="az egyenletek list&#225;ja"/>
+   <gentext key="ListofUnknown" text="Az egy&#233;b elemek list&#225;ja"/>
+   <gentext key="listofunknown" text="az egy&#233;b elemek list&#225;ja"/>
+   <gentext key="nav-prev" text="El&#336;z&#336;"/>
+   <gentext key="nav-prev-sibling" text="Gyors vissza"/>
+   <gentext key="nav-next-sibling" text="Gyors el&#336;re"/>
+   <gentext key="nav-next" text="K&#246;vetkez&#336;"/>
+   <gentext key="nav-up" text="Fel"/>
+   <gentext key="nav-home" text="Tartalom"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="F&#252;ggel&#233;k %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Fejezet %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Egyenlet %n. %t"/>
+      <template name="example" text="P&#233;lda %n. %t"/>
+      <template name="figure" text="&#193;bra %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="R&#233;sz %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="T&#225;bl&#225;zat %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="F&#252;ggel&#233;k %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Fejezet %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="P&#233;lda %n. %t"/>
+      <template name="figure" text="&#193;bra %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="R&#233;sz %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="T&#225;bl&#225;zat %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Szakasz %n"/>
+      <template name="sect2" text="Szakasz %n"/>
+      <template name="sect3" text="Szakasz %n"/>
+      <template name="sect4" text="Szakasz %n"/>
+      <template name="sect5" text="Szakasz %n"/>
+      <template name="section" text="Szakasz %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" &#233;s "/>
+      <template name="seplast" text=", &#233;s "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="L&#225;sd "/>
+      <template name="seealso" text="L&#225;sd m&#233;g "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Szint: "/>
+      <template name="MsgOrig" text="Eredet: "/>
+      <template name="MsgAud" text="C&#233;lk&#246;z&#246;ns&#233;g: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/id.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/id.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/id.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="id">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Abstrak"/>
+   <gentext key="abstract" text="Abstrak"/>
+   <gentext key="Answer" text="Jawab:"/>
+   <gentext key="answer" text="Jawab:"/>
+   <gentext key="Appendix" text="Lampiran"/>
+   <gentext key="Article" text="Artikel"/>
+   <gentext key="article" text="Artikel"/>
+   <gentext key="Bibliography" text="Bibliografi"/>
+   <gentext key="bibliography" text="Bibliografi"/>
+   <gentext key="Book" text="Buku"/>
+   <gentext key="book" text="Buku"/>
+   <gentext key="CAUTION" text="PERHATIAN"/>
+   <gentext key="caution" text="PERHATIAN"/>
+   <gentext key="Caution" text="Perhatian"/>
+   <gentext key="caution" text="Perhatian"/>
+   <gentext key="Chapter" text="Bab"/>
+   <gentext key="Colophon" text="Kolofon"/>
+   <gentext key="colophon" text="Kolofon"/>
+   <gentext key="Copyright" text="Hak Cipta"/>
+   <gentext key="copyright" text="Hak Cipta"/>
+   <gentext key="Dedication" text="Dedikasi"/>
+   <gentext key="dedication" text="Dedikasi"/>
+   <gentext key="Edition" text="Edisi"/>
+   <gentext key="edition" text="Edisi"/>
+   <gentext key="Equation" text="Persamaan"/>
+   <gentext key="equation" text="Persamaan"/>
+   <gentext key="Example" text="Teladan"/>
+   <gentext key="example" text="Teladan"/>
+   <gentext key="Figure" text="Gambar"/>
+   <gentext key="figure" text="Gambar"/>
+   <gentext key="GlossSee" text="Lihat"/>
+   <gentext key="glosssee" text="Lihat"/>
+   <gentext key="GlossSeeAlso" text="Lihat Juga"/>
+   <gentext key="glossseealso" text="Lihat Juga"/>
+   <gentext key="Glossary" text="Daftar Istilah"/>
+   <gentext key="glossary" text="Daftar Istilah"/>
+   <gentext key="IMPORTANT" text="PENTING"/>
+   <gentext key="important" text="PENTING"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Penting"/>
+   <gentext key="important" text="Penting"/>
+   <gentext key="Index" text="Indeks"/>
+   <gentext key="index" text="Indeks"/>
+   <gentext key="LegalNotice" text="Aspek Hukum"/>
+   <gentext key="legalnotice" text="Aspek Hukum"/>
+   <gentext key="MsgAud" text="Pemirsa"/>
+   <gentext key="msgaud" text="Pemirsa"/>
+   <gentext key="MsgLevel" text="Tingkatan"/>
+   <gentext key="msglevel" text="Tingkatan"/>
+   <gentext key="MsgOrig" text="Asal"/>
+   <gentext key="msgorig" text="Asal"/>
+   <gentext key="NOTE" text="CATATAN"/>
+   <gentext key="note" text="CATATAN"/>
+   <gentext key="Note" text="Catatan"/>
+   <gentext key="note" text="Catatan"/>
+   <gentext key="Part" text="Bagian"/>
+   <gentext key="part" text="Bagian"/>
+   <gentext key="Preface" text="Kata Pengantar"/>
+   <gentext key="preface" text="Kata Pengantar"/>
+   <gentext key="Procedure" text="Prosedur"/>
+   <gentext key="procedure" text="Prosedur"/>
+   <gentext key="Published" text="Diterbitkan"/>
+   <gentext key="published" text="Diterbitkan"/>
+   <gentext key="Question" text="Tanya:"/>
+   <gentext key="question" text="Tanya:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Referensi"/>
+   <gentext key="reference" text="Referensi"/>
+   <gentext key="RefName" text="Nama"/>
+   <gentext key="refname" text="Nama"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Sinopsis"/>
+   <gentext key="refsynopsisdiv" text="Sinopsis"/>
+   <gentext key="Revision" text="Revisi"/>
+   <gentext key="revision" text="Revisi"/>
+   <gentext key="RevHistory" text="Catatan Revisi"/>
+   <gentext key="revhistory" text="Catatan Revisi"/>
+   <gentext key="Section" text="Bagian"/>
+   <gentext key="See" text="Lihat"/>
+   <gentext key="see" text="Lihat"/>
+   <gentext key="SeeAlso" text="Lihat Juga"/>
+   <gentext key="seealso" text="Lihat Juga"/>
+   <gentext key="Set" text="Set"/>
+   <gentext key="set" text="Set"/>
+   <gentext key="SetIndex" text="Set Index"/>
+   <gentext key="setindex" text="Set Index"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="Tahap"/>
+   <gentext key="TIP" text="TIP"/>
+   <gentext key="tip" text="TIP"/>
+   <gentext key="Table" text="Tabel"/>
+   <gentext key="table" text="Tabel"/>
+   <gentext key="Tip" text="Tip"/>
+   <gentext key="tip" text="Tip"/>
+   <gentext key="WARNING" text="AWAS"/>
+   <gentext key="warning" text="AWAS"/>
+   <gentext key="Warning" text="Awas"/>
+   <gentext key="warning" text="Awas"/>
+   <gentext key="appendix" text="lampiran"/>
+   <gentext key="chapter" text="bab"/>
+   <gentext key="section" text="bagian"/>
+   <gentext key="sidebar" text="sidebar"/>
+   <gentext key="step" text="tahap"/>
+   <gentext key="Seealso" text="Lihat juga"/>
+   <gentext key="seealso" text="Lihat juga"/>
+   <gentext key="TableofContents" text="Daftar Isi"/>
+   <gentext key="tableofcontents" text="Daftar Isi"/>
+   <gentext key="in" text="di"/>
+   <gentext key="by" text="oleh"/>
+   <gentext key="Edited" text="disunting"/>
+   <gentext key="edited" text="disunting"/>
+   <gentext key="Editedby" text="disunting oleh"/>
+   <gentext key="editedby" text="disunting oleh"/>
+   <gentext key="and" text="dan"/>
+   <gentext key="Notes" text="Catatan"/>
+   <gentext key="notes" text="Catatan"/>
+   <gentext key="TableNotes" text="Catatan"/>
+   <gentext key="tablenotes" text="Catatan"/>
+   <gentext key="nonexistantelement" text="elemen tak tampak"/>
+   <gentext key="Pgs" text="Hal."/>
+   <gentext key="pgs" text="Hal."/>
+   <gentext key="unsupported" text="tidak didukung"/>
+   <gentext key="xrefto" text="xref ke"/>
+   <gentext key="unexpectedelementname" text="Nama Elemen seharusnya tidak ada"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="Daftar Tabel"/>
+   <gentext key="listoftables" text="Daftar Tabel"/>
+   <gentext key="ListofExamples" text="Daftar Teladan"/>
+   <gentext key="listofexamples" text="Daftar Teladan"/>
+   <gentext key="ListofFigures" text="Daftar Gambar"/>
+   <gentext key="listoffigures" text="Daftar Gambar"/>
+   <gentext key="ListofEquations" text="Daftar Persamaan"/>
+   <gentext key="listofequations" text="Daftar Persamaan"/>
+   <gentext key="ListofUnknown" text="Daftar Gaib"/>
+   <gentext key="listofunknown" text="Daftar Gaib"/>
+   <gentext key="nav-prev" text="Prev"/>
+   <gentext key="nav-prev-sibling" text="Fast Backward"/>
+   <gentext key="nav-next-sibling" text="Fast Forward"/>
+   <gentext key="nav-next" text="Next"/>
+   <gentext key="nav-up" text="Up"/>
+   <gentext key="nav-home" text="Home"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Lampiran %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Bab %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Persamaan %n. %t"/>
+      <template name="example" text="Teladan %n. %t"/>
+      <template name="figure" text="Gambar %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Bagian %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabel %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Lampiran %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Bab %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Teladan %n. %t"/>
+      <template name="figure" text="Gambar %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Bagian %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabel %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Bagian %n"/>
+      <template name="sect2" text="Bagian %n"/>
+      <template name="sect3" text="Bagian %n"/>
+      <template name="sect4" text="Bagian %n"/>
+      <template name="sect5" text="Bagian %n"/>
+      <template name="section" text="Bagian %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" dan "/>
+      <template name="seplast" text=", dan "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Lihat "/>
+      <template name="seealso" text="Lihat Juga "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Tingkatan: "/>
+      <template name="MsgOrig" text="Asal: "/>
+      <template name="MsgAud" text="Pemirsa: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/it.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/it.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/it.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,349 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="it">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Estratto"/>
+   <gentext key="abstract" text="Estratto"/>
+   <gentext key="Answer" text="R:"/>
+   <gentext key="answer" text="R:"/>
+   <gentext key="Appendix" text="Appendice"/>
+   <gentext key="Article" text="Articolo"/>
+   <gentext key="article" text="Articolo"/>
+   <gentext key="Audience" text="Pubblico"/>
+   <gentext key="audience" text="Pubblico"/>
+   <gentext key="Bibliography" text="Bibliografia"/>
+   <gentext key="bibliography" text="Bibliografia"/>
+   <gentext key="Book" text="Libro"/>
+   <gentext key="book" text="Libro"/>
+   <gentext key="CAUTION" text="CAUTELA"/>
+   <gentext key="caution" text="CAUTELA"/>
+   <gentext key="Caution" text="Cautela"/>
+   <gentext key="caution" text="Cautela"/>
+   <gentext key="Chapter" text="Capitolo"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Dedica"/>
+   <gentext key="dedication" text="Dedica"/>
+   <gentext key="Edition" text="Edizione"/>
+   <gentext key="edition" text="Edizione"/>
+   <gentext key="Equation" text="Equazione"/>
+   <gentext key="equation" text="Equazione"/>
+   <gentext key="Example" text="Esempio"/>
+   <gentext key="example" text="Esempio"/>
+   <gentext key="Figure" text="Figura"/>
+   <gentext key="figure" text="Figura"/>
+   <gentext key="GlossSee" text="Vedi"/>
+   <gentext key="glosssee" text="Vedi"/>
+   <gentext key="GlossSeeAlso" text="Vedi anche"/>
+   <gentext key="glossseealso" text="Vedi anche"/>
+   <gentext key="Glossary" text="Glossario"/>
+   <gentext key="glossary" text="Glossario"/>
+   <gentext key="IMPORTANT" text="IMPORTANTE"/>
+   <gentext key="important" text="IMPORTANTE"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Importante"/>
+   <gentext key="important" text="Importante"/>
+   <gentext key="Index" text="Indice"/>
+   <gentext key="index" text="Indice"/>
+   <gentext key="LegalNotice" text="Note legali"/>
+   <gentext key="legalnotice" text="Note legali"/>
+   <gentext key="Level" text="Livello"/>
+   <gentext key="level" text="Livello"/>
+   <gentext key="MsgAud" text="Pubblico"/>
+   <gentext key="msgaud" text="Pubblico"/>
+   <gentext key="MsgLevel" text="Livello"/>
+   <gentext key="msglevel" text="Livello"/>
+   <gentext key="MsgOrig" text="Origine"/>
+   <gentext key="msgorig" text="Origine"/>
+   <gentext key="NOTE" text="NOTA"/>
+   <gentext key="note" text="NOTA"/>
+   <gentext key="Name" text="Nome"/>
+   <gentext key="name" text="Nome"/>
+   <gentext key="Note" text="Nota"/>
+   <gentext key="note" text="Nota"/>
+   <gentext key="Origin" text="Origine"/>
+   <gentext key="origin" text="Origine"/>
+   <gentext key="Part" text="Parte"/>
+   <gentext key="part" text="Parte"/>
+   <gentext key="Preface" text="Prefazione"/>
+   <gentext key="preface" text="Prefazione"/>
+   <gentext key="Procedure" text="Procedura"/>
+   <gentext key="procedure" text="Procedura"/>
+   <gentext key="Published" text="Pubblicato"/>
+   <gentext key="published" text="Pubblicato"/>
+   <gentext key="Question" text="D:"/>
+   <gentext key="question" text="D:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Riferimento"/>
+   <gentext key="reference" text="Riferimento"/>
+   <gentext key="RefName" text="Nome"/>
+   <gentext key="refname" text="Nome"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Sinossi"/>
+   <gentext key="refsynopsisdiv" text="Sinossi"/>
+   <gentext key="Revision" text="Revisione"/>
+   <gentext key="revision" text="Revisione"/>
+   <gentext key="RevHistory" text="Diario delle revisioni"/>
+   <gentext key="revhistory" text="Diario delle revisioni"/>
+   <gentext key="History" text="Diario"/>
+   <gentext key="history" text="Diario"/>
+   <gentext key="Section" text="Sezione"/>
+   <gentext key="See" text="Vd."/>
+   <gentext key="see" text="Vd."/>
+   <gentext key="SeeAlso" text="Vd. Anche"/>
+   <gentext key="seealso" text="Vd. Anche"/>
+   <gentext key="Seealso" text="Vd. anche"/>
+   <gentext key="seealso" text="Vd. anche"/>
+   <gentext key="Set" text="Raccolta"/>
+   <gentext key="set" text="Raccolta"/>
+   <gentext key="SetIndex" text="Indice Raccolta"/>
+   <gentext key="setindex" text="Indice Raccolta"/>
+   <gentext key="Sidebar" text="Nota a margine"/>
+   <gentext key="sidebar" text="nota a margine"/>
+   <gentext key="Step" text="Passaggio"/>
+   <gentext key="TIP" text="SUGGERIMENTO"/>
+   <gentext key="tip" text="SUGGERIMENTO"/>
+   <gentext key="Table" text="Tabella"/>
+   <gentext key="table" text="Tabella"/>
+   <gentext key="Tip" text="Suggerimento"/>
+   <gentext key="tip" text="Suggerimento"/>
+   <gentext key="WARNING" text="ATTENZIONE"/>
+   <gentext key="warning" text="ATTENZIONE"/>
+   <gentext key="Warning" text="Attenzione"/>
+   <gentext key="warning" text="Attenzione"/>
+   <gentext key="appendix" text="appendice"/>
+   <gentext key="chapter" text="capitolo"/>
+   <gentext key="section" text="sezione"/>
+   <gentext key="step" text="passaggio"/>
+   <gentext key="TableofContents" text="Sommario"/>
+   <gentext key="tableofcontents" text="Sommario"/>
+   <gentext key="called" text="intitolato"/>
+   <gentext key="in" text="in"/>
+   <gentext key="by" text="di"/>
+   <gentext key="Edited" text="A cura"/>
+   <gentext key="edited" text="A cura"/>
+   <gentext key="Editedby" text="A cura di"/>
+   <gentext key="editedby" text="A cura di"/>
+   <gentext key="and" text="e"/>
+   <gentext key="Notes" text="Note"/>
+   <gentext key="notes" text="Note"/>
+   <gentext key="TableNotes" text="Note"/>
+   <gentext key="tablenotes" text="Note"/>
+   <gentext key="nonexistantelement" text="elemento non esistente"/>
+   <gentext key="the" text="il"/>
+   <gentext key="Pgs" text="pp."/>
+   <gentext key="pgs" text="pp."/>
+   <gentext key="unsupported" text="non supportato"/>
+   <gentext key="xrefto" text="riferimento a"/>
+   <gentext key="unexpectedelementname" text="Nome elemento inaspettato"/>
+   <gentext key="Revisedby" text="Corretto da: "/>
+   <gentext key="revisedby" text="Corretto da: "/>
+   <gentext key="ListofTables" text="Lista delle Tabelle"/>
+   <gentext key="listoftables" text="Lista delle Tabelle"/>
+   <gentext key="ListofExamples" text="Lista degli Esempi"/>
+   <gentext key="listofexamples" text="Lista degli Esempi"/>
+   <gentext key="ListofFigures" text="Lista delle Figure"/>
+   <gentext key="listoffigures" text="Lista delle Figure"/>
+   <gentext key="ListofEquations" text="Lista delle Equazioni"/>
+   <gentext key="listofequations" text="Lista delle Equazioni"/>
+   <gentext key="ListofUnknown" text="Lista Sconosciuti"/>
+   <gentext key="listofunknown" text="Lista Sconosciuti"/>
+   <gentext key="nav-prev" text="Indietro"/>
+   <gentext key="nav-prev-sibling" text="Salta indietro"/>
+   <gentext key="nav-next-sibling" text="Salta avanti"/>
+   <gentext key="nav-next" text="Avanti"/>
+   <gentext key="nav-up" text="Risali"/>
+   <gentext key="nav-home" text="Partenza"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Appendice %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Capitolo %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Equazione %n. %t"/>
+      <template name="example" text="Esempio %n. %t"/>
+      <template name="figure" text="Figura %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Parte %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabella %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Appendice %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Capitolo %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Esempio %n. %t"/>
+      <template name="figure" text="Figura %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Parte %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabella %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Sezione %n"/>
+      <template name="sect2" text="Sezione %n"/>
+      <template name="sect3" text="Sezione %n"/>
+      <template name="sect4" text="Sezione %n"/>
+      <template name="sect5" text="Sezione %n"/>
+      <template name="section" text="Sezione %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" e "/>
+      <template name="seplast" text=", e "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Vedi "/>
+      <template name="seealso" text="Vedi anche "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Livello: "/>
+      <template name="MsgOrig" text="Origine: "/>
+      <template name="MsgAud" text="Pubblico: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ja.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ja.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ja.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="ja">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="&#27010;&#35201;"/>
+   <gentext key="abstract" text="&#27010;&#35201;"/>
+   <gentext key="Answer" text="&#21839;&#65306;"/>
+   <gentext key="answer" text="&#21839;&#65306;"/>
+   <gentext key="Appendix" text="&#20184;&#37682;"/>
+   <gentext key="Article" text="&#38917;&#30446;"/>
+   <gentext key="article" text="&#38917;&#30446;"/>
+   <gentext key="Bibliography" text="&#21442;&#32771;&#25991;&#29486;"/>
+   <gentext key="bibliography" text="&#21442;&#32771;&#25991;&#29486;"/>
+   <gentext key="Book" text="&#12502;&#12483;&#12463;"/>
+   <gentext key="book" text="&#12502;&#12483;&#12463;"/>
+   <gentext key="CAUTION" text="&#27880;&#24847;"/>
+   <gentext key="caution" text="&#27880;&#24847;"/>
+   <gentext key="Caution" text="&#27880;&#24847;"/>
+   <gentext key="caution" text="&#27880;&#24847;"/>
+   <gentext key="Chapter1" text="&#31532;"/>
+   <gentext key="chapter1" text="&#31532;"/>
+   <gentext key="Chapter2" text="&#31456;"/>
+   <gentext key="chapter2" text="&#31456;"/>
+   <gentext key="Colophon" text="&#22885;&#20184;"/>
+   <gentext key="colophon" text="&#22885;&#20184;"/>
+   <gentext key="Copyright" text="&#35069;&#20316;&#33879;&#20316;"/>
+   <gentext key="copyright" text="&#35069;&#20316;&#33879;&#20316;"/>
+   <gentext key="Dedication" text="&#35613;&#36766;"/>
+   <gentext key="dedication" text="&#35613;&#36766;"/>
+   <gentext key="Edition" text="&#32232;&#38598;"/>
+   <gentext key="edition" text="&#32232;&#38598;"/>
+   <gentext key="Equation" text="&#24335;"/>
+   <gentext key="equation" text="&#24335;"/>
+   <gentext key="Example" text="&#20363;"/>
+   <gentext key="example" text="&#20363;"/>
+   <gentext key="Figure" text="&#22259;"/>
+   <gentext key="figure" text="&#22259;"/>
+   <gentext key="GlossSee" text="&#21442;&#29031;"/>
+   <gentext key="glosssee" text="&#21442;&#29031;"/>
+   <gentext key="GlossSeeAlso" text="&#21442;&#29031;"/>
+   <gentext key="glossseealso" text="&#21442;&#29031;"/>
+   <gentext key="Glossary" text="&#29992;&#35486;&#38598;"/>
+   <gentext key="glossary" text="&#29992;&#35486;&#38598;"/>
+   <gentext key="IMPORTANT" text="&#37325;&#35201;&#38917;&#30446;"/>
+   <gentext key="important" text="&#37325;&#35201;&#38917;&#30446;"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="&#37325;&#35201;&#38917;&#30446;"/>
+   <gentext key="important" text="&#37325;&#35201;&#38917;&#30446;"/>
+   <gentext key="Index" text="&#30446;&#27425;"/>
+   <gentext key="index" text="&#30446;&#27425;"/>
+   <gentext key="LegalNotice" text=""/>
+   <gentext key="legalnotice" text=""/>
+   <gentext key="MsgAud" text="&#23550;&#35937;&#32773;"/>
+   <gentext key="msgaud" text="&#23550;&#35937;&#32773;"/>
+   <gentext key="MsgLevel" text="&#12524;&#12505;&#12523;"/>
+   <gentext key="msglevel" text="&#12524;&#12505;&#12523;"/>
+   <gentext key="MsgOrig" text="&#30330;&#20449;&#20803;"/>
+   <gentext key="msgorig" text="&#30330;&#20449;&#20803;"/>
+   <gentext key="NOTE" text="&#27880;&#24847;"/>
+   <gentext key="note" text="&#27880;&#24847;"/>
+   <gentext key="Note" text="&#27880;&#24847;"/>
+   <gentext key="note" text="&#27880;&#24847;"/>
+   <gentext key="Part" text="&#12497;&#12540;&#12488;"/>
+   <gentext key="part" text="&#12497;&#12540;&#12488;"/>
+   <gentext key="Preface" text="&#24207;&#25991;"/>
+   <gentext key="preface" text="&#24207;&#25991;"/>
+   <gentext key="Procedure" text="&#25163;&#38918;"/>
+   <gentext key="procedure" text="&#25163;&#38918;"/>
+   <gentext key="Published" text="&#30330;&#34892;"/>
+   <gentext key="published" text="&#30330;&#34892;"/>
+   <gentext key="Question" text="&#31572;&#65306;"/>
+   <gentext key="question" text="&#31572;&#65306;"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="RefName" text="&#21517;&#21069;"/>
+   <gentext key="refname" text="&#21517;&#21069;"/>
+   <gentext key="Reference" text="&#21442;&#29031;"/>
+   <gentext key="reference" text="&#21442;&#29031;"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="&#27010;&#35201;"/>
+   <gentext key="refsynopsisdiv" text="&#27010;&#35201;"/>
+   <gentext key="Revision" text="&#25913;&#35330;"/>
+   <gentext key="revision" text="&#25913;&#35330;"/>
+   <gentext key="RevHistory" text="&#25913;&#35330;&#23653;&#27508;"/>
+   <gentext key="revhistory" text="&#25913;&#35330;&#23653;&#27508;"/>
+   <gentext key="Section" text="&#38917;"/>
+   <gentext key="See" text="&#21442;&#29031;"/>
+   <gentext key="see" text="&#21442;&#29031;"/>
+   <gentext key="SeeAlso" text="&#21442;&#29031;"/>
+   <gentext key="seealso" text="&#21442;&#29031;"/>
+   <gentext key="Set" text="&#35373;&#23450;"/>
+   <gentext key="set" text="&#35373;&#23450;"/>
+   <gentext key="SetIndex" text="&#30446;&#27425;&#35373;&#23450;"/>
+   <gentext key="setindex" text="&#30446;&#27425;&#35373;&#23450;"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="&#12473;&#12486;&#12483;&#12503;"/>
+   <gentext key="TIP" text="&#12486;&#12451;&#12483;&#12503;"/>
+   <gentext key="tip" text="&#12486;&#12451;&#12483;&#12503;"/>
+   <gentext key="Table" text="&#34920;"/>
+   <gentext key="table" text="&#34920;"/>
+   <gentext key="Tip" text="&#12486;&#12451;&#12483;&#12503;"/>
+   <gentext key="tip" text="&#12486;&#12451;&#12483;&#12503;"/>
+   <gentext key="WARNING" text="&#35686;&#21578;"/>
+   <gentext key="warning" text="&#35686;&#21578;"/>
+   <gentext key="Warning" text="&#35686;&#21578;"/>
+   <gentext key="warning" text="&#35686;&#21578;"/>
+   <gentext key="appendix" text="&#20184;&#37682;"/>
+   <gentext key="chapter" text="&#31456;"/>
+   <gentext key="section" text="&#38917;"/>
+   <gentext key="sidebar" text="&#12469;&#12452;&#12489;&#12496;&#12540;"/>
+   <gentext key="step" text="&#12473;&#12486;&#12483;&#12503;"/>
+   <gentext key="Seealso" text="&#21442;&#29031;"/>
+   <gentext key="seealso" text="&#21442;&#29031;"/>
+   <gentext key="TableofContents" text="&#30446;&#27425;"/>
+   <gentext key="tableofcontents" text="&#30446;&#27425;"/>
+   <gentext key="in" text=""/>
+   <gentext key="by" text="&#65306;"/>
+   <gentext key="Edited" text="&#20316;&#32773;"/>
+   <gentext key="edited" text="&#20316;&#32773;"/>
+   <gentext key="Editedby" text="&#20316;&#32773;&#65306;"/>
+   <gentext key="editedby" text="&#20316;&#32773;&#65306;"/>
+   <gentext key="and" text="&#12289;"/>
+   <gentext key="Notes" text="&#27880;&#24847;"/>
+   <gentext key="notes" text="&#27880;&#24847;"/>
+   <gentext key="TableNotes" text="&#27880;&#24847;"/>
+   <gentext key="tablenotes" text="&#27880;&#24847;"/>
+   <gentext key="nonexistantelement" text="&#35201;&#32032;&#12364;&#23384;&#22312;&#12375;&#12414;&#12379;&#12435;"/>
+   <gentext key="Pgs" text="&#20583;&#29486;"/>
+   <gentext key="pgs" text="&#20583;&#29486;"/>
+   <gentext key="unsupported" text="&#12469;&#12509;&#12540;&#12488;&#12375;&#12414;&#12379;&#12435;"/>
+   <gentext key="xrefto" text="xref to"/>
+   <gentext key="unexpectedelementname" text="&#19981;&#26126;&#12394;&#35201;&#32032;&#21517;"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="&#34920;&#30446;&#27425;"/>
+   <gentext key="listoftables" text="&#34920;&#30446;&#27425;"/>
+   <gentext key="ListofExamples" text="&#20363;&#30446;&#27425;"/>
+   <gentext key="listofexamples" text="&#20363;&#30446;&#27425;"/>
+   <gentext key="ListofFigures" text="&#22259;&#30446;&#27425;"/>
+   <gentext key="listoffigures" text="&#22259;&#30446;&#27425;"/>
+   <gentext key="ListofEquations" text="&#24335;&#30446;&#27425;"/>
+   <gentext key="listofequations" text="&#24335;&#30446;&#27425;"/>
+   <gentext key="ListofUnknown" text="&#19981;&#26126;&#30446;&#27425;"/>
+   <gentext key="listofunknown" text="&#19981;&#26126;&#30446;&#27425;"/>
+   <gentext key="nav-prev" text="&#21069;&#12398;&#12506;&#12540;&#12472;"/>
+   <gentext key="nav-prev-sibling" text="Fast Backward"/>
+   <gentext key="nav-next-sibling" text="Fast Forward"/>
+   <gentext key="nav-next" text="&#27425;&#12398;&#12506;&#12540;&#12472;"/>
+   <gentext key="nav-up" text="&#19978;&#12395;&#25147;&#12427;"/>
+   <gentext key="nav-home" text="&#12507;&#12540;&#12512;"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="&#20184;&#37682;%n"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="&#31532;%n&#31456;"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="&#24335; %n. %t"/>
+      <template name="example" text="&#20363; %n. %t"/>
+      <template name="figure" text="&#22259; %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="&#12497;&#12540;&#12488; %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="&#34920; %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="&#20184;&#37682;%n"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="&#31532;%n&#31456;"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="&#20363; %n. %t"/>
+      <template name="figure" text="&#22259; %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="&#12497;&#12540;&#12488; %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="&#34920; %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="%t&#38917;"/>
+      <template name="sect2" text="%t&#38917;"/>
+      <template name="sect3" text="%t&#38917;"/>
+      <template name="sect4" text="%t&#38917;"/>
+      <template name="sect5" text="%t&#38917;"/>
+      <template name="section" text="%t&#38917;"/>
+      <template name="simplesect" text="%t&#38917;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="&#38917;%n"/>
+      <template name="sect2" text="&#38917;%n"/>
+      <template name="sect3" text="&#38917;%n"/>
+      <template name="sect4" text="&#38917;%n"/>
+      <template name="sect5" text="&#38917;%n"/>
+      <template name="section" text="&#38917;%n"/>
+      <template name="simplesect" text="%t&#38917;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" &#12289; "/>
+      <template name="seplast" text=", &#12289; "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="&#21442;&#29031; "/>
+      <template name="seealso" text="&#21442;&#29031; "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="&#12524;&#12505;&#12523;: "/>
+      <template name="MsgOrig" text="&#30330;&#20449;&#20803;: "/>
+      <template name="MsgAud" text="&#23550;&#35937;&#32773;: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ko.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ko.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ko.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,335 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="ko">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="&#52488;&#47197;"/>
+   <gentext key="abstract" text="&#52488;&#47197;"/>
+   <gentext key="Answer" text="&#45813;&#48320;"/>
+   <gentext key="answer" text="&#45813;&#48320;"/>
+   <gentext key="Appendix" text="&#48512;&#47197;"/>
+   <gentext key="Article" text="&#47928;&#49436;"/>
+   <gentext key="article" text="&#47928;&#49436;"/>
+   <gentext key="Bibliography" text="&#49436;&#51648;&#49324;&#54637;"/>
+   <gentext key="bibliography" text="&#49436;&#51648;&#49324;&#54637;"/>
+   <gentext key="Book" text="&#52293;"/>
+   <gentext key="book" text="&#52293;"/>
+   <gentext key="CAUTION" text="[&#44221;&#44256;]"/>
+   <gentext key="Caution" text="&#44221;&#44256;"/>
+   <gentext key="Chapter" text="&#51109;"/>
+   <gentext key="Colophon" text="&#54032;&#44428;"/>
+   <gentext key="colophon" text="&#54032;&#44428;"/>
+   <gentext key="Copyright" text="&#51200;&#51089;&#44428;"/>
+   <gentext key="copyright" text="&#51200;&#51089;&#44428;"/>
+   <gentext key="Dedication" text="&#48148;&#52824;&#45716; &#44544;"/>
+   <gentext key="dedication" text="&#48148;&#52824;&#45716; &#44544;"/>
+   <gentext key="Edition" text="&#50670;&#51020;"/>
+   <gentext key="edition" text="&#50670;&#51020;"/>
+   <gentext key="Equation" text="&#49688;&#49885;"/>
+   <gentext key="equation" text="&#49688;&#49885;"/>
+   <gentext key="Example" text="&#50696;"/>
+   <gentext key="example" text="&#50696;"/>
+   <gentext key="Figure" text="&#44536;&#47548;"/>
+   <gentext key="figure" text="&#44536;&#47548;"/>
+   <gentext key="GlossSee" text="&#49332;&#54196;&#48380; &#45236;&#50857;"/>
+   <gentext key="glosssee" text="&#49332;&#54196;&#48380; &#45236;&#50857;"/>
+   <gentext key="GlossSeeAlso" text="&#45796;&#47480; &#49332;&#54196;&#48380; &#45236;&#50857;"/>
+   <gentext key="glossseealso" text="&#45796;&#47480; &#49332;&#54196;&#48380; &#45236;&#50857;"/>
+   <gentext key="Glossary" text="&#50857;&#50612;&#54644;&#49444;"/>
+   <gentext key="glossary" text="&#50857;&#50612;&#54644;&#49444;"/>
+   <gentext key="IMPORTANT" text="[&#51473;&#50836;]"/>
+   <gentext key="important" text="[&#51473;&#50836;]"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="&#51473;&#50836;"/>
+   <gentext key="important" text="&#51473;&#50836;"/>
+   <gentext key="Index" text="&#49353;&#51064;"/>
+   <gentext key="index" text="&#49353;&#51064;"/>
+   <gentext key="LegalNotice" text="&#48277;&#51201; &#44277;&#51648;"/>
+   <gentext key="legalnotice" text="&#48277;&#51201; &#44277;&#51648;"/>
+   <gentext key="MsgAud" text="&#48155;&#45716; &#51060;"/>
+   <gentext key="msgaud" text="&#48155;&#45716; &#51060;"/>
+   <gentext key="MsgLevel" text="&#51473;&#50836;&#46020;"/>
+   <gentext key="msglevel" text="&#51473;&#50836;&#46020;"/>
+   <gentext key="MsgOrig" text="&#48372;&#45236;&#45716; &#51060;"/>
+   <gentext key="msgorig" text="&#48372;&#45236;&#45716; &#51060;"/>
+   <gentext key="NOTE" text="[&#52280;&#44256;]"/>
+   <gentext key="note" text="[&#52280;&#44256;]"/>
+   <gentext key="Note" text="&#52280;&#44256;"/>
+   <gentext key="note" text="&#52280;&#44256;"/>
+   <gentext key="Part" text="&#48512;"/>
+   <gentext key="part" text="&#48512;"/>
+   <gentext key="Preface" text="&#49436;&#47928;"/>
+   <gentext key="preface" text="&#49436;&#47928;"/>
+   <gentext key="Procedure" text="&#51208;&#52264;"/>
+   <gentext key="procedure" text="&#51208;&#52264;"/>
+   <gentext key="Published" text="&#54196;&#45252;"/>
+   <gentext key="published" text="&#54196;&#45252;"/>
+   <gentext key="Question" text="&#51656;&#47928;"/>
+   <gentext key="question" text="&#51656;&#47928;"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="&#52280;&#44256;&#47928;&#54732;"/>
+   <gentext key="reference" text="&#52280;&#44256;&#47928;&#54732;"/>
+   <gentext key="RefName" text="&#51228;&#47785;"/>
+   <gentext key="refname" text="&#51228;&#47785;"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="&#50836;&#50557;"/>
+   <gentext key="refsynopsisdiv" text="&#50836;&#50557;"/>
+   <gentext key="Revision" text="&#44256;&#52840;"/>
+   <gentext key="revision" text="&#44256;&#52840;"/>
+   <gentext key="RevHistory" text="&#44256;&#52828; &#44284;&#51221;"/>
+   <gentext key="revhistory" text="&#44256;&#52828; &#44284;&#51221;"/>
+   <gentext key="Section" text="&#51208;"/>
+   <gentext key="See" text="&#49332;&#54196;&#48380; &#45236;&#50857;"/>
+   <gentext key="see" text="&#49332;&#54196;&#48380; &#45236;&#50857;"/>
+   <gentext key="SeeAlso" text="[&#49332;&#54196;&#48380; &#45796;&#47480; &#45236;&#50857;]"/>
+   <gentext key="seealso" text="[&#49332;&#54196;&#48380; &#45796;&#47480; &#45236;&#50857;]"/>
+   <gentext key="Set" text="&#51204;&#51665;"/>
+   <gentext key="set" text="&#51204;&#51665;"/>
+   <gentext key="SetIndex" text="&#51204;&#51665; &#49353;&#51064;"/>
+   <gentext key="setindex" text="&#51204;&#51665; &#49353;&#51064;"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="&#45800;&#44228;"/>
+   <gentext key="TIP" text="[&#51089;&#51008; &#51221;&#48372;]"/>
+   <gentext key="tip" text="[&#51089;&#51008; &#51221;&#48372;]"/>
+   <gentext key="Table" text="&#54364;"/>
+   <gentext key="table" text="&#54364;"/>
+   <gentext key="Tip" text="&#51089;&#51008; &#51221;&#48372;"/>
+   <gentext key="tip" text="&#51089;&#51008; &#51221;&#48372;"/>
+   <gentext key="WARNING" text="&#51452;&#51032;!"/>
+   <gentext key="warning" text="&#51452;&#51032;!"/>
+   <gentext key="Warning" text="&#51452;&#51032;"/>
+   <gentext key="warning" text="&#51452;&#51032;"/>
+   <gentext key="appendix" text="&#48512;&#47197;"/>
+   <gentext key="chapter" text="&#51109;"/>
+   <gentext key="section" text="&#51208;"/>
+   <gentext key="sidebar" text="&#45927;&#48537;&#51076;"/>
+   <gentext key="step" text="&#45800;&#44228;"/>
+   <gentext key="Seealso" text="&#49332;&#54196;&#48380; &#45796;&#47480; &#45236;&#50857;"/>
+   <gentext key="seealso" text="&#49332;&#54196;&#48380; &#45796;&#47480; &#45236;&#50857;"/>
+   <gentext key="TableofContents" text="&#52264;&#47168;"/>
+   <gentext key="tableofcontents" text="&#52264;&#47168;"/>
+   <gentext key="in" text="-"/>
+   <gentext key="by" text="&#51648;&#51008;&#51060;"/>
+   <gentext key="Edited" text="&#50670;&#51020;"/>
+   <gentext key="edited" text="&#50670;&#51020;"/>
+   <gentext key="Editedby" text="&#50670;&#51008;&#51060;"/>
+   <gentext key="editedby" text="&#50670;&#51008;&#51060;"/>
+   <gentext key="and" text="&#44536;&#47532;&#44256;"/>
+   <gentext key="Notes" text="&#51452;&#49437;"/>
+   <gentext key="notes" text="&#51452;&#49437;"/>
+   <gentext key="TableNotes" text="&#52280;&#44256;"/>
+   <gentext key="tablenotes" text="&#52280;&#44256;"/>
+   <gentext key="nonexistantelement" text="&#51316;&#51116;&#54616;&#51648; &#50506;&#45716; &#44592;&#52488;&#50836;&#49548;&#51077;&#45768;&#45796;"/>
+   <gentext key="Pgs" text="Pgs."/>
+   <gentext key="pgs" text="Pgs."/>
+   <gentext key="unsupported" text="&#51648;&#50896;&#46104;&#51648; &#50506;&#49845;&#45768;&#45796;"/>
+   <gentext key="xrefto" text="&#51060; &#44275;&#51012; &#52280;&#51312;&#54616;&#49464;&#50836; : "/>
+   <gentext key="unexpectedelementname" text="&#50508; &#49688; &#50630;&#45716; &#44592;&#52488;&#50836;&#49548; &#51060;&#47492;&#51077;&#45768;&#45796;"/>
+   <gentext key="Revisedby" text="&#44256;&#52828;&#51060; "/>
+   <gentext key="revisedby" text="&#44256;&#52828;&#51060; "/>
+   <gentext key="ListofTables" text="&#54364; &#47785;&#47197;"/>
+   <gentext key="listoftables" text="&#54364; &#47785;&#47197;"/>
+   <gentext key="ListofExamples" text="&#50696; &#47785;&#47197;"/>
+   <gentext key="listofexamples" text="&#50696; &#47785;&#47197;"/>
+   <gentext key="ListofFigures" text="&#44536;&#47548; &#47785;&#47197;"/>
+   <gentext key="listoffigures" text="&#44536;&#47548; &#47785;&#47197;"/>
+   <gentext key="ListofEquations" text="&#49688;&#49885; &#47785;&#47197;"/>
+   <gentext key="listofequations" text="&#49688;&#49885; &#47785;&#47197;"/>
+   <gentext key="ListofUnknown" text="&#44592;&#53440; &#47785;&#47197;"/>
+   <gentext key="listofunknown" text="&#44592;&#53440; &#47785;&#47197;"/>
+   <gentext key="nav-prev" text="&#51060;&#51204;"/>
+   <gentext key="nav-prev-sibling" text="&#51060;&#51204;&#51004;&#47196; &#44148;&#45320;&#46848;"/>
+   <gentext key="nav-next-sibling" text="&#45796;&#51020;&#51004;&#47196; &#44148;&#45320;&#46848;"/>
+   <gentext key="nav-next" text="&#45796;&#51020;"/>
+   <gentext key="nav-up" text="&#50948;&#47196;"/>
+   <gentext key="nav-home" text="&#52376;&#51020;&#51004;&#47196;"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="&#48512;&#47197; %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="%n&#51109;. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="&#49688;&#49885; %n. %t"/>
+      <template name="example" text="&#50696; %n. %t"/>
+      <template name="figure" text="&#44536;&#47548; %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="%n&#48512;. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="&#54364; %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="&#48512;&#47197; %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="%n&#51109;. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="&#50696; %n. %t"/>
+      <template name="figure" text="&#44536;&#47548; %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="%n&#48512;. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="&#54364; %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="%n&#51208;"/>
+      <template name="sect2" text="%n&#51208;"/>
+      <template name="sect3" text="%n&#51208;"/>
+      <template name="sect4" text="%n&#51208;"/>
+      <template name="sect5" text="%n&#51208;"/>
+      <template name="section" text="%n&#51208;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" &#44536;&#47532;&#44256; "/>
+      <template name="seplast" text=", &#44536;&#47532;&#44256; "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="&#49332;&#54196;&#48380; &#45236;&#50857; "/>
+      <template name="seealso" text="&#45796;&#47480; &#49332;&#54196;&#48380; &#45236;&#50857; "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="&#51473;&#50836;&#46020;: "/>
+      <template name="MsgOrig" text="&#48372;&#45236;&#45716; &#51060;: "/>
+      <template name="MsgAud" text="&#48155;&#45716; &#51060;: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<!ELEMENT internationalization (localization+)>
+
+<!ELEMENT localization (gentext|dingbat|context)*>
+<!ATTLIST localization
+	language	CDATA	#REQUIRED
+>
+
+<!ELEMENT gentext EMPTY>
+<!ATTLIST gentext
+	key		CDATA	#REQUIRED
+	text		CDATA	#REQUIRED
+>
+
+<!ELEMENT dingbat EMPTY>
+<!ATTLIST dingbat
+	key		CDATA	#REQUIRED
+	text		CDATA	#REQUIRED
+>
+
+<!ELEMENT context (template+)>
+<!ATTLIST context
+	name		CDATA	#REQUIRED
+>
+
+<!ELEMENT template EMPTY>
+<!ATTLIST template
+	name		CDATA	#REQUIRED
+	text		CDATA	#REQUIRED
+>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,61 @@
+<?xml version='1.0'?>
+<!DOCTYPE internationalization SYSTEM "l10n.dtd" [
+<!ENTITY ca SYSTEM "ca.xml">
+<!ENTITY cs SYSTEM "cs.xml">
+<!ENTITY da SYSTEM "da.xml">
+<!ENTITY de SYSTEM "de.xml">
+<!ENTITY el SYSTEM "el.xml">
+<!ENTITY en SYSTEM "en.xml">
+<!ENTITY es SYSTEM "es.xml">
+<!ENTITY et SYSTEM "et.xml">
+<!ENTITY fi SYSTEM "fi.xml">
+<!ENTITY fr SYSTEM "fr.xml">
+<!ENTITY hu SYSTEM "hu.xml">
+<!ENTITY id SYSTEM "id.xml">
+<!ENTITY it SYSTEM "it.xml">
+<!ENTITY ja SYSTEM "ja.xml">
+<!ENTITY ko SYSTEM "ko.xml">
+<!ENTITY nl SYSTEM "nl.xml">
+<!ENTITY no SYSTEM "no.xml">
+<!ENTITY pl SYSTEM "pl.xml">
+<!ENTITY pt SYSTEM "pt.xml">
+<!ENTITY pt_br SYSTEM "pt_br.xml">
+<!ENTITY ro SYSTEM "ro.xml">
+<!ENTITY ru SYSTEM "ru.xml">
+<!ENTITY sk SYSTEM "sk.xml">
+<!ENTITY sl SYSTEM "sl.xml">
+<!ENTITY sr SYSTEM "sr.xml">
+<!ENTITY sv SYSTEM "sv.xml">
+<!ENTITY zh_cn SYSTEM "zh_cn.xml">
+<!ENTITY zh_tw SYSTEM "zh_tw.xml">
+]>
+<internationalization>
+&ca;
+&cs;
+&da;
+&de;
+&el;
+&en;
+&es;
+&et;
+&fi;
+&fr;
+&hu;
+&id;
+&it;
+&ja;
+&ko;
+&nl;
+&no;
+&pl;
+&pt;
+&pt_br;
+&ro;
+&ru;
+&sk;
+&sl;
+&sr;
+&sv;
+&zh_cn;
+&zh_tw;
+</internationalization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/l10n.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,295 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: l10n.xsl,v 1.2 2001/06/23 17:06:27 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     This file contains localization templates (for internationalization)
+     ******************************************************************** -->
+
+<xsl:param name="l10n.xml" select="document('../common/l10n.xml')"/>
+
+<xsl:param name="l10n.gentext.language" select="''"/>
+<xsl:param name="l10n.gentext.default.language" select="'en'"/>
+<xsl:param name="l10n.gentext.use.xref.language" select="false()"/>
+
+<xsl:template name="l10n.language">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="xref-context" select="false()"/>
+
+  <xsl:variable name="language">
+    <xsl:choose>
+      <xsl:when test="$l10n.gentext.language != ''">
+        <xsl:value-of select="$l10n.gentext.language"/>
+      </xsl:when>
+
+      <xsl:when test="$xref-context or $l10n.gentext.use.xref.language">
+        <xsl:variable name="lang-attr"
+                      select="($target/ancestor-or-self::*/@lang
+                               |$target/ancestor-or-self::*/@xml:lang)[last()]"/>
+        <xsl:choose>
+          <xsl:when test="string($lang-attr) = ''">
+            <xsl:value-of select="$l10n.gentext.default.language"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$lang-attr"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <xsl:variable name="lang-attr" 
+                      select="(ancestor-or-self::*/@lang
+                               |ancestor-or-self::*/@xml:lang)[last()]"/>
+        <xsl:choose>
+          <xsl:when test="string($lang-attr) = ''">
+            <xsl:value-of select="$l10n.gentext.default.language"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$lang-attr"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="contains($language,'-')">
+      <xsl:value-of select="substring-before($language,'-')"/>
+      <xsl:text>_</xsl:text>
+      <xsl:value-of select="substring-after($language,'-')"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$language"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.xref.text">
+  <xsl:param name="element.name" select="name(.)"/>
+  <xsl:param name="default"></xsl:param>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:variable name="l10n.text">
+    <xsl:value-of select="($l10n.xml/internationalization/localization[@language=$lang]/xref[@element=$element.name])[1]/@text"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$l10n.text=''">
+      <xsl:choose>
+        <xsl:when test="$default=''">
+          <xsl:message>
+            <xsl:text>No "</xsl:text>
+            <xsl:value-of select="$lang"/>
+            <xsl:text>" cross reference text for "</xsl:text>
+            <xsl:value-of select="$element.name"/>
+            <xsl:text>" exists and no default specified.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$default"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$l10n.text"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext">
+  <xsl:param name="key" select="local-name(.)"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:variable name="l10n.gentext"
+                select="($l10n.xml/internationalization/localization[@language=$lang]/gentext[@key=$key])[1]"/>
+
+  <xsl:variable name="l10n.name">
+    <xsl:value-of select="$l10n.gentext/@text"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($l10n.gentext)=0">
+      <xsl:message>
+        <xsl:text>No "</xsl:text>
+        <xsl:value-of select="$lang"/>
+        <xsl:text>" localization of "</xsl:text>
+        <xsl:value-of select="$key"/>
+        <xsl:text>" exists; using "en".</xsl:text>
+      </xsl:message>
+
+      <xsl:value-of select="($l10n.xml/internationalization/localization[@language='en']/gentext[@key=$key])[1]/@text"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$l10n.name"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.element.name">
+  <xsl:param name="element.name" select="name(.)"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="$element.name"/>
+    <xsl:with-param name="lang" select="$lang"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.space">
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template name="gentext.edited.by">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">Editedby</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.by">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">by</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.dingbat">
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:variable name="l10n.dingbat">
+    <xsl:value-of select="($l10n.xml/internationalization/localization[@language=$lang]/dingbat[@key=$dingbat])[1]/@text"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$l10n.dingbat=''">
+      <xsl:message>
+        <xsl:text>No "</xsl:text>
+        <xsl:value-of select="$lang"/>
+        <xsl:text>" localization of dingbat </xsl:text>
+        <xsl:value-of select="$dingbat"/>
+        <xsl:text> exists; using "en".</xsl:text>
+      </xsl:message>
+
+      <xsl:value-of select="($l10n.xml/internationalization/localization[@language='en']/dingbat[@key=$dingbat])[1]/@text"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$l10n.dingbat"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.startquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">startquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.endquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">endquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedstartquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">nestedstartquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedendquote">
+  <xsl:call-template name="gentext.dingbat">
+    <xsl:with-param name="dingbat">nestedendquote</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.prev">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">nav-prev</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.next">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">nav-next</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.home">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">nav-home</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.up">
+  <xsl:call-template name="gentext.element.name">
+    <xsl:with-param name="element.name">nav-up</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="gentext.template">
+  <xsl:param name="context" select="'default'"/>
+  <xsl:param name="name" select="'default'"/>
+  <xsl:param name="lang">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:variable name="localization.node"
+                select="($l10n.xml/internationalization/localization[@language=$lang])[1]"/>
+
+  <xsl:if test="count($localization.node) = 0">
+    <xsl:message>
+      <xsl:text>No "</xsl:text>
+      <xsl:value-of select="$lang"/>
+      <xsl:text>" localization exists.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="context.node"
+                select="$localization.node/context[@name=$context]"/>
+
+  <xsl:if test="count($context.node) = 0">
+    <xsl:message>
+      <xsl:text>No context named "</xsl:text>
+      <xsl:value-of select="$context"/>
+      <xsl:text>" exists in the "</xsl:text>
+      <xsl:value-of select="$lang"/>
+      <xsl:text>" localization.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="template.node"
+                select="$context.node/template[@name=$name][1]"/>
+
+  <xsl:if test="count($template.node) = 0">
+    <xsl:message>
+      <xsl:text>No template named "</xsl:text>
+      <xsl:value-of select="$name"/>
+      <xsl:text>" exists in the context named "</xsl:text>
+      <xsl:value-of select="$context"/>
+      <xsl:text>" in the "</xsl:text>
+      <xsl:value-of select="$lang"/>
+      <xsl:text>" localization.</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:value-of select="$template.node/@text"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/labels.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/labels.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/labels.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,516 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ============================================================ -->
+<!-- label markup -->
+
+<doc:mode mode="label.markup" xmlns="">
+<refpurpose>Provides access to element labels</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">label.markup</literal> mode produces the
+element label.</para>
+<para>Trailing punctuation is not added to the label.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="intralabel.punctuation">
+  <xsl:text>.</xsl:text>
+</xsl:template>
+
+<xsl:template match="*" mode="label.markup">
+  <xsl:message>
+    <xsl:text>Request for label of unexpected element: </xsl:text>
+    <xsl:value-of select="name(.)"/>
+  </xsl:message>
+</xsl:template>
+
+<xsl:template match="set|book" mode="label.markup">
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$part.autolabel != 0">
+      <xsl:number from="book" count="part" format="I"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="preface" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$preface.autolabel != 0">
+      <xsl:choose>
+        <xsl:when test="$label.from.part != 0 and ancestor::part">
+          <xsl:number from="part" count="preface" format="1" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number from="book" count="preface" format="1" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$chapter.autolabel != 0">
+      <xsl:choose>
+        <xsl:when test="$label.from.part != 0 and ancestor::part">
+          <xsl:number from="part" count="chapter" format="1" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number from="book" count="chapter" format="1" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$appendix.autolabel != 0">
+      <xsl:choose>
+        <xsl:when test="$label.from.part != 0 and ancestor::part">
+          <xsl:number from="part" count="appendix" format="A" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number from="book|article"
+                      count="appendix" format="A" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="label.markup">
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="label.markup">
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="reference" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$part.autolabel != 0">
+      <xsl:number from="book" count="reference" format="I" level="any"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refentry" mode="label.markup">
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section" mode="label.markup">
+  <!-- if this is a nested section, label the parent -->
+  <xsl:if test="local-name(..) = 'section'">
+    <xsl:variable name="parent.section.label">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:if test="$parent.section.label != ''">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+      <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+    </xsl:if>
+  </xsl:if>
+
+  <!-- if the parent is a component, maybe label that too -->
+  <xsl:variable name="parent.is.component">
+    <xsl:call-template name="is.component">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- does this section get labelled? -->
+  <xsl:variable name="label">
+    <xsl:call-template name="label.this.section">
+      <xsl:with-param name="section" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="($section.label.includes.component.label != 0
+                or /article)
+                and $parent.is.component != 0">
+    <xsl:variable name="parent.label">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:if test="$parent.label != ''">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+      <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+    </xsl:if>
+  </xsl:if>
+
+<!--
+  <xsl:message>
+    <xsl:value-of select="$label"/>, <xsl:number count="section"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$label != 0">
+      <xsl:number count="section"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1" mode="label.markup">
+  <!-- if the parent is a component, maybe label that too -->
+  <xsl:variable name="parent.is.component">
+    <xsl:call-template name="is.component">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$section.label.includes.component.label != 0
+                and $parent.is.component">
+    <xsl:variable name="parent.label">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:if test="$parent.label != ''">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+      <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:number count="sect1"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect2|sect3|sect4|sect5" mode="label.markup">
+  <!-- label the parent -->
+  <xsl:variable name="parent.label">
+    <xsl:apply-templates select=".." mode="label.markup"/>
+  </xsl:variable>
+  <xsl:if test="$parent.label != ''">
+    <xsl:apply-templates select=".." mode="label.markup"/>
+    <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:choose>
+        <xsl:when test="local-name(.) = 'sect2'">
+	  <xsl:number count="sect2"/>
+	</xsl:when>
+	<xsl:when test="local-name(.) = 'sect3'">
+	  <xsl:number count="sect3"/>
+	</xsl:when>
+	<xsl:when test="local-name(.) = 'sect4'">
+	  <xsl:number count="sect4"/>
+	</xsl:when>
+	<xsl:when test="local-name(.) = 'sect5'">
+	  <xsl:number count="sect5"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:message>label.markup: this can't happen!</xsl:message>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refsect1" mode="label.markup">
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:number count="refsect1"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refsect2|refsect3" mode="label.markup">
+  <!-- label the parent -->
+  <xsl:variable name="parent.label">
+    <xsl:apply-templates select=".." mode="label.markup"/>
+  </xsl:variable>
+  <xsl:if test="$parent.label != ''">
+    <xsl:apply-templates select=".." mode="label.markup"/>
+    <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$section.autolabel != 0">
+      <xsl:choose>
+        <xsl:when test="local-name(.) = 'refsect2'">
+	  <xsl:number count="refsect2"/>
+	</xsl:when>
+        <xsl:otherwise>
+	  <xsl:number count="refsect3"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="simplesect" mode="label.markup">
+  <!-- if this is a nested section, label the parent -->
+  <xsl:if test="local-name(..) = 'section'
+                or local-name(..) = 'sect1'
+                or local-name(..) = 'sect2'
+                or local-name(..) = 'sect3'
+                or local-name(..) = 'sect4'
+                or local-name(..) = 'sect5'">
+    <xsl:variable name="parent.section.label">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:if test="$parent.section.label != ''">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+      <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+    </xsl:if>
+  </xsl:if>
+
+  <!-- if the parent is a component, maybe label that too -->
+  <xsl:variable name="parent.is.component">
+    <xsl:call-template name="is.component">
+      <xsl:with-param name="node" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- does this section get labelled? -->
+  <xsl:variable name="label">
+    <xsl:call-template name="label.this.section">
+      <xsl:with-param name="section" select="."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="$section.label.includes.component.label != 0
+                and $parent.is.component != 0">
+    <xsl:variable name="parent.label">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+    </xsl:variable>
+    <xsl:if test="$parent.label != ''">
+      <xsl:apply-templates select=".." mode="label.markup"/>
+      <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$label != 0">
+      <xsl:number count="simplesect"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="label.markup">
+  <xsl:variable name="lparent" select="(ancestor::set
+                                       |ancestor::book
+                                       |ancestor::chapter
+                                       |ancestor::appendix
+                                       |ancestor::preface
+                                       |ancestor::section
+                                       |ancestor::simplesect
+                                       |ancestor::sect1
+                                       |ancestor::sect2
+                                       |ancestor::sect3
+                                       |ancestor::sect4
+                                       |ancestor::sect5
+                                       |ancestor::refsect1
+                                       |ancestor::refsect2
+                                       |ancestor::refsect3)[last()]"/>
+
+  <xsl:variable name="lparent.prefix">
+    <xsl:apply-templates select="$lparent" mode="label.markup"/>
+  </xsl:variable>
+
+  <xsl:variable name="prefix">
+    <xsl:if test="$qanda.inherit.numeration != 0">
+      <xsl:if test="$lparent.prefix != ''">
+        <xsl:apply-templates select="$lparent" mode="label.markup"/>
+        <xsl:apply-templates select="$lparent" mode="intralabel.punctuation"/>
+      </xsl:if>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="$prefix"/>
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:when test="$qandadiv.autolabel != 0">
+      <xsl:value-of select="$prefix"/>
+      <xsl:number level="multiple" count="qandadiv" format="1"/>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="label.markup">
+  <xsl:variable name="lparent" select="(ancestor::set
+                                       |ancestor::book
+                                       |ancestor::chapter
+                                       |ancestor::appendix
+                                       |ancestor::preface
+                                       |ancestor::section
+                                       |ancestor::simplesect
+                                       |ancestor::sect1
+                                       |ancestor::sect2
+                                       |ancestor::sect3
+                                       |ancestor::sect4
+                                       |ancestor::sect5
+                                       |ancestor::refsect1
+                                       |ancestor::refsect2
+                                       |ancestor::refsect3)[last()]"/>
+
+  <xsl:variable name="lparent.prefix">
+    <xsl:apply-templates select="$lparent" mode="label.markup"/>
+  </xsl:variable>
+
+  <xsl:variable name="prefix">
+    <xsl:if test="$qanda.inherit.numeration != 0">
+      <xsl:if test="$lparent.prefix != ''">
+        <xsl:apply-templates select="$lparent" mode="label.markup"/>
+        <xsl:apply-templates select="$lparent" mode="intralabel.punctuation"/>
+      </xsl:if>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="inhlabel"
+                select="ancestor-or-self::qandaset/@defaultlabel[1]"/>
+
+  <xsl:variable name="deflabel">
+    <xsl:choose>
+      <xsl:when test="$inhlabel != ''">
+        <xsl:value-of select="$inhlabel"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$qanda.defaultlabel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="label" select="label"/>
+
+  <xsl:choose>
+    <xsl:when test="count($label)>0">
+      <xsl:value-of select="$prefix"/>
+      <xsl:apply-templates select="$label"/>
+    </xsl:when>
+
+    <xsl:when test="$deflabel = 'qanda' and local-name(.) = 'question'">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Question'"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="$deflabel = 'qanda' and local-name(.) = 'answer'">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Answer'"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="$deflabel = 'number'">
+      <xsl:if test="name(.) = 'question'">
+        <xsl:value-of select="$prefix"/>
+        <xsl:number level="multiple" count="qandaentry" format="1"/>
+      </xsl:if>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary|index" mode="label.markup">
+  <xsl:if test="@label">
+    <xsl:value-of select="@label"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation" mode="label.markup">
+  <xsl:variable name="pchap"
+                select="ancestor::chapter|ancestor::appendix"/>
+
+  <xsl:variable name="prefix">
+    <xsl:if test="count($pchap) &gt; 0">
+      <xsl:apply-templates select="$pchap" mode="label.markup"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="count($pchap)>0">
+          <xsl:if test="$prefix != ''">
+            <xsl:apply-templates select="$pchap" mode="label.markup"/>
+            <xsl:apply-templates select="$pchap" mode="intralabel.punctuation"/>
+          </xsl:if>
+          <xsl:number format="1" from="chapter|appendix" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number format="1" from="book|article" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="abstract" mode="label.markup">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="label.this.section">
+  <xsl:param name="section" select="."/>
+  <xsl:value-of select="$section.autolabel"/>
+</xsl:template>
+
+<doc:template name="label.this.section" xmlns="">
+<refpurpose>Returns true if $section should be labelled</refpurpose>
+<refdescription>
+<para>Returns true if the specified section should be labelled.
+By default, this template simply returns $section.autolabel, but
+custom stylesheets may override it to get more selective behavior.</para>
+</refdescription>
+</doc:template>
+
+<!-- ============================================================ -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/nl.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/nl.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/nl.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="nl">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Samenvatting"/>
+   <gentext key="abstract" text="Samenvatting"/>
+   <gentext key="Answer" text="Antwoord:"/>
+   <gentext key="answer" text="Antwoord:"/>
+   <gentext key="Appendix" text="Aanhangsel"/>
+   <gentext key="Article" text="Artikel"/>
+   <gentext key="article" text="Artikel"/>
+   <gentext key="Bibliography" text="Literatuurlijst"/>
+   <gentext key="bibliography" text="Literatuurlijst"/>
+   <gentext key="Book" text="Boek"/>
+   <gentext key="book" text="Boek"/>
+   <gentext key="CAUTION" text="LET OP"/>
+   <gentext key="caution" text="LET OP"/>
+   <gentext key="Caution" text="Let op"/>
+   <gentext key="caution" text="Let op"/>
+   <gentext key="Chapter" text="Hoofdstuk"/>
+   <gentext key="Colophon" text="Colofon"/>
+   <gentext key="colophon" text="Colofon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Opdracht"/>
+   <gentext key="dedication" text="Opdracht"/>
+   <gentext key="Edition" text="Uitgave"/>
+   <gentext key="edition" text="Uitgave"/>
+   <gentext key="Equation" text="Vergelijking"/>
+   <gentext key="equation" text="Vergelijking"/>
+   <gentext key="Example" text="Voorbeeld"/>
+   <gentext key="example" text="Voorbeeld"/>
+   <gentext key="Figure" text="Figuur"/>
+   <gentext key="figure" text="Figuur"/>
+   <gentext key="GlossSee" text="Zie"/>
+   <gentext key="glosssee" text="Zie"/>
+   <gentext key="GlossSeeAlso" text="Zie ook"/>
+   <gentext key="glossseealso" text="Zie ook"/>
+   <gentext key="Glossary" text="Woordenlijst"/>
+   <gentext key="glossary" text="Woordenlijst"/>
+   <gentext key="IMPORTANT" text="BELANGRIJK"/>
+   <gentext key="important" text="BELANGRIJK"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Belangrijk"/>
+   <gentext key="important" text="Belangrijk"/>
+   <gentext key="Index" text="Register"/>
+   <gentext key="index" text="Register"/>
+   <gentext key="LegalNotice" text="Bericht"/>
+   <gentext key="legalnotice" text="Bericht"/>
+   <gentext key="MsgAud" text="Doelgroep"/>
+   <gentext key="msgaud" text="Doelgroep"/>
+   <gentext key="MsgLevel" text="Niveau"/>
+   <gentext key="msglevel" text="Niveau"/>
+   <gentext key="MsgOrig" text="Herkomst"/>
+   <gentext key="msgorig" text="Herkomst"/>
+   <gentext key="NOTE" text="OPMERKING"/>
+   <gentext key="note" text="OPMERKING"/>
+   <gentext key="Note" text="Opmerking"/>
+   <gentext key="note" text="Opmerking"/>
+   <gentext key="Part" text="Deel"/>
+   <gentext key="part" text="Deel"/>
+   <gentext key="Preface" text="Voorwoord"/>
+   <gentext key="preface" text="Voorwoord"/>
+   <gentext key="Procedure" text="Procedure"/>
+   <gentext key="procedure" text="Procedure"/>
+   <gentext key="Published" text="Uitgegeven"/>
+   <gentext key="published" text="Uitgegeven"/>
+   <gentext key="Question" text="Vraag:"/>
+   <gentext key="question" text="Vraag:"/>
+   <gentext key="RefEntry" text="Referentielemma"/>
+   <gentext key="refentry" text="Referentielemma"/>
+   <gentext key="Reference" text="Referentie"/>
+   <gentext key="reference" text="Referentie"/>
+   <gentext key="RefName" text="Referentienaam"/>
+   <gentext key="refname" text="Referentienaam"/>
+   <gentext key="RefSection" text="Referentieparagraaf"/>
+   <gentext key="refsection" text="Referentieparagraaf"/>
+   <gentext key="RefSynopsisDiv" text="Referentiesamenvatting"/>
+   <gentext key="refsynopsisdiv" text="Referentiesamenvatting"/>
+   <gentext key="Revision" text="Herziening"/>
+   <gentext key="revision" text="Herziening"/>
+   <gentext key="RevHistory" text="Wijzigingen"/>
+   <gentext key="revhistory" text="Wijzigingen"/>
+   <gentext key="Section" text="Paragraaf"/>
+   <gentext key="See" text="Zie"/>
+   <gentext key="see" text="Zie"/>
+   <gentext key="SeeAlso" text="Zie ook"/>
+   <gentext key="seealso" text="Zie ook"/>
+   <gentext key="Set" text="Verzameling"/>
+   <gentext key="set" text="Verzameling"/>
+   <gentext key="SetIndex" text="Hoofdregister"/>
+   <gentext key="setindex" text="Hoofdregister"/>
+   <gentext key="Sidebar" text="Excursie"/>
+   <gentext key="Step" text="Stap"/>
+   <gentext key="TIP" text="TIP"/>
+   <gentext key="tip" text="TIP"/>
+   <gentext key="Table" text="Tabel"/>
+   <gentext key="table" text="Tabel"/>
+   <gentext key="Tip" text="Tip"/>
+   <gentext key="tip" text="Tip"/>
+   <gentext key="WARNING" text="WAARSCHUWING"/>
+   <gentext key="warning" text="WAARSCHUWING"/>
+   <gentext key="Warning" text="Waarschuwing"/>
+   <gentext key="warning" text="Waarschuwing"/>
+   <gentext key="appendix" text="aanhangsel"/>
+   <gentext key="chapter" text="hoofdstuk"/>
+   <gentext key="section" text="paragraaf"/>
+   <gentext key="sidebar" text="excursie"/>
+   <gentext key="step" text="stap"/>
+   <gentext key="Seealso" text="Zie ook"/>
+   <gentext key="seealso" text="Zie ook"/>
+   <gentext key="TableofContents" text="Inhoudsopgave"/>
+   <gentext key="tableofcontents" text="Inhoudsopgave"/>
+   <gentext key="in" text="in"/>
+   <gentext key="by" text="door"/>
+   <gentext key="Edited" text="Redactie"/>
+   <gentext key="edited" text="Redactie"/>
+   <gentext key="Editedby" text="Redactie door"/>
+   <gentext key="editedby" text="Redactie door"/>
+   <gentext key="and" text="en"/>
+   <gentext key="Notes" text="Noten"/>
+   <gentext key="notes" text="Noten"/>
+   <gentext key="TableNotes" text="Opmerkingen"/>
+   <gentext key="tablenotes" text="Opmerkingen"/>
+   <gentext key="nonexistantelement" text="niet bestaand element"/>
+   <gentext key="Pgs" text="blz."/>
+   <gentext key="pgs" text="blz."/>
+   <gentext key="unsupported" text="niet ondersteund"/>
+   <gentext key="xrefto" text="verwijzing naar"/>
+   <gentext key="unexpectedelementname" text="ONVERWACHT-ELEMENT"/>
+   <gentext key="Revisedby" text="Herzien door: "/>
+   <gentext key="revisedby" text="Herzien door: "/>
+   <gentext key="ListofTables" text="Lijst van tabellen"/>
+   <gentext key="listoftables" text="Lijst van tabellen"/>
+   <gentext key="ListofExamples" text="Lijst van voorbeelden"/>
+   <gentext key="listofexamples" text="Lijst van voorbeelden"/>
+   <gentext key="ListofFigures" text="Lijst van figuren"/>
+   <gentext key="listoffigures" text="Lijst van figuren"/>
+   <gentext key="ListofEquations" text="Lijst van vergelijkingen"/>
+   <gentext key="listofequations" text="Lijst van vergelijkingen"/>
+   <gentext key="ListofUnknown" text="Lijst van ???"/>
+   <gentext key="listofunknown" text="Lijst van ???"/>
+   <gentext key="nav-prev" text="Terug"/>
+   <gentext key="nav-prev-sibling" text="Verder terug"/>
+   <gentext key="nav-next-sibling" text="Verder vooruit"/>
+   <gentext key="nav-next" text="Volgende"/>
+   <gentext key="nav-up" text="Omhoog"/>
+   <gentext key="nav-home" text="Begin"/>
+   <gentext key="sectioncalled" text="de sectie genaamd"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Aanhangsel %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Hoofdstuk %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Vergelijking %n. %t"/>
+      <template name="example" text="Voorbeeld %n. %t"/>
+      <template name="figure" text="Figuur %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Deel %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabel %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Aanhangsel %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Hoofdstuk %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Voorbeeld %n. %t"/>
+      <template name="figure" text="Figuur %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Deel %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabel %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="de sectie genaamd &#8220;%t&#8221;"/>
+      <template name="sect2" text="de sectie genaamd &#8220;%t&#8221;"/>
+      <template name="sect3" text="de sectie genaamd &#8220;%t&#8221;"/>
+      <template name="sect4" text="de sectie genaamd &#8220;%t&#8221;"/>
+      <template name="sect5" text="de sectie genaamd &#8220;%t&#8221;"/>
+      <template name="section" text="de sectie genaamd &#8220;%t&#8221;"/>
+      <template name="simplesect" text="de sectie genaamd &#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Paragraaf %n"/>
+      <template name="sect2" text="Paragraaf %n"/>
+      <template name="sect3" text="Paragraaf %n"/>
+      <template name="sect4" text="Paragraaf %n"/>
+      <template name="sect5" text="Paragraaf %n"/>
+      <template name="section" text="Paragraaf %n"/>
+      <template name="simplesect" text="de sectie genaamd &#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" en "/>
+      <template name="seplast" text=", en "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Zie "/>
+      <template name="seealso" text="Zie ook "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Niveau: "/>
+      <template name="MsgOrig" text="Herkomst: "/>
+      <template name="MsgAud" text="Doelgroep: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/no.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/no.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/no.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="no">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Abstract"/>
+   <gentext key="abstract" text="Abstract"/>
+   <gentext key="Answer" text="A:"/>
+   <gentext key="answer" text="A:"/>
+   <gentext key="Appendix" text="Tillegg"/>
+   <gentext key="Article" text=""/>
+   <gentext key="article" text=""/>
+   <gentext key="Bibliography" text="Bibliografi"/>
+   <gentext key="bibliography" text="Bibliografi"/>
+   <gentext key="Book" text=""/>
+   <gentext key="book" text=""/>
+   <gentext key="CAUTION" text="OBS"/>
+   <gentext key="caution" text="OBS"/>
+   <gentext key="Caution" text="Obs"/>
+   <gentext key="caution" text="Obs"/>
+   <gentext key="Chapter" text="Kapittel"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Dedikasjon"/>
+   <gentext key="dedication" text="Dedikasjon"/>
+   <gentext key="Edition" text=""/>
+   <gentext key="edition" text=""/>
+   <gentext key="Equation" text="Formel"/>
+   <gentext key="equation" text="Formel"/>
+   <gentext key="Example" text="Eksempel"/>
+   <gentext key="example" text="Eksempel"/>
+   <gentext key="Figure" text="Figur"/>
+   <gentext key="figure" text="Figur"/>
+   <gentext key="GlossSee" text="Se"/>
+   <gentext key="glosssee" text="Se"/>
+   <gentext key="GlossSeeAlso" text="Se Ogs&#229;"/>
+   <gentext key="glossseealso" text="Se Ogs&#229;"/>
+   <gentext key="Glossary" text="Ordliste"/>
+   <gentext key="glossary" text="Ordliste"/>
+   <gentext key="IMPORTANT" text="VIKTIG"/>
+   <gentext key="important" text="VIKTIG"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Viktig"/>
+   <gentext key="important" text="Viktig"/>
+   <gentext key="Index" text="Indeks"/>
+   <gentext key="index" text="Indeks"/>
+   <gentext key="LegalNotice" text=""/>
+   <gentext key="legalnotice" text=""/>
+   <gentext key="MsgAud" text="Publikum"/>
+   <gentext key="msgaud" text="Publikum"/>
+   <gentext key="MsgLevel" text="Niv&#229;"/>
+   <gentext key="msglevel" text="Niv&#229;"/>
+   <gentext key="MsgOrig" text="Opphav"/>
+   <gentext key="msgorig" text="Opphav"/>
+   <gentext key="NOTE" text="NOTAT"/>
+   <gentext key="note" text="NOTAT"/>
+   <gentext key="Note" text="Notat"/>
+   <gentext key="note" text="Notat"/>
+   <gentext key="Part" text="Del"/>
+   <gentext key="part" text="Del"/>
+   <gentext key="Preface" text="Forord"/>
+   <gentext key="preface" text="Forord"/>
+   <gentext key="Procedure" text="Prosedyre"/>
+   <gentext key="procedure" text="Prosedyre"/>
+   <gentext key="Published" text=""/>
+   <gentext key="published" text=""/>
+   <gentext key="Question" text="Q:"/>
+   <gentext key="question" text="Q:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="RefName" text="Navn"/>
+   <gentext key="refname" text="Navn"/>
+   <gentext key="Reference" text="Referanse"/>
+   <gentext key="reference" text="Referanse"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="Revision" text="Revisjon"/>
+   <gentext key="revision" text="Revisjon"/>
+   <gentext key="RevHistory" text="Revisjonshistorie"/>
+   <gentext key="revhistory" text="Revisjonshistorie"/>
+   <gentext key="Section" text="Seksjon"/>
+   <gentext key="See" text="Se"/>
+   <gentext key="see" text="Se"/>
+   <gentext key="SeeAlso" text="Se Ogs&#229;"/>
+   <gentext key="seealso" text="Se Ogs&#229;"/>
+   <gentext key="Set" text=""/>
+   <gentext key="set" text=""/>
+   <gentext key="SetIndex" text="Indeks"/>
+   <gentext key="setindex" text="Indeks"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="sidebar" text=""/>
+   <gentext key="Step" text="Steg"/>
+   <gentext key="TIP" text="TIPS"/>
+   <gentext key="tip" text="TIPS"/>
+   <gentext key="Table" text="Tabell"/>
+   <gentext key="table" text="Tabell"/>
+   <gentext key="Tip" text="Tips"/>
+   <gentext key="tip" text="Tips"/>
+   <gentext key="WARNING" text="ADVARSEL"/>
+   <gentext key="warning" text="ADVARSEL"/>
+   <gentext key="Warning" text="Advarsel"/>
+   <gentext key="warning" text="Advarsel"/>
+   <gentext key="appendix" text="Tillegg"/>
+   <gentext key="chapter" text="Kapittel"/>
+   <gentext key="section" text="seksjon"/>
+   <gentext key="step" text="steg"/>
+   <gentext key="Seealso" text="Se ogs&#229;"/>
+   <gentext key="seealso" text="Se ogs&#229;"/>
+   <gentext key="TableofContents" text="Innholdsfortegnelse"/>
+   <gentext key="tableofcontents" text="Innholdsfortegnelse"/>
+   <gentext key="in" text="i"/>
+   <gentext key="by" text="av"/>
+   <gentext key="Edited" text="Redigert"/>
+   <gentext key="edited" text="Redigert"/>
+   <gentext key="Editedby" text="Redigert av"/>
+   <gentext key="editedby" text="Redigert av"/>
+   <gentext key="and" text="og"/>
+   <gentext key="Notes" text="Sluttnotater"/>
+   <gentext key="notes" text="Sluttnotater"/>
+   <gentext key="TableNotes" text="Notater"/>
+   <gentext key="tablenotes" text="Notater"/>
+   <gentext key="nonexistantelement" text="ikke-eksisterende element"/>
+   <gentext key="Pgs" text="Sdr."/>
+   <gentext key="pgs" text="Sdr."/>
+   <gentext key="unsupported" text="ikke st&#248;ttet"/>
+   <gentext key="xrefto" text="xref til"/>
+   <gentext key="unexpectedelementname" text="UVENTET-ELEMENTNAVN"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="Tabelloversikt"/>
+   <gentext key="listoftables" text="Tabelloversikt"/>
+   <gentext key="ListofExamples" text="Eksempeloversikt"/>
+   <gentext key="listofexamples" text="Eksempeloversikt"/>
+   <gentext key="ListofFigures" text="Figuroversikt"/>
+   <gentext key="listoffigures" text="Figuroversikt"/>
+   <gentext key="ListofEquations" text="Formeloversikt"/>
+   <gentext key="listofequations" text="Formeloversikt"/>
+   <gentext key="ListofUnknown" text="???-oversikt"/>
+   <gentext key="listofunknown" text="???-oversikt"/>
+   <gentext key="nav-prev" text="Forrige"/>
+   <gentext key="nav-prev-sibling" text="Raskt Bakover"/>
+   <gentext key="nav-next-sibling" text="Raskt Fremover"/>
+   <gentext key="nav-next" text="Neste"/>
+   <gentext key="nav-up" text="Opp"/>
+   <gentext key="nav-home" text="Hjem"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Tillegg %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Kapittel %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Formel %n. %t"/>
+      <template name="example" text="Eksempel %n. %t"/>
+      <template name="figure" text="Figur %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Del %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabell %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Tillegg %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Kapittel %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Eksempel %n. %t"/>
+      <template name="figure" text="Figur %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Del %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabell %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Seksjon %n"/>
+      <template name="sect2" text="Seksjon %n"/>
+      <template name="sect3" text="Seksjon %n"/>
+      <template name="sect4" text="Seksjon %n"/>
+      <template name="sect5" text="Seksjon %n"/>
+      <template name="section" text="Seksjon %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" og "/>
+      <template name="seplast" text=", og "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Se "/>
+      <template name="seealso" text="Se Ogs&#229; "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Niv&#229;: "/>
+      <template name="MsgOrig" text="Opphav: "/>
+      <template name="MsgAud" text="Publikum: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pl.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pl.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pl.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,323 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="pl">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Abstrakt"/>
+   <gentext key="abstract" text="Abstrakt"/>
+   <gentext key="Answer" text="Odp:"/>
+   <gentext key="Appendix" text="Dodatek"/>
+   <gentext key="appendix" text="dodatek"/>
+   <gentext key="Article" text="Artyku&#322;"/>
+   <gentext key="article" text="Artyku&#322;"/>
+   <gentext key="Bibliography" text="Bibliografia"/>
+   <gentext key="bibliography" text="Bibliografia"/>
+   <gentext key="Book" text="Ksi&#261;&#380;ka"/>
+   <gentext key="book" text="Ksi&#261;&#380;ka"/>
+   <gentext key="CAUTION" text="PRZYPADEK"/>
+   <gentext key="Caution" text="Uwaga!"/>
+   <gentext key="caution" text="Uwaga!"/>
+   <gentext key="Chapter" text="Rozdzia&#322;"/>
+   <gentext key="chapter" text="rozdzia&#322;;"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Dedykacja"/>
+   <gentext key="dedication" text="Dedykacja"/>
+   <gentext key="Edition" text="Wydanie"/>
+   <gentext key="edition" text="Wydanie"/>
+   <gentext key="Equation" text="R&#243;wnanie"/>
+   <gentext key="equation" text="R&#243;wnanie"/>
+   <gentext key="Example" text="Przyk&#322;ad"/>
+   <gentext key="example" text="Przyk&#322;ad"/>
+   <gentext key="Figure" text="Rysunek"/>
+   <gentext key="figure" text="Rysunek"/>
+   <gentext key="Glossary" text="Glossary"/>
+   <gentext key="glossary" text="Glossary"/>
+   <gentext key="GlossSee" text="Patrz"/>
+   <gentext key="glosssee" text="Patrz"/>
+   <gentext key="GlossSeeAlso" text="Patrz te&#380;"/>
+   <gentext key="glossseealso" text="Patrz te&#380;"/>
+   <gentext key="Important" text="WA&#379;NE"/>
+   <gentext key="important" text="WA&#379;NE"/>
+   <gentext key="Index" text="Indeks"/>
+   <gentext key="index" text="Indeks"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="LegalNotice" text=""/>
+   <gentext key="legalnotice" text=""/>
+   <gentext key="MsgAud" text="Odbiorcy"/>
+   <gentext key="msgaud" text="Odbiorcy"/>
+   <gentext key="MsgLevel" text="Poziom"/>
+   <gentext key="msglevel" text="Poziom"/>
+   <gentext key="MsgOrig" text="Nadawca"/>
+   <gentext key="msgorig" text="Nadawca"/>
+   <gentext key="Note" text="Notatka"/>
+   <gentext key="note" text="Notatka"/>
+   <gentext key="Part" text="Cz&#281;&#347;&#263;"/>
+   <gentext key="part" text="Cz&#281;&#347;&#263;"/>
+   <gentext key="Preface" text="Przedmowa"/>
+   <gentext key="preface" text="Przedmowa"/>
+   <gentext key="Procedure" text="Procedura"/>
+   <gentext key="procedure" text="Procedura"/>
+   <gentext key="Published" text="Data wydania"/>
+   <gentext key="published" text="Data wydania"/>
+   <gentext key="Question" text="Pyt:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Materia&#322;y &#378;r&#243;d&#322;owe"/>
+   <gentext key="reference" text="Materia&#322;y &#378;r&#243;d&#322;owe"/>
+   <gentext key="RefName" text="Nazwa"/>
+   <gentext key="refname" text="Nazwa"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="RevHistory" text="Historia zmian"/>
+   <gentext key="revhistory" text="Historia zmian"/>
+   <gentext key="Revision" text="Zmiana"/>
+   <gentext key="revision" text="Zmiana"/>
+   <gentext key="Section" text="Sekcja"/>
+   <gentext key="section" text="sekcja"/>
+   <gentext key="See" text="Patrz"/>
+   <gentext key="see" text="Patrz"/>
+   <gentext key="SeeAlso" text="Patrz te&#380;"/>
+   <gentext key="Seealso" text="Patrz te&#380;"/>
+   <gentext key="seealso" text="Patrz te&#380;"/>
+   <gentext key="Set" text="Set"/>
+   <gentext key="set" text="Set"/>
+   <gentext key="SetIndex" text="Indeks"/>
+   <gentext key="setindex" text="Indeks"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="sidebar" text=""/>
+   <gentext key="Step" text="krok"/>
+   <gentext key="step" text="krok"/>
+   <gentext key="Table" text="Tabela"/>
+   <gentext key="table" text="Tabela"/>
+   <gentext key="Tip" text="Podpowied&#378;"/>
+   <gentext key="tip" text="Podpowied&#378;"/>
+   <gentext key="Warning" text="Ostrze&#191;enie"/>
+   <gentext key="warning" text="Ostrze&#191;enie"/>
+   <gentext key="TableofContents" text="Spis tre&#347;ci"/>
+   <gentext key="tableofcontents" text="Spis tre&#347;ci"/>
+   <gentext key="in" text="w"/>
+   <gentext key="by" text=""/>
+   <gentext key="Editedby" text="Redakcja: "/>
+   <gentext key="editedby" text="Redakcja: "/>
+   <gentext key="and" text="i"/>
+   <gentext key="Notes" text="Przypisy"/>
+   <gentext key="notes" text="Przypisy"/>
+   <gentext key="TableNotes" text="Przypisy"/>
+   <gentext key="tablenotes" text="Przypisy"/>
+   <gentext key="nonexistantelement" text="nie istniej&#261;cy element"/>
+   <gentext key="Pgs" text="stron"/>
+   <gentext key="pgs" text="stron"/>
+   <gentext key="unsupported" text="nie wspierany"/>
+   <gentext key="xrefto" text="xref to"/>
+   <gentext key="unexpectedelementname" text="Unexpected element name"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="Spis tabel"/>
+   <gentext key="listoftables" text="Spis tabel"/>
+   <gentext key="ListofExamples" text="Spis przyk&#322;ad&#243;w"/>
+   <gentext key="listofexamples" text="Spis przyk&#322;ad&#243;w"/>
+   <gentext key="ListofFigures" text="Spis rysunk&#243;w"/>
+   <gentext key="listoffigures" text="Spis rysunk&#243;w"/>
+   <gentext key="ListofEquations" text="Spis r&#243;wna&#324;"/>
+   <gentext key="listofequations" text="Spis r&#243;wna&#324;"/>
+   <gentext key="ListofUnknown" text="Spis ???"/>
+   <gentext key="listofunknown" text="Spis ???"/>
+   <gentext key="nav-prev" text="Poprzedni"/>
+   <gentext key="nav-prev-sibling" text="Poprzedni rozdzia&#322;"/>
+   <gentext key="nav-next-sibling" text="Nast&#281;pny rozdzia&#322;"/>
+   <gentext key="nav-next" text="Nast&#234;pny"/>
+   <gentext key="nav-up" text="Pocz&#261;tek rozdzia&#322;u"/>
+   <gentext key="nav-home" text="Spis tre&#347;ci"/>
+   <dingbat key="startquote" text="&#8222;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#171;"/>
+   <dingbat key="nestedendquote" text="&#187;"/>
+   <dingbat key="bullet" text="&#2022;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Dodatek %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Rozdzia&#322; %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="R&#243;wnanie %n. %t"/>
+      <template name="example" text="Przyk&#322;ad %n. %t"/>
+      <template name="figure" text="Rysunek %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Cz&#281;&#347;&#263; %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabela %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Dodatek %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Rozdzia&#322; %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Przyk&#322;ad %n. %t"/>
+      <template name="figure" text="Rysunek %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Cz&#281;&#347;&#263; %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabela %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Sekcja %n"/>
+      <template name="sect2" text="Sekcja %n"/>
+      <template name="sect3" text="Sekcja %n"/>
+      <template name="sect4" text="Sekcja %n"/>
+      <template name="sect5" text="Sekcja %n"/>
+      <template name="section" text="Sekcja %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" i "/>
+      <template name="seplast" text=", i "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Patrz "/>
+      <template name="seealso" text="Patrz te&#380; "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Poziom: "/>
+      <template name="MsgOrig" text="Nadawca: "/>
+      <template name="MsgAud" text="Odbiorcy: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pt.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pt.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pt.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="pt">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Resumo"/>
+   <gentext key="abstract" text="Resumo"/>
+   <gentext key="Answer" text="R:"/>
+   <gentext key="answer" text="R:"/>
+   <gentext key="Appendix" text="Ap&#234;ndice"/>
+   <gentext key="Article" text="Artigo"/>
+   <gentext key="article" text="Artigo"/>
+   <gentext key="Bibliography" text="Bibliografia"/>
+   <gentext key="bibliography" text="Bibliografia"/>
+   <gentext key="Book" text="Livro"/>
+   <gentext key="book" text="Livro"/>
+   <gentext key="CAUTION" text="CAUTELA"/>
+   <gentext key="caution" text="CAUTELA"/>
+   <gentext key="Caution" text="Cautela"/>
+   <gentext key="caution" text="Cautela"/>
+   <gentext key="Chapter" text="Cap&#237;tulo"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Dedicat&#243;ria"/>
+   <gentext key="dedication" text="Dedicat&#243;ria"/>
+   <gentext key="Edition" text="Edi&#231;&#227;o"/>
+   <gentext key="edition" text="Edi&#231;&#227;o"/>
+   <gentext key="Equation" text="Equa&#231;&#227;o"/>
+   <gentext key="equation" text="Equa&#231;&#227;o"/>
+   <gentext key="Example" text="Exemplo"/>
+   <gentext key="example" text="Exemplo"/>
+   <gentext key="Figure" text="Figura"/>
+   <gentext key="figure" text="Figura"/>
+   <gentext key="GlossSee" text="Ver"/>
+   <gentext key="glosssee" text="Ver"/>
+   <gentext key="GlossSeeAlso" text="Ver Tamb&#233;m"/>
+   <gentext key="glossseealso" text="Ver Tamb&#233;m"/>
+   <gentext key="Glossary" text="Glossario"/>
+   <gentext key="glossary" text="Glossario"/>
+   <gentext key="IMPORTANT" text="IMPORTANTE"/>
+   <gentext key="important" text="IMPORTANTE"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Importante"/>
+   <gentext key="important" text="Importante"/>
+   <gentext key="Index" text="Index"/>
+   <gentext key="index" text="Index"/>
+   <gentext key="LegalNotice" text=""/>
+   <gentext key="legalnotice" text=""/>
+   <gentext key="MsgAud" text="Audi&#234;ncia"/>
+   <gentext key="msgaud" text="Audi&#234;ncia"/>
+   <gentext key="MsgLevel" text="N&#237;vel"/>
+   <gentext key="msglevel" text="N&#237;vel"/>
+   <gentext key="MsgOrig" text="Origem"/>
+   <gentext key="msgorig" text="Origem"/>
+   <gentext key="NOTE" text="NOTA"/>
+   <gentext key="note" text="NOTA"/>
+   <gentext key="Note" text="Nota"/>
+   <gentext key="note" text="Nota"/>
+   <gentext key="Part" text="Parte"/>
+   <gentext key="part" text="Parte"/>
+   <gentext key="Preface" text="Pref&#225;cio"/>
+   <gentext key="preface" text="Pref&#225;cio"/>
+   <gentext key="Procedure" text="Procedimento"/>
+   <gentext key="procedure" text="Procedimento"/>
+   <gentext key="PubDate" text="Editado"/>
+   <gentext key="pubdate" text="Editado"/>
+   <gentext key="Published" text="Publicado"/>
+   <gentext key="published" text="Publicado"/>
+   <gentext key="Question" text="P:"/>
+   <gentext key="question" text="P:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="RefName" text="Nome"/>
+   <gentext key="refname" text="Nome"/>
+   <gentext key="Reference" text="Refer&#234;ncia"/>
+   <gentext key="reference" text="Refer&#234;ncia"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="Revision" text="Revis&#227;o"/>
+   <gentext key="revision" text="Revis&#227;o"/>
+   <gentext key="RevHistory" text="Hitorial de Revis&#245;es"/>
+   <gentext key="revhistory" text="Hitorial de Revis&#245;es"/>
+   <gentext key="Section" text="Sec&#231;&#227;o"/>
+   <gentext key="See" text="Ver"/>
+   <gentext key="see" text="Ver"/>
+   <gentext key="SeeAlso" text="Ver Tamb&#233;m"/>
+   <gentext key="seealso" text="Ver Tamb&#233;m"/>
+   <gentext key="Set" text="Set"/>
+   <gentext key="set" text="Set"/>
+   <gentext key="SetIndex" text="Set Index"/>
+   <gentext key="setindex" text="Set Index"/>
+   <gentext key="Sidebar" text="Sidebar"/>
+   <gentext key="sidebar" text="sidebar"/>
+   <gentext key="Step" text="Passo"/>
+   <gentext key="TIP" text="DICA"/>
+   <gentext key="tip" text="DICA"/>
+   <gentext key="Table" text="Tabela"/>
+   <gentext key="table" text="Tabela"/>
+   <gentext key="Tip" text="Dica"/>
+   <gentext key="tip" text="Dica"/>
+   <gentext key="WARNING" text="ATEN&#199;&#195;O"/>
+   <gentext key="warning" text="ATEN&#199;&#195;O"/>
+   <gentext key="Warning" text="Aten&#231;&#227;o"/>
+   <gentext key="warning" text="Aten&#231;&#227;o"/>
+   <gentext key="appendix" text="ap&#234;ndice"/>
+   <gentext key="chapter" text="cap&#237;tulo"/>
+   <gentext key="section" text="sec&#231;&#227;o"/>
+   <gentext key="step" text="passo"/>
+   <gentext key="Seealso" text="ver tamb&#233;m"/>
+   <gentext key="seealso" text="ver tamb&#233;m"/>
+   <gentext key="TableofContents" text="&#205;ndice"/>
+   <gentext key="tableofcontents" text="&#205;ndice"/>
+   <gentext key="in" text=""/>
+   <gentext key="by" text="por"/>
+   <gentext key="Edited" text="Editado"/>
+   <gentext key="edited" text="Editado"/>
+   <gentext key="Editedby" text="Editado por"/>
+   <gentext key="editedby" text="Editado por"/>
+   <gentext key="and" text="e"/>
+   <gentext key="Notes" text="Notas"/>
+   <gentext key="notes" text="Notas"/>
+   <gentext key="TableNotes" text="Notas"/>
+   <gentext key="tablenotes" text="Notas"/>
+   <gentext key="nonexistantelement" text="non-existant element"/>
+   <gentext key="Pgs" text="P&#225;ginas"/>
+   <gentext key="pgs" text="P&#225;ginas"/>
+   <gentext key="unsupported" text="unsupported"/>
+   <gentext key="xrefto" text="xref to"/>
+   <gentext key="unexpectedelementname" text="Unexpected element name"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="Lista de Tabelas"/>
+   <gentext key="listoftables" text="Lista de Tabelas"/>
+   <gentext key="ListofExamples" text="Lista de Exemplos"/>
+   <gentext key="listofexamples" text="Lista de Exemplos"/>
+   <gentext key="ListofFigures" text="Lista de Figuras"/>
+   <gentext key="listoffigures" text="Lista de Figuras"/>
+   <gentext key="ListofEquations" text="Lista de Equa&#231;&#245;es"/>
+   <gentext key="listofequations" text="Lista de Equa&#231;&#245;es"/>
+   <gentext key="ListofUnknown" text="List of ???"/>
+   <gentext key="listofunknown" text="List of ???"/>
+   <gentext key="nav-prev" text="Prev"/>
+   <gentext key="nav-prev-sibling" text="Fast Backward"/>
+   <gentext key="nav-next-sibling" text="Fast Forward"/>
+   <gentext key="nav-next" text="Next"/>
+   <gentext key="nav-up" text="Up"/>
+   <gentext key="nav-home" text="Home"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Ap&#234;ndice %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Cap&#237;tulo %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Equa&#231;&#227;o %n. %t"/>
+      <template name="example" text="Exemplo %n. %t"/>
+      <template name="figure" text="Figura %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Parte %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabela %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Ap&#234;ndice %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Cap&#237;tulo %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Exemplo %n. %t"/>
+      <template name="figure" text="Figura %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Parte %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabela %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Sec&#231;&#227;o %n"/>
+      <template name="sect2" text="Sec&#231;&#227;o %n"/>
+      <template name="sect3" text="Sec&#231;&#227;o %n"/>
+      <template name="sect4" text="Sec&#231;&#227;o %n"/>
+      <template name="sect5" text="Sec&#231;&#227;o %n"/>
+      <template name="section" text="Sec&#231;&#227;o %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" e "/>
+      <template name="seplast" text=", e "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Ver "/>
+      <template name="seealso" text="Ver Tamb&#233;m "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="N&#237;vel: "/>
+      <template name="MsgOrig" text="Origem: "/>
+      <template name="MsgAud" text="Audi&#234;ncia: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pt_br.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pt_br.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/pt_br.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="pt_br">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Resumo"/>
+   <gentext key="abstract" text="Resumo"/>
+   <gentext key="Answer" text="R:"/>
+   <gentext key="answer" text="R:"/>
+   <gentext key="Appendix" text="Ap&#234;ndice"/>
+   <gentext key="Article" text="Artigo"/>
+   <gentext key="article" text="Artigo"/>
+   <gentext key="Bibliography" text="Bibliografia"/>
+   <gentext key="bibliography" text="Bibliografia"/>
+   <gentext key="Book" text="Livro"/>
+   <gentext key="book" text="Livro"/>
+   <gentext key="CAUTION" text="CUIDADO"/>
+   <gentext key="caution" text="CUIDADO"/>
+   <gentext key="Caution" text="Cuidado"/>
+   <gentext key="caution" text="Cuidado"/>
+   <gentext key="Chapter" text="Cap&#237;tulo"/>
+   <gentext key="Colophon" text="Considera&#231;&#245;es finais"/>
+   <gentext key="colophon" text="Considera&#231;&#245;es finais"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Dedicat&#243;ria"/>
+   <gentext key="dedication" text="Dedicat&#243;ria"/>
+   <gentext key="Edition" text="Edi&#231;&#227;o"/>
+   <gentext key="edition" text="Edi&#231;&#227;o"/>
+   <gentext key="Equation" text="Equa&#231;&#227;o"/>
+   <gentext key="equation" text="Equa&#231;&#227;o"/>
+   <gentext key="Example" text="Exemplo"/>
+   <gentext key="example" text="Exemplo"/>
+   <gentext key="Figure" text="Figura"/>
+   <gentext key="figure" text="Figura"/>
+   <gentext key="GlossSee" text="Ver"/>
+   <gentext key="glosssee" text="Ver"/>
+   <gentext key="GlossSeeAlso" text="Ver Tamb&#233;m"/>
+   <gentext key="glossseealso" text="Ver Tamb&#233;m"/>
+   <gentext key="Glossary" text="Gloss&#225;rio"/>
+   <gentext key="glossary" text="Gloss&#225;rio"/>
+   <gentext key="IMPORTANT" text="IMPORTANTE"/>
+   <gentext key="important" text="IMPORTANTE"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Importante"/>
+   <gentext key="important" text="Importante"/>
+   <gentext key="Index" text="&#205;ndice Remissivo"/>
+   <gentext key="index" text="&#205;ndice Remissivo"/>
+   <gentext key="LegalNotice" text="Nota Legal"/>
+   <gentext key="legalnotice" text="Nota Legal"/>
+   <gentext key="MsgAud" text="Audi&#234;ncia"/>
+   <gentext key="msgaud" text="Audi&#234;ncia"/>
+   <gentext key="MsgLevel" text="N&#237;vel"/>
+   <gentext key="msglevel" text="N&#237;vel"/>
+   <gentext key="MsgOrig" text="Origem"/>
+   <gentext key="msgorig" text="Origem"/>
+   <gentext key="NOTE" text="NOTA"/>
+   <gentext key="note" text="NOTA"/>
+   <gentext key="Note" text="Nota"/>
+   <gentext key="note" text="Nota"/>
+   <gentext key="Part" text="Parte"/>
+   <gentext key="part" text="Parte"/>
+   <gentext key="Preface" text="Pref&#225;cio"/>
+   <gentext key="preface" text="Pref&#225;cio"/>
+   <gentext key="Procedure" text="Procedimento"/>
+   <gentext key="procedure" text="Procedimento"/>
+   <gentext key="PubDate" text="Data de Publica&#231;&#227;o"/>
+   <gentext key="pubdate" text="Data de Publica&#231;&#227;o"/>
+   <gentext key="Published" text="Publicado"/>
+   <gentext key="published" text="Publicado"/>
+   <gentext key="Question" text="P:"/>
+   <gentext key="question" text="P:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="RefName" text="Nome"/>
+   <gentext key="refname" text="Nome"/>
+   <gentext key="Reference" text="Refer&#234;ncia"/>
+   <gentext key="reference" text="Refer&#234;ncia"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Sinopse"/>
+   <gentext key="refsynopsisdiv" text="Sinopse"/>
+   <gentext key="Revision" text="Revis&#227;o"/>
+   <gentext key="revision" text="Revis&#227;o"/>
+   <gentext key="RevHistory" text="Hist&#243;rico de Revis&#245;es"/>
+   <gentext key="revhistory" text="Hist&#243;rico de Revis&#245;es"/>
+   <gentext key="Section" text="Se&#231;&#227;o"/>
+   <gentext key="See" text="Ver"/>
+   <gentext key="see" text="Ver"/>
+   <gentext key="SeeAlso" text="Ver Tamb&#233;m"/>
+   <gentext key="seealso" text="Ver Tamb&#233;m"/>
+   <gentext key="Set" text="Conjunto"/>
+   <gentext key="set" text="Conjunto"/>
+   <gentext key="SetIndex" text="&#205;ndice do Conjunto"/>
+   <gentext key="setindex" text="&#205;ndice do Conjunto"/>
+   <gentext key="Sidebar" text="Quadro Lateral"/>
+   <gentext key="sidebar" text="quadro lateral"/>
+   <gentext key="Step" text="Passo"/>
+   <gentext key="TIP" text="DICA"/>
+   <gentext key="tip" text="DICA"/>
+   <gentext key="Table" text="Tabela"/>
+   <gentext key="table" text="Tabela"/>
+   <gentext key="Tip" text="Dica"/>
+   <gentext key="tip" text="Dica"/>
+   <gentext key="WARNING" text="ATEN&#199;&#195;O"/>
+   <gentext key="warning" text="ATEN&#199;&#195;O"/>
+   <gentext key="Warning" text="Aten&#231;&#227;o"/>
+   <gentext key="warning" text="Aten&#231;&#227;o"/>
+   <gentext key="appendix" text="ap&#234;ndice"/>
+   <gentext key="chapter" text="cap&#237;tulo"/>
+   <gentext key="section" text="se&#231;&#227;o"/>
+   <gentext key="step" text="passo"/>
+   <gentext key="Seealso" text="ver tamb&#233;m"/>
+   <gentext key="seealso" text="ver tamb&#233;m"/>
+   <gentext key="TableofContents" text="&#205;ndice"/>
+   <gentext key="tableofcontents" text="&#205;ndice"/>
+   <gentext key="in" text=""/>
+   <gentext key="by" text="por"/>
+   <gentext key="Edited" text="Editado"/>
+   <gentext key="edited" text="Editado"/>
+   <gentext key="Editedby" text="Editado por"/>
+   <gentext key="editedby" text="Editado por"/>
+   <gentext key="Revisedby" text="Revisado por: "/>
+   <gentext key="revisedby" text="Revisado por: "/>
+   <gentext key="and" text="e"/>
+   <gentext key="Notes" text="Notas"/>
+   <gentext key="notes" text="Notas"/>
+   <gentext key="TableNotes" text="Notas"/>
+   <gentext key="tablenotes" text="Notas"/>
+   <gentext key="nonexistantelement" text="elemento inexistente"/>
+   <gentext key="Pgs" text="P&#225;ginas"/>
+   <gentext key="pgs" text="P&#225;ginas"/>
+   <gentext key="unsupported" text="n&#227;o suportado"/>
+   <gentext key="xrefto" text="refer&#234;ncia para"/>
+   <gentext key="unexpectedelementname" text="Nome de elemento inesperado"/>
+   <gentext key="ListofTables" text="Lista de Tabelas"/>
+   <gentext key="listoftables" text="Lista de Tabelas"/>
+   <gentext key="ListofExamples" text="Lista de Exemplos"/>
+   <gentext key="listofexamples" text="Lista de Exemplos"/>
+   <gentext key="ListofFigures" text="Lista de Figuras"/>
+   <gentext key="listoffigures" text="Lista de Figuras"/>
+   <gentext key="ListofEquations" text="Lista de Equa&#231;&#245;es"/>
+   <gentext key="listofequations" text="Lista de Equa&#231;&#245;es"/>
+   <gentext key="ListofUnknown" text="Lista de ???"/>
+   <gentext key="listofunknown" text="Lista de ???"/>
+   <gentext key="nav-prev" text="Anterior"/>
+   <gentext key="nav-prev-sibling" text="In&#237;cio"/>
+   <gentext key="nav-next-sibling" text="Fim"/>
+   <gentext key="nav-next" text="Pr&#243;xima"/>
+   <gentext key="nav-up" text="Acima"/>
+   <gentext key="nav-home" text="Principal"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Ap&#234;ndice %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Cap&#237;tulo %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Equa&#231;&#227;o %n. %t"/>
+      <template name="example" text="Exemplo %n. %t"/>
+      <template name="figure" text="Figura %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Parte %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabela %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Ap&#234;ndice %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Cap&#237;tulo %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Exemplo %n. %t"/>
+      <template name="figure" text="Figura %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Parte %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabela %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Se&#231;&#227;o %n"/>
+      <template name="sect2" text="Se&#231;&#227;o %n"/>
+      <template name="sect3" text="Se&#231;&#227;o %n"/>
+      <template name="sect4" text="Se&#231;&#227;o %n"/>
+      <template name="sect5" text="Se&#231;&#227;o %n"/>
+      <template name="section" text="Se&#231;&#227;o %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" e "/>
+      <template name="seplast" text=", e "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Ver "/>
+      <template name="seealso" text="Ver Tamb&#233;m "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="N&#237;vel: "/>
+      <template name="MsgOrig" text="Origem: "/>
+      <template name="MsgAud" text="Audi&#234;ncia: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ro.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ro.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ro.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,343 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="ro">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Rezumat"/>
+   <gentext key="abstract" text="Rezumat"/>
+   <gentext key="Answer" text="A:"/>
+   <gentext key="answer" text="A:"/>
+   <gentext key="Appendix" text="Anexa"/>
+   <gentext key="Article" text="Articol"/>
+   <gentext key="article" text="Articol"/>
+   <gentext key="Bibliography" text="Bibliografie"/>
+   <gentext key="bibliography" text="Bibliografie"/>
+   <gentext key="Book" text="Carte"/>
+   <gentext key="book" text="Carte"/>
+   <gentext key="CAUTION" text="ATEN&#222;IE"/>
+   <gentext key="caution" text="ATEN&#222;IE"/>
+   <gentext key="Caution" text="Aten&#254;ie"/>
+   <gentext key="caution" text="Aten&#254;ie"/>
+   <gentext key="Chapter" text="Cap."/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Dedica&#254;ie"/>
+   <gentext key="dedication" text="Dedica&#254;ie"/>
+   <gentext key="Edition" text="Edi&#254;ie"/>
+   <gentext key="edition" text="Edi&#254;ie"/>
+   <gentext key="Equation" text="ecua&#254;ia"/>
+   <gentext key="equation" text="ecua&#254;ia"/>
+   <gentext key="Example" text="Exemplu"/>
+   <gentext key="example" text="Exemplu"/>
+   <gentext key="Figure" text="Fig."/>
+   <gentext key="figure" text="Fig."/>
+   <gentext key="Glossary" text="Glosar"/>
+   <gentext key="glossary" text="Glosar"/>
+   <gentext key="GlossSee" text="Vezi"/>
+   <gentext key="glosssee" text="Vezi"/>
+   <gentext key="GlossSeeAlso" text="Vezi &#351;i"/>
+   <gentext key="glossseealso" text="Vezi &#351;i"/>
+   <gentext key="IMPORTANT" text="IMPORTANT"/>
+   <gentext key="important" text="IMPORTANT"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Important"/>
+   <gentext key="important" text="Important"/>
+   <gentext key="Index" text="Index"/>
+   <gentext key="index" text="Index"/>
+   <gentext key="LegalNotice" text=""/>
+   <gentext key="legalnotice" text=""/>
+   <gentext key="MsgAud" text=""/>
+   <gentext key="msgaud" text=""/>
+   <gentext key="MsgLevel" text="Nivel"/>
+   <gentext key="msglevel" text="Nivel"/>
+   <gentext key="MsgOrig" text="Origine"/>
+   <gentext key="msgorig" text="Origine"/>
+   <gentext key="NOTE" text="NOT&#195;"/>
+   <gentext key="note" text="NOT&#195;"/>
+   <gentext key="Note" text="Not&#227;"/>
+   <gentext key="note" text="Not&#227;"/>
+   <gentext key="RefName" text="Nume"/>
+   <gentext key="refname" text="Nume"/>
+   <gentext key="Note" text="Not&#227;"/>
+   <gentext key="note" text="Not&#227;"/>
+   <gentext key="Part" text="Parte"/>
+   <gentext key="part" text="Parte"/>
+   <gentext key="Preface" text="Prefa&#254;&#227;"/>
+   <gentext key="preface" text="Prefa&#254;&#227;"/>
+   <gentext key="Procedure" text="Procedur&#227;"/>
+   <gentext key="procedure" text="Procedur&#227;"/>
+   <gentext key="Published" text="Publicat"/>
+   <gentext key="published" text="Publicat"/>
+   <gentext key="Question" text="Q:"/>
+   <gentext key="question" text="Q:"/>
+   <gentext key="Reference" text="Referin&#254;&#227;"/>
+   <gentext key="reference" text="Referin&#254;&#227;"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Referin&#254;&#227;"/>
+   <gentext key="reference" text="Referin&#254;&#227;"/>
+   <gentext key="RefName" text="Name"/>
+   <gentext key="refname" text="Name"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Rezumat"/>
+   <gentext key="refsynopsisdiv" text="Rezumat"/>
+   <gentext key="Revision" text="Versiune"/>
+   <gentext key="revision" text="Versiune"/>
+   <gentext key="RevHistory" text="Istoricul versiunilor"/>
+   <gentext key="revhistory" text="Istoricul versiunilor"/>
+   <gentext key="Section" text="Sec&#254;iune"/>
+   <gentext key="See" text="Vezi"/>
+   <gentext key="see" text="Vezi"/>
+   <gentext key="SeeAlso" text="Vezi &#351;i"/>
+   <gentext key="seealso" text="Vezi &#351;i"/>
+   <gentext key="Set" text="Set"/>
+   <gentext key="set" text="Set"/>
+   <gentext key="SetIndex" text="Index"/>
+   <gentext key="setindex" text="Index"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="Opera&#254;ie"/>
+   <gentext key="TIP" text="INDICA&#222;IE"/>
+   <gentext key="tip" text="INDICA&#222;IE"/>
+   <gentext key="Table" text="Tabel"/>
+   <gentext key="table" text="Tabel"/>
+   <gentext key="Tip" text="Indica&#254;ie"/>
+   <gentext key="tip" text="Indica&#254;ie"/>
+   <gentext key="WARNING" text="AVERTISMENT"/>
+   <gentext key="warning" text="AVERTISMENT"/>
+   <gentext key="Warning" text="Avertisment"/>
+   <gentext key="warning" text="Avertisment"/>
+   <gentext key="appendix" text="anexa"/>
+   <gentext key="sidebar" text="sidebar"/>
+   <gentext key="chapter" text="cap."/>
+   <gentext key="section" text="sec."/>
+   <gentext key="step" text="opera&#254;iune"/>
+   <gentext key="Seealso" text="Vezi &#351;i"/>
+   <gentext key="seealso" text="Vezi &#351;i"/>
+   <gentext key="TableofContents" text="Cuprins"/>
+   <gentext key="tableofcontents" text="Cuprins"/>
+   <gentext key="in" text="&#238;n"/>
+   <gentext key="by" text="de"/>
+   <gentext key="Edited" text="Publicat"/>
+   <gentext key="edited" text="Publicat"/>
+   <gentext key="Editedby" text="Publicat de"/>
+   <gentext key="editedby" text="Publicat de"/>
+   <gentext key="and" text="&#351;i"/>
+   <gentext key="Notes" text="Note"/>
+   <gentext key="notes" text="Note"/>
+   <gentext key="TableNotes" text="Remarci"/>
+   <gentext key="tablenotes" text="Remarci"/>
+   <gentext key="nonexistantelement" text="element inexistent"/>
+   <gentext key="Pgs" text="Pagini"/>
+   <gentext key="pgs" text="Pagini"/>
+   <gentext key="unsupported" text="nerecunoscut de sisitem"/>
+   <gentext key="xrefto" text="referin&#254;&#227; c&#227;tre"/>
+   <gentext key="unexpectedelementname" text="Nume de element nea&#351;teptat"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="List&#227; de tabele"/>
+   <gentext key="listoftables" text="List&#227; de tabele"/>
+   <gentext key="ListofExamples" text="List&#227; de exemple"/>
+   <gentext key="listofexamples" text="List&#227; de exemple"/>
+   <gentext key="ListofFigures" text="List&#227; de figuri"/>
+   <gentext key="listoffigures" text="List&#227; de figuri"/>
+   <gentext key="ListofEquations" text="List&#227; de ecua&#254;ii"/>
+   <gentext key="listofequations" text="List&#227; de ecua&#254;ii"/>
+   <gentext key="ListofUnknown" text="List&#227; de necunoscute"/>
+   <gentext key="listofunknown" text="List&#227; de necunoscute"/>
+   <gentext key="nav-prev" text="&#206;napoi"/>
+   <gentext key="nav-prev-sibling" text="Repede &#238;napoi"/>
+   <gentext key="nav-next-sibling" text="Repede &#239;nainte"/>
+   <gentext key="nav-next" text="&#206;nainte"/>
+   <gentext key="nav-up" text="Sus"/>
+   <gentext key="nav-home" text="Acas&#227;"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Anexa %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Cap. %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="ecua&#254;ia %n. %t"/>
+      <template name="example" text="Exemplu %n. %t"/>
+      <template name="figure" text="Fig. %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Parte %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabel %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Anexa %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Cap. %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Exemplu %n. %t"/>
+      <template name="figure" text="Fig. %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Parte %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabel %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Sec&#254;iune %n"/>
+      <template name="sect2" text="Sec&#254;iune %n"/>
+      <template name="sect3" text="Sec&#254;iune %n"/>
+      <template name="sect4" text="Sec&#254;iune %n"/>
+      <template name="sect5" text="Sec&#254;iune %n"/>
+      <template name="section" text="Sec&#254;iune %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" &#351;i "/>
+      <template name="seplast" text=", &#351;i "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Vezi "/>
+      <template name="seealso" text="Vezi &#351;i "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Nivel: "/>
+      <template name="MsgOrig" text="Origine: "/>
+      <template name="MsgAud" text=": "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ru.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ru.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/ru.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,366 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="ru">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="&#1040;&#1085;&#1085;&#1086;&#1090;&#1072;&#1094;&#1080;&#1103;"/>
+   <gentext key="abstract" text="&#1040;&#1085;&#1085;&#1086;&#1090;&#1072;&#1094;&#1080;&#1103;"/>
+   <gentext key="Answer" text="A:"/>
+   <gentext key="answer" text="A:"/>
+   <gentext key="Appendix" text="&#1055;&#1088;&#1080;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077;"/>
+   <gentext key="Appendix.abr" text="&#1055;&#1088;&#1080;&#1083;."/>
+   <gentext key="appendix.abr" text="&#1055;&#1088;&#1080;&#1083;."/>
+   <gentext key="Article" text="&#1057;&#1090;&#1072;&#1090;&#1100;&#1103;"/>
+   <gentext key="article" text="&#1057;&#1090;&#1072;&#1090;&#1100;&#1103;"/>
+   <gentext key="Audience" text="&#1040;&#1091;&#1076;&#1080;&#1090;&#1086;&#1088;&#1080;&#1103;"/>
+   <gentext key="audience" text="&#1040;&#1091;&#1076;&#1080;&#1090;&#1086;&#1088;&#1080;&#1103;"/>
+   <gentext key="Bibliography" text="&#1051;&#1080;&#1090;&#1077;&#1088;&#1072;&#1090;&#1091;&#1088;&#1072;"/>
+   <gentext key="bibliography" text="&#1051;&#1080;&#1090;&#1077;&#1088;&#1072;&#1090;&#1091;&#1088;&#1072;"/>
+   <gentext key="Book" text="&#1050;&#1085;&#1080;&#1075;&#1072;"/>
+   <gentext key="book" text="&#1050;&#1085;&#1080;&#1075;&#1072;"/>
+   <gentext key="CAUTION" text="&#1055;&#1056;&#1045;&#1044;&#1054;&#1057;&#1058;&#1045;&#1056;&#1045;&#1046;&#1045;&#1053;&#1048;&#1045;"/>
+   <gentext key="caution" text="&#1055;&#1056;&#1045;&#1044;&#1054;&#1057;&#1058;&#1045;&#1056;&#1045;&#1046;&#1045;&#1053;&#1048;&#1045;"/>
+   <gentext key="Caution" text="&#1055;&#1088;&#1077;&#1076;&#1086;&#1089;&#1090;&#1077;&#1088;&#1077;&#1078;&#1077;&#1085;&#1080;&#1077;"/>
+   <gentext key="caution" text="&#1055;&#1088;&#1077;&#1076;&#1086;&#1089;&#1090;&#1077;&#1088;&#1077;&#1078;&#1077;&#1085;&#1080;&#1077;"/>
+   <gentext key="Chapter" text="&#1043;&#1083;&#1072;&#1074;&#1072;"/>
+   <gentext key="Chapter.abr" text="&#1043;&#1083;."/>
+   <gentext key="chapter.abr" text="&#1043;&#1083;."/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="&#1055;&#1086;&#1089;&#1074;&#1103;&#1097;&#1077;&#1085;&#1080;&#1077;"/>
+   <gentext key="dedication" text="&#1055;&#1086;&#1089;&#1074;&#1103;&#1097;&#1077;&#1085;&#1080;&#1077;"/>
+   <gentext key="Edition" text="&#1056;&#1077;&#1076;&#1072;&#1082;&#1094;&#1080;&#1103;"/>
+   <gentext key="edition" text="&#1056;&#1077;&#1076;&#1072;&#1082;&#1094;&#1080;&#1103;"/>
+   <gentext key="Equation" text="&#1060;&#1086;&#1088;&#1084;&#1091;&#1083;&#1072;"/>
+   <gentext key="equation" text="&#1060;&#1086;&#1088;&#1084;&#1091;&#1083;&#1072;"/>
+   <gentext key="Equation.abr" text="&#1060;."/>
+   <gentext key="equation.abr" text="&#1060;."/>
+   <gentext key="Example" text="&#1055;&#1088;&#1080;&#1084;&#1077;&#1088;"/>
+   <gentext key="example" text="&#1055;&#1088;&#1080;&#1084;&#1077;&#1088;"/>
+   <gentext key="Example.abr" text="&#1055;&#1088;&#1080;&#1084;."/>
+   <gentext key="example.abr" text="&#1055;&#1088;&#1080;&#1084;."/>
+   <gentext key="Figure" text="&#1056;&#1080;&#1089;&#1091;&#1085;&#1086;&#1082;"/>
+   <gentext key="figure" text="&#1056;&#1080;&#1089;&#1091;&#1085;&#1086;&#1082;"/>
+   <gentext key="Figure.abr" text="&#1056;&#1080;&#1089;."/>
+   <gentext key="figure.abr" text="&#1056;&#1080;&#1089;."/>
+   <gentext key="GlossSee" text="See"/>
+   <gentext key="glosssee" text="See"/>
+   <gentext key="GlossSeeAlso" text="See Also"/>
+   <gentext key="glossseealso" text="See Also"/>
+   <gentext key="Glossary" text="&#1043;&#1083;&#1086;&#1089;&#1089;&#1072;&#1088;&#1080;&#1081;"/>
+   <gentext key="glossary" text="&#1043;&#1083;&#1086;&#1089;&#1089;&#1072;&#1088;&#1080;&#1081;"/>
+   <gentext key="IMPORTANT" text="&#1042;&#1040;&#1046;&#1053;&#1054;"/>
+   <gentext key="important" text="&#1042;&#1040;&#1046;&#1053;&#1054;"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="&#1042;&#1072;&#1078;&#1085;&#1086;"/>
+   <gentext key="important" text="&#1042;&#1072;&#1078;&#1085;&#1086;"/>
+   <gentext key="Index" text="&#1055;&#1088;&#1077;&#1076;&#1084;&#1077;&#1090;&#1085;&#1099;&#1081; &#1091;&#1082;&#1072;&#1079;&#1072;&#1090;&#1077;&#1083;&#1100;"/>
+   <gentext key="index" text="&#1055;&#1088;&#1077;&#1076;&#1084;&#1077;&#1090;&#1085;&#1099;&#1081; &#1091;&#1082;&#1072;&#1079;&#1072;&#1090;&#1077;&#1083;&#1100;"/>
+   <gentext key="LegalNotice" text="&#1040;&#1074;&#1090;&#1086;&#1088;&#1089;&#1082;&#1080;&#1077; &#1087;&#1088;&#1072;&#1074;&#1072;"/>
+   <gentext key="legalnotice" text="&#1040;&#1074;&#1090;&#1086;&#1088;&#1089;&#1082;&#1080;&#1077; &#1087;&#1088;&#1072;&#1074;&#1072;"/>
+   <gentext key="Level" text="&#1059;&#1088;&#1086;&#1074;&#1077;&#1085;&#1100;"/>
+   <gentext key="level" text="&#1059;&#1088;&#1086;&#1074;&#1077;&#1085;&#1100;"/>
+   <gentext key="MsgAud" text="Audience"/>
+   <gentext key="msgaud" text="Audience"/>
+   <gentext key="MsgLevel" text="Level"/>
+   <gentext key="msglevel" text="Level"/>
+   <gentext key="MsgOrig" text="Origin"/>
+   <gentext key="msgorig" text="Origin"/>
+   <gentext key="NOTE" text="&#1047;&#1040;&#1052;&#1045;&#1063;&#1040;&#1053;&#1048;&#1045;"/>
+   <gentext key="note" text="&#1047;&#1040;&#1052;&#1045;&#1063;&#1040;&#1053;&#1048;&#1045;"/>
+   <gentext key="Name" text="&#1048;&#1084;&#1103;"/>
+   <gentext key="name" text="&#1048;&#1084;&#1103;"/>
+   <gentext key="Note" text="&#1047;&#1072;&#1084;&#1077;&#1095;&#1072;&#1085;&#1080;&#1077;"/>
+   <gentext key="note" text="&#1047;&#1072;&#1084;&#1077;&#1095;&#1072;&#1085;&#1080;&#1077;"/>
+   <gentext key="Origin" text="&#1048;&#1089;&#1090;&#1086;&#1095;&#1085;&#1080;&#1082;"/>
+   <gentext key="origin" text="&#1048;&#1089;&#1090;&#1086;&#1095;&#1085;&#1080;&#1082;"/>
+   <gentext key="Part" text="&#1063;&#1072;&#1089;&#1090;&#1100;"/>
+   <gentext key="part" text="&#1063;&#1072;&#1089;&#1090;&#1100;"/>
+   <gentext key="Part.abr" text="&#1063;."/>
+   <gentext key="part.abr" text="&#1063;."/>
+   <gentext key="Preface" text="&#1055;&#1088;&#1077;&#1076;&#1080;&#1089;&#1083;&#1086;&#1074;&#1080;&#1077;"/>
+   <gentext key="preface" text="&#1055;&#1088;&#1077;&#1076;&#1080;&#1089;&#1083;&#1086;&#1074;&#1080;&#1077;"/>
+   <gentext key="Procedure" text="&#1055;&#1088;&#1086;&#1094;&#1077;&#1076;&#1091;&#1088;&#1072;"/>
+   <gentext key="procedure" text="&#1055;&#1088;&#1086;&#1094;&#1077;&#1076;&#1091;&#1088;&#1072;"/>
+   <gentext key="Procedure.abr" text="&#1055;&#1088;&#1086;&#1094;."/>
+   <gentext key="procedure.abr" text="&#1055;&#1088;&#1086;&#1094;."/>
+   <gentext key="Published" text="&#1054;&#1087;&#1091;&#1073;&#1083;&#1080;&#1082;&#1086;&#1074;&#1072;&#1085;&#1086;"/>
+   <gentext key="published" text="&#1054;&#1087;&#1091;&#1073;&#1083;&#1080;&#1082;&#1086;&#1074;&#1072;&#1085;&#1086;"/>
+   <gentext key="Question" text="Q:"/>
+   <gentext key="question" text="Q:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="&#1057;&#1089;&#1099;&#1083;&#1082;&#1072;"/>
+   <gentext key="reference" text="&#1057;&#1089;&#1099;&#1083;&#1082;&#1072;"/>
+   <gentext key="RefName" text="Name"/>
+   <gentext key="refname" text="Name"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="Revision" text="&#1048;&#1079;&#1076;&#1072;&#1085;&#1080;&#1077;"/>
+   <gentext key="revision" text="&#1048;&#1079;&#1076;&#1072;&#1085;&#1080;&#1077;"/>
+   <gentext key="RevHistory" text="&#1048;&#1089;&#1090;&#1086;&#1088;&#1080;&#1103; &#1087;&#1077;&#1088;&#1077;&#1080;&#1079;&#1076;&#1072;&#1085;&#1080;&#1103;"/>
+   <gentext key="revhistory" text="&#1048;&#1089;&#1090;&#1086;&#1088;&#1080;&#1103; &#1087;&#1077;&#1088;&#1077;&#1080;&#1079;&#1076;&#1072;&#1085;&#1080;&#1103;"/>
+   <gentext key="Section" text="&#1056;&#1072;&#1079;&#1076;&#1077;&#1083;"/>
+   <gentext key="Section.abr" text="&#1056;&#1072;&#1079;&#1076;."/>
+   <gentext key="section.abr" text="&#1056;&#1072;&#1079;&#1076;."/>
+   <gentext key="See" text="&#1057;&#1084;."/>
+   <gentext key="see" text="&#1057;&#1084;."/>
+   <gentext key="SeeAlso" text="&#1057;&#1084;. &#1090;&#1072;&#1082;&#1078;&#1077;"/>
+   <gentext key="seealso" text="&#1057;&#1084;. &#1090;&#1072;&#1082;&#1078;&#1077;"/>
+   <gentext key="Seealso" text="&#1057;&#1084;. &#1090;&#1072;&#1082;&#1078;&#1077;"/>
+   <gentext key="seealso" text="&#1057;&#1084;. &#1090;&#1072;&#1082;&#1078;&#1077;"/>
+   <gentext key="Set" text="&#1055;&#1086;&#1076;&#1073;&#1086;&#1088;&#1082;&#1072;"/>
+   <gentext key="set" text="&#1055;&#1086;&#1076;&#1073;&#1086;&#1088;&#1082;&#1072;"/>
+   <gentext key="SetIndex" text="&#1048;&#1085;&#1076;&#1077;&#1082;&#1089; &#1087;&#1086;&#1076;&#1073;&#1086;&#1088;&#1082;&#1080;"/>
+   <gentext key="setindex" text="&#1048;&#1085;&#1076;&#1077;&#1082;&#1089; &#1087;&#1086;&#1076;&#1073;&#1086;&#1088;&#1082;&#1080;"/>
+   <gentext key="Sidebar" text="&#1042;&#1099;&#1076;&#1077;&#1083;&#1077;&#1085;&#1080;&#1077;"/>
+   <gentext key="sidebar" text="&#1074;&#1099;&#1076;&#1077;&#1083;&#1077;&#1085;&#1080;&#1077;"/>
+   <gentext key="Step" text="&#1064;&#1072;&#1075;"/>
+   <gentext key="TIP" text="&#1055;&#1054;&#1044;&#1057;&#1050;&#1040;&#1047;&#1050;&#1040;"/>
+   <gentext key="tip" text="&#1055;&#1054;&#1044;&#1057;&#1050;&#1040;&#1047;&#1050;&#1040;"/>
+   <gentext key="Table" text="&#1058;&#1072;&#1073;&#1083;&#1080;&#1094;&#1072;"/>
+   <gentext key="table" text="&#1058;&#1072;&#1073;&#1083;&#1080;&#1094;&#1072;"/>
+   <gentext key="Table.abr" text="&#1058;&#1072;&#1073;&#1083;."/>
+   <gentext key="table.abr" text="&#1058;&#1072;&#1073;&#1083;."/>
+   <gentext key="Tip" text="&#1055;&#1086;&#1076;&#1089;&#1082;&#1072;&#1079;&#1082;&#1072;"/>
+   <gentext key="tip" text="&#1055;&#1086;&#1076;&#1089;&#1082;&#1072;&#1079;&#1082;&#1072;"/>
+   <gentext key="WARNING" text="&#1042;&#1053;&#1048;&#1052;&#1040;&#1053;&#1048;&#1045;"/>
+   <gentext key="warning" text="&#1042;&#1053;&#1048;&#1052;&#1040;&#1053;&#1048;&#1045;"/>
+   <gentext key="Warning" text="&#1042;&#1085;&#1080;&#1084;&#1072;&#1085;&#1080;&#1077;"/>
+   <gentext key="warning" text="&#1042;&#1085;&#1080;&#1084;&#1072;&#1085;&#1080;&#1077;"/>
+   <gentext key="appendix" text="&#1087;&#1088;&#1080;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077;"/>
+   <gentext key="chapter" text="&#1075;&#1083;&#1072;&#1074;&#1072;"/>
+   <gentext key="section" text="&#1088;&#1072;&#1079;&#1076;&#1077;&#1083;"/>
+   <gentext key="step" text="&#1096;&#1072;&#1075;"/>
+   <gentext key="TableofContents" text="&#1057;&#1086;&#1076;&#1077;&#1088;&#1078;&#1072;&#1085;&#1080;&#1077;"/>
+   <gentext key="tableofcontents" text="&#1057;&#1086;&#1076;&#1077;&#1088;&#1078;&#1072;&#1085;&#1080;&#1077;"/>
+   <gentext key="called" text=""/>
+   <gentext key="in" text="&#1074;"/>
+   <gentext key="by" text=""/>
+   <gentext key="Edited" text="&#1055;&#1086;&#1076; &#1088;&#1077;&#1076;&#1072;&#1082;&#1094;&#1080;&#1077;&#1081;"/>
+   <gentext key="edited" text="&#1055;&#1086;&#1076; &#1088;&#1077;&#1076;&#1072;&#1082;&#1094;&#1080;&#1077;&#1081;"/>
+   <gentext key="Editedby" text="&#1055;&#1086;&#1076; &#1088;&#1077;&#1076;&#1072;&#1082;&#1094;&#1080;&#1077;&#1081;"/>
+   <gentext key="editedby" text="&#1055;&#1086;&#1076; &#1088;&#1077;&#1076;&#1072;&#1082;&#1094;&#1080;&#1077;&#1081;"/>
+   <gentext key="and" text=""/>
+   <gentext key="Notes" text="&#1055;&#1088;&#1080;&#1084;&#1077;&#1095;&#1072;&#1085;&#1080;&#1103;"/>
+   <gentext key="notes" text="&#1055;&#1088;&#1080;&#1084;&#1077;&#1095;&#1072;&#1085;&#1080;&#1103;"/>
+   <gentext key="TableNotes" text="&#1055;&#1088;&#1080;&#1084;&#1077;&#1095;&#1072;&#1085;&#1080;&#1103;"/>
+   <gentext key="tablenotes" text="&#1055;&#1088;&#1080;&#1084;&#1077;&#1095;&#1072;&#1085;&#1080;&#1103;"/>
+   <gentext key="nonexistantelement" text="non-existant element"/>
+   <gentext key="the" text=""/>
+   <gentext key="Pgs" text="&#1057;&#1090;&#1088;."/>
+   <gentext key="pgs" text="&#1057;&#1090;&#1088;."/>
+   <gentext key="unsupported" text="unsupported"/>
+   <gentext key="xrefto" text="xref to"/>
+   <gentext key="unexpectedelementname" text="unexpected element name"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="&#1057;&#1087;&#1080;&#1089;&#1086;&#1082; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094;"/>
+   <gentext key="listoftables" text="&#1057;&#1087;&#1080;&#1089;&#1086;&#1082; &#1090;&#1072;&#1073;&#1083;&#1080;&#1094;"/>
+   <gentext key="ListofExamples" text="&#1057;&#1087;&#1080;&#1089;&#1086;&#1082; &#1087;&#1088;&#1080;&#1084;&#1077;&#1088;&#1086;&#1074;"/>
+   <gentext key="listofexamples" text="&#1057;&#1087;&#1080;&#1089;&#1086;&#1082; &#1087;&#1088;&#1080;&#1084;&#1077;&#1088;&#1086;&#1074;"/>
+   <gentext key="ListofFigures" text="&#1057;&#1087;&#1080;&#1089;&#1086;&#1082; &#1080;&#1083;&#1083;&#1102;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1081;"/>
+   <gentext key="listoffigures" text="&#1057;&#1087;&#1080;&#1089;&#1086;&#1082; &#1080;&#1083;&#1083;&#1102;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1081;"/>
+   <gentext key="ListofEquations" text="&#1057;&#1087;&#1080;&#1089;&#1086;&#1082; &#1092;&#1086;&#1088;&#1084;&#1091;&#1083;"/>
+   <gentext key="listofequations" text="&#1057;&#1087;&#1080;&#1089;&#1086;&#1082; &#1092;&#1086;&#1088;&#1084;&#1091;&#1083;"/>
+   <gentext key="ListofUnknown" text="&#1053;&#1077;&#1086;&#1087;&#1088;&#1077;&#1076;&#1077;&#1083;&#1077;&#1085;&#1085;&#1099;&#1081; &#1089;&#1087;&#1080;&#1089;&#1086;&#1082;"/>
+   <gentext key="listofunknown" text="&#1053;&#1077;&#1086;&#1087;&#1088;&#1077;&#1076;&#1077;&#1083;&#1077;&#1085;&#1085;&#1099;&#1081; &#1089;&#1087;&#1080;&#1089;&#1086;&#1082;"/>
+   <gentext key="nav-prev" text="&#1055;&#1088;&#1077;&#1076;."/>
+   <gentext key="nav-prev-sibling" text="&#1055;&#1088;&#1077;&#1076;. &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1076;&#1077;&#1083;"/>
+   <gentext key="nav-next-sibling" text="&#1057;&#1083;&#1077;&#1076;. &#1087;&#1086;&#1076;&#1088;&#1072;&#1079;&#1076;&#1077;&#1083;"/>
+   <gentext key="x-nav-next" text="&#1057;&#1083;&#1077;&#1076;."/>
+   <gentext key="nav-next" text="&#1057;&#1083;&#1077;&#1076;."/>
+   <gentext key="nav-up" text="&#1059;&#1088;&#1086;&#1074;&#1077;&#1085;&#1100; &#1074;&#1099;&#1096;&#1077;"/>
+   <gentext key="nav-home" text="&#1053;&#1072;&#1095;&#1072;&#1083;&#1086;"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="&#1055;&#1088;&#1080;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077; %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="&#1043;&#1083;&#1072;&#1074;&#1072; %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="&#1060;&#1086;&#1088;&#1084;&#1091;&#1083;&#1072; %n. %t"/>
+      <template name="example" text="&#1055;&#1088;&#1080;&#1084;&#1077;&#1088; %n. %t"/>
+      <template name="figure" text="&#1056;&#1080;&#1089;&#1091;&#1085;&#1086;&#1082; %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="&#1063;&#1072;&#1089;&#1090;&#1100; %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="&#1058;&#1072;&#1073;&#1083;&#1080;&#1094;&#1072; %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="&#1055;&#1088;&#1080;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077; %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="&#1043;&#1083;&#1072;&#1074;&#1072; %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="&#1055;&#1088;&#1080;&#1084;&#1077;&#1088; %n. %t"/>
+      <template name="figure" text="&#1056;&#1080;&#1089;&#1091;&#1085;&#1086;&#1082; %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="&#1063;&#1072;&#1089;&#1090;&#1100; %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="&#1058;&#1072;&#1073;&#1083;&#1080;&#1094;&#1072; %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="&#1056;&#1072;&#1079;&#1076;&#1077;&#1083; %n"/>
+      <template name="sect2" text="&#1056;&#1072;&#1079;&#1076;&#1077;&#1083; %n"/>
+      <template name="sect3" text="&#1056;&#1072;&#1079;&#1076;&#1077;&#1083; %n"/>
+      <template name="sect4" text="&#1056;&#1072;&#1079;&#1076;&#1077;&#1083; %n"/>
+      <template name="sect5" text="&#1056;&#1072;&#1079;&#1076;&#1077;&#1083; %n"/>
+      <template name="section" text="&#1056;&#1072;&#1079;&#1076;&#1077;&#1083; %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text="  "/>
+      <template name="seplast" text=",  "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="See "/>
+      <template name="seealso" text="See Also "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Level: "/>
+      <template name="MsgOrig" text="Origin: "/>
+      <template name="MsgAud" text="Audience: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sk.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sk.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sk.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="sk">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Obsah"/>
+   <gentext key="abstract" text="Obsah"/>
+   <gentext key="Answer" text="A:"/>
+   <gentext key="answer" text="A:"/>
+   <gentext key="Appendix" text="Dodatok"/>
+   <gentext key="Article" text="&#268;l&#225;nok"/>
+   <gentext key="article" text="&#268;l&#225;nok"/>
+   <gentext key="Bibliography" text="Bibliografia"/>
+   <gentext key="bibliography" text="Bibliografia"/>
+   <gentext key="Book" text="Kniha"/>
+   <gentext key="book" text="Kniha"/>
+   <gentext key="CAUTION" text="V&#221;STRAHA"/>
+   <gentext key="caution" text="V&#221;STRAHA"/>
+   <gentext key="Caution" text="V&#253;straha"/>
+   <gentext key="caution" text="V&#253;straha"/>
+   <gentext key="Chapter" text="Kapitola"/>
+   <gentext key="Colophon" text="Tir&#225;&#382;"/>
+   <gentext key="colophon" text="Tir&#225;&#382;"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Venovanie"/>
+   <gentext key="dedication" text="Venovanie"/>
+   <gentext key="Edition" text="Vydanie"/>
+   <gentext key="edition" text="Vydanie"/>
+   <gentext key="Equation" text="Rovnice"/>
+   <gentext key="equation" text="Rovnice"/>
+   <gentext key="Example" text="Pr&#237;klad"/>
+   <gentext key="example" text="Pr&#237;klad"/>
+   <gentext key="Figure" text="Obr&#225;zok"/>
+   <gentext key="figure" text="Obr&#225;zok"/>
+   <gentext key="GlossSee" text="Pozri"/>
+   <gentext key="glosssee" text="Pozri"/>
+   <gentext key="GlossSeeAlso" text="Pozri tie&#382;"/>
+   <gentext key="glossseealso" text="Pozri tie&#382;"/>
+   <gentext key="Glossary" text="Slovn&#237;k"/>
+   <gentext key="glossary" text="Slovn&#237;k"/>
+   <gentext key="IMPORTANT" text="D&#212;LE&#381;IT&#201;"/>
+   <gentext key="important" text="D&#212;LE&#381;IT&#201;"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="D&#244;le&#382;it&#233;"/>
+   <gentext key="important" text="D&#244;le&#382;it&#233;"/>
+   <gentext key="Index" text="Zoznam"/>
+   <gentext key="index" text="Zoznam"/>
+   <gentext key="LegalNotice" text="Pr&#225;vna pozn&#225;mka"/>
+   <gentext key="legalnotice" text="Pr&#225;vna pozn&#225;mka"/>
+   <gentext key="MsgAud" text="Publikum"/>
+   <gentext key="msgaud" text="Publikum"/>
+   <gentext key="MsgLevel" text="&#218;rove&#328;"/>
+   <gentext key="msglevel" text="&#218;rove&#328;"/>
+   <gentext key="MsgOrig" text="P&#244;vod"/>
+   <gentext key="msgorig" text="P&#244;vod"/>
+   <gentext key="NOTE" text="POZN&#193;MKA"/>
+   <gentext key="note" text="POZN&#193;MKA"/>
+   <gentext key="Note" text="Pozn&#225;mka"/>
+   <gentext key="note" text="Pozn&#225;mka"/>
+   <gentext key="Part" text="&#268;as&#357;"/>
+   <gentext key="part" text="&#268;as&#357;"/>
+   <gentext key="Preface" text="&#218;vod"/>
+   <gentext key="preface" text="&#218;vod"/>
+   <gentext key="Procedure" text="Postup"/>
+   <gentext key="procedure" text="Postup"/>
+   <gentext key="Published" text="Vydan&#233;"/>
+   <gentext key="published" text="Vydan&#233;"/>
+   <gentext key="Question" text="Q:"/>
+   <gentext key="question" text="Q:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Odkaz"/>
+   <gentext key="reference" text="Odkaz"/>
+   <gentext key="RefName" text="Meno"/>
+   <gentext key="refname" text="Meno"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Preh&#318;ad"/>
+   <gentext key="refsynopsisdiv" text="Preh&#318;ad"/>
+   <gentext key="Revision" text="Rev&#237;zia"/>
+   <gentext key="revision" text="Rev&#237;zia"/>
+   <gentext key="RevHistory" text="Preh&#318;ad rev&#237;zi&#237;"/>
+   <gentext key="revhistory" text="Preh&#318;ad rev&#237;zi&#237;"/>
+   <gentext key="Section" text="Oddiel"/>
+   <gentext key="See" text="Pozri"/>
+   <gentext key="see" text="Pozri"/>
+   <gentext key="SeeAlso" text="Pozri tie&#382;"/>
+   <gentext key="seealso" text="Pozri tie&#382;"/>
+   <gentext key="Set" text="Nastavi&#357;"/>
+   <gentext key="set" text="Nastavi&#357;"/>
+   <gentext key="SetIndex" text="Nastavi&#357; index"/>
+   <gentext key="setindex" text="Nastavi&#357; index"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="Krok"/>
+   <gentext key="TIP" text="TIP"/>
+   <gentext key="tip" text="TIP"/>
+   <gentext key="Table" text="Tabu&#318;ka"/>
+   <gentext key="table" text="Tabu&#318;ka"/>
+   <gentext key="Tip" text="Tip"/>
+   <gentext key="tip" text="Tip"/>
+   <gentext key="WARNING" text="VAROVANIE"/>
+   <gentext key="warning" text="VAROVANIE"/>
+   <gentext key="Warning" text="Varovanie"/>
+   <gentext key="warning" text="Varovanie"/>
+   <gentext key="appendix" text="dodatok"/>
+   <gentext key="chapter" text="kapitola"/>
+   <gentext key="section" text="oddiel"/>
+   <gentext key="sidebar" text="bo&#269;n&#237; li&#353;ta"/>
+   <gentext key="step" text="krok"/>
+   <gentext key="Seealso" text="Pozri tie&#382;"/>
+   <gentext key="seealso" text="Pozri tie&#382;"/>
+   <gentext key="TableofContents" text="Obsah"/>
+   <gentext key="tableofcontents" text="Obsah"/>
+   <gentext key="in" text="v"/>
+   <gentext key="by" text=""/>
+   <gentext key="Edited" text="Vydan&#233;"/>
+   <gentext key="edited" text="Vydan&#233;"/>
+   <gentext key="Editedby" text="Vydan&#233;"/>
+   <gentext key="editedby" text="Vydan&#233;"/>
+   <gentext key="and" text="a"/>
+   <gentext key="Notes" text="Pozn&#225;mky"/>
+   <gentext key="notes" text="Pozn&#225;mky"/>
+   <gentext key="TableNotes" text="Pozn&#225;mky"/>
+   <gentext key="tablenotes" text="Pozn&#225;mky"/>
+   <gentext key="nonexistantelement" text="neexistuj&#250;ci prvok"/>
+   <gentext key="Pgs" text="Str."/>
+   <gentext key="pgs" text="Str."/>
+   <gentext key="unsupported" text="nepodporovan&#253;"/>
+   <gentext key="xrefto" text="xref k"/>
+   <gentext key="unexpectedelementname" text="Neo&#269;ak&#225;van&#233; meno prvku"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="Zoznam tabuliek"/>
+   <gentext key="listoftables" text="Zoznam tabuliek"/>
+   <gentext key="ListofExamples" text="Zoznam pr&#237;kladov"/>
+   <gentext key="listofexamples" text="Zoznam pr&#237;kladov"/>
+   <gentext key="ListofFigures" text="Zoznam obr&#225;zkov"/>
+   <gentext key="listoffigures" text="Zoznam obr&#225;zkov"/>
+   <gentext key="ListofEquations" text="Zoznam rovn&#237;c"/>
+   <gentext key="listofequations" text="Zoznam rovn&#237;c"/>
+   <gentext key="ListofUnknown" text="Zoznam nezn&#225;meho"/>
+   <gentext key="listofunknown" text="Zoznam nezn&#225;meho"/>
+   <gentext key="nav-prev" text="Predch&#225;dzaj&#250;ci"/>
+   <gentext key="nav-prev-sibling" text="R&#253;chlo nazp&#228;t"/>
+   <gentext key="nav-next-sibling" text="R&#253;chlo dopredu"/>
+   <gentext key="nav-next" text="&#270;al&#353;&#237;"/>
+   <gentext key="nav-up" text="Hore"/>
+   <gentext key="nav-home" text="Domov"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Dodatok %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Kapitola %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Rovnice %n. %t"/>
+      <template name="example" text="Pr&#237;klad %n. %t"/>
+      <template name="figure" text="Obr&#225;zok %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="&#268;as&#357; %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabu&#318;ka %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Dodatok %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Kapitola %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Pr&#237;klad %n. %t"/>
+      <template name="figure" text="Obr&#225;zok %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="&#268;as&#357; %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabu&#318;ka %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Oddiel %n"/>
+      <template name="sect2" text="Oddiel %n"/>
+      <template name="sect3" text="Oddiel %n"/>
+      <template name="sect4" text="Oddiel %n"/>
+      <template name="sect5" text="Oddiel %n"/>
+      <template name="section" text="Oddiel %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" a "/>
+      <template name="seplast" text=", a "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Pozri "/>
+      <template name="seealso" text="Pozri tie&#382; "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="&#218;rove&#328;: "/>
+      <template name="MsgOrig" text="P&#244;vod: "/>
+      <template name="MsgAud" text="Publikum: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sl.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sl.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sl.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="sl">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Povzetek"/>
+   <gentext key="abstract" text="Povzetek"/>
+   <gentext key="Answer" text="O:"/>
+   <gentext key="answer" text="O:"/>
+   <gentext key="Appendix" text="Dodatek"/>
+   <gentext key="Article" text="&#268;lanek"/>
+   <gentext key="article" text="&#268;lanek"/>
+   <gentext key="Bibliography" text="Literatura"/>
+   <gentext key="bibliography" text="Literatura"/>
+   <gentext key="Book" text="Knjiga"/>
+   <gentext key="book" text="Knjiga"/>
+   <gentext key="CAUTION" text="OPOZORILO"/>
+   <gentext key="caution" text="OPOZORILO"/>
+   <gentext key="Caution" text="Opozorilo"/>
+   <gentext key="caution" text="Opozorilo"/>
+   <gentext key="Chapter" text="Poglavje"/>
+   <gentext key="Colophon" text="Kolofon"/>
+   <gentext key="colophon" text="Kolofon"/>
+   <gentext key="Copyright" text="Pravna za&#353;&#269;ita"/>
+   <gentext key="copyright" text="Pravna za&#353;&#269;ita"/>
+   <gentext key="Dedication" text="Posvetilo"/>
+   <gentext key="dedication" text="Posvetilo"/>
+   <gentext key="Edition" text="Izdaja"/>
+   <gentext key="edition" text="Izdaja"/>
+   <gentext key="Equation" text="Ena&#269;ba"/>
+   <gentext key="equation" text="Ena&#269;ba"/>
+   <gentext key="Example" text="Primer"/>
+   <gentext key="example" text="Primer"/>
+   <gentext key="Figure" text="Slika"/>
+   <gentext key="figure" text="Slika"/>
+   <gentext key="GlossSee" text="glej"/>
+   <gentext key="glosssee" text="glej"/>
+   <gentext key="GlossSeeAlso" text="glej tudi"/>
+   <gentext key="glossseealso" text="glej tudi"/>
+   <gentext key="Glossary" text="Slovar&#269;ek"/>
+   <gentext key="glossary" text="Slovar&#269;ek"/>
+   <gentext key="IMPORTANT" text="POMEMBNO"/>
+   <gentext key="important" text="POMEMBNO"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Pomembno"/>
+   <gentext key="important" text="Pomembno"/>
+   <gentext key="Index" text="Stvarno kazalo"/>
+   <gentext key="index" text="Stvarno kazalo"/>
+   <gentext key="LegalNotice" text="Pravno sporo&#269;ilo"/>
+   <gentext key="legalnotice" text="Pravno sporo&#269;ilo"/>
+   <gentext key="MsgAud" text="Ob&#269;instvo"/>
+   <gentext key="msgaud" text="Ob&#269;instvo"/>
+   <gentext key="MsgLevel" text="Raven"/>
+   <gentext key="msglevel" text="Raven"/>
+   <gentext key="MsgOrig" text="Izvor"/>
+   <gentext key="msgorig" text="Izvor"/>
+   <gentext key="NOTE" text="OPOMBA"/>
+   <gentext key="note" text="OPOMBA"/>
+   <gentext key="Note" text="Opomba"/>
+   <gentext key="note" text="Opomba"/>
+   <gentext key="Part" text="Del"/>
+   <gentext key="part" text="Del"/>
+   <gentext key="Preface" text="Predgovor"/>
+   <gentext key="preface" text="Predgovor"/>
+   <gentext key="Procedure" text="Postopek"/>
+   <gentext key="procedure" text="Postopek"/>
+   <gentext key="Published" text="Izdano"/>
+   <gentext key="published" text="Izdano"/>
+   <gentext key="Question" text="V:"/>
+   <gentext key="question" text="V:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Sklic"/>
+   <gentext key="reference" text="Sklic"/>
+   <gentext key="RefName" text="Ime"/>
+   <gentext key="refname" text="Ime"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Sinopsis"/>
+   <gentext key="refsynopsisdiv" text="Sinopsis"/>
+   <gentext key="Revision" text="Razli&#269;ica"/>
+   <gentext key="revision" text="Razli&#269;ica"/>
+   <gentext key="RevHistory" text="Zgodovina razli&#269;ic"/>
+   <gentext key="revhistory" text="Zgodovina razli&#269;ic"/>
+   <gentext key="Section" text="Razdelek"/>
+   <gentext key="See" text="glej"/>
+   <gentext key="see" text="glej"/>
+   <gentext key="SeeAlso" text="glej tudi"/>
+   <gentext key="seealso" text="glej tudi"/>
+   <gentext key="Set" text="Postavi"/>
+   <gentext key="set" text="Postavi"/>
+   <gentext key="SetIndex" text="Postavi stvarno kazalo"/>
+   <gentext key="setindex" text="Postavi stvarno kazalo"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="Korak"/>
+   <gentext key="TIP" text="NAMIG"/>
+   <gentext key="tip" text="NAMIG"/>
+   <gentext key="Table" text="Tabela"/>
+   <gentext key="table" text="Tabela"/>
+   <gentext key="Tip" text="Namig"/>
+   <gentext key="tip" text="Namig"/>
+   <gentext key="WARNING" text="POZOR"/>
+   <gentext key="warning" text="POZOR"/>
+   <gentext key="Warning" text="Pozor"/>
+   <gentext key="warning" text="Pozor"/>
+   <gentext key="appendix" text="dodatek"/>
+   <gentext key="chapter" text="poglavje"/>
+   <gentext key="section" text="razdelek"/>
+   <gentext key="sidebar" text="sidebar"/>
+   <gentext key="step" text="korak"/>
+   <gentext key="Seealso" text="Glej tudi"/>
+   <gentext key="seealso" text="Glej tudi"/>
+   <gentext key="TableofContents" text="Kazalo"/>
+   <gentext key="tableofcontents" text="Kazalo"/>
+   <gentext key="in" text="v"/>
+   <gentext key="by" text="od"/>
+   <gentext key="Edited" text="Urejeno"/>
+   <gentext key="edited" text="Urejeno"/>
+   <gentext key="Editedby" text="Urejeno od"/>
+   <gentext key="editedby" text="Urejeno od"/>
+   <gentext key="and" text="in"/>
+   <gentext key="Notes" text="Notes"/>
+   <gentext key="notes" text="Notes"/>
+   <gentext key="TableNotes" text="Notes"/>
+   <gentext key="tablenotes" text="Notes"/>
+   <gentext key="nonexistantelement" text="neobstoje&#269;i element"/>
+   <gentext key="Pgs" text="Str."/>
+   <gentext key="pgs" text="Str."/>
+   <gentext key="unsupported" text="nepodprto"/>
+   <gentext key="xrefto" text="xref na"/>
+   <gentext key="unexpectedelementname" text="Nepri&#269;akovano ime elementa"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="Seznam tabel"/>
+   <gentext key="listoftables" text="Seznam tabel"/>
+   <gentext key="ListofExamples" text="Seznam primerov"/>
+   <gentext key="listofexamples" text="Seznam primerov"/>
+   <gentext key="ListofFigures" text="Seznam slik"/>
+   <gentext key="listoffigures" text="Seznam slik"/>
+   <gentext key="ListofEquations" text="Seznam ena&#269;b"/>
+   <gentext key="listofequations" text="Seznam ena&#269;b"/>
+   <gentext key="ListofUnknown" text="Seznam neznanih stvari"/>
+   <gentext key="listofunknown" text="Seznam neznanih stvari"/>
+   <gentext key="nav-prev" text="Nazaj"/>
+   <gentext key="nav-prev-sibling" text="Hitro nazaj"/>
+   <gentext key="nav-next-sibling" text="Hitro naprej"/>
+   <gentext key="nav-next" text="Naprej"/>
+   <gentext key="nav-up" text="Gor"/>
+   <gentext key="nav-home" text="Domov"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Dodatek %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Poglavje %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Ena&#269;ba %n. %t"/>
+      <template name="example" text="Primer %n. %t"/>
+      <template name="figure" text="Slika %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Del %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabela %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Dodatek %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Poglavje %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Primer %n. %t"/>
+      <template name="figure" text="Slika %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Del %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabela %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Razdelek %n"/>
+      <template name="sect2" text="Razdelek %n"/>
+      <template name="sect3" text="Razdelek %n"/>
+      <template name="sect4" text="Razdelek %n"/>
+      <template name="sect5" text="Razdelek %n"/>
+      <template name="section" text="Razdelek %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" in "/>
+      <template name="seplast" text=", in "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="glej "/>
+      <template name="seealso" text="glej tudi "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Raven: "/>
+      <template name="MsgOrig" text="Izvor: "/>
+      <template name="MsgAud" text="Ob&#269;instvo: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sr.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sr.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sr.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="sr">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Pregled"/>
+   <gentext key="abstract" text="Pregled"/>
+   <gentext key="Answer" text="O:"/>
+   <gentext key="answer" text="O:"/>
+   <gentext key="Appendix" text="Dodatak"/>
+   <gentext key="Article" text="\&#268;lanak"/>
+   <gentext key="article" text="\&#268;lanak"/>
+   <gentext key="Bibliography" text="Literatura"/>
+   <gentext key="bibliography" text="Literatura"/>
+   <gentext key="Book" text="Knjiga"/>
+   <gentext key="book" text="Knjiga"/>
+   <gentext key="CAUTION" text="UPOZORENJE"/>
+   <gentext key="caution" text="UPOZORENJE"/>
+   <gentext key="Caution" text="Upozorenje"/>
+   <gentext key="caution" text="Upozorenje"/>
+   <gentext key="Chapter" text="Poglavlje"/>
+   <gentext key="Colophon" text="Kolofon"/>
+   <gentext key="colophon" text="Kolofon"/>
+   <gentext key="Copyright" text="Pravna za\&#353;tita"/>
+   <gentext key="copyright" text="Pravna za\&#353;tita"/>
+   <gentext key="Dedication" text="Posveta"/>
+   <gentext key="dedication" text="Posveta"/>
+   <gentext key="Edition" text="Izdanje"/>
+   <gentext key="edition" text="Izdanje"/>
+   <gentext key="Equation" text="Jedna\&#269;ina"/>
+   <gentext key="equation" text="Jedna\&#269;ina"/>
+   <gentext key="Example" text="Primer"/>
+   <gentext key="example" text="Primer"/>
+   <gentext key="Figure" text="Slika"/>
+   <gentext key="figure" text="Slika"/>
+   <gentext key="GlossSee" text="Vidi"/>
+   <gentext key="glosssee" text="Vidi"/>
+   <gentext key="GlossSeeAlso" text="Vidi tako\&#273;e"/>
+   <gentext key="glossseealso" text="Vidi tako\&#273;e"/>
+   <gentext key="Glossary" text="Re\&#269;nik"/>
+   <gentext key="glossary" text="Re\&#269;nik"/>
+   <gentext key="IMPORTANT" text="VA\&#381;NO"/>
+   <gentext key="important" text="VA\&#381;NO"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Va\&#382;no"/>
+   <gentext key="important" text="Va\&#382;no"/>
+   <gentext key="Index" text="Indeks"/>
+   <gentext key="index" text="Indeks"/>
+   <gentext key="LegalNotice" text="Pravno obave\&#353;tenje"/>
+   <gentext key="legalnotice" text="Pravno obave\&#353;tenje"/>
+   <gentext key="MsgAud" text="MsgAud"/>
+   <gentext key="msgaud" text="MsgAud"/>
+   <gentext key="MsgLevel" text="Nivo"/>
+   <gentext key="msglevel" text="Nivo"/>
+   <gentext key="MsgOrig" text="Izvor"/>
+   <gentext key="msgorig" text="Izvor"/>
+   <gentext key="NOTE" text="PRIMEDBA"/>
+   <gentext key="note" text="Primedba"/>
+   <gentext key="Note" text="Primedba"/>
+   <gentext key="note" text="Primedba"/>
+   <gentext key="Part" text="Deo"/>
+   <gentext key="part" text="Deo"/>
+   <gentext key="Preface" text="Predgovor"/>
+   <gentext key="preface" text="Predgovor"/>
+   <gentext key="Procedure" text="Postupak"/>
+   <gentext key="procedure" text="Postupak"/>
+   <gentext key="Published" text="Izdato"/>
+   <gentext key="published" text="Izdato"/>
+   <gentext key="Question" text="P:"/>
+   <gentext key="question" text="P:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="Referenca"/>
+   <gentext key="reference" text="Referenca"/>
+   <gentext key="RefName" text="Ime"/>
+   <gentext key="refname" text="Ime"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Sinopsis"/>
+   <gentext key="refsynopsisdiv" text="Sinopsis"/>
+   <gentext key="Revision" text="Revizija"/>
+   <gentext key="revision" text="Revizija"/>
+   <gentext key="RevHistory" text="Istorija revizija"/>
+   <gentext key="revhistory" text="Istorija revizija"/>
+   <gentext key="Section" text="Odeljak"/>
+   <gentext key="See" text="vidi"/>
+   <gentext key="see" text="vidi"/>
+   <gentext key="SeeAlso" text="vidi tako\&#273;e"/>
+   <gentext key="seealso" text="vidi tako\&#273;e"/>
+   <gentext key="Set" text="Postavi"/>
+   <gentext key="set" text="Postavi"/>
+   <gentext key="SetIndex" text="Postavi indeks"/>
+   <gentext key="setindex" text="Postavi indeks"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="Korak"/>
+   <gentext key="TIP" text="SAVET"/>
+   <gentext key="tip" text="SAVET"/>
+   <gentext key="Table" text="Tabela"/>
+   <gentext key="table" text="Tabela"/>
+   <gentext key="Tip" text="Savet"/>
+   <gentext key="tip" text="Savet"/>
+   <gentext key="WARNING" text="UPOZORENJE"/>
+   <gentext key="warning" text="UPOZORENJE"/>
+   <gentext key="Warning" text="Upozorenje"/>
+   <gentext key="warning" text="Upozorenje"/>
+   <gentext key="appendix" text="dodatak"/>
+   <gentext key="chapter" text="poglavlje"/>
+   <gentext key="section" text="sekcija"/>
+   <gentext key="sidebar" text="sidebar"/>
+   <gentext key="step" text="korak"/>
+   <gentext key="Seealso" text="Vidi tako\&#273;e"/>
+   <gentext key="seealso" text="Vidi tako\&#273;e"/>
+   <gentext key="TableofContents" text="Sadr\&#382;aj"/>
+   <gentext key="tableofcontents" text="Sadr\&#382;aj"/>
+   <gentext key="in" text="u"/>
+   <gentext key="by" text="od"/>
+   <gentext key="Edited" text="Ure\&#273;eno"/>
+   <gentext key="edited" text="Ure\&#273;eno"/>
+   <gentext key="Editedby" text="Ure\&#273;eno od"/>
+   <gentext key="editedby" text="Ure\&#273;eno od"/>
+   <gentext key="and" text="i"/>
+   <gentext key="Notes" text="Notes"/>
+   <gentext key="notes" text="Notes"/>
+   <gentext key="TableNotes" text="Notes"/>
+   <gentext key="tablenotes" text="Notes"/>
+   <gentext key="nonexistantelement" text="nepostoje\&#263;i element"/>
+   <gentext key="Pgs" text="Str."/>
+   <gentext key="pgs" text="Str."/>
+   <gentext key="unsupported" text="nepodr\&#382;ano"/>
+   <gentext key="xrefto" text="xref na"/>
+   <gentext key="unexpectedelementname" text="Neo\&#269;ekivano ime elementa"/>
+   <gentext key="Revisedby" text="Revised by: "/>
+   <gentext key="revisedby" text="Revised by: "/>
+   <gentext key="ListofTables" text="Spisak tabela"/>
+   <gentext key="listoftables" text="Spisak tabela"/>
+   <gentext key="ListofExamples" text="Spisak primera"/>
+   <gentext key="listofexamples" text="Spisak primera"/>
+   <gentext key="ListofFigures" text="Spisak slika"/>
+   <gentext key="listoffigures" text="Spisak slika"/>
+   <gentext key="ListofEquations" text="Spisak jedna\&#269;ina"/>
+   <gentext key="listofequations" text="Spisak jedna\&#269;ina"/>
+   <gentext key="ListofUnknown" text="Spisak nepoznanica"/>
+   <gentext key="listofunknown" text="Spisak nepoznanica"/>
+   <gentext key="nav-prev" text="Nazad"/>
+   <gentext key="nav-prev-sibling" text="Brzo nazad"/>
+   <gentext key="nav-next-sibling" text="Brzo napred"/>
+   <gentext key="nav-next" text="Napred"/>
+   <gentext key="nav-up" text="Gore"/>
+   <gentext key="nav-home" text="Ku\&#263;i"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Dodatak %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Poglavlje %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Jedna\&#269;ina %n. %t"/>
+      <template name="example" text="Primer %n. %t"/>
+      <template name="figure" text="Slika %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Deo %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabela %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Dodatak %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Poglavlje %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Primer %n. %t"/>
+      <template name="figure" text="Slika %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Deo %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabela %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Odeljak %n"/>
+      <template name="sect2" text="Odeljak %n"/>
+      <template name="sect3" text="Odeljak %n"/>
+      <template name="sect4" text="Odeljak %n"/>
+      <template name="sect5" text="Odeljak %n"/>
+      <template name="section" text="Odeljak %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" i "/>
+      <template name="seplast" text=", i "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Vidi "/>
+      <template name="seealso" text="Vidi tako\&#273;e "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Nivo: "/>
+      <template name="MsgOrig" text="Izvor: "/>
+      <template name="MsgAud" text="MsgAud: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/subtitles.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/subtitles.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/subtitles.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,130 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ============================================================ -->
+<!-- subtitle markup -->
+
+<doc:mode mode="subtitle.markup" xmlns="">
+<refpurpose>Provides access to element subtitles</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">subtitle.markup</literal> mode produces the
+subtitle of the element.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="subtitle.markup">
+  <xsl:message>
+    <xsl:text>Request for subtitle of unexpected element: </xsl:text>
+    <xsl:value-of select="name(.)"/>
+  </xsl:message>
+  <xsl:text>???SUBTITLE???</xsl:text>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="set" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(setinfo/subtitle|subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(bookinfo/subtitle|subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(partinfo/subtitle
+                                |docinfo/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(docinfo/subtitle
+                                |prefaceinfo/subtitle
+                                |chapterinfo/subtitle
+                                |appendixinfo/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="article" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(artheader/subtitle
+                                |articleinfo/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="subtitle"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(referenceinfo/subtitle
+                                |docinfo/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(refentryinfo/subtitle
+                                |docinfo/subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="section
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3
+                     |simplesect"
+              mode="subtitle.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(sectioninfo/subtitle
+                                |sect1info/subtitle
+                                |sect2info/subtitle
+                                |sect3info/subtitle
+                                |sect4info/subtitle
+                                |sect5info/subtitle
+                                |refsect1info/subtitle
+                                |refsect2info/subtitle
+                                |refsect3info/subtitle
+                                |subtitle)[1]"
+                       mode="subtitle.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sv.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sv.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/sv.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="sv">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="Sammanfattning"/>
+   <gentext key="abstract" text="Sammanfattning"/>
+   <gentext key="Answer" text="A:"/>
+   <gentext key="answer" text="A:"/>
+   <gentext key="Appendix" text="Appendix"/>
+   <gentext key="Article" text="Artikel"/>
+   <gentext key="article" text="Artikel"/>
+   <gentext key="Bibliography" text="Bibliografi"/>
+   <gentext key="bibliography" text="Bibliografi"/>
+   <gentext key="Book" text="Bok"/>
+   <gentext key="book" text="Bok"/>
+   <gentext key="CAUTION" text="OBSERVERA"/>
+   <gentext key="caution" text="OBSERVERA"/>
+   <gentext key="Caution" text="Observera"/>
+   <gentext key="caution" text="Observera"/>
+   <gentext key="Chapter" text="Kapitel"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="Copyright"/>
+   <gentext key="copyright" text="Copyright"/>
+   <gentext key="Dedication" text="Dedikation"/>
+   <gentext key="dedication" text="Dedikation"/>
+   <gentext key="Edition" text="Utg&#229;va"/>
+   <gentext key="edition" text="Utg&#229;va"/>
+   <gentext key="Equation" text="Ekvation"/>
+   <gentext key="equation" text="Ekvation"/>
+   <gentext key="Example" text="Exempel"/>
+   <gentext key="example" text="Exempel"/>
+   <gentext key="Figure" text="Figur"/>
+   <gentext key="figure" text="Figur"/>
+   <gentext key="GlossSee" text="Se"/>
+   <gentext key="glosssee" text="Se"/>
+   <gentext key="GlossSeeAlso" text="Se &#196;ven"/>
+   <gentext key="glossseealso" text="Se &#196;ven"/>
+   <gentext key="Glossary" text="Gloslista"/>
+   <gentext key="glossary" text="Gloslista"/>
+   <gentext key="IMPORTANT" text="VIKTIGT"/>
+   <gentext key="important" text="VIKTIGT"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="Viktigt"/>
+   <gentext key="important" text="Viktigt"/>
+   <gentext key="Index" text="Index"/>
+   <gentext key="index" text="Index"/>
+   <gentext key="LegalNotice" text="Legal Notice"/>
+   <gentext key="legalnotice" text="Legal Notice"/>
+   <gentext key="MsgAud" text="M&#229;lgrupp"/>
+   <gentext key="msgaud" text="M&#229;lgrupp"/>
+   <gentext key="MsgLevel" text="Niv&#229;"/>
+   <gentext key="msglevel" text="Niv&#229;"/>
+   <gentext key="MsgOrig" text="Ursprung"/>
+   <gentext key="msgorig" text="Ursprung"/>
+   <gentext key="NOTE" text="NOT"/>
+   <gentext key="note" text="NOT"/>
+   <gentext key="Note" text="Not"/>
+   <gentext key="note" text="Not"/>
+   <gentext key="Part" text="Del"/>
+   <gentext key="part" text="Del"/>
+   <gentext key="Preface" text="F&#246;retal"/>
+   <gentext key="preface" text="F&#246;retal"/>
+   <gentext key="Procedure" text="Procedur"/>
+   <gentext key="procedure" text="Procedur"/>
+   <gentext key="Published" text="Publicerad"/>
+   <gentext key="published" text="Publicerad"/>
+   <gentext key="Question" text="Fr&#229;ga:"/>
+   <gentext key="question" text="Fr&#229;ga:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="RefName" text="Namn"/>
+   <gentext key="refname" text="Namn"/>
+   <gentext key="Reference" text="Referens"/>
+   <gentext key="reference" text="Referens"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="Synopsis"/>
+   <gentext key="refsynopsisdiv" text="Synopsis"/>
+   <gentext key="Revision" text="Revision"/>
+   <gentext key="revision" text="Revision"/>
+   <gentext key="RevHistory" text="Revisions Historik;"/>
+   <gentext key="revhistory" text="Revisions Historik;"/>
+   <gentext key="Section" text="Avsnitt"/>
+   <gentext key="See" text="Se"/>
+   <gentext key="see" text="Se"/>
+   <gentext key="SeeAlso" text="Se &#196;ven"/>
+   <gentext key="seealso" text="Se &#196;ven"/>
+   <gentext key="Set" text="Set"/>
+   <gentext key="set" text="Set"/>
+   <gentext key="SetIndex" text="Set Index"/>
+   <gentext key="setindex" text="Set Index"/>
+   <gentext key="Sidebar" text="Sidebar"/>
+   <gentext key="sidebar" text="sidebar"/>
+   <gentext key="Step" text="Steg"/>
+   <gentext key="TIP" text="TIPS"/>
+   <gentext key="tip" text="TIPS"/>
+   <gentext key="Table" text="Tabell"/>
+   <gentext key="table" text="Tabell"/>
+   <gentext key="Tip" text="Tips"/>
+   <gentext key="tip" text="Tips"/>
+   <gentext key="WARNING" text="VARNING"/>
+   <gentext key="warning" text="VARNING"/>
+   <gentext key="Warning" text="Varning"/>
+   <gentext key="warning" text="Varning"/>
+   <gentext key="appendix" text="appendix"/>
+   <gentext key="chapter" text="kapitel"/>
+   <gentext key="section" text="avsnitt"/>
+   <gentext key="step" text="steg"/>
+   <gentext key="Seealso" text="Se &#228;ven"/>
+   <gentext key="seealso" text="Se &#228;ven"/>
+   <gentext key="TableofContents" text="Inneh&#229;llsf&#246;rteckning"/>
+   <gentext key="tableofcontents" text="Inneh&#229;llsf&#246;rteckning"/>
+   <gentext key="called" text="kallas"/>
+   <gentext key="in" text="i"/>
+   <gentext key="by" text="av"/>
+   <gentext key="Edited" text="Redigerad"/>
+   <gentext key="edited" text="Redigerad"/>
+   <gentext key="Editedby" text="Redigerad av"/>
+   <gentext key="editedby" text="Redigerad av"/>
+   <gentext key="and" text="och"/>
+   <gentext key="Notes" text="Noter"/>
+   <gentext key="notes" text="Noter"/>
+   <gentext key="TableNotes" text="Noter"/>
+   <gentext key="tablenotes" text="Noter"/>
+   <gentext key="nonexistantelement" text="non-existant element"/>
+   <gentext key="the" text=""/>
+   <gentext key="Pgs" text="Sid."/>
+   <gentext key="pgs" text="Sid."/>
+   <gentext key="unsupported" text="unsupported"/>
+   <gentext key="xrefto" text="xref till"/>
+   <gentext key="unexpectedelementname" text="Unexpected element name"/>
+   <gentext key="Revisedby" text="Reviderad av: "/>
+   <gentext key="revisedby" text="Reviderad av: "/>
+   <gentext key="ListofTables" text="Tabellf&#246;rteckning"/>
+   <gentext key="listoftables" text="Tabellf&#246;rteckning"/>
+   <gentext key="ListofExamples" text="Exempelf&#246;rteckning"/>
+   <gentext key="listofexamples" text="Exempelf&#246;rteckning"/>
+   <gentext key="ListofFigures" text="Figurf&#246;rteckning"/>
+   <gentext key="listoffigures" text="Figurf&#246;rteckning"/>
+   <gentext key="ListofEquations" text="Ekvationsf&#246;rteckning"/>
+   <gentext key="listofequations" text="Ekvationsf&#246;rteckning"/>
+   <gentext key="ListofUnknown" text="F&#246;rteckning av ok&#228;nda"/>
+   <gentext key="listofunknown" text="F&#246;rteckning av ok&#228;nda"/>
+   <gentext key="nav-prev" text="F&#246;reg&#229;ende"/>
+   <gentext key="nav-prev-sibling" text="Snabbt fram&#229;t"/>
+   <gentext key="nav-next-sibling" text="Snabbt bak&#229;t"/>
+   <gentext key="nav-next" text="N&#228;sta"/>
+   <gentext key="nav-up" text="Upp"/>
+   <gentext key="nav-home" text="Hem"/>
+   <dingbat key="startquote" text="&#8220;"/>
+   <dingbat key="endquote" text="&#8221;"/>
+   <dingbat key="nestedstartquote" text="&#8216;"/>
+   <dingbat key="nestedendquote" text="&#8217;"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="Appendix %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="Kapitel %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="Ekvation %n. %t"/>
+      <template name="example" text="Exempel %n. %t"/>
+      <template name="figure" text="Figur %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="Del %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="Tabell %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="Appendix %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="Kapitel %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="Exempel %n. %t"/>
+      <template name="figure" text="Figur %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="Del %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="Tabell %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="Avsnitt %n"/>
+      <template name="sect2" text="Avsnitt %n"/>
+      <template name="sect3" text="Avsnitt %n"/>
+      <template name="sect4" text="Avsnitt %n"/>
+      <template name="sect5" text="Avsnitt %n"/>
+      <template name="section" text="Avsnitt %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" och "/>
+      <template name="seplast" text=", och "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="Se "/>
+      <template name="seealso" text="Se &#196;ven "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="Niv&#229;: "/>
+      <template name="MsgOrig" text="Ursprung: "/>
+      <template name="MsgAud" text="M&#229;lgrupp: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/titles.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/titles.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/titles.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,335 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ============================================================ -->
+<!-- title markup -->
+
+<doc:mode mode="title.markup" xmlns="">
+<refpurpose>Provides access to element titles</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">title.markup</literal> mode produces the
+title of the element. This does not include the label.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="title">
+      <xsl:apply-templates select="title[1]" mode="title.markup">
+	<xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'partintro'">
+      <!-- partintro's don't have titles, use the parent (part or reference)
+           title instead. -->
+      <xsl:apply-templates select="parent::*" mode="title.markup"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Request for title of unexpected element: </xsl:text>
+	<xsl:value-of select="name(.)"/>
+      </xsl:message>
+      <xsl:text>???TITLE???</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="title" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="$allow-anchors != 0">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates mode="no.anchor.mode"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(setinfo/title|title)[1]"
+                       mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(bookinfo/title|title)[1]"
+                       mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(partinfo/title|docinfo/title|title)[1]"
+                       mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+
+<!--
+  <xsl:message>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$allow-anchors"/>
+  </xsl:message>
+-->
+
+  <xsl:variable name="title" select="(docinfo/title
+                                      |prefaceinfo/title
+                                      |chapterinfo/title
+                                      |appendixinfo/title
+                                      |title)[1]"/>
+  <xsl:apply-templates select="$title" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="dedication" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="title">
+      <xsl:apply-templates select="title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Dedication'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="colophon" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="title">
+      <xsl:apply-templates select="title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Colophon'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="title" select="(artheader/title
+                                      |articleinfo/title
+                                      |title)[1]"/>
+
+  <xsl:apply-templates select="$title" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="(referenceinfo/title|docinfo/title|title)[1]"
+                       mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="refmeta" select=".//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select=".//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="title.markup"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="title.markup"/>
+      </xsl:when>
+      <xsl:otherwise>REFENTRY WITHOUT TITLE???</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:copy-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="refentrytitle|refname" mode="title.markup">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="section
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3
+                     |simplesect"
+              mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="title" select="(sectioninfo/title
+                                      |sect1info/title
+                                      |sect2info/title
+                                      |sect3info/title
+                                      |sect4info/title
+                                      |sect5info/title
+                                      |refsect1info/title
+                                      |refsect2info/title
+                                      |refsect3info/title
+                                      |title)[1]"/>
+
+  <xsl:apply-templates select="$title" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="title" select="(bibliographyinfo/title|title)[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Bibliography'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="glossary" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="title" select="(glossaryinfo/title|title)[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.element.name">
+        <xsl:with-param name="element.name" select="name(.)"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="index" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="title" select="(indexinfo/title|title)[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Index'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:apply-templates select="title" mode="title.markup">
+    <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="abstract" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:choose>
+    <xsl:when test="title">
+      <xsl:apply-templates select="title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'Abstract'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="caution|tip|warning|important|note" mode="title.markup">
+  <xsl:param name="allow-anchors" select="'0'"/>
+  <xsl:variable name="title" select="title[1]"/>
+  <xsl:choose>
+    <xsl:when test="$title">
+      <xsl:apply-templates select="$title" mode="title.markup">
+        <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+      </xsl:apply-templates>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key">
+          <xsl:choose>
+            <xsl:when test="local-name(.)='note'">Note</xsl:when>
+            <xsl:when test="local-name(.)='important'">Important</xsl:when>
+            <xsl:when test="local-name(.)='caution'">Caution</xsl:when>
+            <xsl:when test="local-name(.)='warning'">Warning</xsl:when>
+            <xsl:when test="local-name(.)='tip'">Tip</xsl:when>
+          </xsl:choose>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="no.anchor.mode">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="footnote" mode="no.anchor.mode">
+  <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="anchor" mode="no.anchor.mode">
+  <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="ulink" mode="no.anchor.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="link" mode="no.anchor.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="olink" mode="no.anchor.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="no.anchor.mode">
+  <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="xref" mode="no.anchor.mode">
+  <!-- FIXME: this should generate the text without the link... -->
+</xsl:template>
+
+<!-- ============================================================ -->
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/zh_cn.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/zh_cn.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/zh_cn.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="zh_cn">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="Abstract" text="&#25688;&#35201;"/>
+   <gentext key="abstract" text="&#25688;&#35201;"/>
+   <gentext key="Answer" text="&#31572;:"/>
+   <gentext key="answer" text="&#31572;:"/>
+   <gentext key="Appendix" text="&#38468;&#24405;"/>
+   <gentext key="Article" text="&#25991;&#31456;"/>
+   <gentext key="article" text="&#25991;&#31456;"/>
+   <gentext key="Bibliography" text="&#21442;&#32771;&#20070;&#30446;"/>
+   <gentext key="bibliography" text="&#21442;&#32771;&#20070;&#30446;"/>
+   <gentext key="Book" text="&#20070;&#30446;"/>
+   <gentext key="book" text="&#20070;&#30446;"/>
+   <gentext key="CAUTION" text="&#27880;&#24847;"/>
+   <gentext key="caution" text="&#27880;&#24847;"/>
+   <gentext key="Caution" text="&#27880;&#24847;"/>
+   <gentext key="caution" text="&#27880;&#24847;"/>
+   <gentext key="Chapter" text="&#31456;"/>
+   <gentext key="Colophon" text="Colophon"/>
+   <gentext key="colophon" text="Colophon"/>
+   <gentext key="Copyright" text="&#29256;&#26435;"/>
+   <gentext key="copyright" text="&#29256;&#26435;"/>
+   <gentext key="Dedication" text="&#22857;&#29486;"/>
+   <gentext key="dedication" text="&#22857;&#29486;"/>
+   <gentext key="Edition" text="&#29256;"/>
+   <gentext key="edition" text="&#29256;"/>
+   <gentext key="Equation" text="&#26041;&#31243;"/>
+   <gentext key="equation" text="&#26041;&#31243;"/>
+   <gentext key="Example" text="&#20363;&#23376;"/>
+   <gentext key="example" text="&#20363;&#23376;"/>
+   <gentext key="Figure" text="&#22270;&#24418;"/>
+   <gentext key="figure" text="&#22270;&#24418;"/>
+   <gentext key="GlossSee" text="&#35265;"/>
+   <gentext key="glosssee" text="&#35265;"/>
+   <gentext key="GlossSeeAlso" text="&#21478;&#35265;"/>
+   <gentext key="glossseealso" text="&#21478;&#35265;"/>
+   <gentext key="Glossary" text="&#26415;&#35821;&#34920;"/>
+   <gentext key="glossary" text="&#26415;&#35821;&#34920;"/>
+   <gentext key="IMPORTANT" text="&#37325;&#35201;"/>
+   <gentext key="important" text="&#37325;&#35201;"/>
+   <gentext key="ISBN" text="ISBN"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="Important" text="&#37325;&#35201;"/>
+   <gentext key="important" text="&#37325;&#35201;"/>
+   <gentext key="Index" text="&#32034;&#24341;"/>
+   <gentext key="index" text="&#32034;&#24341;"/>
+   <gentext key="LegalNotice" text="&#27861;&#24459;&#24067;&#21578;"/>
+   <gentext key="legalnotice" text="&#27861;&#24459;&#24067;&#21578;"/>
+   <gentext key="MsgAud" text="&#35835;&#32773;"/>
+   <gentext key="msgaud" text="&#35835;&#32773;"/>
+   <gentext key="MsgLevel" text="&#38590;&#24230;"/>
+   <gentext key="msglevel" text="&#38590;&#24230;"/>
+   <gentext key="MsgOrig" text="&#20986;&#22788;"/>
+   <gentext key="msgorig" text="&#20986;&#22788;"/>
+   <gentext key="NOTE" text="&#27880;"/>
+   <gentext key="note" text="&#27880;"/>
+   <gentext key="Note" text="&#27880;"/>
+   <gentext key="note" text="&#27880;"/>
+   <gentext key="Part" text="&#37096;&#20998;"/>
+   <gentext key="part" text="&#37096;&#20998;"/>
+   <gentext key="Preface" text="&#21069;&#35328;"/>
+   <gentext key="preface" text="&#21069;&#35328;"/>
+   <gentext key="Procedure" text="&#36807;&#31243;"/>
+   <gentext key="procedure" text="&#36807;&#31243;"/>
+   <gentext key="Published" text="&#20986;&#29256;"/>
+   <gentext key="published" text="&#20986;&#29256;"/>
+   <gentext key="Question" text="&#38382;:"/>
+   <gentext key="question" text="&#38382;:"/>
+   <gentext key="RefEntry" text=""/>
+   <gentext key="refentry" text=""/>
+   <gentext key="Reference" text="&#21442;&#32771;"/>
+   <gentext key="reference" text="&#21442;&#32771;"/>
+   <gentext key="RefName" text="&#21517;&#23383;"/>
+   <gentext key="refname" text="&#21517;&#23383;"/>
+   <gentext key="RefSection" text=""/>
+   <gentext key="refsection" text=""/>
+   <gentext key="RefSynopsisDiv" text="&#22823;&#32434;"/>
+   <gentext key="refsynopsisdiv" text="&#22823;&#32434;"/>
+   <gentext key="Revision" text="&#20462;&#35746;"/>
+   <gentext key="revision" text="&#20462;&#35746;"/>
+   <gentext key="RevHistory" text="&#20462;&#35746;&#21382;&#21490;"/>
+   <gentext key="revhistory" text="&#20462;&#35746;&#21382;&#21490;"/>
+   <gentext key="Section" text="&#33410;"/>
+   <gentext key="See" text="&#35265;"/>
+   <gentext key="see" text="&#35265;"/>
+   <gentext key="SeeAlso" text="&#21478;&#35265;"/>
+   <gentext key="seealso" text="&#21478;&#35265;"/>
+   <gentext key="Set" text="Set"/>
+   <gentext key="set" text="Set"/>
+   <gentext key="SetIndex" text="Set Index"/>
+   <gentext key="setindex" text="Set Index"/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="Step" text="&#27493;&#39588;"/>
+   <gentext key="TIP" text="&#25552;&#31034;"/>
+   <gentext key="tip" text="&#25552;&#31034;"/>
+   <gentext key="Table" text="&#34920;&#26684;"/>
+   <gentext key="table" text="&#34920;&#26684;"/>
+   <gentext key="Tip" text="&#25552;&#31034;"/>
+   <gentext key="tip" text="&#25552;&#31034;"/>
+   <gentext key="WARNING" text="&#35686;&#21578;"/>
+   <gentext key="warning" text="&#35686;&#21578;"/>
+   <gentext key="Warning" text="&#35686;&#21578;"/>
+   <gentext key="warning" text="&#35686;&#21578;"/>
+   <gentext key="appendix" text="&#38468;&#24405;"/>
+   <gentext key="chapter" text="&#31456;"/>
+   <gentext key="section" text="&#33410;"/>
+   <gentext key="sidebar" text="sidebar"/>
+   <gentext key="step" text="&#27493;&#39588;"/>
+   <gentext key="Seealso" text="&#21478;&#35265;"/>
+   <gentext key="seealso" text="&#21478;&#35265;"/>
+   <gentext key="TableofContents" text="&#30446;&#24405;"/>
+   <gentext key="tableofcontents" text="&#30446;&#24405;"/>
+   <gentext key="in" text="&#22312;"/>
+   <gentext key="by" text="&#30001;"/>
+   <gentext key="Edited" text="&#32534;&#36753;"/>
+   <gentext key="edited" text="&#32534;&#36753;"/>
+   <gentext key="Editedby" text="&#32534;&#36753;"/>
+   <gentext key="editedby" text="&#32534;&#36753;"/>
+   <gentext key="and" text="&#21644;"/>
+   <gentext key="Notes" text="&#27880;"/>
+   <gentext key="notes" text="&#27880;"/>
+   <gentext key="TableNotes" text="&#27880;"/>
+   <gentext key="tablenotes" text="&#27880;"/>
+   <gentext key="nonexistantelement" text="&#19981;&#23384;&#22312;&#30340;&#20803;&#32032;"/>
+   <gentext key="Pgs" text="&#39029;"/>
+   <gentext key="pgs" text="&#39029;"/>
+   <gentext key="unsupported" text="&#19981;&#25903;&#25345;"/>
+   <gentext key="xrefto" text="&#21442;&#29031;"/>
+   <gentext key="unexpectedelementname" text="&#26410;&#39044;&#26009;&#21040;&#30340;&#20803;&#32032;&#21517;"/>
+   <gentext key="Revisedby" text="&#20462;&#35746;"/>
+   <gentext key="revisedby" text="&#20462;&#35746;"/>
+   <gentext key="ListofTables" text="&#34920;&#26684;&#21015;&#34920;"/>
+   <gentext key="listoftables" text="&#34920;&#26684;&#21015;&#34920;"/>
+   <gentext key="ListofExamples" text="&#31034;&#20363;&#21015;&#34920;"/>
+   <gentext key="listofexamples" text="&#31034;&#20363;&#21015;&#34920;"/>
+   <gentext key="ListofFigures" text="&#22270;&#24418;&#21015;&#34920;"/>
+   <gentext key="listoffigures" text="&#22270;&#24418;&#21015;&#34920;"/>
+   <gentext key="ListofEquations" text="&#26041;&#31243;&#24335;&#21015;&#34920;"/>
+   <gentext key="listofequations" text="&#26041;&#31243;&#24335;&#21015;&#34920;"/>
+   <gentext key="ListofUnknown" text="&#20854;&#20182;&#20869;&#23481;&#21015;&#34920;"/>
+   <gentext key="listofunknown" text="&#20854;&#20182;&#20869;&#23481;&#21015;&#34920;"/>
+   <gentext key="nav-prev" text="&#21518;&#36864;"/>
+   <gentext key="nav-prev-sibling" text="&#24555;&#36895;&#21518;&#36864;"/>
+   <gentext key="nav-next-sibling" text="&#24555;&#36895;&#21069;&#36827;"/>
+   <gentext key="nav-next" text="&#21069;&#36827;"/>
+   <gentext key="nav-up" text="&#19978;&#19968;&#32423;"/>
+   <gentext key="nav-home" text="&#36215;&#28857;"/>
+   <dingbat key="startquote" text="&#34;"/>
+   <dingbat key="endquote" text="&#34;"/>
+   <dingbat key="nestedstartquote" text="'"/>
+   <dingbat key="nestedendquote" text="'"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="&#38468;&#24405; %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="&#31456; %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="&#26041;&#31243; %n. %t"/>
+      <template name="example" text="&#20363;&#23376; %n. %t"/>
+      <template name="figure" text="&#22270;&#24418; %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="&#37096;&#20998; %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="&#34920;&#26684; %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="&#38468;&#24405; %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="&#31456; %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="&#20363;&#23376; %n. %t"/>
+      <template name="figure" text="&#22270;&#24418; %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="&#37096;&#20998; %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="&#34920;&#26684; %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="&#33410; %n"/>
+      <template name="sect2" text="&#33410; %n"/>
+      <template name="sect3" text="&#33410; %n"/>
+      <template name="sect4" text="&#33410; %n"/>
+      <template name="sect5" text="&#33410; %n"/>
+      <template name="section" text="&#33410; %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" &#21644; "/>
+      <template name="seplast" text=", &#21644; "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="&#35265; "/>
+      <template name="seealso" text="&#21478;&#35265; "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="&#38590;&#24230;: "/>
+      <template name="MsgOrig" text="&#20986;&#22788;: "/>
+      <template name="MsgAud" text="&#35835;&#32773;: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/zh_tw.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/zh_tw.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/common/zh_tw.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<localization language="zh_tw">
+
+<!-- This file is generated automatically. -->
+<!-- Do not edit this file by hand! -->
+<!-- See http://docbook.sourceforge.net/ -->
+
+   <gentext key="abstract" text="&#25688;&#35201;"/>
+   <gentext key="Abstract" text="&#25688;&#35201;"/>
+   <gentext key="Answer" text="&#31572;&#65306;"/>
+   <gentext key="answer" text="&#31572;&#65306;"/>
+   <gentext key="Appendix" text="&#38468;&#37636;"/>
+   <gentext key="appendix" text="&#38468;&#37636;"/>
+   <gentext key="article" text="&#25991;&#31456;"/>
+   <gentext key="Article" text="&#25991;&#31456;"/>
+   <gentext key="Bibliography" text="&#21443;&#32771;&#25991;&#29563;"/>
+   <gentext key="bibliography" text="&#21443;&#32771;&#25991;&#29563;"/>
+   <gentext key="book" text="&#26360;&#30446;"/>
+   <gentext key="Book" text="&#26360;&#30446;"/>
+   <gentext key="caution" text="&#27880;&#24847;"/>
+   <gentext key="Caution" text="&#27880;&#24847;"/>
+   <gentext key="Chapter" text="&#31456;"/>
+   <gentext key="chapter" text="&#31456;"/>
+   <gentext key="colophon" text="&#29256;&#26412;&#35352;&#37636;"/>
+   <gentext key="Colophon" text="&#29256;&#26412;&#35352;&#37636;"/>
+   <gentext key="copyright" text="&#29256;&#27402;"/>
+   <gentext key="Copyright" text="&#29256;&#27402;"/>
+   <gentext key="dedication" text="&#22857;&#29563;"/>
+   <gentext key="Dedication" text="&#22857;&#29563;"/>
+   <gentext key="Edition" text="&#29256;"/>
+   <gentext key="edition" text="&#29256;"/>
+   <gentext key="Equation" text="&#26041;&#31243;&#24335;"/>
+   <gentext key="equation" text="&#26041;&#31243;&#24335;"/>
+   <gentext key="Example" text="&#31684;&#20363;"/>
+   <gentext key="example" text="&#31684;&#20363;"/>
+   <gentext key="Figure" text="&#22294;&#24418;"/>
+   <gentext key="figure" text="&#22294;&#24418;"/>
+   <gentext key="Glossary" text="&#23567;&#36781;&#24409;"/>
+   <gentext key="glossary" text="&#23567;&#36781;&#24409;"/>
+   <gentext key="GlossSee" text="&#21443;&#35211;"/>
+   <gentext key="glosssee" text="&#21443;&#35211;"/>
+   <gentext key="GlossSeeAlso" text="&#21478;&#21443;&#35211;"/>
+   <gentext key="glossseealso" text="&#21478;&#21443;&#35211;"/>
+   <gentext key="Important" text="&#37325;&#35201;"/>
+   <gentext key="important" text="&#37325;&#35201;"/>
+   <gentext key="index" text="&#32034;&#24341;"/>
+   <gentext key="Index" text="&#32034;&#24341;"/>
+   <gentext key="isbn" text="ISBN"/>
+   <gentext key="legalnotice" text="&#27861;&#24459;&#32882;&#26126;"/>
+   <gentext key="LegalNotice" text="&#27861;&#24459;&#32882;&#26126;"/>
+   <gentext key="MsgAud" text="&#35712;&#32773;"/>
+   <gentext key="msgaud" text="&#35712;&#32773;"/>
+   <gentext key="MsgLevel" text="&#31243;&#24230;"/>
+   <gentext key="msglevel" text="&#31243;&#24230;"/>
+   <gentext key="MsgOrig" text="&#20986;&#34389;"/>
+   <gentext key="msgorig" text="&#20986;&#34389;"/>
+   <gentext key="Note" text="&#27880;"/>
+   <gentext key="note" text="&#27880;"/>
+   <gentext key="Part" text="&#37096;"/>
+   <gentext key="part" text="&#37096;"/>
+   <gentext key="preface" text="&#24207;&#35328;"/>
+   <gentext key="Preface" text="&#24207;&#35328;"/>
+   <gentext key="procedure" text="&#36942;&#31243;"/>
+   <gentext key="Procedure" text="&#36942;&#31243;"/>
+   <gentext key="published" text="&#20986;&#29256;"/>
+   <gentext key="Published" text="&#20986;&#29256;"/>
+   <gentext key="Question" text="&#21839;&#65306;"/>
+   <gentext key="question" text="&#21839;&#65306;"/>
+   <gentext key="RefEntry" text="&#21443;&#29031;&#38917;&#30446;"/>
+   <gentext key="refentry" text="&#21443;&#29031;&#38917;&#30446;"/>
+   <gentext key="reference" text="&#21443;&#32771;"/>
+   <gentext key="Reference" text="&#21443;&#32771;"/>
+   <gentext key="refname" text="&#21443;&#32771;&#21517;"/>
+   <gentext key="RefName" text="&#21443;&#32771;&#21517;"/>
+   <gentext key="refsection" text="&#21443;&#29031;&#31456;&#31680;"/>
+   <gentext key="RefSection" text="&#21443;&#29031;&#31456;&#31680;"/>
+   <gentext key="refsynopsisdiv" text="&#22823;&#32177;"/>
+   <gentext key="RefSynopsisDiv" text="&#22823;&#32177;"/>
+   <gentext key="revhistory" text="&#20462;&#35330;&#35352;&#37636;"/>
+   <gentext key="RevHistory" text="&#20462;&#35330;&#35352;&#37636;"/>
+   <gentext key="revision" text="&#20462;&#35330;"/>
+   <gentext key="Revision" text="&#20462;&#35330;"/>
+   <gentext key="Section" text="&#31680;"/>
+   <gentext key="section" text="&#31680;"/>
+   <gentext key="See" text="&#35211;"/>
+   <gentext key="see" text="&#35211;"/>
+   <gentext key="seealso" text="&#21478;&#35211;"/>
+   <gentext key="SeeAlso" text="&#21478;&#35211;"/>
+   <gentext key="Seealso" text="&#21478;&#35211;"/>
+   <gentext key="set" text="Set"/>
+   <gentext key="Set" text="Set"/>
+   <gentext key="setindex" text="Set Index"/>
+   <gentext key="SetIndex" text="Set Index"/>
+   <gentext key="sidebar" text=""/>
+   <gentext key="Sidebar" text=""/>
+   <gentext key="step" text="&#27493;&#39519;"/>
+   <gentext key="Table" text="&#34920;&#26684;"/>
+   <gentext key="table" text="&#34920;&#26684;"/>
+   <gentext key="tip" text="&#25552;&#31034;"/>
+   <gentext key="Tip" text="&#25552;&#31034;"/>
+   <gentext key="warning" text="&#35686;&#21578;"/>
+   <gentext key="Warning" text="&#35686;&#21578;"/>
+   <gentext key="TableofContents" text="&#20839;&#23481;&#30446;&#37636;"/>
+   <gentext key="in" text="&#22312;"/>
+   <gentext key="by" text="&#30001;"/>
+   <gentext key="Edited" text="&#32232;&#36655;"/>
+   <gentext key="Editedby" text="&#32232;&#36655;"/>
+   <gentext key="and" text="&#19988;"/>
+   <gentext key="Notes" text="&#27880;"/>
+   <gentext key="TableNotes" text="&#27880;&#37323;"/>
+   <gentext key="nonexistantelement" text="&#19981;&#23384;&#22312;&#30340;&#20803;&#32032;"/>
+   <gentext key="Pgs" text="&#38913;"/>
+   <gentext key="page.citation" text="&#38913;"/>
+   <gentext key="unsupported" text="&#26410;&#25903;&#25588;"/>
+   <gentext key="xrefto" text="&#21443;&#29031;"/>
+   <gentext key="unexpectedelementname" text="&#38750;&#38928;&#26399;&#30340;&#20803;&#32032;&#21517;"/>
+   <gentext key="Revisedby" text="&#20462;&#35330;"/>
+   <gentext key="ListofTables" text="&#38468;&#34920;&#30446;&#37636;"/>
+   <gentext key="ListofExamples" text="&#31684;&#20363;&#30446;&#37636;"/>
+   <gentext key="ListofFigures" text="&#38468;&#22294;&#30446;&#37636;"/>
+   <gentext key="ListofEquations" text="&#20844;&#24335;&#30446;&#37636;"/>
+   <gentext key="ListofUnknown" text="&#20854;&#23427;&#20839;&#23481;&#30446;&#37636;"/>
+   <gentext key="nav-prev" text="&#21069;&#19968;&#38913;"/>
+   <gentext key="nav-prev-sibling" text="&#24555;&#36895;&#21521;&#21069;"/>
+   <gentext key="nav-next-sibling" text="&#24555;&#36895;&#21521;&#24460;"/>
+   <gentext key="nav-next" text="&#19979;&#19968;&#38913;"/>
+   <gentext key="nav-up" text="&#19978;&#19968;&#23652;"/>
+   <gentext key="nav-home" text="&#20839;&#23481;"/>
+   <dingbat key="startquote" text="&#34;"/>
+   <dingbat key="endquote" text="&#34;"/>
+   <dingbat key="nestedstartquote" text="'"/>
+   <dingbat key="nestedendquote" text="'"/>
+   <dingbat key="bullet" text="&#8226;"/>
+
+   <context name="title">
+      <template name="abstract" text="%t"/>
+      <template name="appendix" text="&#38468;&#37636; %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="authorblurb" text="%t"/>
+      <template name="bibliodiv" text="%t"/>
+      <template name="biblioentry" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="bibliomixed" text="%t"/>
+      <template name="bibliomset" text="%t"/>
+      <template name="biblioset" text="%t"/>
+      <template name="blockquote" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="calloutlist" text="%t"/>
+      <template name="caution" text="%t"/>
+      <template name="chapter" text="&#31456; %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="equation" text="&#26041;&#31243;&#24335; %n. %t"/>
+      <template name="example" text="&#31684;&#20363; %n. %t"/>
+      <template name="figure" text="&#22294;&#24418; %n. %t"/>
+      <template name="formalpara" text="%t"/>
+      <template name="glossary" text="%t"/>
+      <template name="glossdiv" text="%t"/>
+      <template name="important" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="indexdiv" text="%t"/>
+      <template name="itemizedlist" text="%t"/>
+      <template name="legalnotice" text="%t"/>
+      <template name="lot" text="%t"/>
+      <template name="msg" text="%t"/>
+      <template name="msgexplan" text="%t"/>
+      <template name="msgmain" text="%t"/>
+      <template name="msgrel" text="%t"/>
+      <template name="msgset" text="%t"/>
+      <template name="msgsub" text="%t"/>
+      <template name="note" text="%t"/>
+      <template name="orderedlist" text="%t"/>
+      <template name="part" text="&#37096; %n. %t"/>
+      <template name="partintro" text="%t"/>
+      <template name="preface" text="%t"/>
+      <template name="procedure" text="%t"/>
+      <template name="qandadiv" text="%t"/>
+      <template name="qandaset" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="refsect1" text="%t"/>
+      <template name="refsect2" text="%t"/>
+      <template name="refsect3" text="%t"/>
+      <template name="refsynopsisdiv" text="%t"/>
+      <template name="refsynopsisdivinfo" text="%t"/>
+      <template name="segmentedlist" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="sidebar" text="%t"/>
+      <template name="step" text="%t"/>
+      <template name="table" text="&#34920;&#26684; %n. %t"/>
+      <template name="tip" text="%t"/>
+      <template name="toc" text="%t"/>
+      <template name="variablelist" text="%t"/>
+      <template name="warning" text="%t"/>
+   </context>
+
+   <context name="section-title">
+      <template name="sect1" text="%t"/>
+      <template name="sect2" text="%t"/>
+      <template name="sect3" text="%t"/>
+      <template name="sect4" text="%t"/>
+      <template name="sect5" text="%t"/>
+      <template name="section" text="%t"/>
+      <template name="simplesect" text="%t"/>
+   </context>
+
+   <context name="section-title-numbered">
+      <template name="sect1" text="%n. %t"/>
+      <template name="sect2" text="%n. %t"/>
+      <template name="sect3" text="%n. %t"/>
+      <template name="sect4" text="%n. %t"/>
+      <template name="sect5" text="%n. %t"/>
+      <template name="section" text="%n. %t"/>
+      <template name="simplesect" text="%n. %t"/>
+   </context>
+
+   <context name="subtitle">
+      <template name="appendix" text="%s"/>
+      <template name="article" text="%s"/>
+      <template name="bibliodiv" text="%s"/>
+      <template name="biblioentry" text="%s"/>
+      <template name="bibliography" text="%s"/>
+      <template name="bibliomixed" text="%s"/>
+      <template name="bibliomset" text="%s"/>
+      <template name="biblioset" text="%s"/>
+      <template name="book" text="%s"/>
+      <template name="chapter" text="%s"/>
+      <template name="colophon" text="%s"/>
+      <template name="dedication" text="%s"/>
+      <template name="glossary" text="%s"/>
+      <template name="glossdiv" text="%s"/>
+      <template name="index" text="%s"/>
+      <template name="indexdiv" text="%s"/>
+      <template name="lot" text="%s"/>
+      <template name="part" text="%s"/>
+      <template name="partintro" text="%s"/>
+      <template name="preface" text="%s"/>
+      <template name="refentry" text="%s"/>
+      <template name="reference" text="%s"/>
+      <template name="refsect1" text="%s"/>
+      <template name="refsect2" text="%s"/>
+      <template name="refsect3" text="%s"/>
+      <template name="refsynopsisdiv" text="%s"/>
+      <template name="sect1" text="%s"/>
+      <template name="sect2" text="%s"/>
+      <template name="sect3" text="%s"/>
+      <template name="sect4" text="%s"/>
+      <template name="sect5" text="%s"/>
+      <template name="section" text="%s"/>
+      <template name="set" text="%s"/>
+      <template name="setindex" text="%s"/>
+      <template name="sidebar" text="%s"/>
+      <template name="simplesect" text="%s"/>
+      <template name="toc" text="%s"/>
+   </context>
+
+   <context name="xref">
+      <template name="appendix" text="&#38468;&#37636; %n. %t"/>
+      <template name="article" text="%t"/>
+      <template name="bibliography" text="%t"/>
+      <template name="book" text="%t"/>
+      <template name="chapter" text="&#31456; %n. %t"/>
+      <template name="colophon" text="%t"/>
+      <template name="dedication" text="%t"/>
+      <template name="example" text="&#31684;&#20363; %n. %t"/>
+      <template name="figure" text="&#22294;&#24418; %n. %t"/>
+      <template name="glossary" text="%t"/>
+      <template name="index" text="%t"/>
+      <template name="part" text="&#37096; %n. %t"/>
+      <template name="preface" text="%t"/>
+      <template name="reference" text="%t"/>
+      <template name="set" text="%t"/>
+      <template name="setindex" text="%t"/>
+      <template name="table" text="&#34920;&#26684; %n. %t"/>
+   </context>
+
+   <context name="section-xref">
+      <template name="sect1" text="&#8220;%t&#8221;"/>
+      <template name="sect2" text="&#8220;%t&#8221;"/>
+      <template name="sect3" text="&#8220;%t&#8221;"/>
+      <template name="sect4" text="&#8220;%t&#8221;"/>
+      <template name="sect5" text="&#8220;%t&#8221;"/>
+      <template name="section" text="&#8220;%t&#8221;"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="section-xref-numbered">
+      <template name="sect1" text="&#31680; %n"/>
+      <template name="sect2" text="&#31680; %n"/>
+      <template name="sect3" text="&#31680; %n"/>
+      <template name="sect4" text="&#31680; %n"/>
+      <template name="sect5" text="&#31680; %n"/>
+      <template name="section" text="&#31680; %n"/>
+      <template name="simplesect" text="&#8220;%t&#8221;"/>
+   </context>
+
+   <context name="authorgroup">
+      <template name="sep" text=","/>
+      <template name="sep2" text=" &#19988; "/>
+      <template name="seplast" text=", &#19988; "/>
+   </context>
+
+   <context name="glossary">
+      <template name="see" text="&#21443;&#35211; "/>
+      <template name="seealso" text="&#21478;&#21443;&#35211; "/>
+   </context>
+
+   <context name="msgset">
+      <template name="MsgLevel" text="&#31243;&#24230;: "/>
+      <template name="MsgOrig" text="&#20986;&#34389;: "/>
+      <template name="MsgAud" text="&#35712;&#32773;: "/>
+   </context>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+2001-04-15  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* reference.css: New file.
+
+2001-04-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* .cvsignore, Makefile, book.xsl, jrefhtml.xsl, reference.xsl: 
+	New file.
+
+	* Makefile: Misc. cleanup in preparation for making a distrib
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/book.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/book.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/book.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:import href="../html/chunk.xsl"/>
+
+<xsl:param name="toc.section.depth" select="'1'"/>
+
+<xsl:param name="html.stylesheet" select="'reference.css'"/>
+
+<xsl:template match="olink[@type='title']">
+  <xsl:variable name="xml"
+                select="document(unparsed-entity-uri(@targetdocent))"/>
+  <xsl:variable name="title" select="($xml/*/title[1]
+                                      |$xml/*/bookinfo/title[1]
+                                      |$xml/*/referenceinfo/title[1])[1]"/>
+  <i>
+    <a href="{@localinfo}">
+      <xsl:apply-templates select="$title/*|$title/text()"/>
+    </a>
+  </i>
+</xsl:template>
+
+<xsl:template match="bookinfo/copyright|reference/copyright"
+              mode="titlepage.mode">
+  <xsl:variable name="years" select="year"/>
+  <xsl:variable name="holders" select="holder"/>
+
+  <p class="{name(.)}">
+    <a href="copyright.html">
+      <xsl:call-template name="gentext.element.name"/>
+    </a>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">copyright</xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$years" mode="titlepage.mode"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="gentext.by"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$holders" mode="titlepage.mode"/>
+    <xsl:text>. </xsl:text>
+    <a href="warranty.html">No Warranty</a>
+    <xsl:text>.</xsl:text>
+  </p>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s02.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s02.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s02.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,67 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>A brief introduction to XSL</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"><link rel="home" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="up" href="publishing.html" title="Chapter 1. DocBook XSL"><link rel="previous" href="publishing.html" title="Chapter 1. DocBook XSL"><link rel="next" href="ch01s03.html" title="XSL processing model"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">A brief introduction to XSL</th></tr><tr><td width="20%" align="left"><a href="publishing.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 1. DocBook XSL</th><td width="20%" align="right">&nbsp;<a href="ch01s03.html">Next</a></td></tr></table><hr></div><p>XSL is both a transformation language and a
+ formatting language. The XSLT transformation part lets you
+ scan through a document's structure and rearrange its
+ content any way you like. You can write out the content
+ using a different set of XML tags, and generate text as
+ needed. For example, you can scan through a document to
+ locate all headings and then insert a generated table of
+ contents at the beginning of the document, at the same time
+ writing out the content marked up as HTML. XSL is also a
+ rich formatting language, letting you apply typesetting
+ controls to all components of your output. With a good
+ formatting backend, it is capable of producing high quality
+ printed pages.</p><p>An XSL stylesheet is written using XML syntax, and is
+ itself a well-formed XML document. That makes the basic
+ syntax familiar, and enables an XML processor to check for
+ basic syntax errors. The stylesheet instructions use
+ special element names, which typically begin with
+ <tt>xsl:</tt> to distinguish them from any XML
+ tags you want to appear in the output. The XSL namespace is
+ identified at the top of the stylesheet file. As with other
+ XML, any XSL elements that are not empty will require a
+ closing tag. And some XSL elements have specific attributes
+ that control their behavior. It helps to keep a good XSL
+ reference book handy.</p><p>Here is an example of a simple XSL stylesheet applied
+ to a simple XML file to generate HTML output.</p><div class="example"><p><a name="c44b1b3b5b5"></a><b>Example 1.1. Simple XML file</b></p><pre class="programlisting">&lt;?xml version="1.0"?&gt;
+&lt;document&gt;
+&lt;title&gt;Using a mouse&lt;/title&gt;
+&lt;para&gt;It's easy to use a mouse. Just roll it
+around and click the buttons.&lt;/para&gt;
+&lt;/document&gt;</pre></div><div class="example"><p><a name="c44b1b3b5b6"></a><b>Example 1.2. Simple XSL stylesheet</b></p><pre class="programlisting">&lt;?xml version='1.0'?&gt;
+&lt;xsl:stylesheet
+          xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'&gt;
+&lt;xsl:output method="html"/&gt;
+
+&lt;xsl:template match="document"&gt;
+  &lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;
+    &lt;xsl:value-of select="./title"/&gt;
+  &lt;/TITLE&gt;
+  &lt;/HEAD&gt;
+  &lt;BODY&gt;
+    &lt;xsl:apply-templates/&gt;
+  &lt;/BODY&gt;
+  &lt;/HTML&gt;
+&lt;/xsl:template&gt;
+
+&lt;xsl:template match="title"&gt;
+  &lt;H1&gt;&lt;xsl:apply-templates/&gt;&lt;/H1&gt;
+&lt;/xsl:template&gt;
+
+&lt;xsl:template match="para"&gt;
+  &lt;P&gt;&lt;xsl:apply-templates/&gt;&lt;/P&gt;
+&lt;/xsl:template&gt;
+
+&lt;/xsl:stylesheet&gt;
+</pre></div><div class="example"><p><a name="c44b1b3b5b7"></a><b>Example 1.3. HTML output</b></p><pre class="programlisting">&lt;HTML&gt;
+&lt;HEAD&gt;
+&lt;TITLE&gt;Using a mouse&lt;/TITLE&gt;
+&lt;/HEAD&gt;
+&lt;BODY&gt;
+&lt;H1&gt;Using a mouse&lt;/H1&gt;
+&lt;P&gt;It's easy to use a mouse. Just roll it
+around and click the buttons.&lt;/P&gt;
+&lt;/BODY&gt;
+&lt;/HTML&gt;
+</pre></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="publishing.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a href="ch01s03.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 1. DocBook XSL&nbsp;</td><td width="20%" align="center"><a href="publishing.html">Up</a></td><td width="40%" align="right">&nbsp;XSL processing model</td></tr></table></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s03.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s03.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s03.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,422 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>XSL processing model</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"><link rel="home" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="up" href="publishing.html" title="Chapter 1. DocBook XSL"><link rel="previous" href="ch01s02.html" title="A brief introduction to XSL"><link rel="next" href="ch01s04.html" title="Customizing DocBook XSL stylesheets"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">XSL processing model</th></tr><tr><td width="20%" align="left"><a href="ch01s02.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 1. DocBook XSL</th><td width="20%" align="right">&nbsp;<a href="ch01s04.html">Next</a></td></tr></table><hr></div><p>XSL is a template language, not a procedural
+language. That means a stylesheet specifies a sample of the
+output, not a sequence of programming steps to generate it.
+A stylesheet consists of a mixture of output samples with
+instructions of what to put in each sample. Each bit of
+output sample and instructions is called
+a  <i>template</i>.</p><p>In general, you write a template for each element
+type in your document. That lets you concentrate on
+handling just one element at a time, and keeps a stylesheet
+modular. The power of XSL comes from processing the
+templates recursively. That is, each template handles the
+processing of its own element, and then calls other
+templates to process its children, and so on. Since an XML
+document is always a single root element at the top level
+that contains all of the nested descendent elements, the
+XSL templates also start at the top and work their way down
+through the hierarchy of elements.</p><p>Take the
+DocBook <tt>&lt;para&gt;</tt> paragraph element as
+an example. To convert this to HTML, you want to wrap the
+paragraph content with the HTML
+tags <tt>&lt;p&gt;</tt> and <tt>&lt;/p&gt;</tt>.
+But a DocBook <tt>&lt;para&gt;</tt>  can contain
+any number of in-line DocBook elements marking up the text.
+Fortunately, you can let other templates take care of those
+elements, so your XSL template
+for <tt>&lt;para&gt;</tt> can be quite
+simple:</p><pre class="programlisting">&lt;xsl:template match="para"&gt;
+  &lt;p&gt;
+    &lt;xsl:apply-templates/&gt;
+  &lt;/p&gt;
+&lt;/xsl:template&gt;
+</pre><p>The <tt>&lt;xsl:template&gt;</tt> element
+starts a new template, and
+its <tt>match</tt> attribute indicates where to
+apply the template, in this case to
+any <tt>&lt;para&gt;</tt> elements. The template
+says to output a literal <tt>&lt;p&gt;</tt> string
+and then execute
+the <tt>&lt;xsl:apply-templates/&gt;</tt> instruction.
+This tells the XSL processor to look among all the
+templates in the stylesheet for any that should be applied
+to the content of the paragraph. If each template in the
+stylesheet includes
+an <tt>&lt;xsl:apply-templates/&gt;</tt> instruction,
+then all descendents will eventually be processed. When it
+is through recursively applying templates to the paragraph
+content, it outputs the <tt>&lt;/p&gt;</tt> closing
+tag.</p><div class="sect2"><a name="c44b1b3b6b7"></a><div class="titlepage"><div><h3 class="title"><a name="c44b1b3b6b7"></a>Context is important</h3></div></div><p>Since you aren't writing a linear procedure to
+process your document, the context of where and how to
+apply each modular template is important.
+The <tt>match</tt> attribute
+of <tt>&lt;xsl:template&gt;</tt> provides that
+context for most templates. There is an entire expression
+language, XPath, for identifying what parts of your
+document should be handled by each template. The simplest
+context is just an element name, as in the example above.
+But you can also specify elements as children of other
+elements, elements with certain attribute values, the first
+or last elements in a sequence, and so on. Here is how the
+DocBook <tt>&lt;formalpara&gt;</tt> element is
+handled:</p><pre class="programlisting">&lt;xsl:template match="formalpara"&gt;
+  &lt;p&gt;
+    &lt;xsl:apply-templates/&gt;
+  &lt;/p&gt;
+&lt;/xsl:template&gt;
+
+&lt;xsl:template match="formalpara/title"&gt;
+  &lt;b&gt;&lt;xsl:apply-templates/&gt;&lt;/b&gt;
+  &lt;xsl:text&gt; &lt;/xsl:text&gt;
+&lt;/xsl:template&gt;
+
+&lt;xsl:template match="formalpara/para"&gt;
+  &lt;xsl:apply-templates/&gt;
+&lt;/xsl:template&gt;
+</pre><p>There are three templates defined, one for
+the <tt>&lt;formalpara&gt;</tt> element itself,
+ and one for each of its children elements. The <tt>match</tt> attribute
+value <tt>formalpara/title</tt>    in the second
+template is an XPath expression indicating
+a <tt>&lt;title&gt;</tt> element that is an
+immediate child of
+a <tt>&lt;formalpara&gt;</tt> element. This
+distinguishes such titles from
+other <tt>&lt;title&gt;</tt> elements used in
+DocBook. XPath expressions are the key to controlling how
+your templates are applied.</p><p>In general, the XSL processor has internal rules that
+apply templates that are more specific before templates
+that are less specific. That lets you control the details,
+but also provides a fallback mechanism to a less specific
+template when you don't supply the full context for every
+combination of elements. This feature is illustrated by the
+third template, for <tt>formalpara/para</tt>. By
+including this template, the stylesheet processes a <tt>&lt;para&gt;</tt> within <tt>&lt;formalpara&gt;</tt> in
+a special way, in this case by not outputting the HTML <tt>&lt;p&gt;</tt> tags already output by its parent. If this template had not been included, then the processor would have fallen back to the template
+specified by <tt>match="para"</tt> described
+above, which would have output a second set of <tt>&lt;p&gt;</tt> tags.</p><p>You can also control template context with
+XSL <i>modes</i>, which are used extensively
+in the DocBook stylesheets. Modes let you process the same
+input more than once in different ways.
+A <tt>mode</tt> attribute in
+an <tt>&lt;xsl:template&gt;</tt> definition adds a
+specific mode name to that template. When the same mode
+name is used
+in <tt>&lt;xsl:apply-templates/&gt;</tt>, it acts
+as a filter to narrow the selection of templates to only
+those selected by
+the <tt>match</tt> expression <i>and</i> that
+have that mode name. This lets you define two different
+templates for the same element match that are applied under
+different contexts. For example, there are two templates
+defined for
+DocBook <tt>&lt;listitem&gt;</tt>  elements:</p><pre class="programlisting">&lt;xsl:template match="listitem"&gt;
+  &lt;li&gt;&lt;xsl:apply-templates/&gt;&lt;/li&gt;
+&lt;/xsl:template&gt;
+
+&lt;xsl:template match="listitem" mode="xref"&gt;
+  &lt;xsl:number format="1"/&gt;
+&lt;/xsl:template&gt;
+</pre><p>The first template is for the normal list item
+context where you want to output the
+HTML <tt>&lt;li&gt;</tt> tags. The second template
+is called with <tt>&lt;xsl:apply-templates
+select="$target" mode="xref"/&gt;</tt> in the context
+of processing <tt>&lt;xref&gt;</tt> elements. In
+this case the <tt>select</tt> attribute locates
+the ID of the specific list item and
+the <tt>mode</tt> attribute selects the second
+template, whose effect is to output its item number when it
+is in an ordered list. Because there are many such special
+needs when
+processing <tt>&lt;xref&gt;</tt> elements, it is
+convenient to define a mode name <tt>xref</tt> to
+handle them all. Keep in mind that mode settings
+do <i>not</i> automatically get passed down to
+other templates
+through <tt>&lt;xsl:apply-templates/&gt;</tt>.</p></div><div class="sect2"><a name="c44b1b3b6b8"></a><div class="titlepage"><div><h3 class="title"><a name="c44b1b3b6b8"></a>Programming features</h3></div></div><p>Although XSL is template-driven, it also has some
+features of traditional programming languages. Here are
+some examples from the DocBook stylesheets. </p><pre class="programlisting">Assign a value to a variable:
+&lt;xsl:variable name="refelem" select="name($target)"/&gt;
+
+If statement:
+&lt;xsl:if test="$show.comments"&gt;
+    &lt;i&gt;&lt;xsl:call-template name="inline.charseq"/&gt;&lt;/i&gt;
+&lt;/xsl:if&gt;
+
+Case statement:
+&lt;xsl:choose&gt;
+    &lt;xsl:when test="@columns"&gt;
+        &lt;xsl:value-of select="@columns"/&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;1&lt;/xsl:otherwise&gt;
+&lt;/xsl:choose&gt;
+
+Call a template by name like a subroutine, passing parameter values and accepting a return value:
+&lt;xsl:call-template name="xref.xreflabel"&gt;
+   &lt;xsl:with-param name="target" select="$target"/&gt;
+&lt;/xsl:call-template&gt;
+</pre><p>However, you can't always use these constructs as you
+do in other programming languages. Variables in particular
+have very different behavior.</p><div class="sect3"><a name="c44b1b3b6b8b5"></a><div class="titlepage"><div><h4 class="title"><a name="c44b1b3b6b8b5"></a>Using variables and parameters</h4></div></div><p>XSL provides two elements that let you assign a value
+to a
+name: <tt>&lt;xsl:variable&gt;</tt> and <tt>&lt;xsl:param&gt;</tt>.
+These share the same name space and syntax for assigning
+names and values. Both can be referred to using
+the <tt>$name</tt> syntax. The main difference
+between these two elements is that a param's value acts as
+a default value that can be overridden when a template is
+called using
+a <tt>&lt;xsl:with-param&gt;</tt> element as in the
+last example above.</p><p>Here are two examples from DocBook:</p><pre class="programlisting">&lt;xsl:param name="cols"&gt;1&lt;/xsl:param&gt;
+&lt;xsl:variable name="segnum" select="position()"/&gt;
+</pre><p>In both elements, the name of the parameter or
+variable is specified with
+the <tt>name</tt> attribute. So the name of
+the <tt>param</tt> here
+is <tt>cols</tt> and the name of
+the <tt>variable</tt> is <tt>segnum</tt>.
+The value of either can be supplied in two ways. The value
+of the first example is the text node "1" and is supplied
+as the content of the element. The value of the second
+example is supplied as the result of the expression in
+its <tt>select</tt> attribute, and the element
+itself has no content.</p><p>The feature of XSL variables that is odd to new users
+is that once you assign a value to a variable, you cannot
+assign a new value within the same scope. Doing so will
+generate an error. So variables are not used as dynamic
+storage bins they way they are in other languages. They
+hold a fixed value within their scope of application, and
+then disappear when the scope is exited. This feature is a
+result of the design of XSL, which is template-driven and
+not procedural. This means there is no definite order of
+processing, so you can't rely on the values of changing
+variables. To use variables in XSL, you need to understand
+how their scope is defined.</p><p>Variables defined outside of all templates are
+considered global variables, and they are readable within
+all templates. The value of a global variable is fixed, and
+its global value can't be altered from within any template.
+However, a template can create a local variable of the same
+name and give it a different value. That local value
+remains in effect only within the scope of the local
+variable.</p><p>Variables defined within a template remain in effect
+only within their permitted scope, which is defined as all
+following siblings and their descendants. To understand
+such a scope, you have to remember that XSL instructions
+are true XML elements that are embedded in an XML family
+hierarchy of XSL elements, often referred to as parents,
+children, siblings, ancestors and descendants. Taking the
+family analogy a step further, think of a variable
+assignment as a piece of advice that you are allowed to
+give to certain family members. You can give your advice
+only to your younger siblings (those that follow you) and
+their descendents. Your older siblings won't listen,
+neither will your parents or any of your ancestors. To
+stretch the analogy a bit, it is an error to try to give
+different advice under the same name to the same group of
+listeners (in other words, to redefine the variable). Keep
+in mind that this family is not the elements of your
+document, but just the XSL instructions in your stylesheet.
+To help you keep track of such scopes in hand-written
+stylesheets, it helps to indent nested XSL elements. Here
+is an edited snippet from the DocBook stylesheet
+file <tt>pi.xsl</tt> that illustrates different
+scopes for two variables:</p><pre class="programlisting">
+ 1 &lt;xsl:template name="dbhtml-attribute"&gt;
+ 2 ...
+ 3    &lt;xsl:choose&gt;
+ 4       &lt;xsl:when test="$count&gt;count($pis)"&gt;
+ 5          &lt;!-- not found --&gt;
+ 6       &lt;/xsl:when&gt;
+ 7       &lt;xsl:otherwise&gt;
+ 8          &lt;xsl:variable name="pi"&gt;
+ 9             &lt;xsl:value-of select="$pis[$count]"/&gt;
+10          &lt;/xsl:variable&gt;
+11          &lt;xsl:choose&gt;
+12             &lt;xsl:when test="contains($pi,concat($attribute, '='))"&gt;
+13                &lt;xsl:variable name="rest" select="substring-after($pi,concat($attribute,'='))"/&gt;
+14                &lt;xsl:variable name="quote" select="substring($rest,1,1)"/&gt;
+15                &lt;xsl:value-of select="substring-before(substring($rest,2),$quote)"/&gt;
+16             &lt;/xsl:when&gt;
+17             &lt;xsl:otherwise&gt;
+18             ...
+19             &lt;/xsl:otherwise&gt;
+20          &lt;/xsl:choose&gt;
+21       &lt;/xsl:otherwise&gt;
+22    &lt;/xsl:choose&gt;
+23 &lt;/xsl:template&gt;
+
+</pre><p>The scope of the variable <tt>pi</tt> begins
+on line 8 where it is defined in this template, and ends on
+line 20 when its last sibling ends.<sup>[<a name="c44b1b3b6b8b5c10b4" href="#ftn.c44b1b3b6b8b5c10b4">1</a>]</sup>     The scope of the
+variable <tt>rest</tt> begins on line 13 and ends
+on line 15. Fortunately, line 15 outputs an expression
+using the value before it goes out of scope.</p><p>What happens when
+an <tt>&lt;xsl:apply-templates/&gt;</tt> element
+is used within the scope of a local variable? Do the
+templates that are applied to the document children get the
+variable? The answer is no. The templates that are applied
+are not actually within the scope of the variable. They
+exist elsewhere in the stylesheet and are not following
+siblings or their descendants. </p><p>To pass a value to another template, you pass a
+parameter using
+the <tt>&lt;xsl:with-param&gt;</tt> element. This
+parameter passing is usually done with calls to a specific
+named template
+using <tt>&lt;xsl:call-template&gt;</tt>, although
+it works
+with <tt>&lt;xsl:apply-templates&gt;</tt> too.
+That's because the called template must be expecting the
+parameter by defining it using
+a <tt>&lt;xsl:param&gt;</tt> element with the same
+parameter name. Any passed parameters whose names are not
+defined in the called template are ignored.</p><p>Here is an example of parameter passing
+from <tt>docbook.xsl</tt>:</p><pre class="programlisting">&lt;xsl:call-template name="head.content"&gt;
+   &lt;xsl:with-param name="node" select="$doc"/&gt;
+&lt;/xsl:call-template&gt;
+</pre><p>Here a template
+named <tt>head.content</tt> is being called and
+passed a parameter named <tt>node</tt> whose
+content is the value of the <tt>$doc</tt> variable
+in the current context. The top of that template looks like
+this:</p><pre class="programlisting">&lt;xsl:template name="head.content"&gt;
+   &lt;xsl:param name="node" select="."/&gt;
+</pre><p>The template is expecting the parameter because it
+has a <tt>&lt;xsl:param&gt;</tt> defined with the
+same name. The value in this definition is the default
+value. This would be the parameter value used in the
+template if the template was called without passing that
+parameter.</p></div></div><div class="sect2"><a name="c44b1b3b6b9"></a><div class="titlepage"><div><h3 class="title"><a name="c44b1b3b6b9"></a>Generating HTML output.</h3></div></div><p>You generate HTML from your DocBook XML files by
+applying the HTML version of the stylesheets. This is done
+by using the HTML driver
+file <tt>docbook/html/docbook.xsl</tt> as your
+stylesheet. That is the master stylesheet file that
+uses <tt>&lt;xsl:include&gt;</tt> to pull in the
+component files it needs to assemble a complete stylesheet
+for producing HTML. </p><p>The way the DocBook stylesheet generates HTML is to
+apply templates that output a mix of text content and HTML
+elements. Starting at the top level in the main
+file <tt>docbook.xsl</tt>:</p><pre class="programlisting">&lt;xsl:template match="/"&gt;
+  &lt;xsl:variable name="doc" select="*[1]"/&gt;
+  &lt;html&gt;
+  &lt;head&gt;
+    &lt;xsl:call-template name="head.content"&gt;
+      &lt;xsl:with-param name="node" select="$doc"/&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;xsl:apply-templates/&gt;
+  &lt;/body&gt;
+  &lt;/html&gt;
+&lt;/xsl:template&gt;
+</pre><p>This template matches the root element of your input
+document, and starts the process of recursively applying
+templates. It first defines a variable
+named <tt>doc</tt> and then outputs two literal
+HTML elements <tt>&lt;html&gt;</tt> and <tt>&lt;head&gt;</tt>.
+Then it calls a named
+template <tt>head.content</tt> to process the
+content of the HTML <tt>&lt;head&gt;</tt>, closes
+the <tt>&lt;head&gt;</tt> and starts
+the <tt>&lt;body&gt;</tt>. There it
+uses <tt>&lt;xsl:apply-templates/&gt;</tt> to
+recursively process the entire input document. Then it just
+closes out the HTML file.</p><p>Simple HTML elements can generated as literal
+elements as shown here. But if the HTML being output
+depends on the context, you need something more powerful to
+select the element name and possibly add attributes and
+their values. Here is a fragment
+from <tt>sections.xsl</tt> that shows how a
+heading tag is generated using
+the <tt>&lt;xsl:element&gt;</tt> and <tt>&lt;xsl:attribute&gt;</tt> elements:</p><pre class="programlisting">
+ 1 &lt;xsl:element name="h{$level}"&gt;
+ 2   &lt;xsl:attribute name="class"&gt;title&lt;/xsl:attribute&gt;
+ 3   &lt;xsl:if test="$level&lt;3"&gt;
+ 4     &lt;xsl:attribute name="style"&gt;clear: all&lt;/xsl:attribute&gt;
+ 5   &lt;/xsl:if&gt;
+ 6   &lt;a&gt;
+ 7     &lt;xsl:attribute name="name"&gt;
+ 8       &lt;xsl:call-template name="object.id"/&gt;
+ 9     &lt;/xsl:attribute&gt;
+10     &lt;b&gt;&lt;xsl:copy-of select="$title"/&gt;&lt;/b&gt;
+11   &lt;/a&gt;
+12 &lt;/xsl:element&gt;
+</pre><p>This whole example is generating a single HTML
+heading element. Line 1 begins the HTML element definition
+by identifying the name of the element. In this case, the
+name is an expression that includes the
+variable <tt>$level</tt> passed as a parameter to
+this template. Thus a single template can
+generate <tt>&lt;h1&gt;</tt>, <tt>&lt;h2&gt;</tt>,
+etc. depending on the context in which it is called. Line 2
+defines a <tt>class="title"</tt> attribute that is
+added to this element. Lines 3 to 5 add
+a <tt>style="clear all"</tt> attribute, but only
+if the heading level is less than 3. Line 6 opens
+an <tt>&lt;a&gt;</tt> anchor element. Although this
+looks like a literal output string, it is actually modified
+by lines 7 to 9 that insert
+the <tt>name</tt> attribute into
+the <tt>&lt;a&gt;</tt> element. This illustrates
+that XSL is managing output elements as active element
+nodes, not just text strings. Line 10 outputs the text of
+the heading title, also passed as a parameter to the
+template, enclosed in HTML boldface tags. Line 11 closes
+the anchor tag with the
+literal <tt>&lt;/a&gt;</tt> syntax, while line 12
+closes the heading tag by closing the element definition.
+Since the actual element name is a variable, it couldn't
+use the literal syntax.</p><p>As you follow the sequence of nested templates
+processing elements, you might be wondering how the
+ordinary text of your input document gets to the output. In
+the file <tt>docbook.xsl</tt> you will find
+this template that handles any text not processed by any
+other template:</p><pre class="programlisting">&lt;xsl:template match="text()"&gt;
+  &lt;xsl:value-of select="."/&gt;
+&lt;/xsl:template&gt;
+</pre><p>This template's body consists of the "value" of the text node,
+which is just its text. In general, all XSL processors have
+some built-in templates to handle any content for which
+your stylesheet doesn't supply a matching template. This
+template serves the same function but appears explicitly in
+the stylesheet.</p></div><div class="sect2"><a name="c44b1b3b6c10"></a><div class="titlepage"><div><h3 class="title"><a name="c44b1b3b6c10"></a>Generating formatting objects.</h3></div></div><p>You generate formatting objects from your DocBook XML
+files by applying the fo version of the stylesheets. This
+is done by using the fo driver
+file <tt>docbook/fo/docbook.xsl</tt> as your
+stylesheet. That is the master stylesheet file that
+uses <tt>&lt;xsl:include&gt;</tt> to pull in the
+component files it needs to assemble a complete stylesheet
+for producing formatting objects. Generating a formatting
+objects file is only half the process of producing typeset
+output. You also need a formatting object processor such as
+the Apache XML Project's FOP as described in an earlier
+section.</p><p>The DocBook fo stylesheet works in a similar manner
+to the HTML stylesheet. Instead of outputting HTML tags, it
+outputs text marked up
+with <tt>&lt;fo:<i><tt>something</tt></i>&gt;</tt> tags.
+For example, to indicate that some text should be kept
+in-line and typeset with a monospace font, it might look
+like this:</p><pre class="programlisting">&lt;fo:inline-sequence font-family="monospace"&gt;/usr/man&lt;/fo:inline-sequence&gt;</pre><p>The templates
+in <tt>docbook/fo/inline.xsl</tt>      that produce
+this output for a
+DocBook   <tt>&lt;filename&gt;</tt>     element look
+like this:</p><pre class="programlisting">&lt;xsl:template match="filename"&gt;
+  &lt;xsl:call-template name="inline.monoseq"/&gt;
+&lt;/xsl:template&gt;
+
+&lt;xsl:template name="inline.monoseq"&gt;
+  &lt;xsl:param name="content"&gt;
+    &lt;xsl:apply-templates/&gt;
+  &lt;/xsl:param&gt;
+  &lt;fo:inline-sequence font-family="monospace"&gt;
+    &lt;xsl:copy-of select="$content"/&gt;
+  &lt;/fo:inline-sequence&gt;
+&lt;/xsl:template&gt;
+</pre><p>There are dozens of fo tags and attributes specified
+in the XSL standard. It is beyond the scope of this
+document to cover how all of them are used in the DocBook
+stylesheets. Fortunately, this is only an intermediate
+format that you probably won't have to deal with very much
+directly unless you are writing your own
+stylesheets.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="ch01s02.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a href="ch01s04.html">Next</a></td></tr><tr><td width="40%" align="left">A brief introduction to XSL&nbsp;</td><td width="20%" align="center"><a href="publishing.html">Up</a></td><td width="40%" align="right">&nbsp;Customizing DocBook XSL stylesheets</td></tr></table></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s04.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s04.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch01s04.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,250 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Customizing DocBook XSL stylesheets</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"><link rel="home" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="up" href="publishing.html" title="Chapter 1. DocBook XSL"><link rel="previous" href="ch01s03.html" title="XSL processing model"><link rel="next" href="extensions.html" title="Chapter 2. Saxon Extensions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Customizing DocBook XSL stylesheets</th></tr><tr><td width="20%" align="left"><a href="ch01s03.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 1. DocBook XSL</th><td width="20%" align="right">&nbsp;<a href="extensions.html">Next</a></td></tr></table><hr></div><p>The DocBook XSL stylesheets are written in a modular
+fashion. Each of the HTML and FO stylesheets starts with a
+driver file that assembles a collection of component files
+into a complete stylesheet. This modular design puts similar things together into smaller files that are easier to write and maintain than one big stylesheet. The modular stylesheet files
+are distributed among four directories:</p><div class="variablelist"><dl><dt><a name="c44b1b3b7b3b1"></a><span class="term">common/</span></dt><dd><p><a name="c44b1b3b7b3b1b2"></a>contains code common to both stylesheets, including localization data
+</p></dd><dt><a name="c44b1b3b7b3b2"></a><span class="term">fo/</span></dt><dd><p><a name="c44b1b3b7b3b2b2"></a>a stylesheet that produces XSL FO result trees
+</p></dd><dt><a name="c44b1b3b7b3b3"></a><span class="term">html/</span></dt><dd><p><a name="c44b1b3b7b3b3b2"></a>a stylesheet that produces HTML/XHTML result trees
+</p></dd><dt><a name="c44b1b3b7b3b4"></a><span class="term">lib/</span></dt><dd><p><a name="c44b1b3b7b3b4b2"></a>contains schema-independent functions
+</p></dd></dl></div><p>The driver files for each of HTML and FO stylesheets
+are <tt>html/docbook.xsl</tt> and <tt>fo/docbook.xsl</tt>,
+respectively. A driver file consists mostly of a bunch
+of <tt>&lt;xsl:include&gt;</tt> instructions to
+pull in the component templates, and then defines some
+top-level templates. For example:</p><pre class="programlisting">&lt;xsl:include href="../VERSION"/&gt;
+&lt;xsl:include href="../lib/lib.xsl"/&gt;
+&lt;xsl:include href="../common/l10n.xsl"/&gt;
+&lt;xsl:include href="../common/common.xsl"/&gt;
+&lt;xsl:include href="autotoc.xsl"/&gt;
+&lt;xsl:include href="lists.xsl"/&gt;
+&lt;xsl:include href="callout.xsl"/&gt;
+...
+&lt;xsl:include href="param.xsl"/&gt;
+&lt;xsl:include href="pi.xsl"/&gt;
+</pre><p>The first four modules are shared with the FO
+stylesheet and are referenced using relative pathnames to
+the common directories. Then the long list of component
+stylesheets starts. Pathnames in include statements are
+always taken to be relative to the including file. Each
+included file must be a valid XSL stylesheet, which means
+its root element must
+be <tt>&lt;xsl:stylesheet&gt;</tt>.</p><div class="sect2"><a name="c44b1b3b7b7"></a><div class="titlepage"><div><h3 class="title"><a name="c44b1b3b7b7"></a>Stylesheet inclusion vs. importing</h3></div></div><p>XSL actually provides two inclusion
+mechanisms: <tt>&lt;xsl:include&gt;</tt> and <tt>&lt;xsl:import&gt;</tt>.
+Of the two, <tt>&lt;xsl:include&gt;</tt> is
+the simpler. It treats the included content as if it were
+actually typed into the file at that point, and doesn't
+give it any more or less precedence relative to the
+surrounding text. It is best used when assembling
+dissimilar templates that don't overlap what they match.
+The DocBook driver files use this instruction to assemble a
+set of modules into a stylesheet.</p><p>In contrast, <tt>&lt;xsl:import&gt;</tt> lets
+you manage the precedence of templates and variables. It is
+the preferred mode of customizing another stylesheet because
+it lets you override definitions in the distributed
+stylesheet with your own, without altering the distribution
+files at all. You simply import the whole stylesheet and
+add whatever changes you want.</p><p>The precedence rules for import are detailed and
+rigorously defined in the XSL standard. The basic rule is
+that any templates and variables in the importing
+stylesheet have precedence over equivalent templates and
+variables in the imported stylesheet. Think of the imported stylesheet elements as a fallback collection, to be used only if a match is not found in the current stylesheet. You can customize the templates you want to change in your stylesheet file, and let the imported stylesheet handle the rest.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="c44b1b3b7b7b5"></a>Note</h3><p>Customizing a DocBook XSL stylesheet is the opposite
+of customizing a DocBook DTD. When you customize a DocBook
+DTD, the rules of XML and SGML dictate that
+the <i>first</i> of any duplicate declarations
+wins. Any subsequent declarations of the same element or
+entity are ignored. The architecture of the DTD provides
+slots for inserting your own custom declarations early
+enough in the DTD for them to override the standard
+declarations. In contrast, customizing an XSL stylesheet is
+simpler because your definitions have precedence over imported ones.</p></div><p>You can carry modularization to deeper levels because
+module files can also include or import other modules.
+You'll need to be careful to maintain the precedence that
+you want as the modules get rolled up into a complete
+stylesheet. </p></div><div class="sect2"><a name="c44b1b3b7b8"></a><div class="titlepage"><div><h3 class="title"><a name="c44b1b3b7b8"></a>Customizing
+with <tt>&lt;xsl:import&gt;</tt></h3></div></div><p>There is currently one example of customizing
+with <tt>&lt;xsl:import&gt;</tt> in the HTML
+version of the DocBook stylesheets.
+The <tt>xtchunk.xsl</tt> stylesheet modifies the
+HTML processing to output many smaller HTML files rather
+than a single large file per input document. It uses XSL
+extensions defined only in the XSL
+processor <b>XT</b>. In the driver
+file <tt>xtchunk.xsl</tt>, the first instruction
+is <tt>&lt;xsl:import
+href="docbook.xsl"/&gt;</tt>. That instruction imports
+the original driver file, which in turn uses
+many <tt>&lt;xsl:include&gt;</tt> instructions to
+include all the modules. That single import instruction
+gives the new stylesheet the complete set of DocBook
+templates to start with.</p><p>After the
+import, <tt>xtchunk.xsl</tt> redefines some of
+the templates and adds some new ones. Here is one example
+of a redefined template:</p><pre class="programlisting">Original template in autotoc.xsl
+&lt;xsl:template name="href.target"&gt;
+  &lt;xsl:param name="object" select="."/&gt;
+  &lt;xsl:text&gt;#&lt;/xsl:text&gt;
+  &lt;xsl:call-template name="object.id"&gt;
+    &lt;xsl:with-param name="object" select="$object"/&gt;
+  &lt;/xsl:call-template&gt;
+&lt;/xsl:template&gt;
+
+New template in xtchunk.xsl
+&lt;xsl:template name="href.target"&gt;
+  &lt;xsl:param name="object" select="."/&gt;
+  &lt;xsl:variable name="ischunk"&gt;
+    &lt;xsl:call-template name="chunk"&gt;
+      &lt;xsl:with-param name="node" select="$object"/&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:variable&gt;
+
+  &lt;xsl:apply-templates mode="chunk-filename" select="$object"/&gt;
+
+  &lt;xsl:if test="$ischunk='0'"&gt;
+    &lt;xsl:text&gt;#&lt;/xsl:text&gt;
+    &lt;xsl:call-template name="object.id"&gt;
+      &lt;xsl:with-param name="object" select="$object"/&gt;
+    &lt;/xsl:call-template&gt;
+  &lt;/xsl:if&gt;
+&lt;/xsl:template&gt;
+</pre><p>The new template handles the more complex processing
+of HREFs when the output is split into many HTML files.
+Where the old template could simply
+output <tt>#<i><tt>object.id</tt></i></tt>,
+the new one outputs <tt><i><tt>filename</tt></i>#<i><tt>object.id</tt></i></tt>.</p></div><div class="sect2"><a name="c44b1b3b7b9"></a><div class="titlepage"><div><h3 class="title"><a name="c44b1b3b7b9"></a>Setting stylesheet variables</h3></div></div><p>You may not have to define any new templates,
+however. The DocBook stylesheets are parameterized using
+XSL variables rather than hard-coded values for many of the
+formatting features. Since
+the <tt>&lt;xsl:import&gt;</tt> mechanism also
+lets you redefine global variables, this gives you an easy
+way to customize many features of the DocBook
+stylesheets. Over time, more features will be parameterized to permit customization. If you find hardcoded values in the stylesheets that would be useful to customize, please let the maintainer know.</p><p>Near the end of the list of includes in the main
+DocBook driver file is the
+instruction <tt>&lt;xsl:include
+href="param.xsl"/&gt;</tt>.
+The <tt>param.xsl</tt> file is the most
+important module for customizing a DocBook XSL stylesheet.
+This module contains no templates, only definitions of
+stylesheet variables. Since these variables are defined
+outside of any template, they are global variables and
+apply to the entire stylesheet. By redefining these
+variables in an importing stylesheet, you can change the
+behavior of the stylesheet.</p><p>To create a customized DocBook stylesheet, you simply
+create a new stylesheet file such
+as <tt>mystyle.xsl</tt> that imports the standard
+stylesheet and adds your own new variable definitions. Here
+is an example of a complete custom stylesheet that changes
+the depth of sections listed in the table of contents from
+two to three:</p><pre class="programlisting">&lt;?xml version='1.0'?&gt;
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'
+                xmlns="http://www.w3.org/TR/xhtml1/transitional"
+                exclude-result-prefixes="#default"&gt;
+
+&lt;xsl:import href="docbook.xsl"/&gt;
+
+&lt;xsl:variable name="toc.section.depth"&gt;3&lt;/xsl:variable&gt;
+&lt;!-- Add other variable definitions here --&gt;
+
+&lt;/xsl:stylesheet&gt;
+</pre><p>Following the opening stylesheet element are the
+import instruction and one variable definition. The
+variable <tt>toc.section.depth</tt> was defined
+in <tt>param.xsl</tt> with value "2", and here
+it is defined as "3". Since the importing stylesheet takes
+precedence, this new value is used. Thus documents
+processed with <tt>mystyle.xsl</tt> instead
+of <tt>docbook.xsl</tt> will have three levels
+of sections in the tables of contents, and all other
+processing will be the same.</p><p>Use the list of variables
+in <tt>param.xsl</tt> as your guide for creating
+a custom stylesheet. If the changes you want are controlled
+by a variable there, then customizing is easy. </p></div><div class="sect2"><a name="c44b1b3b7c10"></a><div class="titlepage"><div><h3 class="title"><a name="c44b1b3b7c10"></a>Writing your own templates</h3></div></div><p>If the changes you want are more extensive than what
+is supported by variables, you can write new templates. You
+can put your new templates directly in your importing
+stylesheet, or you can modularize your importing stylesheet
+as well. You can write your own stylesheet module
+containing a collection of templates for processing lists,
+for example, and put them in a file
+named <tt>mylists.xsl</tt>. Then your importing
+stylesheet can pull in your list templates with
+a <tt>&lt;xsl:include
+href="mylists.xsl"/&gt;</tt> instruction. Since your
+included template definitions appear after the main import
+instruction, your templates will take precedence.</p><p>You'll need to make sure your new templates are
+compatible with the remaining modules, which means:</p><div class="itemizedlist"><ul><li><p><a name="c44b1b3b7c10b4b1"></a>Any named templates should use the same name so
+calling templates in other modules can find them.</p></li><li><p><a name="c44b1b3b7c10b4b2"></a>Your template set should process the same elements
+matched by templates in the original module, to ensure
+complete coverage.</p></li><li><p><a name="c44b1b3b7c10b4b3"></a>Include the same set
+of <tt>&lt;xsl:param&gt;</tt> elements in each
+template to interface properly with any calling templates,
+although you can set different values for your
+parameters.</p></li><li><p><a name="c44b1b3b7c10b4b4"></a>Any templates that are used like subroutines to
+return a value should return the same data type.</p></li></ul></div></div><div class="sect2"><a name="c44b1b3b7c11"></a><div class="titlepage"><div><h3 class="title"><a name="c44b1b3b7c11"></a>Writing your own driver</h3></div></div><p>Another approach to customizing the stylesheets is to
+write your own driver file. Instead of
+using <tt>&lt;xsl:import
+href="docbook.xsl"/&gt;</tt>, you copy that file to a
+new name and rewrite any of
+the <tt>&lt;xsl:include/&gt;</tt> instructions to
+assemble a custom collection of stylesheet modules. One
+reason to do this is to speed up processing by reducing the
+size of the stylesheet. If you are using a customized
+DocBook DTD that omits many elements you never use, you
+might be able to omit those modules of the
+stylesheet.</p></div><div class="sect2"><a name="c44b1b3b7c12"></a><div class="titlepage"><div><h3 class="title"><a name="c44b1b3b7c12"></a>Localization</h3></div></div><p>The DocBook stylesheets include features for
+localizing generated text, that is, printing any generated
+text in a language other than the default English. In
+general, the stylesheets will switch to the language
+identified by a <tt>lang</tt> attribute when
+processing elements in your documents. If your documents
+use the <tt>lang</tt> attribute, then you don't
+need to customize the stylesheets at all for
+localization.</p><p>As far as the stylesheets go,
+a <tt>lang</tt> attribute is inherited by the
+descendents of a document element. The stylesheet searches
+for a <tt>lang</tt> attribute using this XPath
+expression:</p><pre class="programlisting">&lt;xsl:variable name="lang-attr"
+         select="($target/ancestor-or-self::*/@lang
+                  |$target/ancestor-or-self::*/@xml:lang)[last()]"/&gt;</pre><p>This locates the attribute on the current element or
+its most recent ancestor. Thus
+a <tt>lang</tt> attribute is in effect for an
+element and all of its descendents, unless it is reset in
+one of those descendents. If you define it in only your
+document root element, then it applies to the whole
+document:</p><pre class="programlisting">&lt;?xml version="1.0"?&gt;
+&lt;!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN" "docbook.dtd"&gt;
+&lt;book lang="fr"&gt;
+...
+&lt;/book&gt;</pre><p>When text is being generated, the stylesheet checks
+the most recent <tt>lang</tt> attribute and looks
+up the generated text strings for that language in a
+localization XML file. These are located in
+the <tt>common</tt> directory of the
+stylesheets, one file per language. Here is the top of the
+file <tt>fr.xml</tt>:</p><pre class="programlisting">&lt;localization language="fr"&gt;
+
+&lt;gentext key="abstract"                 text="R&amp;#x00E9;sum&amp;#x00E9;"/&gt;
+&lt;gentext key="answer"                   text="R:"/&gt;
+&lt;gentext key="appendix"                 text="Annexe"/&gt;
+&lt;gentext key="article"                  text="Article"/&gt;
+&lt;gentext key="bibliography"             text="Bibliographie"/&gt;
+...
+</pre><p>The stylesheet templates use the gentext key names,
+and then the stylesheet looks up the associated text value
+when the document is processed with that lang setting. The
+file <tt>l10n.xml</tt> (note
+the <tt>.xml</tt> suffix) lists the filenames of
+all the supported languages.</p><p>You can also create a custom stylesheet that sets the
+language. That might be useful if your documents don't make
+appropriate use of the <tt>lang</tt> attribute.
+The module <tt>l10n.xsl</tt> defines two global
+variables that can be overridden with an importing
+stylesheet as described above. Here are their default
+definitions:</p><pre class="programlisting">&lt;xsl:variable name="l10n.gentext.language"&gt;&lt;/xsl:variable&gt;
+&lt;xsl:variable name="l10n.gentext.default.language"&gt;en&lt;/xsl:variable&gt;
+</pre><p>The first one sets the language for all elements,
+regardless of an element's <tt>lang</tt> attribute
+value. The second just sets a default language for any
+elements that haven't got a <tt>lang</tt> setting
+of their own (or their ancestors).</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="ch01s03.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a href="extensions.html">Next</a></td></tr><tr><td width="40%" align="left">XSL processing model&nbsp;</td><td width="20%" align="center"><a href="publishing.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 2. Saxon Extensions</td></tr></table></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch02s02.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch02s02.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch02s02.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Using the Extensions</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"><link rel="home" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="up" href="extensions.html" title="Chapter 2. Saxon Extensions"><link rel="previous" href="extensions.html" title="Chapter 2. Saxon Extensions"><link rel="next" href="ch03.html" title="Chapter 3. Reference Documentation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using the Extensions</th></tr><tr><td width="20%" align="left"><a href="extensions.html">Prev</a>&nbsp;</td><th width="60%" align="center">Chapter 2. Saxon Extensions</th><td width="20%" align="right">&nbsp;<a href="ch03.html">Next</a></td></tr></table><hr></div><p>For compatibility with other processors, the extensions are disabled
+by default. To enable the extensions, turn on
+<tt>$saxon.extensions</tt>, for example by passing
+<tt>saxon.extensions=1</tt> to Saxon.</p><p>For more control over the specific extensions, see
+<i><a href="html/param.html">HTML Parameter Reference</a></i>.</p><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="extensions.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a href="ch03.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 2. Saxon Extensions&nbsp;</td><td width="20%" align="center"><a href="extensions.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 3. Reference Documentation</td></tr></table></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch03.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch03.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch03.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter 3. Reference Documentation</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"><link rel="home" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="up" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="previous" href="ch02s02.html" title="Using the Extensions"><link rel="next" href="ch04.html" title="Chapter 4. The Template System"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Reference Documentation</th></tr><tr><td width="20%" align="left"><a href="ch02s02.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a href="ch04.html">Next</a></td></tr></table><hr></div><p>Reference documentation is also available:</p><div class="itemizedlist"><ul><li><p><a name="c44b1b5b3b1"></a><i><a href="reference.html">DocBook XSL Stylesheet Reference Documentation</a></i></p></li></ul></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="ch02s02.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a href="ch04.html">Next</a></td></tr><tr><td width="40%" align="left">Using the Extensions&nbsp;</td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 4. The Template System</td></tr></table></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch04.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch04.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/ch04.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,58 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter 4. The Template System</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"><link rel="home" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="up" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="previous" href="ch03.html" title="Chapter 3. Reference Documentation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. The Template System</th></tr><tr><td width="20%" align="left"><a href="ch03.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;</td></tr></table><hr></div><p>Some parts of the DocBook XSL Stylesheets are actually generated
+using XSL Stylesheets. In particular, the formatting of title pages
+is generated using a special template system. The same template system
+will eventually allow you to easily customize bibliography entries and
+perhaps other parts of the system as well.</p><p>FIXME: there needs to be more introductory/explanatory text
+here!</p><p>In order to demonstrate how this system works, let's consider
+how we can use it to change the format of article title pages.</p><p>By default, the stylesheets print the following elements on the
+article title page, in this order: <span class="simplelist"><tt>title</tt>, <tt>subtitle</tt>, <tt>corpauthor</tt>, <tt>authorgroup</tt>, <tt>author</tt>, <tt>releaseinfo</tt>, <tt>copyright</tt>, <tt>legalnotice</tt>, <tt>pubdate</tt>, <tt>revision</tt>, <tt>revhistory</tt>, <tt>abstract</tt></span>. Suppose we want to put only the
+<tt>title</tt>, <tt>author</tt>, and
+<tt>edition</tt> elements on the title page, in the order
+that they appear in the <tt>articleinfo</tt>.
+</p><p>The &#8220;hard&#8221; (and wrong!) way to do it would be to
+edit <tt>titlepage.templates.xsl</tt> and make the changes
+by hand.</p><p>The easy and right way is to construct a template document that
+describes the order and sequence of elements that you want:</p><pre class="screen">
+&lt;t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+             xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+             base-stylesheet="/path/to/html/docbook.xsl"&gt;
+
+&lt;t:titlepage element="article" wrapper="div" class="titlepage"&gt;
+  &lt;t:titlepage-content side="recto" order="document"&gt;
+    &lt;title predicate="[1]"/&gt;
+    &lt;author/&gt;
+    &lt;edition/&gt;
+  &lt;/t:titlepage-content&gt;
+&lt;/t:titlepage&gt;
+&lt;/t:templates&gt;
+</pre><p>Then process this document with the
+<tt>template/titlepage.xsl</tt> stylesheet. This will
+produce the following somewhat cryptic stylesheet:</p><pre class="screen">
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;
+
+&lt;!-- This stylesheet was created by titlepage.xsl; do not edit it by hand. --&gt;
+
+&lt;xsl:import href="/path/to/html/docbook.xsl"/&gt;
+
+&lt;xsl:template name="article.titlepage.recto"&gt;&lt;xsl:apply-templates mode="article.titlepage.recto.mode" select="(articleinfo/title|artheader/title|title)[1]|articleinfo/author|artheader/author|articleinfo/edition|artheader/edition"/&gt;
+&lt;/xsl:template&gt;
+
+&lt;xsl:template name="article.titlepage"&gt;
+  &lt;div class="titlepage"&gt;
+    &lt;xsl:call-template name="article.titlepage.before.recto"/&gt;
+    &lt;xsl:call-template name="article.titlepage.recto"/&gt;
+    &lt;xsl:call-template name="article.titlepage.before.verso"/&gt;
+    &lt;xsl:call-template name="article.titlepage.verso"/&gt;
+    &lt;xsl:call-template name="article.titlepage.separator"/&gt;
+  &lt;/div&gt;
+&lt;/xsl:template&gt;
+
+&lt;/xsl:stylesheet&gt;
+</pre><p>Despite its cryptic appearance, it has the desired result.
+If you want to change <i>how</i> the titlepage elements
+are formatted (as opposed to which ones are formatted), you have to
+write your own customization layer that overrides the template for
+the element in question in the &#8220;titlepage.mode&#8221; mode.</p><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="ch03.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right">&nbsp;</td></tr><tr><td width="40%" align="left">Chapter 3. Reference Documentation&nbsp;</td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right">&nbsp;</td></tr></table></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/common/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/common/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/common/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+2001-04-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* .cvsignore, Makefile: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/common/common.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/common/common.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/common/common.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,379 @@
+<html>
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   
+      <title>Common Template Reference</title>
+      <link rel="stylesheet" href="../reference.css" type="text/css">
+      <meta name="generator" content="DocBook XSL Stylesheets V1.38">
+   </head>
+   <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+      <div class="reference">
+         <div class="titlepage">
+            <div>
+               <h1 class="title"><a name="d41e1"></a>Common Template Reference
+               </h1>
+            </div>
+            <div>
+               <h3 class="author">Norman Walsh</h3>
+            </div>
+            <div>
+               <p class="releaseinfo">
+                  $Id: common.html,v 1.1 2001/06/23 17:06:30 veillard Exp $
+                  
+               </p>
+            </div>
+            <div>
+               <p class="copyright"><a href="../copyright.html">Copyright</a> &copy; 1999, 2000 by Norman Walsh. <a href="../warranty.html">No Warranty</a>.
+               </p>
+            </div>
+            <hr>
+         </div>
+         <div class="partintro">
+            <div></div>
+            <div class="section"><a name="d41e24"></a><div class="titlepage">
+                  <div>
+                     <h2 class="title" style="clear: all"><a name="d41e24"></a>Introduction
+                     </h2>
+                  </div>
+               </div>
+               <p>This is technical reference documentation for the DocBook XSL
+                  Stylesheets; it documents (some of) the parameters, templates, and
+                  other elements of the stylesheets.
+               </p>
+               <p>This is not intended to be &#8220;user&#8221; documentation.
+                  It is provided for developers writing customization layers for the
+                  stylesheets, and for anyone who's interested in &#8220;how it
+                  works&#8221;.
+               </p>
+               <p>Although I am trying to be thorough, this documentation is known
+                  to be incomplete. Don't forget to read the source, too :-)
+               </p>
+            </div>
+            <div class="toc">
+               <p><b>Table of Contents</b></p>
+               <dl>
+                  <dt><a href="#template.is.component">is.component</a></dt>
+                  <dt><a href="#template.is.section">is.section</a></dt>
+                  <dt><a href="#template.section.level">section.level</a></dt>
+                  <dt><a href="#template.qanda.section.level">qanda.section.level</a></dt>
+                  <dt><a href="#template.select.mediaobject">select.mediaobject</a></dt>
+                  <dt><a href="#template.is.acceptable.mediaobject">is.acceptable.mediaobject</a></dt>
+                  <dt><a href="#template.check.id.unique">check.id.unique</a></dt>
+                  <dt><a href="#template.check.idref.targets">check.idref.targets</a></dt>
+               </dl>
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.is.component"></a>is.component
+            </h1>
+            <div class="refnamediv"><a name="d41e40"></a><h2>Name</h2>is.component &#8212; Tests if a given node is a component-level element
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e45"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="is.component"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e48"></a>
+               
+               
+               <p>This template returns '1' if the specified node is a component
+                  (Chapter, Appendix, etc.), and '0' otherwise.
+               </p>
+               
+               
+            </div>
+            <div class="refparameter"><b><a name="d41e53"></a>Parameters</b>
+               
+               
+               <div class="variablelist">
+                  <dl>
+                     <dt><a name="d41e56"></a><span class="term">node</span></dt>
+                     <dd>
+                        <p><a name="d41e59"></a>The node which is to be tested.
+                        </p>
+                     </dd>
+                  </dl>
+               </div>
+               
+               
+            </div>
+            <div class="refreturn"><b><a name="d41e63"></a>Returns</b>
+               
+               
+               <p>This template returns '1' if the specified node is a component
+                  (Chapter, Appendix, etc.), and '0' otherwise.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.is.section"></a>is.section
+            </h1>
+            <div class="refnamediv"><a name="d41e69"></a><h2>Name</h2>is.section &#8212; Tests if a given node is a section-level element
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e74"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="is.section"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e77"></a>
+               
+               
+               <p>This template returns '1' if the specified node is a section
+                  (Section, Sect1, Sect2, etc.), and '0' otherwise.
+               </p>
+               
+               
+            </div>
+            <div class="refparameter"><b><a name="d41e82"></a>Parameters</b>
+               
+               
+               <div class="variablelist">
+                  <dl>
+                     <dt><a name="d41e85"></a><span class="term">node</span></dt>
+                     <dd>
+                        <p><a name="d41e88"></a>The node which is to be tested.
+                        </p>
+                     </dd>
+                  </dl>
+               </div>
+               
+               
+            </div>
+            <div class="refreturn"><b><a name="d41e92"></a>Returns</b>
+               
+               
+               <p>This template returns '1' if the specified node is a section
+                  (Section, Sect1, Sect2, etc.), and '0' otherwise.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.section.level"></a>section.level
+            </h1>
+            <div class="refnamediv"><a name="d41e98"></a><h2>Name</h2>section.level &#8212; Returns the hierarchical level of a section.
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e103"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="section.level"&gt;
+&lt;xsl:param name="node" select="."/&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e106"></a>
+               
+               
+               <p>This template calculates the hierarchical level of a section.
+                  Hierarchically, components are &#8220;top level&#8221;, so a
+                  <tt>sect1</tt> is at level 2, <tt>sect3</tt> is
+                  at level 3, etc.
+               </p>
+               
+               
+               
+               
+               <p>Recursive sections are calculated down to the sixth level.</p>
+               
+               
+            </div>
+            <div class="refparameter"><b><a name="d41e123"></a>Parameters</b>
+               
+               
+               <div class="variablelist">
+                  <dl>
+                     <dt><a name="d41e126"></a><span class="term">node</span></dt>
+                     <dd>
+                        <p><a name="d41e129"></a>The section node for which the level should be calculated.
+                           Defaults to the context node.
+                        </p>
+                     </dd>
+                  </dl>
+               </div>
+               
+               
+            </div>
+            <div class="refreturn"><b><a name="d41e133"></a>Returns</b>
+               
+               
+               <p>The section level, &#8220;2&#8221;, &#8220;3&#8221;, etc.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.qanda.section.level"></a>qanda.section.level
+            </h1>
+            <div class="refnamediv"><a name="d41e145"></a><h2>Name</h2>qanda.section.level &#8212; Returns the hierarchical level of a QandASet.
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e150"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="qanda.section.level"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e153"></a>
+               
+               
+               <p>This template calculates the hierarchical level of a QandASet.
+                  
+               </p>
+               
+               
+            </div>
+            <div class="refreturn"><b><a name="d41e158"></a>Returns</b>
+               
+               
+               <p>The level, &#8220;1&#8221;, &#8220;2&#8221;, etc.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.select.mediaobject"></a>select.mediaobject
+            </h1>
+            <div class="refnamediv"><a name="d41e170"></a><h2>Name</h2>select.mediaobject &#8212; Selects an appropriate media object from a list
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e175"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="select.mediaobject"&gt;
+&lt;xsl:param name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject|textobject"/&gt;
+&lt;xsl:param name="count"&gt;1&lt;/xsl:param&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e178"></a>
+               
+               
+               <p>This template examines a list of media objects (usually the
+                  children of a mediaobject or inlinemediaobject) and processes
+                  the "right" object.
+               </p>
+               
+               
+               
+               
+               <p>This template relies on a template named "is.acceptable.mediaobject"
+                  to determine if a given object is an acceptable graphic. The semantics
+                  of media objects is that the first acceptable graphic should be used.
+                  
+               </p>
+               
+               
+               
+               
+               <p>If no acceptable object is located, nothing happens.</p>
+               
+               
+            </div>
+            <div class="refparameter"><b><a name="d41e189"></a>Parameters</b>
+               
+               
+               <div class="variablelist">
+                  <dl>
+                     <dt><a name="d41e192"></a><span class="term">olist</span></dt>
+                     <dd>
+                        <p><a name="d41e195"></a>The node list of potential objects to examine.
+                        </p>
+                     </dd>
+                  </dl>
+               </div>
+               
+               
+            </div>
+            <div class="refreturn"><b><a name="d41e199"></a>Returns</b>
+               
+               
+               <p>Calls &lt;xsl:apply-templates&gt; on the selected object.</p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.is.acceptable.mediaobject"></a>is.acceptable.mediaobject
+            </h1>
+            <div class="refnamediv"><a name="d41e205"></a><h2>Name</h2>is.acceptable.mediaobject &#8212; Returns '1' if the specified media object is recognized.
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e210"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="is.acceptable.mediaobject"&gt;
+&lt;xsl:param name="object"/&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e213"></a>
+               
+               
+               <p>This template examines a media object and returns '1' if the
+                  object is recognized as a graphic.
+               </p>
+               
+               
+            </div>
+            <div class="refparameter"><b><a name="d41e218"></a>Parameters</b>
+               
+               
+               <div class="variablelist">
+                  <dl>
+                     <dt><a name="d41e221"></a><span class="term">object</span></dt>
+                     <dd>
+                        <p><a name="d41e224"></a>The media object to consider.
+                        </p>
+                     </dd>
+                  </dl>
+               </div>
+               
+               
+            </div>
+            <div class="refreturn"><b><a name="d41e228"></a>Returns</b>
+               
+               
+               <p>0 or 1</p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.check.id.unique"></a>check.id.unique
+            </h1>
+            <div class="refnamediv"><a name="d41e234"></a><h2>Name</h2>check.id.unique &#8212; Warn users about references to non-unique IDs
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e239"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="check.id.unique"&gt;
+&lt;xsl:param name="linkend"/&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e242"></a>
+               
+               
+               <p>If passed an ID in <tt>linkend</tt>,
+                  <tt>check.id.unique</tt> prints
+                  a warning message to the user if either the ID does not exist or
+                  the ID is not unique.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.check.idref.targets"></a>check.idref.targets
+            </h1>
+            <div class="refnamediv"><a name="d41e254"></a><h2>Name</h2>check.idref.targets &#8212; Warn users about incorrectly typed references
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e259"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="check.idref.targets"&gt;
+&lt;xsl:param name="linkend"/&gt;
+&lt;xsl:param name="element-list"/&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e262"></a>
+               
+               
+               <p>If passed an ID in <tt>linkend</tt>,
+                  <tt>check.idref.targets</tt> makes sure that the element
+                  pointed to by the link is one of the elements listed in
+                  <tt>element-list</tt> and warns the user otherwise.
+               </p>
+               
+               
+            </div>
+         </div>
+      </div>
+   </body>
+</html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/copyright.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/copyright.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/copyright.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Copyright</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="legalnotice"><p class="legalnotice-title"><b>Copyright</b></p><p>Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation files
+(the &#8220;Software&#8221;), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+</p><p>The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.</p><p>Except as contained in this notice, the names of individuals
+credited with contribution to this software shall not be used in
+advertising or otherwise to promote the sale, use or other dealings in
+this Software without prior written authorization from the individuals
+in question.</p><p>Any stylesheet derived from this Software that is publically
+distributed will be identified with a different name and the version
+strings in any derived Software will be changed so that no possibility
+of confusion between the derived package and this Software will
+exist.</p></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/extensions.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/extensions.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/extensions.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,41 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter 2. Saxon Extensions</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"><link rel="home" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="up" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="previous" href="ch01s04.html" title="Customizing DocBook XSL stylesheets"><link rel="next" href="ch02s02.html" title="Using the Extensions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Saxon Extensions</th></tr><tr><td width="20%" align="left"><a href="ch01s04.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a href="ch02s02.html">Next</a></td></tr></table><hr></div><p>Beginning with release 1.25, the DocBook XSL Stylesheets include
+a set of Java extensions for Saxon.</p><p>These extensions enable callouts, numbered program listings, and
+the direct inclusion of text:</p><div class="programlistingco"><pre class="programlisting">@rem = '--*-Perl-*--
+ at echo off
+perl.exe %_batchname %$
+goto endofperl
+ at rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+ at DIRS = ("/home/nwalsh/Mail");
+while (@DIRS) {
+    $dir = shift @DIRS;
+    opendir (DIR, $dir);
+    while ($fname = readdir(DIR)) {
+        $file = "$dir/$fname";
+        next if ! -d $file;
+        next if $fname =~ /^\.\.?$/;
+
+        print "$file\n";
+        push (@DIRS, $file);
+        &amp;compress ($file);
+    }
+}
+
+exit;</pre><div class="calloutlist"><a name="c44b1b4b5b3"></a><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a name="c44b1b4b5b3b1"></a><img src="../images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>The prologue handles embedding a Perl script in a DOS batch file.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="c44b1b4b5b3b2"></a><img src="../images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>The <tt>goto</tt> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="c44b1b4b5b3b3"></a><img src="../images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>The <tt>require</tt> statement sources in external program
+fragments.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="c44b1b4b5b3b4"></a><img src="../images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>The <tt>use</tt> statement is similar, but has additional
+utility.  It is a Perl5 function.  (Note that this callout area specifies
+both a line and a column.)</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="c44b1b4b5b3b5"></a><img src="../images/callouts/5.png" alt="5" border="0"></td><td valign="top" align="left"><p>This is a user subroutine call.</p></td></tr></table></div></div><p>The extensions are included in the distribution in
+<tt>extensions/nwalsh.jar</tt>. Just make sure that jar
+file is in your CLASSPATH when you run Saxon.</p><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="ch01s04.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a href="ch02s02.html">Next</a></td></tr><tr><td width="40%" align="left">Customizing DocBook XSL stylesheets&nbsp;</td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right">&nbsp;Using the Extensions</td></tr></table></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+2001-04-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* .cvsignore, Makefile: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/param.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/param.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/param.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1616 @@
+<html>
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   
+      <title>Formatting Object Parameter Reference</title>
+      <link rel="stylesheet" href="../reference.css" type="text/css">
+      <meta name="generator" content="DocBook XSL Stylesheets V1.39">
+   </head>
+   <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+      <div class="reference">
+         <div class="titlepage">
+            <div>
+               <h1 class="title"><a name="d41e1"></a>Formatting Object Parameter Reference
+               </h1>
+            </div>
+            <div>
+               <h3 class="author">Norman Walsh</h3>
+            </div>
+            <div>
+               <p class="releaseinfo">
+                  $Id: param.html,v 1.1 2001/06/23 17:06:31 veillard Exp $
+                  
+               </p>
+            </div>
+            <div>
+               <p class="copyright"><a href="../copyright.html">Copyright</a> &copy; 1999, 2000 by Norman Walsh. <a href="../warranty.html">No Warranty</a>.
+               </p>
+            </div>
+            <hr>
+         </div>
+         <div class="partintro">
+            <div></div>
+            <div class="section"><a name="d41e24"></a><div class="titlepage">
+                  <div>
+                     <h2 class="title" style="clear: both"><a name="d41e24"></a>Introduction
+                     </h2>
+                  </div>
+               </div>
+               <p>This is technical reference documentation for the DocBook XSL
+                  Stylesheets; it documents (some of) the parameters, templates, and
+                  other elements of the stylesheets.
+               </p>
+               <p>This reference describes each of the Formatting Object
+                  Stylesheet parameters.  These are the &#8220;easily
+                  customizable&#8221; parts of the stylesheet.  If you want to specify
+                  an alternate value for one or more of these parameters, you can do so
+                  in a &#8220;driver&#8221; stylesheet.
+               </p>
+               <p>For example, if you want to turn on automatic section numbering,
+                  you might create a driver stylesheet like this:
+               </p><pre class="programlisting">&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'&gt;
+
+  &lt;xsl:import href="/path/to/fo/docbook.xsl"/&gt;
+
+  &lt;xsl:param name="section.autolabel" select="1"/&gt;
+
+&lt;/xsl:stylesheet&gt;</pre><p>Naturally, you have to change the
+                  <tt>href</tt> attribute on
+                  <tt>&lt;xsl:import&gt;</tt>
+                  to point to <tt>docbook.xsl</tt>
+                  on your system.
+               </p>
+               <p>This is not intended to be &#8220;user&#8221; documentation.
+                  It is provided for developers writing customization layers for the
+                  stylesheets, and for anyone who's interested in &#8220;how it
+                  works&#8221;.
+               </p>
+               <p>Although I am trying to be thorough, this documentation is known
+                  to be incomplete. Don't forget to read the source, too :-)
+               </p>
+            </div>
+            <div class="toc">
+               <p><b>Table of Contents</b></p>
+               <dl>
+                  <dt><a href="#param.admon.graphics.extension">admon.graphics.extension</a></dt>
+                  <dt><a href="#var.qandadiv.autolabel">qandadiv.autolabel</a></dt>
+                  <dt><a href="#var.qanda.inherit.numeration">qanda.inherit.numeration</a></dt>
+                  <dt><a href="#var.graphic.default.extension">graphic.default.extension</a></dt>
+                  <dt><a href="#attrset.formal.title.properties">formal.title.properties mode</a></dt>
+                  <dt><a href="#attrset.component.title.properties">component.title.properties mode</a></dt>
+                  <dt><a href="#attrset.admonition.title.properties">admonition.title.properties mode</a></dt>
+                  <dt><a href="#attrset.xref.properties">xref.properties mode</a></dt>
+                  <dt><a href="#param.insert.xref.page.number">insert.xref.page.number</a></dt>
+                  <dt><a href="#attrset.normal.para.spacing">normal.para.spacing mode</a></dt>
+                  <dt><a href="#attrset.list.block.spacing">list.block.spacing mode</a></dt>
+                  <dt><a href="#attrset.list.item.spacing">list.item.spacing mode</a></dt>
+                  <dt><a href="#param.rootid">rootid</a></dt>
+                  <dt><a href="#param.callout.graphics">callout.graphics</a></dt>
+                  <dt><a href="#param.callout.unicode">callout.unicode</a></dt>
+                  <dt><a href="#param.callout.dingbats">callout.dingbats</a></dt>
+                  <dt><a href="#param.callout.unicode.start.character">callout.unicode.start.character</a></dt>
+                  <dt><a href="#param.callout.unicode.number.limit">callout.unicode.number.limit</a></dt>
+                  <dt><a href="#param.callout.graphics.extension">callout.graphics.extension</a></dt>
+                  <dt><a href="#param.callout.graphics.path">callout.graphics.path</a></dt>
+                  <dt><a href="#param.callout.graphics.number.limit">callout.graphics.number.limit</a></dt>
+                  <dt><a href="#param.use.extensions">use.extensions</a></dt>
+                  <dt><a href="#param.textinsert.extension">textinsert.extension</a></dt>
+                  <dt><a href="#param.linenumbering.extension">linenumbering.extension</a></dt>
+                  <dt><a href="#param.linenumbering.everyNth">linenumbering.everyNth</a></dt>
+                  <dt><a href="#param.linenumbering.width">linenumbering.width</a></dt>
+                  <dt><a href="#param.linenumbering.separator">linenumbering.separator</a></dt>
+                  <dt><a href="#param.callouts.extension">callouts.extension</a></dt>
+                  <dt><a href="#param.callout.defaultcolumn">callout.defaultcolumn</a></dt>
+                  <dt><a href="#param.tablecolumns.extension">tablecolumns.extension</a></dt>
+                  <dt><a href="#param.nominal.table.width">nominal.table.width</a></dt>
+                  <dt><a href="#param.default.table.width">default.table.width</a></dt>
+                  <dt><a href="#param.paper.type">paper.type</a></dt>
+                  <dt><a href="#param.page.orientation">page.orientation</a></dt>
+                  <dt><a href="#param.page.width.portrait">page.width.portrait</a></dt>
+                  <dt><a href="#param.page.height.portrait">page.height.portrait</a></dt>
+                  <dt><a href="#param.page.width">page.width</a></dt>
+                  <dt><a href="#param.page.height">page.height</a></dt>
+                  <dt><a href="#param.double.sided">double.sided</a></dt>
+                  <dt><a href="#param.column.count">column.count</a></dt>
+                  <dt><a href="#param.region.after.extent">region.after.extent</a></dt>
+                  <dt><a href="#param.region.before.extent">region.before.extent</a></dt>
+                  <dt><a href="#param.page.margin.top">page.margin.top</a></dt>
+                  <dt><a href="#param.page.margin.bottom">page.margin.bottom</a></dt>
+                  <dt><a href="#param.page.margin.inner">page.margin.inner</a></dt>
+                  <dt><a href="#param.page.margin.outer">page.margin.outer</a></dt>
+                  <dt><a href="#param.body.margin.bottom">body.margin.bottom</a></dt>
+                  <dt><a href="#param.body.margin.top">body.margin.top</a></dt>
+                  <dt><a href="#param.body.font.family">body.font.family</a></dt>
+                  <dt><a href="#param.title.font.family">title.font.family</a></dt>
+                  <dt><a href="#param.monospace.font.family">monospace.font.family</a></dt>
+                  <dt><a href="#param.sans.font.family">sans.font.family</a></dt>
+                  <dt><a href="#param.body.font.master">body.font.master</a></dt>
+                  <dt><a href="#param.body.font.size">body.font.size</a></dt>
+                  <dt><a href="#param.footnote.font.size">footnote.font.size</a></dt>
+                  <dt><a href="#param.hyphenate">hyphenate</a></dt>
+                  <dt><a href="#param.alignment">alignment</a></dt>
+                  <dt><a href="#param.stylesheet.result.type">stylesheet.result.type</a></dt>
+                  <dt><a href="#param.generate.component.toc">generate.component.toc</a></dt>
+                  <dt><a href="#param.generate.division.toc">generate.division.toc</a></dt>
+                  <dt><a href="#param.generate.division.figure.lot">generate.division.figure.lot</a></dt>
+                  <dt><a href="#param.generate.division.example.lot">generate.division.example.lot</a></dt>
+                  <dt><a href="#param.generate.division.equation.lot">generate.division.equation.lot</a></dt>
+                  <dt><a href="#param.generate.division.table.lot">generate.division.table.lot</a></dt>
+                  <dt><a href="#param.passivetex.extensions">passivetex.extensions</a></dt>
+                  <dt><a href="#param.arbortext.extensions">arbortext.extensions</a></dt>
+                  <dt><a href="#param.fop.extensions">fop.extensions</a></dt>
+                  <dt><a href="#param.default.units">default.units</a></dt>
+                  <dt><a href="#param.label.from.part">label.from.part</a></dt>
+               </dl>
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.admon.graphics.extension"></a>admon.graphics.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e63"></a><h2>Name</h2>admon.graphics.extension &#8212; Extension for admonition graphics
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e68"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="admon.graphics.extension" select="'.png'" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e71"></a>
+               
+               
+               <p>Sets the extension to use on admonition graphics.</p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="var.qandadiv.autolabel"></a>qandadiv.autolabel
+            </h1>
+            <div class="refnamediv"><a name="d41e77"></a><h2>Name</h2>qandadiv.autolabel &#8212; Are divisions in QAndASets enumerated?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e82"></a><h2>Synopsis</h2><pre class="synopsis"></pre></div>
+            <div class="refdescription"><a name="d41e84"></a>
+               
+               
+               <p>If true (non-zero), unlabeled qandadivs will be enumerated.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="var.qanda.inherit.numeration"></a>qanda.inherit.numeration
+            </h1>
+            <div class="refnamediv"><a name="d41e90"></a><h2>Name</h2>qanda.inherit.numeration &#8212; Does enumeration of QandASet components inherit the numeration of parent elements?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e95"></a><h2>Synopsis</h2><pre class="synopsis"></pre></div>
+            <div class="refdescription"><a name="d41e97"></a>
+               
+               
+               <p>If true (non-zero), numbered QandADiv elements and Questions and Answers inherit
+                  the numeration of the ancestors of the QandASet.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="var.graphic.default.extension"></a>graphic.default.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e103"></a><h2>Name</h2>graphic.default.extension &#8212; Default extension for graphic filenames
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e108"></a><h2>Synopsis</h2><pre class="synopsis"></pre></div>
+            <div class="refdescription"><a name="d41e110"></a>
+               
+               
+               <p>If a <tt>graphic</tt> or <tt>mediaobject</tt>
+                  includes a reference to a filename that does not include an extension,
+                  and the <tt>format</tt> attribute is
+                  <i>unspecified</i>, the default extension will be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="attrset.formal.title.properties"></a>formal.title.properties mode
+            </h1>
+            <div class="refnamediv"><a name="d41e128"></a><h2>Name</h2>formal.title.properties mode &#8212; Properties of formal object titles
+            </div>
+            <div class="refdescription"><a name="d41e133"></a>
+               
+               
+               <p>This attribute set is used to specify the properties of formal
+                  object titles.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="attrset.component.title.properties"></a>component.title.properties mode
+            </h1>
+            <div class="refnamediv"><a name="d41e139"></a><h2>Name</h2>component.title.properties mode &#8212; Properties of component titles
+            </div>
+            <div class="refdescription"><a name="d41e144"></a>
+               
+               
+               <p>This attribute set is used to specify the properties of component
+                  titles.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="attrset.admonition.title.properties"></a>admonition.title.properties mode
+            </h1>
+            <div class="refnamediv"><a name="d41e150"></a><h2>Name</h2>admonition.title.properties mode &#8212; Properties of admonition titles
+            </div>
+            <div class="refdescription"><a name="d41e155"></a>
+               
+               
+               <p>This attribute set is used to specify the properties of admonition
+                  titles.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="attrset.xref.properties"></a>xref.properties mode
+            </h1>
+            <div class="refnamediv"><a name="d41e161"></a><h2>Name</h2>xref.properties mode &#8212; Visual properties of hotlinks
+            </div>
+            <div class="refdescription"><a name="d41e166"></a>
+               
+               
+               <p>This attribute set is used to specify properties of xrefs
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.insert.xref.page.number"></a>insert.xref.page.number
+            </h1>
+            <div class="refnamediv"><a name="d41e172"></a><h2>Name</h2>insert.xref.page.number &#8212; Turns page numbers in xrefs on and off
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e177"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="insert.xref.page.number" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e180"></a>
+               
+               
+               <p>When equal to 1, this parameter triggers generation of page
+                  number citations after xrefs.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="attrset.normal.para.spacing"></a>normal.para.spacing mode
+            </h1>
+            <div class="refnamediv"><a name="d41e186"></a><h2>Name</h2>normal.para.spacing mode &#8212; Spacing properties of normal paragraphs
+            </div>
+            <div class="refdescription"><a name="d41e191"></a>
+               
+               
+               <p>This attribute set is used to specify the spacing properties
+                  of normal paragraphs.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="attrset.list.block.spacing"></a>list.block.spacing mode
+            </h1>
+            <div class="refnamediv"><a name="d41e197"></a><h2>Name</h2>list.block.spacing mode &#8212; Spacing properties of list blocks
+            </div>
+            <div class="refdescription"><a name="d41e202"></a>
+               
+               
+               <p>This attribute set is used to specify the spacing properties
+                  of list blocks.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="attrset.list.item.spacing"></a>list.item.spacing mode
+            </h1>
+            <div class="refnamediv"><a name="d41e208"></a><h2>Name</h2>list.item.spacing mode &#8212; Spacing properties of list items
+            </div>
+            <div class="refdescription"><a name="d41e213"></a>
+               
+               
+               <p>This attribute set is used to specify the spacing properties
+                  of list items.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.rootid"></a>rootid
+            </h1>
+            <div class="refnamediv"><a name="d41e219"></a><h2>Name</h2>rootid &#8212; Specify the root element to format
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e224"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="rootid" select="''"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e227"></a>
+               
+               
+               <p>If <i><tt>rootid</tt></i> is specified, it must be the
+                  value of an ID that occurs in the document being formatted. The entire
+                  document will be loaded and parsed, but formatting will begin at the
+                  element identified, rather than at the root. For example, this allows
+                  you to process only chapter 4 of a book.
+               </p>
+               
+               
+               
+               <p>Because the entire document is available to the processor, automatic
+                  numbering, cross references, and other dependencies are correctly
+                  resolved.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.graphics"></a>callout.graphics
+            </h1>
+            <div class="refnamediv"><a name="d41e239"></a><h2>Name</h2>callout.graphics &#8212; Use graphics for callouts?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e244"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.graphics" select="'0'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e247"></a>
+               
+               
+               <p>If non-zero, callouts are presented with graphics (e.g., reverse-video
+                  circled numbers instead of "(1)", "(2)", etc.).
+                  Default graphics are provided in the distribution.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.unicode"></a>callout.unicode
+            </h1>
+            <div class="refnamediv"><a name="d41e253"></a><h2>Name</h2>callout.unicode &#8212; First character to use for Unicode callouts
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e258"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.unicode" select="1"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e261"></a>
+               
+               
+               <p>If non-zero, callouts are presented with Unicode characters
+                  starting with the character specified. Zero indicates that Unicode
+                  callouts should not be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.dingbats"></a>callout.dingbats
+            </h1>
+            <div class="refnamediv"><a name="d41e267"></a><h2>Name</h2>callout.dingbats &#8212; Use Zapf Dingbats for callouts?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e272"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.dingbats" select="'0'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e275"></a>
+               
+               
+               <p>If non-zero, callouts are presented with Zapf Dingbats.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.unicode.start.character"></a>callout.unicode.start.character
+            </h1>
+            <div class="refnamediv"><a name="d41e281"></a><h2>Name</h2>callout.unicode.start.character &#8212; Number of the largest callout graphic
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e286"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.unicode.start.character" select="10102" doc:type="integer"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e289"></a>
+               
+               
+               <p>If <i><tt>callout.graphics</tt></i>
+                  is non-zero, graphics are used to represent
+                  callout numbers. The value of
+                  <i><tt>callout.graphics.number.limit</tt></i>
+                  is
+                  the largest number for which a graphic exists. If the callout number
+                  exceeds this limit, the default presentation "(nnn)" will always
+                  be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.unicode.number.limit"></a>callout.unicode.number.limit
+            </h1>
+            <div class="refnamediv"><a name="d41e301"></a><h2>Name</h2>callout.unicode.number.limit &#8212; Number of the largest callout graphic
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e306"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.unicode.number.limit" select="'10'" doc:type="integer"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e309"></a>
+               
+               
+               <p>If <i><tt>callout.graphics</tt></i>
+                  is non-zero, graphics are used to represent
+                  callout numbers. The value of
+                  <i><tt>callout.graphics.number.limit</tt></i>
+                  is
+                  the largest number for which a graphic exists. If the callout number
+                  exceeds this limit, the default presentation "(nnn)" will always
+                  be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.graphics.extension"></a>callout.graphics.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e321"></a><h2>Name</h2>callout.graphics.extension &#8212; Extension for callout graphics
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e326"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.graphics.extension" select="'.png'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e329"></a>
+               
+               
+               <p>Sets the extension to use on callout graphics.</p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.graphics.path"></a>callout.graphics.path
+            </h1>
+            <div class="refnamediv"><a name="d41e335"></a><h2>Name</h2>callout.graphics.path &#8212; Path to callout graphics
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e340"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.graphics.path" select="'../images/callouts/'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e343"></a>
+               
+               
+               <p>Sets the path, probably relative to the directory where the HTML
+                  files are created, to the callout graphics.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.graphics.number.limit"></a>callout.graphics.number.limit
+            </h1>
+            <div class="refnamediv"><a name="d41e349"></a><h2>Name</h2>callout.graphics.number.limit &#8212; Number of the largest callout graphic
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e354"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.graphics.number.limit" select="'10'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e357"></a>
+               
+               
+               <p>If <i><tt>callout.graphics</tt></i>
+                  is non-zero, graphics are used to represent
+                  callout numbers. The value of
+                  <i><tt>callout.graphics.number.limit</tt></i>
+                  is
+                  the largest number for which a graphic exists. If the callout number
+                  exceeds this limit, the default presentation "(nnn)" will always
+                  be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.use.extensions"></a>use.extensions
+            </h1>
+            <div class="refnamediv"><a name="d41e369"></a><h2>Name</h2>use.extensions &#8212; Enable extensions
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e374"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="use.extensions" select="'0'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e377"></a>
+               
+               
+               <p>If non-zero, extensions may be used. Each extension is
+                  further controlled by its own parameter. But if
+                  <i><tt>use.extensions</tt></i> is zero, no extensions will
+                  be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.textinsert.extension"></a>textinsert.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e386"></a><h2>Name</h2>textinsert.extension &#8212; Enable the textinsert extension element
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e391"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="textinsert.extension" select="'1'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e394"></a>
+               
+               
+               <p>The textinsert extension element inserts the contents of a
+                  a file into the result tree (as text).
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.linenumbering.extension"></a>linenumbering.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e400"></a><h2>Name</h2>linenumbering.extension &#8212; Enable the line numbering extension
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e405"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="linenumbering.extension" select="'1'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e408"></a>
+               
+               
+               <p>If true, verbatim environments (elements that have the
+                  format='linespecific' notation attribute: address, literallayout,
+                  programlisting, screen, synopsis) that specify line numbering will
+                  have, surprise, line numbers.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.linenumbering.everyNth"></a>linenumbering.everyNth
+            </h1>
+            <div class="refnamediv"><a name="d41e414"></a><h2>Name</h2>linenumbering.everyNth &#8212; Indicate which lines should be numbered
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e419"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="linenumbering.everyNth" select="'5'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e422"></a>
+               
+               
+               <p>If line numbering is enabled, everyNth line will be numbered.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.linenumbering.width"></a>linenumbering.width
+            </h1>
+            <div class="refnamediv"><a name="d41e428"></a><h2>Name</h2>linenumbering.width &#8212; Indicates the width of line numbers
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e433"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="linenumbering.width" select="'3'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e436"></a>
+               
+               
+               <p>If line numbering is enabled, line numbers will appear right
+                  justified in a field "width" characters wide.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.linenumbering.separator"></a>linenumbering.separator
+            </h1>
+            <div class="refnamediv"><a name="d41e442"></a><h2>Name</h2>linenumbering.separator &#8212; Specify a separator between line numbers and lines
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e447"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="linenumbering.separator" select="' '"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e450"></a>
+               
+               
+               <p>The separator is inserted between line numbers and lines in
+                  the verbatim environment.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callouts.extension"></a>callouts.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e456"></a><h2>Name</h2>callouts.extension &#8212; Enable the callout extension
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e461"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callouts.extension" select="'1'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e464"></a>
+               
+               
+               <p>The callouts extension processes <tt>areaset</tt>
+                  elements in <tt>ProgramListingCO</tt> and other text-based
+                  callout elements.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.defaultcolumn"></a>callout.defaultcolumn
+            </h1>
+            <div class="refnamediv"><a name="d41e476"></a><h2>Name</h2>callout.defaultcolumn &#8212; Indicates what column callouts appear in by default
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e481"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.defaultcolumn" select="'60'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e484"></a>
+               
+               
+               <p>If a callout does not identify a column (for example, if it uses
+                  the <tt>linerange</tt> <tt>unit</tt>),
+                  it will appear in the default column.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.tablecolumns.extension"></a>tablecolumns.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e496"></a><h2>Name</h2>tablecolumns.extension &#8212; Enable the table columns extension function
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e501"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="tablecolumns.extension" select="'1'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e504"></a>
+               
+               
+               <p>The table columns extension function adjusts the widths of table
+                  columns in the HTML result to more accurately reflect the specifications
+                  in the CALS table.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.nominal.table.width"></a>nominal.table.width
+            </h1>
+            <div class="refnamediv"><a name="d41e510"></a><h2>Name</h2>nominal.table.width &#8212; The (absolute) nominal width of tables
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e515"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="nominal.table.width" select="'6in'" doc:type="length"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e518"></a>
+               
+               
+               <p>In order to convert CALS column widths into FO column widths, it
+                  is sometimes necessary to have an absolute table width to use for conversion
+                  of mixed absolute and relative widths. This value must be an absolute
+                  length (not a percentage).
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.default.table.width"></a>default.table.width
+            </h1>
+            <div class="refnamediv"><a name="d41e524"></a><h2>Name</h2>default.table.width &#8212; The default width of tables
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e529"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="default.table.width" select="''" doc:type="length"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e532"></a>
+               
+               
+               <p>If specified, this value will be used for the WIDTH attribute on
+                  tables that do not specify an alternate width (with the dbhtml processing
+                  instruction).
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.paper.type"></a>paper.type
+            </h1>
+            <div class="refnamediv"><a name="d41e538"></a><h2>Name</h2>paper.type &#8212; Select the paper type
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e543"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="paper.type" select="'USletter'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e546"></a>
+               
+               
+               <p>The paper type is a convenient way to specify the paper size.
+                  The list of known paper sizes includes USletter and most of the A,
+                  B, and C sizes. See <tt>page.width.portrait</tt>, for example.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.page.orientation"></a>page.orientation
+            </h1>
+            <div class="refnamediv"><a name="d41e555"></a><h2>Name</h2>page.orientation &#8212; Select the page orientation
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e560"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="page.orientation" select="'portrait'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e563"></a>
+               
+               
+               <p>In portrait orientation, the short edge is horizontal; in
+                  landscape orientation, it is vertical.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.page.width.portrait"></a>page.width.portrait
+            </h1>
+            <div class="refnamediv"><a name="d41e569"></a><h2>Name</h2>page.width.portrait &#8212; Specify the physical size of the short edge of the page
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e574"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="page.width.portrait"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$paper.type = 'USletter'"&gt;8.5in&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '4A0'"&gt;1682mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '2A0'"&gt;1189mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A0'"&gt;841mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A1'"&gt;594mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A2'"&gt;420mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A3'"&gt;297mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A4'"&gt;210mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A5'"&gt;148mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A6'"&gt;105mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A7'"&gt;74mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A8'"&gt;52mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A9'"&gt;37mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A10'"&gt;26mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B0'"&gt;1000mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B1'"&gt;707mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B2'"&gt;500mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B3'"&gt;353mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B4'"&gt;250mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B5'"&gt;176mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B6'"&gt;125mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B7'"&gt;88mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B8'"&gt;62mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B9'"&gt;44mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B10'"&gt;31mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C0'"&gt;917mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C1'"&gt;648mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C2'"&gt;458mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C3'"&gt;324mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C4'"&gt;229mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C5'"&gt;162mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C6'"&gt;114mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C7'"&gt;81mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C8'"&gt;57mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C9'"&gt;40mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C10'"&gt;28mm&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;8.5in&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e577"></a>
+               
+               
+               <p>The portrait page width is the length of the short
+                  edge of the physical page.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.page.height.portrait"></a>page.height.portrait
+            </h1>
+            <div class="refnamediv"><a name="d41e583"></a><h2>Name</h2>page.height.portrait &#8212; Specify the physical size of the long edge of the page
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e588"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="page.height.portrait"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$paper.type = 'A4landscape'"&gt;210mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'USletter'"&gt;11in&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'USlandscape'"&gt;8.5in&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '4A0'"&gt;2378mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = '2A0'"&gt;1682mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A0'"&gt;1189mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A1'"&gt;841mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A2'"&gt;594mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A3'"&gt;420mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A4'"&gt;297mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A5'"&gt;210mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A6'"&gt;148mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A7'"&gt;105mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A8'"&gt;74mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A9'"&gt;52mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'A10'"&gt;37mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B0'"&gt;1414mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B1'"&gt;1000mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B2'"&gt;707mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B3'"&gt;500mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B4'"&gt;353mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B5'"&gt;250mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B6'"&gt;176mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B7'"&gt;125mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B8'"&gt;88mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B9'"&gt;62mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'B10'"&gt;44mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C0'"&gt;1297mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C1'"&gt;917mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C2'"&gt;648mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C3'"&gt;458mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C4'"&gt;324mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C5'"&gt;229mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C6'"&gt;162mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C7'"&gt;114mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C8'"&gt;81mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C9'"&gt;57mm&lt;/xsl:when&gt;
+    &lt;xsl:when test="$paper.type = 'C10'"&gt;40mm&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;11in&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e591"></a>
+               
+               
+               <p>The portrait page height is the length of the long
+                  edge of the physical page.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.page.width"></a>page.width
+            </h1>
+            <div class="refnamediv"><a name="d41e597"></a><h2>Name</h2>page.width &#8212; The width of the physical page
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e602"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="page.width"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$page.orientation = 'portrait'"&gt;
+      &lt;xsl:value-of select="$page.width.portrait"/&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$page.height.portrait"/&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e605"></a>
+               
+               
+               <p>The page width is generally calculated from the
+                  <tt>paper.type</tt> and
+                  <tt>page.orientation</tt>.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.page.height"></a>page.height
+            </h1>
+            <div class="refnamediv"><a name="d41e617"></a><h2>Name</h2>page.height &#8212; The height of the physical page
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e622"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="page.height"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$page.orientation = 'portrait'"&gt;
+      &lt;xsl:value-of select="$page.height.portrait"/&gt;
+    &lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;
+      &lt;xsl:value-of select="$page.width.portrait"/&gt;
+    &lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e625"></a>
+               
+               
+               <p>The page height is generally calculated from the
+                  <tt>paper.type</tt> and
+                  <tt>page.orientation</tt>.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.double.sided"></a>double.sided
+            </h1>
+            <div class="refnamediv"><a name="d41e637"></a><h2>Name</h2>double.sided &#8212; Is the document to be printed double sided?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e642"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="double.sided" select="'0'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e645"></a>
+               
+               
+               <p>Double-sided documents are printed with a slightly wider margin
+                  on the binding edge of the page.
+                  
+               </p>
+               
+               
+               
+               <p>FIXME: The current set of parameters does not take writing direction
+                  into account.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.column.count"></a>column.count
+            </h1>
+            <div class="refnamediv"><a name="d41e654"></a><h2>Name</h2>column.count &#8212; Specifies the number of columns of text on the page
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e659"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="column.count" select="'1'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e662"></a>
+               
+               
+               <p>The specified number of columns of text will appear on each page.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.region.after.extent"></a>region.after.extent
+            </h1>
+            <div class="refnamediv"><a name="d41e668"></a><h2>Name</h2>region.after.extent &#8212; Specifies the height of the footer.
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e673"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="region.after.extent" select="'12pt'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e676"></a>
+               
+               
+               <p>The region after extent is the height of the area where footers
+                  are printed.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.region.before.extent"></a>region.before.extent
+            </h1>
+            <div class="refnamediv"><a name="d41e682"></a><h2>Name</h2>region.before.extent &#8212; Specifies the height of the header
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e687"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="region.before.extent" select="'12pt'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e690"></a>
+               
+               
+               <p>The region before extent is the height of the area where headers
+                  are printed.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.page.margin.top"></a>page.margin.top
+            </h1>
+            <div class="refnamediv"><a name="d41e696"></a><h2>Name</h2>page.margin.top &#8212; The top margin of the page
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e701"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="page.margin.top"&gt;1in&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e704"></a>
+               
+               
+               <p>The top page margin is the distance from the physical top of the
+                  page to the first line of text (body or header).
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.page.margin.bottom"></a>page.margin.bottom
+            </h1>
+            <div class="refnamediv"><a name="d41e710"></a><h2>Name</h2>page.margin.bottom &#8212; The bottom margin of the page
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e715"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="page.margin.bottom"&gt;1in&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e718"></a>
+               
+               
+               <p>The bottom page margin is the distance from the physical bottom of
+                  the page to the last line of text (body or footer).
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.page.margin.inner"></a>page.margin.inner
+            </h1>
+            <div class="refnamediv"><a name="d41e724"></a><h2>Name</h2>page.margin.inner &#8212; The inner page margin
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e729"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="page.margin.inner"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$double.sided != 0"&gt;1.25in&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;1in&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e732"></a>
+               
+               
+               <p>The inner page margin is the distance from binding edge of the
+                  page to the first column of text. In the left-to-right, top-to-bottom writing
+                  direction, this is the left margin of recto pages.
+               </p>
+               
+               
+               
+               <p>The inner and outer margins are usually the same unless the output
+                  is double-sided.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.page.margin.outer"></a>page.margin.outer
+            </h1>
+            <div class="refnamediv"><a name="d41e741"></a><h2>Name</h2>page.margin.outer &#8212; The outer page margin
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e746"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="page.margin.outer"&gt;
+  &lt;xsl:choose&gt;
+    &lt;xsl:when test="$double.sided != 0"&gt;0.75in&lt;/xsl:when&gt;
+    &lt;xsl:otherwise&gt;10pc&lt;/xsl:otherwise&gt;
+  &lt;/xsl:choose&gt;
+&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e749"></a>
+               
+               
+               <p>The outer page margin is the distance from non-binding edge of the
+                  page to the last column of text. In the left-to-right, top-to-bottom writing
+                  direction, this is the right margin of recto pages.
+               </p>
+               
+               
+               
+               <p>The inner and outer margins are usually the same unless the output
+                  is double-sided.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.body.margin.bottom"></a>body.margin.bottom
+            </h1>
+            <div class="refnamediv"><a name="d41e758"></a><h2>Name</h2>body.margin.bottom &#8212; The bottom margin of the body text
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e763"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="body.margin.bottom"&gt;24pt&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e766"></a>
+               
+               
+               <p>The body bottom margin is the distance from the last line of text
+                  in the page body to the bottom page margin. Note that the page footer, if
+                  any, appears in the space between the body bottom margin and the page
+                  bottom margin.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.body.margin.top"></a>body.margin.top
+            </h1>
+            <div class="refnamediv"><a name="d41e772"></a><h2>Name</h2>body.margin.top &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e777"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="body.margin.top"&gt;24pt&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e780"></a>
+               
+               
+               <p>The body top margin is the distance from the page top margin to
+                  the first line of text
+                  in the page body. Note that the page header, if
+                  any, appears in the space between the page top margin and the body
+                  top margin.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.body.font.family"></a>body.font.family
+            </h1>
+            <div class="refnamediv"><a name="d41e786"></a><h2>Name</h2>body.font.family &#8212; The default font family for body text
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e791"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="body.font.family"&gt;Times Roman&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e794"></a>
+               
+               
+               <p>The body font family is the default font used for text in the page body.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.title.font.family"></a>title.font.family
+            </h1>
+            <div class="refnamediv"><a name="d41e800"></a><h2>Name</h2>title.font.family &#8212; The default font family for titles
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e805"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="title.font.family"&gt;Helvetica&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e808"></a>
+               
+               
+               <p>The title font family is used for titles (chapter, section, figure,
+                  etc.)
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.monospace.font.family"></a>monospace.font.family
+            </h1>
+            <div class="refnamediv"><a name="d41e814"></a><h2>Name</h2>monospace.font.family &#8212; The default font family for monospace environments
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e819"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="monospace.font.family"&gt;Courier&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e822"></a>
+               
+               
+               <p>The monospace font family is used for verbatim environments
+                  (program listings, screens, etc.).
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.sans.font.family"></a>sans.font.family
+            </h1>
+            <div class="refnamediv"><a name="d41e828"></a><h2>Name</h2>sans.font.family &#8212; The default sans-serif font family
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e833"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="sans.font.family"&gt;Helvetica&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e836"></a>
+               
+               
+               <p>The default sans-serif font family. At the present, this isn't
+                  actually used by the stylesheets.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.body.font.master"></a>body.font.master
+            </h1>
+            <div class="refnamediv"><a name="d41e842"></a><h2>Name</h2>body.font.master &#8212; Specifies the default point size for body text
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e847"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="body.font.master"&gt;10&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e850"></a>
+               
+               
+               <p>The body font size is specified in two parameters
+                  (<tt>body.font.master</tt> and <tt>body.font.size</tt>)
+                  so that math can be performed on the font size by XSLT.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.body.font.size"></a>body.font.size
+            </h1>
+            <div class="refnamediv"><a name="d41e862"></a><h2>Name</h2>body.font.size &#8212; Specifies the default font size for body text
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e867"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="body.font.size"&gt;
+ &lt;xsl:value-of select="$body.font.master"/&gt;&lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e870"></a>
+               
+               
+               <p>The body font size is specified in two parameters
+                  (<tt>body.font.master</tt> and <tt>body.font.size</tt>)
+                  so that math can be performed on the font size by XSLT.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.footnote.font.size"></a>footnote.font.size
+            </h1>
+            <div class="refnamediv"><a name="d41e882"></a><h2>Name</h2>footnote.font.size &#8212; The font size for footnotes
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e887"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="footnote.font.size"&gt;
+ &lt;xsl:value-of select="$body.font.master * 0.8"/&gt;&lt;xsl:text&gt;pt&lt;/xsl:text&gt;
+&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e890"></a>
+               
+               
+               <p>The footnote font size is used for...footnotes!
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.hyphenate"></a>hyphenate
+            </h1>
+            <div class="refnamediv"><a name="d41e896"></a><h2>Name</h2>hyphenate &#8212; Specify hyphenation behavior
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e901"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="hyphenate"&gt;true&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e904"></a>
+               
+               
+               <p>If true, words may be hyphenated. Otherwise, they may not.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.alignment"></a>alignment
+            </h1>
+            <div class="refnamediv"><a name="d41e910"></a><h2>Name</h2>alignment &#8212; Specify the default text alignment
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e915"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="alignment"&gt;justify&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e918"></a>
+               
+               
+               <p>The default text alignment is used for most body text.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.stylesheet.result.type"></a>stylesheet.result.type
+            </h1>
+            <div class="refnamediv"><a name="d41e924"></a><h2>Name</h2>stylesheet.result.type &#8212; Identifies the output format of this stylesheet
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e929"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="stylesheet.result.type" select="'fo'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e932"></a>
+               
+               
+               <p>The extension functions need to know if the output format
+                  is HTML ('html') or XSL Formatting Objects ('fo'). This variable answers
+                  that question. Valid settings are 'html' or 'fo'.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.component.toc"></a>generate.component.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e938"></a><h2>Name</h2>generate.component.toc &#8212; Generate a table of contents for components?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e943"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.component.toc" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e946"></a>
+               
+               
+               <p>If non-zero, a table of contents is generated at the beginning
+                  of each component (chapters, appendixes, etc.)
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.division.toc"></a>generate.division.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e952"></a><h2>Name</h2>generate.division.toc &#8212; Generate a table of contents for divisions?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e957"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.division.toc" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e960"></a>
+               
+               
+               <p>If non-zero, a table of contents is generated at the beginning
+                  of each division (sets, books, etc.)
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.division.figure.lot"></a>generate.division.figure.lot
+            </h1>
+            <div class="refnamediv"><a name="d41e966"></a><h2>Name</h2>generate.division.figure.lot &#8212; Generate a list of titles for Figures?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e971"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.division.figure.lot" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e974"></a>
+               
+               
+               <p>If non-zero, a list of titles is generated for Figures.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.division.example.lot"></a>generate.division.example.lot
+            </h1>
+            <div class="refnamediv"><a name="d41e980"></a><h2>Name</h2>generate.division.example.lot &#8212; Generate a list of titles for Examples?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e985"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.division.example.lot" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e988"></a>
+               
+               
+               <p>If non-zero, a list of titles is generated for Examples.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.division.equation.lot"></a>generate.division.equation.lot
+            </h1>
+            <div class="refnamediv"><a name="d41e994"></a><h2>Name</h2>generate.division.equation.lot &#8212; Generate a list of titles for Equations?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e999"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.division.equation.lot" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1002"></a>
+               
+               
+               <p>If non-zero, a list of titles is generated for Equations.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.division.table.lot"></a>generate.division.table.lot
+            </h1>
+            <div class="refnamediv"><a name="d41e1008"></a><h2>Name</h2>generate.division.table.lot &#8212; Generate a list of titles for Tables?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1013"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.division.table.lot" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1016"></a>
+               
+               
+               <p>If non-zero, a list of titles is generated for Tables.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.passivetex.extensions"></a>passivetex.extensions
+            </h1>
+            <div class="refnamediv"><a name="d41e1022"></a><h2>Name</h2>passivetex.extensions &#8212; Enable PassiveTeX extensions?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1027"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="passivetex.extensions" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1030"></a>
+               
+               
+               <p>If non-zero,
+                  <a href="http://users.ox.ac.uk/~rahtz/passivetex/" target="_top">PassiveTeX</a>
+                  extensions will be used. At present, this consists of PDF bookmarks
+                  and sorted index terms.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.arbortext.extensions"></a>arbortext.extensions
+            </h1>
+            <div class="refnamediv"><a name="d41e1039"></a><h2>Name</h2>arbortext.extensions &#8212; Enable Arbortext extensions?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1044"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="arbortext.extensions" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1047"></a>
+               
+               
+               <p>If non-zero,
+                  <a href="http://www.arbortext.com/" target="_top">Arbortext</a>
+                  extensions will be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.fop.extensions"></a>fop.extensions
+            </h1>
+            <div class="refnamediv"><a name="d41e1056"></a><h2>Name</h2>fop.extensions &#8212; Enable FOP extensions?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1061"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="fop.extensions" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1064"></a>
+               
+               
+               <p>If non-zero,
+                  <a href="http://xml.apache.org/fop/" target="_top">FOP</a>
+                  extensions will be used. At present, this consists of PDF bookmarks.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.default.units"></a>default.units
+            </h1>
+            <div class="refnamediv"><a name="d41e1073"></a><h2>Name</h2>default.units &#8212; Default units for an unqualified dimension
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1078"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="default.units" select="'pt'" doc:type="list" doc:list="cm mm in pt pc px em"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1081"></a>
+               
+               
+               <p>If an unqualified dimension is encountered (for example, in a
+                  graphic width), the <i><tt>default-units</tt></i> will be used for the
+                  units. Unqualified dimensions are not allowed in XSL Formatting Objects.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.label.from.part"></a>label.from.part
+            </h1>
+            <div class="refnamediv"><a name="d41e1090"></a><h2>Name</h2>label.from.part &#8212; Renumber chapters in each part?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1095"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="label.from.part" select="'0'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1098"></a>
+               
+               
+               <p>If <i><tt>label.from.part</tt></i> is non-zero, components
+                  (<tt>chapter</tt>s, <tt>appendixe</tt>s, etc.)
+                  will be numbered from 1 in each <tt>part</tt>. Otherwise,
+                  they will be numbered monotonically throughout each
+                  <tt>book</tt>.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+      </div>
+   </body>
+</html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/table.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/table.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/fo/table.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,181 @@
+<html>
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   
+      <title>Formatting Object Table Reference</title>
+      <link rel="stylesheet" href="../reference.css" type="text/css">
+      <meta name="generator" content="DocBook XSL Stylesheets V1.37">
+   </head>
+   <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+      <div class="reference">
+         <div class="titlepage">
+            <div>
+               <h1 class="title"><a name="d41e1"></a>Formatting Object Table Reference
+               </h1>
+            </div>
+            <div>
+               <h3 class="author">Norman Walsh</h3>
+            </div>
+            <div>
+               <p class="releaseinfo">
+                  $Id: table.html,v 1.1 2001/06/23 17:06:31 veillard Exp $
+                  
+               </p>
+            </div>
+            <div>
+               <p class="copyright"><a href="../copyright.html">Copyright</a> &copy; 1999, 2000 by Norman Walsh. <a href="../warranty.html">No Warranty</a>.
+               </p>
+            </div>
+            <hr>
+         </div>
+         <div class="partintro">
+            <div></div>
+            <div class="section"><a name="d41e24"></a><div class="titlepage">
+                  <div>
+                     <h2 class="title" style="clear: all"><a name="d41e24"></a>Introduction
+                     </h2>
+                  </div>
+               </div>
+               <p>This is technical reference documentation for the DocBook XSL
+                  Stylesheets; it documents (some of) the parameters, templates, and
+                  other elements of the stylesheets.
+               </p>
+               <p>This is not intended to be &#8220;user&#8221; documentation.
+                  It is provided for developers writing customization layers for the
+                  stylesheets, and for anyone who's interested in &#8220;how it
+                  works&#8221;.
+               </p>
+               <p>Although I am trying to be thorough, this documentation is known
+                  to be incomplete. Don't forget to read the source, too :-)
+               </p>
+            </div>
+            <div class="toc">
+               <p><b>Table of Contents</b></p>
+               <dl>
+                  <dt><a href="#template.calc.column.width">calc.column.width</a></dt>
+               </dl>
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.calc.column.width"></a>calc.column.width
+            </h1>
+            <div class="refnamediv"><a name="d41e40"></a><h2>Name</h2>calc.column.width &#8212; Calculate an XSL FO table column width specification from a
+               CALS table column width specification.
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e45"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="calc.column.width"&gt;
+&lt;xsl:param name="colwidth"&gt;1*&lt;/xsl:param&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e48"></a>
+               
+               
+               <p>CALS expresses table column widths in the following basic
+                  forms:
+               </p>
+               
+               
+               
+               
+               <div class="itemizedlist">
+                  <ul>
+                     <li>
+                        <p><a name="d41e54"></a><i>99.99units</i>, a fixed length specifier.
+                        </p>
+                     </li>
+                     <li>
+                        <p><a name="d41e59"></a><i>99.99</i>, a fixed length specifier without any units.
+                        </p>
+                     </li>
+                     <li>
+                        <p><a name="d41e64"></a><i>99.99*</i>, a relative length specifier.
+                        </p>
+                     </li>
+                     <li>
+                        <p><a name="d41e69"></a><i>99.99*+99.99units</i>, a combination of both.
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+               
+               
+               
+               
+               <p>The CALS units are points (pt), picas (pi), centimeters (cm),
+                  millimeters (mm), and inches (in). These are the same units as XSL,
+                  except that XSL abbreviates picas "pc" instead of "pi". If a length
+                  specifier has no units, the CALS default unit (pt) is assumed.
+               </p>
+               
+               
+               
+               
+               <p>Relative length specifiers are represented in XSL with the
+                  proportional-column-width() function.
+               </p>
+               
+               
+               
+               
+               <p>Here are some examples:</p>
+               
+               
+               
+               
+               <div class="itemizedlist">
+                  <ul>
+                     <li>
+                        <p><a name="d41e85"></a>"36pt" becomes "36pt"
+                        </p>
+                     </li>
+                     <li>
+                        <p><a name="d41e88"></a>"3pi" becomes "3pc"
+                        </p>
+                     </li>
+                     <li>
+                        <p><a name="d41e91"></a>"36" becomes "36pt"
+                        </p>
+                     </li>
+                     <li>
+                        <p><a name="d41e94"></a>"3*" becomes "proportional-column-width(3)"
+                        </p>
+                     </li>
+                     <li>
+                        <p><a name="d41e97"></a>"3*+2pi" becomes "proportional-column-width(3)+2pc"
+                        </p>
+                     </li>
+                     <li>
+                        <p><a name="d41e100"></a>"1*+2" becomes "proportional-column-width(1)+2pt"
+                        </p>
+                     </li>
+                  </ul>
+               </div>
+               
+               
+            </div>
+            <div class="refparameter"><b><a name="d41e104"></a>Parameters</b>
+               
+               
+               <div class="variablelist">
+                  <dl>
+                     <dt><a name="d41e107"></a><span class="term">colwidth</span></dt>
+                     <dd>
+                        <p><a name="d41e110"></a>The CALS column width specification.
+                        </p>
+                     </dd>
+                  </dl>
+               </div>
+               
+               
+            </div>
+            <div class="refreturn"><b><a name="d41e114"></a>Returns</b>
+               
+               
+               <p>The XSL column width specification.</p>
+               
+               
+            </div>
+         </div>
+      </div>
+   </body>
+</html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+2001-04-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* .cvsignore, Makefile: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/ebnf.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/ebnf.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/ebnf.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,103 @@
+<html>
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   
+      <title>HTML EBNF Reference</title>
+      <link rel="stylesheet" href="../reference.css" type="text/css">
+      <meta name="generator" content="DocBook XSL Stylesheets V1.37">
+   </head>
+   <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+      <div class="reference">
+         <div class="titlepage">
+            <div>
+               <h1 class="title"><a name="d41e1"></a>HTML EBNF Reference
+               </h1>
+            </div>
+            <div>
+               <h3 class="author">Norman Walsh</h3>
+            </div>
+            <div>
+               <p class="releaseinfo">
+                  $Id: ebnf.html,v 1.1 2001/06/23 17:06:32 veillard Exp $
+                  
+               </p>
+            </div>
+            <div>
+               <p class="copyright"><a href="../copyright.html">Copyright</a> &copy; 1999, 2000 by Norman Walsh. <a href="../warranty.html">No Warranty</a>.
+               </p>
+            </div>
+            <hr>
+         </div>
+         <div class="partintro">
+            <div></div>
+            <div class="section"><a name="d41e24"></a><div class="titlepage">
+                  <div>
+                     <h2 class="title" style="clear: all"><a name="d41e24"></a>Introduction
+                     </h2>
+                  </div>
+               </div>
+               <p>This is technical reference documentation for the DocBook XSL
+                  Stylesheets; it documents (some of) the parameters, templates, and
+                  other elements of the stylesheets.
+               </p>
+               <p>This reference describes the templates and parameters relevant
+                  to formatting EBNF markup.
+               </p>
+               <p>This is not intended to be &#8220;user&#8221; documentation.
+                  It is provided for developers writing customization layers for the
+                  stylesheets, and for anyone who's interested in &#8220;how it
+                  works&#8221;.
+               </p>
+               <p>Although I am trying to be thorough, this documentation is known
+                  to be incomplete. Don't forget to read the source, too :-)
+               </p>
+            </div>
+            <div class="toc">
+               <p><b>Table of Contents</b></p>
+               <dl>
+                  <dt><a href="#param.ebnf.table.bgcolor">ebnf.table.bgcolor</a></dt>
+                  <dt><a href="#param.ebnf.table.border">ebnf.table.border</a></dt>
+               </dl>
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.ebnf.table.bgcolor"></a>ebnf.table.bgcolor
+            </h1>
+            <div class="refnamediv"><a name="d41e42"></a><h2>Name</h2>ebnf.table.bgcolor &#8212; Background color for EBNF tables
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e47"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="ebnf.table.bgcolor"&gt;#F5DCB3&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e50"></a>
+               
+               
+               <p>Sets the background color for EBNF tables. No <tt>bgcolor</tt>
+                  attribute is output if <tt>ebnf.table.bgcolor</tt> is set to
+                  the null string. The default value matches the value used in recent
+                  online versions of the W3C's XML Spec productions.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.ebnf.table.border"></a>ebnf.table.border
+            </h1>
+            <div class="refnamediv"><a name="d41e62"></a><h2>Name</h2>ebnf.table.border &#8212; Selects border on EBNF tables
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e67"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="ebnf.table.border"&gt;1&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e70"></a>
+               
+               
+               <p>Selects the border on EBNF tables. If non-zero, the tables have
+                  borders, otherwise they don't.
+               </p>
+               
+               
+            </div>
+         </div>
+      </div>
+   </body>
+</html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/param.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/param.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/html/param.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1815 @@
+<html>
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   
+      <title>HTML Parameter Reference</title>
+      <link rel="stylesheet" href="../reference.css" type="text/css">
+      <meta name="generator" content="DocBook XSL Stylesheets V1.37">
+   </head>
+   <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+      <div class="reference">
+         <div class="titlepage">
+            <div>
+               <h1 class="title"><a name="d41e1"></a>HTML Parameter Reference
+               </h1>
+            </div>
+            <div>
+               <h3 class="author">Norman Walsh</h3>
+            </div>
+            <div>
+               <p class="releaseinfo">
+                  $Id: param.html,v 1.1 2001/06/23 17:06:32 veillard Exp $
+                  
+               </p>
+            </div>
+            <div>
+               <p class="copyright"><a href="../copyright.html">Copyright</a> &copy; 1999, 2000 by Norman Walsh. <a href="../warranty.html">No Warranty</a>.
+               </p>
+            </div>
+            <hr>
+         </div>
+         <div class="partintro">
+            <div></div>
+            <div class="section"><a name="d41e24"></a><div class="titlepage">
+                  <div>
+                     <h2 class="title" style="clear: all"><a name="d41e24"></a>Introduction
+                     </h2>
+                  </div>
+               </div>
+               <p>This is technical reference documentation for the DocBook XSL
+                  Stylesheets; it documents (some of) the parameters, templates, and
+                  other elements of the stylesheets.
+               </p>
+               <p>This reference describes each of the HTML Stylesheet parameters.
+                  These are the &#8220;easily customizable&#8221; parts of the stylesheet.
+                  If you want to specify an alternate value for one or more of these
+                  parameters, you can do so in a &#8220;driver&#8221; stylesheet.
+               </p>
+               <p>For example, if you want to change the <tt>html.stylesheet</tt>
+                  to <tt>reference.css</tt>, you might create a driver
+                  stylesheet like this:
+               </p><pre class="programlisting">&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'&gt;
+
+  &lt;xsl:import href="/path/to/html/docbook.xsl"/&gt;
+
+  &lt;xsl:param name="html.stylesheet"&gt;reference.css&lt;/xsl:param&gt;
+
+&lt;/xsl:stylesheet&gt;</pre><p>Naturally, you have to change the
+                  <tt>href</tt> attribute on
+                  <tt>&lt;xsl:import&gt;</tt>
+                  to point to <tt>docbook.xsl</tt>
+                  on your system. (Or <tt>chunk.xsl</tt>, if you're using
+                  chunking.)
+               </p>
+               <p>This is not intended to be &#8220;user&#8221; documentation.
+                  It is provided for developers writing customization layers for the
+                  stylesheets, and for anyone who's interested in &#8220;how it
+                  works&#8221;.
+               </p>
+               <p>Although I am trying to be thorough, this documentation is known
+                  to be incomplete. Don't forget to read the source, too :-)
+               </p>
+            </div>
+            <div class="toc">
+               <p><b>Table of Contents</b></p>
+               <dl>
+                  <dt><a href="#param.author.othername.in.middle">author.othername.in.middle</a></dt>
+                  <dt><a href="#param.html.stylesheet">html.stylesheet</a></dt>
+                  <dt><a href="#param.html.stylesheet.type">html.stylesheet.type</a></dt>
+                  <dt><a href="#param.html.base">html.base</a></dt>
+                  <dt><a href="#param.ulink.target">ulink.target</a></dt>
+                  <dt><a href="#param.refentry.xref.manvolnum">refentry.xref.manvolnum</a></dt>
+                  <dt><a href="#param.show.comments">show.comments</a></dt>
+                  <dt><a href="#param.funcsynopsis.style">funcsynopsis.style</a></dt>
+                  <dt><a href="#param.funcsynopsis.decoration">funcsynopsis.decoration</a></dt>
+                  <dt><a href="#param.function.parens">function.parens</a></dt>
+                  <dt><a href="#param.refentry.generate.name">refentry.generate.name</a></dt>
+                  <dt><a href="#param.admon.graphics">admon.graphics</a></dt>
+                  <dt><a href="#param.admon.graphics.path">admon.graphics.path</a></dt>
+                  <dt><a href="#param.admon.graphics.extension">admon.graphics.extension</a></dt>
+                  <dt><a href="#param.admon.style">admon.style</a></dt>
+                  <dt><a href="#param.section.autolabel">section.autolabel</a></dt>
+                  <dt><a href="#param.section.label.includes.component.label">section.label.includes.component.label</a></dt>
+                  <dt><a href="#param.chapter.autolabel">chapter.autolabel</a></dt>
+                  <dt><a href="#param.preface.autolabel">preface.autolabel</a></dt>
+                  <dt><a href="#param.part.autolabel">part.autolabel</a></dt>
+                  <dt><a href="#param.qandadiv.autolabel">qandadiv.autolabel</a></dt>
+                  <dt><a href="#param.qanda.inherit.numeration">qanda.inherit.numeration</a></dt>
+                  <dt><a href="#param.qanda.defaultlabel">qanda.defaultlabel</a></dt>
+                  <dt><a href="#param.generate.qandaset.toc">generate.qandaset.toc</a></dt>
+                  <dt><a href="#param.generate.qandadiv.toc">generate.qandadiv.toc</a></dt>
+                  <dt><a href="#param.biblioentry.item.separator">biblioentry.item.separator</a></dt>
+                  <dt><a href="#param.toc.section.depth">toc.section.depth</a></dt>
+                  <dt><a href="#param.using.chunker">using.chunker</a></dt>
+                  <dt><a href="#param.generate.component.toc">generate.component.toc</a></dt>
+                  <dt><a href="#param.generate.division.toc">generate.division.toc</a></dt>
+                  <dt><a href="#param.link.mailto.url">link.mailto.url</a></dt>
+                  <dt><a href="#param.graphic.default.extension">graphic.default.extension</a></dt>
+                  <dt><a href="#param.toc.list.type">toc.list.type</a></dt>
+                  <dt><a href="#param.check.idref">check.idref</a></dt>
+                  <dt><a href="#param.use.id.function">use.id.function</a></dt>
+                  <dt><a href="#param.spacing.paras">spacing.paras</a></dt>
+                  <dt><a href="#attrset.body.attrs">body.attrs mode</a></dt>
+                  <dt><a href="#param.css.decoration">css.decoration</a></dt>
+                  <dt><a href="#param.show.revisionflag">show.revisionflag</a></dt>
+                  <dt><a href="#param.suppress.navigation">suppress.navigation</a></dt>
+                  <dt><a href="#param.rootid">rootid</a></dt>
+                  <dt><a href="#param.callout.list.table">callout.list.table</a></dt>
+                  <dt><a href="#param.callout.graphics">callout.graphics</a></dt>
+                  <dt><a href="#param.callout.graphics.extension">callout.graphics.extension</a></dt>
+                  <dt><a href="#param.callout.graphics.path">callout.graphics.path</a></dt>
+                  <dt><a href="#param.callout.graphics.number.limit">callout.graphics.number.limit</a></dt>
+                  <dt><a href="#param.use.extensions">use.extensions</a></dt>
+                  <dt><a href="#param.textinsert.extension">textinsert.extension</a></dt>
+                  <dt><a href="#param.saxon.linenumbering">saxon.linenumbering</a></dt>
+                  <dt><a href="#param.linenumbering.extension">linenumbering.extension</a></dt>
+                  <dt><a href="#param.linenumbering.everyNth">linenumbering.everyNth</a></dt>
+                  <dt><a href="#param.linenumbering.width">linenumbering.width</a></dt>
+                  <dt><a href="#param.linenumbering.separator">linenumbering.separator</a></dt>
+                  <dt><a href="#param.saxon.callouts">saxon.callouts</a></dt>
+                  <dt><a href="#param.callouts.extension">callouts.extension</a></dt>
+                  <dt><a href="#param.callout.defaultcolumn">callout.defaultcolumn</a></dt>
+                  <dt><a href="#param.stylesheet.result.type">stylesheet.result.type</a></dt>
+                  <dt><a href="#param.nominal.table.width">nominal.table.width</a></dt>
+                  <dt><a href="#param.default.table.width">default.table.width</a></dt>
+                  <dt><a href="#param.saxon.tablecolumns">saxon.tablecolumns</a></dt>
+                  <dt><a href="#param.tablecolumns.extension">tablecolumns.extension</a></dt>
+                  <dt><a href="#param.generate.set.toc">generate.set.toc</a></dt>
+                  <dt><a href="#param.generate.book.toc">generate.book.toc</a></dt>
+                  <dt><a href="#param.generate.part.toc">generate.part.toc</a></dt>
+                  <dt><a href="#param.generate.reference.toc">generate.reference.toc</a></dt>
+                  <dt><a href="#param.generate.preface.toc">generate.preface.toc</a></dt>
+                  <dt><a href="#param.generate.chapter.toc">generate.chapter.toc</a></dt>
+                  <dt><a href="#param.generate.appendix.toc">generate.appendix.toc</a></dt>
+                  <dt><a href="#param.generate.article.toc">generate.article.toc</a></dt>
+                  <dt><a href="#param.generate.section.toc">generate.section.toc</a></dt>
+                  <dt><a href="#param.process.source.toc">process.source.toc</a></dt>
+                  <dt><a href="#param.process.empty.source.toc">process.empty.source.toc</a></dt>
+                  <dt><a href="#param.bridgehead.in.toc">bridgehead.in.toc</a></dt>
+                  <dt><a href="#param.generate.index">generate.index</a></dt>
+                  <dt><a href="#param.callout.unicode">callout.unicode</a></dt>
+                  <dt><a href="#param.callout.unicode.start.character">callout.unicode.start.character</a></dt>
+                  <dt><a href="#param.callout.unicode.number.limit">callout.unicode.number.limit</a></dt>
+                  <dt><a href="#param.use.id.as.filename">use.id.as.filename</a></dt>
+                  <dt><a href="#param.inherit.keywords">inherit.keywords</a></dt>
+                  <dt><a href="#param.label.from.part">label.from.part</a></dt>
+                  <dt><a href="#param.citerefentry.link">citerefentry.link</a></dt>
+                  <dt><a href="#param.default.encoding">default.encoding</a></dt>
+                  <dt><a href="#param.saxon.character.representation">saxon.character.representation</a></dt>
+               </dl>
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.author.othername.in.middle"></a>author.othername.in.middle
+            </h1>
+            <div class="refnamediv"><a name="d41e72"></a><h2>Name</h2>author.othername.in.middle &#8212; Is <tt>othername</tt> in <tt>author</tt> a
+               middle name?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e83"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="author.othername.in.middle" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e86"></a>
+               
+               
+               <p>If true (non-zero), the <tt>othername</tt> of an <tt>author</tt>
+                  appears between the <tt>firstname</tt> and
+                  <tt>surname</tt>.  Otherwise, <tt>othername</tt>
+                  is suppressed.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.html.stylesheet"></a>html.stylesheet
+            </h1>
+            <div class="refnamediv"><a name="d41e107"></a><h2>Name</h2>html.stylesheet &#8212; Name of the stylesheet to use in the generated HTML
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e112"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="html.stylesheet" select="''" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e115"></a>
+               
+               
+               <p>The name of the stylesheet to place in the HTML <tt>LINK</tt>
+                  tag, or the empty string to suppress the stylesheet <tt>LINK</tt>.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.html.stylesheet.type"></a>html.stylesheet.type
+            </h1>
+            <div class="refnamediv"><a name="d41e127"></a><h2>Name</h2>html.stylesheet.type &#8212; The type of the stylesheet used in the generated HTML
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e132"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="html.stylesheet.type" doc:type="string"&gt;text/css&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e135"></a>
+               
+               
+               <p>The type of the stylesheet to place in the HTML <tt>link</tt> tag.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.html.base"></a>html.base
+            </h1>
+            <div class="refnamediv"><a name="d41e144"></a><h2>Name</h2>html.base &#8212; An HTML base URI
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e149"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="html.base" doc:type="uri"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e152"></a>
+               
+               
+               <p>If html.base is set, it is used for the <tt>BASE</tt>
+                  element in the <tt>HEAD</tt> of the HTML documents.
+                  This is useful for dynamically served HTML where the base URI needs
+                  to be shifted.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.ulink.target"></a>ulink.target
+            </h1>
+            <div class="refnamediv"><a name="d41e164"></a><h2>Name</h2>ulink.target &#8212; The HTML anchor target for ULinks
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e169"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="ulink.target" select="'_top'" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e172"></a>
+               
+               
+               <p>If <i><tt>ulink.target</tt></i> is set, its value will
+                  be used for the <tt>target</tt> attribute
+                  on anchors generated for <tt>ulink</tt>s.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.refentry.xref.manvolnum"></a>refentry.xref.manvolnum
+            </h1>
+            <div class="refnamediv"><a name="d41e187"></a><h2>Name</h2>refentry.xref.manvolnum &#8212; Output <tt>manvolnum</tt> as part of 
+               <tt>refentry</tt> cross-reference?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e198"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="refentry.xref.manvolnum" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e201"></a>
+               
+               
+               <p>if true (non-zero), the <tt>manvolnum</tt> is used when cross-referencing
+                  <tt>refentry</tt>s, either with <tt>xref</tt>
+                  or <tt>citerefentry</tt>.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.show.comments"></a>show.comments
+            </h1>
+            <div class="refnamediv"><a name="d41e219"></a><h2>Name</h2>show.comments &#8212; Display <tt>comment</tt> elements?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e227"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="show.comments" doc:type="boolean"&gt;1&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e230"></a>
+               
+               
+               <p>If true (non-zero), comments will be displayed, otherwise they are suppressed.
+                  Comments here refers to the <tt>comment</tt> element,
+                  which will be renamed <tt>remark</tt> in DocBook V4.0,
+                  not XML comments (&lt;-- like this --&gt;) which are unavailable.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.funcsynopsis.style"></a>funcsynopsis.style
+            </h1>
+            <div class="refnamediv"><a name="d41e242"></a><h2>Name</h2>funcsynopsis.style &#8212; What style of 'FuncSynopsis' should be generated?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e247"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="funcsynopsis.style" doc:type="list" doc:list="ansi kr"&gt;kr&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e250"></a>
+               
+               
+               <p>If <tt>funcsynopsis.style</tt> is <tt>ansi</tt>,
+                  ANSI-style function synopses are generated for a
+                  <tt>funcsynopsis</tt>, otherwise K&amp;R-style
+                  function synopses are generated.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.funcsynopsis.decoration"></a>funcsynopsis.decoration
+            </h1>
+            <div class="refnamediv"><a name="d41e265"></a><h2>Name</h2>funcsynopsis.decoration &#8212; Decorate elements of a FuncSynopsis?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e270"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="funcsynopsis.decoration" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e273"></a>
+               
+               
+               <p>If true (non-zero), elements of the FuncSynopsis will be decorated (e.g. bold or
+                  italic).  The decoration is controlled by functions that can be redefined
+                  in a customization layer.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.function.parens"></a>function.parens
+            </h1>
+            <div class="refnamediv"><a name="d41e279"></a><h2>Name</h2>function.parens &#8212; Generate parens after a function?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e284"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="function.parens" doc:type="boolean"&gt;0&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e287"></a>
+               
+               
+               <p>If not 0, the formatting of
+                  a <tt>&lt;function&gt;</tt> element will include
+                  generated parenthesis.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.refentry.generate.name"></a>refentry.generate.name
+            </h1>
+            <div class="refnamediv"><a name="d41e296"></a><h2>Name</h2>refentry.generate.name &#8212; Output NAME header before 'RefName'(s)?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e301"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="refentry.generate.name" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e304"></a>
+               
+               
+               <p>If true (non-zero), a "NAME" section title is output before the list
+                  of 'RefName's.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.admon.graphics"></a>admon.graphics
+            </h1>
+            <div class="refnamediv"><a name="d41e310"></a><h2>Name</h2>admon.graphics &#8212; Use graphics in admonitions?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e315"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="admon.graphics" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e318"></a>
+               
+               
+               <p>If true (non-zero), admonitions are presented in an alternate style that uses
+                  a graphic.  Default graphics are provided in the distribution.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.admon.graphics.path"></a>admon.graphics.path
+            </h1>
+            <div class="refnamediv"><a name="d41e324"></a><h2>Name</h2>admon.graphics.path &#8212; Path to admonition graphics
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e329"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="admon.graphics.path" doc:type="string"&gt;../images/&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e332"></a>
+               
+               
+               <p>Sets the path, probably relative to the directory where the HTML
+                  files are created, to the admonition graphics.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.admon.graphics.extension"></a>admon.graphics.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e338"></a><h2>Name</h2>admon.graphics.extension &#8212; Extension for admonition graphics
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e343"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="admon.graphics.extension" select="'.png'" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e346"></a>
+               
+               
+               <p>Sets the extension to use on admonition graphics.</p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.admon.style"></a>admon.style
+            </h1>
+            <div class="refnamediv"><a name="d41e352"></a><h2>Name</h2>admon.style &#8212; CSS style attributes for admonitions
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e357"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="admon.style" doc:type="string"&gt;
+  &lt;xsl:text&gt;margin-left: 0.5in; margin-right: 0.5in;&lt;/xsl:text&gt;
+&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e360"></a>
+               
+               
+               <p>Specifies the value of the <tt>STYLE</tt>
+                  attribute that should be added to admonitions.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.section.autolabel"></a>section.autolabel
+            </h1>
+            <div class="refnamediv"><a name="d41e369"></a><h2>Name</h2>section.autolabel &#8212; Are sections enumerated?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e374"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="section.autolabel" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e377"></a>
+               
+               
+               <p>If true (non-zero), unlabeled sections will be enumerated.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.section.label.includes.component.label"></a>section.label.includes.component.label
+            </h1>
+            <div class="refnamediv"><a name="d41e383"></a><h2>Name</h2>section.label.includes.component.label &#8212; Do section labels include the component label?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e388"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="section.label.includes.component.label" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e391"></a>
+               
+               
+               <p>If true (non-zero), section labels are prefixed with the label of the
+                  component that contains them.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.chapter.autolabel"></a>chapter.autolabel
+            </h1>
+            <div class="refnamediv"><a name="d41e397"></a><h2>Name</h2>chapter.autolabel &#8212; Are chapters and appendixes enumerated?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e402"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="chapter.autolabel" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e405"></a>
+               
+               
+               <p>If true (non-zero), unlabeled chapters and appendixes will be enumerated.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.preface.autolabel"></a>preface.autolabel
+            </h1>
+            <div class="refnamediv"><a name="d41e411"></a><h2>Name</h2>preface.autolabel &#8212; Are prefaces enumerated?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e416"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="preface.autolabel" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e419"></a>
+               
+               
+               <p>If true (non-zero), unlabeled prefaces will be enumerated.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.part.autolabel"></a>part.autolabel
+            </h1>
+            <div class="refnamediv"><a name="d41e425"></a><h2>Name</h2>part.autolabel &#8212; Are parts and references enumerated?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e430"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="part.autolabel" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e433"></a>
+               
+               
+               <p>If true (non-zero), unlabeled parts and references will be enumerated.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.qandadiv.autolabel"></a>qandadiv.autolabel
+            </h1>
+            <div class="refnamediv"><a name="d41e439"></a><h2>Name</h2>qandadiv.autolabel &#8212; Are divisions in QAndASets enumerated?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e444"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="qandadiv.autolabel" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e447"></a>
+               
+               
+               <p>If true (non-zero), unlabeled qandadivs will be enumerated.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.qanda.inherit.numeration"></a>qanda.inherit.numeration
+            </h1>
+            <div class="refnamediv"><a name="d41e453"></a><h2>Name</h2>qanda.inherit.numeration &#8212; Does enumeration of QandASet components inherit the numeration of parent elements?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e458"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="qanda.inherit.numeration" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e461"></a>
+               
+               
+               <p>If true (non-zero), numbered QandADiv elements and Questions and Answers inherit
+                  the numeration of the ancestors of the QandASet.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.qanda.defaultlabel"></a>qanda.defaultlabel
+            </h1>
+            <div class="refnamediv"><a name="d41e467"></a><h2>Name</h2>qanda.defaultlabel &#8212; Sets the default for defaultlabel on QandASet.
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e472"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="qanda.defaultlabel" doc:type="boolean" doc:list="qanda number none"&gt;number&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e475"></a>
+               
+               
+               <p>If no defaultlabel attribute is specified on a QandASet, this
+                  value is used. It must be one of the legal values for the defaultlabel
+                  attribute.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.qandaset.toc"></a>generate.qandaset.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e481"></a><h2>Name</h2>generate.qandaset.toc &#8212; Is a Table of Contents created for QandASets?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e486"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.qandaset.toc" doc:type="boolean"&gt;1&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e489"></a>
+               
+               
+               <p>If true (non-zero), a ToC is constructed for QandASets.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.qandadiv.toc"></a>generate.qandadiv.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e495"></a><h2>Name</h2>generate.qandadiv.toc &#8212; Is a Table of Contents created for QandADivs?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e500"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.qandadiv.toc" doc:type="boolean"&gt;0&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e503"></a>
+               
+               
+               <p>If true (non-zero), a ToC is constructed for QandADivs.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.biblioentry.item.separator"></a>biblioentry.item.separator
+            </h1>
+            <div class="refnamediv"><a name="d41e509"></a><h2>Name</h2>biblioentry.item.separator &#8212; Text to separate bibliography entries
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e514"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="biblioentry.item.separator" doc:type="string"&gt;. &lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e517"></a>
+               
+               
+               <p>Text to separate bibliography entries
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.toc.section.depth"></a>toc.section.depth
+            </h1>
+            <div class="refnamediv"><a name="d41e523"></a><h2>Name</h2>toc.section.depth &#8212; How deep should recursive <tt>section</tt>s appear
+               in the TOC?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e531"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="toc.section.depth" doc:type="integer" doc:min="1" doc:max="10"&gt;2&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e534"></a>
+               
+               
+               <p>Specifies the depth to which recursive sections should appear in the
+                  TOC.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.using.chunker"></a>using.chunker
+            </h1>
+            <div class="refnamediv"><a name="d41e540"></a><h2>Name</h2>using.chunker &#8212; Will the output be chunked?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e545"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="using.chunker" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e548"></a>
+               
+               
+               <p>In addition to providing chunking, the chunker can cleanup a
+                  number of XML to HTML issues. If the chunker is not being used, the
+                  stylesheets try to avoid producing results that will not appear properly
+                  in browsers.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.component.toc"></a>generate.component.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e554"></a><h2>Name</h2>generate.component.toc &#8212; Should TOCs be genereated in components (Chapters, Appendixes, etc.)?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e559"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.component.toc" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e562"></a>
+               
+               
+               <p>If true (non-zero), they are.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.division.toc"></a>generate.division.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e568"></a><h2>Name</h2>generate.division.toc &#8212; Should TOCs be genereated in divisions (Books, Parts, etc.)?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e573"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.division.toc" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e576"></a>
+               
+               
+               <p>If true (non-zero), they are.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.link.mailto.url"></a>link.mailto.url
+            </h1>
+            <div class="refnamediv"><a name="d41e582"></a><h2>Name</h2>link.mailto.url &#8212; Mailto URL for the LINK REL=made HTML HEAD element
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e587"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="link.mailto.url" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e590"></a>
+               
+               
+               <p>If not the empty string, this address will be used for the
+                  REL=made <tt>LINK</tt> element in the HTML <tt>HEAD</tt>.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.graphic.default.extension"></a>graphic.default.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e602"></a><h2>Name</h2>graphic.default.extension &#8212; Default extension for graphic filenames
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e607"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="graphic.default.extension" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e610"></a>
+               
+               
+               <p>If a <tt>graphic</tt> or <tt>mediaobject</tt>
+                  includes a reference to a filename that does not include an extension,
+                  and the <tt>format</tt> attribute is
+                  <i>unspecified</i>, the default extension will be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.toc.list.type"></a>toc.list.type
+            </h1>
+            <div class="refnamediv"><a name="d41e628"></a><h2>Name</h2>toc.list.type &#8212; Type of HTML list element to use for Tables of Contents
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e633"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="toc.list.type" doc:type="list" doc:list="dl ul ol"&gt;dl&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e636"></a>
+               
+               
+               <p>When an automatically generated Table of Contents (or List of Titles)
+                  is produced, this HTML element will be used to make the list.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.check.idref"></a>check.idref
+            </h1>
+            <div class="refnamediv"><a name="d41e642"></a><h2>Name</h2>check.idref &#8212; Test the target of IDREF attributes?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e647"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="check.idref" doc:type="boolean"&gt;1&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e650"></a>
+               
+               
+               <p>If 1, the target of IDREF attributes are tested for presence
+                  (and uniqueness). This can be very expensive in large documents.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.use.id.function"></a>use.id.function
+            </h1>
+            <div class="refnamediv"><a name="d41e656"></a><h2>Name</h2>use.id.function &#8212; Use the XPath id() function to find link targets?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e661"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="use.id.function" doc:type="boolean" select="'1'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e664"></a>
+               
+               
+               <p>If 1, the stylesheets use the <tt>id()</tt> function
+                  to find the targets of cross reference elements. This is more
+                  efficient, but only works if your XSLT processor implements the
+                  <tt>id()</tt> function, naturally.
+               </p>
+               
+               
+               
+               <p>THIS PARAMETER IS NOT SUPPORTED. IT IS ALWAYS ASSUMED TO BE 1.
+                  SEE xref.xsl IF YOU NEED TO TURN IT OFF.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.spacing.paras"></a>spacing.paras
+            </h1>
+            <div class="refnamediv"><a name="d41e679"></a><h2>Name</h2>spacing.paras &#8212; Insert additional &lt;p&gt; elements for spacing?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e684"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="spacing.paras" doc:type="boolean" select="'0'"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e687"></a>
+               
+               
+               <p>When non-zero, additional, empty paragraphs are inserted in
+                  several contexts (for example, around informal figures), to create a
+                  more pleasing visual appearance in many browsers.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="attrset.body.attrs"></a>body.attrs mode
+            </h1>
+            <div class="refnamediv"><a name="d41e693"></a><h2>Name</h2>body.attrs mode &#8212; Additional attributes for the HTML body tag
+            </div>
+            <div class="refdescription"><a name="d41e698"></a>
+               
+               
+               <p>The attributes defined by this attribute set are added to the
+                  HTML &lt;body&gt; tag.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.css.decoration"></a>css.decoration
+            </h1>
+            <div class="refnamediv"><a name="d41e704"></a><h2>Name</h2>css.decoration &#8212; Enable CSS decoration of elements
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e709"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="css.decoration" doc:type="boolean"&gt;1&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e712"></a>
+               
+               
+               <p>
+                  If <tt>css.decoration</tt> is turned on, then HTML elements
+                  produced by the
+                  stylesheet may be decorated with STYLE attributes.  For example, the
+                  LI tags produced for list items may include a fragment of CSS in the
+                  STYLE attribute which sets the CSS property "list-style-type".
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.show.revisionflag"></a>show.revisionflag
+            </h1>
+            <div class="refnamediv"><a name="d41e721"></a><h2>Name</h2>show.revisionflag &#8212; Enable decoration of elements that have a revisionflag
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e726"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="show.revisionflag" doc:type="boolean"&gt;0&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e729"></a>
+               
+               
+               <p>
+                  If <tt>show.revisionflag</tt> is turned on, then the stylesheets
+                  may produce additional markup designed to allow a CSS stylesheet to
+                  highlight elements that have specific revisionflag settings.
+               </p>
+               
+               
+               
+               
+               <p>The markup inserted will be usually be either a &lt;span&gt; or &lt;div&gt;
+                  with an appropriate <tt>class</tt> attribute. (The value of
+                  the class attribute will be the same as the value of the revisionflag
+                  attribute). In some contexts, for example tables, where extra markup
+                  would be structurally illegal, the class attribute will be added to the
+                  appropriate container element.
+               </p>
+               
+               
+               
+               
+               <p>In general, the stylesheets only test for revisionflag in contexts
+                  where an importing stylesheet would have to redefine whole templates.
+                  Most of the revisionflag processing is expected to be done by another
+                  stylesheet, for example <tt>changebars.xsl</tt>.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.suppress.navigation"></a>suppress.navigation
+            </h1>
+            <div class="refnamediv"><a name="d41e750"></a><h2>Name</h2>suppress.navigation &#8212; Disable header and footer navigation
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e755"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="suppress.navigation" doc:type="boolean"&gt;0&lt;/xsl:param&gt;</pre></div>
+            <div class="refdescription"><a name="d41e758"></a>
+               
+               
+               <p>
+                  If <tt>suppress.navigation</tt> is turned on, header and
+                  footer navigation will be suppressed.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.rootid"></a>rootid
+            </h1>
+            <div class="refnamediv"><a name="d41e767"></a><h2>Name</h2>rootid &#8212; Specify the root element to format
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e772"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="rootid" select="''" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e775"></a>
+               
+               
+               <p>If <i><tt>rootid</tt></i> is specified, it must be the
+                  value of an ID that occurs in the document being formatted. The entire
+                  document will be loaded and parsed, but formatting will begin at the
+                  element identified, rather than at the root. For example, this allows
+                  you to process only chapter 4 of a book.
+               </p>
+               
+               
+               
+               <p>Because the entire document is available to the processor, automatic
+                  numbering, cross references, and other dependencies are correctly
+                  resolved.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.list.table"></a>callout.list.table
+            </h1>
+            <div class="refnamediv"><a name="d41e787"></a><h2>Name</h2>callout.list.table &#8212; Present callout lists using a table?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e792"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.list.table" select="'1'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e795"></a>
+               
+               
+               <p>The default presentation of <tt>CalloutList</tt>s uses
+                  an HTML <tt>DL</tt>. Some browsers don't align DLs very well
+                  if <i><tt>callout.graphics</tt></i> are used. With this option
+                  turned on, <tt>CalloutList</tt>s are presented in an HTML
+                  <tt>TABLE</tt>, which usually results in better alignment
+                  of the callout number with the callout description.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.graphics"></a>callout.graphics
+            </h1>
+            <div class="refnamediv"><a name="d41e816"></a><h2>Name</h2>callout.graphics &#8212; Use graphics for callouts?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e821"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.graphics" select="'1'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e824"></a>
+               
+               
+               <p>If non-zero, callouts are presented with graphics (e.g., reverse-video
+                  circled numbers instead of "(1)", "(2)", etc.).
+                  Default graphics are provided in the distribution.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.graphics.extension"></a>callout.graphics.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e830"></a><h2>Name</h2>callout.graphics.extension &#8212; Extension for callout graphics
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e835"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.graphics.extension" select="'.png'" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e838"></a>
+               
+               
+               <p>Sets the extension to use on callout graphics.</p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.graphics.path"></a>callout.graphics.path
+            </h1>
+            <div class="refnamediv"><a name="d41e844"></a><h2>Name</h2>callout.graphics.path &#8212; Path to callout graphics
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e849"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.graphics.path" select="'../images/callouts/'" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e852"></a>
+               
+               
+               <p>Sets the path, probably relative to the directory where the HTML
+                  files are created, to the callout graphics.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.graphics.number.limit"></a>callout.graphics.number.limit
+            </h1>
+            <div class="refnamediv"><a name="d41e858"></a><h2>Name</h2>callout.graphics.number.limit &#8212; Number of the largest callout graphic
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e863"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.graphics.number.limit" select="'10'" doc:type="integer"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e866"></a>
+               
+               
+               <p>If <i><tt>callout.graphics</tt></i>
+                  is non-zero, graphics are used to represent
+                  callout numbers. The value of
+                  <i><tt>callout.graphics.number.limit</tt></i>
+                  is
+                  the largest number for which a graphic exists. If the callout number
+                  exceeds this limit, the default presentation "(nnn)" will always
+                  be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.use.extensions"></a>use.extensions
+            </h1>
+            <div class="refnamediv"><a name="d41e878"></a><h2>Name</h2>use.extensions &#8212; Enable extensions
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e883"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="use.extensions" select="'0'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e886"></a>
+               
+               
+               <p>If non-zero, extensions may be used. Each extension is
+                  further controlled by its own parameter. But if
+                  <i><tt>use.extensions</tt></i> is zero, no extensions will
+                  be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.textinsert.extension"></a>textinsert.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e895"></a><h2>Name</h2>textinsert.extension &#8212; Enable the textinsert extension element
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e900"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="textinsert.extension" select="'1'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e903"></a>
+               
+               
+               <p>The textinsert extension element inserts the contents of a
+                  a file into the result tree (as text).
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.saxon.linenumbering"></a>saxon.linenumbering
+            </h1>
+            <div class="refnamediv"><a name="d41e909"></a><h2>Name</h2>saxon.linenumbering &#8212; Enable the line numbering extension
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e914"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="saxon.linenumbering" select="'1'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e917"></a>
+               
+               
+               <p>If true, verbatim environments (elements that have the
+                  format='linespecific' notation attribute: address, literallayout,
+                  programlisting, screen, synopsis) that specify line numbering will
+                  have, surprise, line numbers.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.linenumbering.extension"></a>linenumbering.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e923"></a><h2>Name</h2>linenumbering.extension &#8212; Enable the line numbering extension
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e928"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="linenumbering.extension" select="'1'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e931"></a>
+               
+               
+               <p>If true, verbatim environments (elements that have the
+                  format='linespecific' notation attribute: address, literallayout,
+                  programlisting, screen, synopsis) that specify line numbering will
+                  have, surprise, line numbers.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.linenumbering.everyNth"></a>linenumbering.everyNth
+            </h1>
+            <div class="refnamediv"><a name="d41e937"></a><h2>Name</h2>linenumbering.everyNth &#8212; Indicate which lines should be numbered
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e942"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="linenumbering.everyNth" select="'5'" doc:type="integer"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e945"></a>
+               
+               
+               <p>If line numbering is enabled, everyNth line will be numbered.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.linenumbering.width"></a>linenumbering.width
+            </h1>
+            <div class="refnamediv"><a name="d41e951"></a><h2>Name</h2>linenumbering.width &#8212; Indicates the width of line numbers
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e956"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="linenumbering.width" select="'3'" doc:type="integer"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e959"></a>
+               
+               
+               <p>If line numbering is enabled, line numbers will appear right
+                  justified in a field "width" characters wide.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.linenumbering.separator"></a>linenumbering.separator
+            </h1>
+            <div class="refnamediv"><a name="d41e965"></a><h2>Name</h2>linenumbering.separator &#8212; Specify a separator between line numbers and lines
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e970"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="linenumbering.separator" select="' '" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e973"></a>
+               
+               
+               <p>The separator is inserted between line numbers and lines in
+                  the verbatim environment.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.saxon.callouts"></a>saxon.callouts
+            </h1>
+            <div class="refnamediv"><a name="d41e979"></a><h2>Name</h2>saxon.callouts &#8212; Enable the callout extension
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e984"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="saxon.callouts" select="'1'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e987"></a>
+               
+               
+               <p>The callouts extension processes <tt>areaset</tt>
+                  elements in <tt>ProgramListingCO</tt> and other text-based
+                  callout elements.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callouts.extension"></a>callouts.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e999"></a><h2>Name</h2>callouts.extension &#8212; Enable the callout extension
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1004"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callouts.extension" select="'1'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1007"></a>
+               
+               
+               <p>The callouts extension processes <tt>areaset</tt>
+                  elements in <tt>ProgramListingCO</tt> and other text-based
+                  callout elements.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.defaultcolumn"></a>callout.defaultcolumn
+            </h1>
+            <div class="refnamediv"><a name="d41e1019"></a><h2>Name</h2>callout.defaultcolumn &#8212; Indicates what column callouts appear in by default
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1024"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.defaultcolumn" select="'60'" doc:type="integer"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1027"></a>
+               
+               
+               <p>If a callout does not identify a column (for example, if it uses
+                  the <tt>linerange</tt> <tt>unit</tt>),
+                  it will appear in the default column.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.stylesheet.result.type"></a>stylesheet.result.type
+            </h1>
+            <div class="refnamediv"><a name="d41e1039"></a><h2>Name</h2>stylesheet.result.type &#8212; Identifies the output format of this stylesheet
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1044"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="stylesheet.result.type" select="'html'" doc:type="list" doc:list="html fo"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1047"></a>
+               
+               
+               <p>The Saxon extension functions need to know if the output format
+                  is HTML ('html') or XSL Formatting Objects ('fo'). This variable answers
+                  that question. Valid settings are 'html' or 'fo'.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.nominal.table.width"></a>nominal.table.width
+            </h1>
+            <div class="refnamediv"><a name="d41e1053"></a><h2>Name</h2>nominal.table.width &#8212; The (absolute) nominal width of tables
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1058"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="nominal.table.width" select="'6in'" doc:type="length"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1061"></a>
+               
+               
+               <p>In order to convert CALS column widths into HTML column widths, it
+                  is sometimes necessary to have an absolute table width to use for conversion
+                  of mixed absolute and relative widths. This value must be an absolute
+                  length (not a percentag).
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.default.table.width"></a>default.table.width
+            </h1>
+            <div class="refnamediv"><a name="d41e1067"></a><h2>Name</h2>default.table.width &#8212; The default width of tables
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1072"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="default.table.width" select="''" doc:type="length"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1075"></a>
+               
+               
+               <p>If specified, this value will be used for the WIDTH attribute on
+                  tables that do not specify an alternate width (with the dbhtml processing
+                  instruction).
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.saxon.tablecolumns"></a>saxon.tablecolumns
+            </h1>
+            <div class="refnamediv"><a name="d41e1081"></a><h2>Name</h2>saxon.tablecolumns &#8212; Enable the table columns extension function
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1086"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="saxon.tablecolumns" select="'1'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1089"></a>
+               
+               
+               <p>The table columns extension function adjusts the widths of table
+                  columns in the HTML result to more accurately reflect the specifications
+                  in the CALS table.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.tablecolumns.extension"></a>tablecolumns.extension
+            </h1>
+            <div class="refnamediv"><a name="d41e1095"></a><h2>Name</h2>tablecolumns.extension &#8212; Enable the table columns extension function
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1100"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="tablecolumns.extension" select="'1'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1103"></a>
+               
+               
+               <p>The table columns extension function adjusts the widths of table
+                  columns in the HTML result to more accurately reflect the specifications
+                  in the CALS table.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.set.toc"></a>generate.set.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1109"></a><h2>Name</h2>generate.set.toc &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1114"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.set.toc" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1117"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.book.toc"></a>generate.book.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1123"></a><h2>Name</h2>generate.book.toc &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1128"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.book.toc" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1131"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.part.toc"></a>generate.part.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1137"></a><h2>Name</h2>generate.part.toc &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1142"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.part.toc" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1145"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.reference.toc"></a>generate.reference.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1151"></a><h2>Name</h2>generate.reference.toc &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1156"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.reference.toc" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1159"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.preface.toc"></a>generate.preface.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1165"></a><h2>Name</h2>generate.preface.toc &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1170"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.preface.toc" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1173"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.chapter.toc"></a>generate.chapter.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1179"></a><h2>Name</h2>generate.chapter.toc &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1184"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.chapter.toc" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1187"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.appendix.toc"></a>generate.appendix.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1193"></a><h2>Name</h2>generate.appendix.toc &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1198"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.appendix.toc" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1201"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.article.toc"></a>generate.article.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1207"></a><h2>Name</h2>generate.article.toc &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1212"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.article.toc" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1215"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.section.toc"></a>generate.section.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1221"></a><h2>Name</h2>generate.section.toc &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1226"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.section.toc" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1229"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.process.source.toc"></a>process.source.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1235"></a><h2>Name</h2>process.source.toc &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1240"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="process.source.toc" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1243"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.process.empty.source.toc"></a>process.empty.source.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1249"></a><h2>Name</h2>process.empty.source.toc &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1254"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="process.empty.source.toc" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1257"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.bridgehead.in.toc"></a>bridgehead.in.toc
+            </h1>
+            <div class="refnamediv"><a name="d41e1263"></a><h2>Name</h2>bridgehead.in.toc &#8212; Should bridgehead elements appear in the TOC?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1268"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="bridgehead.in.toc" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1271"></a>
+               
+               
+               <p>If non-zero, bridgeheads appear in the TOC. Note that this option
+                  is not fully supported and may be removed in a future version of the
+                  stylesheets.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.generate.index"></a>generate.index
+            </h1>
+            <div class="refnamediv"><a name="d41e1277"></a><h2>Name</h2>generate.index &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1282"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="generate.index" select="1" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1285"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.unicode"></a>callout.unicode
+            </h1>
+            <div class="refnamediv"><a name="d41e1291"></a><h2>Name</h2>callout.unicode &#8212; FIXME:
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1296"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.unicode" select="0" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1299"></a>
+               
+               
+               <p>FIXME:
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.unicode.start.character"></a>callout.unicode.start.character
+            </h1>
+            <div class="refnamediv"><a name="d41e1305"></a><h2>Name</h2>callout.unicode.start.character &#8212; Number of the largest callout graphic
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1310"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.unicode.start.character" select="10102" doc:type="integer"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1313"></a>
+               
+               
+               <p>If <i><tt>callout.graphics</tt></i>
+                  is non-zero, graphics are used to represent
+                  callout numbers. The value of
+                  <i><tt>callout.graphics.number.limit</tt></i>
+                  is
+                  the largest number for which a graphic exists. If the callout number
+                  exceeds this limit, the default presentation "(nnn)" will always
+                  be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.callout.unicode.number.limit"></a>callout.unicode.number.limit
+            </h1>
+            <div class="refnamediv"><a name="d41e1325"></a><h2>Name</h2>callout.unicode.number.limit &#8212; Number of the largest callout graphic
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1330"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="callout.unicode.number.limit" select="'10'" doc:type="integer"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1333"></a>
+               
+               
+               <p>If <i><tt>callout.graphics</tt></i>
+                  is non-zero, graphics are used to represent
+                  callout numbers. The value of
+                  <i><tt>callout.graphics.number.limit</tt></i>
+                  is
+                  the largest number for which a graphic exists. If the callout number
+                  exceeds this limit, the default presentation "(nnn)" will always
+                  be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.use.id.as.filename"></a>use.id.as.filename
+            </h1>
+            <div class="refnamediv"><a name="d41e1345"></a><h2>Name</h2>use.id.as.filename &#8212; Use ID value of chunk elements as the filename?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1350"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="use.id.as.filename" select="'0'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1353"></a>
+               
+               
+               <p>If <i><tt>use.id.as.filename</tt></i>
+                  is non-zero, the filename of chunk elements that have IDs will be
+                  derived from the ID value.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.inherit.keywords"></a>inherit.keywords
+            </h1>
+            <div class="refnamediv"><a name="d41e1362"></a><h2>Name</h2>inherit.keywords &#8212; Inherit keywords from ancestor elements?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1367"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="inherit.keywords" select="'1'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1370"></a>
+               
+               
+               <p>If <i><tt>inherit.keywords</tt></i>
+                  is non-zero, the keyword <tt>META</tt> for each HTML
+                  <tt>HEAD</tt> element will include all of the keywords from
+                  ancestral elements. Otherwise, only the keywords from the current section
+                  will be used.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.label.from.part"></a>label.from.part
+            </h1>
+            <div class="refnamediv"><a name="d41e1385"></a><h2>Name</h2>label.from.part &#8212; Renumber chapters in each part?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1390"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="label.from.part" select="'0'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1393"></a>
+               
+               
+               <p>If <i><tt>label.from.part</tt></i> is non-zero, components
+                  (<tt>chapter</tt>s, <tt>appendixe</tt>s, etc.)
+                  will be numbered from 1 in each <tt>part</tt>. Otherwise,
+                  they will be numbered monotonically throughout each
+                  <tt>book</tt>.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.citerefentry.link"></a>citerefentry.link
+            </h1>
+            <div class="refnamediv"><a name="d41e1414"></a><h2>Name</h2>citerefentry.link &#8212; Generate URL links when cross-referencing RefEntrys?
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1419"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="citerefentry.link" select="'0'" doc:type="boolean"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1422"></a>
+               
+               
+               <p>If true, a web link will be generated, presumably
+                  to an online man-&gt;HTML gateway. The text of the link is
+                  generated by the generate.citerefentry.link template.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.default.encoding"></a>default.encoding
+            </h1>
+            <div class="refnamediv"><a name="d41e1428"></a><h2>Name</h2>default.encoding &#8212; Encoding used in generated HTML pages
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1433"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="default.encoding" select="'ISO-8859-1'" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1436"></a>
+               
+               
+               <p>This encoding is used in files generated by chunking stylesheet. Currently
+                  only Saxon is able to change output encoding.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="param.saxon.character.representation"></a>saxon.character.representation
+            </h1>
+            <div class="refnamediv"><a name="d41e1442"></a><h2>Name</h2>saxon.character.representation &#8212; Saxon character representation used in generated HTML pages
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e1447"></a><h2>Synopsis</h2><pre class="synopsis">
+&lt;xsl:param name="saxon.character.representation" select="'entity;decimal'" doc:type="string"/&gt;</pre></div>
+            <div class="refdescription"><a name="d41e1450"></a>
+               
+               
+               <p>This character representation is used in files generated by chunking stylesheet. If
+                  you want to suppress entity references for characters with direct representation 
+                  in default.encoding, set this parameter to value <tt>native</tt>. 
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+      </div>
+   </body>
+</html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/index.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/index.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/index.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>DocBook XSL Stylesheet Documentation</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"><link rel="home" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="next" href="pr01.html" title="Preface"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">DocBook XSL Stylesheet Documentation</th></tr><tr><td width="20%" align="left">&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a href="pr01.html">Next</a></td></tr></table><hr></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a href="pr01.html">Next</a></td></tr><tr><td width="40%" align="left">&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;Preface</td></tr></table></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/jrefhtml.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/jrefhtml.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/jrefhtml.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:import href="../docsrc/jrefhtml.xsl"/>
+
+<xsl:param name="html.stylesheet" select="'../reference.css'"/>
+
+<xsl:template match="copyright" mode="titlepage.mode">
+  <xsl:variable name="years" select="year"/>
+  <xsl:variable name="holders" select="holder"/>
+
+  <p class="{name(.)}">
+    <a href="../copyright.html">
+      <xsl:call-template name="gentext.element.name"/>
+    </a>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">copyright</xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$years" mode="titlepage.mode"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="gentext.by"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$holders" mode="titlepage.mode"/>
+    <xsl:text>. </xsl:text>
+    <a href="../warranty.html">No Warranty</a>
+    <xsl:text>.</xsl:text>
+  </p>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/lib/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/lib/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/lib/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+2001-04-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* .cvsignore, Makefile: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/lib/lib.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/lib/lib.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/lib/lib.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,161 @@
+<html>
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   
+      <title>Library Template Reference</title>
+      <link rel="stylesheet" href="../reference.css" type="text/css">
+      <meta name="generator" content="DocBook XSL Stylesheets V1.37">
+   </head>
+   <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+      <div class="reference">
+         <div class="titlepage">
+            <div>
+               <h1 class="title"><a name="d41e1"></a>Library Template Reference
+               </h1>
+            </div>
+            <div>
+               <h3 class="author">Norman Walsh</h3>
+            </div>
+            <div>
+               <p class="releaseinfo">
+                  $Id: lib.html,v 1.1 2001/06/23 17:06:32 veillard Exp $
+                  
+               </p>
+            </div>
+            <div>
+               <p class="copyright"><a href="../copyright.html">Copyright</a> &copy; 1999, 2000 by Norman Walsh. <a href="../warranty.html">No Warranty</a>.
+               </p>
+            </div>
+            <hr>
+         </div>
+         <div class="partintro">
+            <div></div>
+            <div class="section"><a name="d41e24"></a><div class="titlepage">
+                  <div>
+                     <h2 class="title" style="clear: all"><a name="d41e24"></a>Introduction
+                     </h2>
+                  </div>
+               </div>
+               <p>This is technical reference documentation for the DocBook XSL
+                  Stylesheets; it documents (some of) the parameters, templates, and
+                  other elements of the stylesheets.
+               </p>
+               <p>This is not intended to be &#8220;user&#8221; documentation.
+                  It is provided for developers writing customization layers for the
+                  stylesheets, and for anyone who's interested in &#8220;how it
+                  works&#8221;.
+               </p>
+               <p>Although I am trying to be thorough, this documentation is known
+                  to be incomplete. Don't forget to read the source, too :-)
+               </p>
+            </div>
+            <div class="toc">
+               <p><b>Table of Contents</b></p>
+               <dl>
+                  <dt><a href="#template.string.subst">string.subst</a></dt>
+                  <dt><a href="#template.xpointer.idref">xpointer.idref</a></dt>
+                  <dt><a href="#template.length-magnitude">length-magnitude</a></dt>
+                  <dt><a href="#template.length-spec">length-spec</a></dt>
+               </dl>
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.string.subst"></a>string.subst
+            </h1>
+            <div class="refnamediv"><a name="d41e40"></a><h2>Name</h2>string.subst &#8212; Substitute one text string for another in a string
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e45"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="string.subst"&gt;
+&lt;xsl:param name="string"/&gt;
+&lt;xsl:param name="target"/&gt;
+&lt;xsl:param name="replacement"/&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e48"></a>
+               
+               
+               <p>The <tt>string.subst</tt> template replaces all
+                  occurances of <i><tt>target</tt></i> in <i><tt>string</tt></i>
+                  with <i><tt>replacement</tt></i> and returns the result.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.xpointer.idref"></a>xpointer.idref
+            </h1>
+            <div class="refnamediv"><a name="d41e66"></a><h2>Name</h2>xpointer.idref &#8212; Extract IDREF from an XPointer
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e71"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="xpointer.idref"&gt;
+&lt;xsl:param name="xpointer"&gt;http://...&lt;/xsl:param&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e74"></a>
+               
+               
+               <p>The <tt>xpointer.idref</tt> template returns the
+                  ID portion of an XPointer which is a pointer to an ID within the current
+                  document, or the empty string if it is not.
+               </p>
+               
+               
+               
+               <p>In other words, <tt>xpointer.idref</tt> returns
+                  &#8220;foo&#8221; when passed either <tt>#foo</tt>
+                  or <tt>#xpointer(id('foo'))</tt>, otherwise it returns
+                  the empty string.
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.length-magnitude"></a>length-magnitude
+            </h1>
+            <div class="refnamediv"><a name="d41e98"></a><h2>Name</h2>length-magnitude &#8212; Return the unqualified dimension from a length specification
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e103"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="length-magnitude"&gt;
+&lt;xsl:param name="length" select="'0pt'"/&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e106"></a>
+               
+               
+               <p>The <tt>length-magnitude</tt> template returns the
+                  unqualified length ("20" for "20pt") from a dimension.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+         <hr>
+         <div class="refentry">
+            <h1 class="title"><a name="template.length-spec"></a>length-spec
+            </h1>
+            <div class="refnamediv"><a name="d41e115"></a><h2>Name</h2>length-spec &#8212; Return a fully qualified length specification
+            </div>
+            <div class="refsynopsisdiv"><a name="d41e120"></a><h2>Synopsis</h2><pre class="synopsis">&lt;xsl:template name="length-spec"&gt;
+&lt;xsl:param name="length" select="'0pt'"/&gt;
+&lt;xsl:param name="default.units" select="'pt'"/&gt;
+  ...
+&lt;/xsl:template&gt;</pre></div>
+            <div class="refdescription"><a name="d41e123"></a>
+               
+               
+               <p>The <tt>length-spec</tt> template returns the
+                  qualified length from a dimension. If an unqualified length is given,
+                  the <i><tt>default.units</tt></i> will be added to it.
+                  
+               </p>
+               
+               
+            </div>
+         </div>
+      </div>
+   </body>
+</html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/pr01.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/pr01.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/pr01.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Preface</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"><link rel="home" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="up" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="previous" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="next" href="publishing.html" title="Chapter 1. DocBook XSL"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Preface</th></tr><tr><td width="20%" align="left"><a href="index.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a href="publishing.html">Next</a></td></tr></table><hr></div><p>This is the beginnings of documentation for the DocBook XSL
+Stylesheets.</p><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="index.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a href="publishing.html">Next</a></td></tr><tr><td width="40%" align="left">DocBook XSL Stylesheet Documentation&nbsp;</td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right">&nbsp;Chapter 1. DocBook XSL</td></tr></table></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/publishing.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/publishing.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/publishing.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,52 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Chapter 1. DocBook XSL</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"><link rel="home" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="up" href="index.html" title="DocBook XSL Stylesheet Documentation"><link rel="previous" href="pr01.html" title="Preface"><link rel="next" href="ch01s02.html" title="A brief introduction to XSL"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. DocBook XSL</th></tr><tr><td width="20%" align="left"><a href="pr01.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a href="ch01s02.html">Next</a></td></tr></table><hr></div><p>There is a growing list of tools to process DocBook
+   documents using XSL stylesheets. Each tool implements parts
+   or all of the XSL standard, which actually has several
+   components:
+   <div class="variablelist"><dl><dt><a name="c44b1b3b4b2b2b1"></a><span class="term">Extensible Stylesheet Language (XSL)</span></dt><dd><p><a name="c44b1b3b4b2b2b1b2"></a>A language for expressing stylesheets written
+       in XML. It includes the formatting object language, but
+       refers to separate documents for the transformation
+       language and the path language.</p></dd><dt><a name="c44b1b3b4b2b2b2"></a><span class="term">XSL Transformation (XSLT)</span></dt><dd><p><a name="c44b1b3b4b2b2b2b2"></a>The part of XSL for transforming XML documents
+       into other XML documents, HTML, or text. It can be used to
+       rearrange the content and generate new content.</p></dd><dt><a name="c44b1b3b4b2b2b3"></a><span class="term">XML Path Language (XPath)</span></dt><dd><p><a name="c44b1b3b4b2b2b3b2"></a>A language for addressing parts of an XML
+       document. It is used to find the parts of your document to
+       apply different styles to. All XSL processors use this
+       component.</p></dd></dl></div></p><p>To publish HTML from your XML documents, you just
+   need an XSLT engine. To get to print, you need an XSLT
+   engine to produce formatting objects (FO), which then must
+   be processed with a formatting object processor to produce
+   PostScript or PDF output.</p><p>James Clark's XT was the first useful XSLT engine,
+   and it is still in wide use. It is written in Java, so it
+   runs on many platforms, and it is free (
+   <a href="http://www.jclark.com" target="_top">http://www.jclark.com</a>).
+   XT comes with James Clark's nonvalidating parser XP, but
+   you can substitute a different Java parser. Here is a
+   simple example of using XT from the Unix command line to
+   produce HTML: You'll need to alter your
+   <i><tt>CLASSPATH</tt></i> environment variable to
+   include the path to where you put the
+   <tt>.jar</tt> files from the XT
+   distribution.</p><pre class="screen">CLASSPATH=xt.jar:xp.jar:sax.jar
+export CLASSPATH
+java  com.jclark.xsl.sax.Driver <i><tt>filename.xml</tt></i> <i><tt>docbook/html/docbook.xsl</tt></i> &gt; <i><tt>output.html</tt></i></pre><p>If you replace the HTML stylesheet with a
+   formatting object stylesheet, XT will produce a formatting
+   object file. Then you can convert that to PDF using FOP, a
+   formatting object processor available for free from the
+   Apache XML Project (
+   <a href="http://xml.apache.org" target="_top">http://xml.apache.org</a>).
+   Here is an example of that two stage processing:</p><pre class="screen">CLASSPATH=xt.jar:xp.jar:sax.jar:fop.jar
+export CLASSPATH
+java  com.jclark.xsl.sax.Driver <i><tt>filename.xml</tt></i> <i><tt>docbook/fo/docbook.xsl</tt></i> &gt; <i><tt>output.fo</tt></i>
+java  org.apache.fop.apps.CommandLine <i><tt>output.fo</tt></i> <i><tt>output.pdf</tt></i></pre><p>As of this writing, some other XSLT processors to
+   choose from include:</p><div class="itemizedlist"><ul><li><p><a name="c44b1b3b4b9b1"></a>4XSLT, written in Python, from FourThought LLC (
+     <a href="http://www.fourthought.com" target="_top">http://www.fourthought.com</a>)</p></li><li><p><a name="c44b1b3b4b9b2"></a>Sablotron, written in C++, from Ginger Alliance (
+
+     <a href="http://www.gingerall.com" target="_top">http://www.gingerall.com</a>)</p></li><li><p><a name="c44b1b3b4b9b3"></a>Saxon, written in Java, from Michael Kay (
+     <a href="http://users.iclway.co.uk/mhkay/saxon" target="_top">http://users.iclway.co.uk/mhkay/saxon</a>)</p></li><li><p><a name="c44b1b3b4b9b4"></a>Xalan, written in Java, from the Apache XML
+     Project (
+     <a href="http://xml.apache.org" target="_top">http://xml.apache.org</a>)</p></li><li><p><a name="c44b1b3b4b9b5"></a>XML::XSLT,written in Perl, from Geert Josten and
+     Egon Willighagen (
+     <a href="http://www.cpan.org" target="_top">http://www.cpan.org</a>)</p></li></ul></div><p>For print output, these additional tools are available for processing formatting objects:</p><div class="itemizedlist"><ul><li><p><a name="c44b1b3b4c11b1"></a>XEP (written in Java) from
+   RenderX (
+  <a href="http://www.renderx.com" target="_top">http://www.renderx.com</a>).</p></li><li><p><a name="c44b1b3b4c11b2"></a>PassiveTeX from Sebastian Rahtz (<a href="http://users.ox.ac.uk/~rahtz/passivetex/" target="_top">http://users.ox.ac.uk/~rahtz/passivetex/</a>).</p></li></ul></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="pr01.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right">&nbsp;<a href="ch01s02.html">Next</a></td></tr><tr><td width="40%" align="left">Preface&nbsp;</td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right">&nbsp;A brief introduction to XSL</td></tr></table></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.css
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.css	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.css	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+/* reference.css, a stylesheet for reference documentation */
+
+div.legalnotice { font-size: 80%; }
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>DocBook XSL Stylesheet Reference Documentation</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.39"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="c40b1"><div class="titlepage"><div><h1 class="title"><a name="c40b1"></a>DocBook XSL Stylesheet Reference Documentation</h1></div><div><h3 class="author">Norman Walsh</h3></div><div><p class="releaseinfo">
+$Id: reference.html,v 1.1 2001/06/23 17:06:29 veillard Exp $
+</p></div><div><p class="copyright"><a href="copyright.html">Copyright</a> &copy; 1999, 2000 by Norman Walsh. <a href="warranty.html">No Warranty</a>.</p></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#c40b1b2">Preface</a></dt></dl></div><div id="c40b1b2" class="preface"><div class="titlepage"><div><h2 class="title"><a name="c40b1b2"></a>Preface</h2></div></div><p>This constitutes only the most rudimentary beginnings of
+documentation for these stylesheets.</p><p>At present, the only documentation available is the set
+of references generated from the stylesheet sources:</p><div class="itemizedlist"><ul><li><p><a name="c40b1b2b4b1"></a><i><a href="lib/lib.html">Library Template Reference</a></i></p></li><li><p><a name="c40b1b2b4b2"></a><i><a href="common/common.html">Common Template Reference</a></i></p></li><li><p><a name="c40b1b2b4b3"></a><i><a href="html/param.html">HTML Parameter Reference</a></i></p></li><li><p><a name="c40b1b2b4b4"></a><i><a href="html/ebnf.html">HTML EBNF Reference</a></i></p></li><li><p><a name="c40b1b2b4b5"></a><i><a href="fo/param.html">Formatting Object Parameter Reference</a></i></p></li><li><p><a name="c40b1b2b4b6"></a><i><a href="fo/table.html">Formatting Object Table Reference</a></i></p></li></ul></div><p>The reference to the template system is also available,
+but at this point it's probably even less useful than the preceding
+references.</p><div class="itemizedlist"><ul><li><p><a name="c40b1b2b6b1"></a><i><a href="template/titlepage.html">Template Stylesheet Reference</a></i></p></li></ul></div></div></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/reference.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:import href="../html/docbook.xsl"/>
+
+<xsl:param name="html.stylesheet" select="'reference.css'"/>
+
+<xsl:template match="/legalnotice">
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="olink[@type='title']">
+  <xsl:variable name="xml"
+                select="document(unparsed-entity-uri(@targetdocent))"/>
+  <xsl:variable name="title" select="($xml/*/title[1]
+                                      |$xml/*/bookinfo/title[1]
+                                      |$xml/*/referenceinfo/title[1])[1]"/>
+  <i>
+    <a href="{@localinfo}">
+      <xsl:apply-templates select="$title/*|$title/text()"/>
+    </a>
+  </i>
+</xsl:template>
+
+<xsl:template match="copyright" mode="titlepage.mode">
+  <xsl:variable name="years" select="year"/>
+  <xsl:variable name="holders" select="holder"/>
+
+  <p class="{name(.)}">
+    <a href="copyright.html">
+      <xsl:call-template name="gentext.element.name"/>
+    </a>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">copyright</xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$years" mode="titlepage.mode"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="gentext.by"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$holders" mode="titlepage.mode"/>
+    <xsl:text>. </xsl:text>
+    <a href="warranty.html">No Warranty</a>
+    <xsl:text>.</xsl:text>
+  </p>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/warranty.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/warranty.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/doc/warranty.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<html><head>
+      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+   <title>Warranty</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.37"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="legalnotice"><p class="legalnotice-title"><b>Warranty</b></p><p>THE SOFTWARE IS PROVIDED &#8220;AS IS&#8221;,
+WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL NORMAN WALSH OR ANY
+OTHER CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
+OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.</p></div></body></html>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/COPYRIGHT
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/COPYRIGHT	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/COPYRIGHT	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,27 @@
+DocBk XML V3.1.7 DTD
+Copyright (C) 1998, 1999 Norman Walsh
+http://nwalsh.com/docbook/xml/
+
+You may distribute this DTD under the same terms as DocBook.
+
+Please direct all questions and comments about this DTD to
+Norman Walsh, <ndw at nwalsh.com>.
+
+This DTD is based on the DocBook V3.1 DTD from OASIS:
+
+  [DocBook is] Copyright 1992, 1993, 1994, 1995, 1996, 1998,
+  1999 HaL Computer Systems, Inc., O'Reilly & Associates, Inc.,
+  ArborText, Inc., Fujitsu Software Corporation, and the
+  Organization for the Advancement of Structured Information
+  Standards (OASIS).
+
+  Permission to use, copy, modify and distribute the DocBook
+  DTD and its accompanying documentation for any purpose and
+  without fee is hereby granted in perpetuity, provided that
+  the above copyright notice and this paragraph appear in all
+  copies.  The copyright holders make no representation about
+  the suitability of the DTD for any purpose.  It is provided
+  "as is" without expressed or implied warranty.
+
+For more information about the DocBook DTD, see 
+http://www.oasis-open.org/docbook/

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,249 @@
+1999-11-10  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, test.xml: 
+	Updated version numbers
+
+	* VERSION: Version 3.1.7 released
+
+	* dbpoolx.mod: Finally wrote a program to compare the SGML and XML DTDs. Oh my!
+	Added informalfigure to a number of contexts where it was missing
+	Changed the format attribute on graphics back into a notation list
+	  (why had I made it CDATA?)
+	Tweaked the parameterization of table attributes, this restores the 'role'
+	  attribute to 'entry', 'row', and perhaps a few other places where it
+	  was missing.
+	Added journal, series, set, and manuscript as values for the pubwork
+	  attribute on citetitle
+	Removed extraneous '?' from the declaration for indexterm. Indexterms
+	  are not allowed to be empty!
+
+1999-10-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, test.xml: 
+	Updated version numbers
+
+	* VERSION: Version 3.1.6 released
+
+	* dbhierx.mod, dbpoolx.mod: Added missing mediaobject/inlinemediaobject elements
+
+	* soextblx.dtd: Official OASIS table model: TR9901:1999
+
+1999-08-26  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, soextblx.dtd, test.xml: 
+	Updated version number
+
+	* VERSION: Version 3.1.5 released
+
+	* dbpoolx.mod: Fixed a number of erroneous comments
+	Added constant and varname to tech.char.class
+	Changed "VarName" to "varname"
+	Changed %argpagenums to %artpagenums
+
+1999-06-04  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, soextblx.dtd, test.xml: 
+	Updated version numbers
+
+	* VERSION: Version 3.1.4 released
+
+	* dbhierx.mod: Made artheader optional
+
+	* dbpoolx.mod: Fix common attribute problem on informaltable a different way
+
+	* dbpoolx.mod: The common.attrib PE was missing from informaltable
+
+	* dbpoolx.mod: Reformulated parameterization of table attributes (again) to get it right.
+
+	* dbtblcals.dtd, dbtblxchg.dtd, tblcals.xml, tblxchg.xml: 
+	New file.
+
+1999-03-31  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, soextblx.dtd, test.xml: 
+	Changed version number to 3.1.3
+
+	* VERSION: Version 3.1.3 released
+
+	* dbhierx.mod, dbpoolx.mod, docbookx.dtd: Added param. ent. decls. to make IE5 happy.
+
+1999-03-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, soextblx.dtd, test.xml: 
+	Updated version number to 3.1.2
+
+	* VERSION: Version 3.1.2 released
+
+	* dbpoolx.mod: Changed my mind, CALS has to be the default table model
+
+1999-03-17  Norman Walsh  <ndw at nwalsh.com>
+
+	* README: Updated manifest
+
+	* VERSION: Version 3.1.1 released
+	
+	This release introduces several significant changes:
+	
+	- An XML version of the OASIS Exchange Table Model
+	  is used in favor of the full CALS model. This can
+	  be "toggled" back with a single parameter entity
+	  change
+	
+	- The version number has changed dramatically to make
+	  it clear that it tracks 3.1.  (Version 1.3 of the
+	  XML version of DocBook 3.1 was just too confusing!)
+	
+	- I added parameter entities to include/exclude the
+	  dbcentx.mod and dbnotnx.mod modules all at once
+	
+	- Fixed a few small content model bugs
+
+	* docbookx.dtd: Added marked sections around dbnotn and dbcent modules
+
+1999-03-16  Norman Walsh  <ndw at nwalsh.com>
+
+	* dbpoolx.mod: In the XML exchange table model case, the attlist for informaltable was wrong
+
+1999-03-11  Norman Walsh  <ndw at nwalsh.com>
+
+	* calstblx.dtd: Removed unused PEs
+
+	* dbpoolx.mod: Added switch for exchange or CALS table model; made exchange the default
+
+	* soextblx.dtd: New file.
+
+1999-03-06  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, calstblx.dtd, dbgenent.ent, docbookx.dtd: 
+	Changed version number to 3.1.1
+
+	* changes: Replaced by ChangeLog
+
+	* db3xml.dtd, docbookx.dtd: Renamed db3xml.dtd to docbookx.dtd
+
+	* dbcentx.mod: Fixed broken public identifiers. Changed version number to 3.1.1
+
+	* dbhierx.mod: Fixed bug: added section to %bookcomponent.content;
+	Changed version number to 3.1.1.
+
+	* dbnotnx.mod: Changed the PUBLIC identifiers that were just a single word (like
+	"DITROFF") back into SYSTEM identifiers.  I don't know why I made
+	the PUBLIC in the first place.
+	Changed version number to 3.1.1
+
+	* dbpoolx.mod: Fixed bug: added qandaset to %compound.class;
+	Fixed bug: added citetitle to %bibliocomponent.mix;
+	Changed version to 3.1.1
+
+	* test.xml: Changed version number to 3.1.1; changed system identifier
+
+1999-01-31  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, calstblx.dtd, db3xml.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, test.xml: 
+	Converted version to 1.3
+
+	* VERSION: Version 1.3 released.
+	Based on DocBook 3.1.
+	Public identifiers now contain the string "DocBk XML" instead of
+	just "DocBk30 XML".
+
+	* db3xml.dtd: Added dbnotnx.mod; added notations back into the DTD.  Notations don't
+	require system identifiers, so the public IDs will be just fine.
+	
+	Moved ISO character entity declarations into dbcentx.mod.  Added
+	Unicode versions of the entity sets to the distribution.
+
+	* dbcentx.mod, dbnotnx.mod: New file.
+
+	* dbhierx.mod: Converted to DocBook 3.1:
+	
+	- Add 'faq' as a class value to Article
+	- Cleaned up, and significantly loosened, the content model of Book.
+	- Added Colophon to Book.
+	- Add LinkEnd to LoTEntry.
+	- Sets are no longer required to contain at least two books.
+	- Added recursive Divisions.
+	- Added Subtitle to divisions (Set, Book, etc.), components, and
+	  sections.  It may occur outside of *Info elements.
+	- Added Title, TitleAbbrev, and SubTitle outside ArtHeader; ArtHeader
+	  is now optional.
+	- Parameterized element and attribute declarations separately.
+
+	* dbpoolx.mod: Converted to DocBook 3.1:
+	
+	- Added optional title to MsgSet
+	- Added inline Constant for marking up constants and limits
+	- Added inline VarName for marking up variable names
+	- Added several elements to the content model of ArtHeader that were
+	  accidentally left out in 3.0: Graphic, LegalNotice, ModeSpec,
+	  SubjectSet, KeywordSet, and ITermSet.
+	- Added pagewide attribute to Figure, added InformalFigure
+	- Added person name elements to Address.
+	- Added Class attribute to LiteralLayout indicating Monospaced or
+	  Normal font.
+	- Added ULink to docinfo.char.mix.
+	- Added RevHistory to GlossEntry.
+	- Added CmdLength attribute to CmdSynopsis to indicate Command length
+	- Added QAndASet, MediaObject, and InlineMediaObject.
+	- Parameterized element and attribute declarations separately.
+
+1999-01-30  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT: Moved install info to README, updated year & URL
+
+	* README: Changed version, added manifest and installation instructions, updated year
+
+	* VERSION: Updated version
+
+	* calstblx.dtd: Changed version number
+
+	* db3xml.dtd, dbgenent.ent, dbhierx.mod, dbpoolx.mod: Changed version
+
+	* test.xml: Added glossary test, fixed indexterm example
+
+1999-01-13  Norman Walsh  <ndw at nwalsh.com>
+
+	* dbhierx.mod: Added indexterms to RefEntry and RefMeta
+
+	* dbpoolx.mod: Added indexterm to glossentry between glossterm and glossdef.
+
+1998-12-09  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, calstblx.dtd, db3xml.dtd, dbgenent.ent, dbhierx.mod, dbpoolx.mod, test.xml: 
+	Changed embedded version number to 1.1
+
+	* VERSION: Version 1.1 released.
+
+	* VERSION: New file.
+
+	* calstblx.dtd: Ripped out a whole bunch of comments.  In XML, parameter
+	entities are expanded in comments and that made some of the
+	comments bogus.
+
+	* dbhierx.mod: Added indexterms to refinline.char.mix.
+
+	* dbpoolx.mod: Added indexterm and beginpage to example.mix, highlights.mix,
+	admon.mix, figure.mix, glossdef.mix, legalnotice.mix.
+	
+	Allow indexterms between title and para in formalpara.
+	
+	Added indexterms to tbl.table.mdl, between title and the rest of
+	the content of table.
+	
+	Removed a few extraneous parameter entities (exclusions in
+	tables, mostly).
+
+	* test.xml: Change systemid; added test indexterms
+
+1998-09-16  Norman Walsh  <ndw at nwalsh.com>
+
+	* db3xml.dtd: Changed declaration of linespecific; former declaration
+	was not a valid URI
+
+	* dbpoolx.mod: Removed duplicate declaration of local.keywordset.attrib
+
+1998-09-10  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, calstblx.dtd, changes, db3xml.dtd, dbgenent.ent, dbhierx.mod, dbpoolx.mod, test.xml: 
+	New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,202 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+EXTRA_DIST =      COPYRIGHT ChangeLog README VERSION calstblx.dtd dbcentx.mod     dbgenent.ent dbhierx.mod dbnotnx.mod dbpoolx.mod dbtblcals.dtd     dbtblxchg.dtd docbookx.dtd soextblx.dtd tblcals.xml tblxchg.xml     test.xml     ent/iso-amsa.ent ent/iso-amsb.ent ent/iso-amsc.ent ent/iso-amsn.ent     ent/iso-amso.ent ent/iso-amsr.ent ent/iso-box.ent ent/iso-cyr1.ent     ent/iso-cyr2.ent ent/iso-dia.ent ent/iso-grk1.ent ent/iso-grk2.ent     ent/iso-grk3.ent ent/iso-grk4.ent ent/iso-lat1.ent ent/iso-lat2.ent     ent/iso-num.ent ent/iso-pub.ent ent/iso-tech.ent
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/3.1.7/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/3.1.7
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/3.1.7/Makefile
+	$(mkinstalldirs) $(distdir)/ent
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,202 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+EXTRA_DIST =      COPYRIGHT ChangeLog README VERSION calstblx.dtd dbcentx.mod     dbgenent.ent dbhierx.mod dbnotnx.mod dbpoolx.mod dbtblcals.dtd     dbtblxchg.dtd docbookx.dtd soextblx.dtd tblcals.xml tblxchg.xml     test.xml     ent/iso-amsa.ent ent/iso-amsb.ent ent/iso-amsc.ent ent/iso-amsn.ent     ent/iso-amso.ent ent/iso-amsr.ent ent/iso-box.ent ent/iso-cyr1.ent     ent/iso-cyr2.ent ent/iso-dia.ent ent/iso-grk1.ent ent/iso-grk2.ent     ent/iso-grk3.ent ent/iso-grk4.ent ent/iso-lat1.ent ent/iso-lat2.ent     ent/iso-num.ent ent/iso-pub.ent ent/iso-tech.ent
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/3.1.7/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/3.1.7
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/3.1.7/Makefile
+	$(mkinstalldirs) $(distdir)/ent
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/README
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/README	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/README	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,76 @@
+README for the DocBk XML V3.1.7 DTD
+
+This is an XML version of the DocBook V3.1 DTD
+
+Manifest
+--------
+
+README        - This readme file
+VERSION       - The version number
+COPYRIGHT     - Copyright statement
+ChangeLog     - Summary of changes from previous versions
+calstblx.dtd  - An XML version of the CALS Table Model DTD
+dbcentx.mod   - Character entities
+dbgenent.ent  - General entities
+dbhierx.mod   - The XML version of the hierarchy module
+dbnotnx.mod   - Notations
+dbpoolx.mod   - The XML version of the information pool module
+docbookx.dtd  - The XML version of the DocBook 3.1 DTD
+soextblx.dtd  - An XML version of the OASIS Exchange Table model
+test.xml      - A test document
+ent/          - XML versions of the ISO entity sets
+
+Installation
+------------
+
+Place the files in this distribution somewhere on your machine.  Adjust
+your catalog(s) if appropriate (XML tools frequently do not support 
+catalogs, so this may be irrelevant for you).
+
+Please use the following formal public identifier to identify this DTD:
+
+"-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+
+For example, if your document's top-level element is <book>, and
+you are using DocBk XML directly, use the FPI in the DOCTYPE
+declaration:
+
+<!DOCTYPE book PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+          "/system/identifier/on/your/system/db3xml.dtd" [
+...
+]>
+
+Or, if you have a higher-level driver file that customizes DocBk XML,
+use the FPI in the parameter entity declaration:
+
+<!ENTITY % DocBkXML PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+           "/system/identifier/on/your/system/db3xml.dtd">
+%DocBkXML;
+
+
+Copyright
+---------
+
+Copyright (C) 1998, 1999 Norman Walsh
+
+See COPYRIGHT for more information
+
+Warranty
+--------
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT.  IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Contacting the Author
+---------------------
+
+This DTD is maintained by Norman Walsh, <ndw at nwalsh.com>.
+
+The best way to reach norm is by email.  You will find additional
+contact information at http://nwalsh.com/docbook/xml/

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/VERSION
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/VERSION	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/VERSION	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+3.1.7

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/calstblx.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/calstblx.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/calstblx.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,176 @@
+<!-- ====================================================================== -->
+<!-- CALS Table Model XML V3.1.7
+     Part of the DocBk XML V3.1.7 DTD
+     http://nwalsh.com/docbook/xml/
+ 
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+
+     This DTD is based on the CALS Table Model
+     PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!-- These definitions are not directly related to the table model, but are 
+     used in the default CALS table model and are usually defined elsewhere 
+     (and prior to the inclusion of this table module) in a CALS DTD. -->
+
+<!ENTITY % bodyatt "">
+<!ENTITY % secur "">
+
+<!-- no if zero(s),
+                                yes if any other digits value -->
+
+<!ENTITY % yesorno 'CDATA'>
+<!ENTITY % titles  'title?'>
+
+<!-- default for use in entry content -->
+
+<!ENTITY % paracon '#PCDATA'>
+
+<!--
+The parameter entities as defined below provide the CALS table model
+as published (as part of the Example DTD) in MIL-HDBK-28001.
+
+These following declarations provide the CALS-compliant default definitions
+for these entities.  However, these entities can and should be redefined
+(by giving the appropriate parameter entity declaration(s) prior to the
+reference to this Table Model declaration set entity) to fit the needs
+of the current application.
+-->
+
+<!ENTITY % tbl.table.name       "(table|chart)">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl   "(tgroup+|graphic+)">
+<!ENTITY % tbl.table.mdl        "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att        '
+    tabstyle    CDATA           #IMPLIED
+    tocentry    %yesorno;       #IMPLIED
+    shortentry  %yesorno;       #IMPLIED
+    orient      (port|land)     #IMPLIED
+    pgwide      %yesorno;       #IMPLIED '>
+<!ENTITY % tbl.tgroup.mdl       "colspec*,spanspec*,thead?,tfoot?,tbody">
+<!ENTITY % tbl.tgroup.att       '
+    tgroupstyle CDATA           #IMPLIED '>
+<!ENTITY % tbl.hdft.mdl         "colspec*,row+">
+<!ENTITY % tbl.row.mdl          "(entry|entrytbl)+">
+<!ENTITY % tbl.entrytbl.mdl     "colspec*,spanspec*,thead?,tbody">
+<!ENTITY % tbl.entry.mdl        "(para|warning|caution|note|legend|%paracon;)*">
+<!-- =====  Element and attribute declarations follow. =====  -->
+
+<!ELEMENT table (%tbl.table.mdl;)>
+
+<!ATTLIST table
+        frame           (top|bottom|topbot|all|sides|none)      #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        %tbl.table.att;
+        %bodyatt;
+        %secur;
+>
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+        cols            CDATA                                   #REQUIRED
+        %tbl.tgroup.att;
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+        %secur;
+>
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+        colnum          CDATA                                   #IMPLIED
+        colname         CDATA                                   #IMPLIED
+        colwidth        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+>
+
+<!ELEMENT spanspec EMPTY >
+
+<!ATTLIST spanspec
+        namest          CDATA                                   #REQUIRED
+        nameend         CDATA                                   #REQUIRED
+        spanname        CDATA                                   #REQUIRED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+>
+
+<!ELEMENT thead (%tbl.hdft.mdl;)>
+<!ATTLIST thead
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT tfoot (%tbl.hdft.mdl;)>
+<!ATTLIST tfoot
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+        rowsep          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT entrytbl (%tbl.entrytbl.mdl;)>
+
+<!ATTLIST entrytbl
+        cols            CDATA                                   #REQUIRED
+        %tbl.tgroup.att;
+        colname         CDATA                                   #IMPLIED
+        spanname        CDATA                                   #IMPLIED
+        namest          CDATA                                   #IMPLIED
+        nameend         CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+        %secur;
+>
+
+<!ELEMENT entry (%tbl.entry.mdl;)*>
+
+<!ATTLIST entry
+        colname         CDATA                                   #IMPLIED
+        namest          CDATA                                   #IMPLIED
+        nameend         CDATA                                   #IMPLIED
+        spanname        CDATA                                   #IMPLIED
+        morerows        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+        rotate          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!-- End of CALS Table Model XML V3.1.7 ..................................... -->
+<!-- ...................................................................... -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbcentx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbcentx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbcentx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,166 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML Character Entity Sets V3.1.7
+     Part of the DocBk XML V3.1.7 DTD
+     http://nwalsh.com/docbook/xml/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % ISOamsa.module "INCLUDE">
+<![%ISOamsa.module;[
+<!ENTITY % ISOamsa PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+"ent/iso-amsa.ent">
+%ISOamsa;
+<!--end of ISOamsa.module-->]]>
+
+<!ENTITY % ISOamsb.module "INCLUDE">
+<![%ISOamsb.module;[
+<!ENTITY % ISOamsb PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+"ent/iso-amsb.ent">
+%ISOamsb;
+<!--end of ISOamsb.module-->]]>
+
+<!ENTITY % ISOamsc.module "INCLUDE">
+<![%ISOamsc.module;[
+<!ENTITY % ISOamsc PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+"ent/iso-amsc.ent">
+%ISOamsc;
+<!--end of ISOamsc.module-->]]>
+
+<!ENTITY % ISOamsn.module "INCLUDE">
+<![%ISOamsn.module;[
+<!ENTITY % ISOamsn PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+"ent/iso-amsn.ent">
+%ISOamsn;
+<!--end of ISOamsn.module-->]]>
+
+<!ENTITY % ISOamso.module "INCLUDE">
+<![%ISOamso.module;[
+<!ENTITY % ISOamso PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+"ent/iso-amso.ent">
+%ISOamso;
+<!--end of ISOamso.module-->]]>
+
+<!ENTITY % ISOamsr.module "INCLUDE">
+<![%ISOamsr.module;[
+<!ENTITY % ISOamsr PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+"ent/iso-amsr.ent">
+%ISOamsr;
+<!--end of ISOamsr.module-->]]>
+
+<!ENTITY % ISObox.module "INCLUDE">
+<![%ISObox.module;[
+<!ENTITY % ISObox PUBLIC
+"ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+"ent/iso-box.ent">
+%ISObox;
+<!--end of ISObox.module-->]]>
+
+<!ENTITY % ISOcyr1.module "INCLUDE">
+<![%ISOcyr1.module;[
+<!ENTITY % ISOcyr1 PUBLIC
+"ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+"ent/iso-cyr1.ent">
+%ISOcyr1;
+<!--end of ISOcyr1.module-->]]>
+
+<!ENTITY % ISOcyr2.module "INCLUDE">
+<![%ISOcyr2.module;[
+<!ENTITY % ISOcyr2 PUBLIC
+"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+"ent/iso-cyr2.ent">
+%ISOcyr2;
+<!--end of ISOcyr2.module-->]]>
+
+<!ENTITY % ISOdia.module "INCLUDE">
+<![%ISOdia.module;[
+<!ENTITY % ISOdia PUBLIC
+"ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+"ent/iso-dia.ent">
+%ISOdia;
+<!--end of ISOdia.module-->]]>
+
+<!ENTITY % ISOgrk1.module "INCLUDE">
+<![%ISOgrk1.module;[
+<!ENTITY % ISOgrk1 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+"ent/iso-grk1.ent">
+%ISOgrk1;
+<!--end of ISOgrk1.module-->]]>
+
+<!ENTITY % ISOgrk2.module "INCLUDE">
+<![%ISOgrk2.module;[
+<!ENTITY % ISOgrk2 PUBLIC
+"ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+"ent/iso-grk2.ent">
+%ISOgrk2;
+<!--end of ISOgrk2.module-->]]>
+
+<!ENTITY % ISOgrk3.module "INCLUDE">
+<![%ISOgrk3.module;[
+<!ENTITY % ISOgrk3 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+"ent/iso-grk3.ent">
+%ISOgrk3;
+<!--end of ISOgrk3.module-->]]>
+
+<!ENTITY % ISOgrk4.module "INCLUDE">
+<![%ISOgrk4.module;[
+<!ENTITY % ISOgrk4 PUBLIC
+"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+"ent/iso-grk4.ent">
+%ISOgrk4;
+<!--end of ISOgrk4.module-->]]>
+
+<!ENTITY % ISOlat1.module "INCLUDE">
+<![%ISOlat1.module;[
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+<!--end of ISOlat1.module-->]]>
+
+<!ENTITY % ISOlat2.module "INCLUDE">
+<![%ISOlat2.module;[
+<!ENTITY % ISOlat2 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+"ent/iso-lat2.ent">
+%ISOlat2;
+<!--end of ISOlat2.module-->]]>
+
+<!ENTITY % ISOnum.module "INCLUDE">
+<![%ISOnum.module;[
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+<!--end of ISOnum.module-->]]>
+
+<!ENTITY % ISOpub.module "INCLUDE">
+<![%ISOpub.module;[
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!--end of ISOpub.module-->]]>
+
+<!ENTITY % ISOtech.module "INCLUDE">
+<![%ISOtech.module;[
+<!ENTITY % ISOtech PUBLIC
+"ISO 8879:1986//ENTITIES General Technical//EN//XML"
+"ent/iso-tech.ent">
+%ISOtech;
+<!--end of ISOtech.module-->]]>
+
+<!-- End of DocBk XML character entity sets module V3.1.7 ................... -->
+<!-- ...................................................................... -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbgenent.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbgenent.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbgenent.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML Additional General Entities V3.1.7
+     Part of the DocBk XML V3.1.7 DTD
+     http://nwalsh.com/docbook/xml/
+ 
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!-- You can edit this file to add the following:
+     o General entity declarations of any kind.
+     o Notation declarations.
+     o Declarations for and references to external parameter entities
+       containing collections of any of the above.
+-->
+
+<!-- End of DocBk XML Additional General Entities V3.1.7 .................. -->
+<!-- ...................................................................... -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbhierx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbhierx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbhierx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1795 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML Document Hierarchy V3.1.7
+     Part of the DocBk XML V3.1.7 DTD
+     http://nwalsh.com/docbook/xml/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbhier.redecl.module		"IGNORE">
+<!ENTITY % dbhier.redecl2.module	"IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes ......................................... -->
+
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class	"appendix %local.appendix.class;">
+
+<!ENTITY % local.article.class "">
+<!ENTITY % article.class	"article %local.article.class;">
+
+<!ENTITY % local.book.class "">
+<!ENTITY % book.class		"book %local.book.class;">
+
+<!ENTITY % local.chapter.class "">
+<!ENTITY % chapter.class	"chapter %local.chapter.class;">
+
+<!ENTITY % local.index.class "">
+<!ENTITY % index.class		"index|setindex %local.index.class;">
+
+<!ENTITY % local.refentry.class "">
+<!ENTITY % refentry.class	"refentry %local.refentry.class;">
+
+<!ENTITY % local.nav.class "">
+<!ENTITY % nav.class		"toc|lot|index|glossary|bibliography 
+				%local.nav.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+     retaining their references to the entities that are declared before
+     this point -->
+
+<![%dbhier.redecl.module;[
+<!-- Defining rdbhier here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier "">
+%rdbhier;
+<!--end of dbhier.redecl.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for element mixtures ........................................ -->
+
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+		|%genobj.class;		|%descobj.class;
+		|%ndxterm.class;        |beginpage
+		%local.divcomponent.mix;">
+
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+		|%genobj.class;		|%descobj.class;
+		|%ndxterm.class;        |beginpage
+		%local.refcomponent.mix;">
+
+<!ENTITY % local.indexdivcomponent.mix "">
+<!ENTITY % indexdivcomponent.mix
+		"itemizedlist|orderedlist|variablelist|simplelist
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|anchor|comment
+		|%link.char.class;
+ 		                        |beginpage
+		%local.indexdivcomponent.mix;">
+
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % refname.char.mix
+		"#PCDATA
+		|%tech.char.class;
+		%local.refname.char.mix;">
+
+<!ENTITY % local.partcontent.mix "">
+<!ENTITY % partcontent.mix
+		"%appendix.class;|%chapter.class;|%nav.class;|%article.class;
+		|preface|%refentry.class;|reference %local.partcontent.mix;">
+
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;
+		|%ndxterm.class;        |beginpage
+		%local.refinline.char.mix;">
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+		"#PCDATA
+		|application
+		%local.refclass.char.mix;">
+
+<!-- Redeclaration placeholder 2 .......................................... -->
+
+<!-- For redeclaring entities that are declared after this point while
+     retaining their references to the entities that are declared before
+     this point -->
+
+<![%dbhier.redecl2.module;[
+<!-- Defining rdbhier2 here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier2 "">
+%rdbhier2;
+<!--end of dbhier.redecl2.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % div.title.content
+	"title, subtitle?, titleabbrev?">
+
+<!--FUTURE USE (V4.0):
+......................
+The DocInfo element will be split out into ChapterInfo, AppendixInfo,
+etc.
+......................
+-->
+<!ENTITY % bookcomponent.title.content
+	"docinfo?, title, subtitle?, titleabbrev?">
+
+<!ENTITY % sect.title.content
+	"title, subtitle?, titleabbrev?">
+
+<!ENTITY % refsect.title.content
+	"title, subtitle?, titleabbrev?">
+
+<!ENTITY % bookcomponent.content
+	"((%divcomponent.mix;)+, 
+	(sect1*|(%refentry.class;)*|simplesect*|section*))
+	| (sect1+|(%refentry.class;)+|simplesect+|section+)">
+
+<!-- ...................................................................... -->
+<!-- Set and SetInfo ...................................................... -->
+
+<!ENTITY % set.content.module "INCLUDE">
+<![%set.content.module;[
+<!ENTITY % set.module "INCLUDE">
+<![%set.module;[
+<!ENTITY % local.set.attrib "">
+<!ENTITY % set.role.attrib "%role.attrib;">
+
+<!ENTITY % set.element "INCLUDE">
+<![%set.element;[
+<!ELEMENT set ((%div.title.content;)?, setinfo?, toc?, (%book.class;)+,
+		setindex?)>
+<!--end of set.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % set.attlist "INCLUDE">
+<![%set.attlist;[
+<!ATTLIST set
+		fpi		CDATA		#IMPLIED
+		%status.attrib;
+		%common.attrib;
+		%set.role.attrib;
+		%local.set.attrib;
+>
+<!--end of set.attlist-->]]>
+<!--end of set.module-->]]>
+
+<!ENTITY % setinfo.module "INCLUDE">
+<![%setinfo.module;[
+<!ENTITY % local.setinfo.attrib "">
+<!ENTITY % setinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % setinfo.element "INCLUDE">
+<![%setinfo.element;[
+<!ELEMENT setinfo ((graphic | mediaobject 
+        | legalnotice | modespec | subjectset 
+	| keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of setinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, Books, and SetIndex that comprise 
+		the set, in the order of their appearance -->
+
+
+<!ENTITY % setinfo.attlist "INCLUDE">
+<![%setinfo.attlist;[
+<!ATTLIST setinfo
+		contents	IDREFS		#IMPLIED
+		%common.attrib;
+		%setinfo.role.attrib;
+		%local.setinfo.attrib;
+>
+<!--end of setinfo.attlist-->]]>
+<!--end of setinfo.module-->]]>
+<!--end of set.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Book and BookInfo .................................................... -->
+
+<!ENTITY % book.content.module "INCLUDE">
+<![%book.content.module;[
+<!ENTITY % book.module "INCLUDE">
+<![%book.module;[
+<!--FUTURE USE (V4.0):
+......................
+The %article.class; entity *may* be removed from the Book content model.
+(Article may be made part of a new top-level document hierarchy.)
+......................
+-->
+
+<!ENTITY % local.book.attrib "">
+<!ENTITY % book.role.attrib "%role.attrib;">
+
+<!ENTITY % book.element "INCLUDE">
+<![%book.element;[
+<!ELEMENT book ((%div.title.content;)?, bookinfo?,
+ 		(dedication | toc | lot
+ 		| glossary | bibliography | preface
+		| %chapter.class; | reference | part
+		| %article.class;
+ 		| %appendix.class;
+		| %index.class;
+		| colophon)*)>
+<!--end of book.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % book.attlist "INCLUDE">
+<![%book.attlist;[
+<!ATTLIST book		fpi		CDATA		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%book.role.attrib;
+		%local.book.attrib;
+>
+<!--end of book.attlist-->]]>
+<!--end of book.module-->]]>
+
+<!ENTITY % bookinfo.module "INCLUDE">
+<![%bookinfo.module;[
+<!--FUTURE USE (V4.0):
+......................
+BookBiblio will be discarded.
+......................
+-->
+<!ENTITY % local.bookinfo.attrib "">
+<!ENTITY % bookinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % bookinfo.element "INCLUDE">
+<![%bookinfo.element;[
+<!ELEMENT bookinfo ((graphic | mediaobject
+        | legalnotice | modespec | subjectset 
+	| keywordset | itermset | %bibliocomponent.mix; | bookbiblio)+)>
+<!--end of bookinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters,
+		Appendixes, References, GLossary, Bibliography, and indexes
+		comprising the Book, in the order of their appearance -->
+
+
+<!ENTITY % bookinfo.attlist "INCLUDE">
+<![%bookinfo.attlist;[
+<!ATTLIST bookinfo
+		contents	IDREFS		#IMPLIED
+		%common.attrib;
+		%bookinfo.role.attrib;
+		%local.bookinfo.attrib;
+>
+<!--end of bookinfo.attlist-->]]>
+<!--end of bookinfo.module-->]]>
+<!--end of book.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Dedication, ToC, and LoT ............................................. -->
+
+<!ENTITY % dedication.module "INCLUDE">
+<![%dedication.module;[
+<!ENTITY % local.dedication.attrib "">
+<!ENTITY % dedication.role.attrib "%role.attrib;">
+
+<!ENTITY % dedication.element "INCLUDE">
+<![%dedication.element;[
+<!ELEMENT dedication ((%sect.title.content;)?, (%legalnotice.mix;)+)>
+<!--end of dedication.element-->]]>
+
+<!ENTITY % dedication.attlist "INCLUDE">
+<![%dedication.attlist;[
+<!ATTLIST dedication
+		%status.attrib;
+		%common.attrib;
+		%dedication.role.attrib;
+		%local.dedication.attrib;
+>
+<!--end of dedication.attlist-->]]>
+<!--end of dedication.module-->]]>
+
+<!ENTITY % colophon.module "INCLUDE">
+<![ %colophon.module; [
+<!ENTITY % local.colophon.attrib "">
+<!ENTITY % colophon.role.attrib "%role.attrib;">
+
+<!ENTITY % colophon.element "INCLUDE">
+<![ %colophon.element; [
+<!ELEMENT colophon ((%sect.title.content;)?, (%textobject.mix;)+)>
+<!--end of colophon.element-->]]>
+
+<!ENTITY % colophon.attlist "INCLUDE">
+<![ %colophon.attlist; [
+<!ATTLIST colophon
+		%status.attrib;
+		%common.attrib;
+		%colophon.role.attrib;
+		%local.colophon.attrib;>
+<!--end of colophon.attlist-->]]>
+<!--end of colophon.module-->]]>
+
+<!ENTITY % toc.content.module "INCLUDE">
+<![%toc.content.module;[
+<!ENTITY % toc.module "INCLUDE">
+<![%toc.module;[
+<!ENTITY % local.toc.attrib "">
+<!ENTITY % toc.role.attrib "%role.attrib;">
+
+<!ENTITY % toc.element "INCLUDE">
+<![%toc.element;[
+<!ELEMENT toc ((%bookcomponent.title.content;)?, tocfront*,
+		(tocpart | tocchap)*, tocback*)>
+<!--end of toc.element-->]]>
+
+<!ENTITY % toc.attlist "INCLUDE">
+<![%toc.attlist;[
+<!ATTLIST toc
+		%pagenum.attrib;
+		%common.attrib;
+		%toc.role.attrib;
+		%local.toc.attrib;
+>
+<!--end of toc.attlist-->]]>
+<!--end of toc.module-->]]>
+
+<!ENTITY % tocfront.module "INCLUDE">
+<![%tocfront.module;[
+<!ENTITY % local.tocfront.attrib "">
+<!ENTITY % tocfront.role.attrib "%role.attrib;">
+
+<!ENTITY % tocfront.element "INCLUDE">
+<![%tocfront.element;[
+<!ELEMENT tocfront (%para.char.mix;)*>
+<!--end of tocfront.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocfront.attlist "INCLUDE">
+<![%tocfront.attlist;[
+<!ATTLIST tocfront
+		%label.attrib;
+		%linkend.attrib;		%pagenum.attrib;
+		%common.attrib;
+		%tocfront.role.attrib;
+		%local.tocfront.attrib;
+>
+<!--end of tocfront.attlist-->]]>
+<!--end of tocfront.module-->]]>
+
+<!ENTITY % tocentry.module "INCLUDE">
+<![%tocentry.module;[
+<!ENTITY % local.tocentry.attrib "">
+<!ENTITY % tocentry.role.attrib "%role.attrib;">
+
+<!ENTITY % tocentry.element "INCLUDE">
+<![%tocentry.element;[
+<!ELEMENT tocentry (%para.char.mix;)*>
+<!--end of tocentry.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocentry.attlist "INCLUDE">
+<![%tocentry.attlist;[
+<!ATTLIST tocentry
+		%linkend.attrib;		%pagenum.attrib;
+		%common.attrib;
+		%tocentry.role.attrib;
+		%local.tocentry.attrib;
+>
+<!--end of tocentry.attlist-->]]>
+<!--end of tocentry.module-->]]>
+
+<!ENTITY % tocpart.module "INCLUDE">
+<![%tocpart.module;[
+<!ENTITY % local.tocpart.attrib "">
+<!ENTITY % tocpart.role.attrib "%role.attrib;">
+
+<!ENTITY % tocpart.element "INCLUDE">
+<![%tocpart.element;[
+<!ELEMENT tocpart (tocentry+, tocchap*)>
+<!--end of tocpart.element-->]]>
+
+<!ENTITY % tocpart.attlist "INCLUDE">
+<![%tocpart.attlist;[
+<!ATTLIST tocpart
+		%common.attrib;
+		%tocpart.role.attrib;
+		%local.tocpart.attrib;
+>
+<!--end of tocpart.attlist-->]]>
+<!--end of tocpart.module-->]]>
+
+<!ENTITY % tocchap.module "INCLUDE">
+<![%tocchap.module;[
+<!ENTITY % local.tocchap.attrib "">
+<!ENTITY % tocchap.role.attrib "%role.attrib;">
+
+<!ENTITY % tocchap.element "INCLUDE">
+<![%tocchap.element;[
+<!ELEMENT tocchap (tocentry+, toclevel1*)>
+<!--end of tocchap.element-->]]>
+
+<!ENTITY % tocchap.attlist "INCLUDE">
+<![%tocchap.attlist;[
+<!ATTLIST tocchap
+		%label.attrib;
+		%common.attrib;
+		%tocchap.role.attrib;
+		%local.tocchap.attrib;
+>
+<!--end of tocchap.attlist-->]]>
+<!--end of tocchap.module-->]]>
+
+<!ENTITY % toclevel1.module "INCLUDE">
+<![%toclevel1.module;[
+<!ENTITY % local.toclevel1.attrib "">
+<!ENTITY % toclevel1.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel1.element "INCLUDE">
+<![%toclevel1.element;[
+<!ELEMENT toclevel1 (tocentry+, toclevel2*)>
+<!--end of toclevel1.element-->]]>
+
+<!ENTITY % toclevel1.attlist "INCLUDE">
+<![%toclevel1.attlist;[
+<!ATTLIST toclevel1
+		%common.attrib;
+		%toclevel1.role.attrib;
+		%local.toclevel1.attrib;
+>
+<!--end of toclevel1.attlist-->]]>
+<!--end of toclevel1.module-->]]>
+
+<!ENTITY % toclevel2.module "INCLUDE">
+<![%toclevel2.module;[
+<!ENTITY % local.toclevel2.attrib "">
+<!ENTITY % toclevel2.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel2.element "INCLUDE">
+<![%toclevel2.element;[
+<!ELEMENT toclevel2 (tocentry+, toclevel3*)>
+<!--end of toclevel2.element-->]]>
+
+<!ENTITY % toclevel2.attlist "INCLUDE">
+<![%toclevel2.attlist;[
+<!ATTLIST toclevel2
+		%common.attrib;
+		%toclevel2.role.attrib;
+		%local.toclevel2.attrib;
+>
+<!--end of toclevel2.attlist-->]]>
+<!--end of toclevel2.module-->]]>
+
+<!ENTITY % toclevel3.module "INCLUDE">
+<![%toclevel3.module;[
+<!ENTITY % local.toclevel3.attrib "">
+<!ENTITY % toclevel3.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel3.element "INCLUDE">
+<![%toclevel3.element;[
+<!ELEMENT toclevel3 (tocentry+, toclevel4*)>
+<!--end of toclevel3.element-->]]>
+
+<!ENTITY % toclevel3.attlist "INCLUDE">
+<![%toclevel3.attlist;[
+<!ATTLIST toclevel3
+		%common.attrib;
+		%toclevel3.role.attrib;
+		%local.toclevel3.attrib;
+>
+<!--end of toclevel3.attlist-->]]>
+<!--end of toclevel3.module-->]]>
+
+<!ENTITY % toclevel4.module "INCLUDE">
+<![%toclevel4.module;[
+<!ENTITY % local.toclevel4.attrib "">
+<!ENTITY % toclevel4.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel4.element "INCLUDE">
+<![%toclevel4.element;[
+<!ELEMENT toclevel4 (tocentry+, toclevel5*)>
+<!--end of toclevel4.element-->]]>
+
+<!ENTITY % toclevel4.attlist "INCLUDE">
+<![%toclevel4.attlist;[
+<!ATTLIST toclevel4
+		%common.attrib;
+		%toclevel4.role.attrib;
+		%local.toclevel4.attrib;
+>
+<!--end of toclevel4.attlist-->]]>
+<!--end of toclevel4.module-->]]>
+
+<!ENTITY % toclevel5.module "INCLUDE">
+<![%toclevel5.module;[
+<!ENTITY % local.toclevel5.attrib "">
+<!ENTITY % toclevel5.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel5.element "INCLUDE">
+<![%toclevel5.element;[
+<!ELEMENT toclevel5 (tocentry+)>
+<!--end of toclevel5.element-->]]>
+
+<!ENTITY % toclevel5.attlist "INCLUDE">
+<![%toclevel5.attlist;[
+<!ATTLIST toclevel5
+		%common.attrib;
+		%toclevel5.role.attrib;
+		%local.toclevel5.attrib;
+>
+<!--end of toclevel5.attlist-->]]>
+<!--end of toclevel5.module-->]]>
+
+<!ENTITY % tocback.module "INCLUDE">
+<![%tocback.module;[
+<!ENTITY % local.tocback.attrib "">
+<!ENTITY % tocback.role.attrib "%role.attrib;">
+
+<!ENTITY % tocback.element "INCLUDE">
+<![%tocback.element;[
+<!ELEMENT tocback (%para.char.mix;)*>
+<!--end of tocback.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocback.attlist "INCLUDE">
+<![%tocback.attlist;[
+<!ATTLIST tocback
+		%label.attrib;
+		%linkend.attrib;		%pagenum.attrib;
+		%common.attrib;
+		%tocback.role.attrib;
+		%local.tocback.attrib;
+>
+<!--end of tocback.attlist-->]]>
+<!--end of tocback.module-->]]>
+<!--end of toc.content.module-->]]>
+
+<!ENTITY % lot.content.module "INCLUDE">
+<![%lot.content.module;[
+<!ENTITY % lot.module "INCLUDE">
+<![%lot.module;[
+<!ENTITY % local.lot.attrib "">
+<!ENTITY % lot.role.attrib "%role.attrib;">
+
+<!ENTITY % lot.element "INCLUDE">
+<![%lot.element;[
+<!ELEMENT lot ((%bookcomponent.title.content;)?, lotentry*)>
+<!--end of lot.element-->]]>
+
+<!ENTITY % lot.attlist "INCLUDE">
+<![%lot.attlist;[
+<!ATTLIST lot
+		%label.attrib;
+		%common.attrib;
+		%lot.role.attrib;
+		%local.lot.attrib;
+>
+<!--end of lot.attlist-->]]>
+<!--end of lot.module-->]]>
+
+<!ENTITY % lotentry.module "INCLUDE">
+<![%lotentry.module;[
+<!ENTITY % local.lotentry.attrib "">
+<!ENTITY % lotentry.role.attrib "%role.attrib;">
+
+<!ENTITY % lotentry.element "INCLUDE">
+<![%lotentry.element;[
+<!ELEMENT lotentry (%para.char.mix;)*>
+<!--end of lotentry.element-->]]>
+
+<!-- SrcCredit: Information about the source of the entry, 
+		as for a list of illustrations -->
+<!-- linkend: to element that this entry represents-->
+<!ENTITY % lotentry.attlist "INCLUDE">
+<![%lotentry.attlist;[
+<!ATTLIST lotentry
+		srccredit	CDATA		#IMPLIED
+		%pagenum.attrib;
+		%common.attrib;
+		%linkend.attrib;
+		%lotentry.role.attrib;
+		%local.lotentry.attrib;
+>
+<!--end of lotentry.attlist-->]]>
+<!--end of lotentry.module-->]]>
+<!--end of lot.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->
+
+<!ENTITY % appendix.module "INCLUDE">
+<![%appendix.module;[
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+
+<!ENTITY % appendix.element "INCLUDE">
+<![%appendix.element;[
+<!ELEMENT appendix ((%bookcomponent.title.content;), tocchap?,
+		(%bookcomponent.content;))>
+<!--end of appendix.element-->]]>
+
+<!ENTITY % appendix.attlist "INCLUDE">
+<![%appendix.attlist;[
+<!ATTLIST appendix
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%appendix.role.attrib;
+		%local.appendix.attrib;
+>
+<!--end of appendix.attlist-->]]>
+<!--end of appendix.module-->]]>
+
+<!ENTITY % chapter.module "INCLUDE">
+<![%chapter.module;[
+<!ENTITY % local.chapter.attrib "">
+<!ENTITY % chapter.role.attrib "%role.attrib;">
+
+<!ENTITY % chapter.element "INCLUDE">
+<![%chapter.element;[
+<!ELEMENT chapter ((%bookcomponent.title.content;), tocchap?,
+		(%bookcomponent.content;), (index | glossary | bibliography)*)>
+<!--end of chapter.element-->]]>
+
+<!ENTITY % chapter.attlist "INCLUDE">
+<![%chapter.attlist;[
+<!ATTLIST chapter
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%chapter.role.attrib;
+		%local.chapter.attrib;
+>
+<!--end of chapter.attlist-->]]>
+<!--end of chapter.module-->]]>
+
+<!ENTITY % part.module "INCLUDE">
+<![%part.module;[
+
+<!-- Note that Part was to have its content model reduced in V4.0.  This
+change will not be made after all. -->
+
+<!ENTITY % local.part.attrib "">
+<!ENTITY % part.role.attrib "%role.attrib;">
+
+<!ENTITY % part.element "INCLUDE">
+<![%part.element;[
+<!ELEMENT part ((%bookcomponent.title.content;), partintro?,
+		(%partcontent.mix;)+)>
+<!--end of part.element-->]]>
+
+<!ENTITY % part.attlist "INCLUDE">
+<![%part.attlist;[
+<!ATTLIST part
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%part.role.attrib;
+		%local.part.attrib;
+>
+<!--end of part.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of part.module-->]]>
+
+<!ENTITY % preface.module "INCLUDE">
+<![%preface.module;[
+<!ENTITY % local.preface.attrib "">
+<!ENTITY % preface.role.attrib "%role.attrib;">
+
+<!ENTITY % preface.element "INCLUDE">
+<![%preface.element;[
+<!ELEMENT preface ((%bookcomponent.title.content;), 
+		(%bookcomponent.content;))>
+<!--end of preface.element-->]]>
+
+<!ENTITY % preface.attlist "INCLUDE">
+<![%preface.attlist;[
+<!ATTLIST preface
+		%status.attrib;
+		%common.attrib;
+		%preface.role.attrib;
+		%local.preface.attrib;
+>
+<!--end of preface.attlist-->]]>
+<!--end of preface.module-->]]>
+
+<!ENTITY % reference.module "INCLUDE">
+<![%reference.module;[
+<!ENTITY % local.reference.attrib "">
+<!ENTITY % reference.role.attrib "%role.attrib;">
+
+<!ENTITY % reference.element "INCLUDE">
+<![%reference.element;[
+<!ELEMENT reference ((%bookcomponent.title.content;), partintro?,
+		(%refentry.class;)+)>
+<!--end of reference.element-->]]>
+
+<!ENTITY % reference.attlist "INCLUDE">
+<![%reference.attlist;[
+<!ATTLIST reference
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%reference.role.attrib;
+		%local.reference.attrib;
+>
+<!--end of reference.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of reference.module-->]]>
+
+<!ENTITY % partintro.module "INCLUDE">
+<![%partintro.module;[
+<!ENTITY % local.partintro.attrib "">
+<!ENTITY % partintro.role.attrib "%role.attrib;">
+
+<!ENTITY % partintro.element "INCLUDE">
+<![%partintro.element;[
+<!ELEMENT partintro ((%div.title.content;)?, (%bookcomponent.content;))>
+<!--end of partintro.element-->]]>
+
+<!ENTITY % partintro.attlist "INCLUDE">
+<![%partintro.attlist;[
+<!ATTLIST partintro	
+		%label.attrib;
+		%common.attrib;
+		%local.partintro.attrib;
+		%partintro.role.attrib;
+>
+<!--end of partintro.attlist-->]]>
+<!--end of partintro.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Other Info elements .................................................. -->
+
+<!ENTITY % otherinfo.module "INCLUDE">
+<![%otherinfo.module;[
+<!ENTITY % local.otherinfo.attrib "">
+<!ENTITY % otherinfo.role.attrib "%role.attrib;">
+
+
+<!ENTITY % docinfo.element "INCLUDE">
+<![%docinfo.element;[
+<!ELEMENT docinfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of docinfo.element-->]]>
+
+<!ENTITY % docinfo.attlist "INCLUDE">
+<![%docinfo.attlist;[
+<!ATTLIST docinfo
+		%common.attrib;
+		%otherinfo.role.attrib;
+		%local.otherinfo.attrib;
+>
+<!--end of docinfo.attlist-->]]>
+
+
+<!ENTITY % sect1info.element "INCLUDE">
+<![%sect1info.element;[
+<!ELEMENT sect1info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect1info.element-->]]>
+
+<!ENTITY % sect1info.attlist "INCLUDE">
+<![%sect1info.attlist;[
+<!ATTLIST sect1info
+		%common.attrib;
+		%otherinfo.role.attrib;
+		%local.otherinfo.attrib;
+>
+<!--end of sect1info.attlist-->]]>
+
+
+<!ENTITY % sect2info.element "INCLUDE">
+<![%sect2info.element;[
+<!ELEMENT sect2info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect2info.element-->]]>
+
+<!ENTITY % sect2info.attlist "INCLUDE">
+<![%sect2info.attlist;[
+<!ATTLIST sect2info
+		%common.attrib;
+		%otherinfo.role.attrib;
+		%local.otherinfo.attrib;
+>
+<!--end of sect2info.attlist-->]]>
+
+
+<!ENTITY % sect3info.element "INCLUDE">
+<![%sect3info.element;[
+<!ELEMENT sect3info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect3info.element-->]]>
+
+<!ENTITY % sect3info.attlist "INCLUDE">
+<![%sect3info.attlist;[
+<!ATTLIST sect3info
+		%common.attrib;
+		%otherinfo.role.attrib;
+		%local.otherinfo.attrib;
+>
+<!--end of sect3info.attlist-->]]>
+
+
+<!ENTITY % sect4info.element "INCLUDE">
+<![%sect4info.element;[
+<!ELEMENT sect4info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect4info.element-->]]>
+
+<!ENTITY % sect4info.attlist "INCLUDE">
+<![%sect4info.attlist;[
+<!ATTLIST sect4info
+		%common.attrib;
+		%otherinfo.role.attrib;
+		%local.otherinfo.attrib;
+>
+<!--end of sect4info.attlist-->]]>
+
+
+<!ENTITY % sect5info.element "INCLUDE">
+<![%sect5info.element;[
+<!ELEMENT sect5info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect5info.element-->]]>
+
+<!ENTITY % sect5info.attlist "INCLUDE">
+<![%sect5info.attlist;[
+<!ATTLIST sect5info
+		%common.attrib;
+		%otherinfo.role.attrib;
+		%local.otherinfo.attrib;
+>
+<!--end of sect5info.attlist-->]]>
+
+
+<!ENTITY % refsect1info.element "INCLUDE">
+<![%refsect1info.element;[
+<!ELEMENT refsect1info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of refsect1info.element-->]]>
+
+<!ENTITY % refsect1info.attlist "INCLUDE">
+<![%refsect1info.attlist;[
+<!ATTLIST refsect1info
+		%common.attrib;
+		%otherinfo.role.attrib;
+		%local.otherinfo.attrib;
+>
+<!--end of refsect1info.attlist-->]]>
+
+
+<!ENTITY % refsect2info.element "INCLUDE">
+<![%refsect2info.element;[
+<!ELEMENT refsect2info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of refsect2info.element-->]]>
+
+<!ENTITY % refsect2info.attlist "INCLUDE">
+<![%refsect2info.attlist;[
+<!ATTLIST refsect2info
+		%common.attrib;
+		%otherinfo.role.attrib;
+		%local.otherinfo.attrib;
+>
+<!--end of refsect2info.attlist-->]]>
+
+
+<!ENTITY % refsect3info.element "INCLUDE">
+<![%refsect3info.element;[
+<!ELEMENT refsect3info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of refsect3info.element-->]]>
+
+<!ENTITY % refsect3info.attlist "INCLUDE">
+<![%refsect3info.attlist;[
+<!ATTLIST refsect3info
+		%common.attrib;
+		%otherinfo.role.attrib;
+		%local.otherinfo.attrib;
+>
+<!--end of refsect3info.attlist-->]]>
+
+
+<!ENTITY % refsynopsisdivinfo.element "INCLUDE">
+<![%refsynopsisdivinfo.element;[
+<!ELEMENT refsynopsisdivinfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of refsynopsisdivinfo.element-->]]>
+
+<!ENTITY % refsynopsisdivinfo.attlist "INCLUDE">
+<![%refsynopsisdivinfo.attlist;[
+<!ATTLIST refsynopsisdivinfo
+		%common.attrib;
+		%otherinfo.role.attrib;
+		%local.otherinfo.attrib;
+>
+<!--end of refsynopsisdivinfo.attlist-->]]>
+<!--end of otherinfo.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Section (parallel to Sect*) ......................................... -->
+
+<!ENTITY % section.content.module "INCLUDE">
+<![ %section.content.module; [
+<!ENTITY % section.module "INCLUDE">
+<![ %section.module; [
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+
+<!ENTITY % section.element "INCLUDE">
+<![ %section.element; [
+<!ELEMENT section (sectioninfo?,
+			(%sect.title.content;),
+			(%nav.class;)*,
+			(((%divcomponent.mix;)+,
+ 			  ((%refentry.class;)*|section*))
+			 | (%refentry.class;)+|section+),
+			(%nav.class;)*)>
+<!--end of section.element-->]]>
+
+<!ENTITY % section.attlist "INCLUDE">
+<![ %section.attlist; [
+<!ATTLIST section
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%section.role.attrib;
+		%local.section.attrib;
+>
+<!--end of section.attlist-->]]>
+<!--end of section.module-->]]>
+
+<!ENTITY % sectioninfo.module "INCLUDE">
+<![ %sectioninfo.module; [
+<!ENTITY % sectioninfo.role.attrib "%role.attrib;">
+<!ENTITY % local.sectioninfo.attrib "">
+
+<!ENTITY % sectioninfo.element "INCLUDE">
+<![ %sectioninfo.element; [
+<!ELEMENT sectioninfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sectioninfo.element-->]]>
+
+<!ENTITY % sectioninfo.attlist "INCLUDE">
+<![ %sectioninfo.attlist; [
+<!ATTLIST sectioninfo
+		%common.attrib;
+		%sectioninfo.role.attrib;
+		%local.sectioninfo.attrib;
+>
+<!--end of sectioninfo.attlist-->]]>
+<!--end of sectioninfo.module-->]]>
+<!--end of section.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->
+
+<!ENTITY % sect1.module "INCLUDE">
+<![%sect1.module;[
+<!ENTITY % local.sect1.attrib "">
+<!ENTITY % sect1.role.attrib "%role.attrib;">
+
+<!ENTITY % sect1.element "INCLUDE">
+<![%sect1.element;[
+<!ELEMENT sect1 (sect1info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect2* | simplesect*))
+		| (%refentry.class;)+ | sect2+ | simplesect+), (%nav.class;)*)>
+<!--end of sect1.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect1.attlist "INCLUDE">
+<![%sect1.attlist;[
+<!ATTLIST sect1
+		renderas	(sect2
+				|sect3
+				|sect4
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect1.role.attrib;
+		%local.sect1.attrib;
+>
+<!--end of sect1.attlist-->]]>
+<!--end of sect1.module-->]]>
+
+<!ENTITY % sect2.module "INCLUDE">
+<![%sect2.module;[
+<!ENTITY % local.sect2.attrib "">
+<!ENTITY % sect2.role.attrib "%role.attrib;">
+
+<!ENTITY % sect2.element "INCLUDE">
+<![%sect2.element;[
+<!ELEMENT sect2 (sect2info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect3* | simplesect*))
+		| (%refentry.class;)+ | sect3+ | simplesect+), (%nav.class;)*)>
+<!--end of sect2.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect2.attlist "INCLUDE">
+<![%sect2.attlist;[
+<!ATTLIST sect2
+		renderas	(sect1
+				|sect3
+				|sect4
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect2.role.attrib;
+		%local.sect2.attrib;
+>
+<!--end of sect2.attlist-->]]>
+<!--end of sect2.module-->]]>
+
+<!ENTITY % sect3.module "INCLUDE">
+<![%sect3.module;[
+<!ENTITY % local.sect3.attrib "">
+<!ENTITY % sect3.role.attrib "%role.attrib;">
+
+<!ENTITY % sect3.element "INCLUDE">
+<![%sect3.element;[
+<!ELEMENT sect3 (sect3info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect4* | simplesect*))
+		| (%refentry.class;)+ | sect4+ | simplesect+), (%nav.class;)*)>
+<!--end of sect3.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect3.attlist "INCLUDE">
+<![%sect3.attlist;[
+<!ATTLIST sect3
+		renderas	(sect1
+				|sect2
+				|sect4
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect3.role.attrib;
+		%local.sect3.attrib;
+>
+<!--end of sect3.attlist-->]]>
+<!--end of sect3.module-->]]>
+
+<!ENTITY % sect4.module "INCLUDE">
+<![%sect4.module;[
+<!ENTITY % local.sect4.attrib "">
+<!ENTITY % sect4.role.attrib "%role.attrib;">
+
+<!ENTITY % sect4.element "INCLUDE">
+<![%sect4.element;[
+<!ELEMENT sect4 (sect4info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect5* | simplesect*))
+		| (%refentry.class;)+ | sect5+ | simplesect+), (%nav.class;)*)>
+<!--end of sect4.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect4.attlist "INCLUDE">
+<![%sect4.attlist;[
+<!ATTLIST sect4
+		renderas	(sect1
+				|sect2
+				|sect3
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect4.role.attrib;
+		%local.sect4.attrib;
+>
+<!--end of sect4.attlist-->]]>
+<!--end of sect4.module-->]]>
+
+<!ENTITY % sect5.module "INCLUDE">
+<![%sect5.module;[
+<!ENTITY % local.sect5.attrib "">
+<!ENTITY % sect5.role.attrib "%role.attrib;">
+
+<!ENTITY % sect5.element "INCLUDE">
+<![%sect5.element;[
+<!ELEMENT sect5 (sect5info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, ((%refentry.class;)* | simplesect*))
+		| (%refentry.class;)+ | simplesect+), (%nav.class;)*)>
+<!--end of sect5.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect5.attlist "INCLUDE">
+<![%sect5.attlist;[
+<!ATTLIST sect5
+		renderas	(sect1
+				|sect2
+				|sect3
+				|sect4)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect5.role.attrib;
+		%local.sect5.attrib;
+>
+<!--end of sect5.attlist-->]]>
+<!--end of sect5.module-->]]>
+
+<!ENTITY % simplesect.module "INCLUDE">
+<![%simplesect.module;[
+<!ENTITY % local.simplesect.attrib "">
+<!ENTITY % simplesect.role.attrib "%role.attrib;">
+
+<!ENTITY % simplesect.element "INCLUDE">
+<![%simplesect.element;[
+<!ELEMENT simplesect ((%sect.title.content;), (%divcomponent.mix;)+)>
+<!--end of simplesect.element-->]]>
+
+<!ENTITY % simplesect.attlist "INCLUDE">
+<![%simplesect.attlist;[
+<!ATTLIST simplesect
+		%common.attrib;
+		%simplesect.role.attrib;
+		%local.simplesect.attrib;
+>
+<!--end of simplesect.attlist-->]]>
+<!--end of simplesect.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliography ......................................................... -->
+
+<!ENTITY % bibliography.content.module "INCLUDE">
+<![%bibliography.content.module;[
+<!ENTITY % bibliography.module "INCLUDE">
+<![%bibliography.module;[
+<!ENTITY % local.bibliography.attrib "">
+<!ENTITY % bibliography.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliography.element "INCLUDE">
+<![%bibliography.element;[
+<!ELEMENT bibliography ((%bookcomponent.title.content;)?,
+		(%component.mix;)*, 
+		(bibliodiv+ | (biblioentry|bibliomixed)+))>
+<!--end of bibliography.element-->]]>
+
+<!ENTITY % bibliography.attlist "INCLUDE">
+<![%bibliography.attlist;[
+<!ATTLIST bibliography
+		%status.attrib;
+		%common.attrib;
+		%bibliography.role.attrib;
+		%local.bibliography.attrib;
+>
+<!--end of bibliography.attlist-->]]>
+<!--end of bibliography.module-->]]>
+
+<!ENTITY % bibliodiv.module "INCLUDE">
+<![%bibliodiv.module;[
+<!ENTITY % local.bibliodiv.attrib "">
+<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliodiv.element "INCLUDE">
+<![%bibliodiv.element;[
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+		(biblioentry|bibliomixed)+)>
+<!--end of bibliodiv.element-->]]>
+
+<!ENTITY % bibliodiv.attlist "INCLUDE">
+<![%bibliodiv.attlist;[
+<!ATTLIST bibliodiv
+		%status.attrib;
+		%common.attrib;
+		%bibliodiv.role.attrib;
+		%local.bibliodiv.attrib;
+>
+<!--end of bibliodiv.attlist-->]]>
+<!--end of bibliodiv.module-->]]>
+<!--end of bibliography.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Glossary ............................................................. -->
+
+<!ENTITY % glossary.content.module "INCLUDE">
+<![%glossary.content.module;[
+<!ENTITY % glossary.module "INCLUDE">
+<![%glossary.module;[
+<!ENTITY % local.glossary.attrib "">
+<!ENTITY % glossary.role.attrib "%role.attrib;">
+
+<!ENTITY % glossary.element "INCLUDE">
+<![%glossary.element;[
+<!ELEMENT glossary ((%bookcomponent.title.content;)?, (%component.mix;)*,
+		(glossdiv+ | glossentry+), bibliography?)>
+<!--end of glossary.element-->]]>
+
+<!ENTITY % glossary.attlist "INCLUDE">
+<![%glossary.attlist;[
+<!ATTLIST glossary
+		%status.attrib;
+		%common.attrib;
+		%glossary.role.attrib;
+		%local.glossary.attrib;
+>
+<!--end of glossary.attlist-->]]>
+<!--end of glossary.module-->]]>
+
+<!ENTITY % glossdiv.module "INCLUDE">
+<![%glossdiv.module;[
+<!ENTITY % local.glossdiv.attrib "">
+<!ENTITY % glossdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdiv.element "INCLUDE">
+<![%glossdiv.element;[
+<!ELEMENT glossdiv ((%sect.title.content;), (%component.mix;)*,
+		glossentry+)>
+<!--end of glossdiv.element-->]]>
+
+<!ENTITY % glossdiv.attlist "INCLUDE">
+<![%glossdiv.attlist;[
+<!ATTLIST glossdiv
+		%status.attrib;
+		%common.attrib;
+		%glossdiv.role.attrib;
+		%local.glossdiv.attrib;
+>
+<!--end of glossdiv.attlist-->]]>
+<!--end of glossdiv.module-->]]>
+<!--end of glossary.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Index and SetIndex ................................................... -->
+
+<!ENTITY % index.content.module "INCLUDE">
+<![%index.content.module;[
+<!ENTITY % indexes.module "INCLUDE">
+<![%indexes.module;[
+<!ENTITY % local.indexes.attrib "">
+<!ENTITY % indexes.role.attrib "%role.attrib;">
+
+<!ENTITY % index.element "INCLUDE">
+<![%index.element;[
+<!ELEMENT index ((%bookcomponent.title.content;)?,
+		(%component.mix;)*, (indexdiv* | indexentry*))>
+<!--end of index.element-->]]>
+
+<!ENTITY % index.attlist "INCLUDE">
+<![%index.attlist;[
+<!ATTLIST index
+		%common.attrib;
+		%indexes.role.attrib;
+		%local.indexes.attrib;
+>
+<!--end of index.attlist-->]]>
+
+<!ENTITY % setindex.element "INCLUDE">
+<![%setindex.element;[
+<!ELEMENT setindex ((%bookcomponent.title.content;)?,
+		(%component.mix;)*, (indexdiv* | indexentry*))>
+<!--end of setindex.element-->]]>
+
+<!ENTITY % setindex.attlist "INCLUDE">
+<![%setindex.attlist;[
+<!ATTLIST setindex
+		%common.attrib;
+		%indexes.role.attrib;
+		%local.indexes.attrib;
+>
+<!--end of setindex.attlist-->]]>
+<!--end of indexes.module-->]]>
+
+<!ENTITY % indexdiv.module "INCLUDE">
+<![%indexdiv.module;[
+
+<!-- SegmentedList in this content is useful for marking up permuted
+     indices. -->
+
+<!ENTITY % local.indexdiv.attrib "">
+<!ENTITY % indexdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % indexdiv.element "INCLUDE">
+<![%indexdiv.element;[
+<!ELEMENT indexdiv ((%sect.title.content;)?, ((%indexdivcomponent.mix;)*,
+		(indexentry+ | segmentedlist)))>
+<!--end of indexdiv.element-->]]>
+
+<!ENTITY % indexdiv.attlist "INCLUDE">
+<![%indexdiv.attlist;[
+<!ATTLIST indexdiv
+		%common.attrib;
+		%indexdiv.role.attrib;
+		%local.indexdiv.attrib;
+>
+<!--end of indexdiv.attlist-->]]>
+<!--end of indexdiv.module-->]]>
+
+<!ENTITY % indexentry.module "INCLUDE">
+<![%indexentry.module;[
+<!-- Index entries appear in the index, not the text. -->
+
+<!ENTITY % local.indexentry.attrib "">
+<!ENTITY % indexentry.role.attrib "%role.attrib;">
+
+<!ENTITY % indexentry.element "INCLUDE">
+<![%indexentry.element;[
+<!ELEMENT indexentry (primaryie, (seeie|seealsoie)*,
+		(secondaryie, (seeie|seealsoie|tertiaryie)*)*)>
+<!--end of indexentry.element-->]]>
+
+<!ENTITY % indexentry.attlist "INCLUDE">
+<![%indexentry.attlist;[
+<!ATTLIST indexentry
+		%common.attrib;
+		%indexentry.role.attrib;
+		%local.indexentry.attrib;
+>
+<!--end of indexentry.attlist-->]]>
+<!--end of indexentry.module-->]]>
+
+<!ENTITY % primsecterie.module "INCLUDE">
+<![%primsecterie.module;[
+<!ENTITY % local.primsecterie.attrib "">
+<!ENTITY % primsecterie.role.attrib "%role.attrib;">
+
+<!ENTITY % primaryie.element "INCLUDE">
+<![%primaryie.element;[
+<!ELEMENT primaryie (%ndxterm.char.mix;)*>
+<!--end of primaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % primaryie.attlist "INCLUDE">
+<![%primaryie.attlist;[
+<!ATTLIST primaryie
+		%linkends.attrib;		%common.attrib;
+		%primsecterie.role.attrib;
+		%local.primsecterie.attrib;
+>
+<!--end of primaryie.attlist-->]]>
+
+<!ENTITY % secondaryie.element "INCLUDE">
+<![%secondaryie.element;[
+<!ELEMENT secondaryie (%ndxterm.char.mix;)*>
+<!--end of secondaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % secondaryie.attlist "INCLUDE">
+<![%secondaryie.attlist;[
+<!ATTLIST secondaryie
+		%linkends.attrib;		%common.attrib;
+		%primsecterie.role.attrib;
+		%local.primsecterie.attrib;
+>
+<!--end of secondaryie.attlist-->]]>
+
+<!ENTITY % tertiaryie.element "INCLUDE">
+<![%tertiaryie.element;[
+<!ELEMENT tertiaryie (%ndxterm.char.mix;)*>
+<!--end of tertiaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % tertiaryie.attlist "INCLUDE">
+<![%tertiaryie.attlist;[
+<!ATTLIST tertiaryie
+		%linkends.attrib;		%common.attrib;
+		%primsecterie.role.attrib;
+		%local.primsecterie.attrib;
+>
+<!--end of tertiaryie.attlist-->]]>
+
+<!--end of primsecterie.module-->]]>
+	
+<!ENTITY % seeie.module "INCLUDE">
+<![%seeie.module;[
+<!ENTITY % local.seeie.attrib "">
+<!ENTITY % seeie.role.attrib "%role.attrib;">
+
+<!ENTITY % seeie.element "INCLUDE">
+<![%seeie.element;[
+<!ELEMENT seeie (%ndxterm.char.mix;)*>
+<!--end of seeie.element-->]]>
+
+<!-- to IndexEntry to look up -->
+
+
+<!ENTITY % seeie.attlist "INCLUDE">
+<![%seeie.attlist;[
+<!ATTLIST seeie
+		%linkend.attrib;		%common.attrib;
+		%seeie.role.attrib;
+		%local.seeie.attrib;
+>
+<!--end of seeie.attlist-->]]>
+<!--end of seeie.module-->]]>
+
+<!ENTITY % seealsoie.module "INCLUDE">
+<![%seealsoie.module;[
+<!ENTITY % local.seealsoie.attrib "">
+<!ENTITY % seealsoie.role.attrib "%role.attrib;">
+
+<!ENTITY % seealsoie.element "INCLUDE">
+<![%seealsoie.element;[
+<!ELEMENT seealsoie (%ndxterm.char.mix;)*>
+<!--end of seealsoie.element-->]]>
+
+<!-- to related IndexEntries -->
+
+
+<!ENTITY % seealsoie.attlist "INCLUDE">
+<![%seealsoie.attlist;[
+<!ATTLIST seealsoie
+		%linkends.attrib;		%common.attrib;
+		%seealsoie.role.attrib;
+		%local.seealsoie.attrib;
+>
+<!--end of seealsoie.attlist-->]]>
+<!--end of seealsoie.module-->]]>
+<!--end of index.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- RefEntry ............................................................. -->
+
+<!ENTITY % refentry.content.module "INCLUDE">
+<![%refentry.content.module;[
+<!ENTITY % refentry.module "INCLUDE">
+<![%refentry.module;[
+<!ENTITY % local.refentry.attrib "">
+<!ENTITY % refentry.role.attrib "%role.attrib;">
+<!--FUTURE USE (V4.0):
+......................
+The DocInfo element will be split out into ChapterInfo, AppendixInfo,
+etc.
+......................
+-->
+
+<!ENTITY % refentry.element "INCLUDE">
+<![%refentry.element;[
+<!ELEMENT refentry ((%ndxterm.class;)*,
+                    docinfo?, refmeta?, (comment|%link.char.class;)*,
+                    refnamediv, refsynopsisdiv?, refsect1+)>
+<!--end of refentry.element-->]]>
+
+<!ENTITY % refentry.attlist "INCLUDE">
+<![%refentry.attlist;[
+<!ATTLIST refentry
+		%status.attrib;
+		%common.attrib;
+		%refentry.role.attrib;
+		%local.refentry.attrib;
+>
+<!--end of refentry.attlist-->]]>
+<!--end of refentry.module-->]]>
+
+<!ENTITY % refmeta.module "INCLUDE">
+<![%refmeta.module;[
+<!ENTITY % local.refmeta.attrib "">
+<!ENTITY % refmeta.role.attrib "%role.attrib;">
+
+<!ENTITY % refmeta.element "INCLUDE">
+<![%refmeta.element;[
+<!ELEMENT refmeta ((%ndxterm.class;)*,
+                   refentrytitle, manvolnum?, refmiscinfo*,
+                   (%ndxterm.class;)*)>
+<!--end of refmeta.element-->]]>
+
+<!ENTITY % refmeta.attlist "INCLUDE">
+<![%refmeta.attlist;[
+<!ATTLIST refmeta
+		%common.attrib;
+		%refmeta.role.attrib;
+		%local.refmeta.attrib;
+>
+<!--end of refmeta.attlist-->]]>
+<!--end of refmeta.module-->]]>
+
+<!ENTITY % refmiscinfo.module "INCLUDE">
+<![%refmiscinfo.module;[
+<!ENTITY % local.refmiscinfo.attrib "">
+<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refmiscinfo.element "INCLUDE">
+<![%refmiscinfo.element;[
+<!ELEMENT refmiscinfo (%docinfo.char.mix;)*>
+<!--end of refmiscinfo.element-->]]>
+
+<!-- Class: Freely assignable parameter; no default -->
+
+
+<!ENTITY % refmiscinfo.attlist "INCLUDE">
+<![%refmiscinfo.attlist;[
+<!ATTLIST refmiscinfo
+		class		CDATA		#IMPLIED
+		%common.attrib;
+		%refmiscinfo.role.attrib;
+		%local.refmiscinfo.attrib;
+>
+<!--end of refmiscinfo.attlist-->]]>
+<!--end of refmiscinfo.module-->]]>
+
+<!ENTITY % refnamediv.module "INCLUDE">
+<![%refnamediv.module;[
+<!ENTITY % local.refnamediv.attrib "">
+<!ENTITY % refnamediv.role.attrib "%role.attrib;">
+
+<!ENTITY % refnamediv.element "INCLUDE">
+<![%refnamediv.element;[
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+		(comment|%link.char.class;)*)>
+<!--end of refnamediv.element-->]]>
+
+<!ENTITY % refnamediv.attlist "INCLUDE">
+<![%refnamediv.attlist;[
+<!ATTLIST refnamediv
+		%common.attrib;
+		%refnamediv.role.attrib;
+		%local.refnamediv.attrib;
+>
+<!--end of refnamediv.attlist-->]]>
+<!--end of refnamediv.module-->]]>
+	
+<!ENTITY % refdescriptor.module "INCLUDE">
+<![%refdescriptor.module;[
+<!ENTITY % local.refdescriptor.attrib "">
+<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
+
+<!ENTITY % refdescriptor.element "INCLUDE">
+<![%refdescriptor.element;[
+<!ELEMENT refdescriptor (%refname.char.mix;)*>
+<!--end of refdescriptor.element-->]]>
+
+<!ENTITY % refdescriptor.attlist "INCLUDE">
+<![%refdescriptor.attlist;[
+<!ATTLIST refdescriptor
+		%common.attrib;
+		%refdescriptor.role.attrib;
+		%local.refdescriptor.attrib;
+>
+<!--end of refdescriptor.attlist-->]]>
+<!--end of refdescriptor.module-->]]>
+
+<!ENTITY % refname.module "INCLUDE">
+<![%refname.module;[
+<!ENTITY % local.refname.attrib "">
+<!ENTITY % refname.role.attrib "%role.attrib;">
+
+<!ENTITY % refname.element "INCLUDE">
+<![%refname.element;[
+<!ELEMENT refname (%refname.char.mix;)*>
+<!--end of refname.element-->]]>
+
+<!ENTITY % refname.attlist "INCLUDE">
+<![%refname.attlist;[
+<!ATTLIST refname
+		%common.attrib;
+		%refname.role.attrib;
+		%local.refname.attrib;
+>
+<!--end of refname.attlist-->]]>
+<!--end of refname.module-->]]>
+
+<!ENTITY % refpurpose.module "INCLUDE">
+<![%refpurpose.module;[
+<!ENTITY % local.refpurpose.attrib "">
+<!ENTITY % refpurpose.role.attrib "%role.attrib;">
+
+<!ENTITY % refpurpose.element "INCLUDE">
+<![%refpurpose.element;[
+<!ELEMENT refpurpose (%refinline.char.mix;)*>
+<!--end of refpurpose.element-->]]>
+
+<!ENTITY % refpurpose.attlist "INCLUDE">
+<![%refpurpose.attlist;[
+<!ATTLIST refpurpose
+		%common.attrib;
+		%refpurpose.role.attrib;
+		%local.refpurpose.attrib;
+>
+<!--end of refpurpose.attlist-->]]>
+<!--end of refpurpose.module-->]]>
+
+<!ENTITY % refclass.module "INCLUDE">
+<![%refclass.module;[
+<!ENTITY % local.refclass.attrib "">
+<!ENTITY % refclass.role.attrib "%role.attrib;">
+
+<!ENTITY % refclass.element "INCLUDE">
+<![%refclass.element;[
+<!ELEMENT refclass (%refclass.char.mix;)*>
+<!--end of refclass.element-->]]>
+
+<!ENTITY % refclass.attlist "INCLUDE">
+<![%refclass.attlist;[
+<!ATTLIST refclass
+		%common.attrib;
+		%refclass.role.attrib;
+		%local.refclass.attrib;
+>
+<!--end of refclass.attlist-->]]>
+<!--end of refclass.module-->]]>
+
+<!ENTITY % refsynopsisdiv.module "INCLUDE">
+<![%refsynopsisdiv.module;[
+<!ENTITY % local.refsynopsisdiv.attrib "">
+<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % refsynopsisdiv.element "INCLUDE">
+<![%refsynopsisdiv.element;[
+<!ELEMENT refsynopsisdiv (refsynopsisdivinfo?, (%refsect.title.content;)?,
+		(((%refcomponent.mix;)+, refsect2*) | (refsect2+)))>
+<!--end of refsynopsisdiv.element-->]]>
+
+<!ENTITY % refsynopsisdiv.attlist "INCLUDE">
+<![%refsynopsisdiv.attlist;[
+<!ATTLIST refsynopsisdiv
+		%common.attrib;
+		%refsynopsisdiv.role.attrib;
+		%local.refsynopsisdiv.attrib;
+>
+<!--end of refsynopsisdiv.attlist-->]]>
+<!--end of refsynopsisdiv.module-->]]>
+
+<!ENTITY % refsect1.module "INCLUDE">
+<![%refsect1.module;[
+<!ENTITY % local.refsect1.attrib "">
+<!ENTITY % refsect1.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect1.element "INCLUDE">
+<![%refsect1.element;[
+<!ELEMENT refsect1 (refsect1info?, (%refsect.title.content;),
+		(((%refcomponent.mix;)+, refsect2*) | refsect2+))>
+<!--end of refsect1.element-->]]>
+
+<!ENTITY % refsect1.attlist "INCLUDE">
+<![%refsect1.attlist;[
+<!ATTLIST refsect1
+		%status.attrib;
+		%common.attrib;
+		%refsect1.role.attrib;
+		%local.refsect1.attrib;
+>
+<!--end of refsect1.attlist-->]]>
+<!--end of refsect1.module-->]]>
+
+<!ENTITY % refsect2.module "INCLUDE">
+<![%refsect2.module;[
+<!ENTITY % local.refsect2.attrib "">
+<!ENTITY % refsect2.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect2.element "INCLUDE">
+<![%refsect2.element;[
+<!ELEMENT refsect2 (refsect2info?, (%refsect.title.content;),
+	(((%refcomponent.mix;)+, refsect3*) | refsect3+))>
+<!--end of refsect2.element-->]]>
+
+<!ENTITY % refsect2.attlist "INCLUDE">
+<![%refsect2.attlist;[
+<!ATTLIST refsect2
+		%status.attrib;
+		%common.attrib;
+		%refsect2.role.attrib;
+		%local.refsect2.attrib;
+>
+<!--end of refsect2.attlist-->]]>
+<!--end of refsect2.module-->]]>
+
+<!ENTITY % refsect3.module "INCLUDE">
+<![%refsect3.module;[
+<!ENTITY % local.refsect3.attrib "">
+<!ENTITY % refsect3.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect3.element "INCLUDE">
+<![%refsect3.element;[
+<!ELEMENT refsect3 (refsect3info?, (%refsect.title.content;), 
+	(%refcomponent.mix;)+)>
+<!--end of refsect3.element-->]]>
+
+<!ENTITY % refsect3.attlist "INCLUDE">
+<![%refsect3.attlist;[
+<!ATTLIST refsect3
+		%status.attrib;
+		%common.attrib;
+		%refsect3.role.attrib;
+		%local.refsect3.attrib;
+>
+<!--end of refsect3.attlist-->]]>
+<!--end of refsect3.module-->]]>
+<!--end of refentry.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Article .............................................................. -->
+
+<!ENTITY % article.module "INCLUDE">
+<![%article.module;[
+<!-- An Article is a chapter-level, stand-alone document that is often,
+     but need not be, collected into a Book. -->
+<!--FUTURE USE (V4.0):
+......................
+The %nav.class; entity now allows ToC; ToCchap will be allowed instead.
+RefEntry will be removed from the main content of Article.
+......................
+-->
+
+<!--FUTURE USE (V4.0):
+......................
+The ArtHeader element will be renamed to ArticleInfo.
+......................
+-->
+
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+
+<!ENTITY % article.element "INCLUDE">
+<![%article.element;[
+<!ELEMENT article ((%div.title.content;)?, artheader?, tocchap?, lot*,
+			(%bookcomponent.content;),
+			((%nav.class;) | (%appendix.class;) | ackno)*)>
+<!--end of article.element-->]]>
+
+<!-- Class: Indicates the type of a particular article;
+		all articles have the same structure and general purpose.
+		No default. -->
+<!-- ParentBook: ID of the enclosing Book -->
+
+
+<!ENTITY % article.attlist "INCLUDE">
+<![%article.attlist;[
+<!ATTLIST article
+		class		(journalarticle
+				|productsheet
+				|whitepaper
+				|techreport
+				|faq)		#IMPLIED
+		parentbook	IDREF		#IMPLIED
+		%status.attrib;
+		%common.attrib;
+		%article.role.attrib;
+		%local.article.attrib;
+>
+<!--end of article.attlist-->]]>
+<!--end of article.module-->]]>
+
+<!-- End of DocBk XML document hierarchy module V3.1.7 .................... -->
+<!-- ...................................................................... -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbnotnx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbnotnx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbnotnx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,60 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML Notations V3.1.7
+     Part of the DocBk XML V3.1.7 DTD
+     http://nwalsh.com/docbook/xml/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+		"BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+		| EPS | EQN | FAX | GIF | GIF87a | GIF89a 
+		| JPG | JPEG | IGES | PCX
+		| PIC | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+		| linespecific
+		%local.notation.class;">
+
+<!NOTATION BMP		PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR	PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY	PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR	PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF	SYSTEM "DITROFF">
+<!NOTATION DVI		SYSTEM "DVI">
+<!NOTATION EPS		PUBLIC 
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN		SYSTEM "EQN">
+<!NOTATION FAX		PUBLIC 
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF		SYSTEM "GIF">
+<!NOTATION GIF87a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+
+<!NOTATION GIF89a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG		SYSTEM "JPG">
+<!NOTATION JPEG		SYSTEM "JPG">
+<!NOTATION IGES		PUBLIC 
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC		SYSTEM "PIC">
+<!NOTATION PS		SYSTEM "PS">
+<!NOTATION SGML		PUBLIC 
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL		SYSTEM "TBL">
+<!NOTATION TEX		PUBLIC 
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF		SYSTEM "TIFF">
+<!NOTATION WMF		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG		SYSTEM "WPG"> <!--WordPerfect Graphic format-->
+<!NOTATION linespecific	SYSTEM "linespecific">
+
+<!-- End of DocBk XML notations module V3.1.7 ............................. -->
+<!-- ...................................................................... -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbpoolx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbpoolx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbpoolx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7291 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML Information Pool V3.1.7
+     Part of the DocBk XML V3.1.7 DTD
+     http://nwalsh.com/docbook/xml/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!-- ...................................................................... -->
+<!-- General-purpose semantics entities ................................... -->
+
+<!ENTITY % yesorno.attvals	"CDATA">
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbpool.redecl.module "IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes and mixtures ............................ -->
+
+<!-- "Ubiquitous" classes: ndxterm.class and beginpage -->
+
+<!ENTITY % local.ndxterm.class "">
+<!ENTITY % ndxterm.class
+		"indexterm %local.ndxterm.class;">
+
+<!-- Object-level classes ................................................. -->
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+		"calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist
+		|simplelist|variablelist %local.list.class;">
+
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+		"caution|important|note|tip|warning %local.admon.class;">
+
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+		"literallayout|programlisting|programlistingco|screen
+		|screenco|screenshot %local.linespecific.class;">
+
+<!ENTITY % local.synop.class "">
+<!ENTITY % synop.class
+		"synopsis|cmdsynopsis|funcsynopsis %local.synop.class;">
+
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+		"formalpara|para|simpara %local.para.class;">
+
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+		"address|blockquote
+                |graphic|graphicco|mediaobject|mediaobjectco
+                |informalequation
+		|informalexample
+                |informalfigure
+                |informaltable %local.informal.class;">
+
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+		"equation|example|figure|table %local.formal.class;">
+
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+		"msgset|procedure|sidebar|qandaset %local.compound.class;">
+
+<!ENTITY % local.genobj.class "">
+<!ENTITY % genobj.class
+		"anchor|bridgehead|comment|highlights
+		%local.genobj.class;">
+
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+		"abstract|authorblurb|epigraph
+		%local.descobj.class;">
+
+<!-- Character-level classes .............................................. -->
+
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % xref.char.class
+		"footnoteref|xref %local.xref.char.class;">
+
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+		"abbrev|acronym|citation|citerefentry|citetitle|emphasis
+		|firstterm|foreignphrase|glossterm|footnote|phrase
+		|quote|trademark|wordasword %local.gen.char.class;">
+
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+		"link|olink|ulink %local.link.char.class;">
+
+<!ENTITY % local.tech.char.class "">
+<!--FUTURE USE (V4.0):
+......................
+MsgText will be removed from tech.char.class to a more appropriate
+parameter entity.
+......................
+-->
+<!ENTITY % tech.char.class
+		"action|application|classname|command|computeroutput
+		|database|email|envar|errorcode|errorname|errortype|filename
+		|function|guibutton|guiicon|guilabel|guimenu|guimenuitem
+		|guisubmenu|hardware|interface|interfacedefinition|keycap
+		|keycode|keycombo|keysym|literal|constant|markup|medialabel
+		|menuchoice|mousebutton|msgtext|option|optional|parameter
+		|prompt|property|replaceable|returnvalue|sgmltag|structfield
+		|structname|symbol|systemitem|token|type|userinput|varname
+		%local.tech.char.class;">
+
+<!ENTITY % local.base.char.class "">
+<!ENTITY % base.char.class
+		"anchor %local.base.char.class;">
+
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+		"author|authorinitials|corpauthor|modespec|othercredit
+		|productname|productnumber|revhistory
+		%local.docinfo.char.class;">
+
+<!ENTITY % local.other.char.class "">
+<!ENTITY % other.char.class
+		"comment|subscript|superscript %local.other.char.class;">
+
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+		"inlinegraphic|inlinemediaobject|inlineequation %local.inlineobj.char.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+     retaining their references to the entities that are declared before
+     this point -->
+
+<![%dbpool.redecl.module;[
+<!-- Defining rdbpool here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbpool "">
+%rdbpool;
+<!--end of dbpool.redecl.module-->]]>
+
+<!-- Object-level mixtures ................................................ -->
+
+<!--
+                      list admn line synp para infm form cmpd gen  desc
+Component mixture       X    X    X    X    X    X    X    X    X    X
+Sidebar mixture         X    X    X    X    X    X    X    a    X
+Footnote mixture        X         X    X    X    X
+Example mixture         X         X    X    X    X
+Highlights mixture      X    X              X
+Paragraph mixture       X         X    X         X
+Admonition mixture      X         X    X    X    X    X    b    c
+Figure mixture                    X    X         X
+Table entry mixture     X    X    X         X    d
+Glossary def mixture    X         X    X    X    X         e
+Legal notice mixture    X    X    X         X    f
+
+a. Just Procedure; not Sidebar itself or MsgSet.
+b. No MsgSet.
+c. No Highlights.
+d. Just Graphic; no other informal objects.
+e. No Anchor, BridgeHead, or Highlights.
+f. Just BlockQuote; no other informal objects.
+-->
+
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+		|%genobj.class;		|%descobj.class;
+		|%ndxterm.class;        |beginpage
+		%local.component.mix;">
+
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|procedure
+		|%genobj.class;
+		|%ndxterm.class;        |beginpage
+		%local.sidebar.mix;">
+
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % qandaset.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|procedure
+		|%genobj.class;
+		|%ndxterm.class;
+		%local.qandaset.mix;">
+
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		%local.footnote.mix;">
+
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%ndxterm.class;        |beginpage
+		%local.example.mix;">
+
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % highlights.mix
+		"%list.class;		|%admon.class;
+		|%para.class;
+		|%ndxterm.class;        |beginpage
+		%local.highlights.mix;">
+
+<!-- %synop.class; is already included in para.char.mix because synopses
+     used inside paragraph-like contexts are "inline" synopses -->
+<!-- %formal.class; is explicitly excluded from many contexts in which
+     paragraphs are used -->
+<!ENTITY % local.para.mix "">
+<!ENTITY % para.mix
+		"%list.class;           |%admon.class;
+		|%linespecific.class;
+					|%informal.class;
+		|%formal.class;
+		%local.para.mix;">
+
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|procedure|sidebar
+		|anchor|bridgehead|comment
+		|%ndxterm.class;        |beginpage
+		%local.admon.mix;">
+
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+		"%linespecific.class;	|%synop.class;
+					|%informal.class;
+		|%ndxterm.class;        |beginpage
+		%local.figure.mix;">
+
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|graphic|mediaobject
+		%local.tabentry.mix;">
+
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % glossdef.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		|comment
+		|%ndxterm.class;        |beginpage
+		%local.glossdef.mix;">
+
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		|%ndxterm.class;        |beginpage
+		%local.legalnotice.mix;">
+
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.textobject.mix;">
+
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix 
+		"videoobject|audioobject|imageobject %local.mediaobject.mix;">
+
+<!-- Character-level mixtures ............................................. -->
+
+<!--
+                    #PCD xref word link cptr base dnfo othr inob (synop)
+para.char.mix         X    X    X    X    X    X    X    X    X     X
+title.char.mix        X    X    X    X    X    X    X    X    X
+ndxterm.char.mix      X    X    X    X    X    X    X    X    a
+cptr.char.mix         X              X    X    X         X    a
+smallcptr.char.mix    X                   b                   a
+word.char.mix         X         c    X         X         X    a
+docinfo.char.mix      X         d         b              X    a
+
+a. Just InlineGraphic; no InlineEquation.
+b. Just Replaceable; no other computer terms.
+c. Just Emphasis and Trademark; no other word elements.
+d. Just Acronym, Emphasis, and Trademark; no other word elements.
+-->
+
+<!-- Note that synop.class is not usually used for *.char.mixes,
+     but is used here because synopses used inside paragraph
+     contexts are "inline" synopses -->
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;	|%inlineobj.char.class;
+		|%synop.class;
+		|%ndxterm.class;        |beginpage
+		%local.para.char.mix;">
+
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;	|%inlineobj.char.class;
+		|%ndxterm.class;
+		%local.title.char.mix;">
+
+<!ENTITY % local.ndxterm.char.mix "">
+<!ENTITY % ndxterm.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		%local.ndxterm.char.mix;">
+
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+		"#PCDATA
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;        |beginpage
+		%local.cptr.char.mix;">
+
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+		"#PCDATA
+					|replaceable
+					|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;        |beginpage
+		%local.smallcptr.char.mix;">
+
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+		"#PCDATA
+					|acronym|emphasis|trademark
+		|%link.char.class;
+		|%base.char.class;
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;        |beginpage
+		%local.word.char.mix;">
+
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+		"#PCDATA
+		|%link.char.class;
+					|emphasis|trademark
+					|replaceable
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;
+		%local.docinfo.char.mix;">
+<!--ENTITY % bibliocomponent.mix (see Bibliographic section, below)-->
+<!--ENTITY % person.ident.mix (see Bibliographic section, below)-->
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % formalobject.title.content "title, titleabbrev?">
+
+<!ENTITY % equation.content "(graphic+|mediaobject+)">
+
+<!ENTITY % inlineequation.content "(graphic+|inlinemediaobject+)">
+
+<!ENTITY % programlisting.content "%para.char.mix; | co | lineannotation">
+
+<!ENTITY % screen.content "%para.char.mix; | co | lineannotation">
+
+<!-- ...................................................................... -->
+<!-- Entities for attributes and attribute components ..................... -->
+
+<!-- Effectivity attributes ............................................... -->
+
+
+<!-- Arch: Computer or chip architecture to which element applies; no 
+	default -->
+
+<!ENTITY % arch.attrib
+	"arch		CDATA		#IMPLIED">
+
+
+<!-- Conformance: Standards conformance characteristics -->
+
+<!ENTITY % conformance.attrib
+	"conformance	NMTOKENS	#IMPLIED">
+
+
+<!-- OS: Operating system to which element applies; no default -->
+
+<!ENTITY % os.attrib
+	"os		CDATA		#IMPLIED">
+
+
+<!-- Revision: Editorial revision to which element belongs; no default -->
+
+<!ENTITY % revision.attrib
+	"revision	CDATA		#IMPLIED">
+
+
+<!-- UserLevel: Level of user experience to which element applies; no 
+	default -->
+
+<!ENTITY % userlevel.attrib
+	"userlevel	CDATA		#IMPLIED">
+
+
+<!-- Vendor: Computer vendor to which element applies; no default -->
+
+<!ENTITY % vendor.attrib
+	"vendor		CDATA		#IMPLIED">
+
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % effectivity.attrib
+	"%arch.attrib;
+	%conformance.attrib;
+	%os.attrib;
+	%revision.attrib;
+	%userlevel.attrib;
+	%vendor.attrib;
+	%local.effectivity.attrib;"
+>
+
+<!-- Common attributes .................................................... -->
+
+
+<!-- Id: Unique identifier of element; no default -->
+
+<!ENTITY % id.attrib
+	"id		ID		#IMPLIED">
+
+
+<!-- Id: Unique identifier of element; a value must be supplied; no 
+	default -->
+
+<!ENTITY % idreq.attrib
+	"id		ID		#REQUIRED">
+
+
+<!-- Lang: Indicator of language in which element is written, for
+	translation, character set management, etc.; no default -->
+
+<!ENTITY % lang.attrib
+	"lang		CDATA		#IMPLIED">
+
+
+<!-- Remap: Previous role of element before conversion; no default -->
+
+<!ENTITY % remap.attrib
+	"remap		CDATA		#IMPLIED">
+
+
+<!-- Role: New role of element in local environment; no default -->
+
+<!ENTITY % role.attrib
+	"role		CDATA		#IMPLIED">
+
+
+<!-- XRefLabel: Alternate labeling string for XRef text generation;
+	default is usually title or other appropriate label text already
+	contained in element -->
+
+<!ENTITY % xreflabel.attrib
+	"xreflabel	CDATA		#IMPLIED">
+
+
+<!-- RevisionFlag: Revision status of element; default is that element
+	wasn't revised -->
+
+<!ENTITY % revisionflag.attrib
+	"revisionflag	(changed
+			|added
+			|deleted
+			|off)		#IMPLIED">
+
+<!ENTITY % local.common.attrib "">
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % common.attrib
+	"%id.attrib;
+	%lang.attrib;
+	%remap.attrib;
+	%xreflabel.attrib;
+	%revisionflag.attrib;
+	%effectivity.attrib;
+	%local.common.attrib;"
+>
+
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % idreq.common.attrib
+	"%idreq.attrib;
+	%lang.attrib;
+	%remap.attrib;
+	%xreflabel.attrib;
+	%revisionflag.attrib;
+	%effectivity.attrib;
+	%local.common.attrib;"
+>
+
+<!-- Semi-common attributes and other attribute entities .................. -->
+
+<!ENTITY % local.graphics.attrib "">
+
+<!-- EntityRef: Name of an external entity containing the content
+	of the graphic -->
+<!-- FileRef: Filename, qualified by a pathname if desired, 
+	designating the file containing the content of the graphic -->
+<!-- Format: Notation of the element content, if any -->
+<!-- SrcCredit: Information about the source of the Graphic -->
+<!-- Width: Same as CALS reprowid (desired width) -->
+<!-- Depth: Same as CALS reprodep (desired depth) -->
+<!-- Align: Same as CALS hplace with 'none' removed; #IMPLIED means 
+	application-specific -->
+<!-- Scale: Conflation of CALS hscale and vscale -->
+<!-- Scalefit: Same as CALS scalefit -->
+
+<!ENTITY % graphics.attrib
+	"
+	entityref	ENTITY		#IMPLIED
+	fileref 	CDATA		#IMPLIED
+	format		(%notation.class;) #IMPLIED
+	srccredit	CDATA		#IMPLIED
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+	%local.graphics.attrib;"
+>
+
+<!ENTITY % local.keyaction.attrib "">
+
+<!-- Action: Key combination type; default is unspecified if one 
+	child element, Simul if there is more than one; if value is 
+	Other, the OtherAction attribute must have a nonempty value -->
+<!-- OtherAction: User-defined key combination type -->
+
+<!ENTITY % keyaction.attrib
+	"
+	action		(click
+			|double-click
+			|press
+			|seq
+			|simul
+			|other)		#IMPLIED
+	otheraction	CDATA		#IMPLIED
+	%local.keyaction.attrib;"
+>
+
+
+<!-- Label: Identifying number or string; default is usually the
+	appropriate number or string autogenerated by a formatter -->
+
+<!ENTITY % label.attrib
+	"label		CDATA		#IMPLIED">
+
+
+<!-- Format: whether element is assumed to contain significant white
+	space -->
+
+<!ENTITY % linespecific.attrib
+	"format		NOTATION
+			(linespecific)	'linespecific'">
+
+
+<!-- Linkend: link to related information; no default -->
+
+<!ENTITY % linkend.attrib
+	"linkend	IDREF		#IMPLIED">
+
+
+<!-- Linkend: required link to related information -->
+
+<!ENTITY % linkendreq.attrib
+	"linkend	IDREF		#REQUIRED">
+
+
+<!-- Linkends: link to one or more sets of related information; no 
+	default -->
+
+<!ENTITY % linkends.attrib
+	"linkends	IDREFS		#IMPLIED">
+
+
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+	"mark		CDATA		#IMPLIED
+	%local.mark.attrib;"
+>
+
+
+<!-- MoreInfo: whether element's content has an associated RefEntry -->
+
+<!ENTITY % moreinfo.attrib
+	"moreinfo	(refentry|none)	'none'">
+
+
+<!-- Pagenum: number of page on which element appears; no default -->
+
+<!ENTITY % pagenum.attrib
+	"pagenum	CDATA		#IMPLIED">
+
+<!ENTITY % local.status.attrib "">
+
+<!-- Status: Editorial or publication status of the element
+	it applies to, such as "in review" or "approved for distribution" -->
+
+<!ENTITY % status.attrib
+	"status		CDATA		#IMPLIED
+	%local.status.attrib;"
+>
+
+
+<!-- Width: width of the longest line in the element to which it
+	pertains, in number of characters -->
+
+<!ENTITY % width.attrib
+	"width		CDATA		#IMPLIED">
+
+<!-- ...................................................................... -->
+<!-- Title elements ....................................................... -->
+
+<!ENTITY % title.module "INCLUDE">
+<![%title.module;[
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+
+<!ENTITY % title.element "INCLUDE">
+<![%title.element;[
+<!ELEMENT title (%title.char.mix;)*>
+<!--end of title.element-->]]>
+
+<!ENTITY % title.attlist "INCLUDE">
+<![%title.attlist;[
+<!ATTLIST title
+		%pagenum.attrib;
+		%common.attrib;
+		%title.role.attrib;
+		%local.title.attrib;
+>
+<!--end of title.attlist-->]]>
+<!--end of title.module-->]]>
+
+<!ENTITY % titleabbrev.module "INCLUDE">
+<![%titleabbrev.module;[
+<!ENTITY % local.titleabbrev.attrib "">
+<!ENTITY % titleabbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % titleabbrev.element "INCLUDE">
+<![%titleabbrev.element;[
+<!ELEMENT titleabbrev (%title.char.mix;)*>
+<!--end of titleabbrev.element-->]]>
+
+<!ENTITY % titleabbrev.attlist "INCLUDE">
+<![%titleabbrev.attlist;[
+<!ATTLIST titleabbrev
+		%common.attrib;
+		%titleabbrev.role.attrib;
+		%local.titleabbrev.attrib;
+>
+<!--end of titleabbrev.attlist-->]]>
+<!--end of titleabbrev.module-->]]>
+
+<!ENTITY % subtitle.module "INCLUDE">
+<![%subtitle.module;[
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % subtitle.element "INCLUDE">
+<![%subtitle.element;[
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!--end of subtitle.element-->]]>
+
+<!ENTITY % subtitle.attlist "INCLUDE">
+<![%subtitle.attlist;[
+<!ATTLIST subtitle
+		%common.attrib;
+		%subtitle.role.attrib;
+		%local.subtitle.attrib;
+>
+<!--end of subtitle.attlist-->]]>
+<!--end of subtitle.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliographic entities and elements .................................. -->
+
+<!-- The bibliographic elements are typically used in the document
+     hierarchy. They do not appear in content models of information
+     pool elements.  See also the document information elements,
+     below. -->
+
+<!ENTITY % local.person.ident.mix "">
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new
+wrapper element created to allow association of those two elements with
+Author name information.
+......................
+-->
+<!ENTITY % person.ident.mix
+		"honorific|firstname|surname|lineage|othername|affiliation
+		|authorblurb|contrib %local.person.ident.mix;">
+
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+		"abbrev|abstract|address|artpagenums|author
+		|authorgroup|authorinitials|bibliomisc|biblioset
+		|collab|confgroup|contractnum|contractsponsor
+		|copyright|corpauthor|corpname|date|edition
+		|editor|invpartnumber|isbn|issn|issuenum|orgname
+		|othercredit|pagenums|printhistory|productname
+		|productnumber|pubdate|publisher|publishername
+		|pubsnumber|releaseinfo|revhistory|seriesvolnums
+		|subtitle|title|titleabbrev|volumenum|citetitle
+		|%person.ident.mix;
+		|%ndxterm.class;
+		%local.bibliocomponent.mix;">
+
+<!ENTITY % biblioentry.module "INCLUDE">
+<![%biblioentry.module;[
+<!ENTITY % local.biblioentry.attrib "">
+<!--FUTURE USE (V4.0):
+......................
+The ArtHeader element will be renamed to ArticleInfo.
+......................
+-->
+<!ENTITY % biblioentry.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioentry.element "INCLUDE">
+<![%biblioentry.element;[
+<!ELEMENT biblioentry ((artheader | bookbiblio | seriesinfo
+	| (%bibliocomponent.mix;))+)>
+<!--end of biblioentry.element-->]]>
+
+<!ENTITY % biblioentry.attlist "INCLUDE">
+<![%biblioentry.attlist;[
+<!ATTLIST biblioentry
+		%common.attrib;
+		%biblioentry.role.attrib;
+		%local.biblioentry.attrib;
+>
+<!--end of biblioentry.attlist-->]]>
+<!--end of biblioentry.module-->]]>
+
+<!ENTITY % bibliomixed.module "INCLUDE">
+<![%bibliomixed.module;[
+<!ENTITY % local.bibliomixed.attrib "">
+<!ENTITY % bibliomixed.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomixed.element "INCLUDE">
+<![%bibliomixed.element;[
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomixed.element-->]]>
+
+<!ENTITY % bibliomixed.attlist "INCLUDE">
+<![%bibliomixed.attlist;[
+<!ATTLIST bibliomixed
+		%common.attrib;
+		%bibliomixed.role.attrib;
+		%local.bibliomixed.attrib;
+>
+<!--end of bibliomixed.attlist-->]]>
+<!--end of bibliomixed.module-->]]>
+
+<!ENTITY % bookbiblio.module "INCLUDE">
+<![%bookbiblio.module;[
+<!--FUTURE USE (V4.0):
+......................
+BookBiblio will be discarded.
+......................
+-->
+<!ENTITY % local.bookbiblio.attrib "">
+<!ENTITY % bookbiblio.role.attrib "%role.attrib;">
+
+<!ENTITY % bookbiblio.element "INCLUDE">
+<![%bookbiblio.element;[
+<!ELEMENT bookbiblio ((%bibliocomponent.mix; | seriesinfo)+)>
+<!--end of bookbiblio.element-->]]>
+
+<!ENTITY % bookbiblio.attlist "INCLUDE">
+<![%bookbiblio.attlist;[
+<!ATTLIST bookbiblio
+		%common.attrib;
+		%bookbiblio.role.attrib;
+		%local.bookbiblio.attrib;
+>
+<!--end of bookbiblio.attlist-->]]>
+<!--end of bookbiblio.module-->]]>
+
+<!ENTITY % seriesinfo.module "INCLUDE">
+<![%seriesinfo.module;[
+<!--FUTURE USE (V4.0):
+......................
+SeriesInfo *may* be discarded; it has become a special case of BiblioSet.
+......................
+-->
+<!ENTITY % local.seriesinfo.attrib "">
+<!ENTITY % seriesinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % seriesinfo.element "INCLUDE">
+<![%seriesinfo.element;[
+<!ELEMENT seriesinfo ((%bibliocomponent.mix;)+)>
+<!--end of seriesinfo.element-->]]>
+
+<!ENTITY % seriesinfo.attlist "INCLUDE">
+<![%seriesinfo.attlist;[
+<!ATTLIST seriesinfo
+		%common.attrib;
+		%seriesinfo.role.attrib;
+		%local.seriesinfo.attrib;
+>
+<!--end of seriesinfo.attlist-->]]>
+<!--end of seriesinfo.module-->]]>
+
+<!ENTITY % artheader.module "INCLUDE">
+<![%artheader.module;[
+<!--FUTURE USE (V4.0):
+......................
+BookBiblio will be discarded and will be removed from ArtHeader, which
+will be renamed to ArticleInfo.
+......................
+-->
+<!ENTITY % local.artheader.attrib "">
+<!ENTITY % artheader.role.attrib "%role.attrib;">
+
+<!ENTITY % artheader.element "INCLUDE">
+<![%artheader.element;[
+<!ELEMENT artheader ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;
+	| bookbiblio)+)>
+<!--end of artheader.element-->]]>
+
+<!ENTITY % artheader.attlist "INCLUDE">
+<![%artheader.attlist;[
+<!ATTLIST artheader
+		%common.attrib;
+		%artheader.role.attrib;
+		%local.artheader.attrib;
+>
+<!--end of artheader.attlist-->]]>
+<!--end of artheader.module-->]]>
+
+<!ENTITY % biblioset.module "INCLUDE">
+<![%biblioset.module;[
+<!ENTITY % local.biblioset.attrib "">
+<!ENTITY % biblioset.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioset.element "INCLUDE">
+<![%biblioset.element;[
+<!ELEMENT biblioset ((%bibliocomponent.mix;)+)>
+<!--end of biblioset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioSet -->
+
+
+<!ENTITY % biblioset.attlist "INCLUDE">
+<![%biblioset.attlist;[
+<!ATTLIST biblioset
+		relation	CDATA		#IMPLIED
+		%common.attrib;
+		%biblioset.role.attrib;
+		%local.biblioset.attrib;
+>
+<!--end of biblioset.attlist-->]]>
+<!--end of biblioset.module-->]]>
+
+<!ENTITY % bibliomset.module "INCLUDE">
+<![%bibliomset.module;[
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+
+<!ENTITY % bibliomset.element "INCLUDE">
+<![%bibliomset.element;[
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioMSet -->
+
+
+<!ENTITY % bibliomset.attlist "INCLUDE">
+<![%bibliomset.attlist;[
+<!ATTLIST bibliomset
+		relation	CDATA		#IMPLIED
+		%bibliomset.role.attrib;
+		%common.attrib;
+		%local.bibliomset.attrib;
+>
+<!--end of bibliomset.attlist-->]]>
+<!--end of bibliomset.module-->]]>
+
+<!ENTITY % bibliomisc.module "INCLUDE">
+<![%bibliomisc.module;[
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomisc.element "INCLUDE">
+<![%bibliomisc.element;[
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!--end of bibliomisc.element-->]]>
+
+<!ENTITY % bibliomisc.attlist "INCLUDE">
+<![%bibliomisc.attlist;[
+<!ATTLIST bibliomisc
+		%common.attrib;
+		%bibliomisc.role.attrib;
+		%local.bibliomisc.attrib;
+>
+<!--end of bibliomisc.attlist-->]]>
+<!--end of bibliomisc.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Subject, Keyword, and ITermSet elements .............................. -->
+
+<!ENTITY % subjectset.content.module "INCLUDE">
+<![%subjectset.content.module;[
+<!ENTITY % subjectset.module "INCLUDE">
+<![%subjectset.module;[
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectset.element "INCLUDE">
+<![%subjectset.element;[
+<!ELEMENT subjectset (subject+)>
+<!--end of subjectset.element-->]]>
+
+<!-- Scheme: Controlled vocabulary employed in SubjectTerms -->
+
+
+<!ENTITY % subjectset.attlist "INCLUDE">
+<![%subjectset.attlist;[
+<!ATTLIST subjectset
+		scheme		NMTOKEN		#IMPLIED
+		%common.attrib;
+		%subjectset.role.attrib;
+		%local.subjectset.attrib;
+>
+<!--end of subjectset.attlist-->]]>
+<!--end of subjectset.module-->]]>
+
+<!ENTITY % subject.module "INCLUDE">
+<![%subject.module;[
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+
+<!ENTITY % subject.element "INCLUDE">
+<![%subject.element;[
+<!ELEMENT subject (subjectterm+)>
+<!--end of subject.element-->]]>
+
+<!-- Weight: Ranking of this group of SubjectTerms relative 
+		to others, 0 is low, no highest value specified -->
+
+
+<!ENTITY % subject.attlist "INCLUDE">
+<![%subject.attlist;[
+<!ATTLIST subject
+		weight		CDATA		#IMPLIED
+		%common.attrib;
+		%subject.role.attrib;
+		%local.subject.attrib;
+>
+<!--end of subject.attlist-->]]>
+<!--end of subject.module-->]]>
+
+<!ENTITY % subjectterm.module "INCLUDE">
+<![%subjectterm.module;[
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectterm.element "INCLUDE">
+<![%subjectterm.element;[
+<!ELEMENT subjectterm (#PCDATA)>
+<!--end of subjectterm.element-->]]>
+
+<!ENTITY % subjectterm.attlist "INCLUDE">
+<![%subjectterm.attlist;[
+<!ATTLIST subjectterm
+		%common.attrib;
+		%subjectterm.role.attrib;
+		%local.subjectterm.attrib;
+>
+<!--end of subjectterm.attlist-->]]>
+<!--end of subjectterm.module-->]]>
+<!--end of subjectset.content.module-->]]>
+
+<!ENTITY % keywordset.content.module "INCLUDE">
+<![%keywordset.content.module;[
+<!ENTITY % keywordset.module "INCLUDE">
+<![%keywordset.module;[
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+
+<!ENTITY % keywordset.element "INCLUDE">
+<![%keywordset.element;[
+<!ELEMENT keywordset (keyword+)>
+<!--end of keywordset.element-->]]>
+
+<!ENTITY % keywordset.attlist "INCLUDE">
+<![%keywordset.attlist;[
+<!ATTLIST keywordset
+		%common.attrib;
+		%keywordset.role.attrib;
+		%local.keywordset.attrib;
+>
+<!--end of keywordset.attlist-->]]>
+<!--end of keywordset.module-->]]>
+
+<!ENTITY % keyword.module "INCLUDE">
+<![%keyword.module;[
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+
+<!ENTITY % keyword.element "INCLUDE">
+<![%keyword.element;[
+<!ELEMENT keyword (#PCDATA)>
+<!--end of keyword.element-->]]>
+
+<!ENTITY % keyword.attlist "INCLUDE">
+<![%keyword.attlist;[
+<!ATTLIST keyword
+		%common.attrib;
+		%keyword.role.attrib;
+		%local.keyword.attrib;
+>
+<!--end of keyword.attlist-->]]>
+<!--end of keyword.module-->]]>
+<!--end of keywordset.content.module-->]]>
+
+<!ENTITY % itermset.module "INCLUDE">
+<![%itermset.module;[
+<!ENTITY % local.itermset.attrib "">
+<!ENTITY % itermset.role.attrib "%role.attrib;">
+
+<!ENTITY % itermset.element "INCLUDE">
+<![%itermset.element;[
+<!ELEMENT itermset (indexterm+)>
+<!--end of itermset.element-->]]>
+
+<!ENTITY % itermset.attlist "INCLUDE">
+<![%itermset.attlist;[
+<!ATTLIST itermset
+		%common.attrib;
+		%itermset.role.attrib;
+		%local.itermset.attrib;
+>
+<!--end of itermset.attlist-->]]>
+<!--end of itermset.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Compound (section-ish) elements ...................................... -->
+
+<!-- Message set ...................... -->
+
+<!ENTITY % msgset.content.module "INCLUDE">
+<![%msgset.content.module;[
+<!ENTITY % msgset.module "INCLUDE">
+<![%msgset.module;[
+<!ENTITY % local.msgset.attrib "">
+<!ENTITY % msgset.role.attrib "%role.attrib;">
+
+<!ENTITY % msgset.element "INCLUDE">
+<![%msgset.element;[
+<!ELEMENT msgset ((%formalobject.title.content;)?, msgentry+)>
+<!--end of msgset.element-->]]>
+
+<!ENTITY % msgset.attlist "INCLUDE">
+<![%msgset.attlist;[
+<!ATTLIST msgset
+		%common.attrib;
+		%msgset.role.attrib;
+		%local.msgset.attrib;
+>
+<!--end of msgset.attlist-->]]>
+<!--end of msgset.module-->]]>
+
+<!ENTITY % msgentry.module "INCLUDE">
+<![%msgentry.module;[
+<!ENTITY % local.msgentry.attrib "">
+<!ENTITY % msgentry.role.attrib "%role.attrib;">
+
+<!ENTITY % msgentry.element "INCLUDE">
+<![%msgentry.element;[
+<!ELEMENT msgentry (msg+, msginfo?, msgexplan*)>
+<!--end of msgentry.element-->]]>
+
+<!ENTITY % msgentry.attlist "INCLUDE">
+<![%msgentry.attlist;[
+<!ATTLIST msgentry
+		%common.attrib;
+		%msgentry.role.attrib;
+		%local.msgentry.attrib;
+>
+<!--end of msgentry.attlist-->]]>
+<!--end of msgentry.module-->]]>
+
+<!ENTITY % msg.module "INCLUDE">
+<![%msg.module;[
+<!ENTITY % local.msg.attrib "">
+<!ENTITY % msg.role.attrib "%role.attrib;">
+
+<!ENTITY % msg.element "INCLUDE">
+<![%msg.element;[
+<!ELEMENT msg (title?, msgmain, (msgsub | msgrel)*)>
+<!--end of msg.element-->]]>
+
+<!ENTITY % msg.attlist "INCLUDE">
+<![%msg.attlist;[
+<!ATTLIST msg
+		%common.attrib;
+		%msg.role.attrib;
+		%local.msg.attrib;
+>
+<!--end of msg.attlist-->]]>
+<!--end of msg.module-->]]>
+
+<!ENTITY % msgmain.module "INCLUDE">
+<![%msgmain.module;[
+<!ENTITY % local.msgmain.attrib "">
+<!ENTITY % msgmain.role.attrib "%role.attrib;">
+
+<!ENTITY % msgmain.element "INCLUDE">
+<![%msgmain.element;[
+<!ELEMENT msgmain (title?, msgtext)>
+<!--end of msgmain.element-->]]>
+
+<!ENTITY % msgmain.attlist "INCLUDE">
+<![%msgmain.attlist;[
+<!ATTLIST msgmain
+		%common.attrib;
+		%msgmain.role.attrib;
+		%local.msgmain.attrib;
+>
+<!--end of msgmain.attlist-->]]>
+<!--end of msgmain.module-->]]>
+
+<!ENTITY % msgsub.module "INCLUDE">
+<![%msgsub.module;[
+<!ENTITY % local.msgsub.attrib "">
+<!ENTITY % msgsub.role.attrib "%role.attrib;">
+
+<!ENTITY % msgsub.element "INCLUDE">
+<![%msgsub.element;[
+<!ELEMENT msgsub (title?, msgtext)>
+<!--end of msgsub.element-->]]>
+
+<!ENTITY % msgsub.attlist "INCLUDE">
+<![%msgsub.attlist;[
+<!ATTLIST msgsub
+		%common.attrib;
+		%msgsub.role.attrib;
+		%local.msgsub.attrib;
+>
+<!--end of msgsub.attlist-->]]>
+<!--end of msgsub.module-->]]>
+
+<!ENTITY % msgrel.module "INCLUDE">
+<![%msgrel.module;[
+<!ENTITY % local.msgrel.attrib "">
+<!ENTITY % msgrel.role.attrib "%role.attrib;">
+
+<!ENTITY % msgrel.element "INCLUDE">
+<![%msgrel.element;[
+<!ELEMENT msgrel (title?, msgtext)>
+<!--end of msgrel.element-->]]>
+
+<!ENTITY % msgrel.attlist "INCLUDE">
+<![%msgrel.attlist;[
+<!ATTLIST msgrel
+		%common.attrib;
+		%msgrel.role.attrib;
+		%local.msgrel.attrib;
+>
+<!--end of msgrel.attlist-->]]>
+<!--end of msgrel.module-->]]>
+
+<!--ELEMENT MsgText (defined in the Inlines section, below)-->
+
+<!ENTITY % msginfo.module "INCLUDE">
+<![%msginfo.module;[
+<!ENTITY % local.msginfo.attrib "">
+<!ENTITY % msginfo.role.attrib "%role.attrib;">
+
+<!ENTITY % msginfo.element "INCLUDE">
+<![%msginfo.element;[
+<!ELEMENT msginfo ((msglevel | msgorig | msgaud)*)>
+<!--end of msginfo.element-->]]>
+
+<!ENTITY % msginfo.attlist "INCLUDE">
+<![%msginfo.attlist;[
+<!ATTLIST msginfo
+		%common.attrib;
+		%msginfo.role.attrib;
+		%local.msginfo.attrib;
+>
+<!--end of msginfo.attlist-->]]>
+<!--end of msginfo.module-->]]>
+
+<!ENTITY % msglevel.module "INCLUDE">
+<![%msglevel.module;[
+<!ENTITY % local.msglevel.attrib "">
+<!ENTITY % msglevel.role.attrib "%role.attrib;">
+
+<!ENTITY % msglevel.element "INCLUDE">
+<![%msglevel.element;[
+<!ELEMENT msglevel (%smallcptr.char.mix;)*>
+<!--end of msglevel.element-->]]>
+
+<!ENTITY % msglevel.attlist "INCLUDE">
+<![%msglevel.attlist;[
+<!ATTLIST msglevel
+		%common.attrib;
+		%msglevel.role.attrib;
+		%local.msglevel.attrib;
+>
+<!--end of msglevel.attlist-->]]>
+<!--end of msglevel.module-->]]>
+
+<!ENTITY % msgorig.module "INCLUDE">
+<![%msgorig.module;[
+<!ENTITY % local.msgorig.attrib "">
+<!ENTITY % msgorig.role.attrib "%role.attrib;">
+
+<!ENTITY % msgorig.element "INCLUDE">
+<![%msgorig.element;[
+<!ELEMENT msgorig (%smallcptr.char.mix;)*>
+<!--end of msgorig.element-->]]>
+
+<!ENTITY % msgorig.attlist "INCLUDE">
+<![%msgorig.attlist;[
+<!ATTLIST msgorig
+		%common.attrib;
+		%msgorig.role.attrib;
+		%local.msgorig.attrib;
+>
+<!--end of msgorig.attlist-->]]>
+<!--end of msgorig.module-->]]>
+
+<!ENTITY % msgaud.module "INCLUDE">
+<![%msgaud.module;[
+<!ENTITY % local.msgaud.attrib "">
+<!ENTITY % msgaud.role.attrib "%role.attrib;">
+
+<!ENTITY % msgaud.element "INCLUDE">
+<![%msgaud.element;[
+<!ELEMENT msgaud (%para.char.mix;)*>
+<!--end of msgaud.element-->]]>
+
+<!ENTITY % msgaud.attlist "INCLUDE">
+<![%msgaud.attlist;[
+<!ATTLIST msgaud
+		%common.attrib;
+		%msgaud.role.attrib;
+		%local.msgaud.attrib;
+>
+<!--end of msgaud.attlist-->]]>
+<!--end of msgaud.module-->]]>
+
+<!ENTITY % msgexplan.module "INCLUDE">
+<![%msgexplan.module;[
+<!ENTITY % local.msgexplan.attrib "">
+<!ENTITY % msgexplan.role.attrib "%role.attrib;">
+
+<!ENTITY % msgexplan.element "INCLUDE">
+<![%msgexplan.element;[
+<!ELEMENT msgexplan (title?, (%component.mix;)+)>
+<!--end of msgexplan.element-->]]>
+
+<!ENTITY % msgexplan.attlist "INCLUDE">
+<![%msgexplan.attlist;[
+<!ATTLIST msgexplan
+		%common.attrib;
+		%msgexplan.role.attrib;
+		%local.msgexplan.attrib;
+>
+<!--end of msgexplan.attlist-->]]>
+<!--end of msgexplan.module-->]]>
+<!--end of msgset.content.module-->]]>
+
+<!-- QandASet ........................ -->
+<!ENTITY % qandset.content.module "INCLUDE">
+<![ %qandset.content.module; [
+<!ENTITY % qandset.module "INCLUDE">
+<![ %qandset.module; [
+<!ENTITY % local.qandset.attrib "">
+<!ENTITY % qandset.role.attrib "%role.attrib;">
+
+<!ENTITY % qandset.element "INCLUDE">
+<![ %qandset.element; [
+<!ELEMENT qandaset ((%formalobject.title.content;)?,
+			(%qandaset.mix;)*,
+                        (qandadiv+|qandaentry+))>
+<!--end of qandset.element-->]]>
+
+<!ENTITY % qandset.attlist "INCLUDE">
+<![ %qandset.attlist; [
+<!ATTLIST qandaset
+		defaultlabel	(qanda|number|none)       #IMPLIED
+		%common.attrib;
+		%qandset.role.attrib;
+		%local.qandset.attrib;>
+<!--end of qandset.attlist-->]]>
+<!--end of qandset.module-->]]>
+
+<!ENTITY % qandadiv.module "INCLUDE">
+<![ %qandadiv.module; [
+<!ENTITY % local.qandadiv.attrib "">
+<!ENTITY % qandadiv.role.attrib "%role.attrib;">
+
+<!ENTITY % qandadiv.element "INCLUDE">
+<![ %qandadiv.element; [
+<!ELEMENT qandadiv ((%formalobject.title.content;)?, 
+			(%qandaset.mix;)*,
+			(qandadiv+|qandaentry+))>
+<!--end of qandadiv.element-->]]>
+
+<!ENTITY % qandadiv.attlist "INCLUDE">
+<![ %qandadiv.attlist; [
+<!ATTLIST qandadiv
+		%common.attrib;
+		%qandadiv.role.attrib;
+		%local.qandadiv.attrib;>
+<!--end of qandadiv.attlist-->]]>
+<!--end of qandadiv.module-->]]>
+
+<!ENTITY % qandaentry.module "INCLUDE">
+<![ %qandaentry.module; [
+<!ENTITY % local.qandaentry.attrib "">
+<!ENTITY % qandaentry.role.attrib "%role.attrib;">
+
+<!ENTITY % qandaentry.element "INCLUDE">
+<![ %qandaentry.element; [
+<!ELEMENT qandaentry (question, answer*)>
+<!--end of qandaentry.element-->]]>
+
+<!ENTITY % qandaentry.attlist "INCLUDE">
+<![ %qandaentry.attlist; [
+<!ATTLIST qandaentry
+		%common.attrib;
+		%qandaentry.role.attrib;
+		%local.qandaentry.attrib;>
+<!--end of qandaentry.attlist-->]]>
+<!--end of qandaentry.module-->]]>
+
+<!ENTITY % question.module "INCLUDE">
+<![ %question.module; [
+<!ENTITY % local.question.attrib "">
+<!ENTITY % question.role.attrib "%role.attrib;">
+
+<!ENTITY % question.element "INCLUDE">
+<![ %question.element; [
+<!ELEMENT question (label?, (%qandaset.mix;)+)>
+<!--end of question.element-->]]>
+
+<!ENTITY % question.attlist "INCLUDE">
+<![ %question.attlist; [
+<!ATTLIST question
+		%common.attrib;
+		%question.role.attrib;
+		%local.question.attrib;
+>
+<!--end of question.attlist-->]]>
+<!--end of question.module-->]]>
+
+<!ENTITY % answer.module "INCLUDE">
+<![ %answer.module; [
+<!ENTITY % local.answer.attrib "">
+<!ENTITY % answer.role.attrib "%role.attrib;">
+
+<!ENTITY % answer.element "INCLUDE">
+<![ %answer.element; [
+<!ELEMENT answer (label?, (%qandaset.mix;)*, qandaentry*)>
+<!--end of answer.element-->]]>
+
+<!ENTITY % answer.attlist "INCLUDE">
+<![ %answer.attlist; [
+<!ATTLIST answer
+		%common.attrib;
+		%answer.role.attrib;
+		%local.answer.attrib;
+>
+<!--end of answer.attlist-->]]>
+<!--end of answer.module-->]]>
+
+<!ENTITY % label.module "INCLUDE">
+<![ %label.module; [
+<!ENTITY % local.label.attrib "">
+<!ENTITY % label.role.attrib "%role.attrib;">
+
+<!ENTITY % label.element "INCLUDE">
+<![ %label.element; [
+<!ELEMENT label (%word.char.mix;)*>
+<!--end of label.element-->]]>
+
+<!ENTITY % label.attlist "INCLUDE">
+<![ %label.attlist; [
+<!ATTLIST label
+		%common.attrib;
+		%label.role.attrib;
+		%local.label.attrib;
+>
+<!--end of label.attlist-->]]>
+<!--end of label.module-->]]>
+<!--end of qandset.content.module-->]]>
+
+<!-- Procedure ........................ -->
+
+<!ENTITY % procedure.content.module "INCLUDE">
+<![%procedure.content.module;[
+<!ENTITY % procedure.module "INCLUDE">
+<![%procedure.module;[
+<!ENTITY % local.procedure.attrib "">
+<!ENTITY % procedure.role.attrib "%role.attrib;">
+
+<!ENTITY % procedure.element "INCLUDE">
+<![%procedure.element;[
+<!ELEMENT procedure ((%formalobject.title.content;)?,
+	(%component.mix;)*, step+)>
+<!--end of procedure.element-->]]>
+
+<!ENTITY % procedure.attlist "INCLUDE">
+<![%procedure.attlist;[
+<!ATTLIST procedure
+		%common.attrib;
+		%procedure.role.attrib;
+		%local.procedure.attrib;
+>
+<!--end of procedure.attlist-->]]>
+<!--end of procedure.module-->]]>
+
+<!ENTITY % step.module "INCLUDE">
+<![%step.module;[
+<!ENTITY % local.step.attrib "">
+<!ENTITY % step.role.attrib "%role.attrib;">
+
+<!ENTITY % step.element "INCLUDE">
+<![%step.element;[
+<!ELEMENT step (title?, (((%component.mix;)+, (substeps,
+		(%component.mix;)*)?) | (substeps, (%component.mix;)*)))>
+<!--end of step.element-->]]>
+
+<!-- Performance: Whether the Step must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % step.attlist "INCLUDE">
+<![%step.attlist;[
+<!ATTLIST step
+		performance	(optional
+				|required)	"required"
+		%common.attrib;
+		%step.role.attrib;
+		%local.step.attrib;
+>
+<!--end of step.attlist-->]]>
+<!--end of step.module-->]]>
+
+<!ENTITY % substeps.module "INCLUDE">
+<![%substeps.module;[
+<!ENTITY % local.substeps.attrib "">
+<!ENTITY % substeps.role.attrib "%role.attrib;">
+
+<!ENTITY % substeps.element "INCLUDE">
+<![%substeps.element;[
+<!ELEMENT substeps (step+)>
+<!--end of substeps.element-->]]>
+
+<!-- Performance: whether entire set of substeps must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % substeps.attlist "INCLUDE">
+<![%substeps.attlist;[
+<!ATTLIST substeps
+		performance	(optional
+				|required)	"required"
+		%common.attrib;
+		%substeps.role.attrib;
+		%local.substeps.attrib;
+>
+<!--end of substeps.attlist-->]]>
+<!--end of substeps.module-->]]>
+<!--end of procedure.content.module-->]]>
+
+<!-- Sidebar .......................... -->
+
+<!ENTITY % sidebar.module "INCLUDE">
+<![%sidebar.module;[
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+
+<!ENTITY % sidebar.element "INCLUDE">
+<![%sidebar.element;[
+<!ELEMENT sidebar ((%formalobject.title.content;)?, (%sidebar.mix;)+)>
+<!--end of sidebar.element-->]]>
+
+<!ENTITY % sidebar.attlist "INCLUDE">
+<![%sidebar.attlist;[
+<!ATTLIST sidebar
+		%common.attrib;
+		%sidebar.role.attrib;
+		%local.sidebar.attrib;
+>
+<!--end of sidebar.attlist-->]]>
+<!--end of sidebar.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Paragraph-related elements ........................................... -->
+
+<!ENTITY % abstract.module "INCLUDE">
+<![%abstract.module;[
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+
+<!ENTITY % abstract.element "INCLUDE">
+<![%abstract.element;[
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!--end of abstract.element-->]]>
+
+<!ENTITY % abstract.attlist "INCLUDE">
+<![%abstract.attlist;[
+<!ATTLIST abstract
+		%common.attrib;
+		%abstract.role.attrib;
+		%local.abstract.attrib;
+>
+<!--end of abstract.attlist-->]]>
+<!--end of abstract.module-->]]>
+
+<!ENTITY % authorblurb.module "INCLUDE">
+<![%authorblurb.module;[
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+
+<!ENTITY % authorblurb.element "INCLUDE">
+<![%authorblurb.element;[
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!--end of authorblurb.element-->]]>
+
+<!ENTITY % authorblurb.attlist "INCLUDE">
+<![%authorblurb.attlist;[
+<!ATTLIST authorblurb
+		%common.attrib;
+		%authorblurb.role.attrib;
+		%local.authorblurb.attrib;
+>
+<!--end of authorblurb.attlist-->]]>
+<!--end of authorblurb.module-->]]>
+
+<!ENTITY % blockquote.module "INCLUDE">
+<![%blockquote.module;[
+<!--FUTURE USE (V4.0):
+......................
+Epigraph will be disallowed from appearing in BlockQuote.
+......................
+-->
+
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+
+<!ENTITY % blockquote.element "INCLUDE">
+<![%blockquote.element;[
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!--end of blockquote.element-->]]>
+
+<!ENTITY % blockquote.attlist "INCLUDE">
+<![%blockquote.attlist;[
+<!ATTLIST blockquote
+		%common.attrib;
+		%blockquote.role.attrib;
+		%local.blockquote.attrib;
+>
+<!--end of blockquote.attlist-->]]>
+<!--end of blockquote.module-->]]>
+
+<!ENTITY % attribution.module "INCLUDE">
+<![%attribution.module;[
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+
+<!ENTITY % attribution.element "INCLUDE">
+<![%attribution.element;[
+<!ELEMENT attribution (%para.char.mix;)*>
+<!--end of attribution.element-->]]>
+
+<!ENTITY % attribution.attlist "INCLUDE">
+<![%attribution.attlist;[
+<!ATTLIST attribution
+		%common.attrib;
+		%attribution.role.attrib;
+		%local.attribution.attrib;
+>
+<!--end of attribution.attlist-->]]>
+<!--end of attribution.module-->]]>
+
+<!ENTITY % bridgehead.module "INCLUDE">
+<![%bridgehead.module;[
+<!ENTITY % local.bridgehead.attrib "">
+<!ENTITY % bridgehead.role.attrib "%role.attrib;">
+
+<!ENTITY % bridgehead.element "INCLUDE">
+<![%bridgehead.element;[
+<!ELEMENT bridgehead (%title.char.mix;)*>
+<!--end of bridgehead.element-->]]>
+
+<!-- Renderas: Indicates the format in which the BridgeHead
+		should appear -->
+
+
+<!ENTITY % bridgehead.attlist "INCLUDE">
+<![%bridgehead.attlist;[
+<!ATTLIST bridgehead
+		renderas	(other
+				|sect1
+				|sect2
+				|sect3
+				|sect4
+				|sect5)		#IMPLIED
+		%common.attrib;
+		%bridgehead.role.attrib;
+		%local.bridgehead.attrib;
+>
+<!--end of bridgehead.attlist-->]]>
+<!--end of bridgehead.module-->]]>
+
+<!ENTITY % comment.module "INCLUDE">
+<![%comment.module;[
+<!--FUTURE USE (V4.0):
+......................
+Comment will be renamed to Remark and will be excluded from itself.
+......................
+-->
+<!ENTITY % local.comment.attrib "">
+<!ENTITY % comment.role.attrib "%role.attrib;">
+
+<!ENTITY % comment.element "INCLUDE">
+<![%comment.element;[
+<!ELEMENT comment (%para.char.mix;)*>
+<!--end of comment.element-->]]>
+
+<!ENTITY % comment.attlist "INCLUDE">
+<![%comment.attlist;[
+<!ATTLIST comment
+		%common.attrib;
+		%comment.role.attrib;
+		%local.comment.attrib;
+>
+<!--end of comment.attlist-->]]>
+<!--end of comment.module-->]]>
+
+<!ENTITY % epigraph.module "INCLUDE">
+<![%epigraph.module;[
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+
+<!ENTITY % epigraph.element "INCLUDE">
+<![%epigraph.element;[
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!--end of epigraph.element-->]]>
+
+<!ENTITY % epigraph.attlist "INCLUDE">
+<![%epigraph.attlist;[
+<!ATTLIST epigraph
+		%common.attrib;
+		%epigraph.role.attrib;
+		%local.epigraph.attrib;
+>
+<!--end of epigraph.attlist-->]]>
+<!--ELEMENT Attribution (defined above)-->
+<!--end of epigraph.module-->]]>
+
+<!ENTITY % footnote.module "INCLUDE">
+<![%footnote.module;[
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+
+<!ENTITY % footnote.element "INCLUDE">
+<![%footnote.element;[
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!--end of footnote.element-->]]>
+
+<!ENTITY % footnote.attlist "INCLUDE">
+<![%footnote.attlist;[
+<!ATTLIST footnote
+		%label.attrib;
+		%common.attrib;
+		%footnote.role.attrib;
+		%local.footnote.attrib;
+>
+<!--end of footnote.attlist-->]]>
+<!--end of footnote.module-->]]>
+
+<!ENTITY % highlights.module "INCLUDE">
+<![%highlights.module;[
+<!ENTITY % local.highlights.attrib "">
+<!ENTITY % highlights.role.attrib "%role.attrib;">
+
+<!ENTITY % highlights.element "INCLUDE">
+<![%highlights.element;[
+<!ELEMENT highlights ((%highlights.mix;)+)>
+<!--end of highlights.element-->]]>
+
+<!ENTITY % highlights.attlist "INCLUDE">
+<![%highlights.attlist;[
+<!ATTLIST highlights
+		%common.attrib;
+		%highlights.role.attrib;
+		%local.highlights.attrib;
+>
+<!--end of highlights.attlist-->]]>
+<!--end of highlights.module-->]]>
+
+<!ENTITY % formalpara.module "INCLUDE">
+<![%formalpara.module;[
+<!ENTITY % local.formalpara.attrib "">
+<!ENTITY % formalpara.role.attrib "%role.attrib;">
+
+<!ENTITY % formalpara.element "INCLUDE">
+<![%formalpara.element;[
+<!ELEMENT formalpara (title, (%ndxterm.class;)*, para)>
+<!--end of formalpara.element-->]]>
+
+<!ENTITY % formalpara.attlist "INCLUDE">
+<![%formalpara.attlist;[
+<!ATTLIST formalpara
+		%common.attrib;
+		%formalpara.role.attrib;
+		%local.formalpara.attrib;
+>
+<!--end of formalpara.attlist-->]]>
+<!--end of formalpara.module-->]]>
+
+<!ENTITY % para.module "INCLUDE">
+<![%para.module;[
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+
+<!ENTITY % para.element "INCLUDE">
+<![%para.element;[
+<!ELEMENT para (%para.char.mix; | %para.mix;)*>
+<!--end of para.element-->]]>
+
+<!ENTITY % para.attlist "INCLUDE">
+<![%para.attlist;[
+<!ATTLIST para
+		%common.attrib;
+		%para.role.attrib;
+		%local.para.attrib;
+>
+<!--end of para.attlist-->]]>
+<!--end of para.module-->]]>
+
+<!ENTITY % simpara.module "INCLUDE">
+<![%simpara.module;[
+<!ENTITY % local.simpara.attrib "">
+<!ENTITY % simpara.role.attrib "%role.attrib;">
+
+<!ENTITY % simpara.element "INCLUDE">
+<![%simpara.element;[
+<!ELEMENT simpara (%para.char.mix;)*>
+<!--end of simpara.element-->]]>
+
+<!ENTITY % simpara.attlist "INCLUDE">
+<![%simpara.attlist;[
+<!ATTLIST simpara
+		%common.attrib;
+		%simpara.role.attrib;
+		%local.simpara.attrib;
+>
+<!--end of simpara.attlist-->]]>
+<!--end of simpara.module-->]]>
+
+<!ENTITY % admon.module "INCLUDE">
+<![%admon.module;[
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+
+
+<!ENTITY % caution.element "INCLUDE">
+<![%caution.element;[
+<!ELEMENT caution (title?, (%admon.mix;)+)>
+<!--end of caution.element-->]]>
+
+<!ENTITY % caution.attlist "INCLUDE">
+<![%caution.attlist;[
+<!ATTLIST caution
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of caution.attlist-->]]>
+
+
+<!ENTITY % important.element "INCLUDE">
+<![%important.element;[
+<!ELEMENT important (title?, (%admon.mix;)+)>
+<!--end of important.element-->]]>
+
+<!ENTITY % important.attlist "INCLUDE">
+<![%important.attlist;[
+<!ATTLIST important
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of important.attlist-->]]>
+
+
+<!ENTITY % note.element "INCLUDE">
+<![%note.element;[
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!--end of note.element-->]]>
+
+<!ENTITY % note.attlist "INCLUDE">
+<![%note.attlist;[
+<!ATTLIST note
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of note.attlist-->]]>
+
+
+<!ENTITY % tip.element "INCLUDE">
+<![%tip.element;[
+<!ELEMENT tip (title?, (%admon.mix;)+)>
+<!--end of tip.element-->]]>
+
+<!ENTITY % tip.attlist "INCLUDE">
+<![%tip.attlist;[
+<!ATTLIST tip
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of tip.attlist-->]]>
+
+
+<!ENTITY % warning.element "INCLUDE">
+<![%warning.element;[
+<!ELEMENT warning (title?, (%admon.mix;)+)>
+<!--end of warning.element-->]]>
+
+<!ENTITY % warning.attlist "INCLUDE">
+<![%warning.attlist;[
+<!ATTLIST warning
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of warning.attlist-->]]>
+
+<!--end of admon.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Lists ................................................................ -->
+
+<!-- GlossList ........................ -->
+
+<!ENTITY % glosslist.module "INCLUDE">
+<![%glosslist.module;[
+<!ENTITY % local.glosslist.attrib "">
+<!ENTITY % glosslist.role.attrib "%role.attrib;">
+
+<!ENTITY % glosslist.element "INCLUDE">
+<![%glosslist.element;[
+<!ELEMENT glosslist (glossentry+)>
+<!--end of glosslist.element-->]]>
+
+<!ENTITY % glosslist.attlist "INCLUDE">
+<![%glosslist.attlist;[
+<!ATTLIST glosslist
+		%common.attrib;
+		%glosslist.role.attrib;
+		%local.glosslist.attrib;
+>
+<!--end of glosslist.attlist-->]]>
+<!--end of glosslist.module-->]]>
+
+<!ENTITY % glossentry.content.module "INCLUDE">
+<![%glossentry.content.module;[
+<!ENTITY % glossentry.module "INCLUDE">
+<![%glossentry.module;[
+<!ENTITY % local.glossentry.attrib "">
+<!ENTITY % glossentry.role.attrib "%role.attrib;">
+
+<!ENTITY % glossentry.element "INCLUDE">
+<![%glossentry.element;[
+<!ELEMENT glossentry (glossterm, acronym?, abbrev?,
+                      (%ndxterm.class;)*,
+                      revhistory?, (glosssee|glossdef+))>
+<!--end of glossentry.element-->]]>
+
+<!-- SortAs: String by which the GlossEntry is to be sorted
+		(alphabetized) in lieu of its proper content -->
+
+
+<!ENTITY % glossentry.attlist "INCLUDE">
+<![%glossentry.attlist;[
+<!ATTLIST glossentry
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%glossentry.role.attrib;
+		%local.glossentry.attrib;
+>
+<!--end of glossentry.attlist-->]]>
+<!--end of glossentry.module-->]]>
+
+<!--FUTURE USE (V4.0):
+......................
+GlossTerm will be excluded from itself.  Also, GlossTerm *may* be split
+into an element that appears in a Glossary and an element that can
+appear in the main text.
+......................
+-->
+<!--ELEMENT GlossTerm (defined in the Inlines section, below)-->
+<!ENTITY % glossdef.module "INCLUDE">
+<![%glossdef.module;[
+<!ENTITY % local.glossdef.attrib "">
+<!ENTITY % glossdef.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdef.element "INCLUDE">
+<![%glossdef.element;[
+<!ELEMENT glossdef ((%glossdef.mix;)+, glossseealso*)>
+<!--end of glossdef.element-->]]>
+<!--FUTURE USE (V4.0):
+......................
+The Subject attribute will be renamed Keyword.
+......................
+-->
+
+<!-- Subject: List of subjects; keywords for the definition -->
+
+
+<!ENTITY % glossdef.attlist "INCLUDE">
+<![%glossdef.attlist;[
+<!ATTLIST glossdef
+		subject		CDATA		#IMPLIED
+		%common.attrib;
+		%glossdef.role.attrib;
+		%local.glossdef.attrib;
+>
+<!--end of glossdef.attlist-->]]>
+<!--end of glossdef.module-->]]>
+
+<!ENTITY % glosssee.module "INCLUDE">
+<![%glosssee.module;[
+<!ENTITY % local.glosssee.attrib "">
+<!ENTITY % glosssee.role.attrib "%role.attrib;">
+
+<!ENTITY % glosssee.element "INCLUDE">
+<![%glosssee.element;[
+<!ELEMENT glosssee (%para.char.mix;)*>
+<!--end of glosssee.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+		should be displayed at the point of the GlossSee -->
+
+
+<!ENTITY % glosssee.attlist "INCLUDE">
+<![%glosssee.attlist;[
+<!ATTLIST glosssee
+		otherterm	IDREF		#IMPLIED
+		%common.attrib;
+		%glosssee.role.attrib;
+		%local.glosssee.attrib;
+>
+<!--end of glosssee.attlist-->]]>
+<!--end of glosssee.module-->]]>
+
+<!ENTITY % glossseealso.module "INCLUDE">
+<![%glossseealso.module;[
+<!ENTITY % local.glossseealso.attrib "">
+<!ENTITY % glossseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % glossseealso.element "INCLUDE">
+<![%glossseealso.element;[
+<!ELEMENT glossseealso (%para.char.mix;)*>
+<!--end of glossseealso.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+		should be displayed at the point of the GlossSeeAlso -->
+
+
+<!ENTITY % glossseealso.attlist "INCLUDE">
+<![%glossseealso.attlist;[
+<!ATTLIST glossseealso
+		otherterm	IDREF		#IMPLIED
+		%common.attrib;
+		%glossseealso.role.attrib;
+		%local.glossseealso.attrib;
+>
+<!--end of glossseealso.attlist-->]]>
+<!--end of glossseealso.module-->]]>
+<!--end of glossentry.content.module-->]]>
+
+<!-- ItemizedList and OrderedList ..... -->
+
+<!ENTITY % itemizedlist.module "INCLUDE">
+<![%itemizedlist.module;[
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % itemizedlist.element "INCLUDE">
+<![%itemizedlist.element;[
+<!ELEMENT itemizedlist (listitem+)>
+<!--end of itemizedlist.element-->]]>
+
+<!-- Spacing: Whether the vertical space in the list should be
+		compressed -->
+<!-- Mark: Keyword, e.g., bullet, dash, checkbox, none;
+		list of keywords and defaults are implementation specific -->
+
+
+<!ENTITY % itemizedlist.attlist "INCLUDE">
+<![%itemizedlist.attlist;[
+<!ATTLIST itemizedlist		spacing		(normal
+				|compact)	#IMPLIED
+		%mark.attrib;
+		%common.attrib;
+		%itemizedlist.role.attrib;
+		%local.itemizedlist.attrib;
+>
+<!--end of itemizedlist.attlist-->]]>
+<!--end of itemizedlist.module-->]]>
+
+<!ENTITY % orderedlist.module "INCLUDE">
+<![%orderedlist.module;[
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % orderedlist.element "INCLUDE">
+<![%orderedlist.element;[
+<!ELEMENT orderedlist (listitem+)>
+<!--end of orderedlist.element-->]]>
+
+<!-- Numeration: Style of ListItem numbered; default is expected
+		to be Arabic -->
+<!-- InheritNum: Specifies for a nested list that the numbering
+		of ListItems should include the number of the item
+		within which they are nested (e.g., 1a and 1b within 1,
+		rather than a and b) -->
+<!-- Continuation: Where list numbering begins afresh (Restarts,
+		the default) or continues that of the immediately preceding 
+		list (Continues) -->
+<!-- Spacing: Whether the vertical space in the list should be
+		compressed -->
+
+
+<!ENTITY % orderedlist.attlist "INCLUDE">
+<![%orderedlist.attlist;[
+<!ATTLIST orderedlist
+		numeration	(arabic
+				|upperalpha
+				|loweralpha
+				|upperroman
+				|lowerroman)	#IMPLIED
+		inheritnum	(inherit
+				|ignore)	"ignore"
+		continuation	(continues
+				|restarts)	"restarts"
+		spacing		(normal
+				|compact)	#IMPLIED
+		%common.attrib;
+		%orderedlist.role.attrib;
+		%local.orderedlist.attrib;
+>
+<!--end of orderedlist.attlist-->]]>
+<!--end of orderedlist.module-->]]>
+
+<!ENTITY % listitem.module "INCLUDE">
+<![%listitem.module;[
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+
+<!ENTITY % listitem.element "INCLUDE">
+<![%listitem.element;[
+<!ELEMENT listitem ((%component.mix;)+)>
+<!--end of listitem.element-->]]>
+
+<!-- Override: Indicates the mark to be used for this ListItem
+		instead of the default mark or the mark specified by
+		the Mark attribute on the enclosing ItemizedList -->
+
+
+<!ENTITY % listitem.attlist "INCLUDE">
+<![%listitem.attlist;[
+<!ATTLIST listitem
+		override	CDATA		#IMPLIED
+		%common.attrib;
+		%listitem.role.attrib;
+		%local.listitem.attrib;
+>
+<!--end of listitem.attlist-->]]>
+<!--end of listitem.module-->]]>
+
+<!-- SegmentedList .................... -->
+<!ENTITY % segmentedlist.content.module "INCLUDE">
+<![%segmentedlist.content.module;[
+<!--FUTURE USE (V4.0):
+......................
+Two SegTitles will be required.
+......................
+-->
+<!ENTITY % segmentedlist.module "INCLUDE">
+<![%segmentedlist.module;[
+<!ENTITY % local.segmentedlist.attrib "">
+<!ENTITY % segmentedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % segmentedlist.element "INCLUDE">
+<![%segmentedlist.element;[
+<!ELEMENT segmentedlist ((%formalobject.title.content;)?, segtitle*,
+		seglistitem+)>
+<!--end of segmentedlist.element-->]]>
+
+<!ENTITY % segmentedlist.attlist "INCLUDE">
+<![%segmentedlist.attlist;[
+<!ATTLIST segmentedlist
+		%common.attrib;
+		%segmentedlist.role.attrib;
+		%local.segmentedlist.attrib;
+>
+<!--end of segmentedlist.attlist-->]]>
+<!--end of segmentedlist.module-->]]>
+
+<!ENTITY % segtitle.module "INCLUDE">
+<![%segtitle.module;[
+<!ENTITY % local.segtitle.attrib "">
+<!ENTITY % segtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % segtitle.element "INCLUDE">
+<![%segtitle.element;[
+<!ELEMENT segtitle (%title.char.mix;)*>
+<!--end of segtitle.element-->]]>
+
+<!ENTITY % segtitle.attlist "INCLUDE">
+<![%segtitle.attlist;[
+<!ATTLIST segtitle
+		%common.attrib;
+		%segtitle.role.attrib;
+		%local.segtitle.attrib;
+>
+<!--end of segtitle.attlist-->]]>
+<!--end of segtitle.module-->]]>
+
+<!ENTITY % seglistitem.module "INCLUDE">
+<![%seglistitem.module;[
+<!ENTITY % local.seglistitem.attrib "">
+<!ENTITY % seglistitem.role.attrib "%role.attrib;">
+
+<!ENTITY % seglistitem.element "INCLUDE">
+<![%seglistitem.element;[
+<!ELEMENT seglistitem (seg, seg+)>
+<!--end of seglistitem.element-->]]>
+
+<!ENTITY % seglistitem.attlist "INCLUDE">
+<![%seglistitem.attlist;[
+<!ATTLIST seglistitem
+		%common.attrib;
+		%seglistitem.role.attrib;
+		%local.seglistitem.attrib;
+>
+<!--end of seglistitem.attlist-->]]>
+<!--end of seglistitem.module-->]]>
+
+<!ENTITY % seg.module "INCLUDE">
+<![%seg.module;[
+<!ENTITY % local.seg.attrib "">
+<!ENTITY % seg.role.attrib "%role.attrib;">
+
+<!ENTITY % seg.element "INCLUDE">
+<![%seg.element;[
+<!ELEMENT seg (%para.char.mix;)*>
+<!--end of seg.element-->]]>
+
+<!ENTITY % seg.attlist "INCLUDE">
+<![%seg.attlist;[
+<!ATTLIST seg
+		%common.attrib;
+		%seg.role.attrib;
+		%local.seg.attrib;
+>
+<!--end of seg.attlist-->]]>
+<!--end of seg.module-->]]>
+<!--end of segmentedlist.content.module-->]]>
+
+<!-- SimpleList ....................... -->
+
+<!ENTITY % simplelist.content.module "INCLUDE">
+<![%simplelist.content.module;[
+<!ENTITY % simplelist.module "INCLUDE">
+<![%simplelist.module;[
+<!ENTITY % local.simplelist.attrib "">
+<!ENTITY % simplelist.role.attrib "%role.attrib;">
+
+<!ENTITY % simplelist.element "INCLUDE">
+<![%simplelist.element;[
+<!ELEMENT simplelist (member+)>
+<!--end of simplelist.element-->]]>
+
+<!-- Columns: The number of columns the array should contain -->
+<!-- Type: How the Members of the SimpleList should be
+		formatted: Inline (members separated with commas etc.
+		inline), Vert (top to bottom in n Columns), or Horiz (in
+		the direction of text flow) in n Columns.  If Column
+		is 1 or implied, Type=Vert and Type=Horiz give the same
+		results. -->
+
+
+<!ENTITY % simplelist.attlist "INCLUDE">
+<![%simplelist.attlist;[
+<!ATTLIST simplelist
+		columns		CDATA		#IMPLIED
+		type		(inline
+				|vert
+				|horiz)		"vert"
+		%common.attrib;
+		%simplelist.role.attrib;
+		%local.simplelist.attrib;
+>
+<!--end of simplelist.attlist-->]]>
+<!--end of simplelist.module-->]]>
+
+<!ENTITY % member.module "INCLUDE">
+<![%member.module;[
+<!ENTITY % local.member.attrib "">
+<!ENTITY % member.role.attrib "%role.attrib;">
+
+<!ENTITY % member.element "INCLUDE">
+<![%member.element;[
+<!ELEMENT member (%para.char.mix;)*>
+<!--end of member.element-->]]>
+
+<!ENTITY % member.attlist "INCLUDE">
+<![%member.attlist;[
+<!ATTLIST member
+		%common.attrib;
+		%member.role.attrib;
+		%local.member.attrib;
+>
+<!--end of member.attlist-->]]>
+<!--end of member.module-->]]>
+<!--end of simplelist.content.module-->]]>
+
+<!-- VariableList ..................... -->
+
+<!ENTITY % variablelist.content.module "INCLUDE">
+<![%variablelist.content.module;[
+<!ENTITY % variablelist.module "INCLUDE">
+<![%variablelist.module;[
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+
+<!ENTITY % variablelist.element "INCLUDE">
+<![%variablelist.element;[
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!--end of variablelist.element-->]]>
+
+<!-- TermLength: Length beyond which the presentation engine
+		may consider the Term too long and select an alternate
+		presentation of the Term and, or, its associated ListItem. -->
+
+
+<!ENTITY % variablelist.attlist "INCLUDE">
+<![%variablelist.attlist;[
+<!ATTLIST variablelist
+		termlength	CDATA		#IMPLIED
+		%common.attrib;
+		%variablelist.role.attrib;
+		%local.variablelist.attrib;
+>
+<!--end of variablelist.attlist-->]]>
+<!--end of variablelist.module-->]]>
+
+<!ENTITY % varlistentry.module "INCLUDE">
+<![%varlistentry.module;[
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+
+<!ENTITY % varlistentry.element "INCLUDE">
+<![%varlistentry.element;[
+<!ELEMENT varlistentry (term+, listitem)>
+<!--end of varlistentry.element-->]]>
+
+<!ENTITY % varlistentry.attlist "INCLUDE">
+<![%varlistentry.attlist;[
+<!ATTLIST varlistentry
+		%common.attrib;
+		%varlistentry.role.attrib;
+		%local.varlistentry.attrib;
+>
+<!--end of varlistentry.attlist-->]]>
+<!--end of varlistentry.module-->]]>
+
+<!ENTITY % term.module "INCLUDE">
+<![%term.module;[
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+
+<!ENTITY % term.element "INCLUDE">
+<![%term.element;[
+<!ELEMENT term (%para.char.mix;)*>
+<!--end of term.element-->]]>
+
+<!ENTITY % term.attlist "INCLUDE">
+<![%term.attlist;[
+<!ATTLIST term
+		%common.attrib;
+		%term.role.attrib;
+		%local.term.attrib;
+>
+<!--end of term.attlist-->]]>
+<!--end of term.module-->]]>
+
+<!--ELEMENT ListItem (defined above)-->
+<!--end of variablelist.content.module-->]]>
+
+<!-- CalloutList ...................... -->
+
+<!ENTITY % calloutlist.content.module "INCLUDE">
+<![%calloutlist.content.module;[
+<!ENTITY % calloutlist.module "INCLUDE">
+<![%calloutlist.module;[
+<!ENTITY % local.calloutlist.attrib "">
+<!ENTITY % calloutlist.role.attrib "%role.attrib;">
+
+<!ENTITY % calloutlist.element "INCLUDE">
+<![%calloutlist.element;[
+<!ELEMENT calloutlist ((%formalobject.title.content;)?, callout+)>
+<!--end of calloutlist.element-->]]>
+
+<!ENTITY % calloutlist.attlist "INCLUDE">
+<![%calloutlist.attlist;[
+<!ATTLIST calloutlist
+		%common.attrib;
+		%calloutlist.role.attrib;
+		%local.calloutlist.attrib;
+>
+<!--end of calloutlist.attlist-->]]>
+<!--end of calloutlist.module-->]]>
+
+<!ENTITY % callout.module "INCLUDE">
+<![%callout.module;[
+<!ENTITY % local.callout.attrib "">
+<!ENTITY % callout.role.attrib "%role.attrib;">
+
+<!ENTITY % callout.element "INCLUDE">
+<![%callout.element;[
+<!ELEMENT callout ((%component.mix;)+)>
+<!--end of callout.element-->]]>
+
+<!-- AreaRefs: IDs of one or more Areas or AreaSets described
+		by this Callout -->
+
+
+<!ENTITY % callout.attlist "INCLUDE">
+<![%callout.attlist;[
+<!ATTLIST callout
+		arearefs	IDREFS		#REQUIRED
+		%common.attrib;
+		%callout.role.attrib;
+		%local.callout.attrib;
+>
+<!--end of callout.attlist-->]]>
+<!--end of callout.module-->]]>
+<!--end of calloutlist.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Objects .............................................................. -->
+
+<!-- Examples etc. .................... -->
+
+<!ENTITY % example.module "INCLUDE">
+<![%example.module;[
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+
+<!ENTITY % example.element "INCLUDE">
+<![%example.element;[
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!--end of example.element-->]]>
+
+<!ENTITY % example.attlist "INCLUDE">
+<![%example.attlist;[
+<!ATTLIST example
+		%label.attrib;
+		%width.attrib;
+		%common.attrib;
+		%example.role.attrib;
+		%local.example.attrib;
+>
+<!--end of example.attlist-->]]>
+<!--end of example.module-->]]>
+
+<!ENTITY % informalexample.module "INCLUDE">
+<![%informalexample.module;[
+<!ENTITY % local.informalexample.attrib "">
+<!ENTITY % informalexample.role.attrib "%role.attrib;">
+
+<!ENTITY % informalexample.element "INCLUDE">
+<![%informalexample.element;[
+<!ELEMENT informalexample ((%example.mix;)+)>
+<!--end of informalexample.element-->]]>
+
+<!ENTITY % informalexample.attlist "INCLUDE">
+<![%informalexample.attlist;[
+<!ATTLIST informalexample
+		%width.attrib;
+		%common.attrib;
+		%informalexample.role.attrib;
+		%local.informalexample.attrib;
+>
+<!--end of informalexample.attlist-->]]>
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % programlistingco.module "INCLUDE">
+<![%programlistingco.module;[
+<!ENTITY % local.programlistingco.attrib "">
+<!ENTITY % programlistingco.role.attrib "%role.attrib;">
+
+<!ENTITY % programlistingco.element "INCLUDE">
+<![%programlistingco.element;[
+<!ELEMENT programlistingco (areaspec, programlisting, calloutlist*)>
+<!--end of programlistingco.element-->]]>
+
+<!ENTITY % programlistingco.attlist "INCLUDE">
+<![%programlistingco.attlist;[
+<!ATTLIST programlistingco
+		%common.attrib;
+		%programlistingco.role.attrib;
+		%local.programlistingco.attrib;
+>
+<!--end of programlistingco.attlist-->]]>
+<!--ELEMENT CalloutList (defined above in Lists)-->
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % areaspec.content.module "INCLUDE">
+<![%areaspec.content.module;[
+<!ENTITY % areaspec.module "INCLUDE">
+<![%areaspec.module;[
+<!ENTITY % local.areaspec.attrib "">
+<!ENTITY % areaspec.role.attrib "%role.attrib;">
+
+<!ENTITY % areaspec.element "INCLUDE">
+<![%areaspec.element;[
+<!ELEMENT areaspec ((area|areaset)+)>
+<!--end of areaspec.element-->]]>
+
+<!-- Units: global unit of measure in which coordinates in
+		this spec are expressed:
+
+		- CALSPair "x1,y1 x2,y2": lower-left and upper-right 
+		coordinates in a rectangle describing repro area in which 
+		graphic is placed, where X and Y dimensions are each some 
+		number 0..10000 (taken from CALS graphic attributes)
+
+		- LineColumn "line column": line number and column number
+		at which to start callout text in "linespecific" content
+
+		- LineRange "startline endline": whole lines from startline
+		to endline in "linespecific" content
+
+		- LineColumnPair "line1 col1 line2 col2": starting and ending
+		points of area in "linespecific" content that starts at
+		first position and ends at second position (including the
+		beginnings of any intervening lines)
+
+		- Other: directive to look at value of OtherUnits attribute
+		to get implementation-specific keyword
+
+		The default is implementation-specific; usually dependent on 
+		the parent element (GraphicCO gets CALSPair, ProgramListingCO
+		and ScreenCO get LineColumn) -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % areaspec.attlist "INCLUDE">
+<![%areaspec.attlist;[
+<!ATTLIST areaspec
+		units		(calspair
+				|linecolumn
+				|linerange
+				|linecolumnpair
+				|other)		#IMPLIED
+		otherunits	NMTOKEN		#IMPLIED
+		%common.attrib;
+		%areaspec.role.attrib;
+		%local.areaspec.attrib;
+>
+<!--end of areaspec.attlist-->]]>
+<!--end of areaspec.module-->]]>
+
+<!ENTITY % area.module "INCLUDE">
+<![%area.module;[
+<!ENTITY % local.area.attrib "">
+<!ENTITY % area.role.attrib "%role.attrib;">
+
+<!ENTITY % area.element "INCLUDE">
+<![%area.element;[
+<!ELEMENT area EMPTY>
+<!--end of area.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+<!-- Units: unit of measure in which coordinates in this
+		area are expressed; inherits from AreaSet and AreaSpec -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % area.attlist "INCLUDE">
+<![%area.attlist;[
+<!ATTLIST area
+		%label.attrib;		
+		%linkends.attrib;
+		units		(calspair
+				|linecolumn
+				|linerange
+				|linecolumnpair
+				|other)		#IMPLIED
+		otherunits	NMTOKEN		#IMPLIED
+		coords		CDATA		#REQUIRED
+		%idreq.common.attrib;
+		%area.role.attrib;
+		%local.area.attrib;
+>
+<!--end of area.attlist-->]]>
+<!--end of area.module-->]]>
+
+<!ENTITY % areaset.module "INCLUDE">
+<![%areaset.module;[
+<!ENTITY % local.areaset.attrib "">
+<!ENTITY % areaset.role.attrib "%role.attrib;">
+
+<!ENTITY % areaset.element "INCLUDE">
+<![%areaset.element;[
+<!ELEMENT areaset (area+)>
+<!--end of areaset.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- Units: unit of measure in which coordinates in this
+		area are expressed; inherits from AreaSpec -->
+
+
+<!ENTITY % areaset.attlist "INCLUDE">
+<![%areaset.attlist;[
+<!ATTLIST areaset
+		%label.attrib;
+		units		(calspair
+				|linecolumn
+				|linerange
+				|linecolumnpair
+				|other)		#IMPLIED
+		otherunits	NMTOKEN		#IMPLIED
+		coords		CDATA		#REQUIRED
+		%idreq.common.attrib;
+		%areaset.role.attrib;
+		%local.areaset.attrib;
+>
+<!--end of areaset.attlist-->]]>
+<!--end of areaset.module-->]]>
+<!--end of areaspec.content.module-->]]>
+
+<!ENTITY % programlisting.module "INCLUDE">
+<![%programlisting.module;[
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+
+<!ENTITY % programlisting.element "INCLUDE">
+<![%programlisting.element;[
+<!ELEMENT programlisting (%programlisting.content;)*>
+<!--end of programlisting.element-->]]>
+
+<!ENTITY % programlisting.attlist "INCLUDE">
+<![%programlisting.attlist;[
+<!ATTLIST programlisting
+		%width.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%programlisting.role.attrib;
+		%local.programlisting.attrib;
+>
+<!--end of programlisting.attlist-->]]>
+<!--end of programlisting.module-->]]>
+
+<!ENTITY % literallayout.module "INCLUDE">
+<![%literallayout.module;[
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+
+<!ENTITY % literallayout.element "INCLUDE">
+<![%literallayout.element;[
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>
+<!--end of literallayout.element-->]]>
+
+<!ENTITY % literallayout.attlist "INCLUDE">
+<![%literallayout.attlist;[
+<!ATTLIST literallayout
+		%width.attrib;
+		%linespecific.attrib;
+		class	(monospaced|normal)	"normal"
+		%common.attrib;
+		%literallayout.role.attrib;
+		%local.literallayout.attrib;
+>
+<!--end of literallayout.attlist-->]]>
+<!--ELEMENT LineAnnotation (defined in the Inlines section, below)-->
+<!--end of literallayout.module-->]]>
+
+<!ENTITY % screenco.module "INCLUDE">
+<![%screenco.module;[
+<!ENTITY % local.screenco.attrib "">
+<!ENTITY % screenco.role.attrib "%role.attrib;">
+
+<!ENTITY % screenco.element "INCLUDE">
+<![%screenco.element;[
+<!ELEMENT screenco (areaspec, screen, calloutlist*)>
+<!--end of screenco.element-->]]>
+
+<!ENTITY % screenco.attlist "INCLUDE">
+<![%screenco.attlist;[
+<!ATTLIST screenco
+		%common.attrib;
+		%screenco.role.attrib;
+		%local.screenco.attrib;
+>
+<!--end of screenco.attlist-->]]>
+<!--ELEMENT AreaSpec (defined above)-->
+<!--ELEMENT CalloutList (defined above in Lists)-->
+<!--end of screenco.module-->]]>
+
+<!ENTITY % screen.module "INCLUDE">
+<![%screen.module;[
+<!ENTITY % local.screen.attrib "">
+<!ENTITY % screen.role.attrib "%role.attrib;">
+
+<!ENTITY % screen.element "INCLUDE">
+<![%screen.element;[
+<!ELEMENT screen (%screen.content;)*>
+<!--end of screen.element-->]]>
+
+<!ENTITY % screen.attlist "INCLUDE">
+<![%screen.attlist;[
+<!ATTLIST screen
+		%width.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%screen.role.attrib;
+		%local.screen.attrib;
+>
+<!--end of screen.attlist-->]]>
+<!--end of screen.module-->]]>
+
+<!ENTITY % screenshot.content.module "INCLUDE">
+<![%screenshot.content.module;[
+<!ENTITY % screenshot.module "INCLUDE">
+<![%screenshot.module;[
+<!ENTITY % local.screenshot.attrib "">
+<!ENTITY % screenshot.role.attrib "%role.attrib;">
+
+<!ENTITY % screenshot.element "INCLUDE">
+<![%screenshot.element;[
+<!ELEMENT screenshot (screeninfo?,
+                      (graphic|graphicco
+                      |mediaobject|mediaobjectco))>
+<!--end of screenshot.element-->]]>
+
+<!ENTITY % screenshot.attlist "INCLUDE">
+<![%screenshot.attlist;[
+<!ATTLIST screenshot
+		%common.attrib;
+		%screenshot.role.attrib;
+		%local.screenshot.attrib;
+>
+<!--end of screenshot.attlist-->]]>
+<!--end of screenshot.module-->]]>
+
+<!ENTITY % screeninfo.module "INCLUDE">
+<![%screeninfo.module;[
+<!ENTITY % local.screeninfo.attrib "">
+<!ENTITY % screeninfo.role.attrib "%role.attrib;">
+
+<!ENTITY % screeninfo.element "INCLUDE">
+<![%screeninfo.element;[
+<!ELEMENT screeninfo (%para.char.mix;)*>
+<!--end of screeninfo.element-->]]>
+
+<!ENTITY % screeninfo.attlist "INCLUDE">
+<![%screeninfo.attlist;[
+<!ATTLIST screeninfo
+		%common.attrib;
+		%screeninfo.role.attrib;
+		%local.screeninfo.attrib;
+>
+<!--end of screeninfo.attlist-->]]>
+<!--end of screeninfo.module-->]]>
+<!--end of screenshot.content.module-->]]>
+
+<!-- Figures etc. ..................... -->
+
+<!ENTITY % figure.module "INCLUDE">
+<![%figure.module;[
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+
+<!ENTITY % figure.element "INCLUDE">
+<![%figure.element;[
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+		%link.char.class;)+)>
+<!--end of figure.element-->]]>
+
+<!-- Float: Whether the Figure is supposed to be rendered
+		where convenient (yes (1) value) or at the place it occurs
+		in the text (no (0) value, the default) -->
+
+
+<!ENTITY % figure.attlist "INCLUDE">
+<![%figure.attlist;[
+<!ATTLIST figure
+		float		%yesorno.attvals;	'0'
+		pgwide      	%yesorno.attvals;       #IMPLIED
+		%label.attrib;
+		%common.attrib;
+		%figure.role.attrib;
+		%local.figure.attrib;
+>
+<!--end of figure.attlist-->]]>
+<!--end of figure.module-->]]>
+
+<!ENTITY % informalfigure.module "INCLUDE">
+<![ %informalfigure.module; [
+<!ENTITY % local.informalfigure.attrib "">
+<!ENTITY % informalfigure.role.attrib "%role.attrib;">
+
+<!ENTITY % informalfigure.element "INCLUDE">
+<![ %informalfigure.element; [
+<!ELEMENT informalfigure ((%figure.mix; | %link.char.class;)+)>
+<!--end of informalfigure.element-->]]>
+
+<!ENTITY % informalfigure.attlist "INCLUDE">
+<![ %informalfigure.attlist; [
+<!--
+Float: Whether the Figure is supposed to be rendered
+where convenient (yes (1) value) or at the place it occurs
+in the text (no (0) value, the default)
+-->
+<!ATTLIST informalfigure
+		float		%yesorno.attvals;	"0"
+		pgwide      	%yesorno.attvals;       #IMPLIED
+		%label.attrib;
+		%common.attrib;
+		%informalfigure.role.attrib;
+		%local.informalfigure.attrib;
+>
+<!--end of informalfigure.attlist-->]]>
+<!--end of informalfigure.module-->]]>
+
+<!ENTITY % graphicco.module "INCLUDE">
+<![%graphicco.module;[
+<!ENTITY % local.graphicco.attrib "">
+<!ENTITY % graphicco.role.attrib "%role.attrib;">
+
+<!ENTITY % graphicco.element "INCLUDE">
+<![%graphicco.element;[
+<!ELEMENT graphicco (areaspec, graphic, calloutlist*)>
+<!--end of graphicco.element-->]]>
+
+<!ENTITY % graphicco.attlist "INCLUDE">
+<![%graphicco.attlist;[
+<!ATTLIST graphicco
+		%common.attrib;
+		%graphicco.role.attrib;
+		%local.graphicco.attrib;
+>
+<!--end of graphicco.attlist-->]]>
+<!--ELEMENT AreaSpec (defined above in Examples)-->
+<!--ELEMENT CalloutList (defined above in Lists)-->
+<!--end of graphicco.module-->]]>
+
+<!-- Graphical data can be the content of Graphic, or you can reference
+     an external file either as an entity (Entitref) or a filename
+     (Fileref). -->
+
+<!ENTITY % graphic.module "INCLUDE">
+<![%graphic.module;[
+<!--FUTURE USE (V4.0):
+......................
+Graphic will be declared EMPTY.  This change will require that end-tags
+be removed and that any embedded graphic content be stored outside the
+SGML source and pointed to from an Entityref or Fileref attribute.
+......................
+-->
+<!ENTITY % local.graphic.attrib "">
+<!ENTITY % graphic.role.attrib "%role.attrib;">
+
+<!ENTITY % graphic.element "INCLUDE">
+<![%graphic.element;[
+<!ELEMENT graphic EMPTY>
+<!--end of graphic.element-->]]>
+
+<!ENTITY % graphic.attlist "INCLUDE">
+<![%graphic.attlist;[
+<!ATTLIST graphic
+		%graphics.attrib;
+		%common.attrib;
+		%graphic.role.attrib;
+		%local.graphic.attrib;
+>
+<!--end of graphic.attlist-->]]>
+<!--end of graphic.module-->]]>
+
+<!ENTITY % inlinegraphic.module "INCLUDE">
+<![%inlinegraphic.module;[
+<!--FUTURE USE (V4.0):
+......................
+InlineGraphic will be declared EMPTY.  This change will require that
+end-tags be removed and that any embedded graphic content be stored
+outside the SGML source and pointed to from an Entityref or Fileref
+attribute.
+......................
+-->
+<!ENTITY % local.inlinegraphic.attrib "">
+<!ENTITY % inlinegraphic.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinegraphic.element "INCLUDE">
+<![%inlinegraphic.element;[
+<!ELEMENT inlinegraphic EMPTY>
+<!--end of inlinegraphic.element-->]]>
+
+<!ENTITY % inlinegraphic.attlist "INCLUDE">
+<![%inlinegraphic.attlist;[
+<!ATTLIST inlinegraphic
+		%graphics.attrib;
+		%common.attrib;
+		%inlinegraphic.role.attrib;
+		%local.inlinegraphic.attrib;
+>
+<!--end of inlinegraphic.attlist-->]]>
+<!--end of inlinegraphic.module-->]]>
+
+<!ENTITY % mediaobject.content.module "INCLUDE">
+<![ %mediaobject.content.module; [
+
+<!ENTITY % mediaobject.module "INCLUDE">
+<![ %mediaobject.module; [
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobject.element "INCLUDE">
+<![ %mediaobject.element; [
+<!ELEMENT mediaobject (objectinfo?,
+                           (%mediaobject.mix;),
+			   (%mediaobject.mix;|textobject)*,
+			   caption?)>
+<!--end of mediaobject.element-->]]>
+
+<!ENTITY % mediaobject.attlist "INCLUDE">
+<![ %mediaobject.attlist; [
+<!ATTLIST mediaobject
+		%common.attrib;
+		%mediaobject.role.attrib;
+		%local.mediaobject.attrib;
+>
+<!--end of mediaobject.attlist-->]]>
+<!--end of mediaobject.module-->]]>
+
+<!ENTITY % inlinemediaobject.module "INCLUDE">
+<![ %inlinemediaobject.module; [
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinemediaobject.element "INCLUDE">
+<![ %inlinemediaobject.element; [
+<!ELEMENT inlinemediaobject (objectinfo?,
+                	         (%mediaobject.mix;),
+				 (%mediaobject.mix;|textobject)*)>
+<!--end of inlinemediaobject.element-->]]>
+
+<!ENTITY % inlinemediaobject.attlist "INCLUDE">
+<![ %inlinemediaobject.attlist; [
+<!ATTLIST inlinemediaobject
+		%common.attrib;
+		%inlinemediaobject.role.attrib;
+		%local.inlinemediaobject.attrib;
+>
+<!--end of inlinemediaobject.attlist-->]]>
+<!--end of inlinemediaobject.module-->]]>
+
+<!ENTITY % videoobject.module "INCLUDE">
+<![ %videoobject.module; [
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+
+<!ENTITY % videoobject.element "INCLUDE">
+<![ %videoobject.element; [
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!--end of videoobject.element-->]]>
+
+<!ENTITY % videoobject.attlist "INCLUDE">
+<![ %videoobject.attlist; [
+<!ATTLIST videoobject
+		%common.attrib;
+		%videoobject.role.attrib;
+		%local.videoobject.attrib;
+>
+<!--end of videoobject.attlist-->]]>
+<!--end of videoobject.module-->]]>
+
+<!ENTITY % audioobject.module "INCLUDE">
+<![ %audioobject.module; [
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+
+<!ENTITY % audioobject.element "INCLUDE">
+<![ %audioobject.element; [
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!--end of audioobject.element-->]]>
+
+<!ENTITY % audioobject.attlist "INCLUDE">
+<![ %audioobject.attlist; [
+<!ATTLIST audioobject
+		%common.attrib;
+		%audioobject.role.attrib;
+		%local.audioobject.attrib;
+>
+<!--end of audioobject.attlist-->]]>
+<!--end of audioobject.module-->]]>
+
+<!ENTITY % imageobject.module "INCLUDE">
+<![ %imageobject.module; [
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobject.element "INCLUDE">
+<![ %imageobject.element; [
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!--end of imageobject.element-->]]>
+
+<!ENTITY % imageobject.attlist "INCLUDE">
+<![ %imageobject.attlist; [
+<!ATTLIST imageobject
+		%common.attrib;
+		%imageobject.role.attrib;
+		%local.imageobject.attrib;
+>
+<!--end of imageobject.attlist-->]]>
+<!--end of imageobject.module-->]]>
+
+<!ENTITY % textobject.module "INCLUDE">
+<![ %textobject.module; [
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+
+<!ENTITY % textobject.element "INCLUDE">
+<![ %textobject.element; [
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!--end of textobject.element-->]]>
+
+<!ENTITY % textobject.attlist "INCLUDE">
+<![ %textobject.attlist; [
+<!ATTLIST textobject
+		%common.attrib;
+		%textobject.role.attrib;
+		%local.textobject.attrib;
+>
+<!--end of textobject.attlist-->]]>
+<!--end of textobject.module-->]]>
+
+<!ENTITY % objectinfo.module "INCLUDE">
+<![ %objectinfo.module; [
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % objectinfo.element "INCLUDE">
+<![ %objectinfo.element; [
+<!ELEMENT objectinfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of objectinfo.element-->]]>
+
+<!ENTITY % objectinfo.attlist "INCLUDE">
+<![ %objectinfo.attlist; [
+<!ATTLIST objectinfo
+		%common.attrib;
+		%objectinfo.role.attrib;
+		%local.objectinfo.attrib;
+>
+<!--end of objectinfo.attlist-->]]>
+<!--end of objectinfo.module-->]]>
+
+<!--EntityRef: Name of an external entity containing the content
+	of the object data-->
+<!--FileRef: Filename, qualified by a pathname if desired, 
+	designating the file containing the content of the object data-->
+<!--Format: Notation of the element content, if any-->
+<!--SrcCredit: Information about the source of the image-->
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+	"
+	entityref	ENTITY		#IMPLIED
+	fileref 	CDATA		#IMPLIED
+	format		(%notation.class;)
+					#IMPLIED
+	srccredit	CDATA		#IMPLIED
+	%local.objectdata.attrib;"
+>
+
+<!ENTITY % videodata.module "INCLUDE">
+<![ %videodata.module; [
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+
+<!ENTITY % videodata.element "INCLUDE">
+<![ %videodata.element; [
+<!ELEMENT videodata EMPTY>
+<!--end of videodata.element-->]]>
+
+<!ENTITY % videodata.attlist "INCLUDE">
+<![ %videodata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means 
+	application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST videodata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%videodata.role.attrib;
+		%local.videodata.attrib;
+>
+<!--end of videodata.attlist-->]]>
+<!--end of videodata.module-->]]>
+
+<!ENTITY % audiodata.module "INCLUDE">
+<![ %audiodata.module; [
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+
+<!ENTITY % audiodata.element "INCLUDE">
+<![ %audiodata.element; [
+<!ELEMENT audiodata EMPTY>
+<!--end of audiodata.element-->]]>
+
+<!ENTITY % audiodata.attlist "INCLUDE">
+<![ %audiodata.attlist; [
+<!ATTLIST audiodata
+		%common.attrib;
+		%objectdata.attrib;
+		%local.audiodata.attrib;
+		%audiodata.role.attrib;
+>
+<!--end of audiodata.attlist-->]]>
+<!--end of audiodata.module-->]]>
+
+<!ENTITY % imagedata.module "INCLUDE">
+<![ %imagedata.module; [
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+
+<!ENTITY % imagedata.element "INCLUDE">
+<![ %imagedata.element; [
+<!ELEMENT imagedata EMPTY>
+<!--end of imagedata.element-->]]>
+
+<!ENTITY % imagedata.attlist "INCLUDE">
+<![ %imagedata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means 
+	application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST imagedata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%local.imagedata.attrib;
+		%imagedata.role.attrib;
+>
+<!--end of imagedata.attlist-->]]>
+<!--end of imagedata.module-->]]>
+
+<!ENTITY % caption.module "INCLUDE">
+<![ %caption.module; [
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+
+<!ENTITY % caption.element "INCLUDE">
+<![ %caption.element; [
+<!ELEMENT caption (%textobject.mix;)*>
+<!--end of caption.element-->]]>
+
+<!ENTITY % caption.attlist "INCLUDE">
+<![ %caption.attlist; [
+<!ATTLIST caption
+		%common.attrib;
+		%local.caption.attrib;
+		%caption.role.attrib;
+>
+<!--end of caption.attlist-->]]>
+<!--end of caption.module-->]]>
+
+<!ENTITY % mediaobjectco.module "INCLUDE">
+<![ %mediaobjectco.module; [
+<!ENTITY % local.mediaobjectco.attrib "">
+<!ENTITY % mediaobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobjectco.element "INCLUDE">
+<![ %mediaobjectco.element; [
+<!ELEMENT mediaobjectco (objectinfo?, imageobjectco,
+			   (imageobjectco|textobject)*)>
+<!--end of mediaobjectco.element-->]]>
+
+<!ENTITY % mediaobjectco.attlist "INCLUDE">
+<![ %mediaobjectco.attlist; [
+<!ATTLIST mediaobjectco
+		%common.attrib;
+		%mediaobjectco.role.attrib;
+		%local.mediaobjectco.attrib;
+>
+<!--end of mediaobjectco.attlist-->]]>
+<!--end of mediaobjectco.module-->]]>
+
+<!ENTITY % imageobjectco.module "INCLUDE">
+<![ %imageobjectco.module; [
+<!ENTITY % local.imageobjectco.attrib "">
+<!ENTITY % imageobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobjectco.element "INCLUDE">
+<![ %imageobjectco.element; [
+<!ELEMENT imageobjectco (areaspec, imageobject, calloutlist*)>
+<!--end of imageobjectco.element-->]]>
+
+<!ENTITY % imageobjectco.attlist "INCLUDE">
+<![ %imageobjectco.attlist; [
+<!ATTLIST imageobjectco
+		%common.attrib;
+		%imageobjectco.role.attrib;
+		%local.imageobjectco.attrib;
+>
+<!--end of imageobjectco.attlist-->]]>
+<!--end of imageobjectco.module-->]]>
+<!--end of mediaobject.content.module-->]]>
+
+<!-- Equations ........................ -->
+
+<!ENTITY % equation.module "INCLUDE">
+<![%equation.module;[
+<!ENTITY % local.equation.attrib "">
+<!ENTITY % equation.role.attrib "%role.attrib;">
+
+<!ENTITY % equation.element "INCLUDE">
+<![%equation.element;[
+<!ELEMENT equation ((%formalobject.title.content;)?, (informalequation |
+		(alt?, %equation.content;)))>
+<!--end of equation.element-->]]>
+
+<!ENTITY % equation.attlist "INCLUDE">
+<![%equation.attlist;[
+<!ATTLIST equation
+		%label.attrib;
+	 	%common.attrib;
+		%equation.role.attrib;
+		%local.equation.attrib;
+>
+<!--end of equation.attlist-->]]>
+<!--end of equation.module-->]]>
+
+<!ENTITY % informalequation.module "INCLUDE">
+<![%informalequation.module;[
+<!ENTITY % local.informalequation.attrib "">
+<!ENTITY % informalequation.role.attrib "%role.attrib;">
+
+<!ENTITY % informalequation.element "INCLUDE">
+<![%informalequation.element;[
+<!ELEMENT informalequation (alt?, %equation.content;)>
+<!--end of informalequation.element-->]]>
+
+<!ENTITY % informalequation.attlist "INCLUDE">
+<![%informalequation.attlist;[
+<!ATTLIST informalequation
+		%common.attrib;
+		%informalequation.role.attrib;
+		%local.informalequation.attrib;
+>
+<!--end of informalequation.attlist-->]]>
+<!--end of informalequation.module-->]]>
+
+<!ENTITY % inlineequation.module "INCLUDE">
+<![%inlineequation.module;[
+<!ENTITY % local.inlineequation.attrib "">
+<!ENTITY % inlineequation.role.attrib "%role.attrib;">
+
+<!ENTITY % inlineequation.element "INCLUDE">
+<![%inlineequation.element;[
+<!ELEMENT inlineequation (alt?, %inlineequation.content;)>
+<!--end of inlineequation.element-->]]>
+
+<!ENTITY % inlineequation.attlist "INCLUDE">
+<![%inlineequation.attlist;[
+<!ATTLIST inlineequation
+		%common.attrib;
+		%inlineequation.role.attrib;
+		%local.inlineequation.attrib;
+>
+<!--end of inlineequation.attlist-->]]>
+<!--end of inlineequation.module-->]]>
+
+<!ENTITY % alt.module "INCLUDE">
+<![%alt.module;[
+<!ENTITY % local.alt.attrib "">
+<!ENTITY % alt.role.attrib "%role.attrib;">
+
+<!ENTITY % alt.element "INCLUDE">
+<![%alt.element;[
+<!ELEMENT alt (#PCDATA)>
+<!--end of alt.element-->]]>
+
+<!ENTITY % alt.attlist "INCLUDE">
+<![%alt.attlist;[
+<!ATTLIST alt 
+		%common.attrib;
+		%alt.role.attrib;
+		%local.alt.attrib;
+>
+<!--end of alt.attlist-->]]>
+<!--end of alt.module-->]]>
+
+<!-- Tables ........................... -->
+
+<!ENTITY % table.module "INCLUDE">
+<![%table.module;[
+
+<!-- Choose a table model. CALS is off by default, so the default -->
+<!-- is now the SGML Open Exchange table model.                   -->
+
+<!ENTITY % cals.table.module "INCLUDE">
+<![%cals.table.module;[
+<!ENTITY % exchange.table.module "IGNORE">
+]]>
+<!ENTITY % exchange.table.module "INCLUDE">
+
+<!ENTITY % tables.role.attrib "%role.attrib;">
+
+<![%cals.table.module;[
+<!-- Add label and role attributes to table and informaltable -->
+<!ENTITY % bodyatt "%label.attrib;">
+
+<!-- Add common attributes to Table, TGroup, TBody, THead, TFoot, Row, 
+     EntryTbl, and Entry (and InformalTable element). -->
+<!ENTITY % secur
+	"%common.attrib;
+	%tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+	"%bodyatt;
+	%secur;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+	"((%formalobject.title.content;), (%ndxterm.class;)*,
+          (graphic+|mediaobject+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "%para.char.mix; | %tabentry.mix;">
+
+<!-- Reference SGML Open Exchange Table Model -->
+<!ENTITY % tablemodel 
+  PUBLIC "-//Norman Walsh//DTD CALS Table Model XML V3.1.7//EN" 
+  "calstblx.dtd">
+]]>
+
+<![%exchange.table.module;[
+<!-- Add common attributes and the Label attribute to Table and -->
+<!-- InformalTable.                                             -->
+<!ENTITY % bodyatt 
+	"%common.attrib;
+	%label.attrib;
+	%tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+	"%bodyatt;">
+
+<!-- Add common attributes to TGroup, ColSpec, TBody, THead, Row, Entry -->
+
+<!ENTITY % tbl.tgroup.att       "%common.attrib;">
+<!ENTITY % tbl.colspec.att      "%common.attrib;">
+<!ENTITY % tbl.tbody.att        "%common.attrib;">
+<!ENTITY % tbl.thead.att        "%common.attrib;">
+<!ENTITY % tbl.row.att          "%common.attrib;">
+<!ENTITY % tbl.entry.att        "%common.attrib;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+	"((%formalobject.title.content;),
+          (%ndxterm.class;)*,
+          (graphic+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+
+<!ENTITY % tablemodel 
+  PUBLIC "-//Norman Walsh//DTD Exchange Table Model 19960430 XML V3.1.7//EN"
+  "soextblx.dtd">
+]]>
+
+%tablemodel;
+
+<!--end of table.module-->]]>
+
+<!ENTITY % informaltable.module "INCLUDE">
+<![%informaltable.module;[
+
+<!-- Note that InformalTable is dependent on some of the entity
+     declarations that customize Table. -->
+
+<!ENTITY % local.informaltable.attrib "">
+
+<!ENTITY % informaltable.element "INCLUDE">
+<![%informaltable.element;[
+<!ELEMENT informaltable (graphic+|mediaobject+|tgroup+)>
+<!--end of informaltable.element-->]]>
+
+<!-- Frame, Colsep, and Rowsep must be repeated because
+		they are not in entities in the table module. -->
+<!-- includes TabStyle, ToCentry, ShortEntry, 
+				Orient, PgWide -->
+<!-- includes Label -->
+<!-- includes common attributes -->
+
+
+<!ENTITY % informaltable.attlist "INCLUDE">
+<![%informaltable.attlist;[
+<!ATTLIST informaltable
+		frame		(top
+				|bottom
+				|topbot
+				|all
+				|sides
+				|none)			#IMPLIED
+		colsep		%yesorno.attvals;	#IMPLIED
+		rowsep		%yesorno.attvals;	#IMPLIED
+		%common.table.attribs;
+		%tbl.table.att;
+		%local.informaltable.attrib;
+>
+<!--end of informaltable.attlist-->]]>
+<!--end of informaltable.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Synopses ............................................................. -->
+
+<!-- Synopsis ......................... -->
+
+<!ENTITY % synopsis.module "INCLUDE">
+<![%synopsis.module;[
+<!ENTITY % local.synopsis.attrib "">
+<!ENTITY % synopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % synopsis.element "INCLUDE">
+<![%synopsis.element;[
+<!ELEMENT synopsis (%para.char.mix; | graphic | mediaobject | lineannotation)*>
+<!--end of synopsis.element-->]]>
+
+<!ENTITY % synopsis.attlist "INCLUDE">
+<![%synopsis.attlist;[
+<!ATTLIST synopsis
+		%label.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%synopsis.role.attrib;
+		%local.synopsis.attrib;
+>
+<!--end of synopsis.attlist-->]]>
+
+<!--ELEMENT LineAnnotation (defined in the Inlines section, below)-->
+<!--end of synopsis.module-->]]>
+
+<!-- CmdSynopsis ...................... -->
+
+<!ENTITY % cmdsynopsis.content.module "INCLUDE">
+<![%cmdsynopsis.content.module;[
+<!ENTITY % cmdsynopsis.module "INCLUDE">
+<![%cmdsynopsis.module;[
+<!ENTITY % local.cmdsynopsis.attrib "">
+<!ENTITY % cmdsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % cmdsynopsis.element "INCLUDE">
+<![%cmdsynopsis.element;[
+<!ELEMENT cmdsynopsis ((command | arg | group | sbr)+, synopfragment*)>
+<!--end of cmdsynopsis.element-->]]>
+
+<!-- Sepchar: Character that should separate command and all 
+		top-level arguments; alternate value might be e.g., &Delta; -->
+
+
+<!ENTITY % cmdsynopsis.attlist "INCLUDE">
+<![%cmdsynopsis.attlist;[
+<!ATTLIST cmdsynopsis
+		%label.attrib;
+		sepchar		CDATA		" "
+		cmdlength	CDATA		#IMPLIED
+		%common.attrib;
+		%cmdsynopsis.role.attrib;
+		%local.cmdsynopsis.attrib;
+>
+<!--end of cmdsynopsis.attlist-->]]>
+<!--end of cmdsynopsis.module-->]]>
+
+<!ENTITY % arg.module "INCLUDE">
+<![%arg.module;[
+<!ENTITY % local.arg.attrib "">
+<!ENTITY % arg.role.attrib "%role.attrib;">
+
+<!ENTITY % arg.element "INCLUDE">
+<![%arg.element;[
+<!ELEMENT arg (#PCDATA 
+		| arg 
+		| group 
+		| option 
+		| synopfragmentref 
+		| replaceable
+		| sbr)*>
+<!--end of arg.element-->]]>
+
+<!-- Choice: Whether Arg must be supplied: Opt (optional to 
+		supply, e.g. [arg]; the default), Req (required to supply, 
+		e.g. {arg}), or Plain (required to supply, e.g. arg) -->
+<!-- Rep: whether Arg is repeatable: Norepeat (e.g. arg without 
+		ellipsis; the default), or Repeat (e.g. arg...) -->
+
+
+<!ENTITY % arg.attlist "INCLUDE">
+<![%arg.attlist;[
+<!ATTLIST arg
+		choice		(opt
+				|req
+				|plain)		'opt'
+		rep		(norepeat
+				|repeat)	'norepeat'
+		%common.attrib;
+		%arg.role.attrib;
+		%local.arg.attrib;
+>
+<!--end of arg.attlist-->]]>
+<!--end of arg.module-->]]>
+
+<!ENTITY % group.module "INCLUDE">
+<![%group.module;[
+<!--FUTURE USE (V4.0):
+......................
+The OptMult and ReqMult values for the Choice attribute on Group will be
+removed.  Use the Rep attribute instead to indicate that the choice is
+repeatable.
+......................
+-->
+
+<!ENTITY % local.group.attrib "">
+<!ENTITY % group.role.attrib "%role.attrib;">
+
+<!ENTITY % group.element "INCLUDE">
+<![%group.element;[
+<!ELEMENT group ((arg | group | option | synopfragmentref 
+		| replaceable | sbr)+)>
+<!--end of group.element-->]]>
+
+<!-- Choice: Whether Group must be supplied: Opt (optional to
+		supply, e.g.  [g1|g2|g3]; the default), Req (required to
+		supply, e.g.  {g1|g2|g3}), Plain (required to supply,
+		e.g.  g1|g2|g3), OptMult (can supply zero or more, e.g.
+		[[g1|g2|g3]]), or ReqMult (must supply one or more, e.g.
+		{{g1|g2|g3}}) -->
+<!-- Rep: whether Group is repeatable: Norepeat (e.g. group 
+		without ellipsis; the default), or Repeat (e.g. group...) -->
+
+
+<!ENTITY % group.attlist "INCLUDE">
+<![%group.attlist;[
+<!ATTLIST group
+		choice		(opt
+				|req
+				|plain
+				|optmult
+				|reqmult)	'opt'
+		rep		(norepeat
+				|repeat)	'norepeat'
+		%common.attrib;
+		%group.role.attrib;
+		%local.group.attrib;
+>
+<!--end of group.attlist-->]]>
+<!--end of group.module-->]]>
+
+<!ENTITY % sbr.module "INCLUDE">
+<![%sbr.module;[
+<!ENTITY % local.sbr.attrib "">
+<!-- Synopsis break -->
+<!ENTITY % sbr.role.attrib "%role.attrib;">
+
+<!ENTITY % sbr.element "INCLUDE">
+<![%sbr.element;[
+<!ELEMENT sbr EMPTY>
+<!--end of sbr.element-->]]>
+
+<!ENTITY % sbr.attlist "INCLUDE">
+<![%sbr.attlist;[
+<!ATTLIST sbr
+		%common.attrib;
+		%sbr.role.attrib;
+		%local.sbr.attrib;
+>
+<!--end of sbr.attlist-->]]>
+<!--end of sbr.module-->]]>
+
+<!ENTITY % synopfragmentref.module "INCLUDE">
+<![%synopfragmentref.module;[
+<!ENTITY % local.synopfragmentref.attrib "">
+<!ENTITY % synopfragmentref.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragmentref.element "INCLUDE">
+<![%synopfragmentref.element;[
+<!ELEMENT synopfragmentref (#PCDATA)>
+<!--end of synopfragmentref.element-->]]>
+
+<!-- to SynopFragment of complex synopsis
+			material for separate referencing -->
+
+
+<!ENTITY % synopfragmentref.attlist "INCLUDE">
+<![%synopfragmentref.attlist;[
+<!ATTLIST synopfragmentref
+		%linkendreq.attrib;		%common.attrib;
+		%synopfragmentref.role.attrib;
+		%local.synopfragmentref.attrib;
+>
+<!--end of synopfragmentref.attlist-->]]>
+<!--end of synopfragmentref.module-->]]>
+
+<!ENTITY % synopfragment.module "INCLUDE">
+<![%synopfragment.module;[
+<!ENTITY % local.synopfragment.attrib "">
+<!ENTITY % synopfragment.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragment.element "INCLUDE">
+<![%synopfragment.element;[
+<!ELEMENT synopfragment ((arg | group)+)>
+<!--end of synopfragment.element-->]]>
+
+<!ENTITY % synopfragment.attlist "INCLUDE">
+<![%synopfragment.attlist;[
+<!ATTLIST synopfragment
+		%idreq.common.attrib;
+		%synopfragment.role.attrib;
+		%local.synopfragment.attrib;
+>
+<!--end of synopfragment.attlist-->]]>
+<!--end of synopfragment.module-->]]>
+
+<!--ELEMENT Command (defined in the Inlines section, below)-->
+<!--ELEMENT Option (defined in the Inlines section, below)-->
+<!--ELEMENT Replaceable (defined in the Inlines section, below)-->
+<!--end of cmdsynopsis.content.module-->]]>
+
+<!-- FuncSynopsis ..................... -->
+
+<!ENTITY % funcsynopsis.content.module "INCLUDE">
+<![%funcsynopsis.content.module;[
+<!ENTITY % funcsynopsis.module "INCLUDE">
+<![%funcsynopsis.module;[
+<!--FUTURE USE (V4.0):
+......................
+The content model group starting with FuncDef will not be available; you
+will have to use FuncPrototype.  Also, you will be able to have a
+mixture of FuncPrototypes and FuncSynopsisInfos (this is not
+backwards-incompatible all by itself).
+
+<!ELEMENT funcsynopsis ((funcsynopsisinfo|funcprototype)+)>
+......................
+-->
+
+<!ENTITY % local.funcsynopsis.attrib "">
+<!ENTITY % funcsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsis.element "INCLUDE">
+<![%funcsynopsis.element;[
+<!ELEMENT funcsynopsis (funcsynopsisinfo?, (funcprototype+ |
+		(funcdef, (void | varargs | paramdef+))+), funcsynopsisinfo?)>
+<!--end of funcsynopsis.element-->]]>
+
+<!ENTITY % funcsynopsis.attlist "INCLUDE">
+<![%funcsynopsis.attlist;[
+<!ATTLIST funcsynopsis
+		%label.attrib;
+		%common.attrib;
+		%funcsynopsis.role.attrib;
+		%local.funcsynopsis.attrib;
+>
+<!--end of funcsynopsis.attlist-->]]>
+<!--end of funcsynopsis.module-->]]>
+
+<!ENTITY % funcsynopsisinfo.module "INCLUDE">
+<![%funcsynopsisinfo.module;[
+<!ENTITY % local.funcsynopsisinfo.attrib "">
+<!ENTITY % funcsynopsisinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsisinfo.element "INCLUDE">
+<![%funcsynopsisinfo.element;[
+<!ELEMENT funcsynopsisinfo (%cptr.char.mix; | lineannotation)*>
+<!--end of funcsynopsisinfo.element-->]]>
+
+<!ENTITY % funcsynopsisinfo.attlist "INCLUDE">
+<![%funcsynopsisinfo.attlist;[
+<!ATTLIST funcsynopsisinfo
+		%linespecific.attrib;
+		%common.attrib;
+		%funcsynopsisinfo.role.attrib;
+		%local.funcsynopsisinfo.attrib;
+>
+<!--end of funcsynopsisinfo.attlist-->]]>
+<!--end of funcsynopsisinfo.module-->]]>
+
+<!ENTITY % funcprototype.module "INCLUDE">
+<![%funcprototype.module;[
+<!ENTITY % local.funcprototype.attrib "">
+<!ENTITY % funcprototype.role.attrib "%role.attrib;">
+
+<!ENTITY % funcprototype.element "INCLUDE">
+<![%funcprototype.element;[
+<!ELEMENT funcprototype (funcdef, (void | varargs | paramdef+))>
+<!--end of funcprototype.element-->]]>
+
+<!ENTITY % funcprototype.attlist "INCLUDE">
+<![%funcprototype.attlist;[
+<!ATTLIST funcprototype
+		%common.attrib;
+		%funcprototype.role.attrib;
+		%local.funcprototype.attrib;
+>
+<!--end of funcprototype.attlist-->]]>
+<!--end of funcprototype.module-->]]>
+
+<!ENTITY % funcdef.module "INCLUDE">
+<![%funcdef.module;[
+<!ENTITY % local.funcdef.attrib "">
+<!ENTITY % funcdef.role.attrib "%role.attrib;">
+
+<!ENTITY % funcdef.element "INCLUDE">
+<![%funcdef.element;[
+<!ELEMENT funcdef (#PCDATA 
+		| replaceable 
+		| function)*>
+<!--end of funcdef.element-->]]>
+
+<!ENTITY % funcdef.attlist "INCLUDE">
+<![%funcdef.attlist;[
+<!ATTLIST funcdef
+		%common.attrib;
+		%funcdef.role.attrib;
+		%local.funcdef.attrib;
+>
+<!--end of funcdef.attlist-->]]>
+<!--end of funcdef.module-->]]>
+
+<!ENTITY % void.module "INCLUDE">
+<![%void.module;[
+<!ENTITY % local.void.attrib "">
+<!ENTITY % void.role.attrib "%role.attrib;">
+
+<!ENTITY % void.element "INCLUDE">
+<![%void.element;[
+<!ELEMENT void EMPTY>
+<!--end of void.element-->]]>
+
+<!ENTITY % void.attlist "INCLUDE">
+<![%void.attlist;[
+<!ATTLIST void
+		%common.attrib;
+		%void.role.attrib;
+		%local.void.attrib;
+>
+<!--end of void.attlist-->]]>
+<!--end of void.module-->]]>
+
+<!ENTITY % varargs.module "INCLUDE">
+<![%varargs.module;[
+<!ENTITY % local.varargs.attrib "">
+<!ENTITY % varargs.role.attrib "%role.attrib;">
+
+<!ENTITY % varargs.element "INCLUDE">
+<![%varargs.element;[
+<!ELEMENT varargs EMPTY>
+<!--end of varargs.element-->]]>
+
+<!ENTITY % varargs.attlist "INCLUDE">
+<![%varargs.attlist;[
+<!ATTLIST varargs
+		%common.attrib;
+		%varargs.role.attrib;
+		%local.varargs.attrib;
+>
+<!--end of varargs.attlist-->]]>
+<!--end of varargs.module-->]]>
+
+<!-- Processing assumes that only one Parameter will appear in a
+     ParamDef, and that FuncParams will be used at most once, for
+     providing information on the "inner parameters" for parameters that
+     are pointers to functions. -->
+
+<!ENTITY % paramdef.module "INCLUDE">
+<![%paramdef.module;[
+<!ENTITY % local.paramdef.attrib "">
+<!ENTITY % paramdef.role.attrib "%role.attrib;">
+
+<!ENTITY % paramdef.element "INCLUDE">
+<![%paramdef.element;[
+<!ELEMENT paramdef (#PCDATA 
+		| replaceable 
+		| parameter 
+		| funcparams)*>
+<!--end of paramdef.element-->]]>
+
+<!ENTITY % paramdef.attlist "INCLUDE">
+<![%paramdef.attlist;[
+<!ATTLIST paramdef
+		%common.attrib;
+		%paramdef.role.attrib;
+		%local.paramdef.attrib;
+>
+<!--end of paramdef.attlist-->]]>
+<!--end of paramdef.module-->]]>
+
+<!ENTITY % funcparams.module "INCLUDE">
+<![%funcparams.module;[
+<!ENTITY % local.funcparams.attrib "">
+<!ENTITY % funcparams.role.attrib "%role.attrib;">
+
+<!ENTITY % funcparams.element "INCLUDE">
+<![%funcparams.element;[
+<!ELEMENT funcparams (%cptr.char.mix;)*>
+<!--end of funcparams.element-->]]>
+
+<!ENTITY % funcparams.attlist "INCLUDE">
+<![%funcparams.attlist;[
+<!ATTLIST funcparams
+		%common.attrib;
+		%funcparams.role.attrib;
+		%local.funcparams.attrib;
+>
+<!--end of funcparams.attlist-->]]>
+<!--end of funcparams.module-->]]>
+
+<!--ELEMENT LineAnnotation (defined in the Inlines section, below)-->
+<!--ELEMENT Replaceable (defined in the Inlines section, below)-->
+<!--ELEMENT Function (defined in the Inlines section, below)-->
+<!--ELEMENT Parameter (defined in the Inlines section, below)-->
+<!--end of funcsynopsis.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Document information entities and elements ........................... -->
+
+<!-- The document information elements include some elements that are
+     currently used only in the document hierarchy module. They are
+     defined here so that they will be available for use in customized
+     document hierarchies. -->
+
+<!-- .................................. -->
+
+<!ENTITY % docinfo.content.module "INCLUDE">
+<![%docinfo.content.module;[
+
+<!-- Ackno ............................ -->
+
+<!ENTITY % ackno.module "INCLUDE">
+<![%ackno.module;[
+<!ENTITY % local.ackno.attrib "">
+<!ENTITY % ackno.role.attrib "%role.attrib;">
+
+<!ENTITY % ackno.element "INCLUDE">
+<![%ackno.element;[
+<!ELEMENT ackno (%docinfo.char.mix;)*>
+<!--end of ackno.element-->]]>
+
+<!ENTITY % ackno.attlist "INCLUDE">
+<![%ackno.attlist;[
+<!ATTLIST ackno
+		%common.attrib;
+		%ackno.role.attrib;
+		%local.ackno.attrib;
+>
+<!--end of ackno.attlist-->]]>
+<!--end of ackno.module-->]]>
+
+<!-- Address .......................... -->
+
+<!ENTITY % address.content.module "INCLUDE">
+<![%address.content.module;[
+<!ENTITY % address.module "INCLUDE">
+<![%address.module;[
+<!ENTITY % local.address.attrib "">
+<!ENTITY % address.role.attrib "%role.attrib;">
+
+<!ENTITY % address.element "INCLUDE">
+<![%address.element;[
+<!ELEMENT address (#PCDATA|%person.ident.mix;
+		|street|pob|postcode|city|state|country|phone
+		|fax|email|otheraddr)*>
+<!--end of address.element-->]]>
+
+<!ENTITY % address.attlist "INCLUDE">
+<![%address.attlist;[
+<!ATTLIST address
+		%linespecific.attrib;
+		%common.attrib;
+		%address.role.attrib;
+		%local.address.attrib;
+>
+<!--end of address.attlist-->]]>
+<!--end of address.module-->]]>
+
+  <!ENTITY % street.module "INCLUDE">
+  <![%street.module;[
+ <!ENTITY % local.street.attrib "">
+  <!ENTITY % street.role.attrib "%role.attrib;">
+  
+<!ENTITY % street.element "INCLUDE">
+<![%street.element;[
+<!ELEMENT street (%docinfo.char.mix;)*>
+<!--end of street.element-->]]>
+  
+<!ENTITY % street.attlist "INCLUDE">
+<![%street.attlist;[
+<!ATTLIST street
+		%common.attrib;
+		%street.role.attrib;
+		%local.street.attrib;
+>
+<!--end of street.attlist-->]]>
+  <!--end of street.module-->]]>
+
+  <!ENTITY % pob.module "INCLUDE">
+  <![%pob.module;[
+  <!ENTITY % local.pob.attrib "">
+  <!ENTITY % pob.role.attrib "%role.attrib;">
+  
+<!ENTITY % pob.element "INCLUDE">
+<![%pob.element;[
+<!ELEMENT pob (%docinfo.char.mix;)*>
+<!--end of pob.element-->]]>
+  
+<!ENTITY % pob.attlist "INCLUDE">
+<![%pob.attlist;[
+<!ATTLIST pob
+		%common.attrib;
+		%pob.role.attrib;
+		%local.pob.attrib;
+>
+<!--end of pob.attlist-->]]>
+  <!--end of pob.module-->]]>
+
+  <!ENTITY % postcode.module "INCLUDE">
+  <![%postcode.module;[
+  <!ENTITY % local.postcode.attrib "">
+  <!ENTITY % postcode.role.attrib "%role.attrib;">
+  
+<!ENTITY % postcode.element "INCLUDE">
+<![%postcode.element;[
+<!ELEMENT postcode (%docinfo.char.mix;)*>
+<!--end of postcode.element-->]]>
+  
+<!ENTITY % postcode.attlist "INCLUDE">
+<![%postcode.attlist;[
+<!ATTLIST postcode
+		%common.attrib;
+		%postcode.role.attrib;
+		%local.postcode.attrib;
+>
+<!--end of postcode.attlist-->]]>
+  <!--end of postcode.module-->]]>
+
+  <!ENTITY % city.module "INCLUDE">
+  <![%city.module;[
+  <!ENTITY % local.city.attrib "">
+  <!ENTITY % city.role.attrib "%role.attrib;">
+  
+<!ENTITY % city.element "INCLUDE">
+<![%city.element;[
+<!ELEMENT city (%docinfo.char.mix;)*>
+<!--end of city.element-->]]>
+  
+<!ENTITY % city.attlist "INCLUDE">
+<![%city.attlist;[
+<!ATTLIST city
+		%common.attrib;
+		%city.role.attrib;
+		%local.city.attrib;
+>
+<!--end of city.attlist-->]]>
+  <!--end of city.module-->]]>
+
+  <!ENTITY % state.module "INCLUDE">
+  <![%state.module;[
+  <!ENTITY % local.state.attrib "">
+  <!ENTITY % state.role.attrib "%role.attrib;">
+  
+<!ENTITY % state.element "INCLUDE">
+<![%state.element;[
+<!ELEMENT state (%docinfo.char.mix;)*>
+<!--end of state.element-->]]>
+  
+<!ENTITY % state.attlist "INCLUDE">
+<![%state.attlist;[
+<!ATTLIST state
+		%common.attrib;
+		%state.role.attrib;
+		%local.state.attrib;
+>
+<!--end of state.attlist-->]]>
+  <!--end of state.module-->]]>
+
+  <!ENTITY % country.module "INCLUDE">
+  <![%country.module;[
+  <!ENTITY % local.country.attrib "">
+  <!ENTITY % country.role.attrib "%role.attrib;">
+  
+<!ENTITY % country.element "INCLUDE">
+<![%country.element;[
+<!ELEMENT country (%docinfo.char.mix;)*>
+<!--end of country.element-->]]>
+  
+<!ENTITY % country.attlist "INCLUDE">
+<![%country.attlist;[
+<!ATTLIST country
+		%common.attrib;
+		%country.role.attrib;
+		%local.country.attrib;
+>
+<!--end of country.attlist-->]]>
+  <!--end of country.module-->]]>
+
+  <!ENTITY % phone.module "INCLUDE">
+  <![%phone.module;[
+  <!ENTITY % local.phone.attrib "">
+  <!ENTITY % phone.role.attrib "%role.attrib;">
+  
+<!ENTITY % phone.element "INCLUDE">
+<![%phone.element;[
+<!ELEMENT phone (%docinfo.char.mix;)*>
+<!--end of phone.element-->]]>
+  
+<!ENTITY % phone.attlist "INCLUDE">
+<![%phone.attlist;[
+<!ATTLIST phone
+		%common.attrib;
+		%phone.role.attrib;
+		%local.phone.attrib;
+>
+<!--end of phone.attlist-->]]>
+  <!--end of phone.module-->]]>
+
+  <!ENTITY % fax.module "INCLUDE">
+  <![%fax.module;[
+  <!ENTITY % local.fax.attrib "">
+  <!ENTITY % fax.role.attrib "%role.attrib;">
+  
+<!ENTITY % fax.element "INCLUDE">
+<![%fax.element;[
+<!ELEMENT fax (%docinfo.char.mix;)*>
+<!--end of fax.element-->]]>
+  
+<!ENTITY % fax.attlist "INCLUDE">
+<![%fax.attlist;[
+<!ATTLIST fax
+		%common.attrib;
+		%fax.role.attrib;
+		%local.fax.attrib;
+>
+<!--end of fax.attlist-->]]>
+  <!--end of fax.module-->]]>
+
+  <!--ELEMENT Email (defined in the Inlines section, below)-->
+
+  <!ENTITY % otheraddr.module "INCLUDE">
+  <![%otheraddr.module;[
+  <!ENTITY % local.otheraddr.attrib "">
+  <!ENTITY % otheraddr.role.attrib "%role.attrib;">
+  
+<!ENTITY % otheraddr.element "INCLUDE">
+<![%otheraddr.element;[
+<!ELEMENT otheraddr (%docinfo.char.mix;)*>
+<!--end of otheraddr.element-->]]>
+  
+<!ENTITY % otheraddr.attlist "INCLUDE">
+<![%otheraddr.attlist;[
+<!ATTLIST otheraddr
+		%common.attrib;
+		%otheraddr.role.attrib;
+		%local.otheraddr.attrib;
+>
+<!--end of otheraddr.attlist-->]]>
+  <!--end of otheraddr.module-->]]>
+<!--end of address.content.module-->]]>
+
+<!-- Affiliation ...................... -->
+
+<!ENTITY % affiliation.content.module "INCLUDE">
+<![%affiliation.content.module;[
+<!ENTITY % affiliation.module "INCLUDE">
+<![%affiliation.module;[
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+
+<!ENTITY % affiliation.element "INCLUDE">
+<![%affiliation.element;[
+<!ELEMENT affiliation (shortaffil?, jobtitle*, orgname?, orgdiv*,
+		address*)>
+<!--end of affiliation.element-->]]>
+
+<!ENTITY % affiliation.attlist "INCLUDE">
+<![%affiliation.attlist;[
+<!ATTLIST affiliation
+		%common.attrib;
+		%affiliation.role.attrib;
+		%local.affiliation.attrib;
+>
+<!--end of affiliation.attlist-->]]>
+<!--end of affiliation.module-->]]>
+
+  <!ENTITY % shortaffil.module "INCLUDE">
+  <![%shortaffil.module;[
+  <!ENTITY % local.shortaffil.attrib "">
+  <!ENTITY % shortaffil.role.attrib "%role.attrib;">
+  
+<!ENTITY % shortaffil.element "INCLUDE">
+<![%shortaffil.element;[
+<!ELEMENT shortaffil (%docinfo.char.mix;)*>
+<!--end of shortaffil.element-->]]>
+  
+<!ENTITY % shortaffil.attlist "INCLUDE">
+<![%shortaffil.attlist;[
+<!ATTLIST shortaffil
+		%common.attrib;
+		%shortaffil.role.attrib;
+		%local.shortaffil.attrib;
+>
+<!--end of shortaffil.attlist-->]]>
+  <!--end of shortaffil.module-->]]>
+
+  <!ENTITY % jobtitle.module "INCLUDE">
+  <![%jobtitle.module;[
+  <!ENTITY % local.jobtitle.attrib "">
+  <!ENTITY % jobtitle.role.attrib "%role.attrib;">
+  
+<!ENTITY % jobtitle.element "INCLUDE">
+<![%jobtitle.element;[
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!--end of jobtitle.element-->]]>
+  
+<!ENTITY % jobtitle.attlist "INCLUDE">
+<![%jobtitle.attlist;[
+<!ATTLIST jobtitle
+		%common.attrib;
+		%jobtitle.role.attrib;
+		%local.jobtitle.attrib;
+>
+<!--end of jobtitle.attlist-->]]>
+  <!--end of jobtitle.module-->]]>
+
+  <!--ELEMENT OrgName (defined elsewhere in this section)-->
+
+  <!ENTITY % orgdiv.module "INCLUDE">
+  <![%orgdiv.module;[
+  <!ENTITY % local.orgdiv.attrib "">
+  <!ENTITY % orgdiv.role.attrib "%role.attrib;">
+  
+<!ENTITY % orgdiv.element "INCLUDE">
+<![%orgdiv.element;[
+<!ELEMENT orgdiv (%docinfo.char.mix;)*>
+<!--end of orgdiv.element-->]]>
+  
+<!ENTITY % orgdiv.attlist "INCLUDE">
+<![%orgdiv.attlist;[
+<!ATTLIST orgdiv
+		%common.attrib;
+		%orgdiv.role.attrib;
+		%local.orgdiv.attrib;
+>
+<!--end of orgdiv.attlist-->]]>
+  <!--end of orgdiv.module-->]]>
+
+  <!--ELEMENT Address (defined elsewhere in this section)-->
+<!--end of affiliation.content.module-->]]>
+
+<!-- ArtPageNums ...................... -->
+
+<!ENTITY % artpagenums.module "INCLUDE">
+<![%artpagenums.module;[
+<!ENTITY % local.artpagenums.attrib "">
+<!ENTITY % artpagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % artpagenums.element "INCLUDE">
+<![%artpagenums.element;[
+<!ELEMENT artpagenums (%docinfo.char.mix;)*>
+<!--end of artpagenums.element-->]]>
+
+<!ENTITY % artpagenums.attlist "INCLUDE">
+<![%artpagenums.attlist;[
+<!ATTLIST artpagenums
+		%common.attrib;
+		%artpagenums.role.attrib;
+		%local.artpagenums.attrib;
+>
+<!--end of artpagenums.attlist-->]]>
+<!--end of artpagenums.module-->]]>
+
+<!-- Author ........................... -->
+
+<!ENTITY % author.module "INCLUDE">
+<![%author.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new 
+wrapper element created to allow association of those two elements with 
+Author name information.
+......................
+-->
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+
+<!ENTITY % author.element "INCLUDE">
+<![%author.element;[
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!--end of author.element-->]]>
+
+<!ENTITY % author.attlist "INCLUDE">
+<![%author.attlist;[
+<!ATTLIST author
+		%common.attrib;
+		%author.role.attrib;
+		%local.author.attrib;
+>
+<!--end of author.attlist-->]]>
+<!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of author.module-->]]>
+
+<!-- AuthorGroup ...................... -->
+
+<!ENTITY % authorgroup.content.module "INCLUDE">
+<![%authorgroup.content.module;[
+<!ENTITY % authorgroup.module "INCLUDE">
+<![%authorgroup.module;[
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % authorgroup.element "INCLUDE">
+<![%authorgroup.element;[
+<!ELEMENT authorgroup ((author|editor|collab|corpauthor|othercredit)+)>
+<!--end of authorgroup.element-->]]>
+
+<!ENTITY % authorgroup.attlist "INCLUDE">
+<![%authorgroup.attlist;[
+<!ATTLIST authorgroup
+		%common.attrib;
+		%authorgroup.role.attrib;
+		%local.authorgroup.attrib;
+>
+<!--end of authorgroup.attlist-->]]>
+<!--end of authorgroup.module-->]]>
+
+  <!--ELEMENT Author (defined elsewhere in this section)-->
+  <!--ELEMENT Editor (defined elsewhere in this section)-->
+
+  <!ENTITY % collab.content.module "INCLUDE">
+  <![%collab.content.module;[
+  <!ENTITY % collab.module "INCLUDE">
+  <![%collab.module;[
+  <!ENTITY % local.collab.attrib "">
+  <!ENTITY % collab.role.attrib "%role.attrib;">
+  
+<!ENTITY % collab.element "INCLUDE">
+<![%collab.element;[
+<!ELEMENT collab (collabname, affiliation*)>
+<!--end of collab.element-->]]>
+  
+<!ENTITY % collab.attlist "INCLUDE">
+<![%collab.attlist;[
+<!ATTLIST collab
+		%common.attrib;
+		%collab.role.attrib;
+		%local.collab.attrib;
+>
+<!--end of collab.attlist-->]]>
+  <!--end of collab.module-->]]>
+
+    <!ENTITY % collabname.module "INCLUDE">
+  <![%collabname.module;[
+  <!ENTITY % local.collabname.attrib "">
+  <!ENTITY % collabname.role.attrib "%role.attrib;">
+    
+<!ENTITY % collabname.element "INCLUDE">
+<![%collabname.element;[
+<!ELEMENT collabname (%docinfo.char.mix;)*>
+<!--end of collabname.element-->]]>
+    
+<!ENTITY % collabname.attlist "INCLUDE">
+<![%collabname.attlist;[
+<!ATTLIST collabname
+		%common.attrib;
+		%collabname.role.attrib;
+		%local.collabname.attrib;
+>
+<!--end of collabname.attlist-->]]>
+    <!--end of collabname.module-->]]>
+
+    <!--ELEMENT Affiliation (defined elsewhere in this section)-->
+  <!--end of collab.content.module-->]]>
+
+  <!--ELEMENT CorpAuthor (defined elsewhere in this section)-->
+  <!--ELEMENT OtherCredit (defined elsewhere in this section)-->
+
+<!--end of authorgroup.content.module-->]]>
+
+<!-- AuthorInitials ................... -->
+
+<!ENTITY % authorinitials.module "INCLUDE">
+<![%authorinitials.module;[
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+
+<!ENTITY % authorinitials.element "INCLUDE">
+<![%authorinitials.element;[
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!--end of authorinitials.element-->]]>
+
+<!ENTITY % authorinitials.attlist "INCLUDE">
+<![%authorinitials.attlist;[
+<!ATTLIST authorinitials
+		%common.attrib;
+		%authorinitials.role.attrib;
+		%local.authorinitials.attrib;
+>
+<!--end of authorinitials.attlist-->]]>
+<!--end of authorinitials.module-->]]>
+
+<!-- ConfGroup ........................ -->
+
+<!ENTITY % confgroup.content.module "INCLUDE">
+<![%confgroup.content.module;[
+<!ENTITY % confgroup.module "INCLUDE">
+<![%confgroup.module;[
+<!ENTITY % local.confgroup.attrib "">
+<!ENTITY % confgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % confgroup.element "INCLUDE">
+<![%confgroup.element;[
+<!ELEMENT confgroup ((confdates|conftitle|confnum|address|confsponsor)*)>
+<!--end of confgroup.element-->]]>
+
+<!ENTITY % confgroup.attlist "INCLUDE">
+<![%confgroup.attlist;[
+<!ATTLIST confgroup
+		%common.attrib;
+		%confgroup.role.attrib;
+		%local.confgroup.attrib;
+>
+<!--end of confgroup.attlist-->]]>
+<!--end of confgroup.module-->]]>
+
+  <!ENTITY % confdates.module "INCLUDE">
+  <![%confdates.module;[
+  <!ENTITY % local.confdates.attrib "">
+  <!ENTITY % confdates.role.attrib "%role.attrib;">
+  
+<!ENTITY % confdates.element "INCLUDE">
+<![%confdates.element;[
+<!ELEMENT confdates (%docinfo.char.mix;)*>
+<!--end of confdates.element-->]]>
+  
+<!ENTITY % confdates.attlist "INCLUDE">
+<![%confdates.attlist;[
+<!ATTLIST confdates
+		%common.attrib;
+		%confdates.role.attrib;
+		%local.confdates.attrib;
+>
+<!--end of confdates.attlist-->]]>
+  <!--end of confdates.module-->]]>
+
+  <!ENTITY % conftitle.module "INCLUDE">
+  <![%conftitle.module;[
+  <!ENTITY % local.conftitle.attrib "">
+  <!ENTITY % conftitle.role.attrib "%role.attrib;">
+  
+<!ENTITY % conftitle.element "INCLUDE">
+<![%conftitle.element;[
+<!ELEMENT conftitle (%docinfo.char.mix;)*>
+<!--end of conftitle.element-->]]>
+  
+<!ENTITY % conftitle.attlist "INCLUDE">
+<![%conftitle.attlist;[
+<!ATTLIST conftitle
+		%common.attrib;
+		%conftitle.role.attrib;
+		%local.conftitle.attrib;
+>
+<!--end of conftitle.attlist-->]]>
+  <!--end of conftitle.module-->]]>
+
+  <!ENTITY % confnum.module "INCLUDE">
+  <![%confnum.module;[
+  <!ENTITY % local.confnum.attrib "">
+  <!ENTITY % confnum.role.attrib "%role.attrib;">
+  
+<!ENTITY % confnum.element "INCLUDE">
+<![%confnum.element;[
+<!ELEMENT confnum (%docinfo.char.mix;)*>
+<!--end of confnum.element-->]]>
+  
+<!ENTITY % confnum.attlist "INCLUDE">
+<![%confnum.attlist;[
+<!ATTLIST confnum
+		%common.attrib;
+		%confnum.role.attrib;
+		%local.confnum.attrib;
+>
+<!--end of confnum.attlist-->]]>
+  <!--end of confnum.module-->]]>
+
+  <!--ELEMENT Address (defined elsewhere in this section)-->
+
+  <!ENTITY % confsponsor.module "INCLUDE">
+  <![%confsponsor.module;[
+  <!ENTITY % local.confsponsor.attrib "">
+  <!ENTITY % confsponsor.role.attrib "%role.attrib;">
+  
+<!ENTITY % confsponsor.element "INCLUDE">
+<![%confsponsor.element;[
+<!ELEMENT confsponsor (%docinfo.char.mix;)*>
+<!--end of confsponsor.element-->]]>
+  
+<!ENTITY % confsponsor.attlist "INCLUDE">
+<![%confsponsor.attlist;[
+<!ATTLIST confsponsor
+		%common.attrib;
+		%confsponsor.role.attrib;
+		%local.confsponsor.attrib;
+>
+<!--end of confsponsor.attlist-->]]>
+  <!--end of confsponsor.module-->]]>
+<!--end of confgroup.content.module-->]]>
+
+<!-- ContractNum ...................... -->
+
+<!ENTITY % contractnum.module "INCLUDE">
+<![%contractnum.module;[
+<!ENTITY % local.contractnum.attrib "">
+<!ENTITY % contractnum.role.attrib "%role.attrib;">
+
+<!ENTITY % contractnum.element "INCLUDE">
+<![%contractnum.element;[
+<!ELEMENT contractnum (%docinfo.char.mix;)*>
+<!--end of contractnum.element-->]]>
+
+<!ENTITY % contractnum.attlist "INCLUDE">
+<![%contractnum.attlist;[
+<!ATTLIST contractnum
+		%common.attrib;
+		%contractnum.role.attrib;
+		%local.contractnum.attrib;
+>
+<!--end of contractnum.attlist-->]]>
+<!--end of contractnum.module-->]]>
+
+<!-- ContractSponsor .................. -->
+
+<!ENTITY % contractsponsor.module "INCLUDE">
+<![%contractsponsor.module;[
+<!ENTITY % local.contractsponsor.attrib "">
+<!ENTITY % contractsponsor.role.attrib "%role.attrib;">
+
+<!ENTITY % contractsponsor.element "INCLUDE">
+<![%contractsponsor.element;[
+<!ELEMENT contractsponsor (%docinfo.char.mix;)*>
+<!--end of contractsponsor.element-->]]>
+
+<!ENTITY % contractsponsor.attlist "INCLUDE">
+<![%contractsponsor.attlist;[
+<!ATTLIST contractsponsor
+		%common.attrib;
+		%contractsponsor.role.attrib;
+		%local.contractsponsor.attrib;
+>
+<!--end of contractsponsor.attlist-->]]>
+<!--end of contractsponsor.module-->]]>
+
+<!-- Copyright ........................ -->
+
+<!ENTITY % copyright.content.module "INCLUDE">
+<![%copyright.content.module;[
+<!ENTITY % copyright.module "INCLUDE">
+<![%copyright.module;[
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+
+<!ENTITY % copyright.element "INCLUDE">
+<![%copyright.element;[
+<!ELEMENT copyright (year+, holder*)>
+<!--end of copyright.element-->]]>
+
+<!ENTITY % copyright.attlist "INCLUDE">
+<![%copyright.attlist;[
+<!ATTLIST copyright
+		%common.attrib;
+		%copyright.role.attrib;
+		%local.copyright.attrib;
+>
+<!--end of copyright.attlist-->]]>
+<!--end of copyright.module-->]]>
+
+  <!ENTITY % year.module "INCLUDE">
+  <![%year.module;[
+  <!ENTITY % local.year.attrib "">
+  <!ENTITY % year.role.attrib "%role.attrib;">
+  
+<!ENTITY % year.element "INCLUDE">
+<![%year.element;[
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!--end of year.element-->]]>
+  
+<!ENTITY % year.attlist "INCLUDE">
+<![%year.attlist;[
+<!ATTLIST year
+		%common.attrib;
+		%year.role.attrib;
+		%local.year.attrib;
+>
+<!--end of year.attlist-->]]>
+  <!--end of year.module-->]]>
+
+  <!ENTITY % holder.module "INCLUDE">
+  <![%holder.module;[
+  <!ENTITY % local.holder.attrib "">
+  <!ENTITY % holder.role.attrib "%role.attrib;">
+  
+<!ENTITY % holder.element "INCLUDE">
+<![%holder.element;[
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!--end of holder.element-->]]>
+  
+<!ENTITY % holder.attlist "INCLUDE">
+<![%holder.attlist;[
+<!ATTLIST holder
+		%common.attrib;
+		%holder.role.attrib;
+		%local.holder.attrib;
+>
+<!--end of holder.attlist-->]]>
+  <!--end of holder.module-->]]>
+<!--end of copyright.content.module-->]]>
+
+<!-- CorpAuthor ....................... -->
+
+<!ENTITY % corpauthor.module "INCLUDE">
+<![%corpauthor.module;[
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+
+<!ENTITY % corpauthor.element "INCLUDE">
+<![%corpauthor.element;[
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!--end of corpauthor.element-->]]>
+
+<!ENTITY % corpauthor.attlist "INCLUDE">
+<![%corpauthor.attlist;[
+<!ATTLIST corpauthor
+		%common.attrib;
+		%corpauthor.role.attrib;
+		%local.corpauthor.attrib;
+>
+<!--end of corpauthor.attlist-->]]>
+<!--end of corpauthor.module-->]]>
+
+<!-- CorpName ......................... -->
+
+<!ENTITY % corpname.module "INCLUDE">
+<![%corpname.module;[
+<!ENTITY % local.corpname.attrib "">
+
+<!ENTITY % corpname.element "INCLUDE">
+<![%corpname.element;[
+<!ELEMENT corpname (%docinfo.char.mix;)*>
+<!--end of corpname.element-->]]>
+<!ENTITY % corpname.role.attrib "%role.attrib;">
+
+<!ENTITY % corpname.attlist "INCLUDE">
+<![%corpname.attlist;[
+<!ATTLIST corpname
+		%common.attrib;
+		%corpname.role.attrib;
+		%local.corpname.attrib;
+>
+<!--end of corpname.attlist-->]]>
+<!--end of corpname.module-->]]>
+
+<!-- Date ............................. -->
+
+<!ENTITY % date.module "INCLUDE">
+<![%date.module;[
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+
+<!ENTITY % date.element "INCLUDE">
+<![%date.element;[
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!--end of date.element-->]]>
+
+<!ENTITY % date.attlist "INCLUDE">
+<![%date.attlist;[
+<!ATTLIST date
+		%common.attrib;
+		%date.role.attrib;
+		%local.date.attrib;
+>
+<!--end of date.attlist-->]]>
+<!--end of date.module-->]]>
+
+<!-- Edition .......................... -->
+
+<!ENTITY % edition.module "INCLUDE">
+<![%edition.module;[
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+
+<!ENTITY % edition.element "INCLUDE">
+<![%edition.element;[
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!--end of edition.element-->]]>
+
+<!ENTITY % edition.attlist "INCLUDE">
+<![%edition.attlist;[
+<!ATTLIST edition
+		%common.attrib;
+		%edition.role.attrib;
+		%local.edition.attrib;
+>
+<!--end of edition.attlist-->]]>
+<!--end of edition.module-->]]>
+
+<!-- Editor ........................... -->
+
+<!ENTITY % editor.module "INCLUDE">
+<![%editor.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new 
+wrapper element created to allow association of those two elements with 
+Editor name information.
+......................
+-->
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+
+<!ENTITY % editor.element "INCLUDE">
+<![%editor.element;[
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!--end of editor.element-->]]>
+
+<!ENTITY % editor.attlist "INCLUDE">
+<![%editor.attlist;[
+<!ATTLIST editor
+		%common.attrib;
+		%editor.role.attrib;
+		%local.editor.attrib;
+>
+<!--end of editor.attlist-->]]>
+  <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of editor.module-->]]>
+
+<!-- ISBN ............................. -->
+
+<!ENTITY % isbn.module "INCLUDE">
+<![%isbn.module;[
+<!ENTITY % local.isbn.attrib "">
+<!ENTITY % isbn.role.attrib "%role.attrib;">
+
+<!ENTITY % isbn.element "INCLUDE">
+<![%isbn.element;[
+<!ELEMENT isbn (%docinfo.char.mix;)*>
+<!--end of isbn.element-->]]>
+
+<!ENTITY % isbn.attlist "INCLUDE">
+<![%isbn.attlist;[
+<!ATTLIST isbn
+		%common.attrib;
+		%isbn.role.attrib;
+		%local.isbn.attrib;
+>
+<!--end of isbn.attlist-->]]>
+<!--end of isbn.module-->]]>
+
+<!-- ISSN ............................. -->
+
+<!ENTITY % issn.module "INCLUDE">
+<![%issn.module;[
+<!ENTITY % local.issn.attrib "">
+<!ENTITY % issn.role.attrib "%role.attrib;">
+
+<!ENTITY % issn.element "INCLUDE">
+<![%issn.element;[
+<!ELEMENT issn (%docinfo.char.mix;)*>
+<!--end of issn.element-->]]>
+
+<!ENTITY % issn.attlist "INCLUDE">
+<![%issn.attlist;[
+<!ATTLIST issn
+		%common.attrib;
+		%issn.role.attrib;
+		%local.issn.attrib;
+>
+<!--end of issn.attlist-->]]>
+<!--end of issn.module-->]]>
+
+<!-- InvPartNumber .................... -->
+
+<!ENTITY % invpartnumber.module "INCLUDE">
+<![%invpartnumber.module;[
+<!ENTITY % local.invpartnumber.attrib "">
+<!ENTITY % invpartnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % invpartnumber.element "INCLUDE">
+<![%invpartnumber.element;[
+<!ELEMENT invpartnumber (%docinfo.char.mix;)*>
+<!--end of invpartnumber.element-->]]>
+
+<!ENTITY % invpartnumber.attlist "INCLUDE">
+<![%invpartnumber.attlist;[
+<!ATTLIST invpartnumber
+		%common.attrib;
+		%invpartnumber.role.attrib;
+		%local.invpartnumber.attrib;
+>
+<!--end of invpartnumber.attlist-->]]>
+<!--end of invpartnumber.module-->]]>
+
+<!-- IssueNum ......................... -->
+
+<!ENTITY % issuenum.module "INCLUDE">
+<![%issuenum.module;[
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+
+<!ENTITY % issuenum.element "INCLUDE">
+<![%issuenum.element;[
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!--end of issuenum.element-->]]>
+
+<!ENTITY % issuenum.attlist "INCLUDE">
+<![%issuenum.attlist;[
+<!ATTLIST issuenum
+		%common.attrib;
+		%issuenum.role.attrib;
+		%local.issuenum.attrib;
+>
+<!--end of issuenum.attlist-->]]>
+<!--end of issuenum.module-->]]>
+
+<!-- LegalNotice ...................... -->
+
+<!ENTITY % legalnotice.module "INCLUDE">
+<![%legalnotice.module;[
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+
+<!ENTITY % legalnotice.element "INCLUDE">
+<![%legalnotice.element;[
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!--end of legalnotice.element-->]]>
+
+<!ENTITY % legalnotice.attlist "INCLUDE">
+<![%legalnotice.attlist;[
+<!ATTLIST legalnotice
+		%common.attrib;
+		%legalnotice.role.attrib;
+		%local.legalnotice.attrib;
+>
+<!--end of legalnotice.attlist-->]]>
+<!--end of legalnotice.module-->]]>
+
+<!-- ModeSpec ......................... -->
+
+<!ENTITY % modespec.module "INCLUDE">
+<![%modespec.module;[
+<!ENTITY % local.modespec.attrib "">
+<!ENTITY % modespec.role.attrib "%role.attrib;">
+
+<!ENTITY % modespec.element "INCLUDE">
+<![%modespec.element;[
+<!ELEMENT modespec (%docinfo.char.mix;)*>
+<!--end of modespec.element-->]]>
+
+<!-- Application: Type of action required for completion
+		of the links to which the ModeSpec is relevant (e.g.,
+		retrieval query) -->
+
+
+<!ENTITY % modespec.attlist "INCLUDE">
+<![%modespec.attlist;[
+<!ATTLIST modespec
+		application	NOTATION
+				(%notation.class;)	#IMPLIED
+		%common.attrib;
+		%modespec.role.attrib;
+		%local.modespec.attrib;
+>
+<!--end of modespec.attlist-->]]>
+<!--end of modespec.module-->]]>
+
+<!-- OrgName .......................... -->
+
+<!ENTITY % orgname.module "INCLUDE">
+<![%orgname.module;[
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+
+<!ENTITY % orgname.element "INCLUDE">
+<![%orgname.element;[
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!--end of orgname.element-->]]>
+
+<!ENTITY % orgname.attlist "INCLUDE">
+<![%orgname.attlist;[
+<!ATTLIST orgname
+		%common.attrib;
+		%orgname.role.attrib;
+		%local.orgname.attrib;
+>
+<!--end of orgname.attlist-->]]>
+<!--end of orgname.module-->]]>
+
+<!-- OtherCredit ...................... -->
+
+<!ENTITY % othercredit.module "INCLUDE">
+<![%othercredit.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new 
+wrapper element created to allow association of those two elements with 
+OtherCredit name information.
+......................
+-->
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+
+<!ENTITY % othercredit.element "INCLUDE">
+<![%othercredit.element;[
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!--end of othercredit.element-->]]>
+
+<!ENTITY % othercredit.attlist "INCLUDE">
+<![%othercredit.attlist;[
+<!ATTLIST othercredit
+		%common.attrib;
+		%othercredit.role.attrib;
+		%local.othercredit.attrib;
+>
+<!--end of othercredit.attlist-->]]>
+  <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of othercredit.module-->]]>
+
+<!-- PageNums ......................... -->
+
+<!ENTITY % pagenums.module "INCLUDE">
+<![%pagenums.module;[
+<!ENTITY % local.pagenums.attrib "">
+<!ENTITY % pagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % pagenums.element "INCLUDE">
+<![%pagenums.element;[
+<!ELEMENT pagenums (%docinfo.char.mix;)*>
+<!--end of pagenums.element-->]]>
+
+<!ENTITY % pagenums.attlist "INCLUDE">
+<![%pagenums.attlist;[
+<!ATTLIST pagenums
+		%common.attrib;
+		%pagenums.role.attrib;
+		%local.pagenums.attrib;
+>
+<!--end of pagenums.attlist-->]]>
+<!--end of pagenums.module-->]]>
+
+<!-- Personal identity elements ....... -->
+
+<!-- These elements are used only within Author, Editor, and 
+OtherCredit. -->
+
+<!ENTITY % person.ident.module "INCLUDE">
+<![%person.ident.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and
+a new wrapper element created to allow association of those two elements
+with Contrib name information.
+......................
+-->
+  <!ENTITY % contrib.module "INCLUDE">
+  <![%contrib.module;[
+  <!ENTITY % local.contrib.attrib "">
+  <!ENTITY % contrib.role.attrib "%role.attrib;">
+  
+<!ENTITY % contrib.element "INCLUDE">
+<![%contrib.element;[
+<!ELEMENT contrib (%docinfo.char.mix;)*>
+<!--end of contrib.element-->]]>
+  
+<!ENTITY % contrib.attlist "INCLUDE">
+<![%contrib.attlist;[
+<!ATTLIST contrib
+		%common.attrib;
+		%contrib.role.attrib;
+		%local.contrib.attrib;
+>
+<!--end of contrib.attlist-->]]>
+  <!--end of contrib.module-->]]>
+
+  <!ENTITY % firstname.module "INCLUDE">
+  <![%firstname.module;[
+  <!ENTITY % local.firstname.attrib "">
+  <!ENTITY % firstname.role.attrib "%role.attrib;">
+  
+<!ENTITY % firstname.element "INCLUDE">
+<![%firstname.element;[
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!--end of firstname.element-->]]>
+  
+<!ENTITY % firstname.attlist "INCLUDE">
+<![%firstname.attlist;[
+<!ATTLIST firstname
+		%common.attrib;
+		%firstname.role.attrib;
+		%local.firstname.attrib;
+>
+<!--end of firstname.attlist-->]]>
+  <!--end of firstname.module-->]]>
+
+  <!ENTITY % honorific.module "INCLUDE">
+  <![%honorific.module;[
+  <!ENTITY % local.honorific.attrib "">
+  <!ENTITY % honorific.role.attrib "%role.attrib;">
+  
+<!ENTITY % honorific.element "INCLUDE">
+<![%honorific.element;[
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!--end of honorific.element-->]]>
+  
+<!ENTITY % honorific.attlist "INCLUDE">
+<![%honorific.attlist;[
+<!ATTLIST honorific
+		%common.attrib;
+		%honorific.role.attrib;
+		%local.honorific.attrib;
+>
+<!--end of honorific.attlist-->]]>
+  <!--end of honorific.module-->]]>
+
+  <!ENTITY % lineage.module "INCLUDE">
+  <![%lineage.module;[
+  <!ENTITY % local.lineage.attrib "">
+  <!ENTITY % lineage.role.attrib "%role.attrib;">
+  
+<!ENTITY % lineage.element "INCLUDE">
+<![%lineage.element;[
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!--end of lineage.element-->]]>
+  
+<!ENTITY % lineage.attlist "INCLUDE">
+<![%lineage.attlist;[
+<!ATTLIST lineage
+		%common.attrib;
+		%lineage.role.attrib;
+		%local.lineage.attrib;
+>
+<!--end of lineage.attlist-->]]>
+  <!--end of lineage.module-->]]>
+
+  <!ENTITY % othername.module "INCLUDE">
+  <![%othername.module;[
+  <!ENTITY % local.othername.attrib "">
+  <!ENTITY % othername.role.attrib "%role.attrib;">
+  
+<!ENTITY % othername.element "INCLUDE">
+<![%othername.element;[
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!--end of othername.element-->]]>
+  
+<!ENTITY % othername.attlist "INCLUDE">
+<![%othername.attlist;[
+<!ATTLIST othername
+		%common.attrib;
+		%othername.role.attrib;
+		%local.othername.attrib;
+>
+<!--end of othername.attlist-->]]>
+  <!--end of othername.module-->]]>
+
+  <!ENTITY % surname.module "INCLUDE">
+  <![%surname.module;[
+  <!ENTITY % local.surname.attrib "">
+  <!ENTITY % surname.role.attrib "%role.attrib;">
+  
+<!ENTITY % surname.element "INCLUDE">
+<![%surname.element;[
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!--end of surname.element-->]]>
+  
+<!ENTITY % surname.attlist "INCLUDE">
+<![%surname.attlist;[
+<!ATTLIST surname
+		%common.attrib;
+		%surname.role.attrib;
+		%local.surname.attrib;
+>
+<!--end of surname.attlist-->]]>
+  <!--end of surname.module-->]]>
+<!--end of person.ident.module-->]]>
+
+<!-- PrintHistory ..................... -->
+
+<!ENTITY % printhistory.module "INCLUDE">
+<![%printhistory.module;[
+<!ENTITY % local.printhistory.attrib "">
+<!ENTITY % printhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % printhistory.element "INCLUDE">
+<![%printhistory.element;[
+<!ELEMENT printhistory ((%para.class;)+)>
+<!--end of printhistory.element-->]]>
+
+<!ENTITY % printhistory.attlist "INCLUDE">
+<![%printhistory.attlist;[
+<!ATTLIST printhistory
+		%common.attrib;
+		%printhistory.role.attrib;
+		%local.printhistory.attrib;
+>
+<!--end of printhistory.attlist-->]]>
+<!--end of printhistory.module-->]]>
+
+<!-- ProductName ...................... -->
+
+<!ENTITY % productname.module "INCLUDE">
+<![%productname.module;[
+<!ENTITY % local.productname.attrib "">
+<!ENTITY % productname.role.attrib "%role.attrib;">
+
+<!ENTITY % productname.element "INCLUDE">
+<![%productname.element;[
+<!ELEMENT productname (%para.char.mix;)*>
+<!--end of productname.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % productname.attlist "INCLUDE">
+<![%productname.attlist;[
+<!ATTLIST productname
+		class		(service
+				|trade
+				|registered
+				|copyright)	'trade'
+		%common.attrib;
+		%productname.role.attrib;
+		%local.productname.attrib;
+>
+<!--end of productname.attlist-->]]>
+<!--end of productname.module-->]]>
+
+<!-- ProductNumber .................... -->
+
+<!ENTITY % productnumber.module "INCLUDE">
+<![%productnumber.module;[
+<!ENTITY % local.productnumber.attrib "">
+<!ENTITY % productnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % productnumber.element "INCLUDE">
+<![%productnumber.element;[
+<!ELEMENT productnumber (%docinfo.char.mix;)*>
+<!--end of productnumber.element-->]]>
+
+<!ENTITY % productnumber.attlist "INCLUDE">
+<![%productnumber.attlist;[
+<!ATTLIST productnumber
+		%common.attrib;
+		%productnumber.role.attrib;
+		%local.productnumber.attrib;
+>
+<!--end of productnumber.attlist-->]]>
+<!--end of productnumber.module-->]]>
+
+<!-- PubDate .......................... -->
+
+<!ENTITY % pubdate.module "INCLUDE">
+<![%pubdate.module;[
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+
+<!ENTITY % pubdate.element "INCLUDE">
+<![%pubdate.element;[
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!--end of pubdate.element-->]]>
+
+<!ENTITY % pubdate.attlist "INCLUDE">
+<![%pubdate.attlist;[
+<!ATTLIST pubdate
+		%common.attrib;
+		%pubdate.role.attrib;
+		%local.pubdate.attrib;
+>
+<!--end of pubdate.attlist-->]]>
+<!--end of pubdate.module-->]]>
+
+<!-- Publisher ........................ -->
+
+<!ENTITY % publisher.content.module "INCLUDE">
+<![%publisher.content.module;[
+<!ENTITY % publisher.module "INCLUDE">
+<![%publisher.module;[
+<!ENTITY % local.publisher.attrib "">
+<!ENTITY % publisher.role.attrib "%role.attrib;">
+
+<!ENTITY % publisher.element "INCLUDE">
+<![%publisher.element;[
+<!ELEMENT publisher (publishername, address*)>
+<!--end of publisher.element-->]]>
+
+<!ENTITY % publisher.attlist "INCLUDE">
+<![%publisher.attlist;[
+<!ATTLIST publisher
+		%common.attrib;
+		%publisher.role.attrib;
+		%local.publisher.attrib;
+>
+<!--end of publisher.attlist-->]]>
+<!--end of publisher.module-->]]>
+
+  <!ENTITY % publishername.module "INCLUDE">
+  <![%publishername.module;[
+  <!ENTITY % local.publishername.attrib "">
+  <!ENTITY % publishername.role.attrib "%role.attrib;">
+  
+<!ENTITY % publishername.element "INCLUDE">
+<![%publishername.element;[
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!--end of publishername.element-->]]>
+  
+<!ENTITY % publishername.attlist "INCLUDE">
+<![%publishername.attlist;[
+<!ATTLIST publishername
+		%common.attrib;
+		%publishername.role.attrib;
+		%local.publishername.attrib;
+>
+<!--end of publishername.attlist-->]]>
+  <!--end of publishername.module-->]]>
+
+  <!--ELEMENT Address (defined elsewhere in this section)-->
+<!--end of publisher.content.module-->]]>
+
+<!-- PubsNumber ....................... -->
+
+<!ENTITY % pubsnumber.module "INCLUDE">
+<![%pubsnumber.module;[
+<!ENTITY % local.pubsnumber.attrib "">
+<!ENTITY % pubsnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % pubsnumber.element "INCLUDE">
+<![%pubsnumber.element;[
+<!ELEMENT pubsnumber (%docinfo.char.mix;)*>
+<!--end of pubsnumber.element-->]]>
+
+<!ENTITY % pubsnumber.attlist "INCLUDE">
+<![%pubsnumber.attlist;[
+<!ATTLIST pubsnumber
+		%common.attrib;
+		%pubsnumber.role.attrib;
+		%local.pubsnumber.attrib;
+>
+<!--end of pubsnumber.attlist-->]]>
+<!--end of pubsnumber.module-->]]>
+
+<!-- ReleaseInfo ...................... -->
+
+<!ENTITY % releaseinfo.module "INCLUDE">
+<![%releaseinfo.module;[
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % releaseinfo.element "INCLUDE">
+<![%releaseinfo.element;[
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!--end of releaseinfo.element-->]]>
+
+<!ENTITY % releaseinfo.attlist "INCLUDE">
+<![%releaseinfo.attlist;[
+<!ATTLIST releaseinfo
+		%common.attrib;
+		%releaseinfo.role.attrib;
+		%local.releaseinfo.attrib;
+>
+<!--end of releaseinfo.attlist-->]]>
+<!--end of releaseinfo.module-->]]>
+
+<!-- RevHistory ....................... -->
+
+<!ENTITY % revhistory.content.module "INCLUDE">
+<![%revhistory.content.module;[
+<!ENTITY % revhistory.module "INCLUDE">
+<![%revhistory.module;[
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % revhistory.element "INCLUDE">
+<![%revhistory.element;[
+<!ELEMENT revhistory (revision+)>
+<!--end of revhistory.element-->]]>
+
+<!ENTITY % revhistory.attlist "INCLUDE">
+<![%revhistory.attlist;[
+<!ATTLIST revhistory
+		%common.attrib;
+		%revhistory.role.attrib;
+		%local.revhistory.attrib;
+>
+<!--end of revhistory.attlist-->]]>
+<!--end of revhistory.module-->]]>
+
+  <!ENTITY % revision.module "INCLUDE">
+  <![%revision.module;[
+  <!ENTITY % local.revision.attrib "">
+  <!ENTITY % revision.role.attrib "%role.attrib;">
+  
+<!ENTITY % revision.element "INCLUDE">
+<![%revision.element;[
+<!ELEMENT revision (revnumber, date, authorinitials*, revremark?)>
+<!--end of revision.element-->]]>
+  
+<!ENTITY % revision.attlist "INCLUDE">
+<![%revision.attlist;[
+<!ATTLIST revision
+		%common.attrib;
+		%revision.role.attrib;
+		%local.revision.attrib;
+>
+<!--end of revision.attlist-->]]>
+  <!--end of revision.module-->]]>
+
+  <!ENTITY % revnumber.module "INCLUDE">
+  <![%revnumber.module;[
+  <!ENTITY % local.revnumber.attrib "">
+  <!ENTITY % revnumber.role.attrib "%role.attrib;">
+  
+<!ENTITY % revnumber.element "INCLUDE">
+<![%revnumber.element;[
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!--end of revnumber.element-->]]>
+  
+<!ENTITY % revnumber.attlist "INCLUDE">
+<![%revnumber.attlist;[
+<!ATTLIST revnumber
+		%common.attrib;
+		%revnumber.role.attrib;
+		%local.revnumber.attrib;
+>
+<!--end of revnumber.attlist-->]]>
+  <!--end of revnumber.module-->]]>
+
+  <!--ELEMENT Date (defined elsewhere in this section)-->
+  <!--ELEMENT AuthorInitials (defined elsewhere in this section)-->
+
+  <!ENTITY % revremark.module "INCLUDE">
+  <![%revremark.module;[
+  <!ENTITY % local.revremark.attrib "">
+  <!ENTITY % revremark.role.attrib "%role.attrib;">
+  
+<!ENTITY % revremark.element "INCLUDE">
+<![%revremark.element;[
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!--end of revremark.element-->]]>
+  
+<!ENTITY % revremark.attlist "INCLUDE">
+<![%revremark.attlist;[
+<!ATTLIST revremark
+		%common.attrib;
+		%revremark.role.attrib;
+		%local.revremark.attrib;
+>
+<!--end of revremark.attlist-->]]>
+  <!--end of revremark.module-->]]>
+<!--end of revhistory.content.module-->]]>
+
+<!-- SeriesVolNums .................... -->
+
+<!ENTITY % seriesvolnums.module "INCLUDE">
+<![%seriesvolnums.module;[
+<!ENTITY % local.seriesvolnums.attrib "">
+<!ENTITY % seriesvolnums.role.attrib "%role.attrib;">
+
+<!ENTITY % seriesvolnums.element "INCLUDE">
+<![%seriesvolnums.element;[
+<!ELEMENT seriesvolnums (%docinfo.char.mix;)*>
+<!--end of seriesvolnums.element-->]]>
+
+<!ENTITY % seriesvolnums.attlist "INCLUDE">
+<![%seriesvolnums.attlist;[
+<!ATTLIST seriesvolnums
+		%common.attrib;
+		%seriesvolnums.role.attrib;
+		%local.seriesvolnums.attrib;
+>
+<!--end of seriesvolnums.attlist-->]]>
+<!--end of seriesvolnums.module-->]]>
+
+<!-- VolumeNum ........................ -->
+
+<!ENTITY % volumenum.module "INCLUDE">
+<![%volumenum.module;[
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+
+<!ENTITY % volumenum.element "INCLUDE">
+<![%volumenum.element;[
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!--end of volumenum.element-->]]>
+
+<!ENTITY % volumenum.attlist "INCLUDE">
+<![%volumenum.attlist;[
+<!ATTLIST volumenum
+		%common.attrib;
+		%volumenum.role.attrib;
+		%local.volumenum.attrib;
+>
+<!--end of volumenum.attlist-->]]>
+<!--end of volumenum.module-->]]>
+
+<!-- .................................. -->
+
+<!--end of docinfo.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Inline, link, and ubiquitous elements ................................ -->
+
+<!-- Technical and computer terms ......................................... -->
+
+<!ENTITY % accel.module "INCLUDE">
+<![%accel.module;[
+<!ENTITY % local.accel.attrib "">
+<!ENTITY % accel.role.attrib "%role.attrib;">
+
+<!ENTITY % accel.element "INCLUDE">
+<![%accel.element;[
+<!ELEMENT accel (%smallcptr.char.mix;)*>
+<!--end of accel.element-->]]>
+
+<!ENTITY % accel.attlist "INCLUDE">
+<![%accel.attlist;[
+<!ATTLIST accel
+		%common.attrib;
+		%accel.role.attrib;
+		%local.accel.attrib;
+>
+<!--end of accel.attlist-->]]>
+<!--end of accel.module-->]]>
+
+<!ENTITY % action.module "INCLUDE">
+<![%action.module;[
+<!--FUTURE USE (V4.0):
+......................
+Action will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.action.attrib "">
+<!ENTITY % action.role.attrib "%role.attrib;">
+
+<!ENTITY % action.element "INCLUDE">
+<![%action.element;[
+<!ELEMENT action (%cptr.char.mix;)*>
+<!--end of action.element-->]]>
+
+<!ENTITY % action.attlist "INCLUDE">
+<![%action.attlist;[
+<!ATTLIST action
+		%moreinfo.attrib;
+		%common.attrib;
+		%action.role.attrib;
+		%local.action.attrib;
+>
+<!--end of action.attlist-->]]>
+<!--end of action.module-->]]>
+
+<!ENTITY % application.module "INCLUDE">
+<![%application.module;[
+<!ENTITY % local.application.attrib "">
+<!ENTITY % application.role.attrib "%role.attrib;">
+
+<!ENTITY % application.element "INCLUDE">
+<![%application.element;[
+<!ELEMENT application (%para.char.mix;)*>
+<!--end of application.element-->]]>
+
+<!ENTITY % application.attlist "INCLUDE">
+<![%application.attlist;[
+<!ATTLIST application
+		class 		(hardware
+				|software)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%application.role.attrib;
+		%local.application.attrib;
+>
+<!--end of application.attlist-->]]>
+<!--end of application.module-->]]>
+
+<!ENTITY % classname.module "INCLUDE">
+<![%classname.module;[
+<!ENTITY % local.classname.attrib "">
+<!ENTITY % classname.role.attrib "%role.attrib;">
+
+<!ENTITY % classname.element "INCLUDE">
+<![%classname.element;[
+<!ELEMENT classname (%smallcptr.char.mix;)*>
+<!--end of classname.element-->]]>
+
+<!ENTITY % classname.attlist "INCLUDE">
+<![%classname.attlist;[
+<!ATTLIST classname
+		%common.attrib;
+		%classname.role.attrib;
+		%local.classname.attrib;
+>
+<!--end of classname.attlist-->]]>
+<!--end of classname.module-->]]>
+
+<!ENTITY % co.module "INCLUDE">
+<![%co.module;[
+<!ENTITY % local.co.attrib "">
+<!-- CO is a callout area of the LineColumn unit type (a single character 
+     position); the position is directly indicated by the location of CO. -->
+<!ENTITY % co.role.attrib "%role.attrib;">
+
+<!ENTITY % co.element "INCLUDE">
+<![%co.element;[
+<!ELEMENT co EMPTY>
+<!--end of co.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+
+
+<!ENTITY % co.attlist "INCLUDE">
+<![%co.attlist;[
+<!ATTLIST co
+		%label.attrib;
+		%linkends.attrib;
+		%idreq.common.attrib;
+		%co.role.attrib;
+		%local.co.attrib;
+>
+<!--end of co.attlist-->]]>
+<!--end of co.module-->]]>
+
+<!ENTITY % command.module "INCLUDE">
+<![%command.module;[
+<!--FUTURE USE (V4.0):
+......................
+Command will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+
+<!ENTITY % command.element "INCLUDE">
+<![%command.element;[
+<!ELEMENT command (%cptr.char.mix;)*>
+<!--end of command.element-->]]>
+
+<!ENTITY % command.attlist "INCLUDE">
+<![%command.attlist;[
+<!ATTLIST command
+		%moreinfo.attrib;
+		%common.attrib;
+		%command.role.attrib;
+		%local.command.attrib;
+>
+<!--end of command.attlist-->]]>
+<!--end of command.module-->]]>
+
+<!ENTITY % computeroutput.module "INCLUDE">
+<![%computeroutput.module;[
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+
+<!ENTITY % computeroutput.element "INCLUDE">
+<![%computeroutput.element;[
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!--end of computeroutput.element-->]]>
+
+<!ENTITY % computeroutput.attlist "INCLUDE">
+<![%computeroutput.attlist;[
+<!ATTLIST computeroutput
+		%moreinfo.attrib;
+		%common.attrib;
+		%computeroutput.role.attrib;
+		%local.computeroutput.attrib;
+>
+<!--end of computeroutput.attlist-->]]>
+<!--end of computeroutput.module-->]]>
+
+<!ENTITY % database.module "INCLUDE">
+<![%database.module;[
+<!--FUTURE USE (V4.0):
+......................
+Database will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.database.attrib "">
+<!ENTITY % database.role.attrib "%role.attrib;">
+
+<!ENTITY % database.element "INCLUDE">
+<![%database.element;[
+<!ELEMENT database (%cptr.char.mix;)*>
+<!--end of database.element-->]]>
+
+<!-- Class: Type of database the element names; no default -->
+
+
+<!ENTITY % database.attlist "INCLUDE">
+<![%database.attlist;[
+<!ATTLIST database
+		class 		(name
+				|table
+				|field
+				|key1
+				|key2
+				|record)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%database.role.attrib;
+		%local.database.attrib;
+>
+<!--end of database.attlist-->]]>
+<!--end of database.module-->]]>
+
+<!ENTITY % email.module "INCLUDE">
+<![%email.module;[
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+
+<!ENTITY % email.element "INCLUDE">
+<![%email.element;[
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!--end of email.element-->]]>
+
+<!ENTITY % email.attlist "INCLUDE">
+<![%email.attlist;[
+<!ATTLIST email
+		%common.attrib;
+		%email.role.attrib;
+		%local.email.attrib;
+>
+<!--end of email.attlist-->]]>
+<!--end of email.module-->]]>
+
+<!ENTITY % envar.module "INCLUDE">
+<![%envar.module;[
+<!ENTITY % local.envar.attrib "">
+<!ENTITY % envar.role.attrib "%role.attrib;">
+
+<!ENTITY % envar.element "INCLUDE">
+<![%envar.element;[
+<!ELEMENT envar (%smallcptr.char.mix;)*>
+<!--end of envar.element-->]]>
+
+<!ENTITY % envar.attlist "INCLUDE">
+<![%envar.attlist;[
+<!ATTLIST envar
+		%common.attrib;
+		%envar.role.attrib;
+		%local.envar.attrib;
+>
+<!--end of envar.attlist-->]]>
+<!--end of envar.module-->]]>
+
+
+<!ENTITY % errorcode.module "INCLUDE">
+<![%errorcode.module;[
+<!ENTITY % local.errorcode.attrib "">
+<!ENTITY % errorcode.role.attrib "%role.attrib;">
+
+<!ENTITY % errorcode.element "INCLUDE">
+<![%errorcode.element;[
+<!ELEMENT errorcode (%smallcptr.char.mix;)*>
+<!--end of errorcode.element-->]]>
+
+<!ENTITY % errorcode.attlist "INCLUDE">
+<![%errorcode.attlist;[
+<!ATTLIST errorcode
+		%moreinfo.attrib;
+		%common.attrib;
+		%errorcode.role.attrib;
+		%local.errorcode.attrib;
+>
+<!--end of errorcode.attlist-->]]>
+<!--end of errorcode.module-->]]>
+
+<!ENTITY % errorname.module "INCLUDE">
+<![%errorname.module;[
+<!ENTITY % local.errorname.attrib "">
+<!ENTITY % errorname.role.attrib "%role.attrib;">
+
+<!ENTITY % errorname.element "INCLUDE">
+<![%errorname.element;[
+<!ELEMENT errorname (%smallcptr.char.mix;)*>
+<!--end of errorname.element-->]]>
+
+<!ENTITY % errorname.attlist "INCLUDE">
+<![%errorname.attlist;[
+<!ATTLIST errorname
+		%common.attrib;
+		%errorname.role.attrib;
+		%local.errorname.attrib;
+>
+<!--end of errorname.attlist-->]]>
+<!--end of errorname.module-->]]>
+
+<!ENTITY % errortype.module "INCLUDE">
+<![%errortype.module;[
+<!ENTITY % local.errortype.attrib "">
+<!ENTITY % errortype.role.attrib "%role.attrib;">
+
+<!ENTITY % errortype.element "INCLUDE">
+<![%errortype.element;[
+<!ELEMENT errortype (%smallcptr.char.mix;)*>
+<!--end of errortype.element-->]]>
+
+<!ENTITY % errortype.attlist "INCLUDE">
+<![%errortype.attlist;[
+<!ATTLIST errortype
+		%common.attrib;
+		%errortype.role.attrib;
+		%local.errortype.attrib;
+>
+<!--end of errortype.attlist-->]]>
+<!--end of errortype.module-->]]>
+
+<!ENTITY % filename.module "INCLUDE">
+<![%filename.module;[
+<!--FUTURE USE (V4.0):
+......................
+Filename will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+
+<!ENTITY % filename.element "INCLUDE">
+<![%filename.element;[
+<!ELEMENT filename (%cptr.char.mix;)*>
+<!--end of filename.element-->]]>
+
+<!-- Class: Type of filename the element names; no default -->
+<!-- Path: Search path (possibly system-specific) in which 
+		file can be found -->
+
+
+<!ENTITY % filename.attlist "INCLUDE">
+<![%filename.attlist;[
+<!ATTLIST filename
+		class		(headerfile
+				|symlink
+				|directory)	#IMPLIED
+		path		CDATA		#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%filename.role.attrib;
+		%local.filename.attrib;
+>
+<!--end of filename.attlist-->]]>
+<!--end of filename.module-->]]>
+
+<!ENTITY % function.module "INCLUDE">
+<![%function.module;[
+<!ENTITY % local.function.attrib "">
+<!ENTITY % function.role.attrib "%role.attrib;">
+
+<!ENTITY % function.element "INCLUDE">
+<![%function.element;[
+<!ELEMENT function (%cptr.char.mix;)*>
+<!--end of function.element-->]]>
+
+<!ENTITY % function.attlist "INCLUDE">
+<![%function.attlist;[
+<!ATTLIST function
+		%moreinfo.attrib;
+		%common.attrib;
+		%function.role.attrib;
+		%local.function.attrib;
+>
+<!--end of function.attlist-->]]>
+<!--end of function.module-->]]>
+
+<!ENTITY % guibutton.module "INCLUDE">
+<![%guibutton.module;[
+<!ENTITY % local.guibutton.attrib "">
+<!ENTITY % guibutton.role.attrib "%role.attrib;">
+
+<!ENTITY % guibutton.element "INCLUDE">
+<![%guibutton.element;[
+<!ELEMENT guibutton (%smallcptr.char.mix;|accel)*>
+<!--end of guibutton.element-->]]>
+
+<!ENTITY % guibutton.attlist "INCLUDE">
+<![%guibutton.attlist;[
+<!ATTLIST guibutton
+		%moreinfo.attrib;
+		%common.attrib;
+		%guibutton.role.attrib;
+		%local.guibutton.attrib;
+>
+<!--end of guibutton.attlist-->]]>
+<!--end of guibutton.module-->]]>
+
+<!ENTITY % guiicon.module "INCLUDE">
+<![%guiicon.module;[
+<!ENTITY % local.guiicon.attrib "">
+<!ENTITY % guiicon.role.attrib "%role.attrib;">
+
+<!ENTITY % guiicon.element "INCLUDE">
+<![%guiicon.element;[
+<!ELEMENT guiicon (%smallcptr.char.mix;|accel)*>
+<!--end of guiicon.element-->]]>
+
+<!ENTITY % guiicon.attlist "INCLUDE">
+<![%guiicon.attlist;[
+<!ATTLIST guiicon
+		%moreinfo.attrib;
+		%common.attrib;
+		%guiicon.role.attrib;
+		%local.guiicon.attrib;
+>
+<!--end of guiicon.attlist-->]]>
+<!--end of guiicon.module-->]]>
+
+<!ENTITY % guilabel.module "INCLUDE">
+<![%guilabel.module;[
+<!ENTITY % local.guilabel.attrib "">
+<!ENTITY % guilabel.role.attrib "%role.attrib;">
+
+<!ENTITY % guilabel.element "INCLUDE">
+<![%guilabel.element;[
+<!ELEMENT guilabel (%smallcptr.char.mix;|accel)*>
+<!--end of guilabel.element-->]]>
+
+<!ENTITY % guilabel.attlist "INCLUDE">
+<![%guilabel.attlist;[
+<!ATTLIST guilabel
+		%moreinfo.attrib;
+		%common.attrib;
+		%guilabel.role.attrib;
+		%local.guilabel.attrib;
+>
+<!--end of guilabel.attlist-->]]>
+<!--end of guilabel.module-->]]>
+
+<!ENTITY % guimenu.module "INCLUDE">
+<![%guimenu.module;[
+<!ENTITY % local.guimenu.attrib "">
+<!ENTITY % guimenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenu.element "INCLUDE">
+<![%guimenu.element;[
+<!ELEMENT guimenu (%smallcptr.char.mix;|accel)*>
+<!--end of guimenu.element-->]]>
+
+<!ENTITY % guimenu.attlist "INCLUDE">
+<![%guimenu.attlist;[
+<!ATTLIST guimenu
+		%moreinfo.attrib;
+		%common.attrib;
+		%guimenu.role.attrib;
+		%local.guimenu.attrib;
+>
+<!--end of guimenu.attlist-->]]>
+<!--end of guimenu.module-->]]>
+
+<!ENTITY % guimenuitem.module "INCLUDE">
+<![%guimenuitem.module;[
+<!ENTITY % local.guimenuitem.attrib "">
+<!ENTITY % guimenuitem.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenuitem.element "INCLUDE">
+<![%guimenuitem.element;[
+<!ELEMENT guimenuitem (%smallcptr.char.mix;|accel)*>
+<!--end of guimenuitem.element-->]]>
+
+<!ENTITY % guimenuitem.attlist "INCLUDE">
+<![%guimenuitem.attlist;[
+<!ATTLIST guimenuitem
+		%moreinfo.attrib;
+		%common.attrib;
+		%guimenuitem.role.attrib;
+		%local.guimenuitem.attrib;
+>
+<!--end of guimenuitem.attlist-->]]>
+<!--end of guimenuitem.module-->]]>
+
+<!ENTITY % guisubmenu.module "INCLUDE">
+<![%guisubmenu.module;[
+<!ENTITY % local.guisubmenu.attrib "">
+<!ENTITY % guisubmenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guisubmenu.element "INCLUDE">
+<![%guisubmenu.element;[
+<!ELEMENT guisubmenu (%smallcptr.char.mix;|accel)*>
+<!--end of guisubmenu.element-->]]>
+
+<!ENTITY % guisubmenu.attlist "INCLUDE">
+<![%guisubmenu.attlist;[
+<!ATTLIST guisubmenu
+		%moreinfo.attrib;
+		%common.attrib;
+		%guisubmenu.role.attrib;
+		%local.guisubmenu.attrib;
+>
+<!--end of guisubmenu.attlist-->]]>
+<!--end of guisubmenu.module-->]]>
+
+<!ENTITY % hardware.module "INCLUDE">
+<![%hardware.module;[
+<!--FUTURE USE (V4.0):
+......................
+Hardware will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.hardware.attrib "">
+<!ENTITY % hardware.role.attrib "%role.attrib;">
+
+<!ENTITY % hardware.element "INCLUDE">
+<![%hardware.element;[
+<!ELEMENT hardware (%cptr.char.mix;)*>
+<!--end of hardware.element-->]]>
+
+<!ENTITY % hardware.attlist "INCLUDE">
+<![%hardware.attlist;[
+<!ATTLIST hardware
+		%moreinfo.attrib;
+		%common.attrib;
+		%hardware.role.attrib;
+		%local.hardware.attrib;
+>
+<!--end of hardware.attlist-->]]>
+<!--end of hardware.module-->]]>
+
+<!ENTITY % interface.module "INCLUDE">
+<![%interface.module;[
+<!--FUTURE USE (V4.0):
+......................
+Interface will no longer have a Class attribute; if you want to subclass
+interface information, use GUIButton, GUIIcon, GUILabel, GUIMenu,
+GUIMenuItem, or GUISubmenu, or use a Role value on Interface.  Also,
+Interface will have its  content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.interface.attrib "">
+<!ENTITY % interface.role.attrib "%role.attrib;">
+
+<!ENTITY % interface.element "INCLUDE">
+<![%interface.element;[
+<!ELEMENT interface (%cptr.char.mix;|accel)*>
+<!--end of interface.element-->]]>
+
+<!-- Class: Type of the Interface item; no default -->
+
+
+<!ENTITY % interface.attlist "INCLUDE">
+<![%interface.attlist;[
+<!ATTLIST interface
+		class 		(button
+				|icon
+				|menu
+				|menuitem)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%interface.role.attrib;
+		%local.interface.attrib;
+>
+<!--end of interface.attlist-->]]>
+<!--end of interface.module-->]]>
+
+<!ENTITY % interfacedefinition.module "INCLUDE">
+<![%interfacedefinition.module;[
+<!--FUTURE USE (V4.0):
+......................
+InterfaceDefinition will be discarded. 
+......................
+-->
+<!ENTITY % local.interfacedefinition.attrib "">
+<!ENTITY % interfacedefinition.role.attrib "%role.attrib;">
+
+<!ENTITY % interfacedefinition.element "INCLUDE">
+<![%interfacedefinition.element;[
+<!ELEMENT interfacedefinition (%cptr.char.mix;)*>
+<!--end of interfacedefinition.element-->]]>
+
+<!ENTITY % interfacedefinition.attlist "INCLUDE">
+<![%interfacedefinition.attlist;[
+<!ATTLIST interfacedefinition
+		%moreinfo.attrib;
+		%common.attrib;
+		%interfacedefinition.role.attrib;
+		%local.interfacedefinition.attrib;
+>
+<!--end of interfacedefinition.attlist-->]]>
+<!--end of interfacedefinition.module-->]]>
+
+<!ENTITY % keycap.module "INCLUDE">
+<![%keycap.module;[
+<!--FUTURE USE (V4.0):
+......................
+KeyCap will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.keycap.attrib "">
+<!ENTITY % keycap.role.attrib "%role.attrib;">
+
+<!ENTITY % keycap.element "INCLUDE">
+<![%keycap.element;[
+<!ELEMENT keycap (%cptr.char.mix;)*>
+<!--end of keycap.element-->]]>
+
+<!ENTITY % keycap.attlist "INCLUDE">
+<![%keycap.attlist;[
+<!ATTLIST keycap
+		%moreinfo.attrib;
+		%common.attrib;
+		%keycap.role.attrib;
+		%local.keycap.attrib;
+>
+<!--end of keycap.attlist-->]]>
+<!--end of keycap.module-->]]>
+
+<!ENTITY % keycode.module "INCLUDE">
+<![%keycode.module;[
+<!ENTITY % local.keycode.attrib "">
+<!ENTITY % keycode.role.attrib "%role.attrib;">
+
+<!ENTITY % keycode.element "INCLUDE">
+<![%keycode.element;[
+<!ELEMENT keycode (%smallcptr.char.mix;)*>
+<!--end of keycode.element-->]]>
+
+<!ENTITY % keycode.attlist "INCLUDE">
+<![%keycode.attlist;[
+<!ATTLIST keycode
+		%common.attrib;
+		%keycode.role.attrib;
+		%local.keycode.attrib;
+>
+<!--end of keycode.attlist-->]]>
+<!--end of keycode.module-->]]>
+
+<!ENTITY % keycombo.module "INCLUDE">
+<![%keycombo.module;[
+<!ENTITY % local.keycombo.attrib "">
+<!ENTITY % keycombo.role.attrib "%role.attrib;">
+
+<!ENTITY % keycombo.element "INCLUDE">
+<![%keycombo.element;[
+<!ELEMENT keycombo ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of keycombo.element-->]]>
+
+<!ENTITY % keycombo.attlist "INCLUDE">
+<![%keycombo.attlist;[
+<!ATTLIST keycombo
+		%keyaction.attrib;
+		%moreinfo.attrib;
+		%common.attrib;
+		%keycombo.role.attrib;
+		%local.keycombo.attrib;
+>
+<!--end of keycombo.attlist-->]]>
+<!--end of keycombo.module-->]]>
+
+<!ENTITY % keysym.module "INCLUDE">
+<![%keysym.module;[
+<!ENTITY % local.keysym.attrib "">
+<!ENTITY % keysysm.role.attrib "%role.attrib;">
+
+<!ENTITY % keysym.element "INCLUDE">
+<![%keysym.element;[
+<!ELEMENT keysym (%smallcptr.char.mix;)*>
+<!--end of keysym.element-->]]>
+
+<!ENTITY % keysym.attlist "INCLUDE">
+<![%keysym.attlist;[
+<!ATTLIST keysym
+		%common.attrib;
+		%keysysm.role.attrib;
+		%local.keysym.attrib;
+>
+<!--end of keysym.attlist-->]]>
+<!--end of keysym.module-->]]>
+
+<!ENTITY % lineannotation.module "INCLUDE">
+<![%lineannotation.module;[
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+
+<!ENTITY % lineannotation.element "INCLUDE">
+<![%lineannotation.element;[
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!--end of lineannotation.element-->]]>
+
+<!ENTITY % lineannotation.attlist "INCLUDE">
+<![%lineannotation.attlist;[
+<!ATTLIST lineannotation
+		%common.attrib;
+		%lineannotation.role.attrib;
+		%local.lineannotation.attrib;
+>
+<!--end of lineannotation.attlist-->]]>
+<!--end of lineannotation.module-->]]>
+
+<!ENTITY % literal.module "INCLUDE">
+<![%literal.module;[
+<!--FUTURE USE (V4.0):
+......................
+Literal will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+
+<!ENTITY % literal.element "INCLUDE">
+<![%literal.element;[
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!--end of literal.element-->]]>
+
+<!ENTITY % literal.attlist "INCLUDE">
+<![%literal.attlist;[
+<!ATTLIST literal
+		%moreinfo.attrib;
+		%common.attrib;
+		%literal.role.attrib;
+		%local.literal.attrib;
+>
+<!--end of literal.attlist-->]]>
+<!--end of literal.module-->]]>
+
+<!ENTITY % constant.module "INCLUDE">
+<![ %constant.module; [
+<!ENTITY % local.constant.attrib "">
+<!ENTITY % constant.role.attrib "%role.attrib;">
+
+<!ENTITY % constant.element "INCLUDE">
+<![ %constant.element; [
+<!ELEMENT constant (%smallcptr.char.mix;)*>
+<!--end of constant.element-->]]>
+
+<!ENTITY % constant.attlist "INCLUDE">
+<![ %constant.attlist; [
+<!ATTLIST constant
+		%common.attrib;
+		%constant.role.attrib;
+		%local.constant.attrib;
+		class	(limit)		#IMPLIED
+>
+<!--end of constant.attlist-->]]>
+<!--end of constant.module-->]]>
+
+<!ENTITY % varname.module "INCLUDE">
+<![ %varname.module; [
+<!ENTITY % local.varname.attrib "">
+<!ENTITY % varname.role.attrib "%role.attrib;">
+
+<!ENTITY % varname.element "INCLUDE">
+<![ %varname.element; [
+<!ELEMENT varname (%smallcptr.char.mix;)*>
+<!--end of varname.element-->]]>
+
+<!ENTITY % varname.attlist "INCLUDE">
+<![ %varname.attlist; [
+<!ATTLIST varname
+		%common.attrib;
+		%varname.role.attrib;
+		%local.varname.attrib;
+>
+<!--end of varname.attlist-->]]>
+<!--end of varname.module-->]]>
+
+<!ENTITY % markup.module "INCLUDE">
+<![%markup.module;[
+<!ENTITY % local.markup.attrib "">
+<!ENTITY % markup.role.attrib "%role.attrib;">
+
+<!ENTITY % markup.element "INCLUDE">
+<![%markup.element;[
+<!ELEMENT markup (%smallcptr.char.mix;)*>
+<!--end of markup.element-->]]>
+
+<!ENTITY % markup.attlist "INCLUDE">
+<![%markup.attlist;[
+<!ATTLIST markup
+		%common.attrib;
+		%markup.role.attrib;
+		%local.markup.attrib;
+>
+<!--end of markup.attlist-->]]>
+<!--end of markup.module-->]]>
+
+<!ENTITY % medialabel.module "INCLUDE">
+<![%medialabel.module;[
+<!ENTITY % local.medialabel.attrib "">
+<!ENTITY % medialabel.role.attrib "%role.attrib;">
+
+<!ENTITY % medialabel.element "INCLUDE">
+<![%medialabel.element;[
+<!ELEMENT medialabel (%smallcptr.char.mix;)*>
+<!--end of medialabel.element-->]]>
+
+<!-- Class: Type of medium named by the element; no default -->
+
+
+<!ENTITY % medialabel.attlist "INCLUDE">
+<![%medialabel.attlist;[
+<!ATTLIST medialabel
+		class 		(cartridge
+				|cdrom
+				|disk
+				|tape)		#IMPLIED
+		%common.attrib;
+		%medialabel.role.attrib;
+		%local.medialabel.attrib;
+>
+<!--end of medialabel.attlist-->]]>
+<!--end of medialabel.module-->]]>
+
+<!ENTITY % menuchoice.content.module "INCLUDE">
+<![%menuchoice.content.module;[
+<!ENTITY % menuchoice.module "INCLUDE">
+<![%menuchoice.module;[
+<!ENTITY % local.menuchoice.attrib "">
+<!ENTITY % menuchoice.role.attrib "%role.attrib;">
+
+<!ENTITY % menuchoice.element "INCLUDE">
+<![%menuchoice.element;[
+<!ELEMENT menuchoice (shortcut?, (guibutton|guiicon|guilabel
+		|guimenu|guimenuitem|guisubmenu|interface)+)>
+<!--end of menuchoice.element-->]]>
+
+<!ENTITY % menuchoice.attlist "INCLUDE">
+<![%menuchoice.attlist;[
+<!ATTLIST menuchoice
+		%moreinfo.attrib;
+		%common.attrib;
+		%menuchoice.role.attrib;
+		%local.menuchoice.attrib;
+>
+<!--end of menuchoice.attlist-->]]>
+<!--end of menuchoice.module-->]]>
+
+<!ENTITY % shortcut.module "INCLUDE">
+<![%shortcut.module;[
+<!-- See also KeyCombo -->
+<!ENTITY % local.shortcut.attrib "">
+<!ENTITY % shortcut.role.attrib "%role.attrib;">
+
+<!ENTITY % shortcut.element "INCLUDE">
+<![%shortcut.element;[
+<!ELEMENT shortcut ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of shortcut.element-->]]>
+
+<!ENTITY % shortcut.attlist "INCLUDE">
+<![%shortcut.attlist;[
+<!ATTLIST shortcut
+		%keyaction.attrib;
+		%moreinfo.attrib;
+		%common.attrib;
+		%shortcut.role.attrib;
+		%local.shortcut.attrib;
+>
+<!--end of shortcut.attlist-->]]>
+<!--end of shortcut.module-->]]>
+<!--end of menuchoice.content.module-->]]>
+
+<!ENTITY % mousebutton.module "INCLUDE">
+<![%mousebutton.module;[
+<!ENTITY % local.mousebutton.attrib "">
+<!ENTITY % mousebutton.role.attrib "%role.attrib;">
+
+<!ENTITY % mousebutton.element "INCLUDE">
+<![%mousebutton.element;[
+<!ELEMENT mousebutton (%smallcptr.char.mix;)*>
+<!--end of mousebutton.element-->]]>
+
+<!ENTITY % mousebutton.attlist "INCLUDE">
+<![%mousebutton.attlist;[
+<!ATTLIST mousebutton
+		%moreinfo.attrib;
+		%common.attrib;
+		%mousebutton.role.attrib;
+		%local.mousebutton.attrib;
+>
+<!--end of mousebutton.attlist-->]]>
+<!--end of mousebutton.module-->]]>
+
+<!ENTITY % msgtext.module "INCLUDE">
+<![%msgtext.module;[
+<!ENTITY % local.msgtext.attrib "">
+<!ENTITY % msgtext.role.attrib "%role.attrib;">
+
+<!ENTITY % msgtext.element "INCLUDE">
+<![%msgtext.element;[
+<!ELEMENT msgtext ((%component.mix;)+)>
+<!--end of msgtext.element-->]]>
+
+<!ENTITY % msgtext.attlist "INCLUDE">
+<![%msgtext.attlist;[
+<!ATTLIST msgtext
+		%common.attrib;
+		%msgtext.role.attrib;
+		%local.msgtext.attrib;
+>
+<!--end of msgtext.attlist-->]]>
+<!--end of msgtext.module-->]]>
+
+<!ENTITY % option.module "INCLUDE">
+<![%option.module;[
+<!--FUTURE USE (V4.0):
+......................
+Option will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+
+<!ENTITY % option.element "INCLUDE">
+<![%option.element;[
+<!ELEMENT option (%cptr.char.mix;)*>
+<!--end of option.element-->]]>
+
+<!ENTITY % option.attlist "INCLUDE">
+<![%option.attlist;[
+<!ATTLIST option
+		%common.attrib;
+		%option.role.attrib;
+		%local.option.attrib;
+>
+<!--end of option.attlist-->]]>
+<!--end of option.module-->]]>
+
+<!ENTITY % optional.module "INCLUDE">
+<![%optional.module;[
+<!ENTITY % local.optional.attrib "">
+<!ENTITY % optional.role.attrib "%role.attrib;">
+
+<!ENTITY % optional.element "INCLUDE">
+<![%optional.element;[
+<!ELEMENT optional (%cptr.char.mix;)*>
+<!--end of optional.element-->]]>
+
+<!ENTITY % optional.attlist "INCLUDE">
+<![%optional.attlist;[
+<!ATTLIST optional
+		%common.attrib;
+		%optional.role.attrib;
+		%local.optional.attrib;
+>
+<!--end of optional.attlist-->]]>
+<!--end of optional.module-->]]>
+
+<!ENTITY % parameter.module "INCLUDE">
+<![%parameter.module;[
+<!--FUTURE USE (V4.0):
+......................
+Parameter will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.parameter.attrib "">
+<!ENTITY % parameter.role.attrib "%role.attrib;">
+
+<!ENTITY % parameter.element "INCLUDE">
+<![%parameter.element;[
+<!ELEMENT parameter (%cptr.char.mix;)*>
+<!--end of parameter.element-->]]>
+
+<!-- Class: Type of the Parameter; no default -->
+
+
+<!ENTITY % parameter.attlist "INCLUDE">
+<![%parameter.attlist;[
+<!ATTLIST parameter
+		class 		(command
+				|function
+				|option)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%parameter.role.attrib;
+		%local.parameter.attrib;
+>
+<!--end of parameter.attlist-->]]>
+<!--end of parameter.module-->]]>
+
+<!ENTITY % prompt.module "INCLUDE">
+<![%prompt.module;[
+<!ENTITY % local.prompt.attrib "">
+<!ENTITY % prompt.role.attrib "%role.attrib;">
+
+<!ENTITY % prompt.element "INCLUDE">
+<![%prompt.element;[
+<!ELEMENT prompt (%smallcptr.char.mix;)*>
+<!--end of prompt.element-->]]>
+
+<!ENTITY % prompt.attlist "INCLUDE">
+<![%prompt.attlist;[
+<!ATTLIST prompt
+		%moreinfo.attrib;
+		%common.attrib;
+		%prompt.role.attrib;
+		%local.prompt.attrib;
+>
+<!--end of prompt.attlist-->]]>
+<!--end of prompt.module-->]]>
+
+<!ENTITY % property.module "INCLUDE">
+<![%property.module;[
+<!--FUTURE USE (V4.0):
+......................
+Property will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.property.attrib "">
+<!ENTITY % property.role.attrib "%role.attrib;">
+
+<!ENTITY % property.element "INCLUDE">
+<![%property.element;[
+<!ELEMENT property (%cptr.char.mix;)*>
+<!--end of property.element-->]]>
+
+<!ENTITY % property.attlist "INCLUDE">
+<![%property.attlist;[
+<!ATTLIST property
+		%moreinfo.attrib;
+		%common.attrib;
+		%property.role.attrib;
+		%local.property.attrib;
+>
+<!--end of property.attlist-->]]>
+<!--end of property.module-->]]>
+
+<!ENTITY % replaceable.module "INCLUDE">
+<![%replaceable.module;[
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+
+<!ENTITY % replaceable.element "INCLUDE">
+<![%replaceable.element;[
+<!ELEMENT replaceable (#PCDATA 
+		| %link.char.class; 
+		| optional
+		| %base.char.class; 
+		| %other.char.class; 
+		| inlinegraphic
+                | inlinemediaobject)*>
+<!--end of replaceable.element-->]]>
+
+<!-- Class: Type of information the element represents; no
+		default -->
+
+
+<!ENTITY % replaceable.attlist "INCLUDE">
+<![%replaceable.attlist;[
+<!ATTLIST replaceable
+		class		(command
+				|function
+				|option
+				|parameter)	#IMPLIED
+		%common.attrib;
+		%replaceable.role.attrib;
+		%local.replaceable.attrib;
+>
+<!--end of replaceable.attlist-->]]>
+<!--end of replaceable.module-->]]>
+
+<!ENTITY % returnvalue.module "INCLUDE">
+<![%returnvalue.module;[
+<!ENTITY % local.returnvalue.attrib "">
+<!ENTITY % returnvalue.role.attrib "%role.attrib;">
+
+<!ENTITY % returnvalue.element "INCLUDE">
+<![%returnvalue.element;[
+<!ELEMENT returnvalue (%smallcptr.char.mix;)*>
+<!--end of returnvalue.element-->]]>
+
+<!ENTITY % returnvalue.attlist "INCLUDE">
+<![%returnvalue.attlist;[
+<!ATTLIST returnvalue
+		%common.attrib;
+		%returnvalue.role.attrib;
+		%local.returnvalue.attrib;
+>
+<!--end of returnvalue.attlist-->]]>
+<!--end of returnvalue.module-->]]>
+
+<!ENTITY % sgmltag.module "INCLUDE">
+<![%sgmltag.module;[
+<!ENTITY % local.sgmltag.attrib "">
+<!ENTITY % sgmltag.role.attrib "%role.attrib;">
+
+<!ENTITY % sgmltag.element "INCLUDE">
+<![%sgmltag.element;[
+<!ELEMENT sgmltag (%smallcptr.char.mix;)*>
+<!--end of sgmltag.element-->]]>
+
+<!-- Class: Type of SGML construct the element names; no default -->
+
+
+<!ENTITY % sgmltag.attlist "INCLUDE">
+<![%sgmltag.attlist;[
+<!ATTLIST sgmltag
+		class 		(attribute
+				|attvalue
+				|element
+				|endtag
+				|genentity
+				|numcharref
+				|paramentity
+				|pi
+				|starttag
+				|sgmlcomment)	#IMPLIED
+		%common.attrib;
+		%sgmltag.role.attrib;
+		%local.sgmltag.attrib;
+>
+<!--end of sgmltag.attlist-->]]>
+<!--end of sgmltag.module-->]]>
+
+<!ENTITY % structfield.module "INCLUDE">
+<![%structfield.module;[
+<!ENTITY % local.structfield.attrib "">
+<!ENTITY % structfield.role.attrib "%role.attrib;">
+
+<!ENTITY % structfield.element "INCLUDE">
+<![%structfield.element;[
+<!ELEMENT structfield (%smallcptr.char.mix;)*>
+<!--end of structfield.element-->]]>
+
+<!ENTITY % structfield.attlist "INCLUDE">
+<![%structfield.attlist;[
+<!ATTLIST structfield
+		%common.attrib;
+		%structfield.role.attrib;
+		%local.structfield.attrib;
+>
+<!--end of structfield.attlist-->]]>
+<!--end of structfield.module-->]]>
+
+<!ENTITY % structname.module "INCLUDE">
+<![%structname.module;[
+<!ENTITY % local.structname.attrib "">
+<!ENTITY % structname.role.attrib "%role.attrib;">
+
+<!ENTITY % structname.element "INCLUDE">
+<![%structname.element;[
+<!ELEMENT structname (%smallcptr.char.mix;)*>
+<!--end of structname.element-->]]>
+
+<!ENTITY % structname.attlist "INCLUDE">
+<![%structname.attlist;[
+<!ATTLIST structname
+		%common.attrib;
+		%structname.role.attrib;
+		%local.structname.attrib;
+>
+<!--end of structname.attlist-->]]>
+<!--end of structname.module-->]]>
+
+<!ENTITY % symbol.module "INCLUDE">
+<![%symbol.module;[
+<!ENTITY % local.symbol.attrib "">
+<!ENTITY % symbol.role.attrib "%role.attrib;">
+
+<!ENTITY % symbol.element "INCLUDE">
+<![%symbol.element;[
+<!ELEMENT symbol (%smallcptr.char.mix;)*>
+<!--end of symbol.element-->]]>
+
+<!-- Class: Type of symbol; no default -->
+
+
+<!ENTITY % symbol.attlist "INCLUDE">
+<![%symbol.attlist;[
+<!ATTLIST symbol
+		class		(limit)		#IMPLIED
+		%common.attrib;
+		%symbol.role.attrib;
+		%local.symbol.attrib;
+>
+<!--end of symbol.attlist-->]]>
+<!--end of symbol.module-->]]>
+
+<!ENTITY % systemitem.module "INCLUDE">
+<![%systemitem.module;[
+<!--FUTURE USE (V4.0):
+......................
+SystemItem will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+
+<!ENTITY % systemitem.element "INCLUDE">
+<![%systemitem.element;[
+<!ELEMENT systemitem (%cptr.char.mix; | acronym)*>
+<!--end of systemitem.element-->]]>
+<!--FUTURE USE (V4.0):
+......................
+The EnvironVar and Prompt values of Class will be eliminated; 
+use the EnVar and Prompt elements new in 3.0 instead.
+......................
+-->
+
+<!-- Class: Type of system item the element names; no default -->
+
+
+<!ENTITY % systemitem.attlist "INCLUDE">
+<![%systemitem.attlist;[
+<!ATTLIST systemitem
+		class	(constant
+			|environvar
+			|macro
+			|osname
+			|prompt
+			|resource
+			|systemname)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%systemitem.role.attrib;
+		%local.systemitem.attrib;
+>
+<!--end of systemitem.attlist-->]]>
+<!--end of systemitem.module-->]]>
+
+
+<!ENTITY % token.module "INCLUDE">
+<![%token.module;[
+<!ENTITY % local.token.attrib "">
+<!ENTITY % token.role.attrib "%role.attrib;">
+
+<!ENTITY % token.element "INCLUDE">
+<![%token.element;[
+<!ELEMENT token (%smallcptr.char.mix;)*>
+<!--end of token.element-->]]>
+
+<!ENTITY % token.attlist "INCLUDE">
+<![%token.attlist;[
+<!ATTLIST token
+		%common.attrib;
+		%token.role.attrib;
+		%local.token.attrib;
+>
+<!--end of token.attlist-->]]>
+<!--end of token.module-->]]>
+
+<!ENTITY % type.module "INCLUDE">
+<![%type.module;[
+<!ENTITY % local.type.attrib "">
+<!ENTITY % type.role.attrib "%role.attrib;">
+
+<!ENTITY % type.element "INCLUDE">
+<![%type.element;[
+<!ELEMENT type (%smallcptr.char.mix;)*>
+<!--end of type.element-->]]>
+
+<!ENTITY % type.attlist "INCLUDE">
+<![%type.attlist;[
+<!ATTLIST type
+		%common.attrib;
+		%type.role.attrib;
+		%local.type.attrib;
+>
+<!--end of type.attlist-->]]>
+<!--end of type.module-->]]>
+
+<!ENTITY % userinput.module "INCLUDE">
+<![%userinput.module;[
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+
+<!ENTITY % userinput.element "INCLUDE">
+<![%userinput.element;[
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!--end of userinput.element-->]]>
+
+<!ENTITY % userinput.attlist "INCLUDE">
+<![%userinput.attlist;[
+<!ATTLIST userinput
+		%moreinfo.attrib;
+		%common.attrib;
+		%userinput.role.attrib;
+		%local.userinput.attrib;
+>
+<!--end of userinput.attlist-->]]>
+<!--end of userinput.module-->]]>
+
+<!-- General words and phrases ............................................ -->
+
+<!ENTITY % abbrev.module "INCLUDE">
+<![%abbrev.module;[
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % abbrev.element "INCLUDE">
+<![%abbrev.element;[
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!--end of abbrev.element-->]]>
+
+<!ENTITY % abbrev.attlist "INCLUDE">
+<![%abbrev.attlist;[
+<!ATTLIST abbrev
+		%common.attrib;
+		%abbrev.role.attrib;
+		%local.abbrev.attrib;
+>
+<!--end of abbrev.attlist-->]]>
+<!--end of abbrev.module-->]]>
+
+<!ENTITY % acronym.module "INCLUDE">
+<![%acronym.module;[
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+
+<!ENTITY % acronym.element "INCLUDE">
+<![%acronym.element;[
+<!ELEMENT acronym (%word.char.mix;)*>
+<!--end of acronym.element-->]]>
+
+<!ENTITY % acronym.attlist "INCLUDE">
+<![%acronym.attlist;[
+<!ATTLIST acronym
+		%common.attrib;
+		%acronym.role.attrib;
+		%local.acronym.attrib;
+>
+<!--end of acronym.attlist-->]]>
+<!--end of acronym.module-->]]>
+
+<!ENTITY % citation.module "INCLUDE">
+<![%citation.module;[
+<!ENTITY % local.citation.attrib "">
+<!ENTITY % citation.role.attrib "%role.attrib;">
+
+<!ENTITY % citation.element "INCLUDE">
+<![%citation.element;[
+<!ELEMENT citation (%para.char.mix;)*>
+<!--end of citation.element-->]]>
+
+<!ENTITY % citation.attlist "INCLUDE">
+<![%citation.attlist;[
+<!ATTLIST citation
+		%common.attrib;
+		%citation.role.attrib;
+		%local.citation.attrib;
+>
+<!--end of citation.attlist-->]]>
+<!--end of citation.module-->]]>
+
+<!ENTITY % citerefentry.module "INCLUDE">
+<![%citerefentry.module;[
+<!ENTITY % local.citerefentry.attrib "">
+<!ENTITY % citerefentry.role.attrib "%role.attrib;">
+
+<!ENTITY % citerefentry.element "INCLUDE">
+<![%citerefentry.element;[
+<!ELEMENT citerefentry (refentrytitle, manvolnum?)>
+<!--end of citerefentry.element-->]]>
+
+<!ENTITY % citerefentry.attlist "INCLUDE">
+<![%citerefentry.attlist;[
+<!ATTLIST citerefentry
+		%common.attrib;
+		%citerefentry.role.attrib;
+		%local.citerefentry.attrib;
+>
+<!--end of citerefentry.attlist-->]]>
+<!--end of citerefentry.module-->]]>
+
+<!ENTITY % refentrytitle.module "INCLUDE">
+<![%refentrytitle.module;[
+<!ENTITY % local.refentrytitle.attrib "">
+<!ENTITY % refentrytitle.role.attrib "%role.attrib;">
+
+<!ENTITY % refentrytitle.element "INCLUDE">
+<![%refentrytitle.element;[
+<!ELEMENT refentrytitle (%para.char.mix;)*>
+<!--end of refentrytitle.element-->]]>
+
+<!ENTITY % refentrytitle.attlist "INCLUDE">
+<![%refentrytitle.attlist;[
+<!ATTLIST refentrytitle
+		%common.attrib;
+		%refentrytitle.role.attrib;
+		%local.refentrytitle.attrib;
+>
+<!--end of refentrytitle.attlist-->]]>
+<!--end of refentrytitle.module-->]]>
+
+<!ENTITY % manvolnum.module "INCLUDE">
+<![%manvolnum.module;[
+<!ENTITY % local.manvolnum.attrib "">
+<!ENTITY % namvolnum.role.attrib "%role.attrib;">
+
+<!ENTITY % manvolnum.element "INCLUDE">
+<![%manvolnum.element;[
+<!ELEMENT manvolnum (%word.char.mix;)*>
+<!--end of manvolnum.element-->]]>
+
+<!ENTITY % manvolnum.attlist "INCLUDE">
+<![%manvolnum.attlist;[
+<!ATTLIST manvolnum
+		%common.attrib;
+		%namvolnum.role.attrib;
+		%local.manvolnum.attrib;
+>
+<!--end of manvolnum.attlist-->]]>
+<!--end of manvolnum.module-->]]>
+
+<!ENTITY % citetitle.module "INCLUDE">
+<![%citetitle.module;[
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+
+<!ENTITY % citetitle.element "INCLUDE">
+<![%citetitle.element;[
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!--end of citetitle.element-->]]>
+
+<!-- Pubwork: Genre of published work cited; no default -->
+
+
+<!ENTITY % citetitle.attlist "INCLUDE">
+<![%citetitle.attlist;[
+<!ATTLIST citetitle
+		pubwork		(article
+				|book
+				|chapter
+				|part
+				|refentry
+				|section
+				|journal
+				|series
+				|set
+				|manuscript)	#IMPLIED
+		%common.attrib;
+		%citetitle.role.attrib;
+		%local.citetitle.attrib;
+>
+<!--end of citetitle.attlist-->]]>
+<!--end of citetitle.module-->]]>
+
+<!ENTITY % emphasis.module "INCLUDE">
+<![%emphasis.module;[
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+
+<!ENTITY % emphasis.element "INCLUDE">
+<![%emphasis.element;[
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!--end of emphasis.element-->]]>
+
+<!ENTITY % emphasis.attlist "INCLUDE">
+<![%emphasis.attlist;[
+<!ATTLIST emphasis
+		%common.attrib;
+		%emphasis.role.attrib;
+		%local.emphasis.attrib;
+>
+<!--end of emphasis.attlist-->]]>
+<!--end of emphasis.module-->]]>
+
+<!ENTITY % firstterm.module "INCLUDE">
+<![%firstterm.module;[
+<!ENTITY % local.firstterm.attrib "">
+<!ENTITY % firstterm.role.attrib "%role.attrib;">
+
+<!ENTITY % firstterm.element "INCLUDE">
+<![%firstterm.element;[
+<!ELEMENT firstterm (%word.char.mix;)*>
+<!--end of firstterm.element-->]]>
+
+<!-- to GlossEntry or other explanation -->
+
+
+<!ENTITY % firstterm.attlist "INCLUDE">
+<![%firstterm.attlist;[
+<!ATTLIST firstterm
+		%linkend.attrib;		%common.attrib;
+		%firstterm.role.attrib;
+		%local.firstterm.attrib;
+>
+<!--end of firstterm.attlist-->]]>
+<!--end of firstterm.module-->]]>
+
+<!ENTITY % foreignphrase.module "INCLUDE">
+<![%foreignphrase.module;[
+<!ENTITY % local.foreignphrase.attrib "">
+<!ENTITY % foreignphrase.role.attrib "%role.attrib;">
+
+<!ENTITY % foreignphrase.element "INCLUDE">
+<![%foreignphrase.element;[
+<!ELEMENT foreignphrase (%para.char.mix;)*>
+<!--end of foreignphrase.element-->]]>
+
+<!ENTITY % foreignphrase.attlist "INCLUDE">
+<![%foreignphrase.attlist;[
+<!ATTLIST foreignphrase
+		%common.attrib;
+		%foreignphrase.role.attrib;
+		%local.foreignphrase.attrib;
+>
+<!--end of foreignphrase.attlist-->]]>
+<!--end of foreignphrase.module-->]]>
+
+<!ENTITY % glossterm.module "INCLUDE">
+<![%glossterm.module;[
+<!ENTITY % local.glossterm.attrib "">
+<!ENTITY % glossterm.role.attrib "%role.attrib;">
+
+<!ENTITY % glossterm.element "INCLUDE">
+<![%glossterm.element;[
+<!ELEMENT glossterm (%para.char.mix;)*>
+<!--end of glossterm.element-->]]>
+
+<!-- to GlossEntry if Glossterm used in text -->
+<!-- BaseForm: Provides the form of GlossTerm to be used
+		for indexing -->
+
+
+<!ENTITY % glossterm.attlist "INCLUDE">
+<![%glossterm.attlist;[
+<!ATTLIST glossterm
+		%linkend.attrib;		baseform	CDATA		#IMPLIED
+		%common.attrib;
+		%glossterm.role.attrib;
+		%local.glossterm.attrib;
+>
+<!--end of glossterm.attlist-->]]>
+<!--end of glossterm.module-->]]>
+
+<!ENTITY % phrase.module "INCLUDE">
+<![%phrase.module;[
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+
+<!ENTITY % phrase.element "INCLUDE">
+<![%phrase.element;[
+<!ELEMENT phrase (%para.char.mix;)*>
+<!--end of phrase.element-->]]>
+
+<!ENTITY % phrase.attlist "INCLUDE">
+<![%phrase.attlist;[
+<!ATTLIST phrase
+		%common.attrib;
+		%phrase.role.attrib;
+		%local.phrase.attrib;
+>
+<!--end of phrase.attlist-->]]>
+<!--end of phrase.module-->]]>
+
+<!ENTITY % quote.module "INCLUDE">
+<![%quote.module;[
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+
+<!ENTITY % quote.element "INCLUDE">
+<![%quote.element;[
+<!ELEMENT quote (%para.char.mix;)*>
+<!--end of quote.element-->]]>
+
+<!ENTITY % quote.attlist "INCLUDE">
+<![%quote.attlist;[
+<!ATTLIST quote
+		%common.attrib;
+		%quote.role.attrib;
+		%local.quote.attrib;
+>
+<!--end of quote.attlist-->]]>
+<!--end of quote.module-->]]>
+
+<!ENTITY % ssscript.module "INCLUDE">
+<![%ssscript.module;[
+<!ENTITY % local.ssscript.attrib "">
+<!ENTITY % ssscript.role.attrib "%role.attrib;">
+
+<!ENTITY % subscript.element "INCLUDE">
+<![%subscript.element;[
+<!ELEMENT subscript (#PCDATA 
+		| %link.char.class;
+		| emphasis
+		| replaceable 
+		| symbol 
+		| inlinegraphic
+                | inlinemediaobject
+		| %base.char.class; 
+		| %other.char.class;)*>
+<!--end of subscript.element-->]]>
+
+<!ENTITY % subscript.attlist "INCLUDE">
+<![%subscript.attlist;[
+<!ATTLIST subscript
+		%common.attrib;
+		%ssscript.role.attrib;
+		%local.ssscript.attrib;
+>
+<!--end of subscript.attlist-->]]>
+
+<!ENTITY % superscript.element "INCLUDE">
+<![%superscript.element;[
+<!ELEMENT superscript (#PCDATA 
+		| %link.char.class;
+		| emphasis
+		| replaceable 
+		| symbol 
+		| inlinegraphic
+                | inlinemediaobject 
+		| %base.char.class; 
+		| %other.char.class;)*>
+<!--end of superscript.element-->]]>
+
+<!ENTITY % superscript.attlist "INCLUDE">
+<![%superscript.attlist;[
+<!ATTLIST superscript
+		%common.attrib;
+		%ssscript.role.attrib;
+		%local.ssscript.attrib;
+>
+<!--end of superscript.attlist-->]]>
+<!--end of ssscript.module-->]]>
+
+<!ENTITY % trademark.module "INCLUDE">
+<![%trademark.module;[
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+
+<!ENTITY % trademark.element "INCLUDE">
+<![%trademark.element;[
+<!ELEMENT trademark (#PCDATA 
+		| %link.char.class; 
+		| %tech.char.class;
+		| %base.char.class; 
+		| %other.char.class; 
+		| inlinegraphic
+                | inlinemediaobject
+		| emphasis)*>
+<!--end of trademark.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % trademark.attlist "INCLUDE">
+<![%trademark.attlist;[
+<!ATTLIST trademark
+		class		(service
+				|trade
+				|registered
+				|copyright)	'trade'
+		%common.attrib;
+		%trademark.role.attrib;
+		%local.trademark.attrib;
+>
+<!--end of trademark.attlist-->]]>
+<!--end of trademark.module-->]]>
+
+<!ENTITY % wordasword.module "INCLUDE">
+<![%wordasword.module;[
+<!ENTITY % local.wordasword.attrib "">
+<!ENTITY % wordasword.role.attrib "%role.attrib;">
+
+<!ENTITY % wordasword.element "INCLUDE">
+<![%wordasword.element;[
+<!ELEMENT wordasword (%word.char.mix;)*>
+<!--end of wordasword.element-->]]>
+
+<!ENTITY % wordasword.attlist "INCLUDE">
+<![%wordasword.attlist;[
+<!ATTLIST wordasword
+		%common.attrib;
+		%wordasword.role.attrib;
+		%local.wordasword.attrib;
+>
+<!--end of wordasword.attlist-->]]>
+<!--end of wordasword.module-->]]>
+
+<!-- Links and cross-references ........................................... -->
+
+<!ENTITY % link.module "INCLUDE">
+<![%link.module;[
+<!--FUTURE USE (V4.0):
+......................
+All link elements will be excluded from themselves and each other.
+......................
+-->
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+
+<!ENTITY % link.element "INCLUDE">
+<![%link.element;[
+<!ELEMENT link (%para.char.mix;)*>
+<!--end of link.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+		fetched from elsewhere in the document to appear as
+		the content of this element -->
+<!-- to linked-to object -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % link.attlist "INCLUDE">
+<![%link.attlist;[
+<!ATTLIST link
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		type		CDATA		#IMPLIED
+		%common.attrib;
+		%link.role.attrib;
+		%local.link.attrib;
+>
+<!--end of link.attlist-->]]>
+<!--end of link.module-->]]>
+
+<!ENTITY % olink.module "INCLUDE">
+<![%olink.module;[
+<!ENTITY % local.olink.attrib "">
+<!ENTITY % olink.role.attrib "%role.attrib;">
+
+<!ENTITY % olink.element "INCLUDE">
+<![%olink.element;[
+<!ELEMENT olink (%para.char.mix;)*>
+<!--end of olink.element-->]]>
+
+<!-- TargetDocEnt: Name of an entity to be the target of the link -->
+<!-- LinkMode: ID of a ModeSpec containing instructions for
+		operating on the entity named by TargetDocEnt -->
+<!-- LocalInfo: Information that may be passed to ModeSpec -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % olink.attlist "INCLUDE">
+<![%olink.attlist;[
+<!ATTLIST olink
+		targetdocent	ENTITY 		#IMPLIED
+		linkmode	IDREF		#IMPLIED
+		localinfo 	CDATA		#IMPLIED
+		type		CDATA		#IMPLIED
+		%common.attrib;
+		%olink.role.attrib;
+		%local.olink.attrib;
+>
+<!--end of olink.attlist-->]]>
+<!--end of olink.module-->]]>
+
+<!ENTITY % ulink.module "INCLUDE">
+<![%ulink.module;[
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+
+<!ENTITY % ulink.element "INCLUDE">
+<![%ulink.element;[
+<!ELEMENT ulink (%para.char.mix;)*>
+<!--end of ulink.element-->]]>
+
+<!-- URL: uniform resource locator; the target of the ULink -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % ulink.attlist "INCLUDE">
+<![%ulink.attlist;[
+<!ATTLIST ulink
+		url		CDATA		#REQUIRED
+		type		CDATA		#IMPLIED
+		%common.attrib;
+		%ulink.role.attrib;
+		%local.ulink.attrib;
+>
+<!--end of ulink.attlist-->]]>
+<!--end of ulink.module-->]]>
+
+<!ENTITY % footnoteref.module "INCLUDE">
+<![%footnoteref.module;[
+<!ENTITY % local.footnoteref.attrib "">
+<!ENTITY % footnoteref.role.attrib "%role.attrib;">
+
+<!ENTITY % footnoteref.element "INCLUDE">
+<![%footnoteref.element;[
+<!ELEMENT footnoteref EMPTY>
+<!--end of footnoteref.element-->]]>
+
+<!-- to footnote content supplied elsewhere -->
+
+
+<!ENTITY % footnoteref.attlist "INCLUDE">
+<![%footnoteref.attlist;[
+<!ATTLIST footnoteref
+		%linkendreq.attrib;		%label.attrib;
+		%common.attrib;
+		%footnoteref.role.attrib;
+		%local.footnoteref.attrib;
+>
+<!--end of footnoteref.attlist-->]]>
+<!--end of footnoteref.module-->]]>
+
+<!ENTITY % xref.module "INCLUDE">
+<![%xref.module;[
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+
+<!ENTITY % xref.element "INCLUDE">
+<![%xref.element;[
+<!ELEMENT xref EMPTY>
+<!--end of xref.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+		fetched from elsewhere in the document to appear as
+		the content of this element -->
+<!-- to linked-to object -->
+
+
+<!ENTITY % xref.attlist "INCLUDE">
+<![%xref.attlist;[
+<!ATTLIST xref
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		%common.attrib;
+		%xref.role.attrib;
+		%local.xref.attrib;
+>
+<!--end of xref.attlist-->]]>
+<!--end of xref.module-->]]>
+
+<!-- Ubiquitous elements .................................................. -->
+
+<!ENTITY % anchor.module "INCLUDE">
+<![%anchor.module;[
+<!ENTITY % local.anchor.attrib "">
+<!ENTITY % anchor.role.attrib "%role.attrib;">
+
+<!ENTITY % anchor.element "INCLUDE">
+<![%anchor.element;[
+<!ELEMENT anchor EMPTY>
+<!--end of anchor.element-->]]>
+
+<!-- required -->
+<!-- replaces Lang -->
+
+
+<!ENTITY % anchor.attlist "INCLUDE">
+<![%anchor.attlist;[
+<!ATTLIST anchor
+		%idreq.attrib;		%pagenum.attrib;		%remap.attrib;
+		%xreflabel.attrib;
+		%revisionflag.attrib;
+		%effectivity.attrib;
+		%anchor.role.attrib;
+		%local.anchor.attrib;
+>
+<!--end of anchor.attlist-->]]>
+<!--end of anchor.module-->]]>
+
+<!ENTITY % beginpage.module "INCLUDE">
+<![%beginpage.module;[
+<!ENTITY % local.beginpage.attrib "">
+<!ENTITY % beginpage.role.attrib "%role.attrib;">
+
+<!ENTITY % beginpage.element "INCLUDE">
+<![%beginpage.element;[
+<!ELEMENT beginpage EMPTY>
+<!--end of beginpage.element-->]]>
+
+<!-- PageNum: Number of page that begins at this point -->
+
+
+<!ENTITY % beginpage.attlist "INCLUDE">
+<![%beginpage.attlist;[
+<!ATTLIST beginpage
+		%pagenum.attrib;
+		%common.attrib;
+		%beginpage.role.attrib;
+		%local.beginpage.attrib;
+>
+<!--end of beginpage.attlist-->]]>
+<!--end of beginpage.module-->]]>
+
+<!-- IndexTerms appear in the text flow for generating or linking an
+     index. -->
+
+<!ENTITY % indexterm.content.module "INCLUDE">
+<![%indexterm.content.module;[
+<!ENTITY % indexterm.module "INCLUDE">
+<![%indexterm.module;[
+<!ENTITY % local.indexterm.attrib "">
+<!ENTITY % indexterm.role.attrib "%role.attrib;">
+
+<!ENTITY % indexterm.element "INCLUDE">
+<![%indexterm.element;[
+<!ELEMENT indexterm (primary, ((secondary, ((tertiary, (see|seealso+)?)
+		| see | seealso+)?) | see | seealso+)?)>
+<!--end of indexterm.element-->]]>
+
+<!-- Scope: Indicates which generated indices the IndexTerm
+		should appear in: Global (whole document set), Local (this
+		document only), or All (both) -->
+<!-- Significance: Whether this IndexTerm is the most pertinent
+		of its series (Preferred) or not (Normal, the default) -->
+<!-- Class: Indicates type of IndexTerm; default is Singular, 
+		or EndOfRange if StartRef is supplied; StartOfRange value 
+		must be supplied explicitly on starts of ranges -->
+<!-- StartRef: ID of the IndexTerm that starts the indexing 
+		range ended by this IndexTerm -->
+<!-- Zone: IDs of the elements to which the IndexTerm applies,
+		and indicates that the IndexTerm applies to those entire
+		elements rather than the point at which the IndexTerm
+		occurs -->
+
+
+<!ENTITY % indexterm.attlist "INCLUDE">
+<![%indexterm.attlist;[
+<!ATTLIST indexterm
+		%pagenum.attrib;
+		scope		(all
+				|global
+				|local)		#IMPLIED
+		significance	(preferred
+				|normal)	"normal"
+		class		(singular
+				|startofrange
+				|endofrange)	#IMPLIED
+		startref		IDREF		#IMPLIED
+		zone			IDREFS		#IMPLIED
+		%common.attrib;
+		%indexterm.role.attrib;
+		%local.indexterm.attrib;
+>
+<!--end of indexterm.attlist-->]]>
+<!--end of indexterm.module-->]]>
+
+<!ENTITY % primsecter.module "INCLUDE">
+<![%primsecter.module;[
+<!ENTITY % local.primsecter.attrib "">
+<!ENTITY % primsecter.role.attrib "%role.attrib;">
+
+
+<!ENTITY % primary.element "INCLUDE">
+<![%primary.element;[
+<!ELEMENT primary   (%ndxterm.char.mix;)*>
+<!--end of primary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+		"fourteen" for an element containing "14" -->
+
+<!ENTITY % primary.attlist "INCLUDE">
+<![%primary.attlist;[
+<!ATTLIST primary
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%primsecter.role.attrib;
+		%local.primsecter.attrib;
+>
+<!--end of primary.attlist-->]]>
+
+
+<!ENTITY % secondary.element "INCLUDE">
+<![%secondary.element;[
+<!ELEMENT secondary (%ndxterm.char.mix;)*>
+<!--end of secondary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+		"fourteen" for an element containing "14" -->
+
+<!ENTITY % secondary.attlist "INCLUDE">
+<![%secondary.attlist;[
+<!ATTLIST secondary
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%primsecter.role.attrib;
+		%local.primsecter.attrib;
+>
+<!--end of secondary.attlist-->]]>
+
+
+<!ENTITY % tertiary.element "INCLUDE">
+<![%tertiary.element;[
+<!ELEMENT tertiary  (%ndxterm.char.mix;)*>
+<!--end of tertiary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+		"fourteen" for an element containing "14" -->
+
+<!ENTITY % tertiary.attlist "INCLUDE">
+<![%tertiary.attlist;[
+<!ATTLIST tertiary
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%primsecter.role.attrib;
+		%local.primsecter.attrib;
+>
+<!--end of tertiary.attlist-->]]>
+
+<!--end of primsecter.module-->]]>
+
+<!ENTITY % seeseealso.module "INCLUDE">
+<![%seeseealso.module;[
+<!ENTITY % local.seeseealso.attrib "">
+<!ENTITY % seeseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % see.element "INCLUDE">
+<![%see.element;[
+<!ELEMENT see (%ndxterm.char.mix;)*>
+<!--end of see.element-->]]>
+
+<!ENTITY % see.attlist "INCLUDE">
+<![%see.attlist;[
+<!ATTLIST see
+		%common.attrib;
+		%seeseealso.role.attrib;
+		%local.seeseealso.attrib;
+>
+<!--end of see.attlist-->]]>
+
+<!ENTITY % seealso.element "INCLUDE">
+<![%seealso.element;[
+<!ELEMENT seealso (%ndxterm.char.mix;)*>
+<!--end of seealso.element-->]]>
+
+<!ENTITY % seealso.attlist "INCLUDE">
+<![%seealso.attlist;[
+<!ATTLIST seealso
+		%common.attrib;
+		%seeseealso.role.attrib;
+		%local.seeseealso.attrib;
+>
+<!--end of seealso.attlist-->]]>
+<!--end of seeseealso.module-->]]>
+<!--end of indexterm.content.module-->]]>
+
+<!-- End of DocBk XML information pool module V3.1.7 ...................... -->
+<!-- ...................................................................... -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbtblcals.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbtblcals.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbtblcals.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<!ENTITY % cals.table.module "INCLUDE">
+
+<!ENTITY % docbook SYSTEM "docbookx.dtd">
+%docbook;
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbtblxchg.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbtblxchg.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/dbtblxchg.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<!ENTITY % cals.table.module "IGNORE">
+
+<!ENTITY % docbook SYSTEM "docbookx.dtd">
+%docbook;
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/docbookx.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/docbookx.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/docbookx.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,69 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML V3.1.7 DTD
+     Copyright (C) 1998, 1999 Norman Walsh
+     http://nwalsh.com/docbook/xml/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!-- ...................................................................... -->
+<!-- Notation declarations ................................................ -->
+
+<!ENTITY % dbnotn.module "INCLUDE">
+<![%dbnotn.module;[
+<!ENTITY % dbnotn PUBLIC 
+"-//Norman Walsh//ENTITIES DocBk XML Notations V3.1.7//EN"
+"dbnotnx.mod">
+%dbnotn;
+]]>
+
+<!-- ...................................................................... -->
+<!-- ISO character entity sets ............................................ -->
+
+<!ENTITY % dbcent.module "INCLUDE">
+<![%dbcent.module;[
+<!ENTITY % dbcent PUBLIC 
+"-//Norman Walsh//ENTITIES DocBk XML Character Entities V3.1.7//EN"
+"dbcentx.mod">
+%dbcent;
+]]>
+
+<!-- ...................................................................... -->
+<!-- DTD modules .......................................................... -->
+
+<!-- Information pool .............. -->
+
+<!ENTITY % dbpool PUBLIC 
+"-//Norman Walsh//ELEMENTS DocBk XML Information Pool V3.1.7//EN"
+"dbpoolx.mod">
+%dbpool;
+
+<!-- Redeclaration placeholder ..... -->
+
+<!ENTITY % intermod.redecl.module "IGNORE">
+<![%intermod.redecl.module;[
+<!-- Defining rdbmods here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbmods "">
+%rdbmods;
+<!--end of intermod.redecl.module-->]]>
+
+<!-- Document hierarchy ............ -->
+
+<!ENTITY % dbhier PUBLIC 
+"-//Norman Walsh//ELEMENTS DocBk XML Document Hierarchy V3.1.7//EN"
+"dbhierx.mod">
+%dbhier;
+<!-- ...................................................................... -->
+<!-- Other general entities ............................................... -->
+
+<!ENTITY % dbgenent PUBLIC
+"-//Norman Walsh//ENTITIES DocBk XML Additional General Entities V3.1.7//EN"
+"dbgenent.ent">
+%dbgenent;
+
+<!-- End of DocBk XML DTD V3.1.7 .......................................... -->
+<!-- ...................................................................... -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+1999-03-31  Norman Walsh  <ndw at nwalsh.com>
+
+	* iso-num.ent: Removed declarations for lt and amp.  They're predefined in XML and the decls. were causing IE5 to choke
+
+1999-01-31  Norman Walsh  <ndw at nwalsh.com>
+
+	* iso-amsa.ent, iso-amsb.ent, iso-amsc.ent, iso-amsn.ent, iso-amso.ent, iso-amsr.ent, iso-box.ent, iso-cyr1.ent, iso-cyr2.ent, iso-dia.ent, iso-grk1.ent, iso-grk2.ent, iso-grk3.ent, iso-grk4.ent, iso-lat1.ent, iso-lat2.ent, iso-num.ent, iso-pub.ent, iso-tech.ent: 
+	New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsa.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsa.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsa.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,61 @@
+<!-- iso-amsa.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY cularr	"&#x21B6;"> <!-- ANTICLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY curarr	"&#x21B7;"> <!-- CLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY dArr	"&#x21D3;"> <!-- DOWNWARDS DOUBLE ARROW -->
+<!ENTITY darr2	"&#x21CA;"> <!-- DOWNWARDS PAIRED ARROWS -->
+<!ENTITY dharl	"&#x21C3;"> <!-- DOWNWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY dharr	"&#x21C2;"> <!-- DOWNWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY lAarr	"&#x21DA;"> <!-- LEFTWARDS TRIPLE ARROW -->
+<!ENTITY Larr	"&#x219E;"> <!-- LEFTWARDS TWO HEADED ARROW -->
+<!ENTITY larr2	"&#x21C7;"> <!-- LEFTWARDS PAIRED ARROWS -->
+<!ENTITY larrhk	"&#x21A9;"> <!-- LEFTWARDS ARROW WITH HOOK -->
+<!ENTITY larrlp	"&#x21AB;"> <!-- LEFTWARDS ARROW WITH LOOP -->
+<!ENTITY larrtl	"&#x21A2;"> <!-- LEFTWARDS ARROW WITH TAIL -->
+<!ENTITY lhard	"&#x21BD;"> <!-- LEFTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY lharu	"&#x21BC;"> <!-- LEFTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY hArr	"&#x21D4;"> <!--  -->
+<!ENTITY harr	"&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY lrarr2	"&#x21C6;"> <!-- LEFTWARDS ARROW OVER RIGHTWARDS ARROW -->
+<!ENTITY rlarr2	"&#x21C4;"> <!-- RIGHTWARDS ARROW OVER LEFTWARDS ARROW -->
+<!ENTITY harrw	"&#x21AD;"> <!-- LEFT RIGHT WAVE ARROW -->
+<!ENTITY rlhar2	"&#x21CC;"> <!-- RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -->
+<!ENTITY lrhar2	"&#x21CB;"> <!-- LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -->
+<!ENTITY lsh	"&#x21B0;"> <!-- UPWARDS ARROW WITH TIP LEFTWARDS -->
+<!ENTITY map	"&#x21A6;"> <!-- RIGHTWARDS ARROW FROM BAR -->
+<!ENTITY mumap	"&#x22B8;"> <!-- MULTIMAP -->
+<!ENTITY nearr	"&#x2197;"> <!-- NORTH EAST ARROW -->
+<!ENTITY nlArr	"&#x21CD;"> <!-- LEFTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nlarr	"&#x219A;"> <!-- LEFTWARDS ARROW WITH STROKE -->
+<!ENTITY nhArr	"&#x21CE;"> <!-- LEFT RIGHT DOUBLE ARROW WITH STROKE -->
+<!ENTITY nharr	"&#x21AE;"> <!-- LEFT RIGHT ARROW WITH STROKE -->
+<!ENTITY nrarr	"&#x219B;"> <!-- RIGHTWARDS ARROW WITH STROKE -->
+<!ENTITY nrArr	"&#x21CF;"> <!-- RIGHTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nwarr	"&#x2196;"> <!-- NORTH WEST ARROW -->
+<!ENTITY olarr	"&#x21BA;"> <!-- ANTICLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY orarr	"&#x21BB;"> <!-- CLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY rAarr	"&#x21DB;"> <!-- RIGHTWARDS TRIPLE ARROW -->
+<!ENTITY Rarr	"&#x21A0;"> <!-- RIGHTWARDS TWO HEADED ARROW -->
+<!ENTITY rarr2	"&#x21C9;"> <!-- RIGHTWARDS PAIRED ARROWS -->
+<!ENTITY rarrhk	"&#x21AA;"> <!-- RIGHTWARDS ARROW WITH HOOK -->
+<!ENTITY rarrlp	"&#x21AC;"> <!-- RIGHTWARDS ARROW WITH LOOP -->
+<!ENTITY rarrtl	"&#x21A3;"> <!-- RIGHTWARDS ARROW WITH TAIL -->
+<!ENTITY rarrw	"&#x219D;"> <!-- RIGHTWARDS SQUIGGLE ARROW -->
+<!ENTITY rhard	"&#x21C1;"> <!-- RIGHTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY rharu	"&#x21C0;"> <!-- RIGHTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY rsh	"&#x21B1;"> <!-- UPWARDS ARROW WITH TIP RIGHTWARDS -->
+<!ENTITY drarr	"&#x2198;"> <!-- SOUTH EAST ARROW -->
+<!ENTITY dlarr	"&#x2199;"> <!-- SOUTH WEST ARROW -->
+<!ENTITY uArr	"&#x21D1;"> <!-- UPWARDS DOUBLE ARROW -->
+<!ENTITY uarr2	"&#x21C8;"> <!-- UPWARDS PAIRED ARROWS -->
+<!ENTITY vArr	"&#x21D5;"> <!-- UP DOWN DOUBLE ARROW -->
+<!ENTITY varr	"&#x2195;"> <!-- UP DOWN ARROW -->
+<!ENTITY uharl	"&#x21BF;"> <!-- UPWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY uharr	"&#x21BE;"> <!-- UPWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY xlArr	"&#xE200;"> <!--  -->
+<!ENTITY xhArr	"&#xE202;"> <!--  -->
+<!ENTITY xharr	"&#xE203;"> <!--  -->
+<!ENTITY xrArr	"&#xE204;"> <!--  -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsb.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsb.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsb.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,47 @@
+<!-- iso-amsb.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY amalg	"&#xE251;"> <!--  -->
+<!ENTITY Barwed	"&#x2306;"> <!-- PERSPECTIVE -->
+<!ENTITY barwed	"&#x22BC;"> <!-- NAND -->
+<!ENTITY Cap	"&#x22D2;"> <!-- DOUBLE INTERSECTION -->
+<!ENTITY Cup	"&#x22D3;"> <!-- DOUBLE UNION -->
+<!ENTITY cuvee	"&#x22CE;"> <!-- CURLY LOGICAL OR -->
+<!ENTITY cuwed	"&#x22CF;"> <!-- CURLY LOGICAL AND -->
+<!ENTITY diam	"&#x22C4;"> <!-- DIAMOND OPERATOR -->
+<!ENTITY divonx	"&#x22C7;"> <!-- DIVISION TIMES -->
+<!ENTITY intcal	"&#x22BA;"> <!-- INTERCALATE -->
+<!ENTITY lthree	"&#x22CB;"> <!-- LEFT SEMIDIRECT PRODUCT -->
+<!ENTITY ltimes	"&#x22C9;"> <!-- LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY minusb	"&#x229F;"> <!-- SQUARED MINUS -->
+<!ENTITY oast	"&#x229B;"> <!-- CIRCLED ASTERISK OPERATOR -->
+<!ENTITY ocir	"&#x229A;"> <!-- CIRCLED RING OPERATOR -->
+<!ENTITY odash	"&#x229D;"> <!-- CIRCLED DASH -->
+<!ENTITY odot	"&#x2299;"> <!-- CIRCLED DOT OPERATOR -->
+<!ENTITY ominus	"&#x2296;"> <!-- CIRCLED MINUS -->
+<!ENTITY oplus	"&#x2295;"> <!-- CIRCLED PLUS -->
+<!ENTITY osol	"&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY otimes	"&#x2297;"> <!-- CIRCLED TIMES -->
+<!ENTITY plusb	"&#x229E;"> <!-- SQUARED PLUS -->
+<!ENTITY plusdo	"&#x2214;"> <!-- DOT PLUS -->
+<!ENTITY rthree	"&#x22CC;"> <!-- RIGHT SEMIDIRECT PRODUCT -->
+<!ENTITY rtimes	"&#x22CA;"> <!-- RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY sdot	"&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY sdotb	"&#x22A1;"> <!-- SQUARED DOT OPERATOR -->
+<!ENTITY setmn	"&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sqcap	"&#x2293;"> <!-- SQUARE CAP -->
+<!ENTITY sqcup	"&#x2294;"> <!-- SQUARE CUP -->
+<!ENTITY ssetmn	"&#xE844;"> <!--  -->
+<!ENTITY sstarf	"&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY timesb	"&#x22A0;"> <!-- SQUARED TIMES -->
+<!ENTITY top	"&#x22A4;"> <!-- DOWN TACK -->
+<!ENTITY uplus	"&#x228E;"> <!-- MULTISET UNION -->
+<!ENTITY wreath	"&#x2240;"> <!-- WREATH PRODUCT -->
+<!ENTITY xcirc	"&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY xdtri	"&#x25BD;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY xutri	"&#x25B3;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY coprod	"&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY prod	"&#x220F;"> <!-- N-ARY PRODUCT -->
+<!ENTITY sum	"&#x2211;"> <!-- N-ARY SUMMATION -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsc.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsc.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsc.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<!-- iso-amsc.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY rceil	"&#x2309;"> <!-- RIGHT CEILING -->
+<!ENTITY rfloor	"&#x230B;"> <!-- RIGHT FLOOR -->
+<!ENTITY rpargt	"&#xE291;"> <!--  -->
+<!ENTITY urcorn	"&#x231D;"> <!-- TOP RIGHT CORNER -->
+<!ENTITY drcorn	"&#x231F;"> <!-- BOTTOM RIGHT CORNER -->
+<!ENTITY lceil	"&#x2308;"> <!-- LEFT CEILING -->
+<!ENTITY lfloor	"&#x230A;"> <!-- LEFT FLOOR -->
+<!--     lpargt	Unknown unicode character -->
+<!ENTITY ulcorn	"&#x231C;"> <!-- TOP LEFT CORNER -->
+<!ENTITY dlcorn	"&#x231E;"> <!-- BOTTOM LEFT CORNER -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsn.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsn.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsn.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,64 @@
+<!-- iso-amsn.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY gnap	"&#xE411;"> <!--  -->
+<!ENTITY gne	"&#x2269;"> <!--  -->
+<!ENTITY gnE	"&#x2269;"> <!--  -->
+<!ENTITY gnsim	"&#x22E7;"> <!-- GREATER-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY gvnE	"&#xE2A1;"> <!--  -->
+<!ENTITY lnap	"&#xE2A2;"> <!--  -->
+<!ENTITY lnE	"&#x2268;"> <!--  -->
+<!ENTITY lne	"&#x2268;"> <!--  -->
+<!ENTITY lnsim	"&#x22E6;"> <!--  -->
+<!ENTITY lvnE	"&#xE2A4;"> <!--  -->
+<!ENTITY nap	"&#x2249;"> <!-- NOT ALMOST EQUAL TO -->
+<!ENTITY ncong	"&#x2247;"> <!-- NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -->
+<!ENTITY nequiv	"&#x2262;"> <!-- NOT IDENTICAL TO -->
+<!ENTITY ngE	"&#x2271;"> <!--  -->
+<!ENTITY nge	"&#xE2A6;"> <!--  -->
+<!ENTITY nges	"&#x2271;"> <!--  -->
+<!ENTITY ngt	"&#x226F;"> <!-- NOT GREATER-THAN -->
+<!ENTITY nle	"&#xE2A7;"> <!--  -->
+<!ENTITY nlE	"&#x2270;"> <!--  -->
+<!ENTITY nles	"&#x2270;"> <!--  -->
+<!ENTITY nlt	"&#x226E;"> <!-- NOT LESS-THAN -->
+<!ENTITY nltri	"&#x22EA;"> <!-- NOT NORMAL SUBGROUP OF -->
+<!ENTITY nltrie	"&#x22EC;"> <!-- NOT NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY nmid	"&#x2224;"> <!-- DOES NOT DIVIDE -->
+<!ENTITY npar	"&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY npr	"&#x2280;"> <!-- DOES NOT PRECEDE -->
+<!ENTITY npre	"&#xE412;"> <!--  -->
+<!ENTITY nrtri	"&#x22EB;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP -->
+<!ENTITY nrtrie	"&#x22ED;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -->
+<!ENTITY nsc	"&#x2281;"> <!-- DOES NOT SUCCEED -->
+<!ENTITY nsce	"&#xE413;"> <!--  -->
+<!ENTITY nsim	"&#x2241;"> <!--  -->
+<!ENTITY nsime	"&#x2244;"> <!--  -->
+<!ENTITY nsmid	"&#xE2AA;"> <!--  -->
+<!ENTITY nspar	"&#xE2AB;"> <!--  -->
+<!ENTITY nsub	"&#x2284;"> <!-- NOT A SUBSET OF -->
+<!ENTITY nsube	"&#x2288;"> <!--  -->
+<!ENTITY nsubE	"&#x2288;"> <!--  -->
+<!ENTITY nsup	"&#x2285;"> <!-- NOT A SUPERSET OF -->
+<!ENTITY nsupE	"&#x2289;"> <!--  -->
+<!ENTITY nsupe	"&#x2289;"> <!--  -->
+<!ENTITY nvdash	"&#x22AC;"> <!-- DOES NOT PROVE -->
+<!ENTITY nvDash	"&#x22AD;"> <!-- NOT TRUE -->
+<!ENTITY nVDash	"&#x22AF;"> <!-- NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -->
+<!ENTITY nVdash	"&#x22AE;"> <!-- DOES NOT FORCE -->
+<!ENTITY prnap	"&#x22E8;"> <!--  -->
+<!ENTITY prnE	"&#xE2B3;"> <!--  -->
+<!ENTITY prnsim	"&#x22E8;"> <!--  -->
+<!ENTITY scnap	"&#x22E9;"> <!--  -->
+<!ENTITY scnE	"&#xE2B5;"> <!--  -->
+<!ENTITY scnsim	"&#x22E9;"> <!--  -->
+<!ENTITY subne	"&#x228A;"> <!--  -->
+<!ENTITY subnE	"&#x228A;"> <!--  -->
+<!ENTITY supne	"&#x228B;"> <!--  -->
+<!ENTITY supnE	"&#x228B;"> <!--  -->
+<!ENTITY vsubnE	"&#xE2B8;"> <!--  -->
+<!ENTITY vsubne	"&#xE2B9;"> <!--  -->
+<!ENTITY vsupne	"&#xE2BA;"> <!--  -->
+<!ENTITY vsupnE	"&#xE2BB;"> <!--  -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amso.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amso.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amso.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<!-- iso-amso.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY ang	"&#x2220;"> <!-- ANGLE -->
+<!ENTITY angmsd	"&#x2221;"> <!-- MEASURED ANGLE -->
+<!ENTITY beth	"&#x2136;"> <!-- BET SYMBOL -->
+<!ENTITY bprime	"&#x2035;"> <!-- REVERSED PRIME -->
+<!ENTITY comp	"&#x2201;"> <!-- COMPLEMENT -->
+<!ENTITY daleth	"&#x2138;"> <!-- DALET SYMBOL -->
+<!ENTITY ell	"&#x2113;"> <!-- SCRIPT SMALL L -->
+<!ENTITY empty	"&#xE2D3;"> <!--  -->
+<!ENTITY gimel	"&#x2137;"> <!-- GIMEL SYMBOL -->
+<!ENTITY image	"&#x2111;"> <!-- BLACK-LETTER CAPITAL I -->
+<!ENTITY inodot	"&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!--     jnodot	Unknown unicode character -->
+<!ENTITY nexist	"&#x2204;"> <!-- THERE DOES NOT EXIST -->
+<!ENTITY oS	"&#xE41D;"> <!--  -->
+<!ENTITY planck	"&#x210F;"> <!-- PLANCK CONSTANT OVER TWO PI -->
+<!ENTITY real	"&#x211C;"> <!-- BLACK-LETTER CAPITAL R -->
+<!ENTITY sbsol	"&#xFE68;"> <!-- SMALL REVERSE SOLIDUS -->
+<!--     vprime	Unknown unicode character -->
+<!ENTITY weierp	"&#x2118;"> <!-- SCRIPT CAPITAL P -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsr.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsr.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-amsr.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,89 @@
+<!-- iso-amsr.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY ape	"&#x224A;"> <!--  -->
+<!ENTITY asymp	"&#x224D;"> <!-- EQUIVALENT TO -->
+<!ENTITY bcong	"&#x224C;"> <!-- ALL EQUAL TO -->
+<!ENTITY bepsi	"&#xE420;"> <!--  -->
+<!ENTITY bowtie	"&#x22C8;"> <!--  -->
+<!ENTITY bsim	"&#x223D;"> <!--  -->
+<!ENTITY bsime	"&#x22CD;"> <!--  -->
+<!ENTITY bump	"&#x224E;"> <!--  -->
+<!ENTITY bumpe	"&#x224F;"> <!--  -->
+<!ENTITY cire	"&#x2257;"> <!--  -->
+<!ENTITY colone	"&#x2254;"> <!--  -->
+<!ENTITY cuepr	"&#x22DE;"> <!--  -->
+<!ENTITY cuesc	"&#x22DF;"> <!--  -->
+<!ENTITY cupre	"&#x227C;"> <!--  -->
+<!ENTITY dashv	"&#x22A3;"> <!--  -->
+<!ENTITY ecir	"&#x2256;"> <!--  -->
+<!ENTITY ecolon	"&#x2255;"> <!--  -->
+<!ENTITY eDot	"&#x2251;"> <!--  -->
+<!ENTITY esdot	"&#x2250;"> <!--  -->
+<!ENTITY efDot	"&#x2252;"> <!--  -->
+<!ENTITY egs	"&#x22DD;"> <!--  -->
+<!ENTITY els	"&#x22DC;"> <!--  -->
+<!ENTITY erDot	"&#x2253;"> <!--  -->
+<!ENTITY fork	"&#x22D4;"> <!--  -->
+<!ENTITY frown	"&#x2322;"> <!--  -->
+<!ENTITY gap	"&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY gsdot	"&#x22D7;"> <!--  -->
+<!ENTITY gE	"&#x2267;"> <!--  -->
+<!ENTITY gel	"&#x22DB;"> <!--  -->
+<!ENTITY gEl	"&#x22DB;"> <!--  -->
+<!ENTITY ges	"&#xE421;"> <!--  -->
+<!ENTITY Gg	"&#x22D9;"> <!-- VERY MUCH GREATER-THAN -->
+<!ENTITY gl	"&#x2277;"> <!--  -->
+<!ENTITY gsim	"&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY Gt	"&#x226B;"> <!-- MUCH GREATER-THAN -->
+<!ENTITY lap	"&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY ldot	"&#x22D6;"> <!--  -->
+<!ENTITY lE	"&#x2266;"> <!--  -->
+<!ENTITY lEg	"&#x22DA;"> <!--  -->
+<!ENTITY leg	"&#x22DA;"> <!--  -->
+<!ENTITY les	"&#xE425;"> <!--  -->
+<!ENTITY lg	"&#x2276;"> <!-- LESS-THAN OR GREATER-THAN -->
+<!ENTITY Ll	"&#x22D8;"> <!--  -->
+<!ENTITY lsim	"&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY Lt	"&#x226A;"> <!-- MUCH LESS-THAN -->
+<!ENTITY ltrie	"&#x22B4;"> <!--  -->
+<!ENTITY mid	"&#x2223;"> <!--  -->
+<!ENTITY models	"&#x22A7;"> <!-- MODELS -->
+<!ENTITY pr	"&#x227A;"> <!--  -->
+<!ENTITY prap	"&#x227E;"> <!--  -->
+<!ENTITY pre	"&#x227C;"> <!--  -->
+<!ENTITY prsim	"&#x227E;"> <!--  -->
+<!ENTITY rtrie	"&#x22B5;"> <!--  -->
+<!--     samalg	Unknown unicode character -->
+<!ENTITY sc	"&#x227B;"> <!--  -->
+<!ENTITY scap	"&#x227F;"> <!--  -->
+<!ENTITY sccue	"&#x227D;"> <!--  -->
+<!ENTITY sce	"&#x227D;"> <!--  -->
+<!ENTITY scsim	"&#x227F;"> <!--  -->
+<!ENTITY sfrown	"&#xE426;"> <!--  -->
+<!ENTITY smid	"&#xE301;"> <!--  -->
+<!ENTITY smile	"&#x2323;"> <!--  -->
+<!ENTITY spar	"&#xE302;"> <!--  -->
+<!ENTITY sqsub	"&#x228F;"> <!--  -->
+<!ENTITY sqsube	"&#x2291;"> <!--  -->
+<!ENTITY sqsup	"&#x2290;"> <!--  -->
+<!ENTITY sqsupe	"&#x2292;"> <!--  -->
+<!ENTITY ssmile	"&#xE303;"> <!--  -->
+<!ENTITY Sub	"&#x22D0;"> <!--  -->
+<!ENTITY subE	"&#x2286;"> <!--  -->
+<!ENTITY Sup	"&#x22D1;"> <!--  -->
+<!ENTITY supE	"&#x2287;"> <!--  -->
+<!ENTITY thkap	"&#xE306;"> <!--  -->
+<!ENTITY thksim	"&#xE429;"> <!--  -->
+<!ENTITY trie	"&#x225C;"> <!--  -->
+<!ENTITY twixt	"&#x226C;"> <!-- BETWEEN -->
+<!ENTITY vdash	"&#x22A2;"> <!--  -->
+<!ENTITY Vdash	"&#x22A9;"> <!--  -->
+<!ENTITY vDash	"&#x22A8;"> <!--  -->
+<!ENTITY veebar	"&#x22BB;"> <!--  -->
+<!ENTITY vltri	"&#x22B2;"> <!--  -->
+<!ENTITY vprop	"&#x221D;"> <!--  -->
+<!ENTITY vrtri	"&#x22B3;"> <!--  -->
+<!ENTITY Vvdash	"&#x22AA;"> <!--  -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-box.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-box.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-box.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,45 @@
+<!-- iso-box.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY boxh	"&#x2500;"> <!-- BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxv	"&#x2502;"> <!-- BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxur	"&#x2514;"> <!-- BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxul	"&#x2518;"> <!-- BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxdl	"&#x2510;"> <!-- BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxdr	"&#x250C;"> <!-- BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxvr	"&#x251C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND RIGHT -->
+<!ENTITY boxhu	"&#x2534;"> <!-- BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxvl	"&#x2524;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxhd	"&#x252C;"> <!-- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxvh	"&#x253C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxvR	"&#x255E;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxhU	"&#x2567;"> <!-- BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvL	"&#x2561;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxhD	"&#x2564;"> <!-- BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvH	"&#x256A;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxH	"&#x2550;"> <!-- BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxV	"&#x2551;"> <!-- BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxUR	"&#x2558;"> <!-- BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxUL	"&#x255B;"> <!-- BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDL	"&#x2555;"> <!-- BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDR	"&#x2552;"> <!-- BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxVR	"&#x255F;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxHU	"&#x2568;"> <!-- BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVL	"&#x2562;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxHD	"&#x2565;"> <!-- BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVH	"&#x256B;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVr	"&#x2560;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxHu	"&#x2569;"> <!-- BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxVl	"&#x2563;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxHd	"&#x2566;"> <!-- BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxVh	"&#x256C;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxuR	"&#x2559;"> <!-- BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUl	"&#x255C;"> <!-- BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxdL	"&#x2556;"> <!-- BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxDr	"&#x2553;"> <!-- BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUr	"&#x255A;"> <!-- BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxuL	"&#x255D;"> <!-- BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxDl	"&#x2557;"> <!-- BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxdR	"&#x2554;"> <!-- BOX DRAWINGS DOUBLE DOWN AND RIGHT -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-cyr1.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-cyr1.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-cyr1.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,72 @@
+<!-- iso-cyr1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acy	"&#x0430;"> <!-- CYRILLIC SMALL LETTER A -->
+<!ENTITY Acy	"&#x0410;"> <!-- CYRILLIC CAPITAL LETTER A -->
+<!ENTITY bcy	"&#x0431;"> <!-- CYRILLIC SMALL LETTER BE -->
+<!ENTITY Bcy	"&#x0411;"> <!-- CYRILLIC CAPITAL LETTER BE -->
+<!ENTITY vcy	"&#x0432;"> <!-- CYRILLIC SMALL LETTER VE -->
+<!ENTITY Vcy	"&#x0412;"> <!-- CYRILLIC CAPITAL LETTER VE -->
+<!ENTITY gcy	"&#x0433;"> <!-- CYRILLIC SMALL LETTER GHE -->
+<!ENTITY Gcy	"&#x0413;"> <!-- CYRILLIC CAPITAL LETTER GHE -->
+<!ENTITY dcy	"&#x0434;"> <!-- CYRILLIC SMALL LETTER DE -->
+<!ENTITY Dcy	"&#x0414;"> <!-- CYRILLIC CAPITAL LETTER DE -->
+<!ENTITY iecy	"&#x0435;"> <!-- CYRILLIC SMALL LETTER IE -->
+<!ENTITY IEcy	"&#x0415;"> <!-- CYRILLIC CAPITAL LETTER IE -->
+<!ENTITY iocy	"&#x0451;"> <!-- CYRILLIC SMALL LETTER IO -->
+<!ENTITY IOcy	"&#x0401;"> <!-- CYRILLIC CAPITAL LETTER IO -->
+<!ENTITY zhcy	"&#x0436;"> <!-- CYRILLIC SMALL LETTER ZHE -->
+<!ENTITY ZHcy	"&#x0416;"> <!-- CYRILLIC CAPITAL LETTER ZHE -->
+<!ENTITY zcy	"&#x0437;"> <!-- CYRILLIC SMALL LETTER ZE -->
+<!ENTITY Zcy	"&#x0417;"> <!-- CYRILLIC CAPITAL LETTER ZE -->
+<!ENTITY icy	"&#x0438;"> <!-- CYRILLIC SMALL LETTER I -->
+<!ENTITY Icy	"&#x0418;"> <!-- CYRILLIC CAPITAL LETTER I -->
+<!ENTITY jcy	"&#x0439;"> <!-- CYRILLIC SMALL LETTER SHORT I -->
+<!ENTITY Jcy	"&#x0419;"> <!-- CYRILLIC CAPITAL LETTER SHORT I -->
+<!ENTITY kcy	"&#x043A;"> <!-- CYRILLIC SMALL LETTER KA -->
+<!ENTITY Kcy	"&#x041A;"> <!-- CYRILLIC CAPITAL LETTER KA -->
+<!ENTITY lcy	"&#x043B;"> <!-- CYRILLIC SMALL LETTER EL -->
+<!ENTITY Lcy	"&#x041B;"> <!-- CYRILLIC CAPITAL LETTER EL -->
+<!ENTITY mcy	"&#x043C;"> <!-- CYRILLIC SMALL LETTER EM -->
+<!ENTITY Mcy	"&#x041C;"> <!-- CYRILLIC CAPITAL LETTER EM -->
+<!ENTITY ncy	"&#x043D;"> <!-- CYRILLIC SMALL LETTER EN -->
+<!ENTITY Ncy	"&#x041D;"> <!-- CYRILLIC CAPITAL LETTER EN -->
+<!ENTITY ocy	"&#x043E;"> <!-- CYRILLIC SMALL LETTER O -->
+<!ENTITY Ocy	"&#x041E;"> <!-- CYRILLIC CAPITAL LETTER O -->
+<!ENTITY pcy	"&#x043F;"> <!-- CYRILLIC SMALL LETTER PE -->
+<!ENTITY Pcy	"&#x041F;"> <!-- CYRILLIC CAPITAL LETTER PE -->
+<!ENTITY rcy	"&#x0440;"> <!-- CYRILLIC SMALL LETTER ER -->
+<!ENTITY Rcy	"&#x0420;"> <!-- CYRILLIC CAPITAL LETTER ER -->
+<!ENTITY scy	"&#x0441;"> <!-- CYRILLIC SMALL LETTER ES -->
+<!ENTITY Scy	"&#x0421;"> <!-- CYRILLIC CAPITAL LETTER ES -->
+<!ENTITY tcy	"&#x0442;"> <!-- CYRILLIC SMALL LETTER TE -->
+<!ENTITY Tcy	"&#x0422;"> <!-- CYRILLIC CAPITAL LETTER TE -->
+<!ENTITY ucy	"&#x0443;"> <!-- CYRILLIC SMALL LETTER U -->
+<!ENTITY Ucy	"&#x0423;"> <!-- CYRILLIC CAPITAL LETTER U -->
+<!ENTITY fcy	"&#x0444;"> <!-- CYRILLIC SMALL LETTER EF -->
+<!ENTITY Fcy	"&#x0424;"> <!-- CYRILLIC CAPITAL LETTER EF -->
+<!ENTITY khcy	"&#x0445;"> <!-- CYRILLIC SMALL LETTER HA -->
+<!ENTITY KHcy	"&#x0425;"> <!-- CYRILLIC CAPITAL LETTER HA -->
+<!ENTITY tscy	"&#x0446;"> <!-- CYRILLIC SMALL LETTER TSE -->
+<!ENTITY TScy	"&#x0426;"> <!-- CYRILLIC CAPITAL LETTER TSE -->
+<!ENTITY chcy	"&#x0447;"> <!-- CYRILLIC SMALL LETTER CHE -->
+<!ENTITY CHcy	"&#x0427;"> <!-- CYRILLIC CAPITAL LETTER CHE -->
+<!ENTITY shcy	"&#x0448;"> <!-- CYRILLIC SMALL LETTER SHA -->
+<!ENTITY SHcy	"&#x0428;"> <!-- CYRILLIC CAPITAL LETTER SHA -->
+<!ENTITY shchcy	"&#x0449;"> <!-- CYRILLIC SMALL LETTER SHCHA -->
+<!ENTITY SHCHcy	"&#x0429;"> <!-- CYRILLIC CAPITAL LETTER SHCHA -->
+<!ENTITY hardcy	"&#x044A;"> <!-- CYRILLIC SMALL LETTER HARD SIGN -->
+<!ENTITY HARDcy	"&#x042A;"> <!-- CYRILLIC CAPITAL LETTER HARD SIGN -->
+<!ENTITY ycy	"&#x044B;"> <!-- CYRILLIC SMALL LETTER YERU -->
+<!ENTITY Ycy	"&#x042B;"> <!-- CYRILLIC CAPITAL LETTER YERU -->
+<!ENTITY softcy	"&#x044C;"> <!-- CYRILLIC SMALL LETTER SOFT SIGN -->
+<!ENTITY SOFTcy	"&#x042C;"> <!-- CYRILLIC CAPITAL LETTER SOFT SIGN -->
+<!ENTITY ecy	"&#x044D;"> <!-- CYRILLIC SMALL LETTER E -->
+<!ENTITY Ecy	"&#x042D;"> <!-- CYRILLIC CAPITAL LETTER E -->
+<!ENTITY yucy	"&#x044E;"> <!-- CYRILLIC SMALL LETTER YU -->
+<!ENTITY YUcy	"&#x042E;"> <!-- CYRILLIC CAPITAL LETTER YU -->
+<!ENTITY yacy	"&#x044F;"> <!-- CYRILLIC SMALL LETTER YA -->
+<!ENTITY YAcy	"&#x042F;"> <!-- CYRILLIC CAPITAL LETTER YA -->
+<!ENTITY numero	"&#x2116;"> <!-- NUMERO SIGN -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-cyr2.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-cyr2.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-cyr2.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+<!-- iso-cyr2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY djcy	"&#x0452;"> <!-- CYRILLIC SMALL LETTER DJE -->
+<!ENTITY DJcy	"&#x0402;"> <!-- CYRILLIC CAPITAL LETTER DJE -->
+<!ENTITY gjcy	"&#x0453;"> <!-- CYRILLIC SMALL LETTER GJE -->
+<!ENTITY GJcy	"&#x0403;"> <!-- CYRILLIC CAPITAL LETTER GJE -->
+<!ENTITY jukcy	"&#x0454;"> <!-- CYRILLIC SMALL LETTER UKRAINIAN IE -->
+<!ENTITY Jukcy	"&#x0404;"> <!-- CYRILLIC CAPITAL LETTER UKRAINIAN IE -->
+<!ENTITY dscy	"&#x0455;"> <!-- CYRILLIC SMALL LETTER DZE -->
+<!ENTITY DScy	"&#x0405;"> <!-- CYRILLIC CAPITAL LETTER DZE -->
+<!ENTITY iukcy	"&#x0456;"> <!-- CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY Iukcy	"&#x0406;"> <!-- CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY yicy	"&#x0457;"> <!-- CYRILLIC SMALL LETTER YI -->
+<!ENTITY YIcy	"&#x0407;"> <!-- CYRILLIC CAPITAL LETTER YI -->
+<!ENTITY jsercy	"&#x0458;"> <!-- CYRILLIC SMALL LETTER JE -->
+<!ENTITY Jsercy	"&#x0408;"> <!-- CYRILLIC CAPITAL LETTER JE -->
+<!ENTITY ljcy	"&#x0459;"> <!-- CYRILLIC SMALL LETTER LJE -->
+<!ENTITY LJcy	"&#x0409;"> <!-- CYRILLIC CAPITAL LETTER LJE -->
+<!ENTITY njcy	"&#x045A;"> <!-- CYRILLIC SMALL LETTER NJE -->
+<!ENTITY NJcy	"&#x040A;"> <!-- CYRILLIC CAPITAL LETTER NJE -->
+<!ENTITY tshcy	"&#x045B;"> <!-- CYRILLIC SMALL LETTER TSHE -->
+<!ENTITY TSHcy	"&#x040B;"> <!-- CYRILLIC CAPITAL LETTER TSHE -->
+<!ENTITY kjcy	"&#x045C;"> <!-- CYRILLIC SMALL LETTER KJE -->
+<!ENTITY KJcy	"&#x040C;"> <!-- CYRILLIC CAPITAL LETTER KJE -->
+<!ENTITY ubrcy	"&#x045E;"> <!-- CYRILLIC SMALL LETTER SHORT U -->
+<!ENTITY Ubrcy	"&#x040E;"> <!-- CYRILLIC CAPITAL LETTER SHORT U -->
+<!ENTITY dzcy	"&#x045F;"> <!-- CYRILLIC SMALL LETTER DZHE -->
+<!ENTITY DZcy	"&#x040F;"> <!-- CYRILLIC CAPITAL LETTER DZHE -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-dia.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-dia.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-dia.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<!-- iso-dia.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acute	"&#x00B4;"> <!-- ACUTE ACCENT -->
+<!ENTITY breve	"&#x02D8;"> <!-- BREVE -->
+<!ENTITY caron	"&#x02C7;"> <!-- CARON -->
+<!ENTITY cedil	"&#x00B8;"> <!-- CEDILLA -->
+<!ENTITY circ	"&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY dblac	"&#x02DD;"> <!-- DOUBLE ACUTE ACCENT -->
+<!ENTITY die	"&#x00A8;"> <!--  -->
+<!ENTITY dot	"&#x02D9;"> <!-- DOT ABOVE -->
+<!ENTITY grave	"&#x0060;"> <!-- GRAVE ACCENT -->
+<!ENTITY macr	"&#x00AF;"> <!-- MACRON -->
+<!ENTITY ogon	"&#x02DB;"> <!-- OGONEK -->
+<!ENTITY ring	"&#x02DA;"> <!-- RING ABOVE -->
+<!ENTITY tilde	"&#x007E;"> <!-- TILDE -->
+<!ENTITY uml	"&#x00A8;"> <!--  -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk1.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk1.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk1.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,54 @@
+<!-- iso-grk1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY agr	"&#x03B1;"> <!--  -->
+<!ENTITY Agr	"&#x0391;"> <!-- GREEK CAPITAL LETTER ALPHA -->
+<!ENTITY bgr	"&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY Bgr	"&#x0392;"> <!-- GREEK CAPITAL LETTER BETA -->
+<!ENTITY ggr	"&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Ggr	"&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY dgr	"&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Dgr	"&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY egr	"&#x03B5;"> <!--  -->
+<!ENTITY Egr	"&#x0395;"> <!-- GREEK CAPITAL LETTER EPSILON -->
+<!ENTITY zgr	"&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY Zgr	"&#x0396;"> <!-- GREEK CAPITAL LETTER ZETA -->
+<!ENTITY eegr	"&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY EEgr	"&#x0397;"> <!-- GREEK CAPITAL LETTER ETA -->
+<!ENTITY thgr	"&#x03B8;"> <!--  -->
+<!ENTITY THgr	"&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY igr	"&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY Igr	"&#x0399;"> <!-- GREEK CAPITAL LETTER IOTA -->
+<!ENTITY kgr	"&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY Kgr	"&#x039A;"> <!-- GREEK CAPITAL LETTER KAPPA -->
+<!ENTITY lgr	"&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lgr	"&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mgr	"&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY Mgr	"&#x039C;"> <!-- GREEK CAPITAL LETTER MU -->
+<!ENTITY ngr	"&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY Ngr	"&#x039D;"> <!-- GREEK CAPITAL LETTER NU -->
+<!ENTITY xgr	"&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xgr	"&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY ogr	"&#x03BF;"> <!-- GREEK SMALL LETTER OMICRON -->
+<!ENTITY Ogr	"&#x039F;"> <!-- GREEK CAPITAL LETTER OMICRON -->
+<!ENTITY pgr	"&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY Pgr	"&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rgr	"&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY Rgr	"&#x03A1;"> <!-- GREEK CAPITAL LETTER RHO -->
+<!ENTITY sgr	"&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sgr	"&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sfgr	"&#x03C2;"> <!--  -->
+<!ENTITY tgr	"&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY Tgr	"&#x03A4;"> <!-- GREEK CAPITAL LETTER TAU -->
+<!ENTITY ugr	"&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Ugr	"&#x03A5;"> <!--  -->
+<!ENTITY phgr	"&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY PHgr	"&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY khgr	"&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY KHgr	"&#x03A7;"> <!-- GREEK CAPITAL LETTER CHI -->
+<!ENTITY psgr	"&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY PSgr	"&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY ohgr	"&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY OHgr	"&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk2.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk2.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk2.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25 @@
+<!-- iso-grk2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacgr	"&#x03AC;"> <!-- GREEK SMALL LETTER ALPHA WITH TONOS -->
+<!ENTITY Aacgr	"&#x0386;"> <!-- GREEK CAPITAL LETTER ALPHA WITH TONOS -->
+<!ENTITY eacgr	"&#x03AD;"> <!-- GREEK SMALL LETTER EPSILON WITH TONOS -->
+<!ENTITY Eacgr	"&#x0388;"> <!-- GREEK CAPITAL LETTER EPSILON WITH TONOS -->
+<!ENTITY eeacgr	"&#x03AE;"> <!-- GREEK SMALL LETTER ETA WITH TONOS -->
+<!ENTITY EEacgr	"&#x0389;"> <!-- GREEK CAPITAL LETTER ETA WITH TONOS -->
+<!ENTITY idigr	"&#x03CA;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY Idigr	"&#x03AA;"> <!-- GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY iacgr	"&#x03AF;"> <!-- GREEK SMALL LETTER IOTA WITH TONOS -->
+<!ENTITY Iacgr	"&#x038A;"> <!-- GREEK CAPITAL LETTER IOTA WITH TONOS -->
+<!ENTITY idiagr	"&#x0390;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
+<!ENTITY oacgr	"&#x03CC;"> <!-- GREEK SMALL LETTER OMICRON WITH TONOS -->
+<!ENTITY Oacgr	"&#x038C;"> <!-- GREEK CAPITAL LETTER OMICRON WITH TONOS -->
+<!ENTITY udigr	"&#x03CB;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY Udigr	"&#x03AB;"> <!-- GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY uacgr	"&#x03CD;"> <!-- GREEK SMALL LETTER UPSILON WITH TONOS -->
+<!ENTITY Uacgr	"&#x038E;"> <!-- GREEK CAPITAL LETTER UPSILON WITH TONOS -->
+<!ENTITY udiagr	"&#x03B0;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
+<!ENTITY ohacgr	"&#x03CE;"> <!-- GREEK SMALL LETTER OMEGA WITH TONOS -->
+<!ENTITY OHacgr	"&#x038F;"> <!-- GREEK CAPITAL LETTER OMEGA WITH TONOS -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk3.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk3.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk3.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,48 @@
+<!-- iso-grk3.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY alpha	"&#x03B1;"> <!--  -->
+<!ENTITY beta	"&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY gamma	"&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Gamma	"&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY gammad	"&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY delta	"&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Delta	"&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY epsi	"&#x220A;"> <!--  -->
+<!ENTITY epsiv	"&#x03B5;"> <!--  -->
+<!ENTITY epsis	"&#x220A;"> <!--  -->
+<!ENTITY zeta	"&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY eta	"&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY thetas	"&#x03B8;"> <!--  -->
+<!ENTITY Theta	"&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY thetav	"&#x03D1;"> <!--  -->
+<!ENTITY iota	"&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY kappa	"&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY kappav	"&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY lambda	"&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lambda	"&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mu	"&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY nu	"&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY xi	"&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xi	"&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY pi	"&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY piv	"&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY Pi	"&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rho	"&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY rhov	"&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY sigma	"&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sigma	"&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sigmav	"&#x03C2;"> <!--  -->
+<!ENTITY tau	"&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY upsi	"&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Upsi	"&#x03D2;"> <!--  -->
+<!ENTITY phis	"&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY Phi	"&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY phiv	"&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY chi	"&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY psi	"&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY Psi	"&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY omega	"&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY Omega	"&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk4.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk4.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-grk4.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,48 @@
+<!-- iso-grk4.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY b.alpha	"&#x03B1;"> <!--  -->
+<!ENTITY b.beta	"&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY b.gamma	"&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY b.Gamma	"&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY b.gammad	"&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY b.delta	"&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY b.Delta	"&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY b.epsi	"&#x03B5;"> <!--  -->
+<!ENTITY b.epsiv	"&#x03B5;"> <!--  -->
+<!ENTITY b.epsis	"&#x03B5;"> <!--  -->
+<!ENTITY b.zeta	"&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY b.eta	"&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY b.thetas	"&#x03B8;"> <!--  -->
+<!ENTITY b.Theta	"&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY b.thetav	"&#x03D1;"> <!--  -->
+<!ENTITY b.iota	"&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY b.kappa	"&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY b.kappav	"&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY b.lambda	"&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY b.Lambda	"&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY b.mu	"&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY b.nu	"&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY b.xi	"&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY b.Xi	"&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY b.pi	"&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY b.Pi	"&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY b.piv	"&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY b.rho	"&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY b.rhov	"&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY b.sigma	"&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY b.Sigma	"&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY b.sigmav	"&#x03C2;"> <!--  -->
+<!ENTITY b.tau	"&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY b.upsi	"&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY b.Upsi	"&#x03D2;"> <!--  -->
+<!ENTITY b.phis	"&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY b.Phi	"&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY b.phiv	"&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY b.chi	"&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY b.psi	"&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY b.Psi	"&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY b.omega	"&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY b.Omega	"&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-lat1.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-lat1.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-lat1.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,67 @@
+<!-- iso-lat1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacute	"&#x00E1;"> <!-- LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Aacute	"&#x00C1;"> <!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY acirc	"&#x00E2;"> <!-- LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY Acirc	"&#x00C2;"> <!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY agrave	"&#x00E0;"> <!-- LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Agrave	"&#x00C0;"> <!-- LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY aring	"&#x00E5;"> <!-- LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Aring	"&#x00C5;"> <!-- LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY atilde	"&#x00E3;"> <!-- LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Atilde	"&#x00C3;"> <!-- LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY auml	"&#x00E4;"> <!-- LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Auml	"&#x00C4;"> <!-- LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY aelig	"&#x00E6;"> <!-- LATIN SMALL LETTER AE -->
+<!ENTITY AElig	"&#x00C6;"> <!-- LATIN CAPITAL LETTER AE -->
+<!ENTITY ccedil	"&#x00E7;"> <!-- LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Ccedil	"&#x00C7;"> <!-- LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY eth	"&#x00D0;"> <!-- LATIN SMALL LETTER ETH -->
+<!ENTITY ETH	"&#x00F0;"> <!-- LATIN CAPITAL LETTER ETH -->
+<!ENTITY eacute	"&#x00E9;"> <!-- LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Eacute	"&#x00C9;"> <!-- LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY ecirc	"&#x00EA;"> <!-- LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Ecirc	"&#x00CA;"> <!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY egrave	"&#x00E8;"> <!-- LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY Egrave	"&#x00C8;"> <!-- LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY euml	"&#x00EB;"> <!-- LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Euml	"&#x00CB;"> <!-- LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY iacute	"&#x00ED;"> <!-- LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Iacute	"&#x00CD;"> <!-- LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY icirc	"&#x00EE;"> <!-- LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Icirc	"&#x00CE;"> <!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY igrave	"&#x00EC;"> <!-- LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Igrave	"&#x00CC;"> <!-- LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY iuml	"&#x00EF;"> <!-- LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Iuml	"&#x00CF;"> <!-- LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY ntilde	"&#x00F1;"> <!-- LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Ntilde	"&#x00D1;"> <!-- LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY oacute	"&#x00F3;"> <!-- LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Oacute	"&#x00D3;"> <!-- LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY ocirc	"&#x00F4;"> <!-- LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ocirc	"&#x00D4;"> <!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ograve	"&#x00F2;"> <!-- LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Ograve	"&#x00D2;"> <!-- LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY oslash	"&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY Oslash	"&#x00D8;"> <!-- LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY otilde	"&#x00F5;"> <!-- LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Otilde	"&#x00D5;"> <!-- LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY ouml	"&#x00F6;"> <!-- LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY Ouml	"&#x00D6;"> <!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig	"&#x00DF;"> <!-- LATIN SMALL LETTER SHARP S -->
+<!ENTITY thorn	"&#x00FE;"> <!-- LATIN SMALL LETTER THORN -->
+<!ENTITY THORN	"&#x00DE;"> <!-- LATIN CAPITAL LETTER THORN -->
+<!ENTITY uacute	"&#x00FA;"> <!-- LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Uacute	"&#x00DA;"> <!-- LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY ucirc	"&#x00DB;"> <!-- LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ucirc	"&#x00FB;"> <!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ugrave	"&#x00F9;"> <!-- LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Ugrave	"&#x00D9;"> <!-- LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY uuml	"&#x00FC;"> <!-- LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Uuml	"&#x00DC;"> <!-- LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY yacute	"&#x00FD;"> <!-- LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY Yacute	"&#x00DD;"> <!-- LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yuml	"&#x00FF;"> <!-- LATIN SMALL LETTER Y WITH DIAERESIS -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-lat2.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-lat2.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-lat2.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,126 @@
+<!-- iso-lat2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY abreve	"&#x0103;"> <!-- LATIN SMALL LETTER A WITH BREVE -->
+<!ENTITY Abreve	"&#x0102;"> <!-- LATIN CAPITAL LETTER A WITH BREVE -->
+<!ENTITY amacr	"&#x0101;"> <!-- LATIN SMALL LETTER A WITH MACRON -->
+<!ENTITY Amacr	"&#x0100;"> <!-- LATIN CAPITAL LETTER A WITH MACRON -->
+<!ENTITY aogon	"&#x0105;"> <!-- LATIN SMALL LETTER A WITH OGONEK -->
+<!ENTITY Aogon	"&#x0104;"> <!-- LATIN CAPITAL LETTER A WITH OGONEK -->
+<!ENTITY cacute	"&#x0107;"> <!-- LATIN SMALL LETTER C WITH ACUTE -->
+<!ENTITY Cacute	"&#x0106;"> <!-- LATIN CAPITAL LETTER C WITH ACUTE -->
+<!ENTITY ccaron	"&#x010D;"> <!-- LATIN SMALL LETTER C WITH CARON -->
+<!ENTITY Ccaron	"&#x010C;"> <!-- LATIN CAPITAL LETTER C WITH CARON -->
+<!ENTITY ccirc	"&#x0109;"> <!-- LATIN SMALL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY Ccirc	"&#x0108;"> <!-- LATIN CAPITAL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY cdot	"&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY Cdot	"&#x010A;"> <!-- LATIN CAPITAL LETTER C WITH DOT ABOVE -->
+<!ENTITY dcaron	"&#x010F;"> <!-- LATIN SMALL LETTER D WITH CARON -->
+<!ENTITY Dcaron	"&#x010E;"> <!-- LATIN CAPITAL LETTER D WITH CARON -->
+<!ENTITY dstrok	"&#x0111;"> <!-- LATIN SMALL LETTER D WITH STROKE -->
+<!ENTITY Dstrok	"&#x0110;"> <!-- LATIN CAPITAL LETTER D WITH STROKE -->
+<!ENTITY ecaron	"&#x011B;"> <!-- LATIN SMALL LETTER E WITH CARON -->
+<!ENTITY Ecaron	"&#x011A;"> <!-- LATIN CAPITAL LETTER E WITH CARON -->
+<!ENTITY edot	"&#x0117;"> <!-- LATIN SMALL LETTER E WITH DOT ABOVE -->
+<!ENTITY Edot	"&#x0116;"> <!-- LATIN CAPITAL LETTER E WITH DOT ABOVE -->
+<!ENTITY emacr	"&#x0113;"> <!-- LATIN SMALL LETTER E WITH MACRON -->
+<!ENTITY Emacr	"&#x0112;"> <!-- LATIN CAPITAL LETTER E WITH MACRON -->
+<!ENTITY eogon	"&#x0119;"> <!-- LATIN SMALL LETTER E WITH OGONEK -->
+<!ENTITY Eogon	"&#x0118;"> <!-- LATIN CAPITAL LETTER E WITH OGONEK -->
+<!ENTITY gacute	"&#x01F5;"> <!-- LATIN SMALL LETTER G WITH ACUTE -->
+<!ENTITY gbreve	"&#x011F;"> <!-- LATIN SMALL LETTER G WITH BREVE -->
+<!ENTITY Gbreve	"&#x011E;"> <!-- LATIN CAPITAL LETTER G WITH BREVE -->
+<!ENTITY Gcedil	"&#x0122;"> <!-- LATIN CAPITAL LETTER G WITH CEDILLA -->
+<!ENTITY gcirc	"&#x011D;"> <!-- LATIN SMALL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY Gcirc	"&#x011C;"> <!-- LATIN CAPITAL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY gdot	"&#x0121;"> <!-- LATIN SMALL LETTER G WITH DOT ABOVE -->
+<!ENTITY Gdot	"&#x0120;"> <!-- LATIN CAPITAL LETTER G WITH DOT ABOVE -->
+<!ENTITY hcirc	"&#x0125;"> <!-- LATIN SMALL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY Hcirc	"&#x0124;"> <!-- LATIN CAPITAL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY hstrok	"&#x0127;"> <!-- LATIN SMALL LETTER H WITH STROKE -->
+<!ENTITY Hstrok	"&#x0126;"> <!-- LATIN CAPITAL LETTER H WITH STROKE -->
+<!ENTITY Idot	"&#x0130;"> <!-- LATIN CAPITAL LETTER I WITH DOT ABOVE -->
+<!ENTITY Imacr	"&#x012A;"> <!-- LATIN CAPITAL LETTER I WITH MACRON -->
+<!ENTITY imacr	"&#x012B;"> <!-- LATIN SMALL LETTER I WITH MACRON -->
+<!ENTITY ijlig	"&#x0133;"> <!-- LATIN SMALL LIGATURE IJ -->
+<!ENTITY IJlig	"&#x0132;"> <!-- LATIN CAPITAL LIGATURE IJ -->
+<!ENTITY inodot	"&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY iogon	"&#x012F;"> <!-- LATIN SMALL LETTER I WITH OGONEK -->
+<!ENTITY Iogon	"&#x012E;"> <!-- LATIN CAPITAL LETTER I WITH OGONEK -->
+<!ENTITY itilde	"&#x0129;"> <!-- LATIN SMALL LETTER I WITH TILDE -->
+<!ENTITY Itilde	"&#x0128;"> <!-- LATIN CAPITAL LETTER I WITH TILDE -->
+<!ENTITY jcirc	"&#x0135;"> <!-- LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY Jcirc	"&#x0134;"> <!-- LATIN CAPITAL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY kcedil	"&#x0137;"> <!-- LATIN SMALL LETTER K WITH CEDILLA -->
+<!ENTITY Kcedil	"&#x0136;"> <!-- LATIN CAPITAL LETTER K WITH CEDILLA -->
+<!ENTITY kgreen	"&#x0138;"> <!-- LATIN SMALL LETTER KRA -->
+<!ENTITY lacute	"&#x013A;"> <!-- LATIN SMALL LETTER L WITH ACUTE -->
+<!ENTITY Lacute	"&#x0139;"> <!-- LATIN CAPITAL LETTER L WITH ACUTE -->
+<!ENTITY lcaron	"&#x013E;"> <!-- LATIN SMALL LETTER L WITH CARON -->
+<!ENTITY Lcaron	"&#x013D;"> <!-- LATIN CAPITAL LETTER L WITH CARON -->
+<!ENTITY lcedil	"&#x013C;"> <!-- LATIN SMALL LETTER L WITH CEDILLA -->
+<!ENTITY Lcedil	"&#x013B;"> <!-- LATIN CAPITAL LETTER L WITH CEDILLA -->
+<!ENTITY lmidot	"&#x0140;"> <!-- LATIN SMALL LETTER L WITH MIDDLE DOT -->
+<!ENTITY Lmidot	"&#x013F;"> <!-- LATIN CAPITAL LETTER L WITH MIDDLE DOT -->
+<!ENTITY lstrok	"&#x0142;"> <!-- LATIN SMALL LETTER L WITH STROKE -->
+<!ENTITY Lstrok	"&#x0141;"> <!-- LATIN CAPITAL LETTER L WITH STROKE -->
+<!ENTITY nacute	"&#x0144;"> <!-- LATIN SMALL LETTER N WITH ACUTE -->
+<!ENTITY Nacute	"&#x0143;"> <!-- LATIN CAPITAL LETTER N WITH ACUTE -->
+<!ENTITY eng	"&#x014B;"> <!-- LATIN SMALL LETTER ENG -->
+<!ENTITY ENG	"&#x014A;"> <!-- LATIN CAPITAL LETTER ENG -->
+<!ENTITY napos	"&#x0149;"> <!-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -->
+<!ENTITY ncaron	"&#x0148;"> <!-- LATIN SMALL LETTER N WITH CARON -->
+<!ENTITY Ncaron	"&#x0147;"> <!-- LATIN CAPITAL LETTER N WITH CARON -->
+<!ENTITY ncedil	"&#x0146;"> <!-- LATIN SMALL LETTER N WITH CEDILLA -->
+<!ENTITY Ncedil	"&#x0145;"> <!-- LATIN CAPITAL LETTER N WITH CEDILLA -->
+<!ENTITY odblac	"&#x0151;"> <!-- LATIN SMALL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Odblac	"&#x0150;"> <!-- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Omacr	"&#x014C;"> <!-- LATIN CAPITAL LETTER O WITH MACRON -->
+<!ENTITY omacr	"&#x014D;"> <!-- LATIN SMALL LETTER O WITH MACRON -->
+<!ENTITY oelig	"&#x0153;"> <!-- LATIN SMALL LIGATURE OE -->
+<!ENTITY OElig	"&#x0152;"> <!-- LATIN CAPITAL LIGATURE OE -->
+<!ENTITY racute	"&#x0155;"> <!-- LATIN SMALL LETTER R WITH ACUTE -->
+<!ENTITY Racute	"&#x0154;"> <!-- LATIN CAPITAL LETTER R WITH ACUTE -->
+<!ENTITY rcaron	"&#x0159;"> <!-- LATIN SMALL LETTER R WITH CARON -->
+<!ENTITY Rcaron	"&#x0158;"> <!-- LATIN CAPITAL LETTER R WITH CARON -->
+<!ENTITY rcedil	"&#x0157;"> <!-- LATIN SMALL LETTER R WITH CEDILLA -->
+<!ENTITY Rcedil	"&#x0156;"> <!-- LATIN CAPITAL LETTER R WITH CEDILLA -->
+<!ENTITY sacute	"&#x015B;"> <!-- LATIN SMALL LETTER S WITH ACUTE -->
+<!ENTITY Sacute	"&#x015A;"> <!-- LATIN CAPITAL LETTER S WITH ACUTE -->
+<!ENTITY scaron	"&#x0161;"> <!-- LATIN SMALL LETTER S WITH CARON -->
+<!ENTITY Scaron	"&#x0160;"> <!-- LATIN CAPITAL LETTER S WITH CARON -->
+<!ENTITY scedil	"&#x015F;"> <!-- LATIN SMALL LETTER S WITH CEDILLA -->
+<!ENTITY Scedil	"&#x015E;"> <!-- LATIN CAPITAL LETTER S WITH CEDILLA -->
+<!ENTITY scirc	"&#x015D;"> <!-- LATIN SMALL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY Scirc	"&#x015C;"> <!-- LATIN CAPITAL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY tcaron	"&#x0165;"> <!-- LATIN SMALL LETTER T WITH CARON -->
+<!ENTITY Tcaron	"&#x0164;"> <!-- LATIN CAPITAL LETTER T WITH CARON -->
+<!ENTITY tcedil	"&#x0163;"> <!-- LATIN SMALL LETTER T WITH CEDILLA -->
+<!ENTITY Tcedil	"&#x0162;"> <!-- LATIN CAPITAL LETTER T WITH CEDILLA -->
+<!ENTITY tstrok	"&#x0167;"> <!-- LATIN SMALL LETTER T WITH STROKE -->
+<!ENTITY Tstrok	"&#x0166;"> <!-- LATIN CAPITAL LETTER T WITH STROKE -->
+<!ENTITY ubreve	"&#x016D;"> <!-- LATIN SMALL LETTER U WITH BREVE -->
+<!ENTITY Ubreve	"&#x016C;"> <!-- LATIN CAPITAL LETTER U WITH BREVE -->
+<!ENTITY udblac	"&#x0171;"> <!-- LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY Udblac	"&#x0170;"> <!-- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY umacr	"&#x016B;"> <!-- LATIN SMALL LETTER U WITH MACRON -->
+<!ENTITY Umacr	"&#x016A;"> <!-- LATIN CAPITAL LETTER U WITH MACRON -->
+<!ENTITY uogon	"&#x0173;"> <!-- LATIN SMALL LETTER U WITH OGONEK -->
+<!ENTITY Uogon	"&#x0172;"> <!-- LATIN CAPITAL LETTER U WITH OGONEK -->
+<!ENTITY uring	"&#x016F;"> <!-- LATIN SMALL LETTER U WITH RING ABOVE -->
+<!ENTITY Uring	"&#x016E;"> <!-- LATIN CAPITAL LETTER U WITH RING ABOVE -->
+<!ENTITY utilde	"&#x0169;"> <!-- LATIN SMALL LETTER U WITH TILDE -->
+<!ENTITY Utilde	"&#x0168;"> <!-- LATIN CAPITAL LETTER U WITH TILDE -->
+<!ENTITY wcirc	"&#x0175;"> <!-- LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY Wcirc	"&#x0174;"> <!-- LATIN CAPITAL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY ycirc	"&#x0177;"> <!-- LATIN SMALL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Ycirc	"&#x0176;"> <!-- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Yuml	"&#x0178;"> <!-- LATIN CAPITAL LETTER Y WITH DIAERESIS -->
+<!ENTITY zacute	"&#x017A;"> <!-- LATIN SMALL LETTER Z WITH ACUTE -->
+<!ENTITY Zacute	"&#x0179;"> <!-- LATIN CAPITAL LETTER Z WITH ACUTE -->
+<!ENTITY zcaron	"&#x017E;"> <!-- LATIN SMALL LETTER Z WITH CARON -->
+<!ENTITY Zcaron	"&#x017D;"> <!-- LATIN CAPITAL LETTER Z WITH CARON -->
+<!ENTITY zdot	"&#x017C;"> <!-- LATIN SMALL LETTER Z WITH DOT ABOVE -->
+<!ENTITY Zdot	"&#x017B;"> <!-- LATIN CAPITAL LETTER Z WITH DOT ABOVE -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-num.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-num.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-num.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,81 @@
+<!-- iso-num.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY half	"&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac12	"&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14	"&#x00BC;"> <!-- VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac34	"&#x00BE;"> <!-- VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac18	"&#x215B;"> <!--  -->
+<!ENTITY frac38	"&#x215C;"> <!--  -->
+<!ENTITY frac58	"&#x215D;"> <!--  -->
+<!ENTITY frac78	"&#x215E;"> <!--  -->
+<!ENTITY sup1	"&#x00B9;"> <!-- SUPERSCRIPT ONE -->
+<!ENTITY sup2	"&#x00B2;"> <!-- SUPERSCRIPT TWO -->
+<!ENTITY sup3	"&#x00B3;"> <!-- SUPERSCRIPT THREE -->
+<!ENTITY plus	"&#x002B;"> <!-- PLUS SIGN -->
+<!ENTITY plusmn	"&#x00B1;"> <!-- PLUS-MINUS SIGN -->
+<!-- predeclared in XML <!ENTITY lt	"&#x003C;"--> <!-- LESS-THAN SIGN -->
+<!ENTITY equals	"&#x003D;"> <!-- EQUALS SIGN -->
+<!ENTITY gt	"&#x003E;"> <!-- GREATER-THAN SIGN -->
+<!ENTITY divide	"&#x00F7;"> <!-- DIVISION SIGN -->
+<!ENTITY times	"&#x00D7;"> <!-- MULTIPLICATION SIGN -->
+<!ENTITY curren	"&#x00A4;"> <!-- CURRENCY SIGN -->
+<!ENTITY pound	"&#x00A3;"> <!-- POUND SIGN -->
+<!ENTITY dollar	"&#x0024;"> <!-- DOLLAR SIGN -->
+<!ENTITY cent	"&#x00A2;"> <!-- CENT SIGN -->
+<!ENTITY yen	"&#x00A5;"> <!-- YEN SIGN -->
+<!ENTITY num	"&#x0023;"> <!-- NUMBER SIGN -->
+<!ENTITY percnt	"&#x0025;"> <!-- PERCENT SIGN -->
+<!-- predeclared in XML <!ENTITY amp	"&#x0026;"--> <!-- AMPERSAND -->
+<!ENTITY ast	"&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY commat	"&#x0040;"> <!-- COMMERCIAL AT -->
+<!ENTITY lsqb	"&#x005B;"> <!-- LEFT SQUARE BRACKET -->
+<!ENTITY bsol	"&#x005C;"> <!-- REVERSE SOLIDUS -->
+<!ENTITY rsqb	"&#x005D;"> <!-- RIGHT SQUARE BRACKET -->
+<!ENTITY lcub	"&#x007B;"> <!-- LEFT CURLY BRACKET -->
+<!ENTITY horbar	"&#x2015;"> <!-- HORIZONTAL BAR -->
+<!ENTITY verbar	"&#x007C;"> <!-- VERTICAL LINE -->
+<!ENTITY rcub	"&#x007D;"> <!-- RIGHT CURLY BRACKET -->
+<!ENTITY micro	"&#x00B5;"> <!-- MICRO SIGN -->
+<!ENTITY ohm	"&#x2126;"> <!-- OHM SIGN -->
+<!ENTITY deg	"&#x00B0;"> <!-- DEGREE SIGN -->
+<!ENTITY ordm	"&#x00BA;"> <!-- MASCULINE ORDINAL INDICATOR -->
+<!ENTITY ordf	"&#x00AA;"> <!-- FEMININE ORDINAL INDICATOR -->
+<!ENTITY sect	"&#x00A7;"> <!-- SECTION SIGN -->
+<!ENTITY para	"&#x00B6;"> <!-- PILCROW SIGN -->
+<!ENTITY middot	"&#x00B7;"> <!-- MIDDLE DOT -->
+<!ENTITY larr	"&#x2190;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY rarr	"&#x2192;"> <!-- RIGHTWARDS DOUBLE ARROW -->
+<!ENTITY uarr	"&#x2191;"> <!-- UPWARDS ARROW -->
+<!ENTITY darr	"&#x2193;"> <!-- DOWNWARDS ARROW -->
+<!ENTITY copy	"&#x00A9;"> <!-- COPYRIGHT SIGN -->
+<!ENTITY reg	"&#x00AF;"> <!-- MACRON -->
+<!ENTITY trade	"&#x2122;"> <!-- TRADE MARK SIGN -->
+<!ENTITY brvbar	"&#x00A6;"> <!-- BROKEN BAR -->
+<!ENTITY not	"&#x00AC;"> <!-- NOT SIGN -->
+<!ENTITY sung	"&#x2669;"> <!--  -->
+<!ENTITY excl	"&#x0021;"> <!-- EXCLAMATION MARK -->
+<!ENTITY iexcl	"&#x00A1;"> <!-- INVERTED EXCLAMATION MARK -->
+<!ENTITY quot	"&#x0022;"> <!-- QUOTATION MARK -->
+<!ENTITY apos	"&#x0027;"> <!-- APOSTROPHE -->
+<!ENTITY lpar	"&#x0028;"> <!-- LEFT PARENTHESIS -->
+<!ENTITY rpar	"&#x0029;"> <!-- RIGHT PARENTHESIS -->
+<!ENTITY comma	"&#x002C;"> <!-- COMMA -->
+<!ENTITY lowbar	"&#x005F;"> <!-- LOW LINE -->
+<!ENTITY hyphen	"&#xE4F8;"> <!--  -->
+<!ENTITY period	"&#x002E;"> <!-- FULL STOP -->
+<!ENTITY sol	"&#x002F;"> <!-- SOLIDUS -->
+<!ENTITY colon	"&#x003A;"> <!-- COLON -->
+<!ENTITY semi	"&#x003B;"> <!-- SEMICOLON -->
+<!ENTITY quest	"&#x003F;"> <!-- QUESTION MARK -->
+<!ENTITY iquest	"&#x00BF;"> <!-- INVERTED QUESTION MARK -->
+<!ENTITY laquo	"&#x00AB;"> <!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY raquo	"&#x00BB;"> <!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY lsquo	"&#x2018;"> <!--  -->
+<!ENTITY rsquo	"&#x2019;"> <!-- RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY ldquo	"&#x201C;"> <!--  -->
+<!ENTITY rdquo	"&#x201D;"> <!-- RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY nbsp	"&#x00A0;"> <!-- NO-BREAK SPACE -->
+<!ENTITY shy	"&#x00AD;"> <!-- SOFT HYPHEN -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-pub.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-pub.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-pub.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,90 @@
+<!-- iso-pub.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY emsp	"&#x2003;"> <!-- EM SPACE -->
+<!ENTITY ensp	"&#x2002;"> <!-- EN SPACE -->
+<!ENTITY emsp13	"&#x2004;"> <!-- THREE-PER-EM SPACE -->
+<!ENTITY emsp14	"&#x2005;"> <!-- FOUR-PER-EM SPACE -->
+<!ENTITY numsp	"&#x2007;"> <!-- FIGURE SPACE -->
+<!ENTITY puncsp	"&#x2008;"> <!-- PUNCTUATION SPACE -->
+<!ENTITY thinsp	"&#x2009;"> <!-- THIN SPACE -->
+<!ENTITY hairsp	"&#x200A;"> <!-- HAIR SPACE -->
+<!ENTITY mdash	"&#x2014;"> <!-- EM DASH -->
+<!ENTITY ndash	"&#x2013;"> <!-- EN DASH -->
+<!ENTITY dash	"&#x2010;"> <!-- HYPHEN -->
+<!ENTITY blank	"&#x2423;"> <!-- OPEN BOX -->
+<!ENTITY hellip	"&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY nldr	"&#x2025;"> <!-- TWO DOT LEADER -->
+<!ENTITY frac13	"&#x2153;"> <!-- VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac23	"&#x2154;"> <!-- VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac15	"&#x2155;"> <!-- VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac25	"&#x2156;"> <!-- VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35	"&#x2157;"> <!-- VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45	"&#x2158;"> <!-- VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac16	"&#x2159;"> <!-- VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac56	"&#x215A;"> <!-- VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY incare	"&#x2105;"> <!-- CARE OF -->
+<!ENTITY block	"&#x2588;"> <!-- FULL BLOCK -->
+<!ENTITY uhblk	"&#x2580;"> <!-- UPPER HALF BLOCK -->
+<!ENTITY lhblk	"&#x2584;"> <!-- LOWER HALF BLOCK -->
+<!ENTITY blk14	"&#x2591;"> <!-- LIGHT SHADE -->
+<!ENTITY blk12	"&#x2592;"> <!-- MEDIUM SHADE -->
+<!ENTITY blk34	"&#x2593;"> <!-- DARK SHADE -->
+<!ENTITY marker	"&#x25AE;"> <!-- BLACK VERTICAL RECTANGLE -->
+<!ENTITY cir	"&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY squ	"&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY rect	"&#x25AD;"> <!-- WHITE RECTANGLE -->
+<!ENTITY utri	"&#x25B5;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY dtri	"&#x25BF;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY star	"&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY bull	"&#x2022;"> <!-- BULLET -->
+<!ENTITY squf	"&#x25AA;"> <!--  -->
+<!ENTITY utrif	"&#x25B4;"> <!-- BLACK UP-POINTING TRIANGLE -->
+<!ENTITY dtrif	"&#x25BE;"> <!-- BLACK DOWN-POINTING TRIANGLE -->
+<!ENTITY ltrif	"&#x25C2;"> <!-- BLACK LEFT-POINTING TRIANGLE -->
+<!ENTITY rtrif	"&#x25B8;"> <!-- BLACK RIGHT-POINTING TRIANGLE -->
+<!ENTITY clubs	"&#x2663;"> <!-- BLACK CLUB SUIT -->
+<!ENTITY diams	"&#x2666;"> <!-- BLACK DIAMOND SUIT -->
+<!ENTITY hearts	"&#x2665;"> <!-- BLACK HEART SUIT -->
+<!ENTITY spades	"&#x2660;"> <!-- BLACK SPADE SUIT -->
+<!ENTITY malt	"&#x2720;"> <!-- MALTESE CROSS -->
+<!ENTITY dagger	"&#x2020;"> <!-- DAGGER -->
+<!ENTITY Dagger	"&#x2021;"> <!-- DOUBLE DAGGER -->
+<!ENTITY check	"&#x2713;"> <!-- CHECK MARK -->
+<!ENTITY cross	"&#x2717;"> <!-- BALLOT X -->
+<!ENTITY sharp	"&#x266F;"> <!-- MUSIC SHARP SIGN -->
+<!ENTITY flat	"&#x266D;"> <!-- MUSIC FLAT SIGN -->
+<!ENTITY male	"&#x2642;"> <!-- MALE SIGN -->
+<!ENTITY female	"&#x2640;"> <!--  -->
+<!ENTITY phone	"&#x260E;"> <!-- TELEPHONE SIGN -->
+<!ENTITY telrec	"&#x2315;"> <!-- TELEPHONE RECORDER -->
+<!ENTITY copysr	"&#x2117;"> <!-- SOUND RECORDING COPYRIGHT -->
+<!ENTITY caret	"&#x2041;"> <!-- CARET -->
+<!ENTITY lsquor	"&#x201A;"> <!-- SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ldquor	"&#x201E;"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY fflig	"&#xFB00;"> <!--  -->
+<!ENTITY filig	"&#xFB01;"> <!--  -->
+<!--     fjlig	Unknown unicode character -->
+<!ENTITY ffilig	"&#xFB03;"> <!--  -->
+<!ENTITY ffllig	"&#xFB04;"> <!--  -->
+<!ENTITY fllig	"&#xFB02;"> <!--  -->
+<!ENTITY mldr	"&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY rdquor	"&#x201C;"> <!--  -->
+<!ENTITY rsquor	"&#x2018;"> <!--  -->
+<!ENTITY vellip	"&#x22EE;"> <!--  -->
+<!ENTITY hybull	"&#x2043;"> <!-- HYPHEN BULLET -->
+<!ENTITY loz	"&#x25CA;"> <!-- LOZENGE -->
+<!ENTITY lozf	"&#x2726;"> <!--  -->
+<!ENTITY ltri	"&#x25C3;"> <!-- WHITE LEFT-POINTING TRIANGLE -->
+<!ENTITY rtri	"&#x25B9;"> <!-- WHITE RIGHT-POINTING TRIANGLE -->
+<!ENTITY starf	"&#x2605;"> <!-- BLACK STAR -->
+<!ENTITY natur	"&#x266E;"> <!-- MUSIC NATURAL SIGN -->
+<!ENTITY rx	"&#x211E;"> <!-- PRESCRIPTION TAKE -->
+<!ENTITY sext	"&#x2736;"> <!-- SIX POINTED BLACK STAR -->
+<!ENTITY target	"&#x2316;"> <!-- POSITION INDICATOR -->
+<!ENTITY dlcrop	"&#x230D;"> <!-- BOTTOM LEFT CROP -->
+<!ENTITY drcrop	"&#x230C;"> <!-- BOTTOM RIGHT CROP -->
+<!ENTITY ulcrop	"&#x230F;"> <!-- TOP LEFT CROP -->
+<!ENTITY urcrop	"&#x230E;"> <!-- TOP RIGHT CROP -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-tech.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-tech.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/ent/iso-tech.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,67 @@
+<!-- iso-tech.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aleph	"&#x2135;"> <!-- ALEF SYMBOL -->
+<!ENTITY and	"&#x2227;"> <!--  -->
+<!ENTITY ang90	"&#x221F;"> <!-- RIGHT ANGLE -->
+<!ENTITY angsph	"&#x2222;"> <!--  -->
+<!ENTITY ap	"&#x2248;"> <!--  -->
+<!ENTITY becaus	"&#x2235;"> <!-- BECAUSE -->
+<!ENTITY bottom	"&#x22A5;"> <!--  -->
+<!ENTITY cap	"&#x2229;"> <!--  -->
+<!ENTITY cong	"&#x2245;"> <!--  -->
+<!ENTITY conint	"&#x222E;"> <!--  -->
+<!ENTITY cup	"&#x222A;"> <!--  -->
+<!ENTITY equiv	"&#x2261;"> <!--  -->
+<!ENTITY exist	"&#x2203;"> <!--  -->
+<!ENTITY forall	"&#x2200;"> <!--  -->
+<!ENTITY fnof	"&#x0192;"> <!-- LATIN SMALL LETTER F WITH HOOK -->
+<!ENTITY ge	"&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY iff	"&#xE365;"> <!--  -->
+<!ENTITY infin	"&#x221E;"> <!--  -->
+<!ENTITY int	"&#x222B;"> <!--  -->
+<!ENTITY isin	"&#x220A;"> <!--  -->
+<!ENTITY lang	"&#x3008;"> <!--  -->
+<!ENTITY lArr	"&#x21D0;"> <!-- LEFTWARDS ARROW -->
+<!ENTITY le	"&#x2264;"> <!--  -->
+<!ENTITY minus	"&#x2212;"> <!-- MINUS SIGN -->
+<!ENTITY mnplus	"&#x2213;"> <!--  -->
+<!ENTITY nabla	"&#x2207;"> <!-- NABLA -->
+<!ENTITY ne	"&#x2260;"> <!--  -->
+<!ENTITY ni	"&#x220D;"> <!--  -->
+<!ENTITY or	"&#x2228;"> <!--  -->
+<!ENTITY par	"&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY part	"&#x2202;"> <!--  -->
+<!ENTITY permil	"&#x2030;"> <!-- PER MILLE SIGN -->
+<!ENTITY perp	"&#x22A5;"> <!--  -->
+<!ENTITY prime	"&#x2032;"> <!-- PRIME -->
+<!ENTITY Prime	"&#x2033;"> <!-- DOUBLE PRIME -->
+<!ENTITY prop	"&#x221D;"> <!--  -->
+<!ENTITY radic	"&#x221A;"> <!--  -->
+<!ENTITY rang	"&#x3009;"> <!--  -->
+<!ENTITY rArr	"&#x21D2;"> <!-- RIGHTWARDS ARROW -->
+<!ENTITY sim	"&#x223C;"> <!--  -->
+<!ENTITY sime	"&#x2243;"> <!--  -->
+<!ENTITY square	"&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY sub	"&#x2282;"> <!--  -->
+<!ENTITY sube	"&#x2286;"> <!--  -->
+<!ENTITY sup	"&#x2283;"> <!--  -->
+<!ENTITY supe	"&#x2287;"> <!--  -->
+<!ENTITY there4	"&#x2234;"> <!--  -->
+<!ENTITY Verbar	"&#x2016;"> <!-- DOUBLE VERTICAL LINE -->
+<!ENTITY angst	"&#x212B;"> <!-- ANGSTROM SIGN -->
+<!ENTITY bernou	"&#x212C;"> <!-- SCRIPT CAPITAL B -->
+<!ENTITY compfn	"&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY Dot	"&#x0308;"> <!--  -->
+<!ENTITY DotDot	"&#x20DC;"> <!-- COMBINING FOUR DOTS ABOVE -->
+<!ENTITY hamilt	"&#x210B;"> <!-- SCRIPT CAPITAL H -->
+<!ENTITY lagran	"&#x2112;"> <!-- SCRIPT CAPITAL L -->
+<!ENTITY lowast	"&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY notin	"&#x2209;"> <!--  -->
+<!ENTITY order	"&#x2134;"> <!-- SCRIPT SMALL O -->
+<!ENTITY phmmat	"&#x2133;"> <!-- SCRIPT CAPITAL M -->
+<!ENTITY tdot	"&#x20DB;"> <!-- COMBINING THREE DOTS ABOVE -->
+<!ENTITY tprime	"&#x2034;"> <!-- TRIPLE PRIME -->
+<!ENTITY wedgeq	"&#x2259;"> <!-- ESTIMATES -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/soextblx.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/soextblx.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/soextblx.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,307 @@
+<!-- XML EXCHANGE TABLE MODEL DECLARATION MODULE -->
+
+<!-- This set of declarations defines the XML version of the Exchange
+     Table Model as of the date shown in the Formal Public Identifier
+     (FPI) for this entity.
+
+     This set of declarations may be referred to using a public external
+     entity declaration and reference as shown in the following three
+     lines:
+
+     <!ENTITY % calstblx
+       PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN">
+       %calstblx;
+
+     If various parameter entities used within this set of declarations
+     are to be given non-default values, the appropriate declarations
+     should be given before calling in this package (i.e., before the
+     "%calstblx;" reference).
+-->
+
+<!-- The motivation for this XML version of the Exchange Table Model
+     is simply to create an XML version of the SGML Exchange Table
+     Model. By design, no effort has been made to "improve" the model.
+
+     This XML version incorporates the logical bare minimum changes
+     necessary to make the Exchange Table Model a valid XML DTD.
+-->
+
+<!-- The XML version of the Exchange Table Model differs from
+     the SGML version in the following ways:
+
+     The following parameter entities have been removed:
+
+       - tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep
+         There are no exceptions in XML. The following normative statement
+         is made in lieu of exceptions: the exchange table model explicitly
+         forbids a table from occurring within another table. If the
+         content model of an entry includes a table element, then this
+         cannot be enforced by the DTD, but it is a deviation from the
+         exchange table model to include a table within a table.
+
+       - tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att
+         The motivation for these elements was to change the table
+         header/footer elements. Since XML does not allow element declarations
+         to contain name groups, and the exchange table model does not
+         allow a table to contain footers, the continued presence of these
+         attributes seems unnecessary.
+
+     The following parameter entity has been added:
+
+       - tbl.thead.att
+         This entity parameterizes the attributes on thead. It replaces
+         the tbl.hdft.att parameter entity.
+
+     Other miscellaneous changes:
+
+       - Tag ommission indicators have been removed
+       - Comments have been removed from declarations
+       - NUMBER attributes have been changed to NMTOKEN
+       - NUTOKEN attributes have been to changed to NMTOKEN
+       - Removed the grouping characters around the content model
+         parameter entry for the 'entry' element. This is necessary
+         so that an entry can contain #PCDATA and be defined as an
+         optional, repeatable OR group beginning with #PCDATA.
+-->
+
+<!-- This entity includes a set of element and attribute declarations
+     that partially defines the Exchange table model.  However, the model
+     is not well-defined without the accompanying natural language
+     description of the semantics (meanings) of these various elements,
+     attributes, and attribute values.  The semantic writeup, also available
+     from SGML Open, should be used in conjunction with this entity.
+-->
+
+<!-- In order to use the Exchange table model, various parameter entity
+     declarations are required.  A brief description is as follows:
+
+     ENTITY NAME      WHERE USED              WHAT IT IS
+
+     %yesorno         In ATTLIST of:          An attribute declared value
+                      almost all elements     for a "boolean" attribute
+
+     %paracon         In content model of:    The "text" (logical content)
+                      <entry>                 of the model group for <entry>
+
+     %titles          In content model of:    The "title" part of the model
+                      table element           group for the table element
+
+     %tbl.table.name  In declaration of:      The name of the "table"
+                      table element           element
+
+     %tbl.table-titles.mdl In content model of: The model group for the title
+                      table elements          part of the content model for
+                                              table element
+
+     %tbl.table.mdl   In content model of:    The model group for the content
+                      table elements          model for table element,
+                                              often (and by default) defined
+                                              in terms of %tbl.table-titles.mdl
+                                              and tgroup
+
+     %tbl.table.att   In ATTLIST of:          Additional attributes on the
+                      table element           table element
+
+     %bodyatt         In ATTLIST of:          Additional attributes on the
+                      table element           table element (for backward
+                                              compatibility with the SGML
+                                              model)
+
+     %tbl.tgroup.mdl  In content model of:    The model group for the content
+                      <tgroup>                model for <tgroup>
+
+     %tbl.tgroup.att  In ATTLIST of:          Additional attributes on the
+                      <tgroup>                <tgroup> element
+
+     %tbl.thead.att   In ATTLIST of:          Additional attributes on the
+                      <thead>                 <thead> element
+
+     %tbl.tbody.att   In ATTLIST of:          Additional attributes on the
+                      <tbody>                 <tbody> element
+
+     %tbl.colspec.att In ATTLIST of:          Additional attributes on the
+                      <colspec>               <colspec> element
+
+     %tbl.row.mdl     In content model of:    The model group for the content
+                      <row>                   model for <row>
+
+     %tbl.row.att     In ATTLIST of:          Additional attributes on the
+                      <row>                   <row> element
+
+     %tbl.entry.mdl   In content model of:    The model group for the content
+                      <entry>                 model for <entry>
+
+     %tbl.entry.att   In ATTLIST of:          Additional attributes on the
+                      <entry>                 <entry> element
+
+     This set of declarations will use the default definitions shown below
+     for any of these parameter entities that are not declared before this
+     set of declarations is referenced.
+-->
+
+<!-- These definitions are not directly related to the table model, but are
+     used in the default CALS table model and may be defined elsewhere (and
+     prior to the inclusion of this table module) in the referencing DTD. -->
+
+<!ENTITY % yesorno 'NMTOKEN'> <!-- no if zero(s), yes if any other value -->
+<!ENTITY % titles  'title?'>
+<!ENTITY % paracon '#PCDATA'> <!-- default for use in entry content -->
+
+<!--
+The parameter entities as defined below change and simplify the CALS table
+model as published (as part of the Example DTD) in MIL-HDBK-28001.  The
+resulting simplified DTD has support from the SGML Open vendors and is
+therefore more interoperable among different systems.
+
+These following declarations provide the Exchange default definitions
+for these entities.  However, these entities can be redefined (by giving
+the appropriate parameter entity declaration(s) prior to the reference
+to this Table Model declaration set entity) to fit the needs of the
+current application.
+
+Note, however, that changes may have significant effect on the ability to
+interchange table information.  These changes may manifest themselves
+in useability, presentation, and possible structure information degradation.
+-->
+
+<!ENTITY % tbl.table.name       "table">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl   "tgroup+">
+<!ENTITY % tbl.table.mdl        "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att        "
+    pgwide      %yesorno;       #IMPLIED ">
+<!ENTITY % bodyatt              "">
+<!ENTITY % tbl.tgroup.mdl       "colspec*,thead?,tbody">
+<!ENTITY % tbl.tgroup.att       "">
+<!ENTITY % tbl.thead.att        "">
+<!ENTITY % tbl.tbody.att        "">
+<!ENTITY % tbl.colspec.att      "">
+<!ENTITY % tbl.row.mdl          "entry+">
+<!ENTITY % tbl.row.att          "">
+<!ENTITY % tbl.entry.mdl        "(%paracon;)*">
+<!ENTITY % tbl.entry.att        "">
+
+<!-- =====  Element and attribute declarations follow. =====  -->
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.table.name       "table"
+     ENTITY % tbl.table-titles.mdl "%titles;,"
+     ENTITY % tbl.table.mdl        "%tbl.table-titles; tgroup+"
+     ENTITY % tbl.table.att        "
+                        pgwide          %yesorno;       #IMPLIED "
+-->
+
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+
+<!ATTLIST %tbl.table.name;
+        frame           (top|bottom|topbot|all|sides|none)      #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        %tbl.table.att;
+        %bodyatt;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.tgroup.mdl    "colspec*,thead?,tbody"
+     ENTITY % tbl.tgroup.att    ""
+-->
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+        cols            NMTOKEN                                 #REQUIRED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        %tbl.tgroup.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.colspec.att   ""
+-->
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+        colnum          NMTOKEN                                 #IMPLIED
+        colname         NMTOKEN                                 #IMPLIED
+        colwidth        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        %tbl.colspec.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.thead.att      ""
+-->
+
+<!ELEMENT thead (row+)>
+
+<!ATTLIST thead
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.thead.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.tbody.att     ""
+-->
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.tbody.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.row.mdl       "entry+"
+     ENTITY % tbl.row.att       ""
+-->
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+        rowsep          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.row.att;
+>
+
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % paracon           "#PCDATA"
+     ENTITY % tbl.entry.mdl     "(%paracon;)*"
+     ENTITY % tbl.entry.att     ""
+-->
+
+<!ELEMENT entry %tbl.entry.mdl;>
+
+<!ATTLIST entry
+        colname         NMTOKEN                                 #IMPLIED
+        namest          NMTOKEN                                 #IMPLIED
+        nameend         NMTOKEN                                 #IMPLIED
+        morerows        NMTOKEN                                 #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.entry.att;
+>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/tblcals.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/tblcals.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/tblcals.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE article SYSTEM "dbtblcals.dtd">
+<article><title>Table Test</title>
+
+<!-- This table is valid in both models; this is just to exercise the DTD. -->
+
+<informaltable id="foo" role="test">
+<tgroup cols="1">
+<tbody>
+<row>
+<entry>foo</entry></row>
+<row><entry>bar</entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+
+<table id="bar" role="test"><title>bar</title>
+<tgroup cols="1">
+<tbody>
+<row><entry>bar</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+</article>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/tblxchg.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/tblxchg.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/tblxchg.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version='1.0'?>
+<!DOCTYPE article SYSTEM "dbtblxchg.dtd">
+<article><title>Table Test</title>
+
+<!-- This table is valid in both models; this is just to exercise the DTD. -->
+
+<informaltable id="foo" role="test">
+<tgroup cols="1">
+<tbody>
+<row>
+<entry>foo</entry></row>
+<row><entry>bar</entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+
+<table id="bar" role="test"><title>bar</title>
+<tgroup cols="1">
+<tbody>
+<row><entry>bar</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+</article>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/test.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/test.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/3.1.7/test.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,43 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN" 
+               "docbookx.dtd">
+<book><title>foo</title>
+
+<chapter><title>bar</title>
+
+<para>
+foo
+</para>
+
+<informaltable>
+<tgroup cols="1">
+<tbody>
+<row>
+<entry>foo</entry></row>
+<row><entry>bar</entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+
+<table><title>bar</title>
+<tgroup cols="1">
+<tbody>
+<row><entry>bar</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+</chapter>
+
+<glossary>
+<glossentry><glossterm>foo</glossterm>
+<indexterm><primary>foo</primary></indexterm>
+<glossdef>
+<para>
+Some appropriate definition goes here.
+</para>
+</glossdef>
+</glossentry>
+</glossary>
+
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/40chg.txt
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/40chg.txt	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/40chg.txt	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,51 @@
+18 May 2000
+
+Changes from DocBook V3.1 to DocBook XML V4.0:
+
+Global:
+
+- Broad changes required for XML compatibility
+- Added a *provisional* set of character entities based on the ISO
+  entity sets. The DocBook TC is not willing to accept the long-term
+  responsibility for defining and maintaining these sets. The TC
+  will ask OASIS to form a new TC for this purpose.
+
+Markup:
+
+- RFE  17: Added a common attribute 'Condition' for generic effectivity
+- RFE  38: The nav.class elements (ToC|LoT|Index|Glossary|Bibliography) are
+           now allowed at the beginning and end of components and sections
+- RFE  58: The 'optmult' and 'reqmult' attribute values have been
+           removed from Group
+- RFE  65: Added several class attribute values to Filename and SystemItem
+           at the request of the Linux community
+- RFE  73: Removed BookBiblio and SeriesInfo
+- RFE  81: Added SidebarInfo to Sidebar
+- RFE  87: Added 'xmlpi' and 'emptytag' as class values of SGMLTag
+- RFE  92: Added 'CO' to Synopsis and LiteralLayout
+- RFE  99: Added SimpleMsgEntry as an alternative to MsgEntry in order
+           to provide a simpler MsgSet construct
+- RFE 103: Added RevDescription as an alternative to RevRemark in
+           RevHistory; this allows longer descriptive text in a revision
+- RFE 104: Added 'Specification' to the list of document classes on Article
+- RFE 108: Allow admonitions in Answers
+- RFE 110: Allow a RevHistory on QandAEntry
+- RFE 115: Allow optional Title on OrderedList and ItemizedList
+- RFE 116: Added LineNumbering attribute to linespecific environments for
+           presentation of line numbers
+- Added a common attribute 'Security' for effectivity
+- Added synopsis markup for modern programming languages (e.g, object
+  oriented languages like Java, C++, and IDL)
+- Renamed DocInfo to PrefaceInfo, ChapterInfo, AppendixInfo, etc.
+
+Other:
+
+- RFE  88: Added PEs to include/ignore dbnotn.mod and dbcent.mod
+- RFE 102: Fixed some outstanding namecase problems
+- RFE 105: Added PNG notation
+- RFE 106: Removed some odd *.content PEs that interfered with
+           customization layers
+- RFE 109: Added FPI to content of dbgenent.mod (for consistency)
+- RFE 111: Added the Euro symbol
+- Fixed bug in cals-tbl.dtd; a model group was used for the element
+  declaration, but the attlist declaration used "Table" literally.

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,202 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+EXTRA_DIST =      40chg.txt calstblx.dtd dbcentx.mod dbgenent.ent dbhierx.mod     dbnotnx.mod dbpoolx.mod docbookx.dtd readme.txt soextblx.dtd     ent/iso-amsa.ent ent/iso-amsb.ent ent/iso-amsc.ent ent/iso-amsn.ent     ent/iso-amso.ent ent/iso-amsr.ent ent/iso-box.ent ent/iso-cyr1.ent     ent/iso-cyr2.ent ent/iso-dia.ent ent/iso-grk1.ent ent/iso-grk2.ent     ent/iso-grk3.ent ent/iso-grk4.ent ent/iso-lat1.ent ent/iso-lat2.ent     ent/iso-num.ent ent/iso-pub.ent ent/iso-tech.ent
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/4.0/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/4.0
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/4.0/Makefile
+	$(mkinstalldirs) $(distdir)/ent
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,202 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+EXTRA_DIST =      40chg.txt calstblx.dtd dbcentx.mod dbgenent.ent dbhierx.mod     dbnotnx.mod dbpoolx.mod docbookx.dtd readme.txt soextblx.dtd     ent/iso-amsa.ent ent/iso-amsb.ent ent/iso-amsc.ent ent/iso-amsn.ent     ent/iso-amso.ent ent/iso-amsr.ent ent/iso-box.ent ent/iso-cyr1.ent     ent/iso-cyr2.ent ent/iso-dia.ent ent/iso-grk1.ent ent/iso-grk2.ent     ent/iso-grk3.ent ent/iso-grk4.ent ent/iso-lat1.ent ent/iso-lat2.ent     ent/iso-num.ent ent/iso-pub.ent ent/iso-tech.ent
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/4.0/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/4.0
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/4.0/Makefile
+	$(mkinstalldirs) $(distdir)/ent
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/calstblx.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/calstblx.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/calstblx.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,199 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML CALS Table Model V4.0 .................................... -->
+<!-- File calstblx.mod .................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     This DTD is based on the CALS Table Model
+     PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"
+
+     $Id: calstblx.dtd,v 1.1 2001/02/24 16:51:25 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook XML DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the CALS Table Model
+     converted to XML.
+-->
+
+<!-- These definitions are not directly related to the table model, but are 
+     used in the default CALS table model and are usually defined elsewhere 
+     (and prior to the inclusion of this table module) in a CALS DTD. -->
+
+<!ENTITY % bodyatt "">
+<!ENTITY % secur "">
+
+<!-- no if zero(s),
+                                yes if any other digits value -->
+
+<!ENTITY % yesorno 'CDATA'>
+<!ENTITY % titles  'title?'>
+
+<!-- default for use in entry content -->
+
+<!ENTITY % paracon '#PCDATA'>
+
+<!--
+The parameter entities as defined below provide the CALS table model
+as published (as part of the Example DTD) in MIL-HDBK-28001.
+
+These following declarations provide the CALS-compliant default definitions
+for these entities.  However, these entities can and should be redefined
+(by giving the appropriate parameter entity declaration(s) prior to the
+reference to this Table Model declaration set entity) to fit the needs
+of the current application.
+-->
+
+<!ENTITY % tbl.table.name       "(table|chart)">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl   "(tgroup+|graphic+)">
+<!ENTITY % tbl.table.mdl        "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att        '
+    tabstyle    CDATA           #IMPLIED
+    tocentry    %yesorno;       #IMPLIED
+    shortentry  %yesorno;       #IMPLIED
+    orient      (port|land)     #IMPLIED
+    pgwide      %yesorno;       #IMPLIED '>
+<!ENTITY % tbl.tgroup.mdl       "colspec*,spanspec*,thead?,tfoot?,tbody">
+<!ENTITY % tbl.tgroup.att       '
+    tgroupstyle CDATA           #IMPLIED '>
+<!ENTITY % tbl.hdft.mdl         "colspec*,row+">
+<!ENTITY % tbl.row.mdl          "(entry|entrytbl)+">
+<!ENTITY % tbl.entrytbl.mdl     "colspec*,spanspec*,thead?,tbody">
+<!ENTITY % tbl.entry.mdl        "(para|warning|caution|note|legend|%paracon;)*">
+<!-- =====  Element and attribute declarations follow. =====  -->
+
+<!ELEMENT table (%tbl.table.mdl;)>
+
+<!ATTLIST table
+        frame           (top|bottom|topbot|all|sides|none)      #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        %tbl.table.att;
+        %bodyatt;
+        %secur;
+>
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+        cols            CDATA                                   #REQUIRED
+        %tbl.tgroup.att;
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+        %secur;
+>
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+        colnum          CDATA                                   #IMPLIED
+        colname         CDATA                                   #IMPLIED
+        colwidth        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+>
+
+<!ELEMENT spanspec EMPTY >
+
+<!ATTLIST spanspec
+        namest          CDATA                                   #REQUIRED
+        nameend         CDATA                                   #REQUIRED
+        spanname        CDATA                                   #REQUIRED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+>
+
+<!ELEMENT thead (%tbl.hdft.mdl;)>
+<!ATTLIST thead
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT tfoot (%tbl.hdft.mdl;)>
+<!ATTLIST tfoot
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+        rowsep          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT entrytbl (%tbl.entrytbl.mdl;)>
+
+<!ATTLIST entrytbl
+        cols            CDATA                                   #REQUIRED
+        %tbl.tgroup.att;
+        colname         CDATA                                   #IMPLIED
+        spanname        CDATA                                   #IMPLIED
+        namest          CDATA                                   #IMPLIED
+        nameend         CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+        %secur;
+>
+
+<!ELEMENT entry (%tbl.entry.mdl;)*>
+
+<!ATTLIST entry
+        colname         CDATA                                   #IMPLIED
+        namest          CDATA                                   #IMPLIED
+        nameend         CDATA                                   #IMPLIED
+        spanname        CDATA                                   #IMPLIED
+        morerows        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+        rotate          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!-- End of DocBook XML CALS Table Model V4.0 ............................. -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/calstblx.dtd
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbcentx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbcentx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbcentx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,204 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML character entities module V4.0 ........................... -->
+<!-- File dbcentx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh, and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     $Id: dbcentx.mod,v 1.1 2001/02/24 16:51:25 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook XML DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the entity declarations for the standard ISO
+     entity sets used by DocBook.
+
+     In DTD driver files referring to this module, please use an entity
+     declaration that uses the public identifier shown below:
+
+     <!ENTITY % dbcent PUBLIC
+     "-//OASIS//ENTITIES DocBook XML Character Entities V4.0//EN"
+     "dbcentx.mod">
+     %dbcent;
+
+     See the documentation for detailed information on the parameter
+     entity and module scheme used in DocBook, customizing DocBook and
+     planning for interchange, and changes made since the last release
+     of DocBook.
+-->
+
+<!-- ...................................................................... -->
+
+<!ENTITY % ISOamsa.module "INCLUDE">
+<![%ISOamsa.module;[
+<!ENTITY % ISOamsa PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+"ent/iso-amsa.ent">
+%ISOamsa;
+<!--end of ISOamsa.module-->]]>
+
+<!ENTITY % ISOamsb.module "INCLUDE">
+<![%ISOamsb.module;[
+<!ENTITY % ISOamsb PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+"ent/iso-amsb.ent">
+%ISOamsb;
+<!--end of ISOamsb.module-->]]>
+
+<!ENTITY % ISOamsc.module "INCLUDE">
+<![%ISOamsc.module;[
+<!ENTITY % ISOamsc PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+"ent/iso-amsc.ent">
+%ISOamsc;
+<!--end of ISOamsc.module-->]]>
+
+<!ENTITY % ISOamsn.module "INCLUDE">
+<![%ISOamsn.module;[
+<!ENTITY % ISOamsn PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+"ent/iso-amsn.ent">
+%ISOamsn;
+<!--end of ISOamsn.module-->]]>
+
+<!ENTITY % ISOamso.module "INCLUDE">
+<![%ISOamso.module;[
+<!ENTITY % ISOamso PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+"ent/iso-amso.ent">
+%ISOamso;
+<!--end of ISOamso.module-->]]>
+
+<!ENTITY % ISOamsr.module "INCLUDE">
+<![%ISOamsr.module;[
+<!ENTITY % ISOamsr PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+"ent/iso-amsr.ent">
+%ISOamsr;
+<!--end of ISOamsr.module-->]]>
+
+<!ENTITY % ISObox.module "INCLUDE">
+<![%ISObox.module;[
+<!ENTITY % ISObox PUBLIC
+"ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+"ent/iso-box.ent">
+%ISObox;
+<!--end of ISObox.module-->]]>
+
+<!ENTITY % ISOcyr1.module "INCLUDE">
+<![%ISOcyr1.module;[
+<!ENTITY % ISOcyr1 PUBLIC
+"ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+"ent/iso-cyr1.ent">
+%ISOcyr1;
+<!--end of ISOcyr1.module-->]]>
+
+<!ENTITY % ISOcyr2.module "INCLUDE">
+<![%ISOcyr2.module;[
+<!ENTITY % ISOcyr2 PUBLIC
+"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+"ent/iso-cyr2.ent">
+%ISOcyr2;
+<!--end of ISOcyr2.module-->]]>
+
+<!ENTITY % ISOdia.module "INCLUDE">
+<![%ISOdia.module;[
+<!ENTITY % ISOdia PUBLIC
+"ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+"ent/iso-dia.ent">
+%ISOdia;
+<!--end of ISOdia.module-->]]>
+
+<!ENTITY % ISOgrk1.module "INCLUDE">
+<![%ISOgrk1.module;[
+<!ENTITY % ISOgrk1 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+"ent/iso-grk1.ent">
+%ISOgrk1;
+<!--end of ISOgrk1.module-->]]>
+
+<!ENTITY % ISOgrk2.module "INCLUDE">
+<![%ISOgrk2.module;[
+<!ENTITY % ISOgrk2 PUBLIC
+"ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+"ent/iso-grk2.ent">
+%ISOgrk2;
+<!--end of ISOgrk2.module-->]]>
+
+<!ENTITY % ISOgrk3.module "INCLUDE">
+<![%ISOgrk3.module;[
+<!ENTITY % ISOgrk3 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+"ent/iso-grk3.ent">
+%ISOgrk3;
+<!--end of ISOgrk3.module-->]]>
+
+<!ENTITY % ISOgrk4.module "INCLUDE">
+<![%ISOgrk4.module;[
+<!ENTITY % ISOgrk4 PUBLIC
+"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+"ent/iso-grk4.ent">
+%ISOgrk4;
+<!--end of ISOgrk4.module-->]]>
+
+<!ENTITY % ISOlat1.module "INCLUDE">
+<![%ISOlat1.module;[
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+<!--end of ISOlat1.module-->]]>
+
+<!ENTITY % ISOlat2.module "INCLUDE">
+<![%ISOlat2.module;[
+<!ENTITY % ISOlat2 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+"ent/iso-lat2.ent">
+%ISOlat2;
+<!--end of ISOlat2.module-->]]>
+
+<!ENTITY % ISOnum.module "INCLUDE">
+<![%ISOnum.module;[
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+<!--end of ISOnum.module-->]]>
+
+<!ENTITY % ISOpub.module "INCLUDE">
+<![%ISOpub.module;[
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!--end of ISOpub.module-->]]>
+
+<!ENTITY % ISOtech.module "INCLUDE">
+<![%ISOtech.module;[
+<!ENTITY % ISOtech PUBLIC
+"ISO 8879:1986//ENTITIES General Technical//EN//XML"
+"ent/iso-tech.ent">
+%ISOtech;
+<!--end of ISOtech.module-->]]>
+
+<!-- End of DocBook XML character entity sets module V4.0 ................. -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbcentx.mod
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbgenent.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbgenent.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbgenent.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,41 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML additional general entities V4.0 ......................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, and the Organization for the Advancement of
+     Structured Information Standards (OASIS).
+
+     In DTD driver files referring to this module, please use an entity
+     declaration that uses the public identifier shown below:
+
+     <!ENTITY % dbgenent PUBLIC
+     "-//OASIS//ENTITIES DocBook Additional General Entities V4.0//EN"
+     "dbgenent.ent">
+     %dbgenent;
+-->
+
+<!-- File dbgenent.mod .................................................... -->
+
+<!-- You can edit this file to add the following:
+
+     o General entity declarations of any kind.  For example:
+
+       <!ENTITY happyface SDATA "insert-face">    (system-specific data)
+       <!ENTITY productname "WinWidget">          (small boilerplate)
+       <!ENTITY legal-notice SYSTEM "notice.sgm"> (large boilerplate)
+
+     o Notation declarations.  For example:
+
+       <!NOTATION chicken-scratch SYSTEM>
+
+     o Declarations for and references to external parameter entities
+       containing collections of any of the above.  For example:
+
+       <!ENTITY % all-titles PUBLIC "-//DocTools//ELEMENTS Book Titles//EN"
+           "booktitles.ent">
+       %all-titles;
+-->
+
+<!-- End of DocBook XML additional general entities V4.0 .................. -->
+<!-- ...................................................................... -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbhierx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbhierx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbhierx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2086 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML document hierarchy module V4.0 ........................... -->
+<!-- File dbhierx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh, and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     $Id: dbhierx.mod,v 1.1 2001/02/24 16:51:25 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook XML DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the overall document
+     hierarchies of DocBook documents.  It covers computer documentation
+     manuals and manual fragments, as well as reference entries (such as
+     man pages) and technical journals or anthologies containing
+     articles.
+
+     This module depends on the DocBook information pool module.  All
+     elements and entities referenced but not defined here are assumed
+     to be defined in the information pool module.
+
+     In DTD driver files referring to this module, please use an entity
+     declaration that uses the public identifier shown below:
+
+     <!ENTITY % dbhier PUBLIC
+     "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.0//EN"
+     "dbhierx.mod">
+     %dbhier;
+
+     See the documentation for detailed information on the parameter
+     entity and module scheme used in DocBook, customizing DocBook and
+     planning for interchange, and changes made since the last release
+     of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbhier.redecl.module		"IGNORE">
+<!ENTITY % dbhier.redecl2.module	"IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes ......................................... -->
+
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class	"appendix %local.appendix.class;">
+
+<!ENTITY % local.article.class "">
+<!ENTITY % article.class	"article %local.article.class;">
+
+<!ENTITY % local.book.class "">
+<!ENTITY % book.class		"book %local.book.class;">
+
+<!ENTITY % local.chapter.class "">
+<!ENTITY % chapter.class	"chapter %local.chapter.class;">
+
+<!ENTITY % local.index.class "">
+<!ENTITY % index.class		"index|setindex %local.index.class;">
+
+<!ENTITY % local.refentry.class "">
+<!ENTITY % refentry.class	"refentry %local.refentry.class;">
+
+<!ENTITY % local.nav.class "">
+<!ENTITY % nav.class		"toc|lot|index|glossary|bibliography 
+				%local.nav.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+     retaining their references to the entities that are declared before
+     this point -->
+
+<![%dbhier.redecl.module;[
+<!-- Defining rdbhier here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier "">
+%rdbhier;
+<!--end of dbhier.redecl.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for element mixtures ........................................ -->
+
+<!-- The DocBook TC may produce an official forms module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % forms.hook "">
+
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+		|%genobj.class;		|%descobj.class;
+		|%ndxterm.class;        |beginpage
+                %forms.hook;
+		%local.divcomponent.mix;">
+
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+		|%genobj.class;		|%descobj.class;
+		|%ndxterm.class;        |beginpage
+		%local.refcomponent.mix;">
+
+<!ENTITY % local.indexdivcomponent.mix "">
+<!ENTITY % indexdivcomponent.mix
+		"itemizedlist|orderedlist|variablelist|simplelist
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|anchor|remark
+		|%link.char.class;
+ 		                        |beginpage
+		%local.indexdivcomponent.mix;">
+
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % refname.char.mix
+		"#PCDATA
+		|%tech.char.class;
+		%local.refname.char.mix;">
+
+<!ENTITY % local.partcontent.mix "">
+<!ENTITY % partcontent.mix
+		"%appendix.class;|%chapter.class;|%nav.class;|%article.class;
+		|preface|%refentry.class;|reference %local.partcontent.mix;">
+
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;
+		|%ndxterm.class;        |beginpage
+		%local.refinline.char.mix;">
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+		"#PCDATA
+		|application
+		%local.refclass.char.mix;">
+
+<!-- Redeclaration placeholder 2 .......................................... -->
+
+<!-- For redeclaring entities that are declared after this point while
+     retaining their references to the entities that are declared before
+     this point -->
+
+<![%dbhier.redecl2.module;[
+<!-- Defining rdbhier2 here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier2 "">
+%rdbhier2;
+<!--end of dbhier.redecl2.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % div.title.content
+	"title, subtitle?, titleabbrev?">
+
+<!ENTITY % bookcomponent.title.content
+	"title, subtitle?, titleabbrev?">
+
+<!ENTITY % sect.title.content
+	"title, subtitle?, titleabbrev?">
+
+<!ENTITY % refsect.title.content
+	"title, subtitle?, titleabbrev?">
+
+<!ENTITY % bookcomponent.content
+	"((%divcomponent.mix;)+, 
+	(sect1*|(%refentry.class;)*|simplesect*|section*))
+	| (sect1+|(%refentry.class;)+|simplesect+|section+)">
+
+<!-- ...................................................................... -->
+<!-- Set and SetInfo ...................................................... -->
+
+<!ENTITY % set.content.module "INCLUDE">
+<![%set.content.module;[
+<!ENTITY % set.module "INCLUDE">
+<![%set.module;[
+<!ENTITY % local.set.attrib "">
+<!ENTITY % set.role.attrib "%role.attrib;">
+
+<!ENTITY % set.element "INCLUDE">
+<![%set.element;[
+<!ELEMENT set ((%div.title.content;)?, setinfo?, toc?, (%book.class;)+,
+		setindex?)>
+<!--end of set.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % set.attlist "INCLUDE">
+<![%set.attlist;[
+<!ATTLIST set
+		fpi		CDATA		#IMPLIED
+		%status.attrib;
+		%common.attrib;
+		%set.role.attrib;
+		%local.set.attrib;
+>
+<!--end of set.attlist-->]]>
+<!--end of set.module-->]]>
+
+<!ENTITY % setinfo.module "INCLUDE">
+<![%setinfo.module;[
+<!ENTITY % local.setinfo.attrib "">
+<!ENTITY % setinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % setinfo.element "INCLUDE">
+<![%setinfo.element;[
+<!ELEMENT setinfo ((graphic | mediaobject 
+        | legalnotice | modespec | subjectset 
+	| keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of setinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, Books, and SetIndex that comprise 
+		the set, in the order of their appearance -->
+
+
+<!ENTITY % setinfo.attlist "INCLUDE">
+<![%setinfo.attlist;[
+<!ATTLIST setinfo
+		contents	IDREFS		#IMPLIED
+		%common.attrib;
+		%setinfo.role.attrib;
+		%local.setinfo.attrib;
+>
+<!--end of setinfo.attlist-->]]>
+<!--end of setinfo.module-->]]>
+<!--end of set.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Book and BookInfo .................................................... -->
+
+<!ENTITY % book.content.module "INCLUDE">
+<![%book.content.module;[
+<!ENTITY % book.module "INCLUDE">
+<![%book.module;[
+<!--FUTURE USE (V4.0):
+......................
+The %article.class; entity *may* be removed from the Book content model.
+(Article may be made part of a new top-level document hierarchy.)
+......................
+-->
+
+<!ENTITY % local.book.attrib "">
+<!ENTITY % book.role.attrib "%role.attrib;">
+
+<!ENTITY % book.element "INCLUDE">
+<![%book.element;[
+<!ELEMENT book ((%div.title.content;)?, bookinfo?,
+ 		(dedication | toc | lot
+ 		| glossary | bibliography | preface
+		| %chapter.class; | reference | part
+		| %article.class;
+ 		| %appendix.class;
+		| %index.class;
+		| colophon)*)>
+<!--end of book.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % book.attlist "INCLUDE">
+<![%book.attlist;[
+<!ATTLIST book		fpi		CDATA		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%book.role.attrib;
+		%local.book.attrib;
+>
+<!--end of book.attlist-->]]>
+<!--end of book.module-->]]>
+
+<!ENTITY % bookinfo.module "INCLUDE">
+<![%bookinfo.module;[
+<!ENTITY % local.bookinfo.attrib "">
+<!ENTITY % bookinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % bookinfo.element "INCLUDE">
+<![%bookinfo.element;[
+<!ELEMENT bookinfo ((graphic | mediaobject
+        | legalnotice | modespec | subjectset 
+	| keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of bookinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters,
+		Appendixes, References, GLossary, Bibliography, and indexes
+		comprising the Book, in the order of their appearance -->
+
+
+<!ENTITY % bookinfo.attlist "INCLUDE">
+<![%bookinfo.attlist;[
+<!ATTLIST bookinfo
+		contents	IDREFS		#IMPLIED
+		%common.attrib;
+		%bookinfo.role.attrib;
+		%local.bookinfo.attrib;
+>
+<!--end of bookinfo.attlist-->]]>
+<!--end of bookinfo.module-->]]>
+<!--end of book.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Dedication, ToC, and LoT ............................................. -->
+
+<!ENTITY % dedication.module "INCLUDE">
+<![%dedication.module;[
+<!ENTITY % local.dedication.attrib "">
+<!ENTITY % dedication.role.attrib "%role.attrib;">
+
+<!ENTITY % dedication.element "INCLUDE">
+<![%dedication.element;[
+<!ELEMENT dedication ((%sect.title.content;)?, (%legalnotice.mix;)+)>
+<!--end of dedication.element-->]]>
+
+<!ENTITY % dedication.attlist "INCLUDE">
+<![%dedication.attlist;[
+<!ATTLIST dedication
+		%status.attrib;
+		%common.attrib;
+		%dedication.role.attrib;
+		%local.dedication.attrib;
+>
+<!--end of dedication.attlist-->]]>
+<!--end of dedication.module-->]]>
+
+<!ENTITY % colophon.module "INCLUDE">
+<![ %colophon.module; [
+<!ENTITY % local.colophon.attrib "">
+<!ENTITY % colophon.role.attrib "%role.attrib;">
+
+<!ENTITY % colophon.element "INCLUDE">
+<![ %colophon.element; [
+<!ELEMENT colophon ((%sect.title.content;)?, (%textobject.mix;)+)>
+<!--end of colophon.element-->]]>
+
+<!ENTITY % colophon.attlist "INCLUDE">
+<![ %colophon.attlist; [
+<!ATTLIST colophon
+		%status.attrib;
+		%common.attrib;
+		%colophon.role.attrib;
+		%local.colophon.attrib;>
+<!--end of colophon.attlist-->]]>
+<!--end of colophon.module-->]]>
+
+<!ENTITY % toc.content.module "INCLUDE">
+<![%toc.content.module;[
+<!ENTITY % toc.module "INCLUDE">
+<![%toc.module;[
+<!ENTITY % local.toc.attrib "">
+<!ENTITY % toc.role.attrib "%role.attrib;">
+
+<!ENTITY % toc.element "INCLUDE">
+<![%toc.element;[
+<!ELEMENT toc ((%bookcomponent.title.content;)?, tocfront*,
+		(tocpart | tocchap)*, tocback*)>
+<!--end of toc.element-->]]>
+
+<!ENTITY % toc.attlist "INCLUDE">
+<![%toc.attlist;[
+<!ATTLIST toc
+		%pagenum.attrib;
+		%common.attrib;
+		%toc.role.attrib;
+		%local.toc.attrib;
+>
+<!--end of toc.attlist-->]]>
+<!--end of toc.module-->]]>
+
+<!ENTITY % tocfront.module "INCLUDE">
+<![%tocfront.module;[
+<!ENTITY % local.tocfront.attrib "">
+<!ENTITY % tocfront.role.attrib "%role.attrib;">
+
+<!ENTITY % tocfront.element "INCLUDE">
+<![%tocfront.element;[
+<!ELEMENT tocfront (%para.char.mix;)*>
+<!--end of tocfront.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocfront.attlist "INCLUDE">
+<![%tocfront.attlist;[
+<!ATTLIST tocfront
+		%label.attrib;
+		%linkend.attrib;		%pagenum.attrib;
+		%common.attrib;
+		%tocfront.role.attrib;
+		%local.tocfront.attrib;
+>
+<!--end of tocfront.attlist-->]]>
+<!--end of tocfront.module-->]]>
+
+<!ENTITY % tocentry.module "INCLUDE">
+<![%tocentry.module;[
+<!ENTITY % local.tocentry.attrib "">
+<!ENTITY % tocentry.role.attrib "%role.attrib;">
+
+<!ENTITY % tocentry.element "INCLUDE">
+<![%tocentry.element;[
+<!ELEMENT tocentry (%para.char.mix;)*>
+<!--end of tocentry.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocentry.attlist "INCLUDE">
+<![%tocentry.attlist;[
+<!ATTLIST tocentry
+		%linkend.attrib;		%pagenum.attrib;
+		%common.attrib;
+		%tocentry.role.attrib;
+		%local.tocentry.attrib;
+>
+<!--end of tocentry.attlist-->]]>
+<!--end of tocentry.module-->]]>
+
+<!ENTITY % tocpart.module "INCLUDE">
+<![%tocpart.module;[
+<!ENTITY % local.tocpart.attrib "">
+<!ENTITY % tocpart.role.attrib "%role.attrib;">
+
+<!ENTITY % tocpart.element "INCLUDE">
+<![%tocpart.element;[
+<!ELEMENT tocpart (tocentry+, tocchap*)>
+<!--end of tocpart.element-->]]>
+
+<!ENTITY % tocpart.attlist "INCLUDE">
+<![%tocpart.attlist;[
+<!ATTLIST tocpart
+		%common.attrib;
+		%tocpart.role.attrib;
+		%local.tocpart.attrib;
+>
+<!--end of tocpart.attlist-->]]>
+<!--end of tocpart.module-->]]>
+
+<!ENTITY % tocchap.module "INCLUDE">
+<![%tocchap.module;[
+<!ENTITY % local.tocchap.attrib "">
+<!ENTITY % tocchap.role.attrib "%role.attrib;">
+
+<!ENTITY % tocchap.element "INCLUDE">
+<![%tocchap.element;[
+<!ELEMENT tocchap (tocentry+, toclevel1*)>
+<!--end of tocchap.element-->]]>
+
+<!ENTITY % tocchap.attlist "INCLUDE">
+<![%tocchap.attlist;[
+<!ATTLIST tocchap
+		%label.attrib;
+		%common.attrib;
+		%tocchap.role.attrib;
+		%local.tocchap.attrib;
+>
+<!--end of tocchap.attlist-->]]>
+<!--end of tocchap.module-->]]>
+
+<!ENTITY % toclevel1.module "INCLUDE">
+<![%toclevel1.module;[
+<!ENTITY % local.toclevel1.attrib "">
+<!ENTITY % toclevel1.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel1.element "INCLUDE">
+<![%toclevel1.element;[
+<!ELEMENT toclevel1 (tocentry+, toclevel2*)>
+<!--end of toclevel1.element-->]]>
+
+<!ENTITY % toclevel1.attlist "INCLUDE">
+<![%toclevel1.attlist;[
+<!ATTLIST toclevel1
+		%common.attrib;
+		%toclevel1.role.attrib;
+		%local.toclevel1.attrib;
+>
+<!--end of toclevel1.attlist-->]]>
+<!--end of toclevel1.module-->]]>
+
+<!ENTITY % toclevel2.module "INCLUDE">
+<![%toclevel2.module;[
+<!ENTITY % local.toclevel2.attrib "">
+<!ENTITY % toclevel2.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel2.element "INCLUDE">
+<![%toclevel2.element;[
+<!ELEMENT toclevel2 (tocentry+, toclevel3*)>
+<!--end of toclevel2.element-->]]>
+
+<!ENTITY % toclevel2.attlist "INCLUDE">
+<![%toclevel2.attlist;[
+<!ATTLIST toclevel2
+		%common.attrib;
+		%toclevel2.role.attrib;
+		%local.toclevel2.attrib;
+>
+<!--end of toclevel2.attlist-->]]>
+<!--end of toclevel2.module-->]]>
+
+<!ENTITY % toclevel3.module "INCLUDE">
+<![%toclevel3.module;[
+<!ENTITY % local.toclevel3.attrib "">
+<!ENTITY % toclevel3.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel3.element "INCLUDE">
+<![%toclevel3.element;[
+<!ELEMENT toclevel3 (tocentry+, toclevel4*)>
+<!--end of toclevel3.element-->]]>
+
+<!ENTITY % toclevel3.attlist "INCLUDE">
+<![%toclevel3.attlist;[
+<!ATTLIST toclevel3
+		%common.attrib;
+		%toclevel3.role.attrib;
+		%local.toclevel3.attrib;
+>
+<!--end of toclevel3.attlist-->]]>
+<!--end of toclevel3.module-->]]>
+
+<!ENTITY % toclevel4.module "INCLUDE">
+<![%toclevel4.module;[
+<!ENTITY % local.toclevel4.attrib "">
+<!ENTITY % toclevel4.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel4.element "INCLUDE">
+<![%toclevel4.element;[
+<!ELEMENT toclevel4 (tocentry+, toclevel5*)>
+<!--end of toclevel4.element-->]]>
+
+<!ENTITY % toclevel4.attlist "INCLUDE">
+<![%toclevel4.attlist;[
+<!ATTLIST toclevel4
+		%common.attrib;
+		%toclevel4.role.attrib;
+		%local.toclevel4.attrib;
+>
+<!--end of toclevel4.attlist-->]]>
+<!--end of toclevel4.module-->]]>
+
+<!ENTITY % toclevel5.module "INCLUDE">
+<![%toclevel5.module;[
+<!ENTITY % local.toclevel5.attrib "">
+<!ENTITY % toclevel5.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel5.element "INCLUDE">
+<![%toclevel5.element;[
+<!ELEMENT toclevel5 (tocentry+)>
+<!--end of toclevel5.element-->]]>
+
+<!ENTITY % toclevel5.attlist "INCLUDE">
+<![%toclevel5.attlist;[
+<!ATTLIST toclevel5
+		%common.attrib;
+		%toclevel5.role.attrib;
+		%local.toclevel5.attrib;
+>
+<!--end of toclevel5.attlist-->]]>
+<!--end of toclevel5.module-->]]>
+
+<!ENTITY % tocback.module "INCLUDE">
+<![%tocback.module;[
+<!ENTITY % local.tocback.attrib "">
+<!ENTITY % tocback.role.attrib "%role.attrib;">
+
+<!ENTITY % tocback.element "INCLUDE">
+<![%tocback.element;[
+<!ELEMENT tocback (%para.char.mix;)*>
+<!--end of tocback.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocback.attlist "INCLUDE">
+<![%tocback.attlist;[
+<!ATTLIST tocback
+		%label.attrib;
+		%linkend.attrib;		%pagenum.attrib;
+		%common.attrib;
+		%tocback.role.attrib;
+		%local.tocback.attrib;
+>
+<!--end of tocback.attlist-->]]>
+<!--end of tocback.module-->]]>
+<!--end of toc.content.module-->]]>
+
+<!ENTITY % lot.content.module "INCLUDE">
+<![%lot.content.module;[
+<!ENTITY % lot.module "INCLUDE">
+<![%lot.module;[
+<!ENTITY % local.lot.attrib "">
+<!ENTITY % lot.role.attrib "%role.attrib;">
+
+<!ENTITY % lot.element "INCLUDE">
+<![%lot.element;[
+<!ELEMENT lot ((%bookcomponent.title.content;)?, lotentry*)>
+<!--end of lot.element-->]]>
+
+<!ENTITY % lot.attlist "INCLUDE">
+<![%lot.attlist;[
+<!ATTLIST lot
+		%label.attrib;
+		%common.attrib;
+		%lot.role.attrib;
+		%local.lot.attrib;
+>
+<!--end of lot.attlist-->]]>
+<!--end of lot.module-->]]>
+
+<!ENTITY % lotentry.module "INCLUDE">
+<![%lotentry.module;[
+<!ENTITY % local.lotentry.attrib "">
+<!ENTITY % lotentry.role.attrib "%role.attrib;">
+
+<!ENTITY % lotentry.element "INCLUDE">
+<![%lotentry.element;[
+<!ELEMENT lotentry (%para.char.mix;)*>
+<!--end of lotentry.element-->]]>
+
+<!-- SrcCredit: Information about the source of the entry, 
+		as for a list of illustrations -->
+<!-- linkend: to element that this entry represents-->
+<!ENTITY % lotentry.attlist "INCLUDE">
+<![%lotentry.attlist;[
+<!ATTLIST lotentry
+		srccredit	CDATA		#IMPLIED
+		%pagenum.attrib;
+		%common.attrib;
+		%linkend.attrib;
+		%lotentry.role.attrib;
+		%local.lotentry.attrib;
+>
+<!--end of lotentry.attlist-->]]>
+<!--end of lotentry.module-->]]>
+<!--end of lot.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->
+
+<!ENTITY % appendix.module "INCLUDE">
+<![%appendix.module;[
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+
+<!ENTITY % appendix.element "INCLUDE">
+<![%appendix.element;[
+<!ELEMENT appendix (appendixinfo?,
+                     (%bookcomponent.title.content;), 
+                     (%nav.class;)*,
+                     tocchap?,
+                     (%bookcomponent.content;),
+                     (%nav.class;)*)>
+<!--end of appendix.element-->]]>
+
+<!ENTITY % appendix.attlist "INCLUDE">
+<![%appendix.attlist;[
+<!ATTLIST appendix
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%appendix.role.attrib;
+		%local.appendix.attrib;
+>
+<!--end of appendix.attlist-->]]>
+<!--end of appendix.module-->]]>
+
+<!ENTITY % chapter.module "INCLUDE">
+<![%chapter.module;[
+<!ENTITY % local.chapter.attrib "">
+<!ENTITY % chapter.role.attrib "%role.attrib;">
+
+<!ENTITY % chapter.element "INCLUDE">
+<![%chapter.element;[
+<!ELEMENT chapter (chapterinfo?,
+                    (%bookcomponent.title.content;),
+                    (%nav.class;)*,
+                    tocchap?,
+                    (%bookcomponent.content;),
+                    (%nav.class;)*)>
+<!--end of chapter.element-->]]>
+
+<!ENTITY % chapter.attlist "INCLUDE">
+<![%chapter.attlist;[
+<!ATTLIST chapter
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%chapter.role.attrib;
+		%local.chapter.attrib;
+>
+<!--end of chapter.attlist-->]]>
+<!--end of chapter.module-->]]>
+
+<!ENTITY % part.module "INCLUDE">
+<![%part.module;[
+
+<!-- Note that Part was to have its content model reduced in V4.0.  This
+change will not be made after all. -->
+
+<!ENTITY % local.part.attrib "">
+<!ENTITY % part.role.attrib "%role.attrib;">
+
+<!ENTITY % part.element "INCLUDE">
+<![%part.element;[
+<!ELEMENT part (partinfo?, (%bookcomponent.title.content;), partintro?,
+		(%partcontent.mix;)+)>
+<!--end of part.element-->]]>
+
+<!ENTITY % part.attlist "INCLUDE">
+<![%part.attlist;[
+<!ATTLIST part
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%part.role.attrib;
+		%local.part.attrib;
+>
+<!--end of part.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of part.module-->]]>
+
+<!ENTITY % preface.module "INCLUDE">
+<![%preface.module;[
+<!ENTITY % local.preface.attrib "">
+<!ENTITY % preface.role.attrib "%role.attrib;">
+
+<!ENTITY % preface.element "INCLUDE">
+<![%preface.element;[
+<!ELEMENT preface (prefaceinfo?,
+                    (%bookcomponent.title.content;),
+                    (%nav.class;)*,
+                    tocchap?,
+                    (%bookcomponent.content;),
+                    (%nav.class;)*)>
+<!--end of preface.element-->]]>
+
+<!ENTITY % preface.attlist "INCLUDE">
+<![%preface.attlist;[
+<!ATTLIST preface
+		%status.attrib;
+		%common.attrib;
+		%preface.role.attrib;
+		%local.preface.attrib;
+>
+<!--end of preface.attlist-->]]>
+<!--end of preface.module-->]]>
+
+<!ENTITY % reference.module "INCLUDE">
+<![%reference.module;[
+<!ENTITY % local.reference.attrib "">
+<!ENTITY % reference.role.attrib "%role.attrib;">
+
+<!ENTITY % reference.element "INCLUDE">
+<![%reference.element;[
+<!ELEMENT reference (referenceinfo?,
+                     (%bookcomponent.title.content;), partintro?,
+                     (%refentry.class;)+)>
+<!--end of reference.element-->]]>
+
+<!ENTITY % reference.attlist "INCLUDE">
+<![%reference.attlist;[
+<!ATTLIST reference
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%reference.role.attrib;
+		%local.reference.attrib;
+>
+<!--end of reference.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of reference.module-->]]>
+
+<!ENTITY % partintro.module "INCLUDE">
+<![%partintro.module;[
+<!ENTITY % local.partintro.attrib "">
+<!ENTITY % partintro.role.attrib "%role.attrib;">
+
+<!ENTITY % partintro.element "INCLUDE">
+<![%partintro.element;[
+<!ELEMENT partintro ((%div.title.content;)?, (%bookcomponent.content;))>
+<!--end of partintro.element-->]]>
+
+<!ENTITY % partintro.attlist "INCLUDE">
+<![%partintro.attlist;[
+<!ATTLIST partintro	
+		%label.attrib;
+		%common.attrib;
+		%local.partintro.attrib;
+		%partintro.role.attrib;
+>
+<!--end of partintro.attlist-->]]>
+<!--end of partintro.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Other Info elements .................................................. -->
+
+<!ENTITY % appendixinfo.module "INCLUDE">
+<![ %appendixinfo.module; [
+<!ENTITY % local.appendixinfo.attrib "">
+<!ENTITY % appendixinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % appendixinfo.element "INCLUDE">
+<![ %appendixinfo.element; [
+<!ELEMENT appendixinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of appendixinfo.element-->]]>
+
+<!ENTITY % appendixinfo.attlist "INCLUDE">
+<![ %appendixinfo.attlist; [
+<!ATTLIST appendixinfo
+		%common.attrib;
+		%appendixinfo.role.attrib;
+		%local.appendixinfo.attrib;
+>
+<!--end of appendixinfo.attlist-->]]>
+<!--end of appendixinfo.module-->]]>
+
+<!ENTITY % bibliographyinfo.module "INCLUDE">
+<![ %bibliographyinfo.module; [
+<!ENTITY % local.bibliographyinfo.attrib "">
+<!ENTITY % bibliographyinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliographyinfo.element "INCLUDE">
+<![ %bibliographyinfo.element; [
+<!ELEMENT bibliographyinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of bibliographyinfo.element-->]]>
+
+<!ENTITY % bibliographyinfo.attlist "INCLUDE">
+<![ %bibliographyinfo.attlist; [
+<!ATTLIST bibliographyinfo
+		%common.attrib;
+		%bibliographyinfo.role.attrib;
+		%local.bibliographyinfo.attrib;
+>
+<!--end of bibliographyinfo.attlist-->]]>
+<!--end of bibliographyinfo.module-->]]>
+
+<!ENTITY % chapterinfo.module "INCLUDE">
+<![ %chapterinfo.module; [
+<!ENTITY % local.chapterinfo.attrib "">
+<!ENTITY % chapterinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % chapterinfo.element "INCLUDE">
+<![ %chapterinfo.element; [
+<!ELEMENT chapterinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of chapterinfo.element-->]]>
+
+<!ENTITY % chapterinfo.attlist "INCLUDE">
+<![ %chapterinfo.attlist; [
+<!ATTLIST chapterinfo
+		%common.attrib;
+		%chapterinfo.role.attrib;
+		%local.chapterinfo.attrib;
+>
+<!--end of chapterinfo.attlist-->]]>
+<!--end of chapterinfo.module-->]]>
+
+<!ENTITY % glossaryinfo.module "INCLUDE">
+<![ %glossaryinfo.module; [
+<!ENTITY % local.glossaryinfo.attrib "">
+<!ENTITY % glossaryinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % glossaryinfo.element "INCLUDE">
+<![ %glossaryinfo.element; [
+<!ELEMENT glossaryinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of glossaryinfo.element-->]]>
+
+<!ENTITY % glossaryinfo.attlist "INCLUDE">
+<![ %glossaryinfo.attlist; [
+<!ATTLIST glossaryinfo
+		%common.attrib;
+		%glossaryinfo.role.attrib;
+		%local.glossaryinfo.attrib;
+>
+<!--end of glossaryinfo.attlist-->]]>
+<!--end of glossaryinfo.module-->]]>
+
+<!ENTITY % indexinfo.module "INCLUDE">
+<![ %indexinfo.module; [
+<!ENTITY % local.indexinfo.attrib "">
+<!ENTITY % indexinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % indexinfo.element "INCLUDE">
+<![ %indexinfo.element; [
+<!ELEMENT indexinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of indexinfo.element-->]]>
+
+<!ENTITY % indexinfo.attlist "INCLUDE">
+<![ %indexinfo.attlist; [
+<!ATTLIST indexinfo
+		%common.attrib;
+		%indexinfo.role.attrib;
+		%local.indexinfo.attrib;
+>
+<!--end of indexinfo.attlist-->]]>
+<!--end of indexinfo.module-->]]>
+
+<!ENTITY % setindexinfo.module "INCLUDE">
+<![ %setindexinfo.module; [
+<!ENTITY % local.setindexinfo.attrib "">
+<!ENTITY % setindexinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % setindexinfo.element "INCLUDE">
+<![ %setindexinfo.element; [
+<!ELEMENT setindexinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of setindexinfo.element-->]]>
+
+<!ENTITY % setindexinfo.attlist "INCLUDE">
+<![ %setindexinfo.attlist; [
+<!ATTLIST setindexinfo
+		%common.attrib;
+		%setindexinfo.role.attrib;
+		%local.setindexinfo.attrib;
+>
+<!--end of setindexinfo.attlist-->]]>
+<!--end of setindexinfo.module-->]]>
+
+<!ENTITY % partinfo.module "INCLUDE">
+<![ %partinfo.module; [
+<!ENTITY % local.partinfo.attrib "">
+<!ENTITY % partinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % partinfo.element "INCLUDE">
+<![ %partinfo.element; [
+<!ELEMENT partinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of partinfo.element-->]]>
+
+<!ENTITY % partinfo.attlist "INCLUDE">
+<![ %partinfo.attlist; [
+<!ATTLIST partinfo
+		%common.attrib;
+		%partinfo.role.attrib;
+		%local.partinfo.attrib;
+>
+<!--end of partinfo.attlist-->]]>
+<!--end of partinfo.module-->]]>
+
+<!ENTITY % prefaceinfo.module "INCLUDE">
+<![ %prefaceinfo.module; [
+<!ENTITY % local.prefaceinfo.attrib "">
+<!ENTITY % prefaceinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % prefaceinfo.element "INCLUDE">
+<![ %prefaceinfo.element; [
+<!ELEMENT prefaceinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of prefaceinfo.element-->]]>
+
+<!ENTITY % prefaceinfo.attlist "INCLUDE">
+<![ %prefaceinfo.attlist; [
+<!ATTLIST prefaceinfo
+		%common.attrib;
+		%prefaceinfo.role.attrib;
+		%local.prefaceinfo.attrib;
+>
+<!--end of prefaceinfo.attlist-->]]>
+<!--end of prefaceinfo.module-->]]>
+
+<!ENTITY % refentryinfo.module "INCLUDE">
+<![ %refentryinfo.module; [
+<!ENTITY % local.refentryinfo.attrib "">
+<!ENTITY % refentryinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refentryinfo.element "INCLUDE">
+<![ %refentryinfo.element; [
+<!ELEMENT refentryinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of refentryinfo.element-->]]>
+
+<!ENTITY % refentryinfo.attlist "INCLUDE">
+<![ %refentryinfo.attlist; [
+<!ATTLIST refentryinfo
+		%common.attrib;
+		%refentryinfo.role.attrib;
+		%local.refentryinfo.attrib;
+>
+<!--end of refentryinfo.attlist-->]]>
+<!--end of refentryinfo.module-->]]>
+
+<!ENTITY % refsect1info.module "INCLUDE">
+<![ %refsect1info.module; [
+<!ENTITY % local.refsect1info.attrib "">
+<!ENTITY % refsect1info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect1info.element "INCLUDE">
+<![ %refsect1info.element; [
+<!ELEMENT refsect1info ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of refsect1info.element-->]]>
+
+<!ENTITY % refsect1info.attlist "INCLUDE">
+<![ %refsect1info.attlist; [
+<!ATTLIST refsect1info
+		%common.attrib;
+		%refsect1info.role.attrib;
+		%local.refsect1info.attrib;
+>
+<!--end of refsect1info.attlist-->]]>
+<!--end of refsect1info.module-->]]>
+
+<!ENTITY % refsect2info.module "INCLUDE">
+<![ %refsect2info.module; [
+<!ENTITY % local.refsect2info.attrib "">
+<!ENTITY % refsect2info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect2info.element "INCLUDE">
+<![ %refsect2info.element; [
+<!ELEMENT refsect2info ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of refsect2info.element-->]]>
+
+<!ENTITY % refsect2info.attlist "INCLUDE">
+<![ %refsect2info.attlist; [
+<!ATTLIST refsect2info
+		%common.attrib;
+		%refsect2info.role.attrib;
+		%local.refsect2info.attrib;
+>
+<!--end of refsect2info.attlist-->]]>
+<!--end of refsect2info.module-->]]>
+
+<!ENTITY % refsect3info.module "INCLUDE">
+<![ %refsect3info.module; [
+<!ENTITY % local.refsect3info.attrib "">
+<!ENTITY % refsect3info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect3info.element "INCLUDE">
+<![ %refsect3info.element; [
+<!ELEMENT refsect3info ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of refsect3info.element-->]]>
+
+<!ENTITY % refsect3info.attlist "INCLUDE">
+<![ %refsect3info.attlist; [
+<!ATTLIST refsect3info
+		%common.attrib;
+		%refsect3info.role.attrib;
+		%local.refsect3info.attrib;
+>
+<!--end of refsect3info.attlist-->]]>
+<!--end of refsect3info.module-->]]>
+
+<!ENTITY % refsynopsisdivinfo.module "INCLUDE">
+<![ %refsynopsisdivinfo.module; [
+<!ENTITY % local.refsynopsisdivinfo.attrib "">
+<!ENTITY % refsynopsisdivinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refsynopsisdivinfo.element "INCLUDE">
+<![ %refsynopsisdivinfo.element; [
+<!ELEMENT refsynopsisdivinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of refsynopsisdivinfo.element-->]]>
+
+<!ENTITY % refsynopsisdivinfo.attlist "INCLUDE">
+<![ %refsynopsisdivinfo.attlist; [
+<!ATTLIST refsynopsisdivinfo
+		%common.attrib;
+		%refsynopsisdivinfo.role.attrib;
+		%local.refsynopsisdivinfo.attrib;
+>
+<!--end of refsynopsisdivinfo.attlist-->]]>
+<!--end of refsynopsisdivinfo.module-->]]>
+
+<!ENTITY % referenceinfo.module "INCLUDE">
+<![ %referenceinfo.module; [
+<!ENTITY % local.referenceinfo.attrib "">
+<!ENTITY % referenceinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % referenceinfo.element "INCLUDE">
+<![ %referenceinfo.element; [
+<!ELEMENT referenceinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of referenceinfo.element-->]]>
+
+<!ENTITY % referenceinfo.attlist "INCLUDE">
+<![ %referenceinfo.attlist; [
+<!ATTLIST referenceinfo
+		%common.attrib;
+		%referenceinfo.role.attrib;
+		%local.referenceinfo.attrib;
+>
+<!--end of referenceinfo.attlist-->]]>
+<!--end of referenceinfo.module-->]]>
+
+<!ENTITY % local.sect1info.attrib "">
+<!ENTITY % sect1info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect1info.element "INCLUDE">
+<![%sect1info.element;[
+<!ELEMENT sect1info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect1info.element-->]]>
+
+<!ENTITY % sect1info.attlist "INCLUDE">
+<![%sect1info.attlist;[
+<!ATTLIST sect1info
+		%common.attrib;
+		%sect1info.role.attrib;
+		%local.sect1info.attrib;
+>
+<!--end of sect1info.attlist-->]]>
+
+<!ENTITY % local.sect2info.attrib "">
+<!ENTITY % sect2info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect2info.element "INCLUDE">
+<![%sect2info.element;[
+<!ELEMENT sect2info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect2info.element-->]]>
+
+<!ENTITY % sect2info.attlist "INCLUDE">
+<![%sect2info.attlist;[
+<!ATTLIST sect2info
+		%common.attrib;
+		%sect2info.role.attrib;
+		%local.sect2info.attrib;
+>
+<!--end of sect2info.attlist-->]]>
+
+<!ENTITY % local.sect3info.attrib "">
+<!ENTITY % sect3info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect3info.element "INCLUDE">
+<![%sect3info.element;[
+<!ELEMENT sect3info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect3info.element-->]]>
+
+<!ENTITY % sect3info.attlist "INCLUDE">
+<![%sect3info.attlist;[
+<!ATTLIST sect3info
+		%common.attrib;
+		%sect3info.role.attrib;
+		%local.sect3info.attrib;
+>
+<!--end of sect3info.attlist-->]]>
+
+<!ENTITY % local.sect4info.attrib "">
+<!ENTITY % sect4info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect4info.element "INCLUDE">
+<![%sect4info.element;[
+<!ELEMENT sect4info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect4info.element-->]]>
+
+<!ENTITY % sect4info.attlist "INCLUDE">
+<![%sect4info.attlist;[
+<!ATTLIST sect4info
+		%common.attrib;
+		%sect4info.role.attrib;
+		%local.sect4info.attrib;
+>
+<!--end of sect4info.attlist-->]]>
+
+<!ENTITY % local.sect5info.attrib "">
+<!ENTITY % sect5info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect5info.element "INCLUDE">
+<![%sect5info.element;[
+<!ELEMENT sect5info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect5info.element-->]]>
+
+<!ENTITY % sect5info.attlist "INCLUDE">
+<![%sect5info.attlist;[
+<!ATTLIST sect5info
+		%common.attrib;
+		%sect5info.role.attrib;
+		%local.sect5info.attrib;
+>
+<!--end of sect5info.attlist-->]]>
+
+<!-- ...................................................................... -->
+<!-- Section (parallel to Sect*) ......................................... -->
+
+<!ENTITY % section.content.module "INCLUDE">
+<![ %section.content.module; [
+<!ENTITY % section.module "INCLUDE">
+<![ %section.module; [
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+
+<!ENTITY % section.element "INCLUDE">
+<![ %section.element; [
+<!ELEMENT section (sectioninfo?,
+			(%sect.title.content;),
+			(%nav.class;)*,
+			(((%divcomponent.mix;)+,
+ 			  ((%refentry.class;)*|section*))
+			 | (%refentry.class;)+|section+),
+			(%nav.class;)*)>
+<!--end of section.element-->]]>
+
+<!ENTITY % section.attlist "INCLUDE">
+<![ %section.attlist; [
+<!ATTLIST section
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%section.role.attrib;
+		%local.section.attrib;
+>
+<!--end of section.attlist-->]]>
+<!--end of section.module-->]]>
+
+<!ENTITY % sectioninfo.module "INCLUDE">
+<![ %sectioninfo.module; [
+<!ENTITY % sectioninfo.role.attrib "%role.attrib;">
+<!ENTITY % local.sectioninfo.attrib "">
+
+<!ENTITY % sectioninfo.element "INCLUDE">
+<![ %sectioninfo.element; [
+<!ELEMENT sectioninfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sectioninfo.element-->]]>
+
+<!ENTITY % sectioninfo.attlist "INCLUDE">
+<![ %sectioninfo.attlist; [
+<!ATTLIST sectioninfo
+		%common.attrib;
+		%sectioninfo.role.attrib;
+		%local.sectioninfo.attrib;
+>
+<!--end of sectioninfo.attlist-->]]>
+<!--end of sectioninfo.module-->]]>
+<!--end of section.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->
+
+<!ENTITY % sect1.module "INCLUDE">
+<![%sect1.module;[
+<!ENTITY % local.sect1.attrib "">
+<!ENTITY % sect1.role.attrib "%role.attrib;">
+
+<!ENTITY % sect1.element "INCLUDE">
+<![%sect1.element;[
+<!ELEMENT sect1 (sect1info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect2* | simplesect*))
+		| (%refentry.class;)+ | sect2+ | simplesect+), (%nav.class;)*)>
+<!--end of sect1.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect1.attlist "INCLUDE">
+<![%sect1.attlist;[
+<!ATTLIST sect1
+		renderas	(sect2
+				|sect3
+				|sect4
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect1.role.attrib;
+		%local.sect1.attrib;
+>
+<!--end of sect1.attlist-->]]>
+<!--end of sect1.module-->]]>
+
+<!ENTITY % sect2.module "INCLUDE">
+<![%sect2.module;[
+<!ENTITY % local.sect2.attrib "">
+<!ENTITY % sect2.role.attrib "%role.attrib;">
+
+<!ENTITY % sect2.element "INCLUDE">
+<![%sect2.element;[
+<!ELEMENT sect2 (sect2info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect3* | simplesect*))
+		| (%refentry.class;)+ | sect3+ | simplesect+), (%nav.class;)*)>
+<!--end of sect2.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect2.attlist "INCLUDE">
+<![%sect2.attlist;[
+<!ATTLIST sect2
+		renderas	(sect1
+				|sect3
+				|sect4
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect2.role.attrib;
+		%local.sect2.attrib;
+>
+<!--end of sect2.attlist-->]]>
+<!--end of sect2.module-->]]>
+
+<!ENTITY % sect3.module "INCLUDE">
+<![%sect3.module;[
+<!ENTITY % local.sect3.attrib "">
+<!ENTITY % sect3.role.attrib "%role.attrib;">
+
+<!ENTITY % sect3.element "INCLUDE">
+<![%sect3.element;[
+<!ELEMENT sect3 (sect3info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect4* | simplesect*))
+		| (%refentry.class;)+ | sect4+ | simplesect+), (%nav.class;)*)>
+<!--end of sect3.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect3.attlist "INCLUDE">
+<![%sect3.attlist;[
+<!ATTLIST sect3
+		renderas	(sect1
+				|sect2
+				|sect4
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect3.role.attrib;
+		%local.sect3.attrib;
+>
+<!--end of sect3.attlist-->]]>
+<!--end of sect3.module-->]]>
+
+<!ENTITY % sect4.module "INCLUDE">
+<![%sect4.module;[
+<!ENTITY % local.sect4.attrib "">
+<!ENTITY % sect4.role.attrib "%role.attrib;">
+
+<!ENTITY % sect4.element "INCLUDE">
+<![%sect4.element;[
+<!ELEMENT sect4 (sect4info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect5* | simplesect*))
+		| (%refentry.class;)+ | sect5+ | simplesect+), (%nav.class;)*)>
+<!--end of sect4.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect4.attlist "INCLUDE">
+<![%sect4.attlist;[
+<!ATTLIST sect4
+		renderas	(sect1
+				|sect2
+				|sect3
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect4.role.attrib;
+		%local.sect4.attrib;
+>
+<!--end of sect4.attlist-->]]>
+<!--end of sect4.module-->]]>
+
+<!ENTITY % sect5.module "INCLUDE">
+<![%sect5.module;[
+<!ENTITY % local.sect5.attrib "">
+<!ENTITY % sect5.role.attrib "%role.attrib;">
+
+<!ENTITY % sect5.element "INCLUDE">
+<![%sect5.element;[
+<!ELEMENT sect5 (sect5info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, ((%refentry.class;)* | simplesect*))
+		| (%refentry.class;)+ | simplesect+), (%nav.class;)*)>
+<!--end of sect5.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect5.attlist "INCLUDE">
+<![%sect5.attlist;[
+<!ATTLIST sect5
+		renderas	(sect1
+				|sect2
+				|sect3
+				|sect4)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect5.role.attrib;
+		%local.sect5.attrib;
+>
+<!--end of sect5.attlist-->]]>
+<!--end of sect5.module-->]]>
+
+<!ENTITY % simplesect.module "INCLUDE">
+<![%simplesect.module;[
+<!ENTITY % local.simplesect.attrib "">
+<!ENTITY % simplesect.role.attrib "%role.attrib;">
+
+<!ENTITY % simplesect.element "INCLUDE">
+<![%simplesect.element;[
+<!ELEMENT simplesect ((%sect.title.content;), (%divcomponent.mix;)+)>
+<!--end of simplesect.element-->]]>
+
+<!ENTITY % simplesect.attlist "INCLUDE">
+<![%simplesect.attlist;[
+<!ATTLIST simplesect
+		%common.attrib;
+		%simplesect.role.attrib;
+		%local.simplesect.attrib;
+>
+<!--end of simplesect.attlist-->]]>
+<!--end of simplesect.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliography ......................................................... -->
+
+<!ENTITY % bibliography.content.module "INCLUDE">
+<![%bibliography.content.module;[
+<!ENTITY % bibliography.module "INCLUDE">
+<![%bibliography.module;[
+<!ENTITY % local.bibliography.attrib "">
+<!ENTITY % bibliography.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliography.element "INCLUDE">
+<![%bibliography.element;[
+<!ELEMENT bibliography (bibliographyinfo?,
+                        (%bookcomponent.title.content;)?,
+                        (%component.mix;)*, 
+                        (bibliodiv+ | (biblioentry|bibliomixed)+))>
+<!--end of bibliography.element-->]]>
+
+<!ENTITY % bibliography.attlist "INCLUDE">
+<![%bibliography.attlist;[
+<!ATTLIST bibliography
+		%status.attrib;
+		%common.attrib;
+		%bibliography.role.attrib;
+		%local.bibliography.attrib;
+>
+<!--end of bibliography.attlist-->]]>
+<!--end of bibliography.module-->]]>
+
+<!ENTITY % bibliodiv.module "INCLUDE">
+<![%bibliodiv.module;[
+<!ENTITY % local.bibliodiv.attrib "">
+<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliodiv.element "INCLUDE">
+<![%bibliodiv.element;[
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+		(biblioentry|bibliomixed)+)>
+<!--end of bibliodiv.element-->]]>
+
+<!ENTITY % bibliodiv.attlist "INCLUDE">
+<![%bibliodiv.attlist;[
+<!ATTLIST bibliodiv
+		%status.attrib;
+		%common.attrib;
+		%bibliodiv.role.attrib;
+		%local.bibliodiv.attrib;
+>
+<!--end of bibliodiv.attlist-->]]>
+<!--end of bibliodiv.module-->]]>
+<!--end of bibliography.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Glossary ............................................................. -->
+
+<!ENTITY % glossary.content.module "INCLUDE">
+<![%glossary.content.module;[
+<!ENTITY % glossary.module "INCLUDE">
+<![%glossary.module;[
+<!ENTITY % local.glossary.attrib "">
+<!ENTITY % glossary.role.attrib "%role.attrib;">
+
+<!ENTITY % glossary.element "INCLUDE">
+<![%glossary.element;[
+<!ELEMENT glossary (glossaryinfo?,
+                    (%bookcomponent.title.content;)?,
+                    (%component.mix;)*,
+                    (glossdiv+ | glossentry+), bibliography?)>
+<!--end of glossary.element-->]]>
+
+<!ENTITY % glossary.attlist "INCLUDE">
+<![%glossary.attlist;[
+<!ATTLIST glossary
+		%status.attrib;
+		%common.attrib;
+		%glossary.role.attrib;
+		%local.glossary.attrib;
+>
+<!--end of glossary.attlist-->]]>
+<!--end of glossary.module-->]]>
+
+<!ENTITY % glossdiv.module "INCLUDE">
+<![%glossdiv.module;[
+<!ENTITY % local.glossdiv.attrib "">
+<!ENTITY % glossdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdiv.element "INCLUDE">
+<![%glossdiv.element;[
+<!ELEMENT glossdiv ((%sect.title.content;), (%component.mix;)*,
+		glossentry+)>
+<!--end of glossdiv.element-->]]>
+
+<!ENTITY % glossdiv.attlist "INCLUDE">
+<![%glossdiv.attlist;[
+<!ATTLIST glossdiv
+		%status.attrib;
+		%common.attrib;
+		%glossdiv.role.attrib;
+		%local.glossdiv.attrib;
+>
+<!--end of glossdiv.attlist-->]]>
+<!--end of glossdiv.module-->]]>
+<!--end of glossary.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Index and SetIndex ................................................... -->
+
+<!ENTITY % index.content.module "INCLUDE">
+<![%index.content.module;[
+<!ENTITY % indexes.module "INCLUDE">
+<![%indexes.module;[
+<!ENTITY % local.indexes.attrib "">
+<!ENTITY % indexes.role.attrib "%role.attrib;">
+
+<!ENTITY % index.element "INCLUDE">
+<![%index.element;[
+<!ELEMENT index (indexinfo?,
+                 (%bookcomponent.title.content;)?,
+                 (%component.mix;)*,
+                 (indexdiv* | indexentry*))>
+<!--end of index.element-->]]>
+
+<!ENTITY % index.attlist "INCLUDE">
+<![%index.attlist;[
+<!ATTLIST index
+		%common.attrib;
+		%indexes.role.attrib;
+		%local.indexes.attrib;
+>
+<!--end of index.attlist-->]]>
+
+<!ENTITY % setindex.element "INCLUDE">
+<![%setindex.element;[
+<!ELEMENT setindex (setindexinfo?,
+                    (%bookcomponent.title.content;)?,
+                    (%component.mix;)*, (indexdiv* | indexentry*))>
+<!--end of setindex.element-->]]>
+
+<!ENTITY % setindex.attlist "INCLUDE">
+<![%setindex.attlist;[
+<!ATTLIST setindex
+		%common.attrib;
+		%indexes.role.attrib;
+		%local.indexes.attrib;
+>
+<!--end of setindex.attlist-->]]>
+<!--end of indexes.module-->]]>
+
+<!ENTITY % indexdiv.module "INCLUDE">
+<![%indexdiv.module;[
+
+<!-- SegmentedList in this content is useful for marking up permuted
+     indices. -->
+
+<!ENTITY % local.indexdiv.attrib "">
+<!ENTITY % indexdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % indexdiv.element "INCLUDE">
+<![%indexdiv.element;[
+<!ELEMENT indexdiv ((%sect.title.content;)?, ((%indexdivcomponent.mix;)*,
+		(indexentry+ | segmentedlist)))>
+<!--end of indexdiv.element-->]]>
+
+<!ENTITY % indexdiv.attlist "INCLUDE">
+<![%indexdiv.attlist;[
+<!ATTLIST indexdiv
+		%common.attrib;
+		%indexdiv.role.attrib;
+		%local.indexdiv.attrib;
+>
+<!--end of indexdiv.attlist-->]]>
+<!--end of indexdiv.module-->]]>
+
+<!ENTITY % indexentry.module "INCLUDE">
+<![%indexentry.module;[
+<!-- Index entries appear in the index, not the text. -->
+
+<!ENTITY % local.indexentry.attrib "">
+<!ENTITY % indexentry.role.attrib "%role.attrib;">
+
+<!ENTITY % indexentry.element "INCLUDE">
+<![%indexentry.element;[
+<!ELEMENT indexentry (primaryie, (seeie|seealsoie)*,
+		(secondaryie, (seeie|seealsoie|tertiaryie)*)*)>
+<!--end of indexentry.element-->]]>
+
+<!ENTITY % indexentry.attlist "INCLUDE">
+<![%indexentry.attlist;[
+<!ATTLIST indexentry
+		%common.attrib;
+		%indexentry.role.attrib;
+		%local.indexentry.attrib;
+>
+<!--end of indexentry.attlist-->]]>
+<!--end of indexentry.module-->]]>
+
+<!ENTITY % primsecterie.module "INCLUDE">
+<![%primsecterie.module;[
+<!ENTITY % local.primsecterie.attrib "">
+<!ENTITY % primsecterie.role.attrib "%role.attrib;">
+
+<!ENTITY % primaryie.element "INCLUDE">
+<![%primaryie.element;[
+<!ELEMENT primaryie (%ndxterm.char.mix;)*>
+<!--end of primaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % primaryie.attlist "INCLUDE">
+<![%primaryie.attlist;[
+<!ATTLIST primaryie
+		%linkends.attrib;		%common.attrib;
+		%primsecterie.role.attrib;
+		%local.primsecterie.attrib;
+>
+<!--end of primaryie.attlist-->]]>
+
+<!ENTITY % secondaryie.element "INCLUDE">
+<![%secondaryie.element;[
+<!ELEMENT secondaryie (%ndxterm.char.mix;)*>
+<!--end of secondaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % secondaryie.attlist "INCLUDE">
+<![%secondaryie.attlist;[
+<!ATTLIST secondaryie
+		%linkends.attrib;		%common.attrib;
+		%primsecterie.role.attrib;
+		%local.primsecterie.attrib;
+>
+<!--end of secondaryie.attlist-->]]>
+
+<!ENTITY % tertiaryie.element "INCLUDE">
+<![%tertiaryie.element;[
+<!ELEMENT tertiaryie (%ndxterm.char.mix;)*>
+<!--end of tertiaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % tertiaryie.attlist "INCLUDE">
+<![%tertiaryie.attlist;[
+<!ATTLIST tertiaryie
+		%linkends.attrib;		%common.attrib;
+		%primsecterie.role.attrib;
+		%local.primsecterie.attrib;
+>
+<!--end of tertiaryie.attlist-->]]>
+
+<!--end of primsecterie.module-->]]>
+	
+<!ENTITY % seeie.module "INCLUDE">
+<![%seeie.module;[
+<!ENTITY % local.seeie.attrib "">
+<!ENTITY % seeie.role.attrib "%role.attrib;">
+
+<!ENTITY % seeie.element "INCLUDE">
+<![%seeie.element;[
+<!ELEMENT seeie (%ndxterm.char.mix;)*>
+<!--end of seeie.element-->]]>
+
+<!-- to IndexEntry to look up -->
+
+
+<!ENTITY % seeie.attlist "INCLUDE">
+<![%seeie.attlist;[
+<!ATTLIST seeie
+		%linkend.attrib;		%common.attrib;
+		%seeie.role.attrib;
+		%local.seeie.attrib;
+>
+<!--end of seeie.attlist-->]]>
+<!--end of seeie.module-->]]>
+
+<!ENTITY % seealsoie.module "INCLUDE">
+<![%seealsoie.module;[
+<!ENTITY % local.seealsoie.attrib "">
+<!ENTITY % seealsoie.role.attrib "%role.attrib;">
+
+<!ENTITY % seealsoie.element "INCLUDE">
+<![%seealsoie.element;[
+<!ELEMENT seealsoie (%ndxterm.char.mix;)*>
+<!--end of seealsoie.element-->]]>
+
+<!-- to related IndexEntries -->
+
+
+<!ENTITY % seealsoie.attlist "INCLUDE">
+<![%seealsoie.attlist;[
+<!ATTLIST seealsoie
+		%linkends.attrib;		%common.attrib;
+		%seealsoie.role.attrib;
+		%local.seealsoie.attrib;
+>
+<!--end of seealsoie.attlist-->]]>
+<!--end of seealsoie.module-->]]>
+<!--end of index.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- RefEntry ............................................................. -->
+
+<!ENTITY % refentry.content.module "INCLUDE">
+<![%refentry.content.module;[
+<!ENTITY % refentry.module "INCLUDE">
+<![%refentry.module;[
+<!ENTITY % local.refentry.attrib "">
+<!ENTITY % refentry.role.attrib "%role.attrib;">
+
+<!ENTITY % refentry.element "INCLUDE">
+<![%refentry.element;[
+<!ELEMENT refentry ((%ndxterm.class;)*,
+                    refentryinfo?, refmeta?, (remark|%link.char.class;)*,
+                    refnamediv, refsynopsisdiv?, refsect1+)>
+<!--end of refentry.element-->]]>
+
+<!ENTITY % refentry.attlist "INCLUDE">
+<![%refentry.attlist;[
+<!ATTLIST refentry
+		%status.attrib;
+		%common.attrib;
+		%refentry.role.attrib;
+		%local.refentry.attrib;
+>
+<!--end of refentry.attlist-->]]>
+<!--end of refentry.module-->]]>
+
+<!ENTITY % refmeta.module "INCLUDE">
+<![%refmeta.module;[
+<!ENTITY % local.refmeta.attrib "">
+<!ENTITY % refmeta.role.attrib "%role.attrib;">
+
+<!ENTITY % refmeta.element "INCLUDE">
+<![%refmeta.element;[
+<!ELEMENT refmeta ((%ndxterm.class;)*,
+                   refentrytitle, manvolnum?, refmiscinfo*,
+                   (%ndxterm.class;)*)>
+<!--end of refmeta.element-->]]>
+
+<!ENTITY % refmeta.attlist "INCLUDE">
+<![%refmeta.attlist;[
+<!ATTLIST refmeta
+		%common.attrib;
+		%refmeta.role.attrib;
+		%local.refmeta.attrib;
+>
+<!--end of refmeta.attlist-->]]>
+<!--end of refmeta.module-->]]>
+
+<!ENTITY % refmiscinfo.module "INCLUDE">
+<![%refmiscinfo.module;[
+<!ENTITY % local.refmiscinfo.attrib "">
+<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refmiscinfo.element "INCLUDE">
+<![%refmiscinfo.element;[
+<!ELEMENT refmiscinfo (%docinfo.char.mix;)*>
+<!--end of refmiscinfo.element-->]]>
+
+<!-- Class: Freely assignable parameter; no default -->
+
+
+<!ENTITY % refmiscinfo.attlist "INCLUDE">
+<![%refmiscinfo.attlist;[
+<!ATTLIST refmiscinfo
+		class		CDATA		#IMPLIED
+		%common.attrib;
+		%refmiscinfo.role.attrib;
+		%local.refmiscinfo.attrib;
+>
+<!--end of refmiscinfo.attlist-->]]>
+<!--end of refmiscinfo.module-->]]>
+
+<!ENTITY % refnamediv.module "INCLUDE">
+<![%refnamediv.module;[
+<!ENTITY % local.refnamediv.attrib "">
+<!ENTITY % refnamediv.role.attrib "%role.attrib;">
+
+<!ENTITY % refnamediv.element "INCLUDE">
+<![%refnamediv.element;[
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+		(remark|%link.char.class;)*)>
+<!--end of refnamediv.element-->]]>
+
+<!ENTITY % refnamediv.attlist "INCLUDE">
+<![%refnamediv.attlist;[
+<!ATTLIST refnamediv
+		%common.attrib;
+		%refnamediv.role.attrib;
+		%local.refnamediv.attrib;
+>
+<!--end of refnamediv.attlist-->]]>
+<!--end of refnamediv.module-->]]>
+	
+<!ENTITY % refdescriptor.module "INCLUDE">
+<![%refdescriptor.module;[
+<!ENTITY % local.refdescriptor.attrib "">
+<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
+
+<!ENTITY % refdescriptor.element "INCLUDE">
+<![%refdescriptor.element;[
+<!ELEMENT refdescriptor (%refname.char.mix;)*>
+<!--end of refdescriptor.element-->]]>
+
+<!ENTITY % refdescriptor.attlist "INCLUDE">
+<![%refdescriptor.attlist;[
+<!ATTLIST refdescriptor
+		%common.attrib;
+		%refdescriptor.role.attrib;
+		%local.refdescriptor.attrib;
+>
+<!--end of refdescriptor.attlist-->]]>
+<!--end of refdescriptor.module-->]]>
+
+<!ENTITY % refname.module "INCLUDE">
+<![%refname.module;[
+<!ENTITY % local.refname.attrib "">
+<!ENTITY % refname.role.attrib "%role.attrib;">
+
+<!ENTITY % refname.element "INCLUDE">
+<![%refname.element;[
+<!ELEMENT refname (%refname.char.mix;)*>
+<!--end of refname.element-->]]>
+
+<!ENTITY % refname.attlist "INCLUDE">
+<![%refname.attlist;[
+<!ATTLIST refname
+		%common.attrib;
+		%refname.role.attrib;
+		%local.refname.attrib;
+>
+<!--end of refname.attlist-->]]>
+<!--end of refname.module-->]]>
+
+<!ENTITY % refpurpose.module "INCLUDE">
+<![%refpurpose.module;[
+<!ENTITY % local.refpurpose.attrib "">
+<!ENTITY % refpurpose.role.attrib "%role.attrib;">
+
+<!ENTITY % refpurpose.element "INCLUDE">
+<![%refpurpose.element;[
+<!ELEMENT refpurpose (%refinline.char.mix;)*>
+<!--end of refpurpose.element-->]]>
+
+<!ENTITY % refpurpose.attlist "INCLUDE">
+<![%refpurpose.attlist;[
+<!ATTLIST refpurpose
+		%common.attrib;
+		%refpurpose.role.attrib;
+		%local.refpurpose.attrib;
+>
+<!--end of refpurpose.attlist-->]]>
+<!--end of refpurpose.module-->]]>
+
+<!ENTITY % refclass.module "INCLUDE">
+<![%refclass.module;[
+<!ENTITY % local.refclass.attrib "">
+<!ENTITY % refclass.role.attrib "%role.attrib;">
+
+<!ENTITY % refclass.element "INCLUDE">
+<![%refclass.element;[
+<!ELEMENT refclass (%refclass.char.mix;)*>
+<!--end of refclass.element-->]]>
+
+<!ENTITY % refclass.attlist "INCLUDE">
+<![%refclass.attlist;[
+<!ATTLIST refclass
+		%common.attrib;
+		%refclass.role.attrib;
+		%local.refclass.attrib;
+>
+<!--end of refclass.attlist-->]]>
+<!--end of refclass.module-->]]>
+
+<!ENTITY % refsynopsisdiv.module "INCLUDE">
+<![%refsynopsisdiv.module;[
+<!ENTITY % local.refsynopsisdiv.attrib "">
+<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % refsynopsisdiv.element "INCLUDE">
+<![%refsynopsisdiv.element;[
+<!ELEMENT refsynopsisdiv (refsynopsisdivinfo?, (%refsect.title.content;)?,
+		(((%refcomponent.mix;)+, refsect2*) | (refsect2+)))>
+<!--end of refsynopsisdiv.element-->]]>
+
+<!ENTITY % refsynopsisdiv.attlist "INCLUDE">
+<![%refsynopsisdiv.attlist;[
+<!ATTLIST refsynopsisdiv
+		%common.attrib;
+		%refsynopsisdiv.role.attrib;
+		%local.refsynopsisdiv.attrib;
+>
+<!--end of refsynopsisdiv.attlist-->]]>
+<!--end of refsynopsisdiv.module-->]]>
+
+<!ENTITY % refsect1.module "INCLUDE">
+<![%refsect1.module;[
+<!ENTITY % local.refsect1.attrib "">
+<!ENTITY % refsect1.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect1.element "INCLUDE">
+<![%refsect1.element;[
+<!ELEMENT refsect1 (refsect1info?, (%refsect.title.content;),
+		(((%refcomponent.mix;)+, refsect2*) | refsect2+))>
+<!--end of refsect1.element-->]]>
+
+<!ENTITY % refsect1.attlist "INCLUDE">
+<![%refsect1.attlist;[
+<!ATTLIST refsect1
+		%status.attrib;
+		%common.attrib;
+		%refsect1.role.attrib;
+		%local.refsect1.attrib;
+>
+<!--end of refsect1.attlist-->]]>
+<!--end of refsect1.module-->]]>
+
+<!ENTITY % refsect2.module "INCLUDE">
+<![%refsect2.module;[
+<!ENTITY % local.refsect2.attrib "">
+<!ENTITY % refsect2.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect2.element "INCLUDE">
+<![%refsect2.element;[
+<!ELEMENT refsect2 (refsect2info?, (%refsect.title.content;),
+	(((%refcomponent.mix;)+, refsect3*) | refsect3+))>
+<!--end of refsect2.element-->]]>
+
+<!ENTITY % refsect2.attlist "INCLUDE">
+<![%refsect2.attlist;[
+<!ATTLIST refsect2
+		%status.attrib;
+		%common.attrib;
+		%refsect2.role.attrib;
+		%local.refsect2.attrib;
+>
+<!--end of refsect2.attlist-->]]>
+<!--end of refsect2.module-->]]>
+
+<!ENTITY % refsect3.module "INCLUDE">
+<![%refsect3.module;[
+<!ENTITY % local.refsect3.attrib "">
+<!ENTITY % refsect3.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect3.element "INCLUDE">
+<![%refsect3.element;[
+<!ELEMENT refsect3 (refsect3info?, (%refsect.title.content;), 
+	(%refcomponent.mix;)+)>
+<!--end of refsect3.element-->]]>
+
+<!ENTITY % refsect3.attlist "INCLUDE">
+<![%refsect3.attlist;[
+<!ATTLIST refsect3
+		%status.attrib;
+		%common.attrib;
+		%refsect3.role.attrib;
+		%local.refsect3.attrib;
+>
+<!--end of refsect3.attlist-->]]>
+<!--end of refsect3.module-->]]>
+<!--end of refentry.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Article .............................................................. -->
+
+<!ENTITY % article.module "INCLUDE">
+<![%article.module;[
+<!-- An Article is a chapter-level, stand-alone document that is often,
+     but need not be, collected into a Book. -->
+<!--FUTURE USE (V4.0):
+......................
+The %nav.class; entity now allows ToC; ToCchap will be allowed instead.
+RefEntry will be removed from the main content of Article.
+......................
+-->
+
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+
+<!ENTITY % article.element "INCLUDE">
+<![%article.element;[
+<!ELEMENT article ((%div.title.content;)?, articleinfo?, tocchap?, lot*,
+			(%bookcomponent.content;),
+			((%nav.class;) | (%appendix.class;) | ackno)*)>
+<!--end of article.element-->]]>
+
+<!-- Class: Indicates the type of a particular article;
+		all articles have the same structure and general purpose.
+		No default. -->
+<!-- ParentBook: ID of the enclosing Book -->
+
+
+<!ENTITY % article.attlist "INCLUDE">
+<![%article.attlist;[
+<!ATTLIST article
+		class		(journalarticle
+				|productsheet
+				|whitepaper
+				|techreport
+                                |specification
+				|faq)		#IMPLIED
+		parentbook	IDREF		#IMPLIED
+		%status.attrib;
+		%common.attrib;
+		%article.role.attrib;
+		%local.article.attrib;
+>
+<!--end of article.attlist-->]]>
+<!--end of article.module-->]]>
+
+<!-- End of DocBook XML document hierarchy module V4.0 .................... -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbhierx.mod
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbnotnx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbnotnx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbnotnx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,97 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML notations module V4.0 .................................... -->
+<!-- File dbnotnx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh, and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     $Id: dbnotnx.mod,v 1.1 2001/02/24 16:51:25 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the entity declarations for the standard ISO
+     entity sets used by DocBook.
+
+     In DTD driver files referring to this module, please use an entity
+     declaration that uses the public identifier shown below:
+
+     <!ENTITY % dbnotn PUBLIC
+     "-//OASIS//ENTITIES DocBook XML Notations V4.0//EN"
+     "dbnotnx.mod">
+     %dbnotn;
+
+     See the documentation for detailed information on the parameter
+     entity and module scheme used in DocBook, customizing DocBook and
+     planning for interchange, and changes made since the last release
+     of DocBook.
+-->
+
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+		"BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+		| EPS | EQN | FAX | GIF | GIF87a | GIF89a 
+		| JPG | JPEG | IGES | PCX
+		| PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+		| linespecific
+		%local.notation.class;">
+
+<!NOTATION BMP		PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR	PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY	PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR	PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF	SYSTEM "DITROFF">
+<!NOTATION DVI		SYSTEM "DVI">
+<!NOTATION EPS		PUBLIC 
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN		SYSTEM "EQN">
+<!NOTATION FAX		PUBLIC 
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF		SYSTEM "GIF">
+<!NOTATION GIF87a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+
+<!NOTATION GIF89a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG		SYSTEM "JPG">
+<!NOTATION JPEG		SYSTEM "JPG">
+<!NOTATION IGES		PUBLIC 
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC		SYSTEM "PIC">
+<!NOTATION PNG          SYSTEM "http://www.w3.org/TR/REC-png">
+<!NOTATION PS		SYSTEM "PS">
+<!NOTATION SGML		PUBLIC 
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL		SYSTEM "TBL">
+<!NOTATION TEX		PUBLIC 
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF		SYSTEM "TIFF">
+<!NOTATION WMF		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG		SYSTEM "WPG"> <!--WordPerfect Graphic format-->
+<!NOTATION linespecific	SYSTEM "linespecific">
+
+<!-- End of DocBook XML notations module V4.0 ............................. -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbnotnx.mod
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbpoolx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbpoolx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbpoolx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7573 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML information pool module V4.0 ............................. -->
+<!-- File dbpoolx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     $Id: dbpoolx.mod,v 1.1 2001/02/24 16:51:25 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook XML DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the objects, inline
+     elements, and so on that are available to be used as the main
+     content of DocBook documents.  Some elements are useful for general
+     publishing, and others are useful specifically for computer
+     documentation.
+
+     This module has the following dependencies on other modules:
+
+     o It assumes that a %notation.class; entity is defined by the
+       driver file or other high-level module.  This entity is
+       referenced in the NOTATION attributes for the graphic-related and
+       ModeSpec elements.
+
+     o It assumes that an appropriately parameterized table module is
+       available for use with the table-related elements.
+
+     In DTD driver files referring to this module, please use an entity
+     declaration that uses the public identifier shown below:
+
+     <!ENTITY % dbpool PUBLIC
+     "-//OASIS//ELEMENTS DocBook XML Information Pool V4.0//EN"
+     "dbpoolx.mod">
+     %dbpool;
+
+     See the documentation for detailed information on the parameter
+     entity and module scheme used in DocBook, customizing DocBook and
+     planning for interchange, and changes made since the last release
+     of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- General-purpose semantics entities ................................... -->
+
+<!ENTITY % yesorno.attvals	"CDATA">
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbpool.redecl.module "IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes and mixtures ............................ -->
+
+<!-- "Ubiquitous" classes: ndxterm.class and beginpage -->
+
+<!ENTITY % local.ndxterm.class "">
+<!ENTITY % ndxterm.class
+		"indexterm %local.ndxterm.class;">
+
+<!-- Object-level classes ................................................. -->
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+		"calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist
+		|simplelist|variablelist %local.list.class;">
+
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+		"caution|important|note|tip|warning %local.admon.class;">
+
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+		"literallayout|programlisting|programlistingco|screen
+		|screenco|screenshot %local.linespecific.class;">
+
+<!ENTITY % local.method.synop.class "">
+<!ENTITY % method.synop.class
+		"constructorsynopsis
+                 |destructorsynopsis
+                 |methodsynopsis %local.method.synop.class;">
+
+<!ENTITY % local.synop.class "">
+<!ENTITY % synop.class
+		"synopsis|cmdsynopsis|funcsynopsis
+                 |classsynopsis|fieldsynopsis
+                 |%method.synop.class; %local.synop.class;">
+
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+		"formalpara|para|simpara %local.para.class;">
+
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+		"address|blockquote
+                |graphic|graphicco|mediaobject|mediaobjectco
+                |informalequation
+		|informalexample
+                |informalfigure
+                |informaltable %local.informal.class;">
+
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+		"equation|example|figure|table %local.formal.class;">
+
+<!-- The DocBook TC may produce an official EBNF module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % ebnf.block.hook "">
+
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+		"msgset|procedure|sidebar|qandaset
+                 %ebnf.block.hook;
+                 %local.compound.class;">
+
+<!ENTITY % local.genobj.class "">
+<!ENTITY % genobj.class
+		"anchor|bridgehead|remark|highlights
+		%local.genobj.class;">
+
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+		"abstract|authorblurb|epigraph
+		%local.descobj.class;">
+
+<!-- Character-level classes .............................................. -->
+
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % xref.char.class
+		"footnoteref|xref %local.xref.char.class;">
+
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+		"abbrev|acronym|citation|citerefentry|citetitle|emphasis
+		|firstterm|foreignphrase|glossterm|footnote|phrase
+		|quote|trademark|wordasword %local.gen.char.class;">
+
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+		"link|olink|ulink %local.link.char.class;">
+
+<!-- The DocBook TC may produce an official EBNF module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % ebnf.inline.hook "">
+
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+		"action|application
+                |classname|methodname|interfacename|exceptionname
+                |ooclass|oointerface|ooexception
+                |command|computeroutput
+		|database|email|envar|errorcode|errorname|errortype|filename
+		|function|guibutton|guiicon|guilabel|guimenu|guimenuitem
+		|guisubmenu|hardware|interface|keycap
+		|keycode|keycombo|keysym|literal|constant|markup|medialabel
+		|menuchoice|mousebutton|option|optional|parameter
+		|prompt|property|replaceable|returnvalue|sgmltag|structfield
+		|structname|symbol|systemitem|token|type|userinput|varname
+                %ebnf.inline.hook;
+		%local.tech.char.class;">
+
+<!ENTITY % local.base.char.class "">
+<!ENTITY % base.char.class
+		"anchor %local.base.char.class;">
+
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+		"author|authorinitials|corpauthor|modespec|othercredit
+		|productname|productnumber|revhistory
+		%local.docinfo.char.class;">
+
+<!ENTITY % local.other.char.class "">
+<!ENTITY % other.char.class
+		"remark|subscript|superscript %local.other.char.class;">
+
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+		"inlinegraphic|inlinemediaobject|inlineequation %local.inlineobj.char.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+     retaining their references to the entities that are declared before
+     this point -->
+
+<![%dbpool.redecl.module;[
+<!-- Defining rdbpool here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbpool "">
+%rdbpool;
+<!--end of dbpool.redecl.module-->]]>
+
+<!-- Object-level mixtures ................................................ -->
+
+<!--
+                      list admn line synp para infm form cmpd gen  desc
+Component mixture       X    X    X    X    X    X    X    X    X    X
+Sidebar mixture         X    X    X    X    X    X    X    a    X
+Footnote mixture        X         X    X    X    X
+Example mixture         X         X    X    X    X
+Highlights mixture      X    X              X
+Paragraph mixture       X         X    X         X
+Admonition mixture      X         X    X    X    X    X    b    c
+Figure mixture                    X    X         X
+Table entry mixture     X    X    X         X    d
+Glossary def mixture    X         X    X    X    X         e
+Legal notice mixture    X    X    X         X    f
+
+a. Just Procedure; not Sidebar itself or MsgSet.
+b. No MsgSet.
+c. No Highlights.
+d. Just Graphic; no other informal objects.
+e. No Anchor, BridgeHead, or Highlights.
+f. Just BlockQuote; no other informal objects.
+-->
+
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+		|%genobj.class;		|%descobj.class;
+		|%ndxterm.class;        |beginpage
+		%local.component.mix;">
+
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|procedure
+		|%genobj.class;
+		|%ndxterm.class;        |beginpage
+		%local.sidebar.mix;">
+
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % qandaset.mix
+		"%list.class;           |%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|procedure
+		|%genobj.class;
+		|%ndxterm.class;
+		%local.qandaset.mix;">
+
+<!ENTITY % local.revdescription.mix "">
+<!ENTITY % revdescription.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|procedure
+		|%genobj.class;
+		|%ndxterm.class;
+		%local.revdescription.mix;">
+
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		%local.footnote.mix;">
+
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%ndxterm.class;        |beginpage
+		%local.example.mix;">
+
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % highlights.mix
+		"%list.class;		|%admon.class;
+		|%para.class;
+		|%ndxterm.class;
+		%local.highlights.mix;">
+
+<!-- %formal.class; is explicitly excluded from many contexts in which
+     paragraphs are used -->
+<!ENTITY % local.para.mix "">
+<!ENTITY % para.mix
+		"%list.class;           |%admon.class;
+		|%linespecific.class;
+					|%informal.class;
+		|%formal.class;
+		%local.para.mix;">
+
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|procedure|sidebar
+		|anchor|bridgehead|remark
+		|%ndxterm.class;        |beginpage
+		%local.admon.mix;">
+
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+		"%linespecific.class;	|%synop.class;
+					|%informal.class;
+		|%ndxterm.class;        |beginpage
+		%local.figure.mix;">
+
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|graphic|mediaobject
+		%local.tabentry.mix;">
+
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % glossdef.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		|remark
+		|%ndxterm.class;        |beginpage
+		%local.glossdef.mix;">
+
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		|%ndxterm.class;        |beginpage
+		%local.legalnotice.mix;">
+
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.textobject.mix;">
+
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix 
+		"videoobject|audioobject|imageobject %local.mediaobject.mix;">
+
+<!-- Character-level mixtures ............................................. -->
+
+<!--
+                    #PCD xref word link cptr base dnfo othr inob (synop)
+para.char.mix         X    X    X    X    X    X    X    X    X
+title.char.mix        X    X    X    X    X    X    X    X    X
+ndxterm.char.mix      X    X    X    X    X    X    X    X    a
+cptr.char.mix         X              X    X    X         X    a
+smallcptr.char.mix    X                   b                   a
+word.char.mix         X         c    X         X         X    a
+docinfo.char.mix      X         d    X    b              X    a
+
+a. Just InlineGraphic; no InlineEquation.
+b. Just Replaceable; no other computer terms.
+c. Just Emphasis and Trademark; no other word elements.
+d. Just Acronym, Emphasis, and Trademark; no other word elements.
+-->
+
+<!-- The DocBook TC may produce an official forms module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % forminlines.hook "">
+
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;	|%inlineobj.char.class;
+		|%synop.class;
+		|%ndxterm.class;        |beginpage
+                %forminlines.hook;
+		%local.para.char.mix;">
+
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;	|%inlineobj.char.class;
+		|%ndxterm.class;
+		%local.title.char.mix;">
+
+<!ENTITY % local.ndxterm.char.mix "">
+<!ENTITY % ndxterm.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		%local.ndxterm.char.mix;">
+
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+		"#PCDATA
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;        |beginpage
+		%local.cptr.char.mix;">
+
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+		"#PCDATA
+					|replaceable
+					|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;        |beginpage
+		%local.smallcptr.char.mix;">
+
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+		"#PCDATA
+					|acronym|emphasis|trademark
+		|%link.char.class;
+		|%base.char.class;
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;        |beginpage
+		%local.word.char.mix;">
+
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+		"#PCDATA
+		|%link.char.class;
+					|emphasis|trademark
+					|replaceable
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;
+		%local.docinfo.char.mix;">
+<!--ENTITY % bibliocomponent.mix (see Bibliographic section, below)-->
+<!--ENTITY % person.ident.mix (see Bibliographic section, below)-->
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % formalobject.title.content "title, titleabbrev?">
+
+<!-- ...................................................................... -->
+<!-- Entities for attributes and attribute components ..................... -->
+
+<!-- Effectivity attributes ............................................... -->
+
+
+<!-- Arch: Computer or chip architecture to which element applies; no 
+	default -->
+
+<!ENTITY % arch.attrib
+	"arch		CDATA		#IMPLIED">
+
+<!-- Condition: General-purpose effectivity attribute -->
+
+<!ENTITY % condition.attrib
+	"condition	CDATA		#IMPLIED">
+
+<!-- Conformance: Standards conformance characteristics -->
+
+<!ENTITY % conformance.attrib
+	"conformance	NMTOKENS	#IMPLIED">
+
+
+<!-- OS: Operating system to which element applies; no default -->
+
+<!ENTITY % os.attrib
+	"os		CDATA		#IMPLIED">
+
+
+<!-- Revision: Editorial revision to which element belongs; no default -->
+
+<!ENTITY % revision.attrib
+	"revision	CDATA		#IMPLIED">
+
+<!-- Security: Security classification; no default -->
+
+<!ENTITY % security.attrib
+	"security	CDATA		#IMPLIED">
+
+<!-- UserLevel: Level of user experience to which element applies; no 
+	default -->
+
+<!ENTITY % userlevel.attrib
+	"userlevel	CDATA		#IMPLIED">
+
+
+<!-- Vendor: Computer vendor to which element applies; no default -->
+
+<!ENTITY % vendor.attrib
+	"vendor		CDATA		#IMPLIED">
+
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % effectivity.attrib
+	"%arch.attrib;
+        %condition.attrib;
+	%conformance.attrib;
+	%os.attrib;
+	%revision.attrib;
+        %security.attrib;
+	%userlevel.attrib;
+	%vendor.attrib;
+	%local.effectivity.attrib;"
+>
+
+<!-- Common attributes .................................................... -->
+
+
+<!-- Id: Unique identifier of element; no default -->
+
+<!ENTITY % id.attrib
+	"id		ID		#IMPLIED">
+
+
+<!-- Id: Unique identifier of element; a value must be supplied; no 
+	default -->
+
+<!ENTITY % idreq.attrib
+	"id		ID		#REQUIRED">
+
+
+<!-- Lang: Indicator of language in which element is written, for
+	translation, character set management, etc.; no default -->
+
+<!ENTITY % lang.attrib
+	"lang		CDATA		#IMPLIED">
+
+
+<!-- Remap: Previous role of element before conversion; no default -->
+
+<!ENTITY % remap.attrib
+	"remap		CDATA		#IMPLIED">
+
+
+<!-- Role: New role of element in local environment; no default -->
+
+<!ENTITY % role.attrib
+	"role		CDATA		#IMPLIED">
+
+
+<!-- XRefLabel: Alternate labeling string for XRef text generation;
+	default is usually title or other appropriate label text already
+	contained in element -->
+
+<!ENTITY % xreflabel.attrib
+	"xreflabel	CDATA		#IMPLIED">
+
+
+<!-- RevisionFlag: Revision status of element; default is that element
+	wasn't revised -->
+
+<!ENTITY % revisionflag.attrib
+	"revisionflag	(changed
+			|added
+			|deleted
+			|off)		#IMPLIED">
+
+<!ENTITY % local.common.attrib "">
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % common.attrib
+	"%id.attrib;
+	%lang.attrib;
+	%remap.attrib;
+	%xreflabel.attrib;
+	%revisionflag.attrib;
+	%effectivity.attrib;
+	%local.common.attrib;"
+>
+
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % idreq.common.attrib
+	"%idreq.attrib;
+	%lang.attrib;
+	%remap.attrib;
+	%xreflabel.attrib;
+	%revisionflag.attrib;
+	%effectivity.attrib;
+	%local.common.attrib;"
+>
+
+<!-- Semi-common attributes and other attribute entities .................. -->
+
+<!ENTITY % local.graphics.attrib "">
+
+<!-- EntityRef: Name of an external entity containing the content
+	of the graphic -->
+<!-- FileRef: Filename, qualified by a pathname if desired, 
+	designating the file containing the content of the graphic -->
+<!-- Format: Notation of the element content, if any -->
+<!-- SrcCredit: Information about the source of the Graphic -->
+<!-- Width: Same as CALS reprowid (desired width) -->
+<!-- Depth: Same as CALS reprodep (desired depth) -->
+<!-- Align: Same as CALS hplace with 'none' removed; #IMPLIED means 
+	application-specific -->
+<!-- Scale: Conflation of CALS hscale and vscale -->
+<!-- Scalefit: Same as CALS scalefit -->
+
+<!ENTITY % graphics.attrib
+	"
+	entityref	ENTITY		#IMPLIED
+	fileref 	CDATA		#IMPLIED
+	format		(%notation.class;) #IMPLIED
+	srccredit	CDATA		#IMPLIED
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+	%local.graphics.attrib;"
+>
+
+<!ENTITY % local.keyaction.attrib "">
+
+<!-- Action: Key combination type; default is unspecified if one 
+	child element, Simul if there is more than one; if value is 
+	Other, the OtherAction attribute must have a nonempty value -->
+<!-- OtherAction: User-defined key combination type -->
+
+<!ENTITY % keyaction.attrib
+	"
+	action		(click
+			|double-click
+			|press
+			|seq
+			|simul
+			|other)		#IMPLIED
+	otheraction	CDATA		#IMPLIED
+	%local.keyaction.attrib;"
+>
+
+
+<!-- Label: Identifying number or string; default is usually the
+	appropriate number or string autogenerated by a formatter -->
+
+<!ENTITY % label.attrib
+	"label		CDATA		#IMPLIED">
+
+
+<!-- Format: whether element is assumed to contain significant white
+	space -->
+
+<!ENTITY % linespecific.attrib
+	"format		NOTATION
+			(linespecific)	'linespecific'
+         linenumbering	(numbered|unnumbered) 	#IMPLIED">
+
+
+<!-- Linkend: link to related information; no default -->
+
+<!ENTITY % linkend.attrib
+	"linkend	IDREF		#IMPLIED">
+
+
+<!-- Linkend: required link to related information -->
+
+<!ENTITY % linkendreq.attrib
+	"linkend	IDREF		#REQUIRED">
+
+
+<!-- Linkends: link to one or more sets of related information; no 
+	default -->
+
+<!ENTITY % linkends.attrib
+	"linkends	IDREFS		#IMPLIED">
+
+
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+	"mark		CDATA		#IMPLIED
+	%local.mark.attrib;"
+>
+
+
+<!-- MoreInfo: whether element's content has an associated RefEntry -->
+
+<!ENTITY % moreinfo.attrib
+	"moreinfo	(refentry|none)	'none'">
+
+
+<!-- Pagenum: number of page on which element appears; no default -->
+
+<!ENTITY % pagenum.attrib
+	"pagenum	CDATA		#IMPLIED">
+
+<!ENTITY % local.status.attrib "">
+
+<!-- Status: Editorial or publication status of the element
+	it applies to, such as "in review" or "approved for distribution" -->
+
+<!ENTITY % status.attrib
+	"status		CDATA		#IMPLIED
+	%local.status.attrib;"
+>
+
+
+<!-- Width: width of the longest line in the element to which it
+	pertains, in number of characters -->
+
+<!ENTITY % width.attrib
+	"width		CDATA		#IMPLIED">
+
+<!-- ...................................................................... -->
+<!-- Title elements ....................................................... -->
+
+<!ENTITY % title.module "INCLUDE">
+<![%title.module;[
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+
+<!ENTITY % title.element "INCLUDE">
+<![%title.element;[
+<!ELEMENT title (%title.char.mix;)*>
+<!--end of title.element-->]]>
+
+<!ENTITY % title.attlist "INCLUDE">
+<![%title.attlist;[
+<!ATTLIST title
+		%pagenum.attrib;
+		%common.attrib;
+		%title.role.attrib;
+		%local.title.attrib;
+>
+<!--end of title.attlist-->]]>
+<!--end of title.module-->]]>
+
+<!ENTITY % titleabbrev.module "INCLUDE">
+<![%titleabbrev.module;[
+<!ENTITY % local.titleabbrev.attrib "">
+<!ENTITY % titleabbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % titleabbrev.element "INCLUDE">
+<![%titleabbrev.element;[
+<!ELEMENT titleabbrev (%title.char.mix;)*>
+<!--end of titleabbrev.element-->]]>
+
+<!ENTITY % titleabbrev.attlist "INCLUDE">
+<![%titleabbrev.attlist;[
+<!ATTLIST titleabbrev
+		%common.attrib;
+		%titleabbrev.role.attrib;
+		%local.titleabbrev.attrib;
+>
+<!--end of titleabbrev.attlist-->]]>
+<!--end of titleabbrev.module-->]]>
+
+<!ENTITY % subtitle.module "INCLUDE">
+<![%subtitle.module;[
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % subtitle.element "INCLUDE">
+<![%subtitle.element;[
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!--end of subtitle.element-->]]>
+
+<!ENTITY % subtitle.attlist "INCLUDE">
+<![%subtitle.attlist;[
+<!ATTLIST subtitle
+		%common.attrib;
+		%subtitle.role.attrib;
+		%local.subtitle.attrib;
+>
+<!--end of subtitle.attlist-->]]>
+<!--end of subtitle.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliographic entities and elements .................................. -->
+
+<!-- The bibliographic elements are typically used in the document
+     hierarchy. They do not appear in content models of information
+     pool elements.  See also the document information elements,
+     below. -->
+
+<!ENTITY % local.person.ident.mix "">
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new
+wrapper element created to allow association of those two elements with
+Author name information.
+......................
+-->
+<!ENTITY % person.ident.mix
+		"honorific|firstname|surname|lineage|othername|affiliation
+		|authorblurb|contrib %local.person.ident.mix;">
+
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+		"abbrev|abstract|address|artpagenums|author
+		|authorgroup|authorinitials|bibliomisc|biblioset
+		|collab|confgroup|contractnum|contractsponsor
+		|copyright|corpauthor|corpname|date|edition
+		|editor|invpartnumber|isbn|issn|issuenum|orgname
+		|othercredit|pagenums|printhistory|productname
+		|productnumber|pubdate|publisher|publishername
+		|pubsnumber|releaseinfo|revhistory|seriesvolnums
+		|subtitle|title|titleabbrev|volumenum|citetitle
+		|%person.ident.mix;
+		|%ndxterm.class;
+		%local.bibliocomponent.mix;">
+
+<!ENTITY % biblioentry.module "INCLUDE">
+<![%biblioentry.module;[
+<!ENTITY % local.biblioentry.attrib "">
+<!ENTITY % biblioentry.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioentry.element "INCLUDE">
+<![%biblioentry.element;[
+<!ELEMENT biblioentry ((articleinfo | (%bibliocomponent.mix;))+)>
+<!--end of biblioentry.element-->]]>
+
+<!ENTITY % biblioentry.attlist "INCLUDE">
+<![%biblioentry.attlist;[
+<!ATTLIST biblioentry
+		%common.attrib;
+		%biblioentry.role.attrib;
+		%local.biblioentry.attrib;
+>
+<!--end of biblioentry.attlist-->]]>
+<!--end of biblioentry.module-->]]>
+
+<!ENTITY % bibliomixed.module "INCLUDE">
+<![%bibliomixed.module;[
+<!ENTITY % local.bibliomixed.attrib "">
+<!ENTITY % bibliomixed.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomixed.element "INCLUDE">
+<![%bibliomixed.element;[
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomixed.element-->]]>
+
+<!ENTITY % bibliomixed.attlist "INCLUDE">
+<![%bibliomixed.attlist;[
+<!ATTLIST bibliomixed
+		%common.attrib;
+		%bibliomixed.role.attrib;
+		%local.bibliomixed.attrib;
+>
+<!--end of bibliomixed.attlist-->]]>
+<!--end of bibliomixed.module-->]]>
+
+<!ENTITY % articleinfo.module "INCLUDE">
+<![%articleinfo.module;[
+<!ENTITY % local.articleinfo.attrib "">
+<!ENTITY % articleinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % articleinfo.element "INCLUDE">
+<![%articleinfo.element;[
+<!ELEMENT articleinfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of articleinfo.element-->]]>
+
+<!ENTITY % articleinfo.attlist "INCLUDE">
+<![%articleinfo.attlist;[
+<!ATTLIST articleinfo
+		%common.attrib;
+		%articleinfo.role.attrib;
+		%local.articleinfo.attrib;
+>
+<!--end of articleinfo.attlist-->]]>
+<!--end of articleinfo.module-->]]>
+
+<!ENTITY % biblioset.module "INCLUDE">
+<![%biblioset.module;[
+<!ENTITY % local.biblioset.attrib "">
+<!ENTITY % biblioset.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioset.element "INCLUDE">
+<![%biblioset.element;[
+<!ELEMENT biblioset ((%bibliocomponent.mix;)+)>
+<!--end of biblioset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioSet -->
+
+
+<!ENTITY % biblioset.attlist "INCLUDE">
+<![%biblioset.attlist;[
+<!ATTLIST biblioset
+		relation	CDATA		#IMPLIED
+		%common.attrib;
+		%biblioset.role.attrib;
+		%local.biblioset.attrib;
+>
+<!--end of biblioset.attlist-->]]>
+<!--end of biblioset.module-->]]>
+
+<!ENTITY % bibliomset.module "INCLUDE">
+<![%bibliomset.module;[
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+
+<!ENTITY % bibliomset.element "INCLUDE">
+<![%bibliomset.element;[
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioMSet -->
+
+
+<!ENTITY % bibliomset.attlist "INCLUDE">
+<![%bibliomset.attlist;[
+<!ATTLIST bibliomset
+		relation	CDATA		#IMPLIED
+		%bibliomset.role.attrib;
+		%common.attrib;
+		%local.bibliomset.attrib;
+>
+<!--end of bibliomset.attlist-->]]>
+<!--end of bibliomset.module-->]]>
+
+<!ENTITY % bibliomisc.module "INCLUDE">
+<![%bibliomisc.module;[
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomisc.element "INCLUDE">
+<![%bibliomisc.element;[
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!--end of bibliomisc.element-->]]>
+
+<!ENTITY % bibliomisc.attlist "INCLUDE">
+<![%bibliomisc.attlist;[
+<!ATTLIST bibliomisc
+		%common.attrib;
+		%bibliomisc.role.attrib;
+		%local.bibliomisc.attrib;
+>
+<!--end of bibliomisc.attlist-->]]>
+<!--end of bibliomisc.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Subject, Keyword, and ITermSet elements .............................. -->
+
+<!ENTITY % subjectset.content.module "INCLUDE">
+<![%subjectset.content.module;[
+<!ENTITY % subjectset.module "INCLUDE">
+<![%subjectset.module;[
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectset.element "INCLUDE">
+<![%subjectset.element;[
+<!ELEMENT subjectset (subject+)>
+<!--end of subjectset.element-->]]>
+
+<!-- Scheme: Controlled vocabulary employed in SubjectTerms -->
+
+
+<!ENTITY % subjectset.attlist "INCLUDE">
+<![%subjectset.attlist;[
+<!ATTLIST subjectset
+		scheme		NMTOKEN		#IMPLIED
+		%common.attrib;
+		%subjectset.role.attrib;
+		%local.subjectset.attrib;
+>
+<!--end of subjectset.attlist-->]]>
+<!--end of subjectset.module-->]]>
+
+<!ENTITY % subject.module "INCLUDE">
+<![%subject.module;[
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+
+<!ENTITY % subject.element "INCLUDE">
+<![%subject.element;[
+<!ELEMENT subject (subjectterm+)>
+<!--end of subject.element-->]]>
+
+<!-- Weight: Ranking of this group of SubjectTerms relative 
+		to others, 0 is low, no highest value specified -->
+
+
+<!ENTITY % subject.attlist "INCLUDE">
+<![%subject.attlist;[
+<!ATTLIST subject
+		weight		CDATA		#IMPLIED
+		%common.attrib;
+		%subject.role.attrib;
+		%local.subject.attrib;
+>
+<!--end of subject.attlist-->]]>
+<!--end of subject.module-->]]>
+
+<!ENTITY % subjectterm.module "INCLUDE">
+<![%subjectterm.module;[
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectterm.element "INCLUDE">
+<![%subjectterm.element;[
+<!ELEMENT subjectterm (#PCDATA)>
+<!--end of subjectterm.element-->]]>
+
+<!ENTITY % subjectterm.attlist "INCLUDE">
+<![%subjectterm.attlist;[
+<!ATTLIST subjectterm
+		%common.attrib;
+		%subjectterm.role.attrib;
+		%local.subjectterm.attrib;
+>
+<!--end of subjectterm.attlist-->]]>
+<!--end of subjectterm.module-->]]>
+<!--end of subjectset.content.module-->]]>
+
+<!ENTITY % keywordset.content.module "INCLUDE">
+<![%keywordset.content.module;[
+<!ENTITY % keywordset.module "INCLUDE">
+<![%keywordset.module;[
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+
+<!ENTITY % keywordset.element "INCLUDE">
+<![%keywordset.element;[
+<!ELEMENT keywordset (keyword+)>
+<!--end of keywordset.element-->]]>
+
+<!ENTITY % keywordset.attlist "INCLUDE">
+<![%keywordset.attlist;[
+<!ATTLIST keywordset
+		%common.attrib;
+		%keywordset.role.attrib;
+		%local.keywordset.attrib;
+>
+<!--end of keywordset.attlist-->]]>
+<!--end of keywordset.module-->]]>
+
+<!ENTITY % keyword.module "INCLUDE">
+<![%keyword.module;[
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+
+<!ENTITY % keyword.element "INCLUDE">
+<![%keyword.element;[
+<!ELEMENT keyword (#PCDATA)>
+<!--end of keyword.element-->]]>
+
+<!ENTITY % keyword.attlist "INCLUDE">
+<![%keyword.attlist;[
+<!ATTLIST keyword
+		%common.attrib;
+		%keyword.role.attrib;
+		%local.keyword.attrib;
+>
+<!--end of keyword.attlist-->]]>
+<!--end of keyword.module-->]]>
+<!--end of keywordset.content.module-->]]>
+
+<!ENTITY % itermset.module "INCLUDE">
+<![%itermset.module;[
+<!ENTITY % local.itermset.attrib "">
+<!ENTITY % itermset.role.attrib "%role.attrib;">
+
+<!ENTITY % itermset.element "INCLUDE">
+<![%itermset.element;[
+<!ELEMENT itermset (indexterm+)>
+<!--end of itermset.element-->]]>
+
+<!ENTITY % itermset.attlist "INCLUDE">
+<![%itermset.attlist;[
+<!ATTLIST itermset
+		%common.attrib;
+		%itermset.role.attrib;
+		%local.itermset.attrib;
+>
+<!--end of itermset.attlist-->]]>
+<!--end of itermset.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Compound (section-ish) elements ...................................... -->
+
+<!-- Message set ...................... -->
+
+<!ENTITY % msgset.content.module "INCLUDE">
+<![%msgset.content.module;[
+<!ENTITY % msgset.module "INCLUDE">
+<![%msgset.module;[
+<!ENTITY % local.msgset.attrib "">
+<!ENTITY % msgset.role.attrib "%role.attrib;">
+
+<!ENTITY % msgset.element "INCLUDE">
+<![%msgset.element;[
+<!ELEMENT msgset ((%formalobject.title.content;)?, (msgentry+|simplemsgentry+))>
+<!--end of msgset.element-->]]>
+
+<!ENTITY % msgset.attlist "INCLUDE">
+<![%msgset.attlist;[
+<!ATTLIST msgset
+		%common.attrib;
+		%msgset.role.attrib;
+		%local.msgset.attrib;
+>
+<!--end of msgset.attlist-->]]>
+<!--end of msgset.module-->]]>
+
+<!ENTITY % msgentry.module "INCLUDE">
+<![%msgentry.module;[
+<!ENTITY % local.msgentry.attrib "">
+<!ENTITY % msgentry.role.attrib "%role.attrib;">
+
+<!ENTITY % msgentry.element "INCLUDE">
+<![%msgentry.element;[
+<!ELEMENT msgentry (msg+, msginfo?, msgexplan*)>
+<!--end of msgentry.element-->]]>
+
+<!ENTITY % msgentry.attlist "INCLUDE">
+<![%msgentry.attlist;[
+<!ATTLIST msgentry
+		%common.attrib;
+		%msgentry.role.attrib;
+		%local.msgentry.attrib;
+>
+<!--end of msgentry.attlist-->]]>
+<!--end of msgentry.module-->]]>
+
+<!ENTITY % simplemsgentry.module "INCLUDE">
+<![ %simplemsgentry.module; [
+<!ENTITY % local.simplemsgentry.attrib "">
+<!ENTITY % simplemsgentry.role.attrib "%role.attrib;">
+
+<!ENTITY % simplemsgentry.element "INCLUDE">
+<![ %simplemsgentry.element; [
+<!ELEMENT simplemsgentry (msgtext, msgexplan)>
+<!--end of simplemsgentry.element-->]]>
+
+<!ENTITY % simplemsgentry.attlist "INCLUDE">
+<![ %simplemsgentry.attlist; [
+<!ATTLIST simplemsgentry
+		%common.attrib;
+		%simplemsgentry.role.attrib;
+		%local.simplemsgentry.attrib;
+		audience	CDATA	#IMPLIED
+		level		CDATA	#IMPLIED
+		origin		CDATA	#IMPLIED
+>
+<!--end of simplemsgentry.attlist-->]]>
+<!--end of simplemsgentry.module-->]]>
+
+<!ENTITY % msg.module "INCLUDE">
+<![%msg.module;[
+<!ENTITY % local.msg.attrib "">
+<!ENTITY % msg.role.attrib "%role.attrib;">
+
+<!ENTITY % msg.element "INCLUDE">
+<![%msg.element;[
+<!ELEMENT msg (title?, msgmain, (msgsub | msgrel)*)>
+<!--end of msg.element-->]]>
+
+<!ENTITY % msg.attlist "INCLUDE">
+<![%msg.attlist;[
+<!ATTLIST msg
+		%common.attrib;
+		%msg.role.attrib;
+		%local.msg.attrib;
+>
+<!--end of msg.attlist-->]]>
+<!--end of msg.module-->]]>
+
+<!ENTITY % msgmain.module "INCLUDE">
+<![%msgmain.module;[
+<!ENTITY % local.msgmain.attrib "">
+<!ENTITY % msgmain.role.attrib "%role.attrib;">
+
+<!ENTITY % msgmain.element "INCLUDE">
+<![%msgmain.element;[
+<!ELEMENT msgmain (title?, msgtext)>
+<!--end of msgmain.element-->]]>
+
+<!ENTITY % msgmain.attlist "INCLUDE">
+<![%msgmain.attlist;[
+<!ATTLIST msgmain
+		%common.attrib;
+		%msgmain.role.attrib;
+		%local.msgmain.attrib;
+>
+<!--end of msgmain.attlist-->]]>
+<!--end of msgmain.module-->]]>
+
+<!ENTITY % msgsub.module "INCLUDE">
+<![%msgsub.module;[
+<!ENTITY % local.msgsub.attrib "">
+<!ENTITY % msgsub.role.attrib "%role.attrib;">
+
+<!ENTITY % msgsub.element "INCLUDE">
+<![%msgsub.element;[
+<!ELEMENT msgsub (title?, msgtext)>
+<!--end of msgsub.element-->]]>
+
+<!ENTITY % msgsub.attlist "INCLUDE">
+<![%msgsub.attlist;[
+<!ATTLIST msgsub
+		%common.attrib;
+		%msgsub.role.attrib;
+		%local.msgsub.attrib;
+>
+<!--end of msgsub.attlist-->]]>
+<!--end of msgsub.module-->]]>
+
+<!ENTITY % msgrel.module "INCLUDE">
+<![%msgrel.module;[
+<!ENTITY % local.msgrel.attrib "">
+<!ENTITY % msgrel.role.attrib "%role.attrib;">
+
+<!ENTITY % msgrel.element "INCLUDE">
+<![%msgrel.element;[
+<!ELEMENT msgrel (title?, msgtext)>
+<!--end of msgrel.element-->]]>
+
+<!ENTITY % msgrel.attlist "INCLUDE">
+<![%msgrel.attlist;[
+<!ATTLIST msgrel
+		%common.attrib;
+		%msgrel.role.attrib;
+		%local.msgrel.attrib;
+>
+<!--end of msgrel.attlist-->]]>
+<!--end of msgrel.module-->]]>
+
+<!-- MsgText (defined in the Inlines section, below)-->
+
+<!ENTITY % msginfo.module "INCLUDE">
+<![%msginfo.module;[
+<!ENTITY % local.msginfo.attrib "">
+<!ENTITY % msginfo.role.attrib "%role.attrib;">
+
+<!ENTITY % msginfo.element "INCLUDE">
+<![%msginfo.element;[
+<!ELEMENT msginfo ((msglevel | msgorig | msgaud)*)>
+<!--end of msginfo.element-->]]>
+
+<!ENTITY % msginfo.attlist "INCLUDE">
+<![%msginfo.attlist;[
+<!ATTLIST msginfo
+		%common.attrib;
+		%msginfo.role.attrib;
+		%local.msginfo.attrib;
+>
+<!--end of msginfo.attlist-->]]>
+<!--end of msginfo.module-->]]>
+
+<!ENTITY % msglevel.module "INCLUDE">
+<![%msglevel.module;[
+<!ENTITY % local.msglevel.attrib "">
+<!ENTITY % msglevel.role.attrib "%role.attrib;">
+
+<!ENTITY % msglevel.element "INCLUDE">
+<![%msglevel.element;[
+<!ELEMENT msglevel (%smallcptr.char.mix;)*>
+<!--end of msglevel.element-->]]>
+
+<!ENTITY % msglevel.attlist "INCLUDE">
+<![%msglevel.attlist;[
+<!ATTLIST msglevel
+		%common.attrib;
+		%msglevel.role.attrib;
+		%local.msglevel.attrib;
+>
+<!--end of msglevel.attlist-->]]>
+<!--end of msglevel.module-->]]>
+
+<!ENTITY % msgorig.module "INCLUDE">
+<![%msgorig.module;[
+<!ENTITY % local.msgorig.attrib "">
+<!ENTITY % msgorig.role.attrib "%role.attrib;">
+
+<!ENTITY % msgorig.element "INCLUDE">
+<![%msgorig.element;[
+<!ELEMENT msgorig (%smallcptr.char.mix;)*>
+<!--end of msgorig.element-->]]>
+
+<!ENTITY % msgorig.attlist "INCLUDE">
+<![%msgorig.attlist;[
+<!ATTLIST msgorig
+		%common.attrib;
+		%msgorig.role.attrib;
+		%local.msgorig.attrib;
+>
+<!--end of msgorig.attlist-->]]>
+<!--end of msgorig.module-->]]>
+
+<!ENTITY % msgaud.module "INCLUDE">
+<![%msgaud.module;[
+<!ENTITY % local.msgaud.attrib "">
+<!ENTITY % msgaud.role.attrib "%role.attrib;">
+
+<!ENTITY % msgaud.element "INCLUDE">
+<![%msgaud.element;[
+<!ELEMENT msgaud (%para.char.mix;)*>
+<!--end of msgaud.element-->]]>
+
+<!ENTITY % msgaud.attlist "INCLUDE">
+<![%msgaud.attlist;[
+<!ATTLIST msgaud
+		%common.attrib;
+		%msgaud.role.attrib;
+		%local.msgaud.attrib;
+>
+<!--end of msgaud.attlist-->]]>
+<!--end of msgaud.module-->]]>
+
+<!ENTITY % msgexplan.module "INCLUDE">
+<![%msgexplan.module;[
+<!ENTITY % local.msgexplan.attrib "">
+<!ENTITY % msgexplan.role.attrib "%role.attrib;">
+
+<!ENTITY % msgexplan.element "INCLUDE">
+<![%msgexplan.element;[
+<!ELEMENT msgexplan (title?, (%component.mix;)+)>
+<!--end of msgexplan.element-->]]>
+
+<!ENTITY % msgexplan.attlist "INCLUDE">
+<![%msgexplan.attlist;[
+<!ATTLIST msgexplan
+		%common.attrib;
+		%msgexplan.role.attrib;
+		%local.msgexplan.attrib;
+>
+<!--end of msgexplan.attlist-->]]>
+<!--end of msgexplan.module-->]]>
+<!--end of msgset.content.module-->]]>
+
+<!-- QandASet ........................ -->
+<!ENTITY % qandset.content.module "INCLUDE">
+<![ %qandset.content.module; [
+<!ENTITY % qandset.module "INCLUDE">
+<![ %qandset.module; [
+<!ENTITY % local.qandset.attrib "">
+<!ENTITY % qandset.role.attrib "%role.attrib;">
+
+<!ENTITY % qandset.element "INCLUDE">
+<![ %qandset.element; [
+<!ELEMENT qandaset ((%formalobject.title.content;)?,
+			(%qandaset.mix;)*,
+                        (qandadiv+|qandaentry+))>
+<!--end of qandset.element-->]]>
+
+<!ENTITY % qandset.attlist "INCLUDE">
+<![ %qandset.attlist; [
+<!ATTLIST qandaset
+		defaultlabel	(qanda|number|none)       #IMPLIED
+		%common.attrib;
+		%qandset.role.attrib;
+		%local.qandset.attrib;>
+<!--end of qandset.attlist-->]]>
+<!--end of qandset.module-->]]>
+
+<!ENTITY % qandadiv.module "INCLUDE">
+<![ %qandadiv.module; [
+<!ENTITY % local.qandadiv.attrib "">
+<!ENTITY % qandadiv.role.attrib "%role.attrib;">
+
+<!ENTITY % qandadiv.element "INCLUDE">
+<![ %qandadiv.element; [
+<!ELEMENT qandadiv ((%formalobject.title.content;)?, 
+			(%qandaset.mix;)*,
+			(qandadiv+|qandaentry+))>
+<!--end of qandadiv.element-->]]>
+
+<!ENTITY % qandadiv.attlist "INCLUDE">
+<![ %qandadiv.attlist; [
+<!ATTLIST qandadiv
+		%common.attrib;
+		%qandadiv.role.attrib;
+		%local.qandadiv.attrib;>
+<!--end of qandadiv.attlist-->]]>
+<!--end of qandadiv.module-->]]>
+
+<!ENTITY % qandaentry.module "INCLUDE">
+<![ %qandaentry.module; [
+<!ENTITY % local.qandaentry.attrib "">
+<!ENTITY % qandaentry.role.attrib "%role.attrib;">
+
+<!ENTITY % qandaentry.element "INCLUDE">
+<![ %qandaentry.element; [
+<!ELEMENT qandaentry (revhistory?, question, answer*)>
+<!--end of qandaentry.element-->]]>
+
+<!ENTITY % qandaentry.attlist "INCLUDE">
+<![ %qandaentry.attlist; [
+<!ATTLIST qandaentry
+		%common.attrib;
+		%qandaentry.role.attrib;
+		%local.qandaentry.attrib;>
+<!--end of qandaentry.attlist-->]]>
+<!--end of qandaentry.module-->]]>
+
+<!ENTITY % question.module "INCLUDE">
+<![ %question.module; [
+<!ENTITY % local.question.attrib "">
+<!ENTITY % question.role.attrib "%role.attrib;">
+
+<!ENTITY % question.element "INCLUDE">
+<![ %question.element; [
+<!ELEMENT question (label?, (%qandaset.mix;)+)>
+<!--end of question.element-->]]>
+
+<!ENTITY % question.attlist "INCLUDE">
+<![ %question.attlist; [
+<!ATTLIST question
+		%common.attrib;
+		%question.role.attrib;
+		%local.question.attrib;
+>
+<!--end of question.attlist-->]]>
+<!--end of question.module-->]]>
+
+<!ENTITY % answer.module "INCLUDE">
+<![ %answer.module; [
+<!ENTITY % local.answer.attrib "">
+<!ENTITY % answer.role.attrib "%role.attrib;">
+
+<!ENTITY % answer.element "INCLUDE">
+<![ %answer.element; [
+<!ELEMENT answer (label?, (%qandaset.mix;)*, qandaentry*)>
+<!--end of answer.element-->]]>
+
+<!ENTITY % answer.attlist "INCLUDE">
+<![ %answer.attlist; [
+<!ATTLIST answer
+		%common.attrib;
+		%answer.role.attrib;
+		%local.answer.attrib;
+>
+<!--end of answer.attlist-->]]>
+<!--end of answer.module-->]]>
+
+<!ENTITY % label.module "INCLUDE">
+<![ %label.module; [
+<!ENTITY % local.label.attrib "">
+<!ENTITY % label.role.attrib "%role.attrib;">
+
+<!ENTITY % label.element "INCLUDE">
+<![ %label.element; [
+<!ELEMENT label (%word.char.mix;)*>
+<!--end of label.element-->]]>
+
+<!ENTITY % label.attlist "INCLUDE">
+<![ %label.attlist; [
+<!ATTLIST label
+		%common.attrib;
+		%label.role.attrib;
+		%local.label.attrib;
+>
+<!--end of label.attlist-->]]>
+<!--end of label.module-->]]>
+<!--end of qandset.content.module-->]]>
+
+<!-- Procedure ........................ -->
+
+<!ENTITY % procedure.content.module "INCLUDE">
+<![%procedure.content.module;[
+<!ENTITY % procedure.module "INCLUDE">
+<![%procedure.module;[
+<!ENTITY % local.procedure.attrib "">
+<!ENTITY % procedure.role.attrib "%role.attrib;">
+
+<!ENTITY % procedure.element "INCLUDE">
+<![%procedure.element;[
+<!ELEMENT procedure ((%formalobject.title.content;)?,
+	(%component.mix;)*, step+)>
+<!--end of procedure.element-->]]>
+
+<!ENTITY % procedure.attlist "INCLUDE">
+<![%procedure.attlist;[
+<!ATTLIST procedure
+		%common.attrib;
+		%procedure.role.attrib;
+		%local.procedure.attrib;
+>
+<!--end of procedure.attlist-->]]>
+<!--end of procedure.module-->]]>
+
+<!ENTITY % step.module "INCLUDE">
+<![%step.module;[
+<!ENTITY % local.step.attrib "">
+<!ENTITY % step.role.attrib "%role.attrib;">
+
+<!ENTITY % step.element "INCLUDE">
+<![%step.element;[
+<!ELEMENT step (title?, (((%component.mix;)+, (substeps,
+		(%component.mix;)*)?) | (substeps, (%component.mix;)*)))>
+<!--end of step.element-->]]>
+
+<!-- Performance: Whether the Step must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % step.attlist "INCLUDE">
+<![%step.attlist;[
+<!ATTLIST step
+		performance	(optional
+				|required)	"required"
+		%common.attrib;
+		%step.role.attrib;
+		%local.step.attrib;
+>
+<!--end of step.attlist-->]]>
+<!--end of step.module-->]]>
+
+<!ENTITY % substeps.module "INCLUDE">
+<![%substeps.module;[
+<!ENTITY % local.substeps.attrib "">
+<!ENTITY % substeps.role.attrib "%role.attrib;">
+
+<!ENTITY % substeps.element "INCLUDE">
+<![%substeps.element;[
+<!ELEMENT substeps (step+)>
+<!--end of substeps.element-->]]>
+
+<!-- Performance: whether entire set of substeps must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % substeps.attlist "INCLUDE">
+<![%substeps.attlist;[
+<!ATTLIST substeps
+		performance	(optional
+				|required)	"required"
+		%common.attrib;
+		%substeps.role.attrib;
+		%local.substeps.attrib;
+>
+<!--end of substeps.attlist-->]]>
+<!--end of substeps.module-->]]>
+<!--end of procedure.content.module-->]]>
+
+<!-- Sidebar .......................... -->
+
+<!ENTITY % sidebar.content.model "INCLUDE">
+<![ %sidebar.content.model; [
+
+<!ENTITY % sidebarinfo.module "INCLUDE">
+<![ %sidebarinfo.module; [
+<!ENTITY % local.sidebarinfo.attrib "">
+<!ENTITY % sidebarinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % sidebarinfo.element "INCLUDE">
+<![ %sidebarinfo.element; [
+<!ELEMENT sidebarinfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sidebarinfo.element-->]]>
+
+<!ENTITY % sidebarinfo.attlist "INCLUDE">
+<![ %sidebarinfo.attlist; [
+<!ATTLIST sidebarinfo
+		%common.attrib;
+		%sidebarinfo.role.attrib;
+		%local.sidebarinfo.attrib;
+>
+<!--end of sidebarinfo.attlist-->]]>
+<!--end of sidebarinfo.module-->]]>
+
+<!ENTITY % sidebar.module "INCLUDE">
+<![%sidebar.module;[
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+
+<!ENTITY % sidebar.element "INCLUDE">
+<![%sidebar.element;[
+<!ELEMENT sidebar (sidebarinfo?, 
+                   (%formalobject.title.content;)?,
+                   (%sidebar.mix;)+)>
+<!--end of sidebar.element-->]]>
+
+<!ENTITY % sidebar.attlist "INCLUDE">
+<![%sidebar.attlist;[
+<!ATTLIST sidebar
+		%common.attrib;
+		%sidebar.role.attrib;
+		%local.sidebar.attrib;
+>
+<!--end of sidebar.attlist-->]]>
+<!--end of sidebar.module-->]]>
+<!--end of sidebar.content.model-->]]>
+
+<!-- ...................................................................... -->
+<!-- Paragraph-related elements ........................................... -->
+
+<!ENTITY % abstract.module "INCLUDE">
+<![%abstract.module;[
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+
+<!ENTITY % abstract.element "INCLUDE">
+<![%abstract.element;[
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!--end of abstract.element-->]]>
+
+<!ENTITY % abstract.attlist "INCLUDE">
+<![%abstract.attlist;[
+<!ATTLIST abstract
+		%common.attrib;
+		%abstract.role.attrib;
+		%local.abstract.attrib;
+>
+<!--end of abstract.attlist-->]]>
+<!--end of abstract.module-->]]>
+
+<!ENTITY % authorblurb.module "INCLUDE">
+<![%authorblurb.module;[
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+
+<!ENTITY % authorblurb.element "INCLUDE">
+<![%authorblurb.element;[
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!--end of authorblurb.element-->]]>
+
+<!ENTITY % authorblurb.attlist "INCLUDE">
+<![%authorblurb.attlist;[
+<!ATTLIST authorblurb
+		%common.attrib;
+		%authorblurb.role.attrib;
+		%local.authorblurb.attrib;
+>
+<!--end of authorblurb.attlist-->]]>
+<!--end of authorblurb.module-->]]>
+
+<!ENTITY % blockquote.module "INCLUDE">
+<![%blockquote.module;[
+<!--FUTURE USE (V4.0):
+......................
+Epigraph will be disallowed from appearing in BlockQuote.
+......................
+-->
+
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+
+<!ENTITY % blockquote.element "INCLUDE">
+<![%blockquote.element;[
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!--end of blockquote.element-->]]>
+
+<!ENTITY % blockquote.attlist "INCLUDE">
+<![%blockquote.attlist;[
+<!ATTLIST blockquote
+		%common.attrib;
+		%blockquote.role.attrib;
+		%local.blockquote.attrib;
+>
+<!--end of blockquote.attlist-->]]>
+<!--end of blockquote.module-->]]>
+
+<!ENTITY % attribution.module "INCLUDE">
+<![%attribution.module;[
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+
+<!ENTITY % attribution.element "INCLUDE">
+<![%attribution.element;[
+<!ELEMENT attribution (%para.char.mix;)*>
+<!--end of attribution.element-->]]>
+
+<!ENTITY % attribution.attlist "INCLUDE">
+<![%attribution.attlist;[
+<!ATTLIST attribution
+		%common.attrib;
+		%attribution.role.attrib;
+		%local.attribution.attrib;
+>
+<!--end of attribution.attlist-->]]>
+<!--end of attribution.module-->]]>
+
+<!ENTITY % bridgehead.module "INCLUDE">
+<![%bridgehead.module;[
+<!ENTITY % local.bridgehead.attrib "">
+<!ENTITY % bridgehead.role.attrib "%role.attrib;">
+
+<!ENTITY % bridgehead.element "INCLUDE">
+<![%bridgehead.element;[
+<!ELEMENT bridgehead (%title.char.mix;)*>
+<!--end of bridgehead.element-->]]>
+
+<!-- Renderas: Indicates the format in which the BridgeHead
+		should appear -->
+
+
+<!ENTITY % bridgehead.attlist "INCLUDE">
+<![%bridgehead.attlist;[
+<!ATTLIST bridgehead
+		renderas	(other
+				|sect1
+				|sect2
+				|sect3
+				|sect4
+				|sect5)		#IMPLIED
+		%common.attrib;
+		%bridgehead.role.attrib;
+		%local.bridgehead.attrib;
+>
+<!--end of bridgehead.attlist-->]]>
+<!--end of bridgehead.module-->]]>
+
+<!ENTITY % remark.module "INCLUDE">
+<![%remark.module;[
+<!ENTITY % local.remark.attrib "">
+<!ENTITY % remark.role.attrib "%role.attrib;">
+
+<!ENTITY % remark.element "INCLUDE">
+<![%remark.element;[
+<!ELEMENT remark (%para.char.mix;)*>
+<!--end of remark.element-->]]>
+
+<!ENTITY % remark.attlist "INCLUDE">
+<![%remark.attlist;[
+<!ATTLIST remark
+		%common.attrib;
+		%remark.role.attrib;
+		%local.remark.attrib;
+>
+<!--end of remark.attlist-->]]>
+<!--end of remark.module-->]]>
+
+<!ENTITY % epigraph.module "INCLUDE">
+<![%epigraph.module;[
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+
+<!ENTITY % epigraph.element "INCLUDE">
+<![%epigraph.element;[
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!--end of epigraph.element-->]]>
+
+<!ENTITY % epigraph.attlist "INCLUDE">
+<![%epigraph.attlist;[
+<!ATTLIST epigraph
+		%common.attrib;
+		%epigraph.role.attrib;
+		%local.epigraph.attrib;
+>
+<!--end of epigraph.attlist-->]]>
+<!-- Attribution (defined above)-->
+<!--end of epigraph.module-->]]>
+
+<!ENTITY % footnote.module "INCLUDE">
+<![%footnote.module;[
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+
+<!ENTITY % footnote.element "INCLUDE">
+<![%footnote.element;[
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!--end of footnote.element-->]]>
+
+<!ENTITY % footnote.attlist "INCLUDE">
+<![%footnote.attlist;[
+<!ATTLIST footnote
+		%label.attrib;
+		%common.attrib;
+		%footnote.role.attrib;
+		%local.footnote.attrib;
+>
+<!--end of footnote.attlist-->]]>
+<!--end of footnote.module-->]]>
+
+<!ENTITY % highlights.module "INCLUDE">
+<![%highlights.module;[
+<!ENTITY % local.highlights.attrib "">
+<!ENTITY % highlights.role.attrib "%role.attrib;">
+
+<!ENTITY % highlights.element "INCLUDE">
+<![%highlights.element;[
+<!ELEMENT highlights ((%highlights.mix;)+)>
+<!--end of highlights.element-->]]>
+
+<!ENTITY % highlights.attlist "INCLUDE">
+<![%highlights.attlist;[
+<!ATTLIST highlights
+		%common.attrib;
+		%highlights.role.attrib;
+		%local.highlights.attrib;
+>
+<!--end of highlights.attlist-->]]>
+<!--end of highlights.module-->]]>
+
+<!ENTITY % formalpara.module "INCLUDE">
+<![%formalpara.module;[
+<!ENTITY % local.formalpara.attrib "">
+<!ENTITY % formalpara.role.attrib "%role.attrib;">
+
+<!ENTITY % formalpara.element "INCLUDE">
+<![%formalpara.element;[
+<!ELEMENT formalpara (title, (%ndxterm.class;)*, para)>
+<!--end of formalpara.element-->]]>
+
+<!ENTITY % formalpara.attlist "INCLUDE">
+<![%formalpara.attlist;[
+<!ATTLIST formalpara
+		%common.attrib;
+		%formalpara.role.attrib;
+		%local.formalpara.attrib;
+>
+<!--end of formalpara.attlist-->]]>
+<!--end of formalpara.module-->]]>
+
+<!ENTITY % para.module "INCLUDE">
+<![%para.module;[
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+
+<!ENTITY % para.element "INCLUDE">
+<![%para.element;[
+<!ELEMENT para (%para.char.mix; | %para.mix;)*>
+<!--end of para.element-->]]>
+
+<!ENTITY % para.attlist "INCLUDE">
+<![%para.attlist;[
+<!ATTLIST para
+		%common.attrib;
+		%para.role.attrib;
+		%local.para.attrib;
+>
+<!--end of para.attlist-->]]>
+<!--end of para.module-->]]>
+
+<!ENTITY % simpara.module "INCLUDE">
+<![%simpara.module;[
+<!ENTITY % local.simpara.attrib "">
+<!ENTITY % simpara.role.attrib "%role.attrib;">
+
+<!ENTITY % simpara.element "INCLUDE">
+<![%simpara.element;[
+<!ELEMENT simpara (%para.char.mix;)*>
+<!--end of simpara.element-->]]>
+
+<!ENTITY % simpara.attlist "INCLUDE">
+<![%simpara.attlist;[
+<!ATTLIST simpara
+		%common.attrib;
+		%simpara.role.attrib;
+		%local.simpara.attrib;
+>
+<!--end of simpara.attlist-->]]>
+<!--end of simpara.module-->]]>
+
+<!ENTITY % admon.module "INCLUDE">
+<![%admon.module;[
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+
+
+<!ENTITY % caution.element "INCLUDE">
+<![%caution.element;[
+<!ELEMENT caution (title?, (%admon.mix;)+)>
+<!--end of caution.element-->]]>
+
+<!ENTITY % caution.attlist "INCLUDE">
+<![%caution.attlist;[
+<!ATTLIST caution
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of caution.attlist-->]]>
+
+
+<!ENTITY % important.element "INCLUDE">
+<![%important.element;[
+<!ELEMENT important (title?, (%admon.mix;)+)>
+<!--end of important.element-->]]>
+
+<!ENTITY % important.attlist "INCLUDE">
+<![%important.attlist;[
+<!ATTLIST important
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of important.attlist-->]]>
+
+
+<!ENTITY % note.element "INCLUDE">
+<![%note.element;[
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!--end of note.element-->]]>
+
+<!ENTITY % note.attlist "INCLUDE">
+<![%note.attlist;[
+<!ATTLIST note
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of note.attlist-->]]>
+
+
+<!ENTITY % tip.element "INCLUDE">
+<![%tip.element;[
+<!ELEMENT tip (title?, (%admon.mix;)+)>
+<!--end of tip.element-->]]>
+
+<!ENTITY % tip.attlist "INCLUDE">
+<![%tip.attlist;[
+<!ATTLIST tip
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of tip.attlist-->]]>
+
+
+<!ENTITY % warning.element "INCLUDE">
+<![%warning.element;[
+<!ELEMENT warning (title?, (%admon.mix;)+)>
+<!--end of warning.element-->]]>
+
+<!ENTITY % warning.attlist "INCLUDE">
+<![%warning.attlist;[
+<!ATTLIST warning
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of warning.attlist-->]]>
+
+<!--end of admon.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Lists ................................................................ -->
+
+<!-- GlossList ........................ -->
+
+<!ENTITY % glosslist.module "INCLUDE">
+<![%glosslist.module;[
+<!ENTITY % local.glosslist.attrib "">
+<!ENTITY % glosslist.role.attrib "%role.attrib;">
+
+<!ENTITY % glosslist.element "INCLUDE">
+<![%glosslist.element;[
+<!ELEMENT glosslist (glossentry+)>
+<!--end of glosslist.element-->]]>
+
+<!ENTITY % glosslist.attlist "INCLUDE">
+<![%glosslist.attlist;[
+<!ATTLIST glosslist
+		%common.attrib;
+		%glosslist.role.attrib;
+		%local.glosslist.attrib;
+>
+<!--end of glosslist.attlist-->]]>
+<!--end of glosslist.module-->]]>
+
+<!ENTITY % glossentry.content.module "INCLUDE">
+<![%glossentry.content.module;[
+<!ENTITY % glossentry.module "INCLUDE">
+<![%glossentry.module;[
+<!ENTITY % local.glossentry.attrib "">
+<!ENTITY % glossentry.role.attrib "%role.attrib;">
+
+<!ENTITY % glossentry.element "INCLUDE">
+<![%glossentry.element;[
+<!ELEMENT glossentry (glossterm, acronym?, abbrev?,
+                      (%ndxterm.class;)*,
+                      revhistory?, (glosssee|glossdef+))>
+<!--end of glossentry.element-->]]>
+
+<!-- SortAs: String by which the GlossEntry is to be sorted
+		(alphabetized) in lieu of its proper content -->
+
+
+<!ENTITY % glossentry.attlist "INCLUDE">
+<![%glossentry.attlist;[
+<!ATTLIST glossentry
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%glossentry.role.attrib;
+		%local.glossentry.attrib;
+>
+<!--end of glossentry.attlist-->]]>
+<!--end of glossentry.module-->]]>
+
+<!--FUTURE USE (V4.0):
+......................
+GlossTerm will be excluded from itself.  Also, GlossTerm *may* be split
+into an element that appears in a Glossary and an element that can
+appear in the main text.
+......................
+-->
+<!-- GlossTerm (defined in the Inlines section, below)-->
+<!ENTITY % glossdef.module "INCLUDE">
+<![%glossdef.module;[
+<!ENTITY % local.glossdef.attrib "">
+<!ENTITY % glossdef.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdef.element "INCLUDE">
+<![%glossdef.element;[
+<!ELEMENT glossdef ((%glossdef.mix;)+, glossseealso*)>
+<!--end of glossdef.element-->]]>
+<!--FUTURE USE (V4.0):
+......................
+The Subject attribute will be renamed Keyword.
+......................
+-->
+
+<!-- Subject: List of subjects; keywords for the definition -->
+
+
+<!ENTITY % glossdef.attlist "INCLUDE">
+<![%glossdef.attlist;[
+<!ATTLIST glossdef
+		subject		CDATA		#IMPLIED
+		%common.attrib;
+		%glossdef.role.attrib;
+		%local.glossdef.attrib;
+>
+<!--end of glossdef.attlist-->]]>
+<!--end of glossdef.module-->]]>
+
+<!ENTITY % glosssee.module "INCLUDE">
+<![%glosssee.module;[
+<!ENTITY % local.glosssee.attrib "">
+<!ENTITY % glosssee.role.attrib "%role.attrib;">
+
+<!ENTITY % glosssee.element "INCLUDE">
+<![%glosssee.element;[
+<!ELEMENT glosssee (%para.char.mix;)*>
+<!--end of glosssee.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+		should be displayed at the point of the GlossSee -->
+
+
+<!ENTITY % glosssee.attlist "INCLUDE">
+<![%glosssee.attlist;[
+<!ATTLIST glosssee
+		otherterm	IDREF		#IMPLIED
+		%common.attrib;
+		%glosssee.role.attrib;
+		%local.glosssee.attrib;
+>
+<!--end of glosssee.attlist-->]]>
+<!--end of glosssee.module-->]]>
+
+<!ENTITY % glossseealso.module "INCLUDE">
+<![%glossseealso.module;[
+<!ENTITY % local.glossseealso.attrib "">
+<!ENTITY % glossseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % glossseealso.element "INCLUDE">
+<![%glossseealso.element;[
+<!ELEMENT glossseealso (%para.char.mix;)*>
+<!--end of glossseealso.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+		should be displayed at the point of the GlossSeeAlso -->
+
+
+<!ENTITY % glossseealso.attlist "INCLUDE">
+<![%glossseealso.attlist;[
+<!ATTLIST glossseealso
+		otherterm	IDREF		#IMPLIED
+		%common.attrib;
+		%glossseealso.role.attrib;
+		%local.glossseealso.attrib;
+>
+<!--end of glossseealso.attlist-->]]>
+<!--end of glossseealso.module-->]]>
+<!--end of glossentry.content.module-->]]>
+
+<!-- ItemizedList and OrderedList ..... -->
+
+<!ENTITY % itemizedlist.module "INCLUDE">
+<![%itemizedlist.module;[
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % itemizedlist.element "INCLUDE">
+<![%itemizedlist.element;[
+<!ELEMENT itemizedlist ((%formalobject.title.content;)?, listitem+)>
+<!--end of itemizedlist.element-->]]>
+
+<!-- Spacing: Whether the vertical space in the list should be
+		compressed -->
+<!-- Mark: Keyword, e.g., bullet, dash, checkbox, none;
+		list of keywords and defaults are implementation specific -->
+
+
+<!ENTITY % itemizedlist.attlist "INCLUDE">
+<![%itemizedlist.attlist;[
+<!ATTLIST itemizedlist		spacing		(normal
+				|compact)	#IMPLIED
+		%mark.attrib;
+		%common.attrib;
+		%itemizedlist.role.attrib;
+		%local.itemizedlist.attrib;
+>
+<!--end of itemizedlist.attlist-->]]>
+<!--end of itemizedlist.module-->]]>
+
+<!ENTITY % orderedlist.module "INCLUDE">
+<![%orderedlist.module;[
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % orderedlist.element "INCLUDE">
+<![%orderedlist.element;[
+<!ELEMENT orderedlist ((%formalobject.title.content;)?, listitem+)>
+<!--end of orderedlist.element-->]]>
+
+<!-- Numeration: Style of ListItem numbered; default is expected
+		to be Arabic -->
+<!-- InheritNum: Specifies for a nested list that the numbering
+		of ListItems should include the number of the item
+		within which they are nested (e.g., 1a and 1b within 1,
+		rather than a and b) -->
+<!-- Continuation: Where list numbering begins afresh (Restarts,
+		the default) or continues that of the immediately preceding 
+		list (Continues) -->
+<!-- Spacing: Whether the vertical space in the list should be
+		compressed -->
+
+
+<!ENTITY % orderedlist.attlist "INCLUDE">
+<![%orderedlist.attlist;[
+<!ATTLIST orderedlist
+		numeration	(arabic
+				|upperalpha
+				|loweralpha
+				|upperroman
+				|lowerroman)	#IMPLIED
+		inheritnum	(inherit
+				|ignore)	"ignore"
+		continuation	(continues
+				|restarts)	"restarts"
+		spacing		(normal
+				|compact)	#IMPLIED
+		%common.attrib;
+		%orderedlist.role.attrib;
+		%local.orderedlist.attrib;
+>
+<!--end of orderedlist.attlist-->]]>
+<!--end of orderedlist.module-->]]>
+
+<!ENTITY % listitem.module "INCLUDE">
+<![%listitem.module;[
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+
+<!ENTITY % listitem.element "INCLUDE">
+<![%listitem.element;[
+<!ELEMENT listitem ((%component.mix;)+)>
+<!--end of listitem.element-->]]>
+
+<!-- Override: Indicates the mark to be used for this ListItem
+		instead of the default mark or the mark specified by
+		the Mark attribute on the enclosing ItemizedList -->
+
+
+<!ENTITY % listitem.attlist "INCLUDE">
+<![%listitem.attlist;[
+<!ATTLIST listitem
+		override	CDATA		#IMPLIED
+		%common.attrib;
+		%listitem.role.attrib;
+		%local.listitem.attrib;
+>
+<!--end of listitem.attlist-->]]>
+<!--end of listitem.module-->]]>
+
+<!-- SegmentedList .................... -->
+<!ENTITY % segmentedlist.content.module "INCLUDE">
+<![%segmentedlist.content.module;[
+<!ENTITY % segmentedlist.module "INCLUDE">
+<![%segmentedlist.module;[
+<!ENTITY % local.segmentedlist.attrib "">
+<!ENTITY % segmentedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % segmentedlist.element "INCLUDE">
+<![%segmentedlist.element;[
+<!ELEMENT segmentedlist ((%formalobject.title.content;)?,
+                         segtitle, segtitle+,
+                         seglistitem+)>
+<!--end of segmentedlist.element-->]]>
+
+<!ENTITY % segmentedlist.attlist "INCLUDE">
+<![%segmentedlist.attlist;[
+<!ATTLIST segmentedlist
+		%common.attrib;
+		%segmentedlist.role.attrib;
+		%local.segmentedlist.attrib;
+>
+<!--end of segmentedlist.attlist-->]]>
+<!--end of segmentedlist.module-->]]>
+
+<!ENTITY % segtitle.module "INCLUDE">
+<![%segtitle.module;[
+<!ENTITY % local.segtitle.attrib "">
+<!ENTITY % segtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % segtitle.element "INCLUDE">
+<![%segtitle.element;[
+<!ELEMENT segtitle (%title.char.mix;)*>
+<!--end of segtitle.element-->]]>
+
+<!ENTITY % segtitle.attlist "INCLUDE">
+<![%segtitle.attlist;[
+<!ATTLIST segtitle
+		%common.attrib;
+		%segtitle.role.attrib;
+		%local.segtitle.attrib;
+>
+<!--end of segtitle.attlist-->]]>
+<!--end of segtitle.module-->]]>
+
+<!ENTITY % seglistitem.module "INCLUDE">
+<![%seglistitem.module;[
+<!ENTITY % local.seglistitem.attrib "">
+<!ENTITY % seglistitem.role.attrib "%role.attrib;">
+
+<!ENTITY % seglistitem.element "INCLUDE">
+<![%seglistitem.element;[
+<!ELEMENT seglistitem (seg, seg+)>
+<!--end of seglistitem.element-->]]>
+
+<!ENTITY % seglistitem.attlist "INCLUDE">
+<![%seglistitem.attlist;[
+<!ATTLIST seglistitem
+		%common.attrib;
+		%seglistitem.role.attrib;
+		%local.seglistitem.attrib;
+>
+<!--end of seglistitem.attlist-->]]>
+<!--end of seglistitem.module-->]]>
+
+<!ENTITY % seg.module "INCLUDE">
+<![%seg.module;[
+<!ENTITY % local.seg.attrib "">
+<!ENTITY % seg.role.attrib "%role.attrib;">
+
+<!ENTITY % seg.element "INCLUDE">
+<![%seg.element;[
+<!ELEMENT seg (%para.char.mix;)*>
+<!--end of seg.element-->]]>
+
+<!ENTITY % seg.attlist "INCLUDE">
+<![%seg.attlist;[
+<!ATTLIST seg
+		%common.attrib;
+		%seg.role.attrib;
+		%local.seg.attrib;
+>
+<!--end of seg.attlist-->]]>
+<!--end of seg.module-->]]>
+<!--end of segmentedlist.content.module-->]]>
+
+<!-- SimpleList ....................... -->
+
+<!ENTITY % simplelist.content.module "INCLUDE">
+<![%simplelist.content.module;[
+<!ENTITY % simplelist.module "INCLUDE">
+<![%simplelist.module;[
+<!ENTITY % local.simplelist.attrib "">
+<!ENTITY % simplelist.role.attrib "%role.attrib;">
+
+<!ENTITY % simplelist.element "INCLUDE">
+<![%simplelist.element;[
+<!ELEMENT simplelist (member+)>
+<!--end of simplelist.element-->]]>
+
+<!-- Columns: The number of columns the array should contain -->
+<!-- Type: How the Members of the SimpleList should be
+		formatted: Inline (members separated with commas etc.
+		inline), Vert (top to bottom in n Columns), or Horiz (in
+		the direction of text flow) in n Columns.  If Column
+		is 1 or implied, Type=Vert and Type=Horiz give the same
+		results. -->
+
+
+<!ENTITY % simplelist.attlist "INCLUDE">
+<![%simplelist.attlist;[
+<!ATTLIST simplelist
+		columns		CDATA		#IMPLIED
+		type		(inline
+				|vert
+				|horiz)		"vert"
+		%common.attrib;
+		%simplelist.role.attrib;
+		%local.simplelist.attrib;
+>
+<!--end of simplelist.attlist-->]]>
+<!--end of simplelist.module-->]]>
+
+<!ENTITY % member.module "INCLUDE">
+<![%member.module;[
+<!ENTITY % local.member.attrib "">
+<!ENTITY % member.role.attrib "%role.attrib;">
+
+<!ENTITY % member.element "INCLUDE">
+<![%member.element;[
+<!ELEMENT member (%para.char.mix;)*>
+<!--end of member.element-->]]>
+
+<!ENTITY % member.attlist "INCLUDE">
+<![%member.attlist;[
+<!ATTLIST member
+		%common.attrib;
+		%member.role.attrib;
+		%local.member.attrib;
+>
+<!--end of member.attlist-->]]>
+<!--end of member.module-->]]>
+<!--end of simplelist.content.module-->]]>
+
+<!-- VariableList ..................... -->
+
+<!ENTITY % variablelist.content.module "INCLUDE">
+<![%variablelist.content.module;[
+<!ENTITY % variablelist.module "INCLUDE">
+<![%variablelist.module;[
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+
+<!ENTITY % variablelist.element "INCLUDE">
+<![%variablelist.element;[
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!--end of variablelist.element-->]]>
+
+<!-- TermLength: Length beyond which the presentation engine
+		may consider the Term too long and select an alternate
+		presentation of the Term and, or, its associated ListItem. -->
+
+
+<!ENTITY % variablelist.attlist "INCLUDE">
+<![%variablelist.attlist;[
+<!ATTLIST variablelist
+		termlength	CDATA		#IMPLIED
+		%common.attrib;
+		%variablelist.role.attrib;
+		%local.variablelist.attrib;
+>
+<!--end of variablelist.attlist-->]]>
+<!--end of variablelist.module-->]]>
+
+<!ENTITY % varlistentry.module "INCLUDE">
+<![%varlistentry.module;[
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+
+<!ENTITY % varlistentry.element "INCLUDE">
+<![%varlistentry.element;[
+<!ELEMENT varlistentry (term+, listitem)>
+<!--end of varlistentry.element-->]]>
+
+<!ENTITY % varlistentry.attlist "INCLUDE">
+<![%varlistentry.attlist;[
+<!ATTLIST varlistentry
+		%common.attrib;
+		%varlistentry.role.attrib;
+		%local.varlistentry.attrib;
+>
+<!--end of varlistentry.attlist-->]]>
+<!--end of varlistentry.module-->]]>
+
+<!ENTITY % term.module "INCLUDE">
+<![%term.module;[
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+
+<!ENTITY % term.element "INCLUDE">
+<![%term.element;[
+<!ELEMENT term (%para.char.mix;)*>
+<!--end of term.element-->]]>
+
+<!ENTITY % term.attlist "INCLUDE">
+<![%term.attlist;[
+<!ATTLIST term
+		%common.attrib;
+		%term.role.attrib;
+		%local.term.attrib;
+>
+<!--end of term.attlist-->]]>
+<!--end of term.module-->]]>
+
+<!-- ListItem (defined above)-->
+<!--end of variablelist.content.module-->]]>
+
+<!-- CalloutList ...................... -->
+
+<!ENTITY % calloutlist.content.module "INCLUDE">
+<![%calloutlist.content.module;[
+<!ENTITY % calloutlist.module "INCLUDE">
+<![%calloutlist.module;[
+<!ENTITY % local.calloutlist.attrib "">
+<!ENTITY % calloutlist.role.attrib "%role.attrib;">
+
+<!ENTITY % calloutlist.element "INCLUDE">
+<![%calloutlist.element;[
+<!ELEMENT calloutlist ((%formalobject.title.content;)?, callout+)>
+<!--end of calloutlist.element-->]]>
+
+<!ENTITY % calloutlist.attlist "INCLUDE">
+<![%calloutlist.attlist;[
+<!ATTLIST calloutlist
+		%common.attrib;
+		%calloutlist.role.attrib;
+		%local.calloutlist.attrib;
+>
+<!--end of calloutlist.attlist-->]]>
+<!--end of calloutlist.module-->]]>
+
+<!ENTITY % callout.module "INCLUDE">
+<![%callout.module;[
+<!ENTITY % local.callout.attrib "">
+<!ENTITY % callout.role.attrib "%role.attrib;">
+
+<!ENTITY % callout.element "INCLUDE">
+<![%callout.element;[
+<!ELEMENT callout ((%component.mix;)+)>
+<!--end of callout.element-->]]>
+
+<!-- AreaRefs: IDs of one or more Areas or AreaSets described
+		by this Callout -->
+
+
+<!ENTITY % callout.attlist "INCLUDE">
+<![%callout.attlist;[
+<!ATTLIST callout
+		arearefs	IDREFS		#REQUIRED
+		%common.attrib;
+		%callout.role.attrib;
+		%local.callout.attrib;
+>
+<!--end of callout.attlist-->]]>
+<!--end of callout.module-->]]>
+<!--end of calloutlist.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Objects .............................................................. -->
+
+<!-- Examples etc. .................... -->
+
+<!ENTITY % example.module "INCLUDE">
+<![%example.module;[
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+
+<!ENTITY % example.element "INCLUDE">
+<![%example.element;[
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!--end of example.element-->]]>
+
+<!ENTITY % example.attlist "INCLUDE">
+<![%example.attlist;[
+<!ATTLIST example
+		%label.attrib;
+		%width.attrib;
+		%common.attrib;
+		%example.role.attrib;
+		%local.example.attrib;
+>
+<!--end of example.attlist-->]]>
+<!--end of example.module-->]]>
+
+<!ENTITY % informalexample.module "INCLUDE">
+<![%informalexample.module;[
+<!ENTITY % local.informalexample.attrib "">
+<!ENTITY % informalexample.role.attrib "%role.attrib;">
+
+<!ENTITY % informalexample.element "INCLUDE">
+<![%informalexample.element;[
+<!ELEMENT informalexample ((%example.mix;)+)>
+<!--end of informalexample.element-->]]>
+
+<!ENTITY % informalexample.attlist "INCLUDE">
+<![%informalexample.attlist;[
+<!ATTLIST informalexample
+		%width.attrib;
+		%common.attrib;
+		%informalexample.role.attrib;
+		%local.informalexample.attrib;
+>
+<!--end of informalexample.attlist-->]]>
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % programlistingco.module "INCLUDE">
+<![%programlistingco.module;[
+<!ENTITY % local.programlistingco.attrib "">
+<!ENTITY % programlistingco.role.attrib "%role.attrib;">
+
+<!ENTITY % programlistingco.element "INCLUDE">
+<![%programlistingco.element;[
+<!ELEMENT programlistingco (areaspec, programlisting, calloutlist*)>
+<!--end of programlistingco.element-->]]>
+
+<!ENTITY % programlistingco.attlist "INCLUDE">
+<![%programlistingco.attlist;[
+<!ATTLIST programlistingco
+		%common.attrib;
+		%programlistingco.role.attrib;
+		%local.programlistingco.attrib;
+>
+<!--end of programlistingco.attlist-->]]>
+<!-- CalloutList (defined above in Lists)-->
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % areaspec.content.module "INCLUDE">
+<![%areaspec.content.module;[
+<!ENTITY % areaspec.module "INCLUDE">
+<![%areaspec.module;[
+<!ENTITY % local.areaspec.attrib "">
+<!ENTITY % areaspec.role.attrib "%role.attrib;">
+
+<!ENTITY % areaspec.element "INCLUDE">
+<![%areaspec.element;[
+<!ELEMENT areaspec ((area|areaset)+)>
+<!--end of areaspec.element-->]]>
+
+<!-- Units: global unit of measure in which coordinates in
+		this spec are expressed:
+
+		- CALSPair "x1,y1 x2,y2": lower-left and upper-right 
+		coordinates in a rectangle describing repro area in which 
+		graphic is placed, where X and Y dimensions are each some 
+		number 0..10000 (taken from CALS graphic attributes)
+
+		- LineColumn "line column": line number and column number
+		at which to start callout text in "linespecific" content
+
+		- LineRange "startline endline": whole lines from startline
+		to endline in "linespecific" content
+
+		- LineColumnPair "line1 col1 line2 col2": starting and ending
+		points of area in "linespecific" content that starts at
+		first position and ends at second position (including the
+		beginnings of any intervening lines)
+
+		- Other: directive to look at value of OtherUnits attribute
+		to get implementation-specific keyword
+
+		The default is implementation-specific; usually dependent on 
+		the parent element (GraphicCO gets CALSPair, ProgramListingCO
+		and ScreenCO get LineColumn) -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % areaspec.attlist "INCLUDE">
+<![%areaspec.attlist;[
+<!ATTLIST areaspec
+		units		(calspair
+				|linecolumn
+				|linerange
+				|linecolumnpair
+				|other)		#IMPLIED
+		otherunits	NMTOKEN		#IMPLIED
+		%common.attrib;
+		%areaspec.role.attrib;
+		%local.areaspec.attrib;
+>
+<!--end of areaspec.attlist-->]]>
+<!--end of areaspec.module-->]]>
+
+<!ENTITY % area.module "INCLUDE">
+<![%area.module;[
+<!ENTITY % local.area.attrib "">
+<!ENTITY % area.role.attrib "%role.attrib;">
+
+<!ENTITY % area.element "INCLUDE">
+<![%area.element;[
+<!ELEMENT area EMPTY>
+<!--end of area.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+<!-- Units: unit of measure in which coordinates in this
+		area are expressed; inherits from AreaSet and AreaSpec -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % area.attlist "INCLUDE">
+<![%area.attlist;[
+<!ATTLIST area
+		%label.attrib;		
+		%linkends.attrib;
+		units		(calspair
+				|linecolumn
+				|linerange
+				|linecolumnpair
+				|other)		#IMPLIED
+		otherunits	NMTOKEN		#IMPLIED
+		coords		CDATA		#REQUIRED
+		%idreq.common.attrib;
+		%area.role.attrib;
+		%local.area.attrib;
+>
+<!--end of area.attlist-->]]>
+<!--end of area.module-->]]>
+
+<!ENTITY % areaset.module "INCLUDE">
+<![%areaset.module;[
+<!ENTITY % local.areaset.attrib "">
+<!ENTITY % areaset.role.attrib "%role.attrib;">
+
+<!ENTITY % areaset.element "INCLUDE">
+<![%areaset.element;[
+<!ELEMENT areaset (area+)>
+<!--end of areaset.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- Units: unit of measure in which coordinates in this
+		area are expressed; inherits from AreaSpec -->
+
+
+<!ENTITY % areaset.attlist "INCLUDE">
+<![%areaset.attlist;[
+<!ATTLIST areaset
+		%label.attrib;
+		units		(calspair
+				|linecolumn
+				|linerange
+				|linecolumnpair
+				|other)		#IMPLIED
+		otherunits	NMTOKEN		#IMPLIED
+		coords		CDATA		#REQUIRED
+		%idreq.common.attrib;
+		%areaset.role.attrib;
+		%local.areaset.attrib;
+>
+<!--end of areaset.attlist-->]]>
+<!--end of areaset.module-->]]>
+<!--end of areaspec.content.module-->]]>
+
+<!ENTITY % programlisting.module "INCLUDE">
+<![%programlisting.module;[
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+
+<!ENTITY % programlisting.element "INCLUDE">
+<![%programlisting.element;[
+<!ELEMENT programlisting (%para.char.mix; | co | lineannotation)*>
+<!--end of programlisting.element-->]]>
+
+<!ENTITY % programlisting.attlist "INCLUDE">
+<![%programlisting.attlist;[
+<!ATTLIST programlisting
+		%width.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%programlisting.role.attrib;
+		%local.programlisting.attrib;
+>
+<!--end of programlisting.attlist-->]]>
+<!--end of programlisting.module-->]]>
+
+<!ENTITY % literallayout.module "INCLUDE">
+<![%literallayout.module;[
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+
+<!ENTITY % literallayout.element "INCLUDE">
+<![%literallayout.element;[
+<!ELEMENT literallayout (%para.char.mix; | lineannotation | co)*>
+<!--end of literallayout.element-->]]>
+
+<!ENTITY % literallayout.attlist "INCLUDE">
+<![%literallayout.attlist;[
+<!ATTLIST literallayout
+		%width.attrib;
+		%linespecific.attrib;
+		class	(monospaced|normal)	"normal"
+		%common.attrib;
+		%literallayout.role.attrib;
+		%local.literallayout.attrib;
+>
+<!--end of literallayout.attlist-->]]>
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!--end of literallayout.module-->]]>
+
+<!ENTITY % screenco.module "INCLUDE">
+<![%screenco.module;[
+<!ENTITY % local.screenco.attrib "">
+<!ENTITY % screenco.role.attrib "%role.attrib;">
+
+<!ENTITY % screenco.element "INCLUDE">
+<![%screenco.element;[
+<!ELEMENT screenco (areaspec, screen, calloutlist*)>
+<!--end of screenco.element-->]]>
+
+<!ENTITY % screenco.attlist "INCLUDE">
+<![%screenco.attlist;[
+<!ATTLIST screenco
+		%common.attrib;
+		%screenco.role.attrib;
+		%local.screenco.attrib;
+>
+<!--end of screenco.attlist-->]]>
+<!-- AreaSpec (defined above)-->
+<!-- CalloutList (defined above in Lists)-->
+<!--end of screenco.module-->]]>
+
+<!ENTITY % screen.module "INCLUDE">
+<![%screen.module;[
+<!ENTITY % local.screen.attrib "">
+<!ENTITY % screen.role.attrib "%role.attrib;">
+
+<!ENTITY % screen.element "INCLUDE">
+<![%screen.element;[
+<!ELEMENT screen (%para.char.mix; | co | lineannotation)*>
+<!--end of screen.element-->]]>
+
+<!ENTITY % screen.attlist "INCLUDE">
+<![%screen.attlist;[
+<!ATTLIST screen
+		%width.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%screen.role.attrib;
+		%local.screen.attrib;
+>
+<!--end of screen.attlist-->]]>
+<!--end of screen.module-->]]>
+
+<!ENTITY % screenshot.content.module "INCLUDE">
+<![%screenshot.content.module;[
+<!ENTITY % screenshot.module "INCLUDE">
+<![%screenshot.module;[
+<!ENTITY % local.screenshot.attrib "">
+<!ENTITY % screenshot.role.attrib "%role.attrib;">
+
+<!ENTITY % screenshot.element "INCLUDE">
+<![%screenshot.element;[
+<!ELEMENT screenshot (screeninfo?,
+                      (graphic|graphicco
+                      |mediaobject|mediaobjectco))>
+<!--end of screenshot.element-->]]>
+
+<!ENTITY % screenshot.attlist "INCLUDE">
+<![%screenshot.attlist;[
+<!ATTLIST screenshot
+		%common.attrib;
+		%screenshot.role.attrib;
+		%local.screenshot.attrib;
+>
+<!--end of screenshot.attlist-->]]>
+<!--end of screenshot.module-->]]>
+
+<!ENTITY % screeninfo.module "INCLUDE">
+<![%screeninfo.module;[
+<!ENTITY % local.screeninfo.attrib "">
+<!ENTITY % screeninfo.role.attrib "%role.attrib;">
+
+<!ENTITY % screeninfo.element "INCLUDE">
+<![%screeninfo.element;[
+<!ELEMENT screeninfo (%para.char.mix;)*>
+<!--end of screeninfo.element-->]]>
+
+<!ENTITY % screeninfo.attlist "INCLUDE">
+<![%screeninfo.attlist;[
+<!ATTLIST screeninfo
+		%common.attrib;
+		%screeninfo.role.attrib;
+		%local.screeninfo.attrib;
+>
+<!--end of screeninfo.attlist-->]]>
+<!--end of screeninfo.module-->]]>
+<!--end of screenshot.content.module-->]]>
+
+<!-- Figures etc. ..................... -->
+
+<!ENTITY % figure.module "INCLUDE">
+<![%figure.module;[
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+
+<!ENTITY % figure.element "INCLUDE">
+<![%figure.element;[
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+		%link.char.class;)+)>
+<!--end of figure.element-->]]>
+
+<!-- Float: Whether the Figure is supposed to be rendered
+		where convenient (yes (1) value) or at the place it occurs
+		in the text (no (0) value, the default) -->
+
+
+<!ENTITY % figure.attlist "INCLUDE">
+<![%figure.attlist;[
+<!ATTLIST figure
+		float		%yesorno.attvals;	'0'
+		pgwide      	%yesorno.attvals;       #IMPLIED
+		%label.attrib;
+		%common.attrib;
+		%figure.role.attrib;
+		%local.figure.attrib;
+>
+<!--end of figure.attlist-->]]>
+<!--end of figure.module-->]]>
+
+<!ENTITY % informalfigure.module "INCLUDE">
+<![ %informalfigure.module; [
+<!ENTITY % local.informalfigure.attrib "">
+<!ENTITY % informalfigure.role.attrib "%role.attrib;">
+
+<!ENTITY % informalfigure.element "INCLUDE">
+<![ %informalfigure.element; [
+<!ELEMENT informalfigure ((%figure.mix; | %link.char.class;)+)>
+<!--end of informalfigure.element-->]]>
+
+<!ENTITY % informalfigure.attlist "INCLUDE">
+<![ %informalfigure.attlist; [
+<!--
+Float: Whether the Figure is supposed to be rendered
+where convenient (yes (1) value) or at the place it occurs
+in the text (no (0) value, the default)
+-->
+<!ATTLIST informalfigure
+		float		%yesorno.attvals;	"0"
+		pgwide      	%yesorno.attvals;       #IMPLIED
+		%label.attrib;
+		%common.attrib;
+		%informalfigure.role.attrib;
+		%local.informalfigure.attrib;
+>
+<!--end of informalfigure.attlist-->]]>
+<!--end of informalfigure.module-->]]>
+
+<!ENTITY % graphicco.module "INCLUDE">
+<![%graphicco.module;[
+<!ENTITY % local.graphicco.attrib "">
+<!ENTITY % graphicco.role.attrib "%role.attrib;">
+
+<!ENTITY % graphicco.element "INCLUDE">
+<![%graphicco.element;[
+<!ELEMENT graphicco (areaspec, graphic, calloutlist*)>
+<!--end of graphicco.element-->]]>
+
+<!ENTITY % graphicco.attlist "INCLUDE">
+<![%graphicco.attlist;[
+<!ATTLIST graphicco
+		%common.attrib;
+		%graphicco.role.attrib;
+		%local.graphicco.attrib;
+>
+<!--end of graphicco.attlist-->]]>
+<!-- AreaSpec (defined above in Examples)-->
+<!-- CalloutList (defined above in Lists)-->
+<!--end of graphicco.module-->]]>
+
+<!-- Graphical data can be the content of Graphic, or you can reference
+     an external file either as an entity (Entitref) or a filename
+     (Fileref). -->
+
+<!ENTITY % graphic.module "INCLUDE">
+<![%graphic.module;[
+<!ENTITY % local.graphic.attrib "">
+<!ENTITY % graphic.role.attrib "%role.attrib;">
+
+<!ENTITY % graphic.element "INCLUDE">
+<![%graphic.element;[
+<!ELEMENT graphic EMPTY>
+<!--end of graphic.element-->]]>
+
+<!ENTITY % graphic.attlist "INCLUDE">
+<![%graphic.attlist;[
+<!ATTLIST graphic
+		%graphics.attrib;
+		%common.attrib;
+		%graphic.role.attrib;
+		%local.graphic.attrib;
+>
+<!--end of graphic.attlist-->]]>
+<!--end of graphic.module-->]]>
+
+<!ENTITY % inlinegraphic.module "INCLUDE">
+<![%inlinegraphic.module;[
+<!ENTITY % local.inlinegraphic.attrib "">
+<!ENTITY % inlinegraphic.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinegraphic.element "INCLUDE">
+<![%inlinegraphic.element;[
+<!ELEMENT inlinegraphic EMPTY>
+<!--end of inlinegraphic.element-->]]>
+
+<!ENTITY % inlinegraphic.attlist "INCLUDE">
+<![%inlinegraphic.attlist;[
+<!ATTLIST inlinegraphic
+		%graphics.attrib;
+		%common.attrib;
+		%inlinegraphic.role.attrib;
+		%local.inlinegraphic.attrib;
+>
+<!--end of inlinegraphic.attlist-->]]>
+<!--end of inlinegraphic.module-->]]>
+
+<!ENTITY % mediaobject.content.module "INCLUDE">
+<![ %mediaobject.content.module; [
+
+<!ENTITY % mediaobject.module "INCLUDE">
+<![ %mediaobject.module; [
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobject.element "INCLUDE">
+<![ %mediaobject.element; [
+<!ELEMENT mediaobject (objectinfo?,
+                           (%mediaobject.mix;),
+			   (%mediaobject.mix;|textobject)*,
+			   caption?)>
+<!--end of mediaobject.element-->]]>
+
+<!ENTITY % mediaobject.attlist "INCLUDE">
+<![ %mediaobject.attlist; [
+<!ATTLIST mediaobject
+		%common.attrib;
+		%mediaobject.role.attrib;
+		%local.mediaobject.attrib;
+>
+<!--end of mediaobject.attlist-->]]>
+<!--end of mediaobject.module-->]]>
+
+<!ENTITY % inlinemediaobject.module "INCLUDE">
+<![ %inlinemediaobject.module; [
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinemediaobject.element "INCLUDE">
+<![ %inlinemediaobject.element; [
+<!ELEMENT inlinemediaobject (objectinfo?,
+                	         (%mediaobject.mix;),
+				 (%mediaobject.mix;|textobject)*)>
+<!--end of inlinemediaobject.element-->]]>
+
+<!ENTITY % inlinemediaobject.attlist "INCLUDE">
+<![ %inlinemediaobject.attlist; [
+<!ATTLIST inlinemediaobject
+		%common.attrib;
+		%inlinemediaobject.role.attrib;
+		%local.inlinemediaobject.attrib;
+>
+<!--end of inlinemediaobject.attlist-->]]>
+<!--end of inlinemediaobject.module-->]]>
+
+<!ENTITY % videoobject.module "INCLUDE">
+<![ %videoobject.module; [
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+
+<!ENTITY % videoobject.element "INCLUDE">
+<![ %videoobject.element; [
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!--end of videoobject.element-->]]>
+
+<!ENTITY % videoobject.attlist "INCLUDE">
+<![ %videoobject.attlist; [
+<!ATTLIST videoobject
+		%common.attrib;
+		%videoobject.role.attrib;
+		%local.videoobject.attrib;
+>
+<!--end of videoobject.attlist-->]]>
+<!--end of videoobject.module-->]]>
+
+<!ENTITY % audioobject.module "INCLUDE">
+<![ %audioobject.module; [
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+
+<!ENTITY % audioobject.element "INCLUDE">
+<![ %audioobject.element; [
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!--end of audioobject.element-->]]>
+
+<!ENTITY % audioobject.attlist "INCLUDE">
+<![ %audioobject.attlist; [
+<!ATTLIST audioobject
+		%common.attrib;
+		%audioobject.role.attrib;
+		%local.audioobject.attrib;
+>
+<!--end of audioobject.attlist-->]]>
+<!--end of audioobject.module-->]]>
+
+<!ENTITY % imageobject.module "INCLUDE">
+<![ %imageobject.module; [
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobject.element "INCLUDE">
+<![ %imageobject.element; [
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!--end of imageobject.element-->]]>
+
+<!ENTITY % imageobject.attlist "INCLUDE">
+<![ %imageobject.attlist; [
+<!ATTLIST imageobject
+		%common.attrib;
+		%imageobject.role.attrib;
+		%local.imageobject.attrib;
+>
+<!--end of imageobject.attlist-->]]>
+<!--end of imageobject.module-->]]>
+
+<!ENTITY % textobject.module "INCLUDE">
+<![ %textobject.module; [
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+
+<!ENTITY % textobject.element "INCLUDE">
+<![ %textobject.element; [
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!--end of textobject.element-->]]>
+
+<!ENTITY % textobject.attlist "INCLUDE">
+<![ %textobject.attlist; [
+<!ATTLIST textobject
+		%common.attrib;
+		%textobject.role.attrib;
+		%local.textobject.attrib;
+>
+<!--end of textobject.attlist-->]]>
+<!--end of textobject.module-->]]>
+
+<!ENTITY % objectinfo.module "INCLUDE">
+<![ %objectinfo.module; [
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % objectinfo.element "INCLUDE">
+<![ %objectinfo.element; [
+<!ELEMENT objectinfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of objectinfo.element-->]]>
+
+<!ENTITY % objectinfo.attlist "INCLUDE">
+<![ %objectinfo.attlist; [
+<!ATTLIST objectinfo
+		%common.attrib;
+		%objectinfo.role.attrib;
+		%local.objectinfo.attrib;
+>
+<!--end of objectinfo.attlist-->]]>
+<!--end of objectinfo.module-->]]>
+
+<!--EntityRef: Name of an external entity containing the content
+	of the object data-->
+<!--FileRef: Filename, qualified by a pathname if desired, 
+	designating the file containing the content of the object data-->
+<!--Format: Notation of the element content, if any-->
+<!--SrcCredit: Information about the source of the image-->
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+	"
+	entityref	ENTITY		#IMPLIED
+	fileref 	CDATA		#IMPLIED
+	format		(%notation.class;)
+					#IMPLIED
+	srccredit	CDATA		#IMPLIED
+	%local.objectdata.attrib;"
+>
+
+<!ENTITY % videodata.module "INCLUDE">
+<![ %videodata.module; [
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+
+<!ENTITY % videodata.element "INCLUDE">
+<![ %videodata.element; [
+<!ELEMENT videodata EMPTY>
+<!--end of videodata.element-->]]>
+
+<!ENTITY % videodata.attlist "INCLUDE">
+<![ %videodata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means 
+	application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST videodata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%videodata.role.attrib;
+		%local.videodata.attrib;
+>
+<!--end of videodata.attlist-->]]>
+<!--end of videodata.module-->]]>
+
+<!ENTITY % audiodata.module "INCLUDE">
+<![ %audiodata.module; [
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+
+<!ENTITY % audiodata.element "INCLUDE">
+<![ %audiodata.element; [
+<!ELEMENT audiodata EMPTY>
+<!--end of audiodata.element-->]]>
+
+<!ENTITY % audiodata.attlist "INCLUDE">
+<![ %audiodata.attlist; [
+<!ATTLIST audiodata
+		%common.attrib;
+		%objectdata.attrib;
+		%local.audiodata.attrib;
+		%audiodata.role.attrib;
+>
+<!--end of audiodata.attlist-->]]>
+<!--end of audiodata.module-->]]>
+
+<!ENTITY % imagedata.module "INCLUDE">
+<![ %imagedata.module; [
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+
+<!ENTITY % imagedata.element "INCLUDE">
+<![ %imagedata.element; [
+<!ELEMENT imagedata EMPTY>
+<!--end of imagedata.element-->]]>
+
+<!ENTITY % imagedata.attlist "INCLUDE">
+<![ %imagedata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means 
+	application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST imagedata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%local.imagedata.attrib;
+		%imagedata.role.attrib;
+>
+<!--end of imagedata.attlist-->]]>
+<!--end of imagedata.module-->]]>
+
+<!ENTITY % caption.module "INCLUDE">
+<![ %caption.module; [
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+
+<!ENTITY % caption.element "INCLUDE">
+<![ %caption.element; [
+<!ELEMENT caption (%textobject.mix;)*>
+<!--end of caption.element-->]]>
+
+<!ENTITY % caption.attlist "INCLUDE">
+<![ %caption.attlist; [
+<!ATTLIST caption
+		%common.attrib;
+		%local.caption.attrib;
+		%caption.role.attrib;
+>
+<!--end of caption.attlist-->]]>
+<!--end of caption.module-->]]>
+
+<!ENTITY % mediaobjectco.module "INCLUDE">
+<![ %mediaobjectco.module; [
+<!ENTITY % local.mediaobjectco.attrib "">
+<!ENTITY % mediaobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobjectco.element "INCLUDE">
+<![ %mediaobjectco.element; [
+<!ELEMENT mediaobjectco (objectinfo?, imageobjectco,
+			   (imageobjectco|textobject)*)>
+<!--end of mediaobjectco.element-->]]>
+
+<!ENTITY % mediaobjectco.attlist "INCLUDE">
+<![ %mediaobjectco.attlist; [
+<!ATTLIST mediaobjectco
+		%common.attrib;
+		%mediaobjectco.role.attrib;
+		%local.mediaobjectco.attrib;
+>
+<!--end of mediaobjectco.attlist-->]]>
+<!--end of mediaobjectco.module-->]]>
+
+<!ENTITY % imageobjectco.module "INCLUDE">
+<![ %imageobjectco.module; [
+<!ENTITY % local.imageobjectco.attrib "">
+<!ENTITY % imageobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobjectco.element "INCLUDE">
+<![ %imageobjectco.element; [
+<!ELEMENT imageobjectco (areaspec, imageobject, calloutlist*)>
+<!--end of imageobjectco.element-->]]>
+
+<!ENTITY % imageobjectco.attlist "INCLUDE">
+<![ %imageobjectco.attlist; [
+<!ATTLIST imageobjectco
+		%common.attrib;
+		%imageobjectco.role.attrib;
+		%local.imageobjectco.attrib;
+>
+<!--end of imageobjectco.attlist-->]]>
+<!--end of imageobjectco.module-->]]>
+<!--end of mediaobject.content.module-->]]>
+
+<!-- Equations ........................ -->
+
+<!-- This PE provides a mechanism for replacing equation content, -->
+<!-- perhaps adding a new or different model (e.g., MathML) -->
+<!ENTITY % equation.content "(alt?, (graphic+|mediaobject+))">
+<!ENTITY % inlineequation.content "(alt?, (graphic+|inlinemediaobject+))">
+
+<!ENTITY % equation.module "INCLUDE">
+<![%equation.module;[
+<!ENTITY % local.equation.attrib "">
+<!ENTITY % equation.role.attrib "%role.attrib;">
+
+<!ENTITY % equation.element "INCLUDE">
+<![%equation.element;[
+<!ELEMENT equation ((%formalobject.title.content;)?, (informalequation |
+		%equation.content;))>
+<!--end of equation.element-->]]>
+
+<!ENTITY % equation.attlist "INCLUDE">
+<![%equation.attlist;[
+<!ATTLIST equation
+		%label.attrib;
+	 	%common.attrib;
+		%equation.role.attrib;
+		%local.equation.attrib;
+>
+<!--end of equation.attlist-->]]>
+<!--end of equation.module-->]]>
+
+<!ENTITY % informalequation.module "INCLUDE">
+<![%informalequation.module;[
+<!ENTITY % local.informalequation.attrib "">
+<!ENTITY % informalequation.role.attrib "%role.attrib;">
+
+<!ENTITY % informalequation.element "INCLUDE">
+<![%informalequation.element;[
+<!ELEMENT informalequation (%equation.content;) >
+<!--end of informalequation.element-->]]>
+
+<!ENTITY % informalequation.attlist "INCLUDE">
+<![%informalequation.attlist;[
+<!ATTLIST informalequation
+		%common.attrib;
+		%informalequation.role.attrib;
+		%local.informalequation.attrib;
+>
+<!--end of informalequation.attlist-->]]>
+<!--end of informalequation.module-->]]>
+
+<!ENTITY % inlineequation.module "INCLUDE">
+<![%inlineequation.module;[
+<!ENTITY % local.inlineequation.attrib "">
+<!ENTITY % inlineequation.role.attrib "%role.attrib;">
+
+<!ENTITY % inlineequation.element "INCLUDE">
+<![%inlineequation.element;[
+<!ELEMENT inlineequation (%inlineequation.content;)>
+<!--end of inlineequation.element-->]]>
+
+<!ENTITY % inlineequation.attlist "INCLUDE">
+<![%inlineequation.attlist;[
+<!ATTLIST inlineequation
+		%common.attrib;
+		%inlineequation.role.attrib;
+		%local.inlineequation.attrib;
+>
+<!--end of inlineequation.attlist-->]]>
+<!--end of inlineequation.module-->]]>
+
+<!ENTITY % alt.module "INCLUDE">
+<![%alt.module;[
+<!ENTITY % local.alt.attrib "">
+<!ENTITY % alt.role.attrib "%role.attrib;">
+
+<!ENTITY % alt.element "INCLUDE">
+<![%alt.element;[
+<!ELEMENT alt (#PCDATA)>
+<!--end of alt.element-->]]>
+
+<!ENTITY % alt.attlist "INCLUDE">
+<![%alt.attlist;[
+<!ATTLIST alt 
+		%common.attrib;
+		%alt.role.attrib;
+		%local.alt.attrib;
+>
+<!--end of alt.attlist-->]]>
+<!--end of alt.module-->]]>
+
+<!-- Tables ........................... -->
+
+<!ENTITY % table.module "INCLUDE">
+<![%table.module;[
+
+<!-- Choose a table model. CALS is off by default, so the default -->
+<!-- is now the SGML Open Exchange table model.                   -->
+
+<!ENTITY % cals.table.module "INCLUDE">
+<![%cals.table.module;[
+<!ENTITY % exchange.table.module "IGNORE">
+]]>
+<!ENTITY % exchange.table.module "INCLUDE">
+
+<!ENTITY % tables.role.attrib "%role.attrib;">
+
+<![%cals.table.module;[
+<!-- Add label and role attributes to table and informaltable -->
+<!ENTITY % bodyatt "%label.attrib;">
+
+<!-- Add common attributes to Table, TGroup, TBody, THead, TFoot, Row, 
+     EntryTbl, and Entry (and InformalTable element). -->
+<!ENTITY % secur
+	"%common.attrib;
+	%tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+	"%bodyatt;
+	%secur;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+	"((%formalobject.title.content;), (%ndxterm.class;)*,
+          (graphic+|mediaobject+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "%para.char.mix; | %tabentry.mix;">
+
+<!-- Reference SGML Open Exchange Table Model -->
+<!ENTITY % tablemodel 
+  PUBLIC "-//Norman Walsh//DTD CALS Table Model XML V3.1.7//EN" 
+  "calstblx.dtd">
+]]>
+
+<![%exchange.table.module;[
+<!-- Add common attributes and the Label attribute to Table and -->
+<!-- InformalTable.                                             -->
+<!ENTITY % bodyatt 
+	"%common.attrib;
+	%label.attrib;
+	%tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+	"%bodyatt;">
+
+<!-- Add common attributes to TGroup, ColSpec, TBody, THead, Row, Entry -->
+
+<!ENTITY % tbl.tgroup.att       "%common.attrib;">
+<!ENTITY % tbl.colspec.att      "%common.attrib;">
+<!ENTITY % tbl.tbody.att        "%common.attrib;">
+<!ENTITY % tbl.thead.att        "%common.attrib;">
+<!ENTITY % tbl.row.att          "%common.attrib;">
+<!ENTITY % tbl.entry.att        "%common.attrib;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+	"((%formalobject.title.content;),
+          (%ndxterm.class;)*,
+          (graphic+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+
+<!ENTITY % tablemodel 
+  PUBLIC "-//Norman Walsh//DTD Exchange Table Model 19960430 XML V3.1.7//EN"
+  "soextblx.dtd">
+]]>
+
+%tablemodel;
+
+<!--end of table.module-->]]>
+
+<!ENTITY % informaltable.module "INCLUDE">
+<![%informaltable.module;[
+
+<!-- Note that InformalTable is dependent on some of the entity
+     declarations that customize Table. -->
+
+<!ENTITY % local.informaltable.attrib "">
+
+<!ENTITY % informaltable.element "INCLUDE">
+<![%informaltable.element;[
+<!ELEMENT informaltable (graphic+|mediaobject+|tgroup+)>
+<!--end of informaltable.element-->]]>
+
+<!-- Frame, Colsep, and Rowsep must be repeated because
+		they are not in entities in the table module. -->
+<!-- includes TabStyle, ToCentry, ShortEntry, 
+				Orient, PgWide -->
+<!-- includes Label -->
+<!-- includes common attributes -->
+
+
+<!ENTITY % informaltable.attlist "INCLUDE">
+<![%informaltable.attlist;[
+<!ATTLIST informaltable
+		frame		(top
+				|bottom
+				|topbot
+				|all
+				|sides
+				|none)			#IMPLIED
+		colsep		%yesorno.attvals;	#IMPLIED
+		rowsep		%yesorno.attvals;	#IMPLIED
+		%common.table.attribs;
+		%tbl.table.att;
+		%local.informaltable.attrib;
+>
+<!--end of informaltable.attlist-->]]>
+<!--end of informaltable.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Synopses ............................................................. -->
+
+<!-- Synopsis ......................... -->
+
+<!ENTITY % synopsis.module "INCLUDE">
+<![%synopsis.module;[
+<!ENTITY % local.synopsis.attrib "">
+<!ENTITY % synopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % synopsis.element "INCLUDE">
+<![%synopsis.element;[
+<!ELEMENT synopsis (%para.char.mix; | graphic | mediaobject | lineannotation | co)*>
+<!--end of synopsis.element-->]]>
+
+<!ENTITY % synopsis.attlist "INCLUDE">
+<![%synopsis.attlist;[
+<!ATTLIST synopsis
+		%label.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%synopsis.role.attrib;
+		%local.synopsis.attrib;
+>
+<!--end of synopsis.attlist-->]]>
+
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!--end of synopsis.module-->]]>
+
+<!-- CmdSynopsis ...................... -->
+
+<!ENTITY % cmdsynopsis.content.module "INCLUDE">
+<![%cmdsynopsis.content.module;[
+<!ENTITY % cmdsynopsis.module "INCLUDE">
+<![%cmdsynopsis.module;[
+<!ENTITY % local.cmdsynopsis.attrib "">
+<!ENTITY % cmdsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % cmdsynopsis.element "INCLUDE">
+<![%cmdsynopsis.element;[
+<!ELEMENT cmdsynopsis ((command | arg | group | sbr)+, synopfragment*)>
+<!--end of cmdsynopsis.element-->]]>
+
+<!-- Sepchar: Character that should separate command and all 
+		top-level arguments; alternate value might be e.g., &Delta; -->
+
+
+<!ENTITY % cmdsynopsis.attlist "INCLUDE">
+<![%cmdsynopsis.attlist;[
+<!ATTLIST cmdsynopsis
+		%label.attrib;
+		sepchar		CDATA		" "
+		cmdlength	CDATA		#IMPLIED
+		%common.attrib;
+		%cmdsynopsis.role.attrib;
+		%local.cmdsynopsis.attrib;
+>
+<!--end of cmdsynopsis.attlist-->]]>
+<!--end of cmdsynopsis.module-->]]>
+
+<!ENTITY % arg.module "INCLUDE">
+<![%arg.module;[
+<!ENTITY % local.arg.attrib "">
+<!ENTITY % arg.role.attrib "%role.attrib;">
+
+<!ENTITY % arg.element "INCLUDE">
+<![%arg.element;[
+<!ELEMENT arg (#PCDATA 
+		| arg 
+		| group 
+		| option 
+		| synopfragmentref 
+		| replaceable
+		| sbr)*>
+<!--end of arg.element-->]]>
+
+<!-- Choice: Whether Arg must be supplied: Opt (optional to 
+		supply, e.g. [arg]; the default), Req (required to supply, 
+		e.g. {arg}), or Plain (required to supply, e.g. arg) -->
+<!-- Rep: whether Arg is repeatable: Norepeat (e.g. arg without 
+		ellipsis; the default), or Repeat (e.g. arg...) -->
+
+
+<!ENTITY % arg.attlist "INCLUDE">
+<![%arg.attlist;[
+<!ATTLIST arg
+		choice		(opt
+				|req
+				|plain)		'opt'
+		rep		(norepeat
+				|repeat)	'norepeat'
+		%common.attrib;
+		%arg.role.attrib;
+		%local.arg.attrib;
+>
+<!--end of arg.attlist-->]]>
+<!--end of arg.module-->]]>
+
+<!ENTITY % group.module "INCLUDE">
+<![%group.module;[
+
+<!ENTITY % local.group.attrib "">
+<!ENTITY % group.role.attrib "%role.attrib;">
+
+<!ENTITY % group.element "INCLUDE">
+<![%group.element;[
+<!ELEMENT group ((arg | group | option | synopfragmentref 
+		| replaceable | sbr)+)>
+<!--end of group.element-->]]>
+
+<!-- Choice: Whether Group must be supplied: Opt (optional to
+		supply, e.g.  [g1|g2|g3]; the default), Req (required to
+		supply, e.g.  {g1|g2|g3}), Plain (required to supply,
+		e.g.  g1|g2|g3), OptMult (can supply zero or more, e.g.
+		[[g1|g2|g3]]), or ReqMult (must supply one or more, e.g.
+		{{g1|g2|g3}}) -->
+<!-- Rep: whether Group is repeatable: Norepeat (e.g. group 
+		without ellipsis; the default), or Repeat (e.g. group...) -->
+
+
+<!ENTITY % group.attlist "INCLUDE">
+<![%group.attlist;[
+<!ATTLIST group
+		choice		(opt
+				|req
+				|plain)         'opt'
+		rep		(norepeat
+				|repeat)	'norepeat'
+		%common.attrib;
+		%group.role.attrib;
+		%local.group.attrib;
+>
+<!--end of group.attlist-->]]>
+<!--end of group.module-->]]>
+
+<!ENTITY % sbr.module "INCLUDE">
+<![%sbr.module;[
+<!ENTITY % local.sbr.attrib "">
+<!-- Synopsis break -->
+<!ENTITY % sbr.role.attrib "%role.attrib;">
+
+<!ENTITY % sbr.element "INCLUDE">
+<![%sbr.element;[
+<!ELEMENT sbr EMPTY>
+<!--end of sbr.element-->]]>
+
+<!ENTITY % sbr.attlist "INCLUDE">
+<![%sbr.attlist;[
+<!ATTLIST sbr
+		%common.attrib;
+		%sbr.role.attrib;
+		%local.sbr.attrib;
+>
+<!--end of sbr.attlist-->]]>
+<!--end of sbr.module-->]]>
+
+<!ENTITY % synopfragmentref.module "INCLUDE">
+<![%synopfragmentref.module;[
+<!ENTITY % local.synopfragmentref.attrib "">
+<!ENTITY % synopfragmentref.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragmentref.element "INCLUDE">
+<![%synopfragmentref.element;[
+<!ELEMENT synopfragmentref (#PCDATA)>
+<!--end of synopfragmentref.element-->]]>
+
+<!-- to SynopFragment of complex synopsis
+			material for separate referencing -->
+
+
+<!ENTITY % synopfragmentref.attlist "INCLUDE">
+<![%synopfragmentref.attlist;[
+<!ATTLIST synopfragmentref
+		%linkendreq.attrib;		%common.attrib;
+		%synopfragmentref.role.attrib;
+		%local.synopfragmentref.attrib;
+>
+<!--end of synopfragmentref.attlist-->]]>
+<!--end of synopfragmentref.module-->]]>
+
+<!ENTITY % synopfragment.module "INCLUDE">
+<![%synopfragment.module;[
+<!ENTITY % local.synopfragment.attrib "">
+<!ENTITY % synopfragment.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragment.element "INCLUDE">
+<![%synopfragment.element;[
+<!ELEMENT synopfragment ((arg | group)+)>
+<!--end of synopfragment.element-->]]>
+
+<!ENTITY % synopfragment.attlist "INCLUDE">
+<![%synopfragment.attlist;[
+<!ATTLIST synopfragment
+		%idreq.common.attrib;
+		%synopfragment.role.attrib;
+		%local.synopfragment.attrib;
+>
+<!--end of synopfragment.attlist-->]]>
+<!--end of synopfragment.module-->]]>
+
+<!-- Command (defined in the Inlines section, below)-->
+<!-- Option (defined in the Inlines section, below)-->
+<!-- Replaceable (defined in the Inlines section, below)-->
+<!--end of cmdsynopsis.content.module-->]]>
+
+<!-- FuncSynopsis ..................... -->
+
+<!ENTITY % funcsynopsis.content.module "INCLUDE">
+<![%funcsynopsis.content.module;[
+<!ENTITY % funcsynopsis.module "INCLUDE">
+<![%funcsynopsis.module;[
+
+<!ENTITY % local.funcsynopsis.attrib "">
+<!ENTITY % funcsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsis.element "INCLUDE">
+<![%funcsynopsis.element;[
+<!ELEMENT funcsynopsis ((funcsynopsisinfo | funcprototype)+)>
+<!--end of funcsynopsis.element-->]]>
+
+<!ENTITY % funcsynopsis.attlist "INCLUDE">
+<![%funcsynopsis.attlist;[
+<!ATTLIST funcsynopsis
+		%label.attrib;
+		%common.attrib;
+		%funcsynopsis.role.attrib;
+		%local.funcsynopsis.attrib;
+>
+<!--end of funcsynopsis.attlist-->]]>
+<!--end of funcsynopsis.module-->]]>
+
+<!ENTITY % funcsynopsisinfo.module "INCLUDE">
+<![%funcsynopsisinfo.module;[
+<!ENTITY % local.funcsynopsisinfo.attrib "">
+<!ENTITY % funcsynopsisinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsisinfo.element "INCLUDE">
+<![%funcsynopsisinfo.element;[
+<!ELEMENT funcsynopsisinfo (%cptr.char.mix; | lineannotation)*>
+<!--end of funcsynopsisinfo.element-->]]>
+
+<!ENTITY % funcsynopsisinfo.attlist "INCLUDE">
+<![%funcsynopsisinfo.attlist;[
+<!ATTLIST funcsynopsisinfo
+		%linespecific.attrib;
+		%common.attrib;
+		%funcsynopsisinfo.role.attrib;
+		%local.funcsynopsisinfo.attrib;
+>
+<!--end of funcsynopsisinfo.attlist-->]]>
+<!--end of funcsynopsisinfo.module-->]]>
+
+<!ENTITY % funcprototype.module "INCLUDE">
+<![%funcprototype.module;[
+<!ENTITY % local.funcprototype.attrib "">
+<!ENTITY % funcprototype.role.attrib "%role.attrib;">
+
+<!ENTITY % funcprototype.element "INCLUDE">
+<![%funcprototype.element;[
+<!ELEMENT funcprototype (funcdef, (void | varargs | paramdef+))>
+<!--end of funcprototype.element-->]]>
+
+<!ENTITY % funcprototype.attlist "INCLUDE">
+<![%funcprototype.attlist;[
+<!ATTLIST funcprototype
+		%common.attrib;
+		%funcprototype.role.attrib;
+		%local.funcprototype.attrib;
+>
+<!--end of funcprototype.attlist-->]]>
+<!--end of funcprototype.module-->]]>
+
+<!ENTITY % funcdef.module "INCLUDE">
+<![%funcdef.module;[
+<!ENTITY % local.funcdef.attrib "">
+<!ENTITY % funcdef.role.attrib "%role.attrib;">
+
+<!ENTITY % funcdef.element "INCLUDE">
+<![%funcdef.element;[
+<!ELEMENT funcdef (#PCDATA 
+		| replaceable 
+		| function)*>
+<!--end of funcdef.element-->]]>
+
+<!ENTITY % funcdef.attlist "INCLUDE">
+<![%funcdef.attlist;[
+<!ATTLIST funcdef
+		%common.attrib;
+		%funcdef.role.attrib;
+		%local.funcdef.attrib;
+>
+<!--end of funcdef.attlist-->]]>
+<!--end of funcdef.module-->]]>
+
+<!ENTITY % void.module "INCLUDE">
+<![%void.module;[
+<!ENTITY % local.void.attrib "">
+<!ENTITY % void.role.attrib "%role.attrib;">
+
+<!ENTITY % void.element "INCLUDE">
+<![%void.element;[
+<!ELEMENT void EMPTY>
+<!--end of void.element-->]]>
+
+<!ENTITY % void.attlist "INCLUDE">
+<![%void.attlist;[
+<!ATTLIST void
+		%common.attrib;
+		%void.role.attrib;
+		%local.void.attrib;
+>
+<!--end of void.attlist-->]]>
+<!--end of void.module-->]]>
+
+<!ENTITY % varargs.module "INCLUDE">
+<![%varargs.module;[
+<!ENTITY % local.varargs.attrib "">
+<!ENTITY % varargs.role.attrib "%role.attrib;">
+
+<!ENTITY % varargs.element "INCLUDE">
+<![%varargs.element;[
+<!ELEMENT varargs EMPTY>
+<!--end of varargs.element-->]]>
+
+<!ENTITY % varargs.attlist "INCLUDE">
+<![%varargs.attlist;[
+<!ATTLIST varargs
+		%common.attrib;
+		%varargs.role.attrib;
+		%local.varargs.attrib;
+>
+<!--end of varargs.attlist-->]]>
+<!--end of varargs.module-->]]>
+
+<!-- Processing assumes that only one Parameter will appear in a
+     ParamDef, and that FuncParams will be used at most once, for
+     providing information on the "inner parameters" for parameters that
+     are pointers to functions. -->
+
+<!ENTITY % paramdef.module "INCLUDE">
+<![%paramdef.module;[
+<!ENTITY % local.paramdef.attrib "">
+<!ENTITY % paramdef.role.attrib "%role.attrib;">
+
+<!ENTITY % paramdef.element "INCLUDE">
+<![%paramdef.element;[
+<!ELEMENT paramdef (#PCDATA 
+		| replaceable 
+		| parameter 
+		| funcparams)*>
+<!--end of paramdef.element-->]]>
+
+<!ENTITY % paramdef.attlist "INCLUDE">
+<![%paramdef.attlist;[
+<!ATTLIST paramdef
+		%common.attrib;
+		%paramdef.role.attrib;
+		%local.paramdef.attrib;
+>
+<!--end of paramdef.attlist-->]]>
+<!--end of paramdef.module-->]]>
+
+<!ENTITY % funcparams.module "INCLUDE">
+<![%funcparams.module;[
+<!ENTITY % local.funcparams.attrib "">
+<!ENTITY % funcparams.role.attrib "%role.attrib;">
+
+<!ENTITY % funcparams.element "INCLUDE">
+<![%funcparams.element;[
+<!ELEMENT funcparams (%cptr.char.mix;)*>
+<!--end of funcparams.element-->]]>
+
+<!ENTITY % funcparams.attlist "INCLUDE">
+<![%funcparams.attlist;[
+<!ATTLIST funcparams
+		%common.attrib;
+		%funcparams.role.attrib;
+		%local.funcparams.attrib;
+>
+<!--end of funcparams.attlist-->]]>
+<!--end of funcparams.module-->]]>
+
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!-- Replaceable (defined in the Inlines section, below)-->
+<!-- Function (defined in the Inlines section, below)-->
+<!-- Parameter (defined in the Inlines section, below)-->
+<!--end of funcsynopsis.content.module-->]]>
+
+<!-- ClassSynopsis ..................... -->
+
+<!ENTITY % classsynopsis.content.module "INCLUDE">
+<![%classsynopsis.content.module;[
+
+<!ENTITY % classsynopsis.module "INCLUDE">
+<![%classsynopsis.module;[
+<!ENTITY % local.classsynopsis.attrib "">
+<!ENTITY % classsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % classsynopsis.element "INCLUDE">
+<![%classsynopsis.element;[
+<!ELEMENT classsynopsis ((ooclass|oointerface|ooexception)+,
+                         (classsynopsisinfo
+                          |fieldsynopsis|%method.synop.class;)*)>
+<!--end of classsynopsis.element-->]]>
+
+<!ENTITY % classsynopsis.attlist "INCLUDE">
+<![%classsynopsis.attlist;[
+<!ATTLIST classsynopsis
+	%common.attrib;
+	%classsynopsis.role.attrib;
+	%local.classsynopsis.attrib;
+	language	CDATA	#IMPLIED
+	class	(class|interface)	"class"
+>
+<!--end of classsynopsis.attlist-->]]>
+<!--end of classsynopsis.module-->]]>
+
+<!ENTITY % classsynopsisinfo.module "INCLUDE">
+<![ %classsynopsisinfo.module; [
+<!ENTITY % local.classsynopsisinfo.attrib "">
+<!ENTITY % classsynopsisinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % classsynopsisinfo.element "INCLUDE">
+<![ %classsynopsisinfo.element; [
+<!ELEMENT classsynopsisinfo (%cptr.char.mix; | lineannotation)*>
+<!--end of classsynopsisinfo.element-->]]>
+
+<!ENTITY % classsynopsisinfo.attlist "INCLUDE">
+<![ %classsynopsisinfo.attlist; [
+<!ATTLIST classsynopsisinfo
+		%linespecific.attrib;
+		%common.attrib;
+		%classsynopsisinfo.role.attrib;
+		%local.classsynopsisinfo.attrib;
+>
+<!--end of classsynopsisinfo.attlist-->]]>
+<!--end of classsynopsisinfo.module-->]]>
+
+<!ENTITY % ooclass.module "INCLUDE">
+<![%ooclass.module;[
+<!ENTITY % local.ooclass.attrib "">
+<!ENTITY % ooclass.role.attrib "%role.attrib;">
+
+<!ENTITY % ooclass.element "INCLUDE">
+<![%ooclass.element;[
+<!ELEMENT ooclass (modifier*, classname)>
+<!--end of ooclass.element-->]]>
+
+<!ENTITY % ooclass.attlist "INCLUDE">
+<![%ooclass.attlist;[
+<!ATTLIST ooclass
+	%common.attrib;
+	%ooclass.role.attrib;
+	%local.ooclass.attrib;
+>
+<!--end of ooclass.attlist-->]]>
+<!--end of ooclass.module-->]]>
+
+<!ENTITY % oointerface.module "INCLUDE">
+<![%oointerface.module;[
+<!ENTITY % local.oointerface.attrib "">
+<!ENTITY % oointerface.role.attrib "%role.attrib;">
+
+<!ENTITY % oointerface.element "INCLUDE">
+<![%oointerface.element;[
+<!ELEMENT oointerface (modifier*, interfacename)>
+<!--end of oointerface.element-->]]>
+
+<!ENTITY % oointerface.attlist "INCLUDE">
+<![%oointerface.attlist;[
+<!ATTLIST oointerface
+	%common.attrib;
+	%oointerface.role.attrib;
+	%local.oointerface.attrib;
+>
+<!--end of oointerface.attlist-->]]>
+<!--end of oointerface.module-->]]>
+
+<!ENTITY % ooexception.module "INCLUDE">
+<![%ooexception.module;[
+<!ENTITY % local.ooexception.attrib "">
+<!ENTITY % ooexception.role.attrib "%role.attrib;">
+
+<!ENTITY % ooexception.element "INCLUDE">
+<![%ooexception.element;[
+<!ELEMENT ooexception (modifier*, exceptionname)>
+<!--end of ooexception.element-->]]>
+
+<!ENTITY % ooexception.attlist "INCLUDE">
+<![%ooexception.attlist;[
+<!ATTLIST ooexception
+	%common.attrib;
+	%ooexception.role.attrib;
+	%local.ooexception.attrib;
+>
+<!--end of ooexception.attlist-->]]>
+<!--end of ooexception.module-->]]>
+
+<!ENTITY % modifier.module "INCLUDE">
+<![%modifier.module;[
+<!ENTITY % local.modifier.attrib "">
+<!ENTITY % modifier.role.attrib "%role.attrib;">
+
+<!ENTITY % modifier.element "INCLUDE">
+<![%modifier.element;[
+<!ELEMENT modifier (%smallcptr.char.mix;)*>
+<!--end of modifier.element-->]]>
+
+<!ENTITY % modifier.attlist "INCLUDE">
+<![%modifier.attlist;[
+<!ATTLIST modifier
+	%common.attrib;
+	%modifier.role.attrib;
+	%local.modifier.attrib;
+>
+<!--end of modifier.attlist-->]]>
+<!--end of modifier.module-->]]>
+
+<!ENTITY % interfacename.module "INCLUDE">
+<![%interfacename.module;[
+<!ENTITY % local.interfacename.attrib "">
+<!ENTITY % interfacename.role.attrib "%role.attrib;">
+
+<!ENTITY % interfacename.element "INCLUDE">
+<![%interfacename.element;[
+<!ELEMENT interfacename (%smallcptr.char.mix;)*>
+<!--end of interfacename.element-->]]>
+
+<!ENTITY % interfacename.attlist "INCLUDE">
+<![%interfacename.attlist;[
+<!ATTLIST interfacename
+	%common.attrib;
+	%interfacename.role.attrib;
+	%local.interfacename.attrib;
+>
+<!--end of interfacename.attlist-->]]>
+<!--end of interfacename.module-->]]>
+
+<!ENTITY % exceptionname.module "INCLUDE">
+<![%exceptionname.module;[
+<!ENTITY % local.exceptionname.attrib "">
+<!ENTITY % exceptionname.role.attrib "%role.attrib;">
+
+<!ENTITY % exceptionname.element "INCLUDE">
+<![%exceptionname.element;[
+<!ELEMENT exceptionname (%smallcptr.char.mix;)*>
+<!--end of exceptionname.element-->]]>
+
+<!ENTITY % exceptionname.attlist "INCLUDE">
+<![%exceptionname.attlist;[
+<!ATTLIST exceptionname
+	%common.attrib;
+	%exceptionname.role.attrib;
+	%local.exceptionname.attrib;
+>
+<!--end of exceptionname.attlist-->]]>
+<!--end of exceptionname.module-->]]>
+
+<!ENTITY % fieldsynopsis.module "INCLUDE">
+<![%fieldsynopsis.module;[
+<!ENTITY % local.fieldsynopsis.attrib "">
+<!ENTITY % fieldsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % fieldsynopsis.element "INCLUDE">
+<![%fieldsynopsis.element;[
+<!ELEMENT fieldsynopsis (modifier*, type?, varname, initializer?)>
+<!--end of fieldsynopsis.element-->]]>
+
+<!ENTITY % fieldsynopsis.attlist "INCLUDE">
+<![%fieldsynopsis.attlist;[
+<!ATTLIST fieldsynopsis
+	%common.attrib;
+	%fieldsynopsis.role.attrib;
+	%local.fieldsynopsis.attrib;
+>
+<!--end of fieldsynopsis.attlist-->]]>
+<!--end of fieldsynopsis.module-->]]>
+
+<!ENTITY % initializer.module "INCLUDE">
+<![%initializer.module;[
+<!ENTITY % local.initializer.attrib "">
+<!ENTITY % initializer.role.attrib "%role.attrib;">
+
+<!ENTITY % initializer.element "INCLUDE">
+<![%initializer.element;[
+<!ELEMENT initializer (%smallcptr.char.mix;)*>
+<!--end of initializer.element-->]]>
+
+<!ENTITY % initializer.attlist "INCLUDE">
+<![%initializer.attlist;[
+<!ATTLIST initializer
+	%common.attrib;
+	%initializer.role.attrib;
+	%local.initializer.attrib;
+>
+<!--end of initializer.attlist-->]]>
+<!--end of initializer.module-->]]>
+
+<!ENTITY % constructorsynopsis.module "INCLUDE">
+<![%constructorsynopsis.module;[
+<!ENTITY % local.constructorsynopsis.attrib "">
+<!ENTITY % constructorsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % constructorsynopsis.element "INCLUDE">
+<![%constructorsynopsis.element;[
+<!ELEMENT constructorsynopsis (modifier*,
+                               methodname?,
+                               (methodparam+|void),
+                               exceptionname*)>
+<!--end of constructorsynopsis.element-->]]>
+
+<!ENTITY % constructorsynopsis.attlist "INCLUDE">
+<![%constructorsynopsis.attlist;[
+<!ATTLIST constructorsynopsis
+	%common.attrib;
+	%constructorsynopsis.role.attrib;
+	%local.constructorsynopsis.attrib;
+>
+<!--end of constructorsynopsis.attlist-->]]>
+<!--end of constructorsynopsis.module-->]]>
+
+<!ENTITY % destructorsynopsis.module "INCLUDE">
+<![%destructorsynopsis.module;[
+<!ENTITY % local.destructorsynopsis.attrib "">
+<!ENTITY % destructorsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % destructorsynopsis.element "INCLUDE">
+<![%destructorsynopsis.element;[
+<!ELEMENT destructorsynopsis (modifier*,
+                              methodname?,
+                              (methodparam+|void),
+                              exceptionname*)>
+<!--end of destructorsynopsis.element-->]]>
+
+<!ENTITY % destructorsynopsis.attlist "INCLUDE">
+<![%destructorsynopsis.attlist;[
+<!ATTLIST destructorsynopsis
+	%common.attrib;
+	%destructorsynopsis.role.attrib;
+	%local.destructorsynopsis.attrib;
+>
+<!--end of destructorsynopsis.attlist-->]]>
+<!--end of destructorsynopsis.module-->]]>
+
+<!ENTITY % methodsynopsis.module "INCLUDE">
+<![%methodsynopsis.module;[
+<!ENTITY % local.methodsynopsis.attrib "">
+<!ENTITY % methodsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % methodsynopsis.element "INCLUDE">
+<![%methodsynopsis.element;[
+<!ELEMENT methodsynopsis (modifier*,
+                          (type|void)?,
+                          methodname,
+                          (methodparam+|void),
+                          exceptionname*,
+                          modifier*)>
+<!--end of methodsynopsis.element-->]]>
+
+<!ENTITY % methodsynopsis.attlist "INCLUDE">
+<![%methodsynopsis.attlist;[
+<!ATTLIST methodsynopsis
+	%common.attrib;
+	%methodsynopsis.role.attrib;
+	%local.methodsynopsis.attrib;
+>
+<!--end of methodsynopsis.attlist-->]]>
+<!--end of methodsynopsis.module-->]]>
+
+<!ENTITY % methodname.module "INCLUDE">
+<![%methodname.module;[
+<!ENTITY % local.methodname.attrib "">
+<!ENTITY % methodname.role.attrib "%role.attrib;">
+
+<!ENTITY % methodname.element "INCLUDE">
+<![%methodname.element;[
+<!ELEMENT methodname (%smallcptr.char.mix;)*>
+<!--end of methodname.element-->]]>
+
+<!ENTITY % methodname.attlist "INCLUDE">
+<![%methodname.attlist;[
+<!ATTLIST methodname
+	%common.attrib;
+	%methodname.role.attrib;
+	%local.methodname.attrib;
+>
+<!--end of methodname.attlist-->]]>
+<!--end of methodname.module-->]]>
+
+<!ENTITY % methodparam.module "INCLUDE">
+<![%methodparam.module;[
+<!ENTITY % local.methodparam.attrib "">
+<!ENTITY % methodparam.role.attrib "%role.attrib;">
+
+<!ENTITY % methodparam.element "INCLUDE">
+<![%methodparam.element;[
+<!ELEMENT methodparam (modifier*,
+                       type?,
+                       ((parameter,initializer?)|funcparams),
+                       modifier*)>
+<!--end of methodparam.element-->]]>
+
+<!ENTITY % methodparam.attlist "INCLUDE">
+<![%methodparam.attlist;[
+<!ATTLIST methodparam
+	%common.attrib;
+	%methodparam.role.attrib;
+	%local.methodparam.attrib;
+	choice		(opt
+			|req
+			|plain)		"req"
+	rep		(norepeat
+			|repeat)	"norepeat"
+>
+<!--end of methodparam.attlist-->]]>
+<!--end of methodparam.module-->]]>
+<!--end of classsynopsis.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Document information entities and elements ........................... -->
+
+<!-- The document information elements include some elements that are
+     currently used only in the document hierarchy module. They are
+     defined here so that they will be available for use in customized
+     document hierarchies. -->
+
+<!-- .................................. -->
+
+<!ENTITY % docinfo.content.module "INCLUDE">
+<![%docinfo.content.module;[
+
+<!-- Ackno ............................ -->
+
+<!ENTITY % ackno.module "INCLUDE">
+<![%ackno.module;[
+<!ENTITY % local.ackno.attrib "">
+<!ENTITY % ackno.role.attrib "%role.attrib;">
+
+<!ENTITY % ackno.element "INCLUDE">
+<![%ackno.element;[
+<!ELEMENT ackno (%docinfo.char.mix;)*>
+<!--end of ackno.element-->]]>
+
+<!ENTITY % ackno.attlist "INCLUDE">
+<![%ackno.attlist;[
+<!ATTLIST ackno
+		%common.attrib;
+		%ackno.role.attrib;
+		%local.ackno.attrib;
+>
+<!--end of ackno.attlist-->]]>
+<!--end of ackno.module-->]]>
+
+<!-- Address .......................... -->
+
+<!ENTITY % address.content.module "INCLUDE">
+<![%address.content.module;[
+<!ENTITY % address.module "INCLUDE">
+<![%address.module;[
+<!ENTITY % local.address.attrib "">
+<!ENTITY % address.role.attrib "%role.attrib;">
+
+<!ENTITY % address.element "INCLUDE">
+<![%address.element;[
+<!ELEMENT address (#PCDATA|%person.ident.mix;
+		|street|pob|postcode|city|state|country|phone
+		|fax|email|otheraddr)*>
+<!--end of address.element-->]]>
+
+<!ENTITY % address.attlist "INCLUDE">
+<![%address.attlist;[
+<!ATTLIST address
+		%linespecific.attrib;
+		%common.attrib;
+		%address.role.attrib;
+		%local.address.attrib;
+>
+<!--end of address.attlist-->]]>
+<!--end of address.module-->]]>
+
+  <!ENTITY % street.module "INCLUDE">
+  <![%street.module;[
+ <!ENTITY % local.street.attrib "">
+  <!ENTITY % street.role.attrib "%role.attrib;">
+  
+<!ENTITY % street.element "INCLUDE">
+<![%street.element;[
+<!ELEMENT street (%docinfo.char.mix;)*>
+<!--end of street.element-->]]>
+  
+<!ENTITY % street.attlist "INCLUDE">
+<![%street.attlist;[
+<!ATTLIST street
+		%common.attrib;
+		%street.role.attrib;
+		%local.street.attrib;
+>
+<!--end of street.attlist-->]]>
+  <!--end of street.module-->]]>
+
+  <!ENTITY % pob.module "INCLUDE">
+  <![%pob.module;[
+  <!ENTITY % local.pob.attrib "">
+  <!ENTITY % pob.role.attrib "%role.attrib;">
+  
+<!ENTITY % pob.element "INCLUDE">
+<![%pob.element;[
+<!ELEMENT pob (%docinfo.char.mix;)*>
+<!--end of pob.element-->]]>
+  
+<!ENTITY % pob.attlist "INCLUDE">
+<![%pob.attlist;[
+<!ATTLIST pob
+		%common.attrib;
+		%pob.role.attrib;
+		%local.pob.attrib;
+>
+<!--end of pob.attlist-->]]>
+  <!--end of pob.module-->]]>
+
+  <!ENTITY % postcode.module "INCLUDE">
+  <![%postcode.module;[
+  <!ENTITY % local.postcode.attrib "">
+  <!ENTITY % postcode.role.attrib "%role.attrib;">
+  
+<!ENTITY % postcode.element "INCLUDE">
+<![%postcode.element;[
+<!ELEMENT postcode (%docinfo.char.mix;)*>
+<!--end of postcode.element-->]]>
+  
+<!ENTITY % postcode.attlist "INCLUDE">
+<![%postcode.attlist;[
+<!ATTLIST postcode
+		%common.attrib;
+		%postcode.role.attrib;
+		%local.postcode.attrib;
+>
+<!--end of postcode.attlist-->]]>
+  <!--end of postcode.module-->]]>
+
+  <!ENTITY % city.module "INCLUDE">
+  <![%city.module;[
+  <!ENTITY % local.city.attrib "">
+  <!ENTITY % city.role.attrib "%role.attrib;">
+  
+<!ENTITY % city.element "INCLUDE">
+<![%city.element;[
+<!ELEMENT city (%docinfo.char.mix;)*>
+<!--end of city.element-->]]>
+  
+<!ENTITY % city.attlist "INCLUDE">
+<![%city.attlist;[
+<!ATTLIST city
+		%common.attrib;
+		%city.role.attrib;
+		%local.city.attrib;
+>
+<!--end of city.attlist-->]]>
+  <!--end of city.module-->]]>
+
+  <!ENTITY % state.module "INCLUDE">
+  <![%state.module;[
+  <!ENTITY % local.state.attrib "">
+  <!ENTITY % state.role.attrib "%role.attrib;">
+  
+<!ENTITY % state.element "INCLUDE">
+<![%state.element;[
+<!ELEMENT state (%docinfo.char.mix;)*>
+<!--end of state.element-->]]>
+  
+<!ENTITY % state.attlist "INCLUDE">
+<![%state.attlist;[
+<!ATTLIST state
+		%common.attrib;
+		%state.role.attrib;
+		%local.state.attrib;
+>
+<!--end of state.attlist-->]]>
+  <!--end of state.module-->]]>
+
+  <!ENTITY % country.module "INCLUDE">
+  <![%country.module;[
+  <!ENTITY % local.country.attrib "">
+  <!ENTITY % country.role.attrib "%role.attrib;">
+  
+<!ENTITY % country.element "INCLUDE">
+<![%country.element;[
+<!ELEMENT country (%docinfo.char.mix;)*>
+<!--end of country.element-->]]>
+  
+<!ENTITY % country.attlist "INCLUDE">
+<![%country.attlist;[
+<!ATTLIST country
+		%common.attrib;
+		%country.role.attrib;
+		%local.country.attrib;
+>
+<!--end of country.attlist-->]]>
+  <!--end of country.module-->]]>
+
+  <!ENTITY % phone.module "INCLUDE">
+  <![%phone.module;[
+  <!ENTITY % local.phone.attrib "">
+  <!ENTITY % phone.role.attrib "%role.attrib;">
+  
+<!ENTITY % phone.element "INCLUDE">
+<![%phone.element;[
+<!ELEMENT phone (%docinfo.char.mix;)*>
+<!--end of phone.element-->]]>
+  
+<!ENTITY % phone.attlist "INCLUDE">
+<![%phone.attlist;[
+<!ATTLIST phone
+		%common.attrib;
+		%phone.role.attrib;
+		%local.phone.attrib;
+>
+<!--end of phone.attlist-->]]>
+  <!--end of phone.module-->]]>
+
+  <!ENTITY % fax.module "INCLUDE">
+  <![%fax.module;[
+  <!ENTITY % local.fax.attrib "">
+  <!ENTITY % fax.role.attrib "%role.attrib;">
+  
+<!ENTITY % fax.element "INCLUDE">
+<![%fax.element;[
+<!ELEMENT fax (%docinfo.char.mix;)*>
+<!--end of fax.element-->]]>
+  
+<!ENTITY % fax.attlist "INCLUDE">
+<![%fax.attlist;[
+<!ATTLIST fax
+		%common.attrib;
+		%fax.role.attrib;
+		%local.fax.attrib;
+>
+<!--end of fax.attlist-->]]>
+  <!--end of fax.module-->]]>
+
+  <!-- Email (defined in the Inlines section, below)-->
+
+  <!ENTITY % otheraddr.module "INCLUDE">
+  <![%otheraddr.module;[
+  <!ENTITY % local.otheraddr.attrib "">
+  <!ENTITY % otheraddr.role.attrib "%role.attrib;">
+  
+<!ENTITY % otheraddr.element "INCLUDE">
+<![%otheraddr.element;[
+<!ELEMENT otheraddr (%docinfo.char.mix;)*>
+<!--end of otheraddr.element-->]]>
+  
+<!ENTITY % otheraddr.attlist "INCLUDE">
+<![%otheraddr.attlist;[
+<!ATTLIST otheraddr
+		%common.attrib;
+		%otheraddr.role.attrib;
+		%local.otheraddr.attrib;
+>
+<!--end of otheraddr.attlist-->]]>
+  <!--end of otheraddr.module-->]]>
+<!--end of address.content.module-->]]>
+
+<!-- Affiliation ...................... -->
+
+<!ENTITY % affiliation.content.module "INCLUDE">
+<![%affiliation.content.module;[
+<!ENTITY % affiliation.module "INCLUDE">
+<![%affiliation.module;[
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+
+<!ENTITY % affiliation.element "INCLUDE">
+<![%affiliation.element;[
+<!ELEMENT affiliation (shortaffil?, jobtitle*, orgname?, orgdiv*,
+		address*)>
+<!--end of affiliation.element-->]]>
+
+<!ENTITY % affiliation.attlist "INCLUDE">
+<![%affiliation.attlist;[
+<!ATTLIST affiliation
+		%common.attrib;
+		%affiliation.role.attrib;
+		%local.affiliation.attrib;
+>
+<!--end of affiliation.attlist-->]]>
+<!--end of affiliation.module-->]]>
+
+  <!ENTITY % shortaffil.module "INCLUDE">
+  <![%shortaffil.module;[
+  <!ENTITY % local.shortaffil.attrib "">
+  <!ENTITY % shortaffil.role.attrib "%role.attrib;">
+  
+<!ENTITY % shortaffil.element "INCLUDE">
+<![%shortaffil.element;[
+<!ELEMENT shortaffil (%docinfo.char.mix;)*>
+<!--end of shortaffil.element-->]]>
+  
+<!ENTITY % shortaffil.attlist "INCLUDE">
+<![%shortaffil.attlist;[
+<!ATTLIST shortaffil
+		%common.attrib;
+		%shortaffil.role.attrib;
+		%local.shortaffil.attrib;
+>
+<!--end of shortaffil.attlist-->]]>
+  <!--end of shortaffil.module-->]]>
+
+  <!ENTITY % jobtitle.module "INCLUDE">
+  <![%jobtitle.module;[
+  <!ENTITY % local.jobtitle.attrib "">
+  <!ENTITY % jobtitle.role.attrib "%role.attrib;">
+  
+<!ENTITY % jobtitle.element "INCLUDE">
+<![%jobtitle.element;[
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!--end of jobtitle.element-->]]>
+  
+<!ENTITY % jobtitle.attlist "INCLUDE">
+<![%jobtitle.attlist;[
+<!ATTLIST jobtitle
+		%common.attrib;
+		%jobtitle.role.attrib;
+		%local.jobtitle.attrib;
+>
+<!--end of jobtitle.attlist-->]]>
+  <!--end of jobtitle.module-->]]>
+
+  <!-- OrgName (defined elsewhere in this section)-->
+
+  <!ENTITY % orgdiv.module "INCLUDE">
+  <![%orgdiv.module;[
+  <!ENTITY % local.orgdiv.attrib "">
+  <!ENTITY % orgdiv.role.attrib "%role.attrib;">
+  
+<!ENTITY % orgdiv.element "INCLUDE">
+<![%orgdiv.element;[
+<!ELEMENT orgdiv (%docinfo.char.mix;)*>
+<!--end of orgdiv.element-->]]>
+  
+<!ENTITY % orgdiv.attlist "INCLUDE">
+<![%orgdiv.attlist;[
+<!ATTLIST orgdiv
+		%common.attrib;
+		%orgdiv.role.attrib;
+		%local.orgdiv.attrib;
+>
+<!--end of orgdiv.attlist-->]]>
+  <!--end of orgdiv.module-->]]>
+
+  <!-- Address (defined elsewhere in this section)-->
+<!--end of affiliation.content.module-->]]>
+
+<!-- ArtPageNums ...................... -->
+
+<!ENTITY % artpagenums.module "INCLUDE">
+<![%artpagenums.module;[
+<!ENTITY % local.artpagenums.attrib "">
+<!ENTITY % artpagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % artpagenums.element "INCLUDE">
+<![%artpagenums.element;[
+<!ELEMENT artpagenums (%docinfo.char.mix;)*>
+<!--end of artpagenums.element-->]]>
+
+<!ENTITY % artpagenums.attlist "INCLUDE">
+<![%artpagenums.attlist;[
+<!ATTLIST artpagenums
+		%common.attrib;
+		%artpagenums.role.attrib;
+		%local.artpagenums.attrib;
+>
+<!--end of artpagenums.attlist-->]]>
+<!--end of artpagenums.module-->]]>
+
+<!-- Author ........................... -->
+
+<!ENTITY % author.module "INCLUDE">
+<![%author.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new 
+wrapper element created to allow association of those two elements with 
+Author name information.
+......................
+-->
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+
+<!ENTITY % author.element "INCLUDE">
+<![%author.element;[
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!--end of author.element-->]]>
+
+<!ENTITY % author.attlist "INCLUDE">
+<![%author.attlist;[
+<!ATTLIST author
+		%common.attrib;
+		%author.role.attrib;
+		%local.author.attrib;
+>
+<!--end of author.attlist-->]]>
+<!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of author.module-->]]>
+
+<!-- AuthorGroup ...................... -->
+
+<!ENTITY % authorgroup.content.module "INCLUDE">
+<![%authorgroup.content.module;[
+<!ENTITY % authorgroup.module "INCLUDE">
+<![%authorgroup.module;[
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % authorgroup.element "INCLUDE">
+<![%authorgroup.element;[
+<!ELEMENT authorgroup ((author|editor|collab|corpauthor|othercredit)+)>
+<!--end of authorgroup.element-->]]>
+
+<!ENTITY % authorgroup.attlist "INCLUDE">
+<![%authorgroup.attlist;[
+<!ATTLIST authorgroup
+		%common.attrib;
+		%authorgroup.role.attrib;
+		%local.authorgroup.attrib;
+>
+<!--end of authorgroup.attlist-->]]>
+<!--end of authorgroup.module-->]]>
+
+  <!-- Author (defined elsewhere in this section)-->
+  <!-- Editor (defined elsewhere in this section)-->
+
+  <!ENTITY % collab.content.module "INCLUDE">
+  <![%collab.content.module;[
+  <!ENTITY % collab.module "INCLUDE">
+  <![%collab.module;[
+  <!ENTITY % local.collab.attrib "">
+  <!ENTITY % collab.role.attrib "%role.attrib;">
+  
+<!ENTITY % collab.element "INCLUDE">
+<![%collab.element;[
+<!ELEMENT collab (collabname, affiliation*)>
+<!--end of collab.element-->]]>
+  
+<!ENTITY % collab.attlist "INCLUDE">
+<![%collab.attlist;[
+<!ATTLIST collab
+		%common.attrib;
+		%collab.role.attrib;
+		%local.collab.attrib;
+>
+<!--end of collab.attlist-->]]>
+  <!--end of collab.module-->]]>
+
+    <!ENTITY % collabname.module "INCLUDE">
+  <![%collabname.module;[
+  <!ENTITY % local.collabname.attrib "">
+  <!ENTITY % collabname.role.attrib "%role.attrib;">
+    
+<!ENTITY % collabname.element "INCLUDE">
+<![%collabname.element;[
+<!ELEMENT collabname (%docinfo.char.mix;)*>
+<!--end of collabname.element-->]]>
+    
+<!ENTITY % collabname.attlist "INCLUDE">
+<![%collabname.attlist;[
+<!ATTLIST collabname
+		%common.attrib;
+		%collabname.role.attrib;
+		%local.collabname.attrib;
+>
+<!--end of collabname.attlist-->]]>
+    <!--end of collabname.module-->]]>
+
+    <!-- Affiliation (defined elsewhere in this section)-->
+  <!--end of collab.content.module-->]]>
+
+  <!-- CorpAuthor (defined elsewhere in this section)-->
+  <!-- OtherCredit (defined elsewhere in this section)-->
+
+<!--end of authorgroup.content.module-->]]>
+
+<!-- AuthorInitials ................... -->
+
+<!ENTITY % authorinitials.module "INCLUDE">
+<![%authorinitials.module;[
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+
+<!ENTITY % authorinitials.element "INCLUDE">
+<![%authorinitials.element;[
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!--end of authorinitials.element-->]]>
+
+<!ENTITY % authorinitials.attlist "INCLUDE">
+<![%authorinitials.attlist;[
+<!ATTLIST authorinitials
+		%common.attrib;
+		%authorinitials.role.attrib;
+		%local.authorinitials.attrib;
+>
+<!--end of authorinitials.attlist-->]]>
+<!--end of authorinitials.module-->]]>
+
+<!-- ConfGroup ........................ -->
+
+<!ENTITY % confgroup.content.module "INCLUDE">
+<![%confgroup.content.module;[
+<!ENTITY % confgroup.module "INCLUDE">
+<![%confgroup.module;[
+<!ENTITY % local.confgroup.attrib "">
+<!ENTITY % confgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % confgroup.element "INCLUDE">
+<![%confgroup.element;[
+<!ELEMENT confgroup ((confdates|conftitle|confnum|address|confsponsor)*)>
+<!--end of confgroup.element-->]]>
+
+<!ENTITY % confgroup.attlist "INCLUDE">
+<![%confgroup.attlist;[
+<!ATTLIST confgroup
+		%common.attrib;
+		%confgroup.role.attrib;
+		%local.confgroup.attrib;
+>
+<!--end of confgroup.attlist-->]]>
+<!--end of confgroup.module-->]]>
+
+  <!ENTITY % confdates.module "INCLUDE">
+  <![%confdates.module;[
+  <!ENTITY % local.confdates.attrib "">
+  <!ENTITY % confdates.role.attrib "%role.attrib;">
+  
+<!ENTITY % confdates.element "INCLUDE">
+<![%confdates.element;[
+<!ELEMENT confdates (%docinfo.char.mix;)*>
+<!--end of confdates.element-->]]>
+  
+<!ENTITY % confdates.attlist "INCLUDE">
+<![%confdates.attlist;[
+<!ATTLIST confdates
+		%common.attrib;
+		%confdates.role.attrib;
+		%local.confdates.attrib;
+>
+<!--end of confdates.attlist-->]]>
+  <!--end of confdates.module-->]]>
+
+  <!ENTITY % conftitle.module "INCLUDE">
+  <![%conftitle.module;[
+  <!ENTITY % local.conftitle.attrib "">
+  <!ENTITY % conftitle.role.attrib "%role.attrib;">
+  
+<!ENTITY % conftitle.element "INCLUDE">
+<![%conftitle.element;[
+<!ELEMENT conftitle (%docinfo.char.mix;)*>
+<!--end of conftitle.element-->]]>
+  
+<!ENTITY % conftitle.attlist "INCLUDE">
+<![%conftitle.attlist;[
+<!ATTLIST conftitle
+		%common.attrib;
+		%conftitle.role.attrib;
+		%local.conftitle.attrib;
+>
+<!--end of conftitle.attlist-->]]>
+  <!--end of conftitle.module-->]]>
+
+  <!ENTITY % confnum.module "INCLUDE">
+  <![%confnum.module;[
+  <!ENTITY % local.confnum.attrib "">
+  <!ENTITY % confnum.role.attrib "%role.attrib;">
+  
+<!ENTITY % confnum.element "INCLUDE">
+<![%confnum.element;[
+<!ELEMENT confnum (%docinfo.char.mix;)*>
+<!--end of confnum.element-->]]>
+  
+<!ENTITY % confnum.attlist "INCLUDE">
+<![%confnum.attlist;[
+<!ATTLIST confnum
+		%common.attrib;
+		%confnum.role.attrib;
+		%local.confnum.attrib;
+>
+<!--end of confnum.attlist-->]]>
+  <!--end of confnum.module-->]]>
+
+  <!-- Address (defined elsewhere in this section)-->
+
+  <!ENTITY % confsponsor.module "INCLUDE">
+  <![%confsponsor.module;[
+  <!ENTITY % local.confsponsor.attrib "">
+  <!ENTITY % confsponsor.role.attrib "%role.attrib;">
+  
+<!ENTITY % confsponsor.element "INCLUDE">
+<![%confsponsor.element;[
+<!ELEMENT confsponsor (%docinfo.char.mix;)*>
+<!--end of confsponsor.element-->]]>
+  
+<!ENTITY % confsponsor.attlist "INCLUDE">
+<![%confsponsor.attlist;[
+<!ATTLIST confsponsor
+		%common.attrib;
+		%confsponsor.role.attrib;
+		%local.confsponsor.attrib;
+>
+<!--end of confsponsor.attlist-->]]>
+  <!--end of confsponsor.module-->]]>
+<!--end of confgroup.content.module-->]]>
+
+<!-- ContractNum ...................... -->
+
+<!ENTITY % contractnum.module "INCLUDE">
+<![%contractnum.module;[
+<!ENTITY % local.contractnum.attrib "">
+<!ENTITY % contractnum.role.attrib "%role.attrib;">
+
+<!ENTITY % contractnum.element "INCLUDE">
+<![%contractnum.element;[
+<!ELEMENT contractnum (%docinfo.char.mix;)*>
+<!--end of contractnum.element-->]]>
+
+<!ENTITY % contractnum.attlist "INCLUDE">
+<![%contractnum.attlist;[
+<!ATTLIST contractnum
+		%common.attrib;
+		%contractnum.role.attrib;
+		%local.contractnum.attrib;
+>
+<!--end of contractnum.attlist-->]]>
+<!--end of contractnum.module-->]]>
+
+<!-- ContractSponsor .................. -->
+
+<!ENTITY % contractsponsor.module "INCLUDE">
+<![%contractsponsor.module;[
+<!ENTITY % local.contractsponsor.attrib "">
+<!ENTITY % contractsponsor.role.attrib "%role.attrib;">
+
+<!ENTITY % contractsponsor.element "INCLUDE">
+<![%contractsponsor.element;[
+<!ELEMENT contractsponsor (%docinfo.char.mix;)*>
+<!--end of contractsponsor.element-->]]>
+
+<!ENTITY % contractsponsor.attlist "INCLUDE">
+<![%contractsponsor.attlist;[
+<!ATTLIST contractsponsor
+		%common.attrib;
+		%contractsponsor.role.attrib;
+		%local.contractsponsor.attrib;
+>
+<!--end of contractsponsor.attlist-->]]>
+<!--end of contractsponsor.module-->]]>
+
+<!-- Copyright ........................ -->
+
+<!ENTITY % copyright.content.module "INCLUDE">
+<![%copyright.content.module;[
+<!ENTITY % copyright.module "INCLUDE">
+<![%copyright.module;[
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+
+<!ENTITY % copyright.element "INCLUDE">
+<![%copyright.element;[
+<!ELEMENT copyright (year+, holder*)>
+<!--end of copyright.element-->]]>
+
+<!ENTITY % copyright.attlist "INCLUDE">
+<![%copyright.attlist;[
+<!ATTLIST copyright
+		%common.attrib;
+		%copyright.role.attrib;
+		%local.copyright.attrib;
+>
+<!--end of copyright.attlist-->]]>
+<!--end of copyright.module-->]]>
+
+  <!ENTITY % year.module "INCLUDE">
+  <![%year.module;[
+  <!ENTITY % local.year.attrib "">
+  <!ENTITY % year.role.attrib "%role.attrib;">
+  
+<!ENTITY % year.element "INCLUDE">
+<![%year.element;[
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!--end of year.element-->]]>
+  
+<!ENTITY % year.attlist "INCLUDE">
+<![%year.attlist;[
+<!ATTLIST year
+		%common.attrib;
+		%year.role.attrib;
+		%local.year.attrib;
+>
+<!--end of year.attlist-->]]>
+  <!--end of year.module-->]]>
+
+  <!ENTITY % holder.module "INCLUDE">
+  <![%holder.module;[
+  <!ENTITY % local.holder.attrib "">
+  <!ENTITY % holder.role.attrib "%role.attrib;">
+  
+<!ENTITY % holder.element "INCLUDE">
+<![%holder.element;[
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!--end of holder.element-->]]>
+  
+<!ENTITY % holder.attlist "INCLUDE">
+<![%holder.attlist;[
+<!ATTLIST holder
+		%common.attrib;
+		%holder.role.attrib;
+		%local.holder.attrib;
+>
+<!--end of holder.attlist-->]]>
+  <!--end of holder.module-->]]>
+<!--end of copyright.content.module-->]]>
+
+<!-- CorpAuthor ....................... -->
+
+<!ENTITY % corpauthor.module "INCLUDE">
+<![%corpauthor.module;[
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+
+<!ENTITY % corpauthor.element "INCLUDE">
+<![%corpauthor.element;[
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!--end of corpauthor.element-->]]>
+
+<!ENTITY % corpauthor.attlist "INCLUDE">
+<![%corpauthor.attlist;[
+<!ATTLIST corpauthor
+		%common.attrib;
+		%corpauthor.role.attrib;
+		%local.corpauthor.attrib;
+>
+<!--end of corpauthor.attlist-->]]>
+<!--end of corpauthor.module-->]]>
+
+<!-- CorpName ......................... -->
+
+<!ENTITY % corpname.module "INCLUDE">
+<![%corpname.module;[
+<!ENTITY % local.corpname.attrib "">
+
+<!ENTITY % corpname.element "INCLUDE">
+<![%corpname.element;[
+<!ELEMENT corpname (%docinfo.char.mix;)*>
+<!--end of corpname.element-->]]>
+<!ENTITY % corpname.role.attrib "%role.attrib;">
+
+<!ENTITY % corpname.attlist "INCLUDE">
+<![%corpname.attlist;[
+<!ATTLIST corpname
+		%common.attrib;
+		%corpname.role.attrib;
+		%local.corpname.attrib;
+>
+<!--end of corpname.attlist-->]]>
+<!--end of corpname.module-->]]>
+
+<!-- Date ............................. -->
+
+<!ENTITY % date.module "INCLUDE">
+<![%date.module;[
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+
+<!ENTITY % date.element "INCLUDE">
+<![%date.element;[
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!--end of date.element-->]]>
+
+<!ENTITY % date.attlist "INCLUDE">
+<![%date.attlist;[
+<!ATTLIST date
+		%common.attrib;
+		%date.role.attrib;
+		%local.date.attrib;
+>
+<!--end of date.attlist-->]]>
+<!--end of date.module-->]]>
+
+<!-- Edition .......................... -->
+
+<!ENTITY % edition.module "INCLUDE">
+<![%edition.module;[
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+
+<!ENTITY % edition.element "INCLUDE">
+<![%edition.element;[
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!--end of edition.element-->]]>
+
+<!ENTITY % edition.attlist "INCLUDE">
+<![%edition.attlist;[
+<!ATTLIST edition
+		%common.attrib;
+		%edition.role.attrib;
+		%local.edition.attrib;
+>
+<!--end of edition.attlist-->]]>
+<!--end of edition.module-->]]>
+
+<!-- Editor ........................... -->
+
+<!ENTITY % editor.module "INCLUDE">
+<![%editor.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new 
+wrapper element created to allow association of those two elements with 
+Editor name information.
+......................
+-->
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+
+<!ENTITY % editor.element "INCLUDE">
+<![%editor.element;[
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!--end of editor.element-->]]>
+
+<!ENTITY % editor.attlist "INCLUDE">
+<![%editor.attlist;[
+<!ATTLIST editor
+		%common.attrib;
+		%editor.role.attrib;
+		%local.editor.attrib;
+>
+<!--end of editor.attlist-->]]>
+  <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of editor.module-->]]>
+
+<!-- ISBN ............................. -->
+
+<!ENTITY % isbn.module "INCLUDE">
+<![%isbn.module;[
+<!ENTITY % local.isbn.attrib "">
+<!ENTITY % isbn.role.attrib "%role.attrib;">
+
+<!ENTITY % isbn.element "INCLUDE">
+<![%isbn.element;[
+<!ELEMENT isbn (%docinfo.char.mix;)*>
+<!--end of isbn.element-->]]>
+
+<!ENTITY % isbn.attlist "INCLUDE">
+<![%isbn.attlist;[
+<!ATTLIST isbn
+		%common.attrib;
+		%isbn.role.attrib;
+		%local.isbn.attrib;
+>
+<!--end of isbn.attlist-->]]>
+<!--end of isbn.module-->]]>
+
+<!-- ISSN ............................. -->
+
+<!ENTITY % issn.module "INCLUDE">
+<![%issn.module;[
+<!ENTITY % local.issn.attrib "">
+<!ENTITY % issn.role.attrib "%role.attrib;">
+
+<!ENTITY % issn.element "INCLUDE">
+<![%issn.element;[
+<!ELEMENT issn (%docinfo.char.mix;)*>
+<!--end of issn.element-->]]>
+
+<!ENTITY % issn.attlist "INCLUDE">
+<![%issn.attlist;[
+<!ATTLIST issn
+		%common.attrib;
+		%issn.role.attrib;
+		%local.issn.attrib;
+>
+<!--end of issn.attlist-->]]>
+<!--end of issn.module-->]]>
+
+<!-- InvPartNumber .................... -->
+
+<!ENTITY % invpartnumber.module "INCLUDE">
+<![%invpartnumber.module;[
+<!ENTITY % local.invpartnumber.attrib "">
+<!ENTITY % invpartnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % invpartnumber.element "INCLUDE">
+<![%invpartnumber.element;[
+<!ELEMENT invpartnumber (%docinfo.char.mix;)*>
+<!--end of invpartnumber.element-->]]>
+
+<!ENTITY % invpartnumber.attlist "INCLUDE">
+<![%invpartnumber.attlist;[
+<!ATTLIST invpartnumber
+		%common.attrib;
+		%invpartnumber.role.attrib;
+		%local.invpartnumber.attrib;
+>
+<!--end of invpartnumber.attlist-->]]>
+<!--end of invpartnumber.module-->]]>
+
+<!-- IssueNum ......................... -->
+
+<!ENTITY % issuenum.module "INCLUDE">
+<![%issuenum.module;[
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+
+<!ENTITY % issuenum.element "INCLUDE">
+<![%issuenum.element;[
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!--end of issuenum.element-->]]>
+
+<!ENTITY % issuenum.attlist "INCLUDE">
+<![%issuenum.attlist;[
+<!ATTLIST issuenum
+		%common.attrib;
+		%issuenum.role.attrib;
+		%local.issuenum.attrib;
+>
+<!--end of issuenum.attlist-->]]>
+<!--end of issuenum.module-->]]>
+
+<!-- LegalNotice ...................... -->
+
+<!ENTITY % legalnotice.module "INCLUDE">
+<![%legalnotice.module;[
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+
+<!ENTITY % legalnotice.element "INCLUDE">
+<![%legalnotice.element;[
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!--end of legalnotice.element-->]]>
+
+<!ENTITY % legalnotice.attlist "INCLUDE">
+<![%legalnotice.attlist;[
+<!ATTLIST legalnotice
+		%common.attrib;
+		%legalnotice.role.attrib;
+		%local.legalnotice.attrib;
+>
+<!--end of legalnotice.attlist-->]]>
+<!--end of legalnotice.module-->]]>
+
+<!-- ModeSpec ......................... -->
+
+<!ENTITY % modespec.module "INCLUDE">
+<![%modespec.module;[
+<!ENTITY % local.modespec.attrib "">
+<!ENTITY % modespec.role.attrib "%role.attrib;">
+
+<!ENTITY % modespec.element "INCLUDE">
+<![%modespec.element;[
+<!ELEMENT modespec (%docinfo.char.mix;)*>
+<!--end of modespec.element-->]]>
+
+<!-- Application: Type of action required for completion
+		of the links to which the ModeSpec is relevant (e.g.,
+		retrieval query) -->
+
+
+<!ENTITY % modespec.attlist "INCLUDE">
+<![%modespec.attlist;[
+<!ATTLIST modespec
+		application	NOTATION
+				(%notation.class;)	#IMPLIED
+		%common.attrib;
+		%modespec.role.attrib;
+		%local.modespec.attrib;
+>
+<!--end of modespec.attlist-->]]>
+<!--end of modespec.module-->]]>
+
+<!-- OrgName .......................... -->
+
+<!ENTITY % orgname.module "INCLUDE">
+<![%orgname.module;[
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+
+<!ENTITY % orgname.element "INCLUDE">
+<![%orgname.element;[
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!--end of orgname.element-->]]>
+
+<!ENTITY % orgname.attlist "INCLUDE">
+<![%orgname.attlist;[
+<!ATTLIST orgname
+		%common.attrib;
+		%orgname.role.attrib;
+		%local.orgname.attrib;
+>
+<!--end of orgname.attlist-->]]>
+<!--end of orgname.module-->]]>
+
+<!-- OtherCredit ...................... -->
+
+<!ENTITY % othercredit.module "INCLUDE">
+<![%othercredit.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new 
+wrapper element created to allow association of those two elements with 
+OtherCredit name information.
+......................
+-->
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+
+<!ENTITY % othercredit.element "INCLUDE">
+<![%othercredit.element;[
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!--end of othercredit.element-->]]>
+
+<!ENTITY % othercredit.attlist "INCLUDE">
+<![%othercredit.attlist;[
+<!ATTLIST othercredit
+		%common.attrib;
+		%othercredit.role.attrib;
+		%local.othercredit.attrib;
+>
+<!--end of othercredit.attlist-->]]>
+  <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of othercredit.module-->]]>
+
+<!-- PageNums ......................... -->
+
+<!ENTITY % pagenums.module "INCLUDE">
+<![%pagenums.module;[
+<!ENTITY % local.pagenums.attrib "">
+<!ENTITY % pagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % pagenums.element "INCLUDE">
+<![%pagenums.element;[
+<!ELEMENT pagenums (%docinfo.char.mix;)*>
+<!--end of pagenums.element-->]]>
+
+<!ENTITY % pagenums.attlist "INCLUDE">
+<![%pagenums.attlist;[
+<!ATTLIST pagenums
+		%common.attrib;
+		%pagenums.role.attrib;
+		%local.pagenums.attrib;
+>
+<!--end of pagenums.attlist-->]]>
+<!--end of pagenums.module-->]]>
+
+<!-- Personal identity elements ....... -->
+
+<!-- These elements are used only within Author, Editor, and 
+OtherCredit. -->
+
+<!ENTITY % person.ident.module "INCLUDE">
+<![%person.ident.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and
+a new wrapper element created to allow association of those two elements
+with Contrib name information.
+......................
+-->
+  <!ENTITY % contrib.module "INCLUDE">
+  <![%contrib.module;[
+  <!ENTITY % local.contrib.attrib "">
+  <!ENTITY % contrib.role.attrib "%role.attrib;">
+  
+<!ENTITY % contrib.element "INCLUDE">
+<![%contrib.element;[
+<!ELEMENT contrib (%docinfo.char.mix;)*>
+<!--end of contrib.element-->]]>
+  
+<!ENTITY % contrib.attlist "INCLUDE">
+<![%contrib.attlist;[
+<!ATTLIST contrib
+		%common.attrib;
+		%contrib.role.attrib;
+		%local.contrib.attrib;
+>
+<!--end of contrib.attlist-->]]>
+  <!--end of contrib.module-->]]>
+
+  <!ENTITY % firstname.module "INCLUDE">
+  <![%firstname.module;[
+  <!ENTITY % local.firstname.attrib "">
+  <!ENTITY % firstname.role.attrib "%role.attrib;">
+  
+<!ENTITY % firstname.element "INCLUDE">
+<![%firstname.element;[
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!--end of firstname.element-->]]>
+  
+<!ENTITY % firstname.attlist "INCLUDE">
+<![%firstname.attlist;[
+<!ATTLIST firstname
+		%common.attrib;
+		%firstname.role.attrib;
+		%local.firstname.attrib;
+>
+<!--end of firstname.attlist-->]]>
+  <!--end of firstname.module-->]]>
+
+  <!ENTITY % honorific.module "INCLUDE">
+  <![%honorific.module;[
+  <!ENTITY % local.honorific.attrib "">
+  <!ENTITY % honorific.role.attrib "%role.attrib;">
+  
+<!ENTITY % honorific.element "INCLUDE">
+<![%honorific.element;[
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!--end of honorific.element-->]]>
+  
+<!ENTITY % honorific.attlist "INCLUDE">
+<![%honorific.attlist;[
+<!ATTLIST honorific
+		%common.attrib;
+		%honorific.role.attrib;
+		%local.honorific.attrib;
+>
+<!--end of honorific.attlist-->]]>
+  <!--end of honorific.module-->]]>
+
+  <!ENTITY % lineage.module "INCLUDE">
+  <![%lineage.module;[
+  <!ENTITY % local.lineage.attrib "">
+  <!ENTITY % lineage.role.attrib "%role.attrib;">
+  
+<!ENTITY % lineage.element "INCLUDE">
+<![%lineage.element;[
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!--end of lineage.element-->]]>
+  
+<!ENTITY % lineage.attlist "INCLUDE">
+<![%lineage.attlist;[
+<!ATTLIST lineage
+		%common.attrib;
+		%lineage.role.attrib;
+		%local.lineage.attrib;
+>
+<!--end of lineage.attlist-->]]>
+  <!--end of lineage.module-->]]>
+
+  <!ENTITY % othername.module "INCLUDE">
+  <![%othername.module;[
+  <!ENTITY % local.othername.attrib "">
+  <!ENTITY % othername.role.attrib "%role.attrib;">
+  
+<!ENTITY % othername.element "INCLUDE">
+<![%othername.element;[
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!--end of othername.element-->]]>
+  
+<!ENTITY % othername.attlist "INCLUDE">
+<![%othername.attlist;[
+<!ATTLIST othername
+		%common.attrib;
+		%othername.role.attrib;
+		%local.othername.attrib;
+>
+<!--end of othername.attlist-->]]>
+  <!--end of othername.module-->]]>
+
+  <!ENTITY % surname.module "INCLUDE">
+  <![%surname.module;[
+  <!ENTITY % local.surname.attrib "">
+  <!ENTITY % surname.role.attrib "%role.attrib;">
+  
+<!ENTITY % surname.element "INCLUDE">
+<![%surname.element;[
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!--end of surname.element-->]]>
+  
+<!ENTITY % surname.attlist "INCLUDE">
+<![%surname.attlist;[
+<!ATTLIST surname
+		%common.attrib;
+		%surname.role.attrib;
+		%local.surname.attrib;
+>
+<!--end of surname.attlist-->]]>
+  <!--end of surname.module-->]]>
+<!--end of person.ident.module-->]]>
+
+<!-- PrintHistory ..................... -->
+
+<!ENTITY % printhistory.module "INCLUDE">
+<![%printhistory.module;[
+<!ENTITY % local.printhistory.attrib "">
+<!ENTITY % printhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % printhistory.element "INCLUDE">
+<![%printhistory.element;[
+<!ELEMENT printhistory ((%para.class;)+)>
+<!--end of printhistory.element-->]]>
+
+<!ENTITY % printhistory.attlist "INCLUDE">
+<![%printhistory.attlist;[
+<!ATTLIST printhistory
+		%common.attrib;
+		%printhistory.role.attrib;
+		%local.printhistory.attrib;
+>
+<!--end of printhistory.attlist-->]]>
+<!--end of printhistory.module-->]]>
+
+<!-- ProductName ...................... -->
+
+<!ENTITY % productname.module "INCLUDE">
+<![%productname.module;[
+<!ENTITY % local.productname.attrib "">
+<!ENTITY % productname.role.attrib "%role.attrib;">
+
+<!ENTITY % productname.element "INCLUDE">
+<![%productname.element;[
+<!ELEMENT productname (%para.char.mix;)*>
+<!--end of productname.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % productname.attlist "INCLUDE">
+<![%productname.attlist;[
+<!ATTLIST productname
+		class		(service
+				|trade
+				|registered
+				|copyright)	'trade'
+		%common.attrib;
+		%productname.role.attrib;
+		%local.productname.attrib;
+>
+<!--end of productname.attlist-->]]>
+<!--end of productname.module-->]]>
+
+<!-- ProductNumber .................... -->
+
+<!ENTITY % productnumber.module "INCLUDE">
+<![%productnumber.module;[
+<!ENTITY % local.productnumber.attrib "">
+<!ENTITY % productnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % productnumber.element "INCLUDE">
+<![%productnumber.element;[
+<!ELEMENT productnumber (%docinfo.char.mix;)*>
+<!--end of productnumber.element-->]]>
+
+<!ENTITY % productnumber.attlist "INCLUDE">
+<![%productnumber.attlist;[
+<!ATTLIST productnumber
+		%common.attrib;
+		%productnumber.role.attrib;
+		%local.productnumber.attrib;
+>
+<!--end of productnumber.attlist-->]]>
+<!--end of productnumber.module-->]]>
+
+<!-- PubDate .......................... -->
+
+<!ENTITY % pubdate.module "INCLUDE">
+<![%pubdate.module;[
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+
+<!ENTITY % pubdate.element "INCLUDE">
+<![%pubdate.element;[
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!--end of pubdate.element-->]]>
+
+<!ENTITY % pubdate.attlist "INCLUDE">
+<![%pubdate.attlist;[
+<!ATTLIST pubdate
+		%common.attrib;
+		%pubdate.role.attrib;
+		%local.pubdate.attrib;
+>
+<!--end of pubdate.attlist-->]]>
+<!--end of pubdate.module-->]]>
+
+<!-- Publisher ........................ -->
+
+<!ENTITY % publisher.content.module "INCLUDE">
+<![%publisher.content.module;[
+<!ENTITY % publisher.module "INCLUDE">
+<![%publisher.module;[
+<!ENTITY % local.publisher.attrib "">
+<!ENTITY % publisher.role.attrib "%role.attrib;">
+
+<!ENTITY % publisher.element "INCLUDE">
+<![%publisher.element;[
+<!ELEMENT publisher (publishername, address*)>
+<!--end of publisher.element-->]]>
+
+<!ENTITY % publisher.attlist "INCLUDE">
+<![%publisher.attlist;[
+<!ATTLIST publisher
+		%common.attrib;
+		%publisher.role.attrib;
+		%local.publisher.attrib;
+>
+<!--end of publisher.attlist-->]]>
+<!--end of publisher.module-->]]>
+
+  <!ENTITY % publishername.module "INCLUDE">
+  <![%publishername.module;[
+  <!ENTITY % local.publishername.attrib "">
+  <!ENTITY % publishername.role.attrib "%role.attrib;">
+  
+<!ENTITY % publishername.element "INCLUDE">
+<![%publishername.element;[
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!--end of publishername.element-->]]>
+  
+<!ENTITY % publishername.attlist "INCLUDE">
+<![%publishername.attlist;[
+<!ATTLIST publishername
+		%common.attrib;
+		%publishername.role.attrib;
+		%local.publishername.attrib;
+>
+<!--end of publishername.attlist-->]]>
+  <!--end of publishername.module-->]]>
+
+  <!-- Address (defined elsewhere in this section)-->
+<!--end of publisher.content.module-->]]>
+
+<!-- PubsNumber ....................... -->
+
+<!ENTITY % pubsnumber.module "INCLUDE">
+<![%pubsnumber.module;[
+<!ENTITY % local.pubsnumber.attrib "">
+<!ENTITY % pubsnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % pubsnumber.element "INCLUDE">
+<![%pubsnumber.element;[
+<!ELEMENT pubsnumber (%docinfo.char.mix;)*>
+<!--end of pubsnumber.element-->]]>
+
+<!ENTITY % pubsnumber.attlist "INCLUDE">
+<![%pubsnumber.attlist;[
+<!ATTLIST pubsnumber
+		%common.attrib;
+		%pubsnumber.role.attrib;
+		%local.pubsnumber.attrib;
+>
+<!--end of pubsnumber.attlist-->]]>
+<!--end of pubsnumber.module-->]]>
+
+<!-- ReleaseInfo ...................... -->
+
+<!ENTITY % releaseinfo.module "INCLUDE">
+<![%releaseinfo.module;[
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % releaseinfo.element "INCLUDE">
+<![%releaseinfo.element;[
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!--end of releaseinfo.element-->]]>
+
+<!ENTITY % releaseinfo.attlist "INCLUDE">
+<![%releaseinfo.attlist;[
+<!ATTLIST releaseinfo
+		%common.attrib;
+		%releaseinfo.role.attrib;
+		%local.releaseinfo.attrib;
+>
+<!--end of releaseinfo.attlist-->]]>
+<!--end of releaseinfo.module-->]]>
+
+<!-- RevHistory ....................... -->
+
+<!ENTITY % revhistory.content.module "INCLUDE">
+<![%revhistory.content.module;[
+<!ENTITY % revhistory.module "INCLUDE">
+<![%revhistory.module;[
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % revhistory.element "INCLUDE">
+<![%revhistory.element;[
+<!ELEMENT revhistory (revision+)>
+<!--end of revhistory.element-->]]>
+
+<!ENTITY % revhistory.attlist "INCLUDE">
+<![%revhistory.attlist;[
+<!ATTLIST revhistory
+		%common.attrib;
+		%revhistory.role.attrib;
+		%local.revhistory.attrib;
+>
+<!--end of revhistory.attlist-->]]>
+<!--end of revhistory.module-->]]>
+
+<!ENTITY % revision.module "INCLUDE">
+<![%revision.module;[
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+
+<!ENTITY % revision.element "INCLUDE">
+<![%revision.element;[
+<!ELEMENT revision (revnumber, date, authorinitials*, 
+                    (revremark|revdescription)?)>
+<!--end of revision.element-->]]>
+
+<!ENTITY % revision.attlist "INCLUDE">
+<![%revision.attlist;[
+<!ATTLIST revision
+		%common.attrib;
+		%revision.role.attrib;
+		%local.revision.attrib;
+>
+<!--end of revision.attlist-->]]>
+<!--end of revision.module-->]]>
+
+<!ENTITY % revnumber.module "INCLUDE">
+<![%revnumber.module;[
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % revnumber.element "INCLUDE">
+<![%revnumber.element;[
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!--end of revnumber.element-->]]>
+
+<!ENTITY % revnumber.attlist "INCLUDE">
+<![%revnumber.attlist;[
+<!ATTLIST revnumber
+		%common.attrib;
+		%revnumber.role.attrib;
+		%local.revnumber.attrib;
+>
+<!--end of revnumber.attlist-->]]>
+<!--end of revnumber.module-->]]>
+
+<!-- Date (defined elsewhere in this section)-->
+<!-- AuthorInitials (defined elsewhere in this section)-->
+
+<!ENTITY % revremark.module "INCLUDE">
+<![%revremark.module;[
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+
+<!ENTITY % revremark.element "INCLUDE">
+<![%revremark.element;[
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!--end of revremark.element-->]]>
+
+<!ENTITY % revremark.attlist "INCLUDE">
+<![%revremark.attlist;[
+<!ATTLIST revremark
+		%common.attrib;
+		%revremark.role.attrib;
+		%local.revremark.attrib;
+>
+<!--end of revremark.attlist-->]]>
+<!--end of revremark.module-->]]>
+
+<!ENTITY % revdescription.module "INCLUDE">
+<![ %revdescription.module; [
+<!ENTITY % local.revdescription.attrib "">
+<!ENTITY % revdescription.role.attrib "%role.attrib;">
+
+<!ENTITY % revdescription.element "INCLUDE">
+<![ %revdescription.element; [
+<!ELEMENT revdescription ((%revdescription.mix;)+)>
+<!--end of revdescription.element-->]]>
+
+<!ENTITY % revdescription.attlist "INCLUDE">
+<![ %revdescription.attlist; [
+<!ATTLIST revdescription
+		%common.attrib;
+		%revdescription.role.attrib;
+		%local.revdescription.attrib;
+>
+<!--end of revdescription.attlist-->]]>
+<!--end of revdescription.module-->]]>
+<!--end of revhistory.content.module-->]]>
+
+<!-- SeriesVolNums .................... -->
+
+<!ENTITY % seriesvolnums.module "INCLUDE">
+<![%seriesvolnums.module;[
+<!ENTITY % local.seriesvolnums.attrib "">
+<!ENTITY % seriesvolnums.role.attrib "%role.attrib;">
+
+<!ENTITY % seriesvolnums.element "INCLUDE">
+<![%seriesvolnums.element;[
+<!ELEMENT seriesvolnums (%docinfo.char.mix;)*>
+<!--end of seriesvolnums.element-->]]>
+
+<!ENTITY % seriesvolnums.attlist "INCLUDE">
+<![%seriesvolnums.attlist;[
+<!ATTLIST seriesvolnums
+		%common.attrib;
+		%seriesvolnums.role.attrib;
+		%local.seriesvolnums.attrib;
+>
+<!--end of seriesvolnums.attlist-->]]>
+<!--end of seriesvolnums.module-->]]>
+
+<!-- VolumeNum ........................ -->
+
+<!ENTITY % volumenum.module "INCLUDE">
+<![%volumenum.module;[
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+
+<!ENTITY % volumenum.element "INCLUDE">
+<![%volumenum.element;[
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!--end of volumenum.element-->]]>
+
+<!ENTITY % volumenum.attlist "INCLUDE">
+<![%volumenum.attlist;[
+<!ATTLIST volumenum
+		%common.attrib;
+		%volumenum.role.attrib;
+		%local.volumenum.attrib;
+>
+<!--end of volumenum.attlist-->]]>
+<!--end of volumenum.module-->]]>
+
+<!-- .................................. -->
+
+<!--end of docinfo.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Inline, link, and ubiquitous elements ................................ -->
+
+<!-- Technical and computer terms ......................................... -->
+
+<!ENTITY % accel.module "INCLUDE">
+<![%accel.module;[
+<!ENTITY % local.accel.attrib "">
+<!ENTITY % accel.role.attrib "%role.attrib;">
+
+<!ENTITY % accel.element "INCLUDE">
+<![%accel.element;[
+<!ELEMENT accel (%smallcptr.char.mix;)*>
+<!--end of accel.element-->]]>
+
+<!ENTITY % accel.attlist "INCLUDE">
+<![%accel.attlist;[
+<!ATTLIST accel
+		%common.attrib;
+		%accel.role.attrib;
+		%local.accel.attrib;
+>
+<!--end of accel.attlist-->]]>
+<!--end of accel.module-->]]>
+
+<!ENTITY % action.module "INCLUDE">
+<![%action.module;[
+<!ENTITY % local.action.attrib "">
+<!ENTITY % action.role.attrib "%role.attrib;">
+
+<!ENTITY % action.element "INCLUDE">
+<![%action.element;[
+<!ELEMENT action (%smallcptr.char.mix;)*>
+<!--end of action.element-->]]>
+
+<!ENTITY % action.attlist "INCLUDE">
+<![%action.attlist;[
+<!ATTLIST action
+		%moreinfo.attrib;
+		%common.attrib;
+		%action.role.attrib;
+		%local.action.attrib;
+>
+<!--end of action.attlist-->]]>
+<!--end of action.module-->]]>
+
+<!ENTITY % application.module "INCLUDE">
+<![%application.module;[
+<!ENTITY % local.application.attrib "">
+<!ENTITY % application.role.attrib "%role.attrib;">
+
+<!ENTITY % application.element "INCLUDE">
+<![%application.element;[
+<!ELEMENT application (%para.char.mix;)*>
+<!--end of application.element-->]]>
+
+<!ENTITY % application.attlist "INCLUDE">
+<![%application.attlist;[
+<!ATTLIST application
+		class 		(hardware
+				|software)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%application.role.attrib;
+		%local.application.attrib;
+>
+<!--end of application.attlist-->]]>
+<!--end of application.module-->]]>
+
+<!ENTITY % classname.module "INCLUDE">
+<![%classname.module;[
+<!ENTITY % local.classname.attrib "">
+<!ENTITY % classname.role.attrib "%role.attrib;">
+
+<!ENTITY % classname.element "INCLUDE">
+<![%classname.element;[
+<!ELEMENT classname (%smallcptr.char.mix;)*>
+<!--end of classname.element-->]]>
+
+<!ENTITY % classname.attlist "INCLUDE">
+<![%classname.attlist;[
+<!ATTLIST classname
+		%common.attrib;
+		%classname.role.attrib;
+		%local.classname.attrib;
+>
+<!--end of classname.attlist-->]]>
+<!--end of classname.module-->]]>
+
+<!ENTITY % co.module "INCLUDE">
+<![%co.module;[
+<!ENTITY % local.co.attrib "">
+<!-- CO is a callout area of the LineColumn unit type (a single character 
+     position); the position is directly indicated by the location of CO. -->
+<!ENTITY % co.role.attrib "%role.attrib;">
+
+<!ENTITY % co.element "INCLUDE">
+<![%co.element;[
+<!ELEMENT co EMPTY>
+<!--end of co.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+
+
+<!ENTITY % co.attlist "INCLUDE">
+<![%co.attlist;[
+<!ATTLIST co
+		%label.attrib;
+		%linkends.attrib;
+		%idreq.common.attrib;
+		%co.role.attrib;
+		%local.co.attrib;
+>
+<!--end of co.attlist-->]]>
+<!--end of co.module-->]]>
+
+<!ENTITY % command.module "INCLUDE">
+<![%command.module;[
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+
+<!ENTITY % command.element "INCLUDE">
+<![%command.element;[
+<!ELEMENT command (%cptr.char.mix;)*>
+<!--end of command.element-->]]>
+
+<!ENTITY % command.attlist "INCLUDE">
+<![%command.attlist;[
+<!ATTLIST command
+		%moreinfo.attrib;
+		%common.attrib;
+		%command.role.attrib;
+		%local.command.attrib;
+>
+<!--end of command.attlist-->]]>
+<!--end of command.module-->]]>
+
+<!ENTITY % computeroutput.module "INCLUDE">
+<![%computeroutput.module;[
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+
+<!ENTITY % computeroutput.element "INCLUDE">
+<![%computeroutput.element;[
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!--end of computeroutput.element-->]]>
+
+<!ENTITY % computeroutput.attlist "INCLUDE">
+<![%computeroutput.attlist;[
+<!ATTLIST computeroutput
+		%moreinfo.attrib;
+		%common.attrib;
+		%computeroutput.role.attrib;
+		%local.computeroutput.attrib;
+>
+<!--end of computeroutput.attlist-->]]>
+<!--end of computeroutput.module-->]]>
+
+<!ENTITY % database.module "INCLUDE">
+<![%database.module;[
+<!ENTITY % local.database.attrib "">
+<!ENTITY % database.role.attrib "%role.attrib;">
+
+<!ENTITY % database.element "INCLUDE">
+<![%database.element;[
+<!ELEMENT database (%smallcptr.char.mix;)*>
+<!--end of database.element-->]]>
+
+<!-- Class: Type of database the element names; no default -->
+
+
+<!ENTITY % database.attlist "INCLUDE">
+<![%database.attlist;[
+<!ATTLIST database
+		class 		(name
+				|table
+				|field
+				|key1
+				|key2
+				|record)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%database.role.attrib;
+		%local.database.attrib;
+>
+<!--end of database.attlist-->]]>
+<!--end of database.module-->]]>
+
+<!ENTITY % email.module "INCLUDE">
+<![%email.module;[
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+
+<!ENTITY % email.element "INCLUDE">
+<![%email.element;[
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!--end of email.element-->]]>
+
+<!ENTITY % email.attlist "INCLUDE">
+<![%email.attlist;[
+<!ATTLIST email
+		%common.attrib;
+		%email.role.attrib;
+		%local.email.attrib;
+>
+<!--end of email.attlist-->]]>
+<!--end of email.module-->]]>
+
+<!ENTITY % envar.module "INCLUDE">
+<![%envar.module;[
+<!ENTITY % local.envar.attrib "">
+<!ENTITY % envar.role.attrib "%role.attrib;">
+
+<!ENTITY % envar.element "INCLUDE">
+<![%envar.element;[
+<!ELEMENT envar (%smallcptr.char.mix;)*>
+<!--end of envar.element-->]]>
+
+<!ENTITY % envar.attlist "INCLUDE">
+<![%envar.attlist;[
+<!ATTLIST envar
+		%common.attrib;
+		%envar.role.attrib;
+		%local.envar.attrib;
+>
+<!--end of envar.attlist-->]]>
+<!--end of envar.module-->]]>
+
+
+<!ENTITY % errorcode.module "INCLUDE">
+<![%errorcode.module;[
+<!ENTITY % local.errorcode.attrib "">
+<!ENTITY % errorcode.role.attrib "%role.attrib;">
+
+<!ENTITY % errorcode.element "INCLUDE">
+<![%errorcode.element;[
+<!ELEMENT errorcode (%smallcptr.char.mix;)*>
+<!--end of errorcode.element-->]]>
+
+<!ENTITY % errorcode.attlist "INCLUDE">
+<![%errorcode.attlist;[
+<!ATTLIST errorcode
+		%moreinfo.attrib;
+		%common.attrib;
+		%errorcode.role.attrib;
+		%local.errorcode.attrib;
+>
+<!--end of errorcode.attlist-->]]>
+<!--end of errorcode.module-->]]>
+
+<!ENTITY % errorname.module "INCLUDE">
+<![%errorname.module;[
+<!ENTITY % local.errorname.attrib "">
+<!ENTITY % errorname.role.attrib "%role.attrib;">
+
+<!ENTITY % errorname.element "INCLUDE">
+<![%errorname.element;[
+<!ELEMENT errorname (%smallcptr.char.mix;)*>
+<!--end of errorname.element-->]]>
+
+<!ENTITY % errorname.attlist "INCLUDE">
+<![%errorname.attlist;[
+<!ATTLIST errorname
+		%common.attrib;
+		%errorname.role.attrib;
+		%local.errorname.attrib;
+>
+<!--end of errorname.attlist-->]]>
+<!--end of errorname.module-->]]>
+
+<!ENTITY % errortype.module "INCLUDE">
+<![%errortype.module;[
+<!ENTITY % local.errortype.attrib "">
+<!ENTITY % errortype.role.attrib "%role.attrib;">
+
+<!ENTITY % errortype.element "INCLUDE">
+<![%errortype.element;[
+<!ELEMENT errortype (%smallcptr.char.mix;)*>
+<!--end of errortype.element-->]]>
+
+<!ENTITY % errortype.attlist "INCLUDE">
+<![%errortype.attlist;[
+<!ATTLIST errortype
+		%common.attrib;
+		%errortype.role.attrib;
+		%local.errortype.attrib;
+>
+<!--end of errortype.attlist-->]]>
+<!--end of errortype.module-->]]>
+
+<!ENTITY % filename.module "INCLUDE">
+<![%filename.module;[
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+
+<!ENTITY % filename.element "INCLUDE">
+<![%filename.element;[
+<!ELEMENT filename (%smallcptr.char.mix;)*>
+<!--end of filename.element-->]]>
+
+<!-- Class: Type of filename the element names; no default -->
+<!-- Path: Search path (possibly system-specific) in which 
+		file can be found -->
+
+
+<!ENTITY % filename.attlist "INCLUDE">
+<![%filename.attlist;[
+<!ATTLIST filename
+		class		(headerfile
+                                |devicefile
+                                |libraryfile
+                                |directory
+				|symlink)       #IMPLIED
+		path		CDATA		#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%filename.role.attrib;
+		%local.filename.attrib;
+>
+<!--end of filename.attlist-->]]>
+<!--end of filename.module-->]]>
+
+<!ENTITY % function.module "INCLUDE">
+<![%function.module;[
+<!ENTITY % local.function.attrib "">
+<!ENTITY % function.role.attrib "%role.attrib;">
+
+<!ENTITY % function.element "INCLUDE">
+<![%function.element;[
+<!ELEMENT function (%cptr.char.mix;)*>
+<!--end of function.element-->]]>
+
+<!ENTITY % function.attlist "INCLUDE">
+<![%function.attlist;[
+<!ATTLIST function
+		%moreinfo.attrib;
+		%common.attrib;
+		%function.role.attrib;
+		%local.function.attrib;
+>
+<!--end of function.attlist-->]]>
+<!--end of function.module-->]]>
+
+<!ENTITY % guibutton.module "INCLUDE">
+<![%guibutton.module;[
+<!ENTITY % local.guibutton.attrib "">
+<!ENTITY % guibutton.role.attrib "%role.attrib;">
+
+<!ENTITY % guibutton.element "INCLUDE">
+<![%guibutton.element;[
+<!ELEMENT guibutton (%smallcptr.char.mix;|accel)*>
+<!--end of guibutton.element-->]]>
+
+<!ENTITY % guibutton.attlist "INCLUDE">
+<![%guibutton.attlist;[
+<!ATTLIST guibutton
+		%moreinfo.attrib;
+		%common.attrib;
+		%guibutton.role.attrib;
+		%local.guibutton.attrib;
+>
+<!--end of guibutton.attlist-->]]>
+<!--end of guibutton.module-->]]>
+
+<!ENTITY % guiicon.module "INCLUDE">
+<![%guiicon.module;[
+<!ENTITY % local.guiicon.attrib "">
+<!ENTITY % guiicon.role.attrib "%role.attrib;">
+
+<!ENTITY % guiicon.element "INCLUDE">
+<![%guiicon.element;[
+<!ELEMENT guiicon (%smallcptr.char.mix;|accel)*>
+<!--end of guiicon.element-->]]>
+
+<!ENTITY % guiicon.attlist "INCLUDE">
+<![%guiicon.attlist;[
+<!ATTLIST guiicon
+		%moreinfo.attrib;
+		%common.attrib;
+		%guiicon.role.attrib;
+		%local.guiicon.attrib;
+>
+<!--end of guiicon.attlist-->]]>
+<!--end of guiicon.module-->]]>
+
+<!ENTITY % guilabel.module "INCLUDE">
+<![%guilabel.module;[
+<!ENTITY % local.guilabel.attrib "">
+<!ENTITY % guilabel.role.attrib "%role.attrib;">
+
+<!ENTITY % guilabel.element "INCLUDE">
+<![%guilabel.element;[
+<!ELEMENT guilabel (%smallcptr.char.mix;|accel)*>
+<!--end of guilabel.element-->]]>
+
+<!ENTITY % guilabel.attlist "INCLUDE">
+<![%guilabel.attlist;[
+<!ATTLIST guilabel
+		%moreinfo.attrib;
+		%common.attrib;
+		%guilabel.role.attrib;
+		%local.guilabel.attrib;
+>
+<!--end of guilabel.attlist-->]]>
+<!--end of guilabel.module-->]]>
+
+<!ENTITY % guimenu.module "INCLUDE">
+<![%guimenu.module;[
+<!ENTITY % local.guimenu.attrib "">
+<!ENTITY % guimenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenu.element "INCLUDE">
+<![%guimenu.element;[
+<!ELEMENT guimenu (%smallcptr.char.mix;|accel)*>
+<!--end of guimenu.element-->]]>
+
+<!ENTITY % guimenu.attlist "INCLUDE">
+<![%guimenu.attlist;[
+<!ATTLIST guimenu
+		%moreinfo.attrib;
+		%common.attrib;
+		%guimenu.role.attrib;
+		%local.guimenu.attrib;
+>
+<!--end of guimenu.attlist-->]]>
+<!--end of guimenu.module-->]]>
+
+<!ENTITY % guimenuitem.module "INCLUDE">
+<![%guimenuitem.module;[
+<!ENTITY % local.guimenuitem.attrib "">
+<!ENTITY % guimenuitem.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenuitem.element "INCLUDE">
+<![%guimenuitem.element;[
+<!ELEMENT guimenuitem (%smallcptr.char.mix;|accel)*>
+<!--end of guimenuitem.element-->]]>
+
+<!ENTITY % guimenuitem.attlist "INCLUDE">
+<![%guimenuitem.attlist;[
+<!ATTLIST guimenuitem
+		%moreinfo.attrib;
+		%common.attrib;
+		%guimenuitem.role.attrib;
+		%local.guimenuitem.attrib;
+>
+<!--end of guimenuitem.attlist-->]]>
+<!--end of guimenuitem.module-->]]>
+
+<!ENTITY % guisubmenu.module "INCLUDE">
+<![%guisubmenu.module;[
+<!ENTITY % local.guisubmenu.attrib "">
+<!ENTITY % guisubmenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guisubmenu.element "INCLUDE">
+<![%guisubmenu.element;[
+<!ELEMENT guisubmenu (%smallcptr.char.mix;|accel)*>
+<!--end of guisubmenu.element-->]]>
+
+<!ENTITY % guisubmenu.attlist "INCLUDE">
+<![%guisubmenu.attlist;[
+<!ATTLIST guisubmenu
+		%moreinfo.attrib;
+		%common.attrib;
+		%guisubmenu.role.attrib;
+		%local.guisubmenu.attrib;
+>
+<!--end of guisubmenu.attlist-->]]>
+<!--end of guisubmenu.module-->]]>
+
+<!ENTITY % hardware.module "INCLUDE">
+<![%hardware.module;[
+<!ENTITY % local.hardware.attrib "">
+<!ENTITY % hardware.role.attrib "%role.attrib;">
+
+<!ENTITY % hardware.element "INCLUDE">
+<![%hardware.element;[
+<!ELEMENT hardware (%smallcptr.char.mix;)*>
+<!--end of hardware.element-->]]>
+
+<!ENTITY % hardware.attlist "INCLUDE">
+<![%hardware.attlist;[
+<!ATTLIST hardware
+		%moreinfo.attrib;
+		%common.attrib;
+		%hardware.role.attrib;
+		%local.hardware.attrib;
+>
+<!--end of hardware.attlist-->]]>
+<!--end of hardware.module-->]]>
+
+<!ENTITY % interface.module "INCLUDE">
+<![%interface.module;[
+<!ENTITY % local.interface.attrib "">
+<!ENTITY % interface.role.attrib "%role.attrib;">
+
+<!ENTITY % interface.element "INCLUDE">
+<![%interface.element;[
+<!ELEMENT interface (%smallcptr.char.mix;|accel)*>
+<!--end of interface.element-->]]>
+
+<!-- Class: Type of the Interface item; no default -->
+
+
+<!ENTITY % interface.attlist "INCLUDE">
+<![%interface.attlist;[
+<!ATTLIST interface
+		%moreinfo.attrib;
+		%common.attrib;
+		%interface.role.attrib;
+		%local.interface.attrib;
+>
+<!--end of interface.attlist-->]]>
+<!--end of interface.module-->]]>
+
+<!ENTITY % keycap.module "INCLUDE">
+<![%keycap.module;[
+<!ENTITY % local.keycap.attrib "">
+<!ENTITY % keycap.role.attrib "%role.attrib;">
+
+<!ENTITY % keycap.element "INCLUDE">
+<![%keycap.element;[
+<!ELEMENT keycap (%smallcptr.char.mix;)*>
+<!--end of keycap.element-->]]>
+
+<!ENTITY % keycap.attlist "INCLUDE">
+<![%keycap.attlist;[
+<!ATTLIST keycap
+		%moreinfo.attrib;
+		%common.attrib;
+		%keycap.role.attrib;
+		%local.keycap.attrib;
+>
+<!--end of keycap.attlist-->]]>
+<!--end of keycap.module-->]]>
+
+<!ENTITY % keycode.module "INCLUDE">
+<![%keycode.module;[
+<!ENTITY % local.keycode.attrib "">
+<!ENTITY % keycode.role.attrib "%role.attrib;">
+
+<!ENTITY % keycode.element "INCLUDE">
+<![%keycode.element;[
+<!ELEMENT keycode (%smallcptr.char.mix;)*>
+<!--end of keycode.element-->]]>
+
+<!ENTITY % keycode.attlist "INCLUDE">
+<![%keycode.attlist;[
+<!ATTLIST keycode
+		%common.attrib;
+		%keycode.role.attrib;
+		%local.keycode.attrib;
+>
+<!--end of keycode.attlist-->]]>
+<!--end of keycode.module-->]]>
+
+<!ENTITY % keycombo.module "INCLUDE">
+<![%keycombo.module;[
+<!ENTITY % local.keycombo.attrib "">
+<!ENTITY % keycombo.role.attrib "%role.attrib;">
+
+<!ENTITY % keycombo.element "INCLUDE">
+<![%keycombo.element;[
+<!ELEMENT keycombo ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of keycombo.element-->]]>
+
+<!ENTITY % keycombo.attlist "INCLUDE">
+<![%keycombo.attlist;[
+<!ATTLIST keycombo
+		%keyaction.attrib;
+		%moreinfo.attrib;
+		%common.attrib;
+		%keycombo.role.attrib;
+		%local.keycombo.attrib;
+>
+<!--end of keycombo.attlist-->]]>
+<!--end of keycombo.module-->]]>
+
+<!ENTITY % keysym.module "INCLUDE">
+<![%keysym.module;[
+<!ENTITY % local.keysym.attrib "">
+<!ENTITY % keysysm.role.attrib "%role.attrib;">
+
+<!ENTITY % keysym.element "INCLUDE">
+<![%keysym.element;[
+<!ELEMENT keysym (%smallcptr.char.mix;)*>
+<!--end of keysym.element-->]]>
+
+<!ENTITY % keysym.attlist "INCLUDE">
+<![%keysym.attlist;[
+<!ATTLIST keysym
+		%common.attrib;
+		%keysysm.role.attrib;
+		%local.keysym.attrib;
+>
+<!--end of keysym.attlist-->]]>
+<!--end of keysym.module-->]]>
+
+<!ENTITY % lineannotation.module "INCLUDE">
+<![%lineannotation.module;[
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+
+<!ENTITY % lineannotation.element "INCLUDE">
+<![%lineannotation.element;[
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!--end of lineannotation.element-->]]>
+
+<!ENTITY % lineannotation.attlist "INCLUDE">
+<![%lineannotation.attlist;[
+<!ATTLIST lineannotation
+		%common.attrib;
+		%lineannotation.role.attrib;
+		%local.lineannotation.attrib;
+>
+<!--end of lineannotation.attlist-->]]>
+<!--end of lineannotation.module-->]]>
+
+<!ENTITY % literal.module "INCLUDE">
+<![%literal.module;[
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+
+<!ENTITY % literal.element "INCLUDE">
+<![%literal.element;[
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!--end of literal.element-->]]>
+
+<!ENTITY % literal.attlist "INCLUDE">
+<![%literal.attlist;[
+<!ATTLIST literal
+		%moreinfo.attrib;
+		%common.attrib;
+		%literal.role.attrib;
+		%local.literal.attrib;
+>
+<!--end of literal.attlist-->]]>
+<!--end of literal.module-->]]>
+
+<!ENTITY % constant.module "INCLUDE">
+<![ %constant.module; [
+<!ENTITY % local.constant.attrib "">
+<!ENTITY % constant.role.attrib "%role.attrib;">
+
+<!ENTITY % constant.element "INCLUDE">
+<![ %constant.element; [
+<!ELEMENT constant (%smallcptr.char.mix;)*>
+<!--end of constant.element-->]]>
+
+<!ENTITY % constant.attlist "INCLUDE">
+<![ %constant.attlist; [
+<!ATTLIST constant
+		%common.attrib;
+		%constant.role.attrib;
+		%local.constant.attrib;
+		class	(limit)		#IMPLIED
+>
+<!--end of constant.attlist-->]]>
+<!--end of constant.module-->]]>
+
+<!ENTITY % varname.module "INCLUDE">
+<![ %varname.module; [
+<!ENTITY % local.varname.attrib "">
+<!ENTITY % varname.role.attrib "%role.attrib;">
+
+<!ENTITY % varname.element "INCLUDE">
+<![ %varname.element; [
+<!ELEMENT varname (%smallcptr.char.mix;)*>
+<!--end of varname.element-->]]>
+
+<!ENTITY % varname.attlist "INCLUDE">
+<![ %varname.attlist; [
+<!ATTLIST varname
+		%common.attrib;
+		%varname.role.attrib;
+		%local.varname.attrib;
+>
+<!--end of varname.attlist-->]]>
+<!--end of varname.module-->]]>
+
+<!ENTITY % markup.module "INCLUDE">
+<![%markup.module;[
+<!ENTITY % local.markup.attrib "">
+<!ENTITY % markup.role.attrib "%role.attrib;">
+
+<!ENTITY % markup.element "INCLUDE">
+<![%markup.element;[
+<!ELEMENT markup (%smallcptr.char.mix;)*>
+<!--end of markup.element-->]]>
+
+<!ENTITY % markup.attlist "INCLUDE">
+<![%markup.attlist;[
+<!ATTLIST markup
+		%common.attrib;
+		%markup.role.attrib;
+		%local.markup.attrib;
+>
+<!--end of markup.attlist-->]]>
+<!--end of markup.module-->]]>
+
+<!ENTITY % medialabel.module "INCLUDE">
+<![%medialabel.module;[
+<!ENTITY % local.medialabel.attrib "">
+<!ENTITY % medialabel.role.attrib "%role.attrib;">
+
+<!ENTITY % medialabel.element "INCLUDE">
+<![%medialabel.element;[
+<!ELEMENT medialabel (%smallcptr.char.mix;)*>
+<!--end of medialabel.element-->]]>
+
+<!-- Class: Type of medium named by the element; no default -->
+
+
+<!ENTITY % medialabel.attlist "INCLUDE">
+<![%medialabel.attlist;[
+<!ATTLIST medialabel
+		class 		(cartridge
+				|cdrom
+				|disk
+				|tape)		#IMPLIED
+		%common.attrib;
+		%medialabel.role.attrib;
+		%local.medialabel.attrib;
+>
+<!--end of medialabel.attlist-->]]>
+<!--end of medialabel.module-->]]>
+
+<!ENTITY % menuchoice.content.module "INCLUDE">
+<![%menuchoice.content.module;[
+<!ENTITY % menuchoice.module "INCLUDE">
+<![%menuchoice.module;[
+<!ENTITY % local.menuchoice.attrib "">
+<!ENTITY % menuchoice.role.attrib "%role.attrib;">
+
+<!ENTITY % menuchoice.element "INCLUDE">
+<![%menuchoice.element;[
+<!ELEMENT menuchoice (shortcut?, (guibutton|guiicon|guilabel
+		|guimenu|guimenuitem|guisubmenu|interface)+)>
+<!--end of menuchoice.element-->]]>
+
+<!ENTITY % menuchoice.attlist "INCLUDE">
+<![%menuchoice.attlist;[
+<!ATTLIST menuchoice
+		%moreinfo.attrib;
+		%common.attrib;
+		%menuchoice.role.attrib;
+		%local.menuchoice.attrib;
+>
+<!--end of menuchoice.attlist-->]]>
+<!--end of menuchoice.module-->]]>
+
+<!ENTITY % shortcut.module "INCLUDE">
+<![%shortcut.module;[
+<!-- See also KeyCombo -->
+<!ENTITY % local.shortcut.attrib "">
+<!ENTITY % shortcut.role.attrib "%role.attrib;">
+
+<!ENTITY % shortcut.element "INCLUDE">
+<![%shortcut.element;[
+<!ELEMENT shortcut ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of shortcut.element-->]]>
+
+<!ENTITY % shortcut.attlist "INCLUDE">
+<![%shortcut.attlist;[
+<!ATTLIST shortcut
+		%keyaction.attrib;
+		%moreinfo.attrib;
+		%common.attrib;
+		%shortcut.role.attrib;
+		%local.shortcut.attrib;
+>
+<!--end of shortcut.attlist-->]]>
+<!--end of shortcut.module-->]]>
+<!--end of menuchoice.content.module-->]]>
+
+<!ENTITY % mousebutton.module "INCLUDE">
+<![%mousebutton.module;[
+<!ENTITY % local.mousebutton.attrib "">
+<!ENTITY % mousebutton.role.attrib "%role.attrib;">
+
+<!ENTITY % mousebutton.element "INCLUDE">
+<![%mousebutton.element;[
+<!ELEMENT mousebutton (%smallcptr.char.mix;)*>
+<!--end of mousebutton.element-->]]>
+
+<!ENTITY % mousebutton.attlist "INCLUDE">
+<![%mousebutton.attlist;[
+<!ATTLIST mousebutton
+		%moreinfo.attrib;
+		%common.attrib;
+		%mousebutton.role.attrib;
+		%local.mousebutton.attrib;
+>
+<!--end of mousebutton.attlist-->]]>
+<!--end of mousebutton.module-->]]>
+
+<!ENTITY % msgtext.module "INCLUDE">
+<![%msgtext.module;[
+<!ENTITY % local.msgtext.attrib "">
+<!ENTITY % msgtext.role.attrib "%role.attrib;">
+
+<!ENTITY % msgtext.element "INCLUDE">
+<![%msgtext.element;[
+<!ELEMENT msgtext ((%component.mix;)+)>
+<!--end of msgtext.element-->]]>
+
+<!ENTITY % msgtext.attlist "INCLUDE">
+<![%msgtext.attlist;[
+<!ATTLIST msgtext
+		%common.attrib;
+		%msgtext.role.attrib;
+		%local.msgtext.attrib;
+>
+<!--end of msgtext.attlist-->]]>
+<!--end of msgtext.module-->]]>
+
+<!ENTITY % option.module "INCLUDE">
+<![%option.module;[
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+
+<!ENTITY % option.element "INCLUDE">
+<![%option.element;[
+<!ELEMENT option (%smallcptr.char.mix;)*>
+<!--end of option.element-->]]>
+
+<!ENTITY % option.attlist "INCLUDE">
+<![%option.attlist;[
+<!ATTLIST option
+		%common.attrib;
+		%option.role.attrib;
+		%local.option.attrib;
+>
+<!--end of option.attlist-->]]>
+<!--end of option.module-->]]>
+
+<!ENTITY % optional.module "INCLUDE">
+<![%optional.module;[
+<!ENTITY % local.optional.attrib "">
+<!ENTITY % optional.role.attrib "%role.attrib;">
+
+<!ENTITY % optional.element "INCLUDE">
+<![%optional.element;[
+<!ELEMENT optional (%cptr.char.mix;)*>
+<!--end of optional.element-->]]>
+
+<!ENTITY % optional.attlist "INCLUDE">
+<![%optional.attlist;[
+<!ATTLIST optional
+		%common.attrib;
+		%optional.role.attrib;
+		%local.optional.attrib;
+>
+<!--end of optional.attlist-->]]>
+<!--end of optional.module-->]]>
+
+<!ENTITY % parameter.module "INCLUDE">
+<![%parameter.module;[
+<!ENTITY % local.parameter.attrib "">
+<!ENTITY % parameter.role.attrib "%role.attrib;">
+
+<!ENTITY % parameter.element "INCLUDE">
+<![%parameter.element;[
+<!ELEMENT parameter (%smallcptr.char.mix;)*>
+<!--end of parameter.element-->]]>
+
+<!-- Class: Type of the Parameter; no default -->
+
+
+<!ENTITY % parameter.attlist "INCLUDE">
+<![%parameter.attlist;[
+<!ATTLIST parameter
+		class 		(command
+				|function
+				|option)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%parameter.role.attrib;
+		%local.parameter.attrib;
+>
+<!--end of parameter.attlist-->]]>
+<!--end of parameter.module-->]]>
+
+<!ENTITY % prompt.module "INCLUDE">
+<![%prompt.module;[
+<!ENTITY % local.prompt.attrib "">
+<!ENTITY % prompt.role.attrib "%role.attrib;">
+
+<!ENTITY % prompt.element "INCLUDE">
+<![%prompt.element;[
+<!ELEMENT prompt (%smallcptr.char.mix;)*>
+<!--end of prompt.element-->]]>
+
+<!ENTITY % prompt.attlist "INCLUDE">
+<![%prompt.attlist;[
+<!ATTLIST prompt
+		%moreinfo.attrib;
+		%common.attrib;
+		%prompt.role.attrib;
+		%local.prompt.attrib;
+>
+<!--end of prompt.attlist-->]]>
+<!--end of prompt.module-->]]>
+
+<!ENTITY % property.module "INCLUDE">
+<![%property.module;[
+<!ENTITY % local.property.attrib "">
+<!ENTITY % property.role.attrib "%role.attrib;">
+
+<!ENTITY % property.element "INCLUDE">
+<![%property.element;[
+<!ELEMENT property (%smallcptr.char.mix;)*>
+<!--end of property.element-->]]>
+
+<!ENTITY % property.attlist "INCLUDE">
+<![%property.attlist;[
+<!ATTLIST property
+		%moreinfo.attrib;
+		%common.attrib;
+		%property.role.attrib;
+		%local.property.attrib;
+>
+<!--end of property.attlist-->]]>
+<!--end of property.module-->]]>
+
+<!ENTITY % replaceable.module "INCLUDE">
+<![%replaceable.module;[
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+
+<!ENTITY % replaceable.element "INCLUDE">
+<![%replaceable.element;[
+<!ELEMENT replaceable (#PCDATA 
+		| %link.char.class; 
+		| optional
+		| %base.char.class; 
+		| %other.char.class; 
+		| inlinegraphic
+                | inlinemediaobject)*>
+<!--end of replaceable.element-->]]>
+
+<!-- Class: Type of information the element represents; no
+		default -->
+
+
+<!ENTITY % replaceable.attlist "INCLUDE">
+<![%replaceable.attlist;[
+<!ATTLIST replaceable
+		class		(command
+				|function
+				|option
+				|parameter)	#IMPLIED
+		%common.attrib;
+		%replaceable.role.attrib;
+		%local.replaceable.attrib;
+>
+<!--end of replaceable.attlist-->]]>
+<!--end of replaceable.module-->]]>
+
+<!ENTITY % returnvalue.module "INCLUDE">
+<![%returnvalue.module;[
+<!ENTITY % local.returnvalue.attrib "">
+<!ENTITY % returnvalue.role.attrib "%role.attrib;">
+
+<!ENTITY % returnvalue.element "INCLUDE">
+<![%returnvalue.element;[
+<!ELEMENT returnvalue (%smallcptr.char.mix;)*>
+<!--end of returnvalue.element-->]]>
+
+<!ENTITY % returnvalue.attlist "INCLUDE">
+<![%returnvalue.attlist;[
+<!ATTLIST returnvalue
+		%common.attrib;
+		%returnvalue.role.attrib;
+		%local.returnvalue.attrib;
+>
+<!--end of returnvalue.attlist-->]]>
+<!--end of returnvalue.module-->]]>
+
+<!ENTITY % sgmltag.module "INCLUDE">
+<![%sgmltag.module;[
+<!ENTITY % local.sgmltag.attrib "">
+<!ENTITY % sgmltag.role.attrib "%role.attrib;">
+
+<!ENTITY % sgmltag.element "INCLUDE">
+<![%sgmltag.element;[
+<!ELEMENT sgmltag (%smallcptr.char.mix;)*>
+<!--end of sgmltag.element-->]]>
+
+<!-- Class: Type of SGML construct the element names; no default -->
+
+
+<!ENTITY % sgmltag.attlist "INCLUDE">
+<![%sgmltag.attlist;[
+<!ATTLIST sgmltag
+		class 		(attribute
+				|attvalue
+				|element
+				|endtag
+                                |emptytag
+				|genentity
+				|numcharref
+				|paramentity
+				|pi
+                                |xmlpi
+				|starttag
+				|sgmlcomment)	#IMPLIED
+		%common.attrib;
+		%sgmltag.role.attrib;
+		%local.sgmltag.attrib;
+>
+<!--end of sgmltag.attlist-->]]>
+<!--end of sgmltag.module-->]]>
+
+<!ENTITY % structfield.module "INCLUDE">
+<![%structfield.module;[
+<!ENTITY % local.structfield.attrib "">
+<!ENTITY % structfield.role.attrib "%role.attrib;">
+
+<!ENTITY % structfield.element "INCLUDE">
+<![%structfield.element;[
+<!ELEMENT structfield (%smallcptr.char.mix;)*>
+<!--end of structfield.element-->]]>
+
+<!ENTITY % structfield.attlist "INCLUDE">
+<![%structfield.attlist;[
+<!ATTLIST structfield
+		%common.attrib;
+		%structfield.role.attrib;
+		%local.structfield.attrib;
+>
+<!--end of structfield.attlist-->]]>
+<!--end of structfield.module-->]]>
+
+<!ENTITY % structname.module "INCLUDE">
+<![%structname.module;[
+<!ENTITY % local.structname.attrib "">
+<!ENTITY % structname.role.attrib "%role.attrib;">
+
+<!ENTITY % structname.element "INCLUDE">
+<![%structname.element;[
+<!ELEMENT structname (%smallcptr.char.mix;)*>
+<!--end of structname.element-->]]>
+
+<!ENTITY % structname.attlist "INCLUDE">
+<![%structname.attlist;[
+<!ATTLIST structname
+		%common.attrib;
+		%structname.role.attrib;
+		%local.structname.attrib;
+>
+<!--end of structname.attlist-->]]>
+<!--end of structname.module-->]]>
+
+<!ENTITY % symbol.module "INCLUDE">
+<![%symbol.module;[
+<!ENTITY % local.symbol.attrib "">
+<!ENTITY % symbol.role.attrib "%role.attrib;">
+
+<!ENTITY % symbol.element "INCLUDE">
+<![%symbol.element;[
+<!ELEMENT symbol (%smallcptr.char.mix;)*>
+<!--end of symbol.element-->]]>
+
+<!-- Class: Type of symbol; no default -->
+
+
+<!ENTITY % symbol.attlist "INCLUDE">
+<![%symbol.attlist;[
+<!ATTLIST symbol
+		class		(limit)		#IMPLIED
+		%common.attrib;
+		%symbol.role.attrib;
+		%local.symbol.attrib;
+>
+<!--end of symbol.attlist-->]]>
+<!--end of symbol.module-->]]>
+
+<!ENTITY % systemitem.module "INCLUDE">
+<![%systemitem.module;[
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+
+<!ENTITY % systemitem.element "INCLUDE">
+<![%systemitem.element;[
+<!ELEMENT systemitem (%smallcptr.char.mix; | acronym)*>
+<!--end of systemitem.element-->]]>
+
+<!-- Class: Type of system item the element names; no default -->
+
+<!ENTITY % systemitem.attlist "INCLUDE">
+<![%systemitem.attlist;[
+<!ATTLIST systemitem
+		class	(constant
+			|groupname
+                        |library
+			|macro
+			|osname
+			|resource
+			|systemname
+                        |username)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%systemitem.role.attrib;
+		%local.systemitem.attrib;
+>
+<!--end of systemitem.attlist-->]]>
+<!--end of systemitem.module-->]]>
+
+
+<!ENTITY % token.module "INCLUDE">
+<![%token.module;[
+<!ENTITY % local.token.attrib "">
+<!ENTITY % token.role.attrib "%role.attrib;">
+
+<!ENTITY % token.element "INCLUDE">
+<![%token.element;[
+<!ELEMENT token (%smallcptr.char.mix;)*>
+<!--end of token.element-->]]>
+
+<!ENTITY % token.attlist "INCLUDE">
+<![%token.attlist;[
+<!ATTLIST token
+		%common.attrib;
+		%token.role.attrib;
+		%local.token.attrib;
+>
+<!--end of token.attlist-->]]>
+<!--end of token.module-->]]>
+
+<!ENTITY % type.module "INCLUDE">
+<![%type.module;[
+<!ENTITY % local.type.attrib "">
+<!ENTITY % type.role.attrib "%role.attrib;">
+
+<!ENTITY % type.element "INCLUDE">
+<![%type.element;[
+<!ELEMENT type (%smallcptr.char.mix;)*>
+<!--end of type.element-->]]>
+
+<!ENTITY % type.attlist "INCLUDE">
+<![%type.attlist;[
+<!ATTLIST type
+		%common.attrib;
+		%type.role.attrib;
+		%local.type.attrib;
+>
+<!--end of type.attlist-->]]>
+<!--end of type.module-->]]>
+
+<!ENTITY % userinput.module "INCLUDE">
+<![%userinput.module;[
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+
+<!ENTITY % userinput.element "INCLUDE">
+<![%userinput.element;[
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!--end of userinput.element-->]]>
+
+<!ENTITY % userinput.attlist "INCLUDE">
+<![%userinput.attlist;[
+<!ATTLIST userinput
+		%moreinfo.attrib;
+		%common.attrib;
+		%userinput.role.attrib;
+		%local.userinput.attrib;
+>
+<!--end of userinput.attlist-->]]>
+<!--end of userinput.module-->]]>
+
+<!-- General words and phrases ............................................ -->
+
+<!ENTITY % abbrev.module "INCLUDE">
+<![%abbrev.module;[
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % abbrev.element "INCLUDE">
+<![%abbrev.element;[
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!--end of abbrev.element-->]]>
+
+<!ENTITY % abbrev.attlist "INCLUDE">
+<![%abbrev.attlist;[
+<!ATTLIST abbrev
+		%common.attrib;
+		%abbrev.role.attrib;
+		%local.abbrev.attrib;
+>
+<!--end of abbrev.attlist-->]]>
+<!--end of abbrev.module-->]]>
+
+<!ENTITY % acronym.module "INCLUDE">
+<![%acronym.module;[
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+
+<!ENTITY % acronym.element "INCLUDE">
+<![%acronym.element;[
+<!ELEMENT acronym (%word.char.mix;)*>
+<!--end of acronym.element-->]]>
+
+<!ENTITY % acronym.attlist "INCLUDE">
+<![%acronym.attlist;[
+<!ATTLIST acronym
+		%common.attrib;
+		%acronym.role.attrib;
+		%local.acronym.attrib;
+>
+<!--end of acronym.attlist-->]]>
+<!--end of acronym.module-->]]>
+
+<!ENTITY % citation.module "INCLUDE">
+<![%citation.module;[
+<!ENTITY % local.citation.attrib "">
+<!ENTITY % citation.role.attrib "%role.attrib;">
+
+<!ENTITY % citation.element "INCLUDE">
+<![%citation.element;[
+<!ELEMENT citation (%para.char.mix;)*>
+<!--end of citation.element-->]]>
+
+<!ENTITY % citation.attlist "INCLUDE">
+<![%citation.attlist;[
+<!ATTLIST citation
+		%common.attrib;
+		%citation.role.attrib;
+		%local.citation.attrib;
+>
+<!--end of citation.attlist-->]]>
+<!--end of citation.module-->]]>
+
+<!ENTITY % citerefentry.module "INCLUDE">
+<![%citerefentry.module;[
+<!ENTITY % local.citerefentry.attrib "">
+<!ENTITY % citerefentry.role.attrib "%role.attrib;">
+
+<!ENTITY % citerefentry.element "INCLUDE">
+<![%citerefentry.element;[
+<!ELEMENT citerefentry (refentrytitle, manvolnum?)>
+<!--end of citerefentry.element-->]]>
+
+<!ENTITY % citerefentry.attlist "INCLUDE">
+<![%citerefentry.attlist;[
+<!ATTLIST citerefentry
+		%common.attrib;
+		%citerefentry.role.attrib;
+		%local.citerefentry.attrib;
+>
+<!--end of citerefentry.attlist-->]]>
+<!--end of citerefentry.module-->]]>
+
+<!ENTITY % refentrytitle.module "INCLUDE">
+<![%refentrytitle.module;[
+<!ENTITY % local.refentrytitle.attrib "">
+<!ENTITY % refentrytitle.role.attrib "%role.attrib;">
+
+<!ENTITY % refentrytitle.element "INCLUDE">
+<![%refentrytitle.element;[
+<!ELEMENT refentrytitle (%para.char.mix;)*>
+<!--end of refentrytitle.element-->]]>
+
+<!ENTITY % refentrytitle.attlist "INCLUDE">
+<![%refentrytitle.attlist;[
+<!ATTLIST refentrytitle
+		%common.attrib;
+		%refentrytitle.role.attrib;
+		%local.refentrytitle.attrib;
+>
+<!--end of refentrytitle.attlist-->]]>
+<!--end of refentrytitle.module-->]]>
+
+<!ENTITY % manvolnum.module "INCLUDE">
+<![%manvolnum.module;[
+<!ENTITY % local.manvolnum.attrib "">
+<!ENTITY % namvolnum.role.attrib "%role.attrib;">
+
+<!ENTITY % manvolnum.element "INCLUDE">
+<![%manvolnum.element;[
+<!ELEMENT manvolnum (%word.char.mix;)*>
+<!--end of manvolnum.element-->]]>
+
+<!ENTITY % manvolnum.attlist "INCLUDE">
+<![%manvolnum.attlist;[
+<!ATTLIST manvolnum
+		%common.attrib;
+		%namvolnum.role.attrib;
+		%local.manvolnum.attrib;
+>
+<!--end of manvolnum.attlist-->]]>
+<!--end of manvolnum.module-->]]>
+
+<!ENTITY % citetitle.module "INCLUDE">
+<![%citetitle.module;[
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+
+<!ENTITY % citetitle.element "INCLUDE">
+<![%citetitle.element;[
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!--end of citetitle.element-->]]>
+
+<!-- Pubwork: Genre of published work cited; no default -->
+
+
+<!ENTITY % citetitle.attlist "INCLUDE">
+<![%citetitle.attlist;[
+<!ATTLIST citetitle
+		pubwork		(article
+				|book
+				|chapter
+				|part
+				|refentry
+				|section
+				|journal
+				|series
+				|set
+				|manuscript)	#IMPLIED
+		%common.attrib;
+		%citetitle.role.attrib;
+		%local.citetitle.attrib;
+>
+<!--end of citetitle.attlist-->]]>
+<!--end of citetitle.module-->]]>
+
+<!ENTITY % emphasis.module "INCLUDE">
+<![%emphasis.module;[
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+
+<!ENTITY % emphasis.element "INCLUDE">
+<![%emphasis.element;[
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!--end of emphasis.element-->]]>
+
+<!ENTITY % emphasis.attlist "INCLUDE">
+<![%emphasis.attlist;[
+<!ATTLIST emphasis
+		%common.attrib;
+		%emphasis.role.attrib;
+		%local.emphasis.attrib;
+>
+<!--end of emphasis.attlist-->]]>
+<!--end of emphasis.module-->]]>
+
+<!ENTITY % firstterm.module "INCLUDE">
+<![%firstterm.module;[
+<!ENTITY % local.firstterm.attrib "">
+<!ENTITY % firstterm.role.attrib "%role.attrib;">
+
+<!ENTITY % firstterm.element "INCLUDE">
+<![%firstterm.element;[
+<!ELEMENT firstterm (%word.char.mix;)*>
+<!--end of firstterm.element-->]]>
+
+<!-- to GlossEntry or other explanation -->
+
+
+<!ENTITY % firstterm.attlist "INCLUDE">
+<![%firstterm.attlist;[
+<!ATTLIST firstterm
+		%linkend.attrib;		%common.attrib;
+		%firstterm.role.attrib;
+		%local.firstterm.attrib;
+>
+<!--end of firstterm.attlist-->]]>
+<!--end of firstterm.module-->]]>
+
+<!ENTITY % foreignphrase.module "INCLUDE">
+<![%foreignphrase.module;[
+<!ENTITY % local.foreignphrase.attrib "">
+<!ENTITY % foreignphrase.role.attrib "%role.attrib;">
+
+<!ENTITY % foreignphrase.element "INCLUDE">
+<![%foreignphrase.element;[
+<!ELEMENT foreignphrase (%para.char.mix;)*>
+<!--end of foreignphrase.element-->]]>
+
+<!ENTITY % foreignphrase.attlist "INCLUDE">
+<![%foreignphrase.attlist;[
+<!ATTLIST foreignphrase
+		%common.attrib;
+		%foreignphrase.role.attrib;
+		%local.foreignphrase.attrib;
+>
+<!--end of foreignphrase.attlist-->]]>
+<!--end of foreignphrase.module-->]]>
+
+<!ENTITY % glossterm.module "INCLUDE">
+<![%glossterm.module;[
+<!ENTITY % local.glossterm.attrib "">
+<!ENTITY % glossterm.role.attrib "%role.attrib;">
+
+<!ENTITY % glossterm.element "INCLUDE">
+<![%glossterm.element;[
+<!ELEMENT glossterm (%para.char.mix;)*>
+<!--end of glossterm.element-->]]>
+
+<!-- to GlossEntry if Glossterm used in text -->
+<!-- BaseForm: Provides the form of GlossTerm to be used
+		for indexing -->
+
+
+<!ENTITY % glossterm.attlist "INCLUDE">
+<![%glossterm.attlist;[
+<!ATTLIST glossterm
+		%linkend.attrib;		baseform	CDATA		#IMPLIED
+		%common.attrib;
+		%glossterm.role.attrib;
+		%local.glossterm.attrib;
+>
+<!--end of glossterm.attlist-->]]>
+<!--end of glossterm.module-->]]>
+
+<!ENTITY % phrase.module "INCLUDE">
+<![%phrase.module;[
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+
+<!ENTITY % phrase.element "INCLUDE">
+<![%phrase.element;[
+<!ELEMENT phrase (%para.char.mix;)*>
+<!--end of phrase.element-->]]>
+
+<!ENTITY % phrase.attlist "INCLUDE">
+<![%phrase.attlist;[
+<!ATTLIST phrase
+		%common.attrib;
+		%phrase.role.attrib;
+		%local.phrase.attrib;
+>
+<!--end of phrase.attlist-->]]>
+<!--end of phrase.module-->]]>
+
+<!ENTITY % quote.module "INCLUDE">
+<![%quote.module;[
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+
+<!ENTITY % quote.element "INCLUDE">
+<![%quote.element;[
+<!ELEMENT quote (%para.char.mix;)*>
+<!--end of quote.element-->]]>
+
+<!ENTITY % quote.attlist "INCLUDE">
+<![%quote.attlist;[
+<!ATTLIST quote
+		%common.attrib;
+		%quote.role.attrib;
+		%local.quote.attrib;
+>
+<!--end of quote.attlist-->]]>
+<!--end of quote.module-->]]>
+
+<!ENTITY % ssscript.module "INCLUDE">
+<![%ssscript.module;[
+<!ENTITY % local.ssscript.attrib "">
+<!ENTITY % ssscript.role.attrib "%role.attrib;">
+
+<!ENTITY % subscript.element "INCLUDE">
+<![%subscript.element;[
+<!ELEMENT subscript (#PCDATA 
+		| %link.char.class;
+		| emphasis
+		| replaceable 
+		| symbol 
+		| inlinegraphic
+                | inlinemediaobject
+		| %base.char.class; 
+		| %other.char.class;)*>
+<!--end of subscript.element-->]]>
+
+<!ENTITY % subscript.attlist "INCLUDE">
+<![%subscript.attlist;[
+<!ATTLIST subscript
+		%common.attrib;
+		%ssscript.role.attrib;
+		%local.ssscript.attrib;
+>
+<!--end of subscript.attlist-->]]>
+
+<!ENTITY % superscript.element "INCLUDE">
+<![%superscript.element;[
+<!ELEMENT superscript (#PCDATA 
+		| %link.char.class;
+		| emphasis
+		| replaceable 
+		| symbol 
+		| inlinegraphic
+                | inlinemediaobject 
+		| %base.char.class; 
+		| %other.char.class;)*>
+<!--end of superscript.element-->]]>
+
+<!ENTITY % superscript.attlist "INCLUDE">
+<![%superscript.attlist;[
+<!ATTLIST superscript
+		%common.attrib;
+		%ssscript.role.attrib;
+		%local.ssscript.attrib;
+>
+<!--end of superscript.attlist-->]]>
+<!--end of ssscript.module-->]]>
+
+<!ENTITY % trademark.module "INCLUDE">
+<![%trademark.module;[
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+
+<!ENTITY % trademark.element "INCLUDE">
+<![%trademark.element;[
+<!ELEMENT trademark (#PCDATA 
+		| %link.char.class; 
+		| %tech.char.class;
+		| %base.char.class; 
+		| %other.char.class; 
+		| inlinegraphic
+                | inlinemediaobject
+		| emphasis)*>
+<!--end of trademark.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % trademark.attlist "INCLUDE">
+<![%trademark.attlist;[
+<!ATTLIST trademark
+		class		(service
+				|trade
+				|registered
+				|copyright)	'trade'
+		%common.attrib;
+		%trademark.role.attrib;
+		%local.trademark.attrib;
+>
+<!--end of trademark.attlist-->]]>
+<!--end of trademark.module-->]]>
+
+<!ENTITY % wordasword.module "INCLUDE">
+<![%wordasword.module;[
+<!ENTITY % local.wordasword.attrib "">
+<!ENTITY % wordasword.role.attrib "%role.attrib;">
+
+<!ENTITY % wordasword.element "INCLUDE">
+<![%wordasword.element;[
+<!ELEMENT wordasword (%word.char.mix;)*>
+<!--end of wordasword.element-->]]>
+
+<!ENTITY % wordasword.attlist "INCLUDE">
+<![%wordasword.attlist;[
+<!ATTLIST wordasword
+		%common.attrib;
+		%wordasword.role.attrib;
+		%local.wordasword.attrib;
+>
+<!--end of wordasword.attlist-->]]>
+<!--end of wordasword.module-->]]>
+
+<!-- Links and cross-references ........................................... -->
+
+<!ENTITY % link.module "INCLUDE">
+<![%link.module;[
+<!--FUTURE USE (V4.0):
+......................
+All link elements will be excluded from themselves and each other.
+......................
+-->
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+
+<!ENTITY % link.element "INCLUDE">
+<![%link.element;[
+<!ELEMENT link (%para.char.mix;)*>
+<!--end of link.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+		fetched from elsewhere in the document to appear as
+		the content of this element -->
+<!-- to linked-to object -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % link.attlist "INCLUDE">
+<![%link.attlist;[
+<!ATTLIST link
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		type		CDATA		#IMPLIED
+		%common.attrib;
+		%link.role.attrib;
+		%local.link.attrib;
+>
+<!--end of link.attlist-->]]>
+<!--end of link.module-->]]>
+
+<!ENTITY % olink.module "INCLUDE">
+<![%olink.module;[
+<!ENTITY % local.olink.attrib "">
+<!ENTITY % olink.role.attrib "%role.attrib;">
+
+<!ENTITY % olink.element "INCLUDE">
+<![%olink.element;[
+<!ELEMENT olink (%para.char.mix;)*>
+<!--end of olink.element-->]]>
+
+<!-- TargetDocEnt: Name of an entity to be the target of the link -->
+<!-- LinkMode: ID of a ModeSpec containing instructions for
+		operating on the entity named by TargetDocEnt -->
+<!-- LocalInfo: Information that may be passed to ModeSpec -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % olink.attlist "INCLUDE">
+<![%olink.attlist;[
+<!ATTLIST olink
+		targetdocent	ENTITY 		#IMPLIED
+		linkmode	IDREF		#IMPLIED
+		localinfo 	CDATA		#IMPLIED
+		type		CDATA		#IMPLIED
+		%common.attrib;
+		%olink.role.attrib;
+		%local.olink.attrib;
+>
+<!--end of olink.attlist-->]]>
+<!--end of olink.module-->]]>
+
+<!ENTITY % ulink.module "INCLUDE">
+<![%ulink.module;[
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+
+<!ENTITY % ulink.element "INCLUDE">
+<![%ulink.element;[
+<!ELEMENT ulink (%para.char.mix;)*>
+<!--end of ulink.element-->]]>
+
+<!-- URL: uniform resource locator; the target of the ULink -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % ulink.attlist "INCLUDE">
+<![%ulink.attlist;[
+<!ATTLIST ulink
+		url		CDATA		#REQUIRED
+		type		CDATA		#IMPLIED
+		%common.attrib;
+		%ulink.role.attrib;
+		%local.ulink.attrib;
+>
+<!--end of ulink.attlist-->]]>
+<!--end of ulink.module-->]]>
+
+<!ENTITY % footnoteref.module "INCLUDE">
+<![%footnoteref.module;[
+<!ENTITY % local.footnoteref.attrib "">
+<!ENTITY % footnoteref.role.attrib "%role.attrib;">
+
+<!ENTITY % footnoteref.element "INCLUDE">
+<![%footnoteref.element;[
+<!ELEMENT footnoteref EMPTY>
+<!--end of footnoteref.element-->]]>
+
+<!-- to footnote content supplied elsewhere -->
+
+
+<!ENTITY % footnoteref.attlist "INCLUDE">
+<![%footnoteref.attlist;[
+<!ATTLIST footnoteref
+		%linkendreq.attrib;		%label.attrib;
+		%common.attrib;
+		%footnoteref.role.attrib;
+		%local.footnoteref.attrib;
+>
+<!--end of footnoteref.attlist-->]]>
+<!--end of footnoteref.module-->]]>
+
+<!ENTITY % xref.module "INCLUDE">
+<![%xref.module;[
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+
+<!ENTITY % xref.element "INCLUDE">
+<![%xref.element;[
+<!ELEMENT xref EMPTY>
+<!--end of xref.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+		fetched from elsewhere in the document to appear as
+		the content of this element -->
+<!-- to linked-to object -->
+
+
+<!ENTITY % xref.attlist "INCLUDE">
+<![%xref.attlist;[
+<!ATTLIST xref
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		%common.attrib;
+		%xref.role.attrib;
+		%local.xref.attrib;
+>
+<!--end of xref.attlist-->]]>
+<!--end of xref.module-->]]>
+
+<!-- Ubiquitous elements .................................................. -->
+
+<!ENTITY % anchor.module "INCLUDE">
+<![%anchor.module;[
+<!ENTITY % local.anchor.attrib "">
+<!ENTITY % anchor.role.attrib "%role.attrib;">
+
+<!ENTITY % anchor.element "INCLUDE">
+<![%anchor.element;[
+<!ELEMENT anchor EMPTY>
+<!--end of anchor.element-->]]>
+
+<!-- required -->
+<!-- replaces Lang -->
+
+
+<!ENTITY % anchor.attlist "INCLUDE">
+<![%anchor.attlist;[
+<!ATTLIST anchor
+		%idreq.attrib;		%pagenum.attrib;		%remap.attrib;
+		%xreflabel.attrib;
+		%revisionflag.attrib;
+		%effectivity.attrib;
+		%anchor.role.attrib;
+		%local.anchor.attrib;
+>
+<!--end of anchor.attlist-->]]>
+<!--end of anchor.module-->]]>
+
+<!ENTITY % beginpage.module "INCLUDE">
+<![%beginpage.module;[
+<!ENTITY % local.beginpage.attrib "">
+<!ENTITY % beginpage.role.attrib "%role.attrib;">
+
+<!ENTITY % beginpage.element "INCLUDE">
+<![%beginpage.element;[
+<!ELEMENT beginpage EMPTY>
+<!--end of beginpage.element-->]]>
+
+<!-- PageNum: Number of page that begins at this point -->
+
+
+<!ENTITY % beginpage.attlist "INCLUDE">
+<![%beginpage.attlist;[
+<!ATTLIST beginpage
+		%pagenum.attrib;
+		%common.attrib;
+		%beginpage.role.attrib;
+		%local.beginpage.attrib;
+>
+<!--end of beginpage.attlist-->]]>
+<!--end of beginpage.module-->]]>
+
+<!-- IndexTerms appear in the text flow for generating or linking an
+     index. -->
+
+<!ENTITY % indexterm.content.module "INCLUDE">
+<![%indexterm.content.module;[
+<!ENTITY % indexterm.module "INCLUDE">
+<![%indexterm.module;[
+<!ENTITY % local.indexterm.attrib "">
+<!ENTITY % indexterm.role.attrib "%role.attrib;">
+
+<!ENTITY % indexterm.element "INCLUDE">
+<![%indexterm.element;[
+<!ELEMENT indexterm (primary?, ((secondary, ((tertiary, (see|seealso+)?)
+		| see | seealso+)?) | see | seealso+)?)>
+<!--end of indexterm.element-->]]>
+
+<!-- Scope: Indicates which generated indices the IndexTerm
+		should appear in: Global (whole document set), Local (this
+		document only), or All (both) -->
+<!-- Significance: Whether this IndexTerm is the most pertinent
+		of its series (Preferred) or not (Normal, the default) -->
+<!-- Class: Indicates type of IndexTerm; default is Singular, 
+		or EndOfRange if StartRef is supplied; StartOfRange value 
+		must be supplied explicitly on starts of ranges -->
+<!-- StartRef: ID of the IndexTerm that starts the indexing 
+		range ended by this IndexTerm -->
+<!-- Zone: IDs of the elements to which the IndexTerm applies,
+		and indicates that the IndexTerm applies to those entire
+		elements rather than the point at which the IndexTerm
+		occurs -->
+
+
+<!ENTITY % indexterm.attlist "INCLUDE">
+<![%indexterm.attlist;[
+<!ATTLIST indexterm
+		%pagenum.attrib;
+		scope		(all
+				|global
+				|local)		#IMPLIED
+		significance	(preferred
+				|normal)	"normal"
+		class		(singular
+				|startofrange
+				|endofrange)	#IMPLIED
+		startref		IDREF		#IMPLIED
+		zone			IDREFS		#IMPLIED
+		%common.attrib;
+		%indexterm.role.attrib;
+		%local.indexterm.attrib;
+>
+<!--end of indexterm.attlist-->]]>
+<!--end of indexterm.module-->]]>
+
+<!ENTITY % primsecter.module "INCLUDE">
+<![%primsecter.module;[
+<!ENTITY % local.primsecter.attrib "">
+<!ENTITY % primsecter.role.attrib "%role.attrib;">
+
+
+<!ENTITY % primary.element "INCLUDE">
+<![%primary.element;[
+<!ELEMENT primary   (%ndxterm.char.mix;)*>
+<!--end of primary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+		"fourteen" for an element containing "14" -->
+
+<!ENTITY % primary.attlist "INCLUDE">
+<![%primary.attlist;[
+<!ATTLIST primary
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%primsecter.role.attrib;
+		%local.primsecter.attrib;
+>
+<!--end of primary.attlist-->]]>
+
+
+<!ENTITY % secondary.element "INCLUDE">
+<![%secondary.element;[
+<!ELEMENT secondary (%ndxterm.char.mix;)*>
+<!--end of secondary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+		"fourteen" for an element containing "14" -->
+
+<!ENTITY % secondary.attlist "INCLUDE">
+<![%secondary.attlist;[
+<!ATTLIST secondary
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%primsecter.role.attrib;
+		%local.primsecter.attrib;
+>
+<!--end of secondary.attlist-->]]>
+
+
+<!ENTITY % tertiary.element "INCLUDE">
+<![%tertiary.element;[
+<!ELEMENT tertiary  (%ndxterm.char.mix;)*>
+<!--end of tertiary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+		"fourteen" for an element containing "14" -->
+
+<!ENTITY % tertiary.attlist "INCLUDE">
+<![%tertiary.attlist;[
+<!ATTLIST tertiary
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%primsecter.role.attrib;
+		%local.primsecter.attrib;
+>
+<!--end of tertiary.attlist-->]]>
+
+<!--end of primsecter.module-->]]>
+
+<!ENTITY % seeseealso.module "INCLUDE">
+<![%seeseealso.module;[
+<!ENTITY % local.seeseealso.attrib "">
+<!ENTITY % seeseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % see.element "INCLUDE">
+<![%see.element;[
+<!ELEMENT see (%ndxterm.char.mix;)*>
+<!--end of see.element-->]]>
+
+<!ENTITY % see.attlist "INCLUDE">
+<![%see.attlist;[
+<!ATTLIST see
+		%common.attrib;
+		%seeseealso.role.attrib;
+		%local.seeseealso.attrib;
+>
+<!--end of see.attlist-->]]>
+
+<!ENTITY % seealso.element "INCLUDE">
+<![%seealso.element;[
+<!ELEMENT seealso (%ndxterm.char.mix;)*>
+<!--end of seealso.element-->]]>
+
+<!ENTITY % seealso.attlist "INCLUDE">
+<![%seealso.attlist;[
+<!ATTLIST seealso
+		%common.attrib;
+		%seeseealso.role.attrib;
+		%local.seeseealso.attrib;
+>
+<!--end of seealso.attlist-->]]>
+<!--end of seeseealso.module-->]]>
+<!--end of indexterm.content.module-->]]>
+
+<!-- End of DocBook XML information pool module V4.0 ...................... -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/dbpoolx.mod
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/docbookx.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/docbookx.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/docbookx.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,125 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML DTD V4.0 ................................................. -->
+<!-- File docbookx.dtd .................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh, and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     $Id: docbookx.dtd,v 1.1 2001/02/24 16:51:25 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for 
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This is the driver file for V4.0 of the DocBook DTD.
+     Please use the following formal public identifier to identify it:
+
+     "-//OASIS//DTD DocBook XML V4.0//EN"
+
+     For example, if your document's top-level element is Book, and
+     you are using DocBook directly, use the FPI in the DOCTYPE
+     declaration:
+
+     <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+                    "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd"
+                    [...]>
+
+     Or, if you have a higher-level driver file that customizes DocBook,
+     use the FPI in the parameter entity declaration:
+
+     <!ENTITY % DocBookDTD PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+                "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
+     %DocBookDTD;
+
+     See the documentation for detailed information on the parameter
+     entity and module scheme used in DocBook, customizing DocBook and
+     planning for interchange, and changes made since the last release
+     of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- Notation declarations ................................................ -->
+
+<!ENTITY % dbnotn.module "INCLUDE">
+<![%dbnotn.module;[
+<!ENTITY % dbnotn PUBLIC 
+"-//OASIS//ENTITIES DocBook XML Notations V4.0//EN"
+"dbnotnx.mod">
+%dbnotn;
+]]>
+
+<!-- ...................................................................... -->
+<!-- ISO character entity sets ............................................ -->
+
+<!ENTITY % dbcent.module "INCLUDE">
+<![%dbcent.module;[
+<!ENTITY euro "&#x20AC;"><!-- euro sign, U+20AC NEW -->
+<!ENTITY % dbcent PUBLIC 
+"-//OASIS//ENTITIES DocBook XML Character Entities V4.0//EN"
+"dbcentx.mod">
+%dbcent;
+]]>
+
+<!-- ...................................................................... -->
+<!-- DTD modules .......................................................... -->
+
+<!-- Information pool .............. -->
+
+<!ENTITY % dbpool.module "INCLUDE">
+<![ %dbpool.module; [
+<!ENTITY % dbpool PUBLIC 
+"-//OASIS//ELEMENTS DocBook XML Information Pool V4.0//EN"
+"dbpoolx.mod">
+%dbpool;
+]]>
+
+<!-- Redeclaration placeholder ..... -->
+
+<!ENTITY % intermod.redecl.module "IGNORE">
+<![%intermod.redecl.module;[
+<!-- Defining rdbmods here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbmods "">
+%rdbmods;
+<!--end of intermod.redecl.module-->]]>
+
+<!-- Document hierarchy ............ -->
+
+<!ENTITY % dbhier.module "INCLUDE">
+<![ %dbhier.module; [
+<!ENTITY % dbhier PUBLIC 
+"-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.0//EN"
+"dbhierx.mod">
+%dbhier;
+]]>
+
+<!-- ...................................................................... -->
+<!-- Other general entities ............................................... -->
+
+<!ENTITY % dbgenent.module "INCLUDE">
+<![ %dbgenent.module; [
+<!ENTITY % dbgenent PUBLIC
+"-//OASIS//ENTITIES DocBook XML Additional General Entities V4.0//EN"
+"dbgenent.ent">
+%dbgenent;
+]]>
+
+<!-- End of DocBook XML DTD V4.0 .......................................... -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/docbookx.dtd
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsa.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsa.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsa.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,61 @@
+<!-- iso-amsa.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY cularr	"&#x21B6;"> <!-- ANTICLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY curarr	"&#x21B7;"> <!-- CLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY dArr	"&#x21D3;"> <!-- DOWNWARDS DOUBLE ARROW -->
+<!ENTITY darr2	"&#x21CA;"> <!-- DOWNWARDS PAIRED ARROWS -->
+<!ENTITY dharl	"&#x21C3;"> <!-- DOWNWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY dharr	"&#x21C2;"> <!-- DOWNWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY lAarr	"&#x21DA;"> <!-- LEFTWARDS TRIPLE ARROW -->
+<!ENTITY Larr	"&#x219E;"> <!-- LEFTWARDS TWO HEADED ARROW -->
+<!ENTITY larr2	"&#x21C7;"> <!-- LEFTWARDS PAIRED ARROWS -->
+<!ENTITY larrhk	"&#x21A9;"> <!-- LEFTWARDS ARROW WITH HOOK -->
+<!ENTITY larrlp	"&#x21AB;"> <!-- LEFTWARDS ARROW WITH LOOP -->
+<!ENTITY larrtl	"&#x21A2;"> <!-- LEFTWARDS ARROW WITH TAIL -->
+<!ENTITY lhard	"&#x21BD;"> <!-- LEFTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY lharu	"&#x21BC;"> <!-- LEFTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY hArr	"&#x21D4;"> <!--  -->
+<!ENTITY harr	"&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY lrarr2	"&#x21C6;"> <!-- LEFTWARDS ARROW OVER RIGHTWARDS ARROW -->
+<!ENTITY rlarr2	"&#x21C4;"> <!-- RIGHTWARDS ARROW OVER LEFTWARDS ARROW -->
+<!ENTITY harrw	"&#x21AD;"> <!-- LEFT RIGHT WAVE ARROW -->
+<!ENTITY rlhar2	"&#x21CC;"> <!-- RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -->
+<!ENTITY lrhar2	"&#x21CB;"> <!-- LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -->
+<!ENTITY lsh	"&#x21B0;"> <!-- UPWARDS ARROW WITH TIP LEFTWARDS -->
+<!ENTITY map	"&#x21A6;"> <!-- RIGHTWARDS ARROW FROM BAR -->
+<!ENTITY mumap	"&#x22B8;"> <!-- MULTIMAP -->
+<!ENTITY nearr	"&#x2197;"> <!-- NORTH EAST ARROW -->
+<!ENTITY nlArr	"&#x21CD;"> <!-- LEFTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nlarr	"&#x219A;"> <!-- LEFTWARDS ARROW WITH STROKE -->
+<!ENTITY nhArr	"&#x21CE;"> <!-- LEFT RIGHT DOUBLE ARROW WITH STROKE -->
+<!ENTITY nharr	"&#x21AE;"> <!-- LEFT RIGHT ARROW WITH STROKE -->
+<!ENTITY nrarr	"&#x219B;"> <!-- RIGHTWARDS ARROW WITH STROKE -->
+<!ENTITY nrArr	"&#x21CF;"> <!-- RIGHTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nwarr	"&#x2196;"> <!-- NORTH WEST ARROW -->
+<!ENTITY olarr	"&#x21BA;"> <!-- ANTICLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY orarr	"&#x21BB;"> <!-- CLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY rAarr	"&#x21DB;"> <!-- RIGHTWARDS TRIPLE ARROW -->
+<!ENTITY Rarr	"&#x21A0;"> <!-- RIGHTWARDS TWO HEADED ARROW -->
+<!ENTITY rarr2	"&#x21C9;"> <!-- RIGHTWARDS PAIRED ARROWS -->
+<!ENTITY rarrhk	"&#x21AA;"> <!-- RIGHTWARDS ARROW WITH HOOK -->
+<!ENTITY rarrlp	"&#x21AC;"> <!-- RIGHTWARDS ARROW WITH LOOP -->
+<!ENTITY rarrtl	"&#x21A3;"> <!-- RIGHTWARDS ARROW WITH TAIL -->
+<!ENTITY rarrw	"&#x219D;"> <!-- RIGHTWARDS SQUIGGLE ARROW -->
+<!ENTITY rhard	"&#x21C1;"> <!-- RIGHTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY rharu	"&#x21C0;"> <!-- RIGHTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY rsh	"&#x21B1;"> <!-- UPWARDS ARROW WITH TIP RIGHTWARDS -->
+<!ENTITY drarr	"&#x2198;"> <!-- SOUTH EAST ARROW -->
+<!ENTITY dlarr	"&#x2199;"> <!-- SOUTH WEST ARROW -->
+<!ENTITY uArr	"&#x21D1;"> <!-- UPWARDS DOUBLE ARROW -->
+<!ENTITY uarr2	"&#x21C8;"> <!-- UPWARDS PAIRED ARROWS -->
+<!ENTITY vArr	"&#x21D5;"> <!-- UP DOWN DOUBLE ARROW -->
+<!ENTITY varr	"&#x2195;"> <!-- UP DOWN ARROW -->
+<!ENTITY uharl	"&#x21BF;"> <!-- UPWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY uharr	"&#x21BE;"> <!-- UPWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY xlArr	"&#xE200;"> <!--  -->
+<!ENTITY xhArr	"&#xE202;"> <!--  -->
+<!ENTITY xharr	"&#xE203;"> <!--  -->
+<!ENTITY xrArr	"&#xE204;"> <!--  -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsa.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsb.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsb.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsb.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,47 @@
+<!-- iso-amsb.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY amalg	"&#xE251;"> <!--  -->
+<!ENTITY Barwed	"&#x2306;"> <!-- PERSPECTIVE -->
+<!ENTITY barwed	"&#x22BC;"> <!-- NAND -->
+<!ENTITY Cap	"&#x22D2;"> <!-- DOUBLE INTERSECTION -->
+<!ENTITY Cup	"&#x22D3;"> <!-- DOUBLE UNION -->
+<!ENTITY cuvee	"&#x22CE;"> <!-- CURLY LOGICAL OR -->
+<!ENTITY cuwed	"&#x22CF;"> <!-- CURLY LOGICAL AND -->
+<!ENTITY diam	"&#x22C4;"> <!-- DIAMOND OPERATOR -->
+<!ENTITY divonx	"&#x22C7;"> <!-- DIVISION TIMES -->
+<!ENTITY intcal	"&#x22BA;"> <!-- INTERCALATE -->
+<!ENTITY lthree	"&#x22CB;"> <!-- LEFT SEMIDIRECT PRODUCT -->
+<!ENTITY ltimes	"&#x22C9;"> <!-- LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY minusb	"&#x229F;"> <!-- SQUARED MINUS -->
+<!ENTITY oast	"&#x229B;"> <!-- CIRCLED ASTERISK OPERATOR -->
+<!ENTITY ocir	"&#x229A;"> <!-- CIRCLED RING OPERATOR -->
+<!ENTITY odash	"&#x229D;"> <!-- CIRCLED DASH -->
+<!ENTITY odot	"&#x2299;"> <!-- CIRCLED DOT OPERATOR -->
+<!ENTITY ominus	"&#x2296;"> <!-- CIRCLED MINUS -->
+<!ENTITY oplus	"&#x2295;"> <!-- CIRCLED PLUS -->
+<!ENTITY osol	"&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY otimes	"&#x2297;"> <!-- CIRCLED TIMES -->
+<!ENTITY plusb	"&#x229E;"> <!-- SQUARED PLUS -->
+<!ENTITY plusdo	"&#x2214;"> <!-- DOT PLUS -->
+<!ENTITY rthree	"&#x22CC;"> <!-- RIGHT SEMIDIRECT PRODUCT -->
+<!ENTITY rtimes	"&#x22CA;"> <!-- RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY sdot	"&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY sdotb	"&#x22A1;"> <!-- SQUARED DOT OPERATOR -->
+<!ENTITY setmn	"&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sqcap	"&#x2293;"> <!-- SQUARE CAP -->
+<!ENTITY sqcup	"&#x2294;"> <!-- SQUARE CUP -->
+<!ENTITY ssetmn	"&#xE844;"> <!--  -->
+<!ENTITY sstarf	"&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY timesb	"&#x22A0;"> <!-- SQUARED TIMES -->
+<!ENTITY top	"&#x22A4;"> <!-- DOWN TACK -->
+<!ENTITY uplus	"&#x228E;"> <!-- MULTISET UNION -->
+<!ENTITY wreath	"&#x2240;"> <!-- WREATH PRODUCT -->
+<!ENTITY xcirc	"&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY xdtri	"&#x25BD;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY xutri	"&#x25B3;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY coprod	"&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY prod	"&#x220F;"> <!-- N-ARY PRODUCT -->
+<!ENTITY sum	"&#x2211;"> <!-- N-ARY SUMMATION -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsb.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsc.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsc.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsc.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<!-- iso-amsc.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY rceil	"&#x2309;"> <!-- RIGHT CEILING -->
+<!ENTITY rfloor	"&#x230B;"> <!-- RIGHT FLOOR -->
+<!ENTITY rpargt	"&#xE291;"> <!--  -->
+<!ENTITY urcorn	"&#x231D;"> <!-- TOP RIGHT CORNER -->
+<!ENTITY drcorn	"&#x231F;"> <!-- BOTTOM RIGHT CORNER -->
+<!ENTITY lceil	"&#x2308;"> <!-- LEFT CEILING -->
+<!ENTITY lfloor	"&#x230A;"> <!-- LEFT FLOOR -->
+<!--     lpargt	Unknown unicode character -->
+<!ENTITY ulcorn	"&#x231C;"> <!-- TOP LEFT CORNER -->
+<!ENTITY dlcorn	"&#x231E;"> <!-- BOTTOM LEFT CORNER -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsc.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsn.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsn.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsn.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,64 @@
+<!-- iso-amsn.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY gnap	"&#xE411;"> <!--  -->
+<!ENTITY gne	"&#x2269;"> <!--  -->
+<!ENTITY gnE	"&#x2269;"> <!--  -->
+<!ENTITY gnsim	"&#x22E7;"> <!-- GREATER-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY gvnE	"&#xE2A1;"> <!--  -->
+<!ENTITY lnap	"&#xE2A2;"> <!--  -->
+<!ENTITY lnE	"&#x2268;"> <!--  -->
+<!ENTITY lne	"&#x2268;"> <!--  -->
+<!ENTITY lnsim	"&#x22E6;"> <!--  -->
+<!ENTITY lvnE	"&#xE2A4;"> <!--  -->
+<!ENTITY nap	"&#x2249;"> <!-- NOT ALMOST EQUAL TO -->
+<!ENTITY ncong	"&#x2247;"> <!-- NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -->
+<!ENTITY nequiv	"&#x2262;"> <!-- NOT IDENTICAL TO -->
+<!ENTITY ngE	"&#x2271;"> <!--  -->
+<!ENTITY nge	"&#xE2A6;"> <!--  -->
+<!ENTITY nges	"&#x2271;"> <!--  -->
+<!ENTITY ngt	"&#x226F;"> <!-- NOT GREATER-THAN -->
+<!ENTITY nle	"&#xE2A7;"> <!--  -->
+<!ENTITY nlE	"&#x2270;"> <!--  -->
+<!ENTITY nles	"&#x2270;"> <!--  -->
+<!ENTITY nlt	"&#x226E;"> <!-- NOT LESS-THAN -->
+<!ENTITY nltri	"&#x22EA;"> <!-- NOT NORMAL SUBGROUP OF -->
+<!ENTITY nltrie	"&#x22EC;"> <!-- NOT NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY nmid	"&#x2224;"> <!-- DOES NOT DIVIDE -->
+<!ENTITY npar	"&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY npr	"&#x2280;"> <!-- DOES NOT PRECEDE -->
+<!ENTITY npre	"&#xE412;"> <!--  -->
+<!ENTITY nrtri	"&#x22EB;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP -->
+<!ENTITY nrtrie	"&#x22ED;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -->
+<!ENTITY nsc	"&#x2281;"> <!-- DOES NOT SUCCEED -->
+<!ENTITY nsce	"&#xE413;"> <!--  -->
+<!ENTITY nsim	"&#x2241;"> <!--  -->
+<!ENTITY nsime	"&#x2244;"> <!--  -->
+<!ENTITY nsmid	"&#xE2AA;"> <!--  -->
+<!ENTITY nspar	"&#xE2AB;"> <!--  -->
+<!ENTITY nsub	"&#x2284;"> <!-- NOT A SUBSET OF -->
+<!ENTITY nsube	"&#x2288;"> <!--  -->
+<!ENTITY nsubE	"&#x2288;"> <!--  -->
+<!ENTITY nsup	"&#x2285;"> <!-- NOT A SUPERSET OF -->
+<!ENTITY nsupE	"&#x2289;"> <!--  -->
+<!ENTITY nsupe	"&#x2289;"> <!--  -->
+<!ENTITY nvdash	"&#x22AC;"> <!-- DOES NOT PROVE -->
+<!ENTITY nvDash	"&#x22AD;"> <!-- NOT TRUE -->
+<!ENTITY nVDash	"&#x22AF;"> <!-- NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -->
+<!ENTITY nVdash	"&#x22AE;"> <!-- DOES NOT FORCE -->
+<!ENTITY prnap	"&#x22E8;"> <!--  -->
+<!ENTITY prnE	"&#xE2B3;"> <!--  -->
+<!ENTITY prnsim	"&#x22E8;"> <!--  -->
+<!ENTITY scnap	"&#x22E9;"> <!--  -->
+<!ENTITY scnE	"&#xE2B5;"> <!--  -->
+<!ENTITY scnsim	"&#x22E9;"> <!--  -->
+<!ENTITY subne	"&#x228A;"> <!--  -->
+<!ENTITY subnE	"&#x228A;"> <!--  -->
+<!ENTITY supne	"&#x228B;"> <!--  -->
+<!ENTITY supnE	"&#x228B;"> <!--  -->
+<!ENTITY vsubnE	"&#xE2B8;"> <!--  -->
+<!ENTITY vsubne	"&#xE2B9;"> <!--  -->
+<!ENTITY vsupne	"&#xE2BA;"> <!--  -->
+<!ENTITY vsupnE	"&#xE2BB;"> <!--  -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsn.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amso.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amso.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amso.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<!-- iso-amso.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY ang	"&#x2220;"> <!-- ANGLE -->
+<!ENTITY angmsd	"&#x2221;"> <!-- MEASURED ANGLE -->
+<!ENTITY beth	"&#x2136;"> <!-- BET SYMBOL -->
+<!ENTITY bprime	"&#x2035;"> <!-- REVERSED PRIME -->
+<!ENTITY comp	"&#x2201;"> <!-- COMPLEMENT -->
+<!ENTITY daleth	"&#x2138;"> <!-- DALET SYMBOL -->
+<!ENTITY ell	"&#x2113;"> <!-- SCRIPT SMALL L -->
+<!ENTITY empty	"&#xE2D3;"> <!--  -->
+<!ENTITY gimel	"&#x2137;"> <!-- GIMEL SYMBOL -->
+<!ENTITY image	"&#x2111;"> <!-- BLACK-LETTER CAPITAL I -->
+<!ENTITY inodot	"&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!--     jnodot	Unknown unicode character -->
+<!ENTITY nexist	"&#x2204;"> <!-- THERE DOES NOT EXIST -->
+<!ENTITY oS	"&#xE41D;"> <!--  -->
+<!ENTITY planck	"&#x210F;"> <!-- PLANCK CONSTANT OVER TWO PI -->
+<!ENTITY real	"&#x211C;"> <!-- BLACK-LETTER CAPITAL R -->
+<!ENTITY sbsol	"&#xFE68;"> <!-- SMALL REVERSE SOLIDUS -->
+<!--     vprime	Unknown unicode character -->
+<!ENTITY weierp	"&#x2118;"> <!-- SCRIPT CAPITAL P -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amso.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsr.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsr.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsr.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,89 @@
+<!-- iso-amsr.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY ape	"&#x224A;"> <!--  -->
+<!ENTITY asymp	"&#x224D;"> <!-- EQUIVALENT TO -->
+<!ENTITY bcong	"&#x224C;"> <!-- ALL EQUAL TO -->
+<!ENTITY bepsi	"&#xE420;"> <!--  -->
+<!ENTITY bowtie	"&#x22C8;"> <!--  -->
+<!ENTITY bsim	"&#x223D;"> <!--  -->
+<!ENTITY bsime	"&#x22CD;"> <!--  -->
+<!ENTITY bump	"&#x224E;"> <!--  -->
+<!ENTITY bumpe	"&#x224F;"> <!--  -->
+<!ENTITY cire	"&#x2257;"> <!--  -->
+<!ENTITY colone	"&#x2254;"> <!--  -->
+<!ENTITY cuepr	"&#x22DE;"> <!--  -->
+<!ENTITY cuesc	"&#x22DF;"> <!--  -->
+<!ENTITY cupre	"&#x227C;"> <!--  -->
+<!ENTITY dashv	"&#x22A3;"> <!--  -->
+<!ENTITY ecir	"&#x2256;"> <!--  -->
+<!ENTITY ecolon	"&#x2255;"> <!--  -->
+<!ENTITY eDot	"&#x2251;"> <!--  -->
+<!ENTITY esdot	"&#x2250;"> <!--  -->
+<!ENTITY efDot	"&#x2252;"> <!--  -->
+<!ENTITY egs	"&#x22DD;"> <!--  -->
+<!ENTITY els	"&#x22DC;"> <!--  -->
+<!ENTITY erDot	"&#x2253;"> <!--  -->
+<!ENTITY fork	"&#x22D4;"> <!--  -->
+<!ENTITY frown	"&#x2322;"> <!--  -->
+<!ENTITY gap	"&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY gsdot	"&#x22D7;"> <!--  -->
+<!ENTITY gE	"&#x2267;"> <!--  -->
+<!ENTITY gel	"&#x22DB;"> <!--  -->
+<!ENTITY gEl	"&#x22DB;"> <!--  -->
+<!ENTITY ges	"&#xE421;"> <!--  -->
+<!ENTITY Gg	"&#x22D9;"> <!-- VERY MUCH GREATER-THAN -->
+<!ENTITY gl	"&#x2277;"> <!--  -->
+<!ENTITY gsim	"&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY Gt	"&#x226B;"> <!-- MUCH GREATER-THAN -->
+<!ENTITY lap	"&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY ldot	"&#x22D6;"> <!--  -->
+<!ENTITY lE	"&#x2266;"> <!--  -->
+<!ENTITY lEg	"&#x22DA;"> <!--  -->
+<!ENTITY leg	"&#x22DA;"> <!--  -->
+<!ENTITY les	"&#xE425;"> <!--  -->
+<!ENTITY lg	"&#x2276;"> <!-- LESS-THAN OR GREATER-THAN -->
+<!ENTITY Ll	"&#x22D8;"> <!--  -->
+<!ENTITY lsim	"&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY Lt	"&#x226A;"> <!-- MUCH LESS-THAN -->
+<!ENTITY ltrie	"&#x22B4;"> <!--  -->
+<!ENTITY mid	"&#x2223;"> <!--  -->
+<!ENTITY models	"&#x22A7;"> <!-- MODELS -->
+<!ENTITY pr	"&#x227A;"> <!--  -->
+<!ENTITY prap	"&#x227E;"> <!--  -->
+<!ENTITY pre	"&#x227C;"> <!--  -->
+<!ENTITY prsim	"&#x227E;"> <!--  -->
+<!ENTITY rtrie	"&#x22B5;"> <!--  -->
+<!--     samalg	Unknown unicode character -->
+<!ENTITY sc	"&#x227B;"> <!--  -->
+<!ENTITY scap	"&#x227F;"> <!--  -->
+<!ENTITY sccue	"&#x227D;"> <!--  -->
+<!ENTITY sce	"&#x227D;"> <!--  -->
+<!ENTITY scsim	"&#x227F;"> <!--  -->
+<!ENTITY sfrown	"&#xE426;"> <!--  -->
+<!ENTITY smid	"&#xE301;"> <!--  -->
+<!ENTITY smile	"&#x2323;"> <!--  -->
+<!ENTITY spar	"&#xE302;"> <!--  -->
+<!ENTITY sqsub	"&#x228F;"> <!--  -->
+<!ENTITY sqsube	"&#x2291;"> <!--  -->
+<!ENTITY sqsup	"&#x2290;"> <!--  -->
+<!ENTITY sqsupe	"&#x2292;"> <!--  -->
+<!ENTITY ssmile	"&#xE303;"> <!--  -->
+<!ENTITY Sub	"&#x22D0;"> <!--  -->
+<!ENTITY subE	"&#x2286;"> <!--  -->
+<!ENTITY Sup	"&#x22D1;"> <!--  -->
+<!ENTITY supE	"&#x2287;"> <!--  -->
+<!ENTITY thkap	"&#xE306;"> <!--  -->
+<!ENTITY thksim	"&#xE429;"> <!--  -->
+<!ENTITY trie	"&#x225C;"> <!--  -->
+<!ENTITY twixt	"&#x226C;"> <!-- BETWEEN -->
+<!ENTITY vdash	"&#x22A2;"> <!--  -->
+<!ENTITY Vdash	"&#x22A9;"> <!--  -->
+<!ENTITY vDash	"&#x22A8;"> <!--  -->
+<!ENTITY veebar	"&#x22BB;"> <!--  -->
+<!ENTITY vltri	"&#x22B2;"> <!--  -->
+<!ENTITY vprop	"&#x221D;"> <!--  -->
+<!ENTITY vrtri	"&#x22B3;"> <!--  -->
+<!ENTITY Vvdash	"&#x22AA;"> <!--  -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-amsr.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-box.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-box.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-box.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,45 @@
+<!-- iso-box.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY boxh	"&#x2500;"> <!-- BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxv	"&#x2502;"> <!-- BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxur	"&#x2514;"> <!-- BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxul	"&#x2518;"> <!-- BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxdl	"&#x2510;"> <!-- BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxdr	"&#x250C;"> <!-- BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxvr	"&#x251C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND RIGHT -->
+<!ENTITY boxhu	"&#x2534;"> <!-- BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxvl	"&#x2524;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxhd	"&#x252C;"> <!-- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxvh	"&#x253C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxvR	"&#x255E;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxhU	"&#x2567;"> <!-- BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvL	"&#x2561;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxhD	"&#x2564;"> <!-- BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvH	"&#x256A;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxH	"&#x2550;"> <!-- BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxV	"&#x2551;"> <!-- BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxUR	"&#x2558;"> <!-- BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxUL	"&#x255B;"> <!-- BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDL	"&#x2555;"> <!-- BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDR	"&#x2552;"> <!-- BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxVR	"&#x255F;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxHU	"&#x2568;"> <!-- BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVL	"&#x2562;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxHD	"&#x2565;"> <!-- BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVH	"&#x256B;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVr	"&#x2560;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxHu	"&#x2569;"> <!-- BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxVl	"&#x2563;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxHd	"&#x2566;"> <!-- BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxVh	"&#x256C;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxuR	"&#x2559;"> <!-- BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUl	"&#x255C;"> <!-- BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxdL	"&#x2556;"> <!-- BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxDr	"&#x2553;"> <!-- BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUr	"&#x255A;"> <!-- BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxuL	"&#x255D;"> <!-- BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxDl	"&#x2557;"> <!-- BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxdR	"&#x2554;"> <!-- BOX DRAWINGS DOUBLE DOWN AND RIGHT -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-box.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-cyr1.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-cyr1.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-cyr1.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,72 @@
+<!-- iso-cyr1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acy	"&#x0430;"> <!-- CYRILLIC SMALL LETTER A -->
+<!ENTITY Acy	"&#x0410;"> <!-- CYRILLIC CAPITAL LETTER A -->
+<!ENTITY bcy	"&#x0431;"> <!-- CYRILLIC SMALL LETTER BE -->
+<!ENTITY Bcy	"&#x0411;"> <!-- CYRILLIC CAPITAL LETTER BE -->
+<!ENTITY vcy	"&#x0432;"> <!-- CYRILLIC SMALL LETTER VE -->
+<!ENTITY Vcy	"&#x0412;"> <!-- CYRILLIC CAPITAL LETTER VE -->
+<!ENTITY gcy	"&#x0433;"> <!-- CYRILLIC SMALL LETTER GHE -->
+<!ENTITY Gcy	"&#x0413;"> <!-- CYRILLIC CAPITAL LETTER GHE -->
+<!ENTITY dcy	"&#x0434;"> <!-- CYRILLIC SMALL LETTER DE -->
+<!ENTITY Dcy	"&#x0414;"> <!-- CYRILLIC CAPITAL LETTER DE -->
+<!ENTITY iecy	"&#x0435;"> <!-- CYRILLIC SMALL LETTER IE -->
+<!ENTITY IEcy	"&#x0415;"> <!-- CYRILLIC CAPITAL LETTER IE -->
+<!ENTITY iocy	"&#x0451;"> <!-- CYRILLIC SMALL LETTER IO -->
+<!ENTITY IOcy	"&#x0401;"> <!-- CYRILLIC CAPITAL LETTER IO -->
+<!ENTITY zhcy	"&#x0436;"> <!-- CYRILLIC SMALL LETTER ZHE -->
+<!ENTITY ZHcy	"&#x0416;"> <!-- CYRILLIC CAPITAL LETTER ZHE -->
+<!ENTITY zcy	"&#x0437;"> <!-- CYRILLIC SMALL LETTER ZE -->
+<!ENTITY Zcy	"&#x0417;"> <!-- CYRILLIC CAPITAL LETTER ZE -->
+<!ENTITY icy	"&#x0438;"> <!-- CYRILLIC SMALL LETTER I -->
+<!ENTITY Icy	"&#x0418;"> <!-- CYRILLIC CAPITAL LETTER I -->
+<!ENTITY jcy	"&#x0439;"> <!-- CYRILLIC SMALL LETTER SHORT I -->
+<!ENTITY Jcy	"&#x0419;"> <!-- CYRILLIC CAPITAL LETTER SHORT I -->
+<!ENTITY kcy	"&#x043A;"> <!-- CYRILLIC SMALL LETTER KA -->
+<!ENTITY Kcy	"&#x041A;"> <!-- CYRILLIC CAPITAL LETTER KA -->
+<!ENTITY lcy	"&#x043B;"> <!-- CYRILLIC SMALL LETTER EL -->
+<!ENTITY Lcy	"&#x041B;"> <!-- CYRILLIC CAPITAL LETTER EL -->
+<!ENTITY mcy	"&#x043C;"> <!-- CYRILLIC SMALL LETTER EM -->
+<!ENTITY Mcy	"&#x041C;"> <!-- CYRILLIC CAPITAL LETTER EM -->
+<!ENTITY ncy	"&#x043D;"> <!-- CYRILLIC SMALL LETTER EN -->
+<!ENTITY Ncy	"&#x041D;"> <!-- CYRILLIC CAPITAL LETTER EN -->
+<!ENTITY ocy	"&#x043E;"> <!-- CYRILLIC SMALL LETTER O -->
+<!ENTITY Ocy	"&#x041E;"> <!-- CYRILLIC CAPITAL LETTER O -->
+<!ENTITY pcy	"&#x043F;"> <!-- CYRILLIC SMALL LETTER PE -->
+<!ENTITY Pcy	"&#x041F;"> <!-- CYRILLIC CAPITAL LETTER PE -->
+<!ENTITY rcy	"&#x0440;"> <!-- CYRILLIC SMALL LETTER ER -->
+<!ENTITY Rcy	"&#x0420;"> <!-- CYRILLIC CAPITAL LETTER ER -->
+<!ENTITY scy	"&#x0441;"> <!-- CYRILLIC SMALL LETTER ES -->
+<!ENTITY Scy	"&#x0421;"> <!-- CYRILLIC CAPITAL LETTER ES -->
+<!ENTITY tcy	"&#x0442;"> <!-- CYRILLIC SMALL LETTER TE -->
+<!ENTITY Tcy	"&#x0422;"> <!-- CYRILLIC CAPITAL LETTER TE -->
+<!ENTITY ucy	"&#x0443;"> <!-- CYRILLIC SMALL LETTER U -->
+<!ENTITY Ucy	"&#x0423;"> <!-- CYRILLIC CAPITAL LETTER U -->
+<!ENTITY fcy	"&#x0444;"> <!-- CYRILLIC SMALL LETTER EF -->
+<!ENTITY Fcy	"&#x0424;"> <!-- CYRILLIC CAPITAL LETTER EF -->
+<!ENTITY khcy	"&#x0445;"> <!-- CYRILLIC SMALL LETTER HA -->
+<!ENTITY KHcy	"&#x0425;"> <!-- CYRILLIC CAPITAL LETTER HA -->
+<!ENTITY tscy	"&#x0446;"> <!-- CYRILLIC SMALL LETTER TSE -->
+<!ENTITY TScy	"&#x0426;"> <!-- CYRILLIC CAPITAL LETTER TSE -->
+<!ENTITY chcy	"&#x0447;"> <!-- CYRILLIC SMALL LETTER CHE -->
+<!ENTITY CHcy	"&#x0427;"> <!-- CYRILLIC CAPITAL LETTER CHE -->
+<!ENTITY shcy	"&#x0448;"> <!-- CYRILLIC SMALL LETTER SHA -->
+<!ENTITY SHcy	"&#x0428;"> <!-- CYRILLIC CAPITAL LETTER SHA -->
+<!ENTITY shchcy	"&#x0449;"> <!-- CYRILLIC SMALL LETTER SHCHA -->
+<!ENTITY SHCHcy	"&#x0429;"> <!-- CYRILLIC CAPITAL LETTER SHCHA -->
+<!ENTITY hardcy	"&#x044A;"> <!-- CYRILLIC SMALL LETTER HARD SIGN -->
+<!ENTITY HARDcy	"&#x042A;"> <!-- CYRILLIC CAPITAL LETTER HARD SIGN -->
+<!ENTITY ycy	"&#x044B;"> <!-- CYRILLIC SMALL LETTER YERU -->
+<!ENTITY Ycy	"&#x042B;"> <!-- CYRILLIC CAPITAL LETTER YERU -->
+<!ENTITY softcy	"&#x044C;"> <!-- CYRILLIC SMALL LETTER SOFT SIGN -->
+<!ENTITY SOFTcy	"&#x042C;"> <!-- CYRILLIC CAPITAL LETTER SOFT SIGN -->
+<!ENTITY ecy	"&#x044D;"> <!-- CYRILLIC SMALL LETTER E -->
+<!ENTITY Ecy	"&#x042D;"> <!-- CYRILLIC CAPITAL LETTER E -->
+<!ENTITY yucy	"&#x044E;"> <!-- CYRILLIC SMALL LETTER YU -->
+<!ENTITY YUcy	"&#x042E;"> <!-- CYRILLIC CAPITAL LETTER YU -->
+<!ENTITY yacy	"&#x044F;"> <!-- CYRILLIC SMALL LETTER YA -->
+<!ENTITY YAcy	"&#x042F;"> <!-- CYRILLIC CAPITAL LETTER YA -->
+<!ENTITY numero	"&#x2116;"> <!-- NUMERO SIGN -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-cyr1.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-cyr2.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-cyr2.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-cyr2.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+<!-- iso-cyr2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY djcy	"&#x0452;"> <!-- CYRILLIC SMALL LETTER DJE -->
+<!ENTITY DJcy	"&#x0402;"> <!-- CYRILLIC CAPITAL LETTER DJE -->
+<!ENTITY gjcy	"&#x0453;"> <!-- CYRILLIC SMALL LETTER GJE -->
+<!ENTITY GJcy	"&#x0403;"> <!-- CYRILLIC CAPITAL LETTER GJE -->
+<!ENTITY jukcy	"&#x0454;"> <!-- CYRILLIC SMALL LETTER UKRAINIAN IE -->
+<!ENTITY Jukcy	"&#x0404;"> <!-- CYRILLIC CAPITAL LETTER UKRAINIAN IE -->
+<!ENTITY dscy	"&#x0455;"> <!-- CYRILLIC SMALL LETTER DZE -->
+<!ENTITY DScy	"&#x0405;"> <!-- CYRILLIC CAPITAL LETTER DZE -->
+<!ENTITY iukcy	"&#x0456;"> <!-- CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY Iukcy	"&#x0406;"> <!-- CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY yicy	"&#x0457;"> <!-- CYRILLIC SMALL LETTER YI -->
+<!ENTITY YIcy	"&#x0407;"> <!-- CYRILLIC CAPITAL LETTER YI -->
+<!ENTITY jsercy	"&#x0458;"> <!-- CYRILLIC SMALL LETTER JE -->
+<!ENTITY Jsercy	"&#x0408;"> <!-- CYRILLIC CAPITAL LETTER JE -->
+<!ENTITY ljcy	"&#x0459;"> <!-- CYRILLIC SMALL LETTER LJE -->
+<!ENTITY LJcy	"&#x0409;"> <!-- CYRILLIC CAPITAL LETTER LJE -->
+<!ENTITY njcy	"&#x045A;"> <!-- CYRILLIC SMALL LETTER NJE -->
+<!ENTITY NJcy	"&#x040A;"> <!-- CYRILLIC CAPITAL LETTER NJE -->
+<!ENTITY tshcy	"&#x045B;"> <!-- CYRILLIC SMALL LETTER TSHE -->
+<!ENTITY TSHcy	"&#x040B;"> <!-- CYRILLIC CAPITAL LETTER TSHE -->
+<!ENTITY kjcy	"&#x045C;"> <!-- CYRILLIC SMALL LETTER KJE -->
+<!ENTITY KJcy	"&#x040C;"> <!-- CYRILLIC CAPITAL LETTER KJE -->
+<!ENTITY ubrcy	"&#x045E;"> <!-- CYRILLIC SMALL LETTER SHORT U -->
+<!ENTITY Ubrcy	"&#x040E;"> <!-- CYRILLIC CAPITAL LETTER SHORT U -->
+<!ENTITY dzcy	"&#x045F;"> <!-- CYRILLIC SMALL LETTER DZHE -->
+<!ENTITY DZcy	"&#x040F;"> <!-- CYRILLIC CAPITAL LETTER DZHE -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-cyr2.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-dia.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-dia.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-dia.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<!-- iso-dia.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acute	"&#x00B4;"> <!-- ACUTE ACCENT -->
+<!ENTITY breve	"&#x02D8;"> <!-- BREVE -->
+<!ENTITY caron	"&#x02C7;"> <!-- CARON -->
+<!ENTITY cedil	"&#x00B8;"> <!-- CEDILLA -->
+<!ENTITY circ	"&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY dblac	"&#x02DD;"> <!-- DOUBLE ACUTE ACCENT -->
+<!ENTITY die	"&#x00A8;"> <!--  -->
+<!ENTITY dot	"&#x02D9;"> <!-- DOT ABOVE -->
+<!ENTITY grave	"&#x0060;"> <!-- GRAVE ACCENT -->
+<!ENTITY macr	"&#x00AF;"> <!-- MACRON -->
+<!ENTITY ogon	"&#x02DB;"> <!-- OGONEK -->
+<!ENTITY ring	"&#x02DA;"> <!-- RING ABOVE -->
+<!ENTITY tilde	"&#x007E;"> <!-- TILDE -->
+<!ENTITY uml	"&#x00A8;"> <!--  -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-dia.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk1.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk1.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk1.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,54 @@
+<!-- iso-grk1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY agr	"&#x03B1;"> <!--  -->
+<!ENTITY Agr	"&#x0391;"> <!-- GREEK CAPITAL LETTER ALPHA -->
+<!ENTITY bgr	"&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY Bgr	"&#x0392;"> <!-- GREEK CAPITAL LETTER BETA -->
+<!ENTITY ggr	"&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Ggr	"&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY dgr	"&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Dgr	"&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY egr	"&#x03B5;"> <!--  -->
+<!ENTITY Egr	"&#x0395;"> <!-- GREEK CAPITAL LETTER EPSILON -->
+<!ENTITY zgr	"&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY Zgr	"&#x0396;"> <!-- GREEK CAPITAL LETTER ZETA -->
+<!ENTITY eegr	"&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY EEgr	"&#x0397;"> <!-- GREEK CAPITAL LETTER ETA -->
+<!ENTITY thgr	"&#x03B8;"> <!--  -->
+<!ENTITY THgr	"&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY igr	"&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY Igr	"&#x0399;"> <!-- GREEK CAPITAL LETTER IOTA -->
+<!ENTITY kgr	"&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY Kgr	"&#x039A;"> <!-- GREEK CAPITAL LETTER KAPPA -->
+<!ENTITY lgr	"&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lgr	"&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mgr	"&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY Mgr	"&#x039C;"> <!-- GREEK CAPITAL LETTER MU -->
+<!ENTITY ngr	"&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY Ngr	"&#x039D;"> <!-- GREEK CAPITAL LETTER NU -->
+<!ENTITY xgr	"&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xgr	"&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY ogr	"&#x03BF;"> <!-- GREEK SMALL LETTER OMICRON -->
+<!ENTITY Ogr	"&#x039F;"> <!-- GREEK CAPITAL LETTER OMICRON -->
+<!ENTITY pgr	"&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY Pgr	"&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rgr	"&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY Rgr	"&#x03A1;"> <!-- GREEK CAPITAL LETTER RHO -->
+<!ENTITY sgr	"&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sgr	"&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sfgr	"&#x03C2;"> <!--  -->
+<!ENTITY tgr	"&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY Tgr	"&#x03A4;"> <!-- GREEK CAPITAL LETTER TAU -->
+<!ENTITY ugr	"&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Ugr	"&#x03A5;"> <!--  -->
+<!ENTITY phgr	"&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY PHgr	"&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY khgr	"&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY KHgr	"&#x03A7;"> <!-- GREEK CAPITAL LETTER CHI -->
+<!ENTITY psgr	"&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY PSgr	"&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY ohgr	"&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY OHgr	"&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk1.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk2.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk2.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk2.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25 @@
+<!-- iso-grk2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacgr	"&#x03AC;"> <!-- GREEK SMALL LETTER ALPHA WITH TONOS -->
+<!ENTITY Aacgr	"&#x0386;"> <!-- GREEK CAPITAL LETTER ALPHA WITH TONOS -->
+<!ENTITY eacgr	"&#x03AD;"> <!-- GREEK SMALL LETTER EPSILON WITH TONOS -->
+<!ENTITY Eacgr	"&#x0388;"> <!-- GREEK CAPITAL LETTER EPSILON WITH TONOS -->
+<!ENTITY eeacgr	"&#x03AE;"> <!-- GREEK SMALL LETTER ETA WITH TONOS -->
+<!ENTITY EEacgr	"&#x0389;"> <!-- GREEK CAPITAL LETTER ETA WITH TONOS -->
+<!ENTITY idigr	"&#x03CA;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY Idigr	"&#x03AA;"> <!-- GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY iacgr	"&#x03AF;"> <!-- GREEK SMALL LETTER IOTA WITH TONOS -->
+<!ENTITY Iacgr	"&#x038A;"> <!-- GREEK CAPITAL LETTER IOTA WITH TONOS -->
+<!ENTITY idiagr	"&#x0390;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
+<!ENTITY oacgr	"&#x03CC;"> <!-- GREEK SMALL LETTER OMICRON WITH TONOS -->
+<!ENTITY Oacgr	"&#x038C;"> <!-- GREEK CAPITAL LETTER OMICRON WITH TONOS -->
+<!ENTITY udigr	"&#x03CB;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY Udigr	"&#x03AB;"> <!-- GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY uacgr	"&#x03CD;"> <!-- GREEK SMALL LETTER UPSILON WITH TONOS -->
+<!ENTITY Uacgr	"&#x038E;"> <!-- GREEK CAPITAL LETTER UPSILON WITH TONOS -->
+<!ENTITY udiagr	"&#x03B0;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
+<!ENTITY ohacgr	"&#x03CE;"> <!-- GREEK SMALL LETTER OMEGA WITH TONOS -->
+<!ENTITY OHacgr	"&#x038F;"> <!-- GREEK CAPITAL LETTER OMEGA WITH TONOS -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk2.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk3.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk3.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk3.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,48 @@
+<!-- iso-grk3.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY alpha	"&#x03B1;"> <!--  -->
+<!ENTITY beta	"&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY gamma	"&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Gamma	"&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY gammad	"&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY delta	"&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Delta	"&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY epsi	"&#x220A;"> <!--  -->
+<!ENTITY epsiv	"&#x03B5;"> <!--  -->
+<!ENTITY epsis	"&#x220A;"> <!--  -->
+<!ENTITY zeta	"&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY eta	"&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY thetas	"&#x03B8;"> <!--  -->
+<!ENTITY Theta	"&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY thetav	"&#x03D1;"> <!--  -->
+<!ENTITY iota	"&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY kappa	"&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY kappav	"&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY lambda	"&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lambda	"&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mu	"&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY nu	"&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY xi	"&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xi	"&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY pi	"&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY piv	"&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY Pi	"&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rho	"&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY rhov	"&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY sigma	"&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sigma	"&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sigmav	"&#x03C2;"> <!--  -->
+<!ENTITY tau	"&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY upsi	"&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Upsi	"&#x03D2;"> <!--  -->
+<!ENTITY phis	"&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY Phi	"&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY phiv	"&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY chi	"&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY psi	"&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY Psi	"&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY omega	"&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY Omega	"&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk3.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk4.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk4.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk4.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,48 @@
+<!-- iso-grk4.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY b.alpha	"&#x03B1;"> <!--  -->
+<!ENTITY b.beta	"&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY b.gamma	"&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY b.Gamma	"&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY b.gammad	"&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY b.delta	"&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY b.Delta	"&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY b.epsi	"&#x03B5;"> <!--  -->
+<!ENTITY b.epsiv	"&#x03B5;"> <!--  -->
+<!ENTITY b.epsis	"&#x03B5;"> <!--  -->
+<!ENTITY b.zeta	"&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY b.eta	"&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY b.thetas	"&#x03B8;"> <!--  -->
+<!ENTITY b.Theta	"&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY b.thetav	"&#x03D1;"> <!--  -->
+<!ENTITY b.iota	"&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY b.kappa	"&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY b.kappav	"&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY b.lambda	"&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY b.Lambda	"&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY b.mu	"&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY b.nu	"&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY b.xi	"&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY b.Xi	"&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY b.pi	"&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY b.Pi	"&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY b.piv	"&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY b.rho	"&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY b.rhov	"&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY b.sigma	"&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY b.Sigma	"&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY b.sigmav	"&#x03C2;"> <!--  -->
+<!ENTITY b.tau	"&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY b.upsi	"&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY b.Upsi	"&#x03D2;"> <!--  -->
+<!ENTITY b.phis	"&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY b.Phi	"&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY b.phiv	"&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY b.chi	"&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY b.psi	"&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY b.Psi	"&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY b.omega	"&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY b.Omega	"&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-grk4.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-lat1.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-lat1.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-lat1.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,67 @@
+<!-- iso-lat1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacute	"&#x00E1;"> <!-- LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Aacute	"&#x00C1;"> <!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY acirc	"&#x00E2;"> <!-- LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY Acirc	"&#x00C2;"> <!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY agrave	"&#x00E0;"> <!-- LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Agrave	"&#x00C0;"> <!-- LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY aring	"&#x00E5;"> <!-- LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Aring	"&#x00C5;"> <!-- LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY atilde	"&#x00E3;"> <!-- LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Atilde	"&#x00C3;"> <!-- LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY auml	"&#x00E4;"> <!-- LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Auml	"&#x00C4;"> <!-- LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY aelig	"&#x00E6;"> <!-- LATIN SMALL LETTER AE -->
+<!ENTITY AElig	"&#x00C6;"> <!-- LATIN CAPITAL LETTER AE -->
+<!ENTITY ccedil	"&#x00E7;"> <!-- LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Ccedil	"&#x00C7;"> <!-- LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY eth	"&#x00D0;"> <!-- LATIN SMALL LETTER ETH -->
+<!ENTITY ETH	"&#x00F0;"> <!-- LATIN CAPITAL LETTER ETH -->
+<!ENTITY eacute	"&#x00E9;"> <!-- LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Eacute	"&#x00C9;"> <!-- LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY ecirc	"&#x00EA;"> <!-- LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Ecirc	"&#x00CA;"> <!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY egrave	"&#x00E8;"> <!-- LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY Egrave	"&#x00C8;"> <!-- LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY euml	"&#x00EB;"> <!-- LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Euml	"&#x00CB;"> <!-- LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY iacute	"&#x00ED;"> <!-- LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Iacute	"&#x00CD;"> <!-- LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY icirc	"&#x00EE;"> <!-- LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Icirc	"&#x00CE;"> <!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY igrave	"&#x00EC;"> <!-- LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Igrave	"&#x00CC;"> <!-- LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY iuml	"&#x00EF;"> <!-- LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Iuml	"&#x00CF;"> <!-- LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY ntilde	"&#x00F1;"> <!-- LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Ntilde	"&#x00D1;"> <!-- LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY oacute	"&#x00F3;"> <!-- LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Oacute	"&#x00D3;"> <!-- LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY ocirc	"&#x00F4;"> <!-- LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ocirc	"&#x00D4;"> <!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ograve	"&#x00F2;"> <!-- LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Ograve	"&#x00D2;"> <!-- LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY oslash	"&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY Oslash	"&#x00D8;"> <!-- LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY otilde	"&#x00F5;"> <!-- LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Otilde	"&#x00D5;"> <!-- LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY ouml	"&#x00F6;"> <!-- LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY Ouml	"&#x00D6;"> <!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig	"&#x00DF;"> <!-- LATIN SMALL LETTER SHARP S -->
+<!ENTITY thorn	"&#x00FE;"> <!-- LATIN SMALL LETTER THORN -->
+<!ENTITY THORN	"&#x00DE;"> <!-- LATIN CAPITAL LETTER THORN -->
+<!ENTITY uacute	"&#x00FA;"> <!-- LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Uacute	"&#x00DA;"> <!-- LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY ucirc	"&#x00DB;"> <!-- LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ucirc	"&#x00FB;"> <!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ugrave	"&#x00F9;"> <!-- LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Ugrave	"&#x00D9;"> <!-- LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY uuml	"&#x00FC;"> <!-- LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Uuml	"&#x00DC;"> <!-- LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY yacute	"&#x00FD;"> <!-- LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY Yacute	"&#x00DD;"> <!-- LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yuml	"&#x00FF;"> <!-- LATIN SMALL LETTER Y WITH DIAERESIS -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-lat1.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-lat2.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-lat2.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-lat2.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,126 @@
+<!-- iso-lat2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY abreve	"&#x0103;"> <!-- LATIN SMALL LETTER A WITH BREVE -->
+<!ENTITY Abreve	"&#x0102;"> <!-- LATIN CAPITAL LETTER A WITH BREVE -->
+<!ENTITY amacr	"&#x0101;"> <!-- LATIN SMALL LETTER A WITH MACRON -->
+<!ENTITY Amacr	"&#x0100;"> <!-- LATIN CAPITAL LETTER A WITH MACRON -->
+<!ENTITY aogon	"&#x0105;"> <!-- LATIN SMALL LETTER A WITH OGONEK -->
+<!ENTITY Aogon	"&#x0104;"> <!-- LATIN CAPITAL LETTER A WITH OGONEK -->
+<!ENTITY cacute	"&#x0107;"> <!-- LATIN SMALL LETTER C WITH ACUTE -->
+<!ENTITY Cacute	"&#x0106;"> <!-- LATIN CAPITAL LETTER C WITH ACUTE -->
+<!ENTITY ccaron	"&#x010D;"> <!-- LATIN SMALL LETTER C WITH CARON -->
+<!ENTITY Ccaron	"&#x010C;"> <!-- LATIN CAPITAL LETTER C WITH CARON -->
+<!ENTITY ccirc	"&#x0109;"> <!-- LATIN SMALL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY Ccirc	"&#x0108;"> <!-- LATIN CAPITAL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY cdot	"&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY Cdot	"&#x010A;"> <!-- LATIN CAPITAL LETTER C WITH DOT ABOVE -->
+<!ENTITY dcaron	"&#x010F;"> <!-- LATIN SMALL LETTER D WITH CARON -->
+<!ENTITY Dcaron	"&#x010E;"> <!-- LATIN CAPITAL LETTER D WITH CARON -->
+<!ENTITY dstrok	"&#x0111;"> <!-- LATIN SMALL LETTER D WITH STROKE -->
+<!ENTITY Dstrok	"&#x0110;"> <!-- LATIN CAPITAL LETTER D WITH STROKE -->
+<!ENTITY ecaron	"&#x011B;"> <!-- LATIN SMALL LETTER E WITH CARON -->
+<!ENTITY Ecaron	"&#x011A;"> <!-- LATIN CAPITAL LETTER E WITH CARON -->
+<!ENTITY edot	"&#x0117;"> <!-- LATIN SMALL LETTER E WITH DOT ABOVE -->
+<!ENTITY Edot	"&#x0116;"> <!-- LATIN CAPITAL LETTER E WITH DOT ABOVE -->
+<!ENTITY emacr	"&#x0113;"> <!-- LATIN SMALL LETTER E WITH MACRON -->
+<!ENTITY Emacr	"&#x0112;"> <!-- LATIN CAPITAL LETTER E WITH MACRON -->
+<!ENTITY eogon	"&#x0119;"> <!-- LATIN SMALL LETTER E WITH OGONEK -->
+<!ENTITY Eogon	"&#x0118;"> <!-- LATIN CAPITAL LETTER E WITH OGONEK -->
+<!ENTITY gacute	"&#x01F5;"> <!-- LATIN SMALL LETTER G WITH ACUTE -->
+<!ENTITY gbreve	"&#x011F;"> <!-- LATIN SMALL LETTER G WITH BREVE -->
+<!ENTITY Gbreve	"&#x011E;"> <!-- LATIN CAPITAL LETTER G WITH BREVE -->
+<!ENTITY Gcedil	"&#x0122;"> <!-- LATIN CAPITAL LETTER G WITH CEDILLA -->
+<!ENTITY gcirc	"&#x011D;"> <!-- LATIN SMALL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY Gcirc	"&#x011C;"> <!-- LATIN CAPITAL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY gdot	"&#x0121;"> <!-- LATIN SMALL LETTER G WITH DOT ABOVE -->
+<!ENTITY Gdot	"&#x0120;"> <!-- LATIN CAPITAL LETTER G WITH DOT ABOVE -->
+<!ENTITY hcirc	"&#x0125;"> <!-- LATIN SMALL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY Hcirc	"&#x0124;"> <!-- LATIN CAPITAL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY hstrok	"&#x0127;"> <!-- LATIN SMALL LETTER H WITH STROKE -->
+<!ENTITY Hstrok	"&#x0126;"> <!-- LATIN CAPITAL LETTER H WITH STROKE -->
+<!ENTITY Idot	"&#x0130;"> <!-- LATIN CAPITAL LETTER I WITH DOT ABOVE -->
+<!ENTITY Imacr	"&#x012A;"> <!-- LATIN CAPITAL LETTER I WITH MACRON -->
+<!ENTITY imacr	"&#x012B;"> <!-- LATIN SMALL LETTER I WITH MACRON -->
+<!ENTITY ijlig	"&#x0133;"> <!-- LATIN SMALL LIGATURE IJ -->
+<!ENTITY IJlig	"&#x0132;"> <!-- LATIN CAPITAL LIGATURE IJ -->
+<!ENTITY inodot	"&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY iogon	"&#x012F;"> <!-- LATIN SMALL LETTER I WITH OGONEK -->
+<!ENTITY Iogon	"&#x012E;"> <!-- LATIN CAPITAL LETTER I WITH OGONEK -->
+<!ENTITY itilde	"&#x0129;"> <!-- LATIN SMALL LETTER I WITH TILDE -->
+<!ENTITY Itilde	"&#x0128;"> <!-- LATIN CAPITAL LETTER I WITH TILDE -->
+<!ENTITY jcirc	"&#x0135;"> <!-- LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY Jcirc	"&#x0134;"> <!-- LATIN CAPITAL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY kcedil	"&#x0137;"> <!-- LATIN SMALL LETTER K WITH CEDILLA -->
+<!ENTITY Kcedil	"&#x0136;"> <!-- LATIN CAPITAL LETTER K WITH CEDILLA -->
+<!ENTITY kgreen	"&#x0138;"> <!-- LATIN SMALL LETTER KRA -->
+<!ENTITY lacute	"&#x013A;"> <!-- LATIN SMALL LETTER L WITH ACUTE -->
+<!ENTITY Lacute	"&#x0139;"> <!-- LATIN CAPITAL LETTER L WITH ACUTE -->
+<!ENTITY lcaron	"&#x013E;"> <!-- LATIN SMALL LETTER L WITH CARON -->
+<!ENTITY Lcaron	"&#x013D;"> <!-- LATIN CAPITAL LETTER L WITH CARON -->
+<!ENTITY lcedil	"&#x013C;"> <!-- LATIN SMALL LETTER L WITH CEDILLA -->
+<!ENTITY Lcedil	"&#x013B;"> <!-- LATIN CAPITAL LETTER L WITH CEDILLA -->
+<!ENTITY lmidot	"&#x0140;"> <!-- LATIN SMALL LETTER L WITH MIDDLE DOT -->
+<!ENTITY Lmidot	"&#x013F;"> <!-- LATIN CAPITAL LETTER L WITH MIDDLE DOT -->
+<!ENTITY lstrok	"&#x0142;"> <!-- LATIN SMALL LETTER L WITH STROKE -->
+<!ENTITY Lstrok	"&#x0141;"> <!-- LATIN CAPITAL LETTER L WITH STROKE -->
+<!ENTITY nacute	"&#x0144;"> <!-- LATIN SMALL LETTER N WITH ACUTE -->
+<!ENTITY Nacute	"&#x0143;"> <!-- LATIN CAPITAL LETTER N WITH ACUTE -->
+<!ENTITY eng	"&#x014B;"> <!-- LATIN SMALL LETTER ENG -->
+<!ENTITY ENG	"&#x014A;"> <!-- LATIN CAPITAL LETTER ENG -->
+<!ENTITY napos	"&#x0149;"> <!-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -->
+<!ENTITY ncaron	"&#x0148;"> <!-- LATIN SMALL LETTER N WITH CARON -->
+<!ENTITY Ncaron	"&#x0147;"> <!-- LATIN CAPITAL LETTER N WITH CARON -->
+<!ENTITY ncedil	"&#x0146;"> <!-- LATIN SMALL LETTER N WITH CEDILLA -->
+<!ENTITY Ncedil	"&#x0145;"> <!-- LATIN CAPITAL LETTER N WITH CEDILLA -->
+<!ENTITY odblac	"&#x0151;"> <!-- LATIN SMALL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Odblac	"&#x0150;"> <!-- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Omacr	"&#x014C;"> <!-- LATIN CAPITAL LETTER O WITH MACRON -->
+<!ENTITY omacr	"&#x014D;"> <!-- LATIN SMALL LETTER O WITH MACRON -->
+<!ENTITY oelig	"&#x0153;"> <!-- LATIN SMALL LIGATURE OE -->
+<!ENTITY OElig	"&#x0152;"> <!-- LATIN CAPITAL LIGATURE OE -->
+<!ENTITY racute	"&#x0155;"> <!-- LATIN SMALL LETTER R WITH ACUTE -->
+<!ENTITY Racute	"&#x0154;"> <!-- LATIN CAPITAL LETTER R WITH ACUTE -->
+<!ENTITY rcaron	"&#x0159;"> <!-- LATIN SMALL LETTER R WITH CARON -->
+<!ENTITY Rcaron	"&#x0158;"> <!-- LATIN CAPITAL LETTER R WITH CARON -->
+<!ENTITY rcedil	"&#x0157;"> <!-- LATIN SMALL LETTER R WITH CEDILLA -->
+<!ENTITY Rcedil	"&#x0156;"> <!-- LATIN CAPITAL LETTER R WITH CEDILLA -->
+<!ENTITY sacute	"&#x015B;"> <!-- LATIN SMALL LETTER S WITH ACUTE -->
+<!ENTITY Sacute	"&#x015A;"> <!-- LATIN CAPITAL LETTER S WITH ACUTE -->
+<!ENTITY scaron	"&#x0161;"> <!-- LATIN SMALL LETTER S WITH CARON -->
+<!ENTITY Scaron	"&#x0160;"> <!-- LATIN CAPITAL LETTER S WITH CARON -->
+<!ENTITY scedil	"&#x015F;"> <!-- LATIN SMALL LETTER S WITH CEDILLA -->
+<!ENTITY Scedil	"&#x015E;"> <!-- LATIN CAPITAL LETTER S WITH CEDILLA -->
+<!ENTITY scirc	"&#x015D;"> <!-- LATIN SMALL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY Scirc	"&#x015C;"> <!-- LATIN CAPITAL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY tcaron	"&#x0165;"> <!-- LATIN SMALL LETTER T WITH CARON -->
+<!ENTITY Tcaron	"&#x0164;"> <!-- LATIN CAPITAL LETTER T WITH CARON -->
+<!ENTITY tcedil	"&#x0163;"> <!-- LATIN SMALL LETTER T WITH CEDILLA -->
+<!ENTITY Tcedil	"&#x0162;"> <!-- LATIN CAPITAL LETTER T WITH CEDILLA -->
+<!ENTITY tstrok	"&#x0167;"> <!-- LATIN SMALL LETTER T WITH STROKE -->
+<!ENTITY Tstrok	"&#x0166;"> <!-- LATIN CAPITAL LETTER T WITH STROKE -->
+<!ENTITY ubreve	"&#x016D;"> <!-- LATIN SMALL LETTER U WITH BREVE -->
+<!ENTITY Ubreve	"&#x016C;"> <!-- LATIN CAPITAL LETTER U WITH BREVE -->
+<!ENTITY udblac	"&#x0171;"> <!-- LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY Udblac	"&#x0170;"> <!-- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY umacr	"&#x016B;"> <!-- LATIN SMALL LETTER U WITH MACRON -->
+<!ENTITY Umacr	"&#x016A;"> <!-- LATIN CAPITAL LETTER U WITH MACRON -->
+<!ENTITY uogon	"&#x0173;"> <!-- LATIN SMALL LETTER U WITH OGONEK -->
+<!ENTITY Uogon	"&#x0172;"> <!-- LATIN CAPITAL LETTER U WITH OGONEK -->
+<!ENTITY uring	"&#x016F;"> <!-- LATIN SMALL LETTER U WITH RING ABOVE -->
+<!ENTITY Uring	"&#x016E;"> <!-- LATIN CAPITAL LETTER U WITH RING ABOVE -->
+<!ENTITY utilde	"&#x0169;"> <!-- LATIN SMALL LETTER U WITH TILDE -->
+<!ENTITY Utilde	"&#x0168;"> <!-- LATIN CAPITAL LETTER U WITH TILDE -->
+<!ENTITY wcirc	"&#x0175;"> <!-- LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY Wcirc	"&#x0174;"> <!-- LATIN CAPITAL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY ycirc	"&#x0177;"> <!-- LATIN SMALL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Ycirc	"&#x0176;"> <!-- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Yuml	"&#x0178;"> <!-- LATIN CAPITAL LETTER Y WITH DIAERESIS -->
+<!ENTITY zacute	"&#x017A;"> <!-- LATIN SMALL LETTER Z WITH ACUTE -->
+<!ENTITY Zacute	"&#x0179;"> <!-- LATIN CAPITAL LETTER Z WITH ACUTE -->
+<!ENTITY zcaron	"&#x017E;"> <!-- LATIN SMALL LETTER Z WITH CARON -->
+<!ENTITY Zcaron	"&#x017D;"> <!-- LATIN CAPITAL LETTER Z WITH CARON -->
+<!ENTITY zdot	"&#x017C;"> <!-- LATIN SMALL LETTER Z WITH DOT ABOVE -->
+<!ENTITY Zdot	"&#x017B;"> <!-- LATIN CAPITAL LETTER Z WITH DOT ABOVE -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-lat2.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-num.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-num.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-num.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,81 @@
+<!-- iso-num.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY half	"&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac12	"&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14	"&#x00BC;"> <!-- VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac34	"&#x00BE;"> <!-- VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac18	"&#x215B;"> <!--  -->
+<!ENTITY frac38	"&#x215C;"> <!--  -->
+<!ENTITY frac58	"&#x215D;"> <!--  -->
+<!ENTITY frac78	"&#x215E;"> <!--  -->
+<!ENTITY sup1	"&#x00B9;"> <!-- SUPERSCRIPT ONE -->
+<!ENTITY sup2	"&#x00B2;"> <!-- SUPERSCRIPT TWO -->
+<!ENTITY sup3	"&#x00B3;"> <!-- SUPERSCRIPT THREE -->
+<!ENTITY plus	"&#x002B;"> <!-- PLUS SIGN -->
+<!ENTITY plusmn	"&#x00B1;"> <!-- PLUS-MINUS SIGN -->
+<!ENTITY lt	"&#38;#60;"> <!-- LESS-THAN SIGN -->
+<!ENTITY equals	"&#x003D;"> <!-- EQUALS SIGN -->
+<!ENTITY gt	"&#x003E;"> <!-- GREATER-THAN SIGN -->
+<!ENTITY divide	"&#x00F7;"> <!-- DIVISION SIGN -->
+<!ENTITY times	"&#x00D7;"> <!-- MULTIPLICATION SIGN -->
+<!ENTITY curren	"&#x00A4;"> <!-- CURRENCY SIGN -->
+<!ENTITY pound	"&#x00A3;"> <!-- POUND SIGN -->
+<!ENTITY dollar	"&#x0024;"> <!-- DOLLAR SIGN -->
+<!ENTITY cent	"&#x00A2;"> <!-- CENT SIGN -->
+<!ENTITY yen	"&#x00A5;"> <!-- YEN SIGN -->
+<!ENTITY num	"&#x0023;"> <!-- NUMBER SIGN -->
+<!ENTITY percnt	"&#x0025;"> <!-- PERCENT SIGN -->
+<!ENTITY amp	"&#38;#38;"> <!-- AMPERSAND -->
+<!ENTITY ast	"&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY commat	"&#x0040;"> <!-- COMMERCIAL AT -->
+<!ENTITY lsqb	"&#x005B;"> <!-- LEFT SQUARE BRACKET -->
+<!ENTITY bsol	"&#x005C;"> <!-- REVERSE SOLIDUS -->
+<!ENTITY rsqb	"&#x005D;"> <!-- RIGHT SQUARE BRACKET -->
+<!ENTITY lcub	"&#x007B;"> <!-- LEFT CURLY BRACKET -->
+<!ENTITY horbar	"&#x2015;"> <!-- HORIZONTAL BAR -->
+<!ENTITY verbar	"&#x007C;"> <!-- VERTICAL LINE -->
+<!ENTITY rcub	"&#x007D;"> <!-- RIGHT CURLY BRACKET -->
+<!ENTITY micro	"&#x00B5;"> <!-- MICRO SIGN -->
+<!ENTITY ohm	"&#x2126;"> <!-- OHM SIGN -->
+<!ENTITY deg	"&#x00B0;"> <!-- DEGREE SIGN -->
+<!ENTITY ordm	"&#x00BA;"> <!-- MASCULINE ORDINAL INDICATOR -->
+<!ENTITY ordf	"&#x00AA;"> <!-- FEMININE ORDINAL INDICATOR -->
+<!ENTITY sect	"&#x00A7;"> <!-- SECTION SIGN -->
+<!ENTITY para	"&#x00B6;"> <!-- PILCROW SIGN -->
+<!ENTITY middot	"&#x00B7;"> <!-- MIDDLE DOT -->
+<!ENTITY larr	"&#x2190;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY rarr	"&#x2192;"> <!-- RIGHTWARDS DOUBLE ARROW -->
+<!ENTITY uarr	"&#x2191;"> <!-- UPWARDS ARROW -->
+<!ENTITY darr	"&#x2193;"> <!-- DOWNWARDS ARROW -->
+<!ENTITY copy	"&#x00A9;"> <!-- COPYRIGHT SIGN -->
+<!ENTITY reg	"&#x00AE;"> <!-- REG TRADE MARK SIGN -->
+<!ENTITY trade	"&#x2122;"> <!-- TRADE MARK SIGN -->
+<!ENTITY brvbar	"&#x00A6;"> <!-- BROKEN BAR -->
+<!ENTITY not	"&#x00AC;"> <!-- NOT SIGN -->
+<!ENTITY sung	"&#x2669;"> <!--  -->
+<!ENTITY excl	"&#x0021;"> <!-- EXCLAMATION MARK -->
+<!ENTITY iexcl	"&#x00A1;"> <!-- INVERTED EXCLAMATION MARK -->
+<!ENTITY quot	"&#x0022;"> <!-- QUOTATION MARK -->
+<!ENTITY apos	"&#x0027;"> <!-- APOSTROPHE -->
+<!ENTITY lpar	"&#x0028;"> <!-- LEFT PARENTHESIS -->
+<!ENTITY rpar	"&#x0029;"> <!-- RIGHT PARENTHESIS -->
+<!ENTITY comma	"&#x002C;"> <!-- COMMA -->
+<!ENTITY lowbar	"&#x005F;"> <!-- LOW LINE -->
+<!ENTITY hyphen	"&#xE4F8;"> <!--  -->
+<!ENTITY period	"&#x002E;"> <!-- FULL STOP -->
+<!ENTITY sol	"&#x002F;"> <!-- SOLIDUS -->
+<!ENTITY colon	"&#x003A;"> <!-- COLON -->
+<!ENTITY semi	"&#x003B;"> <!-- SEMICOLON -->
+<!ENTITY quest	"&#x003F;"> <!-- QUESTION MARK -->
+<!ENTITY iquest	"&#x00BF;"> <!-- INVERTED QUESTION MARK -->
+<!ENTITY laquo	"&#x00AB;"> <!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY raquo	"&#x00BB;"> <!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY lsquo	"&#x2018;"> <!--  -->
+<!ENTITY rsquo	"&#x2019;"> <!-- RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY ldquo	"&#x201C;"> <!--  -->
+<!ENTITY rdquo	"&#x201D;"> <!-- RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY nbsp	"&#x00A0;"> <!-- NO-BREAK SPACE -->
+<!ENTITY shy	"&#x00AD;"> <!-- SOFT HYPHEN -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-num.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-pub.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-pub.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-pub.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,90 @@
+<!-- iso-pub.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY emsp	"&#x2003;"> <!-- EM SPACE -->
+<!ENTITY ensp	"&#x2002;"> <!-- EN SPACE -->
+<!ENTITY emsp13	"&#x2004;"> <!-- THREE-PER-EM SPACE -->
+<!ENTITY emsp14	"&#x2005;"> <!-- FOUR-PER-EM SPACE -->
+<!ENTITY numsp	"&#x2007;"> <!-- FIGURE SPACE -->
+<!ENTITY puncsp	"&#x2008;"> <!-- PUNCTUATION SPACE -->
+<!ENTITY thinsp	"&#x2009;"> <!-- THIN SPACE -->
+<!ENTITY hairsp	"&#x200A;"> <!-- HAIR SPACE -->
+<!ENTITY mdash	"&#x2014;"> <!-- EM DASH -->
+<!ENTITY ndash	"&#x2013;"> <!-- EN DASH -->
+<!ENTITY dash	"&#x2010;"> <!-- HYPHEN -->
+<!ENTITY blank	"&#x2423;"> <!-- OPEN BOX -->
+<!ENTITY hellip	"&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY nldr	"&#x2025;"> <!-- TWO DOT LEADER -->
+<!ENTITY frac13	"&#x2153;"> <!-- VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac23	"&#x2154;"> <!-- VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac15	"&#x2155;"> <!-- VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac25	"&#x2156;"> <!-- VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35	"&#x2157;"> <!-- VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45	"&#x2158;"> <!-- VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac16	"&#x2159;"> <!-- VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac56	"&#x215A;"> <!-- VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY incare	"&#x2105;"> <!-- CARE OF -->
+<!ENTITY block	"&#x2588;"> <!-- FULL BLOCK -->
+<!ENTITY uhblk	"&#x2580;"> <!-- UPPER HALF BLOCK -->
+<!ENTITY lhblk	"&#x2584;"> <!-- LOWER HALF BLOCK -->
+<!ENTITY blk14	"&#x2591;"> <!-- LIGHT SHADE -->
+<!ENTITY blk12	"&#x2592;"> <!-- MEDIUM SHADE -->
+<!ENTITY blk34	"&#x2593;"> <!-- DARK SHADE -->
+<!ENTITY marker	"&#x25AE;"> <!-- BLACK VERTICAL RECTANGLE -->
+<!ENTITY cir	"&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY squ	"&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY rect	"&#x25AD;"> <!-- WHITE RECTANGLE -->
+<!ENTITY utri	"&#x25B5;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY dtri	"&#x25BF;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY star	"&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY bull	"&#x2022;"> <!-- BULLET -->
+<!ENTITY squf	"&#x25AA;"> <!--  -->
+<!ENTITY utrif	"&#x25B4;"> <!-- BLACK UP-POINTING TRIANGLE -->
+<!ENTITY dtrif	"&#x25BE;"> <!-- BLACK DOWN-POINTING TRIANGLE -->
+<!ENTITY ltrif	"&#x25C2;"> <!-- BLACK LEFT-POINTING TRIANGLE -->
+<!ENTITY rtrif	"&#x25B8;"> <!-- BLACK RIGHT-POINTING TRIANGLE -->
+<!ENTITY clubs	"&#x2663;"> <!-- BLACK CLUB SUIT -->
+<!ENTITY diams	"&#x2666;"> <!-- BLACK DIAMOND SUIT -->
+<!ENTITY hearts	"&#x2665;"> <!-- BLACK HEART SUIT -->
+<!ENTITY spades	"&#x2660;"> <!-- BLACK SPADE SUIT -->
+<!ENTITY malt	"&#x2720;"> <!-- MALTESE CROSS -->
+<!ENTITY dagger	"&#x2020;"> <!-- DAGGER -->
+<!ENTITY Dagger	"&#x2021;"> <!-- DOUBLE DAGGER -->
+<!ENTITY check	"&#x2713;"> <!-- CHECK MARK -->
+<!ENTITY cross	"&#x2717;"> <!-- BALLOT X -->
+<!ENTITY sharp	"&#x266F;"> <!-- MUSIC SHARP SIGN -->
+<!ENTITY flat	"&#x266D;"> <!-- MUSIC FLAT SIGN -->
+<!ENTITY male	"&#x2642;"> <!-- MALE SIGN -->
+<!ENTITY female	"&#x2640;"> <!--  -->
+<!ENTITY phone	"&#x260E;"> <!-- TELEPHONE SIGN -->
+<!ENTITY telrec	"&#x2315;"> <!-- TELEPHONE RECORDER -->
+<!ENTITY copysr	"&#x2117;"> <!-- SOUND RECORDING COPYRIGHT -->
+<!ENTITY caret	"&#x2041;"> <!-- CARET -->
+<!ENTITY lsquor	"&#x201A;"> <!-- SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ldquor	"&#x201E;"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY fflig	"&#xFB00;"> <!--  -->
+<!ENTITY filig	"&#xFB01;"> <!--  -->
+<!--     fjlig	Unknown unicode character -->
+<!ENTITY ffilig	"&#xFB03;"> <!--  -->
+<!ENTITY ffllig	"&#xFB04;"> <!--  -->
+<!ENTITY fllig	"&#xFB02;"> <!--  -->
+<!ENTITY mldr	"&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY rdquor	"&#x201C;"> <!--  -->
+<!ENTITY rsquor	"&#x2018;"> <!--  -->
+<!ENTITY vellip	"&#x22EE;"> <!--  -->
+<!ENTITY hybull	"&#x2043;"> <!-- HYPHEN BULLET -->
+<!ENTITY loz	"&#x25CA;"> <!-- LOZENGE -->
+<!ENTITY lozf	"&#x2726;"> <!--  -->
+<!ENTITY ltri	"&#x25C3;"> <!-- WHITE LEFT-POINTING TRIANGLE -->
+<!ENTITY rtri	"&#x25B9;"> <!-- WHITE RIGHT-POINTING TRIANGLE -->
+<!ENTITY starf	"&#x2605;"> <!-- BLACK STAR -->
+<!ENTITY natur	"&#x266E;"> <!-- MUSIC NATURAL SIGN -->
+<!ENTITY rx	"&#x211E;"> <!-- PRESCRIPTION TAKE -->
+<!ENTITY sext	"&#x2736;"> <!-- SIX POINTED BLACK STAR -->
+<!ENTITY target	"&#x2316;"> <!-- POSITION INDICATOR -->
+<!ENTITY dlcrop	"&#x230D;"> <!-- BOTTOM LEFT CROP -->
+<!ENTITY drcrop	"&#x230C;"> <!-- BOTTOM RIGHT CROP -->
+<!ENTITY ulcrop	"&#x230F;"> <!-- TOP LEFT CROP -->
+<!ENTITY urcrop	"&#x230E;"> <!-- TOP RIGHT CROP -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-pub.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-tech.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-tech.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-tech.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,67 @@
+<!-- iso-tech.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aleph	"&#x2135;"> <!-- ALEF SYMBOL -->
+<!ENTITY and	"&#x2227;"> <!--  -->
+<!ENTITY ang90	"&#x221F;"> <!-- RIGHT ANGLE -->
+<!ENTITY angsph	"&#x2222;"> <!--  -->
+<!ENTITY ap	"&#x2248;"> <!--  -->
+<!ENTITY becaus	"&#x2235;"> <!-- BECAUSE -->
+<!ENTITY bottom	"&#x22A5;"> <!--  -->
+<!ENTITY cap	"&#x2229;"> <!--  -->
+<!ENTITY cong	"&#x2245;"> <!--  -->
+<!ENTITY conint	"&#x222E;"> <!--  -->
+<!ENTITY cup	"&#x222A;"> <!--  -->
+<!ENTITY equiv	"&#x2261;"> <!--  -->
+<!ENTITY exist	"&#x2203;"> <!--  -->
+<!ENTITY forall	"&#x2200;"> <!--  -->
+<!ENTITY fnof	"&#x0192;"> <!-- LATIN SMALL LETTER F WITH HOOK -->
+<!ENTITY ge	"&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY iff	"&#xE365;"> <!--  -->
+<!ENTITY infin	"&#x221E;"> <!--  -->
+<!ENTITY int	"&#x222B;"> <!--  -->
+<!ENTITY isin	"&#x220A;"> <!--  -->
+<!ENTITY lang	"&#x3008;"> <!--  -->
+<!ENTITY lArr	"&#x21D0;"> <!-- LEFTWARDS ARROW -->
+<!ENTITY le	"&#x2264;"> <!--  -->
+<!ENTITY minus	"&#x2212;"> <!-- MINUS SIGN -->
+<!ENTITY mnplus	"&#x2213;"> <!--  -->
+<!ENTITY nabla	"&#x2207;"> <!-- NABLA -->
+<!ENTITY ne	"&#x2260;"> <!--  -->
+<!ENTITY ni	"&#x220D;"> <!--  -->
+<!ENTITY or	"&#x2228;"> <!--  -->
+<!ENTITY par	"&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY part	"&#x2202;"> <!--  -->
+<!ENTITY permil	"&#x2030;"> <!-- PER MILLE SIGN -->
+<!ENTITY perp	"&#x22A5;"> <!--  -->
+<!ENTITY prime	"&#x2032;"> <!-- PRIME -->
+<!ENTITY Prime	"&#x2033;"> <!-- DOUBLE PRIME -->
+<!ENTITY prop	"&#x221D;"> <!--  -->
+<!ENTITY radic	"&#x221A;"> <!--  -->
+<!ENTITY rang	"&#x3009;"> <!--  -->
+<!ENTITY rArr	"&#x21D2;"> <!-- RIGHTWARDS ARROW -->
+<!ENTITY sim	"&#x223C;"> <!--  -->
+<!ENTITY sime	"&#x2243;"> <!--  -->
+<!ENTITY square	"&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY sub	"&#x2282;"> <!--  -->
+<!ENTITY sube	"&#x2286;"> <!--  -->
+<!ENTITY sup	"&#x2283;"> <!--  -->
+<!ENTITY supe	"&#x2287;"> <!--  -->
+<!ENTITY there4	"&#x2234;"> <!--  -->
+<!ENTITY Verbar	"&#x2016;"> <!-- DOUBLE VERTICAL LINE -->
+<!ENTITY angst	"&#x212B;"> <!-- ANGSTROM SIGN -->
+<!ENTITY bernou	"&#x212C;"> <!-- SCRIPT CAPITAL B -->
+<!ENTITY compfn	"&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY Dot	"&#x0308;"> <!--  -->
+<!ENTITY DotDot	"&#x20DC;"> <!-- COMBINING FOUR DOTS ABOVE -->
+<!ENTITY hamilt	"&#x210B;"> <!-- SCRIPT CAPITAL H -->
+<!ENTITY lagran	"&#x2112;"> <!-- SCRIPT CAPITAL L -->
+<!ENTITY lowast	"&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY notin	"&#x2209;"> <!--  -->
+<!ENTITY order	"&#x2134;"> <!-- SCRIPT SMALL O -->
+<!ENTITY phmmat	"&#x2133;"> <!-- SCRIPT CAPITAL M -->
+<!ENTITY tdot	"&#x20DB;"> <!-- COMBINING THREE DOTS ABOVE -->
+<!ENTITY tprime	"&#x2034;"> <!-- TRIPLE PRIME -->
+<!ENTITY wedgeq	"&#x2259;"> <!-- ESTIMATES -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/ent/iso-tech.ent
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/readme.txt
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/readme.txt	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/readme.txt	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+README for DocBook XML V4.0
+
+This is DocBook XML V4.0, released 18 May 2000.
+
+See 40chg.txt for information about what has changed since DocBook 3.1.
+
+For more information about DocBook, please see
+
+  http://www.oasis-open.org/docbook/
+
+Please send all questions, comments, concerns, and bug reports to the
+DocBook mailing list: docbook at lists.oasis-open.org

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/soextblx.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/soextblx.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.0/soextblx.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,308 @@
+<!-- XML EXCHANGE TABLE MODEL DECLARATION MODULE -->
+
+<!-- This set of declarations defines the XML version of the Exchange
+     Table Model as of the date shown in the Formal Public Identifier
+     (FPI) for this entity.
+
+     This set of declarations may be referred to using a public external
+     entity declaration and reference as shown in the following three
+     lines:
+
+     <!ENTITY % calstblx
+       PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN">
+       %calstblx;
+
+     If various parameter entities used within this set of declarations
+     are to be given non-default values, the appropriate declarations
+     should be given before calling in this package (i.e., before the
+     "%calstblx;" reference).
+-->
+
+<!-- The motivation for this XML version of the Exchange Table Model
+     is simply to create an XML version of the SGML Exchange Table
+     Model. By design, no effort has been made to "improve" the model.
+
+     This XML version incorporates the logical bare minimum changes
+     necessary to make the Exchange Table Model a valid XML DTD.
+-->
+
+<!-- The XML version of the Exchange Table Model differs from
+     the SGML version in the following ways:
+
+     The following parameter entities have been removed:
+
+       - tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep
+         There are no exceptions in XML. The following normative statement
+         is made in lieu of exceptions: the exchange table model explicitly
+         forbids a table from occurring within another table. If the
+         content model of an entry includes a table element, then this
+         cannot be enforced by the DTD, but it is a deviation from the
+         exchange table model to include a table within a table.
+
+       - tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att
+         The motivation for these elements was to change the table
+         header/footer elements. Since XML does not allow element declarations
+         to contain name groups, and the exchange table model does not
+         allow a table to contain footers, the continued presence of these
+         attributes seems unnecessary.
+
+     The following parameter entity has been added:
+
+       - tbl.thead.att
+         This entity parameterizes the attributes on thead. It replaces
+         the tbl.hdft.att parameter entity.
+
+     Other miscellaneous changes:
+
+       - Tag ommission indicators have been removed
+       - Comments have been removed from declarations
+       - NUMBER attributes have been changed to NMTOKEN
+       - NUTOKEN attributes have been to changed to NMTOKEN
+       - Removed the grouping characters around the content model
+         parameter entry for the 'entry' element. This is necessary
+         so that an entry can contain #PCDATA and be defined as an
+         optional, repeatable OR group beginning with #PCDATA.
+-->
+
+<!-- This entity includes a set of element and attribute declarations
+     that partially defines the Exchange table model.  However, the model
+     is not well-defined without the accompanying natural language
+     description of the semantics (meanings) of these various elements,
+     attributes, and attribute values.  The semantic writeup, also available
+     from SGML Open, should be used in conjunction with this entity.
+-->
+
+<!-- In order to use the Exchange table model, various parameter entity
+     declarations are required.  A brief description is as follows:
+
+     ENTITY NAME      WHERE USED              WHAT IT IS
+
+     %yesorno         In ATTLIST of:          An attribute declared value
+                      almost all elements     for a "boolean" attribute
+
+     %paracon         In content model of:    The "text" (logical content)
+                      <entry>                 of the model group for <entry>
+
+     %titles          In content model of:    The "title" part of the model
+                      table element           group for the table element
+
+     %tbl.table.name  In declaration of:      The name of the "table"
+                      table element           element
+
+     %tbl.table-titles.mdl In content model of: The model group for the title
+                      table elements          part of the content model for
+                                              table element
+
+     %tbl.table.mdl   In content model of:    The model group for the content
+                      table elements          model for table element,
+                                              often (and by default) defined
+                                              in terms of %tbl.table-titles.mdl
+                                              and tgroup
+
+     %tbl.table.att   In ATTLIST of:          Additional attributes on the
+                      table element           table element
+
+     %bodyatt         In ATTLIST of:          Additional attributes on the
+                      table element           table element (for backward
+                                              compatibility with the SGML
+                                              model)
+
+     %tbl.tgroup.mdl  In content model of:    The model group for the content
+                      <tgroup>                model for <tgroup>
+
+     %tbl.tgroup.att  In ATTLIST of:          Additional attributes on the
+                      <tgroup>                <tgroup> element
+
+     %tbl.thead.att   In ATTLIST of:          Additional attributes on the
+                      <thead>                 <thead> element
+
+     %tbl.tbody.att   In ATTLIST of:          Additional attributes on the
+                      <tbody>                 <tbody> element
+
+     %tbl.colspec.att In ATTLIST of:          Additional attributes on the
+                      <colspec>               <colspec> element
+
+     %tbl.row.mdl     In content model of:    The model group for the content
+                      <row>                   model for <row>
+
+     %tbl.row.att     In ATTLIST of:          Additional attributes on the
+                      <row>                   <row> element
+
+     %tbl.entry.mdl   In content model of:    The model group for the content
+                      <entry>                 model for <entry>
+
+     %tbl.entry.att   In ATTLIST of:          Additional attributes on the
+                      <entry>                 <entry> element
+
+     This set of declarations will use the default definitions shown below
+     for any of these parameter entities that are not declared before this
+     set of declarations is referenced.
+-->
+
+<!-- These definitions are not directly related to the table model, but are
+     used in the default CALS table model and may be defined elsewhere (and
+     prior to the inclusion of this table module) in the referencing DTD. -->
+
+<!ENTITY % yesorno 'NMTOKEN'> <!-- no if zero(s), yes if any other value -->
+<!ENTITY % titles  'title?'>
+<!ENTITY % pcd "#PCDATA">
+<!ENTITY % paracon '%pcd;'> <!-- default for use in entry content -->
+
+<!--
+The parameter entities as defined below change and simplify the CALS table
+model as published (as part of the Example DTD) in MIL-HDBK-28001.  The
+resulting simplified DTD has support from the SGML Open vendors and is
+therefore more interoperable among different systems.
+
+These following declarations provide the Exchange default definitions
+for these entities.  However, these entities can be redefined (by giving
+the appropriate parameter entity declaration(s) prior to the reference
+to this Table Model declaration set entity) to fit the needs of the
+current application.
+
+Note, however, that changes may have significant effect on the ability to
+interchange table information.  These changes may manifest themselves
+in useability, presentation, and possible structure information degradation.
+-->
+
+<!ENTITY % tbl.table.name       "table">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl   "tgroup+">
+<!ENTITY % tbl.table.mdl        "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att        "
+    pgwide      %yesorno;       #IMPLIED ">
+<!ENTITY % bodyatt              "">
+<!ENTITY % tbl.tgroup.mdl       "colspec*,thead?,tbody">
+<!ENTITY % tbl.tgroup.att       "">
+<!ENTITY % tbl.thead.att        "">
+<!ENTITY % tbl.tbody.att        "">
+<!ENTITY % tbl.colspec.att      "">
+<!ENTITY % tbl.row.mdl          "entry+">
+<!ENTITY % tbl.row.att          "">
+<!ENTITY % tbl.entry.mdl        "(%paracon;)*">
+<!ENTITY % tbl.entry.att        "">
+
+<!-- =====  Element and attribute declarations follow. =====  -->
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.table.name       "table"
+     ENTITY % tbl.table-titles.mdl "%titles;,"
+     ENTITY % tbl.table.mdl        "%tbl.table-titles; tgroup+"
+     ENTITY % tbl.table.att        "
+                        pgwide          %yesorno;       #IMPLIED "
+-->
+
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+
+<!ATTLIST %tbl.table.name;
+        frame           (top|bottom|topbot|all|sides|none)      #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        %tbl.table.att;
+        %bodyatt;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.tgroup.mdl    "colspec*,thead?,tbody"
+     ENTITY % tbl.tgroup.att    ""
+-->
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+        cols            NMTOKEN                                 #REQUIRED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        %tbl.tgroup.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.colspec.att   ""
+-->
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+        colnum          NMTOKEN                                 #IMPLIED
+        colname         NMTOKEN                                 #IMPLIED
+        colwidth        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        %tbl.colspec.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.thead.att      ""
+-->
+
+<!ELEMENT thead (row+)>
+
+<!ATTLIST thead
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.thead.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.tbody.att     ""
+-->
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.tbody.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.row.mdl       "entry+"
+     ENTITY % tbl.row.att       ""
+-->
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+        rowsep          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.row.att;
+>
+
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % paracon           "#PCDATA"
+     ENTITY % tbl.entry.mdl     "(%paracon;)*"
+     ENTITY % tbl.entry.att     ""
+-->
+
+<!ELEMENT entry %tbl.entry.mdl;>
+
+<!ATTLIST entry
+        colname         NMTOKEN                                 #IMPLIED
+        namest          NMTOKEN                                 #IMPLIED
+        nameend         NMTOKEN                                 #IMPLIED
+        morerows        NMTOKEN                                 #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.entry.att;
+>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/.memdump
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/.memdump	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/.memdump	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+      03:15:43 PM
+
+      MEMORY ALLOCATED : 0, MAX was 17626
+BLOCK  NUMBER   SIZE  TYPE

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/40chg.txt
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/40chg.txt	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/40chg.txt	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,53 @@
+19 June 2000
+
+Changes from DocBook V3.1 to DocBook XML V4.1:
+
+Global:
+
+- Broad changes required for XML compatibility
+- Added a *provisional* set of character entities based on the ISO
+  entity sets. The DocBook TC is not willing to accept the long-term
+  responsibility for defining and maintaining these sets. The TC
+  will ask OASIS to form a new TC for this purpose.
+
+Markup:
+
+- RFE  17: Added a common attribute 'Condition' for generic effectivity
+- RFE  38: The nav.class elements (ToC|LoT|Index|Glossary|Bibliography) are
+           now allowed at the beginning and end of components and sections
+- RFE  58: The 'optmult' and 'reqmult' attribute values have been
+           removed from Group
+- RFE  65: Added several class attribute values to Filename and SystemItem
+           at the request of the Linux community
+- RFE  73: Removed BookBiblio and SeriesInfo
+- RFE  81: Added SidebarInfo to Sidebar
+- RFE  87: Added 'xmlpi' and 'emptytag' as class values of SGMLTag
+- RFE  92: Added 'CO' to Synopsis and LiteralLayout
+- RFE  99: Added SimpleMsgEntry as an alternative to MsgEntry in order
+           to provide a simpler MsgSet construct
+- RFE 103: Added RevDescription as an alternative to RevRemark in
+           RevHistory; this allows longer descriptive text in a revision
+- RFE 104: Added 'Specification' to the list of document classes on Article
+- RFE 108: Allow admonitions in Answers
+- RFE 110: Allow a RevHistory on QandAEntry
+- RFE 115: Allow optional Title on OrderedList and ItemizedList
+- RFE 116: Added LineNumbering attribute to linespecific environments for
+           presentation of line numbers
+- Added a common attribute 'Security' for effectivity
+- Added synopsis markup for modern programming languages (e.g, object
+  oriented languages like Java, C++, and IDL)
+- Renamed DocInfo to PrefaceInfo, ChapterInfo, AppendixInfo, etc.
+- Comment was renamed Remark
+- InterfaceDefinition was removed
+
+Other:
+
+- RFE  88: Added PEs to include/ignore dbnotn.mod and dbcent.mod
+- RFE 102: Fixed some outstanding namecase problems
+- RFE 105: Added PNG notation
+- RFE 106: Removed some odd *.content PEs that interfered with
+           customization layers
+- RFE 109: Added FPI to content of dbgenent.mod (for consistency)
+- RFE 111: Added the Euro symbol
+- Fixed bug in cals-tbl.dtd; a model group was used for the element
+  declaration, but the attlist declaration used "Table" literally.

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/41chg.txt
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/41chg.txt	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/41chg.txt	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+27 Aug 2000
+
+Changes from DocBook V4.1.1 to DocBook V4.1.2:
+
+- Fixed broken ISO FPIs in docbook.cat introduced by
+  careless search-and-replace.
+
+Changes from DocBook V4.0 to DocBook V4.1.1:
+
+- Removed some 4.0 future use comments that had accidentally
+  been left in the DTD
+- Fixed system identifiers in docbook.cat
+- Added version information to all the ent/*.ent files
+- Fixed a number of numeric character references in the ent/*.ent files
+- Fixed a couple of incorrect FPIs.
+- Renamed dbgenent.ent to dbgenent.mod for parity with SGML version
+
+See 40chg.txt for a list of the significant changes.

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,118 @@
+2000-08-27  Norman Walsh  <ndw at nwalsh.com>
+
+	* 41chg.txt, readme.txt: Updated descriptions
+
+	* calstblx.dtd, dbcentx.mod, dbgenent.mod, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat: 
+	Updated version numbers
+
+	* docbook.cat: Fixed stupid search-and-replace error in ISO FPIs
+
+	* docbookx.dtd: DocBook XML V4.1.2 released
+
+2000-08-12  Norman Walsh  <ndw at nwalsh.com>
+
+	* 40chg.txt: Updated; changed version number
+
+	* 41chg.txt: Added note about renaming dbgenent
+
+	* 41chg.txt, readme.txt: Updated; changed version number, release date
+
+	* calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat: 
+	Changed version number
+
+	* dbgenent.ent, dbgenent.mod: Renamed .ent to .mod
+
+	* docbookx.dtd: DocBook XML V4.1.1 released
+
+	* docbookx.dtd: Fixed system identifier for dbgenent.ent to dbgenent.mod
+
+2000-07-06  Norman Walsh  <ndw at nwalsh.com>
+
+	* 40chg.txt, 41chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat, readme.txt: 
+	Changed version numbers to 4.1.1beta1
+
+	* docbook.cat: Fixed incorrect system identifiers
+
+	* docbookx.dtd: Version 4.1.1beta1 released
+
+2000-06-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* 40chg.txt: Added notes about comment and interfacedefinition
+
+	* 41chg.txt: New file.
+
+	* calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat, docbookx.dtd, readme.txt: 
+	Updated version numbers to 4.1
+
+	* dbgenent.ent: Fixed FPI; added 'XML'
+
+	* dbhierx.mod: Removed 4.0 future use comments
+
+	* dbpoolx.mod: Removed 4.0 future use comments; fixed table model selection comment; fixed 'Norman Walsh' FPIs
+
+	* docbook.cat: New file.
+
+2000-05-18  Norman Walsh  <ndw at nwalsh.com>
+
+	* 40chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt: 
+	Removed references to beta6
+
+	* docbookx.dtd: DocBook XML V4.0 released.
+
+2000-04-10  Norman Walsh  <ndw at nwalsh.com>
+
+	* 40chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt: 
+	Updated release date and version to 4.0beta6
+
+	* dbpoolx.mod: Added support for EBNF hook; fixed equation content bug
+
+2000-04-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* 40chg.txt: Added note about renaming DocInfo to *Info.
+
+	* 40chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt: 
+	Updated version numbers
+
+2000-03-30  Norman Walsh  <ndw at nwalsh.com>
+
+	* dbpoolx.mod: Removed beginpage from highlights.mix; it's excluded in the SGML version.
+
+2000-03-24  Norman Walsh  <ndw at nwalsh.com>
+
+	* 40chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt: 
+	Updated version numbers
+
+	* dbefsyn.mod: Removed
+
+	* dbpoolx.mod: Removed ELEMENT from comments to ease text searching of the DTD.
+	Merged dbefsyn.mod into dbpoolx.mod
+	Added Modifier as an optional element at the end of MethodSynopsis
+	and MethodParam.
+
+2000-03-07  Norman Walsh  <ndw at nwalsh.com>
+
+	* 40chg.txt: New file.
+
+	* 40chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt, soextblx.dtd: 
+	Updated internal versions to beta3
+
+2000-03-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* dbpoolx.mod: Removed erroneous comment about inline synopses
+
+2000-03-02  Norman Walsh  <ndw at nwalsh.com>
+
+	* calstblx.dtd, dbcentx.mod, dbefsyn.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt, soextblx.dtd: 
+	New file.
+
+	* dbefsyn.mod, dbpoolx.mod: Added ooclass, oointerface, and ooexception as wrappers for modifiers
+	and names in classsynopsis. Also allow them inline.
+	
+	Fixed SGML PE parsing problem with hook PEs.
+
+	* dbhierx.mod, dbpoolx.mod: Added hook PEs for future module extension
+
+	* dbpoolx.mod: Removed unused PEs for equation content
+
+	* dbpoolx.mod: Made primary optional (XML has no #CONREF)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,202 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+EXTRA_DIST =      40chg.txt 41chg.txt ChangeLog calstblx.dtd dbcentx.mod dbgenent.mod     dbhierx.mod dbnotnx.mod dbpoolx.mod docbook.cat docbookx.dtd readme.txt     soextblx.dtd     ent/iso-amsa.ent ent/iso-amsb.ent ent/iso-amsc.ent ent/iso-amsn.ent     ent/iso-amso.ent ent/iso-amsr.ent ent/iso-box.ent ent/iso-cyr1.ent     ent/iso-cyr2.ent ent/iso-dia.ent ent/iso-grk1.ent ent/iso-grk2.ent     ent/iso-grk3.ent ent/iso-grk4.ent ent/iso-lat1.ent ent/iso-lat2.ent     ent/iso-num.ent ent/iso-pub.ent ent/iso-tech.ent
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/4.1.2/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/4.1.2
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/4.1.2/Makefile
+	$(mkinstalldirs) $(distdir)/ent
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,202 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+EXTRA_DIST =      40chg.txt 41chg.txt ChangeLog calstblx.dtd dbcentx.mod dbgenent.mod     dbhierx.mod dbnotnx.mod dbpoolx.mod docbook.cat docbookx.dtd readme.txt     soextblx.dtd     ent/iso-amsa.ent ent/iso-amsb.ent ent/iso-amsc.ent ent/iso-amsn.ent     ent/iso-amso.ent ent/iso-amsr.ent ent/iso-box.ent ent/iso-cyr1.ent     ent/iso-cyr2.ent ent/iso-dia.ent ent/iso-grk1.ent ent/iso-grk2.ent     ent/iso-grk3.ent ent/iso-grk4.ent ent/iso-lat1.ent ent/iso-lat2.ent     ent/iso-num.ent ent/iso-pub.ent ent/iso-tech.ent
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/4.1.2/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/4.1.2
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/4.1.2/Makefile
+	$(mkinstalldirs) $(distdir)/ent
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/calstblx.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/calstblx.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/calstblx.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,199 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML CALS Table Model V4.1.2 .................................... -->
+<!-- File calstblx.mod .................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     This DTD is based on the CALS Table Model
+     PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"
+
+     $Id: calstblx.dtd,v 1.1 2001/02/24 16:51:28 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook XML DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the CALS Table Model
+     converted to XML.
+-->
+
+<!-- These definitions are not directly related to the table model, but are 
+     used in the default CALS table model and are usually defined elsewhere 
+     (and prior to the inclusion of this table module) in a CALS DTD. -->
+
+<!ENTITY % bodyatt "">
+<!ENTITY % secur "">
+
+<!-- no if zero(s),
+                                yes if any other digits value -->
+
+<!ENTITY % yesorno 'CDATA'>
+<!ENTITY % titles  'title?'>
+
+<!-- default for use in entry content -->
+
+<!ENTITY % paracon '#PCDATA'>
+
+<!--
+The parameter entities as defined below provide the CALS table model
+as published (as part of the Example DTD) in MIL-HDBK-28001.
+
+These following declarations provide the CALS-compliant default definitions
+for these entities.  However, these entities can and should be redefined
+(by giving the appropriate parameter entity declaration(s) prior to the
+reference to this Table Model declaration set entity) to fit the needs
+of the current application.
+-->
+
+<!ENTITY % tbl.table.name       "(table|chart)">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl   "(tgroup+|graphic+)">
+<!ENTITY % tbl.table.mdl        "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att        '
+    tabstyle    CDATA           #IMPLIED
+    tocentry    %yesorno;       #IMPLIED
+    shortentry  %yesorno;       #IMPLIED
+    orient      (port|land)     #IMPLIED
+    pgwide      %yesorno;       #IMPLIED '>
+<!ENTITY % tbl.tgroup.mdl       "colspec*,spanspec*,thead?,tfoot?,tbody">
+<!ENTITY % tbl.tgroup.att       '
+    tgroupstyle CDATA           #IMPLIED '>
+<!ENTITY % tbl.hdft.mdl         "colspec*,row+">
+<!ENTITY % tbl.row.mdl          "(entry|entrytbl)+">
+<!ENTITY % tbl.entrytbl.mdl     "colspec*,spanspec*,thead?,tbody">
+<!ENTITY % tbl.entry.mdl        "(para|warning|caution|note|legend|%paracon;)*">
+<!-- =====  Element and attribute declarations follow. =====  -->
+
+<!ELEMENT table (%tbl.table.mdl;)>
+
+<!ATTLIST table
+        frame           (top|bottom|topbot|all|sides|none)      #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        %tbl.table.att;
+        %bodyatt;
+        %secur;
+>
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+        cols            CDATA                                   #REQUIRED
+        %tbl.tgroup.att;
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+        %secur;
+>
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+        colnum          CDATA                                   #IMPLIED
+        colname         CDATA                                   #IMPLIED
+        colwidth        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+>
+
+<!ELEMENT spanspec EMPTY >
+
+<!ATTLIST spanspec
+        namest          CDATA                                   #REQUIRED
+        nameend         CDATA                                   #REQUIRED
+        spanname        CDATA                                   #REQUIRED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+>
+
+<!ELEMENT thead (%tbl.hdft.mdl;)>
+<!ATTLIST thead
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT tfoot (%tbl.hdft.mdl;)>
+<!ATTLIST tfoot
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+        rowsep          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!ELEMENT entrytbl (%tbl.entrytbl.mdl;)>
+
+<!ATTLIST entrytbl
+        cols            CDATA                                   #REQUIRED
+        %tbl.tgroup.att;
+        colname         CDATA                                   #IMPLIED
+        spanname        CDATA                                   #IMPLIED
+        namest          CDATA                                   #IMPLIED
+        nameend         CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+        %secur;
+>
+
+<!ELEMENT entry (%tbl.entry.mdl;)*>
+
+<!ATTLIST entry
+        colname         CDATA                                   #IMPLIED
+        namest          CDATA                                   #IMPLIED
+        nameend         CDATA                                   #IMPLIED
+        spanname        CDATA                                   #IMPLIED
+        morerows        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         CDATA                                   #IMPLIED
+        rotate          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %secur;
+>
+
+<!-- End of DocBook XML CALS Table Model V4.1.2 ............................. -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/calstblx.dtd
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbcentx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbcentx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbcentx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,204 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML character entities module V4.1.2 ........................... -->
+<!-- File dbcentx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh, and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     $Id: dbcentx.mod,v 1.1 2001/02/24 16:51:28 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook XML DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the entity declarations for the standard ISO
+     entity sets used by DocBook.
+
+     In DTD driver files referring to this module, please use an entity
+     declaration that uses the public identifier shown below:
+
+     <!ENTITY % dbcent PUBLIC
+     "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN"
+     "dbcentx.mod">
+     %dbcent;
+
+     See the documentation for detailed information on the parameter
+     entity and module scheme used in DocBook, customizing DocBook and
+     planning for interchange, and changes made since the last release
+     of DocBook.
+-->
+
+<!-- ...................................................................... -->
+
+<!ENTITY % ISOamsa.module "INCLUDE">
+<![%ISOamsa.module;[
+<!ENTITY % ISOamsa PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+"ent/iso-amsa.ent">
+%ISOamsa;
+<!--end of ISOamsa.module-->]]>
+
+<!ENTITY % ISOamsb.module "INCLUDE">
+<![%ISOamsb.module;[
+<!ENTITY % ISOamsb PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+"ent/iso-amsb.ent">
+%ISOamsb;
+<!--end of ISOamsb.module-->]]>
+
+<!ENTITY % ISOamsc.module "INCLUDE">
+<![%ISOamsc.module;[
+<!ENTITY % ISOamsc PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+"ent/iso-amsc.ent">
+%ISOamsc;
+<!--end of ISOamsc.module-->]]>
+
+<!ENTITY % ISOamsn.module "INCLUDE">
+<![%ISOamsn.module;[
+<!ENTITY % ISOamsn PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+"ent/iso-amsn.ent">
+%ISOamsn;
+<!--end of ISOamsn.module-->]]>
+
+<!ENTITY % ISOamso.module "INCLUDE">
+<![%ISOamso.module;[
+<!ENTITY % ISOamso PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+"ent/iso-amso.ent">
+%ISOamso;
+<!--end of ISOamso.module-->]]>
+
+<!ENTITY % ISOamsr.module "INCLUDE">
+<![%ISOamsr.module;[
+<!ENTITY % ISOamsr PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+"ent/iso-amsr.ent">
+%ISOamsr;
+<!--end of ISOamsr.module-->]]>
+
+<!ENTITY % ISObox.module "INCLUDE">
+<![%ISObox.module;[
+<!ENTITY % ISObox PUBLIC
+"ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+"ent/iso-box.ent">
+%ISObox;
+<!--end of ISObox.module-->]]>
+
+<!ENTITY % ISOcyr1.module "INCLUDE">
+<![%ISOcyr1.module;[
+<!ENTITY % ISOcyr1 PUBLIC
+"ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+"ent/iso-cyr1.ent">
+%ISOcyr1;
+<!--end of ISOcyr1.module-->]]>
+
+<!ENTITY % ISOcyr2.module "INCLUDE">
+<![%ISOcyr2.module;[
+<!ENTITY % ISOcyr2 PUBLIC
+"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+"ent/iso-cyr2.ent">
+%ISOcyr2;
+<!--end of ISOcyr2.module-->]]>
+
+<!ENTITY % ISOdia.module "INCLUDE">
+<![%ISOdia.module;[
+<!ENTITY % ISOdia PUBLIC
+"ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+"ent/iso-dia.ent">
+%ISOdia;
+<!--end of ISOdia.module-->]]>
+
+<!ENTITY % ISOgrk1.module "INCLUDE">
+<![%ISOgrk1.module;[
+<!ENTITY % ISOgrk1 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+"ent/iso-grk1.ent">
+%ISOgrk1;
+<!--end of ISOgrk1.module-->]]>
+
+<!ENTITY % ISOgrk2.module "INCLUDE">
+<![%ISOgrk2.module;[
+<!ENTITY % ISOgrk2 PUBLIC
+"ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+"ent/iso-grk2.ent">
+%ISOgrk2;
+<!--end of ISOgrk2.module-->]]>
+
+<!ENTITY % ISOgrk3.module "INCLUDE">
+<![%ISOgrk3.module;[
+<!ENTITY % ISOgrk3 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+"ent/iso-grk3.ent">
+%ISOgrk3;
+<!--end of ISOgrk3.module-->]]>
+
+<!ENTITY % ISOgrk4.module "INCLUDE">
+<![%ISOgrk4.module;[
+<!ENTITY % ISOgrk4 PUBLIC
+"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+"ent/iso-grk4.ent">
+%ISOgrk4;
+<!--end of ISOgrk4.module-->]]>
+
+<!ENTITY % ISOlat1.module "INCLUDE">
+<![%ISOlat1.module;[
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+<!--end of ISOlat1.module-->]]>
+
+<!ENTITY % ISOlat2.module "INCLUDE">
+<![%ISOlat2.module;[
+<!ENTITY % ISOlat2 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+"ent/iso-lat2.ent">
+%ISOlat2;
+<!--end of ISOlat2.module-->]]>
+
+<!ENTITY % ISOnum.module "INCLUDE">
+<![%ISOnum.module;[
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+<!--end of ISOnum.module-->]]>
+
+<!ENTITY % ISOpub.module "INCLUDE">
+<![%ISOpub.module;[
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!--end of ISOpub.module-->]]>
+
+<!ENTITY % ISOtech.module "INCLUDE">
+<![%ISOtech.module;[
+<!ENTITY % ISOtech PUBLIC
+"ISO 8879:1986//ENTITIES General Technical//EN//XML"
+"ent/iso-tech.ent">
+%ISOtech;
+<!--end of ISOtech.module-->]]>
+
+<!-- End of DocBook XML character entity sets module V4.1.2 ................. -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbcentx.mod
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbgenent.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbgenent.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbgenent.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,41 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML additional general entities V4.1.2 ......................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, and the Organization for the Advancement of
+     Structured Information Standards (OASIS).
+
+     In DTD driver files referring to this module, please use an entity
+     declaration that uses the public identifier shown below:
+
+     <!ENTITY % dbgenent PUBLIC
+     "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN"
+     "dbgenent.mod">
+     %dbgenent;
+-->
+
+<!-- File dbgenent.mod .................................................... -->
+
+<!-- You can edit this file to add the following:
+
+     o General entity declarations of any kind.  For example:
+
+       <!ENTITY happyface SDATA "insert-face">    (system-specific data)
+       <!ENTITY productname "WinWidget">          (small boilerplate)
+       <!ENTITY legal-notice SYSTEM "notice.sgm"> (large boilerplate)
+
+     o Notation declarations.  For example:
+
+       <!NOTATION chicken-scratch SYSTEM>
+
+     o Declarations for and references to external parameter entities
+       containing collections of any of the above.  For example:
+
+       <!ENTITY % all-titles PUBLIC "-//DocTools//ELEMENTS Book Titles//EN"
+           "booktitles.ent">
+       %all-titles;
+-->
+
+<!-- End of DocBook XML additional general entities V4.1.2 .................. -->
+<!-- ...................................................................... -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbhierx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbhierx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbhierx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2074 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML document hierarchy module V4.1.2 ........................... -->
+<!-- File dbhierx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh, and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     $Id: dbhierx.mod,v 1.1 2001/02/24 16:51:28 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook XML DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the overall document
+     hierarchies of DocBook documents.  It covers computer documentation
+     manuals and manual fragments, as well as reference entries (such as
+     man pages) and technical journals or anthologies containing
+     articles.
+
+     This module depends on the DocBook information pool module.  All
+     elements and entities referenced but not defined here are assumed
+     to be defined in the information pool module.
+
+     In DTD driver files referring to this module, please use an entity
+     declaration that uses the public identifier shown below:
+
+     <!ENTITY % dbhier PUBLIC
+     "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN"
+     "dbhierx.mod">
+     %dbhier;
+
+     See the documentation for detailed information on the parameter
+     entity and module scheme used in DocBook, customizing DocBook and
+     planning for interchange, and changes made since the last release
+     of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbhier.redecl.module		"IGNORE">
+<!ENTITY % dbhier.redecl2.module	"IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes ......................................... -->
+
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class	"appendix %local.appendix.class;">
+
+<!ENTITY % local.article.class "">
+<!ENTITY % article.class	"article %local.article.class;">
+
+<!ENTITY % local.book.class "">
+<!ENTITY % book.class		"book %local.book.class;">
+
+<!ENTITY % local.chapter.class "">
+<!ENTITY % chapter.class	"chapter %local.chapter.class;">
+
+<!ENTITY % local.index.class "">
+<!ENTITY % index.class		"index|setindex %local.index.class;">
+
+<!ENTITY % local.refentry.class "">
+<!ENTITY % refentry.class	"refentry %local.refentry.class;">
+
+<!ENTITY % local.nav.class "">
+<!ENTITY % nav.class		"toc|lot|index|glossary|bibliography 
+				%local.nav.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+     retaining their references to the entities that are declared before
+     this point -->
+
+<![%dbhier.redecl.module;[
+<!-- Defining rdbhier here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier "">
+%rdbhier;
+<!--end of dbhier.redecl.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for element mixtures ........................................ -->
+
+<!-- The DocBook TC may produce an official forms module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % forms.hook "">
+
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+		|%genobj.class;		|%descobj.class;
+		|%ndxterm.class;        |beginpage
+                %forms.hook;
+		%local.divcomponent.mix;">
+
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+		|%genobj.class;		|%descobj.class;
+		|%ndxterm.class;        |beginpage
+		%local.refcomponent.mix;">
+
+<!ENTITY % local.indexdivcomponent.mix "">
+<!ENTITY % indexdivcomponent.mix
+		"itemizedlist|orderedlist|variablelist|simplelist
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|anchor|remark
+		|%link.char.class;
+ 		                        |beginpage
+		%local.indexdivcomponent.mix;">
+
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % refname.char.mix
+		"#PCDATA
+		|%tech.char.class;
+		%local.refname.char.mix;">
+
+<!ENTITY % local.partcontent.mix "">
+<!ENTITY % partcontent.mix
+		"%appendix.class;|%chapter.class;|%nav.class;|%article.class;
+		|preface|%refentry.class;|reference %local.partcontent.mix;">
+
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;
+		|%ndxterm.class;        |beginpage
+		%local.refinline.char.mix;">
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+		"#PCDATA
+		|application
+		%local.refclass.char.mix;">
+
+<!-- Redeclaration placeholder 2 .......................................... -->
+
+<!-- For redeclaring entities that are declared after this point while
+     retaining their references to the entities that are declared before
+     this point -->
+
+<![%dbhier.redecl2.module;[
+<!-- Defining rdbhier2 here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier2 "">
+%rdbhier2;
+<!--end of dbhier.redecl2.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % div.title.content
+	"title, subtitle?, titleabbrev?">
+
+<!ENTITY % bookcomponent.title.content
+	"title, subtitle?, titleabbrev?">
+
+<!ENTITY % sect.title.content
+	"title, subtitle?, titleabbrev?">
+
+<!ENTITY % refsect.title.content
+	"title, subtitle?, titleabbrev?">
+
+<!ENTITY % bookcomponent.content
+	"((%divcomponent.mix;)+, 
+	(sect1*|(%refentry.class;)*|simplesect*|section*))
+	| (sect1+|(%refentry.class;)+|simplesect+|section+)">
+
+<!-- ...................................................................... -->
+<!-- Set and SetInfo ...................................................... -->
+
+<!ENTITY % set.content.module "INCLUDE">
+<![%set.content.module;[
+<!ENTITY % set.module "INCLUDE">
+<![%set.module;[
+<!ENTITY % local.set.attrib "">
+<!ENTITY % set.role.attrib "%role.attrib;">
+
+<!ENTITY % set.element "INCLUDE">
+<![%set.element;[
+<!ELEMENT set ((%div.title.content;)?, setinfo?, toc?, (%book.class;)+,
+		setindex?)>
+<!--end of set.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % set.attlist "INCLUDE">
+<![%set.attlist;[
+<!ATTLIST set
+		fpi		CDATA		#IMPLIED
+		%status.attrib;
+		%common.attrib;
+		%set.role.attrib;
+		%local.set.attrib;
+>
+<!--end of set.attlist-->]]>
+<!--end of set.module-->]]>
+
+<!ENTITY % setinfo.module "INCLUDE">
+<![%setinfo.module;[
+<!ENTITY % local.setinfo.attrib "">
+<!ENTITY % setinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % setinfo.element "INCLUDE">
+<![%setinfo.element;[
+<!ELEMENT setinfo ((graphic | mediaobject 
+        | legalnotice | modespec | subjectset 
+	| keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of setinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, Books, and SetIndex that comprise 
+		the set, in the order of their appearance -->
+
+
+<!ENTITY % setinfo.attlist "INCLUDE">
+<![%setinfo.attlist;[
+<!ATTLIST setinfo
+		contents	IDREFS		#IMPLIED
+		%common.attrib;
+		%setinfo.role.attrib;
+		%local.setinfo.attrib;
+>
+<!--end of setinfo.attlist-->]]>
+<!--end of setinfo.module-->]]>
+<!--end of set.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Book and BookInfo .................................................... -->
+
+<!ENTITY % book.content.module "INCLUDE">
+<![%book.content.module;[
+<!ENTITY % book.module "INCLUDE">
+<![%book.module;[
+
+<!ENTITY % local.book.attrib "">
+<!ENTITY % book.role.attrib "%role.attrib;">
+
+<!ENTITY % book.element "INCLUDE">
+<![%book.element;[
+<!ELEMENT book ((%div.title.content;)?, bookinfo?,
+ 		(dedication | toc | lot
+ 		| glossary | bibliography | preface
+		| %chapter.class; | reference | part
+		| %article.class;
+ 		| %appendix.class;
+		| %index.class;
+		| colophon)*)>
+<!--end of book.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % book.attlist "INCLUDE">
+<![%book.attlist;[
+<!ATTLIST book		fpi		CDATA		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%book.role.attrib;
+		%local.book.attrib;
+>
+<!--end of book.attlist-->]]>
+<!--end of book.module-->]]>
+
+<!ENTITY % bookinfo.module "INCLUDE">
+<![%bookinfo.module;[
+<!ENTITY % local.bookinfo.attrib "">
+<!ENTITY % bookinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % bookinfo.element "INCLUDE">
+<![%bookinfo.element;[
+<!ELEMENT bookinfo ((graphic | mediaobject
+        | legalnotice | modespec | subjectset 
+	| keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of bookinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters,
+		Appendixes, References, GLossary, Bibliography, and indexes
+		comprising the Book, in the order of their appearance -->
+
+
+<!ENTITY % bookinfo.attlist "INCLUDE">
+<![%bookinfo.attlist;[
+<!ATTLIST bookinfo
+		contents	IDREFS		#IMPLIED
+		%common.attrib;
+		%bookinfo.role.attrib;
+		%local.bookinfo.attrib;
+>
+<!--end of bookinfo.attlist-->]]>
+<!--end of bookinfo.module-->]]>
+<!--end of book.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Dedication, ToC, and LoT ............................................. -->
+
+<!ENTITY % dedication.module "INCLUDE">
+<![%dedication.module;[
+<!ENTITY % local.dedication.attrib "">
+<!ENTITY % dedication.role.attrib "%role.attrib;">
+
+<!ENTITY % dedication.element "INCLUDE">
+<![%dedication.element;[
+<!ELEMENT dedication ((%sect.title.content;)?, (%legalnotice.mix;)+)>
+<!--end of dedication.element-->]]>
+
+<!ENTITY % dedication.attlist "INCLUDE">
+<![%dedication.attlist;[
+<!ATTLIST dedication
+		%status.attrib;
+		%common.attrib;
+		%dedication.role.attrib;
+		%local.dedication.attrib;
+>
+<!--end of dedication.attlist-->]]>
+<!--end of dedication.module-->]]>
+
+<!ENTITY % colophon.module "INCLUDE">
+<![ %colophon.module; [
+<!ENTITY % local.colophon.attrib "">
+<!ENTITY % colophon.role.attrib "%role.attrib;">
+
+<!ENTITY % colophon.element "INCLUDE">
+<![ %colophon.element; [
+<!ELEMENT colophon ((%sect.title.content;)?, (%textobject.mix;)+)>
+<!--end of colophon.element-->]]>
+
+<!ENTITY % colophon.attlist "INCLUDE">
+<![ %colophon.attlist; [
+<!ATTLIST colophon
+		%status.attrib;
+		%common.attrib;
+		%colophon.role.attrib;
+		%local.colophon.attrib;>
+<!--end of colophon.attlist-->]]>
+<!--end of colophon.module-->]]>
+
+<!ENTITY % toc.content.module "INCLUDE">
+<![%toc.content.module;[
+<!ENTITY % toc.module "INCLUDE">
+<![%toc.module;[
+<!ENTITY % local.toc.attrib "">
+<!ENTITY % toc.role.attrib "%role.attrib;">
+
+<!ENTITY % toc.element "INCLUDE">
+<![%toc.element;[
+<!ELEMENT toc ((%bookcomponent.title.content;)?, tocfront*,
+		(tocpart | tocchap)*, tocback*)>
+<!--end of toc.element-->]]>
+
+<!ENTITY % toc.attlist "INCLUDE">
+<![%toc.attlist;[
+<!ATTLIST toc
+		%pagenum.attrib;
+		%common.attrib;
+		%toc.role.attrib;
+		%local.toc.attrib;
+>
+<!--end of toc.attlist-->]]>
+<!--end of toc.module-->]]>
+
+<!ENTITY % tocfront.module "INCLUDE">
+<![%tocfront.module;[
+<!ENTITY % local.tocfront.attrib "">
+<!ENTITY % tocfront.role.attrib "%role.attrib;">
+
+<!ENTITY % tocfront.element "INCLUDE">
+<![%tocfront.element;[
+<!ELEMENT tocfront (%para.char.mix;)*>
+<!--end of tocfront.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocfront.attlist "INCLUDE">
+<![%tocfront.attlist;[
+<!ATTLIST tocfront
+		%label.attrib;
+		%linkend.attrib;		%pagenum.attrib;
+		%common.attrib;
+		%tocfront.role.attrib;
+		%local.tocfront.attrib;
+>
+<!--end of tocfront.attlist-->]]>
+<!--end of tocfront.module-->]]>
+
+<!ENTITY % tocentry.module "INCLUDE">
+<![%tocentry.module;[
+<!ENTITY % local.tocentry.attrib "">
+<!ENTITY % tocentry.role.attrib "%role.attrib;">
+
+<!ENTITY % tocentry.element "INCLUDE">
+<![%tocentry.element;[
+<!ELEMENT tocentry (%para.char.mix;)*>
+<!--end of tocentry.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocentry.attlist "INCLUDE">
+<![%tocentry.attlist;[
+<!ATTLIST tocentry
+		%linkend.attrib;		%pagenum.attrib;
+		%common.attrib;
+		%tocentry.role.attrib;
+		%local.tocentry.attrib;
+>
+<!--end of tocentry.attlist-->]]>
+<!--end of tocentry.module-->]]>
+
+<!ENTITY % tocpart.module "INCLUDE">
+<![%tocpart.module;[
+<!ENTITY % local.tocpart.attrib "">
+<!ENTITY % tocpart.role.attrib "%role.attrib;">
+
+<!ENTITY % tocpart.element "INCLUDE">
+<![%tocpart.element;[
+<!ELEMENT tocpart (tocentry+, tocchap*)>
+<!--end of tocpart.element-->]]>
+
+<!ENTITY % tocpart.attlist "INCLUDE">
+<![%tocpart.attlist;[
+<!ATTLIST tocpart
+		%common.attrib;
+		%tocpart.role.attrib;
+		%local.tocpart.attrib;
+>
+<!--end of tocpart.attlist-->]]>
+<!--end of tocpart.module-->]]>
+
+<!ENTITY % tocchap.module "INCLUDE">
+<![%tocchap.module;[
+<!ENTITY % local.tocchap.attrib "">
+<!ENTITY % tocchap.role.attrib "%role.attrib;">
+
+<!ENTITY % tocchap.element "INCLUDE">
+<![%tocchap.element;[
+<!ELEMENT tocchap (tocentry+, toclevel1*)>
+<!--end of tocchap.element-->]]>
+
+<!ENTITY % tocchap.attlist "INCLUDE">
+<![%tocchap.attlist;[
+<!ATTLIST tocchap
+		%label.attrib;
+		%common.attrib;
+		%tocchap.role.attrib;
+		%local.tocchap.attrib;
+>
+<!--end of tocchap.attlist-->]]>
+<!--end of tocchap.module-->]]>
+
+<!ENTITY % toclevel1.module "INCLUDE">
+<![%toclevel1.module;[
+<!ENTITY % local.toclevel1.attrib "">
+<!ENTITY % toclevel1.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel1.element "INCLUDE">
+<![%toclevel1.element;[
+<!ELEMENT toclevel1 (tocentry+, toclevel2*)>
+<!--end of toclevel1.element-->]]>
+
+<!ENTITY % toclevel1.attlist "INCLUDE">
+<![%toclevel1.attlist;[
+<!ATTLIST toclevel1
+		%common.attrib;
+		%toclevel1.role.attrib;
+		%local.toclevel1.attrib;
+>
+<!--end of toclevel1.attlist-->]]>
+<!--end of toclevel1.module-->]]>
+
+<!ENTITY % toclevel2.module "INCLUDE">
+<![%toclevel2.module;[
+<!ENTITY % local.toclevel2.attrib "">
+<!ENTITY % toclevel2.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel2.element "INCLUDE">
+<![%toclevel2.element;[
+<!ELEMENT toclevel2 (tocentry+, toclevel3*)>
+<!--end of toclevel2.element-->]]>
+
+<!ENTITY % toclevel2.attlist "INCLUDE">
+<![%toclevel2.attlist;[
+<!ATTLIST toclevel2
+		%common.attrib;
+		%toclevel2.role.attrib;
+		%local.toclevel2.attrib;
+>
+<!--end of toclevel2.attlist-->]]>
+<!--end of toclevel2.module-->]]>
+
+<!ENTITY % toclevel3.module "INCLUDE">
+<![%toclevel3.module;[
+<!ENTITY % local.toclevel3.attrib "">
+<!ENTITY % toclevel3.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel3.element "INCLUDE">
+<![%toclevel3.element;[
+<!ELEMENT toclevel3 (tocentry+, toclevel4*)>
+<!--end of toclevel3.element-->]]>
+
+<!ENTITY % toclevel3.attlist "INCLUDE">
+<![%toclevel3.attlist;[
+<!ATTLIST toclevel3
+		%common.attrib;
+		%toclevel3.role.attrib;
+		%local.toclevel3.attrib;
+>
+<!--end of toclevel3.attlist-->]]>
+<!--end of toclevel3.module-->]]>
+
+<!ENTITY % toclevel4.module "INCLUDE">
+<![%toclevel4.module;[
+<!ENTITY % local.toclevel4.attrib "">
+<!ENTITY % toclevel4.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel4.element "INCLUDE">
+<![%toclevel4.element;[
+<!ELEMENT toclevel4 (tocentry+, toclevel5*)>
+<!--end of toclevel4.element-->]]>
+
+<!ENTITY % toclevel4.attlist "INCLUDE">
+<![%toclevel4.attlist;[
+<!ATTLIST toclevel4
+		%common.attrib;
+		%toclevel4.role.attrib;
+		%local.toclevel4.attrib;
+>
+<!--end of toclevel4.attlist-->]]>
+<!--end of toclevel4.module-->]]>
+
+<!ENTITY % toclevel5.module "INCLUDE">
+<![%toclevel5.module;[
+<!ENTITY % local.toclevel5.attrib "">
+<!ENTITY % toclevel5.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel5.element "INCLUDE">
+<![%toclevel5.element;[
+<!ELEMENT toclevel5 (tocentry+)>
+<!--end of toclevel5.element-->]]>
+
+<!ENTITY % toclevel5.attlist "INCLUDE">
+<![%toclevel5.attlist;[
+<!ATTLIST toclevel5
+		%common.attrib;
+		%toclevel5.role.attrib;
+		%local.toclevel5.attrib;
+>
+<!--end of toclevel5.attlist-->]]>
+<!--end of toclevel5.module-->]]>
+
+<!ENTITY % tocback.module "INCLUDE">
+<![%tocback.module;[
+<!ENTITY % local.tocback.attrib "">
+<!ENTITY % tocback.role.attrib "%role.attrib;">
+
+<!ENTITY % tocback.element "INCLUDE">
+<![%tocback.element;[
+<!ELEMENT tocback (%para.char.mix;)*>
+<!--end of tocback.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocback.attlist "INCLUDE">
+<![%tocback.attlist;[
+<!ATTLIST tocback
+		%label.attrib;
+		%linkend.attrib;		%pagenum.attrib;
+		%common.attrib;
+		%tocback.role.attrib;
+		%local.tocback.attrib;
+>
+<!--end of tocback.attlist-->]]>
+<!--end of tocback.module-->]]>
+<!--end of toc.content.module-->]]>
+
+<!ENTITY % lot.content.module "INCLUDE">
+<![%lot.content.module;[
+<!ENTITY % lot.module "INCLUDE">
+<![%lot.module;[
+<!ENTITY % local.lot.attrib "">
+<!ENTITY % lot.role.attrib "%role.attrib;">
+
+<!ENTITY % lot.element "INCLUDE">
+<![%lot.element;[
+<!ELEMENT lot ((%bookcomponent.title.content;)?, lotentry*)>
+<!--end of lot.element-->]]>
+
+<!ENTITY % lot.attlist "INCLUDE">
+<![%lot.attlist;[
+<!ATTLIST lot
+		%label.attrib;
+		%common.attrib;
+		%lot.role.attrib;
+		%local.lot.attrib;
+>
+<!--end of lot.attlist-->]]>
+<!--end of lot.module-->]]>
+
+<!ENTITY % lotentry.module "INCLUDE">
+<![%lotentry.module;[
+<!ENTITY % local.lotentry.attrib "">
+<!ENTITY % lotentry.role.attrib "%role.attrib;">
+
+<!ENTITY % lotentry.element "INCLUDE">
+<![%lotentry.element;[
+<!ELEMENT lotentry (%para.char.mix;)*>
+<!--end of lotentry.element-->]]>
+
+<!-- SrcCredit: Information about the source of the entry, 
+		as for a list of illustrations -->
+<!-- linkend: to element that this entry represents-->
+<!ENTITY % lotentry.attlist "INCLUDE">
+<![%lotentry.attlist;[
+<!ATTLIST lotentry
+		srccredit	CDATA		#IMPLIED
+		%pagenum.attrib;
+		%common.attrib;
+		%linkend.attrib;
+		%lotentry.role.attrib;
+		%local.lotentry.attrib;
+>
+<!--end of lotentry.attlist-->]]>
+<!--end of lotentry.module-->]]>
+<!--end of lot.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->
+
+<!ENTITY % appendix.module "INCLUDE">
+<![%appendix.module;[
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+
+<!ENTITY % appendix.element "INCLUDE">
+<![%appendix.element;[
+<!ELEMENT appendix (appendixinfo?,
+                     (%bookcomponent.title.content;), 
+                     (%nav.class;)*,
+                     tocchap?,
+                     (%bookcomponent.content;),
+                     (%nav.class;)*)>
+<!--end of appendix.element-->]]>
+
+<!ENTITY % appendix.attlist "INCLUDE">
+<![%appendix.attlist;[
+<!ATTLIST appendix
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%appendix.role.attrib;
+		%local.appendix.attrib;
+>
+<!--end of appendix.attlist-->]]>
+<!--end of appendix.module-->]]>
+
+<!ENTITY % chapter.module "INCLUDE">
+<![%chapter.module;[
+<!ENTITY % local.chapter.attrib "">
+<!ENTITY % chapter.role.attrib "%role.attrib;">
+
+<!ENTITY % chapter.element "INCLUDE">
+<![%chapter.element;[
+<!ELEMENT chapter (chapterinfo?,
+                    (%bookcomponent.title.content;),
+                    (%nav.class;)*,
+                    tocchap?,
+                    (%bookcomponent.content;),
+                    (%nav.class;)*)>
+<!--end of chapter.element-->]]>
+
+<!ENTITY % chapter.attlist "INCLUDE">
+<![%chapter.attlist;[
+<!ATTLIST chapter
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%chapter.role.attrib;
+		%local.chapter.attrib;
+>
+<!--end of chapter.attlist-->]]>
+<!--end of chapter.module-->]]>
+
+<!ENTITY % part.module "INCLUDE">
+<![%part.module;[
+
+<!-- Note that Part was to have its content model reduced in V4.1.2.  This
+change will not be made after all. -->
+
+<!ENTITY % local.part.attrib "">
+<!ENTITY % part.role.attrib "%role.attrib;">
+
+<!ENTITY % part.element "INCLUDE">
+<![%part.element;[
+<!ELEMENT part (partinfo?, (%bookcomponent.title.content;), partintro?,
+		(%partcontent.mix;)+)>
+<!--end of part.element-->]]>
+
+<!ENTITY % part.attlist "INCLUDE">
+<![%part.attlist;[
+<!ATTLIST part
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%part.role.attrib;
+		%local.part.attrib;
+>
+<!--end of part.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of part.module-->]]>
+
+<!ENTITY % preface.module "INCLUDE">
+<![%preface.module;[
+<!ENTITY % local.preface.attrib "">
+<!ENTITY % preface.role.attrib "%role.attrib;">
+
+<!ENTITY % preface.element "INCLUDE">
+<![%preface.element;[
+<!ELEMENT preface (prefaceinfo?,
+                    (%bookcomponent.title.content;),
+                    (%nav.class;)*,
+                    tocchap?,
+                    (%bookcomponent.content;),
+                    (%nav.class;)*)>
+<!--end of preface.element-->]]>
+
+<!ENTITY % preface.attlist "INCLUDE">
+<![%preface.attlist;[
+<!ATTLIST preface
+		%status.attrib;
+		%common.attrib;
+		%preface.role.attrib;
+		%local.preface.attrib;
+>
+<!--end of preface.attlist-->]]>
+<!--end of preface.module-->]]>
+
+<!ENTITY % reference.module "INCLUDE">
+<![%reference.module;[
+<!ENTITY % local.reference.attrib "">
+<!ENTITY % reference.role.attrib "%role.attrib;">
+
+<!ENTITY % reference.element "INCLUDE">
+<![%reference.element;[
+<!ELEMENT reference (referenceinfo?,
+                     (%bookcomponent.title.content;), partintro?,
+                     (%refentry.class;)+)>
+<!--end of reference.element-->]]>
+
+<!ENTITY % reference.attlist "INCLUDE">
+<![%reference.attlist;[
+<!ATTLIST reference
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%reference.role.attrib;
+		%local.reference.attrib;
+>
+<!--end of reference.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of reference.module-->]]>
+
+<!ENTITY % partintro.module "INCLUDE">
+<![%partintro.module;[
+<!ENTITY % local.partintro.attrib "">
+<!ENTITY % partintro.role.attrib "%role.attrib;">
+
+<!ENTITY % partintro.element "INCLUDE">
+<![%partintro.element;[
+<!ELEMENT partintro ((%div.title.content;)?, (%bookcomponent.content;))>
+<!--end of partintro.element-->]]>
+
+<!ENTITY % partintro.attlist "INCLUDE">
+<![%partintro.attlist;[
+<!ATTLIST partintro	
+		%label.attrib;
+		%common.attrib;
+		%local.partintro.attrib;
+		%partintro.role.attrib;
+>
+<!--end of partintro.attlist-->]]>
+<!--end of partintro.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Other Info elements .................................................. -->
+
+<!ENTITY % appendixinfo.module "INCLUDE">
+<![ %appendixinfo.module; [
+<!ENTITY % local.appendixinfo.attrib "">
+<!ENTITY % appendixinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % appendixinfo.element "INCLUDE">
+<![ %appendixinfo.element; [
+<!ELEMENT appendixinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of appendixinfo.element-->]]>
+
+<!ENTITY % appendixinfo.attlist "INCLUDE">
+<![ %appendixinfo.attlist; [
+<!ATTLIST appendixinfo
+		%common.attrib;
+		%appendixinfo.role.attrib;
+		%local.appendixinfo.attrib;
+>
+<!--end of appendixinfo.attlist-->]]>
+<!--end of appendixinfo.module-->]]>
+
+<!ENTITY % bibliographyinfo.module "INCLUDE">
+<![ %bibliographyinfo.module; [
+<!ENTITY % local.bibliographyinfo.attrib "">
+<!ENTITY % bibliographyinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliographyinfo.element "INCLUDE">
+<![ %bibliographyinfo.element; [
+<!ELEMENT bibliographyinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of bibliographyinfo.element-->]]>
+
+<!ENTITY % bibliographyinfo.attlist "INCLUDE">
+<![ %bibliographyinfo.attlist; [
+<!ATTLIST bibliographyinfo
+		%common.attrib;
+		%bibliographyinfo.role.attrib;
+		%local.bibliographyinfo.attrib;
+>
+<!--end of bibliographyinfo.attlist-->]]>
+<!--end of bibliographyinfo.module-->]]>
+
+<!ENTITY % chapterinfo.module "INCLUDE">
+<![ %chapterinfo.module; [
+<!ENTITY % local.chapterinfo.attrib "">
+<!ENTITY % chapterinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % chapterinfo.element "INCLUDE">
+<![ %chapterinfo.element; [
+<!ELEMENT chapterinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of chapterinfo.element-->]]>
+
+<!ENTITY % chapterinfo.attlist "INCLUDE">
+<![ %chapterinfo.attlist; [
+<!ATTLIST chapterinfo
+		%common.attrib;
+		%chapterinfo.role.attrib;
+		%local.chapterinfo.attrib;
+>
+<!--end of chapterinfo.attlist-->]]>
+<!--end of chapterinfo.module-->]]>
+
+<!ENTITY % glossaryinfo.module "INCLUDE">
+<![ %glossaryinfo.module; [
+<!ENTITY % local.glossaryinfo.attrib "">
+<!ENTITY % glossaryinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % glossaryinfo.element "INCLUDE">
+<![ %glossaryinfo.element; [
+<!ELEMENT glossaryinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of glossaryinfo.element-->]]>
+
+<!ENTITY % glossaryinfo.attlist "INCLUDE">
+<![ %glossaryinfo.attlist; [
+<!ATTLIST glossaryinfo
+		%common.attrib;
+		%glossaryinfo.role.attrib;
+		%local.glossaryinfo.attrib;
+>
+<!--end of glossaryinfo.attlist-->]]>
+<!--end of glossaryinfo.module-->]]>
+
+<!ENTITY % indexinfo.module "INCLUDE">
+<![ %indexinfo.module; [
+<!ENTITY % local.indexinfo.attrib "">
+<!ENTITY % indexinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % indexinfo.element "INCLUDE">
+<![ %indexinfo.element; [
+<!ELEMENT indexinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of indexinfo.element-->]]>
+
+<!ENTITY % indexinfo.attlist "INCLUDE">
+<![ %indexinfo.attlist; [
+<!ATTLIST indexinfo
+		%common.attrib;
+		%indexinfo.role.attrib;
+		%local.indexinfo.attrib;
+>
+<!--end of indexinfo.attlist-->]]>
+<!--end of indexinfo.module-->]]>
+
+<!ENTITY % setindexinfo.module "INCLUDE">
+<![ %setindexinfo.module; [
+<!ENTITY % local.setindexinfo.attrib "">
+<!ENTITY % setindexinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % setindexinfo.element "INCLUDE">
+<![ %setindexinfo.element; [
+<!ELEMENT setindexinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of setindexinfo.element-->]]>
+
+<!ENTITY % setindexinfo.attlist "INCLUDE">
+<![ %setindexinfo.attlist; [
+<!ATTLIST setindexinfo
+		%common.attrib;
+		%setindexinfo.role.attrib;
+		%local.setindexinfo.attrib;
+>
+<!--end of setindexinfo.attlist-->]]>
+<!--end of setindexinfo.module-->]]>
+
+<!ENTITY % partinfo.module "INCLUDE">
+<![ %partinfo.module; [
+<!ENTITY % local.partinfo.attrib "">
+<!ENTITY % partinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % partinfo.element "INCLUDE">
+<![ %partinfo.element; [
+<!ELEMENT partinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of partinfo.element-->]]>
+
+<!ENTITY % partinfo.attlist "INCLUDE">
+<![ %partinfo.attlist; [
+<!ATTLIST partinfo
+		%common.attrib;
+		%partinfo.role.attrib;
+		%local.partinfo.attrib;
+>
+<!--end of partinfo.attlist-->]]>
+<!--end of partinfo.module-->]]>
+
+<!ENTITY % prefaceinfo.module "INCLUDE">
+<![ %prefaceinfo.module; [
+<!ENTITY % local.prefaceinfo.attrib "">
+<!ENTITY % prefaceinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % prefaceinfo.element "INCLUDE">
+<![ %prefaceinfo.element; [
+<!ELEMENT prefaceinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of prefaceinfo.element-->]]>
+
+<!ENTITY % prefaceinfo.attlist "INCLUDE">
+<![ %prefaceinfo.attlist; [
+<!ATTLIST prefaceinfo
+		%common.attrib;
+		%prefaceinfo.role.attrib;
+		%local.prefaceinfo.attrib;
+>
+<!--end of prefaceinfo.attlist-->]]>
+<!--end of prefaceinfo.module-->]]>
+
+<!ENTITY % refentryinfo.module "INCLUDE">
+<![ %refentryinfo.module; [
+<!ENTITY % local.refentryinfo.attrib "">
+<!ENTITY % refentryinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refentryinfo.element "INCLUDE">
+<![ %refentryinfo.element; [
+<!ELEMENT refentryinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of refentryinfo.element-->]]>
+
+<!ENTITY % refentryinfo.attlist "INCLUDE">
+<![ %refentryinfo.attlist; [
+<!ATTLIST refentryinfo
+		%common.attrib;
+		%refentryinfo.role.attrib;
+		%local.refentryinfo.attrib;
+>
+<!--end of refentryinfo.attlist-->]]>
+<!--end of refentryinfo.module-->]]>
+
+<!ENTITY % refsect1info.module "INCLUDE">
+<![ %refsect1info.module; [
+<!ENTITY % local.refsect1info.attrib "">
+<!ENTITY % refsect1info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect1info.element "INCLUDE">
+<![ %refsect1info.element; [
+<!ELEMENT refsect1info ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of refsect1info.element-->]]>
+
+<!ENTITY % refsect1info.attlist "INCLUDE">
+<![ %refsect1info.attlist; [
+<!ATTLIST refsect1info
+		%common.attrib;
+		%refsect1info.role.attrib;
+		%local.refsect1info.attrib;
+>
+<!--end of refsect1info.attlist-->]]>
+<!--end of refsect1info.module-->]]>
+
+<!ENTITY % refsect2info.module "INCLUDE">
+<![ %refsect2info.module; [
+<!ENTITY % local.refsect2info.attrib "">
+<!ENTITY % refsect2info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect2info.element "INCLUDE">
+<![ %refsect2info.element; [
+<!ELEMENT refsect2info ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of refsect2info.element-->]]>
+
+<!ENTITY % refsect2info.attlist "INCLUDE">
+<![ %refsect2info.attlist; [
+<!ATTLIST refsect2info
+		%common.attrib;
+		%refsect2info.role.attrib;
+		%local.refsect2info.attrib;
+>
+<!--end of refsect2info.attlist-->]]>
+<!--end of refsect2info.module-->]]>
+
+<!ENTITY % refsect3info.module "INCLUDE">
+<![ %refsect3info.module; [
+<!ENTITY % local.refsect3info.attrib "">
+<!ENTITY % refsect3info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect3info.element "INCLUDE">
+<![ %refsect3info.element; [
+<!ELEMENT refsect3info ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of refsect3info.element-->]]>
+
+<!ENTITY % refsect3info.attlist "INCLUDE">
+<![ %refsect3info.attlist; [
+<!ATTLIST refsect3info
+		%common.attrib;
+		%refsect3info.role.attrib;
+		%local.refsect3info.attrib;
+>
+<!--end of refsect3info.attlist-->]]>
+<!--end of refsect3info.module-->]]>
+
+<!ENTITY % refsynopsisdivinfo.module "INCLUDE">
+<![ %refsynopsisdivinfo.module; [
+<!ENTITY % local.refsynopsisdivinfo.attrib "">
+<!ENTITY % refsynopsisdivinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refsynopsisdivinfo.element "INCLUDE">
+<![ %refsynopsisdivinfo.element; [
+<!ELEMENT refsynopsisdivinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of refsynopsisdivinfo.element-->]]>
+
+<!ENTITY % refsynopsisdivinfo.attlist "INCLUDE">
+<![ %refsynopsisdivinfo.attlist; [
+<!ATTLIST refsynopsisdivinfo
+		%common.attrib;
+		%refsynopsisdivinfo.role.attrib;
+		%local.refsynopsisdivinfo.attrib;
+>
+<!--end of refsynopsisdivinfo.attlist-->]]>
+<!--end of refsynopsisdivinfo.module-->]]>
+
+<!ENTITY % referenceinfo.module "INCLUDE">
+<![ %referenceinfo.module; [
+<!ENTITY % local.referenceinfo.attrib "">
+<!ENTITY % referenceinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % referenceinfo.element "INCLUDE">
+<![ %referenceinfo.element; [
+<!ELEMENT referenceinfo ((graphic | mediaobject 
+		| legalnotice | modespec 
+		| subjectset | keywordset | itermset
+                | %bibliocomponent.mix;)+)>
+<!--end of referenceinfo.element-->]]>
+
+<!ENTITY % referenceinfo.attlist "INCLUDE">
+<![ %referenceinfo.attlist; [
+<!ATTLIST referenceinfo
+		%common.attrib;
+		%referenceinfo.role.attrib;
+		%local.referenceinfo.attrib;
+>
+<!--end of referenceinfo.attlist-->]]>
+<!--end of referenceinfo.module-->]]>
+
+<!ENTITY % local.sect1info.attrib "">
+<!ENTITY % sect1info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect1info.element "INCLUDE">
+<![%sect1info.element;[
+<!ELEMENT sect1info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect1info.element-->]]>
+
+<!ENTITY % sect1info.attlist "INCLUDE">
+<![%sect1info.attlist;[
+<!ATTLIST sect1info
+		%common.attrib;
+		%sect1info.role.attrib;
+		%local.sect1info.attrib;
+>
+<!--end of sect1info.attlist-->]]>
+
+<!ENTITY % local.sect2info.attrib "">
+<!ENTITY % sect2info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect2info.element "INCLUDE">
+<![%sect2info.element;[
+<!ELEMENT sect2info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect2info.element-->]]>
+
+<!ENTITY % sect2info.attlist "INCLUDE">
+<![%sect2info.attlist;[
+<!ATTLIST sect2info
+		%common.attrib;
+		%sect2info.role.attrib;
+		%local.sect2info.attrib;
+>
+<!--end of sect2info.attlist-->]]>
+
+<!ENTITY % local.sect3info.attrib "">
+<!ENTITY % sect3info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect3info.element "INCLUDE">
+<![%sect3info.element;[
+<!ELEMENT sect3info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect3info.element-->]]>
+
+<!ENTITY % sect3info.attlist "INCLUDE">
+<![%sect3info.attlist;[
+<!ATTLIST sect3info
+		%common.attrib;
+		%sect3info.role.attrib;
+		%local.sect3info.attrib;
+>
+<!--end of sect3info.attlist-->]]>
+
+<!ENTITY % local.sect4info.attrib "">
+<!ENTITY % sect4info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect4info.element "INCLUDE">
+<![%sect4info.element;[
+<!ELEMENT sect4info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect4info.element-->]]>
+
+<!ENTITY % sect4info.attlist "INCLUDE">
+<![%sect4info.attlist;[
+<!ATTLIST sect4info
+		%common.attrib;
+		%sect4info.role.attrib;
+		%local.sect4info.attrib;
+>
+<!--end of sect4info.attlist-->]]>
+
+<!ENTITY % local.sect5info.attrib "">
+<!ENTITY % sect5info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect5info.element "INCLUDE">
+<![%sect5info.element;[
+<!ELEMENT sect5info ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect5info.element-->]]>
+
+<!ENTITY % sect5info.attlist "INCLUDE">
+<![%sect5info.attlist;[
+<!ATTLIST sect5info
+		%common.attrib;
+		%sect5info.role.attrib;
+		%local.sect5info.attrib;
+>
+<!--end of sect5info.attlist-->]]>
+
+<!-- ...................................................................... -->
+<!-- Section (parallel to Sect*) ......................................... -->
+
+<!ENTITY % section.content.module "INCLUDE">
+<![ %section.content.module; [
+<!ENTITY % section.module "INCLUDE">
+<![ %section.module; [
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+
+<!ENTITY % section.element "INCLUDE">
+<![ %section.element; [
+<!ELEMENT section (sectioninfo?,
+			(%sect.title.content;),
+			(%nav.class;)*,
+			(((%divcomponent.mix;)+,
+ 			  ((%refentry.class;)*|section*))
+			 | (%refentry.class;)+|section+),
+			(%nav.class;)*)>
+<!--end of section.element-->]]>
+
+<!ENTITY % section.attlist "INCLUDE">
+<![ %section.attlist; [
+<!ATTLIST section
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%section.role.attrib;
+		%local.section.attrib;
+>
+<!--end of section.attlist-->]]>
+<!--end of section.module-->]]>
+
+<!ENTITY % sectioninfo.module "INCLUDE">
+<![ %sectioninfo.module; [
+<!ENTITY % sectioninfo.role.attrib "%role.attrib;">
+<!ENTITY % local.sectioninfo.attrib "">
+
+<!ENTITY % sectioninfo.element "INCLUDE">
+<![ %sectioninfo.element; [
+<!ELEMENT sectioninfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sectioninfo.element-->]]>
+
+<!ENTITY % sectioninfo.attlist "INCLUDE">
+<![ %sectioninfo.attlist; [
+<!ATTLIST sectioninfo
+		%common.attrib;
+		%sectioninfo.role.attrib;
+		%local.sectioninfo.attrib;
+>
+<!--end of sectioninfo.attlist-->]]>
+<!--end of sectioninfo.module-->]]>
+<!--end of section.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->
+
+<!ENTITY % sect1.module "INCLUDE">
+<![%sect1.module;[
+<!ENTITY % local.sect1.attrib "">
+<!ENTITY % sect1.role.attrib "%role.attrib;">
+
+<!ENTITY % sect1.element "INCLUDE">
+<![%sect1.element;[
+<!ELEMENT sect1 (sect1info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect2* | simplesect*))
+		| (%refentry.class;)+ | sect2+ | simplesect+), (%nav.class;)*)>
+<!--end of sect1.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect1.attlist "INCLUDE">
+<![%sect1.attlist;[
+<!ATTLIST sect1
+		renderas	(sect2
+				|sect3
+				|sect4
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect1.role.attrib;
+		%local.sect1.attrib;
+>
+<!--end of sect1.attlist-->]]>
+<!--end of sect1.module-->]]>
+
+<!ENTITY % sect2.module "INCLUDE">
+<![%sect2.module;[
+<!ENTITY % local.sect2.attrib "">
+<!ENTITY % sect2.role.attrib "%role.attrib;">
+
+<!ENTITY % sect2.element "INCLUDE">
+<![%sect2.element;[
+<!ELEMENT sect2 (sect2info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect3* | simplesect*))
+		| (%refentry.class;)+ | sect3+ | simplesect+), (%nav.class;)*)>
+<!--end of sect2.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect2.attlist "INCLUDE">
+<![%sect2.attlist;[
+<!ATTLIST sect2
+		renderas	(sect1
+				|sect3
+				|sect4
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect2.role.attrib;
+		%local.sect2.attrib;
+>
+<!--end of sect2.attlist-->]]>
+<!--end of sect2.module-->]]>
+
+<!ENTITY % sect3.module "INCLUDE">
+<![%sect3.module;[
+<!ENTITY % local.sect3.attrib "">
+<!ENTITY % sect3.role.attrib "%role.attrib;">
+
+<!ENTITY % sect3.element "INCLUDE">
+<![%sect3.element;[
+<!ELEMENT sect3 (sect3info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect4* | simplesect*))
+		| (%refentry.class;)+ | sect4+ | simplesect+), (%nav.class;)*)>
+<!--end of sect3.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect3.attlist "INCLUDE">
+<![%sect3.attlist;[
+<!ATTLIST sect3
+		renderas	(sect1
+				|sect2
+				|sect4
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect3.role.attrib;
+		%local.sect3.attrib;
+>
+<!--end of sect3.attlist-->]]>
+<!--end of sect3.module-->]]>
+
+<!ENTITY % sect4.module "INCLUDE">
+<![%sect4.module;[
+<!ENTITY % local.sect4.attrib "">
+<!ENTITY % sect4.role.attrib "%role.attrib;">
+
+<!ENTITY % sect4.element "INCLUDE">
+<![%sect4.element;[
+<!ELEMENT sect4 (sect4info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, 
+		((%refentry.class;)* | sect5* | simplesect*))
+		| (%refentry.class;)+ | sect5+ | simplesect+), (%nav.class;)*)>
+<!--end of sect4.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect4.attlist "INCLUDE">
+<![%sect4.attlist;[
+<!ATTLIST sect4
+		renderas	(sect1
+				|sect2
+				|sect3
+				|sect5)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect4.role.attrib;
+		%local.sect4.attrib;
+>
+<!--end of sect4.attlist-->]]>
+<!--end of sect4.module-->]]>
+
+<!ENTITY % sect5.module "INCLUDE">
+<![%sect5.module;[
+<!ENTITY % local.sect5.attrib "">
+<!ENTITY % sect5.role.attrib "%role.attrib;">
+
+<!ENTITY % sect5.element "INCLUDE">
+<![%sect5.element;[
+<!ELEMENT sect5 (sect5info?, (%sect.title.content;), (%nav.class;)*,
+		(((%divcomponent.mix;)+, ((%refentry.class;)* | simplesect*))
+		| (%refentry.class;)+ | simplesect+), (%nav.class;)*)>
+<!--end of sect5.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+		appear -->
+
+
+<!ENTITY % sect5.attlist "INCLUDE">
+<![%sect5.attlist;[
+<!ATTLIST sect5
+		renderas	(sect1
+				|sect2
+				|sect3
+				|sect4)		#IMPLIED
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%sect5.role.attrib;
+		%local.sect5.attrib;
+>
+<!--end of sect5.attlist-->]]>
+<!--end of sect5.module-->]]>
+
+<!ENTITY % simplesect.module "INCLUDE">
+<![%simplesect.module;[
+<!ENTITY % local.simplesect.attrib "">
+<!ENTITY % simplesect.role.attrib "%role.attrib;">
+
+<!ENTITY % simplesect.element "INCLUDE">
+<![%simplesect.element;[
+<!ELEMENT simplesect ((%sect.title.content;), (%divcomponent.mix;)+)>
+<!--end of simplesect.element-->]]>
+
+<!ENTITY % simplesect.attlist "INCLUDE">
+<![%simplesect.attlist;[
+<!ATTLIST simplesect
+		%common.attrib;
+		%simplesect.role.attrib;
+		%local.simplesect.attrib;
+>
+<!--end of simplesect.attlist-->]]>
+<!--end of simplesect.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliography ......................................................... -->
+
+<!ENTITY % bibliography.content.module "INCLUDE">
+<![%bibliography.content.module;[
+<!ENTITY % bibliography.module "INCLUDE">
+<![%bibliography.module;[
+<!ENTITY % local.bibliography.attrib "">
+<!ENTITY % bibliography.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliography.element "INCLUDE">
+<![%bibliography.element;[
+<!ELEMENT bibliography (bibliographyinfo?,
+                        (%bookcomponent.title.content;)?,
+                        (%component.mix;)*, 
+                        (bibliodiv+ | (biblioentry|bibliomixed)+))>
+<!--end of bibliography.element-->]]>
+
+<!ENTITY % bibliography.attlist "INCLUDE">
+<![%bibliography.attlist;[
+<!ATTLIST bibliography
+		%status.attrib;
+		%common.attrib;
+		%bibliography.role.attrib;
+		%local.bibliography.attrib;
+>
+<!--end of bibliography.attlist-->]]>
+<!--end of bibliography.module-->]]>
+
+<!ENTITY % bibliodiv.module "INCLUDE">
+<![%bibliodiv.module;[
+<!ENTITY % local.bibliodiv.attrib "">
+<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliodiv.element "INCLUDE">
+<![%bibliodiv.element;[
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+		(biblioentry|bibliomixed)+)>
+<!--end of bibliodiv.element-->]]>
+
+<!ENTITY % bibliodiv.attlist "INCLUDE">
+<![%bibliodiv.attlist;[
+<!ATTLIST bibliodiv
+		%status.attrib;
+		%common.attrib;
+		%bibliodiv.role.attrib;
+		%local.bibliodiv.attrib;
+>
+<!--end of bibliodiv.attlist-->]]>
+<!--end of bibliodiv.module-->]]>
+<!--end of bibliography.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Glossary ............................................................. -->
+
+<!ENTITY % glossary.content.module "INCLUDE">
+<![%glossary.content.module;[
+<!ENTITY % glossary.module "INCLUDE">
+<![%glossary.module;[
+<!ENTITY % local.glossary.attrib "">
+<!ENTITY % glossary.role.attrib "%role.attrib;">
+
+<!ENTITY % glossary.element "INCLUDE">
+<![%glossary.element;[
+<!ELEMENT glossary (glossaryinfo?,
+                    (%bookcomponent.title.content;)?,
+                    (%component.mix;)*,
+                    (glossdiv+ | glossentry+), bibliography?)>
+<!--end of glossary.element-->]]>
+
+<!ENTITY % glossary.attlist "INCLUDE">
+<![%glossary.attlist;[
+<!ATTLIST glossary
+		%status.attrib;
+		%common.attrib;
+		%glossary.role.attrib;
+		%local.glossary.attrib;
+>
+<!--end of glossary.attlist-->]]>
+<!--end of glossary.module-->]]>
+
+<!ENTITY % glossdiv.module "INCLUDE">
+<![%glossdiv.module;[
+<!ENTITY % local.glossdiv.attrib "">
+<!ENTITY % glossdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdiv.element "INCLUDE">
+<![%glossdiv.element;[
+<!ELEMENT glossdiv ((%sect.title.content;), (%component.mix;)*,
+		glossentry+)>
+<!--end of glossdiv.element-->]]>
+
+<!ENTITY % glossdiv.attlist "INCLUDE">
+<![%glossdiv.attlist;[
+<!ATTLIST glossdiv
+		%status.attrib;
+		%common.attrib;
+		%glossdiv.role.attrib;
+		%local.glossdiv.attrib;
+>
+<!--end of glossdiv.attlist-->]]>
+<!--end of glossdiv.module-->]]>
+<!--end of glossary.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Index and SetIndex ................................................... -->
+
+<!ENTITY % index.content.module "INCLUDE">
+<![%index.content.module;[
+<!ENTITY % indexes.module "INCLUDE">
+<![%indexes.module;[
+<!ENTITY % local.indexes.attrib "">
+<!ENTITY % indexes.role.attrib "%role.attrib;">
+
+<!ENTITY % index.element "INCLUDE">
+<![%index.element;[
+<!ELEMENT index (indexinfo?,
+                 (%bookcomponent.title.content;)?,
+                 (%component.mix;)*,
+                 (indexdiv* | indexentry*))>
+<!--end of index.element-->]]>
+
+<!ENTITY % index.attlist "INCLUDE">
+<![%index.attlist;[
+<!ATTLIST index
+		%common.attrib;
+		%indexes.role.attrib;
+		%local.indexes.attrib;
+>
+<!--end of index.attlist-->]]>
+
+<!ENTITY % setindex.element "INCLUDE">
+<![%setindex.element;[
+<!ELEMENT setindex (setindexinfo?,
+                    (%bookcomponent.title.content;)?,
+                    (%component.mix;)*, (indexdiv* | indexentry*))>
+<!--end of setindex.element-->]]>
+
+<!ENTITY % setindex.attlist "INCLUDE">
+<![%setindex.attlist;[
+<!ATTLIST setindex
+		%common.attrib;
+		%indexes.role.attrib;
+		%local.indexes.attrib;
+>
+<!--end of setindex.attlist-->]]>
+<!--end of indexes.module-->]]>
+
+<!ENTITY % indexdiv.module "INCLUDE">
+<![%indexdiv.module;[
+
+<!-- SegmentedList in this content is useful for marking up permuted
+     indices. -->
+
+<!ENTITY % local.indexdiv.attrib "">
+<!ENTITY % indexdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % indexdiv.element "INCLUDE">
+<![%indexdiv.element;[
+<!ELEMENT indexdiv ((%sect.title.content;)?, ((%indexdivcomponent.mix;)*,
+		(indexentry+ | segmentedlist)))>
+<!--end of indexdiv.element-->]]>
+
+<!ENTITY % indexdiv.attlist "INCLUDE">
+<![%indexdiv.attlist;[
+<!ATTLIST indexdiv
+		%common.attrib;
+		%indexdiv.role.attrib;
+		%local.indexdiv.attrib;
+>
+<!--end of indexdiv.attlist-->]]>
+<!--end of indexdiv.module-->]]>
+
+<!ENTITY % indexentry.module "INCLUDE">
+<![%indexentry.module;[
+<!-- Index entries appear in the index, not the text. -->
+
+<!ENTITY % local.indexentry.attrib "">
+<!ENTITY % indexentry.role.attrib "%role.attrib;">
+
+<!ENTITY % indexentry.element "INCLUDE">
+<![%indexentry.element;[
+<!ELEMENT indexentry (primaryie, (seeie|seealsoie)*,
+		(secondaryie, (seeie|seealsoie|tertiaryie)*)*)>
+<!--end of indexentry.element-->]]>
+
+<!ENTITY % indexentry.attlist "INCLUDE">
+<![%indexentry.attlist;[
+<!ATTLIST indexentry
+		%common.attrib;
+		%indexentry.role.attrib;
+		%local.indexentry.attrib;
+>
+<!--end of indexentry.attlist-->]]>
+<!--end of indexentry.module-->]]>
+
+<!ENTITY % primsecterie.module "INCLUDE">
+<![%primsecterie.module;[
+<!ENTITY % local.primsecterie.attrib "">
+<!ENTITY % primsecterie.role.attrib "%role.attrib;">
+
+<!ENTITY % primaryie.element "INCLUDE">
+<![%primaryie.element;[
+<!ELEMENT primaryie (%ndxterm.char.mix;)*>
+<!--end of primaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % primaryie.attlist "INCLUDE">
+<![%primaryie.attlist;[
+<!ATTLIST primaryie
+		%linkends.attrib;		%common.attrib;
+		%primsecterie.role.attrib;
+		%local.primsecterie.attrib;
+>
+<!--end of primaryie.attlist-->]]>
+
+<!ENTITY % secondaryie.element "INCLUDE">
+<![%secondaryie.element;[
+<!ELEMENT secondaryie (%ndxterm.char.mix;)*>
+<!--end of secondaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % secondaryie.attlist "INCLUDE">
+<![%secondaryie.attlist;[
+<!ATTLIST secondaryie
+		%linkends.attrib;		%common.attrib;
+		%primsecterie.role.attrib;
+		%local.primsecterie.attrib;
+>
+<!--end of secondaryie.attlist-->]]>
+
+<!ENTITY % tertiaryie.element "INCLUDE">
+<![%tertiaryie.element;[
+<!ELEMENT tertiaryie (%ndxterm.char.mix;)*>
+<!--end of tertiaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % tertiaryie.attlist "INCLUDE">
+<![%tertiaryie.attlist;[
+<!ATTLIST tertiaryie
+		%linkends.attrib;		%common.attrib;
+		%primsecterie.role.attrib;
+		%local.primsecterie.attrib;
+>
+<!--end of tertiaryie.attlist-->]]>
+
+<!--end of primsecterie.module-->]]>
+	
+<!ENTITY % seeie.module "INCLUDE">
+<![%seeie.module;[
+<!ENTITY % local.seeie.attrib "">
+<!ENTITY % seeie.role.attrib "%role.attrib;">
+
+<!ENTITY % seeie.element "INCLUDE">
+<![%seeie.element;[
+<!ELEMENT seeie (%ndxterm.char.mix;)*>
+<!--end of seeie.element-->]]>
+
+<!-- to IndexEntry to look up -->
+
+
+<!ENTITY % seeie.attlist "INCLUDE">
+<![%seeie.attlist;[
+<!ATTLIST seeie
+		%linkend.attrib;		%common.attrib;
+		%seeie.role.attrib;
+		%local.seeie.attrib;
+>
+<!--end of seeie.attlist-->]]>
+<!--end of seeie.module-->]]>
+
+<!ENTITY % seealsoie.module "INCLUDE">
+<![%seealsoie.module;[
+<!ENTITY % local.seealsoie.attrib "">
+<!ENTITY % seealsoie.role.attrib "%role.attrib;">
+
+<!ENTITY % seealsoie.element "INCLUDE">
+<![%seealsoie.element;[
+<!ELEMENT seealsoie (%ndxterm.char.mix;)*>
+<!--end of seealsoie.element-->]]>
+
+<!-- to related IndexEntries -->
+
+
+<!ENTITY % seealsoie.attlist "INCLUDE">
+<![%seealsoie.attlist;[
+<!ATTLIST seealsoie
+		%linkends.attrib;		%common.attrib;
+		%seealsoie.role.attrib;
+		%local.seealsoie.attrib;
+>
+<!--end of seealsoie.attlist-->]]>
+<!--end of seealsoie.module-->]]>
+<!--end of index.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- RefEntry ............................................................. -->
+
+<!ENTITY % refentry.content.module "INCLUDE">
+<![%refentry.content.module;[
+<!ENTITY % refentry.module "INCLUDE">
+<![%refentry.module;[
+<!ENTITY % local.refentry.attrib "">
+<!ENTITY % refentry.role.attrib "%role.attrib;">
+
+<!ENTITY % refentry.element "INCLUDE">
+<![%refentry.element;[
+<!ELEMENT refentry ((%ndxterm.class;)*,
+                    refentryinfo?, refmeta?, (remark|%link.char.class;)*,
+                    refnamediv, refsynopsisdiv?, refsect1+)>
+<!--end of refentry.element-->]]>
+
+<!ENTITY % refentry.attlist "INCLUDE">
+<![%refentry.attlist;[
+<!ATTLIST refentry
+		%status.attrib;
+		%common.attrib;
+		%refentry.role.attrib;
+		%local.refentry.attrib;
+>
+<!--end of refentry.attlist-->]]>
+<!--end of refentry.module-->]]>
+
+<!ENTITY % refmeta.module "INCLUDE">
+<![%refmeta.module;[
+<!ENTITY % local.refmeta.attrib "">
+<!ENTITY % refmeta.role.attrib "%role.attrib;">
+
+<!ENTITY % refmeta.element "INCLUDE">
+<![%refmeta.element;[
+<!ELEMENT refmeta ((%ndxterm.class;)*,
+                   refentrytitle, manvolnum?, refmiscinfo*,
+                   (%ndxterm.class;)*)>
+<!--end of refmeta.element-->]]>
+
+<!ENTITY % refmeta.attlist "INCLUDE">
+<![%refmeta.attlist;[
+<!ATTLIST refmeta
+		%common.attrib;
+		%refmeta.role.attrib;
+		%local.refmeta.attrib;
+>
+<!--end of refmeta.attlist-->]]>
+<!--end of refmeta.module-->]]>
+
+<!ENTITY % refmiscinfo.module "INCLUDE">
+<![%refmiscinfo.module;[
+<!ENTITY % local.refmiscinfo.attrib "">
+<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refmiscinfo.element "INCLUDE">
+<![%refmiscinfo.element;[
+<!ELEMENT refmiscinfo (%docinfo.char.mix;)*>
+<!--end of refmiscinfo.element-->]]>
+
+<!-- Class: Freely assignable parameter; no default -->
+
+
+<!ENTITY % refmiscinfo.attlist "INCLUDE">
+<![%refmiscinfo.attlist;[
+<!ATTLIST refmiscinfo
+		class		CDATA		#IMPLIED
+		%common.attrib;
+		%refmiscinfo.role.attrib;
+		%local.refmiscinfo.attrib;
+>
+<!--end of refmiscinfo.attlist-->]]>
+<!--end of refmiscinfo.module-->]]>
+
+<!ENTITY % refnamediv.module "INCLUDE">
+<![%refnamediv.module;[
+<!ENTITY % local.refnamediv.attrib "">
+<!ENTITY % refnamediv.role.attrib "%role.attrib;">
+
+<!ENTITY % refnamediv.element "INCLUDE">
+<![%refnamediv.element;[
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+		(remark|%link.char.class;)*)>
+<!--end of refnamediv.element-->]]>
+
+<!ENTITY % refnamediv.attlist "INCLUDE">
+<![%refnamediv.attlist;[
+<!ATTLIST refnamediv
+		%common.attrib;
+		%refnamediv.role.attrib;
+		%local.refnamediv.attrib;
+>
+<!--end of refnamediv.attlist-->]]>
+<!--end of refnamediv.module-->]]>
+	
+<!ENTITY % refdescriptor.module "INCLUDE">
+<![%refdescriptor.module;[
+<!ENTITY % local.refdescriptor.attrib "">
+<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
+
+<!ENTITY % refdescriptor.element "INCLUDE">
+<![%refdescriptor.element;[
+<!ELEMENT refdescriptor (%refname.char.mix;)*>
+<!--end of refdescriptor.element-->]]>
+
+<!ENTITY % refdescriptor.attlist "INCLUDE">
+<![%refdescriptor.attlist;[
+<!ATTLIST refdescriptor
+		%common.attrib;
+		%refdescriptor.role.attrib;
+		%local.refdescriptor.attrib;
+>
+<!--end of refdescriptor.attlist-->]]>
+<!--end of refdescriptor.module-->]]>
+
+<!ENTITY % refname.module "INCLUDE">
+<![%refname.module;[
+<!ENTITY % local.refname.attrib "">
+<!ENTITY % refname.role.attrib "%role.attrib;">
+
+<!ENTITY % refname.element "INCLUDE">
+<![%refname.element;[
+<!ELEMENT refname (%refname.char.mix;)*>
+<!--end of refname.element-->]]>
+
+<!ENTITY % refname.attlist "INCLUDE">
+<![%refname.attlist;[
+<!ATTLIST refname
+		%common.attrib;
+		%refname.role.attrib;
+		%local.refname.attrib;
+>
+<!--end of refname.attlist-->]]>
+<!--end of refname.module-->]]>
+
+<!ENTITY % refpurpose.module "INCLUDE">
+<![%refpurpose.module;[
+<!ENTITY % local.refpurpose.attrib "">
+<!ENTITY % refpurpose.role.attrib "%role.attrib;">
+
+<!ENTITY % refpurpose.element "INCLUDE">
+<![%refpurpose.element;[
+<!ELEMENT refpurpose (%refinline.char.mix;)*>
+<!--end of refpurpose.element-->]]>
+
+<!ENTITY % refpurpose.attlist "INCLUDE">
+<![%refpurpose.attlist;[
+<!ATTLIST refpurpose
+		%common.attrib;
+		%refpurpose.role.attrib;
+		%local.refpurpose.attrib;
+>
+<!--end of refpurpose.attlist-->]]>
+<!--end of refpurpose.module-->]]>
+
+<!ENTITY % refclass.module "INCLUDE">
+<![%refclass.module;[
+<!ENTITY % local.refclass.attrib "">
+<!ENTITY % refclass.role.attrib "%role.attrib;">
+
+<!ENTITY % refclass.element "INCLUDE">
+<![%refclass.element;[
+<!ELEMENT refclass (%refclass.char.mix;)*>
+<!--end of refclass.element-->]]>
+
+<!ENTITY % refclass.attlist "INCLUDE">
+<![%refclass.attlist;[
+<!ATTLIST refclass
+		%common.attrib;
+		%refclass.role.attrib;
+		%local.refclass.attrib;
+>
+<!--end of refclass.attlist-->]]>
+<!--end of refclass.module-->]]>
+
+<!ENTITY % refsynopsisdiv.module "INCLUDE">
+<![%refsynopsisdiv.module;[
+<!ENTITY % local.refsynopsisdiv.attrib "">
+<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % refsynopsisdiv.element "INCLUDE">
+<![%refsynopsisdiv.element;[
+<!ELEMENT refsynopsisdiv (refsynopsisdivinfo?, (%refsect.title.content;)?,
+		(((%refcomponent.mix;)+, refsect2*) | (refsect2+)))>
+<!--end of refsynopsisdiv.element-->]]>
+
+<!ENTITY % refsynopsisdiv.attlist "INCLUDE">
+<![%refsynopsisdiv.attlist;[
+<!ATTLIST refsynopsisdiv
+		%common.attrib;
+		%refsynopsisdiv.role.attrib;
+		%local.refsynopsisdiv.attrib;
+>
+<!--end of refsynopsisdiv.attlist-->]]>
+<!--end of refsynopsisdiv.module-->]]>
+
+<!ENTITY % refsect1.module "INCLUDE">
+<![%refsect1.module;[
+<!ENTITY % local.refsect1.attrib "">
+<!ENTITY % refsect1.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect1.element "INCLUDE">
+<![%refsect1.element;[
+<!ELEMENT refsect1 (refsect1info?, (%refsect.title.content;),
+		(((%refcomponent.mix;)+, refsect2*) | refsect2+))>
+<!--end of refsect1.element-->]]>
+
+<!ENTITY % refsect1.attlist "INCLUDE">
+<![%refsect1.attlist;[
+<!ATTLIST refsect1
+		%status.attrib;
+		%common.attrib;
+		%refsect1.role.attrib;
+		%local.refsect1.attrib;
+>
+<!--end of refsect1.attlist-->]]>
+<!--end of refsect1.module-->]]>
+
+<!ENTITY % refsect2.module "INCLUDE">
+<![%refsect2.module;[
+<!ENTITY % local.refsect2.attrib "">
+<!ENTITY % refsect2.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect2.element "INCLUDE">
+<![%refsect2.element;[
+<!ELEMENT refsect2 (refsect2info?, (%refsect.title.content;),
+	(((%refcomponent.mix;)+, refsect3*) | refsect3+))>
+<!--end of refsect2.element-->]]>
+
+<!ENTITY % refsect2.attlist "INCLUDE">
+<![%refsect2.attlist;[
+<!ATTLIST refsect2
+		%status.attrib;
+		%common.attrib;
+		%refsect2.role.attrib;
+		%local.refsect2.attrib;
+>
+<!--end of refsect2.attlist-->]]>
+<!--end of refsect2.module-->]]>
+
+<!ENTITY % refsect3.module "INCLUDE">
+<![%refsect3.module;[
+<!ENTITY % local.refsect3.attrib "">
+<!ENTITY % refsect3.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect3.element "INCLUDE">
+<![%refsect3.element;[
+<!ELEMENT refsect3 (refsect3info?, (%refsect.title.content;), 
+	(%refcomponent.mix;)+)>
+<!--end of refsect3.element-->]]>
+
+<!ENTITY % refsect3.attlist "INCLUDE">
+<![%refsect3.attlist;[
+<!ATTLIST refsect3
+		%status.attrib;
+		%common.attrib;
+		%refsect3.role.attrib;
+		%local.refsect3.attrib;
+>
+<!--end of refsect3.attlist-->]]>
+<!--end of refsect3.module-->]]>
+<!--end of refentry.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Article .............................................................. -->
+
+<!ENTITY % article.module "INCLUDE">
+<![%article.module;[
+<!-- An Article is a chapter-level, stand-alone document that is often,
+     but need not be, collected into a Book. -->
+
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+
+<!ENTITY % article.element "INCLUDE">
+<![%article.element;[
+<!ELEMENT article ((%div.title.content;)?, articleinfo?, tocchap?, lot*,
+			(%bookcomponent.content;),
+			((%nav.class;) | (%appendix.class;) | ackno)*)>
+<!--end of article.element-->]]>
+
+<!-- Class: Indicates the type of a particular article;
+		all articles have the same structure and general purpose.
+		No default. -->
+<!-- ParentBook: ID of the enclosing Book -->
+
+
+<!ENTITY % article.attlist "INCLUDE">
+<![%article.attlist;[
+<!ATTLIST article
+		class		(journalarticle
+				|productsheet
+				|whitepaper
+				|techreport
+                                |specification
+				|faq)		#IMPLIED
+		parentbook	IDREF		#IMPLIED
+		%status.attrib;
+		%common.attrib;
+		%article.role.attrib;
+		%local.article.attrib;
+>
+<!--end of article.attlist-->]]>
+<!--end of article.module-->]]>
+
+<!-- End of DocBook XML document hierarchy module V4.1.2 .................... -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbhierx.mod
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbnotnx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbnotnx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbnotnx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,97 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML notations module V4.1.2 .................................... -->
+<!-- File dbnotnx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh, and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     $Id: dbnotnx.mod,v 1.1 2001/02/24 16:51:28 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the entity declarations for the standard ISO
+     entity sets used by DocBook.
+
+     In DTD driver files referring to this module, please use an entity
+     declaration that uses the public identifier shown below:
+
+     <!ENTITY % dbnotn PUBLIC
+     "-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN"
+     "dbnotnx.mod">
+     %dbnotn;
+
+     See the documentation for detailed information on the parameter
+     entity and module scheme used in DocBook, customizing DocBook and
+     planning for interchange, and changes made since the last release
+     of DocBook.
+-->
+
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+		"BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+		| EPS | EQN | FAX | GIF | GIF87a | GIF89a 
+		| JPG | JPEG | IGES | PCX
+		| PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+		| linespecific
+		%local.notation.class;">
+
+<!NOTATION BMP		PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR	PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY	PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR	PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF	SYSTEM "DITROFF">
+<!NOTATION DVI		SYSTEM "DVI">
+<!NOTATION EPS		PUBLIC 
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN		SYSTEM "EQN">
+<!NOTATION FAX		PUBLIC 
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF		SYSTEM "GIF">
+<!NOTATION GIF87a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+
+<!NOTATION GIF89a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG		SYSTEM "JPG">
+<!NOTATION JPEG		SYSTEM "JPG">
+<!NOTATION IGES		PUBLIC 
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC		SYSTEM "PIC">
+<!NOTATION PNG          SYSTEM "http://www.w3.org/TR/REC-png">
+<!NOTATION PS		SYSTEM "PS">
+<!NOTATION SGML		PUBLIC 
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL		SYSTEM "TBL">
+<!NOTATION TEX		PUBLIC 
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF		SYSTEM "TIFF">
+<!NOTATION WMF		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG		SYSTEM "WPG"> <!--WordPerfect Graphic format-->
+<!NOTATION linespecific	SYSTEM "linespecific">
+
+<!-- End of DocBook XML notations module V4.1.2 ............................. -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbnotnx.mod
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbpoolx.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbpoolx.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbpoolx.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7516 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML information pool module V4.1.2 ............................. -->
+<!-- File dbpoolx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     $Id: dbpoolx.mod,v 1.1 2001/02/24 16:51:28 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook XML DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the objects, inline
+     elements, and so on that are available to be used as the main
+     content of DocBook documents.  Some elements are useful for general
+     publishing, and others are useful specifically for computer
+     documentation.
+
+     This module has the following dependencies on other modules:
+
+     o It assumes that a %notation.class; entity is defined by the
+       driver file or other high-level module.  This entity is
+       referenced in the NOTATION attributes for the graphic-related and
+       ModeSpec elements.
+
+     o It assumes that an appropriately parameterized table module is
+       available for use with the table-related elements.
+
+     In DTD driver files referring to this module, please use an entity
+     declaration that uses the public identifier shown below:
+
+     <!ENTITY % dbpool PUBLIC
+     "-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN"
+     "dbpoolx.mod">
+     %dbpool;
+
+     See the documentation for detailed information on the parameter
+     entity and module scheme used in DocBook, customizing DocBook and
+     planning for interchange, and changes made since the last release
+     of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- General-purpose semantics entities ................................... -->
+
+<!ENTITY % yesorno.attvals	"CDATA">
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbpool.redecl.module "IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes and mixtures ............................ -->
+
+<!-- "Ubiquitous" classes: ndxterm.class and beginpage -->
+
+<!ENTITY % local.ndxterm.class "">
+<!ENTITY % ndxterm.class
+		"indexterm %local.ndxterm.class;">
+
+<!-- Object-level classes ................................................. -->
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+		"calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist
+		|simplelist|variablelist %local.list.class;">
+
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+		"caution|important|note|tip|warning %local.admon.class;">
+
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+		"literallayout|programlisting|programlistingco|screen
+		|screenco|screenshot %local.linespecific.class;">
+
+<!ENTITY % local.method.synop.class "">
+<!ENTITY % method.synop.class
+		"constructorsynopsis
+                 |destructorsynopsis
+                 |methodsynopsis %local.method.synop.class;">
+
+<!ENTITY % local.synop.class "">
+<!ENTITY % synop.class
+		"synopsis|cmdsynopsis|funcsynopsis
+                 |classsynopsis|fieldsynopsis
+                 |%method.synop.class; %local.synop.class;">
+
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+		"formalpara|para|simpara %local.para.class;">
+
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+		"address|blockquote
+                |graphic|graphicco|mediaobject|mediaobjectco
+                |informalequation
+		|informalexample
+                |informalfigure
+                |informaltable %local.informal.class;">
+
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+		"equation|example|figure|table %local.formal.class;">
+
+<!-- The DocBook TC may produce an official EBNF module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % ebnf.block.hook "">
+
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+		"msgset|procedure|sidebar|qandaset
+                 %ebnf.block.hook;
+                 %local.compound.class;">
+
+<!ENTITY % local.genobj.class "">
+<!ENTITY % genobj.class
+		"anchor|bridgehead|remark|highlights
+		%local.genobj.class;">
+
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+		"abstract|authorblurb|epigraph
+		%local.descobj.class;">
+
+<!-- Character-level classes .............................................. -->
+
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % xref.char.class
+		"footnoteref|xref %local.xref.char.class;">
+
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+		"abbrev|acronym|citation|citerefentry|citetitle|emphasis
+		|firstterm|foreignphrase|glossterm|footnote|phrase
+		|quote|trademark|wordasword %local.gen.char.class;">
+
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+		"link|olink|ulink %local.link.char.class;">
+
+<!-- The DocBook TC may produce an official EBNF module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % ebnf.inline.hook "">
+
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+		"action|application
+                |classname|methodname|interfacename|exceptionname
+                |ooclass|oointerface|ooexception
+                |command|computeroutput
+		|database|email|envar|errorcode|errorname|errortype|filename
+		|function|guibutton|guiicon|guilabel|guimenu|guimenuitem
+		|guisubmenu|hardware|interface|keycap
+		|keycode|keycombo|keysym|literal|constant|markup|medialabel
+		|menuchoice|mousebutton|option|optional|parameter
+		|prompt|property|replaceable|returnvalue|sgmltag|structfield
+		|structname|symbol|systemitem|token|type|userinput|varname
+                %ebnf.inline.hook;
+		%local.tech.char.class;">
+
+<!ENTITY % local.base.char.class "">
+<!ENTITY % base.char.class
+		"anchor %local.base.char.class;">
+
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+		"author|authorinitials|corpauthor|modespec|othercredit
+		|productname|productnumber|revhistory
+		%local.docinfo.char.class;">
+
+<!ENTITY % local.other.char.class "">
+<!ENTITY % other.char.class
+		"remark|subscript|superscript %local.other.char.class;">
+
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+		"inlinegraphic|inlinemediaobject|inlineequation %local.inlineobj.char.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+     retaining their references to the entities that are declared before
+     this point -->
+
+<![%dbpool.redecl.module;[
+<!-- Defining rdbpool here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbpool "">
+%rdbpool;
+<!--end of dbpool.redecl.module-->]]>
+
+<!-- Object-level mixtures ................................................ -->
+
+<!--
+                      list admn line synp para infm form cmpd gen  desc
+Component mixture       X    X    X    X    X    X    X    X    X    X
+Sidebar mixture         X    X    X    X    X    X    X    a    X
+Footnote mixture        X         X    X    X    X
+Example mixture         X         X    X    X    X
+Highlights mixture      X    X              X
+Paragraph mixture       X         X    X         X
+Admonition mixture      X         X    X    X    X    X    b    c
+Figure mixture                    X    X         X
+Table entry mixture     X    X    X         X    d
+Glossary def mixture    X         X    X    X    X         e
+Legal notice mixture    X    X    X         X    f
+
+a. Just Procedure; not Sidebar itself or MsgSet.
+b. No MsgSet.
+c. No Highlights.
+d. Just Graphic; no other informal objects.
+e. No Anchor, BridgeHead, or Highlights.
+f. Just BlockQuote; no other informal objects.
+-->
+
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+		|%genobj.class;		|%descobj.class;
+		|%ndxterm.class;        |beginpage
+		%local.component.mix;">
+
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|procedure
+		|%genobj.class;
+		|%ndxterm.class;        |beginpage
+		%local.sidebar.mix;">
+
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % qandaset.mix
+		"%list.class;           |%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|procedure
+		|%genobj.class;
+		|%ndxterm.class;
+		%local.qandaset.mix;">
+
+<!ENTITY % local.revdescription.mix "">
+<!ENTITY % revdescription.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|procedure
+		|%genobj.class;
+		|%ndxterm.class;
+		%local.revdescription.mix;">
+
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		%local.footnote.mix;">
+
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%ndxterm.class;        |beginpage
+		%local.example.mix;">
+
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % highlights.mix
+		"%list.class;		|%admon.class;
+		|%para.class;
+		|%ndxterm.class;
+		%local.highlights.mix;">
+
+<!-- %formal.class; is explicitly excluded from many contexts in which
+     paragraphs are used -->
+<!ENTITY % local.para.mix "">
+<!ENTITY % para.mix
+		"%list.class;           |%admon.class;
+		|%linespecific.class;
+					|%informal.class;
+		|%formal.class;
+		%local.para.mix;">
+
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|procedure|sidebar
+		|anchor|bridgehead|remark
+		|%ndxterm.class;        |beginpage
+		%local.admon.mix;">
+
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+		"%linespecific.class;	|%synop.class;
+					|%informal.class;
+		|%ndxterm.class;        |beginpage
+		%local.figure.mix;">
+
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|graphic|mediaobject
+		%local.tabentry.mix;">
+
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % glossdef.mix
+		"%list.class;
+		|%linespecific.class;	|%synop.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		|remark
+		|%ndxterm.class;        |beginpage
+		%local.glossdef.mix;">
+
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		|%ndxterm.class;        |beginpage
+		%local.legalnotice.mix;">
+
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.textobject.mix;">
+
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix 
+		"videoobject|audioobject|imageobject %local.mediaobject.mix;">
+
+<!-- Character-level mixtures ............................................. -->
+
+<!--
+                    #PCD xref word link cptr base dnfo othr inob (synop)
+para.char.mix         X    X    X    X    X    X    X    X    X
+title.char.mix        X    X    X    X    X    X    X    X    X
+ndxterm.char.mix      X    X    X    X    X    X    X    X    a
+cptr.char.mix         X              X    X    X         X    a
+smallcptr.char.mix    X                   b                   a
+word.char.mix         X         c    X         X         X    a
+docinfo.char.mix      X         d    X    b              X    a
+
+a. Just InlineGraphic; no InlineEquation.
+b. Just Replaceable; no other computer terms.
+c. Just Emphasis and Trademark; no other word elements.
+d. Just Acronym, Emphasis, and Trademark; no other word elements.
+-->
+
+<!-- The DocBook TC may produce an official forms module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % forminlines.hook "">
+
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;	|%inlineobj.char.class;
+		|%synop.class;
+		|%ndxterm.class;        |beginpage
+                %forminlines.hook;
+		%local.para.char.mix;">
+
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;	|%inlineobj.char.class;
+		|%ndxterm.class;
+		%local.title.char.mix;">
+
+<!ENTITY % local.ndxterm.char.mix "">
+<!ENTITY % ndxterm.char.mix
+		"#PCDATA
+		|%xref.char.class;	|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;	|%docinfo.char.class;
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		%local.ndxterm.char.mix;">
+
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+		"#PCDATA
+		|%link.char.class;	|%tech.char.class;
+		|%base.char.class;
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;        |beginpage
+		%local.cptr.char.mix;">
+
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+		"#PCDATA
+					|replaceable
+					|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;        |beginpage
+		%local.smallcptr.char.mix;">
+
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+		"#PCDATA
+					|acronym|emphasis|trademark
+		|%link.char.class;
+		|%base.char.class;
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;        |beginpage
+		%local.word.char.mix;">
+
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+		"#PCDATA
+		|%link.char.class;
+					|emphasis|trademark
+					|replaceable
+		|%other.char.class;	|inlinegraphic|inlinemediaobject
+		|%ndxterm.class;
+		%local.docinfo.char.mix;">
+<!--ENTITY % bibliocomponent.mix (see Bibliographic section, below)-->
+<!--ENTITY % person.ident.mix (see Bibliographic section, below)-->
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % formalobject.title.content "title, titleabbrev?">
+
+<!-- ...................................................................... -->
+<!-- Entities for attributes and attribute components ..................... -->
+
+<!-- Effectivity attributes ............................................... -->
+
+
+<!-- Arch: Computer or chip architecture to which element applies; no 
+	default -->
+
+<!ENTITY % arch.attrib
+	"arch		CDATA		#IMPLIED">
+
+<!-- Condition: General-purpose effectivity attribute -->
+
+<!ENTITY % condition.attrib
+	"condition	CDATA		#IMPLIED">
+
+<!-- Conformance: Standards conformance characteristics -->
+
+<!ENTITY % conformance.attrib
+	"conformance	NMTOKENS	#IMPLIED">
+
+
+<!-- OS: Operating system to which element applies; no default -->
+
+<!ENTITY % os.attrib
+	"os		CDATA		#IMPLIED">
+
+
+<!-- Revision: Editorial revision to which element belongs; no default -->
+
+<!ENTITY % revision.attrib
+	"revision	CDATA		#IMPLIED">
+
+<!-- Security: Security classification; no default -->
+
+<!ENTITY % security.attrib
+	"security	CDATA		#IMPLIED">
+
+<!-- UserLevel: Level of user experience to which element applies; no 
+	default -->
+
+<!ENTITY % userlevel.attrib
+	"userlevel	CDATA		#IMPLIED">
+
+
+<!-- Vendor: Computer vendor to which element applies; no default -->
+
+<!ENTITY % vendor.attrib
+	"vendor		CDATA		#IMPLIED">
+
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % effectivity.attrib
+	"%arch.attrib;
+        %condition.attrib;
+	%conformance.attrib;
+	%os.attrib;
+	%revision.attrib;
+        %security.attrib;
+	%userlevel.attrib;
+	%vendor.attrib;
+	%local.effectivity.attrib;"
+>
+
+<!-- Common attributes .................................................... -->
+
+
+<!-- Id: Unique identifier of element; no default -->
+
+<!ENTITY % id.attrib
+	"id		ID		#IMPLIED">
+
+
+<!-- Id: Unique identifier of element; a value must be supplied; no 
+	default -->
+
+<!ENTITY % idreq.attrib
+	"id		ID		#REQUIRED">
+
+
+<!-- Lang: Indicator of language in which element is written, for
+	translation, character set management, etc.; no default -->
+
+<!ENTITY % lang.attrib
+	"lang		CDATA		#IMPLIED">
+
+
+<!-- Remap: Previous role of element before conversion; no default -->
+
+<!ENTITY % remap.attrib
+	"remap		CDATA		#IMPLIED">
+
+
+<!-- Role: New role of element in local environment; no default -->
+
+<!ENTITY % role.attrib
+	"role		CDATA		#IMPLIED">
+
+
+<!-- XRefLabel: Alternate labeling string for XRef text generation;
+	default is usually title or other appropriate label text already
+	contained in element -->
+
+<!ENTITY % xreflabel.attrib
+	"xreflabel	CDATA		#IMPLIED">
+
+
+<!-- RevisionFlag: Revision status of element; default is that element
+	wasn't revised -->
+
+<!ENTITY % revisionflag.attrib
+	"revisionflag	(changed
+			|added
+			|deleted
+			|off)		#IMPLIED">
+
+<!ENTITY % local.common.attrib "">
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % common.attrib
+	"%id.attrib;
+	%lang.attrib;
+	%remap.attrib;
+	%xreflabel.attrib;
+	%revisionflag.attrib;
+	%effectivity.attrib;
+	%local.common.attrib;"
+>
+
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % idreq.common.attrib
+	"%idreq.attrib;
+	%lang.attrib;
+	%remap.attrib;
+	%xreflabel.attrib;
+	%revisionflag.attrib;
+	%effectivity.attrib;
+	%local.common.attrib;"
+>
+
+<!-- Semi-common attributes and other attribute entities .................. -->
+
+<!ENTITY % local.graphics.attrib "">
+
+<!-- EntityRef: Name of an external entity containing the content
+	of the graphic -->
+<!-- FileRef: Filename, qualified by a pathname if desired, 
+	designating the file containing the content of the graphic -->
+<!-- Format: Notation of the element content, if any -->
+<!-- SrcCredit: Information about the source of the Graphic -->
+<!-- Width: Same as CALS reprowid (desired width) -->
+<!-- Depth: Same as CALS reprodep (desired depth) -->
+<!-- Align: Same as CALS hplace with 'none' removed; #IMPLIED means 
+	application-specific -->
+<!-- Scale: Conflation of CALS hscale and vscale -->
+<!-- Scalefit: Same as CALS scalefit -->
+
+<!ENTITY % graphics.attrib
+	"
+	entityref	ENTITY		#IMPLIED
+	fileref 	CDATA		#IMPLIED
+	format		(%notation.class;) #IMPLIED
+	srccredit	CDATA		#IMPLIED
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+	%local.graphics.attrib;"
+>
+
+<!ENTITY % local.keyaction.attrib "">
+
+<!-- Action: Key combination type; default is unspecified if one 
+	child element, Simul if there is more than one; if value is 
+	Other, the OtherAction attribute must have a nonempty value -->
+<!-- OtherAction: User-defined key combination type -->
+
+<!ENTITY % keyaction.attrib
+	"
+	action		(click
+			|double-click
+			|press
+			|seq
+			|simul
+			|other)		#IMPLIED
+	otheraction	CDATA		#IMPLIED
+	%local.keyaction.attrib;"
+>
+
+
+<!-- Label: Identifying number or string; default is usually the
+	appropriate number or string autogenerated by a formatter -->
+
+<!ENTITY % label.attrib
+	"label		CDATA		#IMPLIED">
+
+
+<!-- Format: whether element is assumed to contain significant white
+	space -->
+
+<!ENTITY % linespecific.attrib
+	"format		NOTATION
+			(linespecific)	'linespecific'
+         linenumbering	(numbered|unnumbered) 	#IMPLIED">
+
+
+<!-- Linkend: link to related information; no default -->
+
+<!ENTITY % linkend.attrib
+	"linkend	IDREF		#IMPLIED">
+
+
+<!-- Linkend: required link to related information -->
+
+<!ENTITY % linkendreq.attrib
+	"linkend	IDREF		#REQUIRED">
+
+
+<!-- Linkends: link to one or more sets of related information; no 
+	default -->
+
+<!ENTITY % linkends.attrib
+	"linkends	IDREFS		#IMPLIED">
+
+
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+	"mark		CDATA		#IMPLIED
+	%local.mark.attrib;"
+>
+
+
+<!-- MoreInfo: whether element's content has an associated RefEntry -->
+
+<!ENTITY % moreinfo.attrib
+	"moreinfo	(refentry|none)	'none'">
+
+
+<!-- Pagenum: number of page on which element appears; no default -->
+
+<!ENTITY % pagenum.attrib
+	"pagenum	CDATA		#IMPLIED">
+
+<!ENTITY % local.status.attrib "">
+
+<!-- Status: Editorial or publication status of the element
+	it applies to, such as "in review" or "approved for distribution" -->
+
+<!ENTITY % status.attrib
+	"status		CDATA		#IMPLIED
+	%local.status.attrib;"
+>
+
+
+<!-- Width: width of the longest line in the element to which it
+	pertains, in number of characters -->
+
+<!ENTITY % width.attrib
+	"width		CDATA		#IMPLIED">
+
+<!-- ...................................................................... -->
+<!-- Title elements ....................................................... -->
+
+<!ENTITY % title.module "INCLUDE">
+<![%title.module;[
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+
+<!ENTITY % title.element "INCLUDE">
+<![%title.element;[
+<!ELEMENT title (%title.char.mix;)*>
+<!--end of title.element-->]]>
+
+<!ENTITY % title.attlist "INCLUDE">
+<![%title.attlist;[
+<!ATTLIST title
+		%pagenum.attrib;
+		%common.attrib;
+		%title.role.attrib;
+		%local.title.attrib;
+>
+<!--end of title.attlist-->]]>
+<!--end of title.module-->]]>
+
+<!ENTITY % titleabbrev.module "INCLUDE">
+<![%titleabbrev.module;[
+<!ENTITY % local.titleabbrev.attrib "">
+<!ENTITY % titleabbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % titleabbrev.element "INCLUDE">
+<![%titleabbrev.element;[
+<!ELEMENT titleabbrev (%title.char.mix;)*>
+<!--end of titleabbrev.element-->]]>
+
+<!ENTITY % titleabbrev.attlist "INCLUDE">
+<![%titleabbrev.attlist;[
+<!ATTLIST titleabbrev
+		%common.attrib;
+		%titleabbrev.role.attrib;
+		%local.titleabbrev.attrib;
+>
+<!--end of titleabbrev.attlist-->]]>
+<!--end of titleabbrev.module-->]]>
+
+<!ENTITY % subtitle.module "INCLUDE">
+<![%subtitle.module;[
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % subtitle.element "INCLUDE">
+<![%subtitle.element;[
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!--end of subtitle.element-->]]>
+
+<!ENTITY % subtitle.attlist "INCLUDE">
+<![%subtitle.attlist;[
+<!ATTLIST subtitle
+		%common.attrib;
+		%subtitle.role.attrib;
+		%local.subtitle.attrib;
+>
+<!--end of subtitle.attlist-->]]>
+<!--end of subtitle.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliographic entities and elements .................................. -->
+
+<!-- The bibliographic elements are typically used in the document
+     hierarchy. They do not appear in content models of information
+     pool elements.  See also the document information elements,
+     below. -->
+
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+		"honorific|firstname|surname|lineage|othername|affiliation
+		|authorblurb|contrib %local.person.ident.mix;">
+
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+		"abbrev|abstract|address|artpagenums|author
+		|authorgroup|authorinitials|bibliomisc|biblioset
+		|collab|confgroup|contractnum|contractsponsor
+		|copyright|corpauthor|corpname|date|edition
+		|editor|invpartnumber|isbn|issn|issuenum|orgname
+		|othercredit|pagenums|printhistory|productname
+		|productnumber|pubdate|publisher|publishername
+		|pubsnumber|releaseinfo|revhistory|seriesvolnums
+		|subtitle|title|titleabbrev|volumenum|citetitle
+		|%person.ident.mix;
+		|%ndxterm.class;
+		%local.bibliocomponent.mix;">
+
+<!ENTITY % biblioentry.module "INCLUDE">
+<![%biblioentry.module;[
+<!ENTITY % local.biblioentry.attrib "">
+<!ENTITY % biblioentry.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioentry.element "INCLUDE">
+<![%biblioentry.element;[
+<!ELEMENT biblioentry ((articleinfo | (%bibliocomponent.mix;))+)>
+<!--end of biblioentry.element-->]]>
+
+<!ENTITY % biblioentry.attlist "INCLUDE">
+<![%biblioentry.attlist;[
+<!ATTLIST biblioentry
+		%common.attrib;
+		%biblioentry.role.attrib;
+		%local.biblioentry.attrib;
+>
+<!--end of biblioentry.attlist-->]]>
+<!--end of biblioentry.module-->]]>
+
+<!ENTITY % bibliomixed.module "INCLUDE">
+<![%bibliomixed.module;[
+<!ENTITY % local.bibliomixed.attrib "">
+<!ENTITY % bibliomixed.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomixed.element "INCLUDE">
+<![%bibliomixed.element;[
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomixed.element-->]]>
+
+<!ENTITY % bibliomixed.attlist "INCLUDE">
+<![%bibliomixed.attlist;[
+<!ATTLIST bibliomixed
+		%common.attrib;
+		%bibliomixed.role.attrib;
+		%local.bibliomixed.attrib;
+>
+<!--end of bibliomixed.attlist-->]]>
+<!--end of bibliomixed.module-->]]>
+
+<!ENTITY % articleinfo.module "INCLUDE">
+<![%articleinfo.module;[
+<!ENTITY % local.articleinfo.attrib "">
+<!ENTITY % articleinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % articleinfo.element "INCLUDE">
+<![%articleinfo.element;[
+<!ELEMENT articleinfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of articleinfo.element-->]]>
+
+<!ENTITY % articleinfo.attlist "INCLUDE">
+<![%articleinfo.attlist;[
+<!ATTLIST articleinfo
+		%common.attrib;
+		%articleinfo.role.attrib;
+		%local.articleinfo.attrib;
+>
+<!--end of articleinfo.attlist-->]]>
+<!--end of articleinfo.module-->]]>
+
+<!ENTITY % biblioset.module "INCLUDE">
+<![%biblioset.module;[
+<!ENTITY % local.biblioset.attrib "">
+<!ENTITY % biblioset.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioset.element "INCLUDE">
+<![%biblioset.element;[
+<!ELEMENT biblioset ((%bibliocomponent.mix;)+)>
+<!--end of biblioset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioSet -->
+
+
+<!ENTITY % biblioset.attlist "INCLUDE">
+<![%biblioset.attlist;[
+<!ATTLIST biblioset
+		relation	CDATA		#IMPLIED
+		%common.attrib;
+		%biblioset.role.attrib;
+		%local.biblioset.attrib;
+>
+<!--end of biblioset.attlist-->]]>
+<!--end of biblioset.module-->]]>
+
+<!ENTITY % bibliomset.module "INCLUDE">
+<![%bibliomset.module;[
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+
+<!ENTITY % bibliomset.element "INCLUDE">
+<![%bibliomset.element;[
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioMSet -->
+
+
+<!ENTITY % bibliomset.attlist "INCLUDE">
+<![%bibliomset.attlist;[
+<!ATTLIST bibliomset
+		relation	CDATA		#IMPLIED
+		%bibliomset.role.attrib;
+		%common.attrib;
+		%local.bibliomset.attrib;
+>
+<!--end of bibliomset.attlist-->]]>
+<!--end of bibliomset.module-->]]>
+
+<!ENTITY % bibliomisc.module "INCLUDE">
+<![%bibliomisc.module;[
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomisc.element "INCLUDE">
+<![%bibliomisc.element;[
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!--end of bibliomisc.element-->]]>
+
+<!ENTITY % bibliomisc.attlist "INCLUDE">
+<![%bibliomisc.attlist;[
+<!ATTLIST bibliomisc
+		%common.attrib;
+		%bibliomisc.role.attrib;
+		%local.bibliomisc.attrib;
+>
+<!--end of bibliomisc.attlist-->]]>
+<!--end of bibliomisc.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Subject, Keyword, and ITermSet elements .............................. -->
+
+<!ENTITY % subjectset.content.module "INCLUDE">
+<![%subjectset.content.module;[
+<!ENTITY % subjectset.module "INCLUDE">
+<![%subjectset.module;[
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectset.element "INCLUDE">
+<![%subjectset.element;[
+<!ELEMENT subjectset (subject+)>
+<!--end of subjectset.element-->]]>
+
+<!-- Scheme: Controlled vocabulary employed in SubjectTerms -->
+
+
+<!ENTITY % subjectset.attlist "INCLUDE">
+<![%subjectset.attlist;[
+<!ATTLIST subjectset
+		scheme		NMTOKEN		#IMPLIED
+		%common.attrib;
+		%subjectset.role.attrib;
+		%local.subjectset.attrib;
+>
+<!--end of subjectset.attlist-->]]>
+<!--end of subjectset.module-->]]>
+
+<!ENTITY % subject.module "INCLUDE">
+<![%subject.module;[
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+
+<!ENTITY % subject.element "INCLUDE">
+<![%subject.element;[
+<!ELEMENT subject (subjectterm+)>
+<!--end of subject.element-->]]>
+
+<!-- Weight: Ranking of this group of SubjectTerms relative 
+		to others, 0 is low, no highest value specified -->
+
+
+<!ENTITY % subject.attlist "INCLUDE">
+<![%subject.attlist;[
+<!ATTLIST subject
+		weight		CDATA		#IMPLIED
+		%common.attrib;
+		%subject.role.attrib;
+		%local.subject.attrib;
+>
+<!--end of subject.attlist-->]]>
+<!--end of subject.module-->]]>
+
+<!ENTITY % subjectterm.module "INCLUDE">
+<![%subjectterm.module;[
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectterm.element "INCLUDE">
+<![%subjectterm.element;[
+<!ELEMENT subjectterm (#PCDATA)>
+<!--end of subjectterm.element-->]]>
+
+<!ENTITY % subjectterm.attlist "INCLUDE">
+<![%subjectterm.attlist;[
+<!ATTLIST subjectterm
+		%common.attrib;
+		%subjectterm.role.attrib;
+		%local.subjectterm.attrib;
+>
+<!--end of subjectterm.attlist-->]]>
+<!--end of subjectterm.module-->]]>
+<!--end of subjectset.content.module-->]]>
+
+<!ENTITY % keywordset.content.module "INCLUDE">
+<![%keywordset.content.module;[
+<!ENTITY % keywordset.module "INCLUDE">
+<![%keywordset.module;[
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+
+<!ENTITY % keywordset.element "INCLUDE">
+<![%keywordset.element;[
+<!ELEMENT keywordset (keyword+)>
+<!--end of keywordset.element-->]]>
+
+<!ENTITY % keywordset.attlist "INCLUDE">
+<![%keywordset.attlist;[
+<!ATTLIST keywordset
+		%common.attrib;
+		%keywordset.role.attrib;
+		%local.keywordset.attrib;
+>
+<!--end of keywordset.attlist-->]]>
+<!--end of keywordset.module-->]]>
+
+<!ENTITY % keyword.module "INCLUDE">
+<![%keyword.module;[
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+
+<!ENTITY % keyword.element "INCLUDE">
+<![%keyword.element;[
+<!ELEMENT keyword (#PCDATA)>
+<!--end of keyword.element-->]]>
+
+<!ENTITY % keyword.attlist "INCLUDE">
+<![%keyword.attlist;[
+<!ATTLIST keyword
+		%common.attrib;
+		%keyword.role.attrib;
+		%local.keyword.attrib;
+>
+<!--end of keyword.attlist-->]]>
+<!--end of keyword.module-->]]>
+<!--end of keywordset.content.module-->]]>
+
+<!ENTITY % itermset.module "INCLUDE">
+<![%itermset.module;[
+<!ENTITY % local.itermset.attrib "">
+<!ENTITY % itermset.role.attrib "%role.attrib;">
+
+<!ENTITY % itermset.element "INCLUDE">
+<![%itermset.element;[
+<!ELEMENT itermset (indexterm+)>
+<!--end of itermset.element-->]]>
+
+<!ENTITY % itermset.attlist "INCLUDE">
+<![%itermset.attlist;[
+<!ATTLIST itermset
+		%common.attrib;
+		%itermset.role.attrib;
+		%local.itermset.attrib;
+>
+<!--end of itermset.attlist-->]]>
+<!--end of itermset.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Compound (section-ish) elements ...................................... -->
+
+<!-- Message set ...................... -->
+
+<!ENTITY % msgset.content.module "INCLUDE">
+<![%msgset.content.module;[
+<!ENTITY % msgset.module "INCLUDE">
+<![%msgset.module;[
+<!ENTITY % local.msgset.attrib "">
+<!ENTITY % msgset.role.attrib "%role.attrib;">
+
+<!ENTITY % msgset.element "INCLUDE">
+<![%msgset.element;[
+<!ELEMENT msgset ((%formalobject.title.content;)?, (msgentry+|simplemsgentry+))>
+<!--end of msgset.element-->]]>
+
+<!ENTITY % msgset.attlist "INCLUDE">
+<![%msgset.attlist;[
+<!ATTLIST msgset
+		%common.attrib;
+		%msgset.role.attrib;
+		%local.msgset.attrib;
+>
+<!--end of msgset.attlist-->]]>
+<!--end of msgset.module-->]]>
+
+<!ENTITY % msgentry.module "INCLUDE">
+<![%msgentry.module;[
+<!ENTITY % local.msgentry.attrib "">
+<!ENTITY % msgentry.role.attrib "%role.attrib;">
+
+<!ENTITY % msgentry.element "INCLUDE">
+<![%msgentry.element;[
+<!ELEMENT msgentry (msg+, msginfo?, msgexplan*)>
+<!--end of msgentry.element-->]]>
+
+<!ENTITY % msgentry.attlist "INCLUDE">
+<![%msgentry.attlist;[
+<!ATTLIST msgentry
+		%common.attrib;
+		%msgentry.role.attrib;
+		%local.msgentry.attrib;
+>
+<!--end of msgentry.attlist-->]]>
+<!--end of msgentry.module-->]]>
+
+<!ENTITY % simplemsgentry.module "INCLUDE">
+<![ %simplemsgentry.module; [
+<!ENTITY % local.simplemsgentry.attrib "">
+<!ENTITY % simplemsgentry.role.attrib "%role.attrib;">
+
+<!ENTITY % simplemsgentry.element "INCLUDE">
+<![ %simplemsgentry.element; [
+<!ELEMENT simplemsgentry (msgtext, msgexplan)>
+<!--end of simplemsgentry.element-->]]>
+
+<!ENTITY % simplemsgentry.attlist "INCLUDE">
+<![ %simplemsgentry.attlist; [
+<!ATTLIST simplemsgentry
+		%common.attrib;
+		%simplemsgentry.role.attrib;
+		%local.simplemsgentry.attrib;
+		audience	CDATA	#IMPLIED
+		level		CDATA	#IMPLIED
+		origin		CDATA	#IMPLIED
+>
+<!--end of simplemsgentry.attlist-->]]>
+<!--end of simplemsgentry.module-->]]>
+
+<!ENTITY % msg.module "INCLUDE">
+<![%msg.module;[
+<!ENTITY % local.msg.attrib "">
+<!ENTITY % msg.role.attrib "%role.attrib;">
+
+<!ENTITY % msg.element "INCLUDE">
+<![%msg.element;[
+<!ELEMENT msg (title?, msgmain, (msgsub | msgrel)*)>
+<!--end of msg.element-->]]>
+
+<!ENTITY % msg.attlist "INCLUDE">
+<![%msg.attlist;[
+<!ATTLIST msg
+		%common.attrib;
+		%msg.role.attrib;
+		%local.msg.attrib;
+>
+<!--end of msg.attlist-->]]>
+<!--end of msg.module-->]]>
+
+<!ENTITY % msgmain.module "INCLUDE">
+<![%msgmain.module;[
+<!ENTITY % local.msgmain.attrib "">
+<!ENTITY % msgmain.role.attrib "%role.attrib;">
+
+<!ENTITY % msgmain.element "INCLUDE">
+<![%msgmain.element;[
+<!ELEMENT msgmain (title?, msgtext)>
+<!--end of msgmain.element-->]]>
+
+<!ENTITY % msgmain.attlist "INCLUDE">
+<![%msgmain.attlist;[
+<!ATTLIST msgmain
+		%common.attrib;
+		%msgmain.role.attrib;
+		%local.msgmain.attrib;
+>
+<!--end of msgmain.attlist-->]]>
+<!--end of msgmain.module-->]]>
+
+<!ENTITY % msgsub.module "INCLUDE">
+<![%msgsub.module;[
+<!ENTITY % local.msgsub.attrib "">
+<!ENTITY % msgsub.role.attrib "%role.attrib;">
+
+<!ENTITY % msgsub.element "INCLUDE">
+<![%msgsub.element;[
+<!ELEMENT msgsub (title?, msgtext)>
+<!--end of msgsub.element-->]]>
+
+<!ENTITY % msgsub.attlist "INCLUDE">
+<![%msgsub.attlist;[
+<!ATTLIST msgsub
+		%common.attrib;
+		%msgsub.role.attrib;
+		%local.msgsub.attrib;
+>
+<!--end of msgsub.attlist-->]]>
+<!--end of msgsub.module-->]]>
+
+<!ENTITY % msgrel.module "INCLUDE">
+<![%msgrel.module;[
+<!ENTITY % local.msgrel.attrib "">
+<!ENTITY % msgrel.role.attrib "%role.attrib;">
+
+<!ENTITY % msgrel.element "INCLUDE">
+<![%msgrel.element;[
+<!ELEMENT msgrel (title?, msgtext)>
+<!--end of msgrel.element-->]]>
+
+<!ENTITY % msgrel.attlist "INCLUDE">
+<![%msgrel.attlist;[
+<!ATTLIST msgrel
+		%common.attrib;
+		%msgrel.role.attrib;
+		%local.msgrel.attrib;
+>
+<!--end of msgrel.attlist-->]]>
+<!--end of msgrel.module-->]]>
+
+<!-- MsgText (defined in the Inlines section, below)-->
+
+<!ENTITY % msginfo.module "INCLUDE">
+<![%msginfo.module;[
+<!ENTITY % local.msginfo.attrib "">
+<!ENTITY % msginfo.role.attrib "%role.attrib;">
+
+<!ENTITY % msginfo.element "INCLUDE">
+<![%msginfo.element;[
+<!ELEMENT msginfo ((msglevel | msgorig | msgaud)*)>
+<!--end of msginfo.element-->]]>
+
+<!ENTITY % msginfo.attlist "INCLUDE">
+<![%msginfo.attlist;[
+<!ATTLIST msginfo
+		%common.attrib;
+		%msginfo.role.attrib;
+		%local.msginfo.attrib;
+>
+<!--end of msginfo.attlist-->]]>
+<!--end of msginfo.module-->]]>
+
+<!ENTITY % msglevel.module "INCLUDE">
+<![%msglevel.module;[
+<!ENTITY % local.msglevel.attrib "">
+<!ENTITY % msglevel.role.attrib "%role.attrib;">
+
+<!ENTITY % msglevel.element "INCLUDE">
+<![%msglevel.element;[
+<!ELEMENT msglevel (%smallcptr.char.mix;)*>
+<!--end of msglevel.element-->]]>
+
+<!ENTITY % msglevel.attlist "INCLUDE">
+<![%msglevel.attlist;[
+<!ATTLIST msglevel
+		%common.attrib;
+		%msglevel.role.attrib;
+		%local.msglevel.attrib;
+>
+<!--end of msglevel.attlist-->]]>
+<!--end of msglevel.module-->]]>
+
+<!ENTITY % msgorig.module "INCLUDE">
+<![%msgorig.module;[
+<!ENTITY % local.msgorig.attrib "">
+<!ENTITY % msgorig.role.attrib "%role.attrib;">
+
+<!ENTITY % msgorig.element "INCLUDE">
+<![%msgorig.element;[
+<!ELEMENT msgorig (%smallcptr.char.mix;)*>
+<!--end of msgorig.element-->]]>
+
+<!ENTITY % msgorig.attlist "INCLUDE">
+<![%msgorig.attlist;[
+<!ATTLIST msgorig
+		%common.attrib;
+		%msgorig.role.attrib;
+		%local.msgorig.attrib;
+>
+<!--end of msgorig.attlist-->]]>
+<!--end of msgorig.module-->]]>
+
+<!ENTITY % msgaud.module "INCLUDE">
+<![%msgaud.module;[
+<!ENTITY % local.msgaud.attrib "">
+<!ENTITY % msgaud.role.attrib "%role.attrib;">
+
+<!ENTITY % msgaud.element "INCLUDE">
+<![%msgaud.element;[
+<!ELEMENT msgaud (%para.char.mix;)*>
+<!--end of msgaud.element-->]]>
+
+<!ENTITY % msgaud.attlist "INCLUDE">
+<![%msgaud.attlist;[
+<!ATTLIST msgaud
+		%common.attrib;
+		%msgaud.role.attrib;
+		%local.msgaud.attrib;
+>
+<!--end of msgaud.attlist-->]]>
+<!--end of msgaud.module-->]]>
+
+<!ENTITY % msgexplan.module "INCLUDE">
+<![%msgexplan.module;[
+<!ENTITY % local.msgexplan.attrib "">
+<!ENTITY % msgexplan.role.attrib "%role.attrib;">
+
+<!ENTITY % msgexplan.element "INCLUDE">
+<![%msgexplan.element;[
+<!ELEMENT msgexplan (title?, (%component.mix;)+)>
+<!--end of msgexplan.element-->]]>
+
+<!ENTITY % msgexplan.attlist "INCLUDE">
+<![%msgexplan.attlist;[
+<!ATTLIST msgexplan
+		%common.attrib;
+		%msgexplan.role.attrib;
+		%local.msgexplan.attrib;
+>
+<!--end of msgexplan.attlist-->]]>
+<!--end of msgexplan.module-->]]>
+<!--end of msgset.content.module-->]]>
+
+<!-- QandASet ........................ -->
+<!ENTITY % qandset.content.module "INCLUDE">
+<![ %qandset.content.module; [
+<!ENTITY % qandset.module "INCLUDE">
+<![ %qandset.module; [
+<!ENTITY % local.qandset.attrib "">
+<!ENTITY % qandset.role.attrib "%role.attrib;">
+
+<!ENTITY % qandset.element "INCLUDE">
+<![ %qandset.element; [
+<!ELEMENT qandaset ((%formalobject.title.content;)?,
+			(%qandaset.mix;)*,
+                        (qandadiv+|qandaentry+))>
+<!--end of qandset.element-->]]>
+
+<!ENTITY % qandset.attlist "INCLUDE">
+<![ %qandset.attlist; [
+<!ATTLIST qandaset
+		defaultlabel	(qanda|number|none)       #IMPLIED
+		%common.attrib;
+		%qandset.role.attrib;
+		%local.qandset.attrib;>
+<!--end of qandset.attlist-->]]>
+<!--end of qandset.module-->]]>
+
+<!ENTITY % qandadiv.module "INCLUDE">
+<![ %qandadiv.module; [
+<!ENTITY % local.qandadiv.attrib "">
+<!ENTITY % qandadiv.role.attrib "%role.attrib;">
+
+<!ENTITY % qandadiv.element "INCLUDE">
+<![ %qandadiv.element; [
+<!ELEMENT qandadiv ((%formalobject.title.content;)?, 
+			(%qandaset.mix;)*,
+			(qandadiv+|qandaentry+))>
+<!--end of qandadiv.element-->]]>
+
+<!ENTITY % qandadiv.attlist "INCLUDE">
+<![ %qandadiv.attlist; [
+<!ATTLIST qandadiv
+		%common.attrib;
+		%qandadiv.role.attrib;
+		%local.qandadiv.attrib;>
+<!--end of qandadiv.attlist-->]]>
+<!--end of qandadiv.module-->]]>
+
+<!ENTITY % qandaentry.module "INCLUDE">
+<![ %qandaentry.module; [
+<!ENTITY % local.qandaentry.attrib "">
+<!ENTITY % qandaentry.role.attrib "%role.attrib;">
+
+<!ENTITY % qandaentry.element "INCLUDE">
+<![ %qandaentry.element; [
+<!ELEMENT qandaentry (revhistory?, question, answer*)>
+<!--end of qandaentry.element-->]]>
+
+<!ENTITY % qandaentry.attlist "INCLUDE">
+<![ %qandaentry.attlist; [
+<!ATTLIST qandaentry
+		%common.attrib;
+		%qandaentry.role.attrib;
+		%local.qandaentry.attrib;>
+<!--end of qandaentry.attlist-->]]>
+<!--end of qandaentry.module-->]]>
+
+<!ENTITY % question.module "INCLUDE">
+<![ %question.module; [
+<!ENTITY % local.question.attrib "">
+<!ENTITY % question.role.attrib "%role.attrib;">
+
+<!ENTITY % question.element "INCLUDE">
+<![ %question.element; [
+<!ELEMENT question (label?, (%qandaset.mix;)+)>
+<!--end of question.element-->]]>
+
+<!ENTITY % question.attlist "INCLUDE">
+<![ %question.attlist; [
+<!ATTLIST question
+		%common.attrib;
+		%question.role.attrib;
+		%local.question.attrib;
+>
+<!--end of question.attlist-->]]>
+<!--end of question.module-->]]>
+
+<!ENTITY % answer.module "INCLUDE">
+<![ %answer.module; [
+<!ENTITY % local.answer.attrib "">
+<!ENTITY % answer.role.attrib "%role.attrib;">
+
+<!ENTITY % answer.element "INCLUDE">
+<![ %answer.element; [
+<!ELEMENT answer (label?, (%qandaset.mix;)*, qandaentry*)>
+<!--end of answer.element-->]]>
+
+<!ENTITY % answer.attlist "INCLUDE">
+<![ %answer.attlist; [
+<!ATTLIST answer
+		%common.attrib;
+		%answer.role.attrib;
+		%local.answer.attrib;
+>
+<!--end of answer.attlist-->]]>
+<!--end of answer.module-->]]>
+
+<!ENTITY % label.module "INCLUDE">
+<![ %label.module; [
+<!ENTITY % local.label.attrib "">
+<!ENTITY % label.role.attrib "%role.attrib;">
+
+<!ENTITY % label.element "INCLUDE">
+<![ %label.element; [
+<!ELEMENT label (%word.char.mix;)*>
+<!--end of label.element-->]]>
+
+<!ENTITY % label.attlist "INCLUDE">
+<![ %label.attlist; [
+<!ATTLIST label
+		%common.attrib;
+		%label.role.attrib;
+		%local.label.attrib;
+>
+<!--end of label.attlist-->]]>
+<!--end of label.module-->]]>
+<!--end of qandset.content.module-->]]>
+
+<!-- Procedure ........................ -->
+
+<!ENTITY % procedure.content.module "INCLUDE">
+<![%procedure.content.module;[
+<!ENTITY % procedure.module "INCLUDE">
+<![%procedure.module;[
+<!ENTITY % local.procedure.attrib "">
+<!ENTITY % procedure.role.attrib "%role.attrib;">
+
+<!ENTITY % procedure.element "INCLUDE">
+<![%procedure.element;[
+<!ELEMENT procedure ((%formalobject.title.content;)?,
+	(%component.mix;)*, step+)>
+<!--end of procedure.element-->]]>
+
+<!ENTITY % procedure.attlist "INCLUDE">
+<![%procedure.attlist;[
+<!ATTLIST procedure
+		%common.attrib;
+		%procedure.role.attrib;
+		%local.procedure.attrib;
+>
+<!--end of procedure.attlist-->]]>
+<!--end of procedure.module-->]]>
+
+<!ENTITY % step.module "INCLUDE">
+<![%step.module;[
+<!ENTITY % local.step.attrib "">
+<!ENTITY % step.role.attrib "%role.attrib;">
+
+<!ENTITY % step.element "INCLUDE">
+<![%step.element;[
+<!ELEMENT step (title?, (((%component.mix;)+, (substeps,
+		(%component.mix;)*)?) | (substeps, (%component.mix;)*)))>
+<!--end of step.element-->]]>
+
+<!-- Performance: Whether the Step must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % step.attlist "INCLUDE">
+<![%step.attlist;[
+<!ATTLIST step
+		performance	(optional
+				|required)	"required"
+		%common.attrib;
+		%step.role.attrib;
+		%local.step.attrib;
+>
+<!--end of step.attlist-->]]>
+<!--end of step.module-->]]>
+
+<!ENTITY % substeps.module "INCLUDE">
+<![%substeps.module;[
+<!ENTITY % local.substeps.attrib "">
+<!ENTITY % substeps.role.attrib "%role.attrib;">
+
+<!ENTITY % substeps.element "INCLUDE">
+<![%substeps.element;[
+<!ELEMENT substeps (step+)>
+<!--end of substeps.element-->]]>
+
+<!-- Performance: whether entire set of substeps must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % substeps.attlist "INCLUDE">
+<![%substeps.attlist;[
+<!ATTLIST substeps
+		performance	(optional
+				|required)	"required"
+		%common.attrib;
+		%substeps.role.attrib;
+		%local.substeps.attrib;
+>
+<!--end of substeps.attlist-->]]>
+<!--end of substeps.module-->]]>
+<!--end of procedure.content.module-->]]>
+
+<!-- Sidebar .......................... -->
+
+<!ENTITY % sidebar.content.model "INCLUDE">
+<![ %sidebar.content.model; [
+
+<!ENTITY % sidebarinfo.module "INCLUDE">
+<![ %sidebarinfo.module; [
+<!ENTITY % local.sidebarinfo.attrib "">
+<!ENTITY % sidebarinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % sidebarinfo.element "INCLUDE">
+<![ %sidebarinfo.element; [
+<!ELEMENT sidebarinfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sidebarinfo.element-->]]>
+
+<!ENTITY % sidebarinfo.attlist "INCLUDE">
+<![ %sidebarinfo.attlist; [
+<!ATTLIST sidebarinfo
+		%common.attrib;
+		%sidebarinfo.role.attrib;
+		%local.sidebarinfo.attrib;
+>
+<!--end of sidebarinfo.attlist-->]]>
+<!--end of sidebarinfo.module-->]]>
+
+<!ENTITY % sidebar.module "INCLUDE">
+<![%sidebar.module;[
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+
+<!ENTITY % sidebar.element "INCLUDE">
+<![%sidebar.element;[
+<!ELEMENT sidebar (sidebarinfo?, 
+                   (%formalobject.title.content;)?,
+                   (%sidebar.mix;)+)>
+<!--end of sidebar.element-->]]>
+
+<!ENTITY % sidebar.attlist "INCLUDE">
+<![%sidebar.attlist;[
+<!ATTLIST sidebar
+		%common.attrib;
+		%sidebar.role.attrib;
+		%local.sidebar.attrib;
+>
+<!--end of sidebar.attlist-->]]>
+<!--end of sidebar.module-->]]>
+<!--end of sidebar.content.model-->]]>
+
+<!-- ...................................................................... -->
+<!-- Paragraph-related elements ........................................... -->
+
+<!ENTITY % abstract.module "INCLUDE">
+<![%abstract.module;[
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+
+<!ENTITY % abstract.element "INCLUDE">
+<![%abstract.element;[
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!--end of abstract.element-->]]>
+
+<!ENTITY % abstract.attlist "INCLUDE">
+<![%abstract.attlist;[
+<!ATTLIST abstract
+		%common.attrib;
+		%abstract.role.attrib;
+		%local.abstract.attrib;
+>
+<!--end of abstract.attlist-->]]>
+<!--end of abstract.module-->]]>
+
+<!ENTITY % authorblurb.module "INCLUDE">
+<![%authorblurb.module;[
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+
+<!ENTITY % authorblurb.element "INCLUDE">
+<![%authorblurb.element;[
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!--end of authorblurb.element-->]]>
+
+<!ENTITY % authorblurb.attlist "INCLUDE">
+<![%authorblurb.attlist;[
+<!ATTLIST authorblurb
+		%common.attrib;
+		%authorblurb.role.attrib;
+		%local.authorblurb.attrib;
+>
+<!--end of authorblurb.attlist-->]]>
+<!--end of authorblurb.module-->]]>
+
+<!ENTITY % blockquote.module "INCLUDE">
+<![%blockquote.module;[
+
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+
+<!ENTITY % blockquote.element "INCLUDE">
+<![%blockquote.element;[
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!--end of blockquote.element-->]]>
+
+<!ENTITY % blockquote.attlist "INCLUDE">
+<![%blockquote.attlist;[
+<!ATTLIST blockquote
+		%common.attrib;
+		%blockquote.role.attrib;
+		%local.blockquote.attrib;
+>
+<!--end of blockquote.attlist-->]]>
+<!--end of blockquote.module-->]]>
+
+<!ENTITY % attribution.module "INCLUDE">
+<![%attribution.module;[
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+
+<!ENTITY % attribution.element "INCLUDE">
+<![%attribution.element;[
+<!ELEMENT attribution (%para.char.mix;)*>
+<!--end of attribution.element-->]]>
+
+<!ENTITY % attribution.attlist "INCLUDE">
+<![%attribution.attlist;[
+<!ATTLIST attribution
+		%common.attrib;
+		%attribution.role.attrib;
+		%local.attribution.attrib;
+>
+<!--end of attribution.attlist-->]]>
+<!--end of attribution.module-->]]>
+
+<!ENTITY % bridgehead.module "INCLUDE">
+<![%bridgehead.module;[
+<!ENTITY % local.bridgehead.attrib "">
+<!ENTITY % bridgehead.role.attrib "%role.attrib;">
+
+<!ENTITY % bridgehead.element "INCLUDE">
+<![%bridgehead.element;[
+<!ELEMENT bridgehead (%title.char.mix;)*>
+<!--end of bridgehead.element-->]]>
+
+<!-- Renderas: Indicates the format in which the BridgeHead
+		should appear -->
+
+
+<!ENTITY % bridgehead.attlist "INCLUDE">
+<![%bridgehead.attlist;[
+<!ATTLIST bridgehead
+		renderas	(other
+				|sect1
+				|sect2
+				|sect3
+				|sect4
+				|sect5)		#IMPLIED
+		%common.attrib;
+		%bridgehead.role.attrib;
+		%local.bridgehead.attrib;
+>
+<!--end of bridgehead.attlist-->]]>
+<!--end of bridgehead.module-->]]>
+
+<!ENTITY % remark.module "INCLUDE">
+<![%remark.module;[
+<!ENTITY % local.remark.attrib "">
+<!ENTITY % remark.role.attrib "%role.attrib;">
+
+<!ENTITY % remark.element "INCLUDE">
+<![%remark.element;[
+<!ELEMENT remark (%para.char.mix;)*>
+<!--end of remark.element-->]]>
+
+<!ENTITY % remark.attlist "INCLUDE">
+<![%remark.attlist;[
+<!ATTLIST remark
+		%common.attrib;
+		%remark.role.attrib;
+		%local.remark.attrib;
+>
+<!--end of remark.attlist-->]]>
+<!--end of remark.module-->]]>
+
+<!ENTITY % epigraph.module "INCLUDE">
+<![%epigraph.module;[
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+
+<!ENTITY % epigraph.element "INCLUDE">
+<![%epigraph.element;[
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!--end of epigraph.element-->]]>
+
+<!ENTITY % epigraph.attlist "INCLUDE">
+<![%epigraph.attlist;[
+<!ATTLIST epigraph
+		%common.attrib;
+		%epigraph.role.attrib;
+		%local.epigraph.attrib;
+>
+<!--end of epigraph.attlist-->]]>
+<!-- Attribution (defined above)-->
+<!--end of epigraph.module-->]]>
+
+<!ENTITY % footnote.module "INCLUDE">
+<![%footnote.module;[
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+
+<!ENTITY % footnote.element "INCLUDE">
+<![%footnote.element;[
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!--end of footnote.element-->]]>
+
+<!ENTITY % footnote.attlist "INCLUDE">
+<![%footnote.attlist;[
+<!ATTLIST footnote
+		%label.attrib;
+		%common.attrib;
+		%footnote.role.attrib;
+		%local.footnote.attrib;
+>
+<!--end of footnote.attlist-->]]>
+<!--end of footnote.module-->]]>
+
+<!ENTITY % highlights.module "INCLUDE">
+<![%highlights.module;[
+<!ENTITY % local.highlights.attrib "">
+<!ENTITY % highlights.role.attrib "%role.attrib;">
+
+<!ENTITY % highlights.element "INCLUDE">
+<![%highlights.element;[
+<!ELEMENT highlights ((%highlights.mix;)+)>
+<!--end of highlights.element-->]]>
+
+<!ENTITY % highlights.attlist "INCLUDE">
+<![%highlights.attlist;[
+<!ATTLIST highlights
+		%common.attrib;
+		%highlights.role.attrib;
+		%local.highlights.attrib;
+>
+<!--end of highlights.attlist-->]]>
+<!--end of highlights.module-->]]>
+
+<!ENTITY % formalpara.module "INCLUDE">
+<![%formalpara.module;[
+<!ENTITY % local.formalpara.attrib "">
+<!ENTITY % formalpara.role.attrib "%role.attrib;">
+
+<!ENTITY % formalpara.element "INCLUDE">
+<![%formalpara.element;[
+<!ELEMENT formalpara (title, (%ndxterm.class;)*, para)>
+<!--end of formalpara.element-->]]>
+
+<!ENTITY % formalpara.attlist "INCLUDE">
+<![%formalpara.attlist;[
+<!ATTLIST formalpara
+		%common.attrib;
+		%formalpara.role.attrib;
+		%local.formalpara.attrib;
+>
+<!--end of formalpara.attlist-->]]>
+<!--end of formalpara.module-->]]>
+
+<!ENTITY % para.module "INCLUDE">
+<![%para.module;[
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+
+<!ENTITY % para.element "INCLUDE">
+<![%para.element;[
+<!ELEMENT para (%para.char.mix; | %para.mix;)*>
+<!--end of para.element-->]]>
+
+<!ENTITY % para.attlist "INCLUDE">
+<![%para.attlist;[
+<!ATTLIST para
+		%common.attrib;
+		%para.role.attrib;
+		%local.para.attrib;
+>
+<!--end of para.attlist-->]]>
+<!--end of para.module-->]]>
+
+<!ENTITY % simpara.module "INCLUDE">
+<![%simpara.module;[
+<!ENTITY % local.simpara.attrib "">
+<!ENTITY % simpara.role.attrib "%role.attrib;">
+
+<!ENTITY % simpara.element "INCLUDE">
+<![%simpara.element;[
+<!ELEMENT simpara (%para.char.mix;)*>
+<!--end of simpara.element-->]]>
+
+<!ENTITY % simpara.attlist "INCLUDE">
+<![%simpara.attlist;[
+<!ATTLIST simpara
+		%common.attrib;
+		%simpara.role.attrib;
+		%local.simpara.attrib;
+>
+<!--end of simpara.attlist-->]]>
+<!--end of simpara.module-->]]>
+
+<!ENTITY % admon.module "INCLUDE">
+<![%admon.module;[
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+
+
+<!ENTITY % caution.element "INCLUDE">
+<![%caution.element;[
+<!ELEMENT caution (title?, (%admon.mix;)+)>
+<!--end of caution.element-->]]>
+
+<!ENTITY % caution.attlist "INCLUDE">
+<![%caution.attlist;[
+<!ATTLIST caution
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of caution.attlist-->]]>
+
+
+<!ENTITY % important.element "INCLUDE">
+<![%important.element;[
+<!ELEMENT important (title?, (%admon.mix;)+)>
+<!--end of important.element-->]]>
+
+<!ENTITY % important.attlist "INCLUDE">
+<![%important.attlist;[
+<!ATTLIST important
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of important.attlist-->]]>
+
+
+<!ENTITY % note.element "INCLUDE">
+<![%note.element;[
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!--end of note.element-->]]>
+
+<!ENTITY % note.attlist "INCLUDE">
+<![%note.attlist;[
+<!ATTLIST note
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of note.attlist-->]]>
+
+
+<!ENTITY % tip.element "INCLUDE">
+<![%tip.element;[
+<!ELEMENT tip (title?, (%admon.mix;)+)>
+<!--end of tip.element-->]]>
+
+<!ENTITY % tip.attlist "INCLUDE">
+<![%tip.attlist;[
+<!ATTLIST tip
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of tip.attlist-->]]>
+
+
+<!ENTITY % warning.element "INCLUDE">
+<![%warning.element;[
+<!ELEMENT warning (title?, (%admon.mix;)+)>
+<!--end of warning.element-->]]>
+
+<!ENTITY % warning.attlist "INCLUDE">
+<![%warning.attlist;[
+<!ATTLIST warning
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!--end of warning.attlist-->]]>
+
+<!--end of admon.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Lists ................................................................ -->
+
+<!-- GlossList ........................ -->
+
+<!ENTITY % glosslist.module "INCLUDE">
+<![%glosslist.module;[
+<!ENTITY % local.glosslist.attrib "">
+<!ENTITY % glosslist.role.attrib "%role.attrib;">
+
+<!ENTITY % glosslist.element "INCLUDE">
+<![%glosslist.element;[
+<!ELEMENT glosslist (glossentry+)>
+<!--end of glosslist.element-->]]>
+
+<!ENTITY % glosslist.attlist "INCLUDE">
+<![%glosslist.attlist;[
+<!ATTLIST glosslist
+		%common.attrib;
+		%glosslist.role.attrib;
+		%local.glosslist.attrib;
+>
+<!--end of glosslist.attlist-->]]>
+<!--end of glosslist.module-->]]>
+
+<!ENTITY % glossentry.content.module "INCLUDE">
+<![%glossentry.content.module;[
+<!ENTITY % glossentry.module "INCLUDE">
+<![%glossentry.module;[
+<!ENTITY % local.glossentry.attrib "">
+<!ENTITY % glossentry.role.attrib "%role.attrib;">
+
+<!ENTITY % glossentry.element "INCLUDE">
+<![%glossentry.element;[
+<!ELEMENT glossentry (glossterm, acronym?, abbrev?,
+                      (%ndxterm.class;)*,
+                      revhistory?, (glosssee|glossdef+))>
+<!--end of glossentry.element-->]]>
+
+<!-- SortAs: String by which the GlossEntry is to be sorted
+		(alphabetized) in lieu of its proper content -->
+
+
+<!ENTITY % glossentry.attlist "INCLUDE">
+<![%glossentry.attlist;[
+<!ATTLIST glossentry
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%glossentry.role.attrib;
+		%local.glossentry.attrib;
+>
+<!--end of glossentry.attlist-->]]>
+<!--end of glossentry.module-->]]>
+
+<!-- GlossTerm (defined in the Inlines section, below)-->
+<!ENTITY % glossdef.module "INCLUDE">
+<![%glossdef.module;[
+<!ENTITY % local.glossdef.attrib "">
+<!ENTITY % glossdef.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdef.element "INCLUDE">
+<![%glossdef.element;[
+<!ELEMENT glossdef ((%glossdef.mix;)+, glossseealso*)>
+<!--end of glossdef.element-->]]>
+
+<!-- Subject: List of subjects; keywords for the definition -->
+
+
+<!ENTITY % glossdef.attlist "INCLUDE">
+<![%glossdef.attlist;[
+<!ATTLIST glossdef
+		subject		CDATA		#IMPLIED
+		%common.attrib;
+		%glossdef.role.attrib;
+		%local.glossdef.attrib;
+>
+<!--end of glossdef.attlist-->]]>
+<!--end of glossdef.module-->]]>
+
+<!ENTITY % glosssee.module "INCLUDE">
+<![%glosssee.module;[
+<!ENTITY % local.glosssee.attrib "">
+<!ENTITY % glosssee.role.attrib "%role.attrib;">
+
+<!ENTITY % glosssee.element "INCLUDE">
+<![%glosssee.element;[
+<!ELEMENT glosssee (%para.char.mix;)*>
+<!--end of glosssee.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+		should be displayed at the point of the GlossSee -->
+
+
+<!ENTITY % glosssee.attlist "INCLUDE">
+<![%glosssee.attlist;[
+<!ATTLIST glosssee
+		otherterm	IDREF		#IMPLIED
+		%common.attrib;
+		%glosssee.role.attrib;
+		%local.glosssee.attrib;
+>
+<!--end of glosssee.attlist-->]]>
+<!--end of glosssee.module-->]]>
+
+<!ENTITY % glossseealso.module "INCLUDE">
+<![%glossseealso.module;[
+<!ENTITY % local.glossseealso.attrib "">
+<!ENTITY % glossseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % glossseealso.element "INCLUDE">
+<![%glossseealso.element;[
+<!ELEMENT glossseealso (%para.char.mix;)*>
+<!--end of glossseealso.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+		should be displayed at the point of the GlossSeeAlso -->
+
+
+<!ENTITY % glossseealso.attlist "INCLUDE">
+<![%glossseealso.attlist;[
+<!ATTLIST glossseealso
+		otherterm	IDREF		#IMPLIED
+		%common.attrib;
+		%glossseealso.role.attrib;
+		%local.glossseealso.attrib;
+>
+<!--end of glossseealso.attlist-->]]>
+<!--end of glossseealso.module-->]]>
+<!--end of glossentry.content.module-->]]>
+
+<!-- ItemizedList and OrderedList ..... -->
+
+<!ENTITY % itemizedlist.module "INCLUDE">
+<![%itemizedlist.module;[
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % itemizedlist.element "INCLUDE">
+<![%itemizedlist.element;[
+<!ELEMENT itemizedlist ((%formalobject.title.content;)?, listitem+)>
+<!--end of itemizedlist.element-->]]>
+
+<!-- Spacing: Whether the vertical space in the list should be
+		compressed -->
+<!-- Mark: Keyword, e.g., bullet, dash, checkbox, none;
+		list of keywords and defaults are implementation specific -->
+
+
+<!ENTITY % itemizedlist.attlist "INCLUDE">
+<![%itemizedlist.attlist;[
+<!ATTLIST itemizedlist		spacing		(normal
+				|compact)	#IMPLIED
+		%mark.attrib;
+		%common.attrib;
+		%itemizedlist.role.attrib;
+		%local.itemizedlist.attrib;
+>
+<!--end of itemizedlist.attlist-->]]>
+<!--end of itemizedlist.module-->]]>
+
+<!ENTITY % orderedlist.module "INCLUDE">
+<![%orderedlist.module;[
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % orderedlist.element "INCLUDE">
+<![%orderedlist.element;[
+<!ELEMENT orderedlist ((%formalobject.title.content;)?, listitem+)>
+<!--end of orderedlist.element-->]]>
+
+<!-- Numeration: Style of ListItem numbered; default is expected
+		to be Arabic -->
+<!-- InheritNum: Specifies for a nested list that the numbering
+		of ListItems should include the number of the item
+		within which they are nested (e.g., 1a and 1b within 1,
+		rather than a and b) -->
+<!-- Continuation: Where list numbering begins afresh (Restarts,
+		the default) or continues that of the immediately preceding 
+		list (Continues) -->
+<!-- Spacing: Whether the vertical space in the list should be
+		compressed -->
+
+
+<!ENTITY % orderedlist.attlist "INCLUDE">
+<![%orderedlist.attlist;[
+<!ATTLIST orderedlist
+		numeration	(arabic
+				|upperalpha
+				|loweralpha
+				|upperroman
+				|lowerroman)	#IMPLIED
+		inheritnum	(inherit
+				|ignore)	"ignore"
+		continuation	(continues
+				|restarts)	"restarts"
+		spacing		(normal
+				|compact)	#IMPLIED
+		%common.attrib;
+		%orderedlist.role.attrib;
+		%local.orderedlist.attrib;
+>
+<!--end of orderedlist.attlist-->]]>
+<!--end of orderedlist.module-->]]>
+
+<!ENTITY % listitem.module "INCLUDE">
+<![%listitem.module;[
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+
+<!ENTITY % listitem.element "INCLUDE">
+<![%listitem.element;[
+<!ELEMENT listitem ((%component.mix;)+)>
+<!--end of listitem.element-->]]>
+
+<!-- Override: Indicates the mark to be used for this ListItem
+		instead of the default mark or the mark specified by
+		the Mark attribute on the enclosing ItemizedList -->
+
+
+<!ENTITY % listitem.attlist "INCLUDE">
+<![%listitem.attlist;[
+<!ATTLIST listitem
+		override	CDATA		#IMPLIED
+		%common.attrib;
+		%listitem.role.attrib;
+		%local.listitem.attrib;
+>
+<!--end of listitem.attlist-->]]>
+<!--end of listitem.module-->]]>
+
+<!-- SegmentedList .................... -->
+<!ENTITY % segmentedlist.content.module "INCLUDE">
+<![%segmentedlist.content.module;[
+<!ENTITY % segmentedlist.module "INCLUDE">
+<![%segmentedlist.module;[
+<!ENTITY % local.segmentedlist.attrib "">
+<!ENTITY % segmentedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % segmentedlist.element "INCLUDE">
+<![%segmentedlist.element;[
+<!ELEMENT segmentedlist ((%formalobject.title.content;)?,
+                         segtitle, segtitle+,
+                         seglistitem+)>
+<!--end of segmentedlist.element-->]]>
+
+<!ENTITY % segmentedlist.attlist "INCLUDE">
+<![%segmentedlist.attlist;[
+<!ATTLIST segmentedlist
+		%common.attrib;
+		%segmentedlist.role.attrib;
+		%local.segmentedlist.attrib;
+>
+<!--end of segmentedlist.attlist-->]]>
+<!--end of segmentedlist.module-->]]>
+
+<!ENTITY % segtitle.module "INCLUDE">
+<![%segtitle.module;[
+<!ENTITY % local.segtitle.attrib "">
+<!ENTITY % segtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % segtitle.element "INCLUDE">
+<![%segtitle.element;[
+<!ELEMENT segtitle (%title.char.mix;)*>
+<!--end of segtitle.element-->]]>
+
+<!ENTITY % segtitle.attlist "INCLUDE">
+<![%segtitle.attlist;[
+<!ATTLIST segtitle
+		%common.attrib;
+		%segtitle.role.attrib;
+		%local.segtitle.attrib;
+>
+<!--end of segtitle.attlist-->]]>
+<!--end of segtitle.module-->]]>
+
+<!ENTITY % seglistitem.module "INCLUDE">
+<![%seglistitem.module;[
+<!ENTITY % local.seglistitem.attrib "">
+<!ENTITY % seglistitem.role.attrib "%role.attrib;">
+
+<!ENTITY % seglistitem.element "INCLUDE">
+<![%seglistitem.element;[
+<!ELEMENT seglistitem (seg, seg+)>
+<!--end of seglistitem.element-->]]>
+
+<!ENTITY % seglistitem.attlist "INCLUDE">
+<![%seglistitem.attlist;[
+<!ATTLIST seglistitem
+		%common.attrib;
+		%seglistitem.role.attrib;
+		%local.seglistitem.attrib;
+>
+<!--end of seglistitem.attlist-->]]>
+<!--end of seglistitem.module-->]]>
+
+<!ENTITY % seg.module "INCLUDE">
+<![%seg.module;[
+<!ENTITY % local.seg.attrib "">
+<!ENTITY % seg.role.attrib "%role.attrib;">
+
+<!ENTITY % seg.element "INCLUDE">
+<![%seg.element;[
+<!ELEMENT seg (%para.char.mix;)*>
+<!--end of seg.element-->]]>
+
+<!ENTITY % seg.attlist "INCLUDE">
+<![%seg.attlist;[
+<!ATTLIST seg
+		%common.attrib;
+		%seg.role.attrib;
+		%local.seg.attrib;
+>
+<!--end of seg.attlist-->]]>
+<!--end of seg.module-->]]>
+<!--end of segmentedlist.content.module-->]]>
+
+<!-- SimpleList ....................... -->
+
+<!ENTITY % simplelist.content.module "INCLUDE">
+<![%simplelist.content.module;[
+<!ENTITY % simplelist.module "INCLUDE">
+<![%simplelist.module;[
+<!ENTITY % local.simplelist.attrib "">
+<!ENTITY % simplelist.role.attrib "%role.attrib;">
+
+<!ENTITY % simplelist.element "INCLUDE">
+<![%simplelist.element;[
+<!ELEMENT simplelist (member+)>
+<!--end of simplelist.element-->]]>
+
+<!-- Columns: The number of columns the array should contain -->
+<!-- Type: How the Members of the SimpleList should be
+		formatted: Inline (members separated with commas etc.
+		inline), Vert (top to bottom in n Columns), or Horiz (in
+		the direction of text flow) in n Columns.  If Column
+		is 1 or implied, Type=Vert and Type=Horiz give the same
+		results. -->
+
+
+<!ENTITY % simplelist.attlist "INCLUDE">
+<![%simplelist.attlist;[
+<!ATTLIST simplelist
+		columns		CDATA		#IMPLIED
+		type		(inline
+				|vert
+				|horiz)		"vert"
+		%common.attrib;
+		%simplelist.role.attrib;
+		%local.simplelist.attrib;
+>
+<!--end of simplelist.attlist-->]]>
+<!--end of simplelist.module-->]]>
+
+<!ENTITY % member.module "INCLUDE">
+<![%member.module;[
+<!ENTITY % local.member.attrib "">
+<!ENTITY % member.role.attrib "%role.attrib;">
+
+<!ENTITY % member.element "INCLUDE">
+<![%member.element;[
+<!ELEMENT member (%para.char.mix;)*>
+<!--end of member.element-->]]>
+
+<!ENTITY % member.attlist "INCLUDE">
+<![%member.attlist;[
+<!ATTLIST member
+		%common.attrib;
+		%member.role.attrib;
+		%local.member.attrib;
+>
+<!--end of member.attlist-->]]>
+<!--end of member.module-->]]>
+<!--end of simplelist.content.module-->]]>
+
+<!-- VariableList ..................... -->
+
+<!ENTITY % variablelist.content.module "INCLUDE">
+<![%variablelist.content.module;[
+<!ENTITY % variablelist.module "INCLUDE">
+<![%variablelist.module;[
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+
+<!ENTITY % variablelist.element "INCLUDE">
+<![%variablelist.element;[
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!--end of variablelist.element-->]]>
+
+<!-- TermLength: Length beyond which the presentation engine
+		may consider the Term too long and select an alternate
+		presentation of the Term and, or, its associated ListItem. -->
+
+
+<!ENTITY % variablelist.attlist "INCLUDE">
+<![%variablelist.attlist;[
+<!ATTLIST variablelist
+		termlength	CDATA		#IMPLIED
+		%common.attrib;
+		%variablelist.role.attrib;
+		%local.variablelist.attrib;
+>
+<!--end of variablelist.attlist-->]]>
+<!--end of variablelist.module-->]]>
+
+<!ENTITY % varlistentry.module "INCLUDE">
+<![%varlistentry.module;[
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+
+<!ENTITY % varlistentry.element "INCLUDE">
+<![%varlistentry.element;[
+<!ELEMENT varlistentry (term+, listitem)>
+<!--end of varlistentry.element-->]]>
+
+<!ENTITY % varlistentry.attlist "INCLUDE">
+<![%varlistentry.attlist;[
+<!ATTLIST varlistentry
+		%common.attrib;
+		%varlistentry.role.attrib;
+		%local.varlistentry.attrib;
+>
+<!--end of varlistentry.attlist-->]]>
+<!--end of varlistentry.module-->]]>
+
+<!ENTITY % term.module "INCLUDE">
+<![%term.module;[
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+
+<!ENTITY % term.element "INCLUDE">
+<![%term.element;[
+<!ELEMENT term (%para.char.mix;)*>
+<!--end of term.element-->]]>
+
+<!ENTITY % term.attlist "INCLUDE">
+<![%term.attlist;[
+<!ATTLIST term
+		%common.attrib;
+		%term.role.attrib;
+		%local.term.attrib;
+>
+<!--end of term.attlist-->]]>
+<!--end of term.module-->]]>
+
+<!-- ListItem (defined above)-->
+<!--end of variablelist.content.module-->]]>
+
+<!-- CalloutList ...................... -->
+
+<!ENTITY % calloutlist.content.module "INCLUDE">
+<![%calloutlist.content.module;[
+<!ENTITY % calloutlist.module "INCLUDE">
+<![%calloutlist.module;[
+<!ENTITY % local.calloutlist.attrib "">
+<!ENTITY % calloutlist.role.attrib "%role.attrib;">
+
+<!ENTITY % calloutlist.element "INCLUDE">
+<![%calloutlist.element;[
+<!ELEMENT calloutlist ((%formalobject.title.content;)?, callout+)>
+<!--end of calloutlist.element-->]]>
+
+<!ENTITY % calloutlist.attlist "INCLUDE">
+<![%calloutlist.attlist;[
+<!ATTLIST calloutlist
+		%common.attrib;
+		%calloutlist.role.attrib;
+		%local.calloutlist.attrib;
+>
+<!--end of calloutlist.attlist-->]]>
+<!--end of calloutlist.module-->]]>
+
+<!ENTITY % callout.module "INCLUDE">
+<![%callout.module;[
+<!ENTITY % local.callout.attrib "">
+<!ENTITY % callout.role.attrib "%role.attrib;">
+
+<!ENTITY % callout.element "INCLUDE">
+<![%callout.element;[
+<!ELEMENT callout ((%component.mix;)+)>
+<!--end of callout.element-->]]>
+
+<!-- AreaRefs: IDs of one or more Areas or AreaSets described
+		by this Callout -->
+
+
+<!ENTITY % callout.attlist "INCLUDE">
+<![%callout.attlist;[
+<!ATTLIST callout
+		arearefs	IDREFS		#REQUIRED
+		%common.attrib;
+		%callout.role.attrib;
+		%local.callout.attrib;
+>
+<!--end of callout.attlist-->]]>
+<!--end of callout.module-->]]>
+<!--end of calloutlist.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Objects .............................................................. -->
+
+<!-- Examples etc. .................... -->
+
+<!ENTITY % example.module "INCLUDE">
+<![%example.module;[
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+
+<!ENTITY % example.element "INCLUDE">
+<![%example.element;[
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!--end of example.element-->]]>
+
+<!ENTITY % example.attlist "INCLUDE">
+<![%example.attlist;[
+<!ATTLIST example
+		%label.attrib;
+		%width.attrib;
+		%common.attrib;
+		%example.role.attrib;
+		%local.example.attrib;
+>
+<!--end of example.attlist-->]]>
+<!--end of example.module-->]]>
+
+<!ENTITY % informalexample.module "INCLUDE">
+<![%informalexample.module;[
+<!ENTITY % local.informalexample.attrib "">
+<!ENTITY % informalexample.role.attrib "%role.attrib;">
+
+<!ENTITY % informalexample.element "INCLUDE">
+<![%informalexample.element;[
+<!ELEMENT informalexample ((%example.mix;)+)>
+<!--end of informalexample.element-->]]>
+
+<!ENTITY % informalexample.attlist "INCLUDE">
+<![%informalexample.attlist;[
+<!ATTLIST informalexample
+		%width.attrib;
+		%common.attrib;
+		%informalexample.role.attrib;
+		%local.informalexample.attrib;
+>
+<!--end of informalexample.attlist-->]]>
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % programlistingco.module "INCLUDE">
+<![%programlistingco.module;[
+<!ENTITY % local.programlistingco.attrib "">
+<!ENTITY % programlistingco.role.attrib "%role.attrib;">
+
+<!ENTITY % programlistingco.element "INCLUDE">
+<![%programlistingco.element;[
+<!ELEMENT programlistingco (areaspec, programlisting, calloutlist*)>
+<!--end of programlistingco.element-->]]>
+
+<!ENTITY % programlistingco.attlist "INCLUDE">
+<![%programlistingco.attlist;[
+<!ATTLIST programlistingco
+		%common.attrib;
+		%programlistingco.role.attrib;
+		%local.programlistingco.attrib;
+>
+<!--end of programlistingco.attlist-->]]>
+<!-- CalloutList (defined above in Lists)-->
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % areaspec.content.module "INCLUDE">
+<![%areaspec.content.module;[
+<!ENTITY % areaspec.module "INCLUDE">
+<![%areaspec.module;[
+<!ENTITY % local.areaspec.attrib "">
+<!ENTITY % areaspec.role.attrib "%role.attrib;">
+
+<!ENTITY % areaspec.element "INCLUDE">
+<![%areaspec.element;[
+<!ELEMENT areaspec ((area|areaset)+)>
+<!--end of areaspec.element-->]]>
+
+<!-- Units: global unit of measure in which coordinates in
+		this spec are expressed:
+
+		- CALSPair "x1,y1 x2,y2": lower-left and upper-right 
+		coordinates in a rectangle describing repro area in which 
+		graphic is placed, where X and Y dimensions are each some 
+		number 0..10000 (taken from CALS graphic attributes)
+
+		- LineColumn "line column": line number and column number
+		at which to start callout text in "linespecific" content
+
+		- LineRange "startline endline": whole lines from startline
+		to endline in "linespecific" content
+
+		- LineColumnPair "line1 col1 line2 col2": starting and ending
+		points of area in "linespecific" content that starts at
+		first position and ends at second position (including the
+		beginnings of any intervening lines)
+
+		- Other: directive to look at value of OtherUnits attribute
+		to get implementation-specific keyword
+
+		The default is implementation-specific; usually dependent on 
+		the parent element (GraphicCO gets CALSPair, ProgramListingCO
+		and ScreenCO get LineColumn) -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % areaspec.attlist "INCLUDE">
+<![%areaspec.attlist;[
+<!ATTLIST areaspec
+		units		(calspair
+				|linecolumn
+				|linerange
+				|linecolumnpair
+				|other)		#IMPLIED
+		otherunits	NMTOKEN		#IMPLIED
+		%common.attrib;
+		%areaspec.role.attrib;
+		%local.areaspec.attrib;
+>
+<!--end of areaspec.attlist-->]]>
+<!--end of areaspec.module-->]]>
+
+<!ENTITY % area.module "INCLUDE">
+<![%area.module;[
+<!ENTITY % local.area.attrib "">
+<!ENTITY % area.role.attrib "%role.attrib;">
+
+<!ENTITY % area.element "INCLUDE">
+<![%area.element;[
+<!ELEMENT area EMPTY>
+<!--end of area.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+<!-- Units: unit of measure in which coordinates in this
+		area are expressed; inherits from AreaSet and AreaSpec -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % area.attlist "INCLUDE">
+<![%area.attlist;[
+<!ATTLIST area
+		%label.attrib;		
+		%linkends.attrib;
+		units		(calspair
+				|linecolumn
+				|linerange
+				|linecolumnpair
+				|other)		#IMPLIED
+		otherunits	NMTOKEN		#IMPLIED
+		coords		CDATA		#REQUIRED
+		%idreq.common.attrib;
+		%area.role.attrib;
+		%local.area.attrib;
+>
+<!--end of area.attlist-->]]>
+<!--end of area.module-->]]>
+
+<!ENTITY % areaset.module "INCLUDE">
+<![%areaset.module;[
+<!ENTITY % local.areaset.attrib "">
+<!ENTITY % areaset.role.attrib "%role.attrib;">
+
+<!ENTITY % areaset.element "INCLUDE">
+<![%areaset.element;[
+<!ELEMENT areaset (area+)>
+<!--end of areaset.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- Units: unit of measure in which coordinates in this
+		area are expressed; inherits from AreaSpec -->
+
+
+<!ENTITY % areaset.attlist "INCLUDE">
+<![%areaset.attlist;[
+<!ATTLIST areaset
+		%label.attrib;
+		units		(calspair
+				|linecolumn
+				|linerange
+				|linecolumnpair
+				|other)		#IMPLIED
+		otherunits	NMTOKEN		#IMPLIED
+		coords		CDATA		#REQUIRED
+		%idreq.common.attrib;
+		%areaset.role.attrib;
+		%local.areaset.attrib;
+>
+<!--end of areaset.attlist-->]]>
+<!--end of areaset.module-->]]>
+<!--end of areaspec.content.module-->]]>
+
+<!ENTITY % programlisting.module "INCLUDE">
+<![%programlisting.module;[
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+
+<!ENTITY % programlisting.element "INCLUDE">
+<![%programlisting.element;[
+<!ELEMENT programlisting (%para.char.mix; | co | lineannotation)*>
+<!--end of programlisting.element-->]]>
+
+<!ENTITY % programlisting.attlist "INCLUDE">
+<![%programlisting.attlist;[
+<!ATTLIST programlisting
+		%width.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%programlisting.role.attrib;
+		%local.programlisting.attrib;
+>
+<!--end of programlisting.attlist-->]]>
+<!--end of programlisting.module-->]]>
+
+<!ENTITY % literallayout.module "INCLUDE">
+<![%literallayout.module;[
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+
+<!ENTITY % literallayout.element "INCLUDE">
+<![%literallayout.element;[
+<!ELEMENT literallayout (%para.char.mix; | lineannotation | co)*>
+<!--end of literallayout.element-->]]>
+
+<!ENTITY % literallayout.attlist "INCLUDE">
+<![%literallayout.attlist;[
+<!ATTLIST literallayout
+		%width.attrib;
+		%linespecific.attrib;
+		class	(monospaced|normal)	"normal"
+		%common.attrib;
+		%literallayout.role.attrib;
+		%local.literallayout.attrib;
+>
+<!--end of literallayout.attlist-->]]>
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!--end of literallayout.module-->]]>
+
+<!ENTITY % screenco.module "INCLUDE">
+<![%screenco.module;[
+<!ENTITY % local.screenco.attrib "">
+<!ENTITY % screenco.role.attrib "%role.attrib;">
+
+<!ENTITY % screenco.element "INCLUDE">
+<![%screenco.element;[
+<!ELEMENT screenco (areaspec, screen, calloutlist*)>
+<!--end of screenco.element-->]]>
+
+<!ENTITY % screenco.attlist "INCLUDE">
+<![%screenco.attlist;[
+<!ATTLIST screenco
+		%common.attrib;
+		%screenco.role.attrib;
+		%local.screenco.attrib;
+>
+<!--end of screenco.attlist-->]]>
+<!-- AreaSpec (defined above)-->
+<!-- CalloutList (defined above in Lists)-->
+<!--end of screenco.module-->]]>
+
+<!ENTITY % screen.module "INCLUDE">
+<![%screen.module;[
+<!ENTITY % local.screen.attrib "">
+<!ENTITY % screen.role.attrib "%role.attrib;">
+
+<!ENTITY % screen.element "INCLUDE">
+<![%screen.element;[
+<!ELEMENT screen (%para.char.mix; | co | lineannotation)*>
+<!--end of screen.element-->]]>
+
+<!ENTITY % screen.attlist "INCLUDE">
+<![%screen.attlist;[
+<!ATTLIST screen
+		%width.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%screen.role.attrib;
+		%local.screen.attrib;
+>
+<!--end of screen.attlist-->]]>
+<!--end of screen.module-->]]>
+
+<!ENTITY % screenshot.content.module "INCLUDE">
+<![%screenshot.content.module;[
+<!ENTITY % screenshot.module "INCLUDE">
+<![%screenshot.module;[
+<!ENTITY % local.screenshot.attrib "">
+<!ENTITY % screenshot.role.attrib "%role.attrib;">
+
+<!ENTITY % screenshot.element "INCLUDE">
+<![%screenshot.element;[
+<!ELEMENT screenshot (screeninfo?,
+                      (graphic|graphicco
+                      |mediaobject|mediaobjectco))>
+<!--end of screenshot.element-->]]>
+
+<!ENTITY % screenshot.attlist "INCLUDE">
+<![%screenshot.attlist;[
+<!ATTLIST screenshot
+		%common.attrib;
+		%screenshot.role.attrib;
+		%local.screenshot.attrib;
+>
+<!--end of screenshot.attlist-->]]>
+<!--end of screenshot.module-->]]>
+
+<!ENTITY % screeninfo.module "INCLUDE">
+<![%screeninfo.module;[
+<!ENTITY % local.screeninfo.attrib "">
+<!ENTITY % screeninfo.role.attrib "%role.attrib;">
+
+<!ENTITY % screeninfo.element "INCLUDE">
+<![%screeninfo.element;[
+<!ELEMENT screeninfo (%para.char.mix;)*>
+<!--end of screeninfo.element-->]]>
+
+<!ENTITY % screeninfo.attlist "INCLUDE">
+<![%screeninfo.attlist;[
+<!ATTLIST screeninfo
+		%common.attrib;
+		%screeninfo.role.attrib;
+		%local.screeninfo.attrib;
+>
+<!--end of screeninfo.attlist-->]]>
+<!--end of screeninfo.module-->]]>
+<!--end of screenshot.content.module-->]]>
+
+<!-- Figures etc. ..................... -->
+
+<!ENTITY % figure.module "INCLUDE">
+<![%figure.module;[
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+
+<!ENTITY % figure.element "INCLUDE">
+<![%figure.element;[
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+		%link.char.class;)+)>
+<!--end of figure.element-->]]>
+
+<!-- Float: Whether the Figure is supposed to be rendered
+		where convenient (yes (1) value) or at the place it occurs
+		in the text (no (0) value, the default) -->
+
+
+<!ENTITY % figure.attlist "INCLUDE">
+<![%figure.attlist;[
+<!ATTLIST figure
+		float		%yesorno.attvals;	'0'
+		pgwide      	%yesorno.attvals;       #IMPLIED
+		%label.attrib;
+		%common.attrib;
+		%figure.role.attrib;
+		%local.figure.attrib;
+>
+<!--end of figure.attlist-->]]>
+<!--end of figure.module-->]]>
+
+<!ENTITY % informalfigure.module "INCLUDE">
+<![ %informalfigure.module; [
+<!ENTITY % local.informalfigure.attrib "">
+<!ENTITY % informalfigure.role.attrib "%role.attrib;">
+
+<!ENTITY % informalfigure.element "INCLUDE">
+<![ %informalfigure.element; [
+<!ELEMENT informalfigure ((%figure.mix; | %link.char.class;)+)>
+<!--end of informalfigure.element-->]]>
+
+<!ENTITY % informalfigure.attlist "INCLUDE">
+<![ %informalfigure.attlist; [
+<!--
+Float: Whether the Figure is supposed to be rendered
+where convenient (yes (1) value) or at the place it occurs
+in the text (no (0) value, the default)
+-->
+<!ATTLIST informalfigure
+		float		%yesorno.attvals;	"0"
+		pgwide      	%yesorno.attvals;       #IMPLIED
+		%label.attrib;
+		%common.attrib;
+		%informalfigure.role.attrib;
+		%local.informalfigure.attrib;
+>
+<!--end of informalfigure.attlist-->]]>
+<!--end of informalfigure.module-->]]>
+
+<!ENTITY % graphicco.module "INCLUDE">
+<![%graphicco.module;[
+<!ENTITY % local.graphicco.attrib "">
+<!ENTITY % graphicco.role.attrib "%role.attrib;">
+
+<!ENTITY % graphicco.element "INCLUDE">
+<![%graphicco.element;[
+<!ELEMENT graphicco (areaspec, graphic, calloutlist*)>
+<!--end of graphicco.element-->]]>
+
+<!ENTITY % graphicco.attlist "INCLUDE">
+<![%graphicco.attlist;[
+<!ATTLIST graphicco
+		%common.attrib;
+		%graphicco.role.attrib;
+		%local.graphicco.attrib;
+>
+<!--end of graphicco.attlist-->]]>
+<!-- AreaSpec (defined above in Examples)-->
+<!-- CalloutList (defined above in Lists)-->
+<!--end of graphicco.module-->]]>
+
+<!-- Graphical data can be the content of Graphic, or you can reference
+     an external file either as an entity (Entitref) or a filename
+     (Fileref). -->
+
+<!ENTITY % graphic.module "INCLUDE">
+<![%graphic.module;[
+<!ENTITY % local.graphic.attrib "">
+<!ENTITY % graphic.role.attrib "%role.attrib;">
+
+<!ENTITY % graphic.element "INCLUDE">
+<![%graphic.element;[
+<!ELEMENT graphic EMPTY>
+<!--end of graphic.element-->]]>
+
+<!ENTITY % graphic.attlist "INCLUDE">
+<![%graphic.attlist;[
+<!ATTLIST graphic
+		%graphics.attrib;
+		%common.attrib;
+		%graphic.role.attrib;
+		%local.graphic.attrib;
+>
+<!--end of graphic.attlist-->]]>
+<!--end of graphic.module-->]]>
+
+<!ENTITY % inlinegraphic.module "INCLUDE">
+<![%inlinegraphic.module;[
+<!ENTITY % local.inlinegraphic.attrib "">
+<!ENTITY % inlinegraphic.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinegraphic.element "INCLUDE">
+<![%inlinegraphic.element;[
+<!ELEMENT inlinegraphic EMPTY>
+<!--end of inlinegraphic.element-->]]>
+
+<!ENTITY % inlinegraphic.attlist "INCLUDE">
+<![%inlinegraphic.attlist;[
+<!ATTLIST inlinegraphic
+		%graphics.attrib;
+		%common.attrib;
+		%inlinegraphic.role.attrib;
+		%local.inlinegraphic.attrib;
+>
+<!--end of inlinegraphic.attlist-->]]>
+<!--end of inlinegraphic.module-->]]>
+
+<!ENTITY % mediaobject.content.module "INCLUDE">
+<![ %mediaobject.content.module; [
+
+<!ENTITY % mediaobject.module "INCLUDE">
+<![ %mediaobject.module; [
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobject.element "INCLUDE">
+<![ %mediaobject.element; [
+<!ELEMENT mediaobject (objectinfo?,
+                           (%mediaobject.mix;),
+			   (%mediaobject.mix;|textobject)*,
+			   caption?)>
+<!--end of mediaobject.element-->]]>
+
+<!ENTITY % mediaobject.attlist "INCLUDE">
+<![ %mediaobject.attlist; [
+<!ATTLIST mediaobject
+		%common.attrib;
+		%mediaobject.role.attrib;
+		%local.mediaobject.attrib;
+>
+<!--end of mediaobject.attlist-->]]>
+<!--end of mediaobject.module-->]]>
+
+<!ENTITY % inlinemediaobject.module "INCLUDE">
+<![ %inlinemediaobject.module; [
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinemediaobject.element "INCLUDE">
+<![ %inlinemediaobject.element; [
+<!ELEMENT inlinemediaobject (objectinfo?,
+                	         (%mediaobject.mix;),
+				 (%mediaobject.mix;|textobject)*)>
+<!--end of inlinemediaobject.element-->]]>
+
+<!ENTITY % inlinemediaobject.attlist "INCLUDE">
+<![ %inlinemediaobject.attlist; [
+<!ATTLIST inlinemediaobject
+		%common.attrib;
+		%inlinemediaobject.role.attrib;
+		%local.inlinemediaobject.attrib;
+>
+<!--end of inlinemediaobject.attlist-->]]>
+<!--end of inlinemediaobject.module-->]]>
+
+<!ENTITY % videoobject.module "INCLUDE">
+<![ %videoobject.module; [
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+
+<!ENTITY % videoobject.element "INCLUDE">
+<![ %videoobject.element; [
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!--end of videoobject.element-->]]>
+
+<!ENTITY % videoobject.attlist "INCLUDE">
+<![ %videoobject.attlist; [
+<!ATTLIST videoobject
+		%common.attrib;
+		%videoobject.role.attrib;
+		%local.videoobject.attrib;
+>
+<!--end of videoobject.attlist-->]]>
+<!--end of videoobject.module-->]]>
+
+<!ENTITY % audioobject.module "INCLUDE">
+<![ %audioobject.module; [
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+
+<!ENTITY % audioobject.element "INCLUDE">
+<![ %audioobject.element; [
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!--end of audioobject.element-->]]>
+
+<!ENTITY % audioobject.attlist "INCLUDE">
+<![ %audioobject.attlist; [
+<!ATTLIST audioobject
+		%common.attrib;
+		%audioobject.role.attrib;
+		%local.audioobject.attrib;
+>
+<!--end of audioobject.attlist-->]]>
+<!--end of audioobject.module-->]]>
+
+<!ENTITY % imageobject.module "INCLUDE">
+<![ %imageobject.module; [
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobject.element "INCLUDE">
+<![ %imageobject.element; [
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!--end of imageobject.element-->]]>
+
+<!ENTITY % imageobject.attlist "INCLUDE">
+<![ %imageobject.attlist; [
+<!ATTLIST imageobject
+		%common.attrib;
+		%imageobject.role.attrib;
+		%local.imageobject.attrib;
+>
+<!--end of imageobject.attlist-->]]>
+<!--end of imageobject.module-->]]>
+
+<!ENTITY % textobject.module "INCLUDE">
+<![ %textobject.module; [
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+
+<!ENTITY % textobject.element "INCLUDE">
+<![ %textobject.element; [
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!--end of textobject.element-->]]>
+
+<!ENTITY % textobject.attlist "INCLUDE">
+<![ %textobject.attlist; [
+<!ATTLIST textobject
+		%common.attrib;
+		%textobject.role.attrib;
+		%local.textobject.attrib;
+>
+<!--end of textobject.attlist-->]]>
+<!--end of textobject.module-->]]>
+
+<!ENTITY % objectinfo.module "INCLUDE">
+<![ %objectinfo.module; [
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % objectinfo.element "INCLUDE">
+<![ %objectinfo.element; [
+<!ELEMENT objectinfo ((graphic | mediaobject | legalnotice | modespec 
+	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of objectinfo.element-->]]>
+
+<!ENTITY % objectinfo.attlist "INCLUDE">
+<![ %objectinfo.attlist; [
+<!ATTLIST objectinfo
+		%common.attrib;
+		%objectinfo.role.attrib;
+		%local.objectinfo.attrib;
+>
+<!--end of objectinfo.attlist-->]]>
+<!--end of objectinfo.module-->]]>
+
+<!--EntityRef: Name of an external entity containing the content
+	of the object data-->
+<!--FileRef: Filename, qualified by a pathname if desired, 
+	designating the file containing the content of the object data-->
+<!--Format: Notation of the element content, if any-->
+<!--SrcCredit: Information about the source of the image-->
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+	"
+	entityref	ENTITY		#IMPLIED
+	fileref 	CDATA		#IMPLIED
+	format		(%notation.class;)
+					#IMPLIED
+	srccredit	CDATA		#IMPLIED
+	%local.objectdata.attrib;"
+>
+
+<!ENTITY % videodata.module "INCLUDE">
+<![ %videodata.module; [
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+
+<!ENTITY % videodata.element "INCLUDE">
+<![ %videodata.element; [
+<!ELEMENT videodata EMPTY>
+<!--end of videodata.element-->]]>
+
+<!ENTITY % videodata.attlist "INCLUDE">
+<![ %videodata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means 
+	application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST videodata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%videodata.role.attrib;
+		%local.videodata.attrib;
+>
+<!--end of videodata.attlist-->]]>
+<!--end of videodata.module-->]]>
+
+<!ENTITY % audiodata.module "INCLUDE">
+<![ %audiodata.module; [
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+
+<!ENTITY % audiodata.element "INCLUDE">
+<![ %audiodata.element; [
+<!ELEMENT audiodata EMPTY>
+<!--end of audiodata.element-->]]>
+
+<!ENTITY % audiodata.attlist "INCLUDE">
+<![ %audiodata.attlist; [
+<!ATTLIST audiodata
+		%common.attrib;
+		%objectdata.attrib;
+		%local.audiodata.attrib;
+		%audiodata.role.attrib;
+>
+<!--end of audiodata.attlist-->]]>
+<!--end of audiodata.module-->]]>
+
+<!ENTITY % imagedata.module "INCLUDE">
+<![ %imagedata.module; [
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+
+<!ENTITY % imagedata.element "INCLUDE">
+<![ %imagedata.element; [
+<!ELEMENT imagedata EMPTY>
+<!--end of imagedata.element-->]]>
+
+<!ENTITY % imagedata.attlist "INCLUDE">
+<![ %imagedata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means 
+	application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST imagedata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%local.imagedata.attrib;
+		%imagedata.role.attrib;
+>
+<!--end of imagedata.attlist-->]]>
+<!--end of imagedata.module-->]]>
+
+<!ENTITY % caption.module "INCLUDE">
+<![ %caption.module; [
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+
+<!ENTITY % caption.element "INCLUDE">
+<![ %caption.element; [
+<!ELEMENT caption (%textobject.mix;)*>
+<!--end of caption.element-->]]>
+
+<!ENTITY % caption.attlist "INCLUDE">
+<![ %caption.attlist; [
+<!ATTLIST caption
+		%common.attrib;
+		%local.caption.attrib;
+		%caption.role.attrib;
+>
+<!--end of caption.attlist-->]]>
+<!--end of caption.module-->]]>
+
+<!ENTITY % mediaobjectco.module "INCLUDE">
+<![ %mediaobjectco.module; [
+<!ENTITY % local.mediaobjectco.attrib "">
+<!ENTITY % mediaobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobjectco.element "INCLUDE">
+<![ %mediaobjectco.element; [
+<!ELEMENT mediaobjectco (objectinfo?, imageobjectco,
+			   (imageobjectco|textobject)*)>
+<!--end of mediaobjectco.element-->]]>
+
+<!ENTITY % mediaobjectco.attlist "INCLUDE">
+<![ %mediaobjectco.attlist; [
+<!ATTLIST mediaobjectco
+		%common.attrib;
+		%mediaobjectco.role.attrib;
+		%local.mediaobjectco.attrib;
+>
+<!--end of mediaobjectco.attlist-->]]>
+<!--end of mediaobjectco.module-->]]>
+
+<!ENTITY % imageobjectco.module "INCLUDE">
+<![ %imageobjectco.module; [
+<!ENTITY % local.imageobjectco.attrib "">
+<!ENTITY % imageobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobjectco.element "INCLUDE">
+<![ %imageobjectco.element; [
+<!ELEMENT imageobjectco (areaspec, imageobject, calloutlist*)>
+<!--end of imageobjectco.element-->]]>
+
+<!ENTITY % imageobjectco.attlist "INCLUDE">
+<![ %imageobjectco.attlist; [
+<!ATTLIST imageobjectco
+		%common.attrib;
+		%imageobjectco.role.attrib;
+		%local.imageobjectco.attrib;
+>
+<!--end of imageobjectco.attlist-->]]>
+<!--end of imageobjectco.module-->]]>
+<!--end of mediaobject.content.module-->]]>
+
+<!-- Equations ........................ -->
+
+<!-- This PE provides a mechanism for replacing equation content, -->
+<!-- perhaps adding a new or different model (e.g., MathML) -->
+<!ENTITY % equation.content "(alt?, (graphic+|mediaobject+))">
+<!ENTITY % inlineequation.content "(alt?, (graphic+|inlinemediaobject+))">
+
+<!ENTITY % equation.module "INCLUDE">
+<![%equation.module;[
+<!ENTITY % local.equation.attrib "">
+<!ENTITY % equation.role.attrib "%role.attrib;">
+
+<!ENTITY % equation.element "INCLUDE">
+<![%equation.element;[
+<!ELEMENT equation ((%formalobject.title.content;)?, (informalequation |
+		%equation.content;))>
+<!--end of equation.element-->]]>
+
+<!ENTITY % equation.attlist "INCLUDE">
+<![%equation.attlist;[
+<!ATTLIST equation
+		%label.attrib;
+	 	%common.attrib;
+		%equation.role.attrib;
+		%local.equation.attrib;
+>
+<!--end of equation.attlist-->]]>
+<!--end of equation.module-->]]>
+
+<!ENTITY % informalequation.module "INCLUDE">
+<![%informalequation.module;[
+<!ENTITY % local.informalequation.attrib "">
+<!ENTITY % informalequation.role.attrib "%role.attrib;">
+
+<!ENTITY % informalequation.element "INCLUDE">
+<![%informalequation.element;[
+<!ELEMENT informalequation (%equation.content;) >
+<!--end of informalequation.element-->]]>
+
+<!ENTITY % informalequation.attlist "INCLUDE">
+<![%informalequation.attlist;[
+<!ATTLIST informalequation
+		%common.attrib;
+		%informalequation.role.attrib;
+		%local.informalequation.attrib;
+>
+<!--end of informalequation.attlist-->]]>
+<!--end of informalequation.module-->]]>
+
+<!ENTITY % inlineequation.module "INCLUDE">
+<![%inlineequation.module;[
+<!ENTITY % local.inlineequation.attrib "">
+<!ENTITY % inlineequation.role.attrib "%role.attrib;">
+
+<!ENTITY % inlineequation.element "INCLUDE">
+<![%inlineequation.element;[
+<!ELEMENT inlineequation (%inlineequation.content;)>
+<!--end of inlineequation.element-->]]>
+
+<!ENTITY % inlineequation.attlist "INCLUDE">
+<![%inlineequation.attlist;[
+<!ATTLIST inlineequation
+		%common.attrib;
+		%inlineequation.role.attrib;
+		%local.inlineequation.attrib;
+>
+<!--end of inlineequation.attlist-->]]>
+<!--end of inlineequation.module-->]]>
+
+<!ENTITY % alt.module "INCLUDE">
+<![%alt.module;[
+<!ENTITY % local.alt.attrib "">
+<!ENTITY % alt.role.attrib "%role.attrib;">
+
+<!ENTITY % alt.element "INCLUDE">
+<![%alt.element;[
+<!ELEMENT alt (#PCDATA)>
+<!--end of alt.element-->]]>
+
+<!ENTITY % alt.attlist "INCLUDE">
+<![%alt.attlist;[
+<!ATTLIST alt 
+		%common.attrib;
+		%alt.role.attrib;
+		%local.alt.attrib;
+>
+<!--end of alt.attlist-->]]>
+<!--end of alt.module-->]]>
+
+<!-- Tables ........................... -->
+
+<!ENTITY % table.module "INCLUDE">
+<![%table.module;[
+
+<!-- Choose a table model. CALS or OASIS XML Exchange -->
+
+<!ENTITY % cals.table.module "INCLUDE">
+<![%cals.table.module;[
+<!ENTITY % exchange.table.module "IGNORE">
+]]>
+<!ENTITY % exchange.table.module "INCLUDE">
+
+<!ENTITY % tables.role.attrib "%role.attrib;">
+
+<![%cals.table.module;[
+<!-- Add label and role attributes to table and informaltable -->
+<!ENTITY % bodyatt "%label.attrib;">
+
+<!-- Add common attributes to Table, TGroup, TBody, THead, TFoot, Row, 
+     EntryTbl, and Entry (and InformalTable element). -->
+<!ENTITY % secur
+	"%common.attrib;
+	%tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+	"%bodyatt;
+	%secur;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+	"((%formalobject.title.content;), (%ndxterm.class;)*,
+          (graphic+|mediaobject+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "%para.char.mix; | %tabentry.mix;">
+
+<!-- Reference CALS Table Model -->
+<!ENTITY % tablemodel 
+  PUBLIC "-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN"
+  "calstblx.dtd">
+]]>
+
+<![%exchange.table.module;[
+<!-- Add common attributes and the Label attribute to Table and -->
+<!-- InformalTable.                                             -->
+<!ENTITY % bodyatt 
+	"%common.attrib;
+	%label.attrib;
+	%tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+	"%bodyatt;">
+
+<!-- Add common attributes to TGroup, ColSpec, TBody, THead, Row, Entry -->
+
+<!ENTITY % tbl.tgroup.att       "%common.attrib;">
+<!ENTITY % tbl.colspec.att      "%common.attrib;">
+<!ENTITY % tbl.tbody.att        "%common.attrib;">
+<!ENTITY % tbl.thead.att        "%common.attrib;">
+<!ENTITY % tbl.row.att          "%common.attrib;">
+<!ENTITY % tbl.entry.att        "%common.attrib;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+	"((%formalobject.title.content;),
+          (%ndxterm.class;)*,
+          (graphic+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+
+<!-- Reference OASIS Exchange Table Model -->
+<!ENTITY % tablemodel 
+  PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN"
+  "soextblx.dtd">
+]]>
+
+%tablemodel;
+
+<!--end of table.module-->]]>
+
+<!ENTITY % informaltable.module "INCLUDE">
+<![%informaltable.module;[
+
+<!-- Note that InformalTable is dependent on some of the entity
+     declarations that customize Table. -->
+
+<!ENTITY % local.informaltable.attrib "">
+
+<!ENTITY % informaltable.element "INCLUDE">
+<![%informaltable.element;[
+<!ELEMENT informaltable (graphic+|mediaobject+|tgroup+)>
+<!--end of informaltable.element-->]]>
+
+<!-- Frame, Colsep, and Rowsep must be repeated because
+		they are not in entities in the table module. -->
+<!-- includes TabStyle, ToCentry, ShortEntry, 
+				Orient, PgWide -->
+<!-- includes Label -->
+<!-- includes common attributes -->
+
+
+<!ENTITY % informaltable.attlist "INCLUDE">
+<![%informaltable.attlist;[
+<!ATTLIST informaltable
+		frame		(top
+				|bottom
+				|topbot
+				|all
+				|sides
+				|none)			#IMPLIED
+		colsep		%yesorno.attvals;	#IMPLIED
+		rowsep		%yesorno.attvals;	#IMPLIED
+		%common.table.attribs;
+		%tbl.table.att;
+		%local.informaltable.attrib;
+>
+<!--end of informaltable.attlist-->]]>
+<!--end of informaltable.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Synopses ............................................................. -->
+
+<!-- Synopsis ......................... -->
+
+<!ENTITY % synopsis.module "INCLUDE">
+<![%synopsis.module;[
+<!ENTITY % local.synopsis.attrib "">
+<!ENTITY % synopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % synopsis.element "INCLUDE">
+<![%synopsis.element;[
+<!ELEMENT synopsis (%para.char.mix; | graphic | mediaobject | lineannotation | co)*>
+<!--end of synopsis.element-->]]>
+
+<!ENTITY % synopsis.attlist "INCLUDE">
+<![%synopsis.attlist;[
+<!ATTLIST synopsis
+		%label.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%synopsis.role.attrib;
+		%local.synopsis.attrib;
+>
+<!--end of synopsis.attlist-->]]>
+
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!--end of synopsis.module-->]]>
+
+<!-- CmdSynopsis ...................... -->
+
+<!ENTITY % cmdsynopsis.content.module "INCLUDE">
+<![%cmdsynopsis.content.module;[
+<!ENTITY % cmdsynopsis.module "INCLUDE">
+<![%cmdsynopsis.module;[
+<!ENTITY % local.cmdsynopsis.attrib "">
+<!ENTITY % cmdsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % cmdsynopsis.element "INCLUDE">
+<![%cmdsynopsis.element;[
+<!ELEMENT cmdsynopsis ((command | arg | group | sbr)+, synopfragment*)>
+<!--end of cmdsynopsis.element-->]]>
+
+<!-- Sepchar: Character that should separate command and all 
+		top-level arguments; alternate value might be e.g., &Delta; -->
+
+
+<!ENTITY % cmdsynopsis.attlist "INCLUDE">
+<![%cmdsynopsis.attlist;[
+<!ATTLIST cmdsynopsis
+		%label.attrib;
+		sepchar		CDATA		" "
+		cmdlength	CDATA		#IMPLIED
+		%common.attrib;
+		%cmdsynopsis.role.attrib;
+		%local.cmdsynopsis.attrib;
+>
+<!--end of cmdsynopsis.attlist-->]]>
+<!--end of cmdsynopsis.module-->]]>
+
+<!ENTITY % arg.module "INCLUDE">
+<![%arg.module;[
+<!ENTITY % local.arg.attrib "">
+<!ENTITY % arg.role.attrib "%role.attrib;">
+
+<!ENTITY % arg.element "INCLUDE">
+<![%arg.element;[
+<!ELEMENT arg (#PCDATA 
+		| arg 
+		| group 
+		| option 
+		| synopfragmentref 
+		| replaceable
+		| sbr)*>
+<!--end of arg.element-->]]>
+
+<!-- Choice: Whether Arg must be supplied: Opt (optional to 
+		supply, e.g. [arg]; the default), Req (required to supply, 
+		e.g. {arg}), or Plain (required to supply, e.g. arg) -->
+<!-- Rep: whether Arg is repeatable: Norepeat (e.g. arg without 
+		ellipsis; the default), or Repeat (e.g. arg...) -->
+
+
+<!ENTITY % arg.attlist "INCLUDE">
+<![%arg.attlist;[
+<!ATTLIST arg
+		choice		(opt
+				|req
+				|plain)		'opt'
+		rep		(norepeat
+				|repeat)	'norepeat'
+		%common.attrib;
+		%arg.role.attrib;
+		%local.arg.attrib;
+>
+<!--end of arg.attlist-->]]>
+<!--end of arg.module-->]]>
+
+<!ENTITY % group.module "INCLUDE">
+<![%group.module;[
+
+<!ENTITY % local.group.attrib "">
+<!ENTITY % group.role.attrib "%role.attrib;">
+
+<!ENTITY % group.element "INCLUDE">
+<![%group.element;[
+<!ELEMENT group ((arg | group | option | synopfragmentref 
+		| replaceable | sbr)+)>
+<!--end of group.element-->]]>
+
+<!-- Choice: Whether Group must be supplied: Opt (optional to
+		supply, e.g.  [g1|g2|g3]; the default), Req (required to
+		supply, e.g.  {g1|g2|g3}), Plain (required to supply,
+		e.g.  g1|g2|g3), OptMult (can supply zero or more, e.g.
+		[[g1|g2|g3]]), or ReqMult (must supply one or more, e.g.
+		{{g1|g2|g3}}) -->
+<!-- Rep: whether Group is repeatable: Norepeat (e.g. group 
+		without ellipsis; the default), or Repeat (e.g. group...) -->
+
+
+<!ENTITY % group.attlist "INCLUDE">
+<![%group.attlist;[
+<!ATTLIST group
+		choice		(opt
+				|req
+				|plain)         'opt'
+		rep		(norepeat
+				|repeat)	'norepeat'
+		%common.attrib;
+		%group.role.attrib;
+		%local.group.attrib;
+>
+<!--end of group.attlist-->]]>
+<!--end of group.module-->]]>
+
+<!ENTITY % sbr.module "INCLUDE">
+<![%sbr.module;[
+<!ENTITY % local.sbr.attrib "">
+<!-- Synopsis break -->
+<!ENTITY % sbr.role.attrib "%role.attrib;">
+
+<!ENTITY % sbr.element "INCLUDE">
+<![%sbr.element;[
+<!ELEMENT sbr EMPTY>
+<!--end of sbr.element-->]]>
+
+<!ENTITY % sbr.attlist "INCLUDE">
+<![%sbr.attlist;[
+<!ATTLIST sbr
+		%common.attrib;
+		%sbr.role.attrib;
+		%local.sbr.attrib;
+>
+<!--end of sbr.attlist-->]]>
+<!--end of sbr.module-->]]>
+
+<!ENTITY % synopfragmentref.module "INCLUDE">
+<![%synopfragmentref.module;[
+<!ENTITY % local.synopfragmentref.attrib "">
+<!ENTITY % synopfragmentref.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragmentref.element "INCLUDE">
+<![%synopfragmentref.element;[
+<!ELEMENT synopfragmentref (#PCDATA)>
+<!--end of synopfragmentref.element-->]]>
+
+<!-- to SynopFragment of complex synopsis
+			material for separate referencing -->
+
+
+<!ENTITY % synopfragmentref.attlist "INCLUDE">
+<![%synopfragmentref.attlist;[
+<!ATTLIST synopfragmentref
+		%linkendreq.attrib;		%common.attrib;
+		%synopfragmentref.role.attrib;
+		%local.synopfragmentref.attrib;
+>
+<!--end of synopfragmentref.attlist-->]]>
+<!--end of synopfragmentref.module-->]]>
+
+<!ENTITY % synopfragment.module "INCLUDE">
+<![%synopfragment.module;[
+<!ENTITY % local.synopfragment.attrib "">
+<!ENTITY % synopfragment.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragment.element "INCLUDE">
+<![%synopfragment.element;[
+<!ELEMENT synopfragment ((arg | group)+)>
+<!--end of synopfragment.element-->]]>
+
+<!ENTITY % synopfragment.attlist "INCLUDE">
+<![%synopfragment.attlist;[
+<!ATTLIST synopfragment
+		%idreq.common.attrib;
+		%synopfragment.role.attrib;
+		%local.synopfragment.attrib;
+>
+<!--end of synopfragment.attlist-->]]>
+<!--end of synopfragment.module-->]]>
+
+<!-- Command (defined in the Inlines section, below)-->
+<!-- Option (defined in the Inlines section, below)-->
+<!-- Replaceable (defined in the Inlines section, below)-->
+<!--end of cmdsynopsis.content.module-->]]>
+
+<!-- FuncSynopsis ..................... -->
+
+<!ENTITY % funcsynopsis.content.module "INCLUDE">
+<![%funcsynopsis.content.module;[
+<!ENTITY % funcsynopsis.module "INCLUDE">
+<![%funcsynopsis.module;[
+
+<!ENTITY % local.funcsynopsis.attrib "">
+<!ENTITY % funcsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsis.element "INCLUDE">
+<![%funcsynopsis.element;[
+<!ELEMENT funcsynopsis ((funcsynopsisinfo | funcprototype)+)>
+<!--end of funcsynopsis.element-->]]>
+
+<!ENTITY % funcsynopsis.attlist "INCLUDE">
+<![%funcsynopsis.attlist;[
+<!ATTLIST funcsynopsis
+		%label.attrib;
+		%common.attrib;
+		%funcsynopsis.role.attrib;
+		%local.funcsynopsis.attrib;
+>
+<!--end of funcsynopsis.attlist-->]]>
+<!--end of funcsynopsis.module-->]]>
+
+<!ENTITY % funcsynopsisinfo.module "INCLUDE">
+<![%funcsynopsisinfo.module;[
+<!ENTITY % local.funcsynopsisinfo.attrib "">
+<!ENTITY % funcsynopsisinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsisinfo.element "INCLUDE">
+<![%funcsynopsisinfo.element;[
+<!ELEMENT funcsynopsisinfo (%cptr.char.mix; | lineannotation)*>
+<!--end of funcsynopsisinfo.element-->]]>
+
+<!ENTITY % funcsynopsisinfo.attlist "INCLUDE">
+<![%funcsynopsisinfo.attlist;[
+<!ATTLIST funcsynopsisinfo
+		%linespecific.attrib;
+		%common.attrib;
+		%funcsynopsisinfo.role.attrib;
+		%local.funcsynopsisinfo.attrib;
+>
+<!--end of funcsynopsisinfo.attlist-->]]>
+<!--end of funcsynopsisinfo.module-->]]>
+
+<!ENTITY % funcprototype.module "INCLUDE">
+<![%funcprototype.module;[
+<!ENTITY % local.funcprototype.attrib "">
+<!ENTITY % funcprototype.role.attrib "%role.attrib;">
+
+<!ENTITY % funcprototype.element "INCLUDE">
+<![%funcprototype.element;[
+<!ELEMENT funcprototype (funcdef, (void | varargs | paramdef+))>
+<!--end of funcprototype.element-->]]>
+
+<!ENTITY % funcprototype.attlist "INCLUDE">
+<![%funcprototype.attlist;[
+<!ATTLIST funcprototype
+		%common.attrib;
+		%funcprototype.role.attrib;
+		%local.funcprototype.attrib;
+>
+<!--end of funcprototype.attlist-->]]>
+<!--end of funcprototype.module-->]]>
+
+<!ENTITY % funcdef.module "INCLUDE">
+<![%funcdef.module;[
+<!ENTITY % local.funcdef.attrib "">
+<!ENTITY % funcdef.role.attrib "%role.attrib;">
+
+<!ENTITY % funcdef.element "INCLUDE">
+<![%funcdef.element;[
+<!ELEMENT funcdef (#PCDATA 
+		| replaceable 
+		| function)*>
+<!--end of funcdef.element-->]]>
+
+<!ENTITY % funcdef.attlist "INCLUDE">
+<![%funcdef.attlist;[
+<!ATTLIST funcdef
+		%common.attrib;
+		%funcdef.role.attrib;
+		%local.funcdef.attrib;
+>
+<!--end of funcdef.attlist-->]]>
+<!--end of funcdef.module-->]]>
+
+<!ENTITY % void.module "INCLUDE">
+<![%void.module;[
+<!ENTITY % local.void.attrib "">
+<!ENTITY % void.role.attrib "%role.attrib;">
+
+<!ENTITY % void.element "INCLUDE">
+<![%void.element;[
+<!ELEMENT void EMPTY>
+<!--end of void.element-->]]>
+
+<!ENTITY % void.attlist "INCLUDE">
+<![%void.attlist;[
+<!ATTLIST void
+		%common.attrib;
+		%void.role.attrib;
+		%local.void.attrib;
+>
+<!--end of void.attlist-->]]>
+<!--end of void.module-->]]>
+
+<!ENTITY % varargs.module "INCLUDE">
+<![%varargs.module;[
+<!ENTITY % local.varargs.attrib "">
+<!ENTITY % varargs.role.attrib "%role.attrib;">
+
+<!ENTITY % varargs.element "INCLUDE">
+<![%varargs.element;[
+<!ELEMENT varargs EMPTY>
+<!--end of varargs.element-->]]>
+
+<!ENTITY % varargs.attlist "INCLUDE">
+<![%varargs.attlist;[
+<!ATTLIST varargs
+		%common.attrib;
+		%varargs.role.attrib;
+		%local.varargs.attrib;
+>
+<!--end of varargs.attlist-->]]>
+<!--end of varargs.module-->]]>
+
+<!-- Processing assumes that only one Parameter will appear in a
+     ParamDef, and that FuncParams will be used at most once, for
+     providing information on the "inner parameters" for parameters that
+     are pointers to functions. -->
+
+<!ENTITY % paramdef.module "INCLUDE">
+<![%paramdef.module;[
+<!ENTITY % local.paramdef.attrib "">
+<!ENTITY % paramdef.role.attrib "%role.attrib;">
+
+<!ENTITY % paramdef.element "INCLUDE">
+<![%paramdef.element;[
+<!ELEMENT paramdef (#PCDATA 
+		| replaceable 
+		| parameter 
+		| funcparams)*>
+<!--end of paramdef.element-->]]>
+
+<!ENTITY % paramdef.attlist "INCLUDE">
+<![%paramdef.attlist;[
+<!ATTLIST paramdef
+		%common.attrib;
+		%paramdef.role.attrib;
+		%local.paramdef.attrib;
+>
+<!--end of paramdef.attlist-->]]>
+<!--end of paramdef.module-->]]>
+
+<!ENTITY % funcparams.module "INCLUDE">
+<![%funcparams.module;[
+<!ENTITY % local.funcparams.attrib "">
+<!ENTITY % funcparams.role.attrib "%role.attrib;">
+
+<!ENTITY % funcparams.element "INCLUDE">
+<![%funcparams.element;[
+<!ELEMENT funcparams (%cptr.char.mix;)*>
+<!--end of funcparams.element-->]]>
+
+<!ENTITY % funcparams.attlist "INCLUDE">
+<![%funcparams.attlist;[
+<!ATTLIST funcparams
+		%common.attrib;
+		%funcparams.role.attrib;
+		%local.funcparams.attrib;
+>
+<!--end of funcparams.attlist-->]]>
+<!--end of funcparams.module-->]]>
+
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!-- Replaceable (defined in the Inlines section, below)-->
+<!-- Function (defined in the Inlines section, below)-->
+<!-- Parameter (defined in the Inlines section, below)-->
+<!--end of funcsynopsis.content.module-->]]>
+
+<!-- ClassSynopsis ..................... -->
+
+<!ENTITY % classsynopsis.content.module "INCLUDE">
+<![%classsynopsis.content.module;[
+
+<!ENTITY % classsynopsis.module "INCLUDE">
+<![%classsynopsis.module;[
+<!ENTITY % local.classsynopsis.attrib "">
+<!ENTITY % classsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % classsynopsis.element "INCLUDE">
+<![%classsynopsis.element;[
+<!ELEMENT classsynopsis ((ooclass|oointerface|ooexception)+,
+                         (classsynopsisinfo
+                          |fieldsynopsis|%method.synop.class;)*)>
+<!--end of classsynopsis.element-->]]>
+
+<!ENTITY % classsynopsis.attlist "INCLUDE">
+<![%classsynopsis.attlist;[
+<!ATTLIST classsynopsis
+	%common.attrib;
+	%classsynopsis.role.attrib;
+	%local.classsynopsis.attrib;
+	language	CDATA	#IMPLIED
+	class	(class|interface)	"class"
+>
+<!--end of classsynopsis.attlist-->]]>
+<!--end of classsynopsis.module-->]]>
+
+<!ENTITY % classsynopsisinfo.module "INCLUDE">
+<![ %classsynopsisinfo.module; [
+<!ENTITY % local.classsynopsisinfo.attrib "">
+<!ENTITY % classsynopsisinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % classsynopsisinfo.element "INCLUDE">
+<![ %classsynopsisinfo.element; [
+<!ELEMENT classsynopsisinfo (%cptr.char.mix; | lineannotation)*>
+<!--end of classsynopsisinfo.element-->]]>
+
+<!ENTITY % classsynopsisinfo.attlist "INCLUDE">
+<![ %classsynopsisinfo.attlist; [
+<!ATTLIST classsynopsisinfo
+		%linespecific.attrib;
+		%common.attrib;
+		%classsynopsisinfo.role.attrib;
+		%local.classsynopsisinfo.attrib;
+>
+<!--end of classsynopsisinfo.attlist-->]]>
+<!--end of classsynopsisinfo.module-->]]>
+
+<!ENTITY % ooclass.module "INCLUDE">
+<![%ooclass.module;[
+<!ENTITY % local.ooclass.attrib "">
+<!ENTITY % ooclass.role.attrib "%role.attrib;">
+
+<!ENTITY % ooclass.element "INCLUDE">
+<![%ooclass.element;[
+<!ELEMENT ooclass (modifier*, classname)>
+<!--end of ooclass.element-->]]>
+
+<!ENTITY % ooclass.attlist "INCLUDE">
+<![%ooclass.attlist;[
+<!ATTLIST ooclass
+	%common.attrib;
+	%ooclass.role.attrib;
+	%local.ooclass.attrib;
+>
+<!--end of ooclass.attlist-->]]>
+<!--end of ooclass.module-->]]>
+
+<!ENTITY % oointerface.module "INCLUDE">
+<![%oointerface.module;[
+<!ENTITY % local.oointerface.attrib "">
+<!ENTITY % oointerface.role.attrib "%role.attrib;">
+
+<!ENTITY % oointerface.element "INCLUDE">
+<![%oointerface.element;[
+<!ELEMENT oointerface (modifier*, interfacename)>
+<!--end of oointerface.element-->]]>
+
+<!ENTITY % oointerface.attlist "INCLUDE">
+<![%oointerface.attlist;[
+<!ATTLIST oointerface
+	%common.attrib;
+	%oointerface.role.attrib;
+	%local.oointerface.attrib;
+>
+<!--end of oointerface.attlist-->]]>
+<!--end of oointerface.module-->]]>
+
+<!ENTITY % ooexception.module "INCLUDE">
+<![%ooexception.module;[
+<!ENTITY % local.ooexception.attrib "">
+<!ENTITY % ooexception.role.attrib "%role.attrib;">
+
+<!ENTITY % ooexception.element "INCLUDE">
+<![%ooexception.element;[
+<!ELEMENT ooexception (modifier*, exceptionname)>
+<!--end of ooexception.element-->]]>
+
+<!ENTITY % ooexception.attlist "INCLUDE">
+<![%ooexception.attlist;[
+<!ATTLIST ooexception
+	%common.attrib;
+	%ooexception.role.attrib;
+	%local.ooexception.attrib;
+>
+<!--end of ooexception.attlist-->]]>
+<!--end of ooexception.module-->]]>
+
+<!ENTITY % modifier.module "INCLUDE">
+<![%modifier.module;[
+<!ENTITY % local.modifier.attrib "">
+<!ENTITY % modifier.role.attrib "%role.attrib;">
+
+<!ENTITY % modifier.element "INCLUDE">
+<![%modifier.element;[
+<!ELEMENT modifier (%smallcptr.char.mix;)*>
+<!--end of modifier.element-->]]>
+
+<!ENTITY % modifier.attlist "INCLUDE">
+<![%modifier.attlist;[
+<!ATTLIST modifier
+	%common.attrib;
+	%modifier.role.attrib;
+	%local.modifier.attrib;
+>
+<!--end of modifier.attlist-->]]>
+<!--end of modifier.module-->]]>
+
+<!ENTITY % interfacename.module "INCLUDE">
+<![%interfacename.module;[
+<!ENTITY % local.interfacename.attrib "">
+<!ENTITY % interfacename.role.attrib "%role.attrib;">
+
+<!ENTITY % interfacename.element "INCLUDE">
+<![%interfacename.element;[
+<!ELEMENT interfacename (%smallcptr.char.mix;)*>
+<!--end of interfacename.element-->]]>
+
+<!ENTITY % interfacename.attlist "INCLUDE">
+<![%interfacename.attlist;[
+<!ATTLIST interfacename
+	%common.attrib;
+	%interfacename.role.attrib;
+	%local.interfacename.attrib;
+>
+<!--end of interfacename.attlist-->]]>
+<!--end of interfacename.module-->]]>
+
+<!ENTITY % exceptionname.module "INCLUDE">
+<![%exceptionname.module;[
+<!ENTITY % local.exceptionname.attrib "">
+<!ENTITY % exceptionname.role.attrib "%role.attrib;">
+
+<!ENTITY % exceptionname.element "INCLUDE">
+<![%exceptionname.element;[
+<!ELEMENT exceptionname (%smallcptr.char.mix;)*>
+<!--end of exceptionname.element-->]]>
+
+<!ENTITY % exceptionname.attlist "INCLUDE">
+<![%exceptionname.attlist;[
+<!ATTLIST exceptionname
+	%common.attrib;
+	%exceptionname.role.attrib;
+	%local.exceptionname.attrib;
+>
+<!--end of exceptionname.attlist-->]]>
+<!--end of exceptionname.module-->]]>
+
+<!ENTITY % fieldsynopsis.module "INCLUDE">
+<![%fieldsynopsis.module;[
+<!ENTITY % local.fieldsynopsis.attrib "">
+<!ENTITY % fieldsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % fieldsynopsis.element "INCLUDE">
+<![%fieldsynopsis.element;[
+<!ELEMENT fieldsynopsis (modifier*, type?, varname, initializer?)>
+<!--end of fieldsynopsis.element-->]]>
+
+<!ENTITY % fieldsynopsis.attlist "INCLUDE">
+<![%fieldsynopsis.attlist;[
+<!ATTLIST fieldsynopsis
+	%common.attrib;
+	%fieldsynopsis.role.attrib;
+	%local.fieldsynopsis.attrib;
+>
+<!--end of fieldsynopsis.attlist-->]]>
+<!--end of fieldsynopsis.module-->]]>
+
+<!ENTITY % initializer.module "INCLUDE">
+<![%initializer.module;[
+<!ENTITY % local.initializer.attrib "">
+<!ENTITY % initializer.role.attrib "%role.attrib;">
+
+<!ENTITY % initializer.element "INCLUDE">
+<![%initializer.element;[
+<!ELEMENT initializer (%smallcptr.char.mix;)*>
+<!--end of initializer.element-->]]>
+
+<!ENTITY % initializer.attlist "INCLUDE">
+<![%initializer.attlist;[
+<!ATTLIST initializer
+	%common.attrib;
+	%initializer.role.attrib;
+	%local.initializer.attrib;
+>
+<!--end of initializer.attlist-->]]>
+<!--end of initializer.module-->]]>
+
+<!ENTITY % constructorsynopsis.module "INCLUDE">
+<![%constructorsynopsis.module;[
+<!ENTITY % local.constructorsynopsis.attrib "">
+<!ENTITY % constructorsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % constructorsynopsis.element "INCLUDE">
+<![%constructorsynopsis.element;[
+<!ELEMENT constructorsynopsis (modifier*,
+                               methodname?,
+                               (methodparam+|void),
+                               exceptionname*)>
+<!--end of constructorsynopsis.element-->]]>
+
+<!ENTITY % constructorsynopsis.attlist "INCLUDE">
+<![%constructorsynopsis.attlist;[
+<!ATTLIST constructorsynopsis
+	%common.attrib;
+	%constructorsynopsis.role.attrib;
+	%local.constructorsynopsis.attrib;
+>
+<!--end of constructorsynopsis.attlist-->]]>
+<!--end of constructorsynopsis.module-->]]>
+
+<!ENTITY % destructorsynopsis.module "INCLUDE">
+<![%destructorsynopsis.module;[
+<!ENTITY % local.destructorsynopsis.attrib "">
+<!ENTITY % destructorsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % destructorsynopsis.element "INCLUDE">
+<![%destructorsynopsis.element;[
+<!ELEMENT destructorsynopsis (modifier*,
+                              methodname?,
+                              (methodparam+|void),
+                              exceptionname*)>
+<!--end of destructorsynopsis.element-->]]>
+
+<!ENTITY % destructorsynopsis.attlist "INCLUDE">
+<![%destructorsynopsis.attlist;[
+<!ATTLIST destructorsynopsis
+	%common.attrib;
+	%destructorsynopsis.role.attrib;
+	%local.destructorsynopsis.attrib;
+>
+<!--end of destructorsynopsis.attlist-->]]>
+<!--end of destructorsynopsis.module-->]]>
+
+<!ENTITY % methodsynopsis.module "INCLUDE">
+<![%methodsynopsis.module;[
+<!ENTITY % local.methodsynopsis.attrib "">
+<!ENTITY % methodsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % methodsynopsis.element "INCLUDE">
+<![%methodsynopsis.element;[
+<!ELEMENT methodsynopsis (modifier*,
+                          (type|void)?,
+                          methodname,
+                          (methodparam+|void),
+                          exceptionname*,
+                          modifier*)>
+<!--end of methodsynopsis.element-->]]>
+
+<!ENTITY % methodsynopsis.attlist "INCLUDE">
+<![%methodsynopsis.attlist;[
+<!ATTLIST methodsynopsis
+	%common.attrib;
+	%methodsynopsis.role.attrib;
+	%local.methodsynopsis.attrib;
+>
+<!--end of methodsynopsis.attlist-->]]>
+<!--end of methodsynopsis.module-->]]>
+
+<!ENTITY % methodname.module "INCLUDE">
+<![%methodname.module;[
+<!ENTITY % local.methodname.attrib "">
+<!ENTITY % methodname.role.attrib "%role.attrib;">
+
+<!ENTITY % methodname.element "INCLUDE">
+<![%methodname.element;[
+<!ELEMENT methodname (%smallcptr.char.mix;)*>
+<!--end of methodname.element-->]]>
+
+<!ENTITY % methodname.attlist "INCLUDE">
+<![%methodname.attlist;[
+<!ATTLIST methodname
+	%common.attrib;
+	%methodname.role.attrib;
+	%local.methodname.attrib;
+>
+<!--end of methodname.attlist-->]]>
+<!--end of methodname.module-->]]>
+
+<!ENTITY % methodparam.module "INCLUDE">
+<![%methodparam.module;[
+<!ENTITY % local.methodparam.attrib "">
+<!ENTITY % methodparam.role.attrib "%role.attrib;">
+
+<!ENTITY % methodparam.element "INCLUDE">
+<![%methodparam.element;[
+<!ELEMENT methodparam (modifier*,
+                       type?,
+                       ((parameter,initializer?)|funcparams),
+                       modifier*)>
+<!--end of methodparam.element-->]]>
+
+<!ENTITY % methodparam.attlist "INCLUDE">
+<![%methodparam.attlist;[
+<!ATTLIST methodparam
+	%common.attrib;
+	%methodparam.role.attrib;
+	%local.methodparam.attrib;
+	choice		(opt
+			|req
+			|plain)		"req"
+	rep		(norepeat
+			|repeat)	"norepeat"
+>
+<!--end of methodparam.attlist-->]]>
+<!--end of methodparam.module-->]]>
+<!--end of classsynopsis.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Document information entities and elements ........................... -->
+
+<!-- The document information elements include some elements that are
+     currently used only in the document hierarchy module. They are
+     defined here so that they will be available for use in customized
+     document hierarchies. -->
+
+<!-- .................................. -->
+
+<!ENTITY % docinfo.content.module "INCLUDE">
+<![%docinfo.content.module;[
+
+<!-- Ackno ............................ -->
+
+<!ENTITY % ackno.module "INCLUDE">
+<![%ackno.module;[
+<!ENTITY % local.ackno.attrib "">
+<!ENTITY % ackno.role.attrib "%role.attrib;">
+
+<!ENTITY % ackno.element "INCLUDE">
+<![%ackno.element;[
+<!ELEMENT ackno (%docinfo.char.mix;)*>
+<!--end of ackno.element-->]]>
+
+<!ENTITY % ackno.attlist "INCLUDE">
+<![%ackno.attlist;[
+<!ATTLIST ackno
+		%common.attrib;
+		%ackno.role.attrib;
+		%local.ackno.attrib;
+>
+<!--end of ackno.attlist-->]]>
+<!--end of ackno.module-->]]>
+
+<!-- Address .......................... -->
+
+<!ENTITY % address.content.module "INCLUDE">
+<![%address.content.module;[
+<!ENTITY % address.module "INCLUDE">
+<![%address.module;[
+<!ENTITY % local.address.attrib "">
+<!ENTITY % address.role.attrib "%role.attrib;">
+
+<!ENTITY % address.element "INCLUDE">
+<![%address.element;[
+<!ELEMENT address (#PCDATA|%person.ident.mix;
+		|street|pob|postcode|city|state|country|phone
+		|fax|email|otheraddr)*>
+<!--end of address.element-->]]>
+
+<!ENTITY % address.attlist "INCLUDE">
+<![%address.attlist;[
+<!ATTLIST address
+		%linespecific.attrib;
+		%common.attrib;
+		%address.role.attrib;
+		%local.address.attrib;
+>
+<!--end of address.attlist-->]]>
+<!--end of address.module-->]]>
+
+  <!ENTITY % street.module "INCLUDE">
+  <![%street.module;[
+ <!ENTITY % local.street.attrib "">
+  <!ENTITY % street.role.attrib "%role.attrib;">
+  
+<!ENTITY % street.element "INCLUDE">
+<![%street.element;[
+<!ELEMENT street (%docinfo.char.mix;)*>
+<!--end of street.element-->]]>
+  
+<!ENTITY % street.attlist "INCLUDE">
+<![%street.attlist;[
+<!ATTLIST street
+		%common.attrib;
+		%street.role.attrib;
+		%local.street.attrib;
+>
+<!--end of street.attlist-->]]>
+  <!--end of street.module-->]]>
+
+  <!ENTITY % pob.module "INCLUDE">
+  <![%pob.module;[
+  <!ENTITY % local.pob.attrib "">
+  <!ENTITY % pob.role.attrib "%role.attrib;">
+  
+<!ENTITY % pob.element "INCLUDE">
+<![%pob.element;[
+<!ELEMENT pob (%docinfo.char.mix;)*>
+<!--end of pob.element-->]]>
+  
+<!ENTITY % pob.attlist "INCLUDE">
+<![%pob.attlist;[
+<!ATTLIST pob
+		%common.attrib;
+		%pob.role.attrib;
+		%local.pob.attrib;
+>
+<!--end of pob.attlist-->]]>
+  <!--end of pob.module-->]]>
+
+  <!ENTITY % postcode.module "INCLUDE">
+  <![%postcode.module;[
+  <!ENTITY % local.postcode.attrib "">
+  <!ENTITY % postcode.role.attrib "%role.attrib;">
+  
+<!ENTITY % postcode.element "INCLUDE">
+<![%postcode.element;[
+<!ELEMENT postcode (%docinfo.char.mix;)*>
+<!--end of postcode.element-->]]>
+  
+<!ENTITY % postcode.attlist "INCLUDE">
+<![%postcode.attlist;[
+<!ATTLIST postcode
+		%common.attrib;
+		%postcode.role.attrib;
+		%local.postcode.attrib;
+>
+<!--end of postcode.attlist-->]]>
+  <!--end of postcode.module-->]]>
+
+  <!ENTITY % city.module "INCLUDE">
+  <![%city.module;[
+  <!ENTITY % local.city.attrib "">
+  <!ENTITY % city.role.attrib "%role.attrib;">
+  
+<!ENTITY % city.element "INCLUDE">
+<![%city.element;[
+<!ELEMENT city (%docinfo.char.mix;)*>
+<!--end of city.element-->]]>
+  
+<!ENTITY % city.attlist "INCLUDE">
+<![%city.attlist;[
+<!ATTLIST city
+		%common.attrib;
+		%city.role.attrib;
+		%local.city.attrib;
+>
+<!--end of city.attlist-->]]>
+  <!--end of city.module-->]]>
+
+  <!ENTITY % state.module "INCLUDE">
+  <![%state.module;[
+  <!ENTITY % local.state.attrib "">
+  <!ENTITY % state.role.attrib "%role.attrib;">
+  
+<!ENTITY % state.element "INCLUDE">
+<![%state.element;[
+<!ELEMENT state (%docinfo.char.mix;)*>
+<!--end of state.element-->]]>
+  
+<!ENTITY % state.attlist "INCLUDE">
+<![%state.attlist;[
+<!ATTLIST state
+		%common.attrib;
+		%state.role.attrib;
+		%local.state.attrib;
+>
+<!--end of state.attlist-->]]>
+  <!--end of state.module-->]]>
+
+  <!ENTITY % country.module "INCLUDE">
+  <![%country.module;[
+  <!ENTITY % local.country.attrib "">
+  <!ENTITY % country.role.attrib "%role.attrib;">
+  
+<!ENTITY % country.element "INCLUDE">
+<![%country.element;[
+<!ELEMENT country (%docinfo.char.mix;)*>
+<!--end of country.element-->]]>
+  
+<!ENTITY % country.attlist "INCLUDE">
+<![%country.attlist;[
+<!ATTLIST country
+		%common.attrib;
+		%country.role.attrib;
+		%local.country.attrib;
+>
+<!--end of country.attlist-->]]>
+  <!--end of country.module-->]]>
+
+  <!ENTITY % phone.module "INCLUDE">
+  <![%phone.module;[
+  <!ENTITY % local.phone.attrib "">
+  <!ENTITY % phone.role.attrib "%role.attrib;">
+  
+<!ENTITY % phone.element "INCLUDE">
+<![%phone.element;[
+<!ELEMENT phone (%docinfo.char.mix;)*>
+<!--end of phone.element-->]]>
+  
+<!ENTITY % phone.attlist "INCLUDE">
+<![%phone.attlist;[
+<!ATTLIST phone
+		%common.attrib;
+		%phone.role.attrib;
+		%local.phone.attrib;
+>
+<!--end of phone.attlist-->]]>
+  <!--end of phone.module-->]]>
+
+  <!ENTITY % fax.module "INCLUDE">
+  <![%fax.module;[
+  <!ENTITY % local.fax.attrib "">
+  <!ENTITY % fax.role.attrib "%role.attrib;">
+  
+<!ENTITY % fax.element "INCLUDE">
+<![%fax.element;[
+<!ELEMENT fax (%docinfo.char.mix;)*>
+<!--end of fax.element-->]]>
+  
+<!ENTITY % fax.attlist "INCLUDE">
+<![%fax.attlist;[
+<!ATTLIST fax
+		%common.attrib;
+		%fax.role.attrib;
+		%local.fax.attrib;
+>
+<!--end of fax.attlist-->]]>
+  <!--end of fax.module-->]]>
+
+  <!-- Email (defined in the Inlines section, below)-->
+
+  <!ENTITY % otheraddr.module "INCLUDE">
+  <![%otheraddr.module;[
+  <!ENTITY % local.otheraddr.attrib "">
+  <!ENTITY % otheraddr.role.attrib "%role.attrib;">
+  
+<!ENTITY % otheraddr.element "INCLUDE">
+<![%otheraddr.element;[
+<!ELEMENT otheraddr (%docinfo.char.mix;)*>
+<!--end of otheraddr.element-->]]>
+  
+<!ENTITY % otheraddr.attlist "INCLUDE">
+<![%otheraddr.attlist;[
+<!ATTLIST otheraddr
+		%common.attrib;
+		%otheraddr.role.attrib;
+		%local.otheraddr.attrib;
+>
+<!--end of otheraddr.attlist-->]]>
+  <!--end of otheraddr.module-->]]>
+<!--end of address.content.module-->]]>
+
+<!-- Affiliation ...................... -->
+
+<!ENTITY % affiliation.content.module "INCLUDE">
+<![%affiliation.content.module;[
+<!ENTITY % affiliation.module "INCLUDE">
+<![%affiliation.module;[
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+
+<!ENTITY % affiliation.element "INCLUDE">
+<![%affiliation.element;[
+<!ELEMENT affiliation (shortaffil?, jobtitle*, orgname?, orgdiv*,
+		address*)>
+<!--end of affiliation.element-->]]>
+
+<!ENTITY % affiliation.attlist "INCLUDE">
+<![%affiliation.attlist;[
+<!ATTLIST affiliation
+		%common.attrib;
+		%affiliation.role.attrib;
+		%local.affiliation.attrib;
+>
+<!--end of affiliation.attlist-->]]>
+<!--end of affiliation.module-->]]>
+
+  <!ENTITY % shortaffil.module "INCLUDE">
+  <![%shortaffil.module;[
+  <!ENTITY % local.shortaffil.attrib "">
+  <!ENTITY % shortaffil.role.attrib "%role.attrib;">
+  
+<!ENTITY % shortaffil.element "INCLUDE">
+<![%shortaffil.element;[
+<!ELEMENT shortaffil (%docinfo.char.mix;)*>
+<!--end of shortaffil.element-->]]>
+  
+<!ENTITY % shortaffil.attlist "INCLUDE">
+<![%shortaffil.attlist;[
+<!ATTLIST shortaffil
+		%common.attrib;
+		%shortaffil.role.attrib;
+		%local.shortaffil.attrib;
+>
+<!--end of shortaffil.attlist-->]]>
+  <!--end of shortaffil.module-->]]>
+
+  <!ENTITY % jobtitle.module "INCLUDE">
+  <![%jobtitle.module;[
+  <!ENTITY % local.jobtitle.attrib "">
+  <!ENTITY % jobtitle.role.attrib "%role.attrib;">
+  
+<!ENTITY % jobtitle.element "INCLUDE">
+<![%jobtitle.element;[
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!--end of jobtitle.element-->]]>
+  
+<!ENTITY % jobtitle.attlist "INCLUDE">
+<![%jobtitle.attlist;[
+<!ATTLIST jobtitle
+		%common.attrib;
+		%jobtitle.role.attrib;
+		%local.jobtitle.attrib;
+>
+<!--end of jobtitle.attlist-->]]>
+  <!--end of jobtitle.module-->]]>
+
+  <!-- OrgName (defined elsewhere in this section)-->
+
+  <!ENTITY % orgdiv.module "INCLUDE">
+  <![%orgdiv.module;[
+  <!ENTITY % local.orgdiv.attrib "">
+  <!ENTITY % orgdiv.role.attrib "%role.attrib;">
+  
+<!ENTITY % orgdiv.element "INCLUDE">
+<![%orgdiv.element;[
+<!ELEMENT orgdiv (%docinfo.char.mix;)*>
+<!--end of orgdiv.element-->]]>
+  
+<!ENTITY % orgdiv.attlist "INCLUDE">
+<![%orgdiv.attlist;[
+<!ATTLIST orgdiv
+		%common.attrib;
+		%orgdiv.role.attrib;
+		%local.orgdiv.attrib;
+>
+<!--end of orgdiv.attlist-->]]>
+  <!--end of orgdiv.module-->]]>
+
+  <!-- Address (defined elsewhere in this section)-->
+<!--end of affiliation.content.module-->]]>
+
+<!-- ArtPageNums ...................... -->
+
+<!ENTITY % artpagenums.module "INCLUDE">
+<![%artpagenums.module;[
+<!ENTITY % local.artpagenums.attrib "">
+<!ENTITY % artpagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % artpagenums.element "INCLUDE">
+<![%artpagenums.element;[
+<!ELEMENT artpagenums (%docinfo.char.mix;)*>
+<!--end of artpagenums.element-->]]>
+
+<!ENTITY % artpagenums.attlist "INCLUDE">
+<![%artpagenums.attlist;[
+<!ATTLIST artpagenums
+		%common.attrib;
+		%artpagenums.role.attrib;
+		%local.artpagenums.attrib;
+>
+<!--end of artpagenums.attlist-->]]>
+<!--end of artpagenums.module-->]]>
+
+<!-- Author ........................... -->
+
+<!ENTITY % author.module "INCLUDE">
+<![%author.module;[
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+
+<!ENTITY % author.element "INCLUDE">
+<![%author.element;[
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!--end of author.element-->]]>
+
+<!ENTITY % author.attlist "INCLUDE">
+<![%author.attlist;[
+<!ATTLIST author
+		%common.attrib;
+		%author.role.attrib;
+		%local.author.attrib;
+>
+<!--end of author.attlist-->]]>
+<!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of author.module-->]]>
+
+<!-- AuthorGroup ...................... -->
+
+<!ENTITY % authorgroup.content.module "INCLUDE">
+<![%authorgroup.content.module;[
+<!ENTITY % authorgroup.module "INCLUDE">
+<![%authorgroup.module;[
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % authorgroup.element "INCLUDE">
+<![%authorgroup.element;[
+<!ELEMENT authorgroup ((author|editor|collab|corpauthor|othercredit)+)>
+<!--end of authorgroup.element-->]]>
+
+<!ENTITY % authorgroup.attlist "INCLUDE">
+<![%authorgroup.attlist;[
+<!ATTLIST authorgroup
+		%common.attrib;
+		%authorgroup.role.attrib;
+		%local.authorgroup.attrib;
+>
+<!--end of authorgroup.attlist-->]]>
+<!--end of authorgroup.module-->]]>
+
+  <!-- Author (defined elsewhere in this section)-->
+  <!-- Editor (defined elsewhere in this section)-->
+
+  <!ENTITY % collab.content.module "INCLUDE">
+  <![%collab.content.module;[
+  <!ENTITY % collab.module "INCLUDE">
+  <![%collab.module;[
+  <!ENTITY % local.collab.attrib "">
+  <!ENTITY % collab.role.attrib "%role.attrib;">
+  
+<!ENTITY % collab.element "INCLUDE">
+<![%collab.element;[
+<!ELEMENT collab (collabname, affiliation*)>
+<!--end of collab.element-->]]>
+  
+<!ENTITY % collab.attlist "INCLUDE">
+<![%collab.attlist;[
+<!ATTLIST collab
+		%common.attrib;
+		%collab.role.attrib;
+		%local.collab.attrib;
+>
+<!--end of collab.attlist-->]]>
+  <!--end of collab.module-->]]>
+
+    <!ENTITY % collabname.module "INCLUDE">
+  <![%collabname.module;[
+  <!ENTITY % local.collabname.attrib "">
+  <!ENTITY % collabname.role.attrib "%role.attrib;">
+    
+<!ENTITY % collabname.element "INCLUDE">
+<![%collabname.element;[
+<!ELEMENT collabname (%docinfo.char.mix;)*>
+<!--end of collabname.element-->]]>
+    
+<!ENTITY % collabname.attlist "INCLUDE">
+<![%collabname.attlist;[
+<!ATTLIST collabname
+		%common.attrib;
+		%collabname.role.attrib;
+		%local.collabname.attrib;
+>
+<!--end of collabname.attlist-->]]>
+    <!--end of collabname.module-->]]>
+
+    <!-- Affiliation (defined elsewhere in this section)-->
+  <!--end of collab.content.module-->]]>
+
+  <!-- CorpAuthor (defined elsewhere in this section)-->
+  <!-- OtherCredit (defined elsewhere in this section)-->
+
+<!--end of authorgroup.content.module-->]]>
+
+<!-- AuthorInitials ................... -->
+
+<!ENTITY % authorinitials.module "INCLUDE">
+<![%authorinitials.module;[
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+
+<!ENTITY % authorinitials.element "INCLUDE">
+<![%authorinitials.element;[
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!--end of authorinitials.element-->]]>
+
+<!ENTITY % authorinitials.attlist "INCLUDE">
+<![%authorinitials.attlist;[
+<!ATTLIST authorinitials
+		%common.attrib;
+		%authorinitials.role.attrib;
+		%local.authorinitials.attrib;
+>
+<!--end of authorinitials.attlist-->]]>
+<!--end of authorinitials.module-->]]>
+
+<!-- ConfGroup ........................ -->
+
+<!ENTITY % confgroup.content.module "INCLUDE">
+<![%confgroup.content.module;[
+<!ENTITY % confgroup.module "INCLUDE">
+<![%confgroup.module;[
+<!ENTITY % local.confgroup.attrib "">
+<!ENTITY % confgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % confgroup.element "INCLUDE">
+<![%confgroup.element;[
+<!ELEMENT confgroup ((confdates|conftitle|confnum|address|confsponsor)*)>
+<!--end of confgroup.element-->]]>
+
+<!ENTITY % confgroup.attlist "INCLUDE">
+<![%confgroup.attlist;[
+<!ATTLIST confgroup
+		%common.attrib;
+		%confgroup.role.attrib;
+		%local.confgroup.attrib;
+>
+<!--end of confgroup.attlist-->]]>
+<!--end of confgroup.module-->]]>
+
+  <!ENTITY % confdates.module "INCLUDE">
+  <![%confdates.module;[
+  <!ENTITY % local.confdates.attrib "">
+  <!ENTITY % confdates.role.attrib "%role.attrib;">
+  
+<!ENTITY % confdates.element "INCLUDE">
+<![%confdates.element;[
+<!ELEMENT confdates (%docinfo.char.mix;)*>
+<!--end of confdates.element-->]]>
+  
+<!ENTITY % confdates.attlist "INCLUDE">
+<![%confdates.attlist;[
+<!ATTLIST confdates
+		%common.attrib;
+		%confdates.role.attrib;
+		%local.confdates.attrib;
+>
+<!--end of confdates.attlist-->]]>
+  <!--end of confdates.module-->]]>
+
+  <!ENTITY % conftitle.module "INCLUDE">
+  <![%conftitle.module;[
+  <!ENTITY % local.conftitle.attrib "">
+  <!ENTITY % conftitle.role.attrib "%role.attrib;">
+  
+<!ENTITY % conftitle.element "INCLUDE">
+<![%conftitle.element;[
+<!ELEMENT conftitle (%docinfo.char.mix;)*>
+<!--end of conftitle.element-->]]>
+  
+<!ENTITY % conftitle.attlist "INCLUDE">
+<![%conftitle.attlist;[
+<!ATTLIST conftitle
+		%common.attrib;
+		%conftitle.role.attrib;
+		%local.conftitle.attrib;
+>
+<!--end of conftitle.attlist-->]]>
+  <!--end of conftitle.module-->]]>
+
+  <!ENTITY % confnum.module "INCLUDE">
+  <![%confnum.module;[
+  <!ENTITY % local.confnum.attrib "">
+  <!ENTITY % confnum.role.attrib "%role.attrib;">
+  
+<!ENTITY % confnum.element "INCLUDE">
+<![%confnum.element;[
+<!ELEMENT confnum (%docinfo.char.mix;)*>
+<!--end of confnum.element-->]]>
+  
+<!ENTITY % confnum.attlist "INCLUDE">
+<![%confnum.attlist;[
+<!ATTLIST confnum
+		%common.attrib;
+		%confnum.role.attrib;
+		%local.confnum.attrib;
+>
+<!--end of confnum.attlist-->]]>
+  <!--end of confnum.module-->]]>
+
+  <!-- Address (defined elsewhere in this section)-->
+
+  <!ENTITY % confsponsor.module "INCLUDE">
+  <![%confsponsor.module;[
+  <!ENTITY % local.confsponsor.attrib "">
+  <!ENTITY % confsponsor.role.attrib "%role.attrib;">
+  
+<!ENTITY % confsponsor.element "INCLUDE">
+<![%confsponsor.element;[
+<!ELEMENT confsponsor (%docinfo.char.mix;)*>
+<!--end of confsponsor.element-->]]>
+  
+<!ENTITY % confsponsor.attlist "INCLUDE">
+<![%confsponsor.attlist;[
+<!ATTLIST confsponsor
+		%common.attrib;
+		%confsponsor.role.attrib;
+		%local.confsponsor.attrib;
+>
+<!--end of confsponsor.attlist-->]]>
+  <!--end of confsponsor.module-->]]>
+<!--end of confgroup.content.module-->]]>
+
+<!-- ContractNum ...................... -->
+
+<!ENTITY % contractnum.module "INCLUDE">
+<![%contractnum.module;[
+<!ENTITY % local.contractnum.attrib "">
+<!ENTITY % contractnum.role.attrib "%role.attrib;">
+
+<!ENTITY % contractnum.element "INCLUDE">
+<![%contractnum.element;[
+<!ELEMENT contractnum (%docinfo.char.mix;)*>
+<!--end of contractnum.element-->]]>
+
+<!ENTITY % contractnum.attlist "INCLUDE">
+<![%contractnum.attlist;[
+<!ATTLIST contractnum
+		%common.attrib;
+		%contractnum.role.attrib;
+		%local.contractnum.attrib;
+>
+<!--end of contractnum.attlist-->]]>
+<!--end of contractnum.module-->]]>
+
+<!-- ContractSponsor .................. -->
+
+<!ENTITY % contractsponsor.module "INCLUDE">
+<![%contractsponsor.module;[
+<!ENTITY % local.contractsponsor.attrib "">
+<!ENTITY % contractsponsor.role.attrib "%role.attrib;">
+
+<!ENTITY % contractsponsor.element "INCLUDE">
+<![%contractsponsor.element;[
+<!ELEMENT contractsponsor (%docinfo.char.mix;)*>
+<!--end of contractsponsor.element-->]]>
+
+<!ENTITY % contractsponsor.attlist "INCLUDE">
+<![%contractsponsor.attlist;[
+<!ATTLIST contractsponsor
+		%common.attrib;
+		%contractsponsor.role.attrib;
+		%local.contractsponsor.attrib;
+>
+<!--end of contractsponsor.attlist-->]]>
+<!--end of contractsponsor.module-->]]>
+
+<!-- Copyright ........................ -->
+
+<!ENTITY % copyright.content.module "INCLUDE">
+<![%copyright.content.module;[
+<!ENTITY % copyright.module "INCLUDE">
+<![%copyright.module;[
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+
+<!ENTITY % copyright.element "INCLUDE">
+<![%copyright.element;[
+<!ELEMENT copyright (year+, holder*)>
+<!--end of copyright.element-->]]>
+
+<!ENTITY % copyright.attlist "INCLUDE">
+<![%copyright.attlist;[
+<!ATTLIST copyright
+		%common.attrib;
+		%copyright.role.attrib;
+		%local.copyright.attrib;
+>
+<!--end of copyright.attlist-->]]>
+<!--end of copyright.module-->]]>
+
+  <!ENTITY % year.module "INCLUDE">
+  <![%year.module;[
+  <!ENTITY % local.year.attrib "">
+  <!ENTITY % year.role.attrib "%role.attrib;">
+  
+<!ENTITY % year.element "INCLUDE">
+<![%year.element;[
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!--end of year.element-->]]>
+  
+<!ENTITY % year.attlist "INCLUDE">
+<![%year.attlist;[
+<!ATTLIST year
+		%common.attrib;
+		%year.role.attrib;
+		%local.year.attrib;
+>
+<!--end of year.attlist-->]]>
+  <!--end of year.module-->]]>
+
+  <!ENTITY % holder.module "INCLUDE">
+  <![%holder.module;[
+  <!ENTITY % local.holder.attrib "">
+  <!ENTITY % holder.role.attrib "%role.attrib;">
+  
+<!ENTITY % holder.element "INCLUDE">
+<![%holder.element;[
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!--end of holder.element-->]]>
+  
+<!ENTITY % holder.attlist "INCLUDE">
+<![%holder.attlist;[
+<!ATTLIST holder
+		%common.attrib;
+		%holder.role.attrib;
+		%local.holder.attrib;
+>
+<!--end of holder.attlist-->]]>
+  <!--end of holder.module-->]]>
+<!--end of copyright.content.module-->]]>
+
+<!-- CorpAuthor ....................... -->
+
+<!ENTITY % corpauthor.module "INCLUDE">
+<![%corpauthor.module;[
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+
+<!ENTITY % corpauthor.element "INCLUDE">
+<![%corpauthor.element;[
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!--end of corpauthor.element-->]]>
+
+<!ENTITY % corpauthor.attlist "INCLUDE">
+<![%corpauthor.attlist;[
+<!ATTLIST corpauthor
+		%common.attrib;
+		%corpauthor.role.attrib;
+		%local.corpauthor.attrib;
+>
+<!--end of corpauthor.attlist-->]]>
+<!--end of corpauthor.module-->]]>
+
+<!-- CorpName ......................... -->
+
+<!ENTITY % corpname.module "INCLUDE">
+<![%corpname.module;[
+<!ENTITY % local.corpname.attrib "">
+
+<!ENTITY % corpname.element "INCLUDE">
+<![%corpname.element;[
+<!ELEMENT corpname (%docinfo.char.mix;)*>
+<!--end of corpname.element-->]]>
+<!ENTITY % corpname.role.attrib "%role.attrib;">
+
+<!ENTITY % corpname.attlist "INCLUDE">
+<![%corpname.attlist;[
+<!ATTLIST corpname
+		%common.attrib;
+		%corpname.role.attrib;
+		%local.corpname.attrib;
+>
+<!--end of corpname.attlist-->]]>
+<!--end of corpname.module-->]]>
+
+<!-- Date ............................. -->
+
+<!ENTITY % date.module "INCLUDE">
+<![%date.module;[
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+
+<!ENTITY % date.element "INCLUDE">
+<![%date.element;[
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!--end of date.element-->]]>
+
+<!ENTITY % date.attlist "INCLUDE">
+<![%date.attlist;[
+<!ATTLIST date
+		%common.attrib;
+		%date.role.attrib;
+		%local.date.attrib;
+>
+<!--end of date.attlist-->]]>
+<!--end of date.module-->]]>
+
+<!-- Edition .......................... -->
+
+<!ENTITY % edition.module "INCLUDE">
+<![%edition.module;[
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+
+<!ENTITY % edition.element "INCLUDE">
+<![%edition.element;[
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!--end of edition.element-->]]>
+
+<!ENTITY % edition.attlist "INCLUDE">
+<![%edition.attlist;[
+<!ATTLIST edition
+		%common.attrib;
+		%edition.role.attrib;
+		%local.edition.attrib;
+>
+<!--end of edition.attlist-->]]>
+<!--end of edition.module-->]]>
+
+<!-- Editor ........................... -->
+
+<!ENTITY % editor.module "INCLUDE">
+<![%editor.module;[
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+
+<!ENTITY % editor.element "INCLUDE">
+<![%editor.element;[
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!--end of editor.element-->]]>
+
+<!ENTITY % editor.attlist "INCLUDE">
+<![%editor.attlist;[
+<!ATTLIST editor
+		%common.attrib;
+		%editor.role.attrib;
+		%local.editor.attrib;
+>
+<!--end of editor.attlist-->]]>
+  <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of editor.module-->]]>
+
+<!-- ISBN ............................. -->
+
+<!ENTITY % isbn.module "INCLUDE">
+<![%isbn.module;[
+<!ENTITY % local.isbn.attrib "">
+<!ENTITY % isbn.role.attrib "%role.attrib;">
+
+<!ENTITY % isbn.element "INCLUDE">
+<![%isbn.element;[
+<!ELEMENT isbn (%docinfo.char.mix;)*>
+<!--end of isbn.element-->]]>
+
+<!ENTITY % isbn.attlist "INCLUDE">
+<![%isbn.attlist;[
+<!ATTLIST isbn
+		%common.attrib;
+		%isbn.role.attrib;
+		%local.isbn.attrib;
+>
+<!--end of isbn.attlist-->]]>
+<!--end of isbn.module-->]]>
+
+<!-- ISSN ............................. -->
+
+<!ENTITY % issn.module "INCLUDE">
+<![%issn.module;[
+<!ENTITY % local.issn.attrib "">
+<!ENTITY % issn.role.attrib "%role.attrib;">
+
+<!ENTITY % issn.element "INCLUDE">
+<![%issn.element;[
+<!ELEMENT issn (%docinfo.char.mix;)*>
+<!--end of issn.element-->]]>
+
+<!ENTITY % issn.attlist "INCLUDE">
+<![%issn.attlist;[
+<!ATTLIST issn
+		%common.attrib;
+		%issn.role.attrib;
+		%local.issn.attrib;
+>
+<!--end of issn.attlist-->]]>
+<!--end of issn.module-->]]>
+
+<!-- InvPartNumber .................... -->
+
+<!ENTITY % invpartnumber.module "INCLUDE">
+<![%invpartnumber.module;[
+<!ENTITY % local.invpartnumber.attrib "">
+<!ENTITY % invpartnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % invpartnumber.element "INCLUDE">
+<![%invpartnumber.element;[
+<!ELEMENT invpartnumber (%docinfo.char.mix;)*>
+<!--end of invpartnumber.element-->]]>
+
+<!ENTITY % invpartnumber.attlist "INCLUDE">
+<![%invpartnumber.attlist;[
+<!ATTLIST invpartnumber
+		%common.attrib;
+		%invpartnumber.role.attrib;
+		%local.invpartnumber.attrib;
+>
+<!--end of invpartnumber.attlist-->]]>
+<!--end of invpartnumber.module-->]]>
+
+<!-- IssueNum ......................... -->
+
+<!ENTITY % issuenum.module "INCLUDE">
+<![%issuenum.module;[
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+
+<!ENTITY % issuenum.element "INCLUDE">
+<![%issuenum.element;[
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!--end of issuenum.element-->]]>
+
+<!ENTITY % issuenum.attlist "INCLUDE">
+<![%issuenum.attlist;[
+<!ATTLIST issuenum
+		%common.attrib;
+		%issuenum.role.attrib;
+		%local.issuenum.attrib;
+>
+<!--end of issuenum.attlist-->]]>
+<!--end of issuenum.module-->]]>
+
+<!-- LegalNotice ...................... -->
+
+<!ENTITY % legalnotice.module "INCLUDE">
+<![%legalnotice.module;[
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+
+<!ENTITY % legalnotice.element "INCLUDE">
+<![%legalnotice.element;[
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!--end of legalnotice.element-->]]>
+
+<!ENTITY % legalnotice.attlist "INCLUDE">
+<![%legalnotice.attlist;[
+<!ATTLIST legalnotice
+		%common.attrib;
+		%legalnotice.role.attrib;
+		%local.legalnotice.attrib;
+>
+<!--end of legalnotice.attlist-->]]>
+<!--end of legalnotice.module-->]]>
+
+<!-- ModeSpec ......................... -->
+
+<!ENTITY % modespec.module "INCLUDE">
+<![%modespec.module;[
+<!ENTITY % local.modespec.attrib "">
+<!ENTITY % modespec.role.attrib "%role.attrib;">
+
+<!ENTITY % modespec.element "INCLUDE">
+<![%modespec.element;[
+<!ELEMENT modespec (%docinfo.char.mix;)*>
+<!--end of modespec.element-->]]>
+
+<!-- Application: Type of action required for completion
+		of the links to which the ModeSpec is relevant (e.g.,
+		retrieval query) -->
+
+
+<!ENTITY % modespec.attlist "INCLUDE">
+<![%modespec.attlist;[
+<!ATTLIST modespec
+		application	NOTATION
+				(%notation.class;)	#IMPLIED
+		%common.attrib;
+		%modespec.role.attrib;
+		%local.modespec.attrib;
+>
+<!--end of modespec.attlist-->]]>
+<!--end of modespec.module-->]]>
+
+<!-- OrgName .......................... -->
+
+<!ENTITY % orgname.module "INCLUDE">
+<![%orgname.module;[
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+
+<!ENTITY % orgname.element "INCLUDE">
+<![%orgname.element;[
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!--end of orgname.element-->]]>
+
+<!ENTITY % orgname.attlist "INCLUDE">
+<![%orgname.attlist;[
+<!ATTLIST orgname
+		%common.attrib;
+		%orgname.role.attrib;
+		%local.orgname.attrib;
+>
+<!--end of orgname.attlist-->]]>
+<!--end of orgname.module-->]]>
+
+<!-- OtherCredit ...................... -->
+
+<!ENTITY % othercredit.module "INCLUDE">
+<![%othercredit.module;[
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+
+<!ENTITY % othercredit.element "INCLUDE">
+<![%othercredit.element;[
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!--end of othercredit.element-->]]>
+
+<!ENTITY % othercredit.attlist "INCLUDE">
+<![%othercredit.attlist;[
+<!ATTLIST othercredit
+		%common.attrib;
+		%othercredit.role.attrib;
+		%local.othercredit.attrib;
+>
+<!--end of othercredit.attlist-->]]>
+  <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of othercredit.module-->]]>
+
+<!-- PageNums ......................... -->
+
+<!ENTITY % pagenums.module "INCLUDE">
+<![%pagenums.module;[
+<!ENTITY % local.pagenums.attrib "">
+<!ENTITY % pagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % pagenums.element "INCLUDE">
+<![%pagenums.element;[
+<!ELEMENT pagenums (%docinfo.char.mix;)*>
+<!--end of pagenums.element-->]]>
+
+<!ENTITY % pagenums.attlist "INCLUDE">
+<![%pagenums.attlist;[
+<!ATTLIST pagenums
+		%common.attrib;
+		%pagenums.role.attrib;
+		%local.pagenums.attrib;
+>
+<!--end of pagenums.attlist-->]]>
+<!--end of pagenums.module-->]]>
+
+<!-- Personal identity elements ....... -->
+
+<!-- These elements are used only within Author, Editor, and 
+OtherCredit. -->
+
+<!ENTITY % person.ident.module "INCLUDE">
+<![%person.ident.module;[
+  <!ENTITY % contrib.module "INCLUDE">
+  <![%contrib.module;[
+  <!ENTITY % local.contrib.attrib "">
+  <!ENTITY % contrib.role.attrib "%role.attrib;">
+  
+<!ENTITY % contrib.element "INCLUDE">
+<![%contrib.element;[
+<!ELEMENT contrib (%docinfo.char.mix;)*>
+<!--end of contrib.element-->]]>
+  
+<!ENTITY % contrib.attlist "INCLUDE">
+<![%contrib.attlist;[
+<!ATTLIST contrib
+		%common.attrib;
+		%contrib.role.attrib;
+		%local.contrib.attrib;
+>
+<!--end of contrib.attlist-->]]>
+  <!--end of contrib.module-->]]>
+
+  <!ENTITY % firstname.module "INCLUDE">
+  <![%firstname.module;[
+  <!ENTITY % local.firstname.attrib "">
+  <!ENTITY % firstname.role.attrib "%role.attrib;">
+  
+<!ENTITY % firstname.element "INCLUDE">
+<![%firstname.element;[
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!--end of firstname.element-->]]>
+  
+<!ENTITY % firstname.attlist "INCLUDE">
+<![%firstname.attlist;[
+<!ATTLIST firstname
+		%common.attrib;
+		%firstname.role.attrib;
+		%local.firstname.attrib;
+>
+<!--end of firstname.attlist-->]]>
+  <!--end of firstname.module-->]]>
+
+  <!ENTITY % honorific.module "INCLUDE">
+  <![%honorific.module;[
+  <!ENTITY % local.honorific.attrib "">
+  <!ENTITY % honorific.role.attrib "%role.attrib;">
+  
+<!ENTITY % honorific.element "INCLUDE">
+<![%honorific.element;[
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!--end of honorific.element-->]]>
+  
+<!ENTITY % honorific.attlist "INCLUDE">
+<![%honorific.attlist;[
+<!ATTLIST honorific
+		%common.attrib;
+		%honorific.role.attrib;
+		%local.honorific.attrib;
+>
+<!--end of honorific.attlist-->]]>
+  <!--end of honorific.module-->]]>
+
+  <!ENTITY % lineage.module "INCLUDE">
+  <![%lineage.module;[
+  <!ENTITY % local.lineage.attrib "">
+  <!ENTITY % lineage.role.attrib "%role.attrib;">
+  
+<!ENTITY % lineage.element "INCLUDE">
+<![%lineage.element;[
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!--end of lineage.element-->]]>
+  
+<!ENTITY % lineage.attlist "INCLUDE">
+<![%lineage.attlist;[
+<!ATTLIST lineage
+		%common.attrib;
+		%lineage.role.attrib;
+		%local.lineage.attrib;
+>
+<!--end of lineage.attlist-->]]>
+  <!--end of lineage.module-->]]>
+
+  <!ENTITY % othername.module "INCLUDE">
+  <![%othername.module;[
+  <!ENTITY % local.othername.attrib "">
+  <!ENTITY % othername.role.attrib "%role.attrib;">
+  
+<!ENTITY % othername.element "INCLUDE">
+<![%othername.element;[
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!--end of othername.element-->]]>
+  
+<!ENTITY % othername.attlist "INCLUDE">
+<![%othername.attlist;[
+<!ATTLIST othername
+		%common.attrib;
+		%othername.role.attrib;
+		%local.othername.attrib;
+>
+<!--end of othername.attlist-->]]>
+  <!--end of othername.module-->]]>
+
+  <!ENTITY % surname.module "INCLUDE">
+  <![%surname.module;[
+  <!ENTITY % local.surname.attrib "">
+  <!ENTITY % surname.role.attrib "%role.attrib;">
+  
+<!ENTITY % surname.element "INCLUDE">
+<![%surname.element;[
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!--end of surname.element-->]]>
+  
+<!ENTITY % surname.attlist "INCLUDE">
+<![%surname.attlist;[
+<!ATTLIST surname
+		%common.attrib;
+		%surname.role.attrib;
+		%local.surname.attrib;
+>
+<!--end of surname.attlist-->]]>
+  <!--end of surname.module-->]]>
+<!--end of person.ident.module-->]]>
+
+<!-- PrintHistory ..................... -->
+
+<!ENTITY % printhistory.module "INCLUDE">
+<![%printhistory.module;[
+<!ENTITY % local.printhistory.attrib "">
+<!ENTITY % printhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % printhistory.element "INCLUDE">
+<![%printhistory.element;[
+<!ELEMENT printhistory ((%para.class;)+)>
+<!--end of printhistory.element-->]]>
+
+<!ENTITY % printhistory.attlist "INCLUDE">
+<![%printhistory.attlist;[
+<!ATTLIST printhistory
+		%common.attrib;
+		%printhistory.role.attrib;
+		%local.printhistory.attrib;
+>
+<!--end of printhistory.attlist-->]]>
+<!--end of printhistory.module-->]]>
+
+<!-- ProductName ...................... -->
+
+<!ENTITY % productname.module "INCLUDE">
+<![%productname.module;[
+<!ENTITY % local.productname.attrib "">
+<!ENTITY % productname.role.attrib "%role.attrib;">
+
+<!ENTITY % productname.element "INCLUDE">
+<![%productname.element;[
+<!ELEMENT productname (%para.char.mix;)*>
+<!--end of productname.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % productname.attlist "INCLUDE">
+<![%productname.attlist;[
+<!ATTLIST productname
+		class		(service
+				|trade
+				|registered
+				|copyright)	'trade'
+		%common.attrib;
+		%productname.role.attrib;
+		%local.productname.attrib;
+>
+<!--end of productname.attlist-->]]>
+<!--end of productname.module-->]]>
+
+<!-- ProductNumber .................... -->
+
+<!ENTITY % productnumber.module "INCLUDE">
+<![%productnumber.module;[
+<!ENTITY % local.productnumber.attrib "">
+<!ENTITY % productnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % productnumber.element "INCLUDE">
+<![%productnumber.element;[
+<!ELEMENT productnumber (%docinfo.char.mix;)*>
+<!--end of productnumber.element-->]]>
+
+<!ENTITY % productnumber.attlist "INCLUDE">
+<![%productnumber.attlist;[
+<!ATTLIST productnumber
+		%common.attrib;
+		%productnumber.role.attrib;
+		%local.productnumber.attrib;
+>
+<!--end of productnumber.attlist-->]]>
+<!--end of productnumber.module-->]]>
+
+<!-- PubDate .......................... -->
+
+<!ENTITY % pubdate.module "INCLUDE">
+<![%pubdate.module;[
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+
+<!ENTITY % pubdate.element "INCLUDE">
+<![%pubdate.element;[
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!--end of pubdate.element-->]]>
+
+<!ENTITY % pubdate.attlist "INCLUDE">
+<![%pubdate.attlist;[
+<!ATTLIST pubdate
+		%common.attrib;
+		%pubdate.role.attrib;
+		%local.pubdate.attrib;
+>
+<!--end of pubdate.attlist-->]]>
+<!--end of pubdate.module-->]]>
+
+<!-- Publisher ........................ -->
+
+<!ENTITY % publisher.content.module "INCLUDE">
+<![%publisher.content.module;[
+<!ENTITY % publisher.module "INCLUDE">
+<![%publisher.module;[
+<!ENTITY % local.publisher.attrib "">
+<!ENTITY % publisher.role.attrib "%role.attrib;">
+
+<!ENTITY % publisher.element "INCLUDE">
+<![%publisher.element;[
+<!ELEMENT publisher (publishername, address*)>
+<!--end of publisher.element-->]]>
+
+<!ENTITY % publisher.attlist "INCLUDE">
+<![%publisher.attlist;[
+<!ATTLIST publisher
+		%common.attrib;
+		%publisher.role.attrib;
+		%local.publisher.attrib;
+>
+<!--end of publisher.attlist-->]]>
+<!--end of publisher.module-->]]>
+
+  <!ENTITY % publishername.module "INCLUDE">
+  <![%publishername.module;[
+  <!ENTITY % local.publishername.attrib "">
+  <!ENTITY % publishername.role.attrib "%role.attrib;">
+  
+<!ENTITY % publishername.element "INCLUDE">
+<![%publishername.element;[
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!--end of publishername.element-->]]>
+  
+<!ENTITY % publishername.attlist "INCLUDE">
+<![%publishername.attlist;[
+<!ATTLIST publishername
+		%common.attrib;
+		%publishername.role.attrib;
+		%local.publishername.attrib;
+>
+<!--end of publishername.attlist-->]]>
+  <!--end of publishername.module-->]]>
+
+  <!-- Address (defined elsewhere in this section)-->
+<!--end of publisher.content.module-->]]>
+
+<!-- PubsNumber ....................... -->
+
+<!ENTITY % pubsnumber.module "INCLUDE">
+<![%pubsnumber.module;[
+<!ENTITY % local.pubsnumber.attrib "">
+<!ENTITY % pubsnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % pubsnumber.element "INCLUDE">
+<![%pubsnumber.element;[
+<!ELEMENT pubsnumber (%docinfo.char.mix;)*>
+<!--end of pubsnumber.element-->]]>
+
+<!ENTITY % pubsnumber.attlist "INCLUDE">
+<![%pubsnumber.attlist;[
+<!ATTLIST pubsnumber
+		%common.attrib;
+		%pubsnumber.role.attrib;
+		%local.pubsnumber.attrib;
+>
+<!--end of pubsnumber.attlist-->]]>
+<!--end of pubsnumber.module-->]]>
+
+<!-- ReleaseInfo ...................... -->
+
+<!ENTITY % releaseinfo.module "INCLUDE">
+<![%releaseinfo.module;[
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % releaseinfo.element "INCLUDE">
+<![%releaseinfo.element;[
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!--end of releaseinfo.element-->]]>
+
+<!ENTITY % releaseinfo.attlist "INCLUDE">
+<![%releaseinfo.attlist;[
+<!ATTLIST releaseinfo
+		%common.attrib;
+		%releaseinfo.role.attrib;
+		%local.releaseinfo.attrib;
+>
+<!--end of releaseinfo.attlist-->]]>
+<!--end of releaseinfo.module-->]]>
+
+<!-- RevHistory ....................... -->
+
+<!ENTITY % revhistory.content.module "INCLUDE">
+<![%revhistory.content.module;[
+<!ENTITY % revhistory.module "INCLUDE">
+<![%revhistory.module;[
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % revhistory.element "INCLUDE">
+<![%revhistory.element;[
+<!ELEMENT revhistory (revision+)>
+<!--end of revhistory.element-->]]>
+
+<!ENTITY % revhistory.attlist "INCLUDE">
+<![%revhistory.attlist;[
+<!ATTLIST revhistory
+		%common.attrib;
+		%revhistory.role.attrib;
+		%local.revhistory.attrib;
+>
+<!--end of revhistory.attlist-->]]>
+<!--end of revhistory.module-->]]>
+
+<!ENTITY % revision.module "INCLUDE">
+<![%revision.module;[
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+
+<!ENTITY % revision.element "INCLUDE">
+<![%revision.element;[
+<!ELEMENT revision (revnumber, date, authorinitials*, 
+                    (revremark|revdescription)?)>
+<!--end of revision.element-->]]>
+
+<!ENTITY % revision.attlist "INCLUDE">
+<![%revision.attlist;[
+<!ATTLIST revision
+		%common.attrib;
+		%revision.role.attrib;
+		%local.revision.attrib;
+>
+<!--end of revision.attlist-->]]>
+<!--end of revision.module-->]]>
+
+<!ENTITY % revnumber.module "INCLUDE">
+<![%revnumber.module;[
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % revnumber.element "INCLUDE">
+<![%revnumber.element;[
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!--end of revnumber.element-->]]>
+
+<!ENTITY % revnumber.attlist "INCLUDE">
+<![%revnumber.attlist;[
+<!ATTLIST revnumber
+		%common.attrib;
+		%revnumber.role.attrib;
+		%local.revnumber.attrib;
+>
+<!--end of revnumber.attlist-->]]>
+<!--end of revnumber.module-->]]>
+
+<!-- Date (defined elsewhere in this section)-->
+<!-- AuthorInitials (defined elsewhere in this section)-->
+
+<!ENTITY % revremark.module "INCLUDE">
+<![%revremark.module;[
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+
+<!ENTITY % revremark.element "INCLUDE">
+<![%revremark.element;[
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!--end of revremark.element-->]]>
+
+<!ENTITY % revremark.attlist "INCLUDE">
+<![%revremark.attlist;[
+<!ATTLIST revremark
+		%common.attrib;
+		%revremark.role.attrib;
+		%local.revremark.attrib;
+>
+<!--end of revremark.attlist-->]]>
+<!--end of revremark.module-->]]>
+
+<!ENTITY % revdescription.module "INCLUDE">
+<![ %revdescription.module; [
+<!ENTITY % local.revdescription.attrib "">
+<!ENTITY % revdescription.role.attrib "%role.attrib;">
+
+<!ENTITY % revdescription.element "INCLUDE">
+<![ %revdescription.element; [
+<!ELEMENT revdescription ((%revdescription.mix;)+)>
+<!--end of revdescription.element-->]]>
+
+<!ENTITY % revdescription.attlist "INCLUDE">
+<![ %revdescription.attlist; [
+<!ATTLIST revdescription
+		%common.attrib;
+		%revdescription.role.attrib;
+		%local.revdescription.attrib;
+>
+<!--end of revdescription.attlist-->]]>
+<!--end of revdescription.module-->]]>
+<!--end of revhistory.content.module-->]]>
+
+<!-- SeriesVolNums .................... -->
+
+<!ENTITY % seriesvolnums.module "INCLUDE">
+<![%seriesvolnums.module;[
+<!ENTITY % local.seriesvolnums.attrib "">
+<!ENTITY % seriesvolnums.role.attrib "%role.attrib;">
+
+<!ENTITY % seriesvolnums.element "INCLUDE">
+<![%seriesvolnums.element;[
+<!ELEMENT seriesvolnums (%docinfo.char.mix;)*>
+<!--end of seriesvolnums.element-->]]>
+
+<!ENTITY % seriesvolnums.attlist "INCLUDE">
+<![%seriesvolnums.attlist;[
+<!ATTLIST seriesvolnums
+		%common.attrib;
+		%seriesvolnums.role.attrib;
+		%local.seriesvolnums.attrib;
+>
+<!--end of seriesvolnums.attlist-->]]>
+<!--end of seriesvolnums.module-->]]>
+
+<!-- VolumeNum ........................ -->
+
+<!ENTITY % volumenum.module "INCLUDE">
+<![%volumenum.module;[
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+
+<!ENTITY % volumenum.element "INCLUDE">
+<![%volumenum.element;[
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!--end of volumenum.element-->]]>
+
+<!ENTITY % volumenum.attlist "INCLUDE">
+<![%volumenum.attlist;[
+<!ATTLIST volumenum
+		%common.attrib;
+		%volumenum.role.attrib;
+		%local.volumenum.attrib;
+>
+<!--end of volumenum.attlist-->]]>
+<!--end of volumenum.module-->]]>
+
+<!-- .................................. -->
+
+<!--end of docinfo.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Inline, link, and ubiquitous elements ................................ -->
+
+<!-- Technical and computer terms ......................................... -->
+
+<!ENTITY % accel.module "INCLUDE">
+<![%accel.module;[
+<!ENTITY % local.accel.attrib "">
+<!ENTITY % accel.role.attrib "%role.attrib;">
+
+<!ENTITY % accel.element "INCLUDE">
+<![%accel.element;[
+<!ELEMENT accel (%smallcptr.char.mix;)*>
+<!--end of accel.element-->]]>
+
+<!ENTITY % accel.attlist "INCLUDE">
+<![%accel.attlist;[
+<!ATTLIST accel
+		%common.attrib;
+		%accel.role.attrib;
+		%local.accel.attrib;
+>
+<!--end of accel.attlist-->]]>
+<!--end of accel.module-->]]>
+
+<!ENTITY % action.module "INCLUDE">
+<![%action.module;[
+<!ENTITY % local.action.attrib "">
+<!ENTITY % action.role.attrib "%role.attrib;">
+
+<!ENTITY % action.element "INCLUDE">
+<![%action.element;[
+<!ELEMENT action (%smallcptr.char.mix;)*>
+<!--end of action.element-->]]>
+
+<!ENTITY % action.attlist "INCLUDE">
+<![%action.attlist;[
+<!ATTLIST action
+		%moreinfo.attrib;
+		%common.attrib;
+		%action.role.attrib;
+		%local.action.attrib;
+>
+<!--end of action.attlist-->]]>
+<!--end of action.module-->]]>
+
+<!ENTITY % application.module "INCLUDE">
+<![%application.module;[
+<!ENTITY % local.application.attrib "">
+<!ENTITY % application.role.attrib "%role.attrib;">
+
+<!ENTITY % application.element "INCLUDE">
+<![%application.element;[
+<!ELEMENT application (%para.char.mix;)*>
+<!--end of application.element-->]]>
+
+<!ENTITY % application.attlist "INCLUDE">
+<![%application.attlist;[
+<!ATTLIST application
+		class 		(hardware
+				|software)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%application.role.attrib;
+		%local.application.attrib;
+>
+<!--end of application.attlist-->]]>
+<!--end of application.module-->]]>
+
+<!ENTITY % classname.module "INCLUDE">
+<![%classname.module;[
+<!ENTITY % local.classname.attrib "">
+<!ENTITY % classname.role.attrib "%role.attrib;">
+
+<!ENTITY % classname.element "INCLUDE">
+<![%classname.element;[
+<!ELEMENT classname (%smallcptr.char.mix;)*>
+<!--end of classname.element-->]]>
+
+<!ENTITY % classname.attlist "INCLUDE">
+<![%classname.attlist;[
+<!ATTLIST classname
+		%common.attrib;
+		%classname.role.attrib;
+		%local.classname.attrib;
+>
+<!--end of classname.attlist-->]]>
+<!--end of classname.module-->]]>
+
+<!ENTITY % co.module "INCLUDE">
+<![%co.module;[
+<!ENTITY % local.co.attrib "">
+<!-- CO is a callout area of the LineColumn unit type (a single character 
+     position); the position is directly indicated by the location of CO. -->
+<!ENTITY % co.role.attrib "%role.attrib;">
+
+<!ENTITY % co.element "INCLUDE">
+<![%co.element;[
+<!ELEMENT co EMPTY>
+<!--end of co.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+
+
+<!ENTITY % co.attlist "INCLUDE">
+<![%co.attlist;[
+<!ATTLIST co
+		%label.attrib;
+		%linkends.attrib;
+		%idreq.common.attrib;
+		%co.role.attrib;
+		%local.co.attrib;
+>
+<!--end of co.attlist-->]]>
+<!--end of co.module-->]]>
+
+<!ENTITY % command.module "INCLUDE">
+<![%command.module;[
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+
+<!ENTITY % command.element "INCLUDE">
+<![%command.element;[
+<!ELEMENT command (%cptr.char.mix;)*>
+<!--end of command.element-->]]>
+
+<!ENTITY % command.attlist "INCLUDE">
+<![%command.attlist;[
+<!ATTLIST command
+		%moreinfo.attrib;
+		%common.attrib;
+		%command.role.attrib;
+		%local.command.attrib;
+>
+<!--end of command.attlist-->]]>
+<!--end of command.module-->]]>
+
+<!ENTITY % computeroutput.module "INCLUDE">
+<![%computeroutput.module;[
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+
+<!ENTITY % computeroutput.element "INCLUDE">
+<![%computeroutput.element;[
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!--end of computeroutput.element-->]]>
+
+<!ENTITY % computeroutput.attlist "INCLUDE">
+<![%computeroutput.attlist;[
+<!ATTLIST computeroutput
+		%moreinfo.attrib;
+		%common.attrib;
+		%computeroutput.role.attrib;
+		%local.computeroutput.attrib;
+>
+<!--end of computeroutput.attlist-->]]>
+<!--end of computeroutput.module-->]]>
+
+<!ENTITY % database.module "INCLUDE">
+<![%database.module;[
+<!ENTITY % local.database.attrib "">
+<!ENTITY % database.role.attrib "%role.attrib;">
+
+<!ENTITY % database.element "INCLUDE">
+<![%database.element;[
+<!ELEMENT database (%smallcptr.char.mix;)*>
+<!--end of database.element-->]]>
+
+<!-- Class: Type of database the element names; no default -->
+
+
+<!ENTITY % database.attlist "INCLUDE">
+<![%database.attlist;[
+<!ATTLIST database
+		class 		(name
+				|table
+				|field
+				|key1
+				|key2
+				|record)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%database.role.attrib;
+		%local.database.attrib;
+>
+<!--end of database.attlist-->]]>
+<!--end of database.module-->]]>
+
+<!ENTITY % email.module "INCLUDE">
+<![%email.module;[
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+
+<!ENTITY % email.element "INCLUDE">
+<![%email.element;[
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!--end of email.element-->]]>
+
+<!ENTITY % email.attlist "INCLUDE">
+<![%email.attlist;[
+<!ATTLIST email
+		%common.attrib;
+		%email.role.attrib;
+		%local.email.attrib;
+>
+<!--end of email.attlist-->]]>
+<!--end of email.module-->]]>
+
+<!ENTITY % envar.module "INCLUDE">
+<![%envar.module;[
+<!ENTITY % local.envar.attrib "">
+<!ENTITY % envar.role.attrib "%role.attrib;">
+
+<!ENTITY % envar.element "INCLUDE">
+<![%envar.element;[
+<!ELEMENT envar (%smallcptr.char.mix;)*>
+<!--end of envar.element-->]]>
+
+<!ENTITY % envar.attlist "INCLUDE">
+<![%envar.attlist;[
+<!ATTLIST envar
+		%common.attrib;
+		%envar.role.attrib;
+		%local.envar.attrib;
+>
+<!--end of envar.attlist-->]]>
+<!--end of envar.module-->]]>
+
+
+<!ENTITY % errorcode.module "INCLUDE">
+<![%errorcode.module;[
+<!ENTITY % local.errorcode.attrib "">
+<!ENTITY % errorcode.role.attrib "%role.attrib;">
+
+<!ENTITY % errorcode.element "INCLUDE">
+<![%errorcode.element;[
+<!ELEMENT errorcode (%smallcptr.char.mix;)*>
+<!--end of errorcode.element-->]]>
+
+<!ENTITY % errorcode.attlist "INCLUDE">
+<![%errorcode.attlist;[
+<!ATTLIST errorcode
+		%moreinfo.attrib;
+		%common.attrib;
+		%errorcode.role.attrib;
+		%local.errorcode.attrib;
+>
+<!--end of errorcode.attlist-->]]>
+<!--end of errorcode.module-->]]>
+
+<!ENTITY % errorname.module "INCLUDE">
+<![%errorname.module;[
+<!ENTITY % local.errorname.attrib "">
+<!ENTITY % errorname.role.attrib "%role.attrib;">
+
+<!ENTITY % errorname.element "INCLUDE">
+<![%errorname.element;[
+<!ELEMENT errorname (%smallcptr.char.mix;)*>
+<!--end of errorname.element-->]]>
+
+<!ENTITY % errorname.attlist "INCLUDE">
+<![%errorname.attlist;[
+<!ATTLIST errorname
+		%common.attrib;
+		%errorname.role.attrib;
+		%local.errorname.attrib;
+>
+<!--end of errorname.attlist-->]]>
+<!--end of errorname.module-->]]>
+
+<!ENTITY % errortype.module "INCLUDE">
+<![%errortype.module;[
+<!ENTITY % local.errortype.attrib "">
+<!ENTITY % errortype.role.attrib "%role.attrib;">
+
+<!ENTITY % errortype.element "INCLUDE">
+<![%errortype.element;[
+<!ELEMENT errortype (%smallcptr.char.mix;)*>
+<!--end of errortype.element-->]]>
+
+<!ENTITY % errortype.attlist "INCLUDE">
+<![%errortype.attlist;[
+<!ATTLIST errortype
+		%common.attrib;
+		%errortype.role.attrib;
+		%local.errortype.attrib;
+>
+<!--end of errortype.attlist-->]]>
+<!--end of errortype.module-->]]>
+
+<!ENTITY % filename.module "INCLUDE">
+<![%filename.module;[
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+
+<!ENTITY % filename.element "INCLUDE">
+<![%filename.element;[
+<!ELEMENT filename (%smallcptr.char.mix;)*>
+<!--end of filename.element-->]]>
+
+<!-- Class: Type of filename the element names; no default -->
+<!-- Path: Search path (possibly system-specific) in which 
+		file can be found -->
+
+
+<!ENTITY % filename.attlist "INCLUDE">
+<![%filename.attlist;[
+<!ATTLIST filename
+		class		(headerfile
+                                |devicefile
+                                |libraryfile
+                                |directory
+				|symlink)       #IMPLIED
+		path		CDATA		#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%filename.role.attrib;
+		%local.filename.attrib;
+>
+<!--end of filename.attlist-->]]>
+<!--end of filename.module-->]]>
+
+<!ENTITY % function.module "INCLUDE">
+<![%function.module;[
+<!ENTITY % local.function.attrib "">
+<!ENTITY % function.role.attrib "%role.attrib;">
+
+<!ENTITY % function.element "INCLUDE">
+<![%function.element;[
+<!ELEMENT function (%cptr.char.mix;)*>
+<!--end of function.element-->]]>
+
+<!ENTITY % function.attlist "INCLUDE">
+<![%function.attlist;[
+<!ATTLIST function
+		%moreinfo.attrib;
+		%common.attrib;
+		%function.role.attrib;
+		%local.function.attrib;
+>
+<!--end of function.attlist-->]]>
+<!--end of function.module-->]]>
+
+<!ENTITY % guibutton.module "INCLUDE">
+<![%guibutton.module;[
+<!ENTITY % local.guibutton.attrib "">
+<!ENTITY % guibutton.role.attrib "%role.attrib;">
+
+<!ENTITY % guibutton.element "INCLUDE">
+<![%guibutton.element;[
+<!ELEMENT guibutton (%smallcptr.char.mix;|accel)*>
+<!--end of guibutton.element-->]]>
+
+<!ENTITY % guibutton.attlist "INCLUDE">
+<![%guibutton.attlist;[
+<!ATTLIST guibutton
+		%moreinfo.attrib;
+		%common.attrib;
+		%guibutton.role.attrib;
+		%local.guibutton.attrib;
+>
+<!--end of guibutton.attlist-->]]>
+<!--end of guibutton.module-->]]>
+
+<!ENTITY % guiicon.module "INCLUDE">
+<![%guiicon.module;[
+<!ENTITY % local.guiicon.attrib "">
+<!ENTITY % guiicon.role.attrib "%role.attrib;">
+
+<!ENTITY % guiicon.element "INCLUDE">
+<![%guiicon.element;[
+<!ELEMENT guiicon (%smallcptr.char.mix;|accel)*>
+<!--end of guiicon.element-->]]>
+
+<!ENTITY % guiicon.attlist "INCLUDE">
+<![%guiicon.attlist;[
+<!ATTLIST guiicon
+		%moreinfo.attrib;
+		%common.attrib;
+		%guiicon.role.attrib;
+		%local.guiicon.attrib;
+>
+<!--end of guiicon.attlist-->]]>
+<!--end of guiicon.module-->]]>
+
+<!ENTITY % guilabel.module "INCLUDE">
+<![%guilabel.module;[
+<!ENTITY % local.guilabel.attrib "">
+<!ENTITY % guilabel.role.attrib "%role.attrib;">
+
+<!ENTITY % guilabel.element "INCLUDE">
+<![%guilabel.element;[
+<!ELEMENT guilabel (%smallcptr.char.mix;|accel)*>
+<!--end of guilabel.element-->]]>
+
+<!ENTITY % guilabel.attlist "INCLUDE">
+<![%guilabel.attlist;[
+<!ATTLIST guilabel
+		%moreinfo.attrib;
+		%common.attrib;
+		%guilabel.role.attrib;
+		%local.guilabel.attrib;
+>
+<!--end of guilabel.attlist-->]]>
+<!--end of guilabel.module-->]]>
+
+<!ENTITY % guimenu.module "INCLUDE">
+<![%guimenu.module;[
+<!ENTITY % local.guimenu.attrib "">
+<!ENTITY % guimenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenu.element "INCLUDE">
+<![%guimenu.element;[
+<!ELEMENT guimenu (%smallcptr.char.mix;|accel)*>
+<!--end of guimenu.element-->]]>
+
+<!ENTITY % guimenu.attlist "INCLUDE">
+<![%guimenu.attlist;[
+<!ATTLIST guimenu
+		%moreinfo.attrib;
+		%common.attrib;
+		%guimenu.role.attrib;
+		%local.guimenu.attrib;
+>
+<!--end of guimenu.attlist-->]]>
+<!--end of guimenu.module-->]]>
+
+<!ENTITY % guimenuitem.module "INCLUDE">
+<![%guimenuitem.module;[
+<!ENTITY % local.guimenuitem.attrib "">
+<!ENTITY % guimenuitem.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenuitem.element "INCLUDE">
+<![%guimenuitem.element;[
+<!ELEMENT guimenuitem (%smallcptr.char.mix;|accel)*>
+<!--end of guimenuitem.element-->]]>
+
+<!ENTITY % guimenuitem.attlist "INCLUDE">
+<![%guimenuitem.attlist;[
+<!ATTLIST guimenuitem
+		%moreinfo.attrib;
+		%common.attrib;
+		%guimenuitem.role.attrib;
+		%local.guimenuitem.attrib;
+>
+<!--end of guimenuitem.attlist-->]]>
+<!--end of guimenuitem.module-->]]>
+
+<!ENTITY % guisubmenu.module "INCLUDE">
+<![%guisubmenu.module;[
+<!ENTITY % local.guisubmenu.attrib "">
+<!ENTITY % guisubmenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guisubmenu.element "INCLUDE">
+<![%guisubmenu.element;[
+<!ELEMENT guisubmenu (%smallcptr.char.mix;|accel)*>
+<!--end of guisubmenu.element-->]]>
+
+<!ENTITY % guisubmenu.attlist "INCLUDE">
+<![%guisubmenu.attlist;[
+<!ATTLIST guisubmenu
+		%moreinfo.attrib;
+		%common.attrib;
+		%guisubmenu.role.attrib;
+		%local.guisubmenu.attrib;
+>
+<!--end of guisubmenu.attlist-->]]>
+<!--end of guisubmenu.module-->]]>
+
+<!ENTITY % hardware.module "INCLUDE">
+<![%hardware.module;[
+<!ENTITY % local.hardware.attrib "">
+<!ENTITY % hardware.role.attrib "%role.attrib;">
+
+<!ENTITY % hardware.element "INCLUDE">
+<![%hardware.element;[
+<!ELEMENT hardware (%smallcptr.char.mix;)*>
+<!--end of hardware.element-->]]>
+
+<!ENTITY % hardware.attlist "INCLUDE">
+<![%hardware.attlist;[
+<!ATTLIST hardware
+		%moreinfo.attrib;
+		%common.attrib;
+		%hardware.role.attrib;
+		%local.hardware.attrib;
+>
+<!--end of hardware.attlist-->]]>
+<!--end of hardware.module-->]]>
+
+<!ENTITY % interface.module "INCLUDE">
+<![%interface.module;[
+<!ENTITY % local.interface.attrib "">
+<!ENTITY % interface.role.attrib "%role.attrib;">
+
+<!ENTITY % interface.element "INCLUDE">
+<![%interface.element;[
+<!ELEMENT interface (%smallcptr.char.mix;|accel)*>
+<!--end of interface.element-->]]>
+
+<!-- Class: Type of the Interface item; no default -->
+
+
+<!ENTITY % interface.attlist "INCLUDE">
+<![%interface.attlist;[
+<!ATTLIST interface
+		%moreinfo.attrib;
+		%common.attrib;
+		%interface.role.attrib;
+		%local.interface.attrib;
+>
+<!--end of interface.attlist-->]]>
+<!--end of interface.module-->]]>
+
+<!ENTITY % keycap.module "INCLUDE">
+<![%keycap.module;[
+<!ENTITY % local.keycap.attrib "">
+<!ENTITY % keycap.role.attrib "%role.attrib;">
+
+<!ENTITY % keycap.element "INCLUDE">
+<![%keycap.element;[
+<!ELEMENT keycap (%smallcptr.char.mix;)*>
+<!--end of keycap.element-->]]>
+
+<!ENTITY % keycap.attlist "INCLUDE">
+<![%keycap.attlist;[
+<!ATTLIST keycap
+		%moreinfo.attrib;
+		%common.attrib;
+		%keycap.role.attrib;
+		%local.keycap.attrib;
+>
+<!--end of keycap.attlist-->]]>
+<!--end of keycap.module-->]]>
+
+<!ENTITY % keycode.module "INCLUDE">
+<![%keycode.module;[
+<!ENTITY % local.keycode.attrib "">
+<!ENTITY % keycode.role.attrib "%role.attrib;">
+
+<!ENTITY % keycode.element "INCLUDE">
+<![%keycode.element;[
+<!ELEMENT keycode (%smallcptr.char.mix;)*>
+<!--end of keycode.element-->]]>
+
+<!ENTITY % keycode.attlist "INCLUDE">
+<![%keycode.attlist;[
+<!ATTLIST keycode
+		%common.attrib;
+		%keycode.role.attrib;
+		%local.keycode.attrib;
+>
+<!--end of keycode.attlist-->]]>
+<!--end of keycode.module-->]]>
+
+<!ENTITY % keycombo.module "INCLUDE">
+<![%keycombo.module;[
+<!ENTITY % local.keycombo.attrib "">
+<!ENTITY % keycombo.role.attrib "%role.attrib;">
+
+<!ENTITY % keycombo.element "INCLUDE">
+<![%keycombo.element;[
+<!ELEMENT keycombo ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of keycombo.element-->]]>
+
+<!ENTITY % keycombo.attlist "INCLUDE">
+<![%keycombo.attlist;[
+<!ATTLIST keycombo
+		%keyaction.attrib;
+		%moreinfo.attrib;
+		%common.attrib;
+		%keycombo.role.attrib;
+		%local.keycombo.attrib;
+>
+<!--end of keycombo.attlist-->]]>
+<!--end of keycombo.module-->]]>
+
+<!ENTITY % keysym.module "INCLUDE">
+<![%keysym.module;[
+<!ENTITY % local.keysym.attrib "">
+<!ENTITY % keysysm.role.attrib "%role.attrib;">
+
+<!ENTITY % keysym.element "INCLUDE">
+<![%keysym.element;[
+<!ELEMENT keysym (%smallcptr.char.mix;)*>
+<!--end of keysym.element-->]]>
+
+<!ENTITY % keysym.attlist "INCLUDE">
+<![%keysym.attlist;[
+<!ATTLIST keysym
+		%common.attrib;
+		%keysysm.role.attrib;
+		%local.keysym.attrib;
+>
+<!--end of keysym.attlist-->]]>
+<!--end of keysym.module-->]]>
+
+<!ENTITY % lineannotation.module "INCLUDE">
+<![%lineannotation.module;[
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+
+<!ENTITY % lineannotation.element "INCLUDE">
+<![%lineannotation.element;[
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!--end of lineannotation.element-->]]>
+
+<!ENTITY % lineannotation.attlist "INCLUDE">
+<![%lineannotation.attlist;[
+<!ATTLIST lineannotation
+		%common.attrib;
+		%lineannotation.role.attrib;
+		%local.lineannotation.attrib;
+>
+<!--end of lineannotation.attlist-->]]>
+<!--end of lineannotation.module-->]]>
+
+<!ENTITY % literal.module "INCLUDE">
+<![%literal.module;[
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+
+<!ENTITY % literal.element "INCLUDE">
+<![%literal.element;[
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!--end of literal.element-->]]>
+
+<!ENTITY % literal.attlist "INCLUDE">
+<![%literal.attlist;[
+<!ATTLIST literal
+		%moreinfo.attrib;
+		%common.attrib;
+		%literal.role.attrib;
+		%local.literal.attrib;
+>
+<!--end of literal.attlist-->]]>
+<!--end of literal.module-->]]>
+
+<!ENTITY % constant.module "INCLUDE">
+<![ %constant.module; [
+<!ENTITY % local.constant.attrib "">
+<!ENTITY % constant.role.attrib "%role.attrib;">
+
+<!ENTITY % constant.element "INCLUDE">
+<![ %constant.element; [
+<!ELEMENT constant (%smallcptr.char.mix;)*>
+<!--end of constant.element-->]]>
+
+<!ENTITY % constant.attlist "INCLUDE">
+<![ %constant.attlist; [
+<!ATTLIST constant
+		%common.attrib;
+		%constant.role.attrib;
+		%local.constant.attrib;
+		class	(limit)		#IMPLIED
+>
+<!--end of constant.attlist-->]]>
+<!--end of constant.module-->]]>
+
+<!ENTITY % varname.module "INCLUDE">
+<![ %varname.module; [
+<!ENTITY % local.varname.attrib "">
+<!ENTITY % varname.role.attrib "%role.attrib;">
+
+<!ENTITY % varname.element "INCLUDE">
+<![ %varname.element; [
+<!ELEMENT varname (%smallcptr.char.mix;)*>
+<!--end of varname.element-->]]>
+
+<!ENTITY % varname.attlist "INCLUDE">
+<![ %varname.attlist; [
+<!ATTLIST varname
+		%common.attrib;
+		%varname.role.attrib;
+		%local.varname.attrib;
+>
+<!--end of varname.attlist-->]]>
+<!--end of varname.module-->]]>
+
+<!ENTITY % markup.module "INCLUDE">
+<![%markup.module;[
+<!ENTITY % local.markup.attrib "">
+<!ENTITY % markup.role.attrib "%role.attrib;">
+
+<!ENTITY % markup.element "INCLUDE">
+<![%markup.element;[
+<!ELEMENT markup (%smallcptr.char.mix;)*>
+<!--end of markup.element-->]]>
+
+<!ENTITY % markup.attlist "INCLUDE">
+<![%markup.attlist;[
+<!ATTLIST markup
+		%common.attrib;
+		%markup.role.attrib;
+		%local.markup.attrib;
+>
+<!--end of markup.attlist-->]]>
+<!--end of markup.module-->]]>
+
+<!ENTITY % medialabel.module "INCLUDE">
+<![%medialabel.module;[
+<!ENTITY % local.medialabel.attrib "">
+<!ENTITY % medialabel.role.attrib "%role.attrib;">
+
+<!ENTITY % medialabel.element "INCLUDE">
+<![%medialabel.element;[
+<!ELEMENT medialabel (%smallcptr.char.mix;)*>
+<!--end of medialabel.element-->]]>
+
+<!-- Class: Type of medium named by the element; no default -->
+
+
+<!ENTITY % medialabel.attlist "INCLUDE">
+<![%medialabel.attlist;[
+<!ATTLIST medialabel
+		class 		(cartridge
+				|cdrom
+				|disk
+				|tape)		#IMPLIED
+		%common.attrib;
+		%medialabel.role.attrib;
+		%local.medialabel.attrib;
+>
+<!--end of medialabel.attlist-->]]>
+<!--end of medialabel.module-->]]>
+
+<!ENTITY % menuchoice.content.module "INCLUDE">
+<![%menuchoice.content.module;[
+<!ENTITY % menuchoice.module "INCLUDE">
+<![%menuchoice.module;[
+<!ENTITY % local.menuchoice.attrib "">
+<!ENTITY % menuchoice.role.attrib "%role.attrib;">
+
+<!ENTITY % menuchoice.element "INCLUDE">
+<![%menuchoice.element;[
+<!ELEMENT menuchoice (shortcut?, (guibutton|guiicon|guilabel
+		|guimenu|guimenuitem|guisubmenu|interface)+)>
+<!--end of menuchoice.element-->]]>
+
+<!ENTITY % menuchoice.attlist "INCLUDE">
+<![%menuchoice.attlist;[
+<!ATTLIST menuchoice
+		%moreinfo.attrib;
+		%common.attrib;
+		%menuchoice.role.attrib;
+		%local.menuchoice.attrib;
+>
+<!--end of menuchoice.attlist-->]]>
+<!--end of menuchoice.module-->]]>
+
+<!ENTITY % shortcut.module "INCLUDE">
+<![%shortcut.module;[
+<!-- See also KeyCombo -->
+<!ENTITY % local.shortcut.attrib "">
+<!ENTITY % shortcut.role.attrib "%role.attrib;">
+
+<!ENTITY % shortcut.element "INCLUDE">
+<![%shortcut.element;[
+<!ELEMENT shortcut ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of shortcut.element-->]]>
+
+<!ENTITY % shortcut.attlist "INCLUDE">
+<![%shortcut.attlist;[
+<!ATTLIST shortcut
+		%keyaction.attrib;
+		%moreinfo.attrib;
+		%common.attrib;
+		%shortcut.role.attrib;
+		%local.shortcut.attrib;
+>
+<!--end of shortcut.attlist-->]]>
+<!--end of shortcut.module-->]]>
+<!--end of menuchoice.content.module-->]]>
+
+<!ENTITY % mousebutton.module "INCLUDE">
+<![%mousebutton.module;[
+<!ENTITY % local.mousebutton.attrib "">
+<!ENTITY % mousebutton.role.attrib "%role.attrib;">
+
+<!ENTITY % mousebutton.element "INCLUDE">
+<![%mousebutton.element;[
+<!ELEMENT mousebutton (%smallcptr.char.mix;)*>
+<!--end of mousebutton.element-->]]>
+
+<!ENTITY % mousebutton.attlist "INCLUDE">
+<![%mousebutton.attlist;[
+<!ATTLIST mousebutton
+		%moreinfo.attrib;
+		%common.attrib;
+		%mousebutton.role.attrib;
+		%local.mousebutton.attrib;
+>
+<!--end of mousebutton.attlist-->]]>
+<!--end of mousebutton.module-->]]>
+
+<!ENTITY % msgtext.module "INCLUDE">
+<![%msgtext.module;[
+<!ENTITY % local.msgtext.attrib "">
+<!ENTITY % msgtext.role.attrib "%role.attrib;">
+
+<!ENTITY % msgtext.element "INCLUDE">
+<![%msgtext.element;[
+<!ELEMENT msgtext ((%component.mix;)+)>
+<!--end of msgtext.element-->]]>
+
+<!ENTITY % msgtext.attlist "INCLUDE">
+<![%msgtext.attlist;[
+<!ATTLIST msgtext
+		%common.attrib;
+		%msgtext.role.attrib;
+		%local.msgtext.attrib;
+>
+<!--end of msgtext.attlist-->]]>
+<!--end of msgtext.module-->]]>
+
+<!ENTITY % option.module "INCLUDE">
+<![%option.module;[
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+
+<!ENTITY % option.element "INCLUDE">
+<![%option.element;[
+<!ELEMENT option (%smallcptr.char.mix;)*>
+<!--end of option.element-->]]>
+
+<!ENTITY % option.attlist "INCLUDE">
+<![%option.attlist;[
+<!ATTLIST option
+		%common.attrib;
+		%option.role.attrib;
+		%local.option.attrib;
+>
+<!--end of option.attlist-->]]>
+<!--end of option.module-->]]>
+
+<!ENTITY % optional.module "INCLUDE">
+<![%optional.module;[
+<!ENTITY % local.optional.attrib "">
+<!ENTITY % optional.role.attrib "%role.attrib;">
+
+<!ENTITY % optional.element "INCLUDE">
+<![%optional.element;[
+<!ELEMENT optional (%cptr.char.mix;)*>
+<!--end of optional.element-->]]>
+
+<!ENTITY % optional.attlist "INCLUDE">
+<![%optional.attlist;[
+<!ATTLIST optional
+		%common.attrib;
+		%optional.role.attrib;
+		%local.optional.attrib;
+>
+<!--end of optional.attlist-->]]>
+<!--end of optional.module-->]]>
+
+<!ENTITY % parameter.module "INCLUDE">
+<![%parameter.module;[
+<!ENTITY % local.parameter.attrib "">
+<!ENTITY % parameter.role.attrib "%role.attrib;">
+
+<!ENTITY % parameter.element "INCLUDE">
+<![%parameter.element;[
+<!ELEMENT parameter (%smallcptr.char.mix;)*>
+<!--end of parameter.element-->]]>
+
+<!-- Class: Type of the Parameter; no default -->
+
+
+<!ENTITY % parameter.attlist "INCLUDE">
+<![%parameter.attlist;[
+<!ATTLIST parameter
+		class 		(command
+				|function
+				|option)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%parameter.role.attrib;
+		%local.parameter.attrib;
+>
+<!--end of parameter.attlist-->]]>
+<!--end of parameter.module-->]]>
+
+<!ENTITY % prompt.module "INCLUDE">
+<![%prompt.module;[
+<!ENTITY % local.prompt.attrib "">
+<!ENTITY % prompt.role.attrib "%role.attrib;">
+
+<!ENTITY % prompt.element "INCLUDE">
+<![%prompt.element;[
+<!ELEMENT prompt (%smallcptr.char.mix;)*>
+<!--end of prompt.element-->]]>
+
+<!ENTITY % prompt.attlist "INCLUDE">
+<![%prompt.attlist;[
+<!ATTLIST prompt
+		%moreinfo.attrib;
+		%common.attrib;
+		%prompt.role.attrib;
+		%local.prompt.attrib;
+>
+<!--end of prompt.attlist-->]]>
+<!--end of prompt.module-->]]>
+
+<!ENTITY % property.module "INCLUDE">
+<![%property.module;[
+<!ENTITY % local.property.attrib "">
+<!ENTITY % property.role.attrib "%role.attrib;">
+
+<!ENTITY % property.element "INCLUDE">
+<![%property.element;[
+<!ELEMENT property (%smallcptr.char.mix;)*>
+<!--end of property.element-->]]>
+
+<!ENTITY % property.attlist "INCLUDE">
+<![%property.attlist;[
+<!ATTLIST property
+		%moreinfo.attrib;
+		%common.attrib;
+		%property.role.attrib;
+		%local.property.attrib;
+>
+<!--end of property.attlist-->]]>
+<!--end of property.module-->]]>
+
+<!ENTITY % replaceable.module "INCLUDE">
+<![%replaceable.module;[
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+
+<!ENTITY % replaceable.element "INCLUDE">
+<![%replaceable.element;[
+<!ELEMENT replaceable (#PCDATA 
+		| %link.char.class; 
+		| optional
+		| %base.char.class; 
+		| %other.char.class; 
+		| inlinegraphic
+                | inlinemediaobject)*>
+<!--end of replaceable.element-->]]>
+
+<!-- Class: Type of information the element represents; no
+		default -->
+
+
+<!ENTITY % replaceable.attlist "INCLUDE">
+<![%replaceable.attlist;[
+<!ATTLIST replaceable
+		class		(command
+				|function
+				|option
+				|parameter)	#IMPLIED
+		%common.attrib;
+		%replaceable.role.attrib;
+		%local.replaceable.attrib;
+>
+<!--end of replaceable.attlist-->]]>
+<!--end of replaceable.module-->]]>
+
+<!ENTITY % returnvalue.module "INCLUDE">
+<![%returnvalue.module;[
+<!ENTITY % local.returnvalue.attrib "">
+<!ENTITY % returnvalue.role.attrib "%role.attrib;">
+
+<!ENTITY % returnvalue.element "INCLUDE">
+<![%returnvalue.element;[
+<!ELEMENT returnvalue (%smallcptr.char.mix;)*>
+<!--end of returnvalue.element-->]]>
+
+<!ENTITY % returnvalue.attlist "INCLUDE">
+<![%returnvalue.attlist;[
+<!ATTLIST returnvalue
+		%common.attrib;
+		%returnvalue.role.attrib;
+		%local.returnvalue.attrib;
+>
+<!--end of returnvalue.attlist-->]]>
+<!--end of returnvalue.module-->]]>
+
+<!ENTITY % sgmltag.module "INCLUDE">
+<![%sgmltag.module;[
+<!ENTITY % local.sgmltag.attrib "">
+<!ENTITY % sgmltag.role.attrib "%role.attrib;">
+
+<!ENTITY % sgmltag.element "INCLUDE">
+<![%sgmltag.element;[
+<!ELEMENT sgmltag (%smallcptr.char.mix;)*>
+<!--end of sgmltag.element-->]]>
+
+<!-- Class: Type of SGML construct the element names; no default -->
+
+
+<!ENTITY % sgmltag.attlist "INCLUDE">
+<![%sgmltag.attlist;[
+<!ATTLIST sgmltag
+		class 		(attribute
+				|attvalue
+				|element
+				|endtag
+                                |emptytag
+				|genentity
+				|numcharref
+				|paramentity
+				|pi
+                                |xmlpi
+				|starttag
+				|sgmlcomment)	#IMPLIED
+		%common.attrib;
+		%sgmltag.role.attrib;
+		%local.sgmltag.attrib;
+>
+<!--end of sgmltag.attlist-->]]>
+<!--end of sgmltag.module-->]]>
+
+<!ENTITY % structfield.module "INCLUDE">
+<![%structfield.module;[
+<!ENTITY % local.structfield.attrib "">
+<!ENTITY % structfield.role.attrib "%role.attrib;">
+
+<!ENTITY % structfield.element "INCLUDE">
+<![%structfield.element;[
+<!ELEMENT structfield (%smallcptr.char.mix;)*>
+<!--end of structfield.element-->]]>
+
+<!ENTITY % structfield.attlist "INCLUDE">
+<![%structfield.attlist;[
+<!ATTLIST structfield
+		%common.attrib;
+		%structfield.role.attrib;
+		%local.structfield.attrib;
+>
+<!--end of structfield.attlist-->]]>
+<!--end of structfield.module-->]]>
+
+<!ENTITY % structname.module "INCLUDE">
+<![%structname.module;[
+<!ENTITY % local.structname.attrib "">
+<!ENTITY % structname.role.attrib "%role.attrib;">
+
+<!ENTITY % structname.element "INCLUDE">
+<![%structname.element;[
+<!ELEMENT structname (%smallcptr.char.mix;)*>
+<!--end of structname.element-->]]>
+
+<!ENTITY % structname.attlist "INCLUDE">
+<![%structname.attlist;[
+<!ATTLIST structname
+		%common.attrib;
+		%structname.role.attrib;
+		%local.structname.attrib;
+>
+<!--end of structname.attlist-->]]>
+<!--end of structname.module-->]]>
+
+<!ENTITY % symbol.module "INCLUDE">
+<![%symbol.module;[
+<!ENTITY % local.symbol.attrib "">
+<!ENTITY % symbol.role.attrib "%role.attrib;">
+
+<!ENTITY % symbol.element "INCLUDE">
+<![%symbol.element;[
+<!ELEMENT symbol (%smallcptr.char.mix;)*>
+<!--end of symbol.element-->]]>
+
+<!-- Class: Type of symbol; no default -->
+
+
+<!ENTITY % symbol.attlist "INCLUDE">
+<![%symbol.attlist;[
+<!ATTLIST symbol
+		class		(limit)		#IMPLIED
+		%common.attrib;
+		%symbol.role.attrib;
+		%local.symbol.attrib;
+>
+<!--end of symbol.attlist-->]]>
+<!--end of symbol.module-->]]>
+
+<!ENTITY % systemitem.module "INCLUDE">
+<![%systemitem.module;[
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+
+<!ENTITY % systemitem.element "INCLUDE">
+<![%systemitem.element;[
+<!ELEMENT systemitem (%smallcptr.char.mix; | acronym)*>
+<!--end of systemitem.element-->]]>
+
+<!-- Class: Type of system item the element names; no default -->
+
+<!ENTITY % systemitem.attlist "INCLUDE">
+<![%systemitem.attlist;[
+<!ATTLIST systemitem
+		class	(constant
+			|groupname
+                        |library
+			|macro
+			|osname
+			|resource
+			|systemname
+                        |username)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%systemitem.role.attrib;
+		%local.systemitem.attrib;
+>
+<!--end of systemitem.attlist-->]]>
+<!--end of systemitem.module-->]]>
+
+
+<!ENTITY % token.module "INCLUDE">
+<![%token.module;[
+<!ENTITY % local.token.attrib "">
+<!ENTITY % token.role.attrib "%role.attrib;">
+
+<!ENTITY % token.element "INCLUDE">
+<![%token.element;[
+<!ELEMENT token (%smallcptr.char.mix;)*>
+<!--end of token.element-->]]>
+
+<!ENTITY % token.attlist "INCLUDE">
+<![%token.attlist;[
+<!ATTLIST token
+		%common.attrib;
+		%token.role.attrib;
+		%local.token.attrib;
+>
+<!--end of token.attlist-->]]>
+<!--end of token.module-->]]>
+
+<!ENTITY % type.module "INCLUDE">
+<![%type.module;[
+<!ENTITY % local.type.attrib "">
+<!ENTITY % type.role.attrib "%role.attrib;">
+
+<!ENTITY % type.element "INCLUDE">
+<![%type.element;[
+<!ELEMENT type (%smallcptr.char.mix;)*>
+<!--end of type.element-->]]>
+
+<!ENTITY % type.attlist "INCLUDE">
+<![%type.attlist;[
+<!ATTLIST type
+		%common.attrib;
+		%type.role.attrib;
+		%local.type.attrib;
+>
+<!--end of type.attlist-->]]>
+<!--end of type.module-->]]>
+
+<!ENTITY % userinput.module "INCLUDE">
+<![%userinput.module;[
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+
+<!ENTITY % userinput.element "INCLUDE">
+<![%userinput.element;[
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!--end of userinput.element-->]]>
+
+<!ENTITY % userinput.attlist "INCLUDE">
+<![%userinput.attlist;[
+<!ATTLIST userinput
+		%moreinfo.attrib;
+		%common.attrib;
+		%userinput.role.attrib;
+		%local.userinput.attrib;
+>
+<!--end of userinput.attlist-->]]>
+<!--end of userinput.module-->]]>
+
+<!-- General words and phrases ............................................ -->
+
+<!ENTITY % abbrev.module "INCLUDE">
+<![%abbrev.module;[
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % abbrev.element "INCLUDE">
+<![%abbrev.element;[
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!--end of abbrev.element-->]]>
+
+<!ENTITY % abbrev.attlist "INCLUDE">
+<![%abbrev.attlist;[
+<!ATTLIST abbrev
+		%common.attrib;
+		%abbrev.role.attrib;
+		%local.abbrev.attrib;
+>
+<!--end of abbrev.attlist-->]]>
+<!--end of abbrev.module-->]]>
+
+<!ENTITY % acronym.module "INCLUDE">
+<![%acronym.module;[
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+
+<!ENTITY % acronym.element "INCLUDE">
+<![%acronym.element;[
+<!ELEMENT acronym (%word.char.mix;)*>
+<!--end of acronym.element-->]]>
+
+<!ENTITY % acronym.attlist "INCLUDE">
+<![%acronym.attlist;[
+<!ATTLIST acronym
+		%common.attrib;
+		%acronym.role.attrib;
+		%local.acronym.attrib;
+>
+<!--end of acronym.attlist-->]]>
+<!--end of acronym.module-->]]>
+
+<!ENTITY % citation.module "INCLUDE">
+<![%citation.module;[
+<!ENTITY % local.citation.attrib "">
+<!ENTITY % citation.role.attrib "%role.attrib;">
+
+<!ENTITY % citation.element "INCLUDE">
+<![%citation.element;[
+<!ELEMENT citation (%para.char.mix;)*>
+<!--end of citation.element-->]]>
+
+<!ENTITY % citation.attlist "INCLUDE">
+<![%citation.attlist;[
+<!ATTLIST citation
+		%common.attrib;
+		%citation.role.attrib;
+		%local.citation.attrib;
+>
+<!--end of citation.attlist-->]]>
+<!--end of citation.module-->]]>
+
+<!ENTITY % citerefentry.module "INCLUDE">
+<![%citerefentry.module;[
+<!ENTITY % local.citerefentry.attrib "">
+<!ENTITY % citerefentry.role.attrib "%role.attrib;">
+
+<!ENTITY % citerefentry.element "INCLUDE">
+<![%citerefentry.element;[
+<!ELEMENT citerefentry (refentrytitle, manvolnum?)>
+<!--end of citerefentry.element-->]]>
+
+<!ENTITY % citerefentry.attlist "INCLUDE">
+<![%citerefentry.attlist;[
+<!ATTLIST citerefentry
+		%common.attrib;
+		%citerefentry.role.attrib;
+		%local.citerefentry.attrib;
+>
+<!--end of citerefentry.attlist-->]]>
+<!--end of citerefentry.module-->]]>
+
+<!ENTITY % refentrytitle.module "INCLUDE">
+<![%refentrytitle.module;[
+<!ENTITY % local.refentrytitle.attrib "">
+<!ENTITY % refentrytitle.role.attrib "%role.attrib;">
+
+<!ENTITY % refentrytitle.element "INCLUDE">
+<![%refentrytitle.element;[
+<!ELEMENT refentrytitle (%para.char.mix;)*>
+<!--end of refentrytitle.element-->]]>
+
+<!ENTITY % refentrytitle.attlist "INCLUDE">
+<![%refentrytitle.attlist;[
+<!ATTLIST refentrytitle
+		%common.attrib;
+		%refentrytitle.role.attrib;
+		%local.refentrytitle.attrib;
+>
+<!--end of refentrytitle.attlist-->]]>
+<!--end of refentrytitle.module-->]]>
+
+<!ENTITY % manvolnum.module "INCLUDE">
+<![%manvolnum.module;[
+<!ENTITY % local.manvolnum.attrib "">
+<!ENTITY % namvolnum.role.attrib "%role.attrib;">
+
+<!ENTITY % manvolnum.element "INCLUDE">
+<![%manvolnum.element;[
+<!ELEMENT manvolnum (%word.char.mix;)*>
+<!--end of manvolnum.element-->]]>
+
+<!ENTITY % manvolnum.attlist "INCLUDE">
+<![%manvolnum.attlist;[
+<!ATTLIST manvolnum
+		%common.attrib;
+		%namvolnum.role.attrib;
+		%local.manvolnum.attrib;
+>
+<!--end of manvolnum.attlist-->]]>
+<!--end of manvolnum.module-->]]>
+
+<!ENTITY % citetitle.module "INCLUDE">
+<![%citetitle.module;[
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+
+<!ENTITY % citetitle.element "INCLUDE">
+<![%citetitle.element;[
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!--end of citetitle.element-->]]>
+
+<!-- Pubwork: Genre of published work cited; no default -->
+
+
+<!ENTITY % citetitle.attlist "INCLUDE">
+<![%citetitle.attlist;[
+<!ATTLIST citetitle
+		pubwork		(article
+				|book
+				|chapter
+				|part
+				|refentry
+				|section
+				|journal
+				|series
+				|set
+				|manuscript)	#IMPLIED
+		%common.attrib;
+		%citetitle.role.attrib;
+		%local.citetitle.attrib;
+>
+<!--end of citetitle.attlist-->]]>
+<!--end of citetitle.module-->]]>
+
+<!ENTITY % emphasis.module "INCLUDE">
+<![%emphasis.module;[
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+
+<!ENTITY % emphasis.element "INCLUDE">
+<![%emphasis.element;[
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!--end of emphasis.element-->]]>
+
+<!ENTITY % emphasis.attlist "INCLUDE">
+<![%emphasis.attlist;[
+<!ATTLIST emphasis
+		%common.attrib;
+		%emphasis.role.attrib;
+		%local.emphasis.attrib;
+>
+<!--end of emphasis.attlist-->]]>
+<!--end of emphasis.module-->]]>
+
+<!ENTITY % firstterm.module "INCLUDE">
+<![%firstterm.module;[
+<!ENTITY % local.firstterm.attrib "">
+<!ENTITY % firstterm.role.attrib "%role.attrib;">
+
+<!ENTITY % firstterm.element "INCLUDE">
+<![%firstterm.element;[
+<!ELEMENT firstterm (%word.char.mix;)*>
+<!--end of firstterm.element-->]]>
+
+<!-- to GlossEntry or other explanation -->
+
+
+<!ENTITY % firstterm.attlist "INCLUDE">
+<![%firstterm.attlist;[
+<!ATTLIST firstterm
+		%linkend.attrib;		%common.attrib;
+		%firstterm.role.attrib;
+		%local.firstterm.attrib;
+>
+<!--end of firstterm.attlist-->]]>
+<!--end of firstterm.module-->]]>
+
+<!ENTITY % foreignphrase.module "INCLUDE">
+<![%foreignphrase.module;[
+<!ENTITY % local.foreignphrase.attrib "">
+<!ENTITY % foreignphrase.role.attrib "%role.attrib;">
+
+<!ENTITY % foreignphrase.element "INCLUDE">
+<![%foreignphrase.element;[
+<!ELEMENT foreignphrase (%para.char.mix;)*>
+<!--end of foreignphrase.element-->]]>
+
+<!ENTITY % foreignphrase.attlist "INCLUDE">
+<![%foreignphrase.attlist;[
+<!ATTLIST foreignphrase
+		%common.attrib;
+		%foreignphrase.role.attrib;
+		%local.foreignphrase.attrib;
+>
+<!--end of foreignphrase.attlist-->]]>
+<!--end of foreignphrase.module-->]]>
+
+<!ENTITY % glossterm.module "INCLUDE">
+<![%glossterm.module;[
+<!ENTITY % local.glossterm.attrib "">
+<!ENTITY % glossterm.role.attrib "%role.attrib;">
+
+<!ENTITY % glossterm.element "INCLUDE">
+<![%glossterm.element;[
+<!ELEMENT glossterm (%para.char.mix;)*>
+<!--end of glossterm.element-->]]>
+
+<!-- to GlossEntry if Glossterm used in text -->
+<!-- BaseForm: Provides the form of GlossTerm to be used
+		for indexing -->
+
+
+<!ENTITY % glossterm.attlist "INCLUDE">
+<![%glossterm.attlist;[
+<!ATTLIST glossterm
+		%linkend.attrib;		baseform	CDATA		#IMPLIED
+		%common.attrib;
+		%glossterm.role.attrib;
+		%local.glossterm.attrib;
+>
+<!--end of glossterm.attlist-->]]>
+<!--end of glossterm.module-->]]>
+
+<!ENTITY % phrase.module "INCLUDE">
+<![%phrase.module;[
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+
+<!ENTITY % phrase.element "INCLUDE">
+<![%phrase.element;[
+<!ELEMENT phrase (%para.char.mix;)*>
+<!--end of phrase.element-->]]>
+
+<!ENTITY % phrase.attlist "INCLUDE">
+<![%phrase.attlist;[
+<!ATTLIST phrase
+		%common.attrib;
+		%phrase.role.attrib;
+		%local.phrase.attrib;
+>
+<!--end of phrase.attlist-->]]>
+<!--end of phrase.module-->]]>
+
+<!ENTITY % quote.module "INCLUDE">
+<![%quote.module;[
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+
+<!ENTITY % quote.element "INCLUDE">
+<![%quote.element;[
+<!ELEMENT quote (%para.char.mix;)*>
+<!--end of quote.element-->]]>
+
+<!ENTITY % quote.attlist "INCLUDE">
+<![%quote.attlist;[
+<!ATTLIST quote
+		%common.attrib;
+		%quote.role.attrib;
+		%local.quote.attrib;
+>
+<!--end of quote.attlist-->]]>
+<!--end of quote.module-->]]>
+
+<!ENTITY % ssscript.module "INCLUDE">
+<![%ssscript.module;[
+<!ENTITY % local.ssscript.attrib "">
+<!ENTITY % ssscript.role.attrib "%role.attrib;">
+
+<!ENTITY % subscript.element "INCLUDE">
+<![%subscript.element;[
+<!ELEMENT subscript (#PCDATA 
+		| %link.char.class;
+		| emphasis
+		| replaceable 
+		| symbol 
+		| inlinegraphic
+                | inlinemediaobject
+		| %base.char.class; 
+		| %other.char.class;)*>
+<!--end of subscript.element-->]]>
+
+<!ENTITY % subscript.attlist "INCLUDE">
+<![%subscript.attlist;[
+<!ATTLIST subscript
+		%common.attrib;
+		%ssscript.role.attrib;
+		%local.ssscript.attrib;
+>
+<!--end of subscript.attlist-->]]>
+
+<!ENTITY % superscript.element "INCLUDE">
+<![%superscript.element;[
+<!ELEMENT superscript (#PCDATA 
+		| %link.char.class;
+		| emphasis
+		| replaceable 
+		| symbol 
+		| inlinegraphic
+                | inlinemediaobject 
+		| %base.char.class; 
+		| %other.char.class;)*>
+<!--end of superscript.element-->]]>
+
+<!ENTITY % superscript.attlist "INCLUDE">
+<![%superscript.attlist;[
+<!ATTLIST superscript
+		%common.attrib;
+		%ssscript.role.attrib;
+		%local.ssscript.attrib;
+>
+<!--end of superscript.attlist-->]]>
+<!--end of ssscript.module-->]]>
+
+<!ENTITY % trademark.module "INCLUDE">
+<![%trademark.module;[
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+
+<!ENTITY % trademark.element "INCLUDE">
+<![%trademark.element;[
+<!ELEMENT trademark (#PCDATA 
+		| %link.char.class; 
+		| %tech.char.class;
+		| %base.char.class; 
+		| %other.char.class; 
+		| inlinegraphic
+                | inlinemediaobject
+		| emphasis)*>
+<!--end of trademark.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % trademark.attlist "INCLUDE">
+<![%trademark.attlist;[
+<!ATTLIST trademark
+		class		(service
+				|trade
+				|registered
+				|copyright)	'trade'
+		%common.attrib;
+		%trademark.role.attrib;
+		%local.trademark.attrib;
+>
+<!--end of trademark.attlist-->]]>
+<!--end of trademark.module-->]]>
+
+<!ENTITY % wordasword.module "INCLUDE">
+<![%wordasword.module;[
+<!ENTITY % local.wordasword.attrib "">
+<!ENTITY % wordasword.role.attrib "%role.attrib;">
+
+<!ENTITY % wordasword.element "INCLUDE">
+<![%wordasword.element;[
+<!ELEMENT wordasword (%word.char.mix;)*>
+<!--end of wordasword.element-->]]>
+
+<!ENTITY % wordasword.attlist "INCLUDE">
+<![%wordasword.attlist;[
+<!ATTLIST wordasword
+		%common.attrib;
+		%wordasword.role.attrib;
+		%local.wordasword.attrib;
+>
+<!--end of wordasword.attlist-->]]>
+<!--end of wordasword.module-->]]>
+
+<!-- Links and cross-references ........................................... -->
+
+<!ENTITY % link.module "INCLUDE">
+<![%link.module;[
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+
+<!ENTITY % link.element "INCLUDE">
+<![%link.element;[
+<!ELEMENT link (%para.char.mix;)*>
+<!--end of link.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+		fetched from elsewhere in the document to appear as
+		the content of this element -->
+<!-- to linked-to object -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % link.attlist "INCLUDE">
+<![%link.attlist;[
+<!ATTLIST link
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		type		CDATA		#IMPLIED
+		%common.attrib;
+		%link.role.attrib;
+		%local.link.attrib;
+>
+<!--end of link.attlist-->]]>
+<!--end of link.module-->]]>
+
+<!ENTITY % olink.module "INCLUDE">
+<![%olink.module;[
+<!ENTITY % local.olink.attrib "">
+<!ENTITY % olink.role.attrib "%role.attrib;">
+
+<!ENTITY % olink.element "INCLUDE">
+<![%olink.element;[
+<!ELEMENT olink (%para.char.mix;)*>
+<!--end of olink.element-->]]>
+
+<!-- TargetDocEnt: Name of an entity to be the target of the link -->
+<!-- LinkMode: ID of a ModeSpec containing instructions for
+		operating on the entity named by TargetDocEnt -->
+<!-- LocalInfo: Information that may be passed to ModeSpec -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % olink.attlist "INCLUDE">
+<![%olink.attlist;[
+<!ATTLIST olink
+		targetdocent	ENTITY 		#IMPLIED
+		linkmode	IDREF		#IMPLIED
+		localinfo 	CDATA		#IMPLIED
+		type		CDATA		#IMPLIED
+		%common.attrib;
+		%olink.role.attrib;
+		%local.olink.attrib;
+>
+<!--end of olink.attlist-->]]>
+<!--end of olink.module-->]]>
+
+<!ENTITY % ulink.module "INCLUDE">
+<![%ulink.module;[
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+
+<!ENTITY % ulink.element "INCLUDE">
+<![%ulink.element;[
+<!ELEMENT ulink (%para.char.mix;)*>
+<!--end of ulink.element-->]]>
+
+<!-- URL: uniform resource locator; the target of the ULink -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % ulink.attlist "INCLUDE">
+<![%ulink.attlist;[
+<!ATTLIST ulink
+		url		CDATA		#REQUIRED
+		type		CDATA		#IMPLIED
+		%common.attrib;
+		%ulink.role.attrib;
+		%local.ulink.attrib;
+>
+<!--end of ulink.attlist-->]]>
+<!--end of ulink.module-->]]>
+
+<!ENTITY % footnoteref.module "INCLUDE">
+<![%footnoteref.module;[
+<!ENTITY % local.footnoteref.attrib "">
+<!ENTITY % footnoteref.role.attrib "%role.attrib;">
+
+<!ENTITY % footnoteref.element "INCLUDE">
+<![%footnoteref.element;[
+<!ELEMENT footnoteref EMPTY>
+<!--end of footnoteref.element-->]]>
+
+<!-- to footnote content supplied elsewhere -->
+
+
+<!ENTITY % footnoteref.attlist "INCLUDE">
+<![%footnoteref.attlist;[
+<!ATTLIST footnoteref
+		%linkendreq.attrib;		%label.attrib;
+		%common.attrib;
+		%footnoteref.role.attrib;
+		%local.footnoteref.attrib;
+>
+<!--end of footnoteref.attlist-->]]>
+<!--end of footnoteref.module-->]]>
+
+<!ENTITY % xref.module "INCLUDE">
+<![%xref.module;[
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+
+<!ENTITY % xref.element "INCLUDE">
+<![%xref.element;[
+<!ELEMENT xref EMPTY>
+<!--end of xref.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+		fetched from elsewhere in the document to appear as
+		the content of this element -->
+<!-- to linked-to object -->
+
+
+<!ENTITY % xref.attlist "INCLUDE">
+<![%xref.attlist;[
+<!ATTLIST xref
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		%common.attrib;
+		%xref.role.attrib;
+		%local.xref.attrib;
+>
+<!--end of xref.attlist-->]]>
+<!--end of xref.module-->]]>
+
+<!-- Ubiquitous elements .................................................. -->
+
+<!ENTITY % anchor.module "INCLUDE">
+<![%anchor.module;[
+<!ENTITY % local.anchor.attrib "">
+<!ENTITY % anchor.role.attrib "%role.attrib;">
+
+<!ENTITY % anchor.element "INCLUDE">
+<![%anchor.element;[
+<!ELEMENT anchor EMPTY>
+<!--end of anchor.element-->]]>
+
+<!-- required -->
+<!-- replaces Lang -->
+
+
+<!ENTITY % anchor.attlist "INCLUDE">
+<![%anchor.attlist;[
+<!ATTLIST anchor
+		%idreq.attrib;		%pagenum.attrib;		%remap.attrib;
+		%xreflabel.attrib;
+		%revisionflag.attrib;
+		%effectivity.attrib;
+		%anchor.role.attrib;
+		%local.anchor.attrib;
+>
+<!--end of anchor.attlist-->]]>
+<!--end of anchor.module-->]]>
+
+<!ENTITY % beginpage.module "INCLUDE">
+<![%beginpage.module;[
+<!ENTITY % local.beginpage.attrib "">
+<!ENTITY % beginpage.role.attrib "%role.attrib;">
+
+<!ENTITY % beginpage.element "INCLUDE">
+<![%beginpage.element;[
+<!ELEMENT beginpage EMPTY>
+<!--end of beginpage.element-->]]>
+
+<!-- PageNum: Number of page that begins at this point -->
+
+
+<!ENTITY % beginpage.attlist "INCLUDE">
+<![%beginpage.attlist;[
+<!ATTLIST beginpage
+		%pagenum.attrib;
+		%common.attrib;
+		%beginpage.role.attrib;
+		%local.beginpage.attrib;
+>
+<!--end of beginpage.attlist-->]]>
+<!--end of beginpage.module-->]]>
+
+<!-- IndexTerms appear in the text flow for generating or linking an
+     index. -->
+
+<!ENTITY % indexterm.content.module "INCLUDE">
+<![%indexterm.content.module;[
+<!ENTITY % indexterm.module "INCLUDE">
+<![%indexterm.module;[
+<!ENTITY % local.indexterm.attrib "">
+<!ENTITY % indexterm.role.attrib "%role.attrib;">
+
+<!ENTITY % indexterm.element "INCLUDE">
+<![%indexterm.element;[
+<!ELEMENT indexterm (primary?, ((secondary, ((tertiary, (see|seealso+)?)
+		| see | seealso+)?) | see | seealso+)?)>
+<!--end of indexterm.element-->]]>
+
+<!-- Scope: Indicates which generated indices the IndexTerm
+		should appear in: Global (whole document set), Local (this
+		document only), or All (both) -->
+<!-- Significance: Whether this IndexTerm is the most pertinent
+		of its series (Preferred) or not (Normal, the default) -->
+<!-- Class: Indicates type of IndexTerm; default is Singular, 
+		or EndOfRange if StartRef is supplied; StartOfRange value 
+		must be supplied explicitly on starts of ranges -->
+<!-- StartRef: ID of the IndexTerm that starts the indexing 
+		range ended by this IndexTerm -->
+<!-- Zone: IDs of the elements to which the IndexTerm applies,
+		and indicates that the IndexTerm applies to those entire
+		elements rather than the point at which the IndexTerm
+		occurs -->
+
+
+<!ENTITY % indexterm.attlist "INCLUDE">
+<![%indexterm.attlist;[
+<!ATTLIST indexterm
+		%pagenum.attrib;
+		scope		(all
+				|global
+				|local)		#IMPLIED
+		significance	(preferred
+				|normal)	"normal"
+		class		(singular
+				|startofrange
+				|endofrange)	#IMPLIED
+		startref		IDREF		#IMPLIED
+		zone			IDREFS		#IMPLIED
+		%common.attrib;
+		%indexterm.role.attrib;
+		%local.indexterm.attrib;
+>
+<!--end of indexterm.attlist-->]]>
+<!--end of indexterm.module-->]]>
+
+<!ENTITY % primsecter.module "INCLUDE">
+<![%primsecter.module;[
+<!ENTITY % local.primsecter.attrib "">
+<!ENTITY % primsecter.role.attrib "%role.attrib;">
+
+
+<!ENTITY % primary.element "INCLUDE">
+<![%primary.element;[
+<!ELEMENT primary   (%ndxterm.char.mix;)*>
+<!--end of primary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+		"fourteen" for an element containing "14" -->
+
+<!ENTITY % primary.attlist "INCLUDE">
+<![%primary.attlist;[
+<!ATTLIST primary
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%primsecter.role.attrib;
+		%local.primsecter.attrib;
+>
+<!--end of primary.attlist-->]]>
+
+
+<!ENTITY % secondary.element "INCLUDE">
+<![%secondary.element;[
+<!ELEMENT secondary (%ndxterm.char.mix;)*>
+<!--end of secondary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+		"fourteen" for an element containing "14" -->
+
+<!ENTITY % secondary.attlist "INCLUDE">
+<![%secondary.attlist;[
+<!ATTLIST secondary
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%primsecter.role.attrib;
+		%local.primsecter.attrib;
+>
+<!--end of secondary.attlist-->]]>
+
+
+<!ENTITY % tertiary.element "INCLUDE">
+<![%tertiary.element;[
+<!ELEMENT tertiary  (%ndxterm.char.mix;)*>
+<!--end of tertiary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+		"fourteen" for an element containing "14" -->
+
+<!ENTITY % tertiary.attlist "INCLUDE">
+<![%tertiary.attlist;[
+<!ATTLIST tertiary
+		sortas		CDATA		#IMPLIED
+		%common.attrib;
+		%primsecter.role.attrib;
+		%local.primsecter.attrib;
+>
+<!--end of tertiary.attlist-->]]>
+
+<!--end of primsecter.module-->]]>
+
+<!ENTITY % seeseealso.module "INCLUDE">
+<![%seeseealso.module;[
+<!ENTITY % local.seeseealso.attrib "">
+<!ENTITY % seeseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % see.element "INCLUDE">
+<![%see.element;[
+<!ELEMENT see (%ndxterm.char.mix;)*>
+<!--end of see.element-->]]>
+
+<!ENTITY % see.attlist "INCLUDE">
+<![%see.attlist;[
+<!ATTLIST see
+		%common.attrib;
+		%seeseealso.role.attrib;
+		%local.seeseealso.attrib;
+>
+<!--end of see.attlist-->]]>
+
+<!ENTITY % seealso.element "INCLUDE">
+<![%seealso.element;[
+<!ELEMENT seealso (%ndxterm.char.mix;)*>
+<!--end of seealso.element-->]]>
+
+<!ENTITY % seealso.attlist "INCLUDE">
+<![%seealso.attlist;[
+<!ATTLIST seealso
+		%common.attrib;
+		%seeseealso.role.attrib;
+		%local.seeseealso.attrib;
+>
+<!--end of seealso.attlist-->]]>
+<!--end of seeseealso.module-->]]>
+<!--end of indexterm.content.module-->]]>
+
+<!-- End of DocBook XML information pool module V4.1.2 ...................... -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/dbpoolx.mod
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbook.cat
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbook.cat	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbook.cat	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,59 @@
+  -- ...................................................................... --
+  -- Catalog data for DocBook XML V4.1.2 .................................... --
+  -- File docbook.cat ..................................................... --
+
+  -- Please direct all questions, bug reports, or suggestions for
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/.
+  --
+
+  -- This is the catalog data file for DocBook XML V4.1.2. It is provided as
+     a convenience in building your own catalog files. You need not use
+     the filenames listed here, and need not use the filename method of
+     identifying storage objects at all.  See the documentation for
+     detailed information on the files associated with the DocBook DTD.
+     See SGML Open Technical Resolution 9401 for detailed information
+     on supplying and using catalog data.
+  --
+
+  -- ...................................................................... --
+  -- DocBook driver file .................................................. --
+
+PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "docbookx.dtd"
+
+  -- ...................................................................... --
+  -- DocBook modules ...................................................... --
+
+PUBLIC "-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" "calstblx.dtd"
+PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN" "soextblx.dtd"
+PUBLIC "-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN" "dbpoolx.mod"
+PUBLIC "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN" "dbhierx.mod"
+PUBLIC "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN" "dbgenent.mod"
+PUBLIC "-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" "dbnotnx.mod"
+PUBLIC "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" "dbcentx.mod"
+
+  -- ...................................................................... --
+  -- ISO entity sets ...................................................... --
+
+PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "ent/iso-dia.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" "ent/iso-num.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN" "ent/iso-pub.ent"
+PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN" "ent/iso-tech.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN" "ent/iso-lat1.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN" "ent/iso-lat2.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN" "ent/iso-grk1.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN" "ent/iso-grk2.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN" "ent/iso-grk3.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" "ent/iso-grk4.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" "ent/iso-amsa.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" "ent/iso-amsb.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" "ent/iso-amsc.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" "ent/iso-amsn.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" "ent/iso-amso.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" "ent/iso-amsr.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN" "ent/iso-box.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN" "ent/iso-cyr1.ent"
+PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" "ent/iso-cyr2.ent"
+
+  -- End of catalog data for DocBook XML V4.1.2 ............................. --
+  -- ...................................................................... --

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbook.cxt
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbook.cxt	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbook.cxt	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+<public publicId="ISO 8879:1986//ENTITIES Publishing//EN" uri="ent/iso-pub.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES Greek Letters//EN" uri="ent/iso-grk1.ent"/>
+<public publicId="-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN" uri="dbpoolx.mod"/>
+<public publicId="ISO 8879:1986//ENTITIES Box and Line Drawing//EN" uri="ent/iso-box.ent"/>
+<public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN" uri="docbookx.dtd"/>
+<public publicId="ISO 8879:1986//ENTITIES Greek Symbols//EN" uri="ent/iso-grk3.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN" uri="ent/iso-amsn.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN" uri="ent/iso-num.ent"/>
+<public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN" uri="dbcentx.mod"/>
+<public publicId="ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN" uri="ent/iso-grk4.ent"/>
+<public publicId="-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN" uri="dbnotnx.mod"/>
+<public publicId="ISO 8879:1986//ENTITIES Diacritical Marks//EN" uri="ent/iso-dia.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES Monotoniko Greek//EN" uri="ent/iso-grk2.ent"/>
+<public publicId="-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN" uri="dbgenent.mod"/>
+<public publicId="-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN" uri="dbhierx.mod"/>
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" uri="ent/iso-amsa.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN" uri="ent/iso-amso.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES Russian Cyrillic//EN" uri="ent/iso-cyr1.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES General Technical//EN" uri="ent/iso-tech.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN" uri="ent/iso-amsc.ent"/>
+<public publicId="-//OASIS//DTD XML Exchange Table Model 19990315//EN" uri="soextblx.dtd"/>
+<public publicId="-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN" uri="calstblx.dtd"/>
+<public publicId="ISO 8879:1986//ENTITIES Added Latin 1//EN" uri="ent/iso-lat1.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" uri="ent/iso-amsb.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES Added Latin 2//EN" uri="ent/iso-lat2.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN" uri="ent/iso-amsr.ent"/>
+<public publicId="ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN" uri="ent/iso-cyr2.ent"/>
+</catalog>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbookx.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbookx.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbookx.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,125 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML DTD V4.1.2 ................................................. -->
+<!-- File docbookx.dtd .................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+     O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+     Corporation, Norman Walsh, and the Organization for the Advancement
+     of Structured Information Standards (OASIS).
+
+     $Id: docbookx.dtd,v 1.1 2001/02/24 16:51:28 veillard Exp $
+
+     Permission to use, copy, modify and distribute the DocBook XML DTD
+     and its accompanying documentation for any purpose and without fee
+     is hereby granted in perpetuity, provided that the above copyright
+     notice and this paragraph appear in all copies.  The copyright
+     holders make no representation about the suitability of the DTD for
+     any purpose.  It is provided "as is" without expressed or implied
+     warranty.
+
+     If you modify the DocBook DTD in any way, except for declaring and
+     referencing additional sets of general entities and declaring
+     additional notations, label your DTD as a variant of DocBook.  See
+     the maintenance documentation for more information.
+
+     Please direct all questions, bug reports, or suggestions for 
+     changes to the docbook at lists.oasis-open.org mailing list. For more
+     information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This is the driver file for V4.1.2 of the DocBook DTD.
+     Please use the following formal public identifier to identify it:
+
+     "-//OASIS//DTD DocBook XML V4.1.2//EN"
+
+     For example, if your document's top-level element is Book, and
+     you are using DocBook directly, use the FPI in the DOCTYPE
+     declaration:
+
+     <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+                    "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd"
+                    [...]>
+
+     Or, if you have a higher-level driver file that customizes DocBook,
+     use the FPI in the parameter entity declaration:
+
+     <!ENTITY % DocBookDTD PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+                "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
+     %DocBookDTD;
+
+     See the documentation for detailed information on the parameter
+     entity and module scheme used in DocBook, customizing DocBook and
+     planning for interchange, and changes made since the last release
+     of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- Notation declarations ................................................ -->
+
+<!ENTITY % dbnotn.module "INCLUDE">
+<![%dbnotn.module;[
+<!ENTITY % dbnotn PUBLIC 
+"-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN"
+"dbnotnx.mod">
+%dbnotn;
+]]>
+
+<!-- ...................................................................... -->
+<!-- ISO character entity sets ............................................ -->
+
+<!ENTITY % dbcent.module "INCLUDE">
+<![%dbcent.module;[
+<!ENTITY euro "&#x20AC;"><!-- euro sign, U+20AC NEW -->
+<!ENTITY % dbcent PUBLIC 
+"-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN"
+"dbcentx.mod">
+%dbcent;
+]]>
+
+<!-- ...................................................................... -->
+<!-- DTD modules .......................................................... -->
+
+<!-- Information pool .............. -->
+
+<!ENTITY % dbpool.module "INCLUDE">
+<![ %dbpool.module; [
+<!ENTITY % dbpool PUBLIC 
+"-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN"
+"dbpoolx.mod">
+%dbpool;
+]]>
+
+<!-- Redeclaration placeholder ..... -->
+
+<!ENTITY % intermod.redecl.module "IGNORE">
+<![%intermod.redecl.module;[
+<!-- Defining rdbmods here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbmods "">
+%rdbmods;
+<!--end of intermod.redecl.module-->]]>
+
+<!-- Document hierarchy ............ -->
+
+<!ENTITY % dbhier.module "INCLUDE">
+<![ %dbhier.module; [
+<!ENTITY % dbhier PUBLIC 
+"-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN"
+"dbhierx.mod">
+%dbhier;
+]]>
+
+<!-- ...................................................................... -->
+<!-- Other general entities ............................................... -->
+
+<!ENTITY % dbgenent.module "INCLUDE">
+<![ %dbgenent.module; [
+<!ENTITY % dbgenent PUBLIC
+"-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN"
+"dbgenent.mod">
+%dbgenent;
+]]>
+
+<!-- End of DocBook XML DTD V4.1.2 .......................................... -->
+<!-- ...................................................................... -->


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/docbookx.dtd
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsa.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsa.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsa.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,63 @@
+<!-- iso-amsa.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz
+     With additional derivations from
+     ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY cularr	"&#x21B6;"> <!-- ANTICLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY curarr	"&#x21B7;"> <!-- CLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY dArr	"&#x21D3;"> <!-- DOWNWARDS DOUBLE ARROW -->
+<!ENTITY darr2	"&#x21CA;"> <!-- DOWNWARDS PAIRED ARROWS -->
+<!ENTITY dharl	"&#x21C3;"> <!-- DOWNWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY dharr	"&#x21C2;"> <!-- DOWNWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY lAarr	"&#x21DA;"> <!-- LEFTWARDS TRIPLE ARROW -->
+<!ENTITY Larr	"&#x219E;"> <!-- LEFTWARDS TWO HEADED ARROW -->
+<!ENTITY larr2	"&#x21C7;"> <!-- LEFTWARDS PAIRED ARROWS -->
+<!ENTITY larrhk	"&#x21A9;"> <!-- LEFTWARDS ARROW WITH HOOK -->
+<!ENTITY larrlp	"&#x21AB;"> <!-- LEFTWARDS ARROW WITH LOOP -->
+<!ENTITY larrtl	"&#x21A2;"> <!-- LEFTWARDS ARROW WITH TAIL -->
+<!ENTITY lhard	"&#x21BD;"> <!-- LEFTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY lharu	"&#x21BC;"> <!-- LEFTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY hArr	"&#x21D4;"> <!--  -->
+<!ENTITY harr	"&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY lrarr2	"&#x21C6;"> <!-- LEFTWARDS ARROW OVER RIGHTWARDS ARROW -->
+<!ENTITY rlarr2	"&#x21C4;"> <!-- RIGHTWARDS ARROW OVER LEFTWARDS ARROW -->
+<!ENTITY harrw	"&#x21AD;"> <!-- LEFT RIGHT WAVE ARROW -->
+<!ENTITY rlhar2	"&#x21CC;"> <!-- RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -->
+<!ENTITY lrhar2	"&#x21CB;"> <!-- LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -->
+<!ENTITY lsh	"&#x21B0;"> <!-- UPWARDS ARROW WITH TIP LEFTWARDS -->
+<!ENTITY map	"&#x21A6;"> <!-- RIGHTWARDS ARROW FROM BAR -->
+<!ENTITY mumap	"&#x22B8;"> <!-- MULTIMAP -->
+<!ENTITY nearr	"&#x2197;"> <!-- NORTH EAST ARROW -->
+<!ENTITY nlArr	"&#x21CD;"> <!-- LEFTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nlarr	"&#x219A;"> <!-- LEFTWARDS ARROW WITH STROKE -->
+<!ENTITY nhArr	"&#x21CE;"> <!-- LEFT RIGHT DOUBLE ARROW WITH STROKE -->
+<!ENTITY nharr	"&#x21AE;"> <!-- LEFT RIGHT ARROW WITH STROKE -->
+<!ENTITY nrarr	"&#x219B;"> <!-- RIGHTWARDS ARROW WITH STROKE -->
+<!ENTITY nrArr	"&#x21CF;"> <!-- RIGHTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nwarr	"&#x2196;"> <!-- NORTH WEST ARROW -->
+<!ENTITY olarr	"&#x21BA;"> <!-- ANTICLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY orarr	"&#x21BB;"> <!-- CLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY rAarr	"&#x21DB;"> <!-- RIGHTWARDS TRIPLE ARROW -->
+<!ENTITY Rarr	"&#x21A0;"> <!-- RIGHTWARDS TWO HEADED ARROW -->
+<!ENTITY rarr2	"&#x21C9;"> <!-- RIGHTWARDS PAIRED ARROWS -->
+<!ENTITY rarrhk	"&#x21AA;"> <!-- RIGHTWARDS ARROW WITH HOOK -->
+<!ENTITY rarrlp	"&#x21AC;"> <!-- RIGHTWARDS ARROW WITH LOOP -->
+<!ENTITY rarrtl	"&#x21A3;"> <!-- RIGHTWARDS ARROW WITH TAIL -->
+<!ENTITY rarrw	"&#x219D;"> <!-- RIGHTWARDS SQUIGGLE ARROW -->
+<!ENTITY rhard	"&#x21C1;"> <!-- RIGHTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY rharu	"&#x21C0;"> <!-- RIGHTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY rsh	"&#x21B1;"> <!-- UPWARDS ARROW WITH TIP RIGHTWARDS -->
+<!ENTITY drarr	"&#x2198;"> <!-- SOUTH EAST ARROW -->
+<!ENTITY dlarr	"&#x2199;"> <!-- SOUTH WEST ARROW -->
+<!ENTITY uArr	"&#x21D1;"> <!-- UPWARDS DOUBLE ARROW -->
+<!ENTITY uarr2	"&#x21C8;"> <!-- UPWARDS PAIRED ARROWS -->
+<!ENTITY vArr	"&#x21D5;"> <!-- UP DOWN DOUBLE ARROW -->
+<!ENTITY varr	"&#x2195;"> <!-- UP DOWN ARROW -->
+<!ENTITY uharl	"&#x21BF;"> <!-- UPWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY uharr	"&#x21BE;"> <!-- UPWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY xlArr	"&#x21D0;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY xhArr	"&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY xharr	"&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY xrArr	"&#x21D2;"> <!-- RIGHTWARDS DOUBLE ARROW -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsb.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsb.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsb.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,49 @@
+<!-- iso-amsb.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz.
+     With additional derivations from
+     ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY amalg	"&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY Barwed	"&#x2306;"> <!-- PERSPECTIVE -->
+<!ENTITY barwed	"&#x22BC;"> <!-- NAND -->
+<!ENTITY Cap	"&#x22D2;"> <!-- DOUBLE INTERSECTION -->
+<!ENTITY Cup	"&#x22D3;"> <!-- DOUBLE UNION -->
+<!ENTITY cuvee	"&#x22CE;"> <!-- CURLY LOGICAL OR -->
+<!ENTITY cuwed	"&#x22CF;"> <!-- CURLY LOGICAL AND -->
+<!ENTITY diam	"&#x22C4;"> <!-- DIAMOND OPERATOR -->
+<!ENTITY divonx	"&#x22C7;"> <!-- DIVISION TIMES -->
+<!ENTITY intcal	"&#x22BA;"> <!-- INTERCALATE -->
+<!ENTITY lthree	"&#x22CB;"> <!-- LEFT SEMIDIRECT PRODUCT -->
+<!ENTITY ltimes	"&#x22C9;"> <!-- LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY minusb	"&#x229F;"> <!-- SQUARED MINUS -->
+<!ENTITY oast	"&#x229B;"> <!-- CIRCLED ASTERISK OPERATOR -->
+<!ENTITY ocir	"&#x229A;"> <!-- CIRCLED RING OPERATOR -->
+<!ENTITY odash	"&#x229D;"> <!-- CIRCLED DASH -->
+<!ENTITY odot	"&#x2299;"> <!-- CIRCLED DOT OPERATOR -->
+<!ENTITY ominus	"&#x2296;"> <!-- CIRCLED MINUS -->
+<!ENTITY oplus	"&#x2295;"> <!-- CIRCLED PLUS -->
+<!ENTITY osol	"&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY otimes	"&#x2297;"> <!-- CIRCLED TIMES -->
+<!ENTITY plusb	"&#x229E;"> <!-- SQUARED PLUS -->
+<!ENTITY plusdo	"&#x2214;"> <!-- DOT PLUS -->
+<!ENTITY rthree	"&#x22CC;"> <!-- RIGHT SEMIDIRECT PRODUCT -->
+<!ENTITY rtimes	"&#x22CA;"> <!-- RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY sdot	"&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY sdotb	"&#x22A1;"> <!-- SQUARED DOT OPERATOR -->
+<!ENTITY setmn	"&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sqcap	"&#x2293;"> <!-- SQUARE CAP -->
+<!ENTITY sqcup	"&#x2294;"> <!-- SQUARE CUP -->
+<!ENTITY ssetmn	"&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sstarf	"&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY timesb	"&#x22A0;"> <!-- SQUARED TIMES -->
+<!ENTITY top	"&#x22A4;"> <!-- DOWN TACK -->
+<!ENTITY uplus	"&#x228E;"> <!-- MULTISET UNION -->
+<!ENTITY wreath	"&#x2240;"> <!-- WREATH PRODUCT -->
+<!ENTITY xcirc	"&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY xdtri	"&#x25BD;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY xutri	"&#x25B3;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY coprod	"&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY prod	"&#x220F;"> <!-- N-ARY PRODUCT -->
+<!ENTITY sum	"&#x2211;"> <!-- N-ARY SUMMATION -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsc.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsc.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsc.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<!-- iso-amsc.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY rceil	"&#x2309;"> <!-- RIGHT CEILING -->
+<!ENTITY rfloor	"&#x230B;"> <!-- RIGHT FLOOR -->
+<!ENTITY rpargt	"&#xE291;"> <!--  -->
+<!ENTITY urcorn	"&#x231D;"> <!-- TOP RIGHT CORNER -->
+<!ENTITY drcorn	"&#x231F;"> <!-- BOTTOM RIGHT CORNER -->
+<!ENTITY lceil	"&#x2308;"> <!-- LEFT CEILING -->
+<!ENTITY lfloor	"&#x230A;"> <!-- LEFT FLOOR -->
+<!--     lpargt	Unknown unicode character -->
+<!ENTITY ulcorn	"&#x231C;"> <!-- TOP LEFT CORNER -->
+<!ENTITY dlcorn	"&#x231E;"> <!-- BOTTOM LEFT CORNER -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsn.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsn.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsn.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,66 @@
+<!-- iso-amsn.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz
+     With additional derivations from
+     ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY gnap	"&#xE411;"> <!--  -->
+<!ENTITY gne	"&#x2269;"> <!--  -->
+<!ENTITY gnE	"&#x2269;"> <!--  -->
+<!ENTITY gnsim	"&#x22E7;"> <!-- GREATER-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY gvnE	"&#x2269;"> <!-- GREATER-THAN BUT NOT EQUAL TO -->
+<!ENTITY lnap	"&#xE2A2;"> <!--  -->
+<!ENTITY lnE	"&#x2268;"> <!--  -->
+<!ENTITY lne	"&#x2268;"> <!--  -->
+<!ENTITY lnsim	"&#x22E6;"> <!--  -->
+<!ENTITY lvnE	"&#x2268;"> <!-- LESS-THAN BUT NOT EQUAL TO -->
+<!ENTITY nap	"&#x2249;"> <!-- NOT ALMOST EQUAL TO -->
+<!ENTITY ncong	"&#x2247;"> <!-- NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -->
+<!ENTITY nequiv	"&#x2262;"> <!-- NOT IDENTICAL TO -->
+<!ENTITY ngE	"&#x2271;"> <!--  -->
+<!ENTITY nge	"&#x2271;"> <!-- NEITHER GREATER-THAN NOR EQUAL TO -->
+<!ENTITY nges	"&#x2271;"> <!--  -->
+<!ENTITY ngt	"&#x226F;"> <!-- NOT GREATER-THAN -->
+<!ENTITY nle	"&#x2270;"> <!-- NEITHER LESS-THAN NOR EQUAL TO -->
+<!ENTITY nlE	"&#x2270;"> <!--  -->
+<!ENTITY nles	"&#x2270;"> <!--  -->
+<!ENTITY nlt	"&#x226E;"> <!-- NOT LESS-THAN -->
+<!ENTITY nltri	"&#x22EA;"> <!-- NOT NORMAL SUBGROUP OF -->
+<!ENTITY nltrie	"&#x22EC;"> <!-- NOT NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY nmid	"&#x2224;"> <!-- DOES NOT DIVIDE -->
+<!ENTITY npar	"&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY npr	"&#x2280;"> <!-- DOES NOT PRECEDE -->
+<!ENTITY npre	"&#x22E0;"> <!-- DOES NOT PRECEDE OR EQUAL -->
+<!ENTITY nrtri	"&#x22EB;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP -->
+<!ENTITY nrtrie	"&#x22ED;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -->
+<!ENTITY nsc	"&#x2281;"> <!-- DOES NOT SUCCEED -->
+<!ENTITY nsce	"&#x22E1;"> <!-- DOES NOT SUCCEED OR EQUAL -->
+<!ENTITY nsim	"&#x2241;"> <!--  -->
+<!ENTITY nsime	"&#x2244;"> <!--  -->
+<!ENTITY nsmid	"&#xE2AA;"> <!--  -->
+<!ENTITY nspar	"&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY nsub	"&#x2284;"> <!-- NOT A SUBSET OF -->
+<!ENTITY nsube	"&#x2288;"> <!--  -->
+<!ENTITY nsubE	"&#x2288;"> <!--  -->
+<!ENTITY nsup	"&#x2285;"> <!-- NOT A SUPERSET OF -->
+<!ENTITY nsupE	"&#x2289;"> <!--  -->
+<!ENTITY nsupe	"&#x2289;"> <!--  -->
+<!ENTITY nvdash	"&#x22AC;"> <!-- DOES NOT PROVE -->
+<!ENTITY nvDash	"&#x22AD;"> <!-- NOT TRUE -->
+<!ENTITY nVDash	"&#x22AF;"> <!-- NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -->
+<!ENTITY nVdash	"&#x22AE;"> <!-- DOES NOT FORCE -->
+<!ENTITY prnap	"&#x22E8;"> <!--  -->
+<!ENTITY prnE	"&#xE2B3;"> <!--  -->
+<!ENTITY prnsim	"&#x22E8;"> <!--  -->
+<!ENTITY scnap	"&#x22E9;"> <!--  -->
+<!ENTITY scnE	"&#xE2B5;"> <!--  -->
+<!ENTITY scnsim	"&#x22E9;"> <!--  -->
+<!ENTITY subne	"&#x228A;"> <!--  -->
+<!ENTITY subnE	"&#x228A;"> <!-- SUBSET OF WITH NOT EQUAL TO -->
+<!ENTITY supne	"&#x228B;"> <!--  -->
+<!ENTITY supnE	"&#x228B;"> <!--  -->
+<!ENTITY vsubnE	"&#xE2B8;"> <!--  -->
+<!ENTITY vsubne	"&#x228A;"> <!-- SUBSET OF WITH NOT EQUAL TO -->
+<!ENTITY vsupne	"&#x228B;"> <!-- SUPERSET OF WITH NOT EQUAL TO -->
+<!ENTITY vsupnE	"&#x228B;"> <!-- SUPERSET OF WITH NOT EQUAL TO -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amso.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amso.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amso.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<!-- iso-amso.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz
+     With additional derivations from
+     ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY ang	"&#x2220;"> <!-- ANGLE -->
+<!ENTITY angmsd	"&#x2221;"> <!-- MEASURED ANGLE -->
+<!ENTITY beth	"&#x2136;"> <!-- BET SYMBOL -->
+<!ENTITY bprime	"&#x2035;"> <!-- REVERSED PRIME -->
+<!ENTITY comp	"&#x2201;"> <!-- COMPLEMENT -->
+<!ENTITY daleth	"&#x2138;"> <!-- DALET SYMBOL -->
+<!ENTITY ell	"&#x2113;"> <!-- SCRIPT SMALL L -->
+<!ENTITY empty	"&#x2205;"> <!--  -->
+<!ENTITY gimel	"&#x2137;"> <!-- GIMEL SYMBOL -->
+<!ENTITY image	"&#x2111;"> <!-- BLACK-LETTER CAPITAL I -->
+<!ENTITY inodot	"&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!--     jnodot	Unknown unicode character -->
+<!ENTITY nexist	"&#x2204;"> <!-- THERE DOES NOT EXIST -->
+<!ENTITY oS	"&#x24C8;"> <!-- CIRCLED LATIN CAPITAL LETTER S -->
+<!ENTITY planck	"&#x210F;"> <!-- PLANCK CONSTANT OVER TWO PI -->
+<!ENTITY real	"&#x211C;"> <!-- BLACK-LETTER CAPITAL R -->
+<!ENTITY sbsol	"&#xFE68;"> <!-- SMALL REVERSE SOLIDUS -->
+<!ENTITY vprime	"&#x2032;"> <!-- PRIME -->
+<!ENTITY weierp	"&#x2118;"> <!-- SCRIPT CAPITAL P -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsr.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsr.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-amsr.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,91 @@
+<!-- iso-amsr.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz.
+     With additional derivations from
+     ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY ape	"&#x224A;"> <!--  -->
+<!ENTITY asymp	"&#x224D;"> <!-- EQUIVALENT TO -->
+<!ENTITY bcong	"&#x224C;"> <!-- ALL EQUAL TO -->
+<!ENTITY bepsi	"&#x220D;"> <!-- SMALL CONTAINS AS MEMBER -->
+<!ENTITY bowtie	"&#x22C8;"> <!--  -->
+<!ENTITY bsim	"&#x223D;"> <!--  -->
+<!ENTITY bsime	"&#x22CD;"> <!--  -->
+<!ENTITY bump	"&#x224E;"> <!--  -->
+<!ENTITY bumpe	"&#x224F;"> <!--  -->
+<!ENTITY cire	"&#x2257;"> <!--  -->
+<!ENTITY colone	"&#x2254;"> <!--  -->
+<!ENTITY cuepr	"&#x22DE;"> <!--  -->
+<!ENTITY cuesc	"&#x22DF;"> <!--  -->
+<!ENTITY cupre	"&#x227C;"> <!--  -->
+<!ENTITY dashv	"&#x22A3;"> <!--  -->
+<!ENTITY ecir	"&#x2256;"> <!--  -->
+<!ENTITY ecolon	"&#x2255;"> <!--  -->
+<!ENTITY eDot	"&#x2251;"> <!--  -->
+<!ENTITY esdot	"&#x2250;"> <!--  -->
+<!ENTITY efDot	"&#x2252;"> <!--  -->
+<!ENTITY egs	"&#x22DD;"> <!--  -->
+<!ENTITY els	"&#x22DC;"> <!--  -->
+<!ENTITY erDot	"&#x2253;"> <!--  -->
+<!ENTITY fork	"&#x22D4;"> <!--  -->
+<!ENTITY frown	"&#x2322;"> <!--  -->
+<!ENTITY gap	"&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY gsdot	"&#x22D7;"> <!--  -->
+<!ENTITY gE	"&#x2267;"> <!--  -->
+<!ENTITY gel	"&#x22DB;"> <!--  -->
+<!ENTITY gEl	"&#x22DB;"> <!--  -->
+<!ENTITY ges	"&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY Gg	"&#x22D9;"> <!-- VERY MUCH GREATER-THAN -->
+<!ENTITY gl	"&#x2277;"> <!--  -->
+<!ENTITY gsim	"&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY Gt	"&#x226B;"> <!-- MUCH GREATER-THAN -->
+<!ENTITY lap	"&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY ldot	"&#x22D6;"> <!--  -->
+<!ENTITY lE	"&#x2266;"> <!--  -->
+<!ENTITY lEg	"&#x22DA;"> <!--  -->
+<!ENTITY leg	"&#x22DA;"> <!--  -->
+<!ENTITY les	"&#x2264;"> <!-- LESS-THAN OR EQUAL TO -->
+<!ENTITY lg	"&#x2276;"> <!-- LESS-THAN OR GREATER-THAN -->
+<!ENTITY Ll	"&#x22D8;"> <!--  -->
+<!ENTITY lsim	"&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY Lt	"&#x226A;"> <!-- MUCH LESS-THAN -->
+<!ENTITY ltrie	"&#x22B4;"> <!--  -->
+<!ENTITY mid	"&#x2223;"> <!--  -->
+<!ENTITY models	"&#x22A7;"> <!-- MODELS -->
+<!ENTITY pr	"&#x227A;"> <!--  -->
+<!ENTITY prap	"&#x227E;"> <!--  -->
+<!ENTITY pre	"&#x227C;"> <!--  -->
+<!ENTITY prsim	"&#x227E;"> <!--  -->
+<!ENTITY rtrie	"&#x22B5;"> <!--  -->
+<!ENTITY samalg	"&#x2210;"> <!--  -->
+<!ENTITY sc	"&#x227B;"> <!--  -->
+<!ENTITY scap	"&#x227F;"> <!--  -->
+<!ENTITY sccue	"&#x227D;"> <!--  -->
+<!ENTITY sce	"&#x227D;"> <!--  -->
+<!ENTITY scsim	"&#x227F;"> <!--  -->
+<!ENTITY sfrown	"&#x2322;"> <!-- FROWN -->
+<!ENTITY smid	"&#xE301;"> <!--  -->
+<!ENTITY smile	"&#x2323;"> <!--  -->
+<!ENTITY spar	"&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY sqsub	"&#x228F;"> <!--  -->
+<!ENTITY sqsube	"&#x2291;"> <!--  -->
+<!ENTITY sqsup	"&#x2290;"> <!--  -->
+<!ENTITY sqsupe	"&#x2292;"> <!--  -->
+<!ENTITY ssmile	"&#x2323;"> <!-- SMILE -->
+<!ENTITY Sub	"&#x22D0;"> <!--  -->
+<!ENTITY subE	"&#x2286;"> <!--  -->
+<!ENTITY Sup	"&#x22D1;"> <!--  -->
+<!ENTITY supE	"&#x2287;"> <!--  -->
+<!ENTITY thkap	"&#x2248;"> <!-- ALMOST EQUAL TO -->
+<!ENTITY thksim	"&#x223C;"> <!-- TILDE OPERATOR -->
+<!ENTITY trie	"&#x225C;"> <!--  -->
+<!ENTITY twixt	"&#x226C;"> <!-- BETWEEN -->
+<!ENTITY vdash	"&#x22A2;"> <!--  -->
+<!ENTITY Vdash	"&#x22A9;"> <!--  -->
+<!ENTITY vDash	"&#x22A8;"> <!--  -->
+<!ENTITY veebar	"&#x22BB;"> <!--  -->
+<!ENTITY vltri	"&#x22B2;"> <!--  -->
+<!ENTITY vprop	"&#x221D;"> <!--  -->
+<!ENTITY vrtri	"&#x22B3;"> <!--  -->
+<!ENTITY Vvdash	"&#x22AA;"> <!--  -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-box.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-box.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-box.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,45 @@
+<!-- iso-box.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY boxh	"&#x2500;"> <!-- BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxv	"&#x2502;"> <!-- BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxur	"&#x2514;"> <!-- BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxul	"&#x2518;"> <!-- BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxdl	"&#x2510;"> <!-- BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxdr	"&#x250C;"> <!-- BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxvr	"&#x251C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND RIGHT -->
+<!ENTITY boxhu	"&#x2534;"> <!-- BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxvl	"&#x2524;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxhd	"&#x252C;"> <!-- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxvh	"&#x253C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxvR	"&#x255E;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxhU	"&#x2567;"> <!-- BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvL	"&#x2561;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxhD	"&#x2564;"> <!-- BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvH	"&#x256A;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxH	"&#x2550;"> <!-- BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxV	"&#x2551;"> <!-- BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxUR	"&#x2558;"> <!-- BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxUL	"&#x255B;"> <!-- BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDL	"&#x2555;"> <!-- BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDR	"&#x2552;"> <!-- BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxVR	"&#x255F;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxHU	"&#x2568;"> <!-- BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVL	"&#x2562;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxHD	"&#x2565;"> <!-- BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVH	"&#x256B;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVr	"&#x2560;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxHu	"&#x2569;"> <!-- BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxVl	"&#x2563;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxHd	"&#x2566;"> <!-- BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxVh	"&#x256C;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxuR	"&#x2559;"> <!-- BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUl	"&#x255C;"> <!-- BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxdL	"&#x2556;"> <!-- BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxDr	"&#x2553;"> <!-- BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUr	"&#x255A;"> <!-- BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxuL	"&#x255D;"> <!-- BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxDl	"&#x2557;"> <!-- BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxdR	"&#x2554;"> <!-- BOX DRAWINGS DOUBLE DOWN AND RIGHT -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-cyr1.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-cyr1.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-cyr1.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,72 @@
+<!-- iso-cyr1.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acy	"&#x0430;"> <!-- CYRILLIC SMALL LETTER A -->
+<!ENTITY Acy	"&#x0410;"> <!-- CYRILLIC CAPITAL LETTER A -->
+<!ENTITY bcy	"&#x0431;"> <!-- CYRILLIC SMALL LETTER BE -->
+<!ENTITY Bcy	"&#x0411;"> <!-- CYRILLIC CAPITAL LETTER BE -->
+<!ENTITY vcy	"&#x0432;"> <!-- CYRILLIC SMALL LETTER VE -->
+<!ENTITY Vcy	"&#x0412;"> <!-- CYRILLIC CAPITAL LETTER VE -->
+<!ENTITY gcy	"&#x0433;"> <!-- CYRILLIC SMALL LETTER GHE -->
+<!ENTITY Gcy	"&#x0413;"> <!-- CYRILLIC CAPITAL LETTER GHE -->
+<!ENTITY dcy	"&#x0434;"> <!-- CYRILLIC SMALL LETTER DE -->
+<!ENTITY Dcy	"&#x0414;"> <!-- CYRILLIC CAPITAL LETTER DE -->
+<!ENTITY iecy	"&#x0435;"> <!-- CYRILLIC SMALL LETTER IE -->
+<!ENTITY IEcy	"&#x0415;"> <!-- CYRILLIC CAPITAL LETTER IE -->
+<!ENTITY iocy	"&#x0451;"> <!-- CYRILLIC SMALL LETTER IO -->
+<!ENTITY IOcy	"&#x0401;"> <!-- CYRILLIC CAPITAL LETTER IO -->
+<!ENTITY zhcy	"&#x0436;"> <!-- CYRILLIC SMALL LETTER ZHE -->
+<!ENTITY ZHcy	"&#x0416;"> <!-- CYRILLIC CAPITAL LETTER ZHE -->
+<!ENTITY zcy	"&#x0437;"> <!-- CYRILLIC SMALL LETTER ZE -->
+<!ENTITY Zcy	"&#x0417;"> <!-- CYRILLIC CAPITAL LETTER ZE -->
+<!ENTITY icy	"&#x0438;"> <!-- CYRILLIC SMALL LETTER I -->
+<!ENTITY Icy	"&#x0418;"> <!-- CYRILLIC CAPITAL LETTER I -->
+<!ENTITY jcy	"&#x0439;"> <!-- CYRILLIC SMALL LETTER SHORT I -->
+<!ENTITY Jcy	"&#x0419;"> <!-- CYRILLIC CAPITAL LETTER SHORT I -->
+<!ENTITY kcy	"&#x043A;"> <!-- CYRILLIC SMALL LETTER KA -->
+<!ENTITY Kcy	"&#x041A;"> <!-- CYRILLIC CAPITAL LETTER KA -->
+<!ENTITY lcy	"&#x043B;"> <!-- CYRILLIC SMALL LETTER EL -->
+<!ENTITY Lcy	"&#x041B;"> <!-- CYRILLIC CAPITAL LETTER EL -->
+<!ENTITY mcy	"&#x043C;"> <!-- CYRILLIC SMALL LETTER EM -->
+<!ENTITY Mcy	"&#x041C;"> <!-- CYRILLIC CAPITAL LETTER EM -->
+<!ENTITY ncy	"&#x043D;"> <!-- CYRILLIC SMALL LETTER EN -->
+<!ENTITY Ncy	"&#x041D;"> <!-- CYRILLIC CAPITAL LETTER EN -->
+<!ENTITY ocy	"&#x043E;"> <!-- CYRILLIC SMALL LETTER O -->
+<!ENTITY Ocy	"&#x041E;"> <!-- CYRILLIC CAPITAL LETTER O -->
+<!ENTITY pcy	"&#x043F;"> <!-- CYRILLIC SMALL LETTER PE -->
+<!ENTITY Pcy	"&#x041F;"> <!-- CYRILLIC CAPITAL LETTER PE -->
+<!ENTITY rcy	"&#x0440;"> <!-- CYRILLIC SMALL LETTER ER -->
+<!ENTITY Rcy	"&#x0420;"> <!-- CYRILLIC CAPITAL LETTER ER -->
+<!ENTITY scy	"&#x0441;"> <!-- CYRILLIC SMALL LETTER ES -->
+<!ENTITY Scy	"&#x0421;"> <!-- CYRILLIC CAPITAL LETTER ES -->
+<!ENTITY tcy	"&#x0442;"> <!-- CYRILLIC SMALL LETTER TE -->
+<!ENTITY Tcy	"&#x0422;"> <!-- CYRILLIC CAPITAL LETTER TE -->
+<!ENTITY ucy	"&#x0443;"> <!-- CYRILLIC SMALL LETTER U -->
+<!ENTITY Ucy	"&#x0423;"> <!-- CYRILLIC CAPITAL LETTER U -->
+<!ENTITY fcy	"&#x0444;"> <!-- CYRILLIC SMALL LETTER EF -->
+<!ENTITY Fcy	"&#x0424;"> <!-- CYRILLIC CAPITAL LETTER EF -->
+<!ENTITY khcy	"&#x0445;"> <!-- CYRILLIC SMALL LETTER HA -->
+<!ENTITY KHcy	"&#x0425;"> <!-- CYRILLIC CAPITAL LETTER HA -->
+<!ENTITY tscy	"&#x0446;"> <!-- CYRILLIC SMALL LETTER TSE -->
+<!ENTITY TScy	"&#x0426;"> <!-- CYRILLIC CAPITAL LETTER TSE -->
+<!ENTITY chcy	"&#x0447;"> <!-- CYRILLIC SMALL LETTER CHE -->
+<!ENTITY CHcy	"&#x0427;"> <!-- CYRILLIC CAPITAL LETTER CHE -->
+<!ENTITY shcy	"&#x0448;"> <!-- CYRILLIC SMALL LETTER SHA -->
+<!ENTITY SHcy	"&#x0428;"> <!-- CYRILLIC CAPITAL LETTER SHA -->
+<!ENTITY shchcy	"&#x0449;"> <!-- CYRILLIC SMALL LETTER SHCHA -->
+<!ENTITY SHCHcy	"&#x0429;"> <!-- CYRILLIC CAPITAL LETTER SHCHA -->
+<!ENTITY hardcy	"&#x044A;"> <!-- CYRILLIC SMALL LETTER HARD SIGN -->
+<!ENTITY HARDcy	"&#x042A;"> <!-- CYRILLIC CAPITAL LETTER HARD SIGN -->
+<!ENTITY ycy	"&#x044B;"> <!-- CYRILLIC SMALL LETTER YERU -->
+<!ENTITY Ycy	"&#x042B;"> <!-- CYRILLIC CAPITAL LETTER YERU -->
+<!ENTITY softcy	"&#x044C;"> <!-- CYRILLIC SMALL LETTER SOFT SIGN -->
+<!ENTITY SOFTcy	"&#x042C;"> <!-- CYRILLIC CAPITAL LETTER SOFT SIGN -->
+<!ENTITY ecy	"&#x044D;"> <!-- CYRILLIC SMALL LETTER E -->
+<!ENTITY Ecy	"&#x042D;"> <!-- CYRILLIC CAPITAL LETTER E -->
+<!ENTITY yucy	"&#x044E;"> <!-- CYRILLIC SMALL LETTER YU -->
+<!ENTITY YUcy	"&#x042E;"> <!-- CYRILLIC CAPITAL LETTER YU -->
+<!ENTITY yacy	"&#x044F;"> <!-- CYRILLIC SMALL LETTER YA -->
+<!ENTITY YAcy	"&#x042F;"> <!-- CYRILLIC CAPITAL LETTER YA -->
+<!ENTITY numero	"&#x2116;"> <!-- NUMERO SIGN -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-cyr2.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-cyr2.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-cyr2.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+<!-- iso-cyr2.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY djcy	"&#x0452;"> <!-- CYRILLIC SMALL LETTER DJE -->
+<!ENTITY DJcy	"&#x0402;"> <!-- CYRILLIC CAPITAL LETTER DJE -->
+<!ENTITY gjcy	"&#x0453;"> <!-- CYRILLIC SMALL LETTER GJE -->
+<!ENTITY GJcy	"&#x0403;"> <!-- CYRILLIC CAPITAL LETTER GJE -->
+<!ENTITY jukcy	"&#x0454;"> <!-- CYRILLIC SMALL LETTER UKRAINIAN IE -->
+<!ENTITY Jukcy	"&#x0404;"> <!-- CYRILLIC CAPITAL LETTER UKRAINIAN IE -->
+<!ENTITY dscy	"&#x0455;"> <!-- CYRILLIC SMALL LETTER DZE -->
+<!ENTITY DScy	"&#x0405;"> <!-- CYRILLIC CAPITAL LETTER DZE -->
+<!ENTITY iukcy	"&#x0456;"> <!-- CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY Iukcy	"&#x0406;"> <!-- CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY yicy	"&#x0457;"> <!-- CYRILLIC SMALL LETTER YI -->
+<!ENTITY YIcy	"&#x0407;"> <!-- CYRILLIC CAPITAL LETTER YI -->
+<!ENTITY jsercy	"&#x0458;"> <!-- CYRILLIC SMALL LETTER JE -->
+<!ENTITY Jsercy	"&#x0408;"> <!-- CYRILLIC CAPITAL LETTER JE -->
+<!ENTITY ljcy	"&#x0459;"> <!-- CYRILLIC SMALL LETTER LJE -->
+<!ENTITY LJcy	"&#x0409;"> <!-- CYRILLIC CAPITAL LETTER LJE -->
+<!ENTITY njcy	"&#x045A;"> <!-- CYRILLIC SMALL LETTER NJE -->
+<!ENTITY NJcy	"&#x040A;"> <!-- CYRILLIC CAPITAL LETTER NJE -->
+<!ENTITY tshcy	"&#x045B;"> <!-- CYRILLIC SMALL LETTER TSHE -->
+<!ENTITY TSHcy	"&#x040B;"> <!-- CYRILLIC CAPITAL LETTER TSHE -->
+<!ENTITY kjcy	"&#x045C;"> <!-- CYRILLIC SMALL LETTER KJE -->
+<!ENTITY KJcy	"&#x040C;"> <!-- CYRILLIC CAPITAL LETTER KJE -->
+<!ENTITY ubrcy	"&#x045E;"> <!-- CYRILLIC SMALL LETTER SHORT U -->
+<!ENTITY Ubrcy	"&#x040E;"> <!-- CYRILLIC CAPITAL LETTER SHORT U -->
+<!ENTITY dzcy	"&#x045F;"> <!-- CYRILLIC SMALL LETTER DZHE -->
+<!ENTITY DZcy	"&#x040F;"> <!-- CYRILLIC CAPITAL LETTER DZHE -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-dia.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-dia.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-dia.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<!-- iso-dia.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acute	"&#x00B4;"> <!-- ACUTE ACCENT -->
+<!ENTITY breve	"&#x02D8;"> <!-- BREVE -->
+<!ENTITY caron	"&#x02C7;"> <!-- CARON -->
+<!ENTITY cedil	"&#x00B8;"> <!-- CEDILLA -->
+<!ENTITY circ	"&#x005E;"> <!-- RING OPERATOR -->
+<!ENTITY dblac	"&#x02DD;"> <!-- DOUBLE ACUTE ACCENT -->
+<!ENTITY die	"&#x00A8;"> <!--  -->
+<!ENTITY dot	"&#x02D9;"> <!-- DOT ABOVE -->
+<!ENTITY grave	"&#x0060;"> <!-- GRAVE ACCENT -->
+<!ENTITY macr	"&#x00AF;"> <!-- MACRON -->
+<!ENTITY ogon	"&#x02DB;"> <!-- OGONEK -->
+<!ENTITY ring	"&#x02DA;"> <!-- RING ABOVE -->
+<!ENTITY tilde	"&#x02DC;"> <!-- TILDE -->
+<!ENTITY uml	"&#x00A8;"> <!--  -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk1.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk1.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk1.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,54 @@
+<!-- iso-grk1.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY agr	"&#x03B1;"> <!--  -->
+<!ENTITY Agr	"&#x0391;"> <!-- GREEK CAPITAL LETTER ALPHA -->
+<!ENTITY bgr	"&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY Bgr	"&#x0392;"> <!-- GREEK CAPITAL LETTER BETA -->
+<!ENTITY ggr	"&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Ggr	"&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY dgr	"&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Dgr	"&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY egr	"&#x03B5;"> <!--  -->
+<!ENTITY Egr	"&#x0395;"> <!-- GREEK CAPITAL LETTER EPSILON -->
+<!ENTITY zgr	"&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY Zgr	"&#x0396;"> <!-- GREEK CAPITAL LETTER ZETA -->
+<!ENTITY eegr	"&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY EEgr	"&#x0397;"> <!-- GREEK CAPITAL LETTER ETA -->
+<!ENTITY thgr	"&#x03B8;"> <!--  -->
+<!ENTITY THgr	"&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY igr	"&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY Igr	"&#x0399;"> <!-- GREEK CAPITAL LETTER IOTA -->
+<!ENTITY kgr	"&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY Kgr	"&#x039A;"> <!-- GREEK CAPITAL LETTER KAPPA -->
+<!ENTITY lgr	"&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lgr	"&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mgr	"&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY Mgr	"&#x039C;"> <!-- GREEK CAPITAL LETTER MU -->
+<!ENTITY ngr	"&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY Ngr	"&#x039D;"> <!-- GREEK CAPITAL LETTER NU -->
+<!ENTITY xgr	"&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xgr	"&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY ogr	"&#x03BF;"> <!-- GREEK SMALL LETTER OMICRON -->
+<!ENTITY Ogr	"&#x039F;"> <!-- GREEK CAPITAL LETTER OMICRON -->
+<!ENTITY pgr	"&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY Pgr	"&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rgr	"&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY Rgr	"&#x03A1;"> <!-- GREEK CAPITAL LETTER RHO -->
+<!ENTITY sgr	"&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sgr	"&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sfgr	"&#x03C2;"> <!--  -->
+<!ENTITY tgr	"&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY Tgr	"&#x03A4;"> <!-- GREEK CAPITAL LETTER TAU -->
+<!ENTITY ugr	"&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Ugr	"&#x03A5;"> <!--  -->
+<!ENTITY phgr	"&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY PHgr	"&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY khgr	"&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY KHgr	"&#x03A7;"> <!-- GREEK CAPITAL LETTER CHI -->
+<!ENTITY psgr	"&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY PSgr	"&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY ohgr	"&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY OHgr	"&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk2.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk2.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk2.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25 @@
+<!-- iso-grk2.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacgr	"&#x03AC;"> <!-- GREEK SMALL LETTER ALPHA WITH TONOS -->
+<!ENTITY Aacgr	"&#x0386;"> <!-- GREEK CAPITAL LETTER ALPHA WITH TONOS -->
+<!ENTITY eacgr	"&#x03AD;"> <!-- GREEK SMALL LETTER EPSILON WITH TONOS -->
+<!ENTITY Eacgr	"&#x0388;"> <!-- GREEK CAPITAL LETTER EPSILON WITH TONOS -->
+<!ENTITY eeacgr	"&#x03AE;"> <!-- GREEK SMALL LETTER ETA WITH TONOS -->
+<!ENTITY EEacgr	"&#x0389;"> <!-- GREEK CAPITAL LETTER ETA WITH TONOS -->
+<!ENTITY idigr	"&#x03CA;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY Idigr	"&#x03AA;"> <!-- GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY iacgr	"&#x03AF;"> <!-- GREEK SMALL LETTER IOTA WITH TONOS -->
+<!ENTITY Iacgr	"&#x038A;"> <!-- GREEK CAPITAL LETTER IOTA WITH TONOS -->
+<!ENTITY idiagr	"&#x0390;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
+<!ENTITY oacgr	"&#x03CC;"> <!-- GREEK SMALL LETTER OMICRON WITH TONOS -->
+<!ENTITY Oacgr	"&#x038C;"> <!-- GREEK CAPITAL LETTER OMICRON WITH TONOS -->
+<!ENTITY udigr	"&#x03CB;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY Udigr	"&#x03AB;"> <!-- GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY uacgr	"&#x03CD;"> <!-- GREEK SMALL LETTER UPSILON WITH TONOS -->
+<!ENTITY Uacgr	"&#x038E;"> <!-- GREEK CAPITAL LETTER UPSILON WITH TONOS -->
+<!ENTITY udiagr	"&#x03B0;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
+<!ENTITY ohacgr	"&#x03CE;"> <!-- GREEK SMALL LETTER OMEGA WITH TONOS -->
+<!ENTITY OHacgr	"&#x038F;"> <!-- GREEK CAPITAL LETTER OMEGA WITH TONOS -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk3.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk3.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk3.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,48 @@
+<!-- iso-grk3.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY alpha	"&#x03B1;"> <!--  -->
+<!ENTITY beta	"&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY gamma	"&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Gamma	"&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY gammad	"&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY delta	"&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Delta	"&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY epsi	"&#x220A;"> <!--  -->
+<!ENTITY epsiv	"&#x03B5;"> <!--  -->
+<!ENTITY epsis	"&#x220A;"> <!--  -->
+<!ENTITY zeta	"&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY eta	"&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY thetas	"&#x03B8;"> <!--  -->
+<!ENTITY Theta	"&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY thetav	"&#x03D1;"> <!--  -->
+<!ENTITY iota	"&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY kappa	"&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY kappav	"&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY lambda	"&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lambda	"&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mu	"&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY nu	"&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY xi	"&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xi	"&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY pi	"&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY piv	"&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY Pi	"&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rho	"&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY rhov	"&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY sigma	"&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sigma	"&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sigmav	"&#x03C2;"> <!--  -->
+<!ENTITY tau	"&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY upsi	"&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Upsi	"&#x03D2;"> <!--  -->
+<!ENTITY phis	"&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY Phi	"&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY phiv	"&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY chi	"&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY psi	"&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY Psi	"&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY omega	"&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY Omega	"&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk4.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk4.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-grk4.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,48 @@
+<!-- iso-grk4.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY b.alpha	"&#x03B1;"> <!--  -->
+<!ENTITY b.beta	"&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY b.gamma	"&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY b.Gamma	"&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY b.gammad	"&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY b.delta	"&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY b.Delta	"&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY b.epsi	"&#x03B5;"> <!--  -->
+<!ENTITY b.epsiv	"&#x03B5;"> <!--  -->
+<!ENTITY b.epsis	"&#x03B5;"> <!--  -->
+<!ENTITY b.zeta	"&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY b.eta	"&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY b.thetas	"&#x03B8;"> <!--  -->
+<!ENTITY b.Theta	"&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY b.thetav	"&#x03D1;"> <!--  -->
+<!ENTITY b.iota	"&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY b.kappa	"&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY b.kappav	"&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY b.lambda	"&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY b.Lambda	"&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY b.mu	"&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY b.nu	"&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY b.xi	"&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY b.Xi	"&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY b.pi	"&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY b.Pi	"&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY b.piv	"&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY b.rho	"&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY b.rhov	"&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY b.sigma	"&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY b.Sigma	"&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY b.sigmav	"&#x03C2;"> <!--  -->
+<!ENTITY b.tau	"&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY b.upsi	"&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY b.Upsi	"&#x03D2;"> <!--  -->
+<!ENTITY b.phis	"&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY b.Phi	"&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY b.phiv	"&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY b.chi	"&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY b.psi	"&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY b.Psi	"&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY b.omega	"&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY b.Omega	"&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-lat1.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-lat1.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-lat1.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,67 @@
+<!-- iso-lat1.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacute	"&#x00E1;"> <!-- LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Aacute	"&#x00C1;"> <!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY acirc	"&#x00E2;"> <!-- LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY Acirc	"&#x00C2;"> <!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY agrave	"&#x00E0;"> <!-- LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Agrave	"&#x00C0;"> <!-- LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY aring	"&#x00E5;"> <!-- LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Aring	"&#x00C5;"> <!-- LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY atilde	"&#x00E3;"> <!-- LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Atilde	"&#x00C3;"> <!-- LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY auml	"&#x00E4;"> <!-- LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Auml	"&#x00C4;"> <!-- LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY aelig	"&#x00E6;"> <!-- LATIN SMALL LETTER AE -->
+<!ENTITY AElig	"&#x00C6;"> <!-- LATIN CAPITAL LETTER AE -->
+<!ENTITY ccedil	"&#x00E7;"> <!-- LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Ccedil	"&#x00C7;"> <!-- LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY eth	"&#x00F0;"> <!-- LATIN SMALL LETTER ETH -->
+<!ENTITY ETH	"&#x00D0;"> <!-- LATIN CAPITAL LETTER ETH -->
+<!ENTITY eacute	"&#x00E9;"> <!-- LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Eacute	"&#x00C9;"> <!-- LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY ecirc	"&#x00EA;"> <!-- LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Ecirc	"&#x00CA;"> <!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY egrave	"&#x00E8;"> <!-- LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY Egrave	"&#x00C8;"> <!-- LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY euml	"&#x00EB;"> <!-- LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Euml	"&#x00CB;"> <!-- LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY iacute	"&#x00ED;"> <!-- LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Iacute	"&#x00CD;"> <!-- LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY icirc	"&#x00EE;"> <!-- LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Icirc	"&#x00CE;"> <!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY igrave	"&#x00EC;"> <!-- LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Igrave	"&#x00CC;"> <!-- LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY iuml	"&#x00EF;"> <!-- LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Iuml	"&#x00CF;"> <!-- LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY ntilde	"&#x00F1;"> <!-- LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Ntilde	"&#x00D1;"> <!-- LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY oacute	"&#x00F3;"> <!-- LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Oacute	"&#x00D3;"> <!-- LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY ocirc	"&#x00F4;"> <!-- LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ocirc	"&#x00D4;"> <!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ograve	"&#x00F2;"> <!-- LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Ograve	"&#x00D2;"> <!-- LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY oslash	"&#x00F8;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY Oslash	"&#x00D8;"> <!-- LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY otilde	"&#x00F5;"> <!-- LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Otilde	"&#x00D5;"> <!-- LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY ouml	"&#x00F6;"> <!-- LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY Ouml	"&#x00D6;"> <!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig	"&#x00DF;"> <!-- LATIN SMALL LETTER SHARP S -->
+<!ENTITY thorn	"&#x00FE;"> <!-- LATIN SMALL LETTER THORN -->
+<!ENTITY THORN	"&#x00DE;"> <!-- LATIN CAPITAL LETTER THORN -->
+<!ENTITY uacute	"&#x00FA;"> <!-- LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Uacute	"&#x00DA;"> <!-- LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY ucirc	"&#x00FB;"> <!-- LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ucirc	"&#x00DB;"> <!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ugrave	"&#x00F9;"> <!-- LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Ugrave	"&#x00D9;"> <!-- LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY uuml	"&#x00FC;"> <!-- LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Uuml	"&#x00DC;"> <!-- LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY yacute	"&#x00FD;"> <!-- LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY Yacute	"&#x00DD;"> <!-- LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yuml	"&#x00FF;"> <!-- LATIN SMALL LETTER Y WITH DIAERESIS -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-lat2.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-lat2.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-lat2.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,126 @@
+<!-- iso-lat2.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY abreve	"&#x0103;"> <!-- LATIN SMALL LETTER A WITH BREVE -->
+<!ENTITY Abreve	"&#x0102;"> <!-- LATIN CAPITAL LETTER A WITH BREVE -->
+<!ENTITY amacr	"&#x0101;"> <!-- LATIN SMALL LETTER A WITH MACRON -->
+<!ENTITY Amacr	"&#x0100;"> <!-- LATIN CAPITAL LETTER A WITH MACRON -->
+<!ENTITY aogon	"&#x0105;"> <!-- LATIN SMALL LETTER A WITH OGONEK -->
+<!ENTITY Aogon	"&#x0104;"> <!-- LATIN CAPITAL LETTER A WITH OGONEK -->
+<!ENTITY cacute	"&#x0107;"> <!-- LATIN SMALL LETTER C WITH ACUTE -->
+<!ENTITY Cacute	"&#x0106;"> <!-- LATIN CAPITAL LETTER C WITH ACUTE -->
+<!ENTITY ccaron	"&#x010D;"> <!-- LATIN SMALL LETTER C WITH CARON -->
+<!ENTITY Ccaron	"&#x010C;"> <!-- LATIN CAPITAL LETTER C WITH CARON -->
+<!ENTITY ccirc	"&#x0109;"> <!-- LATIN SMALL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY Ccirc	"&#x0108;"> <!-- LATIN CAPITAL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY cdot	"&#x010B;"> <!-- DOT OPERATOR -->
+<!ENTITY Cdot	"&#x010A;"> <!-- LATIN CAPITAL LETTER C WITH DOT ABOVE -->
+<!ENTITY dcaron	"&#x010F;"> <!-- LATIN SMALL LETTER D WITH CARON -->
+<!ENTITY Dcaron	"&#x010E;"> <!-- LATIN CAPITAL LETTER D WITH CARON -->
+<!ENTITY dstrok	"&#x0111;"> <!-- LATIN SMALL LETTER D WITH STROKE -->
+<!ENTITY Dstrok	"&#x0110;"> <!-- LATIN CAPITAL LETTER D WITH STROKE -->
+<!ENTITY ecaron	"&#x011B;"> <!-- LATIN SMALL LETTER E WITH CARON -->
+<!ENTITY Ecaron	"&#x011A;"> <!-- LATIN CAPITAL LETTER E WITH CARON -->
+<!ENTITY edot	"&#x0117;"> <!-- LATIN SMALL LETTER E WITH DOT ABOVE -->
+<!ENTITY Edot	"&#x0116;"> <!-- LATIN CAPITAL LETTER E WITH DOT ABOVE -->
+<!ENTITY emacr	"&#x0113;"> <!-- LATIN SMALL LETTER E WITH MACRON -->
+<!ENTITY Emacr	"&#x0112;"> <!-- LATIN CAPITAL LETTER E WITH MACRON -->
+<!ENTITY eogon	"&#x0119;"> <!-- LATIN SMALL LETTER E WITH OGONEK -->
+<!ENTITY Eogon	"&#x0118;"> <!-- LATIN CAPITAL LETTER E WITH OGONEK -->
+<!ENTITY gacute	"&#x01F5;"> <!-- LATIN SMALL LETTER G WITH ACUTE -->
+<!ENTITY gbreve	"&#x011F;"> <!-- LATIN SMALL LETTER G WITH BREVE -->
+<!ENTITY Gbreve	"&#x011E;"> <!-- LATIN CAPITAL LETTER G WITH BREVE -->
+<!ENTITY Gcedil	"&#x0122;"> <!-- LATIN CAPITAL LETTER G WITH CEDILLA -->
+<!ENTITY gcirc	"&#x011D;"> <!-- LATIN SMALL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY Gcirc	"&#x011C;"> <!-- LATIN CAPITAL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY gdot	"&#x0121;"> <!-- LATIN SMALL LETTER G WITH DOT ABOVE -->
+<!ENTITY Gdot	"&#x0120;"> <!-- LATIN CAPITAL LETTER G WITH DOT ABOVE -->
+<!ENTITY hcirc	"&#x0125;"> <!-- LATIN SMALL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY Hcirc	"&#x0124;"> <!-- LATIN CAPITAL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY hstrok	"&#x0127;"> <!-- LATIN SMALL LETTER H WITH STROKE -->
+<!ENTITY Hstrok	"&#x0126;"> <!-- LATIN CAPITAL LETTER H WITH STROKE -->
+<!ENTITY Idot	"&#x0130;"> <!-- LATIN CAPITAL LETTER I WITH DOT ABOVE -->
+<!ENTITY Imacr	"&#x012A;"> <!-- LATIN CAPITAL LETTER I WITH MACRON -->
+<!ENTITY imacr	"&#x012B;"> <!-- LATIN SMALL LETTER I WITH MACRON -->
+<!ENTITY ijlig	"&#x0133;"> <!-- LATIN SMALL LIGATURE IJ -->
+<!ENTITY IJlig	"&#x0132;"> <!-- LATIN CAPITAL LIGATURE IJ -->
+<!ENTITY inodot	"&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY iogon	"&#x012F;"> <!-- LATIN SMALL LETTER I WITH OGONEK -->
+<!ENTITY Iogon	"&#x012E;"> <!-- LATIN CAPITAL LETTER I WITH OGONEK -->
+<!ENTITY itilde	"&#x0129;"> <!-- LATIN SMALL LETTER I WITH TILDE -->
+<!ENTITY Itilde	"&#x0128;"> <!-- LATIN CAPITAL LETTER I WITH TILDE -->
+<!ENTITY jcirc	"&#x0135;"> <!-- LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY Jcirc	"&#x0134;"> <!-- LATIN CAPITAL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY kcedil	"&#x0137;"> <!-- LATIN SMALL LETTER K WITH CEDILLA -->
+<!ENTITY Kcedil	"&#x0136;"> <!-- LATIN CAPITAL LETTER K WITH CEDILLA -->
+<!ENTITY kgreen	"&#x0138;"> <!-- LATIN SMALL LETTER KRA -->
+<!ENTITY lacute	"&#x013A;"> <!-- LATIN SMALL LETTER L WITH ACUTE -->
+<!ENTITY Lacute	"&#x0139;"> <!-- LATIN CAPITAL LETTER L WITH ACUTE -->
+<!ENTITY lcaron	"&#x013E;"> <!-- LATIN SMALL LETTER L WITH CARON -->
+<!ENTITY Lcaron	"&#x013D;"> <!-- LATIN CAPITAL LETTER L WITH CARON -->
+<!ENTITY lcedil	"&#x013C;"> <!-- LATIN SMALL LETTER L WITH CEDILLA -->
+<!ENTITY Lcedil	"&#x013B;"> <!-- LATIN CAPITAL LETTER L WITH CEDILLA -->
+<!ENTITY lmidot	"&#x0140;"> <!-- LATIN SMALL LETTER L WITH MIDDLE DOT -->
+<!ENTITY Lmidot	"&#x013F;"> <!-- LATIN CAPITAL LETTER L WITH MIDDLE DOT -->
+<!ENTITY lstrok	"&#x0142;"> <!-- LATIN SMALL LETTER L WITH STROKE -->
+<!ENTITY Lstrok	"&#x0141;"> <!-- LATIN CAPITAL LETTER L WITH STROKE -->
+<!ENTITY nacute	"&#x0144;"> <!-- LATIN SMALL LETTER N WITH ACUTE -->
+<!ENTITY Nacute	"&#x0143;"> <!-- LATIN CAPITAL LETTER N WITH ACUTE -->
+<!ENTITY eng	"&#x014B;"> <!-- LATIN SMALL LETTER ENG -->
+<!ENTITY ENG	"&#x014A;"> <!-- LATIN CAPITAL LETTER ENG -->
+<!ENTITY napos	"&#x0149;"> <!-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -->
+<!ENTITY ncaron	"&#x0148;"> <!-- LATIN SMALL LETTER N WITH CARON -->
+<!ENTITY Ncaron	"&#x0147;"> <!-- LATIN CAPITAL LETTER N WITH CARON -->
+<!ENTITY ncedil	"&#x0146;"> <!-- LATIN SMALL LETTER N WITH CEDILLA -->
+<!ENTITY Ncedil	"&#x0145;"> <!-- LATIN CAPITAL LETTER N WITH CEDILLA -->
+<!ENTITY odblac	"&#x0151;"> <!-- LATIN SMALL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Odblac	"&#x0150;"> <!-- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Omacr	"&#x014C;"> <!-- LATIN CAPITAL LETTER O WITH MACRON -->
+<!ENTITY omacr	"&#x014D;"> <!-- LATIN SMALL LETTER O WITH MACRON -->
+<!ENTITY oelig	"&#x0153;"> <!-- LATIN SMALL LIGATURE OE -->
+<!ENTITY OElig	"&#x0152;"> <!-- LATIN CAPITAL LIGATURE OE -->
+<!ENTITY racute	"&#x0155;"> <!-- LATIN SMALL LETTER R WITH ACUTE -->
+<!ENTITY Racute	"&#x0154;"> <!-- LATIN CAPITAL LETTER R WITH ACUTE -->
+<!ENTITY rcaron	"&#x0159;"> <!-- LATIN SMALL LETTER R WITH CARON -->
+<!ENTITY Rcaron	"&#x0158;"> <!-- LATIN CAPITAL LETTER R WITH CARON -->
+<!ENTITY rcedil	"&#x0157;"> <!-- LATIN SMALL LETTER R WITH CEDILLA -->
+<!ENTITY Rcedil	"&#x0156;"> <!-- LATIN CAPITAL LETTER R WITH CEDILLA -->
+<!ENTITY sacute	"&#x015B;"> <!-- LATIN SMALL LETTER S WITH ACUTE -->
+<!ENTITY Sacute	"&#x015A;"> <!-- LATIN CAPITAL LETTER S WITH ACUTE -->
+<!ENTITY scaron	"&#x0161;"> <!-- LATIN SMALL LETTER S WITH CARON -->
+<!ENTITY Scaron	"&#x0160;"> <!-- LATIN CAPITAL LETTER S WITH CARON -->
+<!ENTITY scedil	"&#x015F;"> <!-- LATIN SMALL LETTER S WITH CEDILLA -->
+<!ENTITY Scedil	"&#x015E;"> <!-- LATIN CAPITAL LETTER S WITH CEDILLA -->
+<!ENTITY scirc	"&#x015D;"> <!-- LATIN SMALL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY Scirc	"&#x015C;"> <!-- LATIN CAPITAL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY tcaron	"&#x0165;"> <!-- LATIN SMALL LETTER T WITH CARON -->
+<!ENTITY Tcaron	"&#x0164;"> <!-- LATIN CAPITAL LETTER T WITH CARON -->
+<!ENTITY tcedil	"&#x0163;"> <!-- LATIN SMALL LETTER T WITH CEDILLA -->
+<!ENTITY Tcedil	"&#x0162;"> <!-- LATIN CAPITAL LETTER T WITH CEDILLA -->
+<!ENTITY tstrok	"&#x0167;"> <!-- LATIN SMALL LETTER T WITH STROKE -->
+<!ENTITY Tstrok	"&#x0166;"> <!-- LATIN CAPITAL LETTER T WITH STROKE -->
+<!ENTITY ubreve	"&#x016D;"> <!-- LATIN SMALL LETTER U WITH BREVE -->
+<!ENTITY Ubreve	"&#x016C;"> <!-- LATIN CAPITAL LETTER U WITH BREVE -->
+<!ENTITY udblac	"&#x0171;"> <!-- LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY Udblac	"&#x0170;"> <!-- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY umacr	"&#x016B;"> <!-- LATIN SMALL LETTER U WITH MACRON -->
+<!ENTITY Umacr	"&#x016A;"> <!-- LATIN CAPITAL LETTER U WITH MACRON -->
+<!ENTITY uogon	"&#x0173;"> <!-- LATIN SMALL LETTER U WITH OGONEK -->
+<!ENTITY Uogon	"&#x0172;"> <!-- LATIN CAPITAL LETTER U WITH OGONEK -->
+<!ENTITY uring	"&#x016F;"> <!-- LATIN SMALL LETTER U WITH RING ABOVE -->
+<!ENTITY Uring	"&#x016E;"> <!-- LATIN CAPITAL LETTER U WITH RING ABOVE -->
+<!ENTITY utilde	"&#x0169;"> <!-- LATIN SMALL LETTER U WITH TILDE -->
+<!ENTITY Utilde	"&#x0168;"> <!-- LATIN CAPITAL LETTER U WITH TILDE -->
+<!ENTITY wcirc	"&#x0175;"> <!-- LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY Wcirc	"&#x0174;"> <!-- LATIN CAPITAL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY ycirc	"&#x0177;"> <!-- LATIN SMALL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Ycirc	"&#x0176;"> <!-- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Yuml	"&#x0178;"> <!-- LATIN CAPITAL LETTER Y WITH DIAERESIS -->
+<!ENTITY zacute	"&#x017A;"> <!-- LATIN SMALL LETTER Z WITH ACUTE -->
+<!ENTITY Zacute	"&#x0179;"> <!-- LATIN CAPITAL LETTER Z WITH ACUTE -->
+<!ENTITY zcaron	"&#x017E;"> <!-- LATIN SMALL LETTER Z WITH CARON -->
+<!ENTITY Zcaron	"&#x017D;"> <!-- LATIN CAPITAL LETTER Z WITH CARON -->
+<!ENTITY zdot	"&#x017C;"> <!-- LATIN SMALL LETTER Z WITH DOT ABOVE -->
+<!ENTITY Zdot	"&#x017B;"> <!-- LATIN CAPITAL LETTER Z WITH DOT ABOVE -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-num.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-num.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-num.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,81 @@
+<!-- iso-num.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY half	"&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac12	"&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14	"&#x00BC;"> <!-- VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac34	"&#x00BE;"> <!-- VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac18	"&#x215B;"> <!--  -->
+<!ENTITY frac38	"&#x215C;"> <!--  -->
+<!ENTITY frac58	"&#x215D;"> <!--  -->
+<!ENTITY frac78	"&#x215E;"> <!--  -->
+<!ENTITY sup1	"&#x00B9;"> <!-- SUPERSCRIPT ONE -->
+<!ENTITY sup2	"&#x00B2;"> <!-- SUPERSCRIPT TWO -->
+<!ENTITY sup3	"&#x00B3;"> <!-- SUPERSCRIPT THREE -->
+<!ENTITY plus	"&#x002B;"> <!-- PLUS SIGN -->
+<!ENTITY plusmn	"&#x00B1;"> <!-- PLUS-MINUS SIGN -->
+<!ENTITY lt	"&#38;#60;"> <!-- LESS-THAN SIGN -->
+<!ENTITY equals	"&#x003D;"> <!-- EQUALS SIGN -->
+<!ENTITY gt	"&#x003E;"> <!-- GREATER-THAN SIGN -->
+<!ENTITY divide	"&#x00F7;"> <!-- DIVISION SIGN -->
+<!ENTITY times	"&#x00D7;"> <!-- MULTIPLICATION SIGN -->
+<!ENTITY curren	"&#x00A4;"> <!-- CURRENCY SIGN -->
+<!ENTITY pound	"&#x00A3;"> <!-- POUND SIGN -->
+<!ENTITY dollar	"&#x0024;"> <!-- DOLLAR SIGN -->
+<!ENTITY cent	"&#x00A2;"> <!-- CENT SIGN -->
+<!ENTITY yen	"&#x00A5;"> <!-- YEN SIGN -->
+<!ENTITY num	"&#x0023;"> <!-- NUMBER SIGN -->
+<!ENTITY percnt	"&#x0025;"> <!-- PERCENT SIGN -->
+<!ENTITY amp	"&#38;#38;"> <!-- AMPERSAND -->
+<!ENTITY ast	"&#x002A;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY commat	"&#x0040;"> <!-- COMMERCIAL AT -->
+<!ENTITY lsqb	"&#x005B;"> <!-- LEFT SQUARE BRACKET -->
+<!ENTITY bsol	"&#x005C;"> <!-- REVERSE SOLIDUS -->
+<!ENTITY rsqb	"&#x005D;"> <!-- RIGHT SQUARE BRACKET -->
+<!ENTITY lcub	"&#x007B;"> <!-- LEFT CURLY BRACKET -->
+<!ENTITY horbar	"&#x2015;"> <!-- HORIZONTAL BAR -->
+<!ENTITY verbar	"&#x007C;"> <!-- VERTICAL LINE -->
+<!ENTITY rcub	"&#x007D;"> <!-- RIGHT CURLY BRACKET -->
+<!ENTITY micro	"&#x00B5;"> <!-- MICRO SIGN -->
+<!ENTITY ohm	"&#x2126;"> <!-- OHM SIGN -->
+<!ENTITY deg	"&#x00B0;"> <!-- DEGREE SIGN -->
+<!ENTITY ordm	"&#x00BA;"> <!-- MASCULINE ORDINAL INDICATOR -->
+<!ENTITY ordf	"&#x00AA;"> <!-- FEMININE ORDINAL INDICATOR -->
+<!ENTITY sect	"&#x00A7;"> <!-- SECTION SIGN -->
+<!ENTITY para	"&#x00B6;"> <!-- PILCROW SIGN -->
+<!ENTITY middot	"&#x00B7;"> <!-- MIDDLE DOT -->
+<!ENTITY larr	"&#x2190;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY rarr	"&#x2192;"> <!-- RIGHTWARDS DOUBLE ARROW -->
+<!ENTITY uarr	"&#x2191;"> <!-- UPWARDS ARROW -->
+<!ENTITY darr	"&#x2193;"> <!-- DOWNWARDS ARROW -->
+<!ENTITY copy	"&#x00A9;"> <!-- COPYRIGHT SIGN -->
+<!ENTITY reg	"&#x00AE;"> <!-- REG TRADE MARK SIGN -->
+<!ENTITY trade	"&#x2122;"> <!-- TRADE MARK SIGN -->
+<!ENTITY brvbar	"&#x00A6;"> <!-- BROKEN BAR -->
+<!ENTITY not	"&#x00AC;"> <!-- NOT SIGN -->
+<!ENTITY sung	"&#x2669;"> <!--  -->
+<!ENTITY excl	"&#x0021;"> <!-- EXCLAMATION MARK -->
+<!ENTITY iexcl	"&#x00A1;"> <!-- INVERTED EXCLAMATION MARK -->
+<!ENTITY quot	"&#x0022;"> <!-- QUOTATION MARK -->
+<!ENTITY apos	"&#x0027;"> <!-- APOSTROPHE -->
+<!ENTITY lpar	"&#x0028;"> <!-- LEFT PARENTHESIS -->
+<!ENTITY rpar	"&#x0029;"> <!-- RIGHT PARENTHESIS -->
+<!ENTITY comma	"&#x002C;"> <!-- COMMA -->
+<!ENTITY lowbar	"&#x005F;"> <!-- LOW LINE -->
+<!ENTITY hyphen	"&#x002D;"> <!-- HYPHEN-MINUS -->
+<!ENTITY period	"&#x002E;"> <!-- FULL STOP -->
+<!ENTITY sol	"&#x002F;"> <!-- SOLIDUS -->
+<!ENTITY colon	"&#x003A;"> <!-- COLON -->
+<!ENTITY semi	"&#x003B;"> <!-- SEMICOLON -->
+<!ENTITY quest	"&#x003F;"> <!-- QUESTION MARK -->
+<!ENTITY iquest	"&#x00BF;"> <!-- INVERTED QUESTION MARK -->
+<!ENTITY laquo	"&#x00AB;"> <!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY raquo	"&#x00BB;"> <!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY lsquo	"&#x2018;"> <!--  -->
+<!ENTITY rsquo	"&#x2019;"> <!-- RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY ldquo	"&#x201C;"> <!--  -->
+<!ENTITY rdquo	"&#x201D;"> <!-- RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY nbsp	"&#x00A0;"> <!-- NO-BREAK SPACE -->
+<!ENTITY shy	"&#x00AD;"> <!-- SOFT HYPHEN -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-pub.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-pub.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-pub.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,90 @@
+<!-- iso-pub.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY emsp	"&#x2003;"> <!-- EM SPACE -->
+<!ENTITY ensp	"&#x2002;"> <!-- EN SPACE -->
+<!ENTITY emsp13	"&#x2004;"> <!-- THREE-PER-EM SPACE -->
+<!ENTITY emsp14	"&#x2005;"> <!-- FOUR-PER-EM SPACE -->
+<!ENTITY numsp	"&#x2007;"> <!-- FIGURE SPACE -->
+<!ENTITY puncsp	"&#x2008;"> <!-- PUNCTUATION SPACE -->
+<!ENTITY thinsp	"&#x2009;"> <!-- THIN SPACE -->
+<!ENTITY hairsp	"&#x200A;"> <!-- HAIR SPACE -->
+<!ENTITY mdash	"&#x2014;"> <!-- EM DASH -->
+<!ENTITY ndash	"&#x2013;"> <!-- EN DASH -->
+<!ENTITY dash	"&#x2010;"> <!-- HYPHEN -->
+<!ENTITY blank	"&#x2423;"> <!-- OPEN BOX -->
+<!ENTITY hellip	"&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY nldr	"&#x2025;"> <!-- TWO DOT LEADER -->
+<!ENTITY frac13	"&#x2153;"> <!-- VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac23	"&#x2154;"> <!-- VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac15	"&#x2155;"> <!-- VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac25	"&#x2156;"> <!-- VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35	"&#x2157;"> <!-- VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45	"&#x2158;"> <!-- VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac16	"&#x2159;"> <!-- VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac56	"&#x215A;"> <!-- VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY incare	"&#x2105;"> <!-- CARE OF -->
+<!ENTITY block	"&#x2588;"> <!-- FULL BLOCK -->
+<!ENTITY uhblk	"&#x2580;"> <!-- UPPER HALF BLOCK -->
+<!ENTITY lhblk	"&#x2584;"> <!-- LOWER HALF BLOCK -->
+<!ENTITY blk14	"&#x2591;"> <!-- LIGHT SHADE -->
+<!ENTITY blk12	"&#x2592;"> <!-- MEDIUM SHADE -->
+<!ENTITY blk34	"&#x2593;"> <!-- DARK SHADE -->
+<!ENTITY marker	"&#x25AE;"> <!-- BLACK VERTICAL RECTANGLE -->
+<!ENTITY cir	"&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY squ	"&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY rect	"&#x25AD;"> <!-- WHITE RECTANGLE -->
+<!ENTITY utri	"&#x25B5;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY dtri	"&#x25BF;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY star	"&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY bull	"&#x2022;"> <!-- BULLET -->
+<!ENTITY squf	"&#x25AA;"> <!--  -->
+<!ENTITY utrif	"&#x25B4;"> <!-- BLACK UP-POINTING TRIANGLE -->
+<!ENTITY dtrif	"&#x25BE;"> <!-- BLACK DOWN-POINTING TRIANGLE -->
+<!ENTITY ltrif	"&#x25C2;"> <!-- BLACK LEFT-POINTING TRIANGLE -->
+<!ENTITY rtrif	"&#x25B8;"> <!-- BLACK RIGHT-POINTING TRIANGLE -->
+<!ENTITY clubs	"&#x2663;"> <!-- BLACK CLUB SUIT -->
+<!ENTITY diams	"&#x2666;"> <!-- BLACK DIAMOND SUIT -->
+<!ENTITY hearts	"&#x2665;"> <!-- BLACK HEART SUIT -->
+<!ENTITY spades	"&#x2660;"> <!-- BLACK SPADE SUIT -->
+<!ENTITY malt	"&#x2720;"> <!-- MALTESE CROSS -->
+<!ENTITY dagger	"&#x2020;"> <!-- DAGGER -->
+<!ENTITY Dagger	"&#x2021;"> <!-- DOUBLE DAGGER -->
+<!ENTITY check	"&#x2713;"> <!-- CHECK MARK -->
+<!ENTITY cross	"&#x2717;"> <!-- BALLOT X -->
+<!ENTITY sharp	"&#x266F;"> <!-- MUSIC SHARP SIGN -->
+<!ENTITY flat	"&#x266D;"> <!-- MUSIC FLAT SIGN -->
+<!ENTITY male	"&#x2642;"> <!-- MALE SIGN -->
+<!ENTITY female	"&#x2640;"> <!--  -->
+<!ENTITY phone	"&#x260E;"> <!-- TELEPHONE SIGN -->
+<!ENTITY telrec	"&#x2315;"> <!-- TELEPHONE RECORDER -->
+<!ENTITY copysr	"&#x2117;"> <!-- SOUND RECORDING COPYRIGHT -->
+<!ENTITY caret	"&#x2041;"> <!-- CARET -->
+<!ENTITY lsquor	"&#x201A;"> <!-- SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ldquor	"&#x201E;"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY fflig	"&#xFB00;"> <!--  -->
+<!ENTITY filig	"&#xFB01;"> <!--  -->
+<!--     fjlig	Unknown unicode character -->
+<!ENTITY ffilig	"&#xFB03;"> <!--  -->
+<!ENTITY ffllig	"&#xFB04;"> <!--  -->
+<!ENTITY fllig	"&#xFB02;"> <!--  -->
+<!ENTITY mldr	"&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY rdquor	"&#x201C;"> <!--  -->
+<!ENTITY rsquor	"&#x2018;"> <!--  -->
+<!ENTITY vellip	"&#x22EE;"> <!--  -->
+<!ENTITY hybull	"&#x2043;"> <!-- HYPHEN BULLET -->
+<!ENTITY loz	"&#x25CA;"> <!-- LOZENGE -->
+<!ENTITY lozf	"&#x2726;"> <!--  -->
+<!ENTITY ltri	"&#x25C3;"> <!-- WHITE LEFT-POINTING TRIANGLE -->
+<!ENTITY rtri	"&#x25B9;"> <!-- WHITE RIGHT-POINTING TRIANGLE -->
+<!ENTITY starf	"&#x2605;"> <!-- BLACK STAR -->
+<!ENTITY natur	"&#x266E;"> <!-- MUSIC NATURAL SIGN -->
+<!ENTITY rx	"&#x211E;"> <!-- PRESCRIPTION TAKE -->
+<!ENTITY sext	"&#x2736;"> <!-- SIX POINTED BLACK STAR -->
+<!ENTITY target	"&#x2316;"> <!-- POSITION INDICATOR -->
+<!ENTITY dlcrop	"&#x230D;"> <!-- BOTTOM LEFT CROP -->
+<!ENTITY drcrop	"&#x230C;"> <!-- BOTTOM RIGHT CROP -->
+<!ENTITY ulcrop	"&#x230F;"> <!-- TOP LEFT CROP -->
+<!ENTITY urcrop	"&#x230E;"> <!-- TOP RIGHT CROP -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-tech.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-tech.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/ent/iso-tech.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,69 @@
+<!-- iso-tech.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz.
+     With additional derivations from
+     ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY aleph	"&#x2135;"> <!-- ALEF SYMBOL -->
+<!ENTITY and	"&#x2227;"> <!--  -->
+<!ENTITY ang90	"&#x221F;"> <!-- RIGHT ANGLE -->
+<!ENTITY angsph	"&#x2222;"> <!--  -->
+<!ENTITY ap	"&#x2248;"> <!--  -->
+<!ENTITY becaus	"&#x2235;"> <!-- BECAUSE -->
+<!ENTITY bottom	"&#x22A5;"> <!--  -->
+<!ENTITY cap	"&#x2229;"> <!--  -->
+<!ENTITY cong	"&#x2245;"> <!--  -->
+<!ENTITY conint	"&#x222E;"> <!--  -->
+<!ENTITY cup	"&#x222A;"> <!--  -->
+<!ENTITY equiv	"&#x2261;"> <!--  -->
+<!ENTITY exist	"&#x2203;"> <!--  -->
+<!ENTITY forall	"&#x2200;"> <!--  -->
+<!ENTITY fnof	"&#x0192;"> <!-- LATIN SMALL LETTER F WITH HOOK -->
+<!ENTITY ge	"&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY iff	"&#x21D4;"> <!-- LEFT RIGHT DOUBLE ARROW -->
+<!ENTITY infin	"&#x221E;"> <!--  -->
+<!ENTITY int	"&#x222B;"> <!--  -->
+<!ENTITY isin	"&#x220A;"> <!--  -->
+<!ENTITY lang	"&#x3008;"> <!--  -->
+<!ENTITY lArr	"&#x21D0;"> <!-- LEFTWARDS ARROW -->
+<!ENTITY le	"&#x2264;"> <!--  -->
+<!ENTITY minus	"&#x2212;"> <!-- MINUS SIGN -->
+<!ENTITY mnplus	"&#x2213;"> <!--  -->
+<!ENTITY nabla	"&#x2207;"> <!-- NABLA -->
+<!ENTITY ne	"&#x2260;"> <!--  -->
+<!ENTITY ni	"&#x220D;"> <!--  -->
+<!ENTITY or	"&#x2228;"> <!--  -->
+<!ENTITY par	"&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY part	"&#x2202;"> <!--  -->
+<!ENTITY permil	"&#x2030;"> <!-- PER MILLE SIGN -->
+<!ENTITY perp	"&#x22A5;"> <!--  -->
+<!ENTITY prime	"&#x2032;"> <!-- PRIME -->
+<!ENTITY Prime	"&#x2033;"> <!-- DOUBLE PRIME -->
+<!ENTITY prop	"&#x221D;"> <!--  -->
+<!ENTITY radic	"&#x221A;"> <!--  -->
+<!ENTITY rang	"&#x3009;"> <!--  -->
+<!ENTITY rArr	"&#x21D2;"> <!-- RIGHTWARDS ARROW -->
+<!ENTITY sim	"&#x223C;"> <!--  -->
+<!ENTITY sime	"&#x2243;"> <!--  -->
+<!ENTITY square	"&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY sub	"&#x2282;"> <!--  -->
+<!ENTITY sube	"&#x2286;"> <!--  -->
+<!ENTITY sup	"&#x2283;"> <!--  -->
+<!ENTITY supe	"&#x2287;"> <!--  -->
+<!ENTITY there4	"&#x2234;"> <!--  -->
+<!ENTITY Verbar	"&#x2016;"> <!-- DOUBLE VERTICAL LINE -->
+<!ENTITY angst	"&#x212B;"> <!-- ANGSTROM SIGN -->
+<!ENTITY bernou	"&#x212C;"> <!-- SCRIPT CAPITAL B -->
+<!ENTITY compfn	"&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY Dot	"&#x00A8;"> <!--  -->
+<!ENTITY DotDot	"&#x20DC;"> <!-- COMBINING FOUR DOTS ABOVE -->
+<!ENTITY hamilt	"&#x210B;"> <!-- SCRIPT CAPITAL H -->
+<!ENTITY lagran	"&#x2112;"> <!-- SCRIPT CAPITAL L -->
+<!ENTITY lowast	"&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY notin	"&#x2209;"> <!--  -->
+<!ENTITY order	"&#x2134;"> <!-- SCRIPT SMALL O -->
+<!ENTITY phmmat	"&#x2133;"> <!-- SCRIPT CAPITAL M -->
+<!ENTITY tdot	"&#x20DB;"> <!-- COMBINING THREE DOTS ABOVE -->
+<!ENTITY tprime	"&#x2034;"> <!-- TRIPLE PRIME -->
+<!ENTITY wedgeq	"&#x2259;"> <!-- ESTIMATES -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/readme.txt
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/readme.txt	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/readme.txt	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+README for DocBook XML V4.1.2
+
+This is DocBook XML V4.1.2, released 27 Aug 2000.
+
+See 41chg.txt for information about what has changed since DocBook 4.0.
+
+For more information about DocBook, please see
+
+  http://www.oasis-open.org/docbook/
+
+a partial mirror of the official DocBook site is available at
+
+  http://docbook.org/
+
+Please send all questions, comments, concerns, and bug reports to the
+DocBook mailing list: docbook at lists.oasis-open.org

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/soextblx.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/soextblx.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/4.1.2/soextblx.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,308 @@
+<!-- XML EXCHANGE TABLE MODEL DECLARATION MODULE -->
+
+<!-- This set of declarations defines the XML version of the Exchange
+     Table Model as of the date shown in the Formal Public Identifier
+     (FPI) for this entity.
+
+     This set of declarations may be referred to using a public external
+     entity declaration and reference as shown in the following three
+     lines:
+
+     <!ENTITY % calstblx
+       PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN">
+       %calstblx;
+
+     If various parameter entities used within this set of declarations
+     are to be given non-default values, the appropriate declarations
+     should be given before calling in this package (i.e., before the
+     "%calstblx;" reference).
+-->
+
+<!-- The motivation for this XML version of the Exchange Table Model
+     is simply to create an XML version of the SGML Exchange Table
+     Model. By design, no effort has been made to "improve" the model.
+
+     This XML version incorporates the logical bare minimum changes
+     necessary to make the Exchange Table Model a valid XML DTD.
+-->
+
+<!-- The XML version of the Exchange Table Model differs from
+     the SGML version in the following ways:
+
+     The following parameter entities have been removed:
+
+       - tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep
+         There are no exceptions in XML. The following normative statement
+         is made in lieu of exceptions: the exchange table model explicitly
+         forbids a table from occurring within another table. If the
+         content model of an entry includes a table element, then this
+         cannot be enforced by the DTD, but it is a deviation from the
+         exchange table model to include a table within a table.
+
+       - tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att
+         The motivation for these elements was to change the table
+         header/footer elements. Since XML does not allow element declarations
+         to contain name groups, and the exchange table model does not
+         allow a table to contain footers, the continued presence of these
+         attributes seems unnecessary.
+
+     The following parameter entity has been added:
+
+       - tbl.thead.att
+         This entity parameterizes the attributes on thead. It replaces
+         the tbl.hdft.att parameter entity.
+
+     Other miscellaneous changes:
+
+       - Tag ommission indicators have been removed
+       - Comments have been removed from declarations
+       - NUMBER attributes have been changed to NMTOKEN
+       - NUTOKEN attributes have been to changed to NMTOKEN
+       - Removed the grouping characters around the content model
+         parameter entry for the 'entry' element. This is necessary
+         so that an entry can contain #PCDATA and be defined as an
+         optional, repeatable OR group beginning with #PCDATA.
+-->
+
+<!-- This entity includes a set of element and attribute declarations
+     that partially defines the Exchange table model.  However, the model
+     is not well-defined without the accompanying natural language
+     description of the semantics (meanings) of these various elements,
+     attributes, and attribute values.  The semantic writeup, also available
+     from SGML Open, should be used in conjunction with this entity.
+-->
+
+<!-- In order to use the Exchange table model, various parameter entity
+     declarations are required.  A brief description is as follows:
+
+     ENTITY NAME      WHERE USED              WHAT IT IS
+
+     %yesorno         In ATTLIST of:          An attribute declared value
+                      almost all elements     for a "boolean" attribute
+
+     %paracon         In content model of:    The "text" (logical content)
+                      <entry>                 of the model group for <entry>
+
+     %titles          In content model of:    The "title" part of the model
+                      table element           group for the table element
+
+     %tbl.table.name  In declaration of:      The name of the "table"
+                      table element           element
+
+     %tbl.table-titles.mdl In content model of: The model group for the title
+                      table elements          part of the content model for
+                                              table element
+
+     %tbl.table.mdl   In content model of:    The model group for the content
+                      table elements          model for table element,
+                                              often (and by default) defined
+                                              in terms of %tbl.table-titles.mdl
+                                              and tgroup
+
+     %tbl.table.att   In ATTLIST of:          Additional attributes on the
+                      table element           table element
+
+     %bodyatt         In ATTLIST of:          Additional attributes on the
+                      table element           table element (for backward
+                                              compatibility with the SGML
+                                              model)
+
+     %tbl.tgroup.mdl  In content model of:    The model group for the content
+                      <tgroup>                model for <tgroup>
+
+     %tbl.tgroup.att  In ATTLIST of:          Additional attributes on the
+                      <tgroup>                <tgroup> element
+
+     %tbl.thead.att   In ATTLIST of:          Additional attributes on the
+                      <thead>                 <thead> element
+
+     %tbl.tbody.att   In ATTLIST of:          Additional attributes on the
+                      <tbody>                 <tbody> element
+
+     %tbl.colspec.att In ATTLIST of:          Additional attributes on the
+                      <colspec>               <colspec> element
+
+     %tbl.row.mdl     In content model of:    The model group for the content
+                      <row>                   model for <row>
+
+     %tbl.row.att     In ATTLIST of:          Additional attributes on the
+                      <row>                   <row> element
+
+     %tbl.entry.mdl   In content model of:    The model group for the content
+                      <entry>                 model for <entry>
+
+     %tbl.entry.att   In ATTLIST of:          Additional attributes on the
+                      <entry>                 <entry> element
+
+     This set of declarations will use the default definitions shown below
+     for any of these parameter entities that are not declared before this
+     set of declarations is referenced.
+-->
+
+<!-- These definitions are not directly related to the table model, but are
+     used in the default CALS table model and may be defined elsewhere (and
+     prior to the inclusion of this table module) in the referencing DTD. -->
+
+<!ENTITY % yesorno 'NMTOKEN'> <!-- no if zero(s), yes if any other value -->
+<!ENTITY % titles  'title?'>
+<!ENTITY % pcd "#PCDATA">
+<!ENTITY % paracon '%pcd;'> <!-- default for use in entry content -->
+
+<!--
+The parameter entities as defined below change and simplify the CALS table
+model as published (as part of the Example DTD) in MIL-HDBK-28001.  The
+resulting simplified DTD has support from the SGML Open vendors and is
+therefore more interoperable among different systems.
+
+These following declarations provide the Exchange default definitions
+for these entities.  However, these entities can be redefined (by giving
+the appropriate parameter entity declaration(s) prior to the reference
+to this Table Model declaration set entity) to fit the needs of the
+current application.
+
+Note, however, that changes may have significant effect on the ability to
+interchange table information.  These changes may manifest themselves
+in useability, presentation, and possible structure information degradation.
+-->
+
+<!ENTITY % tbl.table.name       "table">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl   "tgroup+">
+<!ENTITY % tbl.table.mdl        "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att        "
+    pgwide      %yesorno;       #IMPLIED ">
+<!ENTITY % bodyatt              "">
+<!ENTITY % tbl.tgroup.mdl       "colspec*,thead?,tbody">
+<!ENTITY % tbl.tgroup.att       "">
+<!ENTITY % tbl.thead.att        "">
+<!ENTITY % tbl.tbody.att        "">
+<!ENTITY % tbl.colspec.att      "">
+<!ENTITY % tbl.row.mdl          "entry+">
+<!ENTITY % tbl.row.att          "">
+<!ENTITY % tbl.entry.mdl        "(%paracon;)*">
+<!ENTITY % tbl.entry.att        "">
+
+<!-- =====  Element and attribute declarations follow. =====  -->
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.table.name       "table"
+     ENTITY % tbl.table-titles.mdl "%titles;,"
+     ENTITY % tbl.table.mdl        "%tbl.table-titles; tgroup+"
+     ENTITY % tbl.table.att        "
+                        pgwide          %yesorno;       #IMPLIED "
+-->
+
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+
+<!ATTLIST %tbl.table.name;
+        frame           (top|bottom|topbot|all|sides|none)      #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        %tbl.table.att;
+        %bodyatt;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.tgroup.mdl    "colspec*,thead?,tbody"
+     ENTITY % tbl.tgroup.att    ""
+-->
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+        cols            NMTOKEN                                 #REQUIRED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        %tbl.tgroup.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.colspec.att   ""
+-->
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+        colnum          NMTOKEN                                 #IMPLIED
+        colname         NMTOKEN                                 #IMPLIED
+        colwidth        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        %tbl.colspec.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.thead.att      ""
+-->
+
+<!ELEMENT thead (row+)>
+
+<!ATTLIST thead
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.thead.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.tbody.att     ""
+-->
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.tbody.att;
+>
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % tbl.row.mdl       "entry+"
+     ENTITY % tbl.row.att       ""
+-->
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+        rowsep          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.row.att;
+>
+
+
+<!--
+     Default declarations previously defined in this entity and
+     referenced below include:
+     ENTITY % paracon           "#PCDATA"
+     ENTITY % tbl.entry.mdl     "(%paracon;)*"
+     ENTITY % tbl.entry.att     ""
+-->
+
+<!ELEMENT entry %tbl.entry.mdl;>
+
+<!ATTLIST entry
+        colname         NMTOKEN                                 #IMPLIED
+        namest          NMTOKEN                                 #IMPLIED
+        nameend         NMTOKEN                                 #IMPLIED
+        morerows        NMTOKEN                                 #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.entry.att;
+>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,304 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+SUBDIRS = 3.1.7 4.0 4.1.2 simple
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive  \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	dot_seen=no; \
+	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+	  rev="$$subdir $$rev"; \
+	  test "$$subdir" = "." && dot_seen=yes; \
+	done; \
+	test "$$dot_seen" = "no" && rev=". $$rev"; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	here=`pwd` && cd $(srcdir) \
+	  && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+   if test "$$subdir" = .; then :; else \
+	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+   fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+	-rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+	for subdir in $(SUBDIRS); do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d $(distdir)/$$subdir \
+	    || mkdir $(distdir)/$$subdir \
+	    || exit 1; \
+	    chmod 777 $(distdir)/$$subdir; \
+	    (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am:
+install-data: install-data-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile
+all-redirect: all-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am:  clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am:  distclean-tags distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-recursive
+
+maintainer-clean-am:  maintainer-clean-tags maintainer-clean-generic \
+		distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+
+.PHONY: install-data-recursive uninstall-data-recursive \
+install-exec-recursive uninstall-exec-recursive installdirs-recursive \
+uninstalldirs-recursive all-recursive check-recursive \
+installcheck-recursive info-recursive dvi-recursive \
+mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,304 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+SUBDIRS = 3.1.7 4.0 4.1.2 simple
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+ at SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive  \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	dot_seen=no; \
+	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+	  rev="$$subdir $$rev"; \
+	  test "$$subdir" = "." && dot_seen=yes; \
+	done; \
+	test "$$dot_seen" = "no" && rev=". $$rev"; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	here=`pwd` && cd $(srcdir) \
+	  && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+   if test "$$subdir" = .; then :; else \
+	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+   fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+	-rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+	for subdir in $(SUBDIRS); do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d $(distdir)/$$subdir \
+	    || mkdir $(distdir)/$$subdir \
+	    || exit 1; \
+	    chmod 777 $(distdir)/$$subdir; \
+	    (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am:
+install-data: install-data-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile
+all-redirect: all-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am:  clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am:  distclean-tags distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-recursive
+
+maintainer-clean-am:  maintainer-clean-tags maintainer-clean-generic \
+		distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+
+.PHONY: install-data-recursive uninstall-data-recursive \
+install-exec-recursive uninstall-exec-recursive installdirs-recursive \
+uninstalldirs-recursive all-recursive check-recursive \
+installcheck-recursive info-recursive dvi-recursive \
+mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/COPYRIGHT
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/COPYRIGHT	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/COPYRIGHT	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+Simplified DocBk XML V3.1.7.1 DTD
+Copyright (C) 1999 Norman Walsh
+http://nwalsh.com/docbook/simple/
+
+You may distribute this DTD under the same terms as DocBook.
+
+Please direct all questions and comments about this DTD to
+Norman Walsh, <ndw at nwalsh.com>.
+
+This DTD is based on the DocBk XML DTD, which is in turn based
+on the DocBook V3.1 DTD from OASIS:
+
+  [DocBook is] Copyright 1992, 1993, 1994, 1995, 1996, 1998,
+  1999 HaL Computer Systems, Inc., O'Reilly & Associates, Inc.,
+  ArborText, Inc., Fujitsu Software Corporation, and the
+  Organization for the Advancement of Structured Information
+  Standards (OASIS).
+
+  Permission to use, copy, modify and distribute the DocBook
+  DTD and its accompanying documentation for any purpose and
+  without fee is hereby granted in perpetuity, provided that
+  the above copyright notice and this paragraph appear in all
+  copies.  The copyright holders make no representation about
+  the suitability of the DTD for any purpose.  It is provided
+  "as is" without expressed or implied warranty.
+
+For more information about the DocBook DTD, see 
+http://www.oasis-open.org/docbook/

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,113 @@
+1999-11-10  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated, based on DocBk XML V3.1.7
+
+	* VERSION: Version 3.1.7.1 released
+
+	* sdocbook.dtd: Added journal, series, set, and manuscript to pubwork on citetitle
+
+1999-10-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, VERSION, catalog, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Based on 3.1.6; no content changes
+
+1999-08-26  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sinclist.mod, test.xml, testcss.xml: 
+	Updated version number
+
+	* VERSION: Version 3.1.5.1 Released
+
+	* sdocbook-custom.dtd, sdocbookref-custom.dtd: Based on DocBk XML 3.1.5
+
+	* sdocbook.dtd, sdocbookref.dtd: Based on 3.1.5
+
+1999-08-09  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version
+
+	* VERSION: Version 3.1.4.2 released
+
+	* sdbhier.mod: Added RefEntry (under include.refentry PE)
+
+	* sdbhier.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sinclist.mod: 
+	Update for refentry
+
+	* sdocbook-custom.dtd: Added option for including refentry (off by default); added affiliation, releaseinfo, and subjectset
+
+	* sdocbook.dtd: Updated
+
+	* sdocbookref-custom.dtd: New file.
+
+	* sdocbookref.dtd: New file.
+
+	* sinclist.mod: Tweaked to allow subjectset, affiliation, jobtitle, orgname, and releaseinfo
+
+	* testrefcust.xml: New file.
+
+1999-06-04  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version number
+
+	* VERSION: Version 3.1.4.1 released
+
+	* catalog: Added mapping for character entities
+
+	* sdocbook.dtd: Updated; now includes local.* PEs
+
+	* sdocbook.dtd: Updated from DocBk 3.1.4
+
+1999-04-26  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version number
+
+	* VERSION: Version 3.1.3.6 released
+
+	* sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod: Added XREF back in
+
+1999-04-13  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, VERSION, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Version 3.1.3.5 releasd
+
+1999-04-09  Norman Walsh  <ndw at nwalsh.com>
+
+	* sdocbook-custom.dtd: Allow more than one tag in artheader
+
+	* sdocbook.dtd: Updated
+
+1999-04-07  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version numbers
+
+	* VERSION: Version 3.1.3.4 released
+
+	* testcss.xml: Replaced address with literallayout' testcss.xml
+
+1999-04-06  Norman Walsh  <ndw at nwalsh.com>
+
+	* VERSION: Version 3.1.3.3 released
+
+	* catalog: New file.
+
+	* sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod: 
+	More changes
+
+1999-04-05  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, VERSION, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod: 
+	Version 3.1.3.2 released
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.css, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml, testcust.xml: 
+	New file.
+
+	* sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod: 
+	Removed address and related elements.
+	Removed parentbook attribute on article.
+	Added epigraph and authorblurb.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,202 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+EXTRA_DIST =      COPYRIGHT ChangeLog README VERSION sdbcent.mod sdbhier.mod sdbpool.mod     sdocbook-custom.dtd sdocbook.css sdocbook.dtd sdocbookref-custom.dtd     sdocbookref.dtd sinclist.mod test.xml testcss.xml testcust.xml     testrefcust.xml      ent/ChangeLog ent/iso-lat1.ent ent/iso-num.ent ent/iso-pub.ent
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/simple/3.1.7.1/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/simple/3.1.7.1
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/simple/3.1.7.1/Makefile
+	$(mkinstalldirs) $(distdir)/ent
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,202 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+EXTRA_DIST =      COPYRIGHT ChangeLog README VERSION sdbcent.mod sdbhier.mod sdbpool.mod     sdocbook-custom.dtd sdocbook.css sdocbook.dtd sdocbookref-custom.dtd     sdocbookref.dtd sinclist.mod test.xml testcss.xml testcust.xml     testrefcust.xml      ent/ChangeLog ent/iso-lat1.ent ent/iso-num.ent ent/iso-pub.ent
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/simple/3.1.7.1/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/simple/3.1.7.1
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/simple/3.1.7.1/Makefile
+	$(mkinstalldirs) $(distdir)/ent
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/README
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/README	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/README	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,105 @@
+README for the Simplified DocBk XML V3.1.7.1 DTD
+
+This is a simplified version of the DocBk XML V3.1.3 DTD.  This
+DTD is my attempt to make a small subset of DocBook.  I tried to
+achieve the following goals:
+
+ * Documents written in the subset must be 100% legal DocBk XML
+   documents.
+
+ * This is for small documents, articles and the like, so
+   there's no need for 'book's or 'set's, just 'article's.
+
+ * The markup should be the smallest practical subset, if you
+   need richly structured markup, use DocBook or DocBk XML.
+
+ * The result is roughly "HTML-level markup in DocBook", but I
+   didn't set out explicitly to produce that result.
+
+ * The DTD must work in IE5 (it's XML not SGML). It should be
+   small enough to download more-or-less painlessly.
+
+ * There should be a CSS stylesheet for it (mine's pretty lame).
+
+ * There should be an XSL stylesheet for it. Since I'm in the
+   somewhat privileged position of knowing how many changes are
+   coming, I'm going to wait until after the next draft ;-).
+
+Instead of DocBook's 350+ elements, this DTD has fewer than 100.
+
+
+Manifest
+--------
+
+README        - This readme file
+VERSION       - The version number
+COPYRIGHT     - Copyright statement
+sdbcent.mod   - Character entities
+sdbhier.mod   - Hierarchy overrides
+sdbpool.mod   - Information pool overrides
+sdocbook-custom.dtd - The DTD
+sdocbook.css  - CSS stylesheet
+sdocbook.dtd  - A flattened version of the DTD (mechanically generated)
+sinclist.mod  - A set of 'ignore' parameter entities
+test.xml      - A test document
+testcss.xml   - A test document for the CSS stylesheet
+testcust.xml  - A test document for the raw customization layer
+ent/          - The ISO character entity files used by sdocbook.dtd
+
+
+Installation
+------------
+
+Place the files in this distribution somewhere on your machine.  Adjust
+your catalog(s) if appropriate (XML tools frequently do not support 
+catalogs, so this may be irrelevant for you).
+
+Please use the following formal public identifier to identify this DTD:
+
+  "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+
+For example, if your document's top-level element is <article>, and
+you are using this DTD directly, use the FPI in the DOCTYPE
+declaration:
+
+<!DOCTYPE article
+          PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+                 "/system/identifier/on/your/system/sdocbook.dtd" [
+...
+]>
+
+
+Note: if you are using the customization layer directly (sdocbook-custom.dtd),
+you may have to adjust the system identifier that points to the DocBk XML
+DTD.  You will also have to install the DocBk XML V3.1.3 DTD somewhere on
+your system.
+
+
+Copyright
+---------
+
+Copyright (C) 1998, 1999 Norman Walsh
+
+See COPYRIGHT for more information
+
+
+Warranty
+--------
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT.  IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+
+Contacting the Author
+---------------------
+
+This DTD is maintained by Norman Walsh, <ndw at nwalsh.com>.
+
+The best way to reach norm is by email.  You will find additional
+contact information at http://nwalsh.com/docbook/simple/

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/VERSION
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/VERSION	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/VERSION	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+3.1.7.1

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+1999-04-05  Norman Walsh  <ndw at nwalsh.com>
+
+	* iso-lat1.ent, iso-num.ent, iso-pub.ent: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-lat1.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-lat1.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-lat1.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,67 @@
+<!-- iso-lat1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacute	"&#x00E1;"> <!-- LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Aacute	"&#x00C1;"> <!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY acirc	"&#x00E2;"> <!-- LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY Acirc	"&#x00C2;"> <!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY agrave	"&#x00E0;"> <!-- LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Agrave	"&#x00C0;"> <!-- LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY aring	"&#x00E5;"> <!-- LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Aring	"&#x00C5;"> <!-- LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY atilde	"&#x00E3;"> <!-- LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Atilde	"&#x00C3;"> <!-- LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY auml	"&#x00E4;"> <!-- LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Auml	"&#x00C4;"> <!-- LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY aelig	"&#x00E6;"> <!-- LATIN SMALL LETTER AE -->
+<!ENTITY AElig	"&#x00C6;"> <!-- LATIN CAPITAL LETTER AE -->
+<!ENTITY ccedil	"&#x00E7;"> <!-- LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Ccedil	"&#x00C7;"> <!-- LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY eth	"&#x00D0;"> <!-- LATIN SMALL LETTER ETH -->
+<!ENTITY ETH	"&#x00F0;"> <!-- LATIN CAPITAL LETTER ETH -->
+<!ENTITY eacute	"&#x00E9;"> <!-- LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Eacute	"&#x00C9;"> <!-- LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY ecirc	"&#x00EA;"> <!-- LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Ecirc	"&#x00CA;"> <!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY egrave	"&#x00E8;"> <!-- LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY Egrave	"&#x00C8;"> <!-- LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY euml	"&#x00EB;"> <!-- LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Euml	"&#x00CB;"> <!-- LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY iacute	"&#x00ED;"> <!-- LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Iacute	"&#x00CD;"> <!-- LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY icirc	"&#x00EE;"> <!-- LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Icirc	"&#x00CE;"> <!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY igrave	"&#x00EC;"> <!-- LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Igrave	"&#x00CC;"> <!-- LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY iuml	"&#x00EF;"> <!-- LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Iuml	"&#x00CF;"> <!-- LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY ntilde	"&#x00F1;"> <!-- LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Ntilde	"&#x00D1;"> <!-- LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY oacute	"&#x00F3;"> <!-- LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Oacute	"&#x00D3;"> <!-- LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY ocirc	"&#x00F4;"> <!-- LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ocirc	"&#x00D4;"> <!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ograve	"&#x00F2;"> <!-- LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Ograve	"&#x00D2;"> <!-- LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY oslash	"&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY Oslash	"&#x00D8;"> <!-- LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY otilde	"&#x00F5;"> <!-- LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Otilde	"&#x00D5;"> <!-- LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY ouml	"&#x00F6;"> <!-- LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY Ouml	"&#x00D6;"> <!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig	"&#x00DF;"> <!-- LATIN SMALL LETTER SHARP S -->
+<!ENTITY thorn	"&#x00FE;"> <!-- LATIN SMALL LETTER THORN -->
+<!ENTITY THORN	"&#x00DE;"> <!-- LATIN CAPITAL LETTER THORN -->
+<!ENTITY uacute	"&#x00FA;"> <!-- LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Uacute	"&#x00DA;"> <!-- LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY ucirc	"&#x00DB;"> <!-- LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ucirc	"&#x00FB;"> <!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ugrave	"&#x00F9;"> <!-- LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Ugrave	"&#x00D9;"> <!-- LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY uuml	"&#x00FC;"> <!-- LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Uuml	"&#x00DC;"> <!-- LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY yacute	"&#x00FD;"> <!-- LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY Yacute	"&#x00DD;"> <!-- LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yuml	"&#x00FF;"> <!-- LATIN SMALL LETTER Y WITH DIAERESIS -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-num.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-num.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-num.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,81 @@
+<!-- iso-num.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY half	"&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac12	"&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14	"&#x00BC;"> <!-- VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac34	"&#x00BE;"> <!-- VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac18	"&#x215B;"> <!--  -->
+<!ENTITY frac38	"&#x215C;"> <!--  -->
+<!ENTITY frac58	"&#x215D;"> <!--  -->
+<!ENTITY frac78	"&#x215E;"> <!--  -->
+<!ENTITY sup1	"&#x00B9;"> <!-- SUPERSCRIPT ONE -->
+<!ENTITY sup2	"&#x00B2;"> <!-- SUPERSCRIPT TWO -->
+<!ENTITY sup3	"&#x00B3;"> <!-- SUPERSCRIPT THREE -->
+<!ENTITY plus	"&#x002B;"> <!-- PLUS SIGN -->
+<!ENTITY plusmn	"&#x00B1;"> <!-- PLUS-MINUS SIGN -->
+<!-- predeclared in XML <!ENTITY lt	"&#x003C;"--> <!-- LESS-THAN SIGN -->
+<!ENTITY equals	"&#x003D;"> <!-- EQUALS SIGN -->
+<!ENTITY gt	"&#x003E;"> <!-- GREATER-THAN SIGN -->
+<!ENTITY divide	"&#x00F7;"> <!-- DIVISION SIGN -->
+<!ENTITY times	"&#x00D7;"> <!-- MULTIPLICATION SIGN -->
+<!ENTITY curren	"&#x00A4;"> <!-- CURRENCY SIGN -->
+<!ENTITY pound	"&#x00A3;"> <!-- POUND SIGN -->
+<!ENTITY dollar	"&#x0024;"> <!-- DOLLAR SIGN -->
+<!ENTITY cent	"&#x00A2;"> <!-- CENT SIGN -->
+<!ENTITY yen	"&#x00A5;"> <!-- YEN SIGN -->
+<!ENTITY num	"&#x0023;"> <!-- NUMBER SIGN -->
+<!ENTITY percnt	"&#x0025;"> <!-- PERCENT SIGN -->
+<!-- predeclared in XML <!ENTITY amp	"&#x0026;"--> <!-- AMPERSAND -->
+<!ENTITY ast	"&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY commat	"&#x0040;"> <!-- COMMERCIAL AT -->
+<!ENTITY lsqb	"&#x005B;"> <!-- LEFT SQUARE BRACKET -->
+<!ENTITY bsol	"&#x005C;"> <!-- REVERSE SOLIDUS -->
+<!ENTITY rsqb	"&#x005D;"> <!-- RIGHT SQUARE BRACKET -->
+<!ENTITY lcub	"&#x007B;"> <!-- LEFT CURLY BRACKET -->
+<!ENTITY horbar	"&#x2015;"> <!-- HORIZONTAL BAR -->
+<!ENTITY verbar	"&#x007C;"> <!-- VERTICAL LINE -->
+<!ENTITY rcub	"&#x007D;"> <!-- RIGHT CURLY BRACKET -->
+<!ENTITY micro	"&#x00B5;"> <!-- MICRO SIGN -->
+<!ENTITY ohm	"&#x2126;"> <!-- OHM SIGN -->
+<!ENTITY deg	"&#x00B0;"> <!-- DEGREE SIGN -->
+<!ENTITY ordm	"&#x00BA;"> <!-- MASCULINE ORDINAL INDICATOR -->
+<!ENTITY ordf	"&#x00AA;"> <!-- FEMININE ORDINAL INDICATOR -->
+<!ENTITY sect	"&#x00A7;"> <!-- SECTION SIGN -->
+<!ENTITY para	"&#x00B6;"> <!-- PILCROW SIGN -->
+<!ENTITY middot	"&#x00B7;"> <!-- MIDDLE DOT -->
+<!ENTITY larr	"&#x2190;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY rarr	"&#x2192;"> <!-- RIGHTWARDS DOUBLE ARROW -->
+<!ENTITY uarr	"&#x2191;"> <!-- UPWARDS ARROW -->
+<!ENTITY darr	"&#x2193;"> <!-- DOWNWARDS ARROW -->
+<!ENTITY copy	"&#x00A9;"> <!-- COPYRIGHT SIGN -->
+<!ENTITY reg	"&#x00AF;"> <!-- MACRON -->
+<!ENTITY trade	"&#x2122;"> <!-- TRADE MARK SIGN -->
+<!ENTITY brvbar	"&#x00A6;"> <!-- BROKEN BAR -->
+<!ENTITY not	"&#x00AC;"> <!-- NOT SIGN -->
+<!ENTITY sung	"&#x2669;"> <!--  -->
+<!ENTITY excl	"&#x0021;"> <!-- EXCLAMATION MARK -->
+<!ENTITY iexcl	"&#x00A1;"> <!-- INVERTED EXCLAMATION MARK -->
+<!ENTITY quot	"&#x0022;"> <!-- QUOTATION MARK -->
+<!ENTITY apos	"&#x0027;"> <!-- APOSTROPHE -->
+<!ENTITY lpar	"&#x0028;"> <!-- LEFT PARENTHESIS -->
+<!ENTITY rpar	"&#x0029;"> <!-- RIGHT PARENTHESIS -->
+<!ENTITY comma	"&#x002C;"> <!-- COMMA -->
+<!ENTITY lowbar	"&#x005F;"> <!-- LOW LINE -->
+<!ENTITY hyphen	"&#xE4F8;"> <!--  -->
+<!ENTITY period	"&#x002E;"> <!-- FULL STOP -->
+<!ENTITY sol	"&#x002F;"> <!-- SOLIDUS -->
+<!ENTITY colon	"&#x003A;"> <!-- COLON -->
+<!ENTITY semi	"&#x003B;"> <!-- SEMICOLON -->
+<!ENTITY quest	"&#x003F;"> <!-- QUESTION MARK -->
+<!ENTITY iquest	"&#x00BF;"> <!-- INVERTED QUESTION MARK -->
+<!ENTITY laquo	"&#x00AB;"> <!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY raquo	"&#x00BB;"> <!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY lsquo	"&#x2018;"> <!--  -->
+<!ENTITY rsquo	"&#x2019;"> <!-- RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY ldquo	"&#x201C;"> <!--  -->
+<!ENTITY rdquo	"&#x201D;"> <!-- RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY nbsp	"&#x00A0;"> <!-- NO-BREAK SPACE -->
+<!ENTITY shy	"&#x00AD;"> <!-- SOFT HYPHEN -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-pub.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-pub.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/ent/iso-pub.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,90 @@
+<!-- iso-pub.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+     and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY emsp	"&#x2003;"> <!-- EM SPACE -->
+<!ENTITY ensp	"&#x2002;"> <!-- EN SPACE -->
+<!ENTITY emsp13	"&#x2004;"> <!-- THREE-PER-EM SPACE -->
+<!ENTITY emsp14	"&#x2005;"> <!-- FOUR-PER-EM SPACE -->
+<!ENTITY numsp	"&#x2007;"> <!-- FIGURE SPACE -->
+<!ENTITY puncsp	"&#x2008;"> <!-- PUNCTUATION SPACE -->
+<!ENTITY thinsp	"&#x2009;"> <!-- THIN SPACE -->
+<!ENTITY hairsp	"&#x200A;"> <!-- HAIR SPACE -->
+<!ENTITY mdash	"&#x2014;"> <!-- EM DASH -->
+<!ENTITY ndash	"&#x2013;"> <!-- EN DASH -->
+<!ENTITY dash	"&#x2010;"> <!-- HYPHEN -->
+<!ENTITY blank	"&#x2423;"> <!-- OPEN BOX -->
+<!ENTITY hellip	"&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY nldr	"&#x2025;"> <!-- TWO DOT LEADER -->
+<!ENTITY frac13	"&#x2153;"> <!-- VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac23	"&#x2154;"> <!-- VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac15	"&#x2155;"> <!-- VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac25	"&#x2156;"> <!-- VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35	"&#x2157;"> <!-- VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45	"&#x2158;"> <!-- VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac16	"&#x2159;"> <!-- VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac56	"&#x215A;"> <!-- VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY incare	"&#x2105;"> <!-- CARE OF -->
+<!ENTITY block	"&#x2588;"> <!-- FULL BLOCK -->
+<!ENTITY uhblk	"&#x2580;"> <!-- UPPER HALF BLOCK -->
+<!ENTITY lhblk	"&#x2584;"> <!-- LOWER HALF BLOCK -->
+<!ENTITY blk14	"&#x2591;"> <!-- LIGHT SHADE -->
+<!ENTITY blk12	"&#x2592;"> <!-- MEDIUM SHADE -->
+<!ENTITY blk34	"&#x2593;"> <!-- DARK SHADE -->
+<!ENTITY marker	"&#x25AE;"> <!-- BLACK VERTICAL RECTANGLE -->
+<!ENTITY cir	"&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY squ	"&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY rect	"&#x25AD;"> <!-- WHITE RECTANGLE -->
+<!ENTITY utri	"&#x25B5;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY dtri	"&#x25BF;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY star	"&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY bull	"&#x2022;"> <!-- BULLET -->
+<!ENTITY squf	"&#x25AA;"> <!--  -->
+<!ENTITY utrif	"&#x25B4;"> <!-- BLACK UP-POINTING TRIANGLE -->
+<!ENTITY dtrif	"&#x25BE;"> <!-- BLACK DOWN-POINTING TRIANGLE -->
+<!ENTITY ltrif	"&#x25C2;"> <!-- BLACK LEFT-POINTING TRIANGLE -->
+<!ENTITY rtrif	"&#x25B8;"> <!-- BLACK RIGHT-POINTING TRIANGLE -->
+<!ENTITY clubs	"&#x2663;"> <!-- BLACK CLUB SUIT -->
+<!ENTITY diams	"&#x2666;"> <!-- BLACK DIAMOND SUIT -->
+<!ENTITY hearts	"&#x2665;"> <!-- BLACK HEART SUIT -->
+<!ENTITY spades	"&#x2660;"> <!-- BLACK SPADE SUIT -->
+<!ENTITY malt	"&#x2720;"> <!-- MALTESE CROSS -->
+<!ENTITY dagger	"&#x2020;"> <!-- DAGGER -->
+<!ENTITY Dagger	"&#x2021;"> <!-- DOUBLE DAGGER -->
+<!ENTITY check	"&#x2713;"> <!-- CHECK MARK -->
+<!ENTITY cross	"&#x2717;"> <!-- BALLOT X -->
+<!ENTITY sharp	"&#x266F;"> <!-- MUSIC SHARP SIGN -->
+<!ENTITY flat	"&#x266D;"> <!-- MUSIC FLAT SIGN -->
+<!ENTITY male	"&#x2642;"> <!-- MALE SIGN -->
+<!ENTITY female	"&#x2640;"> <!--  -->
+<!ENTITY phone	"&#x260E;"> <!-- TELEPHONE SIGN -->
+<!ENTITY telrec	"&#x2315;"> <!-- TELEPHONE RECORDER -->
+<!ENTITY copysr	"&#x2117;"> <!-- SOUND RECORDING COPYRIGHT -->
+<!ENTITY caret	"&#x2041;"> <!-- CARET -->
+<!ENTITY lsquor	"&#x201A;"> <!-- SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ldquor	"&#x201E;"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY fflig	"&#xFB00;"> <!--  -->
+<!ENTITY filig	"&#xFB01;"> <!--  -->
+<!--     fjlig	Unknown unicode character -->
+<!ENTITY ffilig	"&#xFB03;"> <!--  -->
+<!ENTITY ffllig	"&#xFB04;"> <!--  -->
+<!ENTITY fllig	"&#xFB02;"> <!--  -->
+<!ENTITY mldr	"&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY rdquor	"&#x201C;"> <!--  -->
+<!ENTITY rsquor	"&#x2018;"> <!--  -->
+<!ENTITY vellip	"&#x22EE;"> <!--  -->
+<!ENTITY hybull	"&#x2043;"> <!-- HYPHEN BULLET -->
+<!ENTITY loz	"&#x25CA;"> <!-- LOZENGE -->
+<!ENTITY lozf	"&#x2726;"> <!--  -->
+<!ENTITY ltri	"&#x25C3;"> <!-- WHITE LEFT-POINTING TRIANGLE -->
+<!ENTITY rtri	"&#x25B9;"> <!-- WHITE RIGHT-POINTING TRIANGLE -->
+<!ENTITY starf	"&#x2605;"> <!-- BLACK STAR -->
+<!ENTITY natur	"&#x266E;"> <!-- MUSIC NATURAL SIGN -->
+<!ENTITY rx	"&#x211E;"> <!-- PRESCRIPTION TAKE -->
+<!ENTITY sext	"&#x2736;"> <!-- SIX POINTED BLACK STAR -->
+<!ENTITY target	"&#x2316;"> <!-- POSITION INDICATOR -->
+<!ENTITY dlcrop	"&#x230D;"> <!-- BOTTOM LEFT CROP -->
+<!ENTITY drcrop	"&#x230C;"> <!-- BOTTOM RIGHT CROP -->
+<!ENTITY ulcrop	"&#x230F;"> <!-- TOP LEFT CROP -->
+<!ENTITY urcrop	"&#x230E;"> <!-- TOP RIGHT CROP -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbcent.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbcent.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbcent.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,47 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML Character Entity Sets V3.1.7.1
+     Part of the Simplified DocBk XML V3.1.7.1 DTD
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % ISOamsa.module "IGNORE">
+<!ENTITY % ISOamsb.module "IGNORE">
+<!ENTITY % ISOamsc.module "IGNORE">
+<!ENTITY % ISOamsn.module "IGNORE">
+<!ENTITY % ISOamso.module "IGNORE">
+<!ENTITY % ISOamsr.module "IGNORE">
+<!ENTITY % ISObox.module "IGNORE">
+<!ENTITY % ISOcyr1.module "IGNORE">
+<!ENTITY % ISOcyr2.module "IGNORE">
+<!ENTITY % ISOdia.module "IGNORE">
+<!ENTITY % ISOgrk1.module "IGNORE">
+<!ENTITY % ISOgrk2.module "IGNORE">
+<!ENTITY % ISOgrk3.module "IGNORE">
+<!ENTITY % ISOgrk4.module "IGNORE">
+<!ENTITY % ISOlat1.module "IGNORE">
+<!ENTITY % ISOlat2.module "IGNORE">
+<!ENTITY % ISOnum.module "IGNORE">
+<!ENTITY % ISOpub.module "IGNORE">
+<!ENTITY % ISOtech.module "IGNORE">
+
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbhier.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbhier.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbhier.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,64 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML Document Hierarchy V3.1.7.1
+     Part of the Simplified DocBk XML V3.1.7.1 DTD
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.divcomponent.mix;">
+
+<!ENTITY % bookcomponent.content
+	"((%divcomponent.mix;)+, section*)
+	| section+">
+
+<![ %include.refentry; [
+
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		%local.refinline.char.mix;">
+
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.divcomponent.mix;">
+
+<!ELEMENT refentry (docinfo?, refmeta?, (%link.char.class;)*,
+                    refnamediv, refsynopsisdiv?, refsect1+)>
+
+<!ELEMENT refmeta (refentrytitle, manvolnum?, refmiscinfo*)>
+
+<!ELEMENT refsect1info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsect2info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsect3info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsynopsisdivinfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+		(%link.char.class;)*)>
+
+]]>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbpool.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbpool.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdbpool.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,166 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML Information Pool V3.1.7.1
+     Part of the Simplified DocBk XML V3.1.7.1 DTD
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.component.mix;">
+
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.sidebar.mix;">
+
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % qandaset.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.qandaset.mix;">
+
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.footnote.mix;">
+
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.example.mix;">
+
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % highlights.mix
+		"%list.class;		|%admon.class;
+		|%para.class;
+		%local.highlights.mix;">
+
+<!ENTITY % local.para.mix "">
+<!ENTITY % para.mix
+		"%list.class;           |%admon.class;
+		|%linespecific.class;
+					|%informal.class;
+		|%formal.class;
+		%local.para.mix;">
+
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.admon.mix;">
+
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+		"%linespecific.class;
+					|%informal.class;
+		%local.figure.mix;">
+
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|mediaobject
+		%local.tabentry.mix;">
+
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % glossdef.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.glossdef.mix;">
+
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.legalnotice.mix;">
+
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.textobject.mix;">
+
+<!-- Character-level mixtures ............................................. -->
+
+<!ENTITY % ubiq.exclusion "">
+<!ENTITY % ubiq.inclusion "">
+
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%inlineobj.char.class;
+		%local.para.char.mix;">
+
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%docinfo.char.class;
+					|%inlineobj.char.class;
+		%local.title.char.mix;">
+
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+		"#PCDATA
+		|%link.char.class;	|%tech.char.class;
+					|inlinemediaobject
+		%local.cptr.char.mix;">
+
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+		"#PCDATA
+					|replaceable
+					|inlinemediaobject
+		%local.smallcptr.char.mix;">
+
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+		"#PCDATA
+					|acronym|emphasis|trademark
+		|%link.char.class;
+					|inlinemediaobject
+		%local.word.char.mix;">
+
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+		"#PCDATA
+		|%link.char.class;
+					|emphasis|trademark
+					|replaceable
+					|inlinemediaobject
+		%local.docinfo.char.mix;">
+
+<!ENTITY % tbl.table.excep "">
+<!ENTITY % tbl.table.mdl
+	"(title, titleabbrev?, (mediaobject+|tgroup+))">
+
+<!ENTITY % programlisting.content "%para.char.mix; | lineannotation">

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook-custom.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook-custom.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook-custom.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,238 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML V3.1.7.1 DTD
+     Copyright (C) 1999 Norman Walsh
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+
+     Common declaration:
+
+     <?xml version=1.0?>
+     <!DOCTYPE article
+       PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+       "sdocbook.dtd">
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % include.refentry "IGNORE">
+<![ %include.refentry; [
+<!ENTITY % exclude.refentry "IGNORE">
+<!ENTITY % refentry.element "IGNORE">
+<!ENTITY % refmeta.element "IGNORE">
+<!ENTITY % refnamediv.element "IGNORE">
+]]>
+<!ENTITY % exclude.refentry "INCLUDE">
+
+<!ENTITY % sinclist SYSTEM "sinclist.mod">
+%sinclist;
+
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+	"docinfo?, title, subtitle?">
+<!ENTITY % sect.title.content
+	"title, subtitle?">
+
+<!ENTITY % ndxterm.class "">
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+		"itemizedlist|orderedlist
+		|variablelist %local.list.class;">
+
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+		"note %local.admon.class;">
+
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+		"literallayout|programlisting %local.linespecific.class;">
+
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+		"para %local.para.class;">
+
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+		"blockquote
+		|mediaobject
+		|informaltable %local.informal.class;">
+
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+		"example|figure|table %local.formal.class;">
+
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+		"sidebar %local.compound.class;">
+
+<!ENTITY % local.genobj.class "">
+<!ENTITY % genobj.class "">
+
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+		"abstract|authorblurb|epigraph
+		%local.descobj.class;">
+
+<!-- Character-level classes .............................................. -->
+
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % xref.char.class "">
+
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+		"abbrev|acronym|citetitle|emphasis|footnote|phrase
+		|quote|trademark %local.gen.char.class;">
+
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+		"xref|link|ulink %local.link.char.class;">
+
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+		"command|computeroutput
+		|email|filename
+		|literal
+		|option
+		|replaceable
+		|systemitem|userinput
+		%local.tech.char.class;">
+
+<!ENTITY % local.base.char.class "">
+<!ENTITY % base.char.class "">
+
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+		"author|corpauthor|othercredit
+		|revhistory
+		%local.docinfo.char.class;">
+
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+		"inlinemediaobject %local.inlineobj.char.class;">
+
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % effectivity.attrib 
+	"%local.effectivity.attrib;"
+>
+
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+	"id		ID		#IMPLIED
+	%local.common.attrib;"
+>
+
+<!ENTITY % idreq.common.attrib
+	"id		ID		#REQUIRED
+	%local.common.attrib;"
+>
+
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+		"honorific|firstname|surname|lineage|othername|affiliation
+		|authorblurb
+		%local.person.ident.mix;">
+
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+		"abbrev|abstract|author
+		|authorgroup|bibliomisc
+		|copyright|corpauthor|date|edition
+		|editor|issuenum
+		|othercredit
+		|pubdate|publishername
+		|releaseinfo|revhistory
+		|subtitle|title|volumenum|citetitle
+		|%person.ident.mix;
+		%local.bibliocomponent.mix;">
+
+<!ENTITY % dbpool.redecl.module "INCLUDE">
+<!ENTITY % rdbpool SYSTEM "sdbpool.mod">
+
+<!ENTITY % dbhier.redecl.module "INCLUDE">
+<!ENTITY % rdbhier SYSTEM "sdbhier.mod">
+
+<!ENTITY % sdbcent SYSTEM "sdbcent.mod">
+%sdbcent;
+
+<!ENTITY % docinfo.element "IGNORE">
+<!ENTITY % objectinfo.element "IGNORE">
+<!ENTITY % section.element "IGNORE">
+<!ENTITY % sectioninfo.element "IGNORE">
+<!ENTITY % authorgroup.element "IGNORE">
+<!ENTITY % para.element "IGNORE">
+<!ENTITY % informaltable.element "IGNORE">
+<!ENTITY % replaceable.element "IGNORE">
+<!ENTITY % trademark.element "IGNORE">
+<!ENTITY % systemitem.element "IGNORE">
+<!ENTITY % article.element "IGNORE">
+<!ENTITY % article.attlist "IGNORE">
+<!ENTITY % artheader.element "IGNORE">
+<!ENTITY % appendix.element "IGNORE">
+
+<!ENTITY % cals.table.module "IGNORE">
+<!ENTITY % docbook PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.6//EN"
+                   "../docbookx/docbookx.dtd"
+>
+<!--                   "http://nwalsh.com/docbook/xml/3.1.6/docbookx.dtd"-->
+%docbook;
+
+<!ELEMENT docinfo ((mediaobject 
+		| legalnotice
+		| keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT section (sectioninfo?,
+			(%sect.title.content;),
+			(((%divcomponent.mix;)+, section*)
+			 | section+))>
+
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+
+<!ELEMENT para (%para.char.mix;)*>
+
+<!ELEMENT informaltable (mediaobject+|tgroup+) %tbl.table.excep;>
+
+<!ELEMENT replaceable (#PCDATA 
+		| %link.char.class; 
+		| inlinemediaobject)*>
+
+<!ELEMENT trademark (#PCDATA 
+		| %link.char.class; 
+		| %tech.char.class;
+		| inlinemediaobject
+		| emphasis)*>
+
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+
+<!ELEMENT article ((%div.title.content;)?, artheader?,
+		       (%bookcomponent.content;),
+		       (%appendix.class;)*)>
+
+<!ATTLIST article
+		class		(journalarticle
+				|productsheet
+				|whitepaper
+				|techreport
+				|faq)		#IMPLIED
+		%status.attrib;
+		%common.attrib;
+		%article.role.attrib;
+		%local.article.attrib;
+>
+
+<!ELEMENT artheader (mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+>
+
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+		(%bookcomponent.content;))>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook.css
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook.css	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook.css	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,674 @@
+abbrev
+{
+  display: inline;
+}
+
+abstract
+{
+  margin-left: 0.5in;
+  margin-right: 0.5in;
+  display: inline;
+}
+
+acronym
+{
+  display: inline;
+}
+
+address
+{
+  white-space: pre;
+  display: block;
+}
+
+anchor
+{
+  display: inline;
+}
+
+appendix
+{
+  display: block;
+}
+
+artheader
+{
+  display: none;
+}
+
+article
+{
+  display: block;
+}
+
+audiodata
+{
+  display: none;
+}
+
+audioobject
+{
+  display: none;
+}
+
+author
+{
+  display: inline;
+}
+
+authorgroup
+{
+  display: inline;
+}
+
+authorinitials
+{
+  display: inline;
+}
+
+bibliomisc
+{
+  display: inline;
+}
+
+bibliomset
+{
+  display: inline;
+}
+
+biblioset
+{
+  display: inline;
+}
+
+blockquote
+{
+  display: block;
+  margin-left: 0.5in;
+  margin-right: 0.5in;
+}
+
+caption
+{
+  display: none;
+}
+
+citetitle
+{
+  display: inline;
+  font-style: italic;
+}
+
+city
+{
+  display: inline;
+}
+
+colspec
+{
+  display: none;
+}
+
+command
+{
+  display: inline;
+  font-style: italic;
+}
+
+computeroutput
+{
+  display: inline;
+  font-family: monospace;
+}
+
+copyright
+{
+  display: inline;
+}
+
+corpauthor
+{
+  display: inline;
+}
+
+country
+{
+  display: inline;
+}
+
+date
+{
+  display: inline;
+}
+
+docinfo
+{
+  display: none;
+}
+
+edition
+{
+  display: inline;
+}
+
+editor
+{
+  display: inline;
+}
+
+email
+{
+  display: inline;
+  font-style: italic;
+}
+
+emphasis
+{
+  display: inline;
+  font-style: italic;
+}
+
+entry
+{
+  display: table-cell;
+}
+
+example
+{
+  display: block;
+}
+
+fax
+{
+  display: inline;
+}
+
+figure
+{
+  display: block;
+}
+
+filename
+{
+  display: inline;
+  font-style: italic;
+}
+
+firstname
+{
+  display: inline;
+}
+
+footnote
+{
+  display: inline;
+}
+
+holder
+{
+  display: inline;
+}
+
+honorific
+{
+  display: inline;
+}
+
+imagedata
+{
+  display: inline;
+}
+
+imageobject
+{
+  display: inline;
+}
+
+informaltable
+{
+  display: block;
+}
+
+inlinemediaobject
+{
+  display: inline;
+}
+
+isbn
+{
+  display: inline;
+}
+
+issn
+{
+  display: inline;
+}
+
+issuenum
+{
+  display: inline;
+}
+
+itemizedlist
+{
+  display: block;
+  list-style-type: disc;
+}
+
+keyword
+{
+  display: inline;
+}
+
+keywordset
+{
+  display: inline;
+}
+
+legalnotice
+{
+  display: inline;
+}
+
+lineage
+{
+  display: inline;
+}
+
+lineannotation
+{
+  display: inline;
+}
+
+link
+{
+  display: inline;
+}
+
+listitem
+{
+  display: list-item;
+}
+
+literal
+{
+  display: inline;
+}
+
+literallayout
+{
+  display: inline;
+}
+
+mediaobject
+{
+  display: inline;
+}
+
+member
+{
+  display: inline;
+}
+
+note
+{
+  display: inline;
+}
+
+objectinfo
+{
+  display: inline;
+}
+
+option
+{
+  display: inline;
+}
+
+orderedlist
+{
+  display: block;
+  list-style-type: decimal;
+}
+
+otheraddr
+{
+  display: inline;
+}
+
+othercredit
+{
+  display: inline;
+}
+
+othername
+{
+  display: inline;
+}
+
+pagenums
+{
+  display: inline;
+}
+
+para
+{
+  display: block;
+}
+
+phone
+{
+  display: inline;
+}
+
+phrase
+{
+  display: inline;
+}
+
+pob
+{
+  display: inline;
+}
+
+postcode
+{
+  display: inline;
+}
+
+printhistory
+{
+  display: inline;
+}
+
+procedure
+{
+  display: inline;
+}
+
+programlisting
+{
+  display: inline;
+}
+
+pubdate
+{
+  display: inline;
+}
+
+publisher
+{
+  display: inline;
+}
+
+publishername
+{
+  display: inline;
+}
+
+quote
+{
+  display: inline;
+}
+
+replaceable
+{
+  display: inline;
+}
+
+revhistory
+{
+  display: inline;
+}
+
+revision
+{
+  display: inline;
+}
+
+revnumber
+{
+  display: inline;
+}
+
+revremark
+{
+  display: inline;
+}
+
+row
+{
+  display: table-row;
+}
+
+section
+{
+  display: block;
+}
+
+sectioninfo
+{
+  display: none;
+}
+
+sidebar
+{
+  display: block;
+}
+
+simplelist
+{
+  display: inline;
+}
+
+state
+{
+  display: inline;
+}
+
+step
+{
+  display: inline;
+}
+
+street
+{
+  display: inline;
+}
+
+substeps
+{
+  display: inline;
+}
+
+subtitle
+{
+  display: inline;
+}
+
+surname
+{
+  display: inline;
+}
+
+systemitem
+{
+  display: inline;
+}
+
+tbody
+{
+  display: table-row-group;
+}
+
+term
+{
+  display: inline;
+}
+
+textobject
+{
+  display: inline;
+}
+
+tgroup
+{
+  display: table;
+}
+
+thead
+{
+  display: table-row-group;
+}
+
+title
+{
+  display: block;
+}
+
+article title
+{
+  font-size: 36pt;
+  font-weight: bold;
+  display: block;
+}
+
+section title
+{
+  font-size: 24pt;
+  font-weight: bold;
+  display: block;
+}
+
+section section title
+{
+  font-size: 20pt;
+  font-weight: bold;
+  display: block;
+}
+
+section section section title
+{
+  font-size: 18pt;
+  font-weight: bold;
+  display: block;
+}
+
+section section section section title
+{
+  font-size: 16pt;
+  font-weight: bold;
+  display: block;
+}
+
+section section section section section title
+{
+  font-size: 14pt;
+  font-weight: bold;
+  display: block;
+}
+
+section section section section section section title
+{
+  font-size: 12pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix title
+{
+  font-size: 24pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix section title
+{
+  font-size: 22pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix section section title
+{
+  font-size: 18pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix section section section title
+{
+  font-size: 16pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix section section section section title
+{
+  font-size: 14pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix section section section section section title
+{
+  font-size: 12pt;
+  font-weight: bold;
+  display: block;
+}
+
+titleabbrev
+{
+  display: none;
+}
+
+trademark
+{
+  display: inline;
+}
+
+ulink
+{
+  display: inline;
+}
+
+userinput
+{
+  display: inline;
+}
+
+variablelist
+{
+  display: inline;
+}
+
+varlistentry
+{
+  display: inline;
+}
+
+videodata
+{
+  display: inline;
+}
+
+videoobject
+{
+  display: inline;
+}
+
+volumenum
+{
+  display: inline;
+}
+
+xref
+{
+  display: inline;
+}
+
+year
+{
+  display: inline;
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbook.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1315 @@
+<!-- *********************************************************************
+     *** THIS IS THE FLATTENED DTD. DO NOT EDIT THIS DTD BY HAND, EDIT ***
+     *** THE CUSTOMIZATION LAYER AND REGNERATE THE FLATTENED DTD! ********
+     ********************************************************************* -->
+
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML V3.1.7.1 DTD
+     Copyright (C) 1999 Norman Walsh
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+
+     Common declaration:
+
+     <?xml version=1.0?>
+     <!DOCTYPE article
+       PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+       "sdocbook.dtd">
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+	"docinfo?, title, subtitle?">
+<!ENTITY % sect.title.content
+	"title, subtitle?">
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+		"itemizedlist|orderedlist
+		|variablelist %local.list.class;">
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+		"note %local.admon.class;">
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+		"literallayout|programlisting %local.linespecific.class;">
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+		"para %local.para.class;">
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+		"blockquote
+		|mediaobject
+		|informaltable %local.informal.class;">
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+		"example|figure|table %local.formal.class;">
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+		"sidebar %local.compound.class;">
+<!ENTITY % local.genobj.class "">
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+		"abstract|authorblurb|epigraph
+		%local.descobj.class;">
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+		"abbrev|acronym|citetitle|emphasis|footnote|phrase
+		|quote|trademark %local.gen.char.class;">
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+		"xref|link|ulink %local.link.char.class;">
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+		"command|computeroutput
+		|email|filename
+		|literal
+		|option
+		|replaceable
+		|systemitem|userinput
+		%local.tech.char.class;">
+<!ENTITY % local.base.char.class "">
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+		"author|corpauthor|othercredit
+		|revhistory
+		%local.docinfo.char.class;">
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+		"inlinemediaobject %local.inlineobj.char.class;">
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+	"id		ID		#IMPLIED
+	%local.common.attrib;"
+>
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+		"honorific|firstname|surname|lineage|othername|affiliation
+		|authorblurb
+		%local.person.ident.mix;">
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+		"abbrev|abstract|author
+		|authorgroup|bibliomisc
+		|copyright|corpauthor|date|edition
+		|editor|issuenum
+		|othercredit
+		|pubdate|publishername
+		|releaseinfo|revhistory
+		|subtitle|title|volumenum|citetitle
+		|%person.ident.mix;
+		%local.bibliocomponent.mix;">
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.component.mix;">
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.sidebar.mix;">
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.footnote.mix;">
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.example.mix;">
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % local.para.mix "">
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.admon.mix;">
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+		"%linespecific.class;
+					|%informal.class;
+		%local.figure.mix;">
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|mediaobject
+		%local.tabentry.mix;">
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.legalnotice.mix;">
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.textobject.mix;">
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%inlineobj.char.class;
+		%local.para.char.mix;">
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%docinfo.char.class;
+					|%inlineobj.char.class;
+		%local.title.char.mix;">
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+		"#PCDATA
+		|%link.char.class;	|%tech.char.class;
+					|inlinemediaobject
+		%local.cptr.char.mix;">
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+		"#PCDATA
+					|acronym|emphasis|trademark
+		|%link.char.class;
+					|inlinemediaobject
+		%local.word.char.mix;">
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+		"#PCDATA
+		|%link.char.class;
+					|emphasis|trademark
+					|replaceable
+					|inlinemediaobject
+		%local.docinfo.char.mix;">
+<!ENTITY % tbl.table.mdl
+	"(title, titleabbrev?, (mediaobject+|tgroup+))">
+<!ENTITY % programlisting.content "%para.char.mix; | lineannotation">
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.divcomponent.mix;">
+<!ENTITY % bookcomponent.content
+	"((%divcomponent.mix;)+, section*)
+	| section+">
+
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+		"BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+		| EPS | EQN | FAX | GIF | GIF87a | GIF89a 
+		| JPG | JPEG | IGES | PCX
+		| PIC | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+		| linespecific
+		%local.notation.class;">
+<!NOTATION BMP		PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR	PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY	PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR	PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF	SYSTEM "DITROFF">
+<!NOTATION DVI		SYSTEM "DVI">
+<!NOTATION EPS		PUBLIC 
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN		SYSTEM "EQN">
+<!NOTATION FAX		PUBLIC 
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF		SYSTEM "GIF">
+<!NOTATION GIF87a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+<!NOTATION GIF89a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG		SYSTEM "JPG">
+<!NOTATION JPEG		SYSTEM "JPG">
+<!NOTATION IGES		PUBLIC 
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC		SYSTEM "PIC">
+<!NOTATION PS		SYSTEM "PS">
+<!NOTATION SGML		PUBLIC 
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL		SYSTEM "TBL">
+<!NOTATION TEX		PUBLIC 
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF		SYSTEM "TIFF">
+<!NOTATION WMF		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG		SYSTEM "WPG">
+<!NOTATION linespecific	SYSTEM "linespecific">
+<!ENTITY % yesorno.attvals	"CDATA">
+<!ENTITY % local.ndxterm.class "">
+<!ENTITY % local.synop.class "">
+<!ENTITY % synop.class
+		"synopsis|cmdsynopsis|funcsynopsis %local.synop.class;">
+<!ENTITY % local.other.char.class "">
+<!ENTITY % other.char.class
+		"comment|subscript|superscript %local.other.char.class;">
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix 
+		"videoobject|audioobject|imageobject %local.mediaobject.mix;">
+<!ENTITY % local.ndxterm.char.mix "">
+<!ENTITY % role.attrib
+	"role		CDATA		#IMPLIED">
+<!ENTITY % local.graphics.attrib "">
+<!ENTITY % local.keyaction.attrib "">
+<!ENTITY % label.attrib
+	"label		CDATA		#IMPLIED">
+<!ENTITY % linespecific.attrib
+	"format		NOTATION
+			(linespecific)	'linespecific'">
+<!ENTITY % linkendreq.attrib
+	"linkend	IDREF		#REQUIRED">
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+	"mark		CDATA		#IMPLIED
+	%local.mark.attrib;"
+>
+<!ENTITY % moreinfo.attrib
+	"moreinfo	(refentry|none)	'none'">
+<!ENTITY % pagenum.attrib
+	"pagenum	CDATA		#IMPLIED">
+<!ENTITY % local.status.attrib "">
+<!ENTITY % status.attrib
+	"status		CDATA		#IMPLIED
+	%local.status.attrib;"
+>
+<!ENTITY % width.attrib
+	"width		CDATA		#IMPLIED">
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+<!ELEMENT title (%title.char.mix;)*>
+<!ATTLIST title
+		%pagenum.attrib;
+		%common.attrib;
+		%title.role.attrib;
+		%local.title.attrib;
+>
+<!ENTITY % local.titleabbrev.attrib "">
+<!ENTITY % titleabbrev.role.attrib "%role.attrib;">
+<!ELEMENT titleabbrev (%title.char.mix;)*>
+<!ATTLIST titleabbrev
+		%common.attrib;
+		%titleabbrev.role.attrib;
+		%local.titleabbrev.attrib;
+>
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!ATTLIST subtitle
+		%common.attrib;
+		%subtitle.role.attrib;
+		%local.subtitle.attrib;
+>
+<!ENTITY % local.artheader.attrib "">
+<!ENTITY % artheader.role.attrib "%role.attrib;">
+<!ATTLIST artheader
+		%common.attrib;
+		%artheader.role.attrib;
+		%local.artheader.attrib;
+>
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ATTLIST bibliomset
+		relation	CDATA		#IMPLIED
+		%bibliomset.role.attrib;
+		%common.attrib;
+		%local.bibliomset.attrib;
+>
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!ATTLIST bibliomisc
+		%common.attrib;
+		%bibliomisc.role.attrib;
+		%local.bibliomisc.attrib;
+>
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+<!ELEMENT subjectset (subject+)>
+<!ATTLIST subjectset
+		scheme		NMTOKEN		#IMPLIED
+		%common.attrib;
+		%subjectset.role.attrib;
+		%local.subjectset.attrib;
+>
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+<!ELEMENT subject (subjectterm+)>
+<!ATTLIST subject
+		weight		CDATA		#IMPLIED
+		%common.attrib;
+		%subject.role.attrib;
+		%local.subject.attrib;
+>
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+<!ELEMENT subjectterm (#PCDATA)>
+<!ATTLIST subjectterm
+		%common.attrib;
+		%subjectterm.role.attrib;
+		%local.subjectterm.attrib;
+>
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+<!ELEMENT keywordset (keyword+)>
+<!ATTLIST keywordset
+		%common.attrib;
+		%keywordset.role.attrib;
+		%local.keywordset.attrib;
+>
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+<!ELEMENT keyword (#PCDATA)>
+<!ATTLIST keyword
+		%common.attrib;
+		%keyword.role.attrib;
+		%local.keyword.attrib;
+>
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+<!ELEMENT sidebar ((%formalobject.title.content;)?, (%sidebar.mix;)+)>
+<!ATTLIST sidebar
+		%common.attrib;
+		%sidebar.role.attrib;
+		%local.sidebar.attrib;
+>
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!ATTLIST abstract
+		%common.attrib;
+		%abstract.role.attrib;
+		%local.abstract.attrib;
+>
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!ATTLIST authorblurb
+		%common.attrib;
+		%authorblurb.role.attrib;
+		%local.authorblurb.attrib;
+>
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!ATTLIST blockquote
+		%common.attrib;
+		%blockquote.role.attrib;
+		%local.blockquote.attrib;
+>
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+<!ELEMENT attribution (%para.char.mix;)*>
+<!ATTLIST attribution
+		%common.attrib;
+		%attribution.role.attrib;
+		%local.attribution.attrib;
+>
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!ATTLIST epigraph
+		%common.attrib;
+		%epigraph.role.attrib;
+		%local.epigraph.attrib;
+>
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!ATTLIST footnote
+		%label.attrib;
+		%common.attrib;
+		%footnote.role.attrib;
+		%local.footnote.attrib;
+>
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+<!ATTLIST para
+		%common.attrib;
+		%para.role.attrib;
+		%local.para.attrib;
+>
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!ATTLIST note
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+<!ELEMENT itemizedlist (listitem+)>
+<!ATTLIST itemizedlist		spacing		(normal
+				|compact)	#IMPLIED
+		%mark.attrib;
+		%common.attrib;
+		%itemizedlist.role.attrib;
+		%local.itemizedlist.attrib;
+>
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+<!ELEMENT orderedlist (listitem+)>
+<!ATTLIST orderedlist
+		numeration	(arabic
+				|upperalpha
+				|loweralpha
+				|upperroman
+				|lowerroman)	#IMPLIED
+		inheritnum	(inherit
+				|ignore)	"ignore"
+		continuation	(continues
+				|restarts)	"restarts"
+		spacing		(normal
+				|compact)	#IMPLIED
+		%common.attrib;
+		%orderedlist.role.attrib;
+		%local.orderedlist.attrib;
+>
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+<!ELEMENT listitem ((%component.mix;)+)>
+<!ATTLIST listitem
+		override	CDATA		#IMPLIED
+		%common.attrib;
+		%listitem.role.attrib;
+		%local.listitem.attrib;
+>
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!ATTLIST variablelist
+		termlength	CDATA		#IMPLIED
+		%common.attrib;
+		%variablelist.role.attrib;
+		%local.variablelist.attrib;
+>
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+<!ELEMENT varlistentry (term+, listitem)>
+<!ATTLIST varlistentry
+		%common.attrib;
+		%varlistentry.role.attrib;
+		%local.varlistentry.attrib;
+>
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+<!ELEMENT term (%para.char.mix;)*>
+<!ATTLIST term
+		%common.attrib;
+		%term.role.attrib;
+		%local.term.attrib;
+>
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!ATTLIST example
+		%label.attrib;
+		%width.attrib;
+		%common.attrib;
+		%example.role.attrib;
+		%local.example.attrib;
+>
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+<!ELEMENT programlisting (%programlisting.content;)*>
+<!ATTLIST programlisting
+		%width.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%programlisting.role.attrib;
+		%local.programlisting.attrib;
+>
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>
+<!ATTLIST literallayout
+		%width.attrib;
+		%linespecific.attrib;
+		class	(monospaced|normal)	"normal"
+		%common.attrib;
+		%literallayout.role.attrib;
+		%local.literallayout.attrib;
+>
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+		%link.char.class;)+)>
+<!ATTLIST figure
+		float		%yesorno.attvals;	'0'
+		pgwide      	%yesorno.attvals;       #IMPLIED
+		%label.attrib;
+		%common.attrib;
+		%figure.role.attrib;
+		%local.figure.attrib;
+>
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+<!ELEMENT mediaobject (objectinfo?,
+                           (%mediaobject.mix;),
+			   (%mediaobject.mix;|textobject)*,
+			   caption?)>
+<!ATTLIST mediaobject
+		%common.attrib;
+		%mediaobject.role.attrib;
+		%local.mediaobject.attrib;
+>
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+<!ELEMENT inlinemediaobject (objectinfo?,
+                	         (%mediaobject.mix;),
+				 (%mediaobject.mix;|textobject)*)>
+<!ATTLIST inlinemediaobject
+		%common.attrib;
+		%inlinemediaobject.role.attrib;
+		%local.inlinemediaobject.attrib;
+>
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!ATTLIST videoobject
+		%common.attrib;
+		%videoobject.role.attrib;
+		%local.videoobject.attrib;
+>
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!ATTLIST audioobject
+		%common.attrib;
+		%audioobject.role.attrib;
+		%local.audioobject.attrib;
+>
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!ATTLIST imageobject
+		%common.attrib;
+		%imageobject.role.attrib;
+		%local.imageobject.attrib;
+>
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!ATTLIST textobject
+		%common.attrib;
+		%textobject.role.attrib;
+		%local.textobject.attrib;
+>
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+<!ATTLIST objectinfo
+		%common.attrib;
+		%objectinfo.role.attrib;
+		%local.objectinfo.attrib;
+>
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+	"
+	entityref	ENTITY		#IMPLIED
+	fileref 	CDATA		#IMPLIED
+	format		(%notation.class;)
+					#IMPLIED
+	srccredit	CDATA		#IMPLIED
+	%local.objectdata.attrib;"
+>
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+<!ELEMENT videodata EMPTY>
+<!ATTLIST videodata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%videodata.role.attrib;
+		%local.videodata.attrib;
+>
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+<!ELEMENT audiodata EMPTY>
+<!ATTLIST audiodata
+		%common.attrib;
+		%objectdata.attrib;
+		%local.audiodata.attrib;
+		%audiodata.role.attrib;
+>
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+<!ELEMENT imagedata EMPTY>
+<!ATTLIST imagedata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%local.imagedata.attrib;
+		%imagedata.role.attrib;
+>
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+<!ELEMENT caption (%textobject.mix;)*>
+<!ATTLIST caption
+		%common.attrib;
+		%local.caption.attrib;
+		%caption.role.attrib;
+>
+<!ENTITY % tables.role.attrib "%role.attrib;">
+<!ENTITY % bodyatt 
+	"%common.attrib;
+	%label.attrib;
+	%tables.role.attrib;">
+<!ENTITY % common.table.attribs
+	"%bodyatt;">
+<!ENTITY % tbl.tgroup.att       "%common.attrib;">
+<!ENTITY % tbl.colspec.att      "%common.attrib;">
+<!ENTITY % tbl.tbody.att        "%common.attrib;">
+<!ENTITY % tbl.thead.att        "%common.attrib;">
+<!ENTITY % tbl.row.att          "%common.attrib;">
+<!ENTITY % tbl.entry.att        "%common.attrib;">
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+<!ENTITY % yesorno 'NMTOKEN'>
+<!ENTITY % titles  'title?'>
+<!ENTITY % tbl.table.name       "table">
+<!ENTITY % tbl.table.att        "
+    pgwide      %yesorno;       #IMPLIED ">
+<!ENTITY % tbl.tgroup.mdl       "colspec*,thead?,tbody">
+<!ENTITY % tbl.row.mdl          "entry+">
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+<!ATTLIST %tbl.table.name;
+        frame           (top|bottom|topbot|all|sides|none)      #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        %tbl.table.att;
+        %bodyatt;
+>
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+<!ATTLIST tgroup
+        cols            NMTOKEN                                 #REQUIRED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        %tbl.tgroup.att;
+>
+<!ELEMENT colspec EMPTY >
+<!ATTLIST colspec
+        colnum          NMTOKEN                                 #IMPLIED
+        colname         NMTOKEN                                 #IMPLIED
+        colwidth        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        %tbl.colspec.att;
+>
+<!ELEMENT thead (row+)>
+<!ATTLIST thead
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.thead.att;
+>
+<!ELEMENT tbody (row+)>
+<!ATTLIST tbody
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.tbody.att;
+>
+<!ELEMENT row (%tbl.row.mdl;)>
+<!ATTLIST row
+        rowsep          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.row.att;
+>
+<!ELEMENT entry %tbl.entry.mdl;>
+<!ATTLIST entry
+        colname         NMTOKEN                                 #IMPLIED
+        namest          NMTOKEN                                 #IMPLIED
+        nameend         NMTOKEN                                 #IMPLIED
+        morerows        NMTOKEN                                 #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.entry.att;
+>
+<!ENTITY % local.informaltable.attrib "">
+<!ATTLIST informaltable
+		frame		(top
+				|bottom
+				|topbot
+				|all
+				|sides
+				|none)			#IMPLIED
+		colsep		%yesorno.attvals;	#IMPLIED
+		rowsep		%yesorno.attvals;	#IMPLIED
+		%common.table.attribs;
+		%tbl.table.att;
+		%local.informaltable.attrib;
+>
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+<!ATTLIST affiliation
+		%common.attrib;
+		%affiliation.role.attrib;
+		%local.affiliation.attrib;
+>
+<!ENTITY % local.jobtitle.attrib "">
+<!ENTITY % jobtitle.role.attrib "%role.attrib;">
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!ATTLIST jobtitle
+		%common.attrib;
+		%jobtitle.role.attrib;
+		%local.jobtitle.attrib;
+>
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!ATTLIST author
+		%common.attrib;
+		%author.role.attrib;
+		%local.author.attrib;
+>
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+<!ATTLIST authorgroup
+		%common.attrib;
+		%authorgroup.role.attrib;
+		%local.authorgroup.attrib;
+>
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!ATTLIST authorinitials
+		%common.attrib;
+		%authorinitials.role.attrib;
+		%local.authorinitials.attrib;
+>
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+<!ELEMENT copyright (year+, holder*)>
+<!ATTLIST copyright
+		%common.attrib;
+		%copyright.role.attrib;
+		%local.copyright.attrib;
+>
+<!ENTITY % local.year.attrib "">
+<!ENTITY % year.role.attrib "%role.attrib;">
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!ATTLIST year
+		%common.attrib;
+		%year.role.attrib;
+		%local.year.attrib;
+>
+<!ENTITY % local.holder.attrib "">
+<!ENTITY % holder.role.attrib "%role.attrib;">
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!ATTLIST holder
+		%common.attrib;
+		%holder.role.attrib;
+		%local.holder.attrib;
+>
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!ATTLIST corpauthor
+		%common.attrib;
+		%corpauthor.role.attrib;
+		%local.corpauthor.attrib;
+>
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!ATTLIST date
+		%common.attrib;
+		%date.role.attrib;
+		%local.date.attrib;
+>
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!ATTLIST edition
+		%common.attrib;
+		%edition.role.attrib;
+		%local.edition.attrib;
+>
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!ATTLIST editor
+		%common.attrib;
+		%editor.role.attrib;
+		%local.editor.attrib;
+>
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!ATTLIST issuenum
+		%common.attrib;
+		%issuenum.role.attrib;
+		%local.issuenum.attrib;
+>
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!ATTLIST legalnotice
+		%common.attrib;
+		%legalnotice.role.attrib;
+		%local.legalnotice.attrib;
+>
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!ATTLIST orgname
+		%common.attrib;
+		%orgname.role.attrib;
+		%local.orgname.attrib;
+>
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!ATTLIST othercredit
+		%common.attrib;
+		%othercredit.role.attrib;
+		%local.othercredit.attrib;
+>
+<!ENTITY % local.firstname.attrib "">
+<!ENTITY % firstname.role.attrib "%role.attrib;">
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!ATTLIST firstname
+		%common.attrib;
+		%firstname.role.attrib;
+		%local.firstname.attrib;
+>
+<!ENTITY % local.honorific.attrib "">
+<!ENTITY % honorific.role.attrib "%role.attrib;">
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!ATTLIST honorific
+		%common.attrib;
+		%honorific.role.attrib;
+		%local.honorific.attrib;
+>
+<!ENTITY % local.lineage.attrib "">
+<!ENTITY % lineage.role.attrib "%role.attrib;">
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!ATTLIST lineage
+		%common.attrib;
+		%lineage.role.attrib;
+		%local.lineage.attrib;
+>
+<!ENTITY % local.othername.attrib "">
+<!ENTITY % othername.role.attrib "%role.attrib;">
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!ATTLIST othername
+		%common.attrib;
+		%othername.role.attrib;
+		%local.othername.attrib;
+>
+<!ENTITY % local.surname.attrib "">
+<!ENTITY % surname.role.attrib "%role.attrib;">
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!ATTLIST surname
+		%common.attrib;
+		%surname.role.attrib;
+		%local.surname.attrib;
+>
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!ATTLIST pubdate
+		%common.attrib;
+		%pubdate.role.attrib;
+		%local.pubdate.attrib;
+>
+<!ENTITY % local.publishername.attrib "">
+<!ENTITY % publishername.role.attrib "%role.attrib;">
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!ATTLIST publishername
+		%common.attrib;
+		%publishername.role.attrib;
+		%local.publishername.attrib;
+>
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!ATTLIST releaseinfo
+		%common.attrib;
+		%releaseinfo.role.attrib;
+		%local.releaseinfo.attrib;
+>
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+<!ELEMENT revhistory (revision+)>
+<!ATTLIST revhistory
+		%common.attrib;
+		%revhistory.role.attrib;
+		%local.revhistory.attrib;
+>
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+<!ELEMENT revision (revnumber, date, authorinitials*, revremark?)>
+<!ATTLIST revision
+		%common.attrib;
+		%revision.role.attrib;
+		%local.revision.attrib;
+>
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!ATTLIST revnumber
+		%common.attrib;
+		%revnumber.role.attrib;
+		%local.revnumber.attrib;
+>
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!ATTLIST revremark
+		%common.attrib;
+		%revremark.role.attrib;
+		%local.revremark.attrib;
+>
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!ATTLIST volumenum
+		%common.attrib;
+		%volumenum.role.attrib;
+		%local.volumenum.attrib;
+>
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+<!ELEMENT command (%cptr.char.mix;)*>
+<!ATTLIST command
+		%moreinfo.attrib;
+		%common.attrib;
+		%command.role.attrib;
+		%local.command.attrib;
+>
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!ATTLIST computeroutput
+		%moreinfo.attrib;
+		%common.attrib;
+		%computeroutput.role.attrib;
+		%local.computeroutput.attrib;
+>
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!ATTLIST email
+		%common.attrib;
+		%email.role.attrib;
+		%local.email.attrib;
+>
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+<!ELEMENT filename (%cptr.char.mix;)*>
+<!ATTLIST filename
+		class		(headerfile
+				|symlink
+				|directory)	#IMPLIED
+		path		CDATA		#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%filename.role.attrib;
+		%local.filename.attrib;
+>
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!ATTLIST lineannotation
+		%common.attrib;
+		%lineannotation.role.attrib;
+		%local.lineannotation.attrib;
+>
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!ATTLIST literal
+		%moreinfo.attrib;
+		%common.attrib;
+		%literal.role.attrib;
+		%local.literal.attrib;
+>
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+<!ELEMENT option (%cptr.char.mix;)*>
+<!ATTLIST option
+		%common.attrib;
+		%option.role.attrib;
+		%local.option.attrib;
+>
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+<!ATTLIST replaceable
+		class		(command
+				|function
+				|option
+				|parameter)	#IMPLIED
+		%common.attrib;
+		%replaceable.role.attrib;
+		%local.replaceable.attrib;
+>
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+<!ATTLIST systemitem
+		class	(constant
+			|environvar
+			|macro
+			|osname
+			|prompt
+			|resource
+			|systemname)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%systemitem.role.attrib;
+		%local.systemitem.attrib;
+>
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!ATTLIST userinput
+		%moreinfo.attrib;
+		%common.attrib;
+		%userinput.role.attrib;
+		%local.userinput.attrib;
+>
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!ATTLIST abbrev
+		%common.attrib;
+		%abbrev.role.attrib;
+		%local.abbrev.attrib;
+>
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+<!ELEMENT acronym (%word.char.mix;)*>
+<!ATTLIST acronym
+		%common.attrib;
+		%acronym.role.attrib;
+		%local.acronym.attrib;
+>
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!ATTLIST citetitle
+		pubwork		(article
+				|book
+				|chapter
+				|part
+				|refentry
+				|section
+				|journal
+				|series
+				|set
+				|manuscript)	#IMPLIED
+		%common.attrib;
+		%citetitle.role.attrib;
+		%local.citetitle.attrib;
+>
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!ATTLIST emphasis
+		%common.attrib;
+		%emphasis.role.attrib;
+		%local.emphasis.attrib;
+>
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+<!ELEMENT phrase (%para.char.mix;)*>
+<!ATTLIST phrase
+		%common.attrib;
+		%phrase.role.attrib;
+		%local.phrase.attrib;
+>
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+<!ELEMENT quote (%para.char.mix;)*>
+<!ATTLIST quote
+		%common.attrib;
+		%quote.role.attrib;
+		%local.quote.attrib;
+>
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+<!ATTLIST trademark
+		class		(service
+				|trade
+				|registered
+				|copyright)	'trade'
+		%common.attrib;
+		%trademark.role.attrib;
+		%local.trademark.attrib;
+>
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+<!ELEMENT link (%para.char.mix;)*>
+<!ATTLIST link
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		type		CDATA		#IMPLIED
+		%common.attrib;
+		%link.role.attrib;
+		%local.link.attrib;
+>
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+<!ELEMENT ulink (%para.char.mix;)*>
+<!ATTLIST ulink
+		url		CDATA		#REQUIRED
+		type		CDATA		#IMPLIED
+		%common.attrib;
+		%ulink.role.attrib;
+		%local.ulink.attrib;
+>
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+<!ELEMENT xref EMPTY>
+<!ATTLIST xref
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		%common.attrib;
+		%xref.role.attrib;
+		%local.xref.attrib;
+>
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class	"appendix %local.appendix.class;">
+<!ENTITY % local.article.class "">
+<!ENTITY % article.class	"article %local.article.class;">
+<!ENTITY % local.book.class "">
+<!ENTITY % local.chapter.class "">
+<!ENTITY % chapter.class	"chapter %local.chapter.class;">
+<!ENTITY % local.index.class "">
+<!ENTITY % local.refentry.class "">
+<!ENTITY % refentry.class	"refentry %local.refentry.class;">
+<!ENTITY % local.nav.class "">
+<!ENTITY % nav.class		"toc|lot|index|glossary|bibliography 
+				%local.nav.class;">
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % local.indexdivcomponent.mix "">
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % local.partcontent.mix "">
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+<!ATTLIST appendix
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%appendix.role.attrib;
+		%local.appendix.attrib;
+>
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+<!ATTLIST section
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%section.role.attrib;
+		%local.section.attrib;
+>
+<!ENTITY % sectioninfo.role.attrib "%role.attrib;">
+<!ENTITY % local.sectioninfo.attrib "">
+<!ATTLIST sectioninfo
+		%common.attrib;
+		%sectioninfo.role.attrib;
+		%local.sectioninfo.attrib;
+>
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+<!ELEMENT docinfo ((mediaobject 
+		| legalnotice
+		| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT section (sectioninfo?,
+			(%sect.title.content;),
+			(((%divcomponent.mix;)+, section*)
+			 | section+))>
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+<!ELEMENT para (%para.char.mix;)*>
+<!ELEMENT informaltable (mediaobject+|tgroup+) >
+<!ELEMENT replaceable (#PCDATA 
+		| %link.char.class; 
+		| inlinemediaobject)*>
+<!ELEMENT trademark (#PCDATA 
+		| %link.char.class; 
+		| %tech.char.class;
+		| inlinemediaobject
+		| emphasis)*>
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+<!ELEMENT article ((%div.title.content;)?, artheader?,
+		       (%bookcomponent.content;),
+		       (%appendix.class;)*)>
+<!ATTLIST article
+		class		(journalarticle
+				|productsheet
+				|whitepaper
+				|techreport
+				|faq)		#IMPLIED
+		%status.attrib;
+		%common.attrib;
+		%article.role.attrib;
+		%local.article.attrib;
+>
+<!ELEMENT artheader (mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+>
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+		(%bookcomponent.content;))>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbookref-custom.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbookref-custom.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbookref-custom.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML RefEntry V3.1.7.1 DTD
+     Copyright (C) 1999 Norman Walsh
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % include.refentry "INCLUDE">
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+		"#PCDATA
+		%local.refclass.char.mix;">
+
+<!ENTITY % sdocbook-custom.dtd SYSTEM "sdocbook-custom.dtd">
+%sdocbook-custom.dtd;
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbookref.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbookref.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sdocbookref.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1460 @@
+<!-- *********************************************************************
+     *** THIS IS THE FLATTENED DTD. DO NOT EDIT THIS DTD BY HAND, EDIT ***
+     *** THE CUSTOMIZATION LAYER AND REGNERATE THE FLATTENED DTD! ********
+     ********************************************************************* -->
+
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML RefEntry V3.1.7.1 DTD
+     Copyright (C) 1999 Norman Walsh
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+		"#PCDATA
+		%local.refclass.char.mix;">
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+	"docinfo?, title, subtitle?">
+<!ENTITY % sect.title.content
+	"title, subtitle?">
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+		"itemizedlist|orderedlist
+		|variablelist %local.list.class;">
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+		"note %local.admon.class;">
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+		"literallayout|programlisting %local.linespecific.class;">
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+		"para %local.para.class;">
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+		"blockquote
+		|mediaobject
+		|informaltable %local.informal.class;">
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+		"example|figure|table %local.formal.class;">
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+		"sidebar %local.compound.class;">
+<!ENTITY % local.genobj.class "">
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+		"abstract|authorblurb|epigraph
+		%local.descobj.class;">
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+		"abbrev|acronym|citetitle|emphasis|footnote|phrase
+		|quote|trademark %local.gen.char.class;">
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+		"xref|link|ulink %local.link.char.class;">
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+		"command|computeroutput
+		|email|filename
+		|literal
+		|option
+		|replaceable
+		|systemitem|userinput
+		%local.tech.char.class;">
+<!ENTITY % local.base.char.class "">
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+		"author|corpauthor|othercredit
+		|revhistory
+		%local.docinfo.char.class;">
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+		"inlinemediaobject %local.inlineobj.char.class;">
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+	"id		ID		#IMPLIED
+	%local.common.attrib;"
+>
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+		"honorific|firstname|surname|lineage|othername|affiliation
+		|authorblurb
+		%local.person.ident.mix;">
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+		"abbrev|abstract|author
+		|authorgroup|bibliomisc
+		|copyright|corpauthor|date|edition
+		|editor|issuenum
+		|othercredit
+		|pubdate|publishername
+		|releaseinfo|revhistory
+		|subtitle|title|volumenum|citetitle
+		|%person.ident.mix;
+		%local.bibliocomponent.mix;">
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.component.mix;">
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.sidebar.mix;">
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.footnote.mix;">
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.example.mix;">
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % local.para.mix "">
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.admon.mix;">
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+		"%linespecific.class;
+					|%informal.class;
+		%local.figure.mix;">
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|mediaobject
+		%local.tabentry.mix;">
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.legalnotice.mix;">
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.textobject.mix;">
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%inlineobj.char.class;
+		%local.para.char.mix;">
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%docinfo.char.class;
+					|%inlineobj.char.class;
+		%local.title.char.mix;">
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+		"#PCDATA
+		|%link.char.class;	|%tech.char.class;
+					|inlinemediaobject
+		%local.cptr.char.mix;">
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+		"#PCDATA
+					|acronym|emphasis|trademark
+		|%link.char.class;
+					|inlinemediaobject
+		%local.word.char.mix;">
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+		"#PCDATA
+		|%link.char.class;
+					|emphasis|trademark
+					|replaceable
+					|inlinemediaobject
+		%local.docinfo.char.mix;">
+<!ENTITY % tbl.table.mdl
+	"(title, titleabbrev?, (mediaobject+|tgroup+))">
+<!ENTITY % programlisting.content "%para.char.mix; | lineannotation">
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.divcomponent.mix;">
+<!ENTITY % bookcomponent.content
+	"((%divcomponent.mix;)+, section*)
+	| section+">
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		%local.refinline.char.mix;">
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.divcomponent.mix;">
+<!ELEMENT refentry (docinfo?, refmeta?, (%link.char.class;)*,
+                    refnamediv, refsynopsisdiv?, refsect1+)>
+<!ELEMENT refmeta (refentrytitle, manvolnum?, refmiscinfo*)>
+<!ELEMENT refsect1info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsect2info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsect3info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsynopsisdivinfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+		(%link.char.class;)*)>
+
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+		"BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+		| EPS | EQN | FAX | GIF | GIF87a | GIF89a 
+		| JPG | JPEG | IGES | PCX
+		| PIC | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+		| linespecific
+		%local.notation.class;">
+<!NOTATION BMP		PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR	PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY	PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR	PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF	SYSTEM "DITROFF">
+<!NOTATION DVI		SYSTEM "DVI">
+<!NOTATION EPS		PUBLIC 
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN		SYSTEM "EQN">
+<!NOTATION FAX		PUBLIC 
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF		SYSTEM "GIF">
+<!NOTATION GIF87a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+<!NOTATION GIF89a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG		SYSTEM "JPG">
+<!NOTATION JPEG		SYSTEM "JPG">
+<!NOTATION IGES		PUBLIC 
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC		SYSTEM "PIC">
+<!NOTATION PS		SYSTEM "PS">
+<!NOTATION SGML		PUBLIC 
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL		SYSTEM "TBL">
+<!NOTATION TEX		PUBLIC 
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF		SYSTEM "TIFF">
+<!NOTATION WMF		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG		SYSTEM "WPG">
+<!NOTATION linespecific	SYSTEM "linespecific">
+<!ENTITY % yesorno.attvals	"CDATA">
+<!ENTITY % local.ndxterm.class "">
+<!ENTITY % local.synop.class "">
+<!ENTITY % synop.class
+		"synopsis|cmdsynopsis|funcsynopsis %local.synop.class;">
+<!ENTITY % local.other.char.class "">
+<!ENTITY % other.char.class
+		"comment|subscript|superscript %local.other.char.class;">
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix 
+		"videoobject|audioobject|imageobject %local.mediaobject.mix;">
+<!ENTITY % local.ndxterm.char.mix "">
+<!ENTITY % role.attrib
+	"role		CDATA		#IMPLIED">
+<!ENTITY % local.graphics.attrib "">
+<!ENTITY % local.keyaction.attrib "">
+<!ENTITY % label.attrib
+	"label		CDATA		#IMPLIED">
+<!ENTITY % linespecific.attrib
+	"format		NOTATION
+			(linespecific)	'linespecific'">
+<!ENTITY % linkendreq.attrib
+	"linkend	IDREF		#REQUIRED">
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+	"mark		CDATA		#IMPLIED
+	%local.mark.attrib;"
+>
+<!ENTITY % moreinfo.attrib
+	"moreinfo	(refentry|none)	'none'">
+<!ENTITY % pagenum.attrib
+	"pagenum	CDATA		#IMPLIED">
+<!ENTITY % local.status.attrib "">
+<!ENTITY % status.attrib
+	"status		CDATA		#IMPLIED
+	%local.status.attrib;"
+>
+<!ENTITY % width.attrib
+	"width		CDATA		#IMPLIED">
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+<!ELEMENT title (%title.char.mix;)*>
+<!ATTLIST title
+		%pagenum.attrib;
+		%common.attrib;
+		%title.role.attrib;
+		%local.title.attrib;
+>
+<!ENTITY % local.titleabbrev.attrib "">
+<!ENTITY % titleabbrev.role.attrib "%role.attrib;">
+<!ELEMENT titleabbrev (%title.char.mix;)*>
+<!ATTLIST titleabbrev
+		%common.attrib;
+		%titleabbrev.role.attrib;
+		%local.titleabbrev.attrib;
+>
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!ATTLIST subtitle
+		%common.attrib;
+		%subtitle.role.attrib;
+		%local.subtitle.attrib;
+>
+<!ENTITY % local.artheader.attrib "">
+<!ENTITY % artheader.role.attrib "%role.attrib;">
+<!ATTLIST artheader
+		%common.attrib;
+		%artheader.role.attrib;
+		%local.artheader.attrib;
+>
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ATTLIST bibliomset
+		relation	CDATA		#IMPLIED
+		%bibliomset.role.attrib;
+		%common.attrib;
+		%local.bibliomset.attrib;
+>
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!ATTLIST bibliomisc
+		%common.attrib;
+		%bibliomisc.role.attrib;
+		%local.bibliomisc.attrib;
+>
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+<!ELEMENT subjectset (subject+)>
+<!ATTLIST subjectset
+		scheme		NMTOKEN		#IMPLIED
+		%common.attrib;
+		%subjectset.role.attrib;
+		%local.subjectset.attrib;
+>
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+<!ELEMENT subject (subjectterm+)>
+<!ATTLIST subject
+		weight		CDATA		#IMPLIED
+		%common.attrib;
+		%subject.role.attrib;
+		%local.subject.attrib;
+>
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+<!ELEMENT subjectterm (#PCDATA)>
+<!ATTLIST subjectterm
+		%common.attrib;
+		%subjectterm.role.attrib;
+		%local.subjectterm.attrib;
+>
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+<!ELEMENT keywordset (keyword+)>
+<!ATTLIST keywordset
+		%common.attrib;
+		%keywordset.role.attrib;
+		%local.keywordset.attrib;
+>
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+<!ELEMENT keyword (#PCDATA)>
+<!ATTLIST keyword
+		%common.attrib;
+		%keyword.role.attrib;
+		%local.keyword.attrib;
+>
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+<!ELEMENT sidebar ((%formalobject.title.content;)?, (%sidebar.mix;)+)>
+<!ATTLIST sidebar
+		%common.attrib;
+		%sidebar.role.attrib;
+		%local.sidebar.attrib;
+>
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!ATTLIST abstract
+		%common.attrib;
+		%abstract.role.attrib;
+		%local.abstract.attrib;
+>
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!ATTLIST authorblurb
+		%common.attrib;
+		%authorblurb.role.attrib;
+		%local.authorblurb.attrib;
+>
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!ATTLIST blockquote
+		%common.attrib;
+		%blockquote.role.attrib;
+		%local.blockquote.attrib;
+>
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+<!ELEMENT attribution (%para.char.mix;)*>
+<!ATTLIST attribution
+		%common.attrib;
+		%attribution.role.attrib;
+		%local.attribution.attrib;
+>
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!ATTLIST epigraph
+		%common.attrib;
+		%epigraph.role.attrib;
+		%local.epigraph.attrib;
+>
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!ATTLIST footnote
+		%label.attrib;
+		%common.attrib;
+		%footnote.role.attrib;
+		%local.footnote.attrib;
+>
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+<!ATTLIST para
+		%common.attrib;
+		%para.role.attrib;
+		%local.para.attrib;
+>
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!ATTLIST note
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+<!ELEMENT itemizedlist (listitem+)>
+<!ATTLIST itemizedlist		spacing		(normal
+				|compact)	#IMPLIED
+		%mark.attrib;
+		%common.attrib;
+		%itemizedlist.role.attrib;
+		%local.itemizedlist.attrib;
+>
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+<!ELEMENT orderedlist (listitem+)>
+<!ATTLIST orderedlist
+		numeration	(arabic
+				|upperalpha
+				|loweralpha
+				|upperroman
+				|lowerroman)	#IMPLIED
+		inheritnum	(inherit
+				|ignore)	"ignore"
+		continuation	(continues
+				|restarts)	"restarts"
+		spacing		(normal
+				|compact)	#IMPLIED
+		%common.attrib;
+		%orderedlist.role.attrib;
+		%local.orderedlist.attrib;
+>
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+<!ELEMENT listitem ((%component.mix;)+)>
+<!ATTLIST listitem
+		override	CDATA		#IMPLIED
+		%common.attrib;
+		%listitem.role.attrib;
+		%local.listitem.attrib;
+>
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!ATTLIST variablelist
+		termlength	CDATA		#IMPLIED
+		%common.attrib;
+		%variablelist.role.attrib;
+		%local.variablelist.attrib;
+>
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+<!ELEMENT varlistentry (term+, listitem)>
+<!ATTLIST varlistentry
+		%common.attrib;
+		%varlistentry.role.attrib;
+		%local.varlistentry.attrib;
+>
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+<!ELEMENT term (%para.char.mix;)*>
+<!ATTLIST term
+		%common.attrib;
+		%term.role.attrib;
+		%local.term.attrib;
+>
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!ATTLIST example
+		%label.attrib;
+		%width.attrib;
+		%common.attrib;
+		%example.role.attrib;
+		%local.example.attrib;
+>
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+<!ELEMENT programlisting (%programlisting.content;)*>
+<!ATTLIST programlisting
+		%width.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%programlisting.role.attrib;
+		%local.programlisting.attrib;
+>
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>
+<!ATTLIST literallayout
+		%width.attrib;
+		%linespecific.attrib;
+		class	(monospaced|normal)	"normal"
+		%common.attrib;
+		%literallayout.role.attrib;
+		%local.literallayout.attrib;
+>
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+		%link.char.class;)+)>
+<!ATTLIST figure
+		float		%yesorno.attvals;	'0'
+		pgwide      	%yesorno.attvals;       #IMPLIED
+		%label.attrib;
+		%common.attrib;
+		%figure.role.attrib;
+		%local.figure.attrib;
+>
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+<!ELEMENT mediaobject (objectinfo?,
+                           (%mediaobject.mix;),
+			   (%mediaobject.mix;|textobject)*,
+			   caption?)>
+<!ATTLIST mediaobject
+		%common.attrib;
+		%mediaobject.role.attrib;
+		%local.mediaobject.attrib;
+>
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+<!ELEMENT inlinemediaobject (objectinfo?,
+                	         (%mediaobject.mix;),
+				 (%mediaobject.mix;|textobject)*)>
+<!ATTLIST inlinemediaobject
+		%common.attrib;
+		%inlinemediaobject.role.attrib;
+		%local.inlinemediaobject.attrib;
+>
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!ATTLIST videoobject
+		%common.attrib;
+		%videoobject.role.attrib;
+		%local.videoobject.attrib;
+>
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!ATTLIST audioobject
+		%common.attrib;
+		%audioobject.role.attrib;
+		%local.audioobject.attrib;
+>
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!ATTLIST imageobject
+		%common.attrib;
+		%imageobject.role.attrib;
+		%local.imageobject.attrib;
+>
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!ATTLIST textobject
+		%common.attrib;
+		%textobject.role.attrib;
+		%local.textobject.attrib;
+>
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+<!ATTLIST objectinfo
+		%common.attrib;
+		%objectinfo.role.attrib;
+		%local.objectinfo.attrib;
+>
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+	"
+	entityref	ENTITY		#IMPLIED
+	fileref 	CDATA		#IMPLIED
+	format		(%notation.class;)
+					#IMPLIED
+	srccredit	CDATA		#IMPLIED
+	%local.objectdata.attrib;"
+>
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+<!ELEMENT videodata EMPTY>
+<!ATTLIST videodata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%videodata.role.attrib;
+		%local.videodata.attrib;
+>
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+<!ELEMENT audiodata EMPTY>
+<!ATTLIST audiodata
+		%common.attrib;
+		%objectdata.attrib;
+		%local.audiodata.attrib;
+		%audiodata.role.attrib;
+>
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+<!ELEMENT imagedata EMPTY>
+<!ATTLIST imagedata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%local.imagedata.attrib;
+		%imagedata.role.attrib;
+>
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+<!ELEMENT caption (%textobject.mix;)*>
+<!ATTLIST caption
+		%common.attrib;
+		%local.caption.attrib;
+		%caption.role.attrib;
+>
+<!ENTITY % tables.role.attrib "%role.attrib;">
+<!ENTITY % bodyatt 
+	"%common.attrib;
+	%label.attrib;
+	%tables.role.attrib;">
+<!ENTITY % common.table.attribs
+	"%bodyatt;">
+<!ENTITY % tbl.tgroup.att       "%common.attrib;">
+<!ENTITY % tbl.colspec.att      "%common.attrib;">
+<!ENTITY % tbl.tbody.att        "%common.attrib;">
+<!ENTITY % tbl.thead.att        "%common.attrib;">
+<!ENTITY % tbl.row.att          "%common.attrib;">
+<!ENTITY % tbl.entry.att        "%common.attrib;">
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+<!ENTITY % yesorno 'NMTOKEN'>
+<!ENTITY % titles  'title?'>
+<!ENTITY % tbl.table.name       "table">
+<!ENTITY % tbl.table.att        "
+    pgwide      %yesorno;       #IMPLIED ">
+<!ENTITY % tbl.tgroup.mdl       "colspec*,thead?,tbody">
+<!ENTITY % tbl.row.mdl          "entry+">
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+<!ATTLIST %tbl.table.name;
+        frame           (top|bottom|topbot|all|sides|none)      #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        %tbl.table.att;
+        %bodyatt;
+>
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+<!ATTLIST tgroup
+        cols            NMTOKEN                                 #REQUIRED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        %tbl.tgroup.att;
+>
+<!ELEMENT colspec EMPTY >
+<!ATTLIST colspec
+        colnum          NMTOKEN                                 #IMPLIED
+        colname         NMTOKEN                                 #IMPLIED
+        colwidth        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        %tbl.colspec.att;
+>
+<!ELEMENT thead (row+)>
+<!ATTLIST thead
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.thead.att;
+>
+<!ELEMENT tbody (row+)>
+<!ATTLIST tbody
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.tbody.att;
+>
+<!ELEMENT row (%tbl.row.mdl;)>
+<!ATTLIST row
+        rowsep          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.row.att;
+>
+<!ELEMENT entry %tbl.entry.mdl;>
+<!ATTLIST entry
+        colname         NMTOKEN                                 #IMPLIED
+        namest          NMTOKEN                                 #IMPLIED
+        nameend         NMTOKEN                                 #IMPLIED
+        morerows        NMTOKEN                                 #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.entry.att;
+>
+<!ENTITY % local.informaltable.attrib "">
+<!ATTLIST informaltable
+		frame		(top
+				|bottom
+				|topbot
+				|all
+				|sides
+				|none)			#IMPLIED
+		colsep		%yesorno.attvals;	#IMPLIED
+		rowsep		%yesorno.attvals;	#IMPLIED
+		%common.table.attribs;
+		%tbl.table.att;
+		%local.informaltable.attrib;
+>
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+<!ATTLIST affiliation
+		%common.attrib;
+		%affiliation.role.attrib;
+		%local.affiliation.attrib;
+>
+<!ENTITY % local.jobtitle.attrib "">
+<!ENTITY % jobtitle.role.attrib "%role.attrib;">
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!ATTLIST jobtitle
+		%common.attrib;
+		%jobtitle.role.attrib;
+		%local.jobtitle.attrib;
+>
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!ATTLIST author
+		%common.attrib;
+		%author.role.attrib;
+		%local.author.attrib;
+>
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+<!ATTLIST authorgroup
+		%common.attrib;
+		%authorgroup.role.attrib;
+		%local.authorgroup.attrib;
+>
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!ATTLIST authorinitials
+		%common.attrib;
+		%authorinitials.role.attrib;
+		%local.authorinitials.attrib;
+>
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+<!ELEMENT copyright (year+, holder*)>
+<!ATTLIST copyright
+		%common.attrib;
+		%copyright.role.attrib;
+		%local.copyright.attrib;
+>
+<!ENTITY % local.year.attrib "">
+<!ENTITY % year.role.attrib "%role.attrib;">
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!ATTLIST year
+		%common.attrib;
+		%year.role.attrib;
+		%local.year.attrib;
+>
+<!ENTITY % local.holder.attrib "">
+<!ENTITY % holder.role.attrib "%role.attrib;">
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!ATTLIST holder
+		%common.attrib;
+		%holder.role.attrib;
+		%local.holder.attrib;
+>
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!ATTLIST corpauthor
+		%common.attrib;
+		%corpauthor.role.attrib;
+		%local.corpauthor.attrib;
+>
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!ATTLIST date
+		%common.attrib;
+		%date.role.attrib;
+		%local.date.attrib;
+>
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!ATTLIST edition
+		%common.attrib;
+		%edition.role.attrib;
+		%local.edition.attrib;
+>
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!ATTLIST editor
+		%common.attrib;
+		%editor.role.attrib;
+		%local.editor.attrib;
+>
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!ATTLIST issuenum
+		%common.attrib;
+		%issuenum.role.attrib;
+		%local.issuenum.attrib;
+>
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!ATTLIST legalnotice
+		%common.attrib;
+		%legalnotice.role.attrib;
+		%local.legalnotice.attrib;
+>
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!ATTLIST orgname
+		%common.attrib;
+		%orgname.role.attrib;
+		%local.orgname.attrib;
+>
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!ATTLIST othercredit
+		%common.attrib;
+		%othercredit.role.attrib;
+		%local.othercredit.attrib;
+>
+<!ENTITY % local.firstname.attrib "">
+<!ENTITY % firstname.role.attrib "%role.attrib;">
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!ATTLIST firstname
+		%common.attrib;
+		%firstname.role.attrib;
+		%local.firstname.attrib;
+>
+<!ENTITY % local.honorific.attrib "">
+<!ENTITY % honorific.role.attrib "%role.attrib;">
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!ATTLIST honorific
+		%common.attrib;
+		%honorific.role.attrib;
+		%local.honorific.attrib;
+>
+<!ENTITY % local.lineage.attrib "">
+<!ENTITY % lineage.role.attrib "%role.attrib;">
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!ATTLIST lineage
+		%common.attrib;
+		%lineage.role.attrib;
+		%local.lineage.attrib;
+>
+<!ENTITY % local.othername.attrib "">
+<!ENTITY % othername.role.attrib "%role.attrib;">
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!ATTLIST othername
+		%common.attrib;
+		%othername.role.attrib;
+		%local.othername.attrib;
+>
+<!ENTITY % local.surname.attrib "">
+<!ENTITY % surname.role.attrib "%role.attrib;">
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!ATTLIST surname
+		%common.attrib;
+		%surname.role.attrib;
+		%local.surname.attrib;
+>
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!ATTLIST pubdate
+		%common.attrib;
+		%pubdate.role.attrib;
+		%local.pubdate.attrib;
+>
+<!ENTITY % local.publishername.attrib "">
+<!ENTITY % publishername.role.attrib "%role.attrib;">
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!ATTLIST publishername
+		%common.attrib;
+		%publishername.role.attrib;
+		%local.publishername.attrib;
+>
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!ATTLIST releaseinfo
+		%common.attrib;
+		%releaseinfo.role.attrib;
+		%local.releaseinfo.attrib;
+>
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+<!ELEMENT revhistory (revision+)>
+<!ATTLIST revhistory
+		%common.attrib;
+		%revhistory.role.attrib;
+		%local.revhistory.attrib;
+>
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+<!ELEMENT revision (revnumber, date, authorinitials*, revremark?)>
+<!ATTLIST revision
+		%common.attrib;
+		%revision.role.attrib;
+		%local.revision.attrib;
+>
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!ATTLIST revnumber
+		%common.attrib;
+		%revnumber.role.attrib;
+		%local.revnumber.attrib;
+>
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!ATTLIST revremark
+		%common.attrib;
+		%revremark.role.attrib;
+		%local.revremark.attrib;
+>
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!ATTLIST volumenum
+		%common.attrib;
+		%volumenum.role.attrib;
+		%local.volumenum.attrib;
+>
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+<!ELEMENT command (%cptr.char.mix;)*>
+<!ATTLIST command
+		%moreinfo.attrib;
+		%common.attrib;
+		%command.role.attrib;
+		%local.command.attrib;
+>
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!ATTLIST computeroutput
+		%moreinfo.attrib;
+		%common.attrib;
+		%computeroutput.role.attrib;
+		%local.computeroutput.attrib;
+>
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!ATTLIST email
+		%common.attrib;
+		%email.role.attrib;
+		%local.email.attrib;
+>
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+<!ELEMENT filename (%cptr.char.mix;)*>
+<!ATTLIST filename
+		class		(headerfile
+				|symlink
+				|directory)	#IMPLIED
+		path		CDATA		#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%filename.role.attrib;
+		%local.filename.attrib;
+>
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!ATTLIST lineannotation
+		%common.attrib;
+		%lineannotation.role.attrib;
+		%local.lineannotation.attrib;
+>
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!ATTLIST literal
+		%moreinfo.attrib;
+		%common.attrib;
+		%literal.role.attrib;
+		%local.literal.attrib;
+>
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+<!ELEMENT option (%cptr.char.mix;)*>
+<!ATTLIST option
+		%common.attrib;
+		%option.role.attrib;
+		%local.option.attrib;
+>
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+<!ATTLIST replaceable
+		class		(command
+				|function
+				|option
+				|parameter)	#IMPLIED
+		%common.attrib;
+		%replaceable.role.attrib;
+		%local.replaceable.attrib;
+>
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+<!ATTLIST systemitem
+		class	(constant
+			|environvar
+			|macro
+			|osname
+			|prompt
+			|resource
+			|systemname)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%systemitem.role.attrib;
+		%local.systemitem.attrib;
+>
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!ATTLIST userinput
+		%moreinfo.attrib;
+		%common.attrib;
+		%userinput.role.attrib;
+		%local.userinput.attrib;
+>
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!ATTLIST abbrev
+		%common.attrib;
+		%abbrev.role.attrib;
+		%local.abbrev.attrib;
+>
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+<!ELEMENT acronym (%word.char.mix;)*>
+<!ATTLIST acronym
+		%common.attrib;
+		%acronym.role.attrib;
+		%local.acronym.attrib;
+>
+<!ENTITY % local.refentrytitle.attrib "">
+<!ENTITY % refentrytitle.role.attrib "%role.attrib;">
+<!ELEMENT refentrytitle (%para.char.mix;)*>
+<!ATTLIST refentrytitle
+		%common.attrib;
+		%refentrytitle.role.attrib;
+		%local.refentrytitle.attrib;
+>
+<!ENTITY % local.manvolnum.attrib "">
+<!ENTITY % namvolnum.role.attrib "%role.attrib;">
+<!ELEMENT manvolnum (%word.char.mix;)*>
+<!ATTLIST manvolnum
+		%common.attrib;
+		%namvolnum.role.attrib;
+		%local.manvolnum.attrib;
+>
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!ATTLIST citetitle
+		pubwork		(article
+				|book
+				|chapter
+				|part
+				|refentry
+				|section
+				|journal
+				|series
+				|set
+				|manuscript)	#IMPLIED
+		%common.attrib;
+		%citetitle.role.attrib;
+		%local.citetitle.attrib;
+>
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!ATTLIST emphasis
+		%common.attrib;
+		%emphasis.role.attrib;
+		%local.emphasis.attrib;
+>
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+<!ELEMENT phrase (%para.char.mix;)*>
+<!ATTLIST phrase
+		%common.attrib;
+		%phrase.role.attrib;
+		%local.phrase.attrib;
+>
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+<!ELEMENT quote (%para.char.mix;)*>
+<!ATTLIST quote
+		%common.attrib;
+		%quote.role.attrib;
+		%local.quote.attrib;
+>
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+<!ATTLIST trademark
+		class		(service
+				|trade
+				|registered
+				|copyright)	'trade'
+		%common.attrib;
+		%trademark.role.attrib;
+		%local.trademark.attrib;
+>
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+<!ELEMENT link (%para.char.mix;)*>
+<!ATTLIST link
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		type		CDATA		#IMPLIED
+		%common.attrib;
+		%link.role.attrib;
+		%local.link.attrib;
+>
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+<!ELEMENT ulink (%para.char.mix;)*>
+<!ATTLIST ulink
+		url		CDATA		#REQUIRED
+		type		CDATA		#IMPLIED
+		%common.attrib;
+		%ulink.role.attrib;
+		%local.ulink.attrib;
+>
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+<!ELEMENT xref EMPTY>
+<!ATTLIST xref
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		%common.attrib;
+		%xref.role.attrib;
+		%local.xref.attrib;
+>
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class	"appendix %local.appendix.class;">
+<!ENTITY % local.article.class "">
+<!ENTITY % article.class	"article %local.article.class;">
+<!ENTITY % local.book.class "">
+<!ENTITY % local.chapter.class "">
+<!ENTITY % chapter.class	"chapter %local.chapter.class;">
+<!ENTITY % local.index.class "">
+<!ENTITY % local.refentry.class "">
+<!ENTITY % refentry.class	"refentry %local.refentry.class;">
+<!ENTITY % local.nav.class "">
+<!ENTITY % nav.class		"toc|lot|index|glossary|bibliography 
+				%local.nav.class;">
+<!ENTITY % local.indexdivcomponent.mix "">
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % refname.char.mix
+		"#PCDATA
+		|%tech.char.class;
+		%local.refname.char.mix;">
+<!ENTITY % local.partcontent.mix "">
+<!ENTITY % refsect.title.content
+	"title, subtitle?, titleabbrev?">
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+<!ATTLIST appendix
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%appendix.role.attrib;
+		%local.appendix.attrib;
+>
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+<!ATTLIST section
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%section.role.attrib;
+		%local.section.attrib;
+>
+<!ENTITY % sectioninfo.role.attrib "%role.attrib;">
+<!ENTITY % local.sectioninfo.attrib "">
+<!ATTLIST sectioninfo
+		%common.attrib;
+		%sectioninfo.role.attrib;
+		%local.sectioninfo.attrib;
+>
+<!ENTITY % local.refentry.attrib "">
+<!ENTITY % refentry.role.attrib "%role.attrib;">
+<!ATTLIST refentry
+		%status.attrib;
+		%common.attrib;
+		%refentry.role.attrib;
+		%local.refentry.attrib;
+>
+<!ENTITY % local.refmeta.attrib "">
+<!ENTITY % refmeta.role.attrib "%role.attrib;">
+<!ATTLIST refmeta
+		%common.attrib;
+		%refmeta.role.attrib;
+		%local.refmeta.attrib;
+>
+<!ENTITY % local.refmiscinfo.attrib "">
+<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
+<!ELEMENT refmiscinfo (%docinfo.char.mix;)*>
+<!ATTLIST refmiscinfo
+		class		CDATA		#IMPLIED
+		%common.attrib;
+		%refmiscinfo.role.attrib;
+		%local.refmiscinfo.attrib;
+>
+<!ENTITY % local.refnamediv.attrib "">
+<!ENTITY % refnamediv.role.attrib "%role.attrib;">
+<!ATTLIST refnamediv
+		%common.attrib;
+		%refnamediv.role.attrib;
+		%local.refnamediv.attrib;
+>
+<!ENTITY % local.refdescriptor.attrib "">
+<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
+<!ELEMENT refdescriptor (%refname.char.mix;)*>
+<!ATTLIST refdescriptor
+		%common.attrib;
+		%refdescriptor.role.attrib;
+		%local.refdescriptor.attrib;
+>
+<!ENTITY % local.refname.attrib "">
+<!ENTITY % refname.role.attrib "%role.attrib;">
+<!ELEMENT refname (%refname.char.mix;)*>
+<!ATTLIST refname
+		%common.attrib;
+		%refname.role.attrib;
+		%local.refname.attrib;
+>
+<!ENTITY % local.refpurpose.attrib "">
+<!ENTITY % refpurpose.role.attrib "%role.attrib;">
+<!ELEMENT refpurpose (%refinline.char.mix;)*>
+<!ATTLIST refpurpose
+		%common.attrib;
+		%refpurpose.role.attrib;
+		%local.refpurpose.attrib;
+>
+<!ENTITY % local.refclass.attrib "">
+<!ENTITY % refclass.role.attrib "%role.attrib;">
+<!ELEMENT refclass (%refclass.char.mix;)*>
+<!ATTLIST refclass
+		%common.attrib;
+		%refclass.role.attrib;
+		%local.refclass.attrib;
+>
+<!ENTITY % local.refsynopsisdiv.attrib "">
+<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
+<!ELEMENT refsynopsisdiv (refsynopsisdivinfo?, (%refsect.title.content;)?,
+		(((%refcomponent.mix;)+, refsect2*) | (refsect2+)))>
+<!ATTLIST refsynopsisdiv
+		%common.attrib;
+		%refsynopsisdiv.role.attrib;
+		%local.refsynopsisdiv.attrib;
+>
+<!ENTITY % local.refsect1.attrib "">
+<!ENTITY % refsect1.role.attrib "%role.attrib;">
+<!ELEMENT refsect1 (refsect1info?, (%refsect.title.content;),
+		(((%refcomponent.mix;)+, refsect2*) | refsect2+))>
+<!ATTLIST refsect1
+		%status.attrib;
+		%common.attrib;
+		%refsect1.role.attrib;
+		%local.refsect1.attrib;
+>
+<!ENTITY % local.refsect2.attrib "">
+<!ENTITY % refsect2.role.attrib "%role.attrib;">
+<!ELEMENT refsect2 (refsect2info?, (%refsect.title.content;),
+	(((%refcomponent.mix;)+, refsect3*) | refsect3+))>
+<!ATTLIST refsect2
+		%status.attrib;
+		%common.attrib;
+		%refsect2.role.attrib;
+		%local.refsect2.attrib;
+>
+<!ENTITY % local.refsect3.attrib "">
+<!ENTITY % refsect3.role.attrib "%role.attrib;">
+<!ELEMENT refsect3 (refsect3info?, (%refsect.title.content;), 
+	(%refcomponent.mix;)+)>
+<!ATTLIST refsect3
+		%status.attrib;
+		%common.attrib;
+		%refsect3.role.attrib;
+		%local.refsect3.attrib;
+>
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+<!ELEMENT docinfo ((mediaobject 
+		| legalnotice
+		| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT section (sectioninfo?,
+			(%sect.title.content;),
+			(((%divcomponent.mix;)+, section*)
+			 | section+))>
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+<!ELEMENT para (%para.char.mix;)*>
+<!ELEMENT informaltable (mediaobject+|tgroup+) >
+<!ELEMENT replaceable (#PCDATA 
+		| %link.char.class; 
+		| inlinemediaobject)*>
+<!ELEMENT trademark (#PCDATA 
+		| %link.char.class; 
+		| %tech.char.class;
+		| inlinemediaobject
+		| emphasis)*>
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+<!ELEMENT article ((%div.title.content;)?, artheader?,
+		       (%bookcomponent.content;),
+		       (%appendix.class;)*)>
+<!ATTLIST article
+		class		(journalarticle
+				|productsheet
+				|whitepaper
+				|techreport
+				|faq)		#IMPLIED
+		%status.attrib;
+		%common.attrib;
+		%article.role.attrib;
+		%local.article.attrib;
+>
+<!ELEMENT artheader (mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+>
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+		(%bookcomponent.content;))>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sinclist.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sinclist.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/sinclist.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,252 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML Inclusions V3.1.7.1
+     Part of the Simplified DocBk XML V3.1.7.1 DTD
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % biblioset.module "IGNORE">
+<!ENTITY % isbn.module "IGNORE">
+<!ENTITY % issn.module "IGNORE">
+<!ENTITY % pagenums.module "IGNORE">
+<!ENTITY % simplelist.content.module "IGNORE">
+<!ENTITY % anchor.module "IGNORE">
+<!ENTITY % procedure.content.module "IGNORE">
+<!ENTITY % publisher.module "IGNORE">
+<!ENTITY % printhistory.module "IGNORE">
+<!ENTITY % address.content.module "IGNORE">
+<!ENTITY % glossterm.module "IGNORE">
+<!ENTITY % bibliomixed.module "IGNORE">
+<!ENTITY % bibliography.content.module "IGNORE">
+<!ENTITY % biblioentry.module "IGNORE">
+<!ENTITY % glossary.content.module "IGNORE">
+<!ENTITY % glossentry.content.module "IGNORE">
+<!ENTITY % ssscript.module "IGNORE">
+<!ENTITY % caution.element "IGNORE">
+<!ENTITY % caution.attlist "IGNORE">
+<!ENTITY % important.element "IGNORE">
+<!ENTITY % important.attlist "IGNORE">
+<!ENTITY % tip.element "IGNORE">
+<!ENTITY % tip.attlist "IGNORE">
+<!ENTITY % warning.element "IGNORE">
+<!ENTITY % warning.attlist "IGNORE">
+<!ENTITY % comment.module "IGNORE">
+<!ENTITY % otherinfo.module "IGNORE">
+<!ENTITY % set.content.module "IGNORE">
+<!ENTITY % set.module "IGNORE">
+<!ENTITY % setinfo.module "IGNORE">
+<!ENTITY % book.content.module "IGNORE">
+<!ENTITY % book.module "IGNORE">
+<!ENTITY % bookinfo.module "IGNORE">
+<!ENTITY % dedication.module "IGNORE">
+<!ENTITY % colophon.module "IGNORE">
+<!ENTITY % toc.content.module "IGNORE">
+<!ENTITY % toc.module "IGNORE">
+<!ENTITY % tocfront.module "IGNORE">
+<!ENTITY % tocentry.module "IGNORE">
+<!ENTITY % tocpart.module "IGNORE">
+<!ENTITY % tocchap.module "IGNORE">
+<!ENTITY % toclevel1.module "IGNORE">
+<!ENTITY % toclevel2.module "IGNORE">
+<!ENTITY % toclevel3.module "IGNORE">
+<!ENTITY % toclevel4.module "IGNORE">
+<!ENTITY % toclevel5.module "IGNORE">
+<!ENTITY % tocback.module "IGNORE">
+<!ENTITY % lot.content.module "IGNORE">
+<!ENTITY % lot.module "IGNORE">
+<!ENTITY % lotentry.module "IGNORE">
+<!ENTITY % chapter.module "IGNORE">
+<!ENTITY % part.module "IGNORE">
+<!ENTITY % preface.module "IGNORE">
+<!ENTITY % reference.module "IGNORE">
+<!ENTITY % partintro.module "IGNORE">
+<!ENTITY % sect1.module "IGNORE">
+<!ENTITY % sect2.module "IGNORE">
+<!ENTITY % sect3.module "IGNORE">
+<!ENTITY % sect4.module "IGNORE">
+<!ENTITY % sect5.module "IGNORE">
+<!ENTITY % simplesect.module "IGNORE">
+<!ENTITY % index.content.module "IGNORE">
+<!ENTITY % indexes.module "IGNORE">
+<!ENTITY % indexdiv.module "IGNORE">
+<!ENTITY % indexentry.module "IGNORE">
+<!ENTITY % primsecterie.module "IGNORE">
+<!ENTITY % seeie.module "IGNORE">
+<!ENTITY % seealsoie.module "IGNORE">
+
+<![ %exclude.refentry; [
+<!ENTITY % refentry.content.module "IGNORE">
+<!ENTITY % refentry.module "IGNORE">
+<!ENTITY % refmeta.module "IGNORE">
+<!ENTITY % refmiscinfo.module "IGNORE">
+<!ENTITY % refnamediv.module "IGNORE">
+<!ENTITY % refdescriptor.module "IGNORE">
+<!ENTITY % refname.module "IGNORE">
+<!ENTITY % refpurpose.module "IGNORE">
+<!ENTITY % refclass.module "IGNORE">
+<!ENTITY % refsynopsisdiv.module "IGNORE">
+<!ENTITY % refsect1.module "IGNORE">
+<!ENTITY % refsect2.module "IGNORE">
+<!ENTITY % refsect3.module "IGNORE">
+<!ENTITY % refentrytitle.module "IGNORE">
+<!ENTITY % manvolnum.module "IGNORE">
+]]>
+
+<!ENTITY % bookbiblio.module "IGNORE">
+<!ENTITY % seriesinfo.module "IGNORE">
+<!ENTITY % itermset.module "IGNORE">
+<!ENTITY % msgset.content.module "IGNORE">
+<!ENTITY % msgset.module "IGNORE">
+<!ENTITY % msgentry.module "IGNORE">
+<!ENTITY % msg.module "IGNORE">
+<!ENTITY % msgmain.module "IGNORE">
+<!ENTITY % msgsub.module "IGNORE">
+<!ENTITY % msgrel.module "IGNORE">
+<!ENTITY % msginfo.module "IGNORE">
+<!ENTITY % msglevel.module "IGNORE">
+<!ENTITY % msgorig.module "IGNORE">
+<!ENTITY % msgaud.module "IGNORE">
+<!ENTITY % msgexplan.module "IGNORE">
+<!ENTITY % qandset.content.module "IGNORE">
+<!ENTITY % qandset.module "IGNORE">
+<!ENTITY % qandadiv.module "IGNORE">
+<!ENTITY % qandaentry.module "IGNORE">
+<!ENTITY % question.module "IGNORE">
+<!ENTITY % answer.module "IGNORE">
+<!ENTITY % label.module "IGNORE">
+<!ENTITY % bridgehead.module "IGNORE">
+<!ENTITY % highlights.module "IGNORE">
+<!ENTITY % formalpara.module "IGNORE">
+<!ENTITY % simpara.module "IGNORE">
+<!ENTITY % glosslist.module "IGNORE">
+<!ENTITY % segmentedlist.content.module "IGNORE">
+<!ENTITY % segmentedlist.module "IGNORE">
+<!ENTITY % segtitle.module "IGNORE">
+<!ENTITY % seglistitem.module "IGNORE">
+<!ENTITY % seg.module "IGNORE">
+<!ENTITY % calloutlist.content.module "IGNORE">
+<!ENTITY % calloutlist.module "IGNORE">
+<!ENTITY % callout.module "IGNORE">
+<!ENTITY % informalexample.module "IGNORE">
+<!ENTITY % programlistingco.module "IGNORE">
+<!ENTITY % areaspec.content.module "IGNORE">
+<!ENTITY % areaspec.module "IGNORE">
+<!ENTITY % area.module "IGNORE">
+<!ENTITY % areaset.module "IGNORE">
+<!ENTITY % screenco.module "IGNORE">
+<!ENTITY % screen.module "IGNORE">
+<!ENTITY % screenshot.content.module "IGNORE">
+<!ENTITY % screenshot.module "IGNORE">
+<!ENTITY % screeninfo.module "IGNORE">
+<!ENTITY % informalfigure.module "IGNORE">
+<!ENTITY % graphicco.module "IGNORE">
+<!ENTITY % graphic.module "IGNORE">
+<!ENTITY % equation.module "IGNORE">
+<!ENTITY % informalequation.module "IGNORE">
+<!ENTITY % inlineequation.module "IGNORE">
+<!ENTITY % inlinegraphic.module "IGNORE">
+<!ENTITY % alt.module "IGNORE">
+<!ENTITY % synopsis.module "IGNORE">
+<!ENTITY % cmdsynopsis.content.module "IGNORE">
+<!ENTITY % cmdsynopsis.module "IGNORE">
+<!ENTITY % arg.module "IGNORE">
+<!ENTITY % group.module "IGNORE">
+<!ENTITY % sbr.module "IGNORE">
+<!ENTITY % synopfragmentref.module "IGNORE">
+<!ENTITY % synopfragment.module "IGNORE">
+<!ENTITY % funcsynopsis.content.module "IGNORE">
+<!ENTITY % funcsynopsis.module "IGNORE">
+<!ENTITY % funcsynopsisinfo.module "IGNORE">
+<!ENTITY % funcprototype.module "IGNORE">
+<!ENTITY % funcdef.module "IGNORE">
+<!ENTITY % void.module "IGNORE">
+<!ENTITY % varargs.module "IGNORE">
+<!ENTITY % paramdef.module "IGNORE">
+<!ENTITY % funcparams.module "IGNORE">
+<!ENTITY % ackno.module "IGNORE">
+<!ENTITY % affiliation.element "IGNORE">
+  <!ENTITY % shortaffil.module "IGNORE">
+  <!ENTITY % orgdiv.module "IGNORE">
+<!ENTITY % artpagenums.module "IGNORE">
+  <!ENTITY % collab.content.module "IGNORE">
+  <!ENTITY % collab.module "IGNORE">
+    <!ENTITY % collabname.module "IGNORE">
+<!ENTITY % confgroup.content.module "IGNORE">
+<!ENTITY % confgroup.module "IGNORE">
+  <!ENTITY % confdates.module "IGNORE">
+  <!ENTITY % conftitle.module "IGNORE">
+  <!ENTITY % confnum.module "IGNORE">
+  <!ENTITY % confsponsor.module "IGNORE">
+<!ENTITY % contractnum.module "IGNORE">
+<!ENTITY % contractsponsor.module "IGNORE">
+<!ENTITY % corpname.module "IGNORE">
+<!ENTITY % invpartnumber.module "IGNORE">
+<!ENTITY % modespec.module "IGNORE">
+  <!ENTITY % contrib.module "IGNORE">
+<!ENTITY % productname.module "IGNORE">
+<!ENTITY % productnumber.module "IGNORE">
+<!ENTITY % pubsnumber.module "IGNORE">
+<!ENTITY % seriesvolnums.module "IGNORE">
+<!ENTITY % accel.module "IGNORE">
+<!ENTITY % action.module "IGNORE">
+<!ENTITY % application.module "IGNORE">
+<!ENTITY % classname.module "IGNORE">
+<!ENTITY % co.module "IGNORE">
+<!ENTITY % database.module "IGNORE">
+<!ENTITY % envar.module "IGNORE">
+<!ENTITY % errorcode.module "IGNORE">
+<!ENTITY % errorname.module "IGNORE">
+<!ENTITY % errortype.module "IGNORE">
+<!ENTITY % function.module "IGNORE">
+<!ENTITY % guibutton.module "IGNORE">
+<!ENTITY % guiicon.module "IGNORE">
+<!ENTITY % guilabel.module "IGNORE">
+<!ENTITY % guimenu.module "IGNORE">
+<!ENTITY % guimenuitem.module "IGNORE">
+<!ENTITY % guisubmenu.module "IGNORE">
+<!ENTITY % hardware.module "IGNORE">
+<!ENTITY % interface.module "IGNORE">
+<!ENTITY % interfacedefinition.module "IGNORE">
+<!ENTITY % keycap.module "IGNORE">
+<!ENTITY % keycode.module "IGNORE">
+<!ENTITY % keycombo.module "IGNORE">
+<!ENTITY % keysym.module "IGNORE">
+<!ENTITY % constant.module "IGNORE">
+<!ENTITY % varname.module "IGNORE">
+<!ENTITY % markup.module "IGNORE">
+<!ENTITY % mediaobjectco.module "IGNORE">
+<!ENTITY % imageobjectco.module "IGNORE">
+<!ENTITY % medialabel.module "IGNORE">
+<!ENTITY % menuchoice.content.module "IGNORE">
+<!ENTITY % menuchoice.module "IGNORE">
+<!ENTITY % shortcut.module "IGNORE">
+<!ENTITY % mousebutton.module "IGNORE">
+<!ENTITY % msgtext.module "IGNORE">
+<!ENTITY % optional.module "IGNORE">
+<!ENTITY % parameter.module "IGNORE">
+<!ENTITY % prompt.module "IGNORE">
+<!ENTITY % property.module "IGNORE">
+<!ENTITY % returnvalue.module "IGNORE">
+<!ENTITY % sgmltag.module "IGNORE">
+<!ENTITY % structfield.module "IGNORE">
+<!ENTITY % structname.module "IGNORE">
+<!ENTITY % symbol.module "IGNORE">
+<!ENTITY % token.module "IGNORE">
+<!ENTITY % type.module "IGNORE">
+<!ENTITY % citation.module "IGNORE">
+<!ENTITY % citerefentry.module "IGNORE">
+<!ENTITY % firstterm.module "IGNORE">
+<!ENTITY % foreignphrase.module "IGNORE">
+<!ENTITY % wordasword.module "IGNORE">
+<!ENTITY % olink.module "IGNORE">
+<!ENTITY % footnoteref.module "IGNORE">
+<!ENTITY % beginpage.module "IGNORE">
+<!ENTITY % indexterm.content.module "IGNORE">
+<!ENTITY % indexterm.module "IGNORE">
+<!ENTITY % primsecter.module "IGNORE">
+<!ENTITY % seeseealso.module "IGNORE">

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/test.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/test.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/test.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<!DOCTYPE article 
+          PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+          "sdocbook.dtd">
+<article><title>Article Title</title>
+<para>Paragraph.</para>
+</article>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testcss.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testcss.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testcss.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,52 @@
+<!DOCTYPE article 
+          PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+          "sdocbook.dtd">
+<?xml-stylesheet href="sdocbook.css" type="text/css"?>
+<article>
+<title>foo</title>
+<para>This is a pargraph</para>
+<literallayout>
+59 North Street
+Belchertown, MA 01007
+</literallayout>
+<section><title>sect1</title>
+<para>This is a paragraph.</para>
+<section><title>sect2</title>
+<para>This is a paragraph.</para>
+<blockquote><para>This is a block quote.</para></blockquote>
+<para>This is a paragraph.</para>
+<section><title>sect3</title>
+<para>This is a paragraph with a <citetitle>title citation</citetitle>,
+a <command>command</command>, and some <computeroutput>computer output</computeroutput>.
+</para>
+<section><title>sect4</title>
+<itemizedlist>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+</itemizedlist>
+<section><title>sect5</title>
+<orderedlist>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+</orderedlist>
+<section><title>sect6</title>
+
+<informaltable>
+<tgroup cols="3">
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+
+</section>
+</section>
+</section>
+</section>
+</section>
+</section>
+</article>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testcust.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testcust.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testcust.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<!DOCTYPE article SYSTEM "sdocbook-custom.dtd">
+<article><title>Article Title</title>
+<para>Paragraph.</para>
+</article>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testrefcust.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testrefcust.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/3.1.7.1/testrefcust.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<!DOCTYPE refentry SYSTEM "sdocbookref-custom.dtd">
+<refentry>
+<refnamediv>
+<refname>test</refname>
+<refpurpose>just testing</refpurpose>
+</refnamediv>
+<refsect1><title>description</title>
+<para>just a test.</para>
+</refsect1>
+</refentry>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/COPYRIGHT
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/COPYRIGHT	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/COPYRIGHT	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+Simplified DocBook XML V4.1.2.4 DTD
+Copyright (C) 1999, 2000 Norman Walsh
+http://nwalsh.com/docbook/simple/
+
+You may distribute this DTD under the same terms as DocBook.
+
+Please direct all questions and comments about this DTD to
+Norman Walsh, <ndw at nwalsh.com>.
+
+This DTD is based on the DocBook XML V4.1.2 DTD from OASIS:
+
+  [DocBook is] Copyright 1992-2000 HaL Computer Systems, Inc.,
+  O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+  Corporation, Norman Walsh, and the Organization for the
+  Advancement of Structured Information Standards (OASIS).
+
+  Permission to use, copy, modify and distribute the DocBook
+  DTD and its accompanying documentation for any purpose and
+  without fee is hereby granted in perpetuity, provided that
+  the above copyright notice and this paragraph appear in all
+  copies.  The copyright holders make no representation about
+  the suitability of the DTD for any purpose.  It is provided
+  "as is" without expressed or implied warranty.
+
+For more information about the DocBook DTD, see 
+http://www.oasis-open.org/docbook/

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+2000-11-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version numbers
+
+	* Makefile: New file.
+
+	* Makefile: Added distrib target
+
+	* Makefile: Added test target
+
+	* VERSION: Version 4.1.2.4 released
+
+	* sdocbook.dtd: Automatically built from sdocbook-custom.dtd
+
+	* sdocbookref-custom.dtd: Added common declaration comment
+
+	* sdocbookref.dtd: Automatically built from sdocbookref-custom.dtd
+
+2000-10-12  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, LostLog, README, VERSION, catalog, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.css, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml, testcust.xml, testrefcust.xml: 
+	New file.
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version numbers
+
+	* VERSION: Version 4.1.2.3 released
+
+	* sdocbook-custom.dtd: Added revisionflag as a common attribute
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/LostLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/LostLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/LostLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,173 @@
+2000-08-29  Norman Walsh  <ndw at nwalsh.com>
+
+	* VERSION: Version 4.1.2.2 released
+
+	* sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version numbers
+
+	* sdbpool.mod, sinclist.mod: Remove titleabbrev
+
+	* sdocbook-custom.dtd: Removed titleabbrev and appendixinfo; added bibliography/bibliodiv/bibliomixed
+
+	* sdocbook.dtd, sdocbookref.dtd: Compiled versions
+
+2000-08-27  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook-custom.dtd, sdocbook.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version number to V4.1.2.1
+
+	* VERSION: Version 4.1.2.1 released
+
+2000-08-25  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated to 4.1.1.1
+
+	* VERSION: Version 4.1.1.1 released
+
+	* sdbhier.mod, sdocbookref.dtd: RefEntry now includes refentryinfo not docinfo
+
+	* sdocbook-custom.dtd: Changed system identifier to point to docbook.org.
+
+	* sdocbook.dtd: Fixed version number in comment
+
+2000-07-30  Norman Walsh  <ndw at nwalsh.com>
+
+	* .cvsignore: New file.
+
+2000-05-22  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT: Updated to V4.0 copyright info
+
+	* README: Updated to V4.0
+
+	* VERSION: Version 4.0.1. released
+
+	* sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbookref-custom.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version number to 4.0.1
+
+	* sdbpool.mod: Fixed errors in revdescription.mix
+
+	* sdocbook-custom.dtd, sdocbook.css, sinclist.mod: Updated to DocBook XML V4.0
+
+	* sdocbook.dtd, sdocbookref.dtd: Rebuilt for 4.0.1
+
+2000-05-21  Norman Walsh  <ndw at nwalsh.com>
+
+	* sdbpool.mod: Added local revdescription.mix to avoid parse error
+
+	* sdocbook-custom.dtd: Updated to 4.0; removed attlist for article
+
+1999-11-10  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated, based on DocBk XML V3.1.7
+
+	* VERSION: Version 3.1.7.1 released
+
+	* sdocbook.dtd: Added journal, series, set, and manuscript to pubwork on citetitle
+
+1999-10-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, VERSION, catalog, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Based on 3.1.6; no content changes
+
+1999-08-26  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sinclist.mod, test.xml, testcss.xml: 
+	Updated version number
+
+	* VERSION: Version 3.1.5.1 Released
+
+	* sdocbook-custom.dtd, sdocbookref-custom.dtd: Based on DocBk XML 3.1.5
+
+	* sdocbook.dtd, sdocbookref.dtd: Based on 3.1.5
+
+1999-08-09  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version
+
+	* VERSION: Version 3.1.4.2 released
+
+	* sdbhier.mod: Added RefEntry (under include.refentry PE)
+
+	* sdbhier.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sinclist.mod: 
+	Update for refentry
+
+	* sdocbook-custom.dtd: Added option for including refentry (off by default); added affiliation, releaseinfo, and subjectset
+
+	* sdocbook.dtd: Updated
+
+	* sdocbookref-custom.dtd: New file.
+
+	* sdocbookref.dtd: New file.
+
+	* sinclist.mod: Tweaked to allow subjectset, affiliation, jobtitle, orgname, and releaseinfo
+
+	* testrefcust.xml: New file.
+
+1999-06-04  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version number
+
+	* VERSION: Version 3.1.4.1 released
+
+	* catalog: Added mapping for character entities
+
+	* sdocbook.dtd: Updated; now includes local.* PEs
+
+	* sdocbook.dtd: Updated from DocBk 3.1.4
+
+1999-04-26  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version number
+
+	* VERSION: Version 3.1.3.6 released
+
+	* sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod: Added XREF back in
+
+1999-04-13  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, VERSION, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Version 3.1.3.5 releasd
+
+1999-04-09  Norman Walsh  <ndw at nwalsh.com>
+
+	* sdocbook-custom.dtd: Allow more than one tag in artheader
+
+	* sdocbook.dtd: Updated
+
+1999-04-07  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml: 
+	Updated version numbers
+
+	* VERSION: Version 3.1.3.4 released
+
+	* testcss.xml: Replaced address with literallayout' testcss.xml
+
+1999-04-06  Norman Walsh  <ndw at nwalsh.com>
+
+	* VERSION: Version 3.1.3.3 released
+
+	* catalog: New file.
+
+	* sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod: 
+	More changes
+
+1999-04-05  Norman Walsh  <ndw at nwalsh.com>
+
+	* COPYRIGHT, README, VERSION, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod: 
+	Version 3.1.3.2 released
+
+	* COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.css, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml, testcust.xml: 
+	New file.
+
+	* sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod: 
+	Removed address and related elements.
+	Removed parentbook attribute on article.
+	Added epigraph and authorblurb.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,201 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+EXTRA_DIST =      COPYRIGHT ChangeLog LostLog README VERSION sdbcent.mod sdbhier.mod     sdbpool.mod sdocbook-custom.dtd sdocbook.css sdocbook.dtd     sdocbookref.dtd sinclist.mod test.xml testcss.xml testcust.xml     testrefcust.xml
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/simple/4.1.2.4/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/simple/4.1.2.4
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/simple/4.1.2.4/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,201 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+EXTRA_DIST =      COPYRIGHT ChangeLog LostLog README VERSION sdbcent.mod sdbhier.mod     sdbpool.mod sdocbook-custom.dtd sdocbook.css sdocbook.dtd     sdocbookref.dtd sinclist.mod test.xml testcss.xml testcust.xml     testrefcust.xml
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  README ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/simple/4.1.2.4/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/simple/4.1.2.4
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/simple/4.1.2.4/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/README
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/README	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/README	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,107 @@
+README for the Simplified DocBook XML V4.1.2.4 DTD
+
+This is a simplified version of the DocBook XML V4.1.2 DTD.  This
+DTD is my attempt to make a small subset of DocBook.  I tried to
+achieve the following goals:
+
+ * Documents written in the subset must be 100% legal DocBook XML
+   documents.
+
+ * This is for small documents, articles and the like, so
+   there's no need for 'book's or 'set's, just 'article's.
+
+ * The markup should be the smallest practical subset, if you
+   need richly structured markup, use DocBook or DocBook XML.
+
+ * The result is roughly "HTML-level markup in DocBook", but I
+   didn't set out explicitly to produce that result.
+
+ * The DTD must work in IE5 (it's XML not SGML). It should be
+   small enough to download more-or-less painlessly.
+
+ * There should be a CSS stylesheet for it (mine's pretty lame).
+
+ * There should be an XSL stylesheet for it. Since I'm in the
+   somewhat privileged position of knowing how many changes are
+   coming, I'm going to wait until after the next draft ;-).
+
+Instead of DocBook's 350+ elements, this DTD has just over 100.
+
+Manifest
+--------
+
+README        - This readme file
+VERSION       - The version number
+COPYRIGHT     - Copyright statement
+ChangeLog     - Changelog
+sdbcent.mod   - Character entities
+sdbhier.mod   - Hierarchy overrides
+sdbpool.mod   - Information pool overrides
+sdocbook-custom.dtd - The DTD
+sdocbook.css  - CSS stylesheet
+sdocbook.dtd  - A flattened version of the DTD (mechanically generated)
+sinclist.mod  - A set of 'ignore' parameter entities
+sdocbookref-custom.dtd - A version of Simplified DocBook for RefEntrys
+sdocbookref.dtd - A flattened version of sdocbookref-custom (mech. generated)
+test.xml      - A test document
+testcss.xml   - A test document for the CSS stylesheet
+testcust.xml  - A test document for the raw customization layer
+testrefcust.xml - A test document for the raw RefEntry customization layer
+ent/          - The ISO character entity files used by sdocbook.dtd
+
+Installation
+------------
+
+Place the files in this distribution somewhere on your machine.  Adjust
+your catalog(s) if appropriate (XML tools frequently do not support 
+catalogs, so this may be irrelevant for you).
+
+Please use the following formal public identifier to identify this DTD:
+
+  "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+
+For example, if your document's top-level element is <article>, and
+you are using this DTD directly, use the FPI in the DOCTYPE
+declaration:
+
+<!DOCTYPE article
+          PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+                 "http://nwalsh.com/docbook/simple/4.1.2.4/sdocbook.dtd" [
+...
+]>
+
+
+Note: if you are using the customization layer directly (sdocbook-custom.dtd),
+you may have to adjust the system identifier that points to the DocBook XML
+DTD.  You may also have to install the DocBook XML V4.1.2.4 DTD somewhere on
+your system.
+
+
+Copyright
+---------
+
+Copyright (C) 1999, 2000 Norman Walsh
+
+See COPYRIGHT for more information
+
+
+Warranty
+--------
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT.  IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+
+Contacting the Author
+---------------------
+
+This DTD is maintained by Norman Walsh, <ndw at nwalsh.com>.
+
+The best way to reach norm is by email.  You will find additional
+contact information at http://nwalsh.com/docbook/simple/

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/VERSION
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/VERSION	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/VERSION	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+4.1.2.4

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbcent.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbcent.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbcent.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,47 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML Character Entity Sets V4.1.2.4
+     Part of the Simplified DocBook XML V4.1.2.4 DTD
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % ISOamsa.module "IGNORE">
+<!ENTITY % ISOamsb.module "IGNORE">
+<!ENTITY % ISOamsc.module "IGNORE">
+<!ENTITY % ISOamsn.module "IGNORE">
+<!ENTITY % ISOamso.module "IGNORE">
+<!ENTITY % ISOamsr.module "IGNORE">
+<!ENTITY % ISObox.module "IGNORE">
+<!ENTITY % ISOcyr1.module "IGNORE">
+<!ENTITY % ISOcyr2.module "IGNORE">
+<!ENTITY % ISOdia.module "IGNORE">
+<!ENTITY % ISOgrk1.module "IGNORE">
+<!ENTITY % ISOgrk2.module "IGNORE">
+<!ENTITY % ISOgrk3.module "IGNORE">
+<!ENTITY % ISOgrk4.module "IGNORE">
+<!ENTITY % ISOlat1.module "IGNORE">
+<!ENTITY % ISOlat2.module "IGNORE">
+<!ENTITY % ISOnum.module "IGNORE">
+<!ENTITY % ISOpub.module "IGNORE">
+<!ENTITY % ISOtech.module "IGNORE">
+
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbhier.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbhier.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbhier.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,68 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML Document Hierarchy V4.1.2.4
+     Part of the Simplified DocBook XML V4.1.2.4 DTD
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.divcomponent.mix;">
+
+<!ENTITY % bookcomponent.content
+	"((%divcomponent.mix;)+, section*)
+	| section+">
+
+<![ %include.refentry; [
+
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		%local.refinline.char.mix;">
+
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.divcomponent.mix;">
+
+<!ELEMENT refentry (refentryinfo?, refmeta?, (%link.char.class;)*,
+                    refnamediv, refsynopsisdiv?, refsect1+)>
+
+<!ELEMENT refentryinfo ((mediaobject | legalnotice
+		| subjectset | keywordset
+                | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refmeta (refentrytitle, manvolnum?, refmiscinfo*)>
+
+<!ELEMENT refsect1info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsect2info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsect3info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsynopsisdivinfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+		(%link.char.class;)*)>
+
+]]>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbpool.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbpool.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdbpool.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,174 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML Information Pool V4.1.2.4
+     Part of the Simplified DocBook XML V4.1.2.4 DTD
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.component.mix;">
+
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.sidebar.mix;">
+
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % qandaset.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.qandaset.mix;">
+
+<!ENTITY % local.revdescription.mix "">
+<!ENTITY % revdescription.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.revdescription.mix;">
+
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.footnote.mix;">
+
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.example.mix;">
+
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % highlights.mix
+		"%list.class;		|%admon.class;
+		|%para.class;
+		%local.highlights.mix;">
+
+<!ENTITY % local.para.mix "">
+<!ENTITY % para.mix
+		"%list.class;           |%admon.class;
+		|%linespecific.class;
+					|%informal.class;
+		|%formal.class;
+		%local.para.mix;">
+
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.admon.mix;">
+
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+		"%linespecific.class;
+					|%informal.class;
+		%local.figure.mix;">
+
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|mediaobject
+		%local.tabentry.mix;">
+
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % glossdef.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.glossdef.mix;">
+
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.legalnotice.mix;">
+
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.textobject.mix;">
+
+<!-- Character-level mixtures ............................................. -->
+
+<!ENTITY % ubiq.exclusion "">
+<!ENTITY % ubiq.inclusion "">
+
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%inlineobj.char.class;
+		%local.para.char.mix;">
+
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%docinfo.char.class;
+					|%inlineobj.char.class;
+		%local.title.char.mix;">
+
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+		"#PCDATA
+		|%link.char.class;	|%tech.char.class;
+					|inlinemediaobject
+		%local.cptr.char.mix;">
+
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+		"#PCDATA
+					|replaceable
+					|inlinemediaobject
+		%local.smallcptr.char.mix;">
+
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+		"#PCDATA
+					|acronym|emphasis|trademark
+		|%link.char.class;
+					|inlinemediaobject
+		%local.word.char.mix;">
+
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+		"#PCDATA
+		|%link.char.class;
+					|emphasis|trademark
+					|replaceable
+					|inlinemediaobject
+		%local.docinfo.char.mix;">
+
+<!ENTITY % tbl.table.excep "">
+<!ENTITY % tbl.table.mdl
+	"(title, (mediaobject+|tgroup+))">
+
+<!ENTITY % programlisting.content "%para.char.mix; | lineannotation">

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook-custom.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook-custom.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook-custom.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,306 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML V4.1.2.4 DTD
+     Copyright (C) 1999, 2000 Norman Walsh
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+
+     Common declaration:
+
+     <?xml version="1.0"?>
+     <!DOCTYPE article
+       PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+       "http://nwalsh.com/docbook/simple/4.1.2.4/sdocbook.dtd">
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % include.refentry "IGNORE">
+<![ %include.refentry; [
+<!ENTITY % refsect.title.content "title, subtitle?">
+<!ENTITY % exclude.refentry "IGNORE">
+<!ENTITY % refentry.element "IGNORE">
+<!ENTITY % refmeta.element "IGNORE">
+<!ENTITY % refnamediv.element "IGNORE">
+]]>
+<!ENTITY % exclude.refentry "INCLUDE">
+
+<!ENTITY % sinclist SYSTEM "sinclist.mod">
+%sinclist;
+
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+	"title, subtitle?">
+<!ENTITY % sect.title.content
+	"title, subtitle?">
+
+<!ENTITY % ndxterm.class "">
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+		"itemizedlist|orderedlist
+		|variablelist %local.list.class;">
+
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+		"note %local.admon.class;">
+
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+		"literallayout|programlisting %local.linespecific.class;">
+
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+		"para %local.para.class;">
+
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+		"blockquote
+		|mediaobject
+		|informaltable %local.informal.class;">
+
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+		"example|figure|table %local.formal.class;">
+
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+		"sidebar %local.compound.class;">
+
+<!ENTITY % local.genobj.class "">
+<!ENTITY % genobj.class "">
+
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+		"abstract|authorblurb|epigraph
+		%local.descobj.class;">
+
+<!-- Character-level classes .............................................. -->
+
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % xref.char.class "">
+
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+		"abbrev|acronym|citetitle|emphasis|footnote|phrase
+		|quote|trademark %local.gen.char.class;">
+
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+		"xref|link|ulink %local.link.char.class;">
+
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+		"command|computeroutput
+		|email|filename
+		|literal
+		|option
+		|replaceable
+		|systemitem|userinput
+		%local.tech.char.class;">
+
+<!ENTITY % local.base.char.class "">
+<!ENTITY % base.char.class "">
+
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+		"author|corpauthor|othercredit
+		|revhistory
+		%local.docinfo.char.class;">
+
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+		"inlinemediaobject %local.inlineobj.char.class;">
+
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % effectivity.attrib 
+	"%local.effectivity.attrib;"
+>
+
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+	"id		ID		#IMPLIED
+	revisionflag	(changed
+			|added
+			|deleted
+			|off)		#IMPLIED
+	%local.common.attrib;"
+>
+
+<!ENTITY % idreq.common.attrib
+	"id		ID		#REQUIRED
+	revisionflag	(changed
+			|added
+			|deleted
+			|off)		#IMPLIED
+	%local.common.attrib;"
+>
+
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+		"honorific|firstname|surname|lineage|othername|affiliation
+		|authorblurb
+		%local.person.ident.mix;">
+
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+		"abbrev|abstract|author
+		|authorgroup|bibliomisc
+		|copyright|corpauthor|date|edition
+		|editor|issuenum
+		|othercredit
+		|pubdate|publishername
+		|releaseinfo|revhistory
+		|subtitle|title|volumenum|citetitle
+		|%person.ident.mix;
+		%local.bibliocomponent.mix;">
+
+<!ENTITY % dbpool.redecl.module "INCLUDE">
+<!ENTITY % rdbpool SYSTEM "sdbpool.mod">
+
+<!ENTITY % dbhier.redecl.module "INCLUDE">
+<!ENTITY % rdbhier SYSTEM "sdbhier.mod">
+
+<!ENTITY % sdbcent SYSTEM "sdbcent.mod">
+%sdbcent;
+
+<!ENTITY % docinfo.element "IGNORE">
+<!ENTITY % objectinfo.element "IGNORE">
+<!ENTITY % section.element "IGNORE">
+<!ENTITY % sectioninfo.element "IGNORE">
+<!ENTITY % authorgroup.element "IGNORE">
+<!ENTITY % para.element "IGNORE">
+<!ENTITY % informaltable.element "IGNORE">
+<!ENTITY % replaceable.element "IGNORE">
+<!ENTITY % trademark.element "IGNORE">
+<!ENTITY % systemitem.element "IGNORE">
+<!ENTITY % article.element "IGNORE">
+<!ENTITY % articleinfo.element "IGNORE">
+<!ENTITY % appendix.element "IGNORE">
+<!ENTITY % appendixinfo.module "IGNORE">
+<!ENTITY % sidebar.element "IGNORE">
+<!ENTITY % programlisting.element "IGNORE">
+<!ENTITY % literallayout.element "IGNORE">
+
+<!ENTITY % cals.table.module "IGNORE">
+<!ENTITY % docbook PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+                   "http://docbook.org/xml/4.1.2/docbookx.dtd"
+>
+%docbook;
+
+<!ENTITY % simple.objectinfo.element "INCLUDE">
+<![%simple.objectinfo.element;[
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+]]>
+
+<!ENTITY % simple.section.element "INCLUDE">
+<![%simple.section.element;[
+<!ELEMENT section (sectioninfo?,
+			(%sect.title.content;),
+			(((%divcomponent.mix;)+, section*)
+			 | section+))>
+]]>
+
+<!ENTITY % simple.sectioninfo.element "INCLUDE">
+<![%simple.sectioninfo.element;[
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+]]>
+
+<!ENTITY % simple.authorgroup.element "INCLUDE">
+<![%simple.authorgroup.element;[
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+]]>
+
+<!ENTITY % simple.affiliation.element "INCLUDE">
+<![%simple.affiliation.element;[
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+]]>
+
+<!ENTITY % simple.para.element "INCLUDE">
+<![%simple.para.element;[
+<!ELEMENT para (%para.char.mix;)*>
+]]>
+
+<!ENTITY % simple.informaltable.element "INCLUDE">
+<![%simple.informaltable.element;[
+<!ELEMENT informaltable (mediaobject+|tgroup+) %tbl.table.excep;>
+]]>
+
+<!ENTITY % simple.replaceable.element "INCLUDE">
+<![%simple.replaceable.element;[
+<!ELEMENT replaceable (#PCDATA 
+		| %link.char.class; 
+		| inlinemediaobject)*>
+]]>
+
+<!ENTITY % simple.trademark.element "INCLUDE">
+<![%simple.trademark.element;[
+<!ELEMENT trademark (#PCDATA 
+		| %link.char.class; 
+		| %tech.char.class;
+		| inlinemediaobject
+		| emphasis)*>
+]]>
+
+<!ENTITY % simple.systemitem.element "INCLUDE">
+<![%simple.systemitem.element;[
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+]]>
+
+<!ENTITY % simple.article.element "INCLUDE">
+<![%simple.article.element;[
+<!ELEMENT article ((%div.title.content;)?, articleinfo?,
+		       (%bookcomponent.content;),
+		       ((%appendix.class;)|bibliography)*)>
+]]>
+
+<!ENTITY % simple.articleinfo.element "INCLUDE">
+<![%simple.articleinfo.element;[
+<!ELEMENT articleinfo ((mediaobject | legalnotice
+	| subjectset | keywordset | %bibliocomponent.mix;)+)>
+]]>
+
+<!ENTITY % simple.appendix.element "INCLUDE">
+<![%simple.appendix.element;[
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+		(%bookcomponent.content;))>
+]]>
+
+<!ENTITY % simple.bibliography.element "INCLUDE">
+<![%simple.bibliography.element;[
+<!ELEMENT bibliography ((%bookcomponent.title.content;)?,
+                        (%component.mix;)*,
+                        (bibliodiv+ | bibliomixed+))>
+]]>
+
+<!ENTITY % simple.bibliomixed.element "INCLUDE">
+<![%simple.bibliomixed.element;[
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+]]>
+
+<!ENTITY % simple.bibliodiv.element "INCLUDE">
+<![%simple.bibliodiv.element;[
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+		(bibliomixed)+)>
+]]>
+
+<!ENTITY % simple.sidebar.element "INCLUDE">
+<![%simple.sidebar.element;[
+<!ELEMENT sidebar ((%formalobject.title.content;)?,
+                   (%sidebar.mix;)+)>
+]]>
+
+<!ENTITY % simple.programlisting.element "INCLUDE">
+<![%simple.programlisting.element;[
+<!ELEMENT programlisting (%para.char.mix; | lineannotation)*>
+]]>
+
+<!ENTITY % simple.literallayout.element "INCLUDE">
+<![%simple.literallayout.element;[
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>
+]]>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook.css
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook.css	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook.css	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,679 @@
+abbrev
+{
+  display: inline;
+}
+
+abstract
+{
+  margin-left: 0.5in;
+  margin-right: 0.5in;
+  display: inline;
+}
+
+acronym
+{
+  display: inline;
+}
+
+address
+{
+  white-space: pre;
+  display: block;
+}
+
+anchor
+{
+  display: inline;
+}
+
+appendix
+{
+  display: block;
+}
+
+articleinfo
+{
+  display: none;
+}
+
+article
+{
+  display: block;
+}
+
+audiodata
+{
+  display: none;
+}
+
+audioobject
+{
+  display: none;
+}
+
+author
+{
+  display: inline;
+}
+
+authorgroup
+{
+  display: inline;
+}
+
+authorinitials
+{
+  display: inline;
+}
+
+bibliomisc
+{
+  display: inline;
+}
+
+bibliomset
+{
+  display: inline;
+}
+
+biblioset
+{
+  display: inline;
+}
+
+blockquote
+{
+  display: block;
+  margin-left: 0.5in;
+  margin-right: 0.5in;
+}
+
+caption
+{
+  display: none;
+}
+
+citetitle
+{
+  display: inline;
+  font-style: italic;
+}
+
+city
+{
+  display: inline;
+}
+
+colspec
+{
+  display: none;
+}
+
+command
+{
+  display: inline;
+  font-style: italic;
+}
+
+computeroutput
+{
+  display: inline;
+  font-family: monospace;
+}
+
+copyright
+{
+  display: inline;
+}
+
+corpauthor
+{
+  display: inline;
+}
+
+country
+{
+  display: inline;
+}
+
+date
+{
+  display: inline;
+}
+
+articleinfo
+{
+  display: none;
+}
+
+appendixinfo
+{
+  display: none;
+}
+
+edition
+{
+  display: inline;
+}
+
+editor
+{
+  display: inline;
+}
+
+email
+{
+  display: inline;
+  font-style: italic;
+}
+
+emphasis
+{
+  display: inline;
+  font-style: italic;
+}
+
+entry
+{
+  display: table-cell;
+}
+
+example
+{
+  display: block;
+}
+
+fax
+{
+  display: inline;
+}
+
+figure
+{
+  display: block;
+}
+
+filename
+{
+  display: inline;
+  font-style: italic;
+}
+
+firstname
+{
+  display: inline;
+}
+
+footnote
+{
+  display: inline;
+}
+
+holder
+{
+  display: inline;
+}
+
+honorific
+{
+  display: inline;
+}
+
+imagedata
+{
+  display: inline;
+}
+
+imageobject
+{
+  display: inline;
+}
+
+informaltable
+{
+  display: block;
+}
+
+inlinemediaobject
+{
+  display: inline;
+}
+
+isbn
+{
+  display: inline;
+}
+
+issn
+{
+  display: inline;
+}
+
+issuenum
+{
+  display: inline;
+}
+
+itemizedlist
+{
+  display: block;
+  list-style-type: disc;
+}
+
+keyword
+{
+  display: inline;
+}
+
+keywordset
+{
+  display: inline;
+}
+
+legalnotice
+{
+  display: inline;
+}
+
+lineage
+{
+  display: inline;
+}
+
+lineannotation
+{
+  display: inline;
+}
+
+link
+{
+  display: inline;
+}
+
+listitem
+{
+  display: list-item;
+}
+
+literal
+{
+  display: inline;
+}
+
+literallayout
+{
+  display: inline;
+}
+
+mediaobject
+{
+  display: inline;
+}
+
+member
+{
+  display: inline;
+}
+
+note
+{
+  display: inline;
+}
+
+objectinfo
+{
+  display: inline;
+}
+
+option
+{
+  display: inline;
+}
+
+orderedlist
+{
+  display: block;
+  list-style-type: decimal;
+}
+
+otheraddr
+{
+  display: inline;
+}
+
+othercredit
+{
+  display: inline;
+}
+
+othername
+{
+  display: inline;
+}
+
+pagenums
+{
+  display: inline;
+}
+
+para
+{
+  display: block;
+}
+
+phone
+{
+  display: inline;
+}
+
+phrase
+{
+  display: inline;
+}
+
+pob
+{
+  display: inline;
+}
+
+postcode
+{
+  display: inline;
+}
+
+printhistory
+{
+  display: inline;
+}
+
+procedure
+{
+  display: inline;
+}
+
+programlisting
+{
+  display: inline;
+}
+
+pubdate
+{
+  display: inline;
+}
+
+publisher
+{
+  display: inline;
+}
+
+publishername
+{
+  display: inline;
+}
+
+quote
+{
+  display: inline;
+}
+
+replaceable
+{
+  display: inline;
+}
+
+revhistory
+{
+  display: inline;
+}
+
+revision
+{
+  display: inline;
+}
+
+revnumber
+{
+  display: inline;
+}
+
+revremark
+{
+  display: inline;
+}
+
+row
+{
+  display: table-row;
+}
+
+section
+{
+  display: block;
+}
+
+sectioninfo
+{
+  display: none;
+}
+
+sidebar
+{
+  display: block;
+}
+
+simplelist
+{
+  display: inline;
+}
+
+state
+{
+  display: inline;
+}
+
+step
+{
+  display: inline;
+}
+
+street
+{
+  display: inline;
+}
+
+substeps
+{
+  display: inline;
+}
+
+subtitle
+{
+  display: inline;
+}
+
+surname
+{
+  display: inline;
+}
+
+systemitem
+{
+  display: inline;
+}
+
+tbody
+{
+  display: table-row-group;
+}
+
+term
+{
+  display: inline;
+}
+
+textobject
+{
+  display: inline;
+}
+
+tgroup
+{
+  display: table;
+}
+
+thead
+{
+  display: table-row-group;
+}
+
+title
+{
+  display: block;
+}
+
+article title
+{
+  font-size: 36pt;
+  font-weight: bold;
+  display: block;
+}
+
+section title
+{
+  font-size: 24pt;
+  font-weight: bold;
+  display: block;
+}
+
+section section title
+{
+  font-size: 20pt;
+  font-weight: bold;
+  display: block;
+}
+
+section section section title
+{
+  font-size: 18pt;
+  font-weight: bold;
+  display: block;
+}
+
+section section section section title
+{
+  font-size: 16pt;
+  font-weight: bold;
+  display: block;
+}
+
+section section section section section title
+{
+  font-size: 14pt;
+  font-weight: bold;
+  display: block;
+}
+
+section section section section section section title
+{
+  font-size: 12pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix title
+{
+  font-size: 24pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix section title
+{
+  font-size: 22pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix section section title
+{
+  font-size: 18pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix section section section title
+{
+  font-size: 16pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix section section section section title
+{
+  font-size: 14pt;
+  font-weight: bold;
+  display: block;
+}
+
+appendix section section section section section title
+{
+  font-size: 12pt;
+  font-weight: bold;
+  display: block;
+}
+
+titleabbrev
+{
+  display: none;
+}
+
+trademark
+{
+  display: inline;
+}
+
+ulink
+{
+  display: inline;
+}
+
+userinput
+{
+  display: inline;
+}
+
+variablelist
+{
+  display: inline;
+}
+
+varlistentry
+{
+  display: inline;
+}
+
+videodata
+{
+  display: inline;
+}
+
+videoobject
+{
+  display: inline;
+}
+
+volumenum
+{
+  display: inline;
+}
+
+xref
+{
+  display: inline;
+}
+
+year
+{
+  display: inline;
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbook.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1530 @@
+<!-- *********************************************************************
+     *** THIS IS THE FLATTENED DTD. DO NOT EDIT THIS DTD BY HAND, EDIT ***
+     *** THE CUSTOMIZATION LAYER AND REGNERATE THE FLATTENED DTD! ********
+     ********************************************************************* -->
+
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML V4.1.2.4 DTD
+     Copyright (C) 1999, 2000 Norman Walsh
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+
+     Common declaration:
+
+     <?xml version="1.0"?>
+     <!DOCTYPE article
+       PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+       "http://nwalsh.com/docbook/simple/4.1.2.4/sdocbook.dtd">
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+	"title, subtitle?">
+<!ENTITY % sect.title.content
+	"title, subtitle?">
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+		"itemizedlist|orderedlist
+		|variablelist %local.list.class;">
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+		"note %local.admon.class;">
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+		"literallayout|programlisting %local.linespecific.class;">
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+		"para %local.para.class;">
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+		"blockquote
+		|mediaobject
+		|informaltable %local.informal.class;">
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+		"example|figure|table %local.formal.class;">
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+		"sidebar %local.compound.class;">
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+		"abstract|authorblurb|epigraph
+		%local.descobj.class;">
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+		"abbrev|acronym|citetitle|emphasis|footnote|phrase
+		|quote|trademark %local.gen.char.class;">
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+		"xref|link|ulink %local.link.char.class;">
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+		"command|computeroutput
+		|email|filename
+		|literal
+		|option
+		|replaceable
+		|systemitem|userinput
+		%local.tech.char.class;">
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+		"author|corpauthor|othercredit
+		|revhistory
+		%local.docinfo.char.class;">
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+		"inlinemediaobject %local.inlineobj.char.class;">
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+	"id		ID		#IMPLIED
+	revisionflag	(changed
+			|added
+			|deleted
+			|off)		#IMPLIED
+	%local.common.attrib;"
+>
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+		"honorific|firstname|surname|lineage|othername|affiliation
+		|authorblurb
+		%local.person.ident.mix;">
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+		"abbrev|abstract|author
+		|authorgroup|bibliomisc
+		|copyright|corpauthor|date|edition
+		|editor|issuenum
+		|othercredit
+		|pubdate|publishername
+		|releaseinfo|revhistory
+		|subtitle|title|volumenum|citetitle
+		|%person.ident.mix;
+		%local.bibliocomponent.mix;">
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.component.mix;">
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.sidebar.mix;">
+<!ENTITY % local.revdescription.mix "">
+<!ENTITY % revdescription.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.revdescription.mix;">
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.footnote.mix;">
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.example.mix;">
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.admon.mix;">
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+		"%linespecific.class;
+					|%informal.class;
+		%local.figure.mix;">
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|mediaobject
+		%local.tabentry.mix;">
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.legalnotice.mix;">
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.textobject.mix;">
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%inlineobj.char.class;
+		%local.para.char.mix;">
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%docinfo.char.class;
+					|%inlineobj.char.class;
+		%local.title.char.mix;">
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+		"#PCDATA
+		|%link.char.class;	|%tech.char.class;
+					|inlinemediaobject
+		%local.cptr.char.mix;">
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+		"#PCDATA
+					|replaceable
+					|inlinemediaobject
+		%local.smallcptr.char.mix;">
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+		"#PCDATA
+					|acronym|emphasis|trademark
+		|%link.char.class;
+					|inlinemediaobject
+		%local.word.char.mix;">
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+		"#PCDATA
+		|%link.char.class;
+					|emphasis|trademark
+					|replaceable
+					|inlinemediaobject
+		%local.docinfo.char.mix;">
+<!ENTITY % tbl.table.mdl
+	"(title, (mediaobject+|tgroup+))">
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.divcomponent.mix;">
+<!ENTITY % bookcomponent.content
+	"((%divcomponent.mix;)+, section*)
+	| section+">
+<!ENTITY aacute	"&#x00E1;">
+<!ENTITY Aacute	"&#x00C1;">
+<!ENTITY acirc	"&#x00E2;">
+<!ENTITY Acirc	"&#x00C2;">
+<!ENTITY agrave	"&#x00E0;">
+<!ENTITY Agrave	"&#x00C0;">
+<!ENTITY aring	"&#x00E5;">
+<!ENTITY Aring	"&#x00C5;">
+<!ENTITY atilde	"&#x00E3;">
+<!ENTITY Atilde	"&#x00C3;">
+<!ENTITY auml	"&#x00E4;">
+<!ENTITY Auml	"&#x00C4;">
+<!ENTITY aelig	"&#x00E6;">
+<!ENTITY AElig	"&#x00C6;">
+<!ENTITY ccedil	"&#x00E7;">
+<!ENTITY Ccedil	"&#x00C7;">
+<!ENTITY eth	"&#x00F0;">
+<!ENTITY ETH	"&#x00D0;">
+<!ENTITY eacute	"&#x00E9;">
+<!ENTITY Eacute	"&#x00C9;">
+<!ENTITY ecirc	"&#x00EA;">
+<!ENTITY Ecirc	"&#x00CA;">
+<!ENTITY egrave	"&#x00E8;">
+<!ENTITY Egrave	"&#x00C8;">
+<!ENTITY euml	"&#x00EB;">
+<!ENTITY Euml	"&#x00CB;">
+<!ENTITY iacute	"&#x00ED;">
+<!ENTITY Iacute	"&#x00CD;">
+<!ENTITY icirc	"&#x00EE;">
+<!ENTITY Icirc	"&#x00CE;">
+<!ENTITY igrave	"&#x00EC;">
+<!ENTITY Igrave	"&#x00CC;">
+<!ENTITY iuml	"&#x00EF;">
+<!ENTITY Iuml	"&#x00CF;">
+<!ENTITY ntilde	"&#x00F1;">
+<!ENTITY Ntilde	"&#x00D1;">
+<!ENTITY oacute	"&#x00F3;">
+<!ENTITY Oacute	"&#x00D3;">
+<!ENTITY ocirc	"&#x00F4;">
+<!ENTITY Ocirc	"&#x00D4;">
+<!ENTITY ograve	"&#x00F2;">
+<!ENTITY Ograve	"&#x00D2;">
+<!ENTITY oslash	"&#x00F8;">
+<!ENTITY Oslash	"&#x00D8;">
+<!ENTITY otilde	"&#x00F5;">
+<!ENTITY Otilde	"&#x00D5;">
+<!ENTITY ouml	"&#x00F6;">
+<!ENTITY Ouml	"&#x00D6;">
+<!ENTITY szlig	"&#x00DF;">
+<!ENTITY thorn	"&#x00FE;">
+<!ENTITY THORN	"&#x00DE;">
+<!ENTITY uacute	"&#x00FA;">
+<!ENTITY Uacute	"&#x00DA;">
+<!ENTITY ucirc	"&#x00FB;">
+<!ENTITY Ucirc	"&#x00DB;">
+<!ENTITY ugrave	"&#x00F9;">
+<!ENTITY Ugrave	"&#x00D9;">
+<!ENTITY uuml	"&#x00FC;">
+<!ENTITY Uuml	"&#x00DC;">
+<!ENTITY yacute	"&#x00FD;">
+<!ENTITY Yacute	"&#x00DD;">
+<!ENTITY yuml	"&#x00FF;">
+<!ENTITY half	"&#x00BD;">
+<!ENTITY frac12	"&#x00BD;">
+<!ENTITY frac14	"&#x00BC;">
+<!ENTITY frac34	"&#x00BE;">
+<!ENTITY frac18	"&#x215B;">
+<!ENTITY frac38	"&#x215C;">
+<!ENTITY frac58	"&#x215D;">
+<!ENTITY frac78	"&#x215E;">
+<!ENTITY sup1	"&#x00B9;">
+<!ENTITY sup2	"&#x00B2;">
+<!ENTITY sup3	"&#x00B3;">
+<!ENTITY plus	"&#x002B;">
+<!ENTITY plusmn	"&#x00B1;">
+<!ENTITY lt	"&#38;#60;">
+<!ENTITY equals	"&#x003D;">
+<!ENTITY gt	"&#x003E;">
+<!ENTITY divide	"&#x00F7;">
+<!ENTITY times	"&#x00D7;">
+<!ENTITY curren	"&#x00A4;">
+<!ENTITY pound	"&#x00A3;">
+<!ENTITY dollar	"&#x0024;">
+<!ENTITY cent	"&#x00A2;">
+<!ENTITY yen	"&#x00A5;">
+<!ENTITY num	"&#x0023;">
+<!ENTITY percnt	"&#x0025;">
+<!ENTITY amp	"&#38;#38;">
+<!ENTITY ast	"&#x002A;">
+<!ENTITY commat	"&#x0040;">
+<!ENTITY lsqb	"&#x005B;">
+<!ENTITY bsol	"&#x005C;">
+<!ENTITY rsqb	"&#x005D;">
+<!ENTITY lcub	"&#x007B;">
+<!ENTITY horbar	"&#x2015;">
+<!ENTITY verbar	"&#x007C;">
+<!ENTITY rcub	"&#x007D;">
+<!ENTITY micro	"&#x00B5;">
+<!ENTITY ohm	"&#x2126;">
+<!ENTITY deg	"&#x00B0;">
+<!ENTITY ordm	"&#x00BA;">
+<!ENTITY ordf	"&#x00AA;">
+<!ENTITY sect	"&#x00A7;">
+<!ENTITY para	"&#x00B6;">
+<!ENTITY middot	"&#x00B7;">
+<!ENTITY larr	"&#x2190;">
+<!ENTITY rarr	"&#x2192;">
+<!ENTITY uarr	"&#x2191;">
+<!ENTITY darr	"&#x2193;">
+<!ENTITY copy	"&#x00A9;">
+<!ENTITY reg	"&#x00AE;">
+<!ENTITY trade	"&#x2122;">
+<!ENTITY brvbar	"&#x00A6;">
+<!ENTITY not	"&#x00AC;">
+<!ENTITY sung	"&#x2669;">
+<!ENTITY excl	"&#x0021;">
+<!ENTITY iexcl	"&#x00A1;">
+<!ENTITY quot	"&#x0022;">
+<!ENTITY apos	"&#x0027;">
+<!ENTITY lpar	"&#x0028;">
+<!ENTITY rpar	"&#x0029;">
+<!ENTITY comma	"&#x002C;">
+<!ENTITY lowbar	"&#x005F;">
+<!ENTITY hyphen	"&#x002D;">
+<!ENTITY period	"&#x002E;">
+<!ENTITY sol	"&#x002F;">
+<!ENTITY colon	"&#x003A;">
+<!ENTITY semi	"&#x003B;">
+<!ENTITY quest	"&#x003F;">
+<!ENTITY iquest	"&#x00BF;">
+<!ENTITY laquo	"&#x00AB;">
+<!ENTITY raquo	"&#x00BB;">
+<!ENTITY lsquo	"&#x2018;">
+<!ENTITY rsquo	"&#x2019;">
+<!ENTITY ldquo	"&#x201C;">
+<!ENTITY rdquo	"&#x201D;">
+<!ENTITY nbsp	"&#x00A0;">
+<!ENTITY shy	"&#x00AD;">
+<!ENTITY emsp	"&#x2003;">
+<!ENTITY ensp	"&#x2002;">
+<!ENTITY emsp13	"&#x2004;">
+<!ENTITY emsp14	"&#x2005;">
+<!ENTITY numsp	"&#x2007;">
+<!ENTITY puncsp	"&#x2008;">
+<!ENTITY thinsp	"&#x2009;">
+<!ENTITY hairsp	"&#x200A;">
+<!ENTITY mdash	"&#x2014;">
+<!ENTITY ndash	"&#x2013;">
+<!ENTITY dash	"&#x2010;">
+<!ENTITY blank	"&#x2423;">
+<!ENTITY hellip	"&#x2026;">
+<!ENTITY nldr	"&#x2025;">
+<!ENTITY frac13	"&#x2153;">
+<!ENTITY frac23	"&#x2154;">
+<!ENTITY frac15	"&#x2155;">
+<!ENTITY frac25	"&#x2156;">
+<!ENTITY frac35	"&#x2157;">
+<!ENTITY frac45	"&#x2158;">
+<!ENTITY frac16	"&#x2159;">
+<!ENTITY frac56	"&#x215A;">
+<!ENTITY incare	"&#x2105;">
+<!ENTITY block	"&#x2588;">
+<!ENTITY uhblk	"&#x2580;">
+<!ENTITY lhblk	"&#x2584;">
+<!ENTITY blk14	"&#x2591;">
+<!ENTITY blk12	"&#x2592;">
+<!ENTITY blk34	"&#x2593;">
+<!ENTITY marker	"&#x25AE;">
+<!ENTITY cir	"&#x25CB;">
+<!ENTITY squ	"&#x25A1;">
+<!ENTITY rect	"&#x25AD;">
+<!ENTITY utri	"&#x25B5;">
+<!ENTITY dtri	"&#x25BF;">
+<!ENTITY star	"&#x22C6;">
+<!ENTITY bull	"&#x2022;">
+<!ENTITY squf	"&#x25AA;">
+<!ENTITY utrif	"&#x25B4;">
+<!ENTITY dtrif	"&#x25BE;">
+<!ENTITY ltrif	"&#x25C2;">
+<!ENTITY rtrif	"&#x25B8;">
+<!ENTITY clubs	"&#x2663;">
+<!ENTITY diams	"&#x2666;">
+<!ENTITY hearts	"&#x2665;">
+<!ENTITY spades	"&#x2660;">
+<!ENTITY malt	"&#x2720;">
+<!ENTITY dagger	"&#x2020;">
+<!ENTITY Dagger	"&#x2021;">
+<!ENTITY check	"&#x2713;">
+<!ENTITY cross	"&#x2717;">
+<!ENTITY sharp	"&#x266F;">
+<!ENTITY flat	"&#x266D;">
+<!ENTITY male	"&#x2642;">
+<!ENTITY female	"&#x2640;">
+<!ENTITY phone	"&#x260E;">
+<!ENTITY telrec	"&#x2315;">
+<!ENTITY copysr	"&#x2117;">
+<!ENTITY caret	"&#x2041;">
+<!ENTITY lsquor	"&#x201A;">
+<!ENTITY ldquor	"&#x201E;">
+<!ENTITY fflig	"&#xFB00;">
+<!ENTITY filig	"&#xFB01;">
+<!ENTITY ffilig	"&#xFB03;">
+<!ENTITY ffllig	"&#xFB04;">
+<!ENTITY fllig	"&#xFB02;">
+<!ENTITY mldr	"&#x2026;">
+<!ENTITY rdquor	"&#x201C;">
+<!ENTITY rsquor	"&#x2018;">
+<!ENTITY vellip	"&#x22EE;">
+<!ENTITY hybull	"&#x2043;">
+<!ENTITY loz	"&#x25CA;">
+<!ENTITY lozf	"&#x2726;">
+<!ENTITY ltri	"&#x25C3;">
+<!ENTITY rtri	"&#x25B9;">
+<!ENTITY starf	"&#x2605;">
+<!ENTITY natur	"&#x266E;">
+<!ENTITY rx	"&#x211E;">
+<!ENTITY sext	"&#x2736;">
+<!ENTITY target	"&#x2316;">
+<!ENTITY dlcrop	"&#x230D;">
+<!ENTITY drcrop	"&#x230C;">
+<!ENTITY ulcrop	"&#x230F;">
+<!ENTITY urcrop	"&#x230E;">
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+		"BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+		| EPS | EQN | FAX | GIF | GIF87a | GIF89a 
+		| JPG | JPEG | IGES | PCX
+		| PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+		| linespecific
+		%local.notation.class;">
+<!NOTATION BMP		PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR	PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY	PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR	PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF	SYSTEM "DITROFF">
+<!NOTATION DVI		SYSTEM "DVI">
+<!NOTATION EPS		PUBLIC 
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN		SYSTEM "EQN">
+<!NOTATION FAX		PUBLIC 
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF		SYSTEM "GIF">
+<!NOTATION GIF87a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+<!NOTATION GIF89a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG		SYSTEM "JPG">
+<!NOTATION JPEG		SYSTEM "JPG">
+<!NOTATION IGES		PUBLIC 
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC		SYSTEM "PIC">
+<!NOTATION PNG          SYSTEM "http://www.w3.org/TR/REC-png">
+<!NOTATION PS		SYSTEM "PS">
+<!NOTATION SGML		PUBLIC 
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL		SYSTEM "TBL">
+<!NOTATION TEX		PUBLIC 
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF		SYSTEM "TIFF">
+<!NOTATION WMF		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG		SYSTEM "WPG">
+<!NOTATION linespecific	SYSTEM "linespecific">
+<!ENTITY euro "&#x20AC;">
+<!ENTITY % yesorno.attvals	"CDATA">
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix 
+		"videoobject|audioobject|imageobject %local.mediaobject.mix;">
+<!ENTITY % role.attrib
+	"role		CDATA		#IMPLIED">
+<!ENTITY % label.attrib
+	"label		CDATA		#IMPLIED">
+<!ENTITY % linespecific.attrib
+	"format		NOTATION
+			(linespecific)	'linespecific'
+         linenumbering	(numbered|unnumbered) 	#IMPLIED">
+<!ENTITY % linkendreq.attrib
+	"linkend	IDREF		#REQUIRED">
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+	"mark		CDATA		#IMPLIED
+	%local.mark.attrib;"
+>
+<!ENTITY % moreinfo.attrib
+	"moreinfo	(refentry|none)	'none'">
+<!ENTITY % pagenum.attrib
+	"pagenum	CDATA		#IMPLIED">
+<!ENTITY % local.status.attrib "">
+<!ENTITY % status.attrib
+	"status		CDATA		#IMPLIED
+	%local.status.attrib;"
+>
+<!ENTITY % width.attrib
+	"width		CDATA		#IMPLIED">
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+<!ELEMENT title (%title.char.mix;)*>
+<!ATTLIST title
+		%pagenum.attrib;
+		%common.attrib;
+		%title.role.attrib;
+		%local.title.attrib;
+>
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!ATTLIST subtitle
+		%common.attrib;
+		%subtitle.role.attrib;
+		%local.subtitle.attrib;
+>
+<!ENTITY % local.bibliomixed.attrib "">
+<!ENTITY % bibliomixed.role.attrib "%role.attrib;">
+<!ATTLIST bibliomixed
+		%common.attrib;
+		%bibliomixed.role.attrib;
+		%local.bibliomixed.attrib;
+>
+<!ENTITY % local.articleinfo.attrib "">
+<!ENTITY % articleinfo.role.attrib "%role.attrib;">
+<!ATTLIST articleinfo
+		%common.attrib;
+		%articleinfo.role.attrib;
+		%local.articleinfo.attrib;
+>
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ATTLIST bibliomset
+		relation	CDATA		#IMPLIED
+		%bibliomset.role.attrib;
+		%common.attrib;
+		%local.bibliomset.attrib;
+>
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!ATTLIST bibliomisc
+		%common.attrib;
+		%bibliomisc.role.attrib;
+		%local.bibliomisc.attrib;
+>
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+<!ELEMENT subjectset (subject+)>
+<!ATTLIST subjectset
+		scheme		NMTOKEN		#IMPLIED
+		%common.attrib;
+		%subjectset.role.attrib;
+		%local.subjectset.attrib;
+>
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+<!ELEMENT subject (subjectterm+)>
+<!ATTLIST subject
+		weight		CDATA		#IMPLIED
+		%common.attrib;
+		%subject.role.attrib;
+		%local.subject.attrib;
+>
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+<!ELEMENT subjectterm (#PCDATA)>
+<!ATTLIST subjectterm
+		%common.attrib;
+		%subjectterm.role.attrib;
+		%local.subjectterm.attrib;
+>
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+<!ELEMENT keywordset (keyword+)>
+<!ATTLIST keywordset
+		%common.attrib;
+		%keywordset.role.attrib;
+		%local.keywordset.attrib;
+>
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+<!ELEMENT keyword (#PCDATA)>
+<!ATTLIST keyword
+		%common.attrib;
+		%keyword.role.attrib;
+		%local.keyword.attrib;
+>
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+<!ATTLIST sidebar
+		%common.attrib;
+		%sidebar.role.attrib;
+		%local.sidebar.attrib;
+>
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!ATTLIST abstract
+		%common.attrib;
+		%abstract.role.attrib;
+		%local.abstract.attrib;
+>
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!ATTLIST authorblurb
+		%common.attrib;
+		%authorblurb.role.attrib;
+		%local.authorblurb.attrib;
+>
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!ATTLIST blockquote
+		%common.attrib;
+		%blockquote.role.attrib;
+		%local.blockquote.attrib;
+>
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+<!ELEMENT attribution (%para.char.mix;)*>
+<!ATTLIST attribution
+		%common.attrib;
+		%attribution.role.attrib;
+		%local.attribution.attrib;
+>
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!ATTLIST epigraph
+		%common.attrib;
+		%epigraph.role.attrib;
+		%local.epigraph.attrib;
+>
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!ATTLIST footnote
+		%label.attrib;
+		%common.attrib;
+		%footnote.role.attrib;
+		%local.footnote.attrib;
+>
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+<!ATTLIST para
+		%common.attrib;
+		%para.role.attrib;
+		%local.para.attrib;
+>
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!ATTLIST note
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+<!ELEMENT itemizedlist ((%formalobject.title.content;)?, listitem+)>
+<!ATTLIST itemizedlist		spacing		(normal
+				|compact)	#IMPLIED
+		%mark.attrib;
+		%common.attrib;
+		%itemizedlist.role.attrib;
+		%local.itemizedlist.attrib;
+>
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+<!ELEMENT orderedlist ((%formalobject.title.content;)?, listitem+)>
+<!ATTLIST orderedlist
+		numeration	(arabic
+				|upperalpha
+				|loweralpha
+				|upperroman
+				|lowerroman)	#IMPLIED
+		inheritnum	(inherit
+				|ignore)	"ignore"
+		continuation	(continues
+				|restarts)	"restarts"
+		spacing		(normal
+				|compact)	#IMPLIED
+		%common.attrib;
+		%orderedlist.role.attrib;
+		%local.orderedlist.attrib;
+>
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+<!ELEMENT listitem ((%component.mix;)+)>
+<!ATTLIST listitem
+		override	CDATA		#IMPLIED
+		%common.attrib;
+		%listitem.role.attrib;
+		%local.listitem.attrib;
+>
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!ATTLIST variablelist
+		termlength	CDATA		#IMPLIED
+		%common.attrib;
+		%variablelist.role.attrib;
+		%local.variablelist.attrib;
+>
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+<!ELEMENT varlistentry (term+, listitem)>
+<!ATTLIST varlistentry
+		%common.attrib;
+		%varlistentry.role.attrib;
+		%local.varlistentry.attrib;
+>
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+<!ELEMENT term (%para.char.mix;)*>
+<!ATTLIST term
+		%common.attrib;
+		%term.role.attrib;
+		%local.term.attrib;
+>
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!ATTLIST example
+		%label.attrib;
+		%width.attrib;
+		%common.attrib;
+		%example.role.attrib;
+		%local.example.attrib;
+>
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+<!ATTLIST programlisting
+		%width.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%programlisting.role.attrib;
+		%local.programlisting.attrib;
+>
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+<!ATTLIST literallayout
+		%width.attrib;
+		%linespecific.attrib;
+		class	(monospaced|normal)	"normal"
+		%common.attrib;
+		%literallayout.role.attrib;
+		%local.literallayout.attrib;
+>
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+		%link.char.class;)+)>
+<!ATTLIST figure
+		float		%yesorno.attvals;	'0'
+		pgwide      	%yesorno.attvals;       #IMPLIED
+		%label.attrib;
+		%common.attrib;
+		%figure.role.attrib;
+		%local.figure.attrib;
+>
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+<!ELEMENT mediaobject (objectinfo?,
+                           (%mediaobject.mix;),
+			   (%mediaobject.mix;|textobject)*,
+			   caption?)>
+<!ATTLIST mediaobject
+		%common.attrib;
+		%mediaobject.role.attrib;
+		%local.mediaobject.attrib;
+>
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+<!ELEMENT inlinemediaobject (objectinfo?,
+                	         (%mediaobject.mix;),
+				 (%mediaobject.mix;|textobject)*)>
+<!ATTLIST inlinemediaobject
+		%common.attrib;
+		%inlinemediaobject.role.attrib;
+		%local.inlinemediaobject.attrib;
+>
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!ATTLIST videoobject
+		%common.attrib;
+		%videoobject.role.attrib;
+		%local.videoobject.attrib;
+>
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!ATTLIST audioobject
+		%common.attrib;
+		%audioobject.role.attrib;
+		%local.audioobject.attrib;
+>
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!ATTLIST imageobject
+		%common.attrib;
+		%imageobject.role.attrib;
+		%local.imageobject.attrib;
+>
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!ATTLIST textobject
+		%common.attrib;
+		%textobject.role.attrib;
+		%local.textobject.attrib;
+>
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+<!ATTLIST objectinfo
+		%common.attrib;
+		%objectinfo.role.attrib;
+		%local.objectinfo.attrib;
+>
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+	"
+	entityref	ENTITY		#IMPLIED
+	fileref 	CDATA		#IMPLIED
+	format		(%notation.class;)
+					#IMPLIED
+	srccredit	CDATA		#IMPLIED
+	%local.objectdata.attrib;"
+>
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+<!ELEMENT videodata EMPTY>
+<!ATTLIST videodata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%videodata.role.attrib;
+		%local.videodata.attrib;
+>
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+<!ELEMENT audiodata EMPTY>
+<!ATTLIST audiodata
+		%common.attrib;
+		%objectdata.attrib;
+		%local.audiodata.attrib;
+		%audiodata.role.attrib;
+>
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+<!ELEMENT imagedata EMPTY>
+<!ATTLIST imagedata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%local.imagedata.attrib;
+		%imagedata.role.attrib;
+>
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+<!ELEMENT caption (%textobject.mix;)*>
+<!ATTLIST caption
+		%common.attrib;
+		%local.caption.attrib;
+		%caption.role.attrib;
+>
+<!ENTITY % tables.role.attrib "%role.attrib;">
+<!ENTITY % bodyatt 
+	"%common.attrib;
+	%label.attrib;
+	%tables.role.attrib;">
+<!ENTITY % common.table.attribs
+	"%bodyatt;">
+<!ENTITY % tbl.tgroup.att       "%common.attrib;">
+<!ENTITY % tbl.colspec.att      "%common.attrib;">
+<!ENTITY % tbl.tbody.att        "%common.attrib;">
+<!ENTITY % tbl.thead.att        "%common.attrib;">
+<!ENTITY % tbl.row.att          "%common.attrib;">
+<!ENTITY % tbl.entry.att        "%common.attrib;">
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+<!ENTITY % yesorno 'NMTOKEN'>
+<!ENTITY % tbl.table.name       "table">
+<!ENTITY % tbl.table.att        "
+    pgwide      %yesorno;       #IMPLIED ">
+<!ENTITY % tbl.tgroup.mdl       "colspec*,thead?,tbody">
+<!ENTITY % tbl.row.mdl          "entry+">
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+<!ATTLIST %tbl.table.name;
+        frame           (top|bottom|topbot|all|sides|none)      #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        %tbl.table.att;
+        %bodyatt;
+>
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+<!ATTLIST tgroup
+        cols            NMTOKEN                                 #REQUIRED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        %tbl.tgroup.att;
+>
+<!ELEMENT colspec EMPTY >
+<!ATTLIST colspec
+        colnum          NMTOKEN                                 #IMPLIED
+        colname         NMTOKEN                                 #IMPLIED
+        colwidth        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        %tbl.colspec.att;
+>
+<!ELEMENT thead (row+)>
+<!ATTLIST thead
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.thead.att;
+>
+<!ELEMENT tbody (row+)>
+<!ATTLIST tbody
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.tbody.att;
+>
+<!ELEMENT row (%tbl.row.mdl;)>
+<!ATTLIST row
+        rowsep          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.row.att;
+>
+<!ELEMENT entry %tbl.entry.mdl;>
+<!ATTLIST entry
+        colname         NMTOKEN                                 #IMPLIED
+        namest          NMTOKEN                                 #IMPLIED
+        nameend         NMTOKEN                                 #IMPLIED
+        morerows        NMTOKEN                                 #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.entry.att;
+>
+<!ENTITY % local.informaltable.attrib "">
+<!ATTLIST informaltable
+		frame		(top
+				|bottom
+				|topbot
+				|all
+				|sides
+				|none)			#IMPLIED
+		colsep		%yesorno.attvals;	#IMPLIED
+		rowsep		%yesorno.attvals;	#IMPLIED
+		%common.table.attribs;
+		%tbl.table.att;
+		%local.informaltable.attrib;
+>
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+<!ATTLIST affiliation
+		%common.attrib;
+		%affiliation.role.attrib;
+		%local.affiliation.attrib;
+>
+<!ENTITY % local.jobtitle.attrib "">
+<!ENTITY % jobtitle.role.attrib "%role.attrib;">
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!ATTLIST jobtitle
+		%common.attrib;
+		%jobtitle.role.attrib;
+		%local.jobtitle.attrib;
+>
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!ATTLIST author
+		%common.attrib;
+		%author.role.attrib;
+		%local.author.attrib;
+>
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+<!ATTLIST authorgroup
+		%common.attrib;
+		%authorgroup.role.attrib;
+		%local.authorgroup.attrib;
+>
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!ATTLIST authorinitials
+		%common.attrib;
+		%authorinitials.role.attrib;
+		%local.authorinitials.attrib;
+>
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+<!ELEMENT copyright (year+, holder*)>
+<!ATTLIST copyright
+		%common.attrib;
+		%copyright.role.attrib;
+		%local.copyright.attrib;
+>
+<!ENTITY % local.year.attrib "">
+<!ENTITY % year.role.attrib "%role.attrib;">
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!ATTLIST year
+		%common.attrib;
+		%year.role.attrib;
+		%local.year.attrib;
+>
+<!ENTITY % local.holder.attrib "">
+<!ENTITY % holder.role.attrib "%role.attrib;">
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!ATTLIST holder
+		%common.attrib;
+		%holder.role.attrib;
+		%local.holder.attrib;
+>
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!ATTLIST corpauthor
+		%common.attrib;
+		%corpauthor.role.attrib;
+		%local.corpauthor.attrib;
+>
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!ATTLIST date
+		%common.attrib;
+		%date.role.attrib;
+		%local.date.attrib;
+>
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!ATTLIST edition
+		%common.attrib;
+		%edition.role.attrib;
+		%local.edition.attrib;
+>
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!ATTLIST editor
+		%common.attrib;
+		%editor.role.attrib;
+		%local.editor.attrib;
+>
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!ATTLIST issuenum
+		%common.attrib;
+		%issuenum.role.attrib;
+		%local.issuenum.attrib;
+>
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!ATTLIST legalnotice
+		%common.attrib;
+		%legalnotice.role.attrib;
+		%local.legalnotice.attrib;
+>
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!ATTLIST orgname
+		%common.attrib;
+		%orgname.role.attrib;
+		%local.orgname.attrib;
+>
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!ATTLIST othercredit
+		%common.attrib;
+		%othercredit.role.attrib;
+		%local.othercredit.attrib;
+>
+<!ENTITY % local.firstname.attrib "">
+<!ENTITY % firstname.role.attrib "%role.attrib;">
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!ATTLIST firstname
+		%common.attrib;
+		%firstname.role.attrib;
+		%local.firstname.attrib;
+>
+<!ENTITY % local.honorific.attrib "">
+<!ENTITY % honorific.role.attrib "%role.attrib;">
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!ATTLIST honorific
+		%common.attrib;
+		%honorific.role.attrib;
+		%local.honorific.attrib;
+>
+<!ENTITY % local.lineage.attrib "">
+<!ENTITY % lineage.role.attrib "%role.attrib;">
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!ATTLIST lineage
+		%common.attrib;
+		%lineage.role.attrib;
+		%local.lineage.attrib;
+>
+<!ENTITY % local.othername.attrib "">
+<!ENTITY % othername.role.attrib "%role.attrib;">
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!ATTLIST othername
+		%common.attrib;
+		%othername.role.attrib;
+		%local.othername.attrib;
+>
+<!ENTITY % local.surname.attrib "">
+<!ENTITY % surname.role.attrib "%role.attrib;">
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!ATTLIST surname
+		%common.attrib;
+		%surname.role.attrib;
+		%local.surname.attrib;
+>
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!ATTLIST pubdate
+		%common.attrib;
+		%pubdate.role.attrib;
+		%local.pubdate.attrib;
+>
+<!ENTITY % local.publishername.attrib "">
+<!ENTITY % publishername.role.attrib "%role.attrib;">
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!ATTLIST publishername
+		%common.attrib;
+		%publishername.role.attrib;
+		%local.publishername.attrib;
+>
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!ATTLIST releaseinfo
+		%common.attrib;
+		%releaseinfo.role.attrib;
+		%local.releaseinfo.attrib;
+>
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+<!ELEMENT revhistory (revision+)>
+<!ATTLIST revhistory
+		%common.attrib;
+		%revhistory.role.attrib;
+		%local.revhistory.attrib;
+>
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+<!ELEMENT revision (revnumber, date, authorinitials*, 
+                    (revremark|revdescription)?)>
+<!ATTLIST revision
+		%common.attrib;
+		%revision.role.attrib;
+		%local.revision.attrib;
+>
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!ATTLIST revnumber
+		%common.attrib;
+		%revnumber.role.attrib;
+		%local.revnumber.attrib;
+>
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!ATTLIST revremark
+		%common.attrib;
+		%revremark.role.attrib;
+		%local.revremark.attrib;
+>
+<!ENTITY % local.revdescription.attrib "">
+<!ENTITY % revdescription.role.attrib "%role.attrib;">
+<!ELEMENT revdescription ((%revdescription.mix;)+)>
+<!ATTLIST revdescription
+		%common.attrib;
+		%revdescription.role.attrib;
+		%local.revdescription.attrib;
+>
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!ATTLIST volumenum
+		%common.attrib;
+		%volumenum.role.attrib;
+		%local.volumenum.attrib;
+>
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+<!ELEMENT command (%cptr.char.mix;)*>
+<!ATTLIST command
+		%moreinfo.attrib;
+		%common.attrib;
+		%command.role.attrib;
+		%local.command.attrib;
+>
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!ATTLIST computeroutput
+		%moreinfo.attrib;
+		%common.attrib;
+		%computeroutput.role.attrib;
+		%local.computeroutput.attrib;
+>
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!ATTLIST email
+		%common.attrib;
+		%email.role.attrib;
+		%local.email.attrib;
+>
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+<!ELEMENT filename (%smallcptr.char.mix;)*>
+<!ATTLIST filename
+		class		(headerfile
+                                |devicefile
+                                |libraryfile
+                                |directory
+				|symlink)       #IMPLIED
+		path		CDATA		#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%filename.role.attrib;
+		%local.filename.attrib;
+>
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!ATTLIST lineannotation
+		%common.attrib;
+		%lineannotation.role.attrib;
+		%local.lineannotation.attrib;
+>
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!ATTLIST literal
+		%moreinfo.attrib;
+		%common.attrib;
+		%literal.role.attrib;
+		%local.literal.attrib;
+>
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+<!ELEMENT option (%smallcptr.char.mix;)*>
+<!ATTLIST option
+		%common.attrib;
+		%option.role.attrib;
+		%local.option.attrib;
+>
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+<!ATTLIST replaceable
+		class		(command
+				|function
+				|option
+				|parameter)	#IMPLIED
+		%common.attrib;
+		%replaceable.role.attrib;
+		%local.replaceable.attrib;
+>
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+<!ATTLIST systemitem
+		class	(constant
+			|groupname
+                        |library
+			|macro
+			|osname
+			|resource
+			|systemname
+                        |username)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%systemitem.role.attrib;
+		%local.systemitem.attrib;
+>
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!ATTLIST userinput
+		%moreinfo.attrib;
+		%common.attrib;
+		%userinput.role.attrib;
+		%local.userinput.attrib;
+>
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!ATTLIST abbrev
+		%common.attrib;
+		%abbrev.role.attrib;
+		%local.abbrev.attrib;
+>
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+<!ELEMENT acronym (%word.char.mix;)*>
+<!ATTLIST acronym
+		%common.attrib;
+		%acronym.role.attrib;
+		%local.acronym.attrib;
+>
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!ATTLIST citetitle
+		pubwork		(article
+				|book
+				|chapter
+				|part
+				|refentry
+				|section
+				|journal
+				|series
+				|set
+				|manuscript)	#IMPLIED
+		%common.attrib;
+		%citetitle.role.attrib;
+		%local.citetitle.attrib;
+>
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!ATTLIST emphasis
+		%common.attrib;
+		%emphasis.role.attrib;
+		%local.emphasis.attrib;
+>
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+<!ELEMENT phrase (%para.char.mix;)*>
+<!ATTLIST phrase
+		%common.attrib;
+		%phrase.role.attrib;
+		%local.phrase.attrib;
+>
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+<!ELEMENT quote (%para.char.mix;)*>
+<!ATTLIST quote
+		%common.attrib;
+		%quote.role.attrib;
+		%local.quote.attrib;
+>
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+<!ATTLIST trademark
+		class		(service
+				|trade
+				|registered
+				|copyright)	'trade'
+		%common.attrib;
+		%trademark.role.attrib;
+		%local.trademark.attrib;
+>
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+<!ELEMENT link (%para.char.mix;)*>
+<!ATTLIST link
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		type		CDATA		#IMPLIED
+		%common.attrib;
+		%link.role.attrib;
+		%local.link.attrib;
+>
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+<!ELEMENT ulink (%para.char.mix;)*>
+<!ATTLIST ulink
+		url		CDATA		#REQUIRED
+		type		CDATA		#IMPLIED
+		%common.attrib;
+		%ulink.role.attrib;
+		%local.ulink.attrib;
+>
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+<!ELEMENT xref EMPTY>
+<!ATTLIST xref
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		%common.attrib;
+		%xref.role.attrib;
+		%local.xref.attrib;
+>
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class	"appendix %local.appendix.class;">
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+<!ATTLIST appendix
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%appendix.role.attrib;
+		%local.appendix.attrib;
+>
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+<!ATTLIST section
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%section.role.attrib;
+		%local.section.attrib;
+>
+<!ENTITY % local.bibliography.attrib "">
+<!ENTITY % bibliography.role.attrib "%role.attrib;">
+<!ATTLIST bibliography
+		%status.attrib;
+		%common.attrib;
+		%bibliography.role.attrib;
+		%local.bibliography.attrib;
+>
+<!ENTITY % local.bibliodiv.attrib "">
+<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
+<!ATTLIST bibliodiv
+		%status.attrib;
+		%common.attrib;
+		%bibliodiv.role.attrib;
+		%local.bibliodiv.attrib;
+>
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+<!ATTLIST article
+		class		(journalarticle
+				|productsheet
+				|whitepaper
+				|techreport
+                                |specification
+				|faq)		#IMPLIED
+		parentbook	IDREF		#IMPLIED
+		%status.attrib;
+		%common.attrib;
+		%article.role.attrib;
+		%local.article.attrib;
+>
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT section (sectioninfo?,
+			(%sect.title.content;),
+			(((%divcomponent.mix;)+, section*)
+			 | section+))>
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+<!ELEMENT para (%para.char.mix;)*>
+<!ELEMENT informaltable (mediaobject+|tgroup+) >
+<!ELEMENT replaceable (#PCDATA 
+		| %link.char.class; 
+		| inlinemediaobject)*>
+<!ELEMENT trademark (#PCDATA 
+		| %link.char.class; 
+		| %tech.char.class;
+		| inlinemediaobject
+		| emphasis)*>
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+<!ELEMENT article ((%div.title.content;)?, articleinfo?,
+		       (%bookcomponent.content;),
+		       ((%appendix.class;)|bibliography)*)>
+<!ELEMENT articleinfo ((mediaobject | legalnotice
+	| subjectset | keywordset | %bibliocomponent.mix;)+)>
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+		(%bookcomponent.content;))>
+<!ELEMENT bibliography ((%bookcomponent.title.content;)?,
+                        (%component.mix;)*,
+                        (bibliodiv+ | bibliomixed+))>
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+		(bibliomixed)+)>
+<!ELEMENT sidebar ((%formalobject.title.content;)?,
+                   (%sidebar.mix;)+)>
+<!ELEMENT programlisting (%para.char.mix; | lineannotation)*>
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbookref.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbookref.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sdocbookref.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1688 @@
+<!-- *********************************************************************
+     *** THIS IS THE FLATTENED DTD. DO NOT EDIT THIS DTD BY HAND, EDIT ***
+     *** THE CUSTOMIZATION LAYER AND REGNERATE THE FLATTENED DTD! ********
+     ********************************************************************* -->
+
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML RefEntry V4.1.2.4 DTD
+     Part of the Simplified DocBook XML V4.1.2.4 DTD
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+
+     Common declaration:
+
+     <?xml version="1.0"?>
+     <!DOCTYPE refentry
+       PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML RefEntry V4.1.2.4//EN"
+       "http://nwalsh.com/docbook/simple/4.1.2.4/sdocbookref.dtd">
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+		"#PCDATA
+		%local.refclass.char.mix;">
+<!ENTITY % refsect.title.content "title, subtitle?">
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+	"title, subtitle?">
+<!ENTITY % sect.title.content
+	"title, subtitle?">
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+		"itemizedlist|orderedlist
+		|variablelist %local.list.class;">
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+		"note %local.admon.class;">
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+		"literallayout|programlisting %local.linespecific.class;">
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+		"para %local.para.class;">
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+		"blockquote
+		|mediaobject
+		|informaltable %local.informal.class;">
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+		"example|figure|table %local.formal.class;">
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+		"sidebar %local.compound.class;">
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+		"abstract|authorblurb|epigraph
+		%local.descobj.class;">
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+		"abbrev|acronym|citetitle|emphasis|footnote|phrase
+		|quote|trademark %local.gen.char.class;">
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+		"xref|link|ulink %local.link.char.class;">
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+		"command|computeroutput
+		|email|filename
+		|literal
+		|option
+		|replaceable
+		|systemitem|userinput
+		%local.tech.char.class;">
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+		"author|corpauthor|othercredit
+		|revhistory
+		%local.docinfo.char.class;">
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+		"inlinemediaobject %local.inlineobj.char.class;">
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+	"id		ID		#IMPLIED
+	revisionflag	(changed
+			|added
+			|deleted
+			|off)		#IMPLIED
+	%local.common.attrib;"
+>
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+		"honorific|firstname|surname|lineage|othername|affiliation
+		|authorblurb
+		%local.person.ident.mix;">
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+		"abbrev|abstract|author
+		|authorgroup|bibliomisc
+		|copyright|corpauthor|date|edition
+		|editor|issuenum
+		|othercredit
+		|pubdate|publishername
+		|releaseinfo|revhistory
+		|subtitle|title|volumenum|citetitle
+		|%person.ident.mix;
+		%local.bibliocomponent.mix;">
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.component.mix;">
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.sidebar.mix;">
+<!ENTITY % local.revdescription.mix "">
+<!ENTITY % revdescription.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.revdescription.mix;">
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.footnote.mix;">
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		%local.example.mix;">
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+		"%list.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;
+		%local.admon.mix;">
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+		"%linespecific.class;
+					|%informal.class;
+		%local.figure.mix;">
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|mediaobject
+		%local.tabentry.mix;">
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.legalnotice.mix;">
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|blockquote
+		%local.textobject.mix;">
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%inlineobj.char.class;
+		%local.para.char.mix;">
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+					|%docinfo.char.class;
+					|%inlineobj.char.class;
+		%local.title.char.mix;">
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+		"#PCDATA
+		|%link.char.class;	|%tech.char.class;
+					|inlinemediaobject
+		%local.cptr.char.mix;">
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+		"#PCDATA
+					|replaceable
+					|inlinemediaobject
+		%local.smallcptr.char.mix;">
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+		"#PCDATA
+					|acronym|emphasis|trademark
+		|%link.char.class;
+					|inlinemediaobject
+		%local.word.char.mix;">
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+		"#PCDATA
+		|%link.char.class;
+					|emphasis|trademark
+					|replaceable
+					|inlinemediaobject
+		%local.docinfo.char.mix;">
+<!ENTITY % tbl.table.mdl
+	"(title, (mediaobject+|tgroup+))">
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.divcomponent.mix;">
+<!ENTITY % bookcomponent.content
+	"((%divcomponent.mix;)+, section*)
+	| section+">
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+		"#PCDATA
+					|%gen.char.class;
+		|%link.char.class;	|%tech.char.class;
+		%local.refinline.char.mix;">
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+		"%list.class;		|%admon.class;
+		|%linespecific.class;
+		|%para.class;		|%informal.class;
+		|%formal.class;		|%compound.class;
+					|%descobj.class;
+		%local.divcomponent.mix;">
+<!ELEMENT refentry (refentryinfo?, refmeta?, (%link.char.class;)*,
+                    refnamediv, refsynopsisdiv?, refsect1+)>
+<!ELEMENT refentryinfo ((mediaobject | legalnotice
+		| subjectset | keywordset
+                | %bibliocomponent.mix;)+)>
+<!ELEMENT refmeta (refentrytitle, manvolnum?, refmiscinfo*)>
+<!ELEMENT refsect1info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsect2info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsect3info ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsynopsisdivinfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+		(%link.char.class;)*)>
+<!ENTITY aacute	"&#x00E1;">
+<!ENTITY Aacute	"&#x00C1;">
+<!ENTITY acirc	"&#x00E2;">
+<!ENTITY Acirc	"&#x00C2;">
+<!ENTITY agrave	"&#x00E0;">
+<!ENTITY Agrave	"&#x00C0;">
+<!ENTITY aring	"&#x00E5;">
+<!ENTITY Aring	"&#x00C5;">
+<!ENTITY atilde	"&#x00E3;">
+<!ENTITY Atilde	"&#x00C3;">
+<!ENTITY auml	"&#x00E4;">
+<!ENTITY Auml	"&#x00C4;">
+<!ENTITY aelig	"&#x00E6;">
+<!ENTITY AElig	"&#x00C6;">
+<!ENTITY ccedil	"&#x00E7;">
+<!ENTITY Ccedil	"&#x00C7;">
+<!ENTITY eth	"&#x00F0;">
+<!ENTITY ETH	"&#x00D0;">
+<!ENTITY eacute	"&#x00E9;">
+<!ENTITY Eacute	"&#x00C9;">
+<!ENTITY ecirc	"&#x00EA;">
+<!ENTITY Ecirc	"&#x00CA;">
+<!ENTITY egrave	"&#x00E8;">
+<!ENTITY Egrave	"&#x00C8;">
+<!ENTITY euml	"&#x00EB;">
+<!ENTITY Euml	"&#x00CB;">
+<!ENTITY iacute	"&#x00ED;">
+<!ENTITY Iacute	"&#x00CD;">
+<!ENTITY icirc	"&#x00EE;">
+<!ENTITY Icirc	"&#x00CE;">
+<!ENTITY igrave	"&#x00EC;">
+<!ENTITY Igrave	"&#x00CC;">
+<!ENTITY iuml	"&#x00EF;">
+<!ENTITY Iuml	"&#x00CF;">
+<!ENTITY ntilde	"&#x00F1;">
+<!ENTITY Ntilde	"&#x00D1;">
+<!ENTITY oacute	"&#x00F3;">
+<!ENTITY Oacute	"&#x00D3;">
+<!ENTITY ocirc	"&#x00F4;">
+<!ENTITY Ocirc	"&#x00D4;">
+<!ENTITY ograve	"&#x00F2;">
+<!ENTITY Ograve	"&#x00D2;">
+<!ENTITY oslash	"&#x00F8;">
+<!ENTITY Oslash	"&#x00D8;">
+<!ENTITY otilde	"&#x00F5;">
+<!ENTITY Otilde	"&#x00D5;">
+<!ENTITY ouml	"&#x00F6;">
+<!ENTITY Ouml	"&#x00D6;">
+<!ENTITY szlig	"&#x00DF;">
+<!ENTITY thorn	"&#x00FE;">
+<!ENTITY THORN	"&#x00DE;">
+<!ENTITY uacute	"&#x00FA;">
+<!ENTITY Uacute	"&#x00DA;">
+<!ENTITY ucirc	"&#x00FB;">
+<!ENTITY Ucirc	"&#x00DB;">
+<!ENTITY ugrave	"&#x00F9;">
+<!ENTITY Ugrave	"&#x00D9;">
+<!ENTITY uuml	"&#x00FC;">
+<!ENTITY Uuml	"&#x00DC;">
+<!ENTITY yacute	"&#x00FD;">
+<!ENTITY Yacute	"&#x00DD;">
+<!ENTITY yuml	"&#x00FF;">
+<!ENTITY half	"&#x00BD;">
+<!ENTITY frac12	"&#x00BD;">
+<!ENTITY frac14	"&#x00BC;">
+<!ENTITY frac34	"&#x00BE;">
+<!ENTITY frac18	"&#x215B;">
+<!ENTITY frac38	"&#x215C;">
+<!ENTITY frac58	"&#x215D;">
+<!ENTITY frac78	"&#x215E;">
+<!ENTITY sup1	"&#x00B9;">
+<!ENTITY sup2	"&#x00B2;">
+<!ENTITY sup3	"&#x00B3;">
+<!ENTITY plus	"&#x002B;">
+<!ENTITY plusmn	"&#x00B1;">
+<!ENTITY lt	"&#38;#60;">
+<!ENTITY equals	"&#x003D;">
+<!ENTITY gt	"&#x003E;">
+<!ENTITY divide	"&#x00F7;">
+<!ENTITY times	"&#x00D7;">
+<!ENTITY curren	"&#x00A4;">
+<!ENTITY pound	"&#x00A3;">
+<!ENTITY dollar	"&#x0024;">
+<!ENTITY cent	"&#x00A2;">
+<!ENTITY yen	"&#x00A5;">
+<!ENTITY num	"&#x0023;">
+<!ENTITY percnt	"&#x0025;">
+<!ENTITY amp	"&#38;#38;">
+<!ENTITY ast	"&#x002A;">
+<!ENTITY commat	"&#x0040;">
+<!ENTITY lsqb	"&#x005B;">
+<!ENTITY bsol	"&#x005C;">
+<!ENTITY rsqb	"&#x005D;">
+<!ENTITY lcub	"&#x007B;">
+<!ENTITY horbar	"&#x2015;">
+<!ENTITY verbar	"&#x007C;">
+<!ENTITY rcub	"&#x007D;">
+<!ENTITY micro	"&#x00B5;">
+<!ENTITY ohm	"&#x2126;">
+<!ENTITY deg	"&#x00B0;">
+<!ENTITY ordm	"&#x00BA;">
+<!ENTITY ordf	"&#x00AA;">
+<!ENTITY sect	"&#x00A7;">
+<!ENTITY para	"&#x00B6;">
+<!ENTITY middot	"&#x00B7;">
+<!ENTITY larr	"&#x2190;">
+<!ENTITY rarr	"&#x2192;">
+<!ENTITY uarr	"&#x2191;">
+<!ENTITY darr	"&#x2193;">
+<!ENTITY copy	"&#x00A9;">
+<!ENTITY reg	"&#x00AE;">
+<!ENTITY trade	"&#x2122;">
+<!ENTITY brvbar	"&#x00A6;">
+<!ENTITY not	"&#x00AC;">
+<!ENTITY sung	"&#x2669;">
+<!ENTITY excl	"&#x0021;">
+<!ENTITY iexcl	"&#x00A1;">
+<!ENTITY quot	"&#x0022;">
+<!ENTITY apos	"&#x0027;">
+<!ENTITY lpar	"&#x0028;">
+<!ENTITY rpar	"&#x0029;">
+<!ENTITY comma	"&#x002C;">
+<!ENTITY lowbar	"&#x005F;">
+<!ENTITY hyphen	"&#x002D;">
+<!ENTITY period	"&#x002E;">
+<!ENTITY sol	"&#x002F;">
+<!ENTITY colon	"&#x003A;">
+<!ENTITY semi	"&#x003B;">
+<!ENTITY quest	"&#x003F;">
+<!ENTITY iquest	"&#x00BF;">
+<!ENTITY laquo	"&#x00AB;">
+<!ENTITY raquo	"&#x00BB;">
+<!ENTITY lsquo	"&#x2018;">
+<!ENTITY rsquo	"&#x2019;">
+<!ENTITY ldquo	"&#x201C;">
+<!ENTITY rdquo	"&#x201D;">
+<!ENTITY nbsp	"&#x00A0;">
+<!ENTITY shy	"&#x00AD;">
+<!ENTITY emsp	"&#x2003;">
+<!ENTITY ensp	"&#x2002;">
+<!ENTITY emsp13	"&#x2004;">
+<!ENTITY emsp14	"&#x2005;">
+<!ENTITY numsp	"&#x2007;">
+<!ENTITY puncsp	"&#x2008;">
+<!ENTITY thinsp	"&#x2009;">
+<!ENTITY hairsp	"&#x200A;">
+<!ENTITY mdash	"&#x2014;">
+<!ENTITY ndash	"&#x2013;">
+<!ENTITY dash	"&#x2010;">
+<!ENTITY blank	"&#x2423;">
+<!ENTITY hellip	"&#x2026;">
+<!ENTITY nldr	"&#x2025;">
+<!ENTITY frac13	"&#x2153;">
+<!ENTITY frac23	"&#x2154;">
+<!ENTITY frac15	"&#x2155;">
+<!ENTITY frac25	"&#x2156;">
+<!ENTITY frac35	"&#x2157;">
+<!ENTITY frac45	"&#x2158;">
+<!ENTITY frac16	"&#x2159;">
+<!ENTITY frac56	"&#x215A;">
+<!ENTITY incare	"&#x2105;">
+<!ENTITY block	"&#x2588;">
+<!ENTITY uhblk	"&#x2580;">
+<!ENTITY lhblk	"&#x2584;">
+<!ENTITY blk14	"&#x2591;">
+<!ENTITY blk12	"&#x2592;">
+<!ENTITY blk34	"&#x2593;">
+<!ENTITY marker	"&#x25AE;">
+<!ENTITY cir	"&#x25CB;">
+<!ENTITY squ	"&#x25A1;">
+<!ENTITY rect	"&#x25AD;">
+<!ENTITY utri	"&#x25B5;">
+<!ENTITY dtri	"&#x25BF;">
+<!ENTITY star	"&#x22C6;">
+<!ENTITY bull	"&#x2022;">
+<!ENTITY squf	"&#x25AA;">
+<!ENTITY utrif	"&#x25B4;">
+<!ENTITY dtrif	"&#x25BE;">
+<!ENTITY ltrif	"&#x25C2;">
+<!ENTITY rtrif	"&#x25B8;">
+<!ENTITY clubs	"&#x2663;">
+<!ENTITY diams	"&#x2666;">
+<!ENTITY hearts	"&#x2665;">
+<!ENTITY spades	"&#x2660;">
+<!ENTITY malt	"&#x2720;">
+<!ENTITY dagger	"&#x2020;">
+<!ENTITY Dagger	"&#x2021;">
+<!ENTITY check	"&#x2713;">
+<!ENTITY cross	"&#x2717;">
+<!ENTITY sharp	"&#x266F;">
+<!ENTITY flat	"&#x266D;">
+<!ENTITY male	"&#x2642;">
+<!ENTITY female	"&#x2640;">
+<!ENTITY phone	"&#x260E;">
+<!ENTITY telrec	"&#x2315;">
+<!ENTITY copysr	"&#x2117;">
+<!ENTITY caret	"&#x2041;">
+<!ENTITY lsquor	"&#x201A;">
+<!ENTITY ldquor	"&#x201E;">
+<!ENTITY fflig	"&#xFB00;">
+<!ENTITY filig	"&#xFB01;">
+<!ENTITY ffilig	"&#xFB03;">
+<!ENTITY ffllig	"&#xFB04;">
+<!ENTITY fllig	"&#xFB02;">
+<!ENTITY mldr	"&#x2026;">
+<!ENTITY rdquor	"&#x201C;">
+<!ENTITY rsquor	"&#x2018;">
+<!ENTITY vellip	"&#x22EE;">
+<!ENTITY hybull	"&#x2043;">
+<!ENTITY loz	"&#x25CA;">
+<!ENTITY lozf	"&#x2726;">
+<!ENTITY ltri	"&#x25C3;">
+<!ENTITY rtri	"&#x25B9;">
+<!ENTITY starf	"&#x2605;">
+<!ENTITY natur	"&#x266E;">
+<!ENTITY rx	"&#x211E;">
+<!ENTITY sext	"&#x2736;">
+<!ENTITY target	"&#x2316;">
+<!ENTITY dlcrop	"&#x230D;">
+<!ENTITY drcrop	"&#x230C;">
+<!ENTITY ulcrop	"&#x230F;">
+<!ENTITY urcrop	"&#x230E;">
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+		"BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+		| EPS | EQN | FAX | GIF | GIF87a | GIF89a 
+		| JPG | JPEG | IGES | PCX
+		| PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+		| linespecific
+		%local.notation.class;">
+<!NOTATION BMP		PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR	PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY	PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR	PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF	SYSTEM "DITROFF">
+<!NOTATION DVI		SYSTEM "DVI">
+<!NOTATION EPS		PUBLIC 
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN		SYSTEM "EQN">
+<!NOTATION FAX		PUBLIC 
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF		SYSTEM "GIF">
+<!NOTATION GIF87a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+<!NOTATION GIF89a               PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG		SYSTEM "JPG">
+<!NOTATION JPEG		SYSTEM "JPG">
+<!NOTATION IGES		PUBLIC 
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC		SYSTEM "PIC">
+<!NOTATION PNG          SYSTEM "http://www.w3.org/TR/REC-png">
+<!NOTATION PS		SYSTEM "PS">
+<!NOTATION SGML		PUBLIC 
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL		SYSTEM "TBL">
+<!NOTATION TEX		PUBLIC 
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF		SYSTEM "TIFF">
+<!NOTATION WMF		PUBLIC 
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG		SYSTEM "WPG">
+<!NOTATION linespecific	SYSTEM "linespecific">
+<!ENTITY euro "&#x20AC;">
+<!ENTITY % yesorno.attvals	"CDATA">
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix 
+		"videoobject|audioobject|imageobject %local.mediaobject.mix;">
+<!ENTITY % role.attrib
+	"role		CDATA		#IMPLIED">
+<!ENTITY % label.attrib
+	"label		CDATA		#IMPLIED">
+<!ENTITY % linespecific.attrib
+	"format		NOTATION
+			(linespecific)	'linespecific'
+         linenumbering	(numbered|unnumbered) 	#IMPLIED">
+<!ENTITY % linkendreq.attrib
+	"linkend	IDREF		#REQUIRED">
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+	"mark		CDATA		#IMPLIED
+	%local.mark.attrib;"
+>
+<!ENTITY % moreinfo.attrib
+	"moreinfo	(refentry|none)	'none'">
+<!ENTITY % pagenum.attrib
+	"pagenum	CDATA		#IMPLIED">
+<!ENTITY % local.status.attrib "">
+<!ENTITY % status.attrib
+	"status		CDATA		#IMPLIED
+	%local.status.attrib;"
+>
+<!ENTITY % width.attrib
+	"width		CDATA		#IMPLIED">
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+<!ELEMENT title (%title.char.mix;)*>
+<!ATTLIST title
+		%pagenum.attrib;
+		%common.attrib;
+		%title.role.attrib;
+		%local.title.attrib;
+>
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!ATTLIST subtitle
+		%common.attrib;
+		%subtitle.role.attrib;
+		%local.subtitle.attrib;
+>
+<!ENTITY % local.bibliomixed.attrib "">
+<!ENTITY % bibliomixed.role.attrib "%role.attrib;">
+<!ATTLIST bibliomixed
+		%common.attrib;
+		%bibliomixed.role.attrib;
+		%local.bibliomixed.attrib;
+>
+<!ENTITY % local.articleinfo.attrib "">
+<!ENTITY % articleinfo.role.attrib "%role.attrib;">
+<!ATTLIST articleinfo
+		%common.attrib;
+		%articleinfo.role.attrib;
+		%local.articleinfo.attrib;
+>
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ATTLIST bibliomset
+		relation	CDATA		#IMPLIED
+		%bibliomset.role.attrib;
+		%common.attrib;
+		%local.bibliomset.attrib;
+>
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!ATTLIST bibliomisc
+		%common.attrib;
+		%bibliomisc.role.attrib;
+		%local.bibliomisc.attrib;
+>
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+<!ELEMENT subjectset (subject+)>
+<!ATTLIST subjectset
+		scheme		NMTOKEN		#IMPLIED
+		%common.attrib;
+		%subjectset.role.attrib;
+		%local.subjectset.attrib;
+>
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+<!ELEMENT subject (subjectterm+)>
+<!ATTLIST subject
+		weight		CDATA		#IMPLIED
+		%common.attrib;
+		%subject.role.attrib;
+		%local.subject.attrib;
+>
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+<!ELEMENT subjectterm (#PCDATA)>
+<!ATTLIST subjectterm
+		%common.attrib;
+		%subjectterm.role.attrib;
+		%local.subjectterm.attrib;
+>
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+<!ELEMENT keywordset (keyword+)>
+<!ATTLIST keywordset
+		%common.attrib;
+		%keywordset.role.attrib;
+		%local.keywordset.attrib;
+>
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+<!ELEMENT keyword (#PCDATA)>
+<!ATTLIST keyword
+		%common.attrib;
+		%keyword.role.attrib;
+		%local.keyword.attrib;
+>
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+<!ATTLIST sidebar
+		%common.attrib;
+		%sidebar.role.attrib;
+		%local.sidebar.attrib;
+>
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!ATTLIST abstract
+		%common.attrib;
+		%abstract.role.attrib;
+		%local.abstract.attrib;
+>
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!ATTLIST authorblurb
+		%common.attrib;
+		%authorblurb.role.attrib;
+		%local.authorblurb.attrib;
+>
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!ATTLIST blockquote
+		%common.attrib;
+		%blockquote.role.attrib;
+		%local.blockquote.attrib;
+>
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+<!ELEMENT attribution (%para.char.mix;)*>
+<!ATTLIST attribution
+		%common.attrib;
+		%attribution.role.attrib;
+		%local.attribution.attrib;
+>
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!ATTLIST epigraph
+		%common.attrib;
+		%epigraph.role.attrib;
+		%local.epigraph.attrib;
+>
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!ATTLIST footnote
+		%label.attrib;
+		%common.attrib;
+		%footnote.role.attrib;
+		%local.footnote.attrib;
+>
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+<!ATTLIST para
+		%common.attrib;
+		%para.role.attrib;
+		%local.para.attrib;
+>
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!ATTLIST note
+		%common.attrib;
+		%admon.role.attrib;
+		%local.admon.attrib;
+>
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+<!ELEMENT itemizedlist ((%formalobject.title.content;)?, listitem+)>
+<!ATTLIST itemizedlist		spacing		(normal
+				|compact)	#IMPLIED
+		%mark.attrib;
+		%common.attrib;
+		%itemizedlist.role.attrib;
+		%local.itemizedlist.attrib;
+>
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+<!ELEMENT orderedlist ((%formalobject.title.content;)?, listitem+)>
+<!ATTLIST orderedlist
+		numeration	(arabic
+				|upperalpha
+				|loweralpha
+				|upperroman
+				|lowerroman)	#IMPLIED
+		inheritnum	(inherit
+				|ignore)	"ignore"
+		continuation	(continues
+				|restarts)	"restarts"
+		spacing		(normal
+				|compact)	#IMPLIED
+		%common.attrib;
+		%orderedlist.role.attrib;
+		%local.orderedlist.attrib;
+>
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+<!ELEMENT listitem ((%component.mix;)+)>
+<!ATTLIST listitem
+		override	CDATA		#IMPLIED
+		%common.attrib;
+		%listitem.role.attrib;
+		%local.listitem.attrib;
+>
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!ATTLIST variablelist
+		termlength	CDATA		#IMPLIED
+		%common.attrib;
+		%variablelist.role.attrib;
+		%local.variablelist.attrib;
+>
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+<!ELEMENT varlistentry (term+, listitem)>
+<!ATTLIST varlistentry
+		%common.attrib;
+		%varlistentry.role.attrib;
+		%local.varlistentry.attrib;
+>
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+<!ELEMENT term (%para.char.mix;)*>
+<!ATTLIST term
+		%common.attrib;
+		%term.role.attrib;
+		%local.term.attrib;
+>
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!ATTLIST example
+		%label.attrib;
+		%width.attrib;
+		%common.attrib;
+		%example.role.attrib;
+		%local.example.attrib;
+>
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+<!ATTLIST programlisting
+		%width.attrib;
+		%linespecific.attrib;
+		%common.attrib;
+		%programlisting.role.attrib;
+		%local.programlisting.attrib;
+>
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+<!ATTLIST literallayout
+		%width.attrib;
+		%linespecific.attrib;
+		class	(monospaced|normal)	"normal"
+		%common.attrib;
+		%literallayout.role.attrib;
+		%local.literallayout.attrib;
+>
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+		%link.char.class;)+)>
+<!ATTLIST figure
+		float		%yesorno.attvals;	'0'
+		pgwide      	%yesorno.attvals;       #IMPLIED
+		%label.attrib;
+		%common.attrib;
+		%figure.role.attrib;
+		%local.figure.attrib;
+>
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+<!ELEMENT mediaobject (objectinfo?,
+                           (%mediaobject.mix;),
+			   (%mediaobject.mix;|textobject)*,
+			   caption?)>
+<!ATTLIST mediaobject
+		%common.attrib;
+		%mediaobject.role.attrib;
+		%local.mediaobject.attrib;
+>
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+<!ELEMENT inlinemediaobject (objectinfo?,
+                	         (%mediaobject.mix;),
+				 (%mediaobject.mix;|textobject)*)>
+<!ATTLIST inlinemediaobject
+		%common.attrib;
+		%inlinemediaobject.role.attrib;
+		%local.inlinemediaobject.attrib;
+>
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!ATTLIST videoobject
+		%common.attrib;
+		%videoobject.role.attrib;
+		%local.videoobject.attrib;
+>
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!ATTLIST audioobject
+		%common.attrib;
+		%audioobject.role.attrib;
+		%local.audioobject.attrib;
+>
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!ATTLIST imageobject
+		%common.attrib;
+		%imageobject.role.attrib;
+		%local.imageobject.attrib;
+>
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!ATTLIST textobject
+		%common.attrib;
+		%textobject.role.attrib;
+		%local.textobject.attrib;
+>
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+<!ATTLIST objectinfo
+		%common.attrib;
+		%objectinfo.role.attrib;
+		%local.objectinfo.attrib;
+>
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+	"
+	entityref	ENTITY		#IMPLIED
+	fileref 	CDATA		#IMPLIED
+	format		(%notation.class;)
+					#IMPLIED
+	srccredit	CDATA		#IMPLIED
+	%local.objectdata.attrib;"
+>
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+<!ELEMENT videodata EMPTY>
+<!ATTLIST videodata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%videodata.role.attrib;
+		%local.videodata.attrib;
+>
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+<!ELEMENT audiodata EMPTY>
+<!ATTLIST audiodata
+		%common.attrib;
+		%objectdata.attrib;
+		%local.audiodata.attrib;
+		%audiodata.role.attrib;
+>
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+<!ELEMENT imagedata EMPTY>
+<!ATTLIST imagedata
+		%common.attrib;
+		%objectdata.attrib;
+	width		CDATA		#IMPLIED
+	depth		CDATA		#IMPLIED
+	align		(left
+			|right 
+			|center)	#IMPLIED
+	scale		CDATA		#IMPLIED
+	scalefit	%yesorno.attvals;
+					#IMPLIED
+		%local.imagedata.attrib;
+		%imagedata.role.attrib;
+>
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+<!ELEMENT caption (%textobject.mix;)*>
+<!ATTLIST caption
+		%common.attrib;
+		%local.caption.attrib;
+		%caption.role.attrib;
+>
+<!ENTITY % tables.role.attrib "%role.attrib;">
+<!ENTITY % bodyatt 
+	"%common.attrib;
+	%label.attrib;
+	%tables.role.attrib;">
+<!ENTITY % common.table.attribs
+	"%bodyatt;">
+<!ENTITY % tbl.tgroup.att       "%common.attrib;">
+<!ENTITY % tbl.colspec.att      "%common.attrib;">
+<!ENTITY % tbl.tbody.att        "%common.attrib;">
+<!ENTITY % tbl.thead.att        "%common.attrib;">
+<!ENTITY % tbl.row.att          "%common.attrib;">
+<!ENTITY % tbl.entry.att        "%common.attrib;">
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+<!ENTITY % yesorno 'NMTOKEN'>
+<!ENTITY % tbl.table.name       "table">
+<!ENTITY % tbl.table.att        "
+    pgwide      %yesorno;       #IMPLIED ">
+<!ENTITY % tbl.tgroup.mdl       "colspec*,thead?,tbody">
+<!ENTITY % tbl.row.mdl          "entry+">
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+<!ATTLIST %tbl.table.name;
+        frame           (top|bottom|topbot|all|sides|none)      #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        %tbl.table.att;
+        %bodyatt;
+>
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+<!ATTLIST tgroup
+        cols            NMTOKEN                                 #REQUIRED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        %tbl.tgroup.att;
+>
+<!ELEMENT colspec EMPTY >
+<!ATTLIST colspec
+        colnum          NMTOKEN                                 #IMPLIED
+        colname         NMTOKEN                                 #IMPLIED
+        colwidth        CDATA                                   #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        %tbl.colspec.att;
+>
+<!ELEMENT thead (row+)>
+<!ATTLIST thead
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.thead.att;
+>
+<!ELEMENT tbody (row+)>
+<!ATTLIST tbody
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.tbody.att;
+>
+<!ELEMENT row (%tbl.row.mdl;)>
+<!ATTLIST row
+        rowsep          %yesorno;                               #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.row.att;
+>
+<!ELEMENT entry %tbl.entry.mdl;>
+<!ATTLIST entry
+        colname         NMTOKEN                                 #IMPLIED
+        namest          NMTOKEN                                 #IMPLIED
+        nameend         NMTOKEN                                 #IMPLIED
+        morerows        NMTOKEN                                 #IMPLIED
+        colsep          %yesorno;                               #IMPLIED
+        rowsep          %yesorno;                               #IMPLIED
+        align           (left|right|center|justify|char)        #IMPLIED
+        char            CDATA                                   #IMPLIED
+        charoff         NMTOKEN                                 #IMPLIED
+        valign          (top|middle|bottom)                     #IMPLIED
+        %tbl.entry.att;
+>
+<!ENTITY % local.informaltable.attrib "">
+<!ATTLIST informaltable
+		frame		(top
+				|bottom
+				|topbot
+				|all
+				|sides
+				|none)			#IMPLIED
+		colsep		%yesorno.attvals;	#IMPLIED
+		rowsep		%yesorno.attvals;	#IMPLIED
+		%common.table.attribs;
+		%tbl.table.att;
+		%local.informaltable.attrib;
+>
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+<!ATTLIST affiliation
+		%common.attrib;
+		%affiliation.role.attrib;
+		%local.affiliation.attrib;
+>
+<!ENTITY % local.jobtitle.attrib "">
+<!ENTITY % jobtitle.role.attrib "%role.attrib;">
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!ATTLIST jobtitle
+		%common.attrib;
+		%jobtitle.role.attrib;
+		%local.jobtitle.attrib;
+>
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!ATTLIST author
+		%common.attrib;
+		%author.role.attrib;
+		%local.author.attrib;
+>
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+<!ATTLIST authorgroup
+		%common.attrib;
+		%authorgroup.role.attrib;
+		%local.authorgroup.attrib;
+>
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!ATTLIST authorinitials
+		%common.attrib;
+		%authorinitials.role.attrib;
+		%local.authorinitials.attrib;
+>
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+<!ELEMENT copyright (year+, holder*)>
+<!ATTLIST copyright
+		%common.attrib;
+		%copyright.role.attrib;
+		%local.copyright.attrib;
+>
+<!ENTITY % local.year.attrib "">
+<!ENTITY % year.role.attrib "%role.attrib;">
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!ATTLIST year
+		%common.attrib;
+		%year.role.attrib;
+		%local.year.attrib;
+>
+<!ENTITY % local.holder.attrib "">
+<!ENTITY % holder.role.attrib "%role.attrib;">
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!ATTLIST holder
+		%common.attrib;
+		%holder.role.attrib;
+		%local.holder.attrib;
+>
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!ATTLIST corpauthor
+		%common.attrib;
+		%corpauthor.role.attrib;
+		%local.corpauthor.attrib;
+>
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!ATTLIST date
+		%common.attrib;
+		%date.role.attrib;
+		%local.date.attrib;
+>
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!ATTLIST edition
+		%common.attrib;
+		%edition.role.attrib;
+		%local.edition.attrib;
+>
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!ATTLIST editor
+		%common.attrib;
+		%editor.role.attrib;
+		%local.editor.attrib;
+>
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!ATTLIST issuenum
+		%common.attrib;
+		%issuenum.role.attrib;
+		%local.issuenum.attrib;
+>
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!ATTLIST legalnotice
+		%common.attrib;
+		%legalnotice.role.attrib;
+		%local.legalnotice.attrib;
+>
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!ATTLIST orgname
+		%common.attrib;
+		%orgname.role.attrib;
+		%local.orgname.attrib;
+>
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!ATTLIST othercredit
+		%common.attrib;
+		%othercredit.role.attrib;
+		%local.othercredit.attrib;
+>
+<!ENTITY % local.firstname.attrib "">
+<!ENTITY % firstname.role.attrib "%role.attrib;">
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!ATTLIST firstname
+		%common.attrib;
+		%firstname.role.attrib;
+		%local.firstname.attrib;
+>
+<!ENTITY % local.honorific.attrib "">
+<!ENTITY % honorific.role.attrib "%role.attrib;">
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!ATTLIST honorific
+		%common.attrib;
+		%honorific.role.attrib;
+		%local.honorific.attrib;
+>
+<!ENTITY % local.lineage.attrib "">
+<!ENTITY % lineage.role.attrib "%role.attrib;">
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!ATTLIST lineage
+		%common.attrib;
+		%lineage.role.attrib;
+		%local.lineage.attrib;
+>
+<!ENTITY % local.othername.attrib "">
+<!ENTITY % othername.role.attrib "%role.attrib;">
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!ATTLIST othername
+		%common.attrib;
+		%othername.role.attrib;
+		%local.othername.attrib;
+>
+<!ENTITY % local.surname.attrib "">
+<!ENTITY % surname.role.attrib "%role.attrib;">
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!ATTLIST surname
+		%common.attrib;
+		%surname.role.attrib;
+		%local.surname.attrib;
+>
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!ATTLIST pubdate
+		%common.attrib;
+		%pubdate.role.attrib;
+		%local.pubdate.attrib;
+>
+<!ENTITY % local.publishername.attrib "">
+<!ENTITY % publishername.role.attrib "%role.attrib;">
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!ATTLIST publishername
+		%common.attrib;
+		%publishername.role.attrib;
+		%local.publishername.attrib;
+>
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!ATTLIST releaseinfo
+		%common.attrib;
+		%releaseinfo.role.attrib;
+		%local.releaseinfo.attrib;
+>
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+<!ELEMENT revhistory (revision+)>
+<!ATTLIST revhistory
+		%common.attrib;
+		%revhistory.role.attrib;
+		%local.revhistory.attrib;
+>
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+<!ELEMENT revision (revnumber, date, authorinitials*, 
+                    (revremark|revdescription)?)>
+<!ATTLIST revision
+		%common.attrib;
+		%revision.role.attrib;
+		%local.revision.attrib;
+>
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!ATTLIST revnumber
+		%common.attrib;
+		%revnumber.role.attrib;
+		%local.revnumber.attrib;
+>
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!ATTLIST revremark
+		%common.attrib;
+		%revremark.role.attrib;
+		%local.revremark.attrib;
+>
+<!ENTITY % local.revdescription.attrib "">
+<!ENTITY % revdescription.role.attrib "%role.attrib;">
+<!ELEMENT revdescription ((%revdescription.mix;)+)>
+<!ATTLIST revdescription
+		%common.attrib;
+		%revdescription.role.attrib;
+		%local.revdescription.attrib;
+>
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!ATTLIST volumenum
+		%common.attrib;
+		%volumenum.role.attrib;
+		%local.volumenum.attrib;
+>
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+<!ELEMENT command (%cptr.char.mix;)*>
+<!ATTLIST command
+		%moreinfo.attrib;
+		%common.attrib;
+		%command.role.attrib;
+		%local.command.attrib;
+>
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!ATTLIST computeroutput
+		%moreinfo.attrib;
+		%common.attrib;
+		%computeroutput.role.attrib;
+		%local.computeroutput.attrib;
+>
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!ATTLIST email
+		%common.attrib;
+		%email.role.attrib;
+		%local.email.attrib;
+>
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+<!ELEMENT filename (%smallcptr.char.mix;)*>
+<!ATTLIST filename
+		class		(headerfile
+                                |devicefile
+                                |libraryfile
+                                |directory
+				|symlink)       #IMPLIED
+		path		CDATA		#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%filename.role.attrib;
+		%local.filename.attrib;
+>
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!ATTLIST lineannotation
+		%common.attrib;
+		%lineannotation.role.attrib;
+		%local.lineannotation.attrib;
+>
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!ATTLIST literal
+		%moreinfo.attrib;
+		%common.attrib;
+		%literal.role.attrib;
+		%local.literal.attrib;
+>
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+<!ELEMENT option (%smallcptr.char.mix;)*>
+<!ATTLIST option
+		%common.attrib;
+		%option.role.attrib;
+		%local.option.attrib;
+>
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+<!ATTLIST replaceable
+		class		(command
+				|function
+				|option
+				|parameter)	#IMPLIED
+		%common.attrib;
+		%replaceable.role.attrib;
+		%local.replaceable.attrib;
+>
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+<!ATTLIST systemitem
+		class	(constant
+			|groupname
+                        |library
+			|macro
+			|osname
+			|resource
+			|systemname
+                        |username)	#IMPLIED
+		%moreinfo.attrib;
+		%common.attrib;
+		%systemitem.role.attrib;
+		%local.systemitem.attrib;
+>
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!ATTLIST userinput
+		%moreinfo.attrib;
+		%common.attrib;
+		%userinput.role.attrib;
+		%local.userinput.attrib;
+>
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!ATTLIST abbrev
+		%common.attrib;
+		%abbrev.role.attrib;
+		%local.abbrev.attrib;
+>
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+<!ELEMENT acronym (%word.char.mix;)*>
+<!ATTLIST acronym
+		%common.attrib;
+		%acronym.role.attrib;
+		%local.acronym.attrib;
+>
+<!ENTITY % local.refentrytitle.attrib "">
+<!ENTITY % refentrytitle.role.attrib "%role.attrib;">
+<!ELEMENT refentrytitle (%para.char.mix;)*>
+<!ATTLIST refentrytitle
+		%common.attrib;
+		%refentrytitle.role.attrib;
+		%local.refentrytitle.attrib;
+>
+<!ENTITY % local.manvolnum.attrib "">
+<!ENTITY % namvolnum.role.attrib "%role.attrib;">
+<!ELEMENT manvolnum (%word.char.mix;)*>
+<!ATTLIST manvolnum
+		%common.attrib;
+		%namvolnum.role.attrib;
+		%local.manvolnum.attrib;
+>
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!ATTLIST citetitle
+		pubwork		(article
+				|book
+				|chapter
+				|part
+				|refentry
+				|section
+				|journal
+				|series
+				|set
+				|manuscript)	#IMPLIED
+		%common.attrib;
+		%citetitle.role.attrib;
+		%local.citetitle.attrib;
+>
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!ATTLIST emphasis
+		%common.attrib;
+		%emphasis.role.attrib;
+		%local.emphasis.attrib;
+>
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+<!ELEMENT phrase (%para.char.mix;)*>
+<!ATTLIST phrase
+		%common.attrib;
+		%phrase.role.attrib;
+		%local.phrase.attrib;
+>
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+<!ELEMENT quote (%para.char.mix;)*>
+<!ATTLIST quote
+		%common.attrib;
+		%quote.role.attrib;
+		%local.quote.attrib;
+>
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+<!ATTLIST trademark
+		class		(service
+				|trade
+				|registered
+				|copyright)	'trade'
+		%common.attrib;
+		%trademark.role.attrib;
+		%local.trademark.attrib;
+>
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+<!ELEMENT link (%para.char.mix;)*>
+<!ATTLIST link
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		type		CDATA		#IMPLIED
+		%common.attrib;
+		%link.role.attrib;
+		%local.link.attrib;
+>
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+<!ELEMENT ulink (%para.char.mix;)*>
+<!ATTLIST ulink
+		url		CDATA		#REQUIRED
+		type		CDATA		#IMPLIED
+		%common.attrib;
+		%ulink.role.attrib;
+		%local.ulink.attrib;
+>
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+<!ELEMENT xref EMPTY>
+<!ATTLIST xref
+		endterm		IDREF		#IMPLIED
+		%linkendreq.attrib;		%common.attrib;
+		%xref.role.attrib;
+		%local.xref.attrib;
+>
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class	"appendix %local.appendix.class;">
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % refname.char.mix
+		"#PCDATA
+		|%tech.char.class;
+		%local.refname.char.mix;">
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+<!ATTLIST appendix
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%appendix.role.attrib;
+		%local.appendix.attrib;
+>
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+<!ATTLIST section
+		%label.attrib;
+		%status.attrib;
+		%common.attrib;
+		%section.role.attrib;
+		%local.section.attrib;
+>
+<!ENTITY % local.bibliography.attrib "">
+<!ENTITY % bibliography.role.attrib "%role.attrib;">
+<!ATTLIST bibliography
+		%status.attrib;
+		%common.attrib;
+		%bibliography.role.attrib;
+		%local.bibliography.attrib;
+>
+<!ENTITY % local.bibliodiv.attrib "">
+<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
+<!ATTLIST bibliodiv
+		%status.attrib;
+		%common.attrib;
+		%bibliodiv.role.attrib;
+		%local.bibliodiv.attrib;
+>
+<!ENTITY % local.refentry.attrib "">
+<!ENTITY % refentry.role.attrib "%role.attrib;">
+<!ATTLIST refentry
+		%status.attrib;
+		%common.attrib;
+		%refentry.role.attrib;
+		%local.refentry.attrib;
+>
+<!ENTITY % local.refmeta.attrib "">
+<!ENTITY % refmeta.role.attrib "%role.attrib;">
+<!ATTLIST refmeta
+		%common.attrib;
+		%refmeta.role.attrib;
+		%local.refmeta.attrib;
+>
+<!ENTITY % local.refmiscinfo.attrib "">
+<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
+<!ELEMENT refmiscinfo (%docinfo.char.mix;)*>
+<!ATTLIST refmiscinfo
+		class		CDATA		#IMPLIED
+		%common.attrib;
+		%refmiscinfo.role.attrib;
+		%local.refmiscinfo.attrib;
+>
+<!ENTITY % local.refnamediv.attrib "">
+<!ENTITY % refnamediv.role.attrib "%role.attrib;">
+<!ATTLIST refnamediv
+		%common.attrib;
+		%refnamediv.role.attrib;
+		%local.refnamediv.attrib;
+>
+<!ENTITY % local.refdescriptor.attrib "">
+<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
+<!ELEMENT refdescriptor (%refname.char.mix;)*>
+<!ATTLIST refdescriptor
+		%common.attrib;
+		%refdescriptor.role.attrib;
+		%local.refdescriptor.attrib;
+>
+<!ENTITY % local.refname.attrib "">
+<!ENTITY % refname.role.attrib "%role.attrib;">
+<!ELEMENT refname (%refname.char.mix;)*>
+<!ATTLIST refname
+		%common.attrib;
+		%refname.role.attrib;
+		%local.refname.attrib;
+>
+<!ENTITY % local.refpurpose.attrib "">
+<!ENTITY % refpurpose.role.attrib "%role.attrib;">
+<!ELEMENT refpurpose (%refinline.char.mix;)*>
+<!ATTLIST refpurpose
+		%common.attrib;
+		%refpurpose.role.attrib;
+		%local.refpurpose.attrib;
+>
+<!ENTITY % local.refclass.attrib "">
+<!ENTITY % refclass.role.attrib "%role.attrib;">
+<!ELEMENT refclass (%refclass.char.mix;)*>
+<!ATTLIST refclass
+		%common.attrib;
+		%refclass.role.attrib;
+		%local.refclass.attrib;
+>
+<!ENTITY % local.refsynopsisdiv.attrib "">
+<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
+<!ELEMENT refsynopsisdiv (refsynopsisdivinfo?, (%refsect.title.content;)?,
+		(((%refcomponent.mix;)+, refsect2*) | (refsect2+)))>
+<!ATTLIST refsynopsisdiv
+		%common.attrib;
+		%refsynopsisdiv.role.attrib;
+		%local.refsynopsisdiv.attrib;
+>
+<!ENTITY % local.refsect1.attrib "">
+<!ENTITY % refsect1.role.attrib "%role.attrib;">
+<!ELEMENT refsect1 (refsect1info?, (%refsect.title.content;),
+		(((%refcomponent.mix;)+, refsect2*) | refsect2+))>
+<!ATTLIST refsect1
+		%status.attrib;
+		%common.attrib;
+		%refsect1.role.attrib;
+		%local.refsect1.attrib;
+>
+<!ENTITY % local.refsect2.attrib "">
+<!ENTITY % refsect2.role.attrib "%role.attrib;">
+<!ELEMENT refsect2 (refsect2info?, (%refsect.title.content;),
+	(((%refcomponent.mix;)+, refsect3*) | refsect3+))>
+<!ATTLIST refsect2
+		%status.attrib;
+		%common.attrib;
+		%refsect2.role.attrib;
+		%local.refsect2.attrib;
+>
+<!ENTITY % local.refsect3.attrib "">
+<!ENTITY % refsect3.role.attrib "%role.attrib;">
+<!ELEMENT refsect3 (refsect3info?, (%refsect.title.content;), 
+	(%refcomponent.mix;)+)>
+<!ATTLIST refsect3
+		%status.attrib;
+		%common.attrib;
+		%refsect3.role.attrib;
+		%local.refsect3.attrib;
+>
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+<!ATTLIST article
+		class		(journalarticle
+				|productsheet
+				|whitepaper
+				|techreport
+                                |specification
+				|faq)		#IMPLIED
+		parentbook	IDREF		#IMPLIED
+		%status.attrib;
+		%common.attrib;
+		%article.role.attrib;
+		%local.article.attrib;
+>
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT section (sectioninfo?,
+			(%sect.title.content;),
+			(((%divcomponent.mix;)+, section*)
+			 | section+))>
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+	| keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+<!ELEMENT para (%para.char.mix;)*>
+<!ELEMENT informaltable (mediaobject+|tgroup+) >
+<!ELEMENT replaceable (#PCDATA 
+		| %link.char.class; 
+		| inlinemediaobject)*>
+<!ELEMENT trademark (#PCDATA 
+		| %link.char.class; 
+		| %tech.char.class;
+		| inlinemediaobject
+		| emphasis)*>
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+<!ELEMENT article ((%div.title.content;)?, articleinfo?,
+		       (%bookcomponent.content;),
+		       ((%appendix.class;)|bibliography)*)>
+<!ELEMENT articleinfo ((mediaobject | legalnotice
+	| subjectset | keywordset | %bibliocomponent.mix;)+)>
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+		(%bookcomponent.content;))>
+<!ELEMENT bibliography ((%bookcomponent.title.content;)?,
+                        (%component.mix;)*,
+                        (bibliodiv+ | bibliomixed+))>
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+		(bibliomixed)+)>
+<!ELEMENT sidebar ((%formalobject.title.content;)?,
+                   (%sidebar.mix;)+)>
+<!ELEMENT programlisting (%para.char.mix; | lineannotation)*>
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sinclist.mod
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sinclist.mod	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/sinclist.mod	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,284 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML Inclusions V4.1.2.4
+     Part of the Simplified DocBook XML V4.1.2.4 DTD
+     http://nwalsh.com/docbook/simple/
+
+     See COPYRIGHT for more information
+
+     Please direct all questions and comments about this DTD to
+     Norman Walsh, <ndw at nwalsh.com>.
+                                                                            -->
+<!-- ====================================================================== -->
+
+<!ENTITY % titleabbrev.module "IGNORE">
+
+<!ENTITY % biblioset.module "IGNORE">
+<!ENTITY % isbn.module "IGNORE">
+<!ENTITY % issn.module "IGNORE">
+<!ENTITY % pagenums.module "IGNORE">
+<!ENTITY % simplelist.content.module "IGNORE">
+<!ENTITY % anchor.module "IGNORE">
+<!ENTITY % procedure.content.module "IGNORE">
+<!ENTITY % publisher.module "IGNORE">
+<!ENTITY % printhistory.module "IGNORE">
+<!ENTITY % address.content.module "IGNORE">
+<!ENTITY % glossterm.module "IGNORE">
+<!ENTITY % bibliomixed.element "IGNORE">
+<!ENTITY % bibliography.element "IGNORE">
+<!ENTITY % bibliodiv.element "IGNORE">
+<!ENTITY % biblioentry.module "IGNORE">
+<!ENTITY % glossary.content.module "IGNORE">
+<!ENTITY % glossentry.content.module "IGNORE">
+<!ENTITY % ssscript.module "IGNORE">
+<!ENTITY % caution.element "IGNORE">
+<!ENTITY % caution.attlist "IGNORE">
+<!ENTITY % important.element "IGNORE">
+<!ENTITY % important.attlist "IGNORE">
+<!ENTITY % tip.element "IGNORE">
+<!ENTITY % tip.attlist "IGNORE">
+<!ENTITY % warning.element "IGNORE">
+<!ENTITY % warning.attlist "IGNORE">
+<!ENTITY % remark.module "IGNORE">
+<!ENTITY % otherinfo.module "IGNORE">
+<!ENTITY % set.content.module "IGNORE">
+<!ENTITY % set.module "IGNORE">
+<!ENTITY % setinfo.module "IGNORE">
+<!ENTITY % book.content.module "IGNORE">
+<!ENTITY % book.module "IGNORE">
+<!ENTITY % bookinfo.module "IGNORE">
+<!ENTITY % dedication.module "IGNORE">
+<!ENTITY % colophon.module "IGNORE">
+<!ENTITY % toc.content.module "IGNORE">
+<!ENTITY % toc.module "IGNORE">
+<!ENTITY % tocfront.module "IGNORE">
+<!ENTITY % tocentry.module "IGNORE">
+<!ENTITY % tocpart.module "IGNORE">
+<!ENTITY % tocchap.module "IGNORE">
+<!ENTITY % toclevel1.module "IGNORE">
+<!ENTITY % toclevel2.module "IGNORE">
+<!ENTITY % toclevel3.module "IGNORE">
+<!ENTITY % toclevel4.module "IGNORE">
+<!ENTITY % toclevel5.module "IGNORE">
+<!ENTITY % tocback.module "IGNORE">
+<!ENTITY % lot.content.module "IGNORE">
+<!ENTITY % lot.module "IGNORE">
+<!ENTITY % lotentry.module "IGNORE">
+<!ENTITY % chapter.module "IGNORE">
+<!ENTITY % part.module "IGNORE">
+<!ENTITY % preface.module "IGNORE">
+<!ENTITY % reference.module "IGNORE">
+<!ENTITY % partintro.module "IGNORE">
+<!ENTITY % sect1.module "IGNORE">
+<!ENTITY % sect2.module "IGNORE">
+<!ENTITY % sect3.module "IGNORE">
+<!ENTITY % sect4.module "IGNORE">
+<!ENTITY % sect5.module "IGNORE">
+<!ENTITY % simplesect.module "IGNORE">
+<!ENTITY % index.content.module "IGNORE">
+<!ENTITY % indexes.module "IGNORE">
+<!ENTITY % indexdiv.module "IGNORE">
+<!ENTITY % indexentry.module "IGNORE">
+<!ENTITY % primsecterie.module "IGNORE">
+<!ENTITY % seeie.module "IGNORE">
+<!ENTITY % seealsoie.module "IGNORE">
+
+<![ %exclude.refentry; [
+<!ENTITY % refentry.content.module "IGNORE">
+<!ENTITY % refentry.module "IGNORE">
+<!ENTITY % refmeta.module "IGNORE">
+<!ENTITY % refmiscinfo.module "IGNORE">
+<!ENTITY % refnamediv.module "IGNORE">
+<!ENTITY % refdescriptor.module "IGNORE">
+<!ENTITY % refname.module "IGNORE">
+<!ENTITY % refpurpose.module "IGNORE">
+<!ENTITY % refclass.module "IGNORE">
+<!ENTITY % refsynopsisdiv.module "IGNORE">
+<!ENTITY % refsect1.module "IGNORE">
+<!ENTITY % refsect2.module "IGNORE">
+<!ENTITY % refsect3.module "IGNORE">
+<!ENTITY % refentrytitle.module "IGNORE">
+<!ENTITY % manvolnum.module "IGNORE">
+]]>
+
+<!ENTITY % bookbiblio.module "IGNORE">
+<!ENTITY % seriesinfo.module "IGNORE">
+<!ENTITY % itermset.module "IGNORE">
+<!ENTITY % msgset.content.module "IGNORE">
+<!ENTITY % msgset.module "IGNORE">
+<!ENTITY % msgentry.module "IGNORE">
+<!ENTITY % msg.module "IGNORE">
+<!ENTITY % msgmain.module "IGNORE">
+<!ENTITY % msgsub.module "IGNORE">
+<!ENTITY % msgrel.module "IGNORE">
+<!ENTITY % msginfo.module "IGNORE">
+<!ENTITY % msglevel.module "IGNORE">
+<!ENTITY % msgorig.module "IGNORE">
+<!ENTITY % msgaud.module "IGNORE">
+<!ENTITY % msgexplan.module "IGNORE">
+<!ENTITY % qandset.content.module "IGNORE">
+<!ENTITY % qandset.module "IGNORE">
+<!ENTITY % qandadiv.module "IGNORE">
+<!ENTITY % qandaentry.module "IGNORE">
+<!ENTITY % question.module "IGNORE">
+<!ENTITY % answer.module "IGNORE">
+<!ENTITY % label.module "IGNORE">
+<!ENTITY % bridgehead.module "IGNORE">
+<!ENTITY % highlights.module "IGNORE">
+<!ENTITY % formalpara.module "IGNORE">
+<!ENTITY % simpara.module "IGNORE">
+<!ENTITY % glosslist.module "IGNORE">
+<!ENTITY % segmentedlist.content.module "IGNORE">
+<!ENTITY % segmentedlist.module "IGNORE">
+<!ENTITY % segtitle.module "IGNORE">
+<!ENTITY % seglistitem.module "IGNORE">
+<!ENTITY % seg.module "IGNORE">
+<!ENTITY % calloutlist.content.module "IGNORE">
+<!ENTITY % calloutlist.module "IGNORE">
+<!ENTITY % callout.module "IGNORE">
+<!ENTITY % informalexample.module "IGNORE">
+<!ENTITY % programlistingco.module "IGNORE">
+<!ENTITY % areaspec.content.module "IGNORE">
+<!ENTITY % areaspec.module "IGNORE">
+<!ENTITY % area.module "IGNORE">
+<!ENTITY % areaset.module "IGNORE">
+<!ENTITY % screenco.module "IGNORE">
+<!ENTITY % screen.module "IGNORE">
+<!ENTITY % screenshot.content.module "IGNORE">
+<!ENTITY % screenshot.module "IGNORE">
+<!ENTITY % screeninfo.module "IGNORE">
+<!ENTITY % informalfigure.module "IGNORE">
+<!ENTITY % graphicco.module "IGNORE">
+<!ENTITY % graphic.module "IGNORE">
+<!ENTITY % equation.module "IGNORE">
+<!ENTITY % informalequation.module "IGNORE">
+<!ENTITY % inlineequation.module "IGNORE">
+<!ENTITY % inlinegraphic.module "IGNORE">
+<!ENTITY % alt.module "IGNORE">
+<!ENTITY % synopsis.module "IGNORE">
+<!ENTITY % cmdsynopsis.content.module "IGNORE">
+<!ENTITY % cmdsynopsis.module "IGNORE">
+<!ENTITY % arg.module "IGNORE">
+<!ENTITY % group.module "IGNORE">
+<!ENTITY % sbr.module "IGNORE">
+<!ENTITY % synopfragmentref.module "IGNORE">
+<!ENTITY % synopfragment.module "IGNORE">
+<!ENTITY % funcsynopsis.content.module "IGNORE">
+<!ENTITY % funcsynopsis.module "IGNORE">
+<!ENTITY % funcsynopsisinfo.module "IGNORE">
+<!ENTITY % funcprototype.module "IGNORE">
+<!ENTITY % funcdef.module "IGNORE">
+<!ENTITY % void.module "IGNORE">
+<!ENTITY % varargs.module "IGNORE">
+<!ENTITY % paramdef.module "IGNORE">
+<!ENTITY % funcparams.module "IGNORE">
+<!ENTITY % ackno.module "IGNORE">
+<!ENTITY % affiliation.element "IGNORE">
+  <!ENTITY % shortaffil.module "IGNORE">
+  <!ENTITY % orgdiv.module "IGNORE">
+<!ENTITY % artpagenums.module "IGNORE">
+  <!ENTITY % collab.content.module "IGNORE">
+  <!ENTITY % collab.module "IGNORE">
+    <!ENTITY % collabname.module "IGNORE">
+<!ENTITY % confgroup.content.module "IGNORE">
+<!ENTITY % confgroup.module "IGNORE">
+  <!ENTITY % confdates.module "IGNORE">
+  <!ENTITY % conftitle.module "IGNORE">
+  <!ENTITY % confnum.module "IGNORE">
+  <!ENTITY % confsponsor.module "IGNORE">
+<!ENTITY % contractnum.module "IGNORE">
+<!ENTITY % contractsponsor.module "IGNORE">
+<!ENTITY % corpname.module "IGNORE">
+<!ENTITY % invpartnumber.module "IGNORE">
+<!ENTITY % modespec.module "IGNORE">
+  <!ENTITY % contrib.module "IGNORE">
+<!ENTITY % productname.module "IGNORE">
+<!ENTITY % productnumber.module "IGNORE">
+<!ENTITY % pubsnumber.module "IGNORE">
+<!ENTITY % seriesvolnums.module "IGNORE">
+<!ENTITY % accel.module "IGNORE">
+<!ENTITY % action.module "IGNORE">
+<!ENTITY % application.module "IGNORE">
+<!ENTITY % classname.module "IGNORE">
+<!ENTITY % co.module "IGNORE">
+<!ENTITY % database.module "IGNORE">
+<!ENTITY % envar.module "IGNORE">
+<!ENTITY % errorcode.module "IGNORE">
+<!ENTITY % errorname.module "IGNORE">
+<!ENTITY % errortype.module "IGNORE">
+<!ENTITY % function.module "IGNORE">
+<!ENTITY % guibutton.module "IGNORE">
+<!ENTITY % guiicon.module "IGNORE">
+<!ENTITY % guilabel.module "IGNORE">
+<!ENTITY % guimenu.module "IGNORE">
+<!ENTITY % guimenuitem.module "IGNORE">
+<!ENTITY % guisubmenu.module "IGNORE">
+<!ENTITY % hardware.module "IGNORE">
+<!ENTITY % interface.module "IGNORE">
+<!ENTITY % interfacedefinition.module "IGNORE">
+<!ENTITY % keycap.module "IGNORE">
+<!ENTITY % keycode.module "IGNORE">
+<!ENTITY % keycombo.module "IGNORE">
+<!ENTITY % keysym.module "IGNORE">
+<!ENTITY % constant.module "IGNORE">
+<!ENTITY % varname.module "IGNORE">
+<!ENTITY % markup.module "IGNORE">
+<!ENTITY % mediaobjectco.module "IGNORE">
+<!ENTITY % imageobjectco.module "IGNORE">
+<!ENTITY % medialabel.module "IGNORE">
+<!ENTITY % menuchoice.content.module "IGNORE">
+<!ENTITY % menuchoice.module "IGNORE">
+<!ENTITY % shortcut.module "IGNORE">
+<!ENTITY % mousebutton.module "IGNORE">
+<!ENTITY % msgtext.module "IGNORE">
+<!ENTITY % optional.module "IGNORE">
+<!ENTITY % parameter.module "IGNORE">
+<!ENTITY % prompt.module "IGNORE">
+<!ENTITY % property.module "IGNORE">
+<!ENTITY % returnvalue.module "IGNORE">
+<!ENTITY % sgmltag.module "IGNORE">
+<!ENTITY % structfield.module "IGNORE">
+<!ENTITY % structname.module "IGNORE">
+<!ENTITY % symbol.module "IGNORE">
+<!ENTITY % token.module "IGNORE">
+<!ENTITY % type.module "IGNORE">
+<!ENTITY % citation.module "IGNORE">
+<!ENTITY % citerefentry.module "IGNORE">
+<!ENTITY % firstterm.module "IGNORE">
+<!ENTITY % foreignphrase.module "IGNORE">
+<!ENTITY % wordasword.module "IGNORE">
+<!ENTITY % olink.module "IGNORE">
+<!ENTITY % footnoteref.module "IGNORE">
+<!ENTITY % beginpage.module "IGNORE">
+<!ENTITY % indexterm.content.module "IGNORE">
+<!ENTITY % indexterm.module "IGNORE">
+<!ENTITY % primsecter.module "IGNORE">
+<!ENTITY % seeseealso.module "IGNORE">
+
+<!-- new in 4.0 -->
+<!ENTITY % classsynopsis.content.module "IGNORE">
+
+<!ENTITY % bibliographyinfo.module "IGNORE">
+<!ENTITY % chapterinfo.module "IGNORE">
+<!ENTITY % glossaryinfo.module "IGNORE">
+<!ENTITY % indexinfo.module "IGNORE">
+<!ENTITY % partinfo.module "IGNORE">
+<!ENTITY % prefaceinfo.module "IGNORE">
+<!ENTITY % refentryinfo.module "IGNORE">
+<!ENTITY % referenceinfo.module "IGNORE">
+<!ENTITY % refsect1info.module "IGNORE">
+<!ENTITY % refsect2info.module "IGNORE">
+<!ENTITY % refsect3info.module "IGNORE">
+<!ENTITY % refsynopsisdivinfo.module "IGNORE">
+<!ENTITY % sect1info.element "IGNORE">
+<!ENTITY % sect1info.attlist "IGNORE">
+<!ENTITY % sect2info.element "IGNORE">
+<!ENTITY % sect2info.attlist "IGNORE">
+<!ENTITY % sect3info.element "IGNORE">
+<!ENTITY % sect3info.attlist "IGNORE">
+<!ENTITY % sect4info.element "IGNORE">
+<!ENTITY % sect4info.attlist "IGNORE">
+<!ENTITY % sect5info.element "IGNORE">
+<!ENTITY % sect5info.attlist "IGNORE">
+<!ENTITY % sectioninfo.module "IGNORE">
+<!ENTITY % setindexinfo.module "IGNORE">
+<!ENTITY % sidebarinfo.module "IGNORE">

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/test.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/test.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/test.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<!DOCTYPE article 
+          PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+          "sdocbook.dtd">
+<article><title>Article Title</title>
+<para>Paragraph.</para>
+</article>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testcss.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testcss.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testcss.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,52 @@
+<!DOCTYPE article 
+          PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+          "sdocbook.dtd">
+<?xml-stylesheet href="sdocbook.css" type="text/css"?>
+<article>
+<title>foo</title>
+<para>This is a pargraph</para>
+<literallayout>
+59 North Street
+Belchertown, MA 01007
+</literallayout>
+<section><title>sect1</title>
+<para>This is a paragraph.</para>
+<section><title>sect2</title>
+<para>This is a paragraph.</para>
+<blockquote><para>This is a block quote.</para></blockquote>
+<para>This is a paragraph.</para>
+<section><title>sect3</title>
+<para>This is a paragraph with a <citetitle>title citation</citetitle>,
+a <command>command</command>, and some <computeroutput>computer output</computeroutput>.
+</para>
+<section><title>sect4</title>
+<itemizedlist>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+</itemizedlist>
+<section><title>sect5</title>
+<orderedlist>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+</orderedlist>
+<section><title>sect6</title>
+
+<informaltable>
+<tgroup cols="3">
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+
+</section>
+</section>
+</section>
+</section>
+</section>
+</section>
+</article>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testcust.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testcust.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testcust.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<!DOCTYPE article SYSTEM "sdocbook-custom.dtd">
+<article><title>Article Title</title>
+<para>Paragraph.</para>
+</article>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testrefcust.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testrefcust.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/4.1.2.4/testrefcust.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<!DOCTYPE refentry SYSTEM "sdocbookref-custom.dtd">
+<refentry>
+<refnamediv>
+<refname>test</refname>
+<refpurpose>just testing</refpurpose>
+</refnamediv>
+<refsect1><title>description</title>
+<para>just a test.</para>
+</refsect1>
+</refentry>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,304 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+SUBDIRS = 3.1.7.1  4.1.2.4 
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/simple/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive  \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	dot_seen=no; \
+	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+	  rev="$$subdir $$rev"; \
+	  test "$$subdir" = "." && dot_seen=yes; \
+	done; \
+	test "$$dot_seen" = "no" && rev=". $$rev"; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	here=`pwd` && cd $(srcdir) \
+	  && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+   if test "$$subdir" = .; then :; else \
+	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+   fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+	-rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/simple
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/simple/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+	for subdir in $(SUBDIRS); do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d $(distdir)/$$subdir \
+	    || mkdir $(distdir)/$$subdir \
+	    || exit 1; \
+	    chmod 777 $(distdir)/$$subdir; \
+	    (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am:
+install-data: install-data-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile
+all-redirect: all-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am:  clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am:  distclean-tags distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-recursive
+
+maintainer-clean-am:  maintainer-clean-tags maintainer-clean-generic \
+		distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+
+.PHONY: install-data-recursive uninstall-data-recursive \
+install-exec-recursive uninstall-exec-recursive installdirs-recursive \
+uninstalldirs-recursive all-recursive check-recursive \
+installcheck-recursive info-recursive dvi-recursive \
+mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/dtd/simple/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,304 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+SUBDIRS = 3.1.7.1  4.1.2.4 
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/dtd/simple/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+ at SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive  \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@set fnord $(MAKEFLAGS); amf=$$2; \
+	dot_seen=no; \
+	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+	  rev="$$subdir $$rev"; \
+	  test "$$subdir" = "." && dot_seen=yes; \
+	done; \
+	test "$$dot_seen" = "no" && rev=". $$rev"; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP)
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	here=`pwd` && cd $(srcdir) \
+	  && mkid -f$$here/ID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+   if test "$$subdir" = .; then :; else \
+	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+   fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)'; \
+	unique=`for i in $$list; do echo $$i; done | \
+	  awk '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+	-rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/dtd/simple
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/dtd/simple/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+	for subdir in $(SUBDIRS); do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d $(distdir)/$$subdir \
+	    || mkdir $(distdir)/$$subdir \
+	    || exit 1; \
+	    chmod 777 $(distdir)/$$subdir; \
+	    (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+info-am:
+info: info-recursive
+dvi-am:
+dvi: dvi-recursive
+check-am: all-am
+check: check-recursive
+installcheck-am:
+installcheck: installcheck-recursive
+install-exec-am:
+install-exec: install-exec-recursive
+
+install-data-am:
+install-data: install-data-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-recursive
+uninstall-am:
+uninstall: uninstall-recursive
+all-am: Makefile
+all-redirect: all-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs: installdirs-recursive
+installdirs-am:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-tags mostlyclean-generic
+
+mostlyclean: mostlyclean-recursive
+
+clean-am:  clean-tags clean-generic mostlyclean-am
+
+clean: clean-recursive
+
+distclean-am:  distclean-tags distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-recursive
+
+maintainer-clean-am:  maintainer-clean-tags maintainer-clean-generic \
+		distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-recursive
+
+.PHONY: install-data-recursive uninstall-data-recursive \
+install-exec-recursive uninstall-exec-recursive installdirs-recursive \
+uninstalldirs-recursive all-recursive check-recursive \
+installcheck-recursive info-recursive dvi-recursive \
+mostlyclean-recursive distclean-recursive clean-recursive \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+install-exec install-data-am install-data install-am install \
+uninstall-am uninstall all-redirect all-am all installdirs-am \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,124 @@
+2001-06-14  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* sections.xsl: Bug fix: section autolabelling wasn't working in division bodies
+
+	* titlepage.templates.xml: Changed text-alignment on centered titles to be 'center' rather than 'justify'
+
+	* xref.xsl: Added anchor template
+
+2001-06-13  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* graphics.xsl, param.xsl: Support Arbortext extensions--at the moment, just to turn off the url() stuff in external graphic references
+
+	* titlepage.xsl: Bug fix: make a single author in an authorgroup work correctly
+
+2001-06-08  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* callout.xsl, inline.xsl, synop.xsl: Fixed some unparameterized references to specific font families
+
+2001-06-04  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* block.xsl: Made blockquote indent more reasonable
+
+	* graphics.xsl: Omit the url() wrapper around external-graphic srcs for FOP and PT
+
+2001-05-23  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* graphics.xsl: Fix dup. template bug with is.graphic.*
+
+	* titlepage.xsl: Add template for publisher
+
+2001-05-21  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* callout.xsl, verbatim.xsl: Move calculation of linenumber.* parameters into the number.rtf.lines template
+
+	* titlepage.templates.xml: Reworked titlepage template processing to support use of more interesting
+	predicates.
+	
+	Note: in previous versions, at most one title, subtitle, or titleabbrev
+	element would be processed for each title page. In the new design, if you
+	have multiple title, subtitle, or titleabbrev elements inside an info
+	wrapper (you shouldn't!), they will all be processed.
+
+2001-05-18  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* sections.xsl: Fix subtitle bug
+
+2001-05-12  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* sections.xsl: Calculate the heading level for bridgeheads
+
+2001-05-04  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* docbook.xsl: Replace hardcoded values on fo:root with parameters
+
+2001-05-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* biblio.xsl: Render author names correctly in bibliomixed mode
+
+	* graphics.xsl: Tweak available graphics formats
+
+	* inline.xsl: Added support for class="xmlpi" and "emptytag".
+	Rendering of attributes is in sync with HTML stylesheet (monospace instead of normal).
+
+	* param.xsl, verbatim.xsl: Created verbatim and monospace.verbatim property sets
+
+	* table.xsl: Process head/body/foot in the right order
+
+2001-04-26  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* lists.xsl: Improve procedure step/substep enumeration
+
+2001-04-21  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* qandaset.xsl: My first crude attempts at support for qandaset
+
+2001-04-20  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* autoidx.xsl: Remove variable references from key functions; use entities instead.
+
+2001-04-19  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* inline.xsl: Add template for constant
+
+2001-04-17  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* component.xsl, division.xsl: Add templates for partinfo, chapterinfo, and appendixinfo
+
+	* component.xsl, pagesetup.xsl: Use the new gentext scheme for component titles and running headers
+
+	* docbook.xsl: Print warning message when an unhandled tag is encountered
+
+	* docbook.xsl, param.xsl: Move label.from.part parameter into param.xsl; default it to 0 so that chapters and appendixes are numbered monotonically throughout a book by default. Moved param.xsl up in the include list, just for good measure
+
+2001-04-16  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* glossary.xsl: Improve formatting of glossseealso
+
+	* table.xsl: Fix typo: used xsl:param where xsl:variable was required
+
+2001-04-15  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* division.xsl: Use new toc/lot parameters
+
+	* docbook.xsl: Removed unused variable declaration
+
+	* formal.xsl: Fixed typo
+
+	* param.xsl: Added some new parameters
+
+	* toc.xsl: Support DocBook toc markup
+
+2001-04-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* callout.xsl: Fix bug 412487, make XSL-generated callout marks honor callout mark parameters
+
+	* param.xsl: Documentation fixes
+
+2001-04-02  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* .cvsignore, Makefile, admon.xsl, autoidx.xsl, autotoc.xsl, biblio.xsl, block.xsl, callout.xsl, component.xsl, division.xsl, docbook.xsl, fo.xsl, footnote.xsl, fop.xsl, formal.xsl, glossary.xsl, graphics.xsl, index.xsl, info.xsl, inline.xsl, keywords.xsl, lists.xsl, math.xsl, pagesetup.xsl, param.xsl, pi.xsl, qandaset.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.templates.xml, titlepage.xsl, toc.xsl, verbatim.xsl, xref.xsl: 
+	New file.
+
+	* Makefile: Use the cvstools version of saxon
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/LostLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/LostLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/LostLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,196 @@
+2000-08-29  Norman Walsh  <ndw at nwalsh.com>
+
+	* biblio.xsl, component.xsl, division.xsl: Fixed erroneous flow-name
+
+	* graphics.xsl: Fixed fo:external-graphic so that it's a proper URI
+
+2000-08-08  Norman Walsh  <ndw at nwalsh.com>
+
+	* biblio.xsl, component.xsl, docbook.xsl, titlepage.article.xsl: 
+	Support articleinfo
+
+	* xref.xsl: Support new ulink semantics; an empty ulink prints the URL as its content
+
+2000-07-21  Norman Walsh  <ndw at nwalsh.com>
+
+	* biblio.xsl: Support bibliographyinfo; improve handling of copyright holders
+
+	* glossary.xsl: Support glossaryinfo
+
+	* lists.xsl: Support list titles
+
+	* table.xsl: Support tfoot
+
+	* titlepage.xsl: Improve handling of copyright holders
+
+2000-07-12  Norman Walsh  <ndw at nwalsh.com>
+
+	* biblio.xsl, component.xsl, division.xsl, glossary.xsl, index.xsl, refentry.xsl: 
+	Fixed typo in text-align-last; added required master-name to page-sequences
+
+	* docbook.xsl: Added page-sequence-master for alternating left and right pages
+
+	* formal.xsl: Added keep-together for formal objects and tables
+
+2000-06-25  Norman Walsh  <ndw at nwalsh.com>
+
+	* docbook.xsl: Fixed typo in text-align; added (empty) qandaset.xsl
+
+	* param.xsl: Added qanda params
+
+	* table.xsl: Fixed bugs in colwidth calculations
+
+	* xref.xsl: Added title.xref and number.xref
+
+2000-06-22  Norman Walsh  <ndw at nwalsh.com>
+
+	* qandaset.xsl: New file.
+
+2000-05-07  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, autotoc.xsl, biblio.xsl, block.xsl, component.xsl, division.xsl, docbook.xsl, footnote.xsl, glossary.xsl, graphics.xsl, index.xsl, info.xsl, inline.xsl, lists.xsl, param.xsl, refentry.xsl, synop.xsl, titlepage.xsl, verbatim.xsl, xref.xsl: 
+	Fixed XSL 1.0 PR FOs
+
+	* table.xsl: Fixed column-numbering on fo:table-columns
+
+2000-04-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* biblio.xsl: Add ID to biblioentries
+
+	* docbook.xsl: Add indent=yes to xsl:output
+
+	* formal.xsl: Better support for proportional column widths
+
+	* lists.xsl: Fixed simplelist formatting
+
+	* param.xsl: Added check.idref
+
+	* table.xsl: Added comment
+
+	* xref.xsl: Improved XREF handling
+
+2000-03-23  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, inline.xsl, param.xsl, refentry.xsl, synop.xsl: 
+	Change boolean stylesheet variables to use 0/1 instead of true()/false() to avoid representation issues when setting them from the command line
+
+	* inline.xsl: Added support for some DocBook 4.0 elements
+
+	* table.xsl: Support proportional column widths as per the last call draft of XSL
+
+	* verbatim.xsl: Fix typo in white-space-treatement proprety name
+
+2000-01-27  Norman Walsh  <ndw at nwalsh.com>
+
+	* autotoc.xsl, division.xsl: Attempts to add auto TOC. Unfinished.
+
+	* docbook.xsl: Only request a single font (work around annoying bug in FOP). I'll go back to the list when FOP fixes this or there are other commonly used FO formatters that don't have this bug.
+
+	* glossary.xsl: Added vars to control glossary list term width; fiddled with spacing
+
+	* lists.xsl: Remove pre-space before first para in a listitem
+
+	* param.xsl: Added section.label.includes.component.label
+
+	* titlepage.xsl: Fiddled with vertical spacing
+
+1999-12-28  Norman Walsh  <ndw at nwalsh.com>
+
+	* component.xsl, division.xsl, formal.xsl, sections.xsl, xref.xsl: 
+	Updated to use new title generation code from common.xsl
+
+	* inline.xsl: Fixed name/match typo
+
+	* param.xsl: Added part.autolabel and preface.autolabel
+
+1999-11-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, autotoc.xsl, biblio.xsl, block.xsl, callout.xsl, component.xsl, division.xsl, docbook.xsl, fo.xsl, footnote.xsl, formal.xsl, glossary.xsl, graphics.xsl, index.xsl, info.xsl, inline.xsl, keywords.xsl, lists.xsl, math.xsl, param.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.article.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.section.xsl, titlepage.set.xsl, titlepage.xsl, toc.xsl, verbatim.xsl, xref.xsl: 
+	Added version number to xsl:stylesheet
+
+1999-11-02  Norman Walsh  <ndw at nwalsh.com>
+
+	* component.xsl: Support label attribute on components
+
+	* lists.xsl: More simplelist fixes
+
+	* param.xsl: Renamed refentry.function parameter to refentry.xref.manvolnum; added chapter.autolabel
+
+	* refentry.xsl: Renamed refentry.function parameter to refentry.xref.manvolnum
+
+	* sections.xsl: Support label attribute on sections
+
+1999-10-22  Norman Walsh  <ndw at nwalsh.com>
+
+	* lists.xsl: Updated support for simplelist
+
+1999-10-20  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, autotoc.xsl, biblio.xsl, block.xsl, callout.xsl, component.xsl, division.xsl, fo.xsl, footnote.xsl, formal.xsl, glossary.xsl, graphics.xsl, index.xsl, info.xsl, inline.xsl, keywords.xsl, lists.xsl, math.xsl, param.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.article.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.section.xsl, titlepage.set.xsl, titlepage.xsl, toc.xsl, verbatim.xsl, xref.xsl: 
+	Update URI in all the included modules
+
+1999-10-18  Norman Walsh  <ndw at nwalsh.com>
+
+	* docbook.xsl: Added xsl:output, fixed URI for PR
+
+1999-08-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl: Added indents around admonitions
+
+	* docbook.xsl: Removed default-space attribute
+
+	* graphics.xsl: Added primitive support for graphics
+
+	* lists.xsl: Fixed name/select bug on with-param, added vspace around lists
+
+	* verbatim.xsl: Added vspace
+
+	* xref.xsl: Added URL in [] after a ulink
+
+1999-08-11  Norman Walsh  <ndw at nwalsh.com>
+
+	* docbook.xsl: Fixed buggy attr. value
+
+	* graphics.xsl: Attempt to support graphics
+
+	* lists.xsl: Add space before lists, fix buggy call-templates, fix buggy name/match missmatch
+
+	* titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.set.xsl: 
+	Removed unused named templates
+
+	* titlepage.xsl: Fix buggy table construction in revhistory
+
+	* verbatim.xsl: Added proper font, alignment, whitespace, and wrap treatment for verbatim env.
+
+1999-07-31  Norman Walsh  <ndw at nwalsh.com>
+
+	* division.xsl, glossary.xsl, lists.xsl: Fix serious bug in select expression
+
+1999-07-27  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, autotoc.xsl, biblio.xsl, component.xsl, division.xsl, docbook.xsl, fo.xsl, footnote.xsl, formal.xsl, glossary.xsl, index.xsl, inline.xsl, lists.xsl, param.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.article.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.section.xsl, titlepage.set.xsl, titlepage.xsl, xref.xsl: 
+	Updated to July spec. Misc. other changes to get more IDs in the FO tree for linking
+
+1999-07-18  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, inline.xsl, titlepage.xsl: Mode bugs
+
+1999-07-16  Norman Walsh  <ndw at nwalsh.com>
+
+	* biblio.xsl, formal.xsl, glossary.xsl, table.xsl, titlepage.xsl: 
+	A few more fixes
+
+1999-07-15  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, autotoc.xsl, biblio.xsl, block.xsl, callout.xsl, component.xsl, division.xsl, docbook.xsl, footnote.xsl, formal.xsl, glossary.xsl, graphics.xsl, index.xsl, info.xsl, inline.xsl, keywords.xsl, lists.xsl, param.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.article.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.section.xsl, titlepage.set.xsl, titlepage.xsl, toc.xsl, verbatim.xsl, xref.xsl: 
+	Extensive changes to actually produce FOs instead of HTML!
+
+1999-07-14  Norman Walsh  <ndw at nwalsh.com>
+
+	* fo.xsl, html.xsl: Renamed
+
+1999-07-02  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, autotoc.xsl, biblio.xsl, block.xsl, callout.xsl, component.xsl, division.xsl, docbook.xsl, footnote.xsl, formal.xsl, glossary.xsl, graphics.xsl, html.xsl, index.xsl, info.xsl, inline.xsl, keywords.xsl, lists.xsl, math.xsl, param.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.article.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.section.xsl, titlepage.set.xsl, titlepage.xsl, verbatim.xsl, xref.xsl: 
+	New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/admon.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/admon.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/admon.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,116 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: admon.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="note|important|warning|caution|tip">
+  <xsl:choose>
+    <xsl:when test="$admon.graphics != 0">
+      <xsl:call-template name="graphical.admonition"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="nongraphical.admonition"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="admon.graphic.width">
+  <xsl:param name="node" select="."/>
+  <xsl:text>36pt</xsl:text>
+</xsl:template>
+
+<xsl:template name="admon.graphic">
+  <xsl:param name="node" select="."/>
+  <xsl:value-of select="$admon.graphics.path"/>
+  <xsl:choose>
+    <xsl:when test="name($node)='note'">note</xsl:when>
+    <xsl:when test="name($node)='warning'">warning</xsl:when>
+    <xsl:when test="name($node)='caution'">caution</xsl:when>
+    <xsl:when test="name($node)='tip'">tip</xsl:when>
+    <xsl:when test="name($node)='important'">important</xsl:when>
+    <xsl:otherwise>note</xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$admon.graphics.extension"/>
+</xsl:template>
+
+<xsl:template name="graphical.admonition">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <fo:table>
+      <fo:table-body>
+        <fo:table-row>
+          <fo:table-cell number-rows-spanned="2">
+            <fo:block>
+              <fo:external-graphic width="auto" height="auto">
+                <xsl:attribute name="src">
+                  <xsl:call-template name="admon.graphic"/>
+                </xsl:attribute>
+                <xsl:attribute name="content-width">
+                  <xsl:call-template name="admon.graphic.width"/>
+                </xsl:attribute>
+              </fo:external-graphic>
+            </fo:block>
+          </fo:table-cell>
+          <fo:table-cell>
+            <fo:block>
+              <xsl:apply-templates select="." mode="object.title.markup"/>
+            </fo:block>
+          </fo:table-cell>
+        </fo:table-row>
+        <fo:table-row>
+          <fo:table-cell number-columns-spanned="2">
+            <fo:block>
+              <xsl:apply-templates/>
+            </fo:block>
+          </fo:table-cell>
+        </fo:table-row>
+      </fo:table-body>
+    </fo:table>
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="nongraphical.admonition">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block space-before.minimum="0.8em"
+            space-before.optimum="1em"
+            space-before.maximum="1.2em"
+            start-indent="0.25in"
+            end-indent="0.25in"
+            id="{$id}">
+    <fo:block font-size="14pt" font-weight="bold" keep-with-next='always'>
+      <xsl:apply-templates select="." mode="object.title.markup"/>
+    </fo:block>
+
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="note/title"></xsl:template>
+<xsl:template match="important/title"></xsl:template>
+<xsl:template match="warning/title"></xsl:template>
+<xsl:template match="caution/title"></xsl:template>
+<xsl:template match="tip/title"></xsl:template>
+
+<xsl:template match="title" mode="admonition.title.mode">
+  <fo:block font-size="14pt" font-weight="bold" keep-with-next='always'>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/autoidx.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/autoidx.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/autoidx.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+
+<!ENTITY lowercase "'abcdefghijklmnopqrstuvwxyz'">
+<!ENTITY uppercase "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'">
+
+<!ENTITY primary   'concat(primary/@sortas, primary[not(@sortas)])'>
+<!ENTITY secondary 'concat(secondary/@sortas, secondary[not(@sortas)])'>
+<!ENTITY tertiary  'concat(tertiary/@sortas, tertiary[not(@sortas)])'>
+
+<!ENTITY section   '(ancestor-or-self::set
+                     |ancestor-or-self::book
+                     |ancestor-or-self::part
+                     |ancestor-or-self::reference
+                     |ancestor-or-self::partintro
+                     |ancestor-or-self::chapter
+                     |ancestor-or-self::appendix
+                     |ancestor-or-self::preface
+                     |ancestor-or-self::section
+                     |ancestor-or-self::sect1
+                     |ancestor-or-self::sect2
+                     |ancestor-or-self::sect3
+                     |ancestor-or-self::sect4
+                     |ancestor-or-self::sect5
+                     |ancestor-or-self::refsect1
+                     |ancestor-or-self::refsect2
+                     |ancestor-or-self::refsect3
+                     |ancestor-or-self::simplesect
+                     |ancestor-or-self::bibliography
+                     |ancestor-or-self::glossary
+                     |ancestor-or-self::index)[last()]'>
+
+<!ENTITY section.id 'generate-id(&section;)'>
+<!ENTITY sep '" "'>
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version="1.0">
+
+<xsl:import href="docbook.xsl"/>
+
+<!-- ==================================================================== -->
+<!-- Derived from Jeni Tennison's work in the HTML case -->
+
+<xsl:key name="letter"
+         match="indexterm"
+         use="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+
+<xsl:key name="primary"
+         match="indexterm"
+         use="&primary;"/>
+
+<xsl:key name="secondary"
+         match="indexterm"
+         use="concat(&primary;, &sep;, &secondary;)"/>
+
+<xsl:key name="tertiary"
+         match="indexterm"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+
+<xsl:key name="primary-section"
+         match="indexterm[not(secondary) and not(see)]"
+         use="concat(&primary;, &sep;, &section.id;)"/>
+
+<xsl:key name="secondary-section"
+         match="indexterm[not(tertiary) and not(see)]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &section.id;)"/>
+
+<xsl:key name="tertiary-section"
+         match="indexterm[not(see)]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, &section.id;)"/>
+
+<xsl:key name="see-also"
+         match="indexterm[seealso]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso)"/>
+
+<xsl:key name="see"
+         match="indexterm[see]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see)"/>
+
+<xsl:key name="sections" match="*[@id]" use="@id"/>
+
+<xsl:template name="generate-index">
+  <xsl:variable name="terms" select="//indexterm[count(.|key('letter',
+                                     translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;))[1]) = 1]"/>
+  <xsl:variable name="alphabetical"
+                select="$terms[contains(concat(&lowercase;, &uppercase;),
+                                        substring(&primary;, 1, 1))]"/>
+  <xsl:variable name="others" select="$terms[not(contains(concat(&lowercase;,
+                                                 &uppercase;),
+                                             substring(&primary;, 1, 1)))]"/>
+  <fo:block>
+    <xsl:if test="$others">
+      <fo:block font-size="16pt"
+                font-weight="bold"
+                keep-with-next.within-column="always"
+                space-before="1em">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'index symbols'"/>
+        </xsl:call-template>
+      </fo:block>
+      <fo:block>
+        <xsl:apply-templates select="$others[count(.|key('primary',
+                                     &primary;)[1]) = 1]"
+                             mode="index-primary">
+          <xsl:sort select="&primary;"/>
+        </xsl:apply-templates>
+      </fo:block>
+    </xsl:if>
+    <xsl:apply-templates select="$alphabetical[count(.|key('letter',
+                                 translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;))[1]) = 1]"
+                         mode="index-div">
+      <xsl:sort select="&primary;"/>
+    </xsl:apply-templates>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div">
+  <xsl:variable name="key" select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+  <fo:block>
+    <!-- this isn't quite exactly right. ideally all the symbols would -->
+    <!-- be grouped together. as it stands, they all get separate divs -->
+    <!-- but at least this test makes sure that they don't all get     -->
+    <!-- separate titles as well. -->
+    <xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)">
+      <fo:block font-size="16pt"
+                font-weight="bold"
+                keep-with-next.within-column="always"
+                space-before="1em">
+        <xsl:value-of select="translate($key, &lowercase;, &uppercase;)"/>
+      </fo:block>
+    </xsl:if>
+    <fo:block>
+      <xsl:apply-templates select="key('letter', $key)[count(.|key('primary', &primary;)[1]) = 1]"
+                           mode="index-primary">
+        <xsl:sort select="&primary;"/>
+      </xsl:apply-templates>
+    </fo:block>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-primary">
+  <xsl:variable name="key" select="&primary;"/>
+  <xsl:variable name="refs" select="key('primary', $key)"/>
+  <fo:block>
+    <xsl:value-of select="primary"/>
+
+    <xsl:variable name="page-number-citations">
+      <xsl:for-each select="$refs[generate-id() = generate-id(key('primary-section', concat($key, &sep;, &section.id;))[1])]">
+        <xsl:apply-templates select="." mode="reference"/>
+      </xsl:for-each>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test="$passivetex.extensions != '0'">
+        <fotex:sort xmlns:fotex="http://www.tug.org/fotex">
+          <xsl:copy-of select="$page-number-citations"/>
+        </fotex:sort>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$page-number-citations"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+  <xsl:if test="$refs/secondary or $refs[not(secondary)]/*[self::see or self::seealso]">
+    <fo:block start-indent="1pc">
+      <fo:block>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &sep;, &sep;, see))[1])]"
+                             mode="index-see">
+          <xsl:sort select="see"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &sep;, &sep;, seealso))[1])]"
+                             mode="index-seealso">
+          <xsl:sort select="seealso"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, &sep;, &secondary;))[1]) = 1]" 
+                             mode="index-secondary">
+          <xsl:sort select="&secondary;"/>
+        </xsl:apply-templates>
+      </fo:block>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-secondary">
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;)"/>
+  <xsl:variable name="refs" select="key('secondary', $key)"/>
+  <fo:block>
+    <xsl:value-of select="secondary"/>
+
+    <xsl:variable name="page-number-citations">
+      <xsl:for-each select="$refs[generate-id() = generate-id(key('secondary-section', concat($key, &sep;, &section.id;))[1])]">
+        <xsl:apply-templates select="." mode="reference"/>
+      </xsl:for-each>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test="$passivetex.extensions != '0'">
+        <fotex:sort xmlns:fotex="http://www.tug.org/fotex">
+          <xsl:copy-of select="$page-number-citations"/>
+        </fotex:sort>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$page-number-citations"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+  <xsl:if test="$refs/tertiary or $refs[not(tertiary)]/*[self::see or self::seealso]">
+    <fo:block start-indent="2pc">
+      <fo:block>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, see))[1])]"
+                             mode="index-see">
+          <xsl:sort select="see"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, seealso))[1])]"
+                             mode="index-seealso">
+          <xsl:sort select="seealso"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, &sep;, &tertiary;))[1]) = 1]" 
+                             mode="index-tertiary">
+          <xsl:sort select="&tertiary;"/>
+        </xsl:apply-templates>
+      </fo:block>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-tertiary">
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+  <xsl:variable name="refs" select="key('tertiary', $key)"/>
+  <fo:block>
+    <xsl:value-of select="tertiary"/>
+
+    <xsl:variable name="page-number-citations">
+      <xsl:for-each select="$refs[generate-id() = generate-id(key('tertiary-section', concat($key, &sep;, &section.id;))[1])]">
+        <xsl:apply-templates select="." mode="reference"/>
+      </xsl:for-each>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test="$passivetex.extensions != '0'">
+        <fotex:sort xmlns:fotex="http://www.tug.org/fotex">
+          <xsl:copy-of select="$page-number-citations"/>
+        </fotex:sort>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$page-number-citations"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+  <xsl:variable name="see" select="$refs/see | $refs/seealso"/>
+  <xsl:if test="$see">
+    <fo:block>
+      <fo:block>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see))[1])]"
+                             mode="index-see">
+          <xsl:sort select="see"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso))[1])]"
+                             mode="index-seealso">
+          <xsl:sort select="seealso"/>
+        </xsl:apply-templates>
+      </fo:block>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="reference">
+  <xsl:if test="$passivetex.extensions = '0'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="@zone and string(@zone)">
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id"/>
+      </xsl:variable>
+      <fo:page-number-citation ref-id="{$id}"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="reference">
+  <xsl:param name="zones"/>
+  <xsl:choose>
+    <xsl:when test="contains($zones, ' ')">
+      <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$target[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <fo:page-number-citation ref-id="{$id}"/>
+
+      <xsl:if test="$passivetex.extensions = '0'">
+        <xsl:text>, </xsl:text>
+      </xsl:if>
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="zone" select="$zones"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <xsl:variable name="id">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$target[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+
+      <fo:page-number-citation ref-id="{$id}"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-see">
+   <fo:block><xsl:value-of select="see"/></fo:block>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-seealso">
+   <fo:block><xsl:value-of select="seealso"/></fo:block>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/autotoc.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/autotoc.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/autotoc.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,182 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: autotoc.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="division.toc">
+  <xsl:variable name="nodes"
+                select="part|reference|preface
+                        |chapter|appendix
+                        |article
+                        |bibliography|glossary|index"/>
+  <xsl:if test="$nodes">
+    <fo:block xsl:use-attribute-sets="toc.margin.properties">
+      <xsl:call-template name="table.of.contents.titlepage"/>
+      <xsl:apply-templates select="$nodes" mode="toc"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.toc">
+  <xsl:variable name="nodes" select="section|sect1|refentry
+                                     |article|bibliography|glossary
+                                     |appendix"/>
+  <xsl:if test="$nodes">
+    <fo:block xsl:use-attribute-sets="toc.margin.properties">
+      <fo:block>
+         <fo:inline font-weight="bold">
+           <xsl:call-template name="gentext">
+             <xsl:with-param name="key">TableofContents</xsl:with-param>
+           </xsl:call-template>
+         </fo:inline>
+       </fo:block>
+      <xsl:apply-templates select="$nodes" mode="toc"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="toc.line">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block text-align-last="justify"
+            end-indent="2pc"
+            last-line-end-indent="-2pc">
+    <fo:inline keep-with-next.within-line="always">
+      <xsl:apply-templates select="." mode="label.markup"/>
+      <xsl:text> </xsl:text>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </fo:inline>
+    <fo:inline keep-together.within-line="always">
+      <xsl:text> </xsl:text>
+      <fo:leader leader-pattern="dots"
+                 keep-with-next.within-line="always"/>
+      <xsl:text> </xsl:text>
+      <fo:basic-link internal-destination="{$id}">
+<!--                     xsl:use-attribute-sets="xref.properties">-->
+        <fo:page-number-citation ref-id="{$id}"/>
+      </fo:basic-link>
+    </fo:inline>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="part" mode="toc">
+  <xsl:call-template name="toc.line"/>
+
+  <xsl:if test="chapter|appendix|preface|reference">
+    <fo:block start-indent="{count(ancestor::*)*2}pc">
+      <xsl:apply-templates select="chapter|appendix|preface|reference"
+                           mode="toc"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="reference" mode="toc">
+  <xsl:call-template name="toc.line"/>
+
+  <xsl:if test="refentry">
+    <fo:block start-indent="{count(ancestor::*)*2}pc">
+      <xsl:apply-templates select="refentry" mode="toc"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refentry" mode="toc">
+  <xsl:call-template name="toc.line"/>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix|article"
+              mode="toc">
+  <xsl:call-template name="toc.line"/>
+
+  <xsl:if test="section|sect1">
+    <fo:block start-indent="{count(ancestor::*)*2}pc">
+      <xsl:apply-templates select="section|sect1"
+                           mode="toc"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section|sect1|sect2|sect3|sect4|sect5"
+              mode="toc">
+  <xsl:call-template name="toc.line"/>
+
+  <xsl:if test="section|sect2|sect3|sect4|sect5">
+    <fo:block start-indent="{count(ancestor::*)*2}pc">
+      <xsl:apply-templates select="section|sect2|sect3|sect4|sect5"
+                           mode="toc"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary"
+              mode="toc">
+  <xsl:call-template name="toc.line"/>
+</xsl:template>
+
+<xsl:template match="index"
+              mode="toc">
+  <xsl:if test="* or $generate.index">
+    <xsl:call-template name="toc.line"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="title" mode="toc">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="list.of.titles">
+  <xsl:param name="titles" select="'table'"/>
+  <xsl:param name="nodes" select=".//table"/>
+
+  <xsl:if test="$nodes">
+    <fo:block>
+      <xsl:choose>
+        <xsl:when test="$titles='table'">
+          <xsl:call-template name="list.of.tables.titlepage"/>
+        </xsl:when>
+        <xsl:when test="$titles='figure'">
+          <xsl:call-template name="list.of.figures.titlepage"/>
+        </xsl:when>
+        <xsl:when test="$titles='equation'">
+          <xsl:call-template name="list.of.equations.titlepage"/>
+        </xsl:when>
+        <xsl:when test="$titles='example'">
+          <xsl:call-template name="list.of.examples.titlepage"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="list.of.unknowns.titlepage"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:apply-templates select="$nodes" mode="toc"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation" mode="toc">
+  <xsl:call-template name="toc.line"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/biblio.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/biblio.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/biblio.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,961 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: biblio.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliography">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="bibliography.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="book/bibliography">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="bibliography.titlepage"/>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="bibliography/bibliographyinfo"></xsl:template>
+<xsl:template match="bibliography/title"></xsl:template>
+<xsl:template match="bibliography/subtitle"></xsl:template>
+<xsl:template match="bibliography/titleabbrev"></xsl:template>
+
+<xsl:template match="bibliography/title" mode="component.title.mode">
+  <fo:block xsl:use-attribute-sets="component.title.properties">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="bibliography/subtitle" mode="component.title.mode">
+  <fo:block font-size="18pt" font-weight="bold" font-style="italic">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliodiv">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="bibliodiv/title">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <fo:block font-size="16pt" font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="biblioentry">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <fo:block id="{$id}" xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="bibliomixed">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <fo:block id="{$id}" xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliography.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:text>[</xsl:text>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:text>] </xsl:text>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="address" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="artheader|articleinfo" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:call-template name="person.name"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:call-template name="person.name.list"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="biblioset/title|biblioset/citetitle" 
+              mode="bibliography.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article'">
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">ldquo</xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates/>
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">rdquo</xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:inline font-style="italic">
+        <xsl:apply-templates/>
+      </fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$biblioentry.item.separator"/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bookbiblio" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliography.mode">
+  <fo:inline>
+    <fo:inline font-style="italic">
+      <xsl:apply-templates mode="bibliography.mode"/>
+    </fo:inline>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="copyright" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Copyright'"/>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">copyright</xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="year" mode="bibliography.mode"/>
+    <xsl:if test="holder">
+      <xsl:call-template name="gentext.space"/>
+      <xsl:apply-templates select="holder" mode="bibliography.mode"/>
+    </xsl:if>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="year" mode="bibliography.mode">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="corpauthor" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:call-template name="person.name"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="seriesinfo" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliography.mode">
+  <fo:inline>
+    <fo:inline font-style="italic">
+      <xsl:apply-templates mode="bibliography.mode"/>
+    </fo:inline>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="collabname" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="confdates" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="confnum" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="bibliography.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliomixed.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="address" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:call-template name="person.name"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bibliomset" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="bibliomset/title|bibliomset/citetitle" 
+              mode="bibliomixed.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article'">
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">ldquo</xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates/>
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">rdquo</xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:inline font-style="italic">
+        <xsl:apply-templates/>
+      </fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="copyright" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliomixed.mode">
+  <fo:inline>
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/block.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/block.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/block.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,213 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: block.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="block.object">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="para">
+  <fo:block xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="simpara">
+  <fo:block xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="formalpara">
+  <fo:block xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="formalpara/title">
+  <fo:inline font-weight="bold"
+             keep-with-next.within-line="always"
+             padding-end="1em">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="formalpara/para">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="blockquote">
+  <fo:block start-indent="0.5in" end-indent="0.5in">
+    <xsl:call-template name="semiformal.object"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="epigraph">
+  <fo:block>
+    <xsl:apply-templates select="para"/>
+    <fo:inline>
+      <xsl:text>--</xsl:text>
+      <xsl:apply-templates select="attribution"/>
+    </fo:inline>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="attribution">
+  <fo:inline><xsl:apply-templates/></fo:inline>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="sidebar">
+  <fo:block>
+    <xsl:if test="./title">
+      <fo:block font-weight="bold"
+                keep-with-next.within-column="always"
+                hyphenate="false">
+        <xsl:apply-templates select="./title" mode="sidebar.title.mode"/>
+      </fo:block>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="sidebar/title">
+</xsl:template>
+
+<xsl:template match="sidebar/title" mode="sidebar.title.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="abstract">
+  <fo:block>
+    <xsl:if test="@id">
+      <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
+    </xsl:if>
+    <xsl:call-template name="formal.object.heading">
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="." mode="title.markup"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="abstract/title">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="msgset">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msg">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgmain">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgsub">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgrel">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgtext">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msginfo">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msglevel">
+  <fo:block>
+    <fo:inline font-weight="bold"
+               keep-with-next.within-line="always">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'msgset'"/>
+        <xsl:with-param name="name" select="'MsgLevel'"/>
+      </xsl:call-template>
+    </fo:inline>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="msgorig">
+  <fo:block>
+    <fo:inline font-weight="bold"
+               keep-with-next.within-line="always">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'msgset'"/>
+        <xsl:with-param name="name" select="'MsgOrig'"/>
+      </xsl:call-template>
+    </fo:inline>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="msgaud">
+  <fo:block>
+    <fo:inline font-weight="bold"
+               keep-with-next.within-line="always">
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'msgset'"/>
+        <xsl:with-param name="name" select="'MsgAud'"/>
+      </xsl:call-template>
+    </fo:inline>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="msgexplan">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgexplan/title">
+  <fo:block font-weight="bold"
+            keep-with-next.within-column="always"
+            hyphenate="false">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="highlights">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/callout.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/callout.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/callout.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,192 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim"
+                xmlns:xverb="com.nwalsh.xalan.Verbatim"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="sverb xverb lxslt"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: callout.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xverb"
+                 functions="insertCallouts"/>
+
+<xsl:template match="programlistingco|screenco">
+  <xsl:variable name="verbatim" select="programlisting|screen"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="$use.extensions != '0'
+                    and $callouts.extension != '0'">
+      <xsl:variable name="rtf">
+        <xsl:apply-templates select="$verbatim">
+          <xsl:with-param name="suppress-numbers" select="'1'"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+
+      <xsl:variable name="rtf-with-callouts">
+        <xsl:choose>
+          <xsl:when test="contains($vendor, 'SAXON ')">
+            <xsl:copy-of select="sverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+            <xsl:copy-of select="xverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message terminate="yes">
+              <xsl:text>Don't know how to do callouts with </xsl:text>
+              <xsl:value-of select="$vendor"/>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$verbatim/@linenumbering = 'numbered'
+                        and $linenumbering.extension != '0'">
+          <xsl:call-template name="number.rtf.lines">
+            <xsl:with-param name="rtf" select="$rtf-with-callouts"/>
+            <xsl:with-param name="pi.context"
+                            select="programlisting|screen"/>
+          </xsl:call-template>
+          <xsl:apply-templates select="calloutlist"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:copy-of select="$rtf-with-callouts"/>
+          <xsl:apply-templates select="calloutlist"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="areaspec|areaset|area">
+</xsl:template>
+
+<xsl:template match="areaset" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="area" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="co">
+  <fo:inline id="{@id}">
+    <xsl:apply-templates select="." mode="callout-bug"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="co" mode="callout-bug">
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:number count="co" format="1"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="callout-bug">
+  <xsl:param name="conum" select='1'/>
+
+  <xsl:choose>
+    <!-- Draw callouts as images -->
+    <xsl:when test="$callout.graphics != '0'
+                    and $conum &lt;= $callout.graphics.number.limit">
+      <fo:external-graphic
+          src="{$callout.graphics.path}{$conum}{$callout.graphics.extension}"/>
+    </xsl:when>
+
+    <xsl:when test="$callout.unicode != 0
+                    and $conum &lt;= $callout.unicode.number.limit">
+      <xsl:choose>
+        <xsl:when test="$callout.unicode.start.character = 10102">
+          <xsl:choose>
+            <xsl:when test="$conum = 1">&#10102;</xsl:when>
+            <xsl:when test="$conum = 2">&#10103;</xsl:when>
+            <xsl:when test="$conum = 3">&#10104;</xsl:when>
+            <xsl:when test="$conum = 4">&#10105;</xsl:when>
+            <xsl:when test="$conum = 5">&#10106;</xsl:when>
+            <xsl:when test="$conum = 6">&#10107;</xsl:when>
+            <xsl:when test="$conum = 7">&#10108;</xsl:when>
+            <xsl:when test="$conum = 8">&#10109;</xsl:when>
+            <xsl:when test="$conum = 9">&#10110;</xsl:when>
+            <xsl:when test="$conum = 10">&#10111;</xsl:when>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>Don't know how to generate Unicode callouts </xsl:text>
+            <xsl:text>when $callout.unicode.start.character is </xsl:text>
+            <xsl:value-of select="$callout.unicode.start.character"/>
+          </xsl:message>
+          <fo:inline background-color="#404040"
+                     color="white"
+                     padding-top="0.1em"
+                     padding-bottom="0.1em"
+                     padding-start="0.2em"
+                     padding-end="0.2em"
+                     baseline-shift="0.1em"
+                     font-family="{$body.font.family}"
+                     font-weight="bold"
+                     font-size="75%">
+            <xsl:value-of select="$conum"/>
+          </fo:inline>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <!-- Pick callouts from Zapf Dingbats - max 10 -->
+    <xsl:when test="$callout.dingbats != '0' and $conum &lt;= 10">
+      <fo:inline font-family="ZapfDingbats">
+        <xsl:choose>
+          <xsl:when test="$conum=1">&#x2776;</xsl:when>
+          <xsl:when test="$conum=2">&#x2777;</xsl:when>
+          <xsl:when test="$conum=3">&#x2778;</xsl:when>
+          <xsl:when test="$conum=4">&#x2779;</xsl:when>
+          <xsl:when test="$conum=5">&#x277A;</xsl:when>
+          <xsl:when test="$conum=6">&#x277B;</xsl:when>
+          <xsl:when test="$conum=7">&#x277C;</xsl:when>
+          <xsl:when test="$conum=8">&#x277D;</xsl:when>
+          <xsl:when test="$conum=9">&#x277E;</xsl:when>
+          <xsl:when test="$conum=10">&#x277F;</xsl:when>
+          <xsl:otherwise><!-- overflow -->
+            <xsl:attribute name="color">red</xsl:attribute>
+            <xsl:text>&#x25CF;</xsl:text>
+            <xsl:message>
+              <xsl:text>A callout list contains more than 10 callouts;</xsl:text>
+              <xsl:text> callout numbering truncated.</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </fo:inline>
+    </xsl:when>
+
+    <!-- Most safe: draw a dark gray square with a white number inside -->
+    <xsl:otherwise>
+      <fo:inline background-color="#404040"
+                 color="white"
+                 padding-top="0.1em"
+                 padding-bottom="0.1em"
+                 padding-start="0.2em"
+                 padding-end="0.2em"
+                 baseline-shift="0.1em"
+                 font-family="{$body.font.family}"
+                 font-weight="bold"
+                 font-size="75%"><xsl:value-of select="$conum"/></fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/component.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/component.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/component.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,361 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: component.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="component.title">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="$node" mode="object.title.markup"/>
+  </xsl:variable>
+
+  <xsl:if test="$passivetex.extensions != 0">
+    <fotex:bookmark xmlns:fotex="http://www.tug.org/fotex"
+                    fotex-bookmark-level="2"
+                    fotex-bookmark-label="{$id}">
+      <xsl:value-of select="$title"/>
+    </fotex:bookmark>
+  </xsl:if>
+
+  <fo:block keep-with-next.within-column="always"
+            hyphenate="false">
+    <xsl:copy-of select="$title"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="component.subtitle">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="subtitle">
+    <xsl:apply-templates select="$node" mode="subtitle.markup"/>
+  </xsl:variable>
+
+  <xsl:if test="$subtitle != ''">
+    <fo:block font-size="16pt"
+              font-weight="bold"
+              font-style="italic"
+              keep-with-next.within-column="always"
+              hyphenate="false">
+      <xsl:copy-of select="$subtitle"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.separator">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="dedication">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    format="i"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="dedication.titlepage"/>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="dedication"></xsl:template> <!-- see mode="dedication" -->
+<xsl:template match="dedication/docinfo"></xsl:template>
+<xsl:template match="dedication/title"></xsl:template>
+<xsl:template match="dedication/subtitle"></xsl:template>
+<xsl:template match="dedication/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="preface">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    format="i"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="component.separator"/>
+      <xsl:call-template name="preface.titlepage"/>
+      <xsl:if test="$generate.component.toc">
+        <xsl:call-template name="component.toc"/>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="preface/docinfo"></xsl:template>
+<xsl:template match="preface/title"></xsl:template>
+<xsl:template match="preface/titleabbrev"></xsl:template>
+<xsl:template match="preface/subtitle"></xsl:template>
+
+<xsl:template match="chapter">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="not(preceding::chapter)">
+      <xsl:attribute name="initial-page-number">1</xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="component.separator"/>
+      <xsl:call-template name="chapter.titlepage"/>
+      <xsl:if test="$generate.component.toc">
+        <xsl:call-template name="component.toc"/>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="chapter/docinfo|chapterinfo"></xsl:template>
+<xsl:template match="chapter/title"></xsl:template>
+<xsl:template match="chapter/titleabbrev"></xsl:template>
+<xsl:template match="chapter/subtitle"></xsl:template>
+
+<xsl:template match="appendix">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="component.separator"/>
+      <xsl:call-template name="appendix.titlepage"/>
+      <xsl:if test="$generate.component.toc">
+        <xsl:call-template name="component.toc"/>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="appendix/docinfo|appendixinfo"></xsl:template>
+<xsl:template match="appendix/title"></xsl:template>
+<xsl:template match="appendix/titleabbrev"></xsl:template>
+<xsl:template match="appendix/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="preface" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="chapter" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:text>.</xsl:text>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="$chapter.autolabel">
+      <xsl:number from="book" count="chapter" format="1."/>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:text>.</xsl:text>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="$chapter.autolabel">
+      <xsl:number from="book" count="appendix" format="A."/>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="glossary" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="index" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="article">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="article.titlepage"/>
+      <xsl:if test="$generate.component.toc">
+        <xsl:call-template name="component.toc"/>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="article/artheader"></xsl:template>
+<xsl:template match="article/articleinfo"></xsl:template>
+<xsl:template match="article/title"></xsl:template>
+<xsl:template match="article/subtitle"></xsl:template>
+
+<xsl:template match="article/appendix">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id='{$id}'>
+    <xsl:call-template name="section.heading">
+      <xsl:with-param name="level" select="2"/>
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="." mode="title.markup"/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/division.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/division.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/division.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,359 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: division.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="division.title">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="title">
+    <xsl:apply-templates select="$node" mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:if test="$passivetex.extensions != 0">
+    <fotex:bookmark xmlns:fotex="http://www.tug.org/fotex"
+                    fotex-bookmark-level="1"
+                    fotex-bookmark-label="{$id}">
+      <xsl:value-of select="$title"/>
+    </fotex:bookmark>
+  </xsl:if>
+
+  <fo:block keep-with-next.within-column="always"
+            hyphenate="false">
+    <xsl:copy-of select="$title"/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+  <xsl:variable name="preamble"
+                select="*[not(self::book or self::setindex)]"/>
+  <xsl:variable name="content" select="book|setindex"/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <xsl:if test="$preamble">
+    <fo:page-sequence id="{$id}"
+                      hyphenate="{$hyphenate}"
+                      master-name="{$master-name}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:if test="$double.sided != 0">
+        <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+      </xsl:if>
+
+      <xsl:apply-templates select="." mode="running.head.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates select="." mode="running.foot.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="set.titlepage"/>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+
+  <xsl:apply-templates select="$content"/>
+</xsl:template>
+
+<xsl:template match="set/setinfo"></xsl:template>
+<xsl:template match="set/title"></xsl:template>
+<xsl:template match="set/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book">
+  <xsl:variable name="preamble"
+                select="title|subtitle|titleabbrev|bookinfo"/>
+  <xsl:variable name="content"
+                select="*[not(self::title or self::subtitle
+                            or self::titleabbrev
+                            or self::bookinfo)]"/>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <xsl:if test="$preamble">
+    <fo:page-sequence id="{$id}"
+                      hyphenate="{$hyphenate}"
+                      master-name="{$master-name}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:if test="$double.sided != 0">
+        <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+      </xsl:if>
+
+      <xsl:apply-templates select="." mode="running.head.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates select="." mode="running.foot.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="book.titlepage"/>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+
+  <xsl:if test="$generate.book.toc != '0'">
+    <fo:page-sequence hyphenate="{$hyphenate}"
+                      format="i"
+                      master-name="{$master-name}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:if test="$double.sided != 0">
+        <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+      </xsl:if>
+
+      <xsl:apply-templates select="." mode="running.head.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates select="." mode="running.foot.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="division.toc"/>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+
+  <xsl:if test="$generate.book.figure.lot != '0' and .//figure">
+    <fo:page-sequence hyphenate="{$hyphenate}"
+                      format="i"
+                      master-name="{$master-name}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:if test="$double.sided != 0">
+        <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+      </xsl:if>
+
+      <xsl:apply-templates select="." mode="running.head.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates select="." mode="running.foot.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="list.of.titles">
+          <xsl:with-param name="titles" select="'figure'"/>
+          <xsl:with-param name="nodes" select=".//figure"/>
+        </xsl:call-template>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+
+  <xsl:if test="$generate.book.table.lot != '0' and .//table">
+    <fo:page-sequence hyphenate="{$hyphenate}"
+                      format="i"
+                      master-name="{$master-name}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:if test="$double.sided != 0">
+        <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+      </xsl:if>
+
+      <xsl:apply-templates select="." mode="running.head.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates select="." mode="running.foot.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="list.of.titles">
+          <xsl:with-param name="titles" select="'table'"/>
+          <xsl:with-param name="nodes" select=".//table"/>
+        </xsl:call-template>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+
+  <xsl:if test="$generate.book.example.lot != '0' and .//example">
+    <fo:page-sequence hyphenate="{$hyphenate}"
+                      format="i"
+                      master-name="{$master-name}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:if test="$double.sided != 0">
+        <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+      </xsl:if>
+
+      <xsl:apply-templates select="." mode="running.head.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates select="." mode="running.foot.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="list.of.titles">
+          <xsl:with-param name="titles" select="'example'"/>
+          <xsl:with-param name="nodes" select=".//example"/>
+        </xsl:call-template>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+
+  <xsl:if test="$generate.book.equation.lot != '0' and .//equation">
+    <fo:page-sequence hyphenate="{$hyphenate}"
+                      format="i"
+                      master-name="{$master-name}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:if test="$double.sided != 0">
+        <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+      </xsl:if>
+
+      <xsl:apply-templates select="." mode="running.head.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates select="." mode="running.foot.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="list.of.titles">
+          <xsl:with-param name="titles" select="'equation'"/>
+          <xsl:with-param name="nodes" select=".//equation"/>
+        </xsl:call-template>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+
+  <xsl:apply-templates select="dedication" mode="dedication"/>
+
+  <xsl:apply-templates select="$content"/>
+</xsl:template>
+
+<xsl:template match="book/bookinfo"></xsl:template>
+<xsl:template match="book/title"></xsl:template>
+<xsl:template match="book/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="part">
+  <xsl:if test="not(partintro)">
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:variable>
+    <xsl:variable name="master-name">
+      <xsl:call-template name="select.pagemaster"/>
+    </xsl:variable>
+
+    <fo:page-sequence id="{$id}"
+                      hyphenate="{$hyphenate}"
+                      master-name="{$master-name}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:if test="$double.sided != 0">
+        <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+      </xsl:if>
+
+      <xsl:apply-templates select="." mode="running.head.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates select="." mode="running.foot.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="part.titlepage"/>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="part" mode="part.titlepage.mode">
+  <!-- done this way to force the context node to be the part -->
+  <xsl:call-template name="part.titlepage"/>
+</xsl:template>
+
+<xsl:template match="part/docinfo|partinfo"></xsl:template>
+<xsl:template match="part/title"></xsl:template>
+<xsl:template match="part/subtitle"></xsl:template>
+
+<xsl:template match="part/partintro">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::part"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:apply-templates select=".." mode="part.titlepage.mode"/>
+      <xsl:if test="title">
+        <xsl:call-template name="partintro.titlepage"/>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="partintro/title"></xsl:template>
+<xsl:template match="partintro/subtitle"></xsl:template>
+<xsl:template match="partintro/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book" mode="division.number">
+  <xsl:number from="set" count="book" format="1."/>
+</xsl:template>
+
+<xsl:template match="part" mode="division.number">
+  <xsl:number from="book" count="part" format="I."/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/docbook.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/docbook.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/docbook.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,145 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<xsl:output method="xml"
+            indent="yes"/>
+
+<!-- ********************************************************************
+     $Id: docbook.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="fo.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pagesetup.xsl"/>
+<xsl:include href="pi.xsl"/>
+
+<xsl:include href="fop.xsl"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text> encountered, but no template matches.</xsl:text>
+  </xsl:message>
+  <fo:block color="red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/> 
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/> 
+</xsl:template>
+
+<xsl:template match="/">
+  <xsl:message>
+    <xsl:text>Making </xsl:text>
+    <xsl:value-of select="$page.orientation"/>
+    <xsl:text> pages on </xsl:text>
+    <xsl:value-of select="$paper.type"/>
+    <xsl:text> paper (</xsl:text>
+    <xsl:value-of select="$page.width"/>
+    <xsl:text>x</xsl:text>
+    <xsl:value-of select="$page.height"/>
+    <xsl:text>)</xsl:text>
+  </xsl:message>
+
+  <xsl:variable name="document.element" select="*[1]"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$document.element/title[1]">
+        <xsl:value-of select="$document.element/title[1]"/>
+      </xsl:when>
+      <xsl:otherwise>[could not find document title]</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:root font-family="{$body.font.family}"
+           font-size="{$body.font.size}"
+           text-align="{$alignment}">
+    <xsl:call-template name="setup.pagemasters"/>
+    <xsl:choose>
+      <xsl:when test="$rootid != ''">
+        <xsl:choose>
+          <xsl:when test="count(id($rootid)) = 0">
+            <xsl:message terminate="yes">
+              <xsl:text>ID '</xsl:text>
+              <xsl:value-of select="$rootid"/>
+              <xsl:text>' not found in document.</xsl:text>
+            </xsl:message>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:if test="$fop.extensions != 0">
+              <xsl:apply-templates select="id($rootid)" mode="outline"/>
+            </xsl:if>
+            <xsl:apply-templates select="id($rootid)"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:if test="$fop.extensions != 0">
+          <xsl:apply-templates mode="outline"/>
+        </xsl:if>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+  </fo:root>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/fo.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/fo.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/fo.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,36 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: fo.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="dingbat">
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$dingbat='bullet'">o</xsl:when>
+    <xsl:when test="$dingbat='copyright'">&#x00A9;</xsl:when>
+    <xsl:when test="$dingbat='trademark'">&#x2122;</xsl:when>
+    <xsl:when test="$dingbat='trade'">&#x2122;</xsl:when>
+    <xsl:when test="$dingbat='registered'">&#x00AE;</xsl:when>
+    <xsl:when test="$dingbat='service'">(SM)</xsl:when>
+    <xsl:when test="$dingbat='ldquo'">"</xsl:when>
+    <xsl:when test="$dingbat='rdquo'">"</xsl:when>
+    <xsl:when test="$dingbat='lsquo'">'</xsl:when>
+    <xsl:when test="$dingbat='rsquo'">'</xsl:when>
+    <xsl:when test="$dingbat='em-dash'">--</xsl:when>
+    <xsl:when test="$dingbat='en-dash'">-</xsl:when>
+    <xsl:otherwise>o</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/footnote.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/footnote.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/footnote.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,58 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: footnote.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="footnote">
+  <fo:footnote>
+    <fo:inline>
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="." mode="footnote.number"/>
+      <xsl:text>]</xsl:text>
+    </fo:inline>
+    <fo:footnote-body font-size="{$footnote.font.size}">
+      <xsl:apply-templates/>
+    </fo:footnote-body>
+  </fo:footnote>
+</xsl:template>
+
+<xsl:template match="footnoteref">
+  <xsl:variable name="footnote" select="id(@linkend)"/>
+  <fo:inline>
+    <xsl:text>[</xsl:text>
+    <xsl:apply-templates select="$footnote" mode="footnote.number"/>
+    <xsl:text>]</xsl:text>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="footnote" mode="footnote.number">
+  <xsl:number level="any" format="1"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="footnote/para[1]
+                     |footnote/simpara[1]
+                     |footnote/formalpara[1]"
+              priority="2">
+  <!-- this only works if the first thing in a footnote is a para, -->
+  <!-- which is ok, because it usually is. -->
+  <fo:block>
+    <xsl:text>[</xsl:text>
+    <xsl:apply-templates select="ancestor::footnote" mode="footnote.number"/>
+    <xsl:text>] </xsl:text>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/fop.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/fop.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/fop.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,126 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:fox="http://xml.apache.org/fop/extensions"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: fop.xsl,v 1.1 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+     (c) Stephane Bline Peregrine Systems 2001
+     Driver file to allow pdf bookmarking (based on fop implementation).
+     ******************************************************************** -->
+
+<xsl:template match="set" mode="outline">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fox:outline internal-destination="{$id}">
+    <fox:label>
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:apply-templates select="." mode="title.markup"/>
+    </fox:label>
+
+  <xsl:if test="book">
+      <xsl:apply-templates select="book"
+                           mode="outline"/>
+  </xsl:if>
+  </fox:outline>
+</xsl:template>
+
+<xsl:template match="book" mode="outline">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fox:outline internal-destination="{$id}">
+    <fox:label>
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:apply-templates select="." mode="title.markup"/>
+    </fox:label>
+
+  <xsl:if test="part|preface|chapter|appendix">
+      <xsl:apply-templates select="part|preface|chapter|appendix"
+                           mode="outline"/>
+  </xsl:if>
+  </fox:outline>
+</xsl:template>
+
+
+<xsl:template match="part" mode="outline">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fox:outline internal-destination="{$id}">
+    <fox:label>
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:apply-templates select="." mode="title.markup"/>
+    </fox:label>
+
+  <xsl:if test="chapter|appendix|preface|reference">
+      <xsl:apply-templates select="chapter|appendix|preface|reference"
+                           mode="outline"/>
+  </xsl:if>
+  </fox:outline>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix"
+              mode="outline">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fox:outline internal-destination="{$id}">
+    <fox:label>
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:apply-templates select="." mode="title.markup"/>
+    </fox:label>
+
+  <xsl:if test="section|sect1">
+      <xsl:apply-templates select="section|sect1"
+                           mode="outline"/>
+  </xsl:if>
+  </fox:outline>
+</xsl:template>
+
+<xsl:template match="section|sect1|sect2|sect3|sect4|sect5"
+              mode="outline">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fox:outline internal-destination="{$id}">
+    <fox:label>
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:apply-templates select="." mode="title.markup"/>
+    </fox:label>
+
+  <xsl:if test="section|sect2|sect3|sect4|sect5">
+      <xsl:apply-templates select="section|sect2|sect3|sect4|sect5"
+                           mode="outline"/>
+  </xsl:if>
+  </fox:outline>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary|index"
+              mode="outline">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fox:outline internal-destination="{$id}">
+    <fox:label>
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:apply-templates select="." mode="title.markup"/>
+    </fox:label>
+  </fox:outline>
+</xsl:template>
+
+<xsl:template match="title" mode="outline">
+  <xsl:apply-templates/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/formal.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/formal.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/formal.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,133 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: formal.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="formal.object">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}"
+            space-before.minimum="1em"
+            space-before.optimum="1.5em"
+            space-before.maximum="2em"
+            space-after.minimum="1em"
+            space-after.optimum="1.5em"
+            space-after.maximum="2em"
+            keep-with-previous.within-column="always">
+    <xsl:call-template name="formal.object.heading">
+       <xsl:with-param name="title">
+         <xsl:apply-templates select="." mode="title.markup"/>
+       </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+  <xsl:param name="title"></xsl:param>
+  <fo:block xsl:use-attribute-sets="formal.title.properties">
+    <xsl:copy-of select="$title"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="informal.object">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="semiformal.object">
+  <xsl:choose>
+    <xsl:when test="./title">
+      <xsl:call-template name="formal.object"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="informal.object"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|example">
+  <xsl:call-template name="formal.object"/>
+</xsl:template>
+
+<xsl:template match="table">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="prop-columns"
+    select=".//colspec[contains(@colwidth, '*')]"/>
+
+  <fo:table-and-caption id="{$id}"
+      keep-together.within-column="always"
+      space-before.minimum="0.8em"
+      space-before.optimum="1em"
+      space-before.maximum="1.2em"
+      space-after.minimum="0.8em"
+      space-after.optimum="1em"
+      space-after.maximum="1.2em">
+    <fo:table-caption>
+      <fo:block font-weight='bold'
+          space-after.minimum="0.2em"
+          space-after.optimum="0.5em"
+          space-after.maximum="0.8em"
+          keep-with-next.within-column="always"
+          hyphenate="false">
+         <xsl:apply-templates select="." mode="title.markup"/>
+      </fo:block>
+    </fo:table-caption>
+    <fo:table>
+      <xsl:if test="count($prop-columns) != 0">
+	<xsl:attribute name="table-layout">fixed</xsl:attribute>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </fo:table>
+  </fo:table-and-caption>
+</xsl:template>
+
+<xsl:template match="equation">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="figure/title"></xsl:template>
+<xsl:template match="table/title"></xsl:template>
+<xsl:template match="example/title"></xsl:template>
+<xsl:template match="equation/title"></xsl:template>
+
+<xsl:template match="informalfigure">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalexample">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informaltable">
+  <xsl:variable name="prop-columns"
+    select=".//colspec[contains(@colwidth, '*')]"/>
+
+  <fo:table>
+    <xsl:if test="count($prop-columns) != 0">
+      <xsl:attribute name="table-layout">fixed</xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </fo:table>
+</xsl:template>
+
+<xsl:template match="informalequation">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/glossary.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/glossary.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/glossary.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,304 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: glossary.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:variable name="glossterm-width">2in</xsl:variable>
+<xsl:variable name="glossterm-sep">0.25in</xsl:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossary">
+  <xsl:variable name="divs" select="glossdiv"/>
+  <xsl:variable name="entries" select="glossentry"/>
+  <xsl:variable name="preamble"
+                select="*[not(self::title
+                            or self::subtitle
+                            or self::glossdiv
+                            or self::glossentry)]"/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="component.separator"/>
+
+    <xsl:call-template name="glossary.titlepage"/>
+
+    <xsl:if test="$preamble">
+      <xsl:apply-templates select="$preamble"/>
+    </xsl:if>
+
+    <xsl:if test="$divs">
+      <xsl:apply-templates select="$divs"/>
+    </xsl:if>
+
+    <xsl:if test="$entries">
+      <fo:list-block provisional-distance-between-starts="{$glossterm-width}"
+                     provisional-label-separation="{$glossterm-sep}"
+                     xsl:use-attribute-sets="normal.para.spacing">
+        <xsl:apply-templates select="$entries"/>
+      </fo:list-block>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="book/glossary">
+  <xsl:variable name="divs" select="glossdiv"/>
+  <xsl:variable name="entries" select="glossentry"/>
+  <xsl:variable name="preamble"
+                select="*[not(self::title
+                            or self::subtitle
+                            or self::glossdiv
+                            or self::glossentry)]"/>
+
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="glossary.titlepage"/>
+
+      <xsl:if test="$preamble">
+        <xsl:apply-templates select="$preamble"/>
+      </xsl:if>
+
+      <xsl:if test="$divs">
+        <xsl:apply-templates select="$divs"/>
+      </xsl:if>
+
+      <xsl:if test="$entries">
+        <fo:list-block provisional-distance-between-starts="{$glossterm-width}"
+                       provisional-label-separation="{$glossterm-sep}"
+                       xsl:use-attribute-sets="normal.para.spacing">
+          <xsl:apply-templates select="$entries"/>
+        </fo:list-block>
+      </xsl:if>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="glossary/glossaryinfo"></xsl:template>
+<xsl:template match="glossary/title"></xsl:template>
+<xsl:template match="glossary/subtitle"></xsl:template>
+<xsl:template match="glossary/titleabbrev"></xsl:template>
+
+<xsl:template match="glossary/title" mode="component.title.mode">
+  <fo:block font-size="18pt"
+            font-weight="bold"
+            keep-with-next.within-column="always"
+            hyphenate="false">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="glossary/subtitle" mode="component.title.mode">
+  <fo:block font-size="16pt"
+            font-weight="bold"
+            font-style="italic"
+            keep-with-next.within-column="always"
+            hyphenate="false">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glosslist">
+  <fo:list-block provisional-distance-between-starts="{$glossterm-width}"
+                 provisional-label-separation="{$glossterm-sep}"
+                 xsl:use-attribute-sets="normal.para.spacing">
+      <xsl:apply-templates/>
+    </fo:list-block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossdiv">
+  <xsl:variable name="entries" select="glossentry"/>
+  <xsl:variable name="preamble"
+                select="*[not(self::title
+                            or self::subtitle
+                            or self::glossentry)]"/>
+
+  <xsl:apply-templates select="title|subtitle"/>
+  <xsl:apply-templates select="$preamble"/>
+  <fo:list-block provisional-distance-between-starts="{$glossterm-width}"
+                 provisional-label-separation="{$glossterm-sep}"
+                 xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:apply-templates select="$entries"/>
+  </fo:list-block>
+</xsl:template>
+
+<xsl:template match="glossdiv/title">
+  <fo:block font-size="16pt" font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+GlossEntry ::=
+  GlossTerm, Acronym?, Abbrev?,
+  (IndexTerm)*,
+  RevHistory?,
+  (GlossSee | GlossDef+)
+-->
+
+<xsl:template match="glossentry">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:list-item id="{$id}"
+                xsl:use-attribute-sets="normal.para.spacing">
+    <xsl:apply-templates/>
+  </fo:list-item>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm">
+  <fo:list-item-label end-indent="label-end()">
+    <fo:block>
+      <xsl:apply-templates/>
+    </fo:block>
+  </fo:list-item-label>
+</xsl:template>
+
+<xsl:template match="glossentry/acronym">
+</xsl:template>
+
+<xsl:template match="glossentry/abbrev">
+</xsl:template>
+
+<xsl:template match="glossentry/revhistory">
+</xsl:template>
+
+<xsl:template match="glossentry/glosssee">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="//node()[@id=$otherterm]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <fo:list-item-body start-indent="body-start()">
+    <fo:block>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'glossary'"/>
+        <xsl:with-param name="name" select="'see'"/>
+      </xsl:call-template>
+      <xsl:choose>
+        <xsl:when test="@otherterm">
+          <xsl:apply-templates select="$target" mode="xref"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:text>.</xsl:text>
+    </fo:block>
+  </fo:list-item-body>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef">
+  <fo:list-item-body start-indent="body-start()">
+    <xsl:apply-templates select="*[local-name(.) != 'glossseealso']"/>
+    <xsl:if test="glossseealso">
+      <fo:block>
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'glossary'"/>
+          <xsl:with-param name="name" select="'seealso'"/>
+        </xsl:call-template>
+        <xsl:apply-templates select="glossseealso"/>
+      </fo:block>
+    </xsl:if>
+  </fo:list-item-body>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef/para[1]">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="glossseealso">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="//node()[@id=$otherterm]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="@otherterm">
+      <xsl:apply-templates select="$target" mode="xref"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="position() = last()">
+      <xsl:text>.</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>, </xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossentry" mode="xref">
+  <xsl:apply-templates select="./glossterm[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="glossterm" mode="xref">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::glossentry"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <fo:basic-link internal-destination="{$id}"
+                 xsl:use-attribute-sets="xref.properties">
+    <xsl:apply-templates/>
+    <xsl:call-template name="insert.page.citation">
+      <xsl:with-param name="id" select="$id"/>
+    </xsl:call-template>
+  </fo:basic-link>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/graphics.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/graphics.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/graphics.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,326 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
+                xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory"
+                xmlns:xtext="com.nwalsh.xalan.Text"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="xlink stext xtext lxslt"
+                extension-element-prefixes="stext xtext"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: graphics.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     Contributors:
+     Colin Paul Adams, <colin at colina.demon.co.uk>
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<!-- Graphic format tests for the FO backend -->
+
+<!--
+FIXME: make is.graphic.* work correctly depending on the backend!
+<xsl:param name="passivetex.extensions" select="0" doc:type='boolean'/>
+<xsl:param name="fop.extensions" select="0" doc:type='boolean'/>
+-->
+
+<xsl:template name="is.graphic.format">
+  <xsl:param name="format"></xsl:param>
+  <xsl:if test="$format = 'PNG'
+                or $format = 'PDF'
+                or $format = 'JPG'
+                or $format = 'JPEG'
+                or $format = 'linespecific'
+                or $format = 'GIF'
+                or $format = 'GIF87a'
+                or $format = 'GIF89a'
+                or $format = 'BMP'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="is.graphic.extension">
+  <xsl:param name="ext"></xsl:param>
+  <xsl:if test="$ext = 'png'
+                or $ext = 'pdf'
+                or $ext = 'jpeg'
+                or $ext = 'jpg'
+                or $ext = 'gif'
+                or $ext = 'bmp'">1</xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="screenshot">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="screeninfo">
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Override these templates for FO -->
+<!-- ==================================================================== -->
+
+<xsl:template name="process.image">
+  <!-- When this template is called, the current node should be  -->
+  <!-- a graphic, inlinegraphic, imagedata, or videodata. All    -->
+  <!-- those elements have the same set of attributes, so we can -->
+  <!-- handle them all in one place.                             -->
+  <xsl:variable name="input-filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+      </xsl:when>
+      <xsl:when test="@fileref">
+        <!-- FIXME: is this right? What if @fileref is a relative -->
+        <!-- URI? What if @fileref contains backslashes? -->
+        <xsl:text>file:</xsl:text>
+        <xsl:value-of select="@fileref"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:message>
+          <xsl:text>Expected @entityref or @fileref on </xsl:text>
+          <xsl:value-of select="name(.)"/>
+        </xsl:message>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="fileext">
+    <xsl:call-template name="filename-extension">
+      <xsl:with-param name="filename" select="$input-filename"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$fileext != ''">
+        <xsl:value-of select="$input-filename"/>
+      </xsl:when>
+      <xsl:when test="$graphic.default.extension != ''">
+        <xsl:value-of select="$input-filename"/>
+        <xsl:text>.</xsl:text>
+        <xsl:value-of select="$graphic.default.extension"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$input-filename"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="scale">
+    <xsl:choose>
+      <xsl:when test="@scale"><xsl:value-of select="@scale"/>%</xsl:when>
+      <xsl:otherwise>auto</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="width">
+    <xsl:choose>
+      <xsl:when test="@width">
+        <xsl:call-template name="length-spec">
+          <xsl:with-param name="length" select="@width"/>
+          <xsl:with-param name="default.units" select="$default.units"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>auto</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="height">
+    <xsl:choose>
+      <xsl:when test="@depth">
+        <xsl:call-template name="length-spec">
+          <xsl:with-param name="length" select="@depth"/>
+          <xsl:with-param name="default.units" select="$default.units"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>auto</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Scaling seems to require calculating an absolute width and height
+       from a scale factor and the intrinsic width and height (possibly
+       with contributions from the specified width and height). I'm not
+       sure how to specify that... -->
+
+  <xsl:choose>
+    <xsl:when test="$passivetex.extensions != 0
+                    or $fop.extensions != 0
+                    or $arbortext.extensions != 0">
+      <fo:external-graphic src="{$filename}"
+                           content-width="{$width}"
+                           content-height="{$height}"
+                           width="auto"
+                           height="auto"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:external-graphic src="url({$filename})"
+                           content-width="{$width}"
+                           content-height="{$height}"
+                           width="auto"
+                           height="auto"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="graphic">
+  <fo:block>
+    <xsl:call-template name="process.image"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="inlinegraphic">
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@fileref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'
+                        and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="contains($vendor, 'SAXON')">
+              <stext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>Don't know how to insert files with </xsl:text>
+                <xsl:value-of select="$vendor"/>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"
+             href="{$filename}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process.image"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject">
+  <fo:block>
+    <xsl:call-template name="select.mediaobject"/>
+    <xsl:apply-templates select="caption"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="inlinemediaobject">
+  <xsl:call-template name="select.mediaobject"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="imageobjectco">
+  <xsl:apply-templates select="imageobject"/>
+  <xsl:apply-templates select="calloutlist"/>
+</xsl:template>
+
+<xsl:template match="imageobject">
+  <xsl:apply-templates select="imagedata"/>
+</xsl:template>
+
+<xsl:template match="imagedata">
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:variable name="filename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'
+                        and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="contains($vendor, 'SAXON')">
+              <stext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>Don't know how to insert files with </xsl:text>
+                <xsl:value-of select="$vendor"/>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"
+             href="{$filename}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process.image"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="videoobject">
+  <xsl:apply-templates select="videodata"/>
+</xsl:template>
+
+<xsl:template match="videodata">
+  <xsl:call-template name="process.image"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="audioobject">
+  <xsl:apply-templates select="audiodata"/>
+</xsl:template>
+
+<xsl:template match="audiodata">
+  <xsl:call-template name="process.image"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="textobject">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="caption">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/index.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/index.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/index.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,119 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: index.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="index">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="index.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+      <xsl:call-template name="generate-index"/>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="book/index">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="index.titlepage"/>
+      <xsl:apply-templates/>
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+        <xsl:call-template name="generate-index"/>
+      </xsl:if>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="index/title"></xsl:template>
+<xsl:template match="index/subtitle"></xsl:template>
+<xsl:template match="index/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexdiv">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="indexdiv/title">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <fo:block font-size="16pt" font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexterm">
+  <fo:wrapper>
+    <xsl:attribute name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:attribute>
+    <xsl:comment>
+      <xsl:value-of select="primary"/>
+      <xsl:if test="secondary">
+        <xsl:text>, </xsl:text>
+        <xsl:value-of select="secondary"/>
+      </xsl:if>
+      <xsl:if test="tertiary">
+        <xsl:text>, </xsl:text>
+        <xsl:value-of select="tertiary"/>
+      </xsl:if>
+    </xsl:comment>
+  </fo:wrapper>
+</xsl:template>
+
+<xsl:template match="indexentry">
+</xsl:template>
+
+<xsl:template name="generate-index">
+  <!-- nop: use autoidx.xsl to get automatic indexing -->
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/info.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/info.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/info.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,34 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: info.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- These templates define the "default behavior" for info
+     elements.  Even if you don't process the *info wrappers,
+     some of these elements are needed because the elements are
+     processed from named templates that are called with modes.
+     Since modes aren't sticky, these rules apply. 
+     (TODO: clarify this comment) -->
+
+<!-- ==================================================================== -->
+<!-- called from named templates in a given mode -->
+
+<xsl:template match="corpauthor">
+  <fo:inline>
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/inline.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/inline.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/inline.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,598 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: inline.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="inline.charseq">
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <xsl:copy-of select="$content"/>
+</xsl:template>
+
+<xsl:template name="inline.monoseq">
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <fo:inline font-family="{$monospace.font.family}">
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.boldseq">
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <fo:inline font-weight="bold">
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.italicseq">
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <fo:inline font-style="italic">
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.boldmonoseq">
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <fo:inline font-weight="bold" font-family="{$monospace.font.family}">
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.italicmonoseq">
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <fo:inline font-style="italic" font-family="{$monospace.font.family}">
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.superscriptseq">
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <fo:inline vertical-align="super">
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template name="inline.subscriptseq">
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <fo:inline vertical-align="sub">
+    <xsl:copy-of select="$content"/>
+  </fo:inline>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="accel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="action">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="application">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="classname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="exceptionname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="interfacename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="methodname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="command">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="computeroutput">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="constant">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="database">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorcode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortype">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="envar">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="filename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="function">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="guibutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guiicon">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guilabel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenuitem">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guisubmenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="hardware">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interface">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interfacedefinition">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keycap">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="keycode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keysym">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="literal">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="medialabel">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="shortcut">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="mousebutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="option">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="parameter">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="property">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="prompt">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="replaceable">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="returnvalue">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="structfield">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="structname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="symbol">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="systemitem">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="token">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="type">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="userinput">
+  <xsl:call-template name="inline.boldmonoseq"/>
+</xsl:template>
+
+<xsl:template match="abbrev">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="acronym">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="citerefentry">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="citetitle">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="emphasis">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="foreignphrase">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="markup">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phrase">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="quote">
+  <xsl:variable name="depth">
+    <xsl:call-template name="dot.count">
+      <xsl:with-param name="string"><xsl:number level="multiple"/></xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$depth mod 2 = 0">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.nestedstartquote"/>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:call-template name="gentext.nestedendquote"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="wordasword">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="lineannotation">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="superscript">
+  <xsl:call-template name="inline.superscriptseq"/>
+</xsl:template>
+
+<xsl:template match="subscript">
+  <xsl:call-template name="inline.subscriptseq"/>
+</xsl:template>
+
+<xsl:template match="trademark">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:if test="@class">
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat" select="@class"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="firstterm">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="glossterm">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="sgmltag">
+  <xsl:variable name="class">
+    <xsl:choose>
+      <xsl:when test="@class">
+        <xsl:value-of select="@class"/>
+      </xsl:when>
+      <xsl:otherwise>element</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$class='attribute'">
+      <xsl:call-template name="inline.monoseq"/>
+    </xsl:when>
+    <xsl:when test="$class='attvalue'">
+      <xsl:call-template name="inline.monoseq"/>
+    </xsl:when>
+    <xsl:when test="$class='element'">
+      <xsl:call-template name="inline.monoseq"/>
+    </xsl:when>
+    <xsl:when test="$class='endtag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;/</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='genentity'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&amp;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='numcharref'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&amp;#</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='paramentity'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>%</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='pi'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;?</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='xmlpi'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;?</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>?&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='starttag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='emptytag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>/&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='sgmlcomment'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;!--</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>--&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.charseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="email">
+  <xsl:call-template name="inline.monoseq">
+    <xsl:with-param name="content">
+      <xsl:text>&lt;</xsl:text>
+      <xsl:apply-templates/>
+      <xsl:text>&gt;</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="keycombo">
+  <xsl:variable name="action" select="@action"/>
+  <xsl:variable name="joinchar">
+    <xsl:choose>
+      <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
+      <xsl:when test="$action='simul'">+</xsl:when>
+      <xsl:when test="$action='press'">-</xsl:when>
+      <xsl:when test="$action='click'">-</xsl:when>
+      <xsl:when test="$action='double-click'">-</xsl:when>
+      <xsl:when test="$action='other'"></xsl:when>
+      <xsl:otherwise>-</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:for-each select="./*">
+    <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if>
+    <xsl:apply-templates/>
+  </xsl:for-each>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="menuchoice">
+  <xsl:variable name="shortcut" select="./shortcut"/>
+  <xsl:call-template name="process.menuchoice"/>
+  <xsl:if test="$shortcut">
+    <xsl:text> (</xsl:text>
+    <xsl:apply-templates select="$shortcut"/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.menuchoice">
+  <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($nodelist)"></xsl:when>
+    <xsl:when test="$count=1">
+      <xsl:apply-templates select="$nodelist[$count=position()]"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="node" select="$nodelist[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="name($node)='guimenuitem'
+                        or name($node)='guisubmenu'">
+          <xsl:text>-&gt;</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>+</xsl:otherwise>
+      </xsl:choose>
+      <xsl:apply-templates select="$node"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="optional">
+  <xsl:value-of select="$arg.choice.opt.open.str"/>
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:value-of select="$arg.choice.opt.close.str"/>
+</xsl:template>
+
+<xsl:template match="citation">
+  <!-- todo: biblio-citation-check -->
+  <xsl:text>[</xsl:text>
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:text>]</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="comment|remark">
+  <xsl:if test="$show.comments != 0">
+    <fo:inline font-style="italic">
+      <xsl:call-template name="inline.charseq"/>
+    </fo:inline>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productname">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:if test="@class">
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat" select="@class"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="productnumber">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="pob|street|city|state|postcode|country|otheraddr">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phone|fax">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- in Addresses, for example -->
+<xsl:template match="honorific|firstname|surname|lineage|othername">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/keywords.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/keywords.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/keywords.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: keywords.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="keywordset"></xsl:template>
+<xsl:template match="subjectset"></xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/lists.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/lists.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/lists.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,558 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: lists.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="itemizedlist">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:if test="title">
+    <xsl:apply-templates select="title" mode="list.title.mode"/>
+  </xsl:if>
+
+  <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing"
+                 provisional-distance-between-starts="1.5em"
+                 provisional-label-separation="0.2em">
+    <xsl:apply-templates/>
+  </fo:list-block>
+</xsl:template>
+
+<xsl:template match="itemizedlist/title|orderedlist/title|variablelist/title">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="itemizedlist/listitem">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing">
+    <fo:list-item-label end-indent="label-end()">
+      <fo:block>
+        <xsl:text>&#x2022;</xsl:text>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <xsl:apply-templates/>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+<xsl:template match="orderedlist">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:if test="title">
+    <xsl:apply-templates select="title" mode="list.title.mode"/>
+  </xsl:if>
+
+  <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing"
+                 provisional-distance-between-starts="2em"
+                 provisional-label-separation="0.2em">
+    <xsl:apply-templates/>
+  </fo:list-block>
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing">
+    <fo:list-item-label end-indent="label-end()">
+      <fo:block>
+        <xsl:number count="listitem" format="1."/>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <xsl:apply-templates/>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+<xsl:template match="listitem/para[1]
+                     |listitem/simpara[1]
+                     |listitem/formalpara[1]
+                     |callout/para[1]
+                     |callout/simpara[1]
+                     |callout/formalpara[1]"
+              priority="2">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="variablelist">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:variable name="termlength">
+    <xsl:choose>
+      <!-- FIXME: handle @termlength="1in" -->
+      <xsl:when test="@termlength">
+        <xsl:value-of select="@termlength"/>
+        <xsl:text>em</xsl:text>
+      </xsl:when>
+      <!-- FIXME: calculate some reasonable width -->
+      <xsl:otherwise>
+        <xsl:text>1in</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="title">
+    <xsl:apply-templates select="title" mode="list.title.mode"/>
+  </xsl:if>
+
+  <fo:list-block id="{$id}"
+                 provisional-distance-between-starts="{$termlength}"
+                 provisional-label-separation="0.25in"
+                 xsl:use-attribute-sets="list.block.spacing">
+    <xsl:apply-templates/>
+  </fo:list-block>
+</xsl:template>
+
+<xsl:template match="varlistentry">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing">
+    <fo:list-item-label end-indent="label-end()">
+      <fo:block>
+        <xsl:apply-templates select="term"/>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <xsl:apply-templates select="listitem"/>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+<xsl:template match="varlistentry/term">
+  <fo:inline><xsl:apply-templates/>, </fo:inline>
+</xsl:template>
+
+<xsl:template match="varlistentry/term[position()=last()]" priority="2">
+  <fo:inline><xsl:apply-templates/></fo:inline>
+</xsl:template>
+
+<xsl:template match="varlistentry/listitem">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="title" mode="list.title.mode">
+  <fo:block font-size="12pt" font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="simplelist">
+  <!-- with no type specified, the default is 'vert' -->
+  <fo:table>
+    <fo:table-body>
+      <xsl:call-template name="simplelist.vert">
+	<xsl:with-param name="cols">
+	  <xsl:choose>
+	    <xsl:when test="@columns">
+	      <xsl:value-of select="@columns"/>
+	    </xsl:when>
+	    <xsl:otherwise>1</xsl:otherwise>
+	  </xsl:choose>
+	</xsl:with-param>
+      </xsl:call-template>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='inline']">
+  <fo:inline><xsl:apply-templates/></fo:inline>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='horiz']">
+  <fo:table>
+    <fo:table-body>
+      <xsl:call-template name="simplelist.horiz">
+	<xsl:with-param name="cols">
+	  <xsl:choose>
+	    <xsl:when test="@columns">
+	      <xsl:value-of select="@columns"/>
+	    </xsl:when>
+	    <xsl:otherwise>1</xsl:otherwise>
+	  </xsl:choose>
+	</xsl:with-param>
+      </xsl:call-template>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='vert']">
+  <fo:table>
+    <fo:table-body>
+      <xsl:call-template name="simplelist.vert">
+	<xsl:with-param name="cols">
+	  <xsl:choose>
+	    <xsl:when test="@columns">
+	      <xsl:value-of select="@columns"/>
+	    </xsl:when>
+	    <xsl:otherwise>1</xsl:otherwise>
+	  </xsl:choose>
+	</xsl:with-param>
+      </xsl:call-template>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+
+  <xsl:if test="$cell &lt;= count($members)">
+    <fo:table-row>
+      <xsl:call-template name="simplelist.horiz.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+   </fo:table-row>
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell + $cols"/>
+      <xsl:with-param name="members" select="$members"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <fo:table-cell>
+      <fo:block>
+        <xsl:if test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:if>
+      </fo:block>
+    </fo:table-cell>
+    <xsl:call-template name="simplelist.horiz.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="rows"
+             select="floor((count($members)+$cols - 1) div $cols)"/>
+
+  <xsl:if test="$cell &lt;= $rows">
+    <fo:table-row>
+      <xsl:call-template name="simplelist.vert.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="rows" select="$rows"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+   </fo:table-row>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="rows" select="$rows"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="rows">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <fo:table-cell>
+      <fo:block>
+        <xsl:if test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:if>
+      </fo:block>
+    </fo:table-cell>
+    <xsl:call-template name="simplelist.vert.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="rows" select="$rows"/>
+      <xsl:with-param name="cell" select="$cell+$rows"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="member">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='inline']/member">
+  <xsl:apply-templates/>
+  <xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='inline']/member[position()=last()]"
+              priority="2">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="procedure">
+  <xsl:variable name="title" select="title"/>
+  <xsl:variable name="preamble"
+                select="*[not(self::step or self::title)]"/>
+  <xsl:variable name="steps" select="step"/>
+
+  <fo:block space-before.optimum="1em"
+            space-before.minimum="0.8em"
+            space-before.maximum="1.2em">
+    <xsl:if test="./title">
+      <fo:block font-weight="bold">
+        <xsl:apply-templates select="./title" mode="procedure.title.mode"/>
+      </fo:block>
+    </xsl:if>
+
+    <xsl:apply-templates select="$preamble"/>
+
+    <fo:list-block xsl:use-attribute-sets="list.block.spacing"
+                   provisional-distance-between-starts="2em"
+                   provisional-label-separation="0.2em">
+      <xsl:apply-templates select="$steps"/>
+    </fo:list-block>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="procedure/title">
+</xsl:template>
+
+<xsl:template match="procedure/title" mode="procedure.title.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="substeps">
+  <fo:list-block xsl:use-attribute-sets="list.block.spacing"
+                 provisional-distance-between-starts="2em"
+                 provisional-label-separation="0.2em">
+    <xsl:apply-templates/>
+  </fo:list-block>
+</xsl:template>
+
+<xsl:template match="step">
+  <xsl:variable name="depth" select="count(ancestor::substeps)"/>
+  <xsl:variable name="type" select="$depth mod 5"/>
+
+  <fo:list-item>
+    <fo:list-item-label end-indent="label-end()">
+      <fo:block>
+        <xsl:choose>
+          <xsl:when test="$depth = 0">
+            <xsl:number count="step" format="1."/>
+          </xsl:when>
+          <xsl:when test="$type = 1">
+            <xsl:number count="step" format="a."/>
+          </xsl:when>
+          <xsl:when test="$type = 2">
+            <xsl:number count="step" format="i."/>
+          </xsl:when>
+          <xsl:when test="$type = 3">
+            <xsl:number count="step" format="A."/>
+          </xsl:when>
+          <xsl:when test="$type = 4">
+            <xsl:number count="step" format="I."/>
+          </xsl:when>
+          <xsl:when test="$type = 0">
+            <xsl:number count="step" format="1."/>
+          </xsl:when>
+        </xsl:choose>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <xsl:apply-templates/>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="segmentedlist">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="segmentedlist/title">
+  <fo:block font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="segtitle">
+</xsl:template>
+
+<xsl:template match="segtitle" mode="segtitle-in-seg">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seglistitem">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seg">
+  <xsl:variable name="segnum" select="position()"/>
+  <xsl:variable name="seglist" select="ancestor::segmentedlist"/>
+  <xsl:variable name="segtitles" select="$seglist/segtitle"/>
+
+  <!--
+     Note: segtitle is only going to be the right thing in a well formed
+     SegmentedList.  If there are too many Segs or too few SegTitles,
+     you'll get something odd...maybe an error
+  -->
+
+  <fo:block>
+    <fo:inline font-weight="bold">
+      <xsl:apply-templates select="$segtitles[$segnum=position()]"
+                           mode="segtitle-in-seg"/>
+      <xsl:text>: </xsl:text>
+    </fo:inline>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="calloutlist">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:if test="./title">
+      <fo:block font-weight="bold">
+        <xsl:apply-templates select="./title" mode="calloutlist.title.mode"/>
+      </fo:block>
+    </xsl:if>
+
+    <fo:list-block space-before.optimum="1em"
+                   space-before.minimum="0.8em"
+                   space-before.maximum="1.2em"
+                   provisional-distance-between-starts="2.2em"
+                   provisional-label-separation="0.2em">
+      <xsl:apply-templates/>
+    </fo:list-block>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="calloutlist/title">
+</xsl:template>
+
+<xsl:template match="calloutlist/title" mode="calloutlist.title.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="callout">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <fo:list-item id="{$id}">
+    <fo:list-item-label end-indent="label-end()">
+      <fo:block>
+        <xsl:call-template name="callout.arearefs">
+          <xsl:with-param name="arearefs" select="@arearefs"/>
+        </xsl:call-template>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <xsl:apply-templates/>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+<xsl:template name="callout.arearefs">
+  <xsl:param name="arearefs"></xsl:param>
+  <xsl:if test="$arearefs!=''">
+    <xsl:choose>
+      <xsl:when test="substring-before($arearefs,' ')=''">
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef" select="$arearefs"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef"
+                          select="substring-before($arearefs,' ')"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="callout.arearefs">
+      <xsl:with-param name="arearefs"
+                      select="substring-after($arearefs,' ')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="callout.arearef">
+  <xsl:param name="arearef"></xsl:param>
+  <xsl:variable name="targets" select="id($arearef)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="count($target)=0">
+      <xsl:value-of select="$arearef"/>
+      <xsl:text>: ???</xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='co'">
+      <xsl:apply-templates select="$target" mode="callout-bug"/>
+    </xsl:when>
+    <xsl:when test="local-name($target)='areaset'">
+      <xsl:call-template name="callout-bug">
+        <xsl:with-param name="conum">
+          <xsl:apply-templates select="$target" mode="conumber"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($target)='area'">
+      <xsl:choose>
+        <xsl:when test="$target/parent::areaset">
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target/parent::areaset"
+                                   mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target" mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>???</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/math.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/math.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/math.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:mml="http://www.w3.org/1998/Math/MathML"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: math.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="inlineequation">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="alt">
+</xsl:template>
+
+<!-- just send the MathML all the way through... -->
+<xsl:template match="mml:*">
+  <xsl:element name="{name(.)}">
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates select="node()"/>
+  </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/pagesetup.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/pagesetup.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/pagesetup.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,431 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version="1.0">
+
+<!-- ==================================================================== -->
+
+<xsl:template name="setup.pagemasters">
+  <fo:layout-master-set>
+    <!-- one sided, single column -->
+    <fo:simple-page-master master-name="blank"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}"
+                           margin-left="{$page.margin.outer}"
+                           margin-right="{$page.margin.inner}">
+      <fo:region-body
+                      margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"/>
+      <fo:region-before region-name="xsl-region-before-blank"
+                        extent="{$region.before.extent}"/>
+      <fo:region-after region-name="xsl-region-after-blank"
+                       extent="{$region.after.extent}"/>
+    </fo:simple-page-master>
+
+    <!-- one sided, single column -->
+    <fo:simple-page-master master-name="simple1"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}"
+                           margin-left="{$page.margin.outer}"
+                           margin-right="{$page.margin.inner}">
+      <fo:region-body
+                      margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"/>
+      <fo:region-before extent="{$region.before.extent}"/>
+      <fo:region-after extent="{$region.after.extent}"/>
+    </fo:simple-page-master>
+
+    <!-- for left-hand/even pages in twosided mode, single column -->
+    <fo:simple-page-master master-name="left1"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}"
+                           margin-left="{$page.margin.outer}"
+                           margin-right="{$page.margin.inner}">
+      <fo:region-body
+                      margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"/>
+      <fo:region-before region-name="xsl-region-before-left"
+                        extent="{$region.before.extent}"/>
+      <fo:region-after region-name="xsl-region-after-left"
+                       extent="{$region.after.extent}"/>
+    </fo:simple-page-master>
+
+    <!-- for right-hand/odd pages in twosided mode, single column -->
+    <fo:simple-page-master master-name="right1"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}"
+                           margin-left="{$page.margin.inner}"
+                           margin-right="{$page.margin.outer}">
+      <fo:region-body
+                      margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"/>
+      <fo:region-before region-name="xsl-region-before-right"
+                        extent="{$region.before.extent}"/>
+      <fo:region-after region-name="xsl-region-after-right"
+                       extent="{$region.after.extent}"/>
+    </fo:simple-page-master>
+
+    <!-- special case of first page in either mode, single column -->
+    <fo:simple-page-master master-name="first1"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}"
+                           margin-left="{$page.margin.inner}"
+                           margin-right="{$page.margin.inner}">
+      <fo:region-body
+                      margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"/>
+      <fo:region-before region-name="xsl-region-before-first"
+                        extent="{$region.before.extent}"/>
+      <fo:region-after region-name="xsl-region-after-first"
+                       extent="{$region.after.extent}"/>
+    </fo:simple-page-master>
+
+    <!-- for pages in one-side mode, 2 column -->
+    <fo:simple-page-master master-name="simple2"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}"
+                           margin-left="{$page.margin.outer}"
+                           margin-right="{$page.margin.inner}">
+      <fo:region-body
+                      column-count="{$column.count}"
+                      margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"/>
+      <fo:region-before extent="{$region.before.extent}"/>
+      <fo:region-after extent="{$region.after.extent}"/>
+    </fo:simple-page-master>
+
+    <!-- for left-hand/even pages in twosided mode, 2 column -->
+    <fo:simple-page-master master-name="left2"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}"
+                           margin-left="{$page.margin.outer}"
+                           margin-right="{$page.margin.inner}">
+      <fo:region-body
+                      column-count="{$column.count}"
+                      margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"/>
+      <fo:region-before region-name="xsl-region-before-left"
+                        extent="{$region.before.extent}"/>
+      <fo:region-after region-name="xsl-region-after-left"
+                       extent="{$region.after.extent}"/>
+    </fo:simple-page-master>
+
+    <!-- for right-hand/odd pages in twosided mode, 2 column -->
+    <fo:simple-page-master master-name="right2"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}"
+                           margin-left="{$page.margin.inner}"
+                           margin-right="{$page.margin.outer}">
+      <fo:region-body
+                      column-count="{$column.count}"
+                      margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"/>
+      <fo:region-before region-name="xsl-region-before-right"
+                        extent="{$region.before.extent}"/>
+      <fo:region-after region-name="xsl-region-after-right"
+                       extent="{$region.after.extent}"/>
+    </fo:simple-page-master>
+
+    <!-- special case of first page in either mode -->
+    <fo:simple-page-master master-name="first2"
+                           page-width="{$page.width}"
+                           page-height="{$page.height}"
+                           margin-top="{$page.margin.top}"
+                           margin-bottom="{$page.margin.bottom}"
+                           margin-left="{$page.margin.inner}"
+                           margin-right="{$page.margin.inner}">
+      <fo:region-body
+                      column-count="1"
+                      margin-bottom="{$body.margin.bottom}"
+                      margin-top="{$body.margin.top}"/>
+      <fo:region-before region-name="xsl-region-before-first"
+                        extent="{$region.before.extent}"/>
+      <fo:region-after region-name="xsl-region-after-first"
+                       extent="{$region.after.extent}"/>
+    </fo:simple-page-master>
+
+    <!-- setup for title-page, 1 column -->
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <!-- setup for single-sided, 1 column -->
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <!-- setup for double-sided, 1 column -->
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank"
+                                              blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1"
+                                              odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1"
+                                              odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <!-- setup for title-page, 2 column -->
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <!-- setup for single-sided, 2 column -->
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <!-- setup for double-sided, 2 column -->
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank"
+                                              blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2"
+                                              odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2"
+                                              odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+
+    <xsl:call-template name="user.pagemasters"/>
+
+    </fo:layout-master-set>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="user.pagemasters"/> <!-- intentionally empty -->
+
+<!-- ==================================================================== -->
+
+<!-- $double.sided, $column.count, and context -->
+
+<xsl:template name="select.pagemaster">
+  <xsl:param name="element" select="local-name(.)"/>
+  <xsl:choose>
+    <xsl:when test="$double.sided != 0">
+      <xsl:choose>
+        <xsl:when test="$column.count &gt; 1">
+          <xsl:call-template name="select.doublesided.multicolumn.pagemaster">
+            <xsl:with-param name="element" select="$element"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="select.doublesided.pagemaster">
+            <xsl:with-param name="element" select="$element"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$column.count &gt; 1">
+          <xsl:call-template name="select.singlesided.multicolumn.pagemaster">
+            <xsl:with-param name="element" select="$element"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="select.singlesided.pagemaster">
+            <xsl:with-param name="element" select="$element"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="select.doublesided.multicolumn.pagemaster">
+  <xsl:param name="element" select="local-name(.)"/>
+  <xsl:choose>
+    <xsl:when test="$element='set' or $element='book' or $element='part'">
+      <xsl:text>titlepage2</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>twoside2</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="select.doublesided.pagemaster">
+  <xsl:param name="element" select="local-name(.)"/>
+  <xsl:choose>
+    <xsl:when test="$element='set' or $element='book' or $element='part'">
+      <xsl:text>titlepage1</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>twoside1</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="select.singlesided.multicolumn.pagemaster">
+  <xsl:param name="element" select="local-name(.)"/>
+  <xsl:choose>
+    <xsl:when test="$element='set' or $element='book' or $element='part'">
+      <xsl:text>titlepage2</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>oneside2</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="select.singlesided.pagemaster">
+  <xsl:param name="element" select="local-name(.)"/>
+  <xsl:choose>
+    <xsl:when test="$element='set' or $element='book' or $element='part'">
+      <xsl:text>titlepage1</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>oneside1</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="running.head.mode">
+  <xsl:param name="master-name" select="'unknown'"/>
+  <!-- by default, nothing -->
+  <xsl:choose>
+    <xsl:when test="$master-name='titlepage1'">
+    </xsl:when>
+    <xsl:when test="$master-name='oneside1'">
+    </xsl:when>
+    <xsl:when test="$master-name='twoside1'">
+    </xsl:when>
+    <xsl:when test="$master-name='titlepage2'">
+    </xsl:when>
+    <xsl:when test="$master-name='oneside2'">
+    </xsl:when>
+    <xsl:when test="$master-name='twoside2'">
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter|appendix" mode="running.head.mode">
+  <xsl:param name="master-name" select="'unknown'"/>
+  <xsl:variable name="head">
+    <fo:block font-size="{$body.font.size}">
+      <xsl:apply-templates select="." mode="object.title.markup"/>
+    </fo:block>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$master-name='titlepage1'"></xsl:when>
+    <xsl:when test="$master-name='oneside1'">
+      <fo:static-content flow-name="xsl-region-before">
+        <fo:block text-align="center">
+          <xsl:copy-of select="$head"/>
+        </fo:block>
+      </fo:static-content>
+    </xsl:when>
+    <xsl:when test="$master-name='twoside1'">
+      <fo:static-content flow-name="xsl-region-before-left">
+        <fo:block text-align="right">
+          <xsl:copy-of select="$head"/>
+        </fo:block>
+      </fo:static-content>
+      <fo:static-content flow-name="xsl-region-before-right">
+        <fo:block text-align="left">
+          <xsl:copy-of select="$head"/>
+        </fo:block>
+      </fo:static-content>
+    </xsl:when>
+    <xsl:when test="$master-name='titlepage2'"></xsl:when>
+    <xsl:when test="$master-name='oneside2'">
+      <fo:static-content flow-name="xsl-region-before">
+        <fo:block text-align="center">
+          <xsl:copy-of select="$head"/>
+        </fo:block>
+      </fo:static-content>
+    </xsl:when>
+    <xsl:when test="$master-name='twoside2'">
+      <fo:static-content flow-name="xsl-region-before-left">
+        <fo:block text-align="right">
+          <xsl:copy-of select="$head"/>
+        </fo:block>
+      </fo:static-content>
+      <fo:static-content flow-name="xsl-region-before-right">
+        <fo:block text-align="left">
+          <xsl:copy-of select="$head"/>
+        </fo:block>
+      </fo:static-content>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="running.foot.mode">
+  <xsl:param name="master-name" select="'unknown'"/>
+  <xsl:variable name="foot">
+    <fo:page-number/>
+  </xsl:variable>
+  <!-- by default, the page number -->
+  <xsl:choose>
+    <xsl:when test="$master-name='titlepage1'"></xsl:when>
+    <xsl:when test="$master-name='oneside1'">
+      <fo:static-content flow-name="xsl-region-after">
+        <fo:block text-align="center" font-size="{$body.font.size}">
+          <xsl:copy-of select="$foot"/>
+        </fo:block>
+      </fo:static-content>
+    </xsl:when>
+    <xsl:when test="$master-name='twoside1'">
+      <fo:static-content flow-name="xsl-region-after-left">
+        <fo:block text-align="left" font-size="{$body.font.size}">
+          <xsl:copy-of select="$foot"/>
+        </fo:block>
+      </fo:static-content>
+      <fo:static-content flow-name="xsl-region-after-right">
+        <fo:block text-align="right" font-size="{$body.font.size}">
+          <xsl:copy-of select="$foot"/>
+        </fo:block>
+      </fo:static-content>
+    </xsl:when>
+    <xsl:when test="$master-name='titlepage2'"></xsl:when>
+    <xsl:when test="$master-name='oneside2'">
+      <fo:static-content flow-name="xsl-after-before">
+        <fo:block text-align="center" font-size="{$body.font.size}">
+          <xsl:copy-of select="$foot"/>
+        </fo:block>
+      </fo:static-content>
+    </xsl:when>
+    <xsl:when test="$master-name='twoside2'">
+      <fo:static-content flow-name="xsl-region-after-left">
+        <fo:block text-align="left" font-size="{$body.font.size}">
+          <xsl:copy-of select="$foot"/>
+        </fo:block>
+      </fo:static-content>
+      <fo:static-content flow-name="xsl-region-after-right">
+        <fo:block text-align="right" font-size="{$body.font.size}">
+          <xsl:copy-of select="$foot"/>
+        </fo:block>
+      </fo:static-content>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set|book|part|reference" mode="running.foot.mode">
+  <!-- nothing -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/param.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/param.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/param.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1170 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: param.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id: param.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>Formatting Object Parameter Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes each of the Formatting Object
+Stylesheet parameters.  These are the <quote>easily
+customizable</quote> parts of the stylesheet.  If you want to specify
+an alternate value for one or more of these parameters, you can do so
+in a <quote>driver</quote> stylesheet.</para>
+
+<para>For example, if you want to turn on automatic section numbering,
+you might create a driver stylesheet like this:</para>
+
+<programlisting><![CDATA[<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+  <xsl:import href="/path/to/fo/docbook.xsl"/>
+
+  <xsl:param name="section.autolabel" select="1"/>
+
+</xsl:stylesheet>]]></programlisting>
+
+<para>Naturally, you have to change the
+<sgmltag class='attribute'>href</sgmltag> attribute on
+<literal>&lt;xsl:import&gt;</literal>
+to point to <filename>docbook.xsl</filename>
+on your system.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<xsl:param name="author.othername.in.middle" select="1"/>
+<xsl:param name="html.stylesheet">docbook.css</xsl:param>
+<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+<xsl:param name="refentry.xref.manvolnum" select="1"/>
+<xsl:param name="show.comments" select="1"/>
+<xsl:param name="funcsynopsis.style">kr</xsl:param>
+<xsl:param name="funcsynopsis.decoration" select="1"/>
+<xsl:param name="refentry.generate.name" select="1"/>
+
+<xsl:param name="admon.graphics" select="0"/>
+<xsl:param name="admon.graphics.path">../images/</xsl:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.graphics.extension" select="'.png'" doc:type='string'/>
+
+<doc:param name="admon.graphics.extension" xmlns="">
+<refpurpose>Extension for admonition graphics</refpurpose>
+<refdescription>
+<para>Sets the extension to use on admonition graphics.</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="section.autolabel" select="0"/>
+<xsl:param name="section.label.includes.component.label" select="0"/>
+<xsl:param name="chapter.autolabel" select="1"/>
+<xsl:param name="appendix.autolabel" select="1"/>
+<xsl:param name="part.autolabel" select="1"/>
+<xsl:param name="preface.autolabel" select="0"/>
+
+<xsl:param name="biblioentry.item.separator">. </xsl:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="qandadiv.autolabel" select="1"/>
+
+<doc:variable name="qandadiv.autolabel" xmlns="">
+<refpurpose>Are divisions in QAndASets enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled qandadivs will be enumerated.
+</para>
+</refdescription>
+</doc:variable>
+
+<!-- ==================================================================== -->
+<xsl:param name="qanda.inherit.numeration" select="0"/>
+
+<doc:variable name="qanda.inherit.numeration" xmlns="">
+<refpurpose>Does enumeration of QandASet components inherit the numeration of parent elements?</refpurpose>
+<refdescription>
+<para>If true (non-zero), numbered QandADiv elements and Questions and Answers inherit
+the numeration of the ancestors of the QandASet.
+</para>
+</refdescription>
+</doc:variable>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="graphic.default.extension"></xsl:param>
+
+<doc:variable name="graphic.default.extension" xmlns="">
+<refpurpose>Default extension for graphic filenames</refpurpose>
+<refdescription>
+<para>If a <sgmltag>graphic</sgmltag> or <sgmltag>mediaobject</sgmltag>
+includes a reference to a filename that does not include an extension,
+and the <sgmltag class="attribute">format</sgmltag> attribute is
+<emphasis>unspecified</emphasis>, the default extension will be used.
+</para>
+</refdescription>
+</doc:variable>
+
+<!-- ==================================================================== -->
+<xsl:attribute-set name="formal.title.properties"
+                   use-attribute-sets="normal.para.spacing">
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="font-size">12pt</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+
+<doc:attribute-set name="formal.title.properties" xmlns="">
+<refpurpose>Properties of formal object titles</refpurpose>
+<refdescription>
+<para>This attribute set is used to specify the properties of formal
+object titles.
+</para>
+</refdescription>
+</doc:attribute-set>
+
+<!-- ==================================================================== -->
+<xsl:attribute-set name="component.title.properties">
+  <xsl:attribute name="space-before.optimum">2em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">1.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">2.2em</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="font-size">18pt</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1.5em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">1.3em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">1.8em</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+
+<doc:attribute-set name="component.title.properties" xmlns="">
+<refpurpose>Properties of component titles</refpurpose>
+<refdescription>
+<para>This attribute set is used to specify the properties of component
+titles.
+</para>
+</refdescription>
+</doc:attribute-set>
+
+<!-- ==================================================================== -->
+<xsl:attribute-set name="admonition.title.properties">
+  <xsl:attribute name="font-size">14pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+
+<doc:attribute-set name="admonition.title.properties" xmlns="">
+<refpurpose>Properties of admonition titles</refpurpose>
+<refdescription>
+<para>This attribute set is used to specify the properties of admonition
+titles.
+</para>
+</refdescription>
+</doc:attribute-set>
+
+<!-- ==================================================================== -->
+<xsl:attribute-set name="toc.margin.properties">
+  <xsl:attribute name="space-before.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">2em</xsl:attribute>
+  <xsl:attribute name="space-after.minimum">0.5em</xsl:attribute>
+  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-after.maximum">2em</xsl:attribute>
+</xsl:attribute-set>
+
+<!-- ==================================================================== -->
+<xsl:attribute-set name="verbatim.properties">
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+
+<!-- ==================================================================== -->
+<xsl:attribute-set name="monospace.verbatim.properties"
+                   use-attribute-sets="verbatim.properties">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$monospace.font.family"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-size">
+    <xsl:value-of select="$body.font.master * 0.9"/>
+    <xsl:text>pt</xsl:text>
+  </xsl:attribute>
+</xsl:attribute-set>
+
+<!-- ==================================================================== -->
+<xsl:attribute-set name="xref.properties">
+<!--
+  <xsl:attribute name="background-color">#F0F0F0</xsl:attribute>
+  <xsl:attribute name="padding-start">1pt</xsl:attribute>
+  <xsl:attribute name="padding-end">1pt</xsl:attribute>
+-->
+</xsl:attribute-set>
+
+<doc:attribute-set name="xref.properties" xmlns="">
+<refpurpose>Visual properties of hotlinks</refpurpose>
+<refdescription>
+<para>This attribute set is used to specify properties of xrefs
+</para>
+</refdescription>
+</doc:attribute-set>
+
+<!-- ==================================================================== -->
+<xsl:param name="insert.xref.page.number" select="0" doc:type='boolean'/>
+<doc:param name="insert.xref.page.number" xmlns="">
+<refpurpose>Turns page numbers in xrefs on and off</refpurpose>
+<refdescription>
+<para>When equal to 1, this parameter triggers generation of page
+number citations after xrefs.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:attribute-set name="normal.para.spacing">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+
+<doc:attribute-set name="normal.para.spacing" xmlns="">
+<refpurpose>Spacing properties of normal paragraphs</refpurpose>
+<refdescription>
+<para>This attribute set is used to specify the spacing properties
+of normal paragraphs.
+</para>
+</refdescription>
+</doc:attribute-set>
+
+<!-- ==================================================================== -->
+
+<xsl:attribute-set name="list.block.spacing">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+
+<doc:attribute-set name="list.block.spacing" xmlns="">
+<refpurpose>Spacing properties of list blocks</refpurpose>
+<refdescription>
+<para>This attribute set is used to specify the spacing properties
+of list blocks.
+</para>
+</refdescription>
+</doc:attribute-set>
+
+<!-- ==================================================================== -->
+
+<xsl:attribute-set name="list.item.spacing">
+  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
+</xsl:attribute-set>
+
+<doc:attribute-set name="list.item.spacing" xmlns="">
+<refpurpose>Spacing properties of list items</refpurpose>
+<refdescription>
+<para>This attribute set is used to specify the spacing properties
+of list items.
+</para>
+</refdescription>
+</doc:attribute-set>
+
+<!-- ==================================================================== -->
+<xsl:param name="rootid" select="''"/>
+
+<doc:param name="rootid" xmlns="">
+<refpurpose>Specify the root element to format</refpurpose>
+<refdescription>
+<para>If <parameter>rootid</parameter> is specified, it must be the
+value of an ID that occurs in the document being formatted. The entire
+document will be loaded and parsed, but formatting will begin at the
+element identified, rather than at the root. For example, this allows
+you to process only chapter 4 of a book.</para>
+<para>Because the entire document is available to the processor, automatic
+numbering, cross references, and other dependencies are correctly
+resolved.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics" select="'0'"/>
+
+<doc:param name="callout.graphics" xmlns="">
+<refpurpose>Use graphics for callouts?</refpurpose>
+<refdescription>
+<para>If non-zero, callouts are presented with graphics (e.g., reverse-video
+circled numbers instead of "(1)", "(2)", etc.).
+Default graphics are provided in the distribution.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.unicode" select="1"/>
+
+<doc:param name="callout.unicode" xmlns="">
+<refpurpose>First character to use for Unicode callouts</refpurpose>
+<refdescription>
+<para>If non-zero, callouts are presented with Unicode characters
+starting with the character specified. Zero indicates that Unicode
+callouts should not be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.dingbats" select="'0'"/>
+
+<doc:param name="callout.dingbats" xmlns="">
+<refpurpose>Use Zapf Dingbats for callouts?</refpurpose>
+<refdescription>
+<para>If non-zero, callouts are presented with Zapf Dingbats.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.unicode.start.character" select="10102"
+           doc:type='integer'/>
+
+<doc:param name="callout.unicode.start.character" xmlns="">
+<refpurpose>Number of the largest callout graphic</refpurpose>
+<refdescription>
+<para>If <parameter>callout.graphics</parameter>
+is non-zero, graphics are used to represent
+callout numbers. The value of
+<parameter>callout.graphics.number.limit</parameter>
+is
+the largest number for which a graphic exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.unicode.number.limit" select="'10'"
+           doc:type='integer'/>
+
+<doc:param name="callout.unicode.number.limit" xmlns="">
+<refpurpose>Number of the largest callout graphic</refpurpose>
+<refdescription>
+<para>If <parameter>callout.graphics</parameter>
+is non-zero, graphics are used to represent
+callout numbers. The value of
+<parameter>callout.graphics.number.limit</parameter>
+is
+the largest number for which a graphic exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.extension" select="'.png'"/>
+
+<doc:param name="callout.graphics.extension" xmlns="">
+<refpurpose>Extension for callout graphics</refpurpose>
+<refdescription>
+<para>Sets the extension to use on callout graphics.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.path" select="'../images/callouts/'"/>
+
+<doc:param name="callout.graphics.path" xmlns="">
+<refpurpose>Path to callout graphics</refpurpose>
+<refdescription>
+<para>Sets the path, probably relative to the directory where the HTML
+files are created, to the callout graphics.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.number.limit" select="'10'"/>
+
+<doc:param name="callout.graphics.number.limit" xmlns="">
+<refpurpose>Number of the largest callout graphic</refpurpose>
+<refdescription>
+<para>If <parameter>callout.graphics</parameter>
+is non-zero, graphics are used to represent
+callout numbers. The value of
+<parameter>callout.graphics.number.limit</parameter>
+is
+the largest number for which a graphic exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="use.extensions" select="'0'"/>
+
+<doc:param name="use.extensions" xmlns="">
+<refpurpose>Enable extensions</refpurpose>
+<refdescription>
+<para>If non-zero, extensions may be used. Each extension is
+further controlled by its own parameter. But if
+<parameter>use.extensions</parameter> is zero, no extensions will
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="textinsert.extension" select="'1'"/>
+
+<doc:param name="textinsert.extension" xmlns="">
+<refpurpose>Enable the textinsert extension element</refpurpose>
+<refdescription>
+<para>The textinsert extension element inserts the contents of a
+a file into the result tree (as text).
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.extension" select="'1'"/>
+
+<doc:param name="linenumbering.extension" xmlns="">
+<refpurpose>Enable the line numbering extension</refpurpose>
+<refdescription>
+<para>If true, verbatim environments (elements that have the
+format='linespecific' notation attribute: address, literallayout,
+programlisting, screen, synopsis) that specify line numbering will
+have, surprise, line numbers.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.everyNth" select="'5'"/>
+
+<doc:param name="linenumbering.everyNth" xmlns="">
+<refpurpose>Indicate which lines should be numbered</refpurpose>
+<refdescription>
+<para>If line numbering is enabled, everyNth line will be numbered.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.width" select="'3'"/>
+
+<doc:param name="linenumbering.width" xmlns="">
+<refpurpose>Indicates the width of line numbers</refpurpose>
+<refdescription>
+<para>If line numbering is enabled, line numbers will appear right
+justified in a field "width" characters wide.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.separator" select="' '"/>
+
+<doc:param name="linenumbering.separator" xmlns="">
+<refpurpose>Specify a separator between line numbers and lines</refpurpose>
+<refdescription>
+<para>The separator is inserted between line numbers and lines in
+the verbatim environment.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callouts.extension" select="'1'"/>
+
+<doc:param name="callouts.extension" xmlns="">
+<refpurpose>Enable the callout extension</refpurpose>
+<refdescription>
+<para>The callouts extension processes <sgmltag>areaset</sgmltag>
+elements in <sgmltag>ProgramListingCO</sgmltag> and other text-based
+callout elements.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.defaultcolumn" select="'60'"/>
+
+<doc:param name="callout.defaultcolumn" xmlns="">
+<refpurpose>Indicates what column callouts appear in by default</refpurpose>
+<refdescription>
+<para>If a callout does not identify a column (for example, if it uses
+the <literal>linerange</literal> <sgmltag class="attribute">unit</sgmltag>),
+it will appear in the default column.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="tablecolumns.extension" select="'1'" doc:type='boolean'/>
+
+<doc:param name="tablecolumns.extension" xmlns="">
+<refpurpose>Enable the table columns extension function</refpurpose>
+<refdescription>
+<para>The table columns extension function adjusts the widths of table
+columns in the HTML result to more accurately reflect the specifications
+in the CALS table.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="nominal.table.width" select="'6in'" doc:type='length'/>
+
+<doc:param name="nominal.table.width" xmlns="">
+<refpurpose>The (absolute) nominal width of tables</refpurpose>
+<refdescription>
+<para>In order to convert CALS column widths into FO column widths, it
+is sometimes necessary to have an absolute table width to use for conversion
+of mixed absolute and relative widths. This value must be an absolute
+length (not a percentage).</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="default.table.width" select="''" doc:type='length'/>
+
+<doc:param name="default.table.width" xmlns="">
+<refpurpose>The default width of tables</refpurpose>
+<refdescription>
+<para>If specified, this value will be used for the WIDTH attribute on
+tables that do not specify an alternate width (with the dbhtml processing
+instruction).</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="paper.type" select="'USletter'"/>
+<doc:param name="paper.type" xmlns="">
+<refpurpose>Select the paper type</refpurpose>
+<refdescription>
+<para>The paper type is a convenient way to specify the paper size.
+The list of known paper sizes includes USletter and most of the A,
+B, and C sizes. See <literal>page.width.portrait</literal>, for example.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="page.orientation" select="'portrait'"/>
+<doc:param name="page.orientation" xmlns="">
+<refpurpose>Select the page orientation</refpurpose>
+<refdescription>
+<para>In portrait orientation, the short edge is horizontal; in
+landscape orientation, it is vertical.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="page.width.portrait">
+  <xsl:choose>
+    <xsl:when test="$paper.type = 'USletter'">8.5in</xsl:when>
+    <xsl:when test="$paper.type = '4A0'">1682mm</xsl:when>
+    <xsl:when test="$paper.type = '2A0'">1189mm</xsl:when>
+    <xsl:when test="$paper.type = 'A0'">841mm</xsl:when>
+    <xsl:when test="$paper.type = 'A1'">594mm</xsl:when>
+    <xsl:when test="$paper.type = 'A2'">420mm</xsl:when>
+    <xsl:when test="$paper.type = 'A3'">297mm</xsl:when>
+    <xsl:when test="$paper.type = 'A4'">210mm</xsl:when>
+    <xsl:when test="$paper.type = 'A5'">148mm</xsl:when>
+    <xsl:when test="$paper.type = 'A6'">105mm</xsl:when>
+    <xsl:when test="$paper.type = 'A7'">74mm</xsl:when>
+    <xsl:when test="$paper.type = 'A8'">52mm</xsl:when>
+    <xsl:when test="$paper.type = 'A9'">37mm</xsl:when>
+    <xsl:when test="$paper.type = 'A10'">26mm</xsl:when>
+    <xsl:when test="$paper.type = 'B0'">1000mm</xsl:when>
+    <xsl:when test="$paper.type = 'B1'">707mm</xsl:when>
+    <xsl:when test="$paper.type = 'B2'">500mm</xsl:when>
+    <xsl:when test="$paper.type = 'B3'">353mm</xsl:when>
+    <xsl:when test="$paper.type = 'B4'">250mm</xsl:when>
+    <xsl:when test="$paper.type = 'B5'">176mm</xsl:when>
+    <xsl:when test="$paper.type = 'B6'">125mm</xsl:when>
+    <xsl:when test="$paper.type = 'B7'">88mm</xsl:when>
+    <xsl:when test="$paper.type = 'B8'">62mm</xsl:when>
+    <xsl:when test="$paper.type = 'B9'">44mm</xsl:when>
+    <xsl:when test="$paper.type = 'B10'">31mm</xsl:when>
+    <xsl:when test="$paper.type = 'C0'">917mm</xsl:when>
+    <xsl:when test="$paper.type = 'C1'">648mm</xsl:when>
+    <xsl:when test="$paper.type = 'C2'">458mm</xsl:when>
+    <xsl:when test="$paper.type = 'C3'">324mm</xsl:when>
+    <xsl:when test="$paper.type = 'C4'">229mm</xsl:when>
+    <xsl:when test="$paper.type = 'C5'">162mm</xsl:when>
+    <xsl:when test="$paper.type = 'C6'">114mm</xsl:when>
+    <xsl:when test="$paper.type = 'C7'">81mm</xsl:when>
+    <xsl:when test="$paper.type = 'C8'">57mm</xsl:when>
+    <xsl:when test="$paper.type = 'C9'">40mm</xsl:when>
+    <xsl:when test="$paper.type = 'C10'">28mm</xsl:when>
+    <xsl:otherwise>8.5in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<doc:param name="page.width.portrait" xmlns="">
+<refpurpose>Specify the physical size of the short edge of the page</refpurpose>
+<refdescription>
+<para>The portrait page width is the length of the short
+edge of the physical page.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="page.height.portrait">
+  <xsl:choose>
+    <xsl:when test="$paper.type = 'A4landscape'">210mm</xsl:when>
+    <xsl:when test="$paper.type = 'USletter'">11in</xsl:when>
+    <xsl:when test="$paper.type = 'USlandscape'">8.5in</xsl:when>
+    <xsl:when test="$paper.type = '4A0'">2378mm</xsl:when>
+    <xsl:when test="$paper.type = '2A0'">1682mm</xsl:when>
+    <xsl:when test="$paper.type = 'A0'">1189mm</xsl:when>
+    <xsl:when test="$paper.type = 'A1'">841mm</xsl:when>
+    <xsl:when test="$paper.type = 'A2'">594mm</xsl:when>
+    <xsl:when test="$paper.type = 'A3'">420mm</xsl:when>
+    <xsl:when test="$paper.type = 'A4'">297mm</xsl:when>
+    <xsl:when test="$paper.type = 'A5'">210mm</xsl:when>
+    <xsl:when test="$paper.type = 'A6'">148mm</xsl:when>
+    <xsl:when test="$paper.type = 'A7'">105mm</xsl:when>
+    <xsl:when test="$paper.type = 'A8'">74mm</xsl:when>
+    <xsl:when test="$paper.type = 'A9'">52mm</xsl:when>
+    <xsl:when test="$paper.type = 'A10'">37mm</xsl:when>
+    <xsl:when test="$paper.type = 'B0'">1414mm</xsl:when>
+    <xsl:when test="$paper.type = 'B1'">1000mm</xsl:when>
+    <xsl:when test="$paper.type = 'B2'">707mm</xsl:when>
+    <xsl:when test="$paper.type = 'B3'">500mm</xsl:when>
+    <xsl:when test="$paper.type = 'B4'">353mm</xsl:when>
+    <xsl:when test="$paper.type = 'B5'">250mm</xsl:when>
+    <xsl:when test="$paper.type = 'B6'">176mm</xsl:when>
+    <xsl:when test="$paper.type = 'B7'">125mm</xsl:when>
+    <xsl:when test="$paper.type = 'B8'">88mm</xsl:when>
+    <xsl:when test="$paper.type = 'B9'">62mm</xsl:when>
+    <xsl:when test="$paper.type = 'B10'">44mm</xsl:when>
+    <xsl:when test="$paper.type = 'C0'">1297mm</xsl:when>
+    <xsl:when test="$paper.type = 'C1'">917mm</xsl:when>
+    <xsl:when test="$paper.type = 'C2'">648mm</xsl:when>
+    <xsl:when test="$paper.type = 'C3'">458mm</xsl:when>
+    <xsl:when test="$paper.type = 'C4'">324mm</xsl:when>
+    <xsl:when test="$paper.type = 'C5'">229mm</xsl:when>
+    <xsl:when test="$paper.type = 'C6'">162mm</xsl:when>
+    <xsl:when test="$paper.type = 'C7'">114mm</xsl:when>
+    <xsl:when test="$paper.type = 'C8'">81mm</xsl:when>
+    <xsl:when test="$paper.type = 'C9'">57mm</xsl:when>
+    <xsl:when test="$paper.type = 'C10'">40mm</xsl:when>
+    <xsl:otherwise>11in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<doc:param name="page.height.portrait" xmlns="">
+<refpurpose>Specify the physical size of the long edge of the page</refpurpose>
+<refdescription>
+<para>The portrait page height is the length of the long
+edge of the physical page.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="page.width">
+  <xsl:choose>
+    <xsl:when test="$page.orientation = 'portrait'">
+      <xsl:value-of select="$page.width.portrait"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$page.height.portrait"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<doc:param name="page.width" xmlns="">
+<refpurpose>The width of the physical page</refpurpose>
+<refdescription>
+<para>The page width is generally calculated from the
+<literal>paper.type</literal> and
+<literal>page.orientation</literal>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="page.height">
+  <xsl:choose>
+    <xsl:when test="$page.orientation = 'portrait'">
+      <xsl:value-of select="$page.height.portrait"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$page.width.portrait"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<doc:param name="page.height" xmlns="">
+<refpurpose>The height of the physical page</refpurpose>
+<refdescription>
+<para>The page height is generally calculated from the
+<literal>paper.type</literal> and
+<literal>page.orientation</literal>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="double.sided" select="'0'"/>
+
+<doc:param name="double.sided" xmlns="">
+<refpurpose>Is the document to be printed double sided?</refpurpose>
+<refdescription>
+<para>Double-sided documents are printed with a slightly wider margin
+on the binding edge of the page.
+</para>
+<para>FIXME: The current set of parameters does not take writing direction
+into account.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="column.count" select="'1'"/>
+
+<doc:param name="column.count" xmlns="">
+<refpurpose>Specifies the number of columns of text on the page</refpurpose>
+<refdescription>
+<para>The specified number of columns of text will appear on each page.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="region.after.extent" select="'12pt'"/>
+
+<doc:param name="region.after.extent" xmlns="">
+<refpurpose>Specifies the height of the footer.</refpurpose>
+<refdescription>
+<para>The region after extent is the height of the area where footers
+are printed.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="region.before.extent" select="'12pt'"/>
+
+<doc:param name="region.before.extent" xmlns="">
+<refpurpose>Specifies the height of the header</refpurpose>
+<refdescription>
+<para>The region before extent is the height of the area where headers
+are printed.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="page.margin.top">1in</xsl:param>
+
+<doc:param name="page.margin.top" xmlns="">
+<refpurpose>The top margin of the page</refpurpose>
+<refdescription>
+<para>The top page margin is the distance from the physical top of the
+page to the first line of text (body or header).
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="page.margin.bottom">1in</xsl:param>
+
+<doc:param name="page.margin.bottom" xmlns="">
+<refpurpose>The bottom margin of the page</refpurpose>
+<refdescription>
+<para>The bottom page margin is the distance from the physical bottom of
+the page to the last line of text (body or footer).
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="page.margin.inner">
+  <xsl:choose>
+    <xsl:when test="$double.sided != 0">1.25in</xsl:when>
+    <xsl:otherwise>1in</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<doc:param name="page.margin.inner" xmlns="">
+<refpurpose>The inner page margin</refpurpose>
+<refdescription>
+<para>The inner page margin is the distance from binding edge of the
+page to the first column of text. In the left-to-right, top-to-bottom writing
+direction, this is the left margin of recto pages.</para>
+<para>The inner and outer margins are usually the same unless the output
+is double-sided.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="page.margin.outer">
+  <xsl:choose>
+    <xsl:when test="$double.sided != 0">0.75in</xsl:when>
+    <xsl:otherwise>10pc</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<doc:param name="page.margin.outer" xmlns="">
+<refpurpose>The outer page margin</refpurpose>
+<refdescription>
+<para>The outer page margin is the distance from non-binding edge of the
+page to the last column of text. In the left-to-right, top-to-bottom writing
+direction, this is the right margin of recto pages.</para>
+<para>The inner and outer margins are usually the same unless the output
+is double-sided.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="body.margin.bottom">24pt</xsl:param>
+
+<doc:param name="body.margin.bottom" xmlns="">
+<refpurpose>The bottom margin of the body text</refpurpose>
+<refdescription>
+<para>The body bottom margin is the distance from the last line of text
+in the page body to the bottom page margin. Note that the page footer, if
+any, appears in the space between the body bottom margin and the page
+bottom margin.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="body.margin.top">24pt</xsl:param>
+
+<doc:param name="body.margin.top" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>The body top margin is the distance from the page top margin to
+the first line of text
+in the page body. Note that the page header, if
+any, appears in the space between the page top margin and the body
+top margin.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="body.font.family">Times Roman</xsl:param>
+
+<doc:param name="body.font.family" xmlns="">
+<refpurpose>The default font family for body text</refpurpose>
+<refdescription>
+<para>The body font family is the default font used for text in the page body.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="title.font.family">Helvetica</xsl:param>
+
+<doc:param name="title.font.family" xmlns="">
+<refpurpose>The default font family for titles</refpurpose>
+<refdescription>
+<para>The title font family is used for titles (chapter, section, figure,
+etc.)
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="monospace.font.family">Courier</xsl:param>
+
+<doc:param name="monospace.font.family" xmlns="">
+<refpurpose>The default font family for monospace environments</refpurpose>
+<refdescription>
+<para>The monospace font family is used for verbatim environments
+(program listings, screens, etc.).
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="sans.font.family">Helvetica</xsl:param>
+
+<doc:param name="sans.font.family" xmlns="">
+<refpurpose>The default sans-serif font family</refpurpose>
+<refdescription>
+<para>The default sans-serif font family. At the present, this isn't
+actually used by the stylesheets.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="body.font.master">10</xsl:param>
+
+<doc:param name="body.font.master" xmlns="">
+<refpurpose>Specifies the default point size for body text</refpurpose>
+<refdescription>
+<para>The body font size is specified in two parameters
+(<varname>body.font.master</varname> and <varname>body.font.size</varname>)
+so that math can be performed on the font size by XSLT.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="body.font.size">
+ <xsl:value-of select="$body.font.master"/><xsl:text>pt</xsl:text>
+</xsl:param>
+
+<doc:param name="body.font.size" xmlns="">
+<refpurpose>Specifies the default font size for body text</refpurpose>
+<refdescription>
+<para>The body font size is specified in two parameters
+(<varname>body.font.master</varname> and <varname>body.font.size</varname>)
+so that math can be performed on the font size by XSLT.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="footnote.font.size">
+ <xsl:value-of select="$body.font.master * 0.8"/><xsl:text>pt</xsl:text>
+</xsl:param>
+
+<doc:param name="footnote.font.size" xmlns="">
+<refpurpose>The font size for footnotes</refpurpose>
+<refdescription>
+<para>The footnote font size is used for...footnotes!
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<!-- general H&J setup -->
+<xsl:param name="hyphenate">true</xsl:param>
+
+<doc:param name="hyphenate" xmlns="">
+<refpurpose>Specify hyphenation behavior</refpurpose>
+<refdescription>
+<para>If true, words may be hyphenated. Otherwise, they may not.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="alignment">justify</xsl:param>
+
+<doc:param name="alignment" xmlns="">
+<refpurpose>Specify the default text alignment</refpurpose>
+<refdescription>
+<para>The default text alignment is used for most body text.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="stylesheet.result.type" select="'fo'"/>
+
+<doc:param name="stylesheet.result.type" xmlns="">
+<refpurpose>Identifies the output format of this stylesheet</refpurpose>
+<refdescription>
+<para>The extension functions need to know if the output format
+is HTML ('html') or XSL Formatting Objects ('fo'). This variable answers
+that question. Valid settings are 'html' or 'fo'.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.component.toc" select="0" doc:type='boolean'/>
+
+<doc:param name="generate.component.toc" xmlns="">
+<refpurpose>Generate a table of contents for components?</refpurpose>
+<refdescription>
+<para>If non-zero, a table of contents is generated at the beginning
+of each component (chapters, appendixes, etc.)
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.division.toc" select="1" doc:type='boolean'/>
+
+<doc:param name="generate.division.toc" xmlns="">
+<refpurpose>Generate a table of contents for divisions?</refpurpose>
+<refdescription>
+<para>If non-zero, a table of contents is generated at the beginning
+of each division (sets, books, etc.)
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="generate.book.toc" select="'1'" doc:type='boolean'/>
+<xsl:param name="process.source.toc" select='0' doc:type='boolean'/>
+<xsl:param name="process.empty.source.toc" select='0' doc:type='boolean'/>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.division.figure.lot" select="1" doc:type='boolean'/>
+
+<doc:param name="generate.division.figure.lot" xmlns="">
+<refpurpose>Generate a list of titles for Figures?</refpurpose>
+<refdescription>
+<para>If non-zero, a list of titles is generated for Figures.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.division.example.lot" select="1" doc:type='boolean'/>
+
+<doc:param name="generate.division.example.lot" xmlns="">
+<refpurpose>Generate a list of titles for Examples?</refpurpose>
+<refdescription>
+<para>If non-zero, a list of titles is generated for Examples.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.division.equation.lot" select="1" doc:type='boolean'/>
+
+<doc:param name="generate.division.equation.lot" xmlns="">
+<refpurpose>Generate a list of titles for Equations?</refpurpose>
+<refdescription>
+<para>If non-zero, a list of titles is generated for Equations.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.division.table.lot" select="1" doc:type='boolean'/>
+
+<doc:param name="generate.division.table.lot" xmlns="">
+<refpurpose>Generate a list of titles for Tables?</refpurpose>
+<refdescription>
+<para>If non-zero, a list of titles is generated for Tables.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.book.figure.lot" select="1" doc:type='boolean'/>
+<xsl:param name="generate.book.example.lot" select="1" doc:type='boolean'/>
+<xsl:param name="generate.book.equation.lot" select="1" doc:type='boolean'/>
+<xsl:param name="generate.book.table.lot" select="1" doc:type='boolean'/>
+
+<!-- ==================================================================== -->
+<xsl:param name="passivetex.extensions" select="0" doc:type='boolean'/>
+
+<doc:param name="passivetex.extensions" xmlns="">
+<refpurpose>Enable PassiveTeX extensions?</refpurpose>
+<refdescription>
+<para>If non-zero,
+<ulink url="http://users.ox.ac.uk/~rahtz/passivetex/">PassiveTeX</ulink>
+extensions will be used. At present, this consists of PDF bookmarks
+and sorted index terms.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="arbortext.extensions" select="0" doc:type='boolean'/>
+
+<doc:param name="arbortext.extensions" xmlns="">
+<refpurpose>Enable Arbortext extensions?</refpurpose>
+<refdescription>
+<para>If non-zero,
+<ulink url="http://www.arbortext.com/">Arbortext</ulink>
+extensions will be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="fop.extensions" select="0" doc:type='boolean'/>
+
+<doc:param name="fop.extensions" xmlns="">
+<refpurpose>Enable FOP extensions?</refpurpose>
+<refdescription>
+<para>If non-zero,
+<ulink url="http://xml.apache.org/fop/">FOP</ulink>
+extensions will be used. At present, this consists of PDF bookmarks.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="default.units" select="'pt'" doc:type='list'
+           doc:list='cm mm in pt pc px em'/>
+
+<doc:param name="default.units" xmlns="">
+<refpurpose>Default units for an unqualified dimension</refpurpose>
+<refdescription>
+<para>If an unqualified dimension is encountered (for example, in a
+graphic width), the <parameter>default-units</parameter> will be used for the
+units. Unqualified dimensions are not allowed in XSL Formatting Objects.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="generate.index" select="1" doc:type='boolean'/>
+
+<!-- ==================================================================== -->
+<xsl:param name="label.from.part" select="'0'" doc:type='boolean'/>
+
+<doc:param name="label.from.part" xmlns="">
+<refpurpose>Renumber chapters in each part?</refpurpose>
+<refdescription>
+<para>If <parameter>label.from.part</parameter> is non-zero, components
+(<sgmltag>chapter</sgmltag>s, <sgmltag>appendixe</sgmltag>s, etc.)
+will be numbered from 1 in each <sgmltag>part</sgmltag>. Otherwise,
+they will be numbered monotonically throughout each
+<sgmltag>book</sgmltag>.
+</para>
+</refdescription>
+</doc:param>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/pi.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/pi.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/pi.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,183 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: pi.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="processing-instruction()">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbfo-attribute">
+  <xsl:param name="pis" select="processing-instruction('dbfo')"/>
+  <xsl:param name="attribute">filename</xsl:param>
+  <xsl:param name="count">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($pis)">
+      <!-- not found -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pi">
+        <xsl:value-of select="$pis[$count]"/>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="contains($pi,concat($attribute, '='))">
+          <xsl:variable name="rest" select="substring-after($pi,concat($attribute,'='))"/>
+          <xsl:variable name="quote" select="substring($rest,1,1)"/>
+          <xsl:value-of select="substring-before(substring($rest,2),$quote)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="dbfo-attribute">
+            <xsl:with-param name="pis" select="$pis"/>
+            <xsl:with-param name="attribute" select="$attribute"/>
+            <xsl:with-param name="count" select="$count + 1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="dbfo-filename">
+  <xsl:param name="pis" select="./processing-instruction('dbfo')"/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute">filename</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dbfo-dir">
+  <xsl:param name="pis" select="./processing-instruction('dbfo')"/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute">dir</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.cmdsynopsis.list">
+  <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($cmdsynopses)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+             <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.cmdsynopsis.list">
+          <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbcmdlist')">
+  <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/>
+
+  <xsl:if test="count($cmdsynopses)&lt;1">
+    <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <dl>
+    <xsl:call-template name="process.cmdsynopsis.list">
+      <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.funcsynopsis.list">
+  <xsl:param name="funcsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($funcsynopses)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+              <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+                <xsl:with-param name="target" select="$cmdsyn"/>
+              </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.funcsynopsis.list">
+          <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbfunclist')">
+  <xsl:variable name="funcsynopses" select="..//funcsynopsis"/>
+
+  <xsl:if test="count($funcsynopses)&lt;1">
+    <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <dl>
+    <xsl:call-template name="process.funcsynopsis.list">
+      <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/qandaset.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/qandaset.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/qandaset.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,145 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: qandaset.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:variable name="qanda.defaultlabel">number</xsl:variable>
+<xsl:variable name="generate.qandaset.toc" select="true()"/>
+<xsl:variable name="generate.qandadiv.toc" select="false()"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="qandaset">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:if test="title">
+      <xsl:apply-templates select="title"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="*[name(.) != 'title'
+                                 and name(.) != 'qandadiv'
+                                 and name(.) != 'qandaentry']"/>
+    <xsl:apply-templates select="qandadiv"/>
+
+    <xsl:if test="qandaentry">
+      <fo:list-block xsl:use-attribute-sets="list.block.spacing"
+                     provisional-distance-between-starts="2.5em"
+                     provisional-label-separation="0.2em">
+        <xsl:apply-templates select="qandaentry"/>
+      </fo:list-block>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="qandaset/title">
+  <xsl:variable name="enclsect" select="(ancestor::section
+                                        | ancestor::simplesect
+                                        | ancestor::sect5
+                                        | ancestor::sect4
+                                        | ancestor::sect3
+                                        | ancestor::sect2
+                                        | ancestor::sect1
+                                        | ancestor::refsect3
+                                        | ancestor::refsect2
+                                        | ancestor::refsect1)[last()]"/>
+  <xsl:variable name="sectlvl">
+    <xsl:call-template name="section.level">
+      <xsl:with-param name="node" select="$enclsect"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="section.heading">
+    <xsl:with-param name="level" select="$sectlvl"/>
+    <xsl:with-param name="title" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="qandadiv">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:apply-templates select="title"/>
+    <xsl:apply-templates select="*[name(.) != 'title'
+                                 and name(.) != 'qandadiv'
+                                 and name(.) != 'qandaentry']"/>
+    <fo:block start-indent="{count(ancestor::qandadiv)*2}pc">
+      <xsl:apply-templates select="qandadiv"/>
+
+      <xsl:if test="qandaentry">
+        <fo:list-block xsl:use-attribute-sets="list.block.spacing"
+                       provisional-distance-between-starts="2.5em"
+                       provisional-label-separation="0.2em">
+          <xsl:apply-templates select="qandaentry"/>
+        </fo:list-block>
+      </xsl:if>
+    </fo:block>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="qandadiv/title">
+  <xsl:variable name="enclsect" select="(ancestor::section
+                                        | ancestor::simplesect
+                                        | ancestor::sect5
+                                        | ancestor::sect4
+                                        | ancestor::sect3
+                                        | ancestor::sect2
+                                        | ancestor::sect1
+                                        | ancestor::refsect3
+                                        | ancestor::refsect2
+                                        | ancestor::refsect1)[last()]"/>
+  <xsl:variable name="sectlvl">
+    <xsl:call-template name="section.level">
+      <xsl:with-param name="node" select="$enclsect"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="section.heading">
+    <xsl:with-param name="level" select="$sectlvl + count(ancestor::qandadiv)"/>
+    <xsl:with-param name="title" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="qandaentry">
+  <xsl:apply-templates/>
+<!--
+  <fo:block>
+    <xsl:if test="@id">
+      <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </fo:block>
+-->
+</xsl:template>
+
+<xsl:template match="question|answer">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <xsl:variable name="entry.id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <fo:list-item id="{$entry.id}" xsl:use-attribute-sets="list.item.spacing">
+    <fo:list-item-label id="{$id}" end-indent="label-end()">
+      <fo:block>
+        <xsl:call-template name="question.answer.label"/>
+      </fo:block>
+    </fo:list-item-label>
+    <fo:list-item-body start-indent="body-start()">
+      <xsl:apply-templates/>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/refentry.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/refentry.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/refentry.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,236 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: refentry.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="reference">
+   <xsl:if test="not(partintro)">
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:variable>
+    <xsl:variable name="master-name">
+      <xsl:call-template name="select.pagemaster"/>
+    </xsl:variable>
+
+    <fo:page-sequence id="{$id}"
+                      hyphenate="{$hyphenate}"
+                      master-name="{$master-name}">
+      <xsl:attribute name="language">
+        <xsl:call-template name="l10n.language"/>
+      </xsl:attribute>
+      <xsl:if test="$double.sided != 0">
+        <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+      </xsl:if>
+
+      <xsl:apply-templates select="." mode="running.head.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+      <xsl:apply-templates select="." mode="running.foot.mode">
+        <xsl:with-param name="master-name" select="$master-name"/>
+      </xsl:apply-templates>
+
+      <fo:flow flow-name="xsl-region-body">
+        <xsl:call-template name="reference.titlepage"/>
+      </fo:flow>
+    </fo:page-sequence>
+  </xsl:if>
+  <xsl:apply-templates select="partintro|refentry"/>
+</xsl:template>
+
+<xsl:template match="reference" mode="reference.titlepage.mode">
+  <xsl:call-template name="reference.titlepage"/>
+</xsl:template>
+
+<xsl:template match="reference/partintro">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::reference"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:apply-templates select=".." mode="reference.titlepage.mode"/>
+      <xsl:if test="title">
+        <xsl:call-template name="partintro.titlepage"/>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="reference/docinfo"></xsl:template>
+<xsl:template match="reference/title"></xsl:template>
+<xsl:template match="reference/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="refentry">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block font-size="20pt" font-weight="bold">
+        <!-- FIXME: is this right? -->
+        <xsl:choose>
+          <xsl:when test="refmeta/refentrytitle">
+            <xsl:apply-templates select="refmeta/refentrytitle" mode="title"/>
+          </xsl:when>
+          <xsl:when test="refnamediv/refname">
+            <xsl:apply-templates select="refnamediv/refname" mode="title"/>
+          </xsl:when>
+        </xsl:choose>
+      </fo:block>
+      <xsl:apply-templates/>
+    </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="refmeta">
+</xsl:template>
+
+<xsl:template match="manvolnum">
+  <xsl:if test="$refentry.xref.manvolnum != 0">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refmiscinfo">
+</xsl:template>
+
+<xsl:template match="refentrytitle">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="refnamediv">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="refname">
+  <xsl:if test="$refentry.generate.name != 0">
+    <fo:block font-size="18pt" font-weight="bold">
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'RefName'"/>
+      </xsl:call-template>
+     </fo:block>
+  </xsl:if>
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::refname">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refpurpose">
+  <xsl:text> </xsl:text>
+  <xsl:call-template name="dingbat">
+    <xsl:with-param name="dingbat">em-dash</xsl:with-param>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refdescriptor">
+  <!-- todo: finish this -->
+</xsl:template>
+
+<xsl:template match="refclass">
+  <fo:block font-weight="bold">
+    <xsl:if test="@role">
+      <xsl:value-of select="@role"/>
+      <xsl:text>: </xsl:text>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv">
+  <fo:block>
+    <fo:block font-size="18pt" font-weight="bold">
+      <xsl:text>Synopsis (what about the title?)</xsl:text>
+    </fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+ 
+<xsl:template match="refsynopsisdiv/title">
+</xsl:template>
+
+<xsl:template match="refsect1|refsect2|refsect3">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="refsect1/title">
+  <fo:block font-size="18pt" font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="refsect2/title">
+  <fo:block font-size="16pt" font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="refsect3/title">
+  <fo:block font-size="14pt" font-weight="bold">
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/sections.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/sections.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/sections.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,361 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: sections.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="section">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="section.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="/section">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::reference"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="section.titlepage"/>
+      <xsl:apply-templates/>
+   </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="title" mode="section.titlepage.recto.mode">
+  <xsl:variable name="section" select="(ancestor::section
+                                        |ancestor::simplesect
+                                        |ancestor::sect1
+                                        |ancestor::sect2
+                                        |ancestor::sect3
+                                        |ancestor::sect4
+                                        |ancestor::sect5)[last()]"/>
+  <fo:block keep-with-next.within-column="always">
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id">
+        <xsl:with-param name="object" select="$section"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="level">
+      <xsl:call-template name="section.level">
+        <xsl:with-param name="node" select="$section"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="title">
+      <xsl:apply-templates select="$section" mode="object.title.markup"/>
+    </xsl:variable>
+
+    <xsl:if test="$passivetex.extensions != 0">
+      <fotex:bookmark xmlns:fotex="http://www.tug.org/fotex" 
+                      fotex-bookmark-level="{$level + 1}" 
+                      fotex-bookmark-label="{$id}">
+        <xsl:value-of select="$title"/>
+      </fotex:bookmark>
+    </xsl:if>
+
+    <xsl:call-template name="section.heading">
+      <xsl:with-param name="level" select="$level"/>
+      <xsl:with-param name="title" select="$title"/>
+    </xsl:call-template>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="sect1">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="sect1.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="/sect1">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::reference"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <fo:page-sequence id="{$id}"
+                    hyphenate="{$hyphenate}"
+                    master-name="{$master-name}">
+    <xsl:attribute name="language">
+      <xsl:call-template name="l10n.language"/>
+    </xsl:attribute>
+    <xsl:if test="$double.sided != 0">
+      <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates select="." mode="running.head.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+    <xsl:apply-templates select="." mode="running.foot.mode">
+      <xsl:with-param name="master-name" select="$master-name"/>
+    </xsl:apply-templates>
+
+    <fo:flow flow-name="xsl-region-body">
+      <xsl:call-template name="sect1.titlepage"/>
+      <xsl:apply-templates/>
+   </fo:flow>
+  </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="title" mode="sect1.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect2">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="sect2.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="title" mode="sect2.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect3">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="sect3.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="title" mode="sect3.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect4">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="sect4.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="title" mode="sect4.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect5">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="sect5.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="title" mode="sect5.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="simplesect">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <fo:block id="{$id}">
+    <xsl:call-template name="simplesect.titlepage"/>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="title" mode="simplesect.titlepage.recto.mode">
+  <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="section/subtitle"></xsl:template>
+<xsl:template match="section/title"></xsl:template>
+<xsl:template match="sectioninfo"></xsl:template>
+
+<xsl:template match="sect1/title"></xsl:template>
+<xsl:template match="sect1/subtitle"></xsl:template>
+<xsl:template match="sect1info"></xsl:template>
+
+<xsl:template match="sect2/title"></xsl:template>
+<xsl:template match="sect2/subtitle"></xsl:template>
+<xsl:template match="sect2info"></xsl:template>
+
+<xsl:template match="sect3/title"></xsl:template>
+<xsl:template match="sect3/subtitle"></xsl:template>
+<xsl:template match="sect3info"></xsl:template>
+
+<xsl:template match="sect4/title"></xsl:template>
+<xsl:template match="sect4/subtitle"></xsl:template>
+<xsl:template match="sect4info"></xsl:template>
+
+<xsl:template match="sect5/title"></xsl:template>
+<xsl:template match="sect5/subtitle"></xsl:template>
+<xsl:template match="sect5info"></xsl:template>
+
+<xsl:template match="simplesect/title"></xsl:template>
+<xsl:template match="simplesect/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="section.heading">
+  <xsl:param name="level">1</xsl:param>
+  <xsl:param name="title"></xsl:param>
+  <xsl:variable name="fsize">
+    <xsl:choose>
+      <xsl:when test="$level=1">18</xsl:when>
+      <xsl:when test="$level=2">16</xsl:when>
+      <xsl:when test="$level=3">14</xsl:when>
+      <xsl:when test="$level=4">12</xsl:when>
+      <xsl:when test="$level=5">12</xsl:when>
+      <xsl:otherwise>10</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <fo:block font-size="{$fsize}pt"
+            font-weight="bold"
+            font-family="{$title.font.family}"
+            space-before.minimum="1em"
+            space-before.optimum="1.5em"
+            space-before.maximum="2em">
+    <xsl:copy-of select="$title"/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bridgehead">
+  <xsl:variable name="container"
+                select="(ancestor::appendix
+                        |ancestor::article
+                        |ancestor::bibliography
+                        |ancestor::chapter
+                        |ancestor::glossary
+                        |ancestor::glossdiv
+                        |ancestor::index
+                        |ancestor::partintro
+                        |ancestor::preface
+                        |ancestor::refsect1
+                        |ancestor::refsect2
+                        |ancestor::refsect3
+                        |ancestor::sect1
+                        |ancestor::sect2
+                        |ancestor::sect3
+                        |ancestor::sect4
+                        |ancestor::sect5
+                        |ancestor::section
+                        |ancestor::setindex
+                        |ancestor::simplesect)[last()]"/>
+
+  <xsl:variable name="clevel">
+    <xsl:choose>
+      <xsl:when test="local-name($container) = 'appendix'
+                      or local-name($container) = 'chapter'
+                      or local-name($container) = 'article'
+                      or local-name($container) = 'bibliography'
+                      or local-name($container) = 'glossary'
+                      or local-name($container) = 'index'
+                      or local-name($container) = 'partintro'
+                      or local-name($container) = 'preface'
+                      or local-name($container) = 'setindex'">2</xsl:when>
+      <xsl:when test="local-name($container) = 'glossdiv'">
+        <xsl:value-of select="count(ancestor::glossdiv)+2"/>
+      </xsl:when>
+      <xsl:when test="local-name($container) = 'sect1'
+                      or local-name($container) = 'sect2'
+                      or local-name($container) = 'sect3'
+                      or local-name($container) = 'sect4'
+                      or local-name($container) = 'sect5'
+                      or local-name($container) = 'refsect1'
+                      or local-name($container) = 'refsect2'
+                      or local-name($container) = 'refsect3'
+                      or local-name($container) = 'section'
+                      or local-name($container) = 'simplesect'">
+        <xsl:variable name="slevel">
+          <xsl:call-template name="section.level">
+            <xsl:with-param name="node" select="$container"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="$slevel + 1"/>
+      </xsl:when>
+      <xsl:otherwise>2</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="level">
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">2</xsl:when>
+      <xsl:when test="@renderas = 'sect2'">3</xsl:when>
+      <xsl:when test="@renderas = 'sect3'">4</xsl:when>
+      <xsl:when test="@renderas = 'sect4'">5</xsl:when>
+      <xsl:when test="@renderas = 'sect5'">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$clevel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:call-template name="section.heading">
+    <xsl:with-param name="level" select="$level"/>
+    <xsl:with-param name="title">
+      <xsl:apply-templates/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/synop.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/synop.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/synop.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,240 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: synop.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopsis">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="cmdsynopsis">
+  <fo:block>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command">
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command[1]" priority="2">
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="group|arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:variable name="sepchar">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*/@sepchar">
+        <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:if test="position()>1"><xsl:value-of select="$sepchar"/></xsl:if>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.open.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.open.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates/>
+  <xsl:choose>
+    <xsl:when test="$rep='repeat'">
+      <xsl:value-of select="$arg.rep.repeat.str"/>
+    </xsl:when>
+    <xsl:when test="$rep='norepeat'">
+      <xsl:value-of select="$arg.rep.norepeat.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.rep.def.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.close.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.close.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:if test="position()>1"><xsl:value-of select="$arg.or.sep"/></xsl:if>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="sbr">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopfragmentref">
+  <xsl:variable name="target" select="id(@linkend)"/>
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+  </xsl:variable>
+  <fo:inline font-style="italic">
+    <xsl:text>(</xsl:text>
+    <xsl:value-of select="$snum"/>
+    <xsl:text>)</xsl:text>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="." mode="synopfragment.number"/>
+  </xsl:variable>
+  <fo:block>
+    <xsl:text>(</xsl:text>
+    <xsl:value-of select="$snum"/>
+    <xsl:text>)</xsl:text>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>   
+
+<xsl:template match="funcsynopsis">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsisinfo">
+  <fo:block><xsl:apply-templates/></fo:block>
+</xsl:template>
+
+<xsl:template match="funcprototype">
+  <fo:block font-family="{$monospace.font.family}">
+    <xsl:apply-templates/>
+    <xsl:if test="$funcsynopsis.style='kr'">
+      <xsl:apply-templates select="./paramdef" mode="kr-funcsynopsis-mode"/>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="funcdef">
+  <fo:inline font-family="{$monospace.font.family}">
+    <xsl:apply-templates/>
+  </fo:inline>
+</xsl:template>
+
+<xsl:template match="funcdef/function">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <fo:inline font-weight="bold">
+        <xsl:apply-templates/>
+      </fo:inline>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.style='ansi'">
+      <xsl:text>(void);</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>();</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varargs">
+  <xsl:text>(...);</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef">
+  <xsl:variable name="paramnum">
+    <xsl:number count="paramdef" format="1"/>
+  </xsl:variable>
+  <xsl:if test="$paramnum=1">(</xsl:if>
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.style='ansi'">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="./parameter"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="following-sibling::paramdef">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>);</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="following-sibling::parameter">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>  
+
+<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
+  <xsl:apply-templates/>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="funcparams">
+  <xsl:text>(</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/table.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/table.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/table.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,713 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table"
+                xmlns:xtbl="com.nwalsh.xalan.Table"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="doc stbl xtbl lxslt"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: table.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id: table.xsl,v 1.2 2001/06/23 17:06:33 veillard Exp $
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>Formatting Object Table Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<lxslt:component prefix="xtbl"
+                 functions="adjustColumnWidths"/>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="table-border-thickness" select="'0.5pt'"/>
+<xsl:param name="table-border-padding" select="'2pt'"/>
+<xsl:param name="table-border-style" select="'solid'"/>
+<xsl:param name="table-border-color" select="'black'"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="border">
+  <xsl:param name="side" select="'left'"/>
+  <xsl:param name="padding" select="0"/>
+
+  <xsl:attribute name="border-{$side}">
+    <xsl:value-of select="$table-border-thickness"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$table-border-style"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$table-border-color"/>
+    <xsl:text> </xsl:text>
+  </xsl:attribute>
+  <xsl:if test="$padding != 0">
+    <xsl:attribute name="padding-{$side}">
+      <xsl:value-of select="$table-border-padding"/>
+    </xsl:attribute>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="tgroup">
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:variable name="explicit.table.width">
+    <xsl:call-template name="dbfo-attribute">
+      <xsl:with-param name="pis"
+                      select="../processing-instruction('dbfo')"/>
+      <xsl:with-param name="attribute" select="'table-width'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="table.width">
+    <xsl:choose>
+      <xsl:when test="$explicit.table.width != ''">
+        <xsl:value-of select="$explicit.table.width"/>
+      </xsl:when>
+      <xsl:when test="$default.table.width = ''">
+        <xsl:text>100%</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$default.table.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="colspecs">
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0
+                      and $tablecolumns.extension != 0">
+        <xsl:call-template name="generate.colgroup.raw">
+          <xsl:with-param name="cols" select="@cols"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="generate.colgroup">
+          <xsl:with-param name="cols" select="@cols"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$use.extensions != 0
+                    and $tablecolumns.extension != 0">
+      <xsl:choose>
+        <xsl:when test="contains($vendor, 'SAXON 6')">
+          <xsl:copy-of select="stbl:adjustColumnWidths($colspecs)"/>
+        </xsl:when>
+        <xsl:when test="contains($vendor, 'SAXON 5')">
+          <!-- the saxon5 extension doesn't support this (yet) -->
+          <xsl:call-template name="generate.colgroup">
+            <xsl:with-param name="cols" select="@cols"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+          <xsl:copy-of select="xtbl:adjustColumnWidths($colspecs)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message terminate="yes">
+            <xsl:text>Don't know how to do adjust column widths with </xsl:text>
+            <xsl:value-of select="$vendor"/>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:copy-of select="$colspecs"/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:apply-templates select="thead"/>
+  <xsl:apply-templates select="tbody"/>
+  <xsl:apply-templates select="tfoot"/>
+</xsl:template>
+
+<xsl:template match="colspec"></xsl:template>
+
+<xsl:template match="spanspec"></xsl:template>
+
+<xsl:template match="thead">
+  <xsl:variable name="tgroup" select="parent::*"/>
+  <xsl:variable name="frame" select="$tgroup/parent::*/@frame"/>
+
+  <fo:table-header>
+    <xsl:choose>
+      <xsl:when test="$frame='topbot' or $frame='top'">
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'top'"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="$frame='sides'">
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'left'"/>
+        </xsl:call-template>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'right'"/>
+        </xsl:call-template>
+      </xsl:when>
+    </xsl:choose>
+    <xsl:apply-templates/>
+  </fo:table-header>
+</xsl:template>
+
+<xsl:template match="tbody">
+  <xsl:variable name="tgroup" select="parent::*"/>
+  <xsl:variable name="frame" select="$tgroup/parent::*/@frame"/>
+  <fo:table-body>
+    <xsl:choose>
+      <xsl:when test="$frame='top'">
+        <xsl:choose>
+          <xsl:when test="preceding-sibling::thead">
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="border">
+              <xsl:with-param name="side" select="'top'"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:when test="$frame='bottom'">
+        <xsl:choose>
+          <xsl:when test="preceding-sibling::tfoot">
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="border">
+              <xsl:with-param name="side" select="'bottom'"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:when test="$frame='topbot'">
+        <xsl:choose>
+          <xsl:when test="preceding-sibling::thead">
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="border">
+              <xsl:with-param name="side" select="'top'"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+        <xsl:choose>
+          <xsl:when test="preceding-sibling::tfoot">
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="border">
+              <xsl:with-param name="side" select="'bottom'"/>
+            </xsl:call-template>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:when test="$frame='sides'">
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'left'"/>
+        </xsl:call-template>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'right'"/>
+        </xsl:call-template>
+      </xsl:when>
+    </xsl:choose>
+    <xsl:apply-templates/>
+  </fo:table-body>
+</xsl:template>
+
+<xsl:template match="row">
+  <fo:table-row>
+    <xsl:if test="@rowsep='1'">
+      <xsl:call-template name="border">
+        <xsl:with-param name="side" select="'bottom'"/>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </fo:table-row>
+</xsl:template>
+
+<xsl:template match="thead/row/entry">
+  <xsl:call-template name="process.cell"/>
+</xsl:template>
+
+<xsl:template match="tbody/row/entry">
+  <xsl:call-template name="process.cell"/>
+</xsl:template>
+
+<xsl:template match="tfoot/row/entry">
+  <xsl:call-template name="process.cell"/>
+</xsl:template>
+
+<xsl:template name="process.cell">
+  <xsl:variable name="row" select="parent::row"/>
+  <xsl:variable name="group" select="$row/parent::*[1]"/>
+  <xsl:variable name="frame" select="ancestor::tgroup/parent::*/@frame"/>
+
+  <xsl:variable name="content">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <fo:table-cell>
+    <xsl:choose>
+      <xsl:when test="$frame='all'">
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'left'"/>
+          <xsl:with-param name="padding" select="1"/>
+        </xsl:call-template>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'right'"/>
+          <xsl:with-param name="padding" select="1"/>
+        </xsl:call-template>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'top'"/>
+          <xsl:with-param name="padding" select="1"/>
+        </xsl:call-template>
+        <xsl:call-template name="border">
+          <xsl:with-param name="side" select="'bottom'"/>
+          <xsl:with-param name="padding" select="1"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:if test="@colsep='1'">
+          <xsl:call-template name="border">
+            <xsl:with-param name="side" select="'right'"/>
+            <xsl:with-param name="padding" select="1"/>
+          </xsl:call-template>
+        </xsl:if>
+        <xsl:if test="@rowsep='1'">
+          <xsl:call-template name="border">
+            <xsl:with-param name="side" select="'bottom'"/>
+            <xsl:with-param name="padding" select="1"/>
+          </xsl:call-template>
+        </xsl:if>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="@morerows">
+      <xsl:attribute name="number-rows-spanned">
+        <xsl:value-of select="@morerows+1"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@namest">
+      <xsl:attribute name="number-columns-spanned">
+        <xsl:call-template name="calculate.colspan"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <fo:block>
+      <xsl:copy-of select="$content"/>
+    </fo:block>
+  </fo:table-cell>
+</xsl:template>
+
+<xsl:template name="generate.colgroup.raw">
+  <xsl:param name="cols" select="1"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>$cols"></xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.col.raw">
+        <xsl:with-param name="countcol" select="$count"/>
+      </xsl:call-template>
+      <xsl:call-template name="generate.colgroup.raw">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.colgroup">
+  <xsl:param name="cols" select="1"/>
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>$cols"></xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.col">
+        <xsl:with-param name="countcol" select="$count"/>
+      </xsl:call-template>
+      <xsl:call-template name="generate.colgroup">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.col.raw">
+  <!-- generate the table-column for column countcol -->
+  <xsl:param name="countcol">1</xsl:param>
+  <xsl:param name="colspecs" select="./colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:param name="colnum">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($colspecs)">
+      <fo:table-column column-number="{$countcol}"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+
+      <xsl:variable name="colspec.colnum">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colnum">
+            <xsl:value-of select="$colspec/@colnum"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$colnum"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="colspec.colwidth">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colwidth">
+            <xsl:value-of select="$colspec/@colwidth"/>
+          </xsl:when>
+          <xsl:otherwise>1*</xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$colspec.colnum=$countcol">
+          <fo:table-column column-number="{$countcol}">
+            <xsl:attribute name="column-width">
+              <xsl:value-of select="$colspec.colwidth"/>
+            </xsl:attribute>
+          </fo:table-column>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="generate.col.raw">
+            <xsl:with-param name="countcol" select="$countcol"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="colnum">
+              <xsl:choose>
+                <xsl:when test="$colspec/@colnum">
+                  <xsl:value-of select="$colspec/@colnum + 1"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$colnum + 1"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+           </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.col">
+  <!-- generate the table-column for column countcol -->
+  <xsl:param name="countcol">1</xsl:param>
+  <xsl:param name="colspecs" select="./colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:param name="colnum">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($colspecs)">
+      <fo:table-column column-number="{$countcol}">
+	<xsl:variable name="colwidth">
+	  <xsl:call-template name="calc.column.width"/>
+	</xsl:variable>
+	<xsl:if test="$colwidth != 'proportional-column-width(1)'">
+	  <xsl:attribute name="column-width">
+	    <xsl:value-of select="$colwidth"/>
+	  </xsl:attribute>
+	</xsl:if>
+      </fo:table-column>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+
+      <xsl:variable name="colspec.colnum">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colnum">
+            <xsl:value-of select="$colspec/@colnum"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$colnum"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:variable name="colspec.colwidth">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colwidth">
+            <xsl:value-of select="$colspec/@colwidth"/>
+          </xsl:when>
+          <xsl:otherwise>1*</xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$colspec.colnum=$countcol">
+          <fo:table-column column-number="{$countcol}">
+	    <xsl:variable name="colwidth">
+              <xsl:call-template name="calc.column.width">
+                <xsl:with-param name="colwidth">
+                  <xsl:value-of select="$colspec.colwidth"/>
+                </xsl:with-param>
+	      </xsl:call-template>
+	    </xsl:variable>
+	    <xsl:if test="$colwidth != 'proportional-column-width(1)'">
+	      <xsl:attribute name="column-width">
+		<xsl:value-of select="$colwidth"/>
+	      </xsl:attribute>
+	    </xsl:if>
+	  </fo:table-column>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="generate.col">
+            <xsl:with-param name="countcol" select="$countcol"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="colnum">
+              <xsl:choose>
+                <xsl:when test="$colspec/@colnum">
+                  <xsl:value-of select="$colspec/@colnum + 1"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$colnum + 1"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+           </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<doc:template name="calc.column.width" xmlns="">
+<refpurpose>Calculate an XSL FO table column width specification from a
+CALS table column width specification.</refpurpose>
+
+<refdescription>
+<para>CALS expresses table column widths in the following basic
+forms:</para>
+
+<itemizedlist>
+<listitem>
+<para><emphasis>99.99units</emphasis>, a fixed length specifier.</para>
+</listitem>
+<listitem>
+<para><emphasis>99.99</emphasis>, a fixed length specifier without any units.</para>
+</listitem>
+<listitem>
+<para><emphasis>99.99*</emphasis>, a relative length specifier.</para>
+</listitem>
+<listitem>
+<para><emphasis>99.99*+99.99units</emphasis>, a combination of both.</para>
+</listitem>
+</itemizedlist>
+
+<para>The CALS units are points (pt), picas (pi), centimeters (cm),
+millimeters (mm), and inches (in). These are the same units as XSL,
+except that XSL abbreviates picas "pc" instead of "pi". If a length
+specifier has no units, the CALS default unit (pt) is assumed.</para>
+
+<para>Relative length specifiers are represented in XSL with the
+proportional-column-width() function.</para>
+
+<para>Here are some examples:</para>
+
+<itemizedlist>
+<listitem>
+<para>"36pt" becomes "36pt"</para>
+</listitem>
+<listitem>
+<para>"3pi" becomes "3pc"</para>
+</listitem>
+<listitem>
+<para>"36" becomes "36pt"</para>
+</listitem>
+<listitem>
+<para>"3*" becomes "proportional-column-width(3)"</para>
+</listitem>
+<listitem>
+<para>"3*+2pi" becomes "proportional-column-width(3)+2pc"</para>
+</listitem>
+<listitem>
+<para>"1*+2" becomes "proportional-column-width(1)+2pt"</para>
+</listitem>
+</itemizedlist>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>colwidth</term>
+<listitem>
+<para>The CALS column width specification.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>The XSL column width specification.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="calc.column.width">
+  <xsl:param name="colwidth">1*</xsl:param>
+
+  <!-- Ok, the colwidth could have any one of the following forms: -->
+  <!--        1*       = proportional width -->
+  <!--     1unit       = 1.0 units wide -->
+  <!--         1       = 1pt wide -->
+  <!--  1*+1unit       = proportional width + some fixed width -->
+  <!--      1*+1       = proportional width + some fixed width -->
+
+  <!-- If it has a proportional width, translate it to XSL -->
+  <xsl:if test="contains($colwidth, '*')">
+    <xsl:text>proportional-column-width(</xsl:text>
+    <xsl:value-of select="substring-before($colwidth, '*')"/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+
+  <!-- Now grab the non-proportional part of the specification -->
+  <xsl:variable name="width-units">
+    <xsl:choose>
+      <xsl:when test="contains($colwidth, '*')">
+        <xsl:value-of
+             select="normalize-space(substring-after($colwidth, '*'))"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="normalize-space($colwidth)"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Ok, now the width-units could have any one of the following forms: -->
+  <!--                 = <empty string> -->
+  <!--     1unit       = 1.0 units wide -->
+  <!--         1       = 1pt wide -->
+  <!-- with an optional leading sign -->
+
+  <!-- Grab the width part by blanking out the units part and discarding -->
+  <!-- whitespace. It's not pretty, but it works. -->
+  <xsl:variable name="width"
+       select="normalize-space(translate($width-units,
+                                         '+-0123456789.abcdefghijklmnopqrstuvwxyz',
+                                         '+-0123456789.'))"/>
+
+  <!-- Grab the units part by blanking out the width part and discarding -->
+  <!-- whitespace. It's not pretty, but it works. -->
+  <xsl:variable name="units"
+       select="normalize-space(translate($width-units,
+                                         'abcdefghijklmnopqrstuvwxyz+-0123456789.',
+                                         'abcdefghijklmnopqrstuvwxyz'))"/>
+
+  <!-- Output the width -->
+  <xsl:value-of select="$width"/>
+
+  <!-- Output the units, translated appropriately -->
+  <xsl:choose>
+    <xsl:when test="$units = 'pi'">pc</xsl:when>
+    <xsl:when test="$units = '' and $width != ''">pt</xsl:when>
+    <xsl:otherwise><xsl:value-of select="$units"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="colspec.colnum">
+  <!-- when this macro is called, the current context must be an entry -->
+  <xsl:param name="colname"></xsl:param>
+  <!-- .. = row, ../.. = thead|tbody, ../../.. = tgroup -->
+  <xsl:param name="colspecs" select="../../../../tgroup/colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:param name="colnum">1</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$count>count($colspecs)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+<!--
+      <xsl:value-of select="$count"/>:
+      <xsl:value-of select="$colspec/@colname"/>=
+      <xsl:value-of select="$colnum"/>
+-->
+      <xsl:choose>
+        <xsl:when test="$colspec/@colname=$colname">
+          <xsl:choose>
+            <xsl:when test="$colspec/@colnum">
+              <xsl:value-of select="$colspec/@colnum"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="$colnum"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="colspec.colnum">
+            <xsl:with-param name="colname" select="$colname"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="colnum">
+              <xsl:choose>
+                <xsl:when test="$colspec/@colnum">
+                  <xsl:value-of select="$colspec/@colnum + 1"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$colnum + 1"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+           </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="calculate.colspan">
+  <xsl:variable name="scol">
+    <xsl:call-template name="colspec.colnum">
+      <xsl:with-param name="colname" select="@namest"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="ecol">
+    <xsl:call-template name="colspec.colnum">
+      <xsl:with-param name="colname" select="@nameend"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:value-of select="$ecol - $scol + 1"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.templates.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.templates.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.templates.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,889 @@
+<!DOCTYPE t:templates [
+<!ENTITY hsize0 "10pt">
+<!ENTITY hsize1 "12pt">
+<!ENTITY hsize2 "14.4pt">
+<!ENTITY hsize3 "17.28pt">
+<!ENTITY hsize4 "20.736pt">
+<!ENTITY hsize5 "24.8832pt">
+<!ENTITY hsize0space "7.5pt"> <!-- 0.75 * hsize0 -->
+<!ENTITY hsize1space "9pt"> <!-- 0.75 * hsize1 -->
+<!ENTITY hsize2space "10.8pt"> <!-- 0.75 * hsize2 -->
+<!ENTITY hsize3space "12.96pt"> <!-- 0.75 * hsize3 -->
+<!ENTITY hsize4space "15.552pt"> <!-- 0.75 * hsize4 -->
+<!ENTITY hsize5space "18.6624pt"> <!-- 0.75 * hsize5 -->
+]>
+<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+	     xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
+             xmlns:fo="http://www.w3.org/1999/XSL/Format"
+             xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="article" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+      <title
+	     named-template="component.title"
+	     param:node="ancestor-or-self::article[1]"
+	     fo:text-align="center"
+	     fo:margin-left="-4pc"
+	     fo:keep-with-next="always"
+	     fo:font-size="&hsize5;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:font-family="{$title.font.family}"
+	      fo:text-align="center"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="set" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+      <title
+	     named-template="division.title"
+	     param:node="ancestor-or-self::set[1]"
+	     fo:text-align="center"
+	     fo:font-size="&hsize5;"
+	     fo:space-before="&hsize5space;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:font-family="{$title.font.family}"
+	      fo:text-align="center"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage element="book" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     named-template="division.title"
+	     param:node="ancestor-or-self::book[1]"
+	     fo:text-align="center"
+	     fo:font-size="&hsize5;"
+	     fo:space-before="&hsize5space;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+      <subtitle
+		fo:text-align="center"
+		fo:font-size="&hsize4;"
+		fo:space-before="&hsize4space;"
+		fo:font-family="{$title.font.family}"/>
+      <corpauthor fo:font-size="&hsize3;"
+		  fo:keep-with-next="always"
+		  fo:space-before="2in"/>
+      <authorgroup fo:space-before="2in"/>
+      <author fo:font-size="&hsize3;"
+	      fo:space-before="&hsize2space;"
+	      fo:keep-with-next="always"/>
+    </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+      <title
+	     fo:font-size="&hsize2;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+      <corpauthor/>
+      <authorgroup/>
+      <author/>
+      <pubdate fo:space-before="1em"/>
+      <copyright/>
+      <abstract/>
+      <legalnotice fo:font-size="8pt"/>
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+      <fo:block break-after="page"/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+      <fo:block break-after="page"/>
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="part" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+      <title
+	     named-template="division.title"
+	     param:node="ancestor-or-self::part[1]"
+	     fo:text-align="center"
+	     fo:font-size="&hsize5;"
+	     fo:space-before="&hsize5space;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:text-align="center"
+	      fo:font-size="&hsize4;"
+	      fo:space-before="&hsize4space;"
+	      fo:font-weight='bold'
+	      fo:font-style='italic'
+	      fo:font-family="{$title.font.family}"/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="partintro" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+    <title
+	   fo:text-align="center"
+	   fo:font-size="&hsize3;"
+	   fo:font-weight="bold"
+	   fo:margin-left="-4pc"
+	   fo:space-before="1em"
+	   fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:text-align="center"
+	      fo:font-size="&hsize2;"
+	      fo:font-weight="bold"
+	      fo:font-style="italic"
+	      fo:font-family="{$title.font.family}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="reference" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+      <title
+	     named-template="division.title"
+	     param:node="ancestor-or-self::reference[1]"
+	     fo:text-align="center"
+	     fo:font-size="&hsize5;"
+	     fo:space-before="&hsize5space;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:font-family="{$title.font.family}"
+	      fo:text-align="center"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage element="dedication" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     force="1"
+	     named-template="component.title"
+	     param:node="ancestor-or-self::dedication[1]"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-family="{$title.font.family}"
+	     fo:font-weight="bold"/>
+      <subtitle
+		fo:font-family="{$title.font.family}"/>
+    </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage element="preface" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     force="1"
+	     named-template="component.title"
+	     param:node="ancestor-or-self::preface[1]"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-family="{$title.font.family}"
+	     fo:font-weight="bold"/>
+      <subtitle
+		fo:font-family="{$title.font.family}"/>
+      <corpauthor/>
+      <authorgroup/>
+      <author/>
+      <releaseinfo/>
+      <copyright/>
+      <legalnotice/>
+      <pubdate/>
+      <revision/>
+      <revhistory/>
+      <abstract/>
+    </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage element="chapter" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     named-template="component.title"
+	     param:node="ancestor-or-self::chapter[1]"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+      <subtitle
+		fo:space-before="0.5em"
+		fo:margin-left="-4pc"
+		fo:font-style="italic"
+		fo:font-size="&hsize2;"
+		fo:font-weight="bold"
+		fo:font-family="{$title.font.family}"/>
+      <corpauthor/>
+      <authorgroup/>
+      <author/>
+      <releaseinfo/>
+      <copyright/>
+      <legalnotice/>
+      <pubdate/>
+      <revision/>
+      <revhistory/>
+      <abstract/>
+    </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage element="appendix" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     named-template="component.title"
+	     param:node="ancestor-or-self::appendix[1]"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+      <subtitle
+		fo:font-family="{$title.font.family}"/>
+      <corpauthor/>
+      <authorgroup/>
+      <author/>
+      <releaseinfo/>
+      <copyright/>
+      <legalnotice/>
+      <pubdate/>
+      <revision/>
+      <revhistory/>
+      <abstract/>
+    </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="section" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+    <title
+	   fo:margin-left="-4pc"
+	   fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:font-family="{$title.font.family}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="sect1" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+    <title
+	   fo:margin-left="-4pc"
+	   fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:font-family="{$title.font.family}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="sect2" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+    <title
+	   fo:margin-left="-4pc"
+	   fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:font-family="{$title.font.family}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="sect3" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+    <title
+	   fo:margin-left="-4pc"
+	   fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:font-family="{$title.font.family}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="sect4" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+    <title
+	   fo:margin-left="-4pc"
+	   fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:font-family="{$title.font.family}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="sect5" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+    <title
+	   fo:margin-left="-4pc"
+	   fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:font-family="{$title.font.family}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="simplesect" wrapper="fo:block">
+  <t:titlepage-content side="recto">
+    <title
+	   fo:margin-left="-4pc"
+	   fo:font-family="{$title.font.family}"/>
+    <subtitle
+	      fo:font-family="{$title.font.family}"/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage element="bibliography" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     force="1"
+	     named-template="component.title"
+	     param:node="ancestor-or-self::bibliography[1]"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-family="{$title.font.family}"
+	     fo:font-weight="bold"/>
+      <subtitle
+		fo:font-family="{$title.font.family}"/>
+    </t:titlepage-content>
+
+    <t:titlepage-content side="verso">
+    </t:titlepage-content>
+
+    <t:titlepage-separator>
+    </t:titlepage-separator>
+
+    <t:titlepage-before side="recto">
+    </t:titlepage-before>
+
+    <t:titlepage-before side="verso">
+    </t:titlepage-before>
+  </t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage element="glossary" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     force="1"
+	     named-template="component.title"
+	     param:node="ancestor-or-self::glossary[1]"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-family="{$title.font.family}"
+	     fo:font-weight="bold"/>
+      <subtitle
+		fo:font-family="{$title.font.family}"/>
+    </t:titlepage-content>
+
+    <t:titlepage-content side="verso">
+    </t:titlepage-content>
+
+    <t:titlepage-separator>
+    </t:titlepage-separator>
+
+    <t:titlepage-before side="recto">
+    </t:titlepage-before>
+
+    <t:titlepage-before side="verso">
+    </t:titlepage-before>
+  </t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage element="index" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     force="1"
+	     named-template="component.title"
+	     param:node="ancestor-or-self::index[1]"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-family="{$title.font.family}"
+	     fo:font-weight="bold"/>
+      <subtitle
+		fo:font-family="{$title.font.family}"/>
+    </t:titlepage-content>
+
+    <t:titlepage-content side="verso">
+    </t:titlepage-content>
+
+    <t:titlepage-separator>
+    </t:titlepage-separator>
+
+    <t:titlepage-before side="recto">
+    </t:titlepage-before>
+
+    <t:titlepage-before side="verso">
+    </t:titlepage-before>
+  </t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage element="table.of.contents" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     force="1"
+	     named-template="gentext"
+	     param:key="'TableofContents'"
+	     fo:space-after="1em"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+    </t:titlepage-content>
+
+    <t:titlepage-content side="verso">
+    </t:titlepage-content>
+
+    <t:titlepage-separator>
+    </t:titlepage-separator>
+
+    <t:titlepage-before side="recto">
+    </t:titlepage-before>
+
+    <t:titlepage-before side="verso">
+    </t:titlepage-before>
+  </t:titlepage>
+
+  <t:titlepage element="list.of.tables" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     force="1"
+	     named-template="gentext"
+	     param:key="'ListofTables'"
+	     fo:space-after="1em"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+    </t:titlepage-content>
+
+    <t:titlepage-content side="verso">
+    </t:titlepage-content>
+
+    <t:titlepage-separator>
+    </t:titlepage-separator>
+
+    <t:titlepage-before side="recto">
+    </t:titlepage-before>
+
+    <t:titlepage-before side="verso">
+    </t:titlepage-before>
+  </t:titlepage>
+
+  <t:titlepage element="list.of.figures" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     force="1"
+	     named-template="gentext"
+	     param:key="'ListofFigures'"
+	     fo:space-after="1em"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+    </t:titlepage-content>
+
+    <t:titlepage-content side="verso">
+    </t:titlepage-content>
+
+    <t:titlepage-separator>
+    </t:titlepage-separator>
+
+    <t:titlepage-before side="recto">
+    </t:titlepage-before>
+
+    <t:titlepage-before side="verso">
+    </t:titlepage-before>
+  </t:titlepage>
+
+  <t:titlepage element="list.of.examples" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     force="1"
+	     named-template="gentext"
+	     param:key="'ListofExamples'"
+	     fo:space-after="1em"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+    </t:titlepage-content>
+
+    <t:titlepage-content side="verso">
+    </t:titlepage-content>
+
+    <t:titlepage-separator>
+    </t:titlepage-separator>
+
+    <t:titlepage-before side="recto">
+    </t:titlepage-before>
+
+    <t:titlepage-before side="verso">
+    </t:titlepage-before>
+  </t:titlepage>
+
+  <t:titlepage element="list.of.equations" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     force="1"
+	     named-template="gentext"
+	     param:key="'ListofEquations'"
+	     fo:space-after="1em"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+    </t:titlepage-content>
+
+    <t:titlepage-content side="verso">
+    </t:titlepage-content>
+
+    <t:titlepage-separator>
+    </t:titlepage-separator>
+
+    <t:titlepage-before side="recto">
+    </t:titlepage-before>
+
+    <t:titlepage-before side="verso">
+    </t:titlepage-before>
+  </t:titlepage>
+
+  <t:titlepage element="list.of.unknowns" wrapper="fo:block">
+    <t:titlepage-content side="recto">
+      <title
+	     force="1"
+	     named-template="gentext"
+	     param:key="'ListofUnknown'"
+	     fo:space-after="1em"
+	     fo:margin-left="-4pc"
+	     fo:font-size="&hsize3;"
+	     fo:font-weight="bold"
+	     fo:font-family="{$title.font.family}"/>
+    </t:titlepage-content>
+
+    <t:titlepage-content side="verso">
+    </t:titlepage-content>
+
+    <t:titlepage-separator>
+    </t:titlepage-separator>
+
+    <t:titlepage-before side="recto">
+    </t:titlepage-before>
+
+    <t:titlepage-before side="verso">
+    </t:titlepage-before>
+  </t:titlepage>
+
+<!-- ==================================================================== -->
+
+</t:templates>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.templates.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.templates.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.templates.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2742 @@
+<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- This stylesheet was created by template/titlepage.xsl; do not edit it by hand. -->
+
+<xsl:template name="article.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="articleinfo/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/>
+    </xsl:when>
+    <xsl:when test="artheader/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="articleinfo/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="artheader/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/abstract"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="article.titlepage.before.recto"/>
+    <xsl:call-template name="article.titlepage.recto"/>
+    <xsl:call-template name="article.titlepage.before.verso"/>
+    <xsl:call-template name="article.titlepage.verso"/>
+    <xsl:call-template name="article.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="article.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="article.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" text-align="center" margin-left="-4pc" keep-with-next="always" font-size="24.8832pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::article[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style" font-family="{$title.font.family}" text-align="center">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="set.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="setinfo/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="setinfo/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="set.titlepage.before.recto"/>
+    <xsl:call-template name="set.titlepage.recto"/>
+    <xsl:call-template name="set.titlepage.before.verso"/>
+    <xsl:call-template name="set.titlepage.verso"/>
+    <xsl:call-template name="set.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="set.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="set.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style" text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::set[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style" font-family="{$title.font.family}" text-align="center">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="book.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="bookinfo/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="bookinfo/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.verso">
+  <xsl:choose>
+    <xsl:when test="bookinfo/title">
+      <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/author"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/abstract"/>
+  <xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/legalnotice"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.separator"><fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" break-after="page"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.verso"><fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" break-after="page"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="book.titlepage.before.recto"/>
+    <xsl:call-template name="book.titlepage.recto"/>
+    <xsl:call-template name="book.titlepage.before.verso"/>
+    <xsl:call-template name="book.titlepage.verso"/>
+    <xsl:call-template name="book.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="book.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="book.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="book.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::book[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" text-align="center" font-size="20.736pt" space-before="15.552pt" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" font-size="17.28pt" keep-with-next="always" space-before="2in">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" space-before="2in">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" font-size="17.28pt" space-before="10.8pt" keep-with-next="always">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="title" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style" font-size="14.4pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style" space-before="1em">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="book.titlepage.verso.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style" font-size="8pt">
+<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="part.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="partinfo/title">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="partinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="part.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="part.titlepage.before.recto"/>
+    <xsl:call-template name="part.titlepage.recto"/>
+    <xsl:call-template name="part.titlepage.before.verso"/>
+    <xsl:call-template name="part.titlepage.verso"/>
+    <xsl:call-template name="part.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="part.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="part.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="part.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="part.titlepage.recto.style" text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::part[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="part.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="part.titlepage.recto.style" text-align="center" font-size="20.736pt" space-before="15.552pt" font-weight="bold" font-style="italic" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="partintroinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="partintroinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="partintro.titlepage.before.recto"/>
+    <xsl:call-template name="partintro.titlepage.recto"/>
+    <xsl:call-template name="partintro.titlepage.before.verso"/>
+    <xsl:call-template name="partintro.titlepage.verso"/>
+    <xsl:call-template name="partintro.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style" text-align="center" font-size="17.28pt" font-weight="bold" margin-left="-4pc" space-before="1em" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style" text-align="center" font-size="14.4pt" font-weight="bold" font-style="italic" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="referenceinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="referenceinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="reference.titlepage.before.recto"/>
+    <xsl:call-template name="reference.titlepage.recto"/>
+    <xsl:call-template name="reference.titlepage.before.verso"/>
+    <xsl:call-template name="reference.titlepage.verso"/>
+    <xsl:call-template name="reference.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style" text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="division.title">
+<xsl:with-param name="node" select="ancestor-or-self::reference[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style" font-family="{$title.font.family}" text-align="center">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="dedication.titlepage.recto.style" margin-left="-4pc" font-size="17.28pt" font-family="{$title.font.family}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="dedicationinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="dedication.titlepage.before.recto"/>
+    <xsl:call-template name="dedication.titlepage.recto"/>
+    <xsl:call-template name="dedication.titlepage.before.verso"/>
+    <xsl:call-template name="dedication.titlepage.verso"/>
+    <xsl:call-template name="dedication.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="dedication.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="dedication.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style" margin-left="-4pc" font-size="17.28pt" font-family="{$title.font.family}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::preface[1]"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="preface.titlepage.before.recto"/>
+    <xsl:call-template name="preface.titlepage.recto"/>
+    <xsl:call-template name="preface.titlepage.before.verso"/>
+    <xsl:call-template name="preface.titlepage.verso"/>
+    <xsl:call-template name="preface.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="chapterinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="chapterinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="chapter.titlepage.before.recto"/>
+    <xsl:call-template name="chapter.titlepage.recto"/>
+    <xsl:call-template name="chapter.titlepage.before.verso"/>
+    <xsl:call-template name="chapter.titlepage.verso"/>
+    <xsl:call-template name="chapter.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style" space-before="0.5em" margin-left="-4pc" font-style="italic" font-size="14.4pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="appendixinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="appendixinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="appendix.titlepage.before.recto"/>
+    <xsl:call-template name="appendix.titlepage.recto"/>
+    <xsl:call-template name="appendix.titlepage.before.verso"/>
+    <xsl:call-template name="appendix.titlepage.verso"/>
+    <xsl:call-template name="appendix.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::appendix[1]"/>
+</xsl:call-template>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="section.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sectioninfo/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sectioninfo/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="section.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="section.titlepage.before.recto"/>
+    <xsl:call-template name="section.titlepage.recto"/>
+    <xsl:call-template name="section.titlepage.before.verso"/>
+    <xsl:call-template name="section.titlepage.verso"/>
+    <xsl:call-template name="section.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="section.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="section.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style" margin-left="-4pc" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect1info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect1info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="sect1.titlepage.before.recto"/>
+    <xsl:call-template name="sect1.titlepage.recto"/>
+    <xsl:call-template name="sect1.titlepage.before.verso"/>
+    <xsl:call-template name="sect1.titlepage.verso"/>
+    <xsl:call-template name="sect1.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style" margin-left="-4pc" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect2info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect2info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="sect2.titlepage.before.recto"/>
+    <xsl:call-template name="sect2.titlepage.recto"/>
+    <xsl:call-template name="sect2.titlepage.before.verso"/>
+    <xsl:call-template name="sect2.titlepage.verso"/>
+    <xsl:call-template name="sect2.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style" margin-left="-4pc" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect3info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect3info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="sect3.titlepage.before.recto"/>
+    <xsl:call-template name="sect3.titlepage.recto"/>
+    <xsl:call-template name="sect3.titlepage.before.verso"/>
+    <xsl:call-template name="sect3.titlepage.verso"/>
+    <xsl:call-template name="sect3.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style" margin-left="-4pc" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect4info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect4info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="sect4.titlepage.before.recto"/>
+    <xsl:call-template name="sect4.titlepage.recto"/>
+    <xsl:call-template name="sect4.titlepage.before.verso"/>
+    <xsl:call-template name="sect4.titlepage.verso"/>
+    <xsl:call-template name="sect4.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style" margin-left="-4pc" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect5info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect5info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="sect5.titlepage.before.recto"/>
+    <xsl:call-template name="sect5.titlepage.recto"/>
+    <xsl:call-template name="sect5.titlepage.before.verso"/>
+    <xsl:call-template name="sect5.titlepage.verso"/>
+    <xsl:call-template name="sect5.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style" margin-left="-4pc" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="simplesect.titlepage.before.recto"/>
+    <xsl:call-template name="simplesect.titlepage.recto"/>
+    <xsl:call-template name="simplesect.titlepage.before.verso"/>
+    <xsl:call-template name="simplesect.titlepage.verso"/>
+    <xsl:call-template name="simplesect.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style" margin-left="-4pc" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="bibliography.titlepage.recto.style" margin-left="-4pc" font-size="17.28pt" font-family="{$title.font.family}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="bibliographyinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="bibliography.titlepage.before.recto"/>
+    <xsl:call-template name="bibliography.titlepage.recto"/>
+    <xsl:call-template name="bibliography.titlepage.before.verso"/>
+    <xsl:call-template name="bibliography.titlepage.verso"/>
+    <xsl:call-template name="bibliography.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="bibliography.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="glossary.titlepage.recto.style" margin-left="-4pc" font-size="17.28pt" font-family="{$title.font.family}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="glossaryinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="glossary.titlepage.before.recto"/>
+    <xsl:call-template name="glossary.titlepage.recto"/>
+    <xsl:call-template name="glossary.titlepage.before.verso"/>
+    <xsl:call-template name="glossary.titlepage.verso"/>
+    <xsl:call-template name="glossary.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="glossary.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="glossary.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="index.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="index.titlepage.recto.style" margin-left="-4pc" font-size="17.28pt" font-family="{$title.font.family}" font-weight="bold">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::index[1]"/>
+</xsl:call-template></fo:block>
+  <xsl:choose>
+    <xsl:when test="indexinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="index.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="index.titlepage.before.recto"/>
+    <xsl:call-template name="index.titlepage.recto"/>
+    <xsl:call-template name="index.titlepage.before.verso"/>
+    <xsl:call-template name="index.titlepage.verso"/>
+    <xsl:call-template name="index.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="index.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="index.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="index.titlepage.recto.auto.mode">
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="index.titlepage.recto.style" font-family="{$title.font.family}">
+<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/>
+</fo:block>
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="table.of.contents.titlepage.recto.style" space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'TableofContents'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="table.of.contents.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="table.of.contents.titlepage.before.recto"/>
+    <xsl:call-template name="table.of.contents.titlepage.recto"/>
+    <xsl:call-template name="table.of.contents.titlepage.before.verso"/>
+    <xsl:call-template name="table.of.contents.titlepage.verso"/>
+    <xsl:call-template name="table.of.contents.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="table.of.contents.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="table.of.contents.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template name="list.of.tables.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="list.of.tables.titlepage.recto.style" space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofTables'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="list.of.tables.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="list.of.tables.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="list.of.tables.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="list.of.tables.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="list.of.tables.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="list.of.tables.titlepage.before.recto"/>
+    <xsl:call-template name="list.of.tables.titlepage.recto"/>
+    <xsl:call-template name="list.of.tables.titlepage.before.verso"/>
+    <xsl:call-template name="list.of.tables.titlepage.verso"/>
+    <xsl:call-template name="list.of.tables.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.tables.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.tables.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template name="list.of.figures.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="list.of.figures.titlepage.recto.style" space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofFigures'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="list.of.figures.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="list.of.figures.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="list.of.figures.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="list.of.figures.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="list.of.figures.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="list.of.figures.titlepage.before.recto"/>
+    <xsl:call-template name="list.of.figures.titlepage.recto"/>
+    <xsl:call-template name="list.of.figures.titlepage.before.verso"/>
+    <xsl:call-template name="list.of.figures.titlepage.verso"/>
+    <xsl:call-template name="list.of.figures.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.figures.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.figures.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template name="list.of.examples.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="list.of.examples.titlepage.recto.style" space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofExamples'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="list.of.examples.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="list.of.examples.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="list.of.examples.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="list.of.examples.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="list.of.examples.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="list.of.examples.titlepage.before.recto"/>
+    <xsl:call-template name="list.of.examples.titlepage.recto"/>
+    <xsl:call-template name="list.of.examples.titlepage.before.verso"/>
+    <xsl:call-template name="list.of.examples.titlepage.verso"/>
+    <xsl:call-template name="list.of.examples.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.examples.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.examples.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template name="list.of.equations.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="list.of.equations.titlepage.recto.style" space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofEquations'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="list.of.equations.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="list.of.equations.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="list.of.equations.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="list.of.equations.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="list.of.equations.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="list.of.equations.titlepage.before.recto"/>
+    <xsl:call-template name="list.of.equations.titlepage.recto"/>
+    <xsl:call-template name="list.of.equations.titlepage.before.verso"/>
+    <xsl:call-template name="list.of.equations.titlepage.verso"/>
+    <xsl:call-template name="list.of.equations.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.equations.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.equations.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template name="list.of.unknowns.titlepage.recto">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="list.of.unknowns.titlepage.recto.style" space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="{$title.font.family}">
+<xsl:call-template name="gentext">
+<xsl:with-param name="key" select="'ListofUnknown'"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="list.of.unknowns.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="list.of.unknowns.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="list.of.unknowns.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="list.of.unknowns.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="list.of.unknowns.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <xsl:call-template name="list.of.unknowns.titlepage.before.recto"/>
+    <xsl:call-template name="list.of.unknowns.titlepage.recto"/>
+    <xsl:call-template name="list.of.unknowns.titlepage.before.verso"/>
+    <xsl:call-template name="list.of.unknowns.titlepage.verso"/>
+    <xsl:call-template name="list.of.unknowns.titlepage.separator"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.unknowns.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="list.of.unknowns.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/titlepage.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,656 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: titlepage.xsl,v 1.2 2001/06/23 17:06:34 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:attribute-set name="book.titlepage.recto.style">
+  <xsl:attribute name="font-family">
+    <xsl:value-of select="$title.font.family"/>
+  </xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="font-size">12pt</xsl:attribute>
+  <xsl:attribute name="text-align">center</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="book.titlepage.verso.style">
+  <xsl:attribute name="font-size">10pt</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="article.titlepage.recto.style"/>
+<xsl:attribute-set name="article.titlepage.verso.style"/>
+
+<xsl:attribute-set name="set.titlepage.recto.style"/>
+<xsl:attribute-set name="set.titlepage.verso.style"/>
+
+<xsl:attribute-set name="part.titlepage.recto.style">
+  <xsl:attribute name="text-align">center</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="part.titlepage.verso.style"/>
+
+<xsl:attribute-set name="partintro.titlepage.recto.style"/>
+<xsl:attribute-set name="partintro.titlepage.verso.style"/>
+
+<xsl:attribute-set name="reference.titlepage.recto.style"/>
+<xsl:attribute-set name="reference.titlepage.verso.style"/>
+
+<xsl:attribute-set name="dedication.titlepage.recto.style"/>
+<xsl:attribute-set name="dedication.titlepage.verso.style"/>
+
+<xsl:attribute-set name="preface.titlepage.recto.style"/>
+<xsl:attribute-set name="preface.titlepage.verso.style"/>
+
+<xsl:attribute-set name="chapter.titlepage.recto.style"/>
+<xsl:attribute-set name="chapter.titlepage.verso.style"/>
+
+<xsl:attribute-set name="appendix.titlepage.recto.style"/>
+<xsl:attribute-set name="appendix.titlepage.verso.style"/>
+
+<xsl:attribute-set name="bibliography.titlepage.recto.style"/>
+<xsl:attribute-set name="bibliography.titlepage.verso.style"/>
+
+<xsl:attribute-set name="glossary.titlepage.recto.style"/>
+<xsl:attribute-set name="glossary.titlepage.verso.style"/>
+
+<xsl:attribute-set name="index.titlepage.recto.style"/>
+<xsl:attribute-set name="index.titlepage.verso.style"/>
+
+<xsl:attribute-set name="section.titlepage.recto.style"/>
+<xsl:attribute-set name="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect1.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect1.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect2.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect2.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect3.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect3.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect4.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect4.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect5.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect5.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="simplesect.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="simplesect.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
+<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="titlepage.mode">
+  <!-- if an element isn't found in this mode, try the default mode -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="abbrev" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="abstract" mode="titlepage.mode">
+  <fo:block>
+    <xsl:if test="title"> <!-- FIXME: add param for using default title? -->
+      <xsl:call-template name="formal.object.heading">
+        <xsl:with-param name="title">
+          <xsl:apply-templates select="." mode="title.markup"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="abstract/title" mode="titlepage.mode"/>
+
+<xsl:template match="abstract/title" mode="titlepage.abstract.title.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="address" mode="titlepage.mode">
+  <!-- use the normal address handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="author" mode="titlepage.mode">
+  <xsl:call-template name="person.name"/>
+  <xsl:apply-templates select="affiliation" mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="collab" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="confdates" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="confnum" mode="titlepage.mode">
+  <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="contractnum" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="contrib" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="copyright" mode="titlepage.mode">
+  <xsl:variable name="years" select="year"/>
+  <xsl:variable name="holders" select="holder"/>
+
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Copyright'"/>
+  </xsl:call-template>
+  <xsl:call-template name="gentext.space"/>
+  <xsl:call-template name="dingbat">
+    <xsl:with-param name="dingbat">copyright</xsl:with-param>
+  </xsl:call-template>
+  <xsl:call-template name="gentext.space"/>
+  <xsl:apply-templates select="$years" mode="titlepage.mode"/>
+  <xsl:if test="holder">
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$holders" mode="titlepage.mode"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="year" mode="titlepage.mode">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="titlepage.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="titlepage.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="corpname" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="date" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="edition" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+  <xsl:call-template name="gentext.space"/>
+  <xsl:call-template name="gentext">
+    <xsl:with-param name="key" select="'Edition'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="editor" mode="titlepage.mode">
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="editor[position()=1]" priority="2" mode="titlepage.mode">
+  <xsl:call-template name="gentext.edited.by"/>
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="firstname" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="graphic" mode="titlepage.mode">
+  <!-- use the normal graphic handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="honorific" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="isbn" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="issn" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="itermset" mode="titlepage.mode">
+  <!-- discard -->
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="keywordset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="titlepage.mode">
+  <fo:block>
+    <xsl:if test="title"> <!-- FIXME: add param for using default title? -->
+    <xsl:call-template name="formal.object.heading">
+        <xsl:with-param name="title">
+          <xsl:apply-templates select="." mode="title.markup"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:if>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="legalnotice/title" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="legalnotice/title" mode="titlepage.legalnotice.title.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="lineage" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="modespec" mode="titlepage.mode">
+  <!-- discard -->
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="orgname" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.mode">
+  <xsl:call-template name="person.name"/>
+  <xsl:apply-templates mode="titlepage.mode" select="affiliation"/>
+</xsl:template>
+
+<xsl:template match="othername" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="productname" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="publisher" mode="titlepage.mode">
+  <fo:block>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="publishername" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="titlepage.mode">
+  <fo:table table-layout="fixed">
+    <fo:table-column column-number="1" column-width="33%"/>
+    <fo:table-column column-number="2" column-width="33%"/>
+    <fo:table-column column-number="3" column-width="33%"/>
+    <fo:table-body>
+      <fo:table-row>
+        <fo:table-cell number-columns-spanned="3">
+          <fo:block>
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'RevHistory'"/>
+            </xsl:call-template>
+          </fo:block>
+        </fo:table-cell>
+      </fo:table-row>
+      <xsl:apply-templates mode="titlepage.mode"/>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template match="revhistory/revision" mode="titlepage.mode">
+  <xsl:variable name="revnumber" select=".//revnumber"/>
+  <xsl:variable name="revdate"   select=".//date"/>
+  <xsl:variable name="revauthor" select=".//authorinitials"/>
+  <xsl:variable name="revremark" select=".//revremark"/>
+  <fo:table-row>
+    <fo:table-cell>
+      <fo:block>
+        <xsl:if test="$revnumber">
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'Revision'"/>
+          </xsl:call-template>
+          <xsl:call-template name="gentext.space"/>
+          <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
+        </xsl:if>
+      </fo:block>
+    </fo:table-cell>
+    <fo:table-cell>
+      <fo:block>
+        <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
+      </fo:block>
+    </fo:table-cell>
+    <fo:table-cell>
+      <fo:block>
+        <xsl:apply-templates select="$revauthor[1]" mode="titlepage.mode"/>
+      </fo:block>
+    </fo:table-cell>
+  </fo:table-row>
+  <xsl:if test="$revremark">
+    <fo:table-row>
+      <fo:table-cell number-columns-spanned="3">
+        <fo:block>
+          <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
+        </fo:block>
+      </fo:table-cell>
+    </fo:table-row>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/date" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revremark" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subjectset" mode="titlepage.mode">
+  <!-- discard -->
+</xsl:template>
+
+<xsl:template match="subtitle" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="surname" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Book templates -->
+
+<!-- book recto -->
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.mode">
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode"/>
+</xsl:template>
+
+<!-- book verso -->
+
+<xsl:template match="title" mode="book.titlepage.verso.mode">
+  <fo:block>
+    <xsl:apply-templates mode="book.titlepage.verso.mode"/>
+
+    <xsl:if test="following-sibling::subtitle
+                  |following-sibling::bookinfo/subtitle">
+      <xsl:text>: </xsl:text>
+
+      <xsl:apply-templates select="(following-sibling::subtitle
+                                   |following-sibling::bookinfo/subtitle)[1]"
+                           mode="book.titlepage.verso.mode"/>
+    </xsl:if>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.verso.mode">
+  <xsl:apply-templates mode="book.titlepage.verso.mode"/>
+  <xsl:if test="following-sibling::subtitle">
+    <xsl:text>: </xsl:text>
+    <xsl:apply-templates select="following-sibling::subtitle[1]"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bookinfo/author" mode="book.titlepage.verso.mode">
+  <fo:block>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'by'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="person.name"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="bookinfo/corpauthor" mode="book.titlepage.verso.mode">
+  <fo:block>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'by'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.verso.mode">
+  <fo:block>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'by'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates mode="book.titlepage.verso.mode"/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template match="authorgroup/author" mode="book.titlepage.verso.mode">
+  <xsl:variable name="before" select="count(preceding-sibling::*)"/>
+  <xsl:variable name="after" select="count(following-sibling::*)"/>
+
+  <xsl:choose>
+    <xsl:when test="$before &gt; 1">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:when test="$before = 1 and $after &gt; 0">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:if test="$before &gt; 0 and $after = 0">
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'and'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+  </xsl:if>
+
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="authorgroup/corpauthor" mode="book.titlepage.verso.mode">
+  <xsl:variable name="before" select="count(preceding-sibling::*)"/>
+  <xsl:variable name="after" select="count(following-sibling::*)"/>
+
+  <xsl:choose>
+    <xsl:when test="$before &gt; 1">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:when test="$before = 1 and $after &gt; 0">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:if test="$after = 0 and $before &gt; 0">
+    <xsl:text> </xsl:text>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'and'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+  </xsl:if>
+
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.verso.mode">
+  <fo:block>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'published'"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates mode="book.titlepage.verso.mode"/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Part templates -->
+
+<!-- part recto -->
+
+<xsl:template match="title" mode="part.titlepage.recto.mode">
+  <xsl:apply-templates select="ancestor::part" mode="title.markup"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/toc.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/toc.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/toc.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,211 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: toc.xsl,v 1.2 2001/06/23 17:06:34 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- FIXME: in the contexts where <toc> can occur, I think it's always
+     the case that a page-sequence is required. Is that true? -->
+
+<xsl:template match="toc">
+  <xsl:variable name="master-name">
+    <xsl:call-template name="select.pagemaster"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="*">
+      <xsl:if test="$process.source.toc != 0">
+        <!-- if the toc isn't empty, process it -->
+        <fo:page-sequence hyphenate="{$hyphenate}"
+                          master-name="{$master-name}">
+          <xsl:attribute name="language">
+            <xsl:call-template name="l10n.language"/>
+          </xsl:attribute>
+          <xsl:if test="$double.sided != 0">
+            <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+          </xsl:if>
+
+          <xsl:apply-templates select="." mode="running.head.mode">
+            <xsl:with-param name="master-name" select="$master-name"/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="." mode="running.foot.mode">
+            <xsl:with-param name="master-name" select="$master-name"/>
+          </xsl:apply-templates>
+
+          <fo:flow flow-name="xsl-region-body">
+            <fo:block xsl:use-attribute-sets="toc.margin.properties">
+              <xsl:call-template name="table.of.contents.titlepage"/>
+              <xsl:apply-templates/>
+            </fo:block>
+          </fo:flow>
+        </fo:page-sequence>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$process.empty.source.toc != 0">
+        <fo:page-sequence hyphenate="{$hyphenate}"
+                          master-name="{$master-name}">
+          <xsl:attribute name="language">
+            <xsl:call-template name="l10n.language"/>
+          </xsl:attribute>
+          <xsl:if test="$double.sided != 0">
+            <xsl:attribute name="force-page-count">end-on-even</xsl:attribute>
+          </xsl:if>
+
+          <xsl:apply-templates select="." mode="running.head.mode">
+            <xsl:with-param name="master-name" select="$master-name"/>
+          </xsl:apply-templates>
+          <xsl:apply-templates select="." mode="running.foot.mode">
+            <xsl:with-param name="master-name" select="$master-name"/>
+          </xsl:apply-templates>
+
+          <fo:flow flow-name="xsl-region-body">
+            <xsl:choose>
+              <xsl:when test="parent::section
+                              or parent::sect1
+                              or parent::sect2
+                              or parent::sect3
+                              or parent::sect4
+                              or parent::sect5">
+                <xsl:apply-templates select="parent::*"
+                                     mode="toc.for.section"/>
+              </xsl:when>
+              <xsl:when test="parent::article">
+                <xsl:apply-templates select="parent::*"
+                                     mode="toc.for.component"/>
+              </xsl:when>
+              <xsl:when test="parent::book
+                              or parent::part">
+                <xsl:apply-templates select="parent::*"
+                                     mode="toc.for.division"/>
+              </xsl:when>
+              <xsl:when test="parent::set">
+                <xsl:apply-templates select="parent::*"
+                                     mode="toc.for.set"/>
+              </xsl:when>
+              <!-- there aren't any other contexts that allow toc -->
+              <xsl:otherwise>
+                <xsl:message>
+                  <xsl:text>I don't know how to make a TOC in this context!</xsl:text>
+                </xsl:message>
+              </xsl:otherwise>
+            </xsl:choose>
+          </fo:flow>
+        </fo:page-sequence>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocpart|tocchap
+                     |toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+  <xsl:apply-templates select="tocentry"/>
+  <xsl:if test="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+    <fo:block start-indent="{count(ancestor::*)*2}pc">
+      <xsl:apply-templates select="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="tocentry|tocfront|tocback">
+  <fo:block text-align-last="justify"
+            end-indent="2pc"
+            last-line-end-indent="-2pc">
+    <fo:inline keep-with-next.within-line="always">
+      <xsl:choose>
+        <xsl:when test="@linkend">
+          <fo:basic-link internal-destination="{@linkend}">
+            <xsl:apply-templates/>
+          </fo:basic-link>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </fo:inline>
+
+    <xsl:choose>
+      <xsl:when test="@linkend">
+        <fo:inline keep-together.within-line="always">
+          <xsl:text> </xsl:text>
+          <fo:leader leader-pattern="dots"
+                     keep-with-next.within-line="always"/>
+          <xsl:text> </xsl:text>
+          <fo:basic-link internal-destination="{@linkend}">
+            <xsl:choose>
+              <xsl:when test="@pagenum">
+                <xsl:value-of select="@pagenum"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <fo:page-number-citation ref-id="{@linkend}"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </fo:basic-link>
+        </fo:inline>
+      </xsl:when>
+      <xsl:when test="@pagenum">
+        <fo:inline keep-together.within-line="always">
+          <xsl:text> </xsl:text>
+          <fo:leader leader-pattern="dots"
+                     keep-with-next.within-line="always"/>
+          <xsl:text> </xsl:text>
+          <xsl:value-of select="@pagenum"/>
+        </fo:inline>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- just the leaders, what else can I do? -->
+        <fo:inline keep-together.within-line="always">
+          <xsl:text> </xsl:text>
+          <fo:leader leader-pattern="space"
+                     keep-with-next.within-line="always"/>
+        </fo:inline>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="toc.for.section">
+<!--
+  <xsl:call-template name="section.toc"/>
+-->
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.component">
+  <xsl:call-template name="component.toc"/>
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.section">
+<!--
+  <xsl:call-template name="section.toc"/>
+-->
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.division">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.set">
+<!--
+  <xsl:call-template name="set.toc"/>
+-->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="lot|lotentry">
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/verbatim.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/verbatim.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/verbatim.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,246 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim"
+                xmlns:xverb="com.nwalsh.xalan.Verbatim"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="sverb xverb lxslt"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: verbatim.xsl,v 1.2 2001/06/23 17:06:34 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xverb"
+                 functions="numberLines"/>
+
+<xsl:template match="programlisting|screen">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $use.extensions != '0'
+                    and $linenumbering.extension != '0'">
+      <xsl:variable name="rtf">
+        <xsl:apply-templates/>
+      </xsl:variable>
+      <fo:block wrap-option='no-wrap'
+                text-align='start'
+                white-space-collapse='false'
+                linefeed-treatment="preserve"
+                xsl:use-attribute-sets="monospace.verbatim.properties">
+        <xsl:call-template name="number.rtf.lines">
+          <xsl:with-param name="rtf" select="$rtf"/>
+        </xsl:call-template>
+      </fo:block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block wrap-option='no-wrap'
+                text-align='start'
+                white-space-collapse='false'
+                linefeed-treatment="preserve"
+                xsl:use-attribute-sets="monospace.verbatim.properties">
+        <xsl:apply-templates/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="literallayout">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $use.extensions != '0'
+                    and $linenumbering.extension != '0'">
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <fo:block wrap-option='no-wrap'
+                    text-align='start'
+                    linefeed-treatment="preserve"
+                    white-space-collapse='false'
+                    xsl:use-attribute-sets="monospace.verbatim.properties">
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </fo:block>
+        </xsl:when>
+        <xsl:otherwise>
+          <fo:block wrap-option='no-wrap'
+                    text-align='start'
+                    linefeed-treatment="preserve"
+                    white-space-collapse='false'
+                    xsl:use-attribute-sets="verbatim.properties">
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </fo:block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <fo:block wrap-option='no-wrap'
+                    text-align='start'
+                    linefeed-treatment="preserve"
+                    white-space-collapse='false'
+                    xsl:use-attribute-sets="monospace.verbatim.properties">
+            <xsl:copy-of select="$rtf"/>
+          </fo:block>
+        </xsl:when>
+        <xsl:otherwise>
+          <fo:block wrap-option='no-wrap'
+                    text-align='start'
+                    linefeed-treatment="preserve"
+                    white-space-collapse='false'
+                    xsl:use-attribute-sets="verbatim.properties">
+            <xsl:copy-of select="$rtf"/>
+          </fo:block>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="address">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $use.extensions != '0'
+                    and $linenumbering.extension != '0'">
+      <fo:block wrap-option='no-wrap'
+                white-space-collapse='false'
+                linefeed-treatment="preserve"
+                xsl:use-attribute-sets="verbatim.properties">
+        <xsl:call-template name="number.rtf.lines">
+          <xsl:with-param name="rtf" select="$rtf"/>
+        </xsl:call-template>
+      </fo:block>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:block wrap-option='no-wrap'
+                text-align='start'
+                linefeed-treatment="preserve"
+                white-space-collapse='false'
+                xsl:use-attribute-sets="verbatim.properties">
+        <xsl:apply-templates/>
+      </fo:block>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="number.rtf.lines">
+  <xsl:param name="rtf" select="''"/>
+  <xsl:param name="pi.context" select="."/>
+
+  <!-- Save the global values -->
+  <xsl:variable name="global.linenumbering.everyNth"
+                select="$linenumbering.everyNth"/>
+
+  <xsl:variable name="global.linenumbering.separator"
+                select="$linenumbering.separator"/>
+
+  <xsl:variable name="global.linenumbering.width"
+                select="$linenumbering.width"/>
+
+  <!-- Extract the <?dbfo linenumbering.*?> PI values -->
+  <xsl:variable name="pi.linenumbering.everyNth">
+    <xsl:call-template name="dbfo-attribute">
+      <xsl:with-param name="pis"
+                      select="$pi.context/processing-instruction('dbfo')"/>
+      <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.separator">
+    <xsl:call-template name="dbfo-attribute">
+      <xsl:with-param name="pis"
+                      select="$pi.context/processing-instruction('dbfo')"/>
+      <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.width">
+    <xsl:call-template name="dbfo-attribute">
+      <xsl:with-param name="pis"
+                      select="$pi.context/processing-instruction('dbfo')"/>
+      <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Construct the 'in-context' values -->
+  <xsl:variable name="linenumbering.everyNth">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.everyNth != ''">
+        <xsl:value-of select="$pi.linenumbering.everyNth"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.everyNth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.separator">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.separator != ''">
+        <xsl:value-of select="$pi.linenumbering.separator"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.width">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.width != ''">
+        <xsl:value-of select="$pi.linenumbering.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON ')">
+      <xsl:copy-of select="sverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+      <xsl:copy-of select="xverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>Don't know how to do line numbering with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/xref.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/xref.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/fo/xref.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,313 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: xref.xsl,v 1.2 2001/06/23 17:06:34 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="anchor">
+  <!-- FIXME: should this output an empty element with an ID? -->
+  <!-- what element!? -->
+  <!-- suppress -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="xref">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="refelem" select="name($target)"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:choose>
+    <xsl:when test="$refelem=''">
+      <xsl:message>
+	<xsl:text>XRef to nonexistent id: </xsl:text>
+	<xsl:value-of select="@linkend"/>
+      </xsl:message>
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+
+    <xsl:when test="$target/@xreflabel">
+      <fo:basic-link internal-destination="{@linkend}"
+                     xsl:use-attribute-sets="xref.properties">
+	<xsl:call-template name="xref.xreflabel">
+	  <xsl:with-param name="target" select="$target"/>
+	</xsl:call-template>
+      </fo:basic-link>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <fo:basic-link internal-destination="{@linkend}"
+                     xsl:use-attribute-sets="xref.properties">
+        <xsl:choose>
+	  <xsl:when test="@endterm">
+	    <xsl:variable name="etargets" select="id(@endterm)"/>
+	    <xsl:variable name="etarget" select="$etargets[1]"/>
+	    <xsl:choose>
+	      <xsl:when test="count($etarget) = 0">
+		<xsl:message>
+		  <xsl:value-of select="count($etargets)"/>
+		  <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+		  <xsl:value-of select="@endterm"/>
+		</xsl:message>
+		<xsl:text>???</xsl:text>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:apply-templates select="$etarget" mode="xref.text"/>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </xsl:when>
+
+          <xsl:otherwise>
+            <xsl:apply-templates select="$target" mode="xref-to"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </fo:basic-link>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!--- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:message>
+    <xsl:text>Don't know what gentext to create for xref to: "</xsl:text>
+    <xsl:value-of select="$refelem"/>
+    <xsl:text>"</xsl:text>
+  </xsl:message>
+  <xsl:text>???</xsl:text>
+</xsl:template>
+
+<xsl:template match="author" mode="xref-to">
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="figure" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="example" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="table" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="equation" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-to">
+  <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-to">
+  <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="dedication" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="preface" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="chapter" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="appendix" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to">
+  <!-- handles both biblioentry and bibliomixed -->
+  <xsl:text>[</xsl:text>
+  <xsl:choose>
+    <xsl:when test="local-name(*[1]) = 'abbrev'">
+      <xsl:apply-templates select="*[1]"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="@id"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:text>]</xsl:text>
+</xsl:template>
+
+<xsl:template match="glossary" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="index" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="section|simplesect
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+  <!-- What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="question" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="answer" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="part" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="reference" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-to">
+  <xsl:apply-templates select="." mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="book" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="link">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <fo:basic-link internal-destination="{@linkend}"
+                 xsl:use-attribute-sets="xref.properties">
+    <xsl:apply-templates/>
+  </fo:basic-link>
+</xsl:template>
+
+<xsl:template match="ulink">
+  <fo:basic-link external-destination="{@url}"
+                 xsl:use-attribute-sets="xref.properties">
+    <xsl:choose>
+      <xsl:when test="count(child::node())=0">
+	<xsl:value-of select="@url"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:basic-link>
+  <xsl:if test="count(child::node()) != 0">
+    <fo:inline hyphenate="false">
+      <xsl:text> [</xsl:text>
+      <xsl:value-of select="@url"/>
+      <xsl:text>]</xsl:text>
+    </fo:inline>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="olink">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="title.xref">
+  <xsl:param name="target" select="."/>
+  <xsl:choose>
+    <xsl:when test="local-name($target) = 'figure'
+                    or local-name($target) = 'example'
+                    or local-name($target) = 'equation'
+                    or local-name($target) = 'table'
+                    or local-name($target) = 'dedication'
+                    or local-name($target) = 'preface'
+                    or local-name($target) = 'bibliography'
+                    or local-name($target) = 'glossary'
+                    or local-name($target) = 'index'
+                    or local-name($target) = 'setindex'
+                    or local-name($target) = 'colophon'">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:apply-templates select="$target" mode="title.markup"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <fo:inline font-style="italic">
+        <xsl:apply-templates select="$target" mode="title.markup"/>
+      </fo:inline>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="number.xref">
+  <xsl:param name="target" select="."/>
+  <xsl:apply-templates select="$target" mode="label.markup"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="xref.xreflabel">
+  <!-- called to process an xreflabel...you might use this to make  -->
+  <!-- xreflabels come out in the right font for different targets, -->
+  <!-- for example. -->
+  <xsl:param name="target" select="."/>
+  <xsl:value-of select="$target/@xreflabel"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="title" mode="xref">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="command" mode="xref">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="function" mode="xref">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template name="insert.page.citation">
+  <xsl:param name="id" select="'???'"/>
+  <xsl:if test="$insert.xref.page.number">
+    <xsl:text> </xsl:text>
+    <fo:inline keep-together.within-line="always">
+      <xsl:text>[</xsl:text>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'page.citation'"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <fo:page-number-citation ref-id="{$id}"/>
+      <xsl:text>]</xsl:text>
+    </fo:inline>
+  </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,173 @@
+2001-06-13  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* chunk-common.xsl: Make sure the root element gets processed correctly so that it generates the right titlepage
+
+	* component.xsl: Don't output ID attributes on DIVs with required titles since they conflict with the NAME attributes on the subsequently output A tags.
+
+	* docbook.xsl: Pass the current node to user.head.content
+
+	* index.xsl: Updated comment
+
+2001-06-07  Jirka Kosek <kosek at users.sourceforge.net>
+
+	* lists.xsl: Things preceding steps in procedure are placed before OL list.
+
+2001-06-04  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* lists.xsl: Fixed typo in compact list support; backed out procedure step changes
+
+	* sections.xsl: Fixed CSS typo; clear: all should be clear: both
+
+2001-06-02  Jirka Kosek <kosek at users.sourceforge.net>
+
+	* lists.xsl: Fixed bug #424926. Things preceding steps in procedure are not placed inside OL list.
+
+2001-05-23  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* component.xsl: Reorganized templates for clarity
+
+	* graphics.xsl: Fix dup. template bug with is.graphic.*
+
+	* titlepage.xsl: Added template for publisher
+
+2001-05-21  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* autotoc.xsl: Make the TOC label/title separator a parameter
+
+	* callout.xsl, verbatim.xsl: Move calculation of linenumber.* parameters into the number.rtf.lines template
+
+	* changebars.xsl: Add link and member as inlines
+
+	* sections.xsl: Refactor the section title code
+
+	* titlepage.templates.xml: Reworked titlepage template processing to support use of more interesting
+	predicates.
+	
+	Note: in previous versions, at most one title, subtitle, or titleabbrev
+	element would be processed for each title page. In the new design, if you
+	have multiple title, subtitle, or titleabbrev elements inside an info
+	wrapper (you shouldn't!), they will all be processed.
+
+2001-05-13  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* param.xsl: Fixed ID typo
+
+	* synop.xsl: Fixed synopfragmentref link (suggested by Philippe Martin)
+
+2001-05-12  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* autotoc.xsl, param.xsl: Mostly failed attempt to add bridgeheads to the automatic TOC; this option is turned off by default and you should leave it that way.
+
+	* sections.xsl: Calculate the heading level for bridgeheads
+
+2001-05-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* lists.xsl: Output anchors for procedures and steps
+
+	* table.xsl: Process head/body/foot in the right order
+
+2001-04-29  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* chunk-common.xsl, chunk.xsl, xtchunk.xsl: Automatically make an index when chunking with a processor other than XT
+
+2001-04-26  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* changebars.xsl: Support a few more elements
+
+	* inline.xsl: Make glossterms hot if they're links. And make them italic.
+
+	* lists.xsl: Improve procedure step/substep enumeration
+
+2001-04-24  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* chunk-common.xsl: Feature request 416507: added chunk.sections and chunk.first.sections to provide greater chunking flexibility
+
+	* chunk-common.xsl: Fix chunking bug
+
+	* chunker.xsl: Output ID in message
+
+	* glossary.xsl: Fix bug that caused duplicated glossary entries
+
+	* qandaset.xsl: Bug #418100: fix qandaentry anchors; also fixed formatting bug in questions with indexterms
+
+2001-04-21  Jirka Kosek <kosek at users.sourceforge.net>
+
+	* chunker.xsl, param.xsl: Added parameters for changing output encoding in chunked HTML
+
+	* inline.xsl: Improve processing of trademarks
+
+2001-04-20  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* inline.xsl: Restoring accidentally deleted citetitle template
+
+2001-04-18  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* autoidx.xsl: Fix bug: lowercase and uppercase need to be strings (not element names :-)
+
+	* inline.xsl, param.xsl: Bug #413982, easy support for man page CGI links on citerefentry
+
+2001-04-17  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* docbook.xsl, param.xsl: Move label.from.part parameter into param.xsl; default it to 0 so that chapters and appendixes are numbered monotonically throughout a book by default. Moved param.xsl up in the include list, just for good measure
+
+2001-04-16  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* component.xsl: Fix bug in processing of subtitle content on components
+
+	* glossary.xsl, titlepage.templates.xml: Fix formatting of glossarys--things were really broken
+
+	* xref.xsl: Patches Tracker #415439: support title attribute on HTML anchors associated with xrefs
+
+2001-04-15  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* chunk-common.xsl: Process footnotes correctly when chunking; add summary attribute to navigation tables
+
+	* docbook.xsl: Support inheriting of *info keywords
+
+	* footnote.xsl, sections.xsl: Process footnotes correctly when chunking
+
+	* formal.xsl: Use gentext templates for formal object titles
+
+	* param.xsl: Added new parameters: inherit.keywords, process.source.toc, and process.empty.source.toc; changed the default for spacing.paras to 0
+
+	* table.xsl: Improve support for align attribute on tgroup
+
+	* toc.xsl: Support DocBook toc markup
+
+	* xref.xsl: Make a title attribute on HTML anchors for links to things with titles
+
+2001-04-05  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* table.xsl: Don't translate tgroup align into HTML table align--they don't mean the same thing
+
+	* titlepage.xsl: Suppress titleabbrev on the title page
+
+2001-04-04  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* chunk-common.xsl: Move xsl:message about chunks into the chunker modules
+
+	* chunker.xsl: Support indent and doctype public/system on chunks (for Saxon, anyway, Xalan's multiple-document extension doesn't seem to support this)
+
+	* xtchunker.xsl: Use xsl:choose to support xml, html, and text output methods
+
+2001-04-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* callout.xsl: Fix bug 412487, make XSL-generated callout marks honor callout mark parameters
+
+	* chunk-common.xsl: Remove unnecessary xmlns declarations
+
+	* chunker.xsl: Patch to make saxon not produce xml version=1.1 documents
+
+	* param.xsl: Documentation fixes
+
+	* qandaset.xsl: Apply patch 412510 by Jon Willeke, make xref to Question work correctly
+
+	* xref.xsl: Remove unnecessary parameter assignment
+
+2001-04-02  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* .cvsignore, Makefile, admon.xsl, autoidx.xsl, autotoc.xsl, biblio.xsl, block.xsl, callout.xsl, changebars.xsl, chunk-common.xsl, chunk.xsl, chunker.xsl, component.xsl, division.xsl, docbook.xsl, ebnf.xsl, footnote.xsl, formal.xsl, glossary.xsl, graphics.xsl, html.xsl, index.xsl, info.xsl, inline.xsl, keywords.xsl, lists.xsl, math.xsl, param.xsl, pi.xsl, qandaset.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.templates.xml, titlepage.xsl, toc.xsl, verbatim.xsl, xref.xsl, xtchunk.xsl, xtchunker.xsl: 
+	New file.
+
+	* Makefile: Use the cvstools version of saxon
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/LostLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/LostLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/LostLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,494 @@
+2000-08-29  Norman Walsh  <ndw at nwalsh.com>
+
+	* docbook.xsl: Support html.base parameter
+
+	* param.xsl: Made parameters into xsl:params instead of xsl:variables
+
+2000-08-08  Norman Walsh  <ndw at nwalsh.com>
+
+	* lists.xsl: Support numeration on orderedlists, mark and override with CSS
+
+	* param.xsl: Added css.decoration parameter
+
+	* xref.xsl: Support new ulink semantics; an empty ulink prints the URL as its content
+
+2000-07-21  Norman Walsh  <ndw at nwalsh.com>
+
+	* biblio.xsl: Support bibliographyinfo; improve handling of copyright holders
+
+	* block.xsl: Support attribution on blockquote
+
+	* chunk.xsl: Add root.filename parameter to rename 'index.html'
+
+	* ebnf.xsl, param.xsl: Add exclude-result-prefixes for the doc: namespace
+
+	* footnote.xsl: Improve formatting of footnote numbers
+
+	* inline.xsl: Support IDs on inlines; fix priority problem on parameter
+
+	* qandaset.xsl: Keep revhistory out of qandaset tocs
+
+	* table.xsl: Support tfoot
+
+	* titlepage.templates.xml, titlepage.templates.xsl: Output legalnotice on titlepages
+
+	* xref.xsl: Support IDs on links
+
+2000-06-25  Norman Walsh  <ndw at nwalsh.com>
+
+	* chunk.xsl, docbook.xsl: Use attribute set for body attributes
+
+	* graphics.xsl: Start adding support for graphic extensions
+
+	* param.xsl: Add body.attrs and move qanda params into here
+
+	* qandaset.xsl: Moved qanda params into param.xsl; changed to 0/1 for command-line setting
+
+	* xref.xsl: Support xref to Q and A
+
+2000-05-21  Norman Walsh  <ndw at nwalsh.com>
+
+	* block.xsl: Handle sidebar titles more flexibly
+
+	* chunk.xsl, xtchunk.xsl: Support chunking with xalan (sortof) and saxon in addition to xt
+
+	* formal.xsl: Improve spacing around formal and informal objects
+
+	* info.xsl: Handle jobtitle, orgname, and orgdiv in other contexts
+
+	* param.xsl: Added spacing.paras
+
+2000-05-07  Norman Walsh  <ndw at nwalsh.com>
+
+	* xtchunk.xsl: Strip dbhtml PIs from the HTML output after chunking
+
+2000-04-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* ebnf.xsl: More hacking
+
+	* glossary.xsl: Glossary title formatting made to conform to the model of other titles
+
+	* lists.xsl: Added ids to listitems; fixed simplelist formatting
+
+	* xref.xsl: Some templates moved to common; support endterm
+
+2000-04-06  Norman Walsh  <ndw at nwalsh.com>
+
+	* ebnf.xsl: New file.
+
+	* inline.xsl: Support new class values on sgmltag
+
+	* lists.xsl: Support titles on ordered and itemized lists
+
+	* synop.xsl: Support classsynopsis
+
+	* xref.xsl: Added xpointer.idref, check.idref.targets, and check.id.unique
+
+2000-04-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* lists.xsl: Fixed bug in tabular simplelist presentation
+
+	* xref.xsl: Fixed message typo
+
+2000-03-23  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, autotoc.xsl, html.xsl, inline.xsl, lists.xsl, param.xsl, refentry.xsl, synop.xsl: 
+	Change boolean stylesheet variables to use 0/1 instead of true()/false() to avoid representation issues when setting them from the command line
+
+	* inline.xsl: Improve formatting of functions
+
+	* param.xsl: Tweaked documentation; added (unused) use.id.function parameter
+
+	* xref.xsl: Switch to using id() for cross refs
+
+	* xtchunk.xsl: Fix error in test for parent of refentry
+
+2000-02-25  Norman Walsh  <ndw at nwalsh.com>
+
+	* biblio.xsl: Crude support for missing elements
+
+	* component.xsl, glossary.xsl: Support for new *info elements
+
+	* inline.xsl: Added exceptionname, interfacename, methodname, and remark
+
+	* param.xsl: Added check.idref
+
+	* xref.xsl: Added support for check.idref and href.target
+
+2000-02-18  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, biblio.xsl, block.xsl, callout.xsl, component.xsl, division.xsl, docbook.xsl, footnote.xsl, formal.xsl, glossary.xsl, graphics.xsl, html.xsl, index.xsl, info.xsl, inline.xsl, keywords.xsl, lists.xsl, math.xsl, param.xsl, pi.xsl, qandaset.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.xsl, toc.xsl, verbatim.xsl, xref.xsl: 
+	Removed default xmlns for HTML; it didn't work the way I thought and caused problems with Xalan
+
+	* autotoc.xsl: Support changing the TOC list type
+
+	* docbook.xsl: Added user.head.content hook for adding additional HEAD tags
+
+	* inline.xsl: Made systemitem monospaced
+
+	* param.xsl: Added toc.list.type
+
+2000-02-16  Norman Walsh  <ndw at nwalsh.com>
+
+	* graphics.xsl: Improved support for mediaobject and inlinemediaobject
+
+	* lists.xsl: Handle title on step in procedure
+
+	* param.xsl: Added graphic.default.extension
+
+	* table.xsl: Changed the calculation of empty cells.
+
+	* titlepage.templates.xsl: Added version attribute
+
+	* xref.xsl: Fixed typo
+
+2000-02-07  Norman Walsh  <ndw at nwalsh.com>
+
+	* inline.xsl: Fixed bug in email formatting in verbatim environments
+
+	* lists.xsl: Added (broken) support for orderedlist continuation
+
+	* table.xsl: Fixed calculation of empty cells
+
+	* titlepage.templates.xsl: Regenerated to workaround attr name bug
+
+	* xref.xsl: Xref text changes for I18N; this could be buggy
+
+2000-01-27  Norman Walsh  <ndw at nwalsh.com>
+
+	* block.xsl: Support titles in MsgSet elements; support SimpleMsgEntry; support RevDescription
+
+	* docbook.xsl, titlepage.article.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.section.xsl, titlepage.set.xsl, titlepage.templates.xml, titlepage.templates.xsl: 
+	Completely revamped titlepage code; it's now all template based
+
+	* lists.xsl: Support list titles
+
+	* param.xsl: Added section.label.includes.component.lable
+
+	* refentry.xsl: Support refentry *info meta
+
+	* sections.xsl: Fix section DIV class names
+
+	* titlepage.xsl: Support RevDescription
+
+2000-01-14  Norman Walsh  <ndw at nwalsh.com>
+
+	* docbook.xsl: Display message about unmatched tags
+
+	* index.xsl: Don't output anything for a completely empty index
+
+	* param.xsl: Fixed docbug
+
+	* xtchunk.xsl: Don't output a chunk for a completely blank index
+
+2000-01-11  Norman Walsh  <ndw at nwalsh.com>
+
+	* component.xsl, titlepage.article.xsl: Handle ArticleInfo (DocBook 4.0 :-)
+
+	* xtchunk.xsl: Fix bug calculating ischunk
+
+2000-01-10  Norman Walsh  <ndw at nwalsh.com>
+
+	* autotoc.xsl: Updated label.content (for recursion) and TOC name (for L10N)
+
+	* block.xsl: Added AckNo
+
+	* docbook.xsl, xref.xsl: Support anchor and olink; L10N of quotation marks
+
+	* index.xsl: Handle SetIndex and indexing inlines
+
+	* inline.xsl: Added constant, varname, and pob; L10N on quotation marks
+
+	* param.xsl: Made default html.stylesheet empty; added qandadiv.autolabel and qanda.inherit.numeration
+
+	* qandaset.xsl: New file.
+
+	* refentry.xsl: Added ref*info
+
+	* table.xsl: Support tfoot
+
+	* toc.xsl: Handle lot and descendants of toc and lot
+
+	* xref.xsl: Fixed xrefs to formal objects
+
+1999-12-28  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl: Use admon.graphic.width
+
+	* autotoc.xsl, block.xsl, component.xsl, formal.xsl, sections.xsl, titlepage.xsl, xref.xsl: 
+	Updated to use new title generation code from common.xsl
+
+	* docbook.xsl: Reorganize HTML HEAD computation for xtchunk.xsl; use new title generation code
+
+	* html.xsl: Use Unicode chars for dingbats since we have a real serializer now
+
+	* param.xsl: Added part.autolabel, preface.autolabel, link.mailto.url, and tweaked documentation
+
+	* pi.xsl: Added dbhtml-attribute, dbhtml-dir, and dbhtml-filename (for xtchunk.xsl, mostly)
+
+	* xtchunk.xsl: Finished first pass at XT-based chunker
+
+	* xtchunk.xsl: Fixed typos; improved messages
+
+1999-12-24  Norman Walsh  <ndw at nwalsh.com>
+
+	* xtchunk.xsl: New file.
+
+1999-12-22  Norman Walsh  <ndw at nwalsh.com>
+
+	* autotoc.xsl: Created function href.target so xtchunk.xsl can override it
+
+	* division.xsl: Add some ID attributes
+
+	* param.xsl: More doc namespace fiddling
+
+	* table.xsl: Try to output nbsp when cells are empty
+
+	* xref.xsl: Output warning messages about broken IDREFs
+
+1999-11-23  Norman Walsh  <ndw at nwalsh.com>
+
+	* autotoc.xsl, sections.xsl: Split section label/title code, allow auto TOCs to link just the title
+
+	* graphics.xsl: Added support for align attribute on graphics
+
+	* table.xsl: Replace xsl:element with literal element
+
+1999-11-16  Norman Walsh  <ndw at nwalsh.com>
+
+	* graphics.xsl: Support fileref and entityref on external objects
+
+1999-11-10  Norman Walsh  <ndw at nwalsh.com>
+
+	* block.xsl: Don't put borders around revhistorys
+
+	* docbook.xsl: Produce HTML; handle a few more root titles
+
+1999-11-05  Norman Walsh  <ndw at nwalsh.com>
+
+	* docbookh.xsl: Rearranged code so this isn't necessary
+
+1999-11-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, autotoc.xsl, biblio.xsl, block.xsl, callout.xsl, component.xsl, division.xsl, docbook.xsl, docbookh.xsl, footnote.xsl, formal.xsl, glossary.xsl, graphics.xsl, html.xsl, index.xsl, info.xsl, inline.xsl, keywords.xsl, lists.xsl, math.xsl, param.xsl, pi.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.article.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.section.xsl, titlepage.set.xsl, titlepage.xsl, toc.xsl, verbatim.xsl, xref.xsl: 
+	Added default namespace and stylesheet version
+
+	* block.xsl: Support revhistory in block contexts
+
+1999-11-02  Norman Walsh  <ndw at nwalsh.com>
+
+	* autotoc.xsl: Added support for generate.{division|component}.toc
+
+	* block.xsl: Added space after formal para titles
+
+	* callout.xsl: Rudimentary support for callouts
+
+	* component.xsl: Support for label attribute on components
+
+	* html.xsl: Use disable-output-escaping to produce entity refs if the chunker isn't being used
+
+	* lists.xsl: More simplelist fixes, support for callouts
+
+	* param.xsl: Added documentation (there's no processor for it yet)
+
+	* refentry.xsl: Renamed refentry.function parameter to refentry.xref.manvolnum
+
+	* sections.xsl: Support for label attributes on sections
+
+1999-10-28  Norman Walsh  <ndw at nwalsh.com>
+
+	* autotoc.xsl: Format RefEntrys correctly in the TOC
+
+	* division.xsl: Make TOCs in Parts
+
+	* docbook.xsl: Try a little harder to find the title
+
+	* lists.xsl: Fix SimpleList formatting
+
+	* refentry.xsl: Fix RefName formatting; add TOCs to References; process RefEntry footnotes
+
+	* titlepage.xsl: Fix ID values on titles
+
+1999-10-22  Norman Walsh  <ndw at nwalsh.com>
+
+	* lists.xsl: Updated support for simplelist
+
+1999-10-21  Norman Walsh  <ndw at nwalsh.com>
+
+	* docbook.xsl: Add meta back to the head
+
+	* titlepage.article.xsl: Fixed URI
+
+1999-10-20  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, autotoc.xsl, biblio.xsl, block.xsl, callout.xsl, component.xsl, division.xsl, docbook.xsl, footnote.xsl, formal.xsl, glossary.xsl, graphics.xsl, html.xsl, index.xsl, info.xsl, inline.xsl, keywords.xsl, lists.xsl, math.xsl, param.xsl, pi.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.section.xsl, titlepage.set.xsl, titlepage.xsl, toc.xsl, verbatim.xsl, xref.xsl: 
+	Update URI in all the included modules
+
+	* docbookh.xsl: New file.
+
+1999-10-18  Norman Walsh  <ndw at nwalsh.com>
+
+	* docbook.xsl: Added xsl:output, fixed URI for PR
+
+1999-09-27  Norman Walsh  <ndw at nwalsh.com>
+
+	* autotoc.xsl: Use DL instead of UL for auto TOCs (no bullets)
+
+1999-09-25  Norman Walsh  <ndw at nwalsh.com>
+
+	* xref.xsl: Improved xreflabel support, support for xref to cmdsynopsis and funcsynopsis
+
+1999-09-24  Norman Walsh  <ndw at nwalsh.com>
+
+	* autotoc.xsl: Made TOC entries 'hot'
+
+	* docbook.xsl: Moved PI handling to pi.xsl, use strip/preserve from common.xsl
+
+	* formal.xsl: Tidy up some code, make sure objects have anchors
+
+	* pi.xsl: New file.
+
+	* synop.xsl: Make sure synopses have anchors and IDs
+
+1999-08-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* docbook.xsl: Removed default-space attribute
+
+	* lists.xsl: Fixed name/select bug on with-param
+
+1999-08-11  Norman Walsh  <ndw at nwalsh.com>
+
+	* autotoc.xsl: Support links from TOC
+
+	* lists.xsl: Reworked buggy call-template (used to contain xsl:if)
+
+	* sections.xsl: Support auto-label again
+
+	* titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.set.xsl: 
+	Removed unused named templates
+
+1999-07-31  Norman Walsh  <ndw at nwalsh.com>
+
+	* component.xsl: Fixed bad anchor name
+
+1999-07-27  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, autotoc.xsl, biblio.xsl, block.xsl, callout.xsl, component.xsl, division.xsl, docbook.xsl, footnote.xsl, formal.xsl, glossary.xsl, graphics.xsl, html.xsl, index.xsl, info.xsl, inline.xsl, lists.xsl, param.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.article.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.section.xsl, titlepage.set.xsl, titlepage.xsl, verbatim.xsl, xref.xsl: 
+	Updated to July spec
+
+1999-07-18  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, inline.xsl, titlepage.xsl: Mode bugs
+
+	* refentry.xsl: Removed bogus text
+
+1999-07-16  Norman Walsh  <ndw at nwalsh.com>
+
+	* lists.xsl: Fixed bug where match/name were misused
+
+1999-07-06  Norman Walsh  <ndw at nwalsh.com>
+
+	* component.xsl: Remodularized to support titles on components with optional titles
+
+	* footnote.xsl, table.xsl: Handle table footnotes properly
+
+	* refentry.xsl: Support numbering of references
+
+	* sections.xsl: Added inline.section.title
+
+	* xref.xsl: Remodularized to make customization of xrefs easier
+
+1999-07-02  Norman Walsh  <ndw at nwalsh.com>
+
+	* autotoc.xsl: Fixed bugs in toc generation; support for toc.section.depth
+
+	* block.xsl: Make a blockquote a blockquote; support abstract outside of info blocks
+
+	* division.xsl: Added support for numbering of Books and Parts
+
+	* docbook.xsl: Adjust includes, dbl10n becomes l10n, add toc
+
+	* glossary.xsl: Improvements to glossary and glosslist handling
+
+	* graphics.xsl: Add screenshot
+
+	* html.xsl: Test for using.chunker in dingbat output
+
+	* inline.xsl: Support inline persons (author, editor, othercredit), fix menuchoice, support productnumber
+
+	* lists.xsl: Allow xrefs to listitems in orderedlists, remove borders from tabular simplelists
+
+	* param.xsl: Added using.chunker and toc.section.depth
+
+	* refentry.xsl: Improve support for refentry page titles
+
+	* toc.xsl: New file.
+
+	* xref.xsl: Add support for xrefs to sections, appendixes, prefaces, books, and parts
+
+1999-06-14  Norman Walsh  <ndw at nwalsh.com>
+
+	* biblio.xsl: Significant improvements in bibliography support
+
+	* docbook.xsl: Added strip/preserve space support; fixed bug in HTML title header
+
+	* formal.xsl: Replaced an xsl:attribute element with a AVT
+
+	* info.xsl: Changed comments; added and then removed much more substantial changes
+
+	* keywords.xsl: New file.
+
+	* param.xsl: Added section.autolabel and biblioentry.item.separator
+
+	* sections.xsl: Added support for section titlepages
+
+	* titlepage.article.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.set.xsl, titlepage.xsl: 
+	Reorganized titlepages; things are much simpler now and most titlepages simply inherit from titlepage.xsl
+
+	* titlepage.section.xsl: New file.
+
+1999-06-09  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, autotoc.xsl, biblio.xsl, block.xsl, callout.xsl, component.xsl, division.xsl, docbook.xsl, footnote.xsl, formal.xsl, glossary.xsl, graphics.xsl, index.xsl, info.xsl, inline.xsl, lists.xsl, param.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.article.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.reference.xsl, titlepage.set.xsl, titlepage.xsl, verbatim.xsl, xref.xsl: 
+	Changed HTML markup to lowercase; tinkered with autotoc and admonitions
+
+1999-06-07  Norman Walsh  <ndw at nwalsh.com>
+
+	* autotoc.xsl, component.xsl, division.xsl, docbook.xsl: 
+	Automatic TOCs
+
+	* sections.xsl: Section headings can't be in common
+
+1999-06-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* biblio.xsl: New file.
+
+	* docbook.xsl: Added result-ns; rudimentary biblio and glossary support
+
+	* formal.xsl: Added informalfigure
+
+	* glossary.xsl: New file.
+
+	* graphics.xsl: Added mediaobject and inlinemediaobject
+
+	* titlepage.article.xsl: Added revision to article titlepage
+
+	* xref.xsl: Added support for xref to section
+
+1999-05-20  Norman Walsh  <ndw at nwalsh.com>
+
+	* admon.xsl, block.xsl, component.xsl, division.xsl, docbook.xsl, footnote.xsl, formal.xsl, graphics.xsl, html.xsl, index.xsl, inline.xsl, lists.xsl, math.xsl, param.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.article.xsl, titlepage.book.xsl, titlepage.part.xsl, titlepage.set.xsl, verbatim.xsl, xref.xsl: 
+	Many updates
+
+	* block.xsl, docbook.xsl, formal.xsl, html.xsl, inline.xsl, lists.xsl, param.xsl, refentry.xsl, synop.xsl, table.xsl: 
+	Updates
+
+	* callout.xsl: New file.
+
+	* titlepage.reference.xsl: New file.
+
+1999-05-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* docbook.xsl, formal.xsl, html.xsl, info.xsl, inline.xsl, lists.xsl, param.xsl, sections.xsl, table.xsl, titlepage.article.xsl, titlepage.xsl, verbatim.xsl, xref.xsl: 
+	New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,203 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+EXTRA_DIST =      ChangeLog LostLog admon.xsl autotoc.xsl biblio.xsl block.xsl callout.xsl     changebars.xsl chunk-common.xsl chunk.xsl component.xsl division.xsl     docbook.xsl ebnf.xsl footnote.xsl formal.xsl glossary.xsl graphics.xsl     html.xsl index.xsl info.xsl inline.xsl keywords.xsl lists.xsl math.xsl     param.xsl pi.xsl qandaset.xsl refentry.xsl sections.xsl synop.xsl     table.xsl titlepage.templates.xml titlepage.templates.xsl titlepage.xsl     toc.xsl verbatim.xsl xref.xsl xtchunk.xsl
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/html/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/html
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/html/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+all: 
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,203 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+EXTRA_DIST =      ChangeLog LostLog admon.xsl autotoc.xsl biblio.xsl block.xsl callout.xsl     changebars.xsl chunk-common.xsl chunk.xsl component.xsl division.xsl     docbook.xsl ebnf.xsl footnote.xsl formal.xsl glossary.xsl graphics.xsl     html.xsl index.xsl info.xsl inline.xsl keywords.xsl lists.xsl math.xsl     param.xsl pi.xsl qandaset.xsl refentry.xsl sections.xsl synop.xsl     table.xsl titlepage.templates.xml titlepage.templates.xsl titlepage.xsl     toc.xsl verbatim.xsl xref.xsl xtchunk.xsl
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/html/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/html
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/html/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+all: 
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/admon.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/admon.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/admon.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,135 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: admon.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="admon.graphic.width">
+  <xsl:param name="node" select="."/>
+  <xsl:text>25</xsl:text>
+</xsl:template>
+
+<xsl:template match="note|important|warning|caution|tip">
+  <xsl:choose>
+    <xsl:when test="$admon.graphics != 0">
+      <xsl:call-template name="graphical.admonition"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="nongraphical.admonition"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="admon.graphic">
+  <xsl:param name="node" select="."/>
+  <xsl:value-of select="$admon.graphics.path"/>
+  <xsl:choose>
+    <xsl:when test="name($node)='note'">note</xsl:when>
+    <xsl:when test="name($node)='warning'">warning</xsl:when>
+    <xsl:when test="name($node)='caution'">caution</xsl:when>
+    <xsl:when test="name($node)='tip'">tip</xsl:when>
+    <xsl:when test="name($node)='important'">important</xsl:when>
+    <xsl:otherwise>note</xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$admon.graphics.extension"/>
+</xsl:template>
+
+<xsl:template name="graphical.admonition">
+  <div class="{name(.)}">
+  <xsl:if test="$admon.style != ''">
+    <xsl:attribute name="style">
+      <xsl:value-of select="$admon.style"/>
+    </xsl:attribute>
+  </xsl:if>
+  <table border="0">
+    <tr>
+      <td rowspan="2" align="center" valign="top">
+        <xsl:attribute name="width">
+          <xsl:call-template name="admon.graphic.width"/>
+        </xsl:attribute>
+        <img>
+          <xsl:attribute name="src">
+            <xsl:call-template name="admon.graphic"/>
+          </xsl:attribute>
+        </img>
+      </td>
+      <th>
+        <a>
+          <xsl:attribute name="name">
+            <xsl:call-template name="object.id"/>
+          </xsl:attribute>
+        </a>
+        <xsl:apply-templates select="." mode="object.title.markup"/>
+      </th>
+    </tr>
+    <tr>
+      <td colspan="2" align="left" valign="top">
+        <xsl:apply-templates/>
+      </td>
+    </tr>
+  </table>
+  </div>
+</xsl:template>
+
+<xsl:template name="nongraphical.admonition">
+  <div class="{name(.)}">
+    <xsl:if test="$admon.style">
+      <xsl:attribute name="style">
+        <xsl:value-of select="$admon.style"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <h3 class="title">
+      <a>
+        <xsl:attribute name="name">
+          <xsl:call-template name="object.id"/>
+        </xsl:attribute>
+      </a>
+      <xsl:apply-templates select="." mode="object.title.markup"/>
+    </h3>
+
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="note/title"></xsl:template>
+<xsl:template match="important/title"></xsl:template>
+<xsl:template match="warning/title"></xsl:template>
+<xsl:template match="caution/title"></xsl:template>
+<xsl:template match="tip/title"></xsl:template>
+
+<xsl:template match="title" mode="admonition.title.mode">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h3 class="title">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h3>
+</xsl:template>
+
+<xsl:template match="title" mode="graphic.admonition.title.mode">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <b class="title">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </b>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/autoidx.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/autoidx.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/autoidx.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,296 @@
+<?xml version="1.0"?>
+<!DOCTYPE xsl:stylesheet [
+
+<!ENTITY lowercase "'abcdefghijklmnopqrstuvwxyz'">
+<!ENTITY uppercase "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'">
+
+<!ENTITY primary   'concat(primary/@sortas, primary[not(@sortas)])'>
+<!ENTITY secondary 'concat(secondary/@sortas, secondary[not(@sortas)])'>
+<!ENTITY tertiary  'concat(tertiary/@sortas, tertiary[not(@sortas)])'>
+
+<!ENTITY section   '(ancestor-or-self::set
+                     |ancestor-or-self::book
+                     |ancestor-or-self::part
+                     |ancestor-or-self::reference
+                     |ancestor-or-self::partintro
+                     |ancestor-or-self::chapter
+                     |ancestor-or-self::appendix
+                     |ancestor-or-self::preface
+                     |ancestor-or-self::section
+                     |ancestor-or-self::sect1
+                     |ancestor-or-self::sect2
+                     |ancestor-or-self::sect3
+                     |ancestor-or-self::sect4
+                     |ancestor-or-self::sect5
+                     |ancestor-or-self::refsect1
+                     |ancestor-or-self::refsect2
+                     |ancestor-or-self::refsect3
+                     |ancestor-or-self::simplesect
+                     |ancestor-or-self::bibliography
+                     |ancestor-or-self::glossary
+                     |ancestor-or-self::index)[last()]'>
+
+<!ENTITY section.id 'generate-id(&section;)'>
+<!ENTITY sep '" "'>
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:import href="docbook.xsl"/>
+
+<!-- ==================================================================== -->
+<!-- Jeni Tennison gets all the credit for what follows.
+     I think I understand it :-) Anyway, I've hacked it a bit, so the
+     bugs are mine. -->
+
+<xsl:key name="letter"
+         match="indexterm"
+         use="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+
+<xsl:key name="primary"
+         match="indexterm"
+         use="&primary;"/>
+
+<xsl:key name="secondary"
+         match="indexterm"
+         use="concat(&primary;, &sep;, &secondary;)"/>
+
+<xsl:key name="tertiary"
+         match="indexterm"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+
+<xsl:key name="primary-section"
+         match="indexterm[not(secondary) and not(see)]"
+         use="concat(&primary;, &sep;, &section.id;)"/>
+
+<xsl:key name="secondary-section"
+         match="indexterm[not(tertiary) and not(see)]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &section.id;)"/>
+
+<xsl:key name="tertiary-section"
+         match="indexterm[not(see)]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, &section.id;)"/>
+
+<xsl:key name="see-also"
+         match="indexterm[seealso]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso)"/>
+
+<xsl:key name="see"
+         match="indexterm[see]"
+         use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see)"/>
+
+<xsl:key name="sections" match="*[@id]" use="@id"/>
+
+<xsl:template name="generate-index">
+  <xsl:variable name="terms" select="//indexterm[count(.|key('letter',
+                                     translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;))[1]) = 1]"/>
+
+  <xsl:variable name="alphabetical"
+                select="$terms[contains(concat(&lowercase;, &uppercase;),
+                                        substring(&primary;, 1, 1))]"/>
+  <xsl:variable name="others" select="$terms[not(contains(concat(&lowercase;,
+                                                 &uppercase;),
+                                             substring(&primary;, 1, 1)))]"/>
+  <div class="index">
+    <xsl:if test="$others">
+      <div class="indexdiv">
+        <h3>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key" select="'index symbols'"/>
+          </xsl:call-template>
+        </h3>
+        <dl>
+          <xsl:apply-templates select="$others[count(.|key('primary',
+                                       &primary;)[1]) = 1]"
+                               mode="index-primary">
+            <xsl:sort select="&primary;"/>
+          </xsl:apply-templates>
+        </dl>
+      </div>
+    </xsl:if>
+    <xsl:apply-templates select="$alphabetical[count(.|key('letter',
+                                 translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;))[1]) = 1]"
+                         mode="index-div">
+      <xsl:sort select="&primary;"/>
+    </xsl:apply-templates>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div">
+  <xsl:variable name="key" select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/>
+  <div class="indexdiv">
+    <h3>
+      <xsl:value-of select="translate($key, &lowercase;, &uppercase;)"/>
+    </h3>
+    <dl>
+      <xsl:apply-templates select="key('letter', $key)[count(.|key('primary', &primary;)[1]) = 1]"
+                           mode="index-primary">
+        <xsl:sort select="&primary;"/>
+      </xsl:apply-templates>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-primary">
+  <xsl:variable name="key" select="&primary;"/>
+  <xsl:variable name="refs" select="key('primary', $key)"/>
+  <dt>
+    <xsl:value-of select="primary"/>
+    <xsl:for-each select="$refs[generate-id() = generate-id(key('primary-section', concat($key, &sep;, &section.id;))[1])]">
+      <xsl:apply-templates select="." mode="reference"/>
+    </xsl:for-each>
+  </dt>
+  <xsl:if test="$refs/secondary or $refs[not(secondary)]/*[self::see or self::seealso]">
+    <dd>
+      <dl>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &sep;, &sep;, see))[1])]"
+                             mode="index-see">
+          <xsl:sort select="see"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &sep;, &sep;, seealso))[1])]"
+                             mode="index-seealso">
+          <xsl:sort select="seealso"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, &sep;, &secondary;))[1]) = 1]" 
+                             mode="index-secondary">
+          <xsl:sort select="&secondary;"/>
+        </xsl:apply-templates>
+      </dl>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-secondary">
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;)"/>
+  <xsl:variable name="refs" select="key('secondary', $key)"/>
+  <dt>
+    <xsl:value-of select="secondary"/>
+    <xsl:for-each select="$refs[generate-id() = generate-id(key('secondary-section', concat($key, &sep;, &section.id;))[1])]">
+      <xsl:apply-templates select="." mode="reference"/>
+    </xsl:for-each>
+  </dt>
+  <xsl:if test="$refs/tertiary or $refs[not(tertiary)]/*[self::see or self::seealso]">
+    <dd>
+      <dl>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, see))[1])]"
+                             mode="index-see">
+          <xsl:sort select="see"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, seealso))[1])]"
+                             mode="index-seealso">
+          <xsl:sort select="seealso"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, &sep;, &tertiary;))[1]) = 1]" 
+                             mode="index-tertiary">
+          <xsl:sort select="&tertiary;"/>
+        </xsl:apply-templates>
+      </dl>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-tertiary">
+  <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+  <xsl:variable name="refs" select="key('tertiary', $key)"/>
+  <dt>
+    <xsl:value-of select="tertiary"/>
+    <xsl:for-each select="$refs[generate-id() = generate-id(key('tertiary-section', concat($key, &sep;, &section.id;))[1])]">
+      <xsl:apply-templates select="." mode="reference"/>
+    </xsl:for-each>
+  </dt>
+  <xsl:variable name="see" select="$refs/see | $refs/seealso"/>
+  <xsl:if test="$see">
+    <dd>
+      <dl>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see))[1])]"
+                             mode="index-see">
+          <xsl:sort select="see"/>
+        </xsl:apply-templates>
+        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso))[1])]"
+                             mode="index-seealso">
+          <xsl:sort select="seealso"/>
+        </xsl:apply-templates>
+      </dl>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="reference">
+  <xsl:text>, </xsl:text>
+  <xsl:choose>
+    <xsl:when test="@zone and string(@zone)">
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <a>
+        <xsl:variable name="title">
+          <xsl:apply-templates select="&section;" mode="title.markup"/>
+        </xsl:variable>
+
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="&section;"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:value-of select="$title"/> <!-- text only -->
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="reference">
+  <xsl:param name="zones"/>
+  <xsl:choose>
+    <xsl:when test="contains($zones, ' ')">
+      <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target[1]"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+      </a>
+      <xsl:text>, </xsl:text>
+      <xsl:call-template name="reference">
+        <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="zone" select="$zones"/>
+      <xsl:variable name="target" select="key('sections', $zone)"/>
+
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target[1]"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-see">
+   <dt><xsl:value-of select="see"/></dt>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-seealso">
+   <dt><xsl:value-of select="seealso"/></dt>
+</xsl:template>
+
+<xsl:template match="*" mode="index-title-content">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="&section;" mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/autotoc.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/autotoc.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/autotoc.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,566 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: autotoc.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:param name="autotoc.label.separator" select="' '"/>
+
+<xsl:template name="href.target">
+  <xsl:param name="object" select="."/>
+  <xsl:text>#</xsl:text>
+  <xsl:call-template name="object.id">
+    <xsl:with-param name="object" select="$object"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:variable name="toc.listitem.type">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">dt</xsl:when>
+    <xsl:otherwise>li</xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<!-- this is just hack because dl and ul aren't completely isomorphic -->
+<xsl:variable name="toc.dd.type">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">dd</xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
+<xsl:template name="set.toc">
+  <xsl:variable name="nodes" select="book|setindex"/>
+  <xsl:if test="$nodes">
+    <div class="toc">
+      <p>
+        <b>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key">TableofContents</xsl:with-param>
+          </xsl:call-template>
+        </b>
+      </p>
+      <xsl:element name="{$toc.list.type}">
+        <xsl:apply-templates select="$nodes" mode="toc"/>
+      </xsl:element>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="division.toc">
+  <xsl:if test="$generate.division.toc != 0">
+    <xsl:variable name="nodes" select="part|reference
+                                       |preface|chapter|appendix
+                                       |article
+                                       |bibliography|glossary|index
+                                       |refentry
+                                       |bridgehead"/>
+    <xsl:if test="$nodes">
+      <div class="toc">
+        <p>
+          <b>
+           <xsl:call-template name="gentext">
+             <xsl:with-param name="key">TableofContents</xsl:with-param>
+           </xsl:call-template>
+          </b>
+        </p>
+        <xsl:element name="{$toc.list.type}">
+          <xsl:apply-templates select="$nodes" mode="toc"/>
+        </xsl:element>
+      </div>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.toc">
+  <xsl:if test="$generate.component.toc != 0">
+    <xsl:variable name="nodes" select="section|sect1|refentry
+                                       |article|bibliography|glossary
+                                       |appendix|bridgehead[not(@renderas)]
+                                       |.//bridgehead[@renderas='sect1']"/>
+    <xsl:if test="$nodes">
+      <div class="toc">
+        <p>
+          <b>
+           <xsl:call-template name="gentext">
+             <xsl:with-param name="key">TableofContents</xsl:with-param>
+           </xsl:call-template>
+          </b>
+        </p>
+        <xsl:element name="{$toc.list.type}">
+          <xsl:apply-templates select="$nodes" mode="toc"/>
+        </xsl:element>
+      </div>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="section.toc">
+  <xsl:variable name="nodes"
+                select="section|sect1|sect2|sect3|sect4|sect5|refentry
+                        |bridgehead"/>
+  <xsl:if test="$nodes">
+    <div class="toc">
+      <p>
+        <b>
+          <xsl:call-template name="gentext">
+            <xsl:with-param name="key">TableofContents</xsl:with-param>
+          </xsl:call-template>
+        </b>
+      </p>
+      <xsl:element name="{$toc.list.type}">
+        <xsl:apply-templates select="$nodes" mode="toc"/>
+      </xsl:element>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book|setindex" mode="toc">
+  <xsl:variable name="nodes" select="part|reference
+                                     |preface|chapter|appendix
+                                     |article
+                                     |bibliography|glossary|index
+                                     |refentry
+                                     |bridgehead"/>
+
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates mode="toc" select="$nodes"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>0 and count($nodes)&gt;0">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>0 and count($nodes)&gt;0">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part|reference" mode="toc">
+  <xsl:variable name="nodes" select="appendix|chapter|article
+                                     |index|glossary|bibliography
+                                     |preface|reference|refentry
+                                     |bridgehead"/>
+
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="$nodes" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>0 and count($nodes) &gt; 0">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>0 and count($nodes) &gt; 0">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix|article" mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="section|sect1|bridgehead" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>0 and section|sect1">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>0 and section|sect1">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect1" mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="sect2|bridgehead" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>1 and sect2">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>1 and sect2">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect2" mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="sect3|bridgehead" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>2 and sect3">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>2 and sect3">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect3" mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="sect4|bridgehead" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>3 and sect4">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>3 and sect4">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect4" mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="sect5|bridgehead" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toc.section.depth>4 and sect5">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toc.section.depth>4 and sect5">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect5" mode="toc">
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </a>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="section" mode="toc">
+  <xsl:variable name="subtoc">
+    <xsl:element name="{$toc.list.type}">
+      <xsl:apply-templates select="section|bridgehead" mode="toc"/>
+    </xsl:element>
+  </xsl:variable>
+
+  <xsl:variable name="subtoc.list">
+    <xsl:choose>
+      <xsl:when test="$toc.dd.type = ''">
+        <xsl:copy-of select="$subtoc"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:element name="{$toc.dd.type}">
+          <xsl:copy-of select="$subtoc"/>
+        </xsl:element>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="toodeep">
+    <xsl:choose>
+      <!-- if the depth is less than 2, we're already deep enough -->
+      <xsl:when test="$toc.section.depth &lt; 2">yes</xsl:when>
+      <!-- if the current section has n-1 section ancestors -->
+      <!-- then we've already reached depth n -->
+      <xsl:when test="ancestor::section[position()=$toc.section.depth - 1]">
+        <xsl:text>yes</xsl:text>
+      </xsl:when>
+      <!-- otherwise, keep going -->
+      <xsl:otherwise>no</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:value-of select="$autotoc.label.separator"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </a>
+    <xsl:if test="$toc.listitem.type = 'li'
+                  and $toodeep='no' and section">
+      <xsl:copy-of select="$subtoc.list"/>
+    </xsl:if>
+  </xsl:element>
+  <xsl:if test="$toc.listitem.type != 'li'
+                and $toodeep='no' and section">
+    <xsl:copy-of select="$subtoc.list"/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bridgehead" mode="toc">
+  <xsl:if test="$bridgehead.in.toc != 0">
+    <xsl:element name="{$toc.listitem.type}">
+      <xsl:apply-templates select="." mode="label.markup"/>
+      <xsl:value-of select="$autotoc.label.separator"/>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target"/>
+        </xsl:attribute>
+        <xsl:apply-templates/>
+      </a>
+    </xsl:element>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary" mode="toc">
+  <xsl:element name="{$toc.listitem.type}">
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:apply-templates select="." mode="title.markup"/>
+    </a>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="index" mode="toc">
+  <!-- If the index tag is empty, don't point at it from the TOC -->
+  <xsl:if test="* or $generate.index">
+    <xsl:element name="{$toc.listitem.type}">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target"/>
+        </xsl:attribute>
+        <xsl:apply-templates select="." mode="title.markup"/>
+      </a>
+    </xsl:element>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refentry" mode="toc">
+  <xsl:variable name="refmeta" select=".//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select=".//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="title"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="title"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="{$toc.listitem.type}">
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:copy-of select="$title"/>
+    </a>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="title" mode="toc">
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select=".."/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/biblio.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/biblio.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/biblio.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,932 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: biblio.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliography">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="bibliography.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliography/bibliographyinfo"></xsl:template>
+<xsl:template match="bibliography/title"></xsl:template>
+<xsl:template match="bibliography/subtitle"></xsl:template>
+<xsl:template match="bibliography/titleabbrev"></xsl:template>
+
+<xsl:template match="bibliography/title" mode="component.title.mode">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h2 class="title">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h2>
+</xsl:template>
+
+<xsl:template match="bibliography/subtitle" mode="component.title.mode">
+  <h3>
+    <i><xsl:apply-templates/></i>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliodiv">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliodiv/title">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h3 class="{name(.)}">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="biblioentry">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <div id="{$id}" class="{name(.)}">
+    <a name="{$id}"/>
+    <p>
+      <xsl:apply-templates mode="bibliography.mode"/>
+    </p>
+  </div>
+</xsl:template>
+
+<xsl:template match="bibliomixed">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <div id="{$id}" class="{name(.)}">
+    <a name="{$id}"/>
+    <p>
+      <xsl:choose>
+	<xsl:when test="local-name(*[1]) = 'abbrev'">
+	  <xsl:apply-templates select="*[position()>1]|text()"
+                               mode="bibliomixed.mode"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:apply-templates mode="bibliomixed.mode"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </p>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliography.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:text>[</xsl:text>
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:text>] </xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="address" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artheader|articleinfo" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:call-template name="person.name"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:call-template name="person.name.list"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="biblioset/title|biblioset/citetitle" 
+              mode="bibliography.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article'">
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">ldquo</xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates/>
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">rdquo</xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <I><xsl:apply-templates/></I>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:value-of select="$biblioentry.item.separator"/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bookbiblio" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <i><xsl:apply-templates mode="bibliography.mode"/></i>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="collabname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confdates" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="copyright" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Copyright'"/>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">copyright</xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="year" mode="bibliography.mode"/>
+    <xsl:if test="holder">
+      <xsl:call-template name="gentext.space"/>
+      <xsl:apply-templates select="holder" mode="bibliography.mode"/>
+    </xsl:if>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="year" mode="bibliography.mode">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="bibliography.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="corpauthor" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:call-template name="person.name"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliography.mode">
+  <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="seriesinfo" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <I><xsl:apply-templates mode="bibliography.mode"/></I>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliography.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliography.mode"/>
+    <xsl:value-of select="$biblioentry.item.separator"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliomixed.mode">
+  <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="address" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bibliomset" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomset/title|bibliomset/citetitle" 
+              mode="bibliomixed.mode">
+  <xsl:variable name="relation" select="../@relation"/>
+  <xsl:choose>
+    <xsl:when test="$relation='article'">
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">ldquo</xsl:with-param>
+      </xsl:call-template>
+      <xsl:apply-templates/>
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat">rdquo</xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <I><xsl:apply-templates/></I>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <i><xsl:apply-templates mode="bibliomixed.mode"/></i>
+  </span>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="copyright" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliomixed.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="bibliomixed.mode"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/block.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/block.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/block.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,357 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: block.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="block.object">
+  <div class="{name(.)}">
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </a>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="para">
+  <p>
+    <xsl:if test="position() = 1 and parent::listitem">
+      <a>
+        <xsl:attribute name="name">
+          <xsl:call-template name="object.id">
+            <xsl:with-param name="object" select="parent::listitem"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </a>
+    </xsl:if>
+
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="simpara">
+  <p>
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="formalpara">
+  <p>
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="formalpara/title">
+  <b><xsl:apply-templates/></b>
+  <xsl:call-template name="gentext.space"/>
+</xsl:template>
+
+<xsl:template match="formalpara/para">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="blockquote">
+  <xsl:if test="@id">
+    <a name="{@id}"/>
+  </xsl:if>
+  <xsl:choose>
+    <xsl:when test="attribution">
+      <table border="0" width="100%"
+	     cellspacing="0" cellpadding="0" class="blockquote"
+             summary="Block quote">
+	<tr>
+	  <td width="10%" valign="top">&#160;</td>
+	  <td width="80%" valign="top">
+	    <xsl:apply-templates
+	      select="child::*[local-name(.)!='attribution']"/>
+	  </td>
+	  <td width="10%" valign="top">&#160;</td>
+	</tr>
+	<tr>
+	  <td colspan="2" align="right" valign="top">
+	    <xsl:text>--</xsl:text>
+	    <xsl:apply-templates select="attribution"/>
+	  </td>
+	  <td width="10%" valign="top">&#160;</td>
+	</tr>
+      </table>
+    </xsl:when>
+    <xsl:otherwise>
+      <blockquote class="blockquote">
+	<xsl:apply-templates/>
+      </blockquote>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="epigraph">
+  <div class="{name(.)}">
+    <xsl:apply-templates select="para"/>
+    <span>--<xsl:apply-templates select="attribution"/></span>
+  </div>
+</xsl:template>
+
+<xsl:template match="attribution">
+  <span class="{name(.)}"><xsl:apply-templates/></span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="sidebar">
+  <div class="{name(.)}">
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </a>
+  
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="sidebar/title">
+  <p class="title">
+    <b><xsl:apply-templates/></b>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="abstract">
+  <div class="{name(.)}">
+    <xsl:call-template name="formal.object.heading">
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="." mode="title.markup">
+          <xsl:with-param name="allow-anchors" select="'1'"/>
+        </xsl:apply-templates>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="abstract/title">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="msgset">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="simplemsgentry">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msg">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgmain">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgmain/title">
+  <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgsub">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgsub/title">
+  <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgrel">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgrel/title">
+  <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgtext">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msginfo">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msglevel">
+  <p>
+    <b>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'msgset'"/>
+        <xsl:with-param name="name" select="'MsgLevel'"/>
+      </xsl:call-template>
+    </b>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="msgorig">
+  <p>
+    <b>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'msgset'"/>
+        <xsl:with-param name="name" select="'MsgOrig'"/>
+      </xsl:call-template>
+    </b>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="msgaud">
+  <p>
+    <b>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'msgset'"/>
+        <xsl:with-param name="name" select="'MsgAud'"/>
+      </xsl:call-template>
+    </b>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="msgexplan">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgexplan/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="revhistory">
+  <div class="{name(.)}">
+    <table border="0" width="100%" summary="Revision history">
+      <tr>
+        <th align="left" valign="top" colspan="3">
+          <b>
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'RevHistory'"/>
+            </xsl:call-template>
+          </b>
+        </th>
+      </tr>
+      <xsl:apply-templates/>
+    </table>
+  </div>
+</xsl:template>
+
+<xsl:template match="revhistory/revision">
+  <xsl:variable name="revnumber" select=".//revnumber"/>
+  <xsl:variable name="revdate"   select=".//date"/>
+  <xsl:variable name="revauthor" select=".//authorinitials"/>
+  <xsl:variable name="revremark" select=".//revremark|../revdescription"/>
+  <tr>
+    <td align="left">
+      <xsl:if test="$revnumber">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'Revision'"/>
+        </xsl:call-template>
+        <xsl:call-template name="gentext.space"/>
+        <xsl:apply-templates select="$revnumber"/>
+      </xsl:if>
+    </td>
+    <td align="left">
+      <xsl:apply-templates select="$revdate"/>
+    </td>
+    <xsl:choose>
+      <xsl:when test="count($revauthor)=0">
+        <td align="left">
+          <xsl:call-template name="dingbat">
+            <xsl:with-param name="dingbat">nbsp</xsl:with-param>
+          </xsl:call-template>
+        </td>
+      </xsl:when>
+      <xsl:otherwise>
+        <td align="left">
+          <xsl:apply-templates select="$revauthor"/>
+        </td>
+      </xsl:otherwise>
+    </xsl:choose>
+  </tr>
+  <xsl:if test="$revremark">
+    <tr>
+      <td align="left" colspan="3">
+        <xsl:apply-templates select="$revremark"/>
+      </td>
+    </tr>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/date">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials">
+  <xsl:text>, </xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials[1]" priority="2">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revremark">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="ackno">
+  <p class="{name(.)}">
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="highlights">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/callout.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/callout.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/callout.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,150 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim"
+                xmlns:xverb="com.nwalsh.xalan.Verbatim"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="sverb xverb lxslt"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: callout.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xverb"
+                 functions="insertCallouts"/>
+
+<xsl:template match="programlistingco|screenco">
+  <xsl:variable name="verbatim" select="programlisting|screen"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="$use.extensions != '0'
+                    and $callouts.extension != '0'">
+      <xsl:variable name="rtf">
+        <xsl:apply-templates select="$verbatim">
+          <xsl:with-param name="suppress-numbers" select="'1'"/>
+        </xsl:apply-templates>
+      </xsl:variable>
+
+      <xsl:variable name="rtf-with-callouts">
+        <xsl:choose>
+          <xsl:when test="contains($vendor, 'SAXON ')">
+            <xsl:copy-of select="sverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+            <xsl:copy-of select="xverb:insertCallouts(areaspec,$rtf)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message terminate="yes">
+              <xsl:text>Don't know how to do callouts with </xsl:text>
+              <xsl:value-of select="$vendor"/>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$verbatim/@linenumbering = 'numbered'
+                        and $linenumbering.extension != '0'">
+          <div class="{name(.)}">
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf-with-callouts"/>
+              <xsl:with-param name="pi.context"
+                              select="programlisting|screen"/>
+            </xsl:call-template>
+            <xsl:apply-templates select="calloutlist"/>
+          </div>
+        </xsl:when>
+        <xsl:otherwise>
+          <div class="{name(.)}">
+            <xsl:copy-of select="$rtf-with-callouts"/>
+            <xsl:apply-templates select="calloutlist"/>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <div class="{name(.)}">
+        <xsl:apply-templates/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="areaspec|areaset|area">
+</xsl:template>
+
+<xsl:template match="areaset" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="area" mode="conumber">
+  <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="co">
+  <a name="{@id}"/>
+  <xsl:apply-templates select="." mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="co" mode="callout-bug">
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:number count="co" format="1"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="callout-bug">
+  <xsl:param name="conum" select='1'/>
+
+  <xsl:choose>
+    <xsl:when test="$callout.graphics != 0
+                    and $conum &lt;= $callout.graphics.number.limit">
+      <img src="{$callout.graphics.path}{$conum}{$callout.graphics.extension}"
+           alt="{$conum}" border="0"/>
+    </xsl:when>
+    <xsl:when test="$callout.unicode != 0
+                    and $conum &lt;= $callout.unicode.number.limit">
+      <xsl:choose>
+        <xsl:when test="$callout.unicode.start.character = 10102">
+          <xsl:choose>
+            <xsl:when test="$conum = 1">&#10102;</xsl:when>
+            <xsl:when test="$conum = 2">&#10103;</xsl:when>
+            <xsl:when test="$conum = 3">&#10104;</xsl:when>
+            <xsl:when test="$conum = 4">&#10105;</xsl:when>
+            <xsl:when test="$conum = 5">&#10106;</xsl:when>
+            <xsl:when test="$conum = 6">&#10107;</xsl:when>
+            <xsl:when test="$conum = 7">&#10108;</xsl:when>
+            <xsl:when test="$conum = 8">&#10109;</xsl:when>
+            <xsl:when test="$conum = 9">&#10110;</xsl:when>
+            <xsl:when test="$conum = 10">&#10111;</xsl:when>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message>
+            <xsl:text>Don't know how to generate Unicode callouts </xsl:text>
+            <xsl:text>when $callout.unicode.start.character is </xsl:text>
+            <xsl:value-of select="$callout.unicode.start.character"/>
+          </xsl:message>
+          <xsl:text>(</xsl:text>
+          <xsl:value-of select="$conum"/>
+          <xsl:text>)</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$conum"/>
+      <xsl:text>)</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/changebars.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/changebars.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/changebars.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:import href="docbook.xsl"/>
+
+<xsl:param name="show.revisionflag" select="'1'"/>
+
+<xsl:template name="user.head.content">
+<style type="text/css">
+<xsl:text>
+div.added    { background-color: yellow; }
+div.deleted  { text-decoration: line-through;
+               background-color: #FF7F7F; }
+div.changed  { background-color: lime; }
+div.off      {  }
+
+span.added   { background-color: yellow; }
+span.deleted { text-decoration: line-through;
+               background-color: #FF7F7F; }
+span.changed { background-color: lime; }
+span.off     {  }
+</xsl:text>
+</style>
+</xsl:template>
+
+<xsl:template match="*[@revisionflag]">
+  <xsl:choose>
+    <xsl:when test="local-name(.) = 'para'
+                    or local-name(.) = 'section'
+                    or local-name(.) = 'sect1'
+                    or local-name(.) = 'sect2'
+                    or local-name(.) = 'sect3'
+                    or local-name(.) = 'sect4'
+                    or local-name(.) = 'sect5'
+                    or local-name(.) = 'chapter'
+                    or local-name(.) = 'preface'
+                    or local-name(.) = 'itemizedlist'
+                    or local-name(.) = 'varlistentry'
+                    or local-name(.) = 'glossary'
+                    or local-name(.) = 'bibliography'
+                    or local-name(.) = 'index'
+                    or local-name(.) = 'appendix'">
+      <div class='{@revisionflag}'>
+	<xsl:apply-imports/>
+      </div>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'phrase'
+                    or local-name(.) = 'ulink'
+                    or local-name(.) = 'link'
+                    or local-name(.) = 'filename'
+                    or local-name(.) = 'literal'
+                    or local-name(.) = 'member'
+                    or local-name(.) = 'glossterm'
+                    or local-name(.) = 'quote'
+                    or local-name(.) = 'emphasis'
+                    or local-name(.) = 'command'
+                    or local-name(.) = 'xref'">
+      <span class='{@revisionflag}'>
+	<xsl:apply-imports/>
+      </span>
+    </xsl:when>
+    <xsl:when test="local-name(.) = 'listitem'
+                    or local-name(.) = 'title'">
+      <!-- nop; these are handled directly in the stylesheet -->
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Revisionflag on unexpected element: </xsl:text>
+	<xsl:value-of select="local-name(.)"/>
+	<xsl:text> (Assuming block)</xsl:text>
+      </xsl:message>
+      <div class='{@revisionflag}'>
+	<xsl:apply-imports/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunk-common.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunk-common.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunk-common.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1200 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.0"
+                exclude-result-prefixes="doc">
+
+<xsl:output method="html"
+            encoding="ISO-8859-1"
+            indent="no"/>
+
+<xsl:param name="html.ext" select="'.html'"/>
+<doc:param name="html.ext" xmlns="">
+<refpurpose>Extension for chunked files</refpurpose>
+<refdescription>
+<para>The extension identified by <parameter>html.ext</parameter> will
+be used as the filename extension for chunks created by this stylesheet.
+</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="root.filename" select="'index'"/>
+<doc:param name="root.filename" xmlns="">
+<refpurpose>Filename for the root chunk</refpurpose>
+<refdescription>
+<para>The <parameter>root.filename</parameter> is the base filename for
+the chunk created for the root of each document processed.
+</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="base.dir" select="''"/>
+<doc:param name="base.dir" xmlns="">
+<refpurpose>Output directory for chunks</refpurpose>
+<refdescription>
+<para>If specified, the <literal>base.dir</literal> identifies
+the output directory for chunks. (If not specified, the output directory
+is system dependent.)</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="chunk.sections" select="'1'"/>
+<doc:param name="chunk.sections" xmlns="">
+<refpurpose>Create chunks for top-level sections in components?</refpurpose>
+<refdescription>
+<para>If non-zero, chunks will be created for top-level
+<sgmltag>sect1</sgmltag> and <sgmltag>section</sgmltag> elements in
+each component.
+</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="chunk.first.sections" select="'0'"/>
+<doc:param name="chunk.first.sections" xmlns="">
+<refpurpose>Create a chunk for the first top-level section in each component?</refpurpose>
+<refdescription>
+<para>If non-zero, a chunk will be created for the first top-level
+<sgmltag>sect1</sgmltag> or <sgmltag>section</sgmltag> elements in
+each component. Otherwise, that section will be part of the chunk for
+its parent.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<!-- What's a chunk?
+
+     appendix
+     article
+     bibliography  in article or book
+     book
+     chapter
+     colophon
+     glossary      in article or book
+     index         in article or book
+     part
+     preface
+     refentry
+     reference
+     sect1         if position()>1
+     section       if position()>1 && parent != section
+     set
+     setindex
+                                                                          -->
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+  <!-- returns 1 if $node is a chunk -->
+
+<!--
+  <xsl:message>
+    <xsl:text>chunk: </xsl:text>
+    <xsl:value-of select="name($node)"/>
+    <xsl:text>(</xsl:text>
+    <xsl:value-of select="$node/@id"/>
+    <xsl:text>)</xsl:text>
+    <xsl:text> cs: </xsl:text>
+    <xsl:value-of select="$chunk.sections"/>
+    <xsl:text> cfs: </xsl:text>
+    <xsl:value-of select="$chunk.first.sections"/>
+    <xsl:text> ps: </xsl:text>
+    <xsl:value-of select="count($node/parent::section)"/>
+    <xsl:text> prs: </xsl:text>
+    <xsl:value-of select="count($node/preceding-sibling::section)"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="$chunk.sections != 0
+                    and name($node)='sect1'
+                    and ($chunk.first.sections != 0
+                         or count($node/preceding-sibling::sect1) > 0)">
+      <xsl:text>1</xsl:text>
+    </xsl:when>
+    <xsl:when test="$chunk.sections != 0
+                    and name($node)='section'
+                    and ($chunk.first.sections != 0
+                         or (count($node/parent::section) = 0
+                             and count($node/preceding-sibling::section)))>0">
+      <xsl:text>1</xsl:text>
+    </xsl:when>
+    <xsl:when test="name($node)='preface'">1</xsl:when>
+    <xsl:when test="name($node)='chapter'">1</xsl:when>
+    <xsl:when test="name($node)='appendix'">1</xsl:when>
+    <xsl:when test="name($node)='article'">1</xsl:when>
+    <xsl:when test="name($node)='part'">1</xsl:when>
+    <xsl:when test="name($node)='reference'">1</xsl:when>
+    <xsl:when test="name($node)='refentry'">1</xsl:when>
+    <xsl:when test="name($node)='index'
+                    and (name($node/parent::*) = 'article'
+                         or name($node/parent::*) = 'book')">1</xsl:when>
+    <xsl:when test="name($node)='bibliography'
+                    and (name($node/parent::*) = 'article'
+                         or name($node/parent::*) = 'book')">1</xsl:when>
+    <xsl:when test="name($node)='glossary'
+                    and (name($node/parent::*) = 'article'
+                         or name($node/parent::*) = 'book')">1</xsl:when>
+    <xsl:when test="name($node)='colophon'">1</xsl:when>
+    <xsl:when test="name($node)='book'">1</xsl:when>
+    <xsl:when test="name($node)='set'">1</xsl:when>
+    <xsl:when test="name($node)='setindex'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="chunk-filename">
+  <xsl:param name="recursive" select="false()"/>
+
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="dbhtml-filename">
+    <xsl:call-template name="dbhtml-filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$dbhtml-filename != ''">
+        <xsl:value-of select="$dbhtml-filename"/>
+      </xsl:when>
+      <!-- if there's no dbhtml filename, and if we're to use IDs as -->
+      <!-- filenames, *and* this isn't the root node, then use the ID -->
+      <!-- to generate the filename. -->
+      <xsl:when test="@id and $use.id.as.filename != 0
+                      and . != /*">
+        <xsl:value-of select="@id"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="dir">
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$ischunk='0'">
+      <!-- if called on something that isn't a chunk, walk up... -->
+      <xsl:choose>
+        <xsl:when test="count(parent::*)>0">
+          <xsl:apply-templates mode="chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="$recursive"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <!-- unless there is no up, in which case return "" -->
+        <xsl:otherwise></xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="not($recursive) and $filename != ''">
+      <!-- if this chunk has an explicit name, use it -->
+      <xsl:if test="$dir != ''">
+        <xsl:value-of select="$dir"/>
+        <xsl:text>/</xsl:text>
+      </xsl:if>
+      <xsl:value-of select="$filename"/>
+    </xsl:when>
+
+    <xsl:when test="name(.)='set'">
+      <xsl:value-of select="$root.filename"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='book'">
+      <xsl:choose>
+        <xsl:when test="count(parent::*)>0">
+          <xsl:text>bk</xsl:text>
+          <xsl:number level="any" format="01"/>
+        </xsl:when>
+        <xsl:otherwise>
+	  <xsl:value-of select="$root.filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='article'">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:choose>
+        <xsl:when test="count(parent::*)>0">
+          <!-- if we aren't the root, name them numerically ... -->
+          <xsl:text>ar</xsl:text>
+          <xsl:number level="any" format="01" from="book"/>
+        </xsl:when>
+        <xsl:otherwise>
+	  <xsl:value-of select="$root.filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='preface'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>pr</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='chapter'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>ch</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='appendix'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>ap</xsl:text>
+      <xsl:number level="any" format="a" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='part'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>pt</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='reference'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>rn</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='refentry'">
+      <xsl:if test="parent::reference">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>re</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='colophon'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>co</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='sect1' or name(.)='section'">
+      <xsl:apply-templates mode="chunk-filename" select="parent::*">
+        <xsl:with-param name="recursive" select="true()"/>
+      </xsl:apply-templates>
+      <xsl:text>s</xsl:text>
+      <xsl:number level="any" format="01" from="preface|chapter|appendix"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='bibliography'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>bi</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='glossary'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>go</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='index'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>ix</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='setindex'">
+      <xsl:text>si</xsl:text>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:text>chunk-filename-error-</xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="href.target">
+  <xsl:param name="object" select="."/>
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:apply-templates mode="chunk-filename" select="$object"/>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="html.head">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <head>
+    <xsl:call-template name="head.content"/>
+    <xsl:call-template name="user.head.content"/>
+
+    <xsl:if test="$home">
+      <link rel="home">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$home"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$home"
+                               mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$up">
+      <link rel="up">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$up"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$up" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$prev">
+      <link rel="previous">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$prev"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$prev" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$next">
+      <link rel="next">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$next"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$next" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+  </head>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="header.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:if test="$suppress.navigation = '0'">
+    <div class="navheader">
+      <table width="100%" summary="Navigation header">
+        <tr>
+          <th colspan="3" align="center">
+            <xsl:apply-templates select="." mode="object.title.markup"/>
+          </th>
+        </tr>
+        <tr>
+          <td width="20%" align="left">
+            <xsl:if test="count($prev)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$prev"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key">nav-prev</xsl:with-param>
+                </xsl:call-template>
+              </a>
+            </xsl:if>
+            <xsl:text>&#160;</xsl:text>
+          </td>
+          <th width="60%" align="center">
+            <xsl:choose>
+              <xsl:when test="count($up) > 0 and $up != $home">
+                <xsl:apply-templates select="$up" mode="object.title.markup"/>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </th>
+          <td width="20%" align="right">
+            <xsl:text>&#160;</xsl:text>
+            <xsl:if test="count($next)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$next"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key">nav-next</xsl:with-param>
+                </xsl:call-template>
+              </a>
+            </xsl:if>
+          </td>
+        </tr>
+      </table>
+      <hr/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="footer.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:if test="$suppress.navigation = '0'">
+    <div class="navfooter">
+      <hr/>
+      <table width="100%" summary="Navigation footer">
+        <tr>
+          <td width="40%" align="left">
+            <xsl:if test="count($prev)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$prev"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key">nav-prev</xsl:with-param>
+                </xsl:call-template>
+              </a>
+            </xsl:if>
+            <xsl:text>&#160;</xsl:text>
+          </td>
+          <td width="20%" align="center">
+            <xsl:choose>
+              <xsl:when test="$home != .">
+                <a>
+                  <xsl:attribute name="href">
+                    <xsl:call-template name="href.target">
+                      <xsl:with-param name="object" select="$home"/>
+                    </xsl:call-template>
+                  </xsl:attribute>
+                  <xsl:call-template name="gentext">
+                    <xsl:with-param name="key">nav-home</xsl:with-param>
+                  </xsl:call-template>
+                </a>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </td>
+          <td width="40%" align="right">
+            <xsl:text>&#160;</xsl:text>
+            <xsl:if test="count($next)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$next"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key">nav-next</xsl:with-param>
+                </xsl:call-template>
+              </a>
+            </xsl:if>
+          </td>
+        </tr>
+
+        <tr>
+          <td width="40%" align="left">
+            <xsl:apply-templates select="$prev" mode="object.title.markup"/>
+            <xsl:text>&#160;</xsl:text>
+          </td>
+          <td width="20%" align="center">
+            <xsl:choose>
+              <xsl:when test="count($up)>0">
+                <a>
+                  <xsl:attribute name="href">
+                    <xsl:call-template name="href.target">
+                      <xsl:with-param name="object" select="$up"/>
+                    </xsl:call-template>
+                  </xsl:attribute>
+                  <xsl:call-template name="gentext">
+                    <xsl:with-param name="key">nav-up</xsl:with-param>
+                  </xsl:call-template>
+                </a>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </td>
+          <td width="40%" align="right">
+            <xsl:text>&#160;</xsl:text>
+            <xsl:apply-templates select="$next" mode="object.title.markup"/>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+  <xsl:choose>
+    <xsl:when test="$chunk.sections = 0">
+      <xsl:call-template name="chunk-no-sections"/>
+    </xsl:when>
+    <xsl:when test="$chunk.first.sections = 0">
+      <xsl:call-template name="chunk-first-section-with-parent"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="chunk-all-top-level-sections"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process-chunk">
+  <xsl:param name="prev" select="."/>
+  <xsl:param name="next" select="."/>
+
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunkfn">
+    <xsl:if test="$ischunk='1'">
+      <xsl:apply-templates mode="chunk-filename" select="."/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:message>
+      <xsl:text>Error </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:text> is not a chunk!</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$base.dir"/>
+      <xsl:with-param name="base.name" select="$chunkfn"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="chunk-element-content">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-first-section-with-parent">
+  <xsl:variable name="prev"
+    select="(preceding::book[1]
+             |preceding::preface[1]
+             |preceding::chapter[1]
+             |preceding::appendix[1]
+             |preceding::part[1]
+             |preceding::reference[1]
+             |preceding::refentry[1]
+             |preceding::colophon[1]
+             |preceding::sect1[name(preceding-sibling::*[1]) = 'sect1'][1]
+             |preceding::section[name(preceding-sibling::*[1]) = 'section'
+                                 and name(parent::*) != 'section'][1]
+             |preceding::article[1]
+             |preceding::bibliography[1]
+             |preceding::glossary[1]
+             |preceding::index[1]
+             |preceding::setindex[1]
+             |ancestor::set
+             |ancestor::book[1]
+             |ancestor::preface[1]
+             |ancestor::chapter[1]
+             |ancestor::appendix[1]
+             |ancestor::part[1]
+             |ancestor::reference[1]
+             |ancestor::article[1])[last()]"/>
+
+  <xsl:variable name="next"
+    select="(following::book[1]
+             |following::preface[1]
+             |following::chapter[1]
+             |following::appendix[1]
+             |following::part[1]
+             |following::reference[1]
+             |following::refentry[1]
+             |following::colophon[1]
+             |following::sect1[1]
+             |following::section[name(parent::*) != 'section'][1]
+             |following::bibliography[1]
+             |following::glossary[1]
+             |following::index[1]
+             |following::article[1]
+             |following::setindex[1]
+             |descendant::book[1]
+             |descendant::preface[1]
+             |descendant::chapter[1]
+             |descendant::appendix[1]
+             |descendant::article[1]
+             |descendant::bibliography[1]
+             |descendant::glossary[1]
+             |descendant::index[1]
+             |descendant::colophon[1]
+             |descendant::setindex[1]
+             |descendant::part[1]
+             |descendant::reference[1]
+             |descendant::refentry[1]
+             |descendant::sect1[2]
+             |descendant::section[name(parent::*) != 'section'][2])[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-all-top-level-sections">
+  <xsl:variable name="prev"
+    select="(preceding::book[1]
+             |preceding::preface[1]
+             |preceding::chapter[1]
+             |preceding::appendix[1]
+             |preceding::part[1]
+             |preceding::reference[1]
+             |preceding::refentry[1]
+             |preceding::colophon[1]
+             |preceding::sect1[1]
+             |preceding::section[name(parent::*) != 'section'][1]
+             |preceding::article[1]
+             |preceding::bibliography[1]
+             |preceding::glossary[1]
+             |preceding::index[1]
+             |preceding::setindex[1]
+             |ancestor::set
+             |ancestor::book[1]
+             |ancestor::preface[1]
+             |ancestor::chapter[1]
+             |ancestor::appendix[1]
+             |ancestor::part[1]
+             |ancestor::reference[1]
+             |ancestor::article[1])[last()]"/>
+
+  <xsl:variable name="next"
+    select="(following::book[1]
+             |following::preface[1]
+             |following::chapter[1]
+             |following::appendix[1]
+             |following::part[1]
+             |following::reference[1]
+             |following::refentry[1]
+             |following::colophon[1]
+             |following::sect1[1]
+             |following::section[name(parent::*) != 'section'][1]
+             |following::bibliography[1]
+             |following::glossary[1]
+             |following::index[1]
+             |following::article[1]
+             |following::setindex[1]
+             |descendant::book[1]
+             |descendant::preface[1]
+             |descendant::chapter[1]
+             |descendant::appendix[1]
+             |descendant::article[1]
+             |descendant::bibliography[1]
+             |descendant::glossary[1]
+             |descendant::index[1]
+             |descendant::colophon[1]
+             |descendant::setindex[1]
+             |descendant::part[1]
+             |descendant::reference[1]
+             |descendant::refentry[1]
+             |descendant::sect1[1]
+             |descendant::section[name(parent::*) != 'section'][1])[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-no-sections">
+  <xsl:variable name="prev"
+    select="(preceding::book[1]
+             |preceding::preface[1]
+             |preceding::chapter[1]
+             |preceding::appendix[1]
+             |preceding::part[1]
+             |preceding::reference[1]
+             |preceding::refentry[1]
+             |preceding::colophon[1]
+             |preceding::article[1]
+             |preceding::bibliography[1]
+             |preceding::glossary[1]
+             |preceding::index[1]
+             |preceding::setindex[1]
+             |ancestor::set
+             |ancestor::book[1]
+             |ancestor::preface[1]
+             |ancestor::chapter[1]
+             |ancestor::appendix[1]
+             |ancestor::part[1]
+             |ancestor::reference[1]
+             |ancestor::article[1])[last()]"/>
+
+  <xsl:variable name="next"
+    select="(following::book[1]
+             |following::preface[1]
+             |following::chapter[1]
+             |following::appendix[1]
+             |following::part[1]
+             |following::reference[1]
+             |following::refentry[1]
+             |following::colophon[1]
+             |following::bibliography[1]
+             |following::glossary[1]
+             |following::index[1]
+             |following::article[1]
+             |following::setindex[1]
+             |descendant::book[1]
+             |descendant::preface[1]
+             |descendant::chapter[1]
+             |descendant::appendix[1]
+             |descendant::article[1]
+             |descendant::bibliography[1]
+             |descendant::glossary[1]
+             |descendant::index[1]
+             |descendant::colophon[1]
+             |descendant::setindex[1]
+             |descendant::part[1]
+             |descendant::reference[1]
+             |descendant::refentry[1])[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk-element-content">
+  <xsl:param name="prev"></xsl:param>
+  <xsl:param name="next"></xsl:param>
+
+  <html>
+    <xsl:call-template name="html.head">
+      <xsl:with-param name="prev" select="$prev"/>
+      <xsl:with-param name="next" select="$next"/>
+    </xsl:call-template>
+
+    <body xsl:use-attribute-sets="body.attrs">
+      <xsl:call-template name="user.header.navigation"/>
+
+      <xsl:call-template name="header.navigation">
+	<xsl:with-param name="prev" select="$prev"/>
+	<xsl:with-param name="next" select="$next"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.header.content"/>
+
+      <xsl:apply-imports/>
+
+      <xsl:call-template name="user.footer.content"/>
+
+      <xsl:call-template name="footer.navigation">
+	<xsl:with-param name="prev" select="$prev"/>
+	<xsl:with-param name="next" select="$next"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.footer.navigation"/>
+    </body>
+  </html>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+  <xsl:choose>
+    <xsl:when test="$rootid != ''">
+      <xsl:choose>
+        <xsl:when test="count(id($rootid)) = 0">
+          <xsl:message terminate="yes">
+            <xsl:text>ID '</xsl:text>
+            <xsl:value-of select="$rootid"/>
+            <xsl:text>' not found in document.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="id($rootid)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="/" mode="process.root"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="set|book|part|preface|chapter|appendix
+                     |article
+                     |reference|refentry
+                     |book/glossary|article/glossary
+                     |book/bibliography|article/bibliography
+                     |colophon">
+  <xsl:call-template name="process-chunk-element"/>
+</xsl:template>
+
+<xsl:template match="sect1|section[local-name(parent::*) != 'section']">
+<!--
+  <xsl:message>
+    <xsl:text>cs: </xsl:text>
+    <xsl:value-of select="$chunk.sections"/>
+    <xsl:text> cfs: </xsl:text>
+    <xsl:value-of select="$chunk.first.sections"/>
+    <xsl:text> pos: </xsl:text>
+    <xsl:value-of select="position()"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="$chunk.sections = 0">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:when test="$chunk.first.sections = 0">
+      <xsl:choose>
+        <xsl:when test="count(preceding-sibling::section) > 0
+                        or count(preceding-sibling::sect1) > 0">
+          <xsl:call-template name="process-chunk-element"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-imports/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex
+                     |book/index
+                     |article/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)>0 or $generate.index != '0'">
+    <xsl:call-template name="process-chunk-element"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="in.other.chunk">
+  <xsl:param name="chunk" select="."/>
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:text>in.other.chunk: </xsl:text>
+    <xsl:value-of select="name($chunk)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="name($node)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$chunk = $node"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$is.chunk"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="$chunk = $node">0</xsl:when>
+    <xsl:when test="$is.chunk = 1">1</xsl:when>
+    <xsl:when test="count($node) = 0">0</xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="in.other.chunk">
+        <xsl:with-param name="chunk" select="$chunk"/>
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="count.footnotes.in.this.chunk">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="footnotes" select="$node//footnote"/>
+  <xsl:param name="count" select="0"/>
+
+<!--
+  <xsl:message>
+    <xsl:text>count.footnotes.in.this.chunk: </xsl:text>
+    <xsl:value-of select="name($node)"/>
+  </xsl:message>
+-->
+
+  <xsl:variable name="in.other.chunk">
+    <xsl:call-template name="in.other.chunk">
+      <xsl:with-param name="chunk" select="$node"/>
+      <xsl:with-param name="node" select="$footnotes[1]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($footnotes) = 0">
+      <xsl:value-of select="$count"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$in.other.chunk != 0">
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$footnotes[1]/ancestor::table
+                        |$footnotes[1]/ancestor::informaltable">
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count + 1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes.in.this.chunk">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="footnotes" select="$node//footnote"/>
+
+<!--
+  <xsl:message>process.footnotes.in.this.chunk</xsl:message>
+-->
+
+  <xsl:variable name="in.other.chunk">
+    <xsl:call-template name="in.other.chunk">
+      <xsl:with-param name="chunk" select="$node"/>
+      <xsl:with-param name="node" select="$footnotes[1]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($footnotes) = 0">
+      <!-- nop -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$in.other.chunk != 0">
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$footnotes[1]/ancestor::table
+                        |$footnotes[1]/ancestor::informaltable">
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$footnotes[1]"
+                               mode="process.footnote.mode"/>
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes">
+  <xsl:variable name="footnotes" select=".//footnote"/>
+  <xsl:variable name="fcount">
+    <xsl:call-template name="count.footnotes.in.this.chunk">
+      <xsl:with-param name="node" select="."/>
+      <xsl:with-param name="footnotes" select="$footnotes"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text> fcount: </xsl:text>
+    <xsl:value-of select="$fcount"/>
+  </xsl:message>
+-->
+
+  <!-- Only bother to do this if there's at least one non-table footnote -->
+  <xsl:if test="$fcount &gt; 0">
+    <div class="footnotes">
+      <br/>
+      <hr width="100" align="left"/>
+      <xsl:call-template name="process.footnotes.in.this.chunk">
+        <xsl:with-param name="node" select="."/>
+        <xsl:with-param name="footnotes" select="$footnotes"/>
+      </xsl:call-template>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.chunk.footnotes">
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+  <xsl:if test="$is.chunk = 1">
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunk.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunk.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunk.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:saxon="http://icl.com/saxon"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.1"
+                exclude-result-prefixes="doc"
+                extension-element-prefixes="saxon xalanredirect lxslt">
+
+<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunk.xsl -->
+
+<xsl:import href="autoidx.xsl"/>
+<xsl:include href="chunk-common.xsl"/>
+<xsl:include href="chunker.xsl"/>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunker.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunker.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/chunker.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,163 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:saxon="http://icl.com/saxon"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.1"
+                exclude-result-prefixes="doc"
+                extension-element-prefixes="saxon xalanredirect lxslt">
+
+<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunker.xsl -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>Chunking isn't supported with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:if test="@id">
+        <xsl:text>(</xsl:text>
+        <xsl:value-of select="@id"/>
+        <xsl:text>)</xsl:text>
+      </xsl:if>
+    </xsl:if>
+  </xsl:message>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON 6.2')">
+      <!-- Saxon 6.2.x uses xsl:document -->
+      <xsl:document href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </xsl:document>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon uses saxon:output -->
+      <saxon:output file="{$filename}"
+                    href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan uses xalanredirect -->
+      <xalanredirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </xalanredirect:write>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk.with.doctype">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="doctype-public" select="''"/>
+  <xsl:param name="doctype-system" select="''"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+    </xsl:if>
+  </xsl:message>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON 6.2')">
+      <!-- Saxon 6.2.x uses xsl:document -->
+      <xsl:document href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    doctype-public="{$doctype-public}"
+                    doctype-system="{$doctype-system}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </xsl:document>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon uses saxon:output -->
+      <saxon:output file="{$filename}"
+                    href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    doctype-public="{$doctype-public}"
+                    doctype-system="{$doctype-system}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan uses xalanredirect -->
+      <xalanredirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </xalanredirect:write>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/component.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/component.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/component.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,318 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: component.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="component.title">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <h2 class="title">
+    <a name="{$id}"/>
+    <xsl:apply-templates select="$node" mode="object.title.markup"/>
+  </h2>
+</xsl:template>
+
+<xsl:template name="component.subtitle">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="subtitle"
+                select="($node/docinfo/subtitle
+                        |$node/prefaceinfo/subtitle
+                        |$node/chapterinfo/subtitle
+                        |$node/appendixinfo/subtitle
+                        |$node/subtitle)[1]"/>
+
+  <xsl:if test="$subtitle">
+    <h3 class="subtitle">
+      <i>
+        <xsl:apply-templates select="$node" mode="object.subtitle.markup"/>
+      </i>
+    </h3>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.separator">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="dedication">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="dedication.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="dedication.titlepage.recto.mode">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::dedication[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="dedication.titlepage.recto.mode">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::dedication[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="dedication"></xsl:template> <!-- see mode="dedication" -->
+<xsl:template match="dedication/title"></xsl:template>
+<xsl:template match="dedication/subtitle"></xsl:template>
+<xsl:template match="dedication/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="colophon">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="component.title"/>
+    <xsl:call-template name="component.subtitle"/>
+
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="colophon/title"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="preface">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="preface.titlepage"/>
+    <xsl:if test="$generate.preface.toc != '0'">
+      <xsl:call-template name="component.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="preface.titlepage.recto.mode">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::preface[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="preface.titlepage.recto.mode">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::preface[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface/docinfo|prefaceinfo"></xsl:template>
+<xsl:template match="preface/title"></xsl:template>
+<xsl:template match="preface/titleabbrev"></xsl:template>
+<xsl:template match="preface/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="chapter">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="chapter.titlepage"/>
+    <xsl:if test="$generate.chapter.toc != '0'">
+      <xsl:call-template name="component.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="chapter.titlepage.recto.mode">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.mode">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter/docinfo|chapterinfo"></xsl:template>
+<xsl:template match="chapter/title"></xsl:template>
+<xsl:template match="chapter/titleabbrev"></xsl:template>
+<xsl:template match="chapter/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="appendix">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <xsl:call-template name="component.separator"/>
+    <xsl:call-template name="appendix.titlepage"/>
+    <xsl:if test="$generate.appendix.toc != '0'">
+      <xsl:call-template name="component.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="article/appendix">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <div class="{name(.)}">
+    <xsl:call-template name="section.heading">
+      <xsl:with-param name="level" select="2"/>
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="." mode="object.title.markup"/>
+      </xsl:with-param>
+    </xsl:call-template>
+
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="appendix.titlepage.recto.mode">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.mode">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix/docinfo|appendixinfo"></xsl:template>
+<xsl:template match="appendix/title"></xsl:template>
+<xsl:template match="appendix/titleabbrev"></xsl:template>
+<xsl:template match="appendix/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="preface" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="chapter" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:text>.</xsl:text>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="$chapter.autolabel">
+      <xsl:number from="book" count="chapter" format="1."/>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+
+  <xsl:choose>
+    <xsl:when test="@label">
+      <xsl:value-of select="@label"/>
+      <xsl:text>.</xsl:text>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:when test="$chapter.autolabel">
+      <xsl:number from="book" count="appendix" format="A."/>
+      <xsl:if test="$add.space">
+        <xsl:call-template name="gentext.space"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="glossary" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="index" mode="component.number">
+  <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="article">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <div class="{name(.)}">
+    <xsl:call-template name="article.titlepage"/>
+    <xsl:if test="$generate.article.toc != '0'">
+      <xsl:call-template name="component.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="article.titlepage.recto.mode">
+  <xsl:call-template name="component.title">
+    <xsl:with-param name="node" select="ancestor::article[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.mode">
+  <xsl:call-template name="component.subtitle">
+    <xsl:with-param name="node" select="ancestor::article[1]"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="article/artheader|article/articleinfo"></xsl:template>
+<xsl:template match="article/title"></xsl:template>
+<xsl:template match="article/titleabbrev"></xsl:template>
+<xsl:template match="article/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/division.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/division.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/division.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,134 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: division.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}" id="{$id}">
+    <xsl:call-template name="set.titlepage"/>
+    <xsl:if test="$generate.set.toc != '0'">
+      <xsl:call-template name="set.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="set/setinfo"></xsl:template>
+<xsl:template match="set/title"></xsl:template>
+<xsl:template match="set/titleabbrev"></xsl:template>
+<xsl:template match="set/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}" id="{$id}">
+    <xsl:call-template name="book.titlepage"/>
+    <xsl:apply-templates select="dedication" mode="dedication"/>
+    <xsl:if test="$generate.book.toc != '0'">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="book/bookinfo"></xsl:template>
+<xsl:template match="book/title"></xsl:template>
+<xsl:template match="book/titleabbrev"></xsl:template>
+<xsl:template match="book/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="part">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}" id="{$id}">
+    <xsl:call-template name="part.titlepage"/>
+    <xsl:if test="not(partintro) and $generate.part.toc != '0'">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="part" mode="make.part.toc">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="reference" mode="make.part.toc">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="part/docinfo"></xsl:template>
+<xsl:template match="part/partinfo"></xsl:template>
+<xsl:template match="part/title"></xsl:template>
+<xsl:template match="part/titleabbrev"></xsl:template>
+<xsl:template match="part/subtitle"></xsl:template>
+
+<xsl:template match="partintro">
+  <div class="{name(.)}">
+    <xsl:call-template name="partintro.titlepage"/>
+    <xsl:apply-templates/>
+    <xsl:if test="$generate.part.toc != '0'">
+      <!-- not ancestor::part because partintro appears in reference -->
+      <xsl:apply-templates select="parent::*" mode="make.part.toc"/>
+    </xsl:if>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="partintro/title"></xsl:template>
+<xsl:template match="partintro/titleabbrev"></xsl:template>
+<xsl:template match="partintro/subtitle"></xsl:template>
+
+<xsl:template match="partintro/title" mode="partintro.title.mode">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h2>
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h2>
+</xsl:template>
+
+<xsl:template match="partintro/subtitle" mode="partintro.title.mode">
+  <h3>
+    <i><xsl:apply-templates/></i>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book" mode="division.number">
+  <xsl:number from="set" count="book" format="1."/>
+</xsl:template>
+
+<xsl:template match="part" mode="division.number">
+  <xsl:number from="book" count="part" format="I."/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/docbook.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/docbook.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/docbook.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,214 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<xsl:output method="html"
+            encoding="ISO-8859-1"
+            indent="no"/>
+
+<!-- ********************************************************************
+     $Id: docbook.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="../common/labels.xsl"/>
+<xsl:include href="../common/titles.xsl"/>
+<xsl:include href="../common/subtitles.xsl"/>
+<xsl:include href="../common/gentext.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="html.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="pi.xsl"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+  <xsl:message>
+    <xsl:text>No template matches </xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>.</xsl:text>
+  </xsl:message>
+
+  <font color="red">
+    <xsl:text>&lt;</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>&lt;/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text>&gt;</xsl:text>
+  </font>
+</xsl:template>
+
+<xsl:template match="text()">
+  <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="head.content">
+  <xsl:param name="node" select="."/>
+
+  <title>
+    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/>
+  </title>
+
+  <xsl:if test="$html.stylesheet">
+    <link rel="stylesheet"
+          href="{$html.stylesheet}"
+          type="{$html.stylesheet.type}"/>
+  </xsl:if>
+
+  <xsl:if test="$link.mailto.url != ''">
+    <link rev="made"
+          href="{$link.mailto.url}"/>
+  </xsl:if>
+
+  <xsl:if test="$html.base != ''">
+    <base href="{$html.base}"/>
+  </xsl:if>
+
+  <meta name="generator" content="DocBook XSL Stylesheets V{$VERSION}"/>
+
+  <xsl:apply-templates select="." mode="head.keywords.content"/>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="*" mode="head.keywords.content">
+  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/>
+  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/>
+
+  <xsl:if test="$inherit.keywords != 0
+                and parent::*">
+    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template name="user.head.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.navigation">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.navigation">
+  <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template match="/">
+  <xsl:choose>
+    <xsl:when test="$rootid != ''">
+      <xsl:choose>
+        <xsl:when test="count(id($rootid)) = 0">
+          <xsl:message terminate="yes">
+            <xsl:text>ID '</xsl:text>
+            <xsl:value-of select="$rootid"/>
+            <xsl:text>' not found in document.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="id($rootid)" mode="process.root"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="/" mode="process.root"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:variable name="doc" select="self::*"/>
+  <html>
+  <head>
+    <xsl:call-template name="head.content">
+      <xsl:with-param name="node" select="$doc"/>
+    </xsl:call-template>
+    <xsl:call-template name="user.head.content">
+      <xsl:with-param name="node" select="$doc"/>
+    </xsl:call-template>
+  </head>
+  <body xsl:use-attribute-sets="body.attrs">
+    <xsl:call-template name="user.header.content">
+      <xsl:with-param name="node" select="$doc"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="."/>
+    <xsl:call-template name="user.footer.content">
+      <xsl:with-param name="node" select="$doc"/>
+    </xsl:call-template>
+  </body>
+  </html>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/ebnf.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/ebnf.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/ebnf.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,350 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: ebnf.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id: ebnf.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>HTML EBNF Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes the templates and parameters relevant
+to formatting EBNF markup.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- This module formats EBNF tables. The DTD that this supports is  -->
+<!-- under development by the DocBook community. This code is        -->
+<!-- experimental and is not (yet) part of the DocBook stylesheets.  -->
+
+<xsl:include href="docbook.xsl"/>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="ebnf.table.bgcolor">#F5DCB3</xsl:param>
+
+<doc:param name="ebnf.table.bgcolor" xmlns="">
+<refpurpose>Background color for EBNF tables</refpurpose>
+<refdescription>
+<para>Sets the background color for EBNF tables. No <sgmltag>bgcolor</sgmltag>
+attribute is output if <varname>ebnf.table.bgcolor</varname> is set to
+the null string. The default value matches the value used in recent
+online versions of the W3C's XML Spec productions.</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="ebnf.table.border">1</xsl:param>
+
+<doc:param name="ebnf.table.border" xmlns="">
+<refpurpose>Selects border on EBNF tables</refpurpose>
+<refdescription>
+<para>Selects the border on EBNF tables. If non-zero, the tables have
+borders, otherwise they don't.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productionset">
+  <table width="100%" cellpadding="5">
+    <xsl:if test="$ebnf.table.bgcolor != ''">
+      <xsl:attribute name="bgcolor">
+	<xsl:value-of select="$ebnf.table.bgcolor"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$ebnf.table.border != 0">
+      <xsl:attribute name="border">1</xsl:attribute>
+    </xsl:if>
+    <xsl:attribute name="class">
+      <xsl:value-of select="name(.)"/>
+    </xsl:attribute>
+    <xsl:attribute name="summary">
+      <xsl:text>EBNF</xsl:text>
+      <xsl:if test="title">
+	<xsl:text> for </xsl:text>
+	<xsl:value-of select="title"/>
+      </xsl:if>
+    </xsl:attribute>
+
+    <xsl:if test="title">
+      <tr>
+	<th align="left" valign="top" class="{name(.)}">
+	  <xsl:apply-templates select="title"/>
+	</th>
+      </tr>
+    </xsl:if>
+    <tr>
+      <td>
+	<table border="0" width="99%" cellpadding="0">
+	  <xsl:if test="$ebnf.table.bgcolor != ''">
+	    <xsl:attribute name="bgcolor">
+	      <xsl:value-of select="$ebnf.table.bgcolor"/>
+	    </xsl:attribute>
+	  </xsl:if>
+	  <xsl:attribute name="class">
+	    <xsl:value-of select="name(.)"/>
+	  </xsl:attribute>
+	  <xsl:attribute name="summary">EBNF productions</xsl:attribute>
+	  <xsl:apply-templates select="production|productionrecap"/>
+	</table>
+      </td>
+    </tr>
+  </table>
+</xsl:template>
+
+<xsl:template match="productionset/title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="production">
+  <xsl:param name="recap" select="false()"/>
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+  <tr>
+    <td align="left" valign="top" width="3%">
+      <xsl:text>[</xsl:text>
+      <xsl:number count="production" level="any"/>
+      <xsl:text>]</xsl:text>
+    </td>
+    <td align="right" valign="top" width="10%">
+      <xsl:choose>
+	<xsl:when test="$recap">
+	  <a>
+	    <xsl:attribute name="href">
+	      <xsl:call-template name="href.target">
+		<xsl:with-param name="object" select="."/>
+	      </xsl:call-template>
+	    </xsl:attribute>
+	    <xsl:apply-templates select="lhs"/>
+	  </a>
+	</xsl:when>
+	<xsl:otherwise>
+	  <a name="{$id}"/>
+	  <xsl:apply-templates select="lhs"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <td valign="top" width="5%" align="center"><tt>::=</tt></td>
+    <td valign="top" width="52%">
+      <xsl:apply-templates select="rhs"/>
+    </td>
+    <td align="left" valign="top" width="30%">
+      <xsl:choose>
+	<xsl:when test="rhs/lineannotation|constraint">
+	  <xsl:apply-templates select="rhs/lineannotation" mode="rhslo"/>
+	  <xsl:apply-templates select="constraint"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:text>&#160;</xsl:text>
+	</xsl:otherwise>
+      </xsl:choose>
+    </td>
+  </tr>
+</xsl:template>
+
+<xsl:template match="productionrecap">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:if test="$check.idref = '1'">
+    <xsl:if test="count($targets)=0">
+      <xsl:message>
+        <xsl:text>Error: no ID for productionrecap linkend: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+        <xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:if>
+
+    <xsl:if test="count($targets)>1">
+      <xsl:message>
+        <xsl:text>Warning: multiple "IDs" for productionrecap linkend: </xsl:text>
+        <xsl:value-of select="@linkend"/>
+        <xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:if>
+  </xsl:if>
+  <xsl:apply-templates select="$target">
+    <xsl:with-param name="recap" select="true()"/>
+  </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="lhs">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="rhs">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="nonterminal">
+  <xsl:variable name="linkend">
+    <xsl:call-template name="xpointer.idref">
+      <xsl:with-param name="xpointer" select="@def"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="$linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="$linkend"/>
+    <xsl:with-param name="element-list">production</xsl:with-param>
+  </xsl:call-template>
+
+  <!-- If you don't provide content, you can't point outside this doc. -->
+  <xsl:choose>
+    <xsl:when test="*|text()"><!--nop--></xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$linkend = ''">
+	<xsl:message>
+	  <xsl:text>Non-terminals with no content must point to </xsl:text>
+	  <xsl:text>production elements in the current document.</xsl:text>
+	</xsl:message>
+	<xsl:message>
+	  <xsl:text>Invalid xpointer for empty nt: </xsl:text>
+	  <xsl:value-of select="@def"/>
+	</xsl:message>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:variable name="href">
+    <xsl:choose>
+      <xsl:when test="$linkend != ''">
+	<xsl:variable name="targets" select="id($linkend)"/>
+	<xsl:variable name="target" select="$targets[1]"/>
+	<xsl:call-template name="href.target">
+	  <xsl:with-param name="object" select="$target"/>
+	</xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="@def"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <a href="{$href}">
+    <xsl:choose>
+      <xsl:when test="*|text()">
+	<xsl:apply-templates/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:choose>
+	  <xsl:when test="$linkend != ''">
+	    <xsl:variable name="targets" select="id($linkend)"/>
+	    <xsl:variable name="target" select="$targets[1]"/>
+	    <xsl:apply-templates select="$target/lhs"/>
+	  </xsl:when>
+	  <xsl:otherwise>
+	    <xsl:text>???</xsl:text>
+	  </xsl:otherwise>
+	</xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </a>
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation">
+  <!--nop-->
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation" mode="rhslo">
+  <xsl:text>/*&#160;</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>&#160;*/</xsl:text>
+</xsl:template>
+
+<xsl:template match="constraint">
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:call-template name="check.idref.targets">
+    <xsl:with-param name="linkend" select="@linkend"/>
+    <xsl:with-param name="element-list">constraintdef</xsl:with-param>
+  </xsl:call-template>
+
+  <xsl:variable name="href">
+    <xsl:variable name="targets" select="id(@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:call-template name="href.target">
+      <xsl:with-param name="object" select="$target"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:if test="preceding-sibling::constraint">
+    <br/>
+  </xsl:if>
+  <xsl:text>[ </xsl:text>
+
+  <xsl:choose>
+    <xsl:when test="@role">
+      <xsl:value-of select="@role"/>
+      <xsl:text>: </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="targets" select="id(@linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+      <xsl:if test="$target/@role">
+	<xsl:value-of select="$target/@role"/>
+	<xsl:text>: </xsl:text>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <a href="{$href}">
+    <xsl:variable name="targets" select="id(@linkend)"/>
+    <xsl:variable name="target" select="$targets[1]"/>
+    <xsl:apply-templates select="$target" mode="title.markup"/>
+  </a>
+  <xsl:text> ]</xsl:text>
+</xsl:template>
+
+<xsl:template match="constraintdef">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="constraintdef/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/footnote.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/footnote.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/footnote.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,142 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: footnote.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="footnote">
+  <xsl:variable name="name">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:text>#ftn.</xsl:text>
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="ancestor::table|ancestor::informaltable">
+      <sup>
+        <xsl:text>[</xsl:text>
+        <a name="{$name}" href="{$href}">
+          <xsl:apply-templates select="." mode="footnote.number"/>
+        </a>
+        <xsl:text>]</xsl:text>
+      </sup>
+    </xsl:when>
+    <xsl:otherwise>
+      <sup>
+        <xsl:text>[</xsl:text>
+        <a name="{$name}" href="{$href}">
+          <xsl:apply-templates select="." mode="footnote.number"/>
+        </a>
+        <xsl:text>]</xsl:text>
+      </sup>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="footnoteref">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="footnote" select="$targets[1]"/>
+  <xsl:variable name="href">
+    <xsl:text>#ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <sup>
+    <xsl:text>[</xsl:text>
+    <a href="{$href}">
+      <xsl:apply-templates select="$footnote" mode="footnote.number"/>
+    </a>
+    <xsl:text>]</xsl:text>
+  </sup>
+</xsl:template>
+
+<xsl:template match="footnote" mode="footnote.number">
+  <xsl:choose>
+    <xsl:when test="ancestor::table|ancestor::informaltable">
+      <xsl:number level="any" from="table|informaltable" format="a"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:number level="any" format="1"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="footnote/para[1]">
+  <!-- this only works if the first thing in a footnote is a para, -->
+  <!-- which is ok, because it usually is. -->
+  <xsl:variable name="name">
+    <xsl:text>ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="href">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="ancestor::footnote"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <p>
+    <sup>
+      <xsl:text>[</xsl:text>
+      <a name="{$name}" href="{$href}">
+        <xsl:apply-templates select="ancestor::footnote"
+                             mode="footnote.number"/>
+      </a>
+      <xsl:text>] </xsl:text>
+    </sup>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.footnotes">
+  <xsl:variable name="footnotes" select=".//footnote"/>
+  <xsl:variable name="table.footnotes"
+                select=".//table//footnote|.//informaltable//footnote"/>
+
+  <!-- Only bother to do this if there's at least one non-table footnote -->
+  <xsl:if test="count($footnotes)>count($table.footnotes)">
+    <div class="footnotes">
+      <br/>
+      <hr width="100" align="left"/>
+      <xsl:apply-templates select="$footnotes" mode="process.footnote.mode"/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.chunk.footnotes">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template match="footnote" mode="process.footnote.mode">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="informaltable//footnote|table//footnote" 
+              mode="process.footnote.mode">
+</xsl:template>
+
+<xsl:template match="footnote" mode="table.footnote.mode">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/formal.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/formal.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/formal.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,88 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: formal.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="formal.object">
+  <div class="{name(.)}">
+    <xsl:call-template name="formal.object.heading">
+       <xsl:with-param name="title">
+         <xsl:apply-templates select="." mode="title.markup"/>
+       </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+  <p>
+    <a>
+      <xsl:attribute name="name">
+	<xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </a>
+    <b><xsl:apply-templates select="." mode="object.title.markup"/></b>
+  </p>
+</xsl:template>
+
+<xsl:template name="informal.object">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <div class="{name(.)}" id="{$id}">
+    <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+    <a name="{$id}"/>
+    <xsl:apply-templates/>
+    <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+  </div>
+</xsl:template>
+
+<xsl:template name="semiformal.object">
+  <xsl:choose>
+    <xsl:when test="title">
+      <xsl:call-template name="formal.object"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="informal.object"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|table|example">
+  <xsl:call-template name="formal.object"/>
+</xsl:template>
+
+<xsl:template match="equation">
+  <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="figure/title"></xsl:template>
+<xsl:template match="table/title"></xsl:template>
+<xsl:template match="example/title"></xsl:template>
+<xsl:template match="equation/title"></xsl:template>
+
+<xsl:template match="informalfigure">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalexample">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informaltable">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalequation">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/glossary.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/glossary.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/glossary.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,219 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: glossary.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossary">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <div id="{$id}" class="{name(.)}">
+    <xsl:call-template name="glossary.titlepage"/>
+
+    <xsl:choose>
+      <xsl:when test="glossdiv">
+        <xsl:apply-templates select="(glossdiv[1]/preceding-sibling::*)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:choose>
+      <xsl:when test="glossdiv">
+        <xsl:apply-templates select="glossdiv"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <dl>
+          <xsl:apply-templates select="glossentry"/>
+        </dl>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="glossary/glossaryinfo"></xsl:template>
+<xsl:template match="glossary/title"></xsl:template>
+<xsl:template match="glossary/subtitle"></xsl:template>
+<xsl:template match="glossary/titleabbrev"></xsl:template>
+
+<xsl:template match="glossary/title" mode="component.title.mode">
+  <h2>
+    <xsl:apply-templates/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="glossary/subtitle" mode="component.title.mode">
+  <h3>
+    <i><xsl:apply-templates/></i>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glosslist">
+  <div class="{name(.)}">
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </a>
+
+    <dl>
+      <xsl:apply-templates/>
+    </dl>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossdiv">
+  <div class="{name(.)}">
+    <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
+
+    <dl>
+      <xsl:apply-templates select="glossentry"/>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="glossdiv/title">
+  <h3 class="{name(.)}">
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+GlossEntry ::=
+  GlossTerm, Acronym?, Abbrev?,
+  (IndexTerm)*,
+  RevHistory?,
+  (GlossSee | GlossDef+)
+-->
+
+<xsl:template match="glossentry">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm[1]" priority="2">
+  <dt>
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id">
+           <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:attribute>
+
+      <xsl:apply-templates/>
+    </a>
+  </dt>
+</xsl:template>
+
+<xsl:template match="glossentry/acronym">
+</xsl:template>
+
+<xsl:template match="glossentry/abbrev">
+</xsl:template>
+
+<xsl:template match="glossentry/revhistory">
+</xsl:template>
+
+<xsl:template match="glossentry/glosssee">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="//node()[@id=$otherterm]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <dd>
+    <p>
+      <xsl:call-template name="gentext.template">
+        <xsl:with-param name="context" select="'glossary'"/>
+        <xsl:with-param name="name" select="'see'"/>
+      </xsl:call-template>
+      <xsl:choose>
+        <xsl:when test="@otherterm">
+          <a href="#{@otherterm}">
+            <xsl:apply-templates select="$target" mode="xref"/>
+          </a>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:text>.</xsl:text>
+    </p>
+  </dd>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef">
+  <dd>
+    <xsl:apply-templates select="*[local-name(.) != 'glossseealso']"/>
+    <xsl:if test="glossseealso">
+      <p>
+        <xsl:call-template name="gentext.template">
+          <xsl:with-param name="context" select="'glossary'"/>
+          <xsl:with-param name="name" select="'seealso'"/>
+        </xsl:call-template>
+        <xsl:apply-templates select="glossseealso"/>
+      </p>
+    </xsl:if>
+  </dd>
+</xsl:template>
+
+<xsl:template match="glossseealso">
+  <xsl:variable name="otherterm" select="@otherterm"/>
+  <xsl:variable name="targets" select="//node()[@id=$otherterm]"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="@otherterm">
+      <a href="#{@otherterm}">
+        <xsl:apply-templates select="$target" mode="xref"/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="position() = last()">
+      <xsl:text>.</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>, </xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossentry" mode="xref">
+  <xsl:apply-templates select="./glossterm[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="glossterm" mode="xref">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/graphics.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/graphics.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/graphics.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,319 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
+                xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory"
+                xmlns:xtext="com.nwalsh.xalan.Text"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="xlink stext xtext lxslt"
+                extension-element-prefixes="stext xtext"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: graphics.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     Contributors:
+     Colin Paul Adams, <colin at colina.demon.co.uk>
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xtext"
+                 elements="insertfile"/>
+
+<!-- ==================================================================== -->
+<!-- Graphic format tests for the HTML backend -->
+
+<xsl:template name="is.graphic.format">
+  <xsl:param name="format"></xsl:param>
+  <xsl:if test="$format = 'PNG'
+                or $format = 'JPG'
+                or $format = 'JPEG'
+                or $format = 'linespecific'
+                or $format = 'GIF'
+                or $format = 'GIF87a'
+                or $format = 'GIF89a'
+                or $format = 'BMP'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="is.graphic.extension">
+  <xsl:param name="ext"></xsl:param>
+  <xsl:if test="$ext = 'png'
+                or $ext = 'jpeg'
+                or $ext = 'jpg'
+                or $ext = 'avi'
+                or $ext = 'mpg'
+                or $ext = 'mpeg'
+                or $ext = 'qt'
+                or $ext = 'gif'
+                or $ext = 'bmp'">1</xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="screenshot">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="screeninfo">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.image">
+  <!-- When this template is called, the current node should be  -->
+  <!-- a graphic, inlinegraphic, imagedata, or videodata. All    -->
+  <!-- those elements have the same set of attributes, so we can -->
+  <!-- handle them all in one place.                             -->
+  <xsl:param name="tag" select="'img'"/>
+  <xsl:param name="alt"/>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="local-name(.) = 'graphic'
+                      or local-name(.) = 'inlinegraphic'">
+        <xsl:choose>
+          <xsl:when test="@fileref">
+            <xsl:value-of select="@fileref"/>
+          </xsl:when>
+          <xsl:when test="@entityref">
+            <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message>
+              <xsl:text>A fileref or entityref is required on </xsl:text>
+              <xsl:value-of select="local-name(.)"/>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- imagedata, videodata, audiodata -->
+        <xsl:call-template name="mediaobject.filename">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="width">
+    <xsl:choose>
+      <xsl:when test="@scale"><xsl:value-of select="@scale"/>%</xsl:when>
+      <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="height">
+    <xsl:choose>
+      <xsl:when test="@scale"></xsl:when>
+      <xsl:when test="@depth"><xsl:value-of select="@depth"/></xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="align">
+    <xsl:value-of select="@align"/>
+  </xsl:variable>
+
+  <xsl:element name="{$tag}">
+    <xsl:attribute name="src">
+      <xsl:value-of select="$filename"/>
+    </xsl:attribute>
+
+    <xsl:if test="$align != ''">
+      <xsl:attribute name="align">
+        <xsl:value-of select="$align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$height != ''">
+      <xsl:attribute name="height">
+        <xsl:value-of select="$height"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$width != ''">
+      <xsl:attribute name="width">
+        <xsl:value-of select="$width"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$alt != ''">
+      <xsl:attribute name="alt">
+        <xsl:value-of select="$alt"/>
+      </xsl:attribute>
+    </xsl:if>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="graphic">
+  <p>
+    <xsl:call-template name="process.image"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="inlinegraphic">
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="@entityref">
+        <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@fileref"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'
+                        and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="contains($vendor, 'SAXON')">
+              <stext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>Don't know how to insert files with </xsl:text>
+                <xsl:value-of select="$vendor"/>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"
+             href="{$filename}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process.image"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject|mediaobjectco">
+  <div class="{name(.)}">
+    <xsl:call-template name="select.mediaobject"/>
+    <xsl:apply-templates select="caption"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="inlinemediaobject">
+  <span class="{name(.)}">
+    <xsl:call-template name="select.mediaobject"/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="imageobjectco">
+  <xsl:apply-templates select="imageobject"/>
+  <xsl:apply-templates select="calloutlist"/>
+</xsl:template>
+
+<xsl:template match="imageobject">
+  <xsl:apply-templates select="imagedata"/>
+</xsl:template>
+
+<xsl:template match="imagedata">
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:variable name="filename">
+    <xsl:call-template name="mediaobject.filename">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="@format='linespecific'">
+      <xsl:choose>
+        <xsl:when test="$use.extensions != '0'
+                        and $textinsert.extension != '0'">
+          <xsl:choose>
+            <xsl:when test="contains($vendor, 'SAXON')">
+              <stext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+              <xtext:insertfile href="{$filename}"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:message terminate="yes">
+                <xsl:text>Don't know how to insert files with </xsl:text>
+                <xsl:value-of select="$vendor"/>
+              </xsl:message>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:otherwise>
+          <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"
+             href="{$filename}"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process.image">
+        <xsl:with-param name="alt">
+          <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="videoobject">
+  <xsl:apply-templates select="videodata"/>
+</xsl:template>
+
+<xsl:template match="videodata">
+  <xsl:call-template name="process.image">
+    <xsl:with-param name="tag" select="'embed'"/>
+    <xsl:with-param name="alt">
+      <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="audioobject">
+  <xsl:apply-templates select="audiodata"/>
+</xsl:template>
+
+<xsl:template match="audiodata">
+  <xsl:call-template name="process.image">
+    <xsl:with-param name="tag" select="'embed'"/>
+    <xsl:with-param name="alt">
+      <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="textobject">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="caption">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/html.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/html.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/html.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,56 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: html.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="dingbat">
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:choose>
+    <xsl:when test="false() and $using.chunker != 0">
+      <dingbat name="{$dingbat}"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="dingbat.characters">
+        <xsl:with-param name="dingbat" select="$dingbat"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="dingbat.characters">
+  <!-- now that I'm using the real serializer, all that dingbat malarky -->
+  <!-- isn't necessary anymore... -->
+  <xsl:param name="dingbat">bullet</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$dingbat='bullet'">&#x2022;</xsl:when>
+    <xsl:when test="$dingbat='copyright'">&#x00A9;</xsl:when>
+    <xsl:when test="$dingbat='trademark'">&#x2122;</xsl:when>
+    <xsl:when test="$dingbat='trade'">&#x2122;</xsl:when>
+    <xsl:when test="$dingbat='registered'">&#x00AE;</xsl:when>
+    <xsl:when test="$dingbat='service'">(SM)</xsl:when>
+    <xsl:when test="$dingbat='nbsp'">&#x00A0;</xsl:when>
+    <xsl:when test="$dingbat='ldquo'">&#x201C;</xsl:when>
+    <xsl:when test="$dingbat='rdquo'">&#x201D;</xsl:when>
+    <xsl:when test="$dingbat='lsquo'">&#x2018;</xsl:when>
+    <xsl:when test="$dingbat='rsquo'">&#x2019;</xsl:when>
+    <xsl:when test="$dingbat='em-dash'">&#x2014;</xsl:when>
+    <xsl:when test="$dingbat='mdash'">&#x2014;</xsl:when>
+    <xsl:when test="$dingbat='en-dash'">&#x2013;</xsl:when>
+    <xsl:when test="$dingbat='ndash'">&#x2013;</xsl:when>
+    <xsl:otherwise>
+      <xsl:text>&#x2022;</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/index.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/index.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/index.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,185 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: index.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="index|setindex">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. Unless generate.index -->
+  <!-- is non-zero, in which case, this is where the automatically -->
+  <!-- generated index should go. -->
+
+  <xsl:if test="count(*)>0 or $generate.index != '0'">
+    <xsl:variable name="id">
+      <xsl:call-template name="object.id"/>
+    </xsl:variable>
+
+    <div id="{$id}" class="{name(.)}">
+      <xsl:call-template name="index.titlepage"/>
+      <xsl:apply-templates/>
+
+      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+        <xsl:call-template name="generate-index"/>
+      </xsl:if>
+
+      <xsl:call-template name="process.footnotes"/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="index/title"></xsl:template>
+<xsl:template match="index/subtitle"></xsl:template>
+<xsl:template match="index/titleabbrev"></xsl:template>
+
+<xsl:template match="index/title" mode="component.title.mode">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h2 class="title">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h2>
+</xsl:template>
+
+<xsl:template match="index/subtitle" mode="component.title.mode">
+  <h3>
+    <i><xsl:apply-templates/></i>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexdiv">
+  <div class="{name(.)}">
+    <xsl:apply-templates mode="not-indexentrys"/>
+    <dl>
+      <xsl:apply-templates select="indexentry"/>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="indexentry" mode="not-indexentrys">
+  <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="indexdiv/title">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select=".."/>
+    </xsl:call-template>
+  </xsl:variable>
+  <h3 class="{name(.)}">
+    <a name="{$id}">
+      <xsl:apply-templates/>
+    </a>
+  </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexterm">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <a class="indexterm" name="{$id}"/>
+</xsl:template>
+
+<xsl:template match="primary|secondary|tertiary|see|seealso">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexentry">
+  <xsl:apply-templates select="primaryie"/>
+</xsl:template>
+
+<xsl:template match="primaryie">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="following-sibling::secondaryie">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="following-sibling::secondaryie"/>
+        </dl>
+      </dd>
+    </xsl:when>
+    <xsl:when test="following-sibling::seeie
+                    |following-sibling::seealsoie">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="following-sibling::seeie
+                                       |following-sibling::seealsoie"/>
+        </dl>
+      </dd>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="secondaryie">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+  <xsl:choose>
+    <xsl:when test="following-sibling::tertiaryie">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="following-sibling::tertiaryie"/>
+        </dl>
+      </dd>
+    </xsl:when>
+    <xsl:when test="following-sibling::seeie
+                    |following-sibling::seealsoie">
+      <dd>
+        <dl>
+          <xsl:apply-templates select="following-sibling::seeie
+                                       |following-sibling::seealsoie"/>
+        </dl>
+      </dd>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tertiaryie">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+  <xsl:if test="following-sibling::seeie
+                |following-sibling::seealsoie">
+    <dd>
+      <dl>
+        <xsl:apply-templates select="following-sibling::seeie
+                                     |following-sibling::seealsoie"/>
+      </dl>
+    </dd>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="seeie|seealsoie">
+  <dt>
+    <xsl:apply-templates/>
+  </dt>
+</xsl:template>
+
+<xsl:template name="generate-index">
+  <!-- nop: use autoidx.xsl to get automatic indexing -->
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/info.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/info.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/info.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,53 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: info.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- These templates define the "default behavior" for info
+     elements.  Even if you don't process the *info wrappers,
+     some of these elements are needed because the elements are
+     processed from named templates that are called with modes.
+     Since modes aren't sticky, these rules apply. 
+     (TODO: clarify this comment) -->
+
+<!-- ==================================================================== -->
+<!-- called from named templates in a given mode -->
+
+<xsl:template match="corpauthor">
+  <span class="{name(.)}">
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="jobtitle">
+  <span class="{name(.)}">
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname">
+  <span class="{name(.)}">
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgdiv">
+  <span class="{name(.)}">
+    <xsl:apply-templates/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/inline.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/inline.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/inline.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,755 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: inline.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template name="inline.charseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <xsl:copy-of select="$content"/>
+</xsl:template>
+
+<xsl:template name="inline.monoseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <tt><xsl:copy-of select="$content"/></tt>
+</xsl:template>
+
+<xsl:template name="inline.boldseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <!-- don't put <b> inside figure, example, or table titles -->
+  <xsl:choose>
+    <xsl:when test="local-name(..) = 'title'
+                    and (local-name(../..) = 'figure'
+                         or local-name(../..) = 'example'
+                         or local-name(../..) = 'table')">
+      <xsl:copy-of select="$content"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <b><xsl:copy-of select="$content"/></b>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.italicseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <i><xsl:copy-of select="$content"/></i>
+</xsl:template>
+
+<xsl:template name="inline.boldmonoseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <!-- don't put <b> inside figure, example, or table titles -->
+  <!-- or other titles that may already be represented with <b>'s. -->
+  <xsl:choose>
+    <xsl:when test="local-name(..) = 'title'
+                    and (local-name(../..) = 'figure'
+                         or local-name(../..) = 'example'
+                         or local-name(../..) = 'table'
+                         or local-name(../..) = 'formalpara')">
+      <tt><xsl:copy-of select="$content"/></tt>
+    </xsl:when>
+    <xsl:otherwise>
+      <b><tt><xsl:copy-of select="$content"/></tt></b>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.italicmonoseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <i><tt><xsl:copy-of select="$content"/></tt></i>
+</xsl:template>
+
+<xsl:template name="inline.superscriptseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <sup><xsl:copy-of select="$content"/></sup>
+</xsl:template>
+
+<xsl:template name="inline.subscriptseq">
+  <xsl:param name="content">
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </xsl:param>
+  <sub><xsl:copy-of select="$content"/></sub>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- some special cases -->
+
+<xsl:template match="author">
+  <span class="{name(.)}"><xsl:call-template name="person.name"/></span>
+</xsl:template>
+
+<xsl:template match="editor">
+  <span class="{name(.)}"><xsl:call-template name="person.name"/></span>
+</xsl:template>
+
+<xsl:template match="othercredit">
+  <span class="{name(.)}"><xsl:call-template name="person.name"/></span>
+</xsl:template>
+
+<xsl:template match="authorinitials">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="accel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="action">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="application">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="classname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="exceptionname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="interfacename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="methodname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="command">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="computeroutput">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="constant">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="database">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorcode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortype">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="envar">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="filename">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="function">
+  <xsl:choose>
+    <xsl:when test="$function.parens != '0'
+                    and (parameter or function or replaceable)">
+      <xsl:variable name="nodes" select="text()|*"/>
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:apply-templates select="$nodes[1]"/>
+        </xsl:with-param>
+      </xsl:call-template>
+      <xsl:text>(</xsl:text>
+      <xsl:apply-templates select="$nodes[position()>1]"/>
+      <xsl:text>)</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+     <xsl:call-template name="inline.monoseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="function/parameter" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="function/replaceable" priority="2">
+  <xsl:call-template name="inline.italicmonoseq"/>
+  <xsl:if test="following-sibling::*">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="guibutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guiicon">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guilabel">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenuitem">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guisubmenu">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="hardware">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interface">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interfacedefinition">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keycap">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="keycode">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keysym">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="literal">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="medialabel">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="shortcut">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="mousebutton">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="option">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="parameter">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="property">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="prompt">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="replaceable" priority="1">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="returnvalue">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="structfield">
+  <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="structname">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="symbol">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="systemitem">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="token">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="type">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="userinput">
+  <xsl:call-template name="inline.boldmonoseq"/>
+</xsl:template>
+
+<xsl:template match="abbrev">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="acronym">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="citerefentry">
+  <xsl:choose>
+    <xsl:when test="$citerefentry.link != '0'">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="generate.citerefentry.link"/>
+        </xsl:attribute>
+        <xsl:call-template name="inline.charseq"/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.charseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.citerefentry.link">
+  <!-- nop -->
+</xsl:template>
+
+<xsl:template name="x.generate.citerefentry.link">
+  <xsl:text>http://example.com/cgi-bin/man.cgi?</xsl:text>
+  <xsl:value-of select="refentrytitle"/>
+  <xsl:text>(</xsl:text>
+  <xsl:value-of select="manvolnum"/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<xsl:template match="citetitle">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="emphasis">
+  <xsl:choose>
+    <xsl:when test="@role='bold'">
+      <xsl:call-template name="inline.boldseq"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="foreignphrase">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="markup">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phrase">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="quote">
+  <xsl:variable name="depth">
+    <xsl:call-template name="dot.count">
+      <xsl:with-param name="string"><xsl:number level="multiple"/></xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$depth mod 2 = 0">
+      <xsl:call-template name="gentext.startquote"/>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:call-template name="gentext.endquote"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="gentext.nestedstartquote"/>
+      <xsl:call-template name="inline.charseq"/>
+      <xsl:call-template name="gentext.nestedendquote"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varname">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="wordasword">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="lineannotation">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="superscript">
+  <xsl:call-template name="inline.superscriptseq"/>
+</xsl:template>
+
+<xsl:template match="subscript">
+  <xsl:call-template name="inline.subscriptseq"/>
+</xsl:template>
+
+<xsl:template match="trademark">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:choose>
+    <xsl:when test="@class = 'copyright'
+                    or @class = 'registered'">
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat" select="@class"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="@class = 'service'">
+      <sup>SM</sup>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="dingbat">
+        <xsl:with-param name="dingbat" select="'trademark'"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="firstterm">
+  <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="glossterm">
+  <xsl:choose>
+    <xsl:when test="@linkend">
+      <xsl:variable name="targets" select="id(@linkend)"/>
+      <xsl:variable name="target" select="$targets[1]"/>
+
+      <xsl:call-template name="check.id.unique">
+        <xsl:with-param name="linkend" select="@linkend"/>
+      </xsl:call-template>
+
+      <a>
+        <xsl:if test="@id">
+          <xsl:attribute name="name">
+            <xsl:value-of select="@id"/>
+          </xsl:attribute>
+        </xsl:if>
+
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:call-template name="inline.italicseq"/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.italicseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sgmltag">
+  <xsl:call-template name="format.sgmltag"/>
+</xsl:template>
+
+<xsl:template name="format.sgmltag">
+  <xsl:param name="class">
+    <xsl:choose>
+      <xsl:when test="@class">
+        <xsl:value-of select="@class"/>
+      </xsl:when>
+      <xsl:otherwise>element</xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$class='attribute'">
+      <xsl:call-template name="inline.monoseq"/>
+    </xsl:when>
+    <xsl:when test="$class='attvalue'">
+      <xsl:call-template name="inline.monoseq"/>
+    </xsl:when>
+    <xsl:when test="$class='element'">
+      <xsl:call-template name="inline.monoseq"/>
+    </xsl:when>
+    <xsl:when test="$class='endtag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;/</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='genentity'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&amp;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='numcharref'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&amp;#</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='paramentity'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>%</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='pi'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;?</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='xmlpi'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;?</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>?&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='starttag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='emptytag'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>/&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$class='sgmlcomment'">
+      <xsl:call-template name="inline.monoseq">
+        <xsl:with-param name="content">
+          <xsl:text>&lt;!--</xsl:text>
+          <xsl:apply-templates/>
+          <xsl:text>--&gt;</xsl:text>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="inline.charseq"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="email">
+  <xsl:call-template name="inline.monoseq">
+    <xsl:with-param name="content">
+      <xsl:text>&lt;</xsl:text>
+      <a>
+       <xsl:attribute name="href">mailto:<xsl:value-of select="."/></xsl:attribute>
+       <xsl:apply-templates/>
+      </a>
+      <xsl:text>&gt;</xsl:text>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="keycombo">
+  <xsl:variable name="action" select="@action"/>
+  <xsl:variable name="joinchar">
+    <xsl:choose>
+      <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
+      <xsl:when test="$action='simul'">+</xsl:when>
+      <xsl:when test="$action='press'">-</xsl:when>
+      <xsl:when test="$action='click'">-</xsl:when>
+      <xsl:when test="$action='double-click'">-</xsl:when>
+      <xsl:when test="$action='other'"></xsl:when>
+      <xsl:otherwise>-</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:for-each select="./*">
+    <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if>
+    <xsl:apply-templates/>
+  </xsl:for-each>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="menuchoice">
+  <xsl:variable name="shortcut" select="./shortcut"/>
+  <xsl:call-template name="process.menuchoice"/>
+  <xsl:if test="$shortcut">
+    <xsl:text> (</xsl:text>
+    <xsl:apply-templates select="$shortcut"/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.menuchoice">
+  <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($nodelist)"></xsl:when>
+    <xsl:when test="$count=1">
+      <xsl:apply-templates select="$nodelist[$count=position()]"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="node" select="$nodelist[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="name($node)='guimenuitem'
+                        or name($node)='guisubmenu'">
+          <xsl:text>-&gt;</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>+</xsl:otherwise>
+      </xsl:choose>
+      <xsl:apply-templates select="$node"/>
+      <xsl:call-template name="process.menuchoice">
+        <xsl:with-param name="nodelist" select="$nodelist"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="optional">
+  <xsl:value-of select="$arg.choice.opt.open.str"/>
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:value-of select="$arg.choice.opt.close.str"/>
+</xsl:template>
+
+<xsl:template match="citation">
+  <!-- todo: biblio-citation-check -->
+  <xsl:text>[</xsl:text>
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:text>]</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="comment|remark">
+  <xsl:if test="$show.comments != 0">
+    <i><xsl:call-template name="inline.charseq"/></i>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productname">
+  <xsl:call-template name="inline.charseq"/>
+  <xsl:if test="@class">
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat" select="@class"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="productnumber">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="pob|street|city|state|postcode|country|otheraddr">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phone|fax">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- in Addresses, for example -->
+<xsl:template match="honorific|firstname|surname|lineage|othername">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/keywords.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/keywords.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/keywords.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,38 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: keywords.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="keywordset"></xsl:template>
+<xsl:template match="subjectset"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="keywordset" mode="html.header">
+  <meta name="keywords">
+    <xsl:attribute name="content">
+      <xsl:apply-templates select="keyword" mode="html.header"/>
+    </xsl:attribute>
+  </meta>
+</xsl:template>
+
+<xsl:template match="keyword[position()!=last()]" mode="html.header">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="keyword[position()=last()]" mode="html.header">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/lists.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/lists.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/lists.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,652 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: lists.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="itemizedlist">
+  <div class="{name(.)}">
+    <xsl:if test="title">
+      <xsl:apply-templates select="title"/>
+    </xsl:if>
+    <ul>
+      <xsl:if test="@spacing='compact'">
+        <xsl:attribute name="compact">
+          <xsl:value-of select="@spacing"/>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:apply-templates select="listitem"/>
+    </ul>
+  </div>
+</xsl:template>
+
+<xsl:template match="itemizedlist/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template name="orderedlist-starting-number">
+  <xsl:param name="list" select="."/>
+  <xsl:choose>
+    <xsl:when test="$list/@continuation != 'continues'">1</xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="prevlist"
+                    select="$list/preceding::orderedlist[1]"/>
+      <xsl:choose>
+        <xsl:when test="count($prevlist) = 0">2</xsl:when>
+        <xsl:otherwise>
+          <xsl:variable name="prevlength" select="count($prevlist/listitem)"/>
+          <xsl:variable name="prevstart">
+            <xsl:call-template name="orderedlist-starting-number">
+              <xsl:with-param name="list" select="$prevlist"/>
+            </xsl:call-template>
+          </xsl:variable>
+          <xsl:value-of select="$prevstart + $prevlength"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="orderedlist">
+  <xsl:variable name="start">
+    <xsl:choose>
+      <xsl:when test="@continuation='continues'">
+        <xsl:call-template name="orderedlist-starting-number"/>
+      </xsl:when>
+      <xsl:otherwise>1</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="numeration">
+    <xsl:choose>
+      <xsl:when test="@numeration='arabic'">1</xsl:when>
+      <xsl:when test="@numeration='loweralpha'">a</xsl:when>
+      <xsl:when test="@numeration='lowerroman'">i</xsl:when>
+      <xsl:when test="@numeration='upperalpha'">A</xsl:when>
+      <xsl:when test="@numeration='upperroman'">I</xsl:when>
+      <xsl:otherwise>
+        <!-- alternate the numeration based on depth -->
+        <xsl:variable name="depth" select="count(ancestor::orderedlist)"/>
+        <xsl:variable name="type" select="$depth mod 5"/>
+        <xsl:choose>
+          <xsl:when test="$type = 0">1</xsl:when>
+          <xsl:when test="$type = 1">a</xsl:when>
+          <xsl:when test="$type = 2">i</xsl:when>
+          <xsl:when test="$type = 3">A</xsl:when>
+          <xsl:when test="$type = 4">I</xsl:when>
+        </xsl:choose>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <div class="{name(.)}">
+    <xsl:if test="title">
+      <xsl:apply-templates select="title"/>
+    </xsl:if>
+    <ol>
+    <xsl:if test="$start != '1'">
+      <xsl:attribute name="start">
+        <xsl:value-of select="$start"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="$numeration != ''">
+      <xsl:attribute name="type">
+	<xsl:value-of select="$numeration"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@spacing='compact'">
+      <xsl:attribute name="compact">
+	<xsl:value-of select="compact"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:apply-templates select="listitem"/>
+    </ol>
+  </div>
+</xsl:template>
+
+<xsl:template match="orderedlist/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="variablelist">
+  <div class="{name(.)}">
+    <xsl:if test="title">
+      <xsl:apply-templates select="title"/>
+    </xsl:if>
+    <dl>
+    <xsl:apply-templates select="varlistentry"/>
+    </dl>
+  </div>
+</xsl:template>
+
+<xsl:template match="variablelist/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="listitem">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:variable name="mark" select="ancestor-or-self::*/@mark"/>
+  <xsl:variable name="override" select="@override"/>
+
+  <xsl:variable name="usemark">
+    <xsl:choose>
+      <xsl:when test="$override != ''">
+	<xsl:value-of select="$override"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="$mark"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="cssmark">
+    <xsl:choose>
+      <xsl:when test="$usemark = 'bullet'">disc</xsl:when>
+      <xsl:when test="$usemark = 'box'">square</xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="$usemark"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <li>
+    <xsl:if test="$css.decoration = '1' and $cssmark != ''">
+      <xsl:attribute name="style">
+	<xsl:text>list-style-type: </xsl:text>
+	<xsl:value-of select="$cssmark"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <!-- we can't just drop the anchor in since some browsers (Opera)
+         get confused about line breaks if we do. So if the first child
+         is a para, assume the para will put in the anchor. Otherwise,
+         put the anchor in anyway. -->
+    <xsl:if test="local-name(child::*[1]) != 'para'">
+      <a name="{$id}"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag and @revisionflag">
+	<div class="{@revisionflag}">
+	  <xsl:apply-templates/>
+	</div>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </li>
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="varlistentry">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <dt><a name="{$id}"/><xsl:apply-templates select="term"/></dt>
+  <dd><xsl:apply-templates select="listitem"/></dd>
+</xsl:template>
+
+<xsl:template match="varlistentry/term">
+  <span class="term"><xsl:apply-templates/>, </span>
+</xsl:template>
+
+<xsl:template match="varlistentry/term[position()=last()]" priority="2">
+  <span class="term"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match="varlistentry/listitem">
+  <xsl:choose>
+    <xsl:when test="$show.revisionflag and @revisionflag">
+      <div class="{@revisionflag}">
+	<xsl:apply-templates/>
+      </div>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+
+<xsl:template match="simplelist">
+  <!-- with no type specified, the default is 'vert' -->
+  <table class="simplelist" border="0" summary="Simple list">
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols">
+	<xsl:choose>
+	  <xsl:when test="@columns">
+	    <xsl:value-of select="@columns"/>
+	  </xsl:when>
+	  <xsl:otherwise>1</xsl:otherwise>
+	</xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='inline']">
+  <span class="{name(.)}"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='horiz']">
+  <table class="simplelist" border="0" summary="Simple list">
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='vert']">
+  <table class="simplelist" border="0" summary="Simple list">
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols">
+        <xsl:choose>
+          <xsl:when test="@columns">
+            <xsl:value-of select="@columns"/>
+          </xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
+  </table>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+
+  <xsl:if test="$cell &lt;= count($members)">
+    <tr>
+      <xsl:call-template name="simplelist.horiz.row">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="cell" select="$cell"/>
+        <xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+   </tr>
+    <xsl:call-template name="simplelist.horiz">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell + $cols"/>
+      <xsl:with-param name="members" select="$members"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <td>
+      <xsl:choose>
+        <xsl:when test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$using.chunker != 0">
+              <xsl:text>&#160;</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <xsl:call-template name="simplelist.horiz.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="rows"
+             select="floor((count($members)+$cols - 1) div $cols)"/>
+
+  <xsl:if test="$cell &lt;= $rows">
+    <tr>
+      <xsl:call-template name="simplelist.vert.row">
+	<xsl:with-param name="cols" select="$cols"/>
+	<xsl:with-param name="rows" select="$rows"/>
+	<xsl:with-param name="cell" select="$cell"/>
+	<xsl:with-param name="members" select="$members"/>
+      </xsl:call-template>
+    </tr>
+    <xsl:call-template name="simplelist.vert">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="cell" select="$cell+1"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="rows" select="$rows"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert.row">
+  <xsl:param name="cols">1</xsl:param>
+  <xsl:param name="rows">1</xsl:param>
+  <xsl:param name="cell">1</xsl:param>
+  <xsl:param name="members" select="./member"/>
+  <xsl:param name="curcol">1</xsl:param>
+
+  <xsl:if test="$curcol &lt;= $cols">
+    <td>
+      <xsl:choose>
+        <xsl:when test="$members[position()=$cell]">
+          <xsl:apply-templates select="$members[position()=$cell]"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="$using.chunker != 0">
+              <xsl:text>&#160;</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+      </xsl:choose>
+    </td>
+    <xsl:call-template name="simplelist.vert.row">
+      <xsl:with-param name="cols" select="$cols"/>
+      <xsl:with-param name="rows" select="$rows"/>
+      <xsl:with-param name="cell" select="$cell+$rows"/>
+      <xsl:with-param name="members" select="$members"/>
+      <xsl:with-param name="curcol" select="$curcol+1"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="member">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='inline']/member">
+  <xsl:apply-templates/>
+  <xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="simplelist[@type='inline']/member[position()=last()]"
+              priority="2">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="procedure">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:if test="title">
+      <xsl:apply-templates select="title" mode="procedure.title.mode"/>
+    </xsl:if>
+    <xsl:apply-templates select="*[local-name()!='step']"/>     
+    <ol><xsl:apply-templates select="step"/></ol>              
+  </div>
+</xsl:template>
+
+<xsl:template match="procedure/title">
+</xsl:template>
+
+<xsl:template match="title" mode="procedure.title.mode">
+  <p>
+    <b>
+      <xsl:apply-templates/>
+    </b>
+  </p>
+</xsl:template>
+
+<xsl:template match="substeps">
+  <xsl:variable name="depth" select="count(ancestor::substeps)"/>
+  <xsl:variable name="type" select="$depth mod 5"/>
+  <xsl:variable name="numeration">
+    <xsl:choose>
+      <xsl:when test="$type = 0">a</xsl:when>
+      <xsl:when test="$type = 1">i</xsl:when>
+      <xsl:when test="$type = 2">A</xsl:when>
+      <xsl:when test="$type = 3">I</xsl:when>
+      <xsl:when test="$type = 4">1</xsl:when>
+    </xsl:choose>
+  </xsl:variable>
+
+  <ol type="{$numeration}">
+    <xsl:apply-templates/>
+  </ol>
+</xsl:template>
+
+<xsl:template match="step">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <li>
+    <a name="{$id}"/>
+    <xsl:apply-templates/>
+  </li>
+</xsl:template>
+
+<xsl:template match="step/title">
+  <xsl:apply-templates select="." mode="procedure.title.mode"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="segmentedlist">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="segmentedlist/title">
+  <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="segtitle">
+</xsl:template>
+
+<xsl:template match="segtitle" mode="segtitle-in-seg">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seglistitem">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seg">
+  <xsl:variable name="segnum" select="position()"/>
+  <xsl:variable name="seglist" select="ancestor::segmentedlist"/>
+  <xsl:variable name="segtitles" select="$seglist/segtitle"/>
+
+  <!--
+     Note: segtitle is only going to be the right thing in a well formed
+     SegmentedList.  If there are too many Segs or too few SegTitles,
+     you'll get something odd...maybe an error
+  -->
+
+  <p>
+    <b>
+      <xsl:apply-templates select="$segtitles[$segnum=position()]"
+                           mode="segtitle-in-seg"/>
+      <xsl:text>: </xsl:text>
+    </b>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="calloutlist">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:if test="./title">
+      <p>
+        <b>
+          <xsl:apply-templates select="./title" mode="calloutlist.title.mode"/>
+        </b>
+      </p>
+    </xsl:if>
+    <xsl:choose>
+      <xsl:when test="$callout.list.table != 0">
+        <table border="0" summary="Callout list">
+          <xsl:apply-templates/>
+        </table>
+      </xsl:when>
+      <xsl:otherwise>
+        <dl compact="compact"><xsl:apply-templates/></dl>
+      </xsl:otherwise>
+    </xsl:choose>
+  </div>
+</xsl:template>
+
+<xsl:template match="calloutlist/title">
+</xsl:template>
+
+<xsl:template match="calloutlist/title" mode="calloutlist.title.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="callout">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$callout.list.table != 0">
+      <tr>
+        <td width="5%" valign="top" align="left">
+          <a name="{$id}"/>
+          <xsl:call-template name="callout.arearefs">
+            <xsl:with-param name="arearefs" select="@arearefs"/>
+          </xsl:call-template>
+        </td>
+        <td valign="top" align="left">
+          <xsl:apply-templates/>
+        </td>
+      </tr>
+    </xsl:when>
+    <xsl:otherwise>
+      <dt>
+        <a name="{$id}"/>
+        <xsl:call-template name="callout.arearefs">
+          <xsl:with-param name="arearefs" select="@arearefs"/>
+        </xsl:call-template>
+      </dt>
+      <dd><xsl:apply-templates/></dd>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="callout.arearefs">
+  <xsl:param name="arearefs"></xsl:param>
+  <xsl:if test="$arearefs!=''">
+    <xsl:choose>
+      <xsl:when test="substring-before($arearefs,' ')=''">
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef" select="$arearefs"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="callout.arearef">
+          <xsl:with-param name="arearef"
+                          select="substring-before($arearefs,' ')"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:call-template name="callout.arearefs">
+      <xsl:with-param name="arearefs"
+                      select="substring-after($arearefs,' ')"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="callout.arearef">
+  <xsl:param name="arearef"></xsl:param>
+  <xsl:variable name="targets" select="id($arearef)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="$arearef"/>
+  </xsl:call-template>
+
+  <xsl:choose>
+    <xsl:when test="count($target)=0">
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='co'">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:text>#</xsl:text>
+          <xsl:value-of select="$arearef"/>
+        </xsl:attribute>
+        <xsl:apply-templates select="$target" mode="callout-bug"/>
+      </a>
+      <xsl:text> </xsl:text>
+    </xsl:when>
+    <xsl:when test="local-name($target)='areaset'">
+      <xsl:call-template name="callout-bug">
+        <xsl:with-param name="conum">
+          <xsl:apply-templates select="$target" mode="conumber"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="local-name($target)='area'">
+      <xsl:choose>
+        <xsl:when test="$target/parent::areaset">
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target/parent::areaset"
+                                   mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="callout-bug">
+            <xsl:with-param name="conum">
+              <xsl:apply-templates select="$target" mode="conumber"/>
+            </xsl:with-param>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>???</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/math.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/math.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/math.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: math.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="inlineequation">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="alt">
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/new/chunk.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/new/chunk.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/new/chunk.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.1"
+                exclude-result-prefixes="doc">
+
+<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunk.xsl -->
+<!-- This stylesheet should also work for any processor that supports   -->
+<!-- exslt:document() (see http://www.exslt.org/)                       -->
+
+<xsl:import href="autoidx.xsl"/>
+<xsl:include href="chunk-common.xsl"/>
+<xsl:include href="chunker.xsl"/>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/new/chunker.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/new/chunker.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/new/chunker.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,185 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:saxon="http://icl.com/saxon"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+                xmlns:exsl="http://exslt.org/common"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.1"
+                exclude-result-prefixes="doc"
+                extension-element-prefixes="saxon xalanredirect lxslt exsl">
+
+<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunker.xsl -->
+<!-- Note: Only Saxon 6.4.2 or later is supported. -->
+
+<!-- Note: I don't think the exsl namespace name is right! -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <xsl:choose>
+    <xsl:when test="element-available('xsl:document')">
+      <!-- XSL document does make the chunks relative, I think -->
+      <xsl:choose>
+        <xsl:when test="count(parent::*) = 0">
+          <xsl:value-of select="concat($base.dir,$base.name)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$base.name"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:when test="element-available('saxon:output')">
+      <!-- Saxon doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:when test="element-available('xalanredirect:write')">
+      <!-- Xalan doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:when test="element-available('exsl:document')">
+      <!-- EXSL document does make the chunks relative, I think -->
+      <xsl:choose>
+        <xsl:when test="count(parent::*) = 0">
+          <xsl:value-of select="concat($base.dir,$base.name)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$base.name"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>Don't know how to chunk with </xsl:text>
+        <xsl:value-of select="system-property('xsl:vendor')"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:if test="@id">
+        <xsl:text>(</xsl:text>
+        <xsl:value-of select="@id"/>
+        <xsl:text>)</xsl:text>
+      </xsl:if>
+    </xsl:if>
+  </xsl:message>
+
+  <xsl:choose>
+    <xsl:when test="element-available('xsl:document')">
+      <xsl:document href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}">
+        <xsl:copy-of select="$content"/>
+      </xsl:document>
+    </xsl:when>
+    <xsl:when test="element-available('saxon:output')">
+      <saxon:output href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="element-available('xalanredirect:write')">
+      <!-- Xalan uses xalanredirect -->
+      <xalanredirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </xalanredirect:write>
+    </xsl:when>
+    <xsl:when test="element-available('exsl:document')">
+      <exsl:document href="{$filename}"
+                     method="{$method}"
+                     encoding="{$encoding}"
+                     indent="{$indent}">
+        <xsl:copy-of select="$content"/>
+      </exsl:document>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="system-property('xsl:vendor')"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk.with.doctype">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="doctype-public" select="''"/>
+  <xsl:param name="doctype-system" select="''"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+    </xsl:if>
+  </xsl:message>
+
+
+  <xsl:choose>
+    <xsl:when test="element-available('saxon:output')">
+      <!-- Saxon uses saxon:output -->
+      <saxon:output href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    doctype-public="{$doctype-public}"
+                    doctype-system="{$doctype-system}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="element-available('xalanredirect:write')">
+      <!-- Xalan uses xalanredirect -->
+      <xalanredirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </xalanredirect:write>
+    </xsl:when>
+    <xsl:when test="element-available('exsl:document')">
+      <exsl:document href="{$filename}"
+                     method="{$method}"
+                     encoding="{$encoding}"
+                     indent="{$indent}"
+                     doctype-public="{$doctype-public}"
+                     doctype-system="{$doctype-system}">
+        <xsl:copy-of select="$content"/>
+      </exsl:document>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="system-property('xsl:vendor')"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunk-common.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunk-common.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunk-common.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1200 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.0"
+                exclude-result-prefixes="doc">
+
+<xsl:output method="html"
+            encoding="ISO-8859-1"
+            indent="no"/>
+
+<xsl:param name="html.ext" select="'.html'"/>
+<doc:param name="html.ext" xmlns="">
+<refpurpose>Extension for chunked files</refpurpose>
+<refdescription>
+<para>The extension identified by <parameter>html.ext</parameter> will
+be used as the filename extension for chunks created by this stylesheet.
+</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="root.filename" select="'index'"/>
+<doc:param name="root.filename" xmlns="">
+<refpurpose>Filename for the root chunk</refpurpose>
+<refdescription>
+<para>The <parameter>root.filename</parameter> is the base filename for
+the chunk created for the root of each document processed.
+</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="base.dir" select="''"/>
+<doc:param name="base.dir" xmlns="">
+<refpurpose>Output directory for chunks</refpurpose>
+<refdescription>
+<para>If specified, the <literal>base.dir</literal> identifies
+the output directory for chunks. (If not specified, the output directory
+is system dependent.)</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="chunk.sections" select="'1'"/>
+<doc:param name="chunk.sections" xmlns="">
+<refpurpose>Create chunks for top-level sections in components?</refpurpose>
+<refdescription>
+<para>If non-zero, chunks will be created for top-level
+<sgmltag>sect1</sgmltag> and <sgmltag>section</sgmltag> elements in
+each component.
+</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="chunk.first.sections" select="'0'"/>
+<doc:param name="chunk.first.sections" xmlns="">
+<refpurpose>Create a chunk for the first top-level section in each component?</refpurpose>
+<refdescription>
+<para>If non-zero, a chunk will be created for the first top-level
+<sgmltag>sect1</sgmltag> or <sgmltag>section</sgmltag> elements in
+each component. Otherwise, that section will be part of the chunk for
+its parent.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<!-- What's a chunk?
+
+     appendix
+     article
+     bibliography  in article or book
+     book
+     chapter
+     colophon
+     glossary      in article or book
+     index         in article or book
+     part
+     preface
+     refentry
+     reference
+     sect1         if position()>1
+     section       if position()>1 && parent != section
+     set
+     setindex
+                                                                          -->
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+  <xsl:param name="node" select="."/>
+  <!-- returns 1 if $node is a chunk -->
+
+<!--
+  <xsl:message>
+    <xsl:text>chunk: </xsl:text>
+    <xsl:value-of select="name($node)"/>
+    <xsl:text>(</xsl:text>
+    <xsl:value-of select="$node/@id"/>
+    <xsl:text>)</xsl:text>
+    <xsl:text> cs: </xsl:text>
+    <xsl:value-of select="$chunk.sections"/>
+    <xsl:text> cfs: </xsl:text>
+    <xsl:value-of select="$chunk.first.sections"/>
+    <xsl:text> ps: </xsl:text>
+    <xsl:value-of select="count($node/parent::section)"/>
+    <xsl:text> prs: </xsl:text>
+    <xsl:value-of select="count($node/preceding-sibling::section)"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="$chunk.sections != 0
+                    and name($node)='sect1'
+                    and ($chunk.first.sections != 0
+                         or count($node/preceding-sibling::sect1) > 0)">
+      <xsl:text>1</xsl:text>
+    </xsl:when>
+    <xsl:when test="$chunk.sections != 0
+                    and name($node)='section'
+                    and ($chunk.first.sections != 0
+                         or (count($node/parent::section) = 0
+                             and count($node/preceding-sibling::section)))>0">
+      <xsl:text>1</xsl:text>
+    </xsl:when>
+    <xsl:when test="name($node)='preface'">1</xsl:when>
+    <xsl:when test="name($node)='chapter'">1</xsl:when>
+    <xsl:when test="name($node)='appendix'">1</xsl:when>
+    <xsl:when test="name($node)='article'">1</xsl:when>
+    <xsl:when test="name($node)='part'">1</xsl:when>
+    <xsl:when test="name($node)='reference'">1</xsl:when>
+    <xsl:when test="name($node)='refentry'">1</xsl:when>
+    <xsl:when test="name($node)='index'
+                    and (name($node/parent::*) = 'article'
+                         or name($node/parent::*) = 'book')">1</xsl:when>
+    <xsl:when test="name($node)='bibliography'
+                    and (name($node/parent::*) = 'article'
+                         or name($node/parent::*) = 'book')">1</xsl:when>
+    <xsl:when test="name($node)='glossary'
+                    and (name($node/parent::*) = 'article'
+                         or name($node/parent::*) = 'book')">1</xsl:when>
+    <xsl:when test="name($node)='colophon'">1</xsl:when>
+    <xsl:when test="name($node)='book'">1</xsl:when>
+    <xsl:when test="name($node)='set'">1</xsl:when>
+    <xsl:when test="name($node)='setindex'">1</xsl:when>
+    <xsl:otherwise>0</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="chunk-filename">
+  <xsl:param name="recursive" select="false()"/>
+
+  <!-- returns the filename of a chunk -->
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="dbhtml-filename">
+    <xsl:call-template name="dbhtml-filename"/>
+  </xsl:variable>
+
+  <xsl:variable name="filename">
+    <xsl:choose>
+      <xsl:when test="$dbhtml-filename != ''">
+        <xsl:value-of select="$dbhtml-filename"/>
+      </xsl:when>
+      <!-- if there's no dbhtml filename, and if we're to use IDs as -->
+      <!-- filenames, *and* this isn't the root node, then use the ID -->
+      <!-- to generate the filename. -->
+      <xsl:when test="@id and $use.id.as.filename != 0
+                      and . != /*">
+        <xsl:value-of select="@id"/>
+        <xsl:value-of select="$html.ext"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="dir">
+    <xsl:call-template name="dbhtml-dir"/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$ischunk='0'">
+      <!-- if called on something that isn't a chunk, walk up... -->
+      <xsl:choose>
+        <xsl:when test="count(parent::*)>0">
+          <xsl:apply-templates mode="chunk-filename" select="parent::*">
+            <xsl:with-param name="recursive" select="$recursive"/>
+          </xsl:apply-templates>
+        </xsl:when>
+        <!-- unless there is no up, in which case return "" -->
+        <xsl:otherwise></xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:when test="not($recursive) and $filename != ''">
+      <!-- if this chunk has an explicit name, use it -->
+      <xsl:if test="$dir != ''">
+        <xsl:value-of select="$dir"/>
+        <xsl:text>/</xsl:text>
+      </xsl:if>
+      <xsl:value-of select="$filename"/>
+    </xsl:when>
+
+    <xsl:when test="name(.)='set'">
+      <xsl:value-of select="$root.filename"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='book'">
+      <xsl:choose>
+        <xsl:when test="count(parent::*)>0">
+          <xsl:text>bk</xsl:text>
+          <xsl:number level="any" format="01"/>
+        </xsl:when>
+        <xsl:otherwise>
+	  <xsl:value-of select="$root.filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='article'">
+      <xsl:if test="/set">
+        <!-- in a set, make sure we inherit the right book info... -->
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:choose>
+        <xsl:when test="count(parent::*)>0">
+          <!-- if we aren't the root, name them numerically ... -->
+          <xsl:text>ar</xsl:text>
+          <xsl:number level="any" format="01" from="book"/>
+        </xsl:when>
+        <xsl:otherwise>
+	  <xsl:value-of select="$root.filename"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='preface'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>pr</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='chapter'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>ch</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='appendix'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>ap</xsl:text>
+      <xsl:number level="any" format="a" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='part'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>pt</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='reference'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>rn</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='refentry'">
+      <xsl:if test="parent::reference">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>re</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='colophon'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>co</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='sect1' or name(.)='section'">
+      <xsl:apply-templates mode="chunk-filename" select="parent::*">
+        <xsl:with-param name="recursive" select="true()"/>
+      </xsl:apply-templates>
+      <xsl:text>s</xsl:text>
+      <xsl:number level="any" format="01" from="preface|chapter|appendix"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='bibliography'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>bi</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='glossary'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>go</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='index'">
+      <xsl:if test="/set">
+        <xsl:apply-templates mode="chunk-filename" select="parent::*">
+          <xsl:with-param name="recursive" select="true()"/>
+        </xsl:apply-templates>
+      </xsl:if>
+      <xsl:text>ix</xsl:text>
+      <xsl:number level="any" format="01" from="book"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:when test="name(.)='setindex'">
+      <xsl:text>si</xsl:text>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:text>chunk-filename-error-</xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:number level="any" format="01" from="set"/>
+      <xsl:if test="not($recursive)">
+        <xsl:value-of select="$html.ext"/>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="href.target">
+  <xsl:param name="object" select="."/>
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="$object"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:apply-templates mode="chunk-filename" select="$object"/>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:text>#</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="$object"/>
+    </xsl:call-template>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="html.head">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <head>
+    <xsl:call-template name="head.content"/>
+    <xsl:call-template name="user.head.content"/>
+
+    <xsl:if test="$home">
+      <link rel="home">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$home"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$home"
+                               mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$up">
+      <link rel="up">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$up"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$up" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$prev">
+      <link rel="previous">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$prev"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$prev" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+
+    <xsl:if test="$next">
+      <link rel="next">
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$next"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:attribute name="title">
+          <xsl:apply-templates select="$next" mode="object.title.markup.textonly"/>
+        </xsl:attribute>
+      </link>
+    </xsl:if>
+  </head>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="header.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:if test="$suppress.navigation = '0'">
+    <div class="navheader">
+      <table width="100%" summary="Navigation header">
+        <tr>
+          <th colspan="3" align="center">
+            <xsl:apply-templates select="." mode="object.title.markup"/>
+          </th>
+        </tr>
+        <tr>
+          <td width="20%" align="left">
+            <xsl:if test="count($prev)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$prev"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key">nav-prev</xsl:with-param>
+                </xsl:call-template>
+              </a>
+            </xsl:if>
+            <xsl:text>&#160;</xsl:text>
+          </td>
+          <th width="60%" align="center">
+            <xsl:choose>
+              <xsl:when test="count($up) > 0 and $up != $home">
+                <xsl:apply-templates select="$up" mode="object.title.markup"/>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </th>
+          <td width="20%" align="right">
+            <xsl:text>&#160;</xsl:text>
+            <xsl:if test="count($next)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$next"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key">nav-next</xsl:with-param>
+                </xsl:call-template>
+              </a>
+            </xsl:if>
+          </td>
+        </tr>
+      </table>
+      <hr/>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="footer.navigation">
+  <xsl:param name="prev" select="/foo"/>
+  <xsl:param name="next" select="/foo"/>
+  <xsl:variable name="home" select="/*[1]"/>
+  <xsl:variable name="up" select="parent::*"/>
+
+  <xsl:if test="$suppress.navigation = '0'">
+    <div class="navfooter">
+      <hr/>
+      <table width="100%" summary="Navigation footer">
+        <tr>
+          <td width="40%" align="left">
+            <xsl:if test="count($prev)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$prev"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key">nav-prev</xsl:with-param>
+                </xsl:call-template>
+              </a>
+            </xsl:if>
+            <xsl:text>&#160;</xsl:text>
+          </td>
+          <td width="20%" align="center">
+            <xsl:choose>
+              <xsl:when test="$home != .">
+                <a>
+                  <xsl:attribute name="href">
+                    <xsl:call-template name="href.target">
+                      <xsl:with-param name="object" select="$home"/>
+                    </xsl:call-template>
+                  </xsl:attribute>
+                  <xsl:call-template name="gentext">
+                    <xsl:with-param name="key">nav-home</xsl:with-param>
+                  </xsl:call-template>
+                </a>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </td>
+          <td width="40%" align="right">
+            <xsl:text>&#160;</xsl:text>
+            <xsl:if test="count($next)>0">
+              <a>
+                <xsl:attribute name="href">
+                  <xsl:call-template name="href.target">
+                    <xsl:with-param name="object" select="$next"/>
+                  </xsl:call-template>
+                </xsl:attribute>
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key">nav-next</xsl:with-param>
+                </xsl:call-template>
+              </a>
+            </xsl:if>
+          </td>
+        </tr>
+
+        <tr>
+          <td width="40%" align="left">
+            <xsl:apply-templates select="$prev" mode="object.title.markup"/>
+            <xsl:text>&#160;</xsl:text>
+          </td>
+          <td width="20%" align="center">
+            <xsl:choose>
+              <xsl:when test="count($up)>0">
+                <a>
+                  <xsl:attribute name="href">
+                    <xsl:call-template name="href.target">
+                      <xsl:with-param name="object" select="$up"/>
+                    </xsl:call-template>
+                  </xsl:attribute>
+                  <xsl:call-template name="gentext">
+                    <xsl:with-param name="key">nav-up</xsl:with-param>
+                  </xsl:call-template>
+                </a>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </td>
+          <td width="40%" align="right">
+            <xsl:text>&#160;</xsl:text>
+            <xsl:apply-templates select="$next" mode="object.title.markup"/>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+  <xsl:choose>
+    <xsl:when test="$chunk.sections = 0">
+      <xsl:call-template name="chunk-no-sections"/>
+    </xsl:when>
+    <xsl:when test="$chunk.first.sections = 0">
+      <xsl:call-template name="chunk-first-section-with-parent"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="chunk-all-top-level-sections"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process-chunk">
+  <xsl:param name="prev" select="."/>
+  <xsl:param name="next" select="."/>
+
+  <xsl:variable name="ischunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+
+  <xsl:variable name="chunkfn">
+    <xsl:if test="$ischunk='1'">
+      <xsl:apply-templates mode="chunk-filename" select="."/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:if test="$ischunk='0'">
+    <xsl:message>
+      <xsl:text>Error </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:text> is not a chunk!</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <xsl:variable name="filename">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$base.dir"/>
+      <xsl:with-param name="base.name" select="$chunkfn"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="chunk-element-content">
+        <xsl:with-param name="prev" select="$prev"/>
+        <xsl:with-param name="next" select="$next"/>
+      </xsl:call-template>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-first-section-with-parent">
+  <xsl:variable name="prev"
+    select="(preceding::book[1]
+             |preceding::preface[1]
+             |preceding::chapter[1]
+             |preceding::appendix[1]
+             |preceding::part[1]
+             |preceding::reference[1]
+             |preceding::refentry[1]
+             |preceding::colophon[1]
+             |preceding::sect1[name(preceding-sibling::*[1]) = 'sect1'][1]
+             |preceding::section[name(preceding-sibling::*[1]) = 'section'
+                                 and name(parent::*) != 'section'][1]
+             |preceding::article[1]
+             |preceding::bibliography[1]
+             |preceding::glossary[1]
+             |preceding::index[1]
+             |preceding::setindex[1]
+             |ancestor::set
+             |ancestor::book[1]
+             |ancestor::preface[1]
+             |ancestor::chapter[1]
+             |ancestor::appendix[1]
+             |ancestor::part[1]
+             |ancestor::reference[1]
+             |ancestor::article[1])[last()]"/>
+
+  <xsl:variable name="next"
+    select="(following::book[1]
+             |following::preface[1]
+             |following::chapter[1]
+             |following::appendix[1]
+             |following::part[1]
+             |following::reference[1]
+             |following::refentry[1]
+             |following::colophon[1]
+             |following::sect1[1]
+             |following::section[name(parent::*) != 'section'][1]
+             |following::bibliography[1]
+             |following::glossary[1]
+             |following::index[1]
+             |following::article[1]
+             |following::setindex[1]
+             |descendant::book[1]
+             |descendant::preface[1]
+             |descendant::chapter[1]
+             |descendant::appendix[1]
+             |descendant::article[1]
+             |descendant::bibliography[1]
+             |descendant::glossary[1]
+             |descendant::index[1]
+             |descendant::colophon[1]
+             |descendant::setindex[1]
+             |descendant::part[1]
+             |descendant::reference[1]
+             |descendant::refentry[1]
+             |descendant::sect1[2]
+             |descendant::section[name(parent::*) != 'section'][2])[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-all-top-level-sections">
+  <xsl:variable name="prev"
+    select="(preceding::book[1]
+             |preceding::preface[1]
+             |preceding::chapter[1]
+             |preceding::appendix[1]
+             |preceding::part[1]
+             |preceding::reference[1]
+             |preceding::refentry[1]
+             |preceding::colophon[1]
+             |preceding::sect1[1]
+             |preceding::section[name(parent::*) != 'section'][1]
+             |preceding::article[1]
+             |preceding::bibliography[1]
+             |preceding::glossary[1]
+             |preceding::index[1]
+             |preceding::setindex[1]
+             |ancestor::set
+             |ancestor::book[1]
+             |ancestor::preface[1]
+             |ancestor::chapter[1]
+             |ancestor::appendix[1]
+             |ancestor::part[1]
+             |ancestor::reference[1]
+             |ancestor::article[1])[last()]"/>
+
+  <xsl:variable name="next"
+    select="(following::book[1]
+             |following::preface[1]
+             |following::chapter[1]
+             |following::appendix[1]
+             |following::part[1]
+             |following::reference[1]
+             |following::refentry[1]
+             |following::colophon[1]
+             |following::sect1[1]
+             |following::section[name(parent::*) != 'section'][1]
+             |following::bibliography[1]
+             |following::glossary[1]
+             |following::index[1]
+             |following::article[1]
+             |following::setindex[1]
+             |descendant::book[1]
+             |descendant::preface[1]
+             |descendant::chapter[1]
+             |descendant::appendix[1]
+             |descendant::article[1]
+             |descendant::bibliography[1]
+             |descendant::glossary[1]
+             |descendant::index[1]
+             |descendant::colophon[1]
+             |descendant::setindex[1]
+             |descendant::part[1]
+             |descendant::reference[1]
+             |descendant::refentry[1]
+             |descendant::sect1[1]
+             |descendant::section[name(parent::*) != 'section'][1])[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="chunk-no-sections">
+  <xsl:variable name="prev"
+    select="(preceding::book[1]
+             |preceding::preface[1]
+             |preceding::chapter[1]
+             |preceding::appendix[1]
+             |preceding::part[1]
+             |preceding::reference[1]
+             |preceding::refentry[1]
+             |preceding::colophon[1]
+             |preceding::article[1]
+             |preceding::bibliography[1]
+             |preceding::glossary[1]
+             |preceding::index[1]
+             |preceding::setindex[1]
+             |ancestor::set
+             |ancestor::book[1]
+             |ancestor::preface[1]
+             |ancestor::chapter[1]
+             |ancestor::appendix[1]
+             |ancestor::part[1]
+             |ancestor::reference[1]
+             |ancestor::article[1])[last()]"/>
+
+  <xsl:variable name="next"
+    select="(following::book[1]
+             |following::preface[1]
+             |following::chapter[1]
+             |following::appendix[1]
+             |following::part[1]
+             |following::reference[1]
+             |following::refentry[1]
+             |following::colophon[1]
+             |following::bibliography[1]
+             |following::glossary[1]
+             |following::index[1]
+             |following::article[1]
+             |following::setindex[1]
+             |descendant::book[1]
+             |descendant::preface[1]
+             |descendant::chapter[1]
+             |descendant::appendix[1]
+             |descendant::article[1]
+             |descendant::bibliography[1]
+             |descendant::glossary[1]
+             |descendant::index[1]
+             |descendant::colophon[1]
+             |descendant::setindex[1]
+             |descendant::part[1]
+             |descendant::reference[1]
+             |descendant::refentry[1])[1]"/>
+
+  <xsl:call-template name="process-chunk">
+    <xsl:with-param name="prev" select="$prev"/>
+    <xsl:with-param name="next" select="$next"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk-element-content">
+  <xsl:param name="prev"></xsl:param>
+  <xsl:param name="next"></xsl:param>
+
+  <html>
+    <xsl:call-template name="html.head">
+      <xsl:with-param name="prev" select="$prev"/>
+      <xsl:with-param name="next" select="$next"/>
+    </xsl:call-template>
+
+    <body xsl:use-attribute-sets="body.attrs">
+      <xsl:call-template name="user.header.navigation"/>
+
+      <xsl:call-template name="header.navigation">
+	<xsl:with-param name="prev" select="$prev"/>
+	<xsl:with-param name="next" select="$next"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.header.content"/>
+
+      <xsl:apply-imports/>
+
+      <xsl:call-template name="user.footer.content"/>
+
+      <xsl:call-template name="footer.navigation">
+	<xsl:with-param name="prev" select="$prev"/>
+	<xsl:with-param name="next" select="$next"/>
+      </xsl:call-template>
+
+      <xsl:call-template name="user.footer.navigation"/>
+    </body>
+  </html>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+  <xsl:choose>
+    <xsl:when test="$rootid != ''">
+      <xsl:choose>
+        <xsl:when test="count(id($rootid)) = 0">
+          <xsl:message terminate="yes">
+            <xsl:text>ID '</xsl:text>
+            <xsl:value-of select="$rootid"/>
+            <xsl:text>' not found in document.</xsl:text>
+          </xsl:message>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="id($rootid)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="/" mode="process.root"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="set|book|part|preface|chapter|appendix
+                     |article
+                     |reference|refentry
+                     |book/glossary|article/glossary
+                     |book/bibliography|article/bibliography
+                     |colophon">
+  <xsl:call-template name="process-chunk-element"/>
+</xsl:template>
+
+<xsl:template match="sect1|section[local-name(parent::*) != 'section']">
+<!--
+  <xsl:message>
+    <xsl:text>cs: </xsl:text>
+    <xsl:value-of select="$chunk.sections"/>
+    <xsl:text> cfs: </xsl:text>
+    <xsl:value-of select="$chunk.first.sections"/>
+    <xsl:text> pos: </xsl:text>
+    <xsl:value-of select="position()"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="$chunk.sections = 0">
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:when test="$chunk.first.sections = 0">
+      <xsl:choose>
+        <xsl:when test="count(preceding-sibling::section) > 0
+                        or count(preceding-sibling::sect1) > 0">
+          <xsl:call-template name="process-chunk-element"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-imports/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="process-chunk-element"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="setindex
+                     |book/index
+                     |article/index">
+  <!-- some implementations use completely empty index tags to indicate -->
+  <!-- where an automatically generated index should be inserted. so -->
+  <!-- if the index is completely empty, skip it. -->
+  <xsl:if test="count(*)>0 or $generate.index != '0'">
+    <xsl:call-template name="process-chunk-element"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="in.other.chunk">
+  <xsl:param name="chunk" select="."/>
+  <xsl:param name="node" select="."/>
+
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:text>in.other.chunk: </xsl:text>
+    <xsl:value-of select="name($chunk)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="name($node)"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$chunk = $node"/>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$is.chunk"/>
+  </xsl:message>
+-->
+
+  <xsl:choose>
+    <xsl:when test="$chunk = $node">0</xsl:when>
+    <xsl:when test="$is.chunk = 1">1</xsl:when>
+    <xsl:when test="count($node) = 0">0</xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="in.other.chunk">
+        <xsl:with-param name="chunk" select="$chunk"/>
+        <xsl:with-param name="node" select="$node/parent::*"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="count.footnotes.in.this.chunk">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="footnotes" select="$node//footnote"/>
+  <xsl:param name="count" select="0"/>
+
+<!--
+  <xsl:message>
+    <xsl:text>count.footnotes.in.this.chunk: </xsl:text>
+    <xsl:value-of select="name($node)"/>
+  </xsl:message>
+-->
+
+  <xsl:variable name="in.other.chunk">
+    <xsl:call-template name="in.other.chunk">
+      <xsl:with-param name="chunk" select="$node"/>
+      <xsl:with-param name="node" select="$footnotes[1]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($footnotes) = 0">
+      <xsl:value-of select="$count"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$in.other.chunk != 0">
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$footnotes[1]/ancestor::table
+                        |$footnotes[1]/ancestor::informaltable">
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="count.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+            <xsl:with-param name="count" select="$count + 1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes.in.this.chunk">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="footnotes" select="$node//footnote"/>
+
+<!--
+  <xsl:message>process.footnotes.in.this.chunk</xsl:message>
+-->
+
+  <xsl:variable name="in.other.chunk">
+    <xsl:call-template name="in.other.chunk">
+      <xsl:with-param name="chunk" select="$node"/>
+      <xsl:with-param name="node" select="$footnotes[1]"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="count($footnotes) = 0">
+      <!-- nop -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="$in.other.chunk != 0">
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:when test="$footnotes[1]/ancestor::table
+                        |$footnotes[1]/ancestor::informaltable">
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="$footnotes[1]"
+                               mode="process.footnote.mode"/>
+          <xsl:call-template name="process.footnotes.in.this.chunk">
+            <xsl:with-param name="node" select="$node"/>
+            <xsl:with-param name="footnotes"
+                            select="$footnotes[position() &gt; 1]"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="process.footnotes">
+  <xsl:variable name="footnotes" select=".//footnote"/>
+  <xsl:variable name="fcount">
+    <xsl:call-template name="count.footnotes.in.this.chunk">
+      <xsl:with-param name="node" select="."/>
+      <xsl:with-param name="footnotes" select="$footnotes"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+<!--
+  <xsl:message>
+    <xsl:value-of select="name(.)"/>
+    <xsl:text> fcount: </xsl:text>
+    <xsl:value-of select="$fcount"/>
+  </xsl:message>
+-->
+
+  <!-- Only bother to do this if there's at least one non-table footnote -->
+  <xsl:if test="$fcount &gt; 0">
+    <div class="footnotes">
+      <br/>
+      <hr width="100" align="left"/>
+      <xsl:call-template name="process.footnotes.in.this.chunk">
+        <xsl:with-param name="node" select="."/>
+        <xsl:with-param name="footnotes" select="$footnotes"/>
+      </xsl:call-template>
+    </div>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.chunk.footnotes">
+  <xsl:variable name="is.chunk">
+    <xsl:call-template name="chunk"/>
+  </xsl:variable>
+  <xsl:if test="$is.chunk = 1">
+    <xsl:call-template name="process.footnotes"/>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunk.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunk.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunk.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:saxon="http://icl.com/saxon"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.1"
+                exclude-result-prefixes="doc"
+                extension-element-prefixes="saxon xalanredirect lxslt">
+
+<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunk.xsl -->
+
+<xsl:import href="autoidx.xsl"/>
+<xsl:include href="chunk-common.xsl"/>
+<xsl:include href="chunker.xsl"/>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunker.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunker.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/old/chunker.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,163 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:saxon="http://icl.com/saxon"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.1"
+                exclude-result-prefixes="doc"
+                extension-element-prefixes="saxon xalanredirect lxslt">
+
+<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunker.xsl -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan doesn't make the chunks relative -->
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>Chunking isn't supported with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+      <xsl:if test="@id">
+        <xsl:text>(</xsl:text>
+        <xsl:value-of select="@id"/>
+        <xsl:text>)</xsl:text>
+      </xsl:if>
+    </xsl:if>
+  </xsl:message>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON 6.2')">
+      <!-- Saxon 6.2.x uses xsl:document -->
+      <xsl:document href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </xsl:document>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon uses saxon:output -->
+      <saxon:output file="{$filename}"
+                    href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan uses xalanredirect -->
+      <xalanredirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </xalanredirect:write>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk.with.doctype">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="$default.encoding"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="doctype-public" select="''"/>
+  <xsl:param name="doctype-system" select="''"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+    </xsl:if>
+  </xsl:message>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON 6.2')">
+      <!-- Saxon 6.2.x uses xsl:document -->
+      <xsl:document href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    doctype-public="{$doctype-public}"
+                    doctype-system="{$doctype-system}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </xsl:document>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'SAXON')">
+      <!-- Saxon uses saxon:output -->
+      <saxon:output file="{$filename}"
+                    href="{$filename}"
+                    method="{$method}"
+                    encoding="{$encoding}"
+                    indent="{$indent}"
+                    doctype-public="{$doctype-public}"
+                    doctype-system="{$doctype-system}"
+                    saxon:character-representation="{$saxon.character.representation}">
+        <xsl:copy-of select="$content"/>
+      </saxon:output>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache')">
+      <!-- Xalan uses xalanredirect -->
+      <xalanredirect:write file="{$filename}">
+        <xsl:copy-of select="$content"/>
+      </xalanredirect:write>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- it doesn't matter since we won't be making chunks... -->
+      <xsl:message terminate="yes">
+        <xsl:text>Can't make chunks with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+        <xsl:text>'s processor.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/param.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/param.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/param.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1152 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: param.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id: param.xsl,v 1.2 2001/06/23 17:06:39 veillard Exp $
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>HTML Parameter Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes each of the HTML Stylesheet parameters.
+These are the <quote>easily customizable</quote> parts of the stylesheet.
+If you want to specify an alternate value for one or more of these
+parameters, you can do so in a <quote>driver</quote> stylesheet.</para>
+
+<para>For example, if you want to change the <literal>html.stylesheet</literal>
+to <filename>reference.css</filename>, you might create a driver
+stylesheet like this:</para>
+
+<programlisting><![CDATA[<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+  <xsl:import href="/path/to/html/docbook.xsl"/>
+
+  <xsl:param name="html.stylesheet">reference.css</xsl:param>
+
+</xsl:stylesheet>]]></programlisting>
+
+<para>Naturally, you have to change the
+<sgmltag class='attribute'>href</sgmltag> attribute on
+<literal>&lt;xsl:import&gt;</literal>
+to point to <filename>docbook.xsl</filename>
+on your system. (Or <filename>chunk.xsl</filename>, if you're using
+chunking.)</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+<xsl:param name="author.othername.in.middle" select="1" doc:type='boolean'/>
+
+<doc:param name="author.othername.in.middle" xmlns="">
+<refpurpose>Is <sgmltag>othername</sgmltag> in <sgmltag>author</sgmltag> a
+middle name?</refpurpose>
+<refdescription>
+<para>If true (non-zero), the <sgmltag>othername</sgmltag> of an <sgmltag>author</sgmltag>
+appears between the <sgmltag>firstname</sgmltag> and
+<sgmltag>surname</sgmltag>.  Otherwise, <sgmltag>othername</sgmltag>
+is suppressed.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="html.stylesheet" select="''" doc:type='string'/>
+
+<doc:param name="html.stylesheet" xmlns="">
+<refpurpose>Name of the stylesheet to use in the generated HTML</refpurpose>
+<refdescription>
+<para>The name of the stylesheet to place in the HTML <sgmltag>LINK</sgmltag>
+tag, or the empty string to suppress the stylesheet <sgmltag>LINK</sgmltag>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="html.stylesheet.type" doc:type='string'>text/css</xsl:param>
+
+<doc:param name="html.stylesheet.type" xmlns="">
+<refpurpose>The type of the stylesheet used in the generated HTML</refpurpose>
+<refdescription>
+<para>The type of the stylesheet to place in the HTML <sgmltag>link</sgmltag> tag.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="html.base" doc:type='uri'></xsl:param>
+
+<doc:param name="html.base" xmlns="">
+<refpurpose>An HTML base URI</refpurpose>
+<refdescription>
+<para>If html.base is set, it is used for the <sgmltag>BASE</sgmltag>
+element in the <sgmltag>HEAD</sgmltag> of the HTML documents.
+This is useful for dynamically served HTML where the base URI needs
+to be shifted.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="ulink.target" select="'_top'" doc:type='string'/>
+
+<doc:param name="ulink.target" xmlns="">
+<refpurpose>The HTML anchor target for ULinks</refpurpose>
+<refdescription>
+<para>If <parameter>ulink.target</parameter> is set, its value will
+be used for the <sgmltag class='attribute'>target</sgmltag> attribute
+on anchors generated for <sgmltag>ulink</sgmltag>s.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="refentry.xref.manvolnum" select="1" doc:type='boolean'/>
+
+<doc:param name="refentry.xref.manvolnum" xmlns="">
+<refpurpose>Output <sgmltag>manvolnum</sgmltag> as part of 
+<sgmltag>refentry</sgmltag> cross-reference?</refpurpose>
+<refdescription>
+<para>if true (non-zero), the <sgmltag>manvolnum</sgmltag> is used when cross-referencing
+<sgmltag>refentry</sgmltag>s, either with <sgmltag>xref</sgmltag>
+or <sgmltag>citerefentry</sgmltag>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="show.comments" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="show.comments" xmlns="">
+<refpurpose>Display <sgmltag>comment</sgmltag> elements?</refpurpose>
+<refdescription>
+<para>If true (non-zero), comments will be displayed, otherwise they are suppressed.
+Comments here refers to the <sgmltag>comment</sgmltag> element,
+which will be renamed <sgmltag>remark</sgmltag> in DocBook V4.0,
+not XML comments (&lt;-- like this --&gt;) which are unavailable.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="funcsynopsis.style"
+           doc:type='list'
+           doc:list='ansi kr'>kr</xsl:param>
+
+<doc:param name="funcsynopsis.style" xmlns="">
+<refpurpose>What style of 'FuncSynopsis' should be generated?</refpurpose>
+<refdescription>
+<para>If <varname>funcsynopsis.style</varname> is <literal>ansi</literal>,
+ANSI-style function synopses are generated for a
+<sgmltag>funcsynopsis</sgmltag>, otherwise K&amp;R-style
+function synopses are generated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="funcsynopsis.decoration" select="1" doc:type='boolean'/>
+
+<doc:param name="funcsynopsis.decoration" xmlns="">
+<refpurpose>Decorate elements of a FuncSynopsis?</refpurpose>
+<refdescription>
+<para>If true (non-zero), elements of the FuncSynopsis will be decorated (e.g. bold or
+italic).  The decoration is controlled by functions that can be redefined
+in a customization layer.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="function.parens" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="function.parens" xmlns="">
+<refpurpose>Generate parens after a function?</refpurpose>
+<refdescription>
+<para>If not 0, the formatting of
+a <sgmltag class="starttag">function</sgmltag> element will include
+generated parenthesis.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="refentry.generate.name" select="1" doc:type='boolean'/>
+
+<doc:param name="refentry.generate.name" xmlns="">
+<refpurpose>Output NAME header before 'RefName'(s)?</refpurpose>
+<refdescription>
+<para>If true (non-zero), a "NAME" section title is output before the list
+of 'RefName's.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.graphics" select="0" doc:type='boolean'/>
+
+<doc:param name="admon.graphics" xmlns="">
+<refpurpose>Use graphics in admonitions?</refpurpose>
+<refdescription>
+<para>If true (non-zero), admonitions are presented in an alternate style that uses
+a graphic.  Default graphics are provided in the distribution.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.graphics.path" doc:type='string'>../images/</xsl:param>
+
+<doc:param name="admon.graphics.path" xmlns="">
+<refpurpose>Path to admonition graphics</refpurpose>
+<refdescription>
+<para>Sets the path, probably relative to the directory where the HTML
+files are created, to the admonition graphics.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.graphics.extension" select="'.png'" doc:type='string'/>
+
+<doc:param name="admon.graphics.extension" xmlns="">
+<refpurpose>Extension for admonition graphics</refpurpose>
+<refdescription>
+<para>Sets the extension to use on admonition graphics.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.style" doc:type='string'>
+  <xsl:text>margin-left: 0.5in; margin-right: 0.5in;</xsl:text>
+</xsl:param>
+
+<doc:param name="admon.style" xmlns="">
+<refpurpose>CSS style attributes for admonitions</refpurpose>
+<refdescription>
+<para>Specifies the value of the <sgmltag class="attribute">STYLE</sgmltag>
+attribute that should be added to admonitions.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="section.autolabel" select="0" doc:type='boolean'/>
+
+<doc:param name="section.autolabel" xmlns="">
+<refpurpose>Are sections enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled sections will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="section.label.includes.component.label" select="0"
+           doc:type='boolean'/>
+
+<doc:param name="section.label.includes.component.label" xmlns="">
+<refpurpose>Do section labels include the component label?</refpurpose>
+<refdescription>
+<para>If true (non-zero), section labels are prefixed with the label of the
+component that contains them.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="chapter.autolabel" select="1" doc:type='boolean'/>
+<xsl:param name="appendix.autolabel" select="1" doc:type='boolean'/>
+
+<doc:param name="chapter.autolabel" xmlns="">
+<refpurpose>Are chapters and appendixes enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled chapters and appendixes will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="preface.autolabel" select="0" doc:type='boolean'/>
+
+<doc:param name="preface.autolabel" xmlns="">
+<refpurpose>Are prefaces enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled prefaces will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="part.autolabel" select="1" doc:type='boolean'/>
+
+<doc:param name="part.autolabel" xmlns="">
+<refpurpose>Are parts and references enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled parts and references will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="qandadiv.autolabel" select="1" doc:type='boolean'/>
+
+<doc:param name="qandadiv.autolabel" xmlns="">
+<refpurpose>Are divisions in QAndASets enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled qandadivs will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="qanda.inherit.numeration" select="1" doc:type='boolean'/>
+
+<doc:param name="qanda.inherit.numeration" xmlns="">
+<refpurpose>Does enumeration of QandASet components inherit the numeration of parent elements?</refpurpose>
+<refdescription>
+<para>If true (non-zero), numbered QandADiv elements and Questions and Answers inherit
+the numeration of the ancestors of the QandASet.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="qanda.defaultlabel"
+           doc:type='boolean'
+           doc:list='qanda number none'>number</xsl:param>
+
+<doc:param name="qanda.defaultlabel" xmlns="">
+<refpurpose>Sets the default for defaultlabel on QandASet.</refpurpose>
+<refdescription>
+<para>If no defaultlabel attribute is specified on a QandASet, this
+value is used. It must be one of the legal values for the defaultlabel
+attribute.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.qandaset.toc" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="generate.qandaset.toc" xmlns="">
+<refpurpose>Is a Table of Contents created for QandASets?</refpurpose>
+<refdescription>
+<para>If true (non-zero), a ToC is constructed for QandASets.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.qandadiv.toc" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="generate.qandadiv.toc" xmlns="">
+<refpurpose>Is a Table of Contents created for QandADivs?</refpurpose>
+<refdescription>
+<para>If true (non-zero), a ToC is constructed for QandADivs.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="biblioentry.item.separator" doc:type='string'>. </xsl:param>
+
+<doc:param name="biblioentry.item.separator" xmlns="">
+<refpurpose>Text to separate bibliography entries</refpurpose>
+<refdescription>
+<para>Text to separate bibliography entries
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="toc.section.depth"
+           doc:type='integer'
+           doc:min='1'
+           doc:max='10'>2</xsl:param>
+
+<doc:param name="toc.section.depth" xmlns="">
+<refpurpose>How deep should recursive <sgmltag>section</sgmltag>s appear
+in the TOC?</refpurpose>
+<refdescription>
+<para>Specifies the depth to which recursive sections should appear in the
+TOC.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="using.chunker" select="0" doc:type='boolean'/>
+
+<doc:param name="using.chunker" xmlns="">
+<refpurpose>Will the output be chunked?</refpurpose>
+<refdescription>
+<para>In addition to providing chunking, the chunker can cleanup a
+number of XML to HTML issues. If the chunker is not being used, the
+stylesheets try to avoid producing results that will not appear properly
+in browsers.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.component.toc" select="1" doc:type='boolean'/>
+
+<doc:param name="generate.component.toc" xmlns="">
+<refpurpose>Should TOCs be genereated in components (Chapters, Appendixes, etc.)?</refpurpose>
+<refdescription>
+<para>If true (non-zero), they are.
+</para>
+</refdescription>
+</doc:param>
+<!-- ==================================================================== -->
+<xsl:param name="generate.division.toc" select="1" doc:type='boolean'/>
+
+<doc:param name="generate.division.toc" xmlns="">
+<refpurpose>Should TOCs be genereated in divisions (Books, Parts, etc.)?</refpurpose>
+<refdescription>
+<para>If true (non-zero), they are.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="link.mailto.url" doc:type='string'></xsl:param>
+
+<doc:param name="link.mailto.url" xmlns="">
+<refpurpose>Mailto URL for the LINK REL=made HTML HEAD element</refpurpose>
+<refdescription>
+<para>If not the empty string, this address will be used for the
+REL=made <sgmltag>LINK</sgmltag> element in the HTML <sgmltag>HEAD</sgmltag>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="graphic.default.extension" doc:type='string'></xsl:param>
+
+<doc:param name="graphic.default.extension" xmlns="">
+<refpurpose>Default extension for graphic filenames</refpurpose>
+<refdescription>
+<para>If a <sgmltag>graphic</sgmltag> or <sgmltag>mediaobject</sgmltag>
+includes a reference to a filename that does not include an extension,
+and the <sgmltag class="attribute">format</sgmltag> attribute is
+<emphasis>unspecified</emphasis>, the default extension will be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="toc.list.type"
+           doc:type='list'
+           doc:list='dl ul ol'>dl</xsl:param>
+
+<doc:param name="toc.list.type" xmlns="">
+<refpurpose>Type of HTML list element to use for Tables of Contents</refpurpose>
+<refdescription>
+<para>When an automatically generated Table of Contents (or List of Titles)
+is produced, this HTML element will be used to make the list.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="check.idref" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="check.idref" xmlns="">
+<refpurpose>Test the target of IDREF attributes?</refpurpose>
+<refdescription>
+<para>If 1, the target of IDREF attributes are tested for presence
+(and uniqueness). This can be very expensive in large documents.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="use.id.function" doc:type='boolean' select="'1'"/>
+
+<doc:param name="use.id.function" xmlns="">
+<refpurpose>Use the XPath id() function to find link targets?</refpurpose>
+<refdescription>
+<para>If 1, the stylesheets use the <function>id()</function> function
+to find the targets of cross reference elements. This is more
+efficient, but only works if your XSLT processor implements the
+<function>id()</function> function, naturally.</para>
+<para>THIS PARAMETER IS NOT SUPPORTED. IT IS ALWAYS ASSUMED TO BE 1.
+SEE xref.xsl IF YOU NEED TO TURN IT OFF.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="spacing.paras" doc:type='boolean' select="'0'"/>
+
+<doc:param name="spacing.paras" xmlns="">
+<refpurpose>Insert additional &lt;p&gt; elements for spacing?</refpurpose>
+<refdescription>
+<para>When non-zero, additional, empty paragraphs are inserted in
+several contexts (for example, around informal figures), to create a
+more pleasing visual appearance in many browsers.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:attribute-set name="body.attrs">
+  <xsl:attribute name="bgcolor">white</xsl:attribute>
+  <xsl:attribute name="text">black</xsl:attribute>
+  <xsl:attribute name="link">#0000FF</xsl:attribute>
+  <xsl:attribute name="vlink">#840084</xsl:attribute>
+  <xsl:attribute name="alink">#0000FF</xsl:attribute>
+</xsl:attribute-set>
+
+<doc:attribute-set name="body.attrs" xmlns="">
+<refpurpose>Additional attributes for the HTML body tag</refpurpose>
+<refdescription>
+<para>The attributes defined by this attribute set are added to the
+HTML &lt;body&gt; tag.
+</para>
+</refdescription>
+</doc:attribute-set>
+
+<!-- ==================================================================== -->
+<xsl:param name="css.decoration" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="css.decoration" xmlns="">
+<refpurpose>Enable CSS decoration of elements</refpurpose>
+<refdescription>
+<para>
+If <literal>css.decoration</literal> is turned on, then HTML elements
+produced by the
+stylesheet may be decorated with STYLE attributes.  For example, the
+LI tags produced for list items may include a fragment of CSS in the
+STYLE attribute which sets the CSS property "list-style-type".
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="show.revisionflag" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="show.revisionflag" xmlns="">
+<refpurpose>Enable decoration of elements that have a revisionflag</refpurpose>
+<refdescription>
+<para>
+If <literal>show.revisionflag</literal> is turned on, then the stylesheets
+may produce additional markup designed to allow a CSS stylesheet to
+highlight elements that have specific revisionflag settings.</para>
+
+<para>The markup inserted will be usually be either a &lt;span> or &lt;div>
+with an appropriate <literal>class</literal> attribute. (The value of
+the class attribute will be the same as the value of the revisionflag
+attribute). In some contexts, for example tables, where extra markup
+would be structurally illegal, the class attribute will be added to the
+appropriate container element.</para>
+
+<para>In general, the stylesheets only test for revisionflag in contexts
+where an importing stylesheet would have to redefine whole templates.
+Most of the revisionflag processing is expected to be done by another
+stylesheet, for example <filename>changebars.xsl</filename>.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="suppress.navigation" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="suppress.navigation" xmlns="">
+<refpurpose>Disable header and footer navigation</refpurpose>
+<refdescription>
+<para>
+If <literal>suppress.navigation</literal> is turned on, header and
+footer navigation will be suppressed.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="rootid" select="''" doc:type='string'/>
+
+<doc:param name="rootid" xmlns="">
+<refpurpose>Specify the root element to format</refpurpose>
+<refdescription>
+<para>If <parameter>rootid</parameter> is specified, it must be the
+value of an ID that occurs in the document being formatted. The entire
+document will be loaded and parsed, but formatting will begin at the
+element identified, rather than at the root. For example, this allows
+you to process only chapter 4 of a book.</para>
+<para>Because the entire document is available to the processor, automatic
+numbering, cross references, and other dependencies are correctly
+resolved.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.list.table" select="'1'" doc:type='boolean'/>
+
+<doc:param name="callout.list.table" xmlns="">
+<refpurpose>Present callout lists using a table?</refpurpose>
+<refdescription>
+<para>The default presentation of <sgmltag>CalloutList</sgmltag>s uses
+an HTML <sgmltag>DL</sgmltag>. Some browsers don't align DLs very well
+if <parameter>callout.graphics</parameter> are used. With this option
+turned on, <sgmltag>CalloutList</sgmltag>s are presented in an HTML
+<sgmltag>TABLE</sgmltag>, which usually results in better alignment
+of the callout number with the callout description.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics" select="'1'" doc:type='boolean'/>
+
+<doc:param name="callout.graphics" xmlns="">
+<refpurpose>Use graphics for callouts?</refpurpose>
+<refdescription>
+<para>If non-zero, callouts are presented with graphics (e.g., reverse-video
+circled numbers instead of "(1)", "(2)", etc.).
+Default graphics are provided in the distribution.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.extension" select="'.png'" doc:type='string'/>
+
+<doc:param name="callout.graphics.extension" xmlns="">
+<refpurpose>Extension for callout graphics</refpurpose>
+<refdescription>
+<para>Sets the extension to use on callout graphics.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.path" select="'../images/callouts/'" doc:type='string'/>
+
+<doc:param name="callout.graphics.path" xmlns="">
+<refpurpose>Path to callout graphics</refpurpose>
+<refdescription>
+<para>Sets the path, probably relative to the directory where the HTML
+files are created, to the callout graphics.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.number.limit" select="'10'"
+           doc:type='integer'/>
+
+<doc:param name="callout.graphics.number.limit" xmlns="">
+<refpurpose>Number of the largest callout graphic</refpurpose>
+<refdescription>
+<para>If <parameter>callout.graphics</parameter>
+is non-zero, graphics are used to represent
+callout numbers. The value of
+<parameter>callout.graphics.number.limit</parameter>
+is
+the largest number for which a graphic exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="use.extensions" select="'0'" doc:type='boolean'/>
+
+<doc:param name="use.extensions" xmlns="">
+<refpurpose>Enable extensions</refpurpose>
+<refdescription>
+<para>If non-zero, extensions may be used. Each extension is
+further controlled by its own parameter. But if
+<parameter>use.extensions</parameter> is zero, no extensions will
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="textinsert.extension" select="'1'" doc:type='boolean'/>
+
+<doc:param name="textinsert.extension" xmlns="">
+<refpurpose>Enable the textinsert extension element</refpurpose>
+<refdescription>
+<para>The textinsert extension element inserts the contents of a
+a file into the result tree (as text).
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.linenumbering" select="'1'" doc:type='boolean'/>
+
+<doc:param name="saxon.linenumbering" xmlns="">
+<refpurpose>Enable the line numbering extension</refpurpose>
+<refdescription>
+<para>If true, verbatim environments (elements that have the
+format='linespecific' notation attribute: address, literallayout,
+programlisting, screen, synopsis) that specify line numbering will
+have, surprise, line numbers.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.extension" select="'1'" doc:type='boolean'/>
+
+<doc:param name="linenumbering.extension" xmlns="">
+<refpurpose>Enable the line numbering extension</refpurpose>
+<refdescription>
+<para>If true, verbatim environments (elements that have the
+format='linespecific' notation attribute: address, literallayout,
+programlisting, screen, synopsis) that specify line numbering will
+have, surprise, line numbers.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.everyNth" select="'5'" doc:type='integer'/>
+
+<doc:param name="linenumbering.everyNth" xmlns="">
+<refpurpose>Indicate which lines should be numbered</refpurpose>
+<refdescription>
+<para>If line numbering is enabled, everyNth line will be numbered.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.width" select="'3'" doc:type='integer'/>
+
+<doc:param name="linenumbering.width" xmlns="">
+<refpurpose>Indicates the width of line numbers</refpurpose>
+<refdescription>
+<para>If line numbering is enabled, line numbers will appear right
+justified in a field "width" characters wide.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.separator" select="' '" doc:type='string'/>
+
+<doc:param name="linenumbering.separator" xmlns="">
+<refpurpose>Specify a separator between line numbers and lines</refpurpose>
+<refdescription>
+<para>The separator is inserted between line numbers and lines in
+the verbatim environment.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.callouts" select="'1'" doc:type='boolean'/>
+
+<doc:param name="saxon.callouts" xmlns="">
+<refpurpose>Enable the callout extension</refpurpose>
+<refdescription>
+<para>The callouts extension processes <sgmltag>areaset</sgmltag>
+elements in <sgmltag>ProgramListingCO</sgmltag> and other text-based
+callout elements.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callouts.extension" select="'1'" doc:type='boolean'/>
+
+<doc:param name="callouts.extension" xmlns="">
+<refpurpose>Enable the callout extension</refpurpose>
+<refdescription>
+<para>The callouts extension processes <sgmltag>areaset</sgmltag>
+elements in <sgmltag>ProgramListingCO</sgmltag> and other text-based
+callout elements.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.defaultcolumn" select="'60'" doc:type='integer'/>
+
+<doc:param name="callout.defaultcolumn" xmlns="">
+<refpurpose>Indicates what column callouts appear in by default</refpurpose>
+<refdescription>
+<para>If a callout does not identify a column (for example, if it uses
+the <literal>linerange</literal> <sgmltag class="attribute">unit</sgmltag>),
+it will appear in the default column.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="stylesheet.result.type" select="'html'"
+           doc:type='list'
+           doc:list='html fo'/>
+
+<doc:param name="stylesheet.result.type" xmlns="">
+<refpurpose>Identifies the output format of this stylesheet</refpurpose>
+<refdescription>
+<para>The Saxon extension functions need to know if the output format
+is HTML ('html') or XSL Formatting Objects ('fo'). This variable answers
+that question. Valid settings are 'html' or 'fo'.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="nominal.table.width" select="'6in'" doc:type='length'/>
+
+<doc:param name="nominal.table.width" xmlns="">
+<refpurpose>The (absolute) nominal width of tables</refpurpose>
+<refdescription>
+<para>In order to convert CALS column widths into HTML column widths, it
+is sometimes necessary to have an absolute table width to use for conversion
+of mixed absolute and relative widths. This value must be an absolute
+length (not a percentag).</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="default.table.width" select="''" doc:type='length'/>
+
+<doc:param name="default.table.width" xmlns="">
+<refpurpose>The default width of tables</refpurpose>
+<refdescription>
+<para>If specified, this value will be used for the WIDTH attribute on
+tables that do not specify an alternate width (with the dbhtml processing
+instruction).</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.tablecolumns" select="'1'" doc:type='boolean'/>
+
+<doc:param name="saxon.tablecolumns" xmlns="">
+<refpurpose>Enable the table columns extension function</refpurpose>
+<refdescription>
+<para>The table columns extension function adjusts the widths of table
+columns in the HTML result to more accurately reflect the specifications
+in the CALS table.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="tablecolumns.extension" select="'1'" doc:type='boolean'/>
+
+<doc:param name="tablecolumns.extension" xmlns="">
+<refpurpose>Enable the table columns extension function</refpurpose>
+<refdescription>
+<para>The table columns extension function adjusts the widths of table
+columns in the HTML result to more accurately reflect the specifications
+in the CALS table.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.set.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="generate.set.toc" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.book.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="generate.book.toc" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.part.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="generate.part.toc" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.reference.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="generate.reference.toc" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.preface.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="generate.preface.toc" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.chapter.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="generate.chapter.toc" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.appendix.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="generate.appendix.toc" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.article.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="generate.article.toc" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.section.toc" select='0' doc:type='boolean'/>
+
+<doc:param name="generate.section.toc" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="process.source.toc" select='0' doc:type='boolean'/>
+
+<doc:param name="process.source.toc" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="process.empty.source.toc" select='0' doc:type='boolean'/>
+
+<doc:param name="process.empty.source.toc" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="bridgehead.in.toc" select='0' doc:type='boolean'/>
+
+<doc:param name="bridgehead.in.toc" xmlns="">
+<refpurpose>Should bridgehead elements appear in the TOC?</refpurpose>
+<refdescription>
+<para>If non-zero, bridgeheads appear in the TOC. Note that this option
+is not fully supported and may be removed in a future version of the
+stylesheets.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.index" select='1' doc:type='boolean'/>
+
+<doc:param name="generate.index" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.unicode" select="0" doc:type='boolean'/>
+
+<doc:param name="callout.unicode" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.unicode.start.character" select="10102"
+           doc:type='integer'/>
+
+<doc:param name="callout.unicode.start.character" xmlns="">
+<refpurpose>Number of the largest callout graphic</refpurpose>
+<refdescription>
+<para>If <parameter>callout.graphics</parameter>
+is non-zero, graphics are used to represent
+callout numbers. The value of
+<parameter>callout.graphics.number.limit</parameter>
+is
+the largest number for which a graphic exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.unicode.number.limit" select="'10'"
+           doc:type='integer'/>
+
+<doc:param name="callout.unicode.number.limit" xmlns="">
+<refpurpose>Number of the largest callout graphic</refpurpose>
+<refdescription>
+<para>If <parameter>callout.graphics</parameter>
+is non-zero, graphics are used to represent
+callout numbers. The value of
+<parameter>callout.graphics.number.limit</parameter>
+is
+the largest number for which a graphic exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="use.id.as.filename" select="'0'" doc:type='boolean'/>
+
+<doc:param name="use.id.as.filename" xmlns="">
+<refpurpose>Use ID value of chunk elements as the filename?</refpurpose>
+<refdescription>
+<para>If <parameter>use.id.as.filename</parameter>
+is non-zero, the filename of chunk elements that have IDs will be
+derived from the ID value.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="inherit.keywords" select="'1'" doc:type='boolean'/>
+
+<doc:param name="inherit.keywords" xmlns="">
+<refpurpose>Inherit keywords from ancestor elements?</refpurpose>
+<refdescription>
+<para>If <parameter>inherit.keywords</parameter>
+is non-zero, the keyword <sgmltag>META</sgmltag> for each HTML
+<sgmltag>HEAD</sgmltag> element will include all of the keywords from
+ancestral elements. Otherwise, only the keywords from the current section
+will be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="label.from.part" select="'0'" doc:type='boolean'/>
+
+<doc:param name="label.from.part" xmlns="">
+<refpurpose>Renumber chapters in each part?</refpurpose>
+<refdescription>
+<para>If <parameter>label.from.part</parameter> is non-zero, components
+(<sgmltag>chapter</sgmltag>s, <sgmltag>appendixe</sgmltag>s, etc.)
+will be numbered from 1 in each <sgmltag>part</sgmltag>. Otherwise,
+they will be numbered monotonically throughout each
+<sgmltag>book</sgmltag>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="citerefentry.link" select="'0'" doc:type='boolean'/>
+
+<doc:param name="citerefentry.link" xmlns="">
+<refpurpose>Generate URL links when cross-referencing RefEntrys?</refpurpose>
+<refdescription>
+<para>If true, a web link will be generated, presumably
+to an online man->HTML gateway. The text of the link is
+generated by the generate.citerefentry.link template.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="default.encoding" select="'ISO-8859-1'" doc:type='string'/>
+
+<doc:param name="default.encoding" xmlns="">
+<refpurpose>Encoding used in generated HTML pages</refpurpose>
+<refdescription>
+<para>This encoding is used in files generated by chunking stylesheet. Currently
+only Saxon is able to change output encoding.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.character.representation" select="'entity;decimal'" doc:type='string'/>
+
+<doc:param name="saxon.character.representation" xmlns="">
+<refpurpose>Saxon character representation used in generated HTML pages</refpurpose>
+<refdescription>
+<para>This character representation is used in files generated by chunking stylesheet. If
+you want to suppress entity references for characters with direct representation 
+in default.encoding, set this parameter to value <literal>native</literal>. 
+</para>
+</refdescription>
+</doc:param>
+
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/pi.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/pi.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/pi.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,191 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: pi.xsl,v 1.2 2001/06/23 17:06:40 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:template match="processing-instruction()">
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <xsl:if test="$using.chunker">
+    <xsl:processing-instruction name="dbhtml">
+      <xsl:value-of select="."/>
+    </xsl:processing-instruction>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-attribute">
+  <xsl:param name="pis" select="processing-instruction('dbhtml')"/>
+  <xsl:param name="attribute">filename</xsl:param>
+  <xsl:param name="count">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($pis)">
+      <!-- not found -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pi">
+        <xsl:value-of select="$pis[$count]"/>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="contains($pi,concat($attribute, '='))">
+          <xsl:variable name="rest" select="substring-after($pi,concat($attribute,'='))"/>
+          <xsl:variable name="quote" select="substring($rest,1,1)"/>
+          <xsl:value-of select="substring-before(substring($rest,2),$quote)"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="dbhtml-attribute">
+            <xsl:with-param name="pis" select="$pis"/>
+            <xsl:with-param name="attribute" select="$attribute"/>
+            <xsl:with-param name="count" select="$count + 1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="dbhtml-filename">
+  <xsl:param name="pis" select="./processing-instruction('dbhtml')"/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute">filename</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dbhtml-dir">
+  <xsl:param name="pis" select="./processing-instruction('dbhtml')"/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute">dir</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.cmdsynopsis.list">
+  <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($cmdsynopses)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+             <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.cmdsynopsis.list">
+          <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbcmdlist')">
+  <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/>
+
+  <xsl:if test="count($cmdsynopses)&lt;1">
+    <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <dl>
+    <xsl:call-template name="process.cmdsynopsis.list">
+      <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.funcsynopsis.list">
+  <xsl:param name="funcsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($funcsynopses)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+              <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+                <xsl:with-param name="target" select="$cmdsyn"/>
+              </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.funcsynopsis.list">
+          <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbfunclist')">
+  <xsl:variable name="funcsynopses" select="..//funcsynopsis"/>
+
+  <xsl:if test="count($funcsynopses)&lt;1">
+    <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text>
+    </xsl:message>
+  </xsl:if>
+
+  <dl>
+    <xsl:call-template name="process.funcsynopsis.list">
+      <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+    </xsl:call-template>
+  </dl>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/qandaset.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/qandaset.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/qandaset.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,207 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: qandaset.xsl,v 1.2 2001/06/23 17:06:40 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="qandaset">
+  <xsl:variable name="title" select="title"/>
+  <xsl:variable name="rest" select="*[name(.)!='title']"/>
+
+  <div class="{name(.)}">
+    <xsl:apply-templates select="$title"/>
+    <xsl:if test="$generate.qandaset.toc != '0'">
+      <xsl:call-template name="process.qanda.toc"/>
+    </xsl:if>
+    <xsl:apply-templates select="$rest"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="qandaset/title">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qanda.section.level"/>
+  </xsl:variable>
+  <xsl:element name="h{string(number($qalevel)+1)}">
+    <xsl:attribute name="class">
+      <xsl:value-of select="name(.)"/>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandadiv">
+  <xsl:variable name="title" select="title"/>
+  <xsl:variable name="rest" select="*[name(.)!='title']"/>
+
+  <div class="{name(.)}">
+    <xsl:apply-templates select="$title"/>
+    <xsl:if test="$generate.qandadiv.toc != '0'">
+      <xsl:call-template name="process.qanda.toc"/>
+    </xsl:if>
+    <xsl:apply-templates select="$rest"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="qandadiv/title">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qandadiv.section.level"/>
+  </xsl:variable>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:element name="h{string(number($qalevel)+1)}">
+    <xsl:attribute name="class">
+      <xsl:value-of select="name(.)"/>
+    </xsl:attribute>
+    <a name="{$id}"/>
+    <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandaentry">
+  <div class="{name(.)}">
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="question">
+  <xsl:variable name="firstch" select="(*[name(.)!='label'
+                                          and name(.)!='indexterm'])[1]"/>
+  <xsl:variable name="restch" select="(*[name(.)!='label'
+                                         and name(.)!='indexterm'])[position()!=1]
+                                      |indexterm"/>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <p>
+      <xsl:if test="../@id">
+        <a>
+          <xsl:attribute name="name">
+            <xsl:call-template name="object.id">
+              <xsl:with-param name="object" select="parent::*"/>
+            </xsl:call-template>
+          </xsl:attribute>
+        </a>
+      </xsl:if>
+      <a name="{$id}"/>
+      <b>
+        <xsl:apply-templates select="." mode="label.markup"/>
+        <xsl:text> </xsl:text>
+      </b>
+      <xsl:apply-templates select="$firstch" mode="no.wrapper.mode"/>
+    </p>
+    <xsl:apply-templates select="$restch"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="answer">
+  <xsl:variable name="firstch" select="(*[name(.)!='label'])[1]"/>
+  <xsl:variable name="restch" select="(*[name(.)!='label'])[position()!=1]"/>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <p>
+      <a name="{$id}"/>
+      <b>
+        <xsl:apply-templates select="." mode="label.markup"/>
+        <xsl:text> </xsl:text>
+      </b>
+      <xsl:apply-templates select="$firstch" mode="no.wrapper.mode"/>
+    </p>
+    <xsl:apply-templates select="$restch"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="label">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.qanda.toc">
+  <dl>
+    <xsl:apply-templates select="qandadiv" mode="qandatoc.mode"/>
+    <xsl:apply-templates select="qandaentry" mode="qandatoc.mode"/>
+  </dl>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="qandatoc.mode">
+  <dt><xsl:apply-templates select="title" mode="qandatoc.mode"/></dt>
+  <dd><xsl:call-template name="process.qanda.toc"/></dd>
+</xsl:template>
+
+<xsl:template match="qandadiv/title" mode="qandatoc.mode">
+  <xsl:variable name="qalevel">
+    <xsl:call-template name="qandadiv.section.level"/>
+  </xsl:variable>
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="object" select="parent::*"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/>
+  <xsl:text> </xsl:text>
+  <a>
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select="parent::*"/>
+      </xsl:call-template>
+    </xsl:attribute>
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="qandatoc.mode">
+  <xsl:apply-templates mode="qandatoc.mode"/>
+</xsl:template>
+
+<xsl:template match="question" mode="qandatoc.mode">
+  <xsl:variable name="firstch" select="(*[name(.)!='label'])[1]"/>
+
+  <dt>
+    <xsl:apply-templates select="." mode="label.markup"/>
+    <xsl:text> </xsl:text>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target"/>
+      </xsl:attribute>
+      <xsl:value-of select="$firstch"/>
+    </a>
+  </dt>
+</xsl:template>
+
+<xsl:template match="answer|revhistory" mode="qandatoc.mode">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="no.wrapper.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/refentry.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/refentry.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/refentry.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,216 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: refentry.xsl,v 1.2 2001/06/23 17:06:40 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="reference">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <xsl:if test="@id">
+      <a name="{$id}"/>
+    </xsl:if>
+    <xsl:call-template name="reference.titlepage"/>
+    <xsl:if test="not(partintro) and $generate.reference.toc != '0'">
+      <xsl:call-template name="division.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="reference" mode="division.number">
+  <xsl:number from="book" count="reference" format="I."/>
+</xsl:template>
+
+<xsl:template match="reference/docinfo"></xsl:template>
+<xsl:template match="reference/referenceinfo"></xsl:template>
+<xsl:template match="reference/title"></xsl:template>
+<xsl:template match="reference/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="refentry">
+  <xsl:variable name="refmeta" select=".//refmeta"/>
+  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+  <xsl:variable name="refnamediv" select=".//refnamediv"/>
+  <xsl:variable name="refname" select="$refnamediv//refname"/>
+  <xsl:variable name="title">
+    <xsl:choose>
+      <xsl:when test="$refentrytitle">
+        <xsl:apply-templates select="$refentrytitle[1]" mode="title"/>
+      </xsl:when>
+      <xsl:when test="$refname">
+        <xsl:apply-templates select="$refname[1]" mode="title"/>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <h1 class="title">
+      <a>
+        <xsl:attribute name="name">
+          <xsl:call-template name="object.id"/>
+        </xsl:attribute>
+      </a>
+      <xsl:copy-of select="$title"/>
+    </h1>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refentry/docinfo|refentry/refentryinfo"></xsl:template>
+
+<xsl:template match="refentrytitle|refname" mode="title">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refmeta">
+</xsl:template>
+
+<xsl:template match="manvolnum">
+  <xsl:if test="$refentry.xref.manvolnum != 0">
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>)</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refmiscinfo">
+</xsl:template>
+
+<xsl:template match="refentrytitle">
+  <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="refnamediv">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="refname">
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::refname">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refname[1]">
+  <xsl:if test="$refentry.generate.name != 0">
+    <h2>
+      <xsl:call-template name="gentext">
+        <xsl:with-param name="key" select="'RefName'"/>
+      </xsl:call-template>
+    </h2>
+  </xsl:if>
+  <xsl:apply-templates/>
+  <xsl:if test="following-sibling::refname">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="refpurpose">
+  <xsl:text> </xsl:text>
+  <xsl:call-template name="dingbat">
+    <xsl:with-param name="dingbat">em-dash</xsl:with-param>
+  </xsl:call-template>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refdescriptor">
+  <!-- todo: finish this -->
+</xsl:template>
+
+<xsl:template match="refclass">
+  <p>
+    <b>
+      <xsl:if test="@role">
+        <xsl:value-of select="@role"/>
+        <xsl:text>: </xsl:text>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </b>
+  </p>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv">
+  <div class="{name(.)}">
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id"/>
+      </xsl:attribute>
+    </a>
+    <h2>Synopsis</h2>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="refsynopsisdivinfo"></xsl:template>
+
+<xsl:template match="refsynopsisdiv/title">
+</xsl:template>
+
+<xsl:template match="refsect1|refsect2|refsect3">
+  <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="refsect1/title">
+  <h2>
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="ancestor::refsect1"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </a>
+    <xsl:apply-templates/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="refsect2/title">
+  <h3>
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="ancestor::refsect2"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </a>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<xsl:template match="refsect3/title">
+  <h4>
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="ancestor::refsect3"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </a>
+    <xsl:apply-templates/>
+  </h4>
+</xsl:template>
+
+<xsl:template match="refsect1info"></xsl:template>
+<xsl:template match="refsect2info"></xsl:template>
+<xsl:template match="refsect3info"></xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/sections.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/sections.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/sections.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,346 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: sections.xsl,v 1.2 2001/06/23 17:06:40 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="section">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="section.titlepage"/>
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template name="section.title">
+  <!-- the context node should be the title of a section when called -->
+  <xsl:variable name="section" select="(ancestor::section
+                                        |ancestor::simplesect
+                                        |ancestor::sect1
+                                        |ancestor::sect2
+                                        |ancestor::sect3
+                                        |ancestor::sect4
+                                        |ancestor::sect5)[last()]"/>
+
+  <xsl:variable name="level">
+    <xsl:call-template name="section.level">
+      <xsl:with-param name="node" select="$section"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:call-template name="section.heading">
+    <xsl:with-param name="section" select=".."/>
+    <xsl:with-param name="level" select="$level"/>
+    <xsl:with-param name="title">
+      <xsl:apply-templates select="$section" mode="object.title.markup"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="title" mode="section.titlepage.recto.mode">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="x-title" mode="section.titlepage.recto.mode">
+  <xsl:variable name="section" select="(ancestor::section
+                                        |ancestor::simplesect
+                                        |ancestor::sect1
+                                        |ancestor::sect2
+                                        |ancestor::sect3
+                                        |ancestor::sect4
+                                        |ancestor::sect5)[last()]"/>
+
+  <xsl:variable name="level">
+    <xsl:call-template name="section.level">
+      <xsl:with-param name="node" select="$section"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:message>Level: <xsl:value-of select="$level"/>: <xsl:value-of select="."/></xsl:message>
+
+  <xsl:element name="h{$level}">
+    <xsl:attribute name="class">title</xsl:attribute>
+    <xsl:if test="$css.decoration != '0'">
+      <xsl:if test="$level&lt;3">
+        <xsl:attribute name="style">clear: both</xsl:attribute>
+      </xsl:if>
+    </xsl:if>
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$section"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </a>
+    <xsl:apply-templates select="$section" mode="object.title.markup"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect1">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="sect1.titlepage"/>
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+    <xsl:call-template name="process.chunk.footnotes"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect1.titlepage.recto.mode">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect2">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="sect2.titlepage"/>
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect2.titlepage.recto.mode">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect3">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="sect3.titlepage"/>
+
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect3.titlepage.recto.mode">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect4">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="sect4.titlepage"/>
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect4.titlepage.recto.mode">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="sect5">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="sect5.titlepage"/>
+    <xsl:if test="$generate.section.toc != '0'
+                  or refentry">
+      <xsl:call-template name="section.toc"/>
+    </xsl:if>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect5.titlepage.recto.mode">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="simplesect">
+  <xsl:variable name="id">
+    <xsl:call-template name="object.id"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:call-template name="simplesect.titlepage"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="title" mode="simplesect.titlepage.recto.mode">
+  <xsl:call-template name="section.title"/>
+</xsl:template>
+
+<xsl:template match="section/title"></xsl:template>
+<xsl:template match="section/subtitle"></xsl:template>
+<xsl:template match="sectioninfo"></xsl:template>
+
+<xsl:template match="sect1/title"></xsl:template>
+<xsl:template match="sect1/subtitle"></xsl:template>
+<xsl:template match="sect1info"></xsl:template>
+
+<xsl:template match="sect2/title"></xsl:template>
+<xsl:template match="sect2/subtitle"></xsl:template>
+<xsl:template match="sect2info"></xsl:template>
+
+<xsl:template match="sect3/title"></xsl:template>
+<xsl:template match="sect3/subtitle"></xsl:template>
+<xsl:template match="sect3info"></xsl:template>
+
+<xsl:template match="sect4/title"></xsl:template>
+<xsl:template match="sect4/subtitle"></xsl:template>
+<xsl:template match="sect4info"></xsl:template>
+
+<xsl:template match="sect5/title"></xsl:template>
+<xsl:template match="sect5/subtitle"></xsl:template>
+<xsl:template match="sect5info"></xsl:template>
+
+<xsl:template match="simplesect/title"></xsl:template>
+<xsl:template match="simplesect/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="section.heading">
+  <xsl:param name="section" select="."/>
+  <xsl:param name="level" select="'1'"/>
+  <xsl:param name="title"/>
+  <xsl:element name="h{$level}">
+    <xsl:attribute name="class">title</xsl:attribute>
+    <xsl:if test="$css.decoration != '0'">
+      <xsl:if test="$level&lt;3">
+        <xsl:attribute name="style">clear: both</xsl:attribute>
+      </xsl:if>
+    </xsl:if>
+    <a>
+      <xsl:attribute name="name">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$section"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </a>
+    <xsl:copy-of select="$title"/>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bridgehead">
+  <xsl:variable name="container"
+                select="(ancestor::appendix
+                        |ancestor::article
+                        |ancestor::bibliography
+                        |ancestor::chapter
+                        |ancestor::glossary
+                        |ancestor::glossdiv
+                        |ancestor::index
+                        |ancestor::partintro
+                        |ancestor::preface
+                        |ancestor::refsect1
+                        |ancestor::refsect2
+                        |ancestor::refsect3
+                        |ancestor::sect1
+                        |ancestor::sect2
+                        |ancestor::sect3
+                        |ancestor::sect4
+                        |ancestor::sect5
+                        |ancestor::section
+                        |ancestor::setindex
+                        |ancestor::simplesect)[last()]"/>
+
+  <xsl:variable name="clevel">
+    <xsl:choose>
+      <xsl:when test="local-name($container) = 'appendix'
+                      or local-name($container) = 'chapter'
+                      or local-name($container) = 'article'
+                      or local-name($container) = 'bibliography'
+                      or local-name($container) = 'glossary'
+                      or local-name($container) = 'index'
+                      or local-name($container) = 'partintro'
+                      or local-name($container) = 'preface'
+                      or local-name($container) = 'setindex'">2</xsl:when>
+      <xsl:when test="local-name($container) = 'glossdiv'">
+        <xsl:value-of select="count(ancestor::glossdiv)+2"/>
+      </xsl:when>
+      <xsl:when test="local-name($container) = 'sect1'
+                      or local-name($container) = 'sect2'
+                      or local-name($container) = 'sect3'
+                      or local-name($container) = 'sect4'
+                      or local-name($container) = 'sect5'
+                      or local-name($container) = 'refsect1'
+                      or local-name($container) = 'refsect2'
+                      or local-name($container) = 'refsect3'
+                      or local-name($container) = 'section'
+                      or local-name($container) = 'simplesect'">
+        <xsl:variable name="slevel">
+          <xsl:call-template name="section.level">
+            <xsl:with-param name="node" select="$container"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="$slevel + 1"/>
+      </xsl:when>
+      <xsl:otherwise>2</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="level">
+    <xsl:choose>
+      <xsl:when test="@renderas = 'sect1'">2</xsl:when>
+      <xsl:when test="@renderas = 'sect2'">3</xsl:when>
+      <xsl:when test="@renderas = 'sect3'">4</xsl:when>
+      <xsl:when test="@renderas = 'sect4'">5</xsl:when>
+      <xsl:when test="@renderas = 'sect5'">6</xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$clevel"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:element name="h{$level}">
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/synop.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/synop.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/synop.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,939 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY RE "&#10;">
+<!ENTITY nbsp "&#160;">
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: synop.xsl,v 1.2 2001/06/23 17:06:40 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- synopsis is in verbatim -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="cmdsynopsis">
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <div class="{name(.)}" id="{$id}">
+    <a name="{$id}"/>
+    <xsl:apply-templates/>
+  </div>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command">
+  <br/>
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command[1]" priority="2">
+  <xsl:call-template name="inline.monoseq"/>
+  <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="group|arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:variable name="sepchar">
+    <xsl:choose>
+      <xsl:when test="ancestor-or-self::*/@sepchar">
+        <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> </xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:if test="position()>1"><xsl:value-of select="$sepchar"/></xsl:if>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.open.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.open.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.open.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:apply-templates/>
+  <xsl:choose>
+    <xsl:when test="$rep='repeat'">
+      <xsl:value-of select="$arg.rep.repeat.str"/>
+    </xsl:when>
+    <xsl:when test="$rep='norepeat'">
+      <xsl:value-of select="$arg.rep.norepeat.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.rep.def.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="$choice='plain'">
+      <xsl:value-of select="$arg.choice.plain.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='req'">
+      <xsl:value-of select="$arg.choice.req.close.str"/>
+    </xsl:when>
+    <xsl:when test="$choice='opt'">
+      <xsl:value-of select="$arg.choice.opt.close.str"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$arg.choice.def.close.str"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+  <xsl:variable name="choice" select="@choice"/>
+  <xsl:variable name="rep" select="@rep"/>
+  <xsl:if test="position()>1"><xsl:value-of select="$arg.or.sep"/></xsl:if>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="sbr">
+  <br/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopfragmentref">
+  <xsl:variable name="target" select="id(@linkend)"/>
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+  </xsl:variable>
+  <i>
+    <a href="#{@linkend}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+  </i>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+  <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+  <xsl:variable name="snum">
+    <xsl:apply-templates select="." mode="synopfragment.number"/>
+  </xsl:variable>
+  <p>
+    <a name="#{@id}">
+      <xsl:text>(</xsl:text>
+      <xsl:value-of select="$snum"/>
+      <xsl:text>)</xsl:text>
+    </a>
+    <xsl:text> </xsl:text>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>   
+
+<xsl:template match="funcsynopsis">
+  <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsisinfo">
+  <pre class="{name(.)}"><xsl:apply-templates/></pre>
+</xsl:template>
+
+<xsl:template match="funcprototype">
+  <p>
+    <code>
+      <xsl:apply-templates/>
+      <xsl:if test="$funcsynopsis.style='kr'">
+        <xsl:apply-templates select="./paramdef" mode="kr-funcsynopsis-mode"/>
+      </xsl:if>
+    </code>
+  </p>
+</xsl:template>
+
+<xsl:template match="funcdef">
+  <code class="{name(.)}">
+    <xsl:apply-templates/>
+  </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <b class="fsfunc"><xsl:apply-templates/></b>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.style='ansi'">
+      <xsl:text>(void);</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>();</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varargs">
+  <xsl:text>(...);</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef">
+  <xsl:variable name="paramnum">
+    <xsl:number count="paramdef" format="1"/>
+  </xsl:variable>
+  <xsl:if test="$paramnum=1">(</xsl:if>
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.style='ansi'">
+      <xsl:apply-templates/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates select="./parameter"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="following-sibling::paramdef">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>);</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter">
+  <xsl:choose>
+    <xsl:when test="$funcsynopsis.decoration != 0">
+      <var class="pdparam">
+        <xsl:apply-templates/>
+      </var>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:if test="following-sibling::parameter">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
+  <br/>
+  <xsl:apply-templates/>
+  <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="funcparams">
+  <xsl:text>(</xsl:text>
+  <xsl:apply-templates/>
+  <xsl:text>)</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:variable name="default-classsynopsis-language">java</xsl:variable>
+
+<xsl:template match="classsynopsis">
+  <xsl:param name="language">
+    <xsl:choose>
+      <xsl:when test="@language">
+	<xsl:value-of select="@language"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:value-of select="$default-classsynopsis-language"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$language='java'">
+      <xsl:apply-templates select="." mode="java"/>
+    </xsl:when>
+    <xsl:when test="$language='perl'">
+      <xsl:apply-templates select="." mode="perl"/>
+    </xsl:when>
+    <xsl:when test="$language='idl'">
+      <xsl:apply-templates select="." mode="idl"/>
+    </xsl:when>
+    <xsl:when test="$language='cpp'">
+      <xsl:apply-templates select="." mode="cpp"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+	<xsl:text>Unrecognized language on classsynopsis: </xsl:text>
+	<xsl:value-of select="$language"/>
+      </xsl:message>
+      <xsl:apply-templates select=".">
+	<xsl:with-param name="language"
+	  select="$default-classsynopsis-language"/>
+      </xsl:apply-templates>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ===== Java ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="java">
+  <pre class="{name(.)}">
+    <xsl:apply-templates select="ooclass[1]" mode="java"/>
+    <xsl:if test="ooclass[position() &gt; 1]">
+      <xsl:text> extends</xsl:text>
+      <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="java"/>
+      <xsl:if test="oointerface|ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text>implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="java"/>
+      <xsl:if test="ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text>throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="java"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{&RE;&RE;</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="java"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="java">
+  <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="java">
+  <xsl:choose>
+    <xsl:when test="position() &gt; 1">
+      <xsl:text>, </xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text> </xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="java">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="java">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="java">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="java">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="java">
+  <div class="{name(.)}">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<xsl:template match="type" mode="java">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="java">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="java">
+  <span class="{name(.)}">
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="java">
+  <span class="{name(.)}">
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="java">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="java">
+  <xsl:param name="indent">0</xsl:param>
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>,&RE;</xsl:text>
+    <xsl:if test="$indent &gt; 0">
+      <xsl:call-template name="copy-string">
+	<xsl:with-param name="string">&nbsp;</xsl:with-param>
+	<xsl:with-param name="count" select="$indent + 1"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="java">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="java"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="java"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="decl">
+    <xsl:text>  </xsl:text>
+    <xsl:apply-templates select="$modifiers" mode="java"/>
+
+    <!-- type -->
+    <xsl:if test="name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="java"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="java"/>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <xsl:copy-of select="$decl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="java">
+      <xsl:with-param name="indent" select="string-length($decl)"/>
+    </xsl:apply-templates>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="java"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<!-- ===== C++ ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="cpp">
+  <pre class="{name(.)}">
+    <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
+    <xsl:if test="ooclass[position() &gt; 1]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="cpp"/>
+      <xsl:if test="oointerface|ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="cpp"/>
+      <xsl:if test="ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{&RE;&RE;</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="cpp"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="cpp">
+  <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="cpp">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="cpp">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="cpp">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="cpp">
+  <div class="{name(.)}">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<xsl:template match="type" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="cpp">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="cpp">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="cpp"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="cpp"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="type">
+  </xsl:variable>
+  <div class="{name(.)}">
+    <xsl:text>  </xsl:text>
+    <xsl:apply-templates select="$modifiers" mode="cpp"/>
+
+    <!-- type -->
+    <xsl:if test="name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="cpp"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="cpp"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;throws&nbsp;</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="cpp"/>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<!-- ===== IDL ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="idl">
+  <pre class="{name(.)}">
+    <xsl:text>interface </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="idl"/>
+    <xsl:if test="ooclass[position() &gt; 1]">
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="idl"/>
+      <xsl:if test="oointerface|ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="oointerface">
+      <xsl:text> implements</xsl:text>
+      <xsl:apply-templates select="oointerface" mode="idl"/>
+      <xsl:if test="ooexception">
+	<xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;</xsl:text>
+      </xsl:if>
+    </xsl:if>
+    <xsl:if test="ooexception">
+      <xsl:text> throws</xsl:text>
+      <xsl:apply-templates select="ooexception" mode="idl"/>
+    </xsl:if>
+    <xsl:text>&nbsp;{&RE;&RE;</xsl:text>
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="idl"/>
+    <xsl:text>}</xsl:text>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="idl">
+  <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="idl">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="idl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="idl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="idl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="idl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="idl">
+  <div class="{name(.)}">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<xsl:template match="type" mode="idl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="idl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="idl">
+  <span class="{name(.)}">
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="idl">
+  <span class="{name(.)}">
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="idl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="idl">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="idl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="idl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="idl"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="type">
+  </xsl:variable>
+  <div class="{name(.)}">
+    <xsl:text>  </xsl:text>
+    <xsl:apply-templates select="$modifiers" mode="idl"/>
+
+    <!-- type -->
+    <xsl:if test="name($notmod[1]) != 'methodname'">
+      <xsl:apply-templates select="$notmod[1]" mode="idl"/>
+    </xsl:if>
+
+    <xsl:apply-templates select="methodname" mode="idl"/>
+    <xsl:text>(</xsl:text>
+    <xsl:apply-templates select="methodparam" mode="idl"/>
+    <xsl:text>)</xsl:text>
+    <xsl:if test="exceptionname">
+      <xsl:text>&RE;&nbsp;&nbsp;&nbsp;&nbsp;raises(</xsl:text>
+      <xsl:apply-templates select="exceptionname" mode="idl"/>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<!-- ===== Perl ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="perl">
+  <pre class="{name(.)}">
+    <xsl:text>package </xsl:text>
+    <xsl:apply-templates select="ooclass[1]" mode="perl"/>
+    <xsl:text>;&RE;</xsl:text>
+
+    <xsl:if test="ooclass[position() &gt; 1]">
+      <xsl:text>@ISA = (</xsl:text>
+      <xsl:apply-templates select="ooclass[position() &gt; 1]" mode="perl"/>
+      <xsl:text>);&RE;</xsl:text>
+    </xsl:if>
+
+    <xsl:apply-templates select="constructorsynopsis
+                                 |destructorsynopsis
+                                 |fieldsynopsis
+                                 |methodsynopsis
+                                 |classsynopsisinfo" mode="perl"/>
+  </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="perl">
+  <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="perl">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="perl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="perl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="perl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="perl">
+  <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="perl">
+  <div class="{name(.)}">
+    <xsl:text>&nbsp;&nbsp;</xsl:text>
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>;</xsl:text>
+  </div>
+</xsl:template>
+
+<xsl:template match="type" mode="perl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="perl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+    <xsl:text>&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="perl">
+  <span class="{name(.)}">
+    <xsl:text>=&nbsp;</xsl:text>
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="void" mode="perl">
+  <span class="{name(.)}">
+    <xsl:text>void&nbsp;</xsl:text>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="perl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="perl">
+  <xsl:if test="position() &gt; 1">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="perl">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="perl"/>
+  </span>
+</xsl:template>
+
+<xsl:template mode="perl"
+  match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+  <xsl:variable name="modifiers" select="modifier"/>
+  <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+  <xsl:variable name="type">
+  </xsl:variable>
+  <div class="{name(.)}">
+    <xsl:text>sub </xsl:text>
+
+    <xsl:apply-templates select="methodname" mode="perl"/>
+    <xsl:text> { ... };</xsl:text>
+  </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/table.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/table.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/table.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,638 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table"
+                xmlns:xtbl="com.nwalsh.xalan.Table"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="doc stbl xtbl lxslt"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: table.xsl,v 1.2 2001/06/23 17:06:40 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xtbl"
+                 functions="adjustColumnWidths"/>
+
+<xsl:template match="tgroup">
+  <table>
+    <xsl:choose>
+      <!-- If there's a <?dbhtml table-summary="foo"?> PI, use it for
+           the HTML table summary attribute -->
+      <xsl:when test="processing-instruction('dbhtml')">
+        <xsl:variable name="summary">
+          <xsl:call-template name="dbhtml-attribute">
+            <xsl:with-param name="pis"
+                            select="processing-instruction('dbhtml')[1]"/>
+            <xsl:with-param name="attribute" select="'table-summary'"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:if test="$summary != ''">
+          <xsl:attribute name="summary">
+            <xsl:value-of select="$summary"/>
+          </xsl:attribute>
+        </xsl:if>
+      </xsl:when>
+      <!-- Otherwise, if there's a title, use that -->
+      <xsl:when test="../title">
+        <xsl:attribute name="summary">
+          <xsl:value-of select="string(../title)"/>
+        </xsl:attribute>
+      </xsl:when>
+      <!-- Otherwise, forget the whole idea -->
+      <xsl:otherwise><!-- nevermind --></xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:if test="../@pgwide=1">
+      <xsl:attribute name="width">100%</xsl:attribute>
+    </xsl:if>
+
+<!-- this is wrong, align on tgroup gives the default alignment for table
+     cells, not the alignment for the table itself...
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+-->
+
+    <xsl:choose>
+      <xsl:when test="../@frame='none'">
+        <xsl:attribute name="border">0</xsl:attribute>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="border">1</xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+    <xsl:variable name="colgroup">
+      <colgroup>
+        <xsl:call-template name="generate.colgroup">
+          <xsl:with-param name="cols" select="@cols"/>
+        </xsl:call-template>
+      </colgroup>
+    </xsl:variable>
+
+    <xsl:variable name="explicit.table.width">
+      <xsl:call-template name="dbhtml-attribute">
+        <xsl:with-param name="pis"
+                        select="../processing-instruction('dbhtml')[1]"/>
+        <xsl:with-param name="attribute" select="'table-width'"/>
+      </xsl:call-template>
+    </xsl:variable>
+
+    <xsl:variable name="table.width">
+      <xsl:choose>
+        <xsl:when test="$explicit.table.width != ''">
+          <xsl:value-of select="$explicit.table.width"/>
+        </xsl:when>
+        <xsl:when test="$default.table.width = ''">
+          <xsl:text>100%</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$default.table.width"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <xsl:if test="$default.table.width != ''
+                  or $explicit.table.width != ''">
+      <xsl:attribute name="width">
+        <xsl:choose>
+          <xsl:when test="contains($table.width, '%')">
+            <xsl:value-of select="$table.width"/>
+          </xsl:when>
+          <xsl:when test="$use.extensions != 0
+                          and $tablecolumns.extension != 0">
+            <xsl:choose>
+              <xsl:when test="contains($vendor, 'SAXON 6')">
+                <xsl:value-of select="stbl:convertLength($table.width)"/>
+              </xsl:when>
+              <xsl:when test="contains($vendor, 'SAXON 5')">
+                <!-- the saxon5 extension doesn't support this (yet) -->
+                <xsl:value-of select="$table.width"/>
+              </xsl:when>
+              <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+                <xsl:value-of select="xtbl:convertLength($table.width)"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:message terminate="yes">
+                  <xsl:text>Don't know how to do convert lengths with </xsl:text>
+                  <xsl:value-of select="$vendor"/>
+                </xsl:message>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$table.width"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$use.extensions != 0
+                      and $tablecolumns.extension != 0">
+        <xsl:choose>
+          <xsl:when test="contains($vendor, 'SAXON 6')">
+            <xsl:copy-of select="stbl:adjustColumnWidths($colgroup)"/>
+          </xsl:when>
+          <xsl:when test="contains($vendor, 'SAXON 5')">
+            <!-- the saxon5 extension doesn't support this (yet) -->
+            <xsl:copy-of select="$colgroup"/>
+          </xsl:when>
+          <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+            <xsl:copy-of select="xtbl:adjustColumnWidths($colgroup)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:message terminate="yes">
+              <xsl:text>Don't know how to do adjust column widths with </xsl:text>
+              <xsl:value-of select="$vendor"/>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:copy-of select="$colgroup"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:apply-templates select="thead"/>
+    <xsl:apply-templates select="tbody"/>
+    <xsl:apply-templates select="tfoot"/>
+
+    <xsl:if test=".//footnote">
+      <tr>
+        <td colspan="{@cols}">
+          <xsl:apply-templates select=".//footnote" 
+                               mode="table.footnote.mode"/>
+        </td>
+      </tr>
+    </xsl:if>
+  </table>
+</xsl:template>
+
+<xsl:template match="tgroup/processing-instruction('dbhtml')">
+  <xsl:variable name="summary">
+    <xsl:call-template name="dbhtml-attribute">
+      <xsl:with-param name="pis" select="."/>
+      <xsl:with-param name="attribute" select="'table-summary'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Suppress the table-summary PI -->
+  <xsl:if test="$summary = ''">
+    <xsl:processing-instruction name="dbhtml">
+      <xsl:value-of select="."/>
+    </xsl:processing-instruction>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="colspec"></xsl:template>
+
+<xsl:template match="spanspec"></xsl:template>
+
+<xsl:template match="thead|tfoot">
+  <xsl:element name="{name(.)}">
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="tbody">
+  <tbody>
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </tbody>
+</xsl:template>
+
+<xsl:template match="row">
+  <tr>
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </tr>
+</xsl:template>
+
+<xsl:template match="thead/row/entry">
+  <xsl:call-template name="process.cell">
+    <xsl:with-param name="cellgi">th</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="tbody/row/entry">
+  <xsl:call-template name="process.cell">
+    <xsl:with-param name="cellgi">td</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="tfoot/row/entry">
+  <xsl:call-template name="process.cell">
+    <xsl:with-param name="cellgi">th</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="process.cell">
+  <xsl:param name="cellgi">td</xsl:param>
+  <xsl:variable name="empty.cell" select="count(node()) = 0"/>
+
+  <xsl:variable name="entry.colnum">
+    <xsl:call-template name="entry.colnum"/>
+  </xsl:variable>
+
+  <xsl:if test="$entry.colnum != ''">
+    <xsl:variable name="prev.entry" select="preceding-sibling::*[1]"/>
+    <xsl:variable name="prev.ending.colnum">
+      <xsl:choose>
+        <xsl:when test="$prev.entry">
+          <xsl:call-template name="entry.ending.colnum">
+            <xsl:with-param name="entry" select="$prev.entry"/>
+          </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>0</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
+    <!-- 1.31: removed add-empty-entries; there's no practical way for
+         XSLT to keep track of "overhang" from morerows in previous rows.
+         At least none that I can think of. -->
+  </xsl:if>
+
+  <xsl:element name="{$cellgi}">
+    <xsl:if test="@morerows">
+      <xsl:attribute name="rowspan">
+        <xsl:value-of select="@morerows+1"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@namest">
+      <xsl:attribute name="colspan">
+        <xsl:call-template name="calculate.colspan"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@align">
+      <xsl:attribute name="align">
+        <xsl:value-of select="@align"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@char">
+      <xsl:attribute name="char">
+        <xsl:value-of select="@char"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@charoff">
+      <xsl:attribute name="charoff">
+        <xsl:value-of select="@charoff"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:if test="@valign">
+      <xsl:attribute name="valign">
+        <xsl:value-of select="@valign"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:if test="not(preceding-sibling::*)
+                  and ancestor::row/@id">
+      <a name="{ancestor::row/@id}"/>
+    </xsl:if>
+
+    <xsl:if test="@id">
+      <a name="{@id}"/>
+    </xsl:if>
+
+    <xsl:choose>
+      <xsl:when test="$empty.cell">
+        <xsl:text>&#160;</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="entry.colnum">
+  <xsl:param name="entry" select="."/>
+
+  <xsl:choose>
+    <xsl:when test="$entry/@colname">
+      <xsl:variable name="colname" select="$entry/@colname"/>
+      <xsl:variable name="colspec"
+                    select="$entry/ancestor::tgroup/colspec[@colname=$colname]"/>
+      <xsl:call-template name="colspec.colnum">
+        <xsl:with-param name="colspec" select="$colspec"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$entry/@namest">
+      <xsl:variable name="namest" select="$entry/@namest"/>
+      <xsl:variable name="colspec"
+                    select="$entry/ancestor::tgroup/colspec[@colname=$namest]"/>
+      <xsl:call-template name="colspec.colnum">
+        <xsl:with-param name="colspec" select="$colspec"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="count($entry/preceding-sibling::*) = 0">1</xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pcol">
+        <xsl:call-template name="entry.ending.colnum">
+          <xsl:with-param name="entry"
+                          select="$entry/preceding-sibling::*[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$pcol + 1"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<doc:template name="entry.colnum" xmlns="">
+<refpurpose>Determine the column number in which a given entry occurs</refpurpose>
+<refdescription>
+<para>If an <sgmltag>entry</sgmltag> has a
+<sgmltag class="attribute">colname</sgmltag> or
+<sgmltag class="attribute">namest</sgmltag> attribute, this template
+will determine the number of the column in which the entry should occur.
+For other <sgmltag>entry</sgmltag>s, nothing is returned.</para>
+</refdescription>
+<refparameter>
+<variablelist>
+<varlistentry><term>entry</term>
+<listitem>
+<para>The <sgmltag>entry</sgmltag>-element which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>This template returns the column number if it can be determined,
+or nothing (the empty string)</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="entry.ending.colnum">
+  <xsl:param name="entry" select="."/>
+
+  <xsl:choose>
+    <xsl:when test="$entry/@colname">
+      <xsl:variable name="colname" select="$entry/@colname"/>
+      <xsl:variable name="colspec"
+                    select="$entry/ancestor::tgroup/colspec[@colname=$colname]"/>
+      <xsl:call-template name="colspec.colnum">
+        <xsl:with-param name="colspec" select="$colspec"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="$entry/@nameend">
+      <xsl:variable name="nameend" select="$entry/@nameend"/>
+      <xsl:variable name="colspec"
+                    select="$entry/ancestor::tgroup/colspec[@colname=$nameend]"/>
+      <xsl:call-template name="colspec.colnum">
+        <xsl:with-param name="colspec" select="$colspec"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:when test="count($entry/preceding-sibling::*) = 0">1</xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="pcol">
+        <xsl:call-template name="entry.ending.colnum">
+          <xsl:with-param name="entry"
+                          select="$entry/preceding-sibling::*[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$pcol + 1"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+<xsl:template name="colspec.colnum">
+  <xsl:param name="colspec" select="."/>
+  <xsl:choose>
+    <xsl:when test="$colspec/@colnum">
+      <xsl:value-of select="$colspec/@colnum"/>
+    </xsl:when>
+    <xsl:when test="$colspec/preceding-sibling::colspec">
+      <xsl:variable name="prec.colspec.colnum">
+        <xsl:call-template name="colspec.colnum">
+          <xsl:with-param name="colspec"
+                          select="$colspec/preceding-sibling::colspec[1]"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="$prec.colspec.colnum + 1"/>
+    </xsl:when>
+    <xsl:otherwise>1</xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.colgroup">
+  <xsl:param name="cols" select="1"/>
+  <xsl:param name="count" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$count>$cols"></xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="generate.col">
+        <xsl:with-param name="countcol" select="$count"/>
+      </xsl:call-template>
+      <xsl:call-template name="generate.colgroup">
+        <xsl:with-param name="cols" select="$cols"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.col">
+  <xsl:param name="countcol">1</xsl:param>
+  <xsl:param name="colspecs" select="./colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:param name="colnum">1</xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>count($colspecs)">
+      <col/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+      <xsl:variable name="colspec.colnum">
+        <xsl:choose>
+          <xsl:when test="$colspec/@colnum">
+            <xsl:value-of select="$colspec/@colnum"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$colnum"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+
+      <xsl:choose>
+        <xsl:when test="$colspec.colnum=$countcol">
+          <col>
+            <xsl:if test="$colspec/@colwidth
+                          and $use.extensions != 0
+                          and $tablecolumns.extension != 0">
+              <xsl:attribute name="width">
+                <xsl:value-of select="$colspec/@colwidth"/>
+              </xsl:attribute>
+            </xsl:if>
+
+            <xsl:choose>
+              <xsl:when test="$colspec/@align">
+                <xsl:attribute name="align">
+                  <xsl:value-of select="$colspec/@align"/>
+                </xsl:attribute>
+              </xsl:when>
+              <!-- Suggested by Pavel ZAMPACH <zampach at nemcb.cz> -->
+              <xsl:when test="$colspecs/ancestor::tgroup/@align">
+                <xsl:attribute name="align">
+                  <xsl:value-of select="$colspecs/ancestor::tgroup/@align"/>
+                </xsl:attribute>
+              </xsl:when>
+            </xsl:choose>
+
+            <xsl:if test="$colspec/@char">
+              <xsl:attribute name="char">
+                <xsl:value-of select="$colspec/@char"/>
+              </xsl:attribute>
+            </xsl:if>
+            <xsl:if test="$colspec/@charoff">
+              <xsl:attribute name="charoff">
+                <xsl:value-of select="$colspec/@charoff"/>
+              </xsl:attribute>
+            </xsl:if>
+          </col>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="generate.col">
+            <xsl:with-param name="countcol" select="$countcol"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+            <xsl:with-param name="colnum">
+              <xsl:choose>
+                <xsl:when test="$colspec/@colnum">
+                  <xsl:value-of select="$colspec/@colnum + 1"/>
+                </xsl:when>
+                <xsl:otherwise>
+                  <xsl:value-of select="$colnum + 1"/>
+                </xsl:otherwise>
+              </xsl:choose>
+            </xsl:with-param>
+           </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="colspec.colwidth">
+  <!-- when this macro is called, the current context must be an entry -->
+  <xsl:param name="colname"></xsl:param>
+  <!-- .. = row, ../.. = thead|tbody, ../../.. = tgroup -->
+  <xsl:param name="colspecs" select="../../../../tgroup/colspec"/>
+  <xsl:param name="count">1</xsl:param>
+  <xsl:choose>
+    <xsl:when test="$count>count($colspecs)"></xsl:when>
+    <xsl:otherwise>
+      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+      <xsl:choose>
+        <xsl:when test="$colspec/@colname=$colname">
+          <xsl:value-of select="$colspec/@colwidth"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="colspec.colwidth">
+            <xsl:with-param name="colname" select="$colname"/>
+            <xsl:with-param name="colspecs" select="$colspecs"/>
+            <xsl:with-param name="count" select="$count+1"/>
+          </xsl:call-template>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="calculate.colspan">
+  <xsl:param name="entry" select="."/>
+  <xsl:variable name="namest" select="$entry/@namest"/>
+  <xsl:variable name="nameend" select="$entry/@nameend"/>
+
+  <xsl:variable name="scol">
+    <xsl:call-template name="colspec.colnum">
+      <xsl:with-param name="colspec"
+                      select="$entry/ancestor::tgroup/colspec[@colname=$namest]"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="ecol">
+    <xsl:call-template name="colspec.colnum">
+      <xsl:with-param name="colspec"
+                      select="$entry/ancestor::tgroup/colspec[@colname=$nameend]"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:value-of select="$ecol - $scol + 1"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.templates.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.templates.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.templates.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,596 @@
+<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+	     xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
+             xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="article" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="set" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="book" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="part" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="partintro" wrapper="div">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="reference" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <hr/>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+  <t:titlepage element="dedication" wrapper="div" class="titlepage">
+    <t:titlepage-content side="recto">
+    <title
+	   force="1"
+	   named-template="component.title"
+	   param:node="ancestor-or-self::dedication[1]"/>
+    <subtitle/>
+    </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="preface" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="chapter" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="appendix" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="section" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="sect1" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="sect2" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="sect3" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="sect4" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="sect5" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<t:titlepage element="simplesect" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title/>
+    <subtitle/>
+    <corpauthor/>
+    <authorgroup/>
+    <author/>
+    <releaseinfo/>
+    <copyright/>
+    <legalnotice/>
+    <pubdate/>
+    <revision/>
+    <revhistory/>
+    <abstract/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+    <xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="bibliography" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title
+	   force="1"
+	   named-template="component.title"
+	   param:node="ancestor-or-self::bibliography[1]"/>
+    <subtitle/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="glossary" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title
+	   force="1"
+	   named-template="component.title"
+	   param:node="ancestor-or-self::glossary[1]"/>
+    <subtitle/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+<t:titlepage element="index" wrapper="div" class="titlepage">
+  <t:titlepage-content side="recto">
+    <title
+	   force="1"
+	   named-template="component.title"
+	   param:node="ancestor-or-self::index[1]"/>
+    <subtitle/>
+  </t:titlepage-content>
+
+  <t:titlepage-content side="verso">
+  </t:titlepage-content>
+
+  <t:titlepage-separator>
+  </t:titlepage-separator>
+
+  <t:titlepage-before side="recto">
+  </t:titlepage-before>
+
+  <t:titlepage-before side="verso">
+  </t:titlepage-before>
+</t:titlepage>
+
+<!-- ==================================================================== -->
+
+</t:templates>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.templates.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.templates.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.templates.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2561 @@
+<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- This stylesheet was created by template/titlepage.xsl; do not edit it by hand. -->
+
+<xsl:template name="article.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="articleinfo/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/>
+    </xsl:when>
+    <xsl:when test="artheader/title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="articleinfo/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="artheader/subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract"/>
+  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/abstract"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="article.titlepage.before.recto"/>
+    <xsl:call-template name="article.titlepage.recto"/>
+    <xsl:call-template name="article.titlepage.before.verso"/>
+    <xsl:call-template name="article.titlepage.verso"/>
+    <xsl:call-template name="article.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="article.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="article.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="set.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="setinfo/title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="setinfo/subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
+  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="set.titlepage.before.recto"/>
+    <xsl:call-template name="set.titlepage.recto"/>
+    <xsl:call-template name="set.titlepage.before.verso"/>
+    <xsl:call-template name="set.titlepage.verso"/>
+    <xsl:call-template name="set.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="set.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="set.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="book.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="bookinfo/title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="bookinfo/subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/>
+  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="book.titlepage.before.recto"/>
+    <xsl:call-template name="book.titlepage.recto"/>
+    <xsl:call-template name="book.titlepage.before.verso"/>
+    <xsl:call-template name="book.titlepage.verso"/>
+    <xsl:call-template name="book.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="book.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="book.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="part.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="partinfo/title">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="partinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/abstract"/>
+  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="part.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="part.titlepage.before.recto"/>
+    <xsl:call-template name="part.titlepage.recto"/>
+    <xsl:call-template name="part.titlepage.before.verso"/>
+    <xsl:call-template name="part.titlepage.verso"/>
+    <xsl:call-template name="part.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="part.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="part.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="partintroinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="partintroinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract"/>
+  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage">
+  <div>
+    <xsl:call-template name="partintro.titlepage.before.recto"/>
+    <xsl:call-template name="partintro.titlepage.recto"/>
+    <xsl:call-template name="partintro.titlepage.before.verso"/>
+    <xsl:call-template name="partintro.titlepage.verso"/>
+    <xsl:call-template name="partintro.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="referenceinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="referenceinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract"/>
+  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="reference.titlepage.before.recto"/>
+    <xsl:call-template name="reference.titlepage.recto"/>
+    <xsl:call-template name="reference.titlepage.before.verso"/>
+    <xsl:call-template name="reference.titlepage.verso"/>
+    <xsl:call-template name="reference.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.recto">
+  <div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="dedicationinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="dedication.titlepage.before.recto"/>
+    <xsl:call-template name="dedication.titlepage.recto"/>
+    <xsl:call-template name="dedication.titlepage.before.verso"/>
+    <xsl:call-template name="dedication.titlepage.verso"/>
+    <xsl:call-template name="dedication.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="dedication.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="prefaceinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract"/>
+  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="preface.titlepage.before.recto"/>
+    <xsl:call-template name="preface.titlepage.recto"/>
+    <xsl:call-template name="preface.titlepage.before.verso"/>
+    <xsl:call-template name="preface.titlepage.verso"/>
+    <xsl:call-template name="preface.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="chapterinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="chapterinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract"/>
+  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="chapter.titlepage.before.recto"/>
+    <xsl:call-template name="chapter.titlepage.recto"/>
+    <xsl:call-template name="chapter.titlepage.before.verso"/>
+    <xsl:call-template name="chapter.titlepage.verso"/>
+    <xsl:call-template name="chapter.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="appendixinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="appendixinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract"/>
+  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="appendix.titlepage.before.recto"/>
+    <xsl:call-template name="appendix.titlepage.recto"/>
+    <xsl:call-template name="appendix.titlepage.before.verso"/>
+    <xsl:call-template name="appendix.titlepage.verso"/>
+    <xsl:call-template name="appendix.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="section.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sectioninfo/title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sectioninfo/subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
+  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="section.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="section.titlepage.before.recto"/>
+    <xsl:call-template name="section.titlepage.recto"/>
+    <xsl:call-template name="section.titlepage.before.verso"/>
+    <xsl:call-template name="section.titlepage.verso"/>
+    <xsl:call-template name="section.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="section.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="section.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect1info/title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect1info/subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
+  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="sect1.titlepage.before.recto"/>
+    <xsl:call-template name="sect1.titlepage.recto"/>
+    <xsl:call-template name="sect1.titlepage.before.verso"/>
+    <xsl:call-template name="sect1.titlepage.verso"/>
+    <xsl:call-template name="sect1.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect2info/title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect2info/subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
+  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="sect2.titlepage.before.recto"/>
+    <xsl:call-template name="sect2.titlepage.recto"/>
+    <xsl:call-template name="sect2.titlepage.before.verso"/>
+    <xsl:call-template name="sect2.titlepage.verso"/>
+    <xsl:call-template name="sect2.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect3info/title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect3info/subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
+  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="sect3.titlepage.before.recto"/>
+    <xsl:call-template name="sect3.titlepage.recto"/>
+    <xsl:call-template name="sect3.titlepage.before.verso"/>
+    <xsl:call-template name="sect3.titlepage.verso"/>
+    <xsl:call-template name="sect3.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect4info/title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect4info/subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
+  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="sect4.titlepage.before.recto"/>
+    <xsl:call-template name="sect4.titlepage.recto"/>
+    <xsl:call-template name="sect4.titlepage.before.verso"/>
+    <xsl:call-template name="sect4.titlepage.verso"/>
+    <xsl:call-template name="sect4.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="sect5info/title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="sect5info/subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
+  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="sect5.titlepage.before.recto"/>
+    <xsl:call-template name="sect5.titlepage.recto"/>
+    <xsl:call-template name="sect5.titlepage.before.verso"/>
+    <xsl:call-template name="sect5.titlepage.verso"/>
+    <xsl:call-template name="sect5.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.recto">
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/>
+    </xsl:when>
+    <xsl:when test="docinfo/title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/>
+    </xsl:when>
+    <xsl:when test="title">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:choose>
+    <xsl:when test="simplesectinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract"/>
+  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="simplesect.titlepage.before.recto"/>
+    <xsl:call-template name="simplesect.titlepage.recto"/>
+    <xsl:call-template name="simplesect.titlepage.before.verso"/>
+    <xsl:call-template name="simplesect.titlepage.verso"/>
+    <xsl:call-template name="simplesect.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.recto">
+  <div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="bibliographyinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="bibliography.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="bibliography.titlepage.before.recto"/>
+    <xsl:call-template name="bibliography.titlepage.recto"/>
+    <xsl:call-template name="bibliography.titlepage.before.verso"/>
+    <xsl:call-template name="bibliography.titlepage.verso"/>
+    <xsl:call-template name="bibliography.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="bibliography.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="bibliography.titlepage.recto.style">
+<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.recto">
+  <div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="glossaryinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="glossary.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="glossary.titlepage.before.recto"/>
+    <xsl:call-template name="glossary.titlepage.recto"/>
+    <xsl:call-template name="glossary.titlepage.before.verso"/>
+    <xsl:call-template name="glossary.titlepage.verso"/>
+    <xsl:call-template name="glossary.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="glossary.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="glossary.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="glossary.titlepage.recto.style">
+<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="index.titlepage.recto">
+  <div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::index[1]"/>
+</xsl:call-template></div>
+  <xsl:choose>
+    <xsl:when test="indexinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="docinfo/subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/>
+    </xsl:when>
+    <xsl:when test="subtitle">
+      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/>
+    </xsl:when>
+  </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="index.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="index.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="index.titlepage">
+  <div class="titlepage">
+    <xsl:call-template name="index.titlepage.before.recto"/>
+    <xsl:call-template name="index.titlepage.recto"/>
+    <xsl:call-template name="index.titlepage.before.verso"/>
+    <xsl:call-template name="index.titlepage.verso"/>
+    <xsl:call-template name="index.titlepage.separator"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="*" mode="index.titlepage.recto.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="index.titlepage.verso.mode">
+  <!-- if an element isn't found in this mode, -->
+  <!-- try the generic titlepage.mode -->
+  <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="index.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="index.titlepage.recto.style">
+<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/titlepage.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,635 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: titlepage.xsl,v 1.2 2001/06/23 17:06:40 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:attribute-set name="book.titlepage.recto.style"/>
+<xsl:attribute-set name="book.titlepage.verso.style"/>
+
+<xsl:attribute-set name="article.titlepage.recto.style"/>
+<xsl:attribute-set name="article.titlepage.verso.style"/>
+
+<xsl:attribute-set name="set.titlepage.recto.style"/>
+<xsl:attribute-set name="set.titlepage.verso.style"/>
+
+<xsl:attribute-set name="part.titlepage.recto.style"/>
+<xsl:attribute-set name="part.titlepage.verso.style"/>
+
+<xsl:attribute-set name="partintro.titlepage.recto.style"/>
+<xsl:attribute-set name="partintro.titlepage.verso.style"/>
+
+<xsl:attribute-set name="reference.titlepage.recto.style"/>
+<xsl:attribute-set name="reference.titlepage.verso.style"/>
+
+<xsl:attribute-set name="dedication.titlepage.recto.style"/>
+<xsl:attribute-set name="dedication.titlepage.verso.style"/>
+
+<xsl:attribute-set name="preface.titlepage.recto.style"/>
+<xsl:attribute-set name="preface.titlepage.verso.style"/>
+
+<xsl:attribute-set name="chapter.titlepage.recto.style"/>
+<xsl:attribute-set name="chapter.titlepage.verso.style"/>
+
+<xsl:attribute-set name="appendix.titlepage.recto.style"/>
+<xsl:attribute-set name="appendix.titlepage.verso.style"/>
+
+<xsl:attribute-set name="bibliography.titlepage.recto.style"/>
+<xsl:attribute-set name="bibliography.titlepage.verso.style"/>
+
+<xsl:attribute-set name="glossary.titlepage.recto.style"/>
+<xsl:attribute-set name="glossary.titlepage.verso.style"/>
+
+<xsl:attribute-set name="index.titlepage.recto.style"/>
+<xsl:attribute-set name="index.titlepage.verso.style"/>
+
+<xsl:attribute-set name="section.titlepage.recto.style"/>
+<xsl:attribute-set name="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect1.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect1.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect2.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect2.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect3.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect3.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect4.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect4.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect5.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect5.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="simplesect.titlepage.recto.style"
+                   use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="simplesect.titlepage.verso.style"
+                   use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
+<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="titlepage.mode">
+  <!-- if an element isn't found in this mode, try the default mode -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="abbrev" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="titlepage.mode">
+  <div class="{name(.)}">
+    <xsl:call-template name="formal.object.heading">
+      <xsl:with-param name="title">
+        <xsl:apply-templates select="." mode="title.markup"/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="abstract/title" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="address" mode="titlepage.mode">
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="titlepage.mode">
+  <div class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="author" mode="titlepage.mode">
+  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+  <xsl:apply-templates mode="titlepage.mode" select="./affiliation"/>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="titlepage.mode">
+  <div class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="collab" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="titlepage.mode">
+  <div class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="confdates" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="titlepage.mode">
+  <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="contractnum" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="copyright" mode="titlepage.mode">
+  <xsl:variable name="years" select="year"/>
+  <xsl:variable name="holders" select="holder"/>
+
+  <p class="{name(.)}">
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Copyright'"/>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="dingbat">
+      <xsl:with-param name="dingbat">copyright</xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:apply-templates select="$years" mode="titlepage.mode"/>
+    <xsl:call-template name="gentext.space"/>
+<!--
+    <xsl:call-template name="gentext.by"/>
+    <xsl:call-template name="gentext.space"/>
+-->
+    <xsl:apply-templates select="$holders" mode="titlepage.mode"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="year" mode="titlepage.mode">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="titlepage.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="titlepage.mode">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="titlepage.mode">
+  <h3 class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </h3>
+</xsl:template>
+
+<xsl:template match="corpname" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="date" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="titlepage.mode">
+  <p class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <xsl:call-template name="gentext.space"/>
+    <xsl:call-template name="gentext">
+      <xsl:with-param name="key" select="'Edition'"/>
+    </xsl:call-template>
+  </p>
+</xsl:template>
+
+<xsl:template match="editor" mode="titlepage.mode">
+  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+</xsl:template>
+
+<xsl:template match="editor[position()=1]" mode="titlepage.mode">
+  <h4 class="editedby"><xsl:call-template name="gentext.edited.by"/></h4>
+  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+</xsl:template>
+
+<xsl:template match="firstname" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="graphic" mode="titlepage.mode">
+  <!-- use the normal graphic handling code -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="honorific" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="itermset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="keywordset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="legalnotice " mode="titlepage.mode">
+  <div class="{local-name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="legalnotice/title" mode="titlepage.mode">
+  <p class="legalnotice-title"><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="lineage" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="modespec" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.mode">
+  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+  <xsl:apply-templates mode="titlepage.mode"
+   select="./affiliation"/>
+</xsl:template>
+
+<xsl:template match="othername" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="titlepage.mode">
+  <div class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </div>
+</xsl:template>
+
+<xsl:template match="productname" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="titlepage.mode">
+  <p class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="publisher" mode="titlepage.mode">
+  <p class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="publishername" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="titlepage.mode">
+  <p class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </p>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="titlepage.mode">
+  <xsl:variable name="numcols">
+    <xsl:choose>
+      <xsl:when test="//authorinitials">3</xsl:when>
+      <xsl:otherwise>2</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <div class="{name(.)}">
+    <table border="1" width="100%" summary="Revision history">
+      <tr>
+        <th align="left" valign="top" colspan="{$numcols}">
+          <b>
+            <xsl:call-template name="gentext">
+              <xsl:with-param name="key" select="'RevHistory'"/>
+            </xsl:call-template>
+          </b>
+        </th>
+      </tr>
+      <xsl:apply-templates mode="titlepage.mode">
+        <xsl:with-param name="numcols" select="$numcols"/>
+      </xsl:apply-templates>
+    </table>
+  </div>
+</xsl:template>
+
+<xsl:template match="revhistory/revision" mode="titlepage.mode">
+  <xsl:param name="numcols" select="'3'"/>
+  <xsl:variable name="revnumber" select=".//revnumber"/>
+  <xsl:variable name="revdate"   select=".//date"/>
+  <xsl:variable name="revauthor" select=".//authorinitials"/>
+  <xsl:variable name="revremark" select=".//revremark|.//revdescription"/>
+  <tr>
+    <td align="left">
+      <xsl:if test="$revnumber">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'Revision'"/>
+        </xsl:call-template>
+        <xsl:call-template name="gentext.space"/>
+        <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
+      </xsl:if>
+    </td>
+    <td align="left">
+      <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
+    </td>
+    <xsl:choose>
+      <xsl:when test="$revauthor">
+        <td align="left">
+          <xsl:apply-templates select="$revauthor[1]" mode="titlepage.mode"/>
+        </td>
+      </xsl:when>
+      <xsl:when test="$numcols &gt; 2">
+        <td>&#160;</td>
+      </xsl:when>
+      <xsl:otherwise></xsl:otherwise>
+    </xsl:choose>
+  </tr>
+  <xsl:if test="$revremark">
+    <tr>
+      <td align="left" colspan="{$numcols}">
+        <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
+      </td>
+    </tr>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/date" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revremark" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription" mode="titlepage.mode">
+  <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="subjectset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="subtitle" mode="titlepage.mode">
+  <h2 class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="surname" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<xsl:template match="title" mode="titlepage.mode">
+  <xsl:variable name="id">
+    <xsl:choose>
+      <!-- if title is in an *info wrapper, get the grandparent -->
+      <xsl:when test="contains(local-name(..), 'info')">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="../.."/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select=".."/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <h1 class="{name(.)}">
+    <a name="{$id}"/>
+    <xsl:choose>
+      <xsl:when test="$show.revisionflag and @revisionflag">
+	<span class="{@revisionflag}">
+	  <xsl:apply-templates mode="titlepage.mode"/>
+	</span>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:apply-templates mode="titlepage.mode"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </h1>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="titlepage.mode">
+  <!-- nop; title abbreviations don't belong on the title page! -->
+</xsl:template>
+
+<xsl:template match="volumenum" mode="titlepage.mode">
+  <span class="{name(.)}">
+    <xsl:apply-templates mode="titlepage.mode"/>
+    <br/>
+  </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/toc.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/toc.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/toc.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,173 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: toc.xsl,v 1.2 2001/06/23 17:06:40 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="toc">
+  <xsl:choose>
+    <xsl:when test="*">
+      <xsl:if test="$process.source.toc != 0">
+        <!-- if the toc isn't empty, process it -->
+        <xsl:element name="{$toc.list.type}">
+          <xsl:apply-templates/>
+        </xsl:element>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$process.empty.source.toc != 0">
+        <xsl:choose>
+          <xsl:when test="parent::section
+                          or parent::sect1
+                          or parent::sect2
+                          or parent::sect3
+                          or parent::sect4
+                          or parent::sect5">
+            <xsl:apply-templates select="parent::*"
+                                 mode="toc.for.section"/>
+          </xsl:when>
+          <xsl:when test="parent::article">
+            <xsl:apply-templates select="parent::*"
+                                 mode="toc.for.component"/>
+          </xsl:when>
+          <xsl:when test="parent::book
+                          or parent::part">
+            <xsl:apply-templates select="parent::*"
+                                 mode="toc.for.division"/>
+          </xsl:when>
+          <xsl:when test="parent::set">
+            <xsl:apply-templates select="parent::*"
+                                 mode="toc.for.set"/>
+          </xsl:when>
+          <!-- there aren't any other contexts that allow toc -->
+          <xsl:otherwise>
+            <xsl:message>
+              <xsl:text>I don't know how to make a TOC in this context!</xsl:text>
+            </xsl:message>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocpart|tocchap
+                     |toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+  <xsl:variable name="sub-toc">
+    <xsl:if test="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+      <xsl:choose>
+        <xsl:when test="$toc.list.type = 'dl'">
+          <dd>
+            <xsl:element name="{$toc.list.type}">
+              <xsl:apply-templates select="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"/>
+            </xsl:element>
+          </dd>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:element name="{$toc.list.type}">
+            <xsl:apply-templates select="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"/>
+          </xsl:element>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:apply-templates select="tocentry[position() != last()]"/>
+
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">
+      <dt>
+        <xsl:apply-templates select="tocentry[position() = last()]"/>
+      </dt>
+      <xsl:copy-of select="$sub-toc"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <li>
+        <xsl:apply-templates select="tocentry[position() = last()]"/>
+        <xsl:copy-of select="$sub-toc"/>
+      </li>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocentry|tocfront|tocback">
+  <xsl:choose>
+    <xsl:when test="$toc.list.type = 'dl'">
+      <dt>
+        <xsl:call-template name="tocentry-content"/>
+      </dt>
+    </xsl:when>
+    <xsl:otherwise>
+      <li>
+        <xsl:call-template name="tocentry-content"/>
+      </li>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tocentry[position() = last()]" priority="2">
+  <xsl:call-template name="tocentry-content"/>
+</xsl:template>
+
+<xsl:template name="tocentry-content">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:choose>
+    <xsl:when test="@linkend">
+      <xsl:call-template name="check.id.unique">
+        <xsl:with-param name="linkend" select="@linkend"/>
+      </xsl:call-template>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates/>
+      </a>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-templates/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="toc.for.section">
+  <xsl:call-template name="section.toc"/>
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.component">
+  <xsl:call-template name="component.toc"/>
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.section">
+  <xsl:call-template name="section.toc"/>
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.division">
+  <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="*" mode="toc.for.set">
+  <xsl:call-template name="set.toc"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="lot|lotentry">
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/verbatim.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/verbatim.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/verbatim.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,303 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim"
+                xmlns:xverb="com.nwalsh.xalan.Verbatim"
+                xmlns:lxslt="http://xml.apache.org/xslt"
+                exclude-result-prefixes="sverb xverb lxslt"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: verbatim.xsl,v 1.2 2001/06/23 17:06:40 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<lxslt:component prefix="xverb"
+                 functions="numberLines"/>
+
+<xsl:template match="programlisting|screen|synopsis">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+  <xsl:if test="@id">
+    <a href="{$id}"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $use.extensions != '0'
+                    and $linenumbering.extension != '0'">
+      <xsl:variable name="rtf">
+        <xsl:apply-templates/>
+      </xsl:variable>
+      <pre class="{name(.)}">
+        <xsl:call-template name="number.rtf.lines">
+          <xsl:with-param name="rtf" select="$rtf"/>
+        </xsl:call-template>
+      </pre>
+    </xsl:when>
+    <xsl:otherwise>
+      <pre class="{name(.)}">
+        <xsl:apply-templates/>
+      </pre>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="literallayout">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $use.extensions != '0'
+                    and $linenumbering.extension != '0'">
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <pre class="{name(.)}">
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </pre>
+        </xsl:when>
+        <xsl:otherwise>
+          <div class="{name(.)}">
+            <xsl:call-template name="number.rtf.lines">
+              <xsl:with-param name="rtf" select="$rtf"/>
+            </xsl:call-template>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:choose>
+        <xsl:when test="@class='monospaced'">
+          <pre class="{name(.)}">
+            <xsl:copy-of select="$rtf"/>
+          </pre>
+        </xsl:when>
+        <xsl:otherwise>
+          <div class="{name(.)}">
+            <xsl:copy-of select="$rtf"/>
+          </div>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="literallayout[not(@class)
+                                   or @class != 'monospaced']//text()">
+  <xsl:call-template name="make-verbatim">
+    <xsl:with-param name="text" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="address">
+  <xsl:param name="suppress-numbers" select="'0'"/>
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:variable name="rtf">
+    <xsl:apply-templates/>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$suppress-numbers = '0'
+                    and @linenumbering = 'numbered'
+                    and $use.extensions != '0'
+                    and $linenumbering.extension != '0'">
+      <div class="{name(.)}">
+        <xsl:call-template name="number.rtf.lines">
+          <xsl:with-param name="rtf" select="$rtf"/>
+        </xsl:call-template>
+      </div>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <div class="{name(.)}">
+        <xsl:apply-templates/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="number.rtf.lines">
+  <xsl:param name="rtf" select="''"/>
+  <xsl:param name="pi.context" select="."/>
+
+  <!-- Save the global values -->
+  <xsl:variable name="global.linenumbering.everyNth"
+                select="$linenumbering.everyNth"/>
+
+  <xsl:variable name="global.linenumbering.separator"
+                select="$linenumbering.separator"/>
+
+  <xsl:variable name="global.linenumbering.width"
+                select="$linenumbering.width"/>
+
+  <!-- Extract the <?dbhtml linenumbering.*?> PI values -->
+  <xsl:variable name="pi.linenumbering.everyNth">
+    <xsl:call-template name="dbhtml-attribute">
+      <xsl:with-param name="pis"
+                      select="$pi.context/processing-instruction('dbhtml')"/>
+      <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.separator">
+    <xsl:call-template name="dbhtml-attribute">
+      <xsl:with-param name="pis"
+                      select="$pi.context/processing-instruction('dbhtml')"/>
+      <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <xsl:variable name="pi.linenumbering.width">
+    <xsl:call-template name="dbhtml-attribute">
+      <xsl:with-param name="pis"
+                      select="$pi.context/processing-instruction('dbhtml')"/>
+      <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+    </xsl:call-template>
+  </xsl:variable>
+
+  <!-- Construct the 'in-context' values -->
+  <xsl:variable name="linenumbering.everyNth">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.everyNth != ''">
+        <xsl:value-of select="$pi.linenumbering.everyNth"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.everyNth"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.separator">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.separator != ''">
+        <xsl:value-of select="$pi.linenumbering.separator"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.separator"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="linenumbering.width">
+    <xsl:choose>
+      <xsl:when test="$pi.linenumbering.width != ''">
+        <xsl:value-of select="$pi.linenumbering.width"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$global.linenumbering.width"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+  <xsl:choose>
+    <xsl:when test="contains($vendor, 'SAXON ')">
+      <xsl:copy-of select="sverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:when test="contains($vendor, 'Apache Software Foundation')">
+      <xsl:copy-of select="xverb:numberLines($rtf)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message terminate="yes">
+        <xsl:text>Don't know how to do line numbering with </xsl:text>
+        <xsl:value-of select="$vendor"/>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="address//text()">
+  <xsl:call-template name="make-verbatim">
+    <xsl:with-param name="text" select="."/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="make-verbatim">
+  <xsl:param name="text" select="''"/>
+
+  <xsl:variable name="starts-with-space"
+                select="substring($text, 1, 1) = ' '"/>
+
+  <xsl:variable name="starts-with-nl"
+                select="substring($text, 1, 1) = '&#xA;'"/>
+
+  <xsl:variable name="before-space">
+    <xsl:if test="contains($text, ' ')">
+      <xsl:value-of select="substring-before($text, ' ')"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:variable name="before-nl">
+    <xsl:if test="contains($text, '&#xA;')">
+      <xsl:value-of select="substring-before($text, '&#xA;')"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="$starts-with-space">
+      <xsl:text>&#160;</xsl:text>
+      <xsl:call-template name="make-verbatim">
+        <xsl:with-param name="text" select="substring($text,2)"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:when test="$starts-with-nl">
+      <br/><xsl:text>&#xA;</xsl:text>
+      <xsl:call-template name="make-verbatim">
+        <xsl:with-param name="text" select="substring($text,2)"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- if the string before a space is shorter than the string before
+         a newline, fix the space...-->
+    <xsl:when test="$before-space != ''
+                    and ((string-length($before-space)
+                          &lt; string-length($before-nl))
+                          or $before-nl = '')">
+      <xsl:value-of select="$before-space"/>
+      <xsl:text>&#160;</xsl:text>
+      <xsl:call-template name="make-verbatim">
+        <xsl:with-param name="text" select="substring-after($text, ' ')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- if the string before a newline is shorter than the string before
+         a space, fix the newline...-->
+    <xsl:when test="$before-nl != ''
+                    and ((string-length($before-nl)
+                          &lt; string-length($before-space))
+                          or $before-space = '')">
+      <xsl:value-of select="$before-nl"/>
+      <br/><xsl:text>&#xA;</xsl:text>
+      <xsl:call-template name="make-verbatim">
+        <xsl:with-param name="text" select="substring-after($text, '&#xA;')"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <!-- the string before the newline and the string before the
+         space are the same; which means they must both be empty -->
+    <xsl:otherwise>
+      <xsl:value-of select="$text"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xref.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xref.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xref.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,382 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: xref.xsl,v 1.2 2001/06/23 17:06:40 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="anchor">
+  <a>
+    <xsl:attribute name="name">
+      <xsl:call-template name="object.id"/>
+    </xsl:attribute>
+  </a>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="xref">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="refelem" select="local-name($target)"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <xsl:if test="@id">
+    <a name="{@id}"/>
+  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="count($target) = 0">
+      <xsl:message>
+	<xsl:text>XRef to nonexistent id: </xsl:text>
+	<xsl:value-of select="@linkend"/>
+      </xsl:message>
+      <xsl:text>???</xsl:text>
+    </xsl:when>
+
+    <xsl:when test="$target/@xreflabel">
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+        <xsl:call-template name="xref.xreflabel">
+          <xsl:with-param name="target" select="$target"/>
+        </xsl:call-template>
+      </a>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <a>
+        <xsl:attribute name="href">
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="object" select="$target"/>
+          </xsl:call-template>
+        </xsl:attribute>
+
+        <xsl:choose>
+	  <xsl:when test="@endterm">
+	    <xsl:variable name="etargets" select="id(@endterm)"/>
+	    <xsl:variable name="etarget" select="$etargets[1]"/>
+	    <xsl:choose>
+	      <xsl:when test="count($etarget) = 0">
+		<xsl:message>
+		  <xsl:value-of select="count($etargets)"/>
+		  <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+		  <xsl:value-of select="@endterm"/>
+		</xsl:message>
+		<xsl:text>???</xsl:text>
+	      </xsl:when>
+	      <xsl:otherwise>
+		<xsl:apply-templates select="$etarget" mode="xref.text"/>
+	      </xsl:otherwise>
+	    </xsl:choose>
+	  </xsl:when>
+
+          <xsl:otherwise>
+            <xsl:attribute name="title">
+              <xsl:apply-templates select="$target" mode="xref-title"/>
+            </xsl:attribute>
+
+            <xsl:apply-templates select="$target" mode="xref-to"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </a>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-to">
+  <xsl:param name="target" select="."/>
+  <xsl:param name="refelem" select="local-name($target)"/>
+
+  <xsl:message>
+    <xsl:text>Don't know what gentext to create for xref to: "</xsl:text>
+    <xsl:value-of select="$refelem"/>
+    <xsl:text>"</xsl:text>
+  </xsl:message>
+  <xsl:text>???</xsl:text>
+</xsl:template>
+
+<xsl:template match="author" mode="xref-to">
+  <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="figure" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="example" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="table" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="equation" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-to">
+  <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-to">
+  <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="dedication" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="preface" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="chapter" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="appendix" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to">
+  <!-- handles both biblioentry and bibliomixed -->
+  <xsl:text>[</xsl:text>
+  <xsl:choose>
+    <xsl:when test="local-name(*[1]) = 'abbrev'">
+      <xsl:apply-templates select="*[1]"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="@id"/>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:text>]</xsl:text>
+</xsl:template>
+
+<xsl:template match="glossary" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="index" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="section|simplesect
+                     |sect1|sect2|sect3|sect4|sect5
+                     |refsect1|refsect2|refsect3" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+  <!-- What about "in Chapter X"? -->
+</xsl:template>
+
+<xsl:template match="question" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="answer" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="part" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="reference" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-to">
+  <xsl:apply-templates select="." mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="book" mode="xref-to">
+  <xsl:apply-templates select="." mode="object.xref.markup"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="object.title.markup"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="author" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:call-template name="person.name"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="(.//command)[1]" mode="xref"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="(.//function)[1]" mode="xref"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-title">
+  <!-- handles both biblioentry and bibliomixed -->
+  <xsl:variable name="title">
+    <xsl:text>[</xsl:text>
+    <xsl:choose>
+      <xsl:when test="local-name(*[1]) = 'abbrev'">
+        <xsl:apply-templates select="*[1]"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@id"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>]</xsl:text>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-title">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="callout-bug"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$title"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="link">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+
+  <xsl:call-template name="check.id.unique">
+    <xsl:with-param name="linkend" select="@linkend"/>
+  </xsl:call-template>
+
+  <a>
+    <xsl:if test="@id">
+      <xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
+    </xsl:if>
+
+    <xsl:attribute name="href">
+      <xsl:call-template name="href.target">
+        <xsl:with-param name="object" select="$target"/>
+      </xsl:call-template>
+    </xsl:attribute>
+
+    <!-- FIXME: is there a better way to tell what elements have a title? -->
+    <xsl:if test="local-name($target) = 'book'
+                  or local-name($target) = 'set'
+                  or local-name($target) = 'chapter'
+                  or local-name($target) = 'preface'
+                  or local-name($target) = 'appendix'
+                  or local-name($target) = 'bibliography'
+                  or local-name($target) = 'glossary'
+                  or local-name($target) = 'index'
+                  or local-name($target) = 'part'
+                  or local-name($target) = 'refentry'
+                  or local-name($target) = 'reference'
+                  or local-name($target) = 'example'
+                  or local-name($target) = 'equation'
+                  or local-name($target) = 'table'
+                  or local-name($target) = 'figure'
+                  or local-name($target) = 'simplesect'
+                  or starts-with(local-name($target),'sect')
+                  or starts-with(local-name($target),'refsect')">
+      <xsl:attribute name="title">
+        <xsl:apply-templates select="$target"
+                             mode="object.title.markup.textonly"/>
+      </xsl:attribute>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+  </a>
+</xsl:template>
+
+<xsl:template match="ulink">
+  <a>
+    <xsl:if test="@id">
+      <xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
+    </xsl:if>
+    <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
+    <xsl:if test="$ulink.target != ''">
+      <xsl:attribute name="target">
+        <xsl:value-of select="$ulink.target"/>
+      </xsl:attribute>
+    </xsl:if>
+    <xsl:choose>
+      <xsl:when test="count(child::node())=0">
+	<xsl:value-of select="@url"/>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:apply-templates/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </a>
+</xsl:template>
+
+<xsl:template match="olink">
+  <xsl:if test="@id">
+    <a name="{@id}"/>
+  </xsl:if>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="xref.xreflabel">
+  <!-- called to process an xreflabel...you might use this to make  -->
+  <!-- xreflabels come out in the right font for different targets, -->
+  <!-- for example. -->
+  <xsl:param name="target" select="."/>
+  <xsl:value-of select="$target/@xreflabel"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="title" mode="xref">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="command" mode="xref">
+  <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="function" mode="xref">
+  <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xtchunk.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xtchunk.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xtchunk.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xt="http://www.jclark.com/xt"
+                extension-element-prefixes="xt"
+		version="1.0">
+
+<xsl:import href="docbook.xsl"/>
+<xsl:include href="chunk-common.xsl"/>
+<xsl:include href="xtchunker.xsl"/>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xtchunker.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xtchunker.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/html/xtchunker.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,70 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xt="http://www.jclark.com/xt"
+                extension-element-prefixes="xt"
+		version="1.0">
+
+<!-- This stylesheet works with XT; for others use chunker.xsl -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+  <xsl:param name="base.dir" select="'./'"/>
+  <xsl:param name="base.name" select="''"/>
+
+  <!-- XT makes chunks relative -->
+  <xsl:choose>
+    <xsl:when test="count(parent::*) = 0">
+      <xsl:value-of select="concat($base.dir,$base.name)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$base.name"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="encoding" select="'ISO-8859-1'"/>
+  <xsl:param name="indent" select="'no'"/>
+  <xsl:param name="content" select="''"/>
+
+  <xsl:message>
+    <xsl:text>Writing </xsl:text>
+    <xsl:value-of select="$filename"/>
+    <xsl:if test="name(.) != ''">
+      <xsl:text> for </xsl:text>
+      <xsl:value-of select="name(.)"/>
+    </xsl:if>
+  </xsl:message>
+
+  <!-- apparently XT doesn't support AVTs for method and encoding -->
+  <xsl:choose>
+    <xsl:when test="$method = 'xml'">
+      <xt:document href="{$filename}"
+                   method="xml"
+                   indent="{$indent}"
+                   encoding="ISO-8859-1">
+        <xsl:copy-of select="$content"/>
+      </xt:document>
+    </xsl:when>
+    <xsl:when test="$method = 'text'">
+      <xt:document href="{$filename}"
+                   method="text"
+                   indent="{$indent}"
+                   encoding="ISO-8859-1">
+        <xsl:copy-of select="$content"/>
+      </xt:document>
+    </xsl:when>
+    <xsl:otherwise>
+      <xt:document href="{$filename}"
+                   method="html"
+                   indent="{$indent}"
+                   encoding="ISO-8859-1">
+        <xsl:copy-of select="$content"/>
+      </xt:document>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+2001-05-05  Jirka Kosek <kosek at users.sourceforge.net>
+
+	* htmlhelp-common.xsl: Colophon is now included in toc.hhc
+
+2001-04-21  Jirka Kosek <kosek at users.sourceforge.net>
+
+	* README: Removed obsolete file
+
+2001-04-04  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* README, htmlhelp-common.xsl, htmlhelp.xsl, langcodes.xml, xthtmlhelp.xsl: 
+	New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/doc/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/doc/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/doc/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+2001-04-22  Jirka Kosek <kosek at users.sourceforge.net>
+
+	* htmlhelp.xml: Updated encoding issues for non-English languages
+
+2001-04-04  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* htmlhelp.xml: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/doc/htmlhelp.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/doc/htmlhelp.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/doc/htmlhelp.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,145 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE chapter PUBLIC '-//OASIS//DTD DocBook XML V4.1.2//EN'
+                      'http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd'>
+<chapter lang="en">
+<chapterinfo>
+<author>
+<firstname>Jirka</firstname>
+<surname>Kosek</surname>
+</author>
+<copyright>
+<year>2001</year>
+<holder>Ji&rcaron;&iacute; Kosek</holder>
+</copyright>
+<releaseinfo>$Id: htmlhelp.xml,v 1.1 2001/06/23 17:06:43 veillard Exp $</releaseinfo>
+</chapterinfo>
+<title>Using XSL stylesheets to generate HTML Help</title>
+<?dbhtml filename="htmlhelp.html"?>
+
+<para>HTML Help (HH) is help-format used in newer versions of MS
+Windows and applications written for this platform. This format allows
+to pack several HTML files together with images, table of contents and
+index into single file. Windows contains browser for this file-format
+and full-text search is also supported on HH files. If you want know
+more about HH and its capabilities look at <ulink
+url="http://msdn.microsoft.com/library/tools/htmlhelp/chm/HH1Start.htm">HTML
+Help pages</ulink>.</para>
+
+<section>
+<title>How to generate first HTML Help file from DocBook sources</title>
+
+<para>Working with HH stylesheets is same as with other XSL DocBook
+stylesheets. Simply run your favorite XSLT processor on your document
+with stylesheet suited for HH:</para>
+
+<screen format="linespecific">saxon <replaceable>yourfile</replaceable> <replaceable>/path/to/stylesheets/</replaceable>contrib/htmlhelp/htmlhelp.xsl</screen>
+
+<para>If you are using XT processor, you should use stylesheet
+<filename moreinfo="none">xthtmlhelp.xsl</filename> instead of
+<filename moreinfo="none">htmlhelp.xsl</filename>.</para>
+
+<para>Stylesheet imports standard chunking stylesheet, thus set of
+HTML files is created in usual way. Other files are also created
+&ndash; <filename>htmlhelp.hhp</filename> is project file for HTML
+Help Compiler and <filename>toc.hhc</filename> holds structure of your
+document.</para>
+
+<para>Language identifier for whole HH file is taken from the top most
+element with <sgmltag class="attribute">lang</sgmltag> attribute in
+your DocBook source. This is perfectly legal for documents in only one
+language. If language is not specified in the document, US English is
+defaulted. There is one problem &ndash; MS language codes are country
+sensitive, and this information is not available in DocBook source. If
+the stylesheet selects bad code for you, edit
+<filename>langcodes.xml</filename>, and remove all entries which have
+yours language code, but are located in inappropriate country.</para>
+
+<para>Title of whole HH file is taken from first title element in your
+document. Fulltext searching is automatically on. If your document
+contains index terms, they are automatically converted to HH ActiveX
+objects, which are recognized by HTML Help compiler.</para>
+
+<para>Stylesheet creates couple of files which are then used as an
+input for HTML Help Compiler (HHC) which is part of <ulink
+url="http://msdn.microsoft.com/library/tools/htmlhelp/wkshp/download_main.htm">HTML
+Help Workshop</ulink>. If you have HHC in your path, you can start
+conversion to HH format by running command:</para>
+
+<screen format="linespecific">hhc htmlhelp.hhp</screen>
+
+<para>If you can not stand without your mouse, there is alternative
+way. Just double-click on <filename
+moreinfo="none">htmlhelp.hhp</filename> file. HH Workshop will be
+launched automaticaly. Generation of HH file can be started by selecting
+<menuchoice moreinfo="none">
+<guimenu moreinfo="none">File</guimenu> <guimenuitem
+moreinfo="none">Compile</guimenuitem> </menuchoice> from application's
+menu.</para>
+
+</section>
+
+<section>
+<title>Customizing generated files</title>
+
+<section>
+<title>Enabling navigation links</title>
+
+<para>By default, HTML Help stylesheet disables navigation links at
+the start and the bottom of each page. If you want to enable this
+feature, start your XSLT processor with parameter <parameter
+moreinfo="none">suppress.navigation</parameter> set to 0.</para>
+
+<screen format="linespecific">saxon <replaceable>yourfile</replaceable> <replaceable>/path/to/stylesheets/</replaceable>contrib/htmlhelp/htmlhelp.xsl "suppress.navigation=0"</screen>
+
+<para>Another approach is to create driver file, which overrides
+default parameter value.</para>
+
+<programlisting><![CDATA[<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	        version="1.0">
+
+  <xsl:import href="]]><replaceable>/path/to/stylesheets/</replaceable>contrib/htmlhelp/htmlhelp.xsl<![CDATA["/>
+
+  <xsl:param name="suppress.navigation" select="0"/>
+
+</xsl:stylesheet>
+]]></programlisting>
+
+</section>
+
+<section>
+<title>Generating HTML Help for non-Western European languages</title>
+
+<para>If you are generating HTML Help for non-Western Europe
+languages, you should change output encoding of your files, because
+HTML Help compiler improperly handles UTF-8 and even character
+entities in TOC file and index entries. This can be easily done by
+<quote>driver</quote> file like this:</para>
+
+<programlisting><![CDATA[<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	        version="1.0">
+
+  <xsl:import href="]]><replaceable>/path/to/stylesheets/</replaceable>contrib/htmlhelp/htmlhelp.xsl<![CDATA["/>
+
+  <xsl:param name="htmlhelp.encoding" select="'windows-1250'"/>
+  <xsl:param name="default.encoding" select="'windows-1250'"/>
+  <xsl:param name="saxon.character.representation" select="'native'"/>
+
+</xsl:stylesheet>
+]]></programlisting>
+
+<para>Default encoding is ISO-8859-1 (aka ISO Latin 1).</para>
+
+</section>
+
+</section>
+
+<section>
+<title>Feedback</title>
+
+<para>If you have any comments and suggestion about HTML Help
+stylesheet feel free to contact me at following address
+<email>jirka at kosek.cz</email>.</para>
+
+</section>
+
+</chapter>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/htmlhelp-common.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/htmlhelp-common.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/htmlhelp-common.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,359 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version="1.0">
+
+<!-- ********************************************************************
+     $Id: htmlhelp-common.xsl,v 1.1 2001/06/23 17:06:42 veillard Exp $
+     ******************************************************************** 
+
+     This file is used by htmlhelp.xsl if you want to generate source
+     files for HTML Help.  It is based on the XSL DocBook Stylesheet
+     distribution (especially on JavaHelp code) from Norman Walsh.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+<xsl:param name="htmlhelp.encoding" select="'iso-8859-1'"/>
+
+<doc:param name="htmlhelp.encoding" xmlns="">
+<refpurpose>Character encoding to use in files for HTML Help compiler.</refpurpose>
+<refdescription>
+<para>HTML Help Compiler is not UTF-8 aware, so you should always use
+apropriate single-byte encoding here.</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="suppress.navigation" select="1"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+  <xsl:apply-templates/>
+  <xsl:call-template name="hhp"/>
+  <xsl:call-template name="hhc"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="hhp">
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename" select="'htmlhelp.hhp'"/>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="hhp-main"/>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template name="hhp-main">
+<xsl:text>[OPTIONS]
+</xsl:text>
+<xsl:if test="//indexterm">
+<xsl:text>Auto Index=Yes
+</xsl:text></xsl:if>
+<xsl:text>Compatibility=1.1 or later
+Compiled file=htmlhelp.chm
+Contents file=toc.hhc
+Default topic=</xsl:text>
+ <xsl:call-template name="make-relative-filename">
+   <xsl:with-param name="base.dir" select="$base.dir"/>
+   <xsl:with-param name="base.name">
+     <xsl:apply-templates mode="chunk-filename" select="/"/>
+   </xsl:with-param>
+ </xsl:call-template>
+<xsl:text>
+Display compile progress=No
+Full-text search=Yes
+Language=</xsl:text>
+<xsl:if test="//@lang">
+  <xsl:variable name="lang" select="//@lang[1]"/>
+  <xsl:value-of select="document('langcodes.xml')//gentext[@lang=string($lang)]"/>
+</xsl:if>
+<xsl:if test="not(//@lang)">
+  <xsl:text>0x0409 English (United States)
+</xsl:text></xsl:if>
+<xsl:text>
+Title=</xsl:text><xsl:value-of select="//title[1]"/>
+<xsl:text>
+
+[FILES]
+</xsl:text>
+<xsl:apply-templates mode="enumerate-files"/>
+</xsl:template>
+<!-- ==================================================================== -->
+
+<xsl:template match="set|book|part|preface|chapter|appendix
+                     |article
+                     |reference|refentry
+                     |sect1[position()>1]
+                     |section[position()>1 and name(parent::*) != 'section']
+                     |book/glossary|article/glossary
+                     |book/bibliography|article/bibliography
+                     |colophon"
+              mode="enumerate-files">
+  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+  <xsl:if test="$ischunk='1'">
+    <xsl:call-template name="make-relative-filename">
+      <xsl:with-param name="base.dir" select="$base.dir"/>
+      <xsl:with-param name="base.name">
+        <xsl:apply-templates mode="chunk-filename" select="."/>
+      </xsl:with-param>
+    </xsl:call-template>
+    <xsl:text>&#10;</xsl:text>
+  </xsl:if>
+  <xsl:apply-templates select="*" mode="enumerate-files"/>
+</xsl:template>
+
+<xsl:template match="text()" mode="enumerate-files">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!-- Following templates are not nice. It is because MS help compiler is unable
+     to process correct HTML files. We must generate following weird
+     stuff instead. -->
+
+<xsl:template name="hhc">
+  <xsl:call-template name="write.text.chunk">
+    <xsl:with-param name="filename" select="'toc.hhc'"/>
+    <xsl:with-param name="method" select="'text'"/>
+    <xsl:with-param name="content">
+      <xsl:call-template name="hhc-main"/>
+    </xsl:with-param>
+    <xsl:with-param name="encoding" select="$htmlhelp.encoding"/>
+  </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="hhc-main">
+    <xsl:text>&lt;HTML&gt;
+&lt;HEAD&gt;
+&lt;/HEAD&gt;
+&lt;BODY&gt;
+&lt;OBJECT type="text/site properties"&gt;
+	&lt;param name="ImageType" value="Folder"&gt;
+&lt;/OBJECT&gt;
+&lt;UL&gt;
+</xsl:text>
+      <xsl:apply-templates select="." mode="hhc"/>
+<xsl:text>&lt;/UL&gt;
+&lt;/BODY&gt;
+&lt;/HTML&gt;</xsl:text>
+</xsl:template>
+
+<xsl:template match="set" mode="hhc">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:text>&lt;LI&gt; &lt;OBJECT type="text/sitemap"&gt;
+    &lt;param name="Name" value="</xsl:text>
+	<xsl:value-of select="$title"/>
+    <xsl:text>"&gt;
+    &lt;param name="Local" value="</xsl:text>
+	<xsl:call-template name="href.target.with.base.dir"/>
+    <xsl:text>"&gt;
+  &lt;/OBJECT&gt;</xsl:text>
+  <xsl:if test="book">
+    <xsl:text>&lt;UL&gt;</xsl:text>
+      <xsl:apply-templates select="book" mode="hhc"/>
+    <xsl:text>&lt;/UL&gt;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="book" mode="hhc">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:text>&lt;LI&gt; &lt;OBJECT type="text/sitemap"&gt;
+    &lt;param name="Name" value="</xsl:text>
+	<xsl:value-of select="$title"/>
+    <xsl:text>"&gt;
+    &lt;param name="Local" value="</xsl:text>
+	<xsl:call-template name="href.target.with.base.dir"/>
+    <xsl:text>"&gt;
+  &lt;/OBJECT&gt;</xsl:text>
+  <xsl:if test="part|reference|preface|chapter|appendix|article|colophon">
+    <xsl:text>&lt;UL&gt;</xsl:text>
+      <xsl:apply-templates select="part|reference|preface|chapter|appendix|article|colophon"
+			   mode="hhc"/>
+    <xsl:text>&lt;/UL&gt;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="part|reference|preface|chapter|appendix|article"
+              mode="hhc">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:text>&lt;LI&gt; &lt;OBJECT type="text/sitemap"&gt;
+    &lt;param name="Name" value="</xsl:text>
+	<xsl:value-of select="$title"/>
+    <xsl:text>"&gt;
+    &lt;param name="Local" value="</xsl:text>
+	<xsl:call-template name="href.target.with.base.dir"/>
+    <xsl:text>"&gt;
+  &lt;/OBJECT&gt;</xsl:text>
+  <xsl:if test="reference|preface|chapter|appendix|refentry|section|sect1">
+    <xsl:text>&lt;UL&gt;</xsl:text>
+      <xsl:apply-templates
+	select="reference|preface|chapter|appendix|refentry|section|sect1"
+	mode="hhc"/>
+    <xsl:text>&lt;/UL&gt;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="section" mode="hhc">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:text>&lt;LI&gt; &lt;OBJECT type="text/sitemap"&gt;
+    &lt;param name="Name" value="</xsl:text>
+	<xsl:value-of select="$title"/>
+    <xsl:text>"&gt;
+    &lt;param name="Local" value="</xsl:text>
+	<xsl:call-template name="href.target.with.base.dir"/>
+    <xsl:text>"&gt;
+  &lt;/OBJECT&gt;</xsl:text>
+  <xsl:if test="section">
+    <xsl:text>&lt;UL&gt;</xsl:text>
+      <xsl:apply-templates select="section" mode="hhc"/>
+    <xsl:text>&lt;/UL&gt;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect1" mode="hhc">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:text>&lt;LI&gt; &lt;OBJECT type="text/sitemap"&gt;
+    &lt;param name="Name" value="</xsl:text>
+	<xsl:value-of select="$title"/>
+    <xsl:text>"&gt;
+    &lt;param name="Local" value="</xsl:text>
+	<xsl:call-template name="href.target.with.base.dir"/>
+    <xsl:text>"&gt;
+  &lt;/OBJECT&gt;</xsl:text>
+  <xsl:if test="sect2">
+    <xsl:text>&lt;UL&gt;</xsl:text>
+      <xsl:apply-templates select="sect2"
+			   mode="hhc"/>
+    <xsl:text>&lt;/UL&gt;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect2" mode="hhc">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:text>&lt;LI&gt; &lt;OBJECT type="text/sitemap"&gt;
+    &lt;param name="Name" value="</xsl:text>
+	<xsl:value-of select="$title"/>
+    <xsl:text>"&gt;
+    &lt;param name="Local" value="</xsl:text>
+	<xsl:call-template name="href.target.with.base.dir"/>
+    <xsl:text>"&gt;
+  &lt;/OBJECT&gt;</xsl:text>
+  <xsl:if test="sect3">
+    <xsl:text>&lt;UL&gt;</xsl:text>
+      <xsl:apply-templates select="sect3"
+			   mode="hhc"/>
+    <xsl:text>&lt;/UL&gt;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect3" mode="hhc">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:text>&lt;LI&gt; &lt;OBJECT type="text/sitemap"&gt;
+    &lt;param name="Name" value="</xsl:text>
+	<xsl:value-of select="$title"/>
+    <xsl:text>"&gt;
+    &lt;param name="Local" value="</xsl:text>
+	<xsl:call-template name="href.target.with.base.dir"/>
+    <xsl:text>"&gt;
+  &lt;/OBJECT&gt;</xsl:text>
+  <xsl:if test="sect4">
+    <xsl:text>&lt;UL&gt;</xsl:text>
+      <xsl:apply-templates select="sect4"
+			   mode="hhc"/>
+    <xsl:text>&lt;/UL&gt;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect4" mode="hhc">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:text>&lt;LI&gt; &lt;OBJECT type="text/sitemap"&gt;
+    &lt;param name="Name" value="</xsl:text>
+	<xsl:value-of select="$title"/>
+    <xsl:text>"&gt;
+    &lt;param name="Local" value="</xsl:text>
+	<xsl:call-template name="href.target.with.base.dir"/>
+    <xsl:text>"&gt;
+  &lt;/OBJECT&gt;</xsl:text>
+  <xsl:if test="sect5">
+    <xsl:text>&lt;UL&gt;</xsl:text>
+      <xsl:apply-templates select="sect5"
+			   mode="hhc"/>
+    <xsl:text>&lt;/UL&gt;</xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect5|refentry|colophon" mode="hhc">
+  <xsl:variable name="title">
+    <xsl:apply-templates select="." mode="title.markup"/>
+  </xsl:variable>
+
+  <xsl:text>&lt;LI&gt; &lt;OBJECT type="text/sitemap"&gt;
+    &lt;param name="Name" value="</xsl:text>
+	<xsl:value-of select="$title"/>
+    <xsl:text>"&gt;
+    &lt;param name="Local" value="</xsl:text>
+	<xsl:call-template name="href.target.with.base.dir"/>
+    <xsl:text>"&gt;
+  &lt;/OBJECT&gt;</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexterm">
+
+  <xsl:variable name="text">
+    <xsl:value-of select="primary"/>
+    <xsl:if test="secondary">
+      <xsl:text>, </xsl:text>
+      <xsl:value-of select="secondary"/>
+    </xsl:if>
+    <xsl:if test="tertiary">
+      <xsl:text>, </xsl:text>
+      <xsl:value-of select="tertiary"/>
+    </xsl:if>
+  </xsl:variable>
+
+  <OBJECT type="application/x-oleobject"
+          classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
+    <param name="Keyword" value="{$text}"/>
+  </OBJECT>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="href.target.with.base.dir">
+  <xsl:value-of select="$base.dir"/>
+  <xsl:call-template name="href.target"/>
+</xsl:template>
+
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/htmlhelp.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/htmlhelp.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/htmlhelp.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+		version="1.0"
+                exclude-result-prefixes="doc">
+
+<xsl:import href="../html/chunk.xsl"/>
+<xsl:include href="htmlhelp-common.xsl"/>
+
+<xsl:template name="write.text.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'text'"/>
+  <xsl:param name="content" select="''"/>
+  <xsl:param name="encoding" select="'iso-8859-1'"/>
+  <xsl:call-template name="write.chunk">
+    <xsl:with-param name="filename" select="$filename"/>
+    <xsl:with-param name="method" select="$method"/>
+    <xsl:with-param name="content" select="$content"/>
+    <xsl:with-param name="encoding" select="$encoding"/>
+  </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/langcodes.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/langcodes.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/langcodes.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<localization>
+<gentext lang="sq">0x041c Albanian</gentext>
+<gentext lang="ar">0x1401 Arabic (ALGERIA)</gentext>
+<gentext lang="es">0x2c0a Spanish (ARGENTINA)</gentext>
+<gentext lang="en">0x0c09 English (AUSTRALIA)</gentext>
+<gentext lang="de">0x0c07 German (AUSTRIA)</gentext>
+<gentext lang="ar">0x3c01 Arabic (BAHRAIN)</gentext>
+<gentext lang="be">0x0423 Byelorussian</gentext>
+<gentext lang="fr">0x080c French (BELGIUM)</gentext>
+<gentext lang="en">0x2809 English (BELIZE)</gentext>
+<gentext lang="es">0x400a Spanish (BOLIVIA)</gentext>
+<gentext lang="pt">0x0416 Portuguese (BRAZIL)</gentext>
+<gentext lang="ms">0x083e Malay (BRUNEI DARUSSALAM)</gentext>
+<gentext lang="bg">0x0402 Bulgarian</gentext>
+<gentext lang="fr">0x0c0c French (CANADA)</gentext>
+<gentext lang="es">0x340a Spanish (CHILE)</gentext>
+<gentext lang="zh">0x0804 Chinese (CHINA)</gentext>
+<gentext lang="es">0x240a Spanish (COLOMBIA)</gentext>
+<gentext lang="es">0x140a Spanish (COSTA RICA)</gentext>
+<gentext lang="hr">0x041a Croatian</gentext>
+<gentext lang="cs">0x0405 Czech</gentext>
+<gentext lang="da">0x0406 Danish</gentext>
+<gentext lang="es">0x1c0a Spanish (DOMINICAN REPUBLIC)</gentext>
+<gentext lang="es">0x300a Spanish (ECUADOR)</gentext>
+<gentext lang="ar">0x0c01 Arabic (EGYPT)</gentext>
+<gentext lang="es">0x440a Spanish (EL SALVADOR)</gentext>
+<gentext lang="et">0x0425 Estonian</gentext>
+<gentext lang="fo">0x0438 Faeroese</gentext>
+<gentext lang="fi">0x040b Finnish</gentext>
+<gentext lang="fr">0x040c French (FRANCE)</gentext>
+<gentext lang="de">0x0407 German (GERMANY)</gentext>
+<gentext lang="el">0x0408 Greek</gentext>
+<gentext lang="es">0x100a Spanish (GUATEMALA)</gentext>
+<gentext lang="es">0x480a Spanish (HONDURAS)</gentext>
+<gentext lang="zh">0x0c04 Chinese (HONG KONG)</gentext>
+<gentext lang="hu">0x040e Hungarian</gentext>
+<gentext lang="is">0x040f Icelandic</gentext>
+<gentext lang="hi">0x0439 Hindi</gentext>
+<gentext lang="in">0x04</gentext>
+<gentext lang="fa">0x0429 Farsi</gentext>
+<gentext lang="ar">0x0801 Arabic (IRAQ)</gentext>
+<gentext lang="en">0x1809 English (IRELAND)</gentext>
+<gentext lang="iw">0x04</gentext>
+<gentext lang="it">0x0410 Italian</gentext>
+<gentext lang="en">0x2009 English (JAMAICA)</gentext>
+<gentext lang="ja">0x0411 Japanese</gentext>
+<gentext lang="ar">0x2c01 Arabic (JORDAN)</gentext>
+<gentext lang="sw">0x0441 Swahili</gentext>
+<gentext lang="ko">0x0412 Korean</gentext>
+<gentext lang="ar">0x3401 Arabic (KUWAIT)</gentext>
+<gentext lang="lv">0x0426 Latvian (Lettish)</gentext>
+<gentext lang="ar">0x3001 Arabic (LEBANON)</gentext>
+<gentext lang="ar">0x1001 Arabic (LIBYAN ARAB JAMAHIRIYA)</gentext>
+<gentext lang="de">0x1407 German (LIECHTENSTEIN)</gentext>
+<gentext lang="lt">0x0427 Lithuanian</gentext>
+<gentext lang="de">0x1007 German (LUXEMBOURG)</gentext>
+<gentext lang="zh">0x1404 Chinese (MACAU)</gentext>
+<gentext lang="mk">0x042f Macedonian</gentext>
+<gentext lang="ms">0x043e Malay (MALAYSIA)</gentext>
+<gentext lang="es">0x080a Spanish (MEXICO)</gentext>
+<gentext lang="fr">0x180c French (MONACO)</gentext>
+<gentext lang="ar">0x1801 Arabic (MOROCCO)</gentext>
+<gentext lang="nl">0x0413 Dutch</gentext>
+<gentext lang="en">0x1409 English (NEW ZEALAND)</gentext>
+<gentext lang="es">0x4c0a Spanish (NICARAGUA)</gentext>
+<gentext lang="no">0x0414 Norwegian</gentext>
+<gentext lang="ar">0x2001 Arabic (OMAN)</gentext>
+<gentext lang="ur">0x0420 Urdu</gentext>
+<gentext lang="es">0x180a Spanish (PANAMA)</gentext>
+<gentext lang="es">0x3c0a Spanish (PARAGUAY)</gentext>
+<gentext lang="es">0x280a Spanish (PERU)</gentext>
+<gentext lang="en">0x3409 English (PHILIPPINES)</gentext>
+<gentext lang="pl">0x0415 Polish</gentext>
+<gentext lang="pt">0x0816 Portuguese (PORTUGAL)</gentext>
+<gentext lang="es">0x500a Spanish (PUERTO RICO)</gentext>
+<gentext lang="ar">0x4001 Arabic (QATAR)</gentext>
+<gentext lang="ro">0x0418 Romanian</gentext>
+<gentext lang="ru">0x0419 Russian</gentext>
+<gentext lang="ar">0x0401 Arabic (SAUDI ARABIA)</gentext>
+<gentext lang="zh">0x1004 Chinese (SINGAPORE)</gentext>
+<gentext lang="sk">0x041b Slovak</gentext>
+<gentext lang="sl">0x0424 Slovenian</gentext>
+<gentext lang="af">0x0436 Afrikaans</gentext>
+<gentext lang="ca">0x0403 Catalan</gentext>
+<gentext lang="sv">0x041d Swedish</gentext>
+<gentext lang="de">0x0807 German (SWITZERLAND)</gentext>
+<gentext lang="ar">0x2801 Arabic (SYRIAN ARAB REPUBLIC)</gentext>
+<gentext lang="zh">0x0404 Chinese (TAIWAN, PROVINCE OF CHINA)</gentext>
+<gentext lang="th">0x041e Thai</gentext>
+<gentext lang="en">0x2c09 English (TRINIDAD AND TOBAGO)</gentext>
+<gentext lang="ar">0x1c01 Arabic (TUNISIA)</gentext>
+<gentext lang="tr">0x041f Turkish</gentext>
+<gentext lang="uk">0x0422 Ukrainian</gentext>
+<gentext lang="ar">0x3801 Arabic (UNITED ARAB EMIRATES)</gentext>
+<gentext lang="en">0x0809 English (UNITED KINGDOM)</gentext>
+<gentext lang="en">0x0409 English (UNITED STATES)</gentext>
+<gentext lang="es">0x380a Spanish (URUGUAY)</gentext>
+<gentext lang="es">0x200a Spanish (VENEZUELA)</gentext>
+<gentext lang="vi">0x242a Vietnamese</gentext>
+<gentext lang="ar">0x2401 Arabic (YEMEN)</gentext>
+<gentext lang="en">0x3009 English (ZIMBABWE)</gentext>
+</localization>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/xthtmlhelp.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/xthtmlhelp.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/htmlhelp/xthtmlhelp.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xt="http://www.jclark.com/xt"
+                extension-element-prefixes="xt"
+                version="1.0">
+
+<xsl:import href="../html/xtchunk.xsl"/>
+<xsl:include href="htmlhelp-common.xsl"/>
+
+<xsl:template name="write.text.chunk">
+  <xsl:param name="filename" select="''"/>
+  <xsl:param name="method" select="'html'"/>
+  <xsl:param name="content" select="''"/>
+  <xsl:param name="encoding" select="'iso-8859-1'"/>
+
+  <!-- XT bug, if method is an AVT, it doesn't work -->
+  <!-- encoding doesn't work as an AVT either -->
+  <xt:document method="text" href="{$filename}" encoding="iso-8859-1">
+    <xsl:copy-of select="$content"/>
+  </xt:document>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+2001-04-02  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* caution.gif, caution.png, caution.tif, home.png, important.gif, important.png, important.tif, next.png, note.gif, note.png, note.tif, prev.png, tip.gif, tip.png, tip.tif, toc-blank.png, toc-minus.png, toc-plus.png, up.png, warning.gif, warning.png, warning.tif: 
+	New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/1.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/10.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/10.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/2.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/3.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/4.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/5.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/5.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/6.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/6.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/7.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/7.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/8.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/8.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/9.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/9.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/callouts/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+2001-04-02  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* 1.png, 10.png, 2.png, 3.png, 4.png, 5.png, 6.png, 7.png, 8.png, 9.png: 
+	New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/caution.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/caution.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/caution.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/caution.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/caution.tif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/caution.tif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/home.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/home.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/important.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/important.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/important.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/important.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/important.tif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/important.tif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/next.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/next.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/note.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/note.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/note.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/note.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/note.tif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/note.tif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/prev.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/prev.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/tip.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/tip.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/tip.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/tip.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/tip.tif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/tip.tif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/toc-blank.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/toc-blank.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/toc-minus.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/toc-minus.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/toc-plus.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/toc-plus.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/up.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/up.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/warning.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/warning.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/warning.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/warning.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/warning.tif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/images/warning.tif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+2001-04-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* lib.xsl: Documentation fixes
+
+2001-04-02  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* lib.xsl: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/LostLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/LostLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/LostLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+2000-04-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* lib.xsl: Added xpointer.idref
+
+1999-12-28  Norman Walsh  <ndw at nwalsh.com>
+
+	* lib.xsl: Added stylesheet version
+
+1999-10-20  Norman Walsh  <ndw at nwalsh.com>
+
+	* lib.xsl: Update URI in all the included modules
+
+1999-07-27  Norman Walsh  <ndw at nwalsh.com>
+
+	* lib.xsl: Updated to July spec
+
+1999-07-15  Norman Walsh  <ndw at nwalsh.com>
+
+	* lib.xsl: Added copy-string function
+
+1999-05-20  Norman Walsh  <ndw at nwalsh.com>
+
+	* lib.xsl: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,200 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+EXTRA_DIST = ChangeLog LostLog lib.xsl
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/lib/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/lib
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/lib/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,200 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+EXTRA_DIST = ChangeLog LostLog lib.xsl
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/lib/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/lib
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/lib/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/lib.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/lib.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/lib/lib.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,242 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: lib.xsl,v 1.2 2001/06/23 17:06:45 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     This module implements DTD-independent functions
+
+     ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id: lib.xsl,v 1.2 2001/06/23 17:06:45 veillard Exp $
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>Library Template Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<xsl:template name="dot.count">
+  <!-- Returns the number of "." characters in a string -->
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="count" select="0"/>
+  <xsl:choose>
+    <xsl:when test="contains($string, '.')">
+      <xsl:call-template name="dot.count">
+        <xsl:with-param name="string" select="substring-after($string, '.')"/>
+        <xsl:with-param name="count" select="$count+1"/>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$count"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<xsl:template name="copy-string">
+  <!-- returns 'count' copies of 'string' -->
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="count" select="0"/>
+  <xsl:param name="result"></xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>0">
+      <xsl:call-template name="copy-string">
+        <xsl:with-param name="string" select="$string"/>
+        <xsl:with-param name="count" select="$count - 1"/>
+        <xsl:with-param name="result">
+          <xsl:value-of select="$result"/>
+          <xsl:value-of select="$string"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$result"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="string.subst" xmlns="">
+<refpurpose>Substitute one text string for another in a string</refpurpose>
+<refdescription>
+<para>The <function>string.subst</function> template replaces all
+occurances of <parameter>target</parameter> in <parameter>string</parameter>
+with <parameter>replacement</parameter> and returns the result.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="string.subst">
+  <xsl:param name="string"></xsl:param>
+  <xsl:param name="target"></xsl:param>
+  <xsl:param name="replacement"></xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="contains($string, $target)">
+      <xsl:variable name="rest">
+        <xsl:call-template name="string.subst">
+          <xsl:with-param name="string"
+                          select="substring-after($string, $target)"/>
+          <xsl:with-param name="target" select="$target"/>
+          <xsl:with-param name="replacement" select="$replacement"/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:value-of select="concat(substring-before($string, $target),
+                                   $replacement,
+                                   $rest)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$string"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="xpointer.idref" xmlns="">
+<refpurpose>Extract IDREF from an XPointer</refpurpose>
+<refdescription>
+<para>The <function>xpointer.idref</function> template returns the
+ID portion of an XPointer which is a pointer to an ID within the current
+document, or the empty string if it is not.</para>
+<para>In other words, <function>xpointer.idref</function> returns
+<quote>foo</quote> when passed either <literal>#foo</literal>
+or <literal>#xpointer(id('foo'))</literal>, otherwise it returns
+the empty string.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="xpointer.idref">
+  <xsl:param name="xpointer">http://...</xsl:param>
+  <xsl:choose>
+    <xsl:when test="starts-with($xpointer, '#xpointer(id(')">
+      <xsl:variable name="rest" select="substring-after($xpointer, '#xpointer(id(')"/>
+      <xsl:variable name="quote" select="substring($rest, 1, 1)"/>
+      <xsl:value-of select="substring-before(substring-after($xpointer, $quote), $quote)"/>
+    </xsl:when>
+    <xsl:when test="starts-with($xpointer, '#')">
+      <xsl:value-of select="substring-after($xpointer, '#')"/>
+    </xsl:when>
+    <!-- otherwise it's a pointer to some other document -->
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="length-magnitude" xmlns="">
+<refpurpose>Return the unqualified dimension from a length specification</refpurpose>
+<refdescription>
+<para>The <function>length-magnitude</function> template returns the
+unqualified length ("20" for "20pt") from a dimension.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="length-magnitude">
+  <xsl:param name="length" select="'0pt'"/>
+
+  <xsl:choose>
+    <xsl:when test="string-length($length) = 0"/>
+    <xsl:when test="substring($length,1,1) = '0'
+                    or substring($length,1,1) = '1'
+                    or substring($length,1,1) = '2'
+                    or substring($length,1,1) = '3'
+                    or substring($length,1,1) = '4'
+                    or substring($length,1,1) = '5'
+                    or substring($length,1,1) = '6'
+                    or substring($length,1,1) = '7'
+                    or substring($length,1,1) = '8'
+                    or substring($length,1,1) = '9'
+                    or substring($length,1,1) = '.'">
+      <xsl:value-of select="substring($length,1,1)"/>
+      <xsl:call-template name="length-magnitude">
+        <xsl:with-param name="length" select="substring($length,2)"/>
+      </xsl:call-template>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="length-spec" xmlns="">
+<refpurpose>Return a fully qualified length specification</refpurpose>
+<refdescription>
+<para>The <function>length-spec</function> template returns the
+qualified length from a dimension. If an unqualified length is given,
+the <parameter>default.units</parameter> will be added to it.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="length-spec">
+  <xsl:param name="length" select="'0pt'"/>
+  <xsl:param name="default.units" select="'pt'"/>
+  <xsl:variable name="magnitude">
+    <xsl:call-template name="length-magnitude">
+      <xsl:with-param name="length" select="$length"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="units">
+    <xsl:value-of select="substring($length, string-length($magnitude)+1)"/>
+  </xsl:variable>
+
+  <xsl:value-of select="$magnitude"/>
+  <xsl:choose>
+    <xsl:when test="$units='cm'
+                    or $units='mm'
+                    or $units='in'
+                    or $units='pt'
+                    or $units='pc'
+                    or $units='px'
+                    or $units='em'">
+      <xsl:value-of select="$units"/>
+    </xsl:when>
+    <xsl:when test="$units = ''">
+      <xsl:value-of select="$default.units"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:message>
+        <xsl:text>Unrecognized unit of measure: </xsl:text>
+        <xsl:value-of select="$units"/>
+        <xsl:text>.</xsl:text>
+      </xsl:message>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,274 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602118" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" margin-left="-4pc" keep-with-next="always" font-size="24.8832pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Article Test Document Title</fo:block>
+        </fo:block>
+        <fo:block>nwalshNorman WalshOther CreditEdited bySomeother EditorSomeone Else</fo:block>
+        <fo:block>Copyright &#xA9; 1999 Norman Walsh</fo:block>
+        <fo:block>Apr. 26, 1999</fo:block>
+        <fo:block>
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This is a &#x201C;short quote&#x201D;.
+This is a &#x201C;Quotation with a &#x2018;nested quotation
+containing a &#x201C;nested quotation and another &#x2018;nested
+quotation&#x2019;&#x201D;&#x2019;&#x201D;.
+</fo:block>
+      <fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a <fo:inline font-style="italic">literal layout</fo:inline>
+  It'll be a &lt;pre&gt; until the <fo:inline font-family="Courier">chunk.pl</fo:inline>
+script    fixes   things    up.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</fo:block>
+      <fo:block id="testfig" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+        <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test Figure</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a
+  ProgramListing
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This para contains an xref to a figure: <fo:basic-link internal-destination="testfig">Figure 1. Test Figure</fo:basic-link>.
+</fo:block>
+      <fo:block id="testfig2" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+        <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test Figure2</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">A Second
+  Test Figure
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This para contains an <fo:basic-link internal-destination="testfig2">link</fo:basic-link> to a 
+figure.
+</fo:block>
+      <fo:list-block id="id2778997" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+        <fo:list-item id="id2779004" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Test item.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2779014" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Test item.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2779024" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Test item.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+      <fo:list-block id="id2779036" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+        <fo:list-item id="id2779059" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>1.</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Test item.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2779069" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>2.</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Test item.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2779080" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>3.</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Test item.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</fo:block>
+      <fo:block id="id2779105">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">First level section</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2779116">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Second level section</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2779128">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Third level section</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block id="id2779140">
+              <fo:block>
+                <fo:block margin-left="-4pc" font-family="Helvetica">
+                  <fo:block keep-with-next.within-column="always">
+                    <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Fourth level section</fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+              <fo:block id="id2779151">
+                <fo:block>
+                  <fo:block margin-left="-4pc" font-family="Helvetica">
+                    <fo:block keep-with-next.within-column="always">
+                      <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Fifth level section (SI)</fo:block>
+                    </fo:block>
+                  </fo:block>
+                </fo:block>
+                <fo:block id="id2779181">
+                  <fo:block>
+                    <fo:block margin-left="-4pc" font-family="Helvetica">
+                      <fo:block keep-with-next.within-column="always">
+                        <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Sixth level section</fo:block>
+                      </fo:block>
+                    </fo:block>
+                  </fo:block>
+                  <fo:block id="id2779193">
+                    <fo:block>
+                      <fo:block margin-left="-4pc" font-family="Helvetica">
+                        <fo:block keep-with-next.within-column="always">
+                          <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Seventh level section</fo:block>
+                        </fo:block>
+                      </fo:block>
+                    </fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2779230">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Appendix</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article2.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article2.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article2.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,265 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602101" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" margin-left="-4pc" keep-with-next="always" font-size="24.8832pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Article Test Document Title</fo:block>
+        </fo:block>
+        <fo:block>Norman Walsh</fo:block>
+        <fo:block>Copyright &#xA9; 1999 Norman Walsh</fo:block>
+        <fo:block>Apr. 26, 1999</fo:block>
+        <fo:block>
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This article is just a test. This <fo:inline font-style="italic">article</fo:inline>
+is just a test. 
+This <fo:inline font-weight="bold" font-family="Courier">article</fo:inline> is just a test.
+This <fo:inline font-family="Courier">&lt;ndw at nwalsh.com&gt;</fo:inline> is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This article is just a test. This <fo:inline font-style="italic">article</fo:inline>
+is just a test. 
+This <fo:inline font-weight="bold" font-family="Courier">article</fo:inline> is just a test.
+This <fo:inline font-family="Courier">&lt;ndw at nwalsh.com&gt;</fo:inline> is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</fo:block>
+      <fo:table-and-caption id="id2778451" keep-together.within-column="always" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em">
+        <fo:table-caption>
+          <fo:block font-weight="bold" space-after.minimum="0.2em" space-after.optimum="0.5em" space-after.maximum="0.8em" keep-with-next.within-column="always" hyphenate="false">This is a test table</fo:block>
+        </fo:table-caption>
+        <fo:table table-layout="fixed">
+          <fo:table-column column-number="1"/>
+          <fo:table-column column-number="2" column-width="proportional-column-width(2)"/>
+          <fo:table-column column-number="3"/>
+          <fo:table-header>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Head1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Head2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Head3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-header>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Entry1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Entry2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Entry3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Entry1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell number-columns-spanned="2">
+                <fo:block>span 2-3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Entry1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell number-rows-spanned="3">
+                <fo:block>morerows2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Entry3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Entry1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Entry3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Entry1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Entry3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell number-columns-spanned="NaN">
+                <fo:block>fullspan</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Entry1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Entry2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Entry3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Entry1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Entry2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Entry3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Entry1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Entry2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Entry3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:table-and-caption>
+      <fo:list-block id="id2778803" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:list-item id="id2778809" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>
+              <fo:inline>term</fo:inline>
+            </fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>some text</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2778838" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>
+              <fo:inline>term2a, </fo:inline>
+              <fo:inline>term2b</fo:inline>
+            </fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>some text</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2778872" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>
+              <fo:inline>term3</fo:inline>
+            </fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>some text</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article3.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article3.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/article3.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,234 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602101" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" margin-left="-4pc" keep-with-next="always" font-size="24.8832pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Article Test Document Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</fo:block>
+      <fo:block id="id2791866">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">First level section</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2791876">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Second level section</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2791887">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Third level section</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block id="id2791991">
+              <fo:block>
+                <fo:block margin-left="-4pc" font-family="Helvetica">
+                  <fo:block keep-with-next.within-column="always">
+                    <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Fourth level section</fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+              <fo:block id="id2792003">
+                <fo:block>
+                  <fo:block margin-left="-4pc" font-family="Helvetica">
+                    <fo:block keep-with-next.within-column="always">
+                      <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Fifth level section</fo:block>
+                    </fo:block>
+                  </fo:block>
+                </fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2778413">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Another Section</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2778425">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">SimpleSect @ level 2</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2778448">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Another Section</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2778460">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Another Section</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2778471">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">SimpleSect @ level 3</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2778496">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Another Section</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2778508">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Another Section</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2778519">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Another Section</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block id="id2778531">
+              <fo:block>
+                <fo:block margin-left="-4pc" font-family="Helvetica">
+                  <fo:block keep-with-next.within-column="always">
+                    <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">SimpleSect @ level 4</fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/bib.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/bib.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/bib.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,239 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="book" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Test Book</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Test Book</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> A Test Bibliography</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bib1"><fo:page-number-citation ref-id="bib1"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="bib1" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">A Test Bibliography</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">Books</fo:block>
+        <fo:block id="id2824256" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[AhoSethiUllman96] </fo:inline>
+          <fo:inline>Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </fo:inline>
+          <fo:inline><fo:inline font-style="italic">Compilers, Principles, Techniques, and Tools</fo:inline>. </fo:inline>
+          <fo:inline>
+            <fo:inline>Addison-Wesley Publishing Company. </fo:inline>
+          </fo:inline>
+          <fo:inline>Copyright &#xA9; 1996 Bell Telephone Laboratories, Inc.. </fo:inline>
+          <fo:inline>0-201-10088-6. </fo:inline>
+          <fo:inline>James T. DeWolf. </fo:inline>
+          <fo:inline>
+            <fo:inline><fo:inline font-style="italic">Computer Science</fo:inline>. </fo:inline>
+            <fo:inline>Michael A. Harrison. </fo:inline>
+            <fo:inline>
+              <fo:inline>Addison-Wesley Publishing Company. </fo:inline>
+            </fo:inline>
+          </fo:inline>
+        </fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">Periodicals</fo:block>
+        <fo:block id="walsh97" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[Walsh97] </fo:inline>
+          <fo:inline>&quot;A Guide to XML&quot;. <fo:inline>Norman Walsh. </fo:inline><fo:inline>1997. </fo:inline><fo:inline>Copyright &#xA9; 1997 ArborText, Inc.. </fo:inline><fo:inline>97-108. </fo:inline></fo:inline>
+          <fo:inline><fo:inline font-style="italic">XML: Principles, Tools, and Techniques</fo:inline>. <fo:inline><fo:inline>O'Reilly &amp; Associates, Inc.. </fo:inline></fo:inline><fo:inline>1085-2301. </fo:inline><fo:inline>Dan Connolly. </fo:inline></fo:inline>
+        </fo:block>
+        <fo:block id="walsh96" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  <fo:inline>    <fo:inline>Walsh</fo:inline>, <fo:inline>Norman</fo:inline>.
+    &quot;Introduction to Cascading Style Sheets&quot;.
+  </fo:inline>
+  <fo:inline>    <fo:inline font-style="italic">The World Wide Web Journal</fo:inline>.
+    <fo:inline>2</fo:inline>(<fo:inline>1</fo:inline>).
+    <fo:inline>O'Reilly &amp; Associates, Inc.</fo:inline> and
+    <fo:inline>The World Wide Web Consortium</fo:inline>.
+    <fo:inline>Winter, 1996</fo:inline></fo:inline>.</fo:block>
+        <fo:block id="id2783860" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[Abbrev] </fo:inline>
+          <fo:inline><fo:inline font-style="italic">A Really Full BiblioEntry</fo:inline>. </fo:inline>
+          <fo:inline>Subtitle. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. </fo:block>. </fo:inline>
+          <fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>
+          <fo:inline><fo:inline>shortaffil. </fo:inline><fo:inline>jobtitle. </fo:inline><fo:inline>orgname. </fo:inline><fo:inline>orgdiv. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>. </fo:inline>
+          <fo:inline>ArtPageNums. </fo:inline>
+          <fo:inline>AuthorFirstname AuthorSurname. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </fo:block>. </fo:inline>
+          <fo:inline>AuthorInitials. </fo:inline>
+          <fo:inline><fo:inline>The names of some collaborators. </fo:inline><fo:inline><fo:inline>shortaffil. </fo:inline><fo:inline>jobtitle. </fo:inline><fo:inline>orgname. </fo:inline><fo:inline>orgdiv. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>. </fo:inline>. </fo:inline>
+          <fo:inline><fo:inline>confdates. </fo:inline><fo:inline>conftitle. </fo:inline><fo:inline>confnum. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline><fo:inline>confsponsor. </fo:inline>. </fo:inline>
+          <fo:inline>ContractNum. </fo:inline>
+          <fo:inline>ContractSponsor. </fo:inline>
+          <fo:inline>Contrib. </fo:inline>
+          <fo:inline>Copyright &#xA9; 1998 Copyright holder. </fo:inline>
+          <fo:inline>CorpName. </fo:inline>
+          <fo:inline>Date. </fo:inline>
+          <fo:inline>Edition. </fo:inline>
+          <fo:inline>EditorFirstName EditorSurname. </fo:inline>
+          <fo:inline>FirstName. </fo:inline>
+          <fo:inline>Honorific. </fo:inline>
+          <fo:inline>ISBN. </fo:inline>
+          <fo:inline>ISSN. </fo:inline>
+          <fo:inline>InvPartNumber. </fo:inline>
+          <fo:inline>IssueNum. </fo:inline>
+          <fo:inline>Lineage. </fo:inline>
+          <fo:inline>OrgName. </fo:inline>
+          <fo:inline><fo:inline>OCFirstName. </fo:inline><fo:inline>OCSurname. </fo:inline>. </fo:inline>
+          <fo:inline>OtherName. </fo:inline>
+          <fo:inline>PageNums. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</fo:block>. </fo:inline>
+          <fo:inline>ProductName. </fo:inline>
+          <fo:inline>ProductNumber. </fo:inline>
+          <fo:inline>PubDate. </fo:inline>
+          <fo:inline>
+            <fo:inline>PubPublisherName. </fo:inline>
+            <fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>
+          </fo:inline>
+          <fo:inline>PublisherName. </fo:inline>
+          <fo:inline>PubsNumber. </fo:inline>
+          <fo:inline>ReleaseInfo. </fo:inline>
+          <fo:inline><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;1.0&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;20 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;0.9&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;19 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;0.4&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;18 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block>. </fo:inline>
+          <fo:inline>
+            <fo:inline><fo:inline font-style="italic">SeriesInfo Title</fo:inline>. </fo:inline>
+            <fo:inline>SeriesInfo Editor Firstname SeriesInfo Editor Surname. </fo:inline>
+          </fo:inline>
+          <fo:inline>SeriesVolNums. </fo:inline>
+          <fo:inline>Surname. </fo:inline>
+          <fo:inline>TitleAbbrev. </fo:inline>
+          <fo:inline>VolumeNum. </fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,687 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2889273" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Book Test Document Title</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="20.736pt" text-align="center" space-before="15.552pt">Book Subtitle</fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="12pt" text-align="center" space-before="2in">
+          <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">Norman Walsh</fo:block>
+          <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">John Doe</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Bookinfo Test Document Title: Book Subtitle</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Norman Walsh and John Doe</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt" space-before="1em">
+          <fo:block>Published 16 December 2000</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">Copyright &#xA9; 2000 Norman Walsh</fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="8pt">
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Foreword</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781442"><fo:page-number-citation ref-id="id2781442"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> </fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781473"><fo:page-number-citation ref-id="id2781473"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">I Part One Title</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781489"><fo:page-number-citation ref-id="id2781489"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">1 Section Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="chapter"><fo:page-number-citation ref-id="chapter"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> First Sect1</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2787455"><fo:page-number-citation ref-id="id2787455"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> Second Sect1</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2787528"><fo:page-number-citation ref-id="id2787528"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> Third Sect1</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2787549"><fo:page-number-citation ref-id="id2787549"/></fo:basic-link></fo:inline>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">2 First Chapter</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2787626"><fo:page-number-citation ref-id="id2787626"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">3 Second Chapter</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2787718"><fo:page-number-citation ref-id="id2787718"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">4 Third Chapter</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2787510"><fo:page-number-citation ref-id="id2787510"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">A First Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2787906"><fo:page-number-citation ref-id="id2787906"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">B Second Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2824383"><fo:page-number-citation ref-id="id2824383"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">List of Figures</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1.1 Test Figure</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="testfig1"><fo:page-number-citation ref-id="testfig1"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1.2 Test Figure</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="testfig2"><fo:page-number-citation ref-id="testfig2"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">2.1 Test Figure</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="testfig3"><fo:page-number-citation ref-id="testfig3"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">A.1 Test Figure</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="testfig4"><fo:page-number-citation ref-id="testfig4"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2824356" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">First Dedication</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Just a test. &#x201C;What about&#x2014;this?&#x201D;</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781426" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Dedication</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Just a test dedication.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781442" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Foreword</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781473" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false"></fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test preface.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781489" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Part One Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block text-align="center" font-size="17.28pt" font-weight="bold" margin-left="-4pc" space-before="1em" font-family="Helvetica">PartIntro Title</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Partintro content<fo:footnote><fo:inline>[1]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[1] This is a footnote in a partintro.</fo:block></fo:footnote-body></fo:footnote>.</fo:block>
+      <fo:block id="id2781574">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">PartIntro Section</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">PartIntros can actually have section content as well.</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="chapter" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. Section Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. Section Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2787455">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">First Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+        <fo:block id="testfig1" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+          <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test Figure</fo:block>
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a
+  ProgramListing
+</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2787528">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Second Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+      </fo:block>
+      <fo:block id="id2787549">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Third Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+        <fo:block id="testfig2" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+          <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test Figure</fo:block>
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a
+  ProgramListing
+</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2787626" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 2. First Chapter</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 2. First Chapter</fo:block>
+        </fo:block>
+        <fo:block space-before="0.5em" margin-left="-4pc" font-style="italic" font-size="14.4pt" font-weight="bold" font-family="Helvetica">Chapter Subtitle</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph.</fo:block>
+      <fo:block id="testfig3" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+        <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test Figure</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a
+  ProgramListing
+</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2787718" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 3. Second Chapter</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 3. Second Chapter</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph.
+<fo:wrapper id="id2787736"><!--ap1--></fo:wrapper>
+<fo:wrapper id="id2787760"><!--ap2--></fo:wrapper>
+
+<fo:wrapper id="id2787784"><!--bp1, bp1bs1--></fo:wrapper>
+<fo:wrapper id="id2787816"><!--bp2--></fo:wrapper>
+
+<fo:wrapper id="id2787840"><!--cp1, cp1cs1, cp1cs1ct1--></fo:wrapper>
+
+<fo:wrapper id="id2787879"><!--cp2--></fo:wrapper>
+<fo:wrapper id="id2787903"><!--cp2see--></fo:wrapper>
+
+<fo:wrapper id="id2787932"><!--dp1, dp1ds1--></fo:wrapper>
+<fo:wrapper id="id2787964"><!--dp1, dp1ds2--></fo:wrapper>
+<fo:wrapper id="id2787996"><!--dp2--></fo:wrapper></fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2787510" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 4. Third Chapter</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 4. Third Chapter</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2787906" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix A. First Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix A. First Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+      <fo:block id="testfig4" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+        <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test Figure</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a
+  ProgramListing
+</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2824383" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix B. Second Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix B. Second Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.
+<fo:wrapper id="id2824335"><!--ap1--></fo:wrapper>
+<fo:wrapper id="id2778401"><!--ap2--></fo:wrapper>
+
+<fo:wrapper id="id2778425"><!--bp1, bp1bs1--></fo:wrapper>
+<fo:wrapper id="id2778457"><!--bp2--></fo:wrapper>
+
+<fo:wrapper id="id2778481"><!--cp1, cp1cs1, cp1cs1ct1--></fo:wrapper>
+<fo:wrapper id="id2778521"><!--cp2--></fo:wrapper>
+
+<fo:wrapper id="id2778545"><!--dp1, dp1ds1--></fo:wrapper>
+<fo:wrapper id="id2778577"><!--dp1, dp1ds2--></fo:wrapper>
+<fo:wrapper id="id2778608"><!--dp2--></fo:wrapper></fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book2.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book2.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book2.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5535 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="book" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Book Title</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" keep-with-next="always" space-before="2in">Some Corporation</fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">Norman Walsh</fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Book Title</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Some Corporation</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">Copyright &#xA9; 1998 Norman Walsh</fo:block>
+        <fo:block font-size="8pt">
+          <fo:block>
+            <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Legal Notice</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test document. You can do what you will with it.</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="8pt">
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Preface Title</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2824357"><fo:page-number-citation ref-id="id2824357"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">I Part One Title</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781394"><fo:page-number-citation ref-id="id2781394"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">1 XRef Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="chapter"><fo:page-number-citation ref-id="chapter"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">2 Section Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="stchap"><fo:page-number-citation ref-id="stchap"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> a sect1 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="secttest1"><fo:page-number-citation ref-id="secttest1"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block start-indent="6pc">
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> a sect2 title</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2778772"><fo:page-number-citation ref-id="id2778772"/></fo:basic-link></fo:inline>
+              </fo:block>
+              <fo:block start-indent="8pc">
+                <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                  <fo:inline keep-with-next.within-line="always"> a sect3 title</fo:inline>
+                  <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2778803"><fo:page-number-citation ref-id="id2778803"/></fo:basic-link></fo:inline>
+                </fo:block>
+                <fo:block start-indent="10pc">
+                  <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                    <fo:inline keep-with-next.within-line="always"> a sect4 title</fo:inline>
+                    <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779133"><fo:page-number-citation ref-id="id2779133"/></fo:basic-link></fo:inline>
+                  </fo:block>
+                  <fo:block start-indent="12pc">
+                    <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                      <fo:inline keep-with-next.within-line="always"> a sect5 title</fo:inline>
+                      <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779164"><fo:page-number-citation ref-id="id2779164"/></fo:basic-link></fo:inline>
+                    </fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="secttest2"><fo:page-number-citation ref-id="secttest2"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block start-indent="6pc">
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> another sect2 title</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779405"><fo:page-number-citation ref-id="id2779405"/></fo:basic-link></fo:inline>
+              </fo:block>
+              <fo:block start-indent="8pc">
+                <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                  <fo:inline keep-with-next.within-line="always"> another sect3 title</fo:inline>
+                  <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779459"><fo:page-number-citation ref-id="id2779459"/></fo:basic-link></fo:inline>
+                </fo:block>
+                <fo:block start-indent="10pc">
+                  <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                    <fo:inline keep-with-next.within-line="always"> another sect4 title</fo:inline>
+                    <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779514"><fo:page-number-citation ref-id="id2779514"/></fo:basic-link></fo:inline>
+                  </fo:block>
+                  <fo:block start-indent="12pc">
+                    <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                      <fo:inline keep-with-next.within-line="always"> another sect5 title</fo:inline>
+                      <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779568"><fo:page-number-citation ref-id="id2779568"/></fo:basic-link></fo:inline>
+                    </fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="secttest3"><fo:page-number-citation ref-id="secttest3"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="secttest4"><fo:page-number-citation ref-id="secttest4"/></fo:basic-link></fo:inline>
+            </fo:block>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">3 Inline Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2778702"><fo:page-number-citation ref-id="id2778702"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">4 Block Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2890787"><fo:page-number-citation ref-id="id2890787"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">5 List Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2892474"><fo:page-number-citation ref-id="id2892474"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">6 Table Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2896187"><fo:page-number-citation ref-id="id2896187"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">7 Index Term Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2901863"><fo:page-number-citation ref-id="id2901863"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> Index Term Sect 1</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2901947"><fo:page-number-citation ref-id="id2901947"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block start-indent="6pc">
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> Index Term Sect 2</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2902295"><fo:page-number-citation ref-id="id2902295"/></fo:basic-link></fo:inline>
+              </fo:block>
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> Index Term Sect 3</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2902462"><fo:page-number-citation ref-id="id2902462"/></fo:basic-link></fo:inline>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">II Part Two Title</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="part"><fo:page-number-citation ref-id="part"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">8 CmdSynopsis Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2902514"><fo:page-number-citation ref-id="id2902514"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">9 FuncSynopsis Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2903828"><fo:page-number-citation ref-id="id2903828"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">10 Callout Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2904183"><fo:page-number-citation ref-id="id2904183"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">III A Reference Part</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2904775"><fo:page-number-citation ref-id="id2904775"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">I Reference</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="reference"><fo:page-number-citation ref-id="reference"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> RefEntryTitle</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2904813"><fo:page-number-citation ref-id="id2904813"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> <fo:inline font-family="Courier">Chop</fo:inline></fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2905003"><fo:page-number-citation ref-id="id2905003"/></fo:basic-link></fo:inline>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">A A Very Short Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="appendix"><fo:page-number-citation ref-id="appendix"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">B A Very Long Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2905134"><fo:page-number-citation ref-id="id2905134"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> a sect1 title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2905784"><fo:page-number-citation ref-id="id2905784"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> a sect2 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2905815"><fo:page-number-citation ref-id="id2905815"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block start-indent="6pc">
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> a sect3 title</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2905845"><fo:page-number-citation ref-id="id2905845"/></fo:basic-link></fo:inline>
+              </fo:block>
+              <fo:block start-indent="8pc">
+                <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                  <fo:inline keep-with-next.within-line="always"> a sect4 title</fo:inline>
+                  <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2905885"><fo:page-number-citation ref-id="id2905885"/></fo:basic-link></fo:inline>
+                </fo:block>
+                <fo:block start-indent="10pc">
+                  <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                    <fo:inline keep-with-next.within-line="always"> a sect5 title</fo:inline>
+                    <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2905915"><fo:page-number-citation ref-id="id2905915"/></fo:basic-link></fo:inline>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2905954"><fo:page-number-citation ref-id="id2905954"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> another sect2 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2906009"><fo:page-number-citation ref-id="id2906009"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block start-indent="6pc">
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> another sect3 title</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2906063"><fo:page-number-citation ref-id="id2906063"/></fo:basic-link></fo:inline>
+              </fo:block>
+              <fo:block start-indent="8pc">
+                <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                  <fo:inline keep-with-next.within-line="always"> another sect4 title</fo:inline>
+                  <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2906118"><fo:page-number-citation ref-id="id2906118"/></fo:basic-link></fo:inline>
+                </fo:block>
+                <fo:block start-indent="10pc">
+                  <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                    <fo:inline keep-with-next.within-line="always"> another sect5 title</fo:inline>
+                    <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2906172"><fo:page-number-citation ref-id="id2906172"/></fo:basic-link></fo:inline>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2906244"><fo:page-number-citation ref-id="id2906244"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2906276"><fo:page-number-citation ref-id="id2906276"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> A Test Bibliography</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bib1"><fo:page-number-citation ref-id="bib1"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Example Glossary</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="gloss"><fo:page-number-citation ref-id="gloss"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Index</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="index"><fo:page-number-citation ref-id="index"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> An Index with a Title</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2908361"><fo:page-number-citation ref-id="id2908361"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">List of Figures</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">4.1 A Figure</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="figure"><fo:page-number-citation ref-id="figure"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">List of Tables</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">4.1 A Table</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="table"><fo:page-number-citation ref-id="table"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">List of Examples</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">4.1 An Example</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="example"><fo:page-number-citation ref-id="example"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">2 chop() example</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2905062"><fo:page-number-citation ref-id="id2905062"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">List of Equations</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">4.1 An Equation</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="equation"><fo:page-number-citation ref-id="equation"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2824324" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Dedication</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This test book is dedicated to all the testers.  This is the first para
+of the dedication.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second para of the dedication.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the third para of the dedication.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2824357" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Preface Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Preface content.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second para of the preface.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the third para of the preface.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781394" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Part One Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block text-align="center" font-size="17.28pt" font-weight="bold" margin-left="-4pc" space-before="1em" font-family="Helvetica">PartIntro Title</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Partintro content<fo:footnote><fo:inline>[1]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[1] This is a footnote in a partintro.</fo:block></fo:footnote-body></fo:footnote>.</fo:block>
+      <fo:block id="id2781479">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">PartIntro Section</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">PartIntros can actually have section content as well.</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="chapter" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. XRef Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. XRef Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Xrefs</fo:block>
+      <fo:table>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="book">Book Title</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="part">Part II. Part Two Title</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="chapter">Chapter 1. XRef Tests</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="appendix">Appendix A. A Very Short Appendix</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="table">Table 4.1. A Table</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="figure">Figure 4.1. A Figure</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="example">Example 4.1. An Example</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="equation"></fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="reference">Reference</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="bib1">A Test Bibliography</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="gloss">Example Glossary</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="index">Index</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the first reference to <fo:inline font-style="italic">XML</fo:inline>.
+This is the second reference to XML.
+These are references without <fo:inline font-family="Courier">linkend</fo:inline>
+attributes: <fo:inline font-style="italic">XML</fo:inline>, XML.</fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Links</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">More <fo:basic-link external-destination="http://www.jclark.com/dsssl/">DSSSL information</fo:basic-link><fo:inline hyphenate="false"> [http://www.jclark.com/dsssl/]</fo:inline>
+is available.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There is <fo:basic-link internal-destination="part">a second part</fo:basic-link> in this book.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the <fo:basic-link internal-destination="chapter"/>
+chapter.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="stchap" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 2. Section Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 2. Section Tests</fo:block>
+        </fo:block>
+        <fo:block space-before="0.5em" margin-left="-4pc" font-style="italic" font-size="14.4pt" font-weight="bold" font-family="Helvetica">Section Tests Subtitle</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<fo:wrapper id="id2787539"><!--ap1--></fo:wrapper>
+<fo:wrapper id="id2787561"><!--ap2--></fo:wrapper>
+
+<fo:wrapper id="id2787585"><!--bp1, bp1bs1--></fo:wrapper>
+<fo:wrapper id="id2787617"><!--bp2--></fo:wrapper>
+
+<fo:wrapper id="id2787641"><!--cp1, cp1cs1, cp1cs1ct1--></fo:wrapper>
+<fo:wrapper id="id2787681"><!--cp2--></fo:wrapper>
+
+<fo:wrapper id="id2787705"><!--dp1, dp1ds1--></fo:wrapper>
+<fo:wrapper id="id2787737"><!--dp1, dp1ds2--></fo:wrapper>
+<fo:wrapper id="id2787769"><!--dp2--></fo:wrapper></fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      <fo:block id="secttest1">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<fo:wrapper id="id2787884"><!--ep1, ep1es1, ep1es1et1--></fo:wrapper>
+<fo:wrapper id="id2787924"><!--ep1, ep1es2--></fo:wrapper>
+<fo:wrapper id="id2787956"><!--ep2--></fo:wrapper>
+
+<fo:wrapper id="id2787980"><!--fp1, fp1fs1--></fo:wrapper>
+<fo:wrapper id="id2788012"><!--fp1, fp1fs2, fp1fs2ft1--></fo:wrapper>
+<fo:wrapper id="id2787472"><!--fp2--></fo:wrapper>
+
+<fo:wrapper id="id2787433"><!--gp1, gp1gs1--></fo:wrapper>
+<fo:wrapper id="id2778557"><!--gp1, gp1gs2--></fo:wrapper>
+<fo:wrapper id="id2778589"><!--gp1, gp1gs2, gp1gs2gt1--></fo:wrapper>
+<fo:wrapper id="id2778628"><!--gp1, gp1gs2, gp1gs2gt2--></fo:wrapper>
+<fo:wrapper id="id2778668"><!--gp1, gp1gs3--></fo:wrapper>
+<fo:wrapper id="id2778700"><!--gp2--></fo:wrapper></fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+        <fo:block id="id2778772">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect2 title</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+          <fo:block id="id2778803">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect3 title</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<fo:wrapper id="id2778832"><!--hp1, hp1hs1, hp1hs1ht1--></fo:wrapper>
+<fo:wrapper id="id2778871"><!--hp1, hp1hs1, hp1hs1ht2--></fo:wrapper>
+<fo:wrapper id="id2778911"><!--hp2--></fo:wrapper>
+
+<fo:wrapper id="id2778935"><!--ip1--></fo:wrapper>
+<fo:wrapper id="id2778959"><!--ip1, ip1is1--></fo:wrapper>
+<fo:wrapper id="id2778991"><!--ip1, ip1is1, ip1is1it1--></fo:wrapper>
+<fo:wrapper id="id2779030"><!--ip1, ip1is1, ip1is1it2--></fo:wrapper>
+<fo:wrapper id="id2779070"><!--ip1, ip1is2, ip1is2it1--></fo:wrapper>
+<fo:wrapper id="id2779110"><!--ip2--></fo:wrapper></fo:block>
+            <fo:block id="id2779133">
+              <fo:block>
+                <fo:block margin-left="-4pc" font-family="Helvetica">
+                  <fo:block keep-with-next.within-column="always">
+                    <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect4 title</fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              <fo:block id="id2779164">
+                <fo:block>
+                  <fo:block margin-left="-4pc" font-family="Helvetica">
+                    <fo:block keep-with-next.within-column="always">
+                      <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect5 title</fo:block>
+                    </fo:block>
+                  </fo:block>
+                </fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="secttest2">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block font-family="Helvetica">a sect1 subtitle</fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<fo:wrapper id="id2779278"><!--jp1--></fo:wrapper>
+<fo:wrapper id="id2779302"><!--jp1, jp1js1, jp1js1jt1--></fo:wrapper>
+<fo:wrapper id="id2779342"><!--jp1, jp1js1, jp1js1jt2--></fo:wrapper>
+<fo:wrapper id="id2779382"><!--jp2--></fo:wrapper></fo:block>
+        <fo:block id="id2779405">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect2 title</fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block font-family="Helvetica">a sect2 subtitle</fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+          <fo:block id="id2779459">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect3 title</fo:block>
+                </fo:block>
+              </fo:block>
+              <fo:block font-family="Helvetica">a sect3 subtitle</fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+            <fo:block id="id2779514">
+              <fo:block>
+                <fo:block margin-left="-4pc" font-family="Helvetica">
+                  <fo:block keep-with-next.within-column="always">
+                    <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect4 title</fo:block>
+                  </fo:block>
+                </fo:block>
+                <fo:block font-family="Helvetica">a sect4 subtitle</fo:block>
+              </fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              <fo:block id="id2779568">
+                <fo:block>
+                  <fo:block margin-left="-4pc" font-family="Helvetica">
+                    <fo:block keep-with-next.within-column="always">
+                      <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect5 title</fo:block>
+                    </fo:block>
+                  </fo:block>
+                  <fo:block font-family="Helvetica">a sect5 subtitle</fo:block>
+                </fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="secttest3">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      </fo:block>
+      <fo:block id="secttest4">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2778702" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 3. Inline Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 3. Inline Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2778962">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Testing &#x2018;Quotes&#x2019; in a title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Footnotes<fo:footnote><fo:inline>[2]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[2] Like this!</fo:block></fo:footnote-body></fo:footnote> are inlines.
+Sort of<fo:footnote><fo:inline>[3]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[3] Well, the marks are, anyway!</fo:block></fo:footnote-body></fo:footnote>.
+Another footnote<fo:inline>[2]</fo:inline>.</fo:block>
+        <fo:table>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Abbrev</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>GUIIcon</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">SGMLTag</fo:inline> (Attribute)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Acronym</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>GUILabel</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">SGMLTag</fo:inline> (AttValue)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Action</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>GUIMenu</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">SGMLTag</fo:inline> (Element)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Application</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>GUISubMenu</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&lt;/SGMLTag&gt;</fo:inline> (EndTag)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>[Citation]</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Hardware</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&amp;SGMLTag;</fo:inline> (GenEntity)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>CiteRefEntry RefEntryTitle(n)</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block>
+                    <fo:external-graphic src="url(file:emc2.gif)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+                  </fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&amp;#SGMLTag;</fo:inline> (NumCharRef)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">Citetitle</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Interface</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">%SGMLTag;</fo:inline> (ParamEntity)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">ClassName</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>InterfaceDefinition</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&lt;?SGMLTag&gt;</fo:inline> (PI)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-weight="bold">Command</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-weight="bold">KeyCap</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&lt;!--SGMLTag--&gt;</fo:inline> (SGMLComment)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block><fo:inline font-style="italic">Comment</fo:inline> (Comment)</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>KeyCode</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&lt;SGMLTag&gt;</fo:inline> (StartTag)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">ComputerOutput</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Key-Combo</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">SGMLTag</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Database</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>KeySym</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic" font-family="Courier">StructField</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>ErrorName</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">Literal</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>StructName</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>ErrorType</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Markup</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline vertical-align="sub">Subscript</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">&lt;Email&gt;</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">MediaLabel</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline vertical-align="super">Superscript</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">Emphasis</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>MouseButton</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Symbol</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">EnVar</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">Option</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>SystemItem</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>ErrorCode</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>[Optional]</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Token</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">Filename</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic" font-family="Courier">Parameter</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Trademark&#x2122;</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">Firstterm</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Phrase</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Type</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">ForeignPhrase</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">Prompt</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-weight="bold" font-family="Courier">UserInput</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">Function</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Property</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">WordAsWord</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>GUIMenuItem</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>&#x201C;Quote&#x201D;</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>ProductName&#x2122;</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>GUIButton</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic" font-family="Courier">Replaceable</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>GUIButton (with Accel)</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>ReturnValue</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">And here are a couple of index terms, as another test (of 
+index terms, not inlines).
+<fo:wrapper id="id2890726"><!--aap1--></fo:wrapper>
+<fo:wrapper id="id2890755"><!--bbp1--></fo:wrapper></fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2890787" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 4. Block Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 4. Block Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2890801">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Formal Objects</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Example</fo:block>
+        <fo:block id="example" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+          <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An Example</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is an example of a trivial example.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Figure</fo:block>
+        <fo:block id="figure" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+          <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A Figure</fo:block>
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is an example of a trivial figure.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Equation</fo:block>
+        <fo:block id="equation" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+          <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An Equation</fo:block>
+          <fo:block>
+            <fo:external-graphic src="url(file:emc2.gif)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Table</fo:block>
+        <fo:table-and-caption id="table" keep-together.within-column="always" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em">
+          <fo:table-caption>
+            <fo:block font-weight="bold" space-after.minimum="0.2em" space-after.optimum="0.5em" space-after.maximum="0.8em" keep-with-next.within-column="always" hyphenate="false">A Table</fo:block>
+          </fo:table-caption>
+          <fo:table>
+            <fo:table-column column-number="1" column-width="0.5in"/>
+            <fo:table-column column-number="2" column-width="0.5in"/>
+            <fo:table-body>
+              <fo:table-row>
+                <fo:table-cell>
+                  <fo:block>1</fo:block>
+                </fo:table-cell>
+                <fo:table-cell>
+                  <fo:block>1</fo:block>
+                </fo:table-cell>
+              </fo:table-row>
+              <fo:table-row>
+                <fo:table-cell>
+                  <fo:block>2</fo:block>
+                </fo:table-cell>
+                <fo:table-cell>
+                  <fo:block>4</fo:block>
+                </fo:table-cell>
+              </fo:table-row>
+              <fo:table-row>
+                <fo:table-cell>
+                  <fo:block>3</fo:block>
+                </fo:table-cell>
+                <fo:table-cell>
+                  <fo:block>9</fo:block>
+                </fo:table-cell>
+              </fo:table-row>
+            </fo:table-body>
+          </fo:table>
+        </fo:table-and-caption>
+      </fo:block>
+      <fo:block id="id2891122">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Informal Objects</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">InformalExample</fo:block>
+        <fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is an example of a trivial, informal example.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">InformalEquation</fo:block>
+        <fo:block>
+          <fo:block>
+            <fo:external-graphic src="url(file:emc2.gif)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">InformalTable</fo:block>
+        <fo:table>
+          <fo:table-column column-number="1"/>
+          <fo:table-column column-number="2"/>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>8</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>27</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:block>
+      <fo:block id="id2891345">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Admonitions</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Note</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891374">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself noted.</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para.</fo:block>
+        </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891397">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself noted, simply.</fo:block>
+        </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891413">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">NoteTitle</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself noted.</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para, with a title.</fo:block>
+        </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891445">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Att</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself noted, simply.</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With a title</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Important</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891492">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Important</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself important.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Tip</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891510">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Tip</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself tipped.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Warning</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891550">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Warning</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself warned.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Caution</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891580">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Caution</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself cautioned.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">SimPara in Caution</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891610">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Simple Caution</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A simpler caution.</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2891634">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Other Objects</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Screen</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This
+  is                  With a line-annotation
+    a 
+     screen
+     This
+    is                With a line-annotation
+  a 
+screen
+This
+  is                  With a line-annotation
+    a 
+     screen</fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">ProgramListing</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This
+  is
+    a 
+programlisting</fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Address</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">Norman Walsh
+ArborText, Inc.
+1000 Victors Way
+Ann Arbor, MI 48108
+US
+
+Voice: 313.997.0200
+Fax: 313.997.0201
+
+Email: <fo:inline font-family="Courier">&lt;nwalsh at arbortext.com&gt;</fo:inline>
+WWW: http://www.arbortext.com/</fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">BlockQuote</fo:block>
+        <fo:block start-indent="0.5in" end-indent="0.5in">
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The universe that we observe has precisely the properties we should 
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&#x2014;Richard Dawkins</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Procedure</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>1.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the first step</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>2.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second step</fo:block>
+                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+                  <fo:list-item>
+                    <fo:list-item-label end-indent="label-end()">
+                      <fo:block>a.</fo:block>
+                    </fo:list-item-label>
+                    <fo:list-item-body start-indent="body-start()">
+                      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the first substep</fo:block>
+                    </fo:list-item-body>
+                  </fo:list-item>
+                  <fo:list-item>
+                    <fo:list-item-label end-indent="label-end()">
+                      <fo:block>b.</fo:block>
+                    </fo:list-item-label>
+                    <fo:list-item-body start-indent="body-start()">
+                      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second substep</fo:block>
+                    </fo:list-item-body>
+                  </fo:list-item>
+                </fo:list-block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>3.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the third step</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+          </fo:list-block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Procedure With Title</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:block font-weight="bold">Same Procedure with a Title</fo:block>
+          <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>1.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the first step</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>2.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second step</fo:block>
+                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+                  <fo:list-item>
+                    <fo:list-item-label end-indent="label-end()">
+                      <fo:block>a.</fo:block>
+                    </fo:list-item-label>
+                    <fo:list-item-body start-indent="body-start()">
+                      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the first substep</fo:block>
+                    </fo:list-item-body>
+                  </fo:list-item>
+                  <fo:list-item>
+                    <fo:list-item-label end-indent="label-end()">
+                      <fo:block>b.</fo:block>
+                    </fo:list-item-label>
+                    <fo:list-item-body start-indent="body-start()">
+                      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second substep</fo:block>
+                    </fo:list-item-body>
+                  </fo:list-item>
+                </fo:list-block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>3.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the third step</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+          </fo:list-block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">SideBar</fo:block>
+        <fo:block>
+          <fo:block font-weight="bold" keep-with-next.within-column="always" hyphenate="false">What About Bob?</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a sidebar.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">MsgSet</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It's not really clear how <fo:inline font-family="Courier">MsgSet</fo:inline> should be presented.
+I expect that it's fairly application, if not document, specific.</fo:block>
+        <fo:block>
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Record failed CRC</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Record <fo:inline font-style="italic" font-family="Courier">n</fo:inline>
+                    in <fo:inline font-style="italic" font-family="Courier">database</fo:inline></fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">File read error on 
+                   <fo:inline font-style="italic" font-family="Courier">database</fo:inline></fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Panic! Corrupt record!</fo:block>
+          </fo:block>
+          <fo:block>
+            <fo:block><fo:inline font-weight="bold" keep-with-next.within-line="always">Level: </fo:inline>severe</fo:block>
+            <fo:block><fo:inline font-weight="bold" keep-with-next.within-line="always">Origin: </fo:inline>server</fo:block>
+            <fo:block><fo:inline font-weight="bold" keep-with-next.within-line="always">Audience: </fo:inline>all</fo:block>
+          </fo:block>
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">        Indicates that some sort of error occured attempting to load
+        a record from the database.  Retry.  If failure persists,
+        contact the database administrator.
+        </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">LiteralLayout</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a
+literal
+       layout</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a
+literal
+       layout
+  in a para</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2892474" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 5. List Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 5. List Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2892488">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">OrderedLists</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Default Numeration</fo:block>
+        <fo:list-block id="id2892516" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2892532" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892548" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">this one starts with
+a program listing
+what happens?</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892571" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this one starts with
+a synopsis
+what happens?</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892593" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>para first</fo:block>
+              <fo:block>this one has
+a synopsis
+what happens?</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892623" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>5.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+              <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">A
+Screen
+Here</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892652" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>6.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Arabic Numeration</fo:block>
+        <fo:list-block id="id2892688" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2892685" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892721" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892736" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892752" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Arabic Numeration (Long)</fo:block>
+        <fo:list-block id="id2892788" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2892785" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892821" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892837" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892852" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892868" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>5.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Five</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892884" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>6.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Six</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892900" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>7.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Seven</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892915" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>8.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Eight</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892931" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>9.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Nine</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892947" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>10.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Ten</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2892962" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>11.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Eleven</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">UpperAlpha Numeration</fo:block>
+        <fo:list-block id="id2892998" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2892995" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893032" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893047" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893063" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">LowerAlpha Numeration</fo:block>
+        <fo:list-block id="id2893099" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2893096" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893132" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893148" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893164" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">UpperRoman Numeration</fo:block>
+        <fo:list-block id="id2893200" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2893197" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893233" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893249" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893265" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">LowerRoman Numeration</fo:block>
+        <fo:list-block id="id2893301" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2893298" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893334" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893350" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893365" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Continued</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">First list:
+<fo:list-block id="id2893403" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em"><fo:list-item id="id2893420" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>One</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2893435" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Two</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2893451" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Three</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2893467" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Four</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second list:
+<fo:list-block id="id2893495" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em"><fo:list-item id="id2893490" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Five</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2893522" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Six</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2893538" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Seven</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2893553" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Eight</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2893569" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Nine</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2893585" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Ten</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block>
+      </fo:block>
+      <fo:block id="id2893603">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">ItemizedLists</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Default Presentation</fo:block>
+        <fo:list-block id="id2893632" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2893637" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893653" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">One-point-five. This one starts with
+a program listing
+what happens?</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893676" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893691" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893707" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Block Elements in a List</fo:block>
+        <fo:list-block id="id2893739" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2893744" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Another para.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893768" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893784" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893800" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Alternate Mark and OverRide</fo:block>
+        <fo:list-block id="id2893836" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2893833" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>TeX and LaTeX</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893864" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Troff</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893879" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Lout</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893900" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Test</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">No mark Presentation</fo:block>
+        <fo:list-block id="id2893936" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2893948" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893968" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893983" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2893999" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="id2894018">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">VariableLists</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2894033" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2894039" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>Term1</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894077" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>Term2</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894115" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>Term3</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+              <fo:list-block id="id2894149" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2894155" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>&#x2022;</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>One</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2894171" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>&#x2022;</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>Two</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2894187" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>&#x2022;</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>Three</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2894202" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>&#x2022;</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>Four</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894237" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>Term4</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:list-block id="id2894276" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2894283" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>Another List</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894321" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>ProgramListing</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">A ProgramListing
+Is the First Element
+of this VarListEntry</fo:block>
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="id2894377">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">SimpleLists</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Inline</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An inline simple list:
+<fo:inline>One, Two, Three, Four, Five, Six, Seven</fo:inline></fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Horiz</fo:block>
+        <fo:table>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>One</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Two</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Three</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Four</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Five</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Six</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Seven</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Vert</fo:block>
+        <fo:table>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>One</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Four</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Seven</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Two</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Five</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Three</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Six</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:block>
+      <fo:block id="id2894651">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">More Complex List Item Content</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2894666" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2894672" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894696" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894719" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+              <fo:block>Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894743" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894766" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block><fo:inline font-weight="bold" keep-with-next.within-line="always" padding-end="1em">Formal Element</fo:inline>Five</fo:block>
+              <fo:block>Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894806" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Six</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:list-block id="id2894823" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2894840" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894864" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894887" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+              <fo:block>Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894911" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894934" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>5.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block><fo:inline font-weight="bold" keep-with-next.within-line="always" padding-end="1em">Formal Element</fo:inline>Five</fo:block>
+              <fo:block>Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2894974" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>6.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Six</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="id2894993">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Segmented List</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-weight="bold">State Birds</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Alabama</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Yellowhammer</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Alaska</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Willow Ptarmigan</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Arizona</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cactus Wren</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Arkansas</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mockingbird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>California</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>California Valley Quail</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Colorado</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Lark Bunting</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Connecticut</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Robin</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Delaware</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Blue Hen Chicken</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Florida</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mockingbird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Georgia</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Brown Thrasher</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Hawaii</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Nene</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Idaho</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mountain Bluebird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Illinois</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Indiana</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Iowa</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Eastern Goldfinch</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Kansas</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Kentucky</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Louisiana</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Eastern Brown Pelican</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Maine</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Chickadee</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Maryland</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Baltimore Oriole</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Massachusetts</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Chickadee</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Michigan</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Robin</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Minnesota</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Common Loon</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Mississippi</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mockingbird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Missouri</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Bluebird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Montana</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Nebraska</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Nevada</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mountain Bluebird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>New Hampshire</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Purple Finch</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>New Jersey</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Eastern Goldfinch</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>New Mexico</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Roadrunner</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>New York</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Bluebird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>North Carolina</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>North Dakota</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Ohio</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Oklahoma</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Scissor-tailed Flycatcher</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Oregon</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Pennsylvania</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Ruffed Grouse</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Rhode Island</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Rhode Island Red</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>South Carolina</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Great Carolina Wren</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>South Dakota</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Ring-necked Pheasant</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Tennessee</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mockingbird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Texas</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mockingbird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Utah</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>American Seagull</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Vermont</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Hermit Thrush</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Virginia</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal </fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Washington</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Willow Goldfinch</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>West Virginia</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Wisconsin</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Robin</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Wyoming</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2896187" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 6. Table Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 6. Table Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Alternate Alignment on Entry</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1" column-width="2in"/>
+        <fo:table-column column-number="2" column-width="2in"/>
+        <fo:table-column column-number="3"/>
+        <fo:table-header>
+          <fo:table-row>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>h1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>h2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>h3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-header>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>left</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>right</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>right</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:table>
+        <fo:table-column column-number="1" column-width="2in"/>
+        <fo:table-column column-number="2" column-width="2in"/>
+        <fo:table-column column-number="3"/>
+        <fo:table-header border-top="0.5pt solid black ">
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>h1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-header>
+        <fo:table-body border-bottom="0.5pt solid black ">
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>left</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>right</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>right</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:table>
+        <fo:table-column column-number="1" column-width="2in"/>
+        <fo:table-column column-number="2" column-width="2in"/>
+        <fo:table-column column-number="3"/>
+        <fo:table-header>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>h1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-header>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:inline font-style="italic">left emph</fo:inline>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>
+                <fo:inline font-style="italic">center emph/bold</fo:inline>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>
+                <fo:inline font-family="Courier">center literal</fo:inline>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:inline font-family="Courier">center filename</fo:inline>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>
+                <fo:inline font-weight="bold">right command</fo:inline>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>right</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Absolute Widths</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1" column-width="1in"/>
+        <fo:table-column column-number="2" column-width="1in"/>
+        <fo:table-column column-number="3" column-width="1in"/>
+        <fo:table-header>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>h1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-header>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>e1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>e1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>e1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Relative Widths</fo:block>
+      <fo:table table-layout="fixed">
+        <fo:table-column column-number="1" column-width="proportional-column-width(3)"/>
+        <fo:table-column column-number="2" column-width="proportional-column-width(2)"/>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">left</fo:block>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">center</fo:block>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">center</fo:block>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">right</fo:block>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Complex</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1"/>
+        <fo:table-column column-number="2"/>
+        <fo:table-column column-number="3"/>
+        <fo:table-column column-number="4"/>
+        <fo:table-column column-number="5"/>
+        <fo:table-column column-number="6"/>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>A1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>A2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>A3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell number-rows-spanned="2">
+              <fo:block>A4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>A5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>A6</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>B1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-right="0.5pt solid black " padding-right="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>B2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>B3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>B5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>B6</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>C1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-right="0.5pt solid black " padding-right="2pt">
+              <fo:block>C2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>C3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>C4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell number-rows-spanned="3" number-columns-spanned="2">
+              <fo:block>C5</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell number-columns-spanned="NaN">
+              <fo:block>D2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>D3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>D4</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>E1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>E2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>E4</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>F1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>F2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>F3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>F4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>F5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>F6</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">With Footnotes</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1"/>
+        <fo:table-column column-number="2"/>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>foo<fo:footnote><fo:inline>[4]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[4] A meaningless
+word</fo:block></fo:footnote-body></fo:footnote></fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3<fo:footnote><fo:inline>[5]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[5] A meaningless
+number</fo:block></fo:footnote-body></fo:footnote></fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>bar<fo:inline>[4]</fo:inline></fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5<fo:inline>[5]</fo:inline></fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">A Big One</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1"/>
+        <fo:table-column column-number="2"/>
+        <fo:table-column column-number="3"/>
+        <fo:table-column column-number="4"/>
+        <fo:table-column column-number="5"/>
+        <fo:table-column column-number="6"/>
+        <fo:table-column column-number="7"/>
+        <fo:table-column column-number="8"/>
+        <fo:table-column column-number="9"/>
+        <fo:table-column column-number="10"/>
+        <fo:table-column column-number="11"/>
+        <fo:table-column column-number="12"/>
+        <fo:table-column column-number="13"/>
+        <fo:table-column column-number="14"/>
+        <fo:table-column column-number="15"/>
+        <fo:table-header>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>H1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-header>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2901863" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 7. Index Term Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 7. Index Term Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test data.</fo:block>
+      <fo:wrapper id="idx1">
+<!--oft-repeated-->
+      </fo:wrapper>
+      <fo:wrapper id="idx2">
+<!--chap-level-->
+      </fo:wrapper>
+      <fo:block id="id2901947">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Index Term Sect 1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test data.</fo:block>
+        <fo:wrapper id="idx3">
+<!--!-->
+        </fo:wrapper>
+        <fo:wrapper id="fred">
+<!--oft-repeated, with id-->
+        </fo:wrapper>
+        <fo:wrapper id="idx5">
+<!--sect1-level-->
+        </fo:wrapper>
+        <fo:wrapper id="idx6">
+<!--sect1-level-->
+        </fo:wrapper>
+        <fo:wrapper id="idx7">
+<!--sect1-level, sec-->
+        </fo:wrapper>
+        <fo:wrapper id="idx8">
+<!--sect1-other, sec-->
+        </fo:wrapper>
+        <fo:wrapper id="idx9">
+<!--chap-level, sec, tert-->
+        </fo:wrapper>
+        <fo:wrapper id="id2902228">
+<!--chap-level, sec, tert-->
+        </fo:wrapper>
+        <fo:wrapper id="idx11">
+<!--sect1-level-->
+        </fo:wrapper>
+        <fo:block id="id2902295">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Index Term Sect 2</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test data.</fo:block>
+          <fo:wrapper id="idx12">
+<!--[-->
+          </fo:wrapper>
+          <fo:wrapper id="idx13">
+<!--oft-repeated-->
+          </fo:wrapper>
+          <fo:wrapper id="idx14">
+<!--sect2-level-->
+          </fo:wrapper>
+          <fo:wrapper id="idx15">
+<!--chap-level, sec, tert-->
+          </fo:wrapper>
+        </fo:block>
+        <fo:block id="id2902462">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Index Term Sect 3</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">foo</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="part" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Part Two Title</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2902514" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 8. CmdSynopsis Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 8. CmdSynopsis Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Very Simple CmdSynopsis</fo:block>
+      <fo:block><fo:inline font-family="Courier">cd</fo:inline>  {<fo:inline font-style="italic" font-family="Courier">directory</fo:inline>}</fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Simple CmdSynopsis</fo:block>
+      <fo:block><fo:inline font-family="Courier">cal</fo:inline>  [-j] [-y] [month  [year]]</fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Another Simple CmdSynopsis</fo:block>
+      <fo:block><fo:inline font-family="Courier">chgrp</fo:inline>  [-R 
+     [-H | -L | -P]
+  ] [-f]  <fo:inline font-style="italic" font-family="Courier">group</fo:inline>   <fo:inline font-style="italic" font-family="Courier">file</fo:inline>... </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Slightly Complex CmdSynopsis</fo:block>
+      <fo:block><fo:inline font-family="Courier">emacs</fo:inline>  [-t <fo:inline font-style="italic" font-family="Courier">file</fo:inline>] [-q] [-u <fo:inline font-style="italic" font-family="Courier">user</fo:inline>] [+<fo:inline font-style="italic" font-family="Courier">number</fo:inline>] [-f <fo:inline font-style="italic" font-family="Courier">function</fo:inline>...] [-l <fo:inline font-style="italic" font-family="Courier">file</fo:inline>...]  <fo:inline font-style="italic" font-family="Courier">file</fo:inline>... </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Quite Complex CmdSynopsis</fo:block>
+      <fo:block><fo:inline font-family="Courier">cccp</fo:inline>  [-$] [-C] [-D<fo:inline font-style="italic" font-family="Courier">name</fo:inline> [=<fo:inline font-style="italic" font-family="Courier">definition</fo:inline>]...] [-dD] [-dM] [-I <fo:inline font-style="italic" font-family="Courier">directory</fo:inline>...] [-H] [-I-] [-imacros <fo:inline font-style="italic" font-family="Courier">file</fo:inline>...] [-include <fo:inline font-style="italic" font-family="Courier">file</fo:inline>...] [-lang-c | -lang-c++ | -lang-objc] [-lint] [-M | -MD | -MM | -MMD] [-nostdinc] [-P] [-pedantic] [-pedantic-errors] [-trigraphs] [-U<fo:inline font-style="italic" font-family="Courier">name</fo:inline>] [-undef] [-Wtrigraphs] [-Wcomment] [-Wall] [-Wtraditional] {<fo:inline font-style="italic" font-family="Courier">infile</fo:inline> | -} {<fo:inline font-style="italic" font-family="Courier">outfile</fo:inline> | -}</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2903828" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 9. FuncSynopsis Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 9. FuncSynopsis Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Two Simple Parameters</fo:block>
+      <fo:block>
+        <fo:block font-family="Courier"><fo:inline font-family="Courier">int <fo:inline font-weight="bold">max</fo:inline></fo:inline>(int1, int2);int int1;int int2;</fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Variable Arguments</fo:block>
+      <fo:block>
+        <fo:block>#include &lt;varargs.h&gt;</fo:block>
+        <fo:block font-family="Courier"><fo:inline font-family="Courier">int <fo:inline font-weight="bold">max</fo:inline></fo:inline>(...);</fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Void</fo:block>
+      <fo:block>
+        <fo:block font-family="Courier"><fo:inline font-family="Courier">int <fo:inline font-weight="bold">rand</fo:inline></fo:inline>();</fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Function Pointer Arguments</fo:block>
+      <fo:block>
+        <fo:block font-family="Courier"><fo:inline font-family="Courier">void <fo:inline font-weight="bold">qsort</fo:inline></fo:inline>(dataptr, left, right, (* comp));void *dataptr[];int left;int right;int (* comp)
+      (void *, void *);</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2904183" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 10. Callout Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 10. Callout Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">CallOut (using AREASPEC)</fo:block>
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">@rem = '--*-Perl-*--
+ at echo off
+perl.exe %_batchname %$
+goto endofperl
+ at rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+ at DIRS = (&quot;/home/nwalsh/Mail&quot;);
+while (@DIRS) {
+    $dir = shift @DIRS;
+    opendir (DIR, $dir);
+    while ($fname = readdir(DIR)) {
+        $file = &quot;$dir/$fname&quot;;
+        next if ! -d $file;
+        next if $fname =~ /^\.\.?$/;
+
+        print &quot;$file\n&quot;;
+        push (@DIRS, $file);
+        &amp;compress ($file);
+    }
+}
+
+exit;</fo:block>
+      <fo:block id="id2904397">
+        <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2904405">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2776;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>The prologue handles embedding a Perl script in a DOS batch file.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904434">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2777;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>The <fo:inline font-family="Courier">goto</fo:inline> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904476">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2778;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>The <fo:inline font-family="Courier">require</fo:inline> statement sources in external program
+fragments.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904518">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2779;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>The <fo:inline font-family="Courier">use</fo:inline> statement is similar, but has additional
+utility.  It is a Perl5 function.  (Note that this callout area specifies
+both a line and a column.)</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904561">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x277A;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>This is a user subroutine call.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">CallOut (using CO)</fo:block>
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">this is a line
+this is another line
+there's a <fo:inline id="callout1">&#x2776;</fo:inline>callout in here.
+and there's another on the
+next line
+right here:<fo:inline id="callout2">&#x2777;</fo:inline></fo:block>
+      <fo:block id="id2904632">
+        <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2904654">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2776;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>First callout.</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para in first callout.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904690">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2777;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second callout.</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Third para in second callout.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904739">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2776;&#x2777;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>This paragraph describes <fo:inline font-style="italic">both</fo:inline> callouts.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2904775" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">A Reference Part</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="reference" hyphenate="true" master-name="oneside1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Reference</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2904813" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block font-size="20pt" font-weight="bold">RefEntryTitle</fo:block>
+      <fo:block><fo:block font-size="18pt" font-weight="bold">Name</fo:block>RefName1, <fo:block font-size="18pt" font-weight="bold">Name</fo:block>RefName2 -- Yes, there must be a purpose!</fo:block>
+      <fo:block>
+        <fo:block font-size="18pt" font-weight="bold">Synopsis (what about the title?)</fo:block>
+        <fo:block>  A
+   Synopsis
+    Goes
+   Here</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="18pt" font-weight="bold">A RefSect1</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+        <fo:block>
+          <fo:block font-size="16pt" font-weight="bold">A RefSect2</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+          <fo:block>
+            <fo:block font-size="14pt" font-weight="bold">A RefSect3</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<fo:footnote><fo:inline>[6]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[6] This is a footnote in a refentry.</fo:block></fo:footnote-body></fo:footnote>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2905003" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block font-size="20pt" font-weight="bold">Chop</fo:block>
+      <fo:block><fo:block font-size="18pt" font-weight="bold">Name</fo:block><fo:inline font-family="Courier">Chop</fo:inline> -- strip trailing whitespace</fo:block>
+      <fo:block>
+        <fo:block font-size="18pt" font-weight="bold">Description</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">     Returns the argument string without trailing whitespace.
+     <fo:block id="id2905062" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">chop() example</fo:block><fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">$trimmed = Chop($line);</fo:block></fo:block>
+    </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="appendix" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix A. A Very Short Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix A. A Very Short Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2905134" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix B. A Very Long Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix B. A Very Long Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block id="id2905784">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+        <fo:block id="id2905815">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect2 title</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+          <fo:block id="id2905845">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect3 title</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+            <fo:block id="id2905885">
+              <fo:block>
+                <fo:block margin-left="-4pc" font-family="Helvetica">
+                  <fo:block keep-with-next.within-column="always">
+                    <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect4 title</fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              <fo:block id="id2905915">
+                <fo:block>
+                  <fo:block margin-left="-4pc" font-family="Helvetica">
+                    <fo:block keep-with-next.within-column="always">
+                      <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect5 title</fo:block>
+                    </fo:block>
+                  </fo:block>
+                </fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2905954">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block font-family="Helvetica">a sect1 subtitle</fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+        <fo:block id="id2906009">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect2 title</fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block font-family="Helvetica">a sect2 subtitle</fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+          <fo:block id="id2906063">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect3 title</fo:block>
+                </fo:block>
+              </fo:block>
+              <fo:block font-family="Helvetica">a sect3 subtitle</fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+            <fo:block id="id2906118">
+              <fo:block>
+                <fo:block margin-left="-4pc" font-family="Helvetica">
+                  <fo:block keep-with-next.within-column="always">
+                    <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect4 title</fo:block>
+                  </fo:block>
+                </fo:block>
+                <fo:block font-family="Helvetica">a sect4 subtitle</fo:block>
+              </fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              <fo:block id="id2906172">
+                <fo:block>
+                  <fo:block margin-left="-4pc" font-family="Helvetica">
+                    <fo:block keep-with-next.within-column="always">
+                      <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect5 title</fo:block>
+                    </fo:block>
+                  </fo:block>
+                  <fo:block font-family="Helvetica">a sect5 subtitle</fo:block>
+                </fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2906244">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      </fo:block>
+      <fo:block id="id2906276">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="bib1" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">A Test Bibliography</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">Books</fo:block>
+        <fo:block id="id2906358" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[AhoSethiUllman96] </fo:inline>
+          <fo:inline>Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </fo:inline>
+          <fo:inline><fo:inline font-style="italic">Compilers, Principles, Techniques, and Tools</fo:inline>. </fo:inline>
+          <fo:inline>
+            <fo:inline>Addison-Wesley Publishing Company. </fo:inline>
+          </fo:inline>
+          <fo:inline>Copyright &#xA9; 1996 Bell Telephone Laboratories, Inc.. </fo:inline>
+          <fo:inline>0-201-10088-6. </fo:inline>
+          <fo:inline>James T. DeWolf. </fo:inline>
+          <fo:inline>
+            <fo:inline><fo:inline font-style="italic">Computer Science</fo:inline>. </fo:inline>
+            <fo:inline>Michael A. Harrison. </fo:inline>
+            <fo:inline>
+              <fo:inline>Addison-Wesley Publishing Company. </fo:inline>
+            </fo:inline>
+          </fo:inline>
+        </fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">Periodicals</fo:block>
+        <fo:block id="walsh97" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[Walsh97] </fo:inline>
+          <fo:inline>&quot;A Guide to XML&quot;. <fo:inline>Norman Walsh. </fo:inline><fo:inline>1997. </fo:inline><fo:inline>Copyright &#xA9; 1997 ArborText, Inc.. </fo:inline><fo:inline>97-108. </fo:inline></fo:inline>
+          <fo:inline><fo:inline font-style="italic">XML: Principles, Tools, and Techniques</fo:inline>. <fo:inline><fo:inline>O'Reilly &amp; Associates, Inc.. </fo:inline></fo:inline><fo:inline>1085-2301. </fo:inline><fo:inline>Dan Connolly. </fo:inline></fo:inline>
+        </fo:block>
+        <fo:block id="walsh96" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  <fo:inline>    <fo:inline>Walsh</fo:inline>, <fo:inline>Norman</fo:inline>.
+    &quot;Introduction to Cascading Style Sheets&quot;.
+  </fo:inline>
+  <fo:inline>    <fo:inline font-style="italic">The World Wide Web Journal</fo:inline>.
+    <fo:inline>2</fo:inline>(<fo:inline>1</fo:inline>).
+    <fo:inline>O'Reilly &amp; Associates, Inc.</fo:inline> and
+    <fo:inline>The World Wide Web Consortium</fo:inline>.
+    <fo:inline>Winter, 1996</fo:inline></fo:inline>.</fo:block>
+        <fo:block id="id2906903" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[Abbrev] </fo:inline>
+          <fo:inline><fo:inline font-style="italic">A Really Full BiblioEntry</fo:inline>. </fo:inline>
+          <fo:inline>Subtitle. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. </fo:block>. </fo:inline>
+          <fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>
+          <fo:inline><fo:inline>shortaffil. </fo:inline><fo:inline>jobtitle. </fo:inline><fo:inline>orgname. </fo:inline><fo:inline>orgdiv. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>. </fo:inline>
+          <fo:inline>ArtPageNums. </fo:inline>
+          <fo:inline>AuthorFirstname AuthorSurname. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </fo:block>. </fo:inline>
+          <fo:inline>AuthorInitials. </fo:inline>
+          <fo:inline><fo:inline>The names of some collaborators. </fo:inline><fo:inline><fo:inline>shortaffil. </fo:inline><fo:inline>jobtitle. </fo:inline><fo:inline>orgname. </fo:inline><fo:inline>orgdiv. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>. </fo:inline>. </fo:inline>
+          <fo:inline><fo:inline>confdates. </fo:inline><fo:inline>conftitle. </fo:inline><fo:inline>confnum. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline><fo:inline>confsponsor. </fo:inline>. </fo:inline>
+          <fo:inline>ContractNum. </fo:inline>
+          <fo:inline>ContractSponsor. </fo:inline>
+          <fo:inline>Contrib. </fo:inline>
+          <fo:inline>Copyright &#xA9; 1998 Copyright holder. </fo:inline>
+          <fo:inline>CorpName. </fo:inline>
+          <fo:inline>Date. </fo:inline>
+          <fo:inline>Edition. </fo:inline>
+          <fo:inline>EditorFirstName EditorSurname. </fo:inline>
+          <fo:inline>FirstName. </fo:inline>
+          <fo:inline>Honorific. </fo:inline>
+          <fo:inline>ISBN. </fo:inline>
+          <fo:inline>ISSN. </fo:inline>
+          <fo:inline>InvPartNumber. </fo:inline>
+          <fo:inline>IssueNum. </fo:inline>
+          <fo:inline>Lineage. </fo:inline>
+          <fo:inline>OrgName. </fo:inline>
+          <fo:inline><fo:inline>OCFirstName. </fo:inline><fo:inline>OCSurname. </fo:inline>. </fo:inline>
+          <fo:inline>OtherName. </fo:inline>
+          <fo:inline>PageNums. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</fo:block>. </fo:inline>
+          <fo:inline>ProductName. </fo:inline>
+          <fo:inline>ProductNumber. </fo:inline>
+          <fo:inline>PubDate. </fo:inline>
+          <fo:inline>
+            <fo:inline>PubPublisherName. </fo:inline>
+            <fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>
+          </fo:inline>
+          <fo:inline>PublisherName. </fo:inline>
+          <fo:inline>PubsNumber. </fo:inline>
+          <fo:inline>ReleaseInfo. </fo:inline>
+          <fo:inline><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;1.0&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;20 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;0.9&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;19 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;0.4&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;18 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block>. </fo:inline>
+          <fo:inline>
+            <fo:inline><fo:inline font-style="italic">SeriesInfo Title</fo:inline>. </fo:inline>
+            <fo:inline>SeriesInfo Editor Firstname SeriesInfo Editor Surname. </fo:inline>
+          </fo:inline>
+          <fo:inline>SeriesVolNums. </fo:inline>
+          <fo:inline>Surname. </fo:inline>
+          <fo:inline>TitleAbbrev. </fo:inline>
+          <fo:inline>VolumeNum. </fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="gloss" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Example Glossary</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is not a real glossary, it's just an example.</fo:block>
+      <fo:block font-size="16pt" font-weight="bold">E</fo:block>
+      <fo:list-block provisional-distance-between-starts="2in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:list-item id="xml" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>Extensible Markup Language</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Some reasonable definition here.</fo:block>
+            <fo:block>See Also <fo:basic-link internal-destination="sgml">Standard Generalized
+  Markup Language</fo:basic-link>.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+      <fo:block font-size="16pt" font-weight="bold">S</fo:block>
+      <fo:list-block provisional-distance-between-starts="2in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:list-item id="id2907877" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>SGML</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>See <fo:basic-link internal-destination="sgml">Standard Generalized
+  Markup Language</fo:basic-link>.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="sgml" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>Standard Generalized
+  Markup Language</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Some reasonable definition here.</fo:block>
+            <fo:block>See Also <fo:basic-link internal-destination="xml">Extensible Markup Language</fo:basic-link>.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="index" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Index</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test index.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold" keep-with-next.within-line="always" padding-end="1em">a formal para</fo:inline>this is a formal paragraph.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2908361" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">An Index with a Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">Symbols</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">A</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">C</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">O</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">S</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book3.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book3.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/book3.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,363 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="book" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Book Title</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" keep-with-next="always" space-before="2in">Some Corporation</fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">Norman Walsh</fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Book Title</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Some Corporation</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">Copyright &#xA9; 1998 Norman Walsh</fo:block>
+        <fo:block font-size="8pt">
+          <fo:block>
+            <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Legal Notice</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test document. You can do what you will with it.</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="8pt">
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> A Test Bibliography</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bib1"><fo:page-number-citation ref-id="bib1"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Example Glossary</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="gloss"><fo:page-number-citation ref-id="gloss"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Index</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="index"><fo:page-number-citation ref-id="index"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Index</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779208"><fo:page-number-citation ref-id="id2779208"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="bib1" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">A Test Bibliography</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">Books</fo:block>
+        <fo:block id="id2784988" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[AhoSethiUllman96] </fo:inline>
+          <fo:inline>Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </fo:inline>
+          <fo:inline><fo:inline font-style="italic">Compilers, Principles, Techniques, and Tools</fo:inline>. </fo:inline>
+          <fo:inline>
+            <fo:inline>Addison-Wesley Publishing Company. </fo:inline>
+          </fo:inline>
+          <fo:inline>Copyright &#xA9; 1996 Bell Telephone Laboratories, Inc.. </fo:inline>
+          <fo:inline>0-201-10088-6. </fo:inline>
+          <fo:inline>James T. DeWolf. </fo:inline>
+        </fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">Periodicals</fo:block>
+        <fo:block id="walsh97" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[Walsh97] </fo:inline>
+          <fo:inline>&quot;A Guide to XML&quot;. <fo:inline>Norman Walsh. </fo:inline><fo:inline>1997. </fo:inline><fo:inline>Copyright &#xA9; 1997 ArborText, Inc.. </fo:inline><fo:inline>97-108. </fo:inline></fo:inline>
+          <fo:inline><fo:inline font-style="italic">XML: Principles, Tools, and Techniques</fo:inline>. <fo:inline><fo:inline>O'Reilly &amp; Associates, Inc.. </fo:inline></fo:inline><fo:inline>1085-2301. </fo:inline><fo:inline>Dan Connolly. </fo:inline></fo:inline>
+        </fo:block>
+        <fo:block id="walsh96" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  <fo:inline>    <fo:inline>Walsh</fo:inline>, <fo:inline>Norman</fo:inline>.
+    &quot;Introduction to Cascading Style Sheets&quot;.
+  </fo:inline>
+  <fo:inline>    <fo:inline font-style="italic">The World Wide Web Journal</fo:inline>.
+    <fo:inline>2</fo:inline>(<fo:inline>1</fo:inline>).
+    <fo:inline>O'Reilly &amp; Associates, Inc.</fo:inline> and
+    <fo:inline>The World Wide Web Consortium</fo:inline>.
+    <fo:inline>Winter, 1996</fo:inline></fo:inline>.</fo:block>
+        <fo:block id="id2786280" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[Abbrev] </fo:inline>
+          <fo:inline><fo:inline font-style="italic">A Really Full BiblioEntry</fo:inline>. </fo:inline>
+          <fo:inline>Subtitle. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. </fo:block>. </fo:inline>
+          <fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>
+          <fo:inline><fo:inline>shortaffil. </fo:inline><fo:inline>jobtitle. </fo:inline><fo:inline>orgname. </fo:inline><fo:inline>orgdiv. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>. </fo:inline>
+          <fo:inline>ArtPageNums. </fo:inline>
+          <fo:inline>AuthorFirstname AuthorSurname. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </fo:block>. </fo:inline>
+          <fo:inline>AuthorInitials. </fo:inline>
+          <fo:inline><fo:inline>The names of some collaborators. </fo:inline><fo:inline><fo:inline>shortaffil. </fo:inline><fo:inline>jobtitle. </fo:inline><fo:inline>orgname. </fo:inline><fo:inline>orgdiv. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>. </fo:inline>. </fo:inline>
+          <fo:inline><fo:inline>confdates. </fo:inline><fo:inline>conftitle. </fo:inline><fo:inline>confnum. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline><fo:inline>confsponsor. </fo:inline>. </fo:inline>
+          <fo:inline>ContractNum. </fo:inline>
+          <fo:inline>ContractSponsor. </fo:inline>
+          <fo:inline>Contrib. </fo:inline>
+          <fo:inline>Copyright &#xA9; 1998 Copyright holder. </fo:inline>
+          <fo:inline>CorpName. </fo:inline>
+          <fo:inline>Date. </fo:inline>
+          <fo:inline>Edition. </fo:inline>
+          <fo:inline>EditorFirstName EditorSurname. </fo:inline>
+          <fo:inline>FirstName. </fo:inline>
+          <fo:inline>Honorific. </fo:inline>
+          <fo:inline>ISBN. </fo:inline>
+          <fo:inline>ISSN. </fo:inline>
+          <fo:inline>InvPartNumber. </fo:inline>
+          <fo:inline>IssueNum. </fo:inline>
+          <fo:inline>Lineage. </fo:inline>
+          <fo:inline>OrgName. </fo:inline>
+          <fo:inline><fo:inline>OCFirstName. </fo:inline><fo:inline>OCSurname. </fo:inline>. </fo:inline>
+          <fo:inline>OtherName. </fo:inline>
+          <fo:inline>PageNums. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</fo:block>. </fo:inline>
+          <fo:inline>ProductName. </fo:inline>
+          <fo:inline>ProductNumber. </fo:inline>
+          <fo:inline>PubDate. </fo:inline>
+          <fo:inline>
+            <fo:inline>PubPublisherName. </fo:inline>
+            <fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>
+          </fo:inline>
+          <fo:inline>PublisherName. </fo:inline>
+          <fo:inline>PubsNumber. </fo:inline>
+          <fo:inline>ReleaseInfo. </fo:inline>
+          <fo:inline><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;1.0&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;20 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;0.9&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;19 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;0.4&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;18 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block>. </fo:inline>
+          <fo:inline>SeriesVolNums. </fo:inline>
+          <fo:inline>Surname. </fo:inline>
+          <fo:inline>TitleAbbrev. </fo:inline>
+          <fo:inline>VolumeNum. </fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="gloss" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Example Glossary</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is not a real glossary, it's just an example.</fo:block>
+      <fo:block font-size="16pt" font-weight="bold">E</fo:block>
+      <fo:list-block provisional-distance-between-starts="2in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:list-item id="xml" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>Extensible Markup Language</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Some reasonable definition here.</fo:block>
+            <fo:block>See Also <fo:basic-link internal-destination="sgml">Standard Generalized
+  Markup Language</fo:basic-link>.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+      <fo:block font-size="16pt" font-weight="bold">S</fo:block>
+      <fo:list-block provisional-distance-between-starts="2in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:list-item id="id2778673" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>SGML</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>See <fo:basic-link internal-destination="sgml">Standard Generalized
+  Markup Language</fo:basic-link>.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="sgml" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>Standard Generalized
+  Markup Language</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Some reasonable definition here.</fo:block>
+            <fo:block>See Also <fo:basic-link internal-destination="xml">Extensible Markup Language</fo:basic-link>.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="index" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Index</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test index.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold" keep-with-next.within-line="always" padding-end="1em">a formal para</fo:inline>this is a formal paragraph.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2779208" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Index</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">Symbols</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">A</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">C</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">O</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">S</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/callout.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/callout.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/callout.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,181 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always">
+            <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Loops</fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+<fo:wrapper id="id2781313"><!--for loop, DSSSL and--></fo:wrapper>
+<fo:wrapper id="id2781330"><!--loops, implementing (DSSSL)--></fo:wrapper>
+<fo:wrapper id="id2781348"><!--tail recursion (DSSSL)--></fo:wrapper>
+
+DSSSL doesn't have any construct that resembles the
+for loop that occurs in most imperative languages like C
+and Java. Instead, DSSSL employs a common trick in
+functional languages for implementing a loop: tail recursion.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+Loops in DSSSL use a special form of
+<fo:inline font-family="Courier">let</fo:inline>. This loop counts from 1 to 10:
+<fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+(let <fo:inline id="dl1">&#x2776;</fo:inline>loopvar <fo:inline id="dl2">&#x2777;</fo:inline>((count 1))
+  <fo:inline id="dl3">&#x2778;</fo:inline>(if (&gt; count 10)
+    <fo:inline id="dl4">&#x2779;</fo:inline>#t
+    (<fo:inline id="dl5">&#x277A;</fo:inline>loopvar <fo:inline id="dl6">&#x277B;</fo:inline>(+ count 1))))</fo:block></fo:block>
+      <fo:block id="id2785036">
+        <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2785045">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2776;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>This variable controls the loop. It is declared without an
+initial value, immediately after the <fo:inline font-family="Courier">let</fo:inline>
+operand.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2785112">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2777;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>
+<fo:wrapper id="id2785136"><!--variables (DSSSL), local, defining after loop variable--></fo:wrapper>
+
+Any number of additional local variables can be defined after
+the loop variable, just as they can in any other
+<fo:inline font-family="Courier">let</fo:inline> expression.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2785185">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2778;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>If you ever want the loop to end, you have to put some sort of a
+test in it.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2785017">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2779;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>This is the value that will be returned.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2781490">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x277A;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Note that you iterate the loop by using the loop variable as if
+it was a function name.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2781524">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x277B;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>The arguments to this function are the values that
+you want the local variables declared in <fo:basic-link internal-destination="dl2">&#x2777;</fo:basic-link> to have
+in the next iteration.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/chunk.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/chunk.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/chunk.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,374 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2889273" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Book Test Document Title</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="20.736pt" text-align="center" space-before="15.552pt">Book Subtitle</fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="12pt" text-align="center" space-before="2in">
+          <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Bookinfo Test Document Title: Book Subtitle</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Foreword</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="preface"><fo:page-number-citation ref-id="preface"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 XRef Tests</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="xreftest"><fo:page-number-citation ref-id="xreftest"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> First sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781476"><fo:page-number-citation ref-id="id2781476"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> Second sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781520"><fo:page-number-citation ref-id="id2781520"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">2 Second Chapter</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="chapter"><fo:page-number-citation ref-id="chapter"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">3 Third Chapter</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781577"><fo:page-number-citation ref-id="id2781577"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">A First Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="appendix"><fo:page-number-citation ref-id="appendix"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">B Second Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2783921"><fo:page-number-citation ref-id="id2783921"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="dedication" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">First Dedication</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Just a test.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2824281" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Dedication</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Just a test.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="preface" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Foreword</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph. (<fo:basic-link internal-destination="chapter">chapter</fo:basic-link>)</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="xreftest" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. XRef Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. XRef Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:basic-link internal-destination="dedication">Dedication</fo:basic-link>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:basic-link internal-destination="preface">Preface</fo:basic-link>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:basic-link internal-destination="chapter">Chapter</fo:basic-link>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:basic-link internal-destination="appendix">Appendix</fo:basic-link>
+      </fo:block>
+      <fo:block id="id2781476">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">First sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">...</fo:block>
+      </fo:block>
+      <fo:block id="id2781520">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Second sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">...</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="chapter" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 2. Second Chapter</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 2. Second Chapter</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781577" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 3. Third Chapter</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 3. Third Chapter</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="appendix" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix A. First Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix A. First Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2783921" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix B. Second Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix B. Second Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/classsynop.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/classsynop.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/classsynop.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,146 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602136" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. Class Synopses</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. Class Synopses</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This example is Perl; it's the standard DirHandle module. I've
+cut out the code, so you'll have to trust me on the parameters.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ProgramListing version:</fo:block>
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+package DirHandle;
+
+require 5.000;
+use Carp;
+use Symbol;
+
+sub new {
+}
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ClassSynopsis version:</fo:block>
+      <fo:block color="red">&lt;classsynopsis&gt;<fo:block color="red">&lt;ooclass&gt;<fo:inline font-family="Courier">DirHandle</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;ooclass&gt;<fo:inline font-family="Courier">superclass1</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;ooclass&gt;<fo:inline font-family="Courier">superclass2</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;classsynopsisinfo&gt;
+require 5.000;
+use Carp;
+use Symbol;
+
+&lt;/classsynopsisinfo&gt;</fo:block><fo:block color="red">&lt;constructorsynopsis&gt;<fo:inline font-family="Courier">new</fo:inline><fo:block color="red">&lt;methodparam&gt;<fo:inline font-style="italic" font-family="Courier">$dirname</fo:inline>&lt;/methodparam&gt;</fo:block>&lt;/constructorsynopsis&gt;</fo:block><fo:block color="red">&lt;destructorsynopsis&gt;<fo:inline font-family="Courier">DESTROY</fo:inline>&lt;/destructorsynopsis&gt;</fo:block>&lt;/classsynopsis&gt;</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This example is IDL from the DOM spec.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ProgramListing version:</fo:block>
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+interface Element : Node {
+  readonly attribute  DOMString            tagName;
+  DOMString                 getAttribute(in DOMString name);
+  void                      setAttribute(in DOMString name, 
+                                         in DOMString value)
+                                         raises(DOMException);
+};
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ClassSynopsis version:</fo:block>
+      <fo:block color="red">&lt;classsynopsis&gt;<fo:block color="red">&lt;ooclass&gt;<fo:inline font-family="Courier">Element</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;ooclass&gt;<fo:inline font-family="Courier">Node</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;fieldsynopsis&gt;<fo:block color="red">&lt;modifier&gt;readonly&lt;/modifier&gt;</fo:block><fo:block color="red">&lt;modifier&gt;attribute&lt;/modifier&gt;</fo:block>DOMString<fo:inline font-family="Courier">tagName</fo:inline>&lt;/fieldsynopsis&gt;</fo:block><fo:block color="red">&lt;methodsynopsis&gt;DOMString<fo:inline font-family="Courier">getAttribute</fo:inline><fo:block color="red">&lt;methodparam&gt;<fo:block color="red">&lt;modifier&gt;in&lt;/modifier&gt;</fo:block>DOMString<fo:inline font-style="italic" font-family="Courier">name</fo:inline>&lt;/methodparam&gt;</fo:block>&lt;/methodsynopsis&gt;</fo:block><fo:block color="red">&lt;methodsynopsis&gt;();<fo:inline font-family="Courier">setAttribute</fo:inline><fo:block color="red">&lt;methodparam&gt;<fo:block color="red">&lt;modifier&gt;in&lt;/modifier&gt;</fo:block>DOMString<fo:inline font-style="italic" font-family="Courier">name</fo:inline>&lt;/methodparam&gt;</fo:block><fo:block color="red">&lt;methodparam&gt;<fo:block color="red">&lt;modifier&gt;in&lt;/modifier&gt;</fo:block>DOMString<fo:inline font-style="italic" font-family="Courier">value</fo:inline>&lt;/methodparam&gt;</fo:block><fo:inline font-family="Courier">DOMException</fo:inline>&lt;/methodsynopsis&gt;</fo:block>&lt;/classsynopsis&gt;</fo:block>
+      <fo:block color="red">&lt;classsynopsis&gt;<fo:block color="red">&lt;ooclass&gt;<fo:block color="red">&lt;modifier&gt;public&lt;/modifier&gt;</fo:block><fo:inline font-family="Courier">TextFileWriter</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;ooclass&gt;<fo:inline font-family="Courier">Superclass1</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;ooclass&gt;<fo:inline font-family="Courier">Superclass2</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;oointerface&gt;<fo:inline font-family="Courier">Interface1</fo:inline>&lt;/oointerface&gt;</fo:block><fo:block color="red">&lt;oointerface&gt;<fo:inline font-family="Courier">Interface2</fo:inline>&lt;/oointerface&gt;</fo:block><fo:block color="red">&lt;ooexception&gt;<fo:inline font-family="Courier">Exception1</fo:inline>&lt;/ooexception&gt;</fo:block><fo:block color="red">&lt;ooexception&gt;<fo:inline font-family="Courier">Exception2</fo:inline>&lt;/ooexception&gt;</fo:block><fo:block color="red">&lt;fieldsynopsis&gt;<fo:block color="red">&lt;modifier&gt;private&lt;/modifier&gt;</fo:block>Writer<fo:inline font-family="Courier">writer</fo:inline>&lt;/fieldsynopsis&gt;</fo:block><fo:block color="red">&lt;fieldsynopsis&gt;<fo:block color="red">&lt;modifier&gt;public&lt;/modifier&gt;</fo:block>String<fo:inline font-family="Courier">writerName</fo:inline><fo:block color="red">&lt;initializer&gt;&quot;MyWriter&quot;&lt;/initializer&gt;</fo:block>&lt;/fieldsynopsis&gt;</fo:block><fo:block color="red">&lt;methodsynopsis&gt;<fo:block color="red">&lt;modifier&gt;static&lt;/modifier&gt;</fo:block><fo:block color="red">&lt;modifier&gt;public&lt;/modifier&gt;</fo:block>();<fo:inline font-family="Courier">write</fo:inline><fo:block color="red">&lt;methodparam&gt;ResultTreeFragment<fo:inline font-style="italic" font-family="Courier">frag</fo:inline>&lt;/methodparam&gt;</fo:block><fo:block color="red">&lt;methodparam&gt;String<fo:inline font-style="italic" font-family="Courier">file</fo:inline>&lt;/methodparam&gt;</fo:block><fo:inline font-family="Courier">Exception1</fo:inline><fo:inline font-family="Courier">Exception2</fo:inline>&lt;/methodsynopsis&gt;</fo:block>&lt;/classsynopsis&gt;</fo:block>
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+class Rectangle_with_data:  virtual Shape, virtual Data_container
+{
+...
+};
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ClassSynopsis version:</fo:block>
+      <fo:block color="red">&lt;classsynopsis&gt;<fo:block color="red">&lt;ooclass&gt;<fo:inline font-family="Courier">Rectangle_with_data</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;ooclass&gt;<fo:block color="red">&lt;modifier&gt;virtual&lt;/modifier&gt;</fo:block><fo:inline font-family="Courier">Shape</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;ooclass&gt;<fo:block color="red">&lt;modifier&gt;virtual&lt;/modifier&gt;</fo:block><fo:inline font-family="Courier">Data_container</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;classsynopsisinfo&gt;...&lt;/classsynopsisinfo&gt;</fo:block>&lt;/classsynopsis&gt;</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/condition.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/condition.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/condition.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5648 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="book" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Book Title</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" keep-with-next="always" space-before="2in">Some Corporation</fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">Norman Walsh</fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Book Title</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Some Corporation</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">Copyright &#xA9; 1998 Norman Walsh</fo:block>
+        <fo:block font-size="8pt">
+          <fo:block>
+            <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Legal Notice</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test document. You can do what you will with it.</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="8pt">
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Preface Title</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2793719"><fo:page-number-citation ref-id="id2793719"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">I Part One Title</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781520"><fo:page-number-citation ref-id="id2781520"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">1 XRef Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="chapter"><fo:page-number-citation ref-id="chapter"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">2 Section Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="stchap"><fo:page-number-citation ref-id="stchap"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> a sect1 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="secttest1"><fo:page-number-citation ref-id="secttest1"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block start-indent="6pc">
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> a sect2 title</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2778797"><fo:page-number-citation ref-id="id2778797"/></fo:basic-link></fo:inline>
+              </fo:block>
+              <fo:block start-indent="8pc">
+                <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                  <fo:inline keep-with-next.within-line="always"> a sect3 title</fo:inline>
+                  <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2778828"><fo:page-number-citation ref-id="id2778828"/></fo:basic-link></fo:inline>
+                </fo:block>
+                <fo:block start-indent="10pc">
+                  <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                    <fo:inline keep-with-next.within-line="always"> a sect4 title</fo:inline>
+                    <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779158"><fo:page-number-citation ref-id="id2779158"/></fo:basic-link></fo:inline>
+                  </fo:block>
+                  <fo:block start-indent="12pc">
+                    <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                      <fo:inline keep-with-next.within-line="always"> a sect5 title</fo:inline>
+                      <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779188"><fo:page-number-citation ref-id="id2779188"/></fo:basic-link></fo:inline>
+                    </fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="secttest2"><fo:page-number-citation ref-id="secttest2"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block start-indent="6pc">
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> another sect2 title</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779421"><fo:page-number-citation ref-id="id2779421"/></fo:basic-link></fo:inline>
+              </fo:block>
+              <fo:block start-indent="8pc">
+                <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                  <fo:inline keep-with-next.within-line="always"> another sect3 title</fo:inline>
+                  <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779476"><fo:page-number-citation ref-id="id2779476"/></fo:basic-link></fo:inline>
+                </fo:block>
+                <fo:block start-indent="10pc">
+                  <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                    <fo:inline keep-with-next.within-line="always"> another sect4 title</fo:inline>
+                    <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779530"><fo:page-number-citation ref-id="id2779530"/></fo:basic-link></fo:inline>
+                  </fo:block>
+                  <fo:block start-indent="12pc">
+                    <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                      <fo:inline keep-with-next.within-line="always"> another sect5 title</fo:inline>
+                      <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779584"><fo:page-number-citation ref-id="id2779584"/></fo:basic-link></fo:inline>
+                    </fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="secttest3"><fo:page-number-citation ref-id="secttest3"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="secttest4"><fo:page-number-citation ref-id="secttest4"/></fo:basic-link></fo:inline>
+            </fo:block>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">3 Inline Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779018"><fo:page-number-citation ref-id="id2779018"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">4 Block Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2902832"><fo:page-number-citation ref-id="id2902832"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">5 List Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2904524"><fo:page-number-citation ref-id="id2904524"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">6 Table Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2908237"><fo:page-number-citation ref-id="id2908237"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">7 Index Term Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2914288"><fo:page-number-citation ref-id="id2914288"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> Index Term Sect 1</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2914372"><fo:page-number-citation ref-id="id2914372"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block start-indent="6pc">
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> Index Term Sect 2</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2914720"><fo:page-number-citation ref-id="id2914720"/></fo:basic-link></fo:inline>
+              </fo:block>
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> Index Term Sect 3</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2914887"><fo:page-number-citation ref-id="id2914887"/></fo:basic-link></fo:inline>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">II Part Two Title</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="part"><fo:page-number-citation ref-id="part"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">8 CmdSynopsis Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2914940"><fo:page-number-citation ref-id="id2914940"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">9 FuncSynopsis Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2916253"><fo:page-number-citation ref-id="id2916253"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">10 Callout Tests</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2916611"><fo:page-number-citation ref-id="id2916611"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">III A Reference Part</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2917195"><fo:page-number-citation ref-id="id2917195"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always">I Reference</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="reference"><fo:page-number-citation ref-id="reference"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> RefEntryTitle</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2917232"><fo:page-number-citation ref-id="id2917232"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> <fo:inline font-family="Courier">Chop</fo:inline></fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2917423"><fo:page-number-citation ref-id="id2917423"/></fo:basic-link></fo:inline>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">A A Very Short Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="appendix"><fo:page-number-citation ref-id="appendix"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">B A Very Long Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2917553"><fo:page-number-citation ref-id="id2917553"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> a sect1 title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918204"><fo:page-number-citation ref-id="id2918204"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> a sect2 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918243"><fo:page-number-citation ref-id="id2918243"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block start-indent="6pc">
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> a sect3 title</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918274"><fo:page-number-citation ref-id="id2918274"/></fo:basic-link></fo:inline>
+              </fo:block>
+              <fo:block start-indent="8pc">
+                <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                  <fo:inline keep-with-next.within-line="always"> a sect4 title</fo:inline>
+                  <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918304"><fo:page-number-citation ref-id="id2918304"/></fo:basic-link></fo:inline>
+                </fo:block>
+                <fo:block start-indent="10pc">
+                  <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                    <fo:inline keep-with-next.within-line="always"> a sect5 title</fo:inline>
+                    <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918335"><fo:page-number-citation ref-id="id2918335"/></fo:basic-link></fo:inline>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918374"><fo:page-number-citation ref-id="id2918374"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> another sect2 title</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918428"><fo:page-number-citation ref-id="id2918428"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block start-indent="6pc">
+              <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                <fo:inline keep-with-next.within-line="always"> another sect3 title</fo:inline>
+                <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918483"><fo:page-number-citation ref-id="id2918483"/></fo:basic-link></fo:inline>
+              </fo:block>
+              <fo:block start-indent="8pc">
+                <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                  <fo:inline keep-with-next.within-line="always"> another sect4 title</fo:inline>
+                  <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918546"><fo:page-number-citation ref-id="id2918546"/></fo:basic-link></fo:inline>
+                </fo:block>
+                <fo:block start-indent="10pc">
+                  <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+                    <fo:inline keep-with-next.within-line="always"> another sect5 title</fo:inline>
+                    <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918600"><fo:page-number-citation ref-id="id2918600"/></fo:basic-link></fo:inline>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918663"><fo:page-number-citation ref-id="id2918663"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> another sect1 title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2918696"><fo:page-number-citation ref-id="id2918696"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> A Test Bibliography</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bib1"><fo:page-number-citation ref-id="bib1"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Example Glossary</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="gloss"><fo:page-number-citation ref-id="gloss"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Index</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="index"><fo:page-number-citation ref-id="index"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> An Index with a Title</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2920779"><fo:page-number-citation ref-id="id2920779"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">List of Figures</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">4.1 A Figure</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="figure"><fo:page-number-citation ref-id="figure"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">List of Tables</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">4.1 A Table</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="table"><fo:page-number-citation ref-id="table"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">6.1 Table Title</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="t1"><fo:page-number-citation ref-id="t1"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">List of Examples</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">4.1 An Example</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="example"><fo:page-number-citation ref-id="example"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">2 chop() example</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2917482"><fo:page-number-citation ref-id="id2917482"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">List of Equations</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">4.1 An Equation</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="equation"><fo:page-number-citation ref-id="equation"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781448" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Dedication</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This test book is dedicated to all the testers.  This is the first para
+of the dedication.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second para of the dedication.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the third para of the dedication.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2793719" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Preface Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Preface content.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second para of the preface.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the third para of the preface.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781520" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Part One Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block text-align="center" font-size="17.28pt" font-weight="bold" margin-left="-4pc" space-before="1em" font-family="Helvetica">PartIntro Title</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Partintro content<fo:footnote><fo:inline>[1]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[1] This is a footnote in a partintro.</fo:block></fo:footnote-body></fo:footnote>.</fo:block>
+      <fo:block id="id2781603">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">PartIntro Section</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">PartIntros can actually have section content as well.</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="chapter" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. XRef Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. XRef Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Xrefs</fo:block>
+      <fo:table>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="book">Book Title</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="part">Part II. Part Two Title</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="chapter">Chapter 1. XRef Tests</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="appendix">Appendix A. A Very Short Appendix</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="table">Table 4.1. A Table</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="figure">Figure 4.1. A Figure</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="example">Example 4.1. An Example</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="equation"></fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="reference">Reference</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="bib1">A Test Bibliography</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="gloss">Example Glossary</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="index">Index</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the first reference to <fo:inline font-style="italic">XML</fo:inline>.
+This is the second reference to XML.
+These are references without <fo:inline font-family="Courier">linkend</fo:inline>
+attributes: <fo:inline font-style="italic">XML</fo:inline>, XML.</fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Links</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">More <fo:basic-link external-destination="http://www.jclark.com/dsssl/">DSSSL information</fo:basic-link><fo:inline hyphenate="false"> [http://www.jclark.com/dsssl/]</fo:inline>
+is available.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There is <fo:basic-link internal-destination="part">a second part</fo:basic-link> in this book.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the <fo:basic-link internal-destination="chapter"/>
+chapter.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="stchap" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 2. Section Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 2. Section Tests</fo:block>
+        </fo:block>
+        <fo:block space-before="0.5em" margin-left="-4pc" font-style="italic" font-size="14.4pt" font-weight="bold" font-family="Helvetica">Section Tests Subtitle</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<fo:wrapper id="id2784962"><!--ap1--></fo:wrapper>
+<fo:wrapper id="id2784986"><!--ap2--></fo:wrapper>
+
+<fo:wrapper id="id2785010"><!--bp1, bp1bs1--></fo:wrapper>
+<fo:wrapper id="id2785041"><!--bp2--></fo:wrapper>
+
+<fo:wrapper id="id2785065"><!--cp1, cp1cs1, cp1cs1ct1--></fo:wrapper>
+<fo:wrapper id="id2785105"><!--cp2--></fo:wrapper>
+
+<fo:wrapper id="id2785129"><!--dp1, dp1ds1--></fo:wrapper>
+<fo:wrapper id="id2785161"><!--dp1, dp1ds2--></fo:wrapper>
+<fo:wrapper id="id2785193"><!--dp2--></fo:wrapper></fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      <fo:block id="secttest1">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<fo:wrapper id="id2785309"><!--ep1, ep1es1, ep1es1et1--></fo:wrapper>
+<fo:wrapper id="id2785348"><!--ep1, ep1es2--></fo:wrapper>
+<fo:wrapper id="id2785380"><!--ep2--></fo:wrapper>
+
+<fo:wrapper id="id2785404"><!--fp1, fp1fs1--></fo:wrapper>
+<fo:wrapper id="id2785311"><!--fp1, fp1fs2, fp1fs2ft1--></fo:wrapper>
+<fo:wrapper id="id2784900"><!--fp2--></fo:wrapper>
+
+<fo:wrapper id="id2778552"><!--gp1, gp1gs1--></fo:wrapper>
+<fo:wrapper id="id2778582"><!--gp1, gp1gs2--></fo:wrapper>
+<fo:wrapper id="id2778614"><!--gp1, gp1gs2, gp1gs2gt1--></fo:wrapper>
+<fo:wrapper id="id2778653"><!--gp1, gp1gs2, gp1gs2gt2--></fo:wrapper>
+<fo:wrapper id="id2778693"><!--gp1, gp1gs3--></fo:wrapper>
+<fo:wrapper id="id2778724"><!--gp2--></fo:wrapper></fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+        <fo:block id="id2778797">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect2 title</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+          <fo:block id="id2778828">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect3 title</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<fo:wrapper id="id2778856"><!--hp1, hp1hs1, hp1hs1ht1--></fo:wrapper>
+<fo:wrapper id="id2778896"><!--hp1, hp1hs1, hp1hs1ht2--></fo:wrapper>
+<fo:wrapper id="id2778936"><!--hp2--></fo:wrapper>
+
+<fo:wrapper id="id2778960"><!--ip1--></fo:wrapper>
+<fo:wrapper id="id2778984"><!--ip1, ip1is1--></fo:wrapper>
+<fo:wrapper id="id2779016"><!--ip1, ip1is1, ip1is1it1--></fo:wrapper>
+<fo:wrapper id="id2779055"><!--ip1, ip1is1, ip1is1it2--></fo:wrapper>
+<fo:wrapper id="id2779095"><!--ip1, ip1is2, ip1is2it1--></fo:wrapper>
+<fo:wrapper id="id2779135"><!--ip2--></fo:wrapper></fo:block>
+            <fo:block id="id2779158">
+              <fo:block>
+                <fo:block margin-left="-4pc" font-family="Helvetica">
+                  <fo:block keep-with-next.within-column="always">
+                    <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect4 title</fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              <fo:block id="id2779188">
+                <fo:block>
+                  <fo:block margin-left="-4pc" font-family="Helvetica">
+                    <fo:block keep-with-next.within-column="always">
+                      <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect5 title</fo:block>
+                    </fo:block>
+                  </fo:block>
+                </fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="secttest2">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block font-family="Helvetica">a sect1 subtitle</fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<fo:wrapper id="id2779295"><!--jp1--></fo:wrapper>
+<fo:wrapper id="id2779319"><!--jp1, jp1js1, jp1js1jt1--></fo:wrapper>
+<fo:wrapper id="id2779358"><!--jp1, jp1js1, jp1js1jt2--></fo:wrapper>
+<fo:wrapper id="id2779398"><!--jp2--></fo:wrapper></fo:block>
+        <fo:block id="id2779421">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect2 title</fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block font-family="Helvetica">a sect2 subtitle</fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+          <fo:block id="id2779476">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect3 title</fo:block>
+                </fo:block>
+              </fo:block>
+              <fo:block font-family="Helvetica">a sect3 subtitle</fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+            <fo:block id="id2779530">
+              <fo:block>
+                <fo:block margin-left="-4pc" font-family="Helvetica">
+                  <fo:block keep-with-next.within-column="always">
+                    <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect4 title</fo:block>
+                  </fo:block>
+                </fo:block>
+                <fo:block font-family="Helvetica">a sect4 subtitle</fo:block>
+              </fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              <fo:block id="id2779584">
+                <fo:block>
+                  <fo:block margin-left="-4pc" font-family="Helvetica">
+                    <fo:block keep-with-next.within-column="always">
+                      <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect5 title</fo:block>
+                    </fo:block>
+                  </fo:block>
+                  <fo:block font-family="Helvetica">a sect5 subtitle</fo:block>
+                </fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="secttest3">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      </fo:block>
+      <fo:block id="secttest4">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2779018" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 3. Inline Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 3. Inline Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2779321">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Testing &#x2018;Quotes&#x2019; in a title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Footnotes<fo:footnote><fo:inline>[2]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[2] Like this!</fo:block></fo:footnote-body></fo:footnote> are inlines.
+Sort of<fo:footnote><fo:inline>[3]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[3] Well, the marks are, anyway!</fo:block></fo:footnote-body></fo:footnote>.
+Another footnote<fo:inline>[2]</fo:inline>.</fo:block>
+        <fo:table>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Abbrev</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>GUIIcon</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">SGMLTag</fo:inline> (Attribute)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Acronym</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>GUILabel</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">SGMLTag</fo:inline> (AttValue)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Action</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>GUIMenu</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">SGMLTag</fo:inline> (Element)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Application</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>GUISubMenu</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&lt;/SGMLTag&gt;</fo:inline> (EndTag)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>[Citation]</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Hardware</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&amp;SGMLTag;</fo:inline> (GenEntity)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>CiteRefEntry RefEntryTitle(n)</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block>
+                    <fo:external-graphic src="url(file:emc2.gif)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+                  </fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&amp;#SGMLTag;</fo:inline> (NumCharRef)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">Citetitle</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Interface</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">%SGMLTag;</fo:inline> (ParamEntity)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">ClassName</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>InterfaceDefinition</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&lt;?SGMLTag&gt;</fo:inline> (PI)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-weight="bold">Command</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-weight="bold">KeyCap</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&lt;!--SGMLTag--&gt;</fo:inline> (SGMLComment)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block><fo:inline font-style="italic">Comment</fo:inline> (Comment)</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>KeyCode</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block><fo:inline font-family="Courier">&lt;SGMLTag&gt;</fo:inline> (StartTag)</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">ComputerOutput</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Key-Combo</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">SGMLTag</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Database</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>KeySym</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic" font-family="Courier">StructField</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>ErrorName</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">Literal</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>StructName</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>ErrorType</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Markup</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline vertical-align="sub">Subscript</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">&lt;Email&gt;</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">MediaLabel</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline vertical-align="super">Superscript</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">Emphasis</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>MouseButton</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Symbol</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">EnVar</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">Option</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>SystemItem</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>ErrorCode</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>[Optional]</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Token</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">Filename</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic" font-family="Courier">Parameter</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Trademark&#x2122;</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">Firstterm</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Phrase</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Type</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">ForeignPhrase</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">Prompt</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-weight="bold" font-family="Courier">UserInput</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-family="Courier">Function</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Property</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic">WordAsWord</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>GUIMenuItem</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>&#x201C;Quote&#x201D;</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>ProductName&#x2122;</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>GUIButton</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:inline font-style="italic" font-family="Courier">Replaceable</fo:inline>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>GUIButton (with Accel)</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>ReturnValue</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">And here are a couple of index terms, as another test (of 
+index terms, not inlines).
+<fo:wrapper id="id2902772"><!--aap1--></fo:wrapper>
+<fo:wrapper id="id2902800"><!--bbp1--></fo:wrapper></fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2902832" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 4. Block Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 4. Block Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2902846">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Formal Objects</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Example</fo:block>
+        <fo:block id="example" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+          <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An Example</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is an example of a trivial example.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Figure</fo:block>
+        <fo:block id="figure" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+          <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A Figure</fo:block>
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is an example of a trivial figure.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Equation</fo:block>
+        <fo:block id="equation" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+          <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An Equation</fo:block>
+          <fo:block>
+            <fo:external-graphic src="url(file:emc2.gif)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Table</fo:block>
+        <fo:table-and-caption id="table" keep-together.within-column="always" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em">
+          <fo:table-caption>
+            <fo:block font-weight="bold" space-after.minimum="0.2em" space-after.optimum="0.5em" space-after.maximum="0.8em" keep-with-next.within-column="always" hyphenate="false">A Table</fo:block>
+          </fo:table-caption>
+          <fo:table>
+            <fo:table-column column-number="1" column-width="0.5in"/>
+            <fo:table-column column-number="2" column-width="0.5in"/>
+            <fo:table-body>
+              <fo:table-row>
+                <fo:table-cell>
+                  <fo:block>1</fo:block>
+                </fo:table-cell>
+                <fo:table-cell>
+                  <fo:block>1</fo:block>
+                </fo:table-cell>
+              </fo:table-row>
+              <fo:table-row>
+                <fo:table-cell>
+                  <fo:block>2</fo:block>
+                </fo:table-cell>
+                <fo:table-cell>
+                  <fo:block>4</fo:block>
+                </fo:table-cell>
+              </fo:table-row>
+              <fo:table-row>
+                <fo:table-cell>
+                  <fo:block>3</fo:block>
+                </fo:table-cell>
+                <fo:table-cell>
+                  <fo:block>9</fo:block>
+                </fo:table-cell>
+              </fo:table-row>
+            </fo:table-body>
+          </fo:table>
+        </fo:table-and-caption>
+      </fo:block>
+      <fo:block id="id2903167">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Informal Objects</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">InformalExample</fo:block>
+        <fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is an example of a trivial, informal example.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">InformalEquation</fo:block>
+        <fo:block>
+          <fo:block>
+            <fo:external-graphic src="url(file:emc2.gif)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">InformalTable</fo:block>
+        <fo:table>
+          <fo:table-column column-number="1"/>
+          <fo:table-column column-number="2"/>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>8</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>27</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:block>
+      <fo:block id="id2903390">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Admonitions</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Note</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2903419">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself noted.</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para.</fo:block>
+        </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2903442">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself noted, simply.</fo:block>
+        </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2903458">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">NoteTitle</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself noted.</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para, with a title.</fo:block>
+        </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2903490">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Att</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself noted, simply.</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With a title</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Important</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2903537">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Important</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself important.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Tip</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2903555">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Tip</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself tipped.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Warning</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2903596">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Warning</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself warned.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Caution</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2903625">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Caution</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Consider yourself cautioned.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">SimPara in Caution</fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2903655">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Simple Caution</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A simpler caution.</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2903680">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Other Objects</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Screen</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This
+  is                  With a line-annotation
+    a 
+     screen
+     This
+    is                With a line-annotation
+  a 
+screen
+This
+  is                  With a line-annotation
+    a 
+     screen</fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">ProgramListing</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This
+  is
+    a 
+programlisting</fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Address</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">Norman Walsh
+ArborText, Inc.
+1000 Victors Way
+Ann Arbor, MI 48108
+US
+
+Voice: 313.997.0200
+Fax: 313.997.0201
+
+Email: <fo:inline font-family="Courier">&lt;nwalsh at arbortext.com&gt;</fo:inline>
+WWW: http://www.arbortext.com/</fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">BlockQuote</fo:block>
+        <fo:block start-indent="0.5in" end-indent="0.5in">
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The universe that we observe has precisely the properties we should 
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&#x2014;Richard Dawkins</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Procedure</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>1.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the first step</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>2.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second step</fo:block>
+                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+                  <fo:list-item>
+                    <fo:list-item-label end-indent="label-end()">
+                      <fo:block>a.</fo:block>
+                    </fo:list-item-label>
+                    <fo:list-item-body start-indent="body-start()">
+                      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the first substep</fo:block>
+                    </fo:list-item-body>
+                  </fo:list-item>
+                  <fo:list-item>
+                    <fo:list-item-label end-indent="label-end()">
+                      <fo:block>b.</fo:block>
+                    </fo:list-item-label>
+                    <fo:list-item-body start-indent="body-start()">
+                      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second substep</fo:block>
+                    </fo:list-item-body>
+                  </fo:list-item>
+                </fo:list-block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>3.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the third step</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+          </fo:list-block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Procedure With Title</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:block font-weight="bold">Same Procedure with a Title</fo:block>
+          <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>1.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the first step</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>2.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second step</fo:block>
+                <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+                  <fo:list-item>
+                    <fo:list-item-label end-indent="label-end()">
+                      <fo:block>a.</fo:block>
+                    </fo:list-item-label>
+                    <fo:list-item-body start-indent="body-start()">
+                      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the first substep</fo:block>
+                    </fo:list-item-body>
+                  </fo:list-item>
+                  <fo:list-item>
+                    <fo:list-item-label end-indent="label-end()">
+                      <fo:block>b.</fo:block>
+                    </fo:list-item-label>
+                    <fo:list-item-body start-indent="body-start()">
+                      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second substep</fo:block>
+                    </fo:list-item-body>
+                  </fo:list-item>
+                </fo:list-block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item>
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>3.</fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the third step</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+          </fo:list-block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">SideBar</fo:block>
+        <fo:block>
+          <fo:block font-weight="bold" keep-with-next.within-column="always" hyphenate="false">What About Bob?</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a sidebar.</fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">MsgSet</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It's not really clear how <fo:inline font-family="Courier">MsgSet</fo:inline> should be presented.
+I expect that it's fairly application, if not document, specific.</fo:block>
+        <fo:block>
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Record failed CRC</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Record <fo:inline font-style="italic" font-family="Courier">n</fo:inline>
+                    in <fo:inline font-style="italic" font-family="Courier">database</fo:inline></fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">File read error on 
+                   <fo:inline font-style="italic" font-family="Courier">database</fo:inline></fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Panic! Corrupt record!</fo:block>
+          </fo:block>
+          <fo:block>
+            <fo:block><fo:inline font-weight="bold" keep-with-next.within-line="always">Level: </fo:inline>severe</fo:block>
+            <fo:block><fo:inline font-weight="bold" keep-with-next.within-line="always">Origin: </fo:inline>server</fo:block>
+            <fo:block><fo:inline font-weight="bold" keep-with-next.within-line="always">Audience: </fo:inline>all</fo:block>
+          </fo:block>
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">        Indicates that some sort of error occured attempting to load
+        a record from the database.  Retry.  If failure persists,
+        contact the database administrator.
+        </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">LiteralLayout</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a
+literal
+       layout</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a
+literal
+       layout
+  in a para</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2904524" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 5. List Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 5. List Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2904538">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">OrderedLists</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Default Numeration</fo:block>
+        <fo:list-block id="id2904566" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2904582" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904598" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">this one starts with
+a program listing
+what happens?</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904621" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this one starts with
+a synopsis
+what happens?</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904643" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>para first</fo:block>
+              <fo:block>this one has
+a synopsis
+what happens?</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904673" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>5.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+              <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">A
+Screen
+Here</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904702" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>6.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Arabic Numeration</fo:block>
+        <fo:list-block id="id2904738" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2904735" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904771" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904786" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904802" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Arabic Numeration (Long)</fo:block>
+        <fo:list-block id="id2904838" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2904835" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904871" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904887" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904902" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904918" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>5.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Five</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904934" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>6.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Six</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904950" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>7.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Seven</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904965" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>8.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Eight</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904981" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>9.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Nine</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904997" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>10.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Ten</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905012" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>11.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Eleven</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">UpperAlpha Numeration</fo:block>
+        <fo:list-block id="id2905048" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2905045" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905082" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905097" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905113" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">LowerAlpha Numeration</fo:block>
+        <fo:list-block id="id2905149" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2905146" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905182" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905198" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905214" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">UpperRoman Numeration</fo:block>
+        <fo:list-block id="id2905250" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2905247" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905283" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905299" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905315" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">LowerRoman Numeration</fo:block>
+        <fo:list-block id="id2905351" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2905348" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905384" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905400" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905415" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Continued</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">First list:
+<fo:list-block id="id2905453" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em"><fo:list-item id="id2905470" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>One</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2905485" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Two</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2905501" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Three</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2905517" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Four</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second list:
+<fo:list-block id="id2905545" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em"><fo:list-item id="id2905540" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>1.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Five</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2905572" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>2.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Six</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2905588" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>3.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Seven</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2905603" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>4.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Eight</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2905619" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>5.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Nine</fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2905635" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>6.</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>Ten</fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block>
+      </fo:block>
+      <fo:block id="id2905653">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">ItemizedLists</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Default Presentation</fo:block>
+        <fo:list-block id="id2905682" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2905687" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905703" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">One-point-five. This one starts with
+a program listing
+what happens?</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905726" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905741" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905757" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Block Elements in a List</fo:block>
+        <fo:list-block id="id2905789" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2905794" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Another para.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905818" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905834" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905850" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Alternate Mark and OverRide</fo:block>
+        <fo:list-block id="id2905886" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2905883" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>TeX and LaTeX</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905914" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Troff</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905929" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Lout</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905950" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Test</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">No mark Presentation</fo:block>
+        <fo:list-block id="id2905986" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2905998" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906018" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906033" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906049" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="id2906068">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">VariableLists</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2906083" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2906089" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>Term1</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906127" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>Term2</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906165" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>Term3</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+              <fo:list-block id="id2906199" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2906205" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>&#x2022;</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>One</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906221" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>&#x2022;</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>Two</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906237" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>&#x2022;</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>Three</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906252" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>&#x2022;</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>Four</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906287" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>Term4</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:list-block id="id2906326" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2906333" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>Another List</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906371" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>ProgramListing</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">A ProgramListing
+Is the First Element
+of this VarListEntry</fo:block>
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="id2906427">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">SimpleLists</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Inline</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An inline simple list:
+<fo:inline>One, Two, Three, Four, Five, Six, Seven</fo:inline></fo:block>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Horiz</fo:block>
+        <fo:table>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>One</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Two</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Three</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Four</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Five</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Six</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Seven</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+        <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Vert</fo:block>
+        <fo:table>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>One</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Four</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Seven</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Two</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Five</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>Three</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>Six</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block/>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:block>
+      <fo:block id="id2906701">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">More Complex List Item Content</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2906716" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2906722" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906746" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906769" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+              <fo:block>Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906793" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906816" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block><fo:inline font-weight="bold" keep-with-next.within-line="always" padding-end="1em">Formal Element</fo:inline>Five</fo:block>
+              <fo:block>Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906856" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2022;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Six</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:list-block id="id2906873" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2906890" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>1.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>One</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906914" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>2.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Two</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906937" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>3.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Three</fo:block>
+              <fo:block>Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906961" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>4.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Four</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906984" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>5.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block><fo:inline font-weight="bold" keep-with-next.within-line="always" padding-end="1em">Formal Element</fo:inline>Five</fo:block>
+              <fo:block>Second para</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2907024" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>6.</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Six</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="id2907043">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Segmented List</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-weight="bold">State Birds</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Alabama</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Yellowhammer</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Alaska</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Willow Ptarmigan</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Arizona</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cactus Wren</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Arkansas</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mockingbird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>California</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>California Valley Quail</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Colorado</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Lark Bunting</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Connecticut</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Robin</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Delaware</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Blue Hen Chicken</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Florida</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mockingbird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Georgia</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Brown Thrasher</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Hawaii</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Nene</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Idaho</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mountain Bluebird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Illinois</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Indiana</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Iowa</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Eastern Goldfinch</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Kansas</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Kentucky</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Louisiana</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Eastern Brown Pelican</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Maine</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Chickadee</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Maryland</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Baltimore Oriole</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Massachusetts</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Chickadee</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Michigan</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Robin</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Minnesota</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Common Loon</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Mississippi</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mockingbird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Missouri</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Bluebird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Montana</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Nebraska</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Nevada</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mountain Bluebird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>New Hampshire</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Purple Finch</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>New Jersey</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Eastern Goldfinch</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>New Mexico</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Roadrunner</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>New York</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Bluebird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>North Carolina</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>North Dakota</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Ohio</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Oklahoma</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Scissor-tailed Flycatcher</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Oregon</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Pennsylvania</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Ruffed Grouse</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Rhode Island</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Rhode Island Red</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>South Carolina</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Great Carolina Wren</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>South Dakota</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Ring-necked Pheasant</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Tennessee</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mockingbird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Texas</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Mockingbird</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Utah</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>American Seagull</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Vermont</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Hermit Thrush</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Virginia</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal </fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Washington</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Willow Goldfinch</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>West Virginia</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Cardinal</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Wisconsin</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Robin</fo:block>
+        <fo:block><fo:inline font-weight="bold">State: </fo:inline>Wyoming</fo:block>
+        <fo:block><fo:inline font-weight="bold">Bird: </fo:inline>Western Meadowlark</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2908237" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 6. Table Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 6. Table Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Alternate Alignment on Entry</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1" column-width="2in"/>
+        <fo:table-column column-number="2" column-width="2in"/>
+        <fo:table-column column-number="3"/>
+        <fo:table-header>
+          <fo:table-row>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>h1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>h2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>h3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-header>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>left</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>right</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>right</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:table>
+        <fo:table-column column-number="1" column-width="2in"/>
+        <fo:table-column column-number="2" column-width="2in"/>
+        <fo:table-column column-number="3"/>
+        <fo:table-header border-top="0.5pt solid black ">
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>h1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-header>
+        <fo:table-body border-bottom="0.5pt solid black ">
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>left</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>center</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>right</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>right</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:table>
+        <fo:table-column column-number="1" column-width="2in"/>
+        <fo:table-column column-number="2" column-width="2in"/>
+        <fo:table-column column-number="3"/>
+        <fo:table-header>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>h1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-header>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:inline font-style="italic">left emph</fo:inline>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>
+                <fo:inline font-style="italic">center emph/bold</fo:inline>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>
+                <fo:inline font-family="Courier">center literal</fo:inline>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:inline font-family="Courier">center filename</fo:inline>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>
+                <fo:inline font-weight="bold">right command</fo:inline>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>right</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Absolute Widths</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1" column-width="1in"/>
+        <fo:table-column column-number="2" column-width="1in"/>
+        <fo:table-column column-number="3" column-width="1in"/>
+        <fo:table-header>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>h1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>h3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-header>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>e1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>e1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>e1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>e3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Relative Widths</fo:block>
+      <fo:table table-layout="fixed">
+        <fo:table-column column-number="1" column-width="proportional-column-width(3)"/>
+        <fo:table-column column-number="2" column-width="proportional-column-width(2)"/>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">left</fo:block>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">center</fo:block>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">center</fo:block>
+              </fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">right</fo:block>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Too many cells</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a broken table.  There are too many cells in the second row.
+YMMV.  Don't do this.</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1"/>
+        <fo:table-column column-number="2"/>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Missing Entrys</fo:block>
+      <fo:table-and-caption id="t1" keep-together.within-column="always" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em">
+        <fo:table-caption>
+          <fo:block font-weight="bold" space-after.minimum="0.2em" space-after.optimum="0.5em" space-after.maximum="0.8em" keep-with-next.within-column="always" hyphenate="false">Table Title</fo:block>
+        </fo:table-caption>
+        <fo:table>
+          <fo:table-column column-number="1"/>
+          <fo:table-column column-number="2"/>
+          <fo:table-column column-number="3"/>
+          <fo:table-header>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">head1</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">head2</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">head3</fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-header>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">a1</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">a2</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">a3</fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">b1</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">b3</fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell number-columns-spanned="NaN">
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">c2</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">c3</fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:table-and-caption>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Complex</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1"/>
+        <fo:table-column column-number="2"/>
+        <fo:table-column column-number="3"/>
+        <fo:table-column column-number="4"/>
+        <fo:table-column column-number="5"/>
+        <fo:table-column column-number="6"/>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>A1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>A2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>A3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell number-rows-spanned="2">
+              <fo:block>A4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>A5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>A6</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>B1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-right="0.5pt solid black " padding-right="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>B2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-bottom="0.5pt solid black " padding-bottom="2pt">
+              <fo:block>B3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>B5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>B6</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>C1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell border-right="0.5pt solid black " padding-right="2pt">
+              <fo:block>C2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>C3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>C4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell number-rows-spanned="3" number-columns-spanned="2">
+              <fo:block>C5</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell number-columns-spanned="NaN">
+              <fo:block>D2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>D3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>D4</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>E1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell number-columns-spanned="2">
+              <fo:block>E2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>E4</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>F1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>F2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>F3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>F4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>F5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>F6</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">With Footnotes</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1"/>
+        <fo:table-column column-number="2"/>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>foo<fo:footnote><fo:inline>[4]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[4] A meaningless
+word</fo:block></fo:footnote-body></fo:footnote></fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3<fo:footnote><fo:inline>[5]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[5] A meaningless
+number</fo:block></fo:footnote-body></fo:footnote></fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>bar<fo:inline>[4]</fo:inline></fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5<fo:inline>[5]</fo:inline></fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">A Big One</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1"/>
+        <fo:table-column column-number="2"/>
+        <fo:table-column column-number="3"/>
+        <fo:table-column column-number="4"/>
+        <fo:table-column column-number="5"/>
+        <fo:table-column column-number="6"/>
+        <fo:table-column column-number="7"/>
+        <fo:table-column column-number="8"/>
+        <fo:table-column column-number="9"/>
+        <fo:table-column column-number="10"/>
+        <fo:table-column column-number="11"/>
+        <fo:table-column column-number="12"/>
+        <fo:table-column column-number="13"/>
+        <fo:table-column column-number="14"/>
+        <fo:table-column column-number="15"/>
+        <fo:table-header>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>H1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>H15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-header>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>1</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>2</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>3</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>4</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>5</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>6</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>7</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>8</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>9</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>10</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>11</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>12</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>13</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>14</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>15</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2914288" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 7. Index Term Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 7. Index Term Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test data.</fo:block>
+      <fo:wrapper id="idx1">
+<!--oft-repeated-->
+      </fo:wrapper>
+      <fo:wrapper id="idx2">
+<!--chap-level-->
+      </fo:wrapper>
+      <fo:block id="id2914372">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Index Term Sect 1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test data.</fo:block>
+        <fo:wrapper id="idx3">
+<!--!-->
+        </fo:wrapper>
+        <fo:wrapper id="fred">
+<!--oft-repeated, with id-->
+        </fo:wrapper>
+        <fo:wrapper id="idx5">
+<!--sect1-level-->
+        </fo:wrapper>
+        <fo:wrapper id="idx6">
+<!--sect1-level-->
+        </fo:wrapper>
+        <fo:wrapper id="idx7">
+<!--sect1-level, sec-->
+        </fo:wrapper>
+        <fo:wrapper id="idx8">
+<!--sect1-other, sec-->
+        </fo:wrapper>
+        <fo:wrapper id="idx9">
+<!--chap-level, sec, tert-->
+        </fo:wrapper>
+        <fo:wrapper id="id2914653">
+<!--chap-level, sec, tert-->
+        </fo:wrapper>
+        <fo:wrapper id="idx11">
+<!--sect1-level-->
+        </fo:wrapper>
+        <fo:block id="id2914720">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Index Term Sect 2</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test data.</fo:block>
+          <fo:wrapper id="idx12">
+<!--[-->
+          </fo:wrapper>
+          <fo:wrapper id="idx13">
+<!--oft-repeated-->
+          </fo:wrapper>
+          <fo:wrapper id="idx14">
+<!--sect2-level-->
+          </fo:wrapper>
+          <fo:wrapper id="idx15">
+<!--chap-level, sec, tert-->
+          </fo:wrapper>
+        </fo:block>
+        <fo:block id="id2914887">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Index Term Sect 3</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">foo</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="part" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Part Two Title</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2914940" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 8. CmdSynopsis Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 8. CmdSynopsis Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Very Simple CmdSynopsis</fo:block>
+      <fo:block><fo:inline font-family="Courier">cd</fo:inline>  {<fo:inline font-style="italic" font-family="Courier">directory</fo:inline>}</fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Simple CmdSynopsis</fo:block>
+      <fo:block><fo:inline font-family="Courier">cal</fo:inline>  [-j] [-y] [month  [year]]</fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Another Simple CmdSynopsis</fo:block>
+      <fo:block><fo:inline font-family="Courier">chgrp</fo:inline>  [-R 
+     [-H | -L | -P]
+  ] [-f]  <fo:inline font-style="italic" font-family="Courier">group</fo:inline>   <fo:inline font-style="italic" font-family="Courier">file</fo:inline>... </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Slightly Complex CmdSynopsis</fo:block>
+      <fo:block><fo:inline font-family="Courier">emacs</fo:inline>  [-t <fo:inline font-style="italic" font-family="Courier">file</fo:inline>] [-q] [-u <fo:inline font-style="italic" font-family="Courier">user</fo:inline>] [+<fo:inline font-style="italic" font-family="Courier">number</fo:inline>] [-f <fo:inline font-style="italic" font-family="Courier">function</fo:inline>...] [-l <fo:inline font-style="italic" font-family="Courier">file</fo:inline>...]  <fo:inline font-style="italic" font-family="Courier">file</fo:inline>... </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Quite Complex CmdSynopsis</fo:block>
+      <fo:block><fo:inline font-family="Courier">cccp</fo:inline>  [-$] [-C] [-D<fo:inline font-style="italic" font-family="Courier">name</fo:inline> [=<fo:inline font-style="italic" font-family="Courier">definition</fo:inline>]...] [-dD] [-dM] [-I <fo:inline font-style="italic" font-family="Courier">directory</fo:inline>...] [-H] [-I-] [-imacros <fo:inline font-style="italic" font-family="Courier">file</fo:inline>...] [-include <fo:inline font-style="italic" font-family="Courier">file</fo:inline>...] [-lang-c | -lang-c++ | -lang-objc] [-lint] [-M | -MD | -MM | -MMD] [-nostdinc] [-P] [-pedantic] [-pedantic-errors] [-trigraphs] [-U<fo:inline font-style="italic" font-family="Courier">name</fo:inline>] [-undef] [-Wtrigraphs] [-Wcomment] [-Wall] [-Wtraditional] {<fo:inline font-style="italic" font-family="Courier">infile</fo:inline> | -} {<fo:inline font-style="italic" font-family="Courier">outfile</fo:inline> | -}</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2916253" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 9. FuncSynopsis Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 9. FuncSynopsis Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Two Simple Parameters</fo:block>
+      <fo:block>
+        <fo:block font-family="Courier"><fo:inline font-family="Courier">int <fo:inline font-weight="bold">max</fo:inline></fo:inline>(int1, int2);int int1;int int2;</fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Variable Arguments</fo:block>
+      <fo:block>
+        <fo:block>#include &lt;varargs.h&gt;</fo:block>
+        <fo:block font-family="Courier"><fo:inline font-family="Courier">int <fo:inline font-weight="bold">max</fo:inline></fo:inline>(...);</fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Void</fo:block>
+      <fo:block>
+        <fo:block font-family="Courier"><fo:inline font-family="Courier">int <fo:inline font-weight="bold">rand</fo:inline></fo:inline>();</fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Function Pointer Arguments</fo:block>
+      <fo:block>
+        <fo:block font-family="Courier"><fo:inline font-family="Courier">void <fo:inline font-weight="bold">qsort</fo:inline></fo:inline>(dataptr, left, right, (* comp));void *dataptr[];int left;int right;int (* comp)
+      (void *, void *);</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2916611" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 10. Callout Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 10. Callout Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">CallOut (using AREASPEC)</fo:block>
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">@rem = '--*-Perl-*--
+ at echo off
+perl.exe %_batchname %$
+goto endofperl
+ at rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+ at DIRS = (&quot;/home/nwalsh/Mail&quot;);
+while (@DIRS) {
+    $dir = shift @DIRS;
+    opendir (DIR, $dir);
+    while ($fname = readdir(DIR)) {
+        $file = &quot;$dir/$fname&quot;;
+        next if ! -d $file;
+        next if $fname =~ /^\.\.?$/;
+
+        print &quot;$file\n&quot;;
+        push (@DIRS, $file);
+        &amp;compress ($file);
+    }
+}
+
+exit;</fo:block>
+      <fo:block id="id2916804">
+        <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2916812">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2776;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>The prologue handles embedding a Perl script in a DOS batch file.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2916855">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2777;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>The <fo:inline font-family="Courier">goto</fo:inline> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2916897">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2778;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>The <fo:inline font-family="Courier">require</fo:inline> statement sources in external program
+fragments.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2916939">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2779;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>The <fo:inline font-family="Courier">use</fo:inline> statement is similar, but has additional
+utility.  It is a Perl5 function.  (Note that this callout area specifies
+both a line and a column.)</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2916981">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x277A;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>This is a user subroutine call.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">CallOut (using CO)</fo:block>
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">this is a line
+this is another line
+there's a <fo:inline id="callout1">&#x2776;</fo:inline>callout in here.
+and there's another on the
+next line
+right here:<fo:inline id="callout2">&#x2777;</fo:inline></fo:block>
+      <fo:block id="id2917051">
+        <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.2em" provisional-label-separation="0.2em">
+          <fo:list-item id="id2917074">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2776;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>First callout.</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second para in first callout.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2917109">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2777;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Second callout.</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Third para in second callout.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2917159">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>&#x2776;&#x2777;</fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>This paragraph describes <fo:inline font-style="italic">both</fo:inline> callouts.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2917195" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">A Reference Part</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="reference" hyphenate="true" master-name="oneside1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Reference</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2917232" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block font-size="20pt" font-weight="bold">RefEntryTitle</fo:block>
+      <fo:block><fo:block font-size="18pt" font-weight="bold">Name</fo:block>RefName1, <fo:block font-size="18pt" font-weight="bold">Name</fo:block>RefName2 -- Yes, there must be a purpose!</fo:block>
+      <fo:block>
+        <fo:block font-size="18pt" font-weight="bold">Synopsis (what about the title?)</fo:block>
+        <fo:block>  A
+   Synopsis
+    Goes
+   Here</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="18pt" font-weight="bold">A RefSect1</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+        <fo:block>
+          <fo:block font-size="16pt" font-weight="bold">A RefSect2</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+          <fo:block>
+            <fo:block font-size="14pt" font-weight="bold">A RefSect3</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<fo:footnote><fo:inline>[6]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[6] This is a footnote in a refentry.</fo:block></fo:footnote-body></fo:footnote>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2917423" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block font-size="20pt" font-weight="bold">Chop</fo:block>
+      <fo:block><fo:block font-size="18pt" font-weight="bold">Name</fo:block><fo:inline font-family="Courier">Chop</fo:inline> -- strip trailing whitespace</fo:block>
+      <fo:block>
+        <fo:block font-size="18pt" font-weight="bold">Description</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">     Returns the argument string without trailing whitespace.
+     <fo:block id="id2917482" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">chop() example</fo:block><fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">$trimmed = Chop($line);</fo:block></fo:block>
+    </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="appendix" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix A. A Very Short Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix A. A Very Short Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2917553" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix B. A Very Long Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix B. A Very Long Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</fo:block>
+      <fo:block id="id2918204">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+        <fo:block id="id2918243">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect2 title</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+          <fo:block id="id2918274">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect3 title</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+            <fo:block id="id2918304">
+              <fo:block>
+                <fo:block margin-left="-4pc" font-family="Helvetica">
+                  <fo:block keep-with-next.within-column="always">
+                    <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect4 title</fo:block>
+                  </fo:block>
+                </fo:block>
+              </fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              <fo:block id="id2918335">
+                <fo:block>
+                  <fo:block margin-left="-4pc" font-family="Helvetica">
+                    <fo:block keep-with-next.within-column="always">
+                      <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">a sect5 title</fo:block>
+                    </fo:block>
+                  </fo:block>
+                </fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2918374">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block font-family="Helvetica">a sect1 subtitle</fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+        <fo:block id="id2918428">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect2 title</fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block font-family="Helvetica">a sect2 subtitle</fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+          <fo:block id="id2918483">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect3 title</fo:block>
+                </fo:block>
+              </fo:block>
+              <fo:block font-family="Helvetica">a sect3 subtitle</fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+            <fo:block id="id2918546">
+              <fo:block>
+                <fo:block margin-left="-4pc" font-family="Helvetica">
+                  <fo:block keep-with-next.within-column="always">
+                    <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect4 title</fo:block>
+                  </fo:block>
+                </fo:block>
+                <fo:block font-family="Helvetica">a sect4 subtitle</fo:block>
+              </fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              <fo:block id="id2918600">
+                <fo:block>
+                  <fo:block margin-left="-4pc" font-family="Helvetica">
+                    <fo:block keep-with-next.within-column="always">
+                      <fo:block font-size="10pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect5 title</fo:block>
+                    </fo:block>
+                  </fo:block>
+                  <fo:block font-family="Helvetica">a sect5 subtitle</fo:block>
+                </fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2918663">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      </fo:block>
+      <fo:block id="id2918696">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">another sect1 title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="bib1" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">A Test Bibliography</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">Books</fo:block>
+        <fo:block id="id2918777" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[AhoSethiUllman96] </fo:inline>
+          <fo:inline>Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </fo:inline>
+          <fo:inline><fo:inline font-style="italic">Compilers, Principles, Techniques, and Tools</fo:inline>. </fo:inline>
+          <fo:inline>
+            <fo:inline>Addison-Wesley Publishing Company. </fo:inline>
+          </fo:inline>
+          <fo:inline>Copyright &#xA9; 1996 Bell Telephone Laboratories, Inc.. </fo:inline>
+          <fo:inline>0-201-10088-6. </fo:inline>
+          <fo:inline>James T. DeWolf. </fo:inline>
+          <fo:inline>
+            <fo:inline><fo:inline font-style="italic">Computer Science</fo:inline>. </fo:inline>
+            <fo:inline>Michael A. Harrison. </fo:inline>
+            <fo:inline>
+              <fo:inline>Addison-Wesley Publishing Company. </fo:inline>
+            </fo:inline>
+          </fo:inline>
+        </fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">Periodicals</fo:block>
+        <fo:block id="walsh97" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[Walsh97] </fo:inline>
+          <fo:inline>&quot;A Guide to XML&quot;. <fo:inline>Norman Walsh. </fo:inline><fo:inline>1997. </fo:inline><fo:inline>Copyright &#xA9; 1997 ArborText, Inc.. </fo:inline><fo:inline>97-108. </fo:inline></fo:inline>
+          <fo:inline><fo:inline font-style="italic">XML: Principles, Tools, and Techniques</fo:inline>. <fo:inline><fo:inline>O'Reilly &amp; Associates, Inc.. </fo:inline></fo:inline><fo:inline>1085-2301. </fo:inline><fo:inline>Dan Connolly. </fo:inline></fo:inline>
+        </fo:block>
+        <fo:block id="walsh96" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  <fo:inline>    <fo:inline>Walsh</fo:inline>, <fo:inline>Norman</fo:inline>.
+    &quot;Introduction to Cascading Style Sheets&quot;.
+  </fo:inline>
+  <fo:inline>    <fo:inline font-style="italic">The World Wide Web Journal</fo:inline>.
+    <fo:inline>2</fo:inline>(<fo:inline>1</fo:inline>).
+    <fo:inline>O'Reilly &amp; Associates, Inc.</fo:inline> and
+    <fo:inline>The World Wide Web Consortium</fo:inline>.
+    <fo:inline>Winter, 1996</fo:inline></fo:inline>.</fo:block>
+        <fo:block id="id2919321" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:inline>[Abbrev] </fo:inline>
+          <fo:inline><fo:inline font-style="italic">A Really Full BiblioEntry</fo:inline>. </fo:inline>
+          <fo:inline>Subtitle. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. </fo:block>. </fo:inline>
+          <fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>
+          <fo:inline><fo:inline>shortaffil. </fo:inline><fo:inline>jobtitle. </fo:inline><fo:inline>orgname. </fo:inline><fo:inline>orgdiv. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>. </fo:inline>
+          <fo:inline>ArtPageNums. </fo:inline>
+          <fo:inline>AuthorFirstname AuthorSurname. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </fo:block>. </fo:inline>
+          <fo:inline>AuthorInitials. </fo:inline>
+          <fo:inline><fo:inline>The names of some collaborators. </fo:inline><fo:inline><fo:inline>shortaffil. </fo:inline><fo:inline>jobtitle. </fo:inline><fo:inline>orgname. </fo:inline><fo:inline>orgdiv. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>. </fo:inline>. </fo:inline>
+          <fo:inline><fo:inline>confdates. </fo:inline><fo:inline>conftitle. </fo:inline><fo:inline>confnum. </fo:inline><fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline><fo:inline>confsponsor. </fo:inline>. </fo:inline>
+          <fo:inline>ContractNum. </fo:inline>
+          <fo:inline>ContractSponsor. </fo:inline>
+          <fo:inline>Contrib. </fo:inline>
+          <fo:inline>Copyright &#xA9; 1998 Copyright holder. </fo:inline>
+          <fo:inline>CorpName. </fo:inline>
+          <fo:inline>Date. </fo:inline>
+          <fo:inline>Edition. </fo:inline>
+          <fo:inline>EditorFirstName EditorSurname. </fo:inline>
+          <fo:inline>FirstName. </fo:inline>
+          <fo:inline>Honorific. </fo:inline>
+          <fo:inline>ISBN. </fo:inline>
+          <fo:inline>ISSN. </fo:inline>
+          <fo:inline>InvPartNumber. </fo:inline>
+          <fo:inline>IssueNum. </fo:inline>
+          <fo:inline>Lineage. </fo:inline>
+          <fo:inline>OrgName. </fo:inline>
+          <fo:inline><fo:inline>OCFirstName. </fo:inline><fo:inline>OCSurname. </fo:inline>. </fo:inline>
+          <fo:inline>OtherName. </fo:inline>
+          <fo:inline>PageNums. </fo:inline>
+          <fo:inline><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</fo:block>. </fo:inline>
+          <fo:inline>ProductName. </fo:inline>
+          <fo:inline>ProductNumber. </fo:inline>
+          <fo:inline>PubDate. </fo:inline>
+          <fo:inline>
+            <fo:inline>PubPublisherName. </fo:inline>
+            <fo:inline>Any Street
+Anywhere, XX 99999
+USA. </fo:inline>
+          </fo:inline>
+          <fo:inline>PublisherName. </fo:inline>
+          <fo:inline>PubsNumber. </fo:inline>
+          <fo:inline>ReleaseInfo. </fo:inline>
+          <fo:inline><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;1.0&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;20 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;0.9&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;19 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;0.4&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;18 Nov 1998&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;ndw&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revremark&gt;Some remark about the revision&lt;/revremark&gt;</fo:block>&lt;/revision&gt;</fo:block>. </fo:inline>
+          <fo:inline>
+            <fo:inline><fo:inline font-style="italic">SeriesInfo Title</fo:inline>. </fo:inline>
+            <fo:inline>SeriesInfo Editor Firstname SeriesInfo Editor Surname. </fo:inline>
+          </fo:inline>
+          <fo:inline>SeriesVolNums. </fo:inline>
+          <fo:inline>Surname. </fo:inline>
+          <fo:inline>TitleAbbrev. </fo:inline>
+          <fo:inline>VolumeNum. </fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="gloss" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Example Glossary</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is not a real glossary, it's just an example.</fo:block>
+      <fo:block font-size="16pt" font-weight="bold">E</fo:block>
+      <fo:list-block provisional-distance-between-starts="2in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:list-item id="xml" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>Extensible Markup Language</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Some reasonable definition here.</fo:block>
+            <fo:block>See Also <fo:basic-link internal-destination="sgml">Standard Generalized
+  Markup Language</fo:basic-link>.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+      <fo:block font-size="16pt" font-weight="bold">S</fo:block>
+      <fo:list-block provisional-distance-between-starts="2in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:list-item id="id2920295" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>SGML</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>See <fo:basic-link internal-destination="sgml">Standard Generalized
+  Markup Language</fo:basic-link>.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="sgml" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>Standard Generalized
+  Markup Language</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Some reasonable definition here.</fo:block>
+            <fo:block>See Also <fo:basic-link internal-destination="xml">Extensible Markup Language</fo:basic-link>.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="index" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Index</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test index.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-weight="bold" keep-with-next.within-line="always" padding-end="1em">a formal para</fo:inline>this is a formal paragraph.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2920779" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">An Index with a Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">Symbols</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">A</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">C</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">O</fo:block>
+      </fo:block>
+      <fo:block>
+        <fo:block font-size="16pt" font-weight="bold">S</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/docbook40.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/docbook40.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/docbook40.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,255 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602136" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">DocBook V4.0 Example Document</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">Norman Walsh</fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>DocBook V4.0 Example Document</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This document demonstrates the new tags in DocBook V4.0.</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The focus of this document is to present examples of new elements,
+minor changes such as the addition of new attribute values are not
+included.</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 Block-level Markup</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2901240"><fo:page-number-citation ref-id="id2901240"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">2 Inline markup</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781886"><fo:page-number-citation ref-id="id2781886"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2901240" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. Block-level Markup</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. Block-level Markup</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There's a new simple-alternative for <fo:inline font-family="Courier">msgentry</fo:inline>:
+<fo:inline font-family="Courier">simplemsgentry</fo:inline>.</fo:block>
+      <fo:block color="red">&lt;simplemsgentry&gt;<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The text of a message</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An explanation of the message.</fo:block></fo:block>&lt;/simplemsgentry&gt;</fo:block>
+      <fo:block color="red">&lt;simplemsgentry&gt;<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The text of a message</fo:block><fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">An explanation of the message.</fo:block></fo:block>&lt;/simplemsgentry&gt;</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Longer descriptions are possible in a <fo:inline font-family="Courier">revhistory</fo:inline>:
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+<fo:block color="red">&lt;revhistory&gt;<fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;2&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;today&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;nwalsh&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revdescription&gt;
+<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Here are a few paragraphs of description:</fo:block>
+<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Did some stuff.</fo:block>
+<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Did some other stuff.</fo:block>
+&lt;/revdescription&gt;</fo:block>&lt;/revision&gt;</fo:block><fo:block color="red">&lt;revision&gt;<fo:block color="red">&lt;revnumber&gt;1&lt;/revnumber&gt;</fo:block><fo:block color="red">&lt;date&gt;yesterday&lt;/date&gt;</fo:block><fo:block color="red">&lt;authorinitials&gt;nwalsh&lt;/authorinitials&gt;</fo:block><fo:block color="red">&lt;revdescription&gt;
+<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Here are a few paragraphs of description:</fo:block>
+<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Did some stuff.</fo:block>
+<fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Did some other stuff.</fo:block>
+&lt;/revdescription&gt;</fo:block>&lt;/revision&gt;</fo:block>&lt;/revhistory&gt;</fo:block>
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Ordered and itemized lists can have titles:</fo:block>
+      <fo:block font-size="12pt" font-weight="bold">Itemized List</fo:block>
+      <fo:list-block id="id2781606" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+        <fo:list-item id="id2781616" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>First thing</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2781627" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Second thing</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2781638" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Third thing</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+      <fo:block font-size="12pt" font-weight="bold">Ordered List</fo:block>
+      <fo:list-block id="id2781650" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+        <fo:list-item id="id2781661" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>First thing</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2781672" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Second thing</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2781682" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>Third thing</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Linespecific environments can indicate line numbering:</fo:block>
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+&lt;!ENTITY % linespecific.attrib
+	&quot;format		NOTATION
+			(linespecific)	'linespecific'
+         linenumbering	(numbered|unnumbered) 	#IMPLIED&quot;&gt;
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Added <fo:inline font-family="Courier">classsynopsis</fo:inline> for documenting
+object-oriented programming language classes. Here's one example:</fo:block>
+      <fo:block color="red">&lt;classsynopsis&gt;<fo:block color="red">&lt;ooclass&gt;<fo:block color="red">&lt;modifier&gt;public&lt;/modifier&gt;</fo:block><fo:inline font-family="Courier">TextFileWriter</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;ooclass&gt;<fo:inline font-family="Courier">HandlerBase</fo:inline>&lt;/ooclass&gt;</fo:block><fo:block color="red">&lt;fieldsynopsis&gt;<fo:block color="red">&lt;modifier&gt;private&lt;/modifier&gt;</fo:block>Writer<fo:inline font-family="Courier">writer</fo:inline>&lt;/fieldsynopsis&gt;</fo:block><fo:block color="red">&lt;fieldsynopsis&gt;<fo:block color="red">&lt;modifier&gt;public&lt;/modifier&gt;</fo:block>String<fo:inline font-family="Courier">writerName</fo:inline><fo:block color="red">&lt;initializer&gt;&quot;MyWriter&quot;&lt;/initializer&gt;</fo:block>&lt;/fieldsynopsis&gt;</fo:block><fo:block color="red">&lt;methodsynopsis&gt;<fo:block color="red">&lt;modifier&gt;static&lt;/modifier&gt;</fo:block><fo:block color="red">&lt;modifier&gt;public&lt;/modifier&gt;</fo:block>();<fo:inline font-family="Courier">write</fo:inline><fo:block color="red">&lt;methodparam&gt;ResultTreeFragment<fo:inline font-style="italic" font-family="Courier">frag</fo:inline>&lt;/methodparam&gt;</fo:block><fo:block color="red">&lt;methodparam&gt;String<fo:inline font-style="italic" font-family="Courier">file</fo:inline>&lt;/methodparam&gt;</fo:block><fo:inline font-family="Courier">SAXException</fo:inline>&lt;/methodsynopsis&gt;</fo:block>&lt;/classsynopsis&gt;</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781886" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 2. Inline markup</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 2. Inline markup</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="Courier">sgmltag</fo:inline> element has new
+<fo:inline font-family="Courier">class</fo:inline> attribute values:
+<fo:inline font-family="Courier">xmlpi</fo:inline> and
+<fo:inline font-family="Courier">emptytag</fo:inline>. These produce
+<fo:inline font-family="Courier">&lt;?processing instructions?&gt;</fo:inline>
+and <fo:inline font-family="Courier">&lt;empty-tag/&gt;</fo:inline> markup
+suitable for XML.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/external.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/external.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/external.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2601941" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Main document</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Main document</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 </fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="main"><fo:page-number-citation ref-id="main"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">2 </fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="subdoc"><fo:page-number-citation ref-id="subdoc"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="main" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. </fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block/>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This references to: <fo:basic-link internal-destination="subdoc"/></fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="subdoc" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 2. </fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block/>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is nothing, but a subdoc</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/figtest.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/figtest.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/figtest.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,129 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602101" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" margin-left="-4pc" keep-with-next="always" font-size="24.8832pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Article Test Document Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This is a &#x201C;short quote&#x201D;.
+This is a &#x201C;Quotation with a &#x2018;nested quotation
+containing a &#x201C;nested quotation and another &#x2018;nested
+quotation&#x2019;&#x201D;&#x2019;&#x201D;.
+</fo:block>
+      <fo:block id="testfig1" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+        <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test Figure</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a
+  ProgramListing
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This para contains an xref to a figure: <fo:basic-link internal-destination="testfig1">Figure 1. Test Figure</fo:basic-link>.
+</fo:block>
+      <fo:block id="testfig2" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+        <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test Figure2</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">A Second
+  Test Figure
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This para contains an <fo:basic-link internal-destination="testfig2">link</fo:basic-link> to a
+figure. And an xref:  <fo:basic-link internal-destination="testfig2">Figure 2. Test Figure2</fo:basic-link>.
+</fo:block>
+      <fo:block id="testfig3" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always">
+        <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test Figure</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This is a
+  ProgramListing
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This para contains an xref to a figure: <fo:basic-link internal-destination="testfig3">Figure 3. Test Figure</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/foottest.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/foottest.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/foottest.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,180 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602101" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" margin-left="-4pc" keep-with-next="always" font-size="24.8832pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Article Test Document Title</fo:block>
+        </fo:block>
+        <fo:block>nwalshNorman WalshOther CreditEdited bySomeother EditorSomeone Else</fo:block>
+        <fo:block>Copyright &#xA9; 1999 Norman Walsh</fo:block>
+        <fo:block>Apr. 26, 1999</fo:block>
+        <fo:block>
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a footnote<fo:footnote><fo:inline>[1]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[1] See?</fo:block></fo:footnote-body></fo:footnote>.</fo:block>
+      <fo:table>
+        <fo:table-column column-number="1"/>
+        <fo:table-column column-number="2"/>
+        <fo:table-column column-number="3"/>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>entry</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>entry</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>entry</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>entry<fo:footnote><fo:inline>[2]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[2] table cell footnote</fo:block></fo:footnote-body></fo:footnote></fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>entry</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>entry</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>entry</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>entry</fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block>entry</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>Nebbiolo, Bonarda<fo:footnote><fo:inline>[3]</fo:inline><fo:footnote-body font-size="8pt"><fo:block>[3] 
+<fo:inline font-style="italic">Blended wines, made from two or more grapes</fo:inline>
+</fo:block></fo:footnote-body></fo:footnote></fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block/>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block/>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>Sangiovese, Canaiolo, and others<fo:inline>[3]</fo:inline></fo:block>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block/>
+            </fo:table-cell>
+            <fo:table-cell>
+              <fo:block/>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block id="id2778718">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Appendix</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/fotest.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/fotest.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/fotest.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,230 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2889273" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Book Test Document Title</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="20.736pt" text-align="center" space-before="15.552pt">Book Subtitle</fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="12pt" text-align="center" space-before="2in">
+          <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Bookinfo Test Document Title: Book Subtitle</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Foreword</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2889237"><fo:page-number-citation ref-id="id2889237"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 First Chapter</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781400"><fo:page-number-citation ref-id="id2781400"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">A First Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781440"><fo:page-number-citation ref-id="id2781440"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">List of Tables</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 A Table</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="table"><fo:page-number-citation ref-id="table"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2889237" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Foreword</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph.</fo:block>
+      <fo:table-and-caption id="table" keep-together.within-column="always" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em">
+        <fo:table-caption>
+          <fo:block font-weight="bold" space-after.minimum="0.2em" space-after.optimum="0.5em" space-after.maximum="0.8em" keep-with-next.within-column="always" hyphenate="false">A Table</fo:block>
+        </fo:table-caption>
+        <fo:table>
+          <fo:table-column column-number="1" column-width="0.5in"/>
+          <fo:table-column column-number="2" column-width="0.5in"/>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>4</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>9</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:table-and-caption>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781400" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. First Chapter</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. First Chapter</fo:block>
+        </fo:block>
+        <fo:block space-before="0.5em" margin-left="-4pc" font-style="italic" font-size="14.4pt" font-weight="bold" font-family="Helvetica">Chapter Subtitle</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781440" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix A. First Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix A. First Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/func.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/func.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/func.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="ch1" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. test</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. test</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This is a <fo:inline font-family="Courier">foo<fo:inline font-style="italic" font-family="Courier">x</fo:inline><fo:inline font-style="italic" font-family="Courier">y</fo:inline></fo:inline>. This is just a <fo:inline font-style="italic" font-family="Courier">x</fo:inline>.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This is a <fo:inline font-family="Courier">bar<fo:inline font-style="italic" font-family="Courier">x</fo:inline><fo:inline font-family="Courier">y<fo:inline font-style="italic" font-family="Courier">z</fo:inline></fo:inline></fo:inline>. This is just a <fo:inline font-style="italic" font-family="Courier">x</fo:inline>.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This is a <fo:inline font-family="Courier">bar<fo:inline font-style="italic" font-family="Courier">x</fo:inline><fo:inline font-style="italic" font-family="Courier">z</fo:inline></fo:inline>. This is just a <fo:inline font-style="italic" font-family="Courier">x</fo:inline>.
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This is a just a function <fo:inline font-family="Courier">bar</fo:inline>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/gdp-handbook.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/gdp-handbook.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/gdp-handbook.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4762 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="index" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" margin-left="-4pc" keep-with-next="always" font-size="24.8832pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">The GNOME Handbook of Writing Software Documentation</fo:block>
+        </fo:block>
+        <fo:block>David Mason<fo:block><fo:block>Red Hat, Inc.</fo:block><fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+            <fo:inline font-family="Courier">&lt;dcm at redhat.com&gt;</fo:inline>
+          </fo:block></fo:block>Daniel Mueth<fo:block><fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+            <fo:inline font-family="Courier">&lt;d-mueth at uchicago.edu&gt;</fo:inline>
+          </fo:block></fo:block>Alexander Kirillov<fo:block><fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+            <fo:inline font-family="Courier">&lt;kirillov at math.sunysb.edu&gt;</fo:inline>
+          </fo:block></fo:block></fo:block>
+        <fo:block>
+      This is a pre-release!
+    </fo:block>
+        <fo:block>Copyright © 2000 Red Hat, Inc., Daniel Mueth, and Alexander Kirillov</fo:block>
+        <fo:block>
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      Permission is granted to copy, distribute and/or modify this
+      document under the terms of the <fo:inline font-style="italic">GNU Free Documentation
+      License</fo:inline>, Version 1.1 or any later version published
+      by the Free Software Foundation with no Invariant Sections, no
+      Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy
+      of the <fo:inline font-style="italic">GNU Free Documentation License</fo:inline> from
+      the Free Software Foundation by visiting <fo:basic-link external-destination="http://www.fsf.org">their Web site</fo:basic-link><fo:inline hyphenate="false"> [http://www.fsf.org]</fo:inline> or by writing to:
+      Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+      Boston, MA 02111-1307, USA.
+     </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      Many of the names used by companies to distinguish their products and
+      services are claimed as trademarks. Where those names appear in any
+      GNOME documentation, and those trademarks are made aware to the members
+      of the GNOME Documentation Project, the names have been printed in caps
+      or initial caps.
+     </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block>
+          <fo:table table-layout="fixed">
+            <fo:table-column column-number="1" column-width="33%"/>
+            <fo:table-column column-number="2" column-width="33%"/>
+            <fo:table-column column-number="3" column-width="33%"/>
+            <fo:table-body>
+              <fo:table-row>
+                <fo:table-cell number-columns-spanned="3">
+                  <fo:block>Revision History</fo:block>
+                </fo:table-cell>
+              </fo:table-row>
+              <fo:table-row>
+                <fo:table-cell>
+                  <fo:block>Revision 
+          0.99
+        </fo:block>
+                </fo:table-cell>
+                <fo:table-cell>
+                  <fo:block>
+         04.10.2000
+        </fo:block>
+                </fo:table-cell>
+                <fo:table-cell>
+                  <fo:block/>
+                </fo:table-cell>
+              </fo:table-row>
+            </fo:table-body>
+          </fo:table>
+        </fo:block>
+      </fo:block>
+      <fo:block id="intro">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Introduction</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="gdp">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">The GNOME Documentation Project</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="goals">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Goals</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          The GNOME Documentation Project (GDP) aims to provide GNOME
+          and GNOME applications with a complete, intuitive, and clear
+          documentation system.  At the center of the GDP is the
+          GNOME Help Browser, which
+          presents a unified interface to GNOME-specific documentation
+          as well as other Linux documentation such as man pages and
+          texinfo documents. The GNOME Help System provides a
+          comprehensive view of documentation on a machine by
+          dynamically assembling the documentation of GNOME
+          applications and components which are installed. The GDP is
+          responsible for writing numerous GNOME-related documents,
+          both for developers and for users.  Developer documentation
+          includes <fo:basic-link external-destination="http://developer.gnome.org/doc/API/">APIs for the GNOME libraries</fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/doc/API/]</fo:inline>, <fo:basic-link external-destination="http://developer.gnome.org/doc/whitepapers/"><fo:inline font-style="italic">GNOME White
+          Papers</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/doc/whitepapers/]</fo:inline>, GNOME developer <fo:basic-link external-destination="http://developer.gnome.org/doc/tutorials/">tutorials</fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/doc/tutorials/]</fo:inline>, the <fo:basic-link external-destination="http://developer.gnome.org/doc/FAQ/"><fo:inline font-style="italic">GNOME Developer
+          FAQ</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/doc/FAQ/]</fo:inline>, the <fo:basic-link external-destination="http://developer.gnome.org">GNOME
+          Developer's Website</fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org]</fo:inline>, and <fo:inline font-style="italic">GNOME
+          Handbook</fo:inline>'s, such as the one you are reading.
+          User documentation include the <fo:basic-link external-destination="http://www.gnome.org/learn/"><fo:inline font-style="italic">GNOME User's
+          Guide</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [http://www.gnome.org/learn/]</fo:inline>, the <fo:basic-link external-destination="http://www.gnome.org/learn/"><fo:inline font-style="italic">GNOME FAQ</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [http://www.gnome.org/learn/]</fo:inline>, and
+          GNOME application documentation.  Most GNOME applications
+          have their own manual in addition to context sensitive help.
+        </fo:block>
+          </fo:block>
+          <fo:block id="joining">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Joining the GDP</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+         Documenting GNOME and all the numerous GNOME applications is
+         a very large project.  The GDP is always looking for people
+         to help write, update, and edit documentation.  If you are
+         interested in joining the GDP team, you should join the
+         <fo:basic-link external-destination="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+         <fo:inline font-style="italic">gnome-doc-list mailing list</fo:inline> </fo:basic-link><fo:inline hyphenate="false"> [http://mail.gnome.org/mailman/listinfo/gnome-doc-list/]</fo:inline>.
+         Read <fo:basic-link internal-destination="gettingstarted">the section called “Getting Started Writing GNOME Documentation”</fo:basic-link>, for help selecting a
+         project to work on.  Feel free to introduce yourself on the
+         gnome-doc-list mailing list and indicate which project you
+         intend to work on, or else ask for suggestions of important
+         documents which need work done. You may also want to join the
+         #docs IRC channel on irc.gnome.org to meet other GDP members
+         and discuss any questions you may have.  For a list of GDP
+         projects and members, see the
+         <fo:basic-link external-destination="http://developer.gnome.org/projects/gdp">
+           <fo:inline font-style="italic">GDP Website</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/projects/gdp]</fo:inline>.
+       </fo:block>
+          </fo:block>
+          <fo:block id="collaborating">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Collaborating with the GDP</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        GNOME developers, packagers, and translators may not be
+        writing GNOME documentation but will want to understand how
+        the GNOME documentation system works and will need to
+        collaborate with GDP members.  This document should help to
+        outline the structure of how the GNOME documentation system
+        works.  Developers who do not write the documentation for
+        their applications are encouraged to find a GDP member to
+        write the documentation.  This is best done by sending an
+        email to the <fo:basic-link external-destination="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+        <fo:inline font-style="italic">gnome-doc-list mailing list</fo:inline> </fo:basic-link><fo:inline hyphenate="false"> [http://mail.gnome.org/mailman/listinfo/gnome-doc-list/]</fo:inline>
+        describing the application, where it can be downloaded from,
+        and that the developer(s) would like a GDP member to write
+        documentation for the application. The #docs IRC channel on
+        irc.gnome.org is another option for contacting GDP members.
+       </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="notation">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Notation and Conventions</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        This Handbook uses the following notation:
+        <fo:table><fo:table-column column-number="1"/><fo:table-column column-number="2"/><fo:table-body><fo:table-row><fo:table-cell><fo:block><fo:inline font-family="Courier">/usr/bin</fo:inline></fo:block></fo:table-cell><fo:table-cell><fo:block>
+                  Directory
+                </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block><fo:inline font-family="Courier">foo.sgml</fo:inline></fo:block></fo:table-cell><fo:table-cell><fo:block>
+                  Filename
+                </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block><fo:inline font-weight="bold">command</fo:inline></fo:block></fo:table-cell><fo:table-cell><fo:block>
+                  Command or text that would be typed.
+                </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block><fo:inline font-weight="bold"><fo:inline font-style="italic" font-family="Courier">replaceable</fo:inline></fo:inline></fo:block></fo:table-cell><fo:table-cell><fo:block>
+                  "Variable" text that can be replaced.
+                </fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block><fo:inline font-family="Courier">Program or Doc Code</fo:inline></fo:block></fo:table-cell><fo:table-cell><fo:block>Program or document code</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table>
+      </fo:block>
+        </fo:block>
+        <fo:block id="about">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">About This Handbook</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+       This Handbook is a guide for both writing documentation for
+       GNOME components and applications and for properly binding and
+       packaging documentation into GNOME applications.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+       This Handbook, like all GNOME documentation, was written in
+       DocBook(SGML) and is available in several formats including
+       SGML, HTML, PostScript, and PDF.  For the latest version, see
+       <fo:basic-link external-destination="http://developer.gnome.org/projects/gdp/handbook.html"> 
+       <fo:inline font-style="italic">Getting The GNOME Handbook of Writing Software
+       Documentation</fo:inline> </fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/projects/gdp/handbook.html]</fo:inline>.  Alternately, one may
+       download it anonymously from GNOME CVS under <fo:inline font-family="Courier">gnome-docu/gdp</fo:inline>.
+      </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="gettingstarted">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Getting Started Writing GNOME Documentation</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="selecting">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Selecting A Document</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="know">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Document Something You Know</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          The most frequently asked question of new contributors who
+          join the GDP is "which document should I start
+          with?". Because most people involved are volunteers, we do
+          not <fo:inline font-style="italic">assign</fo:inline> projects and applications to
+          write documents for. The first step is all yours - you must
+          decide what about GNOME interests you most and find out if
+          it has complete documents or not.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          It is also important to spend some time with GNOME to make
+          sure you are familiar enough with it to be
+          <fo:inline font-style="italic">authoritative</fo:inline>  in your writing. The
+          best way to do this is to just sit down and play with GNOME
+          as much as possible before starting to write.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          The easiest way to get started is to improve existing
+          documentation. If you notice some inaccuracies or omissions
+          in the documentation, or you think that you can explain the
+          material more clearly, just send your suggestions to the
+          author of the original documentation or to the GNOME
+          documentation project at <fo:inline font-family="Courier">&lt;docs at gnome.org&gt;</fo:inline>.
+        </fo:block>
+          </fo:block>
+          <fo:block id="doctable">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">The GNOME Documentation Status Table</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          The <fo:inline font-style="italic">GDP Documentation Status Table</fo:inline>
+          (<fo:inline font-style="italic">DocTable</fo:inline>) (<fo:basic-link external-destination="http://www.gnome.org/gdp/doctable/">http://www.gnome.org/gdp/doctable/</fo:basic-link><fo:inline hyphenate="false"> [http://www.gnome.org/gdp/doctable/]</fo:inline>) is a
+          web page which tracks the status of all the various
+          documentation components of GNOME.  These components include
+          application documentation, internal GNOME component
+          documentation, user documentation, and developer
+          documentation.  For each documentation item, it tracks the
+          current status of the documentation, who is working on the
+          particular document, where the documentation can be found,
+          and provides a forum for the discussion of each item.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          You should use the <fo:inline font-style="italic">DocTable</fo:inline> to help
+          you select a documentation item which needs work done.  Once
+          you have selected an item to work on, please register
+          yourself as an author so that other authors do not duplicate
+          your work and may contact you to help or offer suggestions.
+          Also be sure to keep the status icons up-to-date  so that
+          the GDP team can easily identify which items need additional
+          help.  The <fo:inline font-style="italic">DocTable</fo:inline> also allows
+          people to make announcements and suggestions and to discuss
+          issues in the comments section.
+        </fo:block>
+            <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2979832">
+              <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Note that the information in the
+          <fo:inline font-style="italic">DocTable</fo:inline> may not always be up-to-date
+          or accurate.  When you assign yourself to documenting an
+          application, make sure you find out the latest status of
+          documentation by contacting the application author.  
+         </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="docbook">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Installing and Using DocBook</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        All documentation for the GNOME project is written in SGML
+        using the DocBook DTD. There are many advantages to using
+        this for documentation, not least of which is the single
+        source nature of SGML. To contribute to the GDP you should
+        learn to use DocBook.
+      </fo:block>
+          <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2979895">
+            <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">NOTE</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          To get started writing for the GDP you do not need to rush
+          out and learn DocBook - if you feel it is too much to handle
+          for now, you can submit plain ASCII text to the <fo:basic-link external-destination="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+          <fo:inline font-style="italic">gnome-doc-list mailing list</fo:inline>
+          </fo:basic-link><fo:inline hyphenate="false"> [http://mail.gnome.org/mailman/listinfo/gnome-doc-list/]</fo:inline>and a volunteer will mark it up for you. Seeing your
+          document marked up will also be a great way for you to start
+          learning DocBook.
+        </fo:block>
+          </fo:block>
+          <fo:block id="installingdocbook">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Installing DocBook</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Download and install the following <fo:basic-link external-destination="ftp://sourceware.cygnus.com:/pub/docbook-tools/">DocBook Tools packages</fo:basic-link><fo:inline hyphenate="false"> [ftp://sourceware.cygnus.com:/pub/docbook-tools/]</fo:inline>: jade, docbook,
+          jadetex, sgml-common, and stylesheets. (RPM users should note
+          that jade is platform dependent (eg. i386), while the other packages
+          are in the <fo:inline font-family="Courier">noarch</fo:inline>
+          directory.) You can find more 
+          information on DocBook Tools <fo:basic-link external-destination="           http://sourceware.cygnus.com/docbook-tools/">here</fo:basic-link><fo:inline hyphenate="false"> [           http://sourceware.cygnus.com/docbook-tools/]</fo:inline>.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          If you are an Emacs user you may
+          want to grab the psgml package as well. This is a major mode
+          for editing sgml files in Emacs.
+        </fo:block>
+          </fo:block>
+          <fo:block id="gdpstylesheets">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">GDP Stylesheets</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          The GDP uses its own DocBook stylesheets.  To use the GDP
+          stylesheets, you should download the file
+          <fo:inline font-family="Courier">gdp-both.dsl</fo:inline> from the <fo:inline font-family="Courier">gnome-docu/gdp/dsssl</fo:inline> module in
+          CVS (or from <fo:basic-link external-destination="http://developer.gnome.org/projects/gdp/stylesheets.html">
+          GDP Custom DSSSL Stylesheet</fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/projects/gdp/stylesheets.html]</fo:inline>)and copy it
+
+          over the file
+          <fo:inline font-family="Courier">/usr/lib/sgml/stylesheets/cygnus-both.dsl</fo:inline>.
+          Alternately, you can download and install the
+          <fo:basic-link external-destination="http://people.redhat.com/dcm/software.html">gnome-doc-tools package</fo:basic-link><fo:inline hyphenate="false"> [http://people.redhat.com/dcm/software.html]</fo:inline> which will set
+          up the stylesheets as well as the DTD discussed below.
+        </fo:block>
+          </fo:block>
+          <fo:block id="gdpdtd">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">GDP DTD (PNG Image Support)</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Due to some license issues involved with the creation of
+          gifs, the GNOME Documentation Project has decided to use the
+          PNG image format for all images in GNOME documentation. You
+          can read more about the issues involved with gifs at <fo:basic-link external-destination="http://www.gnu.org/philosophy/gif.html">http://www.gnu.org/philosophy/gif.html</fo:basic-link><fo:inline hyphenate="false"> [http://www.gnu.org/philosophy/gif.html]</fo:inline>.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          The current DocBook DTD(3.1) does not include support for
+          embedding PNG images in your documents.  Since the GDP uses
+          many screenshots in its documentation, we use our own
+          variation on the DocBook DTD which has PNG image support.
+          We encourage everybody to use this DTD instead of the
+          default DocBook DTD since your source document header and
+          your output document appearance subtly vary between the two
+          DTD's.  To install the GDP custom DTD with PNG image support
+          by hand:
+        </fo:block>
+            <fo:list-block id="id2980206" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2980213" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              Download <fo:basic-link external-destination="http://www.labs.redhat.com/png/png-support.html">the
+              GDP DocBook DTD for PNG support</fo:basic-link><fo:inline hyphenate="false"> [http://www.labs.redhat.com/png/png-support.html]</fo:inline> and install it
+              where you keep your DTD's. (On Red Hat use <fo:inline font-family="Courier">/usr/lib/sgml/</fo:inline>.) Note that
+              the 3.0 DTD is missing support for the
+              <fo:inline font-family="Courier">&lt;legalnotice&gt;</fo:inline> tag, so it is
+              recommended that you use version 3.1
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2980259" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              Add the new DTD to your SGML CATALOG file.  The location
+              of your SGML CATALOG file may vary depending upon your
+              distribution. (On Red Hat it is usually in
+              /usr/lib/sgml/CATALOG.) Add the following line to this
+              file:
+              <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.0//EN" "png-support-3.0.dtd"
+              </fo:block> 
+              If you are using the 3.1 DTD, use:
+              <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN" "png-support-3.1.dtd"
+              </fo:block> 
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Alternately, you can download and install the
+          <fo:basic-link external-destination="http://people.redhat.com/dcm/software.html">gnome-doc-tools package</fo:basic-link><fo:inline hyphenate="false"> [http://people.redhat.com/dcm/software.html]</fo:inline> which will set
+          up the custom stylesheets and DTD for you.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          To include PNG files in your documents, you will need to
+          indicate that you are using this special DTD.  To do
+          this, use the following headers:
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Articles:
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]&gt;
+          </fo:block>
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Books:
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+&lt;!DOCTYPE Book PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]&gt;
+          </fo:block>
+        </fo:block>
+          </fo:block>
+          <fo:block id="editors">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Editors</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          There are many editors on Linux and UNIX systems available
+          to you. Which editor you use to work on the sgml documents
+          is completely up to you, as long as the editor is able to
+          preserve sgml and produce the source in a format that is
+          readable by everyone.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Probably the two most popular editors available are
+          Emacs and
+          vi. These and other editors are
+          used regularly by members of the GDP. Emacs has a major
+          mode, psgml, for editing sgml files which can save you time
+          and effort in adding and closing tags. You will find the
+          psgml package in DocBook Tools, which is the standard set of
+          tools for the GDP. You may find out more about DocBook Tools
+          in <fo:basic-link internal-destination="installingdocbook">the section called “Installing DocBook”</fo:basic-link>.
+        </fo:block>
+          </fo:block>
+          <fo:block id="make-output">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Creating Something Useful with your Docs</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          The tools available in DocBook Tools allow you to convert
+          your sgml document to many different formats including html
+          and Postscript. The primary tool used to do the conversion
+          is an application called Jade. In
+          most cases you will not have to work directly with
+          Jade; Instead,  you will use the
+          scripts provided by DocBook Tools.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          To preview your DocBook document, it is easiest to convert
+          it to <fo:inline font-family="Courier">html</fo:inline>. If you have installed the
+          DocBook tools described above, all you have to do is to run
+          the command <fo:inline font-family="Courier">$</fo:inline><fo:inline font-weight="bold">db2html
+          mydocument.sgml</fo:inline>. If there are no sgml syntax
+          errors, this will create a directory <fo:inline font-family="Courier">mydocument</fo:inline> and place the
+          resulting html files in it. The title page of the document
+          will typically be
+          <fo:inline font-family="Courier">mydocument/index.html</fo:inline>.  If you have
+          screenshots in your document, you will have to copy these
+          files into the <fo:inline font-family="Courier">mydocument</fo:inline> directory by
+          hand. You can use any web browser to view your document.
+          Note that every time you run <fo:inline font-weight="bold">db2html</fo:inline>, it
+          creates the <fo:inline font-family="Courier">mydocument</fo:inline> directory over, so
+          you will have to copy the screenshots over each time.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          You can also convert your document to PostScript by running
+          the command <fo:inline font-family="Courier">$</fo:inline><fo:inline font-weight="bold">db2ps
+          mydocument.sgml</fo:inline>, after which you can print out or
+          view the resulting .ps file.  
+        </fo:block>
+            <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2980630">
+              <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">NOTE</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            The html files you get will not look quite the same as the
+            documentation distributed with GNOME unless you have the
+            custom stylesheets installed on your machine. DocBook
+            Tools' default stylesheets will produce a different look
+            to your docs. You can read more about the GDP stylesheets
+            in <fo:basic-link internal-destination="gdpstylesheets">the section called “GDP Stylesheets”</fo:basic-link>.
+          </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="jadeimages">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Images in DocBook Tools</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          If your document uses images you will need to take note of a
+          few things that should take place in order for you to make
+          use of those images in your output.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          The DocBook Tools scripts and applications are smart enough
+          to know that when you are creating html you will be using
+          PNG files and when you are creating Postscript you will be
+          using EPS files (you must use EPS with Postscript).
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Thus, you should never explicitly
+          include the extension of the image file, since DocBook
+          Tools will automatically insert it for you. For example:
+        </fo:block>
+            <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;figure&gt;
+ &lt;title&gt;My Image&lt;/title&gt;
+ &lt;screenshot&gt;
+  &lt;screeninfo&gt;Sample GNOME Display&lt;/screeninfo&gt;
+  &lt;graphic  format="png" fileref="myfile" srccredit="me"&gt;
+  &lt;/graphic&gt;
+ &lt;/screenshot&gt;
+&lt;/figure&gt;
+     </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          You will notice in this example that the file
+          <fo:inline font-family="Courier">myfile.png</fo:inline> was referred to as simply
+          <fo:inline font-family="Courier">myfile</fo:inline>. Now when you run
+          <fo:inline font-weight="bold">db2html</fo:inline> to create an html file, it will
+          automatically look for <fo:inline font-family="Courier">myfile.png</fo:inline> in
+          the directory.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          If you want to create PostScript ouput, you will need to create an
+          EPS version of your image file to be displayed in the
+          PostScript file. There is a simple script available which
+          allows you to change a PNG image into an EPS file
+          easily. You can download this file - img2eps - from <fo:basic-link external-destination="http://people.redhat.com/dcm/sgml.html">http://people.redhat.com/dcm/sgml.html</fo:basic-link><fo:inline hyphenate="false"> [http://people.redhat.com/dcm/sgml.html]</fo:inline>
+          (look for the img2eps section).  Note that this script is
+          included in the gnome-doc-tools package, so if you are using
+          this package, you should already have
+          <fo:inline font-weight="bold">img2eps</fo:inline> on you system.
+        </fo:block>
+          </fo:block>
+          <fo:block id="moredocbookinfo">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Learning DocBook</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          There are many resources available to help you learn DocBook.
+          The following resources on the web are useful for learning
+          DocBook:
+        </fo:block>
+            <fo:list-block id="id2980841" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2980848" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:basic-link external-destination="http://www.docbook.org">http://www.docbook.org</fo:basic-link><fo:inline hyphenate="false"> [http://www.docbook.org]</fo:inline>  - Norman
+              Walsh's <fo:inline font-style="italic">DocBook: The Definitive
+              Guide</fo:inline>.  Online O'Reilly book on using
+              DocBook. Contains an excellent element reference. May be
+              too formal for a beginner.
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2980882" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:basic-link external-destination="http://www.oswg.org/oswg-nightly/oswg/en_US.ISO_8859-1/articles/DocBook-Intro/docbook-intro/index.html">A Practical Introduction to DocBook</fo:basic-link><fo:inline hyphenate="false"> [http://www.oswg.org/oswg-nightly/oswg/en_US.ISO_8859-1/articles/DocBook-Intro/docbook-intro/index.html]</fo:inline>
+              - The Open Source Writers Group's introduction to using
+              DocBook. This is an excellent HOW-TO type article on
+              getting started.
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2980911" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:basic-link external-destination="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html">Getting Going with DocBook: Notes for
+              Hackers</fo:basic-link><fo:inline hyphenate="false"> [http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html]</fo:inline> - Mark Galassi's introduction to DocBook
+              for hackers. This has to be one of the first
+              introductions to DocBook ever - still as good as it ever
+              was.
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2980940" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:basic-link external-destination="http://www.freebsd.org/tutorials/docproj-primer/">
+              FreeBSD Documentation Project Primer for New
+              Contributors</fo:basic-link><fo:inline hyphenate="false"> [http://www.freebsd.org/tutorials/docproj-primer/]</fo:inline> - FreeBSD documentation project
+              primer. Chapter 4.2 provides a very good introduction to
+              writing documentation using DocBook. Note that it also
+              describes some custom extensions of DocBook;
+              fortunately, they are clearly marked as such.
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Norman Walsh's book is also available in print.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          The following sections of this document are designed to help
+          documentation authors write correct and consistent DocBook:
+        </fo:block>
+            <fo:list-block id="id2980987" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2980994" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:basic-link internal-destination="docbookbasics">the section called “DocBook Basics ”</fo:basic-link> - Descriptions of
+              commonly used DocBook tags.
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          You may also discuss specific DocBook questions with GDP
+          members on the #docs IRC channel at irc.gnome.org and on the
+          gnome-doc-list mailing list.
+        </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="gdptemplates">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">GDP Document Templates</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Templates for various types of GNOME documents are found in
+        <fo:basic-link internal-destination="templates">Appendix A. Document Templates</fo:basic-link>.  They are kept in CVS in
+        gnome-docu/gdp/templates. The easiest source to get them from
+        is probably the <fo:basic-link external-destination="http://developer.gnome.org/projects/gdp/templates.html">GDP
+        Document Templates</fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/projects/gdp/templates.html]</fo:inline> web page, which is typically kept
+        completely up-to-date with CVS and has a basic description of
+        each file from CVS.
+      </fo:block>
+        </fo:block>
+        <fo:block id="screenshots">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Screenshots</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Most GNOME documents will have screenshots of the particular
+        applet, application, GNOME component, or widget being
+        discussed.  As discussed above in <fo:basic-link internal-destination="gdpdtd">the section called “GDP DTD (PNG Image Support)”</fo:basic-link> you
+        will need to install the special GDP DocBook DTD which
+        supports PNG images, the format used for all images in GNOME
+        documentation. For the basic DocBook structure used to insert
+        images in a document, see <fo:basic-link internal-destination="jadeimages">the section called “Images in DocBook Tools”</fo:basic-link> above.
+      </fo:block>
+          <fo:block id="screenshotappearance">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Screenshot Appearance</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          For all screenshots of windows that typically have border
+          decorations (e.g. applications and dialogs, but not applets
+          in a panel), GDP standards dictate
+          the appearance of the window.  (This is to minimize possible
+          confusion to the reader, improve the appearance of GNOME
+          documents, and guarantee the screenshot is readable when
+          printed.) All screenshots should be taken with the SawFish
+          (formerly known as Sawmill) window manager using the
+          MicroGui theme and Helvetica 12pt font. (A different window
+          manager can be used provided the MicroGui theme is available
+          for this window manager and the appearance is identical to
+          that when using the SawFish window manager.) The default
+          GTK+ theme(gtk) and font (Helvetica 12 pt) should be used
+          for all screenshots.  If you are unable to provide
+          screenshots in this form, you should create screenshots as
+          you wish them to appear and send them to the
+          <fo:basic-link external-destination="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+          <fo:inline font-style="italic">gnome-doc-list mailing list</fo:inline> </fo:basic-link><fo:inline hyphenate="false"> [http://mail.gnome.org/mailman/listinfo/gnome-doc-list/]</fo:inline>
+          requesting a GDP member reproduce these screenshots in the
+          correct format and email them to you.
+        </fo:block>
+          </fo:block>
+          <fo:block id="screenshottools">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Screenshot Tools</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          There are many tools for taking screenshots in
+          GNOME/Linux. Perhaps the most convenient is the
+          Screen-Shooter Applet. Just click
+          on the window icon in the applet and then on the window you
+          would like to take a screenshot of. (Note that
+          at the time of this writing, PNG images taken by
+          screenshooter do not appear properly in
+          Netscape or the
+          GNOME Help Browser.  You
+          should save your screenshot as a GIF and
+          then use <fo:inline font-weight="bold">convert filename.gif
+          filename.png</fo:inline>.) For applets
+          in a Panel,
+          xv can be used to crop the
+          screenshot to only include the relevant portion of the
+          Panel. Note that
+          xv and 
+          gimp can both be used for taking
+          screenshots, cropping screenshots, and converting image
+          formats. 
+        </fo:block>
+          </fo:block>
+          <fo:block id="screenshotfiles">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Screenshot Files</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Screenshots should be kept in the main documentation
+          directory with your SGML file for applets, or should be
+          kept in a directory called "figs" for application and other
+          documentation.  After you use <fo:inline font-weight="bold">db2html</fo:inline> to
+          convert your SGML file to HTML (see <fo:basic-link internal-destination="make-output">the section called “Creating Something Useful with your Docs”</fo:basic-link>), you will need to copy your
+          screenshots (either the individual PNG files for applet
+          documentation, or the whole "figs" directory for other
+          documentation) into the newly created HTML directory.  Note
+          that every time you use <fo:inline font-weight="bold">db2html</fo:inline> the HTML
+          directory is erased and rewritten, so do not store your only
+          copy of the screenshots in that directory.  If you wish to
+          create PostScript or PDF output, you will need to manually
+          convert the PNG images to EPS as described in <fo:basic-link internal-destination="jadeimages">the section called “Images in DocBook Tools”</fo:basic-link>, but will not need to copy these
+          images from their default location, as they are included
+          directly into the output(PostScript of PDF) file.
+        </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="applicationbugs">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Application Bugs</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Documentation authors tend to investigate and test applets and
+        applications more thoroughly than most 
+        users.  Often documentation authors will discover one or
+        more bugs in the software.  These bugs vary from small ones,
+        such as mis-spelled words or missing
+        About dialogs in the menu, to large
+        ones which cause the applet to crash.  As all users, you
+        should be sure to report these bugs so that application
+        developers know of them and can fix them.  The easiest way to
+        submit a bug report is by using the Bug
+        Buddy applet which is part of the gnome-applets
+        package.  
+      </fo:block>
+        </fo:block>
+        <fo:block id="cvs">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Using CVS</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        CVS (Concurrent Versions System) is a tool that allows
+        multiple developers to concurrently work on a set of
+        documents, keeping track of the modifications made by each
+        person.  The files are stored on a server and each developer
+        checks files out, modifies them, and then checks in their
+        modified version of the files.  Many GNOME programs and
+        documents are stored in CVS.  The GNOME CVS server allows
+        users to anonymously check out CVS files. Most GDP members
+        will need to use anonymous CVS to download the most up-to-date
+        version of documentation or programs.  Modified documents will
+        typically be emailed to the the application developer. Core
+        GDP members may also be granted login CVS privileges so they
+        may commit modified files directly to CVS.
+      </fo:block>
+          <fo:block id="anonymouscvs">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Anonymous CVS</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          To anonymously check out documents from CVS, you must first
+          log in.  From the bash shell, you should set your CVSROOT
+          shell variable with <fo:inline font-weight="bold">  export
+          CVSROOT=':pserver:anonymous at anoncvs.gnome.org:/cvs/gnome'</fo:inline>
+          and then login with <fo:inline font-weight="bold">cvs login</fo:inline>(there is no
+          password, just hit return). As an example, we will use the
+          "gnome-docu/gdp" module which contains this and several
+          other documents. To check these documents out for the first
+          time, type <fo:inline font-weight="bold">cvs -z3 checkout
+          gnome-docu/gdp</fo:inline>. After you have this document
+          checked out and you would like to download any updates on
+          the CVS server, use <fo:inline font-weight="bold">cvs -z3 update -Pd</fo:inline>.
+        </fo:block>
+          </fo:block>
+          <fo:block id="logincvs">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Login CVS</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  If you have been given a
+        login for the GNOME CVS server,  you may commit your file
+        modifications to CVS.  Be sure to read the following section
+        on CVS etiquette before making any commits to CVS.  To log in
+        to the CVS server as user
+        <fo:inline font-weight="bold"><fo:inline font-style="italic" font-family="Courier">username</fo:inline></fo:inline> with a
+        password, you must first set your CVSROOT shell variable with
+        <fo:inline font-weight="bold"> export
+        CVSROOT=':pserver:<fo:inline font-style="italic" font-family="Courier">username</fo:inline>@cvs.gnome.org:/cvs/gnome'</fo:inline>.
+        Log in with <fo:inline font-weight="bold">cvs login</fo:inline> and enter your
+        password. You may check out and update modules as described
+        above for anonymous CVS access.  As a login CVS user, you may
+        also check modified versions of a file into the CVS server.
+        To check
+        <fo:inline font-weight="bold"><fo:inline font-style="italic" font-family="Courier">filename</fo:inline></fo:inline> into
+        the CVS server, type <fo:inline font-weight="bold">cvs -z3 commit
+        <fo:inline font-style="italic" font-family="Courier">filename</fo:inline></fo:inline>. You will be
+        given a vi editor window to type in a brief log entry,
+        summarizing your changes.  The default editor can be changed
+        using the <fo:inline font-family="Courier">EDITOR</fo:inline> environment variable or
+        with the <fo:inline font-weight="bold"><fo:inline font-family="Courier">-e</fo:inline></fo:inline> option. You
+        may also check in any modifications to files in the working
+        directory and subdirectories using <fo:inline font-weight="bold">cvs -z3
+        commit</fo:inline>.  To
+        add a new file to the CVS server, use <fo:inline font-weight="bold">cvs -z3 add
+        <fo:inline font-style="italic" font-family="Courier">filename</fo:inline></fo:inline>, followed by the
+        commit command.
+        </fo:block>
+          </fo:block>
+          <fo:block id="cvsetiquette">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">CVS Etiquette</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Because files in CVS are typically used and modified by
+          multiple developers and documentation authors, users should
+          exercise a few simple practices out of courtesy towards the
+          other CVS users and the project leader.  First, you should
+          not make CVS commits to a package without first discussing
+          your plans with the project leader.  This way, the project
+          leader knows who is modifying the files and generally, what
+          sort of changes/development is being done.  Also, whenever a
+          CVS user commits a file to CVS, they should make an entry in
+          the CVS log and in the <fo:inline font-family="Courier">ChangeLog</fo:inline> so
+          that other users know who is making modifications and what
+          is being modified.  When modifying files created by others,
+          you should follow the indentation scheme used by the initial
+          author.
+        </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="gnomedocsystem">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">The GNOME Documentation System</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="gnomehelpbrowser">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">The GNOME Help Browser</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        At the core of the GNOME help system is the GNOME
+        Help Browser. The Help
+        Browser provides a unified interface to several
+        distinct documentation systems on Linux/Unix systems: man
+        pages, texinfo pages, Linux Documentation Project(LDP)
+        documents, GNOME application documentation, and other GNOME
+        documents.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The GNOME Help Browser works by
+        searching standard directories for documents which are to be
+        presented.  Thus, the documentation that appears in the GHB is
+        specific to each computer and will typically only represent
+        software that is installed on the computer.
+      </fo:block>
+        </fo:block>
+        <fo:block id="gnomehelpbrowser2">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">The GNOME Help Browser (GNOME-2.0)</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> In
+      GNOME 2.0, the GNOME Help Browser
+      will be replaced by Nautilus.
+      Nautilus will be the file manager/graphical shell for GNOME 2.0
+      and will also implement a more sophisticated help system than
+      that used by the GNOME Help Browser
+      used in GNOME 1.0.  It will read and display DocBook files
+      directly, avoiding the need for duplicating documents in both
+      DocBook and HTML formats.  Its display engine for DocBook will
+      be much faster than running jade to
+      convert to HTML for rendering.  Because it uses the original
+      DocBook source for documentation, it will be possible to do more
+      sophisticated searching using the meta information included in
+      the documents.  And since Nautilus is a virtual file system
+      layer which is Internet-capable, it will be able to find and
+      display documents which are on the web as well as those on the
+      local file system. For more information on
+      Nautilus, visit the #nautilus IRC
+      channel on irc.gnome.org.  </fo:block>
+        </fo:block>
+        <fo:block id="gnomehelponthefly">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Dynamic Document Synthesis(GNOME-2.0)</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        GNOME uses the documentation presented by all the various
+        GNOME components and applications installed on the system to
+        present a complete and customized documentation environment
+        describing only components which are currently installed on a
+        users system.  Some of this documentation, such as the manuals
+        for applets, will be combined in such a way that it appears to
+        be a single document.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        By using such a system, you can be sure that any GNOME app you
+        install that has documentation will show up in the index,
+        table of contents, any search you do in the help browser.
+      </fo:block>
+        </fo:block>
+        <fo:block id="gnomehelpcomponents">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">The GNOME Documentation Components</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="applicationmanualsintro">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Application Manuals</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Every GNOME application should have an application manual.
+          An application manual is a document specific to the
+          particular application which explains the various windows
+          and features of the application.  Application Manuals
+          typically use screenshots (PNG format) for clarity.  Writing
+          application manuals is discussed in more detail in <fo:basic-link internal-destination="writingapplicationmanuals">the section called “Writing Application and Applet Manuals”</fo:basic-link> below.
+        </fo:block>
+          </fo:block>
+          <fo:block id="applicationhelpintro">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Application Help</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Applications should have a Help
+          button on screens on which users may need help.  These
+          Help buttons should pull up the
+          default help browser, determined by the
+          <fo:inline font-family="Courier">ghelp</fo:inline> URL Handler (configured using the
+          Control Center), typically the
+          GNOME Help Browser.  The help
+          browser should show either the first page of the application
+          manual, or else the relevant page thereof. Application help
+          is described in more detail in <fo:basic-link internal-destination="applicationhelpbuttons">the section called “Application Help Buttons”</fo:basic-link> below.
+        </fo:block>
+          </fo:block>
+          <fo:block id="contextsensitivehelpintro">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Application Context Sensitive Help (coming in
+        GNOME-2.0)</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Context sensitive help is a system which will allow the user
+          to query any part (button, widget, etc.) of an application
+          window.  This is done by either entering a CS Help mode by
+          clicking on an icon or by right clicking on the application
+          part and selecting "What's This" or whatever is decided on
+          at the time.  Context sensitive help is described in more
+          detail in <fo:basic-link internal-destination="writingcontextsensitivehelp">the section called “Writing Context Sensitive Help (coming in GNOME-2.0)”</fo:basic-link>
+          below.
+        </fo:block>
+          </fo:block>
+          <fo:block id="userguide">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">The GNOME User Guide</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          The <fo:inline font-style="italic">GNOME User Guide</fo:inline> describes the
+          GNOME desktop environment and core components of GNOME such
+          as the panel and
+          control center. In GNOME 1.x this
+          was the main and only source of documentation. In GNOME 2.0
+          this will become a document for the web and for printing
+          that is derived from various parts chosen in the system that
+          are necessary for the new user to understand.
+        </fo:block>
+          </fo:block>
+          <fo:block id="userdocs">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">User Documents</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Aside from the <fo:inline font-style="italic">GNOME User Guide</fo:inline>,
+          there are several other documents to help GNOME users learn
+          GNOME, including the <fo:inline font-style="italic">GNOME FAQ</fo:inline>,
+          <fo:inline font-style="italic">GNOME Installation and Configuration
+          Guide</fo:inline>, and the <fo:inline font-style="italic">GNOME Administrators
+          Guide</fo:inline>.
+        </fo:block>
+          </fo:block>
+          <fo:block id="developerdocs">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Developer Documents</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          There are many White Papers, Tutorials, HOWTO's and FAQ's to
+          make programming GNOME and GNOME applications as easy as
+          possible.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          API documentation is also available for the GNOME libraries. This is
+          detailed documentation of the code that is used to build GNOME
+          apps. You can keep up with the GNOME API docs on the <fo:basic-link external-destination="http://developer.gnome.org/doc/API/">GNOME API
+          Reference</fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/doc/API/]</fo:inline> page.
+        </fo:block>
+          </fo:block>
+          <fo:block id="projectdocs">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Project Documents</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Some GNOME projects have documentation to maintain
+          consistency in their product and to help new contributors
+          get up to speed quickly. Among these are the GDP documents,
+          such as the one you are reading now.
+        </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="docbookbasics">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">DocBook Basics </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="introtodocbook">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Introduction to DocBook</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        To understand DocBook, a basic understanding of SGML is
+        helpful. SGML stands for Standard General Markup Language and
+        is one of the first markup languages every created. HTML is
+        actually derived from SGML and XML is a subset of SGML.  SGML
+        uses what is called a Document Type Definition to specify
+        <fo:inline font-style="italic">elements</fo:inline> which are contained between
+        brackets, &lt; and &gt;. Text is marked by both beginning and
+        ending elements, for example in the DocBook DTD, one denotes a
+        title with <fo:inline font-family="Courier">&lt;title&gt;</fo:inline>The
+        Title<fo:inline font-family="Courier">&lt;/title&gt;</fo:inline>.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The DTD (in the case of the GDP, DocBook) defines rules for how the
+        elements can be used. For example, if one element can only be used when
+        embedded within another, this is defined in the DTD.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
+	An SGML file is just a plain ASCII file containing the text
+	with the markup specified above. To convert it  to some easily
+	readable format, you need special tools. The GDP uses <fo:inline font-style="italic">DocBook
+        Tools</fo:inline>, a free package of utilities for working with DocBook
+        which includes <fo:inline font-style="italic">Jade</fo:inline>, which does the SGML/DSSL
+        parsing. You can read more about DocBook Tools in <fo:basic-link internal-destination="installingdocbook">the section called “Installing DocBook”</fo:basic-link>. 
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The final appearance of the output (e.g. PostScript or HTML)
+        is determined by a
+        <fo:inline font-style="italic">stylesheet</fo:inline>. Stylesheets are files,
+        written in a special language (DSSSL -- Document Style
+        Semantics and Specification Language), which  specify the
+        appearance of various DocBook elements, for example,
+        what fonts to use for titles and various inline elements, page
+        numbering style, and much more. DocBook tools come with a
+        collection of stylesheets (Norman Walsh's modular
+        stylesheets); GNOME Document Project uses some customized
+        version of this stylesheets -- see <fo:basic-link internal-destination="gdpstylesheets">the section called “GDP Stylesheets”</fo:basic-link>.   
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The advantage of specifying the <fo:inline font-style="italic">structure</fo:inline>
+        of a document with SGML instead of specifying the
+        <fo:inline font-style="italic">appearance</fo:inline> of the document with a typical
+        word processor, or with html, is that the resulting document
+        can be processed in a variety of ways using the structural
+        information.  Whereas formatting a document for appearance
+        assumes a medium (typically written text on a standard-sized
+        piece of paper), SGML can be processed to produce output for a
+        large variety of media such as text, postscript, HTML,
+        Braille, audio, and potentially many other formats.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Using 'content' as the elements to define the text of a document also
+        allows for search engines to make use of the actual elements to make a
+        "smarter search". For example, if you are searching for all documents
+        written by the author "Susie" your search engine could be made smart
+        enough to only search &lt;author&gt; elements, making for a faster and more
+        accurate search.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Since the overall appearance of the output is determined not by the DTD
+        or the SGML document, but rather by a stylesheet, the appearance of a
+        document can be easily changed just by changing the stylesheet. This
+        allows everyone in the project to create documents that all look the
+        same.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        As stated before, the GDP uses the DocBook DTD.  For a list of
+        introductory and reference resources on DocBook, see <fo:basic-link internal-destination="resources">the section called “Resources”</fo:basic-link>.  The following sections also provide
+        convenient instructions on which markup tags to use in various
+        circumstances.  Be sure to read <fo:basic-link internal-destination="conventions">the section called “GDP Documentation Conventions ”</fo:basic-link>
+        for GDP documentation-specific guidelines.
+      </fo:block>
+        </fo:block>
+        <fo:block id="xml">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">XML and SGML</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> In not so distant future (probably before GNOME 2.0),
+      DocBook itself and GNOME Documentation project will migrate from
+      SGML to XML. This transition should be relatively painless:
+      (almost) all DocBook tags will remain the same. However, XML has
+      stricter syntax rules than SGML; thus, some constructions which
+      are valid in SGML will not be valid in XML. Therefore, to be
+      ready for this transistion, it is <fo:inline font-style="italic">strongly
+      advised</fo:inline> that the documentation writers conform to XML
+      syntax rules. Here are most important differences:
+      </fo:block>
+          <fo:list-block id="id2982897" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item id="id2982900" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>
+                  <fo:inline> <fo:inline font-style="italic">Minimization</fo:inline></fo:inline>
+                </fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block>
+	      It is possible with some implementations of SGML to use
+	      minimizations to close elements in a document by using
+	      &lt;/&gt;, for example:
+	      <fo:inline font-family="Courier"><fo:inline font-family="Courier">&lt;title&gt;</fo:inline>The
+		Title<fo:inline font-family="Courier">&lt;/&gt;</fo:inline></fo:inline>. This is not
+              allowed in XML. You can use <fo:inline font-weight="bold">sgmlnorm</fo:inline> command,
+              included in DocBook Tools package, to expand minimized tags;
+              if you are using Emacs with psgml
+              mode, you can also use menu command
+          Modify-&gt;Normalize.
+         </fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item id="id2983001" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>
+                  <fo:inline> <fo:inline font-style="italic">Self-closing tags</fo:inline></fo:inline>
+                </fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block>
+            Also, in SGML some tags are allowed not to have closing
+            tags.  For example, it is legal for
+            <fo:inline font-family="Courier">&lt;xref&gt;</fo:inline> not to have a closing tag: 
+            <fo:inline font-family="Courier"><fo:inline font-family="Courier">&lt;xref 
+                   linkend="someid"&gt;</fo:inline></fo:inline>. In
+            XML, it is illegal; instead, you should use  
+            <fo:inline font-family="Courier"><fo:inline font-family="Courier">&lt;xref 
+                   linkend="someid"/&gt;</fo:inline></fo:inline> (note the
+            slash!).
+          </fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item id="id2983063" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>
+                  <fo:inline> <fo:inline font-style="italic">Case sensitive tags</fo:inline></fo:inline>
+                </fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block>
+	      In XML, unlike SGML, tags are case-senstive
+	      <fo:inline font-family="Courier">&lt;title&gt;</fo:inline> and
+	      <fo:inline font-family="Courier">&lt;TITLE&gt;</fo:inline> are different tags!
+	      Therefore, please always use lowercase tags (except for
+	      things like <fo:inline font-family="Courier">DOCTYPE, CDATA</fo:inline> and
+	      <fo:inline font-family="Courier">ENTITY</fo:inline>, which are not DocBook tags). 
+	    </fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+          </fo:list-block>
+        </fo:block>
+        <fo:block id="structure">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em"> Structure Elements</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="section">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Sections and paragraphs</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Top-level element of a book body must be
+          <fo:inline font-family="Courier">&lt;chapter&gt;</fo:inline>; it may contain one or more
+          <fo:inline font-family="Courier">&lt;sect1&gt;</fo:inline>, each of them may contain
+          <fo:inline font-family="Courier">&lt;sect2&gt;</fo:inline> and so on up to
+          <fo:inline font-family="Courier">&lt;sect5&gt;</fo:inline>. The top-level element of an
+          article body is always
+          <fo:inline font-family="Courier">&lt;sect1&gt;</fo:inline>. Regardless of which elements
+          you use, give each structural element a unique id, so that
+          you can link to it. For usage example, see the template.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Please try to avoid using deeply nested sections; for
+          most situations, <fo:inline font-family="Courier">&lt;sect1&gt;</fo:inline> and
+          <fo:inline font-family="Courier">&lt;sect2&gt;</fo:inline> should be sufficient. If not,
+          you probably should split your <fo:inline font-family="Courier">&lt;sect1&gt;</fo:inline>
+          into several smaller ones.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Use the tag <fo:inline font-family="Courier">&lt;para&gt;</fo:inline> for
+          paragraphs, even if there is only one paragraph in a
+          section--see template for examples.
+        </fo:block>
+          </fo:block>
+          <fo:block id="notes">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Notes, Warnings, And Tips</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          For notes, tips, warnings, and important information, which
+          should be set apart from the main text (usually as a
+          paragraph with some warning sign on the margin), use tags
+          <fo:inline font-family="Courier">&lt;note&gt;</fo:inline>, <fo:inline font-family="Courier">&lt;tip&gt;</fo:inline>,
+          <fo:inline font-family="Courier">&lt;warning&gt;</fo:inline>,
+          <fo:inline font-family="Courier">&lt;important&gt;</fo:inline> respectively. For example:
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;tip&gt;
+ &lt;title&gt;TIP&lt;/title&gt;
+ &lt;para&gt;
+  To speed up program compilation, use &lt;application&gt;gcc&lt;/application&gt;
+  compiler with Pentium optimization.
+ &lt;/para&gt;
+&lt;/tip&gt; </fo:block>  produces
+        </fo:block>
+            <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="extip">
+              <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">TIP</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            To speed up program compilation, use
+            gcc compiler with Pentium
+            optimization.  </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Note that this should not be inside a
+          <fo:inline font-family="Courier">&lt;para&gt;</fo:inline> but between paragraphs.
+        </fo:block>
+          </fo:block>
+          <fo:block id="figures">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em"> Screenshots and other figures</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          To include screenshots and other figures, use the following
+          tags:
+          
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;figure id="shot1"&gt;
+ &lt;title&gt;Screenshot&lt;/title&gt;
+ &lt;screenshot&gt;
+  &lt;screeninfo&gt;Screenshot of a program&lt;/screeninfo&gt;
+  &lt;graphic format="PNG"  fileref="figures/example_screenshot" srccredit="ME"&gt;
+  &lt;/graphic&gt;
+ &lt;/screenshot&gt;
+&lt;/figure&gt;
+          </fo:block>
+          replacing <fo:inline font-family="Courier">example_screenshot</fo:inline> with the
+          actual file name (without extension). The result will look like this:
+          
+          <fo:block id="shot1" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after.minimum="1em" space-after.optimum="1.5em" space-after.maximum="2em" keep-with-previous.within-column="always"><fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Screenshot</fo:block><fo:block><fo:block><fo:external-graphic src="url(file:figures/example_screenshot)" content-width="auto" content-height="auto" width="auto" height="auto"/></fo:block></fo:block></fo:block>
+        </fo:block>
+            <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2983467">
+              <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">NOTE</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            Notice in this example that the screenshot file name does
+            not include the file type extension -- to find out
+            why, please read <fo:basic-link internal-destination="jadeimages">the section called “Images in DocBook Tools”</fo:basic-link>.
+          </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="listing">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Program listings and terminal session</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          To show a file fragment--for example, program
+          listing--use <fo:inline font-family="Courier">&lt;programlisting&gt;</fo:inline> tag:
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;programlisting&gt;
+[Desktop Entry] 
+Name=Gnumeric spreadsheet
+Exec=gnumeric 
+Icon=gnome-gnumeric.png 
+Terminal=0
+Type=Application
+&lt;/programlisting&gt;
+          </fo:block>
+          which produces
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+[Desktop Entry] 
+Name=Gnumeric spreadsheet 
+Exec=gnumeric
+Icon=gnome-gnumeric.png 
+Terminal=0 
+Type=Application
+          </fo:block>
+          As a matter of fact, all examples in this document were
+          produced using <fo:inline font-family="Courier">&lt;programlisting&gt;</fo:inline>.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          To show a record of terminal session--i.e., sequence of
+          commands entered at the command line--use
+          <fo:inline font-family="Courier">&lt;screen&gt;</fo:inline> tag:
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;screen&gt;
+&lt;prompt&gt;bash$&lt;/prompt&gt;&lt;userinput&gt;make love&lt;/userinput&gt; 
+make: *** No rule to make target `love'. Stop.
+&lt;/screen&gt;
+          </fo:block>
+          which produces
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+<fo:inline font-family="Courier">bash$</fo:inline><fo:inline font-weight="bold" font-family="Courier">make love</fo:inline>  
+make: *** No rule to make target `love'.  Stop.
+          </fo:block>
+          Note the use of tags <fo:inline font-family="Courier">&lt;prompt&gt;</fo:inline> and
+          <fo:inline font-family="Courier">&lt;userinput&gt;</fo:inline> for marking system prompt
+          and commands entered by user.
+          <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2983637"><fo:block font-size="14pt" font-weight="bold" keep-with-next="always">NOTE</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              Note that both <fo:inline font-family="Courier">&lt;programlisting&gt;</fo:inline>
+              and <fo:inline font-family="Courier">&lt;screen&gt;</fo:inline> preserve linebreaks,
+              but interpret SGML tags (unlike LaTeX
+              verbatim environment). Take a look at
+              the source of this document to see how you can have SGML
+              tags literally shown but not interpreted,
+            </fo:block></fo:block>
+        </fo:block>
+          </fo:block>
+          <fo:block id="lists">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em"> Lists</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+	  The most common list types  in DocBook are
+	  <fo:inline font-family="Courier">&lt;itemizedlist&gt;</fo:inline>,
+	  <fo:inline font-family="Courier">&lt;orderedlist&gt;</fo:inline>, and 
+	  <fo:inline font-family="Courier">&lt;variablelist&gt;</fo:inline>.
+	</fo:block>
+            <fo:list-block id="id2983722" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item id="id2983725" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline> <fo:inline font-family="Courier">&lt;itemizedlist&gt;</fo:inline></fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block> 
+		This is the simplest unnumbered list, parallel to
+	    <fo:inline font-family="Courier">&lt;ul&gt;</fo:inline> in HTML. Here is an example: 
+		<fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Show backup files&lt;/guilabel&gt; &amp;mdash; This will
+      show any backup file that might be on your system.
+    &lt;/para&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Show hidden files&lt;/guilabel&gt; &amp;mdash; This will
+      show all "dot files" or files that begin with a dot.  This
+      files typically include configuration files and directories.
+    &lt;/para&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Mix files and directories&lt;/guilabel&gt; &amp;mdash; This
+      option will  display files and directories in the order you
+      sort them instead of 
+      always having directories shown above files.
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+&lt;/itemizedlist&gt; 
+
+		</fo:block>
+		and output:
+                </fo:block>
+                  <fo:list-block id="id2983762" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+                    <fo:list-item id="id2983766" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                      <fo:list-item-label end-indent="label-end()">
+                        <fo:block>•</fo:block>
+                      </fo:list-item-label>
+                      <fo:list-item-body start-indent="body-start()">
+                        <fo:block>
+		      Show backup files --
+		      This will show any backup file that might be on
+		      your system.
+		    </fo:block>
+                      </fo:list-item-body>
+                    </fo:list-item>
+                    <fo:list-item id="id2983811" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                      <fo:list-item-label end-indent="label-end()">
+                        <fo:block>•</fo:block>
+                      </fo:list-item-label>
+                      <fo:list-item-body start-indent="body-start()">
+                        <fo:block>
+		      Show hidden files --
+		      This will show all "dot files" or files that
+		      begin with a dot.  This files typically include
+		      configuration files and directories.
+		    </fo:block>
+                      </fo:list-item-body>
+                    </fo:list-item>
+                    <fo:list-item id="id2983834" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                      <fo:list-item-label end-indent="label-end()">
+                        <fo:block>•</fo:block>
+                      </fo:list-item-label>
+                      <fo:list-item-body start-indent="body-start()">
+                        <fo:block>
+		      Mix files and directories
+		      -- This option will display files and
+		      directories in the order you sort them instead
+		      of always having directories shown above files.
+		    </fo:block>
+                      </fo:list-item-body>
+                    </fo:list-item>
+                  </fo:list-block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Note the use of <fo:inline font-family="Courier">&amp;mdash;</fo:inline>
+              for long dash (see <fo:basic-link internal-destination="specsymb">the section called “ Special symbols ”</fo:basic-link>). Also,
+              please note that the result looks much nicer because the
+              terms being explained (Show backup
+              files, etc.) are set in a different font. In
+              this case, it was achieved by using <fo:basic-link internal-destination="gui"><fo:inline font-family="Courier">&lt;guilabel&gt;</fo:inline></fo:basic-link>
+              tag. In other cases, use appropriate tags such as
+              <fo:basic-link internal-destination="gui"><fo:inline font-family="Courier">&lt;guimenuitem&gt;</fo:inline></fo:basic-link>,
+              <fo:basic-link internal-destination="filenames"><fo:inline font-family="Courier">&lt;command&gt;</fo:inline></fo:basic-link>,
+              or -- if none of
+              this applies -- use
+              <fo:basic-link internal-destination="gui"><fo:inline font-family="Courier">&lt;emphasis&gt;</fo:inline></fo:basic-link>.
+	      </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2983961" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline> <fo:inline font-family="Courier">&lt;orderedlist&gt;</fo:inline></fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+		This list is completely analogous to
+		<fo:inline font-family="Courier">&lt;itemizedlist&gt;</fo:inline> and has the same
+		syntax, but  it produces numbered list. By default,
+		this list uses Arabic numerals for numbering entries;
+		you can override this using <fo:inline font-family="Courier">numeration</fo:inline>,
+		for example <fo:inline font-family="Courier">&lt;orderedlist
+		  numeration="lowerroman"&gt;</fo:inline>. Possible values of
+		these attribute are <fo:inline font-family="Courier">arabic</fo:inline>,
+		<fo:inline font-family="Courier">upperalpha</fo:inline>,
+		<fo:inline font-family="Courier">loweralpha</fo:inline>,
+		<fo:inline font-family="Courier">upperroman</fo:inline>,
+		<fo:inline font-family="Courier">lowerroman</fo:inline>.
+	      </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2984039" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline> <fo:inline font-family="Courier">&lt;variablelist&gt;</fo:inline></fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block> This list is used when each entry is
+	    rather long, so it should be formatted as a block of text
+	    with some subtitle, like a small subsection.  The
+	    <fo:inline font-family="Courier">&lt;variablelist&gt;</fo:inline> is more complicated
+	    than itemizedlists, but for larger blocks of text, or when
+	    you're explaining or defining something, it's best to use
+	    them.  Their greatest advantage is that it's easier for a
+	    computer to search.  The lines you are reading now were
+	    produced by <fo:inline font-family="Courier">&lt;variablelist&gt;</fo:inline>. The
+	    source looked liked this:
+		<fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;variablelist&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt; &lt;sgmltag&gt;&amp;lt;itemizedlist&gt;&lt;/sgmltag&gt;&lt;/term&gt; 
+    &lt;listitem&gt;&lt;para&gt; 
+	This is the simplest unnumbered list, parallel to
+        &lt;sgmltag&gt;&amp;lt;ul&gt;&lt;/sgmltag&gt; in HTML. Here is an example:...
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+    &lt;varlistentry&gt;		 
+	&lt;term&gt; &lt;sgmltag&gt;&amp;lt;orderedlist&gt;&lt;/sgmltag&gt;&lt;/term&gt;
+     &lt;listitem&gt;&lt;para&gt;	
+	This list is completely analogous to
+	&lt;sgmltag&gt;&amp;lt;itemizedlist&gt;&lt;/sgmltag&gt; 
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+    &lt;varlistentry&gt;		 
+	&lt;term&gt; &lt;sgmltag&gt;&amp;lt;variablelist&gt;&lt;/sgmltag&gt;&lt;/term&gt;
+     &lt;listitem&gt;&lt;para&gt;	
+		This list is used when each entry is rather long,...
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+&lt;/variablelist&gt;        
+
+		</fo:block>		
+		</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+	Lists can be nested; in this case, the stylesheets
+	are smart enough to change the numeration (for
+	<fo:inline font-family="Courier">&lt;orderedlist&gt;</fo:inline>) or marks of each entry
+	(in  <fo:inline font-family="Courier">&lt;itemizedlist&gt;</fo:inline>) for sub-lists
+	</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="inline">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Inline Elements</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="gui">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">GUI elements</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:list-block id="id2984177" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2984180" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:inline font-family="Courier">&lt;guibutton&gt;</fo:inline> -- used for
+              buttons, including checkbuttons and radio buttons
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2984198" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:inline font-family="Courier">&lt;guimenu&gt;</fo:inline>, 
+              <fo:inline font-family="Courier">&lt;guisubmenu&gt;</fo:inline> --used for 
+	      top-level menus and submenus
+              respectively, for example <fo:inline font-family="Courier">
+              &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of the
+              &lt;guimenu&gt;Main Menu&lt;/guimenu&gt;</fo:inline>
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2984234" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:inline font-family="Courier">&lt;guimenuitem&gt;</fo:inline>--an entry in a
+              menu
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2984251" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:inline font-family="Courier">&lt;guiicon&gt;</fo:inline>--an icon
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2984267" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:inline font-family="Courier">&lt;guilabel&gt;</fo:inline>--for items which have
+              labels, like tabs, or bounding boxes. 
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2984285" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:inline font-family="Courier">&lt;interface&gt;</fo:inline>-- for most everything
+              else... a window, a dialog box, the Panel, etc.
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          If you need to refer to a sequence of menu choices, such as
+          Main Menu-&gt;Utilities-&gt;GNOME
+            terminal
+          there is a special construction for this, too:
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;menuchoice&gt;
+ &lt;guimenu&gt;Main Menu&lt;/guimenu&gt; &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt;
+ &lt;guimenuitem&gt;GNOME terminal&lt;/guimenuitem&gt; &lt;/menuchoice&gt;
+          </fo:block>
+        </fo:block>
+          </fo:block>
+          <fo:block id="links">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Links and references</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          To refer to another place in the same document, you can use
+          tags <fo:inline font-family="Courier">&lt;xref&gt;</fo:inline> and
+          <fo:inline font-family="Courier">&lt;link&gt;</fo:inline>. The first of them
+          automatically inserts the full name of the element you refer
+          to (section, figure, etc.), while the second just creates a
+          link (in HTML output). Here is an example:
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+An example of a &lt;link linkend="extip"&gt;tip&lt;/link&gt; was given in
+&lt;xref linkend="notes" /&gt;.  
+          </fo:block>
+          which produces: An example of a <fo:basic-link internal-destination="extip">tip</fo:basic-link> was given in  <fo:basic-link internal-destination="notes">the section called “Notes, Warnings, And Tips”</fo:basic-link>.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Here <fo:inline font-family="Courier">notes</fo:inline> and <fo:inline font-family="Courier">extip</fo:inline>
+          are the id attributes of <fo:basic-link internal-destination="notes">the section called “Notes, Warnings, And Tips”</fo:basic-link> and of the
+          example of a tip in it.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  To produce a link  to an external source, such as a
+          Web page or a local file, use <fo:inline font-family="Courier">&lt;ulink&gt;</fo:inline>
+          tag, for example:
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+ To find more about GNOME, please visit &lt;ulink type="http"
+url="http://www.gnome.org"&gt;GNOME Web page&lt;/ulink&gt; 
+          </fo:block>
+          which produces:  To find more about GNOME, please visit
+          <fo:basic-link external-destination="http://www.gnome.org">The GNOME Web
+          Site</fo:basic-link><fo:inline hyphenate="false"> [http://www.gnome.org]</fo:inline> You can use any of the standard URL types, such
+          as <fo:inline font-family="Courier">http, ftp, file, telnet, mailto</fo:inline> (in
+          most cases, however, use of <fo:inline font-family="Courier">mailto</fo:inline> is
+          unnecessary--see discussion of
+          <fo:inline font-family="Courier">&lt;email&gt;</fo:inline> tag).
+        </fo:block>
+          </fo:block>
+          <fo:block id="filenames">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Filenames, commands, and other
+        computer-related things</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Here are some tags used to describe operating system-related
+          things:  
+        </fo:block>
+            <fo:list-block id="id2984574" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2984578" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>  <fo:inline font-family="Courier">&lt;filename&gt;</fo:inline> -- used
+              for filenames,
+              e.g.<fo:inline font-family="Courier">&lt;filename&gt;</fo:inline>
+                    foo.sgml
+                  <fo:inline font-family="Courier">&lt;/filename&gt;</fo:inline> 
+              produces: <fo:inline font-family="Courier">foo.sgml</fo:inline>.
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2984618" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>  <fo:inline font-family="Courier">&lt;filename
+              class="directory"&gt;</fo:inline> -- used for
+              directories, e.g.<fo:inline font-family="Courier">&lt;filename
+              class="directory"&gt;</fo:inline>/usr/bin
+                  <fo:inline font-family="Courier">&lt;/filename&gt;</fo:inline>
+              produces: <fo:inline font-family="Courier">/usr/bin</fo:inline>.
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2984666" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:inline font-family="Courier">&lt;application&gt;</fo:inline> -- used for
+              application names,
+              e.g. <fo:inline font-family="Courier">&lt;application&gt;</fo:inline>Gnumeric
+              <fo:inline font-family="Courier">&lt;/application&gt;</fo:inline> produces:
+              Gnumeric.
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2984707" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+	      <fo:inline font-family="Courier">&lt;envar&gt;</fo:inline> -- used for
+	      environment variables, e.g. 
+              <fo:inline font-family="Courier">&lt;envar&gt;</fo:inline>PATH<fo:inline font-family="Courier">&lt;/envar&gt;</fo:inline>. 
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2984739" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:inline font-family="Courier">&lt;command&gt;</fo:inline> -- used for
+              commands entered on command line, e.g.
+              <fo:inline font-family="Courier">&lt;command&gt;</fo:inline>make install
+              <fo:inline font-family="Courier">&lt;/command&gt;</fo:inline> produces:
+              <fo:inline font-weight="bold">make install</fo:inline>.
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2984780" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+              <fo:inline font-family="Courier">&lt;replaceable&gt;</fo:inline> -- used for
+              replaceable text, e.g.
+              <fo:inline font-family="Courier">&lt;command&gt;</fo:inline>db2html<fo:inline font-family="Courier">&lt;replaceable&gt;</fo:inline>
+              foo.sgml
+              <fo:inline font-family="Courier">&lt;/replaceable&gt;</fo:inline><fo:inline font-family="Courier">&lt;/command&gt;</fo:inline>
+              produces: <fo:inline font-weight="bold">db2html
+              <fo:inline font-style="italic" font-family="Courier">foo.sgml</fo:inline></fo:inline>.
+            </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+          <fo:block id="keys">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Keyboard input</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> To mark up text input by the user, use
+        <fo:inline font-family="Courier">&lt;userinput&gt;</fo:inline>.
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  To mark keystrokes such as shortcuts and other
+          commands, use <fo:inline font-family="Courier">&lt;keycap&gt;</fo:inline>. 
+          This is used for marking up what is printed on the top 
+          of the physical key on the keyboard. There are a couple of
+          other tags for keys, too: <fo:inline font-family="Courier">&lt;keysym&gt;</fo:inline>
+          and <fo:inline font-family="Courier">&lt;keycode&gt;</fo:inline>. However you are
+          unlikely to need these for most documentation. For reference,
+          <fo:inline font-family="Courier">&lt;keysym&gt;</fo:inline> is for the “symbolic
+          name” of a key. <fo:inline font-family="Courier">&lt;keycode&gt;</fo:inline> is
+          for the “scan code” of a key. These are not
+          terms commonly required in GNOME documentation,
+          although <fo:inline font-family="Courier">&lt;keysym&gt;</fo:inline> is useful for marking
+          up control codes.
+       </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          To mark up a combination of keystrokes, use the
+          <fo:inline font-family="Courier">&lt;keycombo&gt;</fo:inline> wrapper:
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;keycombo&gt;
+ &lt;keycap&gt;Ctrl&lt;/keycap&gt;
+ &lt;keycap&gt;Alt&lt;/keycap&gt;
+ &lt;keycap&gt;F1&lt;/keycap&gt;
+&lt;/keycombo&gt;
+          </fo:block>
+        </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Finally, if you want to show a shortcut for some menu
+          command, here are the appropriate tags (rather long):
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;menuchoice&gt;
+ &lt;shortcut&gt;
+  &lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;q&lt;/keycap&gt;&lt;/keycombo&gt;
+ &lt;/shortcut&gt; 
+ &lt;guimenuitem&gt; Quit&lt;/guimenuitem&gt; 
+&lt;/menuchoice&gt;
+          </fo:block>
+          which produces simply
+           Quit (<fo:inline font-weight="bold">Ctrl-q</fo:inline>)
+        </fo:block>
+          </fo:block>
+          <fo:block id="email">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">E-mail addresses</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  To mark up e-mail
+        address, use <fo:inline font-family="Courier">&lt;email&gt;</fo:inline>:
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+ The easiest way to get in touch with me is by e-mail
+(&lt;email&gt;me at mydomain.com&lt;/email&gt;)
+          </fo:block>
+          which produces: The easiest way to get in touch with me is
+          by e-mail  (<fo:inline font-family="Courier">&lt;me at mydomain.com&gt;</fo:inline>) Note that
+          <fo:inline font-family="Courier">&lt;email&gt;</fo:inline> automatically produces a link
+          in html version.
+        </fo:block>
+          </fo:block>
+          <fo:block id="specsymb">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em"> Special symbols </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
+	  DocBook also provides special means for entering
+	typographic symbols which can not be entered directly
+	form the keyboard (such as copyright sign). This is done using
+	<fo:inline font-style="italic">entities</fo:inline>, which is SGML analogue of
+	macros, or commands, of LaTeX. They generally have the form 
+	  <fo:inline font-family="Courier">&amp;entityname;</fo:inline>. Note that the semicolon
+	is required. 
+	</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+	  here is partial list of most commonly used enitites:
+	</fo:block>
+            <fo:list-block id="id2985133" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2985136" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+             <fo:inline font-family="Courier">&amp;amp;</fo:inline> -- ampersend (&amp;)
+	  </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2985150" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+             <fo:inline font-family="Courier">&amp;lt;</fo:inline> -- left angle bracket (&lt;)
+	  </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2985164" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+             <fo:inline font-family="Courier">&amp;copy;</fo:inline> -- copyright sign (©)
+	  </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2985179" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+             <fo:inline font-family="Courier">&amp;mdash;</fo:inline> -- long dash (--)
+	  </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2985192" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>•</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>
+             <fo:inline font-family="Courier">&amp;hellip;</fo:inline> -- ellipsis (...)
+	  </fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+	  Note that the actual look of the resulting symbols depends
+	  on the fonts used by your browser; for example, it might
+	  happen that long dash (<fo:inline font-family="Courier">&amp;mdash;</fo:inline>) looks
+	  exactly like the usual dash (-). However, in the PostScript
+	  (and thus, in print) the output will look markedly better if
+	  you use appropriate tags. 
+	</fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="conventions">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">GDP Documentation Conventions </fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="conventionsalldocs">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Conventions for All GDP Documentation</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="xmlcomp">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em"> XML compatibility </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+	  All GNOME documentation  should conform to XML syntax
+	  requirements, which are stricter than SGML ones -- see
+	  <fo:basic-link internal-destination="xml">the section called “XML and SGML”</fo:basic-link> for more informaion.
+	</fo:block>
+          </fo:block>
+          <fo:block id="authorsnames">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em"> Authors' names</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
+	  All GNOME documentation should contain the names of both the
+	  application authors and documentation authors, as well as a
+	  link to the application web page (if it exists) and
+	  information for bug submission -- see templates for an
+	  example. 
+	  </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="conventionsappdocs">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Conventions for Application Documentation</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="applicationversionid">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Application Version Identification</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          Application documentation should identify the version of the
+          application for which the documentation is written:
+          <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;sect1 id="intro"&gt;
+ &lt;title&gt;Introduction&lt;/title&gt;
+ &lt;para&gt;
+  blah-blah-blah This document describes version 1.0.53 of gfoo.
+ &lt;/para&gt;
+&lt;/sect1&gt;
+          </fo:block>
+        </fo:block>
+          </fo:block>
+          <fo:block id="license">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em"> Copyright information </fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Application
+        documentation should contain a copyright notice, stating the
+        licensing terms. It is suggested that you use the GNU Free
+        Documentation License.  You could also use some other license
+        allowing free redistribution, such as GPL or Open Content
+        license.  If documentation uses some trademarks (such as UNIX,
+        Linux, Windows, etc.), proper legal junk should also be
+        included (see templates).
+	</fo:block>
+          </fo:block>
+          <fo:block id="license2">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Software license</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
+         All GNOME applications must contain information about the
+       license (for software, not for documentation), either in the
+       "About" box or in the manual. 
+       </fo:block>
+          </fo:block>
+          <fo:block id="bugtraq">
+            <fo:block>
+              <fo:block margin-left="-4pc" font-family="Helvetica">
+                <fo:block keep-with-next.within-column="always">
+                  <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em"> Bug reporting</fo:block>
+                </fo:block>
+              </fo:block>
+            </fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
+	  Application documentation should give an address for
+        reporting bugs and for submitting comments about the
+        documentaion (see templates for an example). 
+       </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="writingapplicationmanuals">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Writing Application and Applet Manuals</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+       Every GNOME application or applet should have a manual specific
+      to that particular application. This manual should be a complete
+      and authoritative guide.  The manual should describe what the
+      program does and how to use it.  Manuals will typically describe
+      each window or panel presented to the user using screenshots (in
+      PNG format only) when appropriate.  They should also describe
+      each feature and preference option available.
+    </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2985521">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Documentation Availability</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Applications and applets should not rely on documentation
+        which is only available on the internet.  All manuals and
+        other documentation should be packaged with the application or
+        applet and be made available to the user through the standard
+        GNOME help system methods described below.
+      </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> Application manuals should be based on the template in
+    <fo:basic-link internal-destination="template1">the section called “Template 1: Application Manual”</fo:basic-link>.  Applet manuals should be based on
+    the templates in <fo:basic-link internal-destination="template2-1x">the section called “Template 2: Applet Manual For GNOME 1.x”</fo:basic-link> for GNOME
+    versions 1.x and the templates in <fo:basic-link internal-destination="template2-2x">the section called “Template 2: Applet Manual For GNOME 2.x”</fo:basic-link>
+    for GNOME versions 2.x.
+    </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2985590">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Manuals For Large Applications</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Manuals for very large applications, such as GNOME Workshop
+        components should be a <fo:inline font-family="Courier">&lt;book&gt;</fo:inline> (and thus
+        use <fo:inline font-family="Courier">&lt;chapter&gt;</fo:inline> for each primary section)
+        , instead of <fo:inline font-family="Courier">&lt;article&gt;</fo:inline> which most
+        applications use(with each primary section being a
+        <fo:inline font-family="Courier">&lt;sect1&gt;</fo:inline>).
+      </fo:block>
+        </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2985636">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Applet Manuals in GNOME 2.0</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Note that applet manuals in GNOME 2.0 are treated in a special
+        way.  The manuals for all applets are merged into a single
+        virtual document by Nautilus.  For this reason, the header
+        information for applet manuals is omitted and the  first
+        section of each applet is
+        <fo:inline font-family="Courier">&lt;sect1&gt;</fo:inline>. Applet manuals will typically
+        have several sections, each of which is
+        <fo:inline font-family="Courier">&lt;sect2&gt;</fo:inline>.
+      </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      Application manuals should be made available by having a
+      "Manual" entry in the Help pull-down menu
+      at the top of the 
+      application, as described in <fo:basic-link internal-destination="listingdocsinhelpmenu">the section called “Listing Documents in the Help Menu”</fo:basic-link>.
+      Applets should make their manuals available by
+      right-clicking on the applet. 
+    </fo:block>
+      </fo:block>
+      <fo:block id="listingdocsinhelpmenu">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Listing Documents in the Help Menu</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2985728">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Developer Information</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      Typically the application manual and possibly additional help
+      documents will be made available to the user under the
+      Help menu at the top right of the
+      application. To do this, you must first write a
+      <fo:inline font-family="Courier">topic.dat</fo:inline> file. The format for this file is:
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+One line for each 'topic'.
+
+Two columns, as defined by perl -e 'split(/\s+/,$aline,2)'
+
+First column is the HTML file (and optional section) for the topic,
+relative to the app's help file dir.
+
+Second column is the user-visible topic name.
+      </fo:block>
+      For example, Gnumeric's
+      <fo:inline font-family="Courier">topic.dat</fo:inline> file is:
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+gnumeric.html   Gnumeric manual
+function-reference.html Gnumeric function reference
+      </fo:block>
+      When the application is installed, the
+      <fo:inline font-family="Courier">topic.dat</fo:inline> file should be placed in the
+      <fo:inline font-family="Courier">$prefix/share/gnome/help/<fo:inline font-style="italic" font-family="Courier">appname</fo:inline>/C/</fo:inline> directory
+      where <fo:inline font-style="italic" font-family="Courier">appname</fo:inline> is replaced by the
+      application's name.  The application documentation (converted
+      from SGML into HTML with <fo:inline font-weight="bold">db2html</fo:inline>) should be
+      placed in this directory too.
+    </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2985873">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+       If the help files are not present in the correct directory, the
+       menu items will NOT appear when the program is run. 
+      </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      The <fo:inline font-family="Courier">topic.dat</fo:inline> file is used by the GNOME
+      menu building code to generate the Help
+      menu. When you define your menu:  
+<fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+GnomeUIInfo helpmenu[] = {
+              {GNOME_APP_UI_ITEM, 
+               N_("About"), N_("Info about this program"),
+               about_cb, NULL, NULL, 
+               GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ABOUT,
+               0, 0, NULL},
+               GNOMEUIINFO_SEPARATOR,
+               GNOMEUIINFO_HELP("<fo:inline font-style="italic">appname</fo:inline>"),
+               GNOMEUIINFO_END
+        };
+</fo:block>
+      the line specifying <fo:inline font-family="Courier">GNOMEUIINFO_HELP</fo:inline> causes
+      GNOME to create a menu entry which is tied to the documentation
+      in the directory mentioned above. Also, all the topics in the
+      <fo:inline font-family="Courier">topic.dat</fo:inline> file will get menu entries in the
+      Help menu. When the user selects any of these
+      topics from the Help menu, a help browser
+      will be started with the associated HTML documentation.
+    </fo:block>
+      </fo:block>
+      <fo:block id="applicationhelpbuttons">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Application Help Buttons</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2986001">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Developer Information</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      Most GNOME applications will have Help
+      buttons.  These are most often seen in Preference windows. (All
+      Preference windows should have Help
+      buttons.) Most Help buttons will connect
+      to the application manual, although some may connect to special
+      documents.  Because the Help buttons do
+      not generally have their own special documentation, the
+      documentation author(s) do not need to do very much.  However,
+      the application author must be careful to guarantee that the
+      application correctly opens the help documentation when the
+      Help buttons are pressed.  
+    </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      To make the Help buttons call the correct document in the GNOME Help
+      Browser the developer should add code based on the following example:
+    </fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+gchar *tmp;
+tmp = gnome_help_file_find_file ("module", "page.html");
+if (tmp) {
+  gnome_help_goto(0, tmp);
+  g_free(tmp);
+}
+    </fo:block>
+        <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2986105">
+          <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">NOTE</fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The example above is in the C language, please refer to other
+        documentation or forums for other GNOME language bindings.
+      </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="packagingappletdocs">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Packaging Applet Documentation</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="appletfiles">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Applet Documentation Files</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        In GNOME 2.0 each applet will have its own documentation
+        installed separately, and the GNOME 2.0 help
+        browser (Nautilus) will dynamically
+        merge the applet documents into a single virtual book
+        called <fo:inline font-style="italic">GNOME Applets</fo:inline>. During the
+        transitionary stage between GNOME 1.0 and GNOME 2.0, each
+        applet in the gnome-applets package has its own manual(stored
+        with the applet in CVS), but they are merged together manually
+        to create the <fo:inline font-style="italic">GNOME Applets</fo:inline> book before
+        distribution.  Telsa 
+        <fo:inline font-family="Courier">&lt;hobbit at aloss.ukuu.org.uk&gt;</fo:inline> is the maintainer of
+        this document.  Applet documentation should be sent to Telsa
+        (or placed in CVS) who will make sure they are correctly
+        packaged with the applets.  The applet author should be
+        contacted to modify the menu items and help buttons to bind to
+        the applet documentation if necessary.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Images which are part of the applet documentation should be in
+        PNG format and should reside in the same directory as the SGML
+        document file in CVS(gnome-applets/APPLETNAME/help/C).
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Applets which are not part of the gnome-applets package must
+        package their documentation with the particular applet
+        package. They should use the same applet template as other
+        applets.  However, the <fo:inline font-family="Courier">&lt;xref&gt;</fo:inline> links to
+        the introductory chapter of the <fo:inline font-style="italic">GNOME
+        Applets</fo:inline>  book must be removed (as the 1.x
+        GNOME Help Browser does not allow
+        you to create links between separate documents) and replaced
+        with suitable text.  Note that since this document is not part
+        of the <fo:inline font-style="italic">GNOME Applets</fo:inline> book, you must
+        remember to add <fo:inline font-family="Courier">&lt;legalnotice&gt;</fo:inline> and
+        <fo:inline font-family="Courier">&lt;copyright&gt;</fo:inline> sections.
+      </fo:block>
+        </fo:block>
+        <fo:block id="appletmenu">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Adding Documentation to an Applet Menu</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2986296">
+            <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Developer Information</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          This section is for developers.  Documentation authors
+          generally do not need to know this material.
+        </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Applets should have About and
+        Manual menu items, typically as the first
+        and second top-most items in the menu respectively.  This
+        section describes how the developer creates these menu items
+        and links them to the documentation.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        To add an applet's manual to its applet menu, use:
+<fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+/* add an item to the applet menu */
+applet_widget_register_callback(APPLET_WIDGET(applet), "manual",
+_("Manual"), &amp;open_manual, NULL);
+</fo:block>
+        Here the second argument is an arbitrary name for the
+        callback, the third argument is the label which will appear
+        when the user right clicks on the applet, and the fourth
+        argument is the callback function.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        You will need to write a simple callback function to open the
+        help browser to the appropriate document.  This is done using
+        the <fo:inline font-family="Courier">gnome_help_file_find_file</fo:inline> function,
+        as described in <fo:basic-link internal-destination="applicationhelpbuttons">the section called “Application Help Buttons”</fo:basic-link>.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        You will also want to add an About menu
+        item to the applet's menu.  This is a
+        stock menu item and is done:
+<fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+applet_widget_register_stock_callback (APPLET_WIDGET(applet), "about",
+       GNOME_STOCK_MENU_ABOUT, _("About"), &amp;my_applet_cb_about,
+       NULL);
+</fo:block>
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        More information can be found at <fo:basic-link external-destination="http://developer.gnome.org/doc/tutorials/applet/index.html">Writing
+        GNOME panel applets using the GTK+/GTK-- widget set</fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/doc/tutorials/applet/index.html]</fo:inline>.
+      </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="writingcontextsensitivehelp">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Writing Context Sensitive Help (coming in GNOME-2.0)</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      Context sensitive help, also known as "pop-up" help, will allow
+      a user to obtain help information about specific buttons or
+      parts of an application.
+    </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      Context sensitive help is still under development and not all
+      the details are available at this time. However, the basics can
+      be shown here so that you can understand how the system will
+      work.
+    </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      The Context Sensitive Help system is designed to allow the
+      developer to give an id to a particular portion of the User
+      Interface, for example, a button. Once the interface is complete
+      a Perl script can then be run against the interface code to
+      create a "map" file. This map file allows the developer or
+      writer to associate particular paragraph sections from an XML
+      document to the interface items.
+    </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      The XML used for the document is a small XML DTD that is being
+      developed to use the same tags (albeit, much fewer) as DocBook
+      so that writers do not have to re-learn a new DTD.
+    </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      Once the document is written and map file is complete, when the
+      user launches context sensitive help on the interface (either by
+      pressing a button and then clicking on the interface item they
+      want information on, or by right mouse clicking on the interface
+      item and selecting a pop-up menu item like "What's This") a
+      small transient window will appear with brief but detailed
+      information on the interface item.
+    </fo:block>
+      </fo:block>
+      <fo:block id="referring">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+      In the GNOME 2.0 Help System, you will be able to create links
+      from one document to another.  The exact mechanism for doing
+      this is in development.
+    </fo:block>
+      </fo:block>
+      <fo:block id="basics">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Basics of Documentation Style</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+       Most people have never enjoyed reading a software manual, and
+       they probably never will.  Many times, they'll read the
+       documentation only when they run into problems, and they'll be
+       frustrated and upset before they even read a word.  On the
+       other hand, some readers will read the manual all the way
+       through, or at least look at the introduction before they
+       start. Your document might serve as a reference for an expert
+       or a guide to a beginner, and it must have enough depth to
+       satisfy the first without overwhelming the second.  Ideally, it
+       will serve beginners as they <fo:inline font-style="italic">become</fo:inline>
+       experts. Remember, your goal is to produce <fo:inline font-style="italic">complete,
+       intuitive and clear</fo:inline> documentation.
+    </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+       In order to write useful documentation, you'll have to know who
+       your audience is likely to be.  Then, you can look for the
+       problems they're likely to run into, and solve them.  It will
+       also help if you focus on the tasks users will perform, and
+       group features accordingly, rather than simply describing
+       features at random.  
+    </fo:block>
+        <fo:block id="styleplanning">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Planning</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+         Begin documenting by learning how to use the application and
+         reading over any existing documentation.  Pay attention to
+         places where your document will differ from the template.  It
+         may help to develop a document skeleton: a valid XML or SGML
+         document that has little or no content.  For very large
+         applications, you will need to make significant departures
+         from the templates, since you'll be using the
+         <fo:inline font-family="Courier">&lt;book&gt;</fo:inline> tag instead of
+         <fo:inline font-family="Courier">&lt;chapter&gt;</fo:inline> or
+         <fo:inline font-family="Courier">&lt;article&gt;</fo:inline>.
+      </fo:block>
+        </fo:block>
+        <fo:block id="balance">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Achieving a Balanced Style</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> 
+         Just as you need to juggle expert and novice readers,
+         you'll have to juggle a number of other extremes as you write:
+         <fo:list-block id="id2986718" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em"><fo:list-item id="id2986722" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
+              Documents should be complete, yet concise.  You should
+              describe every feature, but you'll have decide how much
+              detail is really necessary.  It's not, for example,
+              necessary to describe every button and form field in a
+              dialog box, but you should make sure that your readers
+              know how to bring up the dialog and what it does.  If
+              you spend fewer words on the obvious, you can spend more
+              time clarifying the ambiguous labels and explaining
+              items that are more complex.
+            </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2986742" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
+              Be engaging and friendly, yet professional. Games
+              documents may be less formal than productivity
+              application documents (people don't
+              <fo:inline font-style="italic">use</fo:inline> games, they
+              <fo:inline font-style="italic">play</fo:inline> them), but all of them should
+              maintain a standard of style which holds the reader's
+              interest without resorting to jokes and untranslatable
+              allusions or puns.
+           </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2986772" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
+              Examples, tips, notes, and screenshots are useful to
+              break up long stretches of text, but too many can get in
+              the way, and make your documents too choppy to read.
+              It's good to provide a screenshot of any dialog windows
+              a user might run into, but if a dialog box has several
+              tabs, it's not usually necessary to have one for each.
+           </fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2986790" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block>
+              The GDP strives to have all of its documentation conform
+              to certain standards of style and content, but every
+              document (and every writer) is different.  You will need
+              to use your judgement, and write documents to fit with
+              the rest of the project, without compromising the
+              individual needs of your subject, or your own
+              individuality as a writer.
+           </fo:block></fo:list-item-body></fo:list-item></fo:list-block>
+       </fo:block>
+        </fo:block>
+        <fo:block id="stylestructure">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Structure</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+         In general, you won't have to worry too much about structure,
+         because the templates provide you with an excellent example.
+         As a general rule, try to follow that structural example.
+         That means using links, hierarchical nesting, and, if
+         necessary, a glossary or index.  You probably won't need to
+         use every available structural tag, but take advantage of
+         what DocBook provides you.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+         As to linking, there's some disagreement about whether to use
+         <fo:inline font-family="Courier">&lt;xref&gt;</fo:inline> <fo:inline font-family="Courier">&lt;link&gt;</fo:inline>
+         when you make links within your documents.  You'll have to
+         decide, based on the different ways that they are presented
+         in output, which is more appropriate given the context.
+         Regardless of which you use, you should not forget to use
+         them.  Help your readers find information that relevant to
+         the issue at hand.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+         The table of contents will be generated automatically, but
+         you will probably have to develop your own index if you wish
+         to have one.  The Nautilus Help Browser will have new, and
+         currently unknown, indexing capabilities, so index style and
+         structure are still under discussion.  The GNOME User's Guide
+         will contain a glossary in its next versions; unless you're
+         writing a<fo:inline font-family="Courier">&lt;book&gt;</fo:inline>, it will probably be best to
+         contribute to that rather than developing your own.
+      </fo:block>
+        </fo:block>
+        <fo:block id="stylegrammar">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Grammar and Spelling</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Nobody expects you to be perfect; they just expect the
+        documentation for their software to be error-free.  That means
+        that, in the same way that developers look for bugs and accept
+        bug reports, writers must check for errors in their documents.
+        Poor grammar, bad spelling, and gross technical errors in
+        draft documents are fine.  However, if those problems show up
+        in a "real" release, they can count against the credibility of
+        GNOME and Linux.  They'll also make you look bad.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        There is no substitute for a human proofreader; use a
+        spell-check program, then read it over yourself, and then find
+        someone else to help you.  Other GDP members are, of course,
+        willing and able to help you, but non-writers are often at
+        least as helpful.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Proofreading documents is both a also a good way to
+        familiarize yourself with documentation, and it certainly
+        makes you valuable to the GDP. Help other writers proof their
+        documents, and they will help you with yours.
+      </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="teamwork">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Teamwork</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="teamworkgdp">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Working With The GDP Team</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The GDP team is a valuable resource for any documentation
+        author.  GDP members can answer most questions documentation
+        authors have during the course of their work. It is also
+        important to make sure you are not duplicating work of other
+        GDP members by visiting the <fo:inline font-style="italic">GDP Documentation
+        Status Table</fo:inline> (<fo:basic-link external-destination="http://www.gnome.org/gdp/doctable/">http://www.gnome.org/gdp/doctable/</fo:basic-link><fo:inline hyphenate="false"> [http://www.gnome.org/gdp/doctable/]</fo:inline>) and
+        assigning a documentation item to yourself.  This table also
+        provides a forum for making suggestions and announcements for
+        each documentation item.  The best way to get in touch with
+        GDP members is on the #docs IRC channel at irc.gnome.org or
+        else by emailing the <fo:basic-link external-destination="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+        <fo:inline font-style="italic">gnome-doc-list mailing list</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [http://mail.gnome.org/mailman/listinfo/gnome-doc-list/]</fo:inline>.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        After an author has finished a document (or even a draft
+        version of the document), it is a good idea to ask a member of
+        the GDP team to read the document, checking it for grammar,
+        proper DocBook markup, and clarity.  One may typically find
+        another author to do this by either asking on the #docs IRC
+        channel at irc.gnome.org or by emailing the <fo:basic-link external-destination="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+        <fo:inline font-style="italic">gnome-doc-list mailing list</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [http://mail.gnome.org/mailman/listinfo/gnome-doc-list/]</fo:inline>.
+      </fo:block>
+        </fo:block>
+        <fo:block id="teamworkdevelopers">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Working With Developers</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Writing documentation typically involves a certain amount of
+        interaction with the developers of GNOME or the application
+        which is being documented.  Often a document author will need
+        to ask the developer technical questions during the course of
+        writing a document. After the document is finished, it is good
+        idea to ask the developer to read the document to make sure it
+        is technically correct.  The documentation author should also
+        make sure that the application author correctly binds and
+        packages the documentation with the application.
+      </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="finishing">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Finishing A Document</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="editting">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Editing The Document</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        When the document is finished, the document should be edited
+        by another member of the GDP for spelling, clarity, and
+        DocBook markup. It should also be read by an application
+        author to make sure the document is technically accurate.
+      </fo:block>
+        </fo:block>
+        <fo:block id="submitting">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Submitting The Document</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        After the document has been edited and checked for technical
+        accuracy, it is ready to be combined with the application or
+        documentation package.  This is typically done by passing the
+        document to the application or package developer.  In some
+        cases, the documents can be committed directly into CVS,
+        however this should only be done after obtaining permission to
+        make CVS commits from the developer.  Note that in many cases,
+        the application may need to be modified to correctly link to
+        the documentation.  The packaging system (tarballs and binary
+        packages) may also need to be modified to include the
+        documentation in the package.  Generally, this should be done
+        by the developers.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The final step is to email the GNOME Translation Team at
+        <fo:inline font-family="Courier">&lt;gnome-i18n at nuclecu.unam.mx&gt;</fo:inline> to notify them that
+        there is a new document for them to translate.
+      </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="resources">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Resources</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="resourcesweb">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Resources On The Web</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">  The <fo:basic-link external-destination="http://developer.gnome.org/projects/gdp/">GNOME
+      Documentation Project Web page</fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/projects/gdp/]</fo:inline> lists current GDP 
+      projects and members.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The <fo:basic-link external-destination="http://www.gnome.org/gdp/doctable/">GDP Documentation Status Table</fo:basic-link><fo:inline hyphenate="false"> [http://www.gnome.org/gdp/doctable/]</fo:inline> tracks the
+        status of all the various documentation components of GNOME.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Norman Walsh's  <fo:basic-link external-destination="http://www.docbook.org"> <fo:inline font-style="italic">DocBook: The Definitive
+        Guide</fo:inline></fo:basic-link><fo:inline hyphenate="false"> [http://www.docbook.org]</fo:inline> in an excellent book on DocBook,
+        available both online and in print.
+      </fo:block>
+        </fo:block>
+        <fo:block id="resourcesbooks">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Books</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Docbook: The Definitive Guide is available in both printed
+        form and on the web at:
+        <fo:basic-link external-destination="http://www.docbook.org/tdg/index.html">
+        <fo:inline font-style="italic">Docbook: The Definitive Guide</fo:inline>
+        </fo:basic-link><fo:inline hyphenate="false"> [http://www.docbook.org/tdg/index.html]</fo:inline>
+      </fo:block>
+        </fo:block>
+        <fo:block id="mailinglists">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Mailing Lists</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The <fo:inline font-style="italic">gnome-docs-list</fo:inline> mailing list is the
+        main discussion area for all contributors to the GNOME
+        Documentation Project. You can find out how to subscribe to
+        this list on <fo:basic-link external-destination="http://www.gnome.org/resources/mailing-lists.html">GNOME Mailing Lists</fo:basic-link><fo:inline hyphenate="false"> [http://www.gnome.org/resources/mailing-lists.html]</fo:inline>.  This is a rather
+        low-volume list, so you will not be flooded with messages.
+      </fo:block>
+        </fo:block>
+        <fo:block id="irc">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">IRC</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Internet Relay Chat (IRC) is a fast and easy way to get in
+        touch with other GDP members.  There are generally at least a
+        few members here who can answer questions or discuss
+        documentation issues.  The IRC channel is #docs at
+        irc.gnome.org.
+      </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="templates">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Document Templates</fo:block>
+        <fo:block id="template1">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Template 1: Application Manual</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The following template should be used for all application
+        manuals.  You can always get the latest copy of this
+        template from  <fo:basic-link external-destination="http://developer.gnome.org/projects/gdp/templates.html">GDP
+        Documentation Templates</fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/projects/gdp/templates.html]</fo:inline>.
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+        &lt;!-- if not using PNG graphic, replace reference above with
+             .....PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
+         --&gt;
+&lt;!ENTITY version "1.0.53"&gt;
+        &lt;!-- replace version above with actual application version number--&gt;
+	&lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+]&gt;
+
+
+&lt;!-- This is a GNOME documentation template, designed by the GNOME
+  Documentation Project Team. Please use it for writing GNOME
+  documentation, making obvious changes. In particular, all the words
+  written in UPPERCASE (with the exception of GNOME) should be
+  replaced. As for "legalnotice", please leave the reference
+  unchanged.
+
+  Remember that this is a guide, rather than a perfect model to follow
+  slavishly. Make your manual logical and readable.  And don't forget
+  to remove these comments in your final documentation!  ;-)
+  --&gt;
+
+&lt;!-- =============Document Header ============================= --&gt;
+
+&lt;article id="index"&gt; &lt;!-- please do not change the id --&gt;
+
+  &lt;artheader&gt;
+    &lt;title&gt;MY-GNOME-APP&lt;/title&gt;
+    &lt;copyright&gt;
+      &lt;year&gt;2000&lt;/year&gt;
+      &lt;holder&gt;ME-THE-AUTHOR&lt;/holder&gt;
+    &lt;/copyright&gt;
+
+  &lt;!-- translators: uncomment this:
+
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;ME-THE-TRANSLATOR (Latin translation)&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+   --&gt;
+
+  &lt;!-- do not put authorname in the header except in copyright - use
+  section "authors" below --&gt;
+
+    &lt;legalnotice&gt;
+      &lt;para&gt;
+        Permission is granted to copy, distribute and/or modify this
+        document under the terms of the &lt;citetitle&gt;GNU Free
+        Documentation License&lt;/citetitle&gt;, Version 1.1 or any later
+        version published by the Free Software Foundation with no
+        Invariant Sections, no Front-Cover Texts, and no Back-Cover
+        Texts. You may obtain a copy of the &lt;citetitle&gt;GNU Free
+        Documentation License&lt;/citetitle&gt; from the Free Software
+        Foundation by visiting &lt;ulink type="http"
+        url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing
+        to: Free Software Foundation, Inc., 59 Temple Place - Suite
+        330, Boston, MA 02111-1307, USA.
+      &lt;/para&gt;
+      &lt;para&gt;
+        Many of the names used by companies to distinguish their
+        products and services are claimed as trademarks. Where those
+        names appear in any GNOME documentation, and those trademarks
+        are made aware to the members of the GNOME Documentation
+        Project, the names have been printed in caps or initial caps.
+      &lt;/para&gt;
+    &lt;/legalnotice&gt;
+
+  &lt;!-- this is the version of manual, not application --&gt; 
+    &lt;releaseinfo&gt;
+       This is version 1.0 of MY-GNOME-APP manual.
+    &lt;/releaseinfo&gt;
+
+  &lt;/artheader&gt;
+
+ &lt;!-- ============= Document Body ============================= --&gt;
+
+ &lt;!-- ============= Introduction ============================== --&gt;
+  &lt;sect1 id="intro"&gt;
+    &lt;title&gt;Introduction&lt;/title&gt;
+
+    &lt;para&gt;
+     &lt;application&gt;MY-GNOME-APP&lt;/application&gt; is an application which
+     proves mathematical theorems.  It has all the basic features
+     expected from a mathematical theorem prover, as well as a number
+     of advanced ones, such as proof by confusion.  In fact, many of
+     the proofs produced by &lt;application&gt;MY-GNOME-APP&lt;/application&gt;
+     are so complex that they are capable of proving almost anything
+     with a virtually null likelihood of being disproven.  It also has
+     the very popular predecessor of proof by confusion, proof by
+     dialog, first implemented by Plato.
+    &lt;/para&gt;
+    &lt;para&gt;
+      It also allows you to save and print theorem proofs and to add
+      comments to the proofs it produces.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+      To run &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, select
+      &lt;menuchoice&gt;
+	&lt;guisubmenu&gt;SUBMENU&lt;/guisubmenu&gt;
+	&lt;guimenuitem&gt;MY-GNOME-APP&lt;/guimenuitem&gt;
+      &lt;/menuchoice&gt;
+      from the &lt;guimenu&gt;Main Menu&lt;/guimenu&gt;, or type
+      &lt;command&gt;MYGNOMEAPP&lt;/command&gt; on the command line.
+  &lt;/para&gt;
+
+    &lt;para&gt;
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt; is included in the
+      &lt;filename&gt;GNOME-PACKAGE&lt;/filename&gt; package, which is part of the
+      GNOME desktop environment. This document describes version
+      &amp;version; of &lt;application&gt;MY-GNOME-APP&lt;/application&gt;.
+    &lt;/para&gt;
+  &lt;/sect1&gt;
+
+
+ &lt;!-- ================ Usage ================================ --&gt;
+ &lt;!-- This section should describe basic usage of the application. --&gt;
+
+  &lt;sect1 id="usage"&gt;
+    &lt;title&gt;Using MY-GNOME-APP&lt;/title&gt;
+    &lt;para&gt;
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt; can be used to produce a
+      perfect proof of &lt;emphasis&gt;any&lt;/emphasis&gt; mathematical theorem
+      (provided, of course, that this theorem is correct), thus
+      providing for new users an easy-to-use graphical interface to
+      modern mathematics. This section describes basic usage of
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt;.
+    &lt;/para&gt;
+
+    &lt;!-- ========= Basic Usage =========================== --&gt;
+    &lt;sect2 id="mainwin"&gt;
+      &lt;title&gt;Basic usage&lt;/title&gt;
+      &lt;para&gt;
+        Starting &lt;application&gt;MY-GNOME-APP&lt;/application&gt; opens the
+        &lt;interface&gt;Main window&lt;/interface&gt;, shown in &lt;xref
+        linkend="mainwindow-fig"&gt;. The window is at first empty.
+
+        &lt;!-- ==== Figure ==== --&gt;
+        &lt;figure id="mainwindow-fig"&gt;
+	  &lt;title&gt;MY-GNOME-APP Main Window&lt;/title&gt;
+	  &lt;screenshot&gt;
+	    &lt;screeninfo&gt;MY-GNOME-APP Main Window&lt;/screeninfo&gt;
+	    &lt;graphic fileref="SCREENSHOT" format="png" srccredit="ME"&gt;
+            &lt;/graphic&gt;
+	  &lt;/screenshot&gt;
+	&lt;/figure&gt;
+    &lt;!-- ==== End of Figure ==== --&gt;
+      &lt;/para&gt; 
+
+
+ &lt;!-- For this app, one could put "proving" or "edit" (probably even
+      both of them) as sect2's seperate from the main window
+      section. Since they were both so closely involved with the main
+      window, I decided to have them as sect3's isntead. Judgement
+      call. --&gt;
+
+      &lt;sect3 id="proving"&gt;
+	&lt;title&gt;Proving a Theorem&lt;/title&gt;
+	&lt;para&gt;
+          To get a proof of a theorem, select
+          &lt;menuchoice&gt;
+	    &lt;guisubmenu&gt;File&lt;/guisubmenu&gt;
+	    &lt;guimenuitem&gt;New&lt;/guimenuitem&gt;
+	  &lt;/menuchoice&gt;,
+            which will
+	    bring up the &lt;interface&gt;New Proof&lt;/interface&gt; dialog box.
+	    Enter the statement of the theorem in the
+	    &lt;guilabel&gt;Theorem statement&lt;/guilabel&gt; field, select your
+	    desired proof type from the drop-down menu, and and press
+	    &lt;guibutton&gt;Prove!&lt;/guibutton&gt;.
+        &lt;/para&gt;
+	&lt;para&gt;
+          If &lt;application&gt;MY-GNOME-APP&lt;/application&gt; cannot prove the
+          theorem by the method you have chosen, or if you have not
+          selected a proof type at all,
+          &lt;application&gt;MY-GNOME-APP&lt;/application&gt; will attempt to
+          choose the one that it thinks is most conclusive.  In order,
+          it will attempt to prove the theorem with the following techniques: 
+     
+                &lt;variablelist&gt;
+	    &lt;varlistentry&gt;
+	      &lt;term&gt;Deduction&lt;/term&gt;
+	      &lt;listitem&gt;
+		&lt;para&gt;
+                  This is a proof method that is generally accepted
+                  for full credit by Logic professors.
+                &lt;/para&gt;
+	      &lt;/listitem&gt;
+	    &lt;/varlistentry&gt;
+	    &lt;varlistentry&gt;
+            &lt;term&gt;Induction&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                This logical style will also earn you full credit on
+                your homework.
+             &lt;/para&gt;
+	    &lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+	    &lt;varlistentry&gt;
+	      &lt;term&gt;Dialog&lt;/term&gt;
+	      &lt;listitem&gt;
+	      &lt;para&gt;
+                This logical method is best for Philosophy classes,
+                and will probably only merit partial credit on Logic
+                or Mathematics homework.
+              &lt;/para&gt;
+	    &lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+	      &lt;term&gt;Confusion&lt;/term&gt;
+	      &lt;listitem&gt;
+	      &lt;para&gt;
+                Suitable only for political debates, battles of wits
+                against the unarmed, and Philosophy classes focusing
+                on the works of Kant. Use with caution.
+              &lt;/para&gt;
+	      &lt;/listitem&gt;
+	    &lt;/varlistentry&gt;
+	  &lt;/variablelist&gt;
+          &lt;/para&gt;
+
+   &lt;!-- You might want to include a note, warning, or tip, e.g. --&gt;
+	
+	&lt;warning&gt;
+	  &lt;title&gt;Proving Incorrect Theorms&lt;/title&gt;
+	  &lt;para&gt;
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; cannot prove
+            incorrect theorems. If the theorem you have entered is not
+            demonstrably true, you will get a message to that effect
+            in the main window.  To disprove a theorem, ask
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; to prove its
+            logical inverse.
+          &lt;/para&gt;
+	&lt;/warning&gt;
+      &lt;/sect3&gt;
+      &lt;sect3 id="editing"&gt;
+	&lt;title&gt;Editing Proofs&lt;/title&gt;
+	&lt;para&gt;
+          Once you have proven the theorem, it will be displayed in
+          the &lt;interface&gt;main window&lt;/interface&gt;.  There, you can read
+          it over, choose text styles for different portions of it,
+          and make comments on it. This section will guide you through
+          that process.
+        &lt;/para&gt;
+	&lt;para&gt;
+          To alter text styles, first select the statement you wish to
+          change by clicking on it once.  You can select several
+          statements by Then, choose the style you want to apply from
+          the &lt;guisubmenu&gt;Style&lt;/guisubmenu&gt; submenu of the
+          &lt;guimenu&gt;Edit&lt;/guimenu&gt; menu.
+          &lt;application&gt;MY-GNOME-APP&lt;/application&gt; will convert the
+          text to that style.
+        &lt;/para&gt;
+        &lt;para&gt;
+          You can also enter comments on a statement by selecting that
+          statement, and then beginning to type.  Comments will appear
+          after the statement you have selected.
+        &lt;/para&gt;
+
+	&lt;note&gt;
+	  &lt;title&gt;Altering The Proofs Themselves&lt;/title&gt;
+          &lt;para&gt;
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; does not allow you
+            to alter a proof it has produced itself.  You can, save
+            your proof as a plain text file (using the
+            &lt;guimenuitem&gt;Save as...&lt;/guimenuitem&gt; menu), and alter it
+            that way.  Be aware, however, that
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; uses its own file
+            format for saved proofs, and cannot re-open a file unless
+            it is in the .mga format.
+          &lt;/para&gt;
+	&lt;/note&gt;
+      &lt;/sect3&gt;
+
+
+  &lt;!-- If there are other functions performed from the main window,
+       they belong here.   --&gt;
+
+    &lt;/sect2&gt;
+ 
+    &lt;!-- ========================================================= 
+      Additional Sect2's should describe additional windows, such as
+      larger dialog boxes, or functionality that differs significantly
+      from the most immediate functions of the application. Make the
+      structure logical.
+      =============================================================  --&gt;
+
+
+    &lt;sect2 id="toolbar"&gt;
+      &lt;title&gt;Toolbar&lt;/title&gt;
+      &lt;para&gt;
+        The toolbar (shown in &lt;xref linkend="figure-usage-toolbar"&gt;)
+        provides access to several commonly used routines.
+        &lt;figure id="figure-usage-toolbar"&gt;
+	  &lt;title&gt;MY-GNOME-APP Toolbar&lt;/title&gt;
+	  &lt;screenshot&gt;
+	    &lt;screeninfo&gt;MY-GNOME-APP Toolbar&lt;/screeninfo&gt;
+	    &lt;graphic fileref="usage-toolbar.png" format="png"&gt;&lt;/graphic&gt;
+	  &lt;/screenshot&gt;
+	&lt;/figure&gt;
+        &lt;variablelist&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;New&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                Brings up the &lt;interface&gt;New Theorem&lt;/interface&gt;
+                dialog.
+              &lt;/para&gt;
+	    &lt;/listitem&gt;
+	  &lt;/varlistentry&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;Open&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                 Open an exisiting theorem you want to prove, or a
+                 completed proof you wish to print or format.
+               &lt;/para&gt;
+	    &lt;/listitem&gt;
+	  &lt;/varlistentry&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;Save&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+	         Save the current theorem permanently in a
+	         file.
+               &lt;/para&gt;
+	    &lt;/listitem&gt; 
+	  &lt;/varlistentry&gt;
+	&lt;/variablelist&gt;
+       &lt;/para&gt;
+    &lt;/sect2&gt;
+    &lt;!-- ========= Menus =========================== --&gt; 
+
+    &lt;sect2 id="menubar"&gt;
+
+       &lt;!-- Describing the menubar ensures comprehensive feature
+       coverage. Nest itemizedlists inside variablelists so that each
+       menu is easily located by indexing software. Proper indentation
+       makes it easier! --&gt;
+
+      &lt;title&gt;Menus&lt;/title&gt;
+      &lt;para&gt;
+	The menu bar, located at the top of the &lt;interface&gt;Main
+	Window&lt;/interface&gt;, contains the following menus:
+       &lt;/para&gt;
+      &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;File&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	       This menu contains:
+	       &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycap&gt;F3&lt;/keycap&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Open&lt;/guimenuitem&gt;
+		     &lt;/menuchoice&gt;
+	             &amp;mdash; This opens a file which is saved on your computer.
+	           &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;S&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Save&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This saves your file.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;W&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Close&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This closes your file.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;Q&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Exit&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This quits the application.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	  &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Edit&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	   This menu contains:
+	   &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;X&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Cut&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This removes any text or data which is selected and
+	            places it in the buffer.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;C&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Copy&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This copies any text or data which is selected into
+	            the buffer.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	           &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;V&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Paste&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This pastes any text or data which is copied into
+	            the buffer.
+	        &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;guimenuitem&gt;COMMAND1&amp;hellip;&lt;/guimenuitem&gt;
+	             &amp;mdash; This opens the &lt;interface&gt;COMMAND1&lt;/interface&gt;
+	             dialog, which is used to ....
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;COMMAND2&lt;/guimenuitem&gt;
+	            &amp;mdash; This ....
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	    &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Settings&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	   This menu contains:
+	   &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	      &lt;guimenuitem&gt;Preferences&amp;hellip;&lt;/guimenuitem&gt;
+	       &amp;mdash; This opens the &lt;link
+	       linkend="prefs"&gt;&lt;interface&gt;Preferences
+	       Dialog&lt;/interface&gt;&lt;/link&gt;, which allows you to configure
+	       many settings.
+	     &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;COMMAND3&lt;/guimenuitem&gt; &amp;mdash;
+    	            This command does something.
+    	    	   &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	    &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Help&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	      This menu contains:
+	       &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;guimenuitem&gt;Manual&lt;/guimenuitem&gt; &amp;mdash; This
+    	              opens the &lt;application&gt;GNOME Help
+    	              Browser&lt;/application&gt; and displays this manual.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;About&lt;/guimenuitem&gt; &amp;mdash; This
+    	            opens the &lt;interface&gt;About&lt;/interface&gt; dialog
+    	            which shows basic information about
+    	            &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, such as
+    	            the author's name, the application version number,
+    	            and the URL for the application's Web page if one
+    	            exists.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+            &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/sect2&gt;
+  &lt;/sect1&gt;
+
+
+
+ &lt;!-- ============= Customization ============================= --&gt;
+
+ &lt;sect1 id="prefs"&gt;
+  &lt;title&gt;Customization&lt;/title&gt;
+  &lt;para&gt;
+   To change the application settings, select
+   &lt;menuchoice&gt;
+    &lt;guimenu&gt;Settings&lt;/guimenu&gt;
+    &lt;guimenuitem&gt;Preferences...&lt;/guimenuitem&gt;
+   &lt;/menuchoice&gt;.  This opens the
+   &lt;interface&gt;Preferences&lt;/interface&gt; dialog, shown in &lt;xref
+   linkend="preferences-fig"&gt;.
+  &lt;/para&gt;
+
+  &lt;figure id="preferences-fig"&gt;
+   &lt;title&gt;Preferences Dialog&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;Preferences Dialog&lt;/screeninfo&gt;
+    &lt;graphic fileref="SCREENSHOT" format="png"
+     srccredit="ME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+  &lt;/figure&gt;
+
+  &lt;para&gt;
+   The properties in the &lt;guilabel&gt;PREFSTABNAME&lt;/guilabel&gt; tab are:
+   
+   &lt;!--many people use itemizedlists in cases like this. Variablelists
+   are more appropriate --&gt;
+
+      &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt; &lt;guilabel&gt;Default Text Style&lt;/guilabel&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+              Select the default text style for statements in your
+              proof.  You can still change the style for individual
+              proofs or sections of a proof at a later date.
+            &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     The properties in the &lt;guilabel&gt;SECONDTABNAME&lt;/guilabel&gt; tab are:
+       &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/para&gt;
+
+  &lt;para&gt;
+    After you have made all the changes you want, click on
+    &lt;guibutton&gt;OK&lt;/guibutton&gt; to apply the changes and close the
+    &lt;interface&gt;Properties&lt;/interface&gt; dialog. To cancel the changes
+    and return to previous values, click the
+    &lt;guibutton&gt;Close&lt;/guibutton&gt; button.
+  &lt;/para&gt;
+
+ &lt;/sect1&gt;
+
+
+ &lt;!-- ============= Various Sections ============================= --&gt;
+
+ &lt;!-- Here you should add, if necessary, several more sect1's,
+ describing other windows (besides the main one), file formats,
+ preferences dialogs,  etc. as appropriate. Try not to make any of
+ these sections too long. --&gt;
+
+
+ &lt;!-- ============= Bugs ================================== --&gt;
+ &lt;!-- This section should describe known bugs and limitations of
+      the program if there are any - please be frank and list all
+      problems you know of. --&gt;
+ &lt;sect1 id="bugs"&gt;
+  &lt;title&gt;Known Bugs and Limitations&lt;/title&gt;
+  &lt;para&gt;
+   This application has no known bugs.
+  &lt;/para&gt;
+ &lt;/sect1&gt;
+
+
+&lt;!-- ============= Authors ================================ --&gt;
+
+ &lt;sect1 id="authors"&gt;
+  &lt;title&gt;Authors&lt;/title&gt;
+  &lt;para&gt;
+   &lt;application&gt;MY-GNOME-APP&lt;/application&gt; was written by GNOME-HACKER
+   (&lt;email&gt;hacker at gnome.org&lt;/email&gt;). To find more information about
+   &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, please visit the &lt;ulink
+   url="http://www.my-gnome-app.org" type="http"&gt;MY-GNOME-APP Web
+   page&lt;/ulink&gt;.  Please send all comments, suggestions, and bug
+   reports to the &lt;ulink url="http://bugs.gnome.org" type="http"&gt;GNOME
+   bug tracking database&lt;/ulink&gt;. (Instructions for submitting bug
+   reports can be found &lt;ulink
+   url="http://bugs.gnome.org/Reporting.html" type="http"&gt;
+   on-line&lt;/ulink&gt;.)  You can also use &lt;application&gt;Bug Report
+   Tool&lt;/application&gt; (&lt;command&gt;bug-buddy&lt;/command&gt;), available in the
+   &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of &lt;guimenu&gt;Main
+   Menu&lt;/guimenu&gt;, for submitting bug reports.
+  &lt;/para&gt;
+
+  &lt;para&gt;
+   This manual was written by ME
+   (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all comments and
+   suggestions regarding this manual to the &lt;ulink type="http"
+   url="http://developer.gnome.org/projects/gdp"&gt;GNOME Documentation 
+   Project&lt;/ulink&gt; by sending an email to 
+   &lt;email&gt;docs at gnome.org&lt;/email&gt;. You can also add your comments online 
+   by using the &lt;ulink type="http" 
+   url="http://www.gnome.org/gdp/doctable/"&gt;GNOME Documentation Status
+   Table&lt;/ulink&gt;.
+  &lt;/para&gt;
+
+  &lt;!-- For translations: uncomment this:
+
+  &lt;para&gt;
+   Latin translation was done by ME
+   (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all  comments  and
+   suggestions regarding this translation to SOMEWHERE.
+  &lt;/para&gt;
+
+  --&gt;
+
+ &lt;/sect1&gt;
+
+
+ &lt;!-- ============= Application License ============================= --&gt;
+
+ &lt;sect1 id="license"&gt;
+  &lt;title&gt;License&lt;/title&gt;
+  &lt;para&gt;
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the &lt;citetitle&gt;GNU General Public
+   License&lt;/citetitle&gt; as published by the Free Software Foundation;
+   either version 2 of the License, or (at your option) any later
+   version.
+  &lt;/para&gt;
+  &lt;para&gt;
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; for more details.
+  &lt;/para&gt;
+  &lt;para&gt;
+   A copy of the &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; is
+   included as an appendix to the &lt;citetitle&gt;GNOME Users
+   Guide&lt;/citetitle&gt;.  You may also obtain a copy of the
+   &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; from the Free
+   Software Foundation by visiting &lt;ulink type="http"
+   url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to
+   &lt;address&gt;
+    Free Software Foundation, Inc.
+    &lt;street&gt;59 Temple Place&lt;/street&gt; - Suite 330
+    &lt;city&gt;Boston&lt;/city&gt;, &lt;state&gt;MA&lt;/state&gt; &lt;postcode&gt;02111-1307&lt;/postcode&gt;
+    &lt;country&gt;USA&lt;/country&gt;
+   &lt;/address&gt;
+  &lt;/para&gt;
+ &lt;/sect1&gt;
+&lt;/article&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+</fo:block>
+      </fo:block>
+        </fo:block>
+        <fo:block id="template2-1x">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Template 2: Applet Manual For GNOME 1.x</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The following templates should be used for all applet
+        manuals in GNOME 1.x releases.  You can always get the latest
+        copy of these templates from  <fo:basic-link external-destination="http://developer.gnome.org/projects/gdp/templates.html">GDP
+        Documentation Templates</fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/projects/gdp/templates.html]</fo:inline>.  Note that the template
+        consists of two files; the first file calls the second as an
+        entity. You should name the first file
+        <fo:inline font-family="Courier"><fo:inline font-style="italic" font-family="Courier">appletname</fo:inline>-applet.sgml</fo:inline>
+        and the second file should be named
+        <fo:inline font-family="Courier"><fo:inline font-style="italic" font-family="Courier">appletname</fo:inline>.sgml</fo:inline>,
+        where
+        <fo:inline font-family="Courier"><fo:inline font-style="italic" font-family="Courier">appletname</fo:inline></fo:inline> is
+        the name of the applet.
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+ &lt;!entity APPLETNAME.sgml SYSTEM "applet_template_1.sgml"&gt;
+        &lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+]&gt;
+
+&lt;!-- This is a GNOME documentation template, designed by the GNOME
+  Documentation Project Team. Please use it for writing GNOME
+  documentation, making obvious changes. In particular, all the words
+  written in UPPERCASE (with the exception of GNOME) should be
+  replaced. As for "legalnotice", please leave the reference
+  unchanged,make sure to add/remove trademarks to the list as
+  appropriate for your document.
+
+  Please don't forget to remove these comments in your final documentation,
+  thanks ;-).
+--&gt;
+
+&lt;article id="index"&gt; &lt;!-- please do not change the id --&gt;
+
+ &lt;!-- ============= Document Header ============================= --&gt;
+ &lt;artheader&gt; 
+  &lt;title&gt;APPLETNAME Applet&lt;/title&gt;
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;YOURFULLNAME&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+  &lt;!-- translators: uncomment this:
+
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;ME-THE-TRANSLATOR (Latin translation)&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+   --&gt;
+
+  &lt;!-- do not put authorname in the header except in copyright - use
+  section "authors" below --&gt;
+
+  &lt;legalnotice&gt;
+   &lt;para&gt;
+    Permission is granted to copy, distribute and/or modify this
+    document under the terms of the &lt;citetitle&gt;GNU Free Documentation
+    License&lt;/citetitle&gt;, Version 1.1 or any later version published
+    by the Free Software Foundation with no Invariant Sections, no
+    Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy
+    of the &lt;citetitle&gt;GNU Free Documentation License&lt;/citetitle&gt; from
+    the Free Software Foundation by visiting &lt;ulink type="http"
+    url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to:
+    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Many of the names used by companies to distinguish their products and
+    services are claimed as trademarks. Where those names appear in any
+    GNOME documentation, and those trademarks are made aware to the members
+    of the GNOME Documentation Project, the names have been printed in caps
+    or initial caps.
+   &lt;/para&gt;
+  &lt;/legalnotice&gt;
+
+  &lt;releaseinfo&gt;
+   This is version XXX of the APPLETNAME applet manual.
+  &lt;/releaseinfo&gt;
+ &lt;/artheader&gt;
+
+ &lt;!-- ============= Document Body ============================= --&gt;
+
+ &amp;APPLETNAME.sgml;
+
+&lt;/article&gt;
+
+
+
+
+
+</fo:block>
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+        &lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+
+ &lt;sect1 id="APPLET"&gt;
+  &lt;title&gt;APPLET Applet&lt;/title&gt;
+
+  &lt;para&gt;
+   &lt;application&gt;APPLET&lt;/application&gt; applet, shown in &lt;xref
+   linkend="APPLETapplet-fig"&gt;, allows you to &amp;hellip;.  To add this
+   applet to a &lt;interface&gt;Panel&lt;/interface&gt;, 
+   right-click on the &lt;interface&gt;Panel&lt;/interface&gt; and choose
+   &lt;menuchoice&gt;
+    &lt;guimenu&gt;Panel&lt;/guimenu&gt;
+    &lt;guisubmenu&gt;Add to panel&lt;/guisubmenu&gt;
+    &lt;guisubmenu&gt;Applet&lt;/guisubmenu&gt;
+    &lt;guisubmenu&gt;SECTION&lt;/guisubmenu&gt;
+    &lt;guimenuitem&gt;APPLET&lt;/guimenuitem&gt;
+   &lt;/menuchoice&gt;.
+  &lt;/para&gt;
+
+  &lt;figure id="APPLETapplet-fig"&gt;
+   &lt;title&gt;APPLET Applet&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;APPLET Applet&lt;/screeninfo&gt;
+    &lt;graphic format="png" fileref="APPLET_applet" 
+    srccredit="YOURNAME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+  &lt;/figure&gt;
+
+  &lt;!-- ============= Usage  ================================ --&gt;
+  &lt;sect2 id="APPLET-usage"&gt;
+   &lt;title&gt;Usage&lt;/title&gt;
+   &lt;para&gt;
+    (Place a short description of how to use the applet here.)
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    Right-clicking on the applet brings up a menu containing the
+    following items:
+    &lt;itemizedlist&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;Properties&amp;hellip;&lt;/guimenuitem&gt; &amp;mdash;
+       opens the &lt;link linkend="APPLET-prefs"&gt;
+       &lt;guilabel&gt;Properties&lt;/guilabel&gt;&lt;/link&gt; dialog.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;Help&lt;/guimenuitem&gt; &amp;mdash;
+       displays this document.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;About&amp;hellip;&lt;/guimenuitem&gt; &amp;mdash;
+       shows basic information about &lt;application&gt;APPLET
+       Applet&lt;/application&gt;, including the applet's version and the
+       author's name.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+    &lt;/itemizedlist&gt;
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Customization ============================= --&gt;
+  &lt;sect2 id="APPLET-prefs"&gt;
+    &lt;title&gt;Customization&lt;/title&gt;
+    &lt;para&gt;
+      You can customize &lt;application&gt;APPLET&lt;/application&gt;
+      applet by right-clicking on it and choosing
+      &lt;guimenuitem&gt;Properties&amp;hellip;&lt;/guimenuitem&gt;. This will open the
+      &lt;interface&gt;Properties&lt;/interface&gt; dialog(shown in &lt;xref
+      linkend="APPLET-settings-fig"&gt;), which allows you to
+      change various settings.
+    &lt;/para&gt;
+
+    &lt;figure id="APPLET-settings-fig"&gt;
+     &lt;title&gt;Properties dialog&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Properties dialog&lt;/screeninfo&gt;
+      &lt;graphic format="png" fileref="APPLET_settings"
+      srccredit="YOURNAME"&gt;
+      &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+
+    &lt;para&gt;
+     The properties are:
+     &lt;itemizedlist&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; If this button is
+        checked&amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; Selecting this
+        button&amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; Enter the name of
+        &amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt; 
+      After you have made all the changes you want, click on
+      &lt;guibutton&gt;OK&lt;/guibutton&gt; to apply the changes and close the
+      &lt;interface&gt;Properties&lt;/interface&gt; dialog. To cancel the changes
+      and return to previous values, click the
+      &lt;guibutton&gt;Close&lt;/guibutton&gt; button.
+    &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Bugs ================================== --&gt;
+  &lt;!-- This section should describe known bugs and limitations of
+       the program if there are any - please be frank and list all
+       problems you know of --&gt;
+  &lt;sect2 id="bugs"&gt;
+   &lt;title&gt;Known Bugs and Limitations&lt;/title&gt;
+   &lt;para&gt;
+    This applet has no known bugs.
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Authors ================================ --&gt;
+
+  &lt;sect2 id="authors"&gt;
+   &lt;title&gt;Authors&lt;/title&gt;
+   &lt;para&gt;
+    &lt;application&gt;APPLET&lt;/application&gt; was written by GNOME-HACKER
+    (&lt;email&gt;hacker at gnome.org&lt;/email&gt;).  Please send all comments,
+    suggestions, and bug 
+    reports to the &lt;ulink url="http://bugs.gnome.org" type="http"&gt;GNOME
+    bug tracking database&lt;/ulink&gt;. (Instructions for submitting bug
+    reports can be found &lt;ulink
+    url="http://bugs.gnome.org/Reporting.html" type="http"&gt;
+    on-line&lt;/ulink&gt;.  You can also use &lt;application&gt;Bug Report
+    Tool&lt;/application&gt; (&lt;command&gt;bug-buddy&lt;/command&gt;), available in the
+    &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of &lt;guimenu&gt;Main
+    Menu&lt;/guimenu&gt;, for submitting bug reports.
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    This manual was written by ME
+    (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all comments and
+    suggestions regarding this manual to the &lt;ulink type="http"
+    url="http://developer.gnome.org/projects/gdp"&gt;GNOME Documentation
+    Project&lt;/ulink&gt;  by sending an email to
+    &lt;email&gt;docs at gnome.org&lt;/email&gt;. You can also submit comments online
+    by using the &lt;ulink type="http"
+    url="http://www.gnome.org/gdp/doctable/"&gt;GNOME Documentation
+    Status Table&lt;/ulink&gt;.
+   &lt;/para&gt;
+
+   &lt;!-- For translations: uncomment this:
+
+   &lt;para&gt;
+    Latin translation was done by ME
+    (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all  comments  and
+    suggestions regarding this translation to SOMEWHERE.
+   &lt;/para&gt;
+
+   --&gt;
+
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Application License ============================= --&gt;
+
+  &lt;sect2 id="license"&gt;
+   &lt;title&gt;License&lt;/title&gt;
+   &lt;para&gt;
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the &lt;citetitle&gt;GNU General Public
+    License&lt;/citetitle&gt; as published by the Free Software Foundation;
+    either version 2 of the License, or (at your option) any later
+    version.
+   &lt;/para&gt;
+   &lt;para&gt;
+    This program is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; for more details.
+   &lt;/para&gt;
+   &lt;para&gt;
+    A copy of the &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; is
+    included as an appendix to the &lt;citetitle&gt;GNOME Users
+    Guide&lt;/citetitle&gt;.  You may also obtain a copy of the
+    &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; from the Free
+    Software Foundation by visiting &lt;ulink type="http"
+    url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to
+    &lt;address&gt;
+     Free Software Foundation, Inc.
+     &lt;street&gt;59 Temple Place&lt;/street&gt; - Suite 330
+     &lt;city&gt;Boston&lt;/city&gt;, &lt;state&gt;MA&lt;/state&gt; &lt;postcode&gt;02111-1307&lt;/postcode&gt;
+     &lt;country&gt;USA&lt;/country&gt;
+    &lt;/address&gt;
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+ &lt;/sect1&gt;
+
+
+
+
+
+
+
+
+</fo:block>
+      </fo:block>
+        </fo:block>
+        <fo:block id="template2-2x">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Template 2: Applet Manual For GNOME 2.x</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        The following templates should be used for all applet
+        manuals in GNOME 2.x releases.  You can always get the latest
+        copy of these templates from  <fo:basic-link external-destination="http://developer.gnome.org/projects/gdp/templates.html">GDP
+        Documentation Templates</fo:basic-link><fo:inline hyphenate="false"> [http://developer.gnome.org/projects/gdp/templates.html]</fo:inline>.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        Note that this template consists of two files.  The first file
+        is an introductory chapter. You should not modify this
+        chapter. The second file is the actual applet document, which
+        you should modify to describe the applet you are documenting.
+        You can name the first file whatever you like, such as
+        <fo:inline font-family="Courier">gnome-applets.sgml</fo:inline>.  Name the second file
+        according to the applet's name:
+        <fo:inline font-family="Courier"><fo:inline font-style="italic" font-family="Courier">appletname</fo:inline>-applet.sgml</fo:inline>.
+        Make sure you update the entity
+        at the top of the shell document to reflect the new name of
+        the applet document.
+      </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+&lt;!DOCTYPE book PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+&lt;!ENTITY TEMPLATE-APPLET SYSTEM "gnome-applet-template.sgml.part"&gt;
+
+]&gt;
+
+&lt;book id="gnome-applets"&gt;
+
+ &lt;bookinfo&gt;
+  &lt;title&gt;GNOME Applets&lt;/title&gt;
+  &lt;authorgroup&gt;
+   &lt;author&gt;&lt;firstname&gt;Telsa&lt;/firstname&gt;&lt;surname&gt;Gwynne&lt;/surname&gt;&lt;/author&gt;
+   &lt;author&gt;&lt;firstname&gt;John&lt;/firstname&gt;&lt;surname&gt;Fleck&lt;/surname&gt;&lt;/author&gt;
+   &lt;author&gt;&lt;firstname&gt;David&lt;/firstname&gt;&lt;surname&gt;Mason&lt;/surname&gt;
+      &lt;affiliation&gt;&lt;orgname&gt;Red Hat, Inc.&lt;/orgname&gt;&lt;/affiliation&gt;
+    &lt;/author&gt;
+    &lt;author&gt;&lt;firstname&gt;Dan&lt;/firstname&gt;&lt;surname&gt;Mueth&lt;/surname&gt;&lt;/author&gt;
+    &lt;author&gt;&lt;firstname&gt;Alexander&lt;/firstname&gt;&lt;surname&gt;Kirillov&lt;/surname&gt;&lt;/author&gt;
+  &lt;/authorgroup&gt;
+  &lt;edition&gt;GNOME Applets version 0.1 for GNOME 1.1.5&lt;/edition&gt;
+  &lt;pubdate&gt;2000&lt;/pubdate&gt;
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;Telsa Gwynne, John Fleck, Red Hat Inc., Dan Mueth, and
+    Alexander Kirillov&lt;/holder&gt; 
+  &lt;/copyright&gt;
+  &lt;legalnotice&gt;
+   &lt;para&gt;
+    Permission is granted to make and distribute verbatim copies of this
+    manual provided the copyright notice and this permission notice are
+    preserved on all copies.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Permission is granted to copy and distribute modified versions of
+    this manual under the conditions for verbatim copying, provided that
+    the entire resulting derived work is distributed under the terms of a
+    permission notice identical to this one.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Permission is granted to copy and distribute translations of this
+    manual into another language, under the above conditions for modified
+    versions, except that this permission notice may be stated in a
+    translation approved by the Free Software Foundation.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Many of the names used by companies to distinguish their products and
+    services are claimed as trademarks. Where those names appear in any
+    GNOME documentation, and those trademarks are made aware to the members
+    of the GNOME Documentation Project, the names have been printed in caps
+    or initial caps.
+   &lt;/para&gt;
+  &lt;/legalnotice&gt;
+ &lt;/bookinfo&gt;
+
+ &lt;!-- #### Introduction ###### --&gt;
+ &lt;chapter id="applets-intro"&gt;
+  &lt;title&gt;Introduction&lt;/title&gt; 
+
+  &lt;!-- #### Intro | What Are Applets? ###### --&gt;
+  &lt;sect1 id="applets-what-are"&gt;
+   &lt;title&gt;What Are Applets?&lt;/title&gt; 
+   &lt;para&gt;
+    Applets are one of the most popular and useful objects you can add
+    to your &lt;interface&gt;Panel&lt;/interface&gt; to customize your desktop.
+    An applet is a small application which runs inside a small area of
+    your &lt;interface&gt;Panel&lt;/interface&gt;. Applets have been written for
+    a wide range of purposes.  Some are very powerful interactive
+    tools, such as the &lt;application&gt;Tasklist&lt;/application&gt; Applet
+    which allows you to easily 
+    control all of your main applications.  Others are simple system
+    monitors, displaying information such as the amount of power left
+    in the battery on your laptop (see &lt;application&gt;Battery Charge
+    Monitor&lt;/application&gt;) or weather
+    information(see &lt;application&gt;GNOME Weather&lt;/application&gt;).  Some
+    are simply for amusement(see &lt;application&gt;Fish&lt;/application&gt;).
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    Applets are similar to swallowed applications in that both of them
+    reside within the &lt;interface&gt;Panel&lt;/interface&gt;. However, 
+    swallowed applications are generally applications which were
+    not designed to run within the &lt;interface&gt;Panel&lt;/interface&gt;.
+    Typically one will swallow an application which already exists in
+    the main &lt;interface&gt;desktop&lt;/interface&gt; area, putting it into your
+    &lt;interface&gt;Panel&lt;/interface&gt;.  The application will continue to
+    run in the &lt;interface&gt;Panel&lt;/interface&gt; until you end the
+    application or  unswallow it,  placing it back onto the main part of
+    your desktop when you need to.
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    &lt;figure id="example-applets-fig"&gt;
+     &lt;title&gt;Example Applets&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Example Applets&lt;/screeninfo&gt;
+       &lt;graphic fileref="example_applets" format="png"
+       srccredit="muet"&gt;
+       &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+    Several example applets are shown in &lt;xref
+    linkend="example-applets-fig"&gt;.  From left to right, they are: (1)
+    &lt;application&gt;Mixer Applet&lt;/application&gt;, which allows you to turn
+    on/off sound and control its volume by clicking on the applet.  (2)
+    &lt;application&gt;Sound Monitor&lt;/application&gt; Applet, which displays
+    the current volume of sound being played and allows you to control
+    various sound features.  (3) &lt;application&gt;GTCD&lt;/application&gt;
+    Applet, a CD player which has all its controls
+    available in the applet and displays the track and time. (4)
+    &lt;application&gt;Drive Mount&lt;/application&gt; Applet, used to mount and
+    unmount drives with a single click of the mouse. (5)
+    &lt;application&gt;Desk Guide&lt;/application&gt; which allows you to view
+    and control multiple virtual screens. (6)
+    &lt;application&gt;Tasklist&lt;/application&gt; Applet which allows you to
+    control your various windows and applications.
+   &lt;/para&gt;
+   &lt;para&gt;
+    There are many other applets to choose from.  The rest of this
+    chapter will explain the basic information to get you started
+    adding, moving, and removing applets from your
+    &lt;interface&gt;Panels&lt;/interface&gt; and using them. The following
+    chapters go through each of the standard GNOME applets describing
+    them in detail.  There are also additional applets which can be
+    downloaded off the Web.   See &lt;ulink type="http"
+     url="http://www.gnome.org/applist/list-martin.phtml"&gt;The GNOME
+    Software Map&lt;/ulink&gt; for lists of additional GNOME applications
+    and applets. 
+   &lt;/para&gt;
+   &lt;para&gt;
+    As you read through the the rest of this chapter, you should try
+    adding and removing applets from your &lt;interface&gt;Panel&lt;/interface&gt; and
+    experiment with them freely.  
+   &lt;/para&gt;
+  &lt;/sect1&gt;
+
+  &lt;!-- #### Intro | Adding, Moving, and Removing Applets ###### --&gt;
+  &lt;sect1 id="applet-add-move-replace"&gt;
+   &lt;title&gt;Adding, Moving, and Removing Applets&lt;/title&gt;
+
+   &lt;sect2 id="adding-applets"&gt;   
+    &lt;title&gt;Adding Applets to a Panel&lt;/title&gt;
+    &lt;para&gt;
+     To add an applet to a &lt;interface&gt;Panel&lt;/interface&gt;, right-click
+     on the &lt;interface&gt;Panel&lt;/interface&gt; and select 
+     &lt;menuchoice&gt;&lt;guimenu&gt;Panel&lt;/guimenu&gt;&lt;guisubmenu&gt;Add to panel&lt;/guisubmenu&gt;
+     &lt;guisubmenu&gt;Applet&lt;/guisubmenu&gt;&lt;/menuchoice&gt;. This will show you
+     the menu of all the applets on your system, divided into
+     categories. Choosing any applet from this menu will add it to the
+     &lt;interface&gt;Panel&lt;/interface&gt;.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="moving-applets"&gt;
+    &lt;title&gt;Moving Applets In or Between Panels&lt;/title&gt;
+    &lt;para&gt;
+     It is easy to move applets in a &lt;interface&gt;Panel&lt;/interface&gt; or
+     between two &lt;interface&gt;Panels&lt;/interface&gt;. If you have a
+     three-button mouse, just move the mouse over the applet, depress
+     the middle mouse button and drag the applet to its new location,
+     releasing the middle mouse button when you are finished.  Note
+     that you can drag applets within a &lt;interface&gt;Panel&lt;/interface&gt;
+     or between two &lt;interface&gt;Panels&lt;/interface&gt; this way. If you
+     don't have a three-button mouse, just 
+     right-click on the applet and choose
+     &lt;guimenuitem&gt;Move&lt;/guimenuitem&gt;. The cursor will turn into a
+     cross and the applet will move with your mouse until you press
+     any mouse button to indicate you are finished moving it.
+     If, in the course of this movement, it hits
+     other objects, the behavior depends on the global preferences
+     you have set for your &lt;interface&gt;Panels&lt;/interface&gt; in the
+     &lt;application&gt;GNOME Control Center&lt;/application&gt;: the applet you are
+     moving can switch places with other objects, "push" all objects
+     it meets, or "jump" over all other objects without disturbing
+     them. You can also override the default behavior by holding
+     &lt;keycap&gt;Shift&lt;/keycap&gt; button (for "push" mode),
+     &lt;keycap&gt;Ctrl&lt;/keycap&gt; (for "switched" mode), or
+     &lt;keycap&gt;Alt&lt;/keycap&gt; (for "free" mode, i.e. jumping other other
+     objects without disturbing them) button while dragging.
+    &lt;/para&gt;
+    &lt;para&gt;
+     To change the global Panel preferences, right-click on any applet
+     or &lt;interface&gt;Panel&lt;/interface&gt; and select 
+     &lt;menuchoice&gt;
+      &lt;guimenu&gt;Panel&lt;/guimenu&gt;
+      &lt;guimenuitem&gt;Global Preferences...&lt;/guimenuitem&gt;
+     &lt;/menuchoice&gt;.
+     The &lt;guilabel&gt;Default movement mode&lt;/guilabel&gt; is set under the
+     &lt;guilabel&gt;Applets&lt;/guilabel&gt; tab.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="removing-applets"&gt;
+    &lt;title&gt;Removing Applets from a Panel&lt;/title&gt; 
+    &lt;para&gt;  
+     To remove an applet from a &lt;interface&gt;Panel&lt;/interface&gt;,
+     right-click on the applet and select &lt;guimenuitem&gt;Remove from
+     panel...&lt;/guimenuitem&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+
+
+  &lt;!-- #### Intro | The Right-Click Pop-Up Menu ###### --&gt;
+  &lt;sect1 id="right-click-pop-up-menu"&gt;
+   &lt;title&gt;The Right-Click Pop-Up Menu&lt;/title&gt;
+   &lt;para&gt;
+    Clicking the right mouse button on any applet brings up
+    a &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt;. This 
+    menu always has certain standard menu items in it and
+    often has additional items which vary depending on the particular
+    applet. 
+   &lt;/para&gt;
+   &lt;sect2 id="standard-right-click-items"&gt; 
+    &lt;title&gt;Standard Pop-Up Items&lt;/title&gt;
+    &lt;para&gt;
+     All applets should have the following items in their right-click
+     &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt;:
+     &lt;variablelist&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;Remove from panel&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Remove from panel&lt;/guimenuitem&gt; menu item
+         removes the applet from the &lt;interface&gt;Panel&lt;/interface&gt;. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Move&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         After selecting &lt;guimenuitem&gt;Move&lt;/guimenuitem&gt;, your mouse
+         pointer will change appearance (typically to a cross with
+         arrows in each direction). As you move your mouse, the applet
+         will move with it.  When you have finished moving the applet,
+         click any mouse button and the applet will anchor in its
+         current position.  Note that applets can be moved between two
+         &lt;interface&gt;Panels&lt;/interface&gt; this way.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Panel&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guisubmenu&gt;Panel&lt;/guisubmenu&gt; submenu contains various
+         items and submenus for adding and removing
+         &lt;interface&gt;Panels&lt;/interface&gt; and applets and for changing
+         the configuration.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;About&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;About...&lt;/guimenuitem&gt; menu item brings up a 
+         dialogue box containing various information about the applet,
+         typically including the applet's  name, version, author,
+         copyright, license and desciption. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Help&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Help&lt;/guimenuitem&gt; menu item brings up the help
+         manual for the applet. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+     &lt;/variablelist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="applet-properties-dialog"&gt; 
+    &lt;title&gt;The Applet Properties Dialog&lt;/title&gt;
+    &lt;para&gt;
+     Many applets have customizable properties.  These applets will
+     have a &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; menu item in their
+     right-click &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt; which brings up the
+     &lt;interface&gt;Properties&lt;/interface&gt; dialog where you can alter the 
+     appearance or behaviour of the applet.
+     &lt;figure id="example-props-dialog-fig"&gt;
+      &lt;title&gt;An Example Applet Properties Dialog&lt;/title&gt;
+      &lt;screenshot&gt;
+       &lt;screeninfo&gt;An Example Applets Properties Dialog&lt;/screeninfo&gt;
+       &lt;graphic fileref="applet_props_dialog" format="png"
+        srccredit="muet"&gt;
+       &lt;/graphic&gt;
+      &lt;/screenshot&gt;
+     &lt;/figure&gt;
+     All &lt;interface&gt;Properties&lt;/interface&gt; dialogs have the following
+     buttons at the bottom of the dialog:
+     &lt;itemizedlist&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;OK&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;OK&lt;/guibutton&gt; will activate any changes
+        in the properties you have made and close the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Apply&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Apply&lt;/guibutton&gt; at any time will
+        make your changes active without closing the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.  This is helpful if
+        you would like to test the effects of the changes you have
+        made but may want to continue changing the properties.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Close&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Close&lt;/guibutton&gt; will close the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.  Only changes in the
+        configuration which were previously applied with the
+        &lt;guibutton&gt;Apply&lt;/guibutton&gt; button will persist.  Other
+        changes will not be made active.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Help&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Help&lt;/guibutton&gt; brings up the manual for
+        the application, opening it to the page describing the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+ 
+   &lt;sect2 id="common-right-click-items"&gt; 
+    &lt;title&gt;Other Common Pop-Up Items&lt;/title&gt;
+    &lt;para&gt;
+     Many applets also have one or more of the following items in their
+     right-click pop-up menu:
+     &lt;variablelist&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;Run...&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Run...&lt;/guimenuitem&gt; menu item generally
+         invokes a program  which is related to the applet in some way
+         but which runs in its own window rather than in the
+         panel. For example: 
+        &lt;/para&gt;
+        &lt;orderedlist&gt;
+         &lt;listitem&gt;
+          &lt;para&gt;
+           The &lt;application&gt;CPU Load&lt;/application&gt; applet, which monitors
+           what programs are running, has a &lt;guimenuitem&gt;Run
+           gtop...&lt;/guimenuitem&gt;  menu item. Selecting this menu item
+           starts &lt;application&gt;GTop&lt;/application&gt;, which allows you to
+           view and control programs which are running.
+          &lt;/para&gt;
+         &lt;/listitem&gt;
+         &lt;listitem&gt;
+          &lt;para&gt;
+           The &lt;application&gt;CD Player&lt;/application&gt; applet has a
+           &lt;guimenuitem&gt;Run gtcd...&lt;/guimenuitem&gt; menu item which
+           starts the GNOME &lt;application&gt;CD Player&lt;/application&gt; when
+           selected, which has more capabilities than the applet.
+          &lt;/para&gt;
+         &lt;/listitem&gt;
+        &lt;/orderedlist&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+     &lt;/variablelist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+  
+  &lt;sect1 id="feedback"&gt;
+   &lt;title&gt;Feedback&lt;/title&gt;
+   &lt;sect2 id="reporting-bugs"&gt; 
+    &lt;title&gt;Reporting Applet Bugs&lt;/title&gt;
+    &lt;para&gt;
+     GNOME users are encouraged to report bugs to &lt;ulink type="http"
+     url="http://bugs.gnome.org"&gt;The GNOME Bug Tracking
+     System&lt;/ulink&gt;.  The easiest way to submit bugs is to use the
+     &lt;application&gt;Bug Report Tool&lt;/application&gt; program by selecting
+     &lt;menuchoice&gt;
+      &lt;guimenu&gt;Main Menu&lt;/guimenu&gt; &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt;
+      &lt;guimenuitem&gt;Bug Report Tool&lt;/guimenuitem&gt; 
+     &lt;/menuchoice&gt;.
+     Be sure to be complete in describing what you did to cause the
+     bug to surface and, if possible, describe how the developer can
+     reproduce the the scenario.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+   &lt;sect2 id="documentation-feedback"&gt; 
+    &lt;title&gt;Providing Feedback&lt;/title&gt;
+    &lt;para&gt;
+     GNOME users are welcome to provide suggestions for how
+     applications and documentation can be improved.  Suggestions for
+     application changes should be submitted using the
+     &lt;application&gt;Bug Report Tool&lt;/application&gt; discussed above.
+     Suggestions for documentation changes can be emailed directly to
+     the documentation author (whose email should be included in the
+     "Authors" section of the document) or by sending an email to
+     &lt;email&gt;docs at gnome.org&lt;/email&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+   &lt;sect2 id="joining-gnome"&gt;  
+    &lt;title&gt;Joining GNOME&lt;/title&gt;
+    &lt;para&gt;
+     GNOME is a community project, created by hundreds of programmers,
+     documentation writers, icon design artists, web masters, and
+     other people, most of whom work on a volunteer basis.  New GNOME
+     contributors are always welcome. To join the GNOME team, visit
+     these web sites: developers &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org"&gt;The GNOME Development
+     Site&lt;/ulink&gt;, documentation writers &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org/projects/gdp"&gt;The GNOME Documentation
+     Project&lt;/ulink&gt;, icon design artists &amp;mdash; &lt;ulink type="http"
+     url="http://gnome-icons.sourceforge.net/"&gt;Gnome Icon Web&lt;/ulink&gt;,
+     general &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org/helping/"&gt;Helping GNOME&lt;/ulink&gt;,
+     or just join the gnome-list email list (see &lt;ulink type="http"
+     url="http://www.gnome.org/resources/mailing-lists.html"&gt;GNOME Mailing
+     Lists&lt;/ulink&gt;) to discuss what you are interested in doing.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+ &lt;/chapter&gt;
+
+ &lt;!-- ############### Template Applets ##################### --&gt;
+ &lt;chapter id="template-applets"&gt;
+  &lt;title&gt;Template Applets&lt;/title&gt;
+
+  &amp;TEMPLATE-APPLET
+
+ &lt;/chapter&gt;
+
+&lt;/book&gt;
+
+
+
+
+
+
+
+
+	</fo:block>
+	
+        <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+
+
+  &lt;!-- Please replace everywhere below GNOMEAPPLET with the name of --&gt;
+  &lt;!-- your applet. Most importantly, all id attributes should start --&gt;
+  &lt;!-- with the name of your applet - this is necessary to avoid name --&gt;
+  &lt;!-- conflict among different applets --&gt; 
+  &lt;!-- Please replace YOUR-NAME with your name and YOUR-EMAIL with your email--&gt;
+  &lt;!-- Please replace HACKER-NAME with the applet author's name and --&gt;
+  &lt;!-- HACKER-EMAIL with the applet author's email --&gt;
+
+  &lt;!-- You should name your file: GNOMEAPPLET-applet.sgml --&gt;
+  &lt;!-- Screenshots should be in PNG format and placed in the --&gt;
+  &lt;!-- same directory as GNOMEAPPLET-applet.sgml --&gt;
+
+  &lt;!-- Applet docs will be merged into &lt;chapter&gt;'s inside a --&gt;
+  &lt;!-- &lt;book&gt;. Thus, the indentation below (2 spaces before the &lt;sect1&gt;) is --&gt;
+  &lt;!-- correct.--&gt;
+
+  &lt;!-- Permission is granted to make and distribute verbatim copies of --&gt;
+  &lt;!-- this manual provided the copyright notice and this permission --&gt;
+  &lt;!-- notice are  preserved on all copies. --&gt;
+  &lt;!-- --&gt;
+  &lt;!-- Permission is granted to copy and distribute modified versions of --&gt;
+  &lt;!-- this manual under the conditions for verbatim copying, provided --&gt;
+  &lt;!-- that the entire resulting derived work is distributed under the --&gt;
+  &lt;!-- terms of a permission notice identical to this one. --&gt;
+  &lt;!-- --&gt;
+  &lt;!-- Permission is granted to copy and distribute translations of this --&gt;
+  &lt;!-- manual into another language, under the above conditions for --&gt;
+  &lt;!-- modified versions, except that this permission notice may be --&gt;
+  &lt;!-- stated in a translation approved by the Foundation. --&gt;
+
+  &lt;!-- ###############   GNOMEAPPLET   ############### --&gt;
+  &lt;sect1 id="GNOMEAPPLET"&gt;
+   &lt;title&gt;GNOMEAPPLET Applet&lt;/title&gt; 
+
+   &lt;para&gt; 
+    &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet, shown in &lt;xref
+    linkend="GNOMEAPPLET-fig"&gt;, does this and that. To learn how to
+    add this applet to a &lt;interface&gt;Panel&lt;/interface&gt;, see &lt;xref
+    linkend="adding-applets"&gt;. 
+   &lt;/para&gt;
+  
+ 
+   &lt;figure id="GNOMEAPPLET-fig"&gt;
+   &lt;title&gt;GNOMEAPPLET&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;GNOMEAPPLET&lt;/screeninfo&gt;
+    &lt;graphic format="png" fileref="GNOMEAPPLET-fig" srccredit="ME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+   &lt;/figure&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-usage"&gt;
+    &lt;title&gt;Usage&lt;/title&gt;
+    &lt;para&gt;
+     This applet does nothing. To use it, just
+     left-click on it and it will instantly do nothing.   
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-right-click"&gt;
+    &lt;title&gt;Right-Click Pop-Up Menu Items&lt;/title&gt;
+    &lt;para&gt; 
+     In addition to the standard menu items (see &lt;xref
+     linkend="standard-right-click-items"&gt;), the right-click pop-up menu has 
+     the following items: 
+     &lt;itemizedlist&gt; 	
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; &amp;mdash; This menu
+        item opens the &lt;interface&gt;Properties&lt;/interface&gt; dialog (see
+        &lt;xref linkend="GNOMEAPPLET-properties"&gt;) which allows you to
+        customize the appearance and behavior of this applet.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guimenuitem&gt;Run Hello World...&lt;/guimenuitem&gt; &amp;mdash; This
+        menu item starts the program &lt;application&gt;Hello
+        World&lt;/application&gt;, used to say "hello" to the world. 
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-properties"&gt;
+    &lt;title&gt;Properties&lt;/title&gt;
+    &lt;para&gt;
+     You can configure &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet by
+     right-clicking on the applet and choosing the
+     &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; menu item. This will open the
+     &lt;interface&gt;Properties&lt;/interface&gt; dialog, shown in &lt;xref
+     linkend="GNOMEAPPLET-properties-fig"&gt;.
+    &lt;/para&gt;
+    &lt;figure id="GNOMEAPPLET-properties-fig"&gt;
+     &lt;title&gt;Properties Dialog&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Properties Dialog&lt;/screeninfo&gt; 
+      &lt;graphic format="png" fileref="GNOMEAPPLET-properties" srccredit="ME"&gt;
+      &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+    
+    &lt;para&gt; 
+     To change the color of the applet, click on the
+     &lt;guibutton&gt;color&lt;/guibutton&gt; button. To change other properties,
+     click on other buttons. 
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For more information on the &lt;interface&gt;Properties&lt;/interface&gt;
+     dialog, including descriptions of the &lt;guibutton&gt;OK&lt;/guibutton&gt;,
+     &lt;guibutton&gt;Apply&lt;/guibutton&gt;, &lt;guibutton&gt;Cancel&lt;/guibutton&gt;, and
+     &lt;guibutton&gt;Help&lt;/guibutton&gt; buttons, see &lt;xref
+     linkend="applet-properties-dialog"&gt;.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  
+   &lt;sect2 id="GNOMEAPPLET-bugs"&gt;
+    &lt;title&gt; Known Bugs and Limitations&lt;/title&gt;
+    &lt;para&gt;
+     There are no known bugs in the
+     &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-authors"&gt;
+    &lt;title&gt;Authors&lt;/title&gt;
+    &lt;para&gt;
+     This applet was writen by HACKER-NAME
+     &lt;email&gt;HACKER-EMAIL&lt;/email&gt;.  The documentation for this applet
+     which you are reading now was written by
+     YOUR-NAME &lt;email&gt;YOUR-EMAIL&lt;/email&gt;. For information on submitting
+     bug reports and suggestions for improvements, see &lt;xref
+     linkend="feedback"&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+  &lt;/sect1&gt;
+
+
+
+
+
+
+
+
+</fo:block>
+      </fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/graphics.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/graphics.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/graphics.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,164 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602072" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" margin-left="-4pc" keep-with-next="always" font-size="24.8832pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Graphics Test Document Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2901314">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Graphic</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">fileref:</fo:block>
+        <fo:block>
+          <fo:external-graphic src="url(file:emc2.png)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">entityref:</fo:block>
+        <fo:block>
+          <fo:external-graphic src="url(test/emc2.png)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">fileref, scale=200:</fo:block>
+        <fo:block>
+          <fo:external-graphic src="url(file:emc2.png)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">fileref, width=20, depth=20</fo:block>
+        <fo:block>
+          <fo:external-graphic src="url(file:emc2.png)" content-width="20pt" content-height="20pt" width="auto" height="auto"/>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2781409">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Inlinegraphic</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">fileref: <fo:external-graphic src="url(file:emc2.png)" content-width="auto" content-height="auto" width="auto" height="auto"/></fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">entityref: <fo:external-graphic src="url(test/emc2.png)" content-width="auto" content-height="auto" width="auto" height="auto"/></fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">fileref, scale=200: <fo:external-graphic src="url(file:emc2.png)" content-width="auto" content-height="auto" width="auto" height="auto"/></fo:block>
+      </fo:block>
+      <fo:block id="id2781383">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">MediaObject</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">fileref:</fo:block>
+        <fo:block>
+          <fo:external-graphic src="url(file:emc2.png)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">entityref:</fo:block>
+        <fo:block>
+          <fo:external-graphic src="url(test/emc2.png)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">fileref, scale=20:</fo:block>
+        <fo:block>
+          <fo:external-graphic src="url(file:emc2.png)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">fileref, width=200, depth=400:</fo:block>
+        <fo:block>
+          <fo:external-graphic src="url(file:emc2.png)" content-width="200pt" content-height="400pt" width="auto" height="auto"/>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">fileref, width=20, depth=20, alt=Alt text:</fo:block>
+        <fo:block>
+          <fo:external-graphic src="url(file:emc2.png)" content-width="20pt" content-height="20pt" width="auto" height="auto"/>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/gtest.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/gtest.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/gtest.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2601981" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. Graphics Test</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. Graphics Test</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A graphic by fileref:</fo:block>
+      <fo:block>
+        <fo:external-graphic src="url(file:emc2.gif)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">A graphic by entityref:</fo:block>
+      <fo:block>
+        <fo:external-graphic src="url(test/emc2.gif)" content-width="auto" content-height="auto" width="auto" height="auto"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/idxbook.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/idxbook.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/idxbook.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,271 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2601981" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Book Test Index Document Title</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="20.736pt" text-align="center" space-before="15.552pt">Book Subtitle</fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="12pt" text-align="center" space-before="2in">
+          <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Bookinfo Test Index Document Title: Book Subtitle</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Foreword</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781382"><fo:page-number-citation ref-id="id2781382"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 First Chapter</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="chapter"><fo:page-number-citation ref-id="chapter"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> First Sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2785070"><fo:page-number-citation ref-id="id2785070"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">2 Second Chapter</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ch2"><fo:page-number-citation ref-id="ch2"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">A First Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2781695"><fo:page-number-citation ref-id="id2781695"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Index</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2786180"><fo:page-number-citation ref-id="id2786180"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781382" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Foreword</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph<fo:wrapper id="id2781398"><!--paragraph, test--></fo:wrapper>.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="chapter" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. First Chapter</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. First Chapter</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph<fo:wrapper id="id2785047"><!--paragraph--></fo:wrapper>.</fo:block>
+      <fo:block id="id2785070">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">First Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Another paragraph<fo:wrapper id="id2785087"><!--paragraph, another--></fo:wrapper>.</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="ch2" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 2. Second Chapter</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 2. Second Chapter</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph.
+<fo:wrapper id="id2785154"><!--the ap1--></fo:wrapper>
+<fo:wrapper id="id2785186"><!--the ap1--></fo:wrapper>
+<fo:wrapper id="id2901214"><!--ap2--></fo:wrapper>
+
+<fo:wrapper id="id2785123"><!--bp1, bp1bs1--></fo:wrapper>
+<fo:wrapper id="id2781458"><!--bp2--></fo:wrapper>
+
+<fo:wrapper id="id2781504"><!--cp1, cp1cs1, cp1cs1ct1--></fo:wrapper>
+
+<fo:wrapper id="id2781543"><!--cp2--></fo:wrapper>
+<fo:wrapper id="id2781567"><!--cp2see, cp2seesec--></fo:wrapper>
+
+<fo:wrapper id="id2781606"><!--dp1, dp1ds1--></fo:wrapper>
+<fo:wrapper id="id2781638"><!--dp1, dp1ds2--></fo:wrapper>
+<fo:wrapper id="id2781670"><!--dp2--></fo:wrapper></fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2781695" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix A. First Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix A. First Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.
+<fo:wrapper id="id2781713"><!--ap1--></fo:wrapper>
+<fo:wrapper id="id2781737"><!--ap2--></fo:wrapper>
+
+<fo:wrapper id="id2781761"><!--bp1, bp1bs1--></fo:wrapper>
+<fo:wrapper id="id2781793"><!--bp2--></fo:wrapper>
+
+<fo:wrapper id="id2781716"><!--cp1, cp1cs1, cp1cs1ct1--></fo:wrapper>
+<fo:wrapper id="id2785989"><!--cp2--></fo:wrapper>
+
+<fo:wrapper id="id2786011"><!--dp1, dp1ds1--></fo:wrapper>
+<fo:wrapper id="id2786041"><!--dp1, dp1ds2--></fo:wrapper>
+<fo:wrapper id="id2786073"><!--dp2--></fo:wrapper>
+
+<fo:wrapper id="id2786097"><!--1 digit test--></fo:wrapper>
+<fo:wrapper id="id2786121"><!--[square bracket test]--></fo:wrapper>
+<fo:wrapper id="id2786144"><!--2 digit test--></fo:wrapper>
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2786180" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Index</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/kwrite.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/kwrite.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/kwrite.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2549 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602100" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">the kwrite handbook</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="12pt" text-align="center" space-before="2in"><fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">thad mcginnis<fo:block><fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em"><fo:inline font-family="Courier">&lt;ctmcginnis at compuserve.com&gt;</fo:inline></fo:block></fo:block></fo:block>jochenwilhelmyprincipal developerdigisnap at cs.tu-berlin.deglenparkeradditional developmentglenebob at nwlink.commichaelkochadditional developmentkoch at kde.orgchristiantibirnaoriginal help documenttibirna at kde.orglauriwattsreviewervampyr@atconnex.net</fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>the kwrite handbook</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by thad mcginnisjochen wilhelmy<fo:block><fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em"><fo:inline font-family="Courier">&lt;digisnap at cs.tu-berlin.de&gt;</fo:inline></fo:block></fo:block>glen parker<fo:block><fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em"><fo:inline font-family="Courier">&lt;glenebob at nwlink.com&gt;</fo:inline></fo:block></fo:block>michael koch<fo:block><fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em"><fo:inline font-family="Courier">&lt;koch at kde.org&gt;</fo:inline></fo:block></fo:block>christian tibirna<fo:block><fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em"><fo:inline font-family="Courier">&lt;tibirna at kde.org&gt;</fo:inline></fo:block></fo:block>lauri watts<fo:block><fo:block wrap-option="no-wrap" text-align="start" linefeed-treatment="preserve" white-space-collapse="false" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em"><fo:inline font-family="Courier">&lt;vampyr at atconnex.net&gt;</fo:inline></fo:block></fo:block></fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">Copyright &#xA9; 2000, 2001 thad mcginnis</fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">this handbook describes kwrite version 2.0</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">kwrite is a text editor for kde 2.0</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="8pt">
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">permission is granted to copy, distribute and/or modify this
+document under the terms of the gnu free documentation license,
+version 1.1 or any later version published by the free software
+foundation; with no invariant sections, with no front-cover texts, and
+with no back-cover texts.  a copy of the license is included in <fo:basic-link internal-destination="gnu-fdl">the section entitled gnu free documentation license</fo:basic-link>.</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 introduction</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="introduction"><fo:page-number-citation ref-id="introduction"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">2 some fundamentals</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="on-screen-fundamentals"><fo:page-number-citation ref-id="on-screen-fundamentals"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> drag and drop</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="drag-and-drop"><fo:page-number-citation ref-id="drag-and-drop"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> command line options</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="command-line-options"><fo:page-number-citation ref-id="command-line-options"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block start-indent="4pc">
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> specify a file</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="specify-a-file"><fo:page-number-citation ref-id="specify-a-file"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> specify a file on the internet</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="editing-files-on-the-internet"><fo:page-number-citation ref-id="editing-files-on-the-internet"/></fo:basic-link></fo:inline>
+            </fo:block>
+            <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+              <fo:inline keep-with-next.within-line="always"> other command line options</fo:inline>
+              <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="other-command-line-options"><fo:page-number-citation ref-id="other-command-line-options"/></fo:basic-link></fo:inline>
+            </fo:block>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> key bindings</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="keybindings"><fo:page-number-citation ref-id="keybindings"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">3 the menu entries</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="the-menu-entries"><fo:page-number-citation ref-id="the-menu-entries"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> the file menu</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="file"><fo:page-number-citation ref-id="file"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> the edit menu</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="edit"><fo:page-number-citation ref-id="edit"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> the go menu</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="go"><fo:page-number-citation ref-id="go"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> the tools menu</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="tools"><fo:page-number-citation ref-id="tools"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> the settings menu</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="settings"><fo:page-number-citation ref-id="settings"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> the help menu</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="help"><fo:page-number-citation ref-id="help"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">4 configure kwrite</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="pref-dialog"><fo:page-number-citation ref-id="pref-dialog"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> colors</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="prefcolors"><fo:page-number-citation ref-id="prefcolors"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> indent</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="pref-indent"><fo:page-number-citation ref-id="pref-indent"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> select</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="pref-select"><fo:page-number-citation ref-id="pref-select"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> edit</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="pref-edit"><fo:page-number-citation ref-id="pref-edit"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> spelling</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="prefspellchecker"><fo:page-number-citation ref-id="prefspellchecker"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">5 highlighting</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="pref-highlighting"><fo:page-number-citation ref-id="pref-highlighting"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">6 credits and licenses</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="credits"><fo:page-number-citation ref-id="credits"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">A installation</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="installation"><fo:page-number-citation ref-id="installation"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="introduction" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. introduction</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. introduction</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">kwrite is more than a text editor for the kde desktop. it is meant
+to be a programmer's editor, and could be considered as at least a partial
+alternative to more powerful editors.  it may be best used in conjunction
+with konqueror for source file browsing for
+different languages. kwrite also works very well as a simple text editor.
+one of kwrite's main features is the colorized syntax, customized for
+many different programming languages such as: c/c++, java&#x2122;, python, perl,
+bash, modula 2, html, and ada.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="on-screen-fundamentals" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 2. some fundamentals</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 2. some fundamentals</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">kwrite is very simple to use. anyone that has used a text editor should
+have no problems. </fo:block>
+      <fo:block id="drag-and-drop">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">drag and drop</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">kwrite uses the kde drag and drop protocol. files may be dragged  
+and dropped onto kwrite from the desktop,  
+konqueror or some remote ftp site opened in one  
+of konqueror's windows. </fo:block>
+      </fo:block>
+      <fo:block id="command-line-options">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">command line options</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">though kwrite may most often be started from the kde program menu,  
+or a desktop icon, it can also be opened at the command line prompt of a  
+terminal window.  there are a few useful options that are available when  
+doing this.</fo:block>
+        <fo:block id="specify-a-file">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">specify a file</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">by specifying the path and name of a particular file the user can  
+have kwrite open (or create) that file immediately upon startup.  this
+option might look something like the following:</fo:block>
+          <fo:block>
+            <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em"><fo:inline font-family="Courier">%</fo:inline> <fo:inline font-weight="bold" font-family="Courier"><fo:inline font-weight="bold">kwrite</fo:inline> <fo:inline font-family="Courier"><fo:inline font-style="italic" font-family="Courier">/home/myhome/docs/myfile.txt</fo:inline></fo:inline></fo:inline></fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="editing-files-on-the-internet">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">specify a file on the internet</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">the above-mentioned method could even be used to open files on the
+internet (if the user has an active connection at the time.)  an example of
+this might look like the following:</fo:block>
+          <fo:block>
+            <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em"><fo:inline font-family="Courier">%</fo:inline> <fo:inline font-weight="bold" font-family="Courier"><fo:inline font-weight="bold">kwrite</fo:inline> <fo:inline font-family="Courier"><fo:inline font-style="italic" font-family="Courier">ftp://ftp.kde.org/pub/kde/welcome.msg</fo:inline></fo:inline></fo:inline></fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="other-command-line-options">
+          <fo:block>
+            <fo:block margin-left="-4pc" font-family="Helvetica">
+              <fo:block keep-with-next.within-column="always">
+                <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">other command line options</fo:block>
+              </fo:block>
+            </fo:block>
+          </fo:block>
+          <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">the following command line help options are available</fo:block>
+          <fo:list-block id="id2873574" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item id="id2873580" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>
+                  <fo:inline>
+                    <fo:inline font-weight="bold" font-family="Courier"><fo:inline font-weight="bold">kwrite</fo:inline> <fo:inline font-family="Courier">--help</fo:inline></fo:inline>
+                  </fo:inline>
+                </fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block>this lists the most basic options available at the command  
+line.</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item id="id2873639" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>
+                  <fo:inline>
+                    <fo:inline font-weight="bold" font-family="Courier"><fo:inline font-weight="bold">kwrite</fo:inline> <fo:inline font-family="Courier">--help-qt</fo:inline></fo:inline>
+                  </fo:inline>
+                </fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block>this lists the options available for changing the way  
+kwrite interacts with qt&#x2122;.</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item id="id2873731" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>
+                  <fo:inline>
+                    <fo:inline font-weight="bold" font-family="Courier"><fo:inline font-weight="bold">kwrite</fo:inline> <fo:inline font-family="Courier">--help-kde</fo:inline></fo:inline>
+                  </fo:inline>
+                </fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block>this lists the options available for changing the way  
+kwrite interacts with kde.</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item id="id2873536" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>
+                  <fo:inline>
+                    <fo:inline font-weight="bold" font-family="Courier"><fo:inline font-weight="bold">kwrite</fo:inline> <fo:inline font-family="Courier">--help-all</fo:inline></fo:inline>
+                  </fo:inline>
+                </fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block>this lists all of the command line options.</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item id="id2778431" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>
+                  <fo:inline>
+                    <fo:inline font-weight="bold" font-family="Courier"><fo:inline font-weight="bold">kwrite</fo:inline> <fo:inline font-family="Courier">--author</fo:inline></fo:inline>
+                  </fo:inline>
+                </fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block>lists kwrite's authors in the terminal window</fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+            <fo:list-item id="id2778507" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item-label end-indent="label-end()">
+                <fo:block>
+                  <fo:inline>
+                    <fo:inline font-weight="bold" font-family="Courier"><fo:inline font-weight="bold">kwrite</fo:inline> <fo:inline font-family="Courier">--version</fo:inline></fo:inline>
+                  </fo:inline>
+                </fo:block>
+              </fo:list-item-label>
+              <fo:list-item-body start-indent="body-start()">
+                <fo:block>lists version information for qt&#x2122;, kde, and kwrite. also available through <fo:inline font-weight="bold" font-family="Courier"><fo:inline font-weight="bold">kwrite</fo:inline> <fo:inline font-family="Courier">-v</fo:inline></fo:inline> </fo:block>
+              </fo:list-item-body>
+            </fo:list-item>
+          </fo:list-block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="keybindings">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">key bindings</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">many of the key bindings (shortcuts) are configurable by way of the <fo:basic-link internal-destination="settings">settings</fo:basic-link> menu.  by default kwrite honors the  
+following key bindings.</fo:block>
+        <fo:table>
+          <fo:table-column column-number="1"/>
+          <fo:table-column column-number="2"/>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">insert</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> toggle between insert and overwrite mode. when in insert mode the
+editor will add any typed characters to the text while pushing along any data to
+the right of the text cursor. overwrite mode causes the entry of each character
+to eliminate the character immediately to the right of the text
+cursor.</fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">left arrow</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">move the cursor one character to the left </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">right arrow</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> move the cursor one character to the right </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">up arrow</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> move the cursor up one line  </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">down arrow</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> move the cursor down one line </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">page up</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> move the cursor up one page  </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">page down</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">move the cursor down one page  </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">backspace</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> delete the character to the left of the cursor </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">home</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> move the cursor to the beginning of the line </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">end</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> move the cursor to the end of the line </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">delete</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">delete the character to the right of the cursor (or any selected  
+text)</fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">shift-left arrow</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> mark text one character to the left </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">shift-right arrow</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> mark text one character to the right </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">f1</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> help</fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">shift-f1</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    <fo:basic-link internal-destination="whats-this">what's this?</fo:basic-link>
+                  </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-f</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    <fo:basic-link internal-destination="find"> find</fo:basic-link>
+                  </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">f3</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    <fo:basic-link internal-destination="find-again"> find again</fo:basic-link>
+                  </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-c</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> copy the marked text to the clipboard. </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-m</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">set a bookmark</fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-n</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> <fo:basic-link internal-destination="new">new</fo:basic-link> document</fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-p</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:basic-link internal-destination="print">print</fo:basic-link> </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-q</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">quit - close active copy of editor </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-r</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    <fo:basic-link internal-destination="replace"> replace</fo:basic-link>
+                  </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-s</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">invokes the <fo:basic-link internal-destination="save">save</fo:basic-link> command.</fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-v</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> paste the clipboard text into line edit. </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-x</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">delete the marked text and copy it to the clipboard. </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-z</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    <fo:basic-link internal-destination="undo">undo</fo:basic-link>
+                  </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">ctrl-shift-z</fo:block>
+                </fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                    <fo:basic-link internal-destination="redo">redo</fo:basic-link>
+                  </fo:block>
+                </fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="the-menu-entries" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 3. the menu entries</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 3. the menu entries</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="file">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">the file menu</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2902425" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2902431" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>file-&gt;new (<fo:inline font-weight="bold">ctrl-n</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this starts a new document in the editor. if there is a current  
+document with unsaved changes the user is given a chance to save it.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2902572" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>file-&gt;0pen (<fo:inline font-weight="bold">ctrl-o</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this command opens a file.  it does this by means of a dialog box  
+which allows the user to navigate the file system.  the dialog operates  
+like a small file manager. clicking on directories displayed in the
+central window directs the dialog to enter that directory - displaying its  
+contents.  there is an entry/dropdown box which can be used to type in  
+directly the location and name of the file or by clicking the arrow at the  
+side choose from a dropdown list of recently used locations. below this is  
+a filter which similarly may have data entered directly or chosen from a  
+dropdown list of recent filter types.  the filter facility lets only files  
+that meet its specifications be displayed in the central window. if the  
+filter contained text such as <fo:inline font-family="Courier">*.txt</fo:inline> then only files  
+with the txt extension would be visible in the selection window. below the filter
+is a status bar giving information about the number of files and subdirectories
+within the current directory.</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">the  toolbar, which is located at the top of the dialog, has left and right
+arrow buttons that let the user move back and forth through previously selected
+directories as well as an up arrow button for moving up the directory tree. the
+button with the little house takes the user to his or her home directory and the one
+with the two arrows curved in on each other updates the view of the current
+directory. the flag button lets the user set a new bookmark at the current directory
+or go to  one that was previously set. 
+ the last button on the toolbar allows you to create a new
+directory, and finally  there is dropdown box with a list of some commonly
+frequented directories.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2902770" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>file-&gt;open  
+recent</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this is a shortcut to open recently saved documents. clicking on
+this item opens a list to the side of the menu with several of the most recently
+saved files. clicking on a specific file will open it in kwrite - if the file
+still resides at the same location. </fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2902877" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>file-&gt;save (<fo:inline font-weight="bold">ctrl-s</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this saves the current document.  if there has already been a
+save of the document then this will overwrite the previously saved file without
+asking for the user's consent.  if it is the first save of a new document the
+save as dialog (described below) will be invoked.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2903022" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>file-&gt;save
+as</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this allows a document to be saved with a new file name. this is
+done by means of the file dialog box described above in the <fo:basic-link internal-destination="open">open</fo:basic-link> section of this help file.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2903134" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>file-&gt;print (<fo:inline font-weight="bold">ctrl-p</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>opens a simple print dialog allowing the user to specify what, where, and how to print</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2903275" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>file-&gt;new window</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this creates a new window, i.e. a new instance of kwrite. in this way the user can easily work  
+on more than one file at a time with kwrite.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2903400" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>file-&gt;new view</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this creates a new view of the current document, i.e., a new instance of
+kwrite (as explained in the previous entry) but containing the same
+document.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2903513" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>file-&gt;quit (<fo:inline font-weight="bold">ctrl-q</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this will close the editor window, if you have more than one
+instance of kwrite running, through the new view or
+new window menu items, those instances will not be
+closed.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="edit">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">the edit menu</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2903734" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2903741" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>edit-&gt;undo (<fo:inline font-weight="bold">ctrl-z</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this is used to eliminate or reverse the most recent user action or operation. just what  
+constitutes such an action may be better understood by referring to the <fo:basic-link internal-destination="group-undos">group undos</fo:basic-link> portion of this help file.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2903904" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>edit-&gt;redo (<fo:inline font-weight="bold">ctrl-shift-z</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this will reverse the most recent change (if any) made using undo</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904060" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>edit-&gt;undo/redo history</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this will call a display box showing a list of the most recent actions on  
+the left and another list of actions which have been 'undone' on the right.  
+there are also three buttons at the right of the box labeled  
+undo, redo, and  
+close.  clicking on the undo  
+button will cause the action at the top of the undo list to be reversed which  
+will place that particular action at the top of the redo list. likewise,  
+clicking on the redo button will reinstate the reversed  
+action and move it back to the top of the undo list.  clicking on an item below  
+the top item in either list will select all the items from the top down to that  
+point.  a subsequent click on the corresponding button will cause all the  
+selected actions to be undone or redone accordingly.  this would be particularly  
+useful when the user knows precisely the point to which she or he would like to  
+proceed - making it unnecessary to go through a series of single undo or redo  
+actions.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904242" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>edit-&gt;cut (<fo:inline font-weight="bold">ctrl-x</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this command deletes the current selection and places it on the clipboard.  the  
+clipboard is a feature of kde that works invisibly to provide a way to transfer data between  
+applications.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904387" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>edit-&gt;copy (<fo:inline font-weight="bold">ctrl-c</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this copies the currently selected text to the clipboard so that it may be  
+pasted elsewhere.  the clipboard is a feature of kde that works invisibly to  
+provide a way to transfer data between applications.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904531" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>edit-&gt;paste (<fo:inline font-weight="bold">ctrl-v</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this will insert the contents of the clipboard at the cursor position. the  
+clipboard is feature of kde that works invisibly to provide a way to transfer  
+data between applications.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904674" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>edit-&gt;select all (<fo:inline font-weight="bold">ctrl-a</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this will select the entire document. this could be very useful for  
+copying the entire file to another application.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904818" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>edit-&gt;invert selection</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this selects any unselected text while unselecting any selected text -  
+effectively reversing the current state of selection.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2904912" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>edit-&gt;find (<fo:inline font-weight="bold">ctrl-f</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this opens the find dialog which is used to specify the text to  
+find in the document. there is small text box for entering the search  
+pattern which also doubles as a dropdown box. clicking on the dropdown arrow at  
+the side of the box makes available other recent search patterns. other  
+parameters are included to make the search more efficient. selecting  
+case sensitive will limit finds to entries that match the  
+case (upper or lower) of each of the characters in the search  
+pattern. find backwards directs the search to proceed in an  
+upwardly direction. the selected text option keeps the  
+search within currently selected text. checking whole words
+only prevents the search from stopping on words that contain the
+searched for pattern. the search from cursor option begins  
+the search from the current position of the cursor within the document rather  
+than from the beginning.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905145" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>edit-&gt;find next (<fo:inline font-weight="bold">f3</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this repeats the last find operation, if any, without calling the find  
+dialog box.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905275" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>edit-&gt;replace (<fo:inline font-weight="bold">ctrl-r</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this command opens the replace dialog box.  the replace dialog is  
+almost identical to the above-mentioned find dialog.  in addition to the features in
+the find dialog it contains a replace with: text
+entry/dropdown box.  using this dialog the user can specify both the text to be found
+and text with which to replace it.  the additional prompt
+on replace option allows the user to have kwrite ask for
+confirmation before each replacement.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905462" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>
+edit-&gt;insert file</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this opens the file <fo:basic-link internal-destination="open">open</fo:basic-link> dialog box whereby the
+user can insert a complete file in the open document.  the the contents of
+the file will be entered at the position of the blinking text
+cursor.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="go">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">the go menu</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2905644" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2905651" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>go-&gt;go to line</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this opens the goto line dialog box which is used to have the cursor jump  
+to a particular line (specified by number) in the document.  the line number may  
+be entered directly into the text box or graphically by clicking on the up or  
+down arrow spin controls at the side of the text box. the little up arrow will  
+increase the line number and the down arrow decrease it.  there is also a slide  
+control to the right of the text box which allows the user to move the goto  
+point in the document in an analog manner.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905748" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>go-&gt;add marker (<fo:inline font-weight="bold">ctrl-m</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this creates a marker in the document at the line where the cursor is  
+located and places it at the bottom of the list of markers located at the
+bottom of the go menu.</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">markers are points within a kwrite document
+marked for easy return. if  the user thinks (s)he may need to return to a specific
+point (s)he may by way of this feature instruct kwrite to remember it. </fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2905927" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>go-&gt;set marker</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this creates a marker in the document at the line where the cursor is  
+located, and allows the user to choose its position in the list of bookmarks  
+which is appended at the bottom of this menu item.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2906020" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>go-&gt;clear markers</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this command will remove all the markers from the docucument as well as the
+list of markers which is appended at the  bottom of this menu item.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">at the bottom of this menu, a list of markers appears if any  
+markers are available for this window.</fo:block>
+      </fo:block>
+      <fo:block id="tools">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">the tools menu</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2906160" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2906167" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>tools-&gt;spelling...</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this initiates the spell checking program - a program
+designed to help the user catch and correct any spelling errors.
+clicking on this entry will start the checker and bring up the speller dialog
+box through which the user can control the process.  there are three text boxes
+lined up vertically in the center of the dialog with their corresponding labels
+just to the left.  starting at the top they are:</fo:block>
+              <fo:list-block id="id2906269" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item id="id2906276" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>misspelled word:</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>here, the spell checker indicates the word currently under
+consideration.  this happens when the checker encounters a word not in its
+dictionary - a file containing a list of correctly spelled words against which
+it compares each word in the editor.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906320" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>replacement:</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block> if the checker has any similar words in its dictionary the
+first one will be listed here.  the user can accept the suggestion, type in his
+or her own correction, or choose a different suggestion from the next
+box.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906364" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>suggestions:</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block> the checker may list here a number of possible replacements for
+the word under consideration.  clicking on any one of the suggestions will cause
+that word to be entered in the replacement: box,
+above.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">on the right side of the dialog box are 6 buttons that allow the user to
+control the spell check process.  they are:</fo:block>
+              <fo:list-block id="id2906432" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item id="id2906439" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>replace</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block> this button has the checker replace the word under
+consideration in the document with the word in the
+replacement: box.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906494" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>replace all</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block> this button causes the checker to replace not only the current
+misspelled word: but to automatically make the same
+substitution for any other occurences of this misspelled
+word: in the document.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906563" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>ignore</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>activating this button will have the checker move on without
+making any changes.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906604" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>ignore all</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block> this button tells the checker to do nothing with the current
+misspelled word: and to pass over any other instances of
+the same word.</fo:block>
+                    <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2906655">
+                      <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+                      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">this only applies to the current spell check
+run.  if the checker is run again later it will stop on this same
+word.</fo:block>
+                    </fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906677" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>add</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>pressing this button adds the word in the misspelled
+word: box to the checker's dictionary. this means that in the future
+the checker will always consider this word to be correctly
+spelled.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906733" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>stop</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block> this button stops the spell check process.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">located horizontally along the bottom of the spell check dialog is a
+progress bar.  as the checking process proceeds the bar will fill from left to
+right providing a graphical representation of how far along in the document the
+process has reached.  in addition, the progress is displayed numerically in
+the center of the progress bar.</fo:block>
+              <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2906795">
+                <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">a numerical display of the spell check
+process is simultaneously displayed in the status bar of the editor.  the <fo:basic-link internal-destination="show-statusbar">status bar</fo:basic-link> is the horizontal strip at the bottom
+of the editor just outside of the text entry area.</fo:block>
+              </fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">two more buttons are located below the progress bar.  they are:</fo:block>
+              <fo:list-block id="id2906844" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item id="id2906851" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>help</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block> this invokes the kde help system starting at the kwrite help
+pages (this document).</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906905" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>cancel</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block> this button cancels the spell check process.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2906946" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>tools-&gt;indent</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>this increases the paragraph's indentation by one step. the size of the
+step depends on the <fo:basic-link internal-destination="pref-indent"> indentation  
+settings</fo:basic-link>.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2907045" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>tools-&gt;unindent</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>this reduces the paragraph's indentation by one step. the size of the step  
+depends on the <fo:basic-link internal-destination="pref-indent"> indentation settings</fo:basic-link>.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2907140" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>tools-&gt;clean
+indentation</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>not yet implemented</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2907217" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>tools-&gt;comment</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>this adds one space to the beginning of the line
+where the text cursor is located or to the beginning of any
+selected lines.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2907285" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label end-indent="label-end()">
+                    <fo:block>
+                      <fo:inline>tools-&gt;uncomment</fo:inline>
+                    </fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block>this removes one space (if any exist) from the beginning of the line
+where the text cursor is located or from the beginning of any
+selected lines.</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="settings">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">the settings menu</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2907398" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2907405" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>settings-&gt;show toolbar</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>when checked, this displays a movable toolbar containing buttons used to  
+initiate frequently used commands. when unchecked the toolbar is hidden.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2907499" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>settings-&gt;show statusbar</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>when checked, this displays a small bar at the bottom of the editor  
+containing information about the status of the current document.  when unchecked  
+the statusbar is hidden.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2907593" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>settings-&gt;show path</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>when selected, this displays in the title bar the path (its location in the
+file system) of the current document.  when unchecked the path is hidden.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2907686" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>settings-&gt;configure key bindings</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this command opens a dialog box whereby the <fo:basic-link internal-destination="keybindings">key bindings</fo:basic-link> may be changed.  a display window at
+the top of the dialog box shows the list of commands (actions) that can have
+keyboard shortcuts.  below the display are three radio buttons.  the user may choose
+between no key, default key, and custom key.  (note that a set of radio buttons only
+allows the selection of one of the offered items - in the way that buttons on a car
+radio only offer the selection of one preset station.  also, the default key
+selection  is only available for those commands that actually have a 'default'
+shortcut.)  selecting the custom key option activates the three check boxes and key
+button at the bottom of the dialog. the user may then select a key
+combination for the command in question by means of the check boxes and key
+button. for example, with the about kde command selected in the display window,  
+the user could select <fo:inline font-weight="bold">ctrl</fo:inline> and <fo:inline font-weight="bold">alt</fo:inline>, click on  
+the key button, and then press the <fo:inline font-weight="bold">k</fo:inline> key on the keyboard.  this  
+would mean that anytime he or she held down the <fo:inline font-weight="bold">ctrl</fo:inline> and  
+<fo:inline font-weight="bold">alt</fo:inline> buttons and pressed <fo:inline font-weight="bold">k</fo:inline> (while using  
+kwrite) the about kde display box would be called. </fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2907910" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>settings-&gt;configure toolbars</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this will open the dialog whereby the toolbar configuration may
+be changed.   the user can choose which shortcut buttons should appear on the  
+toolbar. a display window on the left lists the commands available to placed
+on the toolbar.  a display on the right lists those commands already on the  
+toolbar.  a set of four arrow buttons between the two displays manipulates the  
+selections.  the right pointing arrow places any command selected in the left  
+pane onto the right pane, i.e., it is added to the toolbar.  
+the left arrow does just the opposite, removing any action selected in the right  
+window from the toolbar.  the up and down pointing arrows change the position of  
+an action selected in the right window which changes the position of its button  
+in the toolbar.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2908024" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>settings-&gt;preferences</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this menu item opens a dialog whereby several different <fo:basic-link internal-destination="pref-dialog">settings</fo:basic-link> may be adjusted.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2908133" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>settings-&gt;configure
+highlighting</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>opens a dialog box allowing configuration of the syntax  
+highlighting.  the dialog is described in <fo:basic-link internal-destination="pref-highlighting">Chapter 5. highlighting</fo:basic-link>.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2908232" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>settings-&gt;vertical  
+selection</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this is used to turn on or off the vertical selection feature.  vertical  
+selection allows text to be selected by column as well as by row.  in other  
+words with this feature the user is able to select text contained in only  
+particular contiguous columns and rows.  in affect the user can select a  
+rectangular area of text anywhere in the document.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2908327" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>settings-&gt;highlight mode</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this allows the user to choose the style of color highlighting which the  
+editor uses to display the text. the styles are selected by programming
+language. the font/color information is not stored with the document.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2908419" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>settings-&gt;end of line</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this opens a sub-menu from which the user can select the type of &#x2018;end of  
+line&#x2019; code for kwrite to use, i.e., the accepted standard  
+used by unix, mac&#xAE; or msdos/windows&#xAE; systems.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="help">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">the help menu</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2908604" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2908610" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>help-&gt;contents (<fo:inline font-weight="bold">f1</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this invokes the kde help system starting at the kwrite help pages (this document).</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2908751" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>help-&gt;what's this? (<fo:inline font-weight="bold">shift-f1</fo:inline>)</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this changes the mouse cursor to a combination arrow and question mark.  
+clicking on items within kwrite with this arrow will open a help window (if  
+one exists for the particular item) explaining the item's function.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2908910" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>help-&gt;report bug</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this calls a dialog box to help
+the user help the kde team to track down and solve any
+problems(bugs) in the program.  the dialog attempts to do this by
+means of email using the information given by the user.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2909009" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>help-&gt;about kwrite</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this will display version and author information</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2909098" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>help-&gt;about kde</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this displays the kde version and other basic information.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="pref-dialog" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 4. configure kwrite</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 4. configure kwrite</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">selecting
+settings-&gt;configure
+kwrite from the menu brings up the configure-kwrite
+dialog box.  this dialog can be used to alter a number of different settings.  the
+settings available for change vary according to which category the user chooses from
+a vertical list on the left side of the dialog.  by means of three buttons
+along the bottom of the box the user can control the process.  she or he may invoke
+the help system, accept the current settings and close the
+dialog by means of the ok button, or
+cancel the process. the categories
+colors, indent,
+select, edit, and
+spelling are detailed below.</fo:block>
+      <fo:block id="prefcolors">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">colors</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">this section provides access to <fo:basic-link internal-destination="pref-color-settings">five different color settings</fo:basic-link>,  
+described below.  each of these settings may be changed by clicking on its  
+corresponding button.  these are special wide buttons that are the color of  
+the current setting.  clicking on one of the buttons calls a special color  
+dialog box used to change the setting.</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">the color dialog box provides a convenient and graphical way to
+select a color.  in the upper left of the box is a rectangular display of a  
+spectrum of colors. to the immediate right of this, is vertical bar  
+displaying a range of intensity from the most dark at the bottom to the  
+most light at the top.  the user may select and adjust a color by clicking  
+in these two boxes. clicking in the rectangular display selects a  
+particular mix of red, green, and blue colors and in the vertical bar  
+selects a level of intensity (value).  the various color attributes are displayed  
+in numerical form in small text boxes located directly below the spectral  
+rectangle and the user can see them change as the color is adjusted.  these  
+attributes include the mix of the basic color components (red, green, and  
+blue) as well as hue and saturation levels.  alternatively the user can  
+enter figures directly in these boxes.  there is also a square at the  
+bottom center of the dialog box which displays the color which is under  
+consideration at any time.  to the right of this display is another text  
+box labeled html: this shows the user the color code  
+that would be used to specify the particular displayed color in  
+html code which is widely used for web pages.</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">in addition to the above, the color dialog allows the capture of any  
+color currently displayed on the desktop or in another program.  clicking  
+on the button with the dropper icon (located on the right side of the  
+dialog box,) changes the shape of the mouse cursor to a set of crosshairs.  
+clicking again will pick up the color attributes of whatever color is  
+displayed under the cross hairs.</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">furthermore the user has the option of adding any color to a personal
+palette of &#x201C;custom colors&#x201D; by clicking on the wide button labeled
+add to custom colors (which is located directly above the
+display square.)  this adds the current color to the custom color palette.  this
+palette and any other available palettes can be displayed using the drop down
+selection box located directly above the palette display at the top right of the
+dialog box.  besides the custom colors, the user can access a number of
+pre-prepared palettes.</fo:block>
+        <fo:list-block id="id2909553" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="pref-color-settings" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>background</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>here the user can specify a color for the general background of  
+kwrite.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2909622" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>text background</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this is used to set a particular color to display in the  
+background of those areas of the document containing text.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2909664" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>selected</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this allows the user to select a color to be used for indicating  
+selected (or highlighted) portions of the document.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2909706" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>found</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this specifies the preferred color with which to mark text  
+encountered as the result of a <fo:basic-link internal-destination="find">find</fo:basic-link>  
+operation.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2909764" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>selected + found</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this sets the color for text that has not only been found as in  
+the previous entry above but that has also been selected.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="pref-indent">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">indent</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2909831" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2909838" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>auto indent</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this causes  
+new lines to begin with the same indentation level as the previous  
+line.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2909879" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>indent with spaces</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this  
+replaces tabs with the number of spaces selected in the tab width window in  
+the <fo:basic-link internal-destination="pref-edit">edit</fo:basic-link> section of the preferences  
+dialog.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2909941" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>backspace key indents</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this allows the  
+backspace key to be used to  
+indent.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910008" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>tab key indents</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this  
+allows the tab key to be used to  
+indent.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910075" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>keep indent profile</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this  
+retains current indentation settings for future documents.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910116" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>keep extra spaces</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>indentations of more than the selected number of spaces  
+will not be shortened.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="pref-select">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">select</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2910184" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2910190" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>persistent selections</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this prevents key input or cursor movement by way of the  
+arrow keys from causing the elimination of text  
+selection. </fo:block>
+              <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2910229">
+                <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+                <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">(note: if the overwrite selections option is  
+activated then any typed character input or paste operation will replace  
+the selected text.)</fo:block>
+              </fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910251" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>overwrite selections</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>any keyed character input or paste operation will replace  
+the selected text.  </fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910292" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>mouse autocopy</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>any text  
+selected with the mouse will be automatically copied to the  
+clipboard.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910334" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>x11-like single selection</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>not implemented yet.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910374" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>vertical selections</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this  
+activates the <fo:basic-link internal-destination="vertical-selection">vertical selection</fo:basic-link>  
+option.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910435" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>toggle old</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>not yet implemented</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="pref-edit">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">edit</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:list-block id="id2910493" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2910500" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>word wrap</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>word wrap is a feature that causes the editor to
+automatically start a new line of text and move (wrap) the cursor to the
+beginning of that new line.  kwrite will automatically start a new line of text
+when  the current line reaches the length specified by the <fo:basic-link internal-destination="pref-wrap-words-at">wrap words at:</fo:basic-link>  
+option.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910586" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>wrap words  
+at:</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>if the <fo:basic-link internal-destination="pref-word-wrap">word wrap</fo:basic-link> option is selected this entry  
+determines the length (in characters) at which the editor will
+automatically start a new line.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910658" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>replace tabs by  
+spaces</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>kwrite will replace any tabs  
+with the number of spaces indicated in the <fo:basic-link internal-destination="pref-tab-width">tab width:</fo:basic-link> entry.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910740" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>tab width</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>if the <fo:basic-link internal-destination="pref-word-wrap">replace tabs by spaces</fo:basic-link>  
+option is selected this entry determines the number of spaces with which
+the editor will automatically replace tabs.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910809" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>remove trailing spaces</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>kwrite will automatically eliminate extra spaces at the  
+ends of lines of text.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910861" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>auto brackets</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>when the
+user types a left bracket ([,(, or {) kwrite automatically
+enters the right bracket (}, ), or ]) to the right of the
+cursor.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2910916" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>group undos</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>groups of similar actions are to be considered a single
+<fo:basic-link internal-destination="undo">undo</fo:basic-link> step by kwrite. in other words, a series
+of regular character keystrokes (words or expressions) would be considered
+one step and therefore be removed by a single undo operation.  if the
+series of character entries were interrupted by a non-character entry
+operation (such as a backspace), invoking undo would only remove the
+entries made since that operation. the next undo would then reverse that
+operation and so on.</fo:block>
+              <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"> when this option is not selected kwrite considers
+each keystroke to be a single step.  so if the user (with this option
+active) were to type several words or even sentences without having to make
+corrections or cut or paste or some other non-character entry operation
+then a click of the undo button would eliminate all that had been typed
+since the last non-entry operation.  a second click would eliminate that
+operation and a third any operation or series of entries that occurred
+before the operation and so on.  when not selected three clicks of the undo
+button would only remove the last three letters typed, or the last three
+operations.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2911036" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>show tabs</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>the editor will display a symbol to indicate the presence  
+of a tab in the text.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2911077" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>smart home</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>not yet implemented</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2911117" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>page up/down moves cursor</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>this option changes the behavior of the cursor when
+the user presses the <fo:inline font-weight="bold">page up</fo:inline> or <fo:inline font-weight="bold">page down</fo:inline> key. if
+unselected the text cursor will maintain its relative position within the visible
+text in kwrite as new text becomes visible as a result of the operation.  so if
+the cursor is in the middle of the visible text when the operation occurs it will
+remain there (except when one reaches the beginning or end.)  with this
+option selected, the first key press will cause the cursor to move to either the top
+or bottom of the visible text as a new page of text is displayed.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2911206" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>wrap cursor</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>when this option is chosen, moving
+the cursor with the arrow keys off the end of a line (to the right) causes
+it to jump down to the beginning of the next line.  likewise when the
+cursor is moved past the beginning of a line (to the left) it jumps up to
+the end of the preceding line. when this option is not selected, moving the
+cursor right past the end of a line merely causes it to continue
+horizontally in the same line and trying to move it left past the beginning
+does nothing.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2911247" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline><fo:basic-link internal-destination="undo">undo</fo:basic-link> steps:</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>here
+the user may specify the number of steps kwrite will retain in memory for
+purposes of undoing entries and actions.  this means that the higher the
+number of steps set the more memory kwrite will use for this.  setting
+this entry to 10 would mean that the user would be be able reverse the last
+ten operations, i.e.i&gt;, click the undo
+button 10 times and obtain results.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+      <fo:block id="prefspellchecker">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">spelling</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">a spell checker is a program designed to
+help the user catch and correct any spelling errors.  this section of the
+preferences dialog allows certain important settings to be adjusted in this
+regard.</fo:block>
+        <fo:list-block id="id2911384" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item id="id2911391" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>create root/affix combinations not in
+dictionary</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>selecting this option allows
+the spell checker to register as 'correct' combinations of root words with
+suffixes or prefixes even if the particular combination is not listed in
+its dictionary data base of words.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2911435" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>consider run-together words as spelling
+errors</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>selecting this will cause the
+spell checker to register as 'misspelled' two or more correctly spelled
+words that are 'run-together', i.e., that do not have spaces
+separating them.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2911487" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>dictionary:</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>depending on
+the user's installation one or more different language spelling
+dictionaries may be available.  this drop down box allows the user to
+choose which language the spell checker should use.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2911530" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>encoding:</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>there are  
+different coding systems used to associate particular codes with particular  
+characters and symbols.  if the user knows which code he or she is using  
+this drop down box allows this code to be specified so that the spell
+checker can do its job correctly. </fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+          <fo:list-item id="id2911575" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+            <fo:list-item-label end-indent="label-end()">
+              <fo:block>
+                <fo:inline>client:</fo:inline>
+              </fo:block>
+            </fo:list-item-label>
+            <fo:list-item-body start-indent="body-start()">
+              <fo:block>since kwrite
+does not contain its own spell checker, an external one must be chosen.
+this is where the user may specify which spell check program to
+use.</fo:block>
+            </fo:list-item-body>
+          </fo:list-item>
+        </fo:list-block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="pref-highlighting" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 5. highlighting</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 5. highlighting</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">the configure highlighting dialog consists of two
+pages, defaults and highlighting
+modes.  the user can select which page to view by clicking on the
+appropriate tab at the top of the dialog</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">items available on the defaults page are as
+follows:</fo:block>
+      <fo:list-block id="id2911731" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:list-item id="id2911738" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>
+              <fo:inline>default item styles</fo:inline>
+            </fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>the user can configure the default appearance for particular items.
+this would allow a programmer to more easily identify different items (types of
+entries) in his or her code.
+
+</fo:block>
+            <fo:list-block id="id2911777" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item id="id2911784" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline>item</fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>this drop down list offers a variety of items that the user
+might want to highlight.  they include normal for
+text does not fit in any of the other categories, comment,
+string, keyword and many more.  not
+all of these entries will need to be configured for every language and so may be
+selected as needed.  the options in the rest of this section apply
+to the entry selected in this box.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2911882" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline>normal</fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>this allows the user to choose the item's normal
+(unselected) color.  this is done by means of a color selection
+dialog box, a further explanation of which may be found in the <fo:basic-link internal-destination="prefcolors">colors</fo:basic-link> section of <fo:basic-link internal-destination="pref-dialog">configure kwrite</fo:basic-link>.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2911961" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline>bold</fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>this option determines whether or not the item should be displayed in
+bold text.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2912002" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline>italic</fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>this option determines whether or not the item should be displayed in italic
+text.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2912043" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline>selected</fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>this allows the user to choose the item's color
+when selected.  this is done by means of a color selection
+dialog box, a further explanation of which may be found in the <fo:basic-link internal-destination="prefcolors">colors</fo:basic-link> section of <fo:basic-link internal-destination="pref-dialog">configure kwrite</fo:basic-link>.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2912123" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>
+              <fo:inline>default font</fo:inline>
+            </fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>here the user can choose the default font for all
+text.</fo:block>
+            <fo:list-block id="id2912161" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item id="id2912167" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline>family</fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>this is used to choose the font family.  the default is fixed.
+for most programming purposes, a monospaced font (one in which a w takes up the same
+amount of space as an i) may be the best choice.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2912211" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline>size</fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>the font size can be changed here.  the default is 12
+points.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2912252" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline>charset</fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>here the user can choose which character set to work in.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">items on the highlight modes tab allow the user to define
+more specific highlighting depending on the language style.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">one need not set every available option, items not configured
+specifically will use the default configuration specified on the previous  
+(defaults tab.</fo:block>
+      <fo:list-block id="id2912345" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:list-item id="id2912352" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>
+              <fo:inline>config select</fo:inline>
+            </fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>this group of options is used to customize the highlighting styles
+for each programming language type.  any changes you made in
+other areas of this dialog apply only to this type.</fo:block>
+            <fo:list-block id="id2912392" provisional-distance-between-starts="1in" provisional-label-separation="0.25in" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+              <fo:list-item id="id2912398" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline>highlight</fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>this is used to choose the language type to
+configure</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2912439" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label end-indent="label-end()">
+                  <fo:block>
+                    <fo:inline>item</fo:inline>
+                  </fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block>this is to choose the syntax item to configure.  remember
+this  only configures <fo:inline font-style="italic">this</fo:inline> item for <fo:inline font-style="italic">this</fo:inline>
+language.</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">as an example, if the user wished to configure the appearance of
+&#x201C;comments&#x201D; while writing c++, she or he could choose c++ in the
+highlight drop down list, and then choose comment in the
+item drop down list. to have &#x201C;comments&#x201D; look
+the same across all languages, the user would need to configure this in the
+defaults page of this dialog box while leaving
+&#x201C;comments&#x201D; unconfigured within the more specific
+highlight modes page.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2912590" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>
+              <fo:inline>item style</fo:inline>
+            </fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>here the user can configure the general appearance of the above
+selected item.  checking the default checkbox causes the default
+style as configured on the previous tab to be set, or the
+appearance can be configured directly.  the available options are the same as on the
+defaults tab: normal,
+selected, bold and
+italic.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2912713" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>
+              <fo:inline>highlight auto select</fo:inline>
+            </fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>kwrite can apply syntax highlighting automatically, depending  
+on the file extension or mime-type of the opened file.  the defaults are fairly
+comprehensive, but users that regularly edit files with non-standard extensions
+can add them here.  wildcards are allowed in the file
+extensions text box.  for example, the default entry for the c++
+language is <fo:inline font-weight="bold" font-family="Courier">*.cpp;*.cc;*.c;*.h</fo:inline>.  opening a file called
+<fo:inline font-family="Courier">foo.h</fo:inline> would automatically apply the c++ style to it.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2912810" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>
+              <fo:inline>item font</fo:inline>
+            </fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>here the user can choose the font for the selected item.</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">the default style can be applied by checking the
+default checkbox or the user can choose a specific font
+family, size and
+charset.  the available options are the same as those on
+the defaults tab.</fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="credits" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 6. credits and licenses</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 6. credits and licenses</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">kwrite copyright 2000 by jochen wilhelmy  
+<fo:inline font-family="Courier">&lt;digisnap at cs.tu-berlin.de&gt;</fo:inline></fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">contributions:</fo:block>
+      <fo:list-block id="id2912986" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+        <fo:list-item id="id2912993" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>additional contributions by glen parker <fo:inline font-family="Courier">&lt;glenebob at nwlink.com&gt;</fo:inline></fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+        <fo:list-item id="id2913015" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>michael koch <fo:inline font-family="Courier">&lt;koch at kde.org&gt;</fo:inline></fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">documentation by thad mcginnis <fo:inline font-family="Courier">&lt;ctmcginnis at compuserve.com&gt;</fo:inline></fo:block>
+      <fo:list-block id="id2913052" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="1.5em" provisional-label-separation="0.2em">
+        <fo:list-item id="id2913058" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+          <fo:list-item-label end-indent="label-end()">
+            <fo:block>&#x2022;</fo:block>
+          </fo:list-item-label>
+          <fo:list-item-body start-indent="body-start()">
+            <fo:block>this version of the kwrite handbook is based on the original by cristian tibirna <fo:inline font-family="Courier">&lt;tibirna at kde.org&gt;</fo:inline></fo:block>
+          </fo:list-item-body>
+        </fo:list-item>
+      </fo:list-block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">converted to docbook/proofreading by lauri watts <fo:inline font-family="Courier">&lt;vampyr at atconnex.net&gt;</fo:inline></fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">this documentation is licensed under the terms of the <fo:basic-link external-destination="common/fdl-license.html">gnu free documentation
+license</fo:basic-link><fo:inline hyphenate="false"> [common/fdl-license.html]</fo:inline>.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">this program is licensed under the terms of the <fo:basic-link external-destination="common/gpl-translated.html">gnu general public license</fo:basic-link><fo:inline hyphenate="false"> [common/gpl-translated.html]</fo:inline>.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="installation" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix A. installation</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix A. installation</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">kwrite is packaged as part of the kdebase package.  for more information
+on installing and compiling kde please see <fo:basic-link external-destination="http://www.kde.org">www.kde.org</fo:basic-link><fo:inline hyphenate="false"> [http://www.kde.org]</fo:inline>.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/multilingual.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/multilingual.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/multilingual.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1203 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2889272" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Multilingual Test Document</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Multilingual Test Document</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 Catalan</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="cachap"><fo:page-number-citation ref-id="cachap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">2 Czech</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="cschap"><fo:page-number-citation ref-id="cschap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">3 Danish</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="dachap"><fo:page-number-citation ref-id="dachap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">4 Spanish</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="eschap"><fo:page-number-citation ref-id="eschap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">5 Finnish</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="fichap"><fo:page-number-citation ref-id="fichap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">6 French</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="frchap"><fo:page-number-citation ref-id="frchap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">7 Italian</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="itchap"><fo:page-number-citation ref-id="itchap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">8 German</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="dechap"><fo:page-number-citation ref-id="dechap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">9 Greek</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="elchap"><fo:page-number-citation ref-id="elchap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">10 English</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="enchap"><fo:page-number-citation ref-id="enchap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">11 Japanese</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="jachap"><fo:page-number-citation ref-id="jachap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">12 Romanian</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="rochap"><fo:page-number-citation ref-id="rochap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">13 Russian</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ruchap"><fo:page-number-citation ref-id="ruchap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">14 Norsk</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="nochap"><fo:page-number-citation ref-id="nochap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">15 Dutch</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="nlchap"><fo:page-number-citation ref-id="nlchap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">16 Polish</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="plchap"><fo:page-number-citation ref-id="plchap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">17 Portuguese</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ptchap"><fo:page-number-citation ref-id="ptchap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">18 Portuguese (Brazilian)</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ptbrchap"><fo:page-number-citation ref-id="ptbrchap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">19 Slovak</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="skchap"><fo:page-number-citation ref-id="skchap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">20 Swedish</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="svchap"><fo:page-number-citation ref-id="svchap"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Bibliography</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="bibl"><fo:page-number-citation ref-id="bibl"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="cachap" hyphenate="true" master-name="oneside1" language="ca" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Cap&#xED;tol 1. Catalan</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Cap&#xED;tol 1. Catalan</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2824261">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Nota</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Catalan, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="cschap" hyphenate="true" master-name="oneside1" language="cs">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Kapitola 2. Czech</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Kapitola 2. Czech</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2783847">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Pozn&#xE1;mka</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Czech, if I knew any.
+&#x201E;Quote test.&#x201C;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="dachap" hyphenate="true" master-name="oneside1" language="da">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Kapitel 3. Danish</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Kapitel 3. Danish</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2787495">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Danish, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="eschap" hyphenate="true" master-name="oneside1" language="es">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Cap&#xED;tulo 4. Spanish</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Cap&#xED;tulo 4. Spanish</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2787895">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Nota</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Spanish, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="fichap" hyphenate="true" master-name="oneside1" language="fi">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Luku 5. Finnish</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Luku 5. Finnish</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2778557">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Huomaa</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Finnish, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="frchap" hyphenate="true" master-name="oneside1" language="fr">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapitre 6. French</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapitre 6. French</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2778958">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in French, if I knew any.
+&#xAB;Quote test.&#xBB;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="itchap" hyphenate="true" master-name="oneside1" language="it">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Capitolo 7. Italian</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Capitolo 7. Italian</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2779358">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Nota</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Italian, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="dechap" hyphenate="true" master-name="oneside1" language="de">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Kapitel 8. German</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Kapitel 8. German</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2778857">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Anmerkung</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in German, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="elchap" hyphenate="true" master-name="oneside1" language="el">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2889750">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">&#xD3;&#xE7;&#xEC;&#xE5;&#xDF;&#xF9;&#xF3;&#xE7;</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Greek, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="enchap" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 10. English</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 10. English</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2890089">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Note</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph is in English.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="jachap" hyphenate="true" master-name="oneside1" language="ja">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">&#x7B2C;11&#x7AE0;</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">&#x7B2C;11&#x7AE0;</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2890428">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">&#x6CE8;&#x610F;</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Japanese, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="rochap" hyphenate="true" master-name="oneside1" language="ro">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Cap. 12. Romanian</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Cap. 12. Romanian</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2890767">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Not&#xE3;</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Romanian, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="ruchap" hyphenate="true" master-name="oneside1" language="ru">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891107">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">&#x417;&#x430;&#x43C;&#x435;&#x447;&#x430;&#x43D;&#x438;&#x435;</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Russian, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="nochap" hyphenate="true" master-name="oneside1" language="no">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Kapittel 14. Norsk</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Kapittel 14. Norsk</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891446">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Notat</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Norsk, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="nlchap" hyphenate="true" master-name="oneside1" language="nl">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Hoofdstuk 15. Dutch</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Hoofdstuk 15. Dutch</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2891785">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Opmerking</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Dutch, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="plchap" hyphenate="true" master-name="oneside1" language="pl">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Rozdzia&#x142; 16. Polish</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Rozdzia&#x142; 16. Polish</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2892124">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Notatka</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Polish, if I knew any.
+&#x201E;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="ptchap" hyphenate="true" master-name="oneside1" language="pt">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Cap&#xED;tulo 17. Portuguese</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Cap&#xED;tulo 17. Portuguese</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2892464">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Nota</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Portugeuse, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="ptbrchap" hyphenate="true" master-name="oneside1" language="pt_br">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2892803">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Nota</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Brazilian Portugeuse, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="skchap" hyphenate="true" master-name="oneside1" language="sk">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Kapitola 19. Slovak</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Kapitola 19. Slovak</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2893144">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Pozn&#xE1;mka</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Slovak, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="svchap" hyphenate="true" master-name="oneside1" language="sv">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Kapitel 20. Swedish</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Kapitel 20. Swedish</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" start-indent="0.25in" end-indent="0.25in" id="id2893483">
+        <fo:block font-size="14pt" font-weight="bold" keep-with-next="always">Not</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+This paragraph would be in Swedish, if I knew any.
+&#x201C;Quote test.&#x201D;
+</fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+See <fo:basic-link internal-destination="cachap">Cap&#xED;tol 1. Catalan</fo:basic-link>.
+See <fo:basic-link internal-destination="cschap">2 &#x2013; &#x201E;Czech&#x201C;</fo:basic-link>.
+See <fo:basic-link internal-destination="dachap">Kapitel 3. Danish</fo:basic-link>.
+See <fo:basic-link internal-destination="dechap">Kapitel 8. German</fo:basic-link>.
+See <fo:basic-link internal-destination="elchap">&#xCA;&#xE5;&#xF6;&#xDC;&#xEB;&#xE1;&#xE9;&#xEF; 9. Greek</fo:basic-link>.
+See <fo:basic-link internal-destination="enchap">Chapter 10. English</fo:basic-link>.
+See <fo:basic-link internal-destination="eschap">Cap&#xED;tulo 4. Spanish</fo:basic-link>.
+See <fo:basic-link internal-destination="fichap">Luku 5. Finnish</fo:basic-link>.
+See <fo:basic-link internal-destination="frchap">Chapitre 6. French</fo:basic-link>.
+See <fo:basic-link internal-destination="itchap">Capitolo 7. Italian</fo:basic-link>.
+See <fo:basic-link internal-destination="jachap">&#x7B2C;11&#x7AE0;</fo:basic-link>.
+See <fo:basic-link internal-destination="nlchap">Hoofdstuk 15. Dutch</fo:basic-link>.
+See <fo:basic-link internal-destination="nochap">Kapittel 14. Norsk</fo:basic-link>.
+See <fo:basic-link internal-destination="plchap">Rozdzia&#x142; 16. Polish</fo:basic-link>.
+See <fo:basic-link internal-destination="ptchap">Cap&#xED;tulo 17. Portuguese</fo:basic-link>.
+See <fo:basic-link internal-destination="ptbrchap">Cap&#xED;tulo 18. Portuguese (Brazilian)</fo:basic-link>.
+See <fo:basic-link internal-destination="rochap">Cap. 12. Romanian</fo:basic-link>.
+See <fo:basic-link internal-destination="ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13. Russian</fo:basic-link>.
+See <fo:basic-link internal-destination="skchap">Kapitola 19. Slovak</fo:basic-link>.
+See <fo:basic-link internal-destination="svchap">Kapitel 20. Swedish</fo:basic-link>.
+See <fo:basic-link internal-destination="bibl">Bibliography</fo:basic-link>.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="bibl" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Bibliography</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2893798" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+        <fo:inline>[AhoSethiUllman96] </fo:inline>
+        <fo:inline>Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </fo:inline>
+        <fo:inline><fo:inline font-style="italic">Compilers, Principles, Techniques, and Tools</fo:inline>. </fo:inline>
+        <fo:inline>
+          <fo:inline>Addison-Wesley Publishing Company. </fo:inline>
+        </fo:inline>
+        <fo:inline>Copyright &#xA9; 1996 Bell Telephone Laboratories, Inc.. </fo:inline>
+        <fo:inline>0-201-10088-6. </fo:inline>
+        <fo:inline>James T. DeWolf. </fo:inline>
+        <fo:inline>
+          <fo:inline><fo:inline font-style="italic">Computer Science</fo:inline>. </fo:inline>
+          <fo:inline>Michael A. Harrison. </fo:inline>
+          <fo:inline>
+            <fo:inline>Addison-Wesley Publishing Company. </fo:inline>
+          </fo:inline>
+        </fo:inline>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/qa.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/qa.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/qa.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1447 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602315" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">book title</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>book title</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 chapter test</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2889334"><fo:page-number-citation ref-id="id2889334"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> Section title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2787586"><fo:page-number-citation ref-id="id2787586"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">A appendix test</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2778805"><fo:page-number-citation ref-id="id2778805"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> Section title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779714"><fo:page-number-citation ref-id="id2779714"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2889334" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. chapter test</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. chapter test</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2889345">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+          <title>Q&amp;A Set (unspecified)</title>
+        </fo:block>
+        <fo:block id="id2824365">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 1</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2824376" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2824382" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2824376" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2824411" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2889291">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 2</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2781447" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2781453" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2781447" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2781477" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2781657" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2824285" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2781657" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2824309" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2824341">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+          <title>Q&amp;A Set (none)</title>
+        </fo:block>
+        <fo:block id="id2824358">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 1</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2889296" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2824337" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2889296" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2781506" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2781539">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 2</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2781549" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2781554" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2781549" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2781577" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2781603" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2781608" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2781603" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2781631" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2783849">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+          <title>Q&amp;A Set (number)</title>
+        </fo:block>
+        <fo:block id="id2783870">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 1</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2783880" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2783885" end-indent="label-end()">
+                  <fo:block>1.1.</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2783880" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2783913" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2783946">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 2</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2783957" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2783962" end-indent="label-end()">
+                  <fo:block>2.1.</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2783957" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2783985" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2784011" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2784016" end-indent="label-end()">
+                  <fo:block>2.2.</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2784011" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2784039" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2784077">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+          <title>Q&amp;A Set (qanda)</title>
+        </fo:block>
+        <fo:block id="id2784098">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 1</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2784108" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2784113" end-indent="label-end()">
+                  <fo:block>Q:</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2784108" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2784071" end-indent="label-end()">
+                  <fo:block></fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2787461">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 2</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2787472" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2787477" end-indent="label-end()">
+                  <fo:block>Q:</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2787472" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2787500" end-indent="label-end()">
+                  <fo:block></fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2787526" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2787531" end-indent="label-end()">
+                  <fo:block>Q:</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2787526" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2787554" end-indent="label-end()">
+                  <fo:block></fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2787586">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Section title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2787597">
+          <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Set (unspecified)</title>
+          </fo:block>
+          <fo:block id="id2787610">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 1</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2787620" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787625" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2787620" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787654" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2787687">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 2</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2787697" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787702" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2787697" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787726" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2787751" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787756" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2787751" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787780" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2787816">
+          <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Set (none)</title>
+          </fo:block>
+          <fo:block id="id2787837">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 1</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2787847" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787852" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2787847" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787881" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2787914">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 2</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2787924" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787929" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2787924" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787953" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2787978" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787983" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2787978" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2788007" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2788044">
+          <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Set (number)</title>
+          </fo:block>
+          <fo:block id="id2788065">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 1</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2788040" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2787809" end-indent="label-end()">
+                    <fo:block>1.1.</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2788040" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2778416" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2778449">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 2</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2778460" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2778465" end-indent="label-end()">
+                    <fo:block>2.1.</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2778460" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2778488" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2778514" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2778519" end-indent="label-end()">
+                    <fo:block>2.2.</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2778514" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2778542" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2778579">
+          <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Set (qanda)</title>
+          </fo:block>
+          <fo:block id="id2778600">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 1</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2778610" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2778615" end-indent="label-end()">
+                    <fo:block>Q:</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2778610" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2778643" end-indent="label-end()">
+                    <fo:block></fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2778676">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 2</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2778687" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2778692" end-indent="label-end()">
+                    <fo:block>Q:</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2778687" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2778715" end-indent="label-end()">
+                    <fo:block></fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2778741" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2778746" end-indent="label-end()">
+                    <fo:block>Q:</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2778741" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2778769" end-indent="label-end()">
+                    <fo:block></fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2778805" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix A. appendix test</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix A. appendix test</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2778816">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+          <title>Q&amp;A Set (unspecified)</title>
+        </fo:block>
+        <fo:block id="id2778829">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 1</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2778840" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2778845" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2778840" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2778873" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2778906">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 2</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2778916" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2778922" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2778916" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2778945" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2778970" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2778976" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2778970" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2778999" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2779036">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+          <title>Q&amp;A Set (none)</title>
+        </fo:block>
+        <fo:block id="id2779056">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 1</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2779067" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779072" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779067" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779100" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2779133">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 2</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2779144" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779149" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779144" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779172" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779198" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779203" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779198" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779226" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2779264">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+          <title>Q&amp;A Set (number)</title>
+        </fo:block>
+        <fo:block id="id2779284">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 1</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2779295" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779300" end-indent="label-end()">
+                  <fo:block>1.1.</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779295" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779328" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2779361">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 2</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2779372" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779377" end-indent="label-end()">
+                  <fo:block>2.1.</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779372" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779400" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779426" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779431" end-indent="label-end()">
+                  <fo:block>2.2.</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779426" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779454" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2779492">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+          <title>Q&amp;A Set (qanda)</title>
+        </fo:block>
+        <fo:block id="id2779512">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 1</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2779523" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779528" end-indent="label-end()">
+                  <fo:block>Q:</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779523" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779556" end-indent="label-end()">
+                  <fo:block></fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2779589">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 2</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2779600" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779605" end-indent="label-end()">
+                  <fo:block>Q:</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779600" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779628" end-indent="label-end()">
+                  <fo:block></fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779654" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779659" end-indent="label-end()">
+                  <fo:block>Q:</fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2779654" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2779682" end-indent="label-end()">
+                  <fo:block></fo:block>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2779714">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Section title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2778574">
+          <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Set (unspecified)</title>
+          </fo:block>
+          <fo:block id="id2779258">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 1</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2779490" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889619" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2779490" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889647" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2889681">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 2</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2889691" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889696" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2889691" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889719" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2889745" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889750" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2889745" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889773" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2889810">
+          <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Set (none)</title>
+          </fo:block>
+          <fo:block id="id2889823">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 1</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2889833" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889838" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2889833" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889867" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2889900">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 2</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2889910" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889915" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2889910" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889939" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2889964" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889969" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2889964" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2889993" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2890030">
+          <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Set (number)</title>
+          </fo:block>
+          <fo:block id="id2890043">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 1</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2890053" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890058" end-indent="label-end()">
+                    <fo:block>1.1.</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2890053" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890086" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2890120">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 2</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2890130" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890135" end-indent="label-end()">
+                    <fo:block>2.1.</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2890130" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890158" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2890184" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890189" end-indent="label-end()">
+                    <fo:block>2.2.</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2890184" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890212" end-indent="label-end()">
+                    <fo:block/>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2890249">
+          <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Set (qanda)</title>
+          </fo:block>
+          <fo:block id="id2890262">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 1</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2890272" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890278" end-indent="label-end()">
+                    <fo:block>Q:</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2890272" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890306" end-indent="label-end()">
+                    <fo:block></fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+          <fo:block id="id2890339">
+            <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+              <title>Q&amp;A Div 2</title>
+            </fo:block>
+            <fo:block start-indent="0pc">
+              <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+                <fo:list-item id="id2890349" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890354" end-indent="label-end()">
+                    <fo:block>Q:</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2890349" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890378" end-indent="label-end()">
+                    <fo:block></fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2890403" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890408" end-indent="label-end()">
+                    <fo:block>Q:</fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+                <fo:list-item id="id2890403" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                  <fo:list-item-label id="id2890432" end-indent="label-end()">
+                    <fo:block></fo:block>
+                  </fo:list-item-label>
+                  <fo:list-item-body start-indent="body-start()">
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                    <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                  </fo:list-item-body>
+                </fo:list-item>
+              </fo:list-block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/qa2.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/qa2.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/qa2.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,211 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602100" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">book title</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>book title</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 chapter test</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2901251"><fo:page-number-citation ref-id="id2901251"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2901251" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. chapter test</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. chapter test</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Test a cross reference to a question: <fo:basic-link internal-destination="q1">Q: <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block></fo:basic-link>.
+</fo:block>
+      <fo:block id="id2781306">
+        <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+          <title>Q&amp;A Set (unspecified)</title>
+        </fo:block>
+        <fo:block id="id2785136">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 1</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2785147" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="q1" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;Q1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2785147" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="a1" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block color="red">&lt;label&gt;A1&lt;/label&gt;</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+        <fo:block id="id2781374">
+          <fo:block font-size="14pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">
+            <title>Q&amp;A Div 2</title>
+          </fo:block>
+          <fo:block start-indent="0pc">
+            <fo:list-block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" provisional-distance-between-starts="2.5em" provisional-label-separation="0.2em">
+              <fo:list-item id="id2781385" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2781392" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2781385" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2781415" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2784983" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2784989" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Question para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+              <fo:list-item id="id2784983" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
+                <fo:list-item-label id="id2785013" end-indent="label-end()">
+                  <fo:block/>
+                </fo:list-item-label>
+                <fo:list-item-body start-indent="body-start()">
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 1</fo:block>
+                  <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Answer para 2</fo:block>
+                </fo:list-item-body>
+              </fo:list-item>
+            </fo:list-block>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/sectest.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/sectest.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/sectest.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,948 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="book" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Book Title</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" keep-with-next="always" space-before="2in">Some Corporation</fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">Norman Walsh</fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Book Title</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Some Corporation</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">Copyright &#xA9; 1998 Norman Walsh</fo:block>
+        <fo:block font-size="8pt">
+          <fo:block>
+            <fo:block font-weight="bold" font-size="12pt" hyphenate="false" keep-with-next.within-column="always" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Legal Notice</fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test document. You can do what you will with it.</fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block font-size="8pt">
+          <fo:block>
+            <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Preface Title</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2824357"><fo:page-number-citation ref-id="id2824357"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 XRef Tests</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="chapter"><fo:page-number-citation ref-id="chapter"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="2pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> Section 1 Title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2784056"><fo:page-number-citation ref-id="id2784056"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> Section 1 Title</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2779001"><fo:page-number-citation ref-id="id2779001"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2824324" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Dedication</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This test book is dedicated to all the testers.  This is the first para
+of the dedication.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second para of the dedication.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the third para of the dedication.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2824357" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Preface Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Preface content.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the second para of the preface.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the third para of the preface.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="chapter" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. XRef Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. XRef Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block font-size="12pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Xrefs</fo:block>
+      <fo:table>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="book">Book Title</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>???</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>
+                <fo:basic-link internal-destination="chapter">Chapter 1. XRef Tests</fo:basic-link>
+              </fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>???</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>???</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>???</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>???</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>???</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>???</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>???</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>???</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+          <fo:table-row>
+            <fo:table-cell>
+              <fo:block>???</fo:block>
+            </fo:table-cell>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      <fo:block id="id2784056">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Section 1 Title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      </fo:block>
+      <fo:block id="id2779001">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Section 1 Title</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/set.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/set.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/set.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,417 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2865584" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Set Title</fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2602072" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Book Test Document Title</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="20.736pt" text-align="center" space-before="15.552pt">Book Subtitle</fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="12pt" text-align="center" space-before="2in">
+          <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Bookinfo Test Document Title: Book Subtitle</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Foreword</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2824244"><fo:page-number-citation ref-id="id2824244"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 Section Tests</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="chapter"><fo:page-number-citation ref-id="chapter"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="4pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> First Sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2824325"><fo:page-number-citation ref-id="id2824325"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> Second Sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2824346"><fo:page-number-citation ref-id="id2824346"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> Third Sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2824366"><fo:page-number-citation ref-id="id2824366"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">A First Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2824302"><fo:page-number-citation ref-id="id2824302"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="4pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> First Sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2784859"><fo:page-number-citation ref-id="id2784859"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> Second Sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2784880"><fo:page-number-citation ref-id="id2784880"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> Third Sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2784901"><fo:page-number-citation ref-id="id2784901"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2824244" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Foreword</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="chapter" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. Section Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. Section Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2824325">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">First Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+      </fo:block>
+      <fo:block id="id2824346">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Second Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+      </fo:block>
+      <fo:block id="id2824366">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Third Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2824302" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix A. First Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix A. First Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+      <fo:block id="id2784859">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">First Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+      </fo:block>
+      <fo:block id="id2784880">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Second Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+      </fo:block>
+      <fo:block id="id2784901">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Third Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2784925" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Book Test Document Title</fo:block>
+        </fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="20.736pt" text-align="center" space-before="15.552pt">Book Subtitle</fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="12pt" text-align="center" space-before="2in">
+          <fo:block font-family="Helvetica" font-weight="bold" font-size="17.28pt" text-align="center" space-before="10.8pt" keep-with-next="always">Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Bookinfo Test Document Title: Book Subtitle</fo:block>
+        </fo:block>
+        <fo:block font-size="10pt">
+          <fo:block>by Norman Walsh</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always"> Foreword</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2784982"><fo:page-number-citation ref-id="id2784982"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 Section Tests</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2785003"><fo:page-number-citation ref-id="id2785003"/></fo:basic-link></fo:inline>
+        </fo:block>
+        <fo:block start-indent="4pc">
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> First Sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2785017"><fo:page-number-citation ref-id="id2785017"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> Second Sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2785038"><fo:page-number-citation ref-id="id2785038"/></fo:basic-link></fo:inline>
+          </fo:block>
+          <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+            <fo:inline keep-with-next.within-line="always"> Third Sect1</fo:inline>
+            <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2785059"><fo:page-number-citation ref-id="id2785059"/></fo:basic-link></fo:inline>
+          </fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">A First Appendix</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="id2785081"><fo:page-number-citation ref-id="id2785081"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2784982" hyphenate="true" format="i" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-family="Helvetica" font-weight="bold">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Foreword</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is a test paragraph.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2785003" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. Section Tests</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. Section Tests</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block id="id2785017">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">First Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+      </fo:block>
+      <fo:block id="id2785038">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Second Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+      </fo:block>
+      <fo:block id="id2785059">
+        <fo:block>
+          <fo:block margin-left="-4pc" font-family="Helvetica">
+            <fo:block keep-with-next.within-column="always">
+              <fo:block font-size="16pt" font-weight="bold" font-family="Helvetica" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em">Third Sect1</fo:block>
+            </fo:block>
+          </fo:block>
+        </fo:block>
+        <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Paragraph.</fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="id2785081" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Appendix A. First Appendix</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Appendix A. First Appendix</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is just a test.</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/table.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/table.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/table.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,576 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="ch1" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. test</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. test</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">How many &#xB0; can you &#xA9;.</fo:block>
+      <fo:table-and-caption id="id2781474" keep-together.within-column="always" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em">
+        <fo:table-caption>
+          <fo:block font-weight="bold" space-after.minimum="0.2em" space-after.optimum="0.5em" space-after.maximum="0.8em" keep-with-next.within-column="always" hyphenate="false">A Table</fo:block>
+        </fo:table-caption>
+        <fo:table table-layout="fixed">
+          <fo:table-column column-number="1"/>
+          <fo:table-column column-number="2" column-width="proportional-column-width(1.5)+2in"/>
+          <fo:table-column column-number="3" column-width="proportional-column-width(2)+4pt"/>
+          <fo:table-body border-top="0.5pt solid black " border-bottom="0.5pt solid black ">
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell number-rows-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell number-columns-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell number-columns-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:table-and-caption>
+      <fo:table-and-caption id="id2824334" keep-together.within-column="always" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em">
+        <fo:table-caption>
+          <fo:block font-weight="bold" space-after.minimum="0.2em" space-after.optimum="0.5em" space-after.maximum="0.8em" keep-with-next.within-column="always" hyphenate="false">A Table</fo:block>
+        </fo:table-caption>
+        <fo:table table-layout="fixed">
+          <fo:table-column column-number="1"/>
+          <fo:table-column column-number="2" column-width="proportional-column-width(1.5)"/>
+          <fo:table-column column-number="3" column-width="proportional-column-width(2)"/>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt" number-rows-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt" number-columns-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt" number-columns-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell border-left="0.5pt solid black " padding-left="2pt" border-right="0.5pt solid black " padding-right="2pt" border-top="0.5pt solid black " padding-top="2pt" border-bottom="0.5pt solid black " padding-bottom="2pt">
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:table-and-caption>
+      <fo:table-and-caption id="id2784072" keep-together.within-column="always" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em">
+        <fo:table-caption>
+          <fo:block font-weight="bold" space-after.minimum="0.2em" space-after.optimum="0.5em" space-after.maximum="0.8em" keep-with-next.within-column="always" hyphenate="false">A Table</fo:block>
+        </fo:table-caption>
+        <fo:table>
+          <fo:table-column column-number="1" column-width="2in"/>
+          <fo:table-column column-number="2" column-width="2in"/>
+          <fo:table-column column-number="3" column-width="3in"/>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell number-rows-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell number-columns-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell number-columns-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:table-and-caption>
+      <fo:table-and-caption id="id2787721" keep-together.within-column="always" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em">
+        <fo:table-caption>
+          <fo:block font-weight="bold" space-after.minimum="0.2em" space-after.optimum="0.5em" space-after.maximum="0.8em" keep-with-next.within-column="always" hyphenate="false">A Table</fo:block>
+        </fo:table-caption>
+        <fo:table>
+          <fo:table-column column-number="1"/>
+          <fo:table-column column-number="2" column-width="2in"/>
+          <fo:table-column column-number="3" column-width="3in"/>
+          <fo:table-body>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell number-rows-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell number-columns-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell number-columns-spanned="2">
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+            <fo:table-row>
+              <fo:table-cell>
+                <fo:block>1</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>2</fo:block>
+              </fo:table-cell>
+              <fo:table-cell>
+                <fo:block>3</fo:block>
+              </fo:table-cell>
+            </fo:table-row>
+          </fo:table-body>
+        </fo:table>
+      </fo:table-and-caption>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/test.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/test.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/test.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,112 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="id2602118" hyphenate="true" master-name="oneside1" language="en">
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block text-align="center" margin-left="-4pc" keep-with-next="always" font-size="24.8832pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Article Title</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">This
+  is                  With a line-annotation
+    a 
+     screen<fo:inline id="foo">&#x2776;</fo:inline>
+     This
+    is                With a line-annotation
+  a 
+screen
+This
+  is                  With a line-annotation
+    a 
+     screen</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">What about <fo:basic-link internal-destination="foo">&#x2776;</fo:basic-link>?</fo:block>
+      <fo:block color="red">&lt;mediaobjectco&gt;<fo:external-graphic src="url(file:http://maps.example.com/EARTH?USA?MA?AMHERST)" content-width="auto" content-height="auto" width="auto" height="auto"/>&lt;/mediaobjectco&gt;</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/verbtest.fo
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/verbtest.fo	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/fo/verbtest.fo	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,137 @@
+<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="Times Roman" font-size="10pt" text-align="justify">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-blank" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-blank" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first1" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="simple2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before extent="12pt"/>
+      <fo:region-after extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="left2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="10pc" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-left" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-left" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="right2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="10pc">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-right" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-right" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="first2" page-width="8.5in" page-height="11in" margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in">
+      <fo:region-body column-count="1" margin-bottom="24pt" margin-top="24pt"/>
+      <fo:region-before region-name="xsl-region-before-first" extent="12pt"/>
+      <fo:region-after region-name="xsl-region-after-first" extent="12pt"/>
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="titlepage1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple1"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside1">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right1" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left1" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="titlepage2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="first2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="oneside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="simple2"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+    <fo:page-sequence-master master-name="twoside2">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference master-name="blank" blank-or-not-blank="blank"/>
+        <fo:conditional-page-master-reference master-name="right2" odd-or-even="odd"/>
+        <fo:conditional-page-master-reference master-name="left2" odd-or-even="even"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence id="book" hyphenate="true" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block font-family="Helvetica" font-weight="bold" font-size="24.8832pt" text-align="center" space-before="18.6624pt">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Book Title</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+        <fo:block font-size="14.4pt" font-weight="bold" font-family="Helvetica">
+          <fo:block>Book Title</fo:block>
+        </fo:block>
+        <fo:block break-after="page"/>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence hyphenate="true" format="i" master-name="titlepage1" language="en">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em">
+        <fo:block>
+          <fo:block space-after="1em" margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">Table of Contents</fo:block>
+        </fo:block>
+        <fo:block text-align-last="justify" end-indent="2pc" last-line-end-indent="-2pc">
+          <fo:inline keep-with-next.within-line="always">1 test</fo:inline>
+          <fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="ch1"><fo:page-number-citation ref-id="ch1"/></fo:basic-link></fo:inline>
+        </fo:block>
+      </fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+  <fo:page-sequence id="ch1" hyphenate="true" master-name="oneside1" language="en" initial-page-number="1">
+    <fo:static-content flow-name="xsl-region-before">
+      <fo:block text-align="center">
+        <fo:block font-size="10pt">Chapter 1. test</fo:block>
+      </fo:block>
+    </fo:static-content>
+    <fo:static-content flow-name="xsl-region-after">
+      <fo:block text-align="center" font-size="10pt">
+        <fo:page-number/>
+      </fo:block>
+    </fo:static-content>
+    <fo:flow flow-name="xsl-region-body">
+      <fo:block>
+        <fo:block margin-left="-4pc" font-size="17.28pt" font-weight="bold" font-family="Helvetica">
+          <fo:block keep-with-next.within-column="always" hyphenate="false">Chapter 1. test</fo:block>
+        </fo:block>
+      </fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">How many &#xB0; can you &#xA9;.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">And what about <fo:basic-link internal-destination="ch1">Chapter 1. test</fo:basic-link>.</fo:block>
+      <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">And what about ???.</fo:block>
+      <fo:block wrap-option="no-wrap" text-align="start" white-space-collapse="false" linefeed-treatment="preserve" font-family="Courier" font-size="9pt" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em">
+This is a program
+listing.
+</fo:block>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,203 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+EXTRA_DIST =      article.html article2.html article3.html bib.html book.html     book2.html book3.html callout.html chunk.html classsynop.html     condition.html docbook40.html emc2.gif emc2.png figtest.html     foottest.html fotest.html func.html graphics.html gtest.html     idxbook.html multilingual.html qa.html qa2.html sectest.html     set.html table.html test.html testmath.html verbtest.html
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/result/html/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/result/html
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/result/html/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+all: 
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,203 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+EXTRA_DIST =      article.html article2.html article3.html bib.html book.html     book2.html book3.html callout.html chunk.html classsynop.html     condition.html docbook40.html emc2.gif emc2.png figtest.html     foottest.html fotest.html func.html graphics.html gtest.html     idxbook.html multilingual.html qa.html qa2.html sectest.html     set.html table.html test.html testmath.html verbtest.html
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/result/html/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/result/html
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/result/html/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+all: 
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,35 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Article Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2601230"></a>Article Test Document Title</h2></div><div><h3 class="corpauthor">nwalsh</h3><h3 class="author">Norman Walsh</h3><h3 class="othercredit">Other Credit</h3><h4 class="editedby">Edited by</h4><h3 class="editor">Someother Editor</h3><h3 class="author">Someone Else</h3></div><div><p class="copyright">Copyright © 1999 Norman Walsh</p></div><div><p class="pubdate">Apr. 26, 1999</p></div><div><div class="abstract"><p><a name="id2767642"></a><b>Abstract</b></p><p>This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2766862">First level section</a></dt><dd><dl><dt> <a href="#id2766874">Second level section</a></dt></dl></dd><dt>A <a href="#id2766987">Appendix</a></dt></dl></div><p>
+This is a &#8220;short quote&#8221;.
+This is a &#8220;Quotation with a &#8216;nested quotation
+containing a &#8220;nested quotation and another &#8216;nested
+quotation&#8217;&#8221;&#8217;&#8221;.
+</p><div class="literallayout">This is a <i>literal layout</i><br>
+  It'll be a &lt;pre&gt; until the <tt>chunk.pl</tt><br>
+script    fixes   things    up.</div><p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p><div class="figure"><p><a name="testfig"></a><b>Figure 1. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div><p>This para contains an xref to a figure: <a href="#testfig" title="Figure 1. Test Figure">Figure 1. Test Figure</a>.
+</p><div class="figure"><p><a name="testfig2"></a><b>Figure 2. Test Figure2</b></p><pre class="programlisting">A Second
+  Test Figure
+</pre></div><p>This para contains an <a href="#testfig2" title="Figure 2. Test Figure2">link</a> to a 
+figure.
+</p><div class="itemizedlist"><ul><li><p><a name="id2766765"></a>Test item.</p></li><li><p><a name="id2766775"></a>Test item.</p></li><li><p><a name="id2766786"></a>Test item.</p></li></ul></div><div class="orderedlist"><ol type="1"><li><p><a name="id2766816"></a>Test item.</p></li><li><p><a name="id2766826"></a>Test item.</p></li><li><p><a name="id2766837"></a>Test item.</p></li></ol></div><p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p><div class="section"><a name="id2766862"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2766862"></a>First level section</h2></div></div><div class="section"><a name="id2766874"></a><div class="titlepage"><div><h3 class="title"><a name="id2766874"></a>Second level section</h3></div></div><div class="section"><a name="id2766885"></a><div class="titlepage"><div><h4 class="title"><a name="id2766885"></a>Third level section</h4></div></div><div class="section"><a name="id2766897"></a><div class="titlepage"><div><h5 class="title"><a name="id2766897"></a>Fourth level section</h5></div></div><div class="section"><a name="id2766909"></a><div class="titlepage"><div><h6 class="title"><a name="id2766915"></a>Fifth level section (SI)</h6></div></div><div class="section"><a name="id2766939"></a><div class="titlepage"><div><h6 class="title"><a name="id2766939"></a>Sixth level section</h6></div></div><div class="section"><a name="id2766950"></a><div class="titlepage"><div><h6 class="title"><a name="id2766950"></a>Seventh level section</h6></div></div><p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p></div></div></div></div></div></div></div><div class="appendix"><h2 class="title" style="clear: both"><a name="id2766987"></a>A. Appendix</h2><p>This is just a test.</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article2.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article2.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article2.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Article Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2780037"></a>Article Test Document Title</h2></div><div><h3 class="author">Norman Walsh</h3></div><div><p class="copyright">Copyright © 1999 Norman Walsh</p></div><div><p class="pubdate">Apr. 26, 1999</p></div><div><div class="abstract"><p><a name="id2780160"></a><b>Abstract</b></p><p>This article is just a test. This <i>article</i>
+is just a test. 
+This <b><tt>article</tt></b> is just a test.
+This <tt>&lt;<a href="mailto:ndw at nwalsh.com">ndw at nwalsh.com</a>&gt;</tt> is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p></div></div><hr></div><p>This article is just a test. This <i>article</i>
+is just a test. 
+This <b><tt>article</tt></b> is just a test.
+This <tt>&lt;<a href="mailto:ndw at nwalsh.com">ndw at nwalsh.com</a>&gt;</tt> is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p><div class="table"><p><a name="id2767667"></a><b>Table 1. This is a test table</b></p><table summary="This is a test table" border="1"><colgroup><col><col align="right"><col></colgroup><thead><tr><th>Head1</th><th align="center">Head2</th><th>Head3</th></tr></thead><tbody><tr><td>Entry1</td><td>Entry2</td><td>Entry3</td></tr><tr><td>Entry1</td><td colspan="2" align="center">span 2-3</td></tr><tr><td>Entry1</td><td rowspan="3" valign="middle">morerows2</td><td>Entry3</td></tr><tr><td>Entry1</td><td>Entry3</td></tr><tr><td>Entry1</td><td>Entry3</td></tr><tr><td colspan="3" align="center">fullspan</td></tr><tr align="center"><td>Entry1</td><td>Entry2</td><td align="left">Entry3</td></tr><tr><td>Entry1</td><td>Entry2</td><td>Entry3</td></tr><tr><td>Entry1</td><td>Entry2</td><td>Entry3</td></tr></tbody></table></div><div class="variablelist"><dl><dt><a name="id2766552"></a><span class="term">term</span></dt><dd><p><a name="id2766563"></a>some text</p></dd><dt><a name="id2766580"></a><span class="term">term2a, </span><span class="term">term2b</span></dt><dd><p><a name="id2766597"></a>some text</p></dd><dt><a name="id2766614"></a><span class="term">term3</span></dt><dd><p><a name="id2766626"></a>some text</p><p>some text</p><p>some text</p></dd></dl></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article3.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article3.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/article3.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Article Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2780037"></a>Article Test Document Title</h2></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2780031">First level section</a></dt><dd><dl><dt> <a href="#id2780050">Second level section</a></dt></dl></dd><dt> <a href="#id2767635">Another Section</a></dt><dt> <a href="#id2767669">Another Section</a></dt><dd><dl><dt> <a href="#id2767681">Another Section</a></dt></dl></dd><dt> <a href="#id2767717">Another Section</a></dt><dd><dl><dt> <a href="#id2766287">Another Section</a></dt></dl></dd></dl></div><p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p><div class="section"><a name="id2780031"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2780031"></a>First level section</h2></div></div><div class="section"><a name="id2780050"></a><div class="titlepage"><div><h3 class="title"><a name="id2780050"></a>Second level section</h3></div></div><div class="section"><a name="id2780060"></a><div class="titlepage"><div><h4 class="title"><a name="id2780149"></a>Third level section</h4></div></div><div class="section"><a name="id2780165"></a><div class="titlepage"><div><h5 class="title"><a name="id2780165"></a>Fourth level section</h5></div></div><div class="section"><a name="id2780176"></a><div class="titlepage"><div><h6 class="title"><a name="id2767603"></a>Fifth level section</h6></div></div><p>This is just a test.</p></div></div></div></div></div><div class="section"><a name="id2767635"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2767635"></a>Another Section</h2></div></div><div class="simplesect"><a name="id2767646"></a><div class="titlepage"><div><h3 class="title"><a name="id2767646"></a>SimpleSect @ level 2</h3></div></div><p>This is just a test.</p></div></div><div class="section"><a name="id2767669"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2767669"></a>Another Section</h2></div></div><div class="section"><a name="id2767681"></a><div class="titlepage"><div><h3 class="title"><a name="id2767681"></a>Another Section</h3></div></div><div class="simplesect"><a name="id2767692"></a><div class="titlepage"><div><h4 class="title"><a name="id2767692"></a>SimpleSect @ level 3</h4></div></div><p>This is just a test.</p></div></div></div><div class="section"><a name="id2767717"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2767717"></a>Another Section</h2></div></div><div class="section"><a name="id2766287"></a><div class="titlepage"><div><h3 class="title"><a name="id2766287"></a>Another Section</h3></div></div><div class="section"><a name="id2766299"></a><div class="titlepage"><div><h4 class="title"><a name="id2766299"></a>Another Section</h4></div></div><div class="simplesect"><a name="id2766310"></a><div class="titlepage"><div><h5 class="title"><a name="id2766310"></a>SimpleSect @ level 4</h5></div></div><p>This is just a test.</p></div></div></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/bib.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/bib.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/bib.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Test Book</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"></a>Test Book</h1></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#bib1">A Test Bibliography</a></dt></dl></div><div id="bib1" class="bibliography"><div class="titlepage"><div><h2 class="title"><a name="bib1"></a>A Test Bibliography</h2></div></div><p>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</p><div class="bibliodiv"><h3 class="title"><a name="id2771350">Books</a></h3><div id="id2771364" class="biblioentry"><a name="id2771364"></a><p><span class="abbrev">[AhoSethiUllman96] </span><span class="authorgroup">Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </span><span class="title"><I>Compilers, Principles, Techniques, and Tools</I>. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span><span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span><span class="isbn">0-201-10088-6. </span><span class="editor">James T. DeWolf. </span><span class="seriesinfo"><span class="title"><I>Computer Science</I>. </span><span class="editor">Michael A. Harrison. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span></span></p></div></div><div class="bibliodiv"><h3 class="title"><a name="id2813177">Periodicals</a></h3><div id="walsh97" class="biblioentry"><a name="walsh97"></a><p><span class="abbrev">[Walsh97] </span><span class="biblioset">&#8220;A Guide to XML&#8221;. <span class="author">Norman Walsh. </span><span class="pubdate">1997. </span><span class="copyright">Copyright © 1997 ArborText, Inc.. </span><span class="pagenums">97-108. </span></span><span class="biblioset"><I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span><span class="issn">1085-2301. </span><span class="editor">Dan Connolly. </span></span></p></div><div id="walsh96" class="bibliomixed"><a name="walsh96"></a><p>  <span class="bibliomset">    <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+    &#8220;Introduction to Cascading Style Sheets&#8221;.
+  </span>
+  <span class="bibliomset">    <I>The World Wide Web Journal</I>.
+    <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+    <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+    <span class="corpname">The World Wide Web Consortium</span>.
+    <span class="pubdate">Winter, 1996</span></span>.</p></div><div id="id2769687" class="biblioentry"><a name="id2769687"></a><p><span class="abbrev">[Abbrev] </span><span class="title"><I>A Really Full BiblioEntry</I>. </span><span class="subtitle">Subtitle. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span><span class="artpagenums">ArtPageNums. </span><span class="author">AuthorFirstname AuthorSurname. </span><span class="authorinitials">AuthorInitials. </span><span class="collab"><span class="collabname">The names of some collaborators. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span><span class="confgroup"><span class="confdates">confdates. </span><span class="conftitle">conftitle. </span><span class="confnum">confnum. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="confsponsor">confsponsor. </span>. </span><span class="contractnum">ContractNum. </span><span class="contractsponsor">ContractSponsor. </span><span class="contrib">Contrib. </span><span class="copyright">Copyright © 1998 Copyright holder. </span><span class="corpname">CorpName. </span><span class="date">Date. </span><span class="edition">Edition. </span><span class="editor">EditorFirstName EditorSurname. </span><span class="firstname">FirstName. </span><span class="honorific">Honorific. </span><span class="isbn">ISBN. </span><span class="issn">ISSN. </span><span class="invpartnumber">InvPartNumber. </span><span class="issuenum">IssueNum. </span><span class="lineage">Lineage. </span><span class="orgname">OrgName. </span><span class="othercredit"><span class="firstname">OCFirstName. </span><span class="surname">OCSurname. </span>. </span><span class="othername">OtherName. </span><span class="pagenums">PageNums. </span><span class="productname">ProductName. </span><span class="productnumber">ProductNumber. </span><span class="pubdate">PubDate. </span><span class="publisher"><span class="publishername">PubPublisherName. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span></span><span class="publishername">PublisherName. </span><span class="pubsnumber">PubsNumber. </span><span class="releaseinfo">ReleaseInfo. </span><span class="revhistory"><tr><td align="left">Revision 1.0</td><td align="left">20 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.9</td><td align="left">19 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.4</td><td align="left">18 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span><span class="seriesinfo"><span class="title"><I>SeriesInfo Title</I>. </span><span class="editor">SeriesInfo Editor Firstname SeriesInfo Editor Surname. </span></span><span class="seriesvolnums">SeriesVolNums. </span><span class="surname">Surname. </span><span class="titleabbrev">TitleAbbrev. </span><span class="volumenum">VolumeNum. </span></p></div></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,217 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Book Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2813135"><div class="titlepage"><div><h1 class="title"><a name="id2813135"></a>Bookinfo Test Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3><h3 class="author">John Doe</h3></div><div><p class="releaseinfo">Some releaseinfo</p></div><div><p class="copyright">Copyright © 2000 Norman Walsh</p></div><div><div class="legalnotice"><p>Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+</p></div></div><div><p class="pubdate">16 December 2000</p></div><div><div class="abstract"><p><a name="id2876695"></a><b>Abstract</b></p><p>Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</p><p>Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</p></div></div><hr></div><div id="id2813260" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2813260"></a>First Dedication</h2></div></div><p>Just a test. &#8220;What about&#8212;this?&#8221;</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p></div><div id="id2813277" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2813277"></a>Dedication</h2></div></div><p>Just a test dedication.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2771413">Foreword</a></dt><dt> <a href="#id2771424"></a></dt><dt>I <a href="#id2769572">Part One Title</a></dt><dd><dl><dt>1 <a href="#chapter">Section Tests</a></dt><dd><dl><dt> <a href="#id2767814">First Sect1</a></dt><dt> <a href="#id2767886">Second Sect1</a></dt><dt> <a href="#id2767907">Third Sect1</a></dt></dl></dd></dl></dd><dt>2 <a href="#id2767982">First Chapter</a></dt><dt>3 <a href="#id2768072">Second Chapter</a></dt><dt>4 <a href="#id2768364">Third Chapter</a></dt><dt>A <a href="#id2768385">First Appendix</a></dt><dt>B <a href="#id2767792">Second Appendix</a></dt></dl></div><div id="id2771413" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2771413"></a>Foreword</h2></div></div><p>This is a test paragraph.</p></div><div id="id2771424" class="preface"><div class="titlepage"></div><p>This is a test preface.</p></div><div class="part" id="id2769572"><div class="titlepage"><div><h1 class="title"><a name="id2769572"></a>Part One Title</h1></div><div><div class="legalnotice"><p>Foo! A legal notice in a part!</p></div></div></div><div class="partintro"><div><div><h1 class="title"><a name="id2769618"></a>PartIntro Title</h1></div></div><p>Partintro content<sup>[<a name="id2769638" href="#ftn.id2769638">1</a>]</sup>.</p><div class="sect1"><a name="id2769656"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2769656"></a>PartIntro Section</h2></div></div><p>PartIntros can actually have section content as well.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#chapter">Section Tests</a></dt><dd><dl><dt> <a href="#id2767814">First Sect1</a></dt><dt> <a href="#id2767886">Second Sect1</a></dt><dt> <a href="#id2767907">Third Sect1</a></dt></dl></dd></dl></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2769638" href="#id2769638">1</a>] </sup>This is a footnote in a partintro.</p></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"></a>Chapter 1. Section <a name="stestfoo"></a>Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2767814">First Sect1</a></dt><dt> <a href="#id2767886">Second Sect1</a></dt><dt> <a href="#id2767907">Third Sect1</a></dt></dl></div><div class="sect1"><a name="id2767814"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2767814"></a>First Sect1</h2></div></div><p>Paragraph.</p><div class="figure"><p><a name="testfig1"></a><b>Figure 1.1. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div></div><div class="sect1"><a name="id2767886"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2767886"></a>Second Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2767907"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2767907"></a>Third Sect1</h2></div></div><p>Paragraph.</p><div class="figure"><p><a name="testfig2"></a><b>Figure 1.2. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2767982"></a>Chapter 2. First Chapter</h2></div><div><h3 class="subtitle"><i>Chapter Subtitle</i></h3></div></div><p>This is a test paragraph.</p><div class="figure"><p><a name="testfig3"></a><b>Figure 2.1. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2768072"></a>Chapter 3. Second Chapter</h2></div></div><p>This is a test paragraph.
+<a class="indexterm" name="id2768090"></a>
+<a class="indexterm" name="id2768113"></a>
+
+<a class="indexterm" name="id2768136"></a>
+<a class="indexterm" name="id2768166"></a>
+
+<a class="indexterm" name="id2768189"></a>
+
+<a class="indexterm" name="id2768228"></a>
+<a class="indexterm" name="id2768251"></a>
+
+<a class="indexterm" name="id2768279"></a>
+<a class="indexterm" name="id2768309"></a>
+<a class="indexterm" name="id2768340"></a></p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2768364"></a>Chapter 4. Third Chapter</h2></div></div><p>This is a test paragraph.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2768385"></a>Appendix A. First Appendix</h2></div></div><p>This is just a test.</p><div class="figure"><p><a name="testfig4"></a><b>Figure A.1. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2767792"></a>Appendix B. Second Appendix</h2></div></div><p>This is just a test.
+<a class="indexterm" name="id2769804"></a>
+<a class="indexterm" name="id2766526"></a>
+
+<a class="indexterm" name="id2766549"></a>
+<a class="indexterm" name="id2766580"></a>
+
+<a class="indexterm" name="id2766602"></a>
+<a class="indexterm" name="id2766641"></a>
+
+<a class="indexterm" name="id2766664"></a>
+<a class="indexterm" name="id2766695"></a>
+<a class="indexterm" name="id2766726"></a></p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book2.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book2.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book2.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,590 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Book Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"></a>Book Title</h1></div><div><h3 class="corpauthor">Some Corporation</h3></div><div><h3 class="author">Norman Walsh</h3></div><div><p class="copyright">Copyright © 1998 Norman Walsh</p></div><div><div class="legalnotice"><p class="legalnotice-title"><b>Legal Notice</b></p><p>This is a test document. You can do what you will with it.</p></div></div><div><div class="legalnotice"><p>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </p></div></div><hr></div><div id="id2601240" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2601240"></a>Dedication</h2></div></div><p>This test book is dedicated to all the testers.  This is the first para
+of the dedication.</p><p>This is the second para of the dedication.</p><p>This is the third para of the dedication.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2876683">Preface Title</a></dt><dt>I <a href="#id2813228">Part One Title</a></dt><dd><dl><dt>1 <a href="#chapter">XRef Tests</a></dt><dt>2 <a href="#stchap">Section Tests</a></dt><dd><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2766960">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2767578">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></dd><dt>3 <a href="#id2877171">Inline Tests</a></dt><dt>4 <a href="#id2878428">Block Tests</a></dt><dt>5 <a href="#id2880116">List Tests</a></dt><dt>6 <a href="#id2883827">Table Tests</a></dt><dt>7 <a href="#id2889503">Index Term Tests</a></dt><dd><dl><dt> <a href="#id2889586">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2889932">Index Term Sect 2</a></dt><dt> <a href="#id2890098">Index Term Sect 3</a></dt></dl></dd></dl></dd></dl></dd><dt>II <a href="#part">Part Two Title</a></dt><dd><dl><dt>8 <a href="#id2890150">CmdSynopsis Tests</a></dt><dt>9 <a href="#id2891460">FuncSynopsis Tests</a></dt><dt>10 <a href="#id2891814">Callout Tests</a></dt></dl></dd><dt>III <a href="#id2892404">A Reference Part</a></dt><dd><dl><dt>I <a href="#reference">Reference</a></dt><dd><dl><dt><a href="#id2892441">RefEntryTitle</a></dt><dt><a href="#id2892632"><tt>Chop</tt></a></dt></dl></dd></dl></dd><dt>A <a href="#appendix">A Very Short Appendix</a></dt><dt>B <a href="#id2892762">A Very Long Appendix</a></dt><dd><dl><dt> <a href="#id2893413">a sect1 title</a></dt><dd><dl><dt> <a href="#id2893443">a sect2 title</a></dt></dl></dd><dt> <a href="#id2893583">another sect1 title</a></dt><dd><dl><dt> <a href="#id2893638">another sect2 title</a></dt></dl></dd><dt> <a href="#id2893873">another sect1 title</a></dt><dt> <a href="#id2893905">another sect1 title</a></dt></dl></dd><dt><a href="#bib1">A Test Bibliography</a></dt><dt><a href="#gloss">Example Glossary</a></dt><dt><a href="#index">Index</a></dt><dt><a href="#id2895989">An Index with a Title</a></dt></dl></div><div id="id2876683" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2876683"></a>Preface Title</h2></div></div><p>Preface content.</p><p>This is the second para of the preface.</p><p>This is the third para of the preface.</p></div><div class="part" id="id2813228"><div class="titlepage"><div><h1 class="title"><a name="id2813228"></a>Part One Title</h1></div><div><div class="legalnotice"><p>Foo! A legal notice in a part!</p></div></div></div><div class="partintro"><div><div><h1 class="title"><a name="id2813272"></a>PartIntro Title</h1></div></div><p>Partintro content<sup>[<a name="id2813154" href="#ftn.id2813154">1</a>]</sup>.</p><div class="sect1"><a name="id2813170"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2813170"></a>PartIntro Section</h2></div></div><p>PartIntros can actually have section content as well.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#chapter">XRef Tests</a></dt><dt>2 <a href="#stchap">Section Tests</a></dt><dd><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2766960">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2767578">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></dd><dt>3 <a href="#id2877171">Inline Tests</a></dt><dt>4 <a href="#id2878428">Block Tests</a></dt><dt>5 <a href="#id2880116">List Tests</a></dt><dt>6 <a href="#id2883827">Table Tests</a></dt><dt>7 <a href="#id2889503">Index Term Tests</a></dt><dd><dl><dt> <a href="#id2889586">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2889932">Index Term Sect 2</a></dt><dt> <a href="#id2890098">Index Term Sect 3</a></dt></dl></dd></dl></dd></dl></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2813154" href="#id2813154">1</a>] </sup>This is a footnote in a partintro.</p></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"></a>Chapter 1. XRef Tests</h2></div></div><h4>Xrefs</h4><table class="simplelist" border="0" summary="Simple list"><tr><td><a href="#book" title="Book Title">Book Title</a></td></tr><tr><td><a href="#part" title="Part II. Part Two Title">Part II. Part Two Title</a></td></tr><tr><td><a href="#chapter" title="Chapter 1. XRef Tests">Chapter 1. XRef Tests</a></td></tr><tr><td><a href="#appendix" title="Appendix A. A Very Short Appendix">Appendix A. A Very Short Appendix</a></td></tr><tr><td><a href="#table" title="Table 4.1. A Table">Table 4.1. A Table</a></td></tr><tr><td><a href="#figure" title="Figure 4.1. A Figure">Figure 4.1. A Figure</a></td></tr><tr><td><a href="#example" title="Example 4.1. An Example">Example 4.1. An Example</a></td></tr><tr><td><a href="#equation" title="Equation 4.1. An Equation"></a></td></tr><tr><td><a href="#reference" title="Reference">Reference</a></td></tr><tr><td><a href="#bib1" title="A Test Bibliography">A Test Bibliography</a></td></tr><tr><td><a href="#gloss" title="Example Glossary">Example Glossary</a></td></tr><tr><td><a href="#index" title="Index">Index</a></td></tr></table><p>This is the first reference to <i>XML</i>.
+This is the second reference to <a href="#xml"><i>XML</i></a>.
+These are references without <tt>linkend</tt>
+attributes: <i>XML</i>, <i>XML</i>.</p><h4>Links</h4><p>More <a href="http://www.jclark.com/dsssl/" target="_top">DSSSL information</a>
+is available.</p><p>There is <a href="#part" title="Part II. Part Two Title">a second part</a> in this book.</p><p>This is the <a href="#chapter" title="Chapter 1. XRef Tests"></a>
+chapter.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="stchap"></a>Chapter 2. Section Tests</h2></div><div><h3 class="subtitle"><i>Section Tests Subtitle</i></h3></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2766960">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2767578">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2768030"></a>
+<a class="indexterm" name="id2768053"></a>
+
+<a class="indexterm" name="id2768076"></a>
+<a class="indexterm" name="id2768107"></a>
+
+<a class="indexterm" name="id2768130"></a>
+<a class="indexterm" name="id2768168"></a>
+
+<a class="indexterm" name="id2768191"></a>
+<a class="indexterm" name="id2768222"></a>
+<a class="indexterm" name="id2768253"></a></p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect1"><a name="secttest1"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest1"></a>a sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2768368"></a>
+<a class="indexterm" name="id2768406"></a>
+<a class="indexterm" name="id2767974"></a>
+
+<a class="indexterm" name="id2767872"></a>
+<a class="indexterm" name="id2766675"></a>
+<a class="indexterm" name="id2766711"></a>
+
+<a class="indexterm" name="id2766732"></a>
+<a class="indexterm" name="id2766761"></a>
+<a class="indexterm" name="id2766789"></a>
+<a class="indexterm" name="id2766826"></a>
+<a class="indexterm" name="id2766862"></a>
+<a class="indexterm" name="id2766891"></a></p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2766960"></a><div class="titlepage"><div><h3 class="title"><a name="id2766960"></a>a sect2 title</h3></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2766990"></a><div class="titlepage"><div><h4 class="title"><a name="id2766990"></a>a sect3 title</h4></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2767019"></a>
+<a class="indexterm" name="id2767057"></a>
+<a class="indexterm" name="id2767096"></a>
+
+<a class="indexterm" name="id2767119"></a>
+<a class="indexterm" name="id2767142"></a>
+<a class="indexterm" name="id2767172"></a>
+<a class="indexterm" name="id2767211"></a>
+<a class="indexterm" name="id2767250"></a>
+<a class="indexterm" name="id2767288"></a></p><div class="sect4"><a name="id2767310"></a><div class="titlepage"><div><h5 class="title"><a name="id2767310"></a>a sect4 title</h5></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2767341"></a><div class="titlepage"><div><h6 class="title"><a name="id2767341"></a>a sect5 title</h6></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="secttest2"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2767400"></a>another sect1 title</h2></div><div><h2 class="subtitle">a sect1 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2767456"></a>
+<a class="indexterm" name="id2767479"></a>
+<a class="indexterm" name="id2767517"></a>
+<a class="indexterm" name="id2767556"></a></p><div class="sect2"><a name="id2767578"></a><div class="titlepage"><div><h3 class="title"><a name="id2767584"></a>another sect2 title</h3></div><div><h2 class="subtitle">a sect2 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2767632"></a><div class="titlepage"><div><h4 class="title"><a name="id2767639"></a>another sect3 title</h4></div><div><h2 class="subtitle">a sect3 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2767098"></a><div class="titlepage"><div><h5 class="title"><a name="id2767175"></a>another sect4 title</h5></div><div><h2 class="subtitle">a sect4 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2877014"></a><div class="titlepage"><div><h6 class="title"><a name="id2877020"></a>another sect5 title</h6></div><div><h2 class="subtitle">a sect5 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="secttest3"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest3"></a>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div><div class="sect1"><a name="secttest4"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest4"></a>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2877171"></a>Chapter 3. Inline Tests</h2></div></div><div class="simplesect"><a name="id2877186"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2877186"></a>Testing &#8216;Quotes&#8217; in a title</h2></div></div><p>Footnotes<sup>[<a name="fn1" href="#ftn.fn1">2</a>]</sup> are inlines.
+Sort of<sup>[<a name="id2877238" href="#ftn.id2877238">3</a>]</sup>.
+Another footnote<sup>[<a href="#ftn.fn1">2</a>]</sup>.</p><table class="simplelist" border="0" summary="Simple list"><tr><td>Abbrev</td><td>GUIIcon</td><td><tt>SGMLTag</tt> (Attribute)</td></tr><tr><td>Acronym</td><td>GUILabel</td><td><tt>SGMLTag</tt> (AttValue)</td></tr><tr><td>Action</td><td>GUIMenu</td><td><tt>SGMLTag</tt> (Element)</td></tr><tr><td>Application</td><td>GUISubMenu</td><td><tt>&lt;/SGMLTag&gt;</tt> (EndTag)</td></tr><tr><td>[Citation]</td><td>Hardware</td><td><tt>&amp;SGMLTag;</tt> (GenEntity)</td></tr><tr><td>CiteRefEntry RefEntryTitle(n)</td><td><p><img src="emc2.gif"></p></td><td><tt>&amp;#SGMLTag;</tt> (NumCharRef)</td></tr><tr><td><i>Citetitle</i></td><td>Interface</td><td><tt>%SGMLTag;</tt> (ParamEntity)</td></tr><tr><td><tt>ClassName</tt></td><td>InterfaceDefinition</td><td><tt>&lt;?SGMLTag&gt;</tt> (PI)</td></tr><tr><td><b>Command</b></td><td><b>KeyCap</b></td><td><tt>&lt;!--SGMLTag--&gt;</tt> (SGMLComment)</td></tr><tr><td><i>Comment</i> (Comment)</td><td>KeyCode</td><td><tt>&lt;SGMLTag&gt;</tt> (StartTag)</td></tr><tr><td><tt>ComputerOutput</tt></td><td>Key-Combo</td><td><tt>SGMLTag</tt></td></tr><tr><td>Database</td><td>KeySym</td><td><i><tt>StructField</tt></i></td></tr><tr><td>ErrorName</td><td><tt>Literal</tt></td><td>StructName</td></tr><tr><td>ErrorType</td><td>Markup</td><td><sub>Subscript</sub></td></tr><tr><td><tt>&lt;<a href="mailto:Email">Email</a>&gt;</tt></td><td><i>MediaLabel</i></td><td><sup>Superscript</sup></td></tr><tr><td><i>Emphasis</i></td><td>MouseButton</td><td>Symbol</td></tr><tr><td><tt>EnVar</tt></td><td><tt>Option</tt></td><td><tt>SystemItem</tt></td></tr><tr><td>ErrorCode</td><td>[Optional]</td><td>Token</td></tr><tr><td><tt>Filename</tt></td><td><i><tt>Parameter</tt></i></td><td>Trademark&#8482;</td></tr><tr><td><i>Firstterm</i></td><td>Phrase</td><td>Type</td></tr><tr><td><i>ForeignPhrase</i></td><td><tt>Prompt</tt></td><td><b><tt>UserInput</tt></b></td></tr><tr><td><tt>Function</tt></td><td>Property</td><td><i>WordAsWord</i></td></tr><tr><td>GUIMenuItem</td><td>&#8220;Quote&#8221;</td><td>ProductName&#8482;</td></tr><tr><td>GUIButton</td><td><i><tt>Replaceable</tt></i></td><td>&nbsp;</td></tr><tr><td>GUIButton (with Accel)</td><td>ReturnValue</td><td>&nbsp;</td></tr></table><p>And here are a couple of index terms, as another test (of 
+index terms, not inlines).
+<a class="indexterm" name="id2878368"></a>
+<a class="indexterm" name="id2878396"></a></p></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.fn1" href="#fn1">2</a>] </sup>Like this!</p></div><div class="footnote"><p><sup>[<a name="ftn.id2877238" href="#id2877238">3</a>] </sup>Well, the marks are, anyway!</p></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2878428"></a>Chapter 4. Block Tests</h2></div></div><div class="simplesect"><a name="id2878442"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2878442"></a>Formal Objects</h2></div></div><h5>Example</h5><div class="example"><p><a name="example"></a><b>Example 4.1. An Example</b></p><p>This is an example of a trivial example.</p></div><h5>Figure</h5><div class="figure"><p><a name="figure"></a><b>Figure 4.1. A Figure</b></p><pre class="screen">This is an example of a trivial figure.</pre></div><h5>Equation</h5><div class="equation"><p><a name="equation"></a><b>Equation 4.1. An Equation</b></p><p><img src="emc2.gif"></p></div><h5>Table</h5><div class="table"><p><a name="table"></a><b>Table 4.1. A Table</b></p><table summary="A Table" border="1"><colgroup><col><col></colgroup><tbody><tr><td>1</td><td>1</td></tr><tr><td>2</td><td>4</td></tr><tr><td>3</td><td>9</td></tr></tbody></table></div></div><div class="simplesect"><a name="id2878762"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2878762"></a>Informal Objects</h2></div></div><h5>InformalExample</h5><div class="informalexample" id="iexample"><a name="iexample"></a><p>This is an example of a trivial, informal example.</p></div><h5>InformalEquation</h5><div class="informalequation" id="iequation"><a name="iequation"></a><p><img src="emc2.gif"></p></div><h5>InformalTable</h5><div class="informaltable" id="itable"><a name="itable"></a><table border="1"><colgroup><col><col></colgroup><tbody><tr><td>1</td><td>1</td></tr><tr><td>2</td><td>8</td></tr><tr><td>3</td><td>27</td></tr></tbody></table></div></div><div class="simplesect"><a name="id2878986"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2878986"></a>Admonitions</h2></div></div><h5>Note</h5><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879015"></a>Note</h3><p>Consider yourself noted.</p><p>Second para.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879038"></a>Note</h3><p>Consider yourself noted, simply.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879054"></a>NoteTitle</h3><p>Consider yourself noted.</p><p>Second para, with a title.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879086"></a>Att</h3><p>Consider yourself noted, simply.</p><p>With a title</p></div><h5>Important</h5><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879132"></a>Important</h3><p>Consider yourself important.</p></div><h5>Tip</h5><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879151"></a>Tip</h3><p>Consider yourself tipped.</p></div><h5>Warning</h5><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879191"></a>Warning</h3><p>Consider yourself warned.</p></div><h5>Caution</h5><div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879221"></a>Caution</h3><p>Consider yourself cautioned.</p></div><h5>SimPara in Caution</h5><div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879251"></a>Simple Caution</h3><p>A simpler caution.</p></div></div><div class="simplesect"><a name="id2879275"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2879275"></a>Other Objects</h2></div></div><h5>Screen</h5><pre class="screen">This
+  is                  With a line-annotation
+    a 
+     screen
+     This
+    is                With a line-annotation
+  a 
+screen
+This
+  is                  With a line-annotation
+    a 
+     screen</pre><h5>ProgramListing</h5><pre class="programlisting">This
+  is
+    a 
+programlisting</pre><h5>Address</h5><div class="address">Norman Walsh<br>
+ArborText, Inc.<br>
+1000 Victors Way<br>
+Ann Arbor, MI 48108<br>
+US<br>
+<br>
+Voice: 313.997.0200<br>
+Fax: 313.997.0201<br>
+<br>
+Email: <tt>&lt;<a href="mailto:nwalsh at arbortext.com">nwalsh at arbortext.com</a>&gt;</tt><br>
+WWW: http://www.arbortext.com/</div><h5>BlockQuote</h5><blockquote class="blockquote"><p>The universe that we observe has precisely the properties we should 
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&#8212;Richard Dawkins</p></blockquote><h5>Procedure</h5><div class="procedure"><a name="id2879530"></a><ol><li><a name="id2879536"></a><p>This is the first step</p></li><li><a name="id2879557"></a><p>This is the second step</p><ol type="a"><li><a name="id2879588"></a><p>This is the first substep</p></li><li><a name="id2879512"></a><p>This is the second substep</p></li></ol></li><li><a name="id2879629"></a><p>This is the third step</p></li></ol></div><h5>Procedure With Title</h5><div class="procedure"><a name="id2879666"></a><p><b>Same Procedure with a Title</b></p><ol><li><a name="id2879680"></a><p>This is the first step</p></li><li><a name="id2879701"></a><p>This is the second step</p><ol type="a"><li><a name="id2879732"></a><p>This is the first substep</p></li><li><a name="id2879753"></a><p>This is the second substep</p></li></ol></li><li><a name="id2879778"></a><p>This is the third step</p></li></ol></div><h5>SideBar</h5><div class="sidebar"><a name="id2879815"></a><p class="title"><b>What About Bob?</b></p><p>This is a sidebar.</p></div><h5>MsgSet</h5><p>It's not really clear how <tt>MsgSet</tt> should be presented.
+I expect that it's fairly application, if not document, specific.</p><div class="msgentry"><a name="id2879875"></a><div class="msg"><a name="id2879881"></a><p>Record failed CRC</p><p>Record <i><tt>n</tt></i>
+                    in <i><tt>database</tt></i></p><p>File read error on 
+                   <i><tt>database</tt></i></p><p>Panic! Corrupt record!</p></div><div class="msginfo"><a name="id2880004"></a><p><b>Level: </b>severe</p><p><b>Origin: </b>server</p><p><b>Audience: </b>all</p></div><div class="msgexplan"><a name="id2880035"></a><p>        Indicates that some sort of error occured attempting to load
+        a record from the database.  Retry.  If failure persists,
+        contact the database administrator.
+        </p></div></div><h5>LiteralLayout</h5><div class="literallayout">This is a<br>
+literal<br>
+       layout</div><p><div class="literallayout">This is a<br>
+literal<br>
+       layout<br>
+  in a para</div></p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2880116"></a>Chapter 5. List Tests</h2></div></div><div class="simplesect"><a name="id2880130"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2880130"></a>OrderedLists</h2></div></div><h5>Default Numeration</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2880175"></a>One</p></li><li><a name="id2880190"></a><pre class="programlisting">this one starts with
+a program listing
+what happens?</pre></li><li><a name="id2880213"></a><pre class="synopsis">this one starts with
+a synopsis
+what happens?</pre></li><li><p><a name="id2880235"></a>para first</p><pre class="synopsis">this one has
+a synopsis
+what happens?</pre></li><li><p><a name="id2880265"></a>Three</p><pre class="screen">A
+Screen
+Here</pre></li><li><p><a name="id2880294"></a>Four</p></li></ol></div><h5>Arabic Numeration</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2880327"></a>One</p></li><li><p><a name="id2880363"></a>Two</p></li><li><p><a name="id2880378"></a>Three</p></li><li><p><a name="id2880394"></a>Four</p></li></ol></div><h5>Arabic Numeration (Long)</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2880426"></a>One</p></li><li><p><a name="id2880463"></a>Two</p></li><li><p><a name="id2880478"></a>Three</p></li><li><p><a name="id2880494"></a>Four</p></li><li><p><a name="id2880510"></a>Five</p></li><li><p><a name="id2880526"></a>Six</p></li><li><p><a name="id2880541"></a>Seven</p></li><li><p><a name="id2880557"></a>Eight</p></li><li><p><a name="id2880573"></a>Nine</p></li><li><p><a name="id2880588"></a>Ten</p></li><li><p><a name="id2880604"></a>Eleven</p></li></ol></div><h5>UpperAlpha Numeration</h5><div class="orderedlist"><ol type="A"><li><p><a name="id2880637"></a>One</p></li><li><p><a name="id2880673"></a>Two</p></li><li><p><a name="id2880689"></a>Three</p></li><li><p><a name="id2880705"></a>Four</p></li></ol></div><h5>LowerAlpha Numeration</h5><div class="orderedlist"><ol type="a"><li><p><a name="id2880738"></a>One</p></li><li><p><a name="id2880774"></a>Two</p></li><li><p><a name="id2880790"></a>Three</p></li><li><p><a name="id2880805"></a>Four</p></li></ol></div><h5>UpperRoman Numeration</h5><div class="orderedlist"><ol type="I"><li><p><a name="id2880838"></a>One</p></li><li><p><a name="id2880874"></a>Two</p></li><li><p><a name="id2880890"></a>Three</p></li><li><p><a name="id2880906"></a>Four</p></li></ol></div><h5>LowerRoman Numeration</h5><div class="orderedlist"><ol type="i"><li><p><a name="id2880939"></a>One</p></li><li><p><a name="id2880975"></a>Two</p></li><li><p><a name="id2880991"></a>Three</p></li><li><p><a name="id2881006"></a>Four</p></li></ol></div><h5>Continued</h5><p>First list:
+<div class="orderedlist"><ol type="1"><li><p><a name="id2881061"></a>One</p></li><li><p><a name="id2881076"></a>Two</p></li><li><p><a name="id2881092"></a>Three</p></li><li><p><a name="id2881108"></a>Four</p></li></ol></div></p><p>Second list:
+<div class="orderedlist"><ol start="5" type="1"><li><p><a name="id2881131"></a>Five</p></li><li><p><a name="id2881163"></a>Six</p></li><li><p><a name="id2881178"></a>Seven</p></li><li><p><a name="id2881194"></a>Eight</p></li><li><p><a name="id2881210"></a>Nine</p></li><li><p><a name="id2881226"></a>Ten</p></li></ol></div></p></div><div class="simplesect"><a name="id2881244"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2881244"></a>ItemizedLists</h2></div></div><h5>Default Presentation</h5><div class="itemizedlist"><ul><li><p><a name="id2881278"></a>One</p></li><li><a name="id2881294"></a><pre class="programlisting">One-point-five. This one starts with
+a program listing
+what happens?</pre></li><li><p><a name="id2881316"></a>Two</p></li><li><p><a name="id2881332"></a>Three</p></li><li><p><a name="id2881348"></a>Four</p></li></ul></div><h5>Block Elements in a List</h5><div class="itemizedlist"><ul><li><p><a name="id2881385"></a>One</p><p>Another para.</p></li><li><p><a name="id2881409"></a>Two</p></li><li><p><a name="id2881425"></a>Three</p></li><li><p><a name="id2881440"></a>Four</p></li></ul></div><h5>Alternate Mark and OverRide</h5><div class="itemizedlist"><ul><li style="list-style-type: square"><p><a name="id2881474"></a>TeX and LaTeX</p></li><li style="list-style-type: disc"><p><a name="id2881504"></a>Troff</p></li><li style="list-style-type: square"><p><a name="id2881520"></a>Lout</p></li><li style="list-style-type: none"><p><a name="id2881541"></a>Test</p></li></ul></div><h5>No mark Presentation</h5><div class="itemizedlist"><ul><li style="list-style-type: none"><p><a name="id2881589"></a>One</p></li><li style="list-style-type: disc"><p><a name="id2881609"></a>Two</p></li><li style="list-style-type: none"><p><a name="id2881624"></a>Three</p></li><li style="list-style-type: none"><p><a name="id2881640"></a>Four</p></li></ul></div></div><div class="simplesect"><a name="id2881659"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2881659"></a>VariableLists</h2></div></div><div class="variablelist"><dl><dt><a name="id2881680"></a><span class="term">Term1</span></dt><dd><p><a name="id2881694"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2881718"></a><span class="term">Term2</span></dt><dd><p><a name="id2881732"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2881755"></a><span class="term">Term3</span></dt><dd><p><a name="id2881770"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="itemizedlist"><ul><li><p><a name="id2881796"></a>One</p></li><li><p><a name="id2881812"></a>Two</p></li><li><p><a name="id2881827"></a>Three</p></li><li><p><a name="id2881843"></a>Four</p></li></ul></div><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2881878"></a><span class="term">Term4</span></dt><dd><p><a name="id2881892"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd></dl></div><div class="variablelist"><dl><dt><a name="id2881924"></a><span class="term">Another List</span></dt><dd><p><a name="id2881938"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2881962"></a><span class="term">ProgramListing</span></dt><dd><pre class="programlisting">A ProgramListing
+Is the First Element
+of this VarListEntry</pre><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd></dl></div></div><div class="simplesect"><a name="id2882017"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2882017"></a>SimpleLists</h2></div></div><h5>Inline</h5><p>An inline simple list:
+<span class="simplelist">One, Two, Three, Four, Five, Six, Seven</span></p><h5>Horiz</h5><table class="simplelist" border="0" summary="Simple list"><tr><td>One</td><td>Two</td><td>Three</td></tr><tr><td>Four</td><td>Five</td><td>Six</td></tr><tr><td>Seven</td><td>&nbsp;</td><td>&nbsp;</td></tr></table><h5>Vert</h5><table class="simplelist" border="0" summary="Simple list"><tr><td>One</td><td>Four</td><td>Seven</td></tr><tr><td>Two</td><td>Five</td><td>&nbsp;</td></tr><tr><td>Three</td><td>Six</td><td>&nbsp;</td></tr></table></div><div class="simplesect"><a name="id2882292"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2882292"></a>More Complex List Item Content</h2></div></div><div class="itemizedlist"><ul><li><p><a name="id2882313"></a>One</p><p>Second para</p></li><li><p><a name="id2882336"></a>Two</p><p>Second para</p></li><li><a name="id2882360"></a><p>Three</p><p>Second para</p></li><li><p><a name="id2882383"></a>Four</p><p>Second para</p></li><li><a name="id2882407"></a><p><b>Formal Element</b> Five</p><p>Second para</p></li><li><p><a name="id2882446"></a>Six</p></li></ul></div><div class="orderedlist"><ol type="1"><li><p><a name="id2882480"></a>One</p><p>Second para</p></li><li><p><a name="id2882504"></a>Two</p><p>Second para</p></li><li><a name="id2882528"></a><p>Three</p><p>Second para</p></li><li><p><a name="id2882551"></a>Four</p><p>Second para</p></li><li><a name="id2882575"></a><p><b>Formal Element</b> Five</p><p>Second para</p></li><li><p><a name="id2882614"></a>Six</p></li></ol></div></div><div class="simplesect"><a name="id2882633"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2882633"></a>Segmented List</h2></div></div><p><b>State Birds</b></p><p><b>State: </b>Alabama</p><p><b>Bird: </b>Yellowhammer</p><p><b>State: </b>Alaska</p><p><b>Bird: </b>Willow Ptarmigan</p><p><b>State: </b>Arizona</p><p><b>Bird: </b>Cactus Wren</p><p><b>State: </b>Arkansas</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>California</p><p><b>Bird: </b>California Valley Quail</p><p><b>State: </b>Colorado</p><p><b>Bird: </b>Lark Bunting</p><p><b>State: </b>Connecticut</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Delaware</p><p><b>Bird: </b>Blue Hen Chicken</p><p><b>State: </b>Florida</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Georgia</p><p><b>Bird: </b>Brown Thrasher</p><p><b>State: </b>Hawaii</p><p><b>Bird: </b>Nene</p><p><b>State: </b>Idaho</p><p><b>Bird: </b>Mountain Bluebird</p><p><b>State: </b>Illinois</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Indiana</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Iowa</p><p><b>Bird: </b>Eastern Goldfinch</p><p><b>State: </b>Kansas</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Kentucky</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Louisiana</p><p><b>Bird: </b>Eastern Brown Pelican</p><p><b>State: </b>Maine</p><p><b>Bird: </b>Chickadee</p><p><b>State: </b>Maryland</p><p><b>Bird: </b>Baltimore Oriole</p><p><b>State: </b>Massachusetts</p><p><b>Bird: </b>Chickadee</p><p><b>State: </b>Michigan</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Minnesota</p><p><b>Bird: </b>Common Loon</p><p><b>State: </b>Mississippi</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Missouri</p><p><b>Bird: </b>Bluebird</p><p><b>State: </b>Montana</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Nebraska</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Nevada</p><p><b>Bird: </b>Mountain Bluebird</p><p><b>State: </b>New Hampshire</p><p><b>Bird: </b>Purple Finch</p><p><b>State: </b>New Jersey</p><p><b>Bird: </b>Eastern Goldfinch</p><p><b>State: </b>New Mexico</p><p><b>Bird: </b>Roadrunner</p><p><b>State: </b>New York</p><p><b>Bird: </b>Bluebird</p><p><b>State: </b>North Carolina</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>North Dakota</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Ohio</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Oklahoma</p><p><b>Bird: </b>Scissor-tailed Flycatcher</p><p><b>State: </b>Oregon</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Pennsylvania</p><p><b>Bird: </b>Ruffed Grouse</p><p><b>State: </b>Rhode Island</p><p><b>Bird: </b>Rhode Island Red</p><p><b>State: </b>South Carolina</p><p><b>Bird: </b>Great Carolina Wren</p><p><b>State: </b>South Dakota</p><p><b>Bird: </b>Ring-necked Pheasant</p><p><b>State: </b>Tennessee</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Texas</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Utah</p><p><b>Bird: </b>American Seagull</p><p><b>State: </b>Vermont</p><p><b>Bird: </b>Hermit Thrush</p><p><b>State: </b>Virginia</p><p><b>Bird: </b>Cardinal </p><p><b>State: </b>Washington</p><p><b>Bird: </b>Willow Goldfinch</p><p><b>State: </b>West Virginia</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Wisconsin</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Wyoming</p><p><b>Bird: </b>Western Meadowlark</p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2883827"></a>Chapter 6. Table Tests</h2></div></div><h5>Alternate Alignment on Entry</h5><div class="informaltable" id="id2883861"><a name="id2883861"></a><table border="1"><colgroup><col><col><col align="center"></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left">left</td><td align="center">center</td><td>center</td></tr><tr><td align="center">center</td><td align="right">right</td><td align="right">right</td></tr></tbody></table></div><div class="informaltable" id="id2884083"><a name="id2884083"></a><table border="1"><colgroup><col><col><col align="center"></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left">left</td><td align="center">center</td><td>center</td></tr><tr><td align="center">center</td><td align="right">right</td><td align="right">right</td></tr></tbody></table></div><div class="informaltable" id="id2884300"><a name="id2884300"></a><table border="1"><colgroup><col><col><col align="center"></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left"><i>left emph</i></td><td align="center"><b>center emph/bold</b></td><td><tt>center literal</tt></td></tr><tr><td align="center"><tt>center filename</tt></td><td align="right"><b>right command</b></td><td align="right">right</td></tr></tbody></table></div><h5>Absolute Widths</h5><div class="informaltable" id="id2884565"><a name="id2884565"></a><table border="1"><colgroup><col><col><col align="center"></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td>e1</td><td>e2</td><td>e3</td></tr><tr><td>e1</td><td>e2</td><td>e3</td></tr><tr><td>e1</td><td>e2</td><td>e3</td></tr></tbody></table></div><h5>Relative Widths</h5><div class="informaltable" id="id2884804"><a name="id2884804"></a><table border="1"><colgroup><col><col></colgroup><tbody><tr><td align="left"><p>left</p></td><td align="center"><p>center</p></td></tr><tr><td align="center"><p>center</p></td><td align="right"><p>right</p></td></tr></tbody></table></div><h5>Complex</h5><div class="informaltable" id="id2884967"><a name="id2884967"></a><table width="100%" border="1"><colgroup><col><col align="right"><col align="center"><col><col><col align="left"></colgroup><tbody><tr><td>A1</td><td>A2</td><td>A3</td><td rowspan="2">A4</td><td>A5</td><td>A6</td></tr><tr><td>B1</td><td>B2</td><td>B3</td><td>B5</td><td>B6</td></tr><tr><td>C1</td><td>C2</td><td>C3</td><td>C4</td><td rowspan="3" colspan="2" valign="middle">C5</td></tr><tr><td colspan="0">D2</td><td>D3</td><td>D4</td></tr><tr><td>E1</td><td align="left">E2</td><td>E4</td></tr><tr><td>F1</td><td>F2</td><td>F3</td><td>F4</td><td>F5</td><td>F6</td></tr></tbody></table></div><h5>With Footnotes</h5><div class="informaltable" id="id2885426"><a name="id2885426"></a><table border="1"><colgroup><col><col></colgroup><tbody><tr><td>foo<sup>[<a name="fnrex1a" href="#ftn.fnrex1a">a</a>]</sup></td><td>3<sup>[<a name="fnrex1b" href="#ftn.fnrex1b">b</a>]</sup></td></tr><tr><td>bar<sup>[<a href="#ftn.fnrex1a">a</a>]</sup></td><td>5<sup>[<a href="#ftn.fnrex1b">b</a>]</sup></td></tr></tbody><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.fnrex1a" href="#fnrex1a">a</a>] </sup>A meaningless
+word</p></div><div class="footnote"><p><sup>[<a name="ftn.fnrex1b" href="#fnrex1b">b</a>] </sup>A meaningless
+number</p></div></td></tr></table></div><h5>A Big One</h5><div class="informaltable" id="id2885588"><a name="id2885588"></a><table border="1"><colgroup><col><col><col><col><col><col><col><col><col><col><col><col><col><col><col></colgroup><thead><tr><th>H1</th><th>H2</th><th>H3</th><th>H4</th><th>H5</th><th>H6</th><th>H7</th><th>H8</th><th>H9</th><th>H10</th><th>H11</th><th>H12</th><th>H13</th><th>H14</th><th>H15</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr></tbody></table></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2889503"></a>Chapter 7. Index Term Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2889586">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2889932">Index Term Sect 2</a></dt><dt> <a href="#id2890098">Index Term Sect 3</a></dt></dl></dd></dl></div><p>Test data.</p><a class="indexterm" name="idx1"></a><a class="indexterm" name="idx2"></a><div class="sect1"><a name="id2889586"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2889586"></a>Index Term Sect 1</h2></div></div><p>Test data.</p><a class="indexterm" name="idx3"></a><a class="indexterm" name="fred"></a><a class="indexterm" name="idx5"></a><a class="indexterm" name="idx6"></a><a class="indexterm" name="idx7"></a><a class="indexterm" name="idx8"></a><a class="indexterm" name="idx9"></a><a class="indexterm" name="id2889865"></a><a class="indexterm" name="idx11"></a><div class="sect2"><a name="id2889932"></a><div class="titlepage"><div><h3 class="title"><a name="id2889932"></a>Index Term Sect 2</h3></div></div><p>Test data.</p><a class="indexterm" name="idx12"></a><a class="indexterm" name="idx13"></a><a class="indexterm" name="idx14"></a><a class="indexterm" name="idx15"></a></div><div class="sect2"><a name="id2890098"></a><div class="titlepage"><div><h3 class="title"><a name="id2890098"></a>Index Term Sect 3</h3></div></div><p>foo</p></div></div></div></div><div class="part" id="part"><div class="titlepage"><div><h1 class="title"><a name="part"></a>Part Two Title</h1></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>8 <a href="#id2890150">CmdSynopsis Tests</a></dt><dt>9 <a href="#id2891460">FuncSynopsis Tests</a></dt><dt>10 <a href="#id2891814">Callout Tests</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2890150"></a>Chapter 8. CmdSynopsis Tests</h2></div></div><h5>Very Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2890179"><a name="id2890179"></a><tt>cd</tt>  {<i><tt>directory</tt></i>}</div><h5>Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2890239"><a name="id2890239"></a><tt>cal</tt>  [-j] [-y] [month  [year]]</div><h5>Another Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2890346"><a name="id2890346"></a><tt>chgrp</tt>  [-R 
+     [-H | -L | -P]
+  ] [-f]  <i><tt>group</tt></i>   <i><tt>file</tt></i>... </div><h5>Slightly Complex CmdSynopsis</h5><div class="cmdsynopsis" id="id2890531"><a name="id2890531"></a><tt>emacs</tt>  [-t <i><tt>file</tt></i>] [-q] [-u <i><tt>user</tt></i>] [+<i><tt>number</tt></i>] [-f <i><tt>function</tt></i>...] [-l <i><tt>file</tt></i>...]  <i><tt>file</tt></i>... </div><h5>Quite Complex CmdSynopsis</h5><div class="cmdsynopsis" id="id2890723"><a name="id2890723"></a><tt>cccp</tt>  [-$] [-C] [-D<i><tt>name</tt></i> [=<i><tt>definition</tt></i>]...] [-dD] [-dM] [-I <i><tt>directory</tt></i>...] [-H] [-I-]<br> [-imacros <i><tt>file</tt></i>...] [-include <i><tt>file</tt></i>...] [-lang-c | -lang-c++ | -lang-objc] [-lint]<br> [-M | -MD | -MM | -MMD] [-nostdinc] [-P] [-pedantic] [-pedantic-errors] [-trigraphs] [-U<i><tt>name</tt></i>]<br> [-undef] [-Wtrigraphs] [-Wcomment] [-Wall] [-Wtraditional] {<i><tt>infile</tt></i> | -} {<i><tt>outfile</tt></i> | -}</div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2891460"></a>Chapter 9. FuncSynopsis Tests</h2></div></div><h5>Two Simple Parameters</h5><div class="funcsynopsis" id="id2891489"><a name="id2891489"></a><p><code><code class="funcdef">int <b class="fsfunc">max</b></code>(<var class="pdparam">int1</var>, <var class="pdparam">int2</var>);<br>int <var class="pdparam">int1</var>;<br>int <var class="pdparam">int2</var>;</code></p></div><h5>Variable Arguments</h5><div class="funcsynopsis" id="id2891574"><a name="id2891574"></a><pre class="funcsynopsisinfo">#include &lt;varargs.h&gt;</pre><p><code><code class="funcdef">int <b class="fsfunc">max</b></code>(...);</code></p></div><h5>Void</h5><div class="funcsynopsis" id="id2891649"><a name="id2891649"></a><p><code><code class="funcdef">int <b class="fsfunc">rand</b></code>();</code></p></div><h5>Function Pointer Arguments</h5><div class="funcsynopsis" id="id2891697"><a name="id2891697"></a><p><code><code class="funcdef">void <b class="fsfunc">qsort</b></code>(<var class="pdparam">dataptr</var>, <var class="pdparam">left</var>, <var class="pdparam">right</var>, <var class="pdparam">(* comp)</var>);<br>void *<var class="pdparam">dataptr</var>[];<br>int <var class="pdparam">left</var>;<br>int <var class="pdparam">right</var>;<br>int <var class="pdparam">(* comp)</var>
+      (void *, void *);</code></p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2891814"></a>Chapter 10. Callout Tests</h2></div></div><h5>CallOut (using AREASPEC)</h5><div class="programlistingco"><pre class="programlisting">@rem = '--*-Perl-*--
+ at echo off
+perl.exe %_batchname %$
+goto endofperl
+ at rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+ at DIRS = (&quot;/home/nwalsh/Mail&quot;);
+while (@DIRS) {
+    $dir = shift @DIRS;
+    opendir (DIR, $dir);
+    while ($fname = readdir(DIR)) {
+        $file = &quot;$dir/$fname&quot;;
+        next if ! -d $file;
+        next if $fname =~ /^\.\.?$/;
+
+        print &quot;$file\n&quot;;
+        push (@DIRS, $file);
+        &amp;compress ($file);
+    }
+}
+
+exit;</pre><div class="calloutlist"><a name="id2892028"></a><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a name="id2892036"></a><img src="../images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>The prologue handles embedding a Perl script in a DOS batch file.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2892065"></a><img src="../images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>The <tt>goto</tt> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2892107"></a><img src="../images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>The <tt>require</tt> statement sources in external program
+fragments.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2892149"></a><img src="../images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>The <tt>use</tt> statement is similar, but has additional
+utility.  It is a Perl5 function.  (Note that this callout area specifies
+both a line and a column.)</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2892191"></a><img src="../images/callouts/5.png" alt="5" border="0"></td><td valign="top" align="left"><p>This is a user subroutine call.</p></td></tr></table></div></div><h5>CallOut (using CO)</h5><pre class="programlisting">this is a line
+this is another line
+there's a <a name="callout1"></a><img src="../images/callouts/1.png" alt="1" border="0">callout in here.
+and there's another on the
+next line
+right here:<a name="callout2"></a><img src="../images/callouts/2.png" alt="2" border="0"></pre><div class="calloutlist"><a name="id2892262"></a><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a name="id2892283"></a><a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>First callout.</p><p>Second para in first callout.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2892318"></a><a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Second callout.</p><p>Third para in second callout.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2892368"></a><a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"></a> <a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>This paragraph describes <i>both</i> callouts.</p></td></tr></table></div></div></div><div class="part" id="id2892404"><div class="titlepage"><div><h1 class="title"><a name="id2892404"></a>A Reference Part</h1></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>I <a href="#reference">Reference</a></dt><dd><dl><dt><a href="#id2892441">RefEntryTitle</a></dt><dt><a href="#id2892632"><tt>Chop</tt></a></dt></dl></dd></dl></div><div class="reference"><a name="reference"></a><div class="titlepage"><div><h1 class="title"><a name="reference"></a>Reference</h1></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2892441">RefEntryTitle</a></dt><dt><a href="#id2892632"><tt>Chop</tt></a></dt></dl></div><div class="refentry"><h1 class="title"><a name="id2892441"></a>RefEntryTitle</h1><div class="refnamediv"><a name="id2892464"></a><h2>Name</h2>RefName1, RefName2 &#8212; Yes, there must be a purpose!</div><div class="refsynopsisdiv"><a name="id2892504"></a><h2>Synopsis</h2><pre class="synopsis">  A
+   Synopsis
+    Goes
+   Here</pre></div><div class="refsect1"><a name="id2892526"></a><h2><a name="id2892526"></a>A RefSect1</h2><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="refsect2"><a name="id2892554"></a><h3><a name="id2892554"></a>A RefSect2</h3><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="refsect3"><a name="id2892581"></a><h4><a name="id2892581"></a>A RefSect3</h4><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<sup>[<a name="id2892604" href="#ftn.id2892604">6</a>]</sup>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></div></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2892604" href="#id2892604">6</a>] </sup>This is a footnote in a refentry.</p></div></div></div><div class="refentry"><h1 class="title"><a name="id2892632"></a><tt>Chop</tt></h1><div class="refnamediv"><a name="id2892638"></a><h2>Name</h2><tt>Chop</tt> &#8212; strip trailing whitespace</div><div class="refsect1"><a name="id2892670"></a><h2><a name="id2892670"></a>Description</h2><p>     Returns the argument string without trailing whitespace.
+     <div class="example"><p><a name="id2892691"></a><b>Example 2. chop() example</b></p><pre class="programlisting">$trimmed = Chop($line);</pre></div>
+    </p></div></div></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="appendix"></a>Appendix A. A Very Short Appendix</h2></div></div><p>Blah.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2892762"></a>Appendix B. A Very Long Appendix</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2893413">a sect1 title</a></dt><dd><dl><dt> <a href="#id2893443">a sect2 title</a></dt></dl></dd><dt> <a href="#id2893583">another sect1 title</a></dt><dd><dl><dt> <a href="#id2893638">another sect2 title</a></dt></dl></dd><dt> <a href="#id2893873">another sect1 title</a></dt><dt> <a href="#id2893905">another sect1 title</a></dt></dl></div><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="sect1"><a name="id2893413"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2893413"></a>a sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2893443"></a><div class="titlepage"><div><h3 class="title"><a name="id2893443"></a>a sect2 title</h3></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2893474"></a><div class="titlepage"><div><h4 class="title"><a name="id2893474"></a>a sect3 title</h4></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2893513"></a><div class="titlepage"><div><h5 class="title"><a name="id2893513"></a>a sect4 title</h5></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2893544"></a><div class="titlepage"><div><h6 class="title"><a name="id2893544"></a>a sect5 title</h6></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="id2893583"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2893589"></a>another sect1 title</h2></div><div><h2 class="subtitle">a sect1 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2893638"></a><div class="titlepage"><div><h3 class="title"><a name="id2893644"></a>another sect2 title</h3></div><div><h2 class="subtitle">a sect2 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2893692"></a><div class="titlepage"><div><h4 class="title"><a name="id2893698"></a>another sect3 title</h4></div><div><h2 class="subtitle">a sect3 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2893746"></a><div class="titlepage"><div><h5 class="title"><a name="id2893753"></a>another sect4 title</h5></div><div><h2 class="subtitle">a sect4 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2893801"></a><div class="titlepage"><div><h6 class="title"><a name="id2893807"></a>another sect5 title</h6></div><div><h2 class="subtitle">a sect5 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="id2893873"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2893873"></a>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div><div class="sect1"><a name="id2893905"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2893905"></a>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div><div id="bib1" class="bibliography"><div class="titlepage"><div><h2 class="title"><a name="bib1"></a>A Test Bibliography</h2></div></div><p>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</p><div class="bibliodiv"><h3 class="title"><a name="id2893972">Books</a></h3><div id="id2893986" class="biblioentry"><a name="id2893986"></a><p><span class="abbrev">[AhoSethiUllman96] </span><span class="authorgroup">Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </span><span class="title"><I>Compilers, Principles, Techniques, and Tools</I>. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span><span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span><span class="isbn">0-201-10088-6. </span><span class="editor">James T. DeWolf. </span><span class="seriesinfo"><span class="title"><I>Computer Science</I>. </span><span class="editor">Michael A. Harrison. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span></span></p></div></div><div class="bibliodiv"><h3 class="title"><a name="id2894219">Periodicals</a></h3><div id="walsh97" class="biblioentry"><a name="walsh97"></a><p><span class="abbrev">[Walsh97] </span><span class="biblioset">&#8220;A Guide to XML&#8221;. <span class="author">Norman Walsh. </span><span class="pubdate">1997. </span><span class="copyright">Copyright © 1997 ArborText, Inc.. </span><span class="pagenums">97-108. </span></span><span class="biblioset"><I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span><span class="issn">1085-2301. </span><span class="editor">Dan Connolly. </span></span></p></div><div id="walsh96" class="bibliomixed"><a name="walsh96"></a><p>  <span class="bibliomset">    <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+    &#8220;Introduction to Cascading Style Sheets&#8221;.
+  </span>
+  <span class="bibliomset">    <I>The World Wide Web Journal</I>.
+    <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+    <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+    <span class="corpname">The World Wide Web Consortium</span>.
+    <span class="pubdate">Winter, 1996</span></span>.</p></div><div id="id2894532" class="biblioentry"><a name="id2894532"></a><p><span class="abbrev">[Abbrev] </span><span class="title"><I>A Really Full BiblioEntry</I>. </span><span class="subtitle">Subtitle. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span><span class="artpagenums">ArtPageNums. </span><span class="author">AuthorFirstname AuthorSurname. </span><span class="authorinitials">AuthorInitials. </span><span class="collab"><span class="collabname">The names of some collaborators. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span><span class="confgroup"><span class="confdates">confdates. </span><span class="conftitle">conftitle. </span><span class="confnum">confnum. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="confsponsor">confsponsor. </span>. </span><span class="contractnum">ContractNum. </span><span class="contractsponsor">ContractSponsor. </span><span class="contrib">Contrib. </span><span class="copyright">Copyright © 1998 Copyright holder. </span><span class="corpname">CorpName. </span><span class="date">Date. </span><span class="edition">Edition. </span><span class="editor">EditorFirstName EditorSurname. </span><span class="firstname">FirstName. </span><span class="honorific">Honorific. </span><span class="isbn">ISBN. </span><span class="issn">ISSN. </span><span class="invpartnumber">InvPartNumber. </span><span class="issuenum">IssueNum. </span><span class="lineage">Lineage. </span><span class="orgname">OrgName. </span><span class="othercredit"><span class="firstname">OCFirstName. </span><span class="surname">OCSurname. </span>. </span><span class="othername">OtherName. </span><span class="pagenums">PageNums. </span><span class="productname">ProductName. </span><span class="productnumber">ProductNumber. </span><span class="pubdate">PubDate. </span><span class="publisher"><span class="publishername">PubPublisherName. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span></span><span class="publishername">PublisherName. </span><span class="pubsnumber">PubsNumber. </span><span class="releaseinfo">ReleaseInfo. </span><span class="revhistory"><tr><td align="left">Revision 1.0</td><td align="left">20 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.9</td><td align="left">19 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.4</td><td align="left">18 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span><span class="seriesinfo"><span class="title"><I>SeriesInfo Title</I>. </span><span class="editor">SeriesInfo Editor Firstname SeriesInfo Editor Surname. </span></span><span class="seriesvolnums">SeriesVolNums. </span><span class="surname">Surname. </span><span class="titleabbrev">TitleAbbrev. </span><span class="volumenum">VolumeNum. </span></p></div></div></div><div id="gloss" class="glossary"><div class="titlepage"><div><h2 class="title"><a name="gloss"></a>Example Glossary</h2></div></div><p>This is not a real glossary, it's just an example.</p><div class="glossdiv"><h3 class="title">E</h3><dl><dt><a name="xml">Extensible Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd></dl></div><div class="glossdiv"><h3 class="title">S</h3><dl><dt><a name="id2895506">SGML</a></dt><dd><p>See <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd><dt><a name="sgml">Standard Generalized
+  Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#xml">Extensible Markup Language</a>.</p></dd></dl></div></div><div id="index" class="index"><div class="titlepage"><div><h2 class="title"><a name="index"></a>Index</h2></div></div><p>This is a test index.</p><p><b>a formal para</b> this is a formal paragraph.</p><dt>Primary</dt><dd><dl><dt>Secondary 1</dt><dd><dl><dt>Tertiary 11</dt><dt>Tertiary 12</dt><dt>Tertiary 21</dt></dl></dd><dt>Secondary 2</dt><dd><dl><dt>Tertiary 21</dt></dl></dd></dl></dd><dt>primary</dt><dt>primary</dt><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary1</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary2</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>see ie</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt><dd><dl><dt>seealso ie</dt></dl></dd></dl></dd></dl></dd></div><div id="id2895989" class="index"><div class="titlepage"><div><h2 class="title"><a name="id2895989"></a>An Index with a Title</h2></div></div><div class="indexdiv">Symbols<dl><dt>!,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt><dt>[,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">A<dl><dt>sect2-level,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">C<dl><dt>chap-level,
+    <a href="c3.htm" target="_top">Index Term Tests</a>
+  </dt><dd><dl><dt>sec
+  </dt><dd><dl><dt>tert,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></dd></dl></dd></dl></div><div class="indexdiv">O<dl><dt>oft-repeated,
+    <a href="c3.htm" target="_top">Index Term Tests</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt><dd><dl><dt>with id,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div><div class="indexdiv">S<dl><dt>sect1-level,
+    <a href="c3.htm#aen10" target="_top"><i>Index Term Sect 1</i></a>
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd><dt>sect1-other
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book3.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book3.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/book3.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,54 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Book Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"></a>Book Title</h1></div><div><h3 class="corpauthor">Some Corporation</h3></div><div><h3 class="author">Norman Walsh</h3></div><div><p class="copyright">Copyright © 1998 Norman Walsh</p></div><div><div class="legalnotice"><p class="legalnotice-title"><b>Legal Notice</b></p><p>This is a test document. You can do what you will with it.</p></div></div><div><div class="legalnotice"><p>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#bib1">A Test Bibliography</a></dt><dt><a href="#gloss">Example Glossary</a></dt><dt><a href="#index">Index</a></dt><dt><a href="#id2767338">Index</a></dt></dl></div><div id="bib1" class="bibliography"><div class="titlepage"><div><h2 class="title"><a name="bib1"></a>A Test Bibliography</h2></div></div><p>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</p><div class="bibliodiv"><h3 class="title"><a name="id2862603">Books</a></h3><div id="id2888727" class="biblioentry"><a name="id2888727"></a><p><span class="abbrev">[AhoSethiUllman96] </span><span class="authorgroup">Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </span><span class="title"><I>Compilers, Principles, Techniques, and Tools</I>. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span><span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span><span class="isbn">0-201-10088-6. </span><span class="editor">James T. DeWolf. </span></p></div></div><div class="bibliodiv"><h3 class="title"><a name="id2767803">Periodicals</a></h3><div id="walsh97" class="biblioentry"><a name="walsh97"></a><p><span class="abbrev">[Walsh97] </span><span class="biblioset">&#8220;A Guide to XML&#8221;. <span class="author">Norman Walsh. </span><span class="pubdate">1997. </span><span class="copyright">Copyright © 1997 ArborText, Inc.. </span><span class="pagenums">97-108. </span></span><span class="biblioset"><I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span><span class="issn">1085-2301. </span><span class="editor">Dan Connolly. </span></span></p></div><div id="walsh96" class="bibliomixed"><a name="walsh96"></a><p>  <span class="bibliomset">    <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+    &#8220;Introduction to Cascading Style Sheets&#8221;.
+  </span>
+  <span class="bibliomset">    <I>The World Wide Web Journal</I>.
+    <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+    <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+    <span class="corpname">The World Wide Web Consortium</span>.
+    <span class="pubdate">Winter, 1996</span></span>.</p></div><div id="id2770692" class="biblioentry"><a name="id2770692"></a><p><span class="abbrev">[Abbrev] </span><span class="title"><I>A Really Full BiblioEntry</I>. </span><span class="subtitle">Subtitle. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span><span class="artpagenums">ArtPageNums. </span><span class="author">AuthorFirstname AuthorSurname. </span><span class="authorinitials">AuthorInitials. </span><span class="collab"><span class="collabname">The names of some collaborators. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span><span class="confgroup"><span class="confdates">confdates. </span><span class="conftitle">conftitle. </span><span class="confnum">confnum. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="confsponsor">confsponsor. </span>. </span><span class="contractnum">ContractNum. </span><span class="contractsponsor">ContractSponsor. </span><span class="contrib">Contrib. </span><span class="copyright">Copyright © 1998 Copyright holder. </span><span class="corpname">CorpName. </span><span class="date">Date. </span><span class="edition">Edition. </span><span class="editor">EditorFirstName EditorSurname. </span><span class="firstname">FirstName. </span><span class="honorific">Honorific. </span><span class="isbn">ISBN. </span><span class="issn">ISSN. </span><span class="invpartnumber">InvPartNumber. </span><span class="issuenum">IssueNum. </span><span class="lineage">Lineage. </span><span class="orgname">OrgName. </span><span class="othercredit"><span class="firstname">OCFirstName. </span><span class="surname">OCSurname. </span>. </span><span class="othername">OtherName. </span><span class="pagenums">PageNums. </span><span class="productname">ProductName. </span><span class="productnumber">ProductNumber. </span><span class="pubdate">PubDate. </span><span class="publisher"><span class="publishername">PubPublisherName. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span></span><span class="publishername">PublisherName. </span><span class="pubsnumber">PubsNumber. </span><span class="releaseinfo">ReleaseInfo. </span><span class="revhistory"><tr><td align="left">Revision 1.0</td><td align="left">20 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.9</td><td align="left">19 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.4</td><td align="left">18 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span><span class="seriesvolnums">SeriesVolNums. </span><span class="surname">Surname. </span><span class="titleabbrev">TitleAbbrev. </span><span class="volumenum">VolumeNum. </span></p></div></div></div><div id="gloss" class="glossary"><div class="titlepage"><div><h2 class="title"><a name="gloss"></a>Example Glossary</h2></div></div><p>This is not a real glossary, it's just an example.</p><div class="glossdiv"><h3 class="title">E</h3><dl><dt><a name="xml">Extensible Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd></dl></div><div class="glossdiv"><h3 class="title">S</h3><dl><dt><a name="id2766804">SGML</a></dt><dd><p>See <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd><dt><a name="sgml">Standard Generalized
+  Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#xml">Extensible Markup Language</a>.</p></dd></dl></div></div><div id="index" class="index"><div class="titlepage"><div><h2 class="title"><a name="index"></a>Index</h2></div></div><p>This is a test index.</p><p><b>a formal para</b> this is a formal paragraph.</p><dt>Primary</dt><dd><dl><dt>Secondary 1</dt><dd><dl><dt>Tertiary 11</dt><dt>Tertiary 12</dt><dt>Tertiary 21</dt></dl></dd><dt>Secondary 2</dt><dd><dl><dt>Tertiary 21</dt></dl></dd></dl></dd><dt>primary</dt><dt>primary</dt><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary1</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary2</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>see ie</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt><dd><dl><dt>seealso ie</dt></dl></dd></dl></dd></dl></dd></div><div id="id2767338" class="index"><div class="titlepage"><div><h2 class="title"><a name="id2767338"></a>Index</h2></div></div><div class="indexdiv">Symbols<dl><dt>!,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt><dt>[,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">A<dl><dt>sect2-level,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">C<dl><dt>chap-level,
+    <a href="c3.htm" target="_top">Index Term Tests</a>
+  </dt><dd><dl><dt>sec
+  </dt><dd><dl><dt>tert,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></dd></dl></dd></dl></div><div class="indexdiv">O<dl><dt>oft-repeated,
+    <a href="c3.htm" target="_top">Index Term Tests</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt><dd><dl><dt>with id,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div><div class="indexdiv">S<dl><dt>sect1-level,
+    <a href="c3.htm#aen10" target="_top"><i>Index Term Sect 1</i></a>
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd><dt>sect1-other
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/callout.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/callout.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/callout.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Loops</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section"><a name="dsssl.expr.loop"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="dsssl.expr.loop"></a>Loops</h2></div><hr></div><p>
+<a class="indexterm" name="id2768010"></a>
+<a class="indexterm" name="id2768027"></a>
+<a class="indexterm" name="id2768043"></a>
+
+DSSSL doesn't have any construct that resembles the
+for loop that occurs in most imperative languages like C
+and Java. Instead, DSSSL employs a common trick in
+functional languages for implementing a loop: tail recursion.
+</p><p>
+Loops in DSSSL use a special form of
+<tt>let</tt>. This loop counts from 1 to 10:
+<pre class="screen">
+(let <a name="dl1"></a><img src="../images/callouts/1.png" alt="1" border="0">loopvar <a name="dl2"></a><img src="../images/callouts/2.png" alt="2" border="0">((count 1))
+  <a name="dl3"></a><img src="../images/callouts/3.png" alt="3" border="0">(if (&gt; count 10)
+    <a name="dl4"></a><img src="../images/callouts/4.png" alt="4" border="0">#t
+    (<a name="dl5"></a><img src="../images/callouts/5.png" alt="5" border="0">loopvar <a name="dl6"></a><img src="../images/callouts/6.png" alt="6" border="0">(+ count 1))))</pre></p><div class="calloutlist"><a name="id2888672"></a><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a name="id2888678"></a><a href="#dl1"><img src="../images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>This variable controls the loop. It is declared without an
+initial value, immediately after the <tt>let</tt>
+operand.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2767732"></a><a href="#dl2"><img src="../images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>
+<a class="indexterm" name="id2888687"></a>
+
+Any number of additional local variables can be defined after
+the loop variable, just as they can in any other
+<tt>let</tt> expression.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2862434"></a><a href="#dl3"><img src="../images/callouts/3.png" alt="3" border="0"></a> </td><td valign="top" align="left"><p>If you ever want the loop to end, you have to put some sort of a
+test in it.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2862468"></a><a href="#dl4"><img src="../images/callouts/4.png" alt="4" border="0"></a> </td><td valign="top" align="left"><p>This is the value that will be returned.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2770514"></a><a href="#dl5"><img src="../images/callouts/5.png" alt="5" border="0"></a> </td><td valign="top" align="left"><p>Note that you iterate the loop by using the loop variable as if
+it was a function name.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2770548"></a><a href="#dl6"><img src="../images/callouts/6.png" alt="6" border="0"></a> </td><td valign="top" align="left"><p>The arguments to this function are the values that
+you want the local variables declared in <a href="#dl2" title=""><img src="../images/callouts/2.png" alt="2" border="0"></a> to have
+in the next iteration.</p></td></tr></table></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/chunk.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/chunk.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/chunk.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,41 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Book Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2813135"><div class="titlepage"><div><h1 class="title"><a name="id2813135"></a>Bookinfo Test Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3></div><hr></div><div id="dedication" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="dedication"></a>First Dedication</h2></div></div><p>Just a test.</p></div><div id="id2771326" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2771326"></a>Dedication</h2></div></div><p>Just a test.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#preface">Foreword</a></dt><dt>1 <a href="#xreftest">XRef Tests</a></dt><dd><dl><dt> <a href="#id2769750">First sect1</a></dt><dt> <a href="#id2769771">Second sect1</a></dt></dl></dd><dt>2 <a href="#chapter">Second Chapter</a></dt><dt>3 <a href="#id2769679">Third Chapter</a></dt><dt>A <a href="#appendix">First Appendix</a></dt><dt>B <a href="#id2767781">Second Appendix</a></dt></dl></div><div id="preface" class="preface"><div class="titlepage"><div><h2 class="title"><a name="preface"></a>Foreword</h2></div></div><p>This is a test paragraph. (<a href="#chapter" title="Chapter 2. Second Chapter">chapter</a>)</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="xreftest"></a>Chapter 1. XRef Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2769750">First sect1</a></dt><dt> <a href="#id2769771">Second sect1</a></dt></dl></div><p><a href="#dedication">Dedication</a></p><p><a href="#preface" title="Foreword">Preface</a></p><p><a href="#chapter" title="Chapter 2. Second Chapter">Chapter</a></p><p><a href="#appendix" title="Appendix A. First Appendix">Appendix</a></p><div class="sect1"><a name="id2769750"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2769750"></a>First sect1</h2></div></div><p>...</p></div><div class="sect1"><a name="id2769771"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2769771"></a>Second sect1</h2></div></div><p>...</p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"></a>Chapter 2. Second Chapter</h2></div></div><p>This is a test paragraph.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2769679"></a>Chapter 3. Third Chapter</h2></div></div><p>This is a test paragraph.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="appendix"></a>Appendix A. First Appendix</h2></div></div><p>This is just a test.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2767781"></a>Appendix B. Second Appendix</h2></div></div><p>This is just a test.</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/classsynop.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/classsynop.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/classsynop.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,43 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 1. Class Synopses</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2862517"></a>Chapter 1. Class Synopses</h2></div></div><p>This example is Perl; it's the standard DirHandle module. I've
+cut out the code, so you'll have to trust me on the parameters.
+</p><p>ProgramListing version:</p><pre class="programlisting">
+package DirHandle;
+
+require 5.000;
+use Carp;
+use Symbol;
+
+sub new {
+}
+</pre><p>ClassSynopsis version:</p><pre class="classsynopsis">package <span class="ooclass"><span class="classname">DirHandle</span></span>;
+ at ISA = (<span class="ooclass"><span class="classname">superclass1</span></span>, <span class="ooclass"><span class="classname">superclass2</span></span>);
+
+require 5.000;
+use Carp;
+use Symbol;
+
+<div class="constructorsynopsis">sub <span class="methodname">new</span> { ... };</div><div class="destructorsynopsis">sub <span class="methodname">DESTROY</span> { ... };</div></pre><p>This example is IDL from the DOM spec.</p><p>ProgramListing version:</p><pre class="programlisting">
+interface Element : Node {
+  readonly attribute  DOMString            tagName;
+  DOMString                 getAttribute(in DOMString name);
+  void                      setAttribute(in DOMString name, 
+                                         in DOMString value)
+                                         raises(DOMException);
+};
+</pre><p>ClassSynopsis version:</p><pre class="classsynopsis">interface <span class="ooclass"><span class="classname">Element</span></span>: <span class="ooclass"><span class="classname">Node</span></span> {
+
+<div class="fieldsynopsis">  <span class="modifier">readonly </span><span class="modifier">attribute </span><span class="type">DOMString </span><span class="varname">tagName </span>;</div><div class="methodsynopsis">  <span class="type">DOMString </span><span class="methodname">getAttribute</span>(<span class="methodparam"><span class="modifier">in </span><span class="type">DOMString </span><span class="parameter">name</span></span>);</div><div class="methodsynopsis">  <span class="void">void </span><span class="methodname">setAttribute</span>(<span class="methodparam"><span class="modifier">in </span><span class="type">DOMString </span><span class="parameter">name</span></span>, <span class="methodparam"><span class="modifier">in </span><span class="type">DOMString </span><span class="parameter">value</span></span>)
+    raises(<span class="exceptionname">DOMException</span>);</div>}</pre><pre class="classsynopsis"> <span class="ooclass"><span class="modifier">public </span><span class="classname">TextFileWriter</span></span> extends <span class="ooclass"><span class="classname">Superclass1</span></span>, <span class="ooclass"><span class="classname">Superclass2</span></span>
+    implements <span class="oointerface"><span class="interfacename">Interface1</span></span>, <span class="oointerface"><span class="interfacename">Interface2</span></span>
+    throws <span class="ooexception"><span class="exceptionname">Exception1</span></span>, <span class="ooexception"><span class="exceptionname">Exception2</span></span> {
+
+<div class="fieldsynopsis">  <span class="modifier">private </span><span class="type">Writer </span><span class="varname">writer </span>;</div><div class="fieldsynopsis">  <span class="modifier">public </span><span class="type">String </span><span class="varname">writerName </span><span class="initializer">= &quot;MyWriter&quot;</span>;</div><div class="methodsynopsis">  <span class="modifier">static </span><span class="modifier">public </span><span class="void">void </span><span class="methodname">write</span>(<span class="methodparam"><span class="type">ResultTreeFragment </span><span class="parameter">frag</span></span>,
+                           <span class="methodparam"><span class="type">String </span><span class="parameter">file</span></span>)
+    throws <span class="exceptionname">Exception1</span>, <span class="exceptionname">Exception2</span>;</div>}</pre><pre class="programlisting">
+class Rectangle_with_data:  virtual Shape, virtual Data_container
+{
+...
+};
+</pre><p>ClassSynopsis version:</p><pre class="classsynopsis"><span class="ooclass"><span class="classname">Rectangle_with_data</span></span>: <span class="ooclass"><span class="modifier">virtual </span><span class="classname">Shape</span></span>, <span class="ooclass"><span class="modifier">virtual </span><span class="classname">Data_container</span></span> {
+
+...}</pre></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/condition.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/condition.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/condition.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,591 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Book Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"></a>Book Title</h1></div><div><h3 class="corpauthor">Some Corporation</h3></div><div><h3 class="author">Norman Walsh</h3></div><div><p class="copyright">Copyright © 1998 Norman Walsh</p></div><div><div class="legalnotice"><p class="legalnotice-title"><b>Legal Notice</b></p><p>This is a test document. You can do what you will with it.</p></div></div><div><div class="legalnotice"><p>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </p></div></div><hr></div><div id="id2862683" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2862683"></a>Dedication</h2></div></div><p>This test book is dedicated to all the testers.  This is the first para
+of the dedication.</p><p>This is the second para of the dedication.</p><p>This is the third para of the dedication.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2862693">Preface Title</a></dt><dt>I <a href="#id2888842">Part One Title</a></dt><dd><dl><dt>1 <a href="#chapter">XRef Tests</a></dt><dt>2 <a href="#stchap">Section Tests</a></dt><dd><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2766927">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2767538">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></dd><dt>3 <a href="#id2889294">Inline Tests</a></dt><dt>4 <a href="#id2890546">Block Tests</a></dt><dt>5 <a href="#id2892239">List Tests</a></dt><dt>6 <a href="#id2895950">Table Tests</a></dt><dt>7 <a href="#id2902001">Index Term Tests</a></dt><dd><dl><dt> <a href="#id2902084">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2902430">Index Term Sect 2</a></dt><dt> <a href="#id2902596">Index Term Sect 3</a></dt></dl></dd></dl></dd></dl></dd><dt>II <a href="#part">Part Two Title</a></dt><dd><dl><dt>8 <a href="#id2902648">CmdSynopsis Tests</a></dt><dt>9 <a href="#id2903959">FuncSynopsis Tests</a></dt><dt>10 <a href="#id2904315">Callout Tests</a></dt></dl></dd><dt>III <a href="#id2904897">A Reference Part</a></dt><dd><dl><dt>I <a href="#reference">Reference</a></dt><dd><dl><dt><a href="#id2904934">RefEntryTitle</a></dt><dt><a href="#id2905125"><tt>Chop</tt></a></dt></dl></dd></dl></dd><dt>A <a href="#appendix">A Very Short Appendix</a></dt><dt>B <a href="#id2905255">A Very Long Appendix</a></dt><dd><dl><dt> <a href="#id2905906">a sect1 title</a></dt><dd><dl><dt> <a href="#id2905945">a sect2 title</a></dt></dl></dd><dt> <a href="#id2906076">another sect1 title</a></dt><dd><dl><dt> <a href="#id2906130">another sect2 title</a></dt></dl></dd><dt> <a href="#id2906365">another sect1 title</a></dt><dt> <a href="#id2906398">another sect1 title</a></dt></dl></dd><dt><a href="#bib1">A Test Bibliography</a></dt><dt><a href="#gloss">Example Glossary</a></dt><dt><a href="#index">Index</a></dt><dt><a href="#id2908480">An Index with a Title</a></dt></dl></div><div id="id2862693" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2862693"></a>Preface Title</h2></div></div><p>Preface content.</p><p>This is the second para of the preface.</p><p>This is the third para of the preface.</p></div><div class="part" id="id2888842"><div class="titlepage"><div><h1 class="title"><a name="id2888842"></a>Part One Title</h1></div><div><div class="legalnotice"><p>Foo! A legal notice in a part!</p></div></div></div><div class="partintro"><div><div><h1 class="title"><a name="id2862593"></a>PartIntro Title</h1></div></div><p>Partintro content<sup>[<a name="id2862614" href="#ftn.id2862614">1</a>]</sup>.</p><div class="sect1"><a name="id2862631"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2862631"></a>PartIntro Section</h2></div></div><p>PartIntros can actually have section content as well.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#chapter">XRef Tests</a></dt><dt>2 <a href="#stchap">Section Tests</a></dt><dd><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2766927">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2767538">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></dd><dt>3 <a href="#id2889294">Inline Tests</a></dt><dt>4 <a href="#id2890546">Block Tests</a></dt><dt>5 <a href="#id2892239">List Tests</a></dt><dt>6 <a href="#id2895950">Table Tests</a></dt><dt>7 <a href="#id2902001">Index Term Tests</a></dt><dd><dl><dt> <a href="#id2902084">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2902430">Index Term Sect 2</a></dt><dt> <a href="#id2902596">Index Term Sect 3</a></dt></dl></dd></dl></dd></dl></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2862614" href="#id2862614">1</a>] </sup>This is a footnote in a partintro.</p></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"></a>Chapter 1. XRef Tests</h2></div></div><h4>Xrefs</h4><table class="simplelist" border="0" summary="Simple list"><tr><td><a href="#book" title="Book Title">Book Title</a></td></tr><tr><td><a href="#part" title="Part II. Part Two Title">Part II. Part Two Title</a></td></tr><tr><td><a href="#chapter" title="Chapter 1. XRef Tests">Chapter 1. XRef Tests</a></td></tr><tr><td><a href="#appendix" title="Appendix A. A Very Short Appendix">Appendix A. A Very Short Appendix</a></td></tr><tr><td><a href="#table" title="Table 4.1. A Table">Table 4.1. A Table</a></td></tr><tr><td><a href="#figure" title="Figure 4.1. A Figure">Figure 4.1. A Figure</a></td></tr><tr><td><a href="#example" title="Example 4.1. An Example">Example 4.1. An Example</a></td></tr><tr><td><a href="#equation" title="Equation 4.1. An Equation"></a></td></tr><tr><td><a href="#reference" title="Reference">Reference</a></td></tr><tr><td><a href="#bib1" title="A Test Bibliography">A Test Bibliography</a></td></tr><tr><td><a href="#gloss" title="Example Glossary">Example Glossary</a></td></tr><tr><td><a href="#index" title="Index">Index</a></td></tr></table><p>This is the first reference to <i>XML</i>.
+This is the second reference to <a href="#xml"><i>XML</i></a>.
+These are references without <tt>linkend</tt>
+attributes: <i>XML</i>, <i>XML</i>.</p><h4>Links</h4><p>More <a href="http://www.jclark.com/dsssl/" target="_top">DSSSL information</a>
+is available.</p><p>There is <a href="#part" title="Part II. Part Two Title">a second part</a> in this book.</p><p>This is the <a href="#chapter" title="Chapter 1. XRef Tests"></a>
+chapter.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="stchap"></a>Chapter 2. Section Tests</h2></div><div><h3 class="subtitle"><i>Section Tests Subtitle</i></h3></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2766927">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2767538">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2772232"></a>
+<a class="indexterm" name="id2772254"></a>
+
+<a class="indexterm" name="id2772277"></a>
+<a class="indexterm" name="id2772307"></a>
+
+<a class="indexterm" name="id2772330"></a>
+<a class="indexterm" name="id2772369"></a>
+
+<a class="indexterm" name="id2772392"></a>
+<a class="indexterm" name="id2772423"></a>
+<a class="indexterm" name="id2772453"></a></p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect1"><a name="secttest1"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest1"></a>a sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2772568"></a>
+<a class="indexterm" name="id2772607"></a>
+<a class="indexterm" name="id2772638"></a>
+
+<a class="indexterm" name="id2772660"></a>
+<a class="indexterm" name="id2772640"></a>
+<a class="indexterm" name="id2772609"></a>
+
+<a class="indexterm" name="id2766686"></a>
+<a class="indexterm" name="id2766717"></a>
+<a class="indexterm" name="id2766748"></a>
+<a class="indexterm" name="id2766787"></a>
+<a class="indexterm" name="id2766825"></a>
+<a class="indexterm" name="id2766856"></a></p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2766927"></a><div class="titlepage"><div><h3 class="title"><a name="id2766927"></a>a sect2 title</h3></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2766958"></a><div class="titlepage"><div><h4 class="title"><a name="id2766958"></a>a sect3 title</h4></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2766987"></a>
+<a class="indexterm" name="id2767026"></a>
+<a class="indexterm" name="id2767064"></a>
+
+<a class="indexterm" name="id2767087"></a>
+<a class="indexterm" name="id2767110"></a>
+<a class="indexterm" name="id2767141"></a>
+<a class="indexterm" name="id2767179"></a>
+<a class="indexterm" name="id2767218"></a>
+<a class="indexterm" name="id2767257"></a></p><div class="sect4"><a name="id2767279"></a><div class="titlepage"><div><h5 class="title"><a name="id2767279"></a>a sect4 title</h5></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2767309"></a><div class="titlepage"><div><h6 class="title"><a name="id2767309"></a>a sect5 title</h6></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="secttest2"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2767369"></a>another sect1 title</h2></div><div><h2 class="subtitle">a sect1 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2767416"></a>
+<a class="indexterm" name="id2767438"></a>
+<a class="indexterm" name="id2767477"></a>
+<a class="indexterm" name="id2767516"></a></p><div class="sect2"><a name="id2767538"></a><div class="titlepage"><div><h3 class="title"><a name="id2767544"></a>another sect2 title</h3></div><div><h2 class="subtitle">a sect2 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2767592"></a><div class="titlepage"><div><h4 class="title"><a name="id2767598"></a>another sect3 title</h4></div><div><h2 class="subtitle">a sect3 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2767647"></a><div class="titlepage"><div><h5 class="title"><a name="id2767653"></a>another sect4 title</h5></div><div><h2 class="subtitle">a sect4 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2767067"></a><div class="titlepage"><div><h6 class="title"><a name="id2767182"></a>another sect5 title</h6></div><div><h2 class="subtitle">a sect5 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="secttest3"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest3"></a>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div><div class="sect1"><a name="secttest4"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest4"></a>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2889294"></a>Chapter 3. Inline Tests</h2></div></div><div class="simplesect"><a name="id2889309"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2889309"></a>Testing &#8216;Quotes&#8217; in a title</h2></div></div><p>Footnotes<sup>[<a name="fn1" href="#ftn.fn1">2</a>]</sup> are inlines.
+Sort of<sup>[<a name="id2889361" href="#ftn.id2889361">3</a>]</sup>.
+Another footnote<sup>[<a href="#ftn.fn1">2</a>]</sup>.</p><table class="simplelist" border="0" summary="Simple list"><tr><td>Abbrev</td><td>GUIIcon</td><td><tt>SGMLTag</tt> (Attribute)</td></tr><tr><td>Acronym</td><td>GUILabel</td><td><tt>SGMLTag</tt> (AttValue)</td></tr><tr><td>Action</td><td>GUIMenu</td><td><tt>SGMLTag</tt> (Element)</td></tr><tr><td>Application</td><td>GUISubMenu</td><td><tt>&lt;/SGMLTag&gt;</tt> (EndTag)</td></tr><tr><td>[Citation]</td><td>Hardware</td><td><tt>&amp;SGMLTag;</tt> (GenEntity)</td></tr><tr><td>CiteRefEntry RefEntryTitle(n)</td><td><p><img src="emc2.gif"></p></td><td><tt>&amp;#SGMLTag;</tt> (NumCharRef)</td></tr><tr><td><i>Citetitle</i></td><td>Interface</td><td><tt>%SGMLTag;</tt> (ParamEntity)</td></tr><tr><td><tt>ClassName</tt></td><td>InterfaceDefinition</td><td><tt>&lt;?SGMLTag&gt;</tt> (PI)</td></tr><tr><td><b>Command</b></td><td><b>KeyCap</b></td><td><tt>&lt;!--SGMLTag--&gt;</tt> (SGMLComment)</td></tr><tr><td><i>Comment</i> (Comment)</td><td>KeyCode</td><td><tt>&lt;SGMLTag&gt;</tt> (StartTag)</td></tr><tr><td><tt>ComputerOutput</tt></td><td>Key-Combo</td><td><tt>SGMLTag</tt></td></tr><tr><td>Database</td><td>KeySym</td><td><i><tt>StructField</tt></i></td></tr><tr><td>ErrorName</td><td><tt>Literal</tt></td><td>StructName</td></tr><tr><td>ErrorType</td><td>Markup</td><td><sub>Subscript</sub></td></tr><tr><td><tt>&lt;<a href="mailto:Email">Email</a>&gt;</tt></td><td><i>MediaLabel</i></td><td><sup>Superscript</sup></td></tr><tr><td><i>Emphasis</i></td><td>MouseButton</td><td>Symbol</td></tr><tr><td><tt>EnVar</tt></td><td><tt>Option</tt></td><td><tt>SystemItem</tt></td></tr><tr><td>ErrorCode</td><td>[Optional]</td><td>Token</td></tr><tr><td><tt>Filename</tt></td><td><i><tt>Parameter</tt></i></td><td>Trademark&#8482;</td></tr><tr><td><i>Firstterm</i></td><td>Phrase</td><td>Type</td></tr><tr><td><i>ForeignPhrase</i></td><td><tt>Prompt</tt></td><td><b><tt>UserInput</tt></b></td></tr><tr><td><tt>Function</tt></td><td>Property</td><td><i>WordAsWord</i></td></tr><tr><td>GUIMenuItem</td><td>&#8220;Quote&#8221;</td><td>ProductName&#8482;</td></tr><tr><td>GUIButton</td><td><i><tt>Replaceable</tt></i></td><td>&nbsp;</td></tr><tr><td>GUIButton (with Accel)</td><td>ReturnValue</td><td>&nbsp;</td></tr></table><p>And here are a couple of index terms, as another test (of 
+index terms, not inlines).
+<a class="indexterm" name="id2890486"></a>
+<a class="indexterm" name="id2890514"></a></p></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.fn1" href="#fn1">2</a>] </sup>Like this!</p></div><div class="footnote"><p><sup>[<a name="ftn.id2889361" href="#id2889361">3</a>] </sup>Well, the marks are, anyway!</p></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2890546"></a>Chapter 4. Block Tests</h2></div></div><div class="simplesect"><a name="id2890560"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2890560"></a>Formal Objects</h2></div></div><h5>Example</h5><div class="example"><p><a name="example"></a><b>Example 4.1. An Example</b></p><p>This is an example of a trivial example.</p></div><h5>Figure</h5><div class="figure"><p><a name="figure"></a><b>Figure 4.1. A Figure</b></p><pre class="screen">This is an example of a trivial figure.</pre></div><h5>Equation</h5><div class="equation"><p><a name="equation"></a><b>Equation 4.1. An Equation</b></p><p><img src="emc2.gif"></p></div><h5>Table</h5><div class="table"><p><a name="table"></a><b>Table 4.1. A Table</b></p><table summary="A Table" border="1"><colgroup><col><col></colgroup><tbody><tr><td>1</td><td>1</td></tr><tr><td>2</td><td>4</td></tr><tr><td>3</td><td>9</td></tr></tbody></table></div></div><div class="simplesect"><a name="id2890880"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2890880"></a>Informal Objects</h2></div></div><h5>InformalExample</h5><div class="informalexample" id="iexample"><a name="iexample"></a><p>This is an example of a trivial, informal example.</p></div><h5>InformalEquation</h5><div class="informalequation" id="iequation"><a name="iequation"></a><p><img src="emc2.gif"></p></div><h5>InformalTable</h5><div class="informaltable" id="itable"><a name="itable"></a><table border="1"><colgroup><col><col></colgroup><tbody><tr><td>1</td><td>1</td></tr><tr><td>2</td><td>8</td></tr><tr><td>3</td><td>27</td></tr></tbody></table></div></div><div class="simplesect"><a name="id2891104"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2891104"></a>Admonitions</h2></div></div><h5>Note</h5><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2891133"></a>Note</h3><p>Consider yourself noted.</p><p>Second para.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2891156"></a>Note</h3><p>Consider yourself noted, simply.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2891172"></a>NoteTitle</h3><p>Consider yourself noted.</p><p>Second para, with a title.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2891204"></a>Att</h3><p>Consider yourself noted, simply.</p><p>With a title</p></div><h5>Important</h5><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2891250"></a>Important</h3><p>Consider yourself important.</p></div><h5>Tip</h5><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2891269"></a>Tip</h3><p>Consider yourself tipped.</p></div><h5>Warning</h5><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2891309"></a>Warning</h3><p>Consider yourself warned.</p></div><h5>Caution</h5><div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2891339"></a>Caution</h3><p>Consider yourself cautioned.</p></div><h5>SimPara in Caution</h5><div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2891369"></a>Simple Caution</h3><p>A simpler caution.</p></div></div><div class="simplesect"><a name="id2891393"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2891393"></a>Other Objects</h2></div></div><h5>Screen</h5><pre class="screen">This
+  is                  With a line-annotation
+    a 
+     screen
+     This
+    is                With a line-annotation
+  a 
+screen
+This
+  is                  With a line-annotation
+    a 
+     screen</pre><h5>ProgramListing</h5><pre class="programlisting">This
+  is
+    a 
+programlisting</pre><h5>Address</h5><div class="address">Norman Walsh<br>
+ArborText, Inc.<br>
+1000 Victors Way<br>
+Ann Arbor, MI 48108<br>
+US<br>
+<br>
+Voice: 313.997.0200<br>
+Fax: 313.997.0201<br>
+<br>
+Email: <tt>&lt;<a href="mailto:nwalsh at arbortext.com">nwalsh at arbortext.com</a>&gt;</tt><br>
+WWW: http://www.arbortext.com/</div><h5>BlockQuote</h5><blockquote class="blockquote"><p>The universe that we observe has precisely the properties we should 
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&#8212;Richard Dawkins</p></blockquote><h5>Procedure</h5><div class="procedure"><a name="id2891653"></a><ol><li><a name="id2891659"></a><p>This is the first step</p></li><li><a name="id2891680"></a><p>This is the second step</p><ol type="a"><li><a name="id2891711"></a><p>This is the first substep</p></li><li><a name="id2891635"></a><p>This is the second substep</p></li></ol></li><li><a name="id2891752"></a><p>This is the third step</p></li></ol></div><h5>Procedure With Title</h5><div class="procedure"><a name="id2891789"></a><p><b>Same Procedure with a Title</b></p><ol><li><a name="id2891802"></a><p>This is the first step</p></li><li><a name="id2891824"></a><p>This is the second step</p><ol type="a"><li><a name="id2891855"></a><p>This is the first substep</p></li><li><a name="id2891876"></a><p>This is the second substep</p></li></ol></li><li><a name="id2891900"></a><p>This is the third step</p></li></ol></div><h5>SideBar</h5><div class="sidebar"><a name="id2891938"></a><p class="title"><b>What About Bob?</b></p><p>This is a sidebar.</p></div><h5>MsgSet</h5><p>It's not really clear how <tt>MsgSet</tt> should be presented.
+I expect that it's fairly application, if not document, specific.</p><div class="msgentry"><a name="id2891998"></a><div class="msg"><a name="id2892004"></a><p>Record failed CRC</p><p>Record <i><tt>n</tt></i>
+                    in <i><tt>database</tt></i></p><p>File read error on 
+                   <i><tt>database</tt></i></p><p>Panic! Corrupt record!</p></div><div class="msginfo"><a name="id2892127"></a><p><b>Level: </b>severe</p><p><b>Origin: </b>server</p><p><b>Audience: </b>all</p></div><div class="msgexplan"><a name="id2892158"></a><p>        Indicates that some sort of error occured attempting to load
+        a record from the database.  Retry.  If failure persists,
+        contact the database administrator.
+        </p></div></div><h5>LiteralLayout</h5><div class="literallayout">This is a<br>
+literal<br>
+       layout</div><p><div class="literallayout">This is a<br>
+literal<br>
+       layout<br>
+  in a para</div></p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2892239"></a>Chapter 5. List Tests</h2></div></div><div class="simplesect"><a name="id2892253"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2892253"></a>OrderedLists</h2></div></div><h5>Default Numeration</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2892298"></a>One</p></li><li><a name="id2892313"></a><pre class="programlisting">this one starts with
+a program listing
+what happens?</pre></li><li><a name="id2892336"></a><pre class="synopsis">this one starts with
+a synopsis
+what happens?</pre></li><li><p><a name="id2892358"></a>para first</p><pre class="synopsis">this one has
+a synopsis
+what happens?</pre></li><li><p><a name="id2892388"></a>Three</p><pre class="screen">A
+Screen
+Here</pre></li><li><p><a name="id2892417"></a>Four</p></li></ol></div><h5>Arabic Numeration</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2892450"></a>One</p></li><li><p><a name="id2892486"></a>Two</p></li><li><p><a name="id2892501"></a>Three</p></li><li><p><a name="id2892516"></a>Four</p></li></ol></div><h5>Arabic Numeration (Long)</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2892549"></a>One</p></li><li><p><a name="id2892586"></a>Two</p></li><li><p><a name="id2892601"></a>Three</p></li><li><p><a name="id2892617"></a>Four</p></li><li><p><a name="id2892633"></a>Five</p></li><li><p><a name="id2892648"></a>Six</p></li><li><p><a name="id2892664"></a>Seven</p></li><li><p><a name="id2892680"></a>Eight</p></li><li><p><a name="id2892696"></a>Nine</p></li><li><p><a name="id2892711"></a>Ten</p></li><li><p><a name="id2892727"></a>Eleven</p></li></ol></div><h5>UpperAlpha Numeration</h5><div class="orderedlist"><ol type="A"><li><p><a name="id2892760"></a>One</p></li><li><p><a name="id2892796"></a>Two</p></li><li><p><a name="id2892812"></a>Three</p></li><li><p><a name="id2892828"></a>Four</p></li></ol></div><h5>LowerAlpha Numeration</h5><div class="orderedlist"><ol type="a"><li><p><a name="id2892860"></a>One</p></li><li><p><a name="id2892897"></a>Two</p></li><li><p><a name="id2892912"></a>Three</p></li><li><p><a name="id2892928"></a>Four</p></li></ol></div><h5>UpperRoman Numeration</h5><div class="orderedlist"><ol type="I"><li><p><a name="id2892961"></a>One</p></li><li><p><a name="id2892997"></a>Two</p></li><li><p><a name="id2893013"></a>Three</p></li><li><p><a name="id2893029"></a>Four</p></li></ol></div><h5>LowerRoman Numeration</h5><div class="orderedlist"><ol type="i"><li><p><a name="id2893062"></a>One</p></li><li><p><a name="id2893098"></a>Two</p></li><li><p><a name="id2893114"></a>Three</p></li><li><p><a name="id2893129"></a>Four</p></li></ol></div><h5>Continued</h5><p>First list:
+<div class="orderedlist"><ol type="1"><li><p><a name="id2893184"></a>One</p></li><li><p><a name="id2893199"></a>Two</p></li><li><p><a name="id2893215"></a>Three</p></li><li><p><a name="id2893231"></a>Four</p></li></ol></div></p><p>Second list:
+<div class="orderedlist"><ol start="5" type="1"><li><p><a name="id2893254"></a>Five</p></li><li><p><a name="id2893286"></a>Six</p></li><li><p><a name="id2893301"></a>Seven</p></li><li><p><a name="id2893317"></a>Eight</p></li><li><p><a name="id2893333"></a>Nine</p></li><li><p><a name="id2893348"></a>Ten</p></li></ol></div></p></div><div class="simplesect"><a name="id2893367"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2893367"></a>ItemizedLists</h2></div></div><h5>Default Presentation</h5><div class="itemizedlist"><ul><li><p><a name="id2893401"></a>One</p></li><li><a name="id2893416"></a><pre class="programlisting">One-point-five. This one starts with
+a program listing
+what happens?</pre></li><li><p><a name="id2893439"></a>Two</p></li><li><p><a name="id2893455"></a>Three</p></li><li><p><a name="id2893471"></a>Four</p></li></ul></div><h5>Block Elements in a List</h5><div class="itemizedlist"><ul><li><p><a name="id2893508"></a>One</p><p>Another para.</p></li><li><p><a name="id2893532"></a>Two</p></li><li><p><a name="id2893548"></a>Three</p></li><li><p><a name="id2893563"></a>Four</p></li></ul></div><h5>Alternate Mark and OverRide</h5><div class="itemizedlist"><ul><li style="list-style-type: square"><p><a name="id2893597"></a>TeX and LaTeX</p></li><li style="list-style-type: disc"><p><a name="id2893627"></a>Troff</p></li><li style="list-style-type: square"><p><a name="id2893643"></a>Lout</p></li><li style="list-style-type: none"><p><a name="id2893664"></a>Test</p></li></ul></div><h5>No mark Presentation</h5><div class="itemizedlist"><ul><li style="list-style-type: none"><p><a name="id2893712"></a>One</p></li><li style="list-style-type: disc"><p><a name="id2893732"></a>Two</p></li><li style="list-style-type: none"><p><a name="id2893747"></a>Three</p></li><li style="list-style-type: none"><p><a name="id2893763"></a>Four</p></li></ul></div></div><div class="simplesect"><a name="id2893782"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2893782"></a>VariableLists</h2></div></div><div class="variablelist"><dl><dt><a name="id2893803"></a><span class="term">Term1</span></dt><dd><p><a name="id2893817"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2893841"></a><span class="term">Term2</span></dt><dd><p><a name="id2893855"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2893878"></a><span class="term">Term3</span></dt><dd><p><a name="id2893892"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="itemizedlist"><ul><li><p><a name="id2893919"></a>One</p></li><li><p><a name="id2893935"></a>Two</p></li><li><p><a name="id2893950"></a>Three</p></li><li><p><a name="id2893966"></a>Four</p></li></ul></div><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2894001"></a><span class="term">Term4</span></dt><dd><p><a name="id2894015"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd></dl></div><div class="variablelist"><dl><dt><a name="id2894047"></a><span class="term">Another List</span></dt><dd><p><a name="id2894061"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2894085"></a><span class="term">ProgramListing</span></dt><dd><pre class="programlisting">A ProgramListing
+Is the First Element
+of this VarListEntry</pre><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd></dl></div></div><div class="simplesect"><a name="id2894140"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2894140"></a>SimpleLists</h2></div></div><h5>Inline</h5><p>An inline simple list:
+<span class="simplelist">One, Two, Three, Four, Five, Six, Seven</span></p><h5>Horiz</h5><table class="simplelist" border="0" summary="Simple list"><tr><td>One</td><td>Two</td><td>Three</td></tr><tr><td>Four</td><td>Five</td><td>Six</td></tr><tr><td>Seven</td><td>&nbsp;</td><td>&nbsp;</td></tr></table><h5>Vert</h5><table class="simplelist" border="0" summary="Simple list"><tr><td>One</td><td>Four</td><td>Seven</td></tr><tr><td>Two</td><td>Five</td><td>&nbsp;</td></tr><tr><td>Three</td><td>Six</td><td>&nbsp;</td></tr></table></div><div class="simplesect"><a name="id2894415"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2894415"></a>More Complex List Item Content</h2></div></div><div class="itemizedlist"><ul><li><p><a name="id2894436"></a>One</p><p>Second para</p></li><li><p><a name="id2894459"></a>Two</p><p>Second para</p></li><li><a name="id2894483"></a><p>Three</p><p>Second para</p></li><li><p><a name="id2894506"></a>Four</p><p>Second para</p></li><li><a name="id2894530"></a><p><b>Formal Element</b> Five</p><p>Second para</p></li><li><p><a name="id2894569"></a>Six</p></li></ul></div><div class="orderedlist"><ol type="1"><li><p><a name="id2894603"></a>One</p><p>Second para</p></li><li><p><a name="id2894627"></a>Two</p><p>Second para</p></li><li><a name="id2894650"></a><p>Three</p><p>Second para</p></li><li><p><a name="id2894674"></a>Four</p><p>Second para</p></li><li><a name="id2894698"></a><p><b>Formal Element</b> Five</p><p>Second para</p></li><li><p><a name="id2894737"></a>Six</p></li></ol></div></div><div class="simplesect"><a name="id2894756"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2894756"></a>Segmented List</h2></div></div><p><b>State Birds</b></p><p><b>State: </b>Alabama</p><p><b>Bird: </b>Yellowhammer</p><p><b>State: </b>Alaska</p><p><b>Bird: </b>Willow Ptarmigan</p><p><b>State: </b>Arizona</p><p><b>Bird: </b>Cactus Wren</p><p><b>State: </b>Arkansas</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>California</p><p><b>Bird: </b>California Valley Quail</p><p><b>State: </b>Colorado</p><p><b>Bird: </b>Lark Bunting</p><p><b>State: </b>Connecticut</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Delaware</p><p><b>Bird: </b>Blue Hen Chicken</p><p><b>State: </b>Florida</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Georgia</p><p><b>Bird: </b>Brown Thrasher</p><p><b>State: </b>Hawaii</p><p><b>Bird: </b>Nene</p><p><b>State: </b>Idaho</p><p><b>Bird: </b>Mountain Bluebird</p><p><b>State: </b>Illinois</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Indiana</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Iowa</p><p><b>Bird: </b>Eastern Goldfinch</p><p><b>State: </b>Kansas</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Kentucky</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Louisiana</p><p><b>Bird: </b>Eastern Brown Pelican</p><p><b>State: </b>Maine</p><p><b>Bird: </b>Chickadee</p><p><b>State: </b>Maryland</p><p><b>Bird: </b>Baltimore Oriole</p><p><b>State: </b>Massachusetts</p><p><b>Bird: </b>Chickadee</p><p><b>State: </b>Michigan</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Minnesota</p><p><b>Bird: </b>Common Loon</p><p><b>State: </b>Mississippi</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Missouri</p><p><b>Bird: </b>Bluebird</p><p><b>State: </b>Montana</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Nebraska</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Nevada</p><p><b>Bird: </b>Mountain Bluebird</p><p><b>State: </b>New Hampshire</p><p><b>Bird: </b>Purple Finch</p><p><b>State: </b>New Jersey</p><p><b>Bird: </b>Eastern Goldfinch</p><p><b>State: </b>New Mexico</p><p><b>Bird: </b>Roadrunner</p><p><b>State: </b>New York</p><p><b>Bird: </b>Bluebird</p><p><b>State: </b>North Carolina</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>North Dakota</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Ohio</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Oklahoma</p><p><b>Bird: </b>Scissor-tailed Flycatcher</p><p><b>State: </b>Oregon</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Pennsylvania</p><p><b>Bird: </b>Ruffed Grouse</p><p><b>State: </b>Rhode Island</p><p><b>Bird: </b>Rhode Island Red</p><p><b>State: </b>South Carolina</p><p><b>Bird: </b>Great Carolina Wren</p><p><b>State: </b>South Dakota</p><p><b>Bird: </b>Ring-necked Pheasant</p><p><b>State: </b>Tennessee</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Texas</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Utah</p><p><b>Bird: </b>American Seagull</p><p><b>State: </b>Vermont</p><p><b>Bird: </b>Hermit Thrush</p><p><b>State: </b>Virginia</p><p><b>Bird: </b>Cardinal </p><p><b>State: </b>Washington</p><p><b>Bird: </b>Willow Goldfinch</p><p><b>State: </b>West Virginia</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Wisconsin</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Wyoming</p><p><b>Bird: </b>Western Meadowlark</p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2895950"></a>Chapter 6. Table Tests</h2></div></div><h5>Alternate Alignment on Entry</h5><div class="informaltable" id="id2895984"><a name="id2895984"></a><table border="1"><colgroup><col><col><col align="center"></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left">left</td><td align="center">center</td><td>center</td></tr><tr><td align="center">center</td><td align="right">right</td><td align="right">right</td></tr></tbody></table></div><div class="informaltable" id="id2896206"><a name="id2896206"></a><table border="1"><colgroup><col><col><col align="center"></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left">left</td><td align="center">center</td><td>center</td></tr><tr><td align="center">center</td><td align="right">right</td><td align="right">right</td></tr></tbody></table></div><div class="informaltable" id="id2896423"><a name="id2896423"></a><table border="1"><colgroup><col><col><col align="center"></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left"><i>left emph</i></td><td align="center"><b>center emph/bold</b></td><td><tt>center literal</tt></td></tr><tr><td align="center"><tt>center filename</tt></td><td align="right"><b>right command</b></td><td align="right">right</td></tr></tbody></table></div><h5>Absolute Widths</h5><div class="informaltable" id="id2896688"><a name="id2896688"></a><table border="1"><colgroup><col><col><col align="center"></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td>e1</td><td>e2</td><td>e3</td></tr><tr><td>e1</td><td>e2</td><td>e3</td></tr><tr><td>e1</td><td>e2</td><td>e3</td></tr></tbody></table></div><h5>Relative Widths</h5><div class="informaltable" id="id2896927"><a name="id2896927"></a><table border="1"><colgroup><col><col></colgroup><tbody><tr><td align="left"><p>left</p></td><td align="center"><p>center</p></td></tr><tr><td align="center"><p>center</p></td><td align="right"><p>right</p></td></tr></tbody></table></div><h5>Too many cells</h5><p>This is a broken table.  There are too many cells in the second row.
+YMMV.  Don't do this.</p><div class="informaltable" id="id2897095"><a name="id2897095"></a><table border="1"><colgroup><col><col></colgroup><tbody><tr><td>1</td><td>2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td></tr></tbody></table></div><h5>Missing Entrys</h5><div class="table"><p><a name="t1"></a><b>Table 6.1. Table Title</b></p><table summary="Table Title" width="100%" border="1"><colgroup><col><col><col></colgroup><thead><tr><th><p>head1</p></th><th><p>head2</p></th><th><p>head3</p></th></tr></thead><tbody><tr><td><p>a1</p></td><td><p>a2</p></td><td><p>a3</p></td></tr><tr><td><p>b1</p></td><td><p>b3</p></td></tr><tr><td colspan="0"><p>c2</p></td><td><p>c3</p></td></tr></tbody></table></div><h5>Complex</h5><div class="informaltable" id="id2897480"><a name="id2897480"></a><table width="100%" border="1"><colgroup><col><col align="right"><col align="center"><col><col><col align="left"></colgroup><tbody><tr><td>A1</td><td>A2</td><td>A3</td><td rowspan="2">A4</td><td>A5</td><td>A6</td></tr><tr><td>B1</td><td>B2</td><td>B3</td><td>B5</td><td>B6</td></tr><tr><td>C1</td><td>C2</td><td>C3</td><td>C4</td><td rowspan="3" colspan="2" valign="middle">C5</td></tr><tr><td colspan="0">D2</td><td>D3</td><td>D4</td></tr><tr><td>E1</td><td colspan="2" align="left">E2</td><td>E4</td></tr><tr><td>F1</td><td>F2</td><td>F3</td><td>F4</td><td>F5</td><td>F6</td></tr></tbody></table></div><h5>With Footnotes</h5><div class="informaltable" id="id2897924"><a name="id2897924"></a><table border="1"><colgroup><col><col></colgroup><tbody><tr><td>foo<sup>[<a name="fnrex1a" href="#ftn.fnrex1a">a</a>]</sup></td><td>3<sup>[<a name="fnrex1b" href="#ftn.fnrex1b">b</a>]</sup></td></tr><tr><td>bar<sup>[<a href="#ftn.fnrex1a">a</a>]</sup></td><td>5<sup>[<a href="#ftn.fnrex1b">b</a>]</sup></td></tr></tbody><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.fnrex1a" href="#fnrex1a">a</a>] </sup>A meaningless
+word</p></div><div class="footnote"><p><sup>[<a name="ftn.fnrex1b" href="#fnrex1b">b</a>] </sup>A meaningless
+number</p></div></td></tr></table></div><h5>A Big One</h5><div class="informaltable" id="id2898086"><a name="id2898086"></a><table border="1"><colgroup><col><col><col><col><col><col><col><col><col><col><col><col><col><col><col></colgroup><thead><tr><th>H1</th><th>H2</th><th>H3</th><th>H4</th><th>H5</th><th>H6</th><th>H7</th><th>H8</th><th>H9</th><th>H10</th><th>H11</th><th>H12</th><th>H13</th><th>H14</th><th>H15</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr></tbody></table></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2902001"></a>Chapter 7. Index Term Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2902084">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2902430">Index Term Sect 2</a></dt><dt> <a href="#id2902596">Index Term Sect 3</a></dt></dl></dd></dl></div><p>Test data.</p><a class="indexterm" name="idx1"></a><a class="indexterm" name="idx2"></a><div class="sect1"><a name="id2902084"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2902084"></a>Index Term Sect 1</h2></div></div><p>Test data.</p><a class="indexterm" name="idx3"></a><a class="indexterm" name="fred"></a><a class="indexterm" name="idx5"></a><a class="indexterm" name="idx6"></a><a class="indexterm" name="idx7"></a><a class="indexterm" name="idx8"></a><a class="indexterm" name="idx9"></a><a class="indexterm" name="id2902363"></a><a class="indexterm" name="idx11"></a><div class="sect2"><a name="id2902430"></a><div class="titlepage"><div><h3 class="title"><a name="id2902430"></a>Index Term Sect 2</h3></div></div><p>Test data.</p><a class="indexterm" name="idx12"></a><a class="indexterm" name="idx13"></a><a class="indexterm" name="idx14"></a><a class="indexterm" name="idx15"></a></div><div class="sect2"><a name="id2902596"></a><div class="titlepage"><div><h3 class="title"><a name="id2902596"></a>Index Term Sect 3</h3></div></div><p>foo</p></div></div></div></div><div class="part" id="part"><div class="titlepage"><div><h1 class="title"><a name="part"></a>Part Two Title</h1></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>8 <a href="#id2902648">CmdSynopsis Tests</a></dt><dt>9 <a href="#id2903959">FuncSynopsis Tests</a></dt><dt>10 <a href="#id2904315">Callout Tests</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2902648"></a>Chapter 8. CmdSynopsis Tests</h2></div></div><h5>Very Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2902677"><a name="id2902677"></a><tt>cd</tt>  {<i><tt>directory</tt></i>}</div><h5>Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2902737"><a name="id2902737"></a><tt>cal</tt>  [-j] [-y] [month  [year]]</div><h5>Another Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2902844"><a name="id2902844"></a><tt>chgrp</tt>  [-R 
+     [-H | -L | -P]
+  ] [-f]  <i><tt>group</tt></i>   <i><tt>file</tt></i>... </div><h5>Slightly Complex CmdSynopsis</h5><div class="cmdsynopsis" id="id2903029"><a name="id2903029"></a><tt>emacs</tt>  [-t <i><tt>file</tt></i>] [-q] [-u <i><tt>user</tt></i>] [+<i><tt>number</tt></i>] [-f <i><tt>function</tt></i>...] [-l <i><tt>file</tt></i>...]  <i><tt>file</tt></i>... </div><h5>Quite Complex CmdSynopsis</h5><div class="cmdsynopsis" id="id2903221"><a name="id2903221"></a><tt>cccp</tt>  [-$] [-C] [-D<i><tt>name</tt></i> [=<i><tt>definition</tt></i>]...] [-dD] [-dM] [-I <i><tt>directory</tt></i>...] [-H] [-I-]<br> [-imacros <i><tt>file</tt></i>...] [-include <i><tt>file</tt></i>...] [-lang-c | -lang-c++ | -lang-objc] [-lint]<br> [-M | -MD | -MM | -MMD] [-nostdinc] [-P] [-pedantic] [-pedantic-errors] [-trigraphs] [-U<i><tt>name</tt></i>]<br> [-undef] [-Wtrigraphs] [-Wcomment] [-Wall] [-Wtraditional] {<i><tt>infile</tt></i> | -} {<i><tt>outfile</tt></i> | -}</div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2903959"></a>Chapter 9. FuncSynopsis Tests</h2></div></div><h5>Two Simple Parameters</h5><div class="funcsynopsis" id="id2903987"><a name="id2903987"></a><p><code><code class="funcdef">int <b class="fsfunc">max</b></code>(<var class="pdparam">int1</var>, <var class="pdparam">int2</var>);<br>int <var class="pdparam">int1</var>;<br>int <var class="pdparam">int2</var>;</code></p></div><h5>Variable Arguments</h5><div class="funcsynopsis" id="id2904072"><a name="id2904072"></a><pre class="funcsynopsisinfo">#include &lt;varargs.h&gt;</pre><p><code><code class="funcdef">int <b class="fsfunc">max</b></code>(...);</code></p></div><h5>Void</h5><div class="funcsynopsis" id="id2904150"><a name="id2904150"></a><p><code><code class="funcdef">int <b class="fsfunc">rand</b></code>();</code></p></div><h5>Function Pointer Arguments</h5><div class="funcsynopsis" id="id2904197"><a name="id2904197"></a><p><code><code class="funcdef">void <b class="fsfunc">qsort</b></code>(<var class="pdparam">dataptr</var>, <var class="pdparam">left</var>, <var class="pdparam">right</var>, <var class="pdparam">(* comp)</var>);<br>void *<var class="pdparam">dataptr</var>[];<br>int <var class="pdparam">left</var>;<br>int <var class="pdparam">right</var>;<br>int <var class="pdparam">(* comp)</var>
+      (void *, void *);</code></p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2904315"></a>Chapter 10. Callout Tests</h2></div></div><h5>CallOut (using AREASPEC)</h5><div class="programlistingco"><pre class="programlisting">@rem = '--*-Perl-*--
+ at echo off
+perl.exe %_batchname %$
+goto endofperl
+ at rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+ at DIRS = (&quot;/home/nwalsh/Mail&quot;);
+while (@DIRS) {
+    $dir = shift @DIRS;
+    opendir (DIR, $dir);
+    while ($fname = readdir(DIR)) {
+        $file = &quot;$dir/$fname&quot;;
+        next if ! -d $file;
+        next if $fname =~ /^\.\.?$/;
+
+        print &quot;$file\n&quot;;
+        push (@DIRS, $file);
+        &amp;compress ($file);
+    }
+}
+
+exit;</pre><div class="calloutlist"><a name="id2904508"></a><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a name="id2904516"></a><img src="../images/callouts/1.png" alt="1" border="0"></td><td valign="top" align="left"><p>The prologue handles embedding a Perl script in a DOS batch file.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2904562"></a><img src="../images/callouts/2.png" alt="2" border="0"></td><td valign="top" align="left"><p>The <tt>goto</tt> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2904609"></a><img src="../images/callouts/3.png" alt="3" border="0"></td><td valign="top" align="left"><p>The <tt>require</tt> statement sources in external program
+fragments.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2904642"></a><img src="../images/callouts/4.png" alt="4" border="0"></td><td valign="top" align="left"><p>The <tt>use</tt> statement is similar, but has additional
+utility.  It is a Perl5 function.  (Note that this callout area specifies
+both a line and a column.)</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2904684"></a><img src="../images/callouts/5.png" alt="5" border="0"></td><td valign="top" align="left"><p>This is a user subroutine call.</p></td></tr></table></div></div><h5>CallOut (using CO)</h5><pre class="programlisting">this is a line
+this is another line
+there's a <a name="callout1"></a><img src="../images/callouts/1.png" alt="1" border="0">callout in here.
+and there's another on the
+next line
+right here:<a name="callout2"></a><img src="../images/callouts/2.png" alt="2" border="0"></pre><div class="calloutlist"><a name="id2904755"></a><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a name="id2904775"></a><a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"></a> </td><td valign="top" align="left"><p>First callout.</p><p>Second para in first callout.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2904811"></a><a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Second callout.</p><p>Third para in second callout.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2904861"></a><a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"></a> <a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"></a> </td><td valign="top" align="left"><p>This paragraph describes <i>both</i> callouts.</p></td></tr></table></div></div></div><div class="part" id="id2904897"><div class="titlepage"><div><h1 class="title"><a name="id2904897"></a>A Reference Part</h1></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>I <a href="#reference">Reference</a></dt><dd><dl><dt><a href="#id2904934">RefEntryTitle</a></dt><dt><a href="#id2905125"><tt>Chop</tt></a></dt></dl></dd></dl></div><div class="reference"><a name="reference"></a><div class="titlepage"><div><h1 class="title"><a name="reference"></a>Reference</h1></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2904934">RefEntryTitle</a></dt><dt><a href="#id2905125"><tt>Chop</tt></a></dt></dl></div><div class="refentry"><h1 class="title"><a name="id2904934"></a>RefEntryTitle</h1><div class="refnamediv"><a name="id2904956"></a><h2>Name</h2>RefName1, RefName2 &#8212; Yes, there must be a purpose!</div><div class="refsynopsisdiv"><a name="id2904997"></a><h2>Synopsis</h2><pre class="synopsis">  A
+   Synopsis
+    Goes
+   Here</pre></div><div class="refsect1"><a name="id2905019"></a><h2><a name="id2905019"></a>A RefSect1</h2><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="refsect2"><a name="id2905046"></a><h3><a name="id2905046"></a>A RefSect2</h3><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="refsect3"><a name="id2905074"></a><h4><a name="id2905074"></a>A RefSect3</h4><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<sup>[<a name="id2905097" href="#ftn.id2905097">6</a>]</sup>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></div></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2905097" href="#id2905097">6</a>] </sup>This is a footnote in a refentry.</p></div></div></div><div class="refentry"><h1 class="title"><a name="id2905125"></a><tt>Chop</tt></h1><div class="refnamediv"><a name="id2905131"></a><h2>Name</h2><tt>Chop</tt> &#8212; strip trailing whitespace</div><div class="refsect1"><a name="id2905162"></a><h2><a name="id2905162"></a>Description</h2><p>     Returns the argument string without trailing whitespace.
+     <div class="example"><p><a name="id2905184"></a><b>Example 2. chop() example</b></p><pre class="programlisting">$trimmed = Chop($line);</pre></div>
+    </p></div></div></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="appendix"></a>Appendix A. A Very Short Appendix</h2></div></div><p>Blah.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2905255"></a>Appendix B. A Very Long Appendix</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2905906">a sect1 title</a></dt><dd><dl><dt> <a href="#id2905945">a sect2 title</a></dt></dl></dd><dt> <a href="#id2906076">another sect1 title</a></dt><dd><dl><dt> <a href="#id2906130">another sect2 title</a></dt></dl></dd><dt> <a href="#id2906365">another sect1 title</a></dt><dt> <a href="#id2906398">another sect1 title</a></dt></dl></div><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="sect1"><a name="id2905906"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2905906"></a>a sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2905945"></a><div class="titlepage"><div><h3 class="title"><a name="id2905945"></a>a sect2 title</h3></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2905976"></a><div class="titlepage"><div><h4 class="title"><a name="id2905976"></a>a sect3 title</h4></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2906006"></a><div class="titlepage"><div><h5 class="title"><a name="id2906006"></a>a sect4 title</h5></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2906037"></a><div class="titlepage"><div><h6 class="title"><a name="id2906037"></a>a sect5 title</h6></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="id2906076"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2906082"></a>another sect1 title</h2></div><div><h2 class="subtitle">a sect1 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2906130"></a><div class="titlepage"><div><h3 class="title"><a name="id2906136"></a>another sect2 title</h3></div><div><h2 class="subtitle">a sect2 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2906185"></a><div class="titlepage"><div><h4 class="title"><a name="id2906191"></a>another sect3 title</h4></div><div><h2 class="subtitle">a sect3 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2906248"></a><div class="titlepage"><div><h5 class="title"><a name="id2906254"></a>another sect4 title</h5></div><div><h2 class="subtitle">a sect4 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2906302"></a><div class="titlepage"><div><h6 class="title"><a name="id2906309"></a>another sect5 title</h6></div><div><h2 class="subtitle">a sect5 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="id2906365"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2906365"></a>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div><div class="sect1"><a name="id2906398"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2906398"></a>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div><div id="bib1" class="bibliography"><div class="titlepage"><div><h2 class="title"><a name="bib1"></a>A Test Bibliography</h2></div></div><p>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</p><div class="bibliodiv"><h3 class="title"><a name="id2906465">Books</a></h3><div id="id2906479" class="biblioentry"><a name="id2906479"></a><p><span class="abbrev">[AhoSethiUllman96] </span><span class="authorgroup">Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </span><span class="title"><I>Compilers, Principles, Techniques, and Tools</I>. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span><span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span><span class="isbn">0-201-10088-6. </span><span class="editor">James T. DeWolf. </span><span class="seriesinfo"><span class="title"><I>Computer Science</I>. </span><span class="editor">Michael A. Harrison. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span></span></p></div></div><div class="bibliodiv"><h3 class="title"><a name="id2906712">Periodicals</a></h3><div id="walsh97" class="biblioentry"><a name="walsh97"></a><p><span class="abbrev">[Walsh97] </span><span class="biblioset">&#8220;A Guide to XML&#8221;. <span class="author">Norman Walsh. </span><span class="pubdate">1997. </span><span class="copyright">Copyright © 1997 ArborText, Inc.. </span><span class="pagenums">97-108. </span></span><span class="biblioset"><I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span><span class="issn">1085-2301. </span><span class="editor">Dan Connolly. </span></span></p></div><div id="walsh96" class="bibliomixed"><a name="walsh96"></a><p>  <span class="bibliomset">    <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+    &#8220;Introduction to Cascading Style Sheets&#8221;.
+  </span>
+  <span class="bibliomset">    <I>The World Wide Web Journal</I>.
+    <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+    <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+    <span class="corpname">The World Wide Web Consortium</span>.
+    <span class="pubdate">Winter, 1996</span></span>.</p></div><div id="id2907023" class="biblioentry"><a name="id2907023"></a><p><span class="abbrev">[Abbrev] </span><span class="title"><I>A Really Full BiblioEntry</I>. </span><span class="subtitle">Subtitle. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span><span class="artpagenums">ArtPageNums. </span><span class="author">AuthorFirstname AuthorSurname. </span><span class="authorinitials">AuthorInitials. </span><span class="collab"><span class="collabname">The names of some collaborators. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span><span class="confgroup"><span class="confdates">confdates. </span><span class="conftitle">conftitle. </span><span class="confnum">confnum. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="confsponsor">confsponsor. </span>. </span><span class="contractnum">ContractNum. </span><span class="contractsponsor">ContractSponsor. </span><span class="contrib">Contrib. </span><span class="copyright">Copyright © 1998 Copyright holder. </span><span class="corpname">CorpName. </span><span class="date">Date. </span><span class="edition">Edition. </span><span class="editor">EditorFirstName EditorSurname. </span><span class="firstname">FirstName. </span><span class="honorific">Honorific. </span><span class="isbn">ISBN. </span><span class="issn">ISSN. </span><span class="invpartnumber">InvPartNumber. </span><span class="issuenum">IssueNum. </span><span class="lineage">Lineage. </span><span class="orgname">OrgName. </span><span class="othercredit"><span class="firstname">OCFirstName. </span><span class="surname">OCSurname. </span>. </span><span class="othername">OtherName. </span><span class="pagenums">PageNums. </span><span class="productname">ProductName. </span><span class="productnumber">ProductNumber. </span><span class="pubdate">PubDate. </span><span class="publisher"><span class="publishername">PubPublisherName. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span></span><span class="publishername">PublisherName. </span><span class="pubsnumber">PubsNumber. </span><span class="releaseinfo">ReleaseInfo. </span><span class="revhistory"><tr><td align="left">Revision 1.0</td><td align="left">20 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.9</td><td align="left">19 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.4</td><td align="left">18 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span><span class="seriesinfo"><span class="title"><I>SeriesInfo Title</I>. </span><span class="editor">SeriesInfo Editor Firstname SeriesInfo Editor Surname. </span></span><span class="seriesvolnums">SeriesVolNums. </span><span class="surname">Surname. </span><span class="titleabbrev">TitleAbbrev. </span><span class="volumenum">VolumeNum. </span></p></div></div></div><div id="gloss" class="glossary"><div class="titlepage"><div><h2 class="title"><a name="gloss"></a>Example Glossary</h2></div></div><p>This is not a real glossary, it's just an example.</p><div class="glossdiv"><h3 class="title">E</h3><dl><dt><a name="xml">Extensible Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd></dl></div><div class="glossdiv"><h3 class="title">S</h3><dl><dt><a name="id2907996">SGML</a></dt><dd><p>See <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd><dt><a name="sgml">Standard Generalized
+  Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#xml">Extensible Markup Language</a>.</p></dd></dl></div></div><div id="index" class="index"><div class="titlepage"><div><h2 class="title"><a name="index"></a>Index</h2></div></div><p>This is a test index.</p><p><b>a formal para</b> this is a formal paragraph.</p><dt>Primary</dt><dd><dl><dt>Secondary 1</dt><dd><dl><dt>Tertiary 11</dt><dt>Tertiary 12</dt><dt>Tertiary 21</dt></dl></dd><dt>Secondary 2</dt><dd><dl><dt>Tertiary 21</dt></dl></dd></dl></dd><dt>primary</dt><dt>primary</dt><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary1</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary2</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>see ie</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt><dd><dl><dt>seealso ie</dt></dl></dd></dl></dd></dl></dd></div><div id="id2908480" class="index"><div class="titlepage"><div><h2 class="title"><a name="id2908480"></a>An Index with a Title</h2></div></div><div class="indexdiv">Symbols<dl><dt>!,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt><dt>[,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">A<dl><dt>sect2-level,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">C<dl><dt>chap-level,
+    <a href="c3.htm" target="_top">Index Term Tests</a>
+  </dt><dd><dl><dt>sec
+  </dt><dd><dl><dt>tert,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></dd></dl></dd></dl></div><div class="indexdiv">O<dl><dt>oft-repeated,
+    <a href="c3.htm" target="_top">Index Term Tests</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt><dd><dl><dt>with id,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div><div class="indexdiv">S<dl><dt>sect1-level,
+    <a href="c3.htm#aen10" target="_top"><i>Index Term Sect 1</i></a>
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd><dt>sect1-other
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/docbook40.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/docbook40.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/docbook40.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>DocBook V4.0 Example Document</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2862427"><div class="titlepage"><div><h1 class="title"><a name="id2862427"></a>DocBook V4.0 Example Document</h1></div><div><h3 class="author">Norman Walsh</h3></div><div><div class="abstract"><p><a name="id2862459"></a><b>Abstract</b></p><p>This document demonstrates the new tags in DocBook V4.0.</p><p>The focus of this document is to present examples of new elements,
+minor changes such as the addition of new attribute values are not
+included.</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#id2862488">Block-level Markup</a></dt><dt>2 <a href="#id2770763">Inline markup</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2862488"></a>Chapter 1. Block-level Markup</h2></div></div><p>There's a new simple-alternative for <tt>msgentry</tt>:
+<tt>simplemsgentry</tt>.</p><div class="simplemsgentry"><a name="id2601208"></a><p>The text of a message</p><div class="msgexplan"><a name="id2862538"></a><p>An explanation of the message.</p></div></div><div class="simplemsgentry"><a name="id2888672"></a><p>The text of a message</p><div class="msgexplan"><a name="id2888689"></a><p>An explanation of the message.</p></div></div><p>Longer descriptions are possible in a <tt>revhistory</tt>:
+</p><p>
+<div class="revhistory"><table border="0" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr><tr><td align="left">Revision 2</td><td align="left">today</td><td align="left">nwalsh</td></tr><tr><td align="left">Revision 1</td><td align="left">yesterday</td><td align="left">nwalsh</td></tr></table></div>
+</p><p>Ordered and itemized lists can have titles:</p><div class="itemizedlist"><p><b>Itemized List</b></p><ul><li><p><a name="id2767751"></a>First thing</p></li><li><p><a name="id2769756"></a>Second thing</p></li><li><p><a name="id2769767"></a>Third thing</p></li></ul></div><div class="itemizedlist"><p><b>Ordered List</b></p><ul><li><p><a name="id2769790"></a>First thing</p></li><li><p><a name="id2769801"></a>Second thing</p></li><li><p><a name="id2769811"></a>Third thing</p></li></ul></div><p>Linespecific environments can indicate line numbering:</p><pre class="programlisting">
+&lt;!ENTITY % linespecific.attrib
+	&quot;format		NOTATION
+			(linespecific)	'linespecific'
+         linenumbering	(numbered|unnumbered) 	#IMPLIED&quot;&gt;
+</pre><p>Added <tt>classsynopsis</tt> for documenting
+object-oriented programming language classes. Here's one example:</p><pre class="classsynopsis"> <span class="ooclass"><span class="modifier">public </span><span class="classname">TextFileWriter</span></span> extends <span class="ooclass"><span class="classname">HandlerBase</span></span> {
+
+<div class="fieldsynopsis">  <span class="modifier">private </span><span class="type">Writer </span><span class="varname">writer </span>;</div><div class="fieldsynopsis">  <span class="modifier">public </span><span class="type">String </span><span class="varname">writerName </span><span class="initializer">= &quot;MyWriter&quot;</span>;</div><div class="methodsynopsis">  <span class="modifier">static </span><span class="modifier">public </span><span class="void">void </span><span class="methodname">write</span>(<span class="methodparam"><span class="type">ResultTreeFragment </span><span class="parameter">frag</span></span>,
+                           <span class="methodparam"><span class="type">String </span><span class="parameter">file</span></span>)
+    throws <span class="exceptionname">SAXException</span>;</div>}</pre></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2770763"></a>Chapter 2. Inline markup</h2></div></div><p>The <tt>sgmltag</tt> element has new
+<tt>class</tt> attribute values:
+<tt>xmlpi</tt> and
+<tt>emptytag</tt>. These produce
+<tt>&lt;?processing instructions?&gt;</tt>
+and <tt>&lt;empty-tag/&gt;</tt> markup
+suitable for XML.
+</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/emc2.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/emc2.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/emc2.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/emc2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/external.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/external.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/external.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Main document</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2862545"><div class="titlepage"><div><h1 class="title"><a name="id2862545"></a>Main document</h1></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#main"></a></dt><dt>2 <a href="#subdoc"></a></dt></dl></div><div class="chapter"><div class="titlepage"></div><p>This references to: <a href="#subdoc" title="Chapter 2. "></a></p></div><div class="chapter"><div class="titlepage"></div><p>This is nothing, but a subdoc</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/figtest.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/figtest.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/figtest.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Article Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2780037"></a>Article Test Document Title</h2></div><hr></div><p>
+This is a &#8220;short quote&#8221;.
+This is a &#8220;Quotation with a &#8216;nested quotation
+containing a &#8220;nested quotation and another &#8216;nested
+quotation&#8217;&#8221;&#8217;&#8221;.
+</p><div class="figure"><p><a name="testfig1"></a><b>Figure 1. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div><p>This para contains an xref to a figure: <a href="#testfig1" title="Figure 1. Test Figure">Figure 1. Test Figure</a>.
+</p><div class="figure"><p><a name="testfig2"></a><b>Figure 2. Test Figure2</b></p><pre class="programlisting">A Second
+  Test Figure
+</pre></div><p>This para contains an <a href="#testfig2" title="Figure 2. Test Figure2">link</a> to a
+figure. And an xref:  <a href="#testfig2" title="Figure 2. Test Figure2">Figure 2. Test Figure2</a>.
+</p><div class="figure"><p><a name="testfig3"></a><b>Figure 3. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div><p>This para contains an xref to a figure: <a href="#testfig3" title="Figure 3. Test Figure">Figure 3. Test Figure</a>.
+</p></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/foottest.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/foottest.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/foottest.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Article Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2780037"></a>Article Test Document Title</h2></div><div><h3 class="corpauthor">nwalsh</h3><h3 class="author">Norman Walsh</h3><h3 class="othercredit">Other Credit</h3><h4 class="editedby">Edited by</h4><h3 class="editor">Someother Editor</h3><h3 class="author">Someone Else</h3></div><div><p class="copyright">Copyright © 1999 Norman Walsh</p></div><div><p class="pubdate">Apr. 26, 1999</p></div><div><div class="abstract"><p><a name="id2767639"></a><b>Abstract</b></p><p>This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>A <a href="#id2766536">Appendix</a></dt></dl></div><p>This is a footnote<sup>[<a name="id2767668" href="#ftn.id2767668">1</a>]</sup>.</p><div class="informaltable" id="id2767681"><a name="id2767681"></a><table border="1"><colgroup><col><col><col></colgroup><tbody><tr><td>entry</td><td>entry</td><td>entry</td></tr><tr><td>entry<sup>[<a name="id2767742" href="#ftn.id2767742">a</a>]</sup></td><td>entry</td><td>entry</td></tr><tr><td>entry</td><td>entry</td><td>entry</td></tr><tr><td>Nebbiolo, Bonarda<sup>[<a name="ch15tb1" href="#ftn.ch15tb1">b</a>]</sup></td><td> </td><td> </td></tr><tr><td>Sangiovese, Canaiolo, and others<sup>[<a href="#ftn.ch15tb1">b</a>]</sup></td><td> </td><td> </td></tr></tbody><tr><td colspan="3"><div class="footnote"><p><sup>[<a name="ftn.id2767742" href="#id2767742">a</a>] </sup>table cell footnote</p></div><div class="footnote"><p><sup>[<a name="ftn.ch15tb1" href="#ch15tb1">b</a>] </sup>
+<i>Blended wines, made from two or more grapes</i>
+</p></div></td></tr></table></div><div class="appendix"><h2 class="title" style="clear: both"><a name="id2766536"></a>A. Appendix</h2><p>This is just a test.</p></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2767668" href="#id2767668">1</a>] </sup>See?</p></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/fotest.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/fotest.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/fotest.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Book Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2855632"><div class="titlepage"><div><h1 class="title"><a name="id2855632"></a>Bookinfo Test Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2855687">Foreword</a></dt><dt>1 <a href="#id2779687">First Chapter</a></dt><dt>A <a href="#id2769342">First Appendix</a></dt></dl></div><div id="id2855687" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2855687"></a>Foreword</h2></div></div><p>This is a test paragraph.</p><div class="table"><p><a name="table"></a><b>Table 1. A Table</b></p><table summary="A Table" border="1"><colgroup><col><col></colgroup><tbody><tr><td>1</td><td>1</td></tr><tr><td>2</td><td>4</td></tr><tr><td>3</td><td>9</td></tr></tbody></table></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2779687"></a>Chapter 1. First Chapter</h2></div><div><h3 class="subtitle"><i>Chapter Subtitle</i></h3></div></div><p>This is a test paragraph.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2769342"></a>Appendix A. First Appendix</h2></div></div><p>This is just a test.</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/func.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/func.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/func.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 1. test</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ch1"></a>Chapter 1. test</h2></div></div><p>
+This is a <tt>foo<i><tt>x</tt></i>, <i><tt>y</tt></i></tt>. This is just a <i><tt>x</tt></i>.
+</p><p>
+This is a <tt>bar<i><tt>x</tt></i>, <tt>y<i><tt>z</tt></i></tt></tt>. This is just a <i><tt>x</tt></i>.
+</p><p>
+This is a <tt>bar<i><tt>x</tt></i>, <i><tt>z</tt></i></tt>. This is just a <i><tt>x</tt></i>.
+</p><p>
+This is a just a function <tt>bar</tt>.
+</p></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gdp-handbook.err
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gdp-handbook.err	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gdp-handbook.err	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+Writing indexs02.html for sect1
+Writing indexs03.html for sect1
+Writing indexs04.html for sect1
+Writing indexs05.html for sect1
+Writing indexs06.html for sect1
+Writing indexs07.html for sect1
+Writing indexs08.html for sect1
+Writing indexs09.html for sect1
+Writing indexs10.html for sect1
+Writing indexs11.html for sect1
+Writing indexs12.html for sect1
+Writing indexs13.html for sect1
+Writing indexs14.html for sect1
+Writing indexs15.html for sect1
+Writing apas02.html for sect1
+Writing apas03.html for sect1
+Writing apa.html for appendix
+Writing index.html for article

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gdp-handbook.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gdp-handbook.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gdp-handbook.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3300 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>The GNOME Handbook of Writing Software Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="index"></a>The GNOME Handbook of Writing Software Documentation</h2></div><div><h3 class="author">David Mason</h3><div class="affiliation"><span class="orgname">Red Hat, Inc.<br></span><div class="address"><br>
+            <tt>&lt;<a href="mailto:dcm at redhat.com">dcm at redhat.com</a>&gt;</tt><br>
+          </div></div><h3 class="author">Daniel Mueth</h3><div class="affiliation"><div class="address"><br>
+            <tt>&lt;<a href="mailto:d-mueth at uchicago.edu">d-mueth at uchicago.edu</a>&gt;</tt><br>
+          </div></div><h3 class="author">Alexander Kirillov</h3><div class="affiliation"><div class="address"><br>
+            <tt>&lt;<a href="mailto:kirillov at math.sunysb.edu">kirillov at math.sunysb.edu</a>&gt;</tt><br>
+          </div></div></div><div><p class="releaseinfo">
+      This is a pre-release!
+    </p></div><div><p class="copyright">Copyright © 2000 Red Hat, Inc., Daniel Mueth, and Alexander Kirillov</p></div><div><div class="legalnotice"><p>
+      Permission is granted to copy, distribute and/or modify this
+      document under the terms of the <i>GNU Free Documentation
+      License</i>, Version 1.1 or any later version published
+      by the Free Software Foundation with no Invariant Sections, no
+      Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy
+      of the <i>GNU Free Documentation License</i> from
+      the Free Software Foundation by visiting <a href="http://www.fsf.org" target="_top">their Web site</a> or by writing to:
+      Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+      Boston, MA 02111-1307, USA.
+     </p><p>
+      Many of the names used by companies to distinguish their products and
+      services are claimed as trademarks. Where those names appear in any
+      GNOME documentation, and those trademarks are made aware to the members
+      of the GNOME Documentation Project, the names have been printed in caps
+      or initial caps.
+     </p></div></div><div><div class="revhistory"><table border="1" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
+          0.99
+        </td><td align="left">
+         04.10.2000
+        </td></tr></table></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#intro">Introduction</a></dt><dd><dl><dt> <a href="#gdp">The GNOME Documentation Project</a></dt><dt> <a href="#notation">Notation and Conventions</a></dt><dt> <a href="#about">About This Handbook</a></dt></dl></dd><dt> <a href="#gettingstarted">Getting Started Writing GNOME Documentation</a></dt><dd><dl><dt> <a href="#selecting">Selecting A Document</a></dt><dt> <a href="#docbook">Installing and Using DocBook</a></dt><dt> <a href="#gdptemplates">GDP Document Templates</a></dt><dt> <a href="#screenshots">Screenshots</a></dt><dt> <a href="#applicationbugs">Application Bugs</a></dt><dt> <a href="#cvs">Using CVS</a></dt></dl></dd><dt> <a href="#gnomedocsystem">The GNOME Documentation System</a></dt><dd><dl><dt> <a href="#gnomehelpbrowser">The GNOME Help Browser</a></dt><dt> <a href="#gnomehelpbrowser2">The GNOME Help Browser (GNOME-2.0)</a></dt><dt> <a href="#gnomehelponthefly">Dynamic Document Synthesis(GNOME-2.0)</a></dt><dt> <a href="#gnomehelpcomponents">The GNOME Documentation Components</a></dt></dl></dd><dt> <a href="#docbookbasics">DocBook Basics </a></dt><dd><dl><dt> <a href="#introtodocbook">Introduction to DocBook</a></dt><dt> <a href="#xml">XML and SGML</a></dt><dt> <a href="#structure"> Structure Elements</a></dt><dt> <a href="#inline">Inline Elements</a></dt></dl></dd><dt> <a href="#conventions">GDP Documentation Conventions </a></dt><dd><dl><dt> <a href="#conventionsalldocs">Conventions for All GDP Documentation</a></dt><dt> <a href="#conventionsappdocs">Conventions for Application Documentation</a></dt></dl></dd><dt> <a href="#writingapplicationmanuals">Writing Application and Applet Manuals</a></dt><dt> <a href="#listingdocsinhelpmenu">Listing Documents in the Help Menu</a></dt><dt> <a href="#applicationhelpbuttons">Application Help Buttons</a></dt><dt> <a href="#packagingappletdocs">Packaging Applet Documentation</a></dt><dd><dl><dt> <a href="#appletfiles">Applet Documentation Files</a></dt><dt> <a href="#appletmenu">Adding Documentation to an Applet Menu</a></dt></dl></dd><dt> <a href="#writingcontextsensitivehelp">Writing Context Sensitive Help (coming in GNOME-2.0)</a></dt><dt> <a href="#referring">Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</a></dt><dt> <a href="#basics">Basics of Documentation Style</a></dt><dd><dl><dt> <a href="#styleplanning">Planning</a></dt><dt> <a href="#balance">Achieving a Balanced Style</a></dt><dt> <a href="#stylestructure">Structure</a></dt><dt> <a href="#stylegrammar">Grammar and Spelling</a></dt></dl></dd><dt> <a href="#teamwork">Teamwork</a></dt><dd><dl><dt> <a href="#teamworkgdp">Working With The GDP Team</a></dt><dt> <a href="#teamworkdevelopers">Working With Developers</a></dt></dl></dd><dt> <a href="#finishing">Finishing A Document</a></dt><dd><dl><dt> <a href="#editting">Editing The Document</a></dt><dt> <a href="#submitting">Submitting The Document</a></dt></dl></dd><dt> <a href="#resources">Resources</a></dt><dd><dl><dt> <a href="#resourcesweb">Resources On The Web</a></dt><dt> <a href="#resourcesbooks">Books</a></dt><dt> <a href="#mailinglists">Mailing Lists</a></dt><dt> <a href="#irc">IRC</a></dt></dl></dd><dt>A <a href="#templates">Document Templates</a></dt><dd><dl><dt> <a href="#template1">Template 1: Application Manual</a></dt><dt> <a href="#template2-1x">Template 2: Applet Manual For GNOME 1.x</a></dt><dt> <a href="#template2-2x">Template 2: Applet Manual For GNOME 2.x</a></dt></dl></dd></dl></div><div class="sect1"><a name="intro"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="intro"></a>Introduction</h2></div></div><div class="sect2"><a name="gdp"></a><div class="titlepage"><div><h3 class="title"><a name="gdp"></a>The GNOME Documentation Project</h3></div></div><div class="sect3"><a name="goals"></a><div class="titlepage"><div><h4 class="title"><a name="goals"></a>Goals</h4></div></div><p>
+          The GNOME Documentation Project (GDP) aims to provide GNOME
+          and GNOME applications with a complete, intuitive, and clear
+          documentation system.  At the center of the GDP is the
+          GNOME Help Browser, which
+          presents a unified interface to GNOME-specific documentation
+          as well as other Linux documentation such as man pages and
+          texinfo documents. The GNOME Help System provides a
+          comprehensive view of documentation on a machine by
+          dynamically assembling the documentation of GNOME
+          applications and components which are installed. The GDP is
+          responsible for writing numerous GNOME-related documents,
+          both for developers and for users.  Developer documentation
+          includes <a href="http://developer.gnome.org/doc/API/" target="_top">APIs for the GNOME libraries</a>, <a href="http://developer.gnome.org/doc/whitepapers/" target="_top"><i>GNOME White
+          Papers</i></a>, GNOME developer <a href="http://developer.gnome.org/doc/tutorials/" target="_top">tutorials</a>, the <a href="http://developer.gnome.org/doc/FAQ/" target="_top"><i>GNOME Developer
+          FAQ</i></a>, the <a href="http://developer.gnome.org" target="_top">GNOME
+          Developer's Website</a>, and <i>GNOME
+          Handbook</i>'s, such as the one you are reading.
+          User documentation include the <a href="http://www.gnome.org/learn/" target="_top"><i>GNOME User's
+          Guide</i></a>, the <a href="http://www.gnome.org/learn/" target="_top"><i>GNOME FAQ</i></a>, and
+          GNOME application documentation.  Most GNOME applications
+          have their own manual in addition to context sensitive help.
+        </p></div><div class="sect3"><a name="joining"></a><div class="titlepage"><div><h4 class="title"><a name="joining"></a>Joining the GDP</h4></div></div><p>
+         Documenting GNOME and all the numerous GNOME applications is
+         a very large project.  The GDP is always looking for people
+         to help write, update, and edit documentation.  If you are
+         interested in joining the GDP team, you should join the
+         <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+         <i>gnome-doc-list mailing list</i> </a>.
+         Read <a href="#gettingstarted" title="Getting Started Writing GNOME Documentation">the section called &#8220;Getting Started Writing GNOME Documentation&#8221;</a>, for help selecting a
+         project to work on.  Feel free to introduce yourself on the
+         gnome-doc-list mailing list and indicate which project you
+         intend to work on, or else ask for suggestions of important
+         documents which need work done. You may also want to join the
+         #docs IRC channel on irc.gnome.org to meet other GDP members
+         and discuss any questions you may have.  For a list of GDP
+         projects and members, see the
+         <a href="http://developer.gnome.org/projects/gdp" target="_top">
+           <i>GDP Website</i></a>.
+       </p></div><div class="sect3"><a name="collaborating"></a><div class="titlepage"><div><h4 class="title"><a name="collaborating"></a>Collaborating with the GDP</h4></div></div><p>
+        GNOME developers, packagers, and translators may not be
+        writing GNOME documentation but will want to understand how
+        the GNOME documentation system works and will need to
+        collaborate with GDP members.  This document should help to
+        outline the structure of how the GNOME documentation system
+        works.  Developers who do not write the documentation for
+        their applications are encouraged to find a GDP member to
+        write the documentation.  This is best done by sending an
+        email to the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+        <i>gnome-doc-list mailing list</i> </a>
+        describing the application, where it can be downloaded from,
+        and that the developer(s) would like a GDP member to write
+        documentation for the application. The #docs IRC channel on
+        irc.gnome.org is another option for contacting GDP members.
+       </p></div></div><div class="sect2"><a name="notation"></a><div class="titlepage"><div><h3 class="title"><a name="notation"></a>Notation and Conventions</h3></div></div><p>
+        This Handbook uses the following notation:
+        <div class="informaltable" id="id2797678"><a name="id2797678"></a><table border="0"><colgroup><col><col></colgroup><tbody><tr><td><tt>/usr/bin</tt></td><td>
+                  Directory
+                </td></tr><tr><td><tt>foo.sgml</tt></td><td>
+                  Filename
+                </td></tr><tr><td><b>command</b></td><td>
+                  Command or text that would be typed.
+                </td></tr><tr><td><b><i><tt>replaceable</tt></i></b></td><td>
+                  "Variable" text that can be replaced.
+                </td></tr><tr><td><tt>Program or Doc Code</tt></td><td>Program or document code</td></tr></tbody></table></div>
+      </p></div><div class="sect2"><a name="about"></a><div class="titlepage"><div><h3 class="title"><a name="about"></a>About This Handbook</h3></div></div><p>
+       This Handbook is a guide for both writing documentation for
+       GNOME components and applications and for properly binding and
+       packaging documentation into GNOME applications.
+      </p><p>
+       This Handbook, like all GNOME documentation, was written in
+       DocBook(SGML) and is available in several formats including
+       SGML, HTML, PostScript, and PDF.  For the latest version, see
+       <a href="http://developer.gnome.org/projects/gdp/handbook.html" target="_top"> 
+       <i>Getting The GNOME Handbook of Writing Software
+       Documentation</i> </a>.  Alternately, one may
+       download it anonymously from GNOME CVS under <tt>gnome-docu/gdp</tt>.
+      </p></div></div><div class="sect1"><a name="gettingstarted"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="gettingstarted"></a>Getting Started Writing GNOME Documentation</h2></div></div><div class="sect2"><a name="selecting"></a><div class="titlepage"><div><h3 class="title"><a name="selecting"></a>Selecting A Document</h3></div></div><div class="sect3"><a name="know"></a><div class="titlepage"><div><h4 class="title"><a name="know"></a>Document Something You Know</h4></div></div><p>
+          The most frequently asked question of new contributors who
+          join the GDP is "which document should I start
+          with?". Because most people involved are volunteers, we do
+          not <i>assign</i> projects and applications to
+          write documents for. The first step is all yours - you must
+          decide what about GNOME interests you most and find out if
+          it has complete documents or not.
+        </p><p>
+          It is also important to spend some time with GNOME to make
+          sure you are familiar enough with it to be
+          <i>authoritative</i>  in your writing. The
+          best way to do this is to just sit down and play with GNOME
+          as much as possible before starting to write.
+        </p><p>
+          The easiest way to get started is to improve existing
+          documentation. If you notice some inaccuracies or omissions
+          in the documentation, or you think that you can explain the
+          material more clearly, just send your suggestions to the
+          author of the original documentation or to the GNOME
+          documentation project at <tt>&lt;<a href="mailto:docs at gnome.org">docs at gnome.org</a>&gt;</tt>.
+        </p></div><div class="sect3"><a name="doctable"></a><div class="titlepage"><div><h4 class="title"><a name="doctable"></a>The GNOME Documentation Status Table</h4></div></div><p>
+          The <i>GDP Documentation Status Table</i>
+          (<i>DocTable</i>) (<a href="http://www.gnome.org/gdp/doctable/" target="_top">http://www.gnome.org/gdp/doctable/</a>) is a
+          web page which tracks the status of all the various
+          documentation components of GNOME.  These components include
+          application documentation, internal GNOME component
+          documentation, user documentation, and developer
+          documentation.  For each documentation item, it tracks the
+          current status of the documentation, who is working on the
+          particular document, where the documentation can be found,
+          and provides a forum for the discussion of each item.
+        </p><p>
+          You should use the <i>DocTable</i> to help
+          you select a documentation item which needs work done.  Once
+          you have selected an item to work on, please register
+          yourself as an author so that other authors do not duplicate
+          your work and may contact you to help or offer suggestions.
+          Also be sure to keep the status icons up-to-date  so that
+          the GDP team can easily identify which items need additional
+          help.  The <i>DocTable</i> also allows
+          people to make announcements and suggestions and to discuss
+          issues in the comments section.
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2795548"></a>Note</h3><p>
+          Note that the information in the
+          <i>DocTable</i> may not always be up-to-date
+          or accurate.  When you assign yourself to documenting an
+          application, make sure you find out the latest status of
+          documentation by contacting the application author.  
+         </p></div></div></div><div class="sect2"><a name="docbook"></a><div class="titlepage"><div><h3 class="title"><a name="docbook"></a>Installing and Using DocBook</h3></div></div><p>
+        All documentation for the GNOME project is written in SGML
+        using the DocBook DTD. There are many advantages to using
+        this for documentation, not least of which is the single
+        source nature of SGML. To contribute to the GDP you should
+        learn to use DocBook.
+      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2795631"></a>NOTE</h3><p>
+          To get started writing for the GDP you do not need to rush
+          out and learn DocBook - if you feel it is too much to handle
+          for now, you can submit plain ASCII text to the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+          <i>gnome-doc-list mailing list</i>
+          </a>and a volunteer will mark it up for you. Seeing your
+          document marked up will also be a great way for you to start
+          learning DocBook.
+        </p></div><div class="sect3"><a name="installingdocbook"></a><div class="titlepage"><div><h4 class="title"><a name="installingdocbook"></a>Installing DocBook</h4></div></div><p>
+          Download and install the following <a href="ftp://sourceware.cygnus.com:/pub/docbook-tools/" target="_top">DocBook Tools packages</a>: jade, docbook,
+          jadetex, sgml-common, and stylesheets. (RPM users should note
+          that jade is platform dependent (eg. i386), while the other packages
+          are in the <tt>noarch</tt>
+          directory.) You can find more 
+          information on DocBook Tools <a href="http://sourceware.cygnus.com/docbook-tools/" target="_top">here</a>.
+        </p><p>
+          If you are an Emacs user you may
+          want to grab the psgml package as well. This is a major mode
+          for editing sgml files in Emacs.
+        </p></div><div class="sect3"><a name="gdpstylesheets"></a><div class="titlepage"><div><h4 class="title"><a name="gdpstylesheets"></a>GDP Stylesheets</h4></div></div><p>
+          The GDP uses its own DocBook stylesheets.  To use the GDP
+          stylesheets, you should download the file
+          <tt>gdp-both.dsl</tt> from the <tt>gnome-docu/gdp/dsssl</tt> module in
+          CVS (or from <a href="http://developer.gnome.org/projects/gdp/stylesheets.html" target="_top">
+          GDP Custom DSSSL Stylesheet</a>)and copy it
+
+          over the file
+          <tt>/usr/lib/sgml/stylesheets/cygnus-both.dsl</tt>.
+          Alternately, you can download and install the
+          <a href="http://people.redhat.com/dcm/software.html" target="_top">gnome-doc-tools package</a> which will set
+          up the stylesheets as well as the DTD discussed below.
+        </p></div><div class="sect3"><a name="gdpdtd"></a><div class="titlepage"><div><h4 class="title"><a name="gdpdtd"></a>GDP DTD (PNG Image Support)</h4></div></div><p>
+          Due to some license issues involved with the creation of
+          gifs, the GNOME Documentation Project has decided to use the
+          PNG image format for all images in GNOME documentation. You
+          can read more about the issues involved with gifs at <a href="http://www.gnu.org/philosophy/gif.html" target="_top">http://www.gnu.org/philosophy/gif.html</a>.
+        </p><p>
+          The current DocBook DTD(3.1) does not include support for
+          embedding PNG images in your documents.  Since the GDP uses
+          many screenshots in its documentation, we use our own
+          variation on the DocBook DTD which has PNG image support.
+          We encourage everybody to use this DTD instead of the
+          default DocBook DTD since your source document header and
+          your output document appearance subtly vary between the two
+          DTD's.  To install the GDP custom DTD with PNG image support
+          by hand:
+        </p><div class="itemizedlist"><ul><li style="list-style-type: opencircle"><p><a name="id2796045"></a>
+              Download <a href="http://www.labs.redhat.com/png/png-support.html" target="_top">the
+              GDP DocBook DTD for PNG support</a> and install it
+              where you keep your DTD's. (On Red Hat use <tt>/usr/lib/sgml/</tt>.) Note that
+              the 3.0 DTD is missing support for the
+              <tt>&lt;legalnotice&gt;</tt> tag, so it is
+              recommended that you use version 3.1
+            </p></li><li style="list-style-type: disc"><p><a name="id2796107"></a>
+              Add the new DTD to your SGML CATALOG file.  The location
+              of your SGML CATALOG file may vary depending upon your
+              distribution. (On Red Hat it is usually in
+              /usr/lib/sgml/CATALOG.) Add the following line to this
+              file:
+              <pre class="programlisting">
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.0//EN" "png-support-3.0.dtd"
+              </pre> 
+              If you are using the 3.1 DTD, use:
+              <pre class="programlisting">
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN" "png-support-3.1.dtd"
+              </pre> 
+            </p></li></ul></div><p>
+          Alternately, you can download and install the
+          <a href="http://people.redhat.com/dcm/software.html" target="_top">gnome-doc-tools package</a> which will set
+          up the custom stylesheets and DTD for you.
+        </p><p>
+          To include PNG files in your documents, you will need to
+          indicate that you are using this special DTD.  To do
+          this, use the following headers:
+        </p><p>
+          Articles:
+          <pre class="programlisting">
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]&gt;
+          </pre>
+        </p><p>
+          Books:
+          <pre class="programlisting">
+&lt;!DOCTYPE Book PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]&gt;
+          </pre>
+        </p></div><div class="sect3"><a name="editors"></a><div class="titlepage"><div><h4 class="title"><a name="editors"></a>Editors</h4></div></div><p>
+          There are many editors on Linux and UNIX systems available
+          to you. Which editor you use to work on the sgml documents
+          is completely up to you, as long as the editor is able to
+          preserve sgml and produce the source in a format that is
+          readable by everyone.
+        </p><p>
+          Probably the two most popular editors available are
+          Emacs and
+          vi. These and other editors are
+          used regularly by members of the GDP. Emacs has a major
+          mode, psgml, for editing sgml files which can save you time
+          and effort in adding and closing tags. You will find the
+          psgml package in DocBook Tools, which is the standard set of
+          tools for the GDP. You may find out more about DocBook Tools
+          in <a href="#installingdocbook" title="Installing DocBook">the section called &#8220;Installing DocBook&#8221;</a>.
+        </p></div><div class="sect3"><a name="make-output"></a><div class="titlepage"><div><h4 class="title"><a name="make-output"></a>Creating Something Useful with your Docs</h4></div></div><p>
+          The tools available in DocBook Tools allow you to convert
+          your sgml document to many different formats including html
+          and Postscript. The primary tool used to do the conversion
+          is an application called Jade. In
+          most cases you will not have to work directly with
+          Jade; Instead,  you will use the
+          scripts provided by DocBook Tools.
+        </p><p>
+          To preview your DocBook document, it is easiest to convert
+          it to <tt>html</tt>. If you have installed the
+          DocBook tools described above, all you have to do is to run
+          the command <tt>$</tt><b>db2html
+          mydocument.sgml</b>. If there are no sgml syntax
+          errors, this will create a directory <tt>mydocument</tt> and place the
+          resulting html files in it. The title page of the document
+          will typically be
+          <tt>mydocument/index.html</tt>.  If you have
+          screenshots in your document, you will have to copy these
+          files into the <tt>mydocument</tt> directory by
+          hand. You can use any web browser to view your document.
+          Note that every time you run <b>db2html</b>, it
+          creates the <tt>mydocument</tt> directory over, so
+          you will have to copy the screenshots over each time.
+        </p><p>
+          You can also convert your document to PostScript by running
+          the command <tt>$</tt><b>db2ps
+          mydocument.sgml</b>, after which you can print out or
+          view the resulting .ps file.  
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2796585"></a>NOTE</h3><p>
+            The html files you get will not look quite the same as the
+            documentation distributed with GNOME unless you have the
+            custom stylesheets installed on your machine. DocBook
+            Tools' default stylesheets will produce a different look
+            to your docs. You can read more about the GDP stylesheets
+            in <a href="#gdpstylesheets" title="GDP Stylesheets">the section called &#8220;GDP Stylesheets&#8221;</a>.
+          </p></div></div><div class="sect3"><a name="jadeimages"></a><div class="titlepage"><div><h4 class="title"><a name="jadeimages"></a>Images in DocBook Tools</h4></div></div><p>
+          If your document uses images you will need to take note of a
+          few things that should take place in order for you to make
+          use of those images in your output.
+        </p><p>
+          The DocBook Tools scripts and applications are smart enough
+          to know that when you are creating html you will be using
+          PNG files and when you are creating Postscript you will be
+          using EPS files (you must use EPS with Postscript).
+        </p><p>
+          Thus, you should never explicitly
+          include the extension of the image file, since DocBook
+          Tools will automatically insert it for you. For example:
+        </p><pre class="programlisting">
+
+&lt;figure&gt;
+ &lt;title&gt;My Image&lt;/title&gt;
+ &lt;screenshot&gt;
+  &lt;screeninfo&gt;Sample GNOME Display&lt;/screeninfo&gt;
+  &lt;graphic  format="png" fileref="myfile" srccredit="me"&gt;
+  &lt;/graphic&gt;
+ &lt;/screenshot&gt;
+&lt;/figure&gt;
+     </pre><p>
+          You will notice in this example that the file
+          <tt>myfile.png</tt> was referred to as simply
+          <tt>myfile</tt>. Now when you run
+          <b>db2html</b> to create an html file, it will
+          automatically look for <tt>myfile.png</tt> in
+          the directory.
+        </p><p>
+          If you want to create PostScript ouput, you will need to create an
+          EPS version of your image file to be displayed in the
+          PostScript file. There is a simple script available which
+          allows you to change a PNG image into an EPS file
+          easily. You can download this file - img2eps - from <a href="http://people.redhat.com/dcm/sgml.html" target="_top">http://people.redhat.com/dcm/sgml.html</a>
+          (look for the img2eps section).  Note that this script is
+          included in the gnome-doc-tools package, so if you are using
+          this package, you should already have
+          <b>img2eps</b> on you system.
+        </p></div><div class="sect3"><a name="moredocbookinfo"></a><div class="titlepage"><div><h4 class="title"><a name="moredocbookinfo"></a>Learning DocBook</h4></div></div><p>
+          There are many resources available to help you learn DocBook.
+          The following resources on the web are useful for learning
+          DocBook:
+        </p><div class="itemizedlist"><ul><li style="list-style-type: disc"><p><a name="id2918531"></a>
+              <a href="http://www.docbook.org" target="_top">http://www.docbook.org</a>  - Norman
+              Walsh's <i>DocBook: The Definitive
+              Guide</i>.  Online O'Reilly book on using
+              DocBook. Contains an excellent element reference. May be
+              too formal for a beginner.
+            </p></li><li style="list-style-type: disc"><p><a name="id2918577"></a>
+              <a href="http://www.oswg.org/oswg-nightly/oswg/en_US.ISO_8859-1/articles/DocBook-Intro/docbook-intro/index.html" target="_top">A Practical Introduction to DocBook</a>
+              - The Open Source Writers Group's introduction to using
+              DocBook. This is an excellent HOW-TO type article on
+              getting started.
+            </p></li><li style="list-style-type: disc"><p><a name="id2918619"></a>
+              <a href="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html" target="_top">Getting Going with DocBook: Notes for
+              Hackers</a> - Mark Galassi's introduction to DocBook
+              for hackers. This has to be one of the first
+              introductions to DocBook ever - still as good as it ever
+              was.
+            </p></li><li style="list-style-type: disc"><p><a name="id2918658"></a>
+              <a href="http://www.freebsd.org/tutorials/docproj-primer/" target="_top">
+              FreeBSD Documentation Project Primer for New
+              Contributors</a> - FreeBSD documentation project
+              primer. Chapter 4.2 provides a very good introduction to
+              writing documentation using DocBook. Note that it also
+              describes some custom extensions of DocBook;
+              fortunately, they are clearly marked as such.
+            </p></li></ul></div><p>
+          Norman Walsh's book is also available in print.
+        </p><p>
+          The following sections of this document are designed to help
+          documentation authors write correct and consistent DocBook:
+        </p><div class="itemizedlist"><ul><li style="list-style-type: disc"><p><a name="id2918733"></a>
+              <a href="#docbookbasics" title="DocBook Basics ">the section called &#8220;DocBook Basics &#8221;</a> - Descriptions of
+              commonly used DocBook tags.
+            </p></li></ul></div><p>
+          You may also discuss specific DocBook questions with GDP
+          members on the #docs IRC channel at irc.gnome.org and on the
+          gnome-doc-list mailing list.
+        </p></div></div><div class="sect2"><a name="gdptemplates"></a><div class="titlepage"><div><h3 class="title"><a name="gdptemplates"></a>GDP Document Templates</h3></div></div><p>
+        Templates for various types of GNOME documents are found in
+        <a href="#templates" title="A. Document Templates">Appendix A. Document Templates</a>.  They are kept in CVS in
+        gnome-docu/gdp/templates. The easiest source to get them from
+        is probably the <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Document Templates</a> web page, which is typically kept
+        completely up-to-date with CVS and has a basic description of
+        each file from CVS.
+      </p></div><div class="sect2"><a name="screenshots"></a><div class="titlepage"><div><h3 class="title"><a name="screenshots"></a>Screenshots</h3></div></div><p>
+        Most GNOME documents will have screenshots of the particular
+        applet, application, GNOME component, or widget being
+        discussed.  As discussed above in <a href="#gdpdtd" title="GDP DTD (PNG Image Support)">the section called &#8220;GDP DTD (PNG Image Support)&#8221;</a> you
+        will need to install the special GDP DocBook DTD which
+        supports PNG images, the format used for all images in GNOME
+        documentation. For the basic DocBook structure used to insert
+        images in a document, see <a href="#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a> above.
+      </p><div class="sect3"><a name="screenshotappearance"></a><div class="titlepage"><div><h4 class="title"><a name="screenshotappearance"></a>Screenshot Appearance</h4></div></div><p>
+          For all screenshots of windows that typically have border
+          decorations (e.g. applications and dialogs, but not applets
+          in a panel), GDP standards dictate
+          the appearance of the window.  (This is to minimize possible
+          confusion to the reader, improve the appearance of GNOME
+          documents, and guarantee the screenshot is readable when
+          printed.) All screenshots should be taken with the SawFish
+          (formerly known as Sawmill) window manager using the
+          MicroGui theme and Helvetica 12pt font. (A different window
+          manager can be used provided the MicroGui theme is available
+          for this window manager and the appearance is identical to
+          that when using the SawFish window manager.) The default
+          GTK+ theme(gtk) and font (Helvetica 12 pt) should be used
+          for all screenshots.  If you are unable to provide
+          screenshots in this form, you should create screenshots as
+          you wish them to appear and send them to the
+          <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+          <i>gnome-doc-list mailing list</i> </a>
+          requesting a GDP member reproduce these screenshots in the
+          correct format and email them to you.
+        </p></div><div class="sect3"><a name="screenshottools"></a><div class="titlepage"><div><h4 class="title"><a name="screenshottools"></a>Screenshot Tools</h4></div></div><p>
+          There are many tools for taking screenshots in
+          GNOME/Linux. Perhaps the most convenient is the
+          Screen-Shooter Applet. Just click
+          on the window icon in the applet and then on the window you
+          would like to take a screenshot of. (Note that
+          at the time of this writing, PNG images taken by
+          screenshooter do not appear properly in
+          Netscape or the
+          GNOME Help Browser.  You
+          should save your screenshot as a GIF and
+          then use <b>convert filename.gif
+          filename.png</b>.) For applets
+          in a Panel,
+          xv can be used to crop the
+          screenshot to only include the relevant portion of the
+          Panel. Note that
+          xv and 
+          gimp can both be used for taking
+          screenshots, cropping screenshots, and converting image
+          formats. 
+        </p></div><div class="sect3"><a name="screenshotfiles"></a><div class="titlepage"><div><h4 class="title"><a name="screenshotfiles"></a>Screenshot Files</h4></div></div><p>
+          Screenshots should be kept in the main documentation
+          directory with your SGML file for applets, or should be
+          kept in a directory called "figs" for application and other
+          documentation.  After you use <b>db2html</b> to
+          convert your SGML file to HTML (see <a href="#make-output" title="Creating Something Useful with your Docs">the section called &#8220;Creating Something Useful with your Docs&#8221;</a>), you will need to copy your
+          screenshots (either the individual PNG files for applet
+          documentation, or the whole "figs" directory for other
+          documentation) into the newly created HTML directory.  Note
+          that every time you use <b>db2html</b> the HTML
+          directory is erased and rewritten, so do not store your only
+          copy of the screenshots in that directory.  If you wish to
+          create PostScript or PDF output, you will need to manually
+          convert the PNG images to EPS as described in <a href="#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a>, but will not need to copy these
+          images from their default location, as they are included
+          directly into the output(PostScript of PDF) file.
+        </p></div></div><div class="sect2"><a name="applicationbugs"></a><div class="titlepage"><div><h3 class="title"><a name="applicationbugs"></a>Application Bugs</h3></div></div><p>
+        Documentation authors tend to investigate and test applets and
+        applications more thoroughly than most 
+        users.  Often documentation authors will discover one or
+        more bugs in the software.  These bugs vary from small ones,
+        such as mis-spelled words or missing
+        About dialogs in the menu, to large
+        ones which cause the applet to crash.  As all users, you
+        should be sure to report these bugs so that application
+        developers know of them and can fix them.  The easiest way to
+        submit a bug report is by using the Bug
+        Buddy applet which is part of the gnome-applets
+        package.  
+      </p></div><div class="sect2"><a name="cvs"></a><div class="titlepage"><div><h3 class="title"><a name="cvs"></a>Using CVS</h3></div></div><p>
+        CVS (Concurrent Versions System) is a tool that allows
+        multiple developers to concurrently work on a set of
+        documents, keeping track of the modifications made by each
+        person.  The files are stored on a server and each developer
+        checks files out, modifies them, and then checks in their
+        modified version of the files.  Many GNOME programs and
+        documents are stored in CVS.  The GNOME CVS server allows
+        users to anonymously check out CVS files. Most GDP members
+        will need to use anonymous CVS to download the most up-to-date
+        version of documentation or programs.  Modified documents will
+        typically be emailed to the the application developer. Core
+        GDP members may also be granted login CVS privileges so they
+        may commit modified files directly to CVS.
+      </p><div class="sect3"><a name="anonymouscvs"></a><div class="titlepage"><div><h4 class="title"><a name="anonymouscvs"></a>Anonymous CVS</h4></div></div><p>
+          To anonymously check out documents from CVS, you must first
+          log in.  From the bash shell, you should set your CVSROOT
+          shell variable with <b>  export
+          CVSROOT=':pserver:anonymous at anoncvs.gnome.org:/cvs/gnome'</b>
+          and then login with <b>cvs login</b>(there is no
+          password, just hit return). As an example, we will use the
+          "gnome-docu/gdp" module which contains this and several
+          other documents. To check these documents out for the first
+          time, type <b>cvs -z3 checkout
+          gnome-docu/gdp</b>. After you have this document
+          checked out and you would like to download any updates on
+          the CVS server, use <b>cvs -z3 update -Pd</b>.
+        </p></div><div class="sect3"><a name="logincvs"></a><div class="titlepage"><div><h4 class="title"><a name="logincvs"></a>Login CVS</h4></div></div><p>  If you have been given a
+        login for the GNOME CVS server,  you may commit your file
+        modifications to CVS.  Be sure to read the following section
+        on CVS etiquette before making any commits to CVS.  To log in
+        to the CVS server as user
+        <b><i><tt>username</tt></i></b> with a
+        password, you must first set your CVSROOT shell variable with
+        <b> export
+        CVSROOT=':pserver:<i><tt>username</tt></i>@cvs.gnome.org:/cvs/gnome'</b>.
+        Log in with <b>cvs login</b> and enter your
+        password. You may check out and update modules as described
+        above for anonymous CVS access.  As a login CVS user, you may
+        also check modified versions of a file into the CVS server.
+        To check
+        <b><i><tt>filename</tt></i></b> into
+        the CVS server, type <b>cvs -z3 commit
+        <i><tt>filename</tt></i></b>. You will be
+        given a vi editor window to type in a brief log entry,
+        summarizing your changes.  The default editor can be changed
+        using the <tt>EDITOR</tt> environment variable or
+        with the <b><tt>-e</tt></b> option. You
+        may also check in any modifications to files in the working
+        directory and subdirectories using <b>cvs -z3
+        commit</b>.  To
+        add a new file to the CVS server, use <b>cvs -z3 add
+        <i><tt>filename</tt></i></b>, followed by the
+        commit command.
+        </p></div><div class="sect3"><a name="cvsetiquette"></a><div class="titlepage"><div><h4 class="title"><a name="cvsetiquette"></a>CVS Etiquette</h4></div></div><p>
+          Because files in CVS are typically used and modified by
+          multiple developers and documentation authors, users should
+          exercise a few simple practices out of courtesy towards the
+          other CVS users and the project leader.  First, you should
+          not make CVS commits to a package without first discussing
+          your plans with the project leader.  This way, the project
+          leader knows who is modifying the files and generally, what
+          sort of changes/development is being done.  Also, whenever a
+          CVS user commits a file to CVS, they should make an entry in
+          the CVS log and in the <tt>ChangeLog</tt> so
+          that other users know who is making modifications and what
+          is being modified.  When modifying files created by others,
+          you should follow the indentation scheme used by the initial
+          author.
+        </p></div></div></div><div class="sect1"><a name="gnomedocsystem"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="gnomedocsystem"></a>The GNOME Documentation System</h2></div></div><div class="sect2"><a name="gnomehelpbrowser"></a><div class="titlepage"><div><h3 class="title"><a name="gnomehelpbrowser"></a>The GNOME Help Browser</h3></div></div><p>
+        At the core of the GNOME help system is the GNOME
+        Help Browser. The Help
+        Browser provides a unified interface to several
+        distinct documentation systems on Linux/Unix systems: man
+        pages, texinfo pages, Linux Documentation Project(LDP)
+        documents, GNOME application documentation, and other GNOME
+        documents.
+      </p><p>
+        The GNOME Help Browser works by
+        searching standard directories for documents which are to be
+        presented.  Thus, the documentation that appears in the GHB is
+        specific to each computer and will typically only represent
+        software that is installed on the computer.
+      </p></div><div class="sect2"><a name="gnomehelpbrowser2"></a><div class="titlepage"><div><h3 class="title"><a name="gnomehelpbrowser2"></a>The GNOME Help Browser (GNOME-2.0)</h3></div></div><p> In
+      GNOME 2.0, the GNOME Help Browser
+      will be replaced by Nautilus.
+      Nautilus will be the file manager/graphical shell for GNOME 2.0
+      and will also implement a more sophisticated help system than
+      that used by the GNOME Help Browser
+      used in GNOME 1.0.  It will read and display DocBook files
+      directly, avoiding the need for duplicating documents in both
+      DocBook and HTML formats.  Its display engine for DocBook will
+      be much faster than running jade to
+      convert to HTML for rendering.  Because it uses the original
+      DocBook source for documentation, it will be possible to do more
+      sophisticated searching using the meta information included in
+      the documents.  And since Nautilus is a virtual file system
+      layer which is Internet-capable, it will be able to find and
+      display documents which are on the web as well as those on the
+      local file system. For more information on
+      Nautilus, visit the #nautilus IRC
+      channel on irc.gnome.org.  </p></div><div class="sect2"><a name="gnomehelponthefly"></a><div class="titlepage"><div><h3 class="title"><a name="gnomehelponthefly"></a>Dynamic Document Synthesis(GNOME-2.0)</h3></div></div><p>
+        GNOME uses the documentation presented by all the various
+        GNOME components and applications installed on the system to
+        present a complete and customized documentation environment
+        describing only components which are currently installed on a
+        users system.  Some of this documentation, such as the manuals
+        for applets, will be combined in such a way that it appears to
+        be a single document.
+      </p><p>
+        By using such a system, you can be sure that any GNOME app you
+        install that has documentation will show up in the index,
+        table of contents, any search you do in the help browser.
+      </p></div><div class="sect2"><a name="gnomehelpcomponents"></a><div class="titlepage"><div><h3 class="title"><a name="gnomehelpcomponents"></a>The GNOME Documentation Components</h3></div></div><div class="sect3"><a name="applicationmanualsintro"></a><div class="titlepage"><div><h4 class="title"><a name="applicationmanualsintro"></a>Application Manuals</h4></div></div><p>
+          Every GNOME application should have an application manual.
+          An application manual is a document specific to the
+          particular application which explains the various windows
+          and features of the application.  Application Manuals
+          typically use screenshots (PNG format) for clarity.  Writing
+          application manuals is discussed in more detail in <a href="#writingapplicationmanuals" title="Writing Application and Applet Manuals">the section called &#8220;Writing Application and Applet Manuals&#8221;</a> below.
+        </p></div><div class="sect3"><a name="applicationhelpintro"></a><div class="titlepage"><div><h4 class="title"><a name="applicationhelpintro"></a>Application Help</h4></div></div><p>
+          Applications should have a Help
+          button on screens on which users may need help.  These
+          Help buttons should pull up the
+          default help browser, determined by the
+          <tt>ghelp</tt> URL Handler (configured using the
+          Control Center), typically the
+          GNOME Help Browser.  The help
+          browser should show either the first page of the application
+          manual, or else the relevant page thereof. Application help
+          is described in more detail in <a href="#applicationhelpbuttons" title="Application Help Buttons">the section called &#8220;Application Help Buttons&#8221;</a> below.
+        </p></div><div class="sect3"><a name="contextsensitivehelpintro"></a><div class="titlepage"><div><h4 class="title"><a name="contextsensitivehelpintro"></a>Application Context Sensitive Help (coming in
+        GNOME-2.0)</h4></div></div><p>
+          Context sensitive help is a system which will allow the user
+          to query any part (button, widget, etc.) of an application
+          window.  This is done by either entering a CS Help mode by
+          clicking on an icon or by right clicking on the application
+          part and selecting "What's This" or whatever is decided on
+          at the time.  Context sensitive help is described in more
+          detail in <a href="#writingcontextsensitivehelp" title="Writing Context Sensitive Help (coming in GNOME-2.0)">the section called &#8220;Writing Context Sensitive Help (coming in GNOME-2.0)&#8221;</a>
+          below.
+        </p></div><div class="sect3"><a name="userguide"></a><div class="titlepage"><div><h4 class="title"><a name="userguide"></a>The GNOME User Guide</h4></div></div><p>
+          The <i>GNOME User Guide</i> describes the
+          GNOME desktop environment and core components of GNOME such
+          as the panel and
+          control center. In GNOME 1.x this
+          was the main and only source of documentation. In GNOME 2.0
+          this will become a document for the web and for printing
+          that is derived from various parts chosen in the system that
+          are necessary for the new user to understand.
+        </p></div><div class="sect3"><a name="userdocs"></a><div class="titlepage"><div><h4 class="title"><a name="userdocs"></a>User Documents</h4></div></div><p>
+          Aside from the <i>GNOME User Guide</i>,
+          there are several other documents to help GNOME users learn
+          GNOME, including the <i>GNOME FAQ</i>,
+          <i>GNOME Installation and Configuration
+          Guide</i>, and the <i>GNOME Administrators
+          Guide</i>.
+        </p></div><div class="sect3"><a name="developerdocs"></a><div class="titlepage"><div><h4 class="title"><a name="developerdocs"></a>Developer Documents</h4></div></div><p>
+          There are many White Papers, Tutorials, HOWTO's and FAQ's to
+          make programming GNOME and GNOME applications as easy as
+          possible.
+        </p><p>
+          API documentation is also available for the GNOME libraries. This is
+          detailed documentation of the code that is used to build GNOME
+          apps. You can keep up with the GNOME API docs on the <a href="http://developer.gnome.org/doc/API/" target="_top">GNOME API
+          Reference</a> page.
+        </p></div><div class="sect3"><a name="projectdocs"></a><div class="titlepage"><div><h4 class="title"><a name="projectdocs"></a>Project Documents</h4></div></div><p>
+          Some GNOME projects have documentation to maintain
+          consistency in their product and to help new contributors
+          get up to speed quickly. Among these are the GDP documents,
+          such as the one you are reading now.
+        </p></div></div></div><div class="sect1"><a name="docbookbasics"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="docbookbasics"></a>DocBook Basics </h2></div></div><div class="sect2"><a name="introtodocbook"></a><div class="titlepage"><div><h3 class="title"><a name="introtodocbook"></a>Introduction to DocBook</h3></div></div><p>
+        To understand DocBook, a basic understanding of SGML is
+        helpful. SGML stands for Standard General Markup Language and
+        is one of the first markup languages every created. HTML is
+        actually derived from SGML and XML is a subset of SGML.  SGML
+        uses what is called a Document Type Definition to specify
+        <i>elements</i> which are contained between
+        brackets, &lt; and &gt;. Text is marked by both beginning and
+        ending elements, for example in the DocBook DTD, one denotes a
+        title with <tt>&lt;title&gt;</tt>The
+        Title<tt>&lt;/title&gt;</tt>.
+      </p><p>
+        The DTD (in the case of the GDP, DocBook) defines rules for how the
+        elements can be used. For example, if one element can only be used when
+        embedded within another, this is defined in the DTD.
+      </p><p> 
+	An SGML file is just a plain ASCII file containing the text
+	with the markup specified above. To convert it  to some easily
+	readable format, you need special tools. The GDP uses <i>DocBook
+        Tools</i>, a free package of utilities for working with DocBook
+        which includes <i>Jade</i>, which does the SGML/DSSL
+        parsing. You can read more about DocBook Tools in <a href="#installingdocbook" title="Installing DocBook">the section called &#8220;Installing DocBook&#8221;</a>. 
+      </p><p>
+        The final appearance of the output (e.g. PostScript or HTML)
+        is determined by a
+        <i>stylesheet</i>. Stylesheets are files,
+        written in a special language (DSSSL -- Document Style
+        Semantics and Specification Language), which  specify the
+        appearance of various DocBook elements, for example,
+        what fonts to use for titles and various inline elements, page
+        numbering style, and much more. DocBook tools come with a
+        collection of stylesheets (Norman Walsh's modular
+        stylesheets); GNOME Document Project uses some customized
+        version of this stylesheets -- see <a href="#gdpstylesheets" title="GDP Stylesheets">the section called &#8220;GDP Stylesheets&#8221;</a>.   
+      </p><p>
+        The advantage of specifying the <i>structure</i>
+        of a document with SGML instead of specifying the
+        <i>appearance</i> of the document with a typical
+        word processor, or with html, is that the resulting document
+        can be processed in a variety of ways using the structural
+        information.  Whereas formatting a document for appearance
+        assumes a medium (typically written text on a standard-sized
+        piece of paper), SGML can be processed to produce output for a
+        large variety of media such as text, postscript, HTML,
+        Braille, audio, and potentially many other formats.
+      </p><p>
+        Using 'content' as the elements to define the text of a document also
+        allows for search engines to make use of the actual elements to make a
+        "smarter search". For example, if you are searching for all documents
+        written by the author "Susie" your search engine could be made smart
+        enough to only search &lt;author&gt; elements, making for a faster and more
+        accurate search.
+      </p><p>
+        Since the overall appearance of the output is determined not by the DTD
+        or the SGML document, but rather by a stylesheet, the appearance of a
+        document can be easily changed just by changing the stylesheet. This
+        allows everyone in the project to create documents that all look the
+        same.
+      </p><p>
+        As stated before, the GDP uses the DocBook DTD.  For a list of
+        introductory and reference resources on DocBook, see <a href="#resources" title="Resources">the section called &#8220;Resources&#8221;</a>.  The following sections also provide
+        convenient instructions on which markup tags to use in various
+        circumstances.  Be sure to read <a href="#conventions" title="GDP Documentation Conventions ">the section called &#8220;GDP Documentation Conventions &#8221;</a>
+        for GDP documentation-specific guidelines.
+      </p></div><div class="sect2"><a name="xml"></a><div class="titlepage"><div><h3 class="title"><a name="xml"></a>XML and SGML</h3></div></div><p> In not so distant future (probably before GNOME 2.0),
+      DocBook itself and GNOME Documentation project will migrate from
+      SGML to XML. This transition should be relatively painless:
+      (almost) all DocBook tags will remain the same. However, XML has
+      stricter syntax rules than SGML; thus, some constructions which
+      are valid in SGML will not be valid in XML. Therefore, to be
+      ready for this transistion, it is <i>strongly
+      advised</i> that the documentation writers conform to XML
+      syntax rules. Here are most important differences:
+      </p><div class="variablelist"><dl><dt><a name="id2921045"></a><span class="term"> <i>Minimization</i></span></dt><dd><p><a name="id2921063"></a>
+	      It is possible with some implementations of SGML to use
+	      minimizations to close elements in a document by using
+	      &lt;/&gt;, for example:
+	      <tt><tt>&lt;title&gt;</tt>The
+		Title<tt>&lt;/&gt;</tt></tt>. This is not
+              allowed in XML. You can use <b>sgmlnorm</b> command,
+              included in DocBook Tools package, to expand minimized tags;
+              if you are using Emacs with psgml
+              mode, you can also use menu command
+          Modify-&gt;Normalize.
+         </p></dd><dt><a name="id2921179"></a><span class="term"> <i>Self-closing tags</i></span></dt><dd><p><a name="id2921197"></a>
+            Also, in SGML some tags are allowed not to have closing
+            tags.  For example, it is legal for
+            <tt>&lt;xref&gt;</tt> not to have a closing tag: 
+            <tt><tt>&lt;xref 
+                   linkend="someid"&gt;</tt></tt>. In
+            XML, it is illegal; instead, you should use  
+            <tt><tt>&lt;xref 
+                   linkend="someid"/&gt;</tt></tt> (note the
+            slash!).
+          </p></dd><dt><a name="id2921264"></a><span class="term"> <i>Case sensitive tags</i></span></dt><dd><p><a name="id2921281"></a>
+	      In XML, unlike SGML, tags are case-senstive
+	      <tt>&lt;title&gt;</tt> and
+	      <tt>&lt;TITLE&gt;</tt> are different tags!
+	      Therefore, please always use lowercase tags (except for
+	      things like <tt>DOCTYPE, CDATA</tt> and
+	      <tt>ENTITY</tt>, which are not DocBook tags). 
+	    </p></dd></dl></div></div><div class="sect2"><a name="structure"></a><div class="titlepage"><div><h3 class="title"><a name="structure"></a> Structure Elements</h3></div></div><div class="sect3"><a name="section"></a><div class="titlepage"><div><h4 class="title"><a name="section"></a>Sections and paragraphs</h4></div></div><p>
+          Top-level element of a book body must be
+          <tt>&lt;chapter&gt;</tt>; it may contain one or more
+          <tt>&lt;sect1&gt;</tt>, each of them may contain
+          <tt>&lt;sect2&gt;</tt> and so on up to
+          <tt>&lt;sect5&gt;</tt>. The top-level element of an
+          article body is always
+          <tt>&lt;sect1&gt;</tt>. Regardless of which elements
+          you use, give each structural element a unique id, so that
+          you can link to it. For usage example, see the template.
+        </p><p> Please try to avoid using deeply nested sections; for
+          most situations, <tt>&lt;sect1&gt;</tt> and
+          <tt>&lt;sect2&gt;</tt> should be sufficient. If not,
+          you probably should split your <tt>&lt;sect1&gt;</tt>
+          into several smaller ones.
+        </p><p> Use the tag <tt>&lt;para&gt;</tt> for
+          paragraphs, even if there is only one paragraph in a
+          section--see template for examples.
+        </p></div><div class="sect3"><a name="notes"></a><div class="titlepage"><div><h4 class="title"><a name="notes"></a>Notes, Warnings, And Tips</h4></div></div><p>
+          For notes, tips, warnings, and important information, which
+          should be set apart from the main text (usually as a
+          paragraph with some warning sign on the margin), use tags
+          <tt>&lt;note&gt;</tt>, <tt>&lt;tip&gt;</tt>,
+          <tt>&lt;warning&gt;</tt>,
+          <tt>&lt;important&gt;</tt> respectively. For example:
+          <pre class="programlisting">
+
+&lt;tip&gt;
+ &lt;title&gt;TIP&lt;/title&gt;
+ &lt;para&gt;
+  To speed up program compilation, use &lt;application&gt;gcc&lt;/application&gt;
+  compiler with Pentium optimization.
+ &lt;/para&gt;
+&lt;/tip&gt; </pre>  produces
+        </p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="extip"></a>TIP</h3><p>
+            To speed up program compilation, use
+            gcc compiler with Pentium
+            optimization.  </p></div><p>
+          Note that this should not be inside a
+          <tt>&lt;para&gt;</tt> but between paragraphs.
+        </p></div><div class="sect3"><a name="figures"></a><div class="titlepage"><div><h4 class="title"><a name="figures"></a> Screenshots and other figures</h4></div></div><p>
+          To include screenshots and other figures, use the following
+          tags:
+          
+          <pre class="programlisting">
+
+&lt;figure id="shot1"&gt;
+ &lt;title&gt;Screenshot&lt;/title&gt;
+ &lt;screenshot&gt;
+  &lt;screeninfo&gt;Screenshot of a program&lt;/screeninfo&gt;
+  &lt;graphic format="PNG"  fileref="figures/example_screenshot" srccredit="ME"&gt;
+  &lt;/graphic&gt;
+ &lt;/screenshot&gt;
+&lt;/figure&gt;
+          </pre>
+          replacing <tt>example_screenshot</tt> with the
+          actual file name (without extension). The result will look like this:
+          
+          <div class="figure"><p><a name="shot1"></a><b>Figure 1. Screenshot</b></p><div class="screenshot"><p><img src="figures/example_screenshot"></p></div></div>
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2921804"></a>NOTE</h3><p>
+            Notice in this example that the screenshot file name does
+            not include the file type extension -- to find out
+            why, please read <a href="#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a>.
+          </p></div></div><div class="sect3"><a name="listing"></a><div class="titlepage"><div><h4 class="title"><a name="listing"></a>Program listings and terminal session</h4></div></div><p>
+          To show a file fragment--for example, program
+          listing--use <tt>&lt;programlisting&gt;</tt> tag:
+          <pre class="programlisting">
+
+&lt;programlisting&gt;
+[Desktop Entry] 
+Name=Gnumeric spreadsheet
+Exec=gnumeric 
+Icon=gnome-gnumeric.png 
+Terminal=0
+Type=Application
+&lt;/programlisting&gt;
+          </pre>
+          which produces
+          <pre class="programlisting">
+[Desktop Entry] 
+Name=Gnumeric spreadsheet 
+Exec=gnumeric
+Icon=gnome-gnumeric.png 
+Terminal=0 
+Type=Application
+          </pre>
+          As a matter of fact, all examples in this document were
+          produced using <tt>&lt;programlisting&gt;</tt>.
+        </p><p>
+          To show a record of terminal session--i.e., sequence of
+          commands entered at the command line--use
+          <tt>&lt;screen&gt;</tt> tag:
+          <pre class="programlisting">
+
+&lt;screen&gt;
+&lt;prompt&gt;bash$&lt;/prompt&gt;&lt;userinput&gt;make love&lt;/userinput&gt; 
+make: *** No rule to make target `love'. Stop.
+&lt;/screen&gt;
+          </pre>
+          which produces
+          <pre class="screen">
+<tt>bash$</tt><b><tt>make love</tt></b>  
+make: *** No rule to make target `love'.  Stop.
+          </pre>
+          Note the use of tags <tt>&lt;prompt&gt;</tt> and
+          <tt>&lt;userinput&gt;</tt> for marking system prompt
+          and commands entered by user.
+          <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2922020"></a>NOTE</h3><p>
+              Note that both <tt>&lt;programlisting&gt;</tt>
+              and <tt>&lt;screen&gt;</tt> preserve linebreaks,
+              but interpret SGML tags (unlike LaTeX
+              verbatim environment). Take a look at
+              the source of this document to see how you can have SGML
+              tags literally shown but not interpreted,
+            </p></div>
+        </p></div><div class="sect3"><a name="lists"></a><div class="titlepage"><div><h4 class="title"><a name="lists"></a> Lists</h4></div></div><p>
+	  The most common list types  in DocBook are
+	  <tt>&lt;itemizedlist&gt;</tt>,
+	  <tt>&lt;orderedlist&gt;</tt>, and 
+	  <tt>&lt;variablelist&gt;</tt>.
+	</p><div class="variablelist"><dl><dt><a name="id2922139"></a><span class="term"> <tt>&lt;itemizedlist&gt;</tt></span></dt><dd><p><a name="id2922158"></a> 
+		This is the simplest unnumbered list, parallel to
+	    <tt>&lt;ul&gt;</tt> in HTML. Here is an example: 
+		<pre class="programlisting">
+
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Show backup files&lt;/guilabel&gt; &amp;mdash; This will
+      show any backup file that might be on your system.
+    &lt;/para&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Show hidden files&lt;/guilabel&gt; &amp;mdash; This will
+      show all "dot files" or files that begin with a dot.  This
+      files typically include configuration files and directories.
+    &lt;/para&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Mix files and directories&lt;/guilabel&gt; &amp;mdash; This
+      option will  display files and directories in the order you
+      sort them instead of 
+      always having directories shown above files.
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+&lt;/itemizedlist&gt; 
+
+		</pre>
+		and output:
+                </p><div class="itemizedlist"><ul><li><p><a name="id2922197"></a>
+		      Show backup files --
+		      This will show any backup file that might be on
+		      your system.
+		    </p></li><li><p><a name="id2922257"></a>
+		      Show hidden files --
+		      This will show all "dot files" or files that
+		      begin with a dot.  This files typically include
+		      configuration files and directories.
+		    </p></li><li><p><a name="id2922289"></a>
+		      Mix files and directories
+		      -- This option will display files and
+		      directories in the order you sort them instead
+		      of always having directories shown above files.
+		    </p></li></ul></div><p> Note the use of <tt>&amp;mdash;</tt>
+              for long dash (see <a href="#specsymb" title=" Special symbols ">the section called &#8220; Special symbols &#8221;</a>). Also,
+              please note that the result looks much nicer because the
+              terms being explained (Show backup
+              files, etc.) are set in a different font. In
+              this case, it was achieved by using <a href="#gui" title="GUI elements"><tt>&lt;guilabel&gt;</tt></a>
+              tag. In other cases, use appropriate tags such as
+              <a href="#gui" title="GUI elements"><tt>&lt;guimenuitem&gt;</tt></a>,
+              <a href="#filenames" title="Filenames, commands, and other
+        computer-related things"><tt>&lt;command&gt;</tt></a>,
+              or -- if none of
+              this applies -- use
+              <a href="#gui" title="GUI elements"><tt>&lt;emphasis&gt;</tt></a>.
+	      </p></dd><dt><a name="id2922461"></a><span class="term"> <tt>&lt;orderedlist&gt;</tt></span></dt><dd><p><a name="id2922479"></a>
+		This list is completely analogous to
+		<tt>&lt;itemizedlist&gt;</tt> and has the same
+		syntax, but  it produces numbered list. By default,
+		this list uses Arabic numerals for numbering entries;
+		you can override this using <tt>numeration</tt>,
+		for example <tt>&lt;orderedlist
+		  numeration="lowerroman"&gt;</tt>. Possible values of
+		these attribute are <tt>arabic</tt>,
+		<tt>upperalpha</tt>,
+		<tt>loweralpha</tt>,
+		<tt>upperroman</tt>,
+		<tt>lowerroman</tt>.
+	      </p></dd><dt><a name="id2922560"></a><span class="term"> <tt>&lt;variablelist&gt;</tt></span></dt><dd><p><a name="id2922579"></a> This list is used when each entry is
+	    rather long, so it should be formatted as a block of text
+	    with some subtitle, like a small subsection.  The
+	    <tt>&lt;variablelist&gt;</tt> is more complicated
+	    than itemizedlists, but for larger blocks of text, or when
+	    you're explaining or defining something, it's best to use
+	    them.  Their greatest advantage is that it's easier for a
+	    computer to search.  The lines you are reading now were
+	    produced by <tt>&lt;variablelist&gt;</tt>. The
+	    source looked liked this:
+		<pre class="programlisting">
+
+&lt;variablelist&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt; &lt;sgmltag&gt;&amp;lt;itemizedlist&gt;&lt;/sgmltag&gt;&lt;/term&gt; 
+    &lt;listitem&gt;&lt;para&gt; 
+	This is the simplest unnumbered list, parallel to
+        &lt;sgmltag&gt;&amp;lt;ul&gt;&lt;/sgmltag&gt; in HTML. Here is an example:...
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+    &lt;varlistentry&gt;		 
+	&lt;term&gt; &lt;sgmltag&gt;&amp;lt;orderedlist&gt;&lt;/sgmltag&gt;&lt;/term&gt;
+     &lt;listitem&gt;&lt;para&gt;	
+	This list is completely analogous to
+	&lt;sgmltag&gt;&amp;lt;itemizedlist&gt;&lt;/sgmltag&gt; 
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+    &lt;varlistentry&gt;		 
+	&lt;term&gt; &lt;sgmltag&gt;&amp;lt;variablelist&gt;&lt;/sgmltag&gt;&lt;/term&gt;
+     &lt;listitem&gt;&lt;para&gt;	
+		This list is used when each entry is rather long,...
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+&lt;/variablelist&gt;        
+
+		</pre>		
+		</p></dd></dl></div><p>
+	Lists can be nested; in this case, the stylesheets
+	are smart enough to change the numeration (for
+	<tt>&lt;orderedlist&gt;</tt>) or marks of each entry
+	(in  <tt>&lt;itemizedlist&gt;</tt>) for sub-lists
+	</p></div></div><div class="sect2"><a name="inline"></a><div class="titlepage"><div><h3 class="title"><a name="inline"></a>Inline Elements</h3></div></div><div class="sect3"><a name="gui"></a><div class="titlepage"><div><h4 class="title"><a name="gui"></a>GUI elements</h4></div></div><div class="itemizedlist"><ul><li><p><a name="id2922748"></a>
+              <tt>&lt;guibutton&gt;</tt> -- used for
+              buttons, including checkbuttons and radio buttons
+            </p></li><li><p><a name="id2922775"></a>
+              <tt>&lt;guimenu&gt;</tt>, 
+              <tt>&lt;guisubmenu&gt;</tt> --used for 
+	      top-level menus and submenus
+              respectively, for example <tt>
+              &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of the
+              &lt;guimenu&gt;Main Menu&lt;/guimenu&gt;</tt>
+            </p></li><li><p><a name="id2922825"></a>
+              <tt>&lt;guimenuitem&gt;</tt>--an entry in a
+              menu
+            </p></li><li><p><a name="id2922849"></a>
+              <tt>&lt;guiicon&gt;</tt>--an icon
+            </p></li><li><p><a name="id2922874"></a>
+              <tt>&lt;guilabel&gt;</tt>--for items which have
+              labels, like tabs, or bounding boxes. 
+            </p></li><li><p><a name="id2922899"></a>
+              <tt>&lt;interface&gt;</tt>-- for most everything
+              else... a window, a dialog box, the Panel, etc.
+            </p></li></ul></div><p>
+          If you need to refer to a sequence of menu choices, such as
+          Main Menu-&gt;Utilities-&gt;GNOME
+            terminal
+          there is a special construction for this, too:
+          <pre class="programlisting">
+
+&lt;menuchoice&gt;
+ &lt;guimenu&gt;Main Menu&lt;/guimenu&gt; &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt;
+ &lt;guimenuitem&gt;GNOME terminal&lt;/guimenuitem&gt; &lt;/menuchoice&gt;
+          </pre>
+        </p></div><div class="sect3"><a name="links"></a><div class="titlepage"><div><h4 class="title"><a name="links"></a>Links and references</h4></div></div><p>
+          To refer to another place in the same document, you can use
+          tags <tt>&lt;xref&gt;</tt> and
+          <tt>&lt;link&gt;</tt>. The first of them
+          automatically inserts the full name of the element you refer
+          to (section, figure, etc.), while the second just creates a
+          link (in HTML output). Here is an example:
+          <pre class="programlisting">
+An example of a &lt;link linkend="extip"&gt;tip&lt;/link&gt; was given in
+&lt;xref linkend="notes" /&gt;.  
+          </pre>
+          which produces: An example of a <a href="#extip">tip</a> was given in  <a href="#notes" title="Notes, Warnings, And Tips">the section called &#8220;Notes, Warnings, And Tips&#8221;</a>.
+        </p><p>
+          Here <tt>notes</tt> and <tt>extip</tt>
+          are the id attributes of <a href="#notes" title="Notes, Warnings, And Tips">the section called &#8220;Notes, Warnings, And Tips&#8221;</a> and of the
+          example of a tip in it.
+        </p><p>  To produce a link  to an external source, such as a
+          Web page or a local file, use <tt>&lt;ulink&gt;</tt>
+          tag, for example:
+          <pre class="programlisting">
+ To find more about GNOME, please visit &lt;ulink type="http"
+url="http://www.gnome.org"&gt;GNOME Web page&lt;/ulink&gt; 
+          </pre>
+          which produces:  To find more about GNOME, please visit
+          <a href="http://www.gnome.org" target="_top">The GNOME Web
+          Site</a> You can use any of the standard URL types, such
+          as <tt>http, ftp, file, telnet, mailto</tt> (in
+          most cases, however, use of <tt>mailto</tt> is
+          unnecessary--see discussion of
+          <tt>&lt;email&gt;</tt> tag).
+        </p></div><div class="sect3"><a name="filenames"></a><div class="titlepage"><div><h4 class="title"><a name="filenames"></a>Filenames, commands, and other
+        computer-related things</h4></div></div><p>
+          Here are some tags used to describe operating system-related
+          things:  
+        </p><div class="itemizedlist"><ul><li><p><a name="id2923288"></a>  <tt>&lt;filename&gt;</tt> -- used
+              for filenames,
+              e.g.<tt>&lt;filename&gt;</tt>
+                    foo.sgml
+                  <tt>&lt;/filename&gt;</tt> 
+              produces: <tt>foo.sgml</tt>.
+            </p></li><li><p><a name="id2923345"></a>  <tt>&lt;filename
+              class="directory"&gt;</tt> -- used for
+              directories, e.g.<tt>&lt;filename
+              class="directory"&gt;</tt>/usr/bin
+                  <tt>&lt;/filename&gt;</tt>
+              produces: <tt>/usr/bin</tt>.
+            </p></li><li><p><a name="id2923408"></a>
+              <tt>&lt;application&gt;</tt> -- used for
+              application names,
+              e.g. <tt>&lt;application&gt;</tt>Gnumeric
+              <tt>&lt;/application&gt;</tt> produces:
+              Gnumeric.
+            </p></li><li><p><a name="id2923463"></a>
+	      <tt>&lt;envar&gt;</tt> -- used for
+	      environment variables, e.g. 
+              <tt>&lt;envar&gt;</tt>PATH<tt>&lt;/envar&gt;</tt>. 
+            </p></li><li><p><a name="id2923505"></a>
+              <tt>&lt;command&gt;</tt> -- used for
+              commands entered on command line, e.g.
+              <tt>&lt;command&gt;</tt>make install
+              <tt>&lt;/command&gt;</tt> produces:
+              <b>make install</b>.
+            </p></li><li><p><a name="id2923561"></a>
+              <tt>&lt;replaceable&gt;</tt> -- used for
+              replaceable text, e.g.
+              <tt>&lt;command&gt;</tt>db2html<tt>&lt;replaceable&gt;</tt>
+              foo.sgml
+              <tt>&lt;/replaceable&gt;</tt><tt>&lt;/command&gt;</tt>
+              produces: <b>db2html
+              <i><tt>foo.sgml</tt></i></b>.
+            </p></li></ul></div></div><div class="sect3"><a name="keys"></a><div class="titlepage"><div><h4 class="title"><a name="keys"></a>Keyboard input</h4></div></div><p> To mark up text input by the user, use
+        <tt>&lt;userinput&gt;</tt>.
+        </p><p>  To mark keystrokes such as shortcuts and other
+          commands, use <tt>&lt;keycap&gt;</tt>. 
+          This is used for marking up what is printed on the top 
+          of the physical key on the keyboard. There are a couple of
+          other tags for keys, too: <tt>&lt;keysym&gt;</tt>
+          and <tt>&lt;keycode&gt;</tt>. However you are
+          unlikely to need these for most documentation. For reference,
+          <tt>&lt;keysym&gt;</tt> is for the &#8220;symbolic
+          name&#8221; of a key. <tt>&lt;keycode&gt;</tt> is
+          for the &#8220;scan code&#8221; of a key. These are not
+          terms commonly required in GNOME documentation,
+          although <tt>&lt;keysym&gt;</tt> is useful for marking
+          up control codes.
+       </p><p>
+          To mark up a combination of keystrokes, use the
+          <tt>&lt;keycombo&gt;</tt> wrapper:
+          <pre class="programlisting">
+
+&lt;keycombo&gt;
+ &lt;keycap&gt;Ctrl&lt;/keycap&gt;
+ &lt;keycap&gt;Alt&lt;/keycap&gt;
+ &lt;keycap&gt;F1&lt;/keycap&gt;
+&lt;/keycombo&gt;
+          </pre>
+        </p><p>
+          Finally, if you want to show a shortcut for some menu
+          command, here are the appropriate tags (rather long):
+          <pre class="programlisting">
+
+&lt;menuchoice&gt;
+ &lt;shortcut&gt;
+  &lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;q&lt;/keycap&gt;&lt;/keycombo&gt;
+ &lt;/shortcut&gt; 
+ &lt;guimenuitem&gt; Quit&lt;/guimenuitem&gt; 
+&lt;/menuchoice&gt;
+          </pre>
+          which produces simply
+           Quit (<b>Ctrl-q</b>)
+        </p></div><div class="sect3"><a name="email"></a><div class="titlepage"><div><h4 class="title"><a name="email"></a>E-mail addresses</h4></div></div><p>  To mark up e-mail
+        address, use <tt>&lt;email&gt;</tt>:
+          <pre class="programlisting">
+ The easiest way to get in touch with me is by e-mail
+(&lt;email&gt;me at mydomain.com&lt;/email&gt;)
+          </pre>
+          which produces: The easiest way to get in touch with me is
+          by e-mail  (<tt>&lt;<a href="mailto:me at mydomain.com">me at mydomain.com</a>&gt;</tt>) Note that
+          <tt>&lt;email&gt;</tt> automatically produces a link
+          in html version.
+        </p></div><div class="sect3"><a name="specsymb"></a><div class="titlepage"><div><h4 class="title"><a name="specsymb"></a> Special symbols </h4></div></div><p> 
+	  DocBook also provides special means for entering
+	typographic symbols which can not be entered directly
+	form the keyboard (such as copyright sign). This is done using
+	<i>entities</i>, which is SGML analogue of
+	macros, or commands, of LaTeX. They generally have the form 
+	  <tt>&amp;entityname;</tt>. Note that the semicolon
+	is required. 
+	</p><p>
+	  here is partial list of most commonly used enitites:
+	</p><div class="itemizedlist"><ul><li><p><a name="id2924022"></a>
+             <tt>&amp;amp;</tt> -- ampersend (&amp;)
+	  </p></li><li><p><a name="id2924043"></a>
+             <tt>&amp;lt;</tt> -- left angle bracket (&lt;)
+	  </p></li><li><p><a name="id2924062"></a>
+             <tt>&amp;copy;</tt> -- copyright sign (©)
+	  </p></li><li><p><a name="id2924080"></a>
+             <tt>&amp;mdash;</tt> -- long dash (--)
+	  </p></li><li><p><a name="id2924106"></a>
+             <tt>&amp;hellip;</tt> -- ellipsis (...)
+	  </p></li></ul></div><p>
+	  Note that the actual look of the resulting symbols depends
+	  on the fonts used by your browser; for example, it might
+	  happen that long dash (<tt>&amp;mdash;</tt>) looks
+	  exactly like the usual dash (-). However, in the PostScript
+	  (and thus, in print) the output will look markedly better if
+	  you use appropriate tags. 
+	</p></div></div></div><div class="sect1"><a name="conventions"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="conventions"></a>GDP Documentation Conventions </h2></div></div><div class="sect2"><a name="conventionsalldocs"></a><div class="titlepage"><div><h3 class="title"><a name="conventionsalldocs"></a>Conventions for All GDP Documentation</h3></div></div><div class="sect3"><a name="xmlcomp"></a><div class="titlepage"><div><h4 class="title"><a name="xmlcomp"></a> XML compatibility </h4></div></div><p>
+	  All GNOME documentation  should conform to XML syntax
+	  requirements, which are stricter than SGML ones -- see
+	  <a href="#xml" title="XML and SGML">the section called &#8220;XML and SGML&#8221;</a> for more informaion.
+	</p></div><div class="sect3"><a name="authorsnames"></a><div class="titlepage"><div><h4 class="title"><a name="authorsnames"></a> Authors' names</h4></div></div><p> 
+	  All GNOME documentation should contain the names of both the
+	  application authors and documentation authors, as well as a
+	  link to the application web page (if it exists) and
+	  information for bug submission -- see templates for an
+	  example. 
+	  </p></div></div><div class="sect2"><a name="conventionsappdocs"></a><div class="titlepage"><div><h3 class="title"><a name="conventionsappdocs"></a>Conventions for Application Documentation</h3></div></div><div class="sect3"><a name="applicationversionid"></a><div class="titlepage"><div><h4 class="title"><a name="applicationversionid"></a>Application Version Identification</h4></div></div><p>
+          Application documentation should identify the version of the
+          application for which the documentation is written:
+          <pre class="programlisting">
+
+&lt;sect1 id="intro"&gt;
+ &lt;title&gt;Introduction&lt;/title&gt;
+ &lt;para&gt;
+  blah-blah-blah This document describes version 1.0.53 of gfoo.
+ &lt;/para&gt;
+&lt;/sect1&gt;
+          </pre>
+        </p></div><div class="sect3"><a name="license"></a><div class="titlepage"><div><h4 class="title"><a name="license"></a> Copyright information </h4></div></div><p> Application
+        documentation should contain a copyright notice, stating the
+        licensing terms. It is suggested that you use the GNU Free
+        Documentation License.  You could also use some other license
+        allowing free redistribution, such as GPL or Open Content
+        license.  If documentation uses some trademarks (such as UNIX,
+        Linux, Windows, etc.), proper legal junk should also be
+        included (see templates).
+	</p></div><div class="sect3"><a name="license2"></a><div class="titlepage"><div><h4 class="title"><a name="license2"></a>Software license</h4></div></div><p> 
+         All GNOME applications must contain information about the
+       license (for software, not for documentation), either in the
+       "About" box or in the manual. 
+       </p></div><div class="sect3"><a name="bugtraq"></a><div class="titlepage"><div><h4 class="title"><a name="bugtraq"></a> Bug reporting</h4></div></div><p> 
+	  Application documentation should give an address for
+        reporting bugs and for submitting comments about the
+        documentaion (see templates for an example). 
+       </p></div></div></div><div class="sect1"><a name="writingapplicationmanuals"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="writingapplicationmanuals"></a>Writing Application and Applet Manuals</h2></div></div><p>
+       Every GNOME application or applet should have a manual specific
+      to that particular application. This manual should be a complete
+      and authoritative guide.  The manual should describe what the
+      program does and how to use it.  Manuals will typically describe
+      each window or panel presented to the user using screenshots (in
+      PNG format only) when appropriate.  They should also describe
+      each feature and preference option available.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2924548"></a>Documentation Availability</h3><p>
+        Applications and applets should not rely on documentation
+        which is only available on the internet.  All manuals and
+        other documentation should be packaged with the application or
+        applet and be made available to the user through the standard
+        GNOME help system methods described below.
+      </p></div><p> Application manuals should be based on the template in
+    <a href="#template1" title="Template 1: Application Manual">the section called &#8220;Template 1: Application Manual&#8221;</a>.  Applet manuals should be based on
+    the templates in <a href="#template2-1x" title="Template 2: Applet Manual For GNOME 1.x">the section called &#8220;Template 2: Applet Manual For GNOME 1.x&#8221;</a> for GNOME
+    versions 1.x and the templates in <a href="#template2-2x" title="Template 2: Applet Manual For GNOME 2.x">the section called &#8220;Template 2: Applet Manual For GNOME 2.x&#8221;</a>
+    for GNOME versions 2.x.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2924643"></a>Manuals For Large Applications</h3><p>
+        Manuals for very large applications, such as GNOME Workshop
+        components should be a <tt>&lt;book&gt;</tt> (and thus
+        use <tt>&lt;chapter&gt;</tt> for each primary section)
+        , instead of <tt>&lt;article&gt;</tt> which most
+        applications use(with each primary section being a
+        <tt>&lt;sect1&gt;</tt>).
+      </p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2924700"></a>Applet Manuals in GNOME 2.0</h3><p>
+        Note that applet manuals in GNOME 2.0 are treated in a special
+        way.  The manuals for all applets are merged into a single
+        virtual document by Nautilus.  For this reason, the header
+        information for applet manuals is omitted and the  first
+        section of each applet is
+        <tt>&lt;sect1&gt;</tt>. Applet manuals will typically
+        have several sections, each of which is
+        <tt>&lt;sect2&gt;</tt>.
+      </p></div><p>
+      Application manuals should be made available by having a
+      "Manual" entry in the Help pull-down menu
+      at the top of the 
+      application, as described in <a href="#listingdocsinhelpmenu" title="Listing Documents in the Help Menu">the section called &#8220;Listing Documents in the Help Menu&#8221;</a>.
+      Applets should make their manuals available by
+      right-clicking on the applet. 
+    </p></div><div class="sect1"><a name="listingdocsinhelpmenu"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="listingdocsinhelpmenu"></a>Listing Documents in the Help Menu</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2924823"></a>Developer Information</h3><p>
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </p></div><p>
+      Typically the application manual and possibly additional help
+      documents will be made available to the user under the
+      Help menu at the top right of the
+      application. To do this, you must first write a
+      <tt>topic.dat</tt> file. The format for this file is:
+      <pre class="programlisting">
+One line for each 'topic'.
+
+Two columns, as defined by perl -e 'split(/\s+/,$aline,2)'
+
+First column is the HTML file (and optional section) for the topic,
+relative to the app's help file dir.
+
+Second column is the user-visible topic name.
+      </pre>
+      For example, Gnumeric's
+      <tt>topic.dat</tt> file is:
+      <pre class="programlisting">
+gnumeric.html   Gnumeric manual
+function-reference.html Gnumeric function reference
+      </pre>
+      When the application is installed, the
+      <tt>topic.dat</tt> file should be placed in the
+      <tt>$prefix/share/gnome/help/<i><tt>appname</tt></i>/C/</tt> directory
+      where <i><tt>appname</tt></i> is replaced by the
+      application's name.  The application documentation (converted
+      from SGML into HTML with <b>db2html</b>) should be
+      placed in this directory too.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2925011"></a>Note</h3><p>
+       If the help files are not present in the correct directory, the
+       menu items will NOT appear when the program is run. 
+      </p></div><p>
+      The <tt>topic.dat</tt> file is used by the GNOME
+      menu building code to generate the Help
+      menu. When you define your menu:  
+<pre class="programlisting">
+GnomeUIInfo helpmenu[] = {
+              {GNOME_APP_UI_ITEM, 
+               N_("About"), N_("Info about this program"),
+               about_cb, NULL, NULL, 
+               GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ABOUT,
+               0, 0, NULL},
+               GNOMEUIINFO_SEPARATOR,
+               GNOMEUIINFO_HELP("<i>appname</i>"),
+               GNOMEUIINFO_END
+        };
+</pre>
+      the line specifying <tt>GNOMEUIINFO_HELP</tt> causes
+      GNOME to create a menu entry which is tied to the documentation
+      in the directory mentioned above. Also, all the topics in the
+      <tt>topic.dat</tt> file will get menu entries in the
+      Help menu. When the user selects any of these
+      topics from the Help menu, a help browser
+      will be started with the associated HTML documentation.
+    </p></div><div class="sect1"><a name="applicationhelpbuttons"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="applicationhelpbuttons"></a>Application Help Buttons</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2925176"></a>Developer Information</h3><p>
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </p></div><p>
+      Most GNOME applications will have Help
+      buttons.  These are most often seen in Preference windows. (All
+      Preference windows should have Help
+      buttons.) Most Help buttons will connect
+      to the application manual, although some may connect to special
+      documents.  Because the Help buttons do
+      not generally have their own special documentation, the
+      documentation author(s) do not need to do very much.  However,
+      the application author must be careful to guarantee that the
+      application correctly opens the help documentation when the
+      Help buttons are pressed.  
+    </p><p>
+      To make the Help buttons call the correct document in the GNOME Help
+      Browser the developer should add code based on the following example:
+    </p><pre class="programlisting">
+gchar *tmp;
+tmp = gnome_help_file_find_file ("module", "page.html");
+if (tmp) {
+  gnome_help_goto(0, tmp);
+  g_free(tmp);
+}
+    </pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2925314"></a>NOTE</h3><p>
+        The example above is in the C language, please refer to other
+        documentation or forums for other GNOME language bindings.
+      </p></div></div><div class="sect1"><a name="packagingappletdocs"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="packagingappletdocs"></a>Packaging Applet Documentation</h2></div></div><div class="sect2"><a name="appletfiles"></a><div class="titlepage"><div><h3 class="title"><a name="appletfiles"></a>Applet Documentation Files</h3></div></div><p>
+        In GNOME 2.0 each applet will have its own documentation
+        installed separately, and the GNOME 2.0 help
+        browser (Nautilus) will dynamically
+        merge the applet documents into a single virtual book
+        called <i>GNOME Applets</i>. During the
+        transitionary stage between GNOME 1.0 and GNOME 2.0, each
+        applet in the gnome-applets package has its own manual(stored
+        with the applet in CVS), but they are merged together manually
+        to create the <i>GNOME Applets</i> book before
+        distribution.  Telsa 
+        <tt>&lt;<a href="mailto:hobbit at aloss.ukuu.org.uk">hobbit at aloss.ukuu.org.uk</a>&gt;</tt> is the maintainer of
+        this document.  Applet documentation should be sent to Telsa
+        (or placed in CVS) who will make sure they are correctly
+        packaged with the applets.  The applet author should be
+        contacted to modify the menu items and help buttons to bind to
+        the applet documentation if necessary.
+      </p><p>
+        Images which are part of the applet documentation should be in
+        PNG format and should reside in the same directory as the SGML
+        document file in CVS(gnome-applets/APPLETNAME/help/C).
+      </p><p>
+        Applets which are not part of the gnome-applets package must
+        package their documentation with the particular applet
+        package. They should use the same applet template as other
+        applets.  However, the <tt>&lt;xref&gt;</tt> links to
+        the introductory chapter of the <i>GNOME
+        Applets</i>  book must be removed (as the 1.x
+        GNOME Help Browser does not allow
+        you to create links between separate documents) and replaced
+        with suitable text.  Note that since this document is not part
+        of the <i>GNOME Applets</i> book, you must
+        remember to add <tt>&lt;legalnotice&gt;</tt> and
+        <tt>&lt;copyright&gt;</tt> sections.
+      </p></div><div class="sect2"><a name="appletmenu"></a><div class="titlepage"><div><h3 class="title"><a name="appletmenu"></a>Adding Documentation to an Applet Menu</h3></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2925561"></a>Developer Information</h3><p>
+          This section is for developers.  Documentation authors
+          generally do not need to know this material.
+        </p></div><p>
+        Applets should have About and
+        Manual menu items, typically as the first
+        and second top-most items in the menu respectively.  This
+        section describes how the developer creates these menu items
+        and links them to the documentation.
+      </p><p>
+        To add an applet's manual to its applet menu, use:
+<pre class="programlisting">
+/* add an item to the applet menu */
+applet_widget_register_callback(APPLET_WIDGET(applet), "manual",
+_("Manual"), &amp;open_manual, NULL);
+</pre>
+        Here the second argument is an arbitrary name for the
+        callback, the third argument is the label which will appear
+        when the user right clicks on the applet, and the fourth
+        argument is the callback function.
+      </p><p>
+        You will need to write a simple callback function to open the
+        help browser to the appropriate document.  This is done using
+        the <tt>gnome_help_file_find_file</tt> function,
+        as described in <a href="#applicationhelpbuttons" title="Application Help Buttons">the section called &#8220;Application Help Buttons&#8221;</a>.
+      </p><p>
+        You will also want to add an About menu
+        item to the applet's menu.  This is a
+        stock menu item and is done:
+<pre class="programlisting">
+applet_widget_register_stock_callback (APPLET_WIDGET(applet), "about",
+       GNOME_STOCK_MENU_ABOUT, _("About"), &amp;my_applet_cb_about,
+       NULL);
+</pre>
+      </p><p>
+        More information can be found at <a href="http://developer.gnome.org/doc/tutorials/applet/index.html" target="_top">Writing
+        GNOME panel applets using the GTK+/GTK-- widget set</a>.
+      </p></div></div><div class="sect1"><a name="writingcontextsensitivehelp"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="writingcontextsensitivehelp"></a>Writing Context Sensitive Help (coming in GNOME-2.0)</h2></div></div><p>
+      Context sensitive help, also known as "pop-up" help, will allow
+      a user to obtain help information about specific buttons or
+      parts of an application.
+    </p><p>
+      Context sensitive help is still under development and not all
+      the details are available at this time. However, the basics can
+      be shown here so that you can understand how the system will
+      work.
+    </p><p>
+      The Context Sensitive Help system is designed to allow the
+      developer to give an id to a particular portion of the User
+      Interface, for example, a button. Once the interface is complete
+      a Perl script can then be run against the interface code to
+      create a "map" file. This map file allows the developer or
+      writer to associate particular paragraph sections from an XML
+      document to the interface items.
+    </p><p>
+      The XML used for the document is a small XML DTD that is being
+      developed to use the same tags (albeit, much fewer) as DocBook
+      so that writers do not have to re-learn a new DTD.
+    </p><p>
+      Once the document is written and map file is complete, when the
+      user launches context sensitive help on the interface (either by
+      pressing a button and then clicking on the interface item they
+      want information on, or by right mouse clicking on the interface
+      item and selecting a pop-up menu item like "What's This") a
+      small transient window will appear with brief but detailed
+      information on the interface item.
+    </p></div><div class="sect1"><a name="referring"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="referring"></a>Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</h2></div></div><p>
+      In the GNOME 2.0 Help System, you will be able to create links
+      from one document to another.  The exact mechanism for doing
+      this is in development.
+    </p></div><div class="sect1"><a name="basics"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="basics"></a>Basics of Documentation Style</h2></div></div><p>
+       Most people have never enjoyed reading a software manual, and
+       they probably never will.  Many times, they'll read the
+       documentation only when they run into problems, and they'll be
+       frustrated and upset before they even read a word.  On the
+       other hand, some readers will read the manual all the way
+       through, or at least look at the introduction before they
+       start. Your document might serve as a reference for an expert
+       or a guide to a beginner, and it must have enough depth to
+       satisfy the first without overwhelming the second.  Ideally, it
+       will serve beginners as they <i>become</i>
+       experts. Remember, your goal is to produce <i>complete,
+       intuitive and clear</i> documentation.
+    </p><p>
+       In order to write useful documentation, you'll have to know who
+       your audience is likely to be.  Then, you can look for the
+       problems they're likely to run into, and solve them.  It will
+       also help if you focus on the tasks users will perform, and
+       group features accordingly, rather than simply describing
+       features at random.  
+    </p><div class="sect2"><a name="styleplanning"></a><div class="titlepage"><div><h3 class="title"><a name="styleplanning"></a>Planning</h3></div></div><p>
+         Begin documenting by learning how to use the application and
+         reading over any existing documentation.  Pay attention to
+         places where your document will differ from the template.  It
+         may help to develop a document skeleton: a valid XML or SGML
+         document that has little or no content.  For very large
+         applications, you will need to make significant departures
+         from the templates, since you'll be using the
+         <tt>&lt;book&gt;</tt> tag instead of
+         <tt>&lt;chapter&gt;</tt> or
+         <tt>&lt;article&gt;</tt>.
+      </p></div><div class="sect2"><a name="balance"></a><div class="titlepage"><div><h3 class="title"><a name="balance"></a>Achieving a Balanced Style</h3></div></div><p> 
+         Just as you need to juggle expert and novice readers,
+         you'll have to juggle a number of other extremes as you write:
+         <div class="itemizedlist"><ul><li><p><a name="id2926120"></a>
+              Documents should be complete, yet concise.  You should
+              describe every feature, but you'll have decide how much
+              detail is really necessary.  It's not, for example,
+              necessary to describe every button and form field in a
+              dialog box, but you should make sure that your readers
+              know how to bring up the dialog and what it does.  If
+              you spend fewer words on the obvious, you can spend more
+              time clarifying the ambiguous labels and explaining
+              items that are more complex.
+            </p></li><li><p><a name="id2926147"></a>
+              Be engaging and friendly, yet professional. Games
+              documents may be less formal than productivity
+              application documents (people don't
+              <i>use</i> games, they
+              <i>play</i> them), but all of them should
+              maintain a standard of style which holds the reader's
+              interest without resorting to jokes and untranslatable
+              allusions or puns.
+           </p></li><li><p><a name="id2926185"></a>
+              Examples, tips, notes, and screenshots are useful to
+              break up long stretches of text, but too many can get in
+              the way, and make your documents too choppy to read.
+              It's good to provide a screenshot of any dialog windows
+              a user might run into, but if a dialog box has several
+              tabs, it's not usually necessary to have one for each.
+           </p></li><li><p><a name="id2926209"></a>
+              The GDP strives to have all of its documentation conform
+              to certain standards of style and content, but every
+              document (and every writer) is different.  You will need
+              to use your judgement, and write documents to fit with
+              the rest of the project, without compromising the
+              individual needs of your subject, or your own
+              individuality as a writer.
+           </p></li></ul></div>
+       </p></div><div class="sect2"><a name="stylestructure"></a><div class="titlepage"><div><h3 class="title"><a name="stylestructure"></a>Structure</h3></div></div><p>
+         In general, you won't have to worry too much about structure,
+         because the templates provide you with an excellent example.
+         As a general rule, try to follow that structural example.
+         That means using links, hierarchical nesting, and, if
+         necessary, a glossary or index.  You probably won't need to
+         use every available structural tag, but take advantage of
+         what DocBook provides you.
+      </p><p>
+         As to linking, there's some disagreement about whether to use
+         <tt>&lt;xref&gt;</tt> <tt>&lt;link&gt;</tt>
+         when you make links within your documents.  You'll have to
+         decide, based on the different ways that they are presented
+         in output, which is more appropriate given the context.
+         Regardless of which you use, you should not forget to use
+         them.  Help your readers find information that relevant to
+         the issue at hand.
+      </p><p>
+         The table of contents will be generated automatically, but
+         you will probably have to develop your own index if you wish
+         to have one.  The Nautilus Help Browser will have new, and
+         currently unknown, indexing capabilities, so index style and
+         structure are still under discussion.  The GNOME User's Guide
+         will contain a glossary in its next versions; unless you're
+         writing a<tt>&lt;book&gt;</tt>, it will probably be best to
+         contribute to that rather than developing your own.
+      </p></div><div class="sect2"><a name="stylegrammar"></a><div class="titlepage"><div><h3 class="title"><a name="stylegrammar"></a>Grammar and Spelling</h3></div></div><p>
+        Nobody expects you to be perfect; they just expect the
+        documentation for their software to be error-free.  That means
+        that, in the same way that developers look for bugs and accept
+        bug reports, writers must check for errors in their documents.
+        Poor grammar, bad spelling, and gross technical errors in
+        draft documents are fine.  However, if those problems show up
+        in a "real" release, they can count against the credibility of
+        GNOME and Linux.  They'll also make you look bad.
+      </p><p>
+        There is no substitute for a human proofreader; use a
+        spell-check program, then read it over yourself, and then find
+        someone else to help you.  Other GDP members are, of course,
+        willing and able to help you, but non-writers are often at
+        least as helpful.
+      </p><p>
+        Proofreading documents is both a also a good way to
+        familiarize yourself with documentation, and it certainly
+        makes you valuable to the GDP. Help other writers proof their
+        documents, and they will help you with yours.
+      </p></div></div><div class="sect1"><a name="teamwork"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="teamwork"></a>Teamwork</h2></div></div><div class="sect2"><a name="teamworkgdp"></a><div class="titlepage"><div><h3 class="title"><a name="teamworkgdp"></a>Working With The GDP Team</h3></div></div><p>
+        The GDP team is a valuable resource for any documentation
+        author.  GDP members can answer most questions documentation
+        authors have during the course of their work. It is also
+        important to make sure you are not duplicating work of other
+        GDP members by visiting the <i>GDP Documentation
+        Status Table</i> (<a href="http://www.gnome.org/gdp/doctable/" target="_top">http://www.gnome.org/gdp/doctable/</a>) and
+        assigning a documentation item to yourself.  This table also
+        provides a forum for making suggestions and announcements for
+        each documentation item.  The best way to get in touch with
+        GDP members is on the #docs IRC channel at irc.gnome.org or
+        else by emailing the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+        <i>gnome-doc-list mailing list</i></a>.
+      </p><p>
+        After an author has finished a document (or even a draft
+        version of the document), it is a good idea to ask a member of
+        the GDP team to read the document, checking it for grammar,
+        proper DocBook markup, and clarity.  One may typically find
+        another author to do this by either asking on the #docs IRC
+        channel at irc.gnome.org or by emailing the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+        <i>gnome-doc-list mailing list</i></a>.
+      </p></div><div class="sect2"><a name="teamworkdevelopers"></a><div class="titlepage"><div><h3 class="title"><a name="teamworkdevelopers"></a>Working With Developers</h3></div></div><p>
+        Writing documentation typically involves a certain amount of
+        interaction with the developers of GNOME or the application
+        which is being documented.  Often a document author will need
+        to ask the developer technical questions during the course of
+        writing a document. After the document is finished, it is good
+        idea to ask the developer to read the document to make sure it
+        is technically correct.  The documentation author should also
+        make sure that the application author correctly binds and
+        packages the documentation with the application.
+      </p></div></div><div class="sect1"><a name="finishing"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="finishing"></a>Finishing A Document</h2></div></div><div class="sect2"><a name="editting"></a><div class="titlepage"><div><h3 class="title"><a name="editting"></a>Editing The Document</h3></div></div><p>
+        When the document is finished, the document should be edited
+        by another member of the GDP for spelling, clarity, and
+        DocBook markup. It should also be read by an application
+        author to make sure the document is technically accurate.
+      </p></div><div class="sect2"><a name="submitting"></a><div class="titlepage"><div><h3 class="title"><a name="submitting"></a>Submitting The Document</h3></div></div><p>
+        After the document has been edited and checked for technical
+        accuracy, it is ready to be combined with the application or
+        documentation package.  This is typically done by passing the
+        document to the application or package developer.  In some
+        cases, the documents can be committed directly into CVS,
+        however this should only be done after obtaining permission to
+        make CVS commits from the developer.  Note that in many cases,
+        the application may need to be modified to correctly link to
+        the documentation.  The packaging system (tarballs and binary
+        packages) may also need to be modified to include the
+        documentation in the package.  Generally, this should be done
+        by the developers.
+      </p><p>
+        The final step is to email the GNOME Translation Team at
+        <tt>&lt;<a href="mailto:gnome-i18n at nuclecu.unam.mx">gnome-i18n at nuclecu.unam.mx</a>&gt;</tt> to notify them that
+        there is a new document for them to translate.
+      </p></div></div><div class="sect1"><a name="resources"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="resources"></a>Resources</h2></div></div><div class="sect2"><a name="resourcesweb"></a><div class="titlepage"><div><h3 class="title"><a name="resourcesweb"></a>Resources On The Web</h3></div></div><p>  The <a href="http://developer.gnome.org/projects/gdp/" target="_top">GNOME
+      Documentation Project Web page</a> lists current GDP 
+      projects and members.
+      </p><p>
+        The <a href="http://www.gnome.org/gdp/doctable/" target="_top">GDP Documentation Status Table</a> tracks the
+        status of all the various documentation components of GNOME.
+      </p><p>
+        Norman Walsh's  <a href="http://www.docbook.org" target="_top"> <i>DocBook: The Definitive
+        Guide</i></a> in an excellent book on DocBook,
+        available both online and in print.
+      </p></div><div class="sect2"><a name="resourcesbooks"></a><div class="titlepage"><div><h3 class="title"><a name="resourcesbooks"></a>Books</h3></div></div><p>
+        Docbook: The Definitive Guide is available in both printed
+        form and on the web at:
+        <a href="http://www.docbook.org/tdg/index.html" target="_top">
+        <i>Docbook: The Definitive Guide</i>
+        </a>
+      </p></div><div class="sect2"><a name="mailinglists"></a><div class="titlepage"><div><h3 class="title"><a name="mailinglists"></a>Mailing Lists</h3></div></div><p>
+        The <i>gnome-docs-list</i> mailing list is the
+        main discussion area for all contributors to the GNOME
+        Documentation Project. You can find out how to subscribe to
+        this list on <a href="http://www.gnome.org/resources/mailing-lists.html" target="_top">GNOME Mailing Lists</a>.  This is a rather
+        low-volume list, so you will not be flooded with messages.
+      </p></div><div class="sect2"><a name="irc"></a><div class="titlepage"><div><h3 class="title"><a name="irc"></a>IRC</h3></div></div><p>
+        Internet Relay Chat (IRC) is a fast and easy way to get in
+        touch with other GDP members.  There are generally at least a
+        few members here who can answer questions or discuss
+        documentation issues.  The IRC channel is #docs at
+        irc.gnome.org.
+      </p></div></div><div class="appendix"><h2 class="title" style="clear: both"><a name="templates"></a>A. Document Templates</h2><div class="sect1"><a name="template1"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="template1"></a>Template 1: Application Manual</h2></div></div><p>
+        The following template should be used for all application
+        manuals.  You can always get the latest copy of this
+        template from  <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Documentation Templates</a>.
+        <pre class="programlisting">
+
+
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+        &lt;!-- if not using PNG graphic, replace reference above with
+             .....PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
+         --&gt;
+&lt;!ENTITY version "1.0.53"&gt;
+        &lt;!-- replace version above with actual application version number--&gt;
+	&lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+]&gt;
+
+
+&lt;!-- This is a GNOME documentation template, designed by the GNOME
+  Documentation Project Team. Please use it for writing GNOME
+  documentation, making obvious changes. In particular, all the words
+  written in UPPERCASE (with the exception of GNOME) should be
+  replaced. As for "legalnotice", please leave the reference
+  unchanged.
+
+  Remember that this is a guide, rather than a perfect model to follow
+  slavishly. Make your manual logical and readable.  And don't forget
+  to remove these comments in your final documentation!  ;-)
+  --&gt;
+
+&lt;!-- =============Document Header ============================= --&gt;
+
+&lt;article id="index"&gt; &lt;!-- please do not change the id --&gt;
+
+  &lt;artheader&gt;
+    &lt;title&gt;MY-GNOME-APP&lt;/title&gt;
+    &lt;copyright&gt;
+      &lt;year&gt;2000&lt;/year&gt;
+      &lt;holder&gt;ME-THE-AUTHOR&lt;/holder&gt;
+    &lt;/copyright&gt;
+
+  &lt;!-- translators: uncomment this:
+
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;ME-THE-TRANSLATOR (Latin translation)&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+   --&gt;
+
+  &lt;!-- do not put authorname in the header except in copyright - use
+  section "authors" below --&gt;
+
+    &lt;legalnotice&gt;
+      &lt;para&gt;
+        Permission is granted to copy, distribute and/or modify this
+        document under the terms of the &lt;citetitle&gt;GNU Free
+        Documentation License&lt;/citetitle&gt;, Version 1.1 or any later
+        version published by the Free Software Foundation with no
+        Invariant Sections, no Front-Cover Texts, and no Back-Cover
+        Texts. You may obtain a copy of the &lt;citetitle&gt;GNU Free
+        Documentation License&lt;/citetitle&gt; from the Free Software
+        Foundation by visiting &lt;ulink type="http"
+        url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing
+        to: Free Software Foundation, Inc., 59 Temple Place - Suite
+        330, Boston, MA 02111-1307, USA.
+      &lt;/para&gt;
+      &lt;para&gt;
+        Many of the names used by companies to distinguish their
+        products and services are claimed as trademarks. Where those
+        names appear in any GNOME documentation, and those trademarks
+        are made aware to the members of the GNOME Documentation
+        Project, the names have been printed in caps or initial caps.
+      &lt;/para&gt;
+    &lt;/legalnotice&gt;
+
+  &lt;!-- this is the version of manual, not application --&gt; 
+    &lt;releaseinfo&gt;
+       This is version 1.0 of MY-GNOME-APP manual.
+    &lt;/releaseinfo&gt;
+
+  &lt;/artheader&gt;
+
+ &lt;!-- ============= Document Body ============================= --&gt;
+
+ &lt;!-- ============= Introduction ============================== --&gt;
+  &lt;sect1 id="intro"&gt;
+    &lt;title&gt;Introduction&lt;/title&gt;
+
+    &lt;para&gt;
+     &lt;application&gt;MY-GNOME-APP&lt;/application&gt; is an application which
+     proves mathematical theorems.  It has all the basic features
+     expected from a mathematical theorem prover, as well as a number
+     of advanced ones, such as proof by confusion.  In fact, many of
+     the proofs produced by &lt;application&gt;MY-GNOME-APP&lt;/application&gt;
+     are so complex that they are capable of proving almost anything
+     with a virtually null likelihood of being disproven.  It also has
+     the very popular predecessor of proof by confusion, proof by
+     dialog, first implemented by Plato.
+    &lt;/para&gt;
+    &lt;para&gt;
+      It also allows you to save and print theorem proofs and to add
+      comments to the proofs it produces.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+      To run &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, select
+      &lt;menuchoice&gt;
+	&lt;guisubmenu&gt;SUBMENU&lt;/guisubmenu&gt;
+	&lt;guimenuitem&gt;MY-GNOME-APP&lt;/guimenuitem&gt;
+      &lt;/menuchoice&gt;
+      from the &lt;guimenu&gt;Main Menu&lt;/guimenu&gt;, or type
+      &lt;command&gt;MYGNOMEAPP&lt;/command&gt; on the command line.
+  &lt;/para&gt;
+
+    &lt;para&gt;
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt; is included in the
+      &lt;filename&gt;GNOME-PACKAGE&lt;/filename&gt; package, which is part of the
+      GNOME desktop environment. This document describes version
+      &amp;version; of &lt;application&gt;MY-GNOME-APP&lt;/application&gt;.
+    &lt;/para&gt;
+  &lt;/sect1&gt;
+
+
+ &lt;!-- ================ Usage ================================ --&gt;
+ &lt;!-- This section should describe basic usage of the application. --&gt;
+
+  &lt;sect1 id="usage"&gt;
+    &lt;title&gt;Using MY-GNOME-APP&lt;/title&gt;
+    &lt;para&gt;
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt; can be used to produce a
+      perfect proof of &lt;emphasis&gt;any&lt;/emphasis&gt; mathematical theorem
+      (provided, of course, that this theorem is correct), thus
+      providing for new users an easy-to-use graphical interface to
+      modern mathematics. This section describes basic usage of
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt;.
+    &lt;/para&gt;
+
+    &lt;!-- ========= Basic Usage =========================== --&gt;
+    &lt;sect2 id="mainwin"&gt;
+      &lt;title&gt;Basic usage&lt;/title&gt;
+      &lt;para&gt;
+        Starting &lt;application&gt;MY-GNOME-APP&lt;/application&gt; opens the
+        &lt;interface&gt;Main window&lt;/interface&gt;, shown in &lt;xref
+        linkend="mainwindow-fig"&gt;. The window is at first empty.
+
+        &lt;!-- ==== Figure ==== --&gt;
+        &lt;figure id="mainwindow-fig"&gt;
+	  &lt;title&gt;MY-GNOME-APP Main Window&lt;/title&gt;
+	  &lt;screenshot&gt;
+	    &lt;screeninfo&gt;MY-GNOME-APP Main Window&lt;/screeninfo&gt;
+	    &lt;graphic fileref="SCREENSHOT" format="png" srccredit="ME"&gt;
+            &lt;/graphic&gt;
+	  &lt;/screenshot&gt;
+	&lt;/figure&gt;
+    &lt;!-- ==== End of Figure ==== --&gt;
+      &lt;/para&gt; 
+
+
+ &lt;!-- For this app, one could put "proving" or "edit" (probably even
+      both of them) as sect2's seperate from the main window
+      section. Since they were both so closely involved with the main
+      window, I decided to have them as sect3's isntead. Judgement
+      call. --&gt;
+
+      &lt;sect3 id="proving"&gt;
+	&lt;title&gt;Proving a Theorem&lt;/title&gt;
+	&lt;para&gt;
+          To get a proof of a theorem, select
+          &lt;menuchoice&gt;
+	    &lt;guisubmenu&gt;File&lt;/guisubmenu&gt;
+	    &lt;guimenuitem&gt;New&lt;/guimenuitem&gt;
+	  &lt;/menuchoice&gt;,
+            which will
+	    bring up the &lt;interface&gt;New Proof&lt;/interface&gt; dialog box.
+	    Enter the statement of the theorem in the
+	    &lt;guilabel&gt;Theorem statement&lt;/guilabel&gt; field, select your
+	    desired proof type from the drop-down menu, and and press
+	    &lt;guibutton&gt;Prove!&lt;/guibutton&gt;.
+        &lt;/para&gt;
+	&lt;para&gt;
+          If &lt;application&gt;MY-GNOME-APP&lt;/application&gt; cannot prove the
+          theorem by the method you have chosen, or if you have not
+          selected a proof type at all,
+          &lt;application&gt;MY-GNOME-APP&lt;/application&gt; will attempt to
+          choose the one that it thinks is most conclusive.  In order,
+          it will attempt to prove the theorem with the following techniques: 
+     
+                &lt;variablelist&gt;
+	    &lt;varlistentry&gt;
+	      &lt;term&gt;Deduction&lt;/term&gt;
+	      &lt;listitem&gt;
+		&lt;para&gt;
+                  This is a proof method that is generally accepted
+                  for full credit by Logic professors.
+                &lt;/para&gt;
+	      &lt;/listitem&gt;
+	    &lt;/varlistentry&gt;
+	    &lt;varlistentry&gt;
+            &lt;term&gt;Induction&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                This logical style will also earn you full credit on
+                your homework.
+             &lt;/para&gt;
+	    &lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+	    &lt;varlistentry&gt;
+	      &lt;term&gt;Dialog&lt;/term&gt;
+	      &lt;listitem&gt;
+	      &lt;para&gt;
+                This logical method is best for Philosophy classes,
+                and will probably only merit partial credit on Logic
+                or Mathematics homework.
+              &lt;/para&gt;
+	    &lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+	      &lt;term&gt;Confusion&lt;/term&gt;
+	      &lt;listitem&gt;
+	      &lt;para&gt;
+                Suitable only for political debates, battles of wits
+                against the unarmed, and Philosophy classes focusing
+                on the works of Kant. Use with caution.
+              &lt;/para&gt;
+	      &lt;/listitem&gt;
+	    &lt;/varlistentry&gt;
+	  &lt;/variablelist&gt;
+          &lt;/para&gt;
+
+   &lt;!-- You might want to include a note, warning, or tip, e.g. --&gt;
+	
+	&lt;warning&gt;
+	  &lt;title&gt;Proving Incorrect Theorms&lt;/title&gt;
+	  &lt;para&gt;
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; cannot prove
+            incorrect theorems. If the theorem you have entered is not
+            demonstrably true, you will get a message to that effect
+            in the main window.  To disprove a theorem, ask
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; to prove its
+            logical inverse.
+          &lt;/para&gt;
+	&lt;/warning&gt;
+      &lt;/sect3&gt;
+      &lt;sect3 id="editing"&gt;
+	&lt;title&gt;Editing Proofs&lt;/title&gt;
+	&lt;para&gt;
+          Once you have proven the theorem, it will be displayed in
+          the &lt;interface&gt;main window&lt;/interface&gt;.  There, you can read
+          it over, choose text styles for different portions of it,
+          and make comments on it. This section will guide you through
+          that process.
+        &lt;/para&gt;
+	&lt;para&gt;
+          To alter text styles, first select the statement you wish to
+          change by clicking on it once.  You can select several
+          statements by Then, choose the style you want to apply from
+          the &lt;guisubmenu&gt;Style&lt;/guisubmenu&gt; submenu of the
+          &lt;guimenu&gt;Edit&lt;/guimenu&gt; menu.
+          &lt;application&gt;MY-GNOME-APP&lt;/application&gt; will convert the
+          text to that style.
+        &lt;/para&gt;
+        &lt;para&gt;
+          You can also enter comments on a statement by selecting that
+          statement, and then beginning to type.  Comments will appear
+          after the statement you have selected.
+        &lt;/para&gt;
+
+	&lt;note&gt;
+	  &lt;title&gt;Altering The Proofs Themselves&lt;/title&gt;
+          &lt;para&gt;
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; does not allow you
+            to alter a proof it has produced itself.  You can, save
+            your proof as a plain text file (using the
+            &lt;guimenuitem&gt;Save as...&lt;/guimenuitem&gt; menu), and alter it
+            that way.  Be aware, however, that
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; uses its own file
+            format for saved proofs, and cannot re-open a file unless
+            it is in the .mga format.
+          &lt;/para&gt;
+	&lt;/note&gt;
+      &lt;/sect3&gt;
+
+
+  &lt;!-- If there are other functions performed from the main window,
+       they belong here.   --&gt;
+
+    &lt;/sect2&gt;
+ 
+    &lt;!-- ========================================================= 
+      Additional Sect2's should describe additional windows, such as
+      larger dialog boxes, or functionality that differs significantly
+      from the most immediate functions of the application. Make the
+      structure logical.
+      =============================================================  --&gt;
+
+
+    &lt;sect2 id="toolbar"&gt;
+      &lt;title&gt;Toolbar&lt;/title&gt;
+      &lt;para&gt;
+        The toolbar (shown in &lt;xref linkend="figure-usage-toolbar"&gt;)
+        provides access to several commonly used routines.
+        &lt;figure id="figure-usage-toolbar"&gt;
+	  &lt;title&gt;MY-GNOME-APP Toolbar&lt;/title&gt;
+	  &lt;screenshot&gt;
+	    &lt;screeninfo&gt;MY-GNOME-APP Toolbar&lt;/screeninfo&gt;
+	    &lt;graphic fileref="usage-toolbar.png" format="png"&gt;&lt;/graphic&gt;
+	  &lt;/screenshot&gt;
+	&lt;/figure&gt;
+        &lt;variablelist&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;New&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                Brings up the &lt;interface&gt;New Theorem&lt;/interface&gt;
+                dialog.
+              &lt;/para&gt;
+	    &lt;/listitem&gt;
+	  &lt;/varlistentry&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;Open&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                 Open an exisiting theorem you want to prove, or a
+                 completed proof you wish to print or format.
+               &lt;/para&gt;
+	    &lt;/listitem&gt;
+	  &lt;/varlistentry&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;Save&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+	         Save the current theorem permanently in a
+	         file.
+               &lt;/para&gt;
+	    &lt;/listitem&gt; 
+	  &lt;/varlistentry&gt;
+	&lt;/variablelist&gt;
+       &lt;/para&gt;
+    &lt;/sect2&gt;
+    &lt;!-- ========= Menus =========================== --&gt; 
+
+    &lt;sect2 id="menubar"&gt;
+
+       &lt;!-- Describing the menubar ensures comprehensive feature
+       coverage. Nest itemizedlists inside variablelists so that each
+       menu is easily located by indexing software. Proper indentation
+       makes it easier! --&gt;
+
+      &lt;title&gt;Menus&lt;/title&gt;
+      &lt;para&gt;
+	The menu bar, located at the top of the &lt;interface&gt;Main
+	Window&lt;/interface&gt;, contains the following menus:
+       &lt;/para&gt;
+      &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;File&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	       This menu contains:
+	       &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycap&gt;F3&lt;/keycap&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Open&lt;/guimenuitem&gt;
+		     &lt;/menuchoice&gt;
+	             &amp;mdash; This opens a file which is saved on your computer.
+	           &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;S&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Save&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This saves your file.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;W&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Close&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This closes your file.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;Q&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Exit&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This quits the application.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	  &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Edit&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	   This menu contains:
+	   &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;X&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Cut&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This removes any text or data which is selected and
+	            places it in the buffer.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;C&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Copy&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This copies any text or data which is selected into
+	            the buffer.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	           &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;V&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Paste&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This pastes any text or data which is copied into
+	            the buffer.
+	        &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;guimenuitem&gt;COMMAND1&amp;hellip;&lt;/guimenuitem&gt;
+	             &amp;mdash; This opens the &lt;interface&gt;COMMAND1&lt;/interface&gt;
+	             dialog, which is used to ....
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;COMMAND2&lt;/guimenuitem&gt;
+	            &amp;mdash; This ....
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	    &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Settings&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	   This menu contains:
+	   &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	      &lt;guimenuitem&gt;Preferences&amp;hellip;&lt;/guimenuitem&gt;
+	       &amp;mdash; This opens the &lt;link
+	       linkend="prefs"&gt;&lt;interface&gt;Preferences
+	       Dialog&lt;/interface&gt;&lt;/link&gt;, which allows you to configure
+	       many settings.
+	     &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;COMMAND3&lt;/guimenuitem&gt; &amp;mdash;
+    	            This command does something.
+    	    	   &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	    &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Help&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	      This menu contains:
+	       &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;guimenuitem&gt;Manual&lt;/guimenuitem&gt; &amp;mdash; This
+    	              opens the &lt;application&gt;GNOME Help
+    	              Browser&lt;/application&gt; and displays this manual.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;About&lt;/guimenuitem&gt; &amp;mdash; This
+    	            opens the &lt;interface&gt;About&lt;/interface&gt; dialog
+    	            which shows basic information about
+    	            &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, such as
+    	            the author's name, the application version number,
+    	            and the URL for the application's Web page if one
+    	            exists.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+            &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/sect2&gt;
+  &lt;/sect1&gt;
+
+
+
+ &lt;!-- ============= Customization ============================= --&gt;
+
+ &lt;sect1 id="prefs"&gt;
+  &lt;title&gt;Customization&lt;/title&gt;
+  &lt;para&gt;
+   To change the application settings, select
+   &lt;menuchoice&gt;
+    &lt;guimenu&gt;Settings&lt;/guimenu&gt;
+    &lt;guimenuitem&gt;Preferences...&lt;/guimenuitem&gt;
+   &lt;/menuchoice&gt;.  This opens the
+   &lt;interface&gt;Preferences&lt;/interface&gt; dialog, shown in &lt;xref
+   linkend="preferences-fig"&gt;.
+  &lt;/para&gt;
+
+  &lt;figure id="preferences-fig"&gt;
+   &lt;title&gt;Preferences Dialog&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;Preferences Dialog&lt;/screeninfo&gt;
+    &lt;graphic fileref="SCREENSHOT" format="png"
+     srccredit="ME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+  &lt;/figure&gt;
+
+  &lt;para&gt;
+   The properties in the &lt;guilabel&gt;PREFSTABNAME&lt;/guilabel&gt; tab are:
+   
+   &lt;!--many people use itemizedlists in cases like this. Variablelists
+   are more appropriate --&gt;
+
+      &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt; &lt;guilabel&gt;Default Text Style&lt;/guilabel&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+              Select the default text style for statements in your
+              proof.  You can still change the style for individual
+              proofs or sections of a proof at a later date.
+            &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     The properties in the &lt;guilabel&gt;SECONDTABNAME&lt;/guilabel&gt; tab are:
+       &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/para&gt;
+
+  &lt;para&gt;
+    After you have made all the changes you want, click on
+    &lt;guibutton&gt;OK&lt;/guibutton&gt; to apply the changes and close the
+    &lt;interface&gt;Properties&lt;/interface&gt; dialog. To cancel the changes
+    and return to previous values, click the
+    &lt;guibutton&gt;Close&lt;/guibutton&gt; button.
+  &lt;/para&gt;
+
+ &lt;/sect1&gt;
+
+
+ &lt;!-- ============= Various Sections ============================= --&gt;
+
+ &lt;!-- Here you should add, if necessary, several more sect1's,
+ describing other windows (besides the main one), file formats,
+ preferences dialogs,  etc. as appropriate. Try not to make any of
+ these sections too long. --&gt;
+
+
+ &lt;!-- ============= Bugs ================================== --&gt;
+ &lt;!-- This section should describe known bugs and limitations of
+      the program if there are any - please be frank and list all
+      problems you know of. --&gt;
+ &lt;sect1 id="bugs"&gt;
+  &lt;title&gt;Known Bugs and Limitations&lt;/title&gt;
+  &lt;para&gt;
+   This application has no known bugs.
+  &lt;/para&gt;
+ &lt;/sect1&gt;
+
+
+&lt;!-- ============= Authors ================================ --&gt;
+
+ &lt;sect1 id="authors"&gt;
+  &lt;title&gt;Authors&lt;/title&gt;
+  &lt;para&gt;
+   &lt;application&gt;MY-GNOME-APP&lt;/application&gt; was written by GNOME-HACKER
+   (&lt;email&gt;hacker at gnome.org&lt;/email&gt;). To find more information about
+   &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, please visit the &lt;ulink
+   url="http://www.my-gnome-app.org" type="http"&gt;MY-GNOME-APP Web
+   page&lt;/ulink&gt;.  Please send all comments, suggestions, and bug
+   reports to the &lt;ulink url="http://bugs.gnome.org" type="http"&gt;GNOME
+   bug tracking database&lt;/ulink&gt;. (Instructions for submitting bug
+   reports can be found &lt;ulink
+   url="http://bugs.gnome.org/Reporting.html" type="http"&gt;
+   on-line&lt;/ulink&gt;.)  You can also use &lt;application&gt;Bug Report
+   Tool&lt;/application&gt; (&lt;command&gt;bug-buddy&lt;/command&gt;), available in the
+   &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of &lt;guimenu&gt;Main
+   Menu&lt;/guimenu&gt;, for submitting bug reports.
+  &lt;/para&gt;
+
+  &lt;para&gt;
+   This manual was written by ME
+   (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all comments and
+   suggestions regarding this manual to the &lt;ulink type="http"
+   url="http://developer.gnome.org/projects/gdp"&gt;GNOME Documentation 
+   Project&lt;/ulink&gt; by sending an email to 
+   &lt;email&gt;docs at gnome.org&lt;/email&gt;. You can also add your comments online 
+   by using the &lt;ulink type="http" 
+   url="http://www.gnome.org/gdp/doctable/"&gt;GNOME Documentation Status
+   Table&lt;/ulink&gt;.
+  &lt;/para&gt;
+
+  &lt;!-- For translations: uncomment this:
+
+  &lt;para&gt;
+   Latin translation was done by ME
+   (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all  comments  and
+   suggestions regarding this translation to SOMEWHERE.
+  &lt;/para&gt;
+
+  --&gt;
+
+ &lt;/sect1&gt;
+
+
+ &lt;!-- ============= Application License ============================= --&gt;
+
+ &lt;sect1 id="license"&gt;
+  &lt;title&gt;License&lt;/title&gt;
+  &lt;para&gt;
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the &lt;citetitle&gt;GNU General Public
+   License&lt;/citetitle&gt; as published by the Free Software Foundation;
+   either version 2 of the License, or (at your option) any later
+   version.
+  &lt;/para&gt;
+  &lt;para&gt;
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; for more details.
+  &lt;/para&gt;
+  &lt;para&gt;
+   A copy of the &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; is
+   included as an appendix to the &lt;citetitle&gt;GNOME Users
+   Guide&lt;/citetitle&gt;.  You may also obtain a copy of the
+   &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; from the Free
+   Software Foundation by visiting &lt;ulink type="http"
+   url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to
+   &lt;address&gt;
+    Free Software Foundation, Inc.
+    &lt;street&gt;59 Temple Place&lt;/street&gt; - Suite 330
+    &lt;city&gt;Boston&lt;/city&gt;, &lt;state&gt;MA&lt;/state&gt; &lt;postcode&gt;02111-1307&lt;/postcode&gt;
+    &lt;country&gt;USA&lt;/country&gt;
+   &lt;/address&gt;
+  &lt;/para&gt;
+ &lt;/sect1&gt;
+&lt;/article&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+      </p></div><div class="sect1"><a name="template2-1x"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="template2-1x"></a>Template 2: Applet Manual For GNOME 1.x</h2></div></div><p>
+        The following templates should be used for all applet
+        manuals in GNOME 1.x releases.  You can always get the latest
+        copy of these templates from  <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Documentation Templates</a>.  Note that the template
+        consists of two files; the first file calls the second as an
+        entity. You should name the first file
+        <tt><i><tt>appletname</tt></i>-applet.sgml</tt>
+        and the second file should be named
+        <tt><i><tt>appletname</tt></i>.sgml</tt>,
+        where
+        <tt><i><tt>appletname</tt></i></tt> is
+        the name of the applet.
+        <pre class="programlisting">
+
+
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+ &lt;!entity APPLETNAME.sgml SYSTEM "applet_template_1.sgml"&gt;
+        &lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+]&gt;
+
+&lt;!-- This is a GNOME documentation template, designed by the GNOME
+  Documentation Project Team. Please use it for writing GNOME
+  documentation, making obvious changes. In particular, all the words
+  written in UPPERCASE (with the exception of GNOME) should be
+  replaced. As for "legalnotice", please leave the reference
+  unchanged,make sure to add/remove trademarks to the list as
+  appropriate for your document.
+
+  Please don't forget to remove these comments in your final documentation,
+  thanks ;-).
+--&gt;
+
+&lt;article id="index"&gt; &lt;!-- please do not change the id --&gt;
+
+ &lt;!-- ============= Document Header ============================= --&gt;
+ &lt;artheader&gt; 
+  &lt;title&gt;APPLETNAME Applet&lt;/title&gt;
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;YOURFULLNAME&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+  &lt;!-- translators: uncomment this:
+
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;ME-THE-TRANSLATOR (Latin translation)&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+   --&gt;
+
+  &lt;!-- do not put authorname in the header except in copyright - use
+  section "authors" below --&gt;
+
+  &lt;legalnotice&gt;
+   &lt;para&gt;
+    Permission is granted to copy, distribute and/or modify this
+    document under the terms of the &lt;citetitle&gt;GNU Free Documentation
+    License&lt;/citetitle&gt;, Version 1.1 or any later version published
+    by the Free Software Foundation with no Invariant Sections, no
+    Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy
+    of the &lt;citetitle&gt;GNU Free Documentation License&lt;/citetitle&gt; from
+    the Free Software Foundation by visiting &lt;ulink type="http"
+    url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to:
+    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Many of the names used by companies to distinguish their products and
+    services are claimed as trademarks. Where those names appear in any
+    GNOME documentation, and those trademarks are made aware to the members
+    of the GNOME Documentation Project, the names have been printed in caps
+    or initial caps.
+   &lt;/para&gt;
+  &lt;/legalnotice&gt;
+
+  &lt;releaseinfo&gt;
+   This is version XXX of the APPLETNAME applet manual.
+  &lt;/releaseinfo&gt;
+ &lt;/artheader&gt;
+
+ &lt;!-- ============= Document Body ============================= --&gt;
+
+ &amp;APPLETNAME.sgml;
+
+&lt;/article&gt;
+
+
+
+
+
+</pre>
+        <pre class="programlisting">
+
+        &lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+
+ &lt;sect1 id="APPLET"&gt;
+  &lt;title&gt;APPLET Applet&lt;/title&gt;
+
+  &lt;para&gt;
+   &lt;application&gt;APPLET&lt;/application&gt; applet, shown in &lt;xref
+   linkend="APPLETapplet-fig"&gt;, allows you to &amp;hellip;.  To add this
+   applet to a &lt;interface&gt;Panel&lt;/interface&gt;, 
+   right-click on the &lt;interface&gt;Panel&lt;/interface&gt; and choose
+   &lt;menuchoice&gt;
+    &lt;guimenu&gt;Panel&lt;/guimenu&gt;
+    &lt;guisubmenu&gt;Add to panel&lt;/guisubmenu&gt;
+    &lt;guisubmenu&gt;Applet&lt;/guisubmenu&gt;
+    &lt;guisubmenu&gt;SECTION&lt;/guisubmenu&gt;
+    &lt;guimenuitem&gt;APPLET&lt;/guimenuitem&gt;
+   &lt;/menuchoice&gt;.
+  &lt;/para&gt;
+
+  &lt;figure id="APPLETapplet-fig"&gt;
+   &lt;title&gt;APPLET Applet&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;APPLET Applet&lt;/screeninfo&gt;
+    &lt;graphic format="png" fileref="APPLET_applet" 
+    srccredit="YOURNAME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+  &lt;/figure&gt;
+
+  &lt;!-- ============= Usage  ================================ --&gt;
+  &lt;sect2 id="APPLET-usage"&gt;
+   &lt;title&gt;Usage&lt;/title&gt;
+   &lt;para&gt;
+    (Place a short description of how to use the applet here.)
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    Right-clicking on the applet brings up a menu containing the
+    following items:
+    &lt;itemizedlist&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;Properties&amp;hellip;&lt;/guimenuitem&gt; &amp;mdash;
+       opens the &lt;link linkend="APPLET-prefs"&gt;
+       &lt;guilabel&gt;Properties&lt;/guilabel&gt;&lt;/link&gt; dialog.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;Help&lt;/guimenuitem&gt; &amp;mdash;
+       displays this document.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;About&amp;hellip;&lt;/guimenuitem&gt; &amp;mdash;
+       shows basic information about &lt;application&gt;APPLET
+       Applet&lt;/application&gt;, including the applet's version and the
+       author's name.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+    &lt;/itemizedlist&gt;
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Customization ============================= --&gt;
+  &lt;sect2 id="APPLET-prefs"&gt;
+    &lt;title&gt;Customization&lt;/title&gt;
+    &lt;para&gt;
+      You can customize &lt;application&gt;APPLET&lt;/application&gt;
+      applet by right-clicking on it and choosing
+      &lt;guimenuitem&gt;Properties&amp;hellip;&lt;/guimenuitem&gt;. This will open the
+      &lt;interface&gt;Properties&lt;/interface&gt; dialog(shown in &lt;xref
+      linkend="APPLET-settings-fig"&gt;), which allows you to
+      change various settings.
+    &lt;/para&gt;
+
+    &lt;figure id="APPLET-settings-fig"&gt;
+     &lt;title&gt;Properties dialog&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Properties dialog&lt;/screeninfo&gt;
+      &lt;graphic format="png" fileref="APPLET_settings"
+      srccredit="YOURNAME"&gt;
+      &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+
+    &lt;para&gt;
+     The properties are:
+     &lt;itemizedlist&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; If this button is
+        checked&amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; Selecting this
+        button&amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; Enter the name of
+        &amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt; 
+      After you have made all the changes you want, click on
+      &lt;guibutton&gt;OK&lt;/guibutton&gt; to apply the changes and close the
+      &lt;interface&gt;Properties&lt;/interface&gt; dialog. To cancel the changes
+      and return to previous values, click the
+      &lt;guibutton&gt;Close&lt;/guibutton&gt; button.
+    &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Bugs ================================== --&gt;
+  &lt;!-- This section should describe known bugs and limitations of
+       the program if there are any - please be frank and list all
+       problems you know of --&gt;
+  &lt;sect2 id="bugs"&gt;
+   &lt;title&gt;Known Bugs and Limitations&lt;/title&gt;
+   &lt;para&gt;
+    This applet has no known bugs.
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Authors ================================ --&gt;
+
+  &lt;sect2 id="authors"&gt;
+   &lt;title&gt;Authors&lt;/title&gt;
+   &lt;para&gt;
+    &lt;application&gt;APPLET&lt;/application&gt; was written by GNOME-HACKER
+    (&lt;email&gt;hacker at gnome.org&lt;/email&gt;).  Please send all comments,
+    suggestions, and bug 
+    reports to the &lt;ulink url="http://bugs.gnome.org" type="http"&gt;GNOME
+    bug tracking database&lt;/ulink&gt;. (Instructions for submitting bug
+    reports can be found &lt;ulink
+    url="http://bugs.gnome.org/Reporting.html" type="http"&gt;
+    on-line&lt;/ulink&gt;.  You can also use &lt;application&gt;Bug Report
+    Tool&lt;/application&gt; (&lt;command&gt;bug-buddy&lt;/command&gt;), available in the
+    &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of &lt;guimenu&gt;Main
+    Menu&lt;/guimenu&gt;, for submitting bug reports.
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    This manual was written by ME
+    (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all comments and
+    suggestions regarding this manual to the &lt;ulink type="http"
+    url="http://developer.gnome.org/projects/gdp"&gt;GNOME Documentation
+    Project&lt;/ulink&gt;  by sending an email to
+    &lt;email&gt;docs at gnome.org&lt;/email&gt;. You can also submit comments online
+    by using the &lt;ulink type="http"
+    url="http://www.gnome.org/gdp/doctable/"&gt;GNOME Documentation
+    Status Table&lt;/ulink&gt;.
+   &lt;/para&gt;
+
+   &lt;!-- For translations: uncomment this:
+
+   &lt;para&gt;
+    Latin translation was done by ME
+    (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all  comments  and
+    suggestions regarding this translation to SOMEWHERE.
+   &lt;/para&gt;
+
+   --&gt;
+
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Application License ============================= --&gt;
+
+  &lt;sect2 id="license"&gt;
+   &lt;title&gt;License&lt;/title&gt;
+   &lt;para&gt;
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the &lt;citetitle&gt;GNU General Public
+    License&lt;/citetitle&gt; as published by the Free Software Foundation;
+    either version 2 of the License, or (at your option) any later
+    version.
+   &lt;/para&gt;
+   &lt;para&gt;
+    This program is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; for more details.
+   &lt;/para&gt;
+   &lt;para&gt;
+    A copy of the &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; is
+    included as an appendix to the &lt;citetitle&gt;GNOME Users
+    Guide&lt;/citetitle&gt;.  You may also obtain a copy of the
+    &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; from the Free
+    Software Foundation by visiting &lt;ulink type="http"
+    url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to
+    &lt;address&gt;
+     Free Software Foundation, Inc.
+     &lt;street&gt;59 Temple Place&lt;/street&gt; - Suite 330
+     &lt;city&gt;Boston&lt;/city&gt;, &lt;state&gt;MA&lt;/state&gt; &lt;postcode&gt;02111-1307&lt;/postcode&gt;
+     &lt;country&gt;USA&lt;/country&gt;
+    &lt;/address&gt;
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+ &lt;/sect1&gt;
+
+
+
+
+
+
+
+
+</pre>
+      </p></div><div class="sect1"><a name="template2-2x"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="template2-2x"></a>Template 2: Applet Manual For GNOME 2.x</h2></div></div><p>
+        The following templates should be used for all applet
+        manuals in GNOME 2.x releases.  You can always get the latest
+        copy of these templates from  <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Documentation Templates</a>.
+      </p><p>
+        Note that this template consists of two files.  The first file
+        is an introductory chapter. You should not modify this
+        chapter. The second file is the actual applet document, which
+        you should modify to describe the applet you are documenting.
+        You can name the first file whatever you like, such as
+        <tt>gnome-applets.sgml</tt>.  Name the second file
+        according to the applet's name:
+        <tt><i><tt>appletname</tt></i>-applet.sgml</tt>.
+        Make sure you update the entity
+        at the top of the shell document to reflect the new name of
+        the applet document.
+      </p><p>
+        <pre class="programlisting">
+
+&lt;!DOCTYPE book PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+&lt;!ENTITY TEMPLATE-APPLET SYSTEM "gnome-applet-template.sgml.part"&gt;
+
+]&gt;
+
+&lt;book id="gnome-applets"&gt;
+
+ &lt;bookinfo&gt;
+  &lt;title&gt;GNOME Applets&lt;/title&gt;
+  &lt;authorgroup&gt;
+   &lt;author&gt;&lt;firstname&gt;Telsa&lt;/firstname&gt;&lt;surname&gt;Gwynne&lt;/surname&gt;&lt;/author&gt;
+   &lt;author&gt;&lt;firstname&gt;John&lt;/firstname&gt;&lt;surname&gt;Fleck&lt;/surname&gt;&lt;/author&gt;
+   &lt;author&gt;&lt;firstname&gt;David&lt;/firstname&gt;&lt;surname&gt;Mason&lt;/surname&gt;
+      &lt;affiliation&gt;&lt;orgname&gt;Red Hat, Inc.&lt;/orgname&gt;&lt;/affiliation&gt;
+    &lt;/author&gt;
+    &lt;author&gt;&lt;firstname&gt;Dan&lt;/firstname&gt;&lt;surname&gt;Mueth&lt;/surname&gt;&lt;/author&gt;
+    &lt;author&gt;&lt;firstname&gt;Alexander&lt;/firstname&gt;&lt;surname&gt;Kirillov&lt;/surname&gt;&lt;/author&gt;
+  &lt;/authorgroup&gt;
+  &lt;edition&gt;GNOME Applets version 0.1 for GNOME 1.1.5&lt;/edition&gt;
+  &lt;pubdate&gt;2000&lt;/pubdate&gt;
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;Telsa Gwynne, John Fleck, Red Hat Inc., Dan Mueth, and
+    Alexander Kirillov&lt;/holder&gt; 
+  &lt;/copyright&gt;
+  &lt;legalnotice&gt;
+   &lt;para&gt;
+    Permission is granted to make and distribute verbatim copies of this
+    manual provided the copyright notice and this permission notice are
+    preserved on all copies.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Permission is granted to copy and distribute modified versions of
+    this manual under the conditions for verbatim copying, provided that
+    the entire resulting derived work is distributed under the terms of a
+    permission notice identical to this one.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Permission is granted to copy and distribute translations of this
+    manual into another language, under the above conditions for modified
+    versions, except that this permission notice may be stated in a
+    translation approved by the Free Software Foundation.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Many of the names used by companies to distinguish their products and
+    services are claimed as trademarks. Where those names appear in any
+    GNOME documentation, and those trademarks are made aware to the members
+    of the GNOME Documentation Project, the names have been printed in caps
+    or initial caps.
+   &lt;/para&gt;
+  &lt;/legalnotice&gt;
+ &lt;/bookinfo&gt;
+
+ &lt;!-- #### Introduction ###### --&gt;
+ &lt;chapter id="applets-intro"&gt;
+  &lt;title&gt;Introduction&lt;/title&gt; 
+
+  &lt;!-- #### Intro | What Are Applets? ###### --&gt;
+  &lt;sect1 id="applets-what-are"&gt;
+   &lt;title&gt;What Are Applets?&lt;/title&gt; 
+   &lt;para&gt;
+    Applets are one of the most popular and useful objects you can add
+    to your &lt;interface&gt;Panel&lt;/interface&gt; to customize your desktop.
+    An applet is a small application which runs inside a small area of
+    your &lt;interface&gt;Panel&lt;/interface&gt;. Applets have been written for
+    a wide range of purposes.  Some are very powerful interactive
+    tools, such as the &lt;application&gt;Tasklist&lt;/application&gt; Applet
+    which allows you to easily 
+    control all of your main applications.  Others are simple system
+    monitors, displaying information such as the amount of power left
+    in the battery on your laptop (see &lt;application&gt;Battery Charge
+    Monitor&lt;/application&gt;) or weather
+    information(see &lt;application&gt;GNOME Weather&lt;/application&gt;).  Some
+    are simply for amusement(see &lt;application&gt;Fish&lt;/application&gt;).
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    Applets are similar to swallowed applications in that both of them
+    reside within the &lt;interface&gt;Panel&lt;/interface&gt;. However, 
+    swallowed applications are generally applications which were
+    not designed to run within the &lt;interface&gt;Panel&lt;/interface&gt;.
+    Typically one will swallow an application which already exists in
+    the main &lt;interface&gt;desktop&lt;/interface&gt; area, putting it into your
+    &lt;interface&gt;Panel&lt;/interface&gt;.  The application will continue to
+    run in the &lt;interface&gt;Panel&lt;/interface&gt; until you end the
+    application or  unswallow it,  placing it back onto the main part of
+    your desktop when you need to.
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    &lt;figure id="example-applets-fig"&gt;
+     &lt;title&gt;Example Applets&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Example Applets&lt;/screeninfo&gt;
+       &lt;graphic fileref="example_applets" format="png"
+       srccredit="muet"&gt;
+       &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+    Several example applets are shown in &lt;xref
+    linkend="example-applets-fig"&gt;.  From left to right, they are: (1)
+    &lt;application&gt;Mixer Applet&lt;/application&gt;, which allows you to turn
+    on/off sound and control its volume by clicking on the applet.  (2)
+    &lt;application&gt;Sound Monitor&lt;/application&gt; Applet, which displays
+    the current volume of sound being played and allows you to control
+    various sound features.  (3) &lt;application&gt;GTCD&lt;/application&gt;
+    Applet, a CD player which has all its controls
+    available in the applet and displays the track and time. (4)
+    &lt;application&gt;Drive Mount&lt;/application&gt; Applet, used to mount and
+    unmount drives with a single click of the mouse. (5)
+    &lt;application&gt;Desk Guide&lt;/application&gt; which allows you to view
+    and control multiple virtual screens. (6)
+    &lt;application&gt;Tasklist&lt;/application&gt; Applet which allows you to
+    control your various windows and applications.
+   &lt;/para&gt;
+   &lt;para&gt;
+    There are many other applets to choose from.  The rest of this
+    chapter will explain the basic information to get you started
+    adding, moving, and removing applets from your
+    &lt;interface&gt;Panels&lt;/interface&gt; and using them. The following
+    chapters go through each of the standard GNOME applets describing
+    them in detail.  There are also additional applets which can be
+    downloaded off the Web.   See &lt;ulink type="http"
+     url="http://www.gnome.org/applist/list-martin.phtml"&gt;The GNOME
+    Software Map&lt;/ulink&gt; for lists of additional GNOME applications
+    and applets. 
+   &lt;/para&gt;
+   &lt;para&gt;
+    As you read through the the rest of this chapter, you should try
+    adding and removing applets from your &lt;interface&gt;Panel&lt;/interface&gt; and
+    experiment with them freely.  
+   &lt;/para&gt;
+  &lt;/sect1&gt;
+
+  &lt;!-- #### Intro | Adding, Moving, and Removing Applets ###### --&gt;
+  &lt;sect1 id="applet-add-move-replace"&gt;
+   &lt;title&gt;Adding, Moving, and Removing Applets&lt;/title&gt;
+
+   &lt;sect2 id="adding-applets"&gt;   
+    &lt;title&gt;Adding Applets to a Panel&lt;/title&gt;
+    &lt;para&gt;
+     To add an applet to a &lt;interface&gt;Panel&lt;/interface&gt;, right-click
+     on the &lt;interface&gt;Panel&lt;/interface&gt; and select 
+     &lt;menuchoice&gt;&lt;guimenu&gt;Panel&lt;/guimenu&gt;&lt;guisubmenu&gt;Add to panel&lt;/guisubmenu&gt;
+     &lt;guisubmenu&gt;Applet&lt;/guisubmenu&gt;&lt;/menuchoice&gt;. This will show you
+     the menu of all the applets on your system, divided into
+     categories. Choosing any applet from this menu will add it to the
+     &lt;interface&gt;Panel&lt;/interface&gt;.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="moving-applets"&gt;
+    &lt;title&gt;Moving Applets In or Between Panels&lt;/title&gt;
+    &lt;para&gt;
+     It is easy to move applets in a &lt;interface&gt;Panel&lt;/interface&gt; or
+     between two &lt;interface&gt;Panels&lt;/interface&gt;. If you have a
+     three-button mouse, just move the mouse over the applet, depress
+     the middle mouse button and drag the applet to its new location,
+     releasing the middle mouse button when you are finished.  Note
+     that you can drag applets within a &lt;interface&gt;Panel&lt;/interface&gt;
+     or between two &lt;interface&gt;Panels&lt;/interface&gt; this way. If you
+     don't have a three-button mouse, just 
+     right-click on the applet and choose
+     &lt;guimenuitem&gt;Move&lt;/guimenuitem&gt;. The cursor will turn into a
+     cross and the applet will move with your mouse until you press
+     any mouse button to indicate you are finished moving it.
+     If, in the course of this movement, it hits
+     other objects, the behavior depends on the global preferences
+     you have set for your &lt;interface&gt;Panels&lt;/interface&gt; in the
+     &lt;application&gt;GNOME Control Center&lt;/application&gt;: the applet you are
+     moving can switch places with other objects, "push" all objects
+     it meets, or "jump" over all other objects without disturbing
+     them. You can also override the default behavior by holding
+     &lt;keycap&gt;Shift&lt;/keycap&gt; button (for "push" mode),
+     &lt;keycap&gt;Ctrl&lt;/keycap&gt; (for "switched" mode), or
+     &lt;keycap&gt;Alt&lt;/keycap&gt; (for "free" mode, i.e. jumping other other
+     objects without disturbing them) button while dragging.
+    &lt;/para&gt;
+    &lt;para&gt;
+     To change the global Panel preferences, right-click on any applet
+     or &lt;interface&gt;Panel&lt;/interface&gt; and select 
+     &lt;menuchoice&gt;
+      &lt;guimenu&gt;Panel&lt;/guimenu&gt;
+      &lt;guimenuitem&gt;Global Preferences...&lt;/guimenuitem&gt;
+     &lt;/menuchoice&gt;.
+     The &lt;guilabel&gt;Default movement mode&lt;/guilabel&gt; is set under the
+     &lt;guilabel&gt;Applets&lt;/guilabel&gt; tab.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="removing-applets"&gt;
+    &lt;title&gt;Removing Applets from a Panel&lt;/title&gt; 
+    &lt;para&gt;  
+     To remove an applet from a &lt;interface&gt;Panel&lt;/interface&gt;,
+     right-click on the applet and select &lt;guimenuitem&gt;Remove from
+     panel...&lt;/guimenuitem&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+
+
+  &lt;!-- #### Intro | The Right-Click Pop-Up Menu ###### --&gt;
+  &lt;sect1 id="right-click-pop-up-menu"&gt;
+   &lt;title&gt;The Right-Click Pop-Up Menu&lt;/title&gt;
+   &lt;para&gt;
+    Clicking the right mouse button on any applet brings up
+    a &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt;. This 
+    menu always has certain standard menu items in it and
+    often has additional items which vary depending on the particular
+    applet. 
+   &lt;/para&gt;
+   &lt;sect2 id="standard-right-click-items"&gt; 
+    &lt;title&gt;Standard Pop-Up Items&lt;/title&gt;
+    &lt;para&gt;
+     All applets should have the following items in their right-click
+     &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt;:
+     &lt;variablelist&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;Remove from panel&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Remove from panel&lt;/guimenuitem&gt; menu item
+         removes the applet from the &lt;interface&gt;Panel&lt;/interface&gt;. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Move&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         After selecting &lt;guimenuitem&gt;Move&lt;/guimenuitem&gt;, your mouse
+         pointer will change appearance (typically to a cross with
+         arrows in each direction). As you move your mouse, the applet
+         will move with it.  When you have finished moving the applet,
+         click any mouse button and the applet will anchor in its
+         current position.  Note that applets can be moved between two
+         &lt;interface&gt;Panels&lt;/interface&gt; this way.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Panel&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guisubmenu&gt;Panel&lt;/guisubmenu&gt; submenu contains various
+         items and submenus for adding and removing
+         &lt;interface&gt;Panels&lt;/interface&gt; and applets and for changing
+         the configuration.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;About&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;About...&lt;/guimenuitem&gt; menu item brings up a 
+         dialogue box containing various information about the applet,
+         typically including the applet's  name, version, author,
+         copyright, license and desciption. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Help&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Help&lt;/guimenuitem&gt; menu item brings up the help
+         manual for the applet. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+     &lt;/variablelist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="applet-properties-dialog"&gt; 
+    &lt;title&gt;The Applet Properties Dialog&lt;/title&gt;
+    &lt;para&gt;
+     Many applets have customizable properties.  These applets will
+     have a &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; menu item in their
+     right-click &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt; which brings up the
+     &lt;interface&gt;Properties&lt;/interface&gt; dialog where you can alter the 
+     appearance or behaviour of the applet.
+     &lt;figure id="example-props-dialog-fig"&gt;
+      &lt;title&gt;An Example Applet Properties Dialog&lt;/title&gt;
+      &lt;screenshot&gt;
+       &lt;screeninfo&gt;An Example Applets Properties Dialog&lt;/screeninfo&gt;
+       &lt;graphic fileref="applet_props_dialog" format="png"
+        srccredit="muet"&gt;
+       &lt;/graphic&gt;
+      &lt;/screenshot&gt;
+     &lt;/figure&gt;
+     All &lt;interface&gt;Properties&lt;/interface&gt; dialogs have the following
+     buttons at the bottom of the dialog:
+     &lt;itemizedlist&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;OK&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;OK&lt;/guibutton&gt; will activate any changes
+        in the properties you have made and close the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Apply&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Apply&lt;/guibutton&gt; at any time will
+        make your changes active without closing the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.  This is helpful if
+        you would like to test the effects of the changes you have
+        made but may want to continue changing the properties.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Close&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Close&lt;/guibutton&gt; will close the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.  Only changes in the
+        configuration which were previously applied with the
+        &lt;guibutton&gt;Apply&lt;/guibutton&gt; button will persist.  Other
+        changes will not be made active.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Help&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Help&lt;/guibutton&gt; brings up the manual for
+        the application, opening it to the page describing the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+ 
+   &lt;sect2 id="common-right-click-items"&gt; 
+    &lt;title&gt;Other Common Pop-Up Items&lt;/title&gt;
+    &lt;para&gt;
+     Many applets also have one or more of the following items in their
+     right-click pop-up menu:
+     &lt;variablelist&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;Run...&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Run...&lt;/guimenuitem&gt; menu item generally
+         invokes a program  which is related to the applet in some way
+         but which runs in its own window rather than in the
+         panel. For example: 
+        &lt;/para&gt;
+        &lt;orderedlist&gt;
+         &lt;listitem&gt;
+          &lt;para&gt;
+           The &lt;application&gt;CPU Load&lt;/application&gt; applet, which monitors
+           what programs are running, has a &lt;guimenuitem&gt;Run
+           gtop...&lt;/guimenuitem&gt;  menu item. Selecting this menu item
+           starts &lt;application&gt;GTop&lt;/application&gt;, which allows you to
+           view and control programs which are running.
+          &lt;/para&gt;
+         &lt;/listitem&gt;
+         &lt;listitem&gt;
+          &lt;para&gt;
+           The &lt;application&gt;CD Player&lt;/application&gt; applet has a
+           &lt;guimenuitem&gt;Run gtcd...&lt;/guimenuitem&gt; menu item which
+           starts the GNOME &lt;application&gt;CD Player&lt;/application&gt; when
+           selected, which has more capabilities than the applet.
+          &lt;/para&gt;
+         &lt;/listitem&gt;
+        &lt;/orderedlist&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+     &lt;/variablelist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+  
+  &lt;sect1 id="feedback"&gt;
+   &lt;title&gt;Feedback&lt;/title&gt;
+   &lt;sect2 id="reporting-bugs"&gt; 
+    &lt;title&gt;Reporting Applet Bugs&lt;/title&gt;
+    &lt;para&gt;
+     GNOME users are encouraged to report bugs to &lt;ulink type="http"
+     url="http://bugs.gnome.org"&gt;The GNOME Bug Tracking
+     System&lt;/ulink&gt;.  The easiest way to submit bugs is to use the
+     &lt;application&gt;Bug Report Tool&lt;/application&gt; program by selecting
+     &lt;menuchoice&gt;
+      &lt;guimenu&gt;Main Menu&lt;/guimenu&gt; &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt;
+      &lt;guimenuitem&gt;Bug Report Tool&lt;/guimenuitem&gt; 
+     &lt;/menuchoice&gt;.
+     Be sure to be complete in describing what you did to cause the
+     bug to surface and, if possible, describe how the developer can
+     reproduce the the scenario.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+   &lt;sect2 id="documentation-feedback"&gt; 
+    &lt;title&gt;Providing Feedback&lt;/title&gt;
+    &lt;para&gt;
+     GNOME users are welcome to provide suggestions for how
+     applications and documentation can be improved.  Suggestions for
+     application changes should be submitted using the
+     &lt;application&gt;Bug Report Tool&lt;/application&gt; discussed above.
+     Suggestions for documentation changes can be emailed directly to
+     the documentation author (whose email should be included in the
+     "Authors" section of the document) or by sending an email to
+     &lt;email&gt;docs at gnome.org&lt;/email&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+   &lt;sect2 id="joining-gnome"&gt;  
+    &lt;title&gt;Joining GNOME&lt;/title&gt;
+    &lt;para&gt;
+     GNOME is a community project, created by hundreds of programmers,
+     documentation writers, icon design artists, web masters, and
+     other people, most of whom work on a volunteer basis.  New GNOME
+     contributors are always welcome. To join the GNOME team, visit
+     these web sites: developers &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org"&gt;The GNOME Development
+     Site&lt;/ulink&gt;, documentation writers &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org/projects/gdp"&gt;The GNOME Documentation
+     Project&lt;/ulink&gt;, icon design artists &amp;mdash; &lt;ulink type="http"
+     url="http://gnome-icons.sourceforge.net/"&gt;Gnome Icon Web&lt;/ulink&gt;,
+     general &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org/helping/"&gt;Helping GNOME&lt;/ulink&gt;,
+     or just join the gnome-list email list (see &lt;ulink type="http"
+     url="http://www.gnome.org/resources/mailing-lists.html"&gt;GNOME Mailing
+     Lists&lt;/ulink&gt;) to discuss what you are interested in doing.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+ &lt;/chapter&gt;
+
+ &lt;!-- ############### Template Applets ##################### --&gt;
+ &lt;chapter id="template-applets"&gt;
+  &lt;title&gt;Template Applets&lt;/title&gt;
+
+  &amp;TEMPLATE-APPLET
+
+ &lt;/chapter&gt;
+
+&lt;/book&gt;
+
+
+
+
+
+
+
+
+	</pre>
+	
+        <pre class="programlisting">
+
+
+  &lt;!-- Please replace everywhere below GNOMEAPPLET with the name of --&gt;
+  &lt;!-- your applet. Most importantly, all id attributes should start --&gt;
+  &lt;!-- with the name of your applet - this is necessary to avoid name --&gt;
+  &lt;!-- conflict among different applets --&gt; 
+  &lt;!-- Please replace YOUR-NAME with your name and YOUR-EMAIL with your email--&gt;
+  &lt;!-- Please replace HACKER-NAME with the applet author's name and --&gt;
+  &lt;!-- HACKER-EMAIL with the applet author's email --&gt;
+
+  &lt;!-- You should name your file: GNOMEAPPLET-applet.sgml --&gt;
+  &lt;!-- Screenshots should be in PNG format and placed in the --&gt;
+  &lt;!-- same directory as GNOMEAPPLET-applet.sgml --&gt;
+
+  &lt;!-- Applet docs will be merged into &lt;chapter&gt;'s inside a --&gt;
+  &lt;!-- &lt;book&gt;. Thus, the indentation below (2 spaces before the &lt;sect1&gt;) is --&gt;
+  &lt;!-- correct.--&gt;
+
+  &lt;!-- Permission is granted to make and distribute verbatim copies of --&gt;
+  &lt;!-- this manual provided the copyright notice and this permission --&gt;
+  &lt;!-- notice are  preserved on all copies. --&gt;
+  &lt;!-- --&gt;
+  &lt;!-- Permission is granted to copy and distribute modified versions of --&gt;
+  &lt;!-- this manual under the conditions for verbatim copying, provided --&gt;
+  &lt;!-- that the entire resulting derived work is distributed under the --&gt;
+  &lt;!-- terms of a permission notice identical to this one. --&gt;
+  &lt;!-- --&gt;
+  &lt;!-- Permission is granted to copy and distribute translations of this --&gt;
+  &lt;!-- manual into another language, under the above conditions for --&gt;
+  &lt;!-- modified versions, except that this permission notice may be --&gt;
+  &lt;!-- stated in a translation approved by the Foundation. --&gt;
+
+  &lt;!-- ###############   GNOMEAPPLET   ############### --&gt;
+  &lt;sect1 id="GNOMEAPPLET"&gt;
+   &lt;title&gt;GNOMEAPPLET Applet&lt;/title&gt; 
+
+   &lt;para&gt; 
+    &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet, shown in &lt;xref
+    linkend="GNOMEAPPLET-fig"&gt;, does this and that. To learn how to
+    add this applet to a &lt;interface&gt;Panel&lt;/interface&gt;, see &lt;xref
+    linkend="adding-applets"&gt;. 
+   &lt;/para&gt;
+  
+ 
+   &lt;figure id="GNOMEAPPLET-fig"&gt;
+   &lt;title&gt;GNOMEAPPLET&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;GNOMEAPPLET&lt;/screeninfo&gt;
+    &lt;graphic format="png" fileref="GNOMEAPPLET-fig" srccredit="ME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+   &lt;/figure&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-usage"&gt;
+    &lt;title&gt;Usage&lt;/title&gt;
+    &lt;para&gt;
+     This applet does nothing. To use it, just
+     left-click on it and it will instantly do nothing.   
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-right-click"&gt;
+    &lt;title&gt;Right-Click Pop-Up Menu Items&lt;/title&gt;
+    &lt;para&gt; 
+     In addition to the standard menu items (see &lt;xref
+     linkend="standard-right-click-items"&gt;), the right-click pop-up menu has 
+     the following items: 
+     &lt;itemizedlist&gt; 	
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; &amp;mdash; This menu
+        item opens the &lt;interface&gt;Properties&lt;/interface&gt; dialog (see
+        &lt;xref linkend="GNOMEAPPLET-properties"&gt;) which allows you to
+        customize the appearance and behavior of this applet.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guimenuitem&gt;Run Hello World...&lt;/guimenuitem&gt; &amp;mdash; This
+        menu item starts the program &lt;application&gt;Hello
+        World&lt;/application&gt;, used to say "hello" to the world. 
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-properties"&gt;
+    &lt;title&gt;Properties&lt;/title&gt;
+    &lt;para&gt;
+     You can configure &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet by
+     right-clicking on the applet and choosing the
+     &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; menu item. This will open the
+     &lt;interface&gt;Properties&lt;/interface&gt; dialog, shown in &lt;xref
+     linkend="GNOMEAPPLET-properties-fig"&gt;.
+    &lt;/para&gt;
+    &lt;figure id="GNOMEAPPLET-properties-fig"&gt;
+     &lt;title&gt;Properties Dialog&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Properties Dialog&lt;/screeninfo&gt; 
+      &lt;graphic format="png" fileref="GNOMEAPPLET-properties" srccredit="ME"&gt;
+      &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+    
+    &lt;para&gt; 
+     To change the color of the applet, click on the
+     &lt;guibutton&gt;color&lt;/guibutton&gt; button. To change other properties,
+     click on other buttons. 
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For more information on the &lt;interface&gt;Properties&lt;/interface&gt;
+     dialog, including descriptions of the &lt;guibutton&gt;OK&lt;/guibutton&gt;,
+     &lt;guibutton&gt;Apply&lt;/guibutton&gt;, &lt;guibutton&gt;Cancel&lt;/guibutton&gt;, and
+     &lt;guibutton&gt;Help&lt;/guibutton&gt; buttons, see &lt;xref
+     linkend="applet-properties-dialog"&gt;.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  
+   &lt;sect2 id="GNOMEAPPLET-bugs"&gt;
+    &lt;title&gt; Known Bugs and Limitations&lt;/title&gt;
+    &lt;para&gt;
+     There are no known bugs in the
+     &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-authors"&gt;
+    &lt;title&gt;Authors&lt;/title&gt;
+    &lt;para&gt;
+     This applet was writen by HACKER-NAME
+     &lt;email&gt;HACKER-EMAIL&lt;/email&gt;.  The documentation for this applet
+     which you are reading now was written by
+     YOUR-NAME &lt;email&gt;YOUR-EMAIL&lt;/email&gt;. For information on submitting
+     bug reports and suggestions for improvements, see &lt;xref
+     linkend="feedback"&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+  &lt;/sect1&gt;
+
+
+
+
+
+
+
+
+</pre>
+      </p></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/graphics.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/graphics.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/graphics.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Graphics Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2862508"></a>Graphics Test Document Title</h2></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2862515">Graphic</a></dt><dt> <a href="#id2862635">Inlinegraphic</a></dt><dt> <a href="#id2888791">MediaObject</a></dt></dl></div><div class="section"><a name="id2862515"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2862515"></a>Graphic</h2></div></div><p>fileref:</p><p><img src="emc2.png"></p><p>entityref:</p><p><img src="test/emc2.png"></p><p>fileref, scale=200:</p><p><img src="emc2.png" width="200%"></p><p>fileref, width=20, depth=20</p><p><img src="emc2.png" height="20" width="20"></p></div><div class="section"><a name="id2862635"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2862635"></a>Inlinegraphic</h2></div></div><p>fileref: <img src="emc2.png"></p><p>entityref: <img src="test/emc2.png"></p><p>fileref, scale=200: <img src="emc2.png" width="200%"></p></div><div class="section"><a name="id2888791"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2888791"></a>MediaObject</h2></div></div><p>fileref:</p><div class="mediaobject"><img src="emc2.png"></div><p>entityref:</p><div class="mediaobject"><img src="test/emc2.png"></div><p>fileref, scale=20:</p><div class="mediaobject"><img src="emc2.png" width="20%"></div><p>fileref, width=200, depth=400:</p><div class="mediaobject"><img src="emc2.png" height="400" width="200"></div><p>fileref, width=20, depth=20, alt=Alt text:</p><div class="mediaobject"><img src="emc2.png" height="20" width="20" alt="Alt text"></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gtest.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gtest.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/gtest.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 1. Graphics Test</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2601159"></a>Chapter 1. Graphics Test</h2></div></div><p>A graphic by fileref:</p><div class="mediaobject"><img src="emc2.gif"></div><p>A graphic by entityref:</p><div class="mediaobject"><img src="test/emc2.gif"></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/idxbook.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/idxbook.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/idxbook.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,33 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Book Test Index Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2762745"><div class="titlepage"><div><h1 class="title"><a name="id2762745"></a>Bookinfo Test Index Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2601230">Foreword</a></dt><dt>1 <a href="#chapter">First Chapter</a></dt><dd><dl><dt> <a href="#id2768142">First Sect1</a></dt></dl></dd><dt>2 <a href="#ch2">Second Chapter</a></dt><dt>A <a href="#id2770793">First Appendix</a></dt><dt><a href="#id2772183">Index</a></dt></dl></div><div id="id2601230" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2601230"></a>Foreword</h2></div></div><p>This is a test paragraph<a class="indexterm" name="id2862590"></a>.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"></a>Chapter 1. First Chapter</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2768142">First Sect1</a></dt></dl></div><p>Paragraph<a class="indexterm" name="id2768120"></a>.</p><div class="sect1"><a name="id2768142"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2768142"></a>First Sect1</h2></div></div><p>Another paragraph<a class="indexterm" name="id2768160"></a>.</p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ch2"></a>Chapter 2. Second Chapter</h2></div></div><p>This is a test paragraph.
+<a class="indexterm" name="id2768229"></a>
+<a class="indexterm" name="id2862560"></a>
+<a class="indexterm" name="id2888750"></a>
+
+<a class="indexterm" name="id2888773"></a>
+<a class="indexterm" name="id2888776"></a>
+
+<a class="indexterm" name="id2770608"></a>
+
+<a class="indexterm" name="id2770647"></a>
+<a class="indexterm" name="id2770670"></a>
+
+<a class="indexterm" name="id2770708"></a>
+<a class="indexterm" name="id2770739"></a>
+<a class="indexterm" name="id2770769"></a></p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2770793"></a>Appendix A. First Appendix</h2></div></div><p>This is just a test.
+<a class="indexterm" name="id2770811"></a>
+<a class="indexterm" name="id2770834"></a>
+
+<a class="indexterm" name="id2770857"></a>
+<a class="indexterm" name="id2770888"></a>
+
+<a class="indexterm" name="id2770710"></a>
+<a class="indexterm" name="id2771996"></a>
+
+<a class="indexterm" name="id2772018"></a>
+<a class="indexterm" name="id2772049"></a>
+<a class="indexterm" name="id2772080"></a>
+
+<a class="indexterm" name="id2772103"></a>
+<a class="indexterm" name="id2772126"></a>
+<a class="indexterm" name="id2772149"></a>
+</p></div><div id="id2772183" class="index"><div class="titlepage"><div><h2 class="title"><a name="id2772183"></a>Index</h2></div></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/kwrite.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/kwrite.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/kwrite.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,421 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>the kwrite handbook</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><meta name="keywords" content="kde, kwrite, text, editor"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2862524"><div class="titlepage"><div><h1 class="title"><a name="id2862524"></a>the kwrite handbook</h1></div><div><h3 class="author">thad mcginnis</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:ctmcginnis at compuserve.com">ctmcginnis at compuserve.com</a>&gt;</tt></div></div><h3 class="othercredit">jochen wilhelmy</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:digisnap at cs.tu-berlin.de">digisnap at cs.tu-berlin.de</a>&gt;</tt></div></div><h3 class="othercredit">glen parker</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:glenebob at nwlink.com">glenebob at nwlink.com</a>&gt;</tt></div></div><h3 class="othercredit">michael koch</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:koch at kde.org">koch at kde.org</a>&gt;</tt></div></div><h3 class="othercredit">christian tibirna</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:tibirna at kde.org">tibirna at kde.org</a>&gt;</tt></div></div><h3 class="othercredit">lauri watts</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:vampyr at atconnex.net">vampyr at atconnex.net</a>&gt;</tt></div></div></div><div><p class="releaseinfo">2.00.00</p></div><div><p class="copyright">Copyright © 2000, 2001 thad mcginnis</p></div><div><div class="legalnotice"><p>permission is granted to copy, distribute and/or modify this
+document under the terms of the gnu free documentation license,
+version 1.1 or any later version published by the free software
+foundation; with no invariant sections, with no front-cover texts, and
+with no back-cover texts.  a copy of the license is included in <a href="#gnu-fdl">the section entitled gnu free documentation license</a>.</p></div></div><div><div class="abstract"><p><a name="id2769790"></a><b>Abstract</b></p><p>this handbook describes kwrite version 2.0</p><p>kwrite is a text editor for kde 2.0</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#introduction">introduction</a></dt><dt>2 <a href="#on-screen-fundamentals">some fundamentals</a></dt><dd><dl><dt> <a href="#drag-and-drop">drag and drop</a></dt><dt> <a href="#command-line-options">command line options</a></dt><dd><dl><dt> <a href="#specify-a-file">specify a file</a></dt><dt> <a href="#editing-files-on-the-internet">specify a file on the internet</a></dt><dt> <a href="#other-command-line-options">other command line options</a></dt></dl></dd><dt> <a href="#keybindings">key bindings</a></dt></dl></dd><dt>3 <a href="#the-menu-entries">the menu entries</a></dt><dd><dl><dt> <a href="#file">the file menu</a></dt><dt> <a href="#edit">the edit menu</a></dt><dt> <a href="#go">the go menu</a></dt><dt> <a href="#tools">the tools menu</a></dt><dt> <a href="#settings">the settings menu</a></dt><dt> <a href="#help">the help menu</a></dt></dl></dd><dt>4 <a href="#pref-dialog">configure kwrite</a></dt><dd><dl><dt> <a href="#prefcolors">colors</a></dt><dt> <a href="#pref-indent">indent</a></dt><dt> <a href="#pref-select">select</a></dt><dt> <a href="#pref-edit">edit</a></dt><dt> <a href="#prefspellchecker">spelling</a></dt></dl></dd><dt>5 <a href="#pref-highlighting">highlighting</a></dt><dt>6 <a href="#credits">credits and licenses</a></dt><dt>A <a href="#installation">installation</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="introduction"></a>Chapter 1. introduction</h2></div></div><p>kwrite is more than a text editor for the kde desktop. it is meant
+to be a programmer's editor, and could be considered as at least a partial
+alternative to more powerful editors.  it may be best used in conjunction
+with konqueror for source file browsing for
+different languages. kwrite also works very well as a simple text editor.
+one of kwrite's main features is the colorized syntax, customized for
+many different programming languages such as: c/c++, java&#8482;, python, perl,
+bash, modula 2, html, and ada.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="on-screen-fundamentals"></a>Chapter 2. some fundamentals</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#drag-and-drop">drag and drop</a></dt><dt> <a href="#command-line-options">command line options</a></dt><dd><dl><dt> <a href="#specify-a-file">specify a file</a></dt><dt> <a href="#editing-files-on-the-internet">specify a file on the internet</a></dt><dt> <a href="#other-command-line-options">other command line options</a></dt></dl></dd><dt> <a href="#keybindings">key bindings</a></dt></dl></div><p>kwrite is very simple to use. anyone that has used a text editor should
+have no problems. </p><div class="sect1"><a name="drag-and-drop"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="drag-and-drop"></a>drag and drop</h2></div></div><p>kwrite uses the kde drag and drop protocol. files may be dragged  
+and dropped onto kwrite from the desktop,  
+konqueror or some remote ftp site opened in one  
+of konqueror's windows. </p></div><div class="sect1"><a name="command-line-options"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="command-line-options"></a>command line options</h2></div></div><p>though kwrite may most often be started from the kde program menu,  
+or a desktop icon, it can also be opened at the command line prompt of a  
+terminal window.  there are a few useful options that are available when  
+doing this.</p><div class="sect2"><a name="specify-a-file"></a><div class="titlepage"><div><h3 class="title"><a name="specify-a-file"></a>specify a file</h3></div></div><p>by specifying the path and name of a particular file the user can  
+have kwrite open (or create) that file immediately upon startup.  this
+option might look something like the following:</p><div class="informalexample" id="id2775561"><a name="id2775561"></a><pre class="screen"><tt>%</tt> <b><tt><b>kwrite</b> <tt><i><tt>/home/myhome/docs/myfile.txt</tt></i></tt></tt></b></pre></div></div><div class="sect2"><a name="editing-files-on-the-internet"></a><div class="titlepage"><div><h3 class="title"><a name="editing-files-on-the-internet"></a>specify a file on the internet</h3></div></div><p>the above-mentioned method could even be used to open files on the
+internet (if the user has an active connection at the time.)  an example of
+this might look like the following:</p><div class="informalexample" id="id2775672"><a name="id2775672"></a><pre class="screen"><tt>%</tt> <b><tt><b>kwrite</b> <tt><i><tt>ftp://ftp.kde.org/pub/kde/welcome.msg</tt></i></tt></tt></b></pre></div></div><div class="sect2"><a name="other-command-line-options"></a><div class="titlepage"><div><h3 class="title"><a name="other-command-line-options"></a>other command line options</h3></div></div><p>the following command line help options are available</p><div class="variablelist"><dl><dt><a name="id2775784"></a><span class="term"><b><tt><b>kwrite</b> <tt>--help</tt></tt></b></span></dt><dd><p><a name="id2775822"></a>this lists the most basic options available at the command  
+line.</p></dd><dt><a name="id2775838"></a><span class="term"><b><tt><b>kwrite</b> <tt>--help-qt</tt></tt></b></span></dt><dd><p><a name="id2775875"></a>this lists the options available for changing the way  
+kwrite interacts with qt&#8482;.</p></dd><dt><a name="id2775918"></a><span class="term"><b><tt><b>kwrite</b> <tt>--help-kde</tt></tt></b></span></dt><dd><p><a name="id2775559"></a>this lists the options available for changing the way  
+kwrite interacts with kde.</p></dd><dt><a name="id2775626"></a><span class="term"><b><tt><b>kwrite</b> <tt>--help-all</tt></tt></b></span></dt><dd><p><a name="id2766542"></a>this lists all of the command line options.</p></dd><dt><a name="id2766559"></a><span class="term"><b><tt><b>kwrite</b> <tt>--author</tt></tt></b></span></dt><dd><p><a name="id2766598"></a>lists kwrite's authors in the terminal window</p></dd><dt><a name="id2766628"></a><span class="term"><b><tt><b>kwrite</b> <tt>--version</tt></tt></b></span></dt><dd><p><a name="id2766667"></a>lists version information for qt&#8482;, kde, and kwrite. also available through <b><tt><b>kwrite</b> <tt>-v</tt></tt></b> </p></dd></dl></div></div></div><div class="sect1"><a name="keybindings"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="keybindings"></a>key bindings</h2></div></div><p>many of the key bindings (shortcuts) are configurable by way of the <a href="#settings" title="the settings menu">settings</a> menu.  by default kwrite honors the  
+following key bindings.</p><div class="informaltable" id="id2766819"><a name="id2766819"></a><table border="1"><colgroup><col><col></colgroup><tbody><tr><td><p>insert</p></td><td><p> toggle between insert and overwrite mode. when in insert mode the
+editor will add any typed characters to the text while pushing along any data to
+the right of the text cursor. overwrite mode causes the entry of each character
+to eliminate the character immediately to the right of the text
+cursor.</p></td></tr><tr><td><p>left arrow</p></td><td><p>move the cursor one character to the left </p></td></tr><tr><td><p>right arrow</p></td><td><p> move the cursor one character to the right </p></td></tr><tr><td><p>up arrow</p></td><td><p> move the cursor up one line  </p></td></tr><tr><td><p>down arrow</p></td><td><p> move the cursor down one line </p></td></tr><tr><td><p>page up</p></td><td><p> move the cursor up one page  </p></td></tr><tr><td><p>page down</p></td><td><p>move the cursor down one page  </p></td></tr><tr><td><p>backspace</p></td><td><p> delete the character to the left of the cursor </p></td></tr><tr><td><p>home</p></td><td><p> move the cursor to the beginning of the line </p></td></tr><tr><td><p>end</p></td><td><p> move the cursor to the end of the line </p></td></tr><tr><td><p>delete</p></td><td><p>delete the character to the right of the cursor (or any selected  
+text)</p></td></tr><tr><td><p>shift-left arrow</p></td><td><p> mark text one character to the left </p></td></tr><tr><td><p>shift-right arrow</p></td><td><p> mark text one character to the right </p></td></tr><tr><td><p>f1</p></td><td><p> help</p></td></tr><tr><td><p>shift-f1</p></td><td><p><a href="#whats-this">what's this?</a></p></td></tr><tr><td><p>ctrl-f</p></td><td><p><a href="#find"> find</a></p></td></tr><tr><td><p>f3</p></td><td><p><a href="#find-again"> find again</a></p></td></tr><tr><td><p>ctrl-c</p></td><td><p> copy the marked text to the clipboard. </p></td></tr><tr><td><p>ctrl-m</p></td><td><p>set a bookmark</p></td></tr><tr><td><p>ctrl-n</p></td><td><p> <a href="#new">new</a> document</p></td></tr><tr><td><p>ctrl-p</p></td><td><p><a href="#print">print</a> </p></td></tr><tr><td><p>ctrl-q</p></td><td><p>quit - close active copy of editor </p></td></tr><tr><td><p>ctrl-r</p></td><td><p><a href="#replace"> replace</a></p></td></tr><tr><td><p>ctrl-s</p></td><td><p>invokes the <a href="#save">save</a> command.</p></td></tr><tr><td><p>ctrl-v</p></td><td><p> paste the clipboard text into line edit. </p></td></tr><tr><td><p>ctrl-x</p></td><td><p>delete the marked text and copy it to the clipboard. </p></td></tr><tr><td><p>ctrl-z</p></td><td><p><a href="#undo">undo</a></p></td></tr><tr><td><p>ctrl-shift-z</p></td><td><p><a href="#redo">redo</a></p></td></tr></tbody></table></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="the-menu-entries"></a>Chapter 3. the menu entries</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#file">the file menu</a></dt><dt> <a href="#edit">the edit menu</a></dt><dt> <a href="#go">the go menu</a></dt><dt> <a href="#tools">the tools menu</a></dt><dt> <a href="#settings">the settings menu</a></dt><dt> <a href="#help">the help menu</a></dt></dl></div><div class="sect1"><a name="file"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="file"></a>the file menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2890097"></a><span class="term"><a name="new"></a>file-&gt;new (<b>ctrl-n</b>)</span></dt><dd><p><a name="id2890219"></a>this starts a new document in the editor. if there is a current  
+document with unsaved changes the user is given a chance to save it.</p></dd><dt><a name="id2890239"></a><span class="term"><a name="open"></a>file-&gt;0pen (<b>ctrl-o</b>)</span></dt><dd><p><a name="id2890362"></a>this command opens a file.  it does this by means of a dialog box  
+which allows the user to navigate the file system.  the dialog operates  
+like a small file manager. clicking on directories displayed in the
+central window directs the dialog to enter that directory - displaying its  
+contents.  there is an entry/dropdown box which can be used to type in  
+directly the location and name of the file or by clicking the arrow at the  
+side choose from a dropdown list of recently used locations. below this is  
+a filter which similarly may have data entered directly or chosen from a  
+dropdown list of recent filter types.  the filter facility lets only files  
+that meet its specifications be displayed in the central window. if the  
+filter contained text such as <tt>*.txt</tt> then only files  
+with the txt extension would be visible in the selection window. below the filter
+is a status bar giving information about the number of files and subdirectories
+within the current directory.</p><p>the  toolbar, which is located at the top of the dialog, has left and right
+arrow buttons that let the user move back and forth through previously selected
+directories as well as an up arrow button for moving up the directory tree. the
+button with the little house takes the user to his or her home directory and the one
+with the two arrows curved in on each other updates the view of the current
+directory. the flag button lets the user set a new bookmark at the current directory
+or go to  one that was previously set. 
+ the last button on the toolbar allows you to create a new
+directory, and finally  there is dropdown box with a list of some commonly
+frequented directories.</p></dd><dt><a name="id2890436"></a><span class="term"><a name="open-recent"></a>file-&gt;open  
+recent</span></dt><dd><p><a name="id2890509"></a>this is a shortcut to open recently saved documents. clicking on
+this item opens a list to the side of the menu with several of the most recently
+saved files. clicking on a specific file will open it in kwrite - if the file
+still resides at the same location. </p></dd><dt><a name="id2890544"></a><span class="term"><a name="save"></a>file-&gt;save (<b>ctrl-s</b>)</span></dt><dd><p><a name="id2890667"></a>this saves the current document.  if there has already been a
+save of the document then this will overwrite the previously saved file without
+asking for the user's consent.  if it is the first save of a new document the
+save as dialog (described below) will be invoked.</p></dd><dt><a name="id2890690"></a><span class="term"><a name="save-as"></a>file-&gt;save
+as</span></dt><dd><p><a name="id2890762"></a>this allows a document to be saved with a new file name. this is
+done by means of the file dialog box described above in the <a href="#open">open</a> section of this help file.</p></dd><dt><a name="id2890803"></a><span class="term"><a name="print"></a>file-&gt;print (<b>ctrl-p</b>)</span></dt><dd><p><a name="id2890925"></a>opens a simple print dialog allowing the user to specify what, where, and how to print</p></dd><dt><a name="id2890944"></a><span class="term"><a name="new-window"></a>file-&gt;new window</span></dt><dd><p><a name="id2891017"></a>this creates a new window, i.e. a new instance of kwrite. in this way the user can easily work  
+on more than one file at a time with kwrite.</p></dd><dt><a name="id2891070"></a><span class="term"><a name="new-view"></a>file-&gt;new view</span></dt><dd><p><a name="id2891143"></a>this creates a new view of the current document, i.e., a new instance of
+kwrite (as explained in the previous entry) but containing the same
+document.</p></dd><dt><a name="id2891184"></a><span class="term"><a name="close"></a>file-&gt;quit (<b>ctrl-q</b>)</span></dt><dd><p><a name="id2891306"></a>this will close the editor window, if you have more than one
+instance of kwrite running, through the new view or
+new window menu items, those instances will not be
+closed.</p></dd></dl></div></div><div class="sect1"><a name="edit"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="edit"></a>the edit menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2891412"></a><span class="term"><a name="undo"></a>edit-&gt;undo (<b>ctrl-z</b>)</span></dt><dd><p><a name="id2891535"></a>this is used to eliminate or reverse the most recent user action or operation. just what  
+constitutes such an action may be better understood by referring to the <a href="#group-undos">group undos</a> portion of this help file.</p></dd><dt><a name="id2891576"></a><span class="term"><a name="redo"></a>edit-&gt;redo (<b>ctrl-shift-z</b>)</span></dt><dd><p><a name="id2891714"></a>this will reverse the most recent change (if any) made using undo</p></dd><dt><a name="id2891732"></a><span class="term"><a name="undohistory"></a>edit-&gt;undo/redo history</span></dt><dd><p><a name="id2891805"></a>this will call a display box showing a list of the most recent actions on  
+the left and another list of actions which have been 'undone' on the right.  
+there are also three buttons at the right of the box labeled  
+undo, redo, and  
+close.  clicking on the undo  
+button will cause the action at the top of the undo list to be reversed which  
+will place that particular action at the top of the redo list. likewise,  
+clicking on the redo button will reinstate the reversed  
+action and move it back to the top of the undo list.  clicking on an item below  
+the top item in either list will select all the items from the top down to that  
+point.  a subsequent click on the corresponding button will cause all the  
+selected actions to be undone or redone accordingly.  this would be particularly  
+useful when the user knows precisely the point to which she or he would like to  
+proceed - making it unnecessary to go through a series of single undo or redo  
+actions.</p></dd><dt><a name="id2891916"></a><span class="term"><a name="cut"></a>edit-&gt;cut (<b>ctrl-x</b>)</span></dt><dd><p><a name="id2892040"></a>this command deletes the current selection and places it on the clipboard.  the  
+clipboard is a feature of kde that works invisibly to provide a way to transfer data between  
+applications.</p></dd><dt><a name="id2892062"></a><span class="term"><a name="copy"></a>edit-&gt;copy (<b>ctrl-c</b>)</span></dt><dd><p><a name="id2892184"></a>this copies the currently selected text to the clipboard so that it may be  
+pasted elsewhere.  the clipboard is a feature of kde that works invisibly to  
+provide a way to transfer data between applications.</p></dd><dt><a name="id2892205"></a><span class="term"><a name="paste"></a>edit-&gt;paste (<b>ctrl-v</b>)</span></dt><dd><p><a name="id2892328"></a>this will insert the contents of the clipboard at the cursor position. the  
+clipboard is feature of kde that works invisibly to provide a way to transfer  
+data between applications.</p></dd><dt><a name="id2892349"></a><span class="term"><a name="select-all"></a>edit-&gt;select all (<b>ctrl-a</b>)</span></dt><dd><p><a name="id2892474"></a>this will select the entire document. this could be very useful for  
+copying the entire file to another application.</p></dd><dt><a name="id2892494"></a><span class="term"><a name="invert-the-selection"></a>edit-&gt;invert selection</span></dt><dd><p><a name="id2892567"></a>this selects any unselected text while unselecting any selected text -  
+effectively reversing the current state of selection.</p></dd><dt><a name="id2892587"></a><span class="term"><a name="find"></a>edit-&gt;find (<b>ctrl-f</b>)</span></dt><dd><p><a name="id2892709"></a>this opens the find dialog which is used to specify the text to  
+find in the document. there is small text box for entering the search  
+pattern which also doubles as a dropdown box. clicking on the dropdown arrow at  
+the side of the box makes available other recent search patterns. other  
+parameters are included to make the search more efficient. selecting  
+case sensitive will limit finds to entries that match the  
+case (upper or lower) of each of the characters in the search  
+pattern. find backwards directs the search to proceed in an  
+upwardly direction. the selected text option keeps the  
+search within currently selected text. checking whole words
+only prevents the search from stopping on words that contain the
+searched for pattern. the search from cursor option begins  
+the search from the current position of the cursor within the document rather  
+than from the beginning.</p></dd><dt><a name="id2892821"></a><span class="term"><a name="find-again"></a>edit-&gt;find next (<b>f3</b>)</span></dt><dd><p><a name="id2892933"></a>this repeats the last find operation, if any, without calling the find  
+dialog box.</p></dd><dt><a name="id2892952"></a><span class="term"><a name="replace"></a>edit-&gt;replace (<b>ctrl-r</b>)</span></dt><dd><p><a name="id2893075"></a>this command opens the replace dialog box.  the replace dialog is  
+almost identical to the above-mentioned find dialog.  in addition to the features in
+the find dialog it contains a replace with: text
+entry/dropdown box.  using this dialog the user can specify both the text to be found
+and text with which to replace it.  the additional prompt
+on replace option allows the user to have kwrite ask for
+confirmation before each replacement.</p></dd><dt><a name="id2893139"></a><span class="term"><a name="insertfile"></a>
+edit-&gt;insert file</span></dt><dd><p><a name="id2893212"></a>this opens the file <a href="#open">open</a> dialog box whereby the
+user can insert a complete file in the open document.  the the contents of
+the file will be entered at the position of the blinking text
+cursor.</p></dd></dl></div></div><div class="sect1"><a name="go"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="go"></a>the go menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2893328"></a><span class="term"><a name="go-to-line"></a>go-&gt;go to line</span></dt><dd><p><a name="id2893398"></a>this opens the goto line dialog box which is used to have the cursor jump  
+to a particular line (specified by number) in the document.  the line number may  
+be entered directly into the text box or graphically by clicking on the up or  
+down arrow spin controls at the side of the text box. the little up arrow will  
+increase the line number and the down arrow decrease it.  there is also a slide  
+control to the right of the text box which allows the user to move the goto  
+point in the document in an analog manner.</p></dd><dt><a name="id2893426"></a><span class="term"><a name="add-marker"></a>go-&gt;add marker (<b>ctrl-m</b>)</span></dt><dd><p><a name="id2893548"></a>this creates a marker in the document at the line where the cursor is  
+located and places it at the bottom of the list of markers located at the
+bottom of the go menu.</p><p>markers are points within a kwrite document
+marked for easy return. if  the user thinks (s)he may need to return to a specific
+point (s)he may by way of this feature instruct kwrite to remember it. </p></dd><dt><a name="id2893606"></a><span class="term"><a name="set-bookmark"></a>go-&gt;set marker</span></dt><dd><p><a name="id2893676"></a>this creates a marker in the document at the line where the cursor is  
+located, and allows the user to choose its position in the list of bookmarks  
+which is appended at the bottom of this menu item.</p></dd><dt><a name="id2893697"></a><span class="term"><a name="clear-bookmarks"></a>go-&gt;clear markers</span></dt><dd><p><a name="id2893768"></a>this command will remove all the markers from the docucument as well as the
+list of markers which is appended at the  bottom of this menu item.</p></dd></dl></div><p>at the bottom of this menu, a list of markers appears if any  
+markers are available for this window.</p></div><div class="sect1"><a name="tools"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="tools"></a>the tools menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2893844"></a><span class="term"><a name="spelling..."></a>tools-&gt;spelling...</span></dt><dd><p><a name="id2893914"></a>this initiates the spell checking program - a program
+designed to help the user catch and correct any spelling errors.
+clicking on this entry will start the checker and bring up the speller dialog
+box through which the user can control the process.  there are three text boxes
+lined up vertically in the center of the dialog with their corresponding labels
+just to the left.  starting at the top they are:</p><div class="variablelist"><dl><dt><a name="id2893953"></a><span class="term">misspelled word:</span></dt><dd><p><a name="id2893975"></a>here, the spell checker indicates the word currently under
+consideration.  this happens when the checker encounters a word not in its
+dictionary - a file containing a list of correctly spelled words against which
+it compares each word in the editor.</p></dd><dt><a name="id2893998"></a><span class="term">replacement:</span></dt><dd><p><a name="id2894020"></a> if the checker has any similar words in its dictionary the
+first one will be listed here.  the user can accept the suggestion, type in his
+or her own correction, or choose a different suggestion from the next
+box.</p></dd><dt><a name="id2894042"></a><span class="term">suggestions:</span></dt><dd><p><a name="id2894064"></a> the checker may list here a number of possible replacements for
+the word under consideration.  clicking on any one of the suggestions will cause
+that word to be entered in the replacement: box,
+above.</p></dd></dl></div><p>on the right side of the dialog box are 6 buttons that allow the user to
+control the spell check process.  they are:</p><div class="variablelist"><dl><dt><a name="id2894117"></a><span class="term">replace</span></dt><dd><p><a name="id2894139"></a> this button has the checker replace the word under
+consideration in the document with the word in the
+replacement: box.</p></dd><dt><a name="id2894171"></a><span class="term">replace all</span></dt><dd><p><a name="id2894193"></a> this button causes the checker to replace not only the current
+misspelled word: but to automatically make the same
+substitution for any other occurences of this misspelled
+word: in the document.</p></dd><dt><a name="id2894240"></a><span class="term">ignore</span></dt><dd><p><a name="id2894262"></a>activating this button will have the checker move on without
+making any changes.</p></dd><dt><a name="id2894281"></a><span class="term">ignore all</span></dt><dd><p><a name="id2894303"></a> this button tells the checker to do nothing with the current
+misspelled word: and to pass over any other instances of
+the same word.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2894333"></a>Note</h3><p>this only applies to the current spell check
+run.  if the checker is run again later it will stop on this same
+word.</p></div></dd><dt><a name="id2894354"></a><span class="term">add</span></dt><dd><p><a name="id2894376"></a>pressing this button adds the word in the misspelled
+word: box to the checker's dictionary. this means that in the future
+the checker will always consider this word to be correctly
+spelled.</p></dd><dt><a name="id2894410"></a><span class="term">stop</span></dt><dd><p><a name="id2894432"></a> this button stops the spell check process.</p></dd></dl></div><p>located horizontally along the bottom of the spell check dialog is a
+progress bar.  as the checking process proceeds the bar will fill from left to
+right providing a graphical representation of how far along in the document the
+process has reached.  in addition, the progress is displayed numerically in
+the center of the progress bar.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2894473"></a>Note</h3><p>a numerical display of the spell check
+process is simultaneously displayed in the status bar of the editor.  the <a href="#show-statusbar">status bar</a> is the horizontal strip at the bottom
+of the editor just outside of the text entry area.</p></div><p>two more buttons are located below the progress bar.  they are:</p><div class="variablelist"><dl><dt><a name="id2894528"></a><span class="term">help</span></dt><dd><p><a name="id2894550"></a> this invokes the kde help system starting at the kwrite help
+pages (this document).</p></dd><dt><a name="id2894582"></a><span class="term">cancel</span></dt><dd><p><a name="id2894604"></a> this button cancels the spell check process.</p></dd><dt><a name="id2894623"></a><span class="term"><a name="indent"></a>tools-&gt;indent</span></dt><dd><p><a name="id2894682"></a>this increases the paragraph's indentation by one step. the size of the
+step depends on the <a href="#pref-indent" title="indent"> indentation  
+settings</a>.</p></dd><dt><a name="id2894722"></a><span class="term"><a name="unindent"></a>tools-&gt;unindent</span></dt><dd><p><a name="id2894782"></a>this reduces the paragraph's indentation by one step. the size of the step  
+depends on the <a href="#pref-indent" title="indent"> indentation settings</a>.</p></dd><dt><a name="id2894818"></a><span class="term"><a name="cleanindent"></a>tools-&gt;clean
+indentation</span></dt><dd><p><a name="id2894878"></a>not yet implemented</p></dd><dt><a name="id2894896"></a><span class="term">tools-&gt;comment</span></dt><dd><p><a name="id2894944"></a>this adds one space to the beginning of the line
+where the text cursor is located or to the beginning of any
+selected lines.</p></dd><dt><a name="id2894964"></a><span class="term">tools-&gt;uncomment</span></dt><dd><p><a name="id2895012"></a>this removes one space (if any exist) from the beginning of the line
+where the text cursor is located or from the beginning of any
+selected lines.</p></dd></dl></div></dd></dl></div></div><div class="sect1"><a name="settings"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="settings"></a>the settings menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2895084"></a><span class="term"><a name="show-toolbar"></a>settings-&gt;show toolbar</span></dt><dd><p><a name="id2895156"></a>when checked, this displays a movable toolbar containing buttons used to  
+initiate frequently used commands. when unchecked the toolbar is hidden.</p></dd><dt><a name="id2895177"></a><span class="term"><a name="show-statusbar"></a>settings-&gt;show statusbar</span></dt><dd><p><a name="id2895250"></a>when checked, this displays a small bar at the bottom of the editor  
+containing information about the status of the current document.  when unchecked  
+the statusbar is hidden.</p></dd><dt><a name="id2895270"></a><span class="term"><a name="show-path"></a>settings-&gt;show path</span></dt><dd><p><a name="id2895343"></a>when selected, this displays in the title bar the path (its location in the
+file system) of the current document.  when unchecked the path is hidden.</p></dd><dt><a name="id2895364"></a><span class="term"><a name="configure-keybindings"></a>settings-&gt;configure key bindings</span></dt><dd><p><a name="id2895437"></a>this command opens a dialog box whereby the <a href="#keybindings" title="key bindings">key bindings</a> may be changed.  a display window at
+the top of the dialog box shows the list of commands (actions) that can have
+keyboard shortcuts.  below the display are three radio buttons.  the user may choose
+between no key, default key, and custom key.  (note that a set of radio buttons only
+allows the selection of one of the offered items - in the way that buttons on a car
+radio only offer the selection of one preset station.  also, the default key
+selection  is only available for those commands that actually have a 'default'
+shortcut.)  selecting the custom key option activates the three check boxes and key
+button at the bottom of the dialog. the user may then select a key
+combination for the command in question by means of the check boxes and key
+button. for example, with the about kde command selected in the display window,  
+the user could select <b>ctrl</b> and <b>alt</b>, click on  
+the key button, and then press the <b>k</b> key on the keyboard.  this  
+would mean that anytime he or she held down the <b>ctrl</b> and  
+<b>alt</b> buttons and pressed <b>k</b> (while using  
+kwrite) the about kde display box would be called. </p></dd><dt><a name="id2895587"></a><span class="term"><a name="configure-toolbars"></a>settings-&gt;configure toolbars</span></dt><dd><p><a name="id2895660"></a>this will open the dialog whereby the toolbar configuration may
+be changed.   the user can choose which shortcut buttons should appear on the  
+toolbar. a display window on the left lists the commands available to placed
+on the toolbar.  a display on the right lists those commands already on the  
+toolbar.  a set of four arrow buttons between the two displays manipulates the  
+selections.  the right pointing arrow places any command selected in the left  
+pane onto the right pane, i.e., it is added to the toolbar.  
+the left arrow does just the opposite, removing any action selected in the right  
+window from the toolbar.  the up and down pointing arrows change the position of  
+an action selected in the right window which changes the position of its button  
+in the toolbar.</p></dd><dt><a name="id2895700"></a><span class="term"><a name="preferences"></a>settings-&gt;preferences</span></dt><dd><p><a name="id2895770"></a>this menu item opens a dialog whereby several different <a href="#pref-dialog" title="Chapter 4. configure kwrite">settings</a> may be adjusted.</p></dd><dt><a name="id2895809"></a><span class="term">settings-&gt;configure
+highlighting</span></dt><dd><p><a name="id2895871"></a>opens a dialog box allowing configuration of the syntax  
+highlighting.  the dialog is described in <a href="#pref-highlighting" title="Chapter 5. highlighting">Chapter 5. highlighting</a>.</p></dd><dt><a name="id2895908"></a><span class="term"><a name="vertical-selection"></a>settings-&gt;vertical  
+selection</span></dt><dd><p><a name="id2895978"></a>this is used to turn on or off the vertical selection feature.  vertical  
+selection allows text to be selected by column as well as by row.  in other  
+words with this feature the user is able to select text contained in only  
+particular contiguous columns and rows.  in affect the user can select a  
+rectangular area of text anywhere in the document.</p></dd><dt><a name="id2896002"></a><span class="term"><a name="set-highlight"></a>settings-&gt;highlight mode</span></dt><dd><p><a name="id2896071"></a>this allows the user to choose the style of color highlighting which the  
+editor uses to display the text. the styles are selected by programming
+language. the font/color information is not stored with the document.</p></dd><dt><a name="id2896093"></a><span class="term"><a name="end-of-line"></a>settings-&gt;end of line</span></dt><dd><p><a name="id2896163"></a>this opens a sub-menu from which the user can select the type of &#8216;end of  
+line&#8217; code for kwrite to use, i.e., the accepted standard  
+used by unix, mac® or msdos/windows® systems.</p></dd></dl></div></div><div class="sect1"><a name="help"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="help"></a>the help menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2896284"></a><span class="term"><a name="contents"></a>help-&gt;contents (<b>f1</b>)</span></dt><dd><p><a name="id2896393"></a>this invokes the kde help system starting at the kwrite help pages (this document).</p></dd><dt><a name="id2896425"></a><span class="term"><a name="whats-this"></a>help-&gt;what's this? (<b>shift-f1</b>)</span></dt><dd><p><a name="id2896550"></a>this changes the mouse cursor to a combination arrow and question mark.  
+clicking on items within kwrite with this arrow will open a help window (if  
+one exists for the particular item) explaining the item's function.</p></dd><dt><a name="id2896585"></a><span class="term"><a name="report-bug"></a>help-&gt;report bug</span></dt><dd><p><a name="id2896655"></a>this calls a dialog box to help
+the user help the kde team to track down and solve any
+problems(bugs) in the program.  the dialog attempts to do this by
+means of email using the information given by the user.</p></dd><dt><a name="id2896684"></a><span class="term"><a name="about-kwrite"></a>help-&gt;about kwrite</span></dt><dd><p><a name="id2896754"></a>this will display version and author information</p></dd><dt><a name="id2896773"></a><span class="term"><a name="about-kde"></a>help-&gt;about kde</span></dt><dd><p><a name="id2896845"></a>this displays the kde version and other basic information.</p></dd></dl></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="pref-dialog"></a>Chapter 4. configure kwrite</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#prefcolors">colors</a></dt><dt> <a href="#pref-indent">indent</a></dt><dt> <a href="#pref-select">select</a></dt><dt> <a href="#pref-edit">edit</a></dt><dt> <a href="#prefspellchecker">spelling</a></dt></dl></div><p>selecting
+settings-&gt;configure
+kwrite from the menu brings up the configure-kwrite
+dialog box.  this dialog can be used to alter a number of different settings.  the
+settings available for change vary according to which category the user chooses from
+a vertical list on the left side of the dialog.  by means of three buttons
+along the bottom of the box the user can control the process.  she or he may invoke
+the help system, accept the current settings and close the
+dialog by means of the ok button, or
+cancel the process. the categories
+colors, indent,
+select, edit, and
+spelling are detailed below.</p><div class="sect1"><a name="prefcolors"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="prefcolors"></a>colors</h2></div></div><p>this section provides access to <a href="#pref-color-settings">five different color settings</a>,  
+described below.  each of these settings may be changed by clicking on its  
+corresponding button.  these are special wide buttons that are the color of  
+the current setting.  clicking on one of the buttons calls a special color  
+dialog box used to change the setting.</p><p>the color dialog box provides a convenient and graphical way to
+select a color.  in the upper left of the box is a rectangular display of a  
+spectrum of colors. to the immediate right of this, is vertical bar  
+displaying a range of intensity from the most dark at the bottom to the  
+most light at the top.  the user may select and adjust a color by clicking  
+in these two boxes. clicking in the rectangular display selects a  
+particular mix of red, green, and blue colors and in the vertical bar  
+selects a level of intensity (value).  the various color attributes are displayed  
+in numerical form in small text boxes located directly below the spectral  
+rectangle and the user can see them change as the color is adjusted.  these  
+attributes include the mix of the basic color components (red, green, and  
+blue) as well as hue and saturation levels.  alternatively the user can  
+enter figures directly in these boxes.  there is also a square at the  
+bottom center of the dialog box which displays the color which is under  
+consideration at any time.  to the right of this display is another text  
+box labeled html: this shows the user the color code  
+that would be used to specify the particular displayed color in  
+html code which is widely used for web pages.</p><p>in addition to the above, the color dialog allows the capture of any  
+color currently displayed on the desktop or in another program.  clicking  
+on the button with the dropper icon (located on the right side of the  
+dialog box,) changes the shape of the mouse cursor to a set of crosshairs.  
+clicking again will pick up the color attributes of whatever color is  
+displayed under the cross hairs.</p><p>furthermore the user has the option of adding any color to a personal
+palette of &#8220;custom colors&#8221; by clicking on the wide button labeled
+add to custom colors (which is located directly above the
+display square.)  this adds the current color to the custom color palette.  this
+palette and any other available palettes can be displayed using the drop down
+selection box located directly above the palette display at the top right of the
+dialog box.  besides the custom colors, the user can access a number of
+pre-prepared palettes.</p><div class="variablelist"><dl><dt><a name="pref-color-settings"></a><span class="term">background</span></dt><dd><p><a name="id2897266"></a>here the user can specify a color for the general background of  
+kwrite.</p></dd><dt><a name="id2897298"></a><span class="term">text background</span></dt><dd><p><a name="id2897320"></a>this is used to set a particular color to display in the  
+background of those areas of the document containing text.</p></dd><dt><a name="id2897340"></a><span class="term">selected</span></dt><dd><p><a name="id2897362"></a>this allows the user to select a color to be used for indicating  
+selected (or highlighted) portions of the document.</p></dd><dt><a name="id2897382"></a><span class="term">found</span></dt><dd><p><a name="id2897404"></a>this specifies the preferred color with which to mark text  
+encountered as the result of a <a href="#find">find</a>  
+operation.</p></dd><dt><a name="id2897440"></a><span class="term">selected + found</span></dt><dd><p><a name="id2897462"></a>this sets the color for text that has not only been found as in  
+the previous entry above but that has also been selected.</p></dd></dl></div></div><div class="sect1"><a name="pref-indent"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="pref-indent"></a>indent</h2></div></div><div class="variablelist"><dl><dt><a name="id2897514"></a><span class="term">auto indent</span></dt><dd><p><a name="id2897536"></a>this causes  
+new lines to begin with the same indentation level as the previous  
+line.</p></dd><dt><a name="id2897555"></a><span class="term">indent with spaces</span></dt><dd><p><a name="id2897578"></a>this  
+replaces tabs with the number of spaces selected in the tab width window in  
+the <a href="#pref-edit" title="edit">edit</a> section of the preferences  
+dialog.</p></dd><dt><a name="id2897617"></a><span class="term">backspace key indents</span></dt><dd><p><a name="id2897640"></a>this allows the  
+backspace key to be used to  
+indent.</p></dd><dt><a name="id2897684"></a><span class="term">tab key indents</span></dt><dd><p><a name="id2897706"></a>this  
+allows the tab key to be used to  
+indent.</p></dd><dt><a name="id2897751"></a><span class="term">keep indent profile</span></dt><dd><p><a name="id2897773"></a>this  
+retains current indentation settings for future documents.</p></dd><dt><a name="id2897792"></a><span class="term">keep extra spaces</span></dt><dd><p><a name="id2897814"></a>indentations of more than the selected number of spaces  
+will not be shortened.</p></dd></dl></div></div><div class="sect1"><a name="pref-select"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="pref-select"></a>select</h2></div></div><div class="variablelist"><dl><dt><a name="id2897866"></a><span class="term">persistent selections</span></dt><dd><p><a name="id2897889"></a>this prevents key input or cursor movement by way of the  
+arrow keys from causing the elimination of text  
+selection. </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2897905"></a>Note</h3><p>(note: if the overwrite selections option is  
+activated then any typed character input or paste operation will replace  
+the selected text.)</p></div></dd><dt><a name="id2897927"></a><span class="term">overwrite selections</span></dt><dd><p><a name="id2897950"></a>any keyed character input or paste operation will replace  
+the selected text.  </p></dd><dt><a name="id2897969"></a><span class="term">mouse autocopy</span></dt><dd><p><a name="id2897991"></a>any text  
+selected with the mouse will be automatically copied to the  
+clipboard.</p></dd><dt><a name="id2898010"></a><span class="term">x11-like single selection</span></dt><dd><p><a name="id2898032"></a>not implemented yet.</p></dd><dt><a name="id2898050"></a><span class="term">vertical selections</span></dt><dd><p><a name="id2898073"></a>this  
+activates the <a href="#vertical-selection">vertical selection</a>  
+option.</p></dd><dt><a name="id2898112"></a><span class="term">toggle old</span></dt><dd><p><a name="id2898126"></a>not yet implemented</p></dd></dl></div></div><div class="sect1"><a name="pref-edit"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="pref-edit"></a>edit</h2></div></div><div class="variablelist"><dl><dt><a name="id2898176"></a><span class="term">word wrap</span></dt><dd><p><a name="id2898208"></a>word wrap is a feature that causes the editor to
+automatically start a new line of text and move (wrap) the cursor to the
+beginning of that new line.  kwrite will automatically start a new line of text
+when  the current line reaches the length specified by the <a href="#pref-wrap-words-at">wrap words at:</a>  
+option.</p></dd><dt><a name="id2898264"></a><span class="term">wrap words  
+at:</span></dt><dd><p><a name="id2898296"></a>if the <a href="#pref-word-wrap">word wrap</a> option is selected this entry  
+determines the length (in characters) at which the editor will
+automatically start a new line.</p></dd><dt><a name="id2898336"></a><span class="term">replace tabs by  
+spaces</span></dt><dd><p><a name="id2898369"></a>kwrite will replace any tabs  
+with the number of spaces indicated in the <a href="#pref-tab-width">tab width:</a> entry.</p></dd><dt><a name="id2898419"></a><span class="term">tab width</span></dt><dd><p><a name="id2898443"></a>if the <a href="#pref-word-wrap">replace tabs by spaces</a>  
+option is selected this entry determines the number of spaces with which
+the editor will automatically replace tabs.</p></dd><dt><a name="id2898486"></a><span class="term">remove trailing spaces</span></dt><dd><p><a name="id2898509"></a>kwrite will automatically eliminate extra spaces at the  
+ends of lines of text.</p></dd><dt><a name="id2898538"></a><span class="term">auto brackets</span></dt><dd><p><a name="id2898560"></a>when the
+user types a left bracket ([,(, or {) kwrite automatically
+enters the right bracket (}, ), or ]) to the right of the
+cursor.</p></dd><dt><a name="id2898593"></a><span class="term">group undos</span></dt><dd><p><a name="id2898624"></a>groups of similar actions are to be considered a single
+<a href="#undo">undo</a> step by kwrite. in other words, a series
+of regular character keystrokes (words or expressions) would be considered
+one step and therefore be removed by a single undo operation.  if the
+series of character entries were interrupted by a non-character entry
+operation (such as a backspace), invoking undo would only remove the
+entries made since that operation. the next undo would then reverse that
+operation and so on.</p><p> when this option is not selected kwrite considers
+each keystroke to be a single step.  so if the user (with this option
+active) were to type several words or even sentences without having to make
+corrections or cut or paste or some other non-character entry operation
+then a click of the undo button would eliminate all that had been typed
+since the last non-entry operation.  a second click would eliminate that
+operation and a third any operation or series of entries that occurred
+before the operation and so on.  when not selected three clicks of the undo
+button would only remove the last three letters typed, or the last three
+operations.</p></dd><dt><a name="id2898713"></a><span class="term">show tabs</span></dt><dd><p><a name="id2898735"></a>the editor will display a symbol to indicate the presence  
+of a tab in the text.</p></dd><dt><a name="id2898754"></a><span class="term">smart home</span></dt><dd><p><a name="id2898776"></a>not yet implemented</p></dd><dt><a name="id2898794"></a><span class="term">page up/down moves cursor</span></dt><dd><p><a name="id2898816"></a>this option changes the behavior of the cursor when
+the user presses the <b>page up</b> or <b>page down</b> key. if
+unselected the text cursor will maintain its relative position within the visible
+text in kwrite as new text becomes visible as a result of the operation.  so if
+the cursor is in the middle of the visible text when the operation occurs it will
+remain there (except when one reaches the beginning or end.)  with this
+option selected, the first key press will cause the cursor to move to either the top
+or bottom of the visible text as a new page of text is displayed.</p></dd><dt><a name="id2898883"></a><span class="term">wrap cursor</span></dt><dd><p><a name="id2898897"></a>when this option is chosen, moving
+the cursor with the arrow keys off the end of a line (to the right) causes
+it to jump down to the beginning of the next line.  likewise when the
+cursor is moved past the beginning of a line (to the left) it jumps up to
+the end of the preceding line. when this option is not selected, moving the
+cursor right past the end of a line merely causes it to continue
+horizontally in the same line and trying to move it left past the beginning
+does nothing.</p></dd><dt><a name="id2898924"></a><span class="term"><a href="#undo">undo</a> steps:</span></dt><dd><p><a name="id2898952"></a>here
+the user may specify the number of steps kwrite will retain in memory for
+purposes of undoing entries and actions.  this means that the higher the
+number of steps set the more memory kwrite will use for this.  setting
+this entry to 10 would mean that the user would be be able reverse the last
+ten operations, i.e.i&gt;, click the undo
+button 10 times and obtain results.</p></dd></dl></div></div><div class="sect1"><a name="prefspellchecker"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="prefspellchecker"></a>spelling</h2></div></div><p>a spell checker is a program designed to
+help the user catch and correct any spelling errors.  this section of the
+preferences dialog allows certain important settings to be adjusted in this
+regard.</p><div class="variablelist"><dl><dt><a name="id2899068"></a><span class="term">create root/affix combinations not in
+dictionary</span></dt><dd><p><a name="id2899091"></a>selecting this option allows
+the spell checker to register as 'correct' combinations of root words with
+suffixes or prefixes even if the particular combination is not listed in
+its dictionary data base of words.</p></dd><dt><a name="id2899112"></a><span class="term">consider run-together words as spelling
+errors</span></dt><dd><p><a name="id2899135"></a>selecting this will cause the
+spell checker to register as 'misspelled' two or more correctly spelled
+words that are 'run-together', i.e., that do not have spaces
+separating them.</p></dd><dt><a name="id2899164"></a><span class="term">dictionary:</span></dt><dd><p><a name="id2899186"></a>depending on
+the user's installation one or more different language spelling
+dictionaries may be available.  this drop down box allows the user to
+choose which language the spell checker should use.</p></dd><dt><a name="id2899207"></a><span class="term">encoding:</span></dt><dd><p><a name="id2899229"></a>there are  
+different coding systems used to associate particular codes with particular  
+characters and symbols.  if the user knows which code he or she is using  
+this drop down box allows this code to be specified so that the spell
+checker can do its job correctly. </p></dd><dt><a name="id2899252"></a><span class="term">client:</span></dt><dd><p><a name="id2899274"></a>since kwrite
+does not contain its own spell checker, an external one must be chosen.
+this is where the user may specify which spell check program to
+use.</p></dd></dl></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="pref-highlighting"></a>Chapter 5. highlighting</h2></div></div><p>the configure highlighting dialog consists of two
+pages, defaults and highlighting
+modes.  the user can select which page to view by clicking on the
+appropriate tab at the top of the dialog</p><p>items available on the defaults page are as
+follows:</p><div class="variablelist"><dl><dt><a name="id2899415"></a><span class="term">default item styles</span></dt><dd><p><a name="id2899437"></a>the user can configure the default appearance for particular items.
+this would allow a programmer to more easily identify different items (types of
+entries) in his or her code.
+
+</p><div class="variablelist"><dl><dt><a name="id2899461"></a><span class="term">item</span></dt><dd><p><a name="id2899483"></a>this drop down list offers a variety of items that the user
+might want to highlight.  they include normal for
+text does not fit in any of the other categories, comment,
+string, keyword and many more.  not
+all of these entries will need to be configured for every language and so may be
+selected as needed.  the options in the rest of this section apply
+to the entry selected in this box.</p></dd><dt><a name="id2899560"></a><span class="term">normal</span></dt><dd><p><a name="id2899582"></a>this allows the user to choose the item's normal
+(unselected) color.  this is done by means of a color selection
+dialog box, a further explanation of which may be found in the <a href="#prefcolors" title="colors">colors</a> section of <a href="#pref-dialog" title="Chapter 4. configure kwrite">configure kwrite</a>.</p></dd><dt><a name="id2899638"></a><span class="term">bold</span></dt><dd><p><a name="id2899660"></a>this option determines whether or not the item should be displayed in
+bold text.</p></dd><dt><a name="id2899679"></a><span class="term">italic</span></dt><dd><p><a name="id2899701"></a>this option determines whether or not the item should be displayed in italic
+text.</p></dd><dt><a name="id2899720"></a><span class="term">selected</span></dt><dd><p><a name="id2899742"></a>this allows the user to choose the item's color
+when selected.  this is done by means of a color selection
+dialog box, a further explanation of which may be found in the <a href="#prefcolors" title="colors">colors</a> section of <a href="#pref-dialog" title="Chapter 4. configure kwrite">configure kwrite</a>.</p></dd></dl></div></dd><dt><a name="id2899800"></a><span class="term">default font</span></dt><dd><p><a name="id2899822"></a>here the user can choose the default font for all
+text.</p><div class="variablelist"><dl><dt><a name="id2899844"></a><span class="term">family</span></dt><dd><p><a name="id2899866"></a>this is used to choose the font family.  the default is fixed.
+for most programming purposes, a monospaced font (one in which a w takes up the same
+amount of space as an i) may be the best choice.</p></dd><dt><a name="id2899888"></a><span class="term">size</span></dt><dd><p><a name="id2899910"></a>the font size can be changed here.  the default is 12
+points.</p></dd><dt><a name="id2899928"></a><span class="term">charset</span></dt><dd><p><a name="id2899950"></a>here the user can choose which character set to work in.</p></dd></dl></div></dd></dl></div><p>items on the highlight modes tab allow the user to define
+more specific highlighting depending on the language style.</p><p>one need not set every available option, items not configured
+specifically will use the default configuration specified on the previous  
+(defaults tab.</p><div class="variablelist"><dl><dt><a name="id2900029"></a><span class="term">config select</span></dt><dd><p><a name="id2900051"></a>this group of options is used to customize the highlighting styles
+for each programming language type.  any changes you made in
+other areas of this dialog apply only to this type.</p><div class="variablelist"><dl><dt><a name="id2900075"></a><span class="term">highlight</span></dt><dd><p><a name="id2900097"></a>this is used to choose the language type to
+configure</p></dd><dt><a name="id2900116"></a><span class="term">item</span></dt><dd><p><a name="id2900138"></a>this is to choose the syntax item to configure.  remember
+this  only configures <i>this</i> item for <i>this</i>
+language.</p></dd></dl></div><p>as an example, if the user wished to configure the appearance of
+&#8220;comments&#8221; while writing c++, she or he could choose c++ in the
+highlight drop down list, and then choose comment in the
+item drop down list. to have &#8220;comments&#8221; look
+the same across all languages, the user would need to configure this in the
+defaults page of this dialog box while leaving
+&#8220;comments&#8221; unconfigured within the more specific
+highlight modes page.</p></dd><dt><a name="id2900267"></a><span class="term">item style</span></dt><dd><p><a name="id2900289"></a>here the user can configure the general appearance of the above
+selected item.  checking the default checkbox causes the default
+style as configured on the previous tab to be set, or the
+appearance can be configured directly.  the available options are the same as on the
+defaults tab: normal,
+selected, bold and
+italic.</p></dd><dt><a name="id2900390"></a><span class="term">highlight auto select</span></dt><dd><p><a name="id2900413"></a>kwrite can apply syntax highlighting automatically, depending  
+on the file extension or mime-type of the opened file.  the defaults are fairly
+comprehensive, but users that regularly edit files with non-standard extensions
+can add them here.  wildcards are allowed in the file
+extensions text box.  for example, the default entry for the c++
+language is <b><tt>*.cpp;*.cc;*.c;*.h</tt></b>.  opening a file called
+<tt>foo.h</tt> would automatically apply the c++ style to it.</p></dd><dt><a name="id2900487"></a><span class="term">item font</span></dt><dd><p><a name="id2900509"></a>here the user can choose the font for the selected item.</p><p>the default style can be applied by checking the
+default checkbox or the user can choose a specific font
+family, size and
+charset.  the available options are the same as those on
+the defaults tab.</p></dd></dl></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="credits"></a>Chapter 6. credits and licenses</h2></div></div><p>kwrite copyright 2000 by jochen wilhelmy  
+<tt>&lt;<a href="mailto:digisnap at cs.tu-berlin.de">digisnap at cs.tu-berlin.de</a>&gt;</tt></p><p>contributions:</p><div class="itemizedlist"><ul><li><p><a name="id2900670"></a>additional contributions by glen parker <tt>&lt;<a href="mailto:glenebob at nwlink.com">glenebob at nwlink.com</a>&gt;</tt></p></li><li><p><a name="id2900691"></a>michael koch <tt>&lt;<a href="mailto:koch at kde.org">koch at kde.org</a>&gt;</tt></p></li></ul></div><p>documentation by thad mcginnis <tt>&lt;<a href="mailto:ctmcginnis at compuserve.com">ctmcginnis at compuserve.com</a>&gt;</tt></p><div class="itemizedlist"><ul><li><p><a name="id2900735"></a>this version of the kwrite handbook is based on the original by cristian tibirna <tt>&lt;<a href="mailto:tibirna at kde.org">tibirna at kde.org</a>&gt;</tt></p></li></ul></div><p>converted to docbook/proofreading by lauri watts <tt>&lt;<a href="mailto:vampyr at atconnex.net">vampyr at atconnex.net</a>&gt;</tt></p><p><a name="gnu-fdl"></a>this documentation is licensed under the terms of the <a href="common/fdl-license.html" target="_top">gnu free documentation
+license</a>.</p><p>this program is licensed under the terms of the <a href="common/gpl-translated.html" target="_top">gnu general public license</a>.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="installation"></a>Appendix A. installation</h2></div></div><p>kwrite is packaged as part of the kdebase package.  for more information
+on installing and compiling kde please see <a href="http://www.kde.org" target="_top">www.kde.org</a>.</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/multilingual.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/multilingual.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/multilingual.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,501 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Multilingual Test Document</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2855713"><div class="titlepage"><div><h1 class="title"><a name="id2855713"></a>Multilingual Test Document</h1></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#cachap">Catalan</a></dt><dt>2 <a href="#cschap">Czech</a></dt><dt>3 <a href="#dachap">Danish</a></dt><dt>4 <a href="#eschap">Spanish</a></dt><dt>5 <a href="#fichap">Finnish</a></dt><dt>6 <a href="#frchap">French</a></dt><dt>7 <a href="#itchap">Italian</a></dt><dt>8 <a href="#dechap">German</a></dt><dt>9 <a href="#elchap">Greek</a></dt><dt>10 <a href="#enchap">English</a></dt><dt>11 <a href="#jachap">Japanese</a></dt><dt>12 <a href="#rochap">Romanian</a></dt><dt>13 <a href="#ruchap">Russian</a></dt><dt>14 <a href="#nochap">Norsk</a></dt><dt>15 <a href="#nlchap">Dutch</a></dt><dt>16 <a href="#plchap">Polish</a></dt><dt>17 <a href="#ptchap">Portuguese</a></dt><dt>18 <a href="#ptbrchap">Portuguese (Brazilian)</a></dt><dt>19 <a href="#skchap">Slovak</a></dt><dt>20 <a href="#svchap">Swedish</a></dt><dt><a href="#bibl">Bibliography</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="cachap"></a>Capítol 1. Catalan</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2813156"></a>Nota</h3><p>
+This paragraph would be in Catalan, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="cschap"></a>Kapitola 2. Czech</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2855853"></a>Poznámka</h3><p>
+This paragraph would be in Czech, if I knew any.
+&#8222;Quote test.&#8220;
+</p></div><p>
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="dachap"></a>Kapitel 3. Danish</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2768015"></a>Note</h3><p>
+This paragraph would be in Danish, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="eschap"></a>Capítulo 4. Spanish</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2767959"></a>Nota</h3><p>
+This paragraph would be in Spanish, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="fichap"></a>Luku 5. Finnish</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2766806"></a>Huomaa</h3><p>
+This paragraph would be in Finnish, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="frchap"></a>Chapitre 6. French</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2767243"></a>Note</h3><p>
+This paragraph would be in French, if I knew any.
+«Quote test.»
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="itchap"></a>Capitolo 7. Italian</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2767985"></a>Nota</h3><p>
+This paragraph would be in Italian, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="dechap"></a>Kapitel 8. German</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2877066"></a>Anmerkung</h3><p>
+This paragraph would be in German, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="elchap"></a>ÊåöÜëáéï 9. Greek</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2877395"></a>Óçìåßùóç</h3><p>
+This paragraph would be in Greek, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="enchap"></a>Chapter 10. English</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2877728"></a>Note</h3><p>
+This paragraph is in English.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="jachap"></a>&#31532;11&#31456;</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2878067"></a>&#27880;&#24847;</h3><p>
+This paragraph would be in Japanese, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="rochap"></a>Cap. 12. Romanian</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2878406"></a>Notã</h3><p>
+This paragraph would be in Romanian, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ruchap"></a>&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2878745"></a>&#1047;&#1072;&#1084;&#1077;&#1095;&#1072;&#1085;&#1080;&#1077;</h3><p>
+This paragraph would be in Russian, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="nochap"></a>Kapittel 14. Norsk</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879085"></a>Notat</h3><p>
+This paragraph would be in Norsk, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="nlchap"></a>Hoofdstuk 15. Dutch</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879424"></a>Opmerking</h3><p>
+This paragraph would be in Dutch, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="plchap"></a>Rozdzia&#322; 16. Polish</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2879763"></a>Notatka</h3><p>
+This paragraph would be in Polish, if I knew any.
+&#8222;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ptchap"></a>Capítulo 17. Portuguese</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2880102"></a>Nota</h3><p>
+This paragraph would be in Portugeuse, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ptbrchap"></a>Capítulo 18. Portuguese (Brazilian)</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2880442"></a>Nota</h3><p>
+This paragraph would be in Brazilian Portugeuse, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="skchap"></a>Kapitola 19. Slovak</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2880782"></a>Poznámka</h3><p>
+This paragraph would be in Slovak, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="svchap"></a>Kapitel 20. Swedish</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2881122"></a>Not</h3><p>
+This paragraph would be in Swedish, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div id="bibl" class="bibliography"><div class="titlepage"><div><h2 class="title"><a name="bibl"></a>Bibliography</h2></div></div><div id="id2881437" class="biblioentry"><a name="id2881437"></a><p><span class="abbrev">[AhoSethiUllman96] </span><span class="authorgroup">Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </span><span class="title"><I>Compilers, Principles, Techniques, and Tools</I>. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span><span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span><span class="isbn">0-201-10088-6. </span><span class="editor">James T. DeWolf. </span><span class="seriesinfo"><span class="title"><I>Computer Science</I>. </span><span class="editor">Michael A. Harrison. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span></span></p></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/qa.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/qa.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/qa.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>book title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2813195"><div class="titlepage"><div><h1 class="title"><a name="id2813195"></a>book title</h1></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#id2813204">chapter test</a></dt><dd><dl><dt> <a href="#id2767900">Section title</a></dt></dl></dd><dt>A <a href="#id2766786">appendix test</a></dt><dd><dl><dt> <a href="#id2877079">Section title</a></dt></dl></dd></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2813204"></a>Chapter 1. chapter test</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2767900">Section title</a></dt></dl></div><div class="qandaset"><h2 class="title">Q&amp;A Set (unspecified)</h2><dl><dt>1.1 <a href="#id2771346">Q&amp;A Div 1</a></dt><dd><dl><dt>1.Q1 <a href="#id2771364">Question para 1</a></dt></dl></dd><dt>1.2 <a href="#id2771425">Q&amp;A Div 2</a></dt><dd><dl><dt>1.1 <a href="#id2771443">Question para 1</a></dt><dt>1.2 <a href="#id2769500">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2771346"></a>1.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2771364"></a><b>1.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2771393"></a><b>1.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2771425"></a>1.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2771443"></a><b>1.1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2771467"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2769500"></a><b>1.2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2769524"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (none)</h2><dl><dt>1.1 <a href="#id2769571">Q&amp;A Div 1</a></dt><dd><dl><dt>1.Q1 <a href="#id2769587">Question para 1</a></dt></dl></dd><dt>1.2 <a href="#id2769648">Q&amp;A Div 2</a></dt><dd><dl><dt> <a href="#id2769664">Question para 1</a></dt><dt> <a href="#id2769718">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2769571"></a>1.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2769587"></a><b>1.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2769615"></a><b>1.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2769648"></a>1.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2769664"></a><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2769687"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2769718"></a><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2769741"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (number)</h2><dl><dt>1.1 <a href="#id2769794">Q&amp;A Div 1</a></dt><dd><dl><dt>1.Q1 <a href="#id2769551">Question para 1</a></dt></dl></dd><dt>1.2 <a href="#id2813259">Q&amp;A Div 2</a></dt><dd><dl><dt>1.1 <a href="#id2876736">Question para 1</a></dt><dt>1.2 <a href="#id2813293">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2769794"></a>1.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2769551"></a><b>1.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2813227"></a><b>1.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2813259"></a>1.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2876736"></a><b>1.1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2876759"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2813293"></a><b>1.2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2813316"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (qanda)</h2><dl><dt>1.1 <a href="#id2771295">Q&amp;A Div 1</a></dt><dd><dl><dt>1.Q1 <a href="#id2771310">Question para 1</a></dt></dl></dd><dt>1.2 <a href="#id2767776">Q&amp;A Div 2</a></dt><dd><dl><dt>Q: <a href="#id2767792">Question para 1</a></dt><dt>Q: <a href="#id2767846">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2771295"></a>1.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2771310"></a><b>1.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2771339"></a><b>1.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2767776"></a>1.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2767792"></a><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767815"></a><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2767846"></a><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767869"></a><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="section"><a name="id2767900"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2767900"></a>Section title</h2></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (unspecified)</h3><dl><dt>1 <a href="#id2767925">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2767940">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2768002">Q&amp;A Div 2</a></dt><dd><dl><dt>1 <a href="#id2768017">Question para 1</a></dt><dt>2 <a href="#id2768071">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2767925"></a>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2767940"></a><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767969"></a><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2768002"></a>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2768017"></a><b>1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2768040"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2768071"></a><b>2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2768094"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (none)</h3><dl><dt>1 <a href="#id2768152">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2768167">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2768229">Q&amp;A Div 2</a></dt><dd><dl><dt> <a href="#id2768244">Question para 1</a></dt><dt> <a href="#id2768298">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2768152"></a>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2768167"></a><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2768196"></a><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2768229"></a>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2768244"></a><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2768268"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2768298"></a><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2768322"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (number)</h3><dl><dt>1 <a href="#id2768380">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2768124">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2766430">Q&amp;A Div 2</a></dt><dd><dl><dt>1 <a href="#id2766446">Question para 1</a></dt><dt>2 <a href="#id2766500">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2768380"></a>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2768124"></a><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2766397"></a><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2766430"></a>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2766446"></a><b>1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2766469"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2766500"></a><b>2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2766523"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (qanda)</h3><dl><dt>1 <a href="#id2766581">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2766596">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2766658">Q&amp;A Div 2</a></dt><dd><dl><dt>Q: <a href="#id2766673">Question para 1</a></dt><dt>Q: <a href="#id2766727">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2766581"></a>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2766596"></a><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2766624"></a><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2766658"></a>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2766673"></a><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2766696"></a><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2766727"></a><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2766750"></a><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2766786"></a>Appendix A. appendix test</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2877079">Section title</a></dt></dl></div><div class="qandaset"><h2 class="title">Q&amp;A Set (unspecified)</h2><dl><dt>A.1 <a href="#id2766810">Q&amp;A Div 1</a></dt><dd><dl><dt>A.Q1 <a href="#id2766826">Question para 1</a></dt></dl></dd><dt>A.2 <a href="#id2766887">Q&amp;A Div 2</a></dt><dd><dl><dt>A.1 <a href="#id2766903">Question para 1</a></dt><dt>A.2 <a href="#id2766957">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2766810"></a>A.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2766826"></a><b>A.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2766854"></a><b>A.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2766887"></a>A.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2766903"></a><b>A.1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2766926"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2766957"></a><b>A.2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2766980"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (none)</h2><dl><dt>A.1 <a href="#id2767038">Q&amp;A Div 1</a></dt><dd><dl><dt>A.Q1 <a href="#id2767053">Question para 1</a></dt></dl></dd><dt>A.2 <a href="#id2767114">Q&amp;A Div 2</a></dt><dd><dl><dt> <a href="#id2767130">Question para 1</a></dt><dt> <a href="#id2767184">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2767038"></a>A.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2767053"></a><b>A.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767081"></a><b>A.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2767114"></a>A.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2767130"></a><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767153"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2767184"></a><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767207"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (number)</h2><dl><dt>A.1 <a href="#id2767266">Q&amp;A Div 1</a></dt><dd><dl><dt>A.Q1 <a href="#id2767281">Question para 1</a></dt></dl></dd><dt>A.2 <a href="#id2767342">Q&amp;A Div 2</a></dt><dd><dl><dt>A.1 <a href="#id2767358">Question para 1</a></dt><dt>A.2 <a href="#id2767412">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2767266"></a>A.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2767281"></a><b>A.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767309"></a><b>A.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2767342"></a>A.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2767358"></a><b>A.1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767381"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2767412"></a><b>A.2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767435"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (qanda)</h2><dl><dt>A.1 <a href="#id2767494">Q&amp;A Div 1</a></dt><dd><dl><dt>A.Q1 <a href="#id2767509">Question para 1</a></dt></dl></dd><dt>A.2 <a href="#id2767570">Q&amp;A Div 2</a></dt><dd><dl><dt>Q: <a href="#id2767586">Question para 1</a></dt><dt>Q: <a href="#id2766558">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2767494"></a>A.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2767509"></a><b>A.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767537"></a><b>A.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2767570"></a>A.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2767586"></a><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767609"></a><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2766558"></a><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877047"></a><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="section"><a name="id2877079"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2877079"></a>Section title</h2></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (unspecified)</h3><dl><dt>1 <a href="#id2877103">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2877118">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2877180">Q&amp;A Div 2</a></dt><dd><dl><dt>1 <a href="#id2877195">Question para 1</a></dt><dt>2 <a href="#id2877249">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2877103"></a>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2877118"></a><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877147"></a><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2877180"></a>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2877195"></a><b>1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877219"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2877249"></a><b>2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877273"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (none)</h3><dl><dt>1 <a href="#id2877322">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2877338">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2877399">Q&amp;A Div 2</a></dt><dd><dl><dt> <a href="#id2877415">Question para 1</a></dt><dt> <a href="#id2877469">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2877322"></a>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2877338"></a><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877366"></a><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2877399"></a>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2877415"></a><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877438"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2877469"></a><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877492"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (number)</h3><dl><dt>1 <a href="#id2877542">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2877557">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2877619">Q&amp;A Div 2</a></dt><dd><dl><dt>1 <a href="#id2877634">Question para 1</a></dt><dt>2 <a href="#id2877688">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2877542"></a>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2877557"></a><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877586"></a><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2877619"></a>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2877634"></a><b>1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877658"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2877688"></a><b>2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877712"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (qanda)</h3><dl><dt>1 <a href="#id2877762">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2877777">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2877838">Q&amp;A Div 2</a></dt><dd><dl><dt>Q: <a href="#id2877854">Question para 1</a></dt><dt>Q: <a href="#id2877908">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2877762"></a>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2877777"></a><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877805"></a><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2877838"></a>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2877854"></a><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877877"></a><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2877908"></a><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2877931"></a><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/qa2.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/qa2.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/qa2.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>book title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2767885"><div class="titlepage"><div><h1 class="title"><a name="id2767885"></a>book title</h1></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#id2767895">chapter test</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2767895"></a>Chapter 1. chapter test</h2></div></div><p>Test a cross reference to a question: <a href="#q1" title="">Q: 1.Q1</a>.
+</p><div class="qandaset"><h2 class="title">Q&amp;A Set (unspecified)</h2><dl><dt>1.1 <a href="#id2770495">Q&amp;A Div 1</a></dt><dd><dl><dt>1.Q1 <a href="#q1">Question para 1</a></dt></dl></dd><dt>1.2 <a href="#id2770698">Q&amp;A Div 2</a></dt><dd><dl><dt>1.1 <a href="#id2770715">Question para 1</a></dt><dt>1.2 <a href="#id2767602">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2770495"></a>1.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="q1"></a><b>1.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="a1"></a><b>1.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2770698"></a>1.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2770715"></a><b>1.1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2770739"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2767602"></a><b>1.2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2767626"></a><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/sectest.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/sectest.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/sectest.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,555 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Book Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"></a>Book Title</h1></div><div><h3 class="corpauthor">Some Corporation</h3></div><div><h3 class="author">Norman Walsh</h3></div><div><p class="copyright">Copyright © 1998 Norman Walsh</p></div><div><div class="legalnotice"><p class="legalnotice-title"><b>Legal Notice</b></p><p>This is a test document. You can do what you will with it.</p></div></div><div><div class="legalnotice"><p>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </p></div></div><hr></div><div id="id2601240" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2601240"></a>Dedication</h2></div></div><p>This test book is dedicated to all the testers.  This is the first para
+of the dedication.</p><p>This is the second para of the dedication.</p><p>This is the third para of the dedication.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2876683">Preface Title</a></dt><dt>1 <a href="#chapter">XRef Tests</a></dt><dd><dl><dt> <a href="#id2767851">Section 1 Title</a></dt><dt> <a href="#id2767183">Section 1 Title</a></dt></dl></dd></dl></div><div id="id2876683" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2876683"></a>Preface Title</h2></div></div><p>Preface content.</p><p>This is the second para of the preface.</p><p>This is the third para of the preface.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"></a>Chapter 1. XRef Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2767851">Section 1 Title</a></dt><dt> <a href="#id2767183">Section 1 Title</a></dt></dl></div><h4>Xrefs</h4><table class="simplelist" border="0" summary="Simple list"><tr><td><a href="#book" title="Book Title">Book Title</a></td></tr><tr><td>???</td></tr><tr><td><a href="#chapter" title="Chapter 1. XRef Tests">Chapter 1. XRef Tests</a></td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr></table><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><div class="section"><a name="id2767851"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2767851"></a>Section 1 Title</h2></div></div><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p></div><div class="section"><a name="id2767183"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2767183"></a>Section 1 Title</h2></div></div><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/set.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/set.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/set.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Set Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="set" id="id2855632"><div class="titlepage"><div><h1 class="title"><a name="id2855632"></a>Set Title</h1></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2855642">Book Test Document Title</a></dt><dd><dl><dt> <a href="#id2855698">Foreword</a></dt><dt>1 <a href="#chapter">Section Tests</a></dt><dd><dl><dt> <a href="#id2813086">First Sect1</a></dt><dt> <a href="#id2813106">Second Sect1</a></dt><dt> <a href="#id2813127">Third Sect1</a></dt></dl></dd><dt>A <a href="#id2813150">First Appendix</a></dt><dd><dl><dt> <a href="#id2813170">First Sect1</a></dt><dt> <a href="#id2876574">Second Sect1</a></dt><dt> <a href="#id2876606">Third Sect1</a></dt></dl></dd></dl></dd><dt> <a href="#id2855715">Book Test Document Title</a></dt><dd><dl><dt> <a href="#id2855772">Foreword</a></dt><dt>1 <a href="#id2769335">Section Tests</a></dt><dd><dl><dt> <a href="#id2769349">First Sect1</a></dt><dt> <a href="#id2769370">Second Sect1</a></dt><dt> <a href="#id2769391">Third Sect1</a></dt></dl></dd><dt>A <a href="#id2769414">First Appendix</a></dt></dl></dd></dl></div><div class="book" id="id2855642"><div class="titlepage"><div><h1 class="title"><a name="id2855642"></a>Bookinfo Test Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2855698">Foreword</a></dt><dt>1 <a href="#chapter">Section Tests</a></dt><dd><dl><dt> <a href="#id2813086">First Sect1</a></dt><dt> <a href="#id2813106">Second Sect1</a></dt><dt> <a href="#id2813127">Third Sect1</a></dt></dl></dd><dt>A <a href="#id2813150">First Appendix</a></dt><dd><dl><dt> <a href="#id2813170">First Sect1</a></dt><dt> <a href="#id2876574">Second Sect1</a></dt><dt> <a href="#id2876606">Third Sect1</a></dt></dl></dd></dl></div><div id="id2855698" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2855698"></a>Foreword</h2></div></div><p>This is a test paragraph.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"></a>Chapter 1. Section Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2813086">First Sect1</a></dt><dt> <a href="#id2813106">Second Sect1</a></dt><dt> <a href="#id2813127">Third Sect1</a></dt></dl></div><div class="sect1"><a name="id2813086"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2813086"></a>First Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2813106"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2813106"></a>Second Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2813127"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2813127"></a>Third Sect1</h2></div></div><p>Paragraph.</p></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2813150"></a>Appendix A. First Appendix</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2813170">First Sect1</a></dt><dt> <a href="#id2876574">Second Sect1</a></dt><dt> <a href="#id2876606">Third Sect1</a></dt></dl></div><p>This is just a test.</p><div class="sect1"><a name="id2813170"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2813170"></a>First Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2876574"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2876574"></a>Second Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2876606"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2876606"></a>Third Sect1</h2></div></div><p>Paragraph.</p></div></div></div><div class="book" id="id2855715"><div class="titlepage"><div><h1 class="title"><a name="id2855715"></a>Bookinfo Test Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2855772">Foreword</a></dt><dt>1 <a href="#id2769335">Section Tests</a></dt><dd><dl><dt> <a href="#id2769349">First Sect1</a></dt><dt> <a href="#id2769370">Second Sect1</a></dt><dt> <a href="#id2769391">Third Sect1</a></dt></dl></dd><dt>A <a href="#id2769414">First Appendix</a></dt></dl></div><div id="id2855772" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2855772"></a>Foreword</h2></div></div><p>This is a test paragraph.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2769335"></a>Chapter 1. Section Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2769349">First Sect1</a></dt><dt> <a href="#id2769370">Second Sect1</a></dt><dt> <a href="#id2769391">Third Sect1</a></dt></dl></div><div class="sect1"><a name="id2769349"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2769349"></a>First Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2769370"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2769370"></a>Second Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2769391"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2769391"></a>Third Sect1</h2></div></div><p>Paragraph.</p></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2769414"></a>Appendix A. First Appendix</h2></div></div><p>This is just a test.</p></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/table.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/table.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/table.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Chapter 1. test</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ch1"></a>Chapter 1. test</h2></div></div><p>How many ° can you ©.</p><div class="table"><p><a name="id2769417"></a><b>Table 1.1. A Table</b></p><table summary="A Table" border="1"><colgroup><col><col align="right"><col></colgroup><tbody><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td rowspan="2">2</td><td>3</td></tr><tr><td>1</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr></tbody></table></div><div class="table"><p><a name="id2855761"></a><b>Table 1.2. A Table</b></p><table summary="A Table" border="1" width="4in"><colgroup><col><col align="right"><col></colgroup><tbody><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td rowspan="2">2</td><td>3</td></tr><tr><td>1</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr></tbody></table></div><div class="table"><p><a name="id2767675"></a><b>Table 1.3. A Table</b></p><table summary="A Table" border="1" width="7in"><colgroup><col><col align="right"><col></colgroup><tbody><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td rowspan="2">2</td><td>3</td></tr><tr><td>1</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr></tbody></table></div><div class="table"><p><a name="id2768046"></a><b>Table 1.4. A Table</b></p><table summary="A Table" border="1" width="85%"><colgroup><col><col align="right"><col></colgroup><tbody><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td rowspan="2">2</td><td>3</td></tr><tr><td>1</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr></tbody></table></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/test.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/test.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/test.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Article Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><meta name="keywords" content="keyword1, keyword2, keyword3"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2767885"></a>Article Title</h2></div><hr></div><pre class="screen">This
+  is                  With a line-annotation
+    a 
+     screen<a name="foo"></a><img src="../images/callouts/1.png" alt="1" border="0">
+     This
+    is                With a line-annotation
+  a 
+screen
+This
+  is                  With a line-annotation
+    a 
+     screen</pre><p>What about <a href="#foo" title=""><img src="../images/callouts/1.png" alt="1" border="0"></a>?</p><div class="mediaobjectco"><img src="http://maps.example.com/EARTH?USA?MA?AMHERST"></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/testmath.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/testmath.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/testmath.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Book Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2670786">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2670786"></a>Book Title</h1></div>
+<hr>
+</div>
+<div id="id2678891" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2678891"></a>
+<fake>Chapter 1.</fake> Chapter Title</h2></div></div>
+<p>Here are two representations of x^2 + 4x + 4 = 0.</p>
+<div class="equation">
+<p>
+<a name="id2687892"></a>
+<b><fake>
+<fake>Equation 1.1.</fake> Presentational MathML</fake></b>
+</p>
+<font color="red">&lt;mml:math&gt;<font color="red">&lt;mml:mrow&gt;
+       <font color="red">&lt;mml:mrow&gt;
+             <font color="red">&lt;mml:msup&gt; <font color="red">&lt;mml:mi&gt;x&lt;/mml:mi&gt;</font> <font color="red">&lt;mml:mn&gt;2&lt;/mml:mn&gt;</font> &lt;/mml:msup&gt;</font> <font color="red">&lt;mml:mo&gt;+&lt;/mml:mo&gt;</font>
+                 <font color="red">&lt;mml:mrow&gt;
+                   <font color="red">&lt;mml:mn&gt;4&lt;/mml:mn&gt;</font>
+                   <font color="red">&lt;mml:mo&gt;&lt;/mml:mo&gt;</font>
+                   <font color="red">&lt;mml:mi&gt;x&lt;/mml:mi&gt;</font>
+                 &lt;/mml:mrow&gt;</font>
+         <font color="red">&lt;mml:mo&gt;+&lt;/mml:mo&gt;</font>
+         <font color="red">&lt;mml:mn&gt;4&lt;/mml:mn&gt;</font>
+       &lt;/mml:mrow&gt;</font>
+         <font color="red">&lt;mml:mo&gt;=&lt;/mml:mo&gt;</font>
+         <font color="red">&lt;mml:mn&gt;0&lt;/mml:mn&gt;</font>
+     &lt;/mml:mrow&gt;</font>
+&lt;/mml:math&gt;</font>
+</div>
+<div class="equation">
+<p>
+<a name="id2599743"></a>
+<b><fake>
+<fake>Equation 1.2.</fake> Semantic MathML</fake></b>
+</p>
+<font color="red">&lt;mml:math&gt;<font color="red">&lt;mml:apply&gt;
+             <font color="red">&lt;mml:plus&gt;&lt;/mml:plus&gt;</font>
+             <font color="red">&lt;mml:apply&gt;
+                 <font color="red">&lt;mml:power&gt;&lt;/mml:power&gt;</font>
+                 <font color="red">&lt;mml:ci&gt;x&lt;/mml:ci&gt;</font>
+                 <font color="red">&lt;mml:cn&gt;2&lt;/mml:cn&gt;</font>
+             &lt;/mml:apply&gt;</font>
+             <font color="red">&lt;mml:apply&gt;
+                 <font color="red">&lt;mml:times&gt;&lt;/mml:times&gt;</font>
+                 <font color="red">&lt;mml:cn&gt;4&lt;/mml:cn&gt;</font>
+                 <font color="red">&lt;mml:ci&gt;x&lt;/mml:ci&gt;</font>
+             &lt;/mml:apply&gt;</font>
+            <font color="red">&lt;mml:cn&gt;4&lt;/mml:cn&gt;</font>
+         &lt;/mml:apply&gt;</font>
+&lt;/mml:math&gt;</font>
+</div>
+</div>
+</div></body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/verbtest.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/verbtest.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/html/verbtest.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title>Book Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"></a>Book Title</h1></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#ch1">test</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ch1"></a>Chapter 1. test</h2></div></div><p>How many ° can you ©.</p><p>And what about <a href="#ch1" title="Chapter 1. test">Chapter 1. test</a>.</p><p>And what about ???.</p><pre class="programlisting">
+This is a program
+listing.
+</pre></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Article Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2602135"/>Article Test Document Title</h2></div><div><h3 class="corpauthor">nwalsh</h3><h3 class="author">Norman Walsh</h3><h3 class="othercredit">Other Credit</h3><h4 class="editedby">Edited by</h4><h3 class="editor">Someother Editor</h3><h3 class="author">Someone Else</h3></div><div><p class="copyright">Copyright © 1999 Norman Walsh</p></div><div><p class="pubdate">Apr. 26, 1999</p></div><div><div class="abstract"><p><a name="id2787379"/><b>Abstract</b></p><p>This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p></div></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2788065">First level section</a></dt><dd><dl><dt> <a href="#id2788076">Second level section</a></dt></dl></dd><dt>A <a href="#id2788190">Appendix</a></dt></dl></div><p>
+This is a &#8220;short quote&#8221;.
+This is a &#8220;Quotation with a &#8216;nested quotation
+containing a &#8220;nested quotation and another &#8216;nested
+quotation&#8217;&#8221;&#8217;&#8221;.
+</p><div class="literallayout">This is a <i>literal layout</i><br/>
+  It'll be a &lt;pre&gt; until the <tt>chunk.pl</tt><br/>
+script    fixes   things    up.</div><p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p><div class="figure"><p><a name="testfig"/><b>Figure 1. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div><p>This para contains an xref to a figure: <a href="#testfig" title="Figure 1. Test Figure">Figure 1. Test Figure</a>.
+</p><div class="figure"><p><a name="testfig2"/><b>Figure 2. Test Figure2</b></p><pre class="programlisting">A Second
+  Test Figure
+</pre></div><p>This para contains an <a href="#testfig2" title="Figure 2. Test Figure2">link</a> to a 
+figure.
+</p><div class="itemizedlist"><ul><li><p><a name="id2787964"/>Test item.</p></li><li><p><a name="id2787974"/>Test item.</p></li><li><p><a name="id2787984"/>Test item.</p></li></ul></div><div class="orderedlist"><ol type="1"><li><p><a name="id2788019"/>Test item.</p></li><li><p><a name="id2788029"/>Test item.</p></li><li><p><a name="id2788040"/>Test item.</p></li></ol></div><p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p><div class="section"><a name="id2788065"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2788065"/>First level section</h2></div></div><div class="section"><a name="id2788076"/><div class="titlepage"><div><h3 class="title"><a name="id2788076"/>Second level section</h3></div></div><div class="section"><a name="id2788088"/><div class="titlepage"><div><h4 class="title"><a name="id2788088"/>Third level section</h4></div></div><div class="section"><a name="id2788100"/><div class="titlepage"><div><h5 class="title"><a name="id2788100"/>Fourth level section</h5></div></div><div class="section"><a name="id2788111"/><div class="titlepage"><div><h6 class="title"><a name="id2788117"/>Fifth level section (SI)</h6></div></div><div class="section"><a name="id2788141"/><div class="titlepage"><div><h6 class="title"><a name="id2788141"/>Sixth level section</h6></div></div><div class="section"><a name="id2788153"/><div class="titlepage"><div><h6 class="title"><a name="id2788153"/>Seventh level section</h6></div></div><p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p></div></div></div></div></div></div></div><div class="appendix"><h2 class="title" style="clear: both"><a name="id2788190"/>A. Appendix</h2><p>This is just a test.</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article2.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article2.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article2.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Article Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2602977"/>Article Test Document Title</h2></div><div><h3 class="author">Norman Walsh</h3></div><div><p class="copyright">Copyright © 1999 Norman Walsh</p></div><div><p class="pubdate">Apr. 26, 1999</p></div><div><div class="abstract"><p><a name="id2800657"/><b>Abstract</b></p><p>This article is just a test. This <i>article</i>
+is just a test. 
+This <b><tt>article</tt></b> is just a test.
+This <tt>&lt;<a href="mailto:ndw at nwalsh.com">ndw at nwalsh.com</a>&gt;</tt> is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p></div></div><hr/></div><p>This article is just a test. This <i>article</i>
+is just a test. 
+This <b><tt>article</tt></b> is just a test.
+This <tt>&lt;<a href="mailto:ndw at nwalsh.com">ndw at nwalsh.com</a>&gt;</tt> is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p><div class="table"><p><a name="id2787411"/><b>Table 1. This is a test table</b></p><table summary="This is a test table" border="1"><colgroup><col/><col align="right"/><col/></colgroup><thead><tr><th>Head1</th><th align="center">Head2</th><th>Head3</th></tr></thead><tbody><tr><td>Entry1</td><td>Entry2</td><td>Entry3</td></tr><tr><td>Entry1</td><td colspan="2" align="center">span 2-3</td></tr><tr><td>Entry1</td><td rowspan="3" valign="middle">morerows2</td><td>Entry3</td></tr><tr><td>Entry1</td><td>Entry3</td></tr><tr><td>Entry1</td><td>Entry3</td></tr><tr><td colspan="3" align="center">fullspan</td></tr><tr align="center"><td>Entry1</td><td>Entry2</td><td align="left">Entry3</td></tr><tr><td>Entry1</td><td>Entry2</td><td>Entry3</td></tr><tr><td>Entry1</td><td>Entry2</td><td>Entry3</td></tr></tbody></table></div><div class="variablelist"><dl><dt><a name="id2787770"/><span class="term">term</span></dt><dd><p><a name="id2787781"/>some text</p></dd><dt><a name="id2787798"/><span class="term">term2a, </span><span class="term">term2b</span></dt><dd><p><a name="id2787815"/>some text</p></dd><dt><a name="id2787832"/><span class="term">term3</span></dt><dd><p><a name="id2787843"/>some text</p><p>some text</p><p>some text</p></dd></dl></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article3.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article3.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/article3.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Article Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2602977"/>Article Test Document Title</h2></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2800537">First level section</a></dt><dd><dl><dt> <a href="#id2800550">Second level section</a></dt></dl></dd><dt> <a href="#id2787374">Another Section</a></dt><dt> <a href="#id2787408">Another Section</a></dt><dd><dl><dt> <a href="#id2787420">Another Section</a></dt></dl></dd><dt> <a href="#id2787456">Another Section</a></dt><dd><dl><dt> <a href="#id2787468">Another Section</a></dt></dl></dd></dl></div><p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p><div class="section"><a name="id2800537"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2800537"/>First level section</h2></div></div><div class="section"><a name="id2800550"/><div class="titlepage"><div><h3 class="title"><a name="id2800550"/>Second level section</h3></div></div><div class="section"><a name="id2800560"/><div class="titlepage"><div><h4 class="title"><a name="id2800647"/>Third level section</h4></div></div><div class="section"><a name="id2800662"/><div class="titlepage"><div><h5 class="title"><a name="id2800662"/>Fourth level section</h5></div></div><div class="section"><a name="id2800674"/><div class="titlepage"><div><h6 class="title"><a name="id2787341"/>Fifth level section</h6></div></div><p>This is just a test.</p></div></div></div></div></div><div class="section"><a name="id2787374"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2787374"/>Another Section</h2></div></div><div class="simplesect"><a name="id2787385"/><div class="titlepage"><div><h3 class="title"><a name="id2787385"/>SimpleSect @ level 2</h3></div></div><p>This is just a test.</p></div></div><div class="section"><a name="id2787408"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2787408"/>Another Section</h2></div></div><div class="section"><a name="id2787420"/><div class="titlepage"><div><h3 class="title"><a name="id2787420"/>Another Section</h3></div></div><div class="simplesect"><a name="id2787431"/><div class="titlepage"><div><h4 class="title"><a name="id2787431"/>SimpleSect @ level 3</h4></div></div><p>This is just a test.</p></div></div></div><div class="section"><a name="id2787456"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2787456"/>Another Section</h2></div></div><div class="section"><a name="id2787468"/><div class="titlepage"><div><h3 class="title"><a name="id2787468"/>Another Section</h3></div></div><div class="section"><a name="id2787479"/><div class="titlepage"><div><h4 class="title"><a name="id2787479"/>Another Section</h4></div></div><div class="simplesect"><a name="id2787491"/><div class="titlepage"><div><h5 class="title"><a name="id2787491"/>SimpleSect @ level 4</h5></div></div><p>This is just a test.</p></div></div></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/bib.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/bib.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/bib.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Test Book</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"/>Test Book</h1></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#bib1">A Test Bibliography</a></dt></dl></div><div id="bib1" class="bibliography"><div class="titlepage"><div><h2 class="title"><a name="bib1"/>A Test Bibliography</h2></div></div><p>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</p><div class="bibliodiv"><h3 class="title"><a name="id2832922">Books</a></h3><div id="id2832936" class="biblioentry"><a name="id2832936"/><p><span class="abbrev">[AhoSethiUllman96] </span><span class="authorgroup">Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </span><span class="title"><I>Compilers, Principles, Techniques, and Tools</I>. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span><span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span><span class="isbn">0-201-10088-6. </span><span class="editor">James T. DeWolf. </span><span class="seriesinfo"><span class="title"><I>Computer Science</I>. </span><span class="editor">Michael A. Harrison. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span></span></p></div></div><div class="bibliodiv"><h3 class="title"><a name="id2790118">Periodicals</a></h3><div id="walsh97" class="biblioentry"><a name="walsh97"/><p><span class="abbrev">[Walsh97] </span><span class="biblioset">&#8220;A Guide to XML&#8221;. <span class="author">Norman Walsh. </span><span class="pubdate">1997. </span><span class="copyright">Copyright © 1997 ArborText, Inc.. </span><span class="pagenums">97-108. </span></span><span class="biblioset"><I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span><span class="issn">1085-2301. </span><span class="editor">Dan Connolly. </span></span></p></div><div id="walsh96" class="bibliomixed"><a name="walsh96"/><p>  <span class="bibliomset">    <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+    &#8220;Introduction to Cascading Style Sheets&#8221;.
+  </span>
+  <span class="bibliomset">    <I>The World Wide Web Journal</I>.
+    <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+    <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+    <span class="corpname">The World Wide Web Consortium</span>.
+    <span class="pubdate">Winter, 1996</span></span>.</p></div><div id="id2790328" class="biblioentry"><a name="id2790328"/><p><span class="abbrev">[Abbrev] </span><span class="title"><I>A Really Full BiblioEntry</I>. </span><span class="subtitle">Subtitle. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span><span class="artpagenums">ArtPageNums. </span><span class="author">AuthorFirstname AuthorSurname. </span><span class="authorinitials">AuthorInitials. </span><span class="collab"><span class="collabname">The names of some collaborators. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span><span class="confgroup"><span class="confdates">confdates. </span><span class="conftitle">conftitle. </span><span class="confnum">confnum. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="confsponsor">confsponsor. </span>. </span><span class="contractnum">ContractNum. </span><span class="contractsponsor">ContractSponsor. </span><span class="contrib">Contrib. </span><span class="copyright">Copyright © 1998 Copyright holder. </span><span class="corpname">CorpName. </span><span class="date">Date. </span><span class="edition">Edition. </span><span class="editor">EditorFirstName EditorSurname. </span><span class="firstname">FirstName. </span><span class="honorific">Honorific. </span><span class="isbn">ISBN. </span><span class="issn">ISSN. </span><span class="invpartnumber">InvPartNumber. </span><span class="issuenum">IssueNum. </span><span class="lineage">Lineage. </span><span class="orgname">OrgName. </span><span class="othercredit"><span class="firstname">OCFirstName. </span><span class="surname">OCSurname. </span>. </span><span class="othername">OtherName. </span><span class="pagenums">PageNums. </span><span class="productname">ProductName. </span><span class="productnumber">ProductNumber. </span><span class="pubdate">PubDate. </span><span class="publisher"><span class="publishername">PubPublisherName. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span></span><span class="publishername">PublisherName. </span><span class="pubsnumber">PubsNumber. </span><span class="releaseinfo">ReleaseInfo. </span><span class="revhistory"><tr><td align="left">Revision 1.0</td><td align="left">20 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.9</td><td align="left">19 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.4</td><td align="left">18 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span><span class="seriesinfo"><span class="title"><I>SeriesInfo Title</I>. </span><span class="editor">SeriesInfo Editor Firstname SeriesInfo Editor Surname. </span></span><span class="seriesvolnums">SeriesVolNums. </span><span class="surname">Surname. </span><span class="titleabbrev">TitleAbbrev. </span><span class="volumenum">VolumeNum. </span></p></div></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Book Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2874261"><div class="titlepage"><div><h1 class="title"><a name="id2874261"/>Bookinfo Test Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3><h3 class="author">John Doe</h3></div><div><p class="releaseinfo">Some releaseinfo</p></div><div><p class="copyright">Copyright © 2000 Norman Walsh</p></div><div><div class="legalnotice"><p>Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+</p></div></div><div><p class="pubdate">16 December 2000</p></div><div><div class="abstract"><p><a name="id2832975"/><b>Abstract</b></p><p>Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</p><p>Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</p></div></div><hr/></div><div id="id2833041" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2833041"/>First Dedication</h2></div></div><p>Just a test. &#8220;What about&#8212;this?&#8221;</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p></div><div id="id2790541" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2790541"/>Dedication</h2></div></div><p>Just a test dedication.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2790236">Foreword</a></dt><dt> <a href="#id2790334"/></dt><dt>I <a href="#id2790350">Part One Title</a></dt><dd><dl><dt>1 <a href="#chapter">Section Tests</a></dt><dd><dl><dt> <a href="#id2792477">First Sect1</a></dt><dt> <a href="#id2792550">Second Sect1</a></dt><dt> <a href="#id2792571">Third Sect1</a></dt></dl></dd></dl></dd><dt>2 <a href="#id2792647">First Chapter</a></dt><dt>3 <a href="#id2792739">Second Chapter</a></dt><dt>4 <a href="#id2793042">Third Chapter</a></dt><dt>A <a href="#id2793063">First Appendix</a></dt><dt>B <a href="#id2790501">Second Appendix</a></dt></dl></div><div id="id2790236" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2790236"/>Foreword</h2></div></div><p>This is a test paragraph.</p></div><div id="id2790334" class="preface"><div class="titlepage"/><p>This is a test preface.</p></div><div class="part" id="id2790350"><div class="titlepage"><div><h1 class="title"><a name="id2790350"/>Part One Title</h1></div><div><div class="legalnotice"><p>Foo! A legal notice in a part!</p></div></div></div><div class="partintro"><div><div><h1 class="title"><a name="id2790394"/>PartIntro Title</h1></div></div><p>Partintro content<sup>[<a name="id2790415" href="#ftn.id2790415">1</a>]</sup>.</p><div class="sect1"><a name="id2790431"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790431"/>PartIntro Section</h2></div></div><p>PartIntros can actually have section content as well.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#chapter">Section Tests</a></dt><dd><dl><dt> <a href="#id2792477">First Sect1</a></dt><dt> <a href="#id2792550">Second Sect1</a></dt><dt> <a href="#id2792571">Third Sect1</a></dt></dl></dd></dl></div><div class="footnotes"><br/><hr width="100" align="left"/><div class="footnote"><p><sup>[<a name="ftn.id2790415" href="#id2790415">1</a>] </sup>This is a footnote in a partintro.</p></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"/>Chapter 1. Section <a name="stestfoo"/>Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2792477">First Sect1</a></dt><dt> <a href="#id2792550">Second Sect1</a></dt><dt> <a href="#id2792571">Third Sect1</a></dt></dl></div><div class="sect1"><a name="id2792477"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2792477"/>First Sect1</h2></div></div><p>Paragraph.</p><div class="figure"><p><a name="testfig1"/><b>Figure 1.1. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div></div><div class="sect1"><a name="id2792550"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2792550"/>Second Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2792571"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2792571"/>Third Sect1</h2></div></div><p>Paragraph.</p><div class="figure"><p><a name="testfig2"/><b>Figure 1.2. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2792647"/>Chapter 2. First Chapter</h2></div><div><h3 class="subtitle"><i>Chapter Subtitle</i></h3></div></div><p>This is a test paragraph.</p><div class="figure"><p><a name="testfig3"/><b>Figure 2.1. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2792739"/>Chapter 3. Second Chapter</h2></div></div><p>This is a test paragraph.
+<a class="indexterm" name="id2792757"/>
+<a class="indexterm" name="id2792781"/>
+
+<a class="indexterm" name="id2792805"/>
+<a class="indexterm" name="id2792837"/>
+
+<a class="indexterm" name="id2792861"/>
+
+<a class="indexterm" name="id2792900"/>
+<a class="indexterm" name="id2792924"/>
+
+<a class="indexterm" name="id2792953"/>
+<a class="indexterm" name="id2792985"/>
+<a class="indexterm" name="id2793017"/></p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2793042"/>Chapter 4. Third Chapter</h2></div></div><p>This is a test paragraph.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2793063"/>Appendix A. First Appendix</h2></div></div><p>This is just a test.</p><div class="figure"><p><a name="testfig4"/><b>Figure A.1. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2790501"/>Appendix B. Second Appendix</h2></div></div><p>This is just a test.
+<a class="indexterm" name="id2792684"/>
+<a class="indexterm" name="id2787359"/>
+
+<a class="indexterm" name="id2787380"/>
+<a class="indexterm" name="id2787411"/>
+
+<a class="indexterm" name="id2787434"/>
+<a class="indexterm" name="id2787473"/>
+
+<a class="indexterm" name="id2787496"/>
+<a class="indexterm" name="id2787526"/>
+<a class="indexterm" name="id2787557"/></p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book2.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book2.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book2.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,591 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Book Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"/>Book Title</h1></div><div><h3 class="corpauthor">Some Corporation</h3></div><div><h3 class="author">Norman Walsh</h3></div><div><p class="copyright">Copyright © 1998 Norman Walsh</p></div><div><div class="legalnotice"><p class="legalnotice-title"><b>Legal Notice</b></p><p>This is a test document. You can do what you will with it.</p></div></div><div><div class="legalnotice"><p>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </p></div></div><hr/></div><div id="id2833006" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2833006"/>Dedication</h2></div></div><p>This test book is dedicated to all the testers.  This is the first para
+of the dedication.</p><p>This is the second para of the dedication.</p><p>This is the third para of the dedication.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2833037">Preface Title</a></dt><dt>I <a href="#id2790026">Part One Title</a></dt><dd><dl><dt>1 <a href="#chapter">XRef Tests</a></dt><dt>2 <a href="#stchap">Section Tests</a></dt><dd><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2787736">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2788369">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></dd><dt>3 <a href="#id2787837">Inline Tests</a></dt><dt>4 <a href="#id2899468">Block Tests</a></dt><dt>5 <a href="#id2901154">List Tests</a></dt><dt>6 <a href="#id2904867">Table Tests</a></dt><dt>7 <a href="#id2910544">Index Term Tests</a></dt><dd><dl><dt> <a href="#id2910627">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2910976">Index Term Sect 2</a></dt><dt> <a href="#id2911143">Index Term Sect 3</a></dt></dl></dd></dl></dd></dl></dd><dt>II <a href="#part">Part Two Title</a></dt><dd><dl><dt>8 <a href="#id2911195">CmdSynopsis Tests</a></dt><dt>9 <a href="#id2912508">FuncSynopsis Tests</a></dt><dt>10 <a href="#id2912864">Callout Tests</a></dt></dl></dd><dt>III <a href="#id2913456">A Reference Part</a></dt><dd><dl><dt>I <a href="#reference">Reference</a></dt><dd><dl><dt><a href="#id2913493">RefEntryTitle</a></dt><dt><a href="#id2913684"><tt>Chop</tt></a></dt></dl></dd></dl></dd><dt>A <a href="#appendix">A Very Short Appendix</a></dt><dt>B <a href="#id2913814">A Very Long Appendix</a></dt><dd><dl><dt> <a href="#id2914465">a sect1 title</a></dt><dd><dl><dt> <a href="#id2914495">a sect2 title</a></dt></dl></dd><dt> <a href="#id2914635">another sect1 title</a></dt><dd><dl><dt> <a href="#id2914689">another sect2 title</a></dt></dl></dd><dt> <a href="#id2914924">another sect1 title</a></dt><dt> <a href="#id2914957">another sect1 title</a></dt></dl></dd><dt><a href="#bib1">A Test Bibliography</a></dt><dt><a href="#gloss">Example Glossary</a></dt><dt><a href="#index">Index</a></dt><dt><a href="#id2917042">An Index with a Title</a></dt></dl></div><div id="id2833037" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2833037"/>Preface Title</h2></div></div><p>Preface content.</p><p>This is the second para of the preface.</p><p>This is the third para of the preface.</p></div><div class="part" id="id2790026"><div class="titlepage"><div><h1 class="title"><a name="id2790026"/>Part One Title</h1></div><div><div class="legalnotice"><p>Foo! A legal notice in a part!</p></div></div></div><div class="partintro"><div><div><h1 class="title"><a name="id2790071"/>PartIntro Title</h1></div></div><p>Partintro content<sup>[<a name="id2790091" href="#ftn.id2790091">1</a>]</sup>.</p><div class="sect1"><a name="id2790108"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790108"/>PartIntro Section</h2></div></div><p>PartIntros can actually have section content as well.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#chapter">XRef Tests</a></dt><dt>2 <a href="#stchap">Section Tests</a></dt><dd><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2787736">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2788369">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></dd><dt>3 <a href="#id2787837">Inline Tests</a></dt><dt>4 <a href="#id2899468">Block Tests</a></dt><dt>5 <a href="#id2901154">List Tests</a></dt><dt>6 <a href="#id2904867">Table Tests</a></dt><dt>7 <a href="#id2910544">Index Term Tests</a></dt><dd><dl><dt> <a href="#id2910627">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2910976">Index Term Sect 2</a></dt><dt> <a href="#id2911143">Index Term Sect 3</a></dt></dl></dd></dl></dd></dl></div><div class="footnotes"><br/><hr width="100" align="left"/><div class="footnote"><p><sup>[<a name="ftn.id2790091" href="#id2790091">1</a>] </sup>This is a footnote in a partintro.</p></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"/>Chapter 1. XRef Tests</h2></div></div><h4>Xrefs</h4><table class="simplelist" border="0" summary="Simple list"><tr><td><a href="#book" title="Book Title">Book Title</a></td></tr><tr><td><a href="#part" title="Part II. Part Two Title">Part II. Part Two Title</a></td></tr><tr><td><a href="#chapter" title="Chapter 1. XRef Tests">Chapter 1. XRef Tests</a></td></tr><tr><td><a href="#appendix" title="Appendix A. A Very Short Appendix">Appendix A. A Very Short Appendix</a></td></tr><tr><td><a href="#table" title="Table 4.1. A Table">Table 4.1. A Table</a></td></tr><tr><td><a href="#figure" title="Figure 4.1. A Figure">Figure 4.1. A Figure</a></td></tr><tr><td><a href="#example" title="Example 4.1. An Example">Example 4.1. An Example</a></td></tr><tr><td><a href="#equation" title="Equation 4.1. An Equation"></a></td></tr><tr><td><a href="#reference" title="Reference">Reference</a></td></tr><tr><td><a href="#bib1" title="A Test Bibliography">A Test Bibliography</a></td></tr><tr><td><a href="#gloss" title="Example Glossary">Example Glossary</a></td></tr><tr><td><a href="#index" title="Index">Index</a></td></tr></table><p>This is the first reference to <i>XML</i>.
+This is the second reference to <a href="#xml"><i>XML</i></a>.
+These are references without <tt>linkend</tt>
+attributes: <i>XML</i>, <i>XML</i>.</p><h4>Links</h4><p>More <a href="http://www.jclark.com/dsssl/" target="_top">DSSSL information</a>
+is available.</p><p>There is <a href="#part" title="Part II. Part Two Title">a second part</a> in this book.</p><p>This is the <a href="#chapter" title="Chapter 1. XRef Tests"/>
+chapter.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="stchap"/>Chapter 2. Section Tests</h2></div><div><h3 class="subtitle"><i>Section Tests Subtitle</i></h3></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2787736">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2788369">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2792592"/>
+<a class="indexterm" name="id2792616"/>
+
+<a class="indexterm" name="id2792640"/>
+<a class="indexterm" name="id2792672"/>
+
+<a class="indexterm" name="id2792696"/>
+<a class="indexterm" name="id2792736"/>
+
+<a class="indexterm" name="id2792760"/>
+<a class="indexterm" name="id2792792"/>
+<a class="indexterm" name="id2792824"/></p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect1"><a name="secttest1"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest1"/>a sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2792939"/>
+<a class="indexterm" name="id2792979"/>
+<a class="indexterm" name="id2793011"/>
+
+<a class="indexterm" name="id2793035"/>
+<a class="indexterm" name="id2793067"/>
+<a class="indexterm" name="id2792982"/>
+
+<a class="indexterm" name="id2792462"/>
+<a class="indexterm" name="id2787520"/>
+<a class="indexterm" name="id2787552"/>
+<a class="indexterm" name="id2787592"/>
+<a class="indexterm" name="id2787631"/>
+<a class="indexterm" name="id2787663"/></p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2787736"/><div class="titlepage"><div><h3 class="title"><a name="id2787736"/>a sect2 title</h3></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2787766"/><div class="titlepage"><div><h4 class="title"><a name="id2787766"/>a sect3 title</h4></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2787795"/>
+<a class="indexterm" name="id2787835"/>
+<a class="indexterm" name="id2787874"/>
+
+<a class="indexterm" name="id2787898"/>
+<a class="indexterm" name="id2787922"/>
+<a class="indexterm" name="id2787954"/>
+<a class="indexterm" name="id2787994"/>
+<a class="indexterm" name="id2788034"/>
+<a class="indexterm" name="id2788073"/></p><div class="sect4"><a name="id2788096"/><div class="titlepage"><div><h5 class="title"><a name="id2788096"/>a sect4 title</h5></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2788127"/><div class="titlepage"><div><h6 class="title"><a name="id2788127"/>a sect5 title</h6></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="secttest2"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2788187"/>another sect1 title</h2></div><div><h2 class="subtitle">a sect1 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2788242"/>
+<a class="indexterm" name="id2788266"/>
+<a class="indexterm" name="id2788306"/>
+<a class="indexterm" name="id2788346"/></p><div class="sect2"><a name="id2788369"/><div class="titlepage"><div><h3 class="title"><a name="id2788375"/>another sect2 title</h3></div><div><h2 class="subtitle">a sect2 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2788423"/><div class="titlepage"><div><h4 class="title"><a name="id2788429"/>another sect3 title</h4></div><div><h2 class="subtitle">a sect3 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2788478"/><div class="titlepage"><div><h5 class="title"><a name="id2788484"/>another sect4 title</h5></div><div><h2 class="subtitle">a sect4 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2788532"/><div class="titlepage"><div><h6 class="title"><a name="id2788538"/>another sect5 title</h6></div><div><h2 class="subtitle">a sect5 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="secttest3"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest3"/>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div><div class="sect1"><a name="secttest4"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest4"/>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2787837"/>Chapter 3. Inline Tests</h2></div></div><div class="simplesect"><a name="id2787997"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2787997"/>Testing &#8216;Quotes&#8217; in a title</h2></div></div><p>Footnotes<sup>[<a name="fn1" href="#ftn.fn1">2</a>]</sup> are inlines.
+Sort of<sup>[<a name="id2898276" href="#ftn.id2898276">3</a>]</sup>.
+Another footnote<sup>[<a href="#ftn.fn1">2</a>]</sup>.</p><table class="simplelist" border="0" summary="Simple list"><tr><td>Abbrev</td><td>GUIIcon</td><td><tt>SGMLTag</tt> (Attribute)</td></tr><tr><td>Acronym</td><td>GUILabel</td><td><tt>SGMLTag</tt> (AttValue)</td></tr><tr><td>Action</td><td>GUIMenu</td><td><tt>SGMLTag</tt> (Element)</td></tr><tr><td>Application</td><td>GUISubMenu</td><td><tt>&lt;/SGMLTag&gt;</tt> (EndTag)</td></tr><tr><td>[Citation]</td><td>Hardware</td><td><tt>&amp;SGMLTag;</tt> (GenEntity)</td></tr><tr><td>CiteRefEntry RefEntryTitle(n)</td><td><p><img src="emc2.gif"/></p></td><td><tt>&amp;#SGMLTag;</tt> (NumCharRef)</td></tr><tr><td><i>Citetitle</i></td><td>Interface</td><td><tt>%SGMLTag;</tt> (ParamEntity)</td></tr><tr><td><tt>ClassName</tt></td><td>InterfaceDefinition</td><td><tt>&lt;?SGMLTag&gt;</tt> (PI)</td></tr><tr><td><b>Command</b></td><td><b>KeyCap</b></td><td><tt>&lt;!--SGMLTag--&gt;</tt> (SGMLComment)</td></tr><tr><td><i>Comment</i> (Comment)</td><td>KeyCode</td><td><tt>&lt;SGMLTag&gt;</tt> (StartTag)</td></tr><tr><td><tt>ComputerOutput</tt></td><td>Key-Combo</td><td><tt>SGMLTag</tt></td></tr><tr><td>Database</td><td>KeySym</td><td><i><tt>StructField</tt></i></td></tr><tr><td>ErrorName</td><td><tt>Literal</tt></td><td>StructName</td></tr><tr><td>ErrorType</td><td>Markup</td><td><sub>Subscript</sub></td></tr><tr><td><tt>&lt;<a href="mailto:Email">Email</a>&gt;</tt></td><td><i>MediaLabel</i></td><td><sup>Superscript</sup></td></tr><tr><td><i>Emphasis</i></td><td>MouseButton</td><td>Symbol</td></tr><tr><td><tt>EnVar</tt></td><td><tt>Option</tt></td><td><tt>SystemItem</tt></td></tr><tr><td>ErrorCode</td><td>[Optional]</td><td>Token</td></tr><tr><td><tt>Filename</tt></td><td><i><tt>Parameter</tt></i></td><td>Trademark&#8482;</td></tr><tr><td><i>Firstterm</i></td><td>Phrase</td><td>Type</td></tr><tr><td><i>ForeignPhrase</i></td><td><tt>Prompt</tt></td><td><b><tt>UserInput</tt></b></td></tr><tr><td><tt>Function</tt></td><td>Property</td><td><i>WordAsWord</i></td></tr><tr><td>GUIMenuItem</td><td>&#8220;Quote&#8221;</td><td>ProductName&#8482;</td></tr><tr><td>GUIButton</td><td><i><tt>Replaceable</tt></i></td><td>&nbsp;</td></tr><tr><td>GUIButton (with Accel)</td><td>ReturnValue</td><td>&nbsp;</td></tr></table><p>And here are a couple of index terms, as another test (of 
+index terms, not inlines).
+<a class="indexterm" name="id2899407"/>
+<a class="indexterm" name="id2899436"/></p></div><div class="footnotes"><br/><hr width="100" align="left"/><div class="footnote"><p><sup>[<a name="ftn.fn1" href="#fn1">2</a>] </sup>Like this!</p></div><div class="footnote"><p><sup>[<a name="ftn.id2898276" href="#id2898276">3</a>] </sup>Well, the marks are, anyway!</p></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2899468"/>Chapter 4. Block Tests</h2></div></div><div class="simplesect"><a name="id2899482"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2899482"/>Formal Objects</h2></div></div><h5>Example</h5><div class="example"><p><a name="example"/><b>Example 4.1. An Example</b></p><p>This is an example of a trivial example.</p></div><h5>Figure</h5><div class="figure"><p><a name="figure"/><b>Figure 4.1. A Figure</b></p><pre class="screen">This is an example of a trivial figure.</pre></div><h5>Equation</h5><div class="equation"><p><a name="equation"/><b>Equation 4.1. An Equation</b></p><p><img src="emc2.gif"/></p></div><h5>Table</h5><div class="table"><p><a name="table"/><b>Table 4.1. A Table</b></p><table summary="A Table" border="1"><colgroup><col/><col/></colgroup><tbody><tr><td>1</td><td>1</td></tr><tr><td>2</td><td>4</td></tr><tr><td>3</td><td>9</td></tr></tbody></table></div></div><div class="simplesect"><a name="id2899802"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2899802"/>Informal Objects</h2></div></div><h5>InformalExample</h5><div class="informalexample" id="iexample"><a name="iexample"/><p>This is an example of a trivial, informal example.</p></div><h5>InformalEquation</h5><div class="informalequation" id="iequation"><a name="iequation"/><p><img src="emc2.gif"/></p></div><h5>InformalTable</h5><div class="informaltable" id="itable"><a name="itable"/><table border="1"><colgroup><col/><col/></colgroup><tbody><tr><td>1</td><td>1</td></tr><tr><td>2</td><td>8</td></tr><tr><td>3</td><td>27</td></tr></tbody></table></div></div><div class="simplesect"><a name="id2900026"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2900026"/>Admonitions</h2></div></div><h5>Note</h5><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900055"/>Note</h3><p>Consider yourself noted.</p><p>Second para.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900078"/>Note</h3><p>Consider yourself noted, simply.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900094"/>NoteTitle</h3><p>Consider yourself noted.</p><p>Second para, with a title.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900126"/>Att</h3><p>Consider yourself noted, simply.</p><p>With a title</p></div><h5>Important</h5><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900172"/>Important</h3><p>Consider yourself important.</p></div><h5>Tip</h5><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900191"/>Tip</h3><p>Consider yourself tipped.</p></div><h5>Warning</h5><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900231"/>Warning</h3><p>Consider yourself warned.</p></div><h5>Caution</h5><div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900261"/>Caution</h3><p>Consider yourself cautioned.</p></div><h5>SimPara in Caution</h5><div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900291"/>Simple Caution</h3><p>A simpler caution.</p></div></div><div class="simplesect"><a name="id2900315"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2900315"/>Other Objects</h2></div></div><h5>Screen</h5><pre class="screen">This
+  is                  With a line-annotation
+    a 
+     screen
+     This
+    is                With a line-annotation
+  a 
+screen
+This
+  is                  With a line-annotation
+    a 
+     screen</pre><h5>ProgramListing</h5><pre class="programlisting">This
+  is
+    a 
+programlisting</pre><h5>Address</h5><div class="address">Norman Walsh<br/>
+ArborText, Inc.<br/>
+1000 Victors Way<br/>
+Ann Arbor, MI 48108<br/>
+US<br/>
+<br/>
+Voice: 313.997.0200<br/>
+Fax: 313.997.0201<br/>
+<br/>
+Email: <tt>&lt;<a href="mailto:nwalsh at arbortext.com">nwalsh at arbortext.com</a>&gt;</tt><br/>
+WWW: http://www.arbortext.com/</div><h5>BlockQuote</h5><blockquote class="blockquote"><p>The universe that we observe has precisely the properties we should 
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&#8212;Richard Dawkins</p></blockquote><h5>Procedure</h5><div class="procedure"><a name="id2900552"/><ol><li><a name="id2900569"/><p>This is the first step</p></li><li><a name="id2900590"/><p>This is the second step</p><ol type="a"><li><a name="id2900621"/><p>This is the first substep</p></li><li><a name="id2900642"/><p>This is the second substep</p></li></ol></li><li><a name="id2900667"/><p>This is the third step</p></li></ol></div><h5>Procedure With Title</h5><div class="procedure"><a name="id2900704"/><p><b>Same Procedure with a Title</b></p><ol><li><a name="id2900718"/><p>This is the first step</p></li><li><a name="id2900739"/><p>This is the second step</p><ol type="a"><li><a name="id2900770"/><p>This is the first substep</p></li><li><a name="id2900791"/><p>This is the second substep</p></li></ol></li><li><a name="id2900816"/><p>This is the third step</p></li></ol></div><h5>SideBar</h5><div class="sidebar"><a name="id2900842"/><p class="title"><b>What About Bob?</b></p><p>This is a sidebar.</p></div><h5>MsgSet</h5><p>It's not really clear how <tt>MsgSet</tt> should be presented.
+I expect that it's fairly application, if not document, specific.</p><div class="msgentry"><a name="id2900913"/><div class="msg"><a name="id2900919"/><p>Record failed CRC</p><p>Record <i><tt>n</tt></i>
+                    in <i><tt>database</tt></i></p><p>File read error on 
+                   <i><tt>database</tt></i></p><p>Panic! Corrupt record!</p></div><div class="msginfo"><a name="id2901042"/><p><b>Level: </b>severe</p><p><b>Origin: </b>server</p><p><b>Audience: </b>all</p></div><div class="msgexplan"><a name="id2901073"/><p>        Indicates that some sort of error occured attempting to load
+        a record from the database.  Retry.  If failure persists,
+        contact the database administrator.
+        </p></div></div><h5>LiteralLayout</h5><div class="literallayout">This is a<br/>
+literal<br/>
+       layout</div><p><div class="literallayout">This is a<br/>
+literal<br/>
+       layout<br/>
+  in a para</div></p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2901154"/>Chapter 5. List Tests</h2></div></div><div class="simplesect"><a name="id2901168"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2901168"/>OrderedLists</h2></div></div><h5>Default Numeration</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2901213"/>One</p></li><li><a name="id2901229"/><pre class="programlisting">this one starts with
+a program listing
+what happens?</pre></li><li><a name="id2901251"/><pre class="synopsis">this one starts with
+a synopsis
+what happens?</pre></li><li><p><a name="id2901274"/>para first</p><pre class="synopsis">this one has
+a synopsis
+what happens?</pre></li><li><p><a name="id2901303"/>Three</p><pre class="screen">A
+Screen
+Here</pre></li><li><p><a name="id2901332"/>Four</p></li></ol></div><h5>Arabic Numeration</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2901365"/>One</p></li><li><p><a name="id2901402"/>Two</p></li><li><p><a name="id2901417"/>Three</p></li><li><p><a name="id2901432"/>Four</p></li></ol></div><h5>Arabic Numeration (Long)</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2901465"/>One</p></li><li><p><a name="id2901502"/>Two</p></li><li><p><a name="id2901517"/>Three</p></li><li><p><a name="id2901533"/>Four</p></li><li><p><a name="id2901549"/>Five</p></li><li><p><a name="id2901564"/>Six</p></li><li><p><a name="id2901580"/>Seven</p></li><li><p><a name="id2901596"/>Eight</p></li><li><p><a name="id2901612"/>Nine</p></li><li><p><a name="id2901627"/>Ten</p></li><li><p><a name="id2901643"/>Eleven</p></li></ol></div><h5>UpperAlpha Numeration</h5><div class="orderedlist"><ol type="A"><li><p><a name="id2901676"/>One</p></li><li><p><a name="id2901712"/>Two</p></li><li><p><a name="id2901728"/>Three</p></li><li><p><a name="id2901744"/>Four</p></li></ol></div><h5>LowerAlpha Numeration</h5><div class="orderedlist"><ol type="a"><li><p><a name="id2901777"/>One</p></li><li><p><a name="id2901813"/>Two</p></li><li><p><a name="id2901829"/>Three</p></li><li><p><a name="id2901844"/>Four</p></li></ol></div><h5>UpperRoman Numeration</h5><div class="orderedlist"><ol type="I"><li><p><a name="id2901877"/>One</p></li><li><p><a name="id2901914"/>Two</p></li><li><p><a name="id2901930"/>Three</p></li><li><p><a name="id2901945"/>Four</p></li></ol></div><h5>LowerRoman Numeration</h5><div class="orderedlist"><ol type="i"><li><p><a name="id2901978"/>One</p></li><li><p><a name="id2902015"/>Two</p></li><li><p><a name="id2902030"/>Three</p></li><li><p><a name="id2902046"/>Four</p></li></ol></div><h5>Continued</h5><p>First list:
+<div class="orderedlist"><ol type="1"><li><p><a name="id2902100"/>One</p></li><li><p><a name="id2902116"/>Two</p></li><li><p><a name="id2902132"/>Three</p></li><li><p><a name="id2902147"/>Four</p></li></ol></div></p><p>Second list:
+<div class="orderedlist"><ol start="5" type="1"><li><p><a name="id2902171"/>Five</p></li><li><p><a name="id2902202"/>Six</p></li><li><p><a name="id2902218"/>Seven</p></li><li><p><a name="id2902234"/>Eight</p></li><li><p><a name="id2902250"/>Nine</p></li><li><p><a name="id2902265"/>Ten</p></li></ol></div></p></div><div class="simplesect"><a name="id2902283"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2902283"/>ItemizedLists</h2></div></div><h5>Default Presentation</h5><div class="itemizedlist"><ul><li><p><a name="id2902318"/>One</p></li><li><a name="id2902333"/><pre class="programlisting">One-point-five. This one starts with
+a program listing
+what happens?</pre></li><li><p><a name="id2902356"/>Two</p></li><li><p><a name="id2902372"/>Three</p></li><li><p><a name="id2902388"/>Four</p></li></ul></div><h5>Block Elements in a List</h5><div class="itemizedlist"><ul><li><p><a name="id2902425"/>One</p><p>Another para.</p></li><li><p><a name="id2902449"/>Two</p></li><li><p><a name="id2902464"/>Three</p></li><li><p><a name="id2902480"/>Four</p></li></ul></div><h5>Alternate Mark and OverRide</h5><div class="itemizedlist"><ul><li style="list-style-type: square"><p><a name="id2902514"/>TeX and LaTeX</p></li><li style="list-style-type: disc"><p><a name="id2902544"/>Troff</p></li><li style="list-style-type: square"><p><a name="id2902560"/>Lout</p></li><li style="list-style-type: none"><p><a name="id2902580"/>Test</p></li></ul></div><h5>No mark Presentation</h5><div class="itemizedlist"><ul><li style="list-style-type: none"><p><a name="id2902629"/>One</p></li><li style="list-style-type: disc"><p><a name="id2902648"/>Two</p></li><li style="list-style-type: none"><p><a name="id2902664"/>Three</p></li><li style="list-style-type: none"><p><a name="id2902680"/>Four</p></li></ul></div></div><div class="simplesect"><a name="id2902699"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2902699"/>VariableLists</h2></div></div><div class="variablelist"><dl><dt><a name="id2902720"/><span class="term">Term1</span></dt><dd><p><a name="id2902734"/>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2902758"/><span class="term">Term2</span></dt><dd><p><a name="id2902772"/>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2902795"/><span class="term">Term3</span></dt><dd><p><a name="id2902809"/>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="itemizedlist"><ul><li><p><a name="id2902836"/>One</p></li><li><p><a name="id2902852"/>Two</p></li><li><p><a name="id2902867"/>Three</p></li><li><p><a name="id2902883"/>Four</p></li></ul></div><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2902918"/><span class="term">Term4</span></dt><dd><p><a name="id2902932"/>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd></dl></div><div class="variablelist"><dl><dt><a name="id2902964"/><span class="term">Another List</span></dt><dd><p><a name="id2902978"/>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2903002"/><span class="term">ProgramListing</span></dt><dd><pre class="programlisting">A ProgramListing
+Is the First Element
+of this VarListEntry</pre><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd></dl></div></div><div class="simplesect"><a name="id2903057"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2903057"/>SimpleLists</h2></div></div><h5>Inline</h5><p>An inline simple list:
+<span class="simplelist">One, Two, Three, Four, Five, Six, Seven</span></p><h5>Horiz</h5><table class="simplelist" border="0" summary="Simple list"><tr><td>One</td><td>Two</td><td>Three</td></tr><tr><td>Four</td><td>Five</td><td>Six</td></tr><tr><td>Seven</td><td>&nbsp;</td><td>&nbsp;</td></tr></table><h5>Vert</h5><table class="simplelist" border="0" summary="Simple list"><tr><td>One</td><td>Four</td><td>Seven</td></tr><tr><td>Two</td><td>Five</td><td>&nbsp;</td></tr><tr><td>Three</td><td>Six</td><td>&nbsp;</td></tr></table></div><div class="simplesect"><a name="id2903332"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2903332"/>More Complex List Item Content</h2></div></div><div class="itemizedlist"><ul><li><p><a name="id2903353"/>One</p><p>Second para</p></li><li><p><a name="id2903376"/>Two</p><p>Second para</p></li><li><a name="id2903400"/><p>Three</p><p>Second para</p></li><li><p><a name="id2903423"/>Four</p><p>Second para</p></li><li><a name="id2903447"/><p><b>Formal Element</b> Five</p><p>Second para</p></li><li><p><a name="id2903486"/>Six</p></li></ul></div><div class="orderedlist"><ol type="1"><li><p><a name="id2903521"/>One</p><p>Second para</p></li><li><p><a name="id2903544"/>Two</p><p>Second para</p></li><li><a name="id2903568"/><p>Three</p><p>Second para</p></li><li><p><a name="id2903591"/>Four</p><p>Second para</p></li><li><a name="id2903615"/><p><b>Formal Element</b> Five</p><p>Second para</p></li><li><p><a name="id2903654"/>Six</p></li></ol></div></div><div class="simplesect"><a name="id2903673"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2903673"/>Segmented List</h2></div></div><p><b>State Birds</b></p><p><b>State: </b>Alabama</p><p><b>Bird: </b>Yellowhammer</p><p><b>State: </b>Alaska</p><p><b>Bird: </b>Willow Ptarmigan</p><p><b>State: </b>Arizona</p><p><b>Bird: </b>Cactus Wren</p><p><b>State: </b>Arkansas</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>California</p><p><b>Bird: </b>California Valley Quail</p><p><b>State: </b>Colorado</p><p><b>Bird: </b>Lark Bunting</p><p><b>State: </b>Connecticut</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Delaware</p><p><b>Bird: </b>Blue Hen Chicken</p><p><b>State: </b>Florida</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Georgia</p><p><b>Bird: </b>Brown Thrasher</p><p><b>State: </b>Hawaii</p><p><b>Bird: </b>Nene</p><p><b>State: </b>Idaho</p><p><b>Bird: </b>Mountain Bluebird</p><p><b>State: </b>Illinois</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Indiana</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Iowa</p><p><b>Bird: </b>Eastern Goldfinch</p><p><b>State: </b>Kansas</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Kentucky</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Louisiana</p><p><b>Bird: </b>Eastern Brown Pelican</p><p><b>State: </b>Maine</p><p><b>Bird: </b>Chickadee</p><p><b>State: </b>Maryland</p><p><b>Bird: </b>Baltimore Oriole</p><p><b>State: </b>Massachusetts</p><p><b>Bird: </b>Chickadee</p><p><b>State: </b>Michigan</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Minnesota</p><p><b>Bird: </b>Common Loon</p><p><b>State: </b>Mississippi</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Missouri</p><p><b>Bird: </b>Bluebird</p><p><b>State: </b>Montana</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Nebraska</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Nevada</p><p><b>Bird: </b>Mountain Bluebird</p><p><b>State: </b>New Hampshire</p><p><b>Bird: </b>Purple Finch</p><p><b>State: </b>New Jersey</p><p><b>Bird: </b>Eastern Goldfinch</p><p><b>State: </b>New Mexico</p><p><b>Bird: </b>Roadrunner</p><p><b>State: </b>New York</p><p><b>Bird: </b>Bluebird</p><p><b>State: </b>North Carolina</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>North Dakota</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Ohio</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Oklahoma</p><p><b>Bird: </b>Scissor-tailed Flycatcher</p><p><b>State: </b>Oregon</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Pennsylvania</p><p><b>Bird: </b>Ruffed Grouse</p><p><b>State: </b>Rhode Island</p><p><b>Bird: </b>Rhode Island Red</p><p><b>State: </b>South Carolina</p><p><b>Bird: </b>Great Carolina Wren</p><p><b>State: </b>South Dakota</p><p><b>Bird: </b>Ring-necked Pheasant</p><p><b>State: </b>Tennessee</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Texas</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Utah</p><p><b>Bird: </b>American Seagull</p><p><b>State: </b>Vermont</p><p><b>Bird: </b>Hermit Thrush</p><p><b>State: </b>Virginia</p><p><b>Bird: </b>Cardinal </p><p><b>State: </b>Washington</p><p><b>Bird: </b>Willow Goldfinch</p><p><b>State: </b>West Virginia</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Wisconsin</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Wyoming</p><p><b>Bird: </b>Western Meadowlark</p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2904867"/>Chapter 6. Table Tests</h2></div></div><h5>Alternate Alignment on Entry</h5><div class="informaltable" id="id2904901"><a name="id2904901"/><table border="1"><colgroup><col/><col/><col align="center"/></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left">left</td><td align="center">center</td><td>center</td></tr><tr><td align="center">center</td><td align="right">right</td><td align="right">right</td></tr></tbody></table></div><div class="informaltable" id="id2905123"><a name="id2905123"/><table border="1"><colgroup><col/><col/><col align="center"/></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left">left</td><td align="center">center</td><td>center</td></tr><tr><td align="center">center</td><td align="right">right</td><td align="right">right</td></tr></tbody></table></div><div class="informaltable" id="id2905340"><a name="id2905340"/><table border="1"><colgroup><col/><col/><col align="center"/></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left"><i>left emph</i></td><td align="center"><b>center emph/bold</b></td><td><tt>center literal</tt></td></tr><tr><td align="center"><tt>center filename</tt></td><td align="right"><b>right command</b></td><td align="right">right</td></tr></tbody></table></div><h5>Absolute Widths</h5><div class="informaltable" id="id2905606"><a name="id2905606"/><table border="1"><colgroup><col/><col/><col align="center"/></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td>e1</td><td>e2</td><td>e3</td></tr><tr><td>e1</td><td>e2</td><td>e3</td></tr><tr><td>e1</td><td>e2</td><td>e3</td></tr></tbody></table></div><h5>Relative Widths</h5><div class="informaltable" id="id2905845"><a name="id2905845"/><table border="1"><colgroup><col/><col/></colgroup><tbody><tr><td align="left"><p>left</p></td><td align="center"><p>center</p></td></tr><tr><td align="center"><p>center</p></td><td align="right"><p>right</p></td></tr></tbody></table></div><h5>Complex</h5><div class="informaltable" id="id2906008"><a name="id2906008"/><table width="100%" border="1"><colgroup><col/><col align="right"/><col align="center"/><col/><col/><col align="left"/></colgroup><tbody><tr><td>A1</td><td>A2</td><td>A3</td><td rowspan="2">A4</td><td>A5</td><td>A6</td></tr><tr><td>B1</td><td>B2</td><td>B3</td><td>B5</td><td>B6</td></tr><tr><td>C1</td><td>C2</td><td>C3</td><td>C4</td><td rowspan="3" colspan="2" valign="middle">C5</td></tr><tr><td colspan="0">D2</td><td>D3</td><td>D4</td></tr><tr><td>E1</td><td align="left">E2</td><td>E4</td></tr><tr><td>F1</td><td>F2</td><td>F3</td><td>F4</td><td>F5</td><td>F6</td></tr></tbody></table></div><h5>With Footnotes</h5><div class="informaltable" id="id2906467"><a name="id2906467"/><table border="1"><colgroup><col/><col/></colgroup><tbody><tr><td>foo<sup>[<a name="fnrex1a" href="#ftn.fnrex1a">a</a>]</sup></td><td>3<sup>[<a name="fnrex1b" href="#ftn.fnrex1b">b</a>]</sup></td></tr><tr><td>bar<sup>[<a href="#ftn.fnrex1a">a</a>]</sup></td><td>5<sup>[<a href="#ftn.fnrex1b">b</a>]</sup></td></tr></tbody><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.fnrex1a" href="#fnrex1a">a</a>] </sup>A meaningless
+word</p></div><div class="footnote"><p><sup>[<a name="ftn.fnrex1b" href="#fnrex1b">b</a>] </sup>A meaningless
+number</p></div></td></tr></table></div><h5>A Big One</h5><div class="informaltable" id="id2906629"><a name="id2906629"/><table border="1"><colgroup><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/></colgroup><thead><tr><th>H1</th><th>H2</th><th>H3</th><th>H4</th><th>H5</th><th>H6</th><th>H7</th><th>H8</th><th>H9</th><th>H10</th><th>H11</th><th>H12</th><th>H13</th><th>H14</th><th>H15</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr></tbody></table></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2910544"/>Chapter 7. Index Term Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2910627">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2910976">Index Term Sect 2</a></dt><dt> <a href="#id2911143">Index Term Sect 3</a></dt></dl></dd></dl></div><p>Test data.</p><a class="indexterm" name="idx1"/><a class="indexterm" name="idx2"/><div class="sect1"><a name="id2910627"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2910627"/>Index Term Sect 1</h2></div></div><p>Test data.</p><a class="indexterm" name="idx3"/><a class="indexterm" name="fred"/><a class="indexterm" name="idx5"/><a class="indexterm" name="idx6"/><a class="indexterm" name="idx7"/><a class="indexterm" name="idx8"/><a class="indexterm" name="idx9"/><a class="indexterm" name="id2910908"/><a class="indexterm" name="idx11"/><div class="sect2"><a name="id2910976"/><div class="titlepage"><div><h3 class="title"><a name="id2910976"/>Index Term Sect 2</h3></div></div><p>Test data.</p><a class="indexterm" name="idx12"/><a class="indexterm" name="idx13"/><a class="indexterm" name="idx14"/><a class="indexterm" name="idx15"/></div><div class="sect2"><a name="id2911143"/><div class="titlepage"><div><h3 class="title"><a name="id2911143"/>Index Term Sect 3</h3></div></div><p>foo</p></div></div></div></div><div class="part" id="part"><div class="titlepage"><div><h1 class="title"><a name="part"/>Part Two Title</h1></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>8 <a href="#id2911195">CmdSynopsis Tests</a></dt><dt>9 <a href="#id2912508">FuncSynopsis Tests</a></dt><dt>10 <a href="#id2912864">Callout Tests</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2911195"/>Chapter 8. CmdSynopsis Tests</h2></div></div><h5>Very Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2911224"><a name="id2911224"/><tt>cd</tt>  {<i><tt>directory</tt></i>}</div><h5>Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2911284"><a name="id2911284"/><tt>cal</tt>  [-j] [-y] [month  [year]]</div><h5>Another Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2911391"><a name="id2911391"/><tt>chgrp</tt>  [-R 
+     [-H | -L | -P]
+  ] [-f]  <i><tt>group</tt></i>   <i><tt>file</tt></i>... </div><h5>Slightly Complex CmdSynopsis</h5><div class="cmdsynopsis" id="id2911566"><a name="id2911566"/><tt>emacs</tt>  [-t <i><tt>file</tt></i>] [-q] [-u <i><tt>user</tt></i>] [+<i><tt>number</tt></i>] [-f <i><tt>function</tt></i>...] [-l <i><tt>file</tt></i>...]  <i><tt>file</tt></i>... </div><h5>Quite Complex CmdSynopsis</h5><div class="cmdsynopsis" id="id2911757"><a name="id2911757"/><tt>cccp</tt>  [-$] [-C] [-D<i><tt>name</tt></i> [=<i><tt>definition</tt></i>]...] [-dD] [-dM] [-I <i><tt>directory</tt></i>...] [-H] [-I-]<br/> [-imacros <i><tt>file</tt></i>...] [-include <i><tt>file</tt></i>...] [-lang-c | -lang-c++ | -lang-objc] [-lint]<br/> [-M | -MD | -MM | -MMD] [-nostdinc] [-P] [-pedantic] [-pedantic-errors] [-trigraphs] [-U<i><tt>name</tt></i>]<br/> [-undef] [-Wtrigraphs] [-Wcomment] [-Wall] [-Wtraditional] {<i><tt>infile</tt></i> | -} {<i><tt>outfile</tt></i> | -}</div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2912508"/>Chapter 9. FuncSynopsis Tests</h2></div></div><h5>Two Simple Parameters</h5><div class="funcsynopsis" id="id2912537"><a name="id2912537"/><p><code><code class="funcdef">int <b class="fsfunc">max</b></code>(<var class="pdparam">int1</var>, <var class="pdparam">int2</var>);<br/>int <var class="pdparam">int1</var>;<br/>int <var class="pdparam">int2</var>;</code></p></div><h5>Variable Arguments</h5><div class="funcsynopsis" id="id2912622"><a name="id2912622"/><pre class="funcsynopsisinfo">#include &lt;varargs.h&gt;</pre><p><code><code class="funcdef">int <b class="fsfunc">max</b></code>(...);</code></p></div><h5>Void</h5><div class="funcsynopsis" id="id2912691"><a name="id2912691"/><p><code><code class="funcdef">int <b class="fsfunc">rand</b></code>();</code></p></div><h5>Function Pointer Arguments</h5><div class="funcsynopsis" id="id2912745"><a name="id2912745"/><p><code><code class="funcdef">void <b class="fsfunc">qsort</b></code>(<var class="pdparam">dataptr</var>, <var class="pdparam">left</var>, <var class="pdparam">right</var>, <var class="pdparam">(* comp)</var>);<br/>void *<var class="pdparam">dataptr</var>[];<br/>int <var class="pdparam">left</var>;<br/>int <var class="pdparam">right</var>;<br/>int <var class="pdparam">(* comp)</var>
+      (void *, void *);</code></p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2912864"/>Chapter 10. Callout Tests</h2></div></div><h5>CallOut (using AREASPEC)</h5><div class="programlistingco"><pre class="programlisting">@rem = '--*-Perl-*--
+ at echo off
+perl.exe %_batchname %$
+goto endofperl
+ at rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+ at DIRS = (&quot;/home/nwalsh/Mail&quot;);
+while (@DIRS) {
+    $dir = shift @DIRS;
+    opendir (DIR, $dir);
+    while ($fname = readdir(DIR)) {
+        $file = &quot;$dir/$fname&quot;;
+        next if ! -d $file;
+        next if $fname =~ /^\.\.?$/;
+
+        print &quot;$file\n&quot;;
+        push (@DIRS, $file);
+        &amp;compress ($file);
+    }
+}
+
+exit;</pre><div class="calloutlist"><a name="id2913077"/><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a name="id2913086"/><img src="../images/callouts/1.png" alt="1" border="0"/></td><td valign="top" align="left"><p>The prologue handles embedding a Perl script in a DOS batch file.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2913114"/><img src="../images/callouts/2.png" alt="2" border="0"/></td><td valign="top" align="left"><p>The <tt>goto</tt> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2913156"/><img src="../images/callouts/3.png" alt="3" border="0"/></td><td valign="top" align="left"><p>The <tt>require</tt> statement sources in external program
+fragments.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2913198"/><img src="../images/callouts/4.png" alt="4" border="0"/></td><td valign="top" align="left"><p>The <tt>use</tt> statement is similar, but has additional
+utility.  It is a Perl5 function.  (Note that this callout area specifies
+both a line and a column.)</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2913241"/><img src="../images/callouts/5.png" alt="5" border="0"/></td><td valign="top" align="left"><p>This is a user subroutine call.</p></td></tr></table></div></div><h5>CallOut (using CO)</h5><pre class="programlisting">this is a line
+this is another line
+there's a <a name="callout1"/><img src="../images/callouts/1.png" alt="1" border="0"/>callout in here.
+and there's another on the
+next line
+right here:<a name="callout2"/><img src="../images/callouts/2.png" alt="2" border="0"/></pre><div class="calloutlist"><a name="id2913312"/><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a name="id2913335"/><a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"/></a> </td><td valign="top" align="left"><p>First callout.</p><p>Second para in first callout.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2913370"/><a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"/></a> </td><td valign="top" align="left"><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Second callout.</p><p>Third para in second callout.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2913420"/><a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"/></a> <a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"/></a> </td><td valign="top" align="left"><p>This paragraph describes <i>both</i> callouts.</p></td></tr></table></div></div></div><div class="part" id="id2913456"><div class="titlepage"><div><h1 class="title"><a name="id2913456"/>A Reference Part</h1></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>I <a href="#reference">Reference</a></dt><dd><dl><dt><a href="#id2913493">RefEntryTitle</a></dt><dt><a href="#id2913684"><tt>Chop</tt></a></dt></dl></dd></dl></div><div class="reference"><a name="reference"/><div class="titlepage"><div><h1 class="title"><a name="reference"/>Reference</h1></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2913493">RefEntryTitle</a></dt><dt><a href="#id2913684"><tt>Chop</tt></a></dt></dl></div><div class="refentry"><h1 class="title"><a name="id2913493"/>RefEntryTitle</h1><div class="refnamediv"><a name="id2913516"/><h2>Name</h2>RefName1, RefName2 &#8212; Yes, there must be a purpose!</div><div class="refsynopsisdiv"><a name="id2913556"/><h2>Synopsis</h2><pre class="synopsis">  A
+   Synopsis
+    Goes
+   Here</pre></div><div class="refsect1"><a name="id2913578"/><h2><a name="id2913578"/>A RefSect1</h2><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="refsect2"><a name="id2913606"/><h3><a name="id2913606"/>A RefSect2</h3><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="refsect3"><a name="id2913633"/><h4><a name="id2913633"/>A RefSect3</h4><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<sup>[<a name="id2913656" href="#ftn.id2913656">6</a>]</sup>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></div></div></div><div class="footnotes"><br/><hr width="100" align="left"/><div class="footnote"><p><sup>[<a name="ftn.id2913656" href="#id2913656">6</a>] </sup>This is a footnote in a refentry.</p></div></div></div><div class="refentry"><h1 class="title"><a name="id2913684"/><tt>Chop</tt></h1><div class="refnamediv"><a name="id2913690"/><h2>Name</h2><tt>Chop</tt> &#8212; strip trailing whitespace</div><div class="refsect1"><a name="id2913722"/><h2><a name="id2913722"/>Description</h2><p>     Returns the argument string without trailing whitespace.
+     <div class="example"><p><a name="id2913743"/><b>Example 2. chop() example</b></p><pre class="programlisting">$trimmed = Chop($line);</pre></div>
+    </p></div></div></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="appendix"/>Appendix A. A Very Short Appendix</h2></div></div><p>Blah.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2913814"/>Appendix B. A Very Long Appendix</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2914465">a sect1 title</a></dt><dd><dl><dt> <a href="#id2914495">a sect2 title</a></dt></dl></dd><dt> <a href="#id2914635">another sect1 title</a></dt><dd><dl><dt> <a href="#id2914689">another sect2 title</a></dt></dl></dd><dt> <a href="#id2914924">another sect1 title</a></dt><dt> <a href="#id2914957">another sect1 title</a></dt></dl></div><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="sect1"><a name="id2914465"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2914465"/>a sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2914495"/><div class="titlepage"><div><h3 class="title"><a name="id2914495"/>a sect2 title</h3></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2914526"/><div class="titlepage"><div><h4 class="title"><a name="id2914526"/>a sect3 title</h4></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2914565"/><div class="titlepage"><div><h5 class="title"><a name="id2914565"/>a sect4 title</h5></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2914596"/><div class="titlepage"><div><h6 class="title"><a name="id2914596"/>a sect5 title</h6></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="id2914635"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2914641"/>another sect1 title</h2></div><div><h2 class="subtitle">a sect1 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2914689"/><div class="titlepage"><div><h3 class="title"><a name="id2914696"/>another sect2 title</h3></div><div><h2 class="subtitle">a sect2 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2914744"/><div class="titlepage"><div><h4 class="title"><a name="id2914750"/>another sect3 title</h4></div><div><h2 class="subtitle">a sect3 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2914798"/><div class="titlepage"><div><h5 class="title"><a name="id2914804"/>another sect4 title</h5></div><div><h2 class="subtitle">a sect4 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2914853"/><div class="titlepage"><div><h6 class="title"><a name="id2914859"/>another sect5 title</h6></div><div><h2 class="subtitle">a sect5 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="id2914924"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2914924"/>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div><div class="sect1"><a name="id2914957"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2914957"/>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div><div id="bib1" class="bibliography"><div class="titlepage"><div><h2 class="title"><a name="bib1"/>A Test Bibliography</h2></div></div><p>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</p><div class="bibliodiv"><h3 class="title"><a name="id2915024">Books</a></h3><div id="id2915038" class="biblioentry"><a name="id2915038"/><p><span class="abbrev">[AhoSethiUllman96] </span><span class="authorgroup">Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </span><span class="title"><I>Compilers, Principles, Techniques, and Tools</I>. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span><span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span><span class="isbn">0-201-10088-6. </span><span class="editor">James T. DeWolf. </span><span class="seriesinfo"><span class="title"><I>Computer Science</I>. </span><span class="editor">Michael A. Harrison. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span></span></p></div></div><div class="bibliodiv"><h3 class="title"><a name="id2915271">Periodicals</a></h3><div id="walsh97" class="biblioentry"><a name="walsh97"/><p><span class="abbrev">[Walsh97] </span><span class="biblioset">&#8220;A Guide to XML&#8221;. <span class="author">Norman Walsh. </span><span class="pubdate">1997. </span><span class="copyright">Copyright © 1997 ArborText, Inc.. </span><span class="pagenums">97-108. </span></span><span class="biblioset"><I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span><span class="issn">1085-2301. </span><span class="editor">Dan Connolly. </span></span></p></div><div id="walsh96" class="bibliomixed"><a name="walsh96"/><p>  <span class="bibliomset">    <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+    &#8220;Introduction to Cascading Style Sheets&#8221;.
+  </span>
+  <span class="bibliomset">    <I>The World Wide Web Journal</I>.
+    <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+    <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+    <span class="corpname">The World Wide Web Consortium</span>.
+    <span class="pubdate">Winter, 1996</span></span>.</p></div><div id="id2915584" class="biblioentry"><a name="id2915584"/><p><span class="abbrev">[Abbrev] </span><span class="title"><I>A Really Full BiblioEntry</I>. </span><span class="subtitle">Subtitle. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span><span class="artpagenums">ArtPageNums. </span><span class="author">AuthorFirstname AuthorSurname. </span><span class="authorinitials">AuthorInitials. </span><span class="collab"><span class="collabname">The names of some collaborators. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span><span class="confgroup"><span class="confdates">confdates. </span><span class="conftitle">conftitle. </span><span class="confnum">confnum. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="confsponsor">confsponsor. </span>. </span><span class="contractnum">ContractNum. </span><span class="contractsponsor">ContractSponsor. </span><span class="contrib">Contrib. </span><span class="copyright">Copyright © 1998 Copyright holder. </span><span class="corpname">CorpName. </span><span class="date">Date. </span><span class="edition">Edition. </span><span class="editor">EditorFirstName EditorSurname. </span><span class="firstname">FirstName. </span><span class="honorific">Honorific. </span><span class="isbn">ISBN. </span><span class="issn">ISSN. </span><span class="invpartnumber">InvPartNumber. </span><span class="issuenum">IssueNum. </span><span class="lineage">Lineage. </span><span class="orgname">OrgName. </span><span class="othercredit"><span class="firstname">OCFirstName. </span><span class="surname">OCSurname. </span>. </span><span class="othername">OtherName. </span><span class="pagenums">PageNums. </span><span class="productname">ProductName. </span><span class="productnumber">ProductNumber. </span><span class="pubdate">PubDate. </span><span class="publisher"><span class="publishername">PubPublisherName. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span></span><span class="publishername">PublisherName. </span><span class="pubsnumber">PubsNumber. </span><span class="releaseinfo">ReleaseInfo. </span><span class="revhistory"><tr><td align="left">Revision 1.0</td><td align="left">20 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.9</td><td align="left">19 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.4</td><td align="left">18 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span><span class="seriesinfo"><span class="title"><I>SeriesInfo Title</I>. </span><span class="editor">SeriesInfo Editor Firstname SeriesInfo Editor Surname. </span></span><span class="seriesvolnums">SeriesVolNums. </span><span class="surname">Surname. </span><span class="titleabbrev">TitleAbbrev. </span><span class="volumenum">VolumeNum. </span></p></div></div></div><div id="gloss" class="glossary"><div class="titlepage"><div><h2 class="title"><a name="gloss"/>Example Glossary</h2></div></div><p>This is not a real glossary, it's just an example.</p><div class="glossdiv"><h3 class="title">E</h3><dl><dt><a name="xml">Extensible Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd></dl></div><div class="glossdiv"><h3 class="title">S</h3><dl><dt><a name="id2916558">SGML</a></dt><dd><p>See <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd><dt><a name="sgml">Standard Generalized
+  Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#xml">Extensible Markup Language</a>.</p></dd></dl></div></div><div id="index" class="index"><div class="titlepage"><div><h2 class="title"><a name="index"/>Index</h2></div></div><p>This is a test index.</p><p><b>a formal para</b> this is a formal paragraph.</p><dt>Primary</dt><dd><dl><dt>Secondary 1</dt><dd><dl><dt>Tertiary 11</dt><dt>Tertiary 12</dt><dt>Tertiary 21</dt></dl></dd><dt>Secondary 2</dt><dd><dl><dt>Tertiary 21</dt></dl></dd></dl></dd><dt>primary</dt><dt>primary</dt><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary1</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary2</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>see ie</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt><dd><dl><dt>seealso ie</dt></dl></dd></dl></dd></dl></dd></div><div id="id2917042" class="index"><div class="titlepage"><div><h2 class="title"><a name="id2917042"/>An Index with a Title</h2></div></div><div class="indexdiv">Symbols<dl><dt>!,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt><dt>[,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">A<dl><dt>sect2-level,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">C<dl><dt>chap-level,
+    <a href="c3.htm" target="_top">Index Term Tests</a>
+  </dt><dd><dl><dt>sec
+  </dt><dd><dl><dt>tert,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></dd></dl></dd></dl></div><div class="indexdiv">O<dl><dt>oft-repeated,
+    <a href="c3.htm" target="_top">Index Term Tests</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt><dd><dl><dt>with id,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div><div class="indexdiv">S<dl><dt>sect1-level,
+    <a href="c3.htm#aen10" target="_top"><i>Index Term Sect 1</i></a>
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd><dt>sect1-other
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book3.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book3.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/book3.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Book Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"/>Book Title</h1></div><div><h3 class="corpauthor">Some Corporation</h3></div><div><h3 class="author">Norman Walsh</h3></div><div><p class="copyright">Copyright © 1998 Norman Walsh</p></div><div><div class="legalnotice"><p class="legalnotice-title"><b>Legal Notice</b></p><p>This is a test document. You can do what you will with it.</p></div></div><div><div class="legalnotice"><p>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </p></div></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#bib1">A Test Bibliography</a></dt><dt><a href="#gloss">Example Glossary</a></dt><dt><a href="#index">Index</a></dt><dt><a href="#id2788168">Index</a></dt></dl></div><div id="bib1" class="bibliography"><div class="titlepage"><div><h2 class="title"><a name="bib1"/>A Test Bibliography</h2></div></div><p>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</p><div class="bibliodiv"><h3 class="title"><a name="id2880916">Books</a></h3><div id="id2790185" class="biblioentry"><a name="id2790185"/><p><span class="abbrev">[AhoSethiUllman96] </span><span class="authorgroup">Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </span><span class="title"><I>Compilers, Principles, Techniques, and Tools</I>. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span><span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span><span class="isbn">0-201-10088-6. </span><span class="editor">James T. DeWolf. </span></p></div></div><div class="bibliodiv"><h3 class="title"><a name="id2790362">Periodicals</a></h3><div id="walsh97" class="biblioentry"><a name="walsh97"/><p><span class="abbrev">[Walsh97] </span><span class="biblioset">&#8220;A Guide to XML&#8221;. <span class="author">Norman Walsh. </span><span class="pubdate">1997. </span><span class="copyright">Copyright © 1997 ArborText, Inc.. </span><span class="pagenums">97-108. </span></span><span class="biblioset"><I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span><span class="issn">1085-2301. </span><span class="editor">Dan Connolly. </span></span></p></div><div id="walsh96" class="bibliomixed"><a name="walsh96"/><p>  <span class="bibliomset">    <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+    &#8220;Introduction to Cascading Style Sheets&#8221;.
+  </span>
+  <span class="bibliomset">    <I>The World Wide Web Journal</I>.
+    <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+    <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+    <span class="corpname">The World Wide Web Consortium</span>.
+    <span class="pubdate">Winter, 1996</span></span>.</p></div><div id="id2793781" class="biblioentry"><a name="id2793781"/><p><span class="abbrev">[Abbrev] </span><span class="title"><I>A Really Full BiblioEntry</I>. </span><span class="subtitle">Subtitle. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span><span class="artpagenums">ArtPageNums. </span><span class="author">AuthorFirstname AuthorSurname. </span><span class="authorinitials">AuthorInitials. </span><span class="collab"><span class="collabname">The names of some collaborators. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span><span class="confgroup"><span class="confdates">confdates. </span><span class="conftitle">conftitle. </span><span class="confnum">confnum. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="confsponsor">confsponsor. </span>. </span><span class="contractnum">ContractNum. </span><span class="contractsponsor">ContractSponsor. </span><span class="contrib">Contrib. </span><span class="copyright">Copyright © 1998 Copyright holder. </span><span class="corpname">CorpName. </span><span class="date">Date. </span><span class="edition">Edition. </span><span class="editor">EditorFirstName EditorSurname. </span><span class="firstname">FirstName. </span><span class="honorific">Honorific. </span><span class="isbn">ISBN. </span><span class="issn">ISSN. </span><span class="invpartnumber">InvPartNumber. </span><span class="issuenum">IssueNum. </span><span class="lineage">Lineage. </span><span class="orgname">OrgName. </span><span class="othercredit"><span class="firstname">OCFirstName. </span><span class="surname">OCSurname. </span>. </span><span class="othername">OtherName. </span><span class="pagenums">PageNums. </span><span class="productname">ProductName. </span><span class="productnumber">ProductNumber. </span><span class="pubdate">PubDate. </span><span class="publisher"><span class="publishername">PubPublisherName. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span></span><span class="publishername">PublisherName. </span><span class="pubsnumber">PubsNumber. </span><span class="releaseinfo">ReleaseInfo. </span><span class="revhistory"><tr><td align="left">Revision 1.0</td><td align="left">20 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.9</td><td align="left">19 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.4</td><td align="left">18 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span><span class="seriesvolnums">SeriesVolNums. </span><span class="surname">Surname. </span><span class="titleabbrev">TitleAbbrev. </span><span class="volumenum">VolumeNum. </span></p></div></div></div><div id="gloss" class="glossary"><div class="titlepage"><div><h2 class="title"><a name="gloss"/>Example Glossary</h2></div></div><p>This is not a real glossary, it's just an example.</p><div class="glossdiv"><h3 class="title">E</h3><dl><dt><a name="xml">Extensible Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd></dl></div><div class="glossdiv"><h3 class="title">S</h3><dl><dt><a name="id2787634">SGML</a></dt><dd><p>See <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd><dt><a name="sgml">Standard Generalized
+  Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#xml">Extensible Markup Language</a>.</p></dd></dl></div></div><div id="index" class="index"><div class="titlepage"><div><h2 class="title"><a name="index"/>Index</h2></div></div><p>This is a test index.</p><p><b>a formal para</b> this is a formal paragraph.</p><dt>Primary</dt><dd><dl><dt>Secondary 1</dt><dd><dl><dt>Tertiary 11</dt><dt>Tertiary 12</dt><dt>Tertiary 21</dt></dl></dd><dt>Secondary 2</dt><dd><dl><dt>Tertiary 21</dt></dl></dd></dl></dd><dt>primary</dt><dt>primary</dt><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary1</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary2</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>see ie</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt><dd><dl><dt>seealso ie</dt></dl></dd></dl></dd></dl></dd></div><div id="id2788168" class="index"><div class="titlepage"><div><h2 class="title"><a name="id2788168"/>Index</h2></div></div><div class="indexdiv">Symbols<dl><dt>!,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt><dt>[,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">A<dl><dt>sect2-level,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">C<dl><dt>chap-level,
+    <a href="c3.htm" target="_top">Index Term Tests</a>
+  </dt><dd><dl><dt>sec
+  </dt><dd><dl><dt>tert,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></dd></dl></dd></dl></div><div class="indexdiv">O<dl><dt>oft-repeated,
+    <a href="c3.htm" target="_top">Index Term Tests</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt><dd><dl><dt>with id,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div><div class="indexdiv">S<dl><dt>sect1-level,
+    <a href="c3.htm#aen10" target="_top"><i>Index Term Sect 1</i></a>
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd><dt>sect1-other
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/callout.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/callout.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/callout.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Loops</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section"><a name="dsssl.expr.loop"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="dsssl.expr.loop"/>Loops</h2></div><hr/></div><p>
+<a class="indexterm" name="id2790042"/>
+<a class="indexterm" name="id2790059"/>
+<a class="indexterm" name="id2790077"/>
+
+DSSSL doesn't have any construct that resembles the
+for loop that occurs in most imperative languages like C
+and Java. Instead, DSSSL employs a common trick in
+functional languages for implementing a loop: tail recursion.
+</p><p>
+Loops in DSSSL use a special form of
+<tt>let</tt>. This loop counts from 1 to 10:
+<pre class="screen">
+(let <a name="dl1"/><img src="../images/callouts/1.png" alt="1" border="0"/>loopvar <a name="dl2"/><img src="../images/callouts/2.png" alt="2" border="0"/>((count 1))
+  <a name="dl3"/><img src="../images/callouts/3.png" alt="3" border="0"/>(if (&gt; count 10)
+    <a name="dl4"/><img src="../images/callouts/4.png" alt="4" border="0"/>#t
+    (<a name="dl5"/><img src="../images/callouts/5.png" alt="5" border="0"/>loopvar <a name="dl6"/><img src="../images/callouts/6.png" alt="6" border="0"/>(+ count 1))))</pre></p><div class="calloutlist"><a name="id2790240"/><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a name="id2790250"/><a href="#dl1"><img src="../images/callouts/1.png" alt="1" border="0"/></a> </td><td valign="top" align="left"><p>This variable controls the loop. It is declared without an
+initial value, immediately after the <tt>let</tt>
+operand.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2790316"/><a href="#dl2"><img src="../images/callouts/2.png" alt="2" border="0"/></a> </td><td valign="top" align="left"><p>
+<a class="indexterm" name="id2790341"/>
+
+Any number of additional local variables can be defined after
+the loop variable, just as they can in any other
+<tt>let</tt> expression.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2790390"/><a href="#dl3"><img src="../images/callouts/3.png" alt="3" border="0"/></a> </td><td valign="top" align="left"><p>If you ever want the loop to end, you have to put some sort of a
+test in it.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2790222"/><a href="#dl4"><img src="../images/callouts/4.png" alt="4" border="0"/></a> </td><td valign="top" align="left"><p>This is the value that will be returned.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2791018"/><a href="#dl5"><img src="../images/callouts/5.png" alt="5" border="0"/></a> </td><td valign="top" align="left"><p>Note that you iterate the loop by using the loop variable as if
+it was a function name.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2791053"/><a href="#dl6"><img src="../images/callouts/6.png" alt="6" border="0"/></a> </td><td valign="top" align="left"><p>The arguments to this function are the values that
+you want the local variables declared in <a href="#dl2" title=""><img src="../images/callouts/2.png" alt="2" border="0"/></a> to have
+in the next iteration.</p></td></tr></table></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/chunk.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/chunk.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/chunk.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Book Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2874261"><div class="titlepage"><div><h1 class="title"><a name="id2874261"/>Bookinfo Test Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3></div><hr/></div><div id="dedication" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="dedication"/>First Dedication</h2></div></div><p>Just a test.</p></div><div id="id2832967" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2832967"/>Dedication</h2></div></div><p>Just a test.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#preface">Foreword</a></dt><dt>1 <a href="#xreftest">XRef Tests</a></dt><dd><dl><dt> <a href="#id2790107">First sect1</a></dt><dt> <a href="#id2790151">Second sect1</a></dt></dl></dd><dt>2 <a href="#chapter">Second Chapter</a></dt><dt>3 <a href="#id2790203">Third Chapter</a></dt><dt>A <a href="#appendix">First Appendix</a></dt><dt>B <a href="#id2790388">Second Appendix</a></dt></dl></div><div id="preface" class="preface"><div class="titlepage"><div><h2 class="title"><a name="preface"/>Foreword</h2></div></div><p>This is a test paragraph. (<a href="#chapter" title="Chapter 2. Second Chapter">chapter</a>)</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="xreftest"/>Chapter 1. XRef Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2790107">First sect1</a></dt><dt> <a href="#id2790151">Second sect1</a></dt></dl></div><p><a href="#dedication">Dedication</a></p><p><a href="#preface" title="Foreword">Preface</a></p><p><a href="#chapter" title="Chapter 2. Second Chapter">Chapter</a></p><p><a href="#appendix" title="Appendix A. First Appendix">Appendix</a></p><div class="sect1"><a name="id2790107"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790107"/>First sect1</h2></div></div><p>...</p></div><div class="sect1"><a name="id2790151"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790151"/>Second sect1</h2></div></div><p>...</p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"/>Chapter 2. Second Chapter</h2></div></div><p>This is a test paragraph.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2790203"/>Chapter 3. Third Chapter</h2></div></div><p>This is a test paragraph.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="appendix"/>Appendix A. First Appendix</h2></div></div><p>This is just a test.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p><p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2790388"/>Appendix B. Second Appendix</h2></div></div><p>This is just a test.</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/classsynop.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/classsynop.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/classsynop.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Chapter 1. Class Synopses</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2602144"/>Chapter 1. Class Synopses</h2></div></div><p>This example is Perl; it's the standard DirHandle module. I've
+cut out the code, so you'll have to trust me on the parameters.
+</p><p>ProgramListing version:</p><pre class="programlisting">
+package DirHandle;
+
+require 5.000;
+use Carp;
+use Symbol;
+
+sub new {
+}
+</pre><p>ClassSynopsis version:</p><pre class="classsynopsis">package <span class="ooclass"><span class="classname">DirHandle</span></span>;
+ at ISA = (<span class="ooclass"><span class="classname">superclass1</span></span>, <span class="ooclass"><span class="classname">superclass2</span></span>);
+
+require 5.000;
+use Carp;
+use Symbol;
+
+<div class="constructorsynopsis">sub <span class="methodname">new</span> { ... };</div><div class="destructorsynopsis">sub <span class="methodname">DESTROY</span> { ... };</div></pre><p>This example is IDL from the DOM spec.</p><p>ProgramListing version:</p><pre class="programlisting">
+interface Element : Node {
+  readonly attribute  DOMString            tagName;
+  DOMString                 getAttribute(in DOMString name);
+  void                      setAttribute(in DOMString name, 
+                                         in DOMString value)
+                                         raises(DOMException);
+};
+</pre><p>ClassSynopsis version:</p><pre class="classsynopsis">interface <span class="ooclass"><span class="classname">Element</span></span>: <span class="ooclass"><span class="classname">Node</span></span> {
+
+<div class="fieldsynopsis">  <span class="modifier">readonly </span><span class="modifier">attribute </span><span class="type">DOMString </span><span class="varname">tagName </span>;</div><div class="methodsynopsis">  <span class="type">DOMString </span><span class="methodname">getAttribute</span>(<span class="methodparam"><span class="modifier">in </span><span class="type">DOMString </span><span class="parameter">name</span></span>);</div><div class="methodsynopsis">  <span class="void">void </span><span class="methodname">setAttribute</span>(<span class="methodparam"><span class="modifier">in </span><span class="type">DOMString </span><span class="parameter">name</span></span>, <span class="methodparam"><span class="modifier">in </span><span class="type">DOMString </span><span class="parameter">value</span></span>)
+    raises(<span class="exceptionname">DOMException</span>);</div>}</pre><pre class="classsynopsis"> <span class="ooclass"><span class="modifier">public </span><span class="classname">TextFileWriter</span></span> extends <span class="ooclass"><span class="classname">Superclass1</span></span>, <span class="ooclass"><span class="classname">Superclass2</span></span>
+    implements <span class="oointerface"><span class="interfacename">Interface1</span></span>, <span class="oointerface"><span class="interfacename">Interface2</span></span>
+    throws <span class="ooexception"><span class="exceptionname">Exception1</span></span>, <span class="ooexception"><span class="exceptionname">Exception2</span></span> {
+
+<div class="fieldsynopsis">  <span class="modifier">private </span><span class="type">Writer </span><span class="varname">writer </span>;</div><div class="fieldsynopsis">  <span class="modifier">public </span><span class="type">String </span><span class="varname">writerName </span><span class="initializer">= &quot;MyWriter&quot;</span>;</div><div class="methodsynopsis">  <span class="modifier">static </span><span class="modifier">public </span><span class="void">void </span><span class="methodname">write</span>(<span class="methodparam"><span class="type">ResultTreeFragment </span><span class="parameter">frag</span></span>,
+                           <span class="methodparam"><span class="type">String </span><span class="parameter">file</span></span>)
+    throws <span class="exceptionname">Exception1</span>, <span class="exceptionname">Exception2</span>;</div>}</pre><pre class="programlisting">
+class Rectangle_with_data:  virtual Shape, virtual Data_container
+{
+...
+};
+</pre><p>ClassSynopsis version:</p><pre class="classsynopsis"><span class="ooclass"><span class="classname">Rectangle_with_data</span></span>: <span class="ooclass"><span class="modifier">virtual </span><span class="classname">Shape</span></span>, <span class="ooclass"><span class="modifier">virtual </span><span class="classname">Data_container</span></span> {
+
+...}</pre></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/condition.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/condition.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/condition.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,592 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Book Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"/>Book Title</h1></div><div><h3 class="corpauthor">Some Corporation</h3></div><div><h3 class="author">Norman Walsh</h3></div><div><p class="copyright">Copyright © 1998 Norman Walsh</p></div><div><div class="legalnotice"><p class="legalnotice-title"><b>Legal Notice</b></p><p>This is a test document. You can do what you will with it.</p></div></div><div><div class="legalnotice"><p>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </p></div></div><hr/></div><div id="id2790171" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2790171"/>Dedication</h2></div></div><p>This test book is dedicated to all the testers.  This is the first para
+of the dedication.</p><p>This is the second para of the dedication.</p><p>This is the third para of the dedication.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2785113">Preface Title</a></dt><dt>I <a href="#id2793718">Part One Title</a></dt><dd><dl><dt>1 <a href="#chapter">XRef Tests</a></dt><dt>2 <a href="#stchap">Section Tests</a></dt><dd><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2787757">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2788381">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></dd><dt>3 <a href="#id2787979">Inline Tests</a></dt><dt>4 <a href="#id2911483">Block Tests</a></dt><dt>5 <a href="#id2913174">List Tests</a></dt><dt>6 <a href="#id2916887">Table Tests</a></dt><dt>7 <a href="#id2922939">Index Term Tests</a></dt><dd><dl><dt> <a href="#id2923022">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2923371">Index Term Sect 2</a></dt><dt> <a href="#id2923538">Index Term Sect 3</a></dt></dl></dd></dl></dd></dl></dd><dt>II <a href="#part">Part Two Title</a></dt><dd><dl><dt>8 <a href="#id2923590">CmdSynopsis Tests</a></dt><dt>9 <a href="#id2924903">FuncSynopsis Tests</a></dt><dt>10 <a href="#id2925261">Callout Tests</a></dt></dl></dd><dt>III <a href="#id2925845">A Reference Part</a></dt><dd><dl><dt>I <a href="#reference">Reference</a></dt><dd><dl><dt><a href="#id2925883">RefEntryTitle</a></dt><dt><a href="#id2926073"><tt>Chop</tt></a></dt></dl></dd></dl></dd><dt>A <a href="#appendix">A Very Short Appendix</a></dt><dt>B <a href="#id2926204">A Very Long Appendix</a></dt><dd><dl><dt> <a href="#id2926854">a sect1 title</a></dt><dd><dl><dt> <a href="#id2926893">a sect2 title</a></dt></dl></dd><dt> <a href="#id2927024">another sect1 title</a></dt><dd><dl><dt> <a href="#id2927079">another sect2 title</a></dt></dl></dd><dt> <a href="#id2927314">another sect1 title</a></dt><dt> <a href="#id2927346">another sect1 title</a></dt></dl></dd><dt><a href="#bib1">A Test Bibliography</a></dt><dt><a href="#gloss">Example Glossary</a></dt><dt><a href="#index">Index</a></dt><dt><a href="#id2929429">An Index with a Title</a></dt></dl></div><div id="id2785113" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2785113"/>Preface Title</h2></div></div><p>Preface content.</p><p>This is the second para of the preface.</p><p>This is the third para of the preface.</p></div><div class="part" id="id2793718"><div class="titlepage"><div><h1 class="title"><a name="id2793718"/>Part One Title</h1></div><div><div class="legalnotice"><p>Foo! A legal notice in a part!</p></div></div></div><div class="partintro"><div><div><h1 class="title"><a name="id2793765"/>PartIntro Title</h1></div></div><p>Partintro content<sup>[<a name="id2793785" href="#ftn.id2793785">1</a>]</sup>.</p><div class="sect1"><a name="id2793803"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2793803"/>PartIntro Section</h2></div></div><p>PartIntros can actually have section content as well.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#chapter">XRef Tests</a></dt><dt>2 <a href="#stchap">Section Tests</a></dt><dd><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2787757">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2788381">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></dd><dt>3 <a href="#id2787979">Inline Tests</a></dt><dt>4 <a href="#id2911483">Block Tests</a></dt><dt>5 <a href="#id2913174">List Tests</a></dt><dt>6 <a href="#id2916887">Table Tests</a></dt><dt>7 <a href="#id2922939">Index Term Tests</a></dt><dd><dl><dt> <a href="#id2923022">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2923371">Index Term Sect 2</a></dt><dt> <a href="#id2923538">Index Term Sect 3</a></dt></dl></dd></dl></dd></dl></div><div class="footnotes"><br/><hr width="100" align="left"/><div class="footnote"><p><sup>[<a name="ftn.id2793785" href="#id2793785">1</a>] </sup>This is a footnote in a partintro.</p></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"/>Chapter 1. XRef Tests</h2></div></div><h4>Xrefs</h4><table class="simplelist" border="0" summary="Simple list"><tr><td><a href="#book" title="Book Title">Book Title</a></td></tr><tr><td><a href="#part" title="Part II. Part Two Title">Part II. Part Two Title</a></td></tr><tr><td><a href="#chapter" title="Chapter 1. XRef Tests">Chapter 1. XRef Tests</a></td></tr><tr><td><a href="#appendix" title="Appendix A. A Very Short Appendix">Appendix A. A Very Short Appendix</a></td></tr><tr><td><a href="#table" title="Table 4.1. A Table">Table 4.1. A Table</a></td></tr><tr><td><a href="#figure" title="Figure 4.1. A Figure">Figure 4.1. A Figure</a></td></tr><tr><td><a href="#example" title="Example 4.1. An Example">Example 4.1. An Example</a></td></tr><tr><td><a href="#equation" title="Equation 4.1. An Equation"></a></td></tr><tr><td><a href="#reference" title="Reference">Reference</a></td></tr><tr><td><a href="#bib1" title="A Test Bibliography">A Test Bibliography</a></td></tr><tr><td><a href="#gloss" title="Example Glossary">Example Glossary</a></td></tr><tr><td><a href="#index" title="Index">Index</a></td></tr></table><p>This is the first reference to <i>XML</i>.
+This is the second reference to <a href="#xml"><i>XML</i></a>.
+These are references without <tt>linkend</tt>
+attributes: <i>XML</i>, <i>XML</i>.</p><h4>Links</h4><p>More <a href="http://www.jclark.com/dsssl/" target="_top">DSSSL information</a>
+is available.</p><p>There is <a href="#part" title="Part II. Part Two Title">a second part</a> in this book.</p><p>This is the <a href="#chapter" title="Chapter 1. XRef Tests"/>
+chapter.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="stchap"/>Chapter 2. Section Tests</h2></div><div><h3 class="subtitle"><i>Section Tests Subtitle</i></h3></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#secttest1">a sect1 title</a></dt><dd><dl><dt> <a href="#id2787757">a sect2 title</a></dt></dl></dd><dt> <a href="#secttest2">another sect1 title</a></dt><dd><dl><dt> <a href="#id2788381">another sect2 title</a></dt></dl></dd><dt> <a href="#secttest3">another sect1 title</a></dt><dt> <a href="#secttest4">another sect1 title</a></dt></dl></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2794827"/>
+<a class="indexterm" name="id2794851"/>
+
+<a class="indexterm" name="id2794875"/>
+<a class="indexterm" name="id2794907"/>
+
+<a class="indexterm" name="id2794931"/>
+<a class="indexterm" name="id2794971"/>
+
+<a class="indexterm" name="id2794995"/>
+<a class="indexterm" name="id2795027"/>
+<a class="indexterm" name="id2795058"/></p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect1"><a name="secttest1"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest1"/>a sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2795174"/>
+<a class="indexterm" name="id2795214"/>
+<a class="indexterm" name="id2795246"/>
+
+<a class="indexterm" name="id2795270"/>
+<a class="indexterm" name="id2795177"/>
+<a class="indexterm" name="id2794766"/>
+
+<a class="indexterm" name="id2787512"/>
+<a class="indexterm" name="id2787542"/>
+<a class="indexterm" name="id2787574"/>
+<a class="indexterm" name="id2787614"/>
+<a class="indexterm" name="id2787653"/>
+<a class="indexterm" name="id2787685"/></p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2787757"/><div class="titlepage"><div><h3 class="title"><a name="id2787757"/>a sect2 title</h3></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2787788"/><div class="titlepage"><div><h4 class="title"><a name="id2787788"/>a sect3 title</h4></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2787817"/>
+<a class="indexterm" name="id2787856"/>
+<a class="indexterm" name="id2787896"/>
+
+<a class="indexterm" name="id2787920"/>
+<a class="indexterm" name="id2787944"/>
+<a class="indexterm" name="id2787976"/>
+<a class="indexterm" name="id2788016"/>
+<a class="indexterm" name="id2788055"/>
+<a class="indexterm" name="id2788095"/></p><div class="sect4"><a name="id2788118"/><div class="titlepage"><div><h5 class="title"><a name="id2788118"/>a sect4 title</h5></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2788149"/><div class="titlepage"><div><h6 class="title"><a name="id2788149"/>a sect5 title</h6></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="secttest2"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2788208"/>another sect1 title</h2></div><div><h2 class="subtitle">a sect1 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<a class="indexterm" name="id2788255"/>
+<a class="indexterm" name="id2788279"/>
+<a class="indexterm" name="id2788319"/>
+<a class="indexterm" name="id2788358"/></p><div class="sect2"><a name="id2788381"/><div class="titlepage"><div><h3 class="title"><a name="id2788388"/>another sect2 title</h3></div><div><h2 class="subtitle">a sect2 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2788436"/><div class="titlepage"><div><h4 class="title"><a name="id2788442"/>another sect3 title</h4></div><div><h2 class="subtitle">a sect3 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2788490"/><div class="titlepage"><div><h5 class="title"><a name="id2788496"/>another sect4 title</h5></div><div><h2 class="subtitle">a sect4 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2788545"/><div class="titlepage"><div><h6 class="title"><a name="id2788551"/>another sect5 title</h6></div><div><h2 class="subtitle">a sect5 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="secttest3"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest3"/>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div><div class="sect1"><a name="secttest4"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="secttest4"/>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2787979"/>Chapter 3. Inline Tests</h2></div></div><div class="simplesect"><a name="id2788282"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2788282"/>Testing &#8216;Quotes&#8217; in a title</h2></div></div><p>Footnotes<sup>[<a name="fn1" href="#ftn.fn1">2</a>]</sup> are inlines.
+Sort of<sup>[<a name="id2910296" href="#ftn.id2910296">3</a>]</sup>.
+Another footnote<sup>[<a href="#ftn.fn1">2</a>]</sup>.</p><table class="simplelist" border="0" summary="Simple list"><tr><td>Abbrev</td><td>GUIIcon</td><td><tt>SGMLTag</tt> (Attribute)</td></tr><tr><td>Acronym</td><td>GUILabel</td><td><tt>SGMLTag</tt> (AttValue)</td></tr><tr><td>Action</td><td>GUIMenu</td><td><tt>SGMLTag</tt> (Element)</td></tr><tr><td>Application</td><td>GUISubMenu</td><td><tt>&lt;/SGMLTag&gt;</tt> (EndTag)</td></tr><tr><td>[Citation]</td><td>Hardware</td><td><tt>&amp;SGMLTag;</tt> (GenEntity)</td></tr><tr><td>CiteRefEntry RefEntryTitle(n)</td><td><p><img src="emc2.gif"/></p></td><td><tt>&amp;#SGMLTag;</tt> (NumCharRef)</td></tr><tr><td><i>Citetitle</i></td><td>Interface</td><td><tt>%SGMLTag;</tt> (ParamEntity)</td></tr><tr><td><tt>ClassName</tt></td><td>InterfaceDefinition</td><td><tt>&lt;?SGMLTag&gt;</tt> (PI)</td></tr><tr><td><b>Command</b></td><td><b>KeyCap</b></td><td><tt>&lt;!--SGMLTag--&gt;</tt> (SGMLComment)</td></tr><tr><td><i>Comment</i> (Comment)</td><td>KeyCode</td><td><tt>&lt;SGMLTag&gt;</tt> (StartTag)</td></tr><tr><td><tt>ComputerOutput</tt></td><td>Key-Combo</td><td><tt>SGMLTag</tt></td></tr><tr><td>Database</td><td>KeySym</td><td><i><tt>StructField</tt></i></td></tr><tr><td>ErrorName</td><td><tt>Literal</tt></td><td>StructName</td></tr><tr><td>ErrorType</td><td>Markup</td><td><sub>Subscript</sub></td></tr><tr><td><tt>&lt;<a href="mailto:Email">Email</a>&gt;</tt></td><td><i>MediaLabel</i></td><td><sup>Superscript</sup></td></tr><tr><td><i>Emphasis</i></td><td>MouseButton</td><td>Symbol</td></tr><tr><td><tt>EnVar</tt></td><td><tt>Option</tt></td><td><tt>SystemItem</tt></td></tr><tr><td>ErrorCode</td><td>[Optional]</td><td>Token</td></tr><tr><td><tt>Filename</tt></td><td><i><tt>Parameter</tt></i></td><td>Trademark&#8482;</td></tr><tr><td><i>Firstterm</i></td><td>Phrase</td><td>Type</td></tr><tr><td><i>ForeignPhrase</i></td><td><tt>Prompt</tt></td><td><b><tt>UserInput</tt></b></td></tr><tr><td><tt>Function</tt></td><td>Property</td><td><i>WordAsWord</i></td></tr><tr><td>GUIMenuItem</td><td>&#8220;Quote&#8221;</td><td>ProductName&#8482;</td></tr><tr><td>GUIButton</td><td><i><tt>Replaceable</tt></i></td><td>&nbsp;</td></tr><tr><td>GUIButton (with Accel)</td><td>ReturnValue</td><td>&nbsp;</td></tr></table><p>And here are a couple of index terms, as another test (of 
+index terms, not inlines).
+<a class="indexterm" name="id2911422"/>
+<a class="indexterm" name="id2911451"/></p></div><div class="footnotes"><br/><hr width="100" align="left"/><div class="footnote"><p><sup>[<a name="ftn.fn1" href="#fn1">2</a>] </sup>Like this!</p></div><div class="footnote"><p><sup>[<a name="ftn.id2910296" href="#id2910296">3</a>] </sup>Well, the marks are, anyway!</p></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2911483"/>Chapter 4. Block Tests</h2></div></div><div class="simplesect"><a name="id2911497"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2911497"/>Formal Objects</h2></div></div><h5>Example</h5><div class="example"><p><a name="example"/><b>Example 4.1. An Example</b></p><p>This is an example of a trivial example.</p></div><h5>Figure</h5><div class="figure"><p><a name="figure"/><b>Figure 4.1. A Figure</b></p><pre class="screen">This is an example of a trivial figure.</pre></div><h5>Equation</h5><div class="equation"><p><a name="equation"/><b>Equation 4.1. An Equation</b></p><p><img src="emc2.gif"/></p></div><h5>Table</h5><div class="table"><p><a name="table"/><b>Table 4.1. A Table</b></p><table summary="A Table" border="1"><colgroup><col/><col/></colgroup><tbody><tr><td>1</td><td>1</td></tr><tr><td>2</td><td>4</td></tr><tr><td>3</td><td>9</td></tr></tbody></table></div></div><div class="simplesect"><a name="id2911818"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2911818"/>Informal Objects</h2></div></div><h5>InformalExample</h5><div class="informalexample" id="iexample"><a name="iexample"/><p>This is an example of a trivial, informal example.</p></div><h5>InformalEquation</h5><div class="informalequation" id="iequation"><a name="iequation"/><p><img src="emc2.gif"/></p></div><h5>InformalTable</h5><div class="informaltable" id="itable"><a name="itable"/><table border="1"><colgroup><col/><col/></colgroup><tbody><tr><td>1</td><td>1</td></tr><tr><td>2</td><td>8</td></tr><tr><td>3</td><td>27</td></tr></tbody></table></div></div><div class="simplesect"><a name="id2912041"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2912041"/>Admonitions</h2></div></div><h5>Note</h5><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2912070"/>Note</h3><p>Consider yourself noted.</p><p>Second para.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2912093"/>Note</h3><p>Consider yourself noted, simply.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2912109"/>NoteTitle</h3><p>Consider yourself noted.</p><p>Second para, with a title.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2912141"/>Att</h3><p>Consider yourself noted, simply.</p><p>With a title</p></div><h5>Important</h5><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2912188"/>Important</h3><p>Consider yourself important.</p></div><h5>Tip</h5><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2912206"/>Tip</h3><p>Consider yourself tipped.</p></div><h5>Warning</h5><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2912246"/>Warning</h3><p>Consider yourself warned.</p></div><h5>Caution</h5><div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2912276"/>Caution</h3><p>Consider yourself cautioned.</p></div><h5>SimPara in Caution</h5><div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2912306"/>Simple Caution</h3><p>A simpler caution.</p></div></div><div class="simplesect"><a name="id2912330"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2912330"/>Other Objects</h2></div></div><h5>Screen</h5><pre class="screen">This
+  is                  With a line-annotation
+    a 
+     screen
+     This
+    is                With a line-annotation
+  a 
+screen
+This
+  is                  With a line-annotation
+    a 
+     screen</pre><h5>ProgramListing</h5><pre class="programlisting">This
+  is
+    a 
+programlisting</pre><h5>Address</h5><div class="address">Norman Walsh<br/>
+ArborText, Inc.<br/>
+1000 Victors Way<br/>
+Ann Arbor, MI 48108<br/>
+US<br/>
+<br/>
+Voice: 313.997.0200<br/>
+Fax: 313.997.0201<br/>
+<br/>
+Email: <tt>&lt;<a href="mailto:nwalsh at arbortext.com">nwalsh at arbortext.com</a>&gt;</tt><br/>
+WWW: http://www.arbortext.com/</div><h5>BlockQuote</h5><blockquote class="blockquote"><p>The universe that we observe has precisely the properties we should 
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&#8212;Richard Dawkins</p></blockquote><h5>Procedure</h5><div class="procedure"><a name="id2912572"/><ol><li><a name="id2912589"/><p>This is the first step</p></li><li><a name="id2912610"/><p>This is the second step</p><ol type="a"><li><a name="id2912641"/><p>This is the first substep</p></li><li><a name="id2912662"/><p>This is the second substep</p></li></ol></li><li><a name="id2912687"/><p>This is the third step</p></li></ol></div><h5>Procedure With Title</h5><div class="procedure"><a name="id2912724"/><p><b>Same Procedure with a Title</b></p><ol><li><a name="id2912738"/><p>This is the first step</p></li><li><a name="id2912759"/><p>This is the second step</p><ol type="a"><li><a name="id2912790"/><p>This is the first substep</p></li><li><a name="id2912811"/><p>This is the second substep</p></li></ol></li><li><a name="id2912836"/><p>This is the third step</p></li></ol></div><h5>SideBar</h5><div class="sidebar"><a name="id2912862"/><p class="title"><b>What About Bob?</b></p><p>This is a sidebar.</p></div><h5>MsgSet</h5><p>It's not really clear how <tt>MsgSet</tt> should be presented.
+I expect that it's fairly application, if not document, specific.</p><div class="msgentry"><a name="id2912933"/><div class="msg"><a name="id2912939"/><p>Record failed CRC</p><p>Record <i><tt>n</tt></i>
+                    in <i><tt>database</tt></i></p><p>File read error on 
+                   <i><tt>database</tt></i></p><p>Panic! Corrupt record!</p></div><div class="msginfo"><a name="id2913062"/><p><b>Level: </b>severe</p><p><b>Origin: </b>server</p><p><b>Audience: </b>all</p></div><div class="msgexplan"><a name="id2913093"/><p>        Indicates that some sort of error occured attempting to load
+        a record from the database.  Retry.  If failure persists,
+        contact the database administrator.
+        </p></div></div><h5>LiteralLayout</h5><div class="literallayout">This is a<br/>
+literal<br/>
+       layout</div><p><div class="literallayout">This is a<br/>
+literal<br/>
+       layout<br/>
+  in a para</div></p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2913174"/>Chapter 5. List Tests</h2></div></div><div class="simplesect"><a name="id2913188"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2913188"/>OrderedLists</h2></div></div><h5>Default Numeration</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2913233"/>One</p></li><li><a name="id2913248"/><pre class="programlisting">this one starts with
+a program listing
+what happens?</pre></li><li><a name="id2913271"/><pre class="synopsis">this one starts with
+a synopsis
+what happens?</pre></li><li><p><a name="id2913293"/>para first</p><pre class="synopsis">this one has
+a synopsis
+what happens?</pre></li><li><p><a name="id2913323"/>Three</p><pre class="screen">A
+Screen
+Here</pre></li><li><p><a name="id2913352"/>Four</p></li></ol></div><h5>Arabic Numeration</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2913385"/>One</p></li><li><p><a name="id2913422"/>Two</p></li><li><p><a name="id2913436"/>Three</p></li><li><p><a name="id2913452"/>Four</p></li></ol></div><h5>Arabic Numeration (Long)</h5><div class="orderedlist"><ol type="1"><li><p><a name="id2913485"/>One</p></li><li><p><a name="id2913522"/>Two</p></li><li><p><a name="id2913537"/>Three</p></li><li><p><a name="id2913553"/>Four</p></li><li><p><a name="id2913569"/>Five</p></li><li><p><a name="id2913584"/>Six</p></li><li><p><a name="id2913600"/>Seven</p></li><li><p><a name="id2913616"/>Eight</p></li><li><p><a name="id2913631"/>Nine</p></li><li><p><a name="id2913647"/>Ten</p></li><li><p><a name="id2913663"/>Eleven</p></li></ol></div><h5>UpperAlpha Numeration</h5><div class="orderedlist"><ol type="A"><li><p><a name="id2913696"/>One</p></li><li><p><a name="id2913732"/>Two</p></li><li><p><a name="id2913748"/>Three</p></li><li><p><a name="id2913764"/>Four</p></li></ol></div><h5>LowerAlpha Numeration</h5><div class="orderedlist"><ol type="a"><li><p><a name="id2913796"/>One</p></li><li><p><a name="id2913833"/>Two</p></li><li><p><a name="id2913849"/>Three</p></li><li><p><a name="id2913864"/>Four</p></li></ol></div><h5>UpperRoman Numeration</h5><div class="orderedlist"><ol type="I"><li><p><a name="id2913897"/>One</p></li><li><p><a name="id2913934"/>Two</p></li><li><p><a name="id2913949"/>Three</p></li><li><p><a name="id2913965"/>Four</p></li></ol></div><h5>LowerRoman Numeration</h5><div class="orderedlist"><ol type="i"><li><p><a name="id2913998"/>One</p></li><li><p><a name="id2914034"/>Two</p></li><li><p><a name="id2914050"/>Three</p></li><li><p><a name="id2914066"/>Four</p></li></ol></div><h5>Continued</h5><p>First list:
+<div class="orderedlist"><ol type="1"><li><p><a name="id2914120"/>One</p></li><li><p><a name="id2914136"/>Two</p></li><li><p><a name="id2914152"/>Three</p></li><li><p><a name="id2914167"/>Four</p></li></ol></div></p><p>Second list:
+<div class="orderedlist"><ol start="5" type="1"><li><p><a name="id2914191"/>Five</p></li><li><p><a name="id2914222"/>Six</p></li><li><p><a name="id2914238"/>Seven</p></li><li><p><a name="id2914254"/>Eight</p></li><li><p><a name="id2914269"/>Nine</p></li><li><p><a name="id2914285"/>Ten</p></li></ol></div></p></div><div class="simplesect"><a name="id2914303"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2914303"/>ItemizedLists</h2></div></div><h5>Default Presentation</h5><div class="itemizedlist"><ul><li><p><a name="id2914337"/>One</p></li><li><a name="id2914353"/><pre class="programlisting">One-point-five. This one starts with
+a program listing
+what happens?</pre></li><li><p><a name="id2914376"/>Two</p></li><li><p><a name="id2914392"/>Three</p></li><li><p><a name="id2914408"/>Four</p></li></ul></div><h5>Block Elements in a List</h5><div class="itemizedlist"><ul><li><p><a name="id2914445"/>One</p><p>Another para.</p></li><li><p><a name="id2914469"/>Two</p></li><li><p><a name="id2914484"/>Three</p></li><li><p><a name="id2914500"/>Four</p></li></ul></div><h5>Alternate Mark and OverRide</h5><div class="itemizedlist"><ul><li style="list-style-type: square"><p><a name="id2914534"/>TeX and LaTeX</p></li><li style="list-style-type: disc"><p><a name="id2914564"/>Troff</p></li><li style="list-style-type: square"><p><a name="id2914580"/>Lout</p></li><li style="list-style-type: none"><p><a name="id2914600"/>Test</p></li></ul></div><h5>No mark Presentation</h5><div class="itemizedlist"><ul><li style="list-style-type: none"><p><a name="id2914649"/>One</p></li><li style="list-style-type: disc"><p><a name="id2914668"/>Two</p></li><li style="list-style-type: none"><p><a name="id2914684"/>Three</p></li><li style="list-style-type: none"><p><a name="id2914700"/>Four</p></li></ul></div></div><div class="simplesect"><a name="id2914719"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2914719"/>VariableLists</h2></div></div><div class="variablelist"><dl><dt><a name="id2914740"/><span class="term">Term1</span></dt><dd><p><a name="id2914754"/>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2914777"/><span class="term">Term2</span></dt><dd><p><a name="id2914792"/>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2914815"/><span class="term">Term3</span></dt><dd><p><a name="id2914829"/>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="itemizedlist"><ul><li><p><a name="id2914856"/>One</p></li><li><p><a name="id2914871"/>Two</p></li><li><p><a name="id2914887"/>Three</p></li><li><p><a name="id2914903"/>Four</p></li></ul></div><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2914938"/><span class="term">Term4</span></dt><dd><p><a name="id2914952"/>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd></dl></div><div class="variablelist"><dl><dt><a name="id2914984"/><span class="term">Another List</span></dt><dd><p><a name="id2914998"/>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd><dt><a name="id2915021"/><span class="term">ProgramListing</span></dt><dd><pre class="programlisting">A ProgramListing
+Is the First Element
+of this VarListEntry</pre><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd></dl></div></div><div class="simplesect"><a name="id2915077"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2915077"/>SimpleLists</h2></div></div><h5>Inline</h5><p>An inline simple list:
+<span class="simplelist">One, Two, Three, Four, Five, Six, Seven</span></p><h5>Horiz</h5><table class="simplelist" border="0" summary="Simple list"><tr><td>One</td><td>Two</td><td>Three</td></tr><tr><td>Four</td><td>Five</td><td>Six</td></tr><tr><td>Seven</td><td>&nbsp;</td><td>&nbsp;</td></tr></table><h5>Vert</h5><table class="simplelist" border="0" summary="Simple list"><tr><td>One</td><td>Four</td><td>Seven</td></tr><tr><td>Two</td><td>Five</td><td>&nbsp;</td></tr><tr><td>Three</td><td>Six</td><td>&nbsp;</td></tr></table></div><div class="simplesect"><a name="id2915352"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2915352"/>More Complex List Item Content</h2></div></div><div class="itemizedlist"><ul><li><p><a name="id2915373"/>One</p><p>Second para</p></li><li><p><a name="id2915396"/>Two</p><p>Second para</p></li><li><a name="id2915420"/><p>Three</p><p>Second para</p></li><li><p><a name="id2915443"/>Four</p><p>Second para</p></li><li><a name="id2915467"/><p><b>Formal Element</b> Five</p><p>Second para</p></li><li><p><a name="id2915506"/>Six</p></li></ul></div><div class="orderedlist"><ol type="1"><li><p><a name="id2915540"/>One</p><p>Second para</p></li><li><p><a name="id2915564"/>Two</p><p>Second para</p></li><li><a name="id2915588"/><p>Three</p><p>Second para</p></li><li><p><a name="id2915611"/>Four</p><p>Second para</p></li><li><a name="id2915635"/><p><b>Formal Element</b> Five</p><p>Second para</p></li><li><p><a name="id2915674"/>Six</p></li></ol></div></div><div class="simplesect"><a name="id2915693"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2915693"/>Segmented List</h2></div></div><p><b>State Birds</b></p><p><b>State: </b>Alabama</p><p><b>Bird: </b>Yellowhammer</p><p><b>State: </b>Alaska</p><p><b>Bird: </b>Willow Ptarmigan</p><p><b>State: </b>Arizona</p><p><b>Bird: </b>Cactus Wren</p><p><b>State: </b>Arkansas</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>California</p><p><b>Bird: </b>California Valley Quail</p><p><b>State: </b>Colorado</p><p><b>Bird: </b>Lark Bunting</p><p><b>State: </b>Connecticut</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Delaware</p><p><b>Bird: </b>Blue Hen Chicken</p><p><b>State: </b>Florida</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Georgia</p><p><b>Bird: </b>Brown Thrasher</p><p><b>State: </b>Hawaii</p><p><b>Bird: </b>Nene</p><p><b>State: </b>Idaho</p><p><b>Bird: </b>Mountain Bluebird</p><p><b>State: </b>Illinois</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Indiana</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Iowa</p><p><b>Bird: </b>Eastern Goldfinch</p><p><b>State: </b>Kansas</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Kentucky</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Louisiana</p><p><b>Bird: </b>Eastern Brown Pelican</p><p><b>State: </b>Maine</p><p><b>Bird: </b>Chickadee</p><p><b>State: </b>Maryland</p><p><b>Bird: </b>Baltimore Oriole</p><p><b>State: </b>Massachusetts</p><p><b>Bird: </b>Chickadee</p><p><b>State: </b>Michigan</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Minnesota</p><p><b>Bird: </b>Common Loon</p><p><b>State: </b>Mississippi</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Missouri</p><p><b>Bird: </b>Bluebird</p><p><b>State: </b>Montana</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Nebraska</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Nevada</p><p><b>Bird: </b>Mountain Bluebird</p><p><b>State: </b>New Hampshire</p><p><b>Bird: </b>Purple Finch</p><p><b>State: </b>New Jersey</p><p><b>Bird: </b>Eastern Goldfinch</p><p><b>State: </b>New Mexico</p><p><b>Bird: </b>Roadrunner</p><p><b>State: </b>New York</p><p><b>Bird: </b>Bluebird</p><p><b>State: </b>North Carolina</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>North Dakota</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Ohio</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Oklahoma</p><p><b>Bird: </b>Scissor-tailed Flycatcher</p><p><b>State: </b>Oregon</p><p><b>Bird: </b>Western Meadowlark</p><p><b>State: </b>Pennsylvania</p><p><b>Bird: </b>Ruffed Grouse</p><p><b>State: </b>Rhode Island</p><p><b>Bird: </b>Rhode Island Red</p><p><b>State: </b>South Carolina</p><p><b>Bird: </b>Great Carolina Wren</p><p><b>State: </b>South Dakota</p><p><b>Bird: </b>Ring-necked Pheasant</p><p><b>State: </b>Tennessee</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Texas</p><p><b>Bird: </b>Mockingbird</p><p><b>State: </b>Utah</p><p><b>Bird: </b>American Seagull</p><p><b>State: </b>Vermont</p><p><b>Bird: </b>Hermit Thrush</p><p><b>State: </b>Virginia</p><p><b>Bird: </b>Cardinal </p><p><b>State: </b>Washington</p><p><b>Bird: </b>Willow Goldfinch</p><p><b>State: </b>West Virginia</p><p><b>Bird: </b>Cardinal</p><p><b>State: </b>Wisconsin</p><p><b>Bird: </b>Robin</p><p><b>State: </b>Wyoming</p><p><b>Bird: </b>Western Meadowlark</p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2916887"/>Chapter 6. Table Tests</h2></div></div><h5>Alternate Alignment on Entry</h5><div class="informaltable" id="id2916921"><a name="id2916921"/><table border="1"><colgroup><col/><col/><col align="center"/></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left">left</td><td align="center">center</td><td>center</td></tr><tr><td align="center">center</td><td align="right">right</td><td align="right">right</td></tr></tbody></table></div><div class="informaltable" id="id2917143"><a name="id2917143"/><table border="1"><colgroup><col/><col/><col align="center"/></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left">left</td><td align="center">center</td><td>center</td></tr><tr><td align="center">center</td><td align="right">right</td><td align="right">right</td></tr></tbody></table></div><div class="informaltable" id="id2917360"><a name="id2917360"/><table border="1"><colgroup><col/><col/><col align="center"/></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td align="left"><i>left emph</i></td><td align="center"><b>center emph/bold</b></td><td><tt>center literal</tt></td></tr><tr><td align="center"><tt>center filename</tt></td><td align="right"><b>right command</b></td><td align="right">right</td></tr></tbody></table></div><h5>Absolute Widths</h5><div class="informaltable" id="id2917626"><a name="id2917626"/><table border="1"><colgroup><col/><col/><col align="center"/></colgroup><thead><tr><th>h1</th><th>h2</th><th>h3</th></tr></thead><tbody><tr><td>e1</td><td>e2</td><td>e3</td></tr><tr><td>e1</td><td>e2</td><td>e3</td></tr><tr><td>e1</td><td>e2</td><td>e3</td></tr></tbody></table></div><h5>Relative Widths</h5><div class="informaltable" id="id2917864"><a name="id2917864"/><table border="1"><colgroup><col/><col/></colgroup><tbody><tr><td align="left"><p>left</p></td><td align="center"><p>center</p></td></tr><tr><td align="center"><p>center</p></td><td align="right"><p>right</p></td></tr></tbody></table></div><h5>Too many cells</h5><p>This is a broken table.  There are too many cells in the second row.
+YMMV.  Don't do this.</p><div class="informaltable" id="id2918033"><a name="id2918033"/><table border="1"><colgroup><col/><col/></colgroup><tbody><tr><td>1</td><td>2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td></tr></tbody></table></div><h5>Missing Entrys</h5><div class="table"><p><a name="t1"/><b>Table 6.1. Table Title</b></p><table summary="Table Title" width="100%" border="1"><colgroup><col/><col/><col/></colgroup><thead><tr><th><p>head1</p></th><th><p>head2</p></th><th><p>head3</p></th></tr></thead><tbody><tr><td><p>a1</p></td><td><p>a2</p></td><td><p>a3</p></td></tr><tr><td><p>b1</p></td><td><p>b3</p></td></tr><tr><td colspan="0"><p>c2</p></td><td><p>c3</p></td></tr></tbody></table></div><h5>Complex</h5><div class="informaltable" id="id2918418"><a name="id2918418"/><table width="100%" border="1"><colgroup><col/><col align="right"/><col align="center"/><col/><col/><col align="left"/></colgroup><tbody><tr><td>A1</td><td>A2</td><td>A3</td><td rowspan="2">A4</td><td>A5</td><td>A6</td></tr><tr><td>B1</td><td>B2</td><td>B3</td><td>B5</td><td>B6</td></tr><tr><td>C1</td><td>C2</td><td>C3</td><td>C4</td><td rowspan="3" colspan="2" valign="middle">C5</td></tr><tr><td colspan="0">D2</td><td>D3</td><td>D4</td></tr><tr><td>E1</td><td colspan="2" align="left">E2</td><td>E4</td></tr><tr><td>F1</td><td>F2</td><td>F3</td><td>F4</td><td>F5</td><td>F6</td></tr></tbody></table></div><h5>With Footnotes</h5><div class="informaltable" id="id2918862"><a name="id2918862"/><table border="1"><colgroup><col/><col/></colgroup><tbody><tr><td>foo<sup>[<a name="fnrex1a" href="#ftn.fnrex1a">a</a>]</sup></td><td>3<sup>[<a name="fnrex1b" href="#ftn.fnrex1b">b</a>]</sup></td></tr><tr><td>bar<sup>[<a href="#ftn.fnrex1a">a</a>]</sup></td><td>5<sup>[<a href="#ftn.fnrex1b">b</a>]</sup></td></tr></tbody><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.fnrex1a" href="#fnrex1a">a</a>] </sup>A meaningless
+word</p></div><div class="footnote"><p><sup>[<a name="ftn.fnrex1b" href="#fnrex1b">b</a>] </sup>A meaningless
+number</p></div></td></tr></table></div><h5>A Big One</h5><div class="informaltable" id="id2919024"><a name="id2919024"/><table border="1"><colgroup><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/><col/></colgroup><thead><tr><th>H1</th><th>H2</th><th>H3</th><th>H4</th><th>H5</th><th>H6</th><th>H7</th><th>H8</th><th>H9</th><th>H10</th><th>H11</th><th>H12</th><th>H13</th><th>H14</th><th>H15</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td></tr></tbody></table></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2922939"/>Chapter 7. Index Term Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2923022">Index Term Sect 1</a></dt><dd><dl><dt> <a href="#id2923371">Index Term Sect 2</a></dt><dt> <a href="#id2923538">Index Term Sect 3</a></dt></dl></dd></dl></div><p>Test data.</p><a class="indexterm" name="idx1"/><a class="indexterm" name="idx2"/><div class="sect1"><a name="id2923022"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2923022"/>Index Term Sect 1</h2></div></div><p>Test data.</p><a class="indexterm" name="idx3"/><a class="indexterm" name="fred"/><a class="indexterm" name="idx5"/><a class="indexterm" name="idx6"/><a class="indexterm" name="idx7"/><a class="indexterm" name="idx8"/><a class="indexterm" name="idx9"/><a class="indexterm" name="id2923303"/><a class="indexterm" name="idx11"/><div class="sect2"><a name="id2923371"/><div class="titlepage"><div><h3 class="title"><a name="id2923371"/>Index Term Sect 2</h3></div></div><p>Test data.</p><a class="indexterm" name="idx12"/><a class="indexterm" name="idx13"/><a class="indexterm" name="idx14"/><a class="indexterm" name="idx15"/></div><div class="sect2"><a name="id2923538"/><div class="titlepage"><div><h3 class="title"><a name="id2923538"/>Index Term Sect 3</h3></div></div><p>foo</p></div></div></div></div><div class="part" id="part"><div class="titlepage"><div><h1 class="title"><a name="part"/>Part Two Title</h1></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>8 <a href="#id2923590">CmdSynopsis Tests</a></dt><dt>9 <a href="#id2924903">FuncSynopsis Tests</a></dt><dt>10 <a href="#id2925261">Callout Tests</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2923590"/>Chapter 8. CmdSynopsis Tests</h2></div></div><h5>Very Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2923619"><a name="id2923619"/><tt>cd</tt>  {<i><tt>directory</tt></i>}</div><h5>Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2923679"><a name="id2923679"/><tt>cal</tt>  [-j] [-y] [month  [year]]</div><h5>Another Simple CmdSynopsis</h5><div class="cmdsynopsis" id="id2923786"><a name="id2923786"/><tt>chgrp</tt>  [-R 
+     [-H | -L | -P]
+  ] [-f]  <i><tt>group</tt></i>   <i><tt>file</tt></i>... </div><h5>Slightly Complex CmdSynopsis</h5><div class="cmdsynopsis" id="id2923961"><a name="id2923961"/><tt>emacs</tt>  [-t <i><tt>file</tt></i>] [-q] [-u <i><tt>user</tt></i>] [+<i><tt>number</tt></i>] [-f <i><tt>function</tt></i>...] [-l <i><tt>file</tt></i>...]  <i><tt>file</tt></i>... </div><h5>Quite Complex CmdSynopsis</h5><div class="cmdsynopsis" id="id2924152"><a name="id2924152"/><tt>cccp</tt>  [-$] [-C] [-D<i><tt>name</tt></i> [=<i><tt>definition</tt></i>]...] [-dD] [-dM] [-I <i><tt>directory</tt></i>...] [-H] [-I-]<br/> [-imacros <i><tt>file</tt></i>...] [-include <i><tt>file</tt></i>...] [-lang-c | -lang-c++ | -lang-objc] [-lint]<br/> [-M | -MD | -MM | -MMD] [-nostdinc] [-P] [-pedantic] [-pedantic-errors] [-trigraphs] [-U<i><tt>name</tt></i>]<br/> [-undef] [-Wtrigraphs] [-Wcomment] [-Wall] [-Wtraditional] {<i><tt>infile</tt></i> | -} {<i><tt>outfile</tt></i> | -}</div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2924903"/>Chapter 9. FuncSynopsis Tests</h2></div></div><h5>Two Simple Parameters</h5><div class="funcsynopsis" id="id2924932"><a name="id2924932"/><p><code><code class="funcdef">int <b class="fsfunc">max</b></code>(<var class="pdparam">int1</var>, <var class="pdparam">int2</var>);<br/>int <var class="pdparam">int1</var>;<br/>int <var class="pdparam">int2</var>;</code></p></div><h5>Variable Arguments</h5><div class="funcsynopsis" id="id2925017"><a name="id2925017"/><pre class="funcsynopsisinfo">#include &lt;varargs.h&gt;</pre><p><code><code class="funcdef">int <b class="fsfunc">max</b></code>(...);</code></p></div><h5>Void</h5><div class="funcsynopsis" id="id2925089"><a name="id2925089"/><p><code><code class="funcdef">int <b class="fsfunc">rand</b></code>();</code></p></div><h5>Function Pointer Arguments</h5><div class="funcsynopsis" id="id2925142"><a name="id2925142"/><p><code><code class="funcdef">void <b class="fsfunc">qsort</b></code>(<var class="pdparam">dataptr</var>, <var class="pdparam">left</var>, <var class="pdparam">right</var>, <var class="pdparam">(* comp)</var>);<br/>void *<var class="pdparam">dataptr</var>[];<br/>int <var class="pdparam">left</var>;<br/>int <var class="pdparam">right</var>;<br/>int <var class="pdparam">(* comp)</var>
+      (void *, void *);</code></p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2925261"/>Chapter 10. Callout Tests</h2></div></div><h5>CallOut (using AREASPEC)</h5><div class="programlistingco"><pre class="programlisting">@rem = '--*-Perl-*--
+ at echo off
+perl.exe %_batchname %$
+goto endofperl
+ at rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+ at DIRS = (&quot;/home/nwalsh/Mail&quot;);
+while (@DIRS) {
+    $dir = shift @DIRS;
+    opendir (DIR, $dir);
+    while ($fname = readdir(DIR)) {
+        $file = &quot;$dir/$fname&quot;;
+        next if ! -d $file;
+        next if $fname =~ /^\.\.?$/;
+
+        print &quot;$file\n&quot;;
+        push (@DIRS, $file);
+        &amp;compress ($file);
+    }
+}
+
+exit;</pre><div class="calloutlist"><a name="id2925454"/><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a name="id2925463"/><img src="../images/callouts/1.png" alt="1" border="0"/></td><td valign="top" align="left"><p>The prologue handles embedding a Perl script in a DOS batch file.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2925506"/><img src="../images/callouts/2.png" alt="2" border="0"/></td><td valign="top" align="left"><p>The <tt>goto</tt> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2925547"/><img src="../images/callouts/3.png" alt="3" border="0"/></td><td valign="top" align="left"><p>The <tt>require</tt> statement sources in external program
+fragments.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2925589"/><img src="../images/callouts/4.png" alt="4" border="0"/></td><td valign="top" align="left"><p>The <tt>use</tt> statement is similar, but has additional
+utility.  It is a Perl5 function.  (Note that this callout area specifies
+both a line and a column.)</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2925632"/><img src="../images/callouts/5.png" alt="5" border="0"/></td><td valign="top" align="left"><p>This is a user subroutine call.</p></td></tr></table></div></div><h5>CallOut (using CO)</h5><pre class="programlisting">this is a line
+this is another line
+there's a <a name="callout1"/><img src="../images/callouts/1.png" alt="1" border="0"/>callout in here.
+and there's another on the
+next line
+right here:<a name="callout2"/><img src="../images/callouts/2.png" alt="2" border="0"/></pre><div class="calloutlist"><a name="id2925702"/><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left"><a name="id2925724"/><a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"/></a> </td><td valign="top" align="left"><p>First callout.</p><p>Second para in first callout.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2925760"/><a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"/></a> </td><td valign="top" align="left"><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Second callout.</p><p>Third para in second callout.</p></td></tr><tr><td width="5%" valign="top" align="left"><a name="id2925809"/><a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"/></a> <a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"/></a> </td><td valign="top" align="left"><p>This paragraph describes <i>both</i> callouts.</p></td></tr></table></div></div></div><div class="part" id="id2925845"><div class="titlepage"><div><h1 class="title"><a name="id2925845"/>A Reference Part</h1></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>I <a href="#reference">Reference</a></dt><dd><dl><dt><a href="#id2925883">RefEntryTitle</a></dt><dt><a href="#id2926073"><tt>Chop</tt></a></dt></dl></dd></dl></div><div class="reference"><a name="reference"/><div class="titlepage"><div><h1 class="title"><a name="reference"/>Reference</h1></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2925883">RefEntryTitle</a></dt><dt><a href="#id2926073"><tt>Chop</tt></a></dt></dl></div><div class="refentry"><h1 class="title"><a name="id2925883"/>RefEntryTitle</h1><div class="refnamediv"><a name="id2925905"/><h2>Name</h2>RefName1, RefName2 &#8212; Yes, there must be a purpose!</div><div class="refsynopsisdiv"><a name="id2925945"/><h2>Synopsis</h2><pre class="synopsis">  A
+   Synopsis
+    Goes
+   Here</pre></div><div class="refsect1"><a name="id2925967"/><h2><a name="id2925967"/>A RefSect1</h2><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="refsect2"><a name="id2925995"/><h3><a name="id2925995"/>A RefSect2</h3><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="refsect3"><a name="id2926023"/><h4><a name="id2926023"/>A RefSect3</h4><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<sup>[<a name="id2926046" href="#ftn.id2926046">6</a>]</sup>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></div></div></div><div class="footnotes"><br/><hr width="100" align="left"/><div class="footnote"><p><sup>[<a name="ftn.id2926046" href="#id2926046">6</a>] </sup>This is a footnote in a refentry.</p></div></div></div><div class="refentry"><h1 class="title"><a name="id2926073"/><tt>Chop</tt></h1><div class="refnamediv"><a name="id2926079"/><h2>Name</h2><tt>Chop</tt> &#8212; strip trailing whitespace</div><div class="refsect1"><a name="id2926111"/><h2><a name="id2926111"/>Description</h2><p>     Returns the argument string without trailing whitespace.
+     <div class="example"><p><a name="id2926132"/><b>Example 2. chop() example</b></p><pre class="programlisting">$trimmed = Chop($line);</pre></div>
+    </p></div></div></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="appendix"/>Appendix A. A Very Short Appendix</h2></div></div><p>Blah.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2926204"/>Appendix B. A Very Long Appendix</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2926854">a sect1 title</a></dt><dd><dl><dt> <a href="#id2926893">a sect2 title</a></dt></dl></dd><dt> <a href="#id2927024">another sect1 title</a></dt><dd><dl><dt> <a href="#id2927079">another sect2 title</a></dt></dl></dd><dt> <a href="#id2927314">another sect1 title</a></dt><dt> <a href="#id2927346">another sect1 title</a></dt></dl></div><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p><div class="sect1"><a name="id2926854"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2926854"/>a sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2926893"/><div class="titlepage"><div><h3 class="title"><a name="id2926893"/>a sect2 title</h3></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2926924"/><div class="titlepage"><div><h4 class="title"><a name="id2926924"/>a sect3 title</h4></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2926955"/><div class="titlepage"><div><h5 class="title"><a name="id2926955"/>a sect4 title</h5></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2926985"/><div class="titlepage"><div><h6 class="title"><a name="id2926985"/>a sect5 title</h6></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="id2927024"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2927030"/>another sect1 title</h2></div><div><h2 class="subtitle">a sect1 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect2"><a name="id2927079"/><div class="titlepage"><div><h3 class="title"><a name="id2927085"/>another sect2 title</h3></div><div><h2 class="subtitle">a sect2 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect3"><a name="id2927133"/><div class="titlepage"><div><h4 class="title"><a name="id2927139"/>another sect3 title</h4></div><div><h2 class="subtitle">a sect3 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect4"><a name="id2927196"/><div class="titlepage"><div><h5 class="title"><a name="id2927203"/>another sect4 title</h5></div><div><h2 class="subtitle">a sect4 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p><div class="sect5"><a name="id2927251"/><div class="titlepage"><div><h6 class="title"><a name="id2927257"/>another sect5 title</h6></div><div><h2 class="subtitle">a sect5 subtitle</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div></div></div></div><div class="sect1"><a name="id2927314"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2927314"/>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div><div class="sect1"><a name="id2927346"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2927346"/>another sect1 title</h2></div></div><p>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </p></div></div><div id="bib1" class="bibliography"><div class="titlepage"><div><h2 class="title"><a name="bib1"/>A Test Bibliography</h2></div></div><p>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</p><div class="bibliodiv"><h3 class="title"><a name="id2927414">Books</a></h3><div id="id2927428" class="biblioentry"><a name="id2927428"/><p><span class="abbrev">[AhoSethiUllman96] </span><span class="authorgroup">Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </span><span class="title"><I>Compilers, Principles, Techniques, and Tools</I>. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span><span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span><span class="isbn">0-201-10088-6. </span><span class="editor">James T. DeWolf. </span><span class="seriesinfo"><span class="title"><I>Computer Science</I>. </span><span class="editor">Michael A. Harrison. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span></span></p></div></div><div class="bibliodiv"><h3 class="title"><a name="id2927660">Periodicals</a></h3><div id="walsh97" class="biblioentry"><a name="walsh97"/><p><span class="abbrev">[Walsh97] </span><span class="biblioset">&#8220;A Guide to XML&#8221;. <span class="author">Norman Walsh. </span><span class="pubdate">1997. </span><span class="copyright">Copyright © 1997 ArborText, Inc.. </span><span class="pagenums">97-108. </span></span><span class="biblioset"><I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span><span class="issn">1085-2301. </span><span class="editor">Dan Connolly. </span></span></p></div><div id="walsh96" class="bibliomixed"><a name="walsh96"/><p>  <span class="bibliomset">    <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+    &#8220;Introduction to Cascading Style Sheets&#8221;.
+  </span>
+  <span class="bibliomset">    <I>The World Wide Web Journal</I>.
+    <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+    <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+    <span class="corpname">The World Wide Web Consortium</span>.
+    <span class="pubdate">Winter, 1996</span></span>.</p></div><div id="id2927971" class="biblioentry"><a name="id2927971"/><p><span class="abbrev">[Abbrev] </span><span class="title"><I>A Really Full BiblioEntry</I>. </span><span class="subtitle">Subtitle. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span><span class="artpagenums">ArtPageNums. </span><span class="author">AuthorFirstname AuthorSurname. </span><span class="authorinitials">AuthorInitials. </span><span class="collab"><span class="collabname">The names of some collaborators. </span><span class="affiliation"><span class="shortaffil">shortaffil. </span><span class="jobtitle">jobtitle. </span><span class="orgname">orgname. </span><span class="orgdiv">orgdiv. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span><span class="confgroup"><span class="confdates">confdates. </span><span class="conftitle">conftitle. </span><span class="confnum">confnum. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span><span class="confsponsor">confsponsor. </span>. </span><span class="contractnum">ContractNum. </span><span class="contractsponsor">ContractSponsor. </span><span class="contrib">Contrib. </span><span class="copyright">Copyright © 1998 Copyright holder. </span><span class="corpname">CorpName. </span><span class="date">Date. </span><span class="edition">Edition. </span><span class="editor">EditorFirstName EditorSurname. </span><span class="firstname">FirstName. </span><span class="honorific">Honorific. </span><span class="isbn">ISBN. </span><span class="issn">ISSN. </span><span class="invpartnumber">InvPartNumber. </span><span class="issuenum">IssueNum. </span><span class="lineage">Lineage. </span><span class="orgname">OrgName. </span><span class="othercredit"><span class="firstname">OCFirstName. </span><span class="surname">OCSurname. </span>. </span><span class="othername">OtherName. </span><span class="pagenums">PageNums. </span><span class="productname">ProductName. </span><span class="productnumber">ProductNumber. </span><span class="pubdate">PubDate. </span><span class="publisher"><span class="publishername">PubPublisherName. </span><span class="address">Any Street
+Anywhere, XX 99999
+USA. </span></span><span class="publishername">PublisherName. </span><span class="pubsnumber">PubsNumber. </span><span class="releaseinfo">ReleaseInfo. </span><span class="revhistory"><tr><td align="left">Revision 1.0</td><td align="left">20 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.9</td><td align="left">19 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr><tr><td align="left">Revision 0.4</td><td align="left">18 Nov 1998</td><td align="left">ndw</td></tr><tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span><span class="seriesinfo"><span class="title"><I>SeriesInfo Title</I>. </span><span class="editor">SeriesInfo Editor Firstname SeriesInfo Editor Surname. </span></span><span class="seriesvolnums">SeriesVolNums. </span><span class="surname">Surname. </span><span class="titleabbrev">TitleAbbrev. </span><span class="volumenum">VolumeNum. </span></p></div></div></div><div id="gloss" class="glossary"><div class="titlepage"><div><h2 class="title"><a name="gloss"/>Example Glossary</h2></div></div><p>This is not a real glossary, it's just an example.</p><div class="glossdiv"><h3 class="title">E</h3><dl><dt><a name="xml">Extensible Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd></dl></div><div class="glossdiv"><h3 class="title">S</h3><dl><dt><a name="id2928945">SGML</a></dt><dd><p>See <a href="#sgml">Standard Generalized
+  Markup Language</a>.</p></dd><dt><a name="sgml">Standard Generalized
+  Markup Language</a></dt><dd><p>Some reasonable definition here.</p><p>See Also <a href="#xml">Extensible Markup Language</a>.</p></dd></dl></div></div><div id="index" class="index"><div class="titlepage"><div><h2 class="title"><a name="index"/>Index</h2></div></div><p>This is a test index.</p><p><b>a formal para</b> this is a formal paragraph.</p><dt>Primary</dt><dd><dl><dt>Secondary 1</dt><dd><dl><dt>Tertiary 11</dt><dt>Tertiary 12</dt><dt>Tertiary 21</dt></dl></dd><dt>Secondary 2</dt><dd><dl><dt>Tertiary 21</dt></dl></dd></dl></dd><dt>primary</dt><dt>primary</dt><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary1</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary</dt><dd><dl><dt>tertiary2</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt></dl></dd></dl></dd><dt>primary</dt><dd><dl><dt>see ie</dt></dl></dd><dt>primary</dt><dd><dl><dt>secondary2</dt><dd><dl><dt>tertiary3</dt><dd><dl><dt>seealso ie</dt></dl></dd></dl></dd></dl></dd></div><div id="id2929429" class="index"><div class="titlepage"><div><h2 class="title"><a name="id2929429"/>An Index with a Title</h2></div></div><div class="indexdiv">Symbols<dl><dt>!,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt><dt>[,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">A<dl><dt>sect2-level,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></div><div class="indexdiv">C<dl><dt>chap-level,
+    <a href="c3.htm" target="_top">Index Term Tests</a>
+  </dt><dd><dl><dt>sec
+  </dt><dd><dl><dt>tert,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt></dl></dd></dl></dd></dl></div><div class="indexdiv">O<dl><dt>oft-repeated,
+    <a href="c3.htm" target="_top">Index Term Tests</a>,
+    <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+  </dt><dd><dl><dt>with id,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div><div class="indexdiv">S<dl><dt>sect1-level,
+    <a href="c3.htm#aen10" target="_top"><i>Index Term Sect 1</i></a>
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd><dt>sect1-other
+  </dt><dd><dl><dt>sec,
+    <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+  </dt></dl></dd></dl></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/docbook40.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/docbook40.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/docbook40.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>DocBook V4.0 Example Document</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2602144"><div class="titlepage"><div><h1 class="title"><a name="id2602144"/>DocBook V4.0 Example Document</h1></div><div><h3 class="author">Norman Walsh</h3></div><div><div class="abstract"><p><a name="id2790082"/><b>Abstract</b></p><p>This document demonstrates the new tags in DocBook V4.0.</p><p>The focus of this document is to present examples of new elements,
+minor changes such as the addition of new attribute values are not
+included.</p></div></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#id2909938">Block-level Markup</a></dt><dt>2 <a href="#id2792579">Inline markup</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2909938"/>Chapter 1. Block-level Markup</h2></div></div><p>There's a new simple-alternative for <tt>msgentry</tt>:
+<tt>simplemsgentry</tt>.</p><div class="simplemsgentry"><a name="id2909975"/><p>The text of a message</p><div class="msgexplan"><a name="id2789946"/><p>An explanation of the message.</p></div></div><div class="simplemsgentry"><a name="id2789959"/><p>The text of a message</p><div class="msgexplan"><a name="id2789976"/><p>An explanation of the message.</p></div></div><p>Longer descriptions are possible in a <tt>revhistory</tt>:
+</p><p>
+<div class="revhistory"><table border="0" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr><tr><td align="left">Revision 2</td><td align="left">today</td><td align="left">nwalsh</td></tr><tr><td align="left">Revision 1</td><td align="left">yesterday</td><td align="left">nwalsh</td></tr></table></div>
+</p><p>Ordered and itemized lists can have titles:</p><div class="itemizedlist"><p><b>Itemized List</b></p><ul><li><p><a name="id2792268"/>First thing</p></li><li><p><a name="id2792279"/>Second thing</p></li><li><p><a name="id2792289"/>Third thing</p></li></ul></div><div class="itemizedlist"><p><b>Ordered List</b></p><ul><li><p><a name="id2792313"/>First thing</p></li><li><p><a name="id2792324"/>Second thing</p></li><li><p><a name="id2792334"/>Third thing</p></li></ul></div><p>Linespecific environments can indicate line numbering:</p><pre class="programlisting">
+&lt;!ENTITY % linespecific.attrib
+	&quot;format		NOTATION
+			(linespecific)	'linespecific'
+         linenumbering	(numbered|unnumbered) 	#IMPLIED&quot;&gt;
+</pre><p>Added <tt>classsynopsis</tt> for documenting
+object-oriented programming language classes. Here's one example:</p><pre class="classsynopsis"> <span class="ooclass"><span class="modifier">public </span><span class="classname">TextFileWriter</span></span> extends <span class="ooclass"><span class="classname">HandlerBase</span></span> {
+
+<div class="fieldsynopsis">  <span class="modifier">private </span><span class="type">Writer </span><span class="varname">writer </span>;</div><div class="fieldsynopsis">  <span class="modifier">public </span><span class="type">String </span><span class="varname">writerName </span><span class="initializer">= &quot;MyWriter&quot;</span>;</div><div class="methodsynopsis">  <span class="modifier">static </span><span class="modifier">public </span><span class="void">void </span><span class="methodname">write</span>(<span class="methodparam"><span class="type">ResultTreeFragment </span><span class="parameter">frag</span></span>,
+                           <span class="methodparam"><span class="type">String </span><span class="parameter">file</span></span>)
+    throws <span class="exceptionname">SAXException</span>;</div>}</pre></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2792579"/>Chapter 2. Inline markup</h2></div></div><p>The <tt>sgmltag</tt> element has new
+<tt>class</tt> attribute values:
+<tt>xmlpi</tt> and
+<tt>emptytag</tt>. These produce
+<tt>&lt;?processing instructions?&gt;</tt>
+and <tt>&lt;empty-tag/&gt;</tt> markup
+suitable for XML.
+</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/external.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/external.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/external.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Main document</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2602114"><div class="titlepage"><div><h1 class="title"><a name="id2602114"/>Main document</h1></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#main"/></dt><dt>2 <a href="#subdoc"/></dt></dl></div><div class="chapter"><div class="titlepage"/><p>This references to: <a href="#subdoc" title="Chapter 2. "/></p></div><div class="chapter"><div class="titlepage"/><p>This is nothing, but a subdoc</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/figtest.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/figtest.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/figtest.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Article Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2602977"/>Article Test Document Title</h2></div><hr/></div><p>
+This is a &#8220;short quote&#8221;.
+This is a &#8220;Quotation with a &#8216;nested quotation
+containing a &#8220;nested quotation and another &#8216;nested
+quotation&#8217;&#8221;&#8217;&#8221;.
+</p><div class="figure"><p><a name="testfig1"/><b>Figure 1. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div><p>This para contains an xref to a figure: <a href="#testfig1" title="Figure 1. Test Figure">Figure 1. Test Figure</a>.
+</p><div class="figure"><p><a name="testfig2"/><b>Figure 2. Test Figure2</b></p><pre class="programlisting">A Second
+  Test Figure
+</pre></div><p>This para contains an <a href="#testfig2" title="Figure 2. Test Figure2">link</a> to a
+figure. And an xref:  <a href="#testfig2" title="Figure 2. Test Figure2">Figure 2. Test Figure2</a>.
+</p><div class="figure"><p><a name="testfig3"/><b>Figure 3. Test Figure</b></p><pre class="programlisting">This is a
+  ProgramListing
+</pre></div><p>This para contains an xref to a figure: <a href="#testfig3" title="Figure 3. Test Figure">Figure 3. Test Figure</a>.
+</p></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/foottest.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/foottest.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/foottest.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Article Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2602977"/>Article Test Document Title</h2></div><div><h3 class="corpauthor">nwalsh</h3><h3 class="author">Norman Walsh</h3><h3 class="othercredit">Other Credit</h3><h4 class="editedby">Edited by</h4><h3 class="editor">Someother Editor</h3><h3 class="author">Someone Else</h3></div><div><p class="copyright">Copyright © 1999 Norman Walsh</p></div><div><p class="pubdate">Apr. 26, 1999</p></div><div><div class="abstract"><p><a name="id2787375"/><b>Abstract</b></p><p>This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</p></div></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>A <a href="#id2787678">Appendix</a></dt></dl></div><p>This is a footnote<sup>[<a name="id2787404" href="#ftn.id2787404">1</a>]</sup>.</p><div class="informaltable" id="id2787417"><a name="id2787417"/><table border="1"><colgroup><col/><col/><col/></colgroup><tbody><tr><td>entry</td><td>entry</td><td>entry</td></tr><tr><td>entry<sup>[<a name="id2787479" href="#ftn.id2787479">a</a>]</sup></td><td>entry</td><td>entry</td></tr><tr><td>entry</td><td>entry</td><td>entry</td></tr><tr><td>Nebbiolo, Bonarda<sup>[<a name="ch15tb1" href="#ftn.ch15tb1">b</a>]</sup></td><td> </td><td> </td></tr><tr><td>Sangiovese, Canaiolo, and others<sup>[<a href="#ftn.ch15tb1">b</a>]</sup></td><td> </td><td> </td></tr></tbody><tr><td colspan="3"><div class="footnote"><p><sup>[<a name="ftn.id2787479" href="#id2787479">a</a>] </sup>table cell footnote</p></div><div class="footnote"><p><sup>[<a name="ftn.ch15tb1" href="#ch15tb1">b</a>] </sup>
+<i>Blended wines, made from two or more grapes</i>
+</p></div></td></tr></table></div><div class="appendix"><h2 class="title" style="clear: both"><a name="id2787678"/>A. Appendix</h2><p>This is just a test.</p></div><div class="footnotes"><br/><hr width="100" align="left"/><div class="footnote"><p><sup>[<a name="ftn.id2787404" href="#id2787404">1</a>] </sup>See?</p></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/fotest.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/fotest.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/fotest.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Book Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2874261"><div class="titlepage"><div><h1 class="title"><a name="id2874261"/>Bookinfo Test Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2897980">Foreword</a></dt><dt>1 <a href="#id2790032">First Chapter</a></dt><dt>A <a href="#id2790072">First Appendix</a></dt></dl></div><div id="id2897980" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2897980"/>Foreword</h2></div></div><p>This is a test paragraph.</p><div class="table"><p><a name="table"/><b>Table 1. A Table</b></p><table summary="A Table" border="1"><colgroup><col/><col/></colgroup><tbody><tr><td>1</td><td>1</td></tr><tr><td>2</td><td>4</td></tr><tr><td>3</td><td>9</td></tr></tbody></table></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2790032"/>Chapter 1. First Chapter</h2></div><div><h3 class="subtitle"><i>Chapter Subtitle</i></h3></div></div><p>This is a test paragraph.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2790072"/>Appendix A. First Appendix</h2></div></div><p>This is just a test.</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/func.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/func.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/func.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Chapter 1. test</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ch1"/>Chapter 1. test</h2></div></div><p>
+This is a <tt>foo<i><tt>x</tt></i>, <i><tt>y</tt></i></tt>. This is just a <i><tt>x</tt></i>.
+</p><p>
+This is a <tt>bar<i><tt>x</tt></i>, <tt>y<i><tt>z</tt></i></tt></tt>. This is just a <i><tt>x</tt></i>.
+</p><p>
+This is a <tt>bar<i><tt>x</tt></i>, <i><tt>z</tt></i></tt>. This is just a <i><tt>x</tt></i>.
+</p><p>
+This is a just a function <tt>bar</tt>.
+</p></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/gdp-handbook.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/gdp-handbook.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/gdp-handbook.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3300 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>The GNOME Handbook of Writing Software Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="index"/>The GNOME Handbook of Writing Software Documentation</h2></div><div><h3 class="author">David Mason</h3><div class="affiliation"><span class="orgname">Red Hat, Inc.<br/></span><div class="address"><br/>
+            <tt>&lt;<a href="mailto:dcm at redhat.com">dcm at redhat.com</a>&gt;</tt><br/>
+          </div></div><h3 class="author">Daniel Mueth</h3><div class="affiliation"><div class="address"><br/>
+            <tt>&lt;<a href="mailto:d-mueth at uchicago.edu">d-mueth at uchicago.edu</a>&gt;</tt><br/>
+          </div></div><h3 class="author">Alexander Kirillov</h3><div class="affiliation"><div class="address"><br/>
+            <tt>&lt;<a href="mailto:kirillov at math.sunysb.edu">kirillov at math.sunysb.edu</a>&gt;</tt><br/>
+          </div></div></div><div><p class="releaseinfo">
+      This is a pre-release!
+    </p></div><div><p class="copyright">Copyright © 2000 Red Hat, Inc., Daniel Mueth, and Alexander Kirillov</p></div><div><div class="legalnotice"><p>
+      Permission is granted to copy, distribute and/or modify this
+      document under the terms of the <i>GNU Free Documentation
+      License</i>, Version 1.1 or any later version published
+      by the Free Software Foundation with no Invariant Sections, no
+      Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy
+      of the <i>GNU Free Documentation License</i> from
+      the Free Software Foundation by visiting <a href="http://www.fsf.org" target="_top">their Web site</a> or by writing to:
+      Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+      Boston, MA 02111-1307, USA.
+     </p><p>
+      Many of the names used by companies to distinguish their products and
+      services are claimed as trademarks. Where those names appear in any
+      GNOME documentation, and those trademarks are made aware to the members
+      of the GNOME Documentation Project, the names have been printed in caps
+      or initial caps.
+     </p></div></div><div><div class="revhistory"><table border="1" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
+          0.99
+        </td><td align="left">
+         04.10.2000
+        </td></tr></table></div></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#intro">Introduction</a></dt><dd><dl><dt> <a href="#gdp">The GNOME Documentation Project</a></dt><dt> <a href="#notation">Notation and Conventions</a></dt><dt> <a href="#about">About This Handbook</a></dt></dl></dd><dt> <a href="#gettingstarted">Getting Started Writing GNOME Documentation</a></dt><dd><dl><dt> <a href="#selecting">Selecting A Document</a></dt><dt> <a href="#docbook">Installing and Using DocBook</a></dt><dt> <a href="#gdptemplates">GDP Document Templates</a></dt><dt> <a href="#screenshots">Screenshots</a></dt><dt> <a href="#applicationbugs">Application Bugs</a></dt><dt> <a href="#cvs">Using CVS</a></dt></dl></dd><dt> <a href="#gnomedocsystem">The GNOME Documentation System</a></dt><dd><dl><dt> <a href="#gnomehelpbrowser">The GNOME Help Browser</a></dt><dt> <a href="#gnomehelpbrowser2">The GNOME Help Browser (GNOME-2.0)</a></dt><dt> <a href="#gnomehelponthefly">Dynamic Document Synthesis(GNOME-2.0)</a></dt><dt> <a href="#gnomehelpcomponents">The GNOME Documentation Components</a></dt></dl></dd><dt> <a href="#docbookbasics">DocBook Basics </a></dt><dd><dl><dt> <a href="#introtodocbook">Introduction to DocBook</a></dt><dt> <a href="#xml">XML and SGML</a></dt><dt> <a href="#structure"> Structure Elements</a></dt><dt> <a href="#inline">Inline Elements</a></dt></dl></dd><dt> <a href="#conventions">GDP Documentation Conventions </a></dt><dd><dl><dt> <a href="#conventionsalldocs">Conventions for All GDP Documentation</a></dt><dt> <a href="#conventionsappdocs">Conventions for Application Documentation</a></dt></dl></dd><dt> <a href="#writingapplicationmanuals">Writing Application and Applet Manuals</a></dt><dt> <a href="#listingdocsinhelpmenu">Listing Documents in the Help Menu</a></dt><dt> <a href="#applicationhelpbuttons">Application Help Buttons</a></dt><dt> <a href="#packagingappletdocs">Packaging Applet Documentation</a></dt><dd><dl><dt> <a href="#appletfiles">Applet Documentation Files</a></dt><dt> <a href="#appletmenu">Adding Documentation to an Applet Menu</a></dt></dl></dd><dt> <a href="#writingcontextsensitivehelp">Writing Context Sensitive Help (coming in GNOME-2.0)</a></dt><dt> <a href="#referring">Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</a></dt><dt> <a href="#basics">Basics of Documentation Style</a></dt><dd><dl><dt> <a href="#styleplanning">Planning</a></dt><dt> <a href="#balance">Achieving a Balanced Style</a></dt><dt> <a href="#stylestructure">Structure</a></dt><dt> <a href="#stylegrammar">Grammar and Spelling</a></dt></dl></dd><dt> <a href="#teamwork">Teamwork</a></dt><dd><dl><dt> <a href="#teamworkgdp">Working With The GDP Team</a></dt><dt> <a href="#teamworkdevelopers">Working With Developers</a></dt></dl></dd><dt> <a href="#finishing">Finishing A Document</a></dt><dd><dl><dt> <a href="#editting">Editing The Document</a></dt><dt> <a href="#submitting">Submitting The Document</a></dt></dl></dd><dt> <a href="#resources">Resources</a></dt><dd><dl><dt> <a href="#resourcesweb">Resources On The Web</a></dt><dt> <a href="#resourcesbooks">Books</a></dt><dt> <a href="#mailinglists">Mailing Lists</a></dt><dt> <a href="#irc">IRC</a></dt></dl></dd><dt>A <a href="#templates">Document Templates</a></dt><dd><dl><dt> <a href="#template1">Template 1: Application Manual</a></dt><dt> <a href="#template2-1x">Template 2: Applet Manual For GNOME 1.x</a></dt><dt> <a href="#template2-2x">Template 2: Applet Manual For GNOME 2.x</a></dt></dl></dd></dl></div><div class="sect1"><a name="intro"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="intro"/>Introduction</h2></div></div><div class="sect2"><a name="gdp"/><div class="titlepage"><div><h3 class="title"><a name="gdp"/>The GNOME Documentation Project</h3></div></div><div class="sect3"><a name="goals"/><div class="titlepage"><div><h4 class="title"><a name="goals"/>Goals</h4></div></div><p>
+          The GNOME Documentation Project (GDP) aims to provide GNOME
+          and GNOME applications with a complete, intuitive, and clear
+          documentation system.  At the center of the GDP is the
+          GNOME Help Browser, which
+          presents a unified interface to GNOME-specific documentation
+          as well as other Linux documentation such as man pages and
+          texinfo documents. The GNOME Help System provides a
+          comprehensive view of documentation on a machine by
+          dynamically assembling the documentation of GNOME
+          applications and components which are installed. The GDP is
+          responsible for writing numerous GNOME-related documents,
+          both for developers and for users.  Developer documentation
+          includes <a href="http://developer.gnome.org/doc/API/" target="_top">APIs for the GNOME libraries</a>, <a href="http://developer.gnome.org/doc/whitepapers/" target="_top"><i>GNOME White
+          Papers</i></a>, GNOME developer <a href="http://developer.gnome.org/doc/tutorials/" target="_top">tutorials</a>, the <a href="http://developer.gnome.org/doc/FAQ/" target="_top"><i>GNOME Developer
+          FAQ</i></a>, the <a href="http://developer.gnome.org" target="_top">GNOME
+          Developer's Website</a>, and <i>GNOME
+          Handbook</i>'s, such as the one you are reading.
+          User documentation include the <a href="http://www.gnome.org/learn/" target="_top"><i>GNOME User's
+          Guide</i></a>, the <a href="http://www.gnome.org/learn/" target="_top"><i>GNOME FAQ</i></a>, and
+          GNOME application documentation.  Most GNOME applications
+          have their own manual in addition to context sensitive help.
+        </p></div><div class="sect3"><a name="joining"/><div class="titlepage"><div><h4 class="title"><a name="joining"/>Joining the GDP</h4></div></div><p>
+         Documenting GNOME and all the numerous GNOME applications is
+         a very large project.  The GDP is always looking for people
+         to help write, update, and edit documentation.  If you are
+         interested in joining the GDP team, you should join the
+         <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+         <i>gnome-doc-list mailing list</i> </a>.
+         Read <a href="#gettingstarted" title="Getting Started Writing GNOME Documentation">the section called &#8220;Getting Started Writing GNOME Documentation&#8221;</a>, for help selecting a
+         project to work on.  Feel free to introduce yourself on the
+         gnome-doc-list mailing list and indicate which project you
+         intend to work on, or else ask for suggestions of important
+         documents which need work done. You may also want to join the
+         #docs IRC channel on irc.gnome.org to meet other GDP members
+         and discuss any questions you may have.  For a list of GDP
+         projects and members, see the
+         <a href="http://developer.gnome.org/projects/gdp" target="_top">
+           <i>GDP Website</i></a>.
+       </p></div><div class="sect3"><a name="collaborating"/><div class="titlepage"><div><h4 class="title"><a name="collaborating"/>Collaborating with the GDP</h4></div></div><p>
+        GNOME developers, packagers, and translators may not be
+        writing GNOME documentation but will want to understand how
+        the GNOME documentation system works and will need to
+        collaborate with GDP members.  This document should help to
+        outline the structure of how the GNOME documentation system
+        works.  Developers who do not write the documentation for
+        their applications are encouraged to find a GDP member to
+        write the documentation.  This is best done by sending an
+        email to the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+        <i>gnome-doc-list mailing list</i> </a>
+        describing the application, where it can be downloaded from,
+        and that the developer(s) would like a GDP member to write
+        documentation for the application. The #docs IRC channel on
+        irc.gnome.org is another option for contacting GDP members.
+       </p></div></div><div class="sect2"><a name="notation"/><div class="titlepage"><div><h3 class="title"><a name="notation"/>Notation and Conventions</h3></div></div><p>
+        This Handbook uses the following notation:
+        <div class="informaltable" id="id2416529"><a name="id2416529"/><table border="0"><colgroup><col/><col/></colgroup><tbody><tr><td><tt>/usr/bin</tt></td><td>
+                  Directory
+                </td></tr><tr><td><tt>foo.sgml</tt></td><td>
+                  Filename
+                </td></tr><tr><td><b>command</b></td><td>
+                  Command or text that would be typed.
+                </td></tr><tr><td><b><i><tt>replaceable</tt></i></b></td><td>
+                  "Variable" text that can be replaced.
+                </td></tr><tr><td><tt>Program or Doc Code</tt></td><td>Program or document code</td></tr></tbody></table></div>
+      </p></div><div class="sect2"><a name="about"/><div class="titlepage"><div><h3 class="title"><a name="about"/>About This Handbook</h3></div></div><p>
+       This Handbook is a guide for both writing documentation for
+       GNOME components and applications and for properly binding and
+       packaging documentation into GNOME applications.
+      </p><p>
+       This Handbook, like all GNOME documentation, was written in
+       DocBook(SGML) and is available in several formats including
+       SGML, HTML, PostScript, and PDF.  For the latest version, see
+       <a href="http://developer.gnome.org/projects/gdp/handbook.html" target="_top"> 
+       <i>Getting The GNOME Handbook of Writing Software
+       Documentation</i> </a>.  Alternately, one may
+       download it anonymously from GNOME CVS under <tt>gnome-docu/gdp</tt>.
+      </p></div></div><div class="sect1"><a name="gettingstarted"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="gettingstarted"/>Getting Started Writing GNOME Documentation</h2></div></div><div class="sect2"><a name="selecting"/><div class="titlepage"><div><h3 class="title"><a name="selecting"/>Selecting A Document</h3></div></div><div class="sect3"><a name="know"/><div class="titlepage"><div><h4 class="title"><a name="know"/>Document Something You Know</h4></div></div><p>
+          The most frequently asked question of new contributors who
+          join the GDP is "which document should I start
+          with?". Because most people involved are volunteers, we do
+          not <i>assign</i> projects and applications to
+          write documents for. The first step is all yours - you must
+          decide what about GNOME interests you most and find out if
+          it has complete documents or not.
+        </p><p>
+          It is also important to spend some time with GNOME to make
+          sure you are familiar enough with it to be
+          <i>authoritative</i>  in your writing. The
+          best way to do this is to just sit down and play with GNOME
+          as much as possible before starting to write.
+        </p><p>
+          The easiest way to get started is to improve existing
+          documentation. If you notice some inaccuracies or omissions
+          in the documentation, or you think that you can explain the
+          material more clearly, just send your suggestions to the
+          author of the original documentation or to the GNOME
+          documentation project at <tt>&lt;<a href="mailto:docs at gnome.org">docs at gnome.org</a>&gt;</tt>.
+        </p></div><div class="sect3"><a name="doctable"/><div class="titlepage"><div><h4 class="title"><a name="doctable"/>The GNOME Documentation Status Table</h4></div></div><p>
+          The <i>GDP Documentation Status Table</i>
+          (<i>DocTable</i>) (<a href="http://www.gnome.org/gdp/doctable/" target="_top">http://www.gnome.org/gdp/doctable/</a>) is a
+          web page which tracks the status of all the various
+          documentation components of GNOME.  These components include
+          application documentation, internal GNOME component
+          documentation, user documentation, and developer
+          documentation.  For each documentation item, it tracks the
+          current status of the documentation, who is working on the
+          particular document, where the documentation can be found,
+          and provides a forum for the discussion of each item.
+        </p><p>
+          You should use the <i>DocTable</i> to help
+          you select a documentation item which needs work done.  Once
+          you have selected an item to work on, please register
+          yourself as an author so that other authors do not duplicate
+          your work and may contact you to help or offer suggestions.
+          Also be sure to keep the status icons up-to-date  so that
+          the GDP team can easily identify which items need additional
+          help.  The <i>DocTable</i> also allows
+          people to make announcements and suggestions and to discuss
+          issues in the comments section.
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2412924"/>Note</h3><p>
+          Note that the information in the
+          <i>DocTable</i> may not always be up-to-date
+          or accurate.  When you assign yourself to documenting an
+          application, make sure you find out the latest status of
+          documentation by contacting the application author.  
+         </p></div></div></div><div class="sect2"><a name="docbook"/><div class="titlepage"><div><h3 class="title"><a name="docbook"/>Installing and Using DocBook</h3></div></div><p>
+        All documentation for the GNOME project is written in SGML
+        using the DocBook DTD. There are many advantages to using
+        this for documentation, not least of which is the single
+        source nature of SGML. To contribute to the GDP you should
+        learn to use DocBook.
+      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2412986"/>NOTE</h3><p>
+          To get started writing for the GDP you do not need to rush
+          out and learn DocBook - if you feel it is too much to handle
+          for now, you can submit plain ASCII text to the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+          <i>gnome-doc-list mailing list</i>
+          </a>and a volunteer will mark it up for you. Seeing your
+          document marked up will also be a great way for you to start
+          learning DocBook.
+        </p></div><div class="sect3"><a name="installingdocbook"/><div class="titlepage"><div><h4 class="title"><a name="installingdocbook"/>Installing DocBook</h4></div></div><p>
+          Download and install the following <a href="ftp://sourceware.cygnus.com:/pub/docbook-tools/" target="_top">DocBook Tools packages</a>: jade, docbook,
+          jadetex, sgml-common, and stylesheets. (RPM users should note
+          that jade is platform dependent (eg. i386), while the other packages
+          are in the <tt>noarch</tt>
+          directory.) You can find more 
+          information on DocBook Tools <a href="           http://sourceware.cygnus.com/docbook-tools/" target="_top">here</a>.
+        </p><p>
+          If you are an Emacs user you may
+          want to grab the psgml package as well. This is a major mode
+          for editing sgml files in Emacs.
+        </p></div><div class="sect3"><a name="gdpstylesheets"/><div class="titlepage"><div><h4 class="title"><a name="gdpstylesheets"/>GDP Stylesheets</h4></div></div><p>
+          The GDP uses its own DocBook stylesheets.  To use the GDP
+          stylesheets, you should download the file
+          <tt>gdp-both.dsl</tt> from the <tt>gnome-docu/gdp/dsssl</tt> module in
+          CVS (or from <a href="http://developer.gnome.org/projects/gdp/stylesheets.html" target="_top">
+          GDP Custom DSSSL Stylesheet</a>)and copy it
+
+          over the file
+          <tt>/usr/lib/sgml/stylesheets/cygnus-both.dsl</tt>.
+          Alternately, you can download and install the
+          <a href="http://people.redhat.com/dcm/software.html" target="_top">gnome-doc-tools package</a> which will set
+          up the stylesheets as well as the DTD discussed below.
+        </p></div><div class="sect3"><a name="gdpdtd"/><div class="titlepage"><div><h4 class="title"><a name="gdpdtd"/>GDP DTD (PNG Image Support)</h4></div></div><p>
+          Due to some license issues involved with the creation of
+          gifs, the GNOME Documentation Project has decided to use the
+          PNG image format for all images in GNOME documentation. You
+          can read more about the issues involved with gifs at <a href="http://www.gnu.org/philosophy/gif.html" target="_top">http://www.gnu.org/philosophy/gif.html</a>.
+        </p><p>
+          The current DocBook DTD(3.1) does not include support for
+          embedding PNG images in your documents.  Since the GDP uses
+          many screenshots in its documentation, we use our own
+          variation on the DocBook DTD which has PNG image support.
+          We encourage everybody to use this DTD instead of the
+          default DocBook DTD since your source document header and
+          your output document appearance subtly vary between the two
+          DTD's.  To install the GDP custom DTD with PNG image support
+          by hand:
+        </p><div class="itemizedlist"><ul><li style="list-style-type: opencircle"><p><a name="id2413298"/>
+              Download <a href="http://www.labs.redhat.com/png/png-support.html" target="_top">the
+              GDP DocBook DTD for PNG support</a> and install it
+              where you keep your DTD's. (On Red Hat use <tt>/usr/lib/sgml/</tt>.) Note that
+              the 3.0 DTD is missing support for the
+              <tt>&lt;legalnotice&gt;</tt> tag, so it is
+              recommended that you use version 3.1
+            </p></li><li style="list-style-type: disc"><p><a name="id2413345"/>
+              Add the new DTD to your SGML CATALOG file.  The location
+              of your SGML CATALOG file may vary depending upon your
+              distribution. (On Red Hat it is usually in
+              /usr/lib/sgml/CATALOG.) Add the following line to this
+              file:
+              <pre class="programlisting">
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.0//EN" "png-support-3.0.dtd"
+              </pre> 
+              If you are using the 3.1 DTD, use:
+              <pre class="programlisting">
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN" "png-support-3.1.dtd"
+              </pre> 
+            </p></li></ul></div><p>
+          Alternately, you can download and install the
+          <a href="http://people.redhat.com/dcm/software.html" target="_top">gnome-doc-tools package</a> which will set
+          up the custom stylesheets and DTD for you.
+        </p><p>
+          To include PNG files in your documents, you will need to
+          indicate that you are using this special DTD.  To do
+          this, use the following headers:
+        </p><p>
+          Articles:
+          <pre class="programlisting">
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]&gt;
+          </pre>
+        </p><p>
+          Books:
+          <pre class="programlisting">
+&lt;!DOCTYPE Book PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]&gt;
+          </pre>
+        </p></div><div class="sect3"><a name="editors"/><div class="titlepage"><div><h4 class="title"><a name="editors"/>Editors</h4></div></div><p>
+          There are many editors on Linux and UNIX systems available
+          to you. Which editor you use to work on the sgml documents
+          is completely up to you, as long as the editor is able to
+          preserve sgml and produce the source in a format that is
+          readable by everyone.
+        </p><p>
+          Probably the two most popular editors available are
+          Emacs and
+          vi. These and other editors are
+          used regularly by members of the GDP. Emacs has a major
+          mode, psgml, for editing sgml files which can save you time
+          and effort in adding and closing tags. You will find the
+          psgml package in DocBook Tools, which is the standard set of
+          tools for the GDP. You may find out more about DocBook Tools
+          in <a href="#installingdocbook" title="Installing DocBook">the section called &#8220;Installing DocBook&#8221;</a>.
+        </p></div><div class="sect3"><a name="make-output"/><div class="titlepage"><div><h4 class="title"><a name="make-output"/>Creating Something Useful with your Docs</h4></div></div><p>
+          The tools available in DocBook Tools allow you to convert
+          your sgml document to many different formats including html
+          and Postscript. The primary tool used to do the conversion
+          is an application called Jade. In
+          most cases you will not have to work directly with
+          Jade; Instead,  you will use the
+          scripts provided by DocBook Tools.
+        </p><p>
+          To preview your DocBook document, it is easiest to convert
+          it to <tt>html</tt>. If you have installed the
+          DocBook tools described above, all you have to do is to run
+          the command <tt>$</tt><b>db2html
+          mydocument.sgml</b>. If there are no sgml syntax
+          errors, this will create a directory <tt>mydocument</tt> and place the
+          resulting html files in it. The title page of the document
+          will typically be
+          <tt>mydocument/index.html</tt>.  If you have
+          screenshots in your document, you will have to copy these
+          files into the <tt>mydocument</tt> directory by
+          hand. You can use any web browser to view your document.
+          Note that every time you run <b>db2html</b>, it
+          creates the <tt>mydocument</tt> directory over, so
+          you will have to copy the screenshots over each time.
+        </p><p>
+          You can also convert your document to PostScript by running
+          the command <tt>$</tt><b>db2ps
+          mydocument.sgml</b>, after which you can print out or
+          view the resulting .ps file.  
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2413716"/>NOTE</h3><p>
+            The html files you get will not look quite the same as the
+            documentation distributed with GNOME unless you have the
+            custom stylesheets installed on your machine. DocBook
+            Tools' default stylesheets will produce a different look
+            to your docs. You can read more about the GDP stylesheets
+            in <a href="#gdpstylesheets" title="GDP Stylesheets">the section called &#8220;GDP Stylesheets&#8221;</a>.
+          </p></div></div><div class="sect3"><a name="jadeimages"/><div class="titlepage"><div><h4 class="title"><a name="jadeimages"/>Images in DocBook Tools</h4></div></div><p>
+          If your document uses images you will need to take note of a
+          few things that should take place in order for you to make
+          use of those images in your output.
+        </p><p>
+          The DocBook Tools scripts and applications are smart enough
+          to know that when you are creating html you will be using
+          PNG files and when you are creating Postscript you will be
+          using EPS files (you must use EPS with Postscript).
+        </p><p>
+          Thus, you should never explicitly
+          include the extension of the image file, since DocBook
+          Tools will automatically insert it for you. For example:
+        </p><pre class="programlisting">
+
+&lt;figure&gt;
+ &lt;title&gt;My Image&lt;/title&gt;
+ &lt;screenshot&gt;
+  &lt;screeninfo&gt;Sample GNOME Display&lt;/screeninfo&gt;
+  &lt;graphic  format="png" fileref="myfile" srccredit="me"&gt;
+  &lt;/graphic&gt;
+ &lt;/screenshot&gt;
+&lt;/figure&gt;
+     </pre><p>
+          You will notice in this example that the file
+          <tt>myfile.png</tt> was referred to as simply
+          <tt>myfile</tt>. Now when you run
+          <b>db2html</b> to create an html file, it will
+          automatically look for <tt>myfile.png</tt> in
+          the directory.
+        </p><p>
+          If you want to create PostScript ouput, you will need to create an
+          EPS version of your image file to be displayed in the
+          PostScript file. There is a simple script available which
+          allows you to change a PNG image into an EPS file
+          easily. You can download this file - img2eps - from <a href="http://people.redhat.com/dcm/sgml.html" target="_top">http://people.redhat.com/dcm/sgml.html</a>
+          (look for the img2eps section).  Note that this script is
+          included in the gnome-doc-tools package, so if you are using
+          this package, you should already have
+          <b>img2eps</b> on you system.
+        </p></div><div class="sect3"><a name="moredocbookinfo"/><div class="titlepage"><div><h4 class="title"><a name="moredocbookinfo"/>Learning DocBook</h4></div></div><p>
+          There are many resources available to help you learn DocBook.
+          The following resources on the web are useful for learning
+          DocBook:
+        </p><div class="itemizedlist"><ul><li style="list-style-type: disc"><p><a name="id2413930"/>
+              <a href="http://www.docbook.org" target="_top">http://www.docbook.org</a>  - Norman
+              Walsh's <i>DocBook: The Definitive
+              Guide</i>.  Online O'Reilly book on using
+              DocBook. Contains an excellent element reference. May be
+              too formal for a beginner.
+            </p></li><li style="list-style-type: disc"><p><a name="id2413963"/>
+              <a href="http://www.oswg.org/oswg-nightly/oswg/en_US.ISO_8859-1/articles/DocBook-Intro/docbook-intro/index.html" target="_top">A Practical Introduction to DocBook</a>
+              - The Open Source Writers Group's introduction to using
+              DocBook. This is an excellent HOW-TO type article on
+              getting started.
+            </p></li><li style="list-style-type: disc"><p><a name="id2413992"/>
+              <a href="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html" target="_top">Getting Going with DocBook: Notes for
+              Hackers</a> - Mark Galassi's introduction to DocBook
+              for hackers. This has to be one of the first
+              introductions to DocBook ever - still as good as it ever
+              was.
+            </p></li><li style="list-style-type: disc"><p><a name="id2527122"/>
+              <a href="http://www.freebsd.org/tutorials/docproj-primer/" target="_top">
+              FreeBSD Documentation Project Primer for New
+              Contributors</a> - FreeBSD documentation project
+              primer. Chapter 4.2 provides a very good introduction to
+              writing documentation using DocBook. Note that it also
+              describes some custom extensions of DocBook;
+              fortunately, they are clearly marked as such.
+            </p></li></ul></div><p>
+          Norman Walsh's book is also available in print.
+        </p><p>
+          The following sections of this document are designed to help
+          documentation authors write correct and consistent DocBook:
+        </p><div class="itemizedlist"><ul><li style="list-style-type: disc"><p><a name="id2527176"/>
+              <a href="#docbookbasics" title="DocBook Basics ">the section called &#8220;DocBook Basics &#8221;</a> - Descriptions of
+              commonly used DocBook tags.
+            </p></li></ul></div><p>
+          You may also discuss specific DocBook questions with GDP
+          members on the #docs IRC channel at irc.gnome.org and on the
+          gnome-doc-list mailing list.
+        </p></div></div><div class="sect2"><a name="gdptemplates"/><div class="titlepage"><div><h3 class="title"><a name="gdptemplates"/>GDP Document Templates</h3></div></div><p>
+        Templates for various types of GNOME documents are found in
+        <a href="#templates" title="A. Document Templates">Appendix A. Document Templates</a>.  They are kept in CVS in
+        gnome-docu/gdp/templates. The easiest source to get them from
+        is probably the <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Document Templates</a> web page, which is typically kept
+        completely up-to-date with CVS and has a basic description of
+        each file from CVS.
+      </p></div><div class="sect2"><a name="screenshots"/><div class="titlepage"><div><h3 class="title"><a name="screenshots"/>Screenshots</h3></div></div><p>
+        Most GNOME documents will have screenshots of the particular
+        applet, application, GNOME component, or widget being
+        discussed.  As discussed above in <a href="#gdpdtd" title="GDP DTD (PNG Image Support)">the section called &#8220;GDP DTD (PNG Image Support)&#8221;</a> you
+        will need to install the special GDP DocBook DTD which
+        supports PNG images, the format used for all images in GNOME
+        documentation. For the basic DocBook structure used to insert
+        images in a document, see <a href="#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a> above.
+      </p><div class="sect3"><a name="screenshotappearance"/><div class="titlepage"><div><h4 class="title"><a name="screenshotappearance"/>Screenshot Appearance</h4></div></div><p>
+          For all screenshots of windows that typically have border
+          decorations (e.g. applications and dialogs, but not applets
+          in a panel), GDP standards dictate
+          the appearance of the window.  (This is to minimize possible
+          confusion to the reader, improve the appearance of GNOME
+          documents, and guarantee the screenshot is readable when
+          printed.) All screenshots should be taken with the SawFish
+          (formerly known as Sawmill) window manager using the
+          MicroGui theme and Helvetica 12pt font. (A different window
+          manager can be used provided the MicroGui theme is available
+          for this window manager and the appearance is identical to
+          that when using the SawFish window manager.) The default
+          GTK+ theme(gtk) and font (Helvetica 12 pt) should be used
+          for all screenshots.  If you are unable to provide
+          screenshots in this form, you should create screenshots as
+          you wish them to appear and send them to the
+          <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+          <i>gnome-doc-list mailing list</i> </a>
+          requesting a GDP member reproduce these screenshots in the
+          correct format and email them to you.
+        </p></div><div class="sect3"><a name="screenshottools"/><div class="titlepage"><div><h4 class="title"><a name="screenshottools"/>Screenshot Tools</h4></div></div><p>
+          There are many tools for taking screenshots in
+          GNOME/Linux. Perhaps the most convenient is the
+          Screen-Shooter Applet. Just click
+          on the window icon in the applet and then on the window you
+          would like to take a screenshot of. (Note that
+          at the time of this writing, PNG images taken by
+          screenshooter do not appear properly in
+          Netscape or the
+          GNOME Help Browser.  You
+          should save your screenshot as a GIF and
+          then use <b>convert filename.gif
+          filename.png</b>.) For applets
+          in a Panel,
+          xv can be used to crop the
+          screenshot to only include the relevant portion of the
+          Panel. Note that
+          xv and 
+          gimp can both be used for taking
+          screenshots, cropping screenshots, and converting image
+          formats. 
+        </p></div><div class="sect3"><a name="screenshotfiles"/><div class="titlepage"><div><h4 class="title"><a name="screenshotfiles"/>Screenshot Files</h4></div></div><p>
+          Screenshots should be kept in the main documentation
+          directory with your SGML file for applets, or should be
+          kept in a directory called "figs" for application and other
+          documentation.  After you use <b>db2html</b> to
+          convert your SGML file to HTML (see <a href="#make-output" title="Creating Something Useful with your Docs">the section called &#8220;Creating Something Useful with your Docs&#8221;</a>), you will need to copy your
+          screenshots (either the individual PNG files for applet
+          documentation, or the whole "figs" directory for other
+          documentation) into the newly created HTML directory.  Note
+          that every time you use <b>db2html</b> the HTML
+          directory is erased and rewritten, so do not store your only
+          copy of the screenshots in that directory.  If you wish to
+          create PostScript or PDF output, you will need to manually
+          convert the PNG images to EPS as described in <a href="#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a>, but will not need to copy these
+          images from their default location, as they are included
+          directly into the output(PostScript of PDF) file.
+        </p></div></div><div class="sect2"><a name="applicationbugs"/><div class="titlepage"><div><h3 class="title"><a name="applicationbugs"/>Application Bugs</h3></div></div><p>
+        Documentation authors tend to investigate and test applets and
+        applications more thoroughly than most 
+        users.  Often documentation authors will discover one or
+        more bugs in the software.  These bugs vary from small ones,
+        such as mis-spelled words or missing
+        About dialogs in the menu, to large
+        ones which cause the applet to crash.  As all users, you
+        should be sure to report these bugs so that application
+        developers know of them and can fix them.  The easiest way to
+        submit a bug report is by using the Bug
+        Buddy applet which is part of the gnome-applets
+        package.  
+      </p></div><div class="sect2"><a name="cvs"/><div class="titlepage"><div><h3 class="title"><a name="cvs"/>Using CVS</h3></div></div><p>
+        CVS (Concurrent Versions System) is a tool that allows
+        multiple developers to concurrently work on a set of
+        documents, keeping track of the modifications made by each
+        person.  The files are stored on a server and each developer
+        checks files out, modifies them, and then checks in their
+        modified version of the files.  Many GNOME programs and
+        documents are stored in CVS.  The GNOME CVS server allows
+        users to anonymously check out CVS files. Most GDP members
+        will need to use anonymous CVS to download the most up-to-date
+        version of documentation or programs.  Modified documents will
+        typically be emailed to the the application developer. Core
+        GDP members may also be granted login CVS privileges so they
+        may commit modified files directly to CVS.
+      </p><div class="sect3"><a name="anonymouscvs"/><div class="titlepage"><div><h4 class="title"><a name="anonymouscvs"/>Anonymous CVS</h4></div></div><p>
+          To anonymously check out documents from CVS, you must first
+          log in.  From the bash shell, you should set your CVSROOT
+          shell variable with <b>  export
+          CVSROOT=':pserver:anonymous at anoncvs.gnome.org:/cvs/gnome'</b>
+          and then login with <b>cvs login</b>(there is no
+          password, just hit return). As an example, we will use the
+          "gnome-docu/gdp" module which contains this and several
+          other documents. To check these documents out for the first
+          time, type <b>cvs -z3 checkout
+          gnome-docu/gdp</b>. After you have this document
+          checked out and you would like to download any updates on
+          the CVS server, use <b>cvs -z3 update -Pd</b>.
+        </p></div><div class="sect3"><a name="logincvs"/><div class="titlepage"><div><h4 class="title"><a name="logincvs"/>Login CVS</h4></div></div><p>  If you have been given a
+        login for the GNOME CVS server,  you may commit your file
+        modifications to CVS.  Be sure to read the following section
+        on CVS etiquette before making any commits to CVS.  To log in
+        to the CVS server as user
+        <b><i><tt>username</tt></i></b> with a
+        password, you must first set your CVSROOT shell variable with
+        <b> export
+        CVSROOT=':pserver:<i><tt>username</tt></i>@cvs.gnome.org:/cvs/gnome'</b>.
+        Log in with <b>cvs login</b> and enter your
+        password. You may check out and update modules as described
+        above for anonymous CVS access.  As a login CVS user, you may
+        also check modified versions of a file into the CVS server.
+        To check
+        <b><i><tt>filename</tt></i></b> into
+        the CVS server, type <b>cvs -z3 commit
+        <i><tt>filename</tt></i></b>. You will be
+        given a vi editor window to type in a brief log entry,
+        summarizing your changes.  The default editor can be changed
+        using the <tt>EDITOR</tt> environment variable or
+        with the <b><tt>-e</tt></b> option. You
+        may also check in any modifications to files in the working
+        directory and subdirectories using <b>cvs -z3
+        commit</b>.  To
+        add a new file to the CVS server, use <b>cvs -z3 add
+        <i><tt>filename</tt></i></b>, followed by the
+        commit command.
+        </p></div><div class="sect3"><a name="cvsetiquette"/><div class="titlepage"><div><h4 class="title"><a name="cvsetiquette"/>CVS Etiquette</h4></div></div><p>
+          Because files in CVS are typically used and modified by
+          multiple developers and documentation authors, users should
+          exercise a few simple practices out of courtesy towards the
+          other CVS users and the project leader.  First, you should
+          not make CVS commits to a package without first discussing
+          your plans with the project leader.  This way, the project
+          leader knows who is modifying the files and generally, what
+          sort of changes/development is being done.  Also, whenever a
+          CVS user commits a file to CVS, they should make an entry in
+          the CVS log and in the <tt>ChangeLog</tt> so
+          that other users know who is making modifications and what
+          is being modified.  When modifying files created by others,
+          you should follow the indentation scheme used by the initial
+          author.
+        </p></div></div></div><div class="sect1"><a name="gnomedocsystem"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="gnomedocsystem"/>The GNOME Documentation System</h2></div></div><div class="sect2"><a name="gnomehelpbrowser"/><div class="titlepage"><div><h3 class="title"><a name="gnomehelpbrowser"/>The GNOME Help Browser</h3></div></div><p>
+        At the core of the GNOME help system is the GNOME
+        Help Browser. The Help
+        Browser provides a unified interface to several
+        distinct documentation systems on Linux/Unix systems: man
+        pages, texinfo pages, Linux Documentation Project(LDP)
+        documents, GNOME application documentation, and other GNOME
+        documents.
+      </p><p>
+        The GNOME Help Browser works by
+        searching standard directories for documents which are to be
+        presented.  Thus, the documentation that appears in the GHB is
+        specific to each computer and will typically only represent
+        software that is installed on the computer.
+      </p></div><div class="sect2"><a name="gnomehelpbrowser2"/><div class="titlepage"><div><h3 class="title"><a name="gnomehelpbrowser2"/>The GNOME Help Browser (GNOME-2.0)</h3></div></div><p> In
+      GNOME 2.0, the GNOME Help Browser
+      will be replaced by Nautilus.
+      Nautilus will be the file manager/graphical shell for GNOME 2.0
+      and will also implement a more sophisticated help system than
+      that used by the GNOME Help Browser
+      used in GNOME 1.0.  It will read and display DocBook files
+      directly, avoiding the need for duplicating documents in both
+      DocBook and HTML formats.  Its display engine for DocBook will
+      be much faster than running jade to
+      convert to HTML for rendering.  Because it uses the original
+      DocBook source for documentation, it will be possible to do more
+      sophisticated searching using the meta information included in
+      the documents.  And since Nautilus is a virtual file system
+      layer which is Internet-capable, it will be able to find and
+      display documents which are on the web as well as those on the
+      local file system. For more information on
+      Nautilus, visit the #nautilus IRC
+      channel on irc.gnome.org.  </p></div><div class="sect2"><a name="gnomehelponthefly"/><div class="titlepage"><div><h3 class="title"><a name="gnomehelponthefly"/>Dynamic Document Synthesis(GNOME-2.0)</h3></div></div><p>
+        GNOME uses the documentation presented by all the various
+        GNOME components and applications installed on the system to
+        present a complete and customized documentation environment
+        describing only components which are currently installed on a
+        users system.  Some of this documentation, such as the manuals
+        for applets, will be combined in such a way that it appears to
+        be a single document.
+      </p><p>
+        By using such a system, you can be sure that any GNOME app you
+        install that has documentation will show up in the index,
+        table of contents, any search you do in the help browser.
+      </p></div><div class="sect2"><a name="gnomehelpcomponents"/><div class="titlepage"><div><h3 class="title"><a name="gnomehelpcomponents"/>The GNOME Documentation Components</h3></div></div><div class="sect3"><a name="applicationmanualsintro"/><div class="titlepage"><div><h4 class="title"><a name="applicationmanualsintro"/>Application Manuals</h4></div></div><p>
+          Every GNOME application should have an application manual.
+          An application manual is a document specific to the
+          particular application which explains the various windows
+          and features of the application.  Application Manuals
+          typically use screenshots (PNG format) for clarity.  Writing
+          application manuals is discussed in more detail in <a href="#writingapplicationmanuals" title="Writing Application and Applet Manuals">the section called &#8220;Writing Application and Applet Manuals&#8221;</a> below.
+        </p></div><div class="sect3"><a name="applicationhelpintro"/><div class="titlepage"><div><h4 class="title"><a name="applicationhelpintro"/>Application Help</h4></div></div><p>
+          Applications should have a Help
+          button on screens on which users may need help.  These
+          Help buttons should pull up the
+          default help browser, determined by the
+          <tt>ghelp</tt> URL Handler (configured using the
+          Control Center), typically the
+          GNOME Help Browser.  The help
+          browser should show either the first page of the application
+          manual, or else the relevant page thereof. Application help
+          is described in more detail in <a href="#applicationhelpbuttons" title="Application Help Buttons">the section called &#8220;Application Help Buttons&#8221;</a> below.
+        </p></div><div class="sect3"><a name="contextsensitivehelpintro"/><div class="titlepage"><div><h4 class="title"><a name="contextsensitivehelpintro"/>Application Context Sensitive Help (coming in
+        GNOME-2.0)</h4></div></div><p>
+          Context sensitive help is a system which will allow the user
+          to query any part (button, widget, etc.) of an application
+          window.  This is done by either entering a CS Help mode by
+          clicking on an icon or by right clicking on the application
+          part and selecting "What's This" or whatever is decided on
+          at the time.  Context sensitive help is described in more
+          detail in <a href="#writingcontextsensitivehelp" title="Writing Context Sensitive Help (coming in GNOME-2.0)">the section called &#8220;Writing Context Sensitive Help (coming in GNOME-2.0)&#8221;</a>
+          below.
+        </p></div><div class="sect3"><a name="userguide"/><div class="titlepage"><div><h4 class="title"><a name="userguide"/>The GNOME User Guide</h4></div></div><p>
+          The <i>GNOME User Guide</i> describes the
+          GNOME desktop environment and core components of GNOME such
+          as the panel and
+          control center. In GNOME 1.x this
+          was the main and only source of documentation. In GNOME 2.0
+          this will become a document for the web and for printing
+          that is derived from various parts chosen in the system that
+          are necessary for the new user to understand.
+        </p></div><div class="sect3"><a name="userdocs"/><div class="titlepage"><div><h4 class="title"><a name="userdocs"/>User Documents</h4></div></div><p>
+          Aside from the <i>GNOME User Guide</i>,
+          there are several other documents to help GNOME users learn
+          GNOME, including the <i>GNOME FAQ</i>,
+          <i>GNOME Installation and Configuration
+          Guide</i>, and the <i>GNOME Administrators
+          Guide</i>.
+        </p></div><div class="sect3"><a name="developerdocs"/><div class="titlepage"><div><h4 class="title"><a name="developerdocs"/>Developer Documents</h4></div></div><p>
+          There are many White Papers, Tutorials, HOWTO's and FAQ's to
+          make programming GNOME and GNOME applications as easy as
+          possible.
+        </p><p>
+          API documentation is also available for the GNOME libraries. This is
+          detailed documentation of the code that is used to build GNOME
+          apps. You can keep up with the GNOME API docs on the <a href="http://developer.gnome.org/doc/API/" target="_top">GNOME API
+          Reference</a> page.
+        </p></div><div class="sect3"><a name="projectdocs"/><div class="titlepage"><div><h4 class="title"><a name="projectdocs"/>Project Documents</h4></div></div><p>
+          Some GNOME projects have documentation to maintain
+          consistency in their product and to help new contributors
+          get up to speed quickly. Among these are the GDP documents,
+          such as the one you are reading now.
+        </p></div></div></div><div class="sect1"><a name="docbookbasics"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="docbookbasics"/>DocBook Basics </h2></div></div><div class="sect2"><a name="introtodocbook"/><div class="titlepage"><div><h3 class="title"><a name="introtodocbook"/>Introduction to DocBook</h3></div></div><p>
+        To understand DocBook, a basic understanding of SGML is
+        helpful. SGML stands for Standard General Markup Language and
+        is one of the first markup languages every created. HTML is
+        actually derived from SGML and XML is a subset of SGML.  SGML
+        uses what is called a Document Type Definition to specify
+        <i>elements</i> which are contained between
+        brackets, &lt; and &gt;. Text is marked by both beginning and
+        ending elements, for example in the DocBook DTD, one denotes a
+        title with <tt>&lt;title&gt;</tt>The
+        Title<tt>&lt;/title&gt;</tt>.
+      </p><p>
+        The DTD (in the case of the GDP, DocBook) defines rules for how the
+        elements can be used. For example, if one element can only be used when
+        embedded within another, this is defined in the DTD.
+      </p><p> 
+	An SGML file is just a plain ASCII file containing the text
+	with the markup specified above. To convert it  to some easily
+	readable format, you need special tools. The GDP uses <i>DocBook
+        Tools</i>, a free package of utilities for working with DocBook
+        which includes <i>Jade</i>, which does the SGML/DSSL
+        parsing. You can read more about DocBook Tools in <a href="#installingdocbook" title="Installing DocBook">the section called &#8220;Installing DocBook&#8221;</a>. 
+      </p><p>
+        The final appearance of the output (e.g. PostScript or HTML)
+        is determined by a
+        <i>stylesheet</i>. Stylesheets are files,
+        written in a special language (DSSSL -- Document Style
+        Semantics and Specification Language), which  specify the
+        appearance of various DocBook elements, for example,
+        what fonts to use for titles and various inline elements, page
+        numbering style, and much more. DocBook tools come with a
+        collection of stylesheets (Norman Walsh's modular
+        stylesheets); GNOME Document Project uses some customized
+        version of this stylesheets -- see <a href="#gdpstylesheets" title="GDP Stylesheets">the section called &#8220;GDP Stylesheets&#8221;</a>.   
+      </p><p>
+        The advantage of specifying the <i>structure</i>
+        of a document with SGML instead of specifying the
+        <i>appearance</i> of the document with a typical
+        word processor, or with html, is that the resulting document
+        can be processed in a variety of ways using the structural
+        information.  Whereas formatting a document for appearance
+        assumes a medium (typically written text on a standard-sized
+        piece of paper), SGML can be processed to produce output for a
+        large variety of media such as text, postscript, HTML,
+        Braille, audio, and potentially many other formats.
+      </p><p>
+        Using 'content' as the elements to define the text of a document also
+        allows for search engines to make use of the actual elements to make a
+        "smarter search". For example, if you are searching for all documents
+        written by the author "Susie" your search engine could be made smart
+        enough to only search &lt;author&gt; elements, making for a faster and more
+        accurate search.
+      </p><p>
+        Since the overall appearance of the output is determined not by the DTD
+        or the SGML document, but rather by a stylesheet, the appearance of a
+        document can be easily changed just by changing the stylesheet. This
+        allows everyone in the project to create documents that all look the
+        same.
+      </p><p>
+        As stated before, the GDP uses the DocBook DTD.  For a list of
+        introductory and reference resources on DocBook, see <a href="#resources" title="Resources">the section called &#8220;Resources&#8221;</a>.  The following sections also provide
+        convenient instructions on which markup tags to use in various
+        circumstances.  Be sure to read <a href="#conventions" title="GDP Documentation Conventions ">the section called &#8220;GDP Documentation Conventions &#8221;</a>
+        for GDP documentation-specific guidelines.
+      </p></div><div class="sect2"><a name="xml"/><div class="titlepage"><div><h3 class="title"><a name="xml"/>XML and SGML</h3></div></div><p> In not so distant future (probably before GNOME 2.0),
+      DocBook itself and GNOME Documentation project will migrate from
+      SGML to XML. This transition should be relatively painless:
+      (almost) all DocBook tags will remain the same. However, XML has
+      stricter syntax rules than SGML; thus, some constructions which
+      are valid in SGML will not be valid in XML. Therefore, to be
+      ready for this transistion, it is <i>strongly
+      advised</i> that the documentation writers conform to XML
+      syntax rules. Here are most important differences:
+      </p><div class="variablelist"><dl><dt><a name="id2529076"/><span class="term"> <i>Minimization</i></span></dt><dd><p><a name="id2529088"/>
+	      It is possible with some implementations of SGML to use
+	      minimizations to close elements in a document by using
+	      &lt;/&gt;, for example:
+	      <tt><tt>&lt;title&gt;</tt>The
+		Title<tt>&lt;/&gt;</tt></tt>. This is not
+              allowed in XML. You can use <b>sgmlnorm</b> command,
+              included in DocBook Tools package, to expand minimized tags;
+              if you are using Emacs with psgml
+              mode, you can also use menu command
+          Modify-&gt;Normalize.
+         </p></dd><dt><a name="id2529176"/><span class="term"> <i>Self-closing tags</i></span></dt><dd><p><a name="id2529188"/>
+            Also, in SGML some tags are allowed not to have closing
+            tags.  For example, it is legal for
+            <tt>&lt;xref&gt;</tt> not to have a closing tag: 
+            <tt><tt>&lt;xref 
+                   linkend="someid"&gt;</tt></tt>. In
+            XML, it is illegal; instead, you should use  
+            <tt><tt>&lt;xref 
+                   linkend="someid"/&gt;</tt></tt> (note the
+            slash!).
+          </p></dd><dt><a name="id2529236"/><span class="term"> <i>Case sensitive tags</i></span></dt><dd><p><a name="id2529248"/>
+	      In XML, unlike SGML, tags are case-senstive
+	      <tt>&lt;title&gt;</tt> and
+	      <tt>&lt;TITLE&gt;</tt> are different tags!
+	      Therefore, please always use lowercase tags (except for
+	      things like <tt>DOCTYPE, CDATA</tt> and
+	      <tt>ENTITY</tt>, which are not DocBook tags). 
+	    </p></dd></dl></div></div><div class="sect2"><a name="structure"/><div class="titlepage"><div><h3 class="title"><a name="structure"/> Structure Elements</h3></div></div><div class="sect3"><a name="section"/><div class="titlepage"><div><h4 class="title"><a name="section"/>Sections and paragraphs</h4></div></div><p>
+          Top-level element of a book body must be
+          <tt>&lt;chapter&gt;</tt>; it may contain one or more
+          <tt>&lt;sect1&gt;</tt>, each of them may contain
+          <tt>&lt;sect2&gt;</tt> and so on up to
+          <tt>&lt;sect5&gt;</tt>. The top-level element of an
+          article body is always
+          <tt>&lt;sect1&gt;</tt>. Regardless of which elements
+          you use, give each structural element a unique id, so that
+          you can link to it. For usage example, see the template.
+        </p><p> Please try to avoid using deeply nested sections; for
+          most situations, <tt>&lt;sect1&gt;</tt> and
+          <tt>&lt;sect2&gt;</tt> should be sufficient. If not,
+          you probably should split your <tt>&lt;sect1&gt;</tt>
+          into several smaller ones.
+        </p><p> Use the tag <tt>&lt;para&gt;</tt> for
+          paragraphs, even if there is only one paragraph in a
+          section--see template for examples.
+        </p></div><div class="sect3"><a name="notes"/><div class="titlepage"><div><h4 class="title"><a name="notes"/>Notes, Warnings, And Tips</h4></div></div><p>
+          For notes, tips, warnings, and important information, which
+          should be set apart from the main text (usually as a
+          paragraph with some warning sign on the margin), use tags
+          <tt>&lt;note&gt;</tt>, <tt>&lt;tip&gt;</tt>,
+          <tt>&lt;warning&gt;</tt>,
+          <tt>&lt;important&gt;</tt> respectively. For example:
+          <pre class="programlisting">
+
+&lt;tip&gt;
+ &lt;title&gt;TIP&lt;/title&gt;
+ &lt;para&gt;
+  To speed up program compilation, use &lt;application&gt;gcc&lt;/application&gt;
+  compiler with Pentium optimization.
+ &lt;/para&gt;
+&lt;/tip&gt; </pre>  produces
+        </p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="extip"/>TIP</h3><p>
+            To speed up program compilation, use
+            gcc compiler with Pentium
+            optimization.  </p></div><p>
+          Note that this should not be inside a
+          <tt>&lt;para&gt;</tt> but between paragraphs.
+        </p></div><div class="sect3"><a name="figures"/><div class="titlepage"><div><h4 class="title"><a name="figures"/> Screenshots and other figures</h4></div></div><p>
+          To include screenshots and other figures, use the following
+          tags:
+          
+          <pre class="programlisting">
+
+&lt;figure id="shot1"&gt;
+ &lt;title&gt;Screenshot&lt;/title&gt;
+ &lt;screenshot&gt;
+  &lt;screeninfo&gt;Screenshot of a program&lt;/screeninfo&gt;
+  &lt;graphic format="PNG"  fileref="figures/example_screenshot" srccredit="ME"&gt;
+  &lt;/graphic&gt;
+ &lt;/screenshot&gt;
+&lt;/figure&gt;
+          </pre>
+          replacing <tt>example_screenshot</tt> with the
+          actual file name (without extension). The result will look like this:
+          
+          <div class="figure"><p><a name="shot1"/><b>Figure 1. Screenshot</b></p><div class="screenshot"><p><img src="figures/example_screenshot"/></p></div></div>
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2529626"/>NOTE</h3><p>
+            Notice in this example that the screenshot file name does
+            not include the file type extension -- to find out
+            why, please read <a href="#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a>.
+          </p></div></div><div class="sect3"><a name="listing"/><div class="titlepage"><div><h4 class="title"><a name="listing"/>Program listings and terminal session</h4></div></div><p>
+          To show a file fragment--for example, program
+          listing--use <tt>&lt;programlisting&gt;</tt> tag:
+          <pre class="programlisting">
+
+&lt;programlisting&gt;
+[Desktop Entry] 
+Name=Gnumeric spreadsheet
+Exec=gnumeric 
+Icon=gnome-gnumeric.png 
+Terminal=0
+Type=Application
+&lt;/programlisting&gt;
+          </pre>
+          which produces
+          <pre class="programlisting">
+[Desktop Entry] 
+Name=Gnumeric spreadsheet 
+Exec=gnumeric
+Icon=gnome-gnumeric.png 
+Terminal=0 
+Type=Application
+          </pre>
+          As a matter of fact, all examples in this document were
+          produced using <tt>&lt;programlisting&gt;</tt>.
+        </p><p>
+          To show a record of terminal session--i.e., sequence of
+          commands entered at the command line--use
+          <tt>&lt;screen&gt;</tt> tag:
+          <pre class="programlisting">
+
+&lt;screen&gt;
+&lt;prompt&gt;bash$&lt;/prompt&gt;&lt;userinput&gt;make love&lt;/userinput&gt; 
+make: *** No rule to make target `love'. Stop.
+&lt;/screen&gt;
+          </pre>
+          which produces
+          <pre class="screen">
+<tt>bash$</tt><b><tt>make love</tt></b>  
+make: *** No rule to make target `love'.  Stop.
+          </pre>
+          Note the use of tags <tt>&lt;prompt&gt;</tt> and
+          <tt>&lt;userinput&gt;</tt> for marking system prompt
+          and commands entered by user.
+          <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2529790"/>NOTE</h3><p>
+              Note that both <tt>&lt;programlisting&gt;</tt>
+              and <tt>&lt;screen&gt;</tt> preserve linebreaks,
+              but interpret SGML tags (unlike LaTeX
+              verbatim environment). Take a look at
+              the source of this document to see how you can have SGML
+              tags literally shown but not interpreted,
+            </p></div>
+        </p></div><div class="sect3"><a name="lists"/><div class="titlepage"><div><h4 class="title"><a name="lists"/> Lists</h4></div></div><p>
+	  The most common list types  in DocBook are
+	  <tt>&lt;itemizedlist&gt;</tt>,
+	  <tt>&lt;orderedlist&gt;</tt>, and 
+	  <tt>&lt;variablelist&gt;</tt>.
+	</p><div class="variablelist"><dl><dt><a name="id2529876"/><span class="term"> <tt>&lt;itemizedlist&gt;</tt></span></dt><dd><p><a name="id2529888"/> 
+		This is the simplest unnumbered list, parallel to
+	    <tt>&lt;ul&gt;</tt> in HTML. Here is an example: 
+		<pre class="programlisting">
+
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Show backup files&lt;/guilabel&gt; &amp;mdash; This will
+      show any backup file that might be on your system.
+    &lt;/para&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Show hidden files&lt;/guilabel&gt; &amp;mdash; This will
+      show all "dot files" or files that begin with a dot.  This
+      files typically include configuration files and directories.
+    &lt;/para&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Mix files and directories&lt;/guilabel&gt; &amp;mdash; This
+      option will  display files and directories in the order you
+      sort them instead of 
+      always having directories shown above files.
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+&lt;/itemizedlist&gt; 
+
+		</pre>
+		and output:
+                </p><div class="itemizedlist"><ul><li><p><a name="id2529912"/>
+		      Show backup files --
+		      This will show any backup file that might be on
+		      your system.
+		    </p></li><li><p><a name="id2529958"/>
+		      Show hidden files --
+		      This will show all "dot files" or files that
+		      begin with a dot.  This files typically include
+		      configuration files and directories.
+		    </p></li><li><p><a name="id2529981"/>
+		      Mix files and directories
+		      -- This option will display files and
+		      directories in the order you sort them instead
+		      of always having directories shown above files.
+		    </p></li></ul></div><p> Note the use of <tt>&amp;mdash;</tt>
+              for long dash (see <a href="#specsymb" title=" Special symbols ">the section called &#8220; Special symbols &#8221;</a>). Also,
+              please note that the result looks much nicer because the
+              terms being explained (Show backup
+              files, etc.) are set in a different font. In
+              this case, it was achieved by using <a href="#gui" title="GUI elements"><tt>&lt;guilabel&gt;</tt></a>
+              tag. In other cases, use appropriate tags such as
+              <a href="#gui" title="GUI elements"><tt>&lt;guimenuitem&gt;</tt></a>,
+              <a href="#filenames" title="Filenames, commands, and other&#10;        computer-related things"><tt>&lt;command&gt;</tt></a>,
+              or -- if none of
+              this applies -- use
+              <a href="#gui" title="GUI elements"><tt>&lt;emphasis&gt;</tt></a>.
+	      </p></dd><dt><a name="id2530107"/><span class="term"> <tt>&lt;orderedlist&gt;</tt></span></dt><dd><p><a name="id2530119"/>
+		This list is completely analogous to
+		<tt>&lt;itemizedlist&gt;</tt> and has the same
+		syntax, but  it produces numbered list. By default,
+		this list uses Arabic numerals for numbering entries;
+		you can override this using <tt>numeration</tt>,
+		for example <tt>&lt;orderedlist
+		  numeration="lowerroman"&gt;</tt>. Possible values of
+		these attribute are <tt>arabic</tt>,
+		<tt>upperalpha</tt>,
+		<tt>loweralpha</tt>,
+		<tt>upperroman</tt>,
+		<tt>lowerroman</tt>.
+	      </p></dd><dt><a name="id2530183"/><span class="term"> <tt>&lt;variablelist&gt;</tt></span></dt><dd><p><a name="id2530195"/> This list is used when each entry is
+	    rather long, so it should be formatted as a block of text
+	    with some subtitle, like a small subsection.  The
+	    <tt>&lt;variablelist&gt;</tt> is more complicated
+	    than itemizedlists, but for larger blocks of text, or when
+	    you're explaining or defining something, it's best to use
+	    them.  Their greatest advantage is that it's easier for a
+	    computer to search.  The lines you are reading now were
+	    produced by <tt>&lt;variablelist&gt;</tt>. The
+	    source looked liked this:
+		<pre class="programlisting">
+
+&lt;variablelist&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt; &lt;sgmltag&gt;&amp;lt;itemizedlist&gt;&lt;/sgmltag&gt;&lt;/term&gt; 
+    &lt;listitem&gt;&lt;para&gt; 
+	This is the simplest unnumbered list, parallel to
+        &lt;sgmltag&gt;&amp;lt;ul&gt;&lt;/sgmltag&gt; in HTML. Here is an example:...
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+    &lt;varlistentry&gt;		 
+	&lt;term&gt; &lt;sgmltag&gt;&amp;lt;orderedlist&gt;&lt;/sgmltag&gt;&lt;/term&gt;
+     &lt;listitem&gt;&lt;para&gt;	
+	This list is completely analogous to
+	&lt;sgmltag&gt;&amp;lt;itemizedlist&gt;&lt;/sgmltag&gt; 
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+    &lt;varlistentry&gt;		 
+	&lt;term&gt; &lt;sgmltag&gt;&amp;lt;variablelist&gt;&lt;/sgmltag&gt;&lt;/term&gt;
+     &lt;listitem&gt;&lt;para&gt;	
+		This list is used when each entry is rather long,...
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+&lt;/variablelist&gt;        
+
+		</pre>		
+		</p></dd></dl></div><p>
+	Lists can be nested; in this case, the stylesheets
+	are smart enough to change the numeration (for
+	<tt>&lt;orderedlist&gt;</tt>) or marks of each entry
+	(in  <tt>&lt;itemizedlist&gt;</tt>) for sub-lists
+	</p></div></div><div class="sect2"><a name="inline"/><div class="titlepage"><div><h3 class="title"><a name="inline"/>Inline Elements</h3></div></div><div class="sect3"><a name="gui"/><div class="titlepage"><div><h4 class="title"><a name="gui"/>GUI elements</h4></div></div><div class="itemizedlist"><ul><li><p><a name="id2530324"/>
+              <tt>&lt;guibutton&gt;</tt> -- used for
+              buttons, including checkbuttons and radio buttons
+            </p></li><li><p><a name="id2530343"/>
+              <tt>&lt;guimenu&gt;</tt>, 
+              <tt>&lt;guisubmenu&gt;</tt> --used for 
+	      top-level menus and submenus
+              respectively, for example <tt>
+              &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of the
+              &lt;guimenu&gt;Main Menu&lt;/guimenu&gt;</tt>
+            </p></li><li><p><a name="id2530378"/>
+              <tt>&lt;guimenuitem&gt;</tt>--an entry in a
+              menu
+            </p></li><li><p><a name="id2530395"/>
+              <tt>&lt;guiicon&gt;</tt>--an icon
+            </p></li><li><p><a name="id2530412"/>
+              <tt>&lt;guilabel&gt;</tt>--for items which have
+              labels, like tabs, or bounding boxes. 
+            </p></li><li><p><a name="id2530429"/>
+              <tt>&lt;interface&gt;</tt>-- for most everything
+              else... a window, a dialog box, the Panel, etc.
+            </p></li></ul></div><p>
+          If you need to refer to a sequence of menu choices, such as
+          Main Menu-&gt;Utilities-&gt;GNOME
+            terminal
+          there is a special construction for this, too:
+          <pre class="programlisting">
+
+&lt;menuchoice&gt;
+ &lt;guimenu&gt;Main Menu&lt;/guimenu&gt; &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt;
+ &lt;guimenuitem&gt;GNOME terminal&lt;/guimenuitem&gt; &lt;/menuchoice&gt;
+          </pre>
+        </p></div><div class="sect3"><a name="links"/><div class="titlepage"><div><h4 class="title"><a name="links"/>Links and references</h4></div></div><p>
+          To refer to another place in the same document, you can use
+          tags <tt>&lt;xref&gt;</tt> and
+          <tt>&lt;link&gt;</tt>. The first of them
+          automatically inserts the full name of the element you refer
+          to (section, figure, etc.), while the second just creates a
+          link (in HTML output). Here is an example:
+          <pre class="programlisting">
+An example of a &lt;link linkend="extip"&gt;tip&lt;/link&gt; was given in
+&lt;xref linkend="notes" /&gt;.  
+          </pre>
+          which produces: An example of a <a href="#extip">tip</a> was given in  <a href="#notes" title="Notes, Warnings, And Tips">the section called &#8220;Notes, Warnings, And Tips&#8221;</a>.
+        </p><p>
+          Here <tt>notes</tt> and <tt>extip</tt>
+          are the id attributes of <a href="#notes" title="Notes, Warnings, And Tips">the section called &#8220;Notes, Warnings, And Tips&#8221;</a> and of the
+          example of a tip in it.
+        </p><p>  To produce a link  to an external source, such as a
+          Web page or a local file, use <tt>&lt;ulink&gt;</tt>
+          tag, for example:
+          <pre class="programlisting">
+ To find more about GNOME, please visit &lt;ulink type="http"
+url="http://www.gnome.org"&gt;GNOME Web page&lt;/ulink&gt; 
+          </pre>
+          which produces:  To find more about GNOME, please visit
+          <a href="http://www.gnome.org" target="_top">The GNOME Web
+          Site</a> You can use any of the standard URL types, such
+          as <tt>http, ftp, file, telnet, mailto</tt> (in
+          most cases, however, use of <tt>mailto</tt> is
+          unnecessary--see discussion of
+          <tt>&lt;email&gt;</tt> tag).
+        </p></div><div class="sect3"><a name="filenames"/><div class="titlepage"><div><h4 class="title"><a name="filenames"/>Filenames, commands, and other
+        computer-related things</h4></div></div><p>
+          Here are some tags used to describe operating system-related
+          things:  
+        </p><div class="itemizedlist"><ul><li><p><a name="id2530717"/>  <tt>&lt;filename&gt;</tt> -- used
+              for filenames,
+              e.g.<tt>&lt;filename&gt;</tt>
+                    foo.sgml
+                  <tt>&lt;/filename&gt;</tt> 
+              produces: <tt>foo.sgml</tt>.
+            </p></li><li><p><a name="id2530757"/>  <tt>&lt;filename
+              class="directory"&gt;</tt> -- used for
+              directories, e.g.<tt>&lt;filename
+              class="directory"&gt;</tt>/usr/bin
+                  <tt>&lt;/filename&gt;</tt>
+              produces: <tt>/usr/bin</tt>.
+            </p></li><li><p><a name="id2530804"/>
+              <tt>&lt;application&gt;</tt> -- used for
+              application names,
+              e.g. <tt>&lt;application&gt;</tt>Gnumeric
+              <tt>&lt;/application&gt;</tt> produces:
+              Gnumeric.
+            </p></li><li><p><a name="id2530845"/>
+	      <tt>&lt;envar&gt;</tt> -- used for
+	      environment variables, e.g. 
+              <tt>&lt;envar&gt;</tt>PATH<tt>&lt;/envar&gt;</tt>. 
+            </p></li><li><p><a name="id2530876"/>
+              <tt>&lt;command&gt;</tt> -- used for
+              commands entered on command line, e.g.
+              <tt>&lt;command&gt;</tt>make install
+              <tt>&lt;/command&gt;</tt> produces:
+              <b>make install</b>.
+            </p></li><li><p><a name="id2530916"/>
+              <tt>&lt;replaceable&gt;</tt> -- used for
+              replaceable text, e.g.
+              <tt>&lt;command&gt;</tt>db2html<tt>&lt;replaceable&gt;</tt>
+              foo.sgml
+              <tt>&lt;/replaceable&gt;</tt><tt>&lt;/command&gt;</tt>
+              produces: <b>db2html
+              <i><tt>foo.sgml</tt></i></b>.
+            </p></li></ul></div></div><div class="sect3"><a name="keys"/><div class="titlepage"><div><h4 class="title"><a name="keys"/>Keyboard input</h4></div></div><p> To mark up text input by the user, use
+        <tt>&lt;userinput&gt;</tt>.
+        </p><p>  To mark keystrokes such as shortcuts and other
+          commands, use <tt>&lt;keycap&gt;</tt>. 
+          This is used for marking up what is printed on the top 
+          of the physical key on the keyboard. There are a couple of
+          other tags for keys, too: <tt>&lt;keysym&gt;</tt>
+          and <tt>&lt;keycode&gt;</tt>. However you are
+          unlikely to need these for most documentation. For reference,
+          <tt>&lt;keysym&gt;</tt> is for the &#8220;symbolic
+          name&#8221; of a key. <tt>&lt;keycode&gt;</tt> is
+          for the &#8220;scan code&#8221; of a key. These are not
+          terms commonly required in GNOME documentation,
+          although <tt>&lt;keysym&gt;</tt> is useful for marking
+          up control codes.
+       </p><p>
+          To mark up a combination of keystrokes, use the
+          <tt>&lt;keycombo&gt;</tt> wrapper:
+          <pre class="programlisting">
+
+&lt;keycombo&gt;
+ &lt;keycap&gt;Ctrl&lt;/keycap&gt;
+ &lt;keycap&gt;Alt&lt;/keycap&gt;
+ &lt;keycap&gt;F1&lt;/keycap&gt;
+&lt;/keycombo&gt;
+          </pre>
+        </p><p>
+          Finally, if you want to show a shortcut for some menu
+          command, here are the appropriate tags (rather long):
+          <pre class="programlisting">
+
+&lt;menuchoice&gt;
+ &lt;shortcut&gt;
+  &lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;q&lt;/keycap&gt;&lt;/keycombo&gt;
+ &lt;/shortcut&gt; 
+ &lt;guimenuitem&gt; Quit&lt;/guimenuitem&gt; 
+&lt;/menuchoice&gt;
+          </pre>
+          which produces simply
+           Quit (<b>Ctrl-q</b>)
+        </p></div><div class="sect3"><a name="email"/><div class="titlepage"><div><h4 class="title"><a name="email"/>E-mail addresses</h4></div></div><p>  To mark up e-mail
+        address, use <tt>&lt;email&gt;</tt>:
+          <pre class="programlisting">
+ The easiest way to get in touch with me is by e-mail
+(&lt;email&gt;me at mydomain.com&lt;/email&gt;)
+          </pre>
+          which produces: The easiest way to get in touch with me is
+          by e-mail  (<tt>&lt;<a href="mailto:me at mydomain.com">me at mydomain.com</a>&gt;</tt>) Note that
+          <tt>&lt;email&gt;</tt> automatically produces a link
+          in html version.
+        </p></div><div class="sect3"><a name="specsymb"/><div class="titlepage"><div><h4 class="title"><a name="specsymb"/> Special symbols </h4></div></div><p> 
+	  DocBook also provides special means for entering
+	typographic symbols which can not be entered directly
+	form the keyboard (such as copyright sign). This is done using
+	<i>entities</i>, which is SGML analogue of
+	macros, or commands, of LaTeX. They generally have the form 
+	  <tt>&amp;entityname;</tt>. Note that the semicolon
+	is required. 
+	</p><p>
+	  here is partial list of most commonly used enitites:
+	</p><div class="itemizedlist"><ul><li><p><a name="id2531260"/>
+             <tt>&amp;amp;</tt> -- ampersend (&amp;)
+	  </p></li><li><p><a name="id2531274"/>
+             <tt>&amp;lt;</tt> -- left angle bracket (&lt;)
+	  </p></li><li><p><a name="id2531287"/>
+             <tt>&amp;copy;</tt> -- copyright sign (©)
+	  </p></li><li><p><a name="id2531348"/>
+             <tt>&amp;mdash;</tt> -- long dash (--)
+	  </p></li><li><p><a name="id2531314"/>
+             <tt>&amp;hellip;</tt> -- ellipsis (...)
+	  </p></li></ul></div><p>
+	  Note that the actual look of the resulting symbols depends
+	  on the fonts used by your browser; for example, it might
+	  happen that long dash (<tt>&amp;mdash;</tt>) looks
+	  exactly like the usual dash (-). However, in the PostScript
+	  (and thus, in print) the output will look markedly better if
+	  you use appropriate tags. 
+	</p></div></div></div><div class="sect1"><a name="conventions"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="conventions"/>GDP Documentation Conventions </h2></div></div><div class="sect2"><a name="conventionsalldocs"/><div class="titlepage"><div><h3 class="title"><a name="conventionsalldocs"/>Conventions for All GDP Documentation</h3></div></div><div class="sect3"><a name="xmlcomp"/><div class="titlepage"><div><h4 class="title"><a name="xmlcomp"/> XML compatibility </h4></div></div><p>
+	  All GNOME documentation  should conform to XML syntax
+	  requirements, which are stricter than SGML ones -- see
+	  <a href="#xml" title="XML and SGML">the section called &#8220;XML and SGML&#8221;</a> for more informaion.
+	</p></div><div class="sect3"><a name="authorsnames"/><div class="titlepage"><div><h4 class="title"><a name="authorsnames"/> Authors' names</h4></div></div><p> 
+	  All GNOME documentation should contain the names of both the
+	  application authors and documentation authors, as well as a
+	  link to the application web page (if it exists) and
+	  information for bug submission -- see templates for an
+	  example. 
+	  </p></div></div><div class="sect2"><a name="conventionsappdocs"/><div class="titlepage"><div><h3 class="title"><a name="conventionsappdocs"/>Conventions for Application Documentation</h3></div></div><div class="sect3"><a name="applicationversionid"/><div class="titlepage"><div><h4 class="title"><a name="applicationversionid"/>Application Version Identification</h4></div></div><p>
+          Application documentation should identify the version of the
+          application for which the documentation is written:
+          <pre class="programlisting">
+
+&lt;sect1 id="intro"&gt;
+ &lt;title&gt;Introduction&lt;/title&gt;
+ &lt;para&gt;
+  blah-blah-blah This document describes version 1.0.53 of gfoo.
+ &lt;/para&gt;
+&lt;/sect1&gt;
+          </pre>
+        </p></div><div class="sect3"><a name="license"/><div class="titlepage"><div><h4 class="title"><a name="license"/> Copyright information </h4></div></div><p> Application
+        documentation should contain a copyright notice, stating the
+        licensing terms. It is suggested that you use the GNU Free
+        Documentation License.  You could also use some other license
+        allowing free redistribution, such as GPL or Open Content
+        license.  If documentation uses some trademarks (such as UNIX,
+        Linux, Windows, etc.), proper legal junk should also be
+        included (see templates).
+	</p></div><div class="sect3"><a name="license2"/><div class="titlepage"><div><h4 class="title"><a name="license2"/>Software license</h4></div></div><p> 
+         All GNOME applications must contain information about the
+       license (for software, not for documentation), either in the
+       "About" box or in the manual. 
+       </p></div><div class="sect3"><a name="bugtraq"/><div class="titlepage"><div><h4 class="title"><a name="bugtraq"/> Bug reporting</h4></div></div><p> 
+	  Application documentation should give an address for
+        reporting bugs and for submitting comments about the
+        documentaion (see templates for an example). 
+       </p></div></div></div><div class="sect1"><a name="writingapplicationmanuals"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="writingapplicationmanuals"/>Writing Application and Applet Manuals</h2></div></div><p>
+       Every GNOME application or applet should have a manual specific
+      to that particular application. This manual should be a complete
+      and authoritative guide.  The manual should describe what the
+      program does and how to use it.  Manuals will typically describe
+      each window or panel presented to the user using screenshots (in
+      PNG format only) when appropriate.  They should also describe
+      each feature and preference option available.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2531646"/>Documentation Availability</h3><p>
+        Applications and applets should not rely on documentation
+        which is only available on the internet.  All manuals and
+        other documentation should be packaged with the application or
+        applet and be made available to the user through the standard
+        GNOME help system methods described below.
+      </p></div><p> Application manuals should be based on the template in
+    <a href="#template1" title="Template 1: Application Manual">the section called &#8220;Template 1: Application Manual&#8221;</a>.  Applet manuals should be based on
+    the templates in <a href="#template2-1x" title="Template 2: Applet Manual For GNOME 1.x">the section called &#8220;Template 2: Applet Manual For GNOME 1.x&#8221;</a> for GNOME
+    versions 1.x and the templates in <a href="#template2-2x" title="Template 2: Applet Manual For GNOME 2.x">the section called &#8220;Template 2: Applet Manual For GNOME 2.x&#8221;</a>
+    for GNOME versions 2.x.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2531713"/>Manuals For Large Applications</h3><p>
+        Manuals for very large applications, such as GNOME Workshop
+        components should be a <tt>&lt;book&gt;</tt> (and thus
+        use <tt>&lt;chapter&gt;</tt> for each primary section)
+        , instead of <tt>&lt;article&gt;</tt> which most
+        applications use(with each primary section being a
+        <tt>&lt;sect1&gt;</tt>).
+      </p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2531756"/>Applet Manuals in GNOME 2.0</h3><p>
+        Note that applet manuals in GNOME 2.0 are treated in a special
+        way.  The manuals for all applets are merged into a single
+        virtual document by Nautilus.  For this reason, the header
+        information for applet manuals is omitted and the  first
+        section of each applet is
+        <tt>&lt;sect1&gt;</tt>. Applet manuals will typically
+        have several sections, each of which is
+        <tt>&lt;sect2&gt;</tt>.
+      </p></div><p>
+      Application manuals should be made available by having a
+      "Manual" entry in the Help pull-down menu
+      at the top of the 
+      application, as described in <a href="#listingdocsinhelpmenu" title="Listing Documents in the Help Menu">the section called &#8220;Listing Documents in the Help Menu&#8221;</a>.
+      Applets should make their manuals available by
+      right-clicking on the applet. 
+    </p></div><div class="sect1"><a name="listingdocsinhelpmenu"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="listingdocsinhelpmenu"/>Listing Documents in the Help Menu</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2531851"/>Developer Information</h3><p>
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </p></div><p>
+      Typically the application manual and possibly additional help
+      documents will be made available to the user under the
+      Help menu at the top right of the
+      application. To do this, you must first write a
+      <tt>topic.dat</tt> file. The format for this file is:
+      <pre class="programlisting">
+One line for each 'topic'.
+
+Two columns, as defined by perl -e 'split(/\s+/,$aline,2)'
+
+First column is the HTML file (and optional section) for the topic,
+relative to the app's help file dir.
+
+Second column is the user-visible topic name.
+      </pre>
+      For example, Gnumeric's
+      <tt>topic.dat</tt> file is:
+      <pre class="programlisting">
+gnumeric.html   Gnumeric manual
+function-reference.html Gnumeric function reference
+      </pre>
+      When the application is installed, the
+      <tt>topic.dat</tt> file should be placed in the
+      <tt>$prefix/share/gnome/help/<i><tt>appname</tt></i>/C/</tt> directory
+      where <i><tt>appname</tt></i> is replaced by the
+      application's name.  The application documentation (converted
+      from SGML into HTML with <b>db2html</b>) should be
+      placed in this directory too.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2531991"/>Note</h3><p>
+       If the help files are not present in the correct directory, the
+       menu items will NOT appear when the program is run. 
+      </p></div><p>
+      The <tt>topic.dat</tt> file is used by the GNOME
+      menu building code to generate the Help
+      menu. When you define your menu:  
+<pre class="programlisting">
+GnomeUIInfo helpmenu[] = {
+              {GNOME_APP_UI_ITEM, 
+               N_("About"), N_("Info about this program"),
+               about_cb, NULL, NULL, 
+               GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ABOUT,
+               0, 0, NULL},
+               GNOMEUIINFO_SEPARATOR,
+               GNOMEUIINFO_HELP("<i>appname</i>"),
+               GNOMEUIINFO_END
+        };
+</pre>
+      the line specifying <tt>GNOMEUIINFO_HELP</tt> causes
+      GNOME to create a menu entry which is tied to the documentation
+      in the directory mentioned above. Also, all the topics in the
+      <tt>topic.dat</tt> file will get menu entries in the
+      Help menu. When the user selects any of these
+      topics from the Help menu, a help browser
+      will be started with the associated HTML documentation.
+    </p></div><div class="sect1"><a name="applicationhelpbuttons"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="applicationhelpbuttons"/>Application Help Buttons</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2532116"/>Developer Information</h3><p>
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </p></div><p>
+      Most GNOME applications will have Help
+      buttons.  These are most often seen in Preference windows. (All
+      Preference windows should have Help
+      buttons.) Most Help buttons will connect
+      to the application manual, although some may connect to special
+      documents.  Because the Help buttons do
+      not generally have their own special documentation, the
+      documentation author(s) do not need to do very much.  However,
+      the application author must be careful to guarantee that the
+      application correctly opens the help documentation when the
+      Help buttons are pressed.  
+    </p><p>
+      To make the Help buttons call the correct document in the GNOME Help
+      Browser the developer should add code based on the following example:
+    </p><pre class="programlisting">
+gchar *tmp;
+tmp = gnome_help_file_find_file ("module", "page.html");
+if (tmp) {
+  gnome_help_goto(0, tmp);
+  g_free(tmp);
+}
+    </pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2532218"/>NOTE</h3><p>
+        The example above is in the C language, please refer to other
+        documentation or forums for other GNOME language bindings.
+      </p></div></div><div class="sect1"><a name="packagingappletdocs"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="packagingappletdocs"/>Packaging Applet Documentation</h2></div></div><div class="sect2"><a name="appletfiles"/><div class="titlepage"><div><h3 class="title"><a name="appletfiles"/>Applet Documentation Files</h3></div></div><p>
+        In GNOME 2.0 each applet will have its own documentation
+        installed separately, and the GNOME 2.0 help
+        browser (Nautilus) will dynamically
+        merge the applet documents into a single virtual book
+        called <i>GNOME Applets</i>. During the
+        transitionary stage between GNOME 1.0 and GNOME 2.0, each
+        applet in the gnome-applets package has its own manual(stored
+        with the applet in CVS), but they are merged together manually
+        to create the <i>GNOME Applets</i> book before
+        distribution.  Telsa 
+        <tt>&lt;<a href="mailto:hobbit at aloss.ukuu.org.uk">hobbit at aloss.ukuu.org.uk</a>&gt;</tt> is the maintainer of
+        this document.  Applet documentation should be sent to Telsa
+        (or placed in CVS) who will make sure they are correctly
+        packaged with the applets.  The applet author should be
+        contacted to modify the menu items and help buttons to bind to
+        the applet documentation if necessary.
+      </p><p>
+        Images which are part of the applet documentation should be in
+        PNG format and should reside in the same directory as the SGML
+        document file in CVS(gnome-applets/APPLETNAME/help/C).
+      </p><p>
+        Applets which are not part of the gnome-applets package must
+        package their documentation with the particular applet
+        package. They should use the same applet template as other
+        applets.  However, the <tt>&lt;xref&gt;</tt> links to
+        the introductory chapter of the <i>GNOME
+        Applets</i>  book must be removed (as the 1.x
+        GNOME Help Browser does not allow
+        you to create links between separate documents) and replaced
+        with suitable text.  Note that since this document is not part
+        of the <i>GNOME Applets</i> book, you must
+        remember to add <tt>&lt;legalnotice&gt;</tt> and
+        <tt>&lt;copyright&gt;</tt> sections.
+      </p></div><div class="sect2"><a name="appletmenu"/><div class="titlepage"><div><h3 class="title"><a name="appletmenu"/>Adding Documentation to an Applet Menu</h3></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2532404"/>Developer Information</h3><p>
+          This section is for developers.  Documentation authors
+          generally do not need to know this material.
+        </p></div><p>
+        Applets should have About and
+        Manual menu items, typically as the first
+        and second top-most items in the menu respectively.  This
+        section describes how the developer creates these menu items
+        and links them to the documentation.
+      </p><p>
+        To add an applet's manual to its applet menu, use:
+<pre class="programlisting">
+/* add an item to the applet menu */
+applet_widget_register_callback(APPLET_WIDGET(applet), "manual",
+_("Manual"), &amp;open_manual, NULL);
+</pre>
+        Here the second argument is an arbitrary name for the
+        callback, the third argument is the label which will appear
+        when the user right clicks on the applet, and the fourth
+        argument is the callback function.
+      </p><p>
+        You will need to write a simple callback function to open the
+        help browser to the appropriate document.  This is done using
+        the <tt>gnome_help_file_find_file</tt> function,
+        as described in <a href="#applicationhelpbuttons" title="Application Help Buttons">the section called &#8220;Application Help Buttons&#8221;</a>.
+      </p><p>
+        You will also want to add an About menu
+        item to the applet's menu.  This is a
+        stock menu item and is done:
+<pre class="programlisting">
+applet_widget_register_stock_callback (APPLET_WIDGET(applet), "about",
+       GNOME_STOCK_MENU_ABOUT, _("About"), &amp;my_applet_cb_about,
+       NULL);
+</pre>
+      </p><p>
+        More information can be found at <a href="http://developer.gnome.org/doc/tutorials/applet/index.html" target="_top">Writing
+        GNOME panel applets using the GTK+/GTK-- widget set</a>.
+      </p></div></div><div class="sect1"><a name="writingcontextsensitivehelp"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="writingcontextsensitivehelp"/>Writing Context Sensitive Help (coming in GNOME-2.0)</h2></div></div><p>
+      Context sensitive help, also known as "pop-up" help, will allow
+      a user to obtain help information about specific buttons or
+      parts of an application.
+    </p><p>
+      Context sensitive help is still under development and not all
+      the details are available at this time. However, the basics can
+      be shown here so that you can understand how the system will
+      work.
+    </p><p>
+      The Context Sensitive Help system is designed to allow the
+      developer to give an id to a particular portion of the User
+      Interface, for example, a button. Once the interface is complete
+      a Perl script can then be run against the interface code to
+      create a "map" file. This map file allows the developer or
+      writer to associate particular paragraph sections from an XML
+      document to the interface items.
+    </p><p>
+      The XML used for the document is a small XML DTD that is being
+      developed to use the same tags (albeit, much fewer) as DocBook
+      so that writers do not have to re-learn a new DTD.
+    </p><p>
+      Once the document is written and map file is complete, when the
+      user launches context sensitive help on the interface (either by
+      pressing a button and then clicking on the interface item they
+      want information on, or by right mouse clicking on the interface
+      item and selecting a pop-up menu item like "What's This") a
+      small transient window will appear with brief but detailed
+      information on the interface item.
+    </p></div><div class="sect1"><a name="referring"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="referring"/>Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</h2></div></div><p>
+      In the GNOME 2.0 Help System, you will be able to create links
+      from one document to another.  The exact mechanism for doing
+      this is in development.
+    </p></div><div class="sect1"><a name="basics"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="basics"/>Basics of Documentation Style</h2></div></div><p>
+       Most people have never enjoyed reading a software manual, and
+       they probably never will.  Many times, they'll read the
+       documentation only when they run into problems, and they'll be
+       frustrated and upset before they even read a word.  On the
+       other hand, some readers will read the manual all the way
+       through, or at least look at the introduction before they
+       start. Your document might serve as a reference for an expert
+       or a guide to a beginner, and it must have enough depth to
+       satisfy the first without overwhelming the second.  Ideally, it
+       will serve beginners as they <i>become</i>
+       experts. Remember, your goal is to produce <i>complete,
+       intuitive and clear</i> documentation.
+    </p><p>
+       In order to write useful documentation, you'll have to know who
+       your audience is likely to be.  Then, you can look for the
+       problems they're likely to run into, and solve them.  It will
+       also help if you focus on the tasks users will perform, and
+       group features accordingly, rather than simply describing
+       features at random.  
+    </p><div class="sect2"><a name="styleplanning"/><div class="titlepage"><div><h3 class="title"><a name="styleplanning"/>Planning</h3></div></div><p>
+         Begin documenting by learning how to use the application and
+         reading over any existing documentation.  Pay attention to
+         places where your document will differ from the template.  It
+         may help to develop a document skeleton: a valid XML or SGML
+         document that has little or no content.  For very large
+         applications, you will need to make significant departures
+         from the templates, since you'll be using the
+         <tt>&lt;book&gt;</tt> tag instead of
+         <tt>&lt;chapter&gt;</tt> or
+         <tt>&lt;article&gt;</tt>.
+      </p></div><div class="sect2"><a name="balance"/><div class="titlepage"><div><h3 class="title"><a name="balance"/>Achieving a Balanced Style</h3></div></div><p> 
+         Just as you need to juggle expert and novice readers,
+         you'll have to juggle a number of other extremes as you write:
+         <div class="itemizedlist"><ul><li><p><a name="id2532825"/>
+              Documents should be complete, yet concise.  You should
+              describe every feature, but you'll have decide how much
+              detail is really necessary.  It's not, for example,
+              necessary to describe every button and form field in a
+              dialog box, but you should make sure that your readers
+              know how to bring up the dialog and what it does.  If
+              you spend fewer words on the obvious, you can spend more
+              time clarifying the ambiguous labels and explaining
+              items that are more complex.
+            </p></li><li><p><a name="id2532845"/>
+              Be engaging and friendly, yet professional. Games
+              documents may be less formal than productivity
+              application documents (people don't
+              <i>use</i> games, they
+              <i>play</i> them), but all of them should
+              maintain a standard of style which holds the reader's
+              interest without resorting to jokes and untranslatable
+              allusions or puns.
+           </p></li><li><p><a name="id2532874"/>
+              Examples, tips, notes, and screenshots are useful to
+              break up long stretches of text, but too many can get in
+              the way, and make your documents too choppy to read.
+              It's good to provide a screenshot of any dialog windows
+              a user might run into, but if a dialog box has several
+              tabs, it's not usually necessary to have one for each.
+           </p></li><li><p><a name="id2532892"/>
+              The GDP strives to have all of its documentation conform
+              to certain standards of style and content, but every
+              document (and every writer) is different.  You will need
+              to use your judgement, and write documents to fit with
+              the rest of the project, without compromising the
+              individual needs of your subject, or your own
+              individuality as a writer.
+           </p></li></ul></div>
+       </p></div><div class="sect2"><a name="stylestructure"/><div class="titlepage"><div><h3 class="title"><a name="stylestructure"/>Structure</h3></div></div><p>
+         In general, you won't have to worry too much about structure,
+         because the templates provide you with an excellent example.
+         As a general rule, try to follow that structural example.
+         That means using links, hierarchical nesting, and, if
+         necessary, a glossary or index.  You probably won't need to
+         use every available structural tag, but take advantage of
+         what DocBook provides you.
+      </p><p>
+         As to linking, there's some disagreement about whether to use
+         <tt>&lt;xref&gt;</tt> <tt>&lt;link&gt;</tt>
+         when you make links within your documents.  You'll have to
+         decide, based on the different ways that they are presented
+         in output, which is more appropriate given the context.
+         Regardless of which you use, you should not forget to use
+         them.  Help your readers find information that relevant to
+         the issue at hand.
+      </p><p>
+         The table of contents will be generated automatically, but
+         you will probably have to develop your own index if you wish
+         to have one.  The Nautilus Help Browser will have new, and
+         currently unknown, indexing capabilities, so index style and
+         structure are still under discussion.  The GNOME User's Guide
+         will contain a glossary in its next versions; unless you're
+         writing a<tt>&lt;book&gt;</tt>, it will probably be best to
+         contribute to that rather than developing your own.
+      </p></div><div class="sect2"><a name="stylegrammar"/><div class="titlepage"><div><h3 class="title"><a name="stylegrammar"/>Grammar and Spelling</h3></div></div><p>
+        Nobody expects you to be perfect; they just expect the
+        documentation for their software to be error-free.  That means
+        that, in the same way that developers look for bugs and accept
+        bug reports, writers must check for errors in their documents.
+        Poor grammar, bad spelling, and gross technical errors in
+        draft documents are fine.  However, if those problems show up
+        in a "real" release, they can count against the credibility of
+        GNOME and Linux.  They'll also make you look bad.
+      </p><p>
+        There is no substitute for a human proofreader; use a
+        spell-check program, then read it over yourself, and then find
+        someone else to help you.  Other GDP members are, of course,
+        willing and able to help you, but non-writers are often at
+        least as helpful.
+      </p><p>
+        Proofreading documents is both a also a good way to
+        familiarize yourself with documentation, and it certainly
+        makes you valuable to the GDP. Help other writers proof their
+        documents, and they will help you with yours.
+      </p></div></div><div class="sect1"><a name="teamwork"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="teamwork"/>Teamwork</h2></div></div><div class="sect2"><a name="teamworkgdp"/><div class="titlepage"><div><h3 class="title"><a name="teamworkgdp"/>Working With The GDP Team</h3></div></div><p>
+        The GDP team is a valuable resource for any documentation
+        author.  GDP members can answer most questions documentation
+        authors have during the course of their work. It is also
+        important to make sure you are not duplicating work of other
+        GDP members by visiting the <i>GDP Documentation
+        Status Table</i> (<a href="http://www.gnome.org/gdp/doctable/" target="_top">http://www.gnome.org/gdp/doctable/</a>) and
+        assigning a documentation item to yourself.  This table also
+        provides a forum for making suggestions and announcements for
+        each documentation item.  The best way to get in touch with
+        GDP members is on the #docs IRC channel at irc.gnome.org or
+        else by emailing the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+        <i>gnome-doc-list mailing list</i></a>.
+      </p><p>
+        After an author has finished a document (or even a draft
+        version of the document), it is a good idea to ask a member of
+        the GDP team to read the document, checking it for grammar,
+        proper DocBook markup, and clarity.  One may typically find
+        another author to do this by either asking on the #docs IRC
+        channel at irc.gnome.org or by emailing the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+        <i>gnome-doc-list mailing list</i></a>.
+      </p></div><div class="sect2"><a name="teamworkdevelopers"/><div class="titlepage"><div><h3 class="title"><a name="teamworkdevelopers"/>Working With Developers</h3></div></div><p>
+        Writing documentation typically involves a certain amount of
+        interaction with the developers of GNOME or the application
+        which is being documented.  Often a document author will need
+        to ask the developer technical questions during the course of
+        writing a document. After the document is finished, it is good
+        idea to ask the developer to read the document to make sure it
+        is technically correct.  The documentation author should also
+        make sure that the application author correctly binds and
+        packages the documentation with the application.
+      </p></div></div><div class="sect1"><a name="finishing"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="finishing"/>Finishing A Document</h2></div></div><div class="sect2"><a name="editting"/><div class="titlepage"><div><h3 class="title"><a name="editting"/>Editing The Document</h3></div></div><p>
+        When the document is finished, the document should be edited
+        by another member of the GDP for spelling, clarity, and
+        DocBook markup. It should also be read by an application
+        author to make sure the document is technically accurate.
+      </p></div><div class="sect2"><a name="submitting"/><div class="titlepage"><div><h3 class="title"><a name="submitting"/>Submitting The Document</h3></div></div><p>
+        After the document has been edited and checked for technical
+        accuracy, it is ready to be combined with the application or
+        documentation package.  This is typically done by passing the
+        document to the application or package developer.  In some
+        cases, the documents can be committed directly into CVS,
+        however this should only be done after obtaining permission to
+        make CVS commits from the developer.  Note that in many cases,
+        the application may need to be modified to correctly link to
+        the documentation.  The packaging system (tarballs and binary
+        packages) may also need to be modified to include the
+        documentation in the package.  Generally, this should be done
+        by the developers.
+      </p><p>
+        The final step is to email the GNOME Translation Team at
+        <tt>&lt;<a href="mailto:gnome-i18n at nuclecu.unam.mx">gnome-i18n at nuclecu.unam.mx</a>&gt;</tt> to notify them that
+        there is a new document for them to translate.
+      </p></div></div><div class="sect1"><a name="resources"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="resources"/>Resources</h2></div></div><div class="sect2"><a name="resourcesweb"/><div class="titlepage"><div><h3 class="title"><a name="resourcesweb"/>Resources On The Web</h3></div></div><p>  The <a href="http://developer.gnome.org/projects/gdp/" target="_top">GNOME
+      Documentation Project Web page</a> lists current GDP 
+      projects and members.
+      </p><p>
+        The <a href="http://www.gnome.org/gdp/doctable/" target="_top">GDP Documentation Status Table</a> tracks the
+        status of all the various documentation components of GNOME.
+      </p><p>
+        Norman Walsh's  <a href="http://www.docbook.org" target="_top"> <i>DocBook: The Definitive
+        Guide</i></a> in an excellent book on DocBook,
+        available both online and in print.
+      </p></div><div class="sect2"><a name="resourcesbooks"/><div class="titlepage"><div><h3 class="title"><a name="resourcesbooks"/>Books</h3></div></div><p>
+        Docbook: The Definitive Guide is available in both printed
+        form and on the web at:
+        <a href="http://www.docbook.org/tdg/index.html" target="_top">
+        <i>Docbook: The Definitive Guide</i>
+        </a>
+      </p></div><div class="sect2"><a name="mailinglists"/><div class="titlepage"><div><h3 class="title"><a name="mailinglists"/>Mailing Lists</h3></div></div><p>
+        The <i>gnome-docs-list</i> mailing list is the
+        main discussion area for all contributors to the GNOME
+        Documentation Project. You can find out how to subscribe to
+        this list on <a href="http://www.gnome.org/resources/mailing-lists.html" target="_top">GNOME Mailing Lists</a>.  This is a rather
+        low-volume list, so you will not be flooded with messages.
+      </p></div><div class="sect2"><a name="irc"/><div class="titlepage"><div><h3 class="title"><a name="irc"/>IRC</h3></div></div><p>
+        Internet Relay Chat (IRC) is a fast and easy way to get in
+        touch with other GDP members.  There are generally at least a
+        few members here who can answer questions or discuss
+        documentation issues.  The IRC channel is #docs at
+        irc.gnome.org.
+      </p></div></div><div class="appendix"><h2 class="title" style="clear: both"><a name="templates"/>A. Document Templates</h2><div class="sect1"><a name="template1"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="template1"/>Template 1: Application Manual</h2></div></div><p>
+        The following template should be used for all application
+        manuals.  You can always get the latest copy of this
+        template from  <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Documentation Templates</a>.
+        <pre class="programlisting">
+
+
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+        &lt;!-- if not using PNG graphic, replace reference above with
+             .....PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
+         --&gt;
+&lt;!ENTITY version "1.0.53"&gt;
+        &lt;!-- replace version above with actual application version number--&gt;
+	&lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+]&gt;
+
+
+&lt;!-- This is a GNOME documentation template, designed by the GNOME
+  Documentation Project Team. Please use it for writing GNOME
+  documentation, making obvious changes. In particular, all the words
+  written in UPPERCASE (with the exception of GNOME) should be
+  replaced. As for "legalnotice", please leave the reference
+  unchanged.
+
+  Remember that this is a guide, rather than a perfect model to follow
+  slavishly. Make your manual logical and readable.  And don't forget
+  to remove these comments in your final documentation!  ;-)
+  --&gt;
+
+&lt;!-- =============Document Header ============================= --&gt;
+
+&lt;article id="index"&gt; &lt;!-- please do not change the id --&gt;
+
+  &lt;artheader&gt;
+    &lt;title&gt;MY-GNOME-APP&lt;/title&gt;
+    &lt;copyright&gt;
+      &lt;year&gt;2000&lt;/year&gt;
+      &lt;holder&gt;ME-THE-AUTHOR&lt;/holder&gt;
+    &lt;/copyright&gt;
+
+  &lt;!-- translators: uncomment this:
+
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;ME-THE-TRANSLATOR (Latin translation)&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+   --&gt;
+
+  &lt;!-- do not put authorname in the header except in copyright - use
+  section "authors" below --&gt;
+
+    &lt;legalnotice&gt;
+      &lt;para&gt;
+        Permission is granted to copy, distribute and/or modify this
+        document under the terms of the &lt;citetitle&gt;GNU Free
+        Documentation License&lt;/citetitle&gt;, Version 1.1 or any later
+        version published by the Free Software Foundation with no
+        Invariant Sections, no Front-Cover Texts, and no Back-Cover
+        Texts. You may obtain a copy of the &lt;citetitle&gt;GNU Free
+        Documentation License&lt;/citetitle&gt; from the Free Software
+        Foundation by visiting &lt;ulink type="http"
+        url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing
+        to: Free Software Foundation, Inc., 59 Temple Place - Suite
+        330, Boston, MA 02111-1307, USA.
+      &lt;/para&gt;
+      &lt;para&gt;
+        Many of the names used by companies to distinguish their
+        products and services are claimed as trademarks. Where those
+        names appear in any GNOME documentation, and those trademarks
+        are made aware to the members of the GNOME Documentation
+        Project, the names have been printed in caps or initial caps.
+      &lt;/para&gt;
+    &lt;/legalnotice&gt;
+
+  &lt;!-- this is the version of manual, not application --&gt; 
+    &lt;releaseinfo&gt;
+       This is version 1.0 of MY-GNOME-APP manual.
+    &lt;/releaseinfo&gt;
+
+  &lt;/artheader&gt;
+
+ &lt;!-- ============= Document Body ============================= --&gt;
+
+ &lt;!-- ============= Introduction ============================== --&gt;
+  &lt;sect1 id="intro"&gt;
+    &lt;title&gt;Introduction&lt;/title&gt;
+
+    &lt;para&gt;
+     &lt;application&gt;MY-GNOME-APP&lt;/application&gt; is an application which
+     proves mathematical theorems.  It has all the basic features
+     expected from a mathematical theorem prover, as well as a number
+     of advanced ones, such as proof by confusion.  In fact, many of
+     the proofs produced by &lt;application&gt;MY-GNOME-APP&lt;/application&gt;
+     are so complex that they are capable of proving almost anything
+     with a virtually null likelihood of being disproven.  It also has
+     the very popular predecessor of proof by confusion, proof by
+     dialog, first implemented by Plato.
+    &lt;/para&gt;
+    &lt;para&gt;
+      It also allows you to save and print theorem proofs and to add
+      comments to the proofs it produces.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+      To run &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, select
+      &lt;menuchoice&gt;
+	&lt;guisubmenu&gt;SUBMENU&lt;/guisubmenu&gt;
+	&lt;guimenuitem&gt;MY-GNOME-APP&lt;/guimenuitem&gt;
+      &lt;/menuchoice&gt;
+      from the &lt;guimenu&gt;Main Menu&lt;/guimenu&gt;, or type
+      &lt;command&gt;MYGNOMEAPP&lt;/command&gt; on the command line.
+  &lt;/para&gt;
+
+    &lt;para&gt;
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt; is included in the
+      &lt;filename&gt;GNOME-PACKAGE&lt;/filename&gt; package, which is part of the
+      GNOME desktop environment. This document describes version
+      &amp;version; of &lt;application&gt;MY-GNOME-APP&lt;/application&gt;.
+    &lt;/para&gt;
+  &lt;/sect1&gt;
+
+
+ &lt;!-- ================ Usage ================================ --&gt;
+ &lt;!-- This section should describe basic usage of the application. --&gt;
+
+  &lt;sect1 id="usage"&gt;
+    &lt;title&gt;Using MY-GNOME-APP&lt;/title&gt;
+    &lt;para&gt;
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt; can be used to produce a
+      perfect proof of &lt;emphasis&gt;any&lt;/emphasis&gt; mathematical theorem
+      (provided, of course, that this theorem is correct), thus
+      providing for new users an easy-to-use graphical interface to
+      modern mathematics. This section describes basic usage of
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt;.
+    &lt;/para&gt;
+
+    &lt;!-- ========= Basic Usage =========================== --&gt;
+    &lt;sect2 id="mainwin"&gt;
+      &lt;title&gt;Basic usage&lt;/title&gt;
+      &lt;para&gt;
+        Starting &lt;application&gt;MY-GNOME-APP&lt;/application&gt; opens the
+        &lt;interface&gt;Main window&lt;/interface&gt;, shown in &lt;xref
+        linkend="mainwindow-fig"&gt;. The window is at first empty.
+
+        &lt;!-- ==== Figure ==== --&gt;
+        &lt;figure id="mainwindow-fig"&gt;
+	  &lt;title&gt;MY-GNOME-APP Main Window&lt;/title&gt;
+	  &lt;screenshot&gt;
+	    &lt;screeninfo&gt;MY-GNOME-APP Main Window&lt;/screeninfo&gt;
+	    &lt;graphic fileref="SCREENSHOT" format="png" srccredit="ME"&gt;
+            &lt;/graphic&gt;
+	  &lt;/screenshot&gt;
+	&lt;/figure&gt;
+    &lt;!-- ==== End of Figure ==== --&gt;
+      &lt;/para&gt; 
+
+
+ &lt;!-- For this app, one could put "proving" or "edit" (probably even
+      both of them) as sect2's seperate from the main window
+      section. Since they were both so closely involved with the main
+      window, I decided to have them as sect3's isntead. Judgement
+      call. --&gt;
+
+      &lt;sect3 id="proving"&gt;
+	&lt;title&gt;Proving a Theorem&lt;/title&gt;
+	&lt;para&gt;
+          To get a proof of a theorem, select
+          &lt;menuchoice&gt;
+	    &lt;guisubmenu&gt;File&lt;/guisubmenu&gt;
+	    &lt;guimenuitem&gt;New&lt;/guimenuitem&gt;
+	  &lt;/menuchoice&gt;,
+            which will
+	    bring up the &lt;interface&gt;New Proof&lt;/interface&gt; dialog box.
+	    Enter the statement of the theorem in the
+	    &lt;guilabel&gt;Theorem statement&lt;/guilabel&gt; field, select your
+	    desired proof type from the drop-down menu, and and press
+	    &lt;guibutton&gt;Prove!&lt;/guibutton&gt;.
+        &lt;/para&gt;
+	&lt;para&gt;
+          If &lt;application&gt;MY-GNOME-APP&lt;/application&gt; cannot prove the
+          theorem by the method you have chosen, or if you have not
+          selected a proof type at all,
+          &lt;application&gt;MY-GNOME-APP&lt;/application&gt; will attempt to
+          choose the one that it thinks is most conclusive.  In order,
+          it will attempt to prove the theorem with the following techniques: 
+     
+                &lt;variablelist&gt;
+	    &lt;varlistentry&gt;
+	      &lt;term&gt;Deduction&lt;/term&gt;
+	      &lt;listitem&gt;
+		&lt;para&gt;
+                  This is a proof method that is generally accepted
+                  for full credit by Logic professors.
+                &lt;/para&gt;
+	      &lt;/listitem&gt;
+	    &lt;/varlistentry&gt;
+	    &lt;varlistentry&gt;
+            &lt;term&gt;Induction&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                This logical style will also earn you full credit on
+                your homework.
+             &lt;/para&gt;
+	    &lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+	    &lt;varlistentry&gt;
+	      &lt;term&gt;Dialog&lt;/term&gt;
+	      &lt;listitem&gt;
+	      &lt;para&gt;
+                This logical method is best for Philosophy classes,
+                and will probably only merit partial credit on Logic
+                or Mathematics homework.
+              &lt;/para&gt;
+	    &lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+	      &lt;term&gt;Confusion&lt;/term&gt;
+	      &lt;listitem&gt;
+	      &lt;para&gt;
+                Suitable only for political debates, battles of wits
+                against the unarmed, and Philosophy classes focusing
+                on the works of Kant. Use with caution.
+              &lt;/para&gt;
+	      &lt;/listitem&gt;
+	    &lt;/varlistentry&gt;
+	  &lt;/variablelist&gt;
+          &lt;/para&gt;
+
+   &lt;!-- You might want to include a note, warning, or tip, e.g. --&gt;
+	
+	&lt;warning&gt;
+	  &lt;title&gt;Proving Incorrect Theorms&lt;/title&gt;
+	  &lt;para&gt;
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; cannot prove
+            incorrect theorems. If the theorem you have entered is not
+            demonstrably true, you will get a message to that effect
+            in the main window.  To disprove a theorem, ask
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; to prove its
+            logical inverse.
+          &lt;/para&gt;
+	&lt;/warning&gt;
+      &lt;/sect3&gt;
+      &lt;sect3 id="editing"&gt;
+	&lt;title&gt;Editing Proofs&lt;/title&gt;
+	&lt;para&gt;
+          Once you have proven the theorem, it will be displayed in
+          the &lt;interface&gt;main window&lt;/interface&gt;.  There, you can read
+          it over, choose text styles for different portions of it,
+          and make comments on it. This section will guide you through
+          that process.
+        &lt;/para&gt;
+	&lt;para&gt;
+          To alter text styles, first select the statement you wish to
+          change by clicking on it once.  You can select several
+          statements by Then, choose the style you want to apply from
+          the &lt;guisubmenu&gt;Style&lt;/guisubmenu&gt; submenu of the
+          &lt;guimenu&gt;Edit&lt;/guimenu&gt; menu.
+          &lt;application&gt;MY-GNOME-APP&lt;/application&gt; will convert the
+          text to that style.
+        &lt;/para&gt;
+        &lt;para&gt;
+          You can also enter comments on a statement by selecting that
+          statement, and then beginning to type.  Comments will appear
+          after the statement you have selected.
+        &lt;/para&gt;
+
+	&lt;note&gt;
+	  &lt;title&gt;Altering The Proofs Themselves&lt;/title&gt;
+          &lt;para&gt;
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; does not allow you
+            to alter a proof it has produced itself.  You can, save
+            your proof as a plain text file (using the
+            &lt;guimenuitem&gt;Save as...&lt;/guimenuitem&gt; menu), and alter it
+            that way.  Be aware, however, that
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; uses its own file
+            format for saved proofs, and cannot re-open a file unless
+            it is in the .mga format.
+          &lt;/para&gt;
+	&lt;/note&gt;
+      &lt;/sect3&gt;
+
+
+  &lt;!-- If there are other functions performed from the main window,
+       they belong here.   --&gt;
+
+    &lt;/sect2&gt;
+ 
+    &lt;!-- ========================================================= 
+      Additional Sect2's should describe additional windows, such as
+      larger dialog boxes, or functionality that differs significantly
+      from the most immediate functions of the application. Make the
+      structure logical.
+      =============================================================  --&gt;
+
+
+    &lt;sect2 id="toolbar"&gt;
+      &lt;title&gt;Toolbar&lt;/title&gt;
+      &lt;para&gt;
+        The toolbar (shown in &lt;xref linkend="figure-usage-toolbar"&gt;)
+        provides access to several commonly used routines.
+        &lt;figure id="figure-usage-toolbar"&gt;
+	  &lt;title&gt;MY-GNOME-APP Toolbar&lt;/title&gt;
+	  &lt;screenshot&gt;
+	    &lt;screeninfo&gt;MY-GNOME-APP Toolbar&lt;/screeninfo&gt;
+	    &lt;graphic fileref="usage-toolbar.png" format="png"&gt;&lt;/graphic&gt;
+	  &lt;/screenshot&gt;
+	&lt;/figure&gt;
+        &lt;variablelist&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;New&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                Brings up the &lt;interface&gt;New Theorem&lt;/interface&gt;
+                dialog.
+              &lt;/para&gt;
+	    &lt;/listitem&gt;
+	  &lt;/varlistentry&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;Open&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                 Open an exisiting theorem you want to prove, or a
+                 completed proof you wish to print or format.
+               &lt;/para&gt;
+	    &lt;/listitem&gt;
+	  &lt;/varlistentry&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;Save&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+	         Save the current theorem permanently in a
+	         file.
+               &lt;/para&gt;
+	    &lt;/listitem&gt; 
+	  &lt;/varlistentry&gt;
+	&lt;/variablelist&gt;
+       &lt;/para&gt;
+    &lt;/sect2&gt;
+    &lt;!-- ========= Menus =========================== --&gt; 
+
+    &lt;sect2 id="menubar"&gt;
+
+       &lt;!-- Describing the menubar ensures comprehensive feature
+       coverage. Nest itemizedlists inside variablelists so that each
+       menu is easily located by indexing software. Proper indentation
+       makes it easier! --&gt;
+
+      &lt;title&gt;Menus&lt;/title&gt;
+      &lt;para&gt;
+	The menu bar, located at the top of the &lt;interface&gt;Main
+	Window&lt;/interface&gt;, contains the following menus:
+       &lt;/para&gt;
+      &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;File&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	       This menu contains:
+	       &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycap&gt;F3&lt;/keycap&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Open&lt;/guimenuitem&gt;
+		     &lt;/menuchoice&gt;
+	             &amp;mdash; This opens a file which is saved on your computer.
+	           &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;S&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Save&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This saves your file.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;W&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Close&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This closes your file.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;Q&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Exit&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This quits the application.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	  &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Edit&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	   This menu contains:
+	   &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;X&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Cut&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This removes any text or data which is selected and
+	            places it in the buffer.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;C&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Copy&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This copies any text or data which is selected into
+	            the buffer.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	           &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;V&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Paste&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This pastes any text or data which is copied into
+	            the buffer.
+	        &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;guimenuitem&gt;COMMAND1&amp;hellip;&lt;/guimenuitem&gt;
+	             &amp;mdash; This opens the &lt;interface&gt;COMMAND1&lt;/interface&gt;
+	             dialog, which is used to ....
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;COMMAND2&lt;/guimenuitem&gt;
+	            &amp;mdash; This ....
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	    &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Settings&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	   This menu contains:
+	   &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	      &lt;guimenuitem&gt;Preferences&amp;hellip;&lt;/guimenuitem&gt;
+	       &amp;mdash; This opens the &lt;link
+	       linkend="prefs"&gt;&lt;interface&gt;Preferences
+	       Dialog&lt;/interface&gt;&lt;/link&gt;, which allows you to configure
+	       many settings.
+	     &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;COMMAND3&lt;/guimenuitem&gt; &amp;mdash;
+    	            This command does something.
+    	    	   &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	    &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Help&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	      This menu contains:
+	       &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;guimenuitem&gt;Manual&lt;/guimenuitem&gt; &amp;mdash; This
+    	              opens the &lt;application&gt;GNOME Help
+    	              Browser&lt;/application&gt; and displays this manual.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;About&lt;/guimenuitem&gt; &amp;mdash; This
+    	            opens the &lt;interface&gt;About&lt;/interface&gt; dialog
+    	            which shows basic information about
+    	            &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, such as
+    	            the author's name, the application version number,
+    	            and the URL for the application's Web page if one
+    	            exists.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+            &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/sect2&gt;
+  &lt;/sect1&gt;
+
+
+
+ &lt;!-- ============= Customization ============================= --&gt;
+
+ &lt;sect1 id="prefs"&gt;
+  &lt;title&gt;Customization&lt;/title&gt;
+  &lt;para&gt;
+   To change the application settings, select
+   &lt;menuchoice&gt;
+    &lt;guimenu&gt;Settings&lt;/guimenu&gt;
+    &lt;guimenuitem&gt;Preferences...&lt;/guimenuitem&gt;
+   &lt;/menuchoice&gt;.  This opens the
+   &lt;interface&gt;Preferences&lt;/interface&gt; dialog, shown in &lt;xref
+   linkend="preferences-fig"&gt;.
+  &lt;/para&gt;
+
+  &lt;figure id="preferences-fig"&gt;
+   &lt;title&gt;Preferences Dialog&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;Preferences Dialog&lt;/screeninfo&gt;
+    &lt;graphic fileref="SCREENSHOT" format="png"
+     srccredit="ME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+  &lt;/figure&gt;
+
+  &lt;para&gt;
+   The properties in the &lt;guilabel&gt;PREFSTABNAME&lt;/guilabel&gt; tab are:
+   
+   &lt;!--many people use itemizedlists in cases like this. Variablelists
+   are more appropriate --&gt;
+
+      &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt; &lt;guilabel&gt;Default Text Style&lt;/guilabel&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+              Select the default text style for statements in your
+              proof.  You can still change the style for individual
+              proofs or sections of a proof at a later date.
+            &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     The properties in the &lt;guilabel&gt;SECONDTABNAME&lt;/guilabel&gt; tab are:
+       &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/para&gt;
+
+  &lt;para&gt;
+    After you have made all the changes you want, click on
+    &lt;guibutton&gt;OK&lt;/guibutton&gt; to apply the changes and close the
+    &lt;interface&gt;Properties&lt;/interface&gt; dialog. To cancel the changes
+    and return to previous values, click the
+    &lt;guibutton&gt;Close&lt;/guibutton&gt; button.
+  &lt;/para&gt;
+
+ &lt;/sect1&gt;
+
+
+ &lt;!-- ============= Various Sections ============================= --&gt;
+
+ &lt;!-- Here you should add, if necessary, several more sect1's,
+ describing other windows (besides the main one), file formats,
+ preferences dialogs,  etc. as appropriate. Try not to make any of
+ these sections too long. --&gt;
+
+
+ &lt;!-- ============= Bugs ================================== --&gt;
+ &lt;!-- This section should describe known bugs and limitations of
+      the program if there are any - please be frank and list all
+      problems you know of. --&gt;
+ &lt;sect1 id="bugs"&gt;
+  &lt;title&gt;Known Bugs and Limitations&lt;/title&gt;
+  &lt;para&gt;
+   This application has no known bugs.
+  &lt;/para&gt;
+ &lt;/sect1&gt;
+
+
+&lt;!-- ============= Authors ================================ --&gt;
+
+ &lt;sect1 id="authors"&gt;
+  &lt;title&gt;Authors&lt;/title&gt;
+  &lt;para&gt;
+   &lt;application&gt;MY-GNOME-APP&lt;/application&gt; was written by GNOME-HACKER
+   (&lt;email&gt;hacker at gnome.org&lt;/email&gt;). To find more information about
+   &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, please visit the &lt;ulink
+   url="http://www.my-gnome-app.org" type="http"&gt;MY-GNOME-APP Web
+   page&lt;/ulink&gt;.  Please send all comments, suggestions, and bug
+   reports to the &lt;ulink url="http://bugs.gnome.org" type="http"&gt;GNOME
+   bug tracking database&lt;/ulink&gt;. (Instructions for submitting bug
+   reports can be found &lt;ulink
+   url="http://bugs.gnome.org/Reporting.html" type="http"&gt;
+   on-line&lt;/ulink&gt;.)  You can also use &lt;application&gt;Bug Report
+   Tool&lt;/application&gt; (&lt;command&gt;bug-buddy&lt;/command&gt;), available in the
+   &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of &lt;guimenu&gt;Main
+   Menu&lt;/guimenu&gt;, for submitting bug reports.
+  &lt;/para&gt;
+
+  &lt;para&gt;
+   This manual was written by ME
+   (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all comments and
+   suggestions regarding this manual to the &lt;ulink type="http"
+   url="http://developer.gnome.org/projects/gdp"&gt;GNOME Documentation 
+   Project&lt;/ulink&gt; by sending an email to 
+   &lt;email&gt;docs at gnome.org&lt;/email&gt;. You can also add your comments online 
+   by using the &lt;ulink type="http" 
+   url="http://www.gnome.org/gdp/doctable/"&gt;GNOME Documentation Status
+   Table&lt;/ulink&gt;.
+  &lt;/para&gt;
+
+  &lt;!-- For translations: uncomment this:
+
+  &lt;para&gt;
+   Latin translation was done by ME
+   (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all  comments  and
+   suggestions regarding this translation to SOMEWHERE.
+  &lt;/para&gt;
+
+  --&gt;
+
+ &lt;/sect1&gt;
+
+
+ &lt;!-- ============= Application License ============================= --&gt;
+
+ &lt;sect1 id="license"&gt;
+  &lt;title&gt;License&lt;/title&gt;
+  &lt;para&gt;
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the &lt;citetitle&gt;GNU General Public
+   License&lt;/citetitle&gt; as published by the Free Software Foundation;
+   either version 2 of the License, or (at your option) any later
+   version.
+  &lt;/para&gt;
+  &lt;para&gt;
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; for more details.
+  &lt;/para&gt;
+  &lt;para&gt;
+   A copy of the &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; is
+   included as an appendix to the &lt;citetitle&gt;GNOME Users
+   Guide&lt;/citetitle&gt;.  You may also obtain a copy of the
+   &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; from the Free
+   Software Foundation by visiting &lt;ulink type="http"
+   url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to
+   &lt;address&gt;
+    Free Software Foundation, Inc.
+    &lt;street&gt;59 Temple Place&lt;/street&gt; - Suite 330
+    &lt;city&gt;Boston&lt;/city&gt;, &lt;state&gt;MA&lt;/state&gt; &lt;postcode&gt;02111-1307&lt;/postcode&gt;
+    &lt;country&gt;USA&lt;/country&gt;
+   &lt;/address&gt;
+  &lt;/para&gt;
+ &lt;/sect1&gt;
+&lt;/article&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+      </p></div><div class="sect1"><a name="template2-1x"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="template2-1x"/>Template 2: Applet Manual For GNOME 1.x</h2></div></div><p>
+        The following templates should be used for all applet
+        manuals in GNOME 1.x releases.  You can always get the latest
+        copy of these templates from  <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Documentation Templates</a>.  Note that the template
+        consists of two files; the first file calls the second as an
+        entity. You should name the first file
+        <tt><i><tt>appletname</tt></i>-applet.sgml</tt>
+        and the second file should be named
+        <tt><i><tt>appletname</tt></i>.sgml</tt>,
+        where
+        <tt><i><tt>appletname</tt></i></tt> is
+        the name of the applet.
+        <pre class="programlisting">
+
+
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+ &lt;!entity APPLETNAME.sgml SYSTEM "applet_template_1.sgml"&gt;
+        &lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+]&gt;
+
+&lt;!-- This is a GNOME documentation template, designed by the GNOME
+  Documentation Project Team. Please use it for writing GNOME
+  documentation, making obvious changes. In particular, all the words
+  written in UPPERCASE (with the exception of GNOME) should be
+  replaced. As for "legalnotice", please leave the reference
+  unchanged,make sure to add/remove trademarks to the list as
+  appropriate for your document.
+
+  Please don't forget to remove these comments in your final documentation,
+  thanks ;-).
+--&gt;
+
+&lt;article id="index"&gt; &lt;!-- please do not change the id --&gt;
+
+ &lt;!-- ============= Document Header ============================= --&gt;
+ &lt;artheader&gt; 
+  &lt;title&gt;APPLETNAME Applet&lt;/title&gt;
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;YOURFULLNAME&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+  &lt;!-- translators: uncomment this:
+
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;ME-THE-TRANSLATOR (Latin translation)&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+   --&gt;
+
+  &lt;!-- do not put authorname in the header except in copyright - use
+  section "authors" below --&gt;
+
+  &lt;legalnotice&gt;
+   &lt;para&gt;
+    Permission is granted to copy, distribute and/or modify this
+    document under the terms of the &lt;citetitle&gt;GNU Free Documentation
+    License&lt;/citetitle&gt;, Version 1.1 or any later version published
+    by the Free Software Foundation with no Invariant Sections, no
+    Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy
+    of the &lt;citetitle&gt;GNU Free Documentation License&lt;/citetitle&gt; from
+    the Free Software Foundation by visiting &lt;ulink type="http"
+    url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to:
+    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Many of the names used by companies to distinguish their products and
+    services are claimed as trademarks. Where those names appear in any
+    GNOME documentation, and those trademarks are made aware to the members
+    of the GNOME Documentation Project, the names have been printed in caps
+    or initial caps.
+   &lt;/para&gt;
+  &lt;/legalnotice&gt;
+
+  &lt;releaseinfo&gt;
+   This is version XXX of the APPLETNAME applet manual.
+  &lt;/releaseinfo&gt;
+ &lt;/artheader&gt;
+
+ &lt;!-- ============= Document Body ============================= --&gt;
+
+ &amp;APPLETNAME.sgml;
+
+&lt;/article&gt;
+
+
+
+
+
+</pre>
+        <pre class="programlisting">
+
+        &lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+
+ &lt;sect1 id="APPLET"&gt;
+  &lt;title&gt;APPLET Applet&lt;/title&gt;
+
+  &lt;para&gt;
+   &lt;application&gt;APPLET&lt;/application&gt; applet, shown in &lt;xref
+   linkend="APPLETapplet-fig"&gt;, allows you to &amp;hellip;.  To add this
+   applet to a &lt;interface&gt;Panel&lt;/interface&gt;, 
+   right-click on the &lt;interface&gt;Panel&lt;/interface&gt; and choose
+   &lt;menuchoice&gt;
+    &lt;guimenu&gt;Panel&lt;/guimenu&gt;
+    &lt;guisubmenu&gt;Add to panel&lt;/guisubmenu&gt;
+    &lt;guisubmenu&gt;Applet&lt;/guisubmenu&gt;
+    &lt;guisubmenu&gt;SECTION&lt;/guisubmenu&gt;
+    &lt;guimenuitem&gt;APPLET&lt;/guimenuitem&gt;
+   &lt;/menuchoice&gt;.
+  &lt;/para&gt;
+
+  &lt;figure id="APPLETapplet-fig"&gt;
+   &lt;title&gt;APPLET Applet&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;APPLET Applet&lt;/screeninfo&gt;
+    &lt;graphic format="png" fileref="APPLET_applet" 
+    srccredit="YOURNAME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+  &lt;/figure&gt;
+
+  &lt;!-- ============= Usage  ================================ --&gt;
+  &lt;sect2 id="APPLET-usage"&gt;
+   &lt;title&gt;Usage&lt;/title&gt;
+   &lt;para&gt;
+    (Place a short description of how to use the applet here.)
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    Right-clicking on the applet brings up a menu containing the
+    following items:
+    &lt;itemizedlist&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;Properties&amp;hellip;&lt;/guimenuitem&gt; &amp;mdash;
+       opens the &lt;link linkend="APPLET-prefs"&gt;
+       &lt;guilabel&gt;Properties&lt;/guilabel&gt;&lt;/link&gt; dialog.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;Help&lt;/guimenuitem&gt; &amp;mdash;
+       displays this document.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;About&amp;hellip;&lt;/guimenuitem&gt; &amp;mdash;
+       shows basic information about &lt;application&gt;APPLET
+       Applet&lt;/application&gt;, including the applet's version and the
+       author's name.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+    &lt;/itemizedlist&gt;
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Customization ============================= --&gt;
+  &lt;sect2 id="APPLET-prefs"&gt;
+    &lt;title&gt;Customization&lt;/title&gt;
+    &lt;para&gt;
+      You can customize &lt;application&gt;APPLET&lt;/application&gt;
+      applet by right-clicking on it and choosing
+      &lt;guimenuitem&gt;Properties&amp;hellip;&lt;/guimenuitem&gt;. This will open the
+      &lt;interface&gt;Properties&lt;/interface&gt; dialog(shown in &lt;xref
+      linkend="APPLET-settings-fig"&gt;), which allows you to
+      change various settings.
+    &lt;/para&gt;
+
+    &lt;figure id="APPLET-settings-fig"&gt;
+     &lt;title&gt;Properties dialog&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Properties dialog&lt;/screeninfo&gt;
+      &lt;graphic format="png" fileref="APPLET_settings"
+      srccredit="YOURNAME"&gt;
+      &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+
+    &lt;para&gt;
+     The properties are:
+     &lt;itemizedlist&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; If this button is
+        checked&amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; Selecting this
+        button&amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; Enter the name of
+        &amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt; 
+      After you have made all the changes you want, click on
+      &lt;guibutton&gt;OK&lt;/guibutton&gt; to apply the changes and close the
+      &lt;interface&gt;Properties&lt;/interface&gt; dialog. To cancel the changes
+      and return to previous values, click the
+      &lt;guibutton&gt;Close&lt;/guibutton&gt; button.
+    &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Bugs ================================== --&gt;
+  &lt;!-- This section should describe known bugs and limitations of
+       the program if there are any - please be frank and list all
+       problems you know of --&gt;
+  &lt;sect2 id="bugs"&gt;
+   &lt;title&gt;Known Bugs and Limitations&lt;/title&gt;
+   &lt;para&gt;
+    This applet has no known bugs.
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Authors ================================ --&gt;
+
+  &lt;sect2 id="authors"&gt;
+   &lt;title&gt;Authors&lt;/title&gt;
+   &lt;para&gt;
+    &lt;application&gt;APPLET&lt;/application&gt; was written by GNOME-HACKER
+    (&lt;email&gt;hacker at gnome.org&lt;/email&gt;).  Please send all comments,
+    suggestions, and bug 
+    reports to the &lt;ulink url="http://bugs.gnome.org" type="http"&gt;GNOME
+    bug tracking database&lt;/ulink&gt;. (Instructions for submitting bug
+    reports can be found &lt;ulink
+    url="http://bugs.gnome.org/Reporting.html" type="http"&gt;
+    on-line&lt;/ulink&gt;.  You can also use &lt;application&gt;Bug Report
+    Tool&lt;/application&gt; (&lt;command&gt;bug-buddy&lt;/command&gt;), available in the
+    &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of &lt;guimenu&gt;Main
+    Menu&lt;/guimenu&gt;, for submitting bug reports.
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    This manual was written by ME
+    (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all comments and
+    suggestions regarding this manual to the &lt;ulink type="http"
+    url="http://developer.gnome.org/projects/gdp"&gt;GNOME Documentation
+    Project&lt;/ulink&gt;  by sending an email to
+    &lt;email&gt;docs at gnome.org&lt;/email&gt;. You can also submit comments online
+    by using the &lt;ulink type="http"
+    url="http://www.gnome.org/gdp/doctable/"&gt;GNOME Documentation
+    Status Table&lt;/ulink&gt;.
+   &lt;/para&gt;
+
+   &lt;!-- For translations: uncomment this:
+
+   &lt;para&gt;
+    Latin translation was done by ME
+    (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all  comments  and
+    suggestions regarding this translation to SOMEWHERE.
+   &lt;/para&gt;
+
+   --&gt;
+
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Application License ============================= --&gt;
+
+  &lt;sect2 id="license"&gt;
+   &lt;title&gt;License&lt;/title&gt;
+   &lt;para&gt;
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the &lt;citetitle&gt;GNU General Public
+    License&lt;/citetitle&gt; as published by the Free Software Foundation;
+    either version 2 of the License, or (at your option) any later
+    version.
+   &lt;/para&gt;
+   &lt;para&gt;
+    This program is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; for more details.
+   &lt;/para&gt;
+   &lt;para&gt;
+    A copy of the &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; is
+    included as an appendix to the &lt;citetitle&gt;GNOME Users
+    Guide&lt;/citetitle&gt;.  You may also obtain a copy of the
+    &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; from the Free
+    Software Foundation by visiting &lt;ulink type="http"
+    url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to
+    &lt;address&gt;
+     Free Software Foundation, Inc.
+     &lt;street&gt;59 Temple Place&lt;/street&gt; - Suite 330
+     &lt;city&gt;Boston&lt;/city&gt;, &lt;state&gt;MA&lt;/state&gt; &lt;postcode&gt;02111-1307&lt;/postcode&gt;
+     &lt;country&gt;USA&lt;/country&gt;
+    &lt;/address&gt;
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+ &lt;/sect1&gt;
+
+
+
+
+
+
+
+
+</pre>
+      </p></div><div class="sect1"><a name="template2-2x"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="template2-2x"/>Template 2: Applet Manual For GNOME 2.x</h2></div></div><p>
+        The following templates should be used for all applet
+        manuals in GNOME 2.x releases.  You can always get the latest
+        copy of these templates from  <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Documentation Templates</a>.
+      </p><p>
+        Note that this template consists of two files.  The first file
+        is an introductory chapter. You should not modify this
+        chapter. The second file is the actual applet document, which
+        you should modify to describe the applet you are documenting.
+        You can name the first file whatever you like, such as
+        <tt>gnome-applets.sgml</tt>.  Name the second file
+        according to the applet's name:
+        <tt><i><tt>appletname</tt></i>-applet.sgml</tt>.
+        Make sure you update the entity
+        at the top of the shell document to reflect the new name of
+        the applet document.
+      </p><p>
+        <pre class="programlisting">
+
+&lt;!DOCTYPE book PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+&lt;!ENTITY TEMPLATE-APPLET SYSTEM "gnome-applet-template.sgml.part"&gt;
+
+]&gt;
+
+&lt;book id="gnome-applets"&gt;
+
+ &lt;bookinfo&gt;
+  &lt;title&gt;GNOME Applets&lt;/title&gt;
+  &lt;authorgroup&gt;
+   &lt;author&gt;&lt;firstname&gt;Telsa&lt;/firstname&gt;&lt;surname&gt;Gwynne&lt;/surname&gt;&lt;/author&gt;
+   &lt;author&gt;&lt;firstname&gt;John&lt;/firstname&gt;&lt;surname&gt;Fleck&lt;/surname&gt;&lt;/author&gt;
+   &lt;author&gt;&lt;firstname&gt;David&lt;/firstname&gt;&lt;surname&gt;Mason&lt;/surname&gt;
+      &lt;affiliation&gt;&lt;orgname&gt;Red Hat, Inc.&lt;/orgname&gt;&lt;/affiliation&gt;
+    &lt;/author&gt;
+    &lt;author&gt;&lt;firstname&gt;Dan&lt;/firstname&gt;&lt;surname&gt;Mueth&lt;/surname&gt;&lt;/author&gt;
+    &lt;author&gt;&lt;firstname&gt;Alexander&lt;/firstname&gt;&lt;surname&gt;Kirillov&lt;/surname&gt;&lt;/author&gt;
+  &lt;/authorgroup&gt;
+  &lt;edition&gt;GNOME Applets version 0.1 for GNOME 1.1.5&lt;/edition&gt;
+  &lt;pubdate&gt;2000&lt;/pubdate&gt;
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;Telsa Gwynne, John Fleck, Red Hat Inc., Dan Mueth, and
+    Alexander Kirillov&lt;/holder&gt; 
+  &lt;/copyright&gt;
+  &lt;legalnotice&gt;
+   &lt;para&gt;
+    Permission is granted to make and distribute verbatim copies of this
+    manual provided the copyright notice and this permission notice are
+    preserved on all copies.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Permission is granted to copy and distribute modified versions of
+    this manual under the conditions for verbatim copying, provided that
+    the entire resulting derived work is distributed under the terms of a
+    permission notice identical to this one.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Permission is granted to copy and distribute translations of this
+    manual into another language, under the above conditions for modified
+    versions, except that this permission notice may be stated in a
+    translation approved by the Free Software Foundation.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Many of the names used by companies to distinguish their products and
+    services are claimed as trademarks. Where those names appear in any
+    GNOME documentation, and those trademarks are made aware to the members
+    of the GNOME Documentation Project, the names have been printed in caps
+    or initial caps.
+   &lt;/para&gt;
+  &lt;/legalnotice&gt;
+ &lt;/bookinfo&gt;
+
+ &lt;!-- #### Introduction ###### --&gt;
+ &lt;chapter id="applets-intro"&gt;
+  &lt;title&gt;Introduction&lt;/title&gt; 
+
+  &lt;!-- #### Intro | What Are Applets? ###### --&gt;
+  &lt;sect1 id="applets-what-are"&gt;
+   &lt;title&gt;What Are Applets?&lt;/title&gt; 
+   &lt;para&gt;
+    Applets are one of the most popular and useful objects you can add
+    to your &lt;interface&gt;Panel&lt;/interface&gt; to customize your desktop.
+    An applet is a small application which runs inside a small area of
+    your &lt;interface&gt;Panel&lt;/interface&gt;. Applets have been written for
+    a wide range of purposes.  Some are very powerful interactive
+    tools, such as the &lt;application&gt;Tasklist&lt;/application&gt; Applet
+    which allows you to easily 
+    control all of your main applications.  Others are simple system
+    monitors, displaying information such as the amount of power left
+    in the battery on your laptop (see &lt;application&gt;Battery Charge
+    Monitor&lt;/application&gt;) or weather
+    information(see &lt;application&gt;GNOME Weather&lt;/application&gt;).  Some
+    are simply for amusement(see &lt;application&gt;Fish&lt;/application&gt;).
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    Applets are similar to swallowed applications in that both of them
+    reside within the &lt;interface&gt;Panel&lt;/interface&gt;. However, 
+    swallowed applications are generally applications which were
+    not designed to run within the &lt;interface&gt;Panel&lt;/interface&gt;.
+    Typically one will swallow an application which already exists in
+    the main &lt;interface&gt;desktop&lt;/interface&gt; area, putting it into your
+    &lt;interface&gt;Panel&lt;/interface&gt;.  The application will continue to
+    run in the &lt;interface&gt;Panel&lt;/interface&gt; until you end the
+    application or  unswallow it,  placing it back onto the main part of
+    your desktop when you need to.
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    &lt;figure id="example-applets-fig"&gt;
+     &lt;title&gt;Example Applets&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Example Applets&lt;/screeninfo&gt;
+       &lt;graphic fileref="example_applets" format="png"
+       srccredit="muet"&gt;
+       &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+    Several example applets are shown in &lt;xref
+    linkend="example-applets-fig"&gt;.  From left to right, they are: (1)
+    &lt;application&gt;Mixer Applet&lt;/application&gt;, which allows you to turn
+    on/off sound and control its volume by clicking on the applet.  (2)
+    &lt;application&gt;Sound Monitor&lt;/application&gt; Applet, which displays
+    the current volume of sound being played and allows you to control
+    various sound features.  (3) &lt;application&gt;GTCD&lt;/application&gt;
+    Applet, a CD player which has all its controls
+    available in the applet and displays the track and time. (4)
+    &lt;application&gt;Drive Mount&lt;/application&gt; Applet, used to mount and
+    unmount drives with a single click of the mouse. (5)
+    &lt;application&gt;Desk Guide&lt;/application&gt; which allows you to view
+    and control multiple virtual screens. (6)
+    &lt;application&gt;Tasklist&lt;/application&gt; Applet which allows you to
+    control your various windows and applications.
+   &lt;/para&gt;
+   &lt;para&gt;
+    There are many other applets to choose from.  The rest of this
+    chapter will explain the basic information to get you started
+    adding, moving, and removing applets from your
+    &lt;interface&gt;Panels&lt;/interface&gt; and using them. The following
+    chapters go through each of the standard GNOME applets describing
+    them in detail.  There are also additional applets which can be
+    downloaded off the Web.   See &lt;ulink type="http"
+     url="http://www.gnome.org/applist/list-martin.phtml"&gt;The GNOME
+    Software Map&lt;/ulink&gt; for lists of additional GNOME applications
+    and applets. 
+   &lt;/para&gt;
+   &lt;para&gt;
+    As you read through the the rest of this chapter, you should try
+    adding and removing applets from your &lt;interface&gt;Panel&lt;/interface&gt; and
+    experiment with them freely.  
+   &lt;/para&gt;
+  &lt;/sect1&gt;
+
+  &lt;!-- #### Intro | Adding, Moving, and Removing Applets ###### --&gt;
+  &lt;sect1 id="applet-add-move-replace"&gt;
+   &lt;title&gt;Adding, Moving, and Removing Applets&lt;/title&gt;
+
+   &lt;sect2 id="adding-applets"&gt;   
+    &lt;title&gt;Adding Applets to a Panel&lt;/title&gt;
+    &lt;para&gt;
+     To add an applet to a &lt;interface&gt;Panel&lt;/interface&gt;, right-click
+     on the &lt;interface&gt;Panel&lt;/interface&gt; and select 
+     &lt;menuchoice&gt;&lt;guimenu&gt;Panel&lt;/guimenu&gt;&lt;guisubmenu&gt;Add to panel&lt;/guisubmenu&gt;
+     &lt;guisubmenu&gt;Applet&lt;/guisubmenu&gt;&lt;/menuchoice&gt;. This will show you
+     the menu of all the applets on your system, divided into
+     categories. Choosing any applet from this menu will add it to the
+     &lt;interface&gt;Panel&lt;/interface&gt;.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="moving-applets"&gt;
+    &lt;title&gt;Moving Applets In or Between Panels&lt;/title&gt;
+    &lt;para&gt;
+     It is easy to move applets in a &lt;interface&gt;Panel&lt;/interface&gt; or
+     between two &lt;interface&gt;Panels&lt;/interface&gt;. If you have a
+     three-button mouse, just move the mouse over the applet, depress
+     the middle mouse button and drag the applet to its new location,
+     releasing the middle mouse button when you are finished.  Note
+     that you can drag applets within a &lt;interface&gt;Panel&lt;/interface&gt;
+     or between two &lt;interface&gt;Panels&lt;/interface&gt; this way. If you
+     don't have a three-button mouse, just 
+     right-click on the applet and choose
+     &lt;guimenuitem&gt;Move&lt;/guimenuitem&gt;. The cursor will turn into a
+     cross and the applet will move with your mouse until you press
+     any mouse button to indicate you are finished moving it.
+     If, in the course of this movement, it hits
+     other objects, the behavior depends on the global preferences
+     you have set for your &lt;interface&gt;Panels&lt;/interface&gt; in the
+     &lt;application&gt;GNOME Control Center&lt;/application&gt;: the applet you are
+     moving can switch places with other objects, "push" all objects
+     it meets, or "jump" over all other objects without disturbing
+     them. You can also override the default behavior by holding
+     &lt;keycap&gt;Shift&lt;/keycap&gt; button (for "push" mode),
+     &lt;keycap&gt;Ctrl&lt;/keycap&gt; (for "switched" mode), or
+     &lt;keycap&gt;Alt&lt;/keycap&gt; (for "free" mode, i.e. jumping other other
+     objects without disturbing them) button while dragging.
+    &lt;/para&gt;
+    &lt;para&gt;
+     To change the global Panel preferences, right-click on any applet
+     or &lt;interface&gt;Panel&lt;/interface&gt; and select 
+     &lt;menuchoice&gt;
+      &lt;guimenu&gt;Panel&lt;/guimenu&gt;
+      &lt;guimenuitem&gt;Global Preferences...&lt;/guimenuitem&gt;
+     &lt;/menuchoice&gt;.
+     The &lt;guilabel&gt;Default movement mode&lt;/guilabel&gt; is set under the
+     &lt;guilabel&gt;Applets&lt;/guilabel&gt; tab.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="removing-applets"&gt;
+    &lt;title&gt;Removing Applets from a Panel&lt;/title&gt; 
+    &lt;para&gt;  
+     To remove an applet from a &lt;interface&gt;Panel&lt;/interface&gt;,
+     right-click on the applet and select &lt;guimenuitem&gt;Remove from
+     panel...&lt;/guimenuitem&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+
+
+  &lt;!-- #### Intro | The Right-Click Pop-Up Menu ###### --&gt;
+  &lt;sect1 id="right-click-pop-up-menu"&gt;
+   &lt;title&gt;The Right-Click Pop-Up Menu&lt;/title&gt;
+   &lt;para&gt;
+    Clicking the right mouse button on any applet brings up
+    a &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt;. This 
+    menu always has certain standard menu items in it and
+    often has additional items which vary depending on the particular
+    applet. 
+   &lt;/para&gt;
+   &lt;sect2 id="standard-right-click-items"&gt; 
+    &lt;title&gt;Standard Pop-Up Items&lt;/title&gt;
+    &lt;para&gt;
+     All applets should have the following items in their right-click
+     &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt;:
+     &lt;variablelist&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;Remove from panel&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Remove from panel&lt;/guimenuitem&gt; menu item
+         removes the applet from the &lt;interface&gt;Panel&lt;/interface&gt;. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Move&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         After selecting &lt;guimenuitem&gt;Move&lt;/guimenuitem&gt;, your mouse
+         pointer will change appearance (typically to a cross with
+         arrows in each direction). As you move your mouse, the applet
+         will move with it.  When you have finished moving the applet,
+         click any mouse button and the applet will anchor in its
+         current position.  Note that applets can be moved between two
+         &lt;interface&gt;Panels&lt;/interface&gt; this way.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Panel&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guisubmenu&gt;Panel&lt;/guisubmenu&gt; submenu contains various
+         items and submenus for adding and removing
+         &lt;interface&gt;Panels&lt;/interface&gt; and applets and for changing
+         the configuration.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;About&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;About...&lt;/guimenuitem&gt; menu item brings up a 
+         dialogue box containing various information about the applet,
+         typically including the applet's  name, version, author,
+         copyright, license and desciption. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Help&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Help&lt;/guimenuitem&gt; menu item brings up the help
+         manual for the applet. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+     &lt;/variablelist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="applet-properties-dialog"&gt; 
+    &lt;title&gt;The Applet Properties Dialog&lt;/title&gt;
+    &lt;para&gt;
+     Many applets have customizable properties.  These applets will
+     have a &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; menu item in their
+     right-click &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt; which brings up the
+     &lt;interface&gt;Properties&lt;/interface&gt; dialog where you can alter the 
+     appearance or behaviour of the applet.
+     &lt;figure id="example-props-dialog-fig"&gt;
+      &lt;title&gt;An Example Applet Properties Dialog&lt;/title&gt;
+      &lt;screenshot&gt;
+       &lt;screeninfo&gt;An Example Applets Properties Dialog&lt;/screeninfo&gt;
+       &lt;graphic fileref="applet_props_dialog" format="png"
+        srccredit="muet"&gt;
+       &lt;/graphic&gt;
+      &lt;/screenshot&gt;
+     &lt;/figure&gt;
+     All &lt;interface&gt;Properties&lt;/interface&gt; dialogs have the following
+     buttons at the bottom of the dialog:
+     &lt;itemizedlist&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;OK&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;OK&lt;/guibutton&gt; will activate any changes
+        in the properties you have made and close the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Apply&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Apply&lt;/guibutton&gt; at any time will
+        make your changes active without closing the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.  This is helpful if
+        you would like to test the effects of the changes you have
+        made but may want to continue changing the properties.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Close&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Close&lt;/guibutton&gt; will close the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.  Only changes in the
+        configuration which were previously applied with the
+        &lt;guibutton&gt;Apply&lt;/guibutton&gt; button will persist.  Other
+        changes will not be made active.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Help&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Help&lt;/guibutton&gt; brings up the manual for
+        the application, opening it to the page describing the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+ 
+   &lt;sect2 id="common-right-click-items"&gt; 
+    &lt;title&gt;Other Common Pop-Up Items&lt;/title&gt;
+    &lt;para&gt;
+     Many applets also have one or more of the following items in their
+     right-click pop-up menu:
+     &lt;variablelist&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;Run...&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Run...&lt;/guimenuitem&gt; menu item generally
+         invokes a program  which is related to the applet in some way
+         but which runs in its own window rather than in the
+         panel. For example: 
+        &lt;/para&gt;
+        &lt;orderedlist&gt;
+         &lt;listitem&gt;
+          &lt;para&gt;
+           The &lt;application&gt;CPU Load&lt;/application&gt; applet, which monitors
+           what programs are running, has a &lt;guimenuitem&gt;Run
+           gtop...&lt;/guimenuitem&gt;  menu item. Selecting this menu item
+           starts &lt;application&gt;GTop&lt;/application&gt;, which allows you to
+           view and control programs which are running.
+          &lt;/para&gt;
+         &lt;/listitem&gt;
+         &lt;listitem&gt;
+          &lt;para&gt;
+           The &lt;application&gt;CD Player&lt;/application&gt; applet has a
+           &lt;guimenuitem&gt;Run gtcd...&lt;/guimenuitem&gt; menu item which
+           starts the GNOME &lt;application&gt;CD Player&lt;/application&gt; when
+           selected, which has more capabilities than the applet.
+          &lt;/para&gt;
+         &lt;/listitem&gt;
+        &lt;/orderedlist&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+     &lt;/variablelist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+  
+  &lt;sect1 id="feedback"&gt;
+   &lt;title&gt;Feedback&lt;/title&gt;
+   &lt;sect2 id="reporting-bugs"&gt; 
+    &lt;title&gt;Reporting Applet Bugs&lt;/title&gt;
+    &lt;para&gt;
+     GNOME users are encouraged to report bugs to &lt;ulink type="http"
+     url="http://bugs.gnome.org"&gt;The GNOME Bug Tracking
+     System&lt;/ulink&gt;.  The easiest way to submit bugs is to use the
+     &lt;application&gt;Bug Report Tool&lt;/application&gt; program by selecting
+     &lt;menuchoice&gt;
+      &lt;guimenu&gt;Main Menu&lt;/guimenu&gt; &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt;
+      &lt;guimenuitem&gt;Bug Report Tool&lt;/guimenuitem&gt; 
+     &lt;/menuchoice&gt;.
+     Be sure to be complete in describing what you did to cause the
+     bug to surface and, if possible, describe how the developer can
+     reproduce the the scenario.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+   &lt;sect2 id="documentation-feedback"&gt; 
+    &lt;title&gt;Providing Feedback&lt;/title&gt;
+    &lt;para&gt;
+     GNOME users are welcome to provide suggestions for how
+     applications and documentation can be improved.  Suggestions for
+     application changes should be submitted using the
+     &lt;application&gt;Bug Report Tool&lt;/application&gt; discussed above.
+     Suggestions for documentation changes can be emailed directly to
+     the documentation author (whose email should be included in the
+     "Authors" section of the document) or by sending an email to
+     &lt;email&gt;docs at gnome.org&lt;/email&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+   &lt;sect2 id="joining-gnome"&gt;  
+    &lt;title&gt;Joining GNOME&lt;/title&gt;
+    &lt;para&gt;
+     GNOME is a community project, created by hundreds of programmers,
+     documentation writers, icon design artists, web masters, and
+     other people, most of whom work on a volunteer basis.  New GNOME
+     contributors are always welcome. To join the GNOME team, visit
+     these web sites: developers &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org"&gt;The GNOME Development
+     Site&lt;/ulink&gt;, documentation writers &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org/projects/gdp"&gt;The GNOME Documentation
+     Project&lt;/ulink&gt;, icon design artists &amp;mdash; &lt;ulink type="http"
+     url="http://gnome-icons.sourceforge.net/"&gt;Gnome Icon Web&lt;/ulink&gt;,
+     general &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org/helping/"&gt;Helping GNOME&lt;/ulink&gt;,
+     or just join the gnome-list email list (see &lt;ulink type="http"
+     url="http://www.gnome.org/resources/mailing-lists.html"&gt;GNOME Mailing
+     Lists&lt;/ulink&gt;) to discuss what you are interested in doing.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+ &lt;/chapter&gt;
+
+ &lt;!-- ############### Template Applets ##################### --&gt;
+ &lt;chapter id="template-applets"&gt;
+  &lt;title&gt;Template Applets&lt;/title&gt;
+
+  &amp;TEMPLATE-APPLET
+
+ &lt;/chapter&gt;
+
+&lt;/book&gt;
+
+
+
+
+
+
+
+
+	</pre>
+	
+        <pre class="programlisting">
+
+
+  &lt;!-- Please replace everywhere below GNOMEAPPLET with the name of --&gt;
+  &lt;!-- your applet. Most importantly, all id attributes should start --&gt;
+  &lt;!-- with the name of your applet - this is necessary to avoid name --&gt;
+  &lt;!-- conflict among different applets --&gt; 
+  &lt;!-- Please replace YOUR-NAME with your name and YOUR-EMAIL with your email--&gt;
+  &lt;!-- Please replace HACKER-NAME with the applet author's name and --&gt;
+  &lt;!-- HACKER-EMAIL with the applet author's email --&gt;
+
+  &lt;!-- You should name your file: GNOMEAPPLET-applet.sgml --&gt;
+  &lt;!-- Screenshots should be in PNG format and placed in the --&gt;
+  &lt;!-- same directory as GNOMEAPPLET-applet.sgml --&gt;
+
+  &lt;!-- Applet docs will be merged into &lt;chapter&gt;'s inside a --&gt;
+  &lt;!-- &lt;book&gt;. Thus, the indentation below (2 spaces before the &lt;sect1&gt;) is --&gt;
+  &lt;!-- correct.--&gt;
+
+  &lt;!-- Permission is granted to make and distribute verbatim copies of --&gt;
+  &lt;!-- this manual provided the copyright notice and this permission --&gt;
+  &lt;!-- notice are  preserved on all copies. --&gt;
+  &lt;!-- --&gt;
+  &lt;!-- Permission is granted to copy and distribute modified versions of --&gt;
+  &lt;!-- this manual under the conditions for verbatim copying, provided --&gt;
+  &lt;!-- that the entire resulting derived work is distributed under the --&gt;
+  &lt;!-- terms of a permission notice identical to this one. --&gt;
+  &lt;!-- --&gt;
+  &lt;!-- Permission is granted to copy and distribute translations of this --&gt;
+  &lt;!-- manual into another language, under the above conditions for --&gt;
+  &lt;!-- modified versions, except that this permission notice may be --&gt;
+  &lt;!-- stated in a translation approved by the Foundation. --&gt;
+
+  &lt;!-- ###############   GNOMEAPPLET   ############### --&gt;
+  &lt;sect1 id="GNOMEAPPLET"&gt;
+   &lt;title&gt;GNOMEAPPLET Applet&lt;/title&gt; 
+
+   &lt;para&gt; 
+    &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet, shown in &lt;xref
+    linkend="GNOMEAPPLET-fig"&gt;, does this and that. To learn how to
+    add this applet to a &lt;interface&gt;Panel&lt;/interface&gt;, see &lt;xref
+    linkend="adding-applets"&gt;. 
+   &lt;/para&gt;
+  
+ 
+   &lt;figure id="GNOMEAPPLET-fig"&gt;
+   &lt;title&gt;GNOMEAPPLET&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;GNOMEAPPLET&lt;/screeninfo&gt;
+    &lt;graphic format="png" fileref="GNOMEAPPLET-fig" srccredit="ME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+   &lt;/figure&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-usage"&gt;
+    &lt;title&gt;Usage&lt;/title&gt;
+    &lt;para&gt;
+     This applet does nothing. To use it, just
+     left-click on it and it will instantly do nothing.   
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-right-click"&gt;
+    &lt;title&gt;Right-Click Pop-Up Menu Items&lt;/title&gt;
+    &lt;para&gt; 
+     In addition to the standard menu items (see &lt;xref
+     linkend="standard-right-click-items"&gt;), the right-click pop-up menu has 
+     the following items: 
+     &lt;itemizedlist&gt; 	
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; &amp;mdash; This menu
+        item opens the &lt;interface&gt;Properties&lt;/interface&gt; dialog (see
+        &lt;xref linkend="GNOMEAPPLET-properties"&gt;) which allows you to
+        customize the appearance and behavior of this applet.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guimenuitem&gt;Run Hello World...&lt;/guimenuitem&gt; &amp;mdash; This
+        menu item starts the program &lt;application&gt;Hello
+        World&lt;/application&gt;, used to say "hello" to the world. 
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-properties"&gt;
+    &lt;title&gt;Properties&lt;/title&gt;
+    &lt;para&gt;
+     You can configure &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet by
+     right-clicking on the applet and choosing the
+     &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; menu item. This will open the
+     &lt;interface&gt;Properties&lt;/interface&gt; dialog, shown in &lt;xref
+     linkend="GNOMEAPPLET-properties-fig"&gt;.
+    &lt;/para&gt;
+    &lt;figure id="GNOMEAPPLET-properties-fig"&gt;
+     &lt;title&gt;Properties Dialog&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Properties Dialog&lt;/screeninfo&gt; 
+      &lt;graphic format="png" fileref="GNOMEAPPLET-properties" srccredit="ME"&gt;
+      &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+    
+    &lt;para&gt; 
+     To change the color of the applet, click on the
+     &lt;guibutton&gt;color&lt;/guibutton&gt; button. To change other properties,
+     click on other buttons. 
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For more information on the &lt;interface&gt;Properties&lt;/interface&gt;
+     dialog, including descriptions of the &lt;guibutton&gt;OK&lt;/guibutton&gt;,
+     &lt;guibutton&gt;Apply&lt;/guibutton&gt;, &lt;guibutton&gt;Cancel&lt;/guibutton&gt;, and
+     &lt;guibutton&gt;Help&lt;/guibutton&gt; buttons, see &lt;xref
+     linkend="applet-properties-dialog"&gt;.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  
+   &lt;sect2 id="GNOMEAPPLET-bugs"&gt;
+    &lt;title&gt; Known Bugs and Limitations&lt;/title&gt;
+    &lt;para&gt;
+     There are no known bugs in the
+     &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-authors"&gt;
+    &lt;title&gt;Authors&lt;/title&gt;
+    &lt;para&gt;
+     This applet was writen by HACKER-NAME
+     &lt;email&gt;HACKER-EMAIL&lt;/email&gt;.  The documentation for this applet
+     which you are reading now was written by
+     YOUR-NAME &lt;email&gt;YOUR-EMAIL&lt;/email&gt;. For information on submitting
+     bug reports and suggestions for improvements, see &lt;xref
+     linkend="feedback"&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+  &lt;/sect1&gt;
+
+
+
+
+
+
+
+
+</pre>
+      </p></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/graphics.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/graphics.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/graphics.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Graphics Test Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2909994"/>Graphics Test Document Title</h2></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2784443">Graphic</a></dt><dt> <a href="#id2790120">Inlinegraphic</a></dt><dt> <a href="#id2790045">MediaObject</a></dt></dl></div><div class="section"><a name="id2784443"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2784443"/>Graphic</h2></div></div><p>fileref:</p><p><img src="emc2.png"/></p><p>entityref:</p><p><img src="test/emc2.png"/></p><p>fileref, scale=200:</p><p><img src="emc2.png" width="200%"/></p><p>fileref, width=20, depth=20</p><p><img src="emc2.png" height="20" width="20"/></p></div><div class="section"><a name="id2790120"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790120"/>Inlinegraphic</h2></div></div><p>fileref: <img src="emc2.png"/></p><p>entityref: <img src="test/emc2.png"/></p><p>fileref, scale=200: <img src="emc2.png" width="200%"/></p></div><div class="section"><a name="id2790045"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790045"/>MediaObject</h2></div></div><p>fileref:</p><div class="mediaobject"><img src="emc2.png"/></div><p>entityref:</p><div class="mediaobject"><img src="test/emc2.png"/></div><p>fileref, scale=20:</p><div class="mediaobject"><img src="emc2.png" width="20%"/></div><p>fileref, width=200, depth=400:</p><div class="mediaobject"><img src="emc2.png" height="400" width="200"/></div><p>fileref, width=20, depth=20, alt=Alt text:</p><div class="mediaobject"><img src="emc2.png" height="20" width="20" alt="Alt text"/></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/gtest.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/gtest.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/gtest.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Chapter 1. Graphics Test</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2874294"/>Chapter 1. Graphics Test</h2></div></div><p>A graphic by fileref:</p><div class="mediaobject"><img src="emc2.gif"/></div><p>A graphic by entityref:</p><div class="mediaobject"><img src="test/emc2.gif"/></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/idxbook.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/idxbook.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/idxbook.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Book Test Index Document Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2602136"><div class="titlepage"><div><h1 class="title"><a name="id2602136"/>Bookinfo Test Index Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2790105">Foreword</a></dt><dt>1 <a href="#chapter">First Chapter</a></dt><dd><dl><dt> <a href="#id2793751">First Sect1</a></dt></dl></dd><dt>2 <a href="#ch2">Second Chapter</a></dt><dt>A <a href="#id2790421">First Appendix</a></dt><dt><a href="#id2794864">Index</a></dt></dl></div><div id="id2790105" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2790105"/>Foreword</h2></div></div><p>This is a test paragraph<a class="indexterm" name="id2790123"/>.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"/>Chapter 1. First Chapter</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2793751">First Sect1</a></dt></dl></div><p>Paragraph<a class="indexterm" name="id2793728"/>.</p><div class="sect1"><a name="id2793751"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2793751"/>First Sect1</h2></div></div><p>Another paragraph<a class="indexterm" name="id2793769"/>.</p></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ch2"/>Chapter 2. Second Chapter</h2></div></div><p>This is a test paragraph.
+<a class="indexterm" name="id2793836"/>
+<a class="indexterm" name="id2793867"/>
+<a class="indexterm" name="id2790155"/>
+
+<a class="indexterm" name="id2793847"/>
+<a class="indexterm" name="id2790206"/>
+
+<a class="indexterm" name="id2790230"/>
+
+<a class="indexterm" name="id2790270"/>
+<a class="indexterm" name="id2790294"/>
+
+<a class="indexterm" name="id2790333"/>
+<a class="indexterm" name="id2790365"/>
+<a class="indexterm" name="id2790396"/></p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2790421"/>Appendix A. First Appendix</h2></div></div><p>This is just a test.
+<a class="indexterm" name="id2790438"/>
+<a class="indexterm" name="id2790462"/>
+
+<a class="indexterm" name="id2790486"/>
+<a class="indexterm" name="id2790518"/>
+
+<a class="indexterm" name="id2790368"/>
+<a class="indexterm" name="id2794670"/>
+
+<a class="indexterm" name="id2794694"/>
+<a class="indexterm" name="id2794726"/>
+<a class="indexterm" name="id2794758"/>
+
+<a class="indexterm" name="id2794782"/>
+<a class="indexterm" name="id2794806"/>
+<a class="indexterm" name="id2794829"/>
+</p></div><div id="id2794864" class="index"><div class="titlepage"><div><h2 class="title"><a name="id2794864"/>Index</h2></div></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/kwrite.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/kwrite.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/kwrite.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,422 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>the kwrite handbook</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/><meta name="keywords" content="kde, kwrite, text, editor"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2602135"><div class="titlepage"><div><h1 class="title"><a name="id2602135"/>the kwrite handbook</h1></div><div><h3 class="author">thad mcginnis</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:ctmcginnis at compuserve.com">ctmcginnis at compuserve.com</a>&gt;</tt></div></div><h3 class="othercredit">jochen wilhelmy</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:digisnap at cs.tu-berlin.de">digisnap at cs.tu-berlin.de</a>&gt;</tt></div></div><h3 class="othercredit">glen parker</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:glenebob at nwlink.com">glenebob at nwlink.com</a>&gt;</tt></div></div><h3 class="othercredit">michael koch</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:koch at kde.org">koch at kde.org</a>&gt;</tt></div></div><h3 class="othercredit">christian tibirna</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:tibirna at kde.org">tibirna at kde.org</a>&gt;</tt></div></div><h3 class="othercredit">lauri watts</h3><div class="affiliation"><div class="address"><tt>&lt;<a href="mailto:vampyr at atconnex.net">vampyr at atconnex.net</a>&gt;</tt></div></div></div><div><p class="releaseinfo">2.00.00</p></div><div><p class="copyright">Copyright © 2000, 2001 thad mcginnis</p></div><div><div class="legalnotice"><p>permission is granted to copy, distribute and/or modify this
+document under the terms of the gnu free documentation license,
+version 1.1 or any later version published by the free software
+foundation; with no invariant sections, with no front-cover texts, and
+with no back-cover texts.  a copy of the license is included in <a href="#gnu-fdl">the section entitled gnu free documentation license</a>.</p></div></div><div><div class="abstract"><p><a name="id2790276"/><b>Abstract</b></p><p>this handbook describes kwrite version 2.0</p><p>kwrite is a text editor for kde 2.0</p></div></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#introduction">introduction</a></dt><dt>2 <a href="#on-screen-fundamentals">some fundamentals</a></dt><dd><dl><dt> <a href="#drag-and-drop">drag and drop</a></dt><dt> <a href="#command-line-options">command line options</a></dt><dd><dl><dt> <a href="#specify-a-file">specify a file</a></dt><dt> <a href="#editing-files-on-the-internet">specify a file on the internet</a></dt><dt> <a href="#other-command-line-options">other command line options</a></dt></dl></dd><dt> <a href="#keybindings">key bindings</a></dt></dl></dd><dt>3 <a href="#the-menu-entries">the menu entries</a></dt><dd><dl><dt> <a href="#file">the file menu</a></dt><dt> <a href="#edit">the edit menu</a></dt><dt> <a href="#go">the go menu</a></dt><dt> <a href="#tools">the tools menu</a></dt><dt> <a href="#settings">the settings menu</a></dt><dt> <a href="#help">the help menu</a></dt></dl></dd><dt>4 <a href="#pref-dialog">configure kwrite</a></dt><dd><dl><dt> <a href="#prefcolors">colors</a></dt><dt> <a href="#pref-indent">indent</a></dt><dt> <a href="#pref-select">select</a></dt><dt> <a href="#pref-edit">edit</a></dt><dt> <a href="#prefspellchecker">spelling</a></dt></dl></dd><dt>5 <a href="#pref-highlighting">highlighting</a></dt><dt>6 <a href="#credits">credits and licenses</a></dt><dt>A <a href="#installation">installation</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="introduction"/>Chapter 1. introduction</h2></div></div><p>kwrite is more than a text editor for the kde desktop. it is meant
+to be a programmer's editor, and could be considered as at least a partial
+alternative to more powerful editors.  it may be best used in conjunction
+with konqueror for source file browsing for
+different languages. kwrite also works very well as a simple text editor.
+one of kwrite's main features is the colorized syntax, customized for
+many different programming languages such as: c/c++, java&#8482;, python, perl,
+bash, modula 2, html, and ada.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="on-screen-fundamentals"/>Chapter 2. some fundamentals</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#drag-and-drop">drag and drop</a></dt><dt> <a href="#command-line-options">command line options</a></dt><dd><dl><dt> <a href="#specify-a-file">specify a file</a></dt><dt> <a href="#editing-files-on-the-internet">specify a file on the internet</a></dt><dt> <a href="#other-command-line-options">other command line options</a></dt></dl></dd><dt> <a href="#keybindings">key bindings</a></dt></dl></div><p>kwrite is very simple to use. anyone that has used a text editor should
+have no problems. </p><div class="sect1"><a name="drag-and-drop"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="drag-and-drop"/>drag and drop</h2></div></div><p>kwrite uses the kde drag and drop protocol. files may be dragged  
+and dropped onto kwrite from the desktop,  
+konqueror or some remote ftp site opened in one  
+of konqueror's windows. </p></div><div class="sect1"><a name="command-line-options"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="command-line-options"/>command line options</h2></div></div><p>though kwrite may most often be started from the kde program menu,  
+or a desktop icon, it can also be opened at the command line prompt of a  
+terminal window.  there are a few useful options that are available when  
+doing this.</p><div class="sect2"><a name="specify-a-file"/><div class="titlepage"><div><h3 class="title"><a name="specify-a-file"/>specify a file</h3></div></div><p>by specifying the path and name of a particular file the user can  
+have kwrite open (or create) that file immediately upon startup.  this
+option might look something like the following:</p><div class="informalexample" id="id2882027"><a name="id2882027"/><pre class="screen"><tt>%</tt> <b><tt><b>kwrite</b> <tt><i><tt>/home/myhome/docs/myfile.txt</tt></i></tt></tt></b></pre></div></div><div class="sect2"><a name="editing-files-on-the-internet"/><div class="titlepage"><div><h3 class="title"><a name="editing-files-on-the-internet"/>specify a file on the internet</h3></div></div><p>the above-mentioned method could even be used to open files on the
+internet (if the user has an active connection at the time.)  an example of
+this might look like the following:</p><div class="informalexample" id="id2882143"><a name="id2882143"/><pre class="screen"><tt>%</tt> <b><tt><b>kwrite</b> <tt><i><tt>ftp://ftp.kde.org/pub/kde/welcome.msg</tt></i></tt></tt></b></pre></div></div><div class="sect2"><a name="other-command-line-options"/><div class="titlepage"><div><h3 class="title"><a name="other-command-line-options"/>other command line options</h3></div></div><p>the following command line help options are available</p><div class="variablelist"><dl><dt><a name="id2882262"/><span class="term"><b><tt><b>kwrite</b> <tt>--help</tt></tt></b></span></dt><dd><p><a name="id2882305"/>this lists the most basic options available at the command  
+line.</p></dd><dt><a name="id2882321"/><span class="term"><b><tt><b>kwrite</b> <tt>--help-qt</tt></tt></b></span></dt><dd><p><a name="id2882364"/>this lists the options available for changing the way  
+kwrite interacts with qt&#8482;.</p></dd><dt><a name="id2882413"/><span class="term"><b><tt><b>kwrite</b> <tt>--help-kde</tt></tt></b></span></dt><dd><p><a name="id2882286"/>this lists the options available for changing the way  
+kwrite interacts with kde.</p></dd><dt><a name="id2882218"/><span class="term"><b><tt><b>kwrite</b> <tt>--help-all</tt></tt></b></span></dt><dd><p><a name="id2787374"/>this lists all of the command line options.</p></dd><dt><a name="id2787392"/><span class="term"><b><tt><b>kwrite</b> <tt>--author</tt></tt></b></span></dt><dd><p><a name="id2787434"/>lists kwrite's authors in the terminal window</p></dd><dt><a name="id2787468"/><span class="term"><b><tt><b>kwrite</b> <tt>--version</tt></tt></b></span></dt><dd><p><a name="id2787510"/>lists version information for qt&#8482;, kde, and kwrite. also available through <b><tt><b>kwrite</b> <tt>-v</tt></tt></b> </p></dd></dl></div></div></div><div class="sect1"><a name="keybindings"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="keybindings"/>key bindings</h2></div></div><p>many of the key bindings (shortcuts) are configurable by way of the <a href="#settings" title="the settings menu">settings</a> menu.  by default kwrite honors the  
+following key bindings.</p><div class="informaltable" id="id2787673"><a name="id2787673"/><table border="1"><colgroup><col/><col/></colgroup><tbody><tr><td><p>insert</p></td><td><p> toggle between insert and overwrite mode. when in insert mode the
+editor will add any typed characters to the text while pushing along any data to
+the right of the text cursor. overwrite mode causes the entry of each character
+to eliminate the character immediately to the right of the text
+cursor.</p></td></tr><tr><td><p>left arrow</p></td><td><p>move the cursor one character to the left </p></td></tr><tr><td><p>right arrow</p></td><td><p> move the cursor one character to the right </p></td></tr><tr><td><p>up arrow</p></td><td><p> move the cursor up one line  </p></td></tr><tr><td><p>down arrow</p></td><td><p> move the cursor down one line </p></td></tr><tr><td><p>page up</p></td><td><p> move the cursor up one page  </p></td></tr><tr><td><p>page down</p></td><td><p>move the cursor down one page  </p></td></tr><tr><td><p>backspace</p></td><td><p> delete the character to the left of the cursor </p></td></tr><tr><td><p>home</p></td><td><p> move the cursor to the beginning of the line </p></td></tr><tr><td><p>end</p></td><td><p> move the cursor to the end of the line </p></td></tr><tr><td><p>delete</p></td><td><p>delete the character to the right of the cursor (or any selected  
+text)</p></td></tr><tr><td><p>shift-left arrow</p></td><td><p> mark text one character to the left </p></td></tr><tr><td><p>shift-right arrow</p></td><td><p> mark text one character to the right </p></td></tr><tr><td><p>f1</p></td><td><p> help</p></td></tr><tr><td><p>shift-f1</p></td><td><p><a href="#whats-this">what's this?</a></p></td></tr><tr><td><p>ctrl-f</p></td><td><p><a href="#find"> find</a></p></td></tr><tr><td><p>f3</p></td><td><p><a href="#find-again"> find again</a></p></td></tr><tr><td><p>ctrl-c</p></td><td><p> copy the marked text to the clipboard. </p></td></tr><tr><td><p>ctrl-m</p></td><td><p>set a bookmark</p></td></tr><tr><td><p>ctrl-n</p></td><td><p> <a href="#new">new</a> document</p></td></tr><tr><td><p>ctrl-p</p></td><td><p><a href="#print">print</a> </p></td></tr><tr><td><p>ctrl-q</p></td><td><p>quit - close active copy of editor </p></td></tr><tr><td><p>ctrl-r</p></td><td><p><a href="#replace"> replace</a></p></td></tr><tr><td><p>ctrl-s</p></td><td><p>invokes the <a href="#save">save</a> command.</p></td></tr><tr><td><p>ctrl-v</p></td><td><p> paste the clipboard text into line edit. </p></td></tr><tr><td><p>ctrl-x</p></td><td><p>delete the marked text and copy it to the clipboard. </p></td></tr><tr><td><p>ctrl-z</p></td><td><p><a href="#undo">undo</a></p></td></tr><tr><td><p>ctrl-shift-z</p></td><td><p><a href="#redo">redo</a></p></td></tr></tbody></table></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="the-menu-entries"/>Chapter 3. the menu entries</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#file">the file menu</a></dt><dt> <a href="#edit">the edit menu</a></dt><dt> <a href="#go">the go menu</a></dt><dt> <a href="#tools">the tools menu</a></dt><dt> <a href="#settings">the settings menu</a></dt><dt> <a href="#help">the help menu</a></dt></dl></div><div class="sect1"><a name="file"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="file"/>the file menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2911116"/><span class="term"><a name="new"/>file-&gt;new (<b>ctrl-n</b>)</span></dt><dd><p><a name="id2911237"/>this starts a new document in the editor. if there is a current  
+document with unsaved changes the user is given a chance to save it.</p></dd><dt><a name="id2911257"/><span class="term"><a name="open"/>file-&gt;0pen (<b>ctrl-o</b>)</span></dt><dd><p><a name="id2911379"/>this command opens a file.  it does this by means of a dialog box  
+which allows the user to navigate the file system.  the dialog operates  
+like a small file manager. clicking on directories displayed in the
+central window directs the dialog to enter that directory - displaying its  
+contents.  there is an entry/dropdown box which can be used to type in  
+directly the location and name of the file or by clicking the arrow at the  
+side choose from a dropdown list of recently used locations. below this is  
+a filter which similarly may have data entered directly or chosen from a  
+dropdown list of recent filter types.  the filter facility lets only files  
+that meet its specifications be displayed in the central window. if the  
+filter contained text such as <tt>*.txt</tt> then only files  
+with the txt extension would be visible in the selection window. below the filter
+is a status bar giving information about the number of files and subdirectories
+within the current directory.</p><p>the  toolbar, which is located at the top of the dialog, has left and right
+arrow buttons that let the user move back and forth through previously selected
+directories as well as an up arrow button for moving up the directory tree. the
+button with the little house takes the user to his or her home directory and the one
+with the two arrows curved in on each other updates the view of the current
+directory. the flag button lets the user set a new bookmark at the current directory
+or go to  one that was previously set. 
+ the last button on the toolbar allows you to create a new
+directory, and finally  there is dropdown box with a list of some commonly
+frequented directories.</p></dd><dt><a name="id2911454"/><span class="term"><a name="open-recent"/>file-&gt;open  
+recent</span></dt><dd><p><a name="id2911526"/>this is a shortcut to open recently saved documents. clicking on
+this item opens a list to the side of the menu with several of the most recently
+saved files. clicking on a specific file will open it in kwrite - if the file
+still resides at the same location. </p></dd><dt><a name="id2911561"/><span class="term"><a name="save"/>file-&gt;save (<b>ctrl-s</b>)</span></dt><dd><p><a name="id2911683"/>this saves the current document.  if there has already been a
+save of the document then this will overwrite the previously saved file without
+asking for the user's consent.  if it is the first save of a new document the
+save as dialog (described below) will be invoked.</p></dd><dt><a name="id2911706"/><span class="term"><a name="save-as"/>file-&gt;save
+as</span></dt><dd><p><a name="id2911778"/>this allows a document to be saved with a new file name. this is
+done by means of the file dialog box described above in the <a href="#open">open</a> section of this help file.</p></dd><dt><a name="id2911818"/><span class="term"><a name="print"/>file-&gt;print (<b>ctrl-p</b>)</span></dt><dd><p><a name="id2911940"/>opens a simple print dialog allowing the user to specify what, where, and how to print</p></dd><dt><a name="id2911959"/><span class="term"><a name="new-window"/>file-&gt;new window</span></dt><dd><p><a name="id2912031"/>this creates a new window, i.e. a new instance of kwrite. in this way the user can easily work  
+on more than one file at a time with kwrite.</p></dd><dt><a name="id2912085"/><span class="term"><a name="new-view"/>file-&gt;new view</span></dt><dd><p><a name="id2912157"/>this creates a new view of the current document, i.e., a new instance of
+kwrite (as explained in the previous entry) but containing the same
+document.</p></dd><dt><a name="id2912198"/><span class="term"><a name="close"/>file-&gt;quit (<b>ctrl-q</b>)</span></dt><dd><p><a name="id2912320"/>this will close the editor window, if you have more than one
+instance of kwrite running, through the new view or
+new window menu items, those instances will not be
+closed.</p></dd></dl></div></div><div class="sect1"><a name="edit"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="edit"/>the edit menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2912425"/><span class="term"><a name="undo"/>edit-&gt;undo (<b>ctrl-z</b>)</span></dt><dd><p><a name="id2912547"/>this is used to eliminate or reverse the most recent user action or operation. just what  
+constitutes such an action may be better understood by referring to the <a href="#group-undos">group undos</a> portion of this help file.</p></dd><dt><a name="id2912588"/><span class="term"><a name="redo"/>edit-&gt;redo (<b>ctrl-shift-z</b>)</span></dt><dd><p><a name="id2912726"/>this will reverse the most recent change (if any) made using undo</p></dd><dt><a name="id2912744"/><span class="term"><a name="undohistory"/>edit-&gt;undo/redo history</span></dt><dd><p><a name="id2912816"/>this will call a display box showing a list of the most recent actions on  
+the left and another list of actions which have been 'undone' on the right.  
+there are also three buttons at the right of the box labeled  
+undo, redo, and  
+close.  clicking on the undo  
+button will cause the action at the top of the undo list to be reversed which  
+will place that particular action at the top of the redo list. likewise,  
+clicking on the redo button will reinstate the reversed  
+action and move it back to the top of the undo list.  clicking on an item below  
+the top item in either list will select all the items from the top down to that  
+point.  a subsequent click on the corresponding button will cause all the  
+selected actions to be undone or redone accordingly.  this would be particularly  
+useful when the user knows precisely the point to which she or he would like to  
+proceed - making it unnecessary to go through a series of single undo or redo  
+actions.</p></dd><dt><a name="id2912927"/><span class="term"><a name="cut"/>edit-&gt;cut (<b>ctrl-x</b>)</span></dt><dd><p><a name="id2913050"/>this command deletes the current selection and places it on the clipboard.  the  
+clipboard is a feature of kde that works invisibly to provide a way to transfer data between  
+applications.</p></dd><dt><a name="id2913072"/><span class="term"><a name="copy"/>edit-&gt;copy (<b>ctrl-c</b>)</span></dt><dd><p><a name="id2913194"/>this copies the currently selected text to the clipboard so that it may be  
+pasted elsewhere.  the clipboard is a feature of kde that works invisibly to  
+provide a way to transfer data between applications.</p></dd><dt><a name="id2913215"/><span class="term"><a name="paste"/>edit-&gt;paste (<b>ctrl-v</b>)</span></dt><dd><p><a name="id2913337"/>this will insert the contents of the clipboard at the cursor position. the  
+clipboard is feature of kde that works invisibly to provide a way to transfer  
+data between applications.</p></dd><dt><a name="id2913358"/><span class="term"><a name="select-all"/>edit-&gt;select all (<b>ctrl-a</b>)</span></dt><dd><p><a name="id2913482"/>this will select the entire document. this could be very useful for  
+copying the entire file to another application.</p></dd><dt><a name="id2913502"/><span class="term"><a name="invert-the-selection"/>edit-&gt;invert selection</span></dt><dd><p><a name="id2913576"/>this selects any unselected text while unselecting any selected text -  
+effectively reversing the current state of selection.</p></dd><dt><a name="id2913596"/><span class="term"><a name="find"/>edit-&gt;find (<b>ctrl-f</b>)</span></dt><dd><p><a name="id2913718"/>this opens the find dialog which is used to specify the text to  
+find in the document. there is small text box for entering the search  
+pattern which also doubles as a dropdown box. clicking on the dropdown arrow at  
+the side of the box makes available other recent search patterns. other  
+parameters are included to make the search more efficient. selecting  
+case sensitive will limit finds to entries that match the  
+case (upper or lower) of each of the characters in the search  
+pattern. find backwards directs the search to proceed in an  
+upwardly direction. the selected text option keeps the  
+search within currently selected text. checking whole words
+only prevents the search from stopping on words that contain the
+searched for pattern. the search from cursor option begins  
+the search from the current position of the cursor within the document rather  
+than from the beginning.</p></dd><dt><a name="id2913829"/><span class="term"><a name="find-again"/>edit-&gt;find next (<b>f3</b>)</span></dt><dd><p><a name="id2913941"/>this repeats the last find operation, if any, without calling the find  
+dialog box.</p></dd><dt><a name="id2913960"/><span class="term"><a name="replace"/>edit-&gt;replace (<b>ctrl-r</b>)</span></dt><dd><p><a name="id2914082"/>this command opens the replace dialog box.  the replace dialog is  
+almost identical to the above-mentioned find dialog.  in addition to the features in
+the find dialog it contains a replace with: text
+entry/dropdown box.  using this dialog the user can specify both the text to be found
+and text with which to replace it.  the additional prompt
+on replace option allows the user to have kwrite ask for
+confirmation before each replacement.</p></dd><dt><a name="id2914146"/><span class="term"><a name="insertfile"/>
+edit-&gt;insert file</span></dt><dd><p><a name="id2914219"/>this opens the file <a href="#open">open</a> dialog box whereby the
+user can insert a complete file in the open document.  the the contents of
+the file will be entered at the position of the blinking text
+cursor.</p></dd></dl></div></div><div class="sect1"><a name="go"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="go"/>the go menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2914335"/><span class="term"><a name="go-to-line"/>go-&gt;go to line</span></dt><dd><p><a name="id2914404"/>this opens the goto line dialog box which is used to have the cursor jump  
+to a particular line (specified by number) in the document.  the line number may  
+be entered directly into the text box or graphically by clicking on the up or  
+down arrow spin controls at the side of the text box. the little up arrow will  
+increase the line number and the down arrow decrease it.  there is also a slide  
+control to the right of the text box which allows the user to move the goto  
+point in the document in an analog manner.</p></dd><dt><a name="id2914432"/><span class="term"><a name="add-marker"/>go-&gt;add marker (<b>ctrl-m</b>)</span></dt><dd><p><a name="id2914554"/>this creates a marker in the document at the line where the cursor is  
+located and places it at the bottom of the list of markers located at the
+bottom of the go menu.</p><p>markers are points within a kwrite document
+marked for easy return. if  the user thinks (s)he may need to return to a specific
+point (s)he may by way of this feature instruct kwrite to remember it. </p></dd><dt><a name="id2914612"/><span class="term"><a name="set-bookmark"/>go-&gt;set marker</span></dt><dd><p><a name="id2914683"/>this creates a marker in the document at the line where the cursor is  
+located, and allows the user to choose its position in the list of bookmarks  
+which is appended at the bottom of this menu item.</p></dd><dt><a name="id2914704"/><span class="term"><a name="clear-bookmarks"/>go-&gt;clear markers</span></dt><dd><p><a name="id2914775"/>this command will remove all the markers from the docucument as well as the
+list of markers which is appended at the  bottom of this menu item.</p></dd></dl></div><p>at the bottom of this menu, a list of markers appears if any  
+markers are available for this window.</p></div><div class="sect1"><a name="tools"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="tools"/>the tools menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2914851"/><span class="term"><a name="spelling..."/>tools-&gt;spelling...</span></dt><dd><p><a name="id2914922"/>this initiates the spell checking program - a program
+designed to help the user catch and correct any spelling errors.
+clicking on this entry will start the checker and bring up the speller dialog
+box through which the user can control the process.  there are three text boxes
+lined up vertically in the center of the dialog with their corresponding labels
+just to the left.  starting at the top they are:</p><div class="variablelist"><dl><dt><a name="id2914960"/><span class="term">misspelled word:</span></dt><dd><p><a name="id2914983"/>here, the spell checker indicates the word currently under
+consideration.  this happens when the checker encounters a word not in its
+dictionary - a file containing a list of correctly spelled words against which
+it compares each word in the editor.</p></dd><dt><a name="id2915005"/><span class="term">replacement:</span></dt><dd><p><a name="id2915027"/> if the checker has any similar words in its dictionary the
+first one will be listed here.  the user can accept the suggestion, type in his
+or her own correction, or choose a different suggestion from the next
+box.</p></dd><dt><a name="id2915049"/><span class="term">suggestions:</span></dt><dd><p><a name="id2915071"/> the checker may list here a number of possible replacements for
+the word under consideration.  clicking on any one of the suggestions will cause
+that word to be entered in the replacement: box,
+above.</p></dd></dl></div><p>on the right side of the dialog box are 6 buttons that allow the user to
+control the spell check process.  they are:</p><div class="variablelist"><dl><dt><a name="id2915124"/><span class="term">replace</span></dt><dd><p><a name="id2915146"/> this button has the checker replace the word under
+consideration in the document with the word in the
+replacement: box.</p></dd><dt><a name="id2915178"/><span class="term">replace all</span></dt><dd><p><a name="id2915200"/> this button causes the checker to replace not only the current
+misspelled word: but to automatically make the same
+substitution for any other occurences of this misspelled
+word: in the document.</p></dd><dt><a name="id2915247"/><span class="term">ignore</span></dt><dd><p><a name="id2915269"/>activating this button will have the checker move on without
+making any changes.</p></dd><dt><a name="id2915288"/><span class="term">ignore all</span></dt><dd><p><a name="id2915310"/> this button tells the checker to do nothing with the current
+misspelled word: and to pass over any other instances of
+the same word.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2915340"/>Note</h3><p>this only applies to the current spell check
+run.  if the checker is run again later it will stop on this same
+word.</p></div></dd><dt><a name="id2915361"/><span class="term">add</span></dt><dd><p><a name="id2915383"/>pressing this button adds the word in the misspelled
+word: box to the checker's dictionary. this means that in the future
+the checker will always consider this word to be correctly
+spelled.</p></dd><dt><a name="id2915417"/><span class="term">stop</span></dt><dd><p><a name="id2915439"/> this button stops the spell check process.</p></dd></dl></div><p>located horizontally along the bottom of the spell check dialog is a
+progress bar.  as the checking process proceeds the bar will fill from left to
+right providing a graphical representation of how far along in the document the
+process has reached.  in addition, the progress is displayed numerically in
+the center of the progress bar.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2915480"/>Note</h3><p>a numerical display of the spell check
+process is simultaneously displayed in the status bar of the editor.  the <a href="#show-statusbar">status bar</a> is the horizontal strip at the bottom
+of the editor just outside of the text entry area.</p></div><p>two more buttons are located below the progress bar.  they are:</p><div class="variablelist"><dl><dt><a name="id2915535"/><span class="term">help</span></dt><dd><p><a name="id2915557"/> this invokes the kde help system starting at the kwrite help
+pages (this document).</p></dd><dt><a name="id2915590"/><span class="term">cancel</span></dt><dd><p><a name="id2915612"/> this button cancels the spell check process.</p></dd><dt><a name="id2915630"/><span class="term"><a name="indent"/>tools-&gt;indent</span></dt><dd><p><a name="id2915689"/>this increases the paragraph's indentation by one step. the size of the
+step depends on the <a href="#pref-indent" title="indent"> indentation  
+settings</a>.</p></dd><dt><a name="id2915729"/><span class="term"><a name="unindent"/>tools-&gt;unindent</span></dt><dd><p><a name="id2915788"/>this reduces the paragraph's indentation by one step. the size of the step  
+depends on the <a href="#pref-indent" title="indent"> indentation settings</a>.</p></dd><dt><a name="id2915824"/><span class="term"><a name="cleanindent"/>tools-&gt;clean
+indentation</span></dt><dd><p><a name="id2915883"/>not yet implemented</p></dd><dt><a name="id2915901"/><span class="term">tools-&gt;comment</span></dt><dd><p><a name="id2915949"/>this adds one space to the beginning of the line
+where the text cursor is located or to the beginning of any
+selected lines.</p></dd><dt><a name="id2915969"/><span class="term">tools-&gt;uncomment</span></dt><dd><p><a name="id2916018"/>this removes one space (if any exist) from the beginning of the line
+where the text cursor is located or from the beginning of any
+selected lines.</p></dd></dl></div></dd></dl></div></div><div class="sect1"><a name="settings"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="settings"/>the settings menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2916089"/><span class="term"><a name="show-toolbar"/>settings-&gt;show toolbar</span></dt><dd><p><a name="id2916163"/>when checked, this displays a movable toolbar containing buttons used to  
+initiate frequently used commands. when unchecked the toolbar is hidden.</p></dd><dt><a name="id2916183"/><span class="term"><a name="show-statusbar"/>settings-&gt;show statusbar</span></dt><dd><p><a name="id2916257"/>when checked, this displays a small bar at the bottom of the editor  
+containing information about the status of the current document.  when unchecked  
+the statusbar is hidden.</p></dd><dt><a name="id2916278"/><span class="term"><a name="show-path"/>settings-&gt;show path</span></dt><dd><p><a name="id2916350"/>when selected, this displays in the title bar the path (its location in the
+file system) of the current document.  when unchecked the path is hidden.</p></dd><dt><a name="id2916371"/><span class="term"><a name="configure-keybindings"/>settings-&gt;configure key bindings</span></dt><dd><p><a name="id2916445"/>this command opens a dialog box whereby the <a href="#keybindings" title="key bindings">key bindings</a> may be changed.  a display window at
+the top of the dialog box shows the list of commands (actions) that can have
+keyboard shortcuts.  below the display are three radio buttons.  the user may choose
+between no key, default key, and custom key.  (note that a set of radio buttons only
+allows the selection of one of the offered items - in the way that buttons on a car
+radio only offer the selection of one preset station.  also, the default key
+selection  is only available for those commands that actually have a 'default'
+shortcut.)  selecting the custom key option activates the three check boxes and key
+button at the bottom of the dialog. the user may then select a key
+combination for the command in question by means of the check boxes and key
+button. for example, with the about kde command selected in the display window,  
+the user could select <b>ctrl</b> and <b>alt</b>, click on  
+the key button, and then press the <b>k</b> key on the keyboard.  this  
+would mean that anytime he or she held down the <b>ctrl</b> and  
+<b>alt</b> buttons and pressed <b>k</b> (while using  
+kwrite) the about kde display box would be called. </p></dd><dt><a name="id2916595"/><span class="term"><a name="configure-toolbars"/>settings-&gt;configure toolbars</span></dt><dd><p><a name="id2916668"/>this will open the dialog whereby the toolbar configuration may
+be changed.   the user can choose which shortcut buttons should appear on the  
+toolbar. a display window on the left lists the commands available to placed
+on the toolbar.  a display on the right lists those commands already on the  
+toolbar.  a set of four arrow buttons between the two displays manipulates the  
+selections.  the right pointing arrow places any command selected in the left  
+pane onto the right pane, i.e., it is added to the toolbar.  
+the left arrow does just the opposite, removing any action selected in the right  
+window from the toolbar.  the up and down pointing arrows change the position of  
+an action selected in the right window which changes the position of its button  
+in the toolbar.</p></dd><dt><a name="id2916709"/><span class="term"><a name="preferences"/>settings-&gt;preferences</span></dt><dd><p><a name="id2916779"/>this menu item opens a dialog whereby several different <a href="#pref-dialog" title="Chapter 4. configure kwrite">settings</a> may be adjusted.</p></dd><dt><a name="id2916818"/><span class="term">settings-&gt;configure
+highlighting</span></dt><dd><p><a name="id2916879"/>opens a dialog box allowing configuration of the syntax  
+highlighting.  the dialog is described in <a href="#pref-highlighting" title="Chapter 5. highlighting">Chapter 5. highlighting</a>.</p></dd><dt><a name="id2916916"/><span class="term"><a name="vertical-selection"/>settings-&gt;vertical  
+selection</span></dt><dd><p><a name="id2916988"/>this is used to turn on or off the vertical selection feature.  vertical  
+selection allows text to be selected by column as well as by row.  in other  
+words with this feature the user is able to select text contained in only  
+particular contiguous columns and rows.  in affect the user can select a  
+rectangular area of text anywhere in the document.</p></dd><dt><a name="id2917012"/><span class="term"><a name="set-highlight"/>settings-&gt;highlight mode</span></dt><dd><p><a name="id2917082"/>this allows the user to choose the style of color highlighting which the  
+editor uses to display the text. the styles are selected by programming
+language. the font/color information is not stored with the document.</p></dd><dt><a name="id2917104"/><span class="term"><a name="end-of-line"/>settings-&gt;end of line</span></dt><dd><p><a name="id2917174"/>this opens a sub-menu from which the user can select the type of &#8216;end of  
+line&#8217; code for kwrite to use, i.e., the accepted standard  
+used by unix, mac® or msdos/windows® systems.</p></dd></dl></div></div><div class="sect1"><a name="help"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="help"/>the help menu</h2></div></div><div class="variablelist"><dl><dt><a name="id2917295"/><span class="term"><a name="contents"/>help-&gt;contents (<b>f1</b>)</span></dt><dd><p><a name="id2917403"/>this invokes the kde help system starting at the kwrite help pages (this document).</p></dd><dt><a name="id2917436"/><span class="term"><a name="whats-this"/>help-&gt;what's this? (<b>shift-f1</b>)</span></dt><dd><p><a name="id2917560"/>this changes the mouse cursor to a combination arrow and question mark.  
+clicking on items within kwrite with this arrow will open a help window (if  
+one exists for the particular item) explaining the item's function.</p></dd><dt><a name="id2917595"/><span class="term"><a name="report-bug"/>help-&gt;report bug</span></dt><dd><p><a name="id2917664"/>this calls a dialog box to help
+the user help the kde team to track down and solve any
+problems(bugs) in the program.  the dialog attempts to do this by
+means of email using the information given by the user.</p></dd><dt><a name="id2917693"/><span class="term"><a name="about-kwrite"/>help-&gt;about kwrite</span></dt><dd><p><a name="id2917764"/>this will display version and author information</p></dd><dt><a name="id2917783"/><span class="term"><a name="about-kde"/>help-&gt;about kde</span></dt><dd><p><a name="id2917855"/>this displays the kde version and other basic information.</p></dd></dl></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="pref-dialog"/>Chapter 4. configure kwrite</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#prefcolors">colors</a></dt><dt> <a href="#pref-indent">indent</a></dt><dt> <a href="#pref-select">select</a></dt><dt> <a href="#pref-edit">edit</a></dt><dt> <a href="#prefspellchecker">spelling</a></dt></dl></div><p>selecting
+settings-&gt;configure
+kwrite from the menu brings up the configure-kwrite
+dialog box.  this dialog can be used to alter a number of different settings.  the
+settings available for change vary according to which category the user chooses from
+a vertical list on the left side of the dialog.  by means of three buttons
+along the bottom of the box the user can control the process.  she or he may invoke
+the help system, accept the current settings and close the
+dialog by means of the ok button, or
+cancel the process. the categories
+colors, indent,
+select, edit, and
+spelling are detailed below.</p><div class="sect1"><a name="prefcolors"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="prefcolors"/>colors</h2></div></div><p>this section provides access to <a href="#pref-color-settings">five different color settings</a>,  
+described below.  each of these settings may be changed by clicking on its  
+corresponding button.  these are special wide buttons that are the color of  
+the current setting.  clicking on one of the buttons calls a special color  
+dialog box used to change the setting.</p><p>the color dialog box provides a convenient and graphical way to
+select a color.  in the upper left of the box is a rectangular display of a  
+spectrum of colors. to the immediate right of this, is vertical bar  
+displaying a range of intensity from the most dark at the bottom to the  
+most light at the top.  the user may select and adjust a color by clicking  
+in these two boxes. clicking in the rectangular display selects a  
+particular mix of red, green, and blue colors and in the vertical bar  
+selects a level of intensity (value).  the various color attributes are displayed  
+in numerical form in small text boxes located directly below the spectral  
+rectangle and the user can see them change as the color is adjusted.  these  
+attributes include the mix of the basic color components (red, green, and  
+blue) as well as hue and saturation levels.  alternatively the user can  
+enter figures directly in these boxes.  there is also a square at the  
+bottom center of the dialog box which displays the color which is under  
+consideration at any time.  to the right of this display is another text  
+box labeled html: this shows the user the color code  
+that would be used to specify the particular displayed color in  
+html code which is widely used for web pages.</p><p>in addition to the above, the color dialog allows the capture of any  
+color currently displayed on the desktop or in another program.  clicking  
+on the button with the dropper icon (located on the right side of the  
+dialog box,) changes the shape of the mouse cursor to a set of crosshairs.  
+clicking again will pick up the color attributes of whatever color is  
+displayed under the cross hairs.</p><p>furthermore the user has the option of adding any color to a personal
+palette of &#8220;custom colors&#8221; by clicking on the wide button labeled
+add to custom colors (which is located directly above the
+display square.)  this adds the current color to the custom color palette.  this
+palette and any other available palettes can be displayed using the drop down
+selection box located directly above the palette display at the top right of the
+dialog box.  besides the custom colors, the user can access a number of
+pre-prepared palettes.</p><div class="variablelist"><dl><dt><a name="pref-color-settings"/><span class="term">background</span></dt><dd><p><a name="id2918274"/>here the user can specify a color for the general background of  
+kwrite.</p></dd><dt><a name="id2918306"/><span class="term">text background</span></dt><dd><p><a name="id2918328"/>this is used to set a particular color to display in the  
+background of those areas of the document containing text.</p></dd><dt><a name="id2918348"/><span class="term">selected</span></dt><dd><p><a name="id2918370"/>this allows the user to select a color to be used for indicating  
+selected (or highlighted) portions of the document.</p></dd><dt><a name="id2918390"/><span class="term">found</span></dt><dd><p><a name="id2918412"/>this specifies the preferred color with which to mark text  
+encountered as the result of a <a href="#find">find</a>  
+operation.</p></dd><dt><a name="id2918448"/><span class="term">selected + found</span></dt><dd><p><a name="id2918470"/>this sets the color for text that has not only been found as in  
+the previous entry above but that has also been selected.</p></dd></dl></div></div><div class="sect1"><a name="pref-indent"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="pref-indent"/>indent</h2></div></div><div class="variablelist"><dl><dt><a name="id2918522"/><span class="term">auto indent</span></dt><dd><p><a name="id2918545"/>this causes  
+new lines to begin with the same indentation level as the previous  
+line.</p></dd><dt><a name="id2918564"/><span class="term">indent with spaces</span></dt><dd><p><a name="id2918586"/>this  
+replaces tabs with the number of spaces selected in the tab width window in  
+the <a href="#pref-edit" title="edit">edit</a> section of the preferences  
+dialog.</p></dd><dt><a name="id2918626"/><span class="term">backspace key indents</span></dt><dd><p><a name="id2918648"/>this allows the  
+backspace key to be used to  
+indent.</p></dd><dt><a name="id2918693"/><span class="term">tab key indents</span></dt><dd><p><a name="id2918715"/>this  
+allows the tab key to be used to  
+indent.</p></dd><dt><a name="id2918759"/><span class="term">keep indent profile</span></dt><dd><p><a name="id2918782"/>this  
+retains current indentation settings for future documents.</p></dd><dt><a name="id2918800"/><span class="term">keep extra spaces</span></dt><dd><p><a name="id2918822"/>indentations of more than the selected number of spaces  
+will not be shortened.</p></dd></dl></div></div><div class="sect1"><a name="pref-select"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="pref-select"/>select</h2></div></div><div class="variablelist"><dl><dt><a name="id2918875"/><span class="term">persistent selections</span></dt><dd><p><a name="id2918897"/>this prevents key input or cursor movement by way of the  
+arrow keys from causing the elimination of text  
+selection. </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2918913"/>Note</h3><p>(note: if the overwrite selections option is  
+activated then any typed character input or paste operation will replace  
+the selected text.)</p></div></dd><dt><a name="id2918935"/><span class="term">overwrite selections</span></dt><dd><p><a name="id2918958"/>any keyed character input or paste operation will replace  
+the selected text.  </p></dd><dt><a name="id2918977"/><span class="term">mouse autocopy</span></dt><dd><p><a name="id2918999"/>any text  
+selected with the mouse will be automatically copied to the  
+clipboard.</p></dd><dt><a name="id2919018"/><span class="term">x11-like single selection</span></dt><dd><p><a name="id2919041"/>not implemented yet.</p></dd><dt><a name="id2919059"/><span class="term">vertical selections</span></dt><dd><p><a name="id2919081"/>this  
+activates the <a href="#vertical-selection">vertical selection</a>  
+option.</p></dd><dt><a name="id2919120"/><span class="term">toggle old</span></dt><dd><p><a name="id2919134"/>not yet implemented</p></dd></dl></div></div><div class="sect1"><a name="pref-edit"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="pref-edit"/>edit</h2></div></div><div class="variablelist"><dl><dt><a name="id2919184"/><span class="term">word wrap</span></dt><dd><p><a name="id2919216"/>word wrap is a feature that causes the editor to
+automatically start a new line of text and move (wrap) the cursor to the
+beginning of that new line.  kwrite will automatically start a new line of text
+when  the current line reaches the length specified by the <a href="#pref-wrap-words-at">wrap words at:</a>  
+option.</p></dd><dt><a name="id2919270"/><span class="term">wrap words  
+at:</span></dt><dd><p><a name="id2919302"/>if the <a href="#pref-word-wrap">word wrap</a> option is selected this entry  
+determines the length (in characters) at which the editor will
+automatically start a new line.</p></dd><dt><a name="id2919342"/><span class="term">replace tabs by  
+spaces</span></dt><dd><p><a name="id2919375"/>kwrite will replace any tabs  
+with the number of spaces indicated in the <a href="#pref-tab-width">tab width:</a> entry.</p></dd><dt><a name="id2919425"/><span class="term">tab width</span></dt><dd><p><a name="id2919450"/>if the <a href="#pref-word-wrap">replace tabs by spaces</a>  
+option is selected this entry determines the number of spaces with which
+the editor will automatically replace tabs.</p></dd><dt><a name="id2919493"/><span class="term">remove trailing spaces</span></dt><dd><p><a name="id2919516"/>kwrite will automatically eliminate extra spaces at the  
+ends of lines of text.</p></dd><dt><a name="id2919545"/><span class="term">auto brackets</span></dt><dd><p><a name="id2919567"/>when the
+user types a left bracket ([,(, or {) kwrite automatically
+enters the right bracket (}, ), or ]) to the right of the
+cursor.</p></dd><dt><a name="id2919600"/><span class="term">group undos</span></dt><dd><p><a name="id2919632"/>groups of similar actions are to be considered a single
+<a href="#undo">undo</a> step by kwrite. in other words, a series
+of regular character keystrokes (words or expressions) would be considered
+one step and therefore be removed by a single undo operation.  if the
+series of character entries were interrupted by a non-character entry
+operation (such as a backspace), invoking undo would only remove the
+entries made since that operation. the next undo would then reverse that
+operation and so on.</p><p> when this option is not selected kwrite considers
+each keystroke to be a single step.  so if the user (with this option
+active) were to type several words or even sentences without having to make
+corrections or cut or paste or some other non-character entry operation
+then a click of the undo button would eliminate all that had been typed
+since the last non-entry operation.  a second click would eliminate that
+operation and a third any operation or series of entries that occurred
+before the operation and so on.  when not selected three clicks of the undo
+button would only remove the last three letters typed, or the last three
+operations.</p></dd><dt><a name="id2919720"/><span class="term">show tabs</span></dt><dd><p><a name="id2919742"/>the editor will display a symbol to indicate the presence  
+of a tab in the text.</p></dd><dt><a name="id2919761"/><span class="term">smart home</span></dt><dd><p><a name="id2919783"/>not yet implemented</p></dd><dt><a name="id2919801"/><span class="term">page up/down moves cursor</span></dt><dd><p><a name="id2919824"/>this option changes the behavior of the cursor when
+the user presses the <b>page up</b> or <b>page down</b> key. if
+unselected the text cursor will maintain its relative position within the visible
+text in kwrite as new text becomes visible as a result of the operation.  so if
+the cursor is in the middle of the visible text when the operation occurs it will
+remain there (except when one reaches the beginning or end.)  with this
+option selected, the first key press will cause the cursor to move to either the top
+or bottom of the visible text as a new page of text is displayed.</p></dd><dt><a name="id2919890"/><span class="term">wrap cursor</span></dt><dd><p><a name="id2919904"/>when this option is chosen, moving
+the cursor with the arrow keys off the end of a line (to the right) causes
+it to jump down to the beginning of the next line.  likewise when the
+cursor is moved past the beginning of a line (to the left) it jumps up to
+the end of the preceding line. when this option is not selected, moving the
+cursor right past the end of a line merely causes it to continue
+horizontally in the same line and trying to move it left past the beginning
+does nothing.</p></dd><dt><a name="id2919931"/><span class="term"><a href="#undo">undo</a> steps:</span></dt><dd><p><a name="id2919959"/>here
+the user may specify the number of steps kwrite will retain in memory for
+purposes of undoing entries and actions.  this means that the higher the
+number of steps set the more memory kwrite will use for this.  setting
+this entry to 10 would mean that the user would be be able reverse the last
+ten operations, i.e.i&gt;, click the undo
+button 10 times and obtain results.</p></dd></dl></div></div><div class="sect1"><a name="prefspellchecker"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="prefspellchecker"/>spelling</h2></div></div><p>a spell checker is a program designed to
+help the user catch and correct any spelling errors.  this section of the
+preferences dialog allows certain important settings to be adjusted in this
+regard.</p><div class="variablelist"><dl><dt><a name="id2920075"/><span class="term">create root/affix combinations not in
+dictionary</span></dt><dd><p><a name="id2920098"/>selecting this option allows
+the spell checker to register as 'correct' combinations of root words with
+suffixes or prefixes even if the particular combination is not listed in
+its dictionary data base of words.</p></dd><dt><a name="id2920120"/><span class="term">consider run-together words as spelling
+errors</span></dt><dd><p><a name="id2920143"/>selecting this will cause the
+spell checker to register as 'misspelled' two or more correctly spelled
+words that are 'run-together', i.e., that do not have spaces
+separating them.</p></dd><dt><a name="id2920171"/><span class="term">dictionary:</span></dt><dd><p><a name="id2920193"/>depending on
+the user's installation one or more different language spelling
+dictionaries may be available.  this drop down box allows the user to
+choose which language the spell checker should use.</p></dd><dt><a name="id2920215"/><span class="term">encoding:</span></dt><dd><p><a name="id2920237"/>there are  
+different coding systems used to associate particular codes with particular  
+characters and symbols.  if the user knows which code he or she is using  
+this drop down box allows this code to be specified so that the spell
+checker can do its job correctly. </p></dd><dt><a name="id2920260"/><span class="term">client:</span></dt><dd><p><a name="id2920282"/>since kwrite
+does not contain its own spell checker, an external one must be chosen.
+this is where the user may specify which spell check program to
+use.</p></dd></dl></div></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="pref-highlighting"/>Chapter 5. highlighting</h2></div></div><p>the configure highlighting dialog consists of two
+pages, defaults and highlighting
+modes.  the user can select which page to view by clicking on the
+appropriate tab at the top of the dialog</p><p>items available on the defaults page are as
+follows:</p><div class="variablelist"><dl><dt><a name="id2920422"/><span class="term">default item styles</span></dt><dd><p><a name="id2920444"/>the user can configure the default appearance for particular items.
+this would allow a programmer to more easily identify different items (types of
+entries) in his or her code.
+
+</p><div class="variablelist"><dl><dt><a name="id2920468"/><span class="term">item</span></dt><dd><p><a name="id2920491"/>this drop down list offers a variety of items that the user
+might want to highlight.  they include normal for
+text does not fit in any of the other categories, comment,
+string, keyword and many more.  not
+all of these entries will need to be configured for every language and so may be
+selected as needed.  the options in the rest of this section apply
+to the entry selected in this box.</p></dd><dt><a name="id2920567"/><span class="term">normal</span></dt><dd><p><a name="id2920589"/>this allows the user to choose the item's normal
+(unselected) color.  this is done by means of a color selection
+dialog box, a further explanation of which may be found in the <a href="#prefcolors" title="colors">colors</a> section of <a href="#pref-dialog" title="Chapter 4. configure kwrite">configure kwrite</a>.</p></dd><dt><a name="id2920645"/><span class="term">bold</span></dt><dd><p><a name="id2920668"/>this option determines whether or not the item should be displayed in
+bold text.</p></dd><dt><a name="id2920687"/><span class="term">italic</span></dt><dd><p><a name="id2920709"/>this option determines whether or not the item should be displayed in italic
+text.</p></dd><dt><a name="id2920728"/><span class="term">selected</span></dt><dd><p><a name="id2920750"/>this allows the user to choose the item's color
+when selected.  this is done by means of a color selection
+dialog box, a further explanation of which may be found in the <a href="#prefcolors" title="colors">colors</a> section of <a href="#pref-dialog" title="Chapter 4. configure kwrite">configure kwrite</a>.</p></dd></dl></div></dd><dt><a name="id2920808"/><span class="term">default font</span></dt><dd><p><a name="id2920830"/>here the user can choose the default font for all
+text.</p><div class="variablelist"><dl><dt><a name="id2920852"/><span class="term">family</span></dt><dd><p><a name="id2920874"/>this is used to choose the font family.  the default is fixed.
+for most programming purposes, a monospaced font (one in which a w takes up the same
+amount of space as an i) may be the best choice.</p></dd><dt><a name="id2920895"/><span class="term">size</span></dt><dd><p><a name="id2920917"/>the font size can be changed here.  the default is 12
+points.</p></dd><dt><a name="id2920936"/><span class="term">charset</span></dt><dd><p><a name="id2920958"/>here the user can choose which character set to work in.</p></dd></dl></div></dd></dl></div><p>items on the highlight modes tab allow the user to define
+more specific highlighting depending on the language style.</p><p>one need not set every available option, items not configured
+specifically will use the default configuration specified on the previous  
+(defaults tab.</p><div class="variablelist"><dl><dt><a name="id2921036"/><span class="term">config select</span></dt><dd><p><a name="id2921058"/>this group of options is used to customize the highlighting styles
+for each programming language type.  any changes you made in
+other areas of this dialog apply only to this type.</p><div class="variablelist"><dl><dt><a name="id2921083"/><span class="term">highlight</span></dt><dd><p><a name="id2921105"/>this is used to choose the language type to
+configure</p></dd><dt><a name="id2921123"/><span class="term">item</span></dt><dd><p><a name="id2921146"/>this is to choose the syntax item to configure.  remember
+this  only configures <i>this</i> item for <i>this</i>
+language.</p></dd></dl></div><p>as an example, if the user wished to configure the appearance of
+&#8220;comments&#8221; while writing c++, she or he could choose c++ in the
+highlight drop down list, and then choose comment in the
+item drop down list. to have &#8220;comments&#8221; look
+the same across all languages, the user would need to configure this in the
+defaults page of this dialog box while leaving
+&#8220;comments&#8221; unconfigured within the more specific
+highlight modes page.</p></dd><dt><a name="id2921275"/><span class="term">item style</span></dt><dd><p><a name="id2921297"/>here the user can configure the general appearance of the above
+selected item.  checking the default checkbox causes the default
+style as configured on the previous tab to be set, or the
+appearance can be configured directly.  the available options are the same as on the
+defaults tab: normal,
+selected, bold and
+italic.</p></dd><dt><a name="id2921398"/><span class="term">highlight auto select</span></dt><dd><p><a name="id2921420"/>kwrite can apply syntax highlighting automatically, depending  
+on the file extension or mime-type of the opened file.  the defaults are fairly
+comprehensive, but users that regularly edit files with non-standard extensions
+can add them here.  wildcards are allowed in the file
+extensions text box.  for example, the default entry for the c++
+language is <b><tt>*.cpp;*.cc;*.c;*.h</tt></b>.  opening a file called
+<tt>foo.h</tt> would automatically apply the c++ style to it.</p></dd><dt><a name="id2921495"/><span class="term">item font</span></dt><dd><p><a name="id2921517"/>here the user can choose the font for the selected item.</p><p>the default style can be applied by checking the
+default checkbox or the user can choose a specific font
+family, size and
+charset.  the available options are the same as those on
+the defaults tab.</p></dd></dl></div></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="credits"/>Chapter 6. credits and licenses</h2></div></div><p>kwrite copyright 2000 by jochen wilhelmy  
+<tt>&lt;<a href="mailto:digisnap at cs.tu-berlin.de">digisnap at cs.tu-berlin.de</a>&gt;</tt></p><p>contributions:</p><div class="itemizedlist"><ul><li><p><a name="id2921677"/>additional contributions by glen parker <tt>&lt;<a href="mailto:glenebob at nwlink.com">glenebob at nwlink.com</a>&gt;</tt></p></li><li><p><a name="id2921699"/>michael koch <tt>&lt;<a href="mailto:koch at kde.org">koch at kde.org</a>&gt;</tt></p></li></ul></div><p>documentation by thad mcginnis <tt>&lt;<a href="mailto:ctmcginnis at compuserve.com">ctmcginnis at compuserve.com</a>&gt;</tt></p><div class="itemizedlist"><ul><li><p><a name="id2921743"/>this version of the kwrite handbook is based on the original by cristian tibirna <tt>&lt;<a href="mailto:tibirna at kde.org">tibirna at kde.org</a>&gt;</tt></p></li></ul></div><p>converted to docbook/proofreading by lauri watts <tt>&lt;<a href="mailto:vampyr at atconnex.net">vampyr at atconnex.net</a>&gt;</tt></p><p><a name="gnu-fdl"/>this documentation is licensed under the terms of the <a href="common/fdl-license.html" target="_top">gnu free documentation
+license</a>.</p><p>this program is licensed under the terms of the <a href="common/gpl-translated.html" target="_top">gnu general public license</a>.</p></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="installation"/>Appendix A. installation</h2></div></div><p>kwrite is packaged as part of the kdebase package.  for more information
+on installing and compiling kde please see <a href="http://www.kde.org" target="_top">www.kde.org</a>.</p></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/multilingual.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/multilingual.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/multilingual.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,502 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Multilingual Test Document</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2874263"><div class="titlepage"><div><h1 class="title"><a name="id2874263"/>Multilingual Test Document</h1></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#cachap">Catalan</a></dt><dt>2 <a href="#cschap">Czech</a></dt><dt>3 <a href="#dachap">Danish</a></dt><dt>4 <a href="#eschap">Spanish</a></dt><dt>5 <a href="#fichap">Finnish</a></dt><dt>6 <a href="#frchap">French</a></dt><dt>7 <a href="#itchap">Italian</a></dt><dt>8 <a href="#dechap">German</a></dt><dt>9 <a href="#elchap">Greek</a></dt><dt>10 <a href="#enchap">English</a></dt><dt>11 <a href="#jachap">Japanese</a></dt><dt>12 <a href="#rochap">Romanian</a></dt><dt>13 <a href="#ruchap">Russian</a></dt><dt>14 <a href="#nochap">Norsk</a></dt><dt>15 <a href="#nlchap">Dutch</a></dt><dt>16 <a href="#plchap">Polish</a></dt><dt>17 <a href="#ptchap">Portuguese</a></dt><dt>18 <a href="#ptbrchap">Portuguese (Brazilian)</a></dt><dt>19 <a href="#skchap">Slovak</a></dt><dt>20 <a href="#svchap">Swedish</a></dt><dt><a href="#bibl">Bibliography</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="cachap"/>Capítol 1. Catalan</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2897921"/>Nota</h3><p>
+This paragraph would be in Catalan, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="cschap"/>Kapitola 2. Czech</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2790388"/>Poznámka</h3><p>
+This paragraph would be in Czech, if I knew any.
+&#8222;Quote test.&#8220;
+</p></div><p>
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="dachap"/>Kapitel 3. Danish</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2792557"/>Note</h3><p>
+This paragraph would be in Danish, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="eschap"/>Capítulo 4. Spanish</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2792958"/>Nota</h3><p>
+This paragraph would be in Spanish, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="fichap"/>Luku 5. Finnish</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2787514"/>Huomaa</h3><p>
+This paragraph would be in Finnish, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="frchap"/>Chapitre 6. French</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2787915"/>Note</h3><p>
+This paragraph would be in French, if I knew any.
+«Quote test.»
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="itchap"/>Capitolo 7. Italian</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2788316"/>Nota</h3><p>
+This paragraph would be in Italian, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="dechap"/>Kapitel 8. German</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2787799"/>Anmerkung</h3><p>
+This paragraph would be in German, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="elchap"/>ÊåöÜëáéï 9. Greek</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2898433"/>Óçìåßùóç</h3><p>
+This paragraph would be in Greek, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="enchap"/>Chapter 10. English</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2898772"/>Note</h3><p>
+This paragraph is in English.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="jachap"/>&#31532;11&#31456;</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2899111"/>&#27880;&#24847;</h3><p>
+This paragraph would be in Japanese, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="rochap"/>Cap. 12. Romanian</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2899450"/>Notã</h3><p>
+This paragraph would be in Romanian, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ruchap"/>&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2899790"/>&#1047;&#1072;&#1084;&#1077;&#1095;&#1072;&#1085;&#1080;&#1077;</h3><p>
+This paragraph would be in Russian, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="nochap"/>Kapittel 14. Norsk</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900129"/>Notat</h3><p>
+This paragraph would be in Norsk, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="nlchap"/>Hoofdstuk 15. Dutch</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900468"/>Opmerking</h3><p>
+This paragraph would be in Dutch, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="plchap"/>Rozdzia&#322; 16. Polish</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2900808"/>Notatka</h3><p>
+This paragraph would be in Polish, if I knew any.
+&#8222;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ptchap"/>Capítulo 17. Portuguese</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2901147"/>Nota</h3><p>
+This paragraph would be in Portugeuse, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ptbrchap"/>Capítulo 18. Portuguese (Brazilian)</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2901486"/>Nota</h3><p>
+This paragraph would be in Brazilian Portugeuse, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="skchap"/>Kapitola 19. Slovak</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2901827"/>Poznámka</h3><p>
+This paragraph would be in Slovak, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="svchap"/>Kapitel 20. Swedish</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2902166"/>Not</h3><p>
+This paragraph would be in Swedish, if I knew any.
+&#8220;Quote test.&#8221;
+</p></div><p>
+See <a href="#cachap" title="Capítol 1. Catalan">Capítol 1. Catalan</a>.
+See <a href="#cschap" title="Kapitola 2. Czech">2 &#8211; &#8222;Czech&#8220;</a>.
+See <a href="#dachap" title="Kapitel 3. Danish">Kapitel 3. Danish</a>.
+See <a href="#dechap" title="Kapitel 8. German">Kapitel 8. German</a>.
+See <a href="#elchap" title="ÊåöÜëáéï 9. Greek">ÊåöÜëáéï 9. Greek</a>.
+See <a href="#enchap" title="Chapter 10. English">Chapter 10. English</a>.
+See <a href="#eschap" title="Capítulo 4. Spanish">Capítulo 4. Spanish</a>.
+See <a href="#fichap" title="Luku 5. Finnish">Luku 5. Finnish</a>.
+See <a href="#frchap" title="Chapitre 6. French">Chapitre 6. French</a>.
+See <a href="#itchap" title="Capitolo 7. Italian">Capitolo 7. Italian</a>.
+See <a href="#jachap" title="&#31532;11&#31456;">&#31532;11&#31456;</a>.
+See <a href="#nlchap" title="Hoofdstuk 15. Dutch">Hoofdstuk 15. Dutch</a>.
+See <a href="#nochap" title="Kapittel 14. Norsk">Kapittel 14. Norsk</a>.
+See <a href="#plchap" title="Rozdzia&#322; 16. Polish">Rozdzia&#322; 16. Polish</a>.
+See <a href="#ptchap" title="Capítulo 17. Portuguese">Capítulo 17. Portuguese</a>.
+See <a href="#ptbrchap" title="Capítulo 18. Portuguese (Brazilian)">Capítulo 18. Portuguese (Brazilian)</a>.
+See <a href="#rochap" title="Cap. 12. Romanian">Cap. 12. Romanian</a>.
+See <a href="#ruchap" title="&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian">&#1043;&#1083;&#1072;&#1074;&#1072; 13. Russian</a>.
+See <a href="#skchap" title="Kapitola 19. Slovak">Kapitola 19. Slovak</a>.
+See <a href="#svchap" title="Kapitel 20. Swedish">Kapitel 20. Swedish</a>.
+See <a href="#bibl" title="Bibliography">Bibliography</a>.
+</p></div><div id="bibl" class="bibliography"><div class="titlepage"><div><h2 class="title"><a name="bibl"/>Bibliography</h2></div></div><div id="id2902478" class="biblioentry"><a name="id2902478"/><p><span class="abbrev">[AhoSethiUllman96] </span><span class="authorgroup">Alfred V. Aho,Ravi Sethi, and Jeffrey D. Ullman. </span><span class="title"><I>Compilers, Principles, Techniques, and Tools</I>. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span><span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span><span class="isbn">0-201-10088-6. </span><span class="editor">James T. DeWolf. </span><span class="seriesinfo"><span class="title"><I>Computer Science</I>. </span><span class="editor">Michael A. Harrison. </span><span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span></span></p></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/qa.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/qa.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/qa.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>book title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2898003"><div class="titlepage"><div><h1 class="title"><a name="id2898003"/>book title</h1></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#id2898011">chapter test</a></dt><dd><dl><dt> <a href="#id2796263">Section title</a></dt></dl></dd><dt>A <a href="#id2787750">appendix test</a></dt><dd><dl><dt> <a href="#id2788659">Section title</a></dt></dl></dd></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2898011"/>Chapter 1. chapter test</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2796263">Section title</a></dt></dl></div><div class="qandaset"><h2 class="title">Q&amp;A Set (unspecified)</h2><dl><dt>1.1 <a href="#id2833043">Q&amp;A Div 1</a></dt><dd><dl><dt>1.Q1 <a href="#id2833061">Question para 1</a></dt></dl></dd><dt>1.2 <a href="#id2897967">Q&amp;A Div 2</a></dt><dd><dl><dt>1.1 <a href="#id2790033">Question para 1</a></dt><dt>1.2 <a href="#id2832962">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2833043"/>1.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2833061"/><b>1.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2833090"/><b>1.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2897967"/>1.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2790033"/><b>1.1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2790057"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2832962"/><b>1.2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2832986"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (none)</h2><dl><dt>1.1 <a href="#id2833034">Q&amp;A Div 1</a></dt><dd><dl><dt>1.Q1 <a href="#id2874322">Question para 1</a></dt></dl></dd><dt>1.2 <a href="#id2790118">Q&amp;A Div 2</a></dt><dd><dl><dt> <a href="#id2790133">Question para 1</a></dt><dt> <a href="#id2790187">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2833034"/>1.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2874322"/><b>1.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2790084"/><b>1.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2790118"/>1.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2790133"/><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2790156"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2790187"/><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2790210"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (number)</h2><dl><dt>1.1 <a href="#id2792547">Q&amp;A Div 1</a></dt><dd><dl><dt>1.Q1 <a href="#id2792563">Question para 1</a></dt></dl></dd><dt>1.2 <a href="#id2792624">Q&amp;A Div 2</a></dt><dd><dl><dt>1.1 <a href="#id2792640">Question para 1</a></dt><dt>1.2 <a href="#id2792694">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2792547"/>1.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2792563"/><b>1.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2792591"/><b>1.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2792624"/>1.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2792640"/><b>1.1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2792663"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2792694"/><b>1.2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2792717"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (qanda)</h2><dl><dt>1.1 <a href="#id2792775">Q&amp;A Div 1</a></dt><dd><dl><dt>1.Q1 <a href="#id2792791">Question para 1</a></dt></dl></dd><dt>1.2 <a href="#id2796138">Q&amp;A Div 2</a></dt><dd><dl><dt>Q: <a href="#id2796154">Question para 1</a></dt><dt>Q: <a href="#id2796208">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2792775"/>1.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2792791"/><b>1.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2792757"/><b>1.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2796138"/>1.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2796154"/><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2796177"/><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2796208"/><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2796231"/><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="section"><a name="id2796263"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2796263"/>Section title</h2></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (unspecified)</h3><dl><dt>1 <a href="#id2796287">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2796303">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2796364">Q&amp;A Div 2</a></dt><dd><dl><dt>1 <a href="#id2796380">Question para 1</a></dt><dt>2 <a href="#id2796434">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2796287"/>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2796303"/><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2796331"/><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2796364"/>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2796380"/><b>1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2796403"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2796434"/><b>2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2796457"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (none)</h3><dl><dt>1 <a href="#id2796514">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2796530">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2796591">Q&amp;A Div 2</a></dt><dd><dl><dt> <a href="#id2796607">Question para 1</a></dt><dt> <a href="#id2796661">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2796514"/>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2796530"/><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2796558"/><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2796591"/>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2796607"/><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2796630"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2796661"/><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2796684"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (number)</h3><dl><dt>1 <a href="#id2796742">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2796720">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2787394">Q&amp;A Div 2</a></dt><dd><dl><dt>1 <a href="#id2787409">Question para 1</a></dt><dt>2 <a href="#id2787463">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2796742"/>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2796720"/><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2787361"/><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2787394"/>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2787409"/><b>1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2787433"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2787463"/><b>2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2787487"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (qanda)</h3><dl><dt>1 <a href="#id2787544">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2787560">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2787621">Q&amp;A Div 2</a></dt><dd><dl><dt>Q: <a href="#id2787637">Question para 1</a></dt><dt>Q: <a href="#id2787691">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2787544"/>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2787560"/><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2787588"/><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2787621"/>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2787637"/><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2787660"/><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2787691"/><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2787714"/><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2787750"/>Appendix A. appendix test</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2788659">Section title</a></dt></dl></div><div class="qandaset"><h2 class="title">Q&amp;A Set (unspecified)</h2><dl><dt>A.1 <a href="#id2787774">Q&amp;A Div 1</a></dt><dd><dl><dt>A.Q1 <a href="#id2787789">Question para 1</a></dt></dl></dd><dt>A.2 <a href="#id2787851">Q&amp;A Div 2</a></dt><dd><dl><dt>A.1 <a href="#id2787866">Question para 1</a></dt><dt>A.2 <a href="#id2787920">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2787774"/>A.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2787789"/><b>A.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2787818"/><b>A.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2787851"/>A.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2787866"/><b>A.1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2787890"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2787920"/><b>A.2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2787944"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (none)</h2><dl><dt>A.1 <a href="#id2788001">Q&amp;A Div 1</a></dt><dd><dl><dt>A.Q1 <a href="#id2788016">Question para 1</a></dt></dl></dd><dt>A.2 <a href="#id2788078">Q&amp;A Div 2</a></dt><dd><dl><dt> <a href="#id2788093">Question para 1</a></dt><dt> <a href="#id2788147">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2788001"/>A.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2788016"/><b>A.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2788045"/><b>A.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2788078"/>A.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2788093"/><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2788117"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2788147"/><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2788171"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (number)</h2><dl><dt>A.1 <a href="#id2788229">Q&amp;A Div 1</a></dt><dd><dl><dt>A.Q1 <a href="#id2788244">Question para 1</a></dt></dl></dd><dt>A.2 <a href="#id2788306">Q&amp;A Div 2</a></dt><dd><dl><dt>A.1 <a href="#id2788321">Question para 1</a></dt><dt>A.2 <a href="#id2788375">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2788229"/>A.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2788244"/><b>A.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2788273"/><b>A.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2788306"/>A.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2788321"/><b>A.1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2788345"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2788375"/><b>A.2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2788399"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h2 class="title">Q&amp;A Set (qanda)</h2><dl><dt>A.1 <a href="#id2788457">Q&amp;A Div 1</a></dt><dd><dl><dt>A.Q1 <a href="#id2788472">Question para 1</a></dt></dl></dd><dt>A.2 <a href="#id2788534">Q&amp;A Div 2</a></dt><dd><dl><dt>Q: <a href="#id2788549">Question para 1</a></dt><dt>Q: <a href="#id2788603">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2788457"/>A.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="id2788472"/><b>A.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2788501"/><b>A.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2788534"/>A.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2788549"/><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2788573"/><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2788603"/><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2788627"/><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="section"><a name="id2788659"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2788659"/>Section title</h2></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (unspecified)</h3><dl><dt>1 <a href="#id2788201">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2898294">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2898356">Q&amp;A Div 2</a></dt><dd><dl><dt>1 <a href="#id2898371">Question para 1</a></dt><dt>2 <a href="#id2898425">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2788201"/>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2898294"/><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2898323"/><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2898356"/>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2898371"/><b>1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2898394"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2898425"/><b>2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2898448"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (none)</h3><dl><dt>1 <a href="#id2898498">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2898514">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2898575">Q&amp;A Div 2</a></dt><dd><dl><dt> <a href="#id2898591">Question para 1</a></dt><dt> <a href="#id2898645">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2898498"/>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2898514"/><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2898542"/><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2898575"/>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2898591"/><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2898614"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2898645"/><b> </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2898668"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (number)</h3><dl><dt>1 <a href="#id2898718">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2898733">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2898795">Q&amp;A Div 2</a></dt><dd><dl><dt>1 <a href="#id2898810">Question para 1</a></dt><dt>2 <a href="#id2898864">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2898718"/>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2898733"/><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2898762"/><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2898795"/>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2898810"/><b>1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2898833"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2898864"/><b>2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2898887"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div><div class="qandaset"><h3 class="title">Q&amp;A Set (qanda)</h3><dl><dt>1 <a href="#id2898937">Q&amp;A Div 1</a></dt><dd><dl><dt>Q1 <a href="#id2898953">Question para 1</a></dt></dl></dd><dt>2 <a href="#id2899014">Q&amp;A Div 2</a></dt><dd><dl><dt>Q: <a href="#id2899030">Question para 1</a></dt><dt>Q: <a href="#id2899084">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h4 class="title"><a name="id2898937"/>1 Q&amp;A Div 1</h4><div class="qandaentry"><div class="question"><p><a name="id2898953"/><b>Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2898981"/><b>A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h4 class="title"><a name="id2899014"/>2 Q&amp;A Div 2</h4><div class="qandaentry"><div class="question"><p><a name="id2899030"/><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2899053"/><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2899084"/><b>Q: </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2899107"/><b>A: </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/qa2.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/qa2.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/qa2.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>book title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2602135"><div class="titlepage"><div><h1 class="title"><a name="id2602135"/>book title</h1></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#id2909966">chapter test</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2909966"/>Chapter 1. chapter test</h2></div></div><p>Test a cross reference to a question: <a href="#q1" title="">Q: 1.Q1</a>.
+</p><div class="qandaset"><h2 class="title">Q&amp;A Set (unspecified)</h2><dl><dt>1.1 <a href="#id2790341">Q&amp;A Div 1</a></dt><dd><dl><dt>1.Q1 <a href="#q1">Question para 1</a></dt></dl></dd><dt>1.2 <a href="#id2790101">Q&amp;A Div 2</a></dt><dd><dl><dt>1.1 <a href="#id2790119">Question para 1</a></dt><dt>1.2 <a href="#id2790190">Question para 1</a></dt></dl></dd></dl><div class="qandadiv"><h3 class="title"><a name="id2790341"/>1.1 Q&amp;A Div 1</h3><div class="qandaentry"><div class="question"><p><a name="q1"/><b>1.Q1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="a1"/><b>1.A1 </b>Answer para 1</p><p>Answer para 2</p></div></div></div><div class="qandadiv"><h3 class="title"><a name="id2790101"/>1.2 Q&amp;A Div 2</h3><div class="qandaentry"><div class="question"><p><a name="id2790119"/><b>1.1 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2790143"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div><div class="qandaentry"><div class="question"><p><a name="id2790190"/><b>1.2 </b>Question para 1</p><p>Question para 2</p></div><div class="answer"><p><a name="id2790214"/><b> </b>Answer para 1</p><p>Answer para 2</p></div></div></div></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/sectest.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/sectest.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/sectest.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,556 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Book Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"/>Book Title</h1></div><div><h3 class="corpauthor">Some Corporation</h3></div><div><h3 class="author">Norman Walsh</h3></div><div><p class="copyright">Copyright © 1998 Norman Walsh</p></div><div><div class="legalnotice"><p class="legalnotice-title"><b>Legal Notice</b></p><p>This is a test document. You can do what you will with it.</p></div></div><div><div class="legalnotice"><p>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </p></div></div><hr/></div><div id="id2833006" class="dedication"><div class="titlepage"><div><h2 class="title"><a name="id2833006"/>Dedication</h2></div></div><p>This test book is dedicated to all the testers.  This is the first para
+of the dedication.</p><p>This is the second para of the dedication.</p><p>This is the third para of the dedication.</p></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2833037">Preface Title</a></dt><dt>1 <a href="#chapter">XRef Tests</a></dt><dd><dl><dt> <a href="#id2790547">Section 1 Title</a></dt><dt> <a href="#id2787977">Section 1 Title</a></dt></dl></dd></dl></div><div id="id2833037" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2833037"/>Preface Title</h2></div></div><p>Preface content.</p><p>This is the second para of the preface.</p><p>This is the third para of the preface.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"/>Chapter 1. XRef Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2790547">Section 1 Title</a></dt><dt> <a href="#id2787977">Section 1 Title</a></dt></dl></div><h4>Xrefs</h4><table class="simplelist" border="0" summary="Simple list"><tr><td><a href="#book" title="Book Title">Book Title</a></td></tr><tr><td>???</td></tr><tr><td><a href="#chapter" title="Chapter 1. XRef Tests">Chapter 1. XRef Tests</a></td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr><tr><td>???</td></tr></table><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><div class="section"><a name="id2790547"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790547"/>Section 1 Title</h2></div></div><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p></div><div class="section"><a name="id2787977"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2787977"/>Section 1 Title</h2></div></div><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p><p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/set.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/set.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/set.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Set Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="set" id="id2874262"><div class="titlepage"><div><h1 class="title"><a name="id2874262"/>Set Title</h1></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2897914">Book Test Document Title</a></dt><dd><dl><dt> <a href="#id2832917">Foreword</a></dt><dt>1 <a href="#chapter">Section Tests</a></dt><dd><dl><dt> <a href="#id2832999">First Sect1</a></dt><dt> <a href="#id2833020">Second Sect1</a></dt><dt> <a href="#id2833041">Third Sect1</a></dt></dl></dd><dt>A <a href="#id2833063">First Appendix</a></dt><dd><dl><dt> <a href="#id2790019">First Sect1</a></dt><dt> <a href="#id2790039">Second Sect1</a></dt><dt> <a href="#id2790060">Third Sect1</a></dt></dl></dd></dl></dd><dt> <a href="#id2790084">Book Test Document Title</a></dt><dd><dl><dt> <a href="#id2790144">Foreword</a></dt><dt>1 <a href="#id2790165">Section Tests</a></dt><dd><dl><dt> <a href="#id2790179">First Sect1</a></dt><dt> <a href="#id2790200">Second Sect1</a></dt><dt> <a href="#id2790221">Third Sect1</a></dt></dl></dd><dt>A <a href="#id2790243">First Appendix</a></dt></dl></dd></dl></div><div class="book" id="id2897914"><div class="titlepage"><div><h1 class="title"><a name="id2897914"/>Bookinfo Test Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2832917">Foreword</a></dt><dt>1 <a href="#chapter">Section Tests</a></dt><dd><dl><dt> <a href="#id2832999">First Sect1</a></dt><dt> <a href="#id2833020">Second Sect1</a></dt><dt> <a href="#id2833041">Third Sect1</a></dt></dl></dd><dt>A <a href="#id2833063">First Appendix</a></dt><dd><dl><dt> <a href="#id2790019">First Sect1</a></dt><dt> <a href="#id2790039">Second Sect1</a></dt><dt> <a href="#id2790060">Third Sect1</a></dt></dl></dd></dl></div><div id="id2832917" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2832917"/>Foreword</h2></div></div><p>This is a test paragraph.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="chapter"/>Chapter 1. Section Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2832999">First Sect1</a></dt><dt> <a href="#id2833020">Second Sect1</a></dt><dt> <a href="#id2833041">Third Sect1</a></dt></dl></div><div class="sect1"><a name="id2832999"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2832999"/>First Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2833020"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2833020"/>Second Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2833041"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2833041"/>Third Sect1</h2></div></div><p>Paragraph.</p></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2833063"/>Appendix A. First Appendix</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2790019">First Sect1</a></dt><dt> <a href="#id2790039">Second Sect1</a></dt><dt> <a href="#id2790060">Third Sect1</a></dt></dl></div><p>This is just a test.</p><div class="sect1"><a name="id2790019"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790019"/>First Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2790039"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790039"/>Second Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2790060"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790060"/>Third Sect1</h2></div></div><p>Paragraph.</p></div></div></div><div class="book" id="id2790084"><div class="titlepage"><div><h1 class="title"><a name="id2790084"/>Bookinfo Test Document Title</h1></div><div><h2 class="subtitle">Book Subtitle</h2></div><div><h3 class="author">Norman Walsh</h3></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2790144">Foreword</a></dt><dt>1 <a href="#id2790165">Section Tests</a></dt><dd><dl><dt> <a href="#id2790179">First Sect1</a></dt><dt> <a href="#id2790200">Second Sect1</a></dt><dt> <a href="#id2790221">Third Sect1</a></dt></dl></dd><dt>A <a href="#id2790243">First Appendix</a></dt></dl></div><div id="id2790144" class="preface"><div class="titlepage"><div><h2 class="title"><a name="id2790144"/>Foreword</h2></div></div><p>This is a test paragraph.</p></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="id2790165"/>Chapter 1. Section Tests</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="#id2790179">First Sect1</a></dt><dt> <a href="#id2790200">Second Sect1</a></dt><dt> <a href="#id2790221">Third Sect1</a></dt></dl></div><div class="sect1"><a name="id2790179"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790179"/>First Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2790200"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790200"/>Second Sect1</h2></div></div><p>Paragraph.</p></div><div class="sect1"><a name="id2790221"/><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="id2790221"/>Third Sect1</h2></div></div><p>Paragraph.</p></div></div><div class="appendix"><div class="titlepage"><div><h2 class="title"><a name="id2790243"/>Appendix A. First Appendix</h2></div></div><p>This is just a test.</p></div></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/table.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/table.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/table.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Chapter 1. test</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ch1"/>Chapter 1. test</h2></div></div><p>How many ° can you ©.</p><div class="table"><p><a name="id2790275"/><b>Table 1.1. A Table</b></p><table summary="A Table" border="1"><colgroup><col/><col align="right"/><col/></colgroup><tbody><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td rowspan="2">2</td><td>3</td></tr><tr><td>1</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr></tbody></table></div><div class="table"><p><a name="id2790198"/><b>Table 1.2. A Table</b></p><table summary="A Table" border="1" width="4in"><colgroup><col/><col align="right"/><col/></colgroup><tbody><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td rowspan="2">2</td><td>3</td></tr><tr><td>1</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr></tbody></table></div><div class="table"><p><a name="id2790118"/><b>Table 1.3. A Table</b></p><table summary="A Table" border="1" width="7in"><colgroup><col/><col align="right"/><col/></colgroup><tbody><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td rowspan="2">2</td><td>3</td></tr><tr><td>1</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr></tbody></table></div><div class="table"><p><a name="id2792751"/><b>Table 1.4. A Table</b></p><table summary="A Table" border="1" width="85%"><colgroup><col/><col align="right"/><col/></colgroup><tbody><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td rowspan="2">2</td><td>3</td></tr><tr><td>1</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>3</td></tr><tr><td>1</td><td>2</td><td>3</td></tr><tr><td colspan="2">2</td></tr><tr><td>1</td><td>2</td><td>3</td></tr></tbody></table></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/test.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/test.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/test.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Article Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/><meta name="keywords" content="keyword1, keyword2, keyword3"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h2 class="title"><a name="id2602135"/>Article Title</h2></div><hr/></div><pre class="screen">This
+  is                  With a line-annotation
+    a 
+     screen<a name="foo"/><img src="../images/callouts/1.png" alt="1" border="0"/>
+     This
+    is                With a line-annotation
+  a 
+screen
+This
+  is                  With a line-annotation
+    a 
+     screen</pre><p>What about <a href="#foo" title=""><img src="../images/callouts/1.png" alt="1" border="0"/></a>?</p><div class="mediaobjectco"><img src="http://maps.example.com/EARTH?USA?MA?AMHERST"/></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/verbtest.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/verbtest.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xhtml/verbtest.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<html><head><title>Book Title</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book"><div class="titlepage"><div><h1 class="title"><a name="book"/>Book Title</h1></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1 <a href="#ch1">test</a></dt></dl></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="ch1"/>Chapter 1. test</h2></div></div><p>How many ° can you ©.</p><p>And what about <a href="#ch1" title="Chapter 1. test">Chapter 1. test</a>.</p><p>And what about ???.</p><pre class="programlisting">
+This is a program
+listing.
+</pre></div></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apa.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apa.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apa.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,737 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>A. Document Templates</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs15.html" title="Resources"><link rel="next" href="apas02.html" title="Template 2: Applet Manual For GNOME 1.x"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">A. Document Templates</th></tr><tr><td width="20%" align="left"><a href="indexs15.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="apas02.html">Next</a></td></tr></table><hr></div><div class="appendix"><h2 class="title" style="clear: both"><a name="templates"></a>A. Document Templates</h2><div class="sect1"><a name="template1"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="template1"></a>Template 1: Application Manual</h2></div></div><p>
+        The following template should be used for all application
+        manuals.  You can always get the latest copy of this
+        template from  <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Documentation Templates</a>.
+        <pre class="programlisting">
+
+
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+        &lt;!-- if not using PNG graphic, replace reference above with
+             .....PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
+         --&gt;
+&lt;!ENTITY version "1.0.53"&gt;
+        &lt;!-- replace version above with actual application version number--&gt;
+	&lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+]&gt;
+
+
+&lt;!-- This is a GNOME documentation template, designed by the GNOME
+  Documentation Project Team. Please use it for writing GNOME
+  documentation, making obvious changes. In particular, all the words
+  written in UPPERCASE (with the exception of GNOME) should be
+  replaced. As for "legalnotice", please leave the reference
+  unchanged.
+
+  Remember that this is a guide, rather than a perfect model to follow
+  slavishly. Make your manual logical and readable.  And don't forget
+  to remove these comments in your final documentation!  ;-)
+  --&gt;
+
+&lt;!-- =============Document Header ============================= --&gt;
+
+&lt;article id="index"&gt; &lt;!-- please do not change the id --&gt;
+
+  &lt;artheader&gt;
+    &lt;title&gt;MY-GNOME-APP&lt;/title&gt;
+    &lt;copyright&gt;
+      &lt;year&gt;2000&lt;/year&gt;
+      &lt;holder&gt;ME-THE-AUTHOR&lt;/holder&gt;
+    &lt;/copyright&gt;
+
+  &lt;!-- translators: uncomment this:
+
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;ME-THE-TRANSLATOR (Latin translation)&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+   --&gt;
+
+  &lt;!-- do not put authorname in the header except in copyright - use
+  section "authors" below --&gt;
+
+    &lt;legalnotice&gt;
+      &lt;para&gt;
+        Permission is granted to copy, distribute and/or modify this
+        document under the terms of the &lt;citetitle&gt;GNU Free
+        Documentation License&lt;/citetitle&gt;, Version 1.1 or any later
+        version published by the Free Software Foundation with no
+        Invariant Sections, no Front-Cover Texts, and no Back-Cover
+        Texts. You may obtain a copy of the &lt;citetitle&gt;GNU Free
+        Documentation License&lt;/citetitle&gt; from the Free Software
+        Foundation by visiting &lt;ulink type="http"
+        url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing
+        to: Free Software Foundation, Inc., 59 Temple Place - Suite
+        330, Boston, MA 02111-1307, USA.
+      &lt;/para&gt;
+      &lt;para&gt;
+        Many of the names used by companies to distinguish their
+        products and services are claimed as trademarks. Where those
+        names appear in any GNOME documentation, and those trademarks
+        are made aware to the members of the GNOME Documentation
+        Project, the names have been printed in caps or initial caps.
+      &lt;/para&gt;
+    &lt;/legalnotice&gt;
+
+  &lt;!-- this is the version of manual, not application --&gt; 
+    &lt;releaseinfo&gt;
+       This is version 1.0 of MY-GNOME-APP manual.
+    &lt;/releaseinfo&gt;
+
+  &lt;/artheader&gt;
+
+ &lt;!-- ============= Document Body ============================= --&gt;
+
+ &lt;!-- ============= Introduction ============================== --&gt;
+  &lt;sect1 id="intro"&gt;
+    &lt;title&gt;Introduction&lt;/title&gt;
+
+    &lt;para&gt;
+     &lt;application&gt;MY-GNOME-APP&lt;/application&gt; is an application which
+     proves mathematical theorems.  It has all the basic features
+     expected from a mathematical theorem prover, as well as a number
+     of advanced ones, such as proof by confusion.  In fact, many of
+     the proofs produced by &lt;application&gt;MY-GNOME-APP&lt;/application&gt;
+     are so complex that they are capable of proving almost anything
+     with a virtually null likelihood of being disproven.  It also has
+     the very popular predecessor of proof by confusion, proof by
+     dialog, first implemented by Plato.
+    &lt;/para&gt;
+    &lt;para&gt;
+      It also allows you to save and print theorem proofs and to add
+      comments to the proofs it produces.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+      To run &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, select
+      &lt;menuchoice&gt;
+	&lt;guisubmenu&gt;SUBMENU&lt;/guisubmenu&gt;
+	&lt;guimenuitem&gt;MY-GNOME-APP&lt;/guimenuitem&gt;
+      &lt;/menuchoice&gt;
+      from the &lt;guimenu&gt;Main Menu&lt;/guimenu&gt;, or type
+      &lt;command&gt;MYGNOMEAPP&lt;/command&gt; on the command line.
+  &lt;/para&gt;
+
+    &lt;para&gt;
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt; is included in the
+      &lt;filename&gt;GNOME-PACKAGE&lt;/filename&gt; package, which is part of the
+      GNOME desktop environment. This document describes version
+      &amp;version; of &lt;application&gt;MY-GNOME-APP&lt;/application&gt;.
+    &lt;/para&gt;
+  &lt;/sect1&gt;
+
+
+ &lt;!-- ================ Usage ================================ --&gt;
+ &lt;!-- This section should describe basic usage of the application. --&gt;
+
+  &lt;sect1 id="usage"&gt;
+    &lt;title&gt;Using MY-GNOME-APP&lt;/title&gt;
+    &lt;para&gt;
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt; can be used to produce a
+      perfect proof of &lt;emphasis&gt;any&lt;/emphasis&gt; mathematical theorem
+      (provided, of course, that this theorem is correct), thus
+      providing for new users an easy-to-use graphical interface to
+      modern mathematics. This section describes basic usage of
+      &lt;application&gt;MY-GNOME-APP&lt;/application&gt;.
+    &lt;/para&gt;
+
+    &lt;!-- ========= Basic Usage =========================== --&gt;
+    &lt;sect2 id="mainwin"&gt;
+      &lt;title&gt;Basic usage&lt;/title&gt;
+      &lt;para&gt;
+        Starting &lt;application&gt;MY-GNOME-APP&lt;/application&gt; opens the
+        &lt;interface&gt;Main window&lt;/interface&gt;, shown in &lt;xref
+        linkend="mainwindow-fig"&gt;. The window is at first empty.
+
+        &lt;!-- ==== Figure ==== --&gt;
+        &lt;figure id="mainwindow-fig"&gt;
+	  &lt;title&gt;MY-GNOME-APP Main Window&lt;/title&gt;
+	  &lt;screenshot&gt;
+	    &lt;screeninfo&gt;MY-GNOME-APP Main Window&lt;/screeninfo&gt;
+	    &lt;graphic fileref="SCREENSHOT" format="png" srccredit="ME"&gt;
+            &lt;/graphic&gt;
+	  &lt;/screenshot&gt;
+	&lt;/figure&gt;
+    &lt;!-- ==== End of Figure ==== --&gt;
+      &lt;/para&gt; 
+
+
+ &lt;!-- For this app, one could put "proving" or "edit" (probably even
+      both of them) as sect2's seperate from the main window
+      section. Since they were both so closely involved with the main
+      window, I decided to have them as sect3's isntead. Judgement
+      call. --&gt;
+
+      &lt;sect3 id="proving"&gt;
+	&lt;title&gt;Proving a Theorem&lt;/title&gt;
+	&lt;para&gt;
+          To get a proof of a theorem, select
+          &lt;menuchoice&gt;
+	    &lt;guisubmenu&gt;File&lt;/guisubmenu&gt;
+	    &lt;guimenuitem&gt;New&lt;/guimenuitem&gt;
+	  &lt;/menuchoice&gt;,
+            which will
+	    bring up the &lt;interface&gt;New Proof&lt;/interface&gt; dialog box.
+	    Enter the statement of the theorem in the
+	    &lt;guilabel&gt;Theorem statement&lt;/guilabel&gt; field, select your
+	    desired proof type from the drop-down menu, and and press
+	    &lt;guibutton&gt;Prove!&lt;/guibutton&gt;.
+        &lt;/para&gt;
+	&lt;para&gt;
+          If &lt;application&gt;MY-GNOME-APP&lt;/application&gt; cannot prove the
+          theorem by the method you have chosen, or if you have not
+          selected a proof type at all,
+          &lt;application&gt;MY-GNOME-APP&lt;/application&gt; will attempt to
+          choose the one that it thinks is most conclusive.  In order,
+          it will attempt to prove the theorem with the following techniques: 
+     
+                &lt;variablelist&gt;
+	    &lt;varlistentry&gt;
+	      &lt;term&gt;Deduction&lt;/term&gt;
+	      &lt;listitem&gt;
+		&lt;para&gt;
+                  This is a proof method that is generally accepted
+                  for full credit by Logic professors.
+                &lt;/para&gt;
+	      &lt;/listitem&gt;
+	    &lt;/varlistentry&gt;
+	    &lt;varlistentry&gt;
+            &lt;term&gt;Induction&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                This logical style will also earn you full credit on
+                your homework.
+             &lt;/para&gt;
+	    &lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+	    &lt;varlistentry&gt;
+	      &lt;term&gt;Dialog&lt;/term&gt;
+	      &lt;listitem&gt;
+	      &lt;para&gt;
+                This logical method is best for Philosophy classes,
+                and will probably only merit partial credit on Logic
+                or Mathematics homework.
+              &lt;/para&gt;
+	    &lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+	      &lt;term&gt;Confusion&lt;/term&gt;
+	      &lt;listitem&gt;
+	      &lt;para&gt;
+                Suitable only for political debates, battles of wits
+                against the unarmed, and Philosophy classes focusing
+                on the works of Kant. Use with caution.
+              &lt;/para&gt;
+	      &lt;/listitem&gt;
+	    &lt;/varlistentry&gt;
+	  &lt;/variablelist&gt;
+          &lt;/para&gt;
+
+   &lt;!-- You might want to include a note, warning, or tip, e.g. --&gt;
+	
+	&lt;warning&gt;
+	  &lt;title&gt;Proving Incorrect Theorms&lt;/title&gt;
+	  &lt;para&gt;
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; cannot prove
+            incorrect theorems. If the theorem you have entered is not
+            demonstrably true, you will get a message to that effect
+            in the main window.  To disprove a theorem, ask
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; to prove its
+            logical inverse.
+          &lt;/para&gt;
+	&lt;/warning&gt;
+      &lt;/sect3&gt;
+      &lt;sect3 id="editing"&gt;
+	&lt;title&gt;Editing Proofs&lt;/title&gt;
+	&lt;para&gt;
+          Once you have proven the theorem, it will be displayed in
+          the &lt;interface&gt;main window&lt;/interface&gt;.  There, you can read
+          it over, choose text styles for different portions of it,
+          and make comments on it. This section will guide you through
+          that process.
+        &lt;/para&gt;
+	&lt;para&gt;
+          To alter text styles, first select the statement you wish to
+          change by clicking on it once.  You can select several
+          statements by Then, choose the style you want to apply from
+          the &lt;guisubmenu&gt;Style&lt;/guisubmenu&gt; submenu of the
+          &lt;guimenu&gt;Edit&lt;/guimenu&gt; menu.
+          &lt;application&gt;MY-GNOME-APP&lt;/application&gt; will convert the
+          text to that style.
+        &lt;/para&gt;
+        &lt;para&gt;
+          You can also enter comments on a statement by selecting that
+          statement, and then beginning to type.  Comments will appear
+          after the statement you have selected.
+        &lt;/para&gt;
+
+	&lt;note&gt;
+	  &lt;title&gt;Altering The Proofs Themselves&lt;/title&gt;
+          &lt;para&gt;
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; does not allow you
+            to alter a proof it has produced itself.  You can, save
+            your proof as a plain text file (using the
+            &lt;guimenuitem&gt;Save as...&lt;/guimenuitem&gt; menu), and alter it
+            that way.  Be aware, however, that
+            &lt;application&gt;MY-GNOME-APP&lt;/application&gt; uses its own file
+            format for saved proofs, and cannot re-open a file unless
+            it is in the .mga format.
+          &lt;/para&gt;
+	&lt;/note&gt;
+      &lt;/sect3&gt;
+
+
+  &lt;!-- If there are other functions performed from the main window,
+       they belong here.   --&gt;
+
+    &lt;/sect2&gt;
+ 
+    &lt;!-- ========================================================= 
+      Additional Sect2's should describe additional windows, such as
+      larger dialog boxes, or functionality that differs significantly
+      from the most immediate functions of the application. Make the
+      structure logical.
+      =============================================================  --&gt;
+
+
+    &lt;sect2 id="toolbar"&gt;
+      &lt;title&gt;Toolbar&lt;/title&gt;
+      &lt;para&gt;
+        The toolbar (shown in &lt;xref linkend="figure-usage-toolbar"&gt;)
+        provides access to several commonly used routines.
+        &lt;figure id="figure-usage-toolbar"&gt;
+	  &lt;title&gt;MY-GNOME-APP Toolbar&lt;/title&gt;
+	  &lt;screenshot&gt;
+	    &lt;screeninfo&gt;MY-GNOME-APP Toolbar&lt;/screeninfo&gt;
+	    &lt;graphic fileref="usage-toolbar.png" format="png"&gt;&lt;/graphic&gt;
+	  &lt;/screenshot&gt;
+	&lt;/figure&gt;
+        &lt;variablelist&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;New&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                Brings up the &lt;interface&gt;New Theorem&lt;/interface&gt;
+                dialog.
+              &lt;/para&gt;
+	    &lt;/listitem&gt;
+	  &lt;/varlistentry&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;Open&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+                 Open an exisiting theorem you want to prove, or a
+                 completed proof you wish to print or format.
+               &lt;/para&gt;
+	    &lt;/listitem&gt;
+	  &lt;/varlistentry&gt;
+	  &lt;varlistentry&gt;
+	    &lt;term&gt;Save&lt;/term&gt;
+	    &lt;listitem&gt;
+	      &lt;para&gt;
+	         Save the current theorem permanently in a
+	         file.
+               &lt;/para&gt;
+	    &lt;/listitem&gt; 
+	  &lt;/varlistentry&gt;
+	&lt;/variablelist&gt;
+       &lt;/para&gt;
+    &lt;/sect2&gt;
+    &lt;!-- ========= Menus =========================== --&gt; 
+
+    &lt;sect2 id="menubar"&gt;
+
+       &lt;!-- Describing the menubar ensures comprehensive feature
+       coverage. Nest itemizedlists inside variablelists so that each
+       menu is easily located by indexing software. Proper indentation
+       makes it easier! --&gt;
+
+      &lt;title&gt;Menus&lt;/title&gt;
+      &lt;para&gt;
+	The menu bar, located at the top of the &lt;interface&gt;Main
+	Window&lt;/interface&gt;, contains the following menus:
+       &lt;/para&gt;
+      &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;File&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	       This menu contains:
+	       &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycap&gt;F3&lt;/keycap&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Open&lt;/guimenuitem&gt;
+		     &lt;/menuchoice&gt;
+	             &amp;mdash; This opens a file which is saved on your computer.
+	           &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;S&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Save&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This saves your file.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;W&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Close&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This closes your file.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;Q&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Exit&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This quits the application.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	  &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Edit&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	   This menu contains:
+	   &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;X&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Cut&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This removes any text or data which is selected and
+	            places it in the buffer.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;C&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Copy&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This copies any text or data which is selected into
+	            the buffer.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	           &lt;menuchoice&gt;
+		      &lt;shortcut&gt;
+			&lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;V&lt;/keycap&gt;&lt;/keycombo&gt;
+		      &lt;/shortcut&gt;
+		      &lt;guimenuitem&gt;Paste&lt;/guimenuitem&gt;
+		    &lt;/menuchoice&gt;
+	            &amp;mdash; This pastes any text or data which is copied into
+	            the buffer.
+	        &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;guimenuitem&gt;COMMAND1&amp;hellip;&lt;/guimenuitem&gt;
+	             &amp;mdash; This opens the &lt;interface&gt;COMMAND1&lt;/interface&gt;
+	             dialog, which is used to ....
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;COMMAND2&lt;/guimenuitem&gt;
+	            &amp;mdash; This ....
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	    &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Settings&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	   This menu contains:
+	   &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	      &lt;guimenuitem&gt;Preferences&amp;hellip;&lt;/guimenuitem&gt;
+	       &amp;mdash; This opens the &lt;link
+	       linkend="prefs"&gt;&lt;interface&gt;Preferences
+	       Dialog&lt;/interface&gt;&lt;/link&gt;, which allows you to configure
+	       many settings.
+	     &lt;/para&gt;
+		&lt;/listitem&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;COMMAND3&lt;/guimenuitem&gt; &amp;mdash;
+    	            This command does something.
+    	    	   &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+	    &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	
+	&lt;varlistentry&gt;
+	  &lt;term&gt;&lt;guimenu&gt;Help&lt;/guimenu&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+	      This menu contains:
+	       &lt;itemizedlist&gt;
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	             &lt;guimenuitem&gt;Manual&lt;/guimenuitem&gt; &amp;mdash; This
+    	              opens the &lt;application&gt;GNOME Help
+    	              Browser&lt;/application&gt; and displays this manual.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+		
+		&lt;listitem&gt;
+		  &lt;para&gt;
+	            &lt;guimenuitem&gt;About&lt;/guimenuitem&gt; &amp;mdash; This
+    	            opens the &lt;interface&gt;About&lt;/interface&gt; dialog
+    	            which shows basic information about
+    	            &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, such as
+    	            the author's name, the application version number,
+    	            and the URL for the application's Web page if one
+    	            exists.
+	          &lt;/para&gt;
+		&lt;/listitem&gt;
+	      &lt;/itemizedlist&gt;
+            &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/sect2&gt;
+  &lt;/sect1&gt;
+
+
+
+ &lt;!-- ============= Customization ============================= --&gt;
+
+ &lt;sect1 id="prefs"&gt;
+  &lt;title&gt;Customization&lt;/title&gt;
+  &lt;para&gt;
+   To change the application settings, select
+   &lt;menuchoice&gt;
+    &lt;guimenu&gt;Settings&lt;/guimenu&gt;
+    &lt;guimenuitem&gt;Preferences...&lt;/guimenuitem&gt;
+   &lt;/menuchoice&gt;.  This opens the
+   &lt;interface&gt;Preferences&lt;/interface&gt; dialog, shown in &lt;xref
+   linkend="preferences-fig"&gt;.
+  &lt;/para&gt;
+
+  &lt;figure id="preferences-fig"&gt;
+   &lt;title&gt;Preferences Dialog&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;Preferences Dialog&lt;/screeninfo&gt;
+    &lt;graphic fileref="SCREENSHOT" format="png"
+     srccredit="ME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+  &lt;/figure&gt;
+
+  &lt;para&gt;
+   The properties in the &lt;guilabel&gt;PREFSTABNAME&lt;/guilabel&gt; tab are:
+   
+   &lt;!--many people use itemizedlists in cases like this. Variablelists
+   are more appropriate --&gt;
+
+      &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt; &lt;guilabel&gt;Default Text Style&lt;/guilabel&gt;&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+              Select the default text style for statements in your
+              proof.  You can still change the style for individual
+              proofs or sections of a proof at a later date.
+            &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     The properties in the &lt;guilabel&gt;SECONDTABNAME&lt;/guilabel&gt; tab are:
+       &lt;variablelist&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+	&lt;varlistentry&gt;
+	  &lt;term&gt;(Configuration Item Label)&lt;/term&gt;
+	  &lt;listitem&gt;
+	    &lt;para&gt;
+             (Description of Configuration)
+             &lt;/para&gt;
+	  &lt;/listitem&gt;
+	&lt;/varlistentry&gt;
+      &lt;/variablelist&gt;
+    &lt;/para&gt;
+
+  &lt;para&gt;
+    After you have made all the changes you want, click on
+    &lt;guibutton&gt;OK&lt;/guibutton&gt; to apply the changes and close the
+    &lt;interface&gt;Properties&lt;/interface&gt; dialog. To cancel the changes
+    and return to previous values, click the
+    &lt;guibutton&gt;Close&lt;/guibutton&gt; button.
+  &lt;/para&gt;
+
+ &lt;/sect1&gt;
+
+
+ &lt;!-- ============= Various Sections ============================= --&gt;
+
+ &lt;!-- Here you should add, if necessary, several more sect1's,
+ describing other windows (besides the main one), file formats,
+ preferences dialogs,  etc. as appropriate. Try not to make any of
+ these sections too long. --&gt;
+
+
+ &lt;!-- ============= Bugs ================================== --&gt;
+ &lt;!-- This section should describe known bugs and limitations of
+      the program if there are any - please be frank and list all
+      problems you know of. --&gt;
+ &lt;sect1 id="bugs"&gt;
+  &lt;title&gt;Known Bugs and Limitations&lt;/title&gt;
+  &lt;para&gt;
+   This application has no known bugs.
+  &lt;/para&gt;
+ &lt;/sect1&gt;
+
+
+&lt;!-- ============= Authors ================================ --&gt;
+
+ &lt;sect1 id="authors"&gt;
+  &lt;title&gt;Authors&lt;/title&gt;
+  &lt;para&gt;
+   &lt;application&gt;MY-GNOME-APP&lt;/application&gt; was written by GNOME-HACKER
+   (&lt;email&gt;hacker at gnome.org&lt;/email&gt;). To find more information about
+   &lt;application&gt;MY-GNOME-APP&lt;/application&gt;, please visit the &lt;ulink
+   url="http://www.my-gnome-app.org" type="http"&gt;MY-GNOME-APP Web
+   page&lt;/ulink&gt;.  Please send all comments, suggestions, and bug
+   reports to the &lt;ulink url="http://bugs.gnome.org" type="http"&gt;GNOME
+   bug tracking database&lt;/ulink&gt;. (Instructions for submitting bug
+   reports can be found &lt;ulink
+   url="http://bugs.gnome.org/Reporting.html" type="http"&gt;
+   on-line&lt;/ulink&gt;.)  You can also use &lt;application&gt;Bug Report
+   Tool&lt;/application&gt; (&lt;command&gt;bug-buddy&lt;/command&gt;), available in the
+   &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of &lt;guimenu&gt;Main
+   Menu&lt;/guimenu&gt;, for submitting bug reports.
+  &lt;/para&gt;
+
+  &lt;para&gt;
+   This manual was written by ME
+   (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all comments and
+   suggestions regarding this manual to the &lt;ulink type="http"
+   url="http://developer.gnome.org/projects/gdp"&gt;GNOME Documentation 
+   Project&lt;/ulink&gt; by sending an email to 
+   &lt;email&gt;docs at gnome.org&lt;/email&gt;. You can also add your comments online 
+   by using the &lt;ulink type="http" 
+   url="http://www.gnome.org/gdp/doctable/"&gt;GNOME Documentation Status
+   Table&lt;/ulink&gt;.
+  &lt;/para&gt;
+
+  &lt;!-- For translations: uncomment this:
+
+  &lt;para&gt;
+   Latin translation was done by ME
+   (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all  comments  and
+   suggestions regarding this translation to SOMEWHERE.
+  &lt;/para&gt;
+
+  --&gt;
+
+ &lt;/sect1&gt;
+
+
+ &lt;!-- ============= Application License ============================= --&gt;
+
+ &lt;sect1 id="license"&gt;
+  &lt;title&gt;License&lt;/title&gt;
+  &lt;para&gt;
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the &lt;citetitle&gt;GNU General Public
+   License&lt;/citetitle&gt; as published by the Free Software Foundation;
+   either version 2 of the License, or (at your option) any later
+   version.
+  &lt;/para&gt;
+  &lt;para&gt;
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; for more details.
+  &lt;/para&gt;
+  &lt;para&gt;
+   A copy of the &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; is
+   included as an appendix to the &lt;citetitle&gt;GNOME Users
+   Guide&lt;/citetitle&gt;.  You may also obtain a copy of the
+   &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; from the Free
+   Software Foundation by visiting &lt;ulink type="http"
+   url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to
+   &lt;address&gt;
+    Free Software Foundation, Inc.
+    &lt;street&gt;59 Temple Place&lt;/street&gt; - Suite 330
+    &lt;city&gt;Boston&lt;/city&gt;, &lt;state&gt;MA&lt;/state&gt; &lt;postcode&gt;02111-1307&lt;/postcode&gt;
+    &lt;country&gt;USA&lt;/country&gt;
+   &lt;/address&gt;
+  &lt;/para&gt;
+ &lt;/sect1&gt;
+&lt;/article&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs15.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="apas02.html">Next</a></td></tr><tr><td width="40%" align="left">Resources </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> Template 2: Applet Manual For GNOME 1.x</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apas02.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apas02.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apas02.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,323 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Template 2: Applet Manual For GNOME 1.x</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="apa.html" title="A. Document Templates"><link rel="previous" href="apa.html" title="A. Document Templates"><link rel="next" href="apas03.html" title="Template 2: Applet Manual For GNOME 2.x"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Template 2: Applet Manual For GNOME 1.x</th></tr><tr><td width="20%" align="left"><a href="apa.html">Prev</a> </td><th width="60%" align="center">A. Document Templates</th><td width="20%" align="right"> <a href="apas03.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="template2-1x"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="template2-1x"></a>Template 2: Applet Manual For GNOME 1.x</h2></div></div><p>
+        The following templates should be used for all applet
+        manuals in GNOME 1.x releases.  You can always get the latest
+        copy of these templates from  <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Documentation Templates</a>.  Note that the template
+        consists of two files; the first file calls the second as an
+        entity. You should name the first file
+        <tt><i><tt>appletname</tt></i>-applet.sgml</tt>
+        and the second file should be named
+        <tt><i><tt>appletname</tt></i>.sgml</tt>,
+        where
+        <tt><i><tt>appletname</tt></i></tt> is
+        the name of the applet.
+        <pre class="programlisting">
+
+
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+ &lt;!entity APPLETNAME.sgml SYSTEM "applet_template_1.sgml"&gt;
+        &lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+]&gt;
+
+&lt;!-- This is a GNOME documentation template, designed by the GNOME
+  Documentation Project Team. Please use it for writing GNOME
+  documentation, making obvious changes. In particular, all the words
+  written in UPPERCASE (with the exception of GNOME) should be
+  replaced. As for "legalnotice", please leave the reference
+  unchanged,make sure to add/remove trademarks to the list as
+  appropriate for your document.
+
+  Please don't forget to remove these comments in your final documentation,
+  thanks ;-).
+--&gt;
+
+&lt;article id="index"&gt; &lt;!-- please do not change the id --&gt;
+
+ &lt;!-- ============= Document Header ============================= --&gt;
+ &lt;artheader&gt; 
+  &lt;title&gt;APPLETNAME Applet&lt;/title&gt;
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;YOURFULLNAME&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+  &lt;!-- translators: uncomment this:
+
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;ME-THE-TRANSLATOR (Latin translation)&lt;/holder&gt;
+  &lt;/copyright&gt;
+
+   --&gt;
+
+  &lt;!-- do not put authorname in the header except in copyright - use
+  section "authors" below --&gt;
+
+  &lt;legalnotice&gt;
+   &lt;para&gt;
+    Permission is granted to copy, distribute and/or modify this
+    document under the terms of the &lt;citetitle&gt;GNU Free Documentation
+    License&lt;/citetitle&gt;, Version 1.1 or any later version published
+    by the Free Software Foundation with no Invariant Sections, no
+    Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy
+    of the &lt;citetitle&gt;GNU Free Documentation License&lt;/citetitle&gt; from
+    the Free Software Foundation by visiting &lt;ulink type="http"
+    url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to:
+    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Many of the names used by companies to distinguish their products and
+    services are claimed as trademarks. Where those names appear in any
+    GNOME documentation, and those trademarks are made aware to the members
+    of the GNOME Documentation Project, the names have been printed in caps
+    or initial caps.
+   &lt;/para&gt;
+  &lt;/legalnotice&gt;
+
+  &lt;releaseinfo&gt;
+   This is version XXX of the APPLETNAME applet manual.
+  &lt;/releaseinfo&gt;
+ &lt;/artheader&gt;
+
+ &lt;!-- ============= Document Body ============================= --&gt;
+
+ &amp;APPLETNAME.sgml;
+
+&lt;/article&gt;
+
+
+
+
+
+</pre>
+        <pre class="programlisting">
+
+        &lt;!--  Template Version: 1.0.1  (do not remove this line) --&gt;
+
+ &lt;sect1 id="APPLET"&gt;
+  &lt;title&gt;APPLET Applet&lt;/title&gt;
+
+  &lt;para&gt;
+   &lt;application&gt;APPLET&lt;/application&gt; applet, shown in &lt;xref
+   linkend="APPLETapplet-fig"&gt;, allows you to &amp;hellip;.  To add this
+   applet to a &lt;interface&gt;Panel&lt;/interface&gt;, 
+   right-click on the &lt;interface&gt;Panel&lt;/interface&gt; and choose
+   &lt;menuchoice&gt;
+    &lt;guimenu&gt;Panel&lt;/guimenu&gt;
+    &lt;guisubmenu&gt;Add to panel&lt;/guisubmenu&gt;
+    &lt;guisubmenu&gt;Applet&lt;/guisubmenu&gt;
+    &lt;guisubmenu&gt;SECTION&lt;/guisubmenu&gt;
+    &lt;guimenuitem&gt;APPLET&lt;/guimenuitem&gt;
+   &lt;/menuchoice&gt;.
+  &lt;/para&gt;
+
+  &lt;figure id="APPLETapplet-fig"&gt;
+   &lt;title&gt;APPLET Applet&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;APPLET Applet&lt;/screeninfo&gt;
+    &lt;graphic format="png" fileref="APPLET_applet" 
+    srccredit="YOURNAME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+  &lt;/figure&gt;
+
+  &lt;!-- ============= Usage  ================================ --&gt;
+  &lt;sect2 id="APPLET-usage"&gt;
+   &lt;title&gt;Usage&lt;/title&gt;
+   &lt;para&gt;
+    (Place a short description of how to use the applet here.)
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    Right-clicking on the applet brings up a menu containing the
+    following items:
+    &lt;itemizedlist&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;Properties&amp;hellip;&lt;/guimenuitem&gt; &amp;mdash;
+       opens the &lt;link linkend="APPLET-prefs"&gt;
+       &lt;guilabel&gt;Properties&lt;/guilabel&gt;&lt;/link&gt; dialog.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;Help&lt;/guimenuitem&gt; &amp;mdash;
+       displays this document.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;guimenuitem&gt;About&amp;hellip;&lt;/guimenuitem&gt; &amp;mdash;
+       shows basic information about &lt;application&gt;APPLET
+       Applet&lt;/application&gt;, including the applet's version and the
+       author's name.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+    &lt;/itemizedlist&gt;
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Customization ============================= --&gt;
+  &lt;sect2 id="APPLET-prefs"&gt;
+    &lt;title&gt;Customization&lt;/title&gt;
+    &lt;para&gt;
+      You can customize &lt;application&gt;APPLET&lt;/application&gt;
+      applet by right-clicking on it and choosing
+      &lt;guimenuitem&gt;Properties&amp;hellip;&lt;/guimenuitem&gt;. This will open the
+      &lt;interface&gt;Properties&lt;/interface&gt; dialog(shown in &lt;xref
+      linkend="APPLET-settings-fig"&gt;), which allows you to
+      change various settings.
+    &lt;/para&gt;
+
+    &lt;figure id="APPLET-settings-fig"&gt;
+     &lt;title&gt;Properties dialog&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Properties dialog&lt;/screeninfo&gt;
+      &lt;graphic format="png" fileref="APPLET_settings"
+      srccredit="YOURNAME"&gt;
+      &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+
+    &lt;para&gt;
+     The properties are:
+     &lt;itemizedlist&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; If this button is
+        checked&amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; Selecting this
+        button&amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+
+      &lt;listitem&gt;
+       &lt;para&gt;
+        (Configuration Item Label) &amp;mdash; Enter the name of
+        &amp;hellip;(description)
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt; 
+      After you have made all the changes you want, click on
+      &lt;guibutton&gt;OK&lt;/guibutton&gt; to apply the changes and close the
+      &lt;interface&gt;Properties&lt;/interface&gt; dialog. To cancel the changes
+      and return to previous values, click the
+      &lt;guibutton&gt;Close&lt;/guibutton&gt; button.
+    &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Bugs ================================== --&gt;
+  &lt;!-- This section should describe known bugs and limitations of
+       the program if there are any - please be frank and list all
+       problems you know of --&gt;
+  &lt;sect2 id="bugs"&gt;
+   &lt;title&gt;Known Bugs and Limitations&lt;/title&gt;
+   &lt;para&gt;
+    This applet has no known bugs.
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Authors ================================ --&gt;
+
+  &lt;sect2 id="authors"&gt;
+   &lt;title&gt;Authors&lt;/title&gt;
+   &lt;para&gt;
+    &lt;application&gt;APPLET&lt;/application&gt; was written by GNOME-HACKER
+    (&lt;email&gt;hacker at gnome.org&lt;/email&gt;).  Please send all comments,
+    suggestions, and bug 
+    reports to the &lt;ulink url="http://bugs.gnome.org" type="http"&gt;GNOME
+    bug tracking database&lt;/ulink&gt;. (Instructions for submitting bug
+    reports can be found &lt;ulink
+    url="http://bugs.gnome.org/Reporting.html" type="http"&gt;
+    on-line&lt;/ulink&gt;.  You can also use &lt;application&gt;Bug Report
+    Tool&lt;/application&gt; (&lt;command&gt;bug-buddy&lt;/command&gt;), available in the
+    &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of &lt;guimenu&gt;Main
+    Menu&lt;/guimenu&gt;, for submitting bug reports.
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    This manual was written by ME
+    (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all comments and
+    suggestions regarding this manual to the &lt;ulink type="http"
+    url="http://developer.gnome.org/projects/gdp"&gt;GNOME Documentation
+    Project&lt;/ulink&gt;  by sending an email to
+    &lt;email&gt;docs at gnome.org&lt;/email&gt;. You can also submit comments online
+    by using the &lt;ulink type="http"
+    url="http://www.gnome.org/gdp/doctable/"&gt;GNOME Documentation
+    Status Table&lt;/ulink&gt;.
+   &lt;/para&gt;
+
+   &lt;!-- For translations: uncomment this:
+
+   &lt;para&gt;
+    Latin translation was done by ME
+    (&lt;email&gt;MYNAME at MYADDRESS&lt;/email&gt;). Please send all  comments  and
+    suggestions regarding this translation to SOMEWHERE.
+   &lt;/para&gt;
+
+   --&gt;
+
+  &lt;/sect2&gt;
+
+
+  &lt;!-- ============= Application License ============================= --&gt;
+
+  &lt;sect2 id="license"&gt;
+   &lt;title&gt;License&lt;/title&gt;
+   &lt;para&gt;
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the &lt;citetitle&gt;GNU General Public
+    License&lt;/citetitle&gt; as published by the Free Software Foundation;
+    either version 2 of the License, or (at your option) any later
+    version.
+   &lt;/para&gt;
+   &lt;para&gt;
+    This program is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; for more details.
+   &lt;/para&gt;
+   &lt;para&gt;
+    A copy of the &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; is
+    included as an appendix to the &lt;citetitle&gt;GNOME Users
+    Guide&lt;/citetitle&gt;.  You may also obtain a copy of the
+    &lt;citetitle&gt;GNU General Public License&lt;/citetitle&gt; from the Free
+    Software Foundation by visiting &lt;ulink type="http"
+    url="http://www.fsf.org"&gt;their Web site&lt;/ulink&gt; or by writing to
+    &lt;address&gt;
+     Free Software Foundation, Inc.
+     &lt;street&gt;59 Temple Place&lt;/street&gt; - Suite 330
+     &lt;city&gt;Boston&lt;/city&gt;, &lt;state&gt;MA&lt;/state&gt; &lt;postcode&gt;02111-1307&lt;/postcode&gt;
+     &lt;country&gt;USA&lt;/country&gt;
+    &lt;/address&gt;
+   &lt;/para&gt;
+  &lt;/sect2&gt;
+
+ &lt;/sect1&gt;
+
+
+
+
+
+
+
+
+</pre>
+      </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="apa.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="apas03.html">Next</a></td></tr><tr><td width="40%" align="left">A. Document Templates </td><td width="20%" align="center"><a href="apa.html">Up</a></td><td width="40%" align="right"> Template 2: Applet Manual For GNOME 2.x</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apas03.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apas03.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/apas03.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,625 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Template 2: Applet Manual For GNOME 2.x</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="apa.html" title="A. Document Templates"><link rel="previous" href="apas02.html" title="Template 2: Applet Manual For GNOME 1.x"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Template 2: Applet Manual For GNOME 2.x</th></tr><tr><td width="20%" align="left"><a href="apas02.html">Prev</a> </td><th width="60%" align="center">A. Document Templates</th><td width="20%" align="right"> </td></tr></table><hr></div><div class="sect1"><a name="template2-2x"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="template2-2x"></a>Template 2: Applet Manual For GNOME 2.x</h2></div></div><p>
+        The following templates should be used for all applet
+        manuals in GNOME 2.x releases.  You can always get the latest
+        copy of these templates from  <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Documentation Templates</a>.
+      </p><p>
+        Note that this template consists of two files.  The first file
+        is an introductory chapter. You should not modify this
+        chapter. The second file is the actual applet document, which
+        you should modify to describe the applet you are documenting.
+        You can name the first file whatever you like, such as
+        <tt>gnome-applets.sgml</tt>.  Name the second file
+        according to the applet's name:
+        <tt><i><tt>appletname</tt></i>-applet.sgml</tt>.
+        Make sure you update the entity
+        at the top of the shell document to reflect the new name of
+        the applet document.
+      </p><p>
+        <pre class="programlisting">
+
+&lt;!DOCTYPE book PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+&lt;!ENTITY TEMPLATE-APPLET SYSTEM "gnome-applet-template.sgml.part"&gt;
+
+]&gt;
+
+&lt;book id="gnome-applets"&gt;
+
+ &lt;bookinfo&gt;
+  &lt;title&gt;GNOME Applets&lt;/title&gt;
+  &lt;authorgroup&gt;
+   &lt;author&gt;&lt;firstname&gt;Telsa&lt;/firstname&gt;&lt;surname&gt;Gwynne&lt;/surname&gt;&lt;/author&gt;
+   &lt;author&gt;&lt;firstname&gt;John&lt;/firstname&gt;&lt;surname&gt;Fleck&lt;/surname&gt;&lt;/author&gt;
+   &lt;author&gt;&lt;firstname&gt;David&lt;/firstname&gt;&lt;surname&gt;Mason&lt;/surname&gt;
+      &lt;affiliation&gt;&lt;orgname&gt;Red Hat, Inc.&lt;/orgname&gt;&lt;/affiliation&gt;
+    &lt;/author&gt;
+    &lt;author&gt;&lt;firstname&gt;Dan&lt;/firstname&gt;&lt;surname&gt;Mueth&lt;/surname&gt;&lt;/author&gt;
+    &lt;author&gt;&lt;firstname&gt;Alexander&lt;/firstname&gt;&lt;surname&gt;Kirillov&lt;/surname&gt;&lt;/author&gt;
+  &lt;/authorgroup&gt;
+  &lt;edition&gt;GNOME Applets version 0.1 for GNOME 1.1.5&lt;/edition&gt;
+  &lt;pubdate&gt;2000&lt;/pubdate&gt;
+  &lt;copyright&gt;
+   &lt;year&gt;2000&lt;/year&gt;
+   &lt;holder&gt;Telsa Gwynne, John Fleck, Red Hat Inc., Dan Mueth, and
+    Alexander Kirillov&lt;/holder&gt; 
+  &lt;/copyright&gt;
+  &lt;legalnotice&gt;
+   &lt;para&gt;
+    Permission is granted to make and distribute verbatim copies of this
+    manual provided the copyright notice and this permission notice are
+    preserved on all copies.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Permission is granted to copy and distribute modified versions of
+    this manual under the conditions for verbatim copying, provided that
+    the entire resulting derived work is distributed under the terms of a
+    permission notice identical to this one.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Permission is granted to copy and distribute translations of this
+    manual into another language, under the above conditions for modified
+    versions, except that this permission notice may be stated in a
+    translation approved by the Free Software Foundation.
+   &lt;/para&gt;
+   &lt;para&gt;
+    Many of the names used by companies to distinguish their products and
+    services are claimed as trademarks. Where those names appear in any
+    GNOME documentation, and those trademarks are made aware to the members
+    of the GNOME Documentation Project, the names have been printed in caps
+    or initial caps.
+   &lt;/para&gt;
+  &lt;/legalnotice&gt;
+ &lt;/bookinfo&gt;
+
+ &lt;!-- #### Introduction ###### --&gt;
+ &lt;chapter id="applets-intro"&gt;
+  &lt;title&gt;Introduction&lt;/title&gt; 
+
+  &lt;!-- #### Intro | What Are Applets? ###### --&gt;
+  &lt;sect1 id="applets-what-are"&gt;
+   &lt;title&gt;What Are Applets?&lt;/title&gt; 
+   &lt;para&gt;
+    Applets are one of the most popular and useful objects you can add
+    to your &lt;interface&gt;Panel&lt;/interface&gt; to customize your desktop.
+    An applet is a small application which runs inside a small area of
+    your &lt;interface&gt;Panel&lt;/interface&gt;. Applets have been written for
+    a wide range of purposes.  Some are very powerful interactive
+    tools, such as the &lt;application&gt;Tasklist&lt;/application&gt; Applet
+    which allows you to easily 
+    control all of your main applications.  Others are simple system
+    monitors, displaying information such as the amount of power left
+    in the battery on your laptop (see &lt;application&gt;Battery Charge
+    Monitor&lt;/application&gt;) or weather
+    information(see &lt;application&gt;GNOME Weather&lt;/application&gt;).  Some
+    are simply for amusement(see &lt;application&gt;Fish&lt;/application&gt;).
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    Applets are similar to swallowed applications in that both of them
+    reside within the &lt;interface&gt;Panel&lt;/interface&gt;. However, 
+    swallowed applications are generally applications which were
+    not designed to run within the &lt;interface&gt;Panel&lt;/interface&gt;.
+    Typically one will swallow an application which already exists in
+    the main &lt;interface&gt;desktop&lt;/interface&gt; area, putting it into your
+    &lt;interface&gt;Panel&lt;/interface&gt;.  The application will continue to
+    run in the &lt;interface&gt;Panel&lt;/interface&gt; until you end the
+    application or  unswallow it,  placing it back onto the main part of
+    your desktop when you need to.
+   &lt;/para&gt;
+
+   &lt;para&gt;
+    &lt;figure id="example-applets-fig"&gt;
+     &lt;title&gt;Example Applets&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Example Applets&lt;/screeninfo&gt;
+       &lt;graphic fileref="example_applets" format="png"
+       srccredit="muet"&gt;
+       &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+    Several example applets are shown in &lt;xref
+    linkend="example-applets-fig"&gt;.  From left to right, they are: (1)
+    &lt;application&gt;Mixer Applet&lt;/application&gt;, which allows you to turn
+    on/off sound and control its volume by clicking on the applet.  (2)
+    &lt;application&gt;Sound Monitor&lt;/application&gt; Applet, which displays
+    the current volume of sound being played and allows you to control
+    various sound features.  (3) &lt;application&gt;GTCD&lt;/application&gt;
+    Applet, a CD player which has all its controls
+    available in the applet and displays the track and time. (4)
+    &lt;application&gt;Drive Mount&lt;/application&gt; Applet, used to mount and
+    unmount drives with a single click of the mouse. (5)
+    &lt;application&gt;Desk Guide&lt;/application&gt; which allows you to view
+    and control multiple virtual screens. (6)
+    &lt;application&gt;Tasklist&lt;/application&gt; Applet which allows you to
+    control your various windows and applications.
+   &lt;/para&gt;
+   &lt;para&gt;
+    There are many other applets to choose from.  The rest of this
+    chapter will explain the basic information to get you started
+    adding, moving, and removing applets from your
+    &lt;interface&gt;Panels&lt;/interface&gt; and using them. The following
+    chapters go through each of the standard GNOME applets describing
+    them in detail.  There are also additional applets which can be
+    downloaded off the Web.   See &lt;ulink type="http"
+     url="http://www.gnome.org/applist/list-martin.phtml"&gt;The GNOME
+    Software Map&lt;/ulink&gt; for lists of additional GNOME applications
+    and applets. 
+   &lt;/para&gt;
+   &lt;para&gt;
+    As you read through the the rest of this chapter, you should try
+    adding and removing applets from your &lt;interface&gt;Panel&lt;/interface&gt; and
+    experiment with them freely.  
+   &lt;/para&gt;
+  &lt;/sect1&gt;
+
+  &lt;!-- #### Intro | Adding, Moving, and Removing Applets ###### --&gt;
+  &lt;sect1 id="applet-add-move-replace"&gt;
+   &lt;title&gt;Adding, Moving, and Removing Applets&lt;/title&gt;
+
+   &lt;sect2 id="adding-applets"&gt;   
+    &lt;title&gt;Adding Applets to a Panel&lt;/title&gt;
+    &lt;para&gt;
+     To add an applet to a &lt;interface&gt;Panel&lt;/interface&gt;, right-click
+     on the &lt;interface&gt;Panel&lt;/interface&gt; and select 
+     &lt;menuchoice&gt;&lt;guimenu&gt;Panel&lt;/guimenu&gt;&lt;guisubmenu&gt;Add to panel&lt;/guisubmenu&gt;
+     &lt;guisubmenu&gt;Applet&lt;/guisubmenu&gt;&lt;/menuchoice&gt;. This will show you
+     the menu of all the applets on your system, divided into
+     categories. Choosing any applet from this menu will add it to the
+     &lt;interface&gt;Panel&lt;/interface&gt;.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="moving-applets"&gt;
+    &lt;title&gt;Moving Applets In or Between Panels&lt;/title&gt;
+    &lt;para&gt;
+     It is easy to move applets in a &lt;interface&gt;Panel&lt;/interface&gt; or
+     between two &lt;interface&gt;Panels&lt;/interface&gt;. If you have a
+     three-button mouse, just move the mouse over the applet, depress
+     the middle mouse button and drag the applet to its new location,
+     releasing the middle mouse button when you are finished.  Note
+     that you can drag applets within a &lt;interface&gt;Panel&lt;/interface&gt;
+     or between two &lt;interface&gt;Panels&lt;/interface&gt; this way. If you
+     don't have a three-button mouse, just 
+     right-click on the applet and choose
+     &lt;guimenuitem&gt;Move&lt;/guimenuitem&gt;. The cursor will turn into a
+     cross and the applet will move with your mouse until you press
+     any mouse button to indicate you are finished moving it.
+     If, in the course of this movement, it hits
+     other objects, the behavior depends on the global preferences
+     you have set for your &lt;interface&gt;Panels&lt;/interface&gt; in the
+     &lt;application&gt;GNOME Control Center&lt;/application&gt;: the applet you are
+     moving can switch places with other objects, "push" all objects
+     it meets, or "jump" over all other objects without disturbing
+     them. You can also override the default behavior by holding
+     &lt;keycap&gt;Shift&lt;/keycap&gt; button (for "push" mode),
+     &lt;keycap&gt;Ctrl&lt;/keycap&gt; (for "switched" mode), or
+     &lt;keycap&gt;Alt&lt;/keycap&gt; (for "free" mode, i.e. jumping other other
+     objects without disturbing them) button while dragging.
+    &lt;/para&gt;
+    &lt;para&gt;
+     To change the global Panel preferences, right-click on any applet
+     or &lt;interface&gt;Panel&lt;/interface&gt; and select 
+     &lt;menuchoice&gt;
+      &lt;guimenu&gt;Panel&lt;/guimenu&gt;
+      &lt;guimenuitem&gt;Global Preferences...&lt;/guimenuitem&gt;
+     &lt;/menuchoice&gt;.
+     The &lt;guilabel&gt;Default movement mode&lt;/guilabel&gt; is set under the
+     &lt;guilabel&gt;Applets&lt;/guilabel&gt; tab.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="removing-applets"&gt;
+    &lt;title&gt;Removing Applets from a Panel&lt;/title&gt; 
+    &lt;para&gt;  
+     To remove an applet from a &lt;interface&gt;Panel&lt;/interface&gt;,
+     right-click on the applet and select &lt;guimenuitem&gt;Remove from
+     panel...&lt;/guimenuitem&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+
+
+  &lt;!-- #### Intro | The Right-Click Pop-Up Menu ###### --&gt;
+  &lt;sect1 id="right-click-pop-up-menu"&gt;
+   &lt;title&gt;The Right-Click Pop-Up Menu&lt;/title&gt;
+   &lt;para&gt;
+    Clicking the right mouse button on any applet brings up
+    a &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt;. This 
+    menu always has certain standard menu items in it and
+    often has additional items which vary depending on the particular
+    applet. 
+   &lt;/para&gt;
+   &lt;sect2 id="standard-right-click-items"&gt; 
+    &lt;title&gt;Standard Pop-Up Items&lt;/title&gt;
+    &lt;para&gt;
+     All applets should have the following items in their right-click
+     &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt;:
+     &lt;variablelist&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;Remove from panel&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Remove from panel&lt;/guimenuitem&gt; menu item
+         removes the applet from the &lt;interface&gt;Panel&lt;/interface&gt;. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Move&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         After selecting &lt;guimenuitem&gt;Move&lt;/guimenuitem&gt;, your mouse
+         pointer will change appearance (typically to a cross with
+         arrows in each direction). As you move your mouse, the applet
+         will move with it.  When you have finished moving the applet,
+         click any mouse button and the applet will anchor in its
+         current position.  Note that applets can be moved between two
+         &lt;interface&gt;Panels&lt;/interface&gt; this way.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Panel&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guisubmenu&gt;Panel&lt;/guisubmenu&gt; submenu contains various
+         items and submenus for adding and removing
+         &lt;interface&gt;Panels&lt;/interface&gt; and applets and for changing
+         the configuration.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;About&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;About...&lt;/guimenuitem&gt; menu item brings up a 
+         dialogue box containing various information about the applet,
+         typically including the applet's  name, version, author,
+         copyright, license and desciption. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+
+      &lt;varlistentry&gt;
+       &lt;term&gt;Help&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Help&lt;/guimenuitem&gt; menu item brings up the help
+         manual for the applet. 
+        &lt;/para&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+     &lt;/variablelist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="applet-properties-dialog"&gt; 
+    &lt;title&gt;The Applet Properties Dialog&lt;/title&gt;
+    &lt;para&gt;
+     Many applets have customizable properties.  These applets will
+     have a &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; menu item in their
+     right-click &lt;guimenu&gt;pop-up menu&lt;/guimenu&gt; which brings up the
+     &lt;interface&gt;Properties&lt;/interface&gt; dialog where you can alter the 
+     appearance or behaviour of the applet.
+     &lt;figure id="example-props-dialog-fig"&gt;
+      &lt;title&gt;An Example Applet Properties Dialog&lt;/title&gt;
+      &lt;screenshot&gt;
+       &lt;screeninfo&gt;An Example Applets Properties Dialog&lt;/screeninfo&gt;
+       &lt;graphic fileref="applet_props_dialog" format="png"
+        srccredit="muet"&gt;
+       &lt;/graphic&gt;
+      &lt;/screenshot&gt;
+     &lt;/figure&gt;
+     All &lt;interface&gt;Properties&lt;/interface&gt; dialogs have the following
+     buttons at the bottom of the dialog:
+     &lt;itemizedlist&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;OK&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;OK&lt;/guibutton&gt; will activate any changes
+        in the properties you have made and close the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Apply&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Apply&lt;/guibutton&gt; at any time will
+        make your changes active without closing the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.  This is helpful if
+        you would like to test the effects of the changes you have
+        made but may want to continue changing the properties.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Close&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Close&lt;/guibutton&gt; will close the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.  Only changes in the
+        configuration which were previously applied with the
+        &lt;guibutton&gt;Apply&lt;/guibutton&gt; button will persist.  Other
+        changes will not be made active.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guibutton&gt;Help&lt;/guibutton&gt; &amp;mdash;
+        Pressing &lt;guibutton&gt;Help&lt;/guibutton&gt; brings up the manual for
+        the application, opening it to the page describing the
+        &lt;interface&gt;Properties&lt;/interface&gt; dialog.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+ 
+   &lt;sect2 id="common-right-click-items"&gt; 
+    &lt;title&gt;Other Common Pop-Up Items&lt;/title&gt;
+    &lt;para&gt;
+     Many applets also have one or more of the following items in their
+     right-click pop-up menu:
+     &lt;variablelist&gt;
+      &lt;varlistentry&gt;
+       &lt;term&gt;Run...&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         The &lt;guimenuitem&gt;Run...&lt;/guimenuitem&gt; menu item generally
+         invokes a program  which is related to the applet in some way
+         but which runs in its own window rather than in the
+         panel. For example: 
+        &lt;/para&gt;
+        &lt;orderedlist&gt;
+         &lt;listitem&gt;
+          &lt;para&gt;
+           The &lt;application&gt;CPU Load&lt;/application&gt; applet, which monitors
+           what programs are running, has a &lt;guimenuitem&gt;Run
+           gtop...&lt;/guimenuitem&gt;  menu item. Selecting this menu item
+           starts &lt;application&gt;GTop&lt;/application&gt;, which allows you to
+           view and control programs which are running.
+          &lt;/para&gt;
+         &lt;/listitem&gt;
+         &lt;listitem&gt;
+          &lt;para&gt;
+           The &lt;application&gt;CD Player&lt;/application&gt; applet has a
+           &lt;guimenuitem&gt;Run gtcd...&lt;/guimenuitem&gt; menu item which
+           starts the GNOME &lt;application&gt;CD Player&lt;/application&gt; when
+           selected, which has more capabilities than the applet.
+          &lt;/para&gt;
+         &lt;/listitem&gt;
+        &lt;/orderedlist&gt;
+       &lt;/listitem&gt;
+      &lt;/varlistentry&gt;
+     &lt;/variablelist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+  
+  &lt;sect1 id="feedback"&gt;
+   &lt;title&gt;Feedback&lt;/title&gt;
+   &lt;sect2 id="reporting-bugs"&gt; 
+    &lt;title&gt;Reporting Applet Bugs&lt;/title&gt;
+    &lt;para&gt;
+     GNOME users are encouraged to report bugs to &lt;ulink type="http"
+     url="http://bugs.gnome.org"&gt;The GNOME Bug Tracking
+     System&lt;/ulink&gt;.  The easiest way to submit bugs is to use the
+     &lt;application&gt;Bug Report Tool&lt;/application&gt; program by selecting
+     &lt;menuchoice&gt;
+      &lt;guimenu&gt;Main Menu&lt;/guimenu&gt; &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt;
+      &lt;guimenuitem&gt;Bug Report Tool&lt;/guimenuitem&gt; 
+     &lt;/menuchoice&gt;.
+     Be sure to be complete in describing what you did to cause the
+     bug to surface and, if possible, describe how the developer can
+     reproduce the the scenario.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+   &lt;sect2 id="documentation-feedback"&gt; 
+    &lt;title&gt;Providing Feedback&lt;/title&gt;
+    &lt;para&gt;
+     GNOME users are welcome to provide suggestions for how
+     applications and documentation can be improved.  Suggestions for
+     application changes should be submitted using the
+     &lt;application&gt;Bug Report Tool&lt;/application&gt; discussed above.
+     Suggestions for documentation changes can be emailed directly to
+     the documentation author (whose email should be included in the
+     "Authors" section of the document) or by sending an email to
+     &lt;email&gt;docs at gnome.org&lt;/email&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+   &lt;sect2 id="joining-gnome"&gt;  
+    &lt;title&gt;Joining GNOME&lt;/title&gt;
+    &lt;para&gt;
+     GNOME is a community project, created by hundreds of programmers,
+     documentation writers, icon design artists, web masters, and
+     other people, most of whom work on a volunteer basis.  New GNOME
+     contributors are always welcome. To join the GNOME team, visit
+     these web sites: developers &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org"&gt;The GNOME Development
+     Site&lt;/ulink&gt;, documentation writers &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org/projects/gdp"&gt;The GNOME Documentation
+     Project&lt;/ulink&gt;, icon design artists &amp;mdash; &lt;ulink type="http"
+     url="http://gnome-icons.sourceforge.net/"&gt;Gnome Icon Web&lt;/ulink&gt;,
+     general &amp;mdash; &lt;ulink type="http"
+     url="http://developer.gnome.org/helping/"&gt;Helping GNOME&lt;/ulink&gt;,
+     or just join the gnome-list email list (see &lt;ulink type="http"
+     url="http://www.gnome.org/resources/mailing-lists.html"&gt;GNOME Mailing
+     Lists&lt;/ulink&gt;) to discuss what you are interested in doing.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  &lt;/sect1&gt;
+ &lt;/chapter&gt;
+
+ &lt;!-- ############### Template Applets ##################### --&gt;
+ &lt;chapter id="template-applets"&gt;
+  &lt;title&gt;Template Applets&lt;/title&gt;
+
+  &amp;TEMPLATE-APPLET
+
+ &lt;/chapter&gt;
+
+&lt;/book&gt;
+
+
+
+
+
+
+
+
+	</pre>
+	
+        <pre class="programlisting">
+
+
+  &lt;!-- Please replace everywhere below GNOMEAPPLET with the name of --&gt;
+  &lt;!-- your applet. Most importantly, all id attributes should start --&gt;
+  &lt;!-- with the name of your applet - this is necessary to avoid name --&gt;
+  &lt;!-- conflict among different applets --&gt; 
+  &lt;!-- Please replace YOUR-NAME with your name and YOUR-EMAIL with your email--&gt;
+  &lt;!-- Please replace HACKER-NAME with the applet author's name and --&gt;
+  &lt;!-- HACKER-EMAIL with the applet author's email --&gt;
+
+  &lt;!-- You should name your file: GNOMEAPPLET-applet.sgml --&gt;
+  &lt;!-- Screenshots should be in PNG format and placed in the --&gt;
+  &lt;!-- same directory as GNOMEAPPLET-applet.sgml --&gt;
+
+  &lt;!-- Applet docs will be merged into &lt;chapter&gt;'s inside a --&gt;
+  &lt;!-- &lt;book&gt;. Thus, the indentation below (2 spaces before the &lt;sect1&gt;) is --&gt;
+  &lt;!-- correct.--&gt;
+
+  &lt;!-- Permission is granted to make and distribute verbatim copies of --&gt;
+  &lt;!-- this manual provided the copyright notice and this permission --&gt;
+  &lt;!-- notice are  preserved on all copies. --&gt;
+  &lt;!-- --&gt;
+  &lt;!-- Permission is granted to copy and distribute modified versions of --&gt;
+  &lt;!-- this manual under the conditions for verbatim copying, provided --&gt;
+  &lt;!-- that the entire resulting derived work is distributed under the --&gt;
+  &lt;!-- terms of a permission notice identical to this one. --&gt;
+  &lt;!-- --&gt;
+  &lt;!-- Permission is granted to copy and distribute translations of this --&gt;
+  &lt;!-- manual into another language, under the above conditions for --&gt;
+  &lt;!-- modified versions, except that this permission notice may be --&gt;
+  &lt;!-- stated in a translation approved by the Foundation. --&gt;
+
+  &lt;!-- ###############   GNOMEAPPLET   ############### --&gt;
+  &lt;sect1 id="GNOMEAPPLET"&gt;
+   &lt;title&gt;GNOMEAPPLET Applet&lt;/title&gt; 
+
+   &lt;para&gt; 
+    &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet, shown in &lt;xref
+    linkend="GNOMEAPPLET-fig"&gt;, does this and that. To learn how to
+    add this applet to a &lt;interface&gt;Panel&lt;/interface&gt;, see &lt;xref
+    linkend="adding-applets"&gt;. 
+   &lt;/para&gt;
+  
+ 
+   &lt;figure id="GNOMEAPPLET-fig"&gt;
+   &lt;title&gt;GNOMEAPPLET&lt;/title&gt;
+   &lt;screenshot&gt;
+    &lt;screeninfo&gt;GNOMEAPPLET&lt;/screeninfo&gt;
+    &lt;graphic format="png" fileref="GNOMEAPPLET-fig" srccredit="ME"&gt;
+    &lt;/graphic&gt;
+   &lt;/screenshot&gt;
+   &lt;/figure&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-usage"&gt;
+    &lt;title&gt;Usage&lt;/title&gt;
+    &lt;para&gt;
+     This applet does nothing. To use it, just
+     left-click on it and it will instantly do nothing.   
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-right-click"&gt;
+    &lt;title&gt;Right-Click Pop-Up Menu Items&lt;/title&gt;
+    &lt;para&gt; 
+     In addition to the standard menu items (see &lt;xref
+     linkend="standard-right-click-items"&gt;), the right-click pop-up menu has 
+     the following items: 
+     &lt;itemizedlist&gt; 	
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; &amp;mdash; This menu
+        item opens the &lt;interface&gt;Properties&lt;/interface&gt; dialog (see
+        &lt;xref linkend="GNOMEAPPLET-properties"&gt;) which allows you to
+        customize the appearance and behavior of this applet.
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+      &lt;listitem&gt;
+       &lt;para&gt;
+        &lt;guimenuitem&gt;Run Hello World...&lt;/guimenuitem&gt; &amp;mdash; This
+        menu item starts the program &lt;application&gt;Hello
+        World&lt;/application&gt;, used to say "hello" to the world. 
+       &lt;/para&gt;
+      &lt;/listitem&gt;
+     &lt;/itemizedlist&gt;
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-properties"&gt;
+    &lt;title&gt;Properties&lt;/title&gt;
+    &lt;para&gt;
+     You can configure &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet by
+     right-clicking on the applet and choosing the
+     &lt;guimenuitem&gt;Properties...&lt;/guimenuitem&gt; menu item. This will open the
+     &lt;interface&gt;Properties&lt;/interface&gt; dialog, shown in &lt;xref
+     linkend="GNOMEAPPLET-properties-fig"&gt;.
+    &lt;/para&gt;
+    &lt;figure id="GNOMEAPPLET-properties-fig"&gt;
+     &lt;title&gt;Properties Dialog&lt;/title&gt;
+     &lt;screenshot&gt;
+      &lt;screeninfo&gt;Properties Dialog&lt;/screeninfo&gt; 
+      &lt;graphic format="png" fileref="GNOMEAPPLET-properties" srccredit="ME"&gt;
+      &lt;/graphic&gt;
+     &lt;/screenshot&gt;
+    &lt;/figure&gt;
+    
+    &lt;para&gt; 
+     To change the color of the applet, click on the
+     &lt;guibutton&gt;color&lt;/guibutton&gt; button. To change other properties,
+     click on other buttons. 
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For more information on the &lt;interface&gt;Properties&lt;/interface&gt;
+     dialog, including descriptions of the &lt;guibutton&gt;OK&lt;/guibutton&gt;,
+     &lt;guibutton&gt;Apply&lt;/guibutton&gt;, &lt;guibutton&gt;Cancel&lt;/guibutton&gt;, and
+     &lt;guibutton&gt;Help&lt;/guibutton&gt; buttons, see &lt;xref
+     linkend="applet-properties-dialog"&gt;.
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+  
+   &lt;sect2 id="GNOMEAPPLET-bugs"&gt;
+    &lt;title&gt; Known Bugs and Limitations&lt;/title&gt;
+    &lt;para&gt;
+     There are no known bugs in the
+     &lt;application&gt;GNOMEAPPLET&lt;/application&gt; applet. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+   &lt;sect2 id="GNOMEAPPLET-authors"&gt;
+    &lt;title&gt;Authors&lt;/title&gt;
+    &lt;para&gt;
+     This applet was writen by HACKER-NAME
+     &lt;email&gt;HACKER-EMAIL&lt;/email&gt;.  The documentation for this applet
+     which you are reading now was written by
+     YOUR-NAME &lt;email&gt;YOUR-EMAIL&lt;/email&gt;. For information on submitting
+     bug reports and suggestions for improvements, see &lt;xref
+     linkend="feedback"&gt;. 
+    &lt;/para&gt;
+   &lt;/sect2&gt;
+
+  &lt;/sect1&gt;
+
+
+
+
+
+
+
+
+</pre>
+      </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="apas02.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left">Template 2: Applet Manual For GNOME 1.x </td><td width="20%" align="center"><a href="apa.html">Up</a></td><td width="40%" align="right"> </td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s02.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s02.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s02.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,431 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Getting Started Writing GNOME Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="next" href="ar01s03.html" title="The GNOME Documentation System"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Getting Started Writing GNOME Documentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s03.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="gettingstarted"></a>Getting Started Writing GNOME Documentation</h2></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="selecting"></a>Selecting A Document</h3></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="know"></a>Document Something You Know</h4></div></div><p>
+          The most frequently asked question of new contributors who
+          join the GDP is "which document should I start
+          with?". Because most people involved are volunteers, we do
+          not <span class="emphasis"><em>assign</em></span> projects and applications to
+          write documents for. The first step is all yours - you must
+          decide what about GNOME interests you most and find out if
+          it has complete documents or not.
+        </p><p>
+          It is also important to spend some time with GNOME to make
+          sure you are familiar enough with it to be
+          <span class="emphasis"><em>authoritative</em></span>  in your writing. The
+          best way to do this is to just sit down and play with GNOME
+          as much as possible before starting to write.
+        </p><p>
+          The easiest way to get started is to improve existing
+          documentation. If you notice some inaccuracies or omissions
+          in the documentation, or you think that you can explain the
+          material more clearly, just send your suggestions to the
+          author of the original documentation or to the GNOME
+          documentation project at <tt>&lt;<a href="mailto:docs at gnome.org">docs at gnome.org</a>&gt;</tt>.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="doctable"></a>The GNOME Documentation Status Table</h4></div></div><p>
+          The <i>GDP Documentation Status Table</i>
+          (<i>DocTable</i>) (<a href="http://www.gnome.org/gdp/doctable/" target="_top">http://www.gnome.org/gdp/doctable/</a>) is a
+          web page which tracks the status of all the various
+          documentation components of GNOME.  These components include
+          application documentation, internal GNOME component
+          documentation, user documentation, and developer
+          documentation.  For each documentation item, it tracks the
+          current status of the documentation, who is working on the
+          particular document, where the documentation can be found,
+          and provides a forum for the discussion of each item.
+        </p><p>
+          You should use the <i>DocTable</i> to help
+          you select a documentation item which needs work done.  Once
+          you have selected an item to work on, please register
+          yourself as an author so that other authors do not duplicate
+          your work and may contact you to help or offer suggestions.
+          Also be sure to keep the status icons up-to-date  so that
+          the GDP team can easily identify which items need additional
+          help.  The <i>DocTable</i> also allows
+          people to make announcements and suggestions and to discuss
+          issues in the comments section.
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+          Note that the information in the
+          <i>DocTable</i> may not always be up-to-date
+          or accurate.  When you assign yourself to documenting an
+          application, make sure you find out the latest status of
+          documentation by contacting the application author.  
+         </p></div></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="docbook"></a>Installing and Using DocBook</h3></div></div><p>
+        All documentation for the GNOME project is written in SGML
+        using the DocBook DTD. There are many advantages to using
+        this for documentation, not least of which is the single
+        source nature of SGML. To contribute to the GDP you should
+        learn to use DocBook.
+      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">NOTE</h3><p>
+          To get started writing for the GDP you do not need to rush
+          out and learn DocBook - if you feel it is too much to handle
+          for now, you can submit plain ASCII text to the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+          <i>gnome-doc-list mailing list</i>
+          </a>and a volunteer will mark it up for you. Seeing your
+          document marked up will also be a great way for you to start
+          learning DocBook.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="installingdocbook"></a>Installing DocBook</h4></div></div><p>
+          Download and install the following <a href="ftp://sourceware.cygnus.com:/pub/docbook-tools/" target="_top">DocBook Tools packages</a>: jade, docbook,
+          jadetex, sgml-common, and stylesheets. (RPM users should note
+          that jade is platform dependent (eg. i386), while the other packages
+          are in the <tt>noarch</tt>
+          directory.) You can find more 
+          information on DocBook Tools <a href="http://sourceware.cygnus.com/docbook-tools/" target="_top">here</a>.
+        </p><p>
+          If you are an Emacs user you may
+          want to grab the psgml package as well. This is a major mode
+          for editing sgml files in Emacs.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="gdpstylesheets"></a>GDP Stylesheets</h4></div></div><p>
+          The GDP uses its own DocBook stylesheets.  To use the GDP
+          stylesheets, you should download the file
+          <tt>gdp-both.dsl</tt> from the <tt>gnome-docu/gdp/dsssl</tt> module in
+          CVS (or from <a href="http://developer.gnome.org/projects/gdp/stylesheets.html" target="_top">
+          GDP Custom DSSSL Stylesheet</a>)and copy it
+
+          over the file
+          <tt>/usr/lib/sgml/stylesheets/cygnus-both.dsl</tt>.
+          Alternately, you can download and install the
+          <a href="http://people.redhat.com/dcm/software.html" target="_top">gnome-doc-tools package</a> which will set
+          up the stylesheets as well as the DTD discussed below.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="gdpdtd"></a>GDP DTD (PNG Image Support)</h4></div></div><p>
+          Due to some license issues involved with the creation of
+          gifs, the GNOME Documentation Project has decided to use the
+          PNG image format for all images in GNOME documentation. You
+          can read more about the issues involved with gifs at <a href="http://www.gnu.org/philosophy/gif.html" target="_top">http://www.gnu.org/philosophy/gif.html</a>.
+        </p><p>
+          The current DocBook DTD(3.1) does not include support for
+          embedding PNG images in your documents.  Since the GDP uses
+          many screenshots in its documentation, we use our own
+          variation on the DocBook DTD which has PNG image support.
+          We encourage everybody to use this DTD instead of the
+          default DocBook DTD since your source document header and
+          your output document appearance subtly vary between the two
+          DTD's.  To install the GDP custom DTD with PNG image support
+          by hand:
+        </p><div class="itemizedlist"><ul type="opencircle"><li style="list-style-type: opencircle"><p>
+              Download <a href="http://www.labs.redhat.com/png/png-support.html" target="_top">the
+              GDP DocBook DTD for PNG support</a> and install it
+              where you keep your DTD's. (On Red Hat use <tt>/usr/lib/sgml/</tt>.) Note that
+              the 3.0 DTD is missing support for the
+              <tt class="sgmltag-element">&lt;legalnotice&gt;</tt> tag, so it is
+              recommended that you use version 3.1
+            </p></li><li style="list-style-type: disc"><p>
+              Add the new DTD to your SGML CATALOG file.  The location
+              of your SGML CATALOG file may vary depending upon your
+              distribution. (On Red Hat it is usually in
+              /usr/lib/sgml/CATALOG.) Add the following line to this
+              file:
+              </p><pre class="programlisting">
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.0//EN" "png-support-3.0.dtd"
+              </pre><p> 
+              If you are using the 3.1 DTD, use:
+              </p><pre class="programlisting">
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN" "png-support-3.1.dtd"
+              </pre><p> 
+            </p></li></ul></div><p>
+          Alternately, you can download and install the
+          <a href="http://people.redhat.com/dcm/software.html" target="_top">gnome-doc-tools package</a> which will set
+          up the custom stylesheets and DTD for you.
+        </p><p>
+          To include PNG files in your documents, you will need to
+          indicate that you are using this special DTD.  To do
+          this, use the following headers:
+        </p><p>
+          Articles:
+          </p><pre class="programlisting">
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]&gt;
+          </pre><p>
+        </p><p>
+          Books:
+          </p><pre class="programlisting">
+&lt;!DOCTYPE Book PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]&gt;
+          </pre><p>
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="editors"></a>Editors</h4></div></div><p>
+          There are many editors on Linux and UNIX systems available
+          to you. Which editor you use to work on the sgml documents
+          is completely up to you, as long as the editor is able to
+          preserve sgml and produce the source in a format that is
+          readable by everyone.
+        </p><p>
+          Probably the two most popular editors available are
+          Emacs and
+          vi. These and other editors are
+          used regularly by members of the GDP. Emacs has a major
+          mode, psgml, for editing sgml files which can save you time
+          and effort in adding and closing tags. You will find the
+          psgml package in DocBook Tools, which is the standard set of
+          tools for the GDP. You may find out more about DocBook Tools
+          in <a href="ar01s02.html#installingdocbook" title="Installing DocBook">the section called &#8220;Installing DocBook&#8221;</a>.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="make-output"></a>Creating Something Useful with your Docs</h4></div></div><p>
+          The tools available in DocBook Tools allow you to convert
+          your sgml document to many different formats including html
+          and Postscript. The primary tool used to do the conversion
+          is an application called Jade. In
+          most cases you will not have to work directly with
+          Jade; Instead,  you will use the
+          scripts provided by DocBook Tools.
+        </p><p>
+          To preview your DocBook document, it is easiest to convert
+          it to <tt>html</tt>. If you have installed the
+          DocBook tools described above, all you have to do is to run
+          the command <tt>$</tt><b>db2html
+          mydocument.sgml</b>. If there are no sgml syntax
+          errors, this will create a directory <tt>mydocument</tt> and place the
+          resulting html files in it. The title page of the document
+          will typically be
+          <tt>mydocument/index.html</tt>.  If you have
+          screenshots in your document, you will have to copy these
+          files into the <tt>mydocument</tt> directory by
+          hand. You can use any web browser to view your document.
+          Note that every time you run <b>db2html</b>, it
+          creates the <tt>mydocument</tt> directory over, so
+          you will have to copy the screenshots over each time.
+        </p><p>
+          You can also convert your document to PostScript by running
+          the command <tt>$</tt><b>db2ps
+          mydocument.sgml</b>, after which you can print out or
+          view the resulting .ps file.  
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">NOTE</h3><p>
+            The html files you get will not look quite the same as the
+            documentation distributed with GNOME unless you have the
+            custom stylesheets installed on your machine. DocBook
+            Tools' default stylesheets will produce a different look
+            to your docs. You can read more about the GDP stylesheets
+            in <a href="ar01s02.html#gdpstylesheets" title="GDP Stylesheets">the section called &#8220;GDP Stylesheets&#8221;</a>.
+          </p></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="jadeimages"></a>Images in DocBook Tools</h4></div></div><p>
+          If your document uses images you will need to take note of a
+          few things that should take place in order for you to make
+          use of those images in your output.
+        </p><p>
+          The DocBook Tools scripts and applications are smart enough
+          to know that when you are creating html you will be using
+          PNG files and when you are creating Postscript you will be
+          using EPS files (you must use EPS with Postscript).
+        </p><p>
+          Thus, you should never explicitly
+          include the extension of the image file, since DocBook
+          Tools will automatically insert it for you. For example:
+        </p><pre class="programlisting">
+
+&lt;figure&gt;
+ &lt;title&gt;My Image&lt;/title&gt;
+ &lt;screenshot&gt;
+  &lt;screeninfo&gt;Sample GNOME Display&lt;/screeninfo&gt;
+  &lt;graphic  format="png" fileref="myfile" srccredit="me"&gt;
+  &lt;/graphic&gt;
+ &lt;/screenshot&gt;
+&lt;/figure&gt;
+     </pre><p>
+          You will notice in this example that the file
+          <tt>myfile.png</tt> was referred to as simply
+          <tt>myfile</tt>. Now when you run
+          <b>db2html</b> to create an html file, it will
+          automatically look for <tt>myfile.png</tt> in
+          the directory.
+        </p><p>
+          If you want to create PostScript ouput, you will need to create an
+          EPS version of your image file to be displayed in the
+          PostScript file. There is a simple script available which
+          allows you to change a PNG image into an EPS file
+          easily. You can download this file - img2eps - from <a href="http://people.redhat.com/dcm/sgml.html" target="_top">http://people.redhat.com/dcm/sgml.html</a>
+          (look for the img2eps section).  Note that this script is
+          included in the gnome-doc-tools package, so if you are using
+          this package, you should already have
+          <b>img2eps</b> on you system.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="moredocbookinfo"></a>Learning DocBook</h4></div></div><p>
+          There are many resources available to help you learn DocBook.
+          The following resources on the web are useful for learning
+          DocBook:
+        </p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>
+              <a href="http://www.docbook.org" target="_top">http://www.docbook.org</a>  - Norman
+              Walsh's <i>DocBook: The Definitive
+              Guide</i>.  Online O'Reilly book on using
+              DocBook. Contains an excellent element reference. May be
+              too formal for a beginner.
+            </p></li><li style="list-style-type: disc"><p>
+              <a href="http://www.oswg.org/oswg-nightly/oswg/en_US.ISO_8859-1/articles/DocBook-Intro/docbook-intro/index.html" target="_top">A Practical Introduction to DocBook</a>
+              - The Open Source Writers Group's introduction to using
+              DocBook. This is an excellent HOW-TO type article on
+              getting started.
+            </p></li><li style="list-style-type: disc"><p>
+              <a href="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html" target="_top">Getting Going with DocBook: Notes for
+              Hackers</a> - Mark Galassi's introduction to DocBook
+              for hackers. This has to be one of the first
+              introductions to DocBook ever - still as good as it ever
+              was.
+            </p></li><li style="list-style-type: disc"><p>
+              <a href="http://www.freebsd.org/tutorials/docproj-primer/" target="_top">
+              FreeBSD Documentation Project Primer for New
+              Contributors</a> - FreeBSD documentation project
+              primer. Chapter 4.2 provides a very good introduction to
+              writing documentation using DocBook. Note that it also
+              describes some custom extensions of DocBook;
+              fortunately, they are clearly marked as such.
+            </p></li></ul></div><p>
+          Norman Walsh's book is also available in print.
+        </p><p>
+          The following sections of this document are designed to help
+          documentation authors write correct and consistent DocBook:
+        </p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>
+              <a href="ar01s04.html" title="DocBook Basics ">the section called &#8220;DocBook Basics &#8221;</a> - Descriptions of
+              commonly used DocBook tags.
+            </p></li></ul></div><p>
+          You may also discuss specific DocBook questions with GDP
+          members on the #docs IRC channel at irc.gnome.org and on the
+          gnome-doc-list mailing list.
+        </p></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="gdptemplates"></a>GDP Document Templates</h3></div></div><p>
+        Templates for various types of GNOME documents are found in
+        <a href="apa.html" title="A. Document Templates">Appendix A</a>.  They are kept in CVS in
+        gnome-docu/gdp/templates. The easiest source to get them from
+        is probably the <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Document Templates</a> web page, which is typically kept
+        completely up-to-date with CVS and has a basic description of
+        each file from CVS.
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="screenshots"></a>Screenshots</h3></div></div><p>
+        Most GNOME documents will have screenshots of the particular
+        applet, application, GNOME component, or widget being
+        discussed.  As discussed above in <a href="ar01s02.html#gdpdtd" title="GDP DTD (PNG Image Support)">the section called &#8220;GDP DTD (PNG Image Support)&#8221;</a> you
+        will need to install the special GDP DocBook DTD which
+        supports PNG images, the format used for all images in GNOME
+        documentation. For the basic DocBook structure used to insert
+        images in a document, see <a href="ar01s02.html#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a> above.
+      </p><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="screenshotappearance"></a>Screenshot Appearance</h4></div></div><p>
+          For all screenshots of windows that typically have border
+          decorations (e.g. applications and dialogs, but not applets
+          in a panel), GDP standards dictate
+          the appearance of the window.  (This is to minimize possible
+          confusion to the reader, improve the appearance of GNOME
+          documents, and guarantee the screenshot is readable when
+          printed.) All screenshots should be taken with the SawFish
+          (formerly known as Sawmill) window manager using the
+          MicroGui theme and Helvetica 12pt font. (A different window
+          manager can be used provided the MicroGui theme is available
+          for this window manager and the appearance is identical to
+          that when using the SawFish window manager.) The default
+          GTK+ theme(gtk) and font (Helvetica 12 pt) should be used
+          for all screenshots.  If you are unable to provide
+          screenshots in this form, you should create screenshots as
+          you wish them to appear and send them to the
+          <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+          <i>gnome-doc-list mailing list</i> </a>
+          requesting a GDP member reproduce these screenshots in the
+          correct format and email them to you.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="screenshottools"></a>Screenshot Tools</h4></div></div><p>
+          There are many tools for taking screenshots in
+          GNOME/Linux. Perhaps the most convenient is the
+          Screen-Shooter Applet. Just click
+          on the window icon in the applet and then on the window you
+          would like to take a screenshot of. (Note that
+          at the time of this writing, PNG images taken by
+          screenshooter do not appear properly in
+          Netscape or the
+          GNOME Help Browser.  You
+          should save your screenshot as a GIF and
+          then use <b>convert filename.gif
+          filename.png</b>.) For applets
+          in a Panel,
+          xv can be used to crop the
+          screenshot to only include the relevant portion of the
+          Panel. Note that
+          xv and 
+          gimp can both be used for taking
+          screenshots, cropping screenshots, and converting image
+          formats. 
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="screenshotfiles"></a>Screenshot Files</h4></div></div><p>
+          Screenshots should be kept in the main documentation
+          directory with your SGML file for applets, or should be
+          kept in a directory called "figs" for application and other
+          documentation.  After you use <b>db2html</b> to
+          convert your SGML file to HTML (see <a href="ar01s02.html#make-output" title="Creating Something Useful with your Docs">the section called &#8220;Creating Something Useful with your Docs&#8221;</a>), you will need to copy your
+          screenshots (either the individual PNG files for applet
+          documentation, or the whole "figs" directory for other
+          documentation) into the newly created HTML directory.  Note
+          that every time you use <b>db2html</b> the HTML
+          directory is erased and rewritten, so do not store your only
+          copy of the screenshots in that directory.  If you wish to
+          create PostScript or PDF output, you will need to manually
+          convert the PNG images to EPS as described in <a href="ar01s02.html#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a>, but will not need to copy these
+          images from their default location, as they are included
+          directly into the output(PostScript of PDF) file.
+        </p></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="applicationbugs"></a>Application Bugs</h3></div></div><p>
+        Documentation authors tend to investigate and test applets and
+        applications more thoroughly than most 
+        users.  Often documentation authors will discover one or
+        more bugs in the software.  These bugs vary from small ones,
+        such as mis-spelled words or missing
+        About dialogs in the menu, to large
+        ones which cause the applet to crash.  As all users, you
+        should be sure to report these bugs so that application
+        developers know of them and can fix them.  The easiest way to
+        submit a bug report is by using the Bug
+        Buddy applet which is part of the gnome-applets
+        package.  
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="cvs"></a>Using CVS</h3></div></div><p>
+        CVS (Concurrent Versions System) is a tool that allows
+        multiple developers to concurrently work on a set of
+        documents, keeping track of the modifications made by each
+        person.  The files are stored on a server and each developer
+        checks files out, modifies them, and then checks in their
+        modified version of the files.  Many GNOME programs and
+        documents are stored in CVS.  The GNOME CVS server allows
+        users to anonymously check out CVS files. Most GDP members
+        will need to use anonymous CVS to download the most up-to-date
+        version of documentation or programs.  Modified documents will
+        typically be emailed to the the application developer. Core
+        GDP members may also be granted login CVS privileges so they
+        may commit modified files directly to CVS.
+      </p><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="anonymouscvs"></a>Anonymous CVS</h4></div></div><p>
+          To anonymously check out documents from CVS, you must first
+          log in.  From the bash shell, you should set your CVSROOT
+          shell variable with <b>  export
+          CVSROOT=':pserver:anonymous at anoncvs.gnome.org:/cvs/gnome'</b>
+          and then login with <b>cvs login</b>(there is no
+          password, just hit return). As an example, we will use the
+          "gnome-docu/gdp" module which contains this and several
+          other documents. To check these documents out for the first
+          time, type <b>cvs -z3 checkout
+          gnome-docu/gdp</b>. After you have this document
+          checked out and you would like to download any updates on
+          the CVS server, use <b>cvs -z3 update -Pd</b>.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="logincvs"></a>Login CVS</h4></div></div><p>  If you have been given a
+        login for the GNOME CVS server,  you may commit your file
+        modifications to CVS.  Be sure to read the following section
+        on CVS etiquette before making any commits to CVS.  To log in
+        to the CVS server as user
+        <b><i><tt>username</tt></i></b> with a
+        password, you must first set your CVSROOT shell variable with
+        <b> export
+        CVSROOT=':pserver:<i><tt>username</tt></i>@cvs.gnome.org:/cvs/gnome'</b>.
+        Log in with <b>cvs login</b> and enter your
+        password. You may check out and update modules as described
+        above for anonymous CVS access.  As a login CVS user, you may
+        also check modified versions of a file into the CVS server.
+        To check
+        <b><i><tt>filename</tt></i></b> into
+        the CVS server, type <b>cvs -z3 commit
+        <i><tt>filename</tt></i></b>. You will be
+        given a vi editor window to type in a brief log entry,
+        summarizing your changes.  The default editor can be changed
+        using the <tt>EDITOR</tt> environment variable or
+        with the <b><tt>-e</tt></b> option. You
+        may also check in any modifications to files in the working
+        directory and subdirectories using <b>cvs -z3
+        commit</b>.  To
+        add a new file to the CVS server, use <b>cvs -z3 add
+        <i><tt>filename</tt></i></b>, followed by the
+        commit command.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="cvsetiquette"></a>CVS Etiquette</h4></div></div><p>
+          Because files in CVS are typically used and modified by
+          multiple developers and documentation authors, users should
+          exercise a few simple practices out of courtesy towards the
+          other CVS users and the project leader.  First, you should
+          not make CVS commits to a package without first discussing
+          your plans with the project leader.  This way, the project
+          leader knows who is modifying the files and generally, what
+          sort of changes/development is being done.  Also, whenever a
+          CVS user commits a file to CVS, they should make an entry in
+          the CVS log and in the <tt>ChangeLog</tt> so
+          that other users know who is making modifications and what
+          is being modified.  When modifying files created by others,
+          you should follow the indentation scheme used by the initial
+          author.
+        </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNOME Handbook of Writing Software Documentation </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> The GNOME Documentation System</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s03.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s03.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s03.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,103 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>The GNOME Documentation System</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s02.html" title="Getting Started Writing GNOME Documentation"><link rel="next" href="ar01s04.html" title="DocBook Basics "></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNOME Documentation System</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s02.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s04.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="gnomedocsystem"></a>The GNOME Documentation System</h2></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="gnomehelpbrowser"></a>The GNOME Help Browser</h3></div></div><p>
+        At the core of the GNOME help system is the GNOME
+        Help Browser. The Help
+        Browser provides a unified interface to several
+        distinct documentation systems on Linux/Unix systems: man
+        pages, texinfo pages, Linux Documentation Project(LDP)
+        documents, GNOME application documentation, and other GNOME
+        documents.
+      </p><p>
+        The GNOME Help Browser works by
+        searching standard directories for documents which are to be
+        presented.  Thus, the documentation that appears in the GHB is
+        specific to each computer and will typically only represent
+        software that is installed on the computer.
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="gnomehelpbrowser2"></a>The GNOME Help Browser (GNOME-2.0)</h3></div></div><p> In
+      GNOME 2.0, the GNOME Help Browser
+      will be replaced by Nautilus.
+      Nautilus will be the file manager/graphical shell for GNOME 2.0
+      and will also implement a more sophisticated help system than
+      that used by the GNOME Help Browser
+      used in GNOME 1.0.  It will read and display DocBook files
+      directly, avoiding the need for duplicating documents in both
+      DocBook and HTML formats.  Its display engine for DocBook will
+      be much faster than running jade to
+      convert to HTML for rendering.  Because it uses the original
+      DocBook source for documentation, it will be possible to do more
+      sophisticated searching using the meta information included in
+      the documents.  And since Nautilus is a virtual file system
+      layer which is Internet-capable, it will be able to find and
+      display documents which are on the web as well as those on the
+      local file system. For more information on
+      Nautilus, visit the #nautilus IRC
+      channel on irc.gnome.org.  </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="gnomehelponthefly"></a>Dynamic Document Synthesis(GNOME-2.0)</h3></div></div><p>
+        GNOME uses the documentation presented by all the various
+        GNOME components and applications installed on the system to
+        present a complete and customized documentation environment
+        describing only components which are currently installed on a
+        users system.  Some of this documentation, such as the manuals
+        for applets, will be combined in such a way that it appears to
+        be a single document.
+      </p><p>
+        By using such a system, you can be sure that any GNOME app you
+        install that has documentation will show up in the index,
+        table of contents, any search you do in the help browser.
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="gnomehelpcomponents"></a>The GNOME Documentation Components</h3></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="applicationmanualsintro"></a>Application Manuals</h4></div></div><p>
+          Every GNOME application should have an application manual.
+          An application manual is a document specific to the
+          particular application which explains the various windows
+          and features of the application.  Application Manuals
+          typically use screenshots (PNG format) for clarity.  Writing
+          application manuals is discussed in more detail in <a href="ar01s06.html" title="Writing Application and Applet Manuals">the section called &#8220;Writing Application and Applet Manuals&#8221;</a> below.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="applicationhelpintro"></a>Application Help</h4></div></div><p>
+          Applications should have a Help
+          button on screens on which users may need help.  These
+          Help buttons should pull up the
+          default help browser, determined by the
+          <tt>ghelp</tt> URL Handler (configured using the
+          Control Center), typically the
+          GNOME Help Browser.  The help
+          browser should show either the first page of the application
+          manual, or else the relevant page thereof. Application help
+          is described in more detail in <a href="ar01s08.html" title="Application Help Buttons">the section called &#8220;Application Help Buttons&#8221;</a> below.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="contextsensitivehelpintro"></a>Application Context Sensitive Help (coming in
+        GNOME-2.0)</h4></div></div><p>
+          Context sensitive help is a system which will allow the user
+          to query any part (button, widget, etc.) of an application
+          window.  This is done by either entering a CS Help mode by
+          clicking on an icon or by right clicking on the application
+          part and selecting "What's This" or whatever is decided on
+          at the time.  Context sensitive help is described in more
+          detail in <a href="ar01s10.html" title="Writing Context Sensitive Help (coming in GNOME-2.0)">the section called &#8220;Writing Context Sensitive Help (coming in GNOME-2.0)&#8221;</a>
+          below.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="userguide"></a>The GNOME User Guide</h4></div></div><p>
+          The <i>GNOME User Guide</i> describes the
+          GNOME desktop environment and core components of GNOME such
+          as the panel and
+          control center. In GNOME 1.x this
+          was the main and only source of documentation. In GNOME 2.0
+          this will become a document for the web and for printing
+          that is derived from various parts chosen in the system that
+          are necessary for the new user to understand.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="userdocs"></a>User Documents</h4></div></div><p>
+          Aside from the <i>GNOME User Guide</i>,
+          there are several other documents to help GNOME users learn
+          GNOME, including the <i>GNOME FAQ</i>,
+          <i>GNOME Installation and Configuration
+          Guide</i>, and the <i>GNOME Administrators
+          Guide</i>.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="developerdocs"></a>Developer Documents</h4></div></div><p>
+          There are many White Papers, Tutorials, HOWTO's and FAQ's to
+          make programming GNOME and GNOME applications as easy as
+          possible.
+        </p><p>
+          API documentation is also available for the GNOME libraries. This is
+          detailed documentation of the code that is used to build GNOME
+          apps. You can keep up with the GNOME API docs on the <a href="http://developer.gnome.org/doc/API/" target="_top">GNOME API
+          Reference</a> page.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="projectdocs"></a>Project Documents</h4></div></div><p>
+          Some GNOME projects have documentation to maintain
+          consistency in their product and to help new contributors
+          get up to speed quickly. Among these are the GDP documents,
+          such as the one you are reading now.
+        </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Getting Started Writing GNOME Documentation </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> DocBook Basics </td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s04.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s04.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s04.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,513 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>DocBook Basics </title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s03.html" title="The GNOME Documentation System"><link rel="next" href="ar01s05.html" title="GDP Documentation Conventions "></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">DocBook Basics </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s03.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s05.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="docbookbasics"></a>DocBook Basics </h2></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="introtodocbook"></a>Introduction to DocBook</h3></div></div><p>
+        To understand DocBook, a basic understanding of SGML is
+        helpful. SGML stands for Standard General Markup Language and
+        is one of the first markup languages every created. HTML is
+        actually derived from SGML and XML is a subset of SGML.  SGML
+        uses what is called a Document Type Definition to specify
+        <span class="emphasis"><em>elements</em></span> which are contained between
+        brackets, &lt; and &gt;. Text is marked by both beginning and
+        ending elements, for example in the DocBook DTD, one denotes a
+        title with <tt class="sgmltag-element">&lt;title&gt;</tt>The
+        Title<tt class="sgmltag-element">&lt;/title&gt;</tt>.
+      </p><p>
+        The DTD (in the case of the GDP, DocBook) defines rules for how the
+        elements can be used. For example, if one element can only be used when
+        embedded within another, this is defined in the DTD.
+      </p><p> 
+	An SGML file is just a plain ASCII file containing the text
+	with the markup specified above. To convert it  to some easily
+	readable format, you need special tools. The GDP uses <span class="emphasis"><em>DocBook
+        Tools</em></span>, a free package of utilities for working with DocBook
+        which includes <span class="emphasis"><em>Jade</em></span>, which does the SGML/DSSL
+        parsing. You can read more about DocBook Tools in <a href="ar01s02.html#installingdocbook" title="Installing DocBook">the section called &#8220;Installing DocBook&#8221;</a>. 
+      </p><p>
+        The final appearance of the output (e.g. PostScript or HTML)
+        is determined by a
+        <span class="emphasis"><em>stylesheet</em></span>. Stylesheets are files,
+        written in a special language (DSSSL -- Document Style
+        Semantics and Specification Language), which  specify the
+        appearance of various DocBook elements, for example,
+        what fonts to use for titles and various inline elements, page
+        numbering style, and much more. DocBook tools come with a
+        collection of stylesheets (Norman Walsh's modular
+        stylesheets); GNOME Document Project uses some customized
+        version of this stylesheets -- see <a href="ar01s02.html#gdpstylesheets" title="GDP Stylesheets">the section called &#8220;GDP Stylesheets&#8221;</a>.   
+      </p><p>
+        The advantage of specifying the <span class="emphasis"><em>structure</em></span>
+        of a document with SGML instead of specifying the
+        <span class="emphasis"><em>appearance</em></span> of the document with a typical
+        word processor, or with html, is that the resulting document
+        can be processed in a variety of ways using the structural
+        information.  Whereas formatting a document for appearance
+        assumes a medium (typically written text on a standard-sized
+        piece of paper), SGML can be processed to produce output for a
+        large variety of media such as text, postscript, HTML,
+        Braille, audio, and potentially many other formats.
+      </p><p>
+        Using 'content' as the elements to define the text of a document also
+        allows for search engines to make use of the actual elements to make a
+        "smarter search". For example, if you are searching for all documents
+        written by the author "Susie" your search engine could be made smart
+        enough to only search &lt;author&gt; elements, making for a faster and more
+        accurate search.
+      </p><p>
+        Since the overall appearance of the output is determined not by the DTD
+        or the SGML document, but rather by a stylesheet, the appearance of a
+        document can be easily changed just by changing the stylesheet. This
+        allows everyone in the project to create documents that all look the
+        same.
+      </p><p>
+        As stated before, the GDP uses the DocBook DTD.  For a list of
+        introductory and reference resources on DocBook, see <a href="ar01s15.html" title="Resources">the section called &#8220;Resources&#8221;</a>.  The following sections also provide
+        convenient instructions on which markup tags to use in various
+        circumstances.  Be sure to read <a href="ar01s05.html" title="GDP Documentation Conventions ">the section called &#8220;GDP Documentation Conventions &#8221;</a>
+        for GDP documentation-specific guidelines.
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="xml"></a>XML and SGML</h3></div></div><p> In not so distant future (probably before GNOME 2.0),
+      DocBook itself and GNOME Documentation project will migrate from
+      SGML to XML. This transition should be relatively painless:
+      (almost) all DocBook tags will remain the same. However, XML has
+      stricter syntax rules than SGML; thus, some constructions which
+      are valid in SGML will not be valid in XML. Therefore, to be
+      ready for this transistion, it is <span class="emphasis"><em>strongly
+      advised</em></span> that the documentation writers conform to XML
+      syntax rules. Here are most important differences:
+      </p><div class="variablelist"><dl><dt><span class="term"> <span class="emphasis"><em>Minimization</em></span></span></dt><dd><p>
+	      It is possible with some implementations of SGML to use
+	      minimizations to close elements in a document by using
+	      &lt;/&gt;, for example:
+	      <tt><tt class="sgmltag-element">&lt;title&gt;</tt>The
+		Title<tt class="sgmltag-element">&lt;/&gt;</tt></tt>. This is not
+              allowed in XML. You can use <b>sgmlnorm</b> command,
+              included in DocBook Tools package, to expand minimized tags;
+              if you are using Emacs with psgml
+              mode, you can also use menu command
+          Modify-&gt;Normalize.
+         </p></dd><dt><span class="term"> <span class="emphasis"><em>Self-closing tags</em></span></span></dt><dd><p>
+            Also, in SGML some tags are allowed not to have closing
+            tags.  For example, it is legal for
+            <tt class="sgmltag-element">&lt;xref&gt;</tt> not to have a closing tag: 
+            <tt><tt class="sgmltag-element">&lt;xref 
+                   linkend="someid"&gt;</tt></tt>. In
+            XML, it is illegal; instead, you should use  
+            <tt><tt class="sgmltag-element">&lt;xref 
+                   linkend="someid"/&gt;</tt></tt> (note the
+            slash!).
+          </p></dd><dt><span class="term"> <span class="emphasis"><em>Case sensitive tags</em></span></span></dt><dd><p>
+	      In XML, unlike SGML, tags are case-senstive
+	      <tt class="sgmltag-element">&lt;title&gt;</tt> and
+	      <tt class="sgmltag-element">&lt;TITLE&gt;</tt> are different tags!
+	      Therefore, please always use lowercase tags (except for
+	      things like <tt>DOCTYPE, CDATA</tt> and
+	      <tt>ENTITY</tt>, which are not DocBook tags). 
+	    </p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="structure"></a> Structure Elements</h3></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="section"></a>Sections and paragraphs</h4></div></div><p>
+          Top-level element of a book body must be
+          <tt class="sgmltag-element">&lt;chapter&gt;</tt>; it may contain one or more
+          <tt class="sgmltag-element">&lt;sect1&gt;</tt>, each of them may contain
+          <tt class="sgmltag-element">&lt;sect2&gt;</tt> and so on up to
+          <tt class="sgmltag-element">&lt;sect5&gt;</tt>. The top-level element of an
+          article body is always
+          <tt class="sgmltag-element">&lt;sect1&gt;</tt>. Regardless of which elements
+          you use, give each structural element a unique id, so that
+          you can link to it. For usage example, see the template.
+        </p><p> Please try to avoid using deeply nested sections; for
+          most situations, <tt class="sgmltag-element">&lt;sect1&gt;</tt> and
+          <tt class="sgmltag-element">&lt;sect2&gt;</tt> should be sufficient. If not,
+          you probably should split your <tt class="sgmltag-element">&lt;sect1&gt;</tt>
+          into several smaller ones.
+        </p><p> Use the tag <tt class="sgmltag-element">&lt;para&gt;</tt> for
+          paragraphs, even if there is only one paragraph in a
+          section--see template for examples.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="notes"></a>Notes, Warnings, And Tips</h4></div></div><p>
+          For notes, tips, warnings, and important information, which
+          should be set apart from the main text (usually as a
+          paragraph with some warning sign on the margin), use tags
+          <tt class="sgmltag-element">&lt;note&gt;</tt>, <tt class="sgmltag-element">&lt;tip&gt;</tt>,
+          <tt class="sgmltag-element">&lt;warning&gt;</tt>,
+          <tt class="sgmltag-element">&lt;important&gt;</tt> respectively. For example:
+          </p><pre class="programlisting">
+
+&lt;tip&gt;
+ &lt;title&gt;TIP&lt;/title&gt;
+ &lt;para&gt;
+  To speed up program compilation, use &lt;application&gt;gcc&lt;/application&gt;
+  compiler with Pentium optimization.
+ &lt;/para&gt;
+&lt;/tip&gt; </pre><p>  produces
+        </p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="extip"></a>TIP</h3><p>
+            To speed up program compilation, use
+            gcc compiler with Pentium
+            optimization.  </p></div><p>
+          Note that this should not be inside a
+          <tt class="sgmltag-element">&lt;para&gt;</tt> but between paragraphs.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="figures"></a> Screenshots and other figures</h4></div></div><p>
+          To include screenshots and other figures, use the following
+          tags:
+          
+          </p><pre class="programlisting">
+
+&lt;figure id="shot1"&gt;
+ &lt;title&gt;Screenshot&lt;/title&gt;
+ &lt;screenshot&gt;
+  &lt;screeninfo&gt;Screenshot of a program&lt;/screeninfo&gt;
+  &lt;graphic format="PNG"  fileref="figures/example_screenshot" srccredit="ME"&gt;
+  &lt;/graphic&gt;
+ &lt;/screenshot&gt;
+&lt;/figure&gt;
+          </pre><p>
+          replacing <tt>example_screenshot</tt> with the
+          actual file name (without extension). The result will look like this:
+          
+          </p><div class="figure"><a name="shot1"></a><p class="title"><b>Figure 1. Screenshot</b></p><div class="screenshot"><div><img src="figures/example_screenshot" alt="Screenshot"></div></div></div><p>
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">NOTE</h3><p>
+            Notice in this example that the screenshot file name does
+            not include the file type extension -- to find out
+            why, please read <a href="ar01s02.html#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a>.
+          </p></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="listing"></a>Program listings and terminal session</h4></div></div><p>
+          To show a file fragment--for example, program
+          listing--use <tt class="sgmltag-element">&lt;programlisting&gt;</tt> tag:
+          </p><pre class="programlisting">
+
+&lt;programlisting&gt;
+[Desktop Entry] 
+Name=Gnumeric spreadsheet
+Exec=gnumeric 
+Icon=gnome-gnumeric.png 
+Terminal=0
+Type=Application
+&lt;/programlisting&gt;
+          </pre><p>
+          which produces
+          </p><pre class="programlisting">
+[Desktop Entry] 
+Name=Gnumeric spreadsheet 
+Exec=gnumeric
+Icon=gnome-gnumeric.png 
+Terminal=0 
+Type=Application
+          </pre><p>
+          As a matter of fact, all examples in this document were
+          produced using <tt class="sgmltag-element">&lt;programlisting&gt;</tt>.
+        </p><p>
+          To show a record of terminal session--i.e., sequence of
+          commands entered at the command line--use
+          <tt class="sgmltag-element">&lt;screen&gt;</tt> tag:
+          </p><pre class="programlisting">
+
+&lt;screen&gt;
+&lt;prompt&gt;bash$&lt;/prompt&gt;&lt;userinput&gt;make love&lt;/userinput&gt; 
+make: *** No rule to make target `love'. Stop.
+&lt;/screen&gt;
+          </pre><p>
+          which produces
+          </p><pre class="screen">
+<tt>bash$</tt><b><tt>make love</tt></b>  
+make: *** No rule to make target `love'.  Stop.
+          </pre><p>
+          Note the use of tags <tt class="sgmltag-element">&lt;prompt&gt;</tt> and
+          <tt class="sgmltag-element">&lt;userinput&gt;</tt> for marking system prompt
+          and commands entered by user.
+          </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">NOTE</h3><p>
+              Note that both <tt class="sgmltag-element">&lt;programlisting&gt;</tt>
+              and <tt class="sgmltag-element">&lt;screen&gt;</tt> preserve linebreaks,
+              but interpret SGML tags (unlike LaTeX
+              verbatim environment). Take a look at
+              the source of this document to see how you can have SGML
+              tags literally shown but not interpreted,
+            </p></div><p>
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="lists"></a> Lists</h4></div></div><p>
+	  The most common list types  in DocBook are
+	  <tt class="sgmltag-element">&lt;itemizedlist&gt;</tt>,
+	  <tt class="sgmltag-element">&lt;orderedlist&gt;</tt>, and 
+	  <tt class="sgmltag-element">&lt;variablelist&gt;</tt>.
+	</p><div class="variablelist"><dl><dt><span class="term"> <tt class="sgmltag-element">&lt;itemizedlist&gt;</tt></span></dt><dd><p> 
+		This is the simplest unnumbered list, parallel to
+	    <tt class="sgmltag-element">&lt;ul&gt;</tt> in HTML. Here is an example: 
+		</p><pre class="programlisting">
+
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Show backup files&lt;/guilabel&gt; &amp;mdash; This will
+      show any backup file that might be on your system.
+    &lt;/para&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Show hidden files&lt;/guilabel&gt; &amp;mdash; This will
+      show all "dot files" or files that begin with a dot.  This
+      files typically include configuration files and directories.
+    &lt;/para&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Mix files and directories&lt;/guilabel&gt; &amp;mdash; This
+      option will  display files and directories in the order you
+      sort them instead of 
+      always having directories shown above files.
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+&lt;/itemizedlist&gt; 
+
+		</pre><p>
+		and output:
+                </p><div class="itemizedlist"><ul type="disc"><li><p>
+		      Show backup files --
+		      This will show any backup file that might be on
+		      your system.
+		    </p></li><li><p>
+		      Show hidden files --
+		      This will show all "dot files" or files that
+		      begin with a dot.  This files typically include
+		      configuration files and directories.
+		    </p></li><li><p>
+		      Mix files and directories
+		      -- This option will display files and
+		      directories in the order you sort them instead
+		      of always having directories shown above files.
+		    </p></li></ul></div><p> Note the use of <tt class="sgmltag-element">&amp;mdash;</tt>
+              for long dash (see <a href="ar01s04.html#specsymb" title=" Special symbols ">the section called &#8220; Special symbols &#8221;</a>). Also,
+              please note that the result looks much nicer because the
+              terms being explained (Show backup
+              files, etc.) are set in a different font. In
+              this case, it was achieved by using <a href="ar01s04.html#gui" title="GUI elements"><tt class="sgmltag-element">&lt;guilabel&gt;</tt></a>
+              tag. In other cases, use appropriate tags such as
+              <a href="ar01s04.html#gui" title="GUI elements"><tt class="sgmltag-element">&lt;guimenuitem&gt;</tt></a>,
+              <a href="ar01s04.html#filenames" title="Filenames, commands, and other
+        computer-related things"><tt class="sgmltag-element">&lt;command&gt;</tt></a>,
+              or -- if none of
+              this applies -- use
+              <a href="ar01s04.html#gui" title="GUI elements"><tt class="sgmltag-element">&lt;emphasis&gt;</tt></a>.
+	      </p></dd><dt><span class="term"> <tt class="sgmltag-element">&lt;orderedlist&gt;</tt></span></dt><dd><p>
+		This list is completely analogous to
+		<tt class="sgmltag-element">&lt;itemizedlist&gt;</tt> and has the same
+		syntax, but  it produces numbered list. By default,
+		this list uses Arabic numerals for numbering entries;
+		you can override this using <tt class="sgmltag-element">numeration</tt>,
+		for example <tt class="sgmltag-element">&lt;orderedlist
+		  numeration="lowerroman"&gt;</tt>. Possible values of
+		these attribute are <tt class="sgmltag-element">arabic</tt>,
+		<tt class="sgmltag-element">upperalpha</tt>,
+		<tt class="sgmltag-element">loweralpha</tt>,
+		<tt class="sgmltag-element">upperroman</tt>,
+		<tt class="sgmltag-element">lowerroman</tt>.
+	      </p></dd><dt><span class="term"> <tt class="sgmltag-element">&lt;variablelist&gt;</tt></span></dt><dd><p> This list is used when each entry is
+	    rather long, so it should be formatted as a block of text
+	    with some subtitle, like a small subsection.  The
+	    <tt class="sgmltag-element">&lt;variablelist&gt;</tt> is more complicated
+	    than itemizedlists, but for larger blocks of text, or when
+	    you're explaining or defining something, it's best to use
+	    them.  Their greatest advantage is that it's easier for a
+	    computer to search.  The lines you are reading now were
+	    produced by <tt class="sgmltag-element">&lt;variablelist&gt;</tt>. The
+	    source looked liked this:
+		</p><pre class="programlisting">
+
+&lt;variablelist&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt; &lt;sgmltag&gt;&amp;lt;itemizedlist&gt;&lt;/sgmltag&gt;&lt;/term&gt; 
+    &lt;listitem&gt;&lt;para&gt; 
+	This is the simplest unnumbered list, parallel to
+        &lt;sgmltag&gt;&amp;lt;ul&gt;&lt;/sgmltag&gt; in HTML. Here is an example:...
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+    &lt;varlistentry&gt;		 
+	&lt;term&gt; &lt;sgmltag&gt;&amp;lt;orderedlist&gt;&lt;/sgmltag&gt;&lt;/term&gt;
+     &lt;listitem&gt;&lt;para&gt;	
+	This list is completely analogous to
+	&lt;sgmltag&gt;&amp;lt;itemizedlist&gt;&lt;/sgmltag&gt; 
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+    &lt;varlistentry&gt;		 
+	&lt;term&gt; &lt;sgmltag&gt;&amp;lt;variablelist&gt;&lt;/sgmltag&gt;&lt;/term&gt;
+     &lt;listitem&gt;&lt;para&gt;	
+		This list is used when each entry is rather long,...
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+&lt;/variablelist&gt;        
+
+		</pre><p>		
+		</p></dd></dl></div><p>
+	Lists can be nested; in this case, the stylesheets
+	are smart enough to change the numeration (for
+	<tt class="sgmltag-element">&lt;orderedlist&gt;</tt>) or marks of each entry
+	(in  <tt class="sgmltag-element">&lt;itemizedlist&gt;</tt>) for sub-lists
+	</p></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="inline"></a>Inline Elements</h3></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="gui"></a>GUI elements</h4></div></div><div class="itemizedlist"><ul type="disc"><li><p>
+              <tt class="sgmltag-element">&lt;guibutton&gt;</tt> -- used for
+              buttons, including checkbuttons and radio buttons
+            </p></li><li><p>
+              <tt class="sgmltag-element">&lt;guimenu&gt;</tt>, 
+              <tt class="sgmltag-element">&lt;guisubmenu&gt;</tt> --used for 
+	      top-level menus and submenus
+              respectively, for example <tt>
+              &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of the
+              &lt;guimenu&gt;Main Menu&lt;/guimenu&gt;</tt>
+            </p></li><li><p>
+              <tt class="sgmltag-element">&lt;guimenuitem&gt;</tt>--an entry in a
+              menu
+            </p></li><li><p>
+              <tt class="sgmltag-element">&lt;guiicon&gt;</tt>--an icon
+            </p></li><li><p>
+              <tt class="sgmltag-element">&lt;guilabel&gt;</tt>--for items which have
+              labels, like tabs, or bounding boxes. 
+            </p></li><li><p>
+              <tt class="sgmltag-element">&lt;interface&gt;</tt>-- for most everything
+              else... a window, a dialog box, the Panel, etc.
+            </p></li></ul></div><p>
+          If you need to refer to a sequence of menu choices, such as
+          Main Menu-&gt;Utilities-&gt;GNOME
+            terminal
+          there is a special construction for this, too:
+          </p><pre class="programlisting">
+
+&lt;menuchoice&gt;
+ &lt;guimenu&gt;Main Menu&lt;/guimenu&gt; &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt;
+ &lt;guimenuitem&gt;GNOME terminal&lt;/guimenuitem&gt; &lt;/menuchoice&gt;
+          </pre><p>
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="links"></a>Links and references</h4></div></div><p>
+          To refer to another place in the same document, you can use
+          tags <tt class="sgmltag-element">&lt;xref&gt;</tt> and
+          <tt class="sgmltag-element">&lt;link&gt;</tt>. The first of them
+          automatically inserts the full name of the element you refer
+          to (section, figure, etc.), while the second just creates a
+          link (in HTML output). Here is an example:
+          </p><pre class="programlisting">
+An example of a &lt;link linkend="extip"&gt;tip&lt;/link&gt; was given in
+&lt;xref linkend="notes" /&gt;.  
+          </pre><p>
+          which produces: An example of a <a href="ar01s04.html#extip">tip</a> was given in  <a href="ar01s04.html#notes" title="Notes, Warnings, And Tips">the section called &#8220;Notes, Warnings, And Tips&#8221;</a>.
+        </p><p>
+          Here <tt class="sgmltag-element">notes</tt> and <tt class="sgmltag-element">extip</tt>
+          are the id attributes of <a href="ar01s04.html#notes" title="Notes, Warnings, And Tips">the section called &#8220;Notes, Warnings, And Tips&#8221;</a> and of the
+          example of a tip in it.
+        </p><p>  To produce a link  to an external source, such as a
+          Web page or a local file, use <tt class="sgmltag-element">&lt;ulink&gt;</tt>
+          tag, for example:
+          </p><pre class="programlisting">
+ To find more about GNOME, please visit &lt;ulink type="http"
+url="http://www.gnome.org"&gt;GNOME Web page&lt;/ulink&gt; 
+          </pre><p>
+          which produces:  To find more about GNOME, please visit
+          <a href="http://www.gnome.org" target="_top">The GNOME Web
+          Site</a> You can use any of the standard URL types, such
+          as <tt>http, ftp, file, telnet, mailto</tt> (in
+          most cases, however, use of <tt>mailto</tt> is
+          unnecessary--see discussion of
+          <tt class="sgmltag-element">&lt;email&gt;</tt> tag).
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="filenames"></a>Filenames, commands, and other
+        computer-related things</h4></div></div><p>
+          Here are some tags used to describe operating system-related
+          things:  
+        </p><div class="itemizedlist"><ul type="disc"><li><p>  <tt class="sgmltag-element">&lt;filename&gt;</tt> -- used
+              for filenames,
+              e.g.<tt class="sgmltag-element">&lt;filename&gt;</tt>
+                    foo.sgml
+                  <tt class="sgmltag-element">&lt;/filename&gt;</tt> 
+              produces: <tt>foo.sgml</tt>.
+            </p></li><li><p>  <tt class="sgmltag-element">&lt;filename
+              class="directory"&gt;</tt> -- used for
+              directories, e.g.<tt class="sgmltag-element">&lt;filename
+              class="directory"&gt;</tt>/usr/bin
+                  <tt class="sgmltag-element">&lt;/filename&gt;</tt>
+              produces: <tt>/usr/bin</tt>.
+            </p></li><li><p>
+              <tt class="sgmltag-element">&lt;application&gt;</tt> -- used for
+              application names,
+              e.g. <tt class="sgmltag-element">&lt;application&gt;</tt>Gnumeric
+              <tt class="sgmltag-element">&lt;/application&gt;</tt> produces:
+              Gnumeric.
+            </p></li><li><p>
+	      <tt class="sgmltag-element">&lt;envar&gt;</tt> -- used for
+	      environment variables, e.g. 
+              <tt class="sgmltag-element">&lt;envar&gt;</tt>PATH<tt class="sgmltag-element">&lt;/envar&gt;</tt>. 
+            </p></li><li><p>
+              <tt class="sgmltag-element">&lt;command&gt;</tt> -- used for
+              commands entered on command line, e.g.
+              <tt class="sgmltag-element">&lt;command&gt;</tt>make install
+              <tt class="sgmltag-element">&lt;/command&gt;</tt> produces:
+              <b>make install</b>.
+            </p></li><li><p>
+              <tt class="sgmltag-element">&lt;replaceable&gt;</tt> -- used for
+              replaceable text, e.g.
+              <tt class="sgmltag-element">&lt;command&gt;</tt>db2html<tt class="sgmltag-element">&lt;replaceable&gt;</tt>
+              foo.sgml
+              <tt class="sgmltag-element">&lt;/replaceable&gt;</tt><tt class="sgmltag-element">&lt;/command&gt;</tt>
+              produces: <b>db2html
+              <i><tt>foo.sgml</tt></i></b>.
+            </p></li></ul></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="keys"></a>Keyboard input</h4></div></div><p> To mark up text input by the user, use
+        <tt class="sgmltag-element">&lt;userinput&gt;</tt>.
+        </p><p>  To mark keystrokes such as shortcuts and other
+          commands, use <tt class="sgmltag-element">&lt;keycap&gt;</tt>. 
+          This is used for marking up what is printed on the top 
+          of the physical key on the keyboard. There are a couple of
+          other tags for keys, too: <tt class="sgmltag-element">&lt;keysym&gt;</tt>
+          and <tt class="sgmltag-element">&lt;keycode&gt;</tt>. However you are
+          unlikely to need these for most documentation. For reference,
+          <tt class="sgmltag-element">&lt;keysym&gt;</tt> is for the &#8220;symbolic
+          name&#8221; of a key. <tt class="sgmltag-element">&lt;keycode&gt;</tt> is
+          for the &#8220;scan code&#8221; of a key. These are not
+          terms commonly required in GNOME documentation,
+          although <tt class="sgmltag-element">&lt;keysym&gt;</tt> is useful for marking
+          up control codes.
+       </p><p>
+          To mark up a combination of keystrokes, use the
+          <tt class="sgmltag-element">&lt;keycombo&gt;</tt> wrapper:
+          </p><pre class="programlisting">
+
+&lt;keycombo&gt;
+ &lt;keycap&gt;Ctrl&lt;/keycap&gt;
+ &lt;keycap&gt;Alt&lt;/keycap&gt;
+ &lt;keycap&gt;F1&lt;/keycap&gt;
+&lt;/keycombo&gt;
+          </pre><p>
+        </p><p>
+          Finally, if you want to show a shortcut for some menu
+          command, here are the appropriate tags (rather long):
+          </p><pre class="programlisting">
+
+&lt;menuchoice&gt;
+ &lt;shortcut&gt;
+  &lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;q&lt;/keycap&gt;&lt;/keycombo&gt;
+ &lt;/shortcut&gt; 
+ &lt;guimenuitem&gt; Quit&lt;/guimenuitem&gt; 
+&lt;/menuchoice&gt;
+          </pre><p>
+          which produces simply
+           Quit (<b>Ctrl-q</b>)
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="email"></a>E-mail addresses</h4></div></div><p>  To mark up e-mail
+        address, use <tt class="sgmltag-element">&lt;email&gt;</tt>:
+          </p><pre class="programlisting">
+ The easiest way to get in touch with me is by e-mail
+(&lt;email&gt;me at mydomain.com&lt;/email&gt;)
+          </pre><p>
+          which produces: The easiest way to get in touch with me is
+          by e-mail  (<tt>&lt;<a href="mailto:me at mydomain.com">me at mydomain.com</a>&gt;</tt>) Note that
+          <tt class="sgmltag-element">&lt;email&gt;</tt> automatically produces a link
+          in html version.
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="specsymb"></a> Special symbols </h4></div></div><p> 
+	  DocBook also provides special means for entering
+	typographic symbols which can not be entered directly
+	form the keyboard (such as copyright sign). This is done using
+	<span class="emphasis"><em>entities</em></span>, which is SGML analogue of
+	macros, or commands, of LaTeX. They generally have the form 
+	  <tt class="sgmltag-element">&amp;entityname;</tt>. Note that the semicolon
+	is required. 
+	</p><p>
+	  here is partial list of most commonly used enitites:
+	</p><div class="itemizedlist"><ul type="disc"><li><p>
+             <tt class="sgmltag-element">&amp;amp;</tt> -- ampersend (&amp;)
+	  </p></li><li><p>
+             <tt class="sgmltag-element">&amp;lt;</tt> -- left angle bracket (&lt;)
+	  </p></li><li><p>
+             <tt class="sgmltag-element">&amp;copy;</tt> -- copyright sign (©)
+	  </p></li><li><p>
+             <tt class="sgmltag-element">&amp;mdash;</tt> -- long dash (--)
+	  </p></li><li><p>
+             <tt class="sgmltag-element">&amp;hellip;</tt> -- ellipsis (...)
+	  </p></li></ul></div><p>
+	  Note that the actual look of the resulting symbols depends
+	  on the fonts used by your browser; for example, it might
+	  happen that long dash (<tt class="sgmltag-element">&amp;mdash;</tt>) looks
+	  exactly like the usual dash (-). However, in the PostScript
+	  (and thus, in print) the output will look markedly better if
+	  you use appropriate tags. 
+	</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s03.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s05.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNOME Documentation System </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> GDP Documentation Conventions </td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s05.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s05.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s05.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,39 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>GDP Documentation Conventions </title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s04.html" title="DocBook Basics "><link rel="next" href="ar01s06.html" title="Writing Application and Applet Manuals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">GDP Documentation Conventions </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s04.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s06.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="conventions"></a>GDP Documentation Conventions </h2></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="conventionsalldocs"></a>Conventions for All GDP Documentation</h3></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="xmlcomp"></a> XML compatibility </h4></div></div><p>
+	  All GNOME documentation  should conform to XML syntax
+	  requirements, which are stricter than SGML ones -- see
+	  <a href="ar01s04.html#xml" title="XML and SGML">the section called &#8220;XML and SGML&#8221;</a> for more informaion.
+	</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="authorsnames"></a> Authors' names</h4></div></div><p> 
+	  All GNOME documentation should contain the names of both the
+	  application authors and documentation authors, as well as a
+	  link to the application web page (if it exists) and
+	  information for bug submission -- see templates for an
+	  example. 
+	  </p></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="conventionsappdocs"></a>Conventions for Application Documentation</h3></div></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="applicationversionid"></a>Application Version Identification</h4></div></div><p>
+          Application documentation should identify the version of the
+          application for which the documentation is written:
+          </p><pre class="programlisting">
+
+&lt;sect1 id="intro"&gt;
+ &lt;title&gt;Introduction&lt;/title&gt;
+ &lt;para&gt;
+  blah-blah-blah This document describes version 1.0.53 of gfoo.
+ &lt;/para&gt;
+&lt;/sect1&gt;
+          </pre><p>
+        </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="license"></a> Copyright information </h4></div></div><p> Application
+        documentation should contain a copyright notice, stating the
+        licensing terms. It is suggested that you use the GNU Free
+        Documentation License.  You could also use some other license
+        allowing free redistribution, such as GPL or Open Content
+        license.  If documentation uses some trademarks (such as UNIX,
+        Linux, Windows, etc.), proper legal junk should also be
+        included (see templates).
+	</p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="license2"></a>Software license</h4></div></div><p> 
+         All GNOME applications must contain information about the
+       license (for software, not for documentation), either in the
+       "About" box or in the manual. 
+       </p></div><div class="sect3"><div class="titlepage"><div><h4 class="title"><a name="bugtraq"></a> Bug reporting</h4></div></div><p> 
+	  Application documentation should give an address for
+        reporting bugs and for submitting comments about the
+        documentaion (see templates for an example). 
+       </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s06.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">DocBook Basics  </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Writing Application and Applet Manuals</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s06.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s06.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s06.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,43 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Writing Application and Applet Manuals</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s05.html" title="GDP Documentation Conventions "><link rel="next" href="ar01s07.html" title="Listing Documents in the Help Menu"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing Application and Applet Manuals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s05.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s07.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="writingapplicationmanuals"></a>Writing Application and Applet Manuals</h2></div></div><p>
+       Every GNOME application or applet should have a manual specific
+      to that particular application. This manual should be a complete
+      and authoritative guide.  The manual should describe what the
+      program does and how to use it.  Manuals will typically describe
+      each window or panel presented to the user using screenshots (in
+      PNG format only) when appropriate.  They should also describe
+      each feature and preference option available.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Documentation Availability</h3><p>
+        Applications and applets should not rely on documentation
+        which is only available on the internet.  All manuals and
+        other documentation should be packaged with the application or
+        applet and be made available to the user through the standard
+        GNOME help system methods described below.
+      </p></div><p> Application manuals should be based on the template in
+    <a href="apa.html#template1" title="Template 1: Application Manual">the section called &#8220;Template 1: Application Manual&#8221;</a>.  Applet manuals should be based on
+    the templates in <a href="apas02.html" title="Template 2: Applet Manual For GNOME 1.x">the section called &#8220;Template 2: Applet Manual For GNOME 1.x&#8221;</a> for GNOME
+    versions 1.x and the templates in <a href="apas03.html" title="Template 2: Applet Manual For GNOME 2.x">the section called &#8220;Template 2: Applet Manual For GNOME 2.x&#8221;</a>
+    for GNOME versions 2.x.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Manuals For Large Applications</h3><p>
+        Manuals for very large applications, such as GNOME Workshop
+        components should be a <tt class="sgmltag-element">&lt;book&gt;</tt> (and thus
+        use <tt class="sgmltag-element">&lt;chapter&gt;</tt> for each primary section)
+        , instead of <tt class="sgmltag-element">&lt;article&gt;</tt> which most
+        applications use(with each primary section being a
+        <tt class="sgmltag-element">&lt;sect1&gt;</tt>).
+      </p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Applet Manuals in GNOME 2.0</h3><p>
+        Note that applet manuals in GNOME 2.0 are treated in a special
+        way.  The manuals for all applets are merged into a single
+        virtual document by Nautilus.  For this reason, the header
+        information for applet manuals is omitted and the  first
+        section of each applet is
+        <tt class="sgmltag-element">&lt;sect1&gt;</tt>. Applet manuals will typically
+        have several sections, each of which is
+        <tt class="sgmltag-element">&lt;sect2&gt;</tt>.
+      </p></div><p>
+      Application manuals should be made available by having a
+      "Manual" entry in the Help pull-down menu
+      at the top of the 
+      application, as described in <a href="ar01s07.html" title="Listing Documents in the Help Menu">the section called &#8220;Listing Documents in the Help Menu&#8221;</a>.
+      Applets should make their manuals available by
+      right-clicking on the applet. 
+    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s05.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s07.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">GDP Documentation Conventions  </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Listing Documents in the Help Menu</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s07.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s07.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s07.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,59 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Listing Documents in the Help Menu</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s06.html" title="Writing Application and Applet Manuals"><link rel="next" href="ar01s08.html" title="Application Help Buttons"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Listing Documents in the Help Menu</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s06.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s08.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="listingdocsinhelpmenu"></a>Listing Documents in the Help Menu</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Developer Information</h3><p>
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </p></div><p>
+      Typically the application manual and possibly additional help
+      documents will be made available to the user under the
+      Help menu at the top right of the
+      application. To do this, you must first write a
+      <tt>topic.dat</tt> file. The format for this file is:
+      </p><pre class="programlisting">
+One line for each 'topic'.
+
+Two columns, as defined by perl -e 'split(/\s+/,$aline,2)'
+
+First column is the HTML file (and optional section) for the topic,
+relative to the app's help file dir.
+
+Second column is the user-visible topic name.
+      </pre><p>
+      For example, Gnumeric's
+      <tt>topic.dat</tt> file is:
+      </p><pre class="programlisting">
+gnumeric.html   Gnumeric manual
+function-reference.html Gnumeric function reference
+      </pre><p>
+      When the application is installed, the
+      <tt>topic.dat</tt> file should be placed in the
+      <tt>$prefix/share/gnome/help/<i><tt>appname</tt></i>/C/</tt> directory
+      where <i><tt>appname</tt></i> is replaced by the
+      application's name.  The application documentation (converted
+      from SGML into HTML with <b>db2html</b>) should be
+      placed in this directory too.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+       If the help files are not present in the correct directory, the
+       menu items will NOT appear when the program is run. 
+      </p></div><p>
+      The <tt>topic.dat</tt> file is used by the GNOME
+      menu building code to generate the Help
+      menu. When you define your menu:  
+</p><pre class="programlisting">
+GnomeUIInfo helpmenu[] = {
+              {GNOME_APP_UI_ITEM, 
+               N_("About"), N_("Info about this program"),
+               about_cb, NULL, NULL, 
+               GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ABOUT,
+               0, 0, NULL},
+               GNOMEUIINFO_SEPARATOR,
+               GNOMEUIINFO_HELP("<span class="emphasis"><em>appname</em></span>"),
+               GNOMEUIINFO_END
+        };
+</pre><p>
+      the line specifying <tt>GNOMEUIINFO_HELP</tt> causes
+      GNOME to create a menu entry which is tied to the documentation
+      in the directory mentioned above. Also, all the topics in the
+      <tt>topic.dat</tt> file will get menu entries in the
+      Help menu. When the user selects any of these
+      topics from the Help menu, a help browser
+      will be started with the associated HTML documentation.
+    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s06.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s08.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Writing Application and Applet Manuals </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Application Help Buttons</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s08.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s08.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s08.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Application Help Buttons</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s07.html" title="Listing Documents in the Help Menu"><link rel="next" href="ar01s09.html" title="Packaging Applet Documentation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Application Help Buttons</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s07.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s09.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="applicationhelpbuttons"></a>Application Help Buttons</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Developer Information</h3><p>
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </p></div><p>
+      Most GNOME applications will have Help
+      buttons.  These are most often seen in Preference windows. (All
+      Preference windows should have Help
+      buttons.) Most Help buttons will connect
+      to the application manual, although some may connect to special
+      documents.  Because the Help buttons do
+      not generally have their own special documentation, the
+      documentation author(s) do not need to do very much.  However,
+      the application author must be careful to guarantee that the
+      application correctly opens the help documentation when the
+      Help buttons are pressed.  
+    </p><p>
+      To make the Help buttons call the correct document in the GNOME Help
+      Browser the developer should add code based on the following example:
+    </p><pre class="programlisting">
+gchar *tmp;
+tmp = gnome_help_file_find_file ("module", "page.html");
+if (tmp) {
+  gnome_help_goto(0, tmp);
+  g_free(tmp);
+}
+    </pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">NOTE</h3><p>
+        The example above is in the C language, please refer to other
+        documentation or forums for other GNOME language bindings.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s07.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s09.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Listing Documents in the Help Menu </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Packaging Applet Documentation</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s09.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s09.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s09.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,72 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Packaging Applet Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s08.html" title="Application Help Buttons"><link rel="next" href="ar01s10.html" title="Writing Context Sensitive Help (coming in GNOME-2.0)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Packaging Applet Documentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s08.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s10.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="packagingappletdocs"></a>Packaging Applet Documentation</h2></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="appletfiles"></a>Applet Documentation Files</h3></div></div><p>
+        In GNOME 2.0 each applet will have its own documentation
+        installed separately, and the GNOME 2.0 help
+        browser (Nautilus) will dynamically
+        merge the applet documents into a single virtual book
+        called <i>GNOME Applets</i>. During the
+        transitionary stage between GNOME 1.0 and GNOME 2.0, each
+        applet in the gnome-applets package has its own manual(stored
+        with the applet in CVS), but they are merged together manually
+        to create the <i>GNOME Applets</i> book before
+        distribution.  Telsa 
+        <tt>&lt;<a href="mailto:hobbit at aloss.ukuu.org.uk">hobbit at aloss.ukuu.org.uk</a>&gt;</tt> is the maintainer of
+        this document.  Applet documentation should be sent to Telsa
+        (or placed in CVS) who will make sure they are correctly
+        packaged with the applets.  The applet author should be
+        contacted to modify the menu items and help buttons to bind to
+        the applet documentation if necessary.
+      </p><p>
+        Images which are part of the applet documentation should be in
+        PNG format and should reside in the same directory as the SGML
+        document file in CVS(gnome-applets/APPLETNAME/help/C).
+      </p><p>
+        Applets which are not part of the gnome-applets package must
+        package their documentation with the particular applet
+        package. They should use the same applet template as other
+        applets.  However, the <tt class="sgmltag-element">&lt;xref&gt;</tt> links to
+        the introductory chapter of the <i>GNOME
+        Applets</i>  book must be removed (as the 1.x
+        GNOME Help Browser does not allow
+        you to create links between separate documents) and replaced
+        with suitable text.  Note that since this document is not part
+        of the <i>GNOME Applets</i> book, you must
+        remember to add <tt class="sgmltag-element">&lt;legalnotice&gt;</tt> and
+        <tt class="sgmltag-element">&lt;copyright&gt;</tt> sections.
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="appletmenu"></a>Adding Documentation to an Applet Menu</h3></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Developer Information</h3><p>
+          This section is for developers.  Documentation authors
+          generally do not need to know this material.
+        </p></div><p>
+        Applets should have About and
+        Manual menu items, typically as the first
+        and second top-most items in the menu respectively.  This
+        section describes how the developer creates these menu items
+        and links them to the documentation.
+      </p><p>
+        To add an applet's manual to its applet menu, use:
+</p><pre class="programlisting">
+/* add an item to the applet menu */
+applet_widget_register_callback(APPLET_WIDGET(applet), "manual",
+_("Manual"), &amp;open_manual, NULL);
+</pre><p>
+        Here the second argument is an arbitrary name for the
+        callback, the third argument is the label which will appear
+        when the user right clicks on the applet, and the fourth
+        argument is the callback function.
+      </p><p>
+        You will need to write a simple callback function to open the
+        help browser to the appropriate document.  This is done using
+        the <tt>gnome_help_file_find_file</tt> function,
+        as described in <a href="ar01s08.html" title="Application Help Buttons">the section called &#8220;Application Help Buttons&#8221;</a>.
+      </p><p>
+        You will also want to add an About menu
+        item to the applet's menu.  This is a
+        stock menu item and is done:
+</p><pre class="programlisting">
+applet_widget_register_stock_callback (APPLET_WIDGET(applet), "about",
+       GNOME_STOCK_MENU_ABOUT, _("About"), &amp;my_applet_cb_about,
+       NULL);
+</pre><p>
+      </p><p>
+        More information can be found at <a href="http://developer.gnome.org/doc/tutorials/applet/index.html" target="_top">Writing
+        GNOME panel applets using the GTK+/GTK-- widget set</a>.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s08.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s10.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Application Help Buttons </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Writing Context Sensitive Help (coming in GNOME-2.0)</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s10.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s10.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s10.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Writing Context Sensitive Help (coming in GNOME-2.0)</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s09.html" title="Packaging Applet Documentation"><link rel="next" href="ar01s11.html" title="Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing Context Sensitive Help (coming in GNOME-2.0)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s09.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s11.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="writingcontextsensitivehelp"></a>Writing Context Sensitive Help (coming in GNOME-2.0)</h2></div></div><p>
+      Context sensitive help, also known as "pop-up" help, will allow
+      a user to obtain help information about specific buttons or
+      parts of an application.
+    </p><p>
+      Context sensitive help is still under development and not all
+      the details are available at this time. However, the basics can
+      be shown here so that you can understand how the system will
+      work.
+    </p><p>
+      The Context Sensitive Help system is designed to allow the
+      developer to give an id to a particular portion of the User
+      Interface, for example, a button. Once the interface is complete
+      a Perl script can then be run against the interface code to
+      create a "map" file. This map file allows the developer or
+      writer to associate particular paragraph sections from an XML
+      document to the interface items.
+    </p><p>
+      The XML used for the document is a small XML DTD that is being
+      developed to use the same tags (albeit, much fewer) as DocBook
+      so that writers do not have to re-learn a new DTD.
+    </p><p>
+      Once the document is written and map file is complete, when the
+      user launches context sensitive help on the interface (either by
+      pressing a button and then clicking on the interface item they
+      want information on, or by right mouse clicking on the interface
+      item and selecting a pop-up menu item like "What's This") a
+      small transient window will appear with brief but detailed
+      information on the interface item.
+    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s09.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s11.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Packaging Applet Documentation </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s11.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s11.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s11.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s10.html" title="Writing Context Sensitive Help (coming in GNOME-2.0)"><link rel="next" href="ar01s12.html" title="Basics of Documentation Style"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s10.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s12.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="referring"></a>Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</h2></div></div><p>
+      In the GNOME 2.0 Help System, you will be able to create links
+      from one document to another.  The exact mechanism for doing
+      this is in development.
+    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s10.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s12.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Writing Context Sensitive Help (coming in GNOME-2.0) </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Basics of Documentation Style</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s12.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s12.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s12.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,118 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Basics of Documentation Style</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s11.html" title="Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)"><link rel="next" href="ar01s13.html" title="Teamwork"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Basics of Documentation Style</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s11.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s13.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="basics"></a>Basics of Documentation Style</h2></div></div><p>
+       Most people have never enjoyed reading a software manual, and
+       they probably never will.  Many times, they'll read the
+       documentation only when they run into problems, and they'll be
+       frustrated and upset before they even read a word.  On the
+       other hand, some readers will read the manual all the way
+       through, or at least look at the introduction before they
+       start. Your document might serve as a reference for an expert
+       or a guide to a beginner, and it must have enough depth to
+       satisfy the first without overwhelming the second.  Ideally, it
+       will serve beginners as they <span class="emphasis"><em>become</em></span>
+       experts. Remember, your goal is to produce <span class="emphasis"><em>complete,
+       intuitive and clear</em></span> documentation.
+    </p><p>
+       In order to write useful documentation, you'll have to know who
+       your audience is likely to be.  Then, you can look for the
+       problems they're likely to run into, and solve them.  It will
+       also help if you focus on the tasks users will perform, and
+       group features accordingly, rather than simply describing
+       features at random.  
+    </p><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="styleplanning"></a>Planning</h3></div></div><p>
+         Begin documenting by learning how to use the application and
+         reading over any existing documentation.  Pay attention to
+         places where your document will differ from the template.  It
+         may help to develop a document skeleton: a valid XML or SGML
+         document that has little or no content.  For very large
+         applications, you will need to make significant departures
+         from the templates, since you'll be using the
+         <tt class="sgmltag-element">&lt;book&gt;</tt> tag instead of
+         <tt class="sgmltag-element">&lt;chapter&gt;</tt> or
+         <tt class="sgmltag-element">&lt;article&gt;</tt>.
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="balance"></a>Achieving a Balanced Style</h3></div></div><p> 
+         Just as you need to juggle expert and novice readers,
+         you'll have to juggle a number of other extremes as you write:
+         </p><div class="itemizedlist"><ul type="disc"><li><p>
+              Documents should be complete, yet concise.  You should
+              describe every feature, but you'll have decide how much
+              detail is really necessary.  It's not, for example,
+              necessary to describe every button and form field in a
+              dialog box, but you should make sure that your readers
+              know how to bring up the dialog and what it does.  If
+              you spend fewer words on the obvious, you can spend more
+              time clarifying the ambiguous labels and explaining
+              items that are more complex.
+            </p></li><li><p>
+              Be engaging and friendly, yet professional. Games
+              documents may be less formal than productivity
+              application documents (people don't
+              <span class="emphasis"><em>use</em></span> games, they
+              <span class="emphasis"><em>play</em></span> them), but all of them should
+              maintain a standard of style which holds the reader's
+              interest without resorting to jokes and untranslatable
+              allusions or puns.
+           </p></li><li><p>
+              Examples, tips, notes, and screenshots are useful to
+              break up long stretches of text, but too many can get in
+              the way, and make your documents too choppy to read.
+              It's good to provide a screenshot of any dialog windows
+              a user might run into, but if a dialog box has several
+              tabs, it's not usually necessary to have one for each.
+           </p></li><li><p>
+              The GDP strives to have all of its documentation conform
+              to certain standards of style and content, but every
+              document (and every writer) is different.  You will need
+              to use your judgement, and write documents to fit with
+              the rest of the project, without compromising the
+              individual needs of your subject, or your own
+              individuality as a writer.
+           </p></li></ul></div><p>
+       </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="stylestructure"></a>Structure</h3></div></div><p>
+         In general, you won't have to worry too much about structure,
+         because the templates provide you with an excellent example.
+         As a general rule, try to follow that structural example.
+         That means using links, hierarchical nesting, and, if
+         necessary, a glossary or index.  You probably won't need to
+         use every available structural tag, but take advantage of
+         what DocBook provides you.
+      </p><p>
+         As to linking, there's some disagreement about whether to use
+         <tt class="sgmltag-element">&lt;xref&gt;</tt> <tt class="sgmltag-element">&lt;link&gt;</tt>
+         when you make links within your documents.  You'll have to
+         decide, based on the different ways that they are presented
+         in output, which is more appropriate given the context.
+         Regardless of which you use, you should not forget to use
+         them.  Help your readers find information that relevant to
+         the issue at hand.
+      </p><p>
+         The table of contents will be generated automatically, but
+         you will probably have to develop your own index if you wish
+         to have one.  The Nautilus Help Browser will have new, and
+         currently unknown, indexing capabilities, so index style and
+         structure are still under discussion.  The GNOME User's Guide
+         will contain a glossary in its next versions; unless you're
+         writing a<tt class="sgmltag-element">&lt;book&gt;</tt>, it will probably be best to
+         contribute to that rather than developing your own.
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="stylegrammar"></a>Grammar and Spelling</h3></div></div><p>
+        Nobody expects you to be perfect; they just expect the
+        documentation for their software to be error-free.  That means
+        that, in the same way that developers look for bugs and accept
+        bug reports, writers must check for errors in their documents.
+        Poor grammar, bad spelling, and gross technical errors in
+        draft documents are fine.  However, if those problems show up
+        in a "real" release, they can count against the credibility of
+        GNOME and Linux.  They'll also make you look bad.
+      </p><p>
+        There is no substitute for a human proofreader; use a
+        spell-check program, then read it over yourself, and then find
+        someone else to help you.  Other GDP members are, of course,
+        willing and able to help you, but non-writers are often at
+        least as helpful.
+      </p><p>
+        Proofreading documents is both a also a good way to
+        familiarize yourself with documentation, and it certainly
+        makes you valuable to the GDP. Help other writers proof their
+        documents, and they will help you with yours.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s11.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s13.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Referring to Other GNOME Documentation (coming in
+    GNOME-2.0) </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Teamwork</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s13.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s13.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s13.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Teamwork</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s12.html" title="Basics of Documentation Style"><link rel="next" href="ar01s14.html" title="Finishing A Document"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Teamwork</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s12.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s14.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="teamwork"></a>Teamwork</h2></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="teamworkgdp"></a>Working With The GDP Team</h3></div></div><p>
+        The GDP team is a valuable resource for any documentation
+        author.  GDP members can answer most questions documentation
+        authors have during the course of their work. It is also
+        important to make sure you are not duplicating work of other
+        GDP members by visiting the <i>GDP Documentation
+        Status Table</i> (<a href="http://www.gnome.org/gdp/doctable/" target="_top">http://www.gnome.org/gdp/doctable/</a>) and
+        assigning a documentation item to yourself.  This table also
+        provides a forum for making suggestions and announcements for
+        each documentation item.  The best way to get in touch with
+        GDP members is on the #docs IRC channel at irc.gnome.org or
+        else by emailing the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+        <i>gnome-doc-list mailing list</i></a>.
+      </p><p>
+        After an author has finished a document (or even a draft
+        version of the document), it is a good idea to ask a member of
+        the GDP team to read the document, checking it for grammar,
+        proper DocBook markup, and clarity.  One may typically find
+        another author to do this by either asking on the #docs IRC
+        channel at irc.gnome.org or by emailing the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+        <i>gnome-doc-list mailing list</i></a>.
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="teamworkdevelopers"></a>Working With Developers</h3></div></div><p>
+        Writing documentation typically involves a certain amount of
+        interaction with the developers of GNOME or the application
+        which is being documented.  Often a document author will need
+        to ask the developer technical questions during the course of
+        writing a document. After the document is finished, it is good
+        idea to ask the developer to read the document to make sure it
+        is technically correct.  The documentation author should also
+        make sure that the application author correctly binds and
+        packages the documentation with the application.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s12.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s14.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Basics of Documentation Style </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Finishing A Document</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s14.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s14.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s14.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Finishing A Document</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s13.html" title="Teamwork"><link rel="next" href="ar01s15.html" title="Resources"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Finishing A Document</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s13.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ar01s15.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="finishing"></a>Finishing A Document</h2></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="editting"></a>Editing The Document</h3></div></div><p>
+        When the document is finished, the document should be edited
+        by another member of the GDP for spelling, clarity, and
+        DocBook markup. It should also be read by an application
+        author to make sure the document is technically accurate.
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="submitting"></a>Submitting The Document</h3></div></div><p>
+        After the document has been edited and checked for technical
+        accuracy, it is ready to be combined with the application or
+        documentation package.  This is typically done by passing the
+        document to the application or package developer.  In some
+        cases, the documents can be committed directly into CVS,
+        however this should only be done after obtaining permission to
+        make CVS commits from the developer.  Note that in many cases,
+        the application may need to be modified to correctly link to
+        the documentation.  The packaging system (tarballs and binary
+        packages) may also need to be modified to include the
+        documentation in the package.  Generally, this should be done
+        by the developers.
+      </p><p>
+        The final step is to email the GNOME Translation Team at
+        <tt>&lt;<a href="mailto:gnome-i18n at nuclecu.unam.mx">gnome-i18n at nuclecu.unam.mx</a>&gt;</tt> to notify them that
+        there is a new document for them to translate.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s13.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ar01s15.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Teamwork </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Resources</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s15.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s15.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/ar01s15.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Resources</title><meta name="generator" content="DocBook XSL Stylesheets V1.56.1"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="ar01s14.html" title="Finishing A Document"><link rel="next" href="apa.html" title="A. Document Templates"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Resources</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ar01s14.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apa.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="resources"></a>Resources</h2></div></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="resourcesweb"></a>Resources On The Web</h3></div></div><p>  The <a href="http://developer.gnome.org/projects/gdp/" target="_top">GNOME
+      Documentation Project Web page</a> lists current GDP 
+      projects and members.
+      </p><p>
+        The <a href="http://www.gnome.org/gdp/doctable/" target="_top">GDP Documentation Status Table</a> tracks the
+        status of all the various documentation components of GNOME.
+      </p><p>
+        Norman Walsh's  <a href="http://www.docbook.org" target="_top"> <i>DocBook: The Definitive
+        Guide</i></a> in an excellent book on DocBook,
+        available both online and in print.
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="resourcesbooks"></a>Books</h3></div></div><p>
+        Docbook: The Definitive Guide is available in both printed
+        form and on the web at:
+        <a href="http://www.docbook.org/tdg/index.html" target="_top">
+        <i>Docbook: The Definitive Guide</i>
+        </a>
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="mailinglists"></a>Mailing Lists</h3></div></div><p>
+        The <span class="emphasis"><em>gnome-docs-list</em></span> mailing list is the
+        main discussion area for all contributors to the GNOME
+        Documentation Project. You can find out how to subscribe to
+        this list on <a href="http://www.gnome.org/resources/mailing-lists.html" target="_top">GNOME Mailing Lists</a>.  This is a rather
+        low-volume list, so you will not be flooded with messages.
+      </p></div><div class="sect2"><div class="titlepage"><div><h3 class="title"><a name="irc"></a>IRC</h3></div></div><p>
+        Internet Relay Chat (IRC) is a fast and easy way to get in
+        touch with other GDP members.  There are generally at least a
+        few members here who can answer questions or discuss
+        documentation issues.  The IRC channel is #docs at
+        irc.gnome.org.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ar01s14.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="apa.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Finishing A Document </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> A. Document Templates</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/index.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/index.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/index.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,107 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>The GNOME Handbook of Writing Software Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="next" href="indexs02.html" title="Getting Started Writing GNOME Documentation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNOME Handbook of Writing Software Documentation</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs02.html">Next</a></td></tr></table><hr></div><div class="article"><div class="titlepage"><div><h2 class="title"><a name="index"></a>The GNOME Handbook of Writing Software Documentation</h2></div><div><h3 class="author">David Mason</h3><div class="affiliation"><span class="orgname">Red Hat, Inc.<br></span><div class="address"><br>
+            <tt>&lt;<a href="mailto:dcm at redhat.com">dcm at redhat.com</a>&gt;</tt><br>
+          </div></div><h3 class="author">Daniel Mueth</h3><div class="affiliation"><div class="address"><br>
+            <tt>&lt;<a href="mailto:d-mueth at uchicago.edu">d-mueth at uchicago.edu</a>&gt;</tt><br>
+          </div></div><h3 class="author">Alexander Kirillov</h3><div class="affiliation"><div class="address"><br>
+            <tt>&lt;<a href="mailto:kirillov at math.sunysb.edu">kirillov at math.sunysb.edu</a>&gt;</tt><br>
+          </div></div></div><div><p class="releaseinfo">
+      This is a pre-release!
+    </p></div><div><p class="copyright">Copyright © 2000 Red Hat, Inc., Daniel Mueth, and Alexander Kirillov</p></div><div><div class="legalnotice"><p>
+      Permission is granted to copy, distribute and/or modify this
+      document under the terms of the <i>GNU Free Documentation
+      License</i>, Version 1.1 or any later version published
+      by the Free Software Foundation with no Invariant Sections, no
+      Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy
+      of the <i>GNU Free Documentation License</i> from
+      the Free Software Foundation by visiting <a href="http://www.fsf.org" target="_top">their Web site</a> or by writing to:
+      Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+      Boston, MA 02111-1307, USA.
+     </p><p>
+      Many of the names used by companies to distinguish their products and
+      services are claimed as trademarks. Where those names appear in any
+      GNOME documentation, and those trademarks are made aware to the members
+      of the GNOME Documentation Project, the names have been printed in caps
+      or initial caps.
+     </p></div></div><div><div class="revhistory"><table border="1" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
+          0.99
+        </td><td align="left">
+         04.10.2000
+        </td></tr></table></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt> <a href="index.html#intro">Introduction</a></dt><dd><dl><dt> <a href="index.html#gdp">The GNOME Documentation Project</a></dt><dt> <a href="index.html#notation">Notation and Conventions</a></dt><dt> <a href="index.html#about">About This Handbook</a></dt></dl></dd><dt> <a href="indexs02.html">Getting Started Writing GNOME Documentation</a></dt><dd><dl><dt> <a href="indexs02.html#selecting">Selecting A Document</a></dt><dt> <a href="indexs02.html#docbook">Installing and Using DocBook</a></dt><dt> <a href="indexs02.html#gdptemplates">GDP Document Templates</a></dt><dt> <a href="indexs02.html#screenshots">Screenshots</a></dt><dt> <a href="indexs02.html#applicationbugs">Application Bugs</a></dt><dt> <a href="indexs02.html#cvs">Using CVS</a></dt></dl></dd><dt> <a href="indexs03.html">The GNOME Documentation System</a></dt><dd><dl><dt> <a href="indexs03.html#gnomehelpbrowser">The GNOME Help Browser</a></dt><dt> <a href="indexs03.html#gnomehelpbrowser2">The GNOME Help Browser (GNOME-2.0)</a></dt><dt> <a href="indexs03.html#gnomehelponthefly">Dynamic Document Synthesis(GNOME-2.0)</a></dt><dt> <a href="indexs03.html#gnomehelpcomponents">The GNOME Documentation Components</a></dt></dl></dd><dt> <a href="indexs04.html">DocBook Basics </a></dt><dd><dl><dt> <a href="indexs04.html#introtodocbook">Introduction to DocBook</a></dt><dt> <a href="indexs04.html#xml">XML and SGML</a></dt><dt> <a href="indexs04.html#structure"> Structure Elements</a></dt><dt> <a href="indexs04.html#inline">Inline Elements</a></dt></dl></dd><dt> <a href="indexs05.html">GDP Documentation Conventions </a></dt><dd><dl><dt> <a href="indexs05.html#conventionsalldocs">Conventions for All GDP Documentation</a></dt><dt> <a href="indexs05.html#conventionsappdocs">Conventions for Application Documentation</a></dt></dl></dd><dt> <a href="indexs06.html">Writing Application and Applet Manuals</a></dt><dt> <a href="indexs07.html">Listing Documents in the Help Menu</a></dt><dt> <a href="indexs08.html">Application Help Buttons</a></dt><dt> <a href="indexs09.html">Packaging Applet Documentation</a></dt><dd><dl><dt> <a href="indexs09.html#appletfiles">Applet Documentation Files</a></dt><dt> <a href="indexs09.html#appletmenu">Adding Documentation to an Applet Menu</a></dt></dl></dd><dt> <a href="indexs10.html">Writing Context Sensitive Help (coming in GNOME-2.0)</a></dt><dt> <a href="indexs11.html">Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</a></dt><dt> <a href="indexs12.html">Basics of Documentation Style</a></dt><dd><dl><dt> <a href="indexs12.html#styleplanning">Planning</a></dt><dt> <a href="indexs12.html#balance">Achieving a Balanced Style</a></dt><dt> <a href="indexs12.html#stylestructure">Structure</a></dt><dt> <a href="indexs12.html#stylegrammar">Grammar and Spelling</a></dt></dl></dd><dt> <a href="indexs13.html">Teamwork</a></dt><dd><dl><dt> <a href="indexs13.html#teamworkgdp">Working With The GDP Team</a></dt><dt> <a href="indexs13.html#teamworkdevelopers">Working With Developers</a></dt></dl></dd><dt> <a href="indexs14.html">Finishing A Document</a></dt><dd><dl><dt> <a href="indexs14.html#editting">Editing The Document</a></dt><dt> <a href="indexs14.html#submitting">Submitting The Document</a></dt></dl></dd><dt> <a href="indexs15.html">Resources</a></dt><dd><dl><dt> <a href="indexs15.html#resourcesweb">Resources On The Web</a></dt><dt> <a href="indexs15.html#resourcesbooks">Books</a></dt><dt> <a href="indexs15.html#mailinglists">Mailing Lists</a></dt><dt> <a href="indexs15.html#irc">IRC</a></dt></dl></dd><dt>A <a href="apa.html">Document Templates</a></dt><dd><dl><dt> <a href="apa.html#template1">Template 1: Application Manual</a></dt><dt> <a href="apas02.html">Template 2: Applet Manual For GNOME 1.x</a></dt><dt> <a href="apas03.html">Template 2: Applet Manual For GNOME 2.x</a></dt></dl></dd></dl></div><div class="sect1"><a name="intro"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="intro"></a>Introduction</h2></div></div><div class="sect2"><a name="gdp"></a><div class="titlepage"><div><h3 class="title"><a name="gdp"></a>The GNOME Documentation Project</h3></div></div><div class="sect3"><a name="goals"></a><div class="titlepage"><div><h4 class="title"><a name="goals"></a>Goals</h4></div></div><p>
+          The GNOME Documentation Project (GDP) aims to provide GNOME
+          and GNOME applications with a complete, intuitive, and clear
+          documentation system.  At the center of the GDP is the
+          GNOME Help Browser, which
+          presents a unified interface to GNOME-specific documentation
+          as well as other Linux documentation such as man pages and
+          texinfo documents. The GNOME Help System provides a
+          comprehensive view of documentation on a machine by
+          dynamically assembling the documentation of GNOME
+          applications and components which are installed. The GDP is
+          responsible for writing numerous GNOME-related documents,
+          both for developers and for users.  Developer documentation
+          includes <a href="http://developer.gnome.org/doc/API/" target="_top">APIs for the GNOME libraries</a>, <a href="http://developer.gnome.org/doc/whitepapers/" target="_top"><i>GNOME White
+          Papers</i></a>, GNOME developer <a href="http://developer.gnome.org/doc/tutorials/" target="_top">tutorials</a>, the <a href="http://developer.gnome.org/doc/FAQ/" target="_top"><i>GNOME Developer
+          FAQ</i></a>, the <a href="http://developer.gnome.org" target="_top">GNOME
+          Developer's Website</a>, and <i>GNOME
+          Handbook</i>'s, such as the one you are reading.
+          User documentation include the <a href="http://www.gnome.org/learn/" target="_top"><i>GNOME User's
+          Guide</i></a>, the <a href="http://www.gnome.org/learn/" target="_top"><i>GNOME FAQ</i></a>, and
+          GNOME application documentation.  Most GNOME applications
+          have their own manual in addition to context sensitive help.
+        </p></div><div class="sect3"><a name="joining"></a><div class="titlepage"><div><h4 class="title"><a name="joining"></a>Joining the GDP</h4></div></div><p>
+         Documenting GNOME and all the numerous GNOME applications is
+         a very large project.  The GDP is always looking for people
+         to help write, update, and edit documentation.  If you are
+         interested in joining the GDP team, you should join the
+         <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+         <i>gnome-doc-list mailing list</i> </a>.
+         Read <a href="indexs02.html" title="Getting Started Writing GNOME Documentation">the section called &#8220;Getting Started Writing GNOME Documentation&#8221;</a>, for help selecting a
+         project to work on.  Feel free to introduce yourself on the
+         gnome-doc-list mailing list and indicate which project you
+         intend to work on, or else ask for suggestions of important
+         documents which need work done. You may also want to join the
+         #docs IRC channel on irc.gnome.org to meet other GDP members
+         and discuss any questions you may have.  For a list of GDP
+         projects and members, see the
+         <a href="http://developer.gnome.org/projects/gdp" target="_top">
+           <i>GDP Website</i></a>.
+       </p></div><div class="sect3"><a name="collaborating"></a><div class="titlepage"><div><h4 class="title"><a name="collaborating"></a>Collaborating with the GDP</h4></div></div><p>
+        GNOME developers, packagers, and translators may not be
+        writing GNOME documentation but will want to understand how
+        the GNOME documentation system works and will need to
+        collaborate with GDP members.  This document should help to
+        outline the structure of how the GNOME documentation system
+        works.  Developers who do not write the documentation for
+        their applications are encouraged to find a GDP member to
+        write the documentation.  This is best done by sending an
+        email to the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+        <i>gnome-doc-list mailing list</i> </a>
+        describing the application, where it can be downloaded from,
+        and that the developer(s) would like a GDP member to write
+        documentation for the application. The #docs IRC channel on
+        irc.gnome.org is another option for contacting GDP members.
+       </p></div></div><div class="sect2"><a name="notation"></a><div class="titlepage"><div><h3 class="title"><a name="notation"></a>Notation and Conventions</h3></div></div><p>
+        This Handbook uses the following notation:
+        <div class="informaltable" id="id2814391"><a name="id2814391"></a><table border="0"><colgroup><col><col></colgroup><tbody><tr><td><tt>/usr/bin</tt></td><td>
+                  Directory
+                </td></tr><tr><td><tt>foo.sgml</tt></td><td>
+                  Filename
+                </td></tr><tr><td><b>command</b></td><td>
+                  Command or text that would be typed.
+                </td></tr><tr><td><b><i><tt>replaceable</tt></i></b></td><td>
+                  "Variable" text that can be replaced.
+                </td></tr><tr><td><tt>Program or Doc Code</tt></td><td>Program or document code</td></tr></tbody></table></div>
+      </p></div><div class="sect2"><a name="about"></a><div class="titlepage"><div><h3 class="title"><a name="about"></a>About This Handbook</h3></div></div><p>
+       This Handbook is a guide for both writing documentation for
+       GNOME components and applications and for properly binding and
+       packaging documentation into GNOME applications.
+      </p><p>
+       This Handbook, like all GNOME documentation, was written in
+       DocBook(SGML) and is available in several formats including
+       SGML, HTML, PostScript, and PDF.  For the latest version, see
+       <a href="http://developer.gnome.org/projects/gdp/handbook.html" target="_top"> 
+       <i>Getting The GNOME Handbook of Writing Software
+       Documentation</i> </a>.  Alternately, one may
+       download it anonymously from GNOME CVS under <tt>gnome-docu/gdp</tt>.
+      </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a href="indexs02.html">Next</a></td></tr><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> Getting Started Writing GNOME Documentation</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs02.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs02.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs02.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,431 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Getting Started Writing GNOME Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="next" href="indexs03.html" title="The GNOME Documentation System"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Getting Started Writing GNOME Documentation</th></tr><tr><td width="20%" align="left"><a href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs03.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="gettingstarted"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="gettingstarted"></a>Getting Started Writing GNOME Documentation</h2></div></div><div class="sect2"><a name="selecting"></a><div class="titlepage"><div><h3 class="title"><a name="selecting"></a>Selecting A Document</h3></div></div><div class="sect3"><a name="know"></a><div class="titlepage"><div><h4 class="title"><a name="know"></a>Document Something You Know</h4></div></div><p>
+          The most frequently asked question of new contributors who
+          join the GDP is "which document should I start
+          with?". Because most people involved are volunteers, we do
+          not <i>assign</i> projects and applications to
+          write documents for. The first step is all yours - you must
+          decide what about GNOME interests you most and find out if
+          it has complete documents or not.
+        </p><p>
+          It is also important to spend some time with GNOME to make
+          sure you are familiar enough with it to be
+          <i>authoritative</i>  in your writing. The
+          best way to do this is to just sit down and play with GNOME
+          as much as possible before starting to write.
+        </p><p>
+          The easiest way to get started is to improve existing
+          documentation. If you notice some inaccuracies or omissions
+          in the documentation, or you think that you can explain the
+          material more clearly, just send your suggestions to the
+          author of the original documentation or to the GNOME
+          documentation project at <tt>&lt;<a href="mailto:docs at gnome.org">docs at gnome.org</a>&gt;</tt>.
+        </p></div><div class="sect3"><a name="doctable"></a><div class="titlepage"><div><h4 class="title"><a name="doctable"></a>The GNOME Documentation Status Table</h4></div></div><p>
+          The <i>GDP Documentation Status Table</i>
+          (<i>DocTable</i>) (<a href="http://www.gnome.org/gdp/doctable/" target="_top">http://www.gnome.org/gdp/doctable/</a>) is a
+          web page which tracks the status of all the various
+          documentation components of GNOME.  These components include
+          application documentation, internal GNOME component
+          documentation, user documentation, and developer
+          documentation.  For each documentation item, it tracks the
+          current status of the documentation, who is working on the
+          particular document, where the documentation can be found,
+          and provides a forum for the discussion of each item.
+        </p><p>
+          You should use the <i>DocTable</i> to help
+          you select a documentation item which needs work done.  Once
+          you have selected an item to work on, please register
+          yourself as an author so that other authors do not duplicate
+          your work and may contact you to help or offer suggestions.
+          Also be sure to keep the status icons up-to-date  so that
+          the GDP team can easily identify which items need additional
+          help.  The <i>DocTable</i> also allows
+          people to make announcements and suggestions and to discuss
+          issues in the comments section.
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2810555"></a>Note</h3><p>
+          Note that the information in the
+          <i>DocTable</i> may not always be up-to-date
+          or accurate.  When you assign yourself to documenting an
+          application, make sure you find out the latest status of
+          documentation by contacting the application author.  
+         </p></div></div></div><div class="sect2"><a name="docbook"></a><div class="titlepage"><div><h3 class="title"><a name="docbook"></a>Installing and Using DocBook</h3></div></div><p>
+        All documentation for the GNOME project is written in SGML
+        using the DocBook DTD. There are many advantages to using
+        this for documentation, not least of which is the single
+        source nature of SGML. To contribute to the GDP you should
+        learn to use DocBook.
+      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2810638"></a>NOTE</h3><p>
+          To get started writing for the GDP you do not need to rush
+          out and learn DocBook - if you feel it is too much to handle
+          for now, you can submit plain ASCII text to the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+          <i>gnome-doc-list mailing list</i>
+          </a>and a volunteer will mark it up for you. Seeing your
+          document marked up will also be a great way for you to start
+          learning DocBook.
+        </p></div><div class="sect3"><a name="installingdocbook"></a><div class="titlepage"><div><h4 class="title"><a name="installingdocbook"></a>Installing DocBook</h4></div></div><p>
+          Download and install the following <a href="ftp://sourceware.cygnus.com:/pub/docbook-tools/" target="_top">DocBook Tools packages</a>: jade, docbook,
+          jadetex, sgml-common, and stylesheets. (RPM users should note
+          that jade is platform dependent (eg. i386), while the other packages
+          are in the <tt>noarch</tt>
+          directory.) You can find more 
+          information on DocBook Tools <a href="http://sourceware.cygnus.com/docbook-tools/" target="_top">here</a>.
+        </p><p>
+          If you are an Emacs user you may
+          want to grab the psgml package as well. This is a major mode
+          for editing sgml files in Emacs.
+        </p></div><div class="sect3"><a name="gdpstylesheets"></a><div class="titlepage"><div><h4 class="title"><a name="gdpstylesheets"></a>GDP Stylesheets</h4></div></div><p>
+          The GDP uses its own DocBook stylesheets.  To use the GDP
+          stylesheets, you should download the file
+          <tt>gdp-both.dsl</tt> from the <tt>gnome-docu/gdp/dsssl</tt> module in
+          CVS (or from <a href="http://developer.gnome.org/projects/gdp/stylesheets.html" target="_top">
+          GDP Custom DSSSL Stylesheet</a>)and copy it
+
+          over the file
+          <tt>/usr/lib/sgml/stylesheets/cygnus-both.dsl</tt>.
+          Alternately, you can download and install the
+          <a href="http://people.redhat.com/dcm/software.html" target="_top">gnome-doc-tools package</a> which will set
+          up the stylesheets as well as the DTD discussed below.
+        </p></div><div class="sect3"><a name="gdpdtd"></a><div class="titlepage"><div><h4 class="title"><a name="gdpdtd"></a>GDP DTD (PNG Image Support)</h4></div></div><p>
+          Due to some license issues involved with the creation of
+          gifs, the GNOME Documentation Project has decided to use the
+          PNG image format for all images in GNOME documentation. You
+          can read more about the issues involved with gifs at <a href="http://www.gnu.org/philosophy/gif.html" target="_top">http://www.gnu.org/philosophy/gif.html</a>.
+        </p><p>
+          The current DocBook DTD(3.1) does not include support for
+          embedding PNG images in your documents.  Since the GDP uses
+          many screenshots in its documentation, we use our own
+          variation on the DocBook DTD which has PNG image support.
+          We encourage everybody to use this DTD instead of the
+          default DocBook DTD since your source document header and
+          your output document appearance subtly vary between the two
+          DTD's.  To install the GDP custom DTD with PNG image support
+          by hand:
+        </p><div class="itemizedlist"><ul><li style="list-style-type: opencircle"><p><a name="id2811052"></a>
+              Download <a href="http://www.labs.redhat.com/png/png-support.html" target="_top">the
+              GDP DocBook DTD for PNG support</a> and install it
+              where you keep your DTD's. (On Red Hat use <tt>/usr/lib/sgml/</tt>.) Note that
+              the 3.0 DTD is missing support for the
+              <tt>&lt;legalnotice&gt;</tt> tag, so it is
+              recommended that you use version 3.1
+            </p></li><li style="list-style-type: disc"><p><a name="id2811114"></a>
+              Add the new DTD to your SGML CATALOG file.  The location
+              of your SGML CATALOG file may vary depending upon your
+              distribution. (On Red Hat it is usually in
+              /usr/lib/sgml/CATALOG.) Add the following line to this
+              file:
+              <pre class="programlisting">
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.0//EN" "png-support-3.0.dtd"
+              </pre> 
+              If you are using the 3.1 DTD, use:
+              <pre class="programlisting">
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN" "png-support-3.1.dtd"
+              </pre> 
+            </p></li></ul></div><p>
+          Alternately, you can download and install the
+          <a href="http://people.redhat.com/dcm/software.html" target="_top">gnome-doc-tools package</a> which will set
+          up the custom stylesheets and DTD for you.
+        </p><p>
+          To include PNG files in your documents, you will need to
+          indicate that you are using this special DTD.  To do
+          this, use the following headers:
+        </p><p>
+          Articles:
+          <pre class="programlisting">
+&lt;!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]&gt;
+          </pre>
+        </p><p>
+          Books:
+          <pre class="programlisting">
+&lt;!DOCTYPE Book PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]&gt;
+          </pre>
+        </p></div><div class="sect3"><a name="editors"></a><div class="titlepage"><div><h4 class="title"><a name="editors"></a>Editors</h4></div></div><p>
+          There are many editors on Linux and UNIX systems available
+          to you. Which editor you use to work on the sgml documents
+          is completely up to you, as long as the editor is able to
+          preserve sgml and produce the source in a format that is
+          readable by everyone.
+        </p><p>
+          Probably the two most popular editors available are
+          Emacs and
+          vi. These and other editors are
+          used regularly by members of the GDP. Emacs has a major
+          mode, psgml, for editing sgml files which can save you time
+          and effort in adding and closing tags. You will find the
+          psgml package in DocBook Tools, which is the standard set of
+          tools for the GDP. You may find out more about DocBook Tools
+          in <a href="indexs02.html#installingdocbook" title="Installing DocBook">the section called &#8220;Installing DocBook&#8221;</a>.
+        </p></div><div class="sect3"><a name="make-output"></a><div class="titlepage"><div><h4 class="title"><a name="make-output"></a>Creating Something Useful with your Docs</h4></div></div><p>
+          The tools available in DocBook Tools allow you to convert
+          your sgml document to many different formats including html
+          and Postscript. The primary tool used to do the conversion
+          is an application called Jade. In
+          most cases you will not have to work directly with
+          Jade; Instead,  you will use the
+          scripts provided by DocBook Tools.
+        </p><p>
+          To preview your DocBook document, it is easiest to convert
+          it to <tt>html</tt>. If you have installed the
+          DocBook tools described above, all you have to do is to run
+          the command <tt>$</tt><b>db2html
+          mydocument.sgml</b>. If there are no sgml syntax
+          errors, this will create a directory <tt>mydocument</tt> and place the
+          resulting html files in it. The title page of the document
+          will typically be
+          <tt>mydocument/index.html</tt>.  If you have
+          screenshots in your document, you will have to copy these
+          files into the <tt>mydocument</tt> directory by
+          hand. You can use any web browser to view your document.
+          Note that every time you run <b>db2html</b>, it
+          creates the <tt>mydocument</tt> directory over, so
+          you will have to copy the screenshots over each time.
+        </p><p>
+          You can also convert your document to PostScript by running
+          the command <tt>$</tt><b>db2ps
+          mydocument.sgml</b>, after which you can print out or
+          view the resulting .ps file.  
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2811592"></a>NOTE</h3><p>
+            The html files you get will not look quite the same as the
+            documentation distributed with GNOME unless you have the
+            custom stylesheets installed on your machine. DocBook
+            Tools' default stylesheets will produce a different look
+            to your docs. You can read more about the GDP stylesheets
+            in <a href="indexs02.html#gdpstylesheets" title="GDP Stylesheets">the section called &#8220;GDP Stylesheets&#8221;</a>.
+          </p></div></div><div class="sect3"><a name="jadeimages"></a><div class="titlepage"><div><h4 class="title"><a name="jadeimages"></a>Images in DocBook Tools</h4></div></div><p>
+          If your document uses images you will need to take note of a
+          few things that should take place in order for you to make
+          use of those images in your output.
+        </p><p>
+          The DocBook Tools scripts and applications are smart enough
+          to know that when you are creating html you will be using
+          PNG files and when you are creating Postscript you will be
+          using EPS files (you must use EPS with Postscript).
+        </p><p>
+          Thus, you should never explicitly
+          include the extension of the image file, since DocBook
+          Tools will automatically insert it for you. For example:
+        </p><pre class="programlisting">
+
+&lt;figure&gt;
+ &lt;title&gt;My Image&lt;/title&gt;
+ &lt;screenshot&gt;
+  &lt;screeninfo&gt;Sample GNOME Display&lt;/screeninfo&gt;
+  &lt;graphic  format="png" fileref="myfile" srccredit="me"&gt;
+  &lt;/graphic&gt;
+ &lt;/screenshot&gt;
+&lt;/figure&gt;
+     </pre><p>
+          You will notice in this example that the file
+          <tt>myfile.png</tt> was referred to as simply
+          <tt>myfile</tt>. Now when you run
+          <b>db2html</b> to create an html file, it will
+          automatically look for <tt>myfile.png</tt> in
+          the directory.
+        </p><p>
+          If you want to create PostScript ouput, you will need to create an
+          EPS version of your image file to be displayed in the
+          PostScript file. There is a simple script available which
+          allows you to change a PNG image into an EPS file
+          easily. You can download this file - img2eps - from <a href="http://people.redhat.com/dcm/sgml.html" target="_top">http://people.redhat.com/dcm/sgml.html</a>
+          (look for the img2eps section).  Note that this script is
+          included in the gnome-doc-tools package, so if you are using
+          this package, you should already have
+          <b>img2eps</b> on you system.
+        </p></div><div class="sect3"><a name="moredocbookinfo"></a><div class="titlepage"><div><h4 class="title"><a name="moredocbookinfo"></a>Learning DocBook</h4></div></div><p>
+          There are many resources available to help you learn DocBook.
+          The following resources on the web are useful for learning
+          DocBook:
+        </p><div class="itemizedlist"><ul><li style="list-style-type: disc"><p><a name="id2933577"></a>
+              <a href="http://www.docbook.org" target="_top">http://www.docbook.org</a>  - Norman
+              Walsh's <i>DocBook: The Definitive
+              Guide</i>.  Online O'Reilly book on using
+              DocBook. Contains an excellent element reference. May be
+              too formal for a beginner.
+            </p></li><li style="list-style-type: disc"><p><a name="id2933624"></a>
+              <a href="http://www.oswg.org/oswg-nightly/oswg/en_US.ISO_8859-1/articles/DocBook-Intro/docbook-intro/index.html" target="_top">A Practical Introduction to DocBook</a>
+              - The Open Source Writers Group's introduction to using
+              DocBook. This is an excellent HOW-TO type article on
+              getting started.
+            </p></li><li style="list-style-type: disc"><p><a name="id2933666"></a>
+              <a href="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html" target="_top">Getting Going with DocBook: Notes for
+              Hackers</a> - Mark Galassi's introduction to DocBook
+              for hackers. This has to be one of the first
+              introductions to DocBook ever - still as good as it ever
+              was.
+            </p></li><li style="list-style-type: disc"><p><a name="id2933704"></a>
+              <a href="http://www.freebsd.org/tutorials/docproj-primer/" target="_top">
+              FreeBSD Documentation Project Primer for New
+              Contributors</a> - FreeBSD documentation project
+              primer. Chapter 4.2 provides a very good introduction to
+              writing documentation using DocBook. Note that it also
+              describes some custom extensions of DocBook;
+              fortunately, they are clearly marked as such.
+            </p></li></ul></div><p>
+          Norman Walsh's book is also available in print.
+        </p><p>
+          The following sections of this document are designed to help
+          documentation authors write correct and consistent DocBook:
+        </p><div class="itemizedlist"><ul><li style="list-style-type: disc"><p><a name="id2933779"></a>
+              <a href="indexs04.html" title="DocBook Basics ">the section called &#8220;DocBook Basics &#8221;</a> - Descriptions of
+              commonly used DocBook tags.
+            </p></li></ul></div><p>
+          You may also discuss specific DocBook questions with GDP
+          members on the #docs IRC channel at irc.gnome.org and on the
+          gnome-doc-list mailing list.
+        </p></div></div><div class="sect2"><a name="gdptemplates"></a><div class="titlepage"><div><h3 class="title"><a name="gdptemplates"></a>GDP Document Templates</h3></div></div><p>
+        Templates for various types of GNOME documents are found in
+        <a href="apa.html" title="A. Document Templates">Appendix A. Document Templates</a>.  They are kept in CVS in
+        gnome-docu/gdp/templates. The easiest source to get them from
+        is probably the <a href="http://developer.gnome.org/projects/gdp/templates.html" target="_top">GDP
+        Document Templates</a> web page, which is typically kept
+        completely up-to-date with CVS and has a basic description of
+        each file from CVS.
+      </p></div><div class="sect2"><a name="screenshots"></a><div class="titlepage"><div><h3 class="title"><a name="screenshots"></a>Screenshots</h3></div></div><p>
+        Most GNOME documents will have screenshots of the particular
+        applet, application, GNOME component, or widget being
+        discussed.  As discussed above in <a href="indexs02.html#gdpdtd" title="GDP DTD (PNG Image Support)">the section called &#8220;GDP DTD (PNG Image Support)&#8221;</a> you
+        will need to install the special GDP DocBook DTD which
+        supports PNG images, the format used for all images in GNOME
+        documentation. For the basic DocBook structure used to insert
+        images in a document, see <a href="indexs02.html#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a> above.
+      </p><div class="sect3"><a name="screenshotappearance"></a><div class="titlepage"><div><h4 class="title"><a name="screenshotappearance"></a>Screenshot Appearance</h4></div></div><p>
+          For all screenshots of windows that typically have border
+          decorations (e.g. applications and dialogs, but not applets
+          in a panel), GDP standards dictate
+          the appearance of the window.  (This is to minimize possible
+          confusion to the reader, improve the appearance of GNOME
+          documents, and guarantee the screenshot is readable when
+          printed.) All screenshots should be taken with the SawFish
+          (formerly known as Sawmill) window manager using the
+          MicroGui theme and Helvetica 12pt font. (A different window
+          manager can be used provided the MicroGui theme is available
+          for this window manager and the appearance is identical to
+          that when using the SawFish window manager.) The default
+          GTK+ theme(gtk) and font (Helvetica 12 pt) should be used
+          for all screenshots.  If you are unable to provide
+          screenshots in this form, you should create screenshots as
+          you wish them to appear and send them to the
+          <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+          <i>gnome-doc-list mailing list</i> </a>
+          requesting a GDP member reproduce these screenshots in the
+          correct format and email them to you.
+        </p></div><div class="sect3"><a name="screenshottools"></a><div class="titlepage"><div><h4 class="title"><a name="screenshottools"></a>Screenshot Tools</h4></div></div><p>
+          There are many tools for taking screenshots in
+          GNOME/Linux. Perhaps the most convenient is the
+          Screen-Shooter Applet. Just click
+          on the window icon in the applet and then on the window you
+          would like to take a screenshot of. (Note that
+          at the time of this writing, PNG images taken by
+          screenshooter do not appear properly in
+          Netscape or the
+          GNOME Help Browser.  You
+          should save your screenshot as a GIF and
+          then use <b>convert filename.gif
+          filename.png</b>.) For applets
+          in a Panel,
+          xv can be used to crop the
+          screenshot to only include the relevant portion of the
+          Panel. Note that
+          xv and 
+          gimp can both be used for taking
+          screenshots, cropping screenshots, and converting image
+          formats. 
+        </p></div><div class="sect3"><a name="screenshotfiles"></a><div class="titlepage"><div><h4 class="title"><a name="screenshotfiles"></a>Screenshot Files</h4></div></div><p>
+          Screenshots should be kept in the main documentation
+          directory with your SGML file for applets, or should be
+          kept in a directory called "figs" for application and other
+          documentation.  After you use <b>db2html</b> to
+          convert your SGML file to HTML (see <a href="indexs02.html#make-output" title="Creating Something Useful with your Docs">the section called &#8220;Creating Something Useful with your Docs&#8221;</a>), you will need to copy your
+          screenshots (either the individual PNG files for applet
+          documentation, or the whole "figs" directory for other
+          documentation) into the newly created HTML directory.  Note
+          that every time you use <b>db2html</b> the HTML
+          directory is erased and rewritten, so do not store your only
+          copy of the screenshots in that directory.  If you wish to
+          create PostScript or PDF output, you will need to manually
+          convert the PNG images to EPS as described in <a href="indexs02.html#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a>, but will not need to copy these
+          images from their default location, as they are included
+          directly into the output(PostScript of PDF) file.
+        </p></div></div><div class="sect2"><a name="applicationbugs"></a><div class="titlepage"><div><h3 class="title"><a name="applicationbugs"></a>Application Bugs</h3></div></div><p>
+        Documentation authors tend to investigate and test applets and
+        applications more thoroughly than most 
+        users.  Often documentation authors will discover one or
+        more bugs in the software.  These bugs vary from small ones,
+        such as mis-spelled words or missing
+        About dialogs in the menu, to large
+        ones which cause the applet to crash.  As all users, you
+        should be sure to report these bugs so that application
+        developers know of them and can fix them.  The easiest way to
+        submit a bug report is by using the Bug
+        Buddy applet which is part of the gnome-applets
+        package.  
+      </p></div><div class="sect2"><a name="cvs"></a><div class="titlepage"><div><h3 class="title"><a name="cvs"></a>Using CVS</h3></div></div><p>
+        CVS (Concurrent Versions System) is a tool that allows
+        multiple developers to concurrently work on a set of
+        documents, keeping track of the modifications made by each
+        person.  The files are stored on a server and each developer
+        checks files out, modifies them, and then checks in their
+        modified version of the files.  Many GNOME programs and
+        documents are stored in CVS.  The GNOME CVS server allows
+        users to anonymously check out CVS files. Most GDP members
+        will need to use anonymous CVS to download the most up-to-date
+        version of documentation or programs.  Modified documents will
+        typically be emailed to the the application developer. Core
+        GDP members may also be granted login CVS privileges so they
+        may commit modified files directly to CVS.
+      </p><div class="sect3"><a name="anonymouscvs"></a><div class="titlepage"><div><h4 class="title"><a name="anonymouscvs"></a>Anonymous CVS</h4></div></div><p>
+          To anonymously check out documents from CVS, you must first
+          log in.  From the bash shell, you should set your CVSROOT
+          shell variable with <b>  export
+          CVSROOT=':pserver:anonymous at anoncvs.gnome.org:/cvs/gnome'</b>
+          and then login with <b>cvs login</b>(there is no
+          password, just hit return). As an example, we will use the
+          "gnome-docu/gdp" module which contains this and several
+          other documents. To check these documents out for the first
+          time, type <b>cvs -z3 checkout
+          gnome-docu/gdp</b>. After you have this document
+          checked out and you would like to download any updates on
+          the CVS server, use <b>cvs -z3 update -Pd</b>.
+        </p></div><div class="sect3"><a name="logincvs"></a><div class="titlepage"><div><h4 class="title"><a name="logincvs"></a>Login CVS</h4></div></div><p>  If you have been given a
+        login for the GNOME CVS server,  you may commit your file
+        modifications to CVS.  Be sure to read the following section
+        on CVS etiquette before making any commits to CVS.  To log in
+        to the CVS server as user
+        <b><i><tt>username</tt></i></b> with a
+        password, you must first set your CVSROOT shell variable with
+        <b> export
+        CVSROOT=':pserver:<i><tt>username</tt></i>@cvs.gnome.org:/cvs/gnome'</b>.
+        Log in with <b>cvs login</b> and enter your
+        password. You may check out and update modules as described
+        above for anonymous CVS access.  As a login CVS user, you may
+        also check modified versions of a file into the CVS server.
+        To check
+        <b><i><tt>filename</tt></i></b> into
+        the CVS server, type <b>cvs -z3 commit
+        <i><tt>filename</tt></i></b>. You will be
+        given a vi editor window to type in a brief log entry,
+        summarizing your changes.  The default editor can be changed
+        using the <tt>EDITOR</tt> environment variable or
+        with the <b><tt>-e</tt></b> option. You
+        may also check in any modifications to files in the working
+        directory and subdirectories using <b>cvs -z3
+        commit</b>.  To
+        add a new file to the CVS server, use <b>cvs -z3 add
+        <i><tt>filename</tt></i></b>, followed by the
+        commit command.
+        </p></div><div class="sect3"><a name="cvsetiquette"></a><div class="titlepage"><div><h4 class="title"><a name="cvsetiquette"></a>CVS Etiquette</h4></div></div><p>
+          Because files in CVS are typically used and modified by
+          multiple developers and documentation authors, users should
+          exercise a few simple practices out of courtesy towards the
+          other CVS users and the project leader.  First, you should
+          not make CVS commits to a package without first discussing
+          your plans with the project leader.  This way, the project
+          leader knows who is modifying the files and generally, what
+          sort of changes/development is being done.  Also, whenever a
+          CVS user commits a file to CVS, they should make an entry in
+          the CVS log and in the <tt>ChangeLog</tt> so
+          that other users know who is making modifications and what
+          is being modified.  When modifying files created by others,
+          you should follow the indentation scheme used by the initial
+          author.
+        </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="index.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs03.html">Next</a></td></tr><tr><td width="40%" align="left">The GNOME Handbook of Writing Software Documentation </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> The GNOME Documentation System</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs03.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs03.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs03.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,103 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>The GNOME Documentation System</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs02.html" title="Getting Started Writing GNOME Documentation"><link rel="next" href="indexs04.html" title="DocBook Basics "></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNOME Documentation System</th></tr><tr><td width="20%" align="left"><a href="indexs02.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs04.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="gnomedocsystem"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="gnomedocsystem"></a>The GNOME Documentation System</h2></div></div><div class="sect2"><a name="gnomehelpbrowser"></a><div class="titlepage"><div><h3 class="title"><a name="gnomehelpbrowser"></a>The GNOME Help Browser</h3></div></div><p>
+        At the core of the GNOME help system is the GNOME
+        Help Browser. The Help
+        Browser provides a unified interface to several
+        distinct documentation systems on Linux/Unix systems: man
+        pages, texinfo pages, Linux Documentation Project(LDP)
+        documents, GNOME application documentation, and other GNOME
+        documents.
+      </p><p>
+        The GNOME Help Browser works by
+        searching standard directories for documents which are to be
+        presented.  Thus, the documentation that appears in the GHB is
+        specific to each computer and will typically only represent
+        software that is installed on the computer.
+      </p></div><div class="sect2"><a name="gnomehelpbrowser2"></a><div class="titlepage"><div><h3 class="title"><a name="gnomehelpbrowser2"></a>The GNOME Help Browser (GNOME-2.0)</h3></div></div><p> In
+      GNOME 2.0, the GNOME Help Browser
+      will be replaced by Nautilus.
+      Nautilus will be the file manager/graphical shell for GNOME 2.0
+      and will also implement a more sophisticated help system than
+      that used by the GNOME Help Browser
+      used in GNOME 1.0.  It will read and display DocBook files
+      directly, avoiding the need for duplicating documents in both
+      DocBook and HTML formats.  Its display engine for DocBook will
+      be much faster than running jade to
+      convert to HTML for rendering.  Because it uses the original
+      DocBook source for documentation, it will be possible to do more
+      sophisticated searching using the meta information included in
+      the documents.  And since Nautilus is a virtual file system
+      layer which is Internet-capable, it will be able to find and
+      display documents which are on the web as well as those on the
+      local file system. For more information on
+      Nautilus, visit the #nautilus IRC
+      channel on irc.gnome.org.  </p></div><div class="sect2"><a name="gnomehelponthefly"></a><div class="titlepage"><div><h3 class="title"><a name="gnomehelponthefly"></a>Dynamic Document Synthesis(GNOME-2.0)</h3></div></div><p>
+        GNOME uses the documentation presented by all the various
+        GNOME components and applications installed on the system to
+        present a complete and customized documentation environment
+        describing only components which are currently installed on a
+        users system.  Some of this documentation, such as the manuals
+        for applets, will be combined in such a way that it appears to
+        be a single document.
+      </p><p>
+        By using such a system, you can be sure that any GNOME app you
+        install that has documentation will show up in the index,
+        table of contents, any search you do in the help browser.
+      </p></div><div class="sect2"><a name="gnomehelpcomponents"></a><div class="titlepage"><div><h3 class="title"><a name="gnomehelpcomponents"></a>The GNOME Documentation Components</h3></div></div><div class="sect3"><a name="applicationmanualsintro"></a><div class="titlepage"><div><h4 class="title"><a name="applicationmanualsintro"></a>Application Manuals</h4></div></div><p>
+          Every GNOME application should have an application manual.
+          An application manual is a document specific to the
+          particular application which explains the various windows
+          and features of the application.  Application Manuals
+          typically use screenshots (PNG format) for clarity.  Writing
+          application manuals is discussed in more detail in <a href="indexs06.html" title="Writing Application and Applet Manuals">the section called &#8220;Writing Application and Applet Manuals&#8221;</a> below.
+        </p></div><div class="sect3"><a name="applicationhelpintro"></a><div class="titlepage"><div><h4 class="title"><a name="applicationhelpintro"></a>Application Help</h4></div></div><p>
+          Applications should have a Help
+          button on screens on which users may need help.  These
+          Help buttons should pull up the
+          default help browser, determined by the
+          <tt>ghelp</tt> URL Handler (configured using the
+          Control Center), typically the
+          GNOME Help Browser.  The help
+          browser should show either the first page of the application
+          manual, or else the relevant page thereof. Application help
+          is described in more detail in <a href="indexs08.html" title="Application Help Buttons">the section called &#8220;Application Help Buttons&#8221;</a> below.
+        </p></div><div class="sect3"><a name="contextsensitivehelpintro"></a><div class="titlepage"><div><h4 class="title"><a name="contextsensitivehelpintro"></a>Application Context Sensitive Help (coming in
+        GNOME-2.0)</h4></div></div><p>
+          Context sensitive help is a system which will allow the user
+          to query any part (button, widget, etc.) of an application
+          window.  This is done by either entering a CS Help mode by
+          clicking on an icon or by right clicking on the application
+          part and selecting "What's This" or whatever is decided on
+          at the time.  Context sensitive help is described in more
+          detail in <a href="indexs10.html" title="Writing Context Sensitive Help (coming in GNOME-2.0)">the section called &#8220;Writing Context Sensitive Help (coming in GNOME-2.0)&#8221;</a>
+          below.
+        </p></div><div class="sect3"><a name="userguide"></a><div class="titlepage"><div><h4 class="title"><a name="userguide"></a>The GNOME User Guide</h4></div></div><p>
+          The <i>GNOME User Guide</i> describes the
+          GNOME desktop environment and core components of GNOME such
+          as the panel and
+          control center. In GNOME 1.x this
+          was the main and only source of documentation. In GNOME 2.0
+          this will become a document for the web and for printing
+          that is derived from various parts chosen in the system that
+          are necessary for the new user to understand.
+        </p></div><div class="sect3"><a name="userdocs"></a><div class="titlepage"><div><h4 class="title"><a name="userdocs"></a>User Documents</h4></div></div><p>
+          Aside from the <i>GNOME User Guide</i>,
+          there are several other documents to help GNOME users learn
+          GNOME, including the <i>GNOME FAQ</i>,
+          <i>GNOME Installation and Configuration
+          Guide</i>, and the <i>GNOME Administrators
+          Guide</i>.
+        </p></div><div class="sect3"><a name="developerdocs"></a><div class="titlepage"><div><h4 class="title"><a name="developerdocs"></a>Developer Documents</h4></div></div><p>
+          There are many White Papers, Tutorials, HOWTO's and FAQ's to
+          make programming GNOME and GNOME applications as easy as
+          possible.
+        </p><p>
+          API documentation is also available for the GNOME libraries. This is
+          detailed documentation of the code that is used to build GNOME
+          apps. You can keep up with the GNOME API docs on the <a href="http://developer.gnome.org/doc/API/" target="_top">GNOME API
+          Reference</a> page.
+        </p></div><div class="sect3"><a name="projectdocs"></a><div class="titlepage"><div><h4 class="title"><a name="projectdocs"></a>Project Documents</h4></div></div><p>
+          Some GNOME projects have documentation to maintain
+          consistency in their product and to help new contributors
+          get up to speed quickly. Among these are the GDP documents,
+          such as the one you are reading now.
+        </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs02.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs04.html">Next</a></td></tr><tr><td width="40%" align="left">Getting Started Writing GNOME Documentation </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> DocBook Basics </td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs04.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs04.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs04.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,513 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>DocBook Basics </title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs03.html" title="The GNOME Documentation System"><link rel="next" href="indexs05.html" title="GDP Documentation Conventions "></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">DocBook Basics </th></tr><tr><td width="20%" align="left"><a href="indexs03.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs05.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="docbookbasics"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="docbookbasics"></a>DocBook Basics </h2></div></div><div class="sect2"><a name="introtodocbook"></a><div class="titlepage"><div><h3 class="title"><a name="introtodocbook"></a>Introduction to DocBook</h3></div></div><p>
+        To understand DocBook, a basic understanding of SGML is
+        helpful. SGML stands for Standard General Markup Language and
+        is one of the first markup languages every created. HTML is
+        actually derived from SGML and XML is a subset of SGML.  SGML
+        uses what is called a Document Type Definition to specify
+        <i>elements</i> which are contained between
+        brackets, &lt; and &gt;. Text is marked by both beginning and
+        ending elements, for example in the DocBook DTD, one denotes a
+        title with <tt>&lt;title&gt;</tt>The
+        Title<tt>&lt;/title&gt;</tt>.
+      </p><p>
+        The DTD (in the case of the GDP, DocBook) defines rules for how the
+        elements can be used. For example, if one element can only be used when
+        embedded within another, this is defined in the DTD.
+      </p><p> 
+	An SGML file is just a plain ASCII file containing the text
+	with the markup specified above. To convert it  to some easily
+	readable format, you need special tools. The GDP uses <i>DocBook
+        Tools</i>, a free package of utilities for working with DocBook
+        which includes <i>Jade</i>, which does the SGML/DSSL
+        parsing. You can read more about DocBook Tools in <a href="indexs02.html#installingdocbook" title="Installing DocBook">the section called &#8220;Installing DocBook&#8221;</a>. 
+      </p><p>
+        The final appearance of the output (e.g. PostScript or HTML)
+        is determined by a
+        <i>stylesheet</i>. Stylesheets are files,
+        written in a special language (DSSSL -- Document Style
+        Semantics and Specification Language), which  specify the
+        appearance of various DocBook elements, for example,
+        what fonts to use for titles and various inline elements, page
+        numbering style, and much more. DocBook tools come with a
+        collection of stylesheets (Norman Walsh's modular
+        stylesheets); GNOME Document Project uses some customized
+        version of this stylesheets -- see <a href="indexs02.html#gdpstylesheets" title="GDP Stylesheets">the section called &#8220;GDP Stylesheets&#8221;</a>.   
+      </p><p>
+        The advantage of specifying the <i>structure</i>
+        of a document with SGML instead of specifying the
+        <i>appearance</i> of the document with a typical
+        word processor, or with html, is that the resulting document
+        can be processed in a variety of ways using the structural
+        information.  Whereas formatting a document for appearance
+        assumes a medium (typically written text on a standard-sized
+        piece of paper), SGML can be processed to produce output for a
+        large variety of media such as text, postscript, HTML,
+        Braille, audio, and potentially many other formats.
+      </p><p>
+        Using 'content' as the elements to define the text of a document also
+        allows for search engines to make use of the actual elements to make a
+        "smarter search". For example, if you are searching for all documents
+        written by the author "Susie" your search engine could be made smart
+        enough to only search &lt;author&gt; elements, making for a faster and more
+        accurate search.
+      </p><p>
+        Since the overall appearance of the output is determined not by the DTD
+        or the SGML document, but rather by a stylesheet, the appearance of a
+        document can be easily changed just by changing the stylesheet. This
+        allows everyone in the project to create documents that all look the
+        same.
+      </p><p>
+        As stated before, the GDP uses the DocBook DTD.  For a list of
+        introductory and reference resources on DocBook, see <a href="indexs15.html" title="Resources">the section called &#8220;Resources&#8221;</a>.  The following sections also provide
+        convenient instructions on which markup tags to use in various
+        circumstances.  Be sure to read <a href="indexs05.html" title="GDP Documentation Conventions ">the section called &#8220;GDP Documentation Conventions &#8221;</a>
+        for GDP documentation-specific guidelines.
+      </p></div><div class="sect2"><a name="xml"></a><div class="titlepage"><div><h3 class="title"><a name="xml"></a>XML and SGML</h3></div></div><p> In not so distant future (probably before GNOME 2.0),
+      DocBook itself and GNOME Documentation project will migrate from
+      SGML to XML. This transition should be relatively painless:
+      (almost) all DocBook tags will remain the same. However, XML has
+      stricter syntax rules than SGML; thus, some constructions which
+      are valid in SGML will not be valid in XML. Therefore, to be
+      ready for this transistion, it is <i>strongly
+      advised</i> that the documentation writers conform to XML
+      syntax rules. Here are most important differences:
+      </p><div class="variablelist"><dl><dt><a name="id2936091"></a><span class="term"> <i>Minimization</i></span></dt><dd><p><a name="id2936110"></a>
+	      It is possible with some implementations of SGML to use
+	      minimizations to close elements in a document by using
+	      &lt;/&gt;, for example:
+	      <tt><tt>&lt;title&gt;</tt>The
+		Title<tt>&lt;/&gt;</tt></tt>. This is not
+              allowed in XML. You can use <b>sgmlnorm</b> command,
+              included in DocBook Tools package, to expand minimized tags;
+              if you are using Emacs with psgml
+              mode, you can also use menu command
+          Modify-&gt;Normalize.
+         </p></dd><dt><a name="id2936225"></a><span class="term"> <i>Self-closing tags</i></span></dt><dd><p><a name="id2936244"></a>
+            Also, in SGML some tags are allowed not to have closing
+            tags.  For example, it is legal for
+            <tt>&lt;xref&gt;</tt> not to have a closing tag: 
+            <tt><tt>&lt;xref 
+                   linkend="someid"&gt;</tt></tt>. In
+            XML, it is illegal; instead, you should use  
+            <tt><tt>&lt;xref 
+                   linkend="someid"/&gt;</tt></tt> (note the
+            slash!).
+          </p></dd><dt><a name="id2936311"></a><span class="term"> <i>Case sensitive tags</i></span></dt><dd><p><a name="id2936327"></a>
+	      In XML, unlike SGML, tags are case-senstive
+	      <tt>&lt;title&gt;</tt> and
+	      <tt>&lt;TITLE&gt;</tt> are different tags!
+	      Therefore, please always use lowercase tags (except for
+	      things like <tt>DOCTYPE, CDATA</tt> and
+	      <tt>ENTITY</tt>, which are not DocBook tags). 
+	    </p></dd></dl></div></div><div class="sect2"><a name="structure"></a><div class="titlepage"><div><h3 class="title"><a name="structure"></a> Structure Elements</h3></div></div><div class="sect3"><a name="section"></a><div class="titlepage"><div><h4 class="title"><a name="section"></a>Sections and paragraphs</h4></div></div><p>
+          Top-level element of a book body must be
+          <tt>&lt;chapter&gt;</tt>; it may contain one or more
+          <tt>&lt;sect1&gt;</tt>, each of them may contain
+          <tt>&lt;sect2&gt;</tt> and so on up to
+          <tt>&lt;sect5&gt;</tt>. The top-level element of an
+          article body is always
+          <tt>&lt;sect1&gt;</tt>. Regardless of which elements
+          you use, give each structural element a unique id, so that
+          you can link to it. For usage example, see the template.
+        </p><p> Please try to avoid using deeply nested sections; for
+          most situations, <tt>&lt;sect1&gt;</tt> and
+          <tt>&lt;sect2&gt;</tt> should be sufficient. If not,
+          you probably should split your <tt>&lt;sect1&gt;</tt>
+          into several smaller ones.
+        </p><p> Use the tag <tt>&lt;para&gt;</tt> for
+          paragraphs, even if there is only one paragraph in a
+          section--see template for examples.
+        </p></div><div class="sect3"><a name="notes"></a><div class="titlepage"><div><h4 class="title"><a name="notes"></a>Notes, Warnings, And Tips</h4></div></div><p>
+          For notes, tips, warnings, and important information, which
+          should be set apart from the main text (usually as a
+          paragraph with some warning sign on the margin), use tags
+          <tt>&lt;note&gt;</tt>, <tt>&lt;tip&gt;</tt>,
+          <tt>&lt;warning&gt;</tt>,
+          <tt>&lt;important&gt;</tt> respectively. For example:
+          <pre class="programlisting">
+
+&lt;tip&gt;
+ &lt;title&gt;TIP&lt;/title&gt;
+ &lt;para&gt;
+  To speed up program compilation, use &lt;application&gt;gcc&lt;/application&gt;
+  compiler with Pentium optimization.
+ &lt;/para&gt;
+&lt;/tip&gt; </pre>  produces
+        </p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="extip"></a>TIP</h3><p>
+            To speed up program compilation, use
+            gcc compiler with Pentium
+            optimization.  </p></div><p>
+          Note that this should not be inside a
+          <tt>&lt;para&gt;</tt> but between paragraphs.
+        </p></div><div class="sect3"><a name="figures"></a><div class="titlepage"><div><h4 class="title"><a name="figures"></a> Screenshots and other figures</h4></div></div><p>
+          To include screenshots and other figures, use the following
+          tags:
+          
+          <pre class="programlisting">
+
+&lt;figure id="shot1"&gt;
+ &lt;title&gt;Screenshot&lt;/title&gt;
+ &lt;screenshot&gt;
+  &lt;screeninfo&gt;Screenshot of a program&lt;/screeninfo&gt;
+  &lt;graphic format="PNG"  fileref="figures/example_screenshot" srccredit="ME"&gt;
+  &lt;/graphic&gt;
+ &lt;/screenshot&gt;
+&lt;/figure&gt;
+          </pre>
+          replacing <tt>example_screenshot</tt> with the
+          actual file name (without extension). The result will look like this:
+          
+          <div class="figure"><p><a name="shot1"></a><b>Figure 1. Screenshot</b></p><div class="screenshot"><p><img src="figures/example_screenshot"></p></div></div>
+        </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2936851"></a>NOTE</h3><p>
+            Notice in this example that the screenshot file name does
+            not include the file type extension -- to find out
+            why, please read <a href="indexs02.html#jadeimages" title="Images in DocBook Tools">the section called &#8220;Images in DocBook Tools&#8221;</a>.
+          </p></div></div><div class="sect3"><a name="listing"></a><div class="titlepage"><div><h4 class="title"><a name="listing"></a>Program listings and terminal session</h4></div></div><p>
+          To show a file fragment--for example, program
+          listing--use <tt>&lt;programlisting&gt;</tt> tag:
+          <pre class="programlisting">
+
+&lt;programlisting&gt;
+[Desktop Entry] 
+Name=Gnumeric spreadsheet
+Exec=gnumeric 
+Icon=gnome-gnumeric.png 
+Terminal=0
+Type=Application
+&lt;/programlisting&gt;
+          </pre>
+          which produces
+          <pre class="programlisting">
+[Desktop Entry] 
+Name=Gnumeric spreadsheet 
+Exec=gnumeric
+Icon=gnome-gnumeric.png 
+Terminal=0 
+Type=Application
+          </pre>
+          As a matter of fact, all examples in this document were
+          produced using <tt>&lt;programlisting&gt;</tt>.
+        </p><p>
+          To show a record of terminal session--i.e., sequence of
+          commands entered at the command line--use
+          <tt>&lt;screen&gt;</tt> tag:
+          <pre class="programlisting">
+
+&lt;screen&gt;
+&lt;prompt&gt;bash$&lt;/prompt&gt;&lt;userinput&gt;make love&lt;/userinput&gt; 
+make: *** No rule to make target `love'. Stop.
+&lt;/screen&gt;
+          </pre>
+          which produces
+          <pre class="screen">
+<tt>bash$</tt><b><tt>make love</tt></b>  
+make: *** No rule to make target `love'.  Stop.
+          </pre>
+          Note the use of tags <tt>&lt;prompt&gt;</tt> and
+          <tt>&lt;userinput&gt;</tt> for marking system prompt
+          and commands entered by user.
+          <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2937067"></a>NOTE</h3><p>
+              Note that both <tt>&lt;programlisting&gt;</tt>
+              and <tt>&lt;screen&gt;</tt> preserve linebreaks,
+              but interpret SGML tags (unlike LaTeX
+              verbatim environment). Take a look at
+              the source of this document to see how you can have SGML
+              tags literally shown but not interpreted,
+            </p></div>
+        </p></div><div class="sect3"><a name="lists"></a><div class="titlepage"><div><h4 class="title"><a name="lists"></a> Lists</h4></div></div><p>
+	  The most common list types  in DocBook are
+	  <tt>&lt;itemizedlist&gt;</tt>,
+	  <tt>&lt;orderedlist&gt;</tt>, and 
+	  <tt>&lt;variablelist&gt;</tt>.
+	</p><div class="variablelist"><dl><dt><a name="id2937185"></a><span class="term"> <tt>&lt;itemizedlist&gt;</tt></span></dt><dd><p><a name="id2937205"></a> 
+		This is the simplest unnumbered list, parallel to
+	    <tt>&lt;ul&gt;</tt> in HTML. Here is an example: 
+		<pre class="programlisting">
+
+&lt;itemizedlist&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Show backup files&lt;/guilabel&gt; &amp;mdash; This will
+      show any backup file that might be on your system.
+    &lt;/para&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Show hidden files&lt;/guilabel&gt; &amp;mdash; This will
+      show all "dot files" or files that begin with a dot.  This
+      files typically include configuration files and directories.
+    &lt;/para&gt;
+  &lt;/listitem&gt;
+  &lt;listitem&gt;
+    &lt;para&gt;
+      &lt;guilabel&gt;Mix files and directories&lt;/guilabel&gt; &amp;mdash; This
+      option will  display files and directories in the order you
+      sort them instead of 
+      always having directories shown above files.
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+&lt;/itemizedlist&gt; 
+
+		</pre>
+		and output:
+                </p><div class="itemizedlist"><ul><li><p><a name="id2937244"></a>
+		      Show backup files --
+		      This will show any backup file that might be on
+		      your system.
+		    </p></li><li><p><a name="id2937304"></a>
+		      Show hidden files --
+		      This will show all "dot files" or files that
+		      begin with a dot.  This files typically include
+		      configuration files and directories.
+		    </p></li><li><p><a name="id2937335"></a>
+		      Mix files and directories
+		      -- This option will display files and
+		      directories in the order you sort them instead
+		      of always having directories shown above files.
+		    </p></li></ul></div><p> Note the use of <tt>&amp;mdash;</tt>
+              for long dash (see <a href="indexs04.html#specsymb" title=" Special symbols ">the section called &#8220; Special symbols &#8221;</a>). Also,
+              please note that the result looks much nicer because the
+              terms being explained (Show backup
+              files, etc.) are set in a different font. In
+              this case, it was achieved by using <a href="indexs04.html#gui" title="GUI elements"><tt>&lt;guilabel&gt;</tt></a>
+              tag. In other cases, use appropriate tags such as
+              <a href="indexs04.html#gui" title="GUI elements"><tt>&lt;guimenuitem&gt;</tt></a>,
+              <a href="indexs04.html#filenames" title="Filenames, commands, and other
+        computer-related things"><tt>&lt;command&gt;</tt></a>,
+              or -- if none of
+              this applies -- use
+              <a href="indexs04.html#gui" title="GUI elements"><tt>&lt;emphasis&gt;</tt></a>.
+	      </p></dd><dt><a name="id2937507"></a><span class="term"> <tt>&lt;orderedlist&gt;</tt></span></dt><dd><p><a name="id2937525"></a>
+		This list is completely analogous to
+		<tt>&lt;itemizedlist&gt;</tt> and has the same
+		syntax, but  it produces numbered list. By default,
+		this list uses Arabic numerals for numbering entries;
+		you can override this using <tt>numeration</tt>,
+		for example <tt>&lt;orderedlist
+		  numeration="lowerroman"&gt;</tt>. Possible values of
+		these attribute are <tt>arabic</tt>,
+		<tt>upperalpha</tt>,
+		<tt>loweralpha</tt>,
+		<tt>upperroman</tt>,
+		<tt>lowerroman</tt>.
+	      </p></dd><dt><a name="id2937607"></a><span class="term"> <tt>&lt;variablelist&gt;</tt></span></dt><dd><p><a name="id2937625"></a> This list is used when each entry is
+	    rather long, so it should be formatted as a block of text
+	    with some subtitle, like a small subsection.  The
+	    <tt>&lt;variablelist&gt;</tt> is more complicated
+	    than itemizedlists, but for larger blocks of text, or when
+	    you're explaining or defining something, it's best to use
+	    them.  Their greatest advantage is that it's easier for a
+	    computer to search.  The lines you are reading now were
+	    produced by <tt>&lt;variablelist&gt;</tt>. The
+	    source looked liked this:
+		<pre class="programlisting">
+
+&lt;variablelist&gt;
+  &lt;varlistentry&gt;
+    &lt;term&gt; &lt;sgmltag&gt;&amp;lt;itemizedlist&gt;&lt;/sgmltag&gt;&lt;/term&gt; 
+    &lt;listitem&gt;&lt;para&gt; 
+	This is the simplest unnumbered list, parallel to
+        &lt;sgmltag&gt;&amp;lt;ul&gt;&lt;/sgmltag&gt; in HTML. Here is an example:...
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+    &lt;varlistentry&gt;		 
+	&lt;term&gt; &lt;sgmltag&gt;&amp;lt;orderedlist&gt;&lt;/sgmltag&gt;&lt;/term&gt;
+     &lt;listitem&gt;&lt;para&gt;	
+	This list is completely analogous to
+	&lt;sgmltag&gt;&amp;lt;itemizedlist&gt;&lt;/sgmltag&gt; 
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+    &lt;varlistentry&gt;		 
+	&lt;term&gt; &lt;sgmltag&gt;&amp;lt;variablelist&gt;&lt;/sgmltag&gt;&lt;/term&gt;
+     &lt;listitem&gt;&lt;para&gt;	
+		This list is used when each entry is rather long,...
+    &lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+&lt;/variablelist&gt;        
+
+		</pre>		
+		</p></dd></dl></div><p>
+	Lists can be nested; in this case, the stylesheets
+	are smart enough to change the numeration (for
+	<tt>&lt;orderedlist&gt;</tt>) or marks of each entry
+	(in  <tt>&lt;itemizedlist&gt;</tt>) for sub-lists
+	</p></div></div><div class="sect2"><a name="inline"></a><div class="titlepage"><div><h3 class="title"><a name="inline"></a>Inline Elements</h3></div></div><div class="sect3"><a name="gui"></a><div class="titlepage"><div><h4 class="title"><a name="gui"></a>GUI elements</h4></div></div><div class="itemizedlist"><ul><li><p><a name="id2937796"></a>
+              <tt>&lt;guibutton&gt;</tt> -- used for
+              buttons, including checkbuttons and radio buttons
+            </p></li><li><p><a name="id2937822"></a>
+              <tt>&lt;guimenu&gt;</tt>, 
+              <tt>&lt;guisubmenu&gt;</tt> --used for 
+	      top-level menus and submenus
+              respectively, for example <tt>
+              &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt; submenu of the
+              &lt;guimenu&gt;Main Menu&lt;/guimenu&gt;</tt>
+            </p></li><li><p><a name="id2937872"></a>
+              <tt>&lt;guimenuitem&gt;</tt>--an entry in a
+              menu
+            </p></li><li><p><a name="id2937896"></a>
+              <tt>&lt;guiicon&gt;</tt>--an icon
+            </p></li><li><p><a name="id2937921"></a>
+              <tt>&lt;guilabel&gt;</tt>--for items which have
+              labels, like tabs, or bounding boxes. 
+            </p></li><li><p><a name="id2937946"></a>
+              <tt>&lt;interface&gt;</tt>-- for most everything
+              else... a window, a dialog box, the Panel, etc.
+            </p></li></ul></div><p>
+          If you need to refer to a sequence of menu choices, such as
+          Main Menu-&gt;Utilities-&gt;GNOME
+            terminal
+          there is a special construction for this, too:
+          <pre class="programlisting">
+
+&lt;menuchoice&gt;
+ &lt;guimenu&gt;Main Menu&lt;/guimenu&gt; &lt;guisubmenu&gt;Utilities&lt;/guisubmenu&gt;
+ &lt;guimenuitem&gt;GNOME terminal&lt;/guimenuitem&gt; &lt;/menuchoice&gt;
+          </pre>
+        </p></div><div class="sect3"><a name="links"></a><div class="titlepage"><div><h4 class="title"><a name="links"></a>Links and references</h4></div></div><p>
+          To refer to another place in the same document, you can use
+          tags <tt>&lt;xref&gt;</tt> and
+          <tt>&lt;link&gt;</tt>. The first of them
+          automatically inserts the full name of the element you refer
+          to (section, figure, etc.), while the second just creates a
+          link (in HTML output). Here is an example:
+          <pre class="programlisting">
+An example of a &lt;link linkend="extip"&gt;tip&lt;/link&gt; was given in
+&lt;xref linkend="notes" /&gt;.  
+          </pre>
+          which produces: An example of a <a href="indexs04.html#extip">tip</a> was given in  <a href="indexs04.html#notes" title="Notes, Warnings, And Tips">the section called &#8220;Notes, Warnings, And Tips&#8221;</a>.
+        </p><p>
+          Here <tt>notes</tt> and <tt>extip</tt>
+          are the id attributes of <a href="indexs04.html#notes" title="Notes, Warnings, And Tips">the section called &#8220;Notes, Warnings, And Tips&#8221;</a> and of the
+          example of a tip in it.
+        </p><p>  To produce a link  to an external source, such as a
+          Web page or a local file, use <tt>&lt;ulink&gt;</tt>
+          tag, for example:
+          <pre class="programlisting">
+ To find more about GNOME, please visit &lt;ulink type="http"
+url="http://www.gnome.org"&gt;GNOME Web page&lt;/ulink&gt; 
+          </pre>
+          which produces:  To find more about GNOME, please visit
+          <a href="http://www.gnome.org" target="_top">The GNOME Web
+          Site</a> You can use any of the standard URL types, such
+          as <tt>http, ftp, file, telnet, mailto</tt> (in
+          most cases, however, use of <tt>mailto</tt> is
+          unnecessary--see discussion of
+          <tt>&lt;email&gt;</tt> tag).
+        </p></div><div class="sect3"><a name="filenames"></a><div class="titlepage"><div><h4 class="title"><a name="filenames"></a>Filenames, commands, and other
+        computer-related things</h4></div></div><p>
+          Here are some tags used to describe operating system-related
+          things:  
+        </p><div class="itemizedlist"><ul><li><p><a name="id2938334"></a>  <tt>&lt;filename&gt;</tt> -- used
+              for filenames,
+              e.g.<tt>&lt;filename&gt;</tt>
+                    foo.sgml
+                  <tt>&lt;/filename&gt;</tt> 
+              produces: <tt>foo.sgml</tt>.
+            </p></li><li><p><a name="id2938391"></a>  <tt>&lt;filename
+              class="directory"&gt;</tt> -- used for
+              directories, e.g.<tt>&lt;filename
+              class="directory"&gt;</tt>/usr/bin
+                  <tt>&lt;/filename&gt;</tt>
+              produces: <tt>/usr/bin</tt>.
+            </p></li><li><p><a name="id2938454"></a>
+              <tt>&lt;application&gt;</tt> -- used for
+              application names,
+              e.g. <tt>&lt;application&gt;</tt>Gnumeric
+              <tt>&lt;/application&gt;</tt> produces:
+              Gnumeric.
+            </p></li><li><p><a name="id2938509"></a>
+	      <tt>&lt;envar&gt;</tt> -- used for
+	      environment variables, e.g. 
+              <tt>&lt;envar&gt;</tt>PATH<tt>&lt;/envar&gt;</tt>. 
+            </p></li><li><p><a name="id2938551"></a>
+              <tt>&lt;command&gt;</tt> -- used for
+              commands entered on command line, e.g.
+              <tt>&lt;command&gt;</tt>make install
+              <tt>&lt;/command&gt;</tt> produces:
+              <b>make install</b>.
+            </p></li><li><p><a name="id2938607"></a>
+              <tt>&lt;replaceable&gt;</tt> -- used for
+              replaceable text, e.g.
+              <tt>&lt;command&gt;</tt>db2html<tt>&lt;replaceable&gt;</tt>
+              foo.sgml
+              <tt>&lt;/replaceable&gt;</tt><tt>&lt;/command&gt;</tt>
+              produces: <b>db2html
+              <i><tt>foo.sgml</tt></i></b>.
+            </p></li></ul></div></div><div class="sect3"><a name="keys"></a><div class="titlepage"><div><h4 class="title"><a name="keys"></a>Keyboard input</h4></div></div><p> To mark up text input by the user, use
+        <tt>&lt;userinput&gt;</tt>.
+        </p><p>  To mark keystrokes such as shortcuts and other
+          commands, use <tt>&lt;keycap&gt;</tt>. 
+          This is used for marking up what is printed on the top 
+          of the physical key on the keyboard. There are a couple of
+          other tags for keys, too: <tt>&lt;keysym&gt;</tt>
+          and <tt>&lt;keycode&gt;</tt>. However you are
+          unlikely to need these for most documentation. For reference,
+          <tt>&lt;keysym&gt;</tt> is for the &#8220;symbolic
+          name&#8221; of a key. <tt>&lt;keycode&gt;</tt> is
+          for the &#8220;scan code&#8221; of a key. These are not
+          terms commonly required in GNOME documentation,
+          although <tt>&lt;keysym&gt;</tt> is useful for marking
+          up control codes.
+       </p><p>
+          To mark up a combination of keystrokes, use the
+          <tt>&lt;keycombo&gt;</tt> wrapper:
+          <pre class="programlisting">
+
+&lt;keycombo&gt;
+ &lt;keycap&gt;Ctrl&lt;/keycap&gt;
+ &lt;keycap&gt;Alt&lt;/keycap&gt;
+ &lt;keycap&gt;F1&lt;/keycap&gt;
+&lt;/keycombo&gt;
+          </pre>
+        </p><p>
+          Finally, if you want to show a shortcut for some menu
+          command, here are the appropriate tags (rather long):
+          <pre class="programlisting">
+
+&lt;menuchoice&gt;
+ &lt;shortcut&gt;
+  &lt;keycombo&gt;&lt;keycap&gt;Ctrl&lt;/keycap&gt;&lt;keycap&gt;q&lt;/keycap&gt;&lt;/keycombo&gt;
+ &lt;/shortcut&gt; 
+ &lt;guimenuitem&gt; Quit&lt;/guimenuitem&gt; 
+&lt;/menuchoice&gt;
+          </pre>
+          which produces simply
+           Quit (<b>Ctrl-q</b>)
+        </p></div><div class="sect3"><a name="email"></a><div class="titlepage"><div><h4 class="title"><a name="email"></a>E-mail addresses</h4></div></div><p>  To mark up e-mail
+        address, use <tt>&lt;email&gt;</tt>:
+          <pre class="programlisting">
+ The easiest way to get in touch with me is by e-mail
+(&lt;email&gt;me at mydomain.com&lt;/email&gt;)
+          </pre>
+          which produces: The easiest way to get in touch with me is
+          by e-mail  (<tt>&lt;<a href="mailto:me at mydomain.com">me at mydomain.com</a>&gt;</tt>) Note that
+          <tt>&lt;email&gt;</tt> automatically produces a link
+          in html version.
+        </p></div><div class="sect3"><a name="specsymb"></a><div class="titlepage"><div><h4 class="title"><a name="specsymb"></a> Special symbols </h4></div></div><p> 
+	  DocBook also provides special means for entering
+	typographic symbols which can not be entered directly
+	form the keyboard (such as copyright sign). This is done using
+	<i>entities</i>, which is SGML analogue of
+	macros, or commands, of LaTeX. They generally have the form 
+	  <tt>&amp;entityname;</tt>. Note that the semicolon
+	is required. 
+	</p><p>
+	  here is partial list of most commonly used enitites:
+	</p><div class="itemizedlist"><ul><li><p><a name="id2939068"></a>
+             <tt>&amp;amp;</tt> -- ampersend (&amp;)
+	  </p></li><li><p><a name="id2939089"></a>
+             <tt>&amp;lt;</tt> -- left angle bracket (&lt;)
+	  </p></li><li><p><a name="id2939108"></a>
+             <tt>&amp;copy;</tt> -- copyright sign (©)
+	  </p></li><li><p><a name="id2939126"></a>
+             <tt>&amp;mdash;</tt> -- long dash (--)
+	  </p></li><li><p><a name="id2939152"></a>
+             <tt>&amp;hellip;</tt> -- ellipsis (...)
+	  </p></li></ul></div><p>
+	  Note that the actual look of the resulting symbols depends
+	  on the fonts used by your browser; for example, it might
+	  happen that long dash (<tt>&amp;mdash;</tt>) looks
+	  exactly like the usual dash (-). However, in the PostScript
+	  (and thus, in print) the output will look markedly better if
+	  you use appropriate tags. 
+	</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs03.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs05.html">Next</a></td></tr><tr><td width="40%" align="left">The GNOME Documentation System </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> GDP Documentation Conventions </td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs05.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs05.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs05.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,39 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>GDP Documentation Conventions </title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs04.html" title="DocBook Basics "><link rel="next" href="indexs06.html" title="Writing Application and Applet Manuals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">GDP Documentation Conventions </th></tr><tr><td width="20%" align="left"><a href="indexs04.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs06.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="conventions"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="conventions"></a>GDP Documentation Conventions </h2></div></div><div class="sect2"><a name="conventionsalldocs"></a><div class="titlepage"><div><h3 class="title"><a name="conventionsalldocs"></a>Conventions for All GDP Documentation</h3></div></div><div class="sect3"><a name="xmlcomp"></a><div class="titlepage"><div><h4 class="title"><a name="xmlcomp"></a> XML compatibility </h4></div></div><p>
+	  All GNOME documentation  should conform to XML syntax
+	  requirements, which are stricter than SGML ones -- see
+	  <a href="indexs04.html#xml" title="XML and SGML">the section called &#8220;XML and SGML&#8221;</a> for more informaion.
+	</p></div><div class="sect3"><a name="authorsnames"></a><div class="titlepage"><div><h4 class="title"><a name="authorsnames"></a> Authors' names</h4></div></div><p> 
+	  All GNOME documentation should contain the names of both the
+	  application authors and documentation authors, as well as a
+	  link to the application web page (if it exists) and
+	  information for bug submission -- see templates for an
+	  example. 
+	  </p></div></div><div class="sect2"><a name="conventionsappdocs"></a><div class="titlepage"><div><h3 class="title"><a name="conventionsappdocs"></a>Conventions for Application Documentation</h3></div></div><div class="sect3"><a name="applicationversionid"></a><div class="titlepage"><div><h4 class="title"><a name="applicationversionid"></a>Application Version Identification</h4></div></div><p>
+          Application documentation should identify the version of the
+          application for which the documentation is written:
+          <pre class="programlisting">
+
+&lt;sect1 id="intro"&gt;
+ &lt;title&gt;Introduction&lt;/title&gt;
+ &lt;para&gt;
+  blah-blah-blah This document describes version 1.0.53 of gfoo.
+ &lt;/para&gt;
+&lt;/sect1&gt;
+          </pre>
+        </p></div><div class="sect3"><a name="license"></a><div class="titlepage"><div><h4 class="title"><a name="license"></a> Copyright information </h4></div></div><p> Application
+        documentation should contain a copyright notice, stating the
+        licensing terms. It is suggested that you use the GNU Free
+        Documentation License.  You could also use some other license
+        allowing free redistribution, such as GPL or Open Content
+        license.  If documentation uses some trademarks (such as UNIX,
+        Linux, Windows, etc.), proper legal junk should also be
+        included (see templates).
+	</p></div><div class="sect3"><a name="license2"></a><div class="titlepage"><div><h4 class="title"><a name="license2"></a>Software license</h4></div></div><p> 
+         All GNOME applications must contain information about the
+       license (for software, not for documentation), either in the
+       "About" box or in the manual. 
+       </p></div><div class="sect3"><a name="bugtraq"></a><div class="titlepage"><div><h4 class="title"><a name="bugtraq"></a> Bug reporting</h4></div></div><p> 
+	  Application documentation should give an address for
+        reporting bugs and for submitting comments about the
+        documentaion (see templates for an example). 
+       </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs04.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs06.html">Next</a></td></tr><tr><td width="40%" align="left">DocBook Basics  </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> Writing Application and Applet Manuals</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs06.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs06.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs06.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,43 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Writing Application and Applet Manuals</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs05.html" title="GDP Documentation Conventions "><link rel="next" href="indexs07.html" title="Listing Documents in the Help Menu"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing Application and Applet Manuals</th></tr><tr><td width="20%" align="left"><a href="indexs05.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs07.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="writingapplicationmanuals"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="writingapplicationmanuals"></a>Writing Application and Applet Manuals</h2></div></div><p>
+       Every GNOME application or applet should have a manual specific
+      to that particular application. This manual should be a complete
+      and authoritative guide.  The manual should describe what the
+      program does and how to use it.  Manuals will typically describe
+      each window or panel presented to the user using screenshots (in
+      PNG format only) when appropriate.  They should also describe
+      each feature and preference option available.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2939595"></a>Documentation Availability</h3><p>
+        Applications and applets should not rely on documentation
+        which is only available on the internet.  All manuals and
+        other documentation should be packaged with the application or
+        applet and be made available to the user through the standard
+        GNOME help system methods described below.
+      </p></div><p> Application manuals should be based on the template in
+    <a href="apa.html#template1" title="Template 1: Application Manual">the section called &#8220;Template 1: Application Manual&#8221;</a>.  Applet manuals should be based on
+    the templates in <a href="apas02.html" title="Template 2: Applet Manual For GNOME 1.x">the section called &#8220;Template 2: Applet Manual For GNOME 1.x&#8221;</a> for GNOME
+    versions 1.x and the templates in <a href="apas03.html" title="Template 2: Applet Manual For GNOME 2.x">the section called &#8220;Template 2: Applet Manual For GNOME 2.x&#8221;</a>
+    for GNOME versions 2.x.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2939689"></a>Manuals For Large Applications</h3><p>
+        Manuals for very large applications, such as GNOME Workshop
+        components should be a <tt>&lt;book&gt;</tt> (and thus
+        use <tt>&lt;chapter&gt;</tt> for each primary section)
+        , instead of <tt>&lt;article&gt;</tt> which most
+        applications use(with each primary section being a
+        <tt>&lt;sect1&gt;</tt>).
+      </p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2939746"></a>Applet Manuals in GNOME 2.0</h3><p>
+        Note that applet manuals in GNOME 2.0 are treated in a special
+        way.  The manuals for all applets are merged into a single
+        virtual document by Nautilus.  For this reason, the header
+        information for applet manuals is omitted and the  first
+        section of each applet is
+        <tt>&lt;sect1&gt;</tt>. Applet manuals will typically
+        have several sections, each of which is
+        <tt>&lt;sect2&gt;</tt>.
+      </p></div><p>
+      Application manuals should be made available by having a
+      "Manual" entry in the Help pull-down menu
+      at the top of the 
+      application, as described in <a href="indexs07.html" title="Listing Documents in the Help Menu">the section called &#8220;Listing Documents in the Help Menu&#8221;</a>.
+      Applets should make their manuals available by
+      right-clicking on the applet. 
+    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs05.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs07.html">Next</a></td></tr><tr><td width="40%" align="left">GDP Documentation Conventions  </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> Listing Documents in the Help Menu</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs07.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs07.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs07.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,59 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Listing Documents in the Help Menu</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs06.html" title="Writing Application and Applet Manuals"><link rel="next" href="indexs08.html" title="Application Help Buttons"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Listing Documents in the Help Menu</th></tr><tr><td width="20%" align="left"><a href="indexs06.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs08.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="listingdocsinhelpmenu"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="listingdocsinhelpmenu"></a>Listing Documents in the Help Menu</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2939869"></a>Developer Information</h3><p>
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </p></div><p>
+      Typically the application manual and possibly additional help
+      documents will be made available to the user under the
+      Help menu at the top right of the
+      application. To do this, you must first write a
+      <tt>topic.dat</tt> file. The format for this file is:
+      <pre class="programlisting">
+One line for each 'topic'.
+
+Two columns, as defined by perl -e 'split(/\s+/,$aline,2)'
+
+First column is the HTML file (and optional section) for the topic,
+relative to the app's help file dir.
+
+Second column is the user-visible topic name.
+      </pre>
+      For example, Gnumeric's
+      <tt>topic.dat</tt> file is:
+      <pre class="programlisting">
+gnumeric.html   Gnumeric manual
+function-reference.html Gnumeric function reference
+      </pre>
+      When the application is installed, the
+      <tt>topic.dat</tt> file should be placed in the
+      <tt>$prefix/share/gnome/help/<i><tt>appname</tt></i>/C/</tt> directory
+      where <i><tt>appname</tt></i> is replaced by the
+      application's name.  The application documentation (converted
+      from SGML into HTML with <b>db2html</b>) should be
+      placed in this directory too.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2940058"></a>Note</h3><p>
+       If the help files are not present in the correct directory, the
+       menu items will NOT appear when the program is run. 
+      </p></div><p>
+      The <tt>topic.dat</tt> file is used by the GNOME
+      menu building code to generate the Help
+      menu. When you define your menu:  
+<pre class="programlisting">
+GnomeUIInfo helpmenu[] = {
+              {GNOME_APP_UI_ITEM, 
+               N_("About"), N_("Info about this program"),
+               about_cb, NULL, NULL, 
+               GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ABOUT,
+               0, 0, NULL},
+               GNOMEUIINFO_SEPARATOR,
+               GNOMEUIINFO_HELP("<i>appname</i>"),
+               GNOMEUIINFO_END
+        };
+</pre>
+      the line specifying <tt>GNOMEUIINFO_HELP</tt> causes
+      GNOME to create a menu entry which is tied to the documentation
+      in the directory mentioned above. Also, all the topics in the
+      <tt>topic.dat</tt> file will get menu entries in the
+      Help menu. When the user selects any of these
+      topics from the Help menu, a help browser
+      will be started with the associated HTML documentation.
+    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs06.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs08.html">Next</a></td></tr><tr><td width="40%" align="left">Writing Application and Applet Manuals </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> Application Help Buttons</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs08.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs08.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs08.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Application Help Buttons</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs07.html" title="Listing Documents in the Help Menu"><link rel="next" href="indexs09.html" title="Packaging Applet Documentation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Application Help Buttons</th></tr><tr><td width="20%" align="left"><a href="indexs07.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs09.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="applicationhelpbuttons"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="applicationhelpbuttons"></a>Application Help Buttons</h2></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2940222"></a>Developer Information</h3><p>
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </p></div><p>
+      Most GNOME applications will have Help
+      buttons.  These are most often seen in Preference windows. (All
+      Preference windows should have Help
+      buttons.) Most Help buttons will connect
+      to the application manual, although some may connect to special
+      documents.  Because the Help buttons do
+      not generally have their own special documentation, the
+      documentation author(s) do not need to do very much.  However,
+      the application author must be careful to guarantee that the
+      application correctly opens the help documentation when the
+      Help buttons are pressed.  
+    </p><p>
+      To make the Help buttons call the correct document in the GNOME Help
+      Browser the developer should add code based on the following example:
+    </p><pre class="programlisting">
+gchar *tmp;
+tmp = gnome_help_file_find_file ("module", "page.html");
+if (tmp) {
+  gnome_help_goto(0, tmp);
+  g_free(tmp);
+}
+    </pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2940360"></a>NOTE</h3><p>
+        The example above is in the C language, please refer to other
+        documentation or forums for other GNOME language bindings.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs07.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs09.html">Next</a></td></tr><tr><td width="40%" align="left">Listing Documents in the Help Menu </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> Packaging Applet Documentation</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs09.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs09.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs09.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,72 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Packaging Applet Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs08.html" title="Application Help Buttons"><link rel="next" href="indexs10.html" title="Writing Context Sensitive Help (coming in GNOME-2.0)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Packaging Applet Documentation</th></tr><tr><td width="20%" align="left"><a href="indexs08.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs10.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="packagingappletdocs"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="packagingappletdocs"></a>Packaging Applet Documentation</h2></div></div><div class="sect2"><a name="appletfiles"></a><div class="titlepage"><div><h3 class="title"><a name="appletfiles"></a>Applet Documentation Files</h3></div></div><p>
+        In GNOME 2.0 each applet will have its own documentation
+        installed separately, and the GNOME 2.0 help
+        browser (Nautilus) will dynamically
+        merge the applet documents into a single virtual book
+        called <i>GNOME Applets</i>. During the
+        transitionary stage between GNOME 1.0 and GNOME 2.0, each
+        applet in the gnome-applets package has its own manual(stored
+        with the applet in CVS), but they are merged together manually
+        to create the <i>GNOME Applets</i> book before
+        distribution.  Telsa 
+        <tt>&lt;<a href="mailto:hobbit at aloss.ukuu.org.uk">hobbit at aloss.ukuu.org.uk</a>&gt;</tt> is the maintainer of
+        this document.  Applet documentation should be sent to Telsa
+        (or placed in CVS) who will make sure they are correctly
+        packaged with the applets.  The applet author should be
+        contacted to modify the menu items and help buttons to bind to
+        the applet documentation if necessary.
+      </p><p>
+        Images which are part of the applet documentation should be in
+        PNG format and should reside in the same directory as the SGML
+        document file in CVS(gnome-applets/APPLETNAME/help/C).
+      </p><p>
+        Applets which are not part of the gnome-applets package must
+        package their documentation with the particular applet
+        package. They should use the same applet template as other
+        applets.  However, the <tt>&lt;xref&gt;</tt> links to
+        the introductory chapter of the <i>GNOME
+        Applets</i>  book must be removed (as the 1.x
+        GNOME Help Browser does not allow
+        you to create links between separate documents) and replaced
+        with suitable text.  Note that since this document is not part
+        of the <i>GNOME Applets</i> book, you must
+        remember to add <tt>&lt;legalnotice&gt;</tt> and
+        <tt>&lt;copyright&gt;</tt> sections.
+      </p></div><div class="sect2"><a name="appletmenu"></a><div class="titlepage"><div><h3 class="title"><a name="appletmenu"></a>Adding Documentation to an Applet Menu</h3></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><a name="id2940608"></a>Developer Information</h3><p>
+          This section is for developers.  Documentation authors
+          generally do not need to know this material.
+        </p></div><p>
+        Applets should have About and
+        Manual menu items, typically as the first
+        and second top-most items in the menu respectively.  This
+        section describes how the developer creates these menu items
+        and links them to the documentation.
+      </p><p>
+        To add an applet's manual to its applet menu, use:
+<pre class="programlisting">
+/* add an item to the applet menu */
+applet_widget_register_callback(APPLET_WIDGET(applet), "manual",
+_("Manual"), &amp;open_manual, NULL);
+</pre>
+        Here the second argument is an arbitrary name for the
+        callback, the third argument is the label which will appear
+        when the user right clicks on the applet, and the fourth
+        argument is the callback function.
+      </p><p>
+        You will need to write a simple callback function to open the
+        help browser to the appropriate document.  This is done using
+        the <tt>gnome_help_file_find_file</tt> function,
+        as described in <a href="indexs08.html" title="Application Help Buttons">the section called &#8220;Application Help Buttons&#8221;</a>.
+      </p><p>
+        You will also want to add an About menu
+        item to the applet's menu.  This is a
+        stock menu item and is done:
+<pre class="programlisting">
+applet_widget_register_stock_callback (APPLET_WIDGET(applet), "about",
+       GNOME_STOCK_MENU_ABOUT, _("About"), &amp;my_applet_cb_about,
+       NULL);
+</pre>
+      </p><p>
+        More information can be found at <a href="http://developer.gnome.org/doc/tutorials/applet/index.html" target="_top">Writing
+        GNOME panel applets using the GTK+/GTK-- widget set</a>.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs08.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs10.html">Next</a></td></tr><tr><td width="40%" align="left">Application Help Buttons </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> Writing Context Sensitive Help (coming in GNOME-2.0)</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs10.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs10.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs10.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Writing Context Sensitive Help (coming in GNOME-2.0)</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs09.html" title="Packaging Applet Documentation"><link rel="next" href="indexs11.html" title="Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing Context Sensitive Help (coming in GNOME-2.0)</th></tr><tr><td width="20%" align="left"><a href="indexs09.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs11.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="writingcontextsensitivehelp"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="writingcontextsensitivehelp"></a>Writing Context Sensitive Help (coming in GNOME-2.0)</h2></div></div><p>
+      Context sensitive help, also known as "pop-up" help, will allow
+      a user to obtain help information about specific buttons or
+      parts of an application.
+    </p><p>
+      Context sensitive help is still under development and not all
+      the details are available at this time. However, the basics can
+      be shown here so that you can understand how the system will
+      work.
+    </p><p>
+      The Context Sensitive Help system is designed to allow the
+      developer to give an id to a particular portion of the User
+      Interface, for example, a button. Once the interface is complete
+      a Perl script can then be run against the interface code to
+      create a "map" file. This map file allows the developer or
+      writer to associate particular paragraph sections from an XML
+      document to the interface items.
+    </p><p>
+      The XML used for the document is a small XML DTD that is being
+      developed to use the same tags (albeit, much fewer) as DocBook
+      so that writers do not have to re-learn a new DTD.
+    </p><p>
+      Once the document is written and map file is complete, when the
+      user launches context sensitive help on the interface (either by
+      pressing a button and then clicking on the interface item they
+      want information on, or by right mouse clicking on the interface
+      item and selecting a pop-up menu item like "What's This") a
+      small transient window will appear with brief but detailed
+      information on the interface item.
+    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs09.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs11.html">Next</a></td></tr><tr><td width="40%" align="left">Packaging Applet Documentation </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs11.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs11.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs11.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs10.html" title="Writing Context Sensitive Help (coming in GNOME-2.0)"><link rel="next" href="indexs12.html" title="Basics of Documentation Style"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</th></tr><tr><td width="20%" align="left"><a href="indexs10.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs12.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="referring"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="referring"></a>Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</h2></div></div><p>
+      In the GNOME 2.0 Help System, you will be able to create links
+      from one document to another.  The exact mechanism for doing
+      this is in development.
+    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs10.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs12.html">Next</a></td></tr><tr><td width="40%" align="left">Writing Context Sensitive Help (coming in GNOME-2.0) </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> Basics of Documentation Style</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs12.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs12.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs12.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,118 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Basics of Documentation Style</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs11.html" title="Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)"><link rel="next" href="indexs13.html" title="Teamwork"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Basics of Documentation Style</th></tr><tr><td width="20%" align="left"><a href="indexs11.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs13.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="basics"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="basics"></a>Basics of Documentation Style</h2></div></div><p>
+       Most people have never enjoyed reading a software manual, and
+       they probably never will.  Many times, they'll read the
+       documentation only when they run into problems, and they'll be
+       frustrated and upset before they even read a word.  On the
+       other hand, some readers will read the manual all the way
+       through, or at least look at the introduction before they
+       start. Your document might serve as a reference for an expert
+       or a guide to a beginner, and it must have enough depth to
+       satisfy the first without overwhelming the second.  Ideally, it
+       will serve beginners as they <i>become</i>
+       experts. Remember, your goal is to produce <i>complete,
+       intuitive and clear</i> documentation.
+    </p><p>
+       In order to write useful documentation, you'll have to know who
+       your audience is likely to be.  Then, you can look for the
+       problems they're likely to run into, and solve them.  It will
+       also help if you focus on the tasks users will perform, and
+       group features accordingly, rather than simply describing
+       features at random.  
+    </p><div class="sect2"><a name="styleplanning"></a><div class="titlepage"><div><h3 class="title"><a name="styleplanning"></a>Planning</h3></div></div><p>
+         Begin documenting by learning how to use the application and
+         reading over any existing documentation.  Pay attention to
+         places where your document will differ from the template.  It
+         may help to develop a document skeleton: a valid XML or SGML
+         document that has little or no content.  For very large
+         applications, you will need to make significant departures
+         from the templates, since you'll be using the
+         <tt>&lt;book&gt;</tt> tag instead of
+         <tt>&lt;chapter&gt;</tt> or
+         <tt>&lt;article&gt;</tt>.
+      </p></div><div class="sect2"><a name="balance"></a><div class="titlepage"><div><h3 class="title"><a name="balance"></a>Achieving a Balanced Style</h3></div></div><p> 
+         Just as you need to juggle expert and novice readers,
+         you'll have to juggle a number of other extremes as you write:
+         <div class="itemizedlist"><ul><li><p><a name="id2941166"></a>
+              Documents should be complete, yet concise.  You should
+              describe every feature, but you'll have decide how much
+              detail is really necessary.  It's not, for example,
+              necessary to describe every button and form field in a
+              dialog box, but you should make sure that your readers
+              know how to bring up the dialog and what it does.  If
+              you spend fewer words on the obvious, you can spend more
+              time clarifying the ambiguous labels and explaining
+              items that are more complex.
+            </p></li><li><p><a name="id2941193"></a>
+              Be engaging and friendly, yet professional. Games
+              documents may be less formal than productivity
+              application documents (people don't
+              <i>use</i> games, they
+              <i>play</i> them), but all of them should
+              maintain a standard of style which holds the reader's
+              interest without resorting to jokes and untranslatable
+              allusions or puns.
+           </p></li><li><p><a name="id2941232"></a>
+              Examples, tips, notes, and screenshots are useful to
+              break up long stretches of text, but too many can get in
+              the way, and make your documents too choppy to read.
+              It's good to provide a screenshot of any dialog windows
+              a user might run into, but if a dialog box has several
+              tabs, it's not usually necessary to have one for each.
+           </p></li><li><p><a name="id2941255"></a>
+              The GDP strives to have all of its documentation conform
+              to certain standards of style and content, but every
+              document (and every writer) is different.  You will need
+              to use your judgement, and write documents to fit with
+              the rest of the project, without compromising the
+              individual needs of your subject, or your own
+              individuality as a writer.
+           </p></li></ul></div>
+       </p></div><div class="sect2"><a name="stylestructure"></a><div class="titlepage"><div><h3 class="title"><a name="stylestructure"></a>Structure</h3></div></div><p>
+         In general, you won't have to worry too much about structure,
+         because the templates provide you with an excellent example.
+         As a general rule, try to follow that structural example.
+         That means using links, hierarchical nesting, and, if
+         necessary, a glossary or index.  You probably won't need to
+         use every available structural tag, but take advantage of
+         what DocBook provides you.
+      </p><p>
+         As to linking, there's some disagreement about whether to use
+         <tt>&lt;xref&gt;</tt> <tt>&lt;link&gt;</tt>
+         when you make links within your documents.  You'll have to
+         decide, based on the different ways that they are presented
+         in output, which is more appropriate given the context.
+         Regardless of which you use, you should not forget to use
+         them.  Help your readers find information that relevant to
+         the issue at hand.
+      </p><p>
+         The table of contents will be generated automatically, but
+         you will probably have to develop your own index if you wish
+         to have one.  The Nautilus Help Browser will have new, and
+         currently unknown, indexing capabilities, so index style and
+         structure are still under discussion.  The GNOME User's Guide
+         will contain a glossary in its next versions; unless you're
+         writing a<tt>&lt;book&gt;</tt>, it will probably be best to
+         contribute to that rather than developing your own.
+      </p></div><div class="sect2"><a name="stylegrammar"></a><div class="titlepage"><div><h3 class="title"><a name="stylegrammar"></a>Grammar and Spelling</h3></div></div><p>
+        Nobody expects you to be perfect; they just expect the
+        documentation for their software to be error-free.  That means
+        that, in the same way that developers look for bugs and accept
+        bug reports, writers must check for errors in their documents.
+        Poor grammar, bad spelling, and gross technical errors in
+        draft documents are fine.  However, if those problems show up
+        in a "real" release, they can count against the credibility of
+        GNOME and Linux.  They'll also make you look bad.
+      </p><p>
+        There is no substitute for a human proofreader; use a
+        spell-check program, then read it over yourself, and then find
+        someone else to help you.  Other GDP members are, of course,
+        willing and able to help you, but non-writers are often at
+        least as helpful.
+      </p><p>
+        Proofreading documents is both a also a good way to
+        familiarize yourself with documentation, and it certainly
+        makes you valuable to the GDP. Help other writers proof their
+        documents, and they will help you with yours.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs11.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs13.html">Next</a></td></tr><tr><td width="40%" align="left">Referring to Other GNOME Documentation (coming in
+    GNOME-2.0) </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> Teamwork</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs13.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs13.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs13.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Teamwork</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs12.html" title="Basics of Documentation Style"><link rel="next" href="indexs14.html" title="Finishing A Document"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Teamwork</th></tr><tr><td width="20%" align="left"><a href="indexs12.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs14.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="teamwork"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="teamwork"></a>Teamwork</h2></div></div><div class="sect2"><a name="teamworkgdp"></a><div class="titlepage"><div><h3 class="title"><a name="teamworkgdp"></a>Working With The GDP Team</h3></div></div><p>
+        The GDP team is a valuable resource for any documentation
+        author.  GDP members can answer most questions documentation
+        authors have during the course of their work. It is also
+        important to make sure you are not duplicating work of other
+        GDP members by visiting the <i>GDP Documentation
+        Status Table</i> (<a href="http://www.gnome.org/gdp/doctable/" target="_top">http://www.gnome.org/gdp/doctable/</a>) and
+        assigning a documentation item to yourself.  This table also
+        provides a forum for making suggestions and announcements for
+        each documentation item.  The best way to get in touch with
+        GDP members is on the #docs IRC channel at irc.gnome.org or
+        else by emailing the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+        <i>gnome-doc-list mailing list</i></a>.
+      </p><p>
+        After an author has finished a document (or even a draft
+        version of the document), it is a good idea to ask a member of
+        the GDP team to read the document, checking it for grammar,
+        proper DocBook markup, and clarity.  One may typically find
+        another author to do this by either asking on the #docs IRC
+        channel at irc.gnome.org or by emailing the <a href="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/" target="_top">
+        <i>gnome-doc-list mailing list</i></a>.
+      </p></div><div class="sect2"><a name="teamworkdevelopers"></a><div class="titlepage"><div><h3 class="title"><a name="teamworkdevelopers"></a>Working With Developers</h3></div></div><p>
+        Writing documentation typically involves a certain amount of
+        interaction with the developers of GNOME or the application
+        which is being documented.  Often a document author will need
+        to ask the developer technical questions during the course of
+        writing a document. After the document is finished, it is good
+        idea to ask the developer to read the document to make sure it
+        is technically correct.  The documentation author should also
+        make sure that the application author correctly binds and
+        packages the documentation with the application.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs12.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs14.html">Next</a></td></tr><tr><td width="40%" align="left">Basics of Documentation Style </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> Finishing A Document</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs14.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs14.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs14.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Finishing A Document</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs13.html" title="Teamwork"><link rel="next" href="indexs15.html" title="Resources"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Finishing A Document</th></tr><tr><td width="20%" align="left"><a href="indexs13.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="indexs15.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="finishing"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="finishing"></a>Finishing A Document</h2></div></div><div class="sect2"><a name="editting"></a><div class="titlepage"><div><h3 class="title"><a name="editting"></a>Editing The Document</h3></div></div><p>
+        When the document is finished, the document should be edited
+        by another member of the GDP for spelling, clarity, and
+        DocBook markup. It should also be read by an application
+        author to make sure the document is technically accurate.
+      </p></div><div class="sect2"><a name="submitting"></a><div class="titlepage"><div><h3 class="title"><a name="submitting"></a>Submitting The Document</h3></div></div><p>
+        After the document has been edited and checked for technical
+        accuracy, it is ready to be combined with the application or
+        documentation package.  This is typically done by passing the
+        document to the application or package developer.  In some
+        cases, the documents can be committed directly into CVS,
+        however this should only be done after obtaining permission to
+        make CVS commits from the developer.  Note that in many cases,
+        the application may need to be modified to correctly link to
+        the documentation.  The packaging system (tarballs and binary
+        packages) may also need to be modified to include the
+        documentation in the package.  Generally, this should be done
+        by the developers.
+      </p><p>
+        The final step is to email the GNOME Translation Team at
+        <tt>&lt;<a href="mailto:gnome-i18n at nuclecu.unam.mx">gnome-i18n at nuclecu.unam.mx</a>&gt;</tt> to notify them that
+        there is a new document for them to translate.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs13.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="indexs15.html">Next</a></td></tr><tr><td width="40%" align="left">Teamwork </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> Resources</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs15.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs15.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/result/xtchunk/html/indexs15.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Resources</title><meta name="generator" content="DocBook XSL Stylesheets V1.40"><link rel="home" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="up" href="index.html" title="The GNOME Handbook of Writing Software Documentation"><link rel="previous" href="indexs14.html" title="Finishing A Document"><link rel="next" href="apa.html" title="A. Document Templates"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Resources</th></tr><tr><td width="20%" align="left"><a href="indexs14.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a href="apa.html">Next</a></td></tr></table><hr></div><div class="sect1"><a name="resources"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="resources"></a>Resources</h2></div></div><div class="sect2"><a name="resourcesweb"></a><div class="titlepage"><div><h3 class="title"><a name="resourcesweb"></a>Resources On The Web</h3></div></div><p>  The <a href="http://developer.gnome.org/projects/gdp/" target="_top">GNOME
+      Documentation Project Web page</a> lists current GDP 
+      projects and members.
+      </p><p>
+        The <a href="http://www.gnome.org/gdp/doctable/" target="_top">GDP Documentation Status Table</a> tracks the
+        status of all the various documentation components of GNOME.
+      </p><p>
+        Norman Walsh's  <a href="http://www.docbook.org" target="_top"> <i>DocBook: The Definitive
+        Guide</i></a> in an excellent book on DocBook,
+        available both online and in print.
+      </p></div><div class="sect2"><a name="resourcesbooks"></a><div class="titlepage"><div><h3 class="title"><a name="resourcesbooks"></a>Books</h3></div></div><p>
+        Docbook: The Definitive Guide is available in both printed
+        form and on the web at:
+        <a href="http://www.docbook.org/tdg/index.html" target="_top">
+        <i>Docbook: The Definitive Guide</i>
+        </a>
+      </p></div><div class="sect2"><a name="mailinglists"></a><div class="titlepage"><div><h3 class="title"><a name="mailinglists"></a>Mailing Lists</h3></div></div><p>
+        The <i>gnome-docs-list</i> mailing list is the
+        main discussion area for all contributors to the GNOME
+        Documentation Project. You can find out how to subscribe to
+        this list on <a href="http://www.gnome.org/resources/mailing-lists.html" target="_top">GNOME Mailing Lists</a>.  This is a rather
+        low-volume list, so you will not be flooded with messages.
+      </p></div><div class="sect2"><a name="irc"></a><div class="titlepage"><div><h3 class="title"><a name="irc"></a>IRC</h3></div></div><p>
+        Internet Relay Chat (IRC) is a fast and easy way to get in
+        touch with other GDP members.  There are generally at least a
+        few members here who can answer questions or discuss
+        documentation issues.  The IRC channel is #docs at
+        irc.gnome.org.
+      </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a href="indexs14.html">Prev</a> </td><td width="20%" align="center"><a href="index.html">Home</a></td><td width="40%" align="right"> <a href="apa.html">Next</a></td></tr><tr><td width="40%" align="left">Finishing A Document </td><td width="20%" align="center"><a href="index.html">Up</a></td><td width="40%" align="right"> A. Document Templates</td></tr></table></div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+2001-05-21  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* titlepage.xsl: Reworked titlepage template processing to support use of more interesting
+	predicates.
+	
+	Note: in previous versions, at most one title, subtitle, or titleabbrev
+	element would be processed for each title page. In the new design, if you
+	have multiple title, subtitle, or titleabbrev elements inside an info
+	wrapper (you shouldn't!), they will all be processed.
+
+2001-04-02  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* README, biblioentry.xsl, testtemplate.xml, titlepage.xsl: 
+	New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/README
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/README	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/README	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+This directory contains rudimentary support for the notion of
+stylesheet templates.
+
+The idea is that if you want to change the behavior of the
+stylesheets, for example, processing different bibliography
+elements, you will construct a tempate document that describes
+what you want and then process that template with the "template"
+stylesheet.
+
+The result of this processing will be a customization layer for
+the DocBook XSL Stylesheets that does what you want. This
+removes the stylesheet customizer from the burdon of figuring
+out how the stylesheets work and modifying them.
+
+In theory, anyway...
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/biblioentry.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/biblioentry.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/biblioentry.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,72 @@
+<!-- THIS IS BROKEN -->
+<!-- ==================================================================== -->
+
+<xsl:template match="t:biblioentry">
+  <xsl:text>&#xA;&#xA;</xsl:text>
+  <xsl:element name="xsl:template">
+    <xsl:attribute name="match">biblioentry</xsl:attribute>
+    <xsl:text>&#xA;</xsl:text>
+    <xsl:element name="xsl:variable">
+      <xsl:attribute name="name">id</xsl:attribute>
+      <xsl:element name="xsl:call-template">
+        <xsl:attribute name="name">object.id</xsl:attribute>
+      </xsl:element>
+    </xsl:element>
+    <xsl:text>&#xA;</xsl:text>
+    <xsl:element name="{@wrapper}">
+      <xsl:attribute name="id">{$id}</xsl:attribute>
+      <xsl:attribute name="class">{name(.)}</xsl:attribute>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:element name="a">
+        <xsl:attribute name="name">{$id}</xsl:attribute>
+      </xsl:element>
+      <xsl:apply-templates mode="biblioentry"/>
+      <xsl:text>&#xA;</xsl:text>
+    </xsl:element>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:element>
+
+<!--
+  <xsl:text>&#xA;&#xA;</xsl:text>
+  <xsl:element name="xsl:template">
+    <xsl:attribute name="match">biblioentry/biblioset</xsl:attribute>
+    <xsl:apply-templates mode="biblioentry"/>
+  </xsl:element>
+-->
+</xsl:template>
+
+<xsl:template match="t:if" mode="biblioentry">
+  <xsl:element name="xsl:if">
+    <xsl:attribute name="test">
+      <xsl:value-of select="@test"/>
+    </xsl:attribute>
+    <xsl:apply-templates mode="biblioentry"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="t:text" mode="biblioentry">
+  <xsl:element name="xsl:text">
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="*" mode="biblioentry">
+  <xsl:text>&#xA;  </xsl:text>
+  <xsl:element name="xsl:apply-templates">
+    <xsl:attribute name="select">
+      <xsl:value-of select="name(.)"/>
+    </xsl:attribute>
+    <xsl:attribute name="mode">bibliography.mode</xsl:attribute>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template match="t:or" mode="biblioentry">
+  <xsl:text>&#xA;  </xsl:text>
+  <xsl:element name="xsl:apply-templates">
+    <xsl:attribute name="select">
+      <xsl:call-template name="element-or-list"/>
+    </xsl:attribute>
+    <xsl:attribute name="mode">bibliography.mode</xsl:attribute>
+  </xsl:element>
+</xsl:template>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/testtemplate.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/testtemplate.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/testtemplate.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,38 @@
+<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+             base-stylesheet="../html/docbook.xsl">
+
+<t:variable name="section.autonumber" select="true()"/>
+<t:variable name="html.stylesheet">docbook.css</t:variable>
+
+<t:titlepage element="article" side="recto">
+  <title predicate="[1]"/>
+  <subtitle predicate="[1]"/>
+  <corpauthor/>
+  <author/>
+  <authorgroup>
+    <t:or>
+      <corpauthor/>
+      <author/>
+      <editor/>
+    </t:or>
+  </authorgroup>
+  <editor/>
+  <releaseinfo/>
+  <copyright/>
+  <pubdate/>
+  <revision/>
+  <revhistory/>
+  <abstract/>
+</t:titlepage>
+
+<t:biblioentry>
+  <abbrev/>
+  <title/>
+  <t:or>
+    <authorgroup/>
+    <author/>
+  </t:or>
+  <biblioset/>
+</t:biblioentry>  
+
+</t:templates>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/titlepage.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/titlepage.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/template/titlepage.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1129 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
+                xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+                exclude-result-prefixes="doc"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: titlepage.xsl,v 1.1 2001/06/23 17:06:52 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id: titlepage.xsl,v 1.1 2001/06/23 17:06:52 veillard Exp $
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>Template Stylesheet Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+
+</doc:reference>
+
+<!-- ==================================================================== -->
+
+<xsl:preserve-space elements="*"/>
+<xsl:strip-space elements="xsl:* t:*"/>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:templates" xmlns="">
+<refpurpose>Construct a stylesheet for the templates provided</refpurpose>
+
+<refdescription>
+<para>The <literal>t:templates</literal> element is the root of a
+set of templates. This template creates an appropriate
+<literal>xsl:stylesheet</literal> for the templates.</para>
+
+<para>If the <literal>t:templates</literal> element has a
+<literal>base-stylesheet</literal> attribute, an
+<literal>xsl:import</literal> statement is constructed for it.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:templates">
+  <xsl:element name="xsl:stylesheet">
+    <xsl:attribute name="version">1.0</xsl:attribute>
+
+    <xsl:text>&#xA;&#xA;</xsl:text>
+    <xsl:comment>
+      <xsl:text> This stylesheet was created by </xsl:text>
+      <xsl:text>template/titlepage.xsl; </xsl:text>
+      <xsl:text>do not edit it by hand. </xsl:text>
+    </xsl:comment>
+
+    <xsl:if test="@base-stylesheet">
+      <xsl:text>&#xA;&#xA;</xsl:text>
+      <xsl:element name="xsl:import">
+        <xsl:attribute name="href">
+          <xsl:value-of select="@base-stylesheet"/>
+        </xsl:attribute>
+      </xsl:element>
+    </xsl:if>
+
+    <xsl:apply-templates/>
+
+    <xsl:text>&#xA;&#xA;</xsl:text>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="xsl:*" xmlns="">
+<refpurpose>Copy xsl: elements straight through</refpurpose>
+
+<refdescription>
+<para>This template simply copies the xsl: elements
+straight through into the result tree.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="xsl:*">
+  <xsl:apply-templates select="." mode="copy"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:titlepage" xmlns="">
+<refpurpose>Create the templates necessary to construct a title page</refpurpose>
+
+<refdescription>
+<para>The <literal>t:titlepage</literal> element creates a set of
+templates for processing the titlepage for an element. The
+<quote>root</quote> of this template set is the template named
+<quote><literal>wrapper.titlepage</literal></quote>. That is the
+template that should be called to generate the title page.
+</para>
+
+<para>The <literal>t:titlepage</literal> element has three attributes:
+
+<variablelist>
+<varlistentry><term>element</term>
+<listitem><para>The name of the source document element for which
+these templates apply. In other words, to make a title page for the
+<sgmltag>article</sgmltag> element, set the
+<sgmltag class="attribute">element</sgmltag> attribute to
+<quote><literal>article</literal></quote>. This attribute is required.
+</para></listitem>
+</varlistentry>
+<varlistentry><term>wrapper</term>
+<listitem><para>The entire title page can be wrapped with an element.
+This attribute identifies that element.
+</para></listitem>
+</varlistentry>
+<varlistentry><term>class</term>
+<listitem><para>If the <sgmltag class="attribute">class</sgmltag> attribute
+is set, a <sgmltag class="attribute">class</sgmltag> attribute with this
+value will be added to the wrapper element that surrounds the entire
+title page.
+</para></listitem>
+</varlistentry>
+</variablelist>
+</para>
+
+<para>Any other attributes are copied through literally to the
+wrapper element.</para>
+
+<para>The content of a <literal>t:titlepage</literal> is one or
+more <literal>t:titlepage-content</literal>,
+<literal>t:titlepage-separator</literal>, and
+<literal>t:titlepage-before</literal> elements.</para>
+
+<para>Each of these elements may be provided for the <quote>recto</quote>
+and <quote>verso</quote> sides of the title page.</para>
+
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:titlepage">
+  <!-- process the children to make the templates for the content,
+       separator, and before elements -->
+  <xsl:apply-templates/>
+
+  <!-- output the title page template -->
+  <xsl:text>&#xA;&#xA;</xsl:text>
+  <xsl:element name="xsl:template">
+    <xsl:attribute name="name">
+      <xsl:value-of select="@element"/>
+      <xsl:text>.titlepage</xsl:text>
+    </xsl:attribute>
+    <xsl:text>&#xA;  </xsl:text>
+    <xsl:element name="{@wrapper}">
+      <xsl:apply-templates select="@*" mode="copy.literal.atts"/>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:call-template">
+        <xsl:attribute name="name">
+          <xsl:value-of select="@element"/>
+          <xsl:text>.titlepage.before.recto</xsl:text>
+        </xsl:attribute>
+      </xsl:element>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:call-template">
+        <xsl:attribute name="name">
+          <xsl:value-of select="@element"/>
+          <xsl:text>.titlepage.recto</xsl:text>
+        </xsl:attribute>
+      </xsl:element>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:call-template">
+        <xsl:attribute name="name">
+          <xsl:value-of select="@element"/>
+          <xsl:text>.titlepage.before.verso</xsl:text>
+        </xsl:attribute>
+      </xsl:element>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:call-template">
+        <xsl:attribute name="name">
+          <xsl:value-of select="@element"/>
+          <xsl:text>.titlepage.verso</xsl:text>
+        </xsl:attribute>
+      </xsl:element>
+      <xsl:text>&#xA;    </xsl:text>
+      <xsl:element name="xsl:call-template">
+        <xsl:attribute name="name">
+          <xsl:value-of select="@element"/>
+          <xsl:text>.titlepage.separator</xsl:text>
+        </xsl:attribute>
+      </xsl:element>
+      <xsl:text>&#xA;  </xsl:text>
+    </xsl:element>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:element>
+
+  <!-- If we're not importing a base stylesheet, output a default rule
+       for the recto- and verso-mode elements. (If we are importing a
+       base stylesheet, don't do this since the *-rules in the stylesheet
+       will totally override the rules that would otherwise be imported.)
+       -->
+
+  <xsl:if test="not(../@base-stylesheet)">
+    <!-- output a default rule for the recto-modes elements -->
+    <xsl:text>&#xA;&#xA;</xsl:text>
+    <xsl:element name="xsl:template">
+      <xsl:attribute name="match">*</xsl:attribute>
+      <xsl:attribute name="mode">
+        <xsl:value-of select="@element"/>
+        <xsl:text>.titlepage.recto.mode</xsl:text>
+      </xsl:attribute>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:comment> if an element isn't found in this mode, </xsl:comment>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:comment> try the generic titlepage.mode </xsl:comment>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:element name="xsl:apply-templates">
+        <xsl:attribute name="select">.</xsl:attribute>
+        <xsl:attribute name="mode">titlepage.mode</xsl:attribute>
+      </xsl:element>
+      <xsl:text>&#xA;</xsl:text>
+    </xsl:element>
+
+    <!-- output a default rule for the verso-modes elements -->
+    <xsl:text>&#xA;&#xA;</xsl:text>
+    <xsl:element name="xsl:template">
+      <xsl:attribute name="match">*</xsl:attribute>
+      <xsl:attribute name="mode">
+        <xsl:value-of select="@element"/>
+        <xsl:text>.titlepage.verso.mode</xsl:text>
+      </xsl:attribute>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:comment> if an element isn't found in this mode, </xsl:comment>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:comment> try the generic titlepage.mode </xsl:comment>
+      <xsl:text>&#xA;  </xsl:text>
+      <xsl:element name="xsl:apply-templates">
+        <xsl:attribute name="select">.</xsl:attribute>
+        <xsl:attribute name="mode">titlepage.mode</xsl:attribute>
+      </xsl:element>
+      <xsl:text>&#xA;</xsl:text>
+    </xsl:element>
+  </xsl:if>
+
+  <!-- output default templates for each of the elements listed in  -->
+  <!-- the titlepage-content. If a template is suppressed or forced -->
+  <!-- to be off, or has already been output, don't output it.      -->
+  <xsl:for-each select="t:titlepage-content/*">
+    <xsl:variable name="thisnode" select="."/>
+    <xsl:if test="(not(@suppress-template) or @suppress-template='0')
+                  and (not(@force) or @force='0')
+                  and (not(preceding-sibling::*[name(.)=name($thisnode)]))">
+      <xsl:text>&#xA;&#xA;</xsl:text>
+      <xsl:element name="xsl:template">
+        <xsl:attribute name="match">
+          <xsl:value-of select="name(.)"/>
+        </xsl:attribute>
+        <xsl:attribute name="mode">
+          <xsl:value-of select="../../@element"/>
+          <xsl:text>.titlepage.</xsl:text>
+          <xsl:value-of select="../@side"/>
+          <xsl:text>.auto.mode</xsl:text>
+        </xsl:attribute>
+        <xsl:text>&#xA;</xsl:text>
+        <xsl:element name="{../../@wrapper}">
+          <xsl:attribute name="xsl:use-attribute-sets">
+            <xsl:value-of select="../../@element"/>
+            <xsl:text>.titlepage.</xsl:text>
+            <xsl:value-of select="../@side"/>
+            <xsl:text>.style</xsl:text>
+          </xsl:attribute>
+          <xsl:for-each select="@*">
+            <xsl:if test="namespace-uri(.)='http://www.w3.org/1999/XSL/Format'">
+              <xsl:attribute name="{local-name(.)}">
+                <xsl:value-of select="."/>
+              </xsl:attribute>
+            </xsl:if>
+          </xsl:for-each>
+          <xsl:text>&#xA;</xsl:text>
+
+          <xsl:choose>
+            <xsl:when test="@named-template">
+              <xsl:element name="xsl:call-template">
+                <xsl:attribute name="name">
+                  <xsl:value-of select="@named-template"/>
+                </xsl:attribute>
+                <xsl:for-each select="@*">
+                  <xsl:if test="namespace-uri(.)='http://nwalsh.com/docbook/xsl/template/1.0/param'">
+                    <xsl:text>&#xA;</xsl:text>
+                    <xsl:element name="xsl:with-param">
+                      <xsl:attribute name="name">
+                        <xsl:value-of select="local-name(.)"/>
+                      </xsl:attribute>
+                      <xsl:attribute name="select">
+                        <xsl:value-of select="."/>
+                      </xsl:attribute>
+                    </xsl:element>
+                  </xsl:if>
+                </xsl:for-each>
+                <xsl:text>&#xA;</xsl:text>
+              </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:element name="xsl:apply-templates">
+                <xsl:attribute name="select">.</xsl:attribute>
+                <xsl:attribute name="mode">
+                  <xsl:value-of select="../../@element"/>
+                  <xsl:text>.titlepage.</xsl:text>
+                  <xsl:value-of select="../@side"/>
+                  <xsl:text>.mode</xsl:text>
+                </xsl:attribute>
+              </xsl:element>
+            </xsl:otherwise>
+          </xsl:choose>
+
+          <xsl:text>&#xA;</xsl:text>
+        </xsl:element>
+        <xsl:text>&#xA;</xsl:text>
+      </xsl:element>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<doc:template match="@*" mode="copy.literal.atts" xmlns="">
+<refpurpose>Copy t:titlepage attributes</refpurpose>
+
+<refdescription>
+<para>This template copies all of the <quote>other</quote> attributes
+from a <literal>t:titlepage</literal> element onto the specified
+wrapper.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="@*" mode="copy.literal.atts">
+  <xsl:choose>
+    <xsl:when test="name(.) = 'element'"></xsl:when>
+    <xsl:when test="name(.) = 'wrapper'"></xsl:when>
+    <xsl:otherwise>
+      <xsl:attribute name="{name(.)}">
+        <xsl:value-of select="."/>
+      </xsl:attribute>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:titlepage-content">
+<refpurpose>Create templates for the content of one side of a title page</refpurpose>
+
+<refdescription>
+<para>The title page content, that is, the elements from the source
+document that are rendered on the title page, can be controlled independently
+for the recto and verso sides of the title page.</para>
+
+<para>The <literal>t:titlepage-content</literal> element has two attributes:
+
+<variablelist>
+<varlistentry><term>side</term>
+<listitem><para>Identifies the side of the page to which this title
+page content applies. The
+<sgmltag class="attribute">side</sgmltag> attribute is required and
+must be set to either 
+<quote><literal>recto</literal></quote> or
+<quote><literal>verso</literal></quote>. In addition, you must specify
+exactly one <literal>t:titlepage-content</literal> for each side
+within each <literal>t:titlepage</literal>.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>order</term>
+<listitem><para>Indicates how the order of the elements presented on
+the title page is determined. If the
+<sgmltag class="attribute">order</sgmltag> is
+<quote><literal>document</literal></quote>, the elements are presented
+in document order. Otherwise (if the
+<sgmltag class="attribute">order</sgmltag> is
+<quote><literal>stylesheet</literal></quote>), the elements are presented
+in the order that they appear in the template (and consequently in
+the stylesheet).</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</para>
+
+<para>The content of a <literal>t:titlepage-content</literal> element is
+a list of element names. These names should be unqualified.  They identify
+the elements in the source document that should appear on the title page.
+</para>
+
+<para>Each element may have a single attribute:
+<sgmltag class="attribute">predicate</sgmltag>. The value of this
+attribute is used as a predicate for the expression that matches
+the element on which it occurs.</para>
+
+<para>In other words, to put only the first three authors on the
+recto-side of a title
+page, you could specify:
+
+<screen><![CDATA[
+  <t:titlepage-contents side="recto">
+    <!-- other titlepage elements -->
+    <author predicate="[count(previous-sibling::author)<2]"/>
+    <!-- other titlepage elements -->
+  </t:titlepage-contents>
+]]></screen>
+</para>
+
+<para>Usually, the elements so named are empty. But it is possible to
+make one level of selection within them. Suppose that you want to
+process <literal>authorgroup</literal> elements on the title page, but
+you want to select only proper authors, editors, or corporate authors,
+not collaborators or other credited authors.</para>
+
+<para>In that case, you can put a <literal>t:or</literal> group inside
+the <literal>authorgroup</literal> element:
+
+<screen><![CDATA[
+  <t:titlepage-contents side="recto">
+    <!-- other titlepage elements -->
+    <authorgroup>
+      <t:or>
+        <author/>
+        <editor/>
+        <corpauthor/>
+      </t:or>
+    </authorgroup>
+    <!-- other titlepage elements -->
+  </t:titlepage-contents>
+]]></screen>
+</para>
+
+<para>This will have the effect of automatically generating a template
+for processing <literal>authorgroup</literal>s in the title page mode,
+selecting only the specified children. If you need more complex processing,
+you'll have to construct the templates by hand.</para>
+
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:titlepage-content">
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="@side='recto' or @side='verso'">
+        <xsl:value-of select="@side"/>
+      </xsl:when>
+      <xsl:when test="@side">
+        <xsl:message terminate="yes">
+          <xsl:text>Illegal value specified for @side </xsl:text>
+          <xsl:text>on t:titlepage-content: </xsl:text>
+          <xsl:value-of select="@side"/>
+        </xsl:message>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:message terminate="yes">
+          <xsl:text>The @side attribute is required on </xsl:text>
+          <xsl:text>t:titlepage-content.</xsl:text>
+        </xsl:message>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="../@element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:text>&#xA;&#xA;</xsl:text>
+  <xsl:element name="xsl:template">
+    <xsl:attribute name="name">
+      <xsl:value-of select="../@element"/>
+      <xsl:text>.titlepage.</xsl:text>
+      <xsl:value-of select="$side"/>
+    </xsl:attribute>
+
+    <xsl:choose>
+      <!-- if document order is selected, make a huge select statement
+           on a single xsl:apply-templates to pick out the right elements
+           for the title page. -->
+      <xsl:when test="@order='document'">
+        <xsl:if test="count(child::*)&gt;0">
+          <xsl:element name="xsl:apply-templates">
+            <xsl:attribute name="mode">
+              <xsl:value-of select="$mode"/>
+            </xsl:attribute>
+            <xsl:attribute name="select">
+              <xsl:apply-templates mode="document.order"/>
+            </xsl:attribute>
+          </xsl:element>
+        </xsl:if>
+      </xsl:when>
+
+      <!-- otherwise, select each of the elements in the specified order -->
+      <xsl:otherwise>
+        <xsl:apply-templates mode="stylesheet.order"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:element>
+  <xsl:apply-templates mode="titlepage.specialrules"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:titlepage-separator">
+<refpurpose>Create templates for the separator</refpurpose>
+
+<refdescription>
+<para>The title page is separated from the content which follows it by
+the markup specified in the <literal>t:titlepage-separator</literal>
+element.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:titlepage-separator">
+  <xsl:text>&#xA;&#xA;</xsl:text>
+  <xsl:element name="xsl:template">
+    <xsl:attribute name="name">
+      <xsl:value-of select="../@element"/>
+      <xsl:text>.titlepage.separator</xsl:text>
+    </xsl:attribute>
+
+    <xsl:apply-templates mode="copy"/>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:titlepage-before">
+<refpurpose>Create templates for what precedes a title page</refpurpose>
+
+<refdescription>
+<para>Each side of the title page is preceded by the markup specified
+in the <literal>t:titlepage-before</literal> element for that
+side.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:titlepage-before">
+  <xsl:text>&#xA;&#xA;</xsl:text>
+  <xsl:element name="xsl:template">
+    <xsl:attribute name="name">
+      <xsl:value-of select="../@element"/>
+      <xsl:text>.titlepage.before.</xsl:text>
+      <xsl:value-of select="@side"/>
+    </xsl:attribute>
+
+    <xsl:apply-templates mode="copy"/>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="*" mode="copy" xmlns="">
+<refpurpose>Copy elements</refpurpose>
+
+<refdescription>
+<para>This template simply copies the elements that it applies to
+straight through into the result tree.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="*" mode="copy">
+  <xsl:element name="{name(.)}">
+    <xsl:apply-templates select="@*" mode="copy"/>
+    <xsl:apply-templates mode="copy"/>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="@*" mode="copy" xmlns="">
+<refpurpose>Copy attributes</refpurpose>
+
+<refdescription>
+<para>This template simply copies the attributes that it applies to
+straight through into the result tree.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="@*" mode="copy">
+  <xsl:attribute name="{name(.)}">
+    <xsl:value-of select="."/>
+  </xsl:attribute>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="*" mode="document.order" xmlns="">
+<refpurpose>Create rules to process titlepage elements in document order</refpurpose>
+
+<refdescription>
+<para>This template is called to process all of the children of the
+<literal>t:titlepage-content</literal> element. It creates the hairy
+select expression necessary to process each of those elements in
+the title page.</para>
+
+<para>Note that this template automatically handles the case where
+some DocBook elements, like title and subtitle, can occur both inside
+the *info elements where metadata is usually stored and outside.
+</para>
+
+<para>It also automatically calculates the name for the *info container
+and handles elements that have historically had containers with different
+names.</para>
+
+</refdescription>
+</doc:template>
+
+<xsl:template match="*" mode="document.order">
+  <xsl:variable name="docinfo">
+    <xsl:value-of select="ancestor::t:titlepage/@element"/>
+    <xsl:text>info</xsl:text>
+  </xsl:variable>
+
+  <xsl:variable name="altinfo">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage/@element='article'">
+        <xsl:text>artheader</xsl:text>
+      </xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='section'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='sect1'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='sect2'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='sect3'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='sect4'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='sect5'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='book'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='set'"></xsl:when>
+      <xsl:otherwise>docinfo</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage-content/@side">
+        <xsl:value-of select="ancestor::t:titlepage-content/@side"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>recto</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="ancestor::t:titlepage/@element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:if test="preceding-sibling::*">
+    <xsl:text>|</xsl:text>
+  </xsl:if>
+
+  <xsl:value-of select="$docinfo"/>
+  <xsl:text>/</xsl:text>
+  <xsl:value-of select="name(.)"/>
+  <xsl:if test="@predicate">
+    <xsl:value-of select="@predicate"/>
+  </xsl:if>
+
+  <xsl:if test="$altinfo != ''">
+    <xsl:text>|</xsl:text>
+    <xsl:value-of select="$altinfo"/>
+    <xsl:text>/</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:if test="@predicate">
+      <xsl:value-of select="@predicate"/>
+    </xsl:if>
+  </xsl:if>
+
+  <xsl:if test="local-name(.) = 'title'
+                or local-name(.) = 'subtitle'
+                or local-name(.) = 'titleabbrev'">
+    <xsl:text>|</xsl:text>
+    <xsl:value-of select="name(.)"/>
+    <xsl:if test="@predicate">
+      <xsl:value-of select="@predicate"/>
+    </xsl:if>
+  </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="*" mode="document.order" xmlns="">
+<refpurpose>Create rules to process titlepage elements in stylesheet order</refpurpose>
+
+<refdescription>
+<para>This template is called to process all of the children of the
+<literal>t:titlepage-content</literal> element. It creates the set
+of <literal>xsl:apply-templates</literal> elements necessary
+process each of those elements in the title page.</para>
+
+<para>Note that this template automatically handles the case where
+some DocBook elements, like title and subtitle, can occur both inside
+the *info elements where metadata is usually stored and outside.
+</para>
+
+<para>It also automatically calculates the name for the *info container
+and handles elements that have historically had containers with different
+names.</para>
+
+</refdescription>
+</doc:template>
+
+<xsl:template match="*" mode="stylesheet.order">
+  <xsl:variable name="docinfo">
+    <xsl:value-of select="ancestor::t:titlepage/@element"/>
+    <xsl:text>info</xsl:text>
+  </xsl:variable>
+
+  <xsl:variable name="altinfo">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage/@element='article'">
+        <xsl:text>artheader</xsl:text>
+      </xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='section'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='sect1'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='sect2'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='sect3'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='sect4'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='sect5'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='book'"></xsl:when>
+      <xsl:when test="ancestor::t:titlepage/@element='set'"></xsl:when>
+      <xsl:otherwise>docinfo</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage-content/@side">
+        <xsl:value-of select="ancestor::t:titlepage-content/@side"/>
+      </xsl:when>
+      <xsl:otherwise>recto</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="ancestor::t:titlepage/@element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:text>&#xA;  </xsl:text>
+
+  <xsl:choose>
+    <xsl:when test="@force and @force != '0'">
+      <xsl:choose>
+        <xsl:when test="@named-template">
+          <xsl:element name="{../../@wrapper}">
+            <xsl:attribute name="xsl:use-attribute-sets">
+              <xsl:value-of select="../../@element"/>
+              <xsl:text>.titlepage.</xsl:text>
+              <xsl:value-of select="../@side"/>
+              <xsl:text>.style</xsl:text>
+            </xsl:attribute>
+            <xsl:for-each select="@*">
+              <xsl:if test="namespace-uri(.)='http://www.w3.org/1999/XSL/Format'">
+                <xsl:attribute name="{local-name(.)}">
+                  <xsl:value-of select="."/>
+                </xsl:attribute>
+              </xsl:if>
+            </xsl:for-each>
+            <xsl:text>&#xA;</xsl:text>
+            <xsl:element name="xsl:call-template">
+              <xsl:attribute name="name">
+                <xsl:value-of select="@named-template"/>
+              </xsl:attribute>
+              <xsl:for-each select="@*">
+                <xsl:if test="namespace-uri(.)='http://nwalsh.com/docbook/xsl/template/1.0/param'">
+                  <xsl:text>&#xA;</xsl:text>
+                  <xsl:element name="xsl:with-param">
+                    <xsl:attribute name="name">
+                      <xsl:value-of select="local-name(.)"/>
+                    </xsl:attribute>
+                    <xsl:attribute name="select">
+                      <xsl:value-of select="."/>
+                    </xsl:attribute>
+                  </xsl:element>
+                </xsl:if>
+              </xsl:for-each>
+              <xsl:text>&#xA;</xsl:text>
+            </xsl:element>
+          </xsl:element>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:message terminate="yes">
+            <xsl:text>Force can only be used with named-templates.</xsl:text>
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:when>
+    <xsl:otherwise>
+
+      <xsl:choose>
+        <xsl:when test="local-name(.) = 'title'
+                        or local-name(.) = 'subtitle'
+                        or local-name(.) = 'titleabbrev'">
+          <!-- the title, subtitle, and titleabbrev elements are special -->
+          <xsl:element name="xsl:choose">
+            <xsl:text>&#xA;    </xsl:text>
+            <xsl:element name="xsl:when">
+              <xsl:attribute name="test">
+                <xsl:value-of select="$docinfo"/>
+                <xsl:text>/</xsl:text>
+                <xsl:value-of select="name(.)"/>
+              </xsl:attribute>
+              <xsl:text>&#xA;      </xsl:text>
+              <xsl:element name="xsl:apply-templates">
+                <xsl:attribute name="mode">
+                  <xsl:value-of select="$mode"/>
+                </xsl:attribute>
+                <xsl:attribute name="select">
+                  <xsl:value-of select="$docinfo"/>
+                  <xsl:text>/</xsl:text>
+                  <xsl:value-of select="name(.)"/>
+                  <xsl:if test="@predicate">
+                    <xsl:value-of select="@predicate"/>
+                  </xsl:if>
+                </xsl:attribute>
+              </xsl:element>
+              <xsl:text>&#xA;    </xsl:text>
+            </xsl:element>
+
+            <xsl:if test="$altinfo != ''">
+              <xsl:text>&#xA;    </xsl:text>
+              <xsl:element name="xsl:when">
+                <xsl:attribute name="test">
+                  <xsl:value-of select="$altinfo"/>
+                  <xsl:text>/</xsl:text>
+                  <xsl:value-of select="name(.)"/>
+                </xsl:attribute>
+                <xsl:text>&#xA;      </xsl:text>
+                <xsl:element name="xsl:apply-templates">
+                  <xsl:attribute name="mode">
+                    <xsl:value-of select="$mode"/>
+                  </xsl:attribute>
+                  <xsl:attribute name="select">
+                    <xsl:value-of select="$altinfo"/>
+                    <xsl:text>/</xsl:text>
+                    <xsl:value-of select="name(.)"/>
+                    <xsl:if test="@predicate">
+                      <xsl:value-of select="@predicate"/>
+                    </xsl:if>
+                  </xsl:attribute>
+                </xsl:element>
+                <xsl:text>&#xA;    </xsl:text>
+              </xsl:element>
+            </xsl:if>
+
+            <xsl:text>&#xA;    </xsl:text>
+            <xsl:element name="xsl:when">
+              <xsl:attribute name="test">
+                <xsl:value-of select="name(.)"/>
+              </xsl:attribute>
+              <xsl:text>&#xA;      </xsl:text>
+              <xsl:element name="xsl:apply-templates">
+                <xsl:attribute name="mode">
+                  <xsl:value-of select="$mode"/>
+                </xsl:attribute>
+                <xsl:attribute name="select">
+                  <xsl:value-of select="name(.)"/>
+                  <xsl:if test="@predicate">
+                    <xsl:value-of select="@predicate"/>
+                  </xsl:if>
+                </xsl:attribute>
+              </xsl:element>
+              <xsl:text>&#xA;    </xsl:text>
+            </xsl:element>
+            <xsl:text>&#xA;  </xsl:text>
+          </xsl:element>
+          <xsl:text>&#xA;</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+
+          <!-- first take care of the $docinfo version -->
+          <xsl:element name="xsl:apply-templates">
+            <xsl:attribute name="mode">
+              <xsl:value-of select="$mode"/>
+            </xsl:attribute>
+            <xsl:attribute name="select">
+              <xsl:value-of select="$docinfo"/>
+              <xsl:text>/</xsl:text>
+              <xsl:value-of select="name(.)"/>
+              <xsl:if test="@predicate">
+                <xsl:value-of select="@predicate"/>
+              </xsl:if>
+            </xsl:attribute>
+          </xsl:element>
+
+          <!-- then take care of the $altinfo version -->
+          <xsl:if test="$altinfo != ''">
+            <xsl:text>&#xA;  </xsl:text>
+            <xsl:element name="xsl:apply-templates">
+              <xsl:attribute name="mode">
+                <xsl:value-of select="$mode"/>
+              </xsl:attribute>
+              <xsl:attribute name="select">
+                <xsl:value-of select="$altinfo"/>
+                <xsl:text>/</xsl:text>
+                <xsl:value-of select="name(.)"/>
+                <xsl:if test="@predicate">
+                  <xsl:value-of select="@predicate"/>
+                </xsl:if>
+              </xsl:attribute>
+            </xsl:element>
+          </xsl:if>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="*" mode="titlepage.specialrules" xmlns="">
+<refpurpose>Create templates for special rules</refpurpose>
+
+<refdescription>
+<para>This template is called to process all of the descendants of the
+<literal>t:titlepage-content</literal> element that require special
+processing. At present, that's just <literal>t:or</literal> elements.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="*" mode="titlepage.specialrules">
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage-content/@side">
+        <xsl:value-of select="ancestor::t:titlepage-content/@side"/>
+      </xsl:when>
+      <xsl:otherwise>recto</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="ancestor::t:titlepage/@element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:choose>
+    <xsl:when test="name(.)='t:or'">
+      <xsl:apply-templates select="*" mode="titlepage.specialrules"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="*"><!-- does this element have children? -->
+      <xsl:text>&#xA;&#xA;</xsl:text>
+        <xsl:element name="xsl:template">
+          <xsl:attribute name="match">
+            <xsl:value-of select="name(.)"/>
+          </xsl:attribute>
+          <xsl:attribute name="mode">
+            <xsl:value-of select="$mode"/>
+          </xsl:attribute>
+          <xsl:apply-templates select="*" mode="titlepage.subrules"/>
+          <xsl:text>&#xA;</xsl:text>
+        </xsl:element>
+      </xsl:if>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="*" mode="titlepage.subrules" xmlns="">
+<refpurpose>Create template for individual special rules</refpurpose>
+
+<refdescription>
+<para>This template is called to process the children of special
+template elements.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="*" mode="titlepage.subrules">
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage-content/@side">
+        <xsl:value-of select="ancestor::t:titlepage-content/@side"/>
+      </xsl:when>
+      <xsl:otherwise>recto</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="ancestor::t:titlepage/@element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:element name="xsl:apply-templates">
+    <xsl:attribute name="select">
+      <xsl:value-of select="name(.)"/>
+    </xsl:attribute>
+    <xsl:attribute name="mode">
+      <xsl:value-of select="$mode"/>
+    </xsl:attribute>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:or" xmlns="">
+<refpurpose>Process the t:or special rule</refpurpose>
+
+<refdescription>
+<para>This template processes t:or.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:or">
+  <xsl:variable name="side">
+    <xsl:choose>
+      <xsl:when test="ancestor::t:titlepage-content/@side">
+        <xsl:value-of select="ancestor::t:titlepage-content/@side"/>
+      </xsl:when>
+      <xsl:otherwise>recto</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:variable name="mode">
+    <xsl:value-of select="ancestor::t:titlepage/@element"/>
+    <xsl:text>.titlepage.</xsl:text>
+    <xsl:value-of select="$side"/>
+    <xsl:text>.auto.mode</xsl:text>
+  </xsl:variable>
+
+  <xsl:text>&#xA;  </xsl:text>
+  <xsl:element name="xsl:apply-templates">
+    <xsl:attribute name="select">
+      <xsl:call-template name="element-or-list"/>
+    </xsl:attribute>
+    <xsl:attribute name="mode">
+      <xsl:value-of select="$mode"/>
+    </xsl:attribute>
+  </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template match="t:or" mode="titlepage.subrules" xmlns="">
+<refpurpose>Process the t:or special rule in
+titlepage.subrules mode</refpurpose>
+
+<refdescription>
+<para>The titlepage.subrules mode doesn't apply to t:or, so just
+reprocess this node in the normal mode.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template match="t:or" mode="titlepage.subrules">
+  <xsl:apply-templates select="."/><!-- use normal mode -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<doc:template name="element-or-list" xmlns="">
+<refpurpose>Construct the "or-list" used in the select attribute for
+special rules.</refpurpose>
+
+<refdescription>
+<para>Walk through each of the children of t:or, producing the
+text of the select attribute.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="element-or-list">
+  <xsl:param name="elements" select="*"/>
+  <xsl:param name="element.count" select="count($elements)"/>
+  <xsl:param name="count" select="1"/>
+  <xsl:param name="orlist"></xsl:param>
+
+  <xsl:choose>
+    <xsl:when test="$count>$element.count">
+      <xsl:value-of select="$orlist"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="element-or-list">
+        <xsl:with-param name="elements" select="$elements"/>
+        <xsl:with-param name="element.count" select="$element.count"/>
+        <xsl:with-param name="count" select="$count+1"/>
+        <xsl:with-param name="orlist">
+          <xsl:value-of select="$orlist"/>
+          <xsl:if test="not($orlist='')">|</xsl:if>
+          <xsl:value-of select="name($elements[position()=$count])"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/.memdump
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/.memdump	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/.memdump	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+      02:31:32 PM
+
+      MEMORY ALLOCATED : 0, MAX was 0
+BLOCK  NUMBER   SIZE  TYPE

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,70 @@
+2001-01-30  Norman Walsh  <ndw at nwalsh.com>
+
+	* Makefile: Changes
+
+2001-01-28  Norman Walsh  <ndw at nwalsh.com>
+
+	* Makefile: Tweaks
+
+	* book.xml, graphics.xml, idxbook.xml, test.xml: Hacking
+
+2001-01-12  Norman Walsh  <ndw at nwalsh.com>
+
+	* Makefile: Turn on PT extensions, cause that's what I'm using most
+
+	* emc2.png: New file.
+
+	* table.xml: Added frame attributes, needs more testing
+
+	* test.xml: Hackery
+
+2001-01-07  Norman Walsh  <ndw at nwalsh.com>
+
+	* Makefile, book.xml, mlang.pl: Updated
+
+2000-12-14  Norman Walsh  <ndw at nwalsh.com>
+
+	* Makefile, foottest.xml, sectest.xml, table.xml, testmath.xml: 
+	Updated tests
+
+2000-11-29  Norman Walsh  <ndw at nwalsh.com>
+
+	* Makefile: Support PassiveTeX or FOP
+
+	* condition.xml: Fixed doctype and table
+
+	* test.xml: Hacking
+
+2000-11-15  Norman Walsh  <ndw at nwalsh.com>
+
+	* Makefile: Updated
+
+	* book3.xml: Fixes for 4.1.2
+
+	* callout.xml: New file.
+
+2000-11-09  Norman Walsh  <ndw at nwalsh.com>
+
+	* Makefile: Added call to 'tidy'
+
+	* book3.xml: Fixed doctype
+
+	* test.xml: Hacked
+
+2000-10-29  Norman Walsh  <ndw at nwalsh.com>
+
+	* table.xml: Added a few more tests
+
+2000-10-26  Norman Walsh  <ndw at nwalsh.com>
+
+	* Makefile, idxbook.xml, mlang.pl, test.xml: Added localization tests; indexing tests
+
+2000-10-14  Norman Walsh  <ndw at nwalsh.com>
+
+	* graphics.xml: New file.
+
+2000-10-09  Norman Walsh  <ndw at nwalsh.com>
+
+	* LostLog, article.xml, article2.xml, article3.xml, bib.xml, book.xml, book2.xml, book3.xml, chunk.xml, classsynop.xml, condition.xml, docbook.css, docbook40.xml, emc2.gif, figtest.xml, foottest.xml, fotest.xml, func.xml, gtest.xml, idxbook.xml, multilingual.xml, qa.xml, qa2.xml, set.xml, table.xml, test.xml, verbtest.xml: 
+	New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/LostLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/LostLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/LostLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,127 @@
+2000-08-08  Norman Walsh  <ndw at nwalsh.com>
+
+	* article.xml, test.xml: Test case hacking
+
+	* idxbook.xml: New file.
+
+2000-06-29  Norman Walsh  <ndw at nwalsh.com>
+
+	* test.xml: Added another table test
+
+2000-06-26  Norman Walsh  <ndw at nwalsh.com>
+
+	* qa2.xml: New file.
+
+2000-04-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* book2.xml: Remove broken tables; PassiveTeX can't handle them at all
+
+	* test.xml: Hackery
+
+2000-04-06  Norman Walsh  <ndw at nwalsh.com>
+
+	* classsynop.xml, docbook40.xml: New file.
+
+2000-04-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* book.xml: Added some indexterm tests
+
+	* func.xml: Added an unadorned function
+
+	* test.xml: Hacked
+
+2000-03-23  Norman Walsh  <ndw at nwalsh.com>
+
+	* article.xml, article2.xml, article3.xml, bib.xml, book.xml, book2.xml, book3.xml, chunk.xml, condition.xml, figtest.xml, foottest.xml, fotest.xml, func.xml, gtest.xml, multilingual.xml, qa.xml, set.xml, table.xml, test.xml, verbtest.xml: 
+	Updated doctypes
+
+2000-02-16  Norman Walsh  <ndw at nwalsh.com>
+
+	* test.xml: Just tweaking
+
+2000-02-07  Norman Walsh  <ndw at nwalsh.com>
+
+	* test.xml: Misc. testcase hacking
+
+2000-01-27  Norman Walsh  <ndw at nwalsh.com>
+
+	* test.xml: Added char entity test
+
+2000-01-14  Norman Walsh  <ndw at nwalsh.com>
+
+	* multilingual.xml: Added ptbr
+
+2000-01-10  Norman Walsh  <ndw at nwalsh.com>
+
+	* multilingual.xml: New file.
+
+	* qa.xml: New file.
+
+1999-12-28  Norman Walsh  <ndw at nwalsh.com>
+
+	* test.xml: Added glossary test case
+
+1999-12-24  Norman Walsh  <ndw at nwalsh.com>
+
+	* book.xml: Added dbhtml test
+
+1999-12-22  Norman Walsh  <ndw at nwalsh.com>
+
+	* book.xml: Fiddled with the content
+
+	* set.xml: New file.
+
+1999-11-16  Norman Walsh  <ndw at nwalsh.com>
+
+	* emc2.gif, gtest.xml: New file.
+
+1999-11-10  Norman Walsh  <ndw at nwalsh.com>
+
+	* article.xml, article2.xml, article3.xml, bib.xml, book.xml, book2.xml, book3.xml, chunk.xml, foottest.xml, fotest.xml, test.xml: 
+	Updated system identifiers to make them proper URIs
+
+1999-11-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* book.xml: Test revhistory and character entities
+
+1999-07-16  Norman Walsh  <ndw at nwalsh.com>
+
+	* fixfo.pl: New file.
+
+1999-07-06  Norman Walsh  <ndw at nwalsh.com>
+
+	* article.xml: Added a literallayout
+
+	* foottest.xml: New file.
+
+1999-07-02  Norman Walsh  <ndw at nwalsh.com>
+
+	* fotest.xml: New file.
+
+1999-06-14  Norman Walsh  <ndw at nwalsh.com>
+
+	* bib.xml: New file.
+
+	* book2.xml: Added title to index
+
+	* chunk.xml: New file.
+
+	* docbook.css: Move abstracts in titlepages back to the left
+
+	* test.xml: Removed a bunch of stuff
+
+1999-06-03  Norman Walsh  <ndw at nwalsh.com>
+
+	* book3.xml: New file.
+
+1999-05-20  Norman Walsh  <ndw at nwalsh.com>
+
+	* article.xml, book.xml, book2.xml, docbook.css, test.xml: 
+	More test files
+
+	* test.xml: Updates
+
+1999-05-19  Norman Walsh  <ndw at nwalsh.com>
+
+	* article.xml, article2.xml, article3.xml: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/Makefile
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/Makefile	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/Makefile	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,205 @@
+# Generated automatically from Makefile.in by configure.
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../../..
+prefix = /usr
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/libxslt
+pkglibdir = $(libdir)/libxslt
+pkgincludedir = $(includedir)/libxslt
+
+top_builddir = ../../..
+
+ACLOCAL = aclocal
+AUTOCONF = autoconf
+AUTOMAKE = automake
+AUTOHEADER = autoheader
+
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+transform = s,x,x,
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = i686-pc-linux
+host_triplet = i686-pc-linux-gnu
+AS = @AS@
+CC = gcc
+CFLAGS = -Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline 
+CPPFLAGS = 
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = -L/usr/lib -lxml2 -lz -lm -lm
+LDFLAGS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/usr/include/libxml -I/usr/include
+LIBXML_LIBS = -L/usr/lib -lxml2 -lz -lm
+LIBXSLT_MAJOR_VERSION = 0
+LIBXSLT_MICRO_VERSION = 0
+LIBXSLT_MINOR_VERSION = 9
+LIBXSLT_VERSION = 0.9.0
+LIBXSLT_VERSION_INFO = 9:0:9
+LIBXSLT_VERSION_NUMBER = 900
+LN_S = ln -s
+MAINT = 
+MAKEINFO = makeinfo
+OBJDUMP = @OBJDUMP@
+PACKAGE = libxslt
+RANLIB = ranlib
+VERSION = 0.9.0
+WITH_MEM_DEBUG = 1
+WITH_XSLT_DEBUG = 1
+XML_CONFIG = xml2-config
+XSLT_INCLUDEDIR = -I${includedir}
+XSLT_LIBDIR = -L${libdir}
+XSLT_LIBS = -lxslt -L/usr/lib -lxml2 -lz -lm -lm
+
+EXTRA_DIST =      ChangeLog LostLog article.xml article2.xml article3.xml bib.xml     book.xml book2.xml book3.xml callout.xml chunk.xml classsynop.xml     condition.xml docbook.css docbook40.xml figtest.xml foottest.xml     fotest.xml func.xml graphics.xml gtest.xml idxbook.xml multilingual.xml     qa.xml qa2.xml sectest.xml set.xml table.xml test.xml test.xsl     verbtest.xml
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/test/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/test
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/test/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+all: 
+
+# testmath.xml dropped for the moment
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,205 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AS = @AS@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+DLLTOOL = @DLLTOOL@
+EXTRA_LIBS = @EXTRA_LIBS@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+OBJDUMP = @OBJDUMP@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+
+EXTRA_DIST =      ChangeLog LostLog article.xml article2.xml article3.xml bib.xml     book.xml book2.xml book3.xml callout.xml chunk.xml classsynop.xml     condition.xml docbook.css docbook40.xml figtest.xml foottest.xml     fotest.xml func.xml graphics.xml gtest.xml idxbook.xml multilingual.xml     qa.xml qa2.xml sectest.xml set.xml table.xml test.xml test.xsl     verbtest.xml
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  ChangeLog Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docbook/test/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = tests/docbook/test
+
+distdir: $(DISTFILES)
+	here=`cd $(top_builddir) && pwd`; \
+	top_distdir=`cd $(top_distdir) && pwd`; \
+	distdir=`cd $(distdir) && pwd`; \
+	cd $(top_srcdir) \
+	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu tests/docbook/test/Makefile
+	@for file in $(DISTFILES); do \
+	  d=$(srcdir); \
+	  if test -d $$d/$$file; then \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+	    || cp -p $$d/$$file $(distdir)/$$file || :; \
+	  fi; \
+	done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f Makefile $(CONFIG_CLEAN_FILES)
+	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+	-rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+	@echo "This command is intended for maintainers to use;"
+	@echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+all: 
+
+# testmath.xml dropped for the moment
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article 
+  PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN" 
+  "../dtd/simple/3.1.7.1/sdocbook.dtd">
+
+<!--  "../dtd/simple/3.1.7.1/sdocbook.dtd">-->
+
+<!-- test document -->
+
+<article><title>Article Test Document Title</title>
+<artheader>
+<title>Artheader Test Document Title</title>
+<authorgroup>
+<corpauthor>nwalsh</corpauthor>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+<othercredit><firstname>Other</firstname><surname>Credit</surname></othercredit>
+<editor><firstname>Someother</firstname><surname>Editor</surname></editor>
+<author><firstname>Someone</firstname><surname>Else</surname></author>
+</authorgroup>
+<pubdate>Apr. 26, 1999</pubdate>
+<copyright><year>1999</year><holder>Norman Walsh</holder></copyright>
+
+<abstract>
+<para>This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</para>
+</abstract>
+</artheader>
+
+<para>
+This is a <quote>short quote</quote>.
+This is a <quote>Quotation with a <quote>nested quotation
+containing a <quote>nested quotation and another <quote>nested
+quotation</quote></quote></quote></quote>.
+</para>
+
+<literallayout>This is a <emphasis>literal layout</emphasis>
+  It'll be a &lt;pre&gt; until the <filename>chunk.pl</filename>
+script    fixes   things    up.</literallayout>
+
+<para>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</para>
+
+<figure id="testfig"><title>Test Figure</title>
+<programlisting>This is a
+  ProgramListing
+</programlisting>
+</figure>
+
+<para>This para contains an xref to a figure: <xref linkend="testfig"/>.
+</para>
+
+<figure id="testfig2"><title>Test Figure2</title>
+<programlisting>A Second
+  Test Figure
+</programlisting>
+</figure>
+
+<para>This para contains an <link linkend="testfig2">link</link> to a 
+figure.
+</para>
+
+<itemizedlist>
+<listitem><para>Test item.</para></listitem>
+<listitem><para>Test item.</para></listitem>
+<listitem><para>Test item.</para></listitem>
+</itemizedlist>
+
+<orderedlist>
+<listitem><para>Test item.</para></listitem>
+<listitem><para>Test item.</para></listitem>
+<listitem><para>Test item.</para></listitem>
+</orderedlist>
+
+<para>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</para>
+
+<section><title>First level section</title>
+<section><title>Second level section</title>
+<section><title>Third level section</title>
+<section><title>Fourth level section</title>
+<section>
+<sectioninfo>
+<title>Fifth level section (SI)</title>
+</sectioninfo>
+<title>Fifth level section</title>
+<section><title>Sixth level section</title>
+<section><title>Seventh level section</title>
+<para>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</para>
+</section>
+</section>
+</section>
+</section>
+</section>
+</section>
+</section>
+
+<appendix><title>Appendix</title>
+
+<para>This is just a test.</para>
+
+</appendix>
+</article>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article 
+  PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN" 
+  "../dtd/simple/3.1.7.1/sdocbook.dtd">
+
+<!-- test document -->
+
+<article><title>Article Test Document Title</title>
+<artheader>
+<title>Artheader Test Document Title</title>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+<pubdate>Apr. 26, 1999</pubdate>
+<copyright><year>1999</year><holder>Norman Walsh</holder></copyright>
+
+<abstract>
+<para>This article is just a test. This <emphasis>article</emphasis>
+is just a test. 
+This <userinput>article</userinput> is just a test.
+This <email>ndw at nwalsh.com</email> is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</para>
+</abstract>
+</artheader>
+
+<para>This article is just a test. This <emphasis>article</emphasis>
+is just a test. 
+This <userinput>article</userinput> is just a test.
+This <email>ndw at nwalsh.com</email> is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</para>
+
+<table><title>This is a test table</title>
+<tgroup cols="3">
+<colspec colname="c2" colnum="2" align="right" colwidth="2*"/>
+<colspec colname="c3"/>
+<thead>
+  <row><entry>Head1</entry><entry align="center">Head2</entry><entry>Head3</entry></row>
+</thead>
+<tbody>
+  <row><entry>Entry1</entry><entry>Entry2</entry><entry>Entry3</entry></row>
+  <row><entry>Entry1</entry><entry namest="c2" nameend="c3" align="center">span 2-3</entry></row>
+  <row><entry>Entry1</entry><entry morerows="2" valign="middle">morerows2</entry><entry>Entry3</entry></row>
+  <row><entry>Entry1</entry><entry>Entry3</entry></row>
+  <row><entry>Entry1</entry><entry>Entry3</entry></row>
+  <row><entry namest="c1" nameend="c3" align="center">fullspan</entry></row>
+  <row align="center"><entry>Entry1</entry><entry>Entry2</entry><entry align="left">Entry3</entry></row>
+  <row><entry>Entry1</entry><entry>Entry2</entry><entry>Entry3</entry></row>
+  <row><entry>Entry1</entry><entry>Entry2</entry><entry>Entry3</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+<variablelist>
+<varlistentry><term>term</term>
+<listitem>
+<para>some text</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>term2a</term><term>term2b</term>
+<listitem>
+<para>some text</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>term3</term>
+<listitem>
+<para>some text</para>
+<para>some text</para>
+<para>some text</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</article>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/article3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article 
+  PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN" 
+  "../dtd/simple/3.1.7.1/sdocbook.dtd">
+
+<!-- test document -->
+
+<article><title>Article Test Document Title</title>
+
+<para>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</para>
+
+<section><title>First level section</title>
+<section><title>Second level section</title>
+<section>
+<sectioninfo>
+<title>Third level section</title>
+</sectioninfo>
+<section><title>Fourth level section</title>
+<section><title>Fifth level section</title>
+<sectioninfo>
+<title>Fifth level section (SI)</title>
+</sectioninfo>
+<para>This is just a test.</para>
+</section>
+</section>
+</section>
+</section>
+</section>
+
+<section><title>Another Section</title>
+<simplesect><title>SimpleSect @ level 2</title>
+<para>This is just a test.</para>
+</simplesect>
+</section>
+
+<section><title>Another Section</title>
+<section><title>Another Section</title>
+<simplesect><title>SimpleSect @ level 3</title>
+<para>This is just a test.</para>
+</simplesect>
+</section>
+</section>
+
+<section><title>Another Section</title>
+<section><title>Another Section</title>
+<section><title>Another Section</title>
+<simplesect><title>SimpleSect @ level 4</title>
+<para>This is just a test.</para>
+</simplesect>
+</section>
+</section>
+</section>
+
+</article>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/bib.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/bib.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/bib.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd">
+
+<book id="book"><title>Test Book</title>
+<bibliography id="bib1">
+<title>A Test Bibliography</title>
+<para>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</para>
+<bibliodiv>
+<title>Books</title>
+<biblioentry>
+<abbrev>AhoSethiUllman96</abbrev>
+<authorgroup>
+<author>
+<firstname>Alfred V.</firstname>
+<surname>Aho</surname>
+</author>
+<author>
+<firstname>Ravi</firstname>
+<surname>Sethi</surname>
+</author>
+<author>
+<firstname>Jeffrey D.</firstname>
+<surname>Ullman</surname>
+</author>
+</authorgroup>
+<title>Compilers, Principles, Techniques, and Tools</title>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+<copyright>
+<year>1996</year>
+<holder>Bell Telephone Laboratories, Inc.</holder>
+</copyright>
+<isbn>0-201-10088-6</isbn>
+<editor>
+<firstname>James T.</firstname>
+<surname>DeWolf</surname>
+</editor>
+<seriesinfo>
+<title>Computer Science</title>
+<editor>
+<firstname>Michael A.</firstname>
+<surname>Harrison</surname>
+</editor>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+</seriesinfo>
+</biblioentry>
+</bibliodiv>
+<bibliodiv>
+<title>Periodicals</title>
+<biblioentry id="walsh97">
+<abbrev>Walsh97</abbrev>
+<biblioset relation="article">
+<title>A Guide to XML</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<pubdate>1997</pubdate>
+<copyright>
+<year>1997</year>
+<holder>ArborText, Inc.</holder>
+</copyright>
+<pagenums>97-108</pagenums>
+</biblioset>
+<biblioset relation="journal">
+<title>XML: Principles, Tools, and Techniques</title>
+<publisher>
+<publishername>O'Reilly &amp; Associates, Inc.</publishername>
+</publisher>
+<issn>1085-2301</issn>
+<editor>
+<firstname>Dan</firstname>
+<surname>Connolly</surname>
+</editor>
+</biblioset>
+</biblioentry>
+<bibliomixed id="walsh96">  <bibliomset relation="article">    <surname>Walsh</surname>, <firstname>Norman</firstname>.
+    <title role="article">Introduction to Cascading Style Sheets</title>.
+  </bibliomset>
+  <bibliomset relation="journal">    <title>The World Wide Web Journal</title>.
+    <volumenum>2</volumenum>(<issuenum>1</issuenum>).
+    <publishername>O'Reilly &amp; Associates, Inc.</publishername> and
+    <corpname>The World Wide Web Consortium</corpname>.
+    <pubdate>Winter, 1996</pubdate></bibliomset>.</bibliomixed>
+<biblioentry>
+<abbrev>Abbrev</abbrev>
+<title>A Really Full BiblioEntry</title>
+<subtitle>Subtitle</subtitle>
+<abstract>
+<para>Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. </para>
+</abstract>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+<artpagenums>ArtPageNums</artpagenums>
+<author>
+<firstname>AuthorFirstname</firstname>
+<surname>AuthorSurname</surname>
+</author>
+<authorblurb>
+<para>AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </para>
+</authorblurb>
+<authorinitials>AuthorInitials</authorinitials>
+<collab>
+<collabname>The names of some collaborators</collabname>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+</collab>
+<confgroup>
+<confdates>confdates</confdates>
+<conftitle>conftitle</conftitle>
+<confnum>confnum</confnum>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<confsponsor>confsponsor</confsponsor>
+</confgroup>
+<contractnum>ContractNum</contractnum>
+<contractsponsor>ContractSponsor</contractsponsor>
+<contrib>Contrib</contrib>
+<copyright>
+<year>1998</year>
+<holder>Copyright holder</holder>
+</copyright>
+<corpname>CorpName</corpname>
+<date>Date</date>
+<edition>Edition</edition>
+<editor>
+<firstname>EditorFirstName</firstname>
+<surname>EditorSurname</surname>
+</editor>
+<firstname>FirstName</firstname>
+<honorific>Honorific</honorific>
+<isbn>ISBN</isbn>
+<issn>ISSN</issn>
+<invpartnumber>InvPartNumber</invpartnumber>
+<issuenum>IssueNum</issuenum>
+<lineage>Lineage</lineage>
+<orgname>OrgName</orgname>
+<othercredit>
+<firstname>OCFirstName</firstname>
+<surname>OCSurname</surname>
+</othercredit>
+<othername>OtherName</othername>
+<pagenums>PageNums</pagenums>
+<printhistory>
+<para>PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</para>
+</printhistory>
+<productname>ProductName</productname>
+<productnumber>ProductNumber</productnumber>
+<pubdate>PubDate</pubdate>
+<publisher>
+<publishername>PubPublisherName</publishername>
+<address><street>Any Street</street>
+<city>Anywhere</city>, <state>XX</state> <postcode>99999</postcode>
+<country>USA</country></address>
+</publisher>
+<publishername>PublisherName</publishername>
+<pubsnumber>PubsNumber</pubsnumber>
+<releaseinfo>ReleaseInfo</releaseinfo>
+<revhistory>
+<revision>
+<revnumber>1.0</revnumber>
+<date>20 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.9</revnumber>
+<date>19 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.4</revnumber>
+<date>18 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+</revhistory>
+<seriesinfo>
+<title>SeriesInfo Title</title>
+<editor>
+<firstname>SeriesInfo Editor Firstname</firstname>
+<surname>SeriesInfo Editor Surname</surname>
+</editor>
+</seriesinfo>
+<seriesvolnums>SeriesVolNums</seriesvolnums>
+<surname>Surname</surname>
+<titleabbrev>TitleAbbrev</titleabbrev>
+<volumenum>VolumeNum</volumenum>
+</biblioentry>
+</bibliodiv>
+</bibliography>
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,410 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd">
+
+<!-- test document -->
+<book><title>Book Test Document Title</title>
+<bookinfo>
+<title>Bookinfo Test Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+<author><firstname>John</firstname><surname>Doe</surname></author>
+</authorgroup>
+<releaseinfo>Some releaseinfo</releaseinfo>
+<copyright><year>2000</year><holder>Norman Walsh</holder></copyright>
+<legalnotice>
+<para>Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+</para>
+</legalnotice>
+<pubdate>16 December 2000</pubdate>
+<abstract>
+<para>Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</para>
+<para>Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</para>
+</abstract>
+<!--
+<revhistory>
+<revision>
+<revnumber>1.0</revnumber>
+<date>20 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.9</revnumber>
+<date>19 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.4</revnumber>
+<date>18 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+</revhistory>
+-->
+</bookinfo>
+
+<dedication><title>First Dedication</title>
+<para>Just a test. &ldquo;What about&mdash;this?&rdquo;</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+</dedication>
+
+<dedication>
+<para>Just a test dedication.</para>
+</dedication>
+
+<preface><title>Foreword</title>
+<?dbhtml filename="forward.htm"?>
+<para>This is a test paragraph.</para>
+</preface>
+
+<preface>
+<para>This is a test preface.</para>
+</preface>
+
+<part>
+<docinfo>
+<title>Part One Title</title>
+<legalnotice>
+<para>Foo! A legal notice in a part!</para>
+</legalnotice>
+</docinfo>
+<title>Part One Title</title>
+<partintro>
+<title>PartIntro Title</title>
+<para>Partintro content<footnote>
+<para>This is a footnote in a partintro.</para>
+</footnote>.</para>
+<sect1>
+<title>PartIntro Section</title>
+<para>PartIntros can actually have section content as well.</para>
+</sect1>
+</partintro>
+<chapter id="chapter">
+<title id="chaptertitle">Section <anchor id="stestfoo"/>Tests</title>
+
+<sect1><title>First Sect1</title>
+<para>Paragraph.</para>
+<figure id="testfig1"><title>Test Figure</title>
+<programlisting>This is a
+  ProgramListing
+</programlisting>
+</figure>
+</sect1>
+<sect1><title>Second Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Third Sect1</title>
+<para>Paragraph.</para>
+<figure id="testfig2"><title>Test Figure</title>
+<programlisting>This is a
+  ProgramListing
+</programlisting>
+</figure>
+</sect1>
+
+</chapter>
+</part>
+
+<chapter>
+  <docinfo><title>First Chapter</title><subtitle>Chapter Subtitle</subtitle>
+  </docinfo><title>First Chapter</title>
+<para>This is a test paragraph.</para>
+<figure id="testfig3"><title>Test Figure</title>
+<programlisting>This is a
+  ProgramListing
+</programlisting>
+</figure>
+</chapter>
+
+<chapter><title>Second Chapter</title>
+<para>This is a test paragraph.
+<indexterm>
+<primary>ap1</primary>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+<indexterm>
+<primary>cp2see</primary><see>cp2</see>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm></para>
+</chapter>
+
+<chapter><title>Third Chapter</title>
+<para>This is a test paragraph.</para>
+</chapter>
+
+<appendix><title>First Appendix</title>
+<para>This is just a test.</para>
+<figure id="testfig4"><title>Test Figure</title>
+<programlisting>This is a
+  ProgramListing
+</programlisting>
+</figure>
+</appendix>
+
+<appendix><title>Second Appendix</title>
+<para>This is just a test.
+<indexterm>
+<primary>ap1</primary>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm></para>
+</appendix>
+
+</book>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3249 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd">
+<book id="book">
+<bookinfo>
+<title>Book Title</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<corpauthor>Some Corporation</corpauthor>
+<legalnotice>
+<title>Legal Notice</title>
+<para>This is a test document. You can do what you will with it.</para>
+</legalnotice>
+<legalnotice>
+<para>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </para>
+</legalnotice>
+<copyright>
+<year>1998</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</bookinfo>
+<dedication>
+<para>This test book is dedicated to all the testers.  This is the first para
+of the dedication.</para>
+<para>This is the second para of the dedication.</para>
+<para>This is the third para of the dedication.</para>
+</dedication>
+<preface>
+<title>Preface Title</title>
+<para>Preface content.</para>
+<para>This is the second para of the preface.</para>
+<para>This is the third para of the preface.</para>
+</preface>
+<part>
+<docinfo>
+<title>Part One Title</title>
+<legalnotice>
+<para>Foo! A legal notice in a part!</para>
+</legalnotice>
+</docinfo>
+<title>Part One Title</title>
+<partintro>
+<title>PartIntro Title</title>
+<para>Partintro content<footnote>
+<para>This is a footnote in a partintro.</para>
+</footnote>.</para>
+<sect1>
+<title>PartIntro Section</title>
+<para>PartIntros can actually have section content as well.</para>
+</sect1>
+</partintro>
+<chapter id="chapter">
+<title id="chaptertitle">XRef Tests</title>
+<bridgehead renderas="sect3">Xrefs</bridgehead>
+<simplelist>
+<member><xref linkend="book"/></member>
+<member><xref linkend="part"/></member>
+<member><xref linkend="chapter"/></member>
+<member><xref linkend="appendix"/></member>
+<member><xref linkend="table"/></member>
+<member><xref linkend="figure"/></member>
+<member><xref linkend="example"/></member>
+<member><xref linkend="equation"/></member>
+<member><xref linkend="reference"/></member>
+<member><xref linkend="bib1"/></member>
+<member><xref linkend="gloss"/></member>
+<member><xref linkend="index"/></member>
+</simplelist>
+<para>This is the first reference to <firstterm linkend="xml">XML</firstterm>.
+This is the second reference to <glossterm linkend="xml">XML</glossterm>.
+These are references without <sgmltag class="attribute">linkend</sgmltag>
+attributes: <firstterm>XML</firstterm>, <glossterm>XML</glossterm>.</para>
+<bridgehead renderas="sect3">Links</bridgehead>
+<para>More <ulink url="http://www.jclark.com/dsssl/">DSSSL information</ulink>
+is available.</para>
+<para>There is <link linkend="part">a second part</link> in this book.</para>
+<para>This is the <link endterm="chaptertitle" linkend="chapter"></link>
+chapter.</para>
+</chapter>
+<chapter id="stchap">
+<docinfo>
+<title>Section Tests</title>
+<subtitle>Section Tests Subtitle</subtitle>
+</docinfo>
+<title>Section Tests</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<indexterm>
+<primary>ap1</primary>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm></para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect1 id="secttest1">
+<title>a sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<indexterm>
+<primary>ep1</primary>
+<secondary>ep1es1</secondary>
+<tertiary>ep1es1et1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ep1</primary>
+<secondary>ep1es2</secondary>
+</indexterm>
+<indexterm>
+<primary>ep2</primary>
+</indexterm>
+
+<indexterm>
+<primary>fp1</primary>
+<secondary>fp1fs1</secondary>
+</indexterm>
+<indexterm>
+<primary>fp1</primary>
+<secondary>fp1fs2</secondary>
+<tertiary>fp1fs2ft1</tertiary>
+</indexterm>
+<indexterm>
+<primary>fp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs1</secondary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+<tertiary>gp1gs2gt1</tertiary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+<tertiary>gp1gs2gt2</tertiary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs3</secondary>
+</indexterm>
+<indexterm>
+<primary>gp2</primary>
+</indexterm></para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<title>a sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<title>a sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<indexterm>
+<primary>hp1</primary>
+<secondary>hp1hs1</secondary>
+<tertiary>hp1hs1ht1</tertiary>
+</indexterm>
+<indexterm>
+<primary>hp1</primary>
+<secondary>hp1hs1</secondary>
+<tertiary>hp1hs1ht2</tertiary>
+</indexterm>
+<indexterm>
+<primary>hp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>ip1</primary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+<tertiary>ip1is1it1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+<tertiary>ip1is1it2</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is2</secondary>
+<tertiary>ip1is2it1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip2</primary>
+</indexterm></para>
+<sect4>
+<title>a sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<title>a sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1 id="secttest2">
+<sect1info>
+<title>another sect1 title</title>
+<subtitle>a sect1 subtitle</subtitle>
+</sect1info>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<indexterm>
+<primary>jp1</primary>
+</indexterm>
+<indexterm>
+<primary>jp1</primary>
+<secondary>jp1js1</secondary>
+<tertiary>jp1js1jt1</tertiary>
+</indexterm>
+<indexterm>
+<primary>jp1</primary>
+<secondary>jp1js1</secondary>
+<tertiary>jp1js1jt2</tertiary>
+</indexterm>
+<indexterm>
+<primary>jp2</primary>
+</indexterm></para>
+<sect2>
+<sect2info>
+<title>another sect2 title</title>
+<subtitle>a sect2 subtitle</subtitle>
+</sect2info>
+<title>another sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<sect3info>
+<title>another sect3 title</title>
+<subtitle>a sect3 subtitle</subtitle>
+</sect3info>
+<title>another sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<sect4info>
+<title>another sect4 title</title>
+<subtitle>a sect4 subtitle</subtitle>
+</sect4info>
+<title>another sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<sect5info>
+<title>another sect5 title</title>
+<subtitle>a sect5 subtitle</subtitle>
+</sect5info>
+<title>another sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1 id="secttest3">
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+<sect1 id="secttest4">
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+</chapter>
+<chapter>
+<title>Inline Tests</title>
+<simplesect>
+<title>Testing <quote>Quotes</quote> in a title</title>
+<para>Footnotes<footnote id="fn1">
+<para>Like this!</para>
+</footnote> are inlines.
+Sort of<footnote>
+<para>Well, the marks are, anyway!</para>
+</footnote>.
+Another footnote<footnoteref linkend="fn1"/>.</para>
+<simplelist columns="3" type="vert">
+<member><abbrev>Abbrev</abbrev></member>
+<member><acronym>Acronym</acronym></member>
+<member><action>Action</action></member>
+<member><application>Application</application></member>
+<member><citation>Citation</citation></member>
+<member><citerefentry>
+<refentrytitle>CiteRefEntry RefEntryTitle</refentrytitle>
+<manvolnum>n</manvolnum>
+</citerefentry></member>
+<member><citetitle>Citetitle</citetitle></member>
+<member><classname>ClassName</classname></member>
+<member><command>Command</command></member>
+<member><comment>Comment</comment> (Comment)</member>
+<member><computeroutput>ComputerOutput</computeroutput></member>
+<member><database>Database</database></member>
+<member><errorname>ErrorName</errorname></member>
+<member><errortype>ErrorType</errortype></member>
+<member><email>Email</email></member>
+<member><emphasis>Emphasis</emphasis></member>
+<member><envar>EnVar</envar></member>
+<member><errorcode>ErrorCode</errorcode></member>
+<member><filename>Filename</filename></member>
+<member><firstterm>Firstterm</firstterm></member>
+<member><foreignphrase>ForeignPhrase</foreignphrase></member>
+<member><function>Function</function></member>
+<member><guimenuitem>GUIMenuItem</guimenuitem></member>
+<member><guibutton>GUIButton</guibutton></member>
+<member><guibutton>GUI<accel>B</accel>utton (with Accel)</guibutton></member>
+<member><guiicon>GUIIcon</guiicon></member>
+<member><guilabel>GUILabel</guilabel></member>
+<member><guimenu>GUIMenu</guimenu></member>
+<member><guisubmenu>GUISubMenu</guisubmenu></member>
+<member><hardware>Hardware</hardware></member>
+<member><inlineequation>
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</inlineequation></member>
+<member><interface>Interface</interface></member>
+<member><interfacedefinition>InterfaceDefinition</interfacedefinition></member>
+<member><keycap>KeyCap</keycap></member>
+<member><keycode>KeyCode</keycode></member>
+<member><keycombo>
+<keycap>Key</keycap>
+<keycap>Combo</keycap>
+</keycombo></member>
+<member><keysym>KeySym</keysym></member>
+<member><literal>Literal</literal></member>
+<member><markup>Markup</markup></member>
+<member><medialabel>MediaLabel</medialabel></member>
+<member><mousebutton>MouseButton</mousebutton></member>
+<member><option>Option</option></member>
+<member><optional>Optional</optional></member>
+<member><parameter>Parameter</parameter></member>
+<member><phrase>Phrase</phrase></member>
+<member><prompt>Prompt</prompt></member>
+<member><property>Property</property></member>
+<member><quote>Quote</quote></member>
+<member><replaceable>Replaceable</replaceable></member>
+<member><returnvalue>ReturnValue</returnvalue></member>
+<member><sgmltag class="attribute">SGMLTag</sgmltag> (Attribute)</member>
+<member><sgmltag class="attvalue">SGMLTag</sgmltag> (AttValue)</member>
+<member><sgmltag class="element">SGMLTag</sgmltag> (Element)</member>
+<member><sgmltag class="endtag">SGMLTag</sgmltag> (EndTag)</member>
+<member><sgmltag class="genentity">SGMLTag</sgmltag> (GenEntity)</member>
+<member><sgmltag class="numcharref">SGMLTag</sgmltag> (NumCharRef)</member>
+<member><sgmltag class="paramentity">SGMLTag</sgmltag> (ParamEntity)</member>
+<member><sgmltag class="pi">SGMLTag</sgmltag> (PI)</member>
+<member><sgmltag class="sgmlcomment">SGMLTag</sgmltag> (SGMLComment)</member>
+<member><sgmltag class="starttag">SGMLTag</sgmltag> (StartTag)</member>
+<member><sgmltag>SGMLTag</sgmltag></member>
+<member><structfield>StructField</structfield></member>
+<member><structname>StructName</structname></member>
+<member><subscript>Subscript</subscript></member>
+<member><superscript>Superscript</superscript></member>
+<member><symbol>Symbol</symbol></member>
+<member><systemitem>SystemItem</systemitem></member>
+<member><token>Token</token></member>
+<member><trademark>Trademark</trademark></member>
+<member><type>Type</type></member>
+<member><userinput>UserInput</userinput></member>
+<member><wordasword>WordAsWord</wordasword></member>
+<member><productname>ProductName</productname></member>
+</simplelist>
+<para>And here are a couple of index terms, as another test (of 
+index terms, not inlines).
+<indexterm>
+<primary>aap1</primary>
+<see>ap1</see>
+</indexterm>
+<indexterm>
+<primary>bbp1</primary>
+<seealso>bp1</seealso>
+</indexterm></para>
+</simplesect>
+</chapter>
+<chapter>
+<title>Block Tests</title>
+<simplesect>
+<title>Formal Objects</title>
+<bridgehead renderas="sect4">Example</bridgehead>
+<example id="example">
+<title>An Example</title>
+<para>This is an example of a trivial example.</para>
+</example>
+<bridgehead renderas="sect4">Figure</bridgehead>
+<figure id="figure">
+<title>A Figure</title>
+<screen>This is an example of a trivial figure.</screen>
+</figure>
+<bridgehead renderas="sect4">Equation</bridgehead>
+<equation id="equation">
+<title>An Equation</title>
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</equation>
+<bridgehead renderas="sect4">Table</bridgehead>
+<table id="table">
+<title>A Table</title>
+<tgroup cols="2">
+<colspec colwidth="0.5in"/>
+<colspec colwidth="0.5in"/>
+<tbody>
+<row>
+<entry>1</entry>
+<entry>1</entry>
+</row>
+<row>
+<entry>2</entry>
+<entry>4</entry>
+</row>
+<row>
+<entry>3</entry>
+<entry>9</entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+</simplesect>
+<simplesect>
+<title>Informal Objects</title>
+<bridgehead renderas="sect4">InformalExample</bridgehead>
+<informalexample id="iexample">
+<para>This is an example of a trivial, informal example.</para>
+</informalexample>
+<bridgehead renderas="sect4">InformalEquation</bridgehead>
+<informalequation id="iequation">
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</informalequation>
+<bridgehead renderas="sect4">InformalTable</bridgehead>
+<informaltable id="itable">
+<tgroup cols="2">
+<tbody>
+<row>
+<entry>1</entry>
+<entry>1</entry>
+</row>
+<row>
+<entry>2</entry>
+<entry>8</entry>
+</row>
+<row>
+<entry>3</entry>
+<entry>27</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</simplesect>
+<simplesect>
+<title>Admonitions</title>
+<bridgehead renderas="sect4">Note</bridgehead>
+<note>
+<para>Consider yourself noted.</para>
+<para>Second para.</para>
+</note>
+<note>
+<simpara>Consider yourself noted, simply.</simpara>
+</note>
+<note>
+<title>NoteTitle</title>
+<para>Consider yourself noted.</para>
+<para>Second para, with a title.</para>
+</note>
+<note>
+<title>Att</title>
+<simpara>Consider yourself noted, simply.</simpara>
+<simpara>With a title</simpara>
+</note>
+<bridgehead renderas="sect4">Important</bridgehead>
+<important>
+<para>Consider yourself important.</para>
+</important>
+<bridgehead renderas="sect4">Tip</bridgehead>
+<tip>
+<para>Consider yourself tipped.</para>
+</tip>
+<bridgehead renderas="sect4">Warning</bridgehead>
+<warning>
+<para>Consider yourself warned.</para>
+</warning>
+<bridgehead renderas="sect4">Caution</bridgehead>
+<caution>
+<para>Consider yourself cautioned.</para>
+</caution>
+<bridgehead renderas="sect4">SimPara in Caution</bridgehead>
+<caution>
+<title>Simple Caution</title>
+<simpara>A simpler caution.</simpara>
+</caution>
+</simplesect>
+<simplesect>
+<title>Other Objects</title>
+<bridgehead renderas="sect4">Screen</bridgehead>
+<screen>This
+  is                  <lineannotation>With a line-annotation</lineannotation>
+    a 
+     screen
+     This
+    is                <lineannotation>With a line-annotation</lineannotation>
+  a 
+screen
+This
+  is                  <lineannotation>With a line-annotation</lineannotation>
+    a 
+     screen</screen>
+<bridgehead renderas="sect4">ProgramListing</bridgehead>
+<programlisting>This
+  is
+    a 
+programlisting</programlisting>
+<bridgehead renderas="sect4">Address</bridgehead>
+<address>Norman Walsh
+ArborText, Inc.
+<street>1000 Victors Way</street>
+<city>Ann Arbor</city>, <state>MI</state> <postcode>48108</postcode>
+<country>US</country>
+
+Voice: <phone>313.997.0200</phone>
+Fax: <fax>313.997.0201</fax>
+
+Email: <email>nwalsh at arbortext.com</email>
+WWW: <otheraddr role="homepage">http://www.arbortext.com/</otheraddr></address>
+<bridgehead renderas="sect4">BlockQuote</bridgehead>
+<blockquote>
+<para>The universe that we observe has precisely the properties we should 
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&mdash;Richard Dawkins</para>
+</blockquote>
+<bridgehead renderas="sect4">Procedure</bridgehead>
+<procedure>
+<step>
+<para>This is the first step</para>
+</step>
+<step>
+<para>This is the second step</para>
+<substeps>
+<step>
+<para>This is the first substep</para>
+</step>
+<step>
+<para>This is the second substep</para>
+</step>
+</substeps>
+</step>
+<step>
+<para>This is the third step</para>
+</step>
+</procedure>
+<bridgehead renderas="sect4">Procedure With Title</bridgehead>
+<procedure>
+<title>Same Procedure with a Title</title>
+<step>
+<para>This is the first step</para>
+</step>
+<step>
+<para>This is the second step</para>
+<substeps>
+<step>
+<para>This is the first substep</para>
+</step>
+<step>
+<para>This is the second substep</para>
+</step>
+</substeps>
+</step>
+<step>
+<para>This is the third step</para>
+</step>
+</procedure>
+<bridgehead renderas="sect4">SideBar</bridgehead>
+<sidebar>
+<title>What About Bob?</title>
+<para>This is a sidebar.</para>
+</sidebar>
+<bridgehead renderas="sect4">MsgSet</bridgehead>
+<para>It's not really clear how <sgmltag>MsgSet</sgmltag> should be presented.
+I expect that it's fairly application, if not document, specific.</para>
+<msgset>
+<msgentry>
+<msg>
+<msgmain>
+<msgtext>
+<para>Record failed CRC</para>
+</msgtext>
+</msgmain>
+<msgsub>
+<msgtext>
+<para>Record <replaceable>n</replaceable>
+                    in <replaceable>database</replaceable></para>
+</msgtext>
+</msgsub>
+<msgrel>
+<msgtext>
+<para>File read error on 
+                   <replaceable>database</replaceable></para>
+</msgtext>
+</msgrel>
+<msgrel>
+<msgtext>
+<para>Panic! Corrupt record!</para>
+</msgtext>
+</msgrel>
+</msg>
+<msginfo>
+<msglevel>severe</msglevel>
+<msgorig>server</msgorig>
+<msgaud>all</msgaud>
+</msginfo>
+<msgexplan>
+<para>        Indicates that some sort of error occured attempting to load
+        a record from the database.  Retry.  If failure persists,
+        contact the database administrator.
+        </para>
+</msgexplan>
+</msgentry>
+</msgset>
+<bridgehead renderas="sect4">LiteralLayout</bridgehead>
+<literallayout>This is a
+literal
+       layout</literallayout>
+<para><literallayout>This is a
+literal
+       layout
+  in a para</literallayout></para>
+</simplesect>
+</chapter>
+<chapter>
+<title>List Tests</title>
+<simplesect>
+<title>OrderedLists</title>
+<bridgehead renderas="sect4">Default Numeration</bridgehead>
+<orderedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<programlisting>this one starts with
+a program listing
+what happens?</programlisting>
+</listitem>
+<listitem>
+<synopsis>this one starts with
+a synopsis
+what happens?</synopsis>
+</listitem>
+<listitem>
+<para>para first</para>
+<synopsis>this one has
+a synopsis
+what happens?</synopsis>
+</listitem>
+<listitem>
+<para>Three</para>
+<screen>A
+Screen
+Here</screen>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Arabic Numeration</bridgehead>
+<orderedlist numeration="arabic">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Arabic Numeration (Long)</bridgehead>
+<orderedlist numeration="arabic">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+<listitem>
+<para>Five</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+<listitem>
+<para>Seven</para>
+</listitem>
+<listitem>
+<para>Eight</para>
+</listitem>
+<listitem>
+<para>Nine</para>
+</listitem>
+<listitem>
+<para>Ten</para>
+</listitem>
+<listitem>
+<para>Eleven</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">UpperAlpha Numeration</bridgehead>
+<orderedlist numeration="upperalpha">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">LowerAlpha Numeration</bridgehead>
+<orderedlist numeration="loweralpha">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">UpperRoman Numeration</bridgehead>
+<orderedlist numeration="upperroman">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">LowerRoman Numeration</bridgehead>
+<orderedlist numeration="lowerroman">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Continued</bridgehead>
+<para>First list:
+<orderedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist></para>
+<para>Second list:
+<orderedlist continuation="continues">
+<listitem>
+<para>Five</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+<listitem>
+<para>Seven</para>
+</listitem>
+<listitem>
+<para>Eight</para>
+</listitem>
+<listitem>
+<para>Nine</para>
+</listitem>
+<listitem>
+<para>Ten</para>
+</listitem>
+</orderedlist></para>
+</simplesect>
+<simplesect>
+<title>ItemizedLists</title>
+<bridgehead renderas="sect4">Default Presentation</bridgehead>
+<itemizedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<programlisting>One-point-five. This one starts with
+a program listing
+what happens?</programlisting>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">Block Elements in a List</bridgehead>
+<itemizedlist>
+<listitem>
+<para>One</para>
+<para>Another para.</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">Alternate Mark and OverRide</bridgehead>
+<itemizedlist mark="box">
+<listitem>
+<para>TeX and LaTeX</para>
+</listitem>
+<listitem override="bullet">
+<para>Troff</para>
+</listitem>
+<listitem>
+<para>Lout</para>
+</listitem>
+<listitem override="none">
+<para>Test</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">No mark Presentation</bridgehead>
+<itemizedlist mark="none">
+<listitem override="none">
+<para>One</para>
+</listitem>
+<listitem override="bullet">
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+</simplesect>
+<simplesect>
+<title>VariableLists</title>
+<variablelist>
+<varlistentry>
+<term>Term1</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term2</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term3</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<itemizedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term4</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<variablelist>
+<varlistentry>
+<term>Another List</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>ProgramListing</term>
+<listitem>
+<programlisting>A ProgramListing
+Is the First Element
+of this VarListEntry</programlisting>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</simplesect>
+<simplesect>
+<title>SimpleLists</title>
+<bridgehead renderas="sect4">Inline</bridgehead>
+<para>An inline simple list:
+<simplelist type="inline">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist></para>
+<bridgehead renderas="sect4">Horiz</bridgehead>
+<simplelist columns="3" type="horiz">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist>
+<bridgehead renderas="sect4">Vert</bridgehead>
+<simplelist columns="3" type="vert">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist>
+</simplesect>
+<simplesect>
+<title>More Complex List Item Content</title>
+<itemizedlist>
+<listitem>
+<para>One</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Two</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<simpara>Three</simpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Four</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<formalpara>
+<title>Formal Element</title>
+<para>Five</para>
+</formalpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+</itemizedlist>
+<orderedlist>
+<listitem>
+<para>One</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Two</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<simpara>Three</simpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Four</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<formalpara>
+<title>Formal Element</title>
+<para>Five</para>
+</formalpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+</orderedlist>
+</simplesect>
+<simplesect>
+<title>Segmented List</title>
+<segmentedlist>
+<title>State Birds</title>
+<segtitle>State</segtitle>
+<segtitle>Bird</segtitle>
+<seglistitem>
+<seg>Alabama</seg>
+<seg>Yellowhammer</seg>
+</seglistitem>
+<seglistitem>
+<seg>Alaska</seg>
+<seg>Willow Ptarmigan</seg>
+</seglistitem>
+<seglistitem>
+<seg>Arizona</seg>
+<seg>Cactus Wren</seg>
+</seglistitem>
+<seglistitem>
+<seg>Arkansas</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>California</seg>
+<seg>California Valley Quail</seg>
+</seglistitem>
+<seglistitem>
+<seg>Colorado</seg>
+<seg>Lark Bunting</seg>
+</seglistitem>
+<seglistitem>
+<seg>Connecticut</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Delaware</seg>
+<seg>Blue Hen Chicken</seg>
+</seglistitem>
+<seglistitem>
+<seg>Florida</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Georgia</seg>
+<seg>Brown Thrasher</seg>
+</seglistitem>
+<seglistitem>
+<seg>Hawaii</seg>
+<seg>Nene</seg>
+</seglistitem>
+<seglistitem>
+<seg>Idaho</seg>
+<seg>Mountain Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Illinois</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Indiana</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Iowa</seg>
+<seg>Eastern Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>Kansas</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Kentucky</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Louisiana</seg>
+<seg>Eastern Brown Pelican</seg>
+</seglistitem>
+<seglistitem>
+<seg>Maine</seg>
+<seg>Chickadee</seg>
+</seglistitem>
+<seglistitem>
+<seg>Maryland</seg>
+<seg>Baltimore Oriole</seg>
+</seglistitem>
+<seglistitem>
+<seg>Massachusetts</seg>
+<seg>Chickadee</seg>
+</seglistitem>
+<seglistitem>
+<seg>Michigan</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Minnesota</seg>
+<seg>Common Loon</seg>
+</seglistitem>
+<seglistitem>
+<seg>Mississippi</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Missouri</seg>
+<seg>Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Montana</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Nebraska</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Nevada</seg>
+<seg>Mountain Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Hampshire</seg>
+<seg>Purple Finch</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Jersey</seg>
+<seg>Eastern Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Mexico</seg>
+<seg>Roadrunner</seg>
+</seglistitem>
+<seglistitem>
+<seg>New York</seg>
+<seg>Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>North Carolina</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>North Dakota</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Ohio</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Oklahoma</seg>
+<seg>Scissor-tailed Flycatcher</seg>
+</seglistitem>
+<seglistitem>
+<seg>Oregon</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Pennsylvania</seg>
+<seg>Ruffed Grouse</seg>
+</seglistitem>
+<seglistitem>
+<seg>Rhode Island</seg>
+<seg>Rhode Island Red</seg>
+</seglistitem>
+<seglistitem>
+<seg>South Carolina</seg>
+<seg>Great Carolina Wren</seg>
+</seglistitem>
+<seglistitem>
+<seg>South Dakota</seg>
+<seg>Ring-necked Pheasant</seg>
+</seglistitem>
+<seglistitem>
+<seg>Tennessee</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Texas</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Utah</seg>
+<seg>American Seagull</seg>
+</seglistitem>
+<seglistitem>
+<seg>Vermont</seg>
+<seg>Hermit Thrush</seg>
+</seglistitem>
+<seglistitem>
+<seg>Virginia</seg>
+<seg>Cardinal </seg>
+</seglistitem>
+<seglistitem>
+<seg>Washington</seg>
+<seg>Willow Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>West Virginia</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Wisconsin</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Wyoming</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+</segmentedlist>
+</simplesect>
+</chapter>
+<chapter>
+<title>Table Tests</title>
+<bridgehead renderas="sect4">Alternate Alignment on Entry</bridgehead>
+<informaltable frame="all">
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left">left</entry>
+<entry align="center">center</entry>
+<entry>center</entry>
+</row>
+<row>
+<entry align="center">center</entry>
+<entry align="right">right</entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<informaltable frame="topbot">
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left">left</entry>
+<entry align="center">center</entry>
+<entry>center</entry>
+</row>
+<row>
+<entry align="center">center</entry>
+<entry align="right">right</entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<informaltable>
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left"><emphasis>left emph</emphasis></entry>
+<entry align="center"><emphasis role="bold">center emph/bold</emphasis></entry>
+<entry><literal>center literal</literal></entry>
+</row>
+<row>
+<entry align="center"><filename>center filename</filename></entry>
+<entry align="right"><command>right command</command></entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Absolute Widths</bridgehead>
+<informaltable>
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="1in"/>
+<colspec colnum="2" colname="c2" colwidth="1in"/>
+<colspec colnum="3" colname="c3" colwidth="1in" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Relative Widths</bridgehead>
+<informaltable>
+<tgroup cols="2">
+<colspec colnum="1" colname="c1" colwidth="3*"/>
+<colspec colnum="2" colname="c2" colwidth="2*"/>
+<tbody>
+<row>
+<entry align="left"><para>left</para></entry>
+<entry align="center"><para>center</para></entry>
+</row>
+<row>
+<entry align="center"><para>center</para></entry>
+<entry align="right"><para>right</para></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Complex</bridgehead>
+<informaltable pgwide="1">
+<tgroup cols="6">
+<colspec colnum="2" colname="c2" align="right"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<colspec colnum="5" colname="c5"/>
+<colspec colname="c6" align="left"/>
+<spanspec namest="c2" nameend="c3" spanname="span"/>
+<tbody>
+<row>
+<entry>A1</entry>
+<entry>A2</entry>
+<entry>A3</entry>
+<entry morerows="1">A4</entry>
+<entry>A5</entry>
+<entry>A6</entry>
+</row>
+<row>
+<entry>B1</entry>
+<entry colsep="1" rowsep="1">B2</entry>
+<entry rowsep="1">B3</entry>
+<entry>B5</entry>
+<entry>B6</entry>
+</row>
+<row>
+<entry>C1</entry>
+<entry colsep="1">C2</entry>
+<entry>C3</entry>
+<entry>C4</entry>
+<entry namest="c5" nameend="c6" morerows="2" valign="middle">C5</entry>
+</row>
+<row>
+<entry namest="c2">D2</entry>
+<entry>D3</entry>
+<entry>D4</entry>
+</row>
+<row>
+<entry>E1</entry>
+<entry spanname="span" align="left">E2</entry>
+<entry>E4</entry>
+</row>
+<row>
+<entry>F1</entry>
+<entry>F2</entry>
+<entry>F3</entry>
+<entry>F4</entry>
+<entry>F5</entry>
+<entry>F6</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">With Footnotes</bridgehead>
+<informaltable>
+<tgroup cols="2">
+<tbody>
+<row>
+<entry>foo<footnote id="fnrex1a">
+<para>A meaningless
+word</para>
+</footnote></entry>
+<entry>3<footnote id="fnrex1b">
+<para>A meaningless
+number</para>
+</footnote></entry>
+</row>
+<row>
+<entry>bar<footnoteref linkend="fnrex1a"/></entry>
+<entry>5<footnoteref linkend="fnrex1b"/></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">A Big One</bridgehead>
+<informaltable>
+<tgroup cols="15">
+<thead>
+<row>
+<entry>H1</entry>
+<entry>H2</entry>
+<entry>H3</entry>
+<entry>H4</entry>
+<entry>H5</entry>
+<entry>H6</entry>
+<entry>H7</entry>
+<entry>H8</entry>
+<entry>H9</entry>
+<entry>H10</entry>
+<entry>H11</entry>
+<entry>H12</entry>
+<entry>H13</entry>
+<entry>H14</entry>
+<entry>H15</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</chapter>
+<chapter>
+<title>Index Term Tests</title>
+<para>Test data.</para>
+<indexterm id="idx1">
+<primary>oft-repeated</primary>
+</indexterm>
+<indexterm id="idx2">
+<primary>chap-level</primary>
+</indexterm>
+<sect1>
+<title>Index Term Sect 1</title>
+<para>Test data.</para>
+<indexterm id="idx3">
+<primary>!</primary>
+</indexterm>
+<indexterm id="fred">
+<primary>oft-repeated</primary>
+<secondary>with id</secondary>
+</indexterm>
+<indexterm significance="preferred" id="idx5">
+<primary>sect1-level</primary>
+</indexterm>
+<indexterm id="idx6">
+<primary>sect1-level</primary>
+</indexterm>
+<indexterm id="idx7">
+<primary>sect1-level</primary>
+<secondary>sec</secondary>
+</indexterm>
+<indexterm id="idx8">
+<primary>sect1-other</primary>
+<secondary>sec</secondary>
+</indexterm>
+<indexterm id="idx9">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+<indexterm scope="local">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+<indexterm id="idx11">
+<primary>sect1-level</primary>
+</indexterm>
+<sect2>
+<title>Index Term Sect 2</title>
+<para>Test data.</para>
+<indexterm id="idx12">
+<primary>[</primary>
+</indexterm>
+<indexterm id="idx13">
+<primary>oft-repeated</primary>
+</indexterm>
+<indexterm id="idx14">
+<primary sortas="abracadabra">sect2-level</primary>
+</indexterm>
+<indexterm id="idx15">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+</sect2>
+<sect2>
+<title>Index Term Sect 3</title>
+<para>foo</para>
+</sect2>
+</sect1>
+</chapter>
+</part>
+<part id="part">
+<title>Part Two Title</title>
+<chapter>
+<title>CmdSynopsis Tests</title>
+<bridgehead renderas="sect4">Very Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cd</command>
+<arg choice="req"><replaceable>directory</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cal</command>
+<arg>-j</arg>
+<arg>-y</arg>
+<arg>month <arg>year</arg></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Another Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>chgrp</command>
+<arg>-R 
+    <group>
+<arg>-H</arg>
+<arg>-L</arg>
+<arg>-P</arg>
+</group>
+  </arg>
+<arg>-f</arg>
+<arg choice="plain"><replaceable>group</replaceable></arg>
+<arg choice="plain" rep="repeat"><replaceable>file</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Slightly Complex CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>emacs</command>
+<arg>-t <replaceable>file</replaceable></arg>
+<arg>-q</arg>
+<arg>-u <replaceable>user</replaceable></arg>
+<arg>+<replaceable>number</replaceable></arg>
+<arg rep="repeat">-f <replaceable>function</replaceable></arg>
+<arg rep="repeat">-l <replaceable>file</replaceable></arg>
+<arg choice="plain" rep="repeat"><replaceable>file</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Quite Complex CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cccp</command>
+<arg>-$</arg>
+<arg>-C</arg>
+<arg rep="repeat">-D<replaceable>name</replaceable><arg>=<replaceable>definition</replaceable></arg></arg>
+<arg>-dD</arg>
+<arg>-dM</arg>
+<arg rep="repeat">-I <replaceable>directory</replaceable></arg>
+<arg>-H</arg>
+<arg>-I-</arg>
+<sbr/>
+<arg rep="repeat">-imacros <replaceable>file</replaceable></arg>
+<arg rep="repeat">-include <replaceable>file</replaceable></arg>
+<group>
+<arg>-lang-c</arg>
+<arg>-lang-c++</arg>
+<arg>-lang-objc</arg>
+</group>
+<arg>-lint</arg>
+<sbr/>
+<group>
+<arg>-M</arg>
+<arg>-MD</arg>
+<arg>-MM</arg>
+<arg>-MMD</arg>
+</group>
+<arg>-nostdinc</arg>
+<arg>-P</arg>
+<arg>-pedantic</arg>
+<arg>-pedantic-errors</arg>
+<arg>-trigraphs</arg>
+<arg>-U<replaceable>name</replaceable></arg>
+<sbr/>
+<arg>-undef</arg>
+<arg>-Wtrigraphs</arg>
+<arg>-Wcomment</arg>
+<arg>-Wall</arg>
+<arg>-Wtraditional</arg>
+<group choice="req">
+<arg><replaceable>infile</replaceable></arg>
+<arg>-</arg>
+</group>
+<group choice="req">
+<arg><replaceable>outfile</replaceable></arg>
+<arg>-</arg>
+</group>
+</cmdsynopsis>
+</chapter>
+<chapter>
+<title>FuncSynopsis Tests</title>
+<bridgehead renderas="sect4">Two Simple Parameters</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>int <function>max</function></funcdef>
+<paramdef>int <parameter>int1</parameter></paramdef>
+<paramdef>int <parameter>int2</parameter></paramdef>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Variable Arguments</bridgehead>
+<funcsynopsis>
+<funcsynopsisinfo>#include &lt;varargs.h&gt;</funcsynopsisinfo>
+<funcprototype>
+<funcdef>int <function>max</function></funcdef>
+<varargs/>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Void</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>int <function>rand</function></funcdef>
+<void/>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Function Pointer Arguments</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>void <function>qsort</function></funcdef>
+<paramdef>void *<parameter>dataptr</parameter>[]</paramdef>
+<paramdef>int <parameter>left</parameter></paramdef>
+<paramdef>int <parameter>right</parameter></paramdef>
+<paramdef>int <parameter>(* comp)</parameter>
+      <funcparams>void *, void *</funcparams></paramdef>
+</funcprototype>
+</funcsynopsis>
+</chapter>
+<chapter>
+<title>Callout Tests</title>
+<bridgehead renderas="sect4">CallOut (using AREASPEC)</bridgehead>
+<programlistingco>
+<areaspec>
+<area coords="1" id="prologue"/>
+<area coords="4" id="skipeof"/>
+<areaset coords="" id="xreq">
+<area coords="9" id="require1"/>
+<area coords="10" id="require2"/>
+</areaset>
+<area coords="11 12" id="use"/>
+<area coords="27" id="funccall"/>
+</areaspec>
+<programlisting>@rem = '--*-Perl-*--
+ at echo off
+perl.exe %_batchname %$
+goto endofperl
+ at rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+ at DIRS = ("/home/nwalsh/Mail");
+while (@DIRS) {
+    $dir = shift @DIRS;
+    opendir (DIR, $dir);
+    while ($fname = readdir(DIR)) {
+        $file = "$dir/$fname";
+        next if ! -d $file;
+        next if $fname =~ /^\.\.?$/;
+
+        print "$file\n";
+        push (@DIRS, $file);
+        &amp;compress ($file);
+    }
+}
+
+exit;</programlisting>
+<calloutlist>
+<callout arearefs="prologue">
+<para>The prologue handles embedding a Perl script in a DOS batch file.</para>
+</callout>
+<callout arearefs="skipeof">
+<para>The <literal>goto</literal> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</para>
+</callout>
+<callout arearefs="require1">
+<para>The <literal>require</literal> statement sources in external program
+fragments.</para>
+</callout>
+<callout arearefs="use">
+<para>The <literal>use</literal> statement is similar, but has additional
+utility.  It is a Perl5 function.  (Note that this callout area specifies
+both a line and a column.)</para>
+</callout>
+<callout arearefs="funccall">
+<para>This is a user subroutine call.</para>
+</callout>
+</calloutlist>
+</programlistingco>
+<bridgehead renderas="sect4">CallOut (using CO)</bridgehead>
+<programlisting>this is a line
+this is another line
+there's a <co id="callout1"/>callout in here.
+and there's another on the
+next line
+right here:<co id="callout2"/></programlisting>
+<calloutlist>
+<callout arearefs="callout1">
+<para>First callout.</para>
+<para>Second para in first callout.</para>
+</callout>
+<callout arearefs="callout2">
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Second callout.</para>
+<para>Third para in second callout.</para>
+</callout>
+<callout arearefs="callout1 callout2">
+<para>This paragraph describes <emphasis>both</emphasis> callouts.</para>
+</callout>
+</calloutlist>
+</chapter>
+</part>
+<part>
+<title>A Reference Part</title>
+<reference id="reference">
+<title>Reference</title>
+<refentry>
+<refmeta>
+<refentrytitle>RefEntryTitle</refentrytitle>
+</refmeta>
+<refnamediv>
+<refdescriptor>RefDescriptor</refdescriptor>
+<refname>RefName1</refname>
+<refname>RefName2</refname>
+<refpurpose>Yes, there must be a purpose!</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>  A
+   Synopsis
+    Goes
+   Here</synopsis>
+</refsynopsisdiv>
+<refsect1>
+<title>A RefSect1</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<refsect2>
+<title>A RefSect2</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<refsect3>
+<title>A RefSect3</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<footnote>
+<para>This is a footnote in a refentry.</para>
+</footnote>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</refsect3>
+</refsect2>
+</refsect1>
+</refentry>
+<refentry>
+<refnamediv>
+<refname><function>Chop</function></refname>
+<refpurpose>strip trailing whitespace</refpurpose>
+</refnamediv>
+<refsect1>
+<title>Description</title>
+<para>     Returns the argument string without trailing whitespace.
+     <example>
+<title>chop() example</title>
+<programlisting>$trimmed = Chop($line);</programlisting>
+</example>
+    </para>
+</refsect1>
+</refentry>
+</reference>
+</part>
+<appendix id="appendix">
+<title>A Very Short Appendix</title>
+<para>Blah.</para>
+</appendix>
+<appendix>
+<title>A Very Long Appendix</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<sect1>
+<title>a sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<title>a sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<title>a sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<title>a sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<title>a sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1>
+<sect1info>
+<title>another sect1 title</title>
+<subtitle>a sect1 subtitle</subtitle>
+</sect1info>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<sect2info>
+<title>another sect2 title</title>
+<subtitle>a sect2 subtitle</subtitle>
+</sect2info>
+<title>another sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<sect3info>
+<title>another sect3 title</title>
+<subtitle>a sect3 subtitle</subtitle>
+</sect3info>
+<title>another sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<sect4info>
+<title>another sect4 title</title>
+<subtitle>a sect4 subtitle</subtitle>
+</sect4info>
+<title>another sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<sect5info>
+<title>another sect5 title</title>
+<subtitle>a sect5 subtitle</subtitle>
+</sect5info>
+<title>another sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+<sect1>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+</appendix>
+<bibliography id="bib1">
+<title>A Test Bibliography</title>
+<para>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</para>
+<bibliodiv>
+<title>Books</title>
+<biblioentry>
+<abbrev>AhoSethiUllman96</abbrev>
+<authorgroup>
+<author>
+<firstname>Alfred V.</firstname>
+<surname>Aho</surname>
+</author>
+<author>
+<firstname>Ravi</firstname>
+<surname>Sethi</surname>
+</author>
+<author>
+<firstname>Jeffrey D.</firstname>
+<surname>Ullman</surname>
+</author>
+</authorgroup>
+<title>Compilers, Principles, Techniques, and Tools</title>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+<copyright>
+<year>1996</year>
+<holder>Bell Telephone Laboratories, Inc.</holder>
+</copyright>
+<isbn>0-201-10088-6</isbn>
+<editor>
+<firstname>James T.</firstname>
+<surname>DeWolf</surname>
+</editor>
+<seriesinfo>
+<title>Computer Science</title>
+<editor>
+<firstname>Michael A.</firstname>
+<surname>Harrison</surname>
+</editor>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+</seriesinfo>
+</biblioentry>
+</bibliodiv>
+<bibliodiv>
+<title>Periodicals</title>
+<biblioentry id="walsh97">
+<abbrev>Walsh97</abbrev>
+<biblioset relation="article">
+<title>A Guide to XML</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<pubdate>1997</pubdate>
+<copyright>
+<year>1997</year>
+<holder>ArborText, Inc.</holder>
+</copyright>
+<pagenums>97-108</pagenums>
+</biblioset>
+<biblioset relation="journal">
+<title>XML: Principles, Tools, and Techniques</title>
+<publisher>
+<publishername>O'Reilly &amp; Associates, Inc.</publishername>
+</publisher>
+<issn>1085-2301</issn>
+<editor>
+<firstname>Dan</firstname>
+<surname>Connolly</surname>
+</editor>
+</biblioset>
+</biblioentry>
+<bibliomixed id="walsh96">  <bibliomset relation="article">    <surname>Walsh</surname>, <firstname>Norman</firstname>.
+    <title role="article">Introduction to Cascading Style Sheets</title>.
+  </bibliomset>
+  <bibliomset relation="journal">    <title>The World Wide Web Journal</title>.
+    <volumenum>2</volumenum>(<issuenum>1</issuenum>).
+    <publishername>O'Reilly &amp; Associates, Inc.</publishername> and
+    <corpname>The World Wide Web Consortium</corpname>.
+    <pubdate>Winter, 1996</pubdate></bibliomset>.</bibliomixed>
+<biblioentry>
+<abbrev>Abbrev</abbrev>
+<title>A Really Full BiblioEntry</title>
+<subtitle>Subtitle</subtitle>
+<abstract>
+<para>Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. </para>
+</abstract>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+<artpagenums>ArtPageNums</artpagenums>
+<author>
+<firstname>AuthorFirstname</firstname>
+<surname>AuthorSurname</surname>
+</author>
+<authorblurb>
+<para>AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </para>
+</authorblurb>
+<authorinitials>AuthorInitials</authorinitials>
+<collab>
+<collabname>The names of some collaborators</collabname>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+</collab>
+<confgroup>
+<confdates>confdates</confdates>
+<conftitle>conftitle</conftitle>
+<confnum>confnum</confnum>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<confsponsor>confsponsor</confsponsor>
+</confgroup>
+<contractnum>ContractNum</contractnum>
+<contractsponsor>ContractSponsor</contractsponsor>
+<contrib>Contrib</contrib>
+<copyright>
+<year>1998</year>
+<holder>Copyright holder</holder>
+</copyright>
+<corpname>CorpName</corpname>
+<date>Date</date>
+<edition>Edition</edition>
+<editor>
+<firstname>EditorFirstName</firstname>
+<surname>EditorSurname</surname>
+</editor>
+<firstname>FirstName</firstname>
+<honorific>Honorific</honorific>
+<isbn>ISBN</isbn>
+<issn>ISSN</issn>
+<invpartnumber>InvPartNumber</invpartnumber>
+<issuenum>IssueNum</issuenum>
+<lineage>Lineage</lineage>
+<orgname>OrgName</orgname>
+<othercredit>
+<firstname>OCFirstName</firstname>
+<surname>OCSurname</surname>
+</othercredit>
+<othername>OtherName</othername>
+<pagenums>PageNums</pagenums>
+<printhistory>
+<para>PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</para>
+</printhistory>
+<productname>ProductName</productname>
+<productnumber>ProductNumber</productnumber>
+<pubdate>PubDate</pubdate>
+<publisher>
+<publishername>PubPublisherName</publishername>
+<address><street>Any Street</street>
+<city>Anywhere</city>, <state>XX</state> <postcode>99999</postcode>
+<country>USA</country></address>
+</publisher>
+<publishername>PublisherName</publishername>
+<pubsnumber>PubsNumber</pubsnumber>
+<releaseinfo>ReleaseInfo</releaseinfo>
+<revhistory>
+<revision>
+<revnumber>1.0</revnumber>
+<date>20 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.9</revnumber>
+<date>19 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.4</revnumber>
+<date>18 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+</revhistory>
+<seriesinfo>
+<title>SeriesInfo Title</title>
+<editor>
+<firstname>SeriesInfo Editor Firstname</firstname>
+<surname>SeriesInfo Editor Surname</surname>
+</editor>
+</seriesinfo>
+<seriesvolnums>SeriesVolNums</seriesvolnums>
+<surname>Surname</surname>
+<titleabbrev>TitleAbbrev</titleabbrev>
+<volumenum>VolumeNum</volumenum>
+</biblioentry>
+</bibliodiv>
+</bibliography>
+<glossary id="gloss">
+<title>Example Glossary</title>
+<para>This is not a real glossary, it's just an example.</para>
+<glossdiv>
+<title>E</title>
+<glossentry id="xml">
+<glossterm>Extensible Markup Language</glossterm>
+<acronym>XML</acronym>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="sgml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+<glossdiv>
+<title>S</title>
+<glossentry>
+<glossterm>SGML</glossterm>
+<glosssee otherterm="sgml"/>
+</glossentry>
+<glossentry id="sgml">
+<glossterm>Standard Generalized
+  Markup Language</glossterm>
+<acronym>SGML</acronym>
+<abbrev>ISO 8879:1986</abbrev>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="xml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+</glossary>
+<index id="index">
+<para>This is a test index.</para>
+<formalpara>
+<title>a formal para</title>
+<para>this is a formal paragraph.</para>
+</formalpara>
+<indexentry>
+<primaryie>Primary</primaryie>
+<secondaryie>Secondary 1</secondaryie>
+<tertiaryie>Tertiary 11</tertiaryie>
+<tertiaryie>Tertiary 12</tertiaryie>
+<secondaryie>Secondary 2</secondaryie>
+<tertiaryie>Tertiary 21</tertiaryie>
+</indexentry>
+<indexentry id="prim1">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry id="prim2">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary1</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary2</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<seeie linkend="prim2">see ie</seeie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+<seealsoie linkends="prim2 prim1">seealso ie</seealsoie>
+</indexentry>
+</index>
+<index><title>An Index with a Title</title>
+<indexdiv>
+<title>Symbols</title>
+<indexentry>
+<primaryie>!,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </primaryie>
+</indexentry>
+<indexentry>
+<primaryie>[,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>A</title>
+<indexentry>
+<primaryie>sect2-level,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>C</title>
+<indexentry>
+<primaryie>chap-level,
+    <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>
+  </primaryie>
+<secondaryie>sec
+  </secondaryie>
+<tertiaryie>tert,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </tertiaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>O</title>
+<indexentry>
+<primaryie>oft-repeated,
+    <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </primaryie>
+<secondaryie>with id,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </secondaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>S</title>
+<indexentry>
+<primaryie>sect1-level,
+    <ulink url="c3.htm#aen10" role="aen10"><emphasis>Index Term Sect 1</emphasis></ulink>
+  </primaryie>
+<secondaryie>sec,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>sect1-other
+  </primaryie>
+<secondaryie>sec,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </secondaryie>
+</indexentry>
+</indexdiv>
+</index>
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/book3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,391 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "../dtd/4.1.2/docbookx.dtd">
+<book id="book">
+<bookinfo>
+<title>Book Title</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<corpauthor>Some Corporation</corpauthor>
+<legalnotice>
+<title>Legal Notice</title>
+<para>This is a test document. You can do what you will with it.</para>
+</legalnotice>
+<legalnotice>
+<para>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </para>
+</legalnotice>
+<copyright>
+<year>1998</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</bookinfo>
+<bibliography id="bib1">
+<title>A Test Bibliography</title>
+<para>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</para>
+<bibliodiv>
+<title>Books</title>
+<biblioentry>
+<abbrev>AhoSethiUllman96</abbrev>
+<authorgroup>
+<author>
+<firstname>Alfred V.</firstname>
+<surname>Aho</surname>
+</author>
+<author>
+<firstname>Ravi</firstname>
+<surname>Sethi</surname>
+</author>
+<author>
+<firstname>Jeffrey D.</firstname>
+<surname>Ullman</surname>
+</author>
+</authorgroup>
+<title>Compilers, Principles, Techniques, and Tools</title>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+<copyright>
+<year>1996</year>
+<holder>Bell Telephone Laboratories, Inc.</holder>
+</copyright>
+<isbn>0-201-10088-6</isbn>
+<editor>
+<firstname>James T.</firstname>
+<surname>DeWolf</surname>
+</editor>
+</biblioentry>
+</bibliodiv>
+<bibliodiv>
+<title>Periodicals</title>
+<biblioentry id="walsh97">
+<abbrev>Walsh97</abbrev>
+<biblioset relation="article">
+<title>A Guide to XML</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<pubdate>1997</pubdate>
+<copyright>
+<year>1997</year>
+<holder>ArborText, Inc.</holder>
+</copyright>
+<pagenums>97-108</pagenums>
+</biblioset>
+<biblioset relation="journal">
+<title>XML: Principles, Tools, and Techniques</title>
+<publisher>
+<publishername>O'Reilly &amp; Associates, Inc.</publishername>
+</publisher>
+<issn>1085-2301</issn>
+<editor>
+<firstname>Dan</firstname>
+<surname>Connolly</surname>
+</editor>
+</biblioset>
+</biblioentry>
+<bibliomixed id="walsh96">  <bibliomset relation="article">    <surname>Walsh</surname>, <firstname>Norman</firstname>.
+    <title role="article">Introduction to Cascading Style Sheets</title>.
+  </bibliomset>
+  <bibliomset relation="journal">    <title>The World Wide Web Journal</title>.
+    <volumenum>2</volumenum>(<issuenum>1</issuenum>).
+    <publishername>O'Reilly &amp; Associates, Inc.</publishername> and
+    <corpname>The World Wide Web Consortium</corpname>.
+    <pubdate>Winter, 1996</pubdate></bibliomset>.</bibliomixed>
+<biblioentry>
+<abbrev>Abbrev</abbrev>
+<title>A Really Full BiblioEntry</title>
+<subtitle>Subtitle</subtitle>
+<abstract>
+<para>Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. </para>
+</abstract>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+<artpagenums>ArtPageNums</artpagenums>
+<author>
+<firstname>AuthorFirstname</firstname>
+<surname>AuthorSurname</surname>
+</author>
+<authorblurb>
+<para>AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </para>
+</authorblurb>
+<authorinitials>AuthorInitials</authorinitials>
+<collab>
+<collabname>The names of some collaborators</collabname>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+</collab>
+<confgroup>
+<confdates>confdates</confdates>
+<conftitle>conftitle</conftitle>
+<confnum>confnum</confnum>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<confsponsor>confsponsor</confsponsor>
+</confgroup>
+<contractnum>ContractNum</contractnum>
+<contractsponsor>ContractSponsor</contractsponsor>
+<contrib>Contrib</contrib>
+<copyright>
+<year>1998</year>
+<holder>Copyright holder</holder>
+</copyright>
+<corpname>CorpName</corpname>
+<date>Date</date>
+<edition>Edition</edition>
+<editor>
+<firstname>EditorFirstName</firstname>
+<surname>EditorSurname</surname>
+</editor>
+<firstname>FirstName</firstname>
+<honorific>Honorific</honorific>
+<isbn>ISBN</isbn>
+<issn>ISSN</issn>
+<invpartnumber>InvPartNumber</invpartnumber>
+<issuenum>IssueNum</issuenum>
+<lineage>Lineage</lineage>
+<orgname>OrgName</orgname>
+<othercredit>
+<firstname>OCFirstName</firstname>
+<surname>OCSurname</surname>
+</othercredit>
+<othername>OtherName</othername>
+<pagenums>PageNums</pagenums>
+<printhistory>
+<para>PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</para>
+</printhistory>
+<productname>ProductName</productname>
+<productnumber>ProductNumber</productnumber>
+<pubdate>PubDate</pubdate>
+<publisher>
+<publishername>PubPublisherName</publishername>
+<address><street>Any Street</street>
+<city>Anywhere</city>, <state>XX</state> <postcode>99999</postcode>
+<country>USA</country></address>
+</publisher>
+<publishername>PublisherName</publishername>
+<pubsnumber>PubsNumber</pubsnumber>
+<releaseinfo>ReleaseInfo</releaseinfo>
+<revhistory>
+<revision>
+<revnumber>1.0</revnumber>
+<date>20 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.9</revnumber>
+<date>19 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.4</revnumber>
+<date>18 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+</revhistory>
+<seriesvolnums>SeriesVolNums</seriesvolnums>
+<surname>Surname</surname>
+<titleabbrev>TitleAbbrev</titleabbrev>
+<volumenum>VolumeNum</volumenum>
+</biblioentry>
+</bibliodiv>
+</bibliography>
+<glossary id="gloss">
+<title>Example Glossary</title>
+<para>This is not a real glossary, it's just an example.</para>
+<glossdiv>
+<title>E</title>
+<glossentry id="xml">
+<glossterm>Extensible Markup Language</glossterm>
+<acronym>XML</acronym>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="sgml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+<glossdiv>
+<title>S</title>
+<glossentry>
+<glossterm>SGML</glossterm>
+<glosssee otherterm="sgml"/>
+</glossentry>
+<glossentry id="sgml">
+<glossterm>Standard Generalized
+  Markup Language</glossterm>
+<acronym>SGML</acronym>
+<abbrev>ISO 8879:1986</abbrev>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="xml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+</glossary>
+<index id="index">
+<para>This is a test index.</para>
+<formalpara>
+<title>a formal para</title>
+<para>this is a formal paragraph.</para>
+</formalpara>
+<indexentry>
+<primaryie>Primary</primaryie>
+<secondaryie>Secondary 1</secondaryie>
+<tertiaryie>Tertiary 11</tertiaryie>
+<tertiaryie>Tertiary 12</tertiaryie>
+<secondaryie>Secondary 2</secondaryie>
+<tertiaryie>Tertiary 21</tertiaryie>
+</indexentry>
+<indexentry id="prim1">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry id="prim2">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary1</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary2</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<seeie linkend="prim2">see ie</seeie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+<seealsoie linkends="prim2 prim1">seealso ie</seealsoie>
+</indexentry>
+</index>
+<index>
+<indexdiv>
+<title>Symbols</title>
+<indexentry>
+<primaryie>!,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </primaryie>
+</indexentry>
+<indexentry>
+<primaryie>[,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>A</title>
+<indexentry>
+<primaryie>sect2-level,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>C</title>
+<indexentry>
+<primaryie>chap-level,
+    <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>
+  </primaryie>
+<secondaryie>sec
+  </secondaryie>
+<tertiaryie>tert,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </tertiaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>O</title>
+<indexentry>
+<primaryie>oft-repeated,
+    <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </primaryie>
+<secondaryie>with id,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </secondaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>S</title>
+<indexentry>
+<primaryie>sect1-level,
+    <ulink url="c3.htm#aen10" role="aen10"><emphasis>Index Term Sect 1</emphasis></ulink>
+  </primaryie>
+<secondaryie>sec,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>sect1-other
+  </primaryie>
+<secondaryie>sec,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </secondaryie>
+</indexentry>
+</indexdiv>
+</index>
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/callout.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/callout.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/callout.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,55 @@
+<?xml version='1.0'?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "../dtd/4.1.2/docbookx.dtd">
+<section id="dsssl.expr.loop"><title>Loops</title>
+<para>
+<indexterm><primary>for loop, DSSSL and</primary></indexterm>
+<indexterm><primary>loops, implementing (DSSSL)</primary></indexterm>
+<indexterm><primary>tail recursion (DSSSL)</primary></indexterm>
+
+<acronym>DSSSL</acronym> doesn't have any construct that resembles the
+for loop that occurs in most imperative languages like C
+and Java. Instead, <acronym>DSSSL</acronym> employs a common trick in
+functional languages for implementing a loop: tail recursion.
+</para>
+<para>
+Loops in <acronym>DSSSL</acronym> use a special form of
+<literal>let</literal>. This loop counts from 1 to 10:
+<screen>
+(let <co id="dl1"/>loopvar <co id="dl2"/>((count 1))
+  <co id="dl3"/>(if (> count 10)
+    <co id="dl4"/>#t
+    (<co id="dl5"/>loopvar <co id="dl6"/>(+ count 1))))</screen></para>
+<calloutlist>
+<callout arearefs="dl1">
+<para>This variable controls the loop. It is declared without an
+initial value, immediately after the <literal>let</literal>
+operand.</para>
+</callout>
+<callout arearefs="dl2">
+<para>
+<indexterm><primary>variables (DSSSL)</primary>
+  <secondary>local, defining after loop variable</secondary></indexterm>
+
+Any number of additional local variables can be defined after
+the loop variable, just as they can in any other
+<literal>let</literal> expression.</para>
+</callout>
+<callout arearefs="dl3">
+<para>If you ever want the loop to end, you have to put some sort of a
+test in it.</para>
+</callout>
+<callout arearefs="dl4">
+<para>This is the value that will be returned.</para>
+</callout>
+<callout arearefs="dl5">
+<para>Note that you iterate the loop by using the loop variable as if
+it was a function name.</para>
+</callout>
+<callout arearefs="dl6">
+<para>The arguments to this function are the values that
+you want the local variables declared in <xref linkend="dl2"/> to have
+in the next iteration.</para>
+</callout>
+</calloutlist>
+</section>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/chunk.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/chunk.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/chunk.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd">
+
+<!-- test document -->
+
+<book><title>Book Test Document Title</title>
+<bookinfo>
+<title>Bookinfo Test Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+</authorgroup>
+</bookinfo>
+
+<dedication id="dedication"><title>First Dedication</title>
+<para>Just a test.</para>
+</dedication>
+
+<dedication>
+<para>Just a test.</para>
+</dedication>
+
+<preface id="preface"><title>Foreword</title>
+<?dbhtml filename="preface.html" dir="x"?>
+<para>This is a test paragraph. (<link linkend="chapter">chapter</link>)</para>
+</preface>
+
+<chapter id="xreftest">
+<?dbhtml filename="xreftest.html"?>
+<title id="chaptertitle">XRef Tests</title>
+
+<para><link linkend="dedication">Dedication</link></para>
+<para><link linkend="preface">Preface</link></para>
+<para><link linkend="chapter">Chapter</link></para>
+<para><link linkend="appendix">Appendix</link></para>
+
+<sect1><title>First sect1</title>
+<para>...</para>
+</sect1>
+
+<sect1><title>Second sect1</title>
+<para>...</para>
+</sect1>
+
+</chapter>
+
+<chapter id="chapter"><title>Second Chapter</title>
+<para>This is a test paragraph.</para>
+</chapter>
+
+<chapter><title>Third Chapter</title>
+<para>This is a test paragraph.</para>
+</chapter>
+
+<appendix id="appendix"><title>First Appendix</title>
+<para>This is just a test.</para>
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+</appendix>
+
+<appendix><title>Second Appendix</title>
+<para>This is just a test.</para>
+</appendix>
+
+</book>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/classsynop.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/classsynop.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/classsynop.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,160 @@
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+                  "../dtd/4.0/docbookx.dtd">
+<chapter><title>Class Synopses</title>
+
+<para>This example is Perl; it's the standard DirHandle module. I've
+cut out the code, so you'll have to trust me on the parameters.
+</para>
+
+<para>ProgramListing version:</para>
+
+<programlisting>
+package DirHandle;
+
+require 5.000;
+use Carp;
+use Symbol;
+
+sub new {
+}
+</programlisting>
+
+<para>ClassSynopsis version:</para>
+
+<classsynopsis language="perl">
+  <ooclass><classname>DirHandle</classname></ooclass>
+  <ooclass><classname>superclass1</classname></ooclass>
+  <ooclass><classname>superclass2</classname></ooclass>
+
+  <classsynopsisinfo>
+require 5.000;
+use Carp;
+use Symbol;
+
+</classsynopsisinfo>
+
+  <constructorsynopsis>
+    <methodname>new</methodname>
+    <methodparam choice="opt"><parameter>$dirname</parameter></methodparam>
+  </constructorsynopsis>
+  <destructorsynopsis>
+    <methodname>DESTROY</methodname>
+  </destructorsynopsis>
+
+</classsynopsis>
+
+<para>This example is IDL from the DOM spec.</para>
+
+<para>ProgramListing version:</para>
+
+<programlisting>
+interface Element : Node {
+  readonly attribute  DOMString            tagName;
+  DOMString                 getAttribute(in DOMString name);
+  void                      setAttribute(in DOMString name, 
+                                         in DOMString value)
+                                         raises(DOMException);
+};
+</programlisting>
+
+<para>ClassSynopsis version:</para>
+
+<classsynopsis class="interface" language="idl">
+  <ooclass><classname>Element</classname></ooclass>
+  <ooclass><classname>Node</classname></ooclass>
+
+  <fieldsynopsis>
+    <modifier>readonly</modifier>
+    <modifier>attribute</modifier>
+    <type>DOMString</type>
+    <varname>tagName</varname>
+  </fieldsynopsis>
+
+  <methodsynopsis>
+    <type>DOMString</type>
+    <methodname>getAttribute</methodname>
+      <methodparam>
+        <modifier>in</modifier>
+        <type>DOMString</type>
+        <parameter>name</parameter>
+      </methodparam>
+  </methodsynopsis>
+
+  <methodsynopsis>
+    <void/>
+    <methodname>setAttribute</methodname>
+      <methodparam>
+        <modifier>in</modifier>
+        <type>DOMString</type>
+        <parameter>name</parameter>
+      </methodparam>
+      <methodparam>
+        <modifier>in</modifier>
+        <type>DOMString</type>
+        <parameter>value</parameter>
+      </methodparam>
+    <exceptionname>DOMException</exceptionname>
+  </methodsynopsis>
+</classsynopsis>
+
+<classsynopsis language="java">
+  <ooclass><modifier>public</modifier>
+           <classname>TextFileWriter</classname>
+  </ooclass>
+  <ooclass><classname>Superclass1</classname></ooclass>
+  <ooclass><classname>Superclass2</classname></ooclass>
+  <oointerface><interfacename>Interface1</interfacename></oointerface>
+  <oointerface><interfacename>Interface2</interfacename></oointerface>
+  <ooexception><exceptionname>Exception1</exceptionname></ooexception>
+  <ooexception><exceptionname>Exception2</exceptionname></ooexception>
+
+  <fieldsynopsis>
+    <modifier>private</modifier>
+    <type>Writer</type>
+    <varname>writer</varname>
+  </fieldsynopsis>
+
+  <fieldsynopsis>
+    <modifier>public</modifier>
+    <type>String</type>
+    <varname>writerName</varname>
+    <initializer>"MyWriter"</initializer>
+  </fieldsynopsis>
+
+  <methodsynopsis>
+    <modifier>static</modifier>
+    <modifier>public</modifier>
+    <void/>
+    <methodname>write</methodname>
+    <methodparam>
+       <type>ResultTreeFragment</type>
+       <parameter>frag</parameter>
+    </methodparam>
+    <methodparam>
+       <type>String</type>
+       <parameter>file</parameter>
+    </methodparam>
+    <exceptionname>Exception1</exceptionname>
+    <exceptionname>Exception2</exceptionname>
+  </methodsynopsis>
+</classsynopsis>
+
+<programlisting>
+class Rectangle_with_data:  virtual Shape, virtual Data_container
+{
+...
+};
+</programlisting>
+
+<para>ClassSynopsis version:</para>
+
+<classsynopsis language="cpp">
+  <ooclass><classname>Rectangle_with_data</classname></ooclass>
+  <ooclass><modifier>virtual</modifier><classname>Shape</classname>
+     </ooclass>
+  <ooclass><modifier>virtual</modifier><classname>Data_container</classname>
+     </ooclass>
+  <classsynopsisinfo>...</classsynopsisinfo>
+</classsynopsis>
+
+</chapter>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/condition.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/condition.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/condition.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3303 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+  PUBLIC "-//OASIS//DTD XML DocBook V4.1.2//EN"
+  "../dtd/4.1.2/docbookx.dtd" [
+<!ENTITY use-chap-2 "ignore">
+]>
+<book id="book">
+<bookinfo>
+<title>Book Title</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<corpauthor>Some Corporation</corpauthor>
+<legalnotice>
+<title>Legal Notice</title>
+<para>This is a test document. You can do what you will with it.</para>
+</legalnotice>
+<legalnotice>
+<para>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </para>
+</legalnotice>
+<copyright>
+<year>1998</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</bookinfo>
+<dedication>
+<para>This test book is dedicated to all the testers.  This is the first para
+of the dedication.</para>
+<para>This is the second para of the dedication.</para>
+<para>This is the third para of the dedication.</para>
+</dedication>
+<preface>
+<title>Preface Title</title>
+<para>Preface content.</para>
+<para>This is the second para of the preface.</para>
+<para>This is the third para of the preface.</para>
+</preface>
+<part>
+<docinfo>
+<title>Part One Title</title>
+<legalnotice>
+<para>Foo! A legal notice in a part!</para>
+</legalnotice>
+</docinfo>
+<title>Part One Title</title>
+<partintro>
+<title>PartIntro Title</title>
+<para>Partintro content<footnote>
+<para>This is a footnote in a partintro.</para>
+</footnote>.</para>
+<sect1>
+<title>PartIntro Section</title>
+<para>PartIntros can actually have section content as well.</para>
+</sect1>
+</partintro>
+<chapter id="chapter">
+<title id="chaptertitle">XRef Tests</title>
+<bridgehead renderas="sect3">Xrefs</bridgehead>
+<simplelist>
+<member><xref linkend="book"/></member>
+<member><xref linkend="part"/></member>
+<member><xref linkend="chapter"/></member>
+<member><xref linkend="appendix"/></member>
+<member><xref linkend="table"/></member>
+<member><xref linkend="figure"/></member>
+<member><xref linkend="example"/></member>
+<member><xref linkend="equation"/></member>
+<member><xref linkend="reference"/></member>
+<member><xref linkend="bib1"/></member>
+<member><xref linkend="gloss"/></member>
+<member><xref linkend="index"/></member>
+</simplelist>
+<para>This is the first reference to <firstterm linkend="xml">XML</firstterm>.
+This is the second reference to <glossterm linkend="xml">XML</glossterm>.
+These are references without <sgmltag class="attribute">linkend</sgmltag>
+attributes: <firstterm>XML</firstterm>, <glossterm>XML</glossterm>.</para>
+<bridgehead renderas="sect3">Links</bridgehead>
+<para>More <ulink url="http://www.jclark.com/dsssl/">DSSSL information</ulink>
+is available.</para>
+<para>There is <link linkend="part">a second part</link> in this book.</para>
+<para>This is the <link endterm="chaptertitle" linkend="chapter"></link>
+chapter.</para>
+</chapter>
+<chapter id="stchap" condition="&use-chap-2;">
+<docinfo>
+<title>Section Tests</title>
+<subtitle>Section Tests Subtitle</subtitle>
+</docinfo>
+<title>Section Tests</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<indexterm>
+<primary>ap1</primary>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm></para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect1 id="secttest1">
+<title>a sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<indexterm>
+<primary>ep1</primary>
+<secondary>ep1es1</secondary>
+<tertiary>ep1es1et1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ep1</primary>
+<secondary>ep1es2</secondary>
+</indexterm>
+<indexterm>
+<primary>ep2</primary>
+</indexterm>
+
+<indexterm>
+<primary>fp1</primary>
+<secondary>fp1fs1</secondary>
+</indexterm>
+<indexterm>
+<primary>fp1</primary>
+<secondary>fp1fs2</secondary>
+<tertiary>fp1fs2ft1</tertiary>
+</indexterm>
+<indexterm>
+<primary>fp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs1</secondary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+<tertiary>gp1gs2gt1</tertiary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+<tertiary>gp1gs2gt2</tertiary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs3</secondary>
+</indexterm>
+<indexterm>
+<primary>gp2</primary>
+</indexterm></para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<title>a sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<title>a sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<indexterm>
+<primary>hp1</primary>
+<secondary>hp1hs1</secondary>
+<tertiary>hp1hs1ht1</tertiary>
+</indexterm>
+<indexterm>
+<primary>hp1</primary>
+<secondary>hp1hs1</secondary>
+<tertiary>hp1hs1ht2</tertiary>
+</indexterm>
+<indexterm>
+<primary>hp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>ip1</primary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+<tertiary>ip1is1it1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+<tertiary>ip1is1it2</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is2</secondary>
+<tertiary>ip1is2it1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip2</primary>
+</indexterm></para>
+<sect4>
+<title>a sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<title>a sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1 id="secttest2">
+<sect1info>
+<title>another sect1 title</title>
+<subtitle>a sect1 subtitle</subtitle>
+</sect1info>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+<indexterm>
+<primary>jp1</primary>
+</indexterm>
+<indexterm>
+<primary>jp1</primary>
+<secondary>jp1js1</secondary>
+<tertiary>jp1js1jt1</tertiary>
+</indexterm>
+<indexterm>
+<primary>jp1</primary>
+<secondary>jp1js1</secondary>
+<tertiary>jp1js1jt2</tertiary>
+</indexterm>
+<indexterm>
+<primary>jp2</primary>
+</indexterm></para>
+<sect2>
+<sect2info>
+<title>another sect2 title</title>
+<subtitle>a sect2 subtitle</subtitle>
+</sect2info>
+<title>another sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<sect3info>
+<title>another sect3 title</title>
+<subtitle>a sect3 subtitle</subtitle>
+</sect3info>
+<title>another sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<sect4info>
+<title>another sect4 title</title>
+<subtitle>a sect4 subtitle</subtitle>
+</sect4info>
+<title>another sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<sect5info>
+<title>another sect5 title</title>
+<subtitle>a sect5 subtitle</subtitle>
+</sect5info>
+<title>another sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1 id="secttest3">
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+<sect1 id="secttest4">
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+</chapter>
+<chapter>
+<title>Inline Tests</title>
+<simplesect>
+<title>Testing <quote>Quotes</quote> in a title</title>
+<para>Footnotes<footnote id="fn1">
+<para>Like this!</para>
+</footnote> are inlines.
+Sort of<footnote>
+<para>Well, the marks are, anyway!</para>
+</footnote>.
+Another footnote<footnoteref linkend="fn1"/>.</para>
+<simplelist columns="3" type="vert">
+<member><abbrev>Abbrev</abbrev></member>
+<member><acronym>Acronym</acronym></member>
+<member><action>Action</action></member>
+<member><application>Application</application></member>
+<member><citation>Citation</citation></member>
+<member><citerefentry>
+<refentrytitle>CiteRefEntry RefEntryTitle</refentrytitle>
+<manvolnum>n</manvolnum>
+</citerefentry></member>
+<member><citetitle>Citetitle</citetitle></member>
+<member><classname>ClassName</classname></member>
+<member><command>Command</command></member>
+<member><comment>Comment</comment> (Comment)</member>
+<member><computeroutput>ComputerOutput</computeroutput></member>
+<member><database>Database</database></member>
+<member><errorname>ErrorName</errorname></member>
+<member><errortype>ErrorType</errortype></member>
+<member><email>Email</email></member>
+<member><emphasis>Emphasis</emphasis></member>
+<member><envar>EnVar</envar></member>
+<member><errorcode>ErrorCode</errorcode></member>
+<member><filename>Filename</filename></member>
+<member><firstterm>Firstterm</firstterm></member>
+<member><foreignphrase>ForeignPhrase</foreignphrase></member>
+<member><function>Function</function></member>
+<member><guimenuitem>GUIMenuItem</guimenuitem></member>
+<member><guibutton>GUIButton</guibutton></member>
+<member><guibutton>GUI<accel>B</accel>utton (with Accel)</guibutton></member>
+<member><guiicon>GUIIcon</guiicon></member>
+<member><guilabel>GUILabel</guilabel></member>
+<member><guimenu>GUIMenu</guimenu></member>
+<member><guisubmenu>GUISubMenu</guisubmenu></member>
+<member><hardware>Hardware</hardware></member>
+<member><inlineequation>
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</inlineequation></member>
+<member><interface>Interface</interface></member>
+<member><interfacedefinition>InterfaceDefinition</interfacedefinition></member>
+<member><keycap>KeyCap</keycap></member>
+<member><keycode>KeyCode</keycode></member>
+<member><keycombo>
+<keycap>Key</keycap>
+<keycap>Combo</keycap>
+</keycombo></member>
+<member><keysym>KeySym</keysym></member>
+<member><literal>Literal</literal></member>
+<member><markup>Markup</markup></member>
+<member><medialabel>MediaLabel</medialabel></member>
+<member><mousebutton>MouseButton</mousebutton></member>
+<member><option>Option</option></member>
+<member><optional>Optional</optional></member>
+<member><parameter>Parameter</parameter></member>
+<member><phrase>Phrase</phrase></member>
+<member><prompt>Prompt</prompt></member>
+<member><property>Property</property></member>
+<member><quote>Quote</quote></member>
+<member><replaceable>Replaceable</replaceable></member>
+<member><returnvalue>ReturnValue</returnvalue></member>
+<member><sgmltag class="attribute">SGMLTag</sgmltag> (Attribute)</member>
+<member><sgmltag class="attvalue">SGMLTag</sgmltag> (AttValue)</member>
+<member><sgmltag class="element">SGMLTag</sgmltag> (Element)</member>
+<member><sgmltag class="endtag">SGMLTag</sgmltag> (EndTag)</member>
+<member><sgmltag class="genentity">SGMLTag</sgmltag> (GenEntity)</member>
+<member><sgmltag class="numcharref">SGMLTag</sgmltag> (NumCharRef)</member>
+<member><sgmltag class="paramentity">SGMLTag</sgmltag> (ParamEntity)</member>
+<member><sgmltag class="pi">SGMLTag</sgmltag> (PI)</member>
+<member><sgmltag class="sgmlcomment">SGMLTag</sgmltag> (SGMLComment)</member>
+<member><sgmltag class="starttag">SGMLTag</sgmltag> (StartTag)</member>
+<member><sgmltag>SGMLTag</sgmltag></member>
+<member><structfield>StructField</structfield></member>
+<member><structname>StructName</structname></member>
+<member><subscript>Subscript</subscript></member>
+<member><superscript>Superscript</superscript></member>
+<member><symbol>Symbol</symbol></member>
+<member><systemitem>SystemItem</systemitem></member>
+<member><token>Token</token></member>
+<member><trademark>Trademark</trademark></member>
+<member><type>Type</type></member>
+<member><userinput>UserInput</userinput></member>
+<member><wordasword>WordAsWord</wordasword></member>
+<member><productname>ProductName</productname></member>
+</simplelist>
+<para>And here are a couple of index terms, as another test (of 
+index terms, not inlines).
+<indexterm>
+<primary>aap1</primary>
+<see>ap1</see>
+</indexterm>
+<indexterm>
+<primary>bbp1</primary>
+<seealso>bp1</seealso>
+</indexterm></para>
+</simplesect>
+</chapter>
+<chapter>
+<title>Block Tests</title>
+<simplesect>
+<title>Formal Objects</title>
+<bridgehead renderas="sect4">Example</bridgehead>
+<example id="example">
+<title>An Example</title>
+<para>This is an example of a trivial example.</para>
+</example>
+<bridgehead renderas="sect4">Figure</bridgehead>
+<figure id="figure">
+<title>A Figure</title>
+<screen>This is an example of a trivial figure.</screen>
+</figure>
+<bridgehead renderas="sect4">Equation</bridgehead>
+<equation id="equation">
+<title>An Equation</title>
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</equation>
+<bridgehead renderas="sect4">Table</bridgehead>
+<table id="table">
+<title>A Table</title>
+<tgroup cols="2">
+<colspec colwidth="0.5in"/>
+<colspec colwidth="0.5in"/>
+<tbody>
+<row>
+<entry>1</entry>
+<entry>1</entry>
+</row>
+<row>
+<entry>2</entry>
+<entry>4</entry>
+</row>
+<row>
+<entry>3</entry>
+<entry>9</entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+</simplesect>
+<simplesect>
+<title>Informal Objects</title>
+<bridgehead renderas="sect4">InformalExample</bridgehead>
+<informalexample id="iexample">
+<para>This is an example of a trivial, informal example.</para>
+</informalexample>
+<bridgehead renderas="sect4">InformalEquation</bridgehead>
+<informalequation id="iequation">
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</informalequation>
+<bridgehead renderas="sect4">InformalTable</bridgehead>
+<informaltable id="itable">
+<tgroup cols="2">
+<tbody>
+<row>
+<entry>1</entry>
+<entry>1</entry>
+</row>
+<row>
+<entry>2</entry>
+<entry>8</entry>
+</row>
+<row>
+<entry>3</entry>
+<entry>27</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</simplesect>
+<simplesect>
+<title>Admonitions</title>
+<bridgehead renderas="sect4">Note</bridgehead>
+<note>
+<para>Consider yourself noted.</para>
+<para>Second para.</para>
+</note>
+<note>
+<simpara>Consider yourself noted, simply.</simpara>
+</note>
+<note>
+<title>NoteTitle</title>
+<para>Consider yourself noted.</para>
+<para>Second para, with a title.</para>
+</note>
+<note>
+<title>Att</title>
+<simpara>Consider yourself noted, simply.</simpara>
+<simpara>With a title</simpara>
+</note>
+<bridgehead renderas="sect4">Important</bridgehead>
+<important>
+<para>Consider yourself important.</para>
+</important>
+<bridgehead renderas="sect4">Tip</bridgehead>
+<tip>
+<para>Consider yourself tipped.</para>
+</tip>
+<bridgehead renderas="sect4">Warning</bridgehead>
+<warning>
+<para>Consider yourself warned.</para>
+</warning>
+<bridgehead renderas="sect4">Caution</bridgehead>
+<caution>
+<para>Consider yourself cautioned.</para>
+</caution>
+<bridgehead renderas="sect4">SimPara in Caution</bridgehead>
+<caution>
+<title>Simple Caution</title>
+<simpara>A simpler caution.</simpara>
+</caution>
+</simplesect>
+<simplesect>
+<title>Other Objects</title>
+<bridgehead renderas="sect4">Screen</bridgehead>
+<screen>This
+  is                  <lineannotation>With a line-annotation</lineannotation>
+    a 
+     screen
+     This
+    is                <lineannotation>With a line-annotation</lineannotation>
+  a 
+screen
+This
+  is                  <lineannotation>With a line-annotation</lineannotation>
+    a 
+     screen</screen>
+<bridgehead renderas="sect4">ProgramListing</bridgehead>
+<programlisting linenumbering="numbered">This
+  is
+    a 
+programlisting</programlisting>
+<bridgehead renderas="sect4">Address</bridgehead>
+<address>Norman Walsh
+ArborText, Inc.
+<street>1000 Victors Way</street>
+<city>Ann Arbor</city>, <state>MI</state> <postcode>48108</postcode>
+<country>US</country>
+
+Voice: <phone>313.997.0200</phone>
+Fax: <fax>313.997.0201</fax>
+
+Email: <email>nwalsh at arbortext.com</email>
+WWW: <otheraddr role="homepage">http://www.arbortext.com/</otheraddr></address>
+<bridgehead renderas="sect4">BlockQuote</bridgehead>
+<blockquote>
+<para>The universe that we observe has precisely the properties we should 
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&mdash;Richard Dawkins</para>
+</blockquote>
+<bridgehead renderas="sect4">Procedure</bridgehead>
+<procedure>
+<step>
+<para>This is the first step</para>
+</step>
+<step>
+<para>This is the second step</para>
+<substeps>
+<step>
+<para>This is the first substep</para>
+</step>
+<step>
+<para>This is the second substep</para>
+</step>
+</substeps>
+</step>
+<step>
+<para>This is the third step</para>
+</step>
+</procedure>
+<bridgehead renderas="sect4">Procedure With Title</bridgehead>
+<procedure>
+<title>Same Procedure with a Title</title>
+<step>
+<para>This is the first step</para>
+</step>
+<step>
+<para>This is the second step</para>
+<substeps>
+<step>
+<para>This is the first substep</para>
+</step>
+<step>
+<para>This is the second substep</para>
+</step>
+</substeps>
+</step>
+<step>
+<para>This is the third step</para>
+</step>
+</procedure>
+<bridgehead renderas="sect4">SideBar</bridgehead>
+<sidebar>
+<title>What About Bob?</title>
+<para>This is a sidebar.</para>
+</sidebar>
+<bridgehead renderas="sect4">MsgSet</bridgehead>
+<para>It's not really clear how <sgmltag>MsgSet</sgmltag> should be presented.
+I expect that it's fairly application, if not document, specific.</para>
+<msgset>
+<msgentry>
+<msg>
+<msgmain>
+<msgtext>
+<para>Record failed CRC</para>
+</msgtext>
+</msgmain>
+<msgsub>
+<msgtext>
+<para>Record <replaceable>n</replaceable>
+                    in <replaceable>database</replaceable></para>
+</msgtext>
+</msgsub>
+<msgrel>
+<msgtext>
+<para>File read error on 
+                   <replaceable>database</replaceable></para>
+</msgtext>
+</msgrel>
+<msgrel>
+<msgtext>
+<para>Panic! Corrupt record!</para>
+</msgtext>
+</msgrel>
+</msg>
+<msginfo>
+<msglevel>severe</msglevel>
+<msgorig>server</msgorig>
+<msgaud>all</msgaud>
+</msginfo>
+<msgexplan>
+<para>        Indicates that some sort of error occured attempting to load
+        a record from the database.  Retry.  If failure persists,
+        contact the database administrator.
+        </para>
+</msgexplan>
+</msgentry>
+</msgset>
+<bridgehead renderas="sect4">LiteralLayout</bridgehead>
+<literallayout>This is a
+literal
+       layout</literallayout>
+<para><literallayout>This is a
+literal
+       layout
+  in a para</literallayout></para>
+</simplesect>
+</chapter>
+<chapter>
+<title>List Tests</title>
+<simplesect>
+<title>OrderedLists</title>
+<bridgehead renderas="sect4">Default Numeration</bridgehead>
+<orderedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<programlisting>this one starts with
+a program listing
+what happens?</programlisting>
+</listitem>
+<listitem>
+<synopsis>this one starts with
+a synopsis
+what happens?</synopsis>
+</listitem>
+<listitem>
+<para>para first</para>
+<synopsis>this one has
+a synopsis
+what happens?</synopsis>
+</listitem>
+<listitem>
+<para>Three</para>
+<screen>A
+Screen
+Here</screen>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Arabic Numeration</bridgehead>
+<orderedlist numeration="arabic">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Arabic Numeration (Long)</bridgehead>
+<orderedlist numeration="arabic">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+<listitem>
+<para>Five</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+<listitem>
+<para>Seven</para>
+</listitem>
+<listitem>
+<para>Eight</para>
+</listitem>
+<listitem>
+<para>Nine</para>
+</listitem>
+<listitem>
+<para>Ten</para>
+</listitem>
+<listitem>
+<para>Eleven</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">UpperAlpha Numeration</bridgehead>
+<orderedlist numeration="upperalpha">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">LowerAlpha Numeration</bridgehead>
+<orderedlist numeration="loweralpha">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">UpperRoman Numeration</bridgehead>
+<orderedlist numeration="upperroman">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">LowerRoman Numeration</bridgehead>
+<orderedlist numeration="lowerroman">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Continued</bridgehead>
+<para>First list:
+<orderedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist></para>
+<para>Second list:
+<orderedlist continuation="continues">
+<listitem>
+<para>Five</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+<listitem>
+<para>Seven</para>
+</listitem>
+<listitem>
+<para>Eight</para>
+</listitem>
+<listitem>
+<para>Nine</para>
+</listitem>
+<listitem>
+<para>Ten</para>
+</listitem>
+</orderedlist></para>
+</simplesect>
+<simplesect>
+<title>ItemizedLists</title>
+<bridgehead renderas="sect4">Default Presentation</bridgehead>
+<itemizedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<programlisting>One-point-five. This one starts with
+a program listing
+what happens?</programlisting>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">Block Elements in a List</bridgehead>
+<itemizedlist>
+<listitem>
+<para>One</para>
+<para>Another para.</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">Alternate Mark and OverRide</bridgehead>
+<itemizedlist mark="box">
+<listitem>
+<para>TeX and LaTeX</para>
+</listitem>
+<listitem override="bullet">
+<para>Troff</para>
+</listitem>
+<listitem>
+<para>Lout</para>
+</listitem>
+<listitem override="none">
+<para>Test</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">No mark Presentation</bridgehead>
+<itemizedlist mark="none">
+<listitem override="none">
+<para>One</para>
+</listitem>
+<listitem override="bullet">
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+</simplesect>
+<simplesect>
+<title>VariableLists</title>
+<variablelist>
+<varlistentry>
+<term>Term1</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term2</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term3</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<itemizedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term4</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<variablelist>
+<varlistentry>
+<term>Another List</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>ProgramListing</term>
+<listitem>
+<programlisting>A ProgramListing
+Is the First Element
+of this VarListEntry</programlisting>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</simplesect>
+<simplesect>
+<title>SimpleLists</title>
+<bridgehead renderas="sect4">Inline</bridgehead>
+<para>An inline simple list:
+<simplelist type="inline">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist></para>
+<bridgehead renderas="sect4">Horiz</bridgehead>
+<simplelist columns="3" type="horiz">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist>
+<bridgehead renderas="sect4">Vert</bridgehead>
+<simplelist columns="3" type="vert">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist>
+</simplesect>
+<simplesect>
+<title>More Complex List Item Content</title>
+<itemizedlist>
+<listitem>
+<para>One</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Two</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<simpara>Three</simpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Four</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<formalpara>
+<title>Formal Element</title>
+<para>Five</para>
+</formalpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+</itemizedlist>
+<orderedlist>
+<listitem>
+<para>One</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Two</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<simpara>Three</simpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Four</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<formalpara>
+<title>Formal Element</title>
+<para>Five</para>
+</formalpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+</orderedlist>
+</simplesect>
+<simplesect>
+<title>Segmented List</title>
+<segmentedlist>
+<title>State Birds</title>
+<segtitle>State</segtitle>
+<segtitle>Bird</segtitle>
+<seglistitem>
+<seg>Alabama</seg>
+<seg>Yellowhammer</seg>
+</seglistitem>
+<seglistitem>
+<seg>Alaska</seg>
+<seg>Willow Ptarmigan</seg>
+</seglistitem>
+<seglistitem>
+<seg>Arizona</seg>
+<seg>Cactus Wren</seg>
+</seglistitem>
+<seglistitem>
+<seg>Arkansas</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>California</seg>
+<seg>California Valley Quail</seg>
+</seglistitem>
+<seglistitem>
+<seg>Colorado</seg>
+<seg>Lark Bunting</seg>
+</seglistitem>
+<seglistitem>
+<seg>Connecticut</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Delaware</seg>
+<seg>Blue Hen Chicken</seg>
+</seglistitem>
+<seglistitem>
+<seg>Florida</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Georgia</seg>
+<seg>Brown Thrasher</seg>
+</seglistitem>
+<seglistitem>
+<seg>Hawaii</seg>
+<seg>Nene</seg>
+</seglistitem>
+<seglistitem>
+<seg>Idaho</seg>
+<seg>Mountain Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Illinois</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Indiana</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Iowa</seg>
+<seg>Eastern Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>Kansas</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Kentucky</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Louisiana</seg>
+<seg>Eastern Brown Pelican</seg>
+</seglistitem>
+<seglistitem>
+<seg>Maine</seg>
+<seg>Chickadee</seg>
+</seglistitem>
+<seglistitem>
+<seg>Maryland</seg>
+<seg>Baltimore Oriole</seg>
+</seglistitem>
+<seglistitem>
+<seg>Massachusetts</seg>
+<seg>Chickadee</seg>
+</seglistitem>
+<seglistitem>
+<seg>Michigan</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Minnesota</seg>
+<seg>Common Loon</seg>
+</seglistitem>
+<seglistitem>
+<seg>Mississippi</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Missouri</seg>
+<seg>Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Montana</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Nebraska</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Nevada</seg>
+<seg>Mountain Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Hampshire</seg>
+<seg>Purple Finch</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Jersey</seg>
+<seg>Eastern Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Mexico</seg>
+<seg>Roadrunner</seg>
+</seglistitem>
+<seglistitem>
+<seg>New York</seg>
+<seg>Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>North Carolina</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>North Dakota</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Ohio</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Oklahoma</seg>
+<seg>Scissor-tailed Flycatcher</seg>
+</seglistitem>
+<seglistitem>
+<seg>Oregon</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Pennsylvania</seg>
+<seg>Ruffed Grouse</seg>
+</seglistitem>
+<seglistitem>
+<seg>Rhode Island</seg>
+<seg>Rhode Island Red</seg>
+</seglistitem>
+<seglistitem>
+<seg>South Carolina</seg>
+<seg>Great Carolina Wren</seg>
+</seglistitem>
+<seglistitem>
+<seg>South Dakota</seg>
+<seg>Ring-necked Pheasant</seg>
+</seglistitem>
+<seglistitem>
+<seg>Tennessee</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Texas</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Utah</seg>
+<seg>American Seagull</seg>
+</seglistitem>
+<seglistitem>
+<seg>Vermont</seg>
+<seg>Hermit Thrush</seg>
+</seglistitem>
+<seglistitem>
+<seg>Virginia</seg>
+<seg>Cardinal </seg>
+</seglistitem>
+<seglistitem>
+<seg>Washington</seg>
+<seg>Willow Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>West Virginia</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Wisconsin</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Wyoming</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+</segmentedlist>
+</simplesect>
+</chapter>
+<chapter>
+<title>Table Tests</title>
+<bridgehead renderas="sect4">Alternate Alignment on Entry</bridgehead>
+<informaltable frame="all">
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left">left</entry>
+<entry align="center">center</entry>
+<entry>center</entry>
+</row>
+<row>
+<entry align="center">center</entry>
+<entry align="right">right</entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<informaltable frame="topbot">
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left">left</entry>
+<entry align="center">center</entry>
+<entry>center</entry>
+</row>
+<row>
+<entry align="center">center</entry>
+<entry align="right">right</entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<informaltable>
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left"><emphasis>left emph</emphasis></entry>
+<entry align="center"><emphasis role="bold">center emph/bold</emphasis></entry>
+<entry><literal>center literal</literal></entry>
+</row>
+<row>
+<entry align="center"><filename>center filename</filename></entry>
+<entry align="right"><command>right command</command></entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Absolute Widths</bridgehead>
+<informaltable>
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="1in"/>
+<colspec colnum="2" colname="c2" colwidth="1in"/>
+<colspec colnum="3" colname="c3" colwidth="1in" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Relative Widths</bridgehead>
+<informaltable>
+<tgroup cols="2">
+<colspec colnum="1" colname="c1" colwidth="3*"/>
+<colspec colnum="2" colname="c2" colwidth="2*"/>
+<tbody>
+<row>
+<entry align="left"><para>left</para></entry>
+<entry align="center"><para>center</para></entry>
+</row>
+<row>
+<entry align="center"><para>center</para></entry>
+<entry align="right"><para>right</para></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Too many cells</bridgehead>
+<para>This is a broken table.  There are too many cells in the second row.
+YMMV.  Don't do this.</para>
+<informaltable>
+<tgroup cols="2">
+<tbody>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Missing Entrys</bridgehead>
+<table pgwide="1" id="t1">
+<title>Table Title</title>
+<tgroup cols="3">
+<colspec colnum="1" colname="c1"/>
+<colspec colnum="2" colname="c2"/>
+<colspec colnum="3" colname="c3"/>
+<thead>
+<row>
+<entry><para>head1</para></entry>
+<entry><para>head2</para></entry>
+<entry><para>head3</para></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><para>a1</para></entry>
+<entry><para>a2</para></entry>
+<entry><para>a3</para></entry>
+</row>
+<row>
+<entry><para>b1</para></entry>
+<entry colname="c3"><para>b3</para></entry>
+</row>
+<row>
+<entry namest="c2"><para>c2</para></entry>
+<entry><para>c3</para></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<bridgehead renderas="sect4">Complex</bridgehead>
+<informaltable pgwide="1">
+<tgroup cols="6">
+<colspec colnum="2" colname="c2" align="right"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<colspec colnum="5" colname="c5"/>
+<colspec colname="c6" align="left"/>
+<tbody>
+<row>
+<entry>A1</entry>
+<entry>A2</entry>
+<entry>A3</entry>
+<entry morerows="1">A4</entry>
+<entry>A5</entry>
+<entry>A6</entry>
+</row>
+<row>
+<entry>B1</entry>
+<entry colsep="1" rowsep="1">B2</entry>
+<entry rowsep="1">B3</entry>
+<entry>B5</entry>
+<entry>B6</entry>
+</row>
+<row>
+<entry>C1</entry>
+<entry colsep="1">C2</entry>
+<entry>C3</entry>
+<entry>C4</entry>
+<entry namest="c5" nameend="c6" morerows="2" valign="middle">C5</entry>
+</row>
+<row>
+<entry namest="c2">D2</entry>
+<entry>D3</entry>
+<entry>D4</entry>
+</row>
+<row>
+<entry>E1</entry>
+<entry namest="c2" nameend="c3" align="left">E2</entry>
+<entry>E4</entry>
+</row>
+<row>
+<entry>F1</entry>
+<entry>F2</entry>
+<entry>F3</entry>
+<entry>F4</entry>
+<entry>F5</entry>
+<entry>F6</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">With Footnotes</bridgehead>
+<informaltable>
+<tgroup cols="2">
+<tbody>
+<row>
+<entry>foo<footnote id="fnrex1a">
+<para>A meaningless
+word</para>
+</footnote></entry>
+<entry>3<footnote id="fnrex1b">
+<para>A meaningless
+number</para>
+</footnote></entry>
+</row>
+<row>
+<entry>bar<footnoteref linkend="fnrex1a"/></entry>
+<entry>5<footnoteref linkend="fnrex1b"/></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">A Big One</bridgehead>
+<informaltable>
+<tgroup cols="15">
+<thead>
+<row>
+<entry>H1</entry>
+<entry>H2</entry>
+<entry>H3</entry>
+<entry>H4</entry>
+<entry>H5</entry>
+<entry>H6</entry>
+<entry>H7</entry>
+<entry>H8</entry>
+<entry>H9</entry>
+<entry>H10</entry>
+<entry>H11</entry>
+<entry>H12</entry>
+<entry>H13</entry>
+<entry>H14</entry>
+<entry>H15</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</chapter>
+<chapter>
+<title>Index Term Tests</title>
+<para>Test data.</para>
+<indexterm id="idx1">
+<primary>oft-repeated</primary>
+</indexterm>
+<indexterm id="idx2">
+<primary>chap-level</primary>
+</indexterm>
+<sect1>
+<title>Index Term Sect 1</title>
+<para>Test data.</para>
+<indexterm id="idx3">
+<primary>!</primary>
+</indexterm>
+<indexterm id="fred">
+<primary>oft-repeated</primary>
+<secondary>with id</secondary>
+</indexterm>
+<indexterm significance="preferred" id="idx5">
+<primary>sect1-level</primary>
+</indexterm>
+<indexterm id="idx6">
+<primary>sect1-level</primary>
+</indexterm>
+<indexterm id="idx7">
+<primary>sect1-level</primary>
+<secondary>sec</secondary>
+</indexterm>
+<indexterm id="idx8">
+<primary>sect1-other</primary>
+<secondary>sec</secondary>
+</indexterm>
+<indexterm id="idx9">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+<indexterm scope="local">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+<indexterm id="idx11">
+<primary>sect1-level</primary>
+</indexterm>
+<sect2>
+<title>Index Term Sect 2</title>
+<para>Test data.</para>
+<indexterm id="idx12">
+<primary>[</primary>
+</indexterm>
+<indexterm id="idx13">
+<primary>oft-repeated</primary>
+</indexterm>
+<indexterm id="idx14">
+<primary sortas="abracadabra">sect2-level</primary>
+</indexterm>
+<indexterm id="idx15">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+</sect2>
+<sect2>
+<title>Index Term Sect 3</title>
+<para>foo</para>
+</sect2>
+</sect1>
+</chapter>
+</part>
+<part id="part">
+<title>Part Two Title</title>
+<chapter>
+<title>CmdSynopsis Tests</title>
+<bridgehead renderas="sect4">Very Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cd</command>
+<arg choice="req"><replaceable>directory</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cal</command>
+<arg>-j</arg>
+<arg>-y</arg>
+<arg>month <arg>year</arg></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Another Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>chgrp</command>
+<arg>-R 
+    <group>
+<arg>-H</arg>
+<arg>-L</arg>
+<arg>-P</arg>
+</group>
+  </arg>
+<arg>-f</arg>
+<arg choice="plain"><replaceable>group</replaceable></arg>
+<arg choice="plain" rep="repeat"><replaceable>file</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Slightly Complex CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>emacs</command>
+<arg>-t <replaceable>file</replaceable></arg>
+<arg>-q</arg>
+<arg>-u <replaceable>user</replaceable></arg>
+<arg>+<replaceable>number</replaceable></arg>
+<arg rep="repeat">-f <replaceable>function</replaceable></arg>
+<arg rep="repeat">-l <replaceable>file</replaceable></arg>
+<arg choice="plain" rep="repeat"><replaceable>file</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Quite Complex CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cccp</command>
+<arg>-$</arg>
+<arg>-C</arg>
+<arg rep="repeat">-D<replaceable>name</replaceable><arg>=<replaceable>definition</replaceable></arg></arg>
+<arg>-dD</arg>
+<arg>-dM</arg>
+<arg rep="repeat">-I <replaceable>directory</replaceable></arg>
+<arg>-H</arg>
+<arg>-I-</arg>
+<sbr/>
+<arg rep="repeat">-imacros <replaceable>file</replaceable></arg>
+<arg rep="repeat">-include <replaceable>file</replaceable></arg>
+<group>
+<arg>-lang-c</arg>
+<arg>-lang-c++</arg>
+<arg>-lang-objc</arg>
+</group>
+<arg>-lint</arg>
+<sbr/>
+<group>
+<arg>-M</arg>
+<arg>-MD</arg>
+<arg>-MM</arg>
+<arg>-MMD</arg>
+</group>
+<arg>-nostdinc</arg>
+<arg>-P</arg>
+<arg>-pedantic</arg>
+<arg>-pedantic-errors</arg>
+<arg>-trigraphs</arg>
+<arg>-U<replaceable>name</replaceable></arg>
+<sbr/>
+<arg>-undef</arg>
+<arg>-Wtrigraphs</arg>
+<arg>-Wcomment</arg>
+<arg>-Wall</arg>
+<arg>-Wtraditional</arg>
+<group choice="req">
+<arg><replaceable>infile</replaceable></arg>
+<arg>-</arg>
+</group>
+<group choice="req">
+<arg><replaceable>outfile</replaceable></arg>
+<arg>-</arg>
+</group>
+</cmdsynopsis>
+</chapter>
+<chapter>
+<title>FuncSynopsis Tests</title>
+<bridgehead renderas="sect4">Two Simple Parameters</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>int <function>max</function></funcdef>
+<paramdef>int <parameter>int1</parameter></paramdef>
+<paramdef>int <parameter>int2</parameter></paramdef>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Variable Arguments</bridgehead>
+<funcsynopsis>
+<funcsynopsisinfo>#include &lt;varargs.h&gt;</funcsynopsisinfo>
+<funcprototype>
+<funcdef>int <function>max</function></funcdef>
+<varargs/>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Void</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>int <function>rand</function></funcdef>
+<void/>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Function Pointer Arguments</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>void <function>qsort</function></funcdef>
+<paramdef>void *<parameter>dataptr</parameter>[]</paramdef>
+<paramdef>int <parameter>left</parameter></paramdef>
+<paramdef>int <parameter>right</parameter></paramdef>
+<paramdef>int <parameter>(* comp)</parameter>
+      <funcparams>void *, void *</funcparams></paramdef>
+</funcprototype>
+</funcsynopsis>
+</chapter>
+<chapter>
+<title>Callout Tests</title>
+<bridgehead renderas="sect4">CallOut (using AREASPEC)</bridgehead>
+<programlistingco>
+<areaspec>
+<area coords="1" id="prologue"/>
+<area coords="4" id="skipeof"/>
+<areaset coords="" id="xreq">
+<area coords="9" id="require1"/>
+<area coords="10" id="require2"/>
+</areaset>
+<area coords="11 12" id="use"/>
+<area coords="27" id="funccall"/>
+</areaspec>
+<programlisting>@rem = '--*-Perl-*--
+ at echo off
+perl.exe %_batchname %$
+goto endofperl
+ at rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+ at DIRS = ("/home/nwalsh/Mail");
+while (@DIRS) {
+    $dir = shift @DIRS;
+    opendir (DIR, $dir);
+    while ($fname = readdir(DIR)) {
+        $file = "$dir/$fname";
+        next if ! -d $file;
+        next if $fname =~ /^\.\.?$/;
+
+        print "$file\n";
+        push (@DIRS, $file);
+        &amp;compress ($file);
+    }
+}
+
+exit;</programlisting>
+<calloutlist>
+<callout arearefs="prologue">
+<para>The prologue handles embedding a Perl script in a DOS batch file.</para>
+</callout>
+<callout arearefs="skipeof">
+<para>The <literal>goto</literal> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</para>
+</callout>
+<callout arearefs="require1">
+<para>The <literal>require</literal> statement sources in external program
+fragments.</para>
+</callout>
+<callout arearefs="use">
+<para>The <literal>use</literal> statement is similar, but has additional
+utility.  It is a Perl5 function.  (Note that this callout area specifies
+both a line and a column.)</para>
+</callout>
+<callout arearefs="funccall">
+<para>This is a user subroutine call.</para>
+</callout>
+</calloutlist>
+</programlistingco>
+<bridgehead renderas="sect4">CallOut (using CO)</bridgehead>
+<programlisting>this is a line
+this is another line
+there's a <co id="callout1"/>callout in here.
+and there's another on the
+next line
+right here:<co id="callout2"/></programlisting>
+<calloutlist>
+<callout arearefs="callout1">
+<para>First callout.</para>
+<para>Second para in first callout.</para>
+</callout>
+<callout arearefs="callout2">
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Second callout.</para>
+<para>Third para in second callout.</para>
+</callout>
+<callout arearefs="callout1 callout2">
+<para>This paragraph describes <emphasis>both</emphasis> callouts.</para>
+</callout>
+</calloutlist>
+</chapter>
+</part>
+<part>
+<title>A Reference Part</title>
+<reference id="reference">
+<title>Reference</title>
+<refentry>
+<refmeta>
+<refentrytitle>RefEntryTitle</refentrytitle>
+</refmeta>
+<refnamediv>
+<refdescriptor>RefDescriptor</refdescriptor>
+<refname>RefName1</refname>
+<refname>RefName2</refname>
+<refpurpose>Yes, there must be a purpose!</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis>  A
+   Synopsis
+    Goes
+   Here</synopsis>
+</refsynopsisdiv>
+<refsect1>
+<title>A RefSect1</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<refsect2>
+<title>A RefSect2</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<refsect3>
+<title>A RefSect3</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<footnote>
+<para>This is a footnote in a refentry.</para>
+</footnote>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</refsect3>
+</refsect2>
+</refsect1>
+</refentry>
+<refentry>
+<refnamediv>
+<refname><function>Chop</function></refname>
+<refpurpose>strip trailing whitespace</refpurpose>
+</refnamediv>
+<refsect1>
+<title>Description</title>
+<para>     Returns the argument string without trailing whitespace.
+     <example>
+<title>chop() example</title>
+<programlisting>$trimmed = Chop($line);</programlisting>
+</example>
+    </para>
+</refsect1>
+</refentry>
+</reference>
+</part>
+<appendix id="appendix">
+<title>A Very Short Appendix</title>
+<para>Blah.</para>
+</appendix>
+<appendix>
+<title>A Very Long Appendix</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<sect1>
+<title>a sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<title>a sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<title>a sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<title>a sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<title>a sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1>
+<sect1info>
+<title>another sect1 title</title>
+<subtitle>a sect1 subtitle</subtitle>
+</sect1info>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<sect2info>
+<title>another sect2 title</title>
+<subtitle>a sect2 subtitle</subtitle>
+</sect2info>
+<title>another sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<sect3info>
+<title>another sect3 title</title>
+<subtitle>a sect3 subtitle</subtitle>
+</sect3info>
+<title>another sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<sect4info>
+<title>another sect4 title</title>
+<subtitle>a sect4 subtitle</subtitle>
+</sect4info>
+<title>another sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<sect5info>
+<title>another sect5 title</title>
+<subtitle>a sect5 subtitle</subtitle>
+</sect5info>
+<title>another sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+<sect1>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. 
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+</appendix>
+<bibliography id="bib1">
+<title>A Test Bibliography</title>
+<para>The stock stylesheet attempts to do a Bibliography.  It probably needs
+a lot of tweaking.  It probably doesn't conform to any specific style.</para>
+<bibliodiv>
+<title>Books</title>
+<biblioentry>
+<abbrev>AhoSethiUllman96</abbrev>
+<authorgroup>
+<author>
+<firstname>Alfred V.</firstname>
+<surname>Aho</surname>
+</author>
+<author>
+<firstname>Ravi</firstname>
+<surname>Sethi</surname>
+</author>
+<author>
+<firstname>Jeffrey D.</firstname>
+<surname>Ullman</surname>
+</author>
+</authorgroup>
+<title>Compilers, Principles, Techniques, and Tools</title>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+<copyright>
+<year>1996</year>
+<holder>Bell Telephone Laboratories, Inc.</holder>
+</copyright>
+<isbn>0-201-10088-6</isbn>
+<editor>
+<firstname>James T.</firstname>
+<surname>DeWolf</surname>
+</editor>
+<seriesinfo>
+<title>Computer Science</title>
+<editor>
+<firstname>Michael A.</firstname>
+<surname>Harrison</surname>
+</editor>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+</seriesinfo>
+</biblioentry>
+</bibliodiv>
+<bibliodiv>
+<title>Periodicals</title>
+<biblioentry id="walsh97">
+<abbrev>Walsh97</abbrev>
+<biblioset relation="article">
+<title>A Guide to XML</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<pubdate>1997</pubdate>
+<copyright>
+<year>1997</year>
+<holder>ArborText, Inc.</holder>
+</copyright>
+<pagenums>97-108</pagenums>
+</biblioset>
+<biblioset relation="journal">
+<title>XML: Principles, Tools, and Techniques</title>
+<publisher>
+<publishername>O'Reilly &amp; Associates, Inc.</publishername>
+</publisher>
+<issn>1085-2301</issn>
+<editor>
+<firstname>Dan</firstname>
+<surname>Connolly</surname>
+</editor>
+</biblioset>
+</biblioentry>
+<bibliomixed id="walsh96">  <bibliomset relation="article">    <surname>Walsh</surname>, <firstname>Norman</firstname>.
+    <title role="article">Introduction to Cascading Style Sheets</title>.
+  </bibliomset>
+  <bibliomset relation="journal">    <title>The World Wide Web Journal</title>.
+    <volumenum>2</volumenum>(<issuenum>1</issuenum>).
+    <publishername>O'Reilly &amp; Associates, Inc.</publishername> and
+    <corpname>The World Wide Web Consortium</corpname>.
+    <pubdate>Winter, 1996</pubdate></bibliomset>.</bibliomixed>
+<biblioentry>
+<abbrev>Abbrev</abbrev>
+<title>A Really Full BiblioEntry</title>
+<subtitle>Subtitle</subtitle>
+<abstract>
+<para>Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. 
+Abstract, abstract, abstract. Abstract, abstract, abstract. </para>
+</abstract>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+<artpagenums>ArtPageNums</artpagenums>
+<author>
+<firstname>AuthorFirstname</firstname>
+<surname>AuthorSurname</surname>
+</author>
+<authorblurb>
+<para>AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. 
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </para>
+</authorblurb>
+<authorinitials>AuthorInitials</authorinitials>
+<collab>
+<collabname>The names of some collaborators</collabname>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+</collab>
+<confgroup>
+<confdates>confdates</confdates>
+<conftitle>conftitle</conftitle>
+<confnum>confnum</confnum>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<confsponsor>confsponsor</confsponsor>
+</confgroup>
+<contractnum>ContractNum</contractnum>
+<contractsponsor>ContractSponsor</contractsponsor>
+<contrib>Contrib</contrib>
+<copyright>
+<year>1998</year>
+<holder>Copyright holder</holder>
+</copyright>
+<corpname>CorpName</corpname>
+<date>Date</date>
+<edition>Edition</edition>
+<editor>
+<firstname>EditorFirstName</firstname>
+<surname>EditorSurname</surname>
+</editor>
+<firstname>FirstName</firstname>
+<honorific>Honorific</honorific>
+<isbn>ISBN</isbn>
+<issn>ISSN</issn>
+<invpartnumber>InvPartNumber</invpartnumber>
+<issuenum>IssueNum</issuenum>
+<lineage>Lineage</lineage>
+<orgname>OrgName</orgname>
+<othercredit>
+<firstname>OCFirstName</firstname>
+<surname>OCSurname</surname>
+</othercredit>
+<othername>OtherName</othername>
+<pagenums>PageNums</pagenums>
+<printhistory>
+<para>PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</para>
+</printhistory>
+<productname>ProductName</productname>
+<productnumber>ProductNumber</productnumber>
+<pubdate>PubDate</pubdate>
+<publisher>
+<publishername>PubPublisherName</publishername>
+<address><street>Any Street</street>
+<city>Anywhere</city>, <state>XX</state> <postcode>99999</postcode>
+<country>USA</country></address>
+</publisher>
+<publishername>PublisherName</publishername>
+<pubsnumber>PubsNumber</pubsnumber>
+<releaseinfo>ReleaseInfo</releaseinfo>
+<revhistory>
+<revision>
+<revnumber>1.0</revnumber>
+<date>20 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.9</revnumber>
+<date>19 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.4</revnumber>
+<date>18 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+</revhistory>
+<seriesinfo>
+<title>SeriesInfo Title</title>
+<editor>
+<firstname>SeriesInfo Editor Firstname</firstname>
+<surname>SeriesInfo Editor Surname</surname>
+</editor>
+</seriesinfo>
+<seriesvolnums>SeriesVolNums</seriesvolnums>
+<surname>Surname</surname>
+<titleabbrev>TitleAbbrev</titleabbrev>
+<volumenum>VolumeNum</volumenum>
+</biblioentry>
+</bibliodiv>
+</bibliography>
+<glossary id="gloss">
+<title>Example Glossary</title>
+<para>This is not a real glossary, it's just an example.</para>
+<glossdiv>
+<title>E</title>
+<glossentry id="xml">
+<glossterm>Extensible Markup Language</glossterm>
+<acronym>XML</acronym>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="sgml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+<glossdiv>
+<title>S</title>
+<glossentry>
+<glossterm>SGML</glossterm>
+<glosssee otherterm="sgml"/>
+</glossentry>
+<glossentry id="sgml">
+<glossterm>Standard Generalized
+  Markup Language</glossterm>
+<acronym>SGML</acronym>
+<abbrev>ISO 8879:1986</abbrev>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="xml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+</glossary>
+<index id="index">
+<para>This is a test index.</para>
+<formalpara>
+<title>a formal para</title>
+<para>this is a formal paragraph.</para>
+</formalpara>
+<indexentry>
+<primaryie>Primary</primaryie>
+<secondaryie>Secondary 1</secondaryie>
+<tertiaryie>Tertiary 11</tertiaryie>
+<tertiaryie>Tertiary 12</tertiaryie>
+<secondaryie>Secondary 2</secondaryie>
+<tertiaryie>Tertiary 21</tertiaryie>
+</indexentry>
+<indexentry id="prim1">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry id="prim2">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary1</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary2</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<seeie linkend="prim2">see ie</seeie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+<seealsoie linkends="prim2 prim1">seealso ie</seealsoie>
+</indexentry>
+</index>
+<index><title>An Index with a Title</title>
+<indexdiv>
+<title>Symbols</title>
+<indexentry>
+<primaryie>!,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </primaryie>
+</indexentry>
+<indexentry>
+<primaryie>[,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>A</title>
+<indexentry>
+<primaryie>sect2-level,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>C</title>
+<indexentry>
+<primaryie>chap-level,
+    <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>
+  </primaryie>
+<secondaryie>sec
+  </secondaryie>
+<tertiaryie>tert,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </tertiaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>O</title>
+<indexentry>
+<primaryie>oft-repeated,
+    <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>,
+    <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+  </primaryie>
+<secondaryie>with id,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </secondaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>S</title>
+<indexentry>
+<primaryie>sect1-level,
+    <ulink url="c3.htm#aen10" role="aen10"><emphasis>Index Term Sect 1</emphasis></ulink>
+  </primaryie>
+<secondaryie>sec,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>sect1-other
+  </primaryie>
+<secondaryie>sec,
+    <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+  </secondaryie>
+</indexentry>
+</indexdiv>
+</index>
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/docbook.css
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/docbook.css	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/docbook.css	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+DIV.TITLEPAGE { text-align: center; }
+DIV.TITLEPAGE DIV.ABSTRACT { text-align: left; }

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/docbook40.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/docbook40.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/docbook40.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,128 @@
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+               "../dtd/4.0/docbookx.dtd">
+<book>
+<bookinfo>
+<title>DocBook V4.0 Example Document</title>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+<abstract>
+<para>This document demonstrates the new tags in DocBook V4.0.</para>
+<para>The focus of this document is to present examples of new elements,
+minor changes such as the addition of new attribute values are not
+included.</para>
+</abstract>
+</bookinfo>
+<chapter><title>Block-level Markup</title>
+<para>There's a new simple-alternative for <sgmltag>msgentry</sgmltag>:
+<sgmltag>simplemsgentry</sgmltag>.</para>
+<msgset>
+<simplemsgentry>
+<msgtext><para>The text of a message</para></msgtext>
+<msgexplan><para>An explanation of the message.</para></msgexplan>
+</simplemsgentry>
+<simplemsgentry>
+<msgtext><para>The text of a message</para></msgtext>
+<msgexplan><para>An explanation of the message.</para></msgexplan>
+</simplemsgentry>
+</msgset>
+
+<para>Longer descriptions are possible in a <sgmltag>revhistory</sgmltag>:
+</para>
+
+<para>
+<revhistory>
+<revision>
+<revnumber>2</revnumber>
+<date>today</date>
+<authorinitials>nwalsh</authorinitials>
+<revdescription>
+<para>Here are a few paragraphs of description:</para>
+<para>Did some stuff.</para>
+<para>Did some other stuff.</para>
+</revdescription>
+</revision>
+<revision>
+<revnumber>1</revnumber>
+<date>yesterday</date>
+<authorinitials>nwalsh</authorinitials>
+<revdescription>
+<para>Here are a few paragraphs of description:</para>
+<para>Did some stuff.</para>
+<para>Did some other stuff.</para>
+</revdescription>
+</revision>
+</revhistory>
+</para>
+
+<para>Ordered and itemized lists can have titles:</para>
+
+<itemizedlist><title>Itemized List</title>
+<listitem><para>First thing</para></listitem>
+<listitem><para>Second thing</para></listitem>
+<listitem><para>Third thing</para></listitem>
+</itemizedlist>
+
+<itemizedlist><title>Ordered List</title>
+<listitem><para>First thing</para></listitem>
+<listitem><para>Second thing</para></listitem>
+<listitem><para>Third thing</para></listitem>
+</itemizedlist>
+
+<para>Linespecific environments can indicate line numbering:</para>
+
+<programlisting linenumbering="numbered">
+&lt;!ENTITY % linespecific.attrib
+	"format		NOTATION
+			(linespecific)	'linespecific'
+         linenumbering	(numbered|unnumbered) 	#IMPLIED">
+</programlisting>
+
+<para>Added <sgmltag>classsynopsis</sgmltag> for documenting
+object-oriented programming language classes. Here's one example:</para>
+
+<classsynopsis language="java">
+  <ooclass><modifier>public</modifier>
+  <classname>TextFileWriter</classname></ooclass>
+  <ooclass><classname>HandlerBase</classname></ooclass>
+
+  <fieldsynopsis>
+    <modifier>private</modifier>
+    <type>Writer</type>
+    <varname>writer</varname>
+  </fieldsynopsis>
+
+  <fieldsynopsis>
+    <modifier>public</modifier>
+    <type>String</type>
+    <varname>writerName</varname>
+    <initializer>"MyWriter"</initializer>
+  </fieldsynopsis>
+
+  <methodsynopsis>
+    <modifier>static</modifier>
+    <modifier>public</modifier>
+    <void/>
+    <methodname>write</methodname>
+    <methodparam>
+       <type>ResultTreeFragment</type>
+       <parameter>frag</parameter>
+    </methodparam>
+    <methodparam>
+       <type>String</type>
+       <parameter>file</parameter>
+    </methodparam>
+    <exceptionname>SAXException</exceptionname>
+  </methodsynopsis>
+</classsynopsis>
+</chapter>
+
+<chapter><title>Inline markup</title>
+<para>The <sgmltag>sgmltag</sgmltag> element has new
+<sgmltag class="attribute">class</sgmltag> attribute values:
+<literal>xmlpi</literal> and
+<literal>emptytag</literal>. These produce
+<sgmltag class="xmlpi">processing instructions</sgmltag>
+and <sgmltag class="emptytag">empty-tag</sgmltag> markup
+suitable for XML.
+</para>
+</chapter>
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/emc2.gif
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/emc2.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/emc2.png
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/emc2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/external.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/external.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/external.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+               "../dtd/4.0/docbookx.dtd" [
+  <!ENTITY subdoc SYSTEM "subdoc.ent">
+]>
+
+<book lang="en">
+<title>Main document</title>
+
+<chapter id="main">
+<para>This references to: <link linkend="subdoc"/></para>
+</chapter>
+&subdoc;
+
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/figtest.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/figtest.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/figtest.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article 
+  PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN" 
+  "../dtd/simple/3.1.7.1/sdocbook.dtd">
+
+<!-- test document -->
+
+<article><title>Article Test Document Title</title>
+
+<para>
+This is a <quote>short quote</quote>.
+This is a <quote>Quotation with a <quote>nested quotation
+containing a <quote>nested quotation and another <quote>nested
+quotation</quote></quote></quote></quote>.
+</para>
+
+<figure id="testfig1"><title>Test Figure</title>
+<programlisting>This is a
+  ProgramListing
+</programlisting>
+</figure>
+
+<para>This para contains an xref to a figure: <xref linkend="testfig1"/>.
+</para>
+
+<figure id="testfig2"><title>Test Figure2</title>
+<programlisting>A Second
+  Test Figure
+</programlisting>
+</figure>
+
+<para>This para contains an <link linkend="testfig2">link</link> to a
+figure. And an xref:  <xref linkend="testfig2"/>.
+</para>
+
+<figure id="testfig3"><title>Test Figure</title>
+<programlisting>This is a
+  ProgramListing
+</programlisting>
+</figure>
+
+<para>This para contains an xref to a figure: <xref linkend="testfig3"/>.
+</para>
+
+</article>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/foottest.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/foottest.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/foottest.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article 
+  PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN" 
+  "../dtd/simple/3.1.7.1/sdocbook.dtd">
+
+<!-- test document -->
+
+<article><title>Article Test Document Title</title>
+<artheader>
+<title>Artheader Test Document Title</title>
+<authorgroup>
+<corpauthor>nwalsh</corpauthor>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+<othercredit><firstname>Other</firstname><surname>Credit</surname></othercredit>
+<editor><firstname>Someother</firstname><surname>Editor</surname></editor>
+<author><firstname>Someone</firstname><surname>Else</surname></author>
+</authorgroup>
+<pubdate>Apr. 26, 1999</pubdate>
+<copyright><year>1999</year><holder>Norman Walsh</holder></copyright>
+
+<abstract>
+<para>This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+This article is just a test. This article is just a test. 
+</para>
+</abstract>
+</artheader>
+
+<para>This is a footnote<footnote><para>See?</para></footnote>.</para>
+
+<informaltable>
+<tgroup cols="3">
+<tbody>
+<row><entry>entry</entry><entry>entry</entry><entry>entry</entry></row>
+<row><entry>entry<footnote><para>table cell footnote</para></footnote></entry>
+<entry>entry</entry><entry>entry</entry></row>
+<row><entry>entry</entry><entry>entry</entry><entry>entry</entry></row>
+<row>
+<entry>Nebbiolo, Bonarda<footnote role="tablenote" label="1" id="ch15tb1">
+<para>
+<emphasis>Blended wines, made from two or more grapes</emphasis>
+</para>
+</footnote>
+</entry>
+<entry/>
+<entry/>
+</row>
+<row>
+<entry>Sangiovese, Canaiolo, and others<footnoteref label="1"
+linkend="ch15tb1"></footnoteref>
+</entry>
+<entry/>
+<entry/>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+
+<appendix><title>Appendix</title>
+
+<para>This is just a test.</para>
+
+</appendix>
+</article>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/fotest.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/fotest.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/fotest.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd">
+
+<!-- test document -->
+
+<book><title>Book Test Document Title</title>
+<bookinfo>
+<title>Bookinfo Test Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+</authorgroup>
+</bookinfo>
+
+<preface><title>Foreword</title>
+<para>This is a test paragraph.</para>
+
+<table id="table">
+<title>A Table</title>
+<tgroup cols="2">
+<colspec colwidth="0.5in"/>
+<colspec colwidth="0.5in"/>
+<tbody>
+<row>
+<entry>1</entry>
+<entry>1</entry>
+</row>
+<row>
+<entry>2</entry>
+<entry>4</entry>
+</row>
+<row>
+<entry>3</entry>
+<entry>9</entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+
+
+</preface>
+
+<chapter>
+  <docinfo><title>First Chapter</title><subtitle>Chapter Subtitle</subtitle>
+  </docinfo><title>First Chapter</title>
+<para>This is a test paragraph.</para>
+</chapter>
+
+<appendix><title>First Appendix</title>
+<para>This is just a test.</para>
+</appendix>
+
+</book>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/func.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/func.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/func.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd">
+<chapter id="ch1">
+<title>test</title>
+
+<para>
+This is a <function>foo<parameter>x</parameter><parameter>y</parameter></function>. This is just a <parameter>x</parameter>.
+</para>
+
+<para>
+This is a <function>bar<parameter>x</parameter><function>y<parameter>z</parameter></function></function>. This is just a <parameter>x</parameter>.
+</para>
+
+<para>
+This is a <function>bar<parameter>x</parameter><replaceable>z</replaceable></function>. This is just a <parameter>x</parameter>.
+</para>
+
+<para>
+This is a just a function <function>bar</function>.
+</para>
+
+</chapter>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/gdp-handbook.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/gdp-handbook.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/gdp-handbook.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4448 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+    "../dtd/4.1.2/docbookx.dtd" [
+<!ENTITY version "1.0.53">
+<!ENTITY mdash  "--">
+<!ENTITY hellip "...">
+        <!-- replace version above with actual application version number-->
+	<!--  Template Version: 1.0.1  (do not remove this line) -->
+
+
+
+<!ENTITY APPLET-TEMPLATE-1x-SHELL SYSTEM
+"templates/applet_template_1-applet.sgml.cdata">
+<!ENTITY APPLET-TEMPLATE-1x SYSTEM
+"templates/applet_template_1.sgml.cdata">
+]>
+
+<!--  Version: 1.0.1  -->
+
+<article id="index">
+  <articleinfo>
+
+    <authorgroup>
+
+      <author>
+        <firstname>David</firstname>
+        <surname>Mason</surname>
+        <affiliation>
+          <orgname>Red Hat, Inc.</orgname>
+          <address>
+            <email>dcm at redhat.com</email>
+          </address>
+        </affiliation>
+      </author>
+
+      <author>
+        <firstname>Daniel</firstname>
+        <surname>Mueth</surname>
+        <affiliation>
+          <address>
+            <email>d-mueth at uchicago.edu</email>
+          </address>
+        </affiliation>
+      </author>
+
+      <author>
+        <firstname>Alexander</firstname>
+        <surname>Kirillov</surname>
+        <affiliation>
+          <address>
+            <email>kirillov at math.sunysb.edu</email>
+          </address>
+        </affiliation>
+      </author>
+
+    </authorgroup>
+
+    <releaseinfo>
+      This is a pre-release!
+    </releaseinfo>
+    
+    <revhistory>
+      <revision>
+        <revnumber>
+          0.99
+        </revnumber>
+        <date>
+         04.10.2000
+        </date>
+      </revision>
+    </revhistory>
+    
+    <copyright>
+      <year>2000</year>
+      <holder>Red Hat, Inc., Daniel Mueth, and Alexander Kirillov</holder>
+    </copyright>
+
+    <legalnotice>
+     <para>
+      Permission is granted to copy, distribute and/or modify this
+      document under the terms of the <citetitle>GNU Free Documentation
+      License</citetitle>, Version 1.1 or any later version published
+      by the Free Software Foundation with no Invariant Sections, no
+      Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy
+      of the <citetitle>GNU Free Documentation License</citetitle> from
+      the Free Software Foundation by visiting <ulink type="http"
+      url="http://www.fsf.org">their Web site</ulink> or by writing to:
+      Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+      Boston, MA 02111-1307, USA.
+     </para>
+     <para>
+      Many of the names used by companies to distinguish their products and
+      services are claimed as trademarks. Where those names appear in any
+      GNOME documentation, and those trademarks are made aware to the members
+      of the GNOME Documentation Project, the names have been printed in caps
+      or initial caps.
+     </para>
+    </legalnotice>
+
+    <title>The GNOME Handbook of Writing Software Documentation</title>
+
+  </articleinfo>
+  
+  <!-- ################# Introduction ############### -->
+
+  <sect1 id="intro">
+    <title>Introduction</title>
+
+    <!-- ####### Introduction | The GNOME Documentation Project ####### -->
+
+    <sect2 id="gdp">
+      <title>The GNOME Documentation Project</title>
+
+      <sect3 id="goals">
+        <title>Goals</title>
+        <para>
+          The GNOME Documentation Project (GDP) aims to provide GNOME
+          and GNOME applications with a complete, intuitive, and clear
+          documentation system.  At the center of the GDP is the
+          <application>GNOME Help Browser</application>, which
+          presents a unified interface to GNOME-specific documentation
+          as well as other Linux documentation such as man pages and
+          texinfo documents. The GNOME Help System provides a
+          comprehensive view of documentation on a machine by
+          dynamically assembling the documentation of GNOME
+          applications and components which are installed. The GDP is
+          responsible for writing numerous GNOME-related documents,
+          both for developers and for users.  Developer documentation
+          includes <ulink url="http://developer.gnome.org/doc/API/"
+          type="http">APIs for the GNOME libraries</ulink>, <ulink
+          url="http://developer.gnome.org/doc/whitepapers/"
+          type="http"><citetitle>GNOME White
+          Papers</citetitle></ulink>, GNOME developer <ulink
+          url="http://developer.gnome.org/doc/tutorials/"
+          type="http">tutorials</ulink>, the <ulink
+          url="http://developer.gnome.org/doc/FAQ/"
+          type="http"><citetitle>GNOME Developer
+          FAQ</citetitle></ulink>, the <ulink
+          url="http://developer.gnome.org" type="http">GNOME
+          Developer's Website</ulink>, and <citetitle>GNOME
+          Handbook</citetitle>'s, such as the one you are reading.
+          User documentation include the <ulink
+          url="http://www.gnome.org/learn/"
+          type="http"><citetitle>GNOME User's
+          Guide</citetitle></ulink>, the <ulink
+          url="http://www.gnome.org/learn/"
+          type="http"><citetitle>GNOME FAQ</citetitle></ulink>, and
+          GNOME application documentation.  Most GNOME applications
+          have their own manual in addition to context sensitive help.
+        </para>
+      </sect3>
+
+      <sect3 id="joining">
+       <title>Joining the GDP</title>
+       <para>
+         Documenting GNOME and all the numerous GNOME applications is
+         a very large project.  The GDP is always looking for people
+         to help write, update, and edit documentation.  If you are
+         interested in joining the GDP team, you should join the
+         <ulink url="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+         <citetitle>gnome-doc-list mailing list</citetitle> </ulink>.
+         Read <xref linkend="gettingstarted" />, for help selecting a
+         project to work on.  Feel free to introduce yourself on the
+         gnome-doc-list mailing list and indicate which project you
+         intend to work on, or else ask for suggestions of important
+         documents which need work done. You may also want to join the
+         #docs IRC channel on irc.gnome.org to meet other GDP members
+         and discuss any questions you may have.  For a list of GDP
+         projects and members, see the
+         <ulink url="http://developer.gnome.org/projects/gdp">
+           <citetitle>GDP Website</citetitle></ulink>.
+       </para>
+      </sect3>
+
+      <sect3 id="collaborating">
+       <title>Collaborating with the GDP</title>
+       <para>
+        GNOME developers, packagers, and translators may not be
+        writing GNOME documentation but will want to understand how
+        the GNOME documentation system works and will need to
+        collaborate with GDP members.  This document should help to
+        outline the structure of how the GNOME documentation system
+        works.  Developers who do not write the documentation for
+        their applications are encouraged to find a GDP member to
+        write the documentation.  This is best done by sending an
+        email to the <ulink
+        url="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+        <citetitle>gnome-doc-list mailing list</citetitle> </ulink>
+        describing the application, where it can be downloaded from,
+        and that the developer(s) would like a GDP member to write
+        documentation for the application. The #docs IRC channel on
+        irc.gnome.org is another option for contacting GDP members.
+       </para>
+      </sect3>
+    </sect2>
+
+    <!-- ####### Introduction | Notation and Conventions  ####### -->
+
+    <sect2 id="notation">
+      <title>Notation and Conventions</title>
+      <para>
+        This Handbook uses the following notation:
+        <informaltable frame="none">
+          <tgroup cols="2">
+            <tbody>
+              <row>
+                <entry>
+                  <filename class="directory">/usr/bin</filename>
+                </entry>
+                <entry>
+                  Directory
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  <filename>foo.sgml</filename>
+                </entry>
+                <entry>
+                  Filename
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  <command>command</command>
+                </entry>
+                <entry>
+                  Command or text that would be typed.
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  <command><replaceable>replaceable</replaceable></command>
+                </entry>
+                <entry>
+                  "Variable" text that can be replaced.
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  <literal>Program or Doc Code</literal>
+                </entry>
+                <entry>Program or document code</entry>
+              </row>
+            </tbody>
+          </tgroup>
+        </informaltable>
+      </para>
+    </sect2>
+
+    <!-- ####### Introduction | About This Handbook  ####### -->
+
+    <sect2 id="about">
+      <title>About This Handbook</title>
+      <para>
+       This Handbook is a guide for both writing documentation for
+       GNOME components and applications and for properly binding and
+       packaging documentation into GNOME applications.
+      </para>
+      <para>
+       This Handbook, like all GNOME documentation, was written in
+       DocBook(SGML) and is available in several formats including
+       SGML, HTML, PostScript, and PDF.  For the latest version, see
+       <ulink
+       url="http://developer.gnome.org/projects/gdp/handbook.html"> 
+       <citetitle>Getting The GNOME Handbook of Writing Software
+       Documentation</citetitle> </ulink>.  Alternately, one may
+       download it anonymously from GNOME CVS under <filename
+       class="directory">gnome-docu/gdp</filename>.
+      </para>
+    </sect2>
+  </sect1>
+
+<!-- ################# Getting Started  ############### -->
+
+  <sect1 id="gettingstarted">
+    <title>Getting Started Writing GNOME Documentation</title>
+
+<!--####### Getting Started | Selecting A Document ####### -->
+
+    <sect2 id="selecting">
+      <title>Selecting A Document</title>
+    
+      <sect3 id="know">
+        <title>Document Something You Know</title>
+        <para>
+          The most frequently asked question of new contributors who
+          join the GDP is "which document should I start
+          with?". Because most people involved are volunteers, we do
+          not <emphasis>assign</emphasis> projects and applications to
+          write documents for. The first step is all yours - you must
+          decide what about GNOME interests you most and find out if
+          it has complete documents or not.
+        </para>
+        <para>
+          It is also important to spend some time with GNOME to make
+          sure you are familiar enough with it to be
+          <emphasis>authoritative</emphasis>  in your writing. The
+          best way to do this is to just sit down and play with GNOME
+          as much as possible before starting to write.
+        </para>
+        <para>
+          The easiest way to get started is to improve existing
+          documentation. If you notice some inaccuracies or omissions
+          in the documentation, or you think that you can explain the
+          material more clearly, just send your suggestions to the
+          author of the original documentation or to the GNOME
+          documentation project at <email>docs at gnome.org</email>.
+        </para>
+      </sect3>
+      
+      <sect3 id="doctable">
+        <title>The GNOME Documentation Status Table</title>
+        <para>
+          The <citetitle>GDP Documentation Status Table</citetitle>
+          (<citetitle>DocTable</citetitle>) (<ulink
+          url="http://www.gnome.org/gdp/doctable/"
+          type="http">http://www.gnome.org/gdp/doctable/</ulink>) is a
+          web page which tracks the status of all the various
+          documentation components of GNOME.  These components include
+          application documentation, internal GNOME component
+          documentation, user documentation, and developer
+          documentation.  For each documentation item, it tracks the
+          current status of the documentation, who is working on the
+          particular document, where the documentation can be found,
+          and provides a forum for the discussion of each item.
+        </para>
+        <para>
+          You should use the <citetitle>DocTable</citetitle> to help
+          you select a documentation item which needs work done.  Once
+          you have selected an item to work on, please register
+          yourself as an author so that other authors do not duplicate
+          your work and may contact you to help or offer suggestions.
+          Also be sure to keep the status icons up-to-date  so that
+          the GDP team can easily identify which items need additional
+          help.  The <citetitle>DocTable</citetitle> also allows
+          people to make announcements and suggestions and to discuss
+          issues in the comments section.
+        </para>
+        <note>
+         <title>Note</title>
+         <para>
+          Note that the information in the
+          <citetitle>DocTable</citetitle> may not always be up-to-date
+          or accurate.  When you assign yourself to documenting an
+          application, make sure you find out the latest status of
+          documentation by contacting the application author.  
+         </para>
+        </note>
+      </sect3>
+    </sect2>
+
+<!-- ####### Getting Started | Installing And Using DocBook ####### -->
+
+    <sect2 id="docbook">
+      <title>Installing and Using DocBook</title>
+      <para>
+        All documentation for the GNOME project is written in SGML
+        using the DocBook DTD. There are many advantages to using
+        this for documentation, not least of which is the single
+        source nature of SGML. To contribute to the GDP you should
+        learn to use DocBook.
+      </para>
+      <note>
+        <title>NOTE</title>
+        <para>
+          To get started writing for the GDP you do not need to rush
+          out and learn DocBook - if you feel it is too much to handle
+          for now, you can submit plain ASCII text to the <ulink
+          url="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+          <citetitle>gnome-doc-list mailing list</citetitle>
+          </ulink>and a volunteer will mark it up for you. Seeing your
+          document marked up will also be a great way for you to start
+          learning DocBook.
+        </para>
+      </note>
+      <sect3 id="installingdocbook">
+        <title>Installing DocBook</title>
+        <para>
+          Download and install the following <ulink
+          url="ftp://sourceware.cygnus.com:/pub/docbook-tools/"
+          type="ftp">DocBook Tools packages</ulink>: jade, docbook,
+          jadetex, sgml-common, and stylesheets. (RPM users should note
+          that jade is platform dependent (eg. i386), while the other packages
+          are in the <filename class="directory">noarch</filename>
+          directory.) You can find more 
+          information on DocBook Tools <ulink url="
+          http://sourceware.cygnus.com/docbook-tools/"
+          type="http">here</ulink>.
+        </para>
+        <para>
+          If you are an <application>Emacs</application> user you may
+          want to grab the psgml package as well. This is a major mode
+          for editing sgml files in <application>Emacs</application>.
+        </para>
+      </sect3>
+      
+      <sect3 id="gdpstylesheets">
+        <title>GDP Stylesheets</title>
+        <para>
+          The GDP uses its own DocBook stylesheets.  To use the GDP
+          stylesheets, you should download the file
+          <filename>gdp-both.dsl</filename> from the <filename
+          class="directory">gnome-docu/gdp/dsssl</filename> module in
+          CVS (or from <ulink
+          url="http://developer.gnome.org/projects/gdp/stylesheets.html">
+          GDP Custom DSSSL Stylesheet</ulink>)and copy it
+<!--      into <filename
+          class="directory">/usr/lib/sgml/stylesheets</filename>. You
+          will need to point DocBook Tools to this stylesheet with the
+          <command><option>-d</option></command> option:
+          <command>db2html -d /usr/lib/sgml/stylesheets/gdp-both.dsl
+          <replaceable>foo.sgml</replaceable></command>. (Creating an
+          alias to include this option and path is convenient.)
+          Alternately, you could overwrite
+          <filename>/usr/lib/sgml/stylesheets/cygnus-both.dsl</filename>
+          with <filename>gdp-both.dsl</filename>.
+-->
+          over the file
+          <filename>/usr/lib/sgml/stylesheets/cygnus-both.dsl</filename>.
+          Alternately, you can download and install the
+          <ulink url="http://people.redhat.com/dcm/software.html"
+          type="http">gnome-doc-tools package</ulink> which will set
+          up the stylesheets as well as the DTD discussed below.
+        </para>
+
+<!--        <note>
+          <para>
+            The current version of the DocBook Tools command
+            <command>db2ps</command> does not have a
+            <command><option>-d</option></command> option. In order to
+            create PostScript output, you must overwrite
+            <filename>/usr/lib/sgml/stylesheets/cygnus-both.dsl</filename>
+            with <filename>gdp-both.dsl</filename>.
+          </para>
+        </note>
+-->
+      </sect3>
+      
+      <sect3 id="gdpdtd">
+        <title>GDP DTD (PNG Image Support)</title>
+        <para>
+          Due to some license issues involved with the creation of
+          gifs, the GNOME Documentation Project has decided to use the
+          PNG image format for all images in GNOME documentation. You
+          can read more about the issues involved with gifs at <ulink
+          url="http://www.gnu.org/philosophy/gif.html"
+          type="http">http://www.gnu.org/philosophy/gif.html</ulink>.
+        </para>
+        <para>
+          The current DocBook DTD(3.1) does not include support for
+          embedding PNG images in your documents.  Since the GDP uses
+          many screenshots in its documentation, we use our own
+          variation on the DocBook DTD which has PNG image support.
+          We encourage everybody to use this DTD instead of the
+          default DocBook DTD since your source document header and
+          your output document appearance subtly vary between the two
+          DTD's.  To install the GDP custom DTD with PNG image support
+          by hand:
+        </para>
+        <itemizedlist mark="opencircle">
+          <listitem>
+            <para>
+              Download <ulink
+              url="http://www.labs.redhat.com/png/png-support.html">the
+              GDP DocBook DTD for PNG support</ulink> and install it
+              where you keep your DTD's. (On Red Hat use <filename
+              class="directory">/usr/lib/sgml/</filename>.) Note that
+              the 3.0 DTD is missing support for the
+              <sgmltag>&lt;legalnotice></sgmltag> tag, so it is
+              recommended that you use version 3.1
+            </para>
+          </listitem>
+          <listitem override="bullet">
+            <para>
+              Add the new DTD to your SGML CATALOG file.  The location
+              of your SGML CATALOG file may vary depending upon your
+              distribution. (On Red Hat it is usually in
+              /usr/lib/sgml/CATALOG.) Add the following line to this
+              file:
+              <programlisting>
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.0//EN" "png-support-3.0.dtd"
+              </programlisting> 
+              If you are using the 3.1 DTD, use:
+              <programlisting>
+PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN" "png-support-3.1.dtd"
+              </programlisting> 
+            </para>
+          </listitem>
+        </itemizedlist>
+        <para>
+          Alternately, you can download and install the
+          <ulink url="http://people.redhat.com/dcm/software.html"
+          type="http">gnome-doc-tools package</ulink> which will set
+          up the custom stylesheets and DTD for you.
+        </para>
+        <para>
+          To include PNG files in your documents, you will need to
+          indicate that you are using this special DTD.  To do
+          this, use the following headers:
+        </para>
+        <para>
+          Articles:
+          <programlisting>
+<![CDATA[<!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]>]]>
+          </programlisting>
+        </para>
+        <para>
+          Books:
+          <programlisting>
+<![CDATA[<!DOCTYPE Book PUBLIC "-//GNOME//DTD DocBook PNG Variant
+V1.1//EN"[]>]]>
+          </programlisting>
+        </para>
+
+      </sect3>
+      
+      <sect3 id="editors">
+        <title>Editors</title>
+        <para>
+          There are many editors on Linux and UNIX systems available
+          to you. Which editor you use to work on the sgml documents
+          is completely up to you, as long as the editor is able to
+          preserve sgml and produce the source in a format that is
+          readable by everyone.
+        </para>
+        <para>
+          Probably the two most popular editors available are
+          <application>Emacs</application> and
+          <application>vi</application>. These and other editors are
+          used regularly by members of the GDP. Emacs has a major
+          mode, psgml, for editing sgml files which can save you time
+          and effort in adding and closing tags. You will find the
+          psgml package in DocBook Tools, which is the standard set of
+          tools for the GDP. You may find out more about DocBook Tools
+          in <xref linkend="installingdocbook" />.
+        </para>
+      </sect3>
+      
+      <sect3 id="make-output">
+        <title>Creating Something Useful with your Docs</title>
+        <para>
+          The tools available in DocBook Tools allow you to convert
+          your sgml document to many different formats including html
+          and Postscript. The primary tool used to do the conversion
+          is an application called <application>Jade</application>. In
+          most cases you will not have to work directly with
+          <application>Jade</application>; Instead,  you will use the
+          scripts provided by DocBook Tools.
+        </para>
+        <para>
+          To preview your DocBook document, it is easiest to convert
+          it to <filename>html</filename>. If you have installed the
+          DocBook tools described above, all you have to do is to run
+          the command <prompt>$</prompt><command>db2html
+          mydocument.sgml</command>. If there are no sgml syntax
+          errors, this will create a directory <filename
+          class="directory">mydocument</filename> and place the
+          resulting html files in it. The title page of the document
+          will typically be
+          <filename>mydocument/index.html</filename>.  If you have
+          screenshots in your document, you will have to copy these
+          files into the <filename
+          class="directory">mydocument</filename> directory by
+          hand. You can use any web browser to view your document.
+          Note that every time you run <command>db2html</command>, it
+          creates the <filename
+          class="directory">mydocument</filename> directory over, so
+          you will have to copy the screenshots over each time.
+        </para>
+        <para>
+          You can also convert your document to PostScript by running
+          the command <prompt>$</prompt><command>db2ps
+          mydocument.sgml</command>, after which you can print out or
+          view the resulting .ps file.  
+        </para>
+        <note>
+          <title>NOTE</title>
+          <para>
+            The html files you get will not look quite the same as the
+            documentation distributed with GNOME unless you have the
+            custom stylesheets installed on your machine. DocBook
+            Tools' default stylesheets will produce a different look
+            to your docs. You can read more about the GDP stylesheets
+            in <xref linkend="gdpstylesheets" />.
+          </para>
+        </note>
+      </sect3>
+      
+      <sect3 id="jadeimages">
+        <title>Images in DocBook Tools</title>
+        <para>
+          If your document uses images you will need to take note of a
+          few things that should take place in order for you to make
+          use of those images in your output.
+        </para>
+        <para>
+          The DocBook Tools scripts and applications are smart enough
+          to know that when you are creating html you will be using
+          PNG files and when you are creating Postscript you will be
+          using EPS files (you must use EPS with Postscript).
+        </para>
+        <para>
+          Thus, you should never explicitly
+          include the extension of the image file, since DocBook
+          Tools will automatically insert it for you. For example:
+        </para>
+        <programlisting>
+<![CDATA[
+<figure>
+ <title>My Image</title>
+ <screenshot>
+  <screeninfo>Sample GNOME Display</screeninfo>
+  <graphic  format="png" fileref="myfile" srccredit="me">
+  </graphic>
+ </screenshot>
+</figure>
+]]>     </programlisting>
+        <para>
+          You will notice in this example that the file
+          <filename>myfile.png</filename> was referred to as simply
+          <filename>myfile</filename>. Now when you run
+          <command>db2html</command> to create an html file, it will
+          automatically look for <filename>myfile.png</filename> in
+          the directory.
+        </para>
+        <para>
+          If you want to create PostScript ouput, you will need to create an
+          EPS version of your image file to be displayed in the
+          PostScript file. There is a simple script available which
+          allows you to change a PNG image into an EPS file
+          easily. You can download this file - img2eps - from <ulink
+          url="http://people.redhat.com/dcm/sgml.html"
+          type="html">http://people.redhat.com/dcm/sgml.html</ulink>
+          (look for the img2eps section).  Note that this script is
+          included in the gnome-doc-tools package, so if you are using
+          this package, you should already have
+          <command>img2eps</command> on you system.
+        </para>
+      </sect3>
+      
+      <sect3 id="moredocbookinfo">
+        <title>Learning DocBook</title>
+        <para>
+          There are many resources available to help you learn DocBook.
+          The following resources on the web are useful for learning
+          DocBook:
+        </para>
+        <itemizedlist mark="bullet">
+          <listitem>
+            <para>
+              <ulink url="http://www.docbook.org"
+              type="http">http://www.docbook.org</ulink>  - Norman
+              Walsh's <citetitle>DocBook: The Definitive
+              Guide</citetitle>.  Online O'Reilly book on using
+              DocBook. Contains an excellent element reference. May be
+              too formal for a beginner.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <ulink
+              url="http://www.oswg.org/oswg-nightly/oswg/en_US.ISO_8859-1/articles/DocBook-Intro/docbook-intro/index.html"
+              type="http">A Practical Introduction to DocBook</ulink>
+              - The Open Source Writers Group's introduction to using
+              DocBook. This is an excellent HOW-TO type article on
+              getting started.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <ulink
+              url="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro/docbook-intro.html"
+              type="http">Getting Going with DocBook: Notes for
+              Hackers</ulink> - Mark Galassi's introduction to DocBook
+              for hackers. This has to be one of the first
+              introductions to DocBook ever - still as good as it ever
+              was.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <ulink type="http" url="http://www.freebsd.org/tutorials/docproj-primer/">
+              FreeBSD Documentation Project Primer for New
+              Contributors</ulink> - FreeBSD documentation project
+              primer. Chapter 4.2 provides a very good introduction to
+              writing documentation using DocBook. Note that it also
+              describes some custom extensions of DocBook;
+              fortunately, they are clearly marked as such.
+            </para>
+          </listitem>
+        </itemizedlist>
+        <para>
+          Norman Walsh's book is also available in print.
+        </para>
+        <para>
+          The following sections of this document are designed to help
+          documentation authors write correct and consistent DocBook:
+        </para>
+        <itemizedlist mark="bullet">
+          <listitem>
+            <para>
+              <xref linkend="docbookbasics" /> - Descriptions of
+              commonly used DocBook tags.
+            </para>
+          </listitem>
+        </itemizedlist>
+        <para>
+          You may also discuss specific DocBook questions with GDP
+          members on the #docs IRC channel at irc.gnome.org and on the
+          gnome-doc-list mailing list.
+        </para>
+      </sect3>
+    </sect2>
+   
+<!-- ####### Getting Started | GDP Document Examples ####### -->
+<!--
+    <sect2 id="examples">
+      <title>GDP Document Examples</title>
+      <para>
+        Examples of various types of GNOME documents are found in
+        <xref linkend="examples" />.  There is also an example GNOME
+        application with documentation called
+        <application>gnome-hello</application> in GNOME cvs.
+      </para>
+    </sect2>
+-->
+<!-- ####### Getting Started | GDP Document Templates ####### -->
+
+    <sect2 id="gdptemplates">
+      <title>GDP Document Templates</title>
+      <para>
+        Templates for various types of GNOME documents are found in
+        <xref linkend="templates" />.  They are kept in CVS in
+        gnome-docu/gdp/templates. The easiest source to get them from
+        is probably the <ulink
+        url="http://developer.gnome.org/projects/gdp/templates.html" 
+        type="http">GDP
+        Document Templates</ulink> web page, which is typically kept
+        completely up-to-date with CVS and has a basic description of
+        each file from CVS.
+      </para>
+    </sect2>
+
+<!-- ####### Getting Started | Screenshots ####### -->
+
+    <sect2 id="screenshots">
+      <title>Screenshots</title>
+      <para>
+        Most GNOME documents will have screenshots of the particular
+        applet, application, GNOME component, or widget being
+        discussed.  As discussed above in <xref linkend="gdpdtd"/> you
+        will need to install the special GDP DocBook DTD which
+        supports PNG images, the format used for all images in GNOME
+        documentation. For the basic DocBook structure used to insert
+        images in a document, see <xref linkend="jadeimages"/> above.
+      </para>
+      <sect3 id="screenshotappearance">
+        <title>Screenshot Appearance</title>
+        <para>
+          For all screenshots of windows that typically have border
+          decorations (e.g. applications and dialogs, but not applets
+          in a <interface>panel</interface>), GDP standards dictate
+          the appearance of the window.  (This is to minimize possible
+          confusion to the reader, improve the appearance of GNOME
+          documents, and guarantee the screenshot is readable when
+          printed.) All screenshots should be taken with the SawFish
+          (formerly known as Sawmill) window manager using the
+          MicroGui theme and Helvetica 12pt font. (A different window
+          manager can be used provided the MicroGui theme is available
+          for this window manager and the appearance is identical to
+          that when using the SawFish window manager.) The default
+          GTK+ theme(gtk) and font (Helvetica 12 pt) should be used
+          for all screenshots.  If you are unable to provide
+          screenshots in this form, you should create screenshots as
+          you wish them to appear and send them to the
+          <ulink url="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+          <citetitle>gnome-doc-list mailing list</citetitle> </ulink>
+          requesting a GDP member reproduce these screenshots in the
+          correct format and email them to you.
+        </para>
+      </sect3>
+      <sect3 id="screenshottools">
+        <title>Screenshot Tools</title>
+        <para>
+          There are many tools for taking screenshots in
+          GNOME/Linux. Perhaps the most convenient is the
+          <application>Screen-Shooter Applet</application>. Just click
+          on the window icon in the applet and then on the window you
+          would like to take a screenshot of. (Note that
+          at the time of this writing, PNG images taken by
+          screenshooter do not appear properly in
+          <application>Netscape</application> or the
+          <application>GNOME Help Browser</application>.  You
+          should save your screenshot as a GIF and
+          then use <command>convert filename.gif
+          filename.png</command>.) For applets
+          in a <interface>Panel</interface>,
+          <application>xv</application> can be used to crop the
+          screenshot to only include the relevant portion of the
+          <interface>Panel</interface>. Note that
+          <application>xv</application> and 
+          <application>gimp</application> can both be used for taking
+          screenshots, cropping screenshots, and converting image
+          formats. 
+        </para>
+      </sect3>
+      <sect3 id="screenshotfiles">
+        <title>Screenshot Files</title>
+        <para>
+          Screenshots should be kept in the main documentation
+          directory with your SGML file for applets, or should be
+          kept in a directory called "figs" for application and other
+          documentation.  After you use <command>db2html</command> to
+          convert your SGML file to HTML (see <xref
+          linkend="make-output"/>), you will need to copy your
+          screenshots (either the individual PNG files for applet
+          documentation, or the whole "figs" directory for other
+          documentation) into the newly created HTML directory.  Note
+          that every time you use <command>db2html</command> the HTML
+          directory is erased and rewritten, so do not store your only
+          copy of the screenshots in that directory.  If you wish to
+          create PostScript or PDF output, you will need to manually
+          convert the PNG images to EPS as described in <xref
+          linkend="jadeimages"/>, but will not need to copy these
+          images from their default location, as they are included
+          directly into the output(PostScript of PDF) file.
+        </para>
+      </sect3>
+    </sect2>
+
+
+<!-- ####### Getting Started | Application Bugs ####### -->
+
+    <sect2 id="applicationbugs">
+      <title>Application Bugs</title>
+      <para>
+        Documentation authors tend to investigate and test applets and
+        applications more thoroughly than most 
+        users.  Often documentation authors will discover one or
+        more bugs in the software.  These bugs vary from small ones,
+        such as mis-spelled words or missing
+        <interface>About</interface> dialogs in the menu, to large
+        ones which cause the applet to crash.  As all users, you
+        should be sure to report these bugs so that application
+        developers know of them and can fix them.  The easiest way to
+        submit a bug report is by using the <application>Bug
+        Buddy</application> applet which is part of the gnome-applets
+        package.  
+      </para>
+    </sect2>
+
+
+<!-- ####### Getting Started | Using CVS  ####### -->
+
+    <sect2 id="cvs">
+      <title>Using CVS</title>
+      <para>
+        CVS (Concurrent Versions System) is a tool that allows
+        multiple developers to concurrently work on a set of
+        documents, keeping track of the modifications made by each
+        person.  The files are stored on a server and each developer
+        checks files out, modifies them, and then checks in their
+        modified version of the files.  Many GNOME programs and
+        documents are stored in CVS.  The GNOME CVS server allows
+        users to anonymously check out CVS files. Most GDP members
+        will need to use anonymous CVS to download the most up-to-date
+        version of documentation or programs.  Modified documents will
+        typically be emailed to the the application developer. Core
+        GDP members may also be granted login CVS privileges so they
+        may commit modified files directly to CVS.
+      </para>
+
+      <sect3 id="anonymouscvs">
+        <title>Anonymous CVS</title>
+        <para>
+          To anonymously check out documents from CVS, you must first
+          log in.  From the bash shell, you should set your CVSROOT
+          shell variable with <command>  export
+          CVSROOT=':pserver:anonymous at anoncvs.gnome.org:/cvs/gnome'</command>
+          and then login with <command>cvs login</command>(there is no
+          password, just hit return). As an example, we will use the
+          "gnome-docu/gdp" module which contains this and several
+          other documents. To check these documents out for the first
+          time, type <command>cvs -z3 checkout
+          gnome-docu/gdp</command>. After you have this document
+          checked out and you would like to download any updates on
+          the CVS server, use <command>cvs -z3 update -Pd</command>.
+        </para>
+      </sect3>
+
+      <sect3 id="logincvs">
+        <title>Login CVS</title>  <para>  If you have been given a
+        login for the GNOME CVS server,  you may commit your file
+        modifications to CVS.  Be sure to read the following section
+        on CVS etiquette before making any commits to CVS.  To log in
+        to the CVS server as user
+        <command><replaceable>username</replaceable></command> with a
+        password, you must first set your CVSROOT shell variable with
+        <command> export
+        CVSROOT=':pserver:<replaceable>username</replaceable>@cvs.gnome.org:/cvs/gnome'</command>.
+        Log in with <command>cvs login</command> and enter your
+        password. You may check out and update modules as described
+        above for anonymous CVS access.  As a login CVS user, you may
+        also check modified versions of a file into the CVS server.
+        To check
+        <command><replaceable>filename</replaceable></command> into
+        the CVS server, type <command>cvs -z3 commit
+        <replaceable>filename</replaceable></command>. You will be
+        given a vi editor window to type in a brief log entry,
+        summarizing your changes.  The default editor can be changed
+        using the <varname>EDITOR</varname> environment variable or
+        with the <command><option>-e</option></command> option. You
+        may also check in any modifications to files in the working
+        directory and subdirectories using <command>cvs -z3
+        commit</command>.  To
+        add a new file to the CVS server, use <command>cvs -z3 add
+        <replaceable>filename</replaceable></command>, followed by the
+        commit command.
+        </para>
+      </sect3>
+
+      <sect3 id="cvsetiquette">
+        <title>CVS Etiquette</title>
+        <para>
+          Because files in CVS are typically used and modified by
+          multiple developers and documentation authors, users should
+          exercise a few simple practices out of courtesy towards the
+          other CVS users and the project leader.  First, you should
+          not make CVS commits to a package without first discussing
+          your plans with the project leader.  This way, the project
+          leader knows who is modifying the files and generally, what
+          sort of changes/development is being done.  Also, whenever a
+          CVS user commits a file to CVS, they should make an entry in
+          the CVS log and in the <filename>ChangeLog</filename> so
+          that other users know who is making modifications and what
+          is being modified.  When modifying files created by others,
+          you should follow the indentation scheme used by the initial
+          author.
+        </para>
+      </sect3>
+    </sect2>
+  </sect1>
+  
+<!-- ################# The GNOME Documentation System###############
+-->
+
+  <sect1 id="gnomedocsystem">
+    <title>The GNOME Documentation System</title>
+
+<!-- ####### The GNOME Documentation System | The GNOME Help Browser
+####### -->
+    
+    <sect2 id="gnomehelpbrowser">
+      <title>The GNOME Help Browser</title>
+      <para>
+        At the core of the GNOME help system is the <application>GNOME
+        Help Browser</application>. The <application>Help
+        Browser</application> provides a unified interface to several
+        distinct documentation systems on Linux/Unix systems: man
+        pages, texinfo pages, Linux Documentation Project(LDP)
+        documents, GNOME application documentation, and other GNOME
+        documents.
+      </para>
+      <para>
+        The <application>GNOME Help Browser</application> works by
+        searching standard directories for documents which are to be
+        presented.  Thus, the documentation that appears in the GHB is
+        specific to each computer and will typically only represent
+        software that is installed on the computer.
+      </para>
+    </sect2>
+
+<!-- ####### The GNOME Documentation System | The GNOME Help Browser
+####### -->
+
+    <sect2 id="gnomehelpbrowser2">
+      <title>The GNOME Help Browser (GNOME-2.0)</title> <para> In
+      GNOME 2.0, the <application>GNOME Help Browser</application>
+      will be replaced by <application>Nautilus</application>.
+      Nautilus will be the file manager/graphical shell for GNOME 2.0
+      and will also implement a more sophisticated help system than
+      that used by the <application>GNOME Help Browser</application>
+      used in GNOME 1.0.  It will read and display DocBook files
+      directly, avoiding the need for duplicating documents in both
+      DocBook and HTML formats.  Its display engine for DocBook will
+      be much faster than running <application>jade</application> to
+      convert to HTML for rendering.  Because it uses the original
+      DocBook source for documentation, it will be possible to do more
+      sophisticated searching using the meta information included in
+      the documents.  And since Nautilus is a virtual file system
+      layer which is Internet-capable, it will be able to find and
+      display documents which are on the web as well as those on the
+      local file system. For more information on
+      <application>Nautilus</application>, visit the #nautilus IRC
+      channel on irc.gnome.org.  </para>
+    </sect2>
+
+<!-- ####### The GNOME Documentation System | GNOME On-The-Fly
+Documentation Generation  ####### -->
+    
+    <sect2 id="gnomehelponthefly">
+      <title>Dynamic Document Synthesis(GNOME-2.0)</title>
+      <para>
+        GNOME uses the documentation presented by all the various
+        GNOME components and applications installed on the system to
+        present a complete and customized documentation environment
+        describing only components which are currently installed on a
+        users system.  Some of this documentation, such as the manuals
+        for applets, will be combined in such a way that it appears to
+        be a single document.
+      </para>
+      <para>
+        By using such a system, you can be sure that any GNOME app you
+        install that has documentation will show up in the index,
+        table of contents, any search you do in the help browser.
+      </para>
+    </sect2>
+    
+<!-- ####### The GNOME Documentation System | The GNOME Documentation
+Components  ####### -->
+
+    <sect2 id="gnomehelpcomponents">
+      <title>The GNOME Documentation Components</title>
+
+      <sect3 id="applicationmanualsintro">
+        <title>Application Manuals</title>
+        <para>
+          Every GNOME application should have an application manual.
+          An application manual is a document specific to the
+          particular application which explains the various windows
+          and features of the application.  Application Manuals
+          typically use screenshots (PNG format) for clarity.  Writing
+          application manuals is discussed in more detail in <xref
+          linkend="writingapplicationmanuals" /> below.
+        </para>
+      </sect3>
+
+      <sect3 id="applicationhelpintro">
+        <title>Application Help</title>
+        <para>
+          Applications should have a <guibutton>Help</guibutton>
+          button on screens on which users may need help.  These
+          <guibutton>Help</guibutton> buttons should pull up the
+          default help browser, determined by the
+          <varname>ghelp</varname> URL Handler (configured using the
+          <application>Control Center</application>), typically the
+          <application>GNOME Help Browser</application>.  The help
+          browser should show either the first page of the application
+          manual, or else the relevant page thereof. Application help
+          is described in more detail in <xref
+          linkend="applicationhelpbuttons" /> below.
+        </para>
+      </sect3>
+
+      <sect3 id="contextsensitivehelpintro">
+        <title>Application Context Sensitive Help (coming in
+        GNOME-2.0)</title>
+        <para>
+          Context sensitive help is a system which will allow the user
+          to query any part (button, widget, etc.) of an application
+          window.  This is done by either entering a CS Help mode by
+          clicking on an icon or by right clicking on the application
+          part and selecting "What's This" or whatever is decided on
+          at the time.  Context sensitive help is described in more
+          detail in <xref linkend="writingcontextsensitivehelp" />
+          below.
+        </para>
+      </sect3>
+
+      <sect3 id="userguide">
+        <title>The GNOME User Guide</title>
+        <para>
+          The <citetitle>GNOME User Guide</citetitle> describes the
+          GNOME desktop environment and core components of GNOME such
+          as the <application>panel</application> and
+          <application>control center</application>. In GNOME 1.x this
+          was the main and only source of documentation. In GNOME 2.0
+          this will become a document for the web and for printing
+          that is derived from various parts chosen in the system that
+          are necessary for the new user to understand.
+        </para>
+      </sect3>
+
+      <sect3 id="userdocs">
+        <title>User Documents</title>
+        <para>
+          Aside from the <citetitle>GNOME User Guide</citetitle>,
+          there are several other documents to help GNOME users learn
+          GNOME, including the <citetitle>GNOME FAQ</citetitle>,
+          <citetitle>GNOME Installation and Configuration
+          Guide</citetitle>, and the <citetitle>GNOME Administrators
+          Guide</citetitle>.
+        </para>
+      </sect3>
+
+      <sect3 id="developerdocs">
+        <title>Developer Documents</title>
+        <para>
+          There are many White Papers, Tutorials, HOWTO's and FAQ's to
+          make programming GNOME and GNOME applications as easy as
+          possible.
+        </para>
+        <para>
+          API documentation is also available for the GNOME libraries. This is
+          detailed documentation of the code that is used to build GNOME
+          apps. You can keep up with the GNOME API docs on the <ulink
+          url="http://developer.gnome.org/doc/API/" type="http">GNOME API
+          Reference</ulink> page.
+        </para>
+      </sect3>
+
+      <sect3 id="projectdocs">
+        <title>Project Documents</title>
+        <para>
+          Some GNOME projects have documentation to maintain
+          consistency in their product and to help new contributors
+          get up to speed quickly. Among these are the GDP documents,
+          such as the one you are reading now.
+        </para>
+      </sect3>
+    </sect2>
+  </sect1>
+  
+  
+<!-- ################# DocBook Basics ############### -->
+
+  <sect1 id="docbookbasics">
+    <title>DocBook Basics </title>  
+<!-- ####### DocBook Basics | Introduction to DocBook ####### -->
+
+    <sect2 id="introtodocbook">
+      <title>Introduction to DocBook</title>
+      <para>
+        To understand DocBook, a basic understanding of SGML is
+        helpful. SGML stands for Standard General Markup Language and
+        is one of the first markup languages every created. HTML is
+        actually derived from SGML and XML is a subset of SGML.  SGML
+        uses what is called a Document Type Definition to specify
+        <emphasis>elements</emphasis> which are contained between
+        brackets, &lt; and >. Text is marked by both beginning and
+        ending elements, for example in the DocBook DTD, one denotes a
+        title with <sgmltag>&lt;title></sgmltag>The
+        Title<sgmltag>&lt;/title></sgmltag>.
+      </para>
+      <para>
+        The DTD (in the case of the GDP, DocBook) defines rules for how the
+        elements can be used. For example, if one element can only be used when
+        embedded within another, this is defined in the DTD.
+      </para>
+      <para> 
+	An SGML file is just a plain ASCII file containing the text
+	with the markup specified above. To convert it  to some easily
+	readable format, you need special tools. The GDP uses <emphasis>DocBook
+        Tools</emphasis>, a free package of utilities for working with DocBook
+        which includes <emphasis>Jade</emphasis>, which does the SGML/DSSL
+        parsing. You can read more about DocBook Tools in <xref
+        linkend="installingdocbook" />. 
+      </para>
+      <para>
+        The final appearance of the output (e.g. PostScript or HTML)
+        is determined by a
+        <emphasis>stylesheet</emphasis>. Stylesheets are files,
+        written in a special language (DSSSL &mdash; Document Style
+        Semantics and Specification Language), which  specify the
+        appearance of various DocBook elements, for example,
+        what fonts to use for titles and various inline elements, page
+        numbering style, and much more. DocBook tools come with a
+        collection of stylesheets (Norman Walsh's modular
+        stylesheets); GNOME Document Project uses some customized
+        version of this stylesheets &mdash; see <xref
+        linkend="gdpstylesheets"/>.   
+      </para>
+      <para>
+        The advantage of specifying the <emphasis>structure</emphasis>
+        of a document with SGML instead of specifying the
+        <emphasis>appearance</emphasis> of the document with a typical
+        word processor, or with html, is that the resulting document
+        can be processed in a variety of ways using the structural
+        information.  Whereas formatting a document for appearance
+        assumes a medium (typically written text on a standard-sized
+        piece of paper), SGML can be processed to produce output for a
+        large variety of media such as text, postscript, HTML,
+        Braille, audio, and potentially many other formats.
+      </para>
+      <para>
+        Using 'content' as the elements to define the text of a document also
+        allows for search engines to make use of the actual elements to make a
+        "smarter search". For example, if you are searching for all documents
+        written by the author "Susie" your search engine could be made smart
+        enough to only search &lt;author> elements, making for a faster and more
+        accurate search.
+      </para>
+      <para>
+        Since the overall appearance of the output is determined not by the DTD
+        or the SGML document, but rather by a stylesheet, the appearance of a
+        document can be easily changed just by changing the stylesheet. This
+        allows everyone in the project to create documents that all look the
+        same.
+      </para>
+      <para>
+        As stated before, the GDP uses the DocBook DTD.  For a list of
+        introductory and reference resources on DocBook, see <xref
+        linkend="resources" />.  The following sections also provide
+        convenient instructions on which markup tags to use in various
+        circumstances.  Be sure to read <xref linkend="conventions" />
+        for GDP documentation-specific guidelines.
+      </para>
+    </sect2>
+    
+ <!-- ######  DocBook Basics | XML and SGML       ########--> 
+ <sect2 id="xml">
+      <title>XML and SGML</title>
+
+      <para> In not so distant future (probably before GNOME 2.0),
+      DocBook itself and GNOME Documentation project will migrate from
+      SGML to XML. This transition should be relatively painless:
+      (almost) all DocBook tags will remain the same. However, XML has
+      stricter syntax rules than SGML; thus, some constructions which
+      are valid in SGML will not be valid in XML. Therefore, to be
+      ready for this transistion, it is <emphasis>strongly
+      advised</emphasis> that the documentation writers conform to XML
+      syntax rules. Here are most important differences:
+      </para>
+	
+      <variablelist>
+	  <varlistentry>
+	    <term> <emphasis>Minimization</emphasis></term> 
+	    <listitem>
+	    
+	    <para>
+	      It is possible with some implementations of SGML to use
+	      minimizations to close elements in a document by using
+	      &lt;/>, for example:
+	      <literal><sgmltag>&lt;title></sgmltag>The
+		Title<sgmltag>&lt;/></sgmltag></literal>. This is not
+              allowed in XML. You can use <command>sgmlnorm</command> command,
+              included in DocBook Tools package, to expand minimized tags;
+              if you are using <application>Emacs</application> with psgml
+              mode, you can also use menu command
+          <menuchoice>
+             <guimenu>Modify</guimenu>
+             <guimenuitem>Normalize</guimenuitem>
+          </menuchoice>.
+         </para> 
+	    </listitem>
+	    </varlistentry>
+	  <varlistentry>
+	    <term> <emphasis>Self-closing tags</emphasis></term> 
+	    <listitem>
+ 
+         <para>
+            Also, in SGML some tags are allowed not to have closing
+            tags.  For example, it is legal for
+            <sgmltag>&lt;xref></sgmltag> not to have a closing tag: 
+            <literal><sgmltag>&lt;xref 
+                   linkend="someid"></sgmltag></literal>. In
+            XML, it is illegal; instead, you should use  
+            <literal><sgmltag>&lt;xref 
+                   linkend="someid"/></sgmltag></literal> (note the
+            slash!).
+          </para> 
+  </listitem>
+  </varlistentry>
+
+	<varlistentry>
+	    <term> <emphasis>Case sensitive tags</emphasis></term> 
+	    <listitem>
+	    <para>
+	      In XML, unlike SGML, tags are case-senstive
+	      <sgmltag>&lt;title></sgmltag> and
+	      <sgmltag>&lt;TITLE></sgmltag> are different tags!
+	      Therefore, please always use lowercase tags (except for
+	      things like <literal>DOCTYPE, CDATA</literal> and
+	      <literal>ENTITY</literal>, which are not DocBook tags). 
+	    </para>
+	  </listitem>
+	</varlistentry>
+
+
+
+</variablelist> 
+</sect2>
+
+
+
+    <!-- ####### DocBook Basics | Structure Elements ####### -->
+
+    
+    <sect2 id="structure"> <title> Structure Elements</title>
+
+      <sect3 id="section">
+        <title>Sections and paragraphs</title>
+        <para>
+          Top-level element of a book body must be
+          <sgmltag>&lt;chapter></sgmltag>; it may contain one or more
+          <sgmltag>&lt;sect1></sgmltag>, each of them may contain
+          <sgmltag>&lt;sect2></sgmltag> and so on up to
+          <sgmltag>&lt;sect5></sgmltag>. The top-level element of an
+          article body is always
+          <sgmltag>&lt;sect1></sgmltag>. Regardless of which elements
+          you use, give each structural element a unique id, so that
+          you can link to it. For usage example, see the template.
+        </para>
+        <para> Please try to avoid using deeply nested sections; for
+          most situations, <sgmltag>&lt;sect1></sgmltag> and
+          <sgmltag>&lt;sect2></sgmltag> should be sufficient. If not,
+          you probably should split your <sgmltag>&lt;sect1></sgmltag>
+          into several smaller ones.
+        </para>
+        <para> Use the tag <sgmltag>&lt;para></sgmltag> for
+          paragraphs, even if there is only one paragraph in a
+          section&mdash;see template for examples.
+        </para>
+      </sect3>
+
+      <sect3 id="notes">
+        <title>Notes, Warnings, And Tips</title>
+        <para>
+          For notes, tips, warnings, and important information, which
+          should be set apart from the main text (usually as a
+          paragraph with some warning sign on the margin), use tags
+          <sgmltag>&lt;note></sgmltag>, <sgmltag>&lt;tip></sgmltag>,
+          <sgmltag>&lt;warning></sgmltag>,
+          <sgmltag>&lt;important></sgmltag> respectively. For example:
+          <programlisting>
+<![CDATA[
+<tip>
+ <title>TIP</title>
+ <para>
+  To speed up program compilation, use <application>gcc</application>
+  compiler with Pentium optimization.
+ </para>
+</tip>]]> </programlisting>  produces
+        </para>
+        <tip id="extip">
+          <title>TIP</title>
+          <para>
+            To speed up program compilation, use
+            <application>gcc</application> compiler with Pentium
+            optimization.  </para>
+        </tip>
+        <para>
+          Note that this should not be inside a
+          <sgmltag>&lt;para></sgmltag> but between paragraphs.
+        </para>
+      </sect3>
+      <sect3 id="figures">
+        <title> Screenshots and other figures</title>
+        <para>
+          To include screenshots and other figures, use the following
+          tags:
+          
+          <programlisting>
+<![CDATA[
+<figure id="shot1">
+ <title>Screenshot</title>
+ <screenshot>
+  <screeninfo>Screenshot of a program</screeninfo>
+  <graphic format="PNG"  fileref="figures/example_screenshot" srccredit="ME">
+  </graphic>
+ </screenshot>
+</figure>]]>
+          </programlisting>
+          replacing <filename>example_screenshot</filename> with the
+          actual file name (without extension). The result will look like this:
+          
+          <figure id="shot1">
+            <title>Screenshot</title>
+            <screenshot>
+              <screeninfo>Screenshot of a program</screeninfo>
+              <graphic format="PNG"
+		       fileref="figures/example_screenshot" srccredit="ME"/>
+              
+            </screenshot>
+          </figure>
+        </para>
+        <note>
+          <title>NOTE</title>
+          <para>
+            Notice in this example that the screenshot file name does
+            not include the file type extension &mdash; to find out
+            why, please read <xref linkend="jadeimages" />.
+          </para>
+        </note>          
+      </sect3>
+      <sect3 id="listing">
+        <title>Program listings and terminal session</title> <para>
+          To show a file fragment&mdash;for example, program
+          listing&mdash;use <sgmltag>&lt;programlisting></sgmltag> tag:
+          <programlisting>
+<![CDATA[
+<programlisting>
+[Desktop Entry] 
+Name=Gnumeric spreadsheet
+Exec=gnumeric 
+Icon=gnome-gnumeric.png 
+Terminal=0
+Type=Application
+</programlisting>]]>
+          </programlisting>
+          which produces
+          <programlisting>
+[Desktop Entry] 
+Name=Gnumeric spreadsheet 
+Exec=gnumeric
+Icon=gnome-gnumeric.png 
+Terminal=0 
+Type=Application
+          </programlisting>
+          As a matter of fact, all examples in this document were
+          produced using <sgmltag>&lt;programlisting></sgmltag>.
+        </para>
+        <para>
+          To show a record of terminal session&mdash;i.e., sequence of
+          commands entered at the command line&mdash;use
+          <sgmltag>&lt;screen></sgmltag> tag:
+          <programlisting>
+<![CDATA[
+<screen>
+<prompt>bash$</prompt><userinput>make love</userinput> 
+make: *** No rule to make target `love'. Stop.
+</screen>]]>
+          </programlisting>
+          which produces
+          <screen>
+<prompt>bash$</prompt><userinput>make love</userinput>  
+make: *** No rule to make target `love'.  Stop.
+          </screen>
+          Note the use of tags <sgmltag>&lt;prompt></sgmltag> and
+          <sgmltag>&lt;userinput></sgmltag> for marking system prompt
+          and commands entered by user.
+          <note>
+            <title>NOTE</title>
+            <para>
+              Note that both <sgmltag>&lt;programlisting></sgmltag>
+              and <sgmltag>&lt;screen></sgmltag> preserve linebreaks,
+              but interpret SGML tags (unlike LaTeX
+              <markup>verbatim</markup> environment). Take a look at
+              the source of this document to see how you can have SGML
+              tags literally shown but not interpreted,
+            </para>
+          </note>
+        </para>
+      </sect3>
+      <sect3 id="lists">
+	<title> Lists</title>
+	<para>
+	  The most common list types  in DocBook are
+	  <sgmltag>&lt;itemizedlist></sgmltag>,
+	  <sgmltag>&lt;orderedlist></sgmltag>, and 
+	  <sgmltag>&lt;variablelist></sgmltag>.
+	</para>
+	<variablelist>
+	  <varlistentry>
+	    <term> <sgmltag>&lt;itemizedlist></sgmltag></term> 
+	    <listitem><para> 
+		This is the simplest unnumbered list, parallel to
+	    <sgmltag>&lt;ul></sgmltag> in HTML. Here is an example: 
+		<programlisting>
+<![CDATA[
+<itemizedlist>
+  <listitem>
+    <para>
+      <guilabel>Show backup files</guilabel> &mdash; This will
+      show any backup file that might be on your system.
+    </para>
+  </listitem>
+  <listitem>
+    <para>
+      <guilabel>Show hidden files</guilabel> &mdash; This will
+      show all "dot files" or files that begin with a dot.  This
+      files typically include configuration files and directories.
+    </para>
+  </listitem>
+  <listitem>
+    <para>
+      <guilabel>Mix files and directories</guilabel> &mdash; This
+      option will  display files and directories in the order you
+      sort them instead of 
+      always having directories shown above files.
+    </para>
+   </listitem>
+</itemizedlist> 
+]]>
+		</programlisting>
+		and output:
+                </para>
+		<itemizedlist>
+		  <listitem>
+		    <para>
+		      <guilabel>Show backup files</guilabel> &mdash;
+		      This will show any backup file that might be on
+		      your system.
+		    </para>
+		  </listitem>
+
+		  <listitem>
+		    <para>
+		      <guilabel>Show hidden files</guilabel> &mdash;
+		      This will show all "dot files" or files that
+		      begin with a dot.  This files typically include
+		      configuration files and directories.
+		    </para>
+		  </listitem>
+
+		  <listitem>
+		    <para>
+		      <guilabel>Mix files and directories</guilabel>
+		      &mdash; This option will display files and
+		      directories in the order you sort them instead
+		      of always having directories shown above files.
+		    </para>
+		  </listitem>
+		</itemizedlist>
+              <para> Note the use of <sgmltag>&amp;mdash;</sgmltag>
+              for long dash (see <xref linkend="specsymb" />). Also,
+              please note that the result looks much nicer because the
+              terms being explained (<guilabel>Show backup
+              files</guilabel>, etc.) are set in a different font. In
+              this case, it was achieved by using <link
+              linkend="gui"><sgmltag>&lt;guilabel></sgmltag></link>
+              tag. In other cases, use appropriate tags such as
+              <link linkend="gui"><sgmltag>&lt;guimenuitem></sgmltag></link>,
+              <link
+              linkend="filenames"><sgmltag>&lt;command></sgmltag></link>,
+              or &mdash; if none of
+              this applies &mdash; use
+              <link linkend="gui"><sgmltag>&lt;emphasis></sgmltag></link>.
+	      </para>
+	    </listitem>
+	  </varlistentry>
+	  <varlistentry>
+	    <term> <sgmltag>&lt;orderedlist></sgmltag></term> 
+	    <listitem><para>
+		This list is completely analogous to
+		<sgmltag>&lt;itemizedlist></sgmltag> and has the same
+		syntax, but  it produces numbered list. By default,
+		this list uses Arabic numerals for numbering entries;
+		you can override this using <sgmltag>numeration</sgmltag>,
+		for example <sgmltag>&lt;orderedlist
+		  numeration="lowerroman"></sgmltag>. Possible values of
+		these attribute are <sgmltag>arabic</sgmltag>,
+		<sgmltag>upperalpha</sgmltag>,
+		<sgmltag>loweralpha</sgmltag>,
+		<sgmltag>upperroman</sgmltag>,
+		<sgmltag>lowerroman</sgmltag>.
+	      </para></listitem>
+	  </varlistentry>
+
+	  <varlistentry>
+	    <term> <sgmltag>&lt;variablelist></sgmltag></term>
+	    <listitem><para> This list is used when each entry is
+	    rather long, so it should be formatted as a block of text
+	    with some subtitle, like a small subsection.  The
+	    <sgmltag>&lt;variablelist></sgmltag> is more complicated
+	    than itemizedlists, but for larger blocks of text, or when
+	    you're explaining or defining something, it's best to use
+	    them.  Their greatest advantage is that it's easier for a
+	    computer to search.  The lines you are reading now were
+	    produced by <sgmltag>&lt;variablelist></sgmltag>. The
+	    source looked liked this:
+		<programlisting>
+<![CDATA[
+<variablelist>
+  <varlistentry>
+    <term> <sgmltag>&lt;itemizedlist></sgmltag></term> 
+    <listitem><para> 
+	This is the simplest unnumbered list, parallel to
+        <sgmltag>&lt;ul></sgmltag> in HTML. Here is an example:...
+    </para></listitem>
+    </varlistentry>
+    <varlistentry>		 
+	<term> <sgmltag>&lt;orderedlist></sgmltag></term>
+     <listitem><para>	
+	This list is completely analogous to
+	<sgmltag>&lt;itemizedlist></sgmltag> 
+    </para></listitem>
+    </varlistentry>
+    <varlistentry>		 
+	<term> <sgmltag>&lt;variablelist></sgmltag></term>
+     <listitem><para>	
+		This list is used when each entry is rather long,...
+    </para></listitem>
+    </varlistentry>
+</variablelist>        
+]]>
+		</programlisting>		
+		</para>
+	    </listitem>
+	  </varlistentry>
+	</variablelist>
+	<para>
+	Lists can be nested; in this case, the stylesheets
+	are smart enough to change the numeration (for
+	<sgmltag>&lt;orderedlist></sgmltag>) or marks of each entry
+	(in  <sgmltag>&lt;itemizedlist></sgmltag>) for sub-lists
+	</para>
+      </sect3>
+
+    </sect2>
+
+<!-- ####### DocBook Basics | Inline Elements ####### -->
+
+    <sect2 id="inline">
+      <title>Inline Elements</title>
+
+      <sect3 id="gui">
+        <title>GUI elements</title>
+        <itemizedlist>
+          <listitem>
+            <para>
+              <sgmltag>&lt;guibutton></sgmltag> &mdash; used for
+              buttons, including checkbuttons and radio buttons
+            </para>
+          </listitem>
+          
+          <listitem>
+            <para>
+              <sgmltag>&lt;guimenu></sgmltag>, 
+              <sgmltag>&lt;guisubmenu></sgmltag> &mdash;used for 
+	      top-level menus and submenus
+              respectively, for example <literal><![CDATA[
+              <guisubmenu>Utilities</guisubmenu> submenu of the
+              <guimenu>Main Menu</guimenu>]]></literal>
+            </para>
+          </listitem>
+          
+          <listitem>
+            <para>
+              <sgmltag>&lt;guimenuitem></sgmltag>&mdash;an entry in a
+              menu
+            </para>
+          </listitem>
+          
+          <listitem>
+            <para>
+              <sgmltag>&lt;guiicon></sgmltag>&mdash;an icon
+            </para>
+          </listitem>
+          
+          <listitem>
+            <para>
+              <sgmltag>&lt;guilabel></sgmltag>&mdash;for items which have
+              labels, like tabs, or bounding boxes. 
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <sgmltag>&lt;interface></sgmltag>&mdash; for most everything
+              else... a window, a dialog box, the Panel, etc.
+            </para>
+          </listitem>
+        </itemizedlist>
+        <para>
+          If you need to refer to a sequence of menu choices, such as
+          <menuchoice>
+            <guimenu>Main Menu</guimenu>
+            <guisubmenu>Utilities</guisubmenu> <guimenuitem>GNOME
+            terminal</guimenuitem>
+          </menuchoice>
+          there is a special construction for this, too:
+          <programlisting>
+<![CDATA[
+<menuchoice>
+ <guimenu>Main Menu</guimenu> <guisubmenu>Utilities</guisubmenu>
+ <guimenuitem>GNOME terminal</guimenuitem> </menuchoice>]]>
+          </programlisting>
+        </para>
+      </sect3>
+
+      <sect3 id="links">
+        <title>Links and references</title>
+        <para>
+          To refer to another place in the same document, you can use
+          tags <sgmltag>&lt;xref></sgmltag> and
+          <sgmltag>&lt;link></sgmltag>. The first of them
+          automatically inserts the full name of the element you refer
+          to (section, figure, etc.), while the second just creates a
+          link (in HTML output). Here is an example:
+          <programlisting>
+<![CDATA[An example of a <link linkend="extip">tip</link> was given in
+<xref linkend="notes" />.  ]]>
+          </programlisting>
+          which produces: An example of a <link
+          linkend="extip">tip</link> was given in  <xref
+          linkend="notes" />.
+        </para>
+        <para>
+          Here <sgmltag>notes</sgmltag> and <sgmltag>extip</sgmltag>
+          are the id attributes of <xref linkend="notes" /> and of the
+          example of a tip in it.
+        </para>
+        <para>  To produce a link  to an external source, such as a
+          Web page or a local file, use <sgmltag>&lt;ulink></sgmltag>
+          tag, for example:
+          <programlisting>
+<![CDATA[ To find more about GNOME, please visit <ulink type="http"
+url="http://www.gnome.org">GNOME Web page</ulink> ]]>
+          </programlisting>
+          which produces:  To find more about GNOME, please visit
+          <ulink type="http" url="http://www.gnome.org">The GNOME Web
+          Site</ulink> You can use any of the standard URL types, such
+          as <literal>http, ftp, file, telnet, mailto</literal> (in
+          most cases, however, use of <literal>mailto</literal> is
+          unnecessary&mdash;see discussion of
+          <sgmltag>&lt;email></sgmltag> tag).
+        </para>
+      </sect3>
+
+      <sect3 id="filenames">  <title>Filenames, commands, and other
+        computer-related things</title>
+        <para>
+          Here are some tags used to describe operating system-related
+          things:  
+        </para>
+	<itemizedlist>
+          <listitem>
+            <para>  <sgmltag>&lt;filename></sgmltag> &mdash; used
+              for filenames,
+              e.g.<sgmltag>&lt;filename></sgmltag>
+                    foo.sgml
+                  <sgmltag>&lt;/filename></sgmltag> 
+              produces: <filename>foo.sgml</filename>.
+            </para>
+          </listitem>
+          <listitem>
+            <para>  <sgmltag>&lt;filename
+              class="directory"></sgmltag> &mdash; used for
+              directories, e.g.<sgmltag>&lt;filename
+              class="directory"></sgmltag>/usr/bin
+                  <sgmltag>&lt;/filename></sgmltag>
+              produces: <filename
+              class="directory">/usr/bin</filename>.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <sgmltag>&lt;application></sgmltag> &mdash; used for
+              application names,
+              e.g. <sgmltag>&lt;application></sgmltag>Gnumeric
+              <sgmltag>&lt;/application></sgmltag> produces:
+              <application>Gnumeric</application>.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+	      <sgmltag>&lt;envar></sgmltag> &mdash; used for
+	      environment variables, e.g. 
+              <sgmltag>&lt;envar></sgmltag>PATH<sgmltag>&lt;/envar></sgmltag>. 
+            </para>
+          </listitem>
+  
+          <listitem>
+            <para>
+              <sgmltag>&lt;command></sgmltag> &mdash; used for
+              commands entered on command line, e.g.
+              <sgmltag>&lt;command></sgmltag>make install
+              <sgmltag>&lt;/command></sgmltag> produces:
+              <command>make install</command>.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <sgmltag>&lt;replaceable></sgmltag> &mdash; used for
+              replaceable text, e.g.
+              <sgmltag>&lt;command></sgmltag>db2html<sgmltag>&lt;replaceable></sgmltag>
+              foo.sgml
+              <sgmltag>&lt;/replaceable></sgmltag><sgmltag>&lt;/command></sgmltag>
+              produces: <command>db2html
+              <replaceable>foo.sgml</replaceable></command>.
+            </para>
+          </listitem>
+        </itemizedlist>  
+      </sect3>
+
+      <sect3 id="keys">   
+        <title>Keyboard input</title> 
+        <para> To mark up text input by the user, use
+        <sgmltag>&lt;userinput></sgmltag>.
+        </para>
+        <para>  To mark keystrokes such as shortcuts and other
+          commands, use <sgmltag>&lt;keycap></sgmltag>. 
+          This is used for marking up what is printed on the top 
+          of the physical key on the keyboard. There are a couple of
+          other tags for keys, too: <sgmltag>&lt;keysym&gt;</sgmltag>
+          and <sgmltag>&lt;keycode&gt;</sgmltag>. However you are
+          unlikely to need these for most documentation. For reference,
+          <sgmltag>&lt;keysym&gt;</sgmltag> is for the <quote>symbolic
+          name</quote> of a key. <sgmltag>&lt;keycode&gt;</sgmltag> is
+          for the <quote>scan code</quote> of a key. These are not
+          terms commonly required in <acronym>GNOME</acronym> documentation,
+          although <sgmltag>&lt;keysym&gt;</sgmltag> is useful for marking
+          up control codes.
+       </para>
+       <para>
+          To mark up a combination of keystrokes, use the
+          <sgmltag>&lt;keycombo></sgmltag> wrapper:
+          <programlisting>
+<![CDATA[
+<keycombo>
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>F1</keycap>
+</keycombo>]]>
+          </programlisting>
+        </para>
+        <para>
+          Finally, if you want to show a shortcut for some menu
+          command, here are the appropriate tags (rather long):
+          <programlisting>
+<![CDATA[
+<menuchoice>
+ <shortcut>
+  <keycombo><keycap>Ctrl</keycap><keycap>q</keycap></keycombo>
+ </shortcut> 
+ <guimenuitem> Quit</guimenuitem> 
+</menuchoice>]]>
+          </programlisting>
+          which produces simply
+          <menuchoice>
+            <shortcut>   <keysym>Ctrl-q</keysym> </shortcut>
+            <guimenuitem> Quit</guimenuitem>
+          </menuchoice>
+        </para>
+      </sect3>
+
+      <sect3 id="email">
+        <title>E-mail addresses</title> <para>  To mark up e-mail
+        address, use <sgmltag>&lt;email></sgmltag>:
+          <programlisting>
+<![CDATA[ The easiest way to get in touch with me is by e-mail
+(<email>me at mydomain.com</email>)]]>
+          </programlisting>
+          which produces: The easiest way to get in touch with me is
+          by e-mail  (<email>me at mydomain.com</email>) Note that
+          <sgmltag>&lt;email></sgmltag> automatically produces a link
+          in html version.
+        </para>
+      </sect3>
+
+      <sect3 id="specsymb">
+	<title> Special symbols </title>
+	<para> 
+	  DocBook also provides special means for entering
+	typographic symbols which can not be entered directly
+	form the keyboard (such as copyright sign). This is done using
+	<emphasis>entities</emphasis>, which is SGML analogue of
+	macros, or commands, of LaTeX. They generally have the form 
+	  <sgmltag>&amp;entityname;</sgmltag>. Note that the semicolon
+	is required. 
+	</para>
+	<para>
+	  here is partial list of most commonly used enitites:
+	</para>
+	<itemizedlist>
+	  <listitem><para>
+             <sgmltag>&amp;amp;</sgmltag> &mdash; ampersend (&amp;)
+	  </para></listitem>
+	  <listitem><para>
+             <sgmltag>&amp;lt;</sgmltag> &mdash; left angle bracket (&lt;)
+	  </para></listitem>
+	  <listitem><para>
+             <sgmltag>&amp;copy;</sgmltag> &mdash; copyright sign (&copy;)
+	  </para></listitem>
+	  <listitem><para>
+             <sgmltag>&amp;mdash;</sgmltag> &mdash; long dash (&mdash;)
+	  </para></listitem>
+	  <listitem><para>
+             <sgmltag>&amp;hellip;</sgmltag> &mdash; ellipsis (&hellip;)
+	  </para></listitem>
+	</itemizedlist>
+	<para>
+	  Note that the actual look of the resulting symbols depends
+	  on the fonts used by your browser; for example, it might
+	  happen that long dash (<sgmltag>&amp;mdash;</sgmltag>) looks
+	  exactly like the usual dash (-). However, in the PostScript
+	  (and thus, in print) the output will look markedly better if
+	  you use appropriate tags. 
+	</para>
+      </sect3>
+    </sect2>
+  </sect1>
+  
+<!-- ################# GDP Documentation Conventions ############### -->
+ 
+  <sect1 id="conventions">
+    <title>GDP Documentation Conventions </title> 
+
+<!-- ####### GDP Documentation Conventions | All Documentation ####### -->
+
+    <sect2 id="conventionsalldocs">
+      <title>Conventions for All GDP Documentation</title>
+      <sect3 id="xmlcomp">
+	<title> XML compatibility </title>
+	<para>
+	  All GNOME documentation  should conform to XML syntax
+	  requirements, which are stricter than SGML ones &mdash; see
+	  <xref linkend="xml" /> for more informaion.
+	</para>
+      </sect3> 
+
+      <sect3 id="authorsnames"> 
+	<title> Authors' names</title>
+	<para> 
+	  All GNOME documentation should contain the names of both the
+	  application authors and documentation authors, as well as a
+	  link to the application web page (if it exists) and
+	  information for bug submission &mdash; see templates for an
+	  example. 
+	  </para>
+      </sect3>
+    </sect2>
+
+<!-- ####### GDP Documentation Conventions | All Documentation ####### -->
+
+    <sect2 id="conventionsappdocs">
+      <title>Conventions for Application Documentation</title>
+
+      <sect3 id="applicationversionid">
+        <title>Application Version Identification</title>
+        <para>
+          Application documentation should identify the version of the
+          application for which the documentation is written:
+          <programlisting>
+<![CDATA[
+<sect1 id="intro">
+ <title>Introduction</title>
+ <para>
+  blah-blah-blah This document describes version 1.0.53 of gfoo.
+ </para>
+</sect1>]]>
+          </programlisting>
+        </para>
+      </sect3>
+      <sect3 id="license">
+	<title> Copyright information </title> 
+        <para> Application
+        documentation should contain a copyright notice, stating the
+        licensing terms. It is suggested that you use the GNU Free
+        Documentation License.  You could also use some other license
+        allowing free redistribution, such as GPL or Open Content
+        license.  If documentation uses some trademarks (such as UNIX,
+        Linux, Windows, etc.), proper legal junk should also be
+        included (see templates).
+	</para>
+      </sect3>
+      <sect3 id="license2">
+       <title>Software license</title>
+       <para> 
+         All GNOME applications must contain information about the
+       license (for software, not for documentation), either in the
+       "About" box or in the manual. 
+       </para>
+      </sect3>
+
+      <sect3 id="bugtraq">
+	<title> Bug reporting</title> 	
+        <para> 
+	  Application documentation should give an address for
+        reporting bugs and for submitting comments about the
+        documentaion (see templates for an example). 
+       </para>
+      </sect3>
+    </sect2>
+  </sect1>
+  
+<!-- ################# Writing Application Manuals ###############-->
+  
+  <sect1 id="writingapplicationmanuals">
+    <title>Writing Application and Applet Manuals</title>
+    <para>
+       Every GNOME application or applet should have a manual specific
+      to that particular application. This manual should be a complete
+      and authoritative guide.  The manual should describe what the
+      program does and how to use it.  Manuals will typically describe
+      each window or panel presented to the user using screenshots (in
+      PNG format only) when appropriate.  They should also describe
+      each feature and preference option available.
+    </para>
+    <note>
+      <title>Documentation Availability</title>
+      <para>
+        Applications and applets should not rely on documentation
+        which is only available on the internet.  All manuals and
+        other documentation should be packaged with the application or
+        applet and be made available to the user through the standard
+        GNOME help system methods described below.
+      </para>
+    </note>
+    <para> Application manuals should be based on the template in
+    <xref linkend="template1" />.  Applet manuals should be based on
+    the templates in <xref linkend="template2-1x" /> for GNOME
+    versions 1.x and the templates in <xref linkend="template2-2x" />
+    for GNOME versions 2.x.
+    </para>
+    <note>
+      <title>Manuals For Large Applications</title>
+      <para>
+        Manuals for very large applications, such as GNOME Workshop
+        components should be a <sgmltag>&lt;book></sgmltag> (and thus
+        use <sgmltag>&lt;chapter></sgmltag> for each primary section)
+        , instead of <sgmltag>&lt;article></sgmltag> which most
+        applications use(with each primary section being a
+        <sgmltag>&lt;sect1></sgmltag>).
+      </para>
+    </note>
+    <note>
+      <title>Applet Manuals in GNOME 2.0</title>
+      <para>
+        Note that applet manuals in GNOME 2.0 are treated in a special
+        way.  The manuals for all applets are merged into a single
+        virtual document by Nautilus.  For this reason, the header
+        information for applet manuals is omitted and the  first
+        section of each applet is
+        <sgmltag>&lt;sect1></sgmltag>. Applet manuals will typically
+        have several sections, each of which is
+        <sgmltag>&lt;sect2></sgmltag>.
+      </para>
+    </note>
+    <para>
+      Application manuals should be made available by having a
+      "Manual" entry in the <guimenu>Help</guimenu> pull-down menu
+      at the top of the 
+      application, as described in <xref linkend="listingdocsinhelpmenu" />.
+      Applets should make their manuals available by
+      right-clicking on the applet. 
+    </para>
+  </sect1>
+  
+
+<!-- ############### Listing Documents in the Help Menu ############# -->
+
+  <sect1 id="listingdocsinhelpmenu">
+    <title>Listing Documents in the Help Menu</title>
+
+    <note>
+      <title>Developer Information</title>
+      <para>
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </para>
+    </note>
+    <para>
+      Typically the application manual and possibly additional help
+      documents will be made available to the user under the
+      <guimenu>Help</guimenu> menu at the top right of the
+      application. To do this, you must first write a
+      <filename>topic.dat</filename> file. The format for this file is:
+      <programlisting>
+One line for each 'topic'.
+
+Two columns, as defined by perl -e 'split(/\s+/,$aline,2)'
+
+First column is the HTML file (and optional section) for the topic,
+relative to the app's help file dir.
+
+Second column is the user-visible topic name.
+      </programlisting>
+      For example, <application>Gnumeric</application>'s
+      <filename>topic.dat</filename> file is:
+      <programlisting>
+gnumeric.html   Gnumeric manual
+function-reference.html Gnumeric function reference
+      </programlisting>
+      When the application is installed, the
+      <filename>topic.dat</filename> file should be placed in the
+      <filename
+      class="directory">$prefix/share/gnome/help/<replaceable>appname</replaceable>/C/</filename> directory
+      where <replaceable>appname</replaceable> is replaced by the
+      application's name.  The application documentation (converted
+      from SGML into HTML with <command>db2html</command>) should be
+      placed in this directory too.
+    </para>
+    <note>
+      <para>
+       If the help files are not present in the correct directory, the
+       menu items will NOT appear when the program is run. 
+      </para>
+    </note>
+    <para>
+      The <filename>topic.dat</filename> file is used by the GNOME
+      menu building code to generate the <guimenu>Help</guimenu>
+      menu. When you define your menu:  
+<programlisting>
+GnomeUIInfo helpmenu[] = {
+              {GNOME_APP_UI_ITEM, 
+               N_("About"), N_("Info about this program"),
+               about_cb, NULL, NULL, 
+               GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ABOUT,
+               0, 0, NULL},
+               GNOMEUIINFO_SEPARATOR,
+               GNOMEUIINFO_HELP("<emphasis>appname</emphasis>"),
+               GNOMEUIINFO_END
+        };
+</programlisting>
+      the line specifying <varname>GNOMEUIINFO_HELP</varname> causes
+      GNOME to create a menu entry which is tied to the documentation
+      in the directory mentioned above. Also, all the topics in the
+      <filename>topic.dat</filename> file will get menu entries in the
+      <guimenu>Help</guimenu> menu. When the user selects any of these
+      topics from the <guimenu>Help</guimenu> menu, a help browser
+      will be started with the associated HTML documentation.
+    </para>
+  </sect1>
+
+
+<!-- ################# Application Help Buttons ############### -->
+
+  <sect1 id="applicationhelpbuttons">
+    <title>Application Help Buttons</title>
+
+    <note>
+      <title>Developer Information</title>
+      <para>
+        This section is for developers.  Documentation authors
+        generally do not need to know this material.
+      </para>
+    </note>
+    <para>
+      Most GNOME applications will have <guibutton>Help</guibutton>
+      buttons.  These are most often seen in Preference windows. (All
+      Preference windows should have <guibutton>Help</guibutton>
+      buttons.) Most <guibutton>Help</guibutton> buttons will connect
+      to the application manual, although some may connect to special
+      documents.  Because the <guibutton>Help</guibutton> buttons do
+      not generally have their own special documentation, the
+      documentation author(s) do not need to do very much.  However,
+      the application author must be careful to guarantee that the
+      application correctly opens the help documentation when the
+      <guibutton>Help</guibutton> buttons are pressed.  
+    </para>
+    <para>
+      To make the Help buttons call the correct document in the GNOME Help
+      Browser the developer should add code based on the following example:
+    </para>
+    <programlisting>
+gchar *tmp;
+tmp = gnome_help_file_find_file ("module", "page.html");
+if (tmp) {
+  gnome_help_goto(0, tmp);
+  g_free(tmp);
+}
+    </programlisting>
+    <note>
+      <title>NOTE</title>
+      <para>
+        The example above is in the C language, please refer to other
+        documentation or forums for other GNOME language bindings.
+      </para>
+    </note>
+ </sect1>
+
+<!-- ################# Packaging Applet Documentation ############### -->
+
+  <sect1 id="packagingappletdocs">
+    <title>Packaging Applet Documentation</title>
+    <sect2 id="appletfiles">
+      <title>Applet Documentation Files</title>
+      <para>
+        In GNOME 2.0 each applet will have its own documentation
+        installed separately, and the GNOME 2.0 help
+        browser (<application>Nautilus</application>) will dynamically
+        merge the applet documents into a single virtual book
+        called <citetitle>GNOME Applets</citetitle>. During the
+        transitionary stage between GNOME 1.0 and GNOME 2.0, each
+        applet in the gnome-applets package has its own manual(stored
+        with the applet in CVS), but they are merged together manually
+        to create the <citetitle>GNOME Applets</citetitle> book before
+        distribution.  Telsa 
+        <email>hobbit at aloss.ukuu.org.uk</email> is the maintainer of
+        this document.  Applet documentation should be sent to Telsa
+        (or placed in CVS) who will make sure they are correctly
+        packaged with the applets.  The applet author should be
+        contacted to modify the menu items and help buttons to bind to
+        the applet documentation if necessary.
+      </para>
+      <para>
+        Images which are part of the applet documentation should be in
+        PNG format and should reside in the same directory as the SGML
+        document file in CVS(gnome-applets/APPLETNAME/help/C).
+      </para>
+      <para>
+        Applets which are not part of the gnome-applets package must
+        package their documentation with the particular applet
+        package. They should use the same applet template as other
+        applets.  However, the <sgmltag>&lt;xref></sgmltag> links to
+        the introductory chapter of the <citetitle>GNOME
+        Applets</citetitle>  book must be removed (as the 1.x
+        <application>GNOME Help Browser</application> does not allow
+        you to create links between separate documents) and replaced
+        with suitable text.  Note that since this document is not part
+        of the <citetitle>GNOME Applets</citetitle> book, you must
+        remember to add <sgmltag>&lt;legalnotice></sgmltag> and
+        <sgmltag>&lt;copyright></sgmltag> sections.
+      </para>
+    </sect2>
+
+    <sect2 id="appletmenu">
+      <title>Adding Documentation to an Applet Menu</title>
+      <note>
+        <title>Developer Information</title>
+        <para>
+          This section is for developers.  Documentation authors
+          generally do not need to know this material.
+        </para>
+      </note> 
+      <para>
+        Applets should have <guimenu>About</guimenu> and
+        <guimenu>Manual</guimenu> menu items, typically as the first
+        and second top-most items in the menu respectively.  This
+        section describes how the developer creates these menu items
+        and links them to the documentation.
+      </para>
+      <para>
+        To add an applet's manual to its applet menu, use:
+<programlisting>
+/* add an item to the applet menu */
+applet_widget_register_callback(APPLET_WIDGET(applet), "manual",
+_("Manual"), &amp;open_manual, NULL);
+</programlisting>
+        Here the second argument is an arbitrary name for the
+        callback, the third argument is the label which will appear
+        when the user right clicks on the applet, and the fourth
+        argument is the callback function.
+      </para>
+      <para>
+        You will need to write a simple callback function to open the
+        help browser to the appropriate document.  This is done using
+        the <function>gnome_help_file_find_file</function> function,
+        as described in <xref linkend="applicationhelpbuttons" />.
+      </para>
+      <para>
+        You will also want to add an <guimenu>About</guimenu> menu
+        item to the applet's menu.  This is a
+        stock menu item and is done:
+<programlisting>
+applet_widget_register_stock_callback (APPLET_WIDGET(applet), "about",
+       GNOME_STOCK_MENU_ABOUT, _("About"), &amp;my_applet_cb_about,
+       NULL);
+</programlisting>
+      </para>
+      <para>
+        More information can be found at <ulink type="http"
+        url="http://developer.gnome.org/doc/tutorials/applet/index.html">Writing
+        GNOME panel applets using the GTK+/GTK-- widget set</ulink>.
+      </para>
+    </sect2>
+ </sect1>
+
+
+<!-- ################# Writing Context Sensitive Help ###############
+-->
+
+  <sect1 id="writingcontextsensitivehelp">
+    <title>Writing Context Sensitive Help (coming in GNOME-2.0)</title>
+    <para>
+      Context sensitive help, also known as "pop-up" help, will allow
+      a user to obtain help information about specific buttons or
+      parts of an application.
+    </para>
+    <para>
+      Context sensitive help is still under development and not all
+      the details are available at this time. However, the basics can
+      be shown here so that you can understand how the system will
+      work.
+    </para>
+    <para>
+      The Context Sensitive Help system is designed to allow the
+      developer to give an id to a particular portion of the User
+      Interface, for example, a button. Once the interface is complete
+      a Perl script can then be run against the interface code to
+      create a "map" file. This map file allows the developer or
+      writer to associate particular paragraph sections from an XML
+      document to the interface items.
+    </para>
+    <para>
+      The XML used for the document is a small XML DTD that is being
+      developed to use the same tags (albeit, much fewer) as DocBook
+      so that writers do not have to re-learn a new DTD.
+    </para>
+    <para>
+      Once the document is written and map file is complete, when the
+      user launches context sensitive help on the interface (either by
+      pressing a button and then clicking on the interface item they
+      want information on, or by right mouse clicking on the interface
+      item and selecting a pop-up menu item like "What's This") a
+      small transient window will appear with brief but detailed
+      information on the interface item.
+    </para>
+  </sect1>
+
+<!-- ################# Referring to Other GNOME Documentation
+############# -->
+
+  <sect1 id="referring">
+    <title>Referring to Other GNOME Documentation (coming in
+    GNOME-2.0)</title>
+    <para>
+      In the GNOME 2.0 Help System, you will be able to create links
+      from one document to another.  The exact mechanism for doing
+      this is in development.
+    </para>
+  </sect1>
+  
+  
+<!-- ################# Basics of Documentation Style ############### -->
+
+  <sect1 id="basics">
+    <title>Basics of Documentation Style</title>
+    <para>
+       Most people have never enjoyed reading a software manual, and
+       they probably never will.  Many times, they'll read the
+       documentation only when they run into problems, and they'll be
+       frustrated and upset before they even read a word.  On the
+       other hand, some readers will read the manual all the way
+       through, or at least look at the introduction before they
+       start. Your document might serve as a reference for an expert
+       or a guide to a beginner, and it must have enough depth to
+       satisfy the first without overwhelming the second.  Ideally, it
+       will serve beginners as they <emphasis>become</emphasis>
+       experts. Remember, your goal is to produce <emphasis>complete,
+       intuitive and clear</emphasis> documentation.
+    </para>
+    <para>
+       In order to write useful documentation, you'll have to know who
+       your audience is likely to be.  Then, you can look for the
+       problems they're likely to run into, and solve them.  It will
+       also help if you focus on the tasks users will perform, and
+       group features accordingly, rather than simply describing
+       features at random.  
+    </para>
+
+<!--  *********** Basics of Documentation Style: planning -->
+
+    <sect2 id="styleplanning">
+      <title>Planning</title>
+      <para>
+         Begin documenting by learning how to use the application and
+         reading over any existing documentation.  Pay attention to
+         places where your document will differ from the template.  It
+         may help to develop a document skeleton: a valid XML or SGML
+         document that has little or no content.  For very large
+         applications, you will need to make significant departures
+         from the templates, since you'll be using the
+         <sgmltag>&lt;book></sgmltag> tag instead of
+         <sgmltag>&lt;chapter></sgmltag> or
+         <sgmltag>&lt;article></sgmltag>.
+      </para>
+    </sect2>
+
+
+<!-- ####### Basics of Documentation Style | Balance ####### -->
+    <sect2 id="balance">
+      <title>Achieving a Balanced Style</title>
+
+      <para> 
+         Just as you need to juggle expert and novice readers,
+         you'll have to juggle a number of other extremes as you write:
+         <itemizedlist>
+          <listitem>
+	    <para>
+              Documents should be complete, yet concise.  You should
+              describe every feature, but you'll have decide how much
+              detail is really necessary.  It's not, for example,
+              necessary to describe every button and form field in a
+              dialog box, but you should make sure that your readers
+              know how to bring up the dialog and what it does.  If
+              you spend fewer words on the obvious, you can spend more
+              time clarifying the ambiguous labels and explaining
+              items that are more complex.
+            </para>
+          </listitem>
+	  <listitem>
+	    <para>
+              Be engaging and friendly, yet professional. Games
+              documents may be less formal than productivity
+              application documents (people don't
+              <emphasis>use</emphasis> games, they
+              <emphasis>play</emphasis> them), but all of them should
+              maintain a standard of style which holds the reader's
+              interest without resorting to jokes and untranslatable
+              allusions or puns.
+           </para>
+	  </listitem>
+	  
+   	  <listitem>
+	    <para>
+              Examples, tips, notes, and screenshots are useful to
+              break up long stretches of text, but too many can get in
+              the way, and make your documents too choppy to read.
+              It's good to provide a screenshot of any dialog windows
+              a user might run into, but if a dialog box has several
+              tabs, it's not usually necessary to have one for each.
+           </para>
+	  </listitem>
+
+   	  <listitem>
+	    <para>
+              The GDP strives to have all of its documentation conform
+              to certain standards of style and content, but every
+              document (and every writer) is different.  You will need
+              to use your judgement, and write documents to fit with
+              the rest of the project, without compromising the
+              individual needs of your subject, or your own
+              individuality as a writer.
+           </para>
+	  </listitem>
+
+	</itemizedlist>
+       </para>
+    </sect2>
+
+
+<!-- ####### Basics of Documentation Style | Structure ####### -->
+
+    <sect2 id="stylestructure">
+      <title>Structure</title>
+      <para>
+         In general, you won't have to worry too much about structure,
+         because the templates provide you with an excellent example.
+         As a general rule, try to follow that structural example.
+         That means using links, hierarchical nesting, and, if
+         necessary, a glossary or index.  You probably won't need to
+         use every available structural tag, but take advantage of
+         what DocBook provides you.
+      </para>
+      <para>
+         As to linking, there's some disagreement about whether to use
+         <sgmltag>&lt;xref></sgmltag> <sgmltag>&lt;link></sgmltag>
+         when you make links within your documents.  You'll have to
+         decide, based on the different ways that they are presented
+         in output, which is more appropriate given the context.
+         Regardless of which you use, you should not forget to use
+         them.  Help your readers find information that relevant to
+         the issue at hand.
+      </para>
+      <para>
+         The table of contents will be generated automatically, but
+         you will probably have to develop your own index if you wish
+         to have one.  The Nautilus Help Browser will have new, and
+         currently unknown, indexing capabilities, so index style and
+         structure are still under discussion.  The GNOME User's Guide
+         will contain a glossary in its next versions; unless you're
+         writing a<sgmltag>&lt;book></sgmltag>, it will probably be best to
+         contribute to that rather than developing your own.
+      </para>
+    </sect2>
+<!-- ####### Basics of Documentation Style | Grammar & Spelling ####### -->
+
+    <sect2 id="stylegrammar">
+      <title>Grammar and Spelling</title>
+      <para>
+        Nobody expects you to be perfect; they just expect the
+        documentation for their software to be error-free.  That means
+        that, in the same way that developers look for bugs and accept
+        bug reports, writers must check for errors in their documents.
+        Poor grammar, bad spelling, and gross technical errors in
+        draft documents are fine.  However, if those problems show up
+        in a "real" release, they can count against the credibility of
+        GNOME and Linux.  They'll also make you look bad.
+      </para>
+      <para>
+        There is no substitute for a human proofreader; use a
+        spell-check program, then read it over yourself, and then find
+        someone else to help you.  Other GDP members are, of course,
+        willing and able to help you, but non-writers are often at
+        least as helpful.
+      </para>
+      <para>
+        Proofreading documents is both a also a good way to
+        familiarize yourself with documentation, and it certainly
+        makes you valuable to the GDP. Help other writers proof their
+        documents, and they will help you with yours.
+      </para>
+    </sect2>
+  </sect1>
+  
+<!-- ################# Teamwork ############### -->
+
+  <sect1 id="teamwork">
+    <title>Teamwork</title>  <!-- ####### Teamwork | Working With The
+GDP Team ####### -->
+
+    <sect2 id="teamworkgdp">
+      <title>Working With The GDP Team</title>
+      <para>
+        The GDP team is a valuable resource for any documentation
+        author.  GDP members can answer most questions documentation
+        authors have during the course of their work. It is also
+        important to make sure you are not duplicating work of other
+        GDP members by visiting the <citetitle>GDP Documentation
+        Status Table</citetitle> (<ulink
+        url="http://www.gnome.org/gdp/doctable/"
+        type="http">http://www.gnome.org/gdp/doctable/</ulink>) and
+        assigning a documentation item to yourself.  This table also
+        provides a forum for making suggestions and announcements for
+        each documentation item.  The best way to get in touch with
+        GDP members is on the #docs IRC channel at irc.gnome.org or
+        else by emailing the <ulink type="http"
+        url="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+        <citetitle>gnome-doc-list mailing list</citetitle></ulink>.
+      </para>
+      <para>
+        After an author has finished a document (or even a draft
+        version of the document), it is a good idea to ask a member of
+        the GDP team to read the document, checking it for grammar,
+        proper DocBook markup, and clarity.  One may typically find
+        another author to do this by either asking on the #docs IRC
+        channel at irc.gnome.org or by emailing the <ulink type="http"
+        url="http://mail.gnome.org/mailman/listinfo/gnome-doc-list/">
+        <citetitle>gnome-doc-list mailing list</citetitle></ulink>.
+      </para>
+    </sect2>
+
+<!-- ####### Teamwork | Working With Developers ####### -->
+
+    <sect2 id="teamworkdevelopers">
+      <title>Working With Developers</title>
+      <para>
+        Writing documentation typically involves a certain amount of
+        interaction with the developers of GNOME or the application
+        which is being documented.  Often a document author will need
+        to ask the developer technical questions during the course of
+        writing a document. After the document is finished, it is good
+        idea to ask the developer to read the document to make sure it
+        is technically correct.  The documentation author should also
+        make sure that the application author correctly binds and
+        packages the documentation with the application.
+      </para>
+    </sect2>
+
+<!-- ####### Teamwork | Working With Users #######
+
+    <sect2 id="teamworkusers">
+      <title>Working With Users</title>
+      <para>
+        Some document authors may wish to get feedback on their
+        documents directly from users.  This may be done by ...
+      </para>
+    </sect2>-->
+  </sect1>
+  
+<!-- ################# Finishing a Document ############### -->
+
+  <sect1 id="finishing">
+    <title>Finishing A Document</title>
+
+<!-- ####### Finishing a Document | Editting the Document ####### -->
+
+    <sect2 id="editting">
+      <title>Editing The Document</title>
+      <para>
+        When the document is finished, the document should be edited
+        by another member of the GDP for spelling, clarity, and
+        DocBook markup. It should also be read by an application
+        author to make sure the document is technically accurate.
+      </para>
+    </sect2>
+
+<!-- ####### Finishing a Document | Submitting the Document ####### -->
+
+    <sect2 id="submitting">
+      <title>Submitting The Document</title>
+      <para>
+        After the document has been edited and checked for technical
+        accuracy, it is ready to be combined with the application or
+        documentation package.  This is typically done by passing the
+        document to the application or package developer.  In some
+        cases, the documents can be committed directly into CVS,
+        however this should only be done after obtaining permission to
+        make CVS commits from the developer.  Note that in many cases,
+        the application may need to be modified to correctly link to
+        the documentation.  The packaging system (tarballs and binary
+        packages) may also need to be modified to include the
+        documentation in the package.  Generally, this should be done
+        by the developers.
+      </para>
+      <para>
+        The final step is to email the GNOME Translation Team at
+        <email>gnome-i18n at nuclecu.unam.mx</email> to notify them that
+        there is a new document for them to translate.
+      </para>
+    </sect2>
+  </sect1>
+  
+<!-- ################# Resources ############### -->
+
+  <sect1 id="resources">
+    <title>Resources</title> 
+<!-- ####### Resources | Resources on the Web ####### -->
+
+    <sect2 id="resourcesweb">
+      <title>Resources On The Web</title> <para>  The <ulink
+      type="http" url="http://developer.gnome.org/projects/gdp/">GNOME
+      Documentation Project Web page</ulink> lists current GDP 
+      projects and members.
+      </para>
+      <para>
+        The <ulink url="http://www.gnome.org/gdp/doctable/"
+        type="http">GDP Documentation Status Table</ulink> tracks the
+        status of all the various documentation components of GNOME.
+      </para>
+      <para>
+        Norman Walsh's  <ulink url="http://www.docbook.org"
+        type="http"> <citetitle>DocBook: The Definitive
+        Guide</citetitle></ulink> in an excellent book on DocBook,
+        available both online and in print.
+      </para>
+    </sect2>
+
+<!-- ####### Resources | Books ####### -->
+
+    <sect2 id="resourcesbooks">
+      <title>Books</title>
+      <para>
+        Docbook: The Definitive Guide is available in both printed
+        form and on the web at:
+        <ulink url="http://www.docbook.org/tdg/index.html">
+        <citetitle>Docbook: The Definitive Guide</citetitle>
+        </ulink>
+      </para>
+    </sect2>
+
+<!-- ####### Resources | Mailing Lists ####### -->
+
+    <sect2 id="mailinglists">
+      <title>Mailing Lists</title>
+      <para>
+        The <emphasis>gnome-docs-list</emphasis> mailing list is the
+        main discussion area for all contributors to the GNOME
+        Documentation Project. You can find out how to subscribe to
+        this list on <ulink
+        url="http://www.gnome.org/resources/mailing-lists.html"
+        type="http">GNOME Mailing Lists</ulink>.  This is a rather
+        low-volume list, so you will not be flooded with messages.
+      </para>
+    </sect2>
+
+<!-- ####### Resources | IRC ####### -->
+
+    <sect2 id="irc">
+      <title>IRC</title>
+      <para>
+        Internet Relay Chat (IRC) is a fast and easy way to get in
+        touch with other GDP members.  There are generally at least a
+        few members here who can answer questions or discuss
+        documentation issues.  The IRC channel is #docs at
+        irc.gnome.org.
+      </para>
+    </sect2>
+  </sect1>
+  
+<!-- ################# Example Docs ###############
+
+  <appendix id="exampledocs">
+    <title>Example Docs</title> 
+
+####### Example Docs | Example 1: Application Manual ####### 
+
+    <sect1 id="ex1">
+      <title>Example 1: Application Manual</title>
+      <programlisting>
+<![CDATA[ (Put sgml here.)]]> </programlisting>
+    </sect1>
+
+####### Example Docs | Example 2: Applet Manual ####### 
+
+    <sect1 id="ex2">
+      <title>Example 2: Applet Manual</title>
+      <programlisting>
+<![CDATA[(Put sgml here.)]]> </programlisting>
+    </sect1>
+
+##### Example Docs | Example 3: Application Context Sensitive Help ####
+
+    <sect1 id="ex3">
+      <title>Example 3: Application Context Sensitive Help</title>
+      <programlisting>
+<![CDATA[(Put sgml here.)]]> </programlisting>
+    </sect1>
+
+####### Example Docs | Example 4: Complete Application: gnome-hello  #######
+
+    <sect1 id="ex4">
+      <title>Example 4: Complete Application: gnome-hello</title>
+      <programlisting>
+<![CDATA[(Put sgml here.)]]> </programlisting>
+    </sect1>
+
+####### Example Docs | Example 5: Tutorial #######
+
+    <sect1 id="ex5">
+      <title>Example 5: Tutorial</title>
+      <programlisting>
+<![CDATA[(Put sgml here.)]]> </programlisting>
+    </sect1>
+  </appendix>-->
+  
+<!-- ################# Document Templates ############### -->
+
+  <appendix id="templates">
+    <title>Document Templates</title> 
+<!-- ####### Document Templates | Templates 1: Application Manual ####### -->
+
+    <sect1 id="template1">
+      <title>Template 1: Application Manual</title>
+      <para>
+        The following template should be used for all application
+        manuals.  You can always get the latest copy of this
+        template from  <ulink type="http"
+        url="http://developer.gnome.org/projects/gdp/templates.html">GDP
+        Documentation Templates</ulink>.
+        <programlisting>
+
+<![CDATA[
+<!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+        <!-- if not using PNG graphic, replace reference above with
+             .....PUBLIC "-//OASIS//DTD DocBook V3.1//EN"[
+         -->
+<!ENTITY version "1.0.53">
+        <!-- replace version above with actual application version number-->
+	<!--  Template Version: 1.0.1  (do not remove this line) -->
+]>
+
+
+<!-- This is a GNOME documentation template, designed by the GNOME
+  Documentation Project Team. Please use it for writing GNOME
+  documentation, making obvious changes. In particular, all the words
+  written in UPPERCASE (with the exception of GNOME) should be
+  replaced. As for "legalnotice", please leave the reference
+  unchanged.
+
+  Remember that this is a guide, rather than a perfect model to follow
+  slavishly. Make your manual logical and readable.  And don't forget
+  to remove these comments in your final documentation!  ;-)
+  -->
+
+<!-- =============Document Header ============================= -->
+
+<article id="index"> <!-- please do not change the id -->
+
+  <artheader>
+    <title>MY-GNOME-APP</title>
+    <copyright>
+      <year>2000</year>
+      <holder>ME-THE-AUTHOR</holder>
+    </copyright>
+
+  <!-- translators: uncomment this:
+
+  <copyright>
+   <year>2000</year>
+   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
+  </copyright>
+
+   -->
+
+  <!-- do not put authorname in the header except in copyright - use
+  section "authors" below -->
+
+    <legalnotice>
+      <para>
+        Permission is granted to copy, distribute and/or modify this
+        document under the terms of the <citetitle>GNU Free
+        Documentation License</citetitle>, Version 1.1 or any later
+        version published by the Free Software Foundation with no
+        Invariant Sections, no Front-Cover Texts, and no Back-Cover
+        Texts. You may obtain a copy of the <citetitle>GNU Free
+        Documentation License</citetitle> from the Free Software
+        Foundation by visiting <ulink type="http"
+        url="http://www.fsf.org">their Web site</ulink> or by writing
+        to: Free Software Foundation, Inc., 59 Temple Place - Suite
+        330, Boston, MA 02111-1307, USA.
+      </para>
+      <para>
+        Many of the names used by companies to distinguish their
+        products and services are claimed as trademarks. Where those
+        names appear in any GNOME documentation, and those trademarks
+        are made aware to the members of the GNOME Documentation
+        Project, the names have been printed in caps or initial caps.
+      </para>
+    </legalnotice>
+
+  <!-- this is the version of manual, not application --> 
+    <releaseinfo>
+       This is version 1.0 of MY-GNOME-APP manual.
+    </releaseinfo>
+
+  </artheader>
+
+ <!-- ============= Document Body ============================= -->
+
+ <!-- ============= Introduction ============================== -->
+  <sect1 id="intro">
+    <title>Introduction</title>
+
+    <para>
+     <application>MY-GNOME-APP</application> is an application which
+     proves mathematical theorems.  It has all the basic features
+     expected from a mathematical theorem prover, as well as a number
+     of advanced ones, such as proof by confusion.  In fact, many of
+     the proofs produced by <application>MY-GNOME-APP</application>
+     are so complex that they are capable of proving almost anything
+     with a virtually null likelihood of being disproven.  It also has
+     the very popular predecessor of proof by confusion, proof by
+     dialog, first implemented by Plato.
+    </para>
+    <para>
+      It also allows you to save and print theorem proofs and to add
+      comments to the proofs it produces.
+    </para>
+
+    <para>
+      To run <application>MY-GNOME-APP</application>, select
+      <menuchoice>
+	<guisubmenu>SUBMENU</guisubmenu>
+	<guimenuitem>MY-GNOME-APP</guimenuitem>
+      </menuchoice>
+      from the <guimenu>Main Menu</guimenu>, or type
+      <command>MYGNOMEAPP</command> on the command line.
+  </para>
+
+    <para>
+      <application>MY-GNOME-APP</application> is included in the
+      <filename>GNOME-PACKAGE</filename> package, which is part of the
+      GNOME desktop environment. This document describes version
+      &version; of <application>MY-GNOME-APP</application>.
+    </para>
+  </sect1>
+
+
+ <!-- ================ Usage ================================ -->
+ <!-- This section should describe basic usage of the application. -->
+
+  <sect1 id="usage">
+    <title>Using MY-GNOME-APP</title>
+    <para>
+      <application>MY-GNOME-APP</application> can be used to produce a
+      perfect proof of <emphasis>any</emphasis> mathematical theorem
+      (provided, of course, that this theorem is correct), thus
+      providing for new users an easy-to-use graphical interface to
+      modern mathematics. This section describes basic usage of
+      <application>MY-GNOME-APP</application>.
+    </para>
+
+    <!-- ========= Basic Usage =========================== -->
+    <sect2 id="mainwin">
+      <title>Basic usage</title>
+      <para>
+        Starting <application>MY-GNOME-APP</application> opens the
+        <interface>Main window</interface>, shown in <xref
+        linkend="mainwindow-fig">. The window is at first empty.
+
+        <!-- ==== Figure ==== -->
+        <figure id="mainwindow-fig">
+	  <title>MY-GNOME-APP Main Window</title>
+	  <screenshot>
+	    <screeninfo>MY-GNOME-APP Main Window</screeninfo>
+	    <graphic fileref="SCREENSHOT" format="png" srccredit="ME">
+            </graphic>
+	  </screenshot>
+	</figure>
+    <!-- ==== End of Figure ==== -->
+      </para> 
+
+
+ <!-- For this app, one could put "proving" or "edit" (probably even
+      both of them) as sect2's seperate from the main window
+      section. Since they were both so closely involved with the main
+      window, I decided to have them as sect3's isntead. Judgement
+      call. -->
+
+      <sect3 id="proving">
+	<title>Proving a Theorem</title>
+	<para>
+          To get a proof of a theorem, select
+          <menuchoice>
+	    <guisubmenu>File</guisubmenu>
+	    <guimenuitem>New</guimenuitem>
+	  </menuchoice>,
+            which will
+	    bring up the <interface>New Proof</interface> dialog box.
+	    Enter the statement of the theorem in the
+	    <guilabel>Theorem statement</guilabel> field, select your
+	    desired proof type from the drop-down menu, and and press
+	    <guibutton>Prove!</guibutton>.
+        </para>
+	<para>
+          If <application>MY-GNOME-APP</application> cannot prove the
+          theorem by the method you have chosen, or if you have not
+          selected a proof type at all,
+          <application>MY-GNOME-APP</application> will attempt to
+          choose the one that it thinks is most conclusive.  In order,
+          it will attempt to prove the theorem with the following techniques: 
+     
+                <variablelist>
+	    <varlistentry>
+	      <term>Deduction</term>
+	      <listitem>
+		<para>
+                  This is a proof method that is generally accepted
+                  for full credit by Logic professors.
+                </para>
+	      </listitem>
+	    </varlistentry>
+	    <varlistentry>
+            <term>Induction</term>
+	    <listitem>
+	      <para>
+                This logical style will also earn you full credit on
+                your homework.
+             </para>
+	    </listitem>
+            </varlistentry>
+	    <varlistentry>
+	      <term>Dialog</term>
+	      <listitem>
+	      <para>
+                This logical method is best for Philosophy classes,
+                and will probably only merit partial credit on Logic
+                or Mathematics homework.
+              </para>
+	    </listitem>
+            </varlistentry>
+            <varlistentry>
+	      <term>Confusion</term>
+	      <listitem>
+	      <para>
+                Suitable only for political debates, battles of wits
+                against the unarmed, and Philosophy classes focusing
+                on the works of Kant. Use with caution.
+              </para>
+	      </listitem>
+	    </varlistentry>
+	  </variablelist>
+          </para>
+
+   <!-- You might want to include a note, warning, or tip, e.g. -->
+	
+	<warning>
+	  <title>Proving Incorrect Theorms</title>
+	  <para>
+            <application>MY-GNOME-APP</application> cannot prove
+            incorrect theorems. If the theorem you have entered is not
+            demonstrably true, you will get a message to that effect
+            in the main window.  To disprove a theorem, ask
+            <application>MY-GNOME-APP</application> to prove its
+            logical inverse.
+          </para>
+	</warning>
+      </sect3>
+      <sect3 id="editing">
+	<title>Editing Proofs</title>
+	<para>
+          Once you have proven the theorem, it will be displayed in
+          the <interface>main window</interface>.  There, you can read
+          it over, choose text styles for different portions of it,
+          and make comments on it. This section will guide you through
+          that process.
+        </para>
+	<para>
+          To alter text styles, first select the statement you wish to
+          change by clicking on it once.  You can select several
+          statements by Then, choose the style you want to apply from
+          the <guisubmenu>Style</guisubmenu> submenu of the
+          <guimenu>Edit</guimenu> menu.
+          <application>MY-GNOME-APP</application> will convert the
+          text to that style.
+        </para>
+        <para>
+          You can also enter comments on a statement by selecting that
+          statement, and then beginning to type.  Comments will appear
+          after the statement you have selected.
+        </para>
+
+	<note>
+	  <title>Altering The Proofs Themselves</title>
+          <para>
+            <application>MY-GNOME-APP</application> does not allow you
+            to alter a proof it has produced itself.  You can, save
+            your proof as a plain text file (using the
+            <guimenuitem>Save as...</guimenuitem> menu), and alter it
+            that way.  Be aware, however, that
+            <application>MY-GNOME-APP</application> uses its own file
+            format for saved proofs, and cannot re-open a file unless
+            it is in the .mga format.
+          </para>
+	</note>
+      </sect3>
+
+
+  <!-- If there are other functions performed from the main window,
+       they belong here.   -->
+
+    </sect2>
+ 
+    <!-- ========================================================= 
+      Additional Sect2's should describe additional windows, such as
+      larger dialog boxes, or functionality that differs significantly
+      from the most immediate functions of the application. Make the
+      structure logical.
+      =============================================================  -->
+
+
+    <sect2 id="toolbar">
+      <title>Toolbar</title>
+      <para>
+        The toolbar (shown in <xref linkend="figure-usage-toolbar">)
+        provides access to several commonly used routines.
+        <figure id="figure-usage-toolbar">
+	  <title>MY-GNOME-APP Toolbar</title>
+	  <screenshot>
+	    <screeninfo>MY-GNOME-APP Toolbar</screeninfo>
+	    <graphic fileref="usage-toolbar.png" format="png"></graphic>
+	  </screenshot>
+	</figure>
+        <variablelist>
+	  <varlistentry>
+	    <term>New</term>
+	    <listitem>
+	      <para>
+                Brings up the <interface>New Theorem</interface>
+                dialog.
+              </para>
+	    </listitem>
+	  </varlistentry>
+	  <varlistentry>
+	    <term>Open</term>
+	    <listitem>
+	      <para>
+                 Open an exisiting theorem you want to prove, or a
+                 completed proof you wish to print or format.
+               </para>
+	    </listitem>
+	  </varlistentry>
+	  <varlistentry>
+	    <term>Save</term>
+	    <listitem>
+	      <para>
+	         Save the current theorem permanently in a
+	         file.
+               </para>
+	    </listitem> 
+	  </varlistentry>
+	</variablelist>
+       </para>
+    </sect2>
+    <!-- ========= Menus =========================== --> 
+
+    <sect2 id="menubar">
+
+       <!-- Describing the menubar ensures comprehensive feature
+       coverage. Nest itemizedlists inside variablelists so that each
+       menu is easily located by indexing software. Proper indentation
+       makes it easier! -->
+
+      <title>Menus</title>
+      <para>
+	The menu bar, located at the top of the <interface>Main
+	Window</interface>, contains the following menus:
+       </para>
+      <variablelist>
+	<varlistentry>
+	  <term><guimenu>File</guimenu></term>
+	  <listitem>
+	    <para>
+	       This menu contains:
+	       <itemizedlist>
+		<listitem>
+		  <para>
+	            <menuchoice>
+		      <shortcut>
+			<keycap>F3</keycap>
+		      </shortcut>
+		      <guimenuitem>Open</guimenuitem>
+		     </menuchoice>
+	             &mdash; This opens a file which is saved on your computer.
+	           </para>
+		</listitem>
+		<listitem>
+		  <para>
+	             <menuchoice>
+		      <shortcut>
+			<keycombo><keycap>Ctrl</keycap><keycap>S</keycap></keycombo>
+		      </shortcut>
+		      <guimenuitem>Save</guimenuitem>
+		    </menuchoice>
+	            &mdash; This saves your file.
+	          </para>
+		</listitem>
+		<listitem>
+		  <para>
+	             <menuchoice>
+		      <shortcut>
+			<keycombo><keycap>Ctrl</keycap><keycap>W</keycap></keycombo>
+		      </shortcut>
+		      <guimenuitem>Close</guimenuitem>
+		    </menuchoice>
+	            &mdash; This closes your file.
+	          </para>
+		</listitem>
+		<listitem>
+		  <para>
+	            <menuchoice>
+		      <shortcut>
+			<keycombo><keycap>Ctrl</keycap><keycap>Q</keycap></keycombo>
+		      </shortcut>
+		      <guimenuitem>Exit</guimenuitem>
+		    </menuchoice>
+	            &mdash; This quits the application.
+	          </para>
+		</listitem>
+	      </itemizedlist>
+	  </para>
+	  </listitem>
+	</varlistentry>
+	
+	<varlistentry>
+	  <term><guimenu>Edit</guimenu></term>
+	  <listitem>
+	    <para>
+	   This menu contains:
+	   <itemizedlist>
+		<listitem>
+		  <para>
+	            <menuchoice>
+		      <shortcut>
+			<keycombo><keycap>Ctrl</keycap><keycap>X</keycap></keycombo>
+		      </shortcut>
+		      <guimenuitem>Cut</guimenuitem>
+		    </menuchoice>
+	            &mdash; This removes any text or data which is selected and
+	            places it in the buffer.
+	          </para>
+		</listitem>
+		<listitem>
+		  <para>
+	            <menuchoice>
+		      <shortcut>
+			<keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>
+		      </shortcut>
+		      <guimenuitem>Copy</guimenuitem>
+		    </menuchoice>
+	            &mdash; This copies any text or data which is selected into
+	            the buffer.
+	          </para>
+		</listitem>
+		<listitem>
+		  <para>
+	           <menuchoice>
+		      <shortcut>
+			<keycombo><keycap>Ctrl</keycap><keycap>V</keycap></keycombo>
+		      </shortcut>
+		      <guimenuitem>Paste</guimenuitem>
+		    </menuchoice>
+	            &mdash; This pastes any text or data which is copied into
+	            the buffer.
+	        </para>
+		</listitem>
+		<listitem>
+		  <para>
+	             <guimenuitem>COMMAND1&hellip;</guimenuitem>
+	             &mdash; This opens the <interface>COMMAND1</interface>
+	             dialog, which is used to ....
+	          </para>
+		</listitem>
+		<listitem>
+		  <para>
+	            <guimenuitem>COMMAND2</guimenuitem>
+	            &mdash; This ....
+	          </para>
+		</listitem>
+	      </itemizedlist>
+	    </para>
+	  </listitem>
+	</varlistentry>
+	
+
+	<varlistentry>
+	  <term><guimenu>Settings</guimenu></term>
+	  <listitem>
+	    <para>
+	   This menu contains:
+	   <itemizedlist>
+		<listitem>
+		  <para>
+	      <guimenuitem>Preferences&hellip;</guimenuitem>
+	       &mdash; This opens the <link
+	       linkend="prefs"><interface>Preferences
+	       Dialog</interface></link>, which allows you to configure
+	       many settings.
+	     </para>
+		</listitem>
+		<listitem>
+		  <para>
+	            <guimenuitem>COMMAND3</guimenuitem> &mdash;
+    	            This command does something.
+    	    	   </para>
+		</listitem>
+	      </itemizedlist>
+	    </para>
+	  </listitem>
+	</varlistentry>
+	
+	<varlistentry>
+	  <term><guimenu>Help</guimenu></term>
+	  <listitem>
+	    <para>
+	      This menu contains:
+	       <itemizedlist>
+		<listitem>
+		  <para>
+	             <guimenuitem>Manual</guimenuitem> &mdash; This
+    	              opens the <application>GNOME Help
+    	              Browser</application> and displays this manual.
+	          </para>
+		</listitem>
+		
+		<listitem>
+		  <para>
+	            <guimenuitem>About</guimenuitem> &mdash; This
+    	            opens the <interface>About</interface> dialog
+    	            which shows basic information about
+    	            <application>MY-GNOME-APP</application>, such as
+    	            the author's name, the application version number,
+    	            and the URL for the application's Web page if one
+    	            exists.
+	          </para>
+		</listitem>
+	      </itemizedlist>
+            </para>
+	  </listitem>
+	</varlistentry>
+      </variablelist>
+    </sect2>
+  </sect1>
+
+
+
+ <!-- ============= Customization ============================= -->
+
+ <sect1 id="prefs">
+  <title>Customization</title>
+  <para>
+   To change the application settings, select
+   <menuchoice>
+    <guimenu>Settings</guimenu>
+    <guimenuitem>Preferences...</guimenuitem>
+   </menuchoice>.  This opens the
+   <interface>Preferences</interface> dialog, shown in <xref
+   linkend="preferences-fig">.
+  </para>
+
+  <figure id="preferences-fig">
+   <title>Preferences Dialog</title>
+   <screenshot>
+    <screeninfo>Preferences Dialog</screeninfo>
+    <graphic fileref="SCREENSHOT" format="png"
+     srccredit="ME">
+    </graphic>
+   </screenshot>
+  </figure>
+
+  <para>
+   The properties in the <guilabel>PREFSTABNAME</guilabel> tab are:
+   
+   <!--many people use itemizedlists in cases like this. Variablelists
+   are more appropriate -->
+
+      <variablelist>
+	<varlistentry>
+	  <term> <guilabel>Default Text Style</guilabel></term>
+	  <listitem>
+	    <para>
+              Select the default text style for statements in your
+              proof.  You can still change the style for individual
+              proofs or sections of a proof at a later date.
+            </para>
+	  </listitem>
+	</varlistentry>
+	<varlistentry>
+	  <term>(Configuration Item Label)</term>
+	  <listitem>
+	    <para>
+             (Description of Configuration)
+             </para>
+	  </listitem>
+	</varlistentry>
+	<varlistentry>
+	  <term>(Configuration Item Label)</term>
+	  <listitem>
+	    <para>
+             (Description of Configuration)
+             </para>
+	  </listitem>
+	</varlistentry>
+      </variablelist>
+    </para>
+
+    <para>
+     The properties in the <guilabel>SECONDTABNAME</guilabel> tab are:
+       <variablelist>
+	<varlistentry>
+	  <term>(Configuration Item Label)</term>
+	  <listitem>
+	    <para>
+             (Description of Configuration)
+             </para>
+	  </listitem>
+	</varlistentry>
+	<varlistentry>
+	  <term>(Configuration Item Label)</term>
+	  <listitem>
+	    <para>
+             (Description of Configuration)
+             </para>
+	  </listitem>
+	</varlistentry>
+      </variablelist>
+    </para>
+
+  <para>
+    After you have made all the changes you want, click on
+    <guibutton>OK</guibutton> to apply the changes and close the
+    <interface>Properties</interface> dialog. To cancel the changes
+    and return to previous values, click the
+    <guibutton>Close</guibutton> button.
+  </para>
+
+ </sect1>
+
+
+ <!-- ============= Various Sections ============================= -->
+
+ <!-- Here you should add, if necessary, several more sect1's,
+ describing other windows (besides the main one), file formats,
+ preferences dialogs,  etc. as appropriate. Try not to make any of
+ these sections too long. -->
+
+
+ <!-- ============= Bugs ================================== -->
+ <!-- This section should describe known bugs and limitations of
+      the program if there are any - please be frank and list all
+      problems you know of. -->
+ <sect1 id="bugs">
+  <title>Known Bugs and Limitations</title>
+  <para>
+   This application has no known bugs.
+  </para>
+ </sect1>
+
+
+<!-- ============= Authors ================================ -->
+
+ <sect1 id="authors">
+  <title>Authors</title>
+  <para>
+   <application>MY-GNOME-APP</application> was written by GNOME-HACKER
+   (<email>hacker at gnome.org</email>). To find more information about
+   <application>MY-GNOME-APP</application>, please visit the <ulink
+   url="http://www.my-gnome-app.org" type="http">MY-GNOME-APP Web
+   page</ulink>.  Please send all comments, suggestions, and bug
+   reports to the <ulink url="http://bugs.gnome.org" type="http">GNOME
+   bug tracking database</ulink>. (Instructions for submitting bug
+   reports can be found <ulink
+   url="http://bugs.gnome.org/Reporting.html" type="http">
+   on-line</ulink>.)  You can also use <application>Bug Report
+   Tool</application> (<command>bug-buddy</command>), available in the
+   <guisubmenu>Utilities</guisubmenu> submenu of <guimenu>Main
+   Menu</guimenu>, for submitting bug reports.
+  </para>
+
+  <para>
+   This manual was written by ME
+   (<email>MYNAME at MYADDRESS</email>). Please send all comments and
+   suggestions regarding this manual to the <ulink type="http"
+   url="http://developer.gnome.org/projects/gdp">GNOME Documentation 
+   Project</ulink> by sending an email to 
+   <email>docs at gnome.org</email>. You can also add your comments online 
+   by using the <ulink type="http" 
+   url="http://www.gnome.org/gdp/doctable/">GNOME Documentation Status
+   Table</ulink>.
+  </para>
+
+  <!-- For translations: uncomment this:
+
+  <para>
+   Latin translation was done by ME
+   (<email>MYNAME at MYADDRESS</email>). Please send all  comments  and
+   suggestions regarding this translation to SOMEWHERE.
+  </para>
+
+  -->
+
+ </sect1>
+
+
+ <!-- ============= Application License ============================= -->
+
+ <sect1 id="license">
+  <title>License</title>
+  <para>
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the <citetitle>GNU General Public
+   License</citetitle> as published by the Free Software Foundation;
+   either version 2 of the License, or (at your option) any later
+   version.
+  </para>
+  <para>
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   <citetitle>GNU General Public License</citetitle> for more details.
+  </para>
+  <para>
+   A copy of the <citetitle>GNU General Public License</citetitle> is
+   included as an appendix to the <citetitle>GNOME Users
+   Guide</citetitle>.  You may also obtain a copy of the
+   <citetitle>GNU General Public License</citetitle> from the Free
+   Software Foundation by visiting <ulink type="http"
+   url="http://www.fsf.org">their Web site</ulink> or by writing to
+   <address>
+    Free Software Foundation, Inc.
+    <street>59 Temple Place</street> - Suite 330
+    <city>Boston</city>, <state>MA</state> <postcode>02111-1307</postcode>
+    <country>USA</country>
+   </address>
+  </para>
+ </sect1>
+</article>
+
+
+
+
+
+
+
+
+
+]]>
+
+
+</programlisting>
+      </para>
+    </sect1>
+
+<!-- ####### Document Templates | Templates 2-1.x: Applet Manual ####### -->
+
+    <sect1 id="template2-1x">
+      <title>Template 2: Applet Manual For GNOME 1.x</title>
+      <para>
+        The following templates should be used for all applet
+        manuals in GNOME 1.x releases.  You can always get the latest
+        copy of these templates from  <ulink type="http"
+        url="http://developer.gnome.org/projects/gdp/templates.html">GDP
+        Documentation Templates</ulink>.  Note that the template
+        consists of two files; the first file calls the second as an
+        entity. You should name the first file
+        <filename><replaceable>appletname</replaceable>-applet.sgml</filename>
+        and the second file should be named
+        <filename><replaceable>appletname</replaceable>.sgml</filename>,
+        where
+        <filename><replaceable>appletname</replaceable></filename> is
+        the name of the applet.
+        <programlisting>
+
+<![CDATA[
+<!DOCTYPE Article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+ <!entity APPLETNAME.sgml SYSTEM "applet_template_1.sgml">
+        <!--  Template Version: 1.0.1  (do not remove this line) -->
+]>
+
+<!-- This is a GNOME documentation template, designed by the GNOME
+  Documentation Project Team. Please use it for writing GNOME
+  documentation, making obvious changes. In particular, all the words
+  written in UPPERCASE (with the exception of GNOME) should be
+  replaced. As for "legalnotice", please leave the reference
+  unchanged,make sure to add/remove trademarks to the list as
+  appropriate for your document.
+
+  Please don't forget to remove these comments in your final documentation,
+  thanks ;-).
+-->
+
+<article id="index"> <!-- please do not change the id -->
+
+ <!-- ============= Document Header ============================= -->
+ <artheader> 
+  <title>APPLETNAME Applet</title>
+  <copyright>
+   <year>2000</year>
+   <holder>YOURFULLNAME</holder>
+  </copyright>
+
+  <!-- translators: uncomment this:
+
+  <copyright>
+   <year>2000</year>
+   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
+  </copyright>
+
+   -->
+
+  <!-- do not put authorname in the header except in copyright - use
+  section "authors" below -->
+
+  <legalnotice>
+   <para>
+    Permission is granted to copy, distribute and/or modify this
+    document under the terms of the <citetitle>GNU Free Documentation
+    License</citetitle>, Version 1.1 or any later version published
+    by the Free Software Foundation with no Invariant Sections, no
+    Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy
+    of the <citetitle>GNU Free Documentation License</citetitle> from
+    the Free Software Foundation by visiting <ulink type="http"
+    url="http://www.fsf.org">their Web site</ulink> or by writing to:
+    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+    Boston, MA 02111-1307, USA.
+   </para>
+   <para>
+    Many of the names used by companies to distinguish their products and
+    services are claimed as trademarks. Where those names appear in any
+    GNOME documentation, and those trademarks are made aware to the members
+    of the GNOME Documentation Project, the names have been printed in caps
+    or initial caps.
+   </para>
+  </legalnotice>
+
+  <releaseinfo>
+   This is version XXX of the APPLETNAME applet manual.
+  </releaseinfo>
+ </artheader>
+
+ <!-- ============= Document Body ============================= -->
+
+ &APPLETNAME.sgml;
+
+</article>
+
+
+]]>
+
+
+</programlisting>
+        <programlisting>
+<![CDATA[
+        <!--  Template Version: 1.0.1  (do not remove this line) -->
+
+ <sect1 id="APPLET">
+  <title>APPLET Applet</title>
+
+  <para>
+   <application>APPLET</application> applet, shown in <xref
+   linkend="APPLETapplet-fig">, allows you to &hellip;.  To add this
+   applet to a <interface>Panel</interface>, 
+   right-click on the <interface>Panel</interface> and choose
+   <menuchoice>
+    <guimenu>Panel</guimenu>
+    <guisubmenu>Add to panel</guisubmenu>
+    <guisubmenu>Applet</guisubmenu>
+    <guisubmenu>SECTION</guisubmenu>
+    <guimenuitem>APPLET</guimenuitem>
+   </menuchoice>.
+  </para>
+
+  <figure id="APPLETapplet-fig">
+   <title>APPLET Applet</title>
+   <screenshot>
+    <screeninfo>APPLET Applet</screeninfo>
+    <graphic format="png" fileref="APPLET_applet" 
+    srccredit="YOURNAME">
+    </graphic>
+   </screenshot>
+  </figure>
+
+  <!-- ============= Usage  ================================ -->
+  <sect2 id="APPLET-usage">
+   <title>Usage</title>
+   <para>
+    (Place a short description of how to use the applet here.)
+   </para>
+
+   <para>
+    Right-clicking on the applet brings up a menu containing the
+    following items:
+    <itemizedlist>
+
+     <listitem>
+      <para>
+       <guimenuitem>Properties&hellip;</guimenuitem> &mdash;
+       opens the <link linkend="APPLET-prefs">
+       <guilabel>Properties</guilabel></link> dialog.
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
+       <guimenuitem>Help</guimenuitem> &mdash;
+       displays this document.
+      </para>
+     </listitem>
+
+     <listitem>
+      <para>
+       <guimenuitem>About&hellip;</guimenuitem> &mdash;
+       shows basic information about <application>APPLET
+       Applet</application>, including the applet's version and the
+       author's name.
+      </para>
+     </listitem>
+
+    </itemizedlist>
+   </para>
+  </sect2>
+
+
+  <!-- ============= Customization ============================= -->
+  <sect2 id="APPLET-prefs">
+    <title>Customization</title>
+    <para>
+      You can customize <application>APPLET</application>
+      applet by right-clicking on it and choosing
+      <guimenuitem>Properties&hellip;</guimenuitem>. This will open the
+      <interface>Properties</interface> dialog(shown in <xref
+      linkend="APPLET-settings-fig">), which allows you to
+      change various settings.
+    </para>
+
+    <figure id="APPLET-settings-fig">
+     <title>Properties dialog</title>
+     <screenshot>
+      <screeninfo>Properties dialog</screeninfo>
+      <graphic format="png" fileref="APPLET_settings"
+      srccredit="YOURNAME">
+      </graphic>
+     </screenshot>
+    </figure>
+
+    <para>
+     The properties are:
+     <itemizedlist>
+
+      <listitem>
+       <para>
+        (Configuration Item Label) &mdash; If this button is
+        checked&hellip;(description)
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        (Configuration Item Label) &mdash; Selecting this
+        button&hellip;(description)
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        (Configuration Item Label) &mdash; Enter the name of
+        &hellip;(description)
+       </para>
+      </listitem>
+     </itemizedlist>
+    </para>
+
+    <para> 
+      After you have made all the changes you want, click on
+      <guibutton>OK</guibutton> to apply the changes and close the
+      <interface>Properties</interface> dialog. To cancel the changes
+      and return to previous values, click the
+      <guibutton>Close</guibutton> button.
+    </para>
+  </sect2>
+
+
+  <!-- ============= Bugs ================================== -->
+  <!-- This section should describe known bugs and limitations of
+       the program if there are any - please be frank and list all
+       problems you know of -->
+  <sect2 id="bugs">
+   <title>Known Bugs and Limitations</title>
+   <para>
+    This applet has no known bugs.
+   </para>
+  </sect2>
+
+
+  <!-- ============= Authors ================================ -->
+
+  <sect2 id="authors">
+   <title>Authors</title>
+   <para>
+    <application>APPLET</application> was written by GNOME-HACKER
+    (<email>hacker at gnome.org</email>).  Please send all comments,
+    suggestions, and bug 
+    reports to the <ulink url="http://bugs.gnome.org" type="http">GNOME
+    bug tracking database</ulink>. (Instructions for submitting bug
+    reports can be found <ulink
+    url="http://bugs.gnome.org/Reporting.html" type="http">
+    on-line</ulink>.  You can also use <application>Bug Report
+    Tool</application> (<command>bug-buddy</command>), available in the
+    <guisubmenu>Utilities</guisubmenu> submenu of <guimenu>Main
+    Menu</guimenu>, for submitting bug reports.
+   </para>
+
+   <para>
+    This manual was written by ME
+    (<email>MYNAME at MYADDRESS</email>). Please send all comments and
+    suggestions regarding this manual to the <ulink type="http"
+    url="http://developer.gnome.org/projects/gdp">GNOME Documentation
+    Project</ulink>  by sending an email to
+    <email>docs at gnome.org</email>. You can also submit comments online
+    by using the <ulink type="http"
+    url="http://www.gnome.org/gdp/doctable/">GNOME Documentation
+    Status Table</ulink>.
+   </para>
+
+   <!-- For translations: uncomment this:
+
+   <para>
+    Latin translation was done by ME
+    (<email>MYNAME at MYADDRESS</email>). Please send all  comments  and
+    suggestions regarding this translation to SOMEWHERE.
+   </para>
+
+   -->
+
+  </sect2>
+
+
+  <!-- ============= Application License ============================= -->
+
+  <sect2 id="license">
+   <title>License</title>
+   <para>
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the <citetitle>GNU General Public
+    License</citetitle> as published by the Free Software Foundation;
+    either version 2 of the License, or (at your option) any later
+    version.
+   </para>
+   <para>
+    This program is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    <citetitle>GNU General Public License</citetitle> for more details.
+   </para>
+   <para>
+    A copy of the <citetitle>GNU General Public License</citetitle> is
+    included as an appendix to the <citetitle>GNOME Users
+    Guide</citetitle>.  You may also obtain a copy of the
+    <citetitle>GNU General Public License</citetitle> from the Free
+    Software Foundation by visiting <ulink type="http"
+    url="http://www.fsf.org">their Web site</ulink> or by writing to
+    <address>
+     Free Software Foundation, Inc.
+     <street>59 Temple Place</street> - Suite 330
+     <city>Boston</city>, <state>MA</state> <postcode>02111-1307</postcode>
+     <country>USA</country>
+    </address>
+   </para>
+  </sect2>
+
+ </sect1>
+
+
+
+
+]]>
+
+
+
+</programlisting>
+      </para>
+    </sect1>
+
+<!-- ####### Document Templates | Templates 2-2.x: Applet Manual ####### -->
+
+    <sect1 id="template2-2x">
+      <title>Template 2: Applet Manual For GNOME 2.x</title>
+      <para>
+        The following templates should be used for all applet
+        manuals in GNOME 2.x releases.  You can always get the latest
+        copy of these templates from  <ulink type="http"
+        url="http://developer.gnome.org/projects/gdp/templates.html">GDP
+        Documentation Templates</ulink>.
+      </para>
+      <para>
+        Note that this template consists of two files.  The first file
+        is an introductory chapter. You should not modify this
+        chapter. The second file is the actual applet document, which
+        you should modify to describe the applet you are documenting.
+        You can name the first file whatever you like, such as
+        <filename>gnome-applets.sgml</filename>.  Name the second file
+        according to the applet's name:
+        <filename><replaceable>appletname</replaceable>-applet.sgml</filename>.
+        Make sure you update the entity
+        at the top of the shell document to reflect the new name of
+        the applet document.
+      </para>
+      <para>
+        <programlisting>
+<![CDATA[
+<!DOCTYPE book PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
+<!ENTITY TEMPLATE-APPLET SYSTEM "gnome-applet-template.sgml.part">
+
+]>
+
+<book id="gnome-applets">
+
+ <bookinfo>
+  <title>GNOME Applets</title>
+  <authorgroup>
+   <author><firstname>Telsa</firstname><surname>Gwynne</surname></author>
+   <author><firstname>John</firstname><surname>Fleck</surname></author>
+   <author><firstname>David</firstname><surname>Mason</surname>
+      <affiliation><orgname>Red Hat, Inc.</orgname></affiliation>
+    </author>
+    <author><firstname>Dan</firstname><surname>Mueth</surname></author>
+    <author><firstname>Alexander</firstname><surname>Kirillov</surname></author>
+  </authorgroup>
+  <edition>GNOME Applets version 0.1 for GNOME 1.1.5</edition>
+  <pubdate>2000</pubdate>
+  <copyright>
+   <year>2000</year>
+   <holder>Telsa Gwynne, John Fleck, Red Hat Inc., Dan Mueth, and
+    Alexander Kirillov</holder> 
+  </copyright>
+  <legalnotice>
+   <para>
+    Permission is granted to make and distribute verbatim copies of this
+    manual provided the copyright notice and this permission notice are
+    preserved on all copies.
+   </para>
+   <para>
+    Permission is granted to copy and distribute modified versions of
+    this manual under the conditions for verbatim copying, provided that
+    the entire resulting derived work is distributed under the terms of a
+    permission notice identical to this one.
+   </para>
+   <para>
+    Permission is granted to copy and distribute translations of this
+    manual into another language, under the above conditions for modified
+    versions, except that this permission notice may be stated in a
+    translation approved by the Free Software Foundation.
+   </para>
+   <para>
+    Many of the names used by companies to distinguish their products and
+    services are claimed as trademarks. Where those names appear in any
+    GNOME documentation, and those trademarks are made aware to the members
+    of the GNOME Documentation Project, the names have been printed in caps
+    or initial caps.
+   </para>
+  </legalnotice>
+ </bookinfo>
+
+ <!-- #### Introduction ###### -->
+ <chapter id="applets-intro">
+  <title>Introduction</title> 
+
+  <!-- #### Intro | What Are Applets? ###### -->
+  <sect1 id="applets-what-are">
+   <title>What Are Applets?</title> 
+   <para>
+    Applets are one of the most popular and useful objects you can add
+    to your <interface>Panel</interface> to customize your desktop.
+    An applet is a small application which runs inside a small area of
+    your <interface>Panel</interface>. Applets have been written for
+    a wide range of purposes.  Some are very powerful interactive
+    tools, such as the <application>Tasklist</application> Applet
+    which allows you to easily 
+    control all of your main applications.  Others are simple system
+    monitors, displaying information such as the amount of power left
+    in the battery on your laptop (see <application>Battery Charge
+    Monitor</application>) or weather
+    information(see <application>GNOME Weather</application>).  Some
+    are simply for amusement(see <application>Fish</application>).
+   </para>
+
+   <para>
+    Applets are similar to swallowed applications in that both of them
+    reside within the <interface>Panel</interface>. However, 
+    swallowed applications are generally applications which were
+    not designed to run within the <interface>Panel</interface>.
+    Typically one will swallow an application which already exists in
+    the main <interface>desktop</interface> area, putting it into your
+    <interface>Panel</interface>.  The application will continue to
+    run in the <interface>Panel</interface> until you end the
+    application or  unswallow it,  placing it back onto the main part of
+    your desktop when you need to.
+   </para>
+
+   <para>
+    <figure id="example-applets-fig">
+     <title>Example Applets</title>
+     <screenshot>
+      <screeninfo>Example Applets</screeninfo>
+       <graphic fileref="example_applets" format="png"
+       srccredit="muet">
+       </graphic>
+     </screenshot>
+    </figure>
+    Several example applets are shown in <xref
+    linkend="example-applets-fig">.  From left to right, they are: (1)
+    <application>Mixer Applet</application>, which allows you to turn
+    on/off sound and control its volume by clicking on the applet.  (2)
+    <application>Sound Monitor</application> Applet, which displays
+    the current volume of sound being played and allows you to control
+    various sound features.  (3) <application>GTCD</application>
+    Applet, a CD player which has all its controls
+    available in the applet and displays the track and time. (4)
+    <application>Drive Mount</application> Applet, used to mount and
+    unmount drives with a single click of the mouse. (5)
+    <application>Desk Guide</application> which allows you to view
+    and control multiple virtual screens. (6)
+    <application>Tasklist</application> Applet which allows you to
+    control your various windows and applications.
+   </para>
+   <para>
+    There are many other applets to choose from.  The rest of this
+    chapter will explain the basic information to get you started
+    adding, moving, and removing applets from your
+    <interface>Panels</interface> and using them. The following
+    chapters go through each of the standard GNOME applets describing
+    them in detail.  There are also additional applets which can be
+    downloaded off the Web.   See <ulink type="http"
+     url="http://www.gnome.org/applist/list-martin.phtml">The GNOME
+    Software Map</ulink> for lists of additional GNOME applications
+    and applets. 
+   </para>
+   <para>
+    As you read through the the rest of this chapter, you should try
+    adding and removing applets from your <interface>Panel</interface> and
+    experiment with them freely.  
+   </para>
+  </sect1>
+
+  <!-- #### Intro | Adding, Moving, and Removing Applets ###### -->
+  <sect1 id="applet-add-move-replace">
+   <title>Adding, Moving, and Removing Applets</title>
+
+   <sect2 id="adding-applets">   
+    <title>Adding Applets to a Panel</title>
+    <para>
+     To add an applet to a <interface>Panel</interface>, right-click
+     on the <interface>Panel</interface> and select 
+     <menuchoice><guimenu>Panel</guimenu><guisubmenu>Add to panel</guisubmenu>
+     <guisubmenu>Applet</guisubmenu></menuchoice>. This will show you
+     the menu of all the applets on your system, divided into
+     categories. Choosing any applet from this menu will add it to the
+     <interface>Panel</interface>.
+    </para>
+   </sect2>
+
+   <sect2 id="moving-applets">
+    <title>Moving Applets In or Between Panels</title>
+    <para>
+     It is easy to move applets in a <interface>Panel</interface> or
+     between two <interface>Panels</interface>. If you have a
+     three-button mouse, just move the mouse over the applet, depress
+     the middle mouse button and drag the applet to its new location,
+     releasing the middle mouse button when you are finished.  Note
+     that you can drag applets within a <interface>Panel</interface>
+     or between two <interface>Panels</interface> this way. If you
+     don't have a three-button mouse, just 
+     right-click on the applet and choose
+     <guimenuitem>Move</guimenuitem>. The cursor will turn into a
+     cross and the applet will move with your mouse until you press
+     any mouse button to indicate you are finished moving it.
+     If, in the course of this movement, it hits
+     other objects, the behavior depends on the global preferences
+     you have set for your <interface>Panels</interface> in the
+     <application>GNOME Control Center</application>: the applet you are
+     moving can switch places with other objects, "push" all objects
+     it meets, or "jump" over all other objects without disturbing
+     them. You can also override the default behavior by holding
+     <keycap>Shift</keycap> button (for "push" mode),
+     <keycap>Ctrl</keycap> (for "switched" mode), or
+     <keycap>Alt</keycap> (for "free" mode, i.e. jumping other other
+     objects without disturbing them) button while dragging.
+    </para>
+    <para>
+     To change the global Panel preferences, right-click on any applet
+     or <interface>Panel</interface> and select 
+     <menuchoice>
+      <guimenu>Panel</guimenu>
+      <guimenuitem>Global Preferences...</guimenuitem>
+     </menuchoice>.
+     The <guilabel>Default movement mode</guilabel> is set under the
+     <guilabel>Applets</guilabel> tab.
+    </para>
+   </sect2>
+
+   <sect2 id="removing-applets">
+    <title>Removing Applets from a Panel</title> 
+    <para>  
+     To remove an applet from a <interface>Panel</interface>,
+     right-click on the applet and select <guimenuitem>Remove from
+     panel...</guimenuitem>. 
+    </para>
+   </sect2>
+  </sect1>
+
+
+  <!-- #### Intro | The Right-Click Pop-Up Menu ###### -->
+  <sect1 id="right-click-pop-up-menu">
+   <title>The Right-Click Pop-Up Menu</title>
+   <para>
+    Clicking the right mouse button on any applet brings up
+    a <guimenu>pop-up menu</guimenu>. This 
+    menu always has certain standard menu items in it and
+    often has additional items which vary depending on the particular
+    applet. 
+   </para>
+   <sect2 id="standard-right-click-items"> 
+    <title>Standard Pop-Up Items</title>
+    <para>
+     All applets should have the following items in their right-click
+     <guimenu>pop-up menu</guimenu>:
+     <variablelist>
+      <varlistentry>
+       <term>Remove from panel</term>
+       <listitem>
+        <para>
+         The <guimenuitem>Remove from panel</guimenuitem> menu item
+         removes the applet from the <interface>Panel</interface>. 
+        </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>Move</term>
+       <listitem>
+        <para>
+         After selecting <guimenuitem>Move</guimenuitem>, your mouse
+         pointer will change appearance (typically to a cross with
+         arrows in each direction). As you move your mouse, the applet
+         will move with it.  When you have finished moving the applet,
+         click any mouse button and the applet will anchor in its
+         current position.  Note that applets can be moved between two
+         <interface>Panels</interface> this way.
+        </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>Panel</term>
+       <listitem>
+        <para>
+         The <guisubmenu>Panel</guisubmenu> submenu contains various
+         items and submenus for adding and removing
+         <interface>Panels</interface> and applets and for changing
+         the configuration.
+        </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>About</term>
+       <listitem>
+        <para>
+         The <guimenuitem>About...</guimenuitem> menu item brings up a 
+         dialogue box containing various information about the applet,
+         typically including the applet's  name, version, author,
+         copyright, license and desciption. 
+        </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>Help</term>
+       <listitem>
+        <para>
+         The <guimenuitem>Help</guimenuitem> menu item brings up the help
+         manual for the applet. 
+        </para>
+       </listitem>
+      </varlistentry>
+     </variablelist>
+    </para>
+   </sect2>
+
+   <sect2 id="applet-properties-dialog"> 
+    <title>The Applet Properties Dialog</title>
+    <para>
+     Many applets have customizable properties.  These applets will
+     have a <guimenuitem>Properties...</guimenuitem> menu item in their
+     right-click <guimenu>pop-up menu</guimenu> which brings up the
+     <interface>Properties</interface> dialog where you can alter the 
+     appearance or behaviour of the applet.
+     <figure id="example-props-dialog-fig">
+      <title>An Example Applet Properties Dialog</title>
+      <screenshot>
+       <screeninfo>An Example Applets Properties Dialog</screeninfo>
+       <graphic fileref="applet_props_dialog" format="png"
+        srccredit="muet">
+       </graphic>
+      </screenshot>
+     </figure>
+     All <interface>Properties</interface> dialogs have the following
+     buttons at the bottom of the dialog:
+     <itemizedlist>
+      <listitem>
+       <para>
+        <guibutton>OK</guibutton> &mdash;
+        Pressing <guibutton>OK</guibutton> will activate any changes
+        in the properties you have made and close the
+        <interface>Properties</interface> dialog.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <guibutton>Apply</guibutton> &mdash;
+        Pressing <guibutton>Apply</guibutton> at any time will
+        make your changes active without closing the
+        <interface>Properties</interface> dialog.  This is helpful if
+        you would like to test the effects of the changes you have
+        made but may want to continue changing the properties.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <guibutton>Close</guibutton> &mdash;
+        Pressing <guibutton>Close</guibutton> will close the
+        <interface>Properties</interface> dialog.  Only changes in the
+        configuration which were previously applied with the
+        <guibutton>Apply</guibutton> button will persist.  Other
+        changes will not be made active.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <guibutton>Help</guibutton> &mdash;
+        Pressing <guibutton>Help</guibutton> brings up the manual for
+        the application, opening it to the page describing the
+        <interface>Properties</interface> dialog.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </para>
+   </sect2>
+ 
+   <sect2 id="common-right-click-items"> 
+    <title>Other Common Pop-Up Items</title>
+    <para>
+     Many applets also have one or more of the following items in their
+     right-click pop-up menu:
+     <variablelist>
+      <varlistentry>
+       <term>Run...</term>
+       <listitem>
+        <para>
+         The <guimenuitem>Run...</guimenuitem> menu item generally
+         invokes a program  which is related to the applet in some way
+         but which runs in its own window rather than in the
+         panel. For example: 
+        </para>
+        <orderedlist>
+         <listitem>
+          <para>
+           The <application>CPU Load</application> applet, which monitors
+           what programs are running, has a <guimenuitem>Run
+           gtop...</guimenuitem>  menu item. Selecting this menu item
+           starts <application>GTop</application>, which allows you to
+           view and control programs which are running.
+          </para>
+         </listitem>
+         <listitem>
+          <para>
+           The <application>CD Player</application> applet has a
+           <guimenuitem>Run gtcd...</guimenuitem> menu item which
+           starts the GNOME <application>CD Player</application> when
+           selected, which has more capabilities than the applet.
+          </para>
+         </listitem>
+        </orderedlist>
+       </listitem>
+      </varlistentry>
+     </variablelist>
+    </para>
+   </sect2>
+  </sect1>
+  
+  <sect1 id="feedback">
+   <title>Feedback</title>
+   <sect2 id="reporting-bugs"> 
+    <title>Reporting Applet Bugs</title>
+    <para>
+     GNOME users are encouraged to report bugs to <ulink type="http"
+     url="http://bugs.gnome.org">The GNOME Bug Tracking
+     System</ulink>.  The easiest way to submit bugs is to use the
+     <application>Bug Report Tool</application> program by selecting
+     <menuchoice>
+      <guimenu>Main Menu</guimenu> <guisubmenu>Utilities</guisubmenu>
+      <guimenuitem>Bug Report Tool</guimenuitem> 
+     </menuchoice>.
+     Be sure to be complete in describing what you did to cause the
+     bug to surface and, if possible, describe how the developer can
+     reproduce the the scenario.
+    </para>
+   </sect2>
+   <sect2 id="documentation-feedback"> 
+    <title>Providing Feedback</title>
+    <para>
+     GNOME users are welcome to provide suggestions for how
+     applications and documentation can be improved.  Suggestions for
+     application changes should be submitted using the
+     <application>Bug Report Tool</application> discussed above.
+     Suggestions for documentation changes can be emailed directly to
+     the documentation author (whose email should be included in the
+     "Authors" section of the document) or by sending an email to
+     <email>docs at gnome.org</email>. 
+    </para>
+   </sect2>
+   <sect2 id="joining-gnome">  
+    <title>Joining GNOME</title>
+    <para>
+     GNOME is a community project, created by hundreds of programmers,
+     documentation writers, icon design artists, web masters, and
+     other people, most of whom work on a volunteer basis.  New GNOME
+     contributors are always welcome. To join the GNOME team, visit
+     these web sites: developers &mdash; <ulink type="http"
+     url="http://developer.gnome.org">The GNOME Development
+     Site</ulink>, documentation writers &mdash; <ulink type="http"
+     url="http://developer.gnome.org/projects/gdp">The GNOME Documentation
+     Project</ulink>, icon design artists &mdash; <ulink type="http"
+     url="http://gnome-icons.sourceforge.net/">Gnome Icon Web</ulink>,
+     general &mdash; <ulink type="http"
+     url="http://developer.gnome.org/helping/">Helping GNOME</ulink>,
+     or just join the gnome-list email list (see <ulink type="http"
+     url="http://www.gnome.org/resources/mailing-lists.html">GNOME Mailing
+     Lists</ulink>) to discuss what you are interested in doing.
+    </para>
+   </sect2>
+  </sect1>
+ </chapter>
+
+ <!-- ############### Template Applets ##################### -->
+ <chapter id="template-applets">
+  <title>Template Applets</title>
+
+  &TEMPLATE-APPLET
+
+ </chapter>
+
+</book>
+
+
+
+
+
+
+
+]]>
+	</programlisting>
+	
+        <programlisting>
+<![CDATA[
+
+  <!-- Please replace everywhere below GNOMEAPPLET with the name of -->
+  <!-- your applet. Most importantly, all id attributes should start -->
+  <!-- with the name of your applet - this is necessary to avoid name -->
+  <!-- conflict among different applets --> 
+  <!-- Please replace YOUR-NAME with your name and YOUR-EMAIL with your email-->
+  <!-- Please replace HACKER-NAME with the applet author's name and -->
+  <!-- HACKER-EMAIL with the applet author's email -->
+
+  <!-- You should name your file: GNOMEAPPLET-applet.sgml -->
+  <!-- Screenshots should be in PNG format and placed in the -->
+  <!-- same directory as GNOMEAPPLET-applet.sgml -->
+
+  <!-- Applet docs will be merged into <chapter>'s inside a -->
+  <!-- <book>. Thus, the indentation below (2 spaces before the <sect1>) is -->
+  <!-- correct.-->
+
+  <!-- Permission is granted to make and distribute verbatim copies of -->
+  <!-- this manual provided the copyright notice and this permission -->
+  <!-- notice are  preserved on all copies. -->
+  <!-- -->
+  <!-- Permission is granted to copy and distribute modified versions of -->
+  <!-- this manual under the conditions for verbatim copying, provided -->
+  <!-- that the entire resulting derived work is distributed under the -->
+  <!-- terms of a permission notice identical to this one. -->
+  <!-- -->
+  <!-- Permission is granted to copy and distribute translations of this -->
+  <!-- manual into another language, under the above conditions for -->
+  <!-- modified versions, except that this permission notice may be -->
+  <!-- stated in a translation approved by the Foundation. -->
+
+  <!-- ###############   GNOMEAPPLET   ############### -->
+  <sect1 id="GNOMEAPPLET">
+   <title>GNOMEAPPLET Applet</title> 
+
+   <para> 
+    <application>GNOMEAPPLET</application> applet, shown in <xref
+    linkend="GNOMEAPPLET-fig">, does this and that. To learn how to
+    add this applet to a <interface>Panel</interface>, see <xref
+    linkend="adding-applets">. 
+   </para>
+  
+ 
+   <figure id="GNOMEAPPLET-fig">
+   <title>GNOMEAPPLET</title>
+   <screenshot>
+    <screeninfo>GNOMEAPPLET</screeninfo>
+    <graphic format="png" fileref="GNOMEAPPLET-fig" srccredit="ME">
+    </graphic>
+   </screenshot>
+   </figure>
+
+   <sect2 id="GNOMEAPPLET-usage">
+    <title>Usage</title>
+    <para>
+     This applet does nothing. To use it, just
+     left-click on it and it will instantly do nothing.   
+    </para>
+   </sect2>
+
+   <sect2 id="GNOMEAPPLET-right-click">
+    <title>Right-Click Pop-Up Menu Items</title>
+    <para> 
+     In addition to the standard menu items (see <xref
+     linkend="standard-right-click-items">), the right-click pop-up menu has 
+     the following items: 
+     <itemizedlist> 	
+      <listitem>
+       <para>
+        <guimenuitem>Properties...</guimenuitem> &mdash; This menu
+        item opens the <interface>Properties</interface> dialog (see
+        <xref linkend="GNOMEAPPLET-properties">) which allows you to
+        customize the appearance and behavior of this applet.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <guimenuitem>Run Hello World...</guimenuitem> &mdash; This
+        menu item starts the program <application>Hello
+        World</application>, used to say "hello" to the world. 
+       </para>
+      </listitem>
+     </itemizedlist>
+    </para>
+   </sect2>
+
+   <sect2 id="GNOMEAPPLET-properties">
+    <title>Properties</title>
+    <para>
+     You can configure <application>GNOMEAPPLET</application> applet by
+     right-clicking on the applet and choosing the
+     <guimenuitem>Properties...</guimenuitem> menu item. This will open the
+     <interface>Properties</interface> dialog, shown in <xref
+     linkend="GNOMEAPPLET-properties-fig">.
+    </para>
+    <figure id="GNOMEAPPLET-properties-fig">
+     <title>Properties Dialog</title>
+     <screenshot>
+      <screeninfo>Properties Dialog</screeninfo> 
+      <graphic format="png" fileref="GNOMEAPPLET-properties" srccredit="ME">
+      </graphic>
+     </screenshot>
+    </figure>
+    
+    <para> 
+     To change the color of the applet, click on the
+     <guibutton>color</guibutton> button. To change other properties,
+     click on other buttons. 
+    </para>
+
+    <para>
+     For more information on the <interface>Properties</interface>
+     dialog, including descriptions of the <guibutton>OK</guibutton>,
+     <guibutton>Apply</guibutton>, <guibutton>Cancel</guibutton>, and
+     <guibutton>Help</guibutton> buttons, see <xref
+     linkend="applet-properties-dialog">.
+    </para>
+   </sect2>
+  
+   <sect2 id="GNOMEAPPLET-bugs">
+    <title> Known Bugs and Limitations</title>
+    <para>
+     There are no known bugs in the
+     <application>GNOMEAPPLET</application> applet. 
+    </para>
+   </sect2>
+
+   <sect2 id="GNOMEAPPLET-authors">
+    <title>Authors</title>
+    <para>
+     This applet was writen by HACKER-NAME
+     <email>HACKER-EMAIL</email>.  The documentation for this applet
+     which you are reading now was written by
+     YOUR-NAME <email>YOUR-EMAIL</email>. For information on submitting
+     bug reports and suggestions for improvements, see <xref
+     linkend="feedback">. 
+    </para>
+   </sect2>
+
+  </sect1>
+
+
+
+
+
+]]>
+
+
+</programlisting>
+      </para>
+    </sect1>
+
+<!-- ####### Document Templates | Templates 3: Application Help ####### 
+
+    <sect1 id="template3">
+      <title>Template 2: Application Help</title>
+      <programlisting>
+<![CDATA[(Put sgml here.)]]> </programlisting>
+    </sect1>
+
+####### Document Templates | Templates 4: Application Context Sensitive Help #######
+
+    <sect1 id="template4">
+      <title>Template 3: Application Context Sensitive Help</title>
+      <para>
+        Context sensitive help is still in development.
+      </para>
+    </sect1>
+
+####### Document Templates | Templates 5: Complete Application: gnome-hello  ####### 
+
+    <sect1 id="template5">
+      <title>Template 4: Complete Application: gnome-hello</title>
+      <programlisting>
+<![CDATA[(Put sgml here.)]]>
+      </programlisting>  
+    </sect1>
+
+####### Document Templates | Templates 6: Tutorial ####### 
+
+    <sect1 id="template6">
+      <title>Template 5: Tutorial</title>
+      <programlisting>
+<![CDATA[(Put sgml here.)]]>
+      </programlisting>  
+    </sect1>-->
+  </appendix>
+
+</article>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/graphics.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/graphics.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/graphics.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "../dtd/4.1.2/docbookx.dtd" [
+<!ENTITY emc2 SYSTEM "emc2.png" NDATA PNG>
+]>
+
+<!-- test document -->
+
+<article><title>Graphics Test Document Title</title>
+
+<section><title>Graphic</title>
+
+    <para>fileref:</para>
+    <graphic fileref="emc2.png"/>
+
+    <para>entityref:</para>
+    <graphic entityref="emc2"/>
+
+    <para>fileref, scale=200:</para>
+    <graphic fileref="emc2.png" scale="200"/>
+
+    <para>fileref, width=20, depth=20</para>
+    <graphic fileref="emc2.png" width="20" depth="20"/>
+
+</section>
+
+<section><title>Inlinegraphic</title>
+
+    <para>fileref: <inlinegraphic fileref="emc2.png"/></para>
+
+    <para>entityref: <inlinegraphic entityref="emc2"/></para>
+
+    <para>fileref, scale=200: <inlinegraphic fileref="emc2.png" scale="200"/></para>
+
+</section>
+
+<section><title>MediaObject</title>
+    <para>fileref:</para>
+    <mediaobject>
+      <imageobject>
+	<imagedata fileref="emc2.png"/>
+      </imageobject>
+    </mediaobject>
+
+    <para>entityref:</para>
+    <mediaobject>
+      <imageobject>
+	<imagedata entityref="emc2"/>
+      </imageobject>
+    </mediaobject>
+
+    <para>fileref, scale=20:</para>
+    <mediaobject>
+      <imageobject>
+	<imagedata fileref="emc2.png" scale="20"/>
+      </imageobject>
+    </mediaobject>
+
+    <para>fileref, width=200, depth=400:</para>
+    <mediaobject>
+      <imageobject>
+	<imagedata fileref="xyzzy.foo"/>
+      </imageobject>
+      <imageobject>
+	<imagedata fileref="emc2.png" width="200" depth="400"/>
+      </imageobject>
+      <textobject>
+	<para>This is a text object</para>
+      </textobject>
+    </mediaobject>
+
+    <para>fileref, width=20, depth=20, alt=Alt text:</para>
+    <mediaobject>
+      <imageobject>
+	<imagedata fileref="xyzzy.foo"/>
+      </imageobject>
+      <imageobject>
+	<imagedata fileref="emc2.png" width="20" depth="20"/>
+      </imageobject>
+      <textobject>
+	<phrase>Alt text</phrase>
+      </textobject>
+    </mediaobject>
+
+</section>
+
+</article>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/gtest.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/gtest.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/gtest.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd" [
+<!ENTITY emc2.gif SYSTEM "emc2.gif" NDATA GIF>
+]>
+<chapter>
+<title>Graphics Test</title>
+<para>A graphic by fileref:</para>
+<mediaobject>
+<imageobject>
+<imagedata fileref="emc2.gif"/>
+</imageobject>
+</mediaobject>
+
+<para>A graphic by entityref:</para>
+<mediaobject>
+<imageobject>
+<imagedata entityref="emc2.gif"/>
+</imageobject>
+</mediaobject>
+</chapter>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/idxbook.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/idxbook.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/idxbook.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "../dtd/4.1.2/docbookx.dtd" [
+<!ENTITY idxbook.idx SYSTEM "idxbook.idx">
+]>
+<book><title>Book Test Index Document Title</title>
+<bookinfo>
+<indexterm zone="chapter ch2">
+<primary>chapter zone</primary></indexterm>
+<title>Bookinfo Test Index Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+</authorgroup>
+</bookinfo>
+
+<preface><title>Foreword</title>
+<para>This is a test paragraph<indexterm>
+<primary>paragraph</primary>
+<secondary>test</secondary></indexterm>.</para>
+</preface>
+
+<chapter id="chapter">
+<title>First Chapter</title>
+
+<para>Paragraph<indexterm>
+<primary>paragraph</primary></indexterm>.</para>
+
+<sect1><title>First Sect1</title>
+<para>Another paragraph<indexterm>
+<primary>paragraph</primary>
+<secondary>another</secondary>
+</indexterm>.</para>
+</sect1>
+</chapter>
+
+<chapter id="ch2"><title>Second Chapter</title>
+<para>This is a test paragraph.
+<indexterm>
+<primary sortas="ap1">the ap1</primary>
+</indexterm>
+<indexterm>
+<primary sortas="ap1">the ap1</primary>
+<seealso>see also ap2</seealso>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+<indexterm>
+<primary>cp2see</primary>
+<secondary>cp2seesec</secondary>
+<see>cp2</see>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm></para>
+</chapter>
+
+<appendix><title>First Appendix</title>
+<para>This is just a test.
+<indexterm>
+<primary>ap1</primary>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>1 digit test</primary>
+</indexterm>
+<indexterm>
+<primary>[square bracket test]</primary>
+</indexterm>
+<indexterm>
+<primary>2 digit test</primary>
+</indexterm>
+</para>
+</appendix>
+
+<!--&idxbook.idx;-->
+<index/>
+
+</book>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/kwrite.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/kwrite.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/kwrite.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1784 @@
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+               "../dtd/4.0/docbookx.dtd">
+<book lang="en">
+<bookinfo>
+<title>the <application>kwrite</application> handbook</title>
+<authorgroup>
+<author>
+<firstname>thad</firstname>
+<surname>mcginnis</surname>
+<affiliation>
+<address><email>ctmcginnis at compuserve.com</email></address>
+</affiliation>
+</author>
+<othercredit role="developer">
+<firstname>jochen</firstname>
+<surname>wilhelmy</surname>
+<contrib>principal developer</contrib>
+<affiliation>
+<address><email>digisnap at cs.tu-berlin.de</email></address>
+</affiliation>
+</othercredit>
+<othercredit role="developer">
+<firstname>glen</firstname>
+<surname>parker</surname>
+<contrib>additional development</contrib>
+<affiliation>
+<address><email>glenebob at nwlink.com</email></address>
+</affiliation>
+</othercredit>
+<othercredit role="developer">
+<firstname>michael</firstname>
+<surname>koch</surname>
+<contrib>additional development</contrib>
+<affiliation>
+<address><email>koch at kde.org</email></address>
+</affiliation>
+</othercredit>
+<othercredit role="developer">
+<firstname>christian</firstname>
+<surname>tibirna</surname>
+<contrib>original help document</contrib>
+<affiliation>
+<address><email>tibirna at kde.org</email></address>
+</affiliation>
+</othercredit>
+<othercredit role="reviewer">
+<firstname>lauri</firstname>
+<surname>watts</surname>
+<contrib>reviewer</contrib>
+<affiliation>
+<address><email>vampyr at atconnex.net</email></address>
+</affiliation>
+</othercredit>
+</authorgroup>
+<copyright>
+<year>2000</year>
+<year>2001</year>
+<holder>thad mcginnis</holder>
+</copyright>
+<legalnotice>
+<para>permission is granted to copy, distribute and/or modify this
+document under the terms of the gnu free documentation license,
+version 1.1 or any later version published by the free software
+foundation; with no invariant sections, with no front-cover texts, and
+with no back-cover texts.  a copy of the license is included in <xref linkend="gnu-fdl"/>.</para>
+</legalnotice>
+<date>15/02/2001</date>
+<releaseinfo>2.00.00</releaseinfo>
+<abstract>
+<para>this handbook describes <application>kwrite</application> version 2.0</para>
+<para><application>kwrite</application> is a text editor for kde 2.0</para>
+</abstract>
+<keywordset>
+<keyword>kde</keyword>
+<keyword>kwrite</keyword>
+<keyword>text</keyword>
+<keyword>editor</keyword>
+</keywordset>
+</bookinfo>
+<chapter id="introduction">
+<title>introduction</title>
+<para><application>kwrite</application> is more than a text editor for the kde desktop. it is meant
+to be a programmer's editor, and could be considered as at least a partial
+alternative to more powerful editors.  it may be best used in conjunction
+with <application>konqueror</application> for source file browsing for
+different languages. <application>kwrite</application> also works very well as a simple text editor.
+one of <application>kwrite</application>'s main features is the colorized syntax, customized for
+many different programming languages such as: c/c++, <trademark>java</trademark>, python, perl,
+bash, modula 2, <acronym>html</acronym>, and ada.</para>
+</chapter>
+<chapter id="on-screen-fundamentals">
+<title>some fundamentals</title>
+<para><application>kwrite</application> is very simple to use. anyone that has used a text editor should
+have no problems. </para>
+<sect1 id="drag-and-drop">
+<title>drag and drop</title>
+<para><application>kwrite</application> uses the kde drag and drop protocol. files may be dragged  
+and dropped onto <application>kwrite</application> from the desktop,  
+<application>konqueror</application> or some remote ftp site opened in one  
+of <application>konqueror</application>'s windows. </para>
+</sect1>
+<sect1 id="command-line-options">
+<title>command line options</title>
+<para>though <application>kwrite</application> may most often be started from the kde program menu,  
+or a desktop icon, it can also be opened at the command line prompt of a  
+terminal window.  there are a few useful options that are available when  
+doing this.</para>
+<sect2 id="specify-a-file">
+<title>specify a file</title>
+<para>by specifying the path and name of a particular file the user can  
+have <application>kwrite</application> open (or create) that file immediately upon startup.  this
+option might look something like the following:</para>
+<informalexample>
+<screen><prompt>%</prompt> <userinput><command>kwrite</command> <option><replaceable>/home/myhome/docs/myfile.txt</replaceable></option></userinput></screen>
+</informalexample>
+</sect2>
+<sect2 id="editing-files-on-the-internet">
+<title>specify a file on the internet</title>
+<para>the above-mentioned method could even be used to open files on the
+internet (if the user has an active connection at the time.)  an example of
+this might look like the following:</para>
+<informalexample>
+<screen><prompt>%</prompt> <userinput><command>kwrite</command> <option><replaceable>ftp://ftp.kde.org/pub/kde/welcome.msg</replaceable></option></userinput></screen>
+</informalexample>
+</sect2>
+<sect2 id="other-command-line-options">
+<title>other command line options</title>
+<para>the following command line help options are available</para>
+<variablelist>
+<varlistentry>
+<term><userinput><command>kwrite</command> <option>--help</option></userinput></term>
+<listitem>
+<para>this lists the most basic options available at the command  
+line.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><userinput><command>kwrite</command> <option>--help-qt</option></userinput></term>
+<listitem>
+<para>this lists the options available for changing the way  
+<application>kwrite</application> interacts with <trademark>qt</trademark>.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><userinput><command>kwrite</command> <option>--help-kde</option></userinput></term>
+<listitem>
+<para>this lists the options available for changing the way  
+<application>kwrite</application> interacts with kde.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><userinput><command>kwrite</command> <option>--help-all</option></userinput></term>
+<listitem>
+<para>this lists all of the command line options.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><userinput><command>kwrite</command> <option>--author</option></userinput></term>
+<listitem>
+<para>lists <application>kwrite</application>'s authors in the terminal window</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><userinput><command>kwrite</command> <option>--version</option></userinput></term>
+<listitem>
+<para>lists version information for <trademark>qt</trademark>, kde, and <application>kwrite</application>. also available through <userinput><command>kwrite</command> <option>-v</option></userinput> </para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect2>
+</sect1>
+<sect1 id="keybindings">
+<title>key bindings</title>
+<para>many of the key bindings (shortcuts) are configurable by way of the <link linkend="settings">settings</link> menu.  by default <application>kwrite</application> honors the  
+following key bindings.</para>
+<informaltable>
+<tgroup cols="2">
+<tbody>
+<row>
+<entry><para><keycombo>
+<keycap>insert</keycap>
+</keycombo></para></entry>
+<entry><para> toggle between insert and overwrite mode. when in insert mode the
+editor will add any typed characters to the text while pushing along any data to
+the right of the text cursor. overwrite mode causes the entry of each character
+to eliminate the character immediately to the right of the text
+cursor.</para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>left arrow</keycap>
+</keycombo></para></entry>
+<entry><para>move the cursor one character to the left </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>right arrow</keycap>
+</keycombo></para></entry>
+<entry><para> move the cursor one character to the right </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>up arrow</keycap>
+</keycombo></para></entry>
+<entry><para> move the cursor up one line  </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>down arrow</keycap>
+</keycombo></para></entry>
+<entry><para> move the cursor down one line </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>page up</keycap>
+</keycombo></para></entry>
+<entry><para> move the cursor up one page  </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>page down</keycap>
+</keycombo></para></entry>
+<entry><para>move the cursor down one page  </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>backspace</keycap>
+</keycombo></para></entry>
+<entry><para> delete the character to the left of the cursor </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>home</keycap>
+</keycombo></para></entry>
+<entry><para> move the cursor to the beginning of the line </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>end</keycap>
+</keycombo></para></entry>
+<entry><para> move the cursor to the end of the line </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>delete</keycap>
+</keycombo></para></entry>
+<entry><para>delete the character to the right of the cursor (or any selected  
+text)</para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>shift</keycap>
+<keycap>left arrow</keycap>
+</keycombo></para></entry>
+<entry><para> mark text one character to the left </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>shift</keycap>
+<keycap>right arrow</keycap>
+</keycombo></para></entry>
+<entry><para> mark text one character to the right </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>f1</keycap>
+</keycombo></para></entry>
+<entry><para> help</para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>shift</keycap>
+<keycap>f1</keycap>
+</keycombo></para></entry>
+<entry><para><link linkend="whats-this">what's this?</link></para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>f</keycap>
+</keycombo></para></entry>
+<entry><para><link linkend="find"> find</link></para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>f3</keycap>
+</keycombo></para></entry>
+<entry><para><link linkend="find-again"> find again</link></para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>c</keycap>
+</keycombo></para></entry>
+<entry><para> copy the marked text to the clipboard. </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>m</keycap>
+</keycombo></para></entry>
+<entry><para>set a bookmark</para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>n</keycap>
+</keycombo></para></entry>
+<entry><para> <link linkend="new">new</link> document</para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>p</keycap>
+</keycombo></para></entry>
+<entry><para><link linkend="print">print</link> </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>q</keycap>
+</keycombo></para></entry>
+<entry><para>quit - close active copy of editor </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>r</keycap>
+</keycombo></para></entry>
+<entry><para><link linkend="replace"> replace</link></para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>s</keycap>
+</keycombo></para></entry>
+<entry><para>invokes the <link linkend="save"><guilabel>save</guilabel></link> command.</para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>v</keycap>
+</keycombo></para></entry>
+<entry><para> paste the clipboard text into line edit. </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>x</keycap>
+</keycombo></para></entry>
+<entry><para>delete the marked text and copy it to the clipboard. </para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>z</keycap>
+</keycombo></para></entry>
+<entry><para><link linkend="undo">undo</link></para></entry>
+</row>
+<row>
+<entry><para><keycombo>
+<keycap>ctrl</keycap>
+<keycap>shift</keycap>
+<keycap>z</keycap>
+</keycombo></para></entry>
+<entry><para><link linkend="redo">redo</link></para></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</sect1>
+</chapter>
+<chapter id="the-menu-entries">
+<title>the menu entries</title>
+<sect1 id="file">
+<title>the <guimenu>file</guimenu> menu</title>
+<variablelist>
+<varlistentry>
+<term><anchor id="new"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>n</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>f</accel>ile</guimenu>
+<guimenuitem><accel>n</accel>ew</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this starts a new document in the editor. if there is a current  
+document with unsaved changes the user is given a chance to save it.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="open"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>o</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>f</accel>ile</guimenu>
+<guimenuitem><accel>0</accel>pen</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this command opens a file.  it does this by means of a dialog box  
+which allows the user to navigate the file system.  the dialog operates  
+like a small file manager. clicking on directories displayed in the
+central window directs the dialog to enter that directory - displaying its  
+contents.  there is an entry/dropdown box which can be used to type in  
+directly the location and name of the file or by clicking the arrow at the  
+side choose from a dropdown list of recently used locations. below this is  
+a filter which similarly may have data entered directly or chosen from a  
+dropdown list of recent filter types.  the filter facility lets only files  
+that meet its specifications be displayed in the central window. if the  
+filter contained text such as <literal role="extension">*.txt</literal> then only files  
+with the txt extension would be visible in the selection window. below the filter
+is a status bar giving information about the number of files and subdirectories
+within the current directory.</para>
+<para>the  toolbar, which is located at the top of the dialog, has left and right
+arrow buttons that let the user move back and forth through previously selected
+directories as well as an up arrow button for moving up the directory tree. the
+button with the little house takes the user to his or her home directory and the one
+with the two arrows curved in on each other updates the view of the current
+directory. the flag button lets the user set a new bookmark at the current directory
+or go to  one that was previously set. 
+ the last button on the toolbar allows you to create a new
+directory, and finally  there is dropdown box with a list of some commonly
+frequented directories.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="open-recent"/><menuchoice>
+<guimenu><accel>f</accel>ile</guimenu>
+<guimenuitem>open  
+<accel>r</accel>ecent</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this is a shortcut to open recently saved documents. clicking on
+this item opens a list to the side of the menu with several of the most recently
+saved files. clicking on a specific file will open it in <application>kwrite</application> - if the file
+still resides at the same location. </para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="save"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>s</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>f</accel>ile</guimenu>
+<guimenuitem><accel>s</accel>ave</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this saves the current document.  if there has already been a
+save of the document then this will overwrite the previously saved file without
+asking for the user's consent.  if it is the first save of a new document the
+save as dialog (described below) will be invoked.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="save-as"/><menuchoice>
+<guimenu><accel>f</accel>ile</guimenu>
+<guimenuitem>save
+<accel>a</accel>s</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this allows a document to be saved with a new file name. this is
+done by means of the file dialog box described above in the <link linkend="open">open</link> section of this help file.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="print"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>p</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>f</accel>ile</guimenu>
+<guimenuitem><accel>p</accel>rint</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>opens a simple print dialog allowing the user to specify what, where, and how to print</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="new-window"/><menuchoice>
+<guimenu><accel>f</accel>ile</guimenu>
+<guimenuitem>new <accel>w</accel>indow</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this creates a new window, <abbrev>i.e.</abbrev> a new instance of <application>kwrite</application>. in this way the user can easily work  
+on more than one file at a time with <application>kwrite</application>.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="new-view"/><menuchoice>
+<guimenu><accel>f</accel>ile</guimenu>
+<guimenuitem>new <accel>v</accel>iew</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this creates a new view of the current document, <abbrev>i.e.</abbrev>, a new instance of
+<application>kwrite</application> (as explained in the previous entry) but containing the same
+document.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="close"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>q</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>f</accel>ile</guimenu>
+<guimenuitem><accel>q</accel>uit</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this will close the editor window, if you have more than one
+instance of <application>kwrite</application> running, through the <guimenuitem>new view</guimenuitem> or
+<guimenuitem>new window</guimenuitem> menu items, those instances will not be
+closed.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+<sect1 id="edit">
+<title>the <guimenu>edit</guimenu> menu</title>
+<variablelist>
+<varlistentry>
+<term><anchor id="undo"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>z</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem>und<accel>o</accel></guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this is used to eliminate or reverse the most recent user action or operation. just what  
+constitutes such an action may be better understood by referring to the <link linkend="group-undos">group undos</link> portion of this help file.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="redo"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>shift</keycap>
+<keycap>z</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem>re<accel>d</accel>o</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this will reverse the most recent change (if any) made using undo</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="undohistory"/><menuchoice>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem>undo/redo <accel>h</accel>istory</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this will call a display box showing a list of the most recent actions on  
+the left and another list of actions which have been 'undone' on the right.  
+there are also three buttons at the right of the box labeled  
+<guibutton>undo</guibutton>, <guibutton>redo</guibutton>, and  
+<guibutton>close</guibutton>.  clicking on the <guibutton>undo</guibutton>  
+button will cause the action at the top of the undo list to be reversed which  
+will place that particular action at the top of the redo list. likewise,  
+clicking on the <guibutton>redo</guibutton> button will reinstate the reversed  
+action and move it back to the top of the undo list.  clicking on an item below  
+the top item in either list will select all the items from the top down to that  
+point.  a subsequent click on the corresponding button will cause all the  
+selected actions to be undone or redone accordingly.  this would be particularly  
+useful when the user knows precisely the point to which she or he would like to  
+proceed - making it unnecessary to go through a series of single undo or redo  
+actions.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="cut"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>x</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem>c<accel>u</accel>t</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this command deletes the current selection and places it on the clipboard.  the  
+clipboard is a feature of kde that works invisibly to provide a way to transfer data between  
+applications.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="copy"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>c</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem><accel>c</accel>opy</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this copies the currently selected text to the clipboard so that it may be  
+pasted elsewhere.  the clipboard is a feature of kde that works invisibly to  
+provide a way to transfer data between applications.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="paste"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>v</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem><accel>p</accel>aste</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this will insert the contents of the clipboard at the cursor position. the  
+clipboard is feature of kde that works invisibly to provide a way to transfer  
+data between applications.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="select-all"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>a</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem>select <accel>a</accel>ll</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this will select the entire document. this could be very useful for  
+copying the entire file to another application.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="invert-the-selection"/><menuchoice>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem>invert <accel>s</accel>election</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this selects any unselected text while unselecting any selected text -  
+effectively reversing the current state of selection.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="find"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>f</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem><accel>f</accel>ind</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this opens the find dialog which is used to specify the <guilabel>text to  
+find</guilabel> in the document. there is small text box for entering the search  
+pattern which also doubles as a dropdown box. clicking on the dropdown arrow at  
+the side of the box makes available other recent search patterns. other  
+parameters are included to make the search more efficient. selecting  
+<guilabel>case sensitive</guilabel> will limit finds to entries that match the  
+case (upper or lower) of each of the characters in the search  
+pattern. <guilabel>find backwards</guilabel> directs the search to proceed in an  
+upwardly direction. the <guilabel>selected text</guilabel> option keeps the  
+search within currently selected text. checking <guilabel>whole words
+only</guilabel> prevents the search from stopping on words that contain the
+searched for pattern. the <guilabel>search from cursor</guilabel> option begins  
+the search from the current position of the cursor within the document rather  
+than from the beginning.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="find-again"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>f3</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem>find <accel>n</accel>ext</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this repeats the last find operation, if any, without calling the find  
+dialog box.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="replace"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>r</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem><accel>r</accel>eplace</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this command opens the replace dialog box.  the replace dialog is  
+almost identical to the above-mentioned find dialog.  in addition to the features in
+the find dialog it contains a <guilabel>replace with:</guilabel> text
+entry/dropdown box.  using this dialog the user can specify both the text to be found
+and text with which to replace it.  the additional <guilabel>prompt
+on replace</guilabel> option allows the user to have <application>kwrite</application> ask for
+confirmation before each replacement.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="insertfile"/>
+<menuchoice>
+<guimenu><accel>e</accel>dit</guimenu>
+<guimenuitem><accel>i</accel>nsert file</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this <action>opens</action> the <guimenu>file</guimenu> <link linkend="open"><guimenuitem>open</guimenuitem></link> dialog box whereby the
+user can insert a complete file in the open document.  the the contents of
+the file will be entered at the position of the blinking text
+cursor.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+<sect1 id="go">
+<title>the <guimenu>go</guimenu> menu</title>
+<variablelist>
+<varlistentry>
+<term><anchor id="go-to-line"/><menuchoice>
+<guimenu><accel>g</accel>o</guimenu>
+<guimenuitem><accel>g</accel>o to line</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this opens the goto line dialog box which is used to have the cursor jump  
+to a particular line (specified by number) in the document.  the line number may  
+be entered directly into the text box or graphically by clicking on the up or  
+down arrow spin controls at the side of the text box. the little up arrow will  
+increase the line number and the down arrow decrease it.  there is also a slide  
+control to the right of the text box which allows the user to move the goto  
+point in the document in an analog manner.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="add-marker"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>ctrl</keycap>
+<keycap>m</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>g</accel>o</guimenu>
+<guimenuitem><accel>a</accel>dd marker</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this creates a marker in the document at the line where the cursor is  
+located and places it at the bottom of the list of markers located at the
+bottom of the go menu.</para>
+<para>markers are points within a <application>kwrite</application> document
+marked for easy return. if  the user thinks (s)he may need to return to a specific
+point (s)he may by way of this feature instruct <application>kwrite</application> to remember it. </para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="set-bookmark"/><menuchoice>
+<guimenu><accel>g</accel>o</guimenu>
+<guimenuitem><accel>s</accel>et marker</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this creates a marker in the document at the line where the cursor is  
+located, and allows the user to choose its position in the list of bookmarks  
+which is appended at the bottom of this menu item.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="clear-bookmarks"/><menuchoice>
+<guimenu><accel>g</accel>o</guimenu>
+<guimenuitem><accel>c</accel>lear markers</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this command will remove all the markers from the docucument as well as the
+list of markers which is appended at the  bottom of this menu item.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>at the bottom of this menu, a list of markers appears if any  
+markers are available for this window.</para>
+</sect1>
+<sect1 id="tools">
+<title>the <guimenu>tools</guimenu> menu</title>
+<variablelist>
+<varlistentry>
+<term><anchor id="spelling..."/><menuchoice>
+<guimenu><accel>t</accel>ools</guimenu>
+<guimenuitem><accel>s</accel>pelling...</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para><action>this initiates the spell checking program - a program
+designed to help the user catch and correct any spelling errors.</action>
+clicking on this entry will start the checker and bring up the speller dialog
+box through which the user can control the process.  there are three text boxes
+lined up vertically in the center of the dialog with their corresponding labels
+just to the left.  starting at the top they are:</para>
+<variablelist>
+<varlistentry>
+<term><guilabel>misspelled word:</guilabel></term>
+<listitem>
+<para>here, the spell checker indicates the word currently under
+consideration.  this happens when the checker encounters a word not in its
+dictionary - a file containing a list of correctly spelled words against which
+it compares each word in the editor.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>replacement:</guilabel></term>
+<listitem>
+<para> if the checker has any similar words in its dictionary the
+first one will be listed here.  the user can accept the suggestion, type in his
+or her own correction, or choose a different suggestion from the next
+box.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>suggestions:</guilabel></term>
+<listitem>
+<para> the checker may list here a number of possible replacements for
+the word under consideration.  clicking on any one of the suggestions will cause
+that word to be entered in the <guilabel>replacement:</guilabel> box,
+above.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>on the right side of the dialog box are 6 buttons that allow the user to
+control the spell check process.  they are:</para>
+<variablelist>
+<varlistentry>
+<term><guibutton>replace</guibutton></term>
+<listitem>
+<para> this button has the checker replace the word under
+consideration in the document with the word in the
+<guilabel>replacement:</guilabel> box.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guibutton>replace all</guibutton></term>
+<listitem>
+<para> this button causes the checker to replace not only the current
+<guilabel>misspelled word:</guilabel> but to automatically make the same
+substitution for any other occurences of this <guilabel>misspelled
+word:</guilabel> in the document.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guibutton>ignore</guibutton></term>
+<listitem>
+<para>activating this button will have the checker move on without
+making any changes.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guibutton>ignore all</guibutton></term>
+<listitem>
+<para> this button tells the checker to do nothing with the current
+<guilabel>misspelled word:</guilabel> and to pass over any other instances of
+the same word.</para>
+<note>
+<para>this only applies to the current spell check
+run.  if the checker is run again later it will stop on this same
+word.</para>
+</note>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guibutton>add</guibutton></term>
+<listitem>
+<para>pressing this button adds the word in the <guilabel>misspelled
+word:</guilabel> box to the checker's dictionary. this means that in the future
+the checker will always consider this word to be correctly
+spelled.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guibutton>stop</guibutton></term>
+<listitem>
+<para> this button stops the spell check process.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>located horizontally along the bottom of the spell check dialog is a
+progress bar.  as the checking process proceeds the bar will fill from left to
+right providing a graphical representation of how far along in the document the
+process has reached.  in addition, the progress is displayed numerically in
+the center of the progress bar.</para>
+<note>
+<para>a numerical display of the spell check
+process is simultaneously displayed in the status bar of the editor.  the <link linkend="show-statusbar">status bar</link> is the horizontal strip at the bottom
+of the editor just outside of the text entry area.</para>
+</note>
+<para>two more buttons are located below the progress bar.  they are:</para>
+<variablelist>
+<varlistentry>
+<term><guibutton>help</guibutton></term>
+<listitem>
+<para> this invokes the kde help system starting at the <application>kwrite</application> help
+pages (this document).</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guibutton>cancel</guibutton></term>
+<listitem>
+<para> this button cancels the spell check process.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="indent"/><menuchoice>
+<guimenu>tools</guimenu>
+<guimenuitem>indent</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this increases the paragraph's indentation by one step. the size of the
+step depends on the <link linkend="pref-indent"> indentation  
+settings</link>.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="unindent"/><menuchoice>
+<guimenu>tools</guimenu>
+<guimenuitem>unindent</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this reduces the paragraph's indentation by one step. the size of the step  
+depends on the <link linkend="pref-indent"> indentation settings</link>.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="cleanindent"/><menuchoice>
+<guimenu>tools</guimenu>
+<guimenuitem>clean
+indentation</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>not yet implemented</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><menuchoice>
+<guimenu>tools</guimenu>
+<guimenuitem>comment</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this adds one space to the beginning of the line
+where the text cursor is located or to the beginning of any
+selected lines.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><menuchoice>
+<guimenu>tools</guimenu>
+<guimenuitem>uncomment</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this removes one space (if any exist) from the beginning of the line
+where the text cursor is located or from the beginning of any
+selected lines.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+<sect1 id="settings">
+<title>the <guimenu>settings</guimenu> menu</title>
+<variablelist>
+<varlistentry>
+<term><anchor id="show-toolbar"/><menuchoice>
+<guimenu><accel>s</accel>ettings</guimenu>
+<guimenuitem>show <accel>t</accel>oolbar</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>when checked, this displays a movable toolbar containing buttons used to  
+initiate frequently used commands. when unchecked the toolbar is hidden.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="show-statusbar"/><menuchoice>
+<guimenu><accel>s</accel>ettings</guimenu>
+<guimenuitem>show <accel>s</accel>tatusbar</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>when checked, this displays a small bar at the bottom of the editor  
+containing information about the status of the current document.  when unchecked  
+the statusbar is hidden.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="show-path"/><menuchoice>
+<guimenu><accel>s</accel>ettings</guimenu>
+<guimenuitem>sho<accel>w</accel> path</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>when selected, this displays in the title bar the path (its location in the
+file system) of the current document.  when unchecked the path is hidden.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="configure-keybindings"/><menuchoice>
+<guimenu><accel>s</accel>ettings</guimenu>
+<guimenuitem>configure <accel>k</accel>ey bindings</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this command opens a dialog box whereby the <link linkend="keybindings">key bindings</link> may be changed.  a display window at
+the top of the dialog box shows the list of commands (actions) that can have
+keyboard shortcuts.  below the display are three radio buttons.  the user may choose
+between no key, default key, and custom key.  (note that a set of radio buttons only
+allows the selection of one of the offered items - in the way that buttons on a car
+radio only offer the selection of one preset station.  also, the default key
+selection  is only available for those commands that actually have a 'default'
+shortcut.)  selecting the custom key option activates the three check boxes and key
+button at the bottom of the dialog. the user may then select a key
+combination for the command in question by means of the check boxes and key
+button. for example, with the about kde command selected in the display window,  
+the user could select <keycap>ctrl</keycap> and <keycap>alt</keycap>, click on  
+the key button, and then press the <keycap>k</keycap> key on the keyboard.  this  
+would mean that anytime he or she held down the <keycap>ctrl</keycap> and  
+<keycap>alt</keycap> buttons and pressed <keycap>k</keycap> (while using  
+<application>kwrite</application>) the about kde display box would be called. </para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="configure-toolbars"/><menuchoice>
+<guimenu><accel>s</accel>ettings</guimenu>
+<guimenuitem>configure tool<accel>b</accel>ars</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this will open the dialog whereby the toolbar configuration may
+be changed.   the user can choose which shortcut buttons should appear on the  
+toolbar. a display window on the left lists the commands available to placed
+on the toolbar.  a display on the right lists those commands already on the  
+toolbar.  a set of four arrow buttons between the two displays manipulates the  
+selections.  the right pointing arrow places any command selected in the left  
+pane onto the right pane, <abbrev>i.e.</abbrev>, it is added to the toolbar.  
+the left arrow does just the opposite, removing any action selected in the right  
+window from the toolbar.  the up and down pointing arrows change the position of  
+an action selected in the right window which changes the position of its button  
+in the toolbar.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="preferences"/><menuchoice>
+<guimenu><accel>s</accel>ettings</guimenu>
+<guimenuitem><accel>p</accel>references</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this menu item opens a dialog whereby several different <link linkend="pref-dialog">settings</link> may be adjusted.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>s</accel>ettings</guimenu>
+<guimenuitem>configure
+highlighti<accel>n</accel>g</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>opens a dialog box allowing configuration of the syntax  
+highlighting.  the dialog is described in <xref linkend="pref-highlighting"/>.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="vertical-selection"/><menuchoice>
+<guimenu><accel>s</accel>ettings</guimenu>
+<guimenuitem><accel>v</accel>ertical  
+selection</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this is used to turn on or off the vertical selection feature.  vertical  
+selection allows text to be selected by column as well as by row.  in other  
+words with this feature the user is able to select text contained in only  
+particular contiguous columns and rows.  in affect the user can select a  
+rectangular area of text anywhere in the document.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="set-highlight"/><menuchoice>
+<guimenu><accel>s</accel>ettings</guimenu>
+<guimenuitem><accel>h</accel>ighlight mode</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this allows the user to choose the style of color highlighting which the  
+editor uses to display the text. the styles are selected by programming
+language. the font/color information is not stored with the document.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="end-of-line"/><menuchoice>
+<guimenu><accel>s</accel>ettings</guimenu>
+<guisubmenu><accel>e</accel>nd of line</guisubmenu>
+</menuchoice></term>
+<listitem>
+<para>this opens a sub-menu from which the user can select the type of <quote>end of  
+line</quote> code for <application>kwrite</application> to use, <abbrev>i.e.</abbrev>, the accepted standard  
+used by unix, <trademark class="registered">mac</trademark> or msdos/<trademark class="registered">windows</trademark> systems.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+<sect1 id="help">
+<title>the <guimenuitem>help</guimenuitem> menu</title>
+<variablelist>
+<varlistentry>
+<term><anchor id="contents"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>f1</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>h</accel>elp</guimenu>
+<guimenuitem><accel>c</accel>ontents</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this invokes the kde help system starting at the <application>kwrite</application> help pages (this document).</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="whats-this"/><menuchoice>
+<shortcut>
+<keycombo>
+<keycap>shift</keycap>
+<keycap>f1</keycap>
+</keycombo>
+</shortcut>
+<guimenu><accel>h</accel>elp</guimenu>
+<guimenuitem>what's <accel>t</accel>his?</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this changes the mouse cursor to a combination arrow and question mark.  
+clicking on items within <application>kwrite</application> with this arrow will open a help window (if  
+one exists for the particular item) explaining the item's function.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="report-bug"/><menuchoice>
+<guimenu><accel>h</accel>elp</guimenu>
+<guimenuitem><accel>r</accel>eport bug</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para><action>this calls a dialog box to help
+the user help the kde team to track down and solve any
+problems(bugs) in the program.  the dialog attempts to do this by
+means of email using the information given by the user.</action></para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="about-kwrite"/><menuchoice>
+<guimenu><accel>h</accel>elp</guimenu>
+<guimenuitem><accel>a</accel>bout kwrite</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this will display version and author information</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><anchor id="about-kde"/><menuchoice>
+<guimenu><accel>h</accel>elp</guimenu>
+<guimenuitem>about <accel>k</accel>de</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>this displays the kde version and other basic information.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+</chapter>
+<chapter id="pref-dialog">
+<title>configure <application>kwrite</application></title>
+<para>selecting
+<menuchoice>
+<guimenu>settings</guimenu>
+<guimenuitem>configure
+kwrite</guimenuitem>
+</menuchoice> from the menu brings up the configure-kwrite
+dialog box.  this dialog can be used to alter a number of different settings.  the
+settings available for change vary according to which category the user chooses from
+a vertical list on the left side of the dialog.  by means of three buttons
+along the bottom of the box the user can control the process.  she or he may invoke
+the <guilabel>help</guilabel> system, accept the current settings and close the
+dialog by means of the <guibutton>ok</guibutton> button, or
+<guibutton>cancel</guibutton> the process. the categories
+<guilabel>colors</guilabel>, <guilabel>indent</guilabel>,
+<guilabel>select</guilabel>, <guilabel>edit</guilabel>, and
+<guilabel>spelling</guilabel> are detailed below.</para>
+<sect1 id="prefcolors">
+<title>colors</title>
+<para>this section provides access to <link linkend="pref-color-settings">five different color settings</link>,  
+described below.  each of these settings may be changed by clicking on its  
+corresponding button.  these are special wide buttons that are the color of  
+the current setting.  clicking on one of the buttons calls a special color  
+dialog box used to change the setting.</para>
+<para>the color dialog box provides a convenient and graphical way to
+select a color.  in the upper left of the box is a rectangular display of a  
+spectrum of colors. to the immediate right of this, is vertical bar  
+displaying a range of intensity from the most dark at the bottom to the  
+most light at the top.  the user may select and adjust a color by clicking  
+in these two boxes. clicking in the rectangular display selects a  
+particular mix of red, green, and blue colors and in the vertical bar  
+selects a level of intensity (value).  the various color attributes are displayed  
+in numerical form in small text boxes located directly below the spectral  
+rectangle and the user can see them change as the color is adjusted.  these  
+attributes include the mix of the basic color components (red, green, and  
+blue) as well as hue and saturation levels.  alternatively the user can  
+enter figures directly in these boxes.  there is also a square at the  
+bottom center of the dialog box which displays the color which is under  
+consideration at any time.  to the right of this display is another text  
+box labeled <guilabel>html:</guilabel> this shows the user the color code  
+that would be used to specify the particular displayed color in  
+<acronym>html</acronym> code which is widely used for web pages.</para>
+<para>in addition to the above, the color dialog allows the capture of any  
+color currently displayed on the desktop or in another program.  clicking  
+on the button with the dropper icon (located on the right side of the  
+dialog box,) changes the shape of the mouse cursor to a set of crosshairs.  
+clicking again will pick up the color attributes of whatever color is  
+displayed under the cross hairs.</para>
+<para>furthermore the user has the option of adding any color to a personal
+palette of <quote>custom colors</quote> by clicking on the wide button labeled
+<guibutton>add to custom colors</guibutton> (which is located directly above the
+display square.)  this adds the current color to the custom color palette.  this
+palette and any other available palettes can be displayed using the drop down
+selection box located directly above the palette display at the top right of the
+dialog box.  besides the custom colors, the user can access a number of
+pre-prepared palettes.</para>
+<variablelist>
+<varlistentry id="pref-color-settings">
+<term><guilabel>background</guilabel></term>
+<listitem>
+<para>here the user can specify a color for the general background of  
+<application>kwrite</application>.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>text background</guilabel></term>
+<listitem>
+<para>this is used to set a particular color to display in the  
+background of those areas of the document containing text.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>selected</guilabel></term>
+<listitem>
+<para>this allows the user to select a color to be used for indicating  
+selected (or highlighted) portions of the document.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>found</guilabel></term>
+<listitem>
+<para>this specifies the preferred color with which to mark text  
+encountered as the result of a <link linkend="find">find</link>  
+operation.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>selected + found</guilabel></term>
+<listitem>
+<para>this sets the color for text that has not only been found as in  
+the previous entry above but that has also been selected.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+<sect1 id="pref-indent">
+<title>indent</title>
+<variablelist>
+<varlistentry>
+<term><guilabel>auto indent</guilabel></term>
+<listitem>
+<para>this causes  
+new lines to begin with the same indentation level as the previous  
+line.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>indent with spaces</guilabel></term>
+<listitem>
+<para>this  
+replaces tabs with the number of spaces selected in the tab width window in  
+the <link linkend="pref-edit">edit</link> section of the preferences  
+dialog.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>backspace key indents</guilabel></term>
+<listitem>
+<para>this allows the  
+<keycombo>
+<keycap>backspace</keycap>
+</keycombo> key to be used to  
+indent.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>tab key indents</guilabel></term>
+<listitem>
+<para>this  
+allows the <keycombo>
+<keycap>tab</keycap>
+</keycombo> key to be used to  
+indent.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>keep indent profile</guilabel></term>
+<listitem>
+<para>this  
+retains current indentation settings for future documents.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>keep extra spaces</guilabel></term>
+<listitem>
+<para>indentations of more than the selected number of spaces  
+will not be shortened.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+<sect1 id="pref-select">
+<title>select</title>
+<variablelist>
+<varlistentry>
+<term><guilabel>persistent selections</guilabel></term>
+<listitem>
+<para>this prevents key input or cursor movement by way of the  
+arrow keys from causing the elimination of text  
+selection. </para>
+<note>
+<para>(note: if the overwrite selections option is  
+activated then any typed character input or paste operation will replace  
+the selected text.)</para>
+</note>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>overwrite selections</guilabel></term>
+<listitem>
+<para>any keyed character input or paste operation will replace  
+the selected text.  </para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>mouse autocopy</guilabel></term>
+<listitem>
+<para>any text  
+selected with the mouse will be automatically copied to the  
+clipboard.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>x11-like single selection</guilabel></term>
+<listitem>
+<para>not implemented yet.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>vertical selections</guilabel></term>
+<listitem>
+<para>this  
+activates the <link linkend="vertical-selection">vertical selection</link>  
+option.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>toggle old</term>
+<listitem>
+<para>not yet implemented</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+<sect1 id="pref-edit">
+<title>edit</title>
+<variablelist>
+<varlistentry>
+<term id="pref-word-wrap"><guilabel>word wrap</guilabel></term>
+<listitem>
+<para>word wrap is a feature that causes the editor to
+automatically start a new line of text and move (wrap) the cursor to the
+beginning of that new line.  <application>kwrite</application> will automatically start a new line of text
+when  the current line reaches the length specified by the <link linkend="pref-wrap-words-at">wrap words at:</link>  
+option.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term id="pref-wrap-words-at"><guilabel>wrap words  
+at:</guilabel></term>
+<listitem>
+<para>if the <link linkend="pref-word-wrap">word wrap</link> option is selected this entry  
+determines the length (in characters) at which the editor will
+automatically start a new line.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term id="pref-replace-tabs-by-spaces"><guilabel>replace tabs by  
+spaces</guilabel></term>
+<listitem>
+<para><application>kwrite</application> will replace any tabs  
+with the number of spaces indicated in the <link linkend="pref-tab-width">tab width:</link> entry.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term id="pref-tab-width">tab width</term>
+<listitem>
+<para>if the <link linkend="pref-word-wrap"><guilabel>replace tabs by spaces</guilabel></link>  
+option is selected this entry determines the number of spaces with which
+the editor will automatically replace tabs.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>remove trailing spaces</guilabel></term>
+<listitem>
+<para><application>kwrite</application> will automatically eliminate extra spaces at the  
+ends of lines of text.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>auto brackets</guilabel></term>
+<listitem>
+<para>when the
+user types a left bracket ([,(, or {) <application>kwrite</application> automatically
+enters the right bracket (}, ), or ]) to the right of the
+cursor.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term id="group-undos"><guilabel>group undos</guilabel></term>
+<listitem>
+<para>groups of similar actions are to be considered a single
+<link linkend="undo">undo</link> step by <application>kwrite</application>. in other words, a series
+of regular character keystrokes (words or expressions) would be considered
+one step and therefore be removed by a single undo operation.  if the
+series of character entries were interrupted by a non-character entry
+operation (such as a backspace), invoking undo would only remove the
+entries made since that operation. the next undo would then reverse that
+operation and so on.</para>
+<para> when this option is not selected <application>kwrite</application> considers
+each keystroke to be a single step.  so if the user (with this option
+active) were to type several words or even sentences without having to make
+corrections or cut or paste or some other non-character entry operation
+then a click of the undo button would eliminate all that had been typed
+since the last non-entry operation.  a second click would eliminate that
+operation and a third any operation or series of entries that occurred
+before the operation and so on.  when not selected three clicks of the undo
+button would only remove the last three letters typed, or the last three
+operations.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>show tabs</guilabel></term>
+<listitem>
+<para>the editor will display a symbol to indicate the presence  
+of a tab in the text.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>smart home</guilabel></term>
+<listitem>
+<para>not yet implemented</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>page up/down moves cursor</guilabel></term>
+<listitem>
+<para>this option changes the behavior of the cursor when
+the user presses the <keycap>page up</keycap> or <keycap>page down</keycap> key. if
+unselected the text cursor will maintain its relative position within the visible
+text in <application>kwrite</application> as new text becomes visible as a result of the operation.  so if
+the cursor is in the middle of the visible text when the operation occurs it will
+remain there (except when one reaches the beginning or end.)  with this
+option selected, the first key press will cause the cursor to move to either the top
+or bottom of the visible text as a new page of text is displayed.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>wrap cursor</term>
+<listitem>
+<para>when this option is chosen, moving
+the cursor with the arrow keys off the end of a line (to the right) causes
+it to jump down to the beginning of the next line.  likewise when the
+cursor is moved past the beginning of a line (to the left) it jumps up to
+the end of the preceding line. when this option is not selected, moving the
+cursor right past the end of a line merely causes it to continue
+horizontally in the same line and trying to move it left past the beginning
+does nothing.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><link linkend="undo">undo</link> steps:</term>
+<listitem>
+<para>here
+the user may specify the number of steps <application>kwrite</application> will retain in memory for
+purposes of undoing entries and actions.  this means that the higher the
+number of steps set the more memory <application>kwrite</application> will use for this.  setting
+this entry to 10 would mean that the user would be be able reverse the last
+ten operations, <abbrev>i.e.</abbrev>i&#62;, click the <guibutton>undo</guibutton>
+button 10 times and obtain results.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+<sect1 id="prefspellchecker">
+<title>spelling</title>
+<para>a spell checker is a program designed to
+help the user catch and correct any spelling errors.  this section of the
+preferences dialog allows certain important settings to be adjusted in this
+regard.</para>
+<variablelist>
+<varlistentry>
+<term><guilabel>create root/affix combinations not in
+dictionary</guilabel></term>
+<listitem>
+<para>selecting this option allows
+the spell checker to register as 'correct' combinations of root words with
+suffixes or prefixes even if the particular combination is not listed in
+its dictionary data base of words.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>consider run-together words as spelling
+errors</guilabel></term>
+<listitem>
+<para>selecting this will cause the
+spell checker to register as 'misspelled' two or more correctly spelled
+words that are 'run-together', <abbrev>i.e.</abbrev>, that do not have spaces
+separating them.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>dictionary:</guilabel></term>
+<listitem>
+<para>depending on
+the user's installation one or more different language spelling
+dictionaries may be available.  this drop down box allows the user to
+choose which language the spell checker should use.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>encoding:</guilabel></term>
+<listitem>
+<para>there are  
+different coding systems used to associate particular codes with particular  
+characters and symbols.  if the user knows which code he or she is using  
+this drop down box allows this code to be specified so that the spell
+checker can do its job correctly. </para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>client:</guilabel></term>
+<listitem>
+<para>since <application>kwrite</application>
+does not contain its own spell checker, an external one must be chosen.
+this is where the user may specify which spell check program to
+use.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect1>
+</chapter>
+<chapter id="pref-highlighting">
+<title>highlighting</title>
+<para>the <guilabel>configure highlighting</guilabel> dialog consists of two
+pages, <guilabel>defaults</guilabel> and <guilabel>highlighting
+modes</guilabel>.  the user can select which page to view by clicking on the
+appropriate tab at the top of the dialog</para>
+<para>items available on the <guilabel>defaults</guilabel> page are as
+follows:</para>
+<variablelist>
+<varlistentry>
+<term><guilabel>default item styles</guilabel></term>
+<listitem>
+<para>the user can configure the default appearance for particular items.
+this would allow a programmer to more easily identify different items (types of
+entries) in his or her code.
+
+</para>
+<variablelist>
+<varlistentry>
+<term><guilabel>item</guilabel></term>
+<listitem>
+<para>this drop down list offers a variety of items that the user
+might want to highlight.  they include <guilabel>normal</guilabel> for
+text does not fit in any of the other categories, <guilabel>comment</guilabel>,
+<guilabel>string</guilabel>, <guilabel>keyword</guilabel> and many more.  not
+all of these entries will need to be configured for every language and so may be
+selected as needed.  the options in the rest of this section apply
+to the entry selected in this box.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>normal</guilabel></term>
+<listitem>
+<para>this allows the user to choose the item's normal
+(unselected) color.  this is done by means of a color selection
+dialog box, a further explanation of which may be found in the <link linkend="prefcolors">colors</link> section of <link linkend="pref-dialog">configure kwrite</link>.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>bold</guilabel></term>
+<listitem>
+<para>this option determines whether or not the item should be displayed in
+bold text.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>italic</guilabel></term>
+<listitem>
+<para>this option determines whether or not the item should be displayed in italic
+text.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>selected</guilabel></term>
+<listitem>
+<para>this allows the user to choose the item's color
+when selected.  this is done by means of a color selection
+dialog box, a further explanation of which may be found in the <link linkend="prefcolors">colors</link> section of <link linkend="pref-dialog">configure kwrite</link>.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>default font</guilabel></term>
+<listitem>
+<para>here the user can choose the default font for all
+text.</para>
+<variablelist>
+<varlistentry>
+<term><guilabel>family</guilabel></term>
+<listitem>
+<para>this is used to choose the font family.  the default is fixed.
+for most programming purposes, a monospaced font (one in which a w takes up the same
+amount of space as an i) may be the best choice.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>size</guilabel></term>
+<listitem>
+<para>the font size can be changed here.  the default is 12
+points.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>charset</guilabel></term>
+<listitem>
+<para>here the user can choose which character set to work in.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>items on the <guilabel>highlight modes</guilabel> tab allow the user to define
+more specific highlighting depending on the language style.</para>
+<para>one need not set every available option, items not configured
+specifically will use the default configuration specified on the previous  
+(<guilabel>defaults</guilabel> tab.</para>
+<variablelist>
+<varlistentry>
+<term><guilabel>config select</guilabel></term>
+<listitem>
+<para>this group of options is used to customize the highlighting styles
+for each programming language type.  any changes you made in
+other areas of this dialog apply only to this type.</para>
+<variablelist>
+<varlistentry>
+<term><guilabel>highlight</guilabel></term>
+<listitem>
+<para>this is used to choose the language type to
+configure</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>item</guilabel></term>
+<listitem>
+<para>this is to choose the syntax item to configure.  remember
+this  only configures <emphasis>this</emphasis> item for <emphasis>this</emphasis>
+language.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<para>as an example, if the user wished to configure the appearance of
+<quote>comments</quote> while writing c++, she or he could choose c++ in the
+<guilabel>highlight</guilabel> drop down list, and then choose comment in the
+<guilabel>item</guilabel> drop down list. to have <quote>comments</quote> look
+the same across all languages, the user would need to configure this in the
+<guilabel>defaults</guilabel> page of this dialog box while leaving
+<quote>comments</quote> unconfigured within the more specific
+<guilabel>highlight modes</guilabel> page.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>item style</guilabel></term>
+<listitem>
+<para>here the user can configure the general appearance of the above
+selected item.  checking the <guilabel>default</guilabel> checkbox causes the default
+style as configured on the previous tab to be set, or the
+appearance can be configured directly.  the available options are the same as on the
+<guilabel>defaults</guilabel> tab: <guilabel>normal</guilabel>,
+<guilabel>selected</guilabel>, <guilabel>bold</guilabel> and
+<guilabel>italic</guilabel>.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>highlight auto select</guilabel></term>
+<listitem>
+<para><application>kwrite</application> can apply syntax highlighting automatically, depending  
+on the file extension or mime-type of the opened file.  the defaults are fairly
+comprehensive, but users that regularly edit files with non-standard extensions
+can add them here.  wildcards are allowed in the <guilabel>file
+extensions</guilabel> text box.  for example, the default entry for the c++
+language is <userinput>*.cpp;*.cc;*.c;*.h</userinput>.  opening a file called
+<filename>foo.h</filename> would automatically apply the c++ style to it.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term><guilabel>item font</guilabel></term>
+<listitem>
+<para>here the user can choose the font for the selected item.</para>
+<para>the default style can be applied by checking the
+<guilabel>default</guilabel> checkbox or the user can choose a specific font
+<guilabel>family</guilabel>, <guilabel>size</guilabel> and
+<guilabel>charset</guilabel>.  the available options are the same as those on
+the <guilabel>defaults</guilabel> tab.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</chapter>
+<chapter id="credits">
+<title>credits and licenses</title>
+<para><application>kwrite</application> copyright 2000 by jochen wilhelmy  
+<email>digisnap at cs.tu-berlin.de</email></para>
+<para>contributions:</para>
+<itemizedlist>
+<listitem>
+<para>additional contributions by glen parker <email>glenebob at nwlink.com</email></para>
+</listitem>
+<listitem>
+<para>michael koch <email>koch at kde.org</email></para>
+</listitem>
+</itemizedlist>
+<para>documentation by thad mcginnis <email>ctmcginnis at compuserve.com</email></para>
+<itemizedlist>
+<listitem>
+<para>this version of the <application>kwrite</application> handbook is based on the original by cristian tibirna <email>tibirna at kde.org</email></para>
+</listitem>
+</itemizedlist>
+<para>converted to docbook/proofreading by lauri watts <email>vampyr at atconnex.net</email></para>
+<para id="gnu-fdl" xreflabel="the section entitled gnu free documentation license">this documentation is licensed under the terms of the <ulink url="common/fdl-license.html">gnu free documentation
+license</ulink>.</para>
+<para>this program is licensed under the terms of the <ulink url="common/gpl-translated.html">gnu general public license</ulink>.</para>
+</chapter>
+<appendix id="installation">
+<title>installation</title>
+<para><application>kwrite</application> is packaged as part of the kdebase package.  for more information
+on installing and compiling kde please see <ulink url="http://www.kde.org">www.kde.org</ulink>.</para>
+</appendix>
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/multilingual.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/multilingual.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/multilingual.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,700 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd">
+
+<!-- test document -->
+
+<book><title>Multilingual Test Document</title>
+
+<chapter lang="ca" id="cachap">
+<title>Catalan</title>
+<note>
+<para>
+This paragraph would be in Catalan, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="cs" id="cschap">
+<title>Czech</title>
+<note>
+<para>
+This paragraph would be in Czech, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="da" id="dachap">
+<title>Danish</title>
+<note>
+<para>
+This paragraph would be in Danish, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="es" id="eschap">
+<title>Spanish</title>
+<note>
+<para>
+This paragraph would be in Spanish, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="fi" id="fichap">
+<title>Finnish</title>
+<note>
+<para>
+This paragraph would be in Finnish, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="fr" id="frchap">
+<title>French</title>
+<note>
+<para>
+This paragraph would be in French, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="it" id="itchap">
+<title>Italian</title>
+<note>
+<para>
+This paragraph would be in Italian, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="de" id="dechap">
+<title>German</title>
+<note>
+<para>
+This paragraph would be in German, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="el" id="elchap">
+<title>Greek</title>
+<note>
+<para>
+This paragraph would be in Greek, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="en" id="enchap">
+<title>English</title>
+<note>
+<para>
+This paragraph is in English.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="ja" id="jachap">
+<title>Japanese</title>
+<note>
+<para>
+This paragraph would be in Japanese, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="ro" id="rochap">
+<title>Romanian</title>
+<note>
+<para>
+This paragraph would be in Romanian, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="ru" id="ruchap">
+<title>Russian</title>
+<note>
+<para>
+This paragraph would be in Russian, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="no" id="nochap">
+<title>Norsk</title>
+<note>
+<para>
+This paragraph would be in Norsk, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="nl" id="nlchap">
+<title>Dutch</title>
+<note>
+<para>
+This paragraph would be in Dutch, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="pl" id="plchap">
+<title>Polish</title>
+<note>
+<para>
+This paragraph would be in Polish, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="pt" id="ptchap">
+<title>Portuguese</title>
+<note>
+<para>
+This paragraph would be in Portugeuse, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="pt-br" id="ptbrchap">
+<title>Portuguese (Brazilian)</title>
+<note>
+<para>
+This paragraph would be in Brazilian Portugeuse, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="sk" id="skchap">
+<title>Slovak</title>
+<note>
+<para>
+This paragraph would be in Slovak, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="sv" id="svchap">
+<title>Swedish</title>
+<note>
+<para>
+This paragraph would be in Swedish, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<bibliography id="bibl">
+<biblioentry>
+  <abbrev>AhoSethiUllman96</abbrev>
+  <authorgroup>
+    <author><firstname>Alfred V.</firstname><surname>Aho</surname></author>  
+    <author><firstname>Ravi</firstname><surname>Sethi</surname></author>
+    <author><firstname>Jeffrey D.</firstname><surname>Ullman</surname></author>
+  </authorgroup>
+  <title>Compilers, Principles, Techniques, and Tools</title>    
+  <publisher>
+    <publishername>Addison-Wesley Publishing Company</publishername>
+  </publisher>
+  <copyright><year>1996</year>
+             <holder>Bell Telephone Laboratories, Inc.</holder></copyright>
+  <isbn>0-201-10088-6</isbn>    
+  <editor><firstname>James T.</firstname><surname>DeWolf</surname></editor>
+  <seriesinfo>
+    <title>Computer Science</title>
+    <editor>
+      <firstname>Michael A.</firstname>
+      <surname>Harrison</surname>
+    </editor>
+    <publisher>
+      <publishername>Addison-Wesley Publishing Company</publishername>
+    </publisher>
+  </seriesinfo>
+</biblioentry>
+
+</bibliography>
+
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/qa.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/qa.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/qa.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,136 @@
+<!DOCTYPE book
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd" [
+<!ENTITY qandasetbody "<qandadiv><title>Q&amp;A Div 1</title>
+<qandaentry>
+<question><label>Q1</label>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer><label>A1</label>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+</qandadiv>
+<qandadiv><title>Q&amp;A Div 2</title>
+<qandaentry>
+<question>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+<qandaentry>
+<question>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+</qandadiv>">
+]>
+<book><title>book title</title>
+<chapter><title>chapter test</title>
+
+<qandaset>
+<title>Q&amp;A Set (unspecified)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="none">
+<title>Q&amp;A Set (none)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="number">
+<title>Q&amp;A Set (number)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="qanda">
+<title>Q&amp;A Set (qanda)</title>
+&qandasetbody;
+</qandaset>
+
+<section><title>Section title</title>
+
+<qandaset>
+<title>Q&amp;A Set (unspecified)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="none">
+<title>Q&amp;A Set (none)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="number">
+<title>Q&amp;A Set (number)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="qanda">
+<title>Q&amp;A Set (qanda)</title>
+&qandasetbody;
+</qandaset>
+
+</section>
+
+</chapter>
+
+<appendix><title>appendix test</title>
+
+<qandaset>
+<title>Q&amp;A Set (unspecified)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="none">
+<title>Q&amp;A Set (none)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="number">
+<title>Q&amp;A Set (number)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="qanda">
+<title>Q&amp;A Set (qanda)</title>
+&qandasetbody;
+</qandaset>
+
+<section><title>Section title</title>
+
+<qandaset>
+<title>Q&amp;A Set (unspecified)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="none">
+<title>Q&amp;A Set (none)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="number">
+<title>Q&amp;A Set (number)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="qanda">
+<title>Q&amp;A Set (qanda)</title>
+&qandasetbody;
+</qandaset>
+
+</section>
+
+</appendix>
+</book>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/qa2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/qa2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/qa2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,50 @@
+<!DOCTYPE book
+  PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+  "../dtd/4.1.2/docbookx.dtd" [
+]>
+<book><title>book title</title>
+<chapter><title>chapter test</title>
+
+<para>Test a cross reference to a question: <xref linkend="q1"/>.
+</para>
+
+<qandaset>
+<title>Q&amp;A Set (unspecified)</title>
+<qandadiv><title>Q&amp;A Div 1</title>
+<qandaentry>
+<question id="q1"><label>Q1</label>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer id="a1"><label>A1</label>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+</qandadiv>
+<qandadiv><title>Q&amp;A Div 2</title>
+<qandaentry>
+<question>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+<qandaentry>
+<question>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+</qandadiv>
+</qandaset>
+</chapter>
+</book>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/sectest.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/sectest.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/sectest.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,832 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd">
+<book id="book">
+<bookinfo>
+<title>Book Title</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<corpauthor>Some Corporation</corpauthor>
+<legalnotice>
+<title>Legal Notice</title>
+<para>This is a test document. You can do what you will with it.</para>
+</legalnotice>
+<legalnotice>
+<para>This is a second legal notice.  But it's not noteworthy.
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  Some more text. Some more text. Some more text. Some more text. 
+  </para>
+</legalnotice>
+<copyright>
+<year>1998</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</bookinfo>
+<dedication>
+<para>This test book is dedicated to all the testers.  This is the first para
+of the dedication.</para>
+<para>This is the second para of the dedication.</para>
+<para>This is the third para of the dedication.</para>
+</dedication>
+<preface>
+<title>Preface Title</title>
+<para>Preface content.</para>
+<para>This is the second para of the preface.</para>
+<para>This is the third para of the preface.</para>
+</preface>
+<chapter id="chapter">
+<title id="chaptertitle">XRef Tests</title>
+<bridgehead renderas="sect3">Xrefs</bridgehead>
+<simplelist>
+<member><xref linkend="book"/></member>
+<member><xref linkend="part"/></member>
+<member><xref linkend="chapter"/></member>
+<member><xref linkend="appendix"/></member>
+<member><xref linkend="table"/></member>
+<member><xref linkend="figure"/></member>
+<member><xref linkend="example"/></member>
+<member><xref linkend="equation"/></member>
+<member><xref linkend="reference"/></member>
+<member><xref linkend="bib1"/></member>
+<member><xref linkend="gloss"/></member>
+<member><xref linkend="index"/></member>
+</simplelist>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<section><title>Section 1 Title</title>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+</section>
+<section><title>Section 1 Title</title>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+</section>
+</chapter>
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/set.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/set.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/set.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE set
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd">
+<!-- test document -->
+<set><title>Set Title</title>
+<book><title>Book Test Document Title</title>
+<bookinfo>
+<title>Bookinfo Test Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+</authorgroup>
+</bookinfo>
+
+<preface><title>Foreword</title>
+<para>This is a test paragraph.</para>
+</preface>
+
+<chapter id="chapter">
+<title id="chaptertitle">Section Tests</title>
+
+<sect1><title>First Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Second Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Third Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+
+</chapter>
+<appendix><title>First Appendix</title>
+<para>This is just a test.</para>
+<sect1><title>First Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Second Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Third Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+</appendix>
+</book>
+<book><title>Book Test Document Title</title>
+<bookinfo>
+<title>Bookinfo Test Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+</authorgroup>
+</bookinfo>
+
+<preface><title>Foreword</title>
+<para>This is a test paragraph.</para>
+</preface>
+
+<chapter>
+<title>Section Tests</title>
+
+<sect1><title>First Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Second Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Third Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+
+</chapter>
+<appendix><title>First Appendix</title>
+<para>This is just a test.</para>
+</appendix>
+</book>
+</set>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/subdoc.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/subdoc.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/subdoc.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<chapter id="subdoc">
+<para>This is nothing, but a subdoc</para>
+</chapter>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/table.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/table.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/table.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd">
+<chapter id="ch1">
+<title>test</title>
+<para>How many &deg; can you &copy;.</para>
+
+<table frame="topbot"><title>A Table</title>
+<tgroup cols="3">
+<colspec align="right" colname="c2" colnum="2" colwidth="1.5*+2in"/>
+<colspec colname="c3" colwidth="2*+4pt"/>
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry morerows="1">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+<table frame="all"><title>A Table</title>
+<?dbhtml table-width="4in"?>
+<tgroup cols="3">
+<colspec align="right" colname="c2" colnum="2" colwidth="1.5*"/>
+<colspec colname="c3" colwidth="2*"/>
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry morerows="1">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+<table><title>A Table</title>
+<?dbhtml table-width="7in"?>
+<tgroup cols="3">
+<colspec colname="c1" colwidth="2in"/>
+<colspec align="right" colname="c2" colnum="2" colwidth="2in"/>
+<colspec colname="c3" colwidth="3in"/>
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry morerows="1">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+<table><title>A Table</title>
+<?dbhtml table-width="85%"?>
+<tgroup cols="3">
+<colspec align="right" colname="c2" colnum="2" colwidth="2in"/>
+<colspec colname="c3" colwidth="3in"/>
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry morerows="1">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+</chapter>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/test.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/test.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/test.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article
+  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+  "../dtd/4.1.2/docbookx.dtd">
+<article>
+<articleinfo>
+<title>Article Title</title>
+<keywordset>
+<keyword>keyword1</keyword>
+<keyword>keyword2</keyword>
+<keyword>keyword3</keyword>
+</keywordset>
+</articleinfo>
+
+<screen linenumbering="numbered"><?dbhtml linenumbering.everyNth="3" linenumbering.separator=" XX"?>This
+  is                  <lineannotation>With a line-annotation</lineannotation>
+    a 
+     screen<co id="foo"/>
+     This
+    is                <lineannotation>With a line-annotation</lineannotation>
+  a 
+screen
+This
+  is                  <lineannotation>With a line-annotation</lineannotation>
+    a 
+     screen</screen>
+
+<para>What about <xref linkend="foo"/>?</para>
+
+<mediaobjectco>
+<imageobjectco>
+<areaspec units="calspair">
+  <areaset id="oneway" coords="">
+    <area id="oneway1" coords="300 400"/>
+    <area id="oneway2" coords="325 340"/>
+  </areaset>
+  <area id="myhouse" coords="425 590"/>
+</areaspec>
+<!-- This is not a real URL! -->
+<imageobject>
+<imagedata fileref="http://maps.example.com/EARTH?USA?MA?AMHERST"/>
+</imageobject>
+</imageobjectco>
+</mediaobjectco>
+
+</article>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/test.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/test.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/test.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:import href="../html/docbook.xsl"/>
+
+<xsl:output doctype-public="..." doctype-system="..."/>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/verbtest.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/verbtest.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/test/verbtest.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+  PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+  "../dtd/3.1.7/docbookx.dtd">
+<book id="book">
+<title>Book Title</title>
+
+<chapter id="ch1">
+<title>test</title>
+<para>How many &deg; can you &copy;.</para>
+<para>And what about <xref linkend="ch1"/>.</para>
+<para>And what about <xref linkend="s1"/>.</para>
+
+<programlisting>
+This is a program
+listing.
+</programlisting>
+
+</chapter>
+</book>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/ChangeLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/ChangeLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/ChangeLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+2001-04-03  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* chunk.xsl, docbook.xsl, xtchunk.xsl: Support MathML and chunking properly
+
+2001-04-02  Norman Walsh <nwalsh at users.sourceforge.net>
+
+	* docbook.xsl, xtchunk.xsl: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/LostLog
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/LostLog	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/LostLog	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+1999-12-28  Norman Walsh  <ndw at nwalsh.com>
+
+	* xtchunk.xsl: Improved messages
+
+	* xtchunk.xsl: Finished first pass at XT-based chunker
+
+1999-12-24  Norman Walsh  <ndw at nwalsh.com>
+
+	* xtchunk.xsl: New file.
+
+1999-11-10  Norman Walsh  <ndw at nwalsh.com>
+
+	* docbook.xsl: New file.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/chunk.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/chunk.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/chunk.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:mml="http://www.w3.org/1998/Math/MathML"
+		version="1.0">
+
+<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunk.xsl -->
+
+<xsl:import href="../html/chunk.xsl"/>
+
+<xsl:param name="html.ext" select="'.xhtm'"/>
+
+<xsl:output method="xml"/>
+
+<xsl:template match="mml:*">
+  <xsl:element name="{name(.)}">
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/docbook.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/docbook.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/docbook.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:mml="http://www.w3.org/1998/Math/MathML"
+                version='1.0'>
+
+<!-- ********************************************************************
+     $Id: docbook.xsl,v 1.2 2001/06/23 17:06:54 veillard Exp $
+     ********************************************************************
+
+     This file is part of the XSL DocBook Stylesheet distribution.
+     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+     and other information.
+
+     ******************************************************************** -->
+
+<xsl:include href="../html/docbook.xsl"/>
+
+ <!-- this has to be last because of document order nonsense -->
+<xsl:output method="xml"/>
+
+<xsl:template match="mml:*">
+  <xsl:element name="{name(.)}">
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/xtchunk.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/xtchunk.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docbook/xhtml/xtchunk.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:mml="http://www.w3.org/1998/Math/MathML"
+		version="1.0">
+
+<xsl:import href="../html/xtchunk.xsl"/>
+
+<xsl:param name="html.ext" select="'.xhtm'"/>
+
+<xsl:output method="xml"/>
+
+<xsl:template match="mml:*">
+  <xsl:element name="{name(.)}">
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates/>
+  </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,171 @@
+## Process this file with automake to produce Makefile.in
+
+#
+# Contains only test documents
+#
+
+EXTRA_DIST =	\
+	bug-1-.xml \
+	bug-2-.xml \
+	bug-3-.xml \
+	bug-4-.xml \
+	bug-5-.xml \
+	bug-6-.xml \
+	bug-7-.xml \
+	bug-8-.xml \
+	bug-9-.xml \
+	bug-10-.xml \
+	bug-11-.xml \
+	bug-12-.xml \
+	bug-13-.xml \
+	bug-14-.xml \
+	bug-15-.xml \
+	bug-16-.xml \
+	bug-17-.xml \
+	bug-18-.xml \
+	bug-19-.xml \
+	bug-20-.xml \
+	bug-21-.xml \
+	bug-22-.xml \
+	bug-23-.xml \
+	bug-24-.xml \
+	bug-25-.xml \
+	bug-26-.xml \
+	bug-27-.xml \
+	bug-28-.xml \
+	bug-29-.xml bug-29-.ent \
+	bug-30-.xml \
+	bug-31-.xml \
+	bug-32-.xml \
+	bug-33-.xml \
+	bug-35-.xml \
+	bug-36-.xml \
+	bug-37-.xml \
+	bug-38-.xml \
+	bug-39-.xml \
+	bug-40-.xml \
+	bug-41-.xml \
+	bug-42-.xml \
+	bug-43-.xml \
+	bug-44-.xml \
+	bug-45-.xml \
+	bug-46-.xml \
+	bug-47-.xml \
+	bug-48-.xml \
+	bug-49-.xml \
+	bug-50-.xml \
+	bug-52.xml \
+	bug-53.xml \
+	bug-54.xml \
+	bug-55.xml \
+	bug-56.xml \
+	bug-57.xml \
+	bug-59.xml \
+	bug-60.xml \
+	bug-61.xml \
+	bug-62.xml \
+	bug-63.xml \
+	bug-64.xml \
+	bug-65.xml \
+	bug-66.xml \
+	bug-68.xml \
+	bug-69.xml \
+	bug-70.xml \
+	bug-71.xml \
+	bug-72.xml \
+	bug-73.xml \
+	bug-74.xml \
+	bug-75.xml \
+	bug-76.xml \
+	bug-77.xml \
+	bug-78.xml \
+	bug-79.xml \
+	bug-80.xml \
+	bug-81.xml \
+	bug-82.xml \
+	bug-83.xml \
+	bug-84.xml \
+	bug-86.xml \
+	bug-87.xml \
+	bug-88.xml \
+	bug-89.xml \
+	bug-90.xml \
+	bug-91.xml \
+	bug-92.xml \
+	bug-93.xml \
+	bug-94.xml \
+	bug-95.xml \
+	bug-96.xml \
+	bug-97.xml \
+	bug-98.xml \
+	bug-99.xml \
+	bug-100.xml \
+	bug-101.xml \
+	bug-102.xml \
+	bug-103.xml \
+	bug-104.xml \
+	bug-105.xml \
+	bug-106.xml \
+	bug-107.xml \
+	bug-108.xml \
+	bug-109.xml \
+	bug-110.xml bug-110.ent \
+	bug-111.xml \
+	bug-112.xml \
+	bug-113.xml \
+	bug-114.xml \
+	bug-115.xml \
+	bug-116.xml \
+	bug-117.xml \
+	bug-118.xml \
+	bug-119.xml \
+	bug-120.xml \
+	bug-121.xml \
+	bug-122.xml \
+	bug-123.xml \
+	bug-124.xml \
+	bug-125.xml \
+	bug-126.xml \
+	bug-127.xml \
+	bug-128.xml \
+	bug-129.xml \
+	bug-130.xml bug-130.doc \
+	bug-131.xml \
+	bug-132.xml \
+	bug-133.xml \
+	bug-134.xml \
+	bug-135.xml \
+	bug-136.xml \
+	bug-137.xml \
+	bug-138.xml \
+	bug-139.xml \
+	bug-140.xml \
+	bug-141.xml \
+	bug-142.xml \
+	bug-143.xml \
+	bug-144.xml \
+	bug-145.xml \
+	bug-146.xml \
+	bug-147.xml \
+	bug-148.xml \
+	bug-149.xml \
+	bug-150.xml \
+	bug-151.xml \
+	bug-152.xml \
+	bug-153.xml bug-153.doc \
+	bug-154.xml \
+	bug-155.xml \
+	bug-156.xml \
+	bug-157.xml \
+	bug-158.xml bug-158.doc \
+	bug-159.xml \
+	bug-160.xml \
+	bug-161.xml \
+	bug-163.xml \
+	character.xml \
+	array.xml \
+	items.xml
+
+all:
+
+tests:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,539 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+#
+# Contains only test documents
+#
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/docs
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+	bug-1-.xml \
+	bug-2-.xml \
+	bug-3-.xml \
+	bug-4-.xml \
+	bug-5-.xml \
+	bug-6-.xml \
+	bug-7-.xml \
+	bug-8-.xml \
+	bug-9-.xml \
+	bug-10-.xml \
+	bug-11-.xml \
+	bug-12-.xml \
+	bug-13-.xml \
+	bug-14-.xml \
+	bug-15-.xml \
+	bug-16-.xml \
+	bug-17-.xml \
+	bug-18-.xml \
+	bug-19-.xml \
+	bug-20-.xml \
+	bug-21-.xml \
+	bug-22-.xml \
+	bug-23-.xml \
+	bug-24-.xml \
+	bug-25-.xml \
+	bug-26-.xml \
+	bug-27-.xml \
+	bug-28-.xml \
+	bug-29-.xml bug-29-.ent \
+	bug-30-.xml \
+	bug-31-.xml \
+	bug-32-.xml \
+	bug-33-.xml \
+	bug-35-.xml \
+	bug-36-.xml \
+	bug-37-.xml \
+	bug-38-.xml \
+	bug-39-.xml \
+	bug-40-.xml \
+	bug-41-.xml \
+	bug-42-.xml \
+	bug-43-.xml \
+	bug-44-.xml \
+	bug-45-.xml \
+	bug-46-.xml \
+	bug-47-.xml \
+	bug-48-.xml \
+	bug-49-.xml \
+	bug-50-.xml \
+	bug-52.xml \
+	bug-53.xml \
+	bug-54.xml \
+	bug-55.xml \
+	bug-56.xml \
+	bug-57.xml \
+	bug-59.xml \
+	bug-60.xml \
+	bug-61.xml \
+	bug-62.xml \
+	bug-63.xml \
+	bug-64.xml \
+	bug-65.xml \
+	bug-66.xml \
+	bug-68.xml \
+	bug-69.xml \
+	bug-70.xml \
+	bug-71.xml \
+	bug-72.xml \
+	bug-73.xml \
+	bug-74.xml \
+	bug-75.xml \
+	bug-76.xml \
+	bug-77.xml \
+	bug-78.xml \
+	bug-79.xml \
+	bug-80.xml \
+	bug-81.xml \
+	bug-82.xml \
+	bug-83.xml \
+	bug-84.xml \
+	bug-86.xml \
+	bug-87.xml \
+	bug-88.xml \
+	bug-89.xml \
+	bug-90.xml \
+	bug-91.xml \
+	bug-92.xml \
+	bug-93.xml \
+	bug-94.xml \
+	bug-95.xml \
+	bug-96.xml \
+	bug-97.xml \
+	bug-98.xml \
+	bug-99.xml \
+	bug-100.xml \
+	bug-101.xml \
+	bug-102.xml \
+	bug-103.xml \
+	bug-104.xml \
+	bug-105.xml \
+	bug-106.xml \
+	bug-107.xml \
+	bug-108.xml \
+	bug-109.xml \
+	bug-110.xml bug-110.ent \
+	bug-111.xml \
+	bug-112.xml \
+	bug-113.xml \
+	bug-114.xml \
+	bug-115.xml \
+	bug-116.xml \
+	bug-117.xml \
+	bug-118.xml \
+	bug-119.xml \
+	bug-120.xml \
+	bug-121.xml \
+	bug-122.xml \
+	bug-123.xml \
+	bug-124.xml \
+	bug-125.xml \
+	bug-126.xml \
+	bug-127.xml \
+	bug-128.xml \
+	bug-129.xml \
+	bug-130.xml bug-130.doc \
+	bug-131.xml \
+	bug-132.xml \
+	bug-133.xml \
+	bug-134.xml \
+	bug-135.xml \
+	bug-136.xml \
+	bug-137.xml \
+	bug-138.xml \
+	bug-139.xml \
+	bug-140.xml \
+	bug-141.xml \
+	bug-142.xml \
+	bug-143.xml \
+	bug-144.xml \
+	bug-145.xml \
+	bug-146.xml \
+	bug-147.xml \
+	bug-148.xml \
+	bug-149.xml \
+	bug-150.xml \
+	bug-151.xml \
+	bug-152.xml \
+	bug-153.xml bug-153.doc \
+	bug-154.xml \
+	bug-155.xml \
+	bug-156.xml \
+	bug-157.xml \
+	bug-158.xml bug-158.doc \
+	bug-159.xml \
+	bug-160.xml \
+	bug-161.xml \
+	bug-163.xml \
+	character.xml \
+	array.xml \
+	items.xml
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/docs/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/docs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+all:
+
+tests:
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/array.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/array.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/array.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<!-- filename:      test.xml=20
+     created on:    2001 Jun 14 01:44:46 +0200 (CEST)
+     last modified: 2001 Jun 14 01:44:57 +0200 (CEST)
+     (c) 2001 by Goetz Bock <bock at blacknet.de>
+     -->
+<test />

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-1-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-1-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-1-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<foo>
+        <bar>This is bar 1</bar>
+        <xxx/>
+        <bar>This is bar 2</bar>
+</foo>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-10-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-10-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-10-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version= "1.0"?>
+<doc/>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-100.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-100.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-100.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-101.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-101.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-101.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-102.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-102.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-102.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-103.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-103.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-103.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<foo/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-104.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-104.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-104.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<foo xmlns:eg="http://example.org" xmlns="http://example.org" eg:bar=""/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-105.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-105.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-105.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-106.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-106.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-106.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc>&#xD;</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-107.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-107.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-107.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<doc>
+  <?pi pi 1?>
+  <!-- comment 1 -->
+  <foo/>
+  <?pi pi 2?>
+  <!-- comment 2 -->
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-108.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-108.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-108.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<a name="a"><b name="b"><c name="c"><d name="d"><e name="e"><f name="f"><g
+name="g"><h name="h">
+</h></g></f></e></d></c></b></a>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-109.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-109.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-109.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<doc>
+&lt;b&gt;This is HTML&lt;/b&gt;
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-11-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-11-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-11-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version= "1.0"?>
+
+<doc/>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-110.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-110.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-110.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<elem id='id0' />

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-110.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-110.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-110.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<!DOCTYPE root [ 
+<!ATTLIST elem id ID #IMPLIED> 
+<!ENTITY target SYSTEM "bug-110.ent"> 
+]> 
+ 
+<root> 
+  &target;
+  <!-- <elem id='id0' /> --> 
+</root> 

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-111.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-111.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-111.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+   <DIRTREE dirpath="c:\file" dirname="file">
+      <f n="AdditionalInfo.bmp" s="1999194" m="03/06/2002 11:21" a=" A" />
+      <f n="AdditionalInfo.jpg" s="65835" m="03/15/2002 13:43" a=" A" />
+      <f n="jdesupport.htm" s="6264" m="03/15/2002 13:32" a=" A" />
+      <f n="LoginScreen.bmp" s="1410914" m="03/06/2002 11:18" a=" A" />
+      <f n="MainScreen.bmp" s="1683330" m="03/06/2002 11:16" a=" A" />
+      <f n="MainScreen.jpg" s="46339" m="03/15/2002 13:43" a=" A" />
+      <f n="newsa.htm" s="3646" m="03/15/2002 13:41" a=" A" />
+      <f n="OutputOptions.bmp" s="1216234" m="03/06/2002 11:22" a=" A" />
+      <f n="ReportSysOverview.bmp" s="2008270" m="03/06/2002 11:23" a=" A" />
+      <f n="ReportViewer.jpg" s="56653" m="03/15/2002 13:44" a=" A" />
+      <f n="SelectProfile.bmp" s="1683330" m="03/06/2002 11:17" a=" A" />
+      <f n="SelectProfile.jpg" s="71648" m="03/15/2002 11:06" a=" A" />
+      <d name="utils" />
+   </DIRTREE>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-112.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-112.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-112.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-113.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-113.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-113.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE dest [
+<!ELEMENT dest (#PCDATA)>
+<!ATTLIST dest id ID #IMPLIED>
+]>
+<dest id="hällo">WORKS</dest>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-114.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-114.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-114.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<sample>
+  <foo name="one"/>
+  <foo name="two"/>
+  <foo name="three"/>
+  <foo name="four"/>
+</sample>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-115.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-115.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-115.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-116.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-116.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-116.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-117.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-117.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-117.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+<l:doc xmlns:l="http://www.foobar.com/xmlns/l">
+        <l:doc-head>
+                <l:doc-title>Doc Title</l:doc-title>
+        </l:doc-head>
+        <l:doc-content>
+                <l:p>Hello World!</l:p>
+        </l:doc-content>
+</l:doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-118.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-118.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-118.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<root
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+    xmlns:ex="http://www.example.org/"
+    >
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-119.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-119.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-119.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version="1.0">
+  <xsl:template match="/">
+    <xsl:apply-templates select="*" />
+  </xsl:template>
+
+  <xsl:template match="@match">
+    NAME <xsl:value-of select="name(.)" />
+  </xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-12-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-12-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-12-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding="ISO-8859-1"?>
+
+<test:schema xmlns:test="http://test.com"
+             xmlns:xlink="http://xlink.com">
+<test:root >
+   <test:child>
+   </test:child>
+</test:root>
+</test:schema>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-120.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-120.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-120.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<a>
+   <b>3</b>
+   <b/>
+   <b>1</b>
+   <b>4</b>
+   <b/>
+   <b/>
+   <b>-1</b>
+   <b>some alpha</b>
+   <b/>
+   <b>-99999999</b>
+   <b/>
+</a>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-121.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-121.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-121.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-122.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-122.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-122.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?> 
+<!DOCTYPE doc > 
+ 
+<doc 
+        version="1.0" 
+        xmlns:a="urn:a" 
+        xmlns:b="urn:b" 
+        xmlns:c="urn:c" 
+> 
+ <empty/> 
+</doc> 

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-123.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-123.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-123.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<element foo="xml"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-124.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-124.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-124.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<a xmlns="http://example.org/foobar">
+   <b/>
+   <b/>
+   <b/>
+</a>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-125.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-125.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-125.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<errataset>
+  <errata page="28" paragraph="3" line="1" type="GRAMMAR" tracker="151902">
+    Replace "at once" with "both".
+  </errata>
+  <errata page="17" line="2" type="CLARIFICATION" tracker="151902">
+    Replace "the previous explanation of namespaces" with "the example of
+    namespaces in Example 2-1".
+  </errata>
+  <errata page="40" paragraph="1" line="5" type="CLARIFICATION"
+          tracker="151902">
+    Replace "content-encoding" with "content encoding".
+    <explanation>The hyphen implies the "Content-Encoding" HTTP header, and
+      here I am referring instead to the general concept of content
+      encoding.</explanation>
+  </errata>
+  <errata page="52" paragraph="3" type="UPDATE" tracker="151902">
+    As of this current errata update, the RPC::XMLSimple package has not yet
+    been released to CPAN. Until it is released, none of the examples using
+    this module can be run as presented.
+  </errata>
+  <errata page="47" line="33" type="CORRECTION" tracker="151902">
+    Replace "resolve_name" (in the error message) with "get_data".
+  </errata>
+  <errata page="186" line="32" type="CORRECTION" tracker="157190">
+    The last character of this line, ">", should be replaced with "/>" in
+    order to make it valid XML.
+  </errata>
+  <errata page="203" paragraph="2" line="3" type="CORRECTION" tracker="163134">
+    Replace "soap:address" with "http:address".
+  </errata>
+  <errata page="237" paragraph="1" line="6" type="GRAMMAR">
+    Replace "more" with "most".
+  </errata>
+  <errata page="245" paragraph="4" line="2" type="CORRECTION">
+    Replace "different" with "difference".
+  </errata>
+  <errata page="247" paragraph="4" line="5" type="CORRECTION">
+    Replace "out of hand" with "out-of-band".
+  </errata>
+  <errata page="251" paragraph="2" line="4" type="GRAMMAR">
+    Replace "sequence," with "sequence" (remove the comma).
+  </errata>
+  <errata page="297" line="1" type="CORRECTION">
+    Replace "Description" with "Definition".
+  </errata>
+  <errata page="53" line="24" type="CORRECTION">
+    The script should start with the line, "#!/usr/bin/perl -w" before the
+    first line of actual code.
+  </errata>
+  <errata page="59" line="16" type="CORRECTION">
+    The script should start with the line, "#!/usr/bin/perl -w" before the
+    first line of actual code.
+  </errata>
+  <errata page="68" line="4" type="CORRECTION">
+    The script should start with the line, "#!/usr/bin/perl -w" before the
+    first line of actual code.
+  </errata>
+  <errata page="115" line="20" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="120" line="30" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="146" line="10" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="151" line="27" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="157" line="16" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="165" line="26" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="166" line="25" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="168" line="20" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="170" line="1" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="171" line="18" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="172" line="20" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="174" line="9" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="175" line="6" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="176" line="23" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="232" line="3" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+  <errata page="253" line="24" type="CORRECTION">
+    Replace "#!perl" with "#!/usr/bin/perl".
+    <explanation>This and the identical changes later are for consistency with
+      other code examples.</explanation>
+  </errata>
+  <errata page="274" line="9" type="CORRECTION">
+    Replace "#!perl" with "#!/usr/bin/perl".
+  </errata>
+  <errata page="274" line="19" type="CORRECTION">
+    Replace "#!perl" with "#!/usr/bin/perl".
+  </errata>
+  <errata page="431" line="9" type="CORRECTION">
+    Append " -w" after "perl".
+  </errata>
+</errataset>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-126.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-126.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-126.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-127.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-127.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-127.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-128.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-128.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-128.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:test="http://www.example.org/test">
+  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+  <xsl:key name="k" match="test:a" use="@a"/>
+  <xsl:key name="k" match="test:b" use="@b"/>
+  <xsl:key name="k" match="test.a" use="@a"/>
+
+  <xsl:template match="/">
+    <test:data>
+      <xsl:for-each select="key('k','1')">
+        <xsl:copy-of select="."/>
+      </xsl:for-each>
+    </test:data>
+  </xsl:template>
+
+  <xsl:template match="text()|@*"/>
+
+  <test:data>
+    <test:a a="1"/>
+    <test:b b="1"/>
+  </test:data>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-129.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-129.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-129.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<root xmlns:foo="http://foo.org">
+  <foo:elt>
+    <![CDATA[>]]>
+  </foo:elt>
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-13-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-13-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-13-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<some>text</some>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-130.doc
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-130.doc	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-130.doc	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<document>
+<header></header>
+<article><title>title #1</title></article>
+<article><title>title #2</title></article>
+</document>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-130.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-130.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-130.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<?xml-stylesheet type="text/xsl" href="./transform.xsl"?>
+<frame content="./content.xml"/>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-131.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-131.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-131.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<title>My title</title>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-132.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-132.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-132.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<collection>
+  <test><![CDATA[
+    <![CDATA[abc]]]>]&gt;<![CDATA[
+  ]]></test>
+</collection>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-133.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-133.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-133.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<html>
+<body>
+<trash />
+<h2>title</h2>
+<div>test</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-134.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-134.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-134.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<root>
+  <sect><h1 /></sect>
+  <sect><h2 /></sect>
+  <sect><h3 /></sect>
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-135.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-135.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-135.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<root>
+  <sect><h1 /></sect>
+  <sect><h2 /></sect>
+  <sect><h3 /></sect>
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-136.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-136.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-136.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<test>
+ <item n="http://some/namespace/uri" />
+</test>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-137.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-137.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-137.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<test>This should be matched by the key</test>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-138.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-138.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-138.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<report>
+        <title>My Document</title>
+        <origin>someone</origin>
+        <form>
+                <code>1234</code>
+                <description note="min qty 5">A widget</description>
+                <qty>10</qty>
+        </form>
+        <form>
+                <code>99999</code>
+                <description note="add comment">Miscellaneous</description>
+                <qty>3</qty>
+        </form>
+</report>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-139.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-139.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-139.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!DOCTYPE section
+[
+<!ENTITY foo "FOO">
+<!ENTITY bar "&foo; BAR">
+]>
+<section>
+My title is &bar; and some.
+</section>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-14-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-14-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-14-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version= "1.0"?>
+
+<a>
+        <!-- Commentaire -->
+        <?php lines of code ?>
+</a>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-140.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-140.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-140.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+<rootelement>
+  <childelement/>
+  <childelement/>
+</rootelement>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-141.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-141.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-141.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<document name="doc">
+  <group name="group">
+    <page name="1"/>
+    <page name="2"/>
+    <page name="3"/>
+    <page name="4"/>
+  </group>
+</document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-142.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-142.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-142.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<posts xmlns:日本語="http://glandium.org/nihongo/" xmlns="http://glandium.org/" xml:lang="fr">
+  <post xml:lang="ja" id="6">
+    <title 日本語:翻訳="Un autre message en japonais" 日本語:読方="ほかのにほんごのでんごん">他の日本語の伝言</title>
+    <date weekday="0">20040126</date>
+    <section>ウェブサイト</section>
+    <content>
+      <para 日本語:翻訳="Ce message est écrit en japonais et a une traduction" 日本語:読方="このでんごんはにほんごでかいて、ほんやくがある">この伝言は日本語で書いて、翻訳がある。<span xml:lang="fr">couhin ?</span></para>
+      <para xml:lang="fr">Et on a une petite phrase en français.</para>
+    </content>
+  </post>
+  <post id="5">
+    <title>Test</title>
+  </post>
+  <post xml:lang="ja" id="4">
+    <title>日本語の伝言</title>
+    <date weekday="0">20040125</date>
+    <section>ウェブサイト</section>
+    <content>
+      <para>この伝言は日本語で書いて、翻訳がない。<span 日本語:翻訳="En fait, juste un peu (et c'est une erreur)" 日本語:読方="じつはすこしだけ">実は少しだけ</span>。</para>
+      <para>あいうえおかきくけこさしすせそ…</para>
+    </content>
+  </post>
+  <post id="3">
+    <date weekday="5">20050812</date>
+  </post>
+  <post id="2">
+    <!-- Titre d'un post qui n'est pas en japonais non traduit ? -> erreur ! -->
+    <title>間違い</title>
+    <date weekday="0">20040125</date>
+    <section>部門は間違い</section>
+    <content>
+      <para>Quelques <item href="plop">tests</item> d'erreurs :</para>
+      <list>
+	<para>Un paragraphe dans la liste</para>
+	<item href="http://www.google.com/">un lien externe sans hreflang,</item>
+	<item></item>
+	<item><span><list><item>un couac</item></list></span>,</item>
+	<item><para><list><item>un autre</item></list></para>,</item>
+	<item>une <span 日本語:翻訳="traduction">翻訳</span> sans xml:lang="ja"</item>
+	<item xml:lang="ja" 日本語:翻訳="une date dans un bloc traduit"><date>20040125</date></item>
+      </list>
+    </content>
+  </post>
+  <post id="1">
+    <title xml:lang="ja">サンプル</title>
+    <date weekday="0">20040125</date>
+    <section xml:lang="ja">ウェブサイト</section>
+    <content>
+      <para>Ceci est un <span xml:lang="ja" 日本語:翻訳="test" 日本語:読方="てすと">テスト</span>.</para>
+      <list>
+	<item>Voici une liste,</item>
+	<item>un splendide test de <span href="http://www.google.com/" hreflang="en">lien extérieur</span>,</item>
+	<item>un autre test de lien, mais <span href="glandium.png">interne, cette fois</span>,</item>
+	<item xml:lang="ja" 日本語:翻訳="Item en japonais" 日本語:読方="にほんごのあいてむ">日本語のアイテム、</item>
+	<item xml:lang="ja" href="http://www.google.com" 日本語:翻訳="Item en japonais avec un lien" 日本語:読方="リンクがあるにほんごのあいてむ">リンクがある日本語のアイテム、</item>
+	<item href="http://www.google.com" hreflang="en">un item lien.</item>
+	<item>Un <span xml:lang="ja">テスト</span> d'auto-traduction (le mot est présent plus haut dans le post, pas la peine de tout répéter...</item>
+	<item>une date en ligne : <date weekday="1">20040301</date> et <list><item>une liste dans la liste</item></list></item>
+	<item>un <span href="glandium.png">lien avec du <span xml:lang="ja" 日本語:翻訳="japonais" 日本語:読方="にほんご">日本語</span> dedans</span></item>
+      </list>
+      <para href="http://www.google.com" hreflang="en">un paragraphe lien.</para>
+    </content>
+  </post>
+</posts>


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-142.xml
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-143.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-143.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-143.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-144.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-144.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-144.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-145.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-145.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-145.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+xmlns:a="a">
+   <xsl:template match="/">
+        <xsl:call-template name="a:a"/>
+   </xsl:template>
+</xsl:transform>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-146.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-146.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-146.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by Victor 
+Prylipko (Linia) -->
+<root>
+    <colls COL_COD="PT" COL_NAME="Àðãî" CURR_ID_0="" CURR_ID_1="" CURR_ID_2="" 
+CURR_ID_3="">
+        <goodcoll CODE="2655" ART="PA310ST" NAME="Êîìïëåêò ñòåêîë äëÿ À310 òîí" 
+WEIGHT="10" VOLUME="0.09" GABS_W="72" GABS_H="112" GABS_D="0.4" SH_DESC="" 
+SUPP_ART="PA310ST" NUM="0" COL_COD="PT" 
+IMAGE_="/images/goods/image/PA310ST.gif" 
+SCHEMA_="/images/goods/schema/PA310ST.gif">
+            <currency CURRENCY_="RUR" OPT="1" ROZN="2" ZAKUP="3" IN="4"/>
+            <currency CURRENCY_="USD" OPT="2" ROZN="3" ZAKUP="4" IN="5"/>
+            <goodcomb GOOD_ID="63647" NUM_COLOR="0" COL_ID="24007" 
+TITLE="ïóñòîé" COEF="0" ABS_COEF="0" RU_CODE="" EN_CODE="" PROPNAME_="C" 
+MODEL_="">
+                <ost NUM_TIP="0" TIP="0"/>
+                <ost NUM_TIP="2" TIP="-3"/>
+                <ost NUM_TIP="4" TIP="-4"/>
+                <ost NUM_TIP="5" TIP="-4"/>
+                <ost NUM_TIP="6" TIP="-4"/>
+                <ost NUM_TIP="7" TIP="-3"/>
+                <ost NUM_TIP="8" TIP="-3"/>
+                <ost NUM_TIP="9" TIP="-3"/>
+            </goodcomb>
+        </goodcoll>
+    </colls>
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-147.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-147.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-147.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version="1.0" standalone="yes"?>
+<dokument>
+<paragraph>
+<liste>
+<le>abc</le>
+</liste>
+</paragraph>
+<navigation location="bottom">
+<interestguide>
+<index>
+<link type="internal" text="Allgemein">
+<action name="ChangeBGColor" event="onMouseOver">
+<pass-param name="color" value="#f9e84a"/>
+</action>
+<action name="ChangeBGColor" event="onMouseOut"><pass-param name="color" 
+value="#ffffff"/></action>
+</link>
+</index>
+</interestguide>
+</navigation>
+</dokument>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-148.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-148.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-148.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-149.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-149.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-149.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-15-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-15-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-15-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<doc>
+    <items>b</items>
+    <items>a</items>
+    <items>c</items>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-150.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-150.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-150.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-151.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-151.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-151.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-152.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-152.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-152.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-153.doc
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-153.doc	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-153.doc	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<ch>
+  <v name="dd">XXXXXXXXXXX</v>
+</ch>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-153.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-153.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-153.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<cp>
+  <c>
+    <v>dd</v>
+  </c>
+  <c>
+    <v>dd</v>
+  </c>
+</cp>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-154.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-154.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-154.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-155.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-155.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-155.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<object class="Literaturhinweis" id="3964">
+        <Ältestenrat>18-99</Ältestenrat>
+</object>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-156.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-156.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-156.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-157.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-157.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-157.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<foo>
+  <bar>me</bar>
+  <bar>you</bar>
+  <bar>others</bar>
+</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-158.doc
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-158.doc	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-158.doc	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<site xmlns="http://www.decisionsoft.com/website-layout">
+  <page path="path" /> 
+</site>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-158.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-158.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-158.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" ?> 
+  <page xmlns="http://www.decisionsoft.com/website" path="path" />

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-159.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-159.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-159.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-16-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-16-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-16-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<AAA> 
+    <AAA> 
+	<AAA/> 
+	<AAA/> 
+	<AAA/> 
+    </AAA> 
+    <AAA> 
+	<AAA/> 
+	<AAA/> 
+	<AAA/> 
+    </AAA> 
+    <AAA> 
+	<AAA/> 
+	<AAA/> 
+	<AAA/> 
+    </AAA> 
+</AAA>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-160.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-160.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-160.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<AAA>
+  <Title>foo</Title>
+  <AAA>
+      <BBB/>
+  </AAA>
+</AAA>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-161.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-161.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-161.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<orderedlist>
+<listitem><para>test</para></listitem>
+<listitem><para>test</para></listitem>
+<listitem><para>test</para></listitem>
+</orderedlist>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-163.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-163.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-163.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<!DOCTYPE my-root [
+    <!ATTLIST my-root myns:id ID #IMPLIED>
+]>
+<my-root xmlns:myns="uri" myns:id="indexme" some-attr="findme"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-17-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-17-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-17-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-18-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-18-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-18-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<ns:root xmlns:ns="whatever">
+  <something/>
+</ns:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-19-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-19-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-19-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<ns:root xmlns:ns="whatever">
+  <something/>
+</ns:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-2-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-2-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-2-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<foo>
+  <bar>
+    This is bar 1
+  </bar>
+  <bar>
+    This is bar 2
+  </bar>
+  <bar>
+    This is bar 3
+  </bar>
+</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-20-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-20-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-20-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<AAA> 
+    <BBB>10 </BBB> 
+    <BBB>5 </BBB> 
+    <BBB>7 </BBB> 
+</AAA>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-21-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-21-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-21-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<!DOCTYPE doc [
+<!ELEMENT doc EMPTY>
+<!ATTLIST doc attr ENTITY #REQUIRED>
+<!NOTATION JPEG SYSTEM "jpeg.exe">
+<!ENTITY test SYSTEM "test.jpg" NDATA JPEG>
+]>
+<doc attr="test"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-22-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-22-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-22-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<article>
+  <indexterm><primary>A</primary></indexterm>
+  <indexterm><primary>B</primary></indexterm>
+  <indexterm><primary>BA</primary></indexterm>
+  <indexterm><primary>C</primary></indexterm>
+  <indexterm><primary>CB</primary></indexterm>
+  <indexterm><primary>CBA</primary></indexterm>
+  <indexterm><primary>C A</primary></indexterm>
+  <indexterm><primary>C-A</primary></indexterm>
+  <indexterm><primary>CDA</primary></indexterm>
+</article>
+
+
+
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-23-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-23-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-23-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<article>
+  <indexterm><primary>A</primary></indexterm>
+  <indexterm><primary>B</primary></indexterm>
+  <indexterm><primary>C</primary></indexterm>
+  <indexterm><primary>B</primary><secondary>A</secondary></indexterm>
+  <indexterm><primary>B</primary><secondary>B</secondary></indexterm>
+  <indexterm><primary>B</primary><secondary>BA</secondary></indexterm>
+  <indexterm><primary>B</primary><secondary>C</secondary></indexterm>
+  <indexterm><primary>B</primary><secondary>CB</secondary></indexterm>
+  <indexterm><primary>B</primary><secondary>C A</secondary></indexterm>
+  <indexterm><primary>B</primary><secondary>CBA</secondary></indexterm>
+  <indexterm><primary>B</primary><secondary>C-A</secondary></indexterm>
+  <indexterm><primary>B</primary><secondary>CDA</secondary></indexterm>
+</article>
+
+
+
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-24-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-24-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-24-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2419 @@
+<?xml version="1.0"?>
+<!--
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+-->
+<!DOCTYPE article [
+<!ENTITY mdash	"&#x2014;">
+<!ENTITY hellip	"&#x2026;">
+]>
+
+ <article id="index">
+
+  <articleinfo> 
+    <title>The GNOME Panel Manual</title>
+    <copyright>
+      <year>2000</year>
+      <holder>Red Hat, Inc.</holder>
+      <holder>Dan Mueth</holder>
+      <holder>Alexander Kirillov</holder>
+    </copyright>
+
+  <legalnotice id="legalnotice">
+
+   <para>Permission is granted to copy, distribute and/or modify this
+   document under the terms of the <ulink type="help"
+   url="gnome-help:fdl"><citetitle>GNU Free Documentation
+   License</citetitle></ulink>, Version 1.1 or any later version
+   published by the Free Software Foundation with no Invariant
+   Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of
+   the license can be found <ulink type="help"
+   url="gnome-help:fdl">here</ulink>.</para>
+
+   <para>Many of the names used by companies to distinguish their
+   products and services are claimed as trademarks. Where those names
+   appear in any GNOME documentation, and those trademarks are made
+   aware to the members of the GNOME Documentation Project, the names
+   have been printed in caps or initial caps.
+   </para>
+
+  </legalnotice>  
+
+
+    <releaseinfo>
+     This is version 1.0 of The GNOME Panel manual.
+    </releaseinfo>
+  </articleinfo>
+  <sect1 id="introduction">
+   <title>Introduction</title>
+   <para>
+    <indexterm id="idx-a2">
+     <primary>Panel</primary>
+    </indexterm>
+    The GNOME <interface>Panel</interface> is the heart of the GNOME
+    user interface and acts as a repository for the <link
+    linkend="mainmenu">Main Menu</link>, user <link
+    linkend="menus">menus</link>, application <link
+    linkend="launchers">launchers</link>, <link
+    linkend="applets">applets</link>  (applications which run entirely
+    within the panel), <link linkend="drawers">drawers</link>, and
+    several <link linkend="specialobjects">special objects</link>.
+    The <interface>Panel</interface> was designed to be highly
+    configurable.  You can easily <link
+    linkend="panelproperties">customize its behavior and
+    appearance</link> and <link linkend="appletadd">add or remove
+    objects</link> to suite your personal needs and preferences.  You
+    can even have <link linkend="paneladd">multiple panels</link>,
+    each with its own appearance, properties, and contents.  This
+    flexibility allows you to easily create a comfortable and
+    efficient personalized desktop environment.
+   </para>
+   <para> This manual describes version 1.2 of the GNOME
+    <interface>Panel</interface>.
+   </para>
+  </sect1>
+
+
+<!-- ########### Panel Basics  ############## -->  
+  <sect1 id="panelbasics">   
+    <title>Panel Basics</title>
+   <para>
+    Using the GNOME <interface>Panel</interface> is very simple and
+    will come easily to anyone who has used a graphical desktop
+    environment.  This section will give you a basic introduction to
+    help you get started, and the following sections will discuss the
+    various Panel objects and features in more detail.
+   </para>
+
+   <sect2 id="intropanel">
+    <title>Introduction to Panel Objects</title>
+    <para>
+     A <interface>Panel</interface> can hold several types of objects.
+     The example <interface>Panel</interface>  in  <xref
+     linkend="examplepanelfig" /> shows each type of Panel object.
+    </para>
+    <figure id="examplepanelfig">
+     <title>An Example Panel</title>
+     <screenshot>
+      <screeninfo>An Example Panel.</screeninfo>
+       <graphic fileref="./figures/example_panel" format="PNG"
+       srccredit="muet" />
+     </screenshot>
+    </figure>
+
+    <para>
+     This example <interface>Panel</interface> contains the following
+     objects:  <itemizedlist>    <listitem>
+       <formalpara>
+        <title>Menus</title>
+        <para>
+         Menus are lists of items, each of which either starts an
+         application, executes a command, or is a submenu.  In the
+         example <interface>Panel</interface> in <xref
+         linkend="examplepanelfig" /> , the left-most  icon  after the
+         arrow is a stylized footprint icon (the GNOME logo). This is
+         the <guimenu>Main Menu</guimenu>, one of the most important
+         objects in the <interface>Panel</interface>.  This menu
+         provides access to almost all the applications, commands, and
+         configuration options available in GNOME. The <guimenu>Main
+         Menu</guimenu> is described in detail in <xref
+         linkend="mainmenu" />. The second icon shown is a folder, the
+         default icon used for user menus.  GNOME allows users to
+         create their own menus with personalized contents to use in
+         addition to the <guimenu>Main Menu</guimenu>.  To open a
+         menu, just click on the icon with the left mouse button.  For
+         more information on menus, see <xref linkend="menus" />.
+        </para>
+       </formalpara>
+      </listitem>
+      <listitem>
+       <formalpara>
+        <title>Launchers</title>
+        <para>
+         Launchers are buttons which either start an application or
+         execute a command when you press them (click with the left
+         mouse button). The third icon in the example
+         <interface>Panel</interface> is a launcher which starts the
+         <application>Gnumeric</application> spreadsheet.  For more
+         information on launchers, see <xref linkend="launchers" />.
+        </para>
+       </formalpara>
+      </listitem>
+      <listitem>
+       <formalpara>
+        <title>Applets</title> <para>  Applets are applications which
+        run inside a small part of the
+        <interface>Panel</interface>. The fourth through eighth icons
+        in the example <interface>Panel</interface> are applets. The
+        first applet shown is the <application>GNOME
+        Weather</application> applet, which periodically downloads the
+        current weather conditions off the Web and displays the
+        information. The second applet shown is the <application>Drive
+        Mount</application> applet, which shows whether a disk (in
+        this case, the floppy drive) is mounted and allows you to
+        mount and unmount the drive with a single click of the mouse.
+        The third applet shown is the <application>Quick
+        Launch</application> applet, which acts as a container for
+        launchers, but saves more space than placing your launchers
+        directly on the <interface>Panel</interface>. In the example
+        shown the <application>Quick Launch</application> applet
+        contains six application launchers.  Next is the
+        <application>GNOME Desk Guide</application>, which allows you
+        to control multiple virtual desktops, each of which can have
+        multiple screens.  You can move between desktops and screens
+        by clicking with your left mouse button.  The final  applet
+        shown is the <application>Tasklist</application>, which allows
+        you to control your application windows in various ways,
+        including changing the focus,  iconifying windows, closing
+        windows, and killing applications.  The
+        <application>Tasklist</application> shown is for a screen with
+        only two windows, both of which are <application>Electric
+        Eyes</application>.  For more information on applets, see
+        <xref linkend="applets" />.
+        </para>
+       </formalpara>
+      </listitem>
+      <listitem>
+       <formalpara>
+        <title>Drawers</title>  <para>   Drawers are essentially
+        extensions of a <interface>Panel</interface> which can be
+        opened or closed.  They can hold anything the
+        <interface>Panel</interface> can.  The brown icon of a drawer
+        in the example  <interface>Panel</interface> is the default
+        icon for drawers, although any icon can be used. Click on the
+        <guiicon>Drawer</guiicon> icon with the left mouse button to
+        open or close it.  For more information on drawers, see <xref
+        linkend="drawers" />.
+        </para>
+       </formalpara>
+      </listitem>
+      <listitem>
+       <formalpara>
+        <title>Special Objects</title>
+        <para>
+         Special objects are items you can add to a
+         <interface>Panel</interface> which perform functions which
+         are generally not available through the other
+         <interface>Panel</interface> objects. The last item in the
+         example <interface>Panel</interface> is a special object
+         called the <guibutton>Logout Button</guibutton>. Pressing
+         this with the left mouse button  begins the logout sequence
+         to end your GNOME session. For more information on special
+         objects, see <xref linkend="specialobjects" />.
+        </para>
+       </formalpara>
+      </listitem>
+     </itemizedlist>
+    </para>
+    <para>
+     Each of these object types is described in detail in the
+     following sections. You can easily add, move, or remove Panel
+     objects (see <xref linkend="appletadd" />).
+    </para>
+   </sect2>
+
+ 
+   <sect2 id="rightclick">
+    <title>Right-Click Menu</title>
+    <para>
+     Clicking on any Panel object with the right mouse button brings
+     up the Panel object's <guimenu>right-click</guimenu> menu. This
+     menu contains <guimenuitem>Remove from panel</guimenuitem> for
+     removing the object from the <interface>Panel</interface>,
+     <guimenuitem>Move</guimenuitem> for  moving objects within the
+     <interface>Panel</interface> or between two
+     <interface>Panels</interface>,  the
+     <guisubmenu>Panel</guisubmenu> submenu described below, and
+     typically one or more object-specific menu items.  For drawers,
+     menus, and launchers the only object-specific item is
+     <guimenuitem>Properties...</guimenuitem> which allows you to
+     customize the properties and settings of the object. For applets,
+     the <guimenu>right-click</guimenu> menu will often contain
+     <guimenuitem>About...</guimenuitem> for viewing information about
+     the applet such as the author's name and the applet version,
+     <guimenuitem>Help</guimenuitem> for viewing the applet's
+     documentation,  and <guimenuitem>Properties...</guimenuitem> for
+     configuring preferences and settings for the applet.  Applets
+     often have other applet-specific controls in their
+     <guimenu>right-click</guimenu> menus.
+    </para>
+    <para>
+     The <guisubmenu>Panel</guisubmenu> submenu allows you to <link
+     linkend="panelmove">create and remove
+     <interface>Panels</interface></link> and <link
+     linkend="appletadd">add objects</link> to the
+     <interface>Panel</interface>.  It also allows you to modify the
+     properties of the particular <interface>Panel</interface> of
+     interest using the  <guimenuitem>Properties</guimenuitem> menu
+     item (see <xref linkend="panelproperties" />) or the properties of
+     all <interface>Panels</interface> using the <guimenuitem>Global
+     Preferences...</guimenuitem> menu item (see <xref
+     linkend="globalpanelprefs" />).
+    </para>
+    <para>
+     You can also right-click on the <interface>Panel</interface>
+     itself. This will bring up the <link
+     linkend="mainmenu"><guimenu>Main Menu</guimenu></link>. In
+     particular, this menu also contains the
+     <guisubmenu>Panel</guisubmenu> submenu described above.
+    </para>
+   </sect2>
+
+   <sect2 id="panelhide">
+    <title>Hiding the Panel</title>
+    <para>
+     <indexterm id="idx-a4">
+      <primary>Panel</primary> <secondary>Hide Buttons</secondary>
+     </indexterm>
+     <indexterm id="idx-a5">
+      <primary>Panel</primary> <secondary>Hiding</secondary>
+     </indexterm>
+     The left and right arrow icons seen at either end of the example
+     <interface>Panel</interface> and in <xref linkend="fig2" /> are
+     used to hide the <interface>Panel</interface>.
+     <figure id="fig2">
+      <title>The Hide Button</title>
+      <screenshot>
+       <screeninfo>The Hide Button</screeninfo>
+        <graphic fileref="./figures/hide-button" format="PNG"
+        srccredit="dcm" />
+      </screenshot>
+     </figure>
+    </para>
+    <para>
+     Pressing one of these arrows will hide the
+     <interface>Panel</interface> by sliding   it in the direction of
+     the arrow pressed, so that the only part of the
+     <interface>Panel</interface> which remains visible is the
+     <guibutton>Hide</guibutton> button itself.   Pressing it a second
+     time will expand the <interface>Panel</interface>.
+    </para>
+    <para>
+     <interface>Panels</interface> can be configured to automatically
+     hide when you are  not using it and reappear when you move the
+     mouse to the part of the screen where the
+     <interface>Panel</interface> resides. This can be useful if you
+     are unable to run your system in a high resolution.  To learn how
+     to have a <interface>Panel</interface> auto-hide, see <xref
+     linkend="panelproperties" />.
+    </para>
+   </sect2>
+
+   <sect2 id="loggingout">
+    <title>Logging Out</title>
+    <para>
+     To log out of GNOME, right click on the
+     <interface>Panel</interface> and select <guimenuitem>Log
+     out</guimenuitem>. This will bring up the
+     <interface>Logout</interface> dialog, shown in <xref
+     linkend="logoutdialog-fig" />.
+    </para>
+    <figure id="logoutdialog-fig">
+     <title>The Logout Dialog</title>
+     <screenshot>
+      <screeninfo>Logout</screeninfo>
+      <graphic fileref="./figures/logout-screen" format="PNG"
+      srccredit="dcm" />
+     </screenshot>
+    </figure>
+    <para>
+     If you would like to save your current setup, select the
+     <guilabel>Save current setup</guilabel> checkbox. This will save
+     any GNOME applications you have open and configuration changes
+     you may have made in the <application>Control
+     Center</application>.
+    </para>
+    <para>
+     The default way to log out is by using the
+     <guilabel>Logout</guilabel> option, which ends your GNOME session
+     but does not shut down the computer.  Depending on your system
+     configuration, you may also have the <guilabel>Halt</guilabel>
+     option, which shuts down the computer, and the
+     <guilabel>Reboot</guilabel> option, which will reboot the
+     computer.
+    </para>
+    <note>    
+	<title>Note for advanced users</title>   
+	<para>The
+	  <guilabel>Halt</guilabel> and <guilabel>Reboot</guilabel> choices
+	  will only be shown if you have permission to execute the command
+	  <command>/usr/bin/shutdown</command>.
+	</para>
+    </note>
+    <para>
+     If you do not want to log out, press the
+     <guibutton>No</guibutton> button and you will be returned to your
+     GNOME session. Otherwise press the <guibutton>Yes</guibutton>
+     button to log out.
+    </para>
+    <note>
+     <title>Logging Out and Window Managers</title>
+     <para>
+      If you are running a window manager that is GNOME compliant, the
+      logout feature will quit the window manager as well as GNOME. If
+      you are running a non-compliant window manager you will have to
+      quit the window manager yourself.
+     </para>
+    </note>
+    <para>
+     You can disable the <interface>Logout</interface> dialog so that
+     selecting the <guimenuitem>Log out</guimenuitem> menu item will
+     end your GNOME session without asking any questions. To do so,
+     start the GNOME <application>Control Center</application> by
+     selecting <menuchoice> <guimenu>Main Menu</guimenu>
+     <guisubmenu>Settings</guisubmenu> <guisubmenu>Startup
+     programs</guisubmenu> </menuchoice> and uncheck the
+     <guilabel>Prompt on logout</guilabel> button.  <!-- Commented out
+     - as suggested by Drake You may also control whether changes to
+     your session are automatically saved using the
+     <guilabel>Automatically save changes to session</guilabel>
+     button. -->
+    </para>
+   </sect2>
+   <sect2 id="lockscreen">
+    <title>Locking the Screen</title>
+    <para>
+     Sometimes you may want to leave your computer with GNOME running
+     and not allow others to use or view your GNOME session.  GNOME
+     allows you to do this by locking the screen, requiring a password
+     to unlock it. To lock your GNOME session, right click on either
+     end of a <interface>Panel</interface> and select
+     <guimenuitem>Lock screen</guimenuitem>.  Alternately, if you have
+     the <guibutton>Lock Button</guibutton>(see <xref
+     linkend="lockbutton" />) on a <interface>Panel</interface>, you may
+     just press this button to lock the screen.  To unlock the screen,
+     just type your login password.
+    </para>
+    <note>
+     <title>Screensavers and the Lock Button</title>
+     <para>
+      The <guibutton>Lock screen</guibutton> button uses a feature of
+      the <application>xscreensaver</application> program. This is the
+      same program that the <application>Control Center</application>
+      uses to set your screensaver. In  order for the <guibutton>Lock
+      screen</guibutton> button to work properly, you must have a
+      screensaver enabled in the <application>Control
+      Center</application>.
+     </para>
+    </note>
+   </sect2>
+  </sect1>
+
+
+
+   <!-- ########### Main Menu ############## -->
+
+  <sect1 id="mainmenu">
+   <title>The Main Menu</title>
+   <para>
+     <indexterm id="idx-a3">  <primary>Main Menu</primary>
+     </indexterm>
+    The footprint icon seen towards the left end of the example
+    <interface>Panel</interface> (see <xref
+    linkend="examplepanelfig" />) and in <xref
+    linkend="main-menu-button-fig" /> is the   <guibutton>Main
+    Menu</guibutton> (yes, you guessed  right, it is the footprint of
+    the gnome). This menu provides access to almost all GNOME
+    features  &mdash; all the applications, configuration tools,
+    command line prompt, <guimenuitem>Logout</guimenuitem> and
+    <guimenuitem>Lock Screen</guimenuitem> commands, and much more.
+    To access any of these items, click on the <guibutton>Main
+    Menu</guibutton> button. You should release the mouse after
+    pressing the <guibutton>Main Menu</guibutton> button so that you
+    can take advantage of other mouse-activated features in the
+    <guimenu>Main Menu</guimenu> such as right-click pop-up menus and
+    drag-and-drop from the menu to the desktop or
+    <interface>Panel</interface>.
+   </para>
+    <figure id="main-menu-button-fig">
+     <title>The Main Menu Button</title>
+     <screenshot>
+      <screeninfo>The Main Menu Button</screeninfo>
+       <graphic fileref="./figures/mm-button" format="PNG"
+       srccredit="dcm" />
+     </screenshot>
+    </figure>
+    <para>   You can  have several <guibutton>Main
+     Menu</guibutton> buttons on different
+     <interface>Panels</interface>; all of them can be configured
+     independently.
+    </para>
+
+   <sect2 id="globalmenu">
+    <title>Global menu</title>
+    <para>
+     In addition to the <guimenu>Main Menu</guimenu> which you get by
+     clicking on the foot icon, GNOME also provides a <guimenu>Global
+     Menu</guimenu>, which contains the same commands but is not
+     linked to any button. To access the  <guimenu>Global
+     Menu</guimenu>, right-click on any empty place on the
+     <interface>Panel</interface>. You can also  access   the
+     <guimenu>Global  Menu</guimenu> by  pressing
+     <keycombo action="simul">
+      <keycap>Alt</keycap> <keycap>F1</keycap> </keycombo>.  (You can
+      change the default key for activating the <guimenu>Global
+      Menu</guimenu> in the <link
+      linkend="misctab"><guilabel>Miscellaneous</guilabel></link> tab
+      of the <link linkend="globalpanelprefs"><interface>Global Panel
+      Preferences dialog</interface></link>.)
+    </para>
+    <para>
+     Note that the <guimenu>Global Menu</guimenu> is configured
+     independently from the <guimenu>Main Menu</guimenu>, by using the
+     <guilabel>Menu</guilabel> tab in the <link
+     linkend="globalpanelprefs"><interface>Global Panel
+     Preferences</interface></link> dialog.
+    </para>
+   </sect2>
+
+   <sect2 id="submenus">
+     <title> Components of the Main Menu</title>
+     <para>
+      The primary component of the <guimenu>Main Menu</guimenu> is the
+      <guisubmenu>Programs</guisubmenu> submenu, which contains a list
+      of preconfigured submenus and menu items. Here you will find all
+      the GNOME applications, from the
+      <application>Gnumeric</application> spreadsheet to the
+      <application>Free Cell</application> game, as well as quite a
+      few non-GNOME ones, such as the
+      <application>Netscape</application> web browser and the
+      <application>emacs</application> text editor.  In addition, the
+      <guisubmenu>Programs</guisubmenu> submenu also contains the
+      following commands:
+     </para>
+     <itemizedlist>
+      <listitem>
+       <para>
+        <guimenuitem>File Manager</guimenuitem> &mdash;  launches the
+        GNOME graphical file manager.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <guimenuitem>Help system</guimenuitem> &mdash; launches the
+        <application>GNOME Help Browser</application>. The
+        <application>GNOME Help Browser</application> gives you access
+        to most of the documentation installed on your system &mdash;
+        not only GNOME documentation (the GNOME User's Guide,
+        application manuals, &hellip;), but also other types of
+        documentation (man pages, info pages, &hellip;).
+       </para>
+      </listitem>
+     </itemizedlist>
+
+     <para>    In addition to the <guisubmenu>Programs</guisubmenu>
+      submenu,  the <guimenu>Main Menu</guimenu> also contains a
+      number of other submenus and useful commands. Depending on your
+      configuration, you may not see all of these. Also, some of them
+      may be shown as submenus, and others included as part of the
+      <guimenu>Main Menu</guimenu>, separated by horizontal lines from
+      the other parts. These additional submenus and commands are:
+     </para>
+     <itemizedlist>
+      <listitem>
+       <para>
+        <guisubmenu>Favorites</guisubmenu>. This submenu, which is
+        originally empty, is a place where you can put your favorite
+        applications for quick access. You can edit this menu using
+        the <application>Menu Editor</application>, which can be
+        accessed from the <guimenu>Main Menu</guimenu> by choosing
+        <menuchoice><guisubmenu>Settings</guisubmenu>
+        <guimenuitem>Menu editor</guimenuitem> </menuchoice>. You can
+        also add any item from any other menu (in particular, from the
+        <guimenu>Programs</guimenu> menu) to the
+        <guisubmenu>Favorites</guisubmenu> menu by clicking on the
+        item with the right mouse button and selecting
+        <guimenuitem>Add this to Favorites menu</guimenuitem>.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        <guisubmenu>Applets</guisubmenu>. This submenu contains all
+        the applets installed on your system. Selecting an applet will
+        add it to your <interface>Panel</interface>.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        <guisubmenu>KDE menus</guisubmenu>. This shows the menus of
+        the K Desktop Environment (KDE) if you have it installed on
+        your system.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        <guisubmenu>AnotherLevel menus</guisubmenu> and
+        <guisubmenu>Debian menus</guisubmenu>. These submenus show the
+        default application menus for Red Hat Linux and Debian
+        GNU/Linux, respectively. These will only appear for users of
+        the particular distributions.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        <guimenuitem>Panel</guimenuitem>. This submenu can be used to
+        change <interface>Panel</interface> properties (both for <link
+        linkend="panelproperties"> <interface>individual
+        Panels</interface></link> and <link
+        linkend="globalpanelprefs">global</link>, i.e. for all
+        <interface>Panels</interface>), <link linkend="add">add an
+        object</link> to the <interface>Panel</interface>, <link
+        linkend="panelremoving">remove the whole
+        <interface>Panel</interface></link>, <link
+        linkend="paneladd">create a new
+        <interface>Panel</interface></link>, or view the
+        <citetitle>Panel Manual</citetitle>.
+       </para>
+      </listitem>
+
+      <listitem>
+       <para>
+        <guimenuitem>Desktop</guimenuitem>&mdash; This submenu
+        contains <guimenuitem>Log out</guimenuitem>, which ends your
+        GNOME session (see <xref linkend="loggingout" />), and
+        <guimenuitem>Lock screen</guimenuitem> (see <xref
+        linkend="lockscreen" />).
+       </para>
+      </listitem>
+
+      <listitem id="runcommand">
+       <para>
+        <guimenuitem>Run &hellip;</guimenuitem> &mdash; This menu item
+        opens the <interface>Run Program</interface> dialog for
+        executing shell commands (see <xref linkend="runbutton" />).
+       </para>
+      </listitem>
+     </itemizedlist>
+    </sect2>
+
+    <sect2 id="mainmenuconfig">
+     <title>Configuring the Main Menu</title>
+     <para>
+      To change the configuration of the <guimenu>Main Menu</guimenu>,
+      right-click on the <guibutton>Main Menu</guibutton> button
+      (shown in <xref linkend="main-menu-button-fig" />) and select
+      <guimenuitem>Properties &hellip;</guimenuitem>  from the pop-up
+      menu. This will show the <interface>Menu Properties</interface>
+      dialog. In this dialog, for each of the submenus of the
+      <guimenu>Main Menu</guimenu> listed above
+      (<guisubmenu>Programs</guisubmenu>,
+      <guisubmenu>Favorites</guisubmenu>, &hellip;) you can choose
+      whether you want it  to be shown as part of the <guimenu>Main
+      Menu</guimenu>, as a submenu, or not at all.
+     </para>
+
+
+     <figure>
+      <title>Menu Properties Dialog</title>
+      <screenshot>
+       <screeninfo>Menu Properties Dialog</screeninfo>
+       <graphic fileref="./figures/mainmenu_properties" format="PNG"
+       srccredit="muet" />
+      </screenshot>
+     </figure>
+
+     <para>
+      You can also edit the contents of the
+      <guisubmenu>Favorites</guisubmenu> submenu (or, if you are the
+      system administrator, also of the
+      <guisubmenu>Programs</guisubmenu> submenu) using the
+      <application>GNOME Menu Editor</application>. To start it,
+      right-click on the <guibutton>Main Menu</guibutton> button and
+      select <guimenuitem>Edit Menus
+      &hellip;</guimenuitem>. Alternatively, you can start
+      <application>GNOME Menu Editor</application> by selecting
+      <menuchoice> <guisubmenu>Programs</guisubmenu>
+      <guisubmenu>Settings</guisubmenu> <guimenuitem>Menu
+      editor</guimenuitem> </menuchoice> from the <guimenu>Main
+      Menu</guimenu> itself.
+     </para>
+    </sect2>
+
+<!-- Do we need it now that we have information about Global menu?
+    <sect2 id="kbdnav">
+     <title>Keyboard Navigation in the Main Menu</title>
+     
+     <para>    If you prefer, you can use the keyboard instead of the
+      mouse to navigate the <guimenu>Main Menu</guimenu>. To activate
+      the <guimenu>Main Menu</guimenu>, press the
+      <keycap>Menu</keycap> key on your keyboard (if you are using a
+      standard PC keyboard, this key usually is located to the left of
+      the space bar and labelled with a picture of a menu); you can
+      change the default key for activating the <guimenu>Main
+      Menu</guimenu> in the <link
+      linkend="misctab"><guilabel>Miscellaneous</guilabel></link> tab
+      of the <interface><link linkend="globalpanelprefs">Global Panel
+      Preferences</link> dialog</interface>. Use the
+      <keycap>Up</keycap> and <keycap>Down</keycap> arrow keys  to
+      move inside the menu, <keycap>Right</keycap> arrow to go to a
+      submenu, and <keycap>Enter</keycap> to select an item. To exit
+      the menu, just press the <keycap>Esc</keycap> key.
+     </para>
+    </sect2> -->
+   </sect1>
+
+
+ <!-- ########### Menus  ############## -->
+ <sect1 id="menus">
+  <title>Menus</title>
+  <para>
+   In addition to the <guimenu>Main Menu</guimenu>, discussed in <xref
+   linkend="mainmenu" />, you can also add "normal menus" to a
+   <interface>Panel</interface>. An example menu, in this case a
+   <guimenu>Favorites</guimenu> menu containing three application
+   launchers and one submenu titled <guisubmenu>Games</guisubmenu>, is
+   shown in <xref linkend = "example-menu-fig" />. Unlike the
+   <guimenu>Main Menu</guimenu>, normal menus only contain whatever
+   launchers and submenus you place in them - no default submenus,
+   <guimenuitem>Run...</guimenuitem> command, etc. as the
+   <guimenu>Main Menu</guimenu> has.  You can also add any submenu of
+   your <guimenu>Favorites</guimenu> menu or the
+   <guimenu>Programs</guimenu> menu as a separate menu to a
+   <interface>Panel</interface>; to do so, bring up this submenu from
+   the <guimenu>Main Menu</guimenu>,  right click on the submenu
+   title, and select <guimenuitem>Add this as menu to
+   panel</guimenuitem>.
+  </para>
+  <figure id="example-menu-fig">
+   <title>An Example Menu</title>
+   <screenshot>
+    <screeninfo>An Example Menu</screeninfo>
+     <graphic fileref="./figures/example_menu" format="PNG"
+     srccredit="muet" />
+   </screenshot>
+  </figure>
+
+   <sect2 id="addingmenus">
+    <title>Adding a Menu to a Panel</title>  <para>     To learn how
+    to add a menu to a <interface>Panel</interface>, see <xref
+    linkend="add" />.
+    </para>
+   </sect2>
+
+  <sect2 id="tearoff">
+   <title>Tearing Off a Menu</title>
+   <para>
+    All menus in GNOME have the tear-off feature: if you left-click on
+    the "perforation" (thin dashed line at the top of the menu, right
+    above the menu title), the menu will be turned into a separate
+    window on your desktop, which will stay there even after you move
+    the mouse cursor elsewhere. This is very convenient if you will be
+    using the same command from some deeply nested submenu
+    frequently. To remove a "torn-off" menu from your desktop, click
+    on the <guibutton>Close</guibutton> button in the window title
+    (its appearance and location depends on the window manager you are
+    using, but usually it is the rightmost button, labelled by an "x").
+   </para>
+  </sect2>
+
+   <sect2 id="menusconf">
+    <title>Configuring a Menu</title>
+    <para>
+     You can easily change a menu name and icon (for user menus only,
+     not for submenus taken from the <guimenu>Main Menu</guimenu>). To
+     do so, click on the menu, right-click on the menu title (at the
+     very top of the list, above all other items), and select
+     <guimenuitem>Properties&hellip;</guimenuitem> from the pop-up
+     menu. This will bring up the  <interface>Desktop Entry
+     Properties</interface> dialog, quite similar to the <link
+     linkend="launchers"><interface>Launcher Properties</interface>
+     dialog</link>.
+    </para>
+    <para>   To add a new item to the menu, click on the menu button,
+     right-click on the Menu name, and select <guimenuitem>Add new
+     item to this menu</guimenuitem>. This will bring  up
+     <interface>Create Menu Item</interface> dialog, in which you can
+     enter the menu item name, comment, command, and type (see <xref
+     linkend="launchers" /> for more information).  To remove an item
+     from the menu, right-click on the item and choose
+     <guimenuitem>Remove this item</guimenuitem>.
+    </para>
+    <para>
+     Finally, a frequently asked question is "How I can change the
+     font and the background used by the menus?" The answer is that it
+     is determined by the current GTK Theme, which can be changed
+     using the <application>GNOME Control Center</application> by
+     selecting <menuchoice> <guimenu>Main Menu</guimenu>
+     <guisubmenu>Programs</guisubmenu>
+     <guisubmenu>Settings</guisubmenu>
+     <guisubmenu>Desktop</guisubmenu><guimenuitem>Theme Selector</guimenuitem>
+     </menuchoice>.
+    </para>
+   </sect2>
+  </sect1>
+
+
+ <!-- ###########  Launchers  ############## -->
+ <sect1 id="launchers">
+  <title>Launchers</title>
+  <para>
+   Launchers are buttons which reside in your
+   <interface>Panel</interface> and start an application or execute a
+   command when clicked.  A launcher can use any icon and has a
+   customized tooltip to display a message when the cursor is passed
+   over the launcher.
+  </para>
+  <para>
+   You can change a launcher's properties, such as the icon it uses
+   and its name, by right-clicking on the launcher and selecting
+   <guimenuitem>Properties...</guimenuitem> from the pop-up menu. This
+   brings up the <interface>Launcher properties</interface> dialog,
+   shown in <xref linkend="launcherpropsfig" />. A similar dialog is
+   used when you create a new launcher (see <xref
+   linkend="add" />). Note that internally GNOME makes no distinction
+   between menu items and launchers: these are just different
+   representations of the same thing. You can place any menu item on a
+   <interface>Panel</interface>, and it will appear as a
+   launcher. Therefore, all the information below applies equally to
+   launchers and menu items.
+  </para>
+  <figure id="launcherpropsfig">
+   <title>Create Launcher/Launcher Properties Dialog</title>
+   <screenshot>
+    <screeninfo>Create Launcher/Launcher Properties Dialog</screeninfo>
+     <graphic fileref="./figures/launcher_properties_basic" format="PNG"
+     srccredit="muet" />
+   </screenshot>
+  </figure>
+  <para>
+   The <interface>Laucher Properties</interface> dialog has two tabs:
+   <guilabel>Basic</guilabel> and <guilabel>Advanced</guilabel>. In
+   the <guilabel>Basic</guilabel> tab, you can set:
+  </para>
+    <itemizedlist>
+      <listitem>
+	<para>
+	  <guilabel>Name</guilabel> &mdash; this is the application
+	  name, for example, <userinput>GNOME
+	  terminal</userinput>. This name will be used if you later
+	  put this launcher in a menu.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  <guilabel>Comment</guilabel> &mdash; this is a brief
+	  explanation of what this application does, for example,
+	  <userinput>Terminal emulation program</userinput>. This will
+	  be used for tooltips.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  <guilabel>Command</guilabel> &mdash; the actual command that
+	  runs the application, for example,
+	  <userinput>gnome-terminal</userinput>.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  <guilabel>Type</guilabel> &mdash; should be
+	  <guilabel>Application</guilabel>; do not change it unless
+	  you want to create something other than an application
+	  launcher.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  <guilabel>Icon</guilabel> &mdash; this is the icon which
+	  will be used to represent the launcher in the
+	  <interface>Panel</interface>. If no icon is specified, a
+	  default icon will be used. To change the icon, just click on
+	  it to launch the icon browser.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  <guilabel>Run in Terminal</guilabel> &mdash; this specifies
+	  whether the application should be run inside a terminal.  If
+	  the application doesn't create any windows on its own, check
+	  this button. If you are unsure, leave it unchecked.
+	</para>
+      </listitem>
+    </itemizedlist>
+    
+    <para>
+      The <guilabel>Advanced</guilabel> properties tab is shown
+      below. It is intended for advanced users; most of the time, you
+      will not need to change any of these settings.
+    </para>
+  <figure id="launcheradvpropsfig">
+   <title>Launcher Advanced Properties Dialog</title>
+   <screenshot>
+    <screeninfo>Launcher Advanced Properties Dialog</screeninfo>
+     <graphic fileref="./figures/launcher_properties_advanced" format="PNG"
+     srccredit="muet" />
+   </screenshot>
+  </figure>
+    <para>
+     In the <guilabel>Advanced</guilabel> tab, you can set:
+    </para>
+    <itemizedlist>
+      <listitem>
+	<para>
+	  <guilabel>Try this before using</guilabel> &mdash; you can
+	  enter a command here, and GNOME will check if this command
+	  can be executed. If the command cannot be successfully
+	  executed, the launcher (or menu item) will not be shown even
+	  if you added it to a <interface>Panel</interface> or
+	  menu. It is mostly used by people preparing GNOME
+	  distributions. For example, the default GNOME <guimenu>Main
+	  Menu</guimenu> contains an item for the
+	  <application>TkRat</application> e-mail program, but you
+	  will only see this item if you have
+	  <application>TkRat</application> installed on your system.
+	</para>
+      </listitem>
+      <listitem>
+	<para>
+	  <guilabel>Documentation</guilabel> &mdash; currently not
+	  used.
+	</para>
+      </listitem>
+       <listitem>
+	<para>
+	  <guilabel>Name/Comment translations</guilabel> &mdash; here
+	  you can set translations of the <guilabel>Name</guilabel>
+	  and <guilabel>Comment</guilabel> to other languages. For
+	  example, for <application>GNOME Terminal</application>, the
+	  translations to Spanish (es) are name:  <userinput>Terminal
+	  UNIX de GNOME</userinput> and comment: <userinput>Emulador
+	  de terminal GNOME</userinput>. This means that if a user
+	  sets his language to Spanish during login (this can be done
+	  by selecting the desired language from
+	  <guimenu>Languages</guimenu> menu of the <application>GNOME
+	  Display Manager</application> when logging in) he will see
+	  <guimenuitem>Terminal UNIX de  GNOME</guimenuitem> in the
+	  menu and <guilabel>Emulador de terminal GNOME</guilabel> as
+	  the tooltip. The actual command that runs the terminal is
+	  unchanged.
+	</para>
+	<para>
+	  To add a new translation, enter the language 2-letter code
+	  and translations of <guilabel>Name</guilabel> and
+	  <guilabel>Comment</guilabel> fields in the empty fields
+	  under the list of current translations, and press the
+	  <guibutton>Add/Set</guibutton> button.  To change one of
+	  existing translations, select the row from the list, edit
+	  the fields you want to change, and press the
+	  <guibutton>Add/Set</guibutton> button. To remove one of
+	  existing translations, select it in the list and press the
+	  <guibutton>Remove</guibutton> button.
+	</para>
+	<para>
+          You can find the list of all languages supported by GNOME
+	  along with their 2-letter codes  in  <ulink type="http"
+	  url="http://www.gnome.org/gnomefaq/html/x867.html">GNOME
+	  Frequently Asked Questions</ulink>.
+	</para>
+      </listitem>
+    </itemizedlist>
+
+    <para>
+      All of the changes you make in the <interface>Launcher
+      Properties</interface> dialog will take effect when you press
+      <guibutton>Apply</guibutton> or
+      <guibutton>OK</guibutton>. Pressing <guibutton>OK</guibutton>
+      closes the dialog; pressing <guibutton>Apply</guibutton> will
+      allow you to continue editing.
+    </para>
+ </sect1>
+
+
+<!-- ###########  Applets  ############## -->
+ <sect1 id="applets">
+  <title>Applets</title>
+  <para>
+   Applets are GNOME applications which reside in a
+   <interface>Panel</interface>.  An applet's appearance typically
+   reveals the state of the applet or other information. Applets often
+   have buttons, sliders, entries, or other methods to allow you to
+   control their behavior.
+  </para>
+  <figure id="example-applets-fig">
+   <title>Example Applets</title>
+   <screenshot>
+    <screeninfo>Example Applets</screeninfo>
+     <graphic fileref="./figures/panel_applets" format="PNG"
+     srccredit="muet" />
+   </screenshot>
+  </figure>
+  <para>
+   Some example applets are shown above(see <xref
+   linkend="example-applets-fig" />).  At the very left is the
+   <application>Mixer Applet</application> which allows you to change
+   the volume level and mute the sound. Next is the<application>Sound
+   Monitor Applet</application>, which displays the current volume of
+   sound being played and allows you to control various sound
+   features. The third applet is the <application>GTCD
+   Applet</application>, a CD player which has all its controls
+   available in the applet and displays the track and time.The next
+   applet is the <application>Drive Mount Applet</application>, used
+   to mount and unmount drives with a single click of the mouse. This
+   is followed by the <application>Desk-Guide Applet</application>
+   which shows you your desktops and the applications which are
+   running on them. The last applet shown is the <application>Tasklist
+   Applet</application> which allows you to control certain aspects of
+   each application or window which is open.
+  </para>
+  <para>
+   GNOME has many useful applets.  Just right click on a
+   <interface>Panel</interface> and add some applets to your
+   <interface>Panel</interface> to find out which applets are
+   available and which ones are best for you.  Right click on each
+   applet to see a menu listing various commands and operations the
+   applet can do and to access the documentation for the applet.
+  </para>
+ </sect1>
+
+
+<!-- ###########  Drawers  ############## -->
+ <sect1 id="drawers">
+  <title>Drawers</title>
+  <para>
+   The simplest way to think about a drawer is that it is a container
+   to store things.  Typically one may use a drawer to hold multiple
+   launchers which are related to each other in some way, such as the
+   various applications in GNOME Office. The drawers in the GNOME
+   <interface>Panel</interface> take this one step further by making a
+   drawer an actual extension of the <interface>Panel</interface>
+   itself.  Thus, a drawer is a collapsible branch of an existing
+   <interface>Panel</interface>.  It can contain anything that a
+   <interface>Panel</interface> can, including launchers, applets, and
+   other drawers.
+  </para>
+  <figure>
+   <title>An open Drawer</title>
+   <screenshot>
+    <screeninfo>An open Drawer</screeninfo>
+    <graphic fileref="./figures/drawer_open" format="PNG"
+    srccredit="dcm" />
+   </screenshot>
+  </figure>
+  <para>
+   Once you have placed a drawer on a <interface>Panel</interface>,
+   you may click on it to "open" the drawer, revealing its contents.
+   You may then add items to the drawer in the same way you would add
+   items to a <interface>Panel</interface>, right clicking on the end
+   of the drawer with the arrow to open the <link
+   linkend="globalmenu"><interface>Global Menu</interface></link>.
+   You can close the drawer by clicking on its icon again or by
+   clicking on the arrow at its end.
+  </para>
+  <para>
+   You can configure a drawer's properties by right clicking on the
+   drawer's icon and selecting
+   <guimenuitem>Properties...</guimenuitem>. This brings up the
+   <interface>Drawer Properties</interface> dialog. Here you can
+   select the icon used for the drawer by clicking on the icon. A
+   tooltip may be entered by typing in the
+   <guilabel>Tooltip/Name</guilabel> entry. This tooltip will be
+   displayed whenever the mouse is moved over the drawer to remind you
+   what is inside.  One may also select whether the <guibutton>hide
+   button</guibutton> and arrow are displayed at the end of the drawer.
+  </para>
+  <figure>
+   <title>Drawer Properties Dialog</title>
+   <screenshot>
+    <screeninfo>Drawer Properties Dialog</screeninfo>
+    <graphic fileref="./figures/drawer_properties" format="PNG"
+     srccredit="dcm" />
+   </screenshot>
+  </figure>
+  <para>
+   You may also control the background color or image of the
+   drawer. Just right click on the drawer and select
+   <guimenuitem>Properties...</guimenuitem> to open the
+   <interface>Drawer Properties</interface> dialog. Then select the
+   <guilabel>Background</guilabel> tab to bring up the
+   <interface>Panel Background Dialog</interface> (see <xref
+   linkend="panelbacktab" />).
+  </para>
+ </sect1>
+
+
+
+<!-- ###########  Special Panel Objects  ############## -->
+ <sect1 id="specialobjects">
+  <title>Special Panel Objects</title>
+  <para>
+   There are several special Panel objects which are not considered
+   menus, applets, or launchers.  These special objects are described
+   below.
+  </para>
+  <sect2 id="lockbutton">
+   <title>The Lock Button</title>
+   <figure>
+    <title>The Lock Button</title>
+    <screenshot>
+     <screeninfo>The Lock Button</screeninfo>
+     <graphic fileref="./figures/panel_lockbut" format="PNG"
+     srccredit="muet" />
+    </screenshot>
+   </figure>
+   <para>
+    The <guibutton>Lock Button</guibutton> is a
+    <interface>Panel</interface> button which starts a screensaver
+    which locks the screen. In order to remove the screensaver and
+    access the GNOME session again, you must supply your password.
+    For more information on locking the screen, see <xref
+    linkend="lockscreen" />.
+   </para>
+  </sect2>
+  <sect2 id="logoutbutton">
+   <title>The Logout Button</title>
+   <figure id="logoutbuttonfig">
+    <title>The Logout Button</title>
+    <screenshot>
+     <screeninfo>The Logout Button</screeninfo>
+     <graphic fileref="./figures/panel_logoutbut"
+     format="PNG" srccredit="muet" />
+    </screenshot>
+   </figure>
+   <para>
+    The <guibutton>Logout</guibutton> button is used to exit the GNOME
+    desktop environment.  It initiates the logout sequence, bringing
+    up the <interface>Logout Dialog</interface>, as described in <xref
+    linkend="loggingout" />.
+   </para>
+  </sect2>
+  <sect2 id="runbutton">
+   <title>The Run Button</title>
+   <figure id="runbuttonfig">
+    <title>The Run Button</title>
+    <screenshot>
+     <screeninfo>The Run Button</screeninfo>
+     <graphic fileref="./figures/panel_runbutton"
+     format="PNG" srccredit="muet" />
+    </screenshot>
+   </figure>
+   <para>
+    The <guibutton>Run</guibutton> button opens the <interface>Run
+    Program</interface> dialog, shown in <xref
+    linkend="runprogramdialog-fig" />.  This gives you access to the
+    command line prompt. It is not a full-blown shell, so it is not a
+    replacement for <application>GNOME terminal</application>, but it
+    is very convenient when you need to enter just one command
+    quickly. You can also open the <interface>Run Program</interface>
+    dialog by using a  keyboard shortcut. The default keyboard
+    shortcut is
+    <keycombo action="simul">
+     <keycap>Alt</keycap> <keycap>F2</keycap>
+    </keycombo>
+    but you can change this in the <link
+    linkend="misctab"><guilabel>Miscellaneous</guilabel></link> tab of
+    the <link linkend="globalpanelprefs"><interface>Global Panel
+    Preferences dialog</interface></link>.
+   </para>
+   <figure id="runprogramdialog-fig">
+    <title>The Run Program Dialog</title>
+    <screenshot>
+     <screeninfo>The Run Program Dialog</screeninfo>
+     <graphic fileref="./figures/panel_runprogram"
+     format="PNG" srccredit="muet" />
+    </screenshot>
+   </figure>
+   <para>
+    The command entry has a history buffer which allows you to execute
+    a previously entered command by pressing the <guiicon>down
+    arrow</guiicon> icon located to the right of the text field and
+    selecting the command. It also has a
+    <guibutton>Browse&hellip;</guibutton> button, which allows you to
+    choose a file &mdash; this filename will be appended to the end of
+    your command. For example, you can enter
+    <userinput>emacs</userinput> (an extremely powerful text editor)
+    on the command line and then use the
+    <guibutton>Browse&hellip;</guibutton> button to select the file to
+    be edited.
+   </para>
+  </sect2>
+  <sect2 id="swallowedapps">
+   <title>Swallowed Applications</title>
+   <para>
+    You can run many applications which are not applets inside the
+    <interface>Panel</interface> as if they were applets.
+    Applications which you pull into the <interface>Panel</interface>,
+    even though they are not GNOME applets, are called "swallowed
+    applications".  Applications do not have to be GNOME-compliant to
+    be swallowed.  In general, the only constraints for swallowing an
+    application are that the application must be small enough to fit
+    in your <interface>Panel</interface> and you must know the  title
+    of the window you would like to swallow.  In many cases, the
+    application can be automatically shrank to fit in the
+    <interface>Panel</interface>,  as specified in the
+    <interface>Create Swallowed Application Dialog</interface>.  If
+    the application is not small enough to fit in the
+    <interface>Panel</interface>, the <interface>Panel</interface>
+    will generally grow to allow the application to fit.
+   </para>
+   <figure id="swallappfig">
+     <title>Create Swallowed Application Dialog</title>
+     <screenshot>
+      <screeninfo>Create Swallowed Application Dialog</screeninfo>
+      <graphic fileref="./figures/panel_swallow" format="PNG"
+      srccredit="muet" />
+     </screenshot>
+    </figure>
+   <para>
+    The <guilabel>Title of application to swallow</guilabel> is the
+    window title, typically displayed on the top left edge of the
+    window. (Note that the window title is case sensitive.) The
+    <guilabel>Width</guilabel> and <guilabel>Height</guilabel>
+    determine the size of the swallowed application in the
+    <interface>Panel</interface> in pixels.
+   </para>
+   <para>
+    If you leave the <guilabel>Command</guilabel> field empty, this
+    dialog will create an empty window of given size on the panel
+    which will sit there waiting for a window with the given title to
+    appear on your desktop. As soon such a window appears (for
+    example, when you choose appropriate item in the menu), it will be
+    swallowed.
+   </para>
+   <para>
+    You can also enter any command in the <guilabel>Command</guilabel>
+    field; this command will be executed before trying to swallowing
+    the window to the <interface>Panel</interface> (and  each time the
+    <interface>Panel</interface> is restarted afterwards). This is
+    normally used to start an application which you want the
+    <interface>Panel</interface> to swallow.
+   </para>
+         
+  </sect2>
+  <sect2 id="statusdock">
+   <title>Status Dock</title>
+   <para>
+    The <interface>status dock</interface> is a
+    <interface>Panel</interface> object which can hold status docklets
+    &mdash; small windows which applications place in the
+    <interface>status dock</interface> to provide status information.
+    Status docklets can also be used to control the
+    application. Essentially, docklets are small (both in size and in
+    complexity) applets.   GNOME currently does not have many
+    applications which place status docklets in the <interface>status
+    dock</interface>.  However, GNOME's <interface>status
+    dock</interface> is compatible with that of the K Desktop
+    Environment (KDE), so KDE applications, such as
+    <application>kscd</application>, may place status docklets in
+    GNOME's <interface>status dock</interface>.  Future versions of
+    GNOME applications will make use of this recently added
+    <interface>Panel</interface> object.
+   </para>
+   <figure id="statusdockfig">
+     <title>Example Status Dock With Docklet</title>
+     <screenshot>
+      <screeninfo>Example Status Dock With Docklet</screeninfo>
+      <graphic fileref="./figures/status_dock" format="PNG"
+      srccredit="lebl" />
+     </screenshot>
+    </figure>
+   <para>
+    The above example shows the <interface>status dock</interface>
+    with a status docklet from  the <application>kscd</application> CD
+    player program.  This particular docklet is used to open and close
+    the main <application>kscd</application> window without ending the
+    program.
+   </para>
+  </sect2>
+ </sect1>
+
+
+<!-- ####### Adding, Moving, and Removing Panel Objects ########## -->
+  <sect1 id="appletadd">
+    <title>Adding, Moving, and Removing Panel Objects</title>
+    <sect2 id="moving">
+      <title>Moving objects</title>
+      <para>
+       To move any object in a <interface>Panel</interface> to a
+       different location, just hold down the middle mouse button and
+       drag it to the new location. Or, you can right-click on it and
+       choose <guimenuitem>Move</guimenuitem>, then move the mouse to
+       the new location and press any mouse button to anchor it in its
+       new position. You can move it to a different location on the same
+       <interface>Panel</interface>, or to a different
+       <interface>Panel</interface>.  If in the course of this
+       movement it hits other objects, the behavior depends on the
+       global preferences (see <xref linkend="appletstab" />): the
+       object you are moving can switch places with other objects,
+       "push" all objects it meets, or "jump" over all other objects
+       without disturbing them. You can also override the default
+       behavior by holding the <keycap>Shift</keycap> button (for
+       "push" mode), the <keycap>Ctrl</keycap> button (for "switched"
+       mode), or the <keycap>Alt</keycap> button (for "free" mode,
+       i.e. jumping other objects without disturbing them) while
+       moving the object.
+      </para>
+    </sect2>
+
+    <sect2 id="remove">
+      <title>Removing objects from the Panel</title>
+      <para>
+       To remove an object from a <interface>Panel</interface>,
+       right-click on it and choose <guimenuitem>Remove from
+       panel</guimenuitem> from the pop-up menu.
+      </para>
+    </sect2>
+
+
+    <sect2 id="add">
+      <title>Adding objects to the panel</title>
+      <para>
+	By default, the GNOME <interface>Panel</interface> contains
+	only a few basic objects, such as the <guimenu>Main
+	Menu</guimenu>. However, there are many
+	<interface>Panel</interface> objects you can
+	add to it. For example, every menu item in the <guimenu>Main
+	Menu</guimenu> or its submenus can be added to a
+	<interface>Panel</interface> as an
+	application launcher. GNOME also has many applets
+	that can be added to a <interface>Panel</interface>, ranging from
+	<application>Printer Applet</application>, which prints files
+	which you drag and drop onto the applet, to
+	<application>Wanda the Fish</application>. There are many
+	additional GNOME applets and applications available on the
+	Internet.
+      </para>
+	<variablelist>
+	  <varlistentry>
+	    <term> <emphasis>Applets</emphasis></term>
+	    <listitem>
+	      <para>
+                To add an applet to a <interface>Panel</interface>,
+                right-click on the <interface>Panel</interface> and select
+                <menuchoice><guisubmenu>Panel</guisubmenu><guisubmenu>Add
+                to panel</guisubmenu>
+                <guisubmenu>Applet</guisubmenu></menuchoice>. This
+                will show you a
+                menu of all the applets on your system, divided into
+                categories; choosing any applet from this menu will
+                add it to the <interface>Panel</interface>.
+	      </para>
+	    </listitem>
+	  </varlistentry>
+
+
+	  <varlistentry>
+	    <term> <emphasis>Application launchers</emphasis></term>
+	    <listitem>
+	      <para>
+		To create a new application launcher, right-click on
+		the <interface>Panel</interface> and select
+		<menuchoice><guisubmenu>Panel</guisubmenu><guisubmenu>Add
+		to panel</guisubmenu>
+		<guimenuitem>Launcher</guimenuitem></menuchoice>.
+		This will open the <interface>Create Launcher
+		dialog</interface>, shown below.  In this dialog you
+		should enter a name for your launcher, a comment, and
+		the command line to launch the application. This
+		dialog is virtually identical to <interface>Launcher
+		Properties</interface> dialog. See <xref
+		linkend="launchers" /> for a more detailed description. 
+	      </para>
+	      <figure>
+		<title>The Create launcher dialog</title>
+		<screenshot>
+		  <screeninfo>Create launcher dialog</screeninfo>
+		  <graphic fileref="./figures/create_launcher" format="PNG"
+			   srccredit="muet" />
+		</screenshot>
+	      </figure>
+	      <para>
+                You can also add any application in the <guimenu>Main
+                Menu</guimenu> or application launcher on your
+                desktop to a <interface>Panel</interface>.
+                To do so, use the first mouse button to drag the object 
+                onto the <interface>Panel</interface>. Be
+		careful to drop it in an empty space on the
+                <interface>Panel</interface> and
+		not on any existing object: for example, if you drop
+		it on the <interface>Printer Applet</interface>, it
+                will be printed. You can also right-click on an item
+                in the <guimenu>Main Menu</guimenu>
+		and select <guimenuitem>Add this launcher to
+		panel</guimenuitem>. After this, you can change any
+		options for that launcher by clicking on it with the
+		right mouse button and selecting
+		<guimenuitem>Properties...</guimenuitem>.
+	      </para>
+	    </listitem>
+	  </varlistentry>
+
+	  <varlistentry>
+	    <term> <emphasis>Menus</emphasis></term>
+	    <listitem>
+	      <para>
+                To add a menu, right-click on the
+                <interface>Panel</interface> and select
+                <menuchoice><guisubmenu>Panel</guisubmenu> <guisubmenu>Add
+                to panel</guisubmenu> <guisubmenu>Menu</guisubmenu>
+                </menuchoice>. This gives you a choice of the <guimenu>Main
+                menu</guimenu>, <guimenu>Programs menu</guimenu>, and
+                <guimenu>Favorites menu</guimenu>.
+	      </para>
+	      <para>
+		You can also add the <guimenu>Main Menu</guimenu> or
+		any its submenu as a new menu to the
+		<interface>Panel</interface> by
+		right-clicking  on the menu title (the top line of the
+		menu, separated from menu items by a thin line) and
+		selecting <guimenuitem>Add this as a menu to the
+		panel</guimenuitem>.
+	      </para>
+              <note>
+               <title>Creating Menus By Hand</title>
+	       <para>
+                Advanced users can also create new menus
+                manually. To do so, you need to know that internally,
+                GNOME represents a menu by a directory, with menu items
+                presented by files of special type
+                (<filename>.desktop</filename> files &mdash; these files
+                also represent the application launchers), and submenus
+                presented by subdirectories. For example, the
+                <guimenu>Favorites</guimenu> menu corresponds to the
+                directory <filename>~/.gnome/apps</filename> (where
+                <filename>~</filename> denotes your home directory), and
+                the <guimenu>Programs</guimenu> menu corresponds to the
+                directory
+                <filename>/usr/share/gnome/apps</filename>. Thus, you
+                can create a new directory, using the GNOME File
+                Manager, drag and drop there any
+                <filename>.desktop</filename> files from any other
+                directories you might have (for example, from
+                <filename>/usr/share/gnome/apps</filename>) or from the
+                desktop, and then drag and drop this directory from the
+                File Manager window to the
+                <interface>Panel</interface>. This will add this
+                directory as a menu to the <interface>Panel</interface>.
+	       </para>
+              </note>
+	      <para>
+                After you have added a menu to your
+                <interface>Panel</interface> using any of  the methods
+                described above, you can modify its properties (for
+                example, add new items to this menu or change the icon
+                used by the menu), as described in <xref
+                linkend="menus" />.
+	      </para>
+	    </listitem>
+	  </varlistentry>
+
+	  <varlistentry>
+	    <term> <emphasis>Drawers</emphasis></term>
+	    <listitem>
+	      <para>
+                To add a new empty drawer, select
+                <menuchoice><guisubmenu>Panel</guisubmenu>
+                <guisubmenu>Add to panel</guisubmenu>
+                <guisubmenu>Drawer</guisubmenu></menuchoice>. Then
+                right-click on the drawer and select
+                <guimenuitem>Properties...</guimenuitem> to change its
+                properties (for example, the icon it uses). You can
+                add new items to this drawer in the same way as you
+                add items to a <interface>Panel</interface>: all the
+                methods for adding new objects to the
+                <interface>Panel</interface> described in this section
+                will also work for adding new items to a drawer.
+	    </para>
+	    <para>
+                You can also add the <guimenu>Main Menu</guimenu> or any
+                of its submenus to the <interface>Panel</interface> as a
+                drawer by right-clicking on the menu title and selecting
+		<guimenuitem>Add this as drawer to
+		panel</guimenuitem>.
+	      </para>
+	    </listitem>
+	  </varlistentry>
+	  <varlistentry>
+	    <term> <emphasis>Swallowed application</emphasis></term>
+	    <listitem>
+	      <para>To add a swallowed application to your
+		<interface>Panel</interface>, select
+		<menuchoice><guisubmenu>Panel</guisubmenu>
+		<guisubmenu>Add to panel</guisubmenu>
+		<guisubmenu>Swallowed
+		app</guisubmenu></menuchoice>. This will
+		open the <interface>Create Swallowed
+		Application</interface> dialog.  For detailed information
+		on using this dialog, see <xref
+		linkend="swallowedapps" />.
+	      </para>
+	    </listitem>
+	  </varlistentry>
+	</variablelist>
+
+   </sect2>
+ </sect1>
+
+
+
+
+<!-- ########### Creating, Moving, and Removing Panels  ########### -->
+  <sect1 id="panelmove">
+    <title>Creating, Moving, and Removing Panels</title>
+    <sect2 id="paneladd">
+     <title>Creating new panels</title>
+     <para>
+       To add a new <interface>Panel</interface> to your desktop,
+       select
+       <menuchoice><guisubmenu>Panel</guisubmenu><guisubmenu>Create
+       panel</guisubmenu></menuchoice> from the <guimenu>Main
+       Menu</guimenu>. Choose from the following
+       <interface>Panel</interface> types:
+     </para>
+     <itemizedlist mark="bullet">
+      <listitem>
+        <para>
+          <guilabel>Menu Panel</guilabel> &mdash; The <interface>Menu
+          Panel</interface> is a special <interface>Panel</interface>
+          which is always placed at the top of your screen and
+          contains several pull-down menus.  These are
+          <guimenu>Programs</guimenu>, <guimenu>Favorites</guimenu>,
+          <guimenu>Settings</guimenu>, <guimenu>Desktop</guimenu>, and
+          a special menu which provides quick access to GNOME-related
+          Internet resources (look for the bullet hole icon).  This
+          <interface>Panel</interface> can also hold the other objects
+          which other <interface>Panel</interface>s can hold, but it
+          does not have the configuration properties which other
+          <interface>Panel</interface>s have. Note that the
+          <interface>Menu Panel</interface> is more restrictive than
+          other <interface>Panel</interface>s, and some normal
+          <interface>Panel</interface> operations, such as moving the
+          <interface>Panel</interface>, cannot be performed on it.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <guilabel>Edge Panel</guilabel> &mdash; An <interface>Edge
+           Panel</interface> is exactly like the main
+           <interface>Panel</interface> that starts up with GNOME; it
+           stretches along the whole length of one of screen edges. By
+           selecting this type of <interface>Panel</interface>, you
+           may add a new <interface>Panel</interface> to another edge
+           of your screen to give yourself more functionality.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <guilabel>Aligned Panel</guilabel> &mdash;  An
+          <interface>Aligned Panel</interface> is also positioned
+          along one of the screen edges. But unlike an <interface>Edge
+          Panel</interface>, an <interface>Aligned Panel</interface>
+          will not stretch across the entire edge of the screen it is
+          on; It will only stretch as much as necessary to  display
+          the icons and applets it contains. It can be positioned
+          either at one of the corners (in this case, it will stretch
+          towards the opposite corner) or at the center of the edge
+          (in this case, it will stretch in both directions,
+          automatically recentering when you add new objects).
+        </para>
+        <para>
+          If an <interface>Aligned Panel</interface> is aligned with
+          one of the corners, the hide buttons will work slightly
+          differently than for an <interface>Edge Panel</interface>.
+          The hide button closest to the edge of your screen will hide
+          the <interface>Panel</interface> as usual but the other hide
+          button will send the whole <interface>Panel</interface> to
+          the opposite corner. When the latter move is made it will
+          not hide the <interface>Panel</interface> since it is
+          changing the side of the screen it resides on.  If you want
+          to hide it you will have to press the hide button once again.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <guilabel>Sliding Panel</guilabel> &mdash; A
+          <interface>Sliding Panel</interface> is very similar to an
+          <interface>Aligned Panel</interface>, but can be placed
+          anywhere along the screen edge, not necessarily in one of
+          the corners or in the center. As you add objects, it will
+          only grow in one direction &mdash; it won't automatically
+          recenter.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <guilabel>Floating Panel</guilabel> &mdash; A
+          <interface>Floating Panel</interface> can be placed anywhere
+          on your screen, not necessarily along one of the edges.
+       </para>
+      </listitem>
+     </itemizedlist>
+
+     <tip>
+      <title>Changing Panel Type</title>
+      <para>
+       You can also change type of existing panel &mdash; for example,
+       convert edge panel to a floating panel, see <xref
+       linkend="panelproperties" />.
+      </para>
+     </tip>
+
+    </sect2>
+
+    <sect2 id="panelmoving">
+     <title>Moving Panels</title>
+     <para>
+      Any <interface>Panel</interface> you have on your desktop(except
+      a <interface>Menu Panel</interface>) can be
+      moved by pressing the middle mouse button, or by simultaneously
+      pressing the left and right mouse buttons, while dragging the
+      <interface>Panel</interface> to
+      the desired position on your screen. If you do not have a middle
+      mouse button and did not configure your mouse to emulate a
+      middle button you may also move a <interface>Panel</interface>
+      by changing its location in the <interface>Panel
+      properties</interface> dialog.  You can read more about this in
+      <xref linkend="panelproperties" /> of this documentation.
+     </para>
+    </sect2>
+    <sect2 id="panelremoving">
+     <title>Removing Panels</title>
+     <para>
+      To remove an existing <interface>Panel</interface>, right-click
+      on it and choose
+      <menuchoice><guisubmenu>Panel</guisubmenu><guisubmenu>Remove
+      this panel</guisubmenu></menuchoice>. If the
+      <interface>Panel</interface> is not empty, you will be prompted
+      to confirm.
+     </para>
+     <note>
+      <title>Removing Your Only Panel</title>
+      <para>
+        You must have at least one <interface>Panel</interface>
+        running at all times.  GNOME will not allow you to remove your
+        only <interface>Panel</interface>.
+      </para>
+     </note>
+    </sect2>
+   </sect1>
+
+
+<!-- ############### Global Panel Preferences  ################## -->
+  <sect1 id="globalpanelprefs">
+   <title>Global Panel Preferences</title>
+    <para>
+     To start configure the behavior of all of your
+     <interface>Panel</interface>s, select
+     <menuchoice><guisubmenu>Panel</guisubmenu> <guisubmenu>Global
+     Preferences</guisubmenu></menuchoice> from  the <link
+     linkend="mainmenu"><guimenu>Main Menu</guimenu></link>.
+    </para>
+    <para>
+     This will open the <interface>Global Panel
+     Preferences</interface> dialog. (This dialog is a
+     component of the <application>GNOME Control
+     Center</application>).  With this dialog you can control many
+     properties shared by all of your <interface>Panel</interface>s.
+     <figure>
+      <title>The Global Panel Configuration Dialog</title>
+     <screenshot>
+      <screeninfo>The Global Panel Configuration Dialog</screeninfo>
+       <graphic fileref="./figures/glob_pref_anim"
+       format="PNG" srccredit="muet" />
+     </screenshot>
+     </figure>
+    </para>
+    <para>
+     The <interface>Global Panel Configuration</interface> dialog
+     contains the following five tabs:
+     <guilabel>Animation</guilabel>, <guilabel>Buttons</guilabel>,
+     <guilabel>Panel Objects</guilabel>, <guilabel>Menu</guilabel>, and
+     <guilabel>Miscellaneous</guilabel>. Each of these tabs is
+     explained below.
+    </para>
+    <sect2 id="animtab">
+     <title>Animation  Tab</title>
+    <itemizedlist mark="bullet">
+     <listitem>
+      <para>
+       <guilabel>Enable animations</guilabel> &mdash; This allows
+       <interface>Panel</interface>s and drawers to animate as the
+       hide and unhide.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Constant speed animations</guilabel> &mdash; By
+       default, the animations start slowly, but then accelerate. If
+       you enable this option, the animations will not use any
+       acceleration.
+      </para>
+     </listitem>
+      <listitem>
+      <para>
+       <guilabel>[Animation speed] Auto hide</guilabel> &mdash; This
+       controls the speed of animation for any
+       <interface>Panel</interface> which is set to hide automatically
+       when the mouse leaves the <interface>Panel</interface>. The
+       slowest setting is 1, and the fastest is 100.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>[Animation speed] Explicit hide</guilabel> &mdash; This
+       controls the hide speed when you press a <interface>Panel</interface>'s
+       <guibutton>Hide Button</guibutton>. The slowest setting is 1,
+       and the fastest is 100.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>[Animation speed] Drawer sliding</guilabel> &mdash;
+       This controls how fast a drawer menu will raise when you
+       press a drawer button on a <interface>Panel</interface>. The
+       slowest setting is 1, and the fastest is 100.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>[Auto hide] Delay (ms)</guilabel> &mdash; If you have
+       a <interface>Panel</interface> set to minimize automatically
+       after the mouse leaves the <interface>Panel</interface>
+       this will allow you to control how much time passes before it
+       minimizes.  The <interface>Panel</interface>
+       will start the time count once the mouse is no longer over
+       it. It will appear again when the mouse is passed over the
+       portion of the <interface>Panel</interface> that remains
+       visible. This time is measured in milliseconds.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>[Auto hide] Size (pixels)</guilabel> &mdash;
+       This determines the number of pixels that show when a
+       <interface>Panel</interface> is minimized, for any
+       <interface>Panel</interface> which is set to hide automatically.
+       To maximize the <interface>Panel</interface>, the pointer must
+       enter the <interface>Panel</interface> area.
+      </para>
+     </listitem>
+    </itemizedlist>
+   </sect2>
+   <sect2 id="launchtab">
+    <title>Buttons Tab</title>
+    <para>
+      In this section, you can set the
+      appearance of the various types of buttons: launcher buttons, menu
+      buttons, drawer buttons, and special buttons(such as the <link
+      linkend="logoutbutton">Logout Button</link> and the <link
+      linkend="lockbutton">Lock Button</link>).
+    </para>
+    <itemizedlist mark="bullet">
+     <listitem>
+      <para>
+       <guilabel>Button Type</guilabel> &mdash; Select the type of
+       button you wish to configure.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Tiles enabled</guilabel> &mdash; This checkbox will
+       enable background tiles for buttons of the given type on the
+       <interface>Panel</interface>.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Normal tile</guilabel> &mdash; This shows the image
+       used for the tile in the up position (inactive, not
+       pressed). To choose another image file, just click on the
+       image, and it will launch the icon browser. Tiles must be
+       enabled to access this option.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Clicked tile</guilabel> &mdash; This shows the image
+       used for the tile in the down position (active, pressed). To
+       choose another image file, just press on the image, and it will
+       launch the icon browser. Tiles must be enabled to access this
+       option.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Border width (tile only)</guilabel> &mdash; This
+       determines the width of the border around an icon. For example,
+       if you set border width equal to 5, this will ensure that at
+       least 5 pixels of the tile will be shown on every side of the
+       icon; if necessary, the icon will be cropped. This is very
+       useful if you have an icon that would normally cover up a tile.
+       Tiles must be enabled to access this option.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Depth (displacement when pressed)</guilabel> &mdash;
+       This determines the depth an icon will displace when
+       pressed. Tiles must be enabled to access this option.
+      </para>
+     </listitem>
+    </itemizedlist>
+      <para>
+       This tab also contains 3 options which affect all types
+       of buttons simultaneously:
+     </para>
+      <itemizedlist>
+	<listitem>
+         <para>
+          <guilabel>Make buttons flush with panel edge</guilabel>
+	  &mdash; This allows you to align the button with
+	  the edge of the <interface>Panel</interface>.  If this
+	  option is not set then the border width setting is obeyed.
+	  By default this option is off.
+	  </para>
+	</listitem>
+	<listitem>
+	 <para>
+          <guilabel>Show button tiles only when cursor is over
+	  the button</guilabel> &mdash; If this option is enabled, the
+	  tiles will only appear when mouse cursor is over the button.
+	 </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    <guilabel>Prelight buttons on mouseover</guilabel>
+	    &mdash; Choosing this option will make the buttons
+	    brighten up when the mouse cursor is over them.
+	  </para>
+	</listitem>
+      </itemizedlist>
+   </sect2>
+    <sect2 id="appletstab">
+      <title>Panel objects Tab</title>
+      <para>
+	This tab shows some options related to the placement and moving
+	of objects on the <interface>Panel</interface>.  
+      </para>
+      <itemizedlist>
+	<listitem>
+	  <para>
+	    <guilabel>Default movement mode</guilabel> &mdash; Here
+	    you can choose the default mode for moving objects on
+	    the <interface>Panel</interface>. Possible variants are
+	    </para>
+	    <itemizedlist>
+	      <listitem>
+               <para> 
+                <emphasis>Switched</emphasis> &mdash;
+                When the object you are moving hits another object,
+                they switch places.
+	       </para>
+	      </listitem>
+
+	      <listitem>
+               <para>
+                <emphasis>Free</emphasis> &mdash; When
+		the object you are moving hits another object, it
+                "jumps" over it, so no other object is disturbed.
+                This is a convenient option if you like the
+                current arrangement of objects on your
+		<interface>Panel</interface> and want to leave the
+		other objects in place.
+		</para>
+	      </listitem>
+
+	      <listitem>
+		<para>
+		  <emphasis>Push</emphasis> &mdash; The object you are
+		  moving pushes all other objects in front of it, like
+		  a snow plow.
+		</para>
+	      </listitem>
+	    </itemizedlist>
+	  <para>
+            You can override the default movement mode by dragging
+	    an  object while holding <keycap>Ctrl</keycap> (for
+	    switched movement), <keycap>Alt</keycap> (for free
+	    movement), or <keycap>Shift</keycap> (for push movement)
+	    button pressed.
+	    </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    <guilabel>Padding</guilabel> &mdash;  This changes
+	    the amount of space (padding) between objects on the
+	    <interface>Panel</interface>. It is measured in pixels.
+	  </para>
+	</listitem>
+      </itemizedlist>
+    </sect2>
+
+   <sect2 id="menutab">
+    <title>Menu Tab</title>
+      <para>
+       In this tab, you can set the options determining the
+       appearance of <interface>Panel</interface> menus.
+      </para>
+      
+     <itemizedlist>
+      <listitem>
+      <para>
+       <guilabel>Use large icons</guilabel> &mdash; This will use
+       large icons (rather than the default size) in menus. This is only
+       practical for those with high resolution screens (1280x1024 and
+       higher).
+      </para>
+     </listitem>
+      <listitem>
+      <para>
+       <guilabel>Show [...] buttons</guilabel> &mdash; This will add
+       small buttons labelled by three dots (...) to all the items of
+       the <guimenu>Main Menu</guimenu>. Clicking on such a button
+       with the left mouse button will bring the
+       <guimenu>pop-up</guimenu> menu for this item, i.e. the same
+       menu which you get by clicking on the menu item with the right
+       mouse button.   
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Show popup menus outside of panels</guilabel> &mdash;
+       When this button is on, it allows pop-up menus to appear away
+       from the <interface>Panel</interface>. When toggled off, the
+       pop-ups will appear over the <interface>Panel</interface>. This
+       can be useful on smaller screens or cluttered desktops.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Keep menus in memory</guilabel> &mdash; This will
+       keep your menus in memory so that they do not rescan for added
+       items. This can increase the speed of GNOME, but may also
+       result in you missing new items added to your menu.
+	</para>
+	</listitem>
+	<listitem>
+         <para>
+          <guilabel>Global menu</guilabel> &mdash; This
+	  allows you to configure the <link linkend="globalmenu">
+          <guimenu>Global Menu</guimenu></link>
+	  which you get by right-clicking on a
+	  <interface>Panel</interface>, or by using
+	  the keyboard shortcut. For each of the possible submenus
+	  (<guisubmenu>Programs</guisubmenu>,
+	  <guisubmenu>Favorites</guisubmenu>, etc.), you can choose
+	  whether it should be included as a part of the <guimenu>Global
+	  Menu</guimenu>, as a submenu, or not included at all. A
+	  description of these submenus is given in <xref
+	  linkend="submenus" />.
+	  </para>
+	</listitem>
+      </itemizedlist>
+    </sect2>
+
+   <sect2 id="misctab">
+    <title>Miscellaneous Tab</title>    
+      <para>
+       The <guilabel>Miscellaneous</guilabel> tab contains options for various
+       customizable behavior that didn't fit anywhere else.
+      </para>
+
+     <itemizedlist mark="bullet">
+     <listitem>
+      <para>
+       <guilabel>Tooltips enabled</guilabel> &mdash; This option
+       defines whether GNOME should show a tooltip when the
+       pointer pauses on a <interface>Panel</interface> item.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Close drawer if a launcher inside it is
+       pressed</guilabel> &mdash; By default drawers will remain open
+       when you select an item within one. This can be annoying as the
+       drawer will remain open until you close it with a mouse
+       click. With this option selected drawers will close
+       automatically when you select any item within one.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Raise panels on mouse-over</guilabel> &mdash; If you
+       are using a window manager that is not GNOME compliant it will
+       not understand its relationship with the
+       <interface>Panel</interface>. This can cause
+       your <interface>Panel</interface> to be covered by
+       applications. If you enable this feature you can have the
+       <interface>Panel</interface> automatically raise when your
+       mouse is over it.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Keep panel below windows</guilabel> &mdash; If you
+       are using a GNOME compliant window manager, the window manager
+       will understand its relationship with the
+       <interface>Panel</interface>. If you choose
+       this feature the window manager and GNOME will allow
+       applications to appear over the
+       <interface>Panel</interface>. This can be useful on
+       smaller screens.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Confirm removal of panels with a
+       dialog</guilabel> &mdash; If this option is enabled,
+       GNOME will ask for confirmation before removing a
+       <interface>Panel</interface>.
+      </para>
+     </listitem>
+    </itemizedlist>
+    <para>
+     This tab also allows you to configure some global key
+     bindings. You can define key bindings for the <link
+     linkend="globalmenu"><guimenu>Global Menu</guimenu></link>(ie.
+     <guimenu>Popup Menu</guimenu>) and
+     for the <link linkend="runbutton"><interface>Run
+     Program</interface></link> dialog. (The default key bindings for
+     these are
+     <keycombo action="simul">
+      <keycap>Alt</keycap>
+      <keycap>F1</keycap>
+     </keycombo>
+     and 
+     <keycombo action="simul">
+      <keycap>Alt</keycap>
+      <keycap>F2</keycap>
+     </keycombo>
+     respectively.)  To
+     change these key bindings,  select a key from the drop-down list
+     or press the <guibutton>Grab key&hellip;</guibutton> button and then
+     press the desired key. 
+    </para>
+      <note>
+	<title>Using the Menu and Window keys</title>
+	<para>
+	  You should be able to use the special <keycap>Menu</keycap>
+	  and <keycap>Windows</keycap> keys for keybindings. If you
+	  have problems with using these keys, the most probable reason
+	  is that your X server was incorrectly configured: the
+	  keyboard type chosen during installation does not match
+	  your actual keyboard. If you are using
+	  <application>XFree86</application> server, you can fix it by
+	  manually editing the configuration file. This file, named
+	  <filename>XF86Config</filename>, is usually located in
+	  the <filename class="directory">/etc</filename> or <filename
+	  class="directory">/etc/X11</filename>
+	  directory. Open this file with any text editor (not a
+	  word-processor!) and find the line containing the word
+	  <literal>XkbModel</literal>. Change it to read
+	  <programlisting>
+              XkbModel "pc104"
+	  </programlisting>
+	  You must be root (system administrator) to do this. Now,
+	  logout of GNOME and restart the X server by simultaneously
+	  pressing <keycombo> <keycap>Ctrl</keycap>
+	  <keycap>Alt</keycap> <keycap>Backspace</keycap> </keycombo>.
+	</para>
+      </note>
+      <warning>
+	<title>Use Caution When Editing XF86Config</title>
+	<para>
+	Making a mistake while editing the <filename>XF86Config</filename>
+	file can make your keyboard or screen unusable in X
+	Windows. Before editing this file, you should make a backup copy of
+	it and make sure you know how to restore it from the backup file
+	without using X Windows or GNOME, i.e., from a terminal. If
+	you don't know how to do this, then do not edit this file.
+       </para>
+      </warning>
+   </sect2>
+   </sect1>
+
+
+<!-- ###############  Individual Panel Properties  ################ -->
+
+   <sect1 id="panelproperties">
+    <title>Individual Panel Properties</title>
+    <para>
+     <indexterm id="idx-a62"> <primary>Panel</primary>
+      <secondary>Individual Panel Properties</secondary>
+     </indexterm>
+     <indexterm id="idx-a63">
+      <primary>Panel</primary> <secondary>Properties</secondary>
+      </indexterm>
+      In addition to global Panel properties, described in <xref
+      linkend="globalpanelprefs" />, some properties can be configured
+      individually for each <interface>Panel</interface>.  This
+      includes <interface>Panel</interface> type (Edge,
+      Aligned, Sliding, Floating), size, location, background color,
+      and hiding preferences. To change these properties for a
+      <interface>Panel</interface>,
+      click on it with the right mouse button and select
+      <menuchoice><guimenu>Panel</guimenu>
+      <guisubmenu>Properties</guisubmenu></menuchoice>. You may also
+      press the <guibutton>Main Menu</guibutton> button and select
+      <menuchoice><guimenu>Panel</guimenu>
+      <guisubmenu>Properties</guisubmenu></menuchoice>.
+    </para>
+    <para>
+      From the <guisubmenu>Properties</guisubmenu> submenu, you can
+      choose <guimenuitem>All properties...</guimenuitem>, which will
+      launch the <interface>Panel properties</interface> dialog.  If you
+      are already familiar with this dialog, you can more quickly
+      change some of the properties &mdash; say,
+      <interface>Panel</interface> size or type
+      &mdash; by selecting the appropriate item in the
+      <guisubmenu>Properties</guisubmenu> menu.
+    </para>
+    <para>
+     The <interface>Panel properties</interface> dialog contains two
+     tabs to help you set the active <interface>Panel</interface>
+     properties: <guilabel>Edge
+     Panel</guilabel> (or <guilabel>Aligned</guilabel>, &hellip; -
+     depending on your <interface>Panel</interface> type) and
+     <guilabel>Background</guilabel>. Both of these tabs are explained
+     below.
+    </para>
+
+   <sect2 id="edgetab">
+    <title>Edge Panel Tab</title>
+    <figure>
+     <title>Panel Edge Properties Dialog</title>
+    <screenshot>
+     <screeninfo>Panel Edge Properties Dialog</screeninfo>
+      <graphic fileref="./figures/panel_props_edge"
+      format="PNG" srccredit="muet" />
+    </screenshot>
+    </figure>
+    <itemizedlist mark="bullet">
+	<listitem>
+	  <para>
+	    <guilabel>Panel Position</guilabel> &mdash; This changes
+	    the position of the <interface>Panel</interface> on the screen. For
+	    <interface>Edge Panel</interface>, you must specify an
+	    edge (<guilabel>Top</guilabel>,
+	    <guilabel>Right</guilabel>, <guilabel>Left</guilabel> or
+	    <guilabel>Bottom</guilabel>). For <interface>Aligned
+	    Panel</interface>, you have to specify an edge and one of
+	    the edge's ends or the center. For <interface>Sliding
+	    Panel</interface>, you must specify the edge and offset
+	    from one of the corners (in pixels). Finally, for
+	    <interface>Floating Panel</interface> you must specify
+	    orientation (horizontal or vertical) and position of
+	    <interface>Panel</interface>'s left top corner (relative
+	    to the left top corner of the screen and measured in pixels).
+	  </para>
+	  <para>
+	    The <interface>Panel</interface> will change position once
+	    you have pressed the <guibutton>Apply</guibutton> or
+	    <guibutton>OK</guibutton> button.
+	  </para>
+	  <tip>
+	    <title>Manually Moving a Panel</title>
+	    <para>
+	      You can also change <interface>Panel</interface>
+	      position by dragging it with the middle mouse button to
+	      the new location.
+            </para>
+	  </tip>
+	</listitem>
+
+	<listitem>
+	 <para>
+          <guilabel>Panel size</guilabel> &mdash; Here you can
+	  choose the <interface>Panel</interface> width. The default
+	  size is 48 pixels, which is
+	  also the default size of icons used by GNOME. Users with low
+	  screen resolution might want to decrease the
+	  <interface>Panel</interface> size to
+	  free some screen space; conversely, users with high
+	  resolution displays may try using larger
+	  <interface>Panel</interface> sizes.
+        </para>
+        <para>
+          Changing <interface>Panel</interface> size automatically
+          resizes all the icons on this <interface>Panel</interface>,
+          which can lead to some quality loss. Also,
+          the <interface>Panel</interface> will ask all the applets to resize
+          themselves. Most of the applets will comply; however, if
+          some applets do not obey this request, then the
+          <interface>Panel</interface> will resize itself so that it
+          can fit all the applets.
+	  </para>
+	</listitem>
+
+     <listitem>
+      <para>
+       <indexterm id="idx-a64"> <primary>Panel</primary>
+        <secondary>Auto-hide</secondary>
+       </indexterm>
+       <guilabel>Hiding</guilabel> &mdash; In this section, you
+       can choose whether you want to <guilabel>Enable
+       Auto-hide</guilabel> &mdash; that is, have the
+       <interface>Panel</interface> automatically hide when
+       the mouse is not over the <interface>Panel</interface>. The
+       autohide parameters
+       can be configured in the <link linkend="animtab">Global
+       Preferences dialog</link>. If you choose to auto-hide, you
+       might want to disable the hide buttons here as well. You
+       may also disable the hide button arrows graphics on the
+       hide buttons.
+      </para>
+     </listitem>
+    </itemizedlist>
+   </sect2>
+
+   <sect2 id="panelbacktab">
+    <title>Background Tab</title>
+      <indexterm id="idx-a65">
+	<primary>Panel</primary>  <secondary>Background</secondary>
+	</indexterm>
+  
+      <figure>
+	<title>Panel Background Properties Dialog</title>
+	<screenshot>
+	  <screeninfo>Panel Background Properties Dialog</screeninfo>
+	  <graphic fileref="./figures/panel_props_back"
+	       format="PNG" srccredit="muet" />
+	</screenshot>
+      </figure>
+
+
+      <para>
+	These options allow you to change the background of the
+       <interface>Panel</interface>
+       itself. You may choose, if you wish, to have the
+       <guilabel>Standard</guilabel>, <guilabel>Pixmap</guilabel>, or
+       <guilabel>Color</guilabel> background. The standard look for
+       the <interface>Panel</interface> is determined by the GTK theme
+       you are running at the
+       time (you can configure the GTK theme using the
+       <application>GNOME Control Center</application>).  The
+       <guilabel>Pixmap</guilabel> option allows you to choose an
+       image to tile or scale to the <interface>Panel</interface>. The
+       <guilabel>Color</guilabel> option allows you to specify a
+       particular color for the <interface>Panel</interface>.
+      </para>
+
+   <itemizedlist mark="bullet">
+
+     <listitem>
+      <para>
+       <guilabel>Color to use</guilabel> &mdash; If you choose to have
+       your <interface>Panel</interface> one color, this button will
+       launch a dialog which allows you to specify which color to use.
+      </para>
+     </listitem>
+
+
+     <listitem>
+      <para>
+       <guilabel>Image</guilabel> &mdash; If you wish to have a
+       <guilabel>Pixmap</guilabel>
+       for the background of your <interface>Panel</interface>, this
+       section of the dialog allows you to choose which image to use.
+       If you press the <guibutton>Browse</guibutton> button, you can
+       search for the file you want to use. The current filename is
+       shown to the left of this button. The window above it shows you
+       the preview of this background.
+      </para>
+     </listitem>
+   </itemizedlist>
+
+      
+      <tip>
+	<title>Drag and Drop With Images</title>
+	<para>
+	  An easier way to change the  background of your
+	  <interface>Panel</interface> is to
+	  drag and  drop an image  file from the <application>GNOME
+	  File Manager</application> onto the
+	  <interface>Panel</interface>.  This will automatically
+	  change the background of the <interface>Panel</interface> to
+	  that image.
+	</para>
+      </tip>
+    
+    <itemizedlist mark="bullet">
+     <listitem>
+      <para>
+       <guilabel>Don't scale image to fit</guilabel> &mdash; If this
+       button is checked, the background image will be tiled to cover
+       the <interface>Panel</interface>, rather than scaled.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Scale image (keep proportions)</guilabel> &mdash; If
+       this button is checked, the background image will be scaled as
+       much as possible preserving image's proportions, and then the
+       scaled image will be used to tile the
+       <interface>Panel</interface>.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Stretch image (change proportions)</guilabel> &mdash;
+       If this button is checked, the background image will be
+       stretched in both dimensions to the size of the
+       <interface>Panel</interface>.
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <guilabel>Rotate image for vertical panel</guilabel> &mdash; If
+         this button is checked, the image will be rotated when you
+         change <interface>Panel</interface> orientation
+         (horizontal/vertical).
+      </para>
+     </listitem>
+    </itemizedlist>
+   </sect2>
+   </sect1>
+
+<!-- ############### Current Bugs and Limitations ############### -->
+
+<sect1 id="panelbugs">
+
+    <title>Current bugs and limitations</title>
+    <para>
+      Most of the things here are not really bugs; rather, they
+      describe situations when the <interface>Panel</interface>'s
+      behavior is not what you would expect.
+   </para>
+
+    <para> 
+      You cannot place an ordinary file or directory on the
+      <interface>Panel</interface>. If you try to drag and drop a file
+      from the File Manager window to the
+      <interface>Panel</interface>, it won't work. The only type of
+      file that can be placed on the <interface>Panel</interface> are
+      <filename>.desktop</filename>
+      files, which describe launchers (and
+      <filename>.kdelnk</filename> files, which describe launchers in
+      the format used by K Desktop Environment); any directory dropped on the
+      <interface>Panel</interface> will be interpreted as a menu
+      &mdash; that is, all the
+      files other than <filename>.desktop</filename> files will be
+      ignored.
+    </para>
+
+    <para>
+      Editing menus other than the <guimenu>Main Menu</guimenu>
+      is rather confusing. <application>Menu Editor</application> at
+      the moment cannot be used for this, and the
+      <guimenuitem>Properties</guimenuitem> item of the right-click
+      menu is not too helpful either - for example, it doesn't allow
+      one to change the menu's icon (see <xref linkend="menusconf" /> for
+      instructions for doing this). This will be improved in the next
+      release.
+    </para>
+
+    <para>
+      The <guimenu>Global Menu</guimenu> (which you get by
+      pressing the
+      <keycombo><keycap>Alt</keycap><keycap>F1</keycap></keycombo> key
+      on the keyboard or by
+      right-clicking on the <interface>Panel</interface>), and the
+      <guimenu>Main
+      Menu</guimenu> (which you get by clicking on the foot icon)
+      are configured separately. The reason is that you
+      can have several <guimenu>Main Menu</guimenu> buttons on
+      different <interface>Panel</interface>s.
+    </para>
+
+    <para>
+     The <guibutton>Screen Lock</guibutton> button does not lock the
+     screen if <guilabel>No Screensaver</guilabel> is set in the
+     <application>GNOME Control Center</application>.
+    </para>
+
+    <para>
+      The only way of changing a <interface>Panel</interface>'s type
+      (Edge, Aligned, etc.)
+      is by choosing <menuchoice><guisubmenu>Panel</guisubmenu> <guisubmenu>Properties</guisubmenu>
+      <guisubmenu>Type</guisubmenu>  </menuchoice> from the
+      <guimenu>Main Menu</guimenu> or <guimenu>Global Menu</guimenu>:
+      you can not change <interface>Panel</interface> type in the 
+      <interface>Panel Properties</interface> dialog. Conversely,
+      <menuchoice> <guisubmenu>Panel</guisubmenu><guisubmenu>Properties</guisubmenu>
+      <guisubmenu>Background type</guisubmenu></menuchoice> allows
+      you to change the background type (Pixmap/Color/Standard), but
+      not to choose the actual color or image to use.
+    </para>
+
+  </sect1>
+
+
+<!-- ###############  Authors  ################## -->
+  <sect1 id="authors">
+    <title>Authors</title>
+     <para>
+      <application>GNOME Panel</application> was written by many GNOME
+      developers; you can find a partial list in the
+      <interface>About</interface> dialog. By
+      the way: if you wonder what is the name of the animal shown in
+      the <interface>About</interface> dialog, it is called
+      "Gegl" and it has its own
+      <ulink type="http" url="http://www.gegl.org/">Web page</ulink>.
+    </para>
+    <para>
+      Please send all comments, suggestions, and bug reports to the
+      <ulink url="http://bugzilla.gnome.org/" type="http">GNOME bug
+      tracking database</ulink>. You can also use
+      the <application>Bug Report Tool</application>
+      (<command>bug-buddy</command>), available in the
+      <guisubmenu>Utilities</guisubmenu> submenu of <guimenu>Main
+      Menu</guimenu>, for submitting bug reports.
+      </para>
+    <para>
+      This manual was written by Dave Mason
+      (<email>dcm at redhat.com</email>), Dan Mueth
+      (<email>d-mueth at uchicago.edu</email>), and Alexander Kirillov
+      (<email>kirillov at math.sunysb.edu</email>). Please send all
+      comments and suggestions regarding this manual to the GNOME
+      Documentation Project at <email>docs at gnome.org</email> or enter
+      your comments online using the <ulink type="http"
+      url="http://developer.gnome.org/projects/gdp/doctable/">GNOME
+      Documentation Status Table</ulink>.
+      </para>
+    </sect1> 
+  <sect1 id="license">
+  <title>License</title>
+  <para>
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the <ulink type="help"
+   url="gnome-help:gpl"><citetitle>GNU General Public
+   License</citetitle></ulink> as published by the Free Software
+   Foundation; either version 2 of the License, or (at your option)
+   any later version.
+  </para>
+  <para>
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   <ulink type="help" url="gnome-help:gpl"><citetitle>GNU General
+   Public License</citetitle></ulink> for more details.
+  </para>
+  <para>
+   A copy of the <ulink type="help"
+   url="gnome-help:gpl"><citetitle>GNU General Public
+   License</citetitle></ulink> is included with the GNOME documentation.  
+   You may also obtain a
+   copy of the <ulink type="help" url="gnome-help:gpl"><citetitle>GNU
+   General Public License</citetitle></ulink> from the Free Software
+   Foundation by visiting <ulink type="http"
+   url="http://www.fsf.org/">their Web site</ulink> or by writing to
+   <address>
+    Free Software Foundation, Inc.
+    <street>59 Temple Place</street> - Suite 330
+    <city>Boston</city>, <state>MA</state> <postcode>02111-1307</postcode>
+    <country>USA</country>
+   </address>
+  </para>
+ </sect1>
+
+ </article>
+
+
+
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-25-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-25-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-25-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-26-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-26-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-26-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-27-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-27-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-27-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-28-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-28-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-28-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-29-.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-29-.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-29-.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<root-person>
+
+<person>Stephane GUIBOUD-RIBAUD</person>
+
+</root-person>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-29-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-29-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-29-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+
+<root>
+  <include href="bug-29-.ent"/>
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-3-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-3-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-3-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<foo option="1" blaat="2" fiets="3">Test</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-30-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-30-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-30-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-31-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-31-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-31-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/css" href="style.css"?>
+<document>
+</document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-32-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-32-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-32-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<a b:c="d" xmlns:b="http://b"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-33-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-33-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-33-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+
+<exam name="Midterm Exam" id="TK421" timeLimit="00:30:00" hints="true">
+ <questions xmlns:xlink="http://www.w3.org/1999/xlink">
+   <question type="choice" id="TK421-2" instructionId="1">
+     <questionText>A <emphasis>constant</emphasis> is something that does
+not change.</questionText>
+     <answers>
+       <answer id="TK421-2-1" correct="true">True</answer>
+       <answer id="TK421-2-2">False</answer>
+     </answers>
+   </question>
+ </questions>
+</exam>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-35-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-35-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-35-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<a:a xmlns:a="http://a"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-36-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-36-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-36-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version='1.0'?>
+<x xmlns="http://xmlsoft.org/">
+some text
+</x>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-37-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-37-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-37-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version='1.0'?>
+<x xmlns="http://xmlsoft.org/">
+some text
+</x>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-38-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-38-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-38-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<xsl:stylesheet version="1.0" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template name="ns">
+ <ns xmlns:ns="http://whatever"/>
+</xsl:template>
+
+
+<xsl:template match="/*">
+ <elem>
+   <xsl:copy-of select="document('')/*/
+		       xsl:template[@name='ns']/
+		       ns/namespace::ns"/>
+ </elem>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-39-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-39-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-39-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version='1.0'?>
+<x>
+</x>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-4-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-4-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-4-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ROOT>
+  <GROUP name="G1">
+    <MEMBER name="M1">
+      <CONTENT>MEMBER 1 of GROUP 1</CONTENT>
+    </MEMBER>
+    <MEMBER name="M2">
+      <CONTENT>MEMBER 2 of GROUP 1</CONTENT>
+    </MEMBER>
+    <MEMBER name="M3">
+      <CONTENT>MEMBER 3 of GROUP 1</CONTENT>
+    </MEMBER>
+  </GROUP>
+
+  <GROUP name="G2">
+    <MEMBER name="M1">
+      <CONTENT>MEMBER 1 of GROUP 2</CONTENT>
+    </MEMBER>
+    <MEMBER name="M2">
+      <CONTENT>MEMBER 2 of GROUP 2</CONTENT>
+    </MEMBER>
+    <MEMBER name="M3">
+      <CONTENT>MEMBER 3 of GROUP 2</CONTENT>
+    </MEMBER>
+  </GROUP>
+
+  <GROUP name="G3">
+    <MEMBER name="M1">
+      <CONTENT>MEMBER 1 of GROUP 3</CONTENT>
+    </MEMBER>
+    <MEMBER name="M2">
+      <CONTENT>MEMBER 2 of GROUP 3</CONTENT>
+    </MEMBER>
+    <MEMBER name="M3">
+      <CONTENT>MEMBER 3 of GROUP 3</CONTENT>
+    </MEMBER>
+  </GROUP>
+</ROOT>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-40-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-40-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-40-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-41-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-41-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-41-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-42-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-42-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-42-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-43-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-43-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-43-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-44-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-44-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-44-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-45-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-45-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-45-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-46-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-46-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-46-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-47-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-47-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-47-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-48-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-48-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-48-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-49-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-49-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-49-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-5-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-5-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-5-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,475 @@
+<?xml version="1.0"?>
+<XMLDATA>
+<RUNDATE>Wed Apr  4 23:00:55 2001 GMT</RUNDATE>
+<GROUP type="PRODUCT" name="Apple">
+<GROUP type="ACTION" name="PICK">
+<GROUP type="REC" name="Non-Recurring">
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Apple</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Birch</SEGMENT>
+<PREV>0</PREV>
+<AREV>50</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+<GROUP type="ACTION" name="EAT">
+<GROUP type="REC" name="Non-Recurring">
+<ROW>
+<NUM>6</NUM>
+<PRODUCT>Apple</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>0</PREV>
+<AREV>0</AREV>
+<ACTION>EAT</ACTION>
+</ROW>
+<ROW>
+<NUM>60</NUM>
+<PRODUCT>Apple</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Elm</SEGMENT>
+<PREV>0</PREV>
+<AREV>0</AREV>
+<ACTION>EAT</ACTION>
+</ROW>
+<ROW>
+<NUM>2</NUM>
+<PRODUCT>Apple</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Birch</SEGMENT>
+<PREV>0</PREV>
+<AREV>0</AREV>
+<ACTION>EAT</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+<GROUP type="ACTION" name="SQUEEZE">
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>7</NUM>
+<PRODUCT>Apple</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>19250</PREV>
+<AREV>16.61</AREV>
+<ACTION>SQUEEZE</ACTION>
+</ROW>
+<ROW>
+<NUM>96</NUM>
+<PRODUCT>Apple</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Elm</SEGMENT>
+<PREV>220000</PREV>
+<AREV>11.76</AREV>
+<ACTION>SQUEEZE</ACTION>
+</ROW>
+<ROW>
+<NUM>6</NUM>
+<PRODUCT>Apple</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Birch</SEGMENT>
+<PREV>16500</PREV>
+<AREV>7.16</AREV>
+<ACTION>SQUEEZE</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+</GROUP>
+<GROUP type="PRODUCT" name="Orange">
+<GROUP type="ACTION" name="PICK">
+<GROUP type="REC" name="Non-Recurring">
+<ROW>
+<NUM>34</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>0</PREV>
+<AREV>1420</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Almond</SEGMENT>
+<PREV>0</PREV>
+<AREV>25</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+<ROW>
+<NUM>8</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Birch</SEGMENT>
+<PREV>0</PREV>
+<AREV>300</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+<ROW>
+<NUM>186</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Elm</SEGMENT>
+<PREV>0</PREV>
+<AREV>6555</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+</GROUP>
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>36</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>171000</PREV>
+<AREV>221.3</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+<ROW>
+<NUM>240</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Elm</SEGMENT>
+<PREV>950000</PREV>
+<AREV>1412.34</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+<ROW>
+<NUM>8</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Birch</SEGMENT>
+<PREV>38000</PREV>
+<AREV>30.84</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+<GROUP type="ACTION" name="EAT">
+<GROUP type="REC" name="Non-Recurring">
+<ROW>
+<NUM>34</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>0</PREV>
+<AREV>0</AREV>
+<ACTION>EAT</ACTION>
+</ROW>
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Almond</SEGMENT>
+<PREV>0</PREV>
+<AREV>0</AREV>
+<ACTION>EAT</ACTION>
+</ROW>
+<ROW>
+<NUM>62</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Elm</SEGMENT>
+<PREV>0</PREV>
+<AREV>0</AREV>
+<ACTION>EAT</ACTION>
+</ROW>
+<ROW>
+<NUM>4</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Birch</SEGMENT>
+<PREV>0</PREV>
+<AREV>0</AREV>
+<ACTION>EAT</ACTION>
+</ROW>
+</GROUP>
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>8</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Birch</SEGMENT>
+<PREV>0</PREV>
+<AREV>0</AREV>
+<ACTION>EAT</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+<GROUP type="ACTION" name="SQUEEZE">
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>36</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>171000</PREV>
+<AREV>221.3</AREV>
+<ACTION>SQUEEZE</ACTION>
+</ROW>
+<ROW>
+<NUM>80</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Elm</SEGMENT>
+<PREV>380000</PREV>
+<AREV>470.78</AREV>
+<ACTION>SQUEEZE</ACTION>
+</ROW>
+<ROW>
+<NUM>4</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Birch</SEGMENT>
+<PREV>19000</PREV>
+<AREV>15.42</AREV>
+<ACTION>SQUEEZE</ACTION>
+</ROW>
+<ROW>
+<NUM>3</NUM>
+<PRODUCT>Orange</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Almond</SEGMENT>
+<PREV>14250</PREV>
+<AREV>23.25</AREV>
+<ACTION>SQUEEZE</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+</GROUP>
+<GROUP type="PRODUCT" name="Banana">
+<GROUP type="ACTION" name="PICK">
+<GROUP type="REC" name="Non-Recurring">
+<ROW>
+<NUM>2</NUM>
+<PRODUCT>Banana</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Elm</SEGMENT>
+<PREV>0</PREV>
+<AREV>100</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+</GROUP>
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Banana</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>12250</PREV>
+<AREV>12.25</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+<ROW>
+<NUM>6</NUM>
+<PRODUCT>Banana</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Elm</SEGMENT>
+<PREV>73500</PREV>
+<AREV>78.4</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Banana</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Almond</SEGMENT>
+<PREV>12250</PREV>
+<AREV>12.25</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+<GROUP type="ACTION" name="EAT">
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Banana</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Almond</SEGMENT>
+<PREV>12250</PREV>
+<AREV>0</AREV>
+<ACTION>EAT</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+</GROUP>
+<GROUP type="PRODUCT" name="Nectarine">
+<GROUP type="ACTION" name="SQUEEZE">
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Nectarine</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>5950</PREV>
+<AREV>-5.95</AREV>
+<ACTION>SQUEEZE</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+</GROUP>
+<GROUP type="PRODUCT" name="Pineapple">
+<GROUP type="ACTION" name="PICK">
+<GROUP type="REC" name="Non-Recurring">
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Pineapple</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>0</PREV>
+<AREV>50</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+</GROUP>
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>2</NUM>
+<PRODUCT>Pineapple</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>17500</PREV>
+<AREV>8.75</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Pineapple</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Birch</SEGMENT>
+<PREV>6250</PREV>
+<AREV>10</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+<GROUP type="ACTION" name="EAT">
+<GROUP type="REC" name="Non-Recurring">
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Pineapple</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Elm</SEGMENT>
+<PREV>0</PREV>
+<AREV>0</AREV>
+<ACTION>EAT</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+<GROUP type="ACTION" name="SQUEEZE">
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>2</NUM>
+<PRODUCT>Pineapple</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Elm</SEGMENT>
+<PREV>12500</PREV>
+<AREV>4.38</AREV>
+<ACTION>SQUEEZE</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+</GROUP>
+<GROUP type="PRODUCT" name="Coconut">
+<GROUP type="ACTION" name="PICK">
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Coconut</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Elm</SEGMENT>
+<PREV>13750</PREV>
+<AREV>17.87</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+</GROUP>
+<GROUP type="PRODUCT" name="Guava">
+<GROUP type="ACTION" name="SQUEEZE">
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Guava</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>14995</PREV>
+<AREV>-19.49</AREV>
+<ACTION>SQUEEZE</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+</GROUP>
+<GROUP type="PRODUCT" name="Pear">
+<GROUP type="ACTION" name="PICK">
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Pear</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Pine</SEGMENT>
+<PREV>29995</PREV>
+<AREV>38.99</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+</GROUP>
+<GROUP type="PRODUCT" name="Raisin">
+<GROUP type="ACTION" name="EAT">
+<GROUP type="REC" name="Non-Recurring">
+<ROW>
+<NUM>17</NUM>
+<PRODUCT>Raisin</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Oak</SEGMENT>
+<PREV>0</PREV>
+<AREV>0</AREV>
+<ACTION>EAT</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+<GROUP type="ACTION" name="SQUEEZE">
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>15</NUM>
+<PRODUCT>Raisin</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Oak</SEGMENT>
+<PREV>299925</PREV>
+<AREV>227.95</AREV>
+<ACTION>SQUEEZE</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+</GROUP>
+<GROUP type="PRODUCT" name="Fig">
+<GROUP type="ACTION" name="PICK">
+<GROUP type="REC" name="Non-Recurring">
+<ROW>
+<NUM>1</NUM>
+<PRODUCT>Fig</PRODUCT>
+<REC>Non-Recurring</REC>
+<SEGMENT>Oak</SEGMENT>
+<PREV>0</PREV>
+<AREV>50</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+</GROUP>
+<GROUP type="REC" name="Recurring">
+<ROW>
+<NUM>2</NUM>
+<PRODUCT>Fig</PRODUCT>
+<REC>Recurring</REC>
+<SEGMENT>Oak</SEGMENT>
+<PREV>74990</PREV>
+<AREV>86.24</AREV>
+<ACTION>PICK</ACTION>
+</ROW>
+</GROUP>
+</GROUP>
+</GROUP>
+</XMLDATA>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-50-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-50-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-50-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<tst xmlns="http://example.org/">
+     <doc>Failed</doc>
+</tst>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-52.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-52.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-52.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<!DOCTYPE doc [
+<!NOTATION GIF PUBLIC "GIF">
+<!ENTITY graphic SYSTEM "graphic.gif" NDATA GIF>
+<!ELEMENT doc (img)>
+<!ELEMENT img EMPTY>
+<!ATTLIST img
+	entref	ENTITY	#REQUIRED
+>
+]>
+<doc>
+<img entref="graphic"/>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-53.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-53.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-53.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<!DOCTYPE doc [
+<!ELEMENT doc EMPTY>
+<!ATTLIST doc
+   defatt (SUCCESS|FAILURE) "SUCCESS">
+]>
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-54.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-54.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-54.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<all>
+<one xmlns="http://www.test1.com">1</one>
+<two xmlns="http://www.test2.com">2</two>
+</all>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-55.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-55.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-55.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<foo/>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-56.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-56.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-56.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-57.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-57.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-57.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<form>
+<field name='description'>
+<prompt>Description </prompt>
+<initialvalue>test</initialvalue>
+</field>
+</form>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-59.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-59.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-59.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<foo attribute="B&#38;B"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-6-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-6-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-6-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+
+<document xmlns="http://my/namespace">
+  <name>Title of my document</name>
+</document>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-60.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-60.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-60.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-61.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-61.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-61.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-62.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-62.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-62.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-63.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-63.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-63.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="*">
+<xsl:for-each select="namespace::*">
+<namespace>
+<name><xsl:value-of select="name()"/></name>
+<uri><xsl:value-of select="."/></uri>
+<parent><xsl:copy-of select=".."/></parent>
+</namespace>
+</xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-64.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-64.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-64.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-65.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-65.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-65.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<eins>
+<content>content of one</content>
+</eins>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-66.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-66.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-66.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<test>
+<tr><td>pat</td>
+</tr>
+<tr><td>pat</td>
+</tr>
+</test>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-68.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-68.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-68.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-69.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-69.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-69.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<problème>Failure</problème>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-7-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-7-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-7-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+
+<aaa xmlns:bbb="test:7" bbb:ddd="ccc" eee="fff"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-70.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-70.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-70.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<div id="div111" href="div111href">
+<div id="div222" href="div222href" >
+<obj id="obj333" href="obj333href" ></obj>
+</div>
+<link linkend="div111"/>
+<link linkend="div222"/>
+<link linkend="obj333"/>
+</div>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-71.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-71.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-71.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<address id='foo'/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-72.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-72.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-72.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<message/>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-73.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-73.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-73.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<body>
+  <p>The first paragraph.</p>
+  <p>The <em>second</em> paragraph.</p>
+</body>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-74.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-74.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-74.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<TestNode testattr="gnome
+ linux"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-75.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-75.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-75.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-76.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-76.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-76.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<doc>
+<child1/>
+<child2/>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-77.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-77.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-77.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<foo>
+<bar  id="Wowie" xml:lang="en">Hi</bar>
+<bar id="Zowie" xml:lang="fr">bonjour</bar>
+</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-78.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-78.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-78.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<userView>
+  <navigation>
+    <category name="europe" id="91">
+      tototo
+    </category>
+  </navigation>
+</userView>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-79.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-79.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-79.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<doc>
+<item mode="enabled"/>
+<item mode="disabled"/>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-8-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-8-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-8-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version= "1.0"?>
+<document xmlns="http://my/namespace">
+  <item>Success</item>
+</document>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-80.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-80.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-80.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<!-- edited with XML Spy v4.3 (http://www.xmlspy.com) by Nick Efthymiou (Charles Schwab & Co, Inc.) -->
+<?xml-stylesheet type="text/xsl" href="D:\pub\xsl-xsltXpath\ResultTreeTests\ResultTree005.xsl"?>
+<doc>
+	<foo>a</foo>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-81.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-81.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-81.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<tree>
+        <a>
+                <value>3.14</value>
+        </a>
+        <b>
+                <value>2</value>
+        </b>
+        <c>
+                <value>0.5</value>
+        </c>
+</tree>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-82.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-82.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-82.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<root>
+  <child>      <p>Thar be whitespace!</p>     </child>
+  <child xmlns="http://example.com/ns">     <p>Thar be whitespace!</p>      </child>
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-83.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-83.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-83.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-84.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-84.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-84.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+
+<XML_DATA>
+<chapter>First Chapter</chapter>
+
+<chapter>Second Chapter
+<chapter>Subchapter 1</chapter>
+<chapter>Subchapter 2</chapter>
+</chapter>
+
+<chapter>Third Chapter
+<chapter>Subchapter A</chapter>
+
+<chapter>Subchapter B
+<chapter>sub a</chapter>
+<chapter>sub b</chapter>
+</chapter>
+
+<chapter>Subchapter C</chapter>
+</chapter>
+</XML_DATA>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-86.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-86.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-86.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+   xmlns:vdv="http://eric.van-der-vlist.com/tmpns" version="1.0">
+ <xsl:template match="/">
+  <xsl:copy-of select="document('')/xsl:transform"/>
+ </xsl:template>
+</xsl:transform>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-87.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-87.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-87.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<XML_DATA>
+<AAA xmlns:fish="tuna"/>
+<CCC/>
+</XML_DATA>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-88.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-88.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-88.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-89.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-89.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-89.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<todo>
+<domain id="id2588147" add="task" del="domain">
+<name id="id2588150" replace="PCDATA">job</name>
+<task id="id2588154" replace="PCDATA" add="task">to this</task>
+<task id="id2589156" replace="PCDATA" add="task">undefined</task>
+</domain>
+<domain id="id2588996" add="task" del="domain">
+<name id="id2588515" replace="PCDATA">courses</name>
+<task id="id2588931" replace="PCDATA" add="task">undefined</task>
+</domain>
+</todo>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-9-.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-9-.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-9-.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version= "1.0"?>
+<doc/>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-90.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-90.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-90.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!-- 
+============================================================
+This is the input XML
+============================================================
+ -->
+<fruit-sites>
+  <fruit type="apples">
+    <site><![CDATA[http://www.apples.com/site?args&stuff]]>
+    </site>
+  </fruit>
+  <fruit type="pears">
+    <site>http://www.pears.com/index.html</site>
+  </fruit>
+</fruit-sites>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-91.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-91.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-91.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<beitrag>
+  &lt;b&gt;This is HTML&lt;/b&gt;
+</beitrag>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-92.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-92.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-92.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
+
+  <xsl:output method="xml" indent="yes" version="1.0"/>
+
+  <xsl:template match="node()">
+    <xsl:element name="toto">
+      <xsl:attribute name="n">
+        <xsl:value-of select="name()"/>
+      </xsl:attribute>
+      <xsl:apply-templates/>
+    </xsl:element>
+  </xsl:template>
+
+
+  <xsl:template match="text()"/>
+  <xsl:template match="comment()"/>
+  <xsl:template match="processing-instruction()"/>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-93.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-93.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-93.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<foo/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-94.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-94.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-94.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<source>
+
+<number>1</number>
+<number>3</number>
+<number>4</number>
+<number>17</number>
+<number>8</number>
+
+</source> 

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-95.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-95.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-95.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Kapital>
+	<Vklad><Kc>1234567890.12</Kc></Vklad>
+</Kapital>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-96.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-96.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-96.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<operators>
+  <compare><![CDATA[X < Y]]></compare>
+  <compare>X &lt; Y</compare>
+</operators>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-97.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-97.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-97.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<car:cars xmlns:car="http://www.example.com/xmlns/car"
+          xmlns:m="http://www.example.com/xmlns/manufacturer">
+  <car:models>
+    <car:model car:name="Rabbit" m:id="VW" car:year="1984" />
+    <car:model car:name="Tundra" m:id="TY" car:year="2000" />
+    <car:model car:name="Mini" m:id="BM" car:year="2003" />
+  </car:models>
+  <m:manufacturers>
+    <m:manufacturer m:id="VW" m:name="Volkswagen" m:country="Germany" />
+    <m:manufacturer m:id="TY" m:name="Toyota" m:country="Japan" />
+    <m:manufacturer m:id="BM" m:name="Bavarian Motor Works" 
+m:country="Germany"/>
+  </m:manufacturers>
+</car:cars>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-98.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-98.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-98.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<root>
+  <list type="one"/>
+  <list type="two"/>
+  <entries>
+    <entry cat1="a" cat2="a" qty="1"/>
+    <entry cat1="a" cat2="b" qty="2"/>
+    <entry cat1="b" cat2="b" qty="3"/>
+  </entries>
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-99.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-99.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/bug-99.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/character.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/character.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/character.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<character>
+  <skills>
+    <skill name="Balance" base="dex" ranks="2" total="5" mod="3"/>
+    <skill name="Bluff" base="cha" ranks="3" total="4" mod="1"/>
+    <skill name="Climb" base="str" ranks="6" total="5" mod="-1"/>
+    <skill name="Diplomacy" base="cha" ranks="2" total="3" mod="1"/>
+    <skill name="Escape artist" base="dex" ranks="2" total="5" mod="3"/>
+    <skill name="Gather info" base="cha" ranks="2" total="3" mod="1"/>
+    <skill name="Hide" base="dex" ranks="2" total="5" mod="3"/>
+    <skill name="Jump" base="str" ranks="4" total="3" mod="-1"/>
+    <skill name="Listen" base="wis" ranks="2" total="3" mod="1"/>
+    <skill name="Move silently" base="dex" ranks="2" total="5" mod="3"/>
+    <skill name="Perform" base="cha" ranks="4" total="5" mod="1"/>
+    <skill name="Ride" base="dex" ranks="4" total="7" mod="3"/>
+    <skill name="Search" base="int" ranks="2" total="3" mod="1"/>
+    <skill name="Sense motive" base="wis" ranks="2" total="3" mod="1"/>
+    <skill name="Spot" base="wis" ranks="2" total="3" mod="1"/>
+    <skill name="Swim" base="str" ranks="4" total="3" mod="-1"/>
+    <skill name="Tumble" base="dex" ranks="3" total="6" mod="3"/>
+    <skill name="Use rope" base="dex" ranks="2" total="5" mod="3"/>
+  </skills>
+</character>

Added: packages/libxslt/branches/upstream/1.1.16/tests/docs/items.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/docs/items.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/docs/items.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,34 @@
+<doc>
+    <orderedlist>
+      <listitem>listitem1</listitem>
+      <listitem>listitem2</listitem>
+      <listitem>listitem3</listitem>
+      <listitem>listitem4</listitem>
+      <listitem>listitem5</listitem>
+      <listitem>listitem6</listitem>
+      <listitem>
+	<orderedlist>
+	  <listitem>
+	    <orderedlist>
+	      <listitem>
+	      </listitem>
+	      <listitem>listitem7.1.2</listitem>
+	      <listitem>listitem7.1.3</listitem>
+	      <listitem>listitem7.1.4</listitem>
+	      <listitem>listitem7.1.5</listitem>
+	      <listitem>listitem7.1.6</listitem>
+	      <listitem>
+	      </listitem>
+	    </orderedlist>
+	  </listitem>
+	  <listitem>listitem7.2</listitem>
+	  <listitem>listitem7.3</listitem>
+	  <listitem>listitem7.4</listitem>
+	  <listitem>listitem7.5</listitem>
+	  <listitem>listitem7.6</listitem>
+	  <listitem>
+	  </listitem>
+	</orderedlist>
+      </listitem>
+    </orderedlist>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,43 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = \
+    bredfort.css bredfort.xsl doc_file.xml docfile.xml \
+    fragment2.xml fragment.result fragment.xml fragment.xsl \
+    index.xml menu.xml message.result message.xml message.xsl \
+    result.xhtml system.xml test_bad.err test_bad.result \
+    test_bad.xml test.result test.xml test.xsl worklog.xml
+
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/bredfort.xsl $(srcdir)/index.xml > result ; \
+	diff $(srcdir)/result.xhtml result; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f result)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/test.xsl $(srcdir)/test.xml > result ; \
+	diff $(srcdir)/test.result result; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f result)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/test.xsl $(srcdir)/test_bad.xml > result 2>err ; \
+	diff $(srcdir)/test_bad.result result; \
+	diff $(srcdir)/test_bad.err err; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f result err)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/message.xsl $(srcdir)/message.xml > result 2>&1 ; \
+	diff $(srcdir)/message.result result; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f result)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/fragment.xsl $(srcdir)/fragment.xml > result 2>&1 ; \
+	diff $(srcdir)/fragment.result result; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f result)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,409 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/documents
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+    bredfort.css bredfort.xsl doc_file.xml docfile.xml \
+    fragment2.xml fragment.result fragment.xml fragment.xsl \
+    index.xml menu.xml message.result message.xml message.xsl \
+    result.xhtml system.xml test_bad.err test_bad.result \
+    test_bad.xml test.result test.xml test.xsl worklog.xml
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/documents/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/documents/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/bredfort.xsl $(srcdir)/index.xml > result ; \
+	diff $(srcdir)/result.xhtml result; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f result)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/test.xsl $(srcdir)/test.xml > result ; \
+	diff $(srcdir)/test.result result; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f result)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/test.xsl $(srcdir)/test_bad.xml > result 2>err ; \
+	diff $(srcdir)/test_bad.result result; \
+	diff $(srcdir)/test_bad.err err; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f result err)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/message.xsl $(srcdir)/message.xml > result 2>&1 ; \
+	diff $(srcdir)/message.result result; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f result)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/fragment.xsl $(srcdir)/fragment.xml > result 2>&1 ; \
+	diff $(srcdir)/fragment.result result; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f result)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/bredfort.css
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/bredfort.css	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/bredfort.css	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,53 @@
+p.who {
+	font-size: small;
+	text-align: right;
+}
+
+hr.thin {
+	height: 1px;
+}
+
+table.progress {
+	border-spacing: 0px;
+	border-collapse: collapse;
+	text-align: center;
+	border-style: solid;
+	border-width: 1px;
+	border-bottom: hidden;
+
+}
+
+td:first-child.progress {
+	border-spacing: 0px;
+	border-style: solid;
+	border-right: hidden;
+	border-left: hidden;
+	border-width: 1px;
+}
+
+td.progress {
+	border-spacing: 0px;
+	border-style: solid;
+	border-right: hidden;
+	border-width: 1px;
+}
+
+th:first-child.progress {
+	border-spacing: 0px;
+	border-style: solid;
+	border-right: hidden;
+	border-left: hidden;
+	border-top: hidden;
+	border-width: 1px;
+	border-bottom: solid 2px;
+}
+
+th.progress {
+	border-spacing: 0px;
+	border-style: solid;
+	border-right: hidden;
+	border-width: 1px;
+	border-top: hidden;
+	border-bottom: solid 2px;
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/bredfort.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/bredfort.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/bredfort.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+<xsl:output encoding="iso-8859-1" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="DTD/xhtml1-strict.dtd"/>
+<xsl:template match="page">
+<html xml:lang="en" lang="en">
+<head>
+<title>
+	<xsl:value-of select="@title"/>
+</title>
+<link rel="stylesheet" href="bredfort.css" type="text/css" title="bredfort"/>
+</head>
+<body>
+<xsl:apply-templates select="document('menu.xml')"/>
+<h1>
+	<xsl:value-of select="@title"/>
+</h1>
+<xsl:apply-templates/>
+</body>
+</html>
+</xsl:template>
+
+<xsl:template match="h2">
+<h2>
+	<xsl:apply-templates/>
+</h2>
+</xsl:template>
+
+<xsl:template match="menu">
+<table class="menu">
+<tr>
+<xsl:apply-templates/>
+</tr>
+</table>
+</xsl:template>
+
+<xsl:template match="menuitem">
+<td class="menu">
+	<a><xsl:attribute name="href">
+		<xsl:value-of select="@href"/>
+	</xsl:attribute>
+	<xsl:apply-templates/>
+	</a>
+</td>
+</xsl:template>
+
+<xsl:template match="week">
+<hr class="thin"/>
+<h2>Week <xsl:value-of select="@num"/></h2>
+<xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="what">
+<xsl:apply-templates/>
+<p class="who">
+	<xsl:value-of select="@who"/>
+</p>
+</xsl:template>
+
+
+<xsl:template match="p">
+<p> <xsl:apply-templates/> </p>
+</xsl:template>
+
+<xsl:template match="a">
+<a><xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute>
+	<xsl:apply-templates/> </a>
+</xsl:template>
+
+
+<xsl:template match="st">
+<td class="progress"><xsl:apply-templates/>%</td>
+</xsl:template>
+
+
+<xsl:template match="progresstable">
+<table border="2" class="progress">
+<tr>
+	<th class="progress">Week</th>
+	<th class="progress">Sys. des.</th>
+	<th class="progress">Test des.</th>
+	<th class="progress">Sales cli.</th>
+	<th class="progress">Adm. cli.</th>
+	<th class="progress">Proxy</th>
+	<th class="progress">Sale serv.</th>
+	<th class="progress">Fac. serv.</th>
+	<th class="progress">Comp. test</th>
+	<th class="progress">Func. test</th>
+	<th class="progress">Syst. test</th>
+</tr>
+<xsl:apply-templates select="progress"/>
+</table>
+</xsl:template>
+
+
+
+<xsl:template match="progress">
+<tr> 
+<td class="progress"><xsl:value-of select="@week"/></td>
+<xsl:apply-templates/> 
+</tr>
+</xsl:template>
+
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/doc_file.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/doc_file.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/doc_file.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<tag1>It work's</tag1>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/docfile.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/docfile.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/docfile.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<tag1>It work's</tag1>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.result
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.result	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.result	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc><p>hello</p></doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		version="1.0">
+
+<xsl:template match="/">
+  <doc>
+    <xsl:copy-of select="document('fragment2.xml#xpointer(//p[1])')"/>
+  </doc>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/fragment2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<test><doc><p>hello</p>
+<title>foo</title>
+<p>goodbye</p></doc></test>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/index.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/index.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/index.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<page title="Home">
+	<h2>Bredfort</h2>
+	Bredfort is: stric, nikke and janlert.
+
+	<h2>Tokband</h2>
+	Tokband is the software we're developing.
+	
+	<h2>Worklog</h2>
+	Our worklog is <a href="worklog.html">here</a>.
+</page>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/menu.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/menu.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/menu.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<menu>
+	<menuitem href="index.html">Home</menuitem>
+	<menuitem href="worklog.html">Worklog</menuitem>
+	<menuitem href="system.html">System spec</menuitem>
+</menu>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/message.result
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/message.result	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/message.result	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+A simple message
+A fatal message

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/message.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/message.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/message.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<root>
+  <node>Node 1</node>
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/message.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/message.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/message.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="xml"
+	    encoding="iso-8859-1"
+	    indent="yes"/>
+
+<xsl:template match="/">
+  <xsl:message terminate="no">A simple message</xsl:message>
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="root|node">
+  <xsl:message terminate="yes">A fatal message</xsl:message>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/result.xhtml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/result.xhtml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/result.xhtml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Home</title><link rel="stylesheet" href="bredfort.css" type="text/css" title="bredfort" /></head><body><table class="menu"><tr>
+	<td class="menu"><a href="index.html">Home</a></td>
+	<td class="menu"><a href="worklog.html">Worklog</a></td>
+	<td class="menu"><a href="system.html">System spec</a></td>
+</tr></table><h1>Home</h1>
+	<h2>Bredfort</h2>
+	Bredfort is: stric, nikke and janlert.
+
+	<h2>Tokband</h2>
+	Tokband is the software we're developing.
+	
+	<h2>Worklog</h2>
+	Our worklog is <a href="worklog.html">here</a>.
+</body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/system.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/system.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/system.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<page title="System spec">
+<h2>Dotcom</h2>
+<p>
+Dotcom is our factories, producing top-of-the-line high quality tokbands
+(although we're not really sure yet what a tokband is).
+</p>
+
+<h2>Amazon</h2>
+<p>
+Amazon is our sales server, responsible for the transactions and interfacing
+with our factories.
+</p>
+
+<h2>Meister</h2>
+<p> Meister is our own webserver, running <a
+href="http://www.php.net">PHP</a>-scripts and serving static pages for our
+dear customers.  </p>
+
+<h2>Red Chief</h2>
+<p> Red Chief is our proxy, responsible for keeping  control of our network and
+keeping our internal network safe from bad and evil stuff.  </p>
+
+
+<h2>System specification</h2>
+<p>
+A more detailed system specification is available as pdf <a href="sysspec-1.pdf">here</a>.
+</p>
+
+</page>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/test.result
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/test.result	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/test.result	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+
+It work's
+It work's

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/test.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/test.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/test.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<files>
+<file name="docfile.xml"/>
+<file name="doc%5Ffile.xml"/>
+</files>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/test.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/test.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/test.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet
+         xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+         version="1.0">
+<xsl:output method="text" encoding="iso-8859-1"/>
+
+<xsl:template match="/files/file">
+    <xsl:variable name="file" select="document(@name)"/>
+        <xsl:if test="not($file)">
+        <xsl:text>Can't Open File: </xsl:text>
+        <xsl:value-of select="@name"/>
+    </xsl:if>
+    <xsl:value-of select="$file/tag1"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.err
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.err	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.err	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+warning: failed to load external entity "foofile.xml"
+warning: failed to load external entity "foo_file.xml"

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.result
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.result	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.result	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+
+Can't Open File: foofile.xml
+Can't Open File: foo%5Ffile.xml

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/test_bad.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<files>
+<file name="foofile.xml"/>
+<file name="foo%5Ffile.xml"/>
+</files>

Added: packages/libxslt/branches/upstream/1.1.16/tests/documents/worklog.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/documents/worklog.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/documents/worklog.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<page title="Worklog - what we've done so far">
+
+<progresstable>
+<progress week="4,5">
+<!-- Sys. des    Test des.   Sälj cli.   Adm. cli.   Proxy -->
+ <st> 95</st><st>  5</st><st>  0</st><st>  0</st><st>  0</st>
+<!--        Sale serv.  Fab. serv.  Komp. test  Funk. text  Syst. test -->
+	<st>  5</st><st> 90</st><st>  0</st><st>  0</st><st>  0</st>
+</progress>
+<progress week="6">
+ <st>100</st><st>  5</st><st>  0</st><st>  0</st><st>  1</st>
+	<st>  5</st><st>90</st><st>  0</st><st>  0</st><st>  0</st>
+</progress>
+</progresstable>
+
+<week num="4, 5">
+ <what who="janlert, nikke, stric">
+ <p> We do some planing, resulting in a System specification.</p>
+ </what>
+
+ <what who="janlert, nikke, stric">
+ <p>
+ Waiting for the review of the system specification there's not much we can do.
+ we look into the different specifications and libraries we will use (
+ <a href="http://www.corba.org">CORBA</a>,
+ <a href="http://www.w3c.org/XML">XML</a>, 
+ <a href="http://www.netscape.com/eng/ssl3/">SSL</a> etc).
+ </p>
+ </what>
+
+ <what who="janlert">
+ <p> Work is done on <a href="system.html">dotcom</a>, resulting in a mostly
+ working factory. Big fights with <a href="http://java.sun.com">java</a> to get
+ <a href="http://www.corba.org">CORBA</a> working ends up with a (temporary)
+ switch to <a href="http://www.pythong.org">python</a> for the <a
+ href="http://www.corba.org">CORBA</a> client part.
+ </p>
+ </what>
+
+ <what who="janlert">
+ <p>This web-page is set up (at least a first version).</p>
+ </what>
+</week>
+
+<week num="6">
+ <what who="janlert, nikke, stric">
+ <p>We got our design approved, and did some planning for a couple of hours,
+ we now have everything pretty much nailed down.</p>
+ </what>
+ <what who="stric">
+ <p>Some SSL work.</p>
+ </what>
+</week>
+
+<!--
+<week num="">
+<what who="">
+<p></p>
+</what>
+</week>
+-->
+
+</page>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+## Process this file with automake to produce Makefile.in
+
+SUBDIRS=common functions math sets strings dynamic date
+
+all:
+
+test tests:
+	@(cur=`pwd` ; for dir in $(SUBDIRS) ; do cd $$dir ; $(MAKE) CHECKER='$(CHECKER)' tests ; cd $$cur ; done)
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,536 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/exslt
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-exec-recursive install-info-recursive \
+	install-recursive installcheck-recursive installdirs-recursive \
+	pdf-recursive ps-recursive uninstall-info-recursive \
+	uninstall-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+SUBDIRS = common functions math sets strings dynamic date
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/exslt/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/exslt/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(mkdir_p) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+	distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
+	clean clean-generic clean-libtool clean-recursive ctags \
+	ctags-recursive distclean distclean-generic distclean-libtool \
+	distclean-recursive distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-exec install-exec-am install-info \
+	install-info-am install-man install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic maintainer-clean-recursive \
+	mostlyclean mostlyclean-generic mostlyclean-libtool \
+	mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
+	uninstall uninstall-am uninstall-info-am
+
+
+all:
+
+test tests:
+	@(cur=`pwd` ; for dir in $(SUBDIRS) ; do cd $$dir ; $(MAKE) CHECKER='$(CHECKER)' tests ; cd $$cur ; done)
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,56 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = 						\
+	node-set.1.xml node-set.1.xsl node-set.1.out	\
+	node-set.2.xml node-set.2.xsl node-set.2.out	\
+	node-set.3.xml node-set.3.xsl node-set.3.out	\
+	node-set.4.xml node-set.4.xsl node-set.4.out	\
+	node-set.5.xml node-set.5.xsl node-set.5.out	\
+	node-set.6.xml node-set.6.xsl node-set.6.out	\
+	node-set.7.xml node-set.7.xsl node-set.7.out	\
+	node-set.8.xml node-set.8.xsl node-set.8.out	\
+	object-type.1.xml object-type.1.xsl object-type.1.out \
+	import-test1a.imp import-test1b.imp import-test1.out \
+	import-test1.xml import-test1.xsl
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt common tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad; \
+	  done)

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,424 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/exslt/common
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+	node-set.1.xml node-set.1.xsl node-set.1.out	\
+	node-set.2.xml node-set.2.xsl node-set.2.out	\
+	node-set.3.xml node-set.3.xsl node-set.3.out	\
+	node-set.4.xml node-set.4.xsl node-set.4.out	\
+	node-set.5.xml node-set.5.xsl node-set.5.out	\
+	node-set.6.xml node-set.6.xsl node-set.6.out	\
+	node-set.7.xml node-set.7.xsl node-set.7.out	\
+	node-set.8.xml node-set.8.xsl node-set.8.out	\
+	object-type.1.xml object-type.1.xsl object-type.1.out \
+	import-test1a.imp import-test1b.imp import-test1.out \
+	import-test1.xml import-test1.xsl
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/exslt/common/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/exslt/common/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt common tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad; \
+	  done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+
+Func f1 at top level
+Func f2 in module 1a
+Func f3 in module 1b

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?> 
+
+<doc>
+
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<!--
+  Elememtary test for imported exslt stylesheets.  This was composed for
+  checking on bug 114812.  test-import1.xsl imports test-import1a.imp
+  which in turn imports test-import1b.imp.  If successful, f1() should
+  come from this stylesheet, f2() should come from test-import1a.imp,
+  and f3() should come from test-import1b.imp.
+-->
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:exsl="http://exslt.org/common"
+    xmlns:func="http://exslt.org/functions"
+        extension-element-prefixes="exsl func"
+        exclude-result-prefixes="exsl func my"
+    xmlns:my="my://own.uri"
+>
+
+<xsl:import href="import-test1a.imp"/>
+
+<func:function name="my:f1">
+<func:result>
+Func f1 at top level</func:result>
+</func:function>
+
+<xsl:template match="/">
+    <xsl:value-of select="my:f1()"/>
+    <xsl:value-of select="my:f2()"/>
+    <xsl:value-of select="my:f3()"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1a.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1a.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1a.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:exsl="http://exslt.org/common"
+    xmlns:func="http://exslt.org/functions"
+        extension-element-prefixes="exsl func"
+        exclude-result-prefixes="exsl func my"
+    xmlns:my="my://own.uri"
+>
+
+<xsl:import href="import-test1b.imp"/>
+
+<func:function name="my:f1">
+<func:result>
+Func f1 in module 1a</func:result>
+</func:function>
+
+<func:function name="my:f2">
+<func:result>
+Func f2 in module 1a</func:result>
+</func:function>
+
+<xsl:template match="/">
+    <xsl:copy-of select="my:f1()"/>
+    <xsl:copy-of select="my:f2()"/>
+    <xsl:copy-of select="my:f3()"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1b.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1b.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/import-test1b.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:exsl="http://exslt.org/common"
+    xmlns:func="http://exslt.org/functions"
+        extension-element-prefixes="exsl func"
+        exclude-result-prefixes="exsl func my"
+    xmlns:my="my://own.uri"
+>
+
+<func:function name="my:f2">
+<func:result>
+Func f2 in module 1b</func:result>
+</func:function>
+
+<func:function name="my:f3">
+<func:result>
+Func f3 in module 1b</func:result>
+</func:function>
+
+<xsl:template match="/">
+    <xsl:copy-of select="my:f2()"/>
+    <xsl:copy-of select="my:f3()"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<out xmlns:exslt="http://exslt.org/common">5</out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?> 
+
+<doc>
+<one/><two/><three/><four/>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:exslt="http://exslt.org/common" >
+
+<!-- Test exslt:node-set applied to a node-set -->
+
+<xsl:variable name="tree">
+<a><b><c><d/></c></b></a>
+</xsl:variable>
+
+<xsl:template match="/">
+  <out>
+    <xsl:value-of select="count(exslt:node-set(//*))"/>
+  </out>
+</xsl:template>
+ 
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<out xmlns:exslt="http://exslt.org/common">4</out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?> 
+
+<doc>
+
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:exslt="http://exslt.org/common" >
+
+<!-- Test exslt:node-set applied to a result tree fragment -->
+
+<xsl:variable name="tree">
+<a><b><c><d/></c></b></a>
+</xsl:variable>
+
+<xsl:template match="/">
+  <out>
+    <xsl:value-of select="count(exslt:node-set($tree)//*)"/>
+  </out>
+</xsl:template>
+ 
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<out>;
+  test;
+  5;
+  true;
+</out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?> 
+
+<doc>
+
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:exslt="http://exslt.org/common"
+    exclude-result-prefixes="exslt">
+
+<xsl:template match="/">
+<out>;
+  <xsl:copy-of select="exslt:node-set('test')"/>;
+  <xsl:copy-of select="exslt:node-set(5)"/>;
+  <xsl:copy-of select="exslt:node-set(true())"/>;
+</out>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<initial>Mode of FOO is input</initial><post-transform>Mode of FOO is fiddled</post-transform>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                version="1.0">
+
+<xsl:key name="tmpls" match="xsl:template" use="@name"/>
+
+<xsl:template match="/">
+  <xsl:message>
+    <xsl:text>Mode of FOO is </xsl:text>
+    <xsl:value-of select="key('tmpls', 'FOO')/@mode"/>
+  </xsl:message>
+
+  <xsl:variable name="fiddle">
+    <xsl:apply-templates select="//xsl:template"/>
+  </xsl:variable>
+
+  <xsl:apply-templates select="exsl:node-set($fiddle)" mode="faddle"/>
+</xsl:template>
+
+<xsl:template match="xsl:template">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:attribute name="mode">fiddled</xsl:attribute>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="/" mode="faddle">
+  <xsl:message>
+    <xsl:text>Mode of FOO is </xsl:text>
+    <xsl:value-of select="key('tmpls', 'FOO')/@mode"/>
+  </xsl:message>
+</xsl:template>
+
+<xsl:template name="FOO" mode="input"/>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.4.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exsl="http://exslt.org/common"
+                version="1.0">
+
+<xsl:key name="tmpls" match="xsl:template" use="@name"/>
+
+<xsl:template match="/">
+  <xsl:element name="initial">
+    <xsl:text>Mode of FOO is </xsl:text>
+    <xsl:value-of select="key('tmpls', 'FOO')/@mode"/>
+  </xsl:element>
+
+  <xsl:variable name="fiddle">
+    <xsl:apply-templates select="//xsl:template"/>
+  </xsl:variable>
+
+  <xsl:apply-templates select="exsl:node-set($fiddle)" mode="faddle"/>
+</xsl:template>
+
+<xsl:template match="xsl:template">
+  <xsl:copy>
+    <xsl:copy-of select="@*"/>
+    <xsl:attribute name="mode">fiddled</xsl:attribute>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="/" mode="faddle">
+  <xsl:element name="post-transform">
+    <xsl:text>Mode of FOO is </xsl:text>
+    <xsl:value-of select="key('tmpls', 'FOO')/@mode"/>
+  </xsl:element>
+</xsl:template>
+
+<xsl:template name="FOO" mode="input"/>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,300 @@
+<?xml version="1.0"?>
+<document><metaproperties>
+	<source>Trudgill 1974:36</source>
+	<copyright/>
+	<title>Regional and caste differences in Kanarese</title>
+</metaproperties><horizontal><node heading="caste"><node heading="Brahmin">
+	 <node heading="Dharwar"/><forms><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form></forms><node heading="Bangalore"/><forms><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form></forms>
+  </node><node heading="non-Brahmin">
+	 <node heading="Dharwar"/><forms><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form></forms><node heading="Bangalore"/><forms><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form></forms>
+  </node></node></horizontal><vertical>
+	 <node heading="'it is'"/><forms><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form></forms><node heading="'inside'"/><forms><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form></forms><node heading="infinitive affix"/><forms><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form></forms><node heading="participle affix"/><forms><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form></forms><node heading="'sit'"/><forms><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form></forms><node heading="reflexive"/><forms><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form></forms>
+  </vertical><cells>
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				
+				a
+				</cells></document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,210 @@
+<?xml version="1.0"?>
+<document><metaproperties>
+	<source>Trudgill 1974:36</source>
+	<copyright/>
+	<title>Regional and caste differences in Kanarese</title>
+</metaproperties>
+
+
+<operator-stack>
+  <operator opcode="tabular" instruction="1">
+	 <operand type="branch" arg="1">2</operand>
+	 <operand type="branch" arg="2">4</operand>
+	 <operand type="domain" arg="3">content</operand>
+  </operator>
+  <operator opcode="hierarchical" instruction="2">
+	 <operand type="domain" arg="1">caste</operand>
+	 <operand type="branch" arg="2">3</operand>
+  </operator>
+  <operator opcode="lookup" instruction="3">
+	 <operand type="domain" arg="1">town</operand>
+  </operator>
+  <operator opcode="lookup" instruction="4">
+	 <operand type="domain" arg="1">morpheme</operand>
+  </operator>
+</operator-stack>
+
+<attributes>
+  <name name="caste">
+    <value value="Brahmin"/>
+    <value value="non-Brahmin"/>
+  </name>
+  <name name="town">
+    <value value="Dharwar"/>
+    <value value="Bangalore"/>
+  </name>
+  <name name="morpheme">
+    <value value="'it is'"/>
+    <value value="'inside'"/>
+    <value value="infinitive affix"/>
+    <value value="participle affix"/>
+    <value value="'sit'"/>
+    <value value="reflexive"/>
+  </name>
+  <name name="content">
+    <value value="-a"/>
+    <value value="-aga"/>
+    <value value="-ak"/>
+    <value value="-alli"/>
+    <value value="-likke"/>
+    <value value="-o"/>
+    <value value="-ok"/>
+    <value value="-olage"/>
+    <value value="ayti"/>
+    <value value="ede"/>
+    <value value="ide"/>
+    <value value="ko"/>
+    <value value="kont-"/>
+    <value value="kunt-"/>
+    <value value="kut-"/> 
+  </name>
+</attributes>
+
+<paradigm>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form>
+  
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form>  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form>  
+
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form>
+  
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form>    
+</paradigm></document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.5.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0" xmlns:exslt="http://exslt.org/common">
+
+
+	<xsl:output method="xml"/>
+  
+	<xsl:template match="document">
+		<xsl:element name="document">
+			<xsl:copy-of select="/document/metaproperties"/>
+			<xsl:apply-templates select="/document/operator-stack/operator[@instruction=1]">
+				<xsl:with-param name="selection-criteria">
+					<xsl:copy-of select="/document/paradigm"/>
+				</xsl:with-param>
+			</xsl:apply-templates>
+		</xsl:element>
+	</xsl:template>
+	
+	<xsl:template match="operand[@type='domain']">
+		<xsl:param name="selection-criteria"/>
+		<xsl:variable name="butterfly"><xsl:value-of select="."/></xsl:variable>
+		<xsl:for-each select="/document/attributes/name[@name=$butterfly]/value">
+			<xsl:variable name="koala"><xsl:value-of select="@value"/></xsl:variable>
+			<xsl:variable name="pidgeon">
+				<xsl:element name="paradigm">
+					<xsl:copy-of select="exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$butterfly and @value=$koala]]"/>
+				</xsl:element>
+			</xsl:variable>
+			<xsl:if test="count(exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$butterfly and @value=$koala]]) &gt; 0">
+				<xsl:element name="node">
+					<xsl:attribute name="heading"><xsl:value-of select="@value"/></xsl:attribute>
+				</xsl:element>
+				<xsl:element name="forms">
+					<xsl:copy-of select="exslt:node-set($pidgeon)/paradigm/form"/>
+				</xsl:element>
+			</xsl:if>	
+		</xsl:for-each>		
+	</xsl:template>
+	
+	<xsl:template match="operand[@type='branch']">
+		<xsl:param name="selection-criteria"/>
+		<xsl:variable name="catapilla"><xsl:value-of select="."/></xsl:variable>
+		<xsl:apply-templates select="/document/operator-stack/operator[@instruction=$catapilla]">
+			<xsl:with-param name="selection-criteria">
+				<xsl:copy-of select="$selection-criteria"/>
+			</xsl:with-param>
+		</xsl:apply-templates>	
+	</xsl:template>
+
+	<xsl:template match="operator[@opcode='tabular']">
+		<xsl:param name="selection-criteria"/>
+		
+		<xsl:variable name="horizontal">
+			<xsl:apply-templates select="operand[@arg='1']">
+				<xsl:with-param name="selection-criteria">
+					<xsl:copy-of select="$selection-criteria"/>
+				</xsl:with-param>
+			</xsl:apply-templates>	
+		</xsl:variable>
+		
+		<xsl:variable name="vertical">
+			<xsl:apply-templates select="operand[@arg='2']">
+				<xsl:with-param name="selection-criteria">
+					<xsl:copy-of select="$selection-criteria"/>
+				</xsl:with-param>
+			</xsl:apply-templates>	
+		</xsl:variable>
+		
+			
+		<xsl:element name="horizontal">
+			<xsl:copy-of select="$horizontal"/>
+		</xsl:element>
+	
+		<xsl:element name="vertical">
+			<xsl:copy-of select="$vertical"/>
+		</xsl:element>
+		
+		<xsl:element name="cells">
+			<xsl:for-each select="exslt:node-set($horizontal)//forms">
+				<xsl:variable name="horizontal-forms">
+					<xsl:copy-of select="form"/>
+				</xsl:variable>
+				<xsl:for-each select="exslt:node-set($vertical)//forms">
+					<xsl:variable name="vertical-forms">
+						<xsl:copy-of select="form"/>
+					</xsl:variable>
+					<xsl:variable name="pidgeon">
+						<xsl:element name="paradigm">
+							<xsl:copy-of select="exslt:node-set($horizontal-forms)[./form = exslt:node-set($vertical-forms)/form]"/>
+						</xsl:element>
+					</xsl:variable>
+				a
+				<!--
+					<xsl:copy-of select="pidgeon"/>
+				-->
+				</xsl:for-each>
+			</xsl:for-each>
+		</xsl:element>
+		
+	</xsl:template>
+	
+	<xsl:template match="operator[@opcode='hierarchical']">
+		<xsl:param name="selection-criteria"/>
+		<xsl:variable name="horse"><xsl:value-of select="@instruction"/></xsl:variable>
+		<xsl:element name="node">
+			<xsl:attribute name="heading"><xsl:value-of select="operand[@arg='1']"/></xsl:attribute>
+			<xsl:variable name="grub"><xsl:value-of select="operand[@arg='1']"/></xsl:variable>
+			
+			<xsl:for-each select="/document/attributes/name[@name=$grub]/value">
+				<xsl:variable name="koala"><xsl:value-of select="@value"/></xsl:variable>
+				<xsl:variable name="pidgeon">
+					<xsl:element name="paradigm">
+						<xsl:copy-of select="exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$grub and @value=$koala]]"/>
+					</xsl:element>
+				</xsl:variable>
+				
+				<xsl:if test="count(exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$grub and @value=$koala]]) &gt; 0">
+					<xsl:element name="node">
+						<xsl:attribute name="heading"><xsl:value-of select="@value"/></xsl:attribute>
+						<xsl:apply-templates select="/document/operator-stack/operator[@instruction=$horse]/operand[@arg='2']">
+							<xsl:with-param name="selection-criteria">
+								<xsl:copy-of select="$pidgeon"/>
+							</xsl:with-param>
+						</xsl:apply-templates>	
+					</xsl:element>
+				</xsl:if>
+			</xsl:for-each>	
+			
+		</xsl:element>
+	</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1206 @@
+<?xml version="1.0"?>
+<document><metaproperties>
+	<source>Trudgill 1974:36</source>
+	<copyright/>
+	<title>Regional and caste differences in Kanarese</title>
+</metaproperties><cells><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><paradigm/><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form><paradigm/></cells></document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,210 @@
+<?xml version="1.0"?>
+<document><metaproperties>
+	<source>Trudgill 1974:36</source>
+	<copyright/>
+	<title>Regional and caste differences in Kanarese</title>
+</metaproperties>
+
+
+<operator-stack>
+  <operator opcode="tabular" instruction="1">
+	 <operand type="branch" arg="1">2</operand>
+	 <operand type="branch" arg="2">4</operand>
+	 <operand type="domain" arg="3">content</operand>
+  </operator>
+  <operator opcode="hierarchical" instruction="2">
+	 <operand type="domain" arg="1">caste</operand>
+	 <operand type="branch" arg="2">3</operand>
+  </operator>
+  <operator opcode="lookup" instruction="3">
+	 <operand type="domain" arg="1">town</operand>
+  </operator>
+  <operator opcode="lookup" instruction="4">
+	 <operand type="domain" arg="1">morpheme</operand>
+  </operator>
+</operator-stack>
+
+<attributes>
+  <name name="caste">
+    <value value="Brahmin"/>
+    <value value="non-Brahmin"/>
+  </name>
+  <name name="town">
+    <value value="Dharwar"/>
+    <value value="Bangalore"/>
+  </name>
+  <name name="morpheme">
+    <value value="'it is'"/>
+    <value value="'inside'"/>
+    <value value="infinitive affix"/>
+    <value value="participle affix"/>
+    <value value="'sit'"/>
+    <value value="reflexive"/>
+  </name>
+  <name name="content">
+    <value value="-a"/>
+    <value value="-aga"/>
+    <value value="-ak"/>
+    <value value="-alli"/>
+    <value value="-likke"/>
+    <value value="-o"/>
+    <value value="-ok"/>
+    <value value="-olage"/>
+    <value value="ayti"/>
+    <value value="ede"/>
+    <value value="ide"/>
+    <value value="ko"/>
+    <value value="kont-"/>
+    <value value="kunt-"/>
+    <value value="kut-"/> 
+  </name>
+</attributes>
+
+<paradigm>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ede"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-olage"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-likke"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form>
+  
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ide"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-alli"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ok"/>
+  </form>  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-o"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kut-"/>
+  </form>
+  <form>
+    <attribute name="caste" value="Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="ko"/>
+  </form>  
+
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Dharwar"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form>
+  
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'it is'"/>    
+    <attribute name="content" value="ayti"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'inside'"/>    
+    <attribute name="content" value="-aga"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="infinitive affix"/>    
+    <attribute name="content" value="-ak"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="participle affix"/>    
+    <attribute name="content" value="-a"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="'sit'"/>    
+    <attribute name="content" value="kunt-"/>
+  </form>
+  <form>
+    <attribute name="caste" value="non-Brahmin"/>
+    <attribute name="town" value="Bangalore"/>
+    <attribute name="morpheme" value="reflexive"/>    
+    <attribute name="content" value="kont-"/>
+  </form>    
+</paradigm></document>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.6.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" 
+					 xmlns:exslt="http://exslt.org/common"
+					 xmlns:set="http://exslt.org/sets"
+                extension-element-prefixes="set">
+
+
+	<xsl:output method="xml"/>
+  
+	<xsl:template match="document">
+		<xsl:element name="document">
+			<xsl:copy-of select="/document/metaproperties"/>
+			<xsl:apply-templates select="/document/operator-stack/operator[@instruction=1]">
+				<xsl:with-param name="selection-criteria">
+					<xsl:copy-of select="/document/paradigm"/>
+				</xsl:with-param>
+			</xsl:apply-templates>
+		</xsl:element>
+	</xsl:template>
+	
+	<xsl:template match="operand[@type='domain']">
+		<xsl:param name="selection-criteria"/>
+		<xsl:variable name="butterfly"><xsl:value-of select="."/></xsl:variable>
+		<xsl:for-each select="/document/attributes/name[@name=$butterfly]/value">
+			<xsl:variable name="koala"><xsl:value-of select="@value"/></xsl:variable>
+			<xsl:variable name="pidgeon">
+				<xsl:element name="paradigm">
+					<xsl:copy-of select="exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$butterfly and @value=$koala]]"/>
+				</xsl:element>
+			</xsl:variable>
+			<xsl:if test="count(exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$butterfly and @value=$koala]]) &gt; 0">
+				<xsl:element name="node">
+					<xsl:attribute name="heading"><xsl:value-of select="@value"/></xsl:attribute>
+				</xsl:element>
+				<xsl:element name="forms">
+					<xsl:copy-of select="exslt:node-set($pidgeon)/paradigm/form"/>
+				</xsl:element>
+			</xsl:if>	
+		</xsl:for-each>		
+	</xsl:template>
+	
+	<xsl:template match="operand[@type='branch']">
+		<xsl:param name="selection-criteria"/>
+		<xsl:variable name="catapilla"><xsl:value-of select="."/></xsl:variable>
+		<xsl:apply-templates select="/document/operator-stack/operator[@instruction=$catapilla]">
+			<xsl:with-param name="selection-criteria">
+				<xsl:copy-of select="$selection-criteria"/>
+			</xsl:with-param>
+		</xsl:apply-templates>	
+	</xsl:template>
+
+	<xsl:template match="operator[@opcode='tabular']">
+		<xsl:param name="selection-criteria"/>
+		
+		<xsl:variable name="horizontal">
+			<xsl:apply-templates select="operand[@arg='1']">
+				<xsl:with-param name="selection-criteria">
+					<xsl:copy-of select="$selection-criteria"/>
+				</xsl:with-param>
+			</xsl:apply-templates>	
+		</xsl:variable>
+		
+		<xsl:variable name="vertical">
+			<xsl:apply-templates select="operand[@arg='2']">
+				<xsl:with-param name="selection-criteria">
+					<xsl:copy-of select="$selection-criteria"/>
+				</xsl:with-param>
+			</xsl:apply-templates>	
+		</xsl:variable>
+		
+		<!--	
+		<xsl:element name="horizontal">
+			<xsl:copy-of select="$horizontal"/>
+		</xsl:element>
+	
+		<xsl:element name="vertical">
+			<xsl:copy-of select="$vertical"/>
+		</xsl:element>
+		-->
+
+		<xsl:element name="cells">
+			<xsl:for-each select="exslt:node-set($horizontal)//forms">
+				<xsl:variable name="horizontal-forms">
+					<xsl:copy-of select="./form"/>
+				</xsl:variable>
+				
+				<xsl:for-each select="exslt:node-set($vertical)//forms">
+					<xsl:variable name="vertical-forms">
+						<xsl:copy-of select="./form"/>
+					</xsl:variable>
+					<xsl:copy-of select="exslt:node-set($horizontal-forms)/form | exslt:node-set($vertical-forms)/form"/>
+					<xsl:variable name="pidgeon">
+						<xsl:element name="paradigm">
+							<!--<xsl:copy-of select="$horizontal-forms[count(.|$vertical-forms)=count($vertical-forms)]"/>-->
+							<!--<xsl:copy-of select="set:intersection($horizontal-forms, $vertical-forms)"/>-->
+							<!--
+							<xsl:call-template name="set:intersection">
+							   <xsl:with-param name="nodes1" select="$horizontal-forms" />
+								<xsl:with-param name="nodes2" select="$vertical-forms" />
+							</xsl:call-template>
+							-->
+						</xsl:element>
+					</xsl:variable>
+					<xsl:copy-of select="$pidgeon"/>
+				</xsl:for-each>
+			</xsl:for-each>
+		</xsl:element>
+		
+	</xsl:template>
+	
+	<xsl:template match="operator[@opcode='hierarchical']">
+		<xsl:param name="selection-criteria"/>
+		<xsl:variable name="horse"><xsl:value-of select="@instruction"/></xsl:variable>
+		<xsl:element name="node">
+			<xsl:attribute name="heading"><xsl:value-of select="operand[@arg='1']"/></xsl:attribute>
+			<xsl:variable name="grub"><xsl:value-of select="operand[@arg='1']"/></xsl:variable>
+			
+			<xsl:for-each select="/document/attributes/name[@name=$grub]/value">
+				<xsl:variable name="koala"><xsl:value-of select="@value"/></xsl:variable>
+				<xsl:variable name="pidgeon">
+					<xsl:element name="paradigm">
+						<xsl:copy-of select="exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$grub and @value=$koala]]"/>
+					</xsl:element>
+				</xsl:variable>
+				
+				<xsl:if test="count(exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$grub and @value=$koala]]) &gt; 0">
+					<xsl:element name="node">
+						<xsl:attribute name="heading"><xsl:value-of select="@value"/></xsl:attribute>
+						<xsl:apply-templates select="/document/operator-stack/operator[@instruction=$horse]/operand[@arg='2']">
+							<xsl:with-param name="selection-criteria">
+								<xsl:copy-of select="$pidgeon"/>
+							</xsl:with-param>
+						</xsl:apply-templates>	
+					</xsl:element>
+				</xsl:if>
+			</xsl:for-each>	
+			
+		</xsl:element>
+	</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+A

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<root>junk</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.7.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+<xsl:transform
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:exsl="http://exslt.org/common"
+  extension-element-prefixes="exsl">
+
+  <xsl:key name="k" match="a" use="@x"/>
+
+  <xsl:template match="/">
+    <xsl:variable name="v">
+      <n>
+        <a x="1" y="A"/>
+        <a x="2" y="B"/>
+      </n>
+    </xsl:variable>
+    <xsl:apply-templates select="exsl:node-set($v)/*"/>
+  </xsl:template>
+
+  <xsl:template match="n">
+<!--    <xsl:apply-templates select="a[@x='1']"/> -->
+    <xsl:apply-templates select="key('k','1')"/>
+  </xsl:template>
+
+  <xsl:template match="a">
+    <xsl:value-of select="@y"/>
+  </xsl:template>
+
+</xsl:transform>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<tree subject_id="13378"><tree subject_id="13380"><tree subject_id="13381"><tree subject_id="13376"><tree subject_id="13388"><tree subject_id="13391"><tree subject_id="13421"><tree subject_id="13417"><tree subject_id="13416"><tree subject_id="13415"><tree subject_id="13431"><tree subject_id="13423"/></tree></tree><tree subject_id="13430"/></tree><tree subject_id="13419"/></tree></tree><tree subject_id="13422"><tree subject_id="13426"><tree subject_id="13377"><tree subject_id="13442"/></tree><tree subject_id="13428"/></tree><tree subject_id="13427"/></tree></tree><tree subject_id="13392"><tree subject_id="13445"><tree subject_id="13440"><tree subject_id="13436"><tree subject_id="13454"><tree subject_id="13449"><tree subject_id="13457"><tree subject_id="13450"><tree subject_id="13462"/></tree></tree></tree></tree><tree subject_id="13455"/></tree></tree><tree subject_id="13447"/></tree></tree></tree><tree subject_id="13387"><tree subject_id="13386"><tree subject_id="13402"><tree subject_id="13400"><tree subject_id="13393"><tree subject_id="13401"><tree subject_id="13412"/><tree subject_id="13389"><tree subject_id="13404"><tree subject_id="13403"><tree subject_id="13408"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13375"><tree subject_id="13394"><tree subject_id="13397"/></tree><tree subject_id="13395"/></tree></tree></tree><tree subject_id="13373"><tree subject_id="13382"><tree subject_id="13418"><tree subject_id="13471"/><tree subject_id="13472"/></tree><tree subject_id="13420"><tree subject_id="13459"><tree subject_id="13466"><tree subject_id="13741"><tree subject_id="13743"><tree subject_id="13747"><tree subject_id="13846"><tree subject_id="13834"><tree subject_id="13835"><tree subject_id="13821"><tree subject_id="13825"/><tree subject_id="13840"/></tree><tree subject_id="13822"/></tree></tree><tree subject_id="13820"/></tree><tree subject_id="13843"><tree subject_id="13838"><tree subject_id="13836"><tree subject_id="13866"><tree subject_id="13869"/></tree><tree subject_id="13867"><tree subject_id="13872"/></tree></tree></tree><tree subject_id="13844"><tree subject_id="13847"><tree subject_id="13865"><tree subject_id="13854"><tree subject_id="13855"><tree subject_id="13845"><tree subject_id="13857"><tree subject_id="13879"/></tree><tree subject_id="13823"/></tree></tree></tree><tree subject_id="13876"><tree subject_id="13579"><tree subject_id="13564"><tree subject_id="13583"><tree subject_id="13589"><tree subject_id="13591"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13592"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree><tree subject_id="13603"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree></tree><tree subject_id="13578"><tree subject_id="13609"/><tree subject_id="13608"/></tree></tree><tree subject_id="13563"><tree subject_id="14053"><tree subject_id="14057"/><tree subject_id="14008"/></tree><tree subject_id="14035"><tree subject_id="14063"><tree subject_id="14043"><tree subject_id="14051"><tree subject_id="14100"><tree subject_id="14089"><tree subject_id="14101"><tree subject_id="14075"/></tree></tree></tree></tree></tree></tree><tree subject_id="14064"/></tree></tree></tree></tree></tree><tree subject_id="13853"><tree subject_id="13883"/><tree subject_id="13884"/></tree></tree></tree></tree></tree><tree subject_id="13748"><tree subject_id="13740"><tree subject_id="13768"/><tree subject_id="13745"><tree subject_id="13754"><tree subject_id="13774"><tree subject_id="13776"><tree subject_id="13773"><tree subject_id="13791"/><tree subject_id="13792"><tree subject_id="13795"/><tree subject_id="13796"/></tree></tree></tree><tree subject_id="13777"><tree subject_id="13778"><tree subject_id="13802"><tree subject_id="13804"/><tree subject_id="13789"><tree subject_id="13769"><tree subject_id="13779"><tree subject_id="13801"><tree subject_id="13785"><tree subject_id="13807"><tree subject_id="13816"><tree subject_id="13819"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree><tree subject_id="13837"><tree subject_id="13850"/></tree></tree></tree><tree subject_id="13815"/></tree><tree subject_id="13814"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree></tree></tree><tree subject_id="13783"/></tree><tree subject_id="13790"><tree subject_id="13811"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13775"/></tree></tree></tree><tree subject_id="13738"><tree subject_id="13753"/><tree subject_id="13764"/></tree></tree></tree><tree subject_id="13744"/></tree><tree subject_id="13742"><tree subject_id="13735"><tree subject_id="13737"><tree subject_id="13746"><tree subject_id="13757"/><tree subject_id="13758"/></tree><tree subject_id="13736"/></tree></tree><tree subject_id="13752"/></tree></tree><tree subject_id="13467"><tree subject_id="13550"><tree subject_id="13553"/><tree subject_id="13552"><tree subject_id="13554"><tree subject_id="13943"><tree subject_id="13942"><tree subject_id="13939"><tree subject_id="13941"><tree subject_id="13956"><tree subject_id="13958"><tree subject_id="13976"><tree subject_id="13978"/><tree subject_id="13972"><tree subject_id="13970"><tree subject_id="13973"><tree subject_id="13961"><tree subject_id="13965"><tree subject_id="13982"><tree subject_id="13971"><tree subject_id="13975"><tree subject_id="13992"><tree subject_id="13991"><tree subject_id="13990"><tree subject_id="13989"><tree subject_id="14002"><tree subject_id="13996"/></tree></tree></tree></tree></tree><tree subject_id="13993"><tree subject_id="13997"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13977"><tree subject_id="13985"/></tree></tree></tree><tree subject_id="13957"/></tree><tree subject_id="13955"><tree subject_id="13964"/><tree subject_id="13876"><tree subject_id="13579"><tree subject_id="13564"><tree subject_id="13583"><tree subject_id="13589"><tree subject_id="13591"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13592"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree><tree subject_id="13603"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree></tree><tree subject_id="13578"><tree subject_id="13609"/><tree subject_id="13608"/></tree></tree><tree subject_id="13563"><tree subject_id="14053"><tree subject_id="14057"/><tree subject_id="14008"/></tree><tree subject_id="14035"><tree subject_id="14063"><tree subject_id="14043"><tree subject_id="14051"><tree subject_id="14100"><tree subject_id="14089"><tree subject_id="14101"><tree subject_id="14075"/></tree></tree></tree></tree></tree></tree><tree subject_id="14064"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13945"/></tree><tree subject_id="13944"><tree subject_id="13949"/><tree subject_id="13950"/></tree></tree><tree subject_id="13555"><tree subject_id="14202"><tree subject_id="14198"><tree subject_id="14260"><tree subject_id="13877"><tree subject_id="13854"><tree subject_id="13855"><tree subject_id="13845"><tree subject_id="13857"><tree subject_id="13879"/></tree><tree subject_id="13823"/></tree></tree></tree><tree subject_id="13876"><tree subject_id="13579"><tree subject_id="13564"><tree subject_id="13583"><tree subject_id="13589"><tree subject_id="13591"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13592"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree><tree subject_id="13603"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree></tree><tree subject_id="13578"><tree subject_id="13609"/><tree subject_id="13608"/></tree></tree><tree subject_id="13563"><tree subject_id="14053"><tree subject_id="14057"/><tree subject_id="14008"/></tree><tree subject_id="14035"><tree subject_id="14063"><tree subject_id="14043"><tree subject_id="14051"><tree subject_id="14100"><tree subject_id="14089"><tree subject_id="14101"><tree subject_id="14075"/></tree></tree></tree></tree></tree></tree><tree subject_id="14064"/></tree></tree></tree></tree></tree><tree subject_id="14262"/></tree><tree subject_id="14261"><tree subject_id="14237"><tree subject_id="14235"><tree subject_id="14238"><tree subject_id="14240"/></tree></tree></tree><tree subject_id="14265"/></tree></tree></tree><tree subject_id="14201"><tree subject_id="14203"><tree subject_id="14204"><tree subject_id="14206"/><tree subject_id="14207"><tree subject_id="14211"><tree subject_id="14229"><tree subject_id="14232"/></tree></tree><tree subject_id="14212"><tree subject_id="14244"><tree subject_id="14246"/><tree subject_id="14247"/></tree><tree subject_id="14245"><tree subject_id="14251"/><tree subject_id="14221"><tree subject_id="14220"><tree subject_id="14188"><tree subject_id="14186"><tree subject_id="14187"/></tree><tree subject_id="14205"><tree subject_id="14191"><tree subject_id="14193"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14195"/></tree></tree><tree subject_id="14192"/></tree></tree><tree subject_id="14222"><tree subject_id="14223"/><tree subject_id="14224"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="14208"><tree subject_id="14213"><tree subject_id="14215"><tree subject_id="14254"><tree subject_id="14256"/></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13551"><tree subject_id="13549"><tree subject_id="13560"><tree subject_id="13545"><tree subject_id="13568"><tree subject_id="13572"/></tree><tree subject_id="13567"/></tree><tree subject_id="13540"><tree subject_id="13574"/><tree subject_id="13575"><tree subject_id="13562"><tree subject_id="13586"><tree subject_id="13581"><tree subject_id="13564"><tree subject_id="13583"><tree subject_id="13589"><tree subject_id="13591"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13592"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree><tree subject_id="13603"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree></tree><tree subject_id="13578"><tree subject_id="13609"/><tree subject_id="13608"/></tree></tree><tree subject_id="13563"><tree subject_id="14053"><tree subject_id="14057"/><tree subject_id="14008"/></tree><tree subject_id="14035"><tree subject_id="14063"><tree subject_id="14043"><tree subject_id="14051"><tree subject_id="14100"><tree subject_id="14089"><tree subject_id="14101"><tree subject_id="14075"/></tree></tree></tree></tree></tree></tree><tree subject_id="14064"/></tree></tree></tree><tree subject_id="13590"><tree subject_id="13593"><tree subject_id="14172"><tree subject_id="14174"><tree subject_id="13781"><tree subject_id="13785"><tree subject_id="13807"><tree subject_id="13816"><tree subject_id="13819"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree><tree subject_id="13837"><tree subject_id="13850"/></tree></tree></tree><tree subject_id="13815"/></tree><tree subject_id="13814"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree></tree></tree></tree><tree subject_id="14175"/></tree></tree></tree></tree><tree subject_id="13587"><tree subject_id="13596"><tree subject_id="13600"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree></tree><tree subject_id="13595"/></tree></tree><tree subject_id="13561"><tree subject_id="13835"><tree subject_id="13821"><tree subject_id="13825"/><tree subject_id="13840"/></tree><tree subject_id="13822"/></tree></tree></tree></tree></tree><tree subject_id="13547"><tree subject_id="14006"><tree subject_id="14005"><tree subject_id="14003"><tree subject_id="14023"><tree subject_id="13601"><tree subject_id="13600"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree></tree><tree subject_id="14026"><tree subject_id="14029"><tree subject_id="14150"><tree subject_id="14152"/></tree><tree subject_id="14151"><tree subject_id="14157"/></tree></tree></tree></tree><tree subject_id="14024"><tree subject_id="14027"><tree subject_id="14028"><tree subject_id="14011"><tree subject_id="14012"><tree subject_id="14010"><tree subject_id="14034"/><tree subject_id="14033"><tree subject_id="14044"><tree subject_id="14046"><tree subject_id="14054"/></tree></tree><tree subject_id="14045"/></tree></tree><tree subject_id="14008"/></tree></tree><tree subject_id="14013"><tree subject_id="14038"/><tree subject_id="14039"/></tree></tree></tree><tree subject_id="14031"><tree subject_id="14037"><tree subject_id="14077"><tree subject_id="14079"><tree subject_id="14080"><tree subject_id="14091"><tree subject_id="14093"><tree subject_id="14096"><tree subject_id="14103"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree><tree subject_id="14102"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree></tree><tree subject_id="14094"/></tree><tree subject_id="14092"/></tree></tree><tree subject_id="14065"><tree subject_id="14082"><tree subject_id="13607"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree><tree subject_id="14073"><tree subject_id="14117"/><tree subject_id="13925"><tree subject_id="13625"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree><tree subject_id="13616"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="14078"><tree subject_id="14085"/></tree></tree></tree></tree></tree><tree subject_id="14004"><tree subject_id="14120"><tree subject_id="14114"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree><tree subject_id="14122"/></tree><tree subject_id="14121"><tree subject_id="14126"><tree subject_id="14128"><tree subject_id="14132"><tree subject_id="14134"/></tree><tree subject_id="14133"><tree subject_id="14137"/></tree></tree></tree></tree></tree></tree><tree subject_id="14009"/></tree><tree subject_id="14007"><tree subject_id="14017"/><tree subject_id="14018"/></tree></tree></tree><tree subject_id="13559"><tree subject_id="13565"><tree subject_id="14142"><tree subject_id="13569"><tree subject_id="13568"><tree subject_id="13572"/></tree><tree subject_id="13567"/></tree><tree subject_id="14148"><tree subject_id="14145"><tree subject_id="14023"><tree subject_id="13601"><tree subject_id="13600"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree></tree><tree subject_id="14026"><tree subject_id="14029"><tree subject_id="14150"><tree subject_id="14152"/></tree><tree subject_id="14151"><tree subject_id="14157"/></tree></tree></tree></tree><tree subject_id="14123"><tree subject_id="14114"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree><tree subject_id="14122"/></tree></tree></tree></tree><tree subject_id="14141"><tree subject_id="14143"><tree subject_id="14023"><tree subject_id="13601"><tree subject_id="13600"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree></tree><tree subject_id="14026"><tree subject_id="14029"><tree subject_id="14150"><tree subject_id="14152"/></tree><tree subject_id="14151"><tree subject_id="14157"/></tree></tree></tree></tree><tree subject_id="14123"><tree subject_id="14114"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree><tree subject_id="14122"/></tree></tree><tree subject_id="14144"><tree subject_id="14146"><tree subject_id="14179"/><tree subject_id="14180"><tree subject_id="14029"><tree subject_id="14150"><tree subject_id="14152"/></tree><tree subject_id="14151"><tree subject_id="14157"/></tree></tree><tree subject_id="14183"/></tree></tree></tree></tree></tree><tree subject_id="13566"><tree subject_id="14159"><tree subject_id="14161"/><tree subject_id="14162"/></tree><tree subject_id="14160"><tree subject_id="14167"/></tree></tree></tree></tree></tree></tree><tree subject_id="13458"><tree subject_id="13469"><tree subject_id="13901"><tree subject_id="13890"><tree subject_id="13889"><tree subject_id="13878"><tree subject_id="13902"><tree subject_id="13899"><tree subject_id="13904"><tree subject_id="13800"><tree subject_id="13801"><tree subject_id="13785"><tree subject_id="13807"><tree subject_id="13816"><tree subject_id="13819"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree><tree subject_id="13837"><tree subject_id="13850"/></tree></tree></tree><tree subject_id="13815"/></tree><tree subject_id="13814"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree></tree></tree><tree subject_id="13783"/></tree></tree></tree></tree></tree><tree subject_id="13897"><tree subject_id="13896"/></tree></tree></tree><tree subject_id="13903"/></tree></tree></tree></tree></tree><tree subject_id="13383"><tree subject_id="13484"><tree subject_id="13433"><tree subject_id="13489"/><tree subject_id="13488"><tree subject_id="13522"><tree subject_id="13524"/><tree subject_id="13525"/></tree><tree subject_id="13523"/></tree></tree><tree subject_id="13487"><tree subject_id="13490"/></tree></tree><tree subject_id="13485"><tree subject_id="13492"><tree subject_id="13494"><tree subject_id="13533"/><tree subject_id="13534"><tree subject_id="13537"/></tree></tree><tree subject_id="13495"><tree subject_id="13530"><tree subject_id="13514"><tree subject_id="13510"><tree subject_id="13531"/></tree></tree><tree subject_id="13539"/></tree><tree subject_id="13532"/></tree></tree><tree subject_id="13493"><tree subject_id="13498"><tree subject_id="13664"><tree subject_id="13666"><tree subject_id="13621"><tree subject_id="13676"><tree subject_id="13678"><tree subject_id="13675"><tree subject_id="13684"><tree subject_id="13680"><tree subject_id="13683"><tree subject_id="13697"><tree subject_id="13693"><tree subject_id="13686"><tree subject_id="13691"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13692"/></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13677"/></tree></tree></tree><tree subject_id="13665"><tree subject_id="13669"/><tree subject_id="13670"/></tree></tree><tree subject_id="13497"><tree subject_id="13741"><tree subject_id="13743"><tree subject_id="13747"><tree subject_id="13846"><tree subject_id="13834"><tree subject_id="13835"><tree subject_id="13821"><tree subject_id="13825"/><tree subject_id="13840"/></tree><tree subject_id="13822"/></tree></tree><tree subject_id="13820"/></tree><tree subject_id="13843"><tree subject_id="13838"><tree subject_id="13836"><tree subject_id="13866"><tree subject_id="13869"/></tree><tree subject_id="13867"><tree subject_id="13872"/></tree></tree></tree><tree subject_id="13844"><tree subject_id="13847"><tree subject_id="13865"><tree subject_id="13854"><tree subject_id="13855"><tree subject_id="13845"><tree subject_id="13857"><tree subject_id="13879"/></tree><tree subject_id="13823"/></tree></tree></tree><tree subject_id="13876"><tree subject_id="13579"><tree subject_id="13564"><tree subject_id="13583"><tree subject_id="13589"><tree subject_id="13591"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13592"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree><tree subject_id="13603"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree></tree><tree subject_id="13578"><tree subject_id="13609"/><tree subject_id="13608"/></tree></tree><tree subject_id="13563"><tree subject_id="14053"><tree subject_id="14057"/><tree subject_id="14008"/></tree><tree subject_id="14035"><tree subject_id="14063"><tree subject_id="14043"><tree subject_id="14051"><tree subject_id="14100"><tree subject_id="14089"><tree subject_id="14101"><tree subject_id="14075"/></tree></tree></tree></tree></tree></tree><tree subject_id="14064"/></tree></tree></tree></tree></tree><tree subject_id="13853"><tree subject_id="13883"/><tree subject_id="13884"/></tree></tree></tree></tree></tree><tree subject_id="13748"><tree subject_id="13740"><tree subject_id="13768"/><tree subject_id="13745"><tree subject_id="13754"><tree subject_id="13774"><tree subject_id="13776"><tree subject_id="13773"><tree subject_id="13791"/><tree subject_id="13792"><tree subject_id="13795"/><tree subject_id="13796"/></tree></tree></tree><tree subject_id="13777"><tree subject_id="13778"><tree subject_id="13802"><tree subject_id="13804"/><tree subject_id="13789"><tree subject_id="13769"><tree subject_id="13779"><tree subject_id="13801"><tree subject_id="13785"><tree subject_id="13807"><tree subject_id="13816"><tree subject_id="13819"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree><tree subject_id="13837"><tree subject_id="13850"/></tree></tree></tree><tree subject_id="13815"/></tree><tree subject_id="13814"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree></tree></tree><tree subject_id="13783"/></tree><tree subject_id="13790"><tree subject_id="13811"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13775"/></tree></tree></tree><tree subject_id="13738"><tree subject_id="13753"/><tree subject_id="13764"/></tree></tree></tree><tree subject_id="13744"/></tree><tree subject_id="13742"><tree subject_id="13735"><tree subject_id="13737"><tree subject_id="13746"><tree subject_id="13757"/><tree subject_id="13758"/></tree><tree subject_id="13736"/></tree></tree><tree subject_id="13752"/></tree></tree></tree></tree></tree></tree></tree>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<tree subject_id="13378"><tree subject_id="13380"><tree subject_id="13381"><tree subject_id="13376"><tree subject_id="13388"><tree subject_id="13391"><tree subject_id="13421"><tree subject_id="13417"><tree subject_id="13416"><tree subject_id="13415"><tree subject_id="13431"><tree subject_id="13423"/></tree></tree><tree subject_id="13430"/></tree><tree subject_id="13419"/></tree></tree><tree subject_id="13422"><tree subject_id="13426"><tree subject_id="13377"><tree subject_id="13442"/></tree><tree subject_id="13428"/></tree><tree subject_id="13427"/></tree></tree><tree subject_id="13392"><tree subject_id="13445"><tree subject_id="13440"><tree subject_id="13436"><tree subject_id="13454"><tree subject_id="13449"><tree subject_id="13457"><tree subject_id="13450"><tree subject_id="13462"/></tree></tree></tree></tree><tree subject_id="13455"/></tree></tree><tree subject_id="13447"/></tree></tree></tree><tree subject_id="13387"><tree subject_id="13386"><tree subject_id="13402"><tree subject_id="13400"><tree subject_id="13393"><tree subject_id="13401"><tree subject_id="13412"/><tree subject_id="13389"><tree subject_id="13404"><tree subject_id="13403"><tree subject_id="13408"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13375"><tree subject_id="13394"><tree subject_id="13397"/></tree><tree subject_id="13395"/></tree></tree></tree><tree subject_id="13373"><tree subject_id="13382"><tree subject_id="13418"><tree subject_id="13471"/><tree subject_id="13472"/></tree><tree subject_id="13420"><tree subject_id="13459"><tree subject_id="13466"><tree subject_id="13741"><tree subject_id="13743"><tree subject_id="13747"><tree subject_id="13846"><tree subject_id="13834"><tree subject_id="13835"><tree subject_id="13821"><tree subject_id="13825"/><tree subject_id="13840"/></tree><tree subject_id="13822"/></tree></tree><tree subject_id="13820"/></tree><tree subject_id="13843"><tree subject_id="13838"><tree subject_id="13836"><tree subject_id="13866"><tree subject_id="13869"/></tree><tree subject_id="13867"><tree subject_id="13872"/></tree></tree></tree><tree subject_id="13844"><tree subject_id="13847"><tree subject_id="13865"><tree subject_id="13854"><tree subject_id="13855"><tree subject_id="13845"><tree subject_id="13857"><tree subject_id="13879"/></tree><tree subject_id="13823"/></tree></tree></tree><tree subject_id="13876"><tree subject_id="13579"><tree subject_id="13564"><tree subject_id="13583"><tree subject_id="13589"><tree subject_id="13591"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13592"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree><tree subject_id="13603"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree></tree><tree subject_id="13578"><tree subject_id="13609"/><tree subject_id="13608"/></tree></tree><tree subject_id="13563"><tree subject_id="14053"><tree subject_id="14057"/><tree subject_id="14008"/></tree><tree subject_id="14035"><tree subject_id="14063"><tree subject_id="14043"><tree subject_id="14051"><tree subject_id="14100"><tree subject_id="14089"><tree subject_id="14101"><tree subject_id="14075"/></tree></tree></tree></tree></tree></tree><tree subject_id="14064"/></tree></tree></tree></tree></tree><tree subject_id="13853"><tree subject_id="13883"/><tree subject_id="13884"/></tree></tree></tree></tree></tree><tree subject_id="13748"><tree subject_id="13740"><tree subject_id="13768"/><tree subject_id="13745"><tree subject_id="13754"><tree subject_id="13774"><tree subject_id="13776"><tree subject_id="13773"><tree subject_id="13791"/><tree subject_id="13792"><tree subject_id="13795"/><tree subject_id="13796"/></tree></tree></tree><tree subject_id="13777"><tree subject_id="13778"><tree subject_id="13802"><tree subject_id="13804"/><tree subject_id="13789"><tree subject_id="13769"><tree subject_id="13779"><tree subject_id="13801"><tree subject_id="13785"><tree subject_id="13807"><tree subject_id="13816"><tree subject_id="13819"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree><tree subject_id="13837"><tree subject_id="13850"/></tree></tree></tree><tree subject_id="13815"/></tree><tree subject_id="13814"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree></tree></tree><tree subject_id="13783"/></tree><tree subject_id="13790"><tree subject_id="13811"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13775"/></tree></tree></tree><tree subject_id="13738"><tree subject_id="13753"/><tree subject_id="13764"/></tree></tree></tree><tree subject_id="13744"/></tree><tree subject_id="13742"><tree subject_id="13735"><tree subject_id="13737"><tree subject_id="13746"><tree subject_id="13757"/><tree subject_id="13758"/></tree><tree subject_id="13736"/></tree></tree><tree subject_id="13752"/></tree></tree><tree subject_id="13467"><tree subject_id="13550"><tree subject_id="13553"/><tree subject_id="13552"><tree subject_id="13554"><tree subject_id="13943"><tree subject_id="13942"><tree subject_id="13939"><tree subject_id="13941"><tree subject_id="13956"><tree subject_id="13958"><tree subject_id="13976"><tree subject_id="13978"/><tree subject_id="13972"><tree subject_id="13970"><tree subject_id="13973"><tree subject_id="13961"><tree subject_id="13965"><tree subject_id="13982"><tree subject_id="13971"><tree subject_id="13975"><tree subject_id="13992"><tree subject_id="13991"><tree subject_id="13990"><tree subject_id="13989"><tree subject_id="14002"><tree subject_id="13996"/></tree></tree></tree></tree></tree><tree subject_id="13993"><tree subject_id="13997"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13977"><tree subject_id="13985"/></tree></tree></tree><tree subject_id="13957"/></tree><tree subject_id="13955"><tree subject_id="13964"/><tree subject_id="13876"><tree subject_id="13579"><tree subject_id="13564"><tree subject_id="13583"><tree subject_id="13589"><tree subject_id="13591"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13592"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree><tree subject_id="13603"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree></tree><tree subject_id="13578"><tree subject_id="13609"/><tree subject_id="13608"/></tree></tree><tree subject_id="13563"><tree subject_id="14053"><tree subject_id="14057"/><tree subject_id="14008"/></tree><tree subject_id="14035"><tree subject_id="14063"><tree subject_id="14043"><tree subject_id="14051"><tree subject_id="14100"><tree subject_id="14089"><tree subject_id="14101"><tree subject_id="14075"/></tree></tree></tree></tree></tree></tree><tree subject_id="14064"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13945"/></tree><tree subject_id="13944"><tree subject_id="13949"/><tree subject_id="13950"/></tree></tree><tree subject_id="13555"><tree subject_id="14202"><tree subject_id="14198"><tree subject_id="14260"><tree subject_id="13877"><tree subject_id="13854"><tree subject_id="13855"><tree subject_id="13845"><tree subject_id="13857"><tree subject_id="13879"/></tree><tree subject_id="13823"/></tree></tree></tree><tree subject_id="13876"><tree subject_id="13579"><tree subject_id="13564"><tree subject_id="13583"><tree subject_id="13589"><tree subject_id="13591"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13592"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree><tree subject_id="13603"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree></tree><tree subject_id="13578"><tree subject_id="13609"/><tree subject_id="13608"/></tree></tree><tree subject_id="13563"><tree subject_id="14053"><tree subject_id="14057"/><tree subject_id="14008"/></tree><tree subject_id="14035"><tree subject_id="14063"><tree subject_id="14043"><tree subject_id="14051"><tree subject_id="14100"><tree subject_id="14089"><tree subject_id="14101"><tree subject_id="14075"/></tree></tree></tree></tree></tree></tree><tree subject_id="14064"/></tree></tree></tree></tree></tree><tree subject_id="14262"/></tree><tree subject_id="14261"><tree subject_id="14237"><tree subject_id="14235"><tree subject_id="14238"><tree subject_id="14240"/></tree></tree></tree><tree subject_id="14265"/></tree></tree></tree><tree subject_id="14201"><tree subject_id="14203"><tree subject_id="14204"><tree subject_id="14206"/><tree subject_id="14207"><tree subject_id="14211"><tree subject_id="14229"><tree subject_id="14232"/></tree></tree><tree subject_id="14212"><tree subject_id="14244"><tree subject_id="14246"/><tree subject_id="14247"/></tree><tree subject_id="14245"><tree subject_id="14251"/><tree subject_id="14221"><tree subject_id="14220"><tree subject_id="14188"><tree subject_id="14186"><tree subject_id="14187"/></tree><tree subject_id="14205"><tree subject_id="14191"><tree subject_id="14193"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14195"/></tree></tree><tree subject_id="14192"/></tree></tree><tree subject_id="14222"><tree subject_id="14223"/><tree subject_id="14224"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="14208"><tree subject_id="14213"><tree subject_id="14215"><tree subject_id="14254"><tree subject_id="14256"/></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13551"><tree subject_id="13549"><tree subject_id="13560"><tree subject_id="13545"><tree subject_id="13568"><tree subject_id="13572"/></tree><tree subject_id="13567"/></tree><tree subject_id="13540"><tree subject_id="13574"/><tree subject_id="13575"><tree subject_id="13562"><tree subject_id="13586"><tree subject_id="13581"><tree subject_id="13564"><tree subject_id="13583"><tree subject_id="13589"><tree subject_id="13591"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13592"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree><tree subject_id="13603"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree></tree><tree subject_id="13578"><tree subject_id="13609"/><tree subject_id="13608"/></tree></tree><tree subject_id="13563"><tree subject_id="14053"><tree subject_id="14057"/><tree subject_id="14008"/></tree><tree subject_id="14035"><tree subject_id="14063"><tree subject_id="14043"><tree subject_id="14051"><tree subject_id="14100"><tree subject_id="14089"><tree subject_id="14101"><tree subject_id="14075"/></tree></tree></tree></tree></tree></tree><tree subject_id="14064"/></tree></tree></tree><tree subject_id="13590"><tree subject_id="13593"><tree subject_id="14172"><tree subject_id="14174"><tree subject_id="13781"><tree subject_id="13785"><tree subject_id="13807"><tree subject_id="13816"><tree subject_id="13819"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree><tree subject_id="13837"><tree subject_id="13850"/></tree></tree></tree><tree subject_id="13815"/></tree><tree subject_id="13814"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree></tree></tree></tree><tree subject_id="14175"/></tree></tree></tree></tree><tree subject_id="13587"><tree subject_id="13596"><tree subject_id="13600"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree></tree><tree subject_id="13595"/></tree></tree><tree subject_id="13561"><tree subject_id="13835"><tree subject_id="13821"><tree subject_id="13825"/><tree subject_id="13840"/></tree><tree subject_id="13822"/></tree></tree></tree></tree></tree><tree subject_id="13547"><tree subject_id="14006"><tree subject_id="14005"><tree subject_id="14003"><tree subject_id="14023"><tree subject_id="13601"><tree subject_id="13600"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree></tree><tree subject_id="14026"><tree subject_id="14029"><tree subject_id="14150"><tree subject_id="14152"/></tree><tree subject_id="14151"><tree subject_id="14157"/></tree></tree></tree></tree><tree subject_id="14024"><tree subject_id="14027"><tree subject_id="14028"><tree subject_id="14011"><tree subject_id="14012"><tree subject_id="14010"><tree subject_id="14034"/><tree subject_id="14033"><tree subject_id="14044"><tree subject_id="14046"><tree subject_id="14054"/></tree></tree><tree subject_id="14045"/></tree></tree><tree subject_id="14008"/></tree></tree><tree subject_id="14013"><tree subject_id="14038"/><tree subject_id="14039"/></tree></tree></tree><tree subject_id="14031"><tree subject_id="14037"><tree subject_id="14077"><tree subject_id="14079"><tree subject_id="14080"><tree subject_id="14091"><tree subject_id="14093"><tree subject_id="14096"><tree subject_id="14103"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree><tree subject_id="14102"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree></tree><tree subject_id="14094"/></tree><tree subject_id="14092"/></tree></tree><tree subject_id="14065"><tree subject_id="14082"><tree subject_id="13607"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree><tree subject_id="14073"><tree subject_id="14117"/><tree subject_id="13925"><tree subject_id="13625"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree><tree subject_id="13616"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="14078"><tree subject_id="14085"/></tree></tree></tree></tree></tree><tree subject_id="14004"><tree subject_id="14120"><tree subject_id="14114"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree><tree subject_id="14122"/></tree><tree subject_id="14121"><tree subject_id="14126"><tree subject_id="14128"><tree subject_id="14132"><tree subject_id="14134"/></tree><tree subject_id="14133"><tree subject_id="14137"/></tree></tree></tree></tree></tree></tree><tree subject_id="14009"/></tree><tree subject_id="14007"><tree subject_id="14017"/><tree subject_id="14018"/></tree></tree></tree><tree subject_id="13559"><tree subject_id="13565"><tree subject_id="14142"><tree subject_id="13569"><tree subject_id="13568"><tree subject_id="13572"/></tree><tree subject_id="13567"/></tree><tree subject_id="14148"><tree subject_id="14145"><tree subject_id="14023"><tree subject_id="13601"><tree subject_id="13600"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree></tree><tree subject_id="14026"><tree subject_id="14029"><tree subject_id="14150"><tree subject_id="14152"/></tree><tree subject_id="14151"><tree subject_id="14157"/></tree></tree></tree></tree><tree subject_id="14123"><tree subject_id="14114"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree><tree subject_id="14122"/></tree></tree></tree></tree><tree subject_id="14141"><tree subject_id="14143"><tree subject_id="14023"><tree subject_id="13601"><tree subject_id="13600"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree></tree><tree subject_id="14026"><tree subject_id="14029"><tree subject_id="14150"><tree subject_id="14152"/></tree><tree subject_id="14151"><tree subject_id="14157"/></tree></tree></tree></tree><tree subject_id="14123"><tree subject_id="14114"><tree subject_id="14088"><tree subject_id="14067"/></tree></tree><tree subject_id="14122"/></tree></tree><tree subject_id="14144"><tree subject_id="14146"><tree subject_id="14179"/><tree subject_id="14180"><tree subject_id="14029"><tree subject_id="14150"><tree subject_id="14152"/></tree><tree subject_id="14151"><tree subject_id="14157"/></tree></tree><tree subject_id="14183"/></tree></tree></tree></tree></tree><tree subject_id="13566"><tree subject_id="14159"><tree subject_id="14161"/><tree subject_id="14162"/></tree><tree subject_id="14160"><tree subject_id="14167"/></tree></tree></tree></tree></tree></tree><tree subject_id="13458"><tree subject_id="13469"><tree subject_id="13901"><tree subject_id="13890"><tree subject_id="13889"><tree subject_id="13878"><tree subject_id="13902"><tree subject_id="13899"><tree subject_id="13904"><tree subject_id="13800"><tree subject_id="13801"><tree subject_id="13785"><tree subject_id="13807"><tree subject_id="13816"><tree subject_id="13819"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree><tree subject_id="13837"><tree subject_id="13850"/></tree></tree></tree><tree subject_id="13815"/></tree><tree subject_id="13814"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree></tree></tree><tree subject_id="13783"/></tree></tree></tree></tree></tree><tree subject_id="13897"><tree subject_id="13896"/></tree></tree></tree><tree subject_id="13903"/></tree></tree></tree></tree></tree><tree subject_id="13383"><tree subject_id="13484"><tree subject_id="13433"><tree subject_id="13489"/><tree subject_id="13488"><tree subject_id="13522"><tree subject_id="13524"/><tree subject_id="13525"/></tree><tree subject_id="13523"/></tree></tree><tree subject_id="13487"><tree subject_id="13490"/></tree></tree><tree subject_id="13485"><tree subject_id="13492"><tree subject_id="13494"><tree subject_id="13533"/><tree subject_id="13534"><tree subject_id="13537"/></tree></tree><tree subject_id="13495"><tree subject_id="13530"><tree subject_id="13514"><tree subject_id="13510"><tree subject_id="13531"/></tree></tree><tree subject_id="13539"/></tree><tree subject_id="13532"/></tree></tree><tree subject_id="13493"><tree subject_id="13498"><tree subject_id="13664"><tree subject_id="13666"><tree subject_id="13621"><tree subject_id="13676"><tree subject_id="13678"><tree subject_id="13675"><tree subject_id="13684"><tree subject_id="13680"><tree subject_id="13683"><tree subject_id="13697"><tree subject_id="13693"><tree subject_id="13686"><tree subject_id="13691"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13692"/></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13677"/></tree></tree></tree><tree subject_id="13665"><tree subject_id="13669"/><tree subject_id="13670"/></tree></tree><tree subject_id="13497"><tree subject_id="13741"><tree subject_id="13743"><tree subject_id="13747"><tree subject_id="13846"><tree subject_id="13834"><tree subject_id="13835"><tree subject_id="13821"><tree subject_id="13825"/><tree subject_id="13840"/></tree><tree subject_id="13822"/></tree></tree><tree subject_id="13820"/></tree><tree subject_id="13843"><tree subject_id="13838"><tree subject_id="13836"><tree subject_id="13866"><tree subject_id="13869"/></tree><tree subject_id="13867"><tree subject_id="13872"/></tree></tree></tree><tree subject_id="13844"><tree subject_id="13847"><tree subject_id="13865"><tree subject_id="13854"><tree subject_id="13855"><tree subject_id="13845"><tree subject_id="13857"><tree subject_id="13879"/></tree><tree subject_id="13823"/></tree></tree></tree><tree subject_id="13876"><tree subject_id="13579"><tree subject_id="13564"><tree subject_id="13583"><tree subject_id="13589"><tree subject_id="13591"><tree subject_id="13614"><tree subject_id="13617"/><tree subject_id="13618"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree><tree subject_id="13615"><tree subject_id="13582"><tree subject_id="13613"><tree subject_id="13546"><tree subject_id="13585"/><tree subject_id="13584"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13592"><tree subject_id="14104"/><tree subject_id="14105"/></tree></tree><tree subject_id="13603"><tree subject_id="13606"><tree subject_id="13688"><tree subject_id="13663"><tree subject_id="13707"><tree subject_id="13709"/><tree subject_id="13710"/></tree><tree subject_id="13708"><tree subject_id="13662"><tree subject_id="13705"><tree subject_id="13694"/></tree></tree></tree></tree></tree><tree subject_id="13696"/></tree><tree subject_id="13605"><tree subject_id="14112"><tree subject_id="13828"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree><tree subject_id="14111"/></tree></tree></tree></tree><tree subject_id="13578"><tree subject_id="13609"/><tree subject_id="13608"/></tree></tree><tree subject_id="13563"><tree subject_id="14053"><tree subject_id="14057"/><tree subject_id="14008"/></tree><tree subject_id="14035"><tree subject_id="14063"><tree subject_id="14043"><tree subject_id="14051"><tree subject_id="14100"><tree subject_id="14089"><tree subject_id="14101"><tree subject_id="14075"/></tree></tree></tree></tree></tree></tree><tree subject_id="14064"/></tree></tree></tree></tree></tree><tree subject_id="13853"><tree subject_id="13883"/><tree subject_id="13884"/></tree></tree></tree></tree></tree><tree subject_id="13748"><tree subject_id="13740"><tree subject_id="13768"/><tree subject_id="13745"><tree subject_id="13754"><tree subject_id="13774"><tree subject_id="13776"><tree subject_id="13773"><tree subject_id="13791"/><tree subject_id="13792"><tree subject_id="13795"/><tree subject_id="13796"/></tree></tree></tree><tree subject_id="13777"><tree subject_id="13778"><tree subject_id="13802"><tree subject_id="13804"/><tree subject_id="13789"><tree subject_id="13769"><tree subject_id="13779"><tree subject_id="13801"><tree subject_id="13785"><tree subject_id="13807"><tree subject_id="13816"><tree subject_id="13819"><tree subject_id="13604"><tree subject_id="13602"/><tree subject_id="13612"><tree subject_id="13636"><tree subject_id="13634"><tree subject_id="13627"><tree subject_id="13635"><tree subject_id="13633"/></tree><tree subject_id="13628"><tree subject_id="13649"/><tree subject_id="13623"/></tree></tree></tree><tree subject_id="13639"/></tree><tree subject_id="13637"/></tree></tree><tree subject_id="13837"><tree subject_id="13850"/></tree></tree></tree><tree subject_id="13815"/></tree><tree subject_id="13814"><tree subject_id="13826"><tree subject_id="13829"><tree subject_id="13917"><tree subject_id="13920"><tree subject_id="13922"><tree subject_id="13924"><tree subject_id="13910"><tree subject_id="13912"><tree subject_id="13929"><tree subject_id="13928"><tree subject_id="13934"><tree subject_id="13931"><tree subject_id="13932"/></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13830"/></tree><tree subject_id="13827"/></tree></tree></tree><tree subject_id="13783"/></tree><tree subject_id="13790"><tree subject_id="13811"/></tree></tree></tree></tree></tree></tree></tree><tree subject_id="13775"/></tree></tree></tree><tree subject_id="13738"><tree subject_id="13753"/><tree subject_id="13764"/></tree></tree></tree><tree subject_id="13744"/></tree><tree subject_id="13742"><tree subject_id="13735"><tree subject_id="13737"><tree subject_id="13746"><tree subject_id="13757"/><tree subject_id="13758"/></tree><tree subject_id="13736"/></tree></tree><tree subject_id="13752"/></tree></tree></tree></tree></tree></tree></tree>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/node-set.8.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<xsl:transform
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:exsl="http://exslt.org/common"
+  extension-element-prefixes="exsl">
+
+  <xsl:template match="@*|node()" mode="copy">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()" mode="copy"/>
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="/">
+    <xsl:variable name="v">
+      <xsl:apply-templates mode="copy"/>
+    </xsl:variable>
+    <xsl:apply-templates select="exsl:node-set($v)" mode="copy"/>
+<!-- replacing the above line with the following one increases speed -->
+<!-- <xsl:apply-templates select="." mode="copy"/> -->
+  </xsl:template>
+
+<!-- removing the following line increases the speed -->
+  <xsl:key name="tree-by-subject_id" match="tree" use="@subject_id"/>
+
+</xsl:transform>
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<out xmlns:exslt="http://exslt.org/common">:
+    string;
+    number;
+    boolean;
+    node-set;
+    RTF;
+    external;                    
+  </out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?> 
+
+<doc>
+
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/common/object-type.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:exslt="http://exslt.org/common" >
+
+<!-- Test exslt:object-type -->
+
+<xsl:variable name="tree">
+<a><b><c><d/></c></b></a>
+</xsl:variable>
+
+<xsl:variable name="string" select="'fred'"/>
+<xsl:variable name="number" select="93.7"/>
+<xsl:variable name="boolean" select="true()"/>
+<xsl:variable name="node-set" select="//*"/>
+
+<xsl:template match="/">
+  <out>:
+    <xsl:value-of select="exslt:object-type($string)"/>;
+    <xsl:value-of select="exslt:object-type($number)"/>;
+    <xsl:value-of select="exslt:object-type($boolean)"/>;
+    <xsl:value-of select="exslt:object-type($node-set)"/>;
+    <xsl:value-of select="exslt:object-type($tree)"/>;
+    <xsl:if test="function-available('saxon:expression')" 
+            xmlns:saxon="http://icl.com/saxon">
+        <xsl:value-of select="exslt:object-type(saxon:expression('item'))"/> 
+    </xsl:if>;                    
+  </out>
+</xsl:template>
+ 
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,87 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = 						\
+	                              current.xsl	\
+	date.1.out	date.1.xml	date.1.xsl	\
+	date.2.out	date.2.xml	date.2.xsl	\
+	datetime.1.out	datetime.1.xml	datetime.1.xsl	\
+	datetime.2.out	datetime.2.xml	datetime.2.xsl	\
+	gday.1.out	gday.1.xml	gday.1.xsl	\
+	gday.2.out	gday.2.xml	gday.2.xsl	\
+	gmonth.1.out	gmonth.1.xml	gmonth.1.xsl	\
+	gmonth.2.out	gmonth.2.xml	gmonth.2.xsl	\
+	gmonthday.1.out	gmonthday.1.xml	gmonthday.1.xsl	\
+	gmonthday.2.out	gmonthday.2.xml	gmonthday.2.xsl	\
+	gyear.1.out	gyear.1.xml	gyear.1.xsl	\
+	gyear.2.out	gyear.2.xml	gyear.2.xsl	\
+	gyearmonth.1.out gyearmonth.1.xml gyearmonth.1.xsl	\
+	gyearmonth.2.out gyearmonth.2.xml gyearmonth.2.xsl	\
+	time.1.out	time.1.xml	time.1.xsl	\
+	time.2.out	time.2.xml	time.2.xsl	\
+	add.1.out	add.1.xml	add.1.xsl	\
+	add.2.out	add.2.xml	add.2.xsl	\
+	add-duration.1.out add-duration.1.xml add-duration.1.xsl \
+	add-duration.2.out add-duration.2.xml add-duration.2.xsl \
+	sum.1.out	sum.1.xml	sum.1.xsl	\
+	sum.2.out	sum.2.xml	sum.2.xsl	\
+	difference.1.out difference.1.xml difference.1.xsl	\
+	difference.2.out difference.2.xml difference.2.xsl	\
+	duration.1.out	duration.1.xml	duration.1.xsl	\
+	duration.2.out	duration.2.xml	duration.2.xsl	\
+	seconds.1.out	seconds.1.xml	seconds.1.xsl	\
+	seconds.2.out	seconds.2.xml	seconds.2.xsl
+
+all:
+
+test-current:
+	@(echo > .memdump)
+	@echo \<doc/\> >current.xml
+	@echo "#"
+	@echo "# Inspect the following for correctness"
+	@echo "#"
+	@(for i in $(srcdir)/current.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  $(top_builddir)/xsltproc/xsltproc $(srcdir)/$$name.xsl $(srcdir)/$$name.xml;\
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	  done)
+	@rm -f current.xml
+
+test-logall:
+	@echo '## Running exslt date tests'
+
+test tests: $(top_builddir)/xsltproc/xsltproc test-logall test-current
+	@echo '## Running exslt common tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad; \
+	  done)

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,455 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/exslt/date
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+	                              current.xsl	\
+	date.1.out	date.1.xml	date.1.xsl	\
+	date.2.out	date.2.xml	date.2.xsl	\
+	datetime.1.out	datetime.1.xml	datetime.1.xsl	\
+	datetime.2.out	datetime.2.xml	datetime.2.xsl	\
+	gday.1.out	gday.1.xml	gday.1.xsl	\
+	gday.2.out	gday.2.xml	gday.2.xsl	\
+	gmonth.1.out	gmonth.1.xml	gmonth.1.xsl	\
+	gmonth.2.out	gmonth.2.xml	gmonth.2.xsl	\
+	gmonthday.1.out	gmonthday.1.xml	gmonthday.1.xsl	\
+	gmonthday.2.out	gmonthday.2.xml	gmonthday.2.xsl	\
+	gyear.1.out	gyear.1.xml	gyear.1.xsl	\
+	gyear.2.out	gyear.2.xml	gyear.2.xsl	\
+	gyearmonth.1.out gyearmonth.1.xml gyearmonth.1.xsl	\
+	gyearmonth.2.out gyearmonth.2.xml gyearmonth.2.xsl	\
+	time.1.out	time.1.xml	time.1.xsl	\
+	time.2.out	time.2.xml	time.2.xsl	\
+	add.1.out	add.1.xml	add.1.xsl	\
+	add.2.out	add.2.xml	add.2.xsl	\
+	add-duration.1.out add-duration.1.xml add-duration.1.xsl \
+	add-duration.2.out add-duration.2.xml add-duration.2.xsl \
+	sum.1.out	sum.1.xml	sum.1.xsl	\
+	sum.2.out	sum.2.xml	sum.2.xsl	\
+	difference.1.out difference.1.xml difference.1.xsl	\
+	difference.2.out difference.2.xml difference.2.xsl	\
+	duration.1.out	duration.1.xml	duration.1.xsl	\
+	duration.2.out	duration.2.xml	duration.2.xsl	\
+	seconds.1.out	seconds.1.xml	seconds.1.xsl	\
+	seconds.2.out	seconds.2.xml	seconds.2.xsl
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/exslt/date/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/exslt/date/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+test-current:
+	@(echo > .memdump)
+	@echo \<doc/\> >current.xml
+	@echo "#"
+	@echo "# Inspect the following for correctness"
+	@echo "#"
+	@(for i in $(srcdir)/current.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  $(top_builddir)/xsltproc/xsltproc $(srcdir)/$$name.xsl $(srcdir)/$$name.xml;\
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	  done)
+	@rm -f current.xml
+
+test-logall:
+	@echo '## Running exslt date tests'
+
+test tests: $(top_builddir)/xsltproc/xsltproc test-logall test-current
+	@echo '## Running exslt common tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad; \
+	  done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,47 @@
+
+add-duration : P1Y + -P1Y
+result       : P0D
+add-duration : P1M + -P1M
+result       : P0D
+add-duration : P1D + -P1D
+result       : P0D
+add-duration : PT1H + -PT1H
+result       : P0D
+add-duration : PT1M + -PT1M
+result       : P0D
+add-duration : PT1S + -PT1S
+result       : P0D
+add-duration : P1Y + -P12M
+result       : P0D
+add-duration : P1D + -PT24H
+result       : P0D
+add-duration : P1D + -PT1440M
+result       : P0D
+add-duration : P1D + -PT86400S
+result       : P0D
+add-duration : P1Y1D + -P12MT86400S
+result       : P0D
+add-duration : P30D + PT24H
+result       : P31D
+add-duration : P10Y + P45M
+result       : P13Y9M
+add-duration : P10Y + -P12M
+result       : P9Y
+add-duration : P5Y11M + -P12M
+result       : P4Y11M
+add-duration : P1000Y11M30D + -PT9S
+result       : P1000Y11M29DT23H59M51S
+add-duration : P12M29D + P365D
+result       : P1Y394D
+add-duration : P1000Y + PT45.65S
+result       : P1000YT45.65S
+add-duration : PT23H59M0S + PT59S
+result       : PT23H59M59S
+add-duration : PT23H59M0S + PT61S
+result       : P1DT1S
+add-duration : P1000Y11M30DT23H59M0.1S + PT59.9S
+result       : P1000Y11M31D
+add-duration : P1000Y11M30DT23H59M1S + PT59S
+result       : P1000Y11M31D
+add-duration : P1000Y11M30D + -P1DT9S
+result       : P1000Y11M28DT23H59M51S
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<page>
+  <date dur1='P1Y' dur2='-P1Y'/>
+  <date dur1='P1M' dur2='-P1M'/>
+  <date dur1='P1D' dur2='-P1D'/>
+  <date dur1='PT1H' dur2='-PT1H'/>
+  <date dur1='PT1M' dur2='-PT1M'/>
+  <date dur1='PT1S' dur2='-PT1S'/>
+  <date dur1='P1Y' dur2='-P12M'/>
+  <date dur1='P1D' dur2='-PT24H'/>
+  <date dur1='P1D' dur2='-PT1440M'/>
+  <date dur1='P1D' dur2='-PT86400S'/>
+  <date dur1='P1Y1D' dur2='-P12MT86400S'/>
+  <date dur1='P30D' dur2='PT24H'/>
+  <date dur1='P10Y' dur2='P45M'/>
+  <date dur1='P10Y' dur2='-P12M'/>
+  <date dur1='P5Y11M' dur2='-P12M'/>
+  <date dur1='P1000Y11M30D' dur2='-PT9S'/>
+  <date dur1='P12M29D' dur2='P365D'/>
+  <date dur1='P1000Y' dur2='PT45.65S'/>
+  <date dur1='PT23H59M0S' dur2='PT59S'/>
+  <date dur1='PT23H59M0S' dur2='PT61S'/>
+  <date dur1='P1000Y11M30DT23H59M0.1S' dur2='PT59.9S'/>
+  <date dur1='P1000Y11M30DT23H59M1S'   dur2='PT59S'/>
+  <date dur1='P1000Y11M30D' dur2='-P1DT9S'/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="date">
+add-duration : <xsl:value-of select="@dur1"/> + <xsl:value-of select="@dur2"/>
+result       : <xsl:value-of select="date:add-duration(@dur1, at dur2)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+
+add-duration : 2001 + -P1Y
+result       : 
+add-duration : P1M + 2000-01-01
+result       : 
+add-duration : P11M30D + -P12M
+result       : 
+add-duration : P11M + -P12D
+result       : 
+add-duration : P1000Y11M + -PT9S
+result       : 
+add-duration : -P1000Y + PT9S
+result       : 
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid types -->
+  <date dur1='2001'      dur2='-P1Y'/>
+  <date dur1='P1M'       dur2='2000-01-01'/>
+  <!-- cannot express result -->
+  <date dur1='P11M30D'   dur2='-P12M'/>
+  <date dur1='P11M'      dur2='-P12D'/>
+  <date dur1='P1000Y11M' dur2='-PT9S'/>
+  <date dur1='-P1000Y'   dur2='PT9S'/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add-duration.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="date">
+add-duration : <xsl:value-of select="@dur1"/> + <xsl:value-of select="@dur2"/>
+result       : <xsl:value-of select="date:add-duration(@dur1, at dur2)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+
+add    : 2000-01-01T01:01:00Z + PT0S
+result : 2000-01-01T01:01:00Z
+add    : 2000-01-01T01:01:00Z + PT60S
+result : 2000-01-01T01:02:00Z
+add    : 2000-01-01T01:01:00Z + PT59S
+result : 2000-01-01T01:01:59Z
+add    : 2000-01-01 + PT86400S
+result : 2000-01-02
+add    : 2000-02-29 + PT86400S
+result : 2000-03-01
+add    : 2000-01-01 + -PT86400S
+result : 1999-12-31
+add    : -0001-12-31T23:59:59 + PT1S
+result : 0001-01-01T00:00:00Z
+add    : 0001-01-01T00:00:00 + -PT1S
+result : -0001-12-31T23:59:59Z
+add    : 2000-01-01T00:00:00Z + -PT59S
+result : 1999-12-31T23:59:01Z
+add    : -0001 + -PT59S
+result : -0002-12-31T23:59:01Z
+add    : -0001 + P1Y
+result : 0001
+add    : 2000-01 + -PT86400S
+result : 1999-12-31
+add    : 2000-01 + -P1D
+result : 1999-12-31
+add    : 1970-01-01T00:00:00-00:30 + -PT30S
+result : 1970-01-01T00:29:30Z
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<page>
+  <date date='2000-01-01T01:01:00Z' dur='PT0S'/>
+  <date date='2000-01-01T01:01:00Z' dur='PT60S'/>
+  <date date='2000-01-01T01:01:00Z' dur='PT59S'/>
+  <date date='2000-01-01'           dur='PT86400S'/>
+  <date date='2000-02-29'           dur='PT86400S'/>
+  <date date='2000-01-01'           dur='-PT86400S'/>
+  <date date='-0001-12-31T23:59:59' dur='PT1S'/>
+  <date date='0001-01-01T00:00:00'  dur='-PT1S'/>
+  <date date='2000-01-01T00:00:00Z' dur='-PT59S'/>
+  <date date='-0001'                dur='-PT59S'/>
+  <date date='-0001'                dur='P1Y'/>
+  <date date='2000-01'              dur='-PT86400S'/>
+  <date date='2000-01'              dur='-P1D'/>
+  <date date='1970-01-01T00:00:00-00:30' dur='-PT30S'/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="date">
+add    : <xsl:value-of select="@date"/> + <xsl:value-of select="@dur"/>
+result : <xsl:value-of select="date:add(@date, at dur)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+
+add    : PT0S + 2000-01-01T01:01:00Z
+result : 
+add    : 2000-01-01T01:01:00Z + 
+result : 
+add    :  + PT60S
+result : 
+add    : --10-29 + PT60S
+result : 
+add    : ---29 + PT60S
+result : 
+add    : 10:31:07 + PT60S
+result : 
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid arguments -->
+  <date date='PT0S'                 dur='2000-01-01T01:01:00Z'/>
+  <date date='2000-01-01T01:01:00Z' dur=''/>
+  <date date=''                     dur='PT60S'/>
+  <!-- invalid date/time types -->
+  <date date="--10-29"              dur="PT60S"/>
+  <date date="---29"                dur="PT60S"/>
+  <date date="10:31:07"             dur="PT60S"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/add.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="date">
+add    : <xsl:value-of select="@date"/> + <xsl:value-of select="@dur"/>
+result : <xsl:value-of select="date:add(@date, at dur)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/current.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/current.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/current.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="/">
+  <xsl:message>Current Date : <xsl:value-of select="date:date-time()"/>
+     <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+     year                 : <xsl:value-of select="date:year()"/>
+     <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+     leap-year            : <xsl:value-of select="date:leap-year()"/>
+     <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+     month-in-year        : <xsl:value-of select="date:month-in-year()"/>
+     <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+     month-name           : <xsl:value-of select="date:month-name()"/>
+     <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+     month-abbreviation   : <xsl:value-of select="date:month-abbreviation()"/>
+     <!-- dateTime or date; else NaN -->
+     week-in-year         : <xsl:value-of select="date:week-in-year()"/>
+     <!-- dateTime, date; else NaN -->
+     day-in-year          : <xsl:value-of select="date:day-in-year()"/>
+     <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+     day-in-month         : <xsl:value-of select="date:day-in-month()"/>
+     <!-- dateTime, date; else NaN -->
+     day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month()"/>
+     <!-- dateTime, date; else NaN -->
+     day-in-week          : <xsl:value-of select="date:day-in-week()"/>
+     <!-- dateTime or date; else NaN -->
+     day-name             : <xsl:value-of select="date:day-name()"/>
+     <!-- dateTime or date; else NaN -->
+     day-abbreviation     : <xsl:value-of select="date:day-abbreviation()"/>
+    <!-- dateTime or time;  else '' -->
+     time                 : <xsl:value-of select="date:time()"/>
+     <!-- dateTime or time;  else NaN -->
+     hour-in-day          : <xsl:value-of select="date:hour-in-day()"/>
+     <!-- dateTime or time;  else NaN -->
+     minute-in-hour       : <xsl:value-of select="date:minute-in-hour()"/>
+     <!-- dateTime or time;  else NaN -->
+     second-in-minute     : <xsl:value-of select="date:second-in-minute()"/>
+  </xsl:message>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,92 @@
+
+  
+  
+  Test Date : 0001-12-31Z
+    year                 : 1
+    leap-year            : false
+    month-in-year        : 12
+    month-name           : December
+    month-abbreviation   : Dec
+    week-in-year         : 53
+    day-in-year          : 365
+    day-in-month         : 31
+    day-of-week-in-month : 5
+    day-in-week          : 2
+    day-name             : Monday
+    day-abbreviation     : Mon
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 3000-01-31
+    year                 : 3000
+    leap-year            : false
+    month-in-year        : 1
+    month-name           : January
+    month-abbreviation   : Jan
+    week-in-year         : 5
+    day-in-year          : 31
+    day-in-month         : 31
+    day-of-week-in-month : 5
+    day-in-week          : 6
+    day-name             : Friday
+    day-abbreviation     : Fri
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2000-02-29
+    year                 : 2000
+    leap-year            : true
+    month-in-year        : 2
+    month-name           : February
+    month-abbreviation   : Feb
+    week-in-year         : 9
+    day-in-year          : 60
+    day-in-month         : 29
+    day-of-week-in-month : 5
+    day-in-week          : 3
+    day-name             : Tuesday
+    day-abbreviation     : Tue
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 9990001-12-31Z
+    year                 : 9990001
+    leap-year            : false
+    month-in-year        : 12
+    month-name           : December
+    month-abbreviation   : Dec
+    week-in-year         : 53
+    day-in-year          : 365
+    day-in-month         : 31
+    day-of-week-in-month : 5
+    day-in-week          : 2
+    day-name             : Monday
+    day-abbreviation     : Mon
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : -0004-02-29
+    year                 : -4
+    leap-year            : true
+    month-in-year        : 2
+    month-name           : February
+    month-abbreviation   : Feb
+    week-in-year         : 10
+    day-in-year          : 60
+    day-in-month         : 29
+    day-of-week-in-month : 5
+    day-in-week          : 1
+    day-name             : Sunday
+    day-abbreviation     : Sun
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<page>
+  <!-- valid xs:date -->
+  <date date="0001-12-31Z"/>
+  <date date="3000-01-31"/>
+  <date date="2000-02-29"/>
+  <date date="9990001-12-31Z"/>
+  <date date="-0004-02-29"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,129 @@
+
+  
+  
+  Test Date : -1-01-31
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : +1-01-31
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  
+  Test Date : 0001-12-32Z
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 0001-13-01
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 0001-11-00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 0001-99-01
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 0001-01-99
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid xs:date syntax -->
+  <date date="-1-01-31"/>
+  <date date="+1-01-31"/>
+  <!-- invalid xs:date values -->
+  <date date="0001-12-32Z"/>
+  <date date="0001-13-01"/>
+  <date date="0001-11-00"/>
+  <date date="0001-99-01"/>
+  <date date="0001-01-99"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/date.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,92 @@
+
+  
+  
+  Test Date : 2001-02-28T10:31:07
+    year                 : 2001
+    leap-year            : false
+    month-in-year        : 2
+    month-name           : February
+    month-abbreviation   : Feb
+    week-in-year         : 9
+    day-in-year          : 59
+    day-in-month         : 28
+    day-of-week-in-month : 4
+    day-in-week          : 4
+    day-name             : Wednesday
+    day-abbreviation     : Wed
+    time                 : 10:31:07
+    hour-in-day          : 10
+    minute-in-hour       : 31
+    second-in-minute     : 7
+  
+  Test Date : 0001-12-31T23:59:59.1234-05:00
+    year                 : 1
+    leap-year            : false
+    month-in-year        : 12
+    month-name           : December
+    month-abbreviation   : Dec
+    week-in-year         : 53
+    day-in-year          : 365
+    day-in-month         : 31
+    day-of-week-in-month : 5
+    day-in-week          : 2
+    day-name             : Monday
+    day-abbreviation     : Mon
+    time                 : 23:59:59.1234-05:00
+    hour-in-day          : 23
+    minute-in-hour       : 59
+    second-in-minute     : 59.1234
+  
+  Test Date : -0001-12-31T23:59:59-05:00
+    year                 : -1
+    leap-year            : false
+    month-in-year        : 12
+    month-name           : December
+    month-abbreviation   : Dec
+    week-in-year         : 53
+    day-in-year          : 365
+    day-in-month         : 31
+    day-of-week-in-month : 5
+    day-in-week          : 1
+    day-name             : Sunday
+    day-abbreviation     : Sun
+    time                 : 23:59:59-05:00
+    hour-in-day          : 23
+    minute-in-hour       : 59
+    second-in-minute     : 59
+  
+  Test Date : 10000-12-31T23:59:59.9901Z
+    year                 : 10000
+    leap-year            : true
+    month-in-year        : 12
+    month-name           : December
+    month-abbreviation   : Dec
+    week-in-year         : 53
+    day-in-year          : 366
+    day-in-month         : 31
+    day-of-week-in-month : 5
+    day-in-week          : 1
+    day-name             : Sunday
+    day-abbreviation     : Sun
+    time                 : 23:59:59.9901Z
+    hour-in-day          : 23
+    minute-in-hour       : 59
+    second-in-minute     : 59.9901
+  
+  Test Date : -10000-12-31T23:59:59Z
+    year                 : -10000
+    leap-year            : true
+    month-in-year        : 12
+    month-name           : December
+    month-abbreviation   : Dec
+    week-in-year         : 53
+    day-in-year          : 366
+    day-in-month         : 31
+    day-of-week-in-month : 5
+    day-in-week          : 4
+    day-name             : Wednesday
+    day-abbreviation     : Wed
+    time                 : 23:59:59Z
+    hour-in-day          : 23
+    minute-in-hour       : 59
+    second-in-minute     : 59

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<page>
+  <!-- valid xs:dateTime -->
+  <date date="2001-02-28T10:31:07"/>
+  <date date='0001-12-31T23:59:59.1234-05:00'/>
+  <date date='-0001-12-31T23:59:59-05:00'/>
+  <date date='10000-12-31T23:59:59.9901Z'/>
+  <date date='-10000-12-31T23:59:59Z'/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,309 @@
+
+  
+  
+  Test Date : 2001-02-2810:31:07
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2001-02-2810:31:07Z
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2001-02-28t10:31:07
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2001-02-28T10:31:07z
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 02001-02-28T10-31-07
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2001-02-2810:31:07-6:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2001-02-2810:31:07-06:00Z
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 01-02-28T10:31:07
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 02001-02-28T10:31:07
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : -001-02-28T10:31:07Z
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2001-2-28T10:31:07-06:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2001-02-2T10:31:07-06:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2001-02-28T1:31:07-06:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2001-02-28T10:1:07-06:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2001-02-28T10:31:7-06:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2001-02-28T10:31:07-06
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  
+  Test Date : 2001-02-29T10:31:07Z
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid xs:dateTime syntax -->
+  <date date="2001-02-2810:31:07"/>
+  <date date="2001-02-2810:31:07Z"/>
+  <date date="2001-02-28t10:31:07"/>
+  <date date="2001-02-28T10:31:07z"/>
+  <date date="02001-02-28T10-31-07"/>
+  <date date="2001-02-2810:31:07-6:00"/>
+  <date date="2001-02-2810:31:07-06:00Z"/>
+  <date date="01-02-28T10:31:07"/>
+  <date date="02001-02-28T10:31:07"/>
+  <date date="-001-02-28T10:31:07Z"/>
+  <date date="2001-2-28T10:31:07-06:00"/>
+  <date date="2001-02-2T10:31:07-06:00"/>
+  <date date="2001-02-28T1:31:07-06:00"/>
+  <date date="2001-02-28T10:1:07-06:00"/>
+  <date date="2001-02-28T10:31:7-06:00"/>
+  <date date="2001-02-28T10:31:07-06"/>
+  <!-- invalid xs:dateTime values -->
+  <date date="2001-02-29T10:31:07Z"/>
+</page>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/datetime.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,35 @@
+
+difference : 2000 - 1999
+result     : -P1Y
+difference : 2000-01 - 1999-12
+result     : -P1M
+difference : 1999-12 - 2000-01
+result     : P1M
+difference : 1999-12-31 - 2000-01-01
+result     : P1D
+difference : 1999 - 2000-01
+result     : P1Y
+difference : 0002-01-05 - 0001-01-04
+result     : -P366D
+difference : 0002-05-05 - 0001-01
+result     : -P1Y4M
+difference : -0002-01-05 - 0001-01-04
+result     : P729D
+difference : 1970-01-01T05:04:03 - 1970-01-01T04:03:02
+result     : -PT1H1M1S
+difference : 2000-01-01T05:00:03 - 2000-01-01T04:03:02
+result     : -PT57M1S
+difference : 2000-01-01T05:00:03 - 1980-01-01T04:03:02
+result     : -P7305DT57M1S
+difference : 1970-01-01T04:03:02 - 1970-01-01T05:04:03
+result     : PT1H1M1S
+difference : 2000-01-01T04:03:02 - 2000-01-01T05:00:03
+result     : PT57M1S
+difference : 1980-01-01T04:03:02 - 2000-01-01T05:00:03
+result     : P7305DT57M1S
+difference : 2002-05-02T23:59:59 - 2002-05-03T00:00:01
+result     : PT2S
+difference : 2002-05-03T00:00:01 - 2002-05-02T23:59:59
+result     : -PT2S
+difference : 2000-01-02T05:00:03 - 2000-01-01T04:03:02
+result     : -P1DT57M1S
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<page>
+  <!-- valid date/times -->
+  <date date1='2000' date2='1999'/>
+  <date date1='2000-01' date2='1999-12'/>
+  <date date1='1999-12' date2='2000-01'/>
+  <date date1='1999-12-31' date2='2000-01-01'/>
+  <date date1='1999' date2='2000-01'/>
+  <date date1='0002-01-05' date2='0001-01-04'/>
+  <date date1='0002-05-05' date2='0001-01'/>
+  <date date1='-0002-01-05' date2='0001-01-04'/>
+  <date date1='1970-01-01T05:04:03' date2='1970-01-01T04:03:02'/>
+  <date date1='2000-01-01T05:00:03' date2='2000-01-01T04:03:02'/>
+  <date date1='2000-01-01T05:00:03' date2='1980-01-01T04:03:02'/>
+  <!-- from bug #93444 -->
+  <date date2='1970-01-01T05:04:03' date1='1970-01-01T04:03:02'/>
+  <date date2='2000-01-01T05:00:03' date1='2000-01-01T04:03:02'/>
+  <date date2='2000-01-01T05:00:03' date1='1980-01-01T04:03:02'/>
+  <!-- from bug #92818 -->
+  <date date1='2002-05-02T23:59:59' date2='2002-05-03T00:00:01'/>
+  <date date2='2002-05-02T23:59:59' date1='2002-05-03T00:00:01'/>
+  <!-- result should be negative -->
+  <date date1='2000-01-02T05:00:03' date2='2000-01-01T04:03:02'/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="date">
+difference : <xsl:value-of select="@date1"/> - <xsl:value-of select="@date2"/>
+result     : <xsl:value-of select="date:difference(@date1, at date2)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+
+difference : 2000-01-01T05:00:03 - ---01
+result     : 
+difference : 0002-01-05 - --01-04
+result     : 
+difference : 1970-01-01T05:04:03 - 04:03:02
+result     : 
+difference : 2000 - 
+result     : 
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid date/time types -->
+  <date date1='2000-01-01T05:00:03' date2='---01'/>
+  <date date1='0002-01-05' date2='--01-04'/>
+  <date date1='1970-01-01T05:04:03' date2='04:03:02'/>
+  <date date1='2000' date2=''/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/difference.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="date">
+difference : <xsl:value-of select="@date1"/> - <xsl:value-of select="@date2"/>
+result     : <xsl:value-of select="date:difference(@date1, at date2)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+
+duration : 60
+result   : PT1M
+duration : 360
+result   : PT6M
+duration : 3600
+result   : PT1H
+duration : 86400
+result   : P1D
+duration : 86400.5
+result   : P1DT0.5S
+duration : 3660
+result   : PT1H1M
+duration : 61
+result   : PT1M1S
+duration : 90061
+result   : P1DT1H1M1S
+duration : 0.5
+result   : PT0.5S
+duration : 0.05
+result   : PT0.05S
+duration : 990.005
+result   : PT16M30.005S
+duration : -60
+result   : -PT1M
+duration : 9999999999999
+result   : P115740740DT17H46M39S
+duration : -2999999999
+result   : -P34722DT5H19M59S
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<page>
+  <date seconds="60"/>
+  <date seconds="360"/>
+  <date seconds="3600"/>
+  <date seconds="86400"/>
+  <date seconds="86400.5"/>
+  <date seconds="3660"/>
+  <date seconds="61"/>
+  <date seconds="90061"/>
+  <date seconds="0.5"/>
+  <date seconds="0.05"/>
+  <date seconds="990.005"/>
+  <date seconds="-60"/>
+  <date seconds="9999999999999"/>
+  <date seconds="-2999999999"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="date">
+duration : <xsl:value-of select="@seconds"/>
+result   : <xsl:value-of select="date:duration(@seconds)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+
+duration : P10Y20M100DT
+result   : 
+duration : P-10Y
+result   : 
+duration : P10YM100D
+result   : 
+duration : P10Y100D10M
+result   : 
+duration : P10Y10H
+result   : 
+duration : P10Y10Y
+result   : 
+duration : P10.0Y
+result   : 
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<page>
+ <!-- errors -->
+ <date seconds="P10Y20M100DT"/>
+ <date seconds="P-10Y"/>
+ <date seconds="P10YM100D"/>
+ <date seconds="P10Y100D10M"/>
+ <date seconds="P10Y10H"/>
+ <date seconds="P10Y10Y"/>
+ <date seconds="P10.0Y"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/duration.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="date">
+duration : <xsl:value-of select="@seconds"/>
+result   : <xsl:value-of select="date:duration(@seconds)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,74 @@
+
+  
+  
+  Test Date : ---11
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : 11
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : ---31
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : 31
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : ---01
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : 1
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : ---25
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : 25
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<page>
+  <!-- valid xs:gDay -->
+  <date date="---11"/>
+  <date date="---31"/>
+  <date date="---01"/>
+  <date date="---25"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,75 @@
+
+  
+  
+  Test Date : --09-
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : ---9
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  
+  Test Date : ---32
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : ---00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid xs:gDay syntax -->
+  <date date="--09-"/>
+  <date date="---9"/>
+  <!-- invalid xs:gDay values -->
+  <date date="---32"/>
+  <date date="---00"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gday.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,74 @@
+
+  
+  
+  Test Date : --12--
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : 12
+    month-name           : December
+    month-abbreviation   : Dec
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : --06--
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : 6
+    month-name           : June
+    month-abbreviation   : Jun
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : --02--
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : 2
+    month-name           : February
+    month-abbreviation   : Feb
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : --11--
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : 11
+    month-name           : November
+    month-abbreviation   : Nov
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<page>
+  <!-- valid xs:gMonth -->
+  <date date="--12--"/>
+  <date date="--06--"/>
+  <date date="--02--"/>
+  <date date="--11--"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,57 @@
+
+  
+  
+  Test Date : --09-
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  
+  Test Date : --00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : --13
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid xs:gMonth syntax -->
+  <date date="--09-"/>
+  <!-- invalid xs:gMonth values -->
+  <date date="--00"/>
+  <date date="--13"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonth.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,110 @@
+
+  
+  
+  Test Date : --01-01
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : 1
+    month-name           : January
+    month-abbreviation   : Jan
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : 1
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : --02-28
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : 2
+    month-name           : February
+    month-abbreviation   : Feb
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : 28
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : --06-04
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : 6
+    month-name           : June
+    month-abbreviation   : Jun
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : 4
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : --09-01
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : 9
+    month-name           : September
+    month-abbreviation   : Sep
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : 1
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : --10-31
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : 10
+    month-name           : October
+    month-abbreviation   : Oct
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : 31
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : --12-31
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : 12
+    month-name           : December
+    month-abbreviation   : Dec
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : 31
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<page>
+  <!-- valid xs:gMonthDay -->
+  <date date="--01-01"/>
+  <date date="--02-28"/>
+  <date date="--06-04"/>
+  <date date="--09-01"/>
+  <date date="--10-31"/>
+  <date date="--12-31"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,57 @@
+
+  
+  
+  Test Date : ---09-01
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : --09-01-
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  
+  Test Date : --01-00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid xs:gMonthDay syntax -->
+  <date date="---09-01"/>
+  <date date="--09-01-"/>
+  <!-- invalid xs:gMonthDay values -->
+  <date date="--01-00"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gmonthday.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,92 @@
+
+  
+  
+  Test Date : 0001
+    year                 : 1
+    leap-year            : false
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 3000
+    year                 : 3000
+    leap-year            : false
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2000
+    year                 : 2000
+    leap-year            : true
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 9990001
+    year                 : 9990001
+    leap-year            : false
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : -0004
+    year                 : -4
+    leap-year            : true
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<page>
+  <!-- valid xs:gYear -->
+  <date date="0001"/>
+  <date date="3000"/>
+  <date date="2000"/>
+  <date date="9990001"/>
+  <date date="-0004"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,39 @@
+
+  
+  
+  Test Date : 00010
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  
+  Test Date : 0000
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid xs:gYear syntax -->
+  <date date="00010"/>
+  <!-- invalid xs:gYear values -->
+  <date date="0000"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyear.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,92 @@
+
+  
+  
+  Test Date : 0001-12
+    year                 : 1
+    leap-year            : false
+    month-in-year        : 12
+    month-name           : December
+    month-abbreviation   : Dec
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 3000-01
+    year                 : 3000
+    leap-year            : false
+    month-in-year        : 1
+    month-name           : January
+    month-abbreviation   : Jan
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 2000-02
+    year                 : 2000
+    leap-year            : true
+    month-in-year        : 2
+    month-name           : February
+    month-abbreviation   : Feb
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 9990001-12
+    year                 : 9990001
+    leap-year            : false
+    month-in-year        : 12
+    month-name           : December
+    month-abbreviation   : Dec
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : -0004-02
+    year                 : -4
+    leap-year            : true
+    month-in-year        : 2
+    month-name           : February
+    month-abbreviation   : Feb
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<page>
+  <!-- valid xs:gYearMonth -->
+  <date date="0001-12"/>
+  <date date="3000-01"/>
+  <date date="2000-02"/>
+  <date date="9990001-12"/>
+  <date date="-0004-02"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,39 @@
+
+  
+  
+  Test Date : 0010-8
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  
+  Test Date : 0001-13
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid xs:gYearMonth syntax -->
+  <date date="0010-8"/>
+  <!-- invalid xs:gYearMonth values -->
+  <date date="0001-13"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/gyearmonth.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,37 @@
+
+seconds : PT10M
+result  : 600
+seconds : -P10D
+result  : -864000
+seconds : PT10H
+result  : 36000
+seconds : PT10H10M10.5S
+result  : 36610.5
+seconds : PT0.00001S
+result  : 0.00001
+seconds : PT49.00001S
+result  : 49.00001
+seconds : P0Y0M31DT10H10M10.09S
+result  : 2715010.09
+seconds : -P0Y0M31DT10H10M10.09S
+result  : -2715010.09
+seconds : PT100H100M100.001S
+result  : 366100.001
+seconds : 2001
+result  : 978307200
+seconds : 2001-10-29T10:31:07
+result  : 1004351467
+seconds : 1970-01-01T00:00:00
+result  : 0
+seconds : 1970-01-01T00:00:01
+result  : 1
+seconds : 1969-12-31T23:59:59
+result  : -1
+seconds : 1969-01-01T00:00:00
+result  : -31536000
+seconds : 1971-01-01T00:00:00
+result  : 31536000
+seconds : 0001-01-01T00:00:00
+result  : -6.21355968e+10
+seconds : -0001-01-01T00:00:00
+result  : -6.21671328e+10

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<page>
+  <!-- valid durations -->
+  <date duration="PT10M"/>
+  <date duration="-P10D"/>
+  <date duration="PT10H"/>
+  <date duration="PT10H10M10.5S"/>
+  <date duration="PT0.00001S"/>
+  <date duration="PT49.00001S"/>
+  <date duration="P0Y0M31DT10H10M10.09S"/>
+  <date duration="-P0Y0M31DT10H10M10.09S"/>
+  <date duration="PT100H100M100.001S"/>
+  <!-- date/times -->
+  <date duration="2001"/>
+  <date duration="2001-10-29T10:31:07"/>
+  <date duration="1970-01-01T00:00:00"/>
+  <date duration="1970-01-01T00:00:01"/>
+  <date duration="1969-12-31T23:59:59"/>
+  <date duration="1969-01-01T00:00:00"/>
+  <date duration="1971-01-01T00:00:00"/>
+  <date duration="0001-01-01T00:00:00"/>
+  <date duration="-0001-01-01T00:00:00"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="html"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="date">
+seconds : <xsl:value-of select="@duration"/>
+result  : <xsl:value-of select="date:seconds(@duration)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,27 @@
+
+seconds : P10H
+result  : NaN
+seconds : P-T10D
+result  : NaN
+seconds : PT-10D
+result  : NaN
+seconds : --PT10H
+result  : NaN
+seconds : PT10H10M.5S
+result  : NaN
+seconds : PYT0.00001S
+result  : NaN
+seconds : PT49.00001
+result  : NaN
+seconds : P0Y0MDT10H10M10.09S
+result  : NaN
+seconds : --10-29
+result  : NaN
+seconds : ---29
+result  : NaN
+seconds : 10:31:07
+result  : NaN
+seconds : P10Y20M100DT40H61M100S
+result  : NaN
+seconds : P10000Y
+result  : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid duration syntax -->
+  <date duration="P10H"/>
+  <date duration="P-T10D"/>
+  <date duration="PT-10D"/>
+  <date duration="--PT10H"/>
+  <date duration="PT10H10M.5S"/>
+  <date duration="PYT0.00001S"/>
+  <date duration="PT49.00001"/>
+  <date duration="P0Y0MDT10H10M10.09S"/>
+  <!-- invalid date/time type -->
+  <date duration="--10-29"/>
+  <date duration="---29"/>
+  <date duration="10:31:07"/>
+  <!-- invalid duration values for date:seconds -->
+  <!-- years and months are not handled by date:seconds() -->
+  <date duration="P10Y20M100DT40H61M100S"/>
+  <date duration="P10000Y"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/seconds.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="html"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="date">
+seconds : <xsl:value-of select="@duration"/>
+result  : <xsl:value-of select="date:seconds(@duration)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+
+sum    : PT1M + PT2M
+result : PT3M
+sum    : P1DT2H + PT3M + PT4S
+result : P1DT2H3M4S
+sum    : PT20M + PT20M + PT20M
+result : PT1H
+sum    : PT01S + PT02S + PT04S + PT8S + PT16S + PT32S
+result : PT1M3S
+sum    : P1M
+result : P1M
+sum    : PT70M
+result : PT1H10M
+sum    : PT70M + P13M
+result : P1Y1MT1H10M
+sum    : PT70M + -PT30M
+result : PT40M
+sum    : PT1H10M + -PT30M + -PT30S
+result : PT39M30S
+sum    : PT1M + -PT1M
+result : P0D
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<page>
+  <!-- valid date/times -->
+  <sum>
+    <date dur='PT1M'/>
+    <date dur='PT2M'/>
+  </sum>
+
+  <sum>
+    <date dur='P1DT2H'/>
+    <date dur='PT3M'/>
+    <date dur='PT4S'/>
+  </sum>
+
+  <sum>
+    <date dur='PT20M'/>
+    <date dur='PT20M'/>
+    <date dur='PT20M'/>
+  </sum>
+
+  <sum>
+    <date dur='PT01S'/>
+    <date dur='PT02S'/>
+    <date dur='PT04S'/>
+    <date dur='PT8S'/>
+    <date dur='PT16S'/>
+    <date dur='PT32S'/>
+  </sum>
+
+  <!-- Base case: sum of 1 node -->
+  <sum>
+    <date dur='P1M'/>
+  </sum>
+
+  <!-- Non-normalized input -->
+  <sum>
+    <date dur='PT70M'/>
+  </sum>
+
+  <sum>
+    <date dur='PT70M'/>
+    <date dur='P13M'/>
+  </sum>
+
+  <!-- Negative durations -->
+  <sum>
+    <date dur='PT70M'/>
+    <date dur='-PT30M'/>
+  </sum>
+
+  <sum>
+    <date dur='PT1H10M'/>
+    <date dur='-PT30M'/>
+    <date dur='-PT30S'/>
+  </sum>
+
+  <!-- Zero sum -->
+  <sum>
+    <date dur='PT1M'/>
+    <date dur='-PT1M'/>
+  </sum>
+
+</page>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="sum">
+sum    : <xsl:apply-templates select="date"/>
+result : <xsl:value-of select="date:sum(date/@dur)"/>
+</xsl:template>
+
+<xsl:template match="date">
+  <xsl:if test="position() != 1"> + </xsl:if>
+  <xsl:value-of select="@dur"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+
+sum    : 
+result : 
+sum    : P1M + -P1D
+result : 
+sum    : P1M + -P1D + P1D
+result : 
+sum    : P1M + P1D + -P1D
+result : P1M
+sum    : 
+result : 
+sum    :  + P45S
+result : 
+sum    : 2004-09-20
+result : 
+sum    : 1H
+result : 
+sum    : 2004-09-22 + P1D
+result : 
+sum    : P2D + --P1D
+result : 
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<page>
+  <!-- sum of empty node-set -->
+  <sum/>
+
+  <!-- According to http://exslt.org/date/functions/add-duration/
+       add-duration should fail when a sum involving negative durations
+       involve borrowing -->
+  <sum>
+    <date dur='P1M'/>
+    <date dur='-P1D'/>
+  </sum>
+
+  <sum>
+    <date dur='P1M'/>
+    <date dur='-P1D'/>
+    <date dur='P1D'/>
+  </sum>
+
+  <!-- ... but switching the order should make it work -->
+  <sum>
+    <date dur='P1M'/>
+    <date dur='P1D'/>
+    <date dur='-P1D'/>
+  </sum>
+
+  <!-- Empty durations -->
+  <sum>
+    <date dur=''/>
+  </sum>
+
+  <sum>
+    <date dur=''/>
+    <date dur='P45S'/>
+  </sum>
+
+  <!-- Invalid durations -->
+  <sum>
+    <date dur='2004-09-20'/>
+  </sum>
+
+  <sum>
+    <date dur='1H'/>
+  </sum>
+
+  <sum>
+    <date dur='2004-09-22'/>
+    <date dur='P1D'/>
+  </sum>
+
+  <sum>
+    <date dur='P2D'/>
+    <date dur='--P1D'/>
+  </sum>
+</page>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/sum.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="sum">
+sum    : <xsl:apply-templates select="date"/>
+result : <xsl:value-of select="date:sum(date/@dur)"/>
+</xsl:template>
+
+<xsl:template match="date">
+  <xsl:if test="position() != 1"> + </xsl:if>
+  <xsl:value-of select="@dur"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,128 @@
+
+  
+  
+  Test Date : 00:00:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 00:00:00
+    hour-in-day          : 0
+    minute-in-hour       : 0
+    second-in-minute     : 0
+  
+  Test Date : 23:59:59
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 23:59:59
+    hour-in-day          : 23
+    minute-in-hour       : 59
+    second-in-minute     : 59
+  
+  Test Date : 11:11:11
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 11:11:11
+    hour-in-day          : 11
+    minute-in-hour       : 11
+    second-in-minute     : 11
+  
+  Test Date : 22:22:22
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 22:22:22
+    hour-in-day          : 22
+    minute-in-hour       : 22
+    second-in-minute     : 22
+  
+  Test Date : 23:33:33
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 23:33:33
+    hour-in-day          : 23
+    minute-in-hour       : 33
+    second-in-minute     : 33
+  
+  Test Date : 14:44:44
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 14:44:44
+    hour-in-day          : 14
+    minute-in-hour       : 44
+    second-in-minute     : 44
+  
+  Test Date : 15:55:55
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 15:55:55
+    hour-in-day          : 15
+    minute-in-hour       : 55
+    second-in-minute     : 55

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<page>
+  <!-- valid xs:time -->
+  <date date="00:00:00"/>
+  <date date="23:59:59"/>
+  <date date="11:11:11"/>
+  <date date="22:22:22"/>
+  <date date="23:33:33"/>
+  <date date="14:44:44"/>
+  <date date="15:55:55"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,219 @@
+
+  
+  
+  Test Date : 10:31:07z
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : T10:31:07
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 10:31-07
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 10:31:07-6:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 10:31:07-06:00Z
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  
+  Test Date : 00:00:00+24:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 24:00:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 00:60:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 00:00:60
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 99:00:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 00:99:00
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN
+  
+  Test Date : 00:00:99
+    year                 : NaN
+    leap-year            : NaN
+    month-in-year        : NaN
+    month-name           : 
+    month-abbreviation   : 
+    week-in-year         : NaN
+    day-in-year          : NaN
+    day-in-month         : NaN
+    day-of-week-in-month : NaN
+    day-in-week          : NaN
+    day-name             : 
+    day-abbreviation     : 
+    time                 : 
+    hour-in-day          : NaN
+    minute-in-hour       : NaN
+    second-in-minute     : NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<page>
+  <!-- invalid xs:time syntax -->
+  <date date="10:31:07z"/>
+  <date date="T10:31:07"/>
+  <date date="10:31-07"/>
+  <date date="10:31:07-6:00"/>
+  <date date="10:31:07-06:00Z"/>
+  <!-- invalid xs:time values -->
+  <date date="00:00:00+24:00"/>
+  <date date="24:00:00"/>
+  <date date="00:60:00"/>
+  <date date="00:00:60"/>
+  <date date="99:00:00"/>
+  <date date="00:99:00"/>
+  <date date="00:00:99"/>
+</page>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/date/time.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:date="http://exslt.org/dates-and-times"
+                extension-element-prefixes="date">
+
+<xsl:output method="text"/>
+
+<xsl:template match="date">
+  Test Date : <xsl:value-of select="@date"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    year                 : <xsl:value-of select="date:year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gYear; else NaN -->
+    leap-year            : <xsl:value-of select="date:leap-year(@date)"/>
+    <!-- dateTime, date, gYearMonth, gMonth or gMonthDay; else NaN -->
+    month-in-year        : <xsl:value-of select="date:month-in-year(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-name           : <xsl:value-of select="date:month-name(@date)"/>
+    <!-- dateTime, date, gYearMonth or gMonth; else '' -->
+    month-abbreviation   : <xsl:value-of select="date:month-abbreviation(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    week-in-year         : <xsl:value-of select="date:week-in-year(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-year          : <xsl:value-of select="date:day-in-year(@date)"/>
+    <!-- dateTime, date, gMonthDay or gDay; else NaN -->
+    day-in-month         : <xsl:value-of select="date:day-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-of-week-in-month : <xsl:value-of select="date:day-of-week-in-month(@date)"/>
+    <!-- dateTime, date; else NaN -->
+    day-in-week          : <xsl:value-of select="date:day-in-week(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-name             : <xsl:value-of select="date:day-name(@date)"/>
+    <!-- dateTime or date; else NaN -->
+    day-abbreviation     : <xsl:value-of select="date:day-abbreviation(@date)"/>
+    <!-- dateTime or time;  else '' -->
+    time                 : <xsl:value-of select="date:time(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    hour-in-day          : <xsl:value-of select="date:hour-in-day(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    minute-in-hour       : <xsl:value-of select="date:minute-in-hour(@date)"/>
+    <!-- dateTime or time;  else NaN -->
+    second-in-minute     : <xsl:value-of select="date:second-in-minute(@date)"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = 							\
+  dynmap.out     dynmap.xml     dynmap.xsl
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt sets tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,414 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/exslt/dynamic
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+  dynmap.out     dynmap.xml     dynmap.xsl
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/exslt/dynamic/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/exslt/dynamic/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt sets tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<result>
+  <node-set>
+    <childNode2>bbbb</childNode2>
+    <childNode4>dddd</childNode4>
+    <childNode6>ffff</childNode6>
+    <childNode8>hhhh</childNode8>
+    <childNode1>jjjj</childNode1>
+    <childNode3>llll</childNode3>
+    <childNode5>nnnn</childNode5>
+    <childNode7>pppp</childNode7>
+    <childNode9>rrrr</childNode9>
+  </node-set>
+  <boolean>
+    <exsl:boolean xmlns:exsl="http://exslt.org/common">true</exsl:boolean>
+    <exsl:boolean xmlns:exsl="http://exslt.org/common">true</exsl:boolean>
+    <exsl:boolean xmlns:exsl="http://exslt.org/common">true</exsl:boolean>
+    <exsl:boolean xmlns:exsl="http://exslt.org/common">true</exsl:boolean>
+    <exsl:boolean xmlns:exsl="http://exslt.org/common">true</exsl:boolean>
+    <exsl:boolean xmlns:exsl="http://exslt.org/common">true</exsl:boolean>
+    <exsl:boolean xmlns:exsl="http://exslt.org/common">true</exsl:boolean>
+  </boolean>
+  <number>
+    <exsl:number xmlns:exsl="http://exslt.org/common">9</exsl:number>
+    <exsl:number xmlns:exsl="http://exslt.org/common">0</exsl:number>
+    <exsl:number xmlns:exsl="http://exslt.org/common">0</exsl:number>
+    <exsl:number xmlns:exsl="http://exslt.org/common">0</exsl:number>
+    <exsl:number xmlns:exsl="http://exslt.org/common">0</exsl:number>
+    <exsl:number xmlns:exsl="http://exslt.org/common">0</exsl:number>
+    <exsl:number xmlns:exsl="http://exslt.org/common">9</exsl:number>
+  </number>
+  <string>
+    <exsl:string xmlns:exsl="http://exslt.org/common">with-child</exsl:string>
+    <exsl:string xmlns:exsl="http://exslt.org/common">without-child</exsl:string>
+    <exsl:string xmlns:exsl="http://exslt.org/common">without-child</exsl:string>
+    <exsl:string xmlns:exsl="http://exslt.org/common">without-child</exsl:string>
+    <exsl:string xmlns:exsl="http://exslt.org/common">without-child</exsl:string>
+    <exsl:string xmlns:exsl="http://exslt.org/common">without-child</exsl:string>
+    <exsl:string xmlns:exsl="http://exslt.org/common">with-child</exsl:string>
+  </string>
+</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<dynmap>
+ <with-child>
+  <childNode1>aaa</childNode1>
+  <childNode2>bbbb</childNode2>
+  <childNode3>ccc</childNode3>
+  <childNode4>dddd</childNode4>
+  <childNode5>eee</childNode5>
+  <childNode6>ffff</childNode6>
+  <childNode7>ggg</childNode7>
+  <childNode8>hhhh</childNode8>
+  <childNode9>iii</childNode9>
+ </with-child>
+ <without-child>some text</without-child>
+ <without-child>some text</without-child>
+ <without-child>some text</without-child>
+ <without-child>some text</without-child>
+ <without-child>some text</without-child>
+ <with-child>
+  <childNode1>jjjj</childNode1>
+  <childNode2>kkk</childNode2>
+  <childNode3>llll</childNode3>
+  <childNode4>mmm</childNode4>
+  <childNode5>nnnn</childNode5>
+  <childNode6>ooo</childNode6>
+  <childNode7>pppp</childNode7>
+  <childNode8>qqq</childNode8>
+  <childNode9>rrrr</childNode9>
+ </with-child>
+</dynmap>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/dynamic/dynmap.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+ xmlns:dyn="http://exslt.org/dynamic"
+ exclude-result-prefixes="dyn"
+>
+<xsl:output indent="yes"/>
+
+<xsl:template match="/dynmap">
+<result>
+ <node-set>
+  <xsl:copy-of select="dyn:map(*, 'child::*[string-length(.) &gt; 3]')"/>
+ </node-set> 
+ <boolean>
+  <xsl:copy-of select="dyn:map(*, 'string-length(name()) &gt; 3')"/>
+ </boolean>
+ <number>
+  <xsl:copy-of select="dyn:map(*, 'count(*)')"/>
+ </number>
+ <string>
+  <xsl:copy-of select="dyn:map(*, 'name()')"/>
+ </string>  
+</result> 
+</xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,53 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = 						\
+	function.1.out  function.1.xml  function.1.xsl	\
+	function.2.out  function.2.xml  function.2.xsl	\
+	function.3.out  function.3.xml  function.3.xsl	\
+	function.4.out  function.4.xml  function.4.xsl	\
+	function.5.out  function.5.xml  function.5.xsl  \
+	function.6.out  function.6.xml  function.6.xsl  \
+	function.7.out  function.7.xml  function.7.xsl  \
+	function.8.out  function.8.xml  function.8.xsl
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt function tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,421 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/exslt/functions
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+	function.1.out  function.1.xml  function.1.xsl	\
+	function.2.out  function.2.xml  function.2.xsl	\
+	function.3.out  function.3.xml  function.3.xsl	\
+	function.4.out  function.4.xml  function.4.xsl	\
+	function.5.out  function.5.xml  function.5.xsl  \
+	function.6.out  function.6.xml  function.6.xsl  \
+	function.7.out  function.7.xml  function.7.xsl  \
+	function.8.out  function.8.xml  function.8.xsl
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/exslt/functions/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/exslt/functions/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt function tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<out xmlns:my="my://own.uri">17</out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?> 
+
+<doc>
+  <section index="section1" index2="atr2val">
+    <section index="subSection1.1">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+  </section>
+  <section index="section2">
+    <p>Hello2</p>
+    <section index="subSection2.1">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+    <section index="subSection2.2">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+    <p>Hello2 again.</p>
+    <section index="subSection2.3">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+  </section>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+  xmlns:func = "http://exslt.org/functions" extension-element-prefixes="func"
+  xmlns:my="my://own.uri">
+
+<func:function name="my:count-elements">
+<xsl:for-each select="(//*)[1]">
+   <func:result select="count(//*)"/>
+   </xsl:for-each>
+</func:function>
+
+  <xsl:template match="/">
+    <out>
+      <xsl:value-of select="my:count-elements()"/>
+    </out>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<out><el>17</el>;
+    <at>7</at>;
+      24</out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?> 
+
+<doc>
+  <section index="section1" index2="atr2val">
+    <section index="subSection1.1">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+  </section>
+  <section index="section2">
+    <p>Hello2</p>
+    <section index="subSection2.1">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+    <section index="subSection2.2">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+    <p>Hello2 again.</p>
+    <section index="subSection2.3">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+  </section>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:func = "http://exslt.org/functions" extension-element-prefixes="func">
+
+<!-- Test an EXSLT function with local variables -->
+
+<func:function name="func:count-elements-and-attributes">
+    <xsl:variable name="elements" select="//*"/>
+    <xsl:variable name="attributes" select="//@*"/>
+    <func:result select="count($elements | $attributes)"/>
+</func:function>
+
+  <xsl:template match="/">
+    <out>
+    <el><xsl:value-of select="count(//*)"/></el>;
+    <at><xsl:value-of select="count(//@*)"/></at>;
+      <xsl:value-of select="func:count-elements-and-attributes()"/>
+    </out>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<doc>
+  <section>
+  <section>
+  <p>Hel</p>
+  <p>Its</p>
+  </section>
+  </section>
+  <section>
+  <p>Jam</p>
+  <section>
+  <p>Mar</p>
+  <p>And</p>
+  </section>
+  <section>
+  <p>Wit</p>
+  <p>On </p>
+  </section>
+  <p>Del</p>
+  <section>
+  <p>Ful</p>
+  <p>You</p>
+  </section>
+  </section>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?> 
+
+<doc>
+  <section index="section1" index2="atr2val">
+    <section index="subSection1.1">
+      <p>Hello</p>
+      <p>Its me again.</p>
+    </section>
+  </section>
+  <section index="section2">
+    <p>Jam</p>
+    <section index="subSection2.1">
+      <p>Marmalade</p>
+      <p>And Honey</p>
+    </section>
+    <section index="subSection2.2">
+      <p>With peanut butter</p>
+      <p>On toast</p>
+    </section>
+    <p>Delicious!</p>
+    <section index="subSection2.3">
+      <p>Full up now?</p>
+      <p>You bet.</p>
+    </section>
+  </section>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:func = "http://exslt.org/functions" extension-element-prefixes="func">
+
+<!-- Test an EXSLT function with arguments -->
+
+<func:function name="func:initial">
+    <xsl:param name="size"/>
+    <func:result select="substring(.,1,$size)"/>
+</func:function>
+
+  <xsl:template match="text()">
+      <xsl:value-of select="func:initial(3)"/>
+  </xsl:template>
+
+  <xsl:template match="*">
+  <xsl:copy>
+      <xsl:apply-templates/>
+  </xsl:copy>    
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<out>120</out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?> 
+
+<doc>
+  <section index="section1" index2="atr2val">
+    <section index="subSection1.1">
+      <p>Hello</p>
+      <p>Its me again.</p>
+    </section>
+  </section>
+  <section index="section2">
+    <p>Jam</p>
+    <section index="subSection2.1">
+      <p>Marmalade</p>
+      <p>And Honey</p>
+    </section>
+    <section index="subSection2.2">
+      <p>With peanut butter</p>
+      <p>On toast</p>
+    </section>
+    <p>Delicious!</p>
+    <section index="subSection2.3">
+      <p>Full up now?</p>
+      <p>You bet.</p>
+    </section>
+  </section>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.4.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:func = "http://exslt.org/functions" extension-element-prefixes="func">
+
+<!-- Test a recursive EXSLT function -->
+
+<func:function name="func:factorial">
+    <xsl:param name="n"/>
+    <xsl:choose>
+    <xsl:when test="$n=1"><func:result select="1"/></xsl:when>
+    <xsl:otherwise><func:result select="$n * func:factorial($n - 1)"/></xsl:otherwise>
+    </xsl:choose>
+</func:function>
+
+  <xsl:template match="/">
+      <out><xsl:value-of select="func:factorial(5)"/></out>
+  </xsl:template>
+
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<out>15</out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?> 
+
+<doc>
+  <section index="section1" index2="atr2val">
+    <section index="subSection1.1">
+      <p>Hello</p>
+      <p>Its me again.</p>
+    </section>
+  </section>
+  <section index="section2">
+    <p>Jam</p>
+    <section index="subSection2.1">
+      <p>Marmalade</p>
+      <p>And Honey</p>
+    </section>
+    <section index="subSection2.2">
+      <p>With peanut butter</p>
+      <p>On toast</p>
+    </section>
+    <p>Delicious!</p>
+    <section index="subSection2.3">
+      <p>Full up now?</p>
+      <p>You bet.</p>
+    </section>
+  </section>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.5.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:func = "http://exslt.org/functions" extension-element-prefixes="func">
+
+<!-- Test an EXSLT function call with defaulted arguments -->
+
+<func:function name="func:total">
+    <xsl:param name="n1" select="0"/>
+    <xsl:param name="n2" select="0"/>
+    <xsl:param name="n3" select="0"/>
+    <xsl:param name="n4" select="0"/>
+    <xsl:param name="n5" select="0"/>
+    <xsl:param name="n6" select="0"/>
+    <xsl:param name="n7" select="0"/>
+    <func:result select="$n1+$n2+$n3+$n4+$n5+$n6+$n7"/>
+</func:function>
+
+  <xsl:template match="/">
+      <out><xsl:value-of select="func:total(1,2,3,4,5)"/></out>
+  </xsl:template>
+
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<out>;
+        <true>true</true>;
+        <false>false</false>;
+        <true>true</true>;
+        <false>false</false>;
+            <false>false</false>;
+      </out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?> 
+
+<doc>
+  <section index="section1" index2="atr2val">
+    <section index="subSection1.1">
+      <p>Hello</p>
+      <p>Its me again.</p>
+    </section>
+  </section>
+  <section index="section2">
+    <p>Jam</p>
+    <section index="subSection2.1">
+      <p>Marmalade</p>
+      <p>And Honey</p>
+    </section>
+    <section index="subSection2.2">
+      <p>With peanut butter</p>
+      <p>On toast</p>
+    </section>
+    <p>Delicious!</p>
+    <section index="subSection2.3">
+      <p>Full up now?</p>
+      <p>You bet.</p>
+    </section>
+  </section>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.6.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:func = "http://exslt.org/functions" extension-element-prefixes="func"
+xmlns:f = "f.uri" exclude-result-prefixes="f">
+
+<!-- Test the effect of function-available() and element-available() -->
+
+<func:function name="f:total">
+    <xsl:param name="n1" select="0"/>
+    <xsl:param name="n2" select="0"/>
+    <xsl:param name="n3" select="0"/>
+    <xsl:param name="n4" select="0"/>
+    <xsl:param name="n5" select="0"/>
+    <xsl:param name="n6" select="0"/>
+    <xsl:param name="n7" select="0"/>
+    <func:result select="$n1+$n2+$n3+$n4+$n5+$n6+$n7"/>
+</func:function>
+
+  <xsl:template match="/">
+      <out>;
+        <true><xsl:value-of select="function-available('f:total')"/></true>;
+        <false><xsl:value-of select="function-available('f:jabberwocky')"/></false>;
+        <true><xsl:value-of select="element-available('func:result')"/></true>;
+        <false><xsl:value-of select="element-available('func:function')"/></false>;
+            <!-- note, this should return false because func:function is not an INSTRUCTION -->
+        <false><xsl:value-of select="element-available('func:jeni-tennison')"/></false>;
+      </out>
+  </xsl:template>
+
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<out xmlns:my="my://own.uri">17</out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?> 
+
+<doc>
+  <section index="section1" index2="atr2val">
+    <section index="subSection1.1">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+  </section>
+  <section index="section2">
+    <p>Hello2</p>
+    <section index="subSection2.1">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+    <section index="subSection2.2">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+    <p>Hello2 again.</p>
+    <section index="subSection2.3">
+      <p>Hello</p>
+      <p>Hello again.</p>
+    </section>
+  </section>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.7.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version="1.0" xmlns:my="my://own.uri">
+<xsl:import href="function.1.xsl"/>
+
+<xsl:template match="/">
+  <out>
+    <xsl:value-of select="my:count-elements()"/>
+  </out>
+</xsl:template>
+
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+typedef struct Pcmdb_TestHeadDatabase Pcmdb_TestHeadDatabase; 
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+<!DOCTYPE adt SYSTEM "adt.dtd">
+-->
+
+<adt>
+
+  <prosa-name>Test Head Database</prosa-name>
+  <prefix>pcmdb</prefix>
+
+  <author>Max Mueller</author>
+  <date>August 16, 2002</date>
+  
+  <brief>This adt holds relevant information regarding the test head
+  of the tester.</brief> 
+  <detailed>
+    There is only one instance of the adt in the system, and you can
+    query the adt regarding parameters of the current installed test
+    head.
+  </detailed>
+
+</adt>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/functions/function.8.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet version="1.0" 
+       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+       xmlns:func="http://exslt.org/functions"
+	     extension-element-prefixes="func"
+>
+<xsl:output method="text" encoding="ISO-8859-1" omit-xml-declaration="yes" />
+
+<xsl:variable name="prefix" select="/adt/prefix" /> 
+<xsl:variable name="prosaName" select="/adt/prosa-name" />
+
+<xsl:variable name="suffix" select="'.h'" />
+
+<!-- makes all letters upper case -->
+<func:function name="func:upper">
+  <xsl:param name="in" />
+  <func:result select="translate($in,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />
+</func:function>
+
+<!-- makes all letters lower case -->
+<func:function name="func:lower">
+  <xsl:param name="in" />
+  <func:result select="translate($in,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')" />
+</func:function>
+
+<!-- makes first letter (of every word) upper case -->
+<!-- converts first x to X and every _x to _X       -->
+<!-- and every ' x' to 'X' (note the space)        -->
+<func:function name="func:firstUpper">
+  <xsl:param name="in" />
+  <xsl:variable name="tmp" select="$in"/>
+  <xsl:choose>
+    <!-- Call first upper for each word -->
+    <xsl:when test="contains(substring($tmp,2),' ')">
+      <func:result select="concat(
+        func:firstUpper(substring-before($tmp,' ')),
+        func:firstUpper(substring-after(substring($tmp,2),' ')))" />
+    </xsl:when>
+    <!-- read over '_' -->
+    <xsl:when test="contains(substring($tmp,1,1),'_')">
+      <func:result select="concat('_',
+        func:firstUpper(substring($tmp,2)))" />
+    </xsl:when>
+    <!-- Make first character upper case and continue -->
+    <xsl:otherwise>
+      <func:result select="concat(func:upper(substring($tmp,1,1)),
+        substring($tmp,2))" />
+    </xsl:otherwise> 
+  </xsl:choose>
+</func:function>
+
+<xsl:template match="adt">
+
+  <xsl:variable name="prosaNameLower" select="func:lower($prosaName)" />
+
+  <xsl:value-of select="concat( 'typedef struct ', 
+    func:firstUpper($prefix), '_', func:firstUpper($prosaNameLower), ' ',
+    func:firstUpper($prefix), '_', func:firstUpper($prosaNameLower), 
+    '; &#10;&#10;' )" />
+
+</xsl:template>
+
+<!-- finished -->
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,57 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = 						\
+	highest.1.out  highest.1.xml  highest.1.xsl	\
+	highest.2.out  highest.2.xml  highest.2.xsl	\
+	highest.5.out  highest.5.xml  highest.5.xsl	\
+	lowest.1.out   lowest.1.xml   lowest.1.xsl	\
+	lowest.2.out   lowest.2.xml   lowest.2.xsl	\
+	max.1.out      max.1.xml      max.1.xsl		\
+	max.2.out      max.2.xml      max.2.xsl		\
+	max.3.out      max.3.xml      max.3.xsl		\
+	max.5.out      max.5.xml      max.5.xsl		\
+	power.1.out   power.1.xml    power.1.xsl	\
+	min.1.out      min.1.xml      min.1.xsl		\
+	min.2.out      min.2.xml      min.2.xsl
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt math tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,425 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/exslt/math
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+	highest.1.out  highest.1.xml  highest.1.xsl	\
+	highest.2.out  highest.2.xml  highest.2.xsl	\
+	highest.5.out  highest.5.xml  highest.5.xsl	\
+	lowest.1.out   lowest.1.xml   lowest.1.xsl	\
+	lowest.2.out   lowest.2.xml   lowest.2.xsl	\
+	max.1.out      max.1.xml      max.1.xsl		\
+	max.2.out      max.2.xml      max.2.xsl		\
+	max.3.out      max.3.xml      max.3.xsl		\
+	max.5.out      max.5.xml      max.5.xsl		\
+	power.1.out   power.1.xml    power.1.xsl	\
+	min.1.out      min.1.xml      min.1.xsl		\
+	min.2.out      min.2.xml      min.2.xsl
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/exslt/math/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/exslt/math/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt math tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>Highest: two</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<values>
+   <value id="one">7</value>
+   <value id="two">11</value>
+   <value id="three">8</value>
+   <value id="four">4</value>
+</values>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:math="http://exslt.org/math"
+                exclude-result-prefixes="math">
+
+<xsl:template match="values">
+   <result>
+      <xsl:text>Highest: </xsl:text>
+      <xsl:value-of select="math:highest(value)/@id" />
+   </result>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>Highest: </result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<values />
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:math="http://exslt.org/math"
+                exclude-result-prefixes="math">
+
+<xsl:template match="values">
+   <result>
+      <xsl:text>Highest: </xsl:text>
+      <xsl:value-of select="math:highest(value)/@id" />
+   </result>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<out xmlns:math="http://exslt.org/math">
+        * <lowest-prices>4;
+        7;
+        </lowest-prices>
+        * <highest-prices>1;
+        5;
+        </highest-prices></out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" ?>
+<sales>
+<sale id="1" qty="10" price="15.00"/>
+<sale id="2" qty="2" price="12.00"/>
+<sale id="3" qty="1" price="10.00"/>
+<sale id="4" qty="2" price="5.00"/>
+<sale id="5" qty="2" price="15.00"/>
+<sale id="6" qty="2" price="8.00"/>
+<sale id="7" qty="2" price="5.00"/>
+</sales>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/highest.5.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:template match="/" xmlns:math="http://exslt.org/math">
+    <out>
+        * <lowest-prices>
+        <xsl:for-each select="math:lowest(//sale/@price)">
+            <xsl:value-of select="../@id"/>;
+        </xsl:for-each>    
+        </lowest-prices>
+        * <highest-prices>
+        <xsl:for-each select="math:highest(//sale/@price)">
+            <xsl:value-of select="../@id"/>;
+        </xsl:for-each>
+        </highest-prices>
+    </out>
+    </xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>Lowest: four</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<values>
+   <value id="one">7</value>
+   <value id="two">11</value>
+   <value id="three">8</value>
+   <value id="four">4</value>
+</values>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:math="http://exslt.org/math"
+                exclude-result-prefixes="math">
+
+<xsl:template match="values">
+   <result>
+      <xsl:text>Lowest: </xsl:text>
+      <xsl:value-of select="math:lowest(value)/@id" />
+   </result>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>Lowest: </result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<values />
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/lowest.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:math="http://exslt.org/math"
+                exclude-result-prefixes="math">
+
+<xsl:template match="values">
+   <result>
+      <xsl:text>Lowest: </xsl:text>
+      <xsl:value-of select="math:lowest(value)/@id" />
+   </result>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>Maximum: 11</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<values>
+   <value>7</value>
+   <value>11</value>
+   <value>8</value>
+   <value>4</value>
+</values>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:math="http://exslt.org/math"
+                exclude-result-prefixes="math">
+
+<xsl:template match="values">
+   <result>
+      <xsl:text>Maximum: </xsl:text>
+      <xsl:value-of select="math:max(value)" />
+   </result>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>Maximum: NaN</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<values />
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:math="http://exslt.org/math"
+                exclude-result-prefixes="math">
+
+<xsl:template match="values">
+   <result>
+      <xsl:text>Maximum: </xsl:text>
+      <xsl:value-of select="math:max(value)" />
+   </result>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
+Largest number value: 500
+Largest number value (computed by function foo:getMaxVal): 500
+Largest number value (computed by function foo:getMaxVal2): 500

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+<rootelement>
+  <childelement val="100"/>
+  <childelement val="200"/>
+  <childelement val="500"/>
+  <childelement val="300"/>
+  <childelement val="nothing"/>
+</rootelement>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+
+<!DOCTYPE xsl:stylesheet [
+
+<!-- namespace for SVG -->
+<!ENTITY svgns "http://www.w3.org/2000/svg">
+<!-- namespace for XSLT -->
+<!ENTITY xsltns "http://www.w3.org/1999/XSL/Transform">
+
+<!-- namespaces for several EXSLT extension modules (see
+     http://www.exslt.org for description) -->
+<!ENTITY cns   "http://exslt.org/common"> <!-- EXSLT-Common -->
+<!ENTITY fns   "http://exslt.org/functions"> <!-- EXSLT-Functions -->
+<!ENTITY mns   "http://exslt.org/math"> <!-- EXSLT-Math -->
+
+<!ENTITY foons "http://www.foo.org/bar">
+
+]>
+
+<xsl:stylesheet version="1.0" 
+                xmlns="&svgns;" 
+                xmlns:xsl="&xsltns;"
+                xmlns:exsl="&cns;"
+                xmlns:func="&fns;"
+                xmlns:math="&mns;"
+                xmlns:foo="&foons;"
+                extension-element-prefixes="exsl func math foo"
+                exclude-result-prefixes="xsl exsl func math">
+
+<xsl:output method="xml" indent="yes" encoding="iso-8859-1" standalone="yes"/>
+
+<xsl:template match="/">
+
+    <xsl:text>Largest number value: </xsl:text>
+    <xsl:value-of 
+  select="math:max(rootelement/childelement/@val[string(number(.)) != 'NaN'])"/>
+    <xsl:text>
+Largest number value (computed by function foo:getMaxVal): </xsl:text>
+    <xsl:value-of select="foo:getMaxVal(rootelement/childelement)"/>
+    <xsl:text>
+Largest number value (computed by function foo:getMaxVal2): </xsl:text>
+    <xsl:value-of select="foo:getMaxVal2(rootelement/childelement)"/>
+</xsl:template>            
+
+<func:function name="foo:getMaxVal">
+  <xsl:param name="nodes"/>
+
+  <xsl:variable name="resNodes">
+    <xsl:for-each select="$nodes">
+      <xsl:if test="@val and string(number(@val)) != 'NaN'">
+        <dummynode>
+          <xsl:value-of select="@val"/>
+        </dummynode>
+      </xsl:if>
+    </xsl:for-each>
+  </xsl:variable>
+
+  <xsl:variable name="resNodeSet" select="exsl:node-set($resNodes)"/>
+  
+  <func:result select="math:max($resNodeSet/*)"/>
+</func:function>
+
+<func:function name="foo:getMaxVal2">
+  <xsl:param name="nodes"/>
+
+  <xsl:variable name="resNodes">
+    <xsl:for-each select="$nodes">
+      <xsl:if test="@val and string(number(@val)) != 'NaN'">
+        <dummynode>
+          <xsl:value-of select="@val"/>
+        </dummynode>
+      </xsl:if>
+    </xsl:for-each>
+  </xsl:variable>
+  
+  <func:result select="math:max(exsl:node-set($resNodes)/*)"/>
+</func:function>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<out xmlns:math="http://exslt.org/math">
+        Minimum: <minprice>10</minprice>
+        Maximum: <maxprice>15</maxprice></out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0" ?>
+<sales>
+<sale qty="10" price="15.00"/>
+<sale qty="2" price="12.00"/>
+<sale qty="1" price="10.00"/>
+</sales>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/max.5.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:template match="/" xmlns:math="http://exslt.org/math">
+    <out>
+        Minimum: <minprice><xsl:value-of select="math:min(//sale/@price)"/></minprice>
+        Maximum: <maxprice><xsl:value-of select="math:max(//sale/@price)"/></maxprice>
+    </out>
+    </xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>Minimum: 4</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<values>
+   <value>7</value>
+   <value>11</value>
+   <value>8</value>
+   <value>4</value>
+</values>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:math="http://exslt.org/math"
+                exclude-result-prefixes="math">
+
+<xsl:template match="values">
+   <result>
+      <xsl:text>Minimum: </xsl:text>
+      <xsl:value-of select="math:min(value)" />
+   </result>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>Minimum: NaN</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<values />
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/min.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:math="http://exslt.org/math"
+                exclude-result-prefixes="math">
+
+<xsl:template match="values">
+   <result>
+      <xsl:text>Minimum: </xsl:text>
+      <xsl:value-of select="math:min(value)" />
+   </result>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<results>
+   <result>1</result>
+   <result>7</result>
+   <result> 2.85311670611e+11</result>
+   <result>256</result>
+   <result>243</result>
+</results>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<values>
+   <value base="1">7</value>
+   <value base="7">1</value>
+   <value base="11">11</value>
+   <value base="2">8</value>
+   <value base="3">5</value>
+</values>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/math/power.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:math="http://exslt.org/math"
+                exclude-result-prefixes="math">
+
+<xsl:template match="values">
+  <results>
+    <xsl:apply-templates/>
+  </results>
+</xsl:template>
+
+<xsl:template match="value">
+   <result>
+      <xsl:value-of select="math:power(./@base,.)" />
+   </result>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,50 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = 							\
+  difference.1.out     difference.1.xml     difference.1.xsl	\
+  distinct.1.out       distinct.1.xml       distinct.1.xsl	\
+  has-same-node.1.out  has-same-node.1.xml  has-same-node.1.xsl	\
+  leading.1.out        leading.1.xml        leading.1.xsl	\
+  trailing.1.out       trailing.1.xml       trailing.1.xsl
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt sets tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,418 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/exslt/sets
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+  difference.1.out     difference.1.xml     difference.1.xsl	\
+  distinct.1.out       distinct.1.xml       distinct.1.xsl	\
+  has-same-node.1.out  has-same-node.1.xml  has-same-node.1.xsl	\
+  leading.1.out        leading.1.xml        leading.1.xsl	\
+  trailing.1.out       trailing.1.xml       trailing.1.xsl
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/exslt/sets/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/exslt/sets/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt sets tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<out xmlns:set="http://exslt.org/sets">
+    Containing i and e:
+    Vienna;
+    Berlin;
+         
+    Containing i and no e:
+    Paris;
+    Madrid;
+    Calais;
+     
+    Containing e and no i:
+    Barcelona;
+    Hannover;
+    
+    Containing i:
+    Paris;
+    Madrid;
+    Vienna;
+    Calais;
+    Berlin;
+    
+    Empty set:
+         
+    Empty set:
+     
+    Empty set:
+    </out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?> 
+
+<doc>
+<city name="Paris" country="France"/>
+<city name="Madrid" country="Spain"/>
+<city name="Vienna" country="Austria"/>
+<city name="Barcelona" country="Spain"/>
+<city name="Salzburg" country="Austria"/>
+<city name="Bonn" country="Germany"/>
+<city name="Lyon" country="France"/>
+<city name="Hannover" country="Germany"/>
+<city name="Calais" country="France"/>
+<city name="Berlin" country="Germany"/>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/difference.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:set="http://exslt.org/sets" >
+
+<!-- Test set:intersection, difference -->
+
+<xsl:variable name="i" select="//city[contains(@name,'i')]"/>
+<xsl:variable name="e" select="//city[contains(@name,'e')]"/>
+
+<xsl:template match="/">
+  <out>
+    Containing i and e:
+    <xsl:for-each select="set:intersection($i, $e)">
+         <xsl:value-of select="@name"/>;
+    </xsl:for-each>     
+    Containing i and no e:
+    <xsl:for-each select="set:difference($i, $e)">
+         <xsl:value-of select="@name"/>;
+    </xsl:for-each> 
+    Containing e and no i:
+    <xsl:for-each select="set:difference($e, $i)">
+         <xsl:value-of select="@name"/>;
+    </xsl:for-each>
+    
+    <!-- test intersection and difference on empty sets -->
+    Containing i:
+    <xsl:for-each select="set:difference($i, /..)">
+         <xsl:value-of select="@name"/>;
+    </xsl:for-each>
+    Empty set:
+    <xsl:for-each select="set:intersection($i, /..)">
+         <xsl:value-of select="@name"/>;
+    </xsl:for-each>     
+    Empty set:
+    <xsl:for-each select="set:intersection(/.., $i)">
+         <xsl:value-of select="@name"/>;
+    </xsl:for-each> 
+    Empty set:
+    <xsl:for-each select="set:difference(/.., $i)">
+         <xsl:value-of select="@name"/>;
+    </xsl:for-each> 
+  </out>
+</xsl:template>
+ 
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<out xmlns:set="http://exslt.org/sets"><all-countries>:
+    France;
+    Spain;
+    Austria;
+    Spain;
+    Austria;
+    Germany;
+    France;
+    Germany;
+    France;
+    Germany;
+    </all-countries>:
+  <distinct-countries>:  
+    France;
+    Spain;
+    Austria;
+    Germany;
+    </distinct-countries></out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?> 
+
+<doc>
+<city name="Paris" country="France"/>
+<city name="Madrid" country="Spain"/>
+<city name="Vienna" country="Austria"/>
+<city name="Barcelona" country="Spain"/>
+<city name="Salzburg" country="Austria"/>
+<city name="Bonn" country="Germany"/>
+<city name="Lyon" country="France"/>
+<city name="Hannover" country="Germany"/>
+<city name="Calais" country="France"/>
+<city name="Berlin" country="Germany"/>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/distinct.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:set="http://exslt.org/sets" >
+
+<!-- Test exslt:distinct -->
+
+
+<xsl:template match="/">
+  <out>
+  <all-countries>:
+    <xsl:for-each select="//@country">
+          <xsl:value-of select="."/>;
+    </xsl:for-each>
+  </all-countries>:
+  <distinct-countries>:  
+    <xsl:for-each select="set:distinct(//@country)">
+          <xsl:value-of select="."/>;
+    </xsl:for-each>      
+  </distinct-countries> 
+  </out>
+</xsl:template>
+ 
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<out xmlns:set="http://exslt.org/sets">
+    Test has-same-node() between two intersecting sets:
+    OK;
+    Test has-same-node() between two non-intersecting sets:
+    OK;
+    Test has-same-node() between two identical sets of namespace nodes:
+    OK;        
+    Test has-same-node() between two disjoint sets of namespace nodes:
+    OK;        
+  </out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?> 
+
+<doc>
+<city name="Paris" country="France" xmlns:x="one"/>
+<city name="Madrid" country="Spain" xmlns:x="one"/>
+<city name="Vienna" country="Austria" xmlns:x="one"/>
+<city name="Barcelona" country="Spain" xmlns:x="one"/>
+<city name="Salzburg" country="Austria" xmlns:x="one"/>
+<city name="Bonn" country="Germany" xmlns:x="one"/>
+<city name="Lyon" country="France" xmlns:x="one"/>
+<city name="Hannover" country="Germany" xmlns:x="one"/>
+<city name="Calais" country="France" xmlns:x="one"/>
+<city name="Berlin" country="Germany" xmlns:x="one"/>
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/has-same-node.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<?xml version="1.0"?> 
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:set="http://exslt.org/sets" >
+
+<!-- Test set:has-same-node -->
+
+<xsl:variable name="a1" select="//city[@name='Vienna' or @name='Salzburg']"/>
+<xsl:variable name="a2" select="//city[@country='Austria']"/>
+
+<xsl:template match="/">
+  <out>
+    Test has-same-node() between two intersecting sets:
+    <xsl:if test="set:has-same-node($a1,$a2)">OK</xsl:if>;
+    Test has-same-node() between two non-intersecting sets:
+    <xsl:if test="not(set:has-same-node($a1,//city/@name))">OK</xsl:if>;
+    Test has-same-node() between two identical sets of namespace nodes:
+    <xsl:if test="set:has-same-node((//city[1])/namespace::*,(//city[1])/namespace::*)">OK</xsl:if>;        
+    Test has-same-node() between two disjoint sets of namespace nodes:
+    <xsl:if test="not(set:has-same-node((//city[1])/namespace::*,(//city[2])/namespace::*))">OK</xsl:if>;        
+  </out>
+</xsl:template>
+ 
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<out>;
+      6;
+      1;
+      3;
+      0;
+      8;
+      0;
+      0;
+    </out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<doc>
+<a/><b/><c/><d/><e/><f/><g/><h/>
+</doc>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/leading.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+
+<!-- TEST use of set:leading  -->
+
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:set="http://exslt.org/sets" exclude-result-prefixes="set"
+>
+
+  <xsl:template match="doc">
+    <out>;
+      <xsl:value-of select="count(set:leading(*, g))"/>;
+      <xsl:value-of select="count(set:leading(*, b))"/>;
+      <xsl:value-of select="count(set:leading(*, d|f|h))"/>;
+      <xsl:value-of select="count(set:leading(*, a|f|h))"/>;
+      <xsl:value-of select="count(set:leading(*, x))"/>;
+      <xsl:value-of select="count(set:leading(x, *))"/>;
+      <xsl:value-of select="count(set:leading(a|b|c, h))"/>;
+    </out>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<out>;
+      4;
+      6;
+      7;
+      8;
+      0;
+      0;
+    </out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<doc>
+<a/><b/><c/><d/><e/><f/><g/><h/>
+</doc>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/sets/trailing.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+
+<!-- TEST use of set:trailing  -->
+
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+xmlns:set="http://exslt.org/sets" exclude-result-prefixes="set"
+>
+
+  <xsl:template match="doc">
+    <out>;
+      <xsl:value-of select="count(set:trailing(*, d))"/>;
+      <xsl:value-of select="count(set:trailing(*, b|d|f))"/>;
+      <xsl:value-of select="count(set:trailing(*, a|f|h))"/>;
+      <xsl:value-of select="count(set:trailing(*, x))"/>;
+      <xsl:value-of select="count(set:trailing(x, *))"/>;
+      <xsl:value-of select="count(set:trailing(d|e|f, a|e))"/>;
+    </out>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,49 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = 						\
+	tokenize.1.xml tokenize.1.xsl tokenize.1.out	\
+	tokenize.2.xml tokenize.2.xsl tokenize.2.out	\
+	tokenize.3.xml tokenize.3.xsl tokenize.3.out	\
+	split.1.xml split.1.xsl split.1.out
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt string tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,417 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/exslt/strings
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+	tokenize.1.xml tokenize.1.xsl tokenize.1.out	\
+	tokenize.2.xml tokenize.2.xsl tokenize.2.out	\
+	tokenize.3.xml tokenize.3.xsl tokenize.3.out	\
+	split.1.xml split.1.xsl split.1.out
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/exslt/strings/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/exslt/strings/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running exslt string tests'
+	@(echo > .memdump)
+	@(for i in $(srcdir)/*.xsl ; do \
+	  name=`basename $$i .xsl` ; \
+	  if [ ! -f $(srcdir)/$$name.xml ] ; then continue ; fi ; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+		$(srcdir)/$$name.xsl $(srcdir)/$$name.xml > $$name.res 2>$$name.bad;\
+	  if [ ! -f $(srcdir)/$$name.out ] ; then \
+		cp $$name.res $(srcdir)/$$name.out ; \
+		if [ -s $$name.bad ] ; then \
+			mv $$name.bad $(srcdir)/$$name.err ; \
+		fi ; \
+	  else \
+		if  [ ! -s $$name.res ] ; then \
+			echo "Fatal error, no $$name.res\n" ; \
+	  	else \
+			diff $(srcdir)/$$name.out $$name.res ; \
+			if [ -s $(srcdir)/$$name.err ] ; then \
+	  			diff $(srcdir)/$$name.err $$name.bad; \
+			else \
+				diff /dev/null $$name.bad; \
+			fi ; \
+		fi ; \
+	  fi; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f $$name.res $$name.bad ; \
+	  done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<out>;
+	str:split('a, simple, list', ', ')
+	<token>a</token><token>simple</token><token>list</token>
+
+	str:split('data math str')
+	<token>data</token><token>math</token><token>str</token>
+
+	str:split('foobar', '')
+	<token>f</token><token>o</token><token>o</token><token>b</token><token>a</token><token>r</token>
+
+	str:split('-*- hello - world -*-', '-')
+	<token>*</token><token> hello </token><token> world </token><token>*</token>
+
+	str:split('data &amp;math str;')
+	<token>data</token><token>&amp;math</token><token>str;</token></out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/split.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:str="http://exslt.org/strings"
+    exclude-result-prefixes="str">
+
+<xsl:template match="/">
+<out>;
+	str:split('a, simple, list', ', ')
+	<xsl:copy-of select="str:split('a, simple, list', ', ')"/>
+
+	str:split('data math str')
+	<xsl:copy-of select="str:split('data math str')"/>
+
+	str:split('foobar', '')
+	<xsl:copy-of select="str:split('foobar', '')"/>
+
+	str:split('-*- hello - world -*-', '-')
+	<xsl:copy-of select="str:split('-*- hello - world -*-', '-')"/>
+
+	str:split('data &amp;math str;')
+	<xsl:copy-of select="str:split('data &amp;math str;')"/>
+</out>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<out>;
+  str:tokenize('2001-06-03T11:40:23', '-T:')
+  <token>2001</token><token>06</token><token>03</token><token>11</token><token>40</token><token>23</token>;
+
+  str:tokenize('date math str')
+  <token>date</token><token>math</token><token>str</token>;
+
+  str:tokenize('This is &amp; strange behavior', ' ')
+  <token>This</token><token>is</token><token>&amp;</token><token>strange</token><token>behavior</token>;
+
+  str:tokenize('This is &amp; strange; behavior', ' ')
+  <token>This</token><token>is</token><token>&amp;</token><token>strange;</token><token>behavior</token>;
+
+  str:tokenize('This is &amp;strange; behavior', ' ')
+  <token>This</token><token>is</token><token>&amp;strange;</token><token>behavior</token>;
+</out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?> 
+
+<doc>
+
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:str="http://exslt.org/strings"
+    exclude-result-prefixes="str">
+
+<xsl:template match="/">
+<out>;
+  str:tokenize('2001-06-03T11:40:23', '-T:')
+  <xsl:copy-of select="str:tokenize('2001-06-03T11:40:23', '-T:')"/>;
+
+  str:tokenize('date math str')
+  <xsl:copy-of select="str:tokenize('date math str')"/>;
+
+  str:tokenize('This is &amp; strange behavior', ' ')
+  <xsl:copy-of select="str:tokenize('This is &amp; strange behavior', ' ')"/>;
+
+  str:tokenize('This is &amp; strange; behavior', ' ')
+  <xsl:copy-of select="str:tokenize('This is &amp; strange; behavior', ' ')"/>;
+
+  str:tokenize('This is &amp;strange; behavior', ' ')
+  <xsl:copy-of select="str:tokenize('This is &amp;strange; behavior', ' ')"/>;
+</out>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<tok>This</tok><tok>is</tok><tok>strange</tok><tok>behavior</tok>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:str="http://exslt.org/strings"
+                extension-element-prefixes="str">
+                                                                                
+<xsl:template match="/">
+<xsl:for-each select="str:tokenize('This is strange behavior', ' ')" >
+ <tok><xsl:value-of select="."/></tok>
+</xsl:for-each>
+</xsl:template>
+                                                                                
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+/foo/bar
+ 'foo'
+ 'bar'
+//foo/bar
+ 'foo'
+ 'bar'
+foo//bar
+ 'foo'
+ 'bar'
+foo/bar/
+ 'foo'
+ 'bar'
+foo/bar//
+ 'foo'
+ 'bar'
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:str="http://exslt.org/strings"
+                version="1.0">
+
+<xsl:template match="/">
+	<xsl:for-each select="//string">
+		<xsl:text><xsl:value-of select="text()"/></xsl:text>
+		<xsl:for-each select="str:tokenize(text(), '/')">
+			    <xsl:text>   '</xsl:text>
+			    <xsl:value-of select="."/>
+			    <xsl:text>'</xsl:text>
+		</xsl:for-each>
+	</xsl:for-each>
+</xsl:template>
+
+<xsl:template name="foobar">
+	<string>/foo/bar</string>
+	<string>//foo/bar</string>
+	<string>foo//bar</string>
+	<string>foo/bar/</string>
+	<string>foo/bar//</string>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/exslt/strings/tokenize.3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:str="http://exslt.org/strings"
+                version="1.0">
+
+<xsl:template match="/">
+	<xsl:for-each select="//string">
+		<xsl:value-of select="text()"/>
+		<xsl:text>
+</xsl:text>
+		<xsl:for-each select="str:tokenize(text(), '/')">
+			    <xsl:text> '</xsl:text>
+			    <xsl:value-of select="."/>
+			    <xsl:text>'
+</xsl:text>
+		</xsl:for-each>
+	</xsl:for-each>
+</xsl:template>
+
+<xsl:template name="foobar">
+	<string>/foo/bar</string>
+	<string>//foo/bar</string>
+	<string>foo//bar</string>
+	<string>foo/bar/</string>
+	<string>foo/bar//</string>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/extensions/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/extensions/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/extensions/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,51 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = \
+    module.xml module.xsl module.out \
+    list.xml list.xsl list.out
+
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running extensions tests'
+	@(echo > .memdump)
+	-@(for i in $(srcdir)/*.xml ; do \
+	  if [ -d $$i ] ; then continue ; fi ; \
+	  doc=`basename $$i .xml` ; \
+	  j=$(srcdir)/$$doc*.xsl ; \
+	  if [ ! -f $$j ] ; then continue ; fi ; \
+	  if [ -d $$j ] ; then continue ; fi ; \
+	  name=`basename $$j .xsl`; \
+	  out=$(srcdir)/"$$name".out; \
+	  err=$(srcdir)/"$$name".err; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc $$j $$i \
+	  	> result.$$name 2>err.$$name; \
+	  if [ ! -f $$out ] ; then \
+	  	cp result.$$name $$out ; \
+		if [ -s err.$$name ] ; then \
+			cp err.$$name $$err ; \
+		fi ; \
+	  else \
+	  	diff $$out result.$$name; \
+		if [ -s $$err ] ; then \
+	  		diff $$err err.$$name; \
+		else \
+			diff /dev/null err.$$name; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f result.$$name err.$$name; \
+	  done)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/extensions/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/extensions/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/extensions/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,417 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/extensions
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+    module.xml module.xsl module.out \
+    list.xml list.xsl list.out
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/extensions/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/extensions/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running extensions tests'
+	@(echo > .memdump)
+	-@(for i in $(srcdir)/*.xml ; do \
+	  if [ -d $$i ] ; then continue ; fi ; \
+	  doc=`basename $$i .xml` ; \
+	  j=$(srcdir)/$$doc*.xsl ; \
+	  if [ ! -f $$j ] ; then continue ; fi ; \
+	  if [ -d $$j ] ; then continue ; fi ; \
+	  name=`basename $$j .xsl`; \
+	  out=$(srcdir)/"$$name".out; \
+	  err=$(srcdir)/"$$name".err; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc $$j $$i \
+	  	> result.$$name 2>err.$$name; \
+	  if [ ! -f $$out ] ; then \
+	  	cp result.$$name $$out ; \
+		if [ -s err.$$name ] ; then \
+			cp err.$$name $$err ; \
+		fi ; \
+	  else \
+	  	diff $$out result.$$name; \
+		if [ -s $$err ] ; then \
+	  		diff $$err err.$$name; \
+		else \
+			diff /dev/null err.$$name; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f result.$$name err.$$name; \
+	  done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+ === 24 Standard elements:
+xsl:apply-templates available
+xsl:apply-imports available
+xsl:call-template available
+xsl:element available
+xsl:attribute available
+xsl:text available
+xsl:processing-instruction available
+xsl:comment available
+xsl:copy available
+xsl:value-of available
+xsl:number available
+xsl:for-each available
+xsl:if available
+xsl:choose available
+xsl:sort available
+xsl:copy-of available
+xsl:message available
+xsl:variable available
+xsl:param available
+xsl:with-param available
+xsl:decimal-format available
+xsl:when available
+xsl:otherwise available
+xsl:fallback available
+ === 5 Extension elements:
+xsl:element available
+saxon:output available
+xalanredirect:write available
+xt:document available
+libxslt:debug available
+ === 6 Extension functions:
+libxslt:node-set() available
+saxon:node-set() available
+xt:node-set() available
+saxon:evaluate() available
+saxon:expression() available
+saxon:eval() available
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/extensions/list.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,88 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:saxon="http://icl.com/saxon"
+		xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+		xmlns:xt="http://www.jclark.com/xt"
+		xmlns:libxslt="http://xmlsoft.org/XSLT/namespace"
+                version='1.0'>
+
+<xsl:template match="/">
+<xsl:text> === 24 Standard elements:
+</xsl:text>
+<xsl:if test="element-available('xsl:apply-templates')">xsl:apply-templates available
+</xsl:if>
+<xsl:if test="element-available('xsl:apply-imports')">xsl:apply-imports available
+</xsl:if>
+<xsl:if test="element-available('xsl:call-template')">xsl:call-template available
+</xsl:if>
+<xsl:if test="element-available('xsl:element')">xsl:element available
+</xsl:if>
+<xsl:if test="element-available('xsl:attribute')">xsl:attribute available
+</xsl:if>
+<xsl:if test="element-available('xsl:text')">xsl:text available
+</xsl:if>
+<xsl:if test="element-available('xsl:processing-instruction')">xsl:processing-instruction available
+</xsl:if>
+<xsl:if test="element-available('xsl:comment')">xsl:comment available
+</xsl:if>
+<xsl:if test="element-available('xsl:copy')">xsl:copy available
+</xsl:if>
+<xsl:if test="element-available('xsl:value-of')">xsl:value-of available
+</xsl:if>
+<xsl:if test="element-available('xsl:number')">xsl:number available
+</xsl:if>
+<xsl:if test="element-available('xsl:for-each')">xsl:for-each available
+</xsl:if>
+<xsl:if test="element-available('xsl:if')">xsl:if available
+</xsl:if>
+<xsl:if test="element-available('xsl:choose')">xsl:choose available
+</xsl:if>
+<xsl:if test="element-available('xsl:sort')">xsl:sort available
+</xsl:if>
+<xsl:if test="element-available('xsl:copy-of')">xsl:copy-of available
+</xsl:if>
+<xsl:if test="element-available('xsl:message')">xsl:message available
+</xsl:if>
+<xsl:if test="element-available('xsl:variable')">xsl:variable available
+</xsl:if>
+<xsl:if test="element-available('xsl:param')">xsl:param available
+</xsl:if>
+<xsl:if test="element-available('xsl:with-param')">xsl:with-param available
+</xsl:if>
+<xsl:if test="element-available('xsl:decimal-format')">xsl:decimal-format available
+</xsl:if>
+<xsl:if test="element-available('xsl:when')">xsl:when available
+</xsl:if>
+<xsl:if test="element-available('xsl:otherwise')">xsl:otherwise available
+</xsl:if>
+<xsl:if test="element-available('xsl:fallback')">xsl:fallback available
+</xsl:if>
+<xsl:text> === 5 Extension elements:
+</xsl:text>
+<xsl:if test="element-available('xsl:element')">xsl:element available
+</xsl:if>
+<xsl:if test="element-available('saxon:output')">saxon:output available
+</xsl:if>
+<xsl:if test="element-available('xalanredirect:write')">xalanredirect:write available
+</xsl:if>
+<xsl:if test="element-available('xt:document')">xt:document available
+</xsl:if>
+<xsl:if test="element-available('libxslt:debug')">libxslt:debug available
+</xsl:if>
+<xsl:text> === 6 Extension functions:
+</xsl:text>
+<xsl:if test="function-available('libxslt:node-set')">libxslt:node-set() available
+</xsl:if>
+<xsl:if test="function-available('saxon:node-set')">saxon:node-set() available
+</xsl:if>
+<xsl:if test="function-available('xt:node-set')">xt:node-set() available
+</xsl:if>
+<xsl:if test="function-available('saxon:evaluate')">saxon:evaluate() available
+</xsl:if>
+<xsl:if test="function-available('saxon:expression')">saxon:expression() available
+</xsl:if>
+<xsl:if test="function-available('saxon:eval')">saxon:eval() available
+</xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<!--libxslt:test element test worked-->
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/extensions/module.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		xmlns:libxslt="http://xmlsoft.org/XSLT/"
+		xmlns:test="http://xmlsoft.org/XSLT/"
+		extension-element-prefixes="libxslt test"
+                version='1.0'>
+<!-- the prefix is registered twice to check single initialization -->
+<xsl:template match="/">
+<libxslt:test/>
+<xsl:value-of select="libxslt:test('SUCCESS')"/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,252 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = \
+    bug-1-.out bug-1-.xsl \
+    bug-2-.out bug-2-.xsl \
+    bug-3-.out bug-3-.xsl \
+    bug-4-.out bug-4-.xsl \
+    bug-5-.out bug-5-.xsl \
+    bug-6-.out bug-6-.xsl \
+    bug-7-.out bug-7-.xsl \
+    bug-8-.out bug-8-.xsl \
+    bug-9-.out bug-9-.xsl \
+    bug-10-.out bug-10-.xsl \
+    bug-11-.out bug-11-.xsl \
+    bug-12-.out bug-12-.xsl \
+    bug-13-.out bug-13-.xsl \
+    bug-14-.out bug-14-.xsl \
+    bug-15-.out bug-15-.xsl \
+    bug-16-.out bug-16-.xsl \
+    bug-17-.out bug-17-.xsl \
+    bug-18-.out bug-18-.xsl \
+    bug-19-.out bug-19-.xsl \
+    bug-20-.out bug-20-.xsl \
+    bug-21-.out bug-21-.xsl \
+    bug-22-.out bug-22-.xsl \
+    bug-23-.out bug-23-.xsl \
+    bug-24-.out bug-24-.xsl \
+    bug-25-.out bug-25-.xsl \
+    bug-26-.out bug-26-.xsl \
+    bug-27-.out bug-27-.xsl \
+    bug-28-.out bug-28-.xsl \
+    bug-29-.out bug-29-.xsl \
+    bug-30-.out bug-30-.xsl \
+    bug-31-.out bug-31-.xsl \
+    bug-32-.out bug-32-.xsl \
+    bug-33-.out bug-33-.xsl \
+    bug-35-.out bug-35-.xsl \
+    bug-36-.out bug-36-.xsl \
+    bug-36-inc.out bug-36-inc.xsl \
+    bug-37-.out bug-37-.xsl \
+    bug-37-inc.out bug-37-inc.xsl \
+    array.out array.xsl \
+    bug-38-.out bug-38-.xsl \
+    bug-39-.out bug-39-.xsl \
+    bug-40-.out bug-40-.xsl \
+    bug-41-.out bug-41-.xsl \
+    bug-42-.out bug-42-.xsl \
+    bug-43-.out bug-43-.xsl \
+    bug-44-.out bug-44-.xsl \
+    bug-45-.out bug-45-.xsl \
+    bug-46-.out bug-46-.xsl \
+    bug-47-.out bug-47-.xsl \
+    bug-48-.out bug-48-.xsl \
+    bug-49-.out bug-49-.xsl \
+    bug-50-.out bug-50-.xsl \
+    bug-52.out bug-52.xsl \
+    bug-53.out bug-53.xsl \
+    bug-54.out bug-54.xsl \
+    bug-55.out bug-55.xsl \
+    bug-56.out bug-56.xsl \
+    bug-57.out bug-57.xsl \
+    bug-59.out bug-59.xsl \
+    bug-60.out bug-60.xsl bug-60.err \
+    bug-61.out bug-61.xsl \
+    bug-62-inc.out bug-62-inc.xsl \
+    bug-62.out bug-62.xsl \
+    bug-63.out bug-63.xsl \
+    bug-64.out bug-64.xsl \
+    bug-65.ent bug-65.out bug-65.xsl \
+    bug-66.out bug-66.xsl \
+    bug-68.out bug-68.xsl \
+    bug-69.out bug-69.xsl \
+    bug-70.out bug-70.xsl \
+    bug-71.out bug-71.xsl \
+    bug-72.out bug-72.xsl \
+    bug-73.out bug-73.xsl \
+    bug-74.out bug-74.xsl \
+    bug-75.out bug-75.xsl \
+    bug-76.out bug-76.xsl \
+    bug-77.out bug-77.xsl \
+    bug-78.out bug-78.xsl \
+    bug-79.out bug-79.xsl \
+    bug-80.out bug-80.xsl \
+    bug-81.out bug-81.xsl \
+    bug-82.out bug-82.xsl \
+    bug-83.out bug-83.xsl \
+    bug-84.out bug-84.xsl \
+    bug-86.out bug-86.xsl \
+    bug-87.out bug-87.xsl \
+    bug-88.out bug-88.xsl \
+    bug-89.out bug-89.xsl \
+    bug-90.out bug-90.xsl \
+    bug-91.out bug-91.xsl \
+    bug-92.out bug-92.xsl \
+    bug-93.out bug-93.xsl \
+    bug-93-inc.out bug-93-inc.xsl \
+    bug-94.out bug-94.xsl \
+    bug-95.out bug-95.xsl \
+    bug-96.out bug-96.xsl \
+    bug-97.out bug-97.xsl \
+    bug-98.out bug-98.xsl \
+    bug-99.out bug-99.xsl \
+    bug-100.out bug-100.xsl \
+    bug-101.out bug-101.xsl \
+    bug-102.out bug-102.xsl \
+    bug-102-inc.out bug-102-inc.xsl \
+    bug-103.out bug-103.xsl \
+    bug-104.out bug-104.xsl \
+    bug-105.out bug-105.xsl \
+    bug-106.out bug-106.xsl \
+    bug-107.out bug-107.xsl \
+    bug-108.out bug-108.xsl \
+    bug-109.out bug-109.xsl \
+    bug-110.out bug-110.xsl \
+    bug-111.out bug-111.xsl \
+    bug-112.out bug-112.xsl \
+    bug-113.out bug-113.xsl \
+    bug-114.out bug-114.xsl \
+    bug-115.out bug-115.xsl \
+    bug-116.out bug-116.xsl \
+    bug-117.out bug-117.xsl \
+    bug-118.out bug-118.xsl \
+    bug-119.out bug-119.xsl \
+    bug-120.out bug-120.xsl \
+    bug-121.out bug-121.xsl \
+    bug-122.out bug-122.xsl \
+    bug-123.out bug-123.xsl \
+    bug-124.out bug-124.xsl \
+    bug-125.out bug-125.xsl \
+    bug-126.out bug-126.xsl \
+    bug-127.out bug-127.xsl \
+    bug-128.out bug-128.xsl \
+    bug-129.out bug-129.xsl \
+    bug-130.out bug-130.xsl \
+    bug-130-imp1.imp bug-130-imp2.imp bug-130-imp3.imp bug-130-imp4.imp \
+    bug-131.out bug-131.xsl bug-131-imp.imp \
+    bug-132.out bug-132.xsl \
+    bug-133.out bug-133.xsl \
+    bug-134.out bug-134.xsl \
+    bug-135.out bug-135.xsl \
+    bug-136.out bug-136.xsl \
+    bug-137.imp  bug-137.out  bug-137.xsl \
+    bug-138.out bug-138.xsl \
+    bug-139.out bug-139.xsl \
+    bug-140.out bug-140.xsl \
+    bug-141.out bug-141.xsl \
+    bug-142.out bug-142.xsl \
+    bug-143.out bug-143.xsl \
+    bug-144.out bug-144.xsl \
+    bug-145.out bug-145.xsl bug-145.err \
+    bug-146.out bug-146.xsl \
+    bug-147.out bug-147.xsl \
+    bug-147-1.imp bug-147-2.imp bug-147-3.imp \
+    bug-147-4.imp bug-147-5.imp bug-147-6.imp \
+    bug-148.out bug-148.xsl \
+    bug-149.out bug-149.xsl \
+    bug-150.out bug-150.xsl \
+    bug-151.out bug-151.xsl \
+    bug-152.out bug-152.xsl \
+    bug-153.out bug-153.xsl \
+    bug-154.out bug-154.xsl \
+    bug-155.out bug-155.xsl \
+    bug-156.err bug-156.out bug-156.xsl \
+    bug-156.imp1.imp bug-156.imp2.imp \
+    bug-157.err bug-157.out bug-157.xsl \
+    bug-158.out bug-158.xsl \
+    bug-159.out bug-159.xsl \
+    bug-160.out bug-160.xsl \
+    bug-161.out bug-161.xsl \
+    bug-163.out bug-163.xsl \
+    character.out character.xsl \
+    character2.out character2.xsl \
+    itemschoose.out itemschoose.xsl \
+    inner.xsl
+
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running general tests'
+	@(echo > .memdump)
+	-@(for i in $(srcdir)/../docs/*.xml ; do \
+	  if [ -d $$i ] ; then continue ; fi ; \
+	  doc=`basename $$i .xml` ; \
+	  for j in $(srcdir)/$$doc*.xsl ; do \
+	  if [ ! -f $$j ] ; then continue ; fi ; \
+	  if [ -d $$j ] ; then continue ; fi ; \
+	  name=`basename $$j .xsl`; \
+	  out=$(srcdir)/"$$name".out; \
+	  err=$(srcdir)/"$$name".err; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc $$j $$i \
+	  	> result.$$name 2>err.$$name; \
+	  if [ ! -f $$out ] ; then \
+	  	cp result.$$name $$out ; \
+		if [ -s err.$$name ] ; then \
+			cp err.$$name $$err ; \
+		fi ; \
+	  else \
+	  	diff $$out result.$$name; \
+		if [ -s $$err ] ; then \
+	  		diff $$err err.$$name; \
+		else \
+			diff /dev/null err.$$name; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f result.$$name err.$$name; \
+	  done ; done)
+	@echo '## Running general tests without dictionaries'
+	-@(for i in $(srcdir)/../docs/*.xml ; do \
+	  if [ -d $$i ] ; then continue ; fi ; \
+	  doc=`basename $$i .xml` ; \
+	  for j in $(srcdir)/$$doc*.xsl ; do \
+	  if [ ! -f $$j ] ; then continue ; fi ; \
+	  if [ -d $$j ] ; then continue ; fi ; \
+	  name=`basename $$j .xsl`; \
+	  out=$(srcdir)/"$$name".out; \
+	  err=$(srcdir)/"$$name".err; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict $$j $$i \
+	  	> result.$$name 2>err.$$name; \
+	  if [ ! -f $$out ] ; then \
+	  	cp result.$$name $$out ; \
+		if [ -s err.$$name ] ; then \
+			cp err.$$name $$err ; \
+		fi ; \
+	  else \
+	  	diff $$out result.$$name; \
+		if [ -s $$err ] ; then \
+	  		diff $$err err.$$name; \
+		else \
+			diff /dev/null err.$$name; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f result.$$name err.$$name; \
+	  done ; done)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,618 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/general
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+    bug-1-.out bug-1-.xsl \
+    bug-2-.out bug-2-.xsl \
+    bug-3-.out bug-3-.xsl \
+    bug-4-.out bug-4-.xsl \
+    bug-5-.out bug-5-.xsl \
+    bug-6-.out bug-6-.xsl \
+    bug-7-.out bug-7-.xsl \
+    bug-8-.out bug-8-.xsl \
+    bug-9-.out bug-9-.xsl \
+    bug-10-.out bug-10-.xsl \
+    bug-11-.out bug-11-.xsl \
+    bug-12-.out bug-12-.xsl \
+    bug-13-.out bug-13-.xsl \
+    bug-14-.out bug-14-.xsl \
+    bug-15-.out bug-15-.xsl \
+    bug-16-.out bug-16-.xsl \
+    bug-17-.out bug-17-.xsl \
+    bug-18-.out bug-18-.xsl \
+    bug-19-.out bug-19-.xsl \
+    bug-20-.out bug-20-.xsl \
+    bug-21-.out bug-21-.xsl \
+    bug-22-.out bug-22-.xsl \
+    bug-23-.out bug-23-.xsl \
+    bug-24-.out bug-24-.xsl \
+    bug-25-.out bug-25-.xsl \
+    bug-26-.out bug-26-.xsl \
+    bug-27-.out bug-27-.xsl \
+    bug-28-.out bug-28-.xsl \
+    bug-29-.out bug-29-.xsl \
+    bug-30-.out bug-30-.xsl \
+    bug-31-.out bug-31-.xsl \
+    bug-32-.out bug-32-.xsl \
+    bug-33-.out bug-33-.xsl \
+    bug-35-.out bug-35-.xsl \
+    bug-36-.out bug-36-.xsl \
+    bug-36-inc.out bug-36-inc.xsl \
+    bug-37-.out bug-37-.xsl \
+    bug-37-inc.out bug-37-inc.xsl \
+    array.out array.xsl \
+    bug-38-.out bug-38-.xsl \
+    bug-39-.out bug-39-.xsl \
+    bug-40-.out bug-40-.xsl \
+    bug-41-.out bug-41-.xsl \
+    bug-42-.out bug-42-.xsl \
+    bug-43-.out bug-43-.xsl \
+    bug-44-.out bug-44-.xsl \
+    bug-45-.out bug-45-.xsl \
+    bug-46-.out bug-46-.xsl \
+    bug-47-.out bug-47-.xsl \
+    bug-48-.out bug-48-.xsl \
+    bug-49-.out bug-49-.xsl \
+    bug-50-.out bug-50-.xsl \
+    bug-52.out bug-52.xsl \
+    bug-53.out bug-53.xsl \
+    bug-54.out bug-54.xsl \
+    bug-55.out bug-55.xsl \
+    bug-56.out bug-56.xsl \
+    bug-57.out bug-57.xsl \
+    bug-59.out bug-59.xsl \
+    bug-60.out bug-60.xsl bug-60.err \
+    bug-61.out bug-61.xsl \
+    bug-62-inc.out bug-62-inc.xsl \
+    bug-62.out bug-62.xsl \
+    bug-63.out bug-63.xsl \
+    bug-64.out bug-64.xsl \
+    bug-65.ent bug-65.out bug-65.xsl \
+    bug-66.out bug-66.xsl \
+    bug-68.out bug-68.xsl \
+    bug-69.out bug-69.xsl \
+    bug-70.out bug-70.xsl \
+    bug-71.out bug-71.xsl \
+    bug-72.out bug-72.xsl \
+    bug-73.out bug-73.xsl \
+    bug-74.out bug-74.xsl \
+    bug-75.out bug-75.xsl \
+    bug-76.out bug-76.xsl \
+    bug-77.out bug-77.xsl \
+    bug-78.out bug-78.xsl \
+    bug-79.out bug-79.xsl \
+    bug-80.out bug-80.xsl \
+    bug-81.out bug-81.xsl \
+    bug-82.out bug-82.xsl \
+    bug-83.out bug-83.xsl \
+    bug-84.out bug-84.xsl \
+    bug-86.out bug-86.xsl \
+    bug-87.out bug-87.xsl \
+    bug-88.out bug-88.xsl \
+    bug-89.out bug-89.xsl \
+    bug-90.out bug-90.xsl \
+    bug-91.out bug-91.xsl \
+    bug-92.out bug-92.xsl \
+    bug-93.out bug-93.xsl \
+    bug-93-inc.out bug-93-inc.xsl \
+    bug-94.out bug-94.xsl \
+    bug-95.out bug-95.xsl \
+    bug-96.out bug-96.xsl \
+    bug-97.out bug-97.xsl \
+    bug-98.out bug-98.xsl \
+    bug-99.out bug-99.xsl \
+    bug-100.out bug-100.xsl \
+    bug-101.out bug-101.xsl \
+    bug-102.out bug-102.xsl \
+    bug-102-inc.out bug-102-inc.xsl \
+    bug-103.out bug-103.xsl \
+    bug-104.out bug-104.xsl \
+    bug-105.out bug-105.xsl \
+    bug-106.out bug-106.xsl \
+    bug-107.out bug-107.xsl \
+    bug-108.out bug-108.xsl \
+    bug-109.out bug-109.xsl \
+    bug-110.out bug-110.xsl \
+    bug-111.out bug-111.xsl \
+    bug-112.out bug-112.xsl \
+    bug-113.out bug-113.xsl \
+    bug-114.out bug-114.xsl \
+    bug-115.out bug-115.xsl \
+    bug-116.out bug-116.xsl \
+    bug-117.out bug-117.xsl \
+    bug-118.out bug-118.xsl \
+    bug-119.out bug-119.xsl \
+    bug-120.out bug-120.xsl \
+    bug-121.out bug-121.xsl \
+    bug-122.out bug-122.xsl \
+    bug-123.out bug-123.xsl \
+    bug-124.out bug-124.xsl \
+    bug-125.out bug-125.xsl \
+    bug-126.out bug-126.xsl \
+    bug-127.out bug-127.xsl \
+    bug-128.out bug-128.xsl \
+    bug-129.out bug-129.xsl \
+    bug-130.out bug-130.xsl \
+    bug-130-imp1.imp bug-130-imp2.imp bug-130-imp3.imp bug-130-imp4.imp \
+    bug-131.out bug-131.xsl bug-131-imp.imp \
+    bug-132.out bug-132.xsl \
+    bug-133.out bug-133.xsl \
+    bug-134.out bug-134.xsl \
+    bug-135.out bug-135.xsl \
+    bug-136.out bug-136.xsl \
+    bug-137.imp  bug-137.out  bug-137.xsl \
+    bug-138.out bug-138.xsl \
+    bug-139.out bug-139.xsl \
+    bug-140.out bug-140.xsl \
+    bug-141.out bug-141.xsl \
+    bug-142.out bug-142.xsl \
+    bug-143.out bug-143.xsl \
+    bug-144.out bug-144.xsl \
+    bug-145.out bug-145.xsl bug-145.err \
+    bug-146.out bug-146.xsl \
+    bug-147.out bug-147.xsl \
+    bug-147-1.imp bug-147-2.imp bug-147-3.imp \
+    bug-147-4.imp bug-147-5.imp bug-147-6.imp \
+    bug-148.out bug-148.xsl \
+    bug-149.out bug-149.xsl \
+    bug-150.out bug-150.xsl \
+    bug-151.out bug-151.xsl \
+    bug-152.out bug-152.xsl \
+    bug-153.out bug-153.xsl \
+    bug-154.out bug-154.xsl \
+    bug-155.out bug-155.xsl \
+    bug-156.err bug-156.out bug-156.xsl \
+    bug-156.imp1.imp bug-156.imp2.imp \
+    bug-157.err bug-157.out bug-157.xsl \
+    bug-158.out bug-158.xsl \
+    bug-159.out bug-159.xsl \
+    bug-160.out bug-160.xsl \
+    bug-161.out bug-161.xsl \
+    bug-163.out bug-163.xsl \
+    character.out character.xsl \
+    character2.out character2.xsl \
+    itemschoose.out itemschoose.xsl \
+    inner.xsl
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/general/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/general/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running general tests'
+	@(echo > .memdump)
+	-@(for i in $(srcdir)/../docs/*.xml ; do \
+	  if [ -d $$i ] ; then continue ; fi ; \
+	  doc=`basename $$i .xml` ; \
+	  for j in $(srcdir)/$$doc*.xsl ; do \
+	  if [ ! -f $$j ] ; then continue ; fi ; \
+	  if [ -d $$j ] ; then continue ; fi ; \
+	  name=`basename $$j .xsl`; \
+	  out=$(srcdir)/"$$name".out; \
+	  err=$(srcdir)/"$$name".err; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc $$j $$i \
+	  	> result.$$name 2>err.$$name; \
+	  if [ ! -f $$out ] ; then \
+	  	cp result.$$name $$out ; \
+		if [ -s err.$$name ] ; then \
+			cp err.$$name $$err ; \
+		fi ; \
+	  else \
+	  	diff $$out result.$$name; \
+		if [ -s $$err ] ; then \
+	  		diff $$err err.$$name; \
+		else \
+			diff /dev/null err.$$name; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f result.$$name err.$$name; \
+	  done ; done)
+	@echo '## Running general tests without dictionaries'
+	-@(for i in $(srcdir)/../docs/*.xml ; do \
+	  if [ -d $$i ] ; then continue ; fi ; \
+	  doc=`basename $$i .xml` ; \
+	  for j in $(srcdir)/$$doc*.xsl ; do \
+	  if [ ! -f $$j ] ; then continue ; fi ; \
+	  if [ -d $$j ] ; then continue ; fi ; \
+	  name=`basename $$j .xsl`; \
+	  out=$(srcdir)/"$$name".out; \
+	  err=$(srcdir)/"$$name".err; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc --nodict $$j $$i \
+	  	> result.$$name 2>err.$$name; \
+	  if [ ! -f $$out ] ; then \
+	  	cp result.$$name $$out ; \
+		if [ -s err.$$name ] ; then \
+			cp err.$$name $$err ; \
+		fi ; \
+	  else \
+	  	diff $$out result.$$name; \
+		if [ -s $$err ] ; then \
+	  		diff $$err err.$$name; \
+		else \
+			diff /dev/null err.$$name; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f result.$$name err.$$name; \
+	  done ; done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/array.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/array.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/array.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+First we try to find the value for "12M" (should be 1): 1
+Now we define a variable $BP to be "18M".
+$BP is defined as: 18M
+Now we try to find the value for $BP (should be 2): 2

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/array.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/array.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/array.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<!-- filename:      test.xsl                                                         created on:    2001 Jun 14 01:35:21 +0200 (CEST)                                last modified: 2001 Jun 14 01:47:18 +0200 (CEST)                                (c) 2001 by Goetz Bock <bock at blacknet.de>
+-->
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+               xmlns:local="data_local_to_this_file"
+	       version='1.0'>
+<xsl:output method="text" />
+<local:benefit>
+<local:period ID='12M'>1</local:period>
+<local:period ID='18M'>2</local:period>
+<local:period ID='24M'>3</local:period>
+<local:period ID='2Y' >4</local:period>
+<local:period ID='5Y' >5</local:period>
+</local:benefit>
+<xsl:template match="/">
+<xsl:text>First we try to find the value for "12M" (should be 1): </xsl:text>
+<xsl:value-of select="document('')//local:benefit/local:period[@ID='12M']"/>
+<xsl:text>&#xA;Now we define a variable $BP to be "18M".</xsl:text>
+<xsl:variable name="BP">18M</xsl:variable>
+<xsl:text>&#xA;$BP is defined as: </xsl:text>
+<xsl:value-of select="$BP" />
+<xsl:text>&#xA;Now we try to find the value for $BP (should be 2): </xsl:text>
+<xsl:value-of select="document('')//local:benefit/local:period[@ID=$BP]"/>
+<xsl:text>&#xA;</xsl:text>
+</xsl:template>
+</xsl:transform>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-1-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-1-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-1-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<FOO>
+        <BAR>This is bar 1</BAR>
+        <XXX></XXX>
+        <BAR>This is bar 2</BAR>
+</FOO>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-1-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-1-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-1-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:template match="foo">
+        <FOO>
+                <xsl:apply-templates/>
+        </FOO>
+</xsl:template>
+
+<xsl:template match="bar">
+        <BAR>
+                <xsl:value-of select="."/>
+        </BAR>
+</xsl:template>
+
+<xsl:template match="xxx">
+        <XXX>
+                <xsl:value-of select="."/>
+        </XXX>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-10-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-10-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-10-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+Success

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-10-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-10-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-10-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version= "1.0"?>
+                            
+<xsl:stylesheet version="1.0" 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  
+<xsl:template match="/">
+<xsl:text><![CDATA[Success]]></xsl:text>
+</xsl:template>
+  
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-100.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-100.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-100.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<!--libxslt:test element test worked-->

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-100.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-100.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-100.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		xmlns="http://xmlsoft.org/XSLT/"
+		extension-element-prefixes="#default"
+                version='1.0'>
+<xsl:template match="/">
+<test/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-101.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-101.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-101.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<foo xmlns="http://baz.xml"><bar/></foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-101.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-101.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-101.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:template match="/">
+    <xsl:element xmlns="http://baz.xml" name="foo">
+      <xsl:element name="bar"/>
+    </xsl:element>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102-inc.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102-inc.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102-inc.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<font text-align="start" size="+1">
+    foo
+    </font>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102-inc.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102-inc.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102-inc.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output method="html"/>
+ 
+  <xsl:attribute-set name="foo-attribs">
+    <xsl:attribute name="size">+1</xsl:attribute>
+  </xsl:attribute-set>
+
+  <xsl:attribute-set name="foo-dep-attribs"
+    use-attribute-sets="foo-attribs">
+    <xsl:attribute name="text-align">start</xsl:attribute>
+  </xsl:attribute-set>
+ 
+  <xsl:template match="/">
+    <font xsl:use-attribute-sets="foo-dep-attribs">
+    foo
+    </font>
+  </xsl:template>
+ 
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<font text-align="start" size="+2">
+    foo
+    </font>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-102.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
+  <xsl:import href="bug-102-inc.xsl"/>
+  
+  <xsl:attribute-set name="foo-attribs">
+    <xsl:attribute name="size">+2</xsl:attribute>
+  </xsl:attribute-set>
+  
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-103.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-103.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-103.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<report xmlns="http://examplotron.org/namespaces/example"><foo xmlns=""/></report>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-103.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-103.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-103.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" 
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	>
+
+	<xsl:template match="/">
+		<report xmlns="http://examplotron.org/namespaces/example">
+			<xsl:copy-of select="foo"/>
+		</report>
+	</xsl:template>
+	
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-104.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-104.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-104.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<foo xmlns:eg="http://example.org" xmlns="http://example.org" eg:bar=""/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-104.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-104.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-104.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="xml" encoding="utf-8"/>
+
+<xsl:template match="/">
+  <xsl:copy-of select="node()"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-105.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-105.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-105.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc att="&#9;&#13;">&#13;</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-105.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-105.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-105.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="/">
+ <doc att="&#x9;&#xD;"><xsl:text>&#xD;</xsl:text></doc>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-106.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-106.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-106.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<doc>&#13;</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-106.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-106.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-106.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="xml" encoding="utf-8"/>
+
+<xsl:template match="doc">
+ <doc>
+  <xsl:copy-of select="node()"/>
+ </doc>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-107.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-107.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-107.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<doc>
+  <?pi pi 1?>
+  <!-- comment 1 -->
+  <foo/>
+  <?pi pi 2?>
+  <!-- comment 2 -->
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-107.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-107.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-107.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+<!-- XSLT REC section 7.5 -->
+<xsl:template match="@*|node()">
+<xsl:copy>
+<xsl:apply-templates select="@*|node()"/>
+</xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-108.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-108.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-108.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25 @@
+
+selecting by element:    /a
+          by attribute:  /a
+
+selecting by element:    /a/b
+          by attribute:  /a/b
+
+selecting by element:    /a/b/c
+          by attribute:  /a/b/c
+
+selecting by element:    /a/b/c/d
+          by attribute:  /a/b/c/d
+
+selecting by element:    /a/b/c/d/e
+          by attribute:  /a/b/c/d/e
+
+selecting by element:    /a/b/c/d/e/f
+          by attribute:  /a/b/c/d/e/f
+
+selecting by element:    /a/b/c/d/e/f/g
+          by attribute:  /a/b/c/d/e/f/g
+
+selecting by element:    /a/b/c/d/e/f/g/h
+          by attribute:  /a/b/c/d/e/f/g/h
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-108.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-108.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-108.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version="1.0" >
+
+   <xsl:output method="text"/>
+   <xsl:template match="*">
+     <xsl:text>&#x0A;selecting by element:    </xsl:text>
+     <xsl:for-each select="ancestor-or-self::*">
+       <xsl:text>/</xsl:text>
+       <xsl:value-of select="@name"/>
+     </xsl:for-each>
+     <xsl:text>&#x0A;          by attribute:  </xsl:text>
+     <xsl:for-each select="ancestor-or-self::*/@name">
+       <xsl:text>/</xsl:text>
+       <xsl:value-of select="."/>
+     </xsl:for-each>
+     <xsl:text>&#x0A;</xsl:text>
+     <xsl:apply-templates/>
+   </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-109.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-109.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-109.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+
+<b>This is HTML</b>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-109.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-109.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-109.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="html" indent="yes" encoding="iso-8859-1"/>
+  <xsl:template match="/*">
+    <xsl:value-of select="text()" disable-output-escaping="yes"/>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-11-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-11-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-11-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<?php Success>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-11-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-11-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-11-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version= "1.0"?>
+                             
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="html"/>
+<!--xsl:import href="test2.xsl"/-->
+
+<xsl:template match="/">
+<xsl:processing-instruction name="php">Success</xsl:processing-instruction>
+</xsl:template>
+   
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-110.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-110.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-110.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-110.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-110.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-110.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:output method='text'/>
+
+<xsl:template match="/">
+  <xsl:variable name="id1" select="generate-id(/root/elem)"/>
+  <xsl:variable name="id2" select="generate-id(id('id0'))"/>
+  <xsl:if test="$id1 = $id2">
+    <xsl:text>SUCCESS
+</xsl:text>
+  </xsl:if>
+  <xsl:if test="$id1 != $id2">
+    <xsl:text>ERROR
+</xsl:text>
+  </xsl:if>
+</xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-111.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-111.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-111.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<root>
+ Test 1
+ DIRTREE : true : true
+ Test 2
+ DIRTREE : true : true</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-111.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-111.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-111.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,45 @@
+<xsl:stylesheet version="1.0" 
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+	xmlns:exsl="http://exslt.org/common"
+	extension-element-prefixes="exsl"
+	exclude-result-prefixes="exsl">
+
+	
+<xsl:template match="/">
+<root>
+ <xsl:variable name="dtree">
+    <DIRTREE dirpath="c:\file" dirname="file">
+      <f n="AdditionalInfo.bmp" s="1999194" m="03/06/2002 11:21" a=" A" />
+      <f n="AdditionalInfo.jpg" s="65835" m="03/15/2002 13:43" a=" A" />
+      <f n="jdesupport.htm" s="6264" m="03/15/2002 13:32" a=" A" />
+      <f n="LoginScreen.bmp" s="1410914" m="03/06/2002 11:18" a=" A" />
+      <f n="MainScreen.bmp" s="1683330" m="03/06/2002 11:16" a=" A" />
+      <f n="MainScreen.jpg" s="46339" m="03/15/2002 13:43" a=" A" />
+      <f n="newsa.htm" s="3646" m="03/15/2002 13:41" a=" A" />
+      <f n="OutputOptions.bmp" s="1216234" m="03/06/2002 11:22" a=" A" />
+      <f n="ReportSysOverview.bmp" s="2008270" m="03/06/2002 11:23" a=" A" />
+      <f n="ReportViewer.jpg" s="56653" m="03/15/2002 13:44" a=" A" />
+      <f n="SelectProfile.bmp" s="1683330" m="03/06/2002 11:17" a=" A" />
+      <f n="SelectProfile.jpg" s="71648" m="03/15/2002 11:06" a=" A" />
+      <d name="utils" />
+   </DIRTREE>
+ </xsl:variable>
+ Test 1
+ <xsl:apply-templates select="exsl:node-set($dtree)/DIRTREE"/>
+ Test 2
+ <xsl:apply-templates select="/DIRTREE"/>
+
+</root>
+</xsl:template>
+
+<xsl:template match="DIRTREE[d][f]" priority="100">
+ <xsl:value-of select="name()"/> : <xsl:value-of select="boolean(d)"/> : <xsl:value-of select="boolean(f)"/>
+
+</xsl:template>
+
+<xsl:template match="@*|node()">
+ Default Template Match Found
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-112.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-112.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-112.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+abcd

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-112.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-112.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-112.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:exsl="http://exslt.org/common"
+  exclude-result-prefixes="exsl"
+  extension-element-prefixes="exsl"
+  version="1.0">
+
+<xsl:template match="/">
+  <xsl:variable name="tds">
+  <row>
+  <cell>a</cell>
+  <cell>b</cell>
+  <cell>c</cell>
+  <cell>d</cell>
+  </row>
+ </xsl:variable>
+ <xsl:for-each select="exsl:node-set($tds)/row/cell">
+  <xsl:value-of select="."/>
+ </xsl:for-each>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-113.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-113.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-113.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+WORKS
+WORKS TOO
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-113.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-113.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-113.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  version="1.0">
+
+<xsl:template match="/">
+  <xsl:value-of select="id('hällo')"/>
+  <xsl:apply-templates/>
+</xsl:template>
+<xsl:template match="id('hällo')">
+WORKS TOO
+</xsl:template>
+<xsl:template match="dest">
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-114.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-114.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-114.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<html xmlns:foo="http://borland.com/bogus">
+<foo:whatever>one</foo:whatever><foo:whatever>two</foo:whatever><foo:whatever>three</foo:whatever><foo:whatever>four</foo:whatever>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-114.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-114.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-114.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:foo="http://borland.com/bogus">
+  <xsl:output method="html" indent="yes"/>
+
+  <xsl:template match="/">
+    <html>
+    <xsl:for-each select="/sample/foo">
+        <xsl:element name="foo:whatever">
+          <xsl:value-of select="@name"/>
+        </xsl:element>
+    </xsl:for-each>
+    </html>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-115.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-115.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-115.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<root><update name="JD12367" release="B7333" from-release="B7333" to-release="JD12367" description="ESU_JD12367_10/2/01" type="01" date="10/2/2001"/><update name="JD12860" release="B7333" from-release="B7333" to-release="JD12860" description="ESU_JD12860_11/13/01" type="01" date="11/14/2001"/><update name="JD14724" release="B7333" from-release="B7333" to-release="JD14724" description="ESU_JD14724_4/2/02" type="01" date="4/3/2002"/><update name="JD15448" release="B7333" from-release="B7333" to-release="JD15448" description="ESU_JD15448_5/28/02" type="01" date="5/29/2002"/></root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-115.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-115.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-115.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ extension-element-prefixes="exsl"
+ exclude-result-prefixes="exsl">
+
+<xsl:template match="/">
+<root>
+<xsl:variable name="pkglist">
+<sqltable name="F9670" datasource="System - B7333"><colset xmlns:o="http://www.jdedwards.com/OLAF" column-count="18"><col p="1">SUPKGNAME</col><col p="2">SURLS</col><col p="3">SUFRLS</col><col p="4">SUTRLS</col><col p="5">SUDL01</col><col p="6">SUSUTYPE</col><col p="7">SUSUDATE</col></colset><sequencing xmlns:o="http://www.jdedwards.com/OLAF"><col>SUPKGNAME</col></sequencing><results><r><col>JD12367</col><col>B7333</col><col>B7333</col><col>JD12367</col><col>ESU_JD12367_10/2/01</col><col>01</col><col>10/2/2001</col></r><r><col>JD12860</col><col>B7333</col><col>B7333</col><col>JD12860</col><col>ESU_JD12860_11/13/01</col><col>01</col><col>11/14/2001</col></r><r><col>JD14724</col><col>B7333</col><col>B7333</col><col>JD14724</col><col>ESU_JD14724_4/2/02</col><col>01</col><col>4/3/2002</col></r><r><col>JD15448</col><col>B7333</col><col>B7333</col><col>JD15448</col><col>ESU_JD15448_5/28/02</col><col>01</col><col>5/29/2002</col></r></results></sqltable>
+</xsl:variable>
+<xsl:for-each select="exsl:node-set($pkglist)/sqltable/results/r">
+<update name="{col[1]}" release="{col[2]}" from-release="{col[3]}" to-release="{col[4]}" description="{col[5]}"
+  type="{col[6]}" date="{col[7]}">
+</update>
+</xsl:for-each>
+</root>
+
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-116.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-116.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-116.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<results/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-116.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-116.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-116.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<xsl:stylesheet version="1.0" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
+ xmlns:set="http://exslt.org/sets"
+ extension-element-prefixes="exsl set"
+ exclude-result-prefixes="exsl set"
+>
+
+<xsl:output method="xml"/>
+
+<!-- This works as is.  Comment out the p element and un-comment the error line. -->
+<xsl:template match="/">
+ <results>
+   <xsl:variable name="n">
+   <p></p>
+   </xsl:variable>
+   <xsl:copy-of select="set:distinct(exsl:node-set($n)/p/a)"/>
+ </results>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-117.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-117.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-117.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<s:doc xmlns:s="http://www.foobar.com/xmlns/s"><s:doc-head>
+                <s:doc-title>Doc Title</s:doc-title>
+        </s:doc-head><s:doc-body><s:div class="header"><s:a href="/"><s:img src="/images/logo/mylogo.jpg" width="200" height="100" border="0" title="LOGO" alt="LOGO"></s:img></s:a></s:div><s:br></s:br><s:div class="body">
+                <s:p>Hello World!</s:p>
+        </s:div></s:doc-body></s:doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-117.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-117.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-117.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:l="http://www.foobar.com/xmlns/l"
+                xmlns:s="http://www.foobar.com/xmlns/s"
+                xmlns:exsl="http://exslt.org/common"
+                exclude-result-prefixes="l"
+                extension-element-prefixes="exsl"
+>
+
+<xsl:output method="html" media-type="text/html" encoding="ISO-8859-1" />
+
+<xsl:template match="/">
+        <xsl:apply-templates select="l:doc" />
+</xsl:template>
+
+<xsl:template match="l:doc">
+        <s:doc>
+                <xsl:for-each select="@*">
+                        <xsl:attribute name="{name()}"><xsl:value-of
+select="."/></xsl:attribute>
+                </xsl:for-each>
+                <s:doc-head>
+                        <xsl:apply-templates select="l:doc-head"/>
+                </s:doc-head>
+                <s:doc-body>
+                        <s:div class="header">
+                                <s:a href="/">
+                                        <s:img
+src="/images/logo/mylogo.jpg" width="200" height="100" border="0"
+title="LOGO" alt="LOGO"/>
+                                </s:a>
+                        </s:div>
+                        <s:br/>
+                        <s:div class="body">
+                                <xsl:apply-templates select="l:doc-content"/>
+                        </s:div>
+                </s:doc-body>
+        </s:doc>
+</xsl:template>
+
+<xsl:template match="l:doc-title">
+        <s:doc-title><xsl:apply-templates/></s:doc-title>
+</xsl:template>
+
+<!-- some HTML-like elements -->
+<xsl:template
+match="l:a|l:abbr|l:acronym|l:address|l:area|l:b|l:base|l:bdo|l:big|l:blockquote|l:body|l:br|l:button|l:caption|l:cite|l:code|l:col|l:colgroup|l:dd|l:del|l:dfn|l:div|l:dl|l:dt|l:em|l:fieldset|l:form|l:frame|l:framset|l:h1|l:h2|l:h3|l:h4|l:h5|l:h6|l:head|l:hr|l:i|l:iframe|l:img|l:input|l:ins|l:kbd|l:label|l:legend|l:li|l:link|l:map|l:noframes|l:noscript|l:object|l:ol|l:optgroup|l:option|l:p|l:param|l:pre|l:q|l:samp|l:script|l:select|l:small|l:span|l:strong|l:style|l:sub|l:sup|l:table|l:tbody|l:td|l:textarea|l:tfoot|l:th|l:thead|l:tr|l:tt|l:ul|l:var">
+        <xsl:element name="s:{local-name()}">
+                <xsl:for-each select="@*">
+                        <xsl:attribute name="{name()}"><xsl:value-of
+select="." /></xsl:attribute>
+                </xsl:for-each>
+                <xsl:apply-templates />
+        </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-118.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-118.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-118.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<root xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ex="http://www.example.org/">
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-118.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-118.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-118.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet 
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+    xmlns:ex="http://www.example.org/"
+    version="1.0"
+    >
+
+<xsl:output method="xml" />
+
+<xsl:template match="/">
+<xsl:copy-of select="/" />
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-119.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-119.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-119.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+  
+    
+  
+
+  
+    NAME 
+  
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-119.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-119.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-119.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version="1.0">
+  <xsl:template match="/">
+    <xsl:apply-templates select="*" />
+  </xsl:template>
+
+  <xsl:template match="@match">
+    NAME <xsl:value-of select="name(.)" />
+  </xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-12-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-12-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-12-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<namespace>http://www.w3.org/XML/1998/namespace</namespace>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-12-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-12-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-12-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version='1.0' encoding="ISO-8859-1"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="xml"
+            version="1.0"
+	    encoding="ISO-8859-1"
+	    indent="yes" />
+	    
+<xsl:template match="/">
+   <namespace>
+   <xsl:value-of select="//namespace::*"/>
+   </namespace>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-120.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-120.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-120.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<a>
+   Ascending numeric
+   <b/><b/><b/><b>some alpha</b><b/><b/><b>-99999999</b><b>-1</b><b>1</b><b>3</b><b>4</b>
+   Descending numeric
+   <b>4</b><b>3</b><b>1</b><b>-1</b><b>-99999999</b><b/><b/><b/><b>some alpha</b><b/><b/>
+   Ascending alpha
+   <b/><b/><b/><b/><b/><b>-1</b><b>-99999999</b><b>1</b><b>3</b><b>4</b><b>some alpha</b></a>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-120.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-120.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-120.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+version="1.0">
+<xsl:output indent="yes"/>
+
+<xsl:template match="a">
+   <a>
+   Ascending numeric
+   <xsl:for-each select="b">
+     <xsl:sort select="." data-type="number"/>
+     <xsl:copy-of select="."/>
+   </xsl:for-each>
+   Descending numeric
+   <xsl:for-each select="b">
+     <xsl:sort select="." data-type="number" order="descending"/>
+     <xsl:copy-of select="."/>
+   </xsl:for-each>
+   Ascending alpha
+   <xsl:for-each select="b">
+     <xsl:sort select="." data-type="text"/>
+     <xsl:copy-of select="."/>
+   </xsl:for-each>
+   </a>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-121.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-121.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-121.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<a href="a?b+c">xxx</a>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-121.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-121.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-121.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="html" />
+
+<xsl:template match="/">
+<a href="a?b+c">xxx</a>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-122.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-122.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-122.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<Document xmlns:c="urn:c" xmlns:b="urn:b" xmlns:a="urn:a"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-122.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-122.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-122.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?> 
+ 
+<xsl:stylesheet version="1.0" 
+        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > 
+ 
+<xsl:template match="doc"> 
+        <xsl:variable name="node" select="."/> 
+        <xsl:element name="Document" namespace="{namespace-uri(.)}"> 
+                <xsl:for-each select="namespace::*"> 
+                        <xsl:if test="string(.) != namespace-uri($node)"> 
+                                <xsl:copy/> 
+                        </xsl:if> 
+                </xsl:for-each> 
+        </xsl:element> 
+</xsl:template> 
+ 
+</xsl:stylesheet> 

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-123.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-123.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-123.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<element foo="xml"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-123.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-123.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-123.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="@*">
+  <xsl:copy/>
+</xsl:template>
+<xsl:template match="element">
+  <xsl:copy>
+    <xsl:attribute name="foo">xsl</xsl:attribute>
+    <xsl:apply-templates select="@*"/>
+  </xsl:copy>
+</xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-124.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-124.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-124.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<a xmlns="http://example.org/foobar"><b/><b/><b/></a>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-124.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-124.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-124.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:mml="http://example.org/foobar"
+                version="1.0">
+  <xsl:strip-space elements="mml:*"/>
+  <xsl:template match="/">
+    <xsl:apply-templates/>
+  </xsl:template>
+<xsl:template match="*">
+  <xsl:copy>
+    <xsl:apply-templates/>
+  </xsl:copy>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-125.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-125.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-125.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,351 @@
+<div class="errataset">
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 17</td>
+<td style="width: 15%;" class="line">Line: 2</td>
+<td style="width: 70%;" class="type">CLARIFICATION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "the previous explanation of namespaces" with "the example of namespaces in Example 2-1".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr><td style="width: 15%;" class="page">Page: 28</td>
+<td style="width: 15%;" class="paragraph">Paragraph: 3</td>
+<td style="width: 15%;" class="line">Line: 1</td>
+<td style="width: 55%;" class="type">GRAMMAR</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "at once" with "both".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr><td style="width: 15%;" class="page">Page: 40</td>
+<td style="width: 15%;" class="paragraph">Paragraph: 1</td>
+<td style="width: 15%;" class="line">Line: 5</td>
+<td style="width: 55%;" class="type">CLARIFICATION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "content-encoding" with "content encoding".</p>
+<blockquote class="explanation">
+<p>
+The hyphen implies the "Content-Encoding" HTTP header, and here I am referring instead to the general concept of content encoding.
+</p>
+</blockquote>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 47</td>
+<td style="width: 15%;" class="line">Line: 33</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "resolve_name" (in the error message) with "get_data".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr><td style="width: 15%;" class="page">Page: 52</td>
+<td style="width: 15%;" class="paragraph">Paragraph: 3</td>
+<td style="width: 70%;" class="type">UPDATE</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">As of this current errata update, the RPC::XMLSimple package has not yet been released to CPAN. Until it is released, none of the examples using this module can be run as presented.</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 53</td>
+<td style="width: 15%;" class="line">Line: 24</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">The script should start with the line, "#!/usr/bin/perl -w" before the first line of actual code.</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 59</td>
+<td style="width: 15%;" class="line">Line: 16</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">The script should start with the line, "#!/usr/bin/perl -w" before the first line of actual code.</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 68</td>
+<td style="width: 15%;" class="line">Line: 4</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">The script should start with the line, "#!/usr/bin/perl -w" before the first line of actual code.</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 115</td>
+<td style="width: 15%;" class="line">Line: 20</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 120</td>
+<td style="width: 15%;" class="line">Line: 30</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 146</td>
+<td style="width: 15%;" class="line">Line: 10</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 151</td>
+<td style="width: 15%;" class="line">Line: 27</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 157</td>
+<td style="width: 15%;" class="line">Line: 16</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 165</td>
+<td style="width: 15%;" class="line">Line: 26</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 166</td>
+<td style="width: 15%;" class="line">Line: 25</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 168</td>
+<td style="width: 15%;" class="line">Line: 20</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 170</td>
+<td style="width: 15%;" class="line">Line: 1</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 171</td>
+<td style="width: 15%;" class="line">Line: 18</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 172</td>
+<td style="width: 15%;" class="line">Line: 20</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 174</td>
+<td style="width: 15%;" class="line">Line: 9</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 175</td>
+<td style="width: 15%;" class="line">Line: 6</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 176</td>
+<td style="width: 15%;" class="line">Line: 23</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 186</td>
+<td style="width: 15%;" class="line">Line: 32</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">The last character of this line, "&gt;", should be replaced with "/&gt;" in order to make it valid XML.</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr><td style="width: 15%;" class="page">Page: 203</td>
+<td style="width: 15%;" class="paragraph">Paragraph: 2</td>
+<td style="width: 15%;" class="line">Line: 3</td>
+<td style="width: 55%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "soap:address" with "http:address".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 232</td>
+<td style="width: 15%;" class="line">Line: 3</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr><td style="width: 15%;" class="page">Page: 237</td>
+<td style="width: 15%;" class="paragraph">Paragraph: 1</td>
+<td style="width: 15%;" class="line">Line: 6</td>
+<td style="width: 55%;" class="type">GRAMMAR</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "more" with "most".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr><td style="width: 15%;" class="page">Page: 245</td>
+<td style="width: 15%;" class="paragraph">Paragraph: 4</td>
+<td style="width: 15%;" class="line">Line: 2</td>
+<td style="width: 55%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "different" with "difference".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr><td style="width: 15%;" class="page">Page: 247</td>
+<td style="width: 15%;" class="paragraph">Paragraph: 4</td>
+<td style="width: 15%;" class="line">Line: 5</td>
+<td style="width: 55%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "out of hand" with "out-of-band".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr><td style="width: 15%;" class="page">Page: 251</td>
+<td style="width: 15%;" class="paragraph">Paragraph: 2</td>
+<td style="width: 15%;" class="line">Line: 4</td>
+<td style="width: 55%;" class="type">GRAMMAR</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "sequence," with "sequence" (remove the comma).</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 253</td>
+<td style="width: 15%;" class="line">Line: 24</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "#!perl" with "#!/usr/bin/perl".</p>
+<blockquote class="explanation">
+<p>
+This and the identical changes later are for consistency with other code examples.
+</p>
+</blockquote>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 274</td>
+<td style="width: 15%;" class="line">Line: 9</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "#!perl" with "#!/usr/bin/perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 274</td>
+<td style="width: 15%;" class="line">Line: 19</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "#!perl" with "#!/usr/bin/perl".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 297</td>
+<td style="width: 15%;" class="line">Line: 1</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Replace "Description" with "Definition".</p>
+</div>
+<div class="errata">
+<table class="location-type" cellspacing="0" cellpadding="2">
+<tr>
+<td style="width: 15%;" class="page">Page: 431</td>
+<td style="width: 15%;" class="line">Line: 9</td>
+<td style="width: 70%;" class="type">CORRECTION</td>
+</tr>
+</table>
+<p style="clear: both; padding: 3px;">Append " -w" after "perl".</p>
+</div>
+</div>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-125.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-125.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-125.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:strip-space elements="*" />
+  <xsl:output method="html" indent="no"/>
+
+  <xsl:template match="/">
+    <div class="errataset">
+      <xsl:text>&#x0a;</xsl:text>
+      <xsl:for-each select="errataset/errata">
+        <xsl:sort select="@page" data-type="number" />
+        <xsl:sort select="@paragraph" data-type="number" />
+        <xsl:sort select="@line" data-type="number" />
+        <xsl:apply-templates select="." />
+      </xsl:for-each>
+    </div>
+  </xsl:template>
+
+  <xsl:template name="errata" match="errata">
+    <div class="errata"><xsl:text>&#x0a;</xsl:text>
+      <xsl:call-template name="show-attributes" />
+      <xsl:for-each select="*|text()">
+        <xsl:apply-templates select="."/>
+      </xsl:for-each>
+    </div><xsl:text>&#x0a;</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="text()">
+    <xsl:if test="string-length(normalize-space(.))">
+      <p style="clear: both; padding: 3px;">
+        <xsl:value-of select="normalize-space(.)" />
+      </p>
+      <xsl:text>&#x0a;</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template name="explanation" match="explanation">
+    <blockquote class="explanation"><xsl:text>&#x0a;</xsl:text>
+      <p><xsl:text>&#x0a;</xsl:text>
+        <xsl:value-of select="normalize-space(text())" />
+        <xsl:text>&#x0a;</xsl:text>
+      </p><xsl:text>&#x0a;</xsl:text>
+    </blockquote><xsl:text>&#x0a;</xsl:text>
+  </xsl:template>
+
+  <xsl:template name="show-attributes">
+    <table class="location-type" cellspacing="0" cellpadding="2">
+      <xsl:text>&#x0a;</xsl:text>
+      <xsl:choose>
+        <xsl:when test="@paragraph">
+          <xsl:choose>
+            <xsl:when test="@line">
+              <tr>
+                <td style="width: 15%;" class="page">Page: <xsl:value-of select="@page" /></td>
+                <xsl:text>&#x0a;</xsl:text>
+                <td style="width: 15%;" class="paragraph">Paragraph: <xsl:value-of select="@paragraph" /></td>
+                <xsl:text>&#x0a;</xsl:text>
+                <td style="width: 15%;" class="line">Line: <xsl:value-of select="@line" /></td>
+                <xsl:text>&#x0a;</xsl:text>
+                <td style="width: 55%;" class="type"><xsl:value-of select="@type" /></td>
+                <xsl:text>&#x0a;</xsl:text>
+              </tr><xsl:text>&#x0a;</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+              <tr>
+                <td style="width: 15%;" class="page">Page: <xsl:value-of select="@page" /></td>
+                <xsl:text>&#x0a;</xsl:text>
+                <td style="width: 15%;" class="paragraph">Paragraph: <xsl:value-of select="@paragraph" /></td>
+                <xsl:text>&#x0a;</xsl:text>
+                <td style="width: 70%;" class="type"><xsl:value-of select="@type" /></td>
+                <xsl:text>&#x0a;</xsl:text>
+              </tr><xsl:text>&#x0a;</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:when>
+        <xsl:when test="@line">
+          <tr><xsl:text>&#x0a;</xsl:text>
+            <td style="width: 15%;" class="page">Page: <xsl:value-of select="@page" /></td>
+            <xsl:text>&#x0a;</xsl:text>
+            <td style="width: 15%;" class="line">Line: <xsl:value-of select="@line" /></td>
+            <xsl:text>&#x0a;</xsl:text>
+            <td style="width: 70%;" class="type"><xsl:value-of select="@type" /></td>
+            <xsl:text>&#x0a;</xsl:text>
+          </tr><xsl:text>&#x0a;</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <tr>
+            <td style="width: 15%;" class="page">Page: <xsl:value-of select="@page" /></td>
+            <xsl:text>&#x0a;</xsl:text>
+            <td style="width: 85%;" class="type"><xsl:value-of select="@type" /></td>
+            <xsl:text>&#x0a;</xsl:text>
+          </tr><xsl:text>&#x0a;</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </table><xsl:text>&#x0a;</xsl:text>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-126.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-126.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-126.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+    <foo attr="$x"/> Expect '$x'
+    <foo attr="val"/> Expect 'val'
+    <foo attr="{$x"/> Expect 'bracket $x'
+    <foo attr="$x}"/> Expect '$x bracket'
+    <foo attr="{$x}"/> Expect 'bracket $x bracket'
+    <foo attr="{val}"/> Expect 'bracket val bracket'
+  

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-126.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-126.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-126.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		version="1.0">
+
+<xsl:variable name="x" select="'val'" />
+  <xsl:template match="/">
+    <xsl:text>
+    </xsl:text>
+    <foo attr="$x"/> Expect '$x'
+    <foo attr="{$x}"/> Expect 'val'
+    <foo attr="{{$x"/> Expect 'bracket $x'
+    <foo attr="$x}}"/> Expect '$x bracket'
+    <foo attr="{{$x}}"/> Expect 'bracket $x bracket'
+    <foo attr="{{{$x}}}"/> Expect 'bracket val bracket'
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-127.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-127.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-127.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<html><body><input type="text" value="&quot;'&quot;"></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-127.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-127.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-127.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<xsl:stylesheet
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version="1.0"
+>
+
+<xsl:output method="html"/>
+
+<xsl:variable name='var'>"'"</xsl:variable>
+
+<xsl:template match="/">
+<html>
+<body>
+<input type="text" value="{$var}"/>
+</body>
+</html>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-128.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-128.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-128.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<test:data xmlns:test="http://www.example.org/test">
+  <test:a xmlns:xsl="http://www.w3.org/1999/XSL/Transform" a="1"/>
+  <test:b xmlns:xsl="http://www.w3.org/1999/XSL/Transform" b="1"/>
+</test:data>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-128.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-128.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-128.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:test="http://www.example.org/test">
+  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+  <xsl:key name="k" match="test:a" use="@a"/>
+  <xsl:key name="k" match="test:b" use="@b"/>
+  <xsl:key name="k" match="test.a" use="@a"/>
+
+  <xsl:template match="/">
+    <test:data>
+      <xsl:for-each select="key('k','1')">
+        <xsl:copy-of select="."/>
+      </xsl:for-each>
+    </test:data>
+  </xsl:template>
+
+  <xsl:template match="text()|@*"/>
+
+  <test:data>
+    <test:a a="1"/>
+    <test:b b="1"/>
+  </test:data>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-129.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-129.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-129.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<root xmlns:foo="http://foo.org">
+  <foo:elt><![CDATA[
+    >
+  ]]></foo:elt>
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-129.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-129.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-129.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:foo="http://foo.org">
+  <xsl:output cdata-section-elements="foo:elt"/>
+  <xsl:template match="@*|node()">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-13-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-13-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-13-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<some>text</some>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-13-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-13-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-13-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="*|@*|text()">
+  <xsl:copy>
+    <xsl:apply-templates select="*|@*|text()"/>
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp1.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp1.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp1.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="article">
+  <xsl:text>article in module #1;</xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+
+<xsl:template match="title">
+  <xsl:text>title in module #1;</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="header">
+  <xsl:text>header #1 in module #1;</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="header[logo]">
+  <xsl:text>header #2 in module #1;</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp2.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp2.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp2.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="article[position()=1]/title">
+  <xsl:text>title #1 in module #2;</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="article[position()>1]/title">
+  <xsl:text>title #2 in module #2;</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp3.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp3.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp3.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="document">
+  <xsl:text>document in module #3;</xsl:text>
+  <xsl:apply-templates select="article"/>
+</xsl:template>
+
+
+<xsl:template match="article[position()=1]">
+  <xsl:text>article in module #3;</xsl:text>
+  <xsl:apply-templates select="title"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp4.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp4.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130-imp4.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="frame">
+  <div>
+    <xsl:apply-templates select="$g.doc.root/document/header"/>
+    <xsl:apply-templates select="$g.doc.root/document"/>
+  </div>
+</xsl:template>
+
+
+<xsl:template match="header">
+  <xsl:text>header #1 in module #4;</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="header[logo]">
+  <xsl:text>header #2 in module #4;</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<html xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body><div xmlns="">header #1 in module #4;document in module #3;article in module #3;title #1 in module #2;article in module #1;title #2 in module #2;</div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-130.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns="http://www.w3.org/TR/REC-html40">
+
+<xsl:import href="./bug-130-imp1.imp"/>
+<xsl:import href="./bug-130-imp2.imp"/>
+<xsl:import href="./bug-130-imp3.imp"/>
+<xsl:import href="./bug-130-imp4.imp"/>
+
+<xsl:output method="html" indent="no"/>
+
+<xsl:variable name="g.doc.root" select="document('../docs/bug-130.doc')"/>
+
+<xsl:template match="/">
+  <html>
+    <head></head>
+    <body><xsl:apply-templates select="/frame"/></body>
+  </html>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131-imp.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131-imp.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131-imp.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version="1.0">
+<xsl:attribute-set name="title.properties">
+  <xsl:attribute name="font-size">14pt</xsl:attribute>
+  <xsl:attribute name="font-weight">bold</xsl:attribute>
+  <xsl:attribute name="hyphenate">false</xsl:attribute>
+  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:template match="/title">
+    <fo:block xsl:use-attribute-sets="title.properties">
+        <xsl:apply-templates/>
+    </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" font-size="8pt" font-weight="bold" hyphenate="false" keep-with-next.within-column="always">My title</fo:block>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-131.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                version="1.0">
+
+<xsl:import href="bug-131-imp.imp"/>
+
+<xsl:attribute-set name="title.properties">
+    <xsl:attribute name="font-size">8pt</xsl:attribute>
+</xsl:attribute-set>
+
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-132.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-132.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-132.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<collection>
+  <test><![CDATA[
+    <![CDATA[abc]]]]><![CDATA[>
+  ]]></test>
+</collection>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-132.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-132.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-132.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  version="1.0"
+>
+  <xsl:output method="xml" encoding="UTF-8"
+    cdata-section-elements="test"
+  />
+
+  <xsl:template match="/">
+    <xsl:copy-of select="*" />
+  </xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-133.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-133.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-133.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<html>
+<body><hintsection><hinttitle>title</hinttitle>
+<div>test</div>
+</hintsection></body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-133.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-133.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-133.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<xsl:stylesheet version="1.0"	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml" />
+
+<xsl:key name="next-headings" match="h2"
+	use="generate-id(preceding-sibling::h1[1])" />
+
+<xsl:key name="immediate-nodes"
+	match="node()[not(self::h1 | self::h2)]"
+	use="generate-id(preceding-sibling::*[self::h1 or self::h2][1])" />
+
+<xsl:template match="h1 | h2">
+	<hintsection>
+		<hinttitle><xsl:apply-templates /></hinttitle>
+		<xsl:apply-templates
+			select="key('immediate-nodes', generate-id(.))" />
+		<xsl:apply-templates select="key('next-headings', generate-id(.))" />
+	</hintsection>
+</xsl:template>
+
+<xsl:template match="node()|@*">
+	<xsl:copy>
+		<xsl:apply-templates select="node()|@*"/>
+	</xsl:copy>
+</xsl:template>
+
+<xsl:template match="body">
+	<xsl:copy>
+		<xsl:apply-templates select="(h1|h2)[1]" />
+	</xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-134.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-134.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-134.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>2</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-134.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-134.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-134.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<xsl:stylesheet version="1.0" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+	
+<xsl:key name="test" match="node()[self::sect][h1|h2]" use="'test'" />
+
+<xsl:template match="/">
+  <result>
+    <xsl:value-of select="count(key('test','test'))" />
+  </result>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-135.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-135.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-135.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>1</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-135.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-135.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-135.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+	
+<xsl:key name="test" match="node()[self::sect][h1[h2]|h2]" use="'test'" />
+
+<xsl:template match="/">
+  <result><xsl:value-of select="count(key('test','test'))" /></result>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-136.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-136.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-136.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+ <ns1:foobar xmlns:ns1="http://some/namespace/uri"/>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-136.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-136.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-136.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsl:stylesheet version="1.0" 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
+<xsl:template match="item">
+    <xsl:element name="foobar" namespace="{@n}" />
+</xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0" standalone="no"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:func="http://exslt.org/functions"
+ extension-element-prefixes="func"
+ >
+ <xsl:key name="mykey" match="test" use="func:initial(.)" />
+  <func:function name="func:initial">
+    <xsl:param name="s" />
+    <func:result select="substring($s,1,1)" />
+  </func:function>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>This should be matched by the key</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-137.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:import href="bug-137.imp"/>
+  <xsl:template match="/">
+    <result><xsl:value-of select="key('mykey', 'T')"/></result>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-138.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-138.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-138.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<Message xmlns="http://me.envelope">
+  <Header>
+    <Title>My Document</Title>
+    <From>someone</From>
+  </Header>
+  <Body xmlns="http://me.content">
+    <Item>
+      <Ref>1234</Ref>
+      <Info desc="A widget">
+        <Note>min qty 5</Note>
+      </Info>
+      <Quantity>10</Quantity>
+    </Item>
+    <Item>
+      <Ref>99999</Ref>
+      <Info desc="Miscellaneous">
+        <Note>add comment</Note>
+      </Info>
+      <Quantity>3</Quantity>
+    </Item>
+  </Body>
+</Message>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-138.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-138.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-138.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns="http://me.envelope"
+    version="1.0">
+  <xsl:output method="xml" indent="yes"/>
+  <xsl:template match="report">
+    <Message>
+      <Header>
+        <Title><xsl:value-of select="title"/></Title>
+        <From><xsl:value-of select="origin"/></From>
+      </Header>
+      <Body xmlns="http://me.content">
+        <xsl:for-each select="form">
+          <Item>
+            <Ref><xsl:value-of select="code"/></Ref>
+            <xsl:element name="Info">
+              <xsl:attribute name="desc">
+                <xsl:value-of select="description"/>
+              </xsl:attribute>
+              <Note><xsl:value-of select="description/@note"/></Note>
+            </xsl:element>
+            <Quantity><xsl:value-of select="qty"/></Quantity>
+          </Item>
+        </xsl:for-each>
+      </Body>
+    </Message>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-139.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-139.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-139.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+My title is FOO BAR and some.
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-139.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-139.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-139.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns="http://www.w3.org/1999/xhtml"
+                version="1.0">
+
+
+<xsl:template match="/">
+    <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="section">
+    <xsl:value-of select="."/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-14-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-14-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-14-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+php : lines of code #########################
+         Commentaire 
+#########################

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-14-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-14-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-14-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+<?xml version= "1.0"?>
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match = "/" > 
+        <xsl:apply-templates select="//processing-instruction()"/> 
+        <xsl:apply-templates select="//comment()"/> 
+        <!-- xsl:apply-templates/--> 
+</xsl:template> 
+
+<xsl:template match = "processing-instruction()" > 
+        <xsl:value-of select = "concat(name(),' : ',.)" /> 
+</xsl:template> 
+
+<xsl:template match = "comment()" > 
+        <xsl:text>#########################
+        </xsl:text> 
+                <xsl:value-of select = "." /> 
+        <xsl:text>
+#########################</xsl:text> 
+</xsl:template> 
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-140.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-140.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-140.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
+<script xmlns="http://www.w3.org/2000/svg" type="text/ecmascript"><![CDATA[
+  var foo2 = text;
+  ]]></script>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-140.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-140.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-140.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+
+<!DOCTYPE xsl:stylesheet [
+
+<!ENTITY bar "bar"> 
+
+<!ENTITY foo "var foo = &bar;"> 
+
+<!-- namespace for SVG -->
+<!ENTITY svgns "http://www.w3.org/2000/svg">
+<!-- namespace for XSLT -->
+<!ENTITY xsltns "http://www.w3.org/1999/XSL/Transform">
+
+]>
+
+<xsl:stylesheet version="1.0" 
+                xmlns="&svgns;" 
+                xmlns:xsl="&xsltns;"
+                exclude-result-prefixes="xsl">
+
+<xsl:output method="xml" indent="yes" encoding="iso-8859-1"
+standalone="yes" cdata-section-elements="script"/>
+
+<xsl:variable name="foo" select="'bar'"/>
+
+<xsl:template match="/">
+  <script type="text/ecmascript">
+  var foo2 = text;
+  </script>
+</xsl:template>            
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-141.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-141.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-141.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+
+
+current page : 1
+--------------------
+  dump union : "document,group,"
+  union-last : group
+  union-last (without /root) : group
+  preceeding-sibling 
+  parent-group group
+  root document
+-----------------------
+
+
+current page : 2
+--------------------
+  dump union : "document,group,page,"
+  union-last : page
+  union-last (without /root) : page
+  preceeding-sibling page
+  parent-group group
+  root document
+-----------------------
+
+
+current page : 3
+--------------------
+  dump union : "document,group,page,"
+  union-last : page
+  union-last (without /root) : page
+  preceeding-sibling page
+  parent-group group
+  root document
+-----------------------
+
+
+current page : 4
+--------------------
+  dump union : "document,group,page,"
+  union-last : page
+  union-last (without /root) : page
+  preceeding-sibling page
+  parent-group group
+  root document
+-----------------------
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-141.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-141.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-141.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,25 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+<xsl:template match="/">
+  <xsl:apply-templates select="//page"/>
+</xsl:template>
+
+<xsl:template match="page">
+
+current page : <xsl:value-of select="@name"/>
+--------------------
+  dump union : "<xsl:for-each
+select="(preceding-sibling::page[1]|parent::group[1]|/document)">
+    <xsl:value-of select="name()"/>,</xsl:for-each>"
+  union-last : <xsl:value-of select="name(
+(preceding-sibling::page[1]|parent::group[1]|/document)[last()] )"/>
+  union-last (without /root) : <xsl:value-of select="name(
+(preceding-sibling::page[1]|parent::group[1])[last()] )"/>
+  preceeding-sibling <xsl:value-of select="name(preceding-sibling::page[1])"/>
+  parent-group <xsl:value-of select="name(parent::group[1])"/>
+  root <xsl:value-of select="name(/document)"/>
+-----------------------
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-142.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-142.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-142.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><body><div id="post6"><h3><a href="2004/01/26/6">他の日本語の伝言</a></h3>
+      <p>この伝言は日本語で書いて、翻訳がある。<span xml:lang="fr">couhin ?</span></p>
+      <p>Et on a une petite phrase en français.</p>
+    </div>
+    Test
+  <div id="post4"><h3><a href="2004/01/25/4">日本語の伝言</a></h3>
+      <p>この伝言は日本語で書いて、翻訳がない。実は少しだけ。</p>
+      <p>あいうえおかきくけこさしすせそ…</p>
+    </div><div id="post3"><h3><a href="2005/08/12/3"/></h3></div><div id="post2"><h3><a href="2004/01/25/2">間違い</a></h3>
+      <p>Quelques tests d'erreurs :</p>
+      <ul>
+	Un paragraphe dans la liste
+	<li><a href="http://www.google.com/">un lien externe sans hreflang,</a></li>
+	<li/>
+	<li><span xml:lang="fr"><li>un couac</li></span>,</li>
+	<li><li>un autre</li>,</li>
+	<li>une <span xml:lang="fr">翻訳</span> sans xml:lang="ja"</li>
+	<li>20040125</li>
+      </ul>
+    </div><div id="post1"><h3><a href="2004/01/25/1">サンプル</a></h3>
+      <p>Ceci est un <span xml:lang="ja">テスト</span>.</p>
+      <ul>
+	<li>Voici une liste,</li>
+	<li>un splendide test de <a href="http://www.google.com/">lien extérieur</a>,</li>
+	<li>un autre test de lien, mais <a href="glandium.png">interne, cette fois</a>,</li>
+	<li>日本語のアイテム、</li>
+	<li><a href="http://www.google.com">リンクがある日本語のアイテム、</a></li>
+	<li><a href="http://www.google.com">un item lien.</a></li>
+	<li>Un <span xml:lang="ja">テスト</span> d'auto-traduction (le mot est présent plus haut dans le post, pas la peine de tout répéter...</li>
+	<li>une date en ligne : 20040301 et <ul><li>une liste dans la liste</li></ul></li>
+	<li>un <a href="glandium.png">lien avec du <span xml:lang="ja">日本語</span> dedans</a></li>
+      </ul>
+      <p><a href="http://www.google.com">un paragraphe lien.</a></p>
+    </div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-142.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-142.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-142.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:g="http://glandium.org/" xmlns:日本語="http://glandium.org/nihongo/" xmlns:date="http://exslt.org/dates-and-times" exclude-result-prefixes="g 日本語 date">
+
+  <xsl:template match="g:posts">
+    <html xml:lang="fr">
+      <body>
+        <xsl:apply-templates select="*"/>
+      </body>
+    </html>
+  </xsl:template>
+
+  <xsl:template match="g:posts/g:post[g:date]">
+    <xsl:variable name="id" select="@id"/>
+    <xsl:variable name="date" select="concat(substring(g:date,1,4),'/',substring(g:date,5,2),'/',substring(g:date,7,2))"/>
+
+    <div id="post{$id}">
+      <xsl:if test="lang(ja)">
+        <xsl:attribute name="xml:lang">ja</xsl:attribute>
+      </xsl:if>
+      <h3><a href="{$date}/{$id}">
+        <xsl:apply-templates select="g:title"/>
+      </a></h3>
+      <xsl:apply-templates select="g:content"/>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="g:post/g:title">
+    <xsl:apply-templates mode="日本語" select="."/>
+  </xsl:template>
+
+  <xsl:template match="g:post/g:content">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <xsl:template match="g:content/g:para">
+    <p><xsl:apply-templates mode="link" select="."/></p>
+  </xsl:template>
+
+  <xsl:template match="g:para/g:span|g:item/g:span|g:span/g:span">
+    <xsl:apply-templates mode="link" select="."/>
+  </xsl:template>
+
+  <xsl:template match="g:content/g:list|g:item/g:list">
+    <ul><xsl:apply-templates mode="link" select="."/></ul>
+  </xsl:template>
+
+  <xsl:template match="g:list/g:item">
+    <li><xsl:apply-templates mode="link" select="."/></li>
+  </xsl:template>
+
+  <xsl:template match="g:span[@href]|g:para[@href]|g:item[@href]" mode="link">
+    <a href="{@href}">
+      <xsl:apply-templates mode="日本語" select="."/>
+    </a>
+  </xsl:template>
+
+  <xsl:template match="*" mode="link">
+    <xsl:apply-templates mode="日本語" select="."/>
+  </xsl:template>
+
+  <xsl:template match="*" mode="日本語">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <xsl:template match="*[lang('ja') and not(ancestor::*[@xml:lang='ja'])]" mode="日本語">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <xsl:template match="g:span[lang('ja') and not (ancestor::*[@xml:lang='ja'])][not(@href)]" mode="日本語">
+    <span xml:lang="ja">
+      <xsl:apply-templates/>
+    </span>
+  </xsl:template>
+  
+  <xsl:template match="*[lang('fr')]" mode="日本語">
+    <xsl:apply-templates/>
+  </xsl:template>
+  
+  <xsl:template match="g:span[lang('fr')][not(@href)]" mode="日本語">
+    <span xml:lang="fr">
+      <xsl:apply-templates/>
+    </span>
+  </xsl:template>
+
+</xsl:stylesheet>


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-142.xsl
___________________________________________________________________
Name: svn:executable
   + *

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-143.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-143.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-143.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<foo bar="0foo1">foo1</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-143.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-143.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-143.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:variable name="foo">foo</xsl:variable>
+<xsl:variable name="bar">
+  <foo bar="0{$foo}1">foo1</foo>
+</xsl:variable>
+<xsl:template match="/">
+  <xsl:copy-of select="$bar"/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-144.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-144.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-144.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<foo bar="0foo1">foo1</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-144.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-144.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-144.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="/">
+  <xsl:variable name="foo">foo</xsl:variable>
+  <xsl:variable name="bar">
+  <foo bar="0{$foo}1">foo1</foo>
+</xsl:variable>
+  <xsl:copy-of select="$bar"/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-145.err
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-145.err	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-145.err	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+compilation error: file ./bug-145.xsl line 4 element transform
+xsl:version is missing: document may not be a stylesheet
+runtime error: file ./bug-145.xsl line 6 element call-template
+xsl:call-template : template a:a not found
+no result for ./../docs/bug-145.xml

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-145.out
===================================================================

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-145.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-145.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-145.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+xmlns:a="a">
+   <xsl:template match="/">
+        <xsl:call-template name="a:a"/>
+   </xsl:template>
+</xsl:transform>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-146.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-146.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-146.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<root>
+  <colls COL_COD="PT" COL_NAME="Àðãî" CURR_ID_0="" CURR_ID_1="" CURR_ID_2="" CURR_ID_3="">
+    <color COL_ID="24007" TITLE="ïóñòîé" RU_CODE=""/>
+  </colls>
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-146.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-146.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-146.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml" encoding="windows-1251" indent="yes"/>
+<xsl:strip-space elements="*"/>
+<xsl:key name="EMPTY_EN_CODE_COLLS" match="/root/colls/goodcoll/goodcomb/@COL_ID
+[../@EN_CODE = '']" use="../../../@COL_COD"/>
+<xsl:key name="EMPTY_EN_CODE_COLRS" match="/root/colls/goodcoll/goodcomb/@COL_ID
+[../@EN_CODE = '']" use="concat(.,':',../../../@COL_COD)"/>
+<xsl:template match="/">
+<root>
+ <xsl:for-each select="/root/colls[key('EMPTY_EN_CODE_COLLS', at COL_COD)]">
+  <xsl:copy>
+   <xsl:copy-of select="@*"/>
+   <xsl:for-each select="key('EMPTY_EN_CODE_COLLS', at COL_COD)[generate-id(.) = 
+generate-id(key('EMPTY_EN_CODE_COLRS',concat(.,':',../../../@COL_COD)))]">
+    <color>
+     <xsl:copy-of select="../@TITLE | ../@RU_CODE | ."/>
+    </color>
+   </xsl:for-each>
+  </xsl:copy>
+ </xsl:for-each>
+</root>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-1.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-1.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-1.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+                
+<xsl:template match="dokument">
+  <xsl:text>template#1 in module#1;</xsl:text>
+  <xsl:apply-templates select="paragraph"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-2.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-2.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-2.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+     
+<xsl:template match="interestguide">
+  <xsl:text>template#1 in module#2;</xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-3.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-3.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-3.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="numliste">
+  <xsl:text>template#1 in module#3;</xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+
+<xsl:template match="numliste-u">
+  <xsl:text>template#2 in module#3;</xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+
+<xsl:template match="liste | liste-u">
+  <xsl:text>template#3 in module#3;</xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+
+<xsl:template match="numliste[@startindex] | numliste-u[@startindex]">
+  <xsl:text>template#4 in module#3;</xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+
+<xsl:template match="le[parent::*/@typ='strich'] | 
+                     le[parent::liste or parent::liste-u][not
+(parent::*/@typ)]">
+  <xsl:text>template#5 in module#3;</xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+
+<xsl:template match="le[parent::*/@typ='punkt']">
+  <xsl:text>template#6 in module#3;</xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+
+<xsl:template match="le[parent::*/@typ='kasten']">
+  <xsl:text>template#7 in module#3;</xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+
+<xsl:template match="le[parent::*/@typ='arabisch'] | 
+                     le[parent::numliste or parent::numliste-u][not
+(parent::*/@typ)]">
+  <xsl:text>template#8 in module#3;</xsl:text>
+  <xsl:apply-templates/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-4.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-4.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-4.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:import href="./bug-147-5.imp"/>
+
+     
+<xsl:template match="action[@name='ShowPage']
+                           [@event='onClick']
+                           [pass-param/@name='pageid']">
+  <xsl:text>template#1 in module#4;</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-5.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-5.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-5.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:import href="./bug-147-6.imp"/>
+
+     
+<xsl:template match="action[@name='ShowPage']
+                           [@event='onClick']
+                           [pass-param/@name='pageid']">
+  <xsl:text>template#1 in module#5;</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="action[@name='ChangeBGColor']
+                           [@event='onMouseOver']">
+  <xsl:text>template#2 in module#5;</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="action[@name='ChangeBGColor']
+                           [@event='onMouseOut']">
+  <xsl:text>template#3 in module#5;</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-6.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-6.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147-6.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="action[@name='ShowPage']
+                           [@event='onClick']                                
+                           [pass-param/@name='pagenum']">
+  <xsl:text>template#1 in module#6;</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="action[@name='ShowPage']
+                           [@event='onClick']
+                           [pass-param/@name='pageid']">
+  <xsl:text>template#2 in module#6;</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="action[@name='ShowInfoText']
+                           [@event='onCreate']">
+  <xsl:text>template#3 in module#6;</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="pass-param"
+              mode="invlink">
+  <xsl:text>template#4 in module#6;</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<html>
+<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>
+<body><div>template#1 in module#1;
+template#3 in module#3;
+template#5 in module#3;abc
+
+
+template#1 in module#2;
+
+
+template#2 in module#5;
+template#3 in module#5;
+
+
+
+</div></body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-147.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+                
+<xsl:import href="./bug-147-3.imp"/>
+<xsl:import href="./bug-147-2.imp"/>
+<xsl:import href="./bug-147-1.imp"/>
+<xsl:import href="./bug-147-4.imp"/>
+
+
+<xsl:output method="html"/>
+
+
+<xsl:template match="/">
+  <html>
+    <head></head>
+    <body><xsl:apply-templates select="/dokument"/></body>
+  </html>
+</xsl:template>
+
+
+<xsl:template match="dokument">
+  <div>
+    <xsl:apply-imports/>
+    <xsl:apply-templates select="navigation[@location='bottom']"/>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-148.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-148.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-148.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<foo/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-148.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-148.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-148.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='utf-8'?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:ns1="http://www.example.com/ns1"
+		exclude-result-prefixes="ns1"
+                version="1.0">
+<foo xmlns="http://www.example.com/ns1"/>
+
+<xsl:template match="/">
+  <xsl:element name="foo"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-149.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-149.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-149.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<foo/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-149.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-149.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-149.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='utf-8'?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+<foo xmlns="http://www.example.com/ns1"/>
+
+<xsl:template match="/">
+  <xsl:element name="foo"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-15-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-15-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-15-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<html><body><ul>
+<li>a</li>
+<li>b</li>
+<li>c</li>
+</ul></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-15-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-15-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-15-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:template match='doc'>
+<html>
+<body>
+<ul>
+    <xsl:for-each select='items'>
+    <xsl:sort/>
+    <li><xsl:value-of select='.'/></li>
+    </xsl:for-each>
+</ul>
+</body>
+</html>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-150.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-150.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-150.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<root xmlns="urn:A" xmlns:b="urn:B" xmlns:a="urn:A"><Product a:ID="1001"/></root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-150.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-150.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-150.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+  <xsl:template match="/">
+    <root xmlns="urn:A" xmlns:b="urn:B" xmlns:a="urn:A">
+      <Product a:ID="1001"/>
+    </root>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-151.out
===================================================================

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-151.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-151.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-151.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<xsl:stylesheet version="1.0"
+	      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	      xmlns:ex="http://example.org/">
+
+<xsl:output method="xml"
+	      encoding="UTF-8"
+	      doctype-public="-//example.org//Example 1.0//EN"/>
+ 
+<xsl:template match="/tst">
+  <ex:document xmlns:ex="http://example.org/">
+    <xsl:apply-templates match="doc"/>
+  </ex:document>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-152.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-152.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-152.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="US-ASCII"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII" />
+    <style type="text/css" media="all">@import
+"pretty_xhtml.css";</style>
+  </head>
+  <body>
+    <h1>foo</h1>
+  </body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-152.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-152.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-152.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:transform
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0" xmlns="http://www.w3.org/1999/xhtml">
+
+  <xsl:output 
+    method="xml"
+    version="1.0"
+    indent="yes"
+    encoding="US-ASCII"
+    doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+    />
+
+  <xsl:template match="/">
+    <html>
+      <head>
+        <style type="text/css" media="all">@import
+"pretty_xhtml.css";</style>        
+      </head>
+      <body>
+        <h1>foo</h1>
+      </body>
+    </html>
+  </xsl:template>
+
+</xsl:transform>
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-153.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-153.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-153.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<p>XXXXXXXXXXX</p><p>XXXXXXXXXXX</p>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-153.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-153.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-153.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+
+<xsl:transform
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="cp">
+    <xsl:apply-templates select="c"/>
+  </xsl:template>
+
+  <xsl:template match="c">
+    <p>
+      <xsl:value-of select="document('../docs/bug-153.doc')/ch/v[@name=current()/v]"/>
+    </p>
+  </xsl:template>
+
+  <xsl:key name="k" match="u/p" use="un"/>
+
+</xsl:transform>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-154.out
===================================================================

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-154.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-154.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-154.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<xsl:transform version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:test="#">
+<xsl:variable name="test:foo" select="'abc'"/>
+</xsl:transform>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-155.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-155.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-155.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<h3>Literaturhinweis</h3><ul>
+  <li><strong>Ältestenrat:</strong>18-99</li>
+</ul>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-155.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-155.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-155.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
+  <xsl:template match="object[@class='Literaturhinweis']"><h3>Literaturhinweis</h3>
+<ul>
+ <li><strong>Ältestenrat:</strong><xsl:value-of select="Ältestenrat"/></li>
+</ul>
+</xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.err
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.err	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.err	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+From main
+From second import

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.imp1.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.imp1.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.imp1.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="bug-156.imp2.imp"/>
+
+<xsl:template name="message">
+  <xsl:message>From first import</xsl:message>
+  <xsl:apply-imports/>
+</xsl:template>
+
+<xsl:template match="/">
+  <xsl:call-template name="message"/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.imp2.imp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.imp2.imp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.imp2.imp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:template match="/">
+  <xsl:message>From second import</xsl:message>
+  <xsl:apply-imports/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.out
===================================================================

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-156.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:import href="bug-156.imp1.imp"/>
+
+<xsl:template name="message">
+  <xsl:message>From main</xsl:message>
+  <xsl:apply-imports/>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.err
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.err	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.err	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+last() was 3
+last() was 3
+last() was 3

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+  
+ 3 me
+  
+ 3 you
+  
+ 3 others
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-157.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
+
+<xsl:template match="/"><xsl:apply-templates select="*" /></xsl:template>
+<xsl:template match="foo/bar[last()=4]">
+ 4 <xsl:value-of select="." />
+</xsl:template>                     
+<xsl:template match="foo/bar[last()=3]">
+ <xsl:message>last() was 3</xsl:message>
+ 3 <xsl:value-of select="." />
+</xsl:template>
+<xsl:template match="foo/bar[last()=2]">
+ 2 <xsl:value-of select="." />
+</xsl:template>
+<xsl:template match="foo/bar[last()=1]">
+ 1 <xsl:value-of select="." />
+</xsl:template>
+
+<xsl:template match="foo/bar" priority="-100">
+  <xsl:message>last() was <xsl:value-of select="last()"/></xsl:message>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-158.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-158.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-158.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+
+myPath is path
+root is 

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-158.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-158.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-158.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0" ?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  version="1.0"
+                xmlns:dsl="http://www.decisionsoft.com/website"
+                xmlns:html="http://www.w3.org/1999/xhtml"
+                xmlns:layout="http://www.decisionsoft.com/website-layout"
+                xmlns="http://www.w3.org/1999/xhtml">
+
+<xsl:variable name="myPath" select="/dsl:page/@path" />
+<xsl:variable name="layout" select="document('../docs/bug-158.doc')"/>
+<xsl:variable name="root"><xsl:value-of select="$layout//layout:page[@path=$myPath]" />
+</xsl:variable>
+
+<xsl:template match="/">
+myPath is <xsl:value-of select="$myPath" />
+root is <xsl:value-of select="$root" />
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-159.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-159.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-159.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<html>
+<head><meta http-equiv="Content-Type" content="text/html; charset=ascii"></head>
+<body>
+<a href="#%D1%91">&#1105;</a><p>a lot of text</p>
+<a name="%D1%91"></a><h1>&#1105;</h1>
+<p>a lot of text</p>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-159.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-159.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-159.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:output method="html" encoding="ascii"/>
+        
+<xsl:template match="/">
+  <html>
+    <head/>
+    <body>
+      <a href="#&#x451;">&#x451;</a>
+      <p>a lot of text</p>
+
+      <a name="&#x451;"/><h1>&#x451;</h1>
+      <p>a lot of text</p>
+    </body>
+  </html>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-16-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-16-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-16-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+1 AAA
+    1.1 AAA
+    1.1.1 AAA
+    1.1.2 AAA
+    1.1.3 AAA
+    1.2 AAA
+    1.2.1 AAA
+    1.2.2 AAA
+    1.2.3 AAA
+    1.3 AAA
+    1.3.1 AAA
+    1.3.2 AAA
+    1.3.3 AAA
+    
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-16-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-16-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-16-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
+                version="1.0"> 
+<xsl:output method = "text" />
+<xsl:template match = "/" >
+    <xsl:apply-templates select = "//AAA" />
+</xsl:template>
+
+<xsl:template match = "*" >
+    <xsl:number level = "multiple"/>
+    <xsl:text > AAA
+    </xsl:text>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-160.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-160.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-160.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+  
+  
+      success
+  
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-160.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-160.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-160.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	      version="1.0">
+
+<xsl:template match="AAA[Title='foo']//BBB">
+  <xsl:text>success</xsl:text>
+</xsl:template>
+<xsl:template match="Title">
+</xsl:template>
+
+</xsl:stylesheet>
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-161.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-161.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-161.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+
+test
+test
+First element of last item of orderedlist<para>test</para>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-161.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-161.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-161.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<xsl:stylesheet
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version="1.0">
+
+<xsl:output method="xml" /> 
+
+<!--match first element of last item of any orderedlist-->
+<!-- <xsl:template match="orderedlist/listitem[position()!=1][position()=last()]/*[1]"> -->
+<xsl:template match="orderedlist/listitem[position()!=1][position()=last()]/*[1]">
+   <xsl:text>First element of last item of orderedlist</xsl:text>
+   <xsl:copy>
+     <xsl:apply-templates select="@*|node()"/>
+   </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-163.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-163.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-163.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+findme

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-163.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-163.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-163.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">
+    <template match="/">
+        <value-of select="id('indexme')/@some-attr"/>
+    </template>
+</stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-17-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-17-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-17-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<pos>1</pos>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-17-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-17-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-17-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+    <xsl:variable name="pos" select="position()"/>
+    <xsl:template match="/">
+      <pos><xsl:value-of select="$pos"/></pos>
+    </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-18-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-18-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-18-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+
+  RIGHT

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-18-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-18-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-18-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:ns2="whatever"
+ xmlns:ns="another"
+ version="1.0">
+
+<xsl:output method="text"/>
+
+<xsl:template match="ns2:root">
+  RIGHT
+</xsl:template>
+
+<xsl:template match="ns:root">
+  WRONG
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-19-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-19-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-19-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+
+  RIGHT

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-19-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-19-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-19-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:ns2="whatever"
+ xmlns:ns="another"
+ version="1.0">
+
+<xsl:output method="text"/>
+
+<xsl:template match="ns:root">
+  WRONG
+</xsl:template>
+
+<xsl:template match="ns2:root">
+  RIGHT
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-2-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-2-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-2-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<FOO><BAR INDEX="1">
+    This is bar 1
+  </BAR><BAR INDEX="2">
+    This is bar 2
+  </BAR><BAR INDEX="3">
+    This is bar 3
+  </BAR></FOO>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-2-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-2-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-2-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:strip-space elements="*"/>
+
+<xsl:template match="foo">
+  <FOO>
+    <xsl:apply-templates/>
+  </FOO>
+</xsl:template>
+
+<xsl:template match="bar">
+  <BAR INDEX="{position()}">
+    <xsl:value-of select="."/>
+  </BAR>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-20-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-20-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-20-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+
+         BBB[1]: 10 
+         BBB[2]: 5 
+         BBB[3]: 7 
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-20-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-20-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-20-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0" > 
+
+<xsl:output method = "text" /> 
+
+<xsl:template match = "/" > 
+        <xsl:apply-templates select = "//BBB" /> 
+</xsl:template> 
+
+<xsl:template match = "BBB" > 
+        <xsl:text>
+         BBB[</xsl:text> 
+                                                                                   
+<xsl:value-of select = "position()" /> 
+                                                                                   
+<xsl:text >]: </xsl:text> 
+                                                                                   
+<xsl:value-of select = "." /> 
+</xsl:template> 
+
+</xsl:stylesheet> 
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-21-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-21-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-21-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+../docs/test.jpg

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-21-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-21-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-21-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0" ?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+<xsl:template match="/doc">
+  <xsl:value-of select="unparsed-entity-uri(string(@attr))"/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-22-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-22-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-22-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<indexdoc>
+  <primaryterm>A</primaryterm>
+  <primaryterm>B</primaryterm>
+  <primaryterm>BA</primaryterm>
+  <primaryterm>C</primaryterm>
+  <primaryterm>C A</primaryterm>
+  <primaryterm>C-A</primaryterm>
+  <primaryterm>CB</primaryterm>
+  <primaryterm>CBA</primaryterm>
+  <primaryterm>CDA</primaryterm>
+</indexdoc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-22-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-22-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-22-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version='1.0'?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
+<xsl:output method="xml" indent="yes"/>
+<xsl:template match="/">
+<indexdoc>
+<xsl:apply-templates select="//indexterm"> 
+<xsl:sort data-type="text" select="primary"/>
+</xsl:apply-templates>
+</indexdoc>
+</xsl:template>
+
+
+<xsl:template match="indexterm">
+<primaryterm><xsl:value-of select="primary"/></primaryterm>
+</xsl:template>
+
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-23-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-23-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-23-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<indexdoc>
+  <term>A:</term>
+  <term>B:</term>
+  <term>B:A</term>
+  <term>B:B</term>
+  <term>B:BA</term>
+  <term>B:C</term>
+  <term>B:C A</term>
+  <term>B:C-A</term>
+  <term>B:CB</term>
+  <term>B:CBA</term>
+  <term>B:CDA</term>
+  <term>C:</term>
+</indexdoc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-23-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-23-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-23-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,20 @@
+<?xml version='1.0'?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
+<xsl:output method="xml" indent="yes"/>
+<xsl:template match="/">
+<indexdoc>
+<xsl:apply-templates select="//indexterm"> 
+<xsl:sort data-type="text" select="primary"/>
+<xsl:sort data-type="text" select="secondary"/>
+</xsl:apply-templates>
+</indexdoc>
+</xsl:template>
+
+
+<xsl:template match="indexterm">
+<term><xsl:value-of select="primary"/>:<xsl:value-of select="secondary"/></term>
+</xsl:template>
+
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-24-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-24-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-24-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<indexdoc>
+  <primaryterm>Main Menu</primaryterm>
+  <secondaryterm></secondaryterm>
+  <tertiaryterm></tertiaryterm>
+  <primaryterm>Panel</primaryterm>
+  <secondaryterm></secondaryterm>
+  <tertiaryterm></tertiaryterm>
+  <primaryterm>Panel</primaryterm>
+  <secondaryterm>Auto-hide</secondaryterm>
+  <tertiaryterm></tertiaryterm>
+  <primaryterm>Panel</primaryterm>
+  <secondaryterm>Background</secondaryterm>
+  <tertiaryterm></tertiaryterm>
+  <primaryterm>Panel</primaryterm>
+  <secondaryterm>Hide Buttons</secondaryterm>
+  <tertiaryterm></tertiaryterm>
+  <primaryterm>Panel</primaryterm>
+  <secondaryterm>Hiding</secondaryterm>
+  <tertiaryterm></tertiaryterm>
+  <primaryterm>Panel</primaryterm>
+  <secondaryterm>Individual Panel Properties</secondaryterm>
+  <tertiaryterm></tertiaryterm>
+  <primaryterm>Panel</primaryterm>
+  <secondaryterm>Properties</secondaryterm>
+  <tertiaryterm></tertiaryterm>
+</indexdoc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-24-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-24-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-24-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version='1.0'?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
+<xsl:output method="xml" indent="yes"/>
+<xsl:template match="/">
+<indexdoc>
+<xsl:apply-templates select="//indexterm"> 
+<xsl:sort data-type="text" select="primary"/>
+<xsl:sort data-type="text" select="secondary"/>
+</xsl:apply-templates>
+</indexdoc>
+</xsl:template>
+
+
+<xsl:template match="indexterm">
+<primaryterm><xsl:value-of select="primary"/></primaryterm>
+<secondaryterm><xsl:value-of select="secondary"/></secondaryterm>
+<tertiaryterm><xsl:value-of select="tertiary"/> </tertiaryterm>
+</xsl:template>
+
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-25-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-25-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-25-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE doc PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-25-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-25-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-25-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:output method="xml" encoding="UTF-8"
+ doctype-public="-//WAPFORUM//DTD WML 1.1//EN"
+ doctype-system="http://www.wapforum.org/DTD/wml_1.1.xml"/>
+
+<xsl:template match="/">
+<doc/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-26-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-26-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-26-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<foo attr="{escaped curly brackets}"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-26-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-26-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-26-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		version="1.0">
+
+  <xsl:template match="/">
+    <foo attr="{{escaped curly brackets}}"/>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-27-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-27-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-27-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<p attr="from-xsl-attr"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-27-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-27-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-27-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		version="1.0">
+  <xsl:attribute-set name="my-attr-set">
+    <xsl:attribute name="attr">from-attr-set</xsl:attribute>
+  </xsl:attribute-set>
+
+  <xsl:template match="/">
+    <p xsl:use-attribute-sets="my-attr-set" attr="from-p-tag">
+      <xsl:attribute name="attr">from-xsl-attr</xsl:attribute>
+    </p>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-28-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-28-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-28-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<html></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-28-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-28-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-28-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		version="1.0">
+
+  <xsl:template match="/">
+    <html></html>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-29-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-29-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-29-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+  
+  Including: bug-29-.ent
+
+
+  Person: Stephane GUIBOUD-RIBAUD
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-29-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-29-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-29-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:template match="include">
+  Including: <xsl:value-of select="@href"/>
+  <xsl:apply-templates select="document(@href)"/>
+</xsl:template>
+
+<xsl:template match="person">
+  Person: <xsl:apply-templates/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-3-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-3-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-3-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<foo option="1" blaat="2" fiets="3">Test</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-3-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-3-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-3-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="*">
+    <xsl:copy>
+	<xsl:copy-of select="@*"/>
+	<xsl:apply-templates/>
+    </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet> 
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-30-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-30-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-30-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+mark

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-30-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-30-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-30-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<xsl:stylesheet version="1.0"
+     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="/">
+<xsl:variable name="var" select="string('mark')"/>
+<xsl:value-of select="$var"/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-31-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-31-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-31-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/css" href="style.css"?>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-31-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-31-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-31-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version= "1.0" encoding="ISO-8859-1" standalone="yes"?>
+
+<xsl:stylesheet version="1.0" 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="processing-instruction()">
+	<xsl:copy/>
+  </xsl:template>
+  
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-32-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-32-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-32-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<a xmlns:b="http://b"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-32-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-32-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-32-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<xsl:stylesheet version="1.0" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:b="http://b">
+
+<xsl:template match="@b:*"/>
+
+<xsl:template match="*">
+ <xsl:copy>
+   <xsl:apply-templates select="*|@*"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="@*">
+ <xsl:copy/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-33-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-33-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-33-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Midterm Exam</title>
+<script><
+	 funtion test() {
+	   var a;
+	   var b;
+
+	   if (a < b) { alert('Hello'); }
+	 }
+
+	 <</script>
+</head>
+<body bgcolor="white"></body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-33-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-33-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-33-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<?xml version="1.0" ?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version="1.0">
+
+ <xsl:output method="html"/>
+
+ <xsl:template match="/">
+   <html>
+     <head>
+       <title><xsl:value-of select="exam/@name"/></title>
+       <script>
+	 <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
+	 funtion test() {
+	   var a;
+	   var b;
+
+	   if (a &lt; b) { alert('Hello'); }
+	 }
+
+	 <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
+       </script>
+     </head>
+     <body bgcolor="white">
+     </body>
+   </html>
+ </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-35-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-35-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-35-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<a:a xmlns:a="http://a"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-35-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-35-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-35-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version='1.0'?>
+<xsl:stylesheet version="1.0" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:a="http://a">
+
+<xsl:template match="*">
+ <xsl:element name="{name()}"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<root>
+some text
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		version='1.0'>
+
+<xsl:include href="bug-36-inc.xsl" />
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-inc.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-inc.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-inc.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<root>
+some text
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-inc.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-inc.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-36-inc.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		xmlns:n="http://xmlsoft.org/"
+		exclude-result-prefixes="n"
+                version='1.0'>
+
+<xsl:variable name="var" select="/n:x" />
+
+<xsl:template match="/">
+  <root>
+    <xsl:value-of select="$var" />
+  </root>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<root>
+some text
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		version='1.0'>
+
+<xsl:include href="bug-37-inc.xsl" />
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-inc.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-inc.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-inc.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<root>
+some text
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-inc.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-inc.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-37-inc.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		xmlns:n="http://xmlsoft.org/"
+		exclude-result-prefixes="n"
+                version='1.0'>
+
+<xsl:template match="/">
+  <xsl:variable name="var" select="/n:x" />
+  <root>
+    <xsl:value-of select="$var" />
+  </root>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-38-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-38-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-38-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<elem xmlns:ns="http://whatever"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-38-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-38-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-38-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<xsl:stylesheet version="1.0" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template name="ns">
+ <ns xmlns:ns="http://whatever"/>
+</xsl:template>
+
+
+<xsl:template match="/*">
+ <elem>
+   <xsl:copy-of select="document('')/*/
+		       xsl:template[@name='ns']/
+		       ns/namespace::ns"/>
+ </elem>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-39-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-39-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-39-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<root>Matched /* or y template
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-39-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-39-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-39-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,34 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:template match="/">
+  <root>
+    <xsl:apply-templates />
+  </root>
+</xsl:template>
+
+<xsl:template match="x">
+  <xsl:text>Matched x template</xsl:text>
+  <xsl:apply-templates />
+</xsl:template>
+
+<!-- Case 1: y=0.0 /*=0.0, even though /* should be 0.5 -->
+<!-- works if split up to: 
+<xsl:template match="/*"> or of course you reverse the order
+so the y pattern is screwed instead
+-->
+<xsl:template match="y|/*">
+  <xsl:text>Matched /* or y template</xsl:text>
+  <xsl:apply-templates />
+</xsl:template>
+
+<!--
+Case 2: Here, both should have 5.0 priority but /* seems to have 0.0!
+<xsl:template match="y|/*" priority="5.0">
+  <xsl:text>Matched /* or y template</xsl:text>
+  <xsl:apply-templates />
+</xsl:template>
+-->
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-4-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-4-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-4-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<MEMBER name="M2">
+      <CONTENT>MEMBER 2 of GROUP 2</CONTENT>
+    </MEMBER><MEMBER name="M2">
+      <CONTENT>MEMBER 2 of GROUP 3</CONTENT>
+    </MEMBER>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-4-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-4-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-4-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="/">
+      <xsl:apply-templates select="ROOT"/>
+</xsl:template>
+<xsl:template match="ROOT">
+      <xsl:for-each select="GROUP[position() != 1]/MEMBER[2]">
+            <xsl:copy-of select="."/>
+      </xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-40-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-40-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-40-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-40-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-40-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-40-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:variable name="foo" select="'SUCCESS'"/>
+
+<xsl:template name="test">
+<xsl:value-of select="$foo"/>
+</xsl:template>
+
+<xsl:template match="/">
+<xsl:variable name="foo" select="'FAILURE'"/>
+<xsl:call-template name="test"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-41-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-41-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-41-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-41-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-41-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-41-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:variable name="foo" select="'FAILURE'"/>
+
+<xsl:template name="test">
+<xsl:value-of select="$foo"/>
+</xsl:template>
+
+<xsl:template match="/">
+<xsl:variable name="foo" select="'FAILURE'"/>
+<xsl:call-template name="test">
+    <xsl:with-param name="foo" select="'SUCCESS'"/>
+</xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-42-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-42-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-42-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-42-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-42-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-42-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:variable name="foo" select="'SUCCESS'"/>
+
+<xsl:template match="doc">
+<xsl:value-of select="$foo"/>
+</xsl:template>
+
+<xsl:template match="/">
+<xsl:variable name="foo" select="'FAILURE'"/>
+<xsl:apply-templates/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-43-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-43-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-43-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-43-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-43-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-43-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:variable name="foo" select="'FAILURE'"/>
+
+<xsl:template match="doc">
+<xsl:value-of select="$foo"/>
+</xsl:template>
+
+<xsl:template match="/">
+<xsl:variable name="foo" select="'FAILURE'"/>
+<xsl:apply-templates>
+    <xsl:with-param name="foo" select="'SUCCESS'"/>
+</xsl:apply-templates>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-44-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-44-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-44-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-44-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-44-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-44-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:variable name="foo" select="'FAILURE'"/>
+
+<xsl:template name="test">
+<xsl:param name="foo" select="'FAILURE'"/>
+<xsl:value-of select="$foo"/>
+</xsl:template>
+
+<xsl:template match="/">
+<xsl:variable name="foo" select="'FAILURE'"/>
+<xsl:call-template name="test">
+    <xsl:with-param name="foo" select="'SUCCESS'"/>
+</xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-45-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-45-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-45-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-45-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-45-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-45-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,27 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:variable name="foo" select="'1'"/>
+
+<xsl:template name="test">
+<xsl:param name="foo" select="'2'"/>
+<xsl:choose>
+    <xsl:when test="$foo = '0'">
+        <xsl:text>SUCCESS</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+        <xsl:text>FAILURE </xsl:text>
+	<xsl:value-of select="$foo"/>
+    </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="/">
+<xsl:variable name="foo" select="'3'"/>
+<xsl:call-template name="test">
+    <xsl:with-param name="foo" select="'0'"/>
+</xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-46-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-46-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-46-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-46-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-46-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-46-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:template name="test">
+<xsl:text>SUCCESS</xsl:text>
+</xsl:template>
+
+<xsl:template match="/">
+<xsl:variable name="foo">
+<xsl:call-template name="test"/>
+</xsl:variable>
+<xsl:value-of select="$foo"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-47-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-47-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-47-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-47-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-47-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-47-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:template name="test">
+<xsl:text>SUCCESS</xsl:text>
+</xsl:template>
+
+<xsl:template match="/">
+<xsl:variable name="foo">
+<xsl:call-template name="test"/>
+</xsl:variable>
+<xsl:if test="1">
+<xsl:value-of select="$foo"/>
+</xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-48-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-48-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-48-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-48-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-48-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-48-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:template name="empty">
+</xsl:template>
+
+<xsl:template name="test">
+<xsl:text>SUCCESS</xsl:text>
+</xsl:template>
+
+<xsl:template match="/">
+<xsl:variable name="foo">
+<xsl:call-template name="test"/>
+</xsl:variable>
+<xsl:if test="1">
+<xsl:apply-templates select="doc" name="empty">
+<xsl:with-param name="unused" select="$foo"/>
+</xsl:apply-templates>
+</xsl:if>
+<xsl:value-of select="$foo"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-49-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-49-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-49-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-49-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-49-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-49-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0" ?>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                 version="1.0">
+
+<xsl:variable name="a">
+   <xsl:variable name="b" select="'SUCCESS'"/>
+   <xsl:value-of select="$b"/>
+</xsl:variable>
+
+<xsl:template match="/">
+<xsl:value-of select="$a"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-5-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-5-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-5-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,954 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Churn by Product</title>
+<style type="text/css">	.PROD {background-color:cyan}
+	.PROD * {background-color:cyan}
+	.ACT {background-color:green;font-weight:bold}
+	.ACT * {background-color:green;font-weight:bold}
+	.NR {background-color:yellow;color:blue}
+	.NR * {background-color:yellow;color:blue}
+	.RC {background-color:yellow;color:red}
+	.RC * {background-color:yellow;color:red}
+
+				</style>
+</head>
+<body>
+<h1><center>Churn by Product</center></h1>
+<table width="100%"><tr>
+<td width="50%" align="left" valign="top">
+							Run Date: Wed Apr  4 23:00:55 2001 GMT<br>
+							Parameters:
+						</td>
+<td align="right" valign="top"><table>
+<tr><th>Legend</th></tr>
+<tr class="PROD"><td>Product</td></tr>
+<tr class="ACT"><td>Action</td></tr>
+<tr class="NR"><td>Non-Recurring</td></tr>
+<tr class="RC"><td>Recurring</td></tr>
+</table></td>
+</tr></table>
+<table align="center">
+<tr class="
+PROD
+">
+<td>Apple</td>
+<td>Proj. Rev: 255750</td>
+<td>Actual Rev: 85.53</td>
+</tr>
+<tr class="
+ACT
+">
+<td>PICK</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 50</td>
+</tr>
+<tr>
+<td valign="top"><table>
+<tr class="NR">
+<td>Non-Recurring</td>
+<td>Number: 1</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 50</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Birch</td>
+<td>1</td>
+<td>0</td>
+<td>50</td>
+</tr>
+<tr class="NR"></tr>
+</table></td>
+<td valign="top"></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+ACT
+">
+<td>EAT</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 0</td>
+</tr>
+<tr>
+<td valign="top"><table>
+<tr class="NR">
+<td>Non-Recurring</td>
+<td>Number: 68</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 0</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>6</td>
+<td>0</td>
+<td>0</td>
+</tr>
+<tr>
+<td>Elm</td>
+<td>60</td>
+<td>0</td>
+<td>0</td>
+</tr>
+<tr>
+<td>Birch</td>
+<td>2</td>
+<td>0</td>
+<td>0</td>
+</tr>
+<tr class="NR"></tr>
+</table></td>
+<td valign="top"></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+ACT
+">
+<td>SQUEEZE</td>
+<td>Proj. Rev: 255750</td>
+<td>Act. Rev: 35.53</td>
+</tr>
+<tr>
+<td valign="top"></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 109</td>
+<td>Proj. Rev: 255750</td>
+<td>Act. Rev: 35.53</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>7</td>
+<td>19250</td>
+<td>16.61</td>
+</tr>
+<tr>
+<td>Elm</td>
+<td>96</td>
+<td>220000</td>
+<td>11.76</td>
+</tr>
+<tr>
+<td>Birch</td>
+<td>6</td>
+<td>16500</td>
+<td>7.16</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+PROD
+"></tr>
+<tr class="
+PROD
+">
+<td>Orange</td>
+<td>Proj. Rev: 1743250</td>
+<td>Actual Rev: 10695.23</td>
+</tr>
+<tr class="
+ACT
+">
+<td>PICK</td>
+<td>Proj. Rev: 1159000</td>
+<td>Act. Rev: 9964.48</td>
+</tr>
+<tr>
+<td valign="top"><table>
+<tr class="NR">
+<td>Non-Recurring</td>
+<td>Number: 229</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 8300</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>34</td>
+<td>0</td>
+<td>1420</td>
+</tr>
+<tr>
+<td>Almond</td>
+<td>1</td>
+<td>0</td>
+<td>25</td>
+</tr>
+<tr>
+<td>Birch</td>
+<td>8</td>
+<td>0</td>
+<td>300</td>
+</tr>
+<tr>
+<td>Elm</td>
+<td>186</td>
+<td>0</td>
+<td>6555</td>
+</tr>
+<tr class="NR"></tr>
+</table></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 284</td>
+<td>Proj. Rev: 1159000</td>
+<td>Act. Rev: 1664.48</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>36</td>
+<td>171000</td>
+<td>221.3</td>
+</tr>
+<tr>
+<td>Elm</td>
+<td>240</td>
+<td>950000</td>
+<td>1412.34</td>
+</tr>
+<tr>
+<td>Birch</td>
+<td>8</td>
+<td>38000</td>
+<td>30.84</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+ACT
+">
+<td>EAT</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 0</td>
+</tr>
+<tr>
+<td valign="top"><table>
+<tr class="NR">
+<td>Non-Recurring</td>
+<td>Number: 101</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 0</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>34</td>
+<td>0</td>
+<td>0</td>
+</tr>
+<tr>
+<td>Almond</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+</tr>
+<tr>
+<td>Elm</td>
+<td>62</td>
+<td>0</td>
+<td>0</td>
+</tr>
+<tr>
+<td>Birch</td>
+<td>4</td>
+<td>0</td>
+<td>0</td>
+</tr>
+<tr class="NR"></tr>
+</table></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 8</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 0</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Birch</td>
+<td>8</td>
+<td>0</td>
+<td>0</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+ACT
+">
+<td>SQUEEZE</td>
+<td>Proj. Rev: 584250</td>
+<td>Act. Rev: 730.75</td>
+</tr>
+<tr>
+<td valign="top"></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 123</td>
+<td>Proj. Rev: 584250</td>
+<td>Act. Rev: 730.75</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>36</td>
+<td>171000</td>
+<td>221.3</td>
+</tr>
+<tr>
+<td>Elm</td>
+<td>80</td>
+<td>380000</td>
+<td>470.78</td>
+</tr>
+<tr>
+<td>Birch</td>
+<td>4</td>
+<td>19000</td>
+<td>15.42</td>
+</tr>
+<tr>
+<td>Almond</td>
+<td>3</td>
+<td>14250</td>
+<td>23.25</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+PROD
+"></tr>
+<tr class="
+PROD
+">
+<td>Banana</td>
+<td>Proj. Rev: 110250</td>
+<td>Actual Rev: 202.9</td>
+</tr>
+<tr class="
+ACT
+">
+<td>PICK</td>
+<td>Proj. Rev: 98000</td>
+<td>Act. Rev: 202.9</td>
+</tr>
+<tr>
+<td valign="top"><table>
+<tr class="NR">
+<td>Non-Recurring</td>
+<td>Number: 2</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 100</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Elm</td>
+<td>2</td>
+<td>0</td>
+<td>100</td>
+</tr>
+<tr class="NR"></tr>
+</table></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 8</td>
+<td>Proj. Rev: 98000</td>
+<td>Act. Rev: 102.9</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>1</td>
+<td>12250</td>
+<td>12.25</td>
+</tr>
+<tr>
+<td>Elm</td>
+<td>6</td>
+<td>73500</td>
+<td>78.4</td>
+</tr>
+<tr>
+<td>Almond</td>
+<td>1</td>
+<td>12250</td>
+<td>12.25</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+ACT
+">
+<td>EAT</td>
+<td>Proj. Rev: 12250</td>
+<td>Act. Rev: 0</td>
+</tr>
+<tr>
+<td valign="top"></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 1</td>
+<td>Proj. Rev: 12250</td>
+<td>Act. Rev: 0</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Almond</td>
+<td>1</td>
+<td>12250</td>
+<td>0</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+PROD
+"></tr>
+<tr class="
+PROD
+">
+<td>Nectarine</td>
+<td>Proj. Rev: 5950</td>
+<td>Actual Rev: -5.95</td>
+</tr>
+<tr class="
+ACT
+">
+<td>SQUEEZE</td>
+<td>Proj. Rev: 5950</td>
+<td>Act. Rev: -5.95</td>
+</tr>
+<tr>
+<td valign="top"></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 1</td>
+<td>Proj. Rev: 5950</td>
+<td>Act. Rev: -5.95</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>1</td>
+<td>5950</td>
+<td>-5.95</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+PROD
+"></tr>
+<tr class="
+PROD
+">
+<td>Pineapple</td>
+<td>Proj. Rev: 36250</td>
+<td>Actual Rev: 73.13</td>
+</tr>
+<tr class="
+ACT
+">
+<td>PICK</td>
+<td>Proj. Rev: 23750</td>
+<td>Act. Rev: 68.75</td>
+</tr>
+<tr>
+<td valign="top"><table>
+<tr class="NR">
+<td>Non-Recurring</td>
+<td>Number: 1</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 50</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>1</td>
+<td>0</td>
+<td>50</td>
+</tr>
+<tr class="NR"></tr>
+</table></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 3</td>
+<td>Proj. Rev: 23750</td>
+<td>Act. Rev: 18.75</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>2</td>
+<td>17500</td>
+<td>8.75</td>
+</tr>
+<tr>
+<td>Birch</td>
+<td>1</td>
+<td>6250</td>
+<td>10</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+ACT
+">
+<td>EAT</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 0</td>
+</tr>
+<tr>
+<td valign="top"><table>
+<tr class="NR">
+<td>Non-Recurring</td>
+<td>Number: 1</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 0</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Elm</td>
+<td>1</td>
+<td>0</td>
+<td>0</td>
+</tr>
+<tr class="NR"></tr>
+</table></td>
+<td valign="top"></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+ACT
+">
+<td>SQUEEZE</td>
+<td>Proj. Rev: 12500</td>
+<td>Act. Rev: 4.38</td>
+</tr>
+<tr>
+<td valign="top"></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 2</td>
+<td>Proj. Rev: 12500</td>
+<td>Act. Rev: 4.38</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Elm</td>
+<td>2</td>
+<td>12500</td>
+<td>4.38</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+PROD
+"></tr>
+<tr class="
+PROD
+">
+<td>Coconut</td>
+<td>Proj. Rev: 13750</td>
+<td>Actual Rev: 17.87</td>
+</tr>
+<tr class="
+ACT
+">
+<td>PICK</td>
+<td>Proj. Rev: 13750</td>
+<td>Act. Rev: 17.87</td>
+</tr>
+<tr>
+<td valign="top"></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 1</td>
+<td>Proj. Rev: 13750</td>
+<td>Act. Rev: 17.87</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Elm</td>
+<td>1</td>
+<td>13750</td>
+<td>17.87</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+PROD
+"></tr>
+<tr class="
+PROD
+">
+<td>Guava</td>
+<td>Proj. Rev: 14995</td>
+<td>Actual Rev: -19.49</td>
+</tr>
+<tr class="
+ACT
+">
+<td>SQUEEZE</td>
+<td>Proj. Rev: 14995</td>
+<td>Act. Rev: -19.49</td>
+</tr>
+<tr>
+<td valign="top"></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 1</td>
+<td>Proj. Rev: 14995</td>
+<td>Act. Rev: -19.49</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>1</td>
+<td>14995</td>
+<td>-19.49</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+PROD
+"></tr>
+<tr class="
+PROD
+">
+<td>Pear</td>
+<td>Proj. Rev: 29995</td>
+<td>Actual Rev: 38.99</td>
+</tr>
+<tr class="
+ACT
+">
+<td>PICK</td>
+<td>Proj. Rev: 29995</td>
+<td>Act. Rev: 38.99</td>
+</tr>
+<tr>
+<td valign="top"></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 1</td>
+<td>Proj. Rev: 29995</td>
+<td>Act. Rev: 38.99</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Pine</td>
+<td>1</td>
+<td>29995</td>
+<td>38.99</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+PROD
+"></tr>
+<tr class="
+PROD
+">
+<td>Raisin</td>
+<td>Proj. Rev: 299925</td>
+<td>Actual Rev: 227.95</td>
+</tr>
+<tr class="
+ACT
+">
+<td>EAT</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 0</td>
+</tr>
+<tr>
+<td valign="top"><table>
+<tr class="NR">
+<td>Non-Recurring</td>
+<td>Number: 17</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 0</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Oak</td>
+<td>17</td>
+<td>0</td>
+<td>0</td>
+</tr>
+<tr class="NR"></tr>
+</table></td>
+<td valign="top"></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+ACT
+">
+<td>SQUEEZE</td>
+<td>Proj. Rev: 299925</td>
+<td>Act. Rev: 227.95</td>
+</tr>
+<tr>
+<td valign="top"></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 15</td>
+<td>Proj. Rev: 299925</td>
+<td>Act. Rev: 227.95</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Oak</td>
+<td>15</td>
+<td>299925</td>
+<td>227.95</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+PROD
+"></tr>
+<tr class="
+PROD
+">
+<td>Fig</td>
+<td>Proj. Rev: 74990</td>
+<td>Actual Rev: 136.24</td>
+</tr>
+<tr class="
+ACT
+">
+<td>PICK</td>
+<td>Proj. Rev: 74990</td>
+<td>Act. Rev: 136.24</td>
+</tr>
+<tr>
+<td valign="top"><table>
+<tr class="NR">
+<td>Non-Recurring</td>
+<td>Number: 1</td>
+<td>Proj. Rev: 0</td>
+<td>Act. Rev: 50</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Oak</td>
+<td>1</td>
+<td>0</td>
+<td>50</td>
+</tr>
+<tr class="NR"></tr>
+</table></td>
+<td valign="top"><table>
+<tr class="RC">
+<td>Recurring</td>
+<td>Number: 2</td>
+<td>Proj. Rev: 74990</td>
+<td>Act. Rev: 86.24</td>
+</tr>
+<tr>
+<td>Segment</td>
+<td>Number</td>
+<td>Proj. Rev</td>
+<td>Act. Rev</td>
+</tr>
+<tr>
+<td>Oak</td>
+<td>2</td>
+<td>74990</td>
+<td>86.24</td>
+</tr>
+<tr class="RC"></tr>
+</table></td>
+</tr>
+<tr class="
+ACT
+"></tr>
+<tr class="
+PROD
+"></tr>
+</table>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-5-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-5-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-5-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,158 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:variable name="ACTIONgrid" select="//GROUP[@type='REC' and not(@name=preceding::GROUP[@type='REC']/@name)]/@name"/>
+<xsl:template match='/'>
+		<html>
+			<head>
+				<title>Churn by Product</title>
+				<style type="text/css">	.PROD {background-color:cyan}
+	.PROD * {background-color:cyan}
+	.ACT {background-color:green;font-weight:bold}
+	.ACT * {background-color:green;font-weight:bold}
+	.NR {background-color:yellow;color:blue}
+	.NR * {background-color:yellow;color:blue}
+	.RC {background-color:yellow;color:red}
+	.RC * {background-color:yellow;color:red}
+
+				</style>
+			</head>
+			<body>
+				<h1><center>Churn by Product</center></h1>
+				<table width="100%">
+					<tr>
+						<td width="50%" align="left" valign="top">
+							Run Date: <xsl:value-of select="XMLDATA/RUNDATE"/><br/>
+							Parameters:
+						</td>
+						<td align="right" valign="top">
+							<table><tr><th>Legend</th></tr><tr class="PROD"><td>Product</td></tr>
+<tr class="ACT"><td>Action</td></tr>
+<tr class="NR"><td>Non-Recurring</td></tr>
+<tr class="RC"><td>Recurring</td></tr>
+
+							</table>
+						</td>
+					</tr>
+				</table>
+				<table align="center"><xsl:apply-templates select="/XMLDATA/GROUP"/></table>
+			</body>
+		</html>
+	</xsl:template><xsl:template match="GROUP[@type='PRODUCT']">
+		<tr>
+<xsl:attribute name="class">
+PROD
+</xsl:attribute>
+
+			<td><xsl:value-of select='.//ROW[1]/PRODUCT'/></td>
+			<td>Proj. Rev: <xsl:value-of select='sum(.//ROW/PREV)'/></td>
+			<td>Actual Rev: <xsl:value-of select='sum(.//ROW/AREV)'/></td>
+		</tr>
+		<xsl:apply-templates select='GROUP'/>
+		<tr>
+<xsl:attribute name="class">
+PROD
+</xsl:attribute>
+
+		</tr>
+</xsl:template>
+
+<xsl:template match="GROUP[@type='ACTION']">
+	<xsl:variable name='grp' select='.'/>
+		<tr>
+<xsl:attribute name="class">
+ACT
+</xsl:attribute>
+
+			<td><xsl:value-of select='.//ROW[1]/ACTION'/></td>
+			<td>Proj. Rev: <xsl:value-of select='sum(.//ROW/PREV)'/></td>
+			<td>Act. Rev: <xsl:value-of select='sum(.//ROW/AREV)'/></td>
+		</tr>
+		<tr>
+				<xsl:for-each select='$ACTIONgrid'>
+				<xsl:sort select='.'/>
+				<td valign='top'>
+					<xsl:apply-templates select='$grp/GROUP[@name=current()]'/>
+				</td>
+				</xsl:for-each>
+		</tr>
+		<tr>
+<xsl:attribute name="class">
+ACT
+</xsl:attribute>
+
+		</tr>
+</xsl:template>
+
+<xsl:template match="GROUP[@type='REC']">
+	<table>
+		<tr>
+<xsl:attribute name="class">
+
+						<xsl:choose>
+							<xsl:when test="@name='Recurring'">RC</xsl:when>
+							<xsl:otherwise>NR</xsl:otherwise>
+						</xsl:choose>
+					
+</xsl:attribute>
+
+			<td><xsl:value-of select='.//ROW[1]/REC'/></td>
+			<td>Number: <xsl:value-of select='sum(.//ROW/NUM)'/></td>
+			<td>Proj. Rev: <xsl:value-of select='sum(.//ROW/PREV)'/></td>
+			<td>Act. Rev: <xsl:value-of select='sum(.//ROW/AREV)'/></td>
+		</tr>
+		<tr>
+			<td>Segment</td>
+			<td>Number</td>
+			<td>Proj. Rev</td>
+			<td>Act. Rev</td>
+		</tr>
+		<xsl:apply-templates select='ROW'/>
+		<tr>
+<xsl:attribute name="class">
+
+						<xsl:choose>
+							<xsl:when test="@name='Recurring'">RC</xsl:when>
+							<xsl:otherwise>NR</xsl:otherwise>
+						</xsl:choose>
+					
+</xsl:attribute>
+
+		</tr>
+	</table>
+</xsl:template>
+
+
+<xsl:template match='ROW'>
+	<tr>
+
+		<xsl:apply-templates select='SEGMENT'/>
+		<xsl:apply-templates select='NUM'/>
+		<xsl:apply-templates select='PREV'/>
+		<xsl:apply-templates select='AREV'/>
+	</tr>
+</xsl:template>
+
+<xsl:template match='SEGMENT'>
+	<td>
+		<xsl:value-of select='.'/>
+	</td>
+</xsl:template>
+
+<xsl:template match='NUM'>
+	<td>
+		<xsl:value-of select='.'/>
+	</td>
+</xsl:template>
+
+<xsl:template match='PREV'>
+	<td>
+		<xsl:value-of select='.'/>
+	</td>
+</xsl:template>
+
+<xsl:template match='AREV'>
+	<td>
+		<xsl:value-of select='.'/>
+	</td>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-50-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-50-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-50-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+     
+success
+name=doc
+local-name=doc
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-50-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-50-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-50-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<xsl:stylesheet version="1.0"
+              xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+              xmlns="http://www.w3.org/TR/xhtml1/strict"
+              xmlns:tst="http://example.org/">
+
+<xsl:template match="tst:doc|doc">
+success
+<xsl:text>name=</xsl:text>
+<xsl:value-of select="name(.)"/>
+<xsl:text>
+local-name=</xsl:text>
+<xsl:value-of select="local-name(.)"/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-52.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-52.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-52.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+
+Graphic file=../docs/graphic.gif
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-52.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-52.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-52.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:output method="html"/>
+
+<xsl:template match="doc">
+  <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="img">
+  <xsl:text>Graphic file=</xsl:text>
+  <xsl:value-of select="unparsed-entity-uri(@entref)"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-53.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-53.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-53.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+SUCCESS
\ No newline at end of file

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-53.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-53.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-53.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:output method="text"/>
+
+<xsl:template match="doc">
+<xsl:value-of select="@defatt"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-54.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-54.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-54.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<root xmlns:libxslt="http://xmlsoft.org/XSLT/namespace" xmlns:test1="http://www.test1.com" xmlns:test2="http://www.test2.com" xmlns="http://www.test1.com">
+
+
+</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-54.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-54.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-54.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+        version="1.0"
+        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+        xmlns:libxslt="http://xmlsoft.org/XSLT/namespace"
+        xmlns:test1="http://www.test1.com"
+        xmlns:test2="http://www.test2.com"
+        >
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
+
+<xsl:template match="/all/*">
+        <xsl:for-each select="namespace::*">
+                <xsl:copy-of select="."/>
+        </xsl:for-each>
+</xsl:template>
+<xsl:template match="/">
+    <root>
+    <xsl:apply-templates/>
+    </root>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-55.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-55.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-55.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<bar/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-55.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-55.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-55.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:preserve-space elements="*"/>
+<xsl:output method="xml"/>
+<xsl:template match="child::foo">
+<bar/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-56.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-56.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-56.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+LOCALES: 0
+LOCALES2: 1

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-56.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-56.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-56.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+                exclude-result-prefixes="l"
+                version="1.0">
+
+<xsl:output method="xml"/>
+
+<xsl:param name="local.l10n.xml" select="document('')"/>
+
+<xsl:template match="doc">
+  <xsl:variable name="lang" select="'en'"/>
+  <xsl:variable name="dingbat" select="'nestedstartquote'"/>
+
+    <xsl:text>LOCALES: </xsl:text>
+    <xsl:value-of select="count(($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:dingbat[@key=$dingbat])[1])"/>
+
+  <xsl:variable name="local.l10n.dingbat">
+    <xsl:value-of select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:dingbat[@key=$dingbat])[1]"/>
+  </xsl:variable>
+
+    <xsl:text>
+LOCALES2: </xsl:text>
+    <xsl:value-of select="count($local.l10n.dingbat)"/>
+
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-57.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-57.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-57.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<input type="text" name="description">test</input><td><input type="text" name="description"/></td>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-57.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-57.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-57.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+                exclude-result-prefixes="l"
+                version="1.0">
+
+<xsl:output method="xml"/>
+
+<xsl:template match="form">
+<xsl:for-each select="field">
+<xsl:element name="input">
+<xsl:attribute name="type">text</xsl:attribute>
+<xsl:attribute name="name"><xsl:value-of
+select="@name" /></xsl:attribute>
+<xsl:value-of select="initialvalue" />
+</xsl:element><td><input type="text" name="description"/></td>
+
+</xsl:for-each>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-59.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-59.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-59.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+B&amp;B

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-59.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-59.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-59.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<xsl:stylesheet
+     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+     version="1.0">
+
+<xsl:template match="*">
+        <xsl:value-of select="@attribute"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-6-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-6-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-6-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Title of my document</title></head><body><h1>Title of my document</h1>
+  
+<hr/></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-6-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-6-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-6-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<?xml version= "1.0"?>
+
+<xsl:stylesheet version="1.0" 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:my="http://my/namespace"
+  xmlns="http://www.w3.org/1999/xhtml"
+  exclude-result-prefixes="my">
+  
+  <!-- Root Node -->
+  <xsl:template match="/">
+    <html>
+      <head>
+        <title><xsl:value-of select="my:document/my:name"/></title>
+      </head>	
+      <xsl:apply-templates/>
+    </html>
+  </xsl:template>
+  
+  <!-- Header and Body for the Document -->
+  <xsl:template match="my:document">
+    <body>
+      <h1><xsl:value-of select="my:name"/></h1>
+      <xsl:apply-templates/>
+      <hr/>
+    </body>
+  </xsl:template>
+  
+  <!--Don't display name-->
+  <xsl:template match="my:name">
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.err
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.err	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.err	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+compilation error: file ./bug-60.xsl line 6 element foo-of
+xsltStylePreCompute: unknown xsl:foo-of

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<result>An error occoured, foo-of not known</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-60.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:template match="/">
+<result xsl:version="6.1">
+    <xsl:foo-of select="/Fuhrpark">
+	<xsl:fallback>
+	    <xsl:text>An error occoured, foo-of not known</xsl:text>
+	</xsl:fallback>
+    </xsl:foo-of>
+</result>
+</xsl:template>
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-61.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-61.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-61.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+
+case 1:
+NaN
+case 2:
+NaN
+case 3:
+NaN
+case 4:
+NaN

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-61.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-61.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-61.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+version="1.0">
+<xsl:template match="/">
+case 1:
+<xsl:value-of select="format-number('', '#.#')"/>
+case 2:
+<xsl:value-of select="number('')"/>
+case 3:
+<xsl:value-of select="format-number(non/existing/path, '#.#')"/>
+case 4:
+<xsl:value-of select="number(non/existing/path)"/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62-inc.out
===================================================================

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62-inc.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62-inc.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62-inc.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:variable name="my.var">old-value</xsl:variable>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+the-value

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-62.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:import href="bug-62-inc.xsl"/>
+  <xsl:variable name="my.var">the-value</xsl:variable>
+  <xsl:template match="/">
+    <xsl:value-of select="$my.var"/>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-63.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-63.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-63.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<namespace><name>xml</name><uri>http://www.w3.org/XML/1998/namespace</uri><parent><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:template match="*">
+<xsl:for-each select="namespace::*">
+<namespace>
+<name><xsl:value-of select="name()"/></name>
+<uri><xsl:value-of select="."/></uri>
+<parent><xsl:copy-of select=".."/></parent>
+</namespace>
+</xsl:for-each>
+</xsl:template>
+</xsl:stylesheet></parent></namespace><namespace><name>xsl</name><uri>http://www.w3.org/1999/XSL/Transform</uri><parent><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:template match="*">
+<xsl:for-each select="namespace::*">
+<namespace>
+<name><xsl:value-of select="name()"/></name>
+<uri><xsl:value-of select="."/></uri>
+<parent><xsl:copy-of select=".."/></parent>
+</namespace>
+</xsl:for-each>
+</xsl:template>
+</xsl:stylesheet></parent></namespace>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-63.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-63.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-63.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="*">
+<xsl:for-each select="namespace::*">
+<namespace>
+<name><xsl:value-of select="name()"/></name>
+<uri><xsl:value-of select="."/></uri>
+<parent><xsl:copy-of select=".."/></parent>
+</namespace>
+</xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-64.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-64.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-64.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+It works!

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-64.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-64.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-64.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="@*|node()" priority="1">
+    <xsl:text>It is broken!</xsl:text>
+  </xsl:template>
+  <xsl:template match="/" priority="2">
+    <xsl:text>It works!</xsl:text>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.ent
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.ent	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.ent	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<two>
+<content>content of two1</content>
+<content>content of two2</content>
+<content>content of two3</content>
+</two>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<content>content of one</content>
+-----------------
+<content>content of one</content>
+-----------------
+<content>content of one</content>
+-----------------
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-65.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:libxslt="http://xmlsoft.org/XSLT/namespace" exclude-result-prefixes="libxslt"  version="1.0">
+  <xsl:output method="xml" indent="yes"/>
+  <xsl:variable name="one">
+    <xsl:copy-of select="."/>
+  </xsl:variable>
+  <xsl:variable name="two" select="document('bug-65.ent')"/>
+  <xsl:template match="/">
+    <xsl:apply-templates select="$two" mode="two"/>
+  </xsl:template>
+  <xsl:template match="*" mode="two">
+    <xsl:for-each select="//content">
+      <xsl:apply-templates select="libxslt:node-set($one)" mode="one"/>
+      <xsl:text>
+-----------------
+</xsl:text>
+    </xsl:for-each>
+  </xsl:template>
+  <xsl:template match="*" mode="one">
+    <xsl:for-each select="//content">
+<!-- here is the problem (.//content works well, but I need the key 
+			      function)-->
+      <xsl:copy-of select="."/>
+    </xsl:for-each>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-66.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-66.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-66.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<nb>2</nb>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-66.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-66.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-66.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" exclude-result-prefixes="xlink">
+  <xsl:strip-space elements="*"/>
+  <xsl:template match="/">
+    <xsl:apply-templates select="test/tr[1]"/>
+  </xsl:template>
+  <xsl:template match="tr">
+    <nb>
+      <xsl:value-of select="count(/test/tr[. = current()])"/>
+    </nb>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-68.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-68.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-68.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<IMG a="">

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-68.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-68.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-68.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="html" indent="yes" omit-xml-declaration="yes"/>
+<xsl:template match="/">
+<IMG a=""/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-69.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-69.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-69.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+Success

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-69.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-69.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-69.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<xsl:transform
+  version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:template match="problème">
+    <xsl:text>Success</xsl:text>
+  </xsl:template>
+
+</xsl:transform>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-7-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-7-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-7-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+cccfff

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-7-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-7-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-7-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+xmlns:bbb="test:7">
+
+  <xsl:template match="aaa">
+    <xsl:value-of select="@bbb:ddd"/>
+    <xsl:value-of select="@eee"/>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-70.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-70.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-70.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+
+
+
+
+div111 div111href
+div222 div222href
+obj333 obj333href
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-70.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-70.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-70.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
+
+<xsl:key name="mykey" match="div|obj" use="@id" />
+
+<xsl:template match="link">
+   <xsl:value-of select="@linkend"/>
+   <xsl:text> </xsl:text>
+   <xsl:value-of select="key('mykey', @linkend)/@href" />
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-71.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-71.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-71.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<pa:Contact xmlns:pa="urn:test:pa" xmlns:rdf="urn:test:rdf" rdf:about="hello"><pa:primaryPhone rdf:about="toto"/></pa:Contact>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-71.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-71.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-71.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+xmlns:rdf="urn:test:rdf"
+xmlns:pa="urn:test:pa">
+
+<xsl:template match="address">
+  <xsl:variable name="id" select="@id"/>
+
+  <pa:Contact rdf:about="hello">
+      <pa:primaryPhone>
+        <xsl:attribute name="rdf:about">toto</xsl:attribute>
+      </pa:primaryPhone>
+  </pa:Contact>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-72.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-72.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-72.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<ROOT><ELEMENT1>
+Some result
+foo<hello/></ELEMENT1><ELEMENT2>
+other one
+foo<hello/></ELEMENT2></ROOT>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-72.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-72.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-72.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="xml"/>
+  <xsl:template match="message">
+    <xsl:variable name="foo">foo</xsl:variable>
+    <ROOT>
+      <ELEMENT1>
+        <xsl:variable name="test-var">
+          <xsl:call-template name="test1"/>
+	  <xsl:value-of select="$foo"/>
+        </xsl:variable>
+        <xsl:value-of select="$test-var"/>
+	<hello/>
+      </ELEMENT1>
+      <ELEMENT2>
+        <xsl:variable name="test-var">
+          <xsl:call-template name="test2"/>
+	  <xsl:value-of select="$foo"/>
+        </xsl:variable>
+        <xsl:value-of select="$test-var"/>
+	<hello/>
+      </ELEMENT2>
+    </ROOT>
+  </xsl:template>
+  <xsl:template name="test1">
+Some result
+</xsl:template>
+  <xsl:template name="test2">
+other one
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-73.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-73.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-73.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+text in p = "The first paragraph."
+text in p = "The"
+text in p = "paragraph."

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-73.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-73.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-73.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+  <xsl:output method="text"/>
+
+  <xsl:template match="p/text()">
+    <xsl:value-of
+      select="concat('text in ', name(..), ' = &#x22;')"/>
+    <xsl:value-of select="normalize-space(.)"/>
+    <xsl:text>&#x22;&#xa;</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="text()"/>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-74.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-74.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-74.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<select onclick="aaaa&#10;&#9;bbbb"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-74.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-74.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-74.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version="1.0">
+<xsl:output method="xml" encoding="UTF-8"/>
+<xsl:template match="TestNode">
+<select>
+<xsl:attribute name="onclick">aaaa
+	bbbb</xsl:attribute>
+</select>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-75.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-75.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-75.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+100,000,000,000|
+2,147,483,647|
+2,147,483,648|
+4,294,967,296|
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-75.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-75.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-75.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<xsl:stylesheet version="1.0" 
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="/">
+<xsl:value-of select="format-number(100000000000,'#,##0.##')"/>|
+<xsl:value-of select="format-number(2147483647,'#,##0.##')"/>|
+<xsl:value-of select="format-number(2147483648,'#,##0.##')"/>|
+<xsl:value-of select="format-number(4294967296,'#,##0.##')"/>|
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-76.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-76.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-76.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+Count1 :1
+Count2 :1
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-76.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-76.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-76.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="/">
+<xsl:variable name="first" select="/doc/*[1]"/>
+<xsl:variable name="last" select="/doc/*[last()]"/>
+<xsl:text>Count1 :</xsl:text>
+<xsl:value-of select="count($first/ancestor::* | $last/ancestor::*)"/>
+<xsl:text>
+</xsl:text>
+<xsl:variable name="both" select="/doc/child2 | /doc/child1"/>
+<xsl:text>Count2 :</xsl:text>
+<xsl:value-of select="count($both/ancestor::*)"/>
+<xsl:text>
+</xsl:text>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-77.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-77.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-77.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<foo>
+<bar id="Wowie" xml:lang="en">Hi</bar>
+<bar id="Zowie" xml:lang="fr">bonjour</bar>
+</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-77.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-77.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-77.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?> <xsl:stylesheet 
+   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+   version="1.0">
+<!-- I have tried this with   xmlns:xml="http://www.w3.org/XML/1998/namespace"
+     defined above, too
+  -->
+
+<xsl:template match="/">
+<xsl:apply-templates mode="copy"/>
+</xsl:template>
+
+<xsl:template match="@* | node()" mode="copy">
+<xsl:copy>
+<xsl:apply-templates select="node() | @*" mode="copy"/>
+</xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-78.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-78.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-78.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+
+      tototo
+    

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-78.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-78.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-78.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xi="http://www.toto.com/xinclude" version="1.0">
+  <xsl:output encoding="ISO-8859-1" method="html"/>
+  <xsl:strip-space elements="*"/>
+  <xsl:template match="/">
+    <xsl:apply-templates/>
+  </xsl:template>
+  <xsl:template match="xi:*">
+    <xsl:copy>
+      <xsl:apply-templates select="node()|@*"/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template match="@xi:*">
+    <xsl:copy/>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-79.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-79.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-79.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-79.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-79.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-79.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:template match="item/@mode[.='enabled']">SUCCESS</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-8-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-8-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-8-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+
+    Big Success

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-8-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-8-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-8-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version= "1.0"?>
+                            
+<xsl:stylesheet version="1.0" 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  
+  <xsl:import href="inner.xsl"/>
+  
+  <!-- Root Node -->
+  <xsl:template match="/">
+    <xsl:apply-templates/>
+  </xsl:template>
+  
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-80.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-80.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-80.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<out><test color="black" text-decoration="underline" font-size="14pt"/></out>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-80.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-80.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-80.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+  <!-- FileName: ResultTree005.xsl -->
+  <!-- Document: http://www.w3.org/TR/xslt -->
+  <!-- Section: 7.1.4 Named Attribute Sets -->
+  <!-- Purpose: Set attributes of an xsl:element using attribute sets that 
+       inherit. -->
+  <!-- Author: Carmelo Montanez -->
+
+<xsl:template match="/">
+  <out>
+    <xsl:element name="test" use-attribute-sets="set1"/>
+  </out>
+</xsl:template>
+
+<xsl:attribute-set name="set2" use-attribute-sets="set3">
+  <xsl:attribute name="text-decoration">underline</xsl:attribute>
+</xsl:attribute-set>
+  
+<xsl:attribute-set name="set1" use-attribute-sets="set2">
+  <xsl:attribute name="color">black</xsl:attribute>
+</xsl:attribute-set>
+
+<xsl:attribute-set name="set3">
+  <xsl:attribute name="font-size">14pt</xsl:attribute>
+</xsl:attribute-set>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-81.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-81.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-81.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+3.14 - 2 - 0.5 =
+0.64
+3.14 - 2 - 0.5 = 0.64

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-81.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-81.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-81.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version="1.0">
+        <xsl:template match="/">
+                <xsl:value-of select="//a/value"/> - <xsl:value-of
+select="//b/value"/> - <xsl:value-of select="//c/value"/> =
+<xsl:value-of select="//a/value - //b/value - //c/value"/>
+<xsl:text>
+</xsl:text>
+                <xsl:apply-templates select="//c"/>
+        </xsl:template>
+        <xsl:template match="c">
+                <xsl:value-of select="//a/value"/> - <xsl:value-of
+select="//b/value"/> - <xsl:value-of select="value"/> = <xsl:value-of
+select="//a/value - //b/value - value"/>
+        </xsl:template>
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-82.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-82.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-82.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+(
+  ((Thar be whitespace!))
+  (     (Thar be whitespace!)      )
+)

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-82.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-82.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-82.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version="1.0">
+<xsl:preserve-space elements="*"/>
+<xsl:strip-space elements="child"/>
+
+<xsl:template match="*">
+<xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
+</xsl:template>
+</xsl:transform>
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-83.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-83.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-83.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<a href="a%20b%20c"></a>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-83.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-83.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-83.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+  xmlns:fo="http://www.w3.org/1999/XSL/Format"
+  exclude-result-prefixes="fo"
+                  version="1.0">
+<xsl:output method="html"
+            encoding="ISO-8859-1"
+            indent="no"/>
+
+
+<xsl:template match="*">
+<a href="a b c"/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-84.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-84.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-84.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+1 First Chapter
+2 Second Chapter
+
+2.1 Subchapter 1
+2.2 Subchapter 2
+3 Third Chapter
+
+3.1 Subchapter A
+3.2 Subchapter B
+
+3.2.1 sub a
+3.2.2 sub b
+3.3 Subchapter C
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-84.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-84.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-84.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+version="1.0">
+<xsl:template match="/">
+<xsl:for-each select="//chapter">
+<xsl:number level="multiple"/>
+<xsl:text> </xsl:text>
+<xsl:value-of select="./text()"/>
+<xsl:text>
+</xsl:text>
+</xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-86.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-86.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-86.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vdv="http://eric.van-der-vlist.com/tmpns" version="1.0">
+ <xsl:template match="/">
+  <xsl:copy-of select="document('')/xsl:transform"/>
+ </xsl:template>
+</xsl:transform>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-86.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-86.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-86.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+   xmlns:vdv="http://eric.van-der-vlist.com/tmpns" version="1.0">
+ <xsl:template match="/">
+  <xsl:copy-of select="document('')/xsl:transform"/>
+ </xsl:template>
+</xsl:transform>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-87.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-87.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-87.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+
+AAA -  "xml"  "fish" 
+
+CCC -  "xml" 
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-87.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-87.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-87.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
+version="1.0">
+<xsl:output method="text"/>
+<xsl:template match="/XML_DATA//*">
+<xsl:value-of select="name()"/>
+<xsl:text> - </xsl:text>
+<xsl:for-each select="namespace::*">
+<xsl:text> &quot;</xsl:text>
+<xsl:value-of select="name()"/>
+<xsl:text>&quot; </xsl:text>
+</xsl:for-each>
+<xsl:text>
+</xsl:text>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-88.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-88.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-88.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<test xmlns="http://bar.xml"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-88.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-88.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-88.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:template match="/">
+    <xsl:element xmlns="http://bar.xml" name="test"/>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-89.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-89.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-89.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<todo>
+<domain add="task" del="domain" id="id2588147">
+<name replace="PCDATA" id="id2588150">job</name>
+<task replace="PCDATA" add="task" id="id2588154">to this</task>
+<task replace="PCDATA" add="task" id="id2589156">undefined</task>
+</domain>
+<domain add="task" del="domain" id="id2588996">
+<name replace="PCDATA" id="id2588515">courses</name>
+<task replace="PCDATA" add="task" id="id2588931">undefined</task>
+</domain>
+</todo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-89.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-89.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-89.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output encoding="ISO-8859-1" method="xml"/>
+
+<xsl:variable name="targetId"></xsl:variable>
+<xsl:variable name="action"></xsl:variable>
+<xsl:template match="/">
+<xsl:apply-templates select="*|@*"/>
+</xsl:template>
+
+
+<xsl:template name="toto">
+<toto/>
+</xsl:template>
+
+
+<xsl:template name="add">
+<xsl:param name="type"/>
+<xsl:choose>
+<xsl:when test="$type = 'toto'">
+<xsl:call-template name="toto"/>
+</xsl:when>
+</xsl:choose> </xsl:template> <xsl:template name="copy">
+<xsl:copy>
+<xsl:apply-templates select="node()|@*"/>
+</xsl:copy>
+</xsl:template>
+<xsl:template name="del">
+<!-- effacer ! -->
+</xsl:template>
+
+<xsl:template match="*[attribute::id and @id='']">
+<!-- attribute::type pour éviter de confondre l'absence d'attibute et
+la valeur nulle -->
+<xsl:choose>
+<xsl:when test="$action='del'">
+<xsl:call-template name="del"/>
+</xsl:when>
+<xsl:when test="$action='add'">
+<xsl:call-template name="copy"/>
+<xsl:call-template name="add">
+<xsl:with-param name="type">toto</xsl:with-param>
+</xsl:call-template>
+</xsl:when>
+<xsl:when test="$action='repl'">
+<xsl:choose>
+<xsl:when test="$action='del'">
+<xsl:call-template name="del"/>
+</xsl:when>
+</xsl:choose>
+<xsl:call-template name="add">
+<xsl:with-param name="type">toto</xsl:with-param>
+</xsl:call-template>
+</xsl:when> </xsl:choose>
+</xsl:template>
+
+<!-- liste des elements qui peuvent être édités, donc attribut id -->
+
+<xsl:template match="domain">
+<xsl:copy>
+<xsl:if test="not(@id)">
+<xsl:attribute name="id"><xsl:value-of
+select="generate-id()"/></xsl:attribute>
+</xsl:if>
+<xsl:attribute name="add">task</xsl:attribute>
+<xsl:attribute name="del">domain</xsl:attribute>
+<xsl:apply-templates select="node()|@*"/>
+</xsl:copy>
+</xsl:template>
+
+<xsl:template match="name">
+<xsl:copy>
+<xsl:if test="not(@id)">
+<xsl:attribute name="id"><xsl:value-of
+select="generate-id()"/></xsl:attribute>
+</xsl:if>
+<xsl:attribute name="replace">PCDATA</xsl:attribute>
+<xsl:apply-templates select="node()|@*"/>
+</xsl:copy>
+</xsl:template>
+
+
+<xsl:template match="task">
+<xsl:copy>
+<xsl:if test="not(@id)">
+<xsl:attribute name="id"><xsl:value-of
+select="generate-id()"/></xsl:attribute>
+</xsl:if>
+<xsl:attribute name="replace">PCDATA</xsl:attribute>
+<xsl:attribute name="add">task</xsl:attribute> <xsl:apply-templates select="node()|@*"/>
+</xsl:copy>
+</xsl:template>
+
+
+
+<xsl:template match="*">
+<xsl:copy>
+<xsl:apply-templates select="node()|@*"/>
+</xsl:copy>
+</xsl:template>
+<xsl:template match="@*">
+<xsl:copy/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-9-.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-9-.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-9-.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<?php Success?>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-9-.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-9-.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-9-.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version= "1.0"?>
+                            
+<xsl:stylesheet version="1.0" 
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  
+<xsl:template match="/">
+<xsl:processing-instruction name="php">Success</xsl:processing-instruction>
+</xsl:template>
+  
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-90.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-90.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-90.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+  <new-fruit1 type="apples"><![CDATA[
+      The site is at
+      http://www.apples.com/site?args&stuff
+    ]]></new-fruit1><new-fruit2 type="apples"><![CDATA[
+	  The site is at http://www.apples.com/site?args&stuff
+    ]]></new-fruit2>
+  <new-fruit1 type="pears"><![CDATA[
+      The site is at
+      http://www.pears.com/index.html]]></new-fruit1><new-fruit2 type="pears"><![CDATA[
+	  The site is at http://www.pears.com/index.html]]></new-fruit2>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-90.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-90.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-90.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!-- 
+============================================================
+This is a stylesheet that will create, for each input <fruit> element,
+two output elements - <new-fruit1> and <new-fruit2> , each of
+which should wrap the content of the the input fruit/site element
+in a CDATA block.
+<new-fruit1> does this 'properly' via  cdata-section-elements
+<new-fruit2> does it with a workaround named template 'wrap-cdata'
+============================================================
+ -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="xml" cdata-section-elements="new-fruit1" indent="yes"/>
+  <xsl:template match="fruit-sites/fruit">
+    <new-fruit1 type="{@type}">
+      The site is at
+      <xsl:value-of select="./site"/>
+    </new-fruit1>
+    <new-fruit2 type="{@type}">
+      <xsl:call-template name="wrap-cdata">
+        <xsl:with-param name="content">
+	  The site is at <xsl:value-of select="./site"/>
+        </xsl:with-param>
+      </xsl:call-template>
+    </new-fruit2>
+  </xsl:template>
+
+  <!-- Wrap $content in a CDATA block  -->
+  <xsl:template name="wrap-cdata">
+    <xsl:param name="content"/>
+    <xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text> <!--
+    --><xsl:value-of disable-output-escaping="yes" select="$content"/> <!-- 
+    --><xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-91.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-91.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-91.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+
+  <b>This is HTML</b>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-91.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-91.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-91.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="html" indent="yes" encoding="iso-8859-1"/>
+<xsl:template match="/*">
+<xsl:value-of select="text()" disable-output-escaping="yes"/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-92.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-92.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-92.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<toto n="xsl:stylesheet">
+  <toto n="xsl:output"/>
+  <toto n="xsl:template">
+    <toto n="xsl:element">
+      <toto n="xsl:attribute">
+        <toto n="xsl:value-of"/>
+      </toto>
+      <toto n="xsl:apply-templates"/>
+    </toto>
+  </toto>
+  <toto n="xsl:template"/>
+  <toto n="xsl:template"/>
+  <toto n="xsl:template"/>
+</toto>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-92.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-92.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-92.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
+
+  <xsl:output method="xml" indent="yes" version="1.0"/>
+
+  <xsl:template match="node()">
+    <xsl:element name="toto">
+      <xsl:attribute name="n">
+        <xsl:value-of select="name()"/>
+      </xsl:attribute>
+      <xsl:apply-templates/>
+    </xsl:element>
+  </xsl:template>
+
+
+  <xsl:template match="text()"/>
+  <xsl:template match="comment()"/>
+  <xsl:template match="processing-instruction()"/>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93-inc.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93-inc.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93-inc.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<font size="+1">
+foo
+    </font>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93-inc.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93-inc.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93-inc.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="html"/>
+  <xsl:attribute-set name="foo-attribs">
+    <xsl:attribute name="size">+1</xsl:attribute>
+  </xsl:attribute-set>
+  <xsl:template match="foo">
+    <font xsl:use-attribute-sets="foo-attribs">
+foo
+    </font>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<font size="+2">
+foo
+    </font>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-93.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:import href="bug-93-inc.xsl"/>
+  <xsl:attribute-set name="foo-attribs">
+    <xsl:attribute name="size">+2</xsl:attribute>
+  </xsl:attribute-set>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-94.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-94.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-94.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<TABLE><TR><TH>1 (even)</TH></TR><TR><TH>3 (even)</TH></TR><TR><TH>4 (even)</TH></TR><TR><TH>17 (even)</TH></TR><TR><TH>8 (even)</TH></TR></TABLE>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-94.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-94.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-94.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,35 @@
+<xsl:stylesheet version = '1.0'
+     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
+<!-- borrowed from http://www.zvon.org/xxl/XSLTutorial/Output/example35_ch9.html -->
+
+<xsl:template match="/">
+     <TABLE>
+          <xsl:for-each select="//number">
+               <TR>
+                    <TH>
+                         <xsl:choose>
+                              <xsl:when test="text() mod 2">
+                                   <xsl:apply-templates select=".">
+                                        <xsl:with-param name="type">odd</xsl:with-param>
+                                   </xsl:apply-templates>
+                              </xsl:when>
+                              <xsl:otherwise>
+                                   <xsl:apply-templates select="."/>
+                              </xsl:otherwise>
+                         </xsl:choose>
+                    </TH>
+               </TR>
+          </xsl:for-each>
+     </TABLE>
+</xsl:template>
+
+<xsl:template match="number">
+     <xsl:variable name="type">even</xsl:variable>
+     <xsl:value-of select="."/>
+     <xsl:text> (</xsl:text>
+     <xsl:value-of select="$type"/>
+     <xsl:text>)</xsl:text>
+</xsl:template>
+
+
+</xsl:stylesheet> 

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-95.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-95.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-95.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<html>
+<title>Example xsltproc</title>
+<body>1 234 567 890,12 Kè</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-95.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-95.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-95.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="html" encoding="ISO-8859-1"/>
+
+<xsl:decimal-format name="czf"
+     decimal-separator=","
+     grouping-separator="&#160;"/>
+
+<xsl:template match="Kapital">
+<html>
+<title>Example xsltproc</title>
+<body>
+	<xsl:apply-templates select="Vklad"/>
+</body>
+</html>
+</xsl:template>	
+
+<xsl:template match="Vklad" >
+<xsl:value-of select="format-number(Kc,  '#&#160;###,00 Kè', 'czf')"/>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-96.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-96.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-96.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<operators>
+  <compare><![CDATA[X < Y]]></compare>
+  <compare><![CDATA[X < Y]]></compare>
+</operators>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-96.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-96.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-96.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output cdata-section-elements="compare" />
+
+  <xsl:template match="/">
+    <xsl:copy-of select="." />
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-97.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-97.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-97.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+My Car Models:
+Rabbit
+Tundra
+Mini
+
+The Manufacturers:
+Volkswagen
+Toyota
+Bavarian Motor Works

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-97.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-97.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-97.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:car="http://www.example.com/xmlns/car"
+  xmlns:manu="http://www.example.com/xmlns/manufacturer">
+
+  <xsl:output method="text" encoding="UTF-8" />
+  <xsl:strip-space elements="*" />
+
+  <xsl:template match="/">
+    <xsl:apply-templates />
+  </xsl:template>
+
+  <xsl:template match="car:models">
+    <xsl:text>My Car Models:&#xA;</xsl:text>
+    <xsl:apply-templates select="car:model/@car:name"></xsl:apply-templates>
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="manu:manufacturers">
+    <xsl:text>The Manufacturers:&#xA;</xsl:text>
+    <xsl:apply-templates select="manu:manufacturer/@manu:name"></xsl:apply-templates>
+  </xsl:template>
+
+  <xsl:template match="@*[local-name()='name']">
+    <xsl:value-of select="." />
+    <xsl:text>&#xA;</xsl:text>
+  </xsl:template>
+
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-98.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-98.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-98.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<result>
+  <total><type>one</type><a>3</a><b>3</b></total>
+  <total><type>two</type><a>1</a><b>5</b></total>
+  
+</result>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-98.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-98.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-98.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="xml" indent="yes"/>
+  <xsl:template match="/">
+    <result>
+      <xsl:apply-templates/>
+    </result>
+  </xsl:template>
+  <xsl:key name="k1" match="entry" use="@cat1"/>
+  <xsl:key name="k2" match="entry" use="@cat2"/>
+  <xsl:template match="list">
+    <xsl:variable name="k">
+      <xsl:choose>
+        <xsl:when test="@type='one'">k1</xsl:when>
+        <xsl:otherwise>k2</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <total>
+      <type>
+        <xsl:value-of select="@type"/>
+      </type>
+      <a>
+        <xsl:value-of select="sum( key($k,'a')/@qty )"/>
+      </a>
+      <b>
+        <xsl:value-of select="sum( key($k,'b')/@qty )"/>
+      </b>
+    </total>
+  </xsl:template>
+  <xsl:template match="entries"/>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-99.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-99.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-99.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc xmlns="ns1" xmlns:ns1="ns1" ns1:attr="foo!"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/bug-99.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/bug-99.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/bug-99.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:output method="xml"/>
+
+<xsl:template match="/">
+  <xsl:element name="doc" namespace="ns1">
+    <xsl:attribute name="attr" namespace="ns1">
+      <xsl:text>foo!</xsl:text>
+    </xsl:attribute>
+  </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/character.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/character.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/character.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+Balance Bluff Climb Diplomacy Escape artist Gather info Hide Jump Listen Move silently Perform Ride Search Sense motive Spot Swim Tumble Use rope 

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/character.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/character.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/character.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version="1.0">
+  <xsl:output method="xml" indent="yes"/>
+
+<xsl:template match="character">
+  <xsl:apply-templates select="skills"/>
+</xsl:template>
+
+<xsl:template match="skills">
+  <xsl:for-each select="./*">
+    <xsl:value-of select="./@name"/>
+    <xsl:text> </xsl:text>
+  </xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/character2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/character2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/character2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+Balance Bluff Climb Diplomacy Escape artist Gather info Hide Jump Listen Move silently Perform Ride Search Sense motive Spot Swim Tumble Use rope 

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/character2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/character2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/character2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+version="1.0">
+  <xsl:output method="xml" indent="yes"/>
+
+<xsl:template match="character">
+  <xsl:apply-templates select="skills"/>
+</xsl:template>
+
+<xsl:template match="skills">
+  <xsl:for-each select="*">
+    <xsl:value-of select="./@name"/>
+    <xsl:text> </xsl:text>
+  </xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/inner.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/inner.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/inner.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version= "1.0"?>
+
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:my="http://my/namespace"
+  exclude-result-prefixes="my">
+
+  <xsl:template match="my:document">
+    Big <xsl:apply-templates select="my:item"/>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/itemschoose.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/itemschoose.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/itemschoose.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<doc xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    
+      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem1</fo:list-item-body></fo:list-item>
+      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem2</fo:list-item-body></fo:list-item>
+      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem3</fo:list-item-body></fo:list-item>
+      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem4</fo:list-item-body></fo:list-item>
+      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem5</fo:list-item-body></fo:list-item>
+      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>listitem6</fo:list-item-body></fo:list-item>
+      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="i"/>. </fo:list-item-label><fo:list-item-body>
+	
+	  <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>
+	    
+	      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>
+	      </fo:list-item-body></fo:list-item>
+	      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>listitem7.1.2</fo:list-item-body></fo:list-item>
+	      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>listitem7.1.3</fo:list-item-body></fo:list-item>
+	      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>listitem7.1.4</fo:list-item-body></fo:list-item>
+	      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>listitem7.1.5</fo:list-item-body></fo:list-item>
+	      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>listitem7.1.6</fo:list-item-body></fo:list-item>
+	      <fo:list-item indent-start="2pi"><fo:list-item-label><number format="1"/>. </fo:list-item-label><fo:list-item-body>
+	      </fo:list-item-body></fo:list-item>
+	    
+	  </fo:list-item-body></fo:list-item>
+	  <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>listitem7.2</fo:list-item-body></fo:list-item>
+	  <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>listitem7.3</fo:list-item-body></fo:list-item>
+	  <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>listitem7.4</fo:list-item-body></fo:list-item>
+	  <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>listitem7.5</fo:list-item-body></fo:list-item>
+	  <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>listitem7.6</fo:list-item-body></fo:list-item>
+	  <fo:list-item indent-start="2pi"><fo:list-item-label><number format="a"/>. </fo:list-item-label><fo:list-item-body>
+	  </fo:list-item-body></fo:list-item>
+	
+      </fo:list-item-body></fo:list-item>
+    
+</doc>

Added: packages/libxslt/branches/upstream/1.1.16/tests/general/itemschoose.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/general/itemschoose.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/general/itemschoose.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,37 @@
+<xsl:stylesheet version="1.0"
+      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+      xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+<xsl:strip-space elements="itemlist"/>
+
+<xsl:template match="doc">
+<doc>
+<xsl:apply-templates/>
+</doc>
+</xsl:template>
+
+<xsl:template match="orderedlist/listitem">
+  <fo:list-item indent-start='2pi'>
+    <fo:list-item-label>
+      <xsl:variable name="level"
+		    select="count(ancestor::orderedlist) mod 3"/>
+      <xsl:choose>
+	<xsl:when test='$level=1'>
+	  <number format="i"/>
+	</xsl:when>
+	<xsl:when test='$level=2'>
+	  <number format="a"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <number format="1"/>
+	</xsl:otherwise>
+      </xsl:choose>
+      <xsl:text>. </xsl:text>
+    </fo:list-item-label>
+    <fo:list-item-body>
+      <xsl:apply-templates/>
+    </fo:list-item-body>
+  </fo:list-item>
+</xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/keys/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/keys/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/keys/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,23 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = dates.xml month.xml month.xsl month.out
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running keys tests'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/month.xsl $(srcdir)/dates.xml > month.res ; \
+	if [ -r $(srcdir)/month.out ] ; \
+	then diff $(srcdir)/month.out month.res ; \
+	else mv month.res $(srcdir)/month.out ; fi ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f month.res)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/keys/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/keys/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/keys/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,389 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/keys
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = dates.xml month.xml month.xsl month.out
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/keys/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/keys/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running keys tests'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/month.xsl $(srcdir)/dates.xml > month.res ; \
+	if [ -r $(srcdir)/month.out ] ; \
+	then diff $(srcdir)/month.out month.res ; \
+	else mv month.res $(srcdir)/month.out ; fi ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f month.res)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/keys/dates.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/keys/dates.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/keys/dates.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<dates>
+  <month>12</month>
+  <month>Dec</month>
+  <month>December</month>
+  <month>dismember</month>
+</dates>

Added: packages/libxslt/branches/upstream/1.1.16/tests/keys/month.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/keys/month.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/keys/month.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<dates>
+  <month>December</month>
+  <month>December</month>
+  <month>December</month>
+  <month></month>
+</dates>

Added: packages/libxslt/branches/upstream/1.1.16/tests/keys/month.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/keys/month.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/keys/month.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<list>
+  <month>
+    <alias>December</alias>
+    <alias>12</alias>
+    <alias>Dec</alias>
+    <alias>DEC</alias>
+  </month>
+</list>

Added: packages/libxslt/branches/upstream/1.1.16/tests/keys/month.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/keys/month.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/keys/month.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output indent="no" version="1.0" encoding="iso-8859-1"/>
+  <xsl:key name="monthlist" match="/list/month" use="./alias"/>
+  <xsl:template match="month">
+    <month>
+      <xsl:variable name="value" select="."/>
+      <xsl:for-each select="document('month.xml')">
+        <xsl:value-of select="key('monthlist', $value)/alias[1]"/>
+      </xsl:for-each>
+    </month>
+  </xsl:template>
+  <xsl:template match="*">
+    <xsl:copy>
+      <xsl:copy-of select="@*"/>
+      <xsl:apply-templates/>
+    </xsl:copy>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,52 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = dict.dtd  dict.xml  dict.xsl result.xml \
+    out/lettera.orig out/letterb.orig \
+    out/letterc.orig out/letterd.orig \
+    out/lettere.orig out/letterf.orig \
+    out/letterg.orig out/letterh.orig \
+    out/letterij.orig out/letterk.orig \
+    out/letterl.orig out/letterm.orig \
+    out/lettern.orig out/lettero.orig \
+    out/letterp.orig out/letterq.orig \
+    out/letterr.orig out/letters.orig \
+    out/lettert.orig out/letteruv.orig \
+    out/letterw.orig out/letterx.orig \
+    out/lettery.orig out/letterz.orig \
+    out/titlepage.orig
+
+
+GENERATED = \
+	out/lettera.html out/letterb.html out/letterc.html out/letterd.html \
+	out/lettere.html out/letterf.html out/letterg.html out/letterh.html \
+	out/letterij.html out/letterk.html out/letterl.html out/letterm.html \
+	out/lettern.html out/lettero.html out/letterp.html out/letterq.html \
+	out/letterr.html out/letters.html out/lettert.html out/letteruv.html \
+	out/letterw.html out/letterx.html out/lettery.html out/letterz.html \
+	out/titlepage.html
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running multiple tests'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/dict.xsl $(srcdir)/dict.xml > dict.res ; \
+	diff $(srcdir)/result.xml dict.res; \
+	for i in out/letter*.html out/titlepage.html ; do \
+	  orig=$(srcdir)/out/`basename $$i .html`.orig ; \
+	  if [ -f $$orig ] ; then \
+	    diff $$orig $$i ; \
+	  else \
+	    echo "new $$orig" ; cp $$i $$orig ; \
+	  fi ; done ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f dict.res $(GENERATED))
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,418 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/multiple
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = dict.dtd  dict.xml  dict.xsl result.xml \
+    out/lettera.orig out/letterb.orig \
+    out/letterc.orig out/letterd.orig \
+    out/lettere.orig out/letterf.orig \
+    out/letterg.orig out/letterh.orig \
+    out/letterij.orig out/letterk.orig \
+    out/letterl.orig out/letterm.orig \
+    out/lettern.orig out/lettero.orig \
+    out/letterp.orig out/letterq.orig \
+    out/letterr.orig out/letters.orig \
+    out/lettert.orig out/letteruv.orig \
+    out/letterw.orig out/letterx.orig \
+    out/lettery.orig out/letterz.orig \
+    out/titlepage.orig
+
+GENERATED = \
+	out/lettera.html out/letterb.html out/letterc.html out/letterd.html \
+	out/lettere.html out/letterf.html out/letterg.html out/letterh.html \
+	out/letterij.html out/letterk.html out/letterl.html out/letterm.html \
+	out/lettern.html out/lettero.html out/letterp.html out/letterq.html \
+	out/letterr.html out/letters.html out/lettert.html out/letteruv.html \
+	out/letterw.html out/letterx.html out/lettery.html out/letterz.html \
+	out/titlepage.html
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/multiple/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/multiple/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	$(mkdir_p) $(distdir)/out
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running multiple tests'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/dict.xsl $(srcdir)/dict.xml > dict.res ; \
+	diff $(srcdir)/result.xml dict.res; \
+	for i in out/letter*.html out/titlepage.html ; do \
+	  orig=$(srcdir)/out/`basename $$i .html`.orig ; \
+	  if [ -f $$orig ] ; then \
+	    diff $$orig $$i ; \
+	  else \
+	    echo "new $$orig" ; cp $$i $$orig ; \
+	  fi ; done ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f dict.res $(GENERATED))
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,114 @@
+<!--* $Id: dict.dtd,v 1.1 2001/03/29 08:28:29 veillard Exp $
+    *-->
+<!--* &c; expands to "&c." *-->
+<!ENTITY c "&#38;#38;c.">
+
+<!--* &stress; is a foot mark to indicate a stressed syllable *-->
+<!ENTITY stress "'">
+
+<!--* amp is an ampersand *-->
+<!ENTITY amp "&#38;#38;">
+
+<!ENTITY hy "-">
+
+<!ELEMENT dict
+  (titlepage?, letter+)
+>
+
+<!ELEMENT titlepage
+    (title, (p|note)*)
+>
+
+<!ELEMENT letter
+    (title,entry*,graphic?)
+>
+<!ATTLIST letter
+    pagesize CDATA #IMPLIED
+    name CDATA #IMPLIED
+>
+
+<!ELEMENT graphic
+    (sheet*)
+>
+
+<!ELEMENT sheet
+    (#PCDATA)
+>
+
+
+<!ENTITY % Text '(#PCDATA|i|b|sc|sub|sup|eg|meaning|xref)*'>
+
+<!ELEMENT title
+    (#PCDATA|i|b|sc|sub|sup|eg|meaning|xref)*
+>
+<!ATTLIST title
+    brace (left|right|both|neither) "neither"
+    link (target|ignore) #IMPLIED
+>
+
+<!ENTITY % Lumps '(p|blockquote)+' >
+
+<!ELEMENT entry
+    (title+,target*,%Lumps;)
+>
+<!ATTLIST entry
+    sortas CDATA #IMPLIED
+    id ID #IMPLIED
+    category CDATA #REQUIRED
+>
+
+<!--* a target gives an extra headword to use in linking *-->
+<!ELEMENT target
+    (#PCDATA)*
+>
+
+<!ELEMENT p
+    (#PCDATA|i|b|sc|sub|sup|eg|meaning|xref)*
+>
+
+<!ELEMENT blockquote
+    (%Lumps;)
+>
+
+<!ELEMENT note
+    (p+)
+>
+
+<!ELEMENT xref
+    (#PCDATA|i|b|sc|sub|sup|eg|meaning|xref)*
+>
+<!ATTLIST xref
+    refint IDREF #REQUIRED
+>
+
+<!ELEMENT i
+    (#PCDATA|i|b|sc|sub|sup|eg|meaning|xref)*
+>
+
+<!ELEMENT b
+    (#PCDATA|i|b|sc|sub|sup|eg|meaning|xref)*
+>
+
+<!ELEMENT sc
+    (#PCDATA|i|b|sc|sub|sup|eg|meaning|xref)*
+>
+
+<!ELEMENT sup
+    (#PCDATA|i|b|sc|sub|sup|eg|meaning|xref)*
+>
+
+<!ELEMENT eg
+    (#PCDATA|i|b|sc|sub|sup|eg|meaning|xref|interj)*
+>
+
+<!ELEMENT interj
+    (#PCDATA|i|b|sc|sub|sup|eg|meaning|xref)*
+>
+
+<!ELEMENT meaning
+    (#PCDATA|i|b|sc|sub|sup|eg|meaning|xref)*
+>
+
+<!ELEMENT sub
+    (#PCDATA|i|b|sc|sub|sup|eg|meaning|xref)*
+>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7827 @@
+<?xml version="1.0"?>
+<!DOCTYPE dict SYSTEM "dict.dtd">
+<!--* complete: A B C D E F G H IJ K L M N O P Q R S T UV W X Y Z -->
+<dict>
+ <titlepage>
+  <title>Canting Dictionary</title>
+  <p>A Collection of the Canting Words and
+  Terms, both ancient and modern,
+  used by Beggars,
+  Gypsies, Cheats, House-Breakers, Shop-Lifters,
+  Foot-Pads, Highway-Men, &c;</p>
+  <p>Taken from <i>The Universal Etymological English Dictionary</i>,
+  by N. Bailey, London, 1737, Vol. II, and
+  transcrib'd into XML Most Diligently by Liam Quin.</p>
+  <note>
+  <p>English spelling has evolved greatly since this
+  dictionary was publish'd.  In the Eighteenth Century, Capital Letters
+  were generally used for Nouns, and the spelling of a word could vary
+  from one occurrence to the next. <i>Cloaths</i>, <i>Clothes</i> and
+  <i>Cloathes</i> all seem to have been used, for example.
+  You'll just have to deal with it.</p>
+  <p>Note also that <i>i</i> and <i>j</i> are treated as if they were the same
+  letter, as are <i>u</i> and <i>v</i>, so that <i>Urchin</i> appears in
+  the dictionary quite a way after <i>Vamp</i>, since the U is sorted as if it
+  were a V.</p>
+  </note>
+ </titlepage>
+
+ <letter name="a"><title>A</title>
+<entry c="thing"><title>ABRAM</title>
+<p>Naked, or having scarce
+Cloaths enough to hide Nakedness.</p></entry>
+
+<entry c="rogue"><title>ABRAM-COVE</title>
+<p>a lusty Rogue,
+with hardly any Cloaths on his
+Back: a Tatterdemallion.</p></entry>
+
+<entry c="rogue"><title>ABRAM-MEN</title>
+<target>ABRAM-MAN</target>
+<p>otherwise called
+<eg>Toms of Bedlam</eg>, shabby Beggars, patched
+and trick'd up with Ribbons, Red-Tape,
+Fox-tails, Rags of various Colours;
+pretending to be besides themselves,
+to palliate their Thefts of Poultry, Linnen,
+&c;
+A sort of itinerant
+Hedge-Robbers, and Strippers of Children, &c;</p></entry>
+
+<entry c="place"><title>ACADEMY</title>
+<p>a Bawdy House; a Receptacle for all sorts of Villains, where
+the Young Ones are initiated in the
+<eg>Canting Language</eg>, and all manner of
+Cheats and Impostures, and sorted into
+Tribes and Bands, according to their
+several Capacities for Mischief.</p></entry>
+
+<entry c="rogue"><title>ADAM TILER</title>
+<p>the Comerade of a
+Pick pocket, who receives stollen
+Goods or Money, and scours off with
+them, <eg>Tip the coal to Adam Tiler</eg>; i.e.
+give the Money, Watch, &c; to a running
+Companion, that the Pick Pocket
+may have nothing found upon him,
+when he is apprehended.</p></entry>
+
+<entry c="rogue"><title>AFFIDAVIT-MEN</title>
+<p>Knights of the
+Post: mercenary and abandoned Wretches,
+who used to frequent the <i>Temple</i>
+and other Inns of Court, in order to be
+in Readiness to swear any thing that
+was proposed to them.</p></entry>
+
+<entry c="place"><title>ALSATIA <i>the Higher</i></title>
+<title><i>White-Fryars</i></title>
+<p>once a Privileged Place, as the <i>Mint</i>
+was lately; but suppressed, on Account
+of the notorious Abuses committed in
+it.</p></entry>
+
+<entry c="place"><title>ALSATIA <i>the Lower</i></title>
+<p>the <i>Mint</i> in <i>Southwark</i>.</p></entry>
+
+<entry c="rogue"><title>ALSATIANS</title>
+<p>the Inhabitants of
+these two Places, such as broken
+Tradesmen, extravagant Spendthrifts.</p></entry>
+
+<entry c="money"><title>ALTEMAL</title>
+<p><i>Vide Dutch</i> Reckoning.</p></entry>
+
+<entry c="rogue"><title>AMBIDEXTER</title>
+<p>one that goes snacks
+in Gaming with both Parties; also a
+<!--* col *-->
+Lawyer that takes Fees of Plaintiff and
+Defendant at once.</p></entry>
+
+<entry c="crime"><title><i>To</i> AMUSE [in a <i>Canting sense</i>]</title>
+<p>to
+fling Dust in the Eyes; also to invent
+strange Tales to delude Shop keepers
+and others, from being upon their
+Guard.</p></entry>
+
+<entry c="crime"><title>AMUSEMENT</title>
+<p>a blind, or feint.</p></entry>
+
+<entry c="rogue"><title>AMU&stress;SERS</title>
+<p>who were wont to have
+their Pockets filled with Dust, which
+they would throw into the Eyes of
+People they had a mind to rob, and so
+run away, while their Comerade, who
+followed them, under the Notion of
+pitying the half blinded Person, laid
+his Hand on whatever came next.</p></entry>
+
+<entry c="rogue"><title>ANGLERS</title><title><i>alias</i> HOOKERS</title>
+<p>petty
+Thieves, who have a Stick with a
+Hook at the End, wherewith they
+pluck Things out of Windows, Grates,
+&c;
+<eg>Make ready your Angling Stick</eg>; a
+Word of Command used by these petty
+Villains, to get ready the Stick with
+which they perform their Pranks, and
+as a Signal of a Prey in Sight.
+In the Day-time they beg from House to
+House, to spy best where to plant their
+Designs, which at Night they put in
+Execution.</p></entry>
+
+<entry c="rogue"><title>ANTICKS</title>
+<p>such as dress themselves
+up with Ribbons, mismatched Colours,
+Feathers &c;</p></entry>
+
+<entry c="rogue"><title>ANTIQUATED</title>
+<p>an old Rogue, or
+one who has forgot, or left off his
+Trade of thieving, is said to be.</p></entry>
+
+<entry c="rogue"><title>ARCH-ROGUE</title>
+<p>the <eg>Dimber-Damber Uprightman</eg> or Chief of a Gang; as
+<i>Arch-Dell</i>, or <i>Arch-Doxy</i> signifies the
+same Degree in Rank among the Female
+<i>Canters</i> and <i>Gypsies</i>.</p></entry>
+
+<entry c="thing"><title>ARK</title>
+<p>a Boat or Wherry.</p></entry>
+
+<entry c="rogue"><title>ARK-RUFFIANS</title>
+<p>Rogues, who in
+Conjunction with Watermen, &c; rob
+and sometimes murder on the Water;
+by picking a Quarrel with the Passenger
+and then plundering, stripping and
+throwing him or her over board, &c;</p>
+<p>A Species of <i>Badgers</i>.</p></entry>
+
+<entry c="thing"><title>ASSIG.</title>
+<p>An Assignation, Appointment or Meeting</p></entry>
+
+<!--* page 2 *-->
+
+<entry c="bawd"><title>AUNT</title>
+<p>a Bawd, or Procuress; a Title of Eminence for the <i>Senior Dells</i>,
+who serve for Instructresses, Midwives,
+&c;, to the <i>Morts</i>.</p></entry>
+
+<entry c="place"><title>AUTEM</title>
+<p>a Church; also married.</p></entry>
+
+<entry c="person"><title>AUTEM-BAWLER</title>
+<p>a Preacher, or Parson, of any sect.</p></entry>
+
+<entry c="person"><title brace="right">AUTEM-CACKLERS</title>
+<title>AUTEM-PRICKEARS</title>
+<p>Dissenters of any Denomination.</p></entry>
+
+<entry c="place"><title>AUTEM-CACKLETUB</title>
+<p>a Conventicle,
+a Meeting-House for Dissenters.</p></entry>
+
+<entry c="person"><title>AUTEM-DIPPERS</title>
+<p>Anabaptists.</p></entry>
+
+<entry c="rogue"><title>AUTEM-DIVERS</title>
+<p>Church-Pick-pockets;
+also Church-wardens, Overseers of the Poor.</p></entry>
+
+<entry c="rogue"><title>AUTEM-GOGGLERS</title>
+<p>pretended <i>French</i> Prophets.</p></entry>
+
+<entry c="person"><title>AUTEM-MORT</title>
+<p>a marry'd Woman;
+also one who travels up and
+down the Country, with one Child in
+their Arms, another on her Back,
+and often leading a third in her Hand.</p></entry>
+
+<entry c="person"><title>AUTEM-QUAVERS</title>
+<p><i>Quakers</i></p></entry>
+
+<entry c="place"><title>AUTEM-QUA-VERTUB</title>
+<p>a <i>Quaker's</i>
+Meeting-House.</p></entry>
+</letter>
+
+<letter name="b" pagesize="big"><title>B</title>
+
+<entry c="adj"><title>BACK&stress;ED</title>
+<p>dead; as <eg>He wishes the Senior backed</eg>,
+i.e. <meaning>He longs to have his Father upon Six Mens Shoulders</meaning>.
+<eg>His Backs up</eg>, a taunting Expression.</p></entry>
+
+<entry c="thing"><title>BACON</title>
+<p>the Prize, or whatever kind
+which Robbers make in their Enterprizes.
+<eg>He has saved his Bacon</eg>; i.e. He
+has himself escaped with the Prize,
+whence it is commonly used for any
+narrow Escape.
+<eg>The Cove has a bien
+squawl to maund Bacon</eg>; i.e. he has a
+good Voice to beg Bacon; used to jeer
+a bad Voice, or an indifferent Singer.
+<eg>The Bacon Sweard rakes in his Throttle</eg>;
+<i>i.e.</i> the Sweard of the Bacon sticks in
+his Throat; used to a person who has
+Hoarseness, or one, who at their Merry-Meetings, excuses himself from
+Singing, on pretence of a Cold.</p></entry>
+
+<entry c="thing"><title>BADGE</title>
+<p>is used in a Canting Sense,
+for Burning in the Hand or Cheek (as
+it used to be) as <eg>he has got his Badge and piked away</eg>;
+He has been burned in the
+Hand, &c; and is just set at Liberty.</p></entry>
+
+<entry c="person"><title>BADGE-COVES</title>
+<p>Parish-Pensioners</p></entry>
+
+<entry c="rogue"><title>BADGERS</title>
+<p>a Crew of desperate Villains,
+who rob and kill near rivers, and
+then throw the dead bodies therein.</p></entry>
+
+<entry c="person"><title>BAGGAGE</title>
+<p>as the heavy Baggage,
+the Children and Women who are unable
+to travel fast in Gangs of Gypsies,
+and Strowlers.</p></entry>
+
+<entry c="money"><title>BALSOM</title>
+<p>Money: <eg>The Cove has secured the Balsom</eg>,
+i.e. He has seized the Money.</p></entry>
+
+<entry sortas="BAM" c="crime"><title>A BAM</title>
+<p>a Sham or Cheat: a knavish
+Contrivance to amuse or deceive.</p></entry>
+
+<entry c="thing"><title>BANBURY <i>story</i></title>
+<p>of a Cock and a
+Bull, an idle Relation, in order to pick
+Acquaintance on the Road, till a convenient
+Place or Opportunity offer to
+rob or plunder.</p></entry>
+
+<entry c="rogue"><title>BANDITTI</title>
+<p>Highwaymen, Horse or
+Foot, now used for Rogues of any kind,
+but strictly <i>Italian</i> Rapparees.</p></entry>
+
+<entry c="person"><title>BANDOG</title>
+<p>a Bailiff or his Follower;
+a Sergeant or his Yeomen.</p></entry>
+
+<entry c="person"><title>BANTLING</title>
+<p>a Child.</p></entry>
+
+<entry c="person"><title>BARKER</title>
+<p>a Salesman's Servant that
+walks before the Shop, to invite customers.</p></entry>
+
+<entry c="thing"><title>BARNACLE</title>
+<p>a good Job, or a Snack
+easily got; so called from the Gratuity
+given to Jockeys, for buying and selling
+Horses.</p></entry>
+
+<entry c="thing"><title>BARNACLES</title>
+<p>the Irons worn in
+Goal by Felons.
+A Pair of Spectacles
+is also called Barnacles; as <eg>I saw the
+Cuffin Quire with his Nose Barnacled,
+making out the Cove's Dispatches</eg>, i.e. I
+saw the Justice of Peace with his Spectacles
+on making out his <i>Mittimus</i>.</p></entry>
+
+<entry c="money"><title>BAR-WIG</title>
+<p>between a bob and a long one.</p></entry>
+
+<entry c="crime"><title><i>To</i> BASTE</title>
+<p>to beat.</p></entry>
+
+<entry c="crime"><title>BASTONADING</title>
+<p>a Cudgelling</p></entry>
+
+<entry c="v"><title>BATTEN</title>
+<p>to fatten; to keep up a
+Fowl, &c; till it is fit for eating.</p></entry>
+
+<entry c="thing"><title>BATTENER</title>
+<p>an Ox; <eg>The Cove has
+hushed the Battener</eg>; i.e. <meaning><i>He has killed
+the Ox</i></meaning>, in revenge on some Farmer,
+who, perhaps, had got him sent to the
+House of Correction.</p></entry>
+
+<entry c="person"><title>BATTERED BULLY</title>
+<p>an old well
+cudgelled and bruised huffing fellow.</p></entry>
+
+<entry c="money"><title>BAUBEE</title>
+<p>an Halfpenny; as <eg>The Cove
+ript the Maund but a single Baubee let's
+souse him for it</eg> i.e. The Gentleman
+has given the Beggar but a single Halfpenny; lets plunder him for his Niggardliness.</p></entry>
+
+<entry c="thing"><title>BAUBELS</title><title>or BAWBLES</title>
+<p>Jewels, Tweezers, Snuff-boxes, any sort of
+Gold or Silver Trinkets.</p></entry>
+
+<entry c="bawd"><title>BAWD</title>
+<p>a Female Procuress.</p></entry>
+
+<entry c="rogue"><title>BAWDY-BASKETS</title>
+<p>a sort of diminutive Pedlars, who sell Obscene
+Books, Pins, Tape, &c; but live more
+by pilfering and stealing.</p></entry>
+
+<entry c="bawd"><title>BAWDY-HOUSE-BOTTLE</title>
+<p>a very small one.</p></entry>
+
+<entry c="thing"><title>BEAR-GARDEN-DISCOURSE</title>
+<p>common, filthy, nasty talk.</p></entry>
+
+<entry c="bawd"><title>BEARD-SPLITTER</title>
+<p>a Whore-master.</p></entry>
+
+<entry c="rogue"><title>BEAU-TRAPS</title>
+<p>an <i>Order</i> of
+<!--* page 3 *-->
+Villains, Genteel-dressed Sharpers,
+who lie in wait to insnare and draw in
+young Heirs, raw Country Squires and
+ignorant Fops.
+</p></entry>
+
+<entry c="thing"><title>BECK</title><title>HARMANBECK</title>
+<p>a Beadle</p></entry>
+
+<entry c="v"><title>BEEF</title>
+<p>to alarm, as <eg>They have cryed
+Beef upon us</eg>; they have discovered,
+us and are in Pursuit of us.</p></entry>
+
+<entry c="thing"><title>BELCH</title>
+<p>any sort of Malt-liquor so
+called.</p></entry>
+
+<entry c="thing"><title>BELLY-CHEAT</title>
+<p>an Apron.</p></entry>
+
+<entry c="person" sortas="BEN"><title>A BEN</title>
+<p>a foolish Fellow, a Simpleton.</p></entry>
+
+<entry c="adj" sortas="BEN A"><title>BENISH</title>
+<p>foolish, simple.</p></entry>
+
+<entry c="adj"><title>BENAR</title>
+<p>better.</p></entry>
+
+<entry c="adj"><title>BENE</title><title><i> or</i> BIEN</title>
+<p>good, <eg>Pike on the
+Bene</eg>, i.e. Run away as fast as you can.</p></entry>
+
+<entry c="thing"><title>BENE-BOWSE</title>
+<p>strong Liquor.</p></entry>
+
+<entry c="person"><title>BENE-COVE</title>
+<p>a good Fellow, a merry companion.</p></entry>
+
+<entry c="thing"><title>BENE-DARKMANS</title>
+<p>good Night.</p></entry>
+
+<entry c="adj"><title>BENESHIP</title>
+<p>very good, very well.
+<eg>Beneshiply</eg> Worshipfully.</p></entry>
+
+<entry c="rogue"><title>BENEFEAKERS</title>
+<p>Counterfeiters of
+Bills, Bonds, Notes, Receipts, &c;</p></entry>
+
+<entry c="rogue"><title>BENEFEAKERS OF GYBES</title>
+<p>Counterfeiters of Passes.</p></entry>
+
+<entry c="thing"><title>BESS</title>
+<p><eg>Bring Bess and Glym</eg>; i.e. Forget not the Instrument to break
+open the Dour, and the Dark Lanthorn.</p></entry>
+
+<entry c="thing"><title>BET</title>
+<p>as <eg>secure the Bet</eg>, secure the Prize.</p></entry>
+
+<entry c="thing"><title>BETTY</title><title>BESS</title>
+<p>a small Engine to
+force open the Doors of Houses; <eg>Mill
+the Gig with your Betty</eg>; i.e. Break
+open the Door with your Instrument.</p></entry>
+
+<entry c="thing"><title>BEVER</title>
+<p>An Afternoons Lunchion.</p></entry>
+
+<entry c="money"><title>BEVERAGE</title>
+<p>Garnish-money.</p></entry>
+
+<entry c="thing"><title>BIDDY</title>
+<p>a Chicken.</p></entry>
+
+<entry c="crime"><title>BILK</title>
+<p>to cheat or deceive.  <eg>Bilk the
+Rattling Cove</eg>; Sharp the Coachman of
+his Hire.</p></entry>
+
+<entry c="thing"><title>BILL</title><title>BILBOA</title>
+<p>a Sword.  <eg>Bite
+the Bill from the Cull</eg>; i.e. Whip the
+Sword from his Side.</p></entry>
+
+<entry c="thing"><title>BILL <i>of Sale</i></title>
+<p>a Bandore, or Widow's
+Peak.</p></entry>
+
+<entry c="v"><title><i>To</i> BING</title>
+<p>to go, &c;</p></entry>
+
+<entry c="v"><title>BING-AWAST</title>
+<p>Get you hence: Begone;
+haste away; <eg>He Bing'd awast in a
+Darkmans</eg>, i.e. He Stole away in the
+Night-time.  <eg>Bing we to Rum vile?</eg> i.e.
+Go we to <i>London</i>.</p></entry>
+
+<entry c="thing"><title>BINGO</title>
+<p>Geneva, or Brandy.</p></entry>
+
+<entry c="rogue"><title>BINGO-BOY</title>
+<p>a great Geneva Drinker.</p></entry>
+
+<entry c="place"><title>BINGO-CLUB</title>
+<p>a Club of Geneva Drinkers.</p></entry>
+
+<entry c="rogue"><title>BINGO-MORT</title>
+<p>a She Brandy Drinker.</p></entry>
+
+<entry c="rogue"><title>BIRDS OF A FEATHER</title>
+<p>Rogues
+of the same Gang.</p></entry>
+<!--* col *-->
+
+<entry c="adj"><title>BIRD-WITTED</title>
+<p>hare-brained; not
+solid or stayed.</p></entry>
+
+<entry c="v"><title>BIT</title>
+<p>Robbed, Cheated or Out-Witted.  Also Drunk, as <eg>He has bit his
+Grannum</eg>; He is very Drunk.  <eg>Bit the
+Blow</eg>, performed the Theft, played the
+Cheat, <eg>You have bit a great Blow</eg>; You
+have robbed somebody of or to a considerable
+Value.</p></entry>
+
+<entry c="person"><title>BITE</title>
+<p>a Rogue, Sharper or Cheat;
+also a Woman's Privities, as <eg>The Cull
+wapt the Morts Bite</eg>; i.e. The Fellow
+enjoyed the Woman briskly.  <eg>Bite
+the Biter</eg>, rob the Rogue, sharp the
+Sharper, or Cheat the Cheater.  <eg>Bite
+the Cully</eg>, put the Cheat on a silly
+Fellow.  <eg>Bite the Roger</eg>, steal the
+Portmanteau. <eg>Bite the Wiper</eg>, steal
+the Handkerchief.  <eg>He will not Bite or
+swallow the Bait</eg>; He wont be drawn
+in.  <eg>To Bite on the Bit</eg>; To be pinched
+or reduced to hard Meat; a scanty or
+sorry sort of Living.</p></entry>
+
+<entry c="phrase"><title>BLACK <i>and</i> WHITE</title>
+<p>under one's
+Hand, or in Writing.</p></entry>
+
+<entry c="person"><title>BLAB</title>
+<p>one that is not to be confided
+in upon an Enterprize or Intrigue.</p></entry>
+
+<entry c="person"><title>BLACK-BOX</title>
+<p>a Lawyer.</p></entry>
+
+<entry c="person"><title>BLACK-COAT</title>
+<p>a Parson.</p></entry>
+
+<entry c="rogue"><title>BLACK-GUARD</title>
+<p>dirty, nasty, tatterred
+roguish Boys, that formerly
+were wont to attend at the Horse-Guards
+to wipe Shoes, and clean Boots.</p></entry>
+
+<entry c="thing"><title>BLACK-JACK</title>
+<p>a leather-Jug to drink in.</p></entry>
+
+<entry c="place"><title>BLACK-INDIES</title>
+<p><i>Newcastle</i>, from
+whence the Coals are brought.</p></entry>
+
+<entry c="thing"><title>BLACKMUNS</title>
+<p>Hoods and Scarves of
+Alamode and Lustrings.</p></entry>
+
+<entry c="rogue"><title>BLACK-SPY</title>
+<p>the Devil.</p></entry>
+
+<entry c="adj"><title>BLANK</title>
+<p>down looked, sheepish,
+guilty.</p></entry>
+
+<entry c="v"><title>BLEACH</title>
+<p>as <eg>The Mort lay last Night a
+Bleaching</eg>; the Wench looks very fair
+to Day.</p></entry>
+
+<entry c="person"><title>BLEATERS</title>
+<p>they that are cheated
+by Jack in a Box.</p></entry>
+
+<entry c="thing"><title>BLEATING-CHEAT</title>
+<p>a Sheep.</p></entry>
+
+<entry c="v"><title>BLEED</title>
+<p>as, <eg>To bleed freely</eg>, i.e. To
+part with their Money easily.</p></entry>
+
+<entry c="person"><title>BLEEDING-CULLY</title>
+<p>an easy Fellow,
+this is profuse with his Money, or
+persuaded to support all the Exravaganies
+of his Companion or Mistress,
+at his own Expence.</p></entry>
+
+<entry c="thing"><title>BLEW-JOHN</title>
+<p>Wash, or After-wort.</p></entry>
+
+<entry c="thing"><title>A BLIND</title>
+<p>a Feint, a Pretence, a shift.</p></entry>
+
+<entry c="place"><title>A BLIND ALE-HOUSE</title>
+<p>one fit to
+conceal a pursued or hunted Villain.</p></entry>
+
+<entry c="thing"><title>BLIND-CHEEKS</title>
+<p>the Breech.</p></entry>
+
+<entry c="rogue"><title>BLIND-HARPERS</title>
+<p>Canters, who
+<!--* page 4 *-->
+counterfeit Blindness, strowl about with
+Harps, Fiddles, Bagpipes, &c; led by
+a Dog or Boy.</p></entry>
+
+<entry c="place"><title>BLOCK-HOUSES</title>
+<p>Prisons, Houses
+of Correction, &c;</p></entry>
+
+<entry c="rogue,bawd"><title>BLOSS</title>
+<p>a Shop-lifter; also a Bully's
+pretended Wife, or Mistress, whom he
+guards, while she supports him; also a
+Whore.</p></entry>
+
+<entry c="v"><title><i>To</i> BLOT <i>the Skrip, and jark it</i></title>
+<p>i.e. to stand engaged, or be bound for any
+Body.</p></entry>
+
+<entry c="thing"><title>BLOW</title>
+<p>as <eg>He has bit his blow</eg>, he has
+stollen the Goods, &c;</p></entry>
+
+<entry c="person,bawd"><title>BLOWER</title>
+<p>a Mistress; also a
+Whore.</p></entry>
+
+<entry c="v"><title><i>To</i> BLOW <i>off the Groundsils</i></title>
+<p>i.e. To
+lie with a Women on the Floor or
+Stairs.</p></entry>
+
+<entry c="v"><title><i>To</i> BLOW <i>off the loose Corns</i></title>
+<p>To lie now and then with a Woman.</p></entry>
+
+<entry c="thing"><title>BLUBBER</title>
+<p>the Mouth, <eg>I've stopt the
+Culls Blubber</eg>, I've stopt the Fellow's
+Mouth; meant either by gagging or
+murdering him.</p></entry>
+
+<entry c="v"><title>BLUBBERING</title>
+<p>much Crying.</p></entry>
+
+<entry c="v"><title><i>To look</i> BLUFF</title>
+<p>To look big or
+like Bull-beef.</p></entry>
+
+<entry c="person"><title>BLUFFER</title>
+<p>an Inn-keeper or victualler.</p></entry>
+
+<entry c="person"><title>BLUNDERBUS</title>
+<p>an awkward Fellow.</p></entry>
+
+<entry c="person"><title><i>A</i> BLUSTRING <i>Fellow</i></title>
+<p>a rude ratling Hector.</p></entry>
+
+<entry c="place"><title>BOARDING-<i>School</i></title>
+<p><i>Bridewell</i> [[prob. rdg; orig. <i>Briedwell</i>]]
+or
+<i>New Prison</i>, or any Work-house, or
+House of Correction, for Vagrants,
+Beggars and Villains, &c;</p></entry>
+
+<entry c="rogue"><title>BOARDING <i>Scholars</i></title>
+<p>Bridewell-Birds.</p></entry>
+
+<entry c="rogue"><title>BOB</title>
+<p>a Shop-lifts Comerade, Assistant
+or Receiver.  <i>Bob</i> also signifies
+Safety.</p></entry>
+
+<entry c="thing"><title><i>It is all</i> BOB</title>
+<p>i.e. All is Safe.</p></entry>
+
+<entry c="v"><title>BOBBED</title>
+<p>cheated, tricked, baulked.</p></entry>
+
+<entry c="person"><title>BOB-TAIL</title>
+<p>a light woman, also an
+Eunuch or impotent Fellow.</p></entry>
+
+<entry c="person" sortas="BOB-LANDERS"><title>BOG-LANDERS</title>
+<p><i>Irish</i> Men.</p></entry>
+
+<entry c="rogue"><title>BOB-TROTTERS</title>
+<p><i>Scotch</i> or <i>North</i>
+Country Moss-troopers, or Highway-Men.</p></entry>
+
+<entry c="person"><title>BOLTER <i>of White Fryars</i></title>
+<p>one that
+peeps out, but dares not venture abroad.</p></entry>
+
+<entry c="thing"><title>BOLTSPRIT</title>
+<p>the nose, <eg>He has broke
+his Boltsprit</eg>; He has lost his Nose by
+the Pox.</p></entry>
+
+<entry c="v"><title><i>To</i> BONE</title>
+<p>to apprehend, sieze, take
+or arrest.
+<eg>I'll Bone ye</eg>; I'll cause you
+to be arrested.
+<eg>We shall be Boned</eg>, we
+shall be apprehended for the Robbery.
+<eg>The Cove is Boned and gone to the Whit</eg>;
+the Rogue is taken up and carried to
+<i>Newgate</i>.
+<eg>The Cull has Boned the Fen</eg>
+<!--* col *-->
+(for <i>Fence</i>) <i>or</i> <eg>Bloss that bit the Blow</eg>,
+The Man has taken the Thief that
+robbed his House or Shop, or picked
+his Pocket.
+<eg>If he be Boned he must shove
+the Tumbler</eg>; If he be taken he'll be
+whipt at the Gart's-tail.
+<eg>I have Boned
+her Dudds, Fagged and Brushed</eg>; I have
+taken away my Mistress's cloaths, beat
+her and am trooped off.
+<eg>Boning the Fence</eg>; Finding the Goods where concealed
+and siezing them.
+<eg>He made no Bones of it.</eg></p></entry>
+
+<entry c="thing"><title>BONNY-CLAPPER</title>
+<p>sowre Butter-milk.</p></entry>
+
+<entry c="place"><title>BOOTH</title>
+<p>a House, as <eg>Heave the Booth</eg>;
+Rob the House.</p></entry>
+
+<entry c="v"><title><i>To Play</i> BOOTY</title>
+<p>to play with a design to lose.</p></entry>
+
+<entry c="thing"><title>BOOZE</title>
+<p><i>Vide</i> BOWSE.</p></entry>
+
+<entry c="money"><title>BORDE</title>
+<p>a Shilling, <eg>Half a Borde</eg>,
+Six-pence.</p></entry>
+
+<!--* Liam proof read once up to here, 5th Aug 1999 *-->
+
+<entry c="thing"><title>BOTTLE-HEAD</title>
+<p>void of Wit.</p></entry>
+
+<entry c="thing"><title>BOUGHS</title>
+<p>as <eg>He is up in the Boughs</eg>,
+said of one upon the Rant, or in a great
+Ferment.</p></entry>
+
+<entry c="person"><title>BOUNCE</title>
+<p>as <eg>a meer Bounce</eg>, a swaggering
+Fellow.</p></entry>
+
+<entry c="rogue"><title>BOUNCER</title>
+<p>a Bully.</p></entry>
+
+<entry c="thing"><title>BOUNCING-<i>Cheat</i></title>
+<p>a Bottle.</p></entry>
+
+<entry c="rogue"><title>BOWMAN</title>
+<p>as a <eg>Bowman-Prigg</eg>, an
+eminent Thief or Villain; a dextrous
+Cheat, or House-breaker.</p></entry>
+
+<entry c="thing"><title>BOWSE</title>
+<p>Drink, or to drink; see
+<i>Benbowse</i> [[Bene-Bowse]] and <i>Rumbowse</i>
+[[<i>Rumbowse</i> is not actually defined]].</p></entry>
+
+<entry c="adj"><title>BOWSY</title>
+<p>Drunk.</p></entry>
+
+<entry c="place"><title>BOWSING KEN</title>
+<p>an Ale-house.</p></entry>
+
+<entry c="adj"><title>BRACKET-FACE</title>
+<p>ugly, homely,
+ill-favoured.</p></entry>
+
+<entry c="person"><title>BRAT</title>
+<p>a little Child.</p></entry>
+
+<entry c="thing"><title>BRAVADO</title>
+<p>a vapouring, or bouncing.</p></entry>
+
+<entry c="rogue"><title>BRAVO</title>
+<p>a mercenary Murderer,
+that will kill any body.</p></entry>
+
+<entry c="bawd"><title>BRIM</title><title>or <i>Brimstone</i></title>
+<p>a very impudent, lewd Woman.</p></entry>
+
+<entry c="person"><title>BROTHER <i>of the Blade</i></title>
+<p>a Sword-man or Soldier.</p></entry>
+
+<entry c="bawd"><title>BROTHER <i>of the Gussit</i></title>
+<p>a Pimp,
+Procurer; also a Whore-master.</p></entry>
+
+<entry c="rogue"><title>BROTHER-STARLING</title>
+<p>that lies
+with the same Woman or builds in the same Nest.</p></entry>
+
+<entry c="person"><title>BROTHER <i>of the String</i></title>
+<p>a Fiddler,
+or Harper.</p></entry>
+
+<entry c="v"><title><i>To</i> BRUSH</title>
+<p>to flee, or run away.
+<eg>The Cully is brushed or rubbed</eg>;
+The Fellow is marched off or broke.
+<eg>Bought a Brush</eg>, run away.</p></entry>
+
+<entry c="thing"><title>BRUSHER</title>
+<p>a very full Glass of Liquor.</p></entry>
+
+<entry c="thing"><title>BUB</title>
+<p>drink.  <eg>Rumbub</eg> very good
+Tipple.</p></entry>
+
+<entry c="thing"><title>BUBBER</title>
+<p>a drinking Bowl; also a
+<!--* page 5 *-->
+great Drinker, also one who steals plate
+from public Houses.</p></entry>
+
+
+<entry c="thing"><title>BUBE</title>
+<p>the Pox.
+<eg>The Mort tipt the
+Bube upon the Cully</eg>; The Wench has
+clapped the Fellow.</p></entry>
+
+<entry c="v,person"><title><i>To</i> BUBBLE</title>
+<p>To cheat or decieve.
+<eg>A Bubble</eg>, an easy soft Fellow, one that is
+fit to be imposed on, deluded, or
+cheated.</p></entry>
+
+<entry c="thing"><title>BUCK</title>
+<p>as a <eg>Bold Buck</eg>.</p></entry>
+
+<entry c="rogue"><title>BUCK-FITCHES</title>
+<p>old leacherous Fellows.</p></entry>
+
+<entry c="rogue"><title>BUCK'S-FACE</title>
+<p>a Cuckold.</p></entry>
+
+<entry c="rogue"><title><i>A</i> BUDGE</title>
+<p>one that slips into an
+House in the Dark, and taking what
+comes next to Hand, marches off with
+it. If he meets with any body, he
+asks, if such a Gentleman or Woman
+be within; and is told, they know no
+such Person, he begs Pardon, and says,
+he was mistaken in the House, immediately
+marches off, and will not stay
+for a Reply.
+<eg>To Budge</eg>, also signifies to
+stir or move.</p></entry>
+
+<entry c="thing"><title>BUFF</title>
+<p>a Dog.</p></entry>
+
+<entry c="phrase"><title><i>How dost do my</i> BUFF</title>
+<p>a familiar
+Salutation among the Canting Tribe.</p></entry>
+
+<entry c="phrase"><title><i>To stand</i> BUFF</title>
+<p>is a Phrase used of
+an obstinate hardened Rogue, who in a
+Robbery will not be daunted at Resistance
+or Opposition, or leave his Com-rogues in the Lurch, or a hardened
+Rogue who will confess nothing.</p></entry>
+
+<entry c="rogue"><title>BUFFER</title>
+<p>a Rogue that kills good
+sound Horses, only for their skins, by
+running a long wire into them, and
+sometimes knocking them on the Head.</p></entry>
+
+<entry c="rogue"><title>BUFF-KNAPPER</title>
+<p>a Dog-stealer,
+that trades in all Sorts of Dogs, selling
+them at a round Rate, and himself or
+Partner stealing them the first Opportunity.</p></entry>
+
+<entry c="thing"><title>BUFFERS-NAB</title>
+<p>a Dog's Head, used
+in a counterfiet Seal to a false Pass.</p></entry>
+
+<entry c="crime"><title>BUGGING</title>
+<p>taking Money by Bailiffs
+and Serjeants of the Defendant not to
+arrest him.</p></entry>
+
+<entry c="thing"><title>BUGHER</title>
+<p>a Dog.</p></entry>
+
+<entry c="person"><title>BULCHIN</title>
+<p>a chubbingly Boy or Lad.</p></entry>
+
+<entry c="person,bawd"><title link="ignore">BULL</title>
+<p>as, a <eg>Town Bull</eg>, a Whore-master.</p></entry>
+
+<entry c="phrase"><title><i>TO look like</i> BULL <i>beef</i></title>
+<p>to look big
+and grim.</p></entry>
+
+<entry c="rogue"><title>BULK</title>
+<p>an Assistant to a <i>File</i> or Pick-Pocket,
+who jostles a Person up against
+the Wall, while the other picks his
+Pocket.</p></entry>
+
+<entry c="rogue"><title>BULKER</title>
+<p>one that lodges all Night
+on Shop windows and bulkheads.</p></entry>
+
+<entry c="money"><title>BULLS-EYE</title>
+<p>a Crown or Five Shilling Piece.</p></entry>
+
+<entry c="rogue"><title>BULLY</title>
+<p>a supposed Husband to a
+Bawd, or Whore; also a huffing Fellow,
+<!--* col *-->
+a pretended <i>Bravo</i>, but a Coward
+at the Bottom.</p></entry>
+
+<entry c="rogue"><title>BULLY-FOP</title>
+<p>a maggot-pated, huffing,
+silly, rattling Fellow.</p></entry>
+
+<entry c="rogue,bawd"><title>BULLY-HUFF</title>
+<p>a poor sorry Rogue,
+that haunts Bawdy-houses, and pretends
+to get Money out of Gentlemen
+and others, rattling and swearing the
+Whore is his Wife.</p></entry>
+
+<entry c="rogue"><title>BULLY-COCK</title>
+<p>a Hector or bravo
+sets on People to quarrel, pretending
+to be a Second to them; and
+then making Advantage of both.
+</p></entry>
+
+<entry c="rogue"><title>BULLY-RUFFINS</title>
+<p>Highway-men,
+or Foot Pads, who attack with Oaths
+and Curses, plunder without Mercy,
+and frequently murder without Necessity.</p></entry>
+
+<entry c="rogue"><title>BULLY-TRAP</title>
+<p>a <i>Trapan</i>, a Sharper or Cheat.</p></entry>
+
+<entry c="person"><title>BUM</title>
+<p>a Bailiff or Serjeant.</p></entry>
+
+<entry c="person"><title>BUNDLE-TAIL</title>
+<p>a short, fat, or squat Lass.</p></entry>
+
+<entry c="thing"><title>BUNG</title>
+<p>a Purse, Pocket or Fob.</p></entry>
+
+<entry c="rogue"><title>BUNG-NIPPERS</title>
+<p>Cut purses, who
+with a short sharp Knife, and a horn
+Thumb, used to cut Purses. Since the
+wearing of Purses is out of Fashion,
+they are called <i>Files</i> or <i>Pick-Pockets</i>.</p></entry>
+
+<entry c="thing"><title>BUNTING-TIME</title>
+<p>when the Grass
+is high enough to hide the young Men
+and Maids.</p></entry>
+
+<entry c="thing"><title>BUNT&stress;LINGS</title>
+<p>Petticoats.  <eg>Hale up
+the main Buntlings</eg>, throw up the Women's
+Petticoats.</p></entry>
+
+<entry c="adj"><title>BURNT</title>
+<p>poxed, or clapt.</p></entry>
+
+<entry c="crime"><title><i>To</i> BURN <i>the Ken</i></title>
+<p>is when Strollers
+leave an Alehouse, without paying
+their Quarters.</p></entry>
+
+<entry c="person"><title>BURR</title>
+<p>a Hanger on or Dependant.</p></entry>
+
+<entry c="v,crime"><title><i>To</i> BUTTER</title>
+<p>signifies also, to cheat
+or defraud in a smooth or plausible
+Manner; as, <eg>He'll not be Battered</eg>;
+He's aware of your Design, He's upon his Guard, &c;</p></entry>
+
+<entry c="person"><title>BUTTER-BOXES</title>
+<p>Dutchmen</p></entry>
+
+<entry c="bawd"><title>BUTTERED-BUN</title>
+<p>lying with a
+Woman that has been just lain with by
+another Man.</p></entry>
+
+<entry c="bawd"><title>BUTTOCK</title>
+<p>a Whore.</p></entry>
+
+<entry c="bawd"><title>BUTTOCK-<i>Broker</i></title>
+<p>a Bawd, also
+a Match-maker.</p></entry>
+
+<entry c="bawd"><title><i>A</i> BUTTOCK <i>and File</i></title>
+<p>both Whore and Pickpocket.</p></entry>
+
+<entry c="bawd"><title>BUTTOCK <i>and Twang</i></title>
+<p>or <eg>a down-right Buttock and sham File</eg>, a common
+Whore, but no Pickpocket.</p></entry>
+
+<entry c="person"><title>BUZZARD</title>
+<p>a foolish, soft Fellow,
+drawn in and culled or tricked.</p></entry>
+
+<entry c="person"><title>BY-BLOW</title>
+<p>a Bastard.</p></entry>
+
+
+<!--* page 6 *-->
+
+</letter>
+
+<letter name="c"><title>C</title>
+<entry c="v"><title>CACKLE</title>
+<p>to discover.  <eg>The Cull
+Cackles</eg>, The Rogue tells all.</p></entry>
+
+<entry c="thing"><title>CACKLING-CHEATS</title>
+<p>Chickens,
+Cocks or Hens.</p></entry>
+
+<entry c="thing"><title>CACKLING-FARTS</title>
+<p>Eggs.</p></entry>
+
+<entry c="thing"><title>CALLE</title>
+<p>a Cloak or Gown.</p></entry>
+
+<entry c="person"><title>CAMBRIDGE-FORTUNE</title>
+<p>a Woman without any Substance.</p></entry>
+
+<entry c="thing"><title>CAMESA</title>
+<p>a Shirt or Shift.</p></entry>
+
+<entry c="thing"><title>CAMPAIGN-COAT</title>
+<p>in a <i>Canting</i>
+Sense, the ragged, tatter'd, patch'd
+Coat, worn by Beggars and Gypsies, in
+order to move Compassion.</p></entry>
+
+<entry c="person,rogue,bawd"><title>CANARY-BIRD</title>
+<p>a little arch or
+knavish Boy; a Rogue or Whore
+taken, and clapp'd into the Cage or
+Round-house.</p></entry>
+
+<entry c="crime,punishment"><title>CANE <i>upon</i> ABEL</title>
+<p>a good Stick or
+Cudgel, well-favouredly laid on a
+Man's shoulders.</p></entry>
+
+<entry c="adj"><title>CANK</title>
+<p>Dumb.
+<eg>The Cull's Cank</eg>; the Rogue's Dumb; a Term used by
+<i>Canters</i>, when one of their Fraternity,
+being apprehended, upon Examination,
+confesses nothing.</p></entry>
+
+<entry c="thing"><title>CANNIKIN</title>
+<p>the Plague.</p></entry>
+
+<entry c="rogue" sortas="CANT"><title><i>A</i> CANT</title>
+<p>an Hypocrite, a Dissembler,
+a double-tongu'd, whining Person.</p></entry>
+
+<entry c="thing"><title>CANTING</title>
+<p>the mysterious Language
+of Rogues, Gypsies, Beggars,
+Thieves, &c;</p></entry>
+
+<entry c="rogue"><title>CANTING CREW</title>
+<p>Beggars, Gypsies.</p></entry>
+
+<entry c="v"><title><i>To</i> CAP</title>
+<p>to Swear.
+<eg>I will Cap
+downright</eg>, I will Swear home.</p></entry>
+
+<entry c="rogue"><title>CAPTAIN-HACKUM</title>
+<p>a fighting,
+blustering Bully.</p></entry>
+
+<entry c="person"><title>CAPTAIN-QUEERNABS</title>
+<p>a Fellow
+in poor Cloaths, or Shabby.</p></entry>
+
+<entry c="rogue"><title>CAPTAIN-SHARP</title>
+<p>a great Cheat;
+also a huffing, yet sneaking, cowardly
+Bully.</p></entry>
+
+<entry c="rogue"><title>CAPTAIM-TOM</title>
+<p>a Leader of the
+Mob; also the Mob itself.</p></entry>
+
+<entry c="money,person"><title>CARAVAN</title>
+<p>a good round Sum of
+Money about a Man; also him that is
+cheated of it.</p></entry>
+
+<entry c="rogue"><title>CARRIERS</title>
+<p>a Set or Rogues, who
+are employ'd to look out, and whatch
+upon the Roads, at Inns, &c; in order
+to carry Information to their respective
+Gangs, of a Booty in Prospect.</p></entry>
+
+<entry c="punishment"><title>CARTED-WHORE</title>
+<p>whipp'd publickly,
+and pack'd out of Town.</p></entry>
+
+<entry c="place,bawd"><title>CASE</title>
+<p>a House, Shop, or Warehouse;
+also a Bawdy-house.
+As <eg>Toute
+the Case</eg>, view, mark, or eye the House
+or Shop. <eg>'Tis all Bob; now let us dub
+<!--* col *-->
+the Gigg of the Case</eg>; now the Coast is
+clear, let us fall on, and break open
+the door of the House.</p></entry>
+
+<entry c="bawd" sortas="CASE-VROW"><title>A CASE-VROW</title>
+<p>a Whore that
+plie in a Bawdy-house.</p></entry>
+
+<entry c="thing"><title>CASH</title>
+<p>or <i>Cassan</i>, cheese.</p></entry>
+
+<entry c="thing"><title>CASTER</title>
+<p>a Cloak.</p></entry>
+
+<entry c="bawd"><title>CAT</title>
+<p>a common Whore or Prostitute.
+<eg>Who shall hang the bell about the
+Cat's Neck?</eg> Who shall begin the Attack first?  said of a desperate Undertaking.</p></entry>
+
+<entry c="person"><title>CATCH-FART</title>
+<p>a Foot-boy.</p></entry>
+
+<entry c="thing"><title>CATCHING-HARVEST</title>
+<p>a precarious
+Time for Robbery; when many
+People are out upon the Road, by
+means of any adjacent Fair, Horse-race, &c;</p></entry>
+
+<entry c="person"><title>CATCH-POLL</title>
+<p>a Serjeant, or Bayliff,
+that arrests People.</p></entry>
+
+<entry c="thing"><title>CATHARPIN FASHION</title>
+<p>when
+People in Company drink cross, and
+not round about from the Right to
+the Left, or according to the Sun's
+Motion.</p></entry>
+
+<entry c="punishment"><title>CATTING</title>
+<p>drawing a Fellow thro'
+a Pond with a Cat.  Also whoring.</p></entry>
+
+<entry c="thing"><title>CATMATCH</title>
+<p>when a Rook or
+Cully is engag'd amongst bad Bowlers.</p></entry>
+
+<entry c="place"><title>CAVAULTING SCHOOL</title>
+<p>a Bawdy-house.</p></entry>
+
+<entry c="adj"><title>CAUDGE-PAW'D</title>
+<p>Left-handed.</p></entry>
+
+<entry c="adj"><title>CAW-HANDED</title>
+<p>awkward, not
+dextrous, ready or nimble.</p></entry>
+
+<entry c="adj"><title>CHAF'D</title>
+<p>well beaten or bang'd.</p></entry>
+
+<entry c="adj"><title>CHAPT</title>
+<p>dry or thirsty.</p></entry>
+
+<entry c="adj,punishment"><title>CHARACTERED</title>
+<p>Burnt in the Hand;
+as, <eg>They have pawn'd the Character upon
+him</eg>; <i>i.e.</i> They have burnt the Rogue
+in the Hand.</p></entry>
+
+<entry c="punishment"><title>CHATES</title>
+<p>the Gallows.</p></entry>
+
+<entry c="thing"><title>CHATTS</title>
+<p>Lice.  To <eg>Squeeze the
+Chatts</eg>; To crack or kill those Vermin.</p></entry>
+
+<entry c="person"><title>CHICKEN</title>
+<p>a feeble little Creature,
+of mean Spirit.</p></entry>
+
+<entry c="money"><title>CHINK</title>
+<p>Money, so call'd because it
+chinks in the Pocket.</p></entry>
+
+<entry c="person"><title><i>A</i> CHIP</title>
+<p>a Child.  As, <eg>A Chip of the
+old Block</eg>; A Son that is his Father's
+likeness.</p></entry>
+
+<entry c="adj"><title>CHIRPING-MERRY</title>
+<p>very pleasant
+over a Glass of good Liquor.</p></entry>
+
+<entry c="person"><title>CHIT</title>
+<p>a Dandyprat, or Durgen, a
+little trifling-Fellow.</p></entry>
+
+<entry c="person"><title>CHITTIFACE</title>
+<p>a little puny Child.</p></entry>
+
+<entry c="thing"><title>CHIVE</title>
+<p>a Kinfe, File or Saw.</p></entry>
+
+<entry c="v,crime"><title><i>To</i> CHIVE <i>his Darbies</i></title>
+<p>To saw asunder
+his Irons or Fetters.</p></entry>
+
+<entry c="v,thing"><title><i>To</i> CHOP</title>
+<p>to change or barter. Also
+a Job, or Booty, as <eg>A Chop by Chance</eg>,
+a rare Booty, when 'twas not expected.</p></entry>
+
+<entry c="v"><title><i>To</i> CHOP</title>
+<p>is also used to make Dispatch,
+to slubber over in Post-haste, as
+<!--* page 7 *-->
+<eg>The Autem-Bawler, will soon quit the
+Hums, for he chops up the Whiners</eg>; <i>i.e.</i>
+The Parson will soon have dispatch'd
+the Congregation, for he huddles over
+the Prayers.</p></entry>
+
+<entry c="v,crime"><title><i>To</i> CHOUSE</title>
+<p>to cheat or trick.</p></entry>
+
+<entry c="adj"><title>CHUB</title>
+<p><eg>He is a young Chub</eg>, or <eg>a meer
+Chub</eg>, very ignorant or unexperienc'd
+in Gaming, not at all acquainted with
+Sharping. <eg>A good Chub</eg>, said by the
+Butchers, when they have bit a silly raw
+Customer.</p></entry>
+
+<entry c="person"><title>CHUCK-FARTHING</title>
+<p>a Parish Clerk.</p></entry>
+
+<entry c="thing"><title>CLACK</title>
+<p>a Woman's Tongue.</p></entry>
+
+<entry c="person"><title>CLAN</title>
+<p>a Family, Tribe, Faction,
+or Party, in <i>Scotland</i> chiefly, but now
+any where else.</p></entry>
+
+<entry c="thing"><title>CLANK</title>
+<p>a Silver-tankard.</p></entry>
+
+<entry c="thing"><title>CLANKER</title>
+<p>a swinging Lye.</p></entry>
+
+<entry c="rogue"><title>CLANK NAPPER</title>
+<p>a Silver-tankard
+Stealer.  See <i>Rumbubber</i>.</p></entry>
+
+<entry c="rogue"><title>CLAPPERDOGEON</title>
+<p>a Beggar born
+and bred.</p></entry>
+
+<entry c="punishment,adj"><title>CLAW'D-OFF</title>
+<p>lustily lash'd. Also
+swingingly pox'd or clap'd.</p></entry>
+
+<entry c="adj"><title>CLEAR</title>
+<p>very Drunk. <eg>The Cull is
+clear, let's Bite him.</eg>  The Fellow is
+very drunk, let's Sharp him.</p></entry>
+
+<entry c="bawd"><title>CLEAVE</title>
+<p>as, <eg>One that will cleave</eg>;
+used of a Wanton Woman.  <i>Vide Clown</i></p></entry>
+
+<entry c="thing"><title>CLENCH</title>
+<p>a Pun or Quibble.</p></entry>
+
+<entry c="thing"><title><i>To</i> CLENCH</title>
+<p>to nick a Business by
+timing it; as <eg>The Cull has clench'd
+the Job at a Pinch</eg>.  The Rogue has
+nick'd the Time, before any Passengers
+came by, who might have rescu'd
+the plunder'd Person.</p></entry>
+
+<entry c="crime"><title>CLEYMS</title>
+<p>Sores without Pain, raised on Beggars Bodies, by their own
+Artifice and Cunning, (to move Charity)
+by bruising Crows-foot, Spearwort,
+and Salt together, and clapping
+them onthe Place, which frets the
+Skin; then with a Linnen Rag, which
+sticks close to it, they tear off the Skin,
+and strew on it a little Powder'd rsnick,
+which makes it look angrily or
+ill-favouredly, as if it were a real
+Sore.</p></entry>
+
+<entry c="adj"><title>CLERK'D</title>
+<p>sooth'd, sunn'd imposed
+on; <eg>The Cull will not be Clerk'd</eg>, <i>i.e.</i>
+He will not be caught or taken by fair
+Words.</p></entry>
+
+<entry c="crime"><title><i>To</i> CLICK</title>
+<p>to Snatch.  <eg>I have Clickt
+the Nab from the Cull</eg>; I whipt the Hat
+from the Man's Head. <eg>Click the rum
+Topping</eg>. Snatch that Woman's fine
+Commode, or Head-Dress.</p></entry>
+
+<entry c="rogue"><title>CLICKER</title>
+<p>[among the <i>Canters</i>.]  He
+whom they intrust to divide their
+Spoils, and proportion to every one
+his Share.</p></entry>
+
+<!--* col *-->
+
+<entry c="bawd"><title>CLICKET</title>
+<p>Copulation of Foxes, and
+thence used in a <i>Canting</i> Sense, for that
+of Men and Women; as <eg>The Cull and
+the Mort are at Clicket in the Dyke</eg>.</p></entry>
+
+<entry c="v"><title>CLICKETING</title>
+<p>the Act of Fruition.</p></entry>
+
+<entry c="rogue"><title>CLINKER</title>
+<p>a crafty Fellow.</p></entry>
+
+<entry c="thing"><title>CLINKERS</title>
+<p>the Irons Felons wear
+in Goals.</p></entry>
+
+<entry c="rogue"><title>CLOAK-TWITCHERS</title>
+<p>Villains
+who lurk in by and dark Places, to
+snatch them off the Wearer's Shoulders.</p></entry>
+
+<entry c="person"><title>CLOD-HOPPER</title>
+<p>a Ploughman.</p></entry>
+
+<entry c="thing"><title>CLOUD</title>
+<p>Tobacco.  <eg>Will you raise a
+Cloud?</eg> Will you smoak a Pipe?</p></entry>
+
+<entry c="thing"><title>CLOVEN</title>
+<title><i>Cleave</i></title>
+<title>or <i>Cleft</i></title>
+<p>used of a young Woman who passes for a Maid,
+and is not one.</p></entry>
+
+<entry c="thing"><title>CLOUT</title>
+<p>a Handkerchief.</p></entry>
+
+<entry c="crime"><title><i>To</i> CLOY</title>
+<p>to Steal.  <eg>Cloy the Clout</eg>;
+steal the Money.</p></entry>
+
+<entry c="rogue"><title>CLOYERS</title>
+<p>Thieves, Robbers,
+Rogues.</p></entry>
+
+<entry c="crime"><title>CLOYING</title>
+<p>Stealing, Thieving,
+Robbing.</p></entry>
+
+<entry c="rogue"><title>CLOWES</title>
+<p>Rogues.</p></entry>
+
+<entry c="v"><title><i>To</i> CLUCK</title>
+<p>a Wench's Propension
+to Male-Conversation, by her romping
+and playfulness; when they say, <eg>The
+Mort Clucks</eg>.</p></entry>
+
+<entry c="thing"><title>CUMP</title>
+<p>a Heap or Lump.</p></entry>
+
+<entry c="thing"><title>CLUMPISH</title>
+<p>Lumpish.</p></entry>
+
+<entry c="person"><title>CLUNCH</title>
+<p>a clumsy Clown, an awkward
+or unhandy Fellow.</p></entry>
+
+<entry c="crime,punishment"><title>CLY</title>
+<p>Money. <eg>To cly the Jerk</eg>, to
+be Whipt.  <eg>Let's strike his Cly</eg>; Let's
+get his Money from him.  Also a
+Pocket, as, <eg>Filed a Cly</eg>, Pick'd a Pocket.</p></entry>
+
+<entry c="money"><title>COACH-WHEEL</title>
+<p>as, <eg>A Fore-Coach-Wheel</eg>
+Half a Crown. <eg>A Hind-Coach-Wheel</eg>,
+a Crown or Five-shilling Piece.</p></entry>
+
+<entry c="money"><title>COB</title>
+<p>an <i>Irish</i> Dollar.</p></entry>
+
+<entry c="thing"><title>COBBLE-COLTER</title>
+<p>a Turkey.  <eg>A
+rum Cobble-colter</eg>, a fat large Cock-Turkey.</p></entry>
+
+<entry c="bawd"><title>COCK-BAWD</title>
+<p>a Man who follows
+that base Employment, of procuring;
+a Pimp.</p></entry>
+
+<entry c="adj"><title>COCKISH</title>
+<p>wanton, uppish, forward.</p></entry>
+
+<entry c="bawd"><title>COCK-PIMP</title>
+<p>a supposed Husband to
+a Bawd.</p></entry>
+
+<entry c="person"><title>COCK-ROBBIN</title>
+<p>a soft easy Fellow.</p></entry>
+
+<entry c="adj"><title>COCK-SURE</title>
+<p>very sure.</p></entry>
+
+<entry c="money,person"><title>COD</title>
+<p>a good Sum of Money; also a
+Fool.  <eg>A meer Cod</eg>, a silly, shallow
+Fellow.  <eg>A rum Cod</eg>; a good round
+Sum of Money.  <eg>An honest Cod</eg>; a trusty
+Friend.</p></entry>
+
+<entry c="person"><title>COD's-<i>Head</i></title>
+<p>a Fool.</p></entry>
+
+<entry c="person"><title>COFE</title>
+<p>as COVE.  Which See.</p></entry>
+
+<entry c="crime"><title><i>To</i> COG</title>
+<p>to cheat at Dice.  <eg>To Cog a
+Die</eg>; to conceal or secure a Die; also
+the Money or whatever the <i>Sweetners</i>
+<!--* page 8 *-->
+drop, to draw in the Bubbles: Also to
+wheedle.</p></entry>
+
+<entry c="crime"><title><i>To</i> COG <i>a Dinner</i></title>
+<p>to wheedle one out of a Dinner.</p></entry>
+
+<entry c="crime"><title>COG <i>a Clout</i></title>
+<title>or, <i>Cog a Sneezer</i></title>
+<p>Beg an Handkerchief, or Snuff box.</p></entry>
+
+<entry c="thing"><title>COGUE</title>
+<p>of brandy, a small Cup or
+Dram.</p></entry>
+
+<entry c="thing"><title>COKER</title>
+<p>a Lye.  <eg>Rum Coker</eg>, a whisking Lye.</p></entry>
+
+<entry c="thing"><title>COLD-<i>Tea</i></title>
+<p>Brandy.  <eg>A couple of cold
+Words</eg>, a Curtain-Lecture.  <eg>Cold Iron</eg>,
+a derisory Periphrasis for a Sword.</p></entry>
+
+<entry c="money"><title>COLE</title>
+<p>Money.</p></entry>
+
+<entry c="place"><title>COLLEGE</title>
+<p><i>Newgate</i>; <i>New College</i>,
+the <i>Royal-Exchange</i>.</p></entry>
+
+<entry c="rogue"><title>COLLEGIATES</title>
+<p>the Prisoners of
+the one, and the Shop-keepers of the
+other of those Places.</p></entry>
+
+<entry c="v"><title><i>To</i> COLLOGUE</title>
+<p>wheedle.</p></entry>
+
+<entry c="thing"><title>COLQUARRON</title>
+<p>a Man's Neck; as,
+<eg>His Colquarron is just about to be twisted</eg>.
+He is just going to be turn'd off.</p></entry>
+
+<entry c="rogue"><title>COLT</title>
+<p>an Inn-keeper that lends a
+Horse to a Highway-man, or to
+Gentleman Beggars; also a Lad newly
+initiated into Roguery.</p></entry>
+
+<entry c="thing"><title>COLT-BOWL</title>
+<p>laid short of the
+Jack, by a [COLT-BOWLER]</p></entry>
+
+<entry c="person"><title>COL-BOWLER</title>
+<p>a raw or unexperienced Person.</p></entry>
+
+<entry c="v"><title><i>To</i> COME</title>
+<p>to lend.  <eg>Has he come it?</eg>
+Has he lent it to you?</p></entry>
+
+<entry c="bawd"><title>COMING-<i>Women</i></title>
+<p>such as are free of
+their Flesh; also breeding Women.</p></entry>
+
+<entry c="thing"><title>COMMISSION</title>
+<p>a shirt.</p></entry>
+
+<entry c="thing"><title>COMMON-<i>Garden-Gout</i></title>
+<p>or rather
+<eg>Covent-Garden-Gout</eg>, the Foul Disease.</p></entry>
+
+<entry c="person"><title>COMFORTABLE-<i>Importance</i></title>
+<p>a Wife.</p></entry>
+
+<entry c="adj"><title>CONFECT</title>
+<p>conterfeit, feigned.</p></entry>
+
+<entry c="adj,crime"><title>CONTENT</title>
+<p><eg>I beat him to his Heart's
+Content</eg>; <i>till he had enough of Fighting.</i>
+Also to murder a Person, who resists
+being robb'd.  <eg>The Cull's Content</eg>; <i>i.e.</i>
+He is past complaining.</p></entry>
+
+<entry c="thing"><title>CONTRE-TEMPS</title>
+<p>a fruitless Attempt,
+or at an unseasonable Time.</p></entry>
+
+<entry c="bawd"><title>CONVENIENT</title>
+<p>a Mistress; also a
+Whore.</p></entry>
+
+<entry c="person"><title>CONVENIENCY</title>
+<p>a Wife; also a
+Mistress.</p></entry>
+
+<entry c="thing"><title>CONUNDRUMS</title>
+<p>Whims, Maggots,
+and such like.</p></entry>
+
+<entry c="person"><title>CONY</title>
+<title>or <i>Tom Cony</i></title>
+<p>a silly Fellow;
+<eg>A meer Cony</eg>, very silly indeed.</p></entry>
+
+<entry c="person"><title><i>A</i> COLD-COOK</title>
+<p>an Undertaker of
+Funerals.</p></entry>
+
+<entry c="person"><title>COOK-RUFFIN</title>
+<p>the Devil of a
+Cook; or a very bad one.</p></entry>
+
+<entry c="thing"><title>COOL-CRAPE</title>
+<p>When a Person dies,
+he is said to be put into his <i>Cool-crape</i>.</p></entry>
+
+<entry c="person"><title>COOLER</title>
+<p>a Woman.</p></entry>
+
+<!--* col *-->
+
+<entry c="rogue"><title>COOL-LADY</title>
+<p>a Wench that sells
+Brandy (in Camps) a Suttler.</p></entry>
+
+<entry c="thing"><title>COOL-NANTZ</title>
+<p>Brandy.</p></entry>
+
+<entry c="rogue"><title>CORK-BRAIN'D</title>
+<p>a very impudent,
+harden'd, brazen-faced Fellow.</p></entry>
+
+<entry c="thing"><title>COSTARD</title>
+<p>the Head.  <eg>I'll give ye a
+Knock on the Costard</eg>; I'll hit ye a Blow
+on the Pate.</p></entry>
+
+<entry c="v"><title>COTTON</title>
+<p><eg>They don't cotton</eg>; They
+don't agree well.</p></entry>
+
+<entry c="v"><title><i>To</i> COUCH</title>
+<p>to lie down, as <eg>To
+Couch a Hogshead</eg>; To go to Bed.</p></entry>
+
+<entry c="person,rogue"><title>COVE</title>
+<p>a Man, a Fellow; also a
+Rogue.  <eg>The Cove was Bit</eg>; The Rogue
+was out-sharped or out-witted.  <eg>The
+Cove has bit the Cole</eg>; The Rogue has
+stollen the Money.  <eg>That Cove's a rum
+Diver</eg>; That Fellow is a clever Pick-pocket.</p></entry>
+
+<entry c="bawd"><title>COVEY <i>of Whores</i></title>
+<p>a well-fill'd Bawdy-house.</p></entry>
+
+<entry c="rogue"><title>COUNTERFEIT-CRANK</title>
+<p>a genteel
+Cheat, a Sham or Impostor, appearing in divers Shapes: one who
+sometimes counterfeits Mens hands, or
+forges Writings; at others personates
+other Men: is sometimes a Clipper or
+Coiner; at others a Dealer in Counterfeit
+Jewels.  Sometimes a strowling
+Mountebank: To Day he is a Clergyman
+in Distress; to Morrow a reduced
+Gentleman.</p></entry>
+
+<entry c="person"><title>VOURT-<i>card</i></title>
+<p>a gay, fluttering
+Fellow.</p></entry>
+
+<entry c="thing"><title brace="right">COURT-<i>Holy-Water</i></title>
+<title>COURT-<i>Promises</i></title>
+<p>fair Speeches without
+Performance.</p></entry>
+
+<entry c="thing"><title>COURT-<i>Tricks</i></title>
+<p>State-Policy &c;</p></entry>
+
+<entry c="thing"><title>COWS-BABY</title>
+<p>a Calf.</p></entry>
+
+<entry c="bawd"><title>CRACK</title>
+<p>a Whore.</p></entry>
+
+<entry c="v,crime"><title><i>To</i> CRACK</title>
+<p>is also used to break
+open; as, <eg>To Crack up a Door</eg>; To
+break a Door open.</p></entry>
+
+<entry c="thing"><title>CRACKER</title>
+<p>the Backside; also Crust.</p></entry>
+
+<entry c="v"><title>CRACKING</title>
+<p>boasting, vapouring.</p></entry>
+
+<entry c="adj"><title>CRACKISH</title>
+<p>whorish.</p></entry>
+
+<entry c="thing"><title>CRACKMANS</title>
+<p>Hedges; as, <eg>The Cull
+thought to have lop'd, by breaking thro'
+the Crackmans; but we fetch'd him back
+by a Nope on the Costard, which made
+him silent</eg>; <i>i.e.</i> The Gentleman thought
+to escape by breaking through the
+Hedges; but we brought him back by
+a great Blow on the Head, which laid
+him for Dead.</p></entry>
+
+<entry c="thing"><title>CRAG</title>
+<p>a Neck; also the Stomach,
+or Womb.</p></entry>
+
+<entry c="thing"><title>CRAMP-RINGS</title>
+<p>Bolts or Shackles.</p></entry>
+
+<entry c="punishment"><title>CRAMP-WORDS</title>
+<p>Sentence of
+Death passed upon a Criminal by the
+Judge: as, <eg>He has just undergone the
+<!--* page 9 *-->
+Cramp-Word</eg>; <i>i.e.</i> Sentence is just
+passed upon him.</p></entry>
+
+<entry c="adj"><title>CRANK</title>
+<p>brisk, pert.</p></entry>
+
+<entry c="money"><title>CRAP</title>
+<p>Money.  <eg>Nim the Crap</eg>; Steal
+the Money.  <eg>Wheedle for Crap</eg>; To
+coax Money out of any Body.</p></entry>
+
+<entry c="crime"><title>CRASH</title>
+<p>to Kill.  <eg>Crash the Cull</eg>, <i>i.e.</i>
+Kill the Fellow.</p></entry>
+
+<entry c="thing"><title>CRASHING-<i>Cheats</i></title>
+<p>Teeth.</p></entry>
+
+<entry c="rogue"><title>CREATURES</title>
+<p>Men raised by others,
+and their <i>Tools</i> ever after.</p></entry>
+
+<entry c="crime"><title><i>To</i> CREEME</title>
+<p>to slip or slide any
+Thing into another's Hand.</p></entry>
+
+<entry c="rogue"><title>CREW</title>
+<p>a Knot or Gang; as, <eg>A
+Crew of Rogues</eg>, &c;</p></entry>
+
+<entry c="crime"><title>CRIMP</title>
+<p>as, <eg>To play Crimp</eg>, to lay or
+bet on one Side, and (by foul Play) to
+let the other win, having a Share of
+the Purchase.</p></entry>
+
+<entry c="crime"><title><i>Run a</i> CRIMP</title>
+<p>to run a Race or
+Horse-match foully or knavishly.</p></entry>
+
+<entry c="phrase"><title><i>He</i> CRIMPS <i>it</i></title>
+<p>He plays booty.  <eg>A
+crimping Fellow</eg>, a sneaking Cur.</p></entry>
+
+<entry c="thing"><title>CRINKUMS</title>
+<p>the foul Disease.</p></entry>
+
+<entry c="rogue"><title>CROCKERS</title>
+<p>Fore-stallers, Regraters;
+otherwise called <i>Kidders</i> and
+<i>Tranters</i>.</p></entry>
+
+<entry c="money"><title>CROKER</title>
+<p>a Groat or Fourpence.
+<eg>The Cull tipt me a Croker</eg>, the Fellow
+gave me a Groat.</p></entry>
+
+<entry c="rogue"><title>CRONY</title>
+<p>a Comerade [in a <i>Canting</i>
+Sense.]  Two or Three Rogues, who
+agree to beg or rob in Partnership, call
+one another <i>Crony</i>; as, <eg>Such a one is
+my Crony</eg>; as much as to say, He and I
+go Snacks.</p></entry>
+
+<entry c="money"><title>CROP</title>
+<p>Money.</p></entry>
+
+<entry c="thing"><title>CROPPIN</title>
+<p>the Tail, as, <eg>The Croppin
+of the Rotan</eg>, The Tail of the Cart.</p></entry>
+
+<entry c="thing"><title>CROPPIN-KEN</title>
+<p>a Privy or Bog-house.</p></entry>
+
+<entry c="crime"><title><i>To</i> CROSS-BITE</title>
+<p>to draw in a Friend,
+yet snack with the Sharper; also to
+countermine or disappoint.</p></entry>
+
+<entry c="thing"><title>CROWN <i>Office</i></title>
+<p>as, <eg>He is got into
+the Crown Office</eg>, <i>i.e.</i> He's got drunk.</p></entry>
+
+<entry c="rogue"><title>CRUISERS</title>
+<p>Beggars; Also Highway
+Spies, who traverse the Road, to give
+Intelligence of a Booty, &c;</p></entry>
+
+<entry c="rogue"><title>CRUMP</title>
+<p>one that helps Sollicitors
+to <i>Affidavit-Men</i>.</p></entry>
+
+<entry c="person"><title>CRUSTY-BEAU</title>
+<p>one that lies with
+a Cover over his Face all Night, and
+uses Washes, Paint, &c;</p></entry>
+
+<entry c="person"><title><i>Young</i> CUB</title>
+<p>a new Gamester drawn
+in to be rook'd.</p></entry>
+
+<entry c="person"><title>CUCUMBERS</title>
+<p>Taylors.</p></entry>
+
+<entry c="rogue"><title>CUDGELLIERS</title>
+<p>a Mob rudely
+arm'd; also Cudgel-Players.</p></entry>
+
+<entry c="person"><title>CUFFIN</title>
+<p>a Man.</p></entry>
+
+<entry c="person"><title>CUFFIN-QUIRE</title>
+<p>See <i>Quire Cuffin</i>.</p></entry>
+
+<entry c="v,punishment"><title>CULP</title>
+<p>a Kick or Blow.</p></entry>
+
+<entry c="person,rogue"><title>CULL</title>
+<p>a Man, either honest, or
+<!--* col *-->
+otherwise.  <eg>A Bob-Cull</eg>, a Sweet-humour'd
+Man to a Wench.  <eg>The Cull
+naps us</eg>; The Person robb'd apprehends
+us.  <eg>A curst Cull</eg>, an ill-natur'd Fellow,
+a Churl to a Woman.</p></entry>
+
+<entry c="person"><title>CULLY</title>
+<p>a Fop, a Fool, one who is
+easily drawn in and cheated by Whores
+and Rogues.</p></entry>
+
+<entry c="rogue"><title>CUNNING-Shaver</title>
+<p>a sharp Fellow,
+one that sharps or shaves (as they call
+it) close.</p></entry>
+
+<entry c="adj"><title>CUP-SHOT</title>
+<p>Drunk.</p></entry>
+
+<entry c="thing"><title>CUP <i>of the Creature</i></title>
+<p>strong-Liquor.</p></entry>
+
+<entry c="money"><title>CURLE</title>
+<p>Clippings of Money.</p></entry>
+
+<entry c="rogue"><title>CURSITORS</title>
+<p>reduced Lawyers, assuming
+to themselves the Knowledge
+of the Quirks and Quiddities of the
+Law, and are perpetually fomenting litigious
+Brawls, and insignificant Contentions,
+among the Scum of the Vulgar.</p></entry>
+
+<entry c="rogue"><title>CURTAILS</title>
+<p>whose Practice is to
+cut off Pieces of Silk, Cloth, Linnen
+or Stuff, that hang out at the Shop-Windows
+of Mercers, Drapers, &c;
+as also sometimes the Tails of Womens
+Gowns, their Hoods, Scarves,
+Pinners, - if richly Lac'd.</p></entry>
+
+<entry c="adj"><title>CURTAIL'D</title>
+<p>cut off, dock'd, shorten'd, reduced.</p></entry>
+
+<entry c="thing"><title>CURTAIN-Lecture</title>
+<p>Womens impertinent
+scolding at their Husbands
+behind the Curtain.</p></entry>
+
+<entry c="person,bawd"><title>CURTEZAN</title>
+<p>a genteel fine Miss,
+or Quality Whore.</p></entry>
+
+<entry c="adj"><title>CUT</title>
+<p>Drunk.  <eg>Deep Cut</eg>, very
+Drunk.  <eg>Cut in the Leg or Back</eg>, the
+same.  <eg>To Cut</eg>, also signifies to speak.
+<eg>To Cut bene</eg>, to speak gently, civilly or
+kindly; <eg>To Cut bene (<i>or</i> benar) Whidds</eg>,
+to give good Words.  <eg>To Cut queere
+Whid's</eg>, to give ill Language.  A Blow
+with a Stick or Cane, is also called a
+<i>Cut</i>.  As, <eg>I took him a Cut cross the
+Shoulders</eg>.</p></entry>
+
+<!--* end of C *-->
+
+</letter>
+
+<letter name="d"><title>D</title>
+<entry c="adj"><title>DAB</title>
+<p>expert, well vers'd in
+Roguery.
+<eg>A Rum Dab</eg>, a very
+dextrous Fellow at Thieving, Cheating, Sharping, &c;</p></entry>
+
+<entry c="money"><title>DACE</title>
+<p>Two-pence; Tip me a <i>Dace</i>, Lend me Two-pence, or pay
+so much for me.</p></entry>
+
+<entry c="thing"><title>DAG</title>
+<p>a Gun.</p></entry>
+
+<entry c="rogue"><title>DAMBER</title>
+<p>a Rascal.  See <i>Dimber</i></p></entry>
+
+<entry c="rogue"><title>DAMME-BOY</title>
+<p>a roaring, mad,
+blustring Fellow, a Scourer of the
+Streets.</p></entry>
+
+<entry c="thing"><title>DANCERS</title>
+<p>Stairs.</p></entry>
+
+<entry c="person"><title>DANDYPRAT</title>
+<p>a little puny Fellow.</p></entry>
+
+<!--* page 10 *-->
+
+<entry c="money"><title>DARBY</title>
+<p>ready Money; as, <eg>The Cull
+tipp'd us the Darby</eg>; The Fellow gave
+us all his ready Money.</p></entry>
+
+<entry c="thing"><title>DARBIES</title>
+<p>Irons, Shackles or Fetters.</p></entry>
+
+<entry c="rogue"><title>DARK <i>Cully</i></title>
+<p>a married Man, who
+keeps a Mistress, and creeps to her in
+the Night, for fear of Discovery.</p></entry>
+
+<entry c="rogue"><title>DARKMANS</title>
+<p>the Night; <eg>The Child
+of Darkmans or Darkness</eg>, a Bell-man.</p></entry>
+
+<entry c="rogue"><title>DARKMANS-<i>Budge</i></title>
+<p>one that slides
+into a House in the Dusk, to let in
+more Rogues to rob.</p></entry>
+
+<entry c="thing"><title>DASH</title>
+<p>a Tavern-Drawer.</p></entry>
+
+<entry c="crime"><title>DAWB</title>
+<p>a Bribe, a Reward for
+secret Service; as, <eg>The Cull was gybbed,
+because he could not dawb</eg>.  The Rogue
+was punished, because he had no Pence
+to bribe off his Sentence.</p></entry>
+
+<entry c="thing"><title>DEAD <i>Cargo</i></title>
+<p>a Term used by
+Rogues, when they are disappointed in 
+the Value of their Booty.</p></entry>
+
+<entry c="thing"><title>DEAD-MEN</title>
+<p>empty Pots or Bottles
+ona Tavern Table.</p></entry>
+
+<entry c="person"><title>DEAR <i>Joyes</i></title>
+<p><i>Irishmen</i></p></entry>
+
+<entry c="money"><title>DECUS</title>
+<p>a Crown or Five Shilling
+Piece.</p></entry>
+
+<entry c="person"><title>DEFT <i>Fellow</i></title>
+<p>a tidy, neat, little
+Man.</p></entry>
+
+<entry c="thing"><title>DEGEN</title>
+<p>a Sword.  <eg>Nim the Degen</eg>,
+whip the Sword from the Gentleman's
+side.</p></entry>
+
+<entry c="bawd"><title>DELLS</title>
+<p>young bucksome Wenches,
+rip and prone to Venery, but who
+have not lost their Virginity, which
+the <i>Upright Man</i> pretends to, and
+seizes: Then she is free for any of the
+Fraternity.  Also a common Strumpet.</p></entry>
+
+<entry c="person"><title>DEVIL-<i>drawer</i></title>
+<p>a sorry Painter.</p></entry>
+
+<entry c="thing"><title>DEUSEAVILE</title>
+<p>the Country.</p></entry>
+
+<entry c="person"><title>DEUSEAVILE-<i>Stampers</i></title>
+<p>Country Carriers.</p></entry>
+
+<entry c="money"><title>DEWS-<i>wins</i></title>
+<title>or, <i>Deux-wins</i></title>
+<p>Two-pence.</p></entry>
+
+<entry c="drink"><title>DIDDLE</title>
+<p><i>Geneva</i>, a Liquor very
+much drank by the lowest Rank of
+People.</p></entry>
+
+<entry c="adj"><title>DIMBER</title>
+<p>pretty.</p></entry>
+
+<entry c="person"><title>DIMBER-<i>Cove</i></title>
+<p>a pretty Fellow.</p></entry>
+
+<entry c="rogue"><title>DIMBER-<i>Damber</i></title>
+<p>a Top Man or
+Prince amongst the <i>Canting Crew</i>;
+also the chief Rogue of the Gang, or
+the compleatest Cheat.</p></entry>
+
+<entry c="person"><title>DIMBER-<i>Mort</i></title>
+<p>a pretty Wench.</p></entry>
+
+<entry c="crime"><title><i>To</i> DING</title>
+<p>to knock down.</p></entry>
+
+<entry c="rogue"><title>DING-<i>Boy</i></title>
+<p>a Rogue, a Hector, a
+Bully, a Sharper.</p></entry>
+
+<entry c="adj"><title>DING-<i>Dong</i></title>
+<p>helter-skelter.</p></entry>
+
+<entry c="adj"><title>DIPT</title>
+<p>engag'd or in Debt, pawn'd
+or mortgag'd.</p></entry>
+
+<entry c="thing"><title>DISMAL-<i>Ditty</i></title>
+<p>a Psalm at the Gallows.</p></entry>
+
+<entry c="thing"><title>DISPATCHES</title>
+<p>a <i>Mittimus</i>, a Justice
+<!--* col *-->
+of Peace's Warrant to send a Rogue
+to Prison, &c;</p></entry>
+
+<entry c="crime"><title><i>To</i> DIVE</title>
+<p>to pick a Pocket.</p></entry>
+
+<entry c="rogue"><title>DIVER</title>
+<p>a Pick-pocket.  See <i>File</i>.</p></entry>
+
+<entry c="thing"><title>DOASH</title>
+<p>a Cloak.</p></entry>
+
+<entry c="bawd"><title><i>To</i> DOCK</title>
+<p>to lie witha Woman.
+<eg>The Cull Docks the Dell in the Darkmans</eg>;
+the Rogue lay with the Wench all
+Night.</p></entry>
+
+<entry c="thing"><title>DOCTOR</title>
+<p>a false Die that will run
+but two or three Chances.  <eg>They put
+the Doctor upon him</eg>; they cheated him
+with false Dice.</p></entry>
+
+<entry c="rogue"><title>DOMERARS</title>
+<title>or DROMMERARS</title>
+<p>Rogues, pretending to have had their
+Tongues cut out, or to be born Dumb
+and Deaf, who artificially turn their
+Tip of their Tongues into their
+Throat, and with a Stick making it
+bleed.</p></entry>
+
+<entry c="crime"><title>DOSE</title>
+<p>Burglary, a breaking open a
+House, Lock, Door, &c; as, <eg>He is cast
+for Felon and Dose</eg>; <i>i. e.</i> found Guilty
+of Felony and Burglary.</p></entry>
+
+<entry c="thing"><title>DOWN-HILLS</title>
+<p>Dice that run low.</p></entry>
+
+<entry c="bawd"><title>DOXIES</title>
+<p>She beggars, Wenches,
+Whores.</p></entry>
+
+<entry c="bawd"><title>DRAB</title>
+<p>a Whore, or Slut; a <eg>dirty
+Drab</eg>, a very nasty Slut.</p></entry>
+
+<entry c="thing"><title>DRAWERS</title>
+<p>Stockens.</p></entry>
+
+<entry c="rogue"><title>DRAW-<i>Latches</i></title>
+<p>Robbers of Houses
+that were fastened only by <i>Latches</i>.</p></entry>
+
+<entry c="thing"><title>DRIPPER</title>
+<p>a sort of Clap, or venereal
+Gleet.</p></entry>
+
+<entry c="rogue"><title>DROMEDARY</title>
+<p>a heavy, bundling
+Thief or Rogue.  <eg>A purple Dromedary</eg>;
+a Bungler or a dull Fellow at Thieving.</p></entry>
+
+<entry c="rogue"><title>DROMMERARS</title>
+<p>See <i>Domerars</i>.</p></entry>
+
+<entry c="money"><title>DROP <i>a Cog</i></title>
+<p>to let fall (with Design
+to draw in and cheat) a Piece of Gold;
+also the Piece itself.</p></entry>
+
+<entry c="adj"><title>DROP <i>in his Eye</i></title>
+<p>almost drunk.</p></entry>
+
+<entry c="person"><title>DRUMBELO</title>
+<p>a dull, heavy Fellow.</p></entry>
+
+<entry c="thing"><title>DRY-<i>Bob</i></title>
+<p>a smart or sharp Repartee.</p></entry>
+
+<entry c="rogue"><title>DRY-<i>Boots</i></title>
+<p>a sly, close cunning
+Fellow.</p></entry>
+
+<entry c="thing"><title>DUB</title>
+<p>a pick-lock Key.</p></entry>
+
+<entry c="crime"><title>DUB <i>the Gigger</i></title>
+<p>open the Door.
+<eg>We'll strike it upon the Dub</eg>, We will
+rob that Place.</p></entry>
+
+<entry c="rogue"><title>DUBBER</title>
+<p>a Picker of Locks.</p></entry>
+
+<entry c="money"><title><i>A</i> DUCE</title>
+<p>Two pence.</p></entry>
+
+<entry c="thing"><title>DUDDS</title>
+<p>Cloaths or Goods.  <eg>Rum
+Dudds</eg>; fine or rich Cloaths or Goods.</p></entry>
+
+<entry c="thing"><title>DUDD-<i>Cheats</i></title>
+<p>Cloaths and things
+stollen.  <eg>Abraham Cove has wonne<interj>, (or <i>bit</i>)</interj> Rumm Dudds</eg>; the poor Fellow
+has stollen very costly Cloaths.</p></entry>
+
+<entry c="punishment"><title><i>To</i> DUM-<i>found</i></title>
+<p>to beat soundly.</p></entry>
+
+<entry c="rogue"><title>DUNAKER</title>
+<p>a Stealer or Cows, or
+Calves, &c;</p></entry>
+
+<!--* page 11 *-->
+
+<entry c="rogue"><title>DUDDERING <i>Rake</i></title>
+<p>a thundering
+Rake, or of the first Rank, one devilishly
+lewd.</p></entry>
+
+<entry c="v"><title>DUP</title>
+<p>to enter, or open a Door:
+<eg>Dup the Ken</eg>, Enter the House.  <eg>Dup
+the Boozing Ken and booz a Gage</eg>, Go
+into the Ale-house and drink a Pot.</p></entry>
+
+<entry c="money"><title link="ignore">DUST</title>
+<p>Money; <eg>Down with your
+Dust</eg>, Deposite your Money.</p></entry>
+
+<entry c="v,drink"><title>DUST <eg>it away</eg></title>
+<p>Drink quick about.</p></entry>
+
+<entry c="money"><title>DUTCH-<i>Reckoning</i></title>
+<title>or <i>Alte-mall</i></title>
+<p>a
+verbal or lump Accompt, without Particulars;
+as brought in at the <i>Spunging-Houses</i>,
+at <i>Bawdy Houses</i>, and other
+such like Places of ill Repute.</p></entry>
+
+<!--* end of D *-->
+
+</letter>
+
+<letter name="e"><title>E</title>
+<entry c="person"><title>EAGLE</title>
+<p>a winning Gamester.</p></entry>
+
+<entry c="thing"><title>EARNEST</title>
+<p>Part or Share.
+<eg>Tip me my Earnest</eg>,
+Give me my Snack or
+Dividend.</p></entry>
+
+<entry c="adj"><title>EASY</title>
+<p>facile, supple, pliable, mnageable.
+<eg>As make the Cull easy</eg>; Gagg
+him, tht he may make no Noise;sometimes used for murdering a Person
+robbed, for fear of Discovery.</p></entry>
+
+<entry c="thing"><title>EBB <i>water</i></title>
+<p>when there is but little
+money in the Pocket.</p></entry>
+
+<entry c="thing"><title>EDGE</title>
+<p>as, <eg>Fall Back, fall Edge</eg>; <i>i.e.</i>
+<meaning><i>At all Adventures</i></meaning>; used to express a
+villainous and daring Resolution for
+Mischief, whatever may be the Consequence.</p></entry>
+
+<entry c="v"><title><i>To</i> EDGE</title>
+<p>or, as 'tis vulgarly call'd,
+<i>To</i> EGG one on; to stimulate, provoke,
+push forwards, so sharpen, or whet on
+for Mischief.</p></entry>
+
+<entry c="rogue"><title>ELBOW-<i>shaker</i></title>
+<p>a Ganester or Sharper.</p></entry>
+
+<entry c="adj"><title>ELF</title>
+<p>little.</p></entry>
+
+<entry c="adj"><title>EMPTY</title>
+<p>as, <eg>The Cull looks Empty</eg>;
+or, <eg>'Tis all Empty</eg>; i.e. the Person or
+House has not the Riches reported, or
+is not worth attempting.</p></entry>
+
+<entry c="drink"><title>ENGLISH <i>Manufacture</i></title>
+<p>Ale, Beer,
+or Cyder.</p></entry>
+
+<entry c="adj"><title>EQUIPT</title>
+<p>rich; also having new
+Cloaths.  <eg>Well equipt</eg>, plump in the
+Pocket, or very full of Money; also
+very well drest.  <eg>The Cull equipt me
+with a Brace of Meggs</eg>, The Gentleman
+furnish'd me with a Coupleof Guineas.</p></entry>
+
+<entry c="rogue"><title>ERIFFS</title>
+<p>Rogues just initiated, and
+beginning to practice.</p></entry>
+
+<entry c="place"><title>EVES</title>
+<p>Hen-Roosts.</p></entry>
+
+<entry c="rogue"><title>EVES-<i>Dropper</i></title>
+<p>one that lurks about
+to rob or steal.</p></entry>
+
+<entry c="person"><title>EWE</title>
+<title>or, <i>The white Ewe</i></title>
+<p>a Top-woman very beautiful.</p></entry>
+
+<!--* col *-->
+
+
+</letter>
+
+<letter name="f"><title>F</title>
+<entry c="person"><title>FACER</title>
+<p>a Bumber without Lip-room.</p></entry>
+
+<entry c="v"><title>FADGE</title>
+<p>as, It won't fadge or do.</p></entry>
+
+<entry c="punishment"><title>FAG</title>
+<p>to Beat; as, <eg>Fag the Bloss</eg>,
+Bang the Wench; <eg>Fag the Fen</eg>, Drub
+the Whore.  Whence [[to Faggot, next entry]].</p></entry>
+
+<entry c="punishment,crime"><title><i>To</i> FAGGOT</title>
+<p>to bind Hand and
+Foot; as <eg>Faggot the Culls</eg>; <i>i.e.</i> Bind
+the Men.</p></entry>
+
+<entry c="person"><title>FAIR-<i>Roe-Buck</i></title>
+<p>a Woman in the
+Bloom of her Beauty.</p></entry>
+
+<entry c="thing"><title>FAMBLE-<i>Cheats</i></title>
+<p>Gold Rings, or
+Gloves.</p></entry>
+
+<entry c="rogue"><title>FAMBLERS</title>
+<p>Villains that go up and
+down selling counterfeit rings, &c;</p></entry>
+
+<entry c="thing"><title>FAMBLES</title>
+<p>Rings; also the Hands.</p></entry>
+
+<entry c="v"><title><i>To</i> FAMGRASP</title>
+<p>to agree or make
+up a Difference.  <eg>Famgrasp the Cove</eg>,
+to agree with the Adversary.</p></entry>
+
+<entry c="bawd"><title>FAMILY <i>of Love</i></title>
+<p>Lew'd Women,
+Whores; also a Sect.</p></entry>
+
+<entry c="thing"><title>FAMMS</title>
+<p>Hands.</p></entry>
+
+<entry c="thing"><title>FARTING-<i>Crackers</i></title>
+<p>Breeches.</p></entry>
+
+<entry c="thing"><title>FASTNER</title>
+<p>a Warrant.</p></entry>
+
+<entry c="thing"><title>FASTNESS</title>
+<p>Boggs.</p></entry>
+
+<entry c="adj"><title>FAT</title>
+<p>rich, as, <eg>A Fat Cull</eg>; a rich
+Fellow.</p></entry>
+
+<entry c="rogue"><title>FAULKNER</title>
+<p>a Tumbler, a Juggler,
+a Shewer of Tricks, &c;</p></entry>
+
+<entry c="rogue"><title>FAYTORS</title>
+<title>or FATORS</title>
+<p>A kind of Gypsies, pretending to tell People
+their Fate or Destiny, or what they
+were born to.</p></entry>
+
+<entry c="thing"><title>FEATHER-<i>bed-lane</i></title>
+<p>any bad Road,
+but particularly that betwixt <i>Dunchurch</i>
+and <i>Daintry</i>.  <eg>To Feather his nest</eg>, to
+inrich himself by indirect Means, or
+at the expence of others.</p></entry>
+
+<entry c="thing"><title>FEINTING</title>
+<p>an Attempt on one part
+of a House, or Road, &c; when their
+cheif Stress or Attempt lies in another.</p></entry>
+
+<entry c="bawd"><title>FEN</title>
+<p>a Strumpet, or Bawd, a common
+prostitute.</p></entry>
+
+<entry c="v"><title><i>To</i> FENCE</title>
+<p>to spend, <eg>Fence his Hog</eg>,
+spend his Shilling.</p></entry>
+
+<entry c="rogue"><title><i>A</i> FENCE</title>
+<p>is also a Receiver and
+Securer of Stollen Goods.</p></entry>
+
+<entry c="rogue"><title>FENCING-<i>Cully</i></title>
+<p>the fame.</p></entry>
+
+<entry c="place"><title>FENCING-<i>Ken</i></title>
+<p>a Warehouse,
+where Stollen Goods are secured.</p></entry>
+
+<entry c="thing"><title>FERME</title>
+<p>a Hole.</p></entry>
+
+<entry c="rogue"><title>FERMERLY-<i>Beggars</i></title>
+<p>all those that
+have not the sham Sores or <i>Cleymes</i>.</p></entry>
+
+<entry c="rogue"><title>FERRET</title>
+<p>a Parn-broker, or
+Tradesman that sells Goods upn Trust
+at excessive Rates, and then hunts
+them, and often throws them into
+Goal, where they perish for his Debt.</p></entry>
+
+<!--* page 12 *-->
+
+<entry c="adj"><title>FERRETED</title>
+<p>cheated</p></entry>
+
+<entry c="rogue"><title>FETCH</title>
+<p>a Trick or Wheedle.  <eg>A
+meer Fetch</eg>.</p></entry>
+
+<entry c="crime"><title><i>To</i> FIB</title>
+<p>to beat; <eg>Fib the Cove's
+Quarron in the Rompad, for the Lour in
+his Bung</eg>.  Beat the Man in the Highway
+for the Money in his Purse.</p></entry>
+
+<entry c="thing"><title>FIDDLE</title>
+<p>a Writ to Arrest.</p></entry>
+
+<entry c="thing"><title>FIDLERS-<i>Pay</i></title>
+<p>Thanks and Wine.</p></entry>
+
+<entry c="crime" sortas="FILCH1"><title><i>To</i> FILCH</title>
+<p>to Steal.</p></entry>
+
+<entry c="thing" sortas="FILCH2"><title><i>A</i> FILCH</title>
+<p>a Staff, with a Hole thro'
+and a Spike at the Bottom, to pluck
+Cloaths from a Hedge or any thing out
+of a Casement.</p></entry>
+
+<entry c="rogue"><title>FILCHERS</title>
+<p>the same with ANGLERS.</p></entry>
+
+<entry c="rogue"><title>FILCHING-<i>Cove</i></title>
+<p>a Man-Thief.</p></entry>
+
+<entry c="rogue"><title>FILCHING-<i>Mort</i></title>
+<p>a Woman-Thief.</p></entry>
+
+<entry c="v" sortas="FILE 01"><title><i>To</i> FILE</title>
+<p>to Rob, or Cheat.</p></entry>
+
+<entry c="rogue" sortas="FILE 02"><title><i>A</i> FILE</title>
+<title>or <i>Bungnipper</i></title>
+<p>Pick-pockets,
+who generally go in Company with a
+Rogue, called a <i>Bulk</i> or <i>Bulker</i>, whose
+Business 'tis to jostle the Person against
+the Wall, while the <i>File</i> picks his
+Pocket; and generally gives it to an
+<i>Adam-tiler</i>, who scowers off with it.</p></entry>
+
+<entry c="rogue"><title>FILE-<i>Cloy</i></title>
+<p>a Pick-Pocket, Thief or
+Rogue; the same as FILE.</p></entry>
+
+<entry c="bawd"><title>FIRE-<i>Ship</i></title>
+<p>a Pockey Whore.</p></entry>
+
+<entry c="money,adj"><title>FLAG</title>
+<p>a Groat; <eg>The Flag of Defiance
+is out</eg>, (among the Tarrs) the
+Fellow's Face is very red, and he is
+drunk.</p></entry>
+
+<entry c="thing"><title>FLAM</title>
+<p>a Trick or Sham Story.</p></entry>
+
+<entry c="thing"><title>FLANDERS-<i>Fortunes</i></title>
+<p>of small Substance.</p></entry>
+
+<entry c="thing"><title>FLANDERS-<i>Pieces</i></title>
+<p>Pictures that
+look fair at a Distance, but coarser
+near at Hand.</p></entry>
+
+<entry c="thing"><title>FLAP DRAGON</title>
+<p>a Clap or Pox.</p></entry>
+
+<entry c="thing"><title>FLASH</title>
+<p>a Peruke.  <eg>Rum Flash</eg>, a
+long, full, high-priz'd Wig.  <eg>Queer-Flash</eg>,
+a sorry weather-beaten Wig.</p></entry>
+
+<entry c="place"><title>FLASH-<i>Ken</i></title>
+<p>a House were Thieves
+use, and are connived at.</p></entry>
+
+<entry c="adj"><title>FLAW'D</title>
+<p>Drunk.</p></entry>
+
+<entry c="crime"><title><i>To</i> FLEECE</title>
+<p>to Rob, Plunder or
+Strip.</p></entry>
+
+<entry c="rogue,bawd"><title>FLESH <i>Broker</i></title>
+<p>a Match-maker;
+also a Bawd.</p></entry>
+
+<entry c="rogue"><title>FLIBUSTERS</title>
+<p><i>West Indian</i> Pirates,
+or Buckaneers, Free-booters.</p></entry>
+
+<entry c="thing"><title>FLICKER</title>
+<p>a Drinking Glass.  <eg>The
+Flicker snapt</eg>, the Glass is broken.  <eg>Nim
+the Flicker</eg>.  Steal the Glass.  <eg>Rum
+Flicker</eg>, a large Glass or Rummer.
+<eg>Queer Flicker</eg>, a green or ordinary
+Glass.</p></entry>
+
+<entry c="v"><title>FLICKING</title>
+<p>to cut, cutting, as, <eg>Flick
+me some Panom and Cossam</eg>; Cut me
+some Bread and Cheese.  And, <eg>Flick
+the Peter</eg>, cut off the Cloak-bag or
+Portmanteau.</p></entry>
+
+<!--* col *-->
+
+<entry c="v,punishment"><title>FLOGG</title>
+<p>to Whip</p></entry>
+
+<entry c="punishment"><title>FLOGG'D</title>
+<p>severely lash'd.</p></entry>
+
+<entry c="punishment"><title>FLOGG'D <i>at the Tumbler</i></title>
+<p>whipt at the Cart's Arse.</p></entry>
+
+<entry c="punishment,bawd"><title>FLOGGING</title>
+<p>a naked Woman's
+whipping with Rods an old (usually)
+and (sometimes) a young Letcher.
+<eg>The Prancer drew the Queer Cove, at
+the Crop-pin of the Rotan, through the
+Rum Pads of the Runville, and was
+Flogg'd by the Rum Cove</eg>, <i>i. e.</i> The
+Rogue was dragg'd at the Cart's tail
+through the chief Streets of <i>London</i>,
+and was soundly whipt by the Hangman.</p></entry>
+
+<entry c="person"><title>FLOGGING-<i>Cove</i></title>
+<p>the Beadle, or
+Whipper in <i>Bridewell</i>, or any such
+Place.</p></entry>
+
+<entry c="rogue,bawd"><title>FLOGGING-<i>Cully</i></title>
+<p>an old Letcher,
+who, to stimulate himself to Venery,
+causes himself to be whipp'd with
+Rods.</p></entry>
+
+<entry c="punishment"><title>FLOGGING-<i>Stake</i></title>
+<p>a whipping
+Post.</p></entry>
+
+<entry c="person"><title>FLORENCE</title>
+<p>a Wench that is
+touz'd and ruffled.</p></entry>
+
+<entry c="adj,money"><title>FLUSH <i>in the Pocket</i></title>
+<p>full of Money.
+<eg>The Cull is Flush in the Fob</eg>, the Spark's
+Pocket is well lin'd with Money.</p></entry>
+
+<entry c="drink,adj"><title>FLUSTER'D</title>
+<p>Drunk.</p></entry>
+
+<entry c="person"><title>FLUTE</title>
+<p>the Recorder of <i>London</i>,
+or of any other Town.</p></entry>
+
+<entry c="thing"><title>FLYERS</title>
+<p>Shoes.</p></entry>
+
+<entry c="rogue"><title>FLYING <i>Camps</i></title>
+<p>Beggars plying in
+Bodies at Funerals.</p></entry>
+
+<entry c="crime"><title>FOB</title>
+<p>a Cheat, or Trick.</p></entry>
+
+<entry c="v"><title>FOB <i>off</i></title>
+<p>to cheat or deceive.</p></entry>
+
+<entry c="thing"><title>FOG</title>
+<p>Smoke.</p></entry>
+
+<entry c="thing"><title>FOGUS</title>
+<p>Tobacco. <eg>Tip me a Gage of
+Fogus</eg>, Give me a Pipe of Tobacco.</p></entry>
+
+<entry c="crime"><title>FOOTMAN's <i>Mawn'd</i></title>
+<p>an artificial
+Sore made with unslak'd Lime, Soap,
+an the Rust of old Iron, on the Back
+of a Beggar's Hand, as if hurt by the
+Bite or Kick of a Horse.</p></entry>
+
+<entry c="rogue"><title>FOOT-<i>Pads</i></title>
+<title>or LOW <i>Pads</i></title>
+<p>a Crew
+of Villains, who rob on Foot, some
+of them using long Poles or Staves,
+with an Iron Hook at the End, with
+which they either pull Gentlemen from
+their Horses, or knock them down: At
+other Times, they skulk under Hedges
+or behind Banks in the Road, and suddenly
+starting out from their Covert,
+one seizes the Bridle, while the other
+dismounts the Passenger: and so rob,
+and often murder him.</p></entry>
+
+<entry c="person"><title>FORMAN <i>of the Jury</i></title>
+<p>one that engrosses
+all the Talk to himself.</p></entry>
+
+<entry c="rogue" sortas="FORK 01"><title>FORK</title>
+<p>a Pick-pocket.  <eg>Lets Fork
+him</eg>; Let us pick that Man's Pocket.
+<!--* page 13 *-->
+It is done by thrusting the Fingers,
+strait, stiff, open and very quick into
+the Pocket, and so closing them, hook
+what can be held between them.</p></entry>
+
+<entry c="person" sortas="FORK 02"><title>A FORK</title>
+<p>is also used for a Spendthrift.</p></entry>
+
+<entry c="person"><title>FORLORN-<i>Hope</i></title>
+<p>losing Gamesters.</p></entry>
+
+<entry c="person,rogue"><title>FORTUNE-<i>Hunters</i></title>
+<p><i>Irishmen</i>, Pursuers
+of rich Heiresses, &c; to obtain
+them in Marriage.  <eg>A Creature of Fortune</eg>,
+one that lives by his Wit.</p></entry>
+
+<entry c="rogue"><title>FORTUNE-<i>Tellers</i></title>
+<p>the Judges of
+Life and Death.</p></entry>
+
+<entry c="person"><title>FOUNDLING</title>
+<p>a Child dropt in the
+Streets for the Parish to keep.</p></entry>
+
+<entry c="rogue" sortas="FOX"><title link="ignore">A FOX</title>
+<p>a sharp, cunning Fellow.</p></entry>
+
+<entry c="drink,adj"><title>FOXED</title>
+<p>Drunk.</p></entry>
+
+<entry c="rogue"><title>FOYST</title>
+<p>a Cheat, a Rogue.</p></entry>
+
+<entry c="rogue"><title>FRATERS</title>
+<p>such as beg with sham
+Patents or Briefs for Spitals, Prisons,
+Fires, Innundations, &c;</p></entry>
+
+<entry c="rogue"><title>FREE-<i>Booters</i></title>
+<p>lawless Robbers, and
+Plunderers; also Soldiers serving for
+that Privilege without Pay, Inroaders.</p></entry>
+
+<entry c="person"><title>FREEHOLDER</title>
+<p>he whose Wife goes
+with him to the Alehouse.</p></entry>
+
+<entry c="drink"><title>FREEZE</title>
+<p>a thin, small, hard Cyder,
+much used by Vintners and Coopers in
+parting their Wines, to lower the
+Price of them, and to advance their
+Gain.  <eg>A Freezing Vintner</eg>, a vintner
+that balderdashes his Wine.</p></entry>
+
+<entry c="thing"><title>FRENCH <i>Gout</i></title>
+<p>the Pox.  <eg>A Blow
+with a French Faggot stick</eg>, when the
+Nose is fallen by the Pox.</p></entry>
+
+<entry c="adj"><title>FRENCHIFIED</title>
+<p>clapt or Poxt.</p></entry>
+
+<entry c="person"><title>FRIGOT <i>well rigged</i></title>
+<p>a Woman well
+drest and genteel.</p></entry>
+
+<entry c="person,bawd"><title>FROE</title>
+<p>for <i>Vrowe</i>, (<i>Dutch</i>) a Wife,
+Mistress, or Whore, <eg>Brush to your Froe
+<interj>(or <i>Blos</i>)</interj> and wheedle for Crap</eg>, whip
+to your Mistress, and speak her fair
+to give, or lend you some Money.</p></entry>
+
+<entry c="person"><title>FROG-<i>Landers</i></title>
+<p>Dutchmen.</p></entry>
+
+<entry c="punishment,adj"><title>FRUMMAGEMM'D</title>
+<p>choaked, strangled, or hanged.</p></entry>
+
+<entry c="thing"><title>FRUMP</title>
+<p>a dry Bob, or Jest.</p></entry>
+
+<entry c="drink"><title>FUDDLE</title>
+<p>Drink.  <eg>This is rum Fuddle</eg>,
+this is excellent Tipple.</p></entry>
+
+<entry c="drink,person"><title>FUDDLE-<i>Cap</i></title>
+<p>a Drunkard.</p></entry>
+
+<entry c="crime" sortas="FUN 01"><title>FUN</title>
+<p>a Cheat, or slippery Trick;
+<eg>What do you fun me?</eg> Do you think to
+sharp or trick me?  <eg>He put the fun upon
+the Cull</eg>, he sharped the Fellow.</p></entry>
+
+<entry c="thing" sortas="FUN 01"><title>FUN</title>
+<p>is also used for the Backside;
+as, <eg>I'll kick your Fun</eg>, <i>i. e.</i> I'll kick your
+Breech.  Likewise for Game of Diversion;
+as <eg>We had rare Fun with him</eg>.</p></entry>
+
+<entry c="thing"><title>FUNK</title>
+<p>Tobacco Smoak.</p></entry>
+
+<entry c="person"><title>FUR-<i>Men</i></title>
+<p>Aldermen.</p></entry>
+
+<entry c="person"><title>FUSSOCKS</title>
+<p>as <eg>A meer Fussocks</eg>, a lazy
+fat wench.  <eg>A fat Fussocks</eg>, a fat fulsom,
+strapping Woman.</p></entry>
+
+<!--* col *-->
+
+<entry c="person"><title>FUSTILUGGS</title>
+<p>a fulsom, beastly,
+nasty Woman.</p></entry>
+
+</letter>
+
+<letter name="g" pagesize="big"><title>G</title>
+
+<entry c="crime"><title>GAG</title>
+<p>to put iron pins into the
+Mouths of the Robbed, to hinder
+them from crying out.</p></entry>
+
+<entry c="thing"><title>GAGE</title>
+<p>a Pot or Pipe.  <eg>Tip me a Gage</eg>,
+give me a Pot or Pipe.</p></entry>
+
+<entry c="person,bawd"><title>GAME</title>
+<p>Bubbles drawn in to be
+cheated; also at a Bawdy house, lewd
+Women.  <eg>Have ye any Game Mother</eg>?
+Have ye any Whores, Mistress bawd.</p></entry>
+
+<entry c="thing"><title>GAN</title>
+<p>a Mouth.</p></entry>
+
+<entry c="thing"><title>GANS</title>
+<p>the Lips.</p></entry>
+
+<entry c="rogue"><title>GANG</title>
+<p>an ill Knot or Crew of
+Thieves, Pick-pockets or Miscreants.</p></entry>
+
+<entry c="thing"><title>GAOL&stress;ERS-<i>Coach</i></title>
+<p>a Hurdle.</p></entry>
+
+<entry c="money"><title>GARNISH-<i>Money</i></title>
+<p>what is customarily
+spent among the Prisoners at first
+coming in.</p></entry>
+
+<entry c="v"><title>GEE</title>
+<p>as <eg>It won't Gee</eg>, it won't hit,
+or go.</p></entry>
+
+<entry c="money"><title>GELT</title>
+<title>or <i>Gelt</i> [sic]</title>
+<p>Money.</p></entry>
+
+<entry c="person"><title>GENTRY-<i>Cove</i></title>
+<p>a Gentleman.</p></entry>
+
+<entry c="place"><title>GENTRY-<i>Cove-Ken</i></title>
+<p>a Nobleman's
+or Gentleman's House.</p></entry>
+
+<entry c="person"><title>GENTRY-<i>Mort</i></title>
+<p>a Gentlewoman.</p></entry>
+
+<entry c="money"><title>GEORGE</title>
+<p>a Half-Crown piece.</p></entry>
+
+<entry c="thing"><title>GIG</title>
+<p>a Nose; also a Woman's Privities.
+<eg>Snichel the Gig</eg>, fillip the Fellow
+on the Nose.  <eg>A young Gig</eg>, a wanton
+Lass.</p></entry>
+
+<entry c="thing"><title>GIGGER</title>
+<p>a Door, <eg>Dub the Gigger,
+that we may ravage the Ken</eg>, i. e. Open
+the Door with the Pick-lock, that we
+go in and rob the House.</p></entry>
+
+<entry c="bawd"><title>GIG&stress;GLERS</title>
+<p>wanton Women.</p></entry>
+
+<entry c="drink,person"><title>GILL</title>
+<p>a Quartern (of Brandy, Wine
+&c;) also a homely Woman.</p></entry>
+
+<entry c="person,bawd"><title>GILL-FLURT</title>
+<p>a proud Minks; also
+a Slut or light Housewife.</p></entry>
+
+<entry c="rogue"><title>GILT</title>
+<title>or <i>Rum dubber</i></title>
+<p>a Picklock, so
+called from <i>Gilt</i>, or <i>Key</i>; may of them
+are so expert, that from a Church-Door,
+to the smallest Cabinet or Trunk
+they will find means to open it.  They
+generally pretending Business of Secrecy,
+covet to go up Stairs with their
+Company, in a Publick-House or Tavern,
+and then prying about, open any
+Door, Trunk or Cabinet that they
+think will afford them Booty, and so
+march off.</p></entry>
+
+<entry c="person"><title>GIMCRACK</title>
+<p>a spruce Wench.</p></entry>
+
+<entry c="money"><title>GINGER-<i>Bread</i></title>
+<p>Money.</p></entry>
+
+<entry c="adj"><title>GINGERLY</title>
+<p>gently, soft, easily.</p></entry>
+
+<entry c="thing"><title>GINGUMBOBS</title>
+<p>Toys or Baubles.</p></entry>
+
+<entry c="thing"><title>GINNY</title>
+<p>an Instrument to lift up a
+Grate, the better to steal what is in the
+Window.</p></entry>
+
+<!--* page 14 *-->
+
+<entry c="v"><title><i>To</i> GLAVER</title>
+<p>to fawn and flatter.</p></entry>
+
+<entry c="thing"><title>GLAZE</title>
+<p>a Window.</p></entry>
+
+<entry c="rogue"><title>GLAZIER</title>
+<p>one that creeps in at
+Casements, or unrips Glass-Windows
+to filch and steal.</p></entry>
+
+<entry c="thing"><title>GLAZIERS</title>
+<p>Eyes.  <eg>The Cove has
+rum Glaziers</eg>.</p></entry>
+
+<entry c="adj"><title>GLIB</title>
+<p>smooth, without a Rub.</p></entry>
+
+<entry c="thing,punishment"><title>GLIM</title>
+<p>a Dark-Lanthorn used in robbing
+Houses; also to burn in the Hand
+as <eg>if the Cull was Glimmed, he'll gang to
+the Nub</eg>; i.e. if the Fellow has been
+burnt in the Hand, he'll be hanged
+now.</p></entry>
+
+<entry c="punishment"><title>GLIMFENDERS</title>
+<p>Andirons.  <eg>Rum
+Glimfenders</eg>, silver Andirons.</p></entry>
+
+<entry c="adj"><title>GLIMFLASHY</title>
+<p>angry, or in a Passion.
+<eg>The Cull is glimflashy</eg>, the Fellow is in
+a Heat.</p></entry>
+
+<entry c="person"><title>GLIMJACK</title>
+<p>a Link-boy.</p></entry>
+
+<entry c="thing"><title>GLIMMER</title>
+<p>Fire.</p></entry>
+
+<entry c="rogue"><title>GLIMMERER</title>
+<p>such as with sham
+Licences, pretend to Losses by Fire
+&c;</p></entry>
+
+<entry c="thing"><title>GLIMSTICK</title>
+<p>a Candle-stick.  <eg>Rum
+Glimsticks</eg>, Silver Candlesticks.  <eg>Queer
+Glimsticks</eg>, Brass, Pewter or Iron Candlesticks.</p></entry>
+
+<entry c="rogue"><title>GOADS</title>
+<p>those that wheedle in Chapmen
+for Horse-coursers.</p></entry>
+
+<entry c="rogue"><title>GOAT</title>
+<p>a Letcher, or very lascivious
+Person.</p></entry>
+
+<entry c="adj"><title>GOATISH</title>
+<p>letcherous, wanton, lustfull.</p></entry>
+
+<entry c="thing,person"><title>GOB</title>
+<p>the Mouth; also a Bit or
+Morsel; hence <i>Gobbets</i>, now in use for
+Bits; <eg>Gift of the Gob</eg>, a wide, open
+Mouth; also a good Songster, or Singing
+Master.</p></entry>
+
+<entry c="thing"><title>GOBBLER</title>
+<p>a Turkey-Cock.</p></entry>
+
+<entry c="crime"><title>GOING <i>upon the Dub</i></title>
+<p>Breaking a
+House with Picklocks.</p></entry>
+
+<entry c="rogue"><title>GOLD-<i>Droppers</i></title>
+<p>Sweetners, Cheats,
+Sharpers.</p></entry>
+
+<entry c="person"><title>GOLD-<i>Finch</i></title>
+<p>he that has often a
+Purse of Gold in his Fob.</p></entry>
+
+<entry c="rogue"><title>GOLD-<i>Finders</i></title>
+<p>Emptiers of Jakes or
+Houses of Office.</p></entry>
+
+<entry c="person"><title>GOOD <i>Fellow</i></title>
+<p>a Pot Companion or
+Friend of the Bottle.</p></entry>
+
+<entry c="thing"><title>GOOSE</title>
+<title>or <i>Goose cap</i></title>
+<p>a Fool.  <eg>A
+Taylors Goose roasted</eg>, a Red-hot
+smoothing Iron, to close the seams.
+<eg>Hot and heavy like a Taylors Goose</eg>. applied
+to a passionate Coxcomb.</p></entry>
+
+<entry c="money"><title>GOREE</title>
+<p>Money but chiefly Gold.</p></entry>
+
+<entry c="adj"><title>GRAFTED</title>
+<p>made a Cuckold of.</p></entry>
+
+<entry c="thing"><title>GRANNAM</title>
+<p>Corn.</p></entry>
+
+<entry c="person"><title>GREEN <i>Bag</i></title>
+<p>a Lawyer.</p></entry>
+
+<entry c="v"><title>GREEN-<i>Gown</i></title>
+<p>a throwing of young
+Lasses on the Grass, and kissing them.</p></entry>
+
+<entry c="person"><title>GREEN <i>Head</i></title>
+<p>a very raw Novice,
+<!--* col *-->
+or unexperienced Fellow.</p></entry>
+
+<entry c="money,person"><title>GRIG</title>
+<p>a Farthing; <eg>A merry Grig</eg>, a
+merry Fellow.</p></entry>
+
+<entry c="thing"><title>GRINDERS</title>
+<p>Teeth.</p></entry>
+
+<entry c="person"><title>GROPERS</title>
+<p>blind Men.</p></entry>
+
+<entry c="thing"><title>GROUND-<i>Sweat</i></title>
+<p>a Grave.</p></entry>
+
+<entry c="v"><title><i>To</i> GRUB</title>
+<p>to eat, to dine, &c;</p></entry>
+
+<entry c="thing"><title>GRUB</title>
+<p>Victuals.</p></entry>
+
+<entry c="thing"><title>GRUB <i>street-News</i></title>
+<p>false, forg'd News.</p></entry>
+
+<entry c="thing"><title>GRUMBLING <i>of the Gizzard</i></title>
+<p>murmuring, muttering, repining.</p></entry>
+
+<entry c="thing"><title>GRUNTER</title>
+<p>a sucking Pig.</p></entry>
+
+<entry c="thing"><title>GRUNTING-<i>Cheat</i></title>
+<p>a Pig.</p></entry>
+
+<entry c="thing"><title>GRUNTING-<i>Peck</i></title>
+<p>Pork.</p></entry>
+
+<entry c="rogue"><title>GULL</title>
+<p>a Cheat.</p></entry>
+
+<entry c="v"><title>GULLED</title>
+<p>cheated, rooked, sharped.</p></entry>
+
+<entry c="rogue"><title>GULL-<i>Gropers</i></title>
+<p>a By-stander that
+lends Money to the Gamesters.</p></entry>
+
+<entry c="drink"><title>GUN</title>
+<p>as <eg>He's in the Gun</eg>; he's in Liquor.</p></entry>
+
+<entry c="thing"><title><i>A</i> GUN</title>
+<p>a Lie.</p></entry>
+
+<entry c="person"><title>GUNDIGUTS</title>
+<p>a fat, pursy Fellow.</p></entry>
+
+<entry c="person"><title>GUN-<i>Powder</i></title>
+<p>an old Woman.</p></entry>
+
+<entry c="adj"><title>GUT-<i>foundered</i></title>
+<p>exceeding hungry.</p></entry>
+
+<entry c="thing"><title>GUTLING</title>
+<p>eating much.</p></entry>
+
+<entry c="person"><title>GUTS</title>
+<p>a very fat, gross Person.</p></entry>
+
+<entry c="thing"><title>GUTTER-<i>Lane</i></title>
+<p>the Throat.</p></entry>
+
+<entry c="crime"><title>GUTTING <i>an House</i></title>
+<p>rifling it, clearing it.</p></entry>
+
+<entry c="v"><title>GUTTING <i>an Oyster</i></title>
+<p>eating it.</p></entry>
+
+<entry c="drink"><title>GUZZLE</title>
+<p>Drink.</p></entry>
+
+<entry c="v,drink"><title>GUZZLING</title>
+<p>drinking much.</p></entry>
+
+<entry c="thing"><title>GYBE</title>
+<title><i>or</i> JYBE</title>
+<p>any Writing or Pass
+sealed.</p></entry>
+
+<entry c="v"><title>GYBING</title>
+<p>jeering or jerking</p></entry>
+
+<entry c="rogue"><title>GYPSIES</title>
+<p>They endeavour to persuade
+the Ignorant, that they derive
+their Origin from the <i>Egyptians</i>, a People
+heretofore very famous for <i>Astronomy</i>,
+<i>Natural Magick</i>, the art of <i>Divination</i>,
+&c; and therefore are great Pretenders
+to <i>Fortune-telling</i>.  To colour
+their Impostures, they artificially discolour
+their Faces, and rove up and
+down the Country in a Tatterdemalion
+Habit, deluding the ignorant Vulgar,
+and often stealing from them what is
+not too hot for their Fingers, or too
+heavy to carry off.</p>
+<p>It is the Custom of these Wretches
+to swear all that are admitted into their
+Fraternity, by a Form and Articles
+annexed into it, administred by the Principal
+<i>Maunder</i> or <i>Roguish Strowler</i>, and
+which they generally observe inviolably.
+The Manner of admitting a
+new Member, together with the said
+Oath and Articles, are as follows.</p>
+<p>The Name of the Person is first
+demanded, and a Nick-name is then given
+him in its stead, by which he is ever
+after called, and in Time, his other
+<!--* page 15 *-->
+Name is quite forgotten.  Then standing
+up in the middle of the Fraternity,
+and directing his Face to the <i>Dimber-Damber</i>,
+or Prince of the Gang, he
+swears in this Manner, as is dictated to
+him by one of the most experienced,</p>
+<blockquote>
+<p>I <i>Crank-Cuffin</i> do swear to be a
+<i>True Brother</i>, and will in all Things,
+obey the Commands of the great
+<i>Tawny Prince</i>, and keep his <i>Councel</i>,
+and not divulge the Secrets of my
+Brethren.</p>
+<p>I will never leave nor forsake this
+Company, but observe and keep all
+the Times of Appointments, either
+by Day or by Night, in any Place
+whatsoever.</p>
+<p>I will not teach any one to cant;
+nor will I disclose ought of our
+Mysteries to them, although they
+flog me to death.</p>
+<p>I will take my Prince's Part against
+all that shall oppose him, or any of
+us, according to the utmost of my
+Ability; nor will I suffer him, or
+any belonging to us, to be abused by
+any strange, <i>Abrams</i>, <i>Rufflers</i>, <i>Hookers</i>,
+<i>Palliards</i>, <i>Swadlers</i>, <i>Irish-Toyls</i>,
+<i>Swig-men</i>, <i>Whip-Jacks</i>, <i>Jark-men</i>,
+<i>Bawdy-Baskets</i>, <i>Dommerars</i>, <i>Clapperdogeons</i>,
+<i>Patricoes</i> <i>or</i> <i>Curtals</i>, but will
+defend him or them as much as I can
+against all other <i>Outlyers</i> whatever.</p>
+<p>I will not conceal ought I win out
+of <i>Libkins</i>, or from the <i>Ruffmans</i>; but
+will preserve it for the Use of the
+Company.</p>
+<p>Lastly, I will cleave to my <i>Doxy
+Wap</i> stiffly, and will bring her Duds,
+Margery, Praters, Goblet, Grunting-cheats,
+or Tibs of the Buttery, or
+anything else I can come at, as <i>Winnings</i>
+for her <i>Wappings</i>.</p>
+<p>The <i>Canters</i> have, it seems a Tradition,
+that from the Three first articles
+of this Oath, the first Founders
+of a certain boastful, worshipful Fraternity,
+who pretend to derive there
+Origin from the earliest Times, borrowed
+of them, both the Hint and form
+of their Establishment.  And that their
+pretended Derivation from the first
+<i>Adam</i>, is a Forgery, it being only from
+the first <i>Adam Tiler</i>. See ADAM TILER.</p>
+<p>At the Admission of a new Brother,
+a general Stock is raised for <i>Booze</i>, or
+Drink, to make themselves merry on
+the Occasion.   As for <i>Peckage</i>, or Eatables,
+they can procure it without
+Money; for while some are sent to
+break the <i>Ruffmans</i>, or Woods and
+Bushes, for Firing, others are detached
+<!--* col *-->
+to filch Geese, Chickens, Hens, Ducks
+or Mallards, and Pigs.  Their <i>Morts</i>
+are their Butchers, who presently make
+bloody Work with what living Things
+are brought them, and having made
+Holes in the Ground, under some remote
+Hedge in an obscure Place, they
+make a fire, and broil or boil their
+Food, and when 'tis enough, fall to
+work, Tooth and Nail, and having
+eaten more like Beasts than Men, they
+drink more like Swine than human
+Creatures, entertaining one another
+all the Time with Songs in the <i>Canting</i>
+Dialect.</p>
+<p>As they live, so they lie together promiscuously,
+and know not how to claim
+a Property either in their Goods or
+Children, and this general Interest ties
+them more firmly together, than if
+all their Rags were twisted into Ropes
+to bind them indissolubly from a Separation;
+which detestable Union is farther
+consolidated by the above Oath.</p>
+<p>They strowl up and down all Summertime
+in Droves, and dextrously pick
+Pockets, while they are telling of Fortunes;
+and the Money, Rings, Silver-Thimbles,
+&c; which they get, are
+instantly conveyed from one Hand, to
+another, till the remotest Person of the
+Gang, who is not suspected, because
+they come not near the Person robbed,
+gets Possession of it, so that in the strictest
+Search, it is almost impossible to
+recover it, while the Wretches with
+Imprecations, Oaths and Protestations,
+disclaim the Thievery.  That by
+which they are said to get the most
+Money, is, when young Gentlewomen
+of good Families and Reputations have
+happenned to be with Child before
+Marriage, a round Sum is often bestowed
+among the <i>Gypsies</i>, for some one
+<i>Mort</i> to take the Child; and as that
+is never heard of more by the true
+Mother and Family, so the Disgrace
+is kept concealed from the World, and
+if the Child lives, it never known its
+Parents.</p></blockquote></entry>
+
+
+</letter>
+
+<letter name="h"><title>H</title>
+<entry c="person"><title>HABERDASHER <i>of Nouns and Pronouns</i></title>
+<p>a Schoolmaster or Usher.</p></entry>
+
+<entry c="v"><title>HACK, <i>and Hue</i></title>
+<p>to cut in pieces.</p></entry>
+
+<entry c="person"><title>HACKS</title>
+<title>or <i>Hackneys</i></title>
+<p>Hirelings.</p></entry>
+
+<entry c="person"><title>HACKUM</title>
+<p>a fighting Fellow.</p></entry>
+
+<entry c="adj"><title>HADDUMS</title>
+<p><eg>The Shark has been at
+Haddams</eg>; He is clapt or poxed.</p></entry>
+
+<entry c="money"><title>HALFBORD</title>
+<p>Six-Pence.</p></entry>
+
+<!--* page 16 *-->
+<entry c="money"><title>HALF <i>a Hog</i></title>
+<p>Six-Pence.</p></entry>
+
+<entry c="money"><title>HALF <i>an Ounce</i></title>
+<p>Half a Crown.</p></entry>
+
+<entry c="drink"><title>HALF <i>Seas over</i></title>
+<p>almost drunk.</p></entry>
+
+<entry c="thing"><title>HAMS</title>
+<p>Breeches.</p></entry>
+
+<entry c="person"><title>HAMLET</title>
+<p>a High Constable.</p></entry>
+
+<entry c="thing"><title>HANDY-<i>Blows</i></title>
+<p>Fisty-cuffs.</p></entry>
+
+<entry c="v"><title>HANG <i>it up</i></title>
+<p>speaking of the Reckoning
+at a <i>Bowsing-Ken</i> score it up.</p></entry>
+
+<entry c="thing"><title>HANK</title>
+<p><eg>He has a Hank upon him</eg>; He
+has an Advantage, or will make him do
+what he pleases.</p></entry>
+
+<entry c="person"><title>HANKTELO</title>
+<p>a silly Fellow, a meer
+Codshead.</p></entry>
+
+<entry c="person"><title>HANS-<i>en-Kelder</i></title>
+<p>Jack in the Box,
+Child in the Womb.</p></entry>
+
+<entry c="drink"><title>HARE</title>
+<p>as <eg>he has swallowd a Hare</eg>,
+he is very drunk.</p></entry>
+
+<entry c="thing"><title>HARKING</title>
+<p>whispering on one side
+to borrow Money.</p></entry>
+
+<entry c="person"><title>HARMAN</title>
+<p>a Constable.</p></entry>
+
+<entry c="punishment"><title>HARMANS</title>
+<p>the Stocks.</p></entry>
+
+<entry c="person"><title>HARMANBECK</title>
+<p>a Beadle.</p></entry>
+
+<entry c="bawd"><title>HARRIDAN</title>
+<p>one that is half a
+Whore, half a Bawd, also a notorious
+Shrew, or noisy old Woman.</p></entry>
+
+<entry c="drink"><title>HARTFORDSHIRE <i>Kindness</i></title>
+<p>drinking
+to the same Man again.</p></entry>
+
+<entry c="adj"><title>HATCHET <i>Faced</i></title>
+<p>hard favoured,
+homely.</p></entry>
+
+<entry c="thing"><title>HATCHES</title>
+<p>as, <eg>Under the Hatches</eg>, in
+Trouble or Prison.</p></entry>
+
+<entry c="punishment"><title><i>To</i> HAZLE <i>Geld</i></title>
+<p>to beat any one
+with a Hazle Stick or Plant.</p></entry>
+
+<entry c="rogue"><title>HEAD <i>Cully of the Pass</i></title>
+<title>or <i>Passage Bank</i></title>
+<p>the Top Tilter of that Gang,
+throughout the whole Army, who demands
+and receives Contribution from
+all the Pass-Banks in the Camp.</p></entry>
+
+<entry c="thing"><title>HEARING-<i>Cheats</i></title>
+<p>Ears.</p></entry>
+
+<entry c="money"><title>HEARTS-<i>Ease</i></title>
+<p>a Twenty Shilling
+Piece.</p></entry>
+
+<entry c="person"><title>HEATHEN <i>Philosopher</i></title>
+<p>a sorry poor
+tattered Fellow, whose Breech may
+be seen through his Pocket-holes.</p></entry>
+
+<entry c="crime"><title><i>To</i> HEAVE</title>
+<p>to rob.</p></entry>
+
+<entry c="crime"><title>HEAVE <i>a Cough</i></title>
+<p>to rob a House.</p></entry>
+
+<entry c="thing"><title>HEAVER</title>
+<p>the Breast.</p></entry>
+
+<entry c="person"><title>HECTOR</title>
+<p>a vapouring, swaggering
+Coward.</p></entry>
+
+<entry c="v"><title><i>To</i> HEDGE</title>
+<p>to secure a desperate Bet,
+Wager or Debt.  <eg>By Hedge or by stile</eg>,
+by Hook or by Crook.</p></entry>
+
+<entry c="rogue"><title>HEDGE-<i>Bird</i></title>
+<p>a scoundrel or sorry
+Fellow.</p></entry>
+
+<entry c="rogue"><title>HEDGE-<i>Creeper</i></title>
+<p>a Robber of Hedges.</p></entry>
+
+<entry c="rogue"><title>HEDGE-<i>Priest</i></title>
+<p>a sorry hackney Underling,
+an Vagabond.  See <i>Patrico</i>.</p></entry>
+
+<entry c="place"><title>HEDGE-<i>Tavern</i></title>
+<title>or <i>Alehouse</i></title>
+<p>a jilting,
+sharping Tavern, or blind Ale-house.</p></entry>
+
+<entry c="place"><title>HELL</title>
+<p>the Place where the Taylors
+lay up their Cabbage, or Remnants.</p></entry>
+
+<entry c="rogue"><title>HELL-<i>born-babe</i></title>
+<p>a lewd, graceless,
+<!--* col *-->
+notorious Youth.</p></entry>
+
+<entry c="bawd"><title>HELL-<i>Cat</i></title>
+<p>a very lewd Woman.</p></entry>
+
+<entry c="person"><title>HELL-<i>Driver</i></title>
+<p>a Coachman.</p></entry>
+
+<entry c="rogue"><title>HELL-<i>Hound</i></title>
+<p>a profligate, lewd
+Fellow.</p></entry>
+
+<entry c="person"><title>HEMPEN-<i>Widow</i></title>
+<p>one whose Husband
+was hanged.</p></entry>
+
+<entry c="person"><title>HEN-<i>peckt-Frigot</i></title>
+<p>whose Commander
+and Officers are absolutely swayed
+by their Wives.</p></entry>
+
+<entry c="person"><title>HENPECT-<i>Husband</i></title>
+<p>whose Wife
+wears the Breeches.</p></entry>
+
+<entry c="person"><title>HICK</title>
+<p>any Person from whom a
+Booty is taken, a silly Country Fellow;
+a Booby.</p></entry>
+
+<entry c="bawd,person"><title>HIGH-<i>Flyers</i></title>
+<p>impudent, forward,
+loose, light Women, also bold Adventurers.</p></entry>
+
+<entry c="rogue"><title>HIGHJINKS</title>
+<p>a Play at Dice who
+Drinks.</p></entry>
+
+<entry c="rogue"><title>HIGH-PADS</title>
+<title><i>Hightway-men</i> or <i>Bully-Ruffians</i></title>
+<p>an Order of Villains, and the
+boldest of all others.  Before they commence,
+they furnish themselves, with
+good Horses, Swords, Pistols, &c; and
+sometimes singly, but mostly in Company,
+commit their execrable Robberies.
+They have a Vizor-Mask, and two or
+three Perukes of different Colours and
+Make, the better to conceal themselves.
+When they meet a Prize upon the
+Road, they have a Watch-Word,
+among them, which is no sooner pronounced,
+but every one falls on.  It is
+usually the Rule among them, that the
+strongest and bold seize first; the
+Weaker generally bid <i>stand</i>, and fall
+in afterwards as Occasion requires.  The
+Instructions given them are, to catch
+the Bridle in the Left-Hand, and to
+have the Sword or Pistol in the Right,
+and, if Opposition be made, or they
+are likely to be overpowered to kill
+as fast as they can, and then, either
+with Booty or without, to make off
+with all Expedition; and if they are
+pursued by an <i>Hue or Cry</i>, to conceal
+themselves in some By place, and let
+it pass by them.</p></entry>
+
+<entry c="person"><title>HIGH-<i>Shoon</i></title>
+<title>or <i>Clouted-Shoon</i></title>
+<p>a
+Country Clown.</p></entry>
+
+<entry c="person"><title>A HIGHTE-TITY</title>
+<p>a Romp or rude Girl.</p></entry>
+
+<entry c="money"><title>HIGH <i>Tide</i></title>
+<p>when the Pocket is full of Money.</p></entry>
+
+<entry c="person"><title>HOB</title>
+<p>a plain Country Fellow or Clown.</p></entry>
+
+<entry c="person"><title>HOBINAL</title>
+<p>the same [[as <i>Hob</i>]].</p></entry>
+
+<entry c="person"><title>HOBBY</title>
+<p>as Sir <eg>Posthumus Hobby</eg>, one
+that draws on his Breeches with a
+Shoeing-horn; a Fellow that is nice
+and whimsical in the Set of his Cloaths.</p></entry>
+
+<entry c="person"><title>HOB <i>Nail</i></title>
+<p>a <i>High-shoon</i> or Country
+Clown.</p></entry>
+
+<!--* page 17 *-->
+
+<entry c="drink"><title>HOCUS</title>
+<p>disguised in Liquor; drunk.</p></entry>
+
+<entry c="thing"><title>HODGE-<i>Podge</i></title>
+<p>see <i>Hotch-Potch</i>.</p></entry>
+
+<entry c="money"><title>HOG</title>
+<p>a Shilling; <eg>You Darkman
+Budge, will you Fence your Hog at the
+next Boozing Ken?</eg> you House-Creeper,
+will you spend your Shilling at the
+next Ale-house.</p></entry>
+
+<entry c="rogue"><title>HOG-<i>Grubber</i></title>
+<p>a close-fisted, narrow
+soul'd sneaking Fellow.</p></entry>
+
+<entry c="phrase"><title>HOLD <i>his Nose to the Grind-stone</i></title>
+<p>to
+keep him under, or tie him Neck and
+Heels into the Bargain.</p></entry>
+
+<entry c="person,thing"><title>HOLIDAY-<i>Bowler</i></title>
+<p>a very bad Bowler.
+<eg>Blind Man's Holiday</eg>, when it is Night.</p></entry>
+
+<entry c="thing"><title>HONEY-<i>Moon</i></title>
+<p>the first Month of Marriage.</p></entry>
+
+<entry c="thing"><title>HOOD-<i>wink'd</i></title>
+<p>Blind-folded or Bluffed.</p></entry>
+
+<entry c="v"><title><i>To</i> HOOF <i>it</i></title>
+<title>or <i>beat it on the Hoof</i></title>
+<p>to walk on Foot.</p></entry>
+
+<entry c="rogue"><title>HOOKERS</title>
+<p>See <i>Anglers</i>.</p></entry>
+
+<entry c="adj"><title>HOOKT</title>
+<p>over reached, snapt,
+trikt.</p></entry>
+
+<entry c="person"><title>HOP-<i>Merchant</i></title>
+<p>a Dancing-master.</p></entry>
+
+<entry c="adj"><title>HORN <i>mad</i></title>
+<p>stark staring mad because
+Cuckolded.</p></entry>
+
+<entry c="phrase,drink"><title><i>It revives the</i> COCKLES <i>of my Heart</i></title>
+<p>said of agreeable News, or a Cup of
+Comfort, Wine or Cordial Water.</p></entry>
+
+<entry c="thing"><title><i>In</i> HUCKSTER'S <i>Hands</i></title>
+<p>at a desperate
+Pass, or Condition, or in a fair
+way to be lost.</p></entry>
+
+<entry c="punishment"><title>HUED</title>
+<p>severely lash'd or flogg'd.
+<eg>The Cove was Hued in the Naskin</eg>, The
+Rogue was severely lash'd in <i>Bridewell</i>.</p></entry>
+
+<entry c="rogue"><title><i>A</i> HUFF</title>
+<p>a Bullying Fellow.</p></entry>
+
+<entry c="person"><title>HULVER <i>head</i></title>
+<p>a silly, foolish Fellow.</p></entry>
+
+<entry c="thing"><title>HUM-<i>Box</i></title>
+<p>a Pulpit.</p></entry>
+
+<entry c="drink"><title>HUM-<i>Cap</i></title>
+<p>old, mellow, and very
+strong Beer.</p></entry>
+
+<entry c="person"><title>HUM-<i>Drums</i></title>
+<title>or <i>Hums</i></title>
+<p>a Society of
+Gentlemen, who meet near the <i>Charter-House</i>,
+or at the <i>King's Head</i> in St.
+<i>John's Street</i>.  Less of Mystery, and
+more of Pleasantry than the <i>Free Masons</i>.</p></entry>
+
+<entry c="drink"><title>HUMMING <i>Liquor</i></title>
+<p>Double Ale,
+Stout, Pharaoh.</p></entry>
+
+<entry c="thing"><title>HUMMER</title>
+<p>a great Lye, a Rapper.</p></entry>
+
+<entry c="thing"><title>HUMMUMS</title>
+<p>a Bagnio.</p></entry>
+
+<entry c="drink"><title>HUMPTEY-<i>Dumptey</i></title>
+<p>Ale boil'd with
+Brandy.</p></entry>
+
+<entry c="person"><title>HUMS</title>
+<p>Persons at Church; as, <eg>There
+is a great Number of Hums in the Autem</eg>;
+i. e. There is a great Congregation.</p></entry>
+
+<entry c="v"><title>HUNTING</title>
+<p>decoying, or drawing
+others into Play.</p></entry>
+
+<entry c="crime"><title>HUSH'D</title>
+<p>murder'd, &c;</p></entry>
+
+<entry c="crime"><title>HUSH <i>Money</i></title>
+<p>Money given to <i>hush
+up</i>, or conceal a Robbery or Theft, or
+<!--* col *-->
+to take off an Evidence from appearing
+against a Criminal, &c;</p></entry>
+
+<entry c="money"><title>HUSKY-<i>Lour</i></title>
+<p>a Jobs, or Guinea.</p></entry>
+
+</letter>
+
+<letter name="ij"><title>I, J</title>
+<entry c="money"><title>JACK</title>
+<p>a Farthing; <eg>He wou'd not
+tip me a Jack</eg>, Not a Farthing
+wou'd he give me.</p></entry>
+
+<entry c="place"><title>JACK-ADAMS Parish</title>
+<p><i>Clerkenwell</i>.</p></entry>
+
+<entry c="rogue"><title>JACK <i>in a Box</i></title>
+<p>a Sharper, or Cheat.</p></entry>
+
+<entry c="rogue"><title>JACKMEN</title>
+<p>See <i>Jarkmen</i></p></entry>
+
+<entry c="person"><title>JACK-<i>sprat</i></title>
+<p>a Dwarf, or very little
+Fellow, a Hop on my-thumb.</p></entry>
+
+<entry c="person"><title>JACK <i>at a Pinch</i></title>
+<p>a poor Hackney
+Parson.</p></entry>
+
+<entry c="thing"><title>JACOBITES</title>
+<p>Sham or Collar Shirts.</p></entry>
+
+<entry c="thing"><title>JAGUE</title>
+<p>a Ditch.</p></entry>
+
+<entry c="rogue"><title>JANIZARIES</title>
+<p>the Mob, sometimes
+so called, and Bailiffs, Serjeants-Followers,
+yeomen, Setters, and any
+lewd Gang depending upon others.</p></entry>
+
+<entry c="thing"><title>JARKE</title>
+<p>a Seal.</p></entry>
+
+<entry c="rogue"><title>JARKE-MEN</title>
+<p>Those who make
+Counterfeit Licences and Passes, and
+are well paid by the other Beggars for
+their Pains.</p></entry>
+
+<entry c="person"><title>JASON'<i>s Fleece</i></title>
+<p>a Citizen cheated of
+his Gold.</p></entry>
+
+<entry c="rogue"><title>JAYL <i>Birds</i></title>
+<p>Prisoners.</p></entry>
+
+<entry c="thing"><title>JEM</title>
+<p>a Gold Ring; <eg>Rum-Jem</eg>, a
+Diamond one.</p></entry>
+
+<entry c="thing"><title>JENNY</title>
+<p>an Instrument to lift up
+a Grate, and whip any thing out of a
+Shop-window.</p></entry>
+
+<entry c="person"><title>JET</title>
+<p>a Lawyer.</p></entry>
+
+<entry c="person"><title><i>Autem</i> JET</title>
+<p>a Parson.</p></entry>
+
+<entry c="person,rogue"><title>JEW</title>
+<p>any over-reaching Dealer, or
+hard sharp Fellow.  <eg>He treated me like
+a Jew</eg>; He used me very barbarously.</p></entry>
+
+<entry c="person"><title>JEWS</title>
+<p>Brokers behind St. <i>Clement'</i>s
+Church in <i>London</i>, so called by (their
+Brethren) the Taylors.</p></entry>
+
+<entry c="thing"><title>JIG</title>
+<p>a Trick; <eg>A pleasant Jig</eg>, a witty
+arch Trick.</p></entry>
+
+<entry c="person"><title>JILT</title>
+<p>a tricking Woman.</p></entry>
+
+<entry c="v"><title>JILTED</title>
+<p>abused by such a one [[i.e. by a JILT]]; also
+deceived or defeated in one's Expectation,
+expecially in Amours.</p></entry>
+
+<entry c="thing"><title>JINGLE-<i>Boxes</i></title>
+<p>Leathern Jacks tipt
+and hung with Silver Bells, formerly
+in use among Fuddle-caps.</p></entry>
+
+<entry c="person"><title>JINGLERS</title>
+<p>Horse-Coursers frequenting
+Country Fairs.</p></entry>
+
+<entry c="person"><title>JINGLE <i>Brains</i></title>
+<p>a Maggot-pated
+Fellow.</p></entry>
+
+<entry c="money" sortas="JLL"><title>ILL <i>Fortune</i></title>
+<p>a Nine-pence.</p></entry>
+
+<!--* page 18 *-->
+
+<entry c="rogue"><title>IMPOST-TAKER</title>
+<p>one that stands by,
+and lends Money to the Gamester at a
+very high Interest or Premium.</p></entry>
+
+<entry c="v"><title>INCHING-<i>In</i></title>
+<p>Encroaching upon.</p></entry>
+
+<entry c="thing"><title>INLAYED</title>
+<p><eg>Well inlayed</eg>, at Ease in
+his Fortune, or full of Money.</p></entry>
+
+<entry c="money"><title>JOBE</title>
+<p>a Guinea, Twenty Shillings,
+or a Piece.  <eg>Half a Jobe</eg>, Half a Guinea.</p></entry>
+
+<entry c="v,bawd"><title>JOCK</title>
+<title>or <i>Jockum cloy</i></title>
+<p>to copulate
+with a Woman.</p></entry>
+
+<entry c="thing"><title>JUCKUM-<i>Gage</i></title>
+<p>a Chamberpot.  <eg>Tip
+me the Jockum-Gage</eg>, Give or hand me
+the Looking-Glass.  <eg>Rum Jockum-Gage</eg>,
+a Silver Chamber-Pot.</p></entry>
+
+<entry c="thing"><title>JORDAIN</title>
+<p>a great Blow or Staff;
+also a Chamber-Pot.  <eg>I'll tip him a Jordain,
+if I transnear</eg>; I will give him a
+Blow with my Staff, if I get up to him.</p></entry>
+
+<entry c="thing"><title>JOSEPH</title>
+<p>a Cloak or Coat.  <eg>A Rum
+Joseph</eg>, a good Cloak or Coat.  <eg>A Queer
+Joseph</eg>, a coarse ordinary Cloak or
+Coat; also an old or tatter'd One.</p></entry>
+
+<entry c="rogue"><title>IRISH-<i>Toyles</i></title>
+<p>Rogues &c; carrying
+Pins, Points, Laces, and such like
+Wares about, and, under pretence of
+selling them, commit Thefts and Robberies.</p></entry>
+
+<entry c="place"><title>IRON-<i>Doublet</i></title>
+<p>a Prison.</p></entry>
+
+<entry c="place"><title>ITCH-<i>Land</i></title>
+<p><i>Scotland</i>.</p></entry>
+
+<entry c="thing"><title>JUKRUM</title>
+<p>a Licence.</p></entry>
+
+<entry c="place"><title>JUMBLE-<i>Gut-Lane</i></title>
+<p>any very bad or
+rough Road.</p></entry>
+
+<entry c="thing"><title>JUSTICE</title>
+<p><eg>I'll do Justice, Child</eg>; I
+will Peach, or rather Impeach, or
+discover the whole Gang, and so save
+my own Bacon.</p></entry>
+
+</letter>
+
+<letter name="k"><title>K</title>
+<entry c="rogue"><title>KATE</title>
+<p>a Pick-lock. <eg>'Tis a Rum kate</eg>; She is a clever Pick-lock.</p></entry>
+
+<entry c="person"><title>KEEL-<i>Bullies</i></title>
+<p>Lightermen that carry
+coals to and from the Ships, so called
+in Derision.</p></entry>
+
+<entry c="person"><title>KEEPING <i>Cully</i></title>
+<p>one that maintains
+a Mistress, and parts with his Money
+very generously to her.</p></entry>
+
+<entry c="thing"><title>KEFFAL</title>
+<p>a Horse.</p></entry>
+
+<entry c="thing"><title>KELTER</title>
+<p>as, <eg>Out of Kelter</eg>, Out of
+sorts.</p></entry>
+
+<entry c="place"><title>KEN</title>
+<p>a House.  <eg>A bob-Ken</eg>, or <eg>a
+Bowman-ken</eg>, a good or well furnished
+House; also a House that harbours
+Rogues and Thieves.  <eg>Biting the Ken</eg>,
+robbing the House, <eg>'tis a bob Ken, Brush
+upon the Sneak</eg>, i.e., 'Tis a good House,
+go in and tread softly.  <eg>We have bit the
+Ken</eg>, The House is robb'd, or the Business
+is done.</p></entry>
+
+<entry c="rogue"><title>KEN-<i>Miller</i></title>
+<p>a House-breaker, who
+usually, by getting into an empty
+<!--* col *-->
+House, finds Means to enter into the
+Gutters of Houses inhabited, and so
+in at the Windows, &c;</p></entry>
+
+<entry c="money"><title>KICK</title>
+<p>Six-pence: <eg>Two, Three, Four,
+&c; and a Kick</eg>; Two, Three, Four,
+&c; Shillings and Six-pence.</p></entry>
+
+<entry c="v"><title>KICK'D</title>
+<p>gone, fled, departed; as,
+<eg>The Rum Cull kick'd away</eg>, i.e. The
+Rogue made his Escape.</p></entry>
+
+<entry c="thing"><title>KICKS</title>
+<p>Breeches.  <eg>Tip us your Kicks,
+we'll have them as well as your Lour</eg>;
+Pull off your Breeches, for we must
+have them as well as your Money.</p></entry>
+
+<entry c="person"><title>KID</title>
+<p>a Child.</p></entry>
+
+<entry c="rogue"><title>KIDLAYS</title>
+<p>an Order of Rogues, who
+meeting a Youth with a Bundle or
+Parcel of Goods, wheedle him by fair
+Words, and whipping Six-pence into
+his Hand, to step on a short and sham
+Errand, in the mean Time run away
+with the Goods.</p></entry>
+
+<entry c="rogue"><title>KIDNAPPER</title>
+<p>one that decoys or
+spirits (as it is commonly called) Children
+away, and sells them for the
+Plantations.</p></entry>
+
+<entry c="thing"><title>KILKENNY</title>
+<p>an old sorry Frize
+Coat.</p></entry>
+
+<entry c="drink"><title>KILL-<i>Devil</i></title>
+<p>Rum.</p></entry>
+
+<entry c="v,punishment,crime"><title><i>To</i> KIMBAW</title>
+<p>to Trick, Sharp, or
+Cheat; also to Beat severely, or to
+Bully.  <eg>Let's Kimbaw the Cull</eg>, Let's
+beat that Fellow, and get his Money
+(by huffing and bullying) from him.</p></entry>
+
+<entry c="rogue"><title>KIN</title>
+<p>a Thief: <eg>He's one of the Kin,
+let him pike</eg>; said of a Brother Rogue
+whom one of the Gang knows to be a
+Villain, tho' not one of their own
+Crew.</p></entry>
+
+<entry c="person"><title>KINCHIN</title>
+<p>a little Child.</p></entry>
+
+<entry c="rogue"><title>KINCHIN-<i>Coves</i></title>
+<p>little Children whose
+Parents are dead, having been Beggars;
+as also young Lads running from their
+Masters, who are first taught Canting,
+then Thieving.</p></entry>
+
+<entry c="person"><title>KINCHIN <i>Cove</i></title>
+<p>a little Man.</p></entry>
+
+<entry c="person"><title>KINCHIN-<i>Morts</i></title>
+<p>Girls of a Year or
+two old, whom the <i>Morts</i> (their Mothers)
+carry at their Backs in <i>Slates</i>
+(<i>Sheets</i>) and if they have no Children
+of thir own, they borrow or steal
+them from others.</p></entry>
+
+<entry c="rogue"><title>KING <i>of the Gypsies</i></title>
+<p>the Captain,
+Chief, or Ringleader of the Gang, the
+Master of Misrule, otherwise called
+<i>Uprightman</i>.  Vide <i>Gypsies</i>.</p></entry>
+
+<entry c="place"><title>KING<i>'s Head Inn</i></title>
+<title>or <i>the Chequer Inn in Newgate-street</i></title>
+<p>the Prison of <i>Newgate</i>.</p></entry>
+
+<entry c="money"><title>KING<i>'s Pictures</i></title>
+<p>Money.</p></entry>
+
+<entry c="person"><title>KIT</title>
+<p>a Dancing Master.</p></entry>
+
+<entry c="place"><title><i>A</i> KNACK <i>Shop</i></title>
+<p>a Toy-shop,
+freighted with pretty Devices to pick
+Pockets.</p></entry>
+
+<!--* page 19 *-->
+
+<entry c="person"><title>KNAVE <i>in Grain</i></title>
+<p>one of the First
+Rate.</p></entry>
+
+<entry c="rogue"><title>KNIGHT <i>of the Blade</i></title>
+<p>a Hector or
+Bully.</p></entry>
+
+<entry c="rogue"><title>KNIGHT <i>of the Post</i></title>
+<p>a mercenary
+common Swearer, a Prostitute to every
+Cause, an Irish Evidence.</p></entry>
+
+<entry c="rogue"><title>KNIGHT <i>of the Road</i></title>
+<p>the chief
+Highwayman, best mounted and armed,
+the stoutest Fellow among them.</p></entry>
+
+<entry c="thing"><title>KNOB</title>
+<p>the Head or Skull.</p></entry>
+
+<entry c="drink"><title>KNOCK <i>Down</i></title>
+<p>very strong Ale or
+Beer.</p></entry>
+
+<entry c="v"><title><i>To</i> KNOCK <i>off</i></title>
+<p>to give over Thieving.</p></entry>
+
+<entry c="rogue"><title>KNOT</title>
+<p>a Crew of Gang of Villains.</p></entry>
+
+<!--* end of K *-->
+
+</letter>
+
+<letter name="l"><title>L</title>
+<entry c="person"><title>LAC'D <i>Mutton</i></title>
+<p>a Woman</p></entry>
+
+<entry c="punishment"><title>LACING</title>
+<p>beating, drubbing;
+<eg>I'll Lace your Coat, Sirrah!</eg> I will beat
+you soundly!</p></entry>
+
+<entry c="person"><title>LADY</title>
+<p>a very crooked, deformed
+and ill-shapen Woman.</p></entry>
+
+<entry c="bawd"><title>LADY-birds</title>
+<p>light, or lewd Women.</p></entry>
+
+<entry c="thing"><title>LAG</title>
+<p>Water; also last.</p></entry>
+
+<entry c="thing"><title>LAG <i>a-dudds</i></title>
+<p>a Buck of Cloths; as,
+<eg>We'll cloy the Lag of Dudds</eg>: Come, let
+us steal that Buck of Cloths.</p></entry>
+
+<entry c="punishment"><title><i>To</i> LAMBASTE</title>
+<p>to beat soundly.</p></entry>
+
+<entry c="punishment"><title>LAMB-<i>Pye</i></title>
+<p>beating or drubbing.</p></entry>
+
+<entry c="person"><title>LAMB-<i>Skin Men</i></title>
+<p>the Judges of the
+several Courts.</p></entry>
+
+<entry c="rogue"><title>LAND-<i>Lopers</i></title>
+<title>or <i>Land-lubbers</i></title>
+<p>Vagabonds that beg and steal about the
+Country.</p></entry>
+
+<entry c="rogue"><title>LAND <i>Pyrates</i></title>
+<p>Highwaymen or any
+other Robbers.</p></entry>
+
+<entry c="drink"><title>LAND</title>
+<p>as, <eg>How lies the Land?</eg> How
+stands the Reckoning?  <eg>Who has any
+Land in Appleby?</eg> a Question ask'd the
+Man, at whose Door the Glass stands
+long.</p></entry>
+
+<entry c="person"><title>LANSPRESADO</title>
+<p>He that comes into
+Company with but Two-pence in
+his Pocket.</p></entry>
+
+<entry c="person"><title>LANTERN-<i>jaw'd</i></title>
+<p>a very lean, thin-faced Fellow.</p></entry>
+
+<entry c="rogue"><title><i>A Dark</i> LANTHORN</title>
+<p>the Servant
+or Agent that receives the Bribe (at
+Court).</p></entry>
+
+<entry c="thing"><title>LAP</title>
+<p>Pottage, Butter-milk, or Whey.</p></entry>
+
+<entry c="phrase"><title>LARE-<i>Over</i></title>
+<p>said when the true
+Name of the Things must (in Decency)
+be concealed.</p></entry>
+
+<entry c="thing"><title>LATCH</title>
+<p>let in.</p></entry>
+
+<entry c="thing"><title>LAY</title>
+<p>an Enterprize, or Attempt;
+<eg>To be sick of the Lay</eg>, to be tir'd in
+<!--* col *-->
+waiting for an Opportunity to effect
+their Purposes.  Also an Hazard or
+Chance; as, <eg>He stands a quuer Lay</eg>; he
+stands an odd Chance, or is in great
+Danger.</p></entry>
+
+<entry c="money"><title>LAY'D <i>Up in Lavender</i></title>
+<p>pawn'd or
+dipt for present Money.</p></entry>
+
+<entry c="person"><title>LEATHER-<i>Head</i></title>
+<p>a Thick-skill'd,
+heavy-headed Fellow.</p></entry>
+
+<entry c="thing"><title>LEATHERN <i>Convenience</i></title>
+<p>(by the Quakers) a Coach.</p></entry>
+
+<entry c="phrase"><title>LET<i>'s take an Ark and Winns</i></title>
+<p>Let's
+hire a Skuller.</p></entry>
+
+<entry c="phrase"><title>LET<i>'s buy a Brush</i></title>
+<title>or <i>Let's lope</i></title>
+<p>Let us scour off, and make what Shift we
+can to secure our selves from being
+apprehended.</p></entry>
+
+<entry c="person"><title>LEVITE</title>
+<p>a Priest or Parson.</p></entry>
+
+<entry c="bawd"><title><i>To</i> LIB</title>
+<p>to tumble or lie together.</p></entry>
+
+<entry c="place"><title>LIBBEN</title>
+<p>a private Dwelling-House.</p></entry>
+
+<entry c="place"><title>LIBBEGE</title>
+<p>a Bed.</p></entry>
+
+<entry c="place"><title>LIBKIN</title>
+<p>a House to lie in; also a
+Lodging.</p></entry>
+
+<entry c="adj"><title>LICKT</title>
+<p>as Women's Faces with a
+Wash.</p></entry>
+
+<entry c="thing"><title>LIFTER</title>
+<p>a Crutch.</p></entry>
+
+<entry c="bawd"><title>LIG</title>
+<p>See <i>Lib</i>.</p></entry>
+
+<entry c="adj"><title>LIGHT <i>Finger'd</i></title>
+<p>Thievish.</p></entry>
+
+<entry c="thing"><title>LIGHT-<i>Mans</i></title>
+<p>the Day or Day-break.</p></entry>
+
+<entry c="bawd,rogue"><title>LIGHT-<i>Frigate</i></title>
+<p>a Whore; also a
+Cruiser.</p></entry>
+
+<entry c="person"><title>LILLY <i>White</i></title>
+<p>a Chimney-Sweeper.</p></entry>
+
+<entry c="drink"><title>LINE <i>of the old Author</i></title>
+<p>a Dram of
+Brandy.</p></entry>
+
+<entry c="person"><title>LINNEN <i>Armorers</i></title>
+<p>Taylors.</p></entry>
+
+<entry c="place"><title>LITTLE <i>Barbary</i></title>
+<p>Wapping.</p></entry>
+
+<entry c="v"><title>LOAP'D</title>
+<p>run away; <eg>He loap'd up the
+Dancers</eg>; He whipt up the Stairs.</p></entry>
+
+<entry c="person"><title>LOB-<i>Cock</i></title>
+<p>a heavy, dull Fellow.</p></entry>
+
+<entry c="adj"><title><i>In</i> LOB<i>'s Pound</i></title>
+<p>laid by the Heels,
+or clap'd up in Jail.</p></entry>
+
+<entry c="person"><title>LOBSTER</title>
+<p>a red Coat Soldier.</p></entry>
+
+<entry c="thing"><title>LOCK</title>
+<p>as, <eg>He stood a queer Lock</eg>;
+i.e. He stood an indifferent Chance,
+&c;</p></entry>
+
+<entry c="rogue"><title>LOCK <i>all fast</i></title>
+<p>one that buys and
+conceals stollen Goods.</p></entry>
+
+<entry c="place"><title><i>The</i> LOCK</title>
+<p>the Warehouse whither
+the Thieves carry stollen Goods.  Also
+an Hospital for pocky Folks in <i>Southwark</i> &c;</p></entry>
+
+<entry c="adj"><title>LOCKRAM <i>Jaw'd</i></title>
+<p>thin, lean,
+sharp-visag'd</p></entry>
+
+<entry c="thing"><title>LODGE</title>
+<p>a Watch.  <eg>As Files a Cly
+of a Lodge, or Scout</eg>, Pickt a Pocket of
+a Watch.  <eg>Biting a Loge, or Scout</eg>,
+the same.</p></entry>
+
+<entry c="thing"><title>LOLPOOP</title>
+<p>a lazy, idle Droe.</p></entry>
+
+<entry c="person"><title>LONG-<i>Meg</i></title>
+<p>a very tall Woman.</p></entry>
+
+<entry c="adj"><title>LONG-<i>Shanks</i></title>
+<p>long-legged.</p></entry>
+
+<entry c="thing"><title>LOOKING-<i>Glass</i></title>
+<p>a Chamber-pot.</p></entry>
+
+<entry c="rogue"><title><i>A</i> LOON</title>
+<p>a Lout.  <eg>A false Loon</eg>, a
+<!--* page 20 *-->
+true <i>Scotch</i> Man; or Knave of any Nation.
+</p></entry>
+
+<entry c="money"><title>LOON-<i>Slate</i></title>
+<p>a Thirteen-pence
+Half-penny.</p></entry>
+
+<entry c="person"><title>LORD</title>
+<p>a very crooked deformed, or
+ill-shapen Person.</p></entry>
+
+<entry c="money"><title>LOUR</title>
+<p>Money.</p></entry>
+
+<entry c="place"><title>LOUSE <i>Land</i></title>
+<p>Scotland.</p></entry>
+
+<entry c="thing"><title>LOUSE <i>Trap</i></title>
+<p>a Comb.</p></entry>
+
+<entry c="rogue"><title>LOW <i>Pad</i></title>
+<p>a <i>Foot-Pad</i>.</p></entry>
+
+<entry c="money"><title>LOW <i>Tide</i></title>
+<p>when there's no Money
+in a Man's Pocket.</p></entry>
+
+<entry c="place"><title>LUD'<i>s Bulwark</i></title>
+<p>Ludgate Prison.</p></entry>
+
+<entry c="thing"><title>LUGGS</title>
+<p>Ears.</p></entry>
+
+<entry c="person"><title>LULLABY-<i>Cheat</i></title>
+<p>a Child.</p></entry>
+
+<entry c="adj"><title>LUMB</title>
+<p>too much.</p></entry>
+
+<entry c="adj"><title>LURCHED</title>
+<p>beaten at any Game.</p></entry>
+
+<entry c="money"><title>LURRIES</title>
+<p>Money, Watches, Rings,
+or other Moveables.</p></entry>
+
+</letter>
+
+<letter name="m"><title>M</title>
+<entry c="bawd"><title>Mackarel</title>
+<p>a Bawd.</p></entry>
+
+<entry c="person"><title>MACKAREL-<i>Back</i></title>
+<p>a very
+tall, lank Person.</p></entry>
+
+<entry c="bawd"><title>MADAM <i>Van</i></title>
+<p>a Whore; <eg>The Cull
+has been with Madam Van</eg>, the Fellow
+has enjoyed such a one.</p></entry>
+
+<entry c="crime"><title>MADE</title>
+<p>stolen.  <eg>I made this Knife
+at a Heat</eg>, I stole it cleverly.</p></entry>
+
+<entry c="rogue"><title>MAD <i>Tom</i></title>
+<p>alias of Bedlam; otherwise
+called <i>Abram-men</i>.</p></entry>
+
+<entry c="thing"><title>MAIDEN-<i>Sessions</i></title>
+<p>when none are hang'd.</p></entry>
+
+<entry c="money"><title link="ignore">MAKE</title>
+<p>a Half-penny.</p></entry>
+
+<entry c="crime"><title link="ignore"><i>To</i> MAKE</title>
+<p>to steal; seize; to run
+away with.</p></entry>
+
+<entry c="person"><title>MALKINTRASH</title>
+<p>one in a rueful
+Dress, enough to fright one.</p></entry>
+
+<entry c="thing"><title>MALMSEY-Nose</title>
+<p>a jolly red Nose.</p></entry>
+
+<entry c="bawd"><title>MAN <i>o'th' Town</i></title>
+<p>a lewd Spark, or
+very Debauchee.</p></entry>
+
+<entry c="drink"><title>MANUFACTURE</title>
+<p>any Liquor made
+of the Fruits of <i>English</i> Growth, as
+Ale, Beer, Cyder, &c;</p></entry>
+
+<entry c="thing"><title>MARGERY <i>Prater</i></title>
+<p>a Hen.</p></entry>
+
+<entry c="v"><title>MARINATED</title>
+<p>transported into
+some Foreign Plantation.</p></entry>
+
+<entry c="thing"><title>MARRIAGE <i>Musick</i></title>
+<p>Childrens Cries.</p></entry>
+
+<entry c="crime"><title>MASONS <i>Mawn'd</i></title>
+<p>a Sham Sore
+above the Elbow; to counterfeit a
+broken Arm, by a Fall from a Scaffold.</p></entry>
+
+<entry c="drink,punishment"><title>MAUL'D</title>
+<p>swinglingly drunk, or
+soundly beat.</p></entry>
+
+<entry c="rogue"><title>MAUNDERS</title>
+<p>Beggars</p></entry>
+
+<entry c="v"><title>MAUNDING</title>
+<p>begging.</p></entry>
+
+<entry c="v"><title>MAUNDRING-<i>Broth</i></title>
+<p>Scolding.</p></entry>
+
+<entry c="drink"><title>MAWDLIN</title>
+<p>weepingly drunk.</p></entry>
+
+<entry c="money"><title>MEGGS</title>
+<p>Guineas.  <eg>We fork'd the
+rum Cull's Meggs to the Tune of Fifty</eg>;
+<!--* col *-->
+We pickt the Gentleman's Pocket of
+full Fifty Guineas.</p></entry>
+
+<entry c="money"><title><i>To</i> MELT</title>
+<p>to spend Money.  <eg>Will
+you melt a Borde?</eg> Will you spend your
+Shilling?  <eg>The Cull melted a Couple of
+Decusses upon us</eg>; The Gentleman spent
+Ten Shillings upon us.</p></entry>
+
+<entry c="phrase"><title>MILCH-<i>Kine</i></title>
+<p>a Term used by Goalers,
+when their Prisoners will bleed
+freely to have some Favour, or to be
+at large.</p></entry>
+
+<entry c="crime"><title><i>To</i> MILL</title>
+<p>to steal, rob, or kill.  <eg>ill
+the Gig with a Dub</eg>, open the Door
+with a Pick-lock, or false Key.</p></entry>
+
+<entry c="crime"><title><i>To</i> MILL <i>a Bleating Cheat</i></title>
+<p>to kill a
+Sheep.</p></entry>
+
+<entry c="thing"><title>MILL-<i>Clapper</i></title>
+<p>a Woman's Tongue.</p></entry>
+
+<entry c="crime"><title><i>To</i> MILL <i>a Crackmans</i></title>
+<p>to break a
+Hedge.</p></entry>
+
+<entry c="crime"><title><i>To</i> MILL <i>a Grunter</i></title>
+<p>to kill a Pig.</p></entry>
+
+<entry c="crime"><title><i>To</i> MILL <i>a Ken</i></title>
+<p>to rob a House.
+<eg>Milling the Gig with a Betty</eg>, Breaking
+open the Door with an Iron Crow.</p></entry>
+
+<entry c="rogue"><title>MILL-<i>Ken</i></title>
+<p>a House-Breaker.</p></entry>
+
+<entry c="crime"><title>MILL <i>the Glaze</i></title>
+<p>break open the
+Window.</p></entry>
+
+<entry c="crime"><title>MILL <i>Them</i></title>
+<p>kill them.</p></entry>
+
+<entry c="rogue"><title>MILLER</title>
+<p>a Killer or Murderer.</p></entry>
+
+<entry c="money"><title>MINT</title>
+<p>Gold.</p></entry>
+
+<entry c="thing"><title>MISH</title>
+<p>Shirt, Smock, or Sheet.</p></entry>
+
+<entry c="thing"><title>MISH <i>Topper</i></title>
+<p>a Coat or Petticoat.</p></entry>
+
+<entry c="bawd"><title>MISS</title>
+<p>a Whore of Quality.</p></entry>
+
+<entry c="person"><title>MOABITES</title>
+<p>Serjeants, Bailiffs and
+their Crew.</p></entry>
+
+<entry c="bawd"><title>MOB</title>
+<title>or MAB</title>
+<p>a Wench or Harlot.</p></entry>
+
+<entry c="rogue"><title>MONGREL</title>
+<p>a Hanger-on among
+the Cheats, a Spunger.</p></entry>
+
+<entry c="rogue"><title>MOON-<i>Curser</i></title>
+<p>a Link-boy, or one
+that, under Colour of lighting Men,
+(especially they who get in Drink, or
+have the Fields, or any uninhabited or
+By place, to go over) robs or leads
+them to a Gang of Rogues, that will
+do it for him.</p></entry>
+
+<entry c="rogue"><title>MOON-<i>Men</i></title>
+<p>Gypsies.</p></entry>
+
+<entry c="person"><title>MOPSIE</title>
+<p>a Dowdy, or homely
+Woman.</p></entry>
+
+<entry c="thing"><title>MOP'D</title>
+<p>maz'd.</p></entry>
+
+<entry c="money"><title>MOPUS</title>
+<p>a Half-penny or Farthing.</p></entry>
+
+<entry c="thing"><title>MORGLAG</title>
+<p>a Watchman's brown
+Bill; as Glaives, are Bills or Swords.</p></entry>
+
+<entry c="punishment"><title><i>To</i> MORRIS</title>
+<p>to hang dangling in the
+Air, to be executed.</p></entry>
+
+<entry c="person,bawd"><title>MORTS</title>
+<p>Yeomans Daughters; also
+a Wife, Woman, or Wench.</p></entry>
+
+<entry c="bawd"><title>MOTHER</title>
+<p>a Bawd.</p></entry>
+
+<entry c="person,bawd"><title>MOTHER <i>Midnight</i></title>
+<p>a Midwife (often a Bawd).</p></entry>
+
+<entry c="thing"><title>MOVEABLES</title>
+<p>Rings, Watches,
+Swords, and such Toys of Value.</p></entry>
+
+<!--* page 21 *-->
+
+<entry c="thing"><title>MOUSE-<i>Trap</i></title>
+<p>as <eg>The Parson's
+Mouse-Trap</eg>, Marriage.</p></entry>
+
+<entry c="person"><title>MOUTH</title>
+<p>a noisy Fellow.  <eg>Mouth
+half cockt</eg>, gaping and staring at every
+Thing they see.</p></entry>
+
+<entry c="thing"><title>MOWER</title>
+<p>a Cow.</p></entry>
+
+<entry c="thing"><title>MOW-<i>Heater</i></title>
+<p>a Drover.</p></entry>
+
+<entry c="money"><title>MUCK</title>
+<p>Money, Wealth.</p></entry>
+
+<entry c="thing"><title>MUFF</title>
+<p>a Woman's Secrets,  <eg>To the
+well wearing of your Muff, Mort</eg>; To
+the happy Consummation of your Marriage,
+Madam.  A Health.</p></entry>
+
+<entry c="thing"><title>MUFFLING-<i>Cheat</i></title>
+<p>a Napkin.</p></entry>
+
+<entry c="thing"><title>MUM <i>for-that</i></title>
+<p>not a Word of the
+Pudding.</p></entry>
+
+<entry c="thing"><title>MUM <i>Chance</i></title>
+<p>one that fits mute.</p></entry>
+
+<entry c="place"><title>MUM <i>Glass</i></title>
+<p>the Monument, erected
+at the City Charge, in Memory of the
+dreadful Fire 1666, which consumed
+the greatest part of the City.</p></entry>
+
+<entry c="rogue"><title>MUMPERS</title>
+<p>genteel Beggars, who
+will not accept of Victuals, but of
+Money or Cloaths.  The <i>Male Mumper</i>
+often appears with an Apron before
+him, and a Cap on his Head, pretending
+to be a decayed Tradesman, who having
+been a long Time sick, hath spent
+all his remaining Stock, ans is so weak
+he cannot work.  At other times he
+appears like a decayed Gentleman, who,
+especially since the fatal <i>South Sea
+Scheme</i>, has been undine, and reduced
+to the Necessity of imploring good People's Charity.</p>
+<p>The <i>Female Mumper</i> will confidently
+knock at the Door of a House, and desire
+to speak with the Mistress, and
+after apologizing for her Boldness, she
+acquaints her how urgent her Necessity
+is: That she has a Husband and two
+small Children lying at the Point of
+Death: That she was a Gentlewoman
+born; but marrying against her Friends
+Consent, was by them disowned, and
+so by her Husbands Sickness, is reduced
+to this miserable Condition.  Sometimes
+she appears big with Child, and
+begs Cloaths or Linnen to make Clouts
+of.  The Word <i>Mumper</i> is now generally
+used to denote all sorts of Beggars.</p></entry>
+
+<entry c="place"><title>MUMPERS <i>Hall</i></title>
+<p>several Ale-houses
+in and about this City and Suburbs, in
+Alleys, and By-places, much used by
+them, and resorted to in the Evening,
+where they will be very merry, drunk,
+and frolicksome.</p></entry>
+
+<entry c="thing"><title>MUNNS</title>
+<p>the Face; <eg>Toute his Munns</eg>,
+Note his Phiz, or, Mark his Face well.
+<eg>Pay his Munns</eg>, i.e. Strike him in the
+Face, &c;</p></entry>
+
+<entry c="phrase"><title>MUSICK</title>
+<p>the Watch-word among
+High-way-men, to let the Company
+<!--* col *-->
+they were to rob, alone, in return to
+some Courtesy from some Gentleman
+among them.</p></entry>
+
+<entry c="rogue"><title>MUTTON <i>Monger</i></title>
+<p>a Lover of
+Women; also a Sheep-stealer.</p></entry>
+
+<entry c="thing"><title>MUTTON-<i>in-long-coats</i></title>
+<p>Women
+<eg>A Leg of Mutton in a Silk Stocking</eg>, a
+Woman's leg.</p></entry>
+
+<entry c="thing"><title>MUZZLE</title>
+<p>a beard, (usually) long
+and nasty.</p></entry>
+
+<entry c="person"><title>MYRMIDONS</title>
+<p>the Constable's Attendants,
+or those whom he commands
+(in the King's Name) to aid and assist
+him: Also the Watchmen.</p></entry>
+
+</letter>
+
+<letter name="n"><title>N</title>
+
+<entry c="v"><title>NAB</title>
+<p>a Hat, Cap, or Head, also a
+Coxcomb.  <eg>Ill nab ye</eg>, I'll have
+your Hat or Cap.  <eg>Nim the Nab</eg>, steal
+the Hat or Cap.  <eg>Nabbed</eg>, apprehended,
+taken or arrested.</p></entry>
+
+<entry c="thing"><title>NAB <i>Cheat</i></title>
+<p>a Hat.</p></entry>
+
+<entry c="thing"><title>NAB-<i>Girder</i></title>
+<p>a Bridle.</p></entry>
+
+<entry c="person"><title>NAN</title>
+<p>a Servant-maid.</p></entry>
+
+<entry c="bawd"><title>NANNY-<i>House</i></title>
+<p>a Bawdy-house.</p></entry>
+
+<entry c="crime"><title><i>To</i> NAP</title>
+<p>by cheating with the Dice
+to ecure one chance; also a Clap or
+Pox, and a short sleep, <eg>Nap the Wiper</eg>,
+steal the Hankerchief.  <eg>You have napt
+it</eg>, You are Clapt.</p></entry>
+
+<entry c="rogue"><title>NAPPER</title>
+<p>a Cheat, or Thief.</p></entry>
+
+<entry c="rogue"><title>NAPPER</title>
+<p><i>of Naps</i>, a sheep-stealer.</p></entry>
+
+<entry c="drink"><title>NAPPY-<i>Ale</i></title>
+<p>very strong, heady.</p></entry>
+
+<entry c="place"><title>NASK</title>
+<title>or <i>Naskin</i></title>
+<p>a Prison or Bridewell.
+<eg>The new Nask</eg>, Clerkenwell
+Bridewell: <eg>Tuttle Nask</eg>, the Bridewell
+in Tuttle-Fields: <eg>He napt it at the
+Nask</eg>; he was lasht at Bridewell.</p></entry>
+
+<entry c="bawd"><title>NATURAL</title>
+<p>a Mistress, a Wench.</p></entry>
+
+<entry c="thing"><title>NAY-<i>Word</i></title>
+<p>a By-word, or Proverb.</p></entry>
+
+<entry c="drink"><title>NAZIE</title>
+<p>Drunken.</p></entry>
+
+<entry c="drink"><title>NAZIE-<i>Cove</i></title>
+<p>a Drunkard.</p></entry>
+
+<entry c="drink"><title>NAZY-<i>Mort</i></title>
+<p>a she Drunkard.</p></entry>
+
+<entry c="drink"><title>NAZY-<i>Nabs</i></title>
+<p>Drunken Coxcombs.</p></entry>
+
+<entry c="person,drink"><title>NECK-<i>Stamper</i></title>
+<p>the Pot-Boy at a
+Tavern or Ale-house.</p></entry>
+
+<entry c="rogue"><title>NEEDLE-<i>Point</i></title>
+<p>a Sharper.</p></entry>
+
+<entry c="adj"><title>NETTLED</title>
+<p>tiezed, provoked, made
+uneasy.</p></entry>
+
+<entry c="v"><title><i>To</i> NICK <i>it</i></title>
+<p>to win at Dice, to hit
+the Mark.</p></entry>
+
+<entry c="rogue,drink"><title>NICKUM</title>
+<p>a Sharper, also a rooking
+Ale house or Inn-keeper,Vintner, or
+any Retailer.</p></entry>
+
+<entry c="person"><title>NICKUM-<i>Poop</i></title>
+<p>a Fool, also a silly,
+soft, uxorious Fellow.</p></entry>
+
+<entry c="person"><title>NICK-<i>Ninny</i></title>
+<p>an emty Fellow, a
+meer Gods-head.</p></entry>
+
+<entry c="money"><title>NIG</title>
+<p>the clippings of Money.</p></entry>
+
+<entry c="money"><title>NIGGING</title>
+<p>Clipping.</p></entry>
+
+<!--* page 22 *-->
+
+<entry c="money"><title>NIGGLER</title>
+<p>a Clipper.</p></entry>
+
+<entry c="thing"><title>NIGGLING</title>
+<p>accompanying with a
+Woman.</p></entry>
+
+<entry c="person"><title>NIGHT-<i>Magistrate</i></title>
+<p>a Constable.</p></entry>
+
+<entry c="rogue"><title>NIGHT-<i>Walker</i></title>
+<p>a Bellman; also a
+light Woman; a Thief, a Rogue.</p></entry>
+
+<entry c="person"><title>NIGIT</title>
+<p><i>qu.</i> an Ideot, i.e. a Fool.</p></entry>
+
+<entry c="person"><title>NIGMENOG</title>
+<p>a very silly fellow.</p></entry>
+
+<entry c="thing"><title>NIKIN</title>
+<p>a Natural, or very soft
+Creature.</p></entry>
+
+<entry c="crime"><title><i>To</i> NIM</title>
+<p>to steal.</p></entry>
+
+<entry c="crime"><title><i>To</i> NIM</title>
+<p>or whip off or away any thing;
+<eg>To Num a Togeman</eg>, to steal a
+Cloack.  <eg>To Nim a Cloak</eg>, to cut off the
+Buttons in a Crowd, to whip it off a
+Man's Shoulders.</p></entry>
+
+<entry c="person"><title>NIM <i>Gimmer</i></title>
+<p>a Doctor, Surgeon,
+Apothecary, or any one that cures a
+Clap or a Pox.</p></entry>
+
+<entry c="rogue"><title>NINNY</title>
+<p>a canting, whining Beggar;
+also a Fool.</p></entry>
+
+<entry c="rogue"><title>NIP</title>
+<p>a Cheat.</p></entry>
+
+<entry c="v"><title><i>To</i> NIP</title>
+<p>to pinch or sharp any thing.
+<eg>Nip a Bung</eg>, to cut a Purse.</p></entry>
+
+<entry c="money"><title>NIPPS</title>
+<p>the Shears with which
+Money was wont to be clipt.</p></entry>
+
+<entry c="person"><title>NIZY</title>
+<p>a Fool or Coxcomb.</p></entry>
+
+<entry c="thing"><title>NOB</title>
+<p>a Head.</p></entry>
+
+<entry c="person"><title>NOCKY</title>
+<p>a silly, dull Fellow.</p></entry>
+
+<entry c="thing"><title>NODDLE</title>
+<p>the Head.</p></entry>
+
+<entry c="thing"><title>NODDY</title>
+<p>a Fool.  <eg>Knave Noddy</eg>, a
+Game on the Cards.</p></entry>
+
+<entry c="adj"><title>NOOZED</title>
+<p>or <eg>caught in a Nooze</eg>,
+married; also hanged.</p></entry>
+
+<entry c="crime,punishment"><title>NOPE</title>
+<p>a Blow, a Knock on the
+Pate; as <eg>We hit him a Nope on the Costard</eg>.</p></entry>
+
+<entry c="person"><title>NOSE-<i>Gent</i></title>
+<p>a Recluse or Nun.</p></entry>
+
+<entry c="thing"><title>NUB</title>
+<p>the Neck; also Coition.</p></entry>
+
+<entry c="punishment"><title>NUBBING</title>
+<p>hanging.  <eg>To be nubbed</eg>,
+to be hanged.</p></entry>
+
+<entry c="place,punishment"><title>NUBBING-<i>Cheat</i></title>
+<p>the Gallows.</p></entry>
+
+<entry c="punishment,person"><title>NUBBING-<i>Cove</i></title>
+<p>the Hangman.</p></entry>
+
+<entry c="place"><title>NUBBING-<i>Ken</i></title>
+<p>the Sessions House.</p></entry>
+
+<entry c="thing"><title>NUG</title>
+<p>a Word of Love, as <eg>my Dear
+Nug</eg>, my Dear Love.</p></entry>
+
+<entry c="thing"><title>NUMMS</title>
+<p>a sham, or Collar-shirt,
+to hide the other when dirty.</p></entry>
+
+<entry c="punishment"><title>NUT-<i>crackers</i></title>
+<p>a Pillory,  <eg>The Cull
+lookt thro' the Nut-crackers</eg>, i.e. The
+Rogue stood in the Pillory.</p></entry>
+
+</letter>
+
+<letter name="o"><title>O</title>
+<entry c="person"><title>OAK</title>
+<p>a rich Man, of good Substance
+and Credit.</p></entry>
+
+<entry c="thing"><title>OGLES</title>
+<p><eg><i>Eyes</i> Rum Ogles</eg>, fine, bright
+clear, piercing Eyes.</p></entry>
+
+<entry c="adj"><title>OLD-<i>Dog at it</i></title>
+<p>good or expert.</p></entry>
+
+<entry c="person"><title>OLD-<i>Dog at Common-Prayer</i></title>
+<p>a poor
+Hackney Parson that can read but not
+preach well.</p></entry>
+
+<!--* col *-->
+<entry c="drink"><title>OLD-<i>Harry</i></title>
+<p>a Composition used by
+Vintners when they bedevil their
+Wines.</p></entry>
+
+<entry c="money"><title>OLD-<i>Mr-Gory</i></title>
+<p>a Piece of Gold.</p></entry>
+
+<entry c="thing"><title>OLD <i>Roger</i></title>
+<p>the Devil.</p></entry>
+
+<entry c="person"><title>OLD <i>Toast</i></title>
+<p>a brisk old Fellow.</p></entry>
+
+<entry c="thing"><title>OLIVERS <i>Skull</i></title>
+<p>a Chamber Pot.</p></entry>
+
+<entry c="person"><title>ONE <i>in Ten</i></title>
+<p>a Parson.</p></entry>
+
+<entry c="person"><title>ONE <i>of my Cousins</i></title>
+<p>a Wench.</p></entry>
+
+<entry c="thing"><title>OS <i>Chives</i></title>
+<p>Bone handled Knives.</p></entry>
+
+<entry c="adj"><title>OUT-At-Heels</title>
+<title>or <i>elbows</i></title>
+<p>in a declining
+Condition going down the
+Wind.</p></entry>
+
+<entry c="drink"><title>OYL <i>of Barley</i></title>
+<p>strong Drink.</p></entry>
+
+<entry c="person"><title>OX <i>House</i></title>
+<p><eg>He must go thro' the Ox-house
+to Bed</eg>, said of an old Fellow that
+marries a young Woman.</p></entry>
+
+</letter>
+
+<letter name="p"><title>P</title>
+<entry c="rogue"><title>PAD</title>
+<p>the Highway; also a Robber
+thereon.</p></entry>
+
+<entry c="place,punishment"><title>PADDINGTON-<i>Fair</i></title>
+<p>an Execution
+of Malefactors at <i>Tyburn</i>.</p></entry>
+
+<entry c="phrase" sortas="PAINTER"><title><i>Ill cut your</i> PAINTER <i>for ye</i></title>
+<p>I'll
+prevent your doing me any Mischief:
+the Tar Cant when they quarrel onw
+with another.</p></entry>
+
+<entry c="rogue"><title>PALLIARDS</title>
+<p>those whose Fathers
+were <i>Clapperdogeons</i>, or born Beggars,
+and who themselves follow the same
+Trade.  The Female sort of these
+Wretches frequently borrow Children
+if they have none of their own, and
+planting them about in Straw,
+draw the greater Pity from the Spectators, screwing their Faces to the
+moving Postures, and crying at Pleasure,
+and making the Children also
+cry by pinching them, or otherwise;
+mean time her Com rogue, the Male
+<i>Palliard</i>, lies bagging in the Fields,
+with <i>Cleymes</i> or artificial Sores, which
+he makes by <i>Spere-wort</i> or <i>Arsnick</i>,
+which draws them into Blisters.</p></entry>
+
+<entry c="thing"><title>PANAM</title>
+<p>Bread.</p></entry>
+
+<entry c="thing"><title>PANTER</title>
+<p>a Heart.</p></entry>
+
+<entry c="person"><title>PANTLER</title>
+<p>a Butler.</p></entry>
+
+<entry c="thing"><title>PAPLER</title>
+<p>Milk-Pottage.</p></entry>
+
+<entry c="money"><title>PARINGS</title>
+<p>the Clippings of Money.</p></entry>
+
+<entry c="person"><title>PATRI-COVES</title>
+<title>or <i>Pater Cove</i></title>
+<p>strolling Priests that marry under a Hedge,
+without Gospel or Common-prayer
+Book: The couple standing on each
+side a dead Beast, are bid to live together
+till Death them does part; so
+shaking Hands the Wedding is ended,
+also any Minister, or Parson.</p></entry>
+
+<entry c="thing"><title>PAUME</title>
+<p>See <i>Palm</i> [[not present]].</p></entry>
+
+<entry c="thing"><title>PAW</title>
+<p>a Hand.</p></entry>
+
+<entry c="thing"><title>PAWN</title>
+<p>the same as <i>Palm</i>, which
+see. [[not present]]</p></entry>
+
+<!--* page 23 *-->
+
+<entry c="thing"><title>PEAK</title>
+<p>any kind of Lace.</p></entry>
+
+<entry c="person"><title>PECULIAR</title>
+<p>a Mistress; also particular,
+private, proper.</p></entry>
+
+<entry c="thing"><title>PED</title>
+<p>a Basket.</p></entry>
+
+<entry c="thing"><title>PEEPERS</title>
+<p>a Looking-glass.  <eg>Track
+the Dancers and Pike with the Peepers</eg>;
+Whip up the Stairs, and trip off with
+the Looking-glass.</p></entry>
+
+<entry c="thing"><title>PEEPERS</title>
+<p>Eyes.</p></entry>
+
+<entry c="adj"><title>PEERY</title>
+<p>fearful, shy, fly.  <eg>The Cull's
+Peery</eg>; The Rogue's afraid to venture.
+<eg>There's a Peery, 'tis snitch</eg>, there are a
+great many People, there'sno good to
+be done.</p></entry>
+
+<entry c="thing"><title>PEETER</title>
+<p>a Portmanteau, or Cloak-bag.
+<eg>Bite the Peelter</eg>, to whip off the
+Cloak-bag.</p></entry>
+
+<entry c="thing"><title>PEG-<i>Trantums</i></title>
+<p>as <eg>Gone to Peg-Trantums</eg>, dead.</p></entry>
+
+<entry c="thing"><title>PELTING <i>Village</i></title>
+<p>blind, obscure.</p></entry>
+
+<entry c="punishment"><title>PENNANCE <i>Board</i></title>
+<p>a Pillory.</p></entry>
+
+<entry c="thing"><title>PENTHOUSE <i>Nub</i></title>
+<p>a very broad
+brimmed hat.</p></entry>
+
+<entry c="thing"><title>PEPPERED <i>off</i></title>
+<p>soundly clapt or
+Poxt.</p></entry>
+
+<entry c="thing"><title>PERIWINKLE</title>
+<p>a Peruke, or Perriwig.</p></entry>
+
+<entry c="rogue"><title>PETER <i>Lay</i></title>
+<p>Rogues who follow
+petty Thefts; such as cutting Portmanteau's, &c;
+from behind Coaches,
+breaking Shop Glasses, &c;</p></entry>
+
+<entry c="phrase"><title>PETER <i>Lug</i></title>
+<p><eg>Who is Peter Lug?</eg> who
+let's the Glass stand at his Door.</p></entry>
+
+<entry c="person"><title>PETTICOAT <i>Pensioner</i></title>
+<p>a Gallant
+maintained for secret Service.</p></entry>
+
+<entry c="drink"><title>PHARAOH</title>
+<p>very strong Malt Drink.</p></entry>
+
+<entry c="person"><title>PHENIX <i>Men</i></title>
+<p>See <i>Firedrakes</i>.</p></entry>
+
+<entry c="person,drink"><title>PHILISTINES</title>
+<p>Serjeants, Bailiffs and
+their Crew.  Also Drunkards.  <eg>I fell
+among the Philistines</eg>, I chopt upon a
+Knot of drunken Fellows.</p></entry>
+
+<entry c="crime"><title>PICKING</title>
+<p>little Stealing, Pilfering
+Petty Larceny.</p></entry>
+
+<entry c="person"><title>PICKAROON</title>
+<p>a very shabby poor
+Fellow.</p></entry>
+
+<entry c="adj"><title>PICKLED</title>
+<p>very arch or waggish.  <eg>In
+Pickle</eg>, Poxt.  <eg>Rods in Pickle</eg>, or <eg>Revenge
+in Lavender</eg>.</p></entry>
+
+<entry c="money"><title>PIG</title>
+<p>Six-pence.  <eg>The Cull tipt me a
+Pig</eg>, The Man gave me Six pence.</p></entry>
+
+<entry c="person"><title>PIG-<i>Widgeon</i></title>
+<p>a silly Fellow.</p></entry>
+
+<entry c="v"><title><i>To</i> PIKE</title>
+<p>to run away, flee, quit or
+leave the Place; also to die, <eg>Pike on the
+Been</eg>, run away as fast as you can.
+<eg>Pik'd off</eg>, run away, fled, broke; also
+dead.  <eg>To pass the Pikes</eg>, to be out of
+Danger.  <eg>There's a Cull knos us; if we
+dont pike, he'll bone us</eg>, that Fellow sees
+is' if we don't scour off, he'll apprehend
+us.  <eg>Then we'll pike, 'tis all Bowman</eg>;
+we'll be gone, all is well, the
+Coast is clear.</p></entry>
+
+<!--* col *-->
+
+<entry c="bawd"><title>PIMP-<i>Whiskin</i></title>
+<p>a top Trader in
+pimping.</p></entry>
+
+<entry c="crime"><title><i>To</i> PINCH</title>
+<p>to steal or convey slily
+any Thing away.  <eg>To pinch on the Parsons
+side</eg>; to sharp him of his Tithes.
+<eg>At a Pinch</eg>, upon a Push or Exigence.</p></entry>
+
+<entry c="v"><title>PINK'D</title>
+<p>pricked with a Sword in a
+re-encounter or Duel.  <eg>He pinked his
+Dubblet</eg>, he run him through.</p></entry>
+
+<entry c="place"><title>PIT</title>
+<p>the Hole under the Gallows,
+into which those that pay not the Fee,
+(viz. 6<i>s</i>. 8<i>d</i>.) are cast and buried.</p></entry>
+
+<entry c="adj"><title>PIT <i>a Pat</i></title>
+<title>or <i>Pintle de Pantledy</i></title>
+<p>sadly scared, greviously frighted.</p></entry>
+
+<entry c="v"><title>PLANT</title>
+<p>to lay, place or hide.
+<eg>Plant your Whids and stow them</eg>, Be
+wary what you say or let slip.</p></entry>
+
+<entry c="thing"><title>PLAISTER <i>of hot Guts</i></title>
+<p>one warm
+Belly clapt to another.</p></entry>
+
+<entry c="money"><title>PLATE <i>Fleet coes in</i></title>
+<p>when the
+Money comes to Hand.</p></entry>
+
+<entry c="person"><title>PALTTER-<i>Faces</i> Jade</title>
+<p>a very broad
+ordinary faced Woman.</p></entry>
+
+<entry c="v"><title>PLAY <i>it off</i></title>
+<p>to play Booty; also to
+throw away, at Gaming, so much and
+no more.  <eg>He plays it off</eg>, he cheats.</p></entry>
+
+<entry c="drink"><title>PLUCK <i>the Ribbon</i></title>
+<p>Ring the Bell at
+the Tavern.</p></entry>
+
+<entry c="money"><title>PLUMP <i>in the Pocket</i></title>
+<p>flush of Money.</p></entry>
+
+<entry c="person"><title>PLYER</title>
+<p>a Crutch; also a Trader.</p></entry>
+
+<entry c="thing"><title>POKER</title>
+<p>a Sword.</p></entry>
+
+<entry c="thing"><title>POLT <i>on the Pate</i></title>
+<p>a good Rap there.</p></entry>
+
+<entry c="thing"><title>POPS</title>
+<p>Pistols, <eg>To pop</eg>, to fire a Pistol,
+&c;</p></entry>
+
+<entry c="thing"><title>PORKER</title>
+<p>a Sword.</p></entry>
+
+<entry c="thing"><title>POST</title>
+<p>as <eg>From Pillar to Post</eg>, from
+Constable to Constable.</p></entry>
+
+<entry c="drink"><title>POT-<i>Valiant</i></title>
+<p>Drunk.</p></entry>
+
+<entry c="thing"><title>POULAIN</title>
+<p>a Bubo.</p></entry>
+
+<entry c="place"><title>POWDERING-<i>Tub</i></title>
+<p>the pocky Hospital
+at <i>Kingsland</i> near <i>London</i>.</p></entry>
+
+<entry c="adj"><title>POISONED</title>
+<p>big with Child.</p></entry>
+
+<entry c="adj"><title>POISON <i>Pate</i></title>
+<p>red Haired.</p></entry>
+
+<entry c="thing"><title>PRANCER</title>
+<p>a Horse.</p></entry>
+
+<entry c="thing"><title>PRANCER's <i>Nab</i></title>
+<p>a Horse's Head,
+used in a sham Seal to such a Pass.</p></entry>
+
+<entry c="thing"><title>PRATTS</title>
+<p>the Thighs or Buttocks;
+also a Tinder-box or Touch-box.</p></entry>
+
+<entry c="thing"><title>PRATING-<i>Cheat</i></title>
+<p>a Tongue.</p></entry>
+
+<entry c="rogue"><title>PRATE-<i>Roast</i></title>
+<p>a Talking Boy.</p></entry>
+
+<entry c="money"><title link="ignore">PREY</title>
+<p>Money.</p></entry>
+
+<entry c="person"><title>PRICKEAR'D <i>Fellow</i></title>
+<p>a Crop whose
+Ears are longer than his Hair.</p></entry>
+
+<entry c="person"><title>PRICK <i>Louse</i></title>
+<p>a Taylor.</p></entry>
+
+<entry c="thing"><title>PRIEST <i>Linked</i></title>
+<p>married.</p></entry>
+
+<entry c="rogue,person"><title>PRIG</title>
+<p>a Thief, a Cheat: also a nice,
+beauish, silly Fellow, is called a <eg>meer
+Prig</eg>.</p></entry>
+
+<entry c="rogue"><title>PRIGGERS</title>
+<p>Thieves.</p></entry>
+
+<entry c="bawd"><title>PRIGGING</title>
+<p>lying with a Woman.</p></entry>
+
+<entry c="thing"><title>PRIGSTAR</title>
+<p>a Rival in Love.</p></entry>
+
+<!--* page 24 *-->
+
+<entry c="adj"><title>PRIGGISH</title>
+<p>Thievish.</p></entry>
+
+<entry c="rogue"><title>PRIG <i>Napper</i></title>
+<p>a Horse-stealer; also a Thief Taker.</p></entry>
+
+<entry c="rogue"><title>PRIGGERS <i>of the Cacklers</i></title>
+<p>Poultry-stealers.</p></entry>
+
+<entry c="rogue"><title>PRIGGERS <i>of Prancers</i></title>
+<p>Horse-stealers, who carry a Bridle in their Pockets,
+and a small pad Saddle in their
+Breeches.</p></entry>
+
+<entry c="rogue"><title>PRINCE <i>Prig</i></title>
+<p>a King of the Gypsies;
+also Top-Thief, or Receiver General.</p></entry>
+
+<entry c="person"><title>PRINCOCK</title>
+<p>a pert, forward Fellow.</p></entry>
+
+<entry c="v"><title>PRINKING</title>
+<p>nicely dressing.  <eg>Prinked
+up</eg>, set up on the Cupboards head, in
+their best Clothes, or in State.  Stiff-starched.</p></entry>
+
+<entry c="person"><title><i>Mistress</i> PRINCUM-<i>Prancium</i></title>
+<p>such a stiff, overnice precise Madam.</p></entry>
+
+<entry c="thing"><title>PROG</title>
+<p>Meat.  <eg>Rum Prog.</eg>, nice eating.
+<eg>The Cull tipt us rum Prog</eg>; the
+Gentleman, so serve a Turn; a Cat's Foot.</p></entry>
+
+<entry c="punishment"><title><i>To</i> PUMMEL</title>
+<p>to beat, <eg>I pummelled
+his Sides for him.</eg>, I beat him soundly.</p></entry>
+
+<entry c="v"><title><i>To</i> PUMP</title>
+<p>to wheedle-Secrets out
+of any one.</p></entry>
+
+<entry c="bawd"><title>PUNCH-<i>Houses</i></title>
+<p>bawdy-houses.</p></entry>
+
+<entry c="bawd"><title>PUNK</title>
+<p>a little Whore.</p></entry>
+
+<entry c="person"><title>PUPIL <i>Mongers</i></title>
+<p>Tutors at the Universities.</p></entry>
+
+<entry c="bawd"><title>PURE</title>
+<p>a Mistress.</p></entry>
+
+<entry c="bawd,person"><title>PUREST-<i>Pure</i></title>
+<p>a Top-Mistress or
+fine Woman.</p></entry>
+
+<entry c="drink"><title>PURL-<i>Royal</i></title>
+<p>Canary with a Dash of
+Wormwood.</p></entry>
+
+<entry c="place,bawd"><title>PUSHING-<i>School</i></title>
+<p>a Fencing-School;
+also a Bawdy house.</p></entry>
+
+<entry c="person"><title link="ignore">PUT</title>
+<p><eg>A Country Put</eg>, a silly, shallow
+pated, Fellow.  <eg>Put so it</eg>, beset.</p></entry>
+
+</letter>
+
+<letter name="q"><title>Q</title>
+<entry c="thing"><title>QUACKING-<i>Cheat</i></title>
+<p>a Duck.</p></entry>
+
+<entry c="thing"><title>QUAIL Pipe</title>
+<p>a Woman's Tongue.</p></entry>
+
+<entry c="thing"><title>QUAKING <i>Cheat</i></title>
+<p>a Calf or Sheep.</p></entry>
+
+<entry c="person"><title>QUARREL <i>Picker</i></title>
+<p>a Glazier.</p></entry>
+
+<entry c="thing"><title>QUARRON</title>
+<p>a Body.</p></entry>
+
+<entry c="bawd"><title>QUEAN</title>
+<p>a Whore or Slut.  <eg>A dirty
+Quean</eg>, a Puzzle or Slut.</p></entry>
+
+<entry c="adj"><title>QUEERE</title>
+<title>or <i>Quire</i></title>
+<p>base, roguish,
+naught.  <eg>How queerely the Cull Trouts?</eg>
+How roguishly the Fellow loocks.</p></entry>
+
+<entry c="rogue"><title>QUEERE-Birds</title>
+<p>such as having got
+loose, return to their old Trade of
+roguing and thieving.</p></entry>
+
+<entry c="rogue,drink"><title>QUEERE <i>Bluffer</i></title>
+<p>a sneaking sharping,
+Cut-throat Ale-house Man or Inn-keeper.</p></entry>
+
+<entry c="thing"><title>QUEERE-<i>Bung</i></title>
+<p>an empty Purse.</p></entry>
+
+<!--* col *-->
+
+<entry c="thing"><title>QUEERE-<i>Clout</i></title>
+<p>a sorry old Handkerchief,
+not worth nimming.</p></entry>
+
+<entry c="adj,money"><title>QUEERE-<i>Cole</i></title>
+<p>clipt, counterfeit
+Money.</p></entry>
+
+<entry c="money"><title>QUEERE <i>Cole-maker</i></title>
+<p>a false Coiner.</p></entry>
+
+<entry c="rogue,money"><title>QUEERE <i>Cole-fencer</i></title>
+<p>a Receiver and
+Putter off of false Money.</p></entry>
+
+<entry c="rogue"><title>QUEERE-<i>Cove</i></title>
+<p>a Rogue.</p></entry>
+
+<entry c="person"><title>QUEERE-<i>Cussin</i></title>
+<p>a Justice of Peace;
+also a churl.</p></entry>
+
+<entry c="person"><title>QUEERE-<i>Cull</i></title>
+<p>a Fop or Fool, a
+Cods-head; also a shabby poor Fellow.</p></entry>
+
+<entry c="thing"><title>QUEERE <i>Degen</i></title>
+<p>an Iron, Steel or
+Brass hilted Sword.</p></entry>
+
+<entry c="rogue"><title>QUEERE-<i>Diver</i></title>
+<p>a bungling Pick-pocket.</p></entry>
+
+<entry c="rogue"><title>QUEERE-<i>Doxy</i></title>
+<p>a jilting Jade, a sorry
+shabby Wench.</p></entry>
+
+<entry c="thing"><title>QUEERE-<i>Drawers</i></title>
+<p>Yarn, or coarse
+Worsted, ordinary or old Stockings.</p></entry>
+
+<entry c="person"><title>QUEERE-<i>Duke</i></title>
+<p>a poor decayed
+Gentleman, also a lean, thin, half-starved Fellow.</p></entry>
+
+<entry c="thing"><title>QUEERE-<i>Fun</i></title>
+<p>a bungling Cheat or
+Trick; also Game or Merriment.</p></entry>
+
+<entry c="place,punishment"><title>QUEERE-<i>Ken</i></title>
+<p>an ill House, a Prison
+or a place of Correction.</p></entry>
+
+<entry c="thing"><title>QUEERE-<i>Kicks</i></title>
+<p>course ordinary or
+old tattered Breeches.</p></entry>
+
+<entry c="person"><title>QUEERE-<i>Mort</i></title>
+<p>a dirty Drab, a jilting
+Wench, a pocky Jade.</p></entry>
+
+<entry c="thing"><title>QUEERE <i>Nab</i></title>
+<p>a Felt, <i>Carolina</i> Cloth
+or ordinary Hat.</p></entry>
+
+<entry c="thing"><title>QUEERE-<i>Peepers</i></title>
+<p>old-fashioned,
+ordinary or common Looking glasses.</p></entry>
+
+<entry c="thing,rogue"><title>QUEERE-<i>Prancer</i></title>
+<p>a foundered Jade,
+an ordinary low prized Horse: also a
+cowardly or faint hearted Horse-stealer.</p></entry>
+
+<entry c="thing"><title>QUEERE-<i>Topping</i></title>
+<p>sorry Head-dresses.</p></entry>
+
+<entry c="v"><title><i>To</i> QUIBBLE</title>
+<p>to trifle or pun.</p></entry>
+
+<entry c="person"><title><i>Sir</i> QUIBBLE-<i>Queere</i></title>
+<p>a trifling, silly
+shatter-brained Fellow; a meer Wittol
+or Punter, likewise a Whiffler.</p></entry>
+
+<entry c="money"><title>QUIDDS</title>
+<p>Cash, or ready Money.
+<eg>Can you tip me any Quidds</eg>? Can you
+lend me any Money.</p></entry>
+
+<entry c="place"><title>QUOD</title>
+<p><i>Newgate</i>; also a Prison, tho'
+generally for Debt.  <eg>The Poor Dabs in
+the Quod.</eg> the poor Rogue is in <i>Limbo</i>.</p></entry>
+
+<entry c="thing"><title>QUOTA</title>
+<p>Snack, Share, Part, Proportion or Dividend.</p></entry>
+
+</letter>
+
+<letter name="r"><title>R</title>
+
+<entry c="person"><title>RABBET-<i>Suckers</i></title>
+<p>young Unthrifts
+taking Goods on Tick of Pawnbrokers
+or Tallymen, at excessive
+Rates.</p></entry>
+
+<!--* page 25 *-->
+
+<entry c="drink"><title>RABBITS</title>
+<p>wooden Cans to drink
+out of, once used on the Roads, now
+almost laid by.</p></entry>
+
+<entry c="money"><title>RAG</title>
+<p>a Farthing.  <eg>Not a Rag left</eg>; I
+have lost or spent all my Money.</p></entry>
+
+<entry c="person"><title>RAGAMUFFIN</title>
+<p>a Taterdemallion.</p></entry>
+
+<entry c="drink"><title>RAG-<i>Water</i></title>
+<p>a common sort of strong
+Water.</p></entry>
+
+<entry c="bawd"><title>RAKE</title>
+<title><i>Rake-hell</i></title>
+<title><i>Rake shame</i></title>
+<p>a lewd Spark or Debauchee.</p></entry>
+
+<entry c="person"><title>RALPH <i>Spooner</i></title>
+<p>a Fool.</p></entry>
+
+<entry c="v"><title>RANGING</title>
+<p>intriguing, and enjoying
+many Women.</p></entry>
+
+<entry c="rogue"><title>RANK <i>Rider</i></title>
+<p>a Highwayman; also
+a Jockey.</p></entry>
+
+<entry c="rogue"><title>RANTIPOLE</title>
+<p>a rude wild Boy or
+Girl.</p></entry>
+
+<entry c="v"><title>RAP</title>
+<p>to swop or exchange a Horse
+or Goods; also a Polt on the Pate.</p></entry>
+
+<entry c="thing"><title>RAPPER</title>
+<p>a swinging great Lye.</p></entry>
+
+<entry c="rogue"><title>RAREE-SHOW-<i>Men</i></title>
+<p>poor <i>Savoyards</i>
+strolling up and down with portable
+Boxes of Puppet-shows at their
+Backs; Pedlars of Puppets.</p></entry>
+
+<entry c="person,drink"><title>RAT</title>
+<p>a drunken Man or Woman
+taken up by the Watch, and carried
+by the Constable to the Compter.  <eg>To
+smell a Rat</eg>, To suspect a Trick.</p></entry>
+
+<entry c="thing"><title>RATTLER</title>
+<p>a Coach.</p></entry>
+
+<entry c="person"><title>RATTLING <i>Cove</i></title>
+<p>a Coach-man.</p></entry>
+
+<entry c="person"><title>RATTLING-<i>Mumpers</i></title>
+<p>such as run
+after, or ply Coaches &c;</p></entry>
+
+<entry c="v"><title><i>To</i> RATTLE</title>
+<p>to move off, or be
+gone.  <eg>We'll take Rattle</eg>, We must not
+tarry, but whip away.</p></entry>
+
+<entry c="money"><title>READY <i>Rhino</i></title>
+<p>Money in Possession.</p></entry>
+
+<entry c="money"><title>RECRUITS</title>
+<p>Money (expected.)  <eg>Have
+yuo rais'd the Recruits?</eg> Is the Money
+come in?</p></entry>
+
+<entry c="drink"><title>RED-<i>Fustian</i></title>
+<p>Claret, or red Port-Wine.</p></entry>
+
+<entry c="person"><title>RED-<i>Letter-Man</i></title>
+<p>a Roman Catholick.</p></entry>
+
+<entry c="thing"><title>RED-<i>Rag</i></title>
+<p>a Tongue.</p></entry>
+
+<entry c="drink"><title>REMEMBER <i>Parson Malham</i></title>
+<p>q. d.
+Pray Sir drink about.  A <i>Norfolk</i>
+Phrase.</p></entry>
+
+<entry c="money"><title>RHINO</title>
+<p>ready Money.</p></entry>
+
+<entry c="money"><title>RIBBIN</title>
+<p>Money.  <eg>The Ribbin Runs
+shick</eg>; his Breeches are well lined
+with Money.  <eg>The Ribbin runs thin</eg>,
+He has but little Cash about him.</p></entry>
+
+<entry c="thing"><title>RICH-<i>Face</i></title>
+<p>a red-Face.</p></entry>
+
+<entry c="person"><title>RIDG-<i>Cully</i></title>
+<p>a Gold-smith.</p></entry>
+
+<entry c="rogue"><title>RIFF-<i>Raff</i></title>
+<p>the Rabble or Scum of
+the People, Tagrag and Longtail.</p></entry>
+
+<entry c="thing"><title>RIG</title>
+<p>Game, Diversion, Ridicule.
+See <i>Fun</i>.</p></entry>
+
+<entry c="thing"><title>RIGGING</title>
+<p>Cloaths.  <eg>I'll unrig the
+Bloss</eg>; I will strip the Wench.</p></entry>
+
+<!--* col *-->
+
+<entry c="thing"><title><i>Rum</i> RIGGING</title>
+<p>fine Cloaths.  <eg>The
+Cull has Rum Rigging, let's ding him,
+mill him, and pike</eg>; The Man has very
+good Cloaths, let us knock him down,
+kill him, and scour off.
+</p></entry>
+
+<entry c="money"><title>RING</title>
+<p>Money extorted by Rogues
+on the Highway, or by Gentlemen
+Beggars.</p></entry>
+
+<entry c="thing"><title>ROAST-<i>Meat-Cloaths</i></title>
+<p>Holiday-Cloaths.  <eg>To rule the Roast</eg>, To be master
+or Paramount.  <eg>Roasted</eg>, Arrested:
+<eg>I'll Roast the Dab</eg>, I will arrest the
+Rascal: To <eg>Roast</eg>, signifies also to rally;
+to teize, to hunt, or banter.</p></entry>
+
+<entry c="rogue"><title>ROBERDS-<i>Men</i></title>
+<p>mighty Thieves,
+like <i>Robin Hood</i>.</p></entry>
+
+<entry c="thing"><title>ROCHESTER-<i>Portion</i></title>
+<p>two torn
+Smocks, and what Nature gave.</p></entry>
+
+<entry c="thing,person"><title>ROGER</title>
+<p>a Portmanteau, a Goose;
+also a Man's Yard.  Likewise a Thief-taker.</p></entry>
+
+<entry c="thing"><title>ROGUE</title>
+<p>a name which includes all
+the other Denominations.</p></entry>
+
+<entry c="thing"><title>ROMBOYL&stress;D</title>
+<p>sought after with a Warrant.</p></entry>
+
+<entry c="thing"><title>ROMBOYLES</title>
+<p>Watch and Ward.</p></entry>
+
+<entry c="thing"><title>ROMER</title>
+<p>a drinking Glass; also
+wider.</p></entry>
+
+<entry c="v"><title>ROOK</title>
+<p>a Cheat a Knave.  <eg>To Rook</eg>,
+To cheat or play the Knave.</p></entry>
+
+<entry c="adj"><title>ROSY-<i>Gills</i></title>
+<p>sanguine or fresh colour'd</p></entry>
+
+<entry c="thing"><title>ROTAN</title>
+<p>a Coach, or Waggon, any
+thing that runs upon Wheels; but
+prinicipally a Cart.</p></entry>
+
+<entry c="drink"><title>ROT-<i>Gut</i></title>
+<p>very small or thin Beer.</p></entry>
+
+<entry c="rogue"><title>ROVERS</title>
+<p>Pyrates, Wanderers, Vagabonds.</p></entry>
+
+<entry c="v"><title>ROUGH</title>
+<p>as, <eg>To lie Rough</eg>, to lie in
+one's Cloaths all Night.</p></entry>
+
+<entry c="rogue"><title>ROYSTERS</title>
+<p>rude roaring Rogues.</p></entry>
+
+<entry c="v"><title><i>To</i> RUB</title>
+<p>to run away.  <eg>A Rub</eg>, an
+Impediment, Obstacle, Hinderance,
+Stop, Hardship, or Difficulty.  <eg>Rub on</eg>,
+to live indifferently.  <eg>Rub through the World</eg>,
+to live tolerably well in it.</p></entry>
+
+<entry c="phrase,punishment"><title><i>He</i> RUBS <i>us to the Whit</i></title>
+<p>He sends us
+to <i>Newgate</i>.</p></entry>
+
+<entry c="punishment"><title>RUFF</title>
+<p>an old-fashioned double
+Band; from whence the Pillory is called, <eg>The Wooden Ruff</eg>.</p></entry>
+
+<entry c="thing"><title>RUFFIN</title>
+<p>the Devil; as <eg>The Ruffin
+nab the Cuffin Quire, and let the Harman
+beck trine with his Kinchins about
+his Col quarron</eg>; i.e. Let the Devil take
+the Justice, and let the Constable hang
+with his Children about his Neck.</p></entry>
+
+<entry c="rogue"><title>RUFFLERS</title>
+<p>notorious Rogues,
+who, under Pretence of being maimed
+Soldiers or Seamen, implore the Charity
+of well disposed Persons, and fail
+not to watch Opportunities either to
+<!--* page 26 *-->
+steal, break open Houses, or even
+commit Murder.</p></entry>
+
+<entry c="thing"><title>RUFFMANS</title>
+<p>the Woods or Bushes.</p></entry>
+
+<entry c="thing"><title>RUFF-<i>Peck</i></title>
+<p>Bacon.</p></entry>
+
+<entry c="thing"><title>RUG</title>
+<p><eg>It's all a Rug</eg>, The Game is
+secured.</p></entry>
+
+<entry c="adj"><title>RUM</title>
+<p>gallant, fine, rich, best or
+excellent.</p></entry>
+
+<entry c="person"><title>RUM-<i>Beck</i></title>
+<p>any Justice of the Peace.</p></entry>
+
+<entry c="crime"><title>RUM-<i>Bite</i></title>
+<p>a clever Cheat, a neat
+Trick.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Bleating-Cheat</i></title>
+<p>a very fat
+Weather. [[See Bleating-Cheat]]</p></entry>
+
+<entry c="person"><title>RUM-<i>Blower</i></title>
+<p>a veru handsom Mistress,
+kept by a particular Man.</p></entry>
+
+<entry c="person,drink"><title>RUM-<i>Bluffer</i></title>
+<p>a jolly Host, Inn-keeper, 
+or Victualler.</p></entry>
+
+<entry c="place"><title>RUMBO</title>
+<p>a Prison or Goal.</p></entry>
+
+<entry c="rogue"><title>RUM-<i>Bob</i></title>
+<p>a young Apprentice;
+also a sharp, sly Trick.  Likewise a
+pretty short Wig.</p></entry>
+
+<entry c="thing"><title>RUM <i>Boile</i></title>
+<p>a Ward or Watch.</p></entry>
+
+<entry c="drink"><title>RUM-<i>Booze</i></title>
+<p>Wine; also very good
+or string Drink.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Boozing-Welts</i></title>
+<p>Bunches of Grapes.</p></entry>
+
+<entry c="rogue"><title>RUM-<i>Bubber</i></title>
+<p>a dexterous Fellow at
+stealing Silver Tankards from Publick
+Houses.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Bughar</i></title>
+<p>a very pretty and
+valuable Dog.</p></entry>
+
+<entry c="money"><title>RUM-<i>Bung</i></title>
+<p>a full Purse.</p></entry>
+
+<entry c="adj"><title>RUMLY</title>
+<p>bravely, cleverly, delicately, &c;</p></entry>
+
+<entry c="person"><title>RUM-<i>Chub</i></title>
+<p>which is, (among the
+Butchers) an ignorant Market-man or
+Woman, that is <i>bit</i> by them.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Clank</i></title>
+<p>a large Silver Tankard.
+<eg>Tip me a Rum-Clank of Bowse</eg>; i.e. Give
+me a Double-tankard of Drink.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Clout</i></title>
+<p>a Silk, fine Cambrick,
+or Holland Handkerchief.</p></entry>
+
+<entry c="money"><title>RUM-<i>Cod</i></title>
+<p>a good Purse of Gold, or
+round Sum of Money.</p></entry>
+
+<entry c="money"><title>RUM-<i>Cole</i></title>
+<p>new Money, or Medals
+curiously coin'd.</p></entry>
+
+<entry c="rogue"><title>RUM-<i>Cove</i></title>
+<p>a great Rogue.</p></entry>
+
+<entry c="person"><title>RUM-<i>Cull</i></title>
+<p>a rich Fool, that can be
+easily <i>bit</i>, or cheated by any body;
+also one that is very generous and kind
+to a Mistress.</p></entry>
+
+<entry c="thing"><title>RUM <i>Degen</i></title>
+<p>a Silver-hilted or inlaid Sword.</p></entry>
+
+<entry c="person"><title>RUM-<i>Dell</i></title>
+<p>the same as, <i>Rum-Doxy</i>.</p></entry>
+
+<entry c="rogue"><title>RUM-<i>Diver</i></title>
+<p>a compleat or clever
+Pick-pocket, The same with <i>Files</i> or
+<i>Bung-nippers</i>.  Which see.</p></entry>
+
+<entry c="person"><title>RUM-<i>Doxy</i></title>
+<p>a beautiful Woman,
+or light Lady.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Drawers</i></title>
+<p>Silk Stokings, or
+very fine worsted Hose.</p></entry>
+
+<entry c="person,drink"><title>RUM-<i>Dropper</i></title>
+<p>a Vintner.</p></entry>
+
+<entry c="rogue"><title>RUM-<i>Dabber</i></title>
+<p>an experienc'd or
+<!--* col *-->
+expert Picker of Locks.  The same
+with GILT, which see.</p></entry>
+
+<entry c="person"><title>RUM-<i>Duke</i></title>
+<p>a jolly handsome Man,
+<eg>Rum-Dukes</eg>, the boldest or stoutest Fellows
+(lately) amongst the <i>Alsatians,
+Minters, Sawyards, &c;</i> sent for to
+remove and guard the Goods of such
+Bankrupts as intended to take Sanctuary
+in those Places.</p></entry>
+
+<entry c="person"><title>RUM-<i>Dutchess</i></title>
+<p>a jolly handsome Woman.</p></entry>
+
+<entry c="rogue"><title>RUM-<i>File</i></title>
+<p>the same as <i>Rum-diver</i>.</p></entry>
+
+<entry c="thing"><title>RUMFORD-<i>Lyon</i></title>
+<p>a Calf.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Fun</i></title>
+<p>a clever Cheat or sharp
+trick.</p></entry>
+
+<entry c="money"><title>RUM-<i>Gelt</i></title>
+<p>the same as <i>Rum-Cole</i>.</p></entry>
+
+<entry c="person"><title>RUM-<i>Glimmer</i></title>
+<p>the King or Chief
+of the Linkboys.</p></entry>
+
+<entry c="drink"><title>RUM-<i>Gutlers</i></title>
+<p>Canary-Wine; also
+fine Eating.</p></entry>
+
+<entry c="drink"><title>RUM-<i>Hopper</i></title>
+<p>a Drawer.  <eg>Rum-hopper,
+tip us presently a Boozing-cheat of
+Rum gutlers</eg>; Drawer, fill us presently
+a Bottle of the best Canary.</p></entry>
+
+<entry c="money"><title>RUM-<i>Kicks</i></title>
+<p>Silver or Gold Brokade
+Breeches, or very rich with Gold or
+Silver Galloon.</p></entry>
+
+<entry c="rogue"><title>RUM-<i>Mawnd</i></title>
+<p>one that counterfeits
+himself a Fool.</p></entry>
+
+<entry c="person"><title>RUM-<i>Mort</i></title>
+<p>a Queen, or great Lady.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Nab</i></title>
+<p>a Beaver, or very good Hat.</p></entry>
+
+<entry c="drink"><title>RUM-<i>Nantz</i></title>
+<p>true <i>French</i> Brandy.</p></entry>
+
+<entry c="person"><title>RUM-<i>Ned</i></title>
+<p>a very silly Fellow.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Pad</i></title>
+<p>the Highway.</p></entry>
+
+<entry c="rogue"><title>RUM-<i>Padders</i></title>
+<p>the better Sort of
+Highwaymen, well mounted and armed.
+See <i>High Pad</i>.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Peepers</i></title>
+<p>a Silver Looking-glass.</p></entry>
+
+<entry c="person"><title>RUMP <i>and Kidney Men</i></title>
+<p>Fidlers that
+play at Feasts, Fairs, Weddings &c;
+and live chiefly on the Remnants of
+Victuals.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Prancer</i></title>
+<p>a very beautiful Horse.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Quidds</i></title>
+<p>a great Booty, or
+large Snack.</p></entry>
+
+<entry c="place"><title>RUM-<i>Ruff-Peck</i></title>
+<p>Westphalia-Ham.</p></entry>
+
+<entry c="drink"><title>RUM-<i>Squeeze</i></title>
+<p>much Wine or good
+Liquor given among the Fidlers.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Snitch</i></title>
+<p>a good Fillip on the
+Nose.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Tol</i></title>
+<p>the same as <i>Rum-degen</i>,
+being the newest Cant Word of the two.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Tilter</i></title>
+<p>the same as <i>Rum-tol</i>,
+or <i>Rum-degen</i>.</p></entry>
+
+<entry c="thing"><title>RUM-<i>Topping</i></title>
+<p>a rich Head-dress.</p></entry>
+
+<entry c="place"><title>RUM-<i>Ville</i></title>
+<p><i>London</i></p></entry>
+
+<entry c="thing"><title>Wiper</title>
+<p>the same as <i>Rum-Clout</i></p></entry>
+
+<entry c="v"><title><i>To</i> RUN-<i>Riot</i></title>
+<p>to turn Spark, and
+run out of all.</p></entry>
+
+<!--* page 27 *-->
+
+<entry c="person"><title>RUNNING <i>Stationers</i></title>
+<p>Hawkers, or
+those that cry News and Books about
+the Streets.</p></entry>
+
+<entry c="rogue"><title>RUNNER</title>
+<p>the same as <i>Budge</i>.</p></entry>
+
+<entry c="person"><title>RUSTYGUTS</title>
+<p>an old blunt Fellow.</p></entry>
+
+</letter>
+
+<letter name="s"><title>S</title>
+<entry c="thing"><title>SACK</title>
+<p>a Pocket.  <eg>To Dive into his
+Sack</eg>; To pick his Pocket.</p></entry>
+
+<entry c="drink"><title>SACK</title>
+<p>also signifies to be drunk;
+As, <eg>He bought the Sack</eg>; i.e. He got
+drunk.</p></entry>
+
+<entry c="thing"><title>SALESMAN'S <i>Dog</i></title>
+<p>the same as <i>Barker</i>.</p></entry>
+
+<entry c="thing"><title>SALAMON</title>
+<p>the Beggar's Sacrament
+or Oath.</p></entry>
+
+<entry c="rogue"><title>SCAB</title>
+<p>a sorry Wench, or scoundrel Fellow.</p></entry>
+
+<entry c="thing"><title>SCANDALOUS</title>
+<p>a sorry Perriwig.</p></entry>
+
+<entry c="rogue"><title>SCANDAL-<i>Proof</i></title>
+<p>a thorough-pac'd
+<i>Alsatian</i>, or <i>Minter</i>; one harden'd, or
+past Shame.</p></entry>
+
+<entry c="thing"><title>SCEW</title>
+<p>See <i>Skew</i>.</p></entry>
+
+<entry c="bawd"><title>SCHOOL <i>of Venus</i></title>
+<p>a Bawdy-house.</p></entry>
+
+<entry c="v"><title>SCONCE</title>
+<p><eg>To build a large sconce</eg>;
+To run deep upon Tick or Trust.</p></entry>
+
+<entry c="thing"><title>SCOTCH <i>Fiddle</i></title>
+<p>the Itch.</p></entry>
+
+<entry c="thing"><title>SCOTCH-<i>Mist</i></title>
+<p>a sober, soaking
+Rain.</p></entry>
+
+<entry c="rogue"><title>SCOUNDREL</title>
+<p>a Hedge bird or sorry
+Scab.</p></entry>
+
+<entry c="v"><title><i>To</i> SCOURE</title>
+<p>to wear.  <eg>To Scoure the
+Cramp-rings</eg>; To wear Bolts.  Also
+to run away.  See <i>Scowre</i>.</p></entry>
+
+<entry c="v"><title><i>To</i> SCOWRE</title>
+<p>to run away or scamper.</p></entry>
+
+<entry c="rogue,drink"><title>SCOWRERS</title>
+<p>Drunkards beating
+the Watch, breaking Windows, clearing
+the Streets, &c;</p></entry>
+
+<entry c="drink,money"><title>SCRAN</title>
+<p>a Reckoning at a Boozing-ken, &c;</p></entry>
+
+<entry c="thing"><title>SCRAP</title>
+<p>s Design, a purpos'd Villainy, a vile Intention; also a perpetrated
+Roguery: <eg>He whiddles the whole
+Scrap</eg>: He discovers all he knows.</p></entry>
+
+<entry c="thing"><title>SCRIP</title>
+<p>a Shred or Scrap of Paper.
+As, <eg>The Cully did freely blot the Scrip,
+and tipt me 40 Hogs</eg>; One enter'd into
+Bond with me for 40 Shillings.</p></entry>
+
+<entry c="rogue"><title>SCRUB</title>
+<p>a Ragamuffin.</p></entry>
+
+<entry c="thing"><title>SCRUBADO</title>
+<p>the Itch.</p></entry>
+
+<entry c="bawd"><title><i>To</i> SCREW</title>
+<p>to copulate with a
+Woman.</p></entry>
+
+<entry c="bawd"><title><i>A</i> SCREW</title>
+<p>a Strumper, a common
+Prostitute.</p></entry>
+
+<entry c="rogue"><title>SCUM</title>
+<p>the Riff-raff, or Tagrag and
+Longtail.</p></entry>
+
+<entry c="rogue"><title>SEALER</title>
+<p>one that gives Bonds and
+Judgement for Goods and Money.</p></entry>
+
+<!--* col *-->
+
+<entry c="thing"><title>SECRET</title>
+<p>as, <eg>Let into the Secret</eg>;
+When one is drawn in at Horse-racing,
+Cock-fighting, Bowling, and other
+such Sports or Games, and <i>bit</i>.</p></entry>
+
+<entry c="adj,money"><title>SEEDY</title>
+<p>poor, Money-less, exhausted.</p></entry>
+
+<entry c="bawd"><title>SERAGLIO</title>
+<p>a Bawdy-house; so
+called from the Great Turk's Palace.</p></entry>
+
+<entry c="bawd"><title>SERAGLIETTO</title>
+<p>a lousy, vile,
+sorry Bawdy-house, a meer Dog-hole.</p></entry>
+
+<entry c="thing"><title link="ignore">SET</title>
+<p>as <eg>Dead Set</eg>, a Term used by
+Thief-catchers when they have a Certainty
+of seizing zome of their Clients,
+in order to bring them to Justice.</p></entry>
+
+<entry c="thing"><title>SETTERS</title>
+<title>or <i>Setting-dogs</i></title>
+<p>they
+that draw in <i>Bubbles</i>, for old Gamesters
+to rook; also a Serjeant's Yeoman,
+or Bailiff's Follower, or Second.
+Also an Excise Officer.</p></entry>
+
+<entry c="v"><title><i>To</i> SETTLE</title>
+<p>to stun, or knock
+down; as, <eg>We settled the Cull by a
+Stoter on his Nob</eg>; i.e. We took him
+such a Blow on the Head, as quite stunn'd him.</p></entry>
+
+<entry c="adj"><title>SHABBY</title>
+<p>in poor sorry Rigging.</p></entry>
+
+
+<entry c="rogue"><title>SHABBEROON</title>
+<p>a Ragamuffin.</p></entry>
+
+<entry c="v"><title>SHAB'D-<i>Off</i></title>
+<p>sneak'd, or fled away.</p></entry>
+
+<entry c="person"><title>SHAG-<i>Bag</i></title>
+<p>a poor shabby Fellow.</p></entry>
+
+<entry c="thing"><title>SHAM</title>
+<p>a Cheat, or Trick. <eg>To Cut a
+Sham</eg>; To play a Rogue's Trick.</p></entry>
+
+<entry c="person"><title>SHAMBLE-<i>Legg'd</i></title>
+<p>one that goes
+wide, and shuffles his Feet about.
+<eg>Shake your Shambles</eg>; Haste, be gone.</p></entry>
+
+<entry c="thing"><title>SHAPPEAU</title>
+<title>or <i>Shappo</i></title>
+<p>for <i>Chappeau</i>, F. a Hat.</p></entry>
+
+<entry c="rogue"><title>SHARPER</title>
+<p>a Cheat, one that lives by his Wits.</p></entry>
+
+<entry c="thing"><title>SHARPERS-<i>Tools</i></title>
+<p>false Dice.</p></entry>
+
+<entry c="rogue"><title>SHAVER</title>
+<p><eg>A cunning Shaver</eg>; A
+subtle, smart Fellow.  <eg>He shaves close</eg>;
+He gripes, squeezes, or extorts very
+severely.</p></entry>
+
+<entry c="money"><title>SHAVINGS</title>
+<p>the Chippings of Money.</p></entry>
+
+<entry c="person,bawd,rogue"><title>SHE-<i>Napper</i></title>
+<p>a Woman Thief-catcher; also
+a Hen-bawd, or Procuress;
+a Debaucher of young Virgins; a
+Maiden head-jobber.</p></entry>
+
+<entry c="place"><title link="ignore">SHOP</title>
+<p>a Prison.</p></entry>
+
+<entry c="rogue"><title>SHOP-<i>Lift</i></title>
+<p>one that Steals under
+pretence of cheap'ning.</p></entry>
+
+<entry c="punishment"><title>SHOPT</title>
+<p>imprison'd.</p></entry>
+
+<entry c="v"><title>SHOT</title>
+<p>as, <eg>To pay one's Shot</eg>; To
+pay one's Club or Proportion.</p></entry>
+
+<entry c="phrase"><title>SHOT <i>'twixt Wind and Water</i></title>
+<p>Clapt or Pox'd.</p></entry>
+
+<entry c="person"><title>SHOULDER-<i>Clapper</i></title>
+<p>a Serjeant or Bailiff.</p></entry>
+
+<entry c="rogue"><title>SHOULDER-<i>Sham</i></title>
+<p>a Partner to a <i>File</i>.</p></entry>
+
+<entry c="person"><title>SHRED</title>
+<p>a Taylor.</p></entry>
+
+<entry c="person"><title>SHUFFLER</title>
+<title>or <i>Shuffling-Fellow</i></title>
+<p>a slippery, shifting Fellow.</p></entry>
+
+<!--* page 28 *-->
+
+<entry c="rogue"><title>SHURK</title>
+<p>a Shark or Sharper.</p></entry>
+
+<entry c="money"><title>SICE</title>
+<p>Six-pence.</p></entry>
+
+<entry c="crime"><title><i>To</i> SILENT <i>a Man</i></title>
+<p>to knock him
+down, so as to stun him: To lay him
+down for dead.  <eg>See the Cull is Silent</eg>,
+is also us'd by desperate Villains, for
+cutting the Throat, or shooting the
+unhappy Person who falls in their way.</p></entry>
+
+<entry c="rogue"><title>SILK <i>Snatchers</i></title>
+<p>a Set of Varlets,
+who snatch Hoods, Scarves, Handkerchiefs,
+or any Thing they can come at.</p></entry>
+
+<entry c="person"><title>SIMKIN</title>
+<p>a Fool.</p></entry>
+
+<entry c="money"><title>SIMON</title>
+<p>Six-pence.</p></entry>
+
+<entry c="person"><title>SINGLE-<i>Ten</i></title>
+<p>a very foolish, silly Fellow.</p></entry>
+
+<entry c="person"><title>SIR JOHN</title>
+<p>the Country-Vicar or Parson.</p></entry>
+
+<entry c="person"><title>SIR TIMOTHY</title>
+<p>one that treats
+every Body, and pays the Reckonings
+every where.</p></entry>
+
+<entry c="thing"><title>SKEW</title>
+<p>a Beggar's wooden Dish.</p></entry>
+
+<entry c="person"><title>SKIN-<i>Flint</i></title>
+<p>a griping, sharping,
+close-fisted Fellow.</p></entry>
+
+<entry c="person,drink"><title>SKINKER</title>
+<p>that fills the Glass or Cup.
+<eg>Who Skinks?</eg>  Who pours out the Liquor.</p></entry>
+
+<entry c="rogue"><title>SKIP-<i>Jacks</i></title>
+<p>Yougsters that ride
+Horses for Sale.</p></entry>
+
+<entry c="place"><title>SKIPPER</title>
+<p>a Barn.</p></entry>
+
+<entry c="thing"><title>SKRIP</title>
+<p>Paper.</p></entry>
+
+<entry c="thing"><title>SLAM</title>
+<p>a Trick; also also a Game intirely
+lost, without getting one on that
+Side.</p></entry>
+
+<entry c="thing"><title>SLAT</title>
+<p>a Sheet.</p></entry>
+
+<entry c="money"><title>SLATE</title>
+<p>a half Crown; also the
+same as <eg>Slot</eg>.</p></entry>
+
+<entry c="place"><title>SLEEPING-<i>House</i></title>
+<p>without Shop,
+Warehouse or Cellar, only for a private Family.</p></entry>
+
+<entry c="thing"><title>SLOUCH</title>
+<p>See <i>Zlouch</i>.</p></entry>
+
+<entry c="rogue"><title>SLUBBER-<i>Degullion</i></title>
+<p>a slovenly,
+dirty, nasty Fellow.</p></entry>
+
+<entry c="rogue"><title>SLUR</title>
+<p>a Cheat at Dice; also a slight
+Scandal or Affront.</p></entry>
+
+<entry c="rogue"><title>SLY-<i>Boots</i></title>
+<p>a seeming silly, but subtle Fellow.</p></entry>
+
+<entry c="person"><title>SMACKING-<i>Cove</i></title>
+<p>a Coachman.</p></entry>
+
+<entry c="v,crime"><title><i>To</i> SMASH</title>
+<p>to quell, to beat or
+abuse violently; to kill.</p></entry>
+
+<entry c="crime"><title>SMASH</title>
+<p>to smite, to kick down
+Stairs.  <eg>The Chubs tout the Blosses, they
+smash them, and make them brush</eg>; The
+Sharpers catch their Mistress at the
+Tavern, making merry without them,
+kick them down Stairs, and force
+them to rub off.</p></entry>
+
+<entry c="person"><title>SMEAR</title>
+<p>a Painter, or Plaisterer,
+&c;</p></entry>
+
+<entry c="thing"><title>SMELLER</title>
+<p>a Nose.</p></entry>
+
+<entry c="thing"><title>SMELLING-<i>Cheat</i></title>
+<p>a Nose-gay; also
+an Orchard or Garden.</p></entry>
+
+<entry c="money"><title>SMELTS</title>
+<p>Half-Guineas.</p></entry>
+
+<entry c="thing"><title>SMITER</title>
+<p>an Arm.</p></entry>
+
+<!--* col *-->
+
+<entry c="v"><title><i>To</i> SMOKE</title>
+<p>to suspect or smell a Design.
+<eg>It is smok'd</eg> It is made Publick, all
+have Notice.</p></entry>
+
+<entry c="person"><title>SMOKER</title>
+<p>a Tobacconist.</p></entry>
+
+<entry c="adj"><title>SMOKY</title>
+<p>Jealous, as, <eg>He is a smoky
+Cull</eg>; He is a suspicious Fellow.</p></entry>
+
+<entry c="person"><title>SMUG</title>
+<p>a Blacksmith.</p></entry>
+
+<entry c="bawd"><title>SMUGGLING-KEN</title>
+<p>a Bawdy-house.</p></entry>
+
+<entry c="bawd"><title>SMUTTY</title>
+<p>Bawdy.</p></entry>
+
+<entry c="v"><title>SNACK</title>
+<p>Share or Part.  <eg>To go snacks</eg>.
+To go halves, or Share and Share alike.</p></entry>
+
+<entry c="crime"><title><i>To</i> SNABBLE</title>
+<p>to rifle, to strip, or
+plunder.  <eg>To Snabble a Poll</eg>, to run
+away with a Peruke or Head-dress.</p></entry>
+
+<entry c="crime"><title><i>To</i> SNAFFLE</title>
+<p>to steal, to rob, to
+purloin.  <eg>A snaffler of Prancers</eg>; a
+Horse-Stealer.  <eg>Snuffle</eg>, is also a Highwayman
+that has got a Booty.</p></entry>
+
+<entry c="crime"><title>SNAPT</title>
+<p>taken, caught.</p></entry>
+
+<entry c="rogue"><title>SNEAK</title>
+<p><eg>He goes upon the Sneak at
+Darkmans</eg>, He privately gets into Houses
+or Shops at Night and Steals undiscovered.</p></entry>
+
+<entry c="rogue"><title><i>A</i> SNEAKING <i>Budge</i></title>
+<p>one that robs
+alone, and deals chiefly in petty Larcenies.</p></entry>
+
+<entry c="v"><title><i>To</i> SNIC</title>
+<p>to cut.</p></entry>
+
+<entry c="v"><title><i>To</i> SNILCH</title>
+<p>to eye or see any Body.
+<eg>The Cull snilches</eg>; the Man eyes or sees
+you.</p></entry>
+
+<entry c="rogue"><title>SNIP</title>
+<p>a Cheat; <eg>T snip</eg>, to cheat.</p></entry>
+
+<entry c="thing"><title>SNITCH</title>
+<title>or <i>Snitchel</i></title>
+<p>a Filip on the
+Nose.</p></entry>
+
+<entry c="v"><title>SNITE</title>
+<p>to wipe, or flap.  <eg>Snite his
+Snitch</eg>; wipe his Nose, or give him a
+good Flap on the Face.</p></entry>
+
+<entry c="thing"><title>SNOUT</title>
+<p>a Hogshead.</p></entry>
+
+<entry c="drink"><title>SNOW-<i>Broth</i></title>
+<p>Snow-water.</p></entry>
+
+<entry c="rogue"><title>SNUDGE</title>
+<p>one that lurks under a
+Bed, to watch an Opportunity to rob
+the House.</p></entry>
+
+<entry c="adj"><title>SNUG</title>
+<p><eg>All's snug</eg>; All's quiet, used
+by Villains, when every thing is silent
+and they hear no body stir to oppose
+their intended Rogueries.</p></entry>
+
+<entry c="money,punishment"><title>SOCK</title>
+<p>a Pocket.  <eg>Not a Rag in my
+Sock</eg>; I han't a Farthing in my Pocket.
+Also beat; <eg>I'll Sock ye</eg>; I'll drub
+ye tightly.</p></entry>
+
+<entry c="money"><title>SOCKET <i>Money</i></title>
+<p>demanded and
+spent upon <i>Marriage</i>.</p></entry>
+
+<entry c="drink"><title>SOLDIERS-<i>Bottle</i></title>
+<p>a large one.</p></entry>
+
+<entry c="thing"><title>SOLOMON</title>
+<title>or <i>Soloman</i></title>
+<p>the Mass.</p></entry>
+
+<entry c="person"><title>SON <i>of Apollo</i></title>
+<p>a Scholar.</p></entry>
+
+<entry c="person"><title>SON <i>of Mars</i></title>
+<p>a Soldier.</p></entry>
+
+<entry c="person"><title>SON <i>of Venus</i></title>
+<p>a Lover of Women.</p></entry>
+
+<entry c="person"><title>SON <i>of Mercury</i></title>
+<p>a Wit.  Also a
+Thief.</p></entry>
+
+<entry c="person"><title>SON <i>of Prattlement</i></title>
+<p>a Lawyer.</p></entry>
+
+<entry c="person"><title>SOUL-<i>Driver</i></title>
+<p>a Parson.</p></entry>
+
+<entry c="person,drink"><title><i>A</i> SOUL</title>
+<p>one that loves Brandy.</p></entry>
+
+<entry c="crime"><title>SOULDIER's <i>Mawnd</i></title>
+<p>a counterfeit
+Sore or Wound in the left Arm.</p></entry>
+
+<!--* page 29 *-->
+
+<entry c="money"><title>SOUSE</title>
+<p><eg>Not a Souse</eg>; not a Penny.
+From <i>Sous</i>, <i>French</i> Money.</p></entry>
+
+<entry c="v,crime"><title><i>To</i> SOUDSE</title>
+<p>to fall upon, to beat
+cruelly; also to plunder or kill.</p></entry>
+
+<entry c="drink"><title>SOUTH-SEA</title>
+<p>a strong distill'd Liquor,
+so called by the Inhabitants and
+Clients of <i>Newgate</i>, &c;</p></entry>
+
+<entry c="drink"><title>SOUTH-SEA <i>Mountain</i></title>
+<p>Geneva.</p></entry>
+
+<entry c="thing"><title>SOW's <i>Baby</i></title>
+<p>a Pig.</p></entry>
+
+<entry c="person"><title>SOWSE <i>Crown</i></title>
+<p>a Fool.</p></entry>
+
+<entry c="person"><title>SOW-<i>Child</i></title>
+<p>a Female Child.</p></entry>
+
+<entry c="punishment"><title><i>To</i> SOWR</title>
+<p>to beat violently, &c;
+As, <eg>Sowr the Cull</eg>; <i>i. e.</i> knock him
+down: Beat him without Mercy, &c;</p></entry>
+
+<entry c="money"><title>SPANGLES</title>
+<p>Ends of Gold or Silver.</p></entry>
+
+<entry c="thing"><title>SPANISH-<i>Gout</i></title>
+<p>the Pox.</p></entry>
+
+<entry c="thing"><title>SPANISH-<i>Money</i></title>
+<p>fair Words and
+Compliments.</p></entry>
+
+<entry c="money"><title>SPANKS</title>
+<p>Money, Gold or Silver.</p></entry>
+
+<entry c="v,crime"><title><i>To</i> SPEAK <i>with</i></title>
+<p>to steal.</p></entry>
+
+<entry c="thing"><title>SPECKT-<i>Wiper</i></title>
+<p>a coloured Handkerchief.</p></entry>
+
+<entry c="v"><title><i>To</i> SPIRIT-<i>Away</i></title>
+<p>the same as<i>Kidnap</i>.</p></entry>
+
+<entry c="person"><title>SPIRITUAL-<i>Flesh Broker</i></title>
+<p>a Parson.</p></entry>
+
+<entry c="person"><title>SPLIT-<i>Fig</i></title>
+<p>a Grocer.</p></entry>
+
+<entry c="person"><title>SPLITTER-<i>of-Causes</i></title>
+<p>a Lawyer.</p></entry>
+
+<entry c="v"><title><i>To</i> SPRING <i>a Partridge</i></title>
+<p>to draw a
+Person in to be bit.  <eg>To spring Partridges</eg>;
+to raise a Crowd in order to
+rob or pick Pockets.</p></entry>
+
+<entry c="drink"><title><i>To</i> SPUNGE</title>
+<p>to drink at others Cost.</p></entry>
+
+<entry c="place"><title>SPUNGING-<i>House</i></title>
+<p>a By-prison.</p></entry>
+
+<entry c="rogue"><title><i>A</i> SPUNGING <i>Fellow</i></title>
+<p>one tat lives
+upon the rest, and pays nothing.</p></entry>
+
+<entry c="person"><title>SQUAB</title>
+<p>a very fat, truss Person; a
+new-hatch'd Chick; also a Couch.</p></entry>
+
+<entry c="thing"><title>SQUAWL</title>
+<p>a Voice; as, <eg>The Cove has
+a bien Squawl</eg>; The Fellow has a good
+Voice.</p></entry>
+
+<entry c="v"><title><i>To</i> SQUEEK</title>
+<p>to discover, or impeach;
+also to cry out.  <eg>They squeek
+Beef upon us</eg>; They cry out Highway-men
+or Thieves after us.  <eg>The Cull
+squeeks</eg>; The Rogue peaches.</p></entry>
+
+<entry c="person"><title>SQUEEKER</title>
+<p>a Barboy; also a Bastard,
+or any other Child.  <eg>Stifle the
+Squueker</eg>; Murder the Child, and
+throw it into a House of Office.</p></entry>
+
+<entry c="thing"><title>SQUEEZING <i>of Wax</i></title>
+<p>being bound
+for any Body; also sealing of Writings.</p></entry>
+
+<entry c="person"><title>SQUINTE-<i>Fuego</i></title>
+<p>one that squints
+very much.</p></entry>
+
+<entry c="person"><title>SQUIRE <i>of Alsatia</i></title>
+<p>a Man of Fortune,
+drawn in, cheated, and ruin'd by
+a Pack of poor, lowsy, spunging Fellows,
+that lived (formerly) in <i>White-Fryars</i>.
+<eg>The Squire</eg>, a Sir <i>Timothy
+Treat-all</i>; also a Sap-Pate.  <eg>A fat
+Squire</eg>; A rich Fool.</p></entry>
+
+<entry c="adj"><title>SQUIRISH</title>
+<p>foolish; also one that
+<!--* col *-->
+pretends to pay all Reckonings, and is
+not strong enough in the Pocket.</p></entry>
+
+<entry c="person"><title>STAG</title>
+<p>a Term (inverting Qualities)
+used for an Enemy, a Pursuer;
+as, <eg>I spy a Stag</eg>, used by that notorious
+young Robber <i>Shepherd</i>, lately executed,
+when he first saw the Turnkey
+of <i>Newgate</i>, who pursu'd and took
+him after his first Escape from the <i>Condemn'd Hold</i>.</p></entry>
+
+<entry c="thing"><title>STALE <i>Jest</i></title>
+<p>old, dull.</p></entry>
+
+<entry c="person"><title>STALE <i>Maid</i></title>
+<p>at her last Prayers.</p></entry>
+
+<entry c="bawd"><title>STALLION</title>
+<p>a Whore-Master; so
+called from a Stone-horse kept to cover
+Mares.</p></entry>
+
+<entry c="person"><title>STALL-<i>Whimper</i></title>
+<p>a Bastard.</p></entry>
+
+<entry c="thing"><title>STALLING</title>
+<p>making or ordaining.</p></entry>
+
+<entry c="place"><title>STALLNG-<i>Ken</i></title>
+<p>a Broker's Shop,
+or any House that receives stollen
+Goods.</p></entry>
+
+<entry c="v"><title><i>To</i> STAM-<i>Flesh</i></title>
+<p>to Cant; as, <eg>The
+Cully Stamfleshes rumly</eg>; He cants very
+well.</p></entry>
+
+<entry c="person"><title>STAMMEL</title>
+<title>or <i>Strammel</i></title>
+<p>a brawny,
+lusty, strapping Wench.</p></entry>
+
+<entry c="thing"><title>STAMPS</title>
+<p>Legs.</p></entry>
+
+<entry c="thing"><title>STAMPERS</title>
+<p>Shoes; also Carriers.</p></entry>
+
+<entry c="thing"><title>STARTER</title>
+<p>a Question; also a Flincher.
+<eg>I am no Starter</eg>; I shan't flinch,
+or cry to go home.</p></entry>
+
+<entry c="thing"><title>STICK <i>Flams</i></title>
+<p>a Pair of Gloves.</p></entry>
+
+<entry c="drink"><title>STINGO</title>
+<p>humming, strong Liquor.</p></entry>
+
+<entry c="drink"><title>STITCH-<i>Back</i></title>
+<p>very strong Ale.</p></entry>
+
+<entry c="thing"><title>STOCK-<i>Drawers</i></title>
+<p>Stockings.</p></entry>
+
+<entry c="adj"><title>STONE-<i>Dead</i></title>
+<p>quite dead.</p></entry>
+
+<entry c="place"><title>STONE <i>Doublet</i></title>
+<p>a Prison.</p></entry>
+
+<entry c="v"><title>STOP</title>
+<p>as, <eg>I have stopt his Blubber</eg>;
+I have stopt his Mouth.</p></entry>
+
+<entry c="place"><title>STOP-<i>Hole Abbey</i></title>
+<p>the Nick-name of
+the chief Rendezvous of the Canting
+Crew of <i>Gypsies</i>, <i>Cheats</i>,
+<i>Thieves</i>, &c;</p></entry>
+
+<entry c="thing"><title>STOTER</title>
+<p>a great Blow.  <eg>Stoter
+him</eg>, or, <eg>Tip him a Stoter</eg>; Settle him;
+give him a swinging Blow.</p></entry>
+
+<entry c="v"><title>STOW</title>
+<p><i>i.e.</i> You have said enough.
+<eg>Stow you, bene Cove</eg>; Hold your Peace,
+good Fellow.  <eg>Stow your Whids and
+plant them; for the Cove of the Ken can
+cant them</eg>; Take care what you say;
+for the Man of the House understands
+you.</p></entry>
+
+<entry c="bawd"><title>STRAPPING</title>
+<p>lying with a Wench.</p></entry>
+
+<entry c="bawd"><title>STRAPPING-<i>Lass</i></title>
+<p>a swinging two-handed Woman.</p></entry>
+
+<entry c="punishment"><title>STRETCHING</title>
+<p>hanging.  <eg>He will
+stretch for it</eg>; He will be hang'd.</p></entry>
+
+<entry c="crime"><title link="ignore"><i>To</i> STRETCH</title>
+<p>to tell a Lye; as,
+<eg>He stretcht hard</eg>; He told a whicking
+Lye.</p></entry>
+
+<entry c="crime,v"><title>STRIKE</title>
+<p>to beg or rob; also to
+borrow Money.  <eg>Strike all the Cheats</eg>;
+Rob all that you meet.  <eg>Strike the Cull</eg>;
+<!--* Page 30 *-->
+Beg of that Gentleman.  <eg>Strike the
+Cloy</eg>; Get the Fellow's Money from
+him.  <eg>He has struck the Quidds</eg>; He has
+got the Money from him.  <eg>He strikes
+every Body</eg>; He borrows Money every
+where; he runs in every one's Debt.</p></entry>
+
+<entry c="crime"><title><i>To</i> STRIP</title>
+<p>to rob or <i>gut</i> a House,
+to unrig any Body; or to <i>bite</i> them of
+their Money.</p></entry>
+
+<entry c="crime"><title><i>To</i> STRIP <i>the Ken</i></title>
+<p>To <i>gut</i> the
+House.</p></entry>
+
+<entry c="crime"><title><i>To</i> STRIP <i>the Table</i></title>
+<p>To win all
+the Money on the Place.  <eg>We have stript
+the Cull</eg>; We have got all the Fool's
+Money.  <eg>The Cove's stript</eg>; The Rogue
+has not a <i>Jack</i> left to help himself.</p></entry>
+
+<entry c="thing"><title>STROMMEL</title>
+<p>Strap, or Hair, as,
+<eg>She hath good Store of Strommel on her
+Nob</eg>.</p></entry>
+
+<entry c="rogue"><title>STROWLERS</title>
+<p>Vagabonds, Itinerants,
+Men of no settled Abode, of a
+precarious Life, Wanderers of Fortune,
+such as Gypsies, Beggars, Pedlars,
+Hawkers, Mountebanks, Fidlers,
+Country-Players, Rope-dancers, Jugglers,
+Tumblers, Shewers of Tricks,
+and Raree-show-men.</p></entry>
+
+<entry c="rogue"><title>STROWLING-<i>Morts</i></title>
+<p>who,
+pretending to be Widows, often travel
+the Countries, making Laces upon
+Yews, Beggar's-tape, &c;  Are light-finger'd,
+subtle, hypocritical, cruel,
+and often dangerous to meet, especially
+when a <i>Ruffler</i> is with them.</p></entry>
+
+<entry c="thing,bawd"><title>STRUM</title>
+<p>a Ferriwig.  <eg>Rum-strum</eg>;
+A long Wig.  Also a handsome Wench,
+or Strumpet.</p></entry>
+
+<entry c="v"><title>STUBBLE-<i>It</i></title>
+<p>Hold your Tongue.</p></entry>
+
+<entry c="thing"><title>STULING-<i>Ken</i></title>
+<p>the same as <i>Stalling Ken</i>.  Which see.</p></entry>
+
+<entry c="drink"><title>SUCK</title>
+<p>Wine or strong Drink.  <eg>This
+is rum Suck</eg>; It is excellent Tipple.
+<eg>We'll go and Suck our Faces; but if they
+toute us, we'll take Rattle, and brush</eg>;
+Let's go to drink and be merry; but if
+we be smelt by the People of the
+House, we must scowre off.  <eg>He loves
+to Suck his Face</eg>; He delights in Drinking.</p></entry>
+
+<entry c="drink"><title>SUCKY</title>
+<p>drunkish, maudling, half-Seas over.</p></entry>
+
+<entry c="drink"><title>SUIT <i>and Cloak</i></title>
+<p>good Store of
+Brandy or any agreeable Liquor.</p></entry>
+
+<entry c="thing"><title>SUN-<i>Burnt</i></title>
+<p>clapt.</p></entry>
+
+<entry c="thing"><title>SUNNY-<i>Bank</i></title>
+<p>a good, rousing
+Winter-Fire.</p></entry>
+
+<entry c="drink"><title>SUPERNACULUM</title>
+<p>not so much as
+a Drop left to be poured upon the
+Thumb nail, so cleverly was the Liquor
+tipt off.</p></entry>
+
+<entry c="person"><title>SU-POUCH</title>
+<p>an Hostess or Landlady.</p></entry>
+
+<entry c="rogue"><title>SUTLER</title>
+<p>he that pockets up Gloves,
+Knives, Handkerchiefs, Snuff and Tobacco-boxes,
+<!--* col *-->
+and other lesser Moveables.</p></entry>
+
+<entry c="rogue"><title>SWADDLERS</title>
+<p>Rogues, who, not
+content to rob and plunder, beat and
+barbarously abuse, andoften murder
+the Passengers.  Hence, <eg>To seaddle</eg>;
+To beat lustily with a Cane, &c;</p></entry>
+
+<entry c="place"><title>SWAG</title>
+<p>a Shop.  <eg>Rum Swag</eg>; Full
+of rich Goods.</p></entry>
+
+<entry c="v"><title><i>To</i> SWAGGER</title>
+<p>to vapour or bounce.</p></entry>
+
+<entry c="adj"><title>SWEET</title>
+<p>easy to be taken in; Also
+expert, dexterous, clever: As, <eg>Sweet's
+your Hand</eg>; said of one who has the
+Knack of stealing by Sleight of Hand.</p></entry>
+
+<entry c="rogue"><title>SWEETNERS</title>
+<p>Guinea-droppers,
+Cheats, Sharpers.  <eg>To Sweeten</eg>; To
+decoy, draw in, and <i>bute</i>.  <eg>To be sweet
+upon</eg>; To coax, wheedle,entice or
+allure.</p></entry>
+
+<entry c="drink"><title>SWIG</title>
+<p>a draught of Liquor; <eg>To
+swig it off</eg>; To drink it all up.</p></entry>
+
+<entry c="rogue"><title>SWIG-<i>Men</i></title>
+<p>carrying small Haberdashery-Wares about, pretending to
+sell them, to colour their Roguery.
+Fellows crying <i>Old Shoes, Boots, or
+brooms</i>; and thos pretending to buy
+<i>Old Suits, Hats</i> or <i>Cloaks</i>, are also
+called <i>Swig-Men</i>, and oftentimes, if
+an Opportunity offers, make all Fish
+that comes to Net.</p></entry>
+
+<entry c="thing"><title>SWINDGING-<i>Clap</i></title>
+<title><i>Swindging Fellow</i></title>
+<title><i>Swindging Lye</i></title>
+<p>a very great one.</p></entry>
+
+<entry c="punishment"><title><i>To</i> SWINDE <i>one off</i></title>
+<p>to beat him soundly.</p></entry>
+
+</letter>
+
+<letter name="t"><title>T</title>
+<entry c="person,thing"><title>TACKLE</title>
+<p>a Mistress; also good
+Cloaths.  <eg>The Cull has tipt his Tackle
+Rum-rigging</eg>, or <eg>has tipt his Bloss
+Rum Tackle</eg>; The keeping Coxcomb
+has given his Mistress very fine Cloaths.</p></entry>
+
+<entry c="crime"><title>TAKE <i>the Culls in</i></title>
+<p>Seize the Men
+in order to rob them.</p></entry>
+
+<entry c="person"><title>TALE-<i>Tellers</i></title>
+<p>a sort of Servants in
+use with the great Men in <i>Ireland</i>, to
+lull them asleep with Stories of a Cock
+and a Bull, &c;</p></entry>
+
+<entry c="person"><title>TALESMAN</title>
+<p>as, <eg>I tell you my Tale,
+and my Talesman</eg>, or Author.</p></entry>
+
+<entry c="drink"><title>TALL-<i>Boy</i></title>
+<p>a Pottle or two Quart
+Pot.</p></entry>
+
+<entry c="person"><title>TALLY-<i>Men</i></title>
+<p>Brokers that let out
+Cloaths to wear <i>per</i> Week, Month or
+Year.  See <i>Rabbit-Suckers</i>.</p></entry>
+
+<entry c="punishment"><title>TAP</title>
+<p>a Blow; a small Tap, &c;</p></entry>
+
+<entry c="drink"><title>TAPE, <i>Red</i> or <i>White</i></title>
+<p>Geneva,
+Aniseed, Clove water, so called by
+<i>Canters</i> and <i>Villains</i>, and the Renters
+<!--* page 31 *-->
+of the Trap, &c; in <i>Newgate</i>, ans other
+Prisons.</p></entry>
+
+<entry c="drink"><title>TAPLASH</title>
+<p>wretched, sorry Drink,
+or Hogwash.</p></entry>
+
+<entry c="adj"><title>TART <i>Dames</i></title>
+<p>sharp, quick, pert.</p></entry>
+
+<entry c="rogue"><title>TARTAR</title>
+<p>a notorious Rogue or
+Sharper, who sticks not to rob his
+Brother Rogue.  Hence <eg>To catch a
+Tartar</eg>, is said, among the Canting
+Varlets, when a Rogue attacks one
+that he thinks a Passenger, but proves
+to be of this Clan of Villains, who in
+his Turn having overcome the Assailant,
+robs, plunders and binds him.</p></entry>
+
+<entry c="rogue"><title>TATTER-<i>De-mallion</i></title>
+<p>a tattered
+Beggar, sometimes half naked, with
+Design to move Charity, having better
+Cloaths at Home.  <eg>in Tatters</eg>; in Rags.
+<eg>Tattered and Torn</eg>; rent and torn.</p></entry>
+
+<entry c="thing"><title>TATTLE</title>
+<title>or <i>Tattler</i></title>
+<p>an Alarum,
+or striking Watch; or indeed any
+other Watch.</p></entry>
+
+<entry c="thing"><title>TATS</title>
+<p>false Dice.</p></entry>
+
+<entry c="adj"><title>TAUDRY</title>
+<p>garish, gawdy, with
+Lace, or mismatched and staring Colours:
+A Term borrow'd from those
+Times when they trick'd and bedeck'd
+the Shrines and Altars of the Saints, as
+being at Emulation with each other
+upon that Occasion.  The Votaries of
+St. <i>Audery</i> (in Isle of <i>Ely</i> Saint) exeeding
+all the rest in the Dress and
+Equipage of their Altar, it grew into a
+By-word, upon any thing very gawdy,
+that it was <i>All Taudry</i>; as much as to
+say, <eg>All St. Audery</eg>.</p></entry>
+
+<entry c="thing"><title>TAYLE</title>
+<p>a Sword.</p></entry>
+
+<entry c="rogue"><title>TAYLE <i>Drawers</i></title>
+<p>Sword-Stealers.
+The same as <i>Wiper-Drawers</i>.  <eg>He drew
+the Cull's Tayle Rumly</eg>; He whipt away
+the Gentleman's Sword cleverly.</p></entry>
+
+<entry c="place"><title>TEAGUE-<i>Land</i></title>
+<p>Ireland.</p></entry>
+
+<entry c="person"><title>TEAGUE-<i>Landers</i></title>
+<p>Irishmen.</p></entry>
+
+<entry c="drink"><title>TEARS <i>of the Tankard</i></title>
+<p>Drops of
+the good Liquor that fall beside.</p></entry>
+
+<entry c="thing"><title>TEMPLE <i>Pickling</i></title>
+<p>the Pumping of
+Bailiffs, Bums, Setters, Pick-Pockets,
+&c;</p></entry>
+
+<entry c="person"><title>TENDER-<i>Parnel</i></title>
+<p>a very nicely educated
+Creature, apt to catch cold on
+the least Puff of Wind.</p></entry>
+
+<entry c="person"><title>TERCEL <i>Gentle</i></title>
+<p>a Knight or Gentleman
+of a good Estate; also any
+rich Man.</p></entry>
+
+<entry c="place"><title>TERRA-<i>Firma</i></title>
+<p>an Estate in Land;
+<eg>Has the Cull got any Terra Firma?</eg>  Has the
+Fool got any Land.</p></entry>
+
+<entry c="bawd"><title>THE <i>Dragon upon St. George</i></title>
+<p>the Woman uppermost.</p></entry>
+
+<entry c="person,rogue"><title>THIEF-<i>Takers</i></title>
+<p>who make a Trade
+of helping People (for a Gratuity) to
+<!--* col *-->
+their lost Goods and sometimes, for
+Interest, or Envy, snapping the Rogues
+themselves, being usually in Fee with
+them, and acquainted with their Haunts.</p></entry>
+
+<entry c="thing"><title>THOROUGH-<i>Cough</i></title>
+<p>farting and
+coughing at the same time.</p></entry>
+
+<entry c="thing"><title>THOROUGH <i>Passage</i></title>
+<p>in at one Ear
+and out at t'other.</p></entry>
+
+<entry c="thing"><title>THOROUGH <i>Stitch</i></title>
+<p>over Shoes,
+over Boots.</p></entry>
+
+<entry c="thing"><title>THREE <i>Legged Stool</i></title>
+<title>or <i>Three legged Mare</i></title>
+<p>Tyburn.</p></entry>
+
+<entry c="drink"><title>THREE <i>Threads</i></title>
+<p>half common Ale,
+and half Stout or double Beer.</p></entry>
+
+<entry c="money"><title>THREPPS</title>
+<p>Three-pence.</p></entry>
+
+<entry c="thing"><title>THROTTLE</title>
+<p>Throat or Gullet; <eg>He
+siezed is Throttle</eg>: i.e. He took him
+by the Throat.</p></entry>
+
+<entry c="money"><title>THRUMS</title>
+<p>Three Pence.  <eg>Tip me
+Thrums</eg>; Lend me Three Pence.</p></entry>
+
+<entry c="punishment"><title>THUMMIKINS</title>
+<p>a Punishment (in
+<i>Scotland</i>) by hard squeezing or pressing
+of the Thumbs, to extort Confession,
+which stretches them prodigiously,
+and is very painful.  In Camps,
+and on Board of Ships, lighted Matches
+are clapt between the Fingers to the
+same Intent.</p></entry>
+
+<entry c="punishment"><title>THWACK</title>
+<p>to beat with a Stick or
+Cudgel.</p></entry>
+
+<entry c="person"><title>TIB</title>
+<p>a young Lass.</p></entry>
+
+<entry c="thing"><title>TIB <i>of the Buttery</i></title>
+<p>a Goose.</p></entry>
+
+<entry c="v"><title>TICK</title>
+<p>as, <eg>to run on Tick</eg>; To go on
+the Score, or Trust.</p></entry>
+
+<entry c="person"><title>TICKLE-<i>Pitcher</i></title>
+<p>a Tosspot, or Pot-companion.
+A lewd Man or Woman.</p></entry>
+
+<entry c="thing"><title>TICKRUM</title>
+<p>a Licence.</p></entry>
+
+<entry c="bawd,drink"><title>TIFFING</title>
+<p>lying with a Wench, also
+Drinking.</p></entry>
+
+<entry c="thing"><title>TILTER</title>
+<p>a Sword.  <eg>To Tilt</eg>, to fight
+with a Rapier.  <eg>Run a Tilt</eg>; a swift
+Pursuit.</p></entry>
+
+<entry c="thing"><title>TINT <i>for Tant</i></title>
+<p>Hit for Hit, Dash
+for Dash.</p></entry>
+
+<entry c="v"><title>TIP</title>
+<p>to give or lend: <eg>Tip your Lour</eg>
+or <eg>Cole or I'll mill ye</eg>; Give me your
+Money, or I'll kill ye.  <eg>Tip the COle to
+Adam Tiler</eg>; Give your Pick-pocket
+Money presently to your running
+Comrade.  <eg>Tip the Mish</eg>; Give me the
+Shirt.  <eg>Tip me a Hog</eg>; Lend me a Shilling.
+<eg>Tip it all off</eg>; Drink it all off at
+a Draught.  <eg>Don't spoil his Tip</eg>; Don't
+baulk his Draught.  <eg>A Tub of good Tip</eg>;
+(for Tipple) a Cask of strong Drink.
+<eg>To tip off</eg>, also signifies to die.</p></entry>
+
+<entry c="thing"><title>TIPLER</title>
+<p>a Fuddle-cap, or Toss pot.</p></entry>
+
+<entry c="drink"><title>TIPSY</title>
+<p>almost drunk.</p></entry>
+
+<entry c="thing,person"><title>TIT</title>
+<p>a Horse; also a young prim
+Lass.</p></entry>
+
+<entry c="thing"><title>TIT-<i>Bit</i></title>
+<p>a fine Snack, or choice
+Morsel.</p></entry>
+
+<!--* page 32 *-->
+
+<entry c="thing"><title>TITTLE-<i>Tattle</i></title>
+<p>idle, impertinent
+Talk.</p></entry>
+
+<entry c="v"><title><i>To</i> TITTER</title>
+<p>to laugh at a Feather.</p></entry>
+
+<entry c="drink"><title>TITTER-<i>Totter</i></title>
+<p>one ready to reel,
+at every Jog, or Blast of Wind.</p></entry>
+
+<entry c="thing"><title>TOGE</title>
+<p>a Coat.</p></entry>
+
+<entry c="thing"><title>TOGEMANS</title>
+<p>a Gown, or Cloak.  <eg>I
+have bit the Togemans</eg>; I have stole the
+Cloak.  <eg>Tis a Rum Togemans lets nim it</eg>;
+'Tis a good Camblet-Cloak; lets whip
+it off.</p></entry>
+
+<entry c="thing,money"><title>TOKENS</title>
+<p>the Plague; also Presents
+from one to another; also a Farthing.
+<eg>Not a Token left</eg>; Not a Farthing remaining.
+<eg>Tom Fools token</eg>; Money.</p></entry>
+
+<entry c="thing"><title>TOL.</title>
+<p><i>Toledo</i>, a Sword.  <eg>Bite the
+Tol</eg>; Steal the Sword.  <eg>A Rum Tol</eg>;
+A silver hilted Sword.  <eg>A Queere Tol</eg>;
+A Brass or Steel-hilted or ordinary
+Sword.</p></entry>
+
+<entry c="person"><title>TOM-<i>Boy</i></title>
+<p>a Tom Rig, or Romp.</p></entry>
+
+<entry c="person"><title>TOM <i>of Bedlam</i></title>
+<p>the same as <i>Abram-Man</i>.
+Which See.</p></entry>
+
+<entry c="person"><title>TOM-<i>Cony</i></title>
+<p>a very silly Felow.</p></entry>
+
+<entry c="person"><title>TOM-<i>Thumb</i></title>
+<p>a Dwarf or diminutive Fellow.</p></entry>
+
+<entry c="adj"><title>TOM-<i>Long</i></title>
+<p>tedious; as <eg>Come by
+Tom Long the Carrier</eg>; of what is very
+long a coming.</p></entry>
+
+<entry c="person"><title>TONGUE-<i>Pad</i></title>
+<p>a smooth, glib-tongued,
+insinuating Fellow.</p></entry>
+
+<entry c="person"><title>TONY</title>
+<p>a silly Fellow or Ninny.  <eg>A
+meer Tony</eg>; a meer Simpleton.</p></entry>
+
+<entry c="thing"><title>TOOL</title>
+<p>an Implement fit for any
+Turn, the Creature of any Cause or
+Faction; a meer Property, or Cat's
+Foot.</p></entry>
+
+<entry c="crime"><title link="ignore"><i>To</i> TOP</title>
+<target>top upon</target>
+<p>to cheat or trick any one;
+also to insult.  <eg>What, do you top upon
+me?</eg>  Do you stick a little Wax to the
+Dice to keep them together, to get the
+Chance you would have?  <eg>He thought to
+have topt upon me</eg>; He designed to have
+put upon, sharped, bullied, or affronted
+me.</p></entry>
+
+<entry c="person"><title>TOP <i>Diver</i></title>
+<p>a Lover of Women.</p></entry>
+
+<entry c="drink"><title>To TOPE</title>
+<p>to drink.  <eg>An old Toper</eg>;
+a staunch Drunkard.  <eg>To tope it about</eg>,
+or <eg>Dust it about</eg>; To drink briskly
+about.</p></entry>
+
+<entry c="drink"><title>TOP-<i>Heavy</i></title>
+<p>Drunk.</p></entry>
+
+<entry c="person"><title>TOPPING-<i>Fellow</i></title>
+<p>who has reach'd
+the Pitch and greatest Eminence in any
+Art; the Master, and the Cock of his
+Profession.</p></entry>
+
+<entry c="punishment,place"><title>TOPPING-<i>Cheat</i></title>
+<p>the Gallows.</p></entry>
+
+<entry c="person"><title>TOPPING-<i>Cove</i></title>
+<p>the Hangman.</p></entry>
+
+<entry c="person"><title>TORCH-<i>Cul</i></title>
+<p>Bum sodder.</p></entry>
+
+<entry c="rogue"><title>TORIES</title>
+<p><i>Irish</i> Thieves or Rapparees.</p></entry>
+
+<entry c="v"><title><i>To</i> TOST</title>
+<title>or <i>Toast</i></title>
+<p>to name or
+begin a new Health.  <eg>Who tosts now?</eg>
+Who Christens the Health?  <eg>An old Tost</eg>;
+A pert, pleasant, old Fellow.</p></entry>
+
+<!--* Col *-->
+
+<entry c="adj"><title>TOTTY-<i>Headed</i></title>
+<p>giddy-headed,
+hare-brained.</p></entry>
+
+<entry c="v"><title brace="right"><i>To</i> TOUR</title>
+<title><i>To</i> TOUT</title>
+<p>to look out sharp, to be
+upon one's Guard.  <eg>Who
+touts?</eg> Who looks out sharp?  <eg>Tout the
+Culls</eg>; Eye those Folks which way they
+take.  <eg>Do you tout and bulk, and I'll
+file</eg>; If you'll eye and jostlehim, I will
+pick his Pockets.</p></entry>
+
+<entry c="place,drink"><title>TOUTING-<i>Ken</i></title>
+<p>a Tavern or Ale-house Bar.</p></entry>
+
+<entry c="punishment"><title>TOWER <i>Hill Play</i></title>
+<p>a Slap on the
+Face and a Kick on the Breech.</p></entry>
+
+<entry c="person"><title>TOWN-<i>Bull</i></title>
+<p>one that rides all the
+Women he meets.</p></entry>
+
+<entry c="money"><title>TOWER</title>
+<p>a <i>Cant Word</i>, used to denote
+bad, or clipped Money: as, <eg>They
+have been round the Tower with it</eg>; te he
+Piece of Money has been clipt.</p></entry>
+
+<entry c="v"><title>TRACK</title>
+<p>to go.  <eg>Track up the Dancers</eg>;
+Whip up the Stairs.</p></entry>
+
+<entry c="v"><title>TRANSNEAR</title>
+<p>to come up with any
+Body.</p></entry>
+
+<entry c="person"><title>TRANSLATORS</title>
+<p>Sellers of old
+Shoes and Boots, between Shoemakers
+and Cobblers; also that turn or translate
+out of one Language into another.</p></entry>
+
+<entry c="thing"><title>TRANSMOGRIFY</title>
+<p>or rather <i>Transmigrafy</i>,
+to alter or new vamp.</p></entry>
+
+<entry c="rogue"><title>TRANTER</title>
+<p>See <i>Crocker</i>.</p></entry>
+
+<entry c="rogue"><title>TRAPAN</title>
+<p>he that draws in or
+wheedles a <i>Cull</i>, and <i>Bites</i> him.  <eg>Trapann'd</eg>;
+sharp'd, ensnar'd.</p></entry>
+
+<entry c="person"><title>TRAPES</title>
+<p>a dangling Slattern.</p></entry>
+
+<entry c="money"><title>TRES-WINS</title>
+<p>Three Pence.</p></entry>
+
+<entry c="person"><title>TRIGRY-<i>Mate</i></title>
+<p>an idle She-companion.</p></entry>
+
+<entry c="place"><title>TRIP</title>
+<p>a Prison.  <eg>He is in Trib</eg>, for
+<i>Tribulation</i>; He is laid by the Heels,
+or in a great deal of Trouble.</p></entry>
+
+<entry c="thing"><title>TRIM</title>
+<p>Dress.  <eg>In a sad Trim</eg>; dirty,
+undress'd.  <eg>A Trim Lad</eg>; A spruce,
+neat, well trick'd Man.</p></entry>
+
+<entry c="crime"><title>TRIMMING</title>
+<p>cheating People
+of their Money.</p></entry>
+
+<entry c="punishment,place"><title><i>To</i> TRINE</title>
+<p>to hang; also <i>Tyburn</i>.</p></entry>
+
+<entry c="punishment"><title>TRINING</title>
+<p>hanging.</p></entry>
+
+<entry c="thing"><title>TRINKETS</title>
+<p>Toys and Trifles.</p></entry>
+
+<entry c="thing"><title>TRINGUM-TRANGUM</title>
+<p>a Whim or Maggot.</p></entry>
+
+<entry c="thing"><title>TRIPE</title>
+<p>the Belly or Guts.</p></entry>
+
+<entry c="thing,person"><title>TRIP</title>
+<p>a short Voyage or Journey;
+also an Error of the Tongue, or Pen;
+a Stumble, a false Step, a Miscarriage.
+Also a Bastard.</p></entry>
+
+<entry c="person"><title>TROT</title>
+<p>as, <eg>An old Trot</eg>, a sorry,
+base, old Woman.  <eg>A Dog Trot</eg>; A
+pretty Pace.</p></entry>
+
+<entry c="thing"><title>TROTTERS</title>
+<p>Feet, usually Sheeps.
+<eg>Shake your Trotters</eg>; Troop off, be
+gone.</p></entry>
+
+<entry c="v"><title><i>To</i> TROLL<i>About</i></title>
+<p>to saunter, loiter,
+or wander about.</p></entry>
+
+<!--* page 33 -->
+
+<entry c="thing"><title>TROLLOP</title>
+<p><eg>a A great Trollop</eg>, a lusty
+coarse Romp.</p></entry>
+
+<entry c="money"><title>TROOPER</title>
+<p>a half Crown.</p></entry>
+
+<entry c="punishment"><title>TROUNCED</title>
+<p>troubled, cast in Law
+punished.</p></entry>
+
+<entry c="person"><title>TRUG</title>
+<p>a dirty Puzzle, an ordinary
+sorry Woman.</p></entry>
+
+<entry c="bawd"><title>TRULL</title>
+<p>a Whore, also a Tinker's
+travelling Wife or Wench.</p></entry>
+
+<entry c="thing"><title>TRUMPERY</title>
+<p>old Ware, old Stuff.</p></entry>
+
+<entry c="thing"><title>TRUNDLERS</title>
+<p>Pease.</p></entry>
+
+<entry c="thing"><title>TRUNK</title>
+<p>a Nose<eg>How fares your
+old Trunk?</eg> Does your Nose stand fast?</p></entry>
+
+<entry c="person"><title>TRUSTY-<i>Trojan</i></title>
+<title>or <i>Trusty Trout</i></title>
+<p>a sure Friend or Confidant.</p></entry>
+
+<entry c="punishment"><title>TUCK'D</title>
+<p>hang'd.</p></entry>
+
+<entry c="thing"><title>TUMBLER</title>
+<p>a Cart.  <eg>To shove the
+Tumbler</eg>; To be whipt at the Cart's
+Tail; also one that decoys, or draws
+others into play; and one that shews
+Tricks with and without a Hoop.</p></entry>
+
+<entry c="person"><title>TURK</title>
+<p>any cruel hard-hearted
+Man.</p></entry>
+
+<entry c="person"><title>TURKEY <i>Merchants</i></title>
+<p>Drivers of Turkeys.</p></entry>
+
+<entry c="place"><title>TURKISH-<i>Shore</i></title>
+<p><i>Lambeth</i>, <i>Southwark</i>
+and <i>Rotherhith</i> Side of the Water.</p></entry>
+
+<entry c="adj"><title>TURKISH-<i>Treatment</i></title>
+<p>very sharp or
+ill dealing in Business.</p></entry>
+
+<entry c="person"><title>TURN-<i>Coat</i></title>
+<p>he that quits one and
+embraces another Party.</p></entry>
+
+<entry c="adj"><title>TURNIP <i>Pate</i></title>
+<p>white or Fair-hair'd.</p></entry>
+
+<entry c="adj"><title>TWEAK</title>
+<p>as <eg>In a Tweak</eg>; in a heavy
+Taking, much vexed or very angry.</p></entry>
+
+<entry c="money"><title>TWELVER</title>
+<p>a Shilling.</p></entry>
+
+<entry c="v"><title><i>To</i> TWIG</title>
+<p>to disingage, to sunder,
+to snap, to break off; as, <eg>To twig the
+Darbies</eg>; To knock off the Irons.</p></entry>
+
+<entry c="thing"><title>TWIST</title>
+<p>half Tea, half Coffee:
+Likewise Brandy and Eggs mixed.  Hot-Pot.
+Also to Eat; as, <eg>To twist lustily</eg>;
+To feed like a Farmer.</p></entry>
+
+<entry c="v"><title link="ignore"><i>To</i> TWIST</title>
+<p>to eat heartily.</p></entry>
+
+<entry c="punishment"><title>TWISTED</title>
+<p>executed, hanged.</p></entry>
+
+<entry c="crime"><title><i>To</i> TWIT</title>
+<p>to hit in the Teeth.</p></entry>
+
+<entry c="v"><title><i>To</i> TWITTER</title>
+<p>to laugh much
+with little Noise; also to tremble.</p></entry>
+
+
+</letter>
+
+<letter name="uv"><title>U, V</title>
+<entry c="thing"><title>VAGARIES</title>
+<p>wild Rambles, extravagant Frolicks.</p></entry>
+
+<entry c="rogue"><title>VAGRANT</title>
+<p>a wandering Rogue, a
+strolling Vagabond.</p></entry>
+
+<entry c="person"><title>VAIN-<i>Glorious</i></title>
+<p>or <i>Ostentatious Man</i>,
+one that boasts without Reason, or, as
+the <i>Canters</i> say, <eg>pisses more than he
+drinks</eg>.</p></entry>
+
+<entry c="person"><title>VALET</title>
+<p>a Servant.</p></entry>
+
+<entry c="v,thing"><title><i>To</i> VAMP</title>
+<p>to parn anything. [[pawn?]]
+<eg>I'll
+<!--* col *-->
+Vamp, and tip you the Cole</eg>; I'll pawn
+my Cloaths, but I'll raise the Money
+for you.  <eg>To Vamp</eg>; To new dress,
+liquer, refresh or rub up old Hats,
+Boots, Shoes &c; Also a Sock.</p></entry>
+
+<entry c="thing"><title>VAMPERS</title>
+<p>Stockings.</p></entry>
+
+<entry c="person"><title>VAN</title>
+<p>as <eg>Madam Van</eg>.  See <i>Madam</i>.</p></entry>
+
+<entry c="rogue"><title>VARLETS</title>
+<p>now Rogues, Rascals,
+&c; tho' formerly Yeomens Servants.</p></entry>
+
+<entry c="bawd"><title><i>To</i> VAULT</title>
+<p>as, <eg>To Vault</eg>, to commit
+Acts of Debauchery.</p></entry>
+
+<entry c="bawd"><title>VAULTING-<i>School</i></title>
+<p>a Bawdy-house.</p></entry>
+
+<entry c="thing"><title>VELVET</title>
+<p>a Tongue.  <eg>Tip the Velvet</eg>; To tongue a Woman.</p></entry>
+
+<entry c="thing,person"><title>VINEGAR</title>
+<p>a Cloak; also the Fellow
+that makes a Ring, and keeps
+Order amongst Wrestlers, Dudgel-Players, &c;</p></entry>
+
+<entry c="person"><title>VIRAGO</title>
+<p>a masculine Woman, or
+a great two-handed Female.</p></entry>
+
+<entry c="adj"><title>UNRIG'D</title>
+<p>stripp'd, undress'd.  <eg>Unrig
+the Drab</eg>; pull all the Whore's
+Cloaths off.</p></entry>
+
+<entry c="adj"><title>UNTWISTED</title>
+<p>undone, ruin'd.</p></entry>
+
+<entry c="bawd"><title>UNWASH'D <i>Bawdry</i></title>
+<p>rank, fulsom
+Bawdry.</p></entry>
+
+<entry c="thing"><title>UPHILS</title>
+<p>high Dice.</p></entry>
+
+<entry c="rogue"><title>VOUCHERS</title>
+<p>that put off false Money
+for sham Coiners.  Also one that
+warrants Gagers or under Officers Accompts,
+either at the Excise Office;
+or elsewhere.</p></entry>
+
+<entry c="money"><title>UPPISH</title>
+<p>rampant, crowing, full of
+Money.  <eg>He is very Uppish</eg>; He is well-lined
+in the Fob; also brisk.</p></entry>
+
+<entry c="rogue"><title>UPRIGHT-MEN</title>
+<p>As, an <eg>Upright-man</eg>,
+signifies the chief or Principal of a
+Crew.  The vilest stoutest Rogue in
+the Pack, is generally chosen to this
+Post, and he has the sole Right to the
+fist Night's Lodging with the <i>Dells</i>,
+who afterwards are used in common
+among the whole Fraternity.  He
+carries a short Truncheon in his
+Hand, which he calls his <i>Filchman</i>, and
+has a larger Share than ordinary of
+whatsoever is gotten in the Society.
+He often travels in Company with 30
+or 40 Males and Females, <i>Abram-Men</i>,
+and others, over whom he presides arbitrarily;
+and sometimes the Women
+and Children, who are unable to travel,
+or fatigued, are by Turns carry'd
+in Panniers bu an Ass or two, or by
+some poor Jades which they procure
+for that Purpose.  <eg>Go Upright</eg>, said by
+Taylors and and Shoemakers, to their
+Servants, when any Money is given
+to make them drink, and signifies,
+<meaning><i>Bring it all out in Drink</i></meaning>, tho' the Donor
+intended less, and expects Change,
+or some Return of Money.</p></entry>
+
+<!--* page *-->
+
+<entry c="thing" sortas="VPSTARTS"><title>UPSTARTS</title>
+<p>new raised to Honour.</p></entry>
+
+<entry c="person,thing" sortas="VRCHIN"><title>URCHIN</title>
+<p>a little sorry Fellow; also
+a Hedge-hog.</p></entry>
+
+<entry c="place"><title>URINAL <i>of the Planets</i></title>
+<p><i>Ireland</i>, with
+us, because of its frequent and great
+Rains; as <i>Heidelberg</i>, and <i>Cologn</i> in
+<i>Germany</i>, have the same Name upon
+the same Account; also a Chamber-pot,
+or Glass.</p></entry>
+
+</letter>
+
+<letter name="w"><title>W</title>
+<entry c="v"><title>WADDLE</title>
+<p>to go like a Duck.</p></entry>
+
+<entry c="adj"><title>WAG</title>
+<title><i>Waggish</i></title>
+<p>arch, gamesome, pleasant.</p></entry>
+
+<entry c="adj"><title>WALLOWISH</title>
+<p>a malkish, ill Taste.</p></entry>
+
+<entry c="v,bawd"><title><i>To</i> WAP</title>
+<p>to lie with a Man.  <eg>If she
+won't wap for a Win, let her trine for a
+Make</eg>; if she won't lie with a Man for
+a Penny, let her hang for a Half-penny.
+<eg>Mort wap-apace</eg>; a Woman
+of Experience, or very expert at the
+Sport.</p></entry>
+
+<entry c="adj"><title>WAPPER-<i>Eyed</i></title>
+<p>that has sore or
+running Eyes.</p></entry>
+
+<entry c="bawd"><title>WAPPING</title>
+<p>the Act of Coition.</p></entry>
+
+<entry c="money"><title>WARM</title>
+<p>well lined of flush in the
+Pocket.</p></entry>
+
+<entry c="thing"><title>WARMING-<i>Pan</i></title>
+<p>an old fashion'd
+large Watch.  <eg>A Scotch Warming-Pan</eg>;
+a She-bed-fellow.</p></entry>
+
+<entry c="person,place,bawd"><title>WARREN</title>
+<p>he that is Security for
+Goods taken up on Credit, by extravagant
+young Gentlemen; also a
+Boarding-school, or a Bawdy-house,
+which are too much the same Thing.</p></entry>
+
+<entry c="thing"><title>WASH</title>
+<p>Paint for Faces.</p></entry>
+
+<entry c="adj"><title>WASPISH</title>
+<p>peevish.</p></entry>
+
+<entry c="rogue"><title>WATER-<i>Pad</i></title>
+<p>one that robs Ships,
+Hoys, Lighters, Barges or Boats in the
+River of <i>Thames</i>.  A sort of BADGERS.  Which see.</p></entry>
+
+<entry c="thing"><title>WATTLES</title>
+<p>Ears; also Sheep-folds.</p></entry>
+
+<entry c="thing"><title>WEB</title>
+<p>Cloth of any Sort.</p></entry>
+
+<entry c="thing,money"><title>WEDGE</title>
+<p>Plate, or Silver or Gold
+Moveables and trinkets: Also Money.</p></entry>
+
+<entry c="thing"><title>WELSH <i>Fiddle</i></title>
+<title>or <i>Scotch-Fiddle</i></title>
+<p>the Itch.</p></entry>
+
+<entry c="rogue,bawd"><title>WESTMINSTER-<i>Wedding</i></title>
+<p>a
+Whore and a Rogue married together.</p></entry>
+
+<entry c="drink,person"><title>WET-<i>Quaker</i></title>
+<p>a Drunkard of that Sect.</p></entry>
+
+<entry c="rogue"><title>WHEADLE</title>
+<p>a Sharper.  <eg>To cut a
+Wheadle</eg>; to decoy, by Fawning and
+Insinuation.</p></entry>
+
+<entry c="drink"><title>WHEEL-<i>Band in the Nick</i></title>
+<p>regular
+drinking over the left Thumb.</p></entry>
+
+<entry c="place"><title>WHETSTONE's <i>Park</i></title>
+<p>a Lane betwixt
+<i>Holbourn</i> and <i>Lincoln's-Inn-Fields</i>,
+formerly a noted Nest for Whores,
+now dispark'd.</p></entry>
+
+<!--* col *-->
+
+<entry c="thing"><title>WHIDS</title>
+<p>Words.</p></entry>
+
+<entry c="v"><title><i>To</i> WHIDDLE</title>
+<p>to enter into a Parley,
+to compound with, or take off by
+a Bribe; as, <eg>Did you Whiddle with the
+Cull?</eg> Did you bribe or compound with
+the Evidence?  Also to impeach, or
+discover; as, <eg>He Whiddles</eg>; He Peaches.
+<eg>He Whiddles the whole Scrap</eg>; He
+discovers all he knows.  <eg>The Cull has
+whiddled, because we would not tip him
+a Snack</eg>; The Dog has discovered because
+we did not give him a Share.
+<eg>They Whiddle-Thief, and we must Brush</eg>;
+They cry out Thieves, and we must
+fly.</p></entry>
+
+<entry c="rogue"><title>WHIDDLER</title>
+<p>a Peacher (or rather
+Impeacher) of his Gang.</p></entry>
+
+<entry c="place"><title>WHIG-<i>Land</i></title>
+<p>Scotland.</p></entry>
+
+<entry c="thing"><title>WHINERS</title>
+<p>Prayers, Supplications, &c;</p></entry>
+
+<entry c="place"><title>WHIP-<i>Shire</i></title>
+<p>Yorkshire.</p></entry>
+
+<entry c="rogue"><title>WHIPSTER</title>
+<p>a sharp, or subtle
+Fellow.</p></entry>
+
+<entry c="crime"><title><i>To</i> WHIP <i>off</i></title>
+<p>to steal, to drink cleverly,
+to snatch and to run away.
+<eg>Whipt through the Lungs</eg>; Run through
+the Body with a Sword.  <eg>Whipt in at
+the Glaze</eg>; Got in at the Window.</p></entry>
+
+<entry c="thing"><title>WHIM</title>
+<p>a Maggot.</p></entry>
+
+<entry c="thing"><title>WHIMSICAL</title>
+<p>maggotish.</p></entry>
+
+<entry c="thing"><title>WHIMPER</title>
+<p>a low or small Cry.</p></entry>
+
+<entry c="thing"><title>WHINDLE</title>
+<p>a low or feigned Cry.</p></entry>
+
+<entry c="v"><title><i>To</i> WHINE</title>
+<p>to cry squeekingly.</p></entry>
+
+<entry c="thing"><title>WHINYARD</title>
+<p>a Sword.</p></entry>
+
+<entry c="person"><title>WHIPPER-<i>Snapper</i></title>
+<p>a very small
+sprightly Boy.</p></entry>
+
+<entry c="rogue"><title>WHIP-<i>Jacks</i></title>
+<p>counterfeit Mariners
+begging with false Passes, pretending
+Ship-wrecks, great Losses at Sea, narrow
+Escapes, &c; telling dismal Stories,
+having learnt <i>Tar-Terms</i> on purpose:
+but are meer Cheats, and will
+not stick to rob a Booth at a Fair, or
+an House in soem By-road.  They
+often carry their Morts or Wenches,
+which the pretend to be their Wives,
+whom they miraculously saved in the
+Shipwreck, altho' all their Children
+were drowned, the Ship splitting on
+a Rock near the <i>Lands-End</i>, with such
+like Forgeries.</p></entry>
+
+<entry c="thing"><title>WHIRLEGIGS</title>
+<p>Testicles.</p></entry>
+
+<entry c="person"><title>WHISK</title>
+<p>a little inconsiderable, impertinent Fellow.</p></entry>
+
+<entry c="thing"><title>WHISKER</title>
+<p>a great Lye.</p></entry>
+
+<entry c="drink"><title>WHISKINS</title>
+<p>shallow, brown Bowls
+to drink out of.</p></entry>
+
+<entry c="thing,drink"><title>WHISTLE</title>
+<p>the Throat.  <eg>Wet your
+Whistle</eg>: liquor your Throat.</p></entry>
+
+<entry c="place"><title>WHIT</title>
+<p>Newgate.  As, <eg>Five Rum-padders,
+are rub'd in the Darkmans and
+of the Whit, and are pik'd into the Deuseaville</eg>;
+Five Highway-men in the
+<!--* page *-->
+Night broke <i>newgate</i>, and are gone
+into the Country.</p></entry>
+
+<entry c="thing"><title>WHITE-<i>Chappel-Portion</i></title>
+<p>two torn
+Smocks, and what Nature gave.</p></entry>
+
+<entry c="thing"><title>WHITE-<i>Tape</i></title>
+<p>See <i>Tape</i>.</p></entry>
+
+<entry c="money"><title>WHITE <i>Wool</i></title>
+<p>Silver.</p></entry>
+
+<entry c="thing"><title>WHITHER-<i>D'ye-go</i></title>
+<p>an insolent
+prescribing, <i>very</i>, Wife.</p></entry>
+
+<entry c="person"><title>WHORE's <i>Kitling</i></title>
+<title>or <i>Whore's Son</i></title>
+<p>a Bastard.</p></entry>
+
+<entry c="person"><title>WHOW-<i>Ball</i></title>
+<p>a Milk-maid.</p></entry>
+
+<entry c="drink"><title>WIBBLE</title>
+<p>sad Drink.</p></entry>
+
+<entry c="thing"><title>WICKET</title>
+<p>a Casement, also a little
+Door. As, <eg>Tout through the Wicket,
+and see where a Cully pikes with his
+Gentry mort, whose Muns are the Rummest
+I ever touted before</eg>; Look through
+the Casement, and see where the Man
+walks with a Gentlewoman, whose
+Face is the fairest, I have ever seen.</p></entry>
+
+<entry c="person"><title>WICHER-<i>Cully</i></title>
+<p>See <i>Witcher-Cully</i>.</p></entry>
+
+<entry c="thing,person"><title>WIDOWS-<i>Weeds</i></title>
+<p>mourning
+Cloaths.  <eg>A Grass-Widow</eg>; One that
+pretends to have been married, but
+never was, yet has Children.</p></entry>
+
+<entry c="rogue"><title>WILD <i>Rogues</i></title>
+<p>such as are trained
+up from Children to <i>Nim</i> golden or
+silver Buttons off of Coats, to creep in
+at Cellar and Shop-windows, and to
+slip in at Doors behind People; also
+that have been whipt, burnt in the
+Fist, and often in Prison for Roguery.</p></entry>
+
+<entry c="thing"><title>WILES</title>
+<p>Tricks, Intrigues, cunning
+Stratagems.</p></entry>
+
+<entry c="adj"><title>WILY</title>
+<p>cunning, crafty, intriguing.</p></entry>
+
+<entry c="thing,person"><title>WILLING-<i>Tit</i></title>
+<p>a little Horse that
+Travels chearfully; also a coming Girl.</p></entry>
+
+<entry c="adj"><title>WILLOW</title>
+<p>poor, and of no Reputation.</p></entry>
+
+<entry c="v,money"><title>WIN</title>
+<p>a Penny.  <eg>To win</eg>; To steal.
+<eg>Won</eg>; Stollen.  <eg>The Cull has won a
+Couple of rum Glimsticks</eg>; The Rogue
+has stole a pair of Silver Candlesticks.</p></entry>
+
+<entry c="money"><title>WIND-<i>Fall</i></title>
+<p>a great Fortune fallen
+unexpectedly by the Death of a Friend.</p></entry>
+
+<entry c="adj"><title>WINDY-<i>Fellow</i></title>
+<p>without Sense or
+Reason.</p></entry>
+
+<entry c="thing"><title>WIND-<i>Mills in the Head</i></title>
+<p>empty
+Projects.</p></entry>
+
+<entry c="thing"><title>WINK</title>
+<p>a Signal or Intimation.  <eg>He
+tipt the Wink</eg>; He gave the Sign or Signal.</p></entry>
+
+<entry c="money"><title>WINNINGS</title>
+<p>Money, or Reward:
+<eg>Winnings for Wapping</eg>; Money given a
+Woman for lying with her.</p></entry>
+
+<entry c="punishment"><title>WIPE</title>
+<p>a Blow; also a Reflection.
+<eg>He tipt him a rum Wipe</eg>; He gave him
+a swinging Blow.  <eg>I gave him a Wipe</eg>;
+I spoke something that cut him, or
+gaul'd him.  <eg>He wip'd his Nose</eg>; He
+gull'd him.</p></entry>
+
+<!--* col *-->
+
+<entry c="thing"><title>WIPER</title>
+<p>a Handkerchief.  <eg>Nim the
+Wiper</eg>; To steal the Handkerchief.</p></entry>
+
+<entry c="rogue"><title>WIPER-<i>Drawer</i></title>
+<p>a Handkerchief-stealer.
+<eg>He drew a broad, narrow, cam,
+or speck'd Wiper</eg>; He pick'd Pockets of
+a broad, or narrow, Ghenting, Cambrick,
+or colour'd Handkerchief.</p></entry>
+
+<entry c="crime"><title>WIRE-<i>Draw</i></title>
+<p>a Fetch or Trick to
+wheedle in <i>Bubbles</i>; also to screw,
+over-reach, or deal hard with.  <eg>Wire-drawn</eg>;
+so served or treated.</p></entry>
+
+<entry c="rogue"><title>WISE <i>Man of Gotham</i></title>
+<p>a Fool.</p></entry>
+
+<entry c="v"><title><i>To</i> WIT</title>
+<p>to know or understand.</p></entry>
+
+<entry c="place"><title><i>The</i> WIT</title>
+<p><i>Newgate</i>, <i>New Prison</i>, or
+<i>Bridewell</i>.  The same as <i>Whit</i>.</p></entry>
+
+<entry c="money"><title>WITCHER</title>
+<p>Silver.</p></entry>
+
+<entry c="thing"><title>WITCHER-<i>Bubber</i></title>
+<p>a Silver Bowl.
+<eg>The Cull is piked with the Witcher-bubber</eg>
+The Rogue is marched off with
+the Silver-bowl.</p></entry>
+
+<entry c="person"><title>WITCHER-<i>Cully</i></title>
+<p>a Silver-smith.</p></entry>
+
+<entry c="thing"><title>WITCHER-<i>Tilter</i></title>
+<p>a Silver-hilted
+Sword.  <eg>He has bit, or drawn the
+Witcher-tilter</eg>; He has stole the Silver-hilted Sword.</p></entry>
+
+<entry c="v"><title><i>To</i> WOBBLE</title>
+<p>to boil.  <eg>The Pot wobbles</eg>; i.e. The Pot boils;
+the Meat is enough.</p></entry>
+
+<entry c="bawd"><title>WOMAN <i>of the Town</i></title>
+<p>a Prostitute,
+or common Harlot.</p></entry>
+
+<entry c="drink"><title>WOMBLE-<i>Ty-Cropt</i></title>
+<p>the Indisposition
+of a Drunkard after a Debauch in
+Wine or other Liquors: As, <eg>He is
+Womble-ty Cropt</eg>; He is Cropsick, &c;</p></entry>
+
+<entry c="punishment"><title>WOODEN-<i>Ruff</i></title>
+<p>a Pillory.  <eg>He wore
+the Wooden-ruff</eg>; He stood in the Pillory.</p></entry>
+
+<entry c="person"><title>WOOD-<i>Pecker</i></title>
+<p>a By-stander that
+bets, while others game.</p></entry>
+
+<entry c="phrase"><title><i>In a</i> WOOD</title>
+<title>or, <i>In a Maze</i></title>
+<p>In a
+Peck of Troubles; being in a Doubt,
+or at a Loss, what Course to take, by
+Reason of some very critical Turn in
+one's Affairs; or, among <i>Canters</i>, by
+being surpriz'd, and in great Danger
+of being taken, in a Robbery, or any
+other unlawful Act.</p></entry>
+
+<entry c="person"><title>WOOLLY-<i>Crown</i></title>
+<p>a soft-headed
+Fellow.</p></entry>
+
+<entry c="person"><title>WOOL-<i>Gathering</i></title>
+<p>as, <eg>Your Wits
+are a Wool gathering</eg>; said of a Person
+in a serious, or, as 'tis called, in a
+brown Study; or who knows not
+what he does.</p></entry>
+
+<entry c="person"><title>WORD-<i>Pecker</i></title>
+<p>one that plays with
+Words: A Punster.</p></entry>
+
+<entry c="adj"><title>WORM'D</title>
+<p>undermined, rooked,
+cheated, tricked; <eg>Wormed out of</eg>, inveigled
+out of, or deluded.</p></entry>
+
+</letter>
+
+<!--* page 36 *-->
+
+<letter name="x"><title>X</title>
+
+<entry c="person"><title>XANTIPPE</title>
+<p>a Scold; the Name of
+<i>Socrates</i>'s scolding Wife; who
+never cold move his Patience, tho' by
+premeditated and repeated Injuries.
+Whence it is used for any Shrew, or
+scolding, brawling Woman.</p></entry>
+
+</letter>
+
+<letter name="y"><title>Y</title>
+
+<entry c="v"><title><i>To</i> YAM</title>
+<p>to eat heartily, to stuff
+lustily.</p></entry>
+
+<entry c="thing"><title>YARMOUTH-<i>Capon</i></title>
+<p>a red Herring.</p></entry>
+
+<entry c="thing"><title>YARMOUTH-<i>Coach</i></title>
+<p>a sorry slow
+Cart to ride on, drawn by one Horse.</p></entry>
+
+<entry c="thing"><title>YARMOUTH-<i>Pye</i></title>
+<p>made of Herrings,
+highly spic'd, and presented by
+the City of <i>Norwich</i> annually to the
+King, on pain of forfeiting their Charter.</p></entry>
+
+<entry c="thing"><title>YARUM</title>
+<p>Milk, or Food made of
+Milk.</p></entry>
+
+<entry c="person"><title>YEA-<i>and-Nay-Men</i></title>
+<p>a Phrase originally
+applied to Quakers; but now
+used for any simple Fellows.</p></entry>
+
+<entry c="thing"><title>YELLOW</title>
+<p>at first used by the <i>Canters</i>
+<!--* col *-->
+only, but now in common Speech,
+for being jealous.</p></entry>
+
+<entry c="money"><title>YELLOW-<i>Boy</i></title>
+<p>a Guinea, or Piece
+of Gold of any Coin.</p></entry>
+
+<entry c="v"><title><i>To</i> YELP</title>
+<p>(from the <i>Yelping</i> of a Dog)
+to cry, to bawl, to complain.</p></entry>
+
+<entry c="person"><title>YELPER</title>
+<p>a Town-Cryer; also, one
+subject to complain, or make pitiful
+Lamentation for trifling Incidents.</p></entry>
+
+<entry c="thing"><title>YEST</title>
+<p>a Diminutive of <i>Yesterday</i>; a
+Day ago.</p></entry>
+
+<entry c="adj"><title>YOAK'D</title>
+<p>married.</p></entry>
+
+<entry c="person"><title>YORKSHIRE-<i>Tike</i></title>
+<p>a <i>Yorkshire</i>
+Manner of Man.</p></entry>
+
+</letter>
+
+<letter name="z"><title>Z</title>
+<entry c="adj,person"><title>ZAD</title>
+<p>crooked, like the letter Z;
+as, <eg>A meer Zad</eg>, used of any
+bandy-legg'd, crouch-back'd or deformed
+Person.</p></entry>
+
+<entry c="person,rogue"><title>ZANY</title>
+<p>a Mountebank's Merry-Andrew,
+or Jester, to distinguish him
+from a Lord's Fool.</p></entry>
+
+<entry c="person,rogue"><title>ZLOUCH</title>
+<title>or <i>Slouch</i></title>
+<p>a slovenly ungenteel
+Man.</p></entry>
+
+<entry c="thing"><title>ZNEES</title>
+<p>Frost, or Frozen; <eg>Zneesy
+weather</eg>; Frosty Weather.</p></entry>
+
+<entry c="thing"><title>ZNUZ</title>
+<p>the same as <i>Znees</i>.</p></entry>
+
+</letter>
+<!--* page 36 *-->
+</dict>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/dict.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE xsl:stylesheet>
+<xsl:stylesheet
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xt="http://www.jclark.com/xt"
+    xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+    version="1.0"
+    exclude-result-prefixes="doc xt"
+    extension-element-prefixes="xt">
+
+  <!--**********************************************
+      *
+      * dict.xsl: convert dict. of thieving slang into HTML
+      *
+      * Liam Quin, 2001
+      *
+      * $Id: dict.xsl,v 1.2 2003/01/09 13:30:35 veillard Exp $
+      *
+      *-->
+
+  <!--* Generate HTML 4 *-->
+  <xsl:output method="html" version="4.0" encoding="UTF-8" />
+
+ <!--* strip white space from containers that don't have PCDATA in
+     * them; this list may not be complete.
+     * XSLT should have a way of doing this based on the DTD.
+     *-->
+ <xsl:strip-space elements="dict titlepage letter entry" />
+
+ <!--**********************************************
+     *
+     * split the input into separate files at
+     * titlepage
+     * letter
+     *-->
+
+  <!--* first, a template to make an HTML head, given a title *-->
+  <xsl:template name="htmlhead">
+    <xsl:param name='title'/>
+      <head>
+	<title><xsl:value-of select="$title"/></title>
+      </head>
+  </xsl:template>
+
+  <xsl:template match="dict">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <xsl:template match="titlepage">
+    <xt:document method="html" href="out/titlepage.html">
+      <html>
+	<xsl:call-template name="htmlhead">
+	  <xsl:with-param name="title"><xsl:value-of select="./title"/></xsl:with-param>
+	</xsl:call-template>
+	<body bgcolor="#FFFAFA" text="#330000">
+	  <xsl:apply-templates/>
+	</body>
+      </html>
+    </xt:document>
+  </xsl:template>
+
+  <xsl:template match="titlepage/note">
+  <blockquote>
+    <xsl:apply-templates />
+  </blockquote>
+  </xsl:template>
+
+  <!--* a letter has all the entries starting with that letter *-->
+  <xsl:template match="letter">
+    <xt:document method="html" href="out/letter{@name}.html">
+      <html>
+	<xsl:call-template name="htmlhead">
+	  <xsl:with-param name="title"><xsl:value-of select="./title"/></xsl:with-param>
+	</xsl:call-template>
+	<body bgcolor="#FFFAFA" text="#330000">
+	  <xsl:apply-templates/>
+	</body>
+      </html>
+    </xt:document>
+  </xsl:template>
+
+  <!--* unwanted elements *-->
+  <xsl:template match="target"></xsl:template>
+
+
+  <!--* block elements *-->
+  <xsl:template match="p">
+    <p><xsl:apply-templates/></p>
+  </xsl:template>
+
+  <xsl:template match="letter/title">
+    <h1>The Letter <xsl:apply-templates/></h1>
+  </xsl:template>
+
+  <xsl:template match="title">
+    <h2><xsl:apply-templates/></h2>
+  </xsl:template>
+
+  <xsl:template match="blockquote">
+    <blockquote><xsl:apply-templates/></blockquote>
+  </xsl:template>
+
+  <xsl:template match="entry">
+  <div class="entry">
+    <xsl:apply-templates/>
+  </div>
+  </xsl:template>
+
+
+  <!--* inline elements *-->
+  <xsl:template match="i|b|sub|sup">
+    <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
+    <xsl:value-of select="name()" />
+    <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
+      <xsl:apply-templates/>
+    <xsl:text disable-output-escaping="yes">&lt;/</xsl:text>
+    <xsl:value-of select="name()" />
+    <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="eg">
+    <i class="eg"><xsl:apply-templates/></i>
+  </xsl:template>
+
+  <!--* turn italic off *-->
+  <xsl:template match="interj">
+    <xsl:text disable-output-escaping="yes">&lt;/i&gt;</xsl:text>
+      <xsl:apply-templates/>
+    <xsl:text disable-output-escaping="yes">&lt;i&gt;</xsl:text>
+  </xsl:template>
+
+  <xsl:template match="meaning">
+    <span class="meaning"><xsl:apply-templates/></span>
+  </xsl:template>
+
+  <xsl:template match="xref">
+    <span style="color: #33CC33;"><u><xsl:apply-templates/></u></span>
+  </xsl:template>
+
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettera.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettera.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettera.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,223 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>A</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter A</h1>
+<div class="entry">
+<h2>ABRAM</h2>
+<p>Naked, or having scarce
+Cloaths enough to hide Nakedness.</p>
+</div>
+<div class="entry">
+<h2>ABRAM-COVE</h2>
+<p>a lusty Rogue,
+with hardly any Cloaths on his
+Back: a Tatterdemallion.</p>
+</div>
+<div class="entry">
+<h2>ABRAM-MEN</h2>
+<p>otherwise called
+<i class="eg">Toms of Bedlam</i>, shabby Beggars, patched
+and trick'd up with Ribbons, Red-Tape,
+Fox-tails, Rags of various Colours;
+pretending to be besides themselves,
+to palliate their Thefts of Poultry, Linnen,
+&amp;c.
+A sort of itinerant
+Hedge-Robbers, and Strippers of Children, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>ACADEMY</h2>
+<p>a Bawdy House; a Receptacle for all sorts of Villains, where
+the Young Ones are initiated in the
+<i class="eg">Canting Language</i>, and all manner of
+Cheats and Impostures, and sorted into
+Tribes and Bands, according to their
+several Capacities for Mischief.</p>
+</div>
+<div class="entry">
+<h2>ADAM TILER</h2>
+<p>the Comerade of a
+Pick pocket, who receives stollen
+Goods or Money, and scours off with
+them, <i class="eg">Tip the coal to Adam Tiler</i>; i.e.
+give the Money, Watch, &amp;c. to a running
+Companion, that the Pick Pocket
+may have nothing found upon him,
+when he is apprehended.</p>
+</div>
+<div class="entry">
+<h2>AFFIDAVIT-MEN</h2>
+<p>Knights of the
+Post: mercenary and abandoned Wretches,
+who used to frequent the <i>Temple</i>
+and other Inns of Court, in order to be
+in Readiness to swear any thing that
+was proposed to them.</p>
+</div>
+<div class="entry">
+<h2>ALSATIA <i>the Higher</i></h2>
+<h2><i>White-Fryars</i></h2>
+<p>once a Privileged Place, as the <i>Mint</i>
+was lately; but suppressed, on Account
+of the notorious Abuses committed in
+it.</p>
+</div>
+<div class="entry">
+<h2>ALSATIA <i>the Lower</i></h2>
+<p>the <i>Mint</i> in <i>Southwark</i>.</p>
+</div>
+<div class="entry">
+<h2>ALSATIANS</h2>
+<p>the Inhabitants of
+these two Places, such as broken
+Tradesmen, extravagant Spendthrifts.</p>
+</div>
+<div class="entry">
+<h2>ALTEMAL</h2>
+<p><i>Vide Dutch</i> Reckoning.</p>
+</div>
+<div class="entry">
+<h2>AMBIDEXTER</h2>
+<p>one that goes snacks
+in Gaming with both Parties; also a
+
+Lawyer that takes Fees of Plaintiff and
+Defendant at once.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> AMUSE [in a <i>Canting sense</i>]</h2>
+<p>to
+fling Dust in the Eyes; also to invent
+strange Tales to delude Shop keepers
+and others, from being upon their
+Guard.</p>
+</div>
+<div class="entry">
+<h2>AMUSEMENT</h2>
+<p>a blind, or feint.</p>
+</div>
+<div class="entry">
+<h2>AMU'SERS</h2>
+<p>who were wont to have
+their Pockets filled with Dust, which
+they would throw into the Eyes of
+People they had a mind to rob, and so
+run away, while their Comerade, who
+followed them, under the Notion of
+pitying the half blinded Person, laid
+his Hand on whatever came next.</p>
+</div>
+<div class="entry">
+<h2>ANGLERS</h2>
+<h2><i>alias</i> HOOKERS</h2>
+<p>petty
+Thieves, who have a Stick with a
+Hook at the End, wherewith they
+pluck Things out of Windows, Grates,
+&amp;c.
+<i class="eg">Make ready your Angling Stick</i>; a
+Word of Command used by these petty
+Villains, to get ready the Stick with
+which they perform their Pranks, and
+as a Signal of a Prey in Sight.
+In the Day-time they beg from House to
+House, to spy best where to plant their
+Designs, which at Night they put in
+Execution.</p>
+</div>
+<div class="entry">
+<h2>ANTICKS</h2>
+<p>such as dress themselves
+up with Ribbons, mismatched Colours,
+Feathers &amp;c.</p>
+</div>
+<div class="entry">
+<h2>ANTIQUATED</h2>
+<p>an old Rogue, or
+one who has forgot, or left off his
+Trade of thieving, is said to be.</p>
+</div>
+<div class="entry">
+<h2>ARCH-ROGUE</h2>
+<p>the <i class="eg">Dimber-Damber Uprightman</i> or Chief of a Gang; as
+<i>Arch-Dell</i>, or <i>Arch-Doxy</i> signifies the
+same Degree in Rank among the Female
+<i>Canters</i> and <i>Gypsies</i>.</p>
+</div>
+<div class="entry">
+<h2>ARK</h2>
+<p>a Boat or Wherry.</p>
+</div>
+<div class="entry">
+<h2>ARK-RUFFIANS</h2>
+<p>Rogues, who in
+Conjunction with Watermen, &amp;c. rob
+and sometimes murder on the Water;
+by picking a Quarrel with the Passenger
+and then plundering, stripping and
+throwing him or her over board, &amp;c.</p>
+<p>A Species of <i>Badgers</i>.</p>
+</div>
+<div class="entry">
+<h2>ASSIG.</h2>
+<p>An Assignation, Appointment or Meeting</p>
+</div>
+<div class="entry">
+<h2>AUNT</h2>
+<p>a Bawd, or Procuress; a Title of Eminence for the <i>Senior Dells</i>,
+who serve for Instructresses, Midwives,
+&amp;c., to the <i>Morts</i>.</p>
+</div>
+<div class="entry">
+<h2>AUTEM</h2>
+<p>a Church; also married.</p>
+</div>
+<div class="entry">
+<h2>AUTEM-BAWLER</h2>
+<p>a Preacher, or Parson, of any sect.</p>
+</div>
+<div class="entry">
+<h2>AUTEM-CACKLERS</h2>
+<h2>AUTEM-PRICKEARS</h2>
+<p>Dissenters of any Denomination.</p>
+</div>
+<div class="entry">
+<h2>AUTEM-CACKLETUB</h2>
+<p>a Conventicle,
+a Meeting-House for Dissenters.</p>
+</div>
+<div class="entry">
+<h2>AUTEM-DIPPERS</h2>
+<p>Anabaptists.</p>
+</div>
+<div class="entry">
+<h2>AUTEM-DIVERS</h2>
+<p>Church-Pick-pockets;
+also Church-wardens, Overseers of the Poor.</p>
+</div>
+<div class="entry">
+<h2>AUTEM-GOGGLERS</h2>
+<p>pretended <i>French</i> Prophets.</p>
+</div>
+<div class="entry">
+<h2>AUTEM-MORT</h2>
+<p>a marry'd Woman;
+also one who travels up and
+down the Country, with one Child in
+their Arms, another on her Back,
+and often leading a third in her Hand.</p>
+</div>
+<div class="entry">
+<h2>AUTEM-QUAVERS</h2>
+<p><i>Quakers</i></p>
+</div>
+<div class="entry">
+<h2>AUTEM-QUA-VERTUB</h2>
+<p>a <i>Quaker's</i>
+Meeting-House.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterb.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterb.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterb.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,985 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>B</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter B</h1>
+<div class="entry">
+<h2>BACK'ED</h2>
+<p>dead; as <i class="eg">He wishes the Senior backed</i>,
+i.e. <span class="meaning">He longs to have his Father upon Six Mens Shoulders</span>.
+<i class="eg">His Backs up</i>, a taunting Expression.</p>
+</div>
+<div class="entry">
+<h2>BACON</h2>
+<p>the Prize, or whatever kind
+which Robbers make in their Enterprizes.
+<i class="eg">He has saved his Bacon</i>; i.e. He
+has himself escaped with the Prize,
+whence it is commonly used for any
+narrow Escape.
+<i class="eg">The Cove has a bien
+squawl to maund Bacon</i>; i.e. he has a
+good Voice to beg Bacon; used to jeer
+a bad Voice, or an indifferent Singer.
+<i class="eg">The Bacon Sweard rakes in his Throttle</i>;
+<i>i.e.</i> the Sweard of the Bacon sticks in
+his Throat; used to a person who has
+Hoarseness, or one, who at their Merry-Meetings, excuses himself from
+Singing, on pretence of a Cold.</p>
+</div>
+<div class="entry">
+<h2>BADGE</h2>
+<p>is used in a Canting Sense,
+for Burning in the Hand or Cheek (as
+it used to be) as <i class="eg">he has got his Badge and piked away</i>;
+He has been burned in the
+Hand, &amp;c. and is just set at Liberty.</p>
+</div>
+<div class="entry">
+<h2>BADGE-COVES</h2>
+<p>Parish-Pensioners</p>
+</div>
+<div class="entry">
+<h2>BADGERS</h2>
+<p>a Crew of desperate Villains,
+who rob and kill near rivers, and
+then throw the dead bodies therein.</p>
+</div>
+<div class="entry">
+<h2>BAGGAGE</h2>
+<p>as the heavy Baggage,
+the Children and Women who are unable
+to travel fast in Gangs of Gypsies,
+and Strowlers.</p>
+</div>
+<div class="entry">
+<h2>BALSOM</h2>
+<p>Money: <i class="eg">The Cove has secured the Balsom</i>,
+i.e. He has seized the Money.</p>
+</div>
+<div class="entry">
+<h2>A BAM</h2>
+<p>a Sham or Cheat: a knavish
+Contrivance to amuse or deceive.</p>
+</div>
+<div class="entry">
+<h2>BANBURY <i>story</i></h2>
+<p>of a Cock and a
+Bull, an idle Relation, in order to pick
+Acquaintance on the Road, till a convenient
+Place or Opportunity offer to
+rob or plunder.</p>
+</div>
+<div class="entry">
+<h2>BANDITTI</h2>
+<p>Highwaymen, Horse or
+Foot, now used for Rogues of any kind,
+but strictly <i>Italian</i> Rapparees.</p>
+</div>
+<div class="entry">
+<h2>BANDOG</h2>
+<p>a Bailiff or his Follower;
+a Sergeant or his Yeomen.</p>
+</div>
+<div class="entry">
+<h2>BANTLING</h2>
+<p>a Child.</p>
+</div>
+<div class="entry">
+<h2>BARKER</h2>
+<p>a Salesman's Servant that
+walks before the Shop, to invite customers.</p>
+</div>
+<div class="entry">
+<h2>BARNACLE</h2>
+<p>a good Job, or a Snack
+easily got; so called from the Gratuity
+given to Jockeys, for buying and selling
+Horses.</p>
+</div>
+<div class="entry">
+<h2>BARNACLES</h2>
+<p>the Irons worn in
+Goal by Felons.
+A Pair of Spectacles
+is also called Barnacles; as <i class="eg">I saw the
+Cuffin Quire with his Nose Barnacled,
+making out the Cove's Dispatches</i>, i.e. I
+saw the Justice of Peace with his Spectacles
+on making out his <i>Mittimus</i>.</p>
+</div>
+<div class="entry">
+<h2>BAR-WIG</h2>
+<p>between a bob and a long one.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> BASTE</h2>
+<p>to beat.</p>
+</div>
+<div class="entry">
+<h2>BASTONADING</h2>
+<p>a Cudgelling</p>
+</div>
+<div class="entry">
+<h2>BATTEN</h2>
+<p>to fatten; to keep up a
+Fowl, &amp;c. till it is fit for eating.</p>
+</div>
+<div class="entry">
+<h2>BATTENER</h2>
+<p>an Ox; <i class="eg">The Cove has
+hushed the Battener</i>; i.e. <span class="meaning"><i>He has killed
+the Ox</i></span>, in revenge on some Farmer,
+who, perhaps, had got him sent to the
+House of Correction.</p>
+</div>
+<div class="entry">
+<h2>BATTERED BULLY</h2>
+<p>an old well
+cudgelled and bruised huffing fellow.</p>
+</div>
+<div class="entry">
+<h2>BAUBEE</h2>
+<p>an Halfpenny; as <i class="eg">The Cove
+ript the Maund but a single Baubee let's
+souse him for it</i> i.e. The Gentleman
+has given the Beggar but a single Halfpenny; lets plunder him for his Niggardliness.</p>
+</div>
+<div class="entry">
+<h2>BAUBELS</h2>
+<h2>or BAWBLES</h2>
+<p>Jewels, Tweezers, Snuff-boxes, any sort of
+Gold or Silver Trinkets.</p>
+</div>
+<div class="entry">
+<h2>BAWD</h2>
+<p>a Female Procuress.</p>
+</div>
+<div class="entry">
+<h2>BAWDY-BASKETS</h2>
+<p>a sort of diminutive Pedlars, who sell Obscene
+Books, Pins, Tape, &amp;c. but live more
+by pilfering and stealing.</p>
+</div>
+<div class="entry">
+<h2>BAWDY-HOUSE-BOTTLE</h2>
+<p>a very small one.</p>
+</div>
+<div class="entry">
+<h2>BEAR-GARDEN-DISCOURSE</h2>
+<p>common, filthy, nasty talk.</p>
+</div>
+<div class="entry">
+<h2>BEARD-SPLITTER</h2>
+<p>a Whore-master.</p>
+</div>
+<div class="entry">
+<h2>BEAU-TRAPS</h2>
+<p>an <i>Order</i> of
+
+Villains, Genteel-dressed Sharpers,
+who lie in wait to insnare and draw in
+young Heirs, raw Country Squires and
+ignorant Fops.
+</p>
+</div>
+<div class="entry">
+<h2>BECK</h2>
+<h2>HARMANBECK</h2>
+<p>a Beadle</p>
+</div>
+<div class="entry">
+<h2>BEEF</h2>
+<p>to alarm, as <i class="eg">They have cryed
+Beef upon us</i>; they have discovered,
+us and are in Pursuit of us.</p>
+</div>
+<div class="entry">
+<h2>BELCH</h2>
+<p>any sort of Malt-liquor so
+called.</p>
+</div>
+<div class="entry">
+<h2>BELLY-CHEAT</h2>
+<p>an Apron.</p>
+</div>
+<div class="entry">
+<h2>A BEN</h2>
+<p>a foolish Fellow, a Simpleton.</p>
+</div>
+<div class="entry">
+<h2>BENISH</h2>
+<p>foolish, simple.</p>
+</div>
+<div class="entry">
+<h2>BENAR</h2>
+<p>better.</p>
+</div>
+<div class="entry">
+<h2>BENE</h2>
+<h2><i> or</i> BIEN</h2>
+<p>good, <i class="eg">Pike on the
+Bene</i>, i.e. Run away as fast as you can.</p>
+</div>
+<div class="entry">
+<h2>BENE-BOWSE</h2>
+<p>strong Liquor.</p>
+</div>
+<div class="entry">
+<h2>BENE-COVE</h2>
+<p>a good Fellow, a merry companion.</p>
+</div>
+<div class="entry">
+<h2>BENE-DARKMANS</h2>
+<p>good Night.</p>
+</div>
+<div class="entry">
+<h2>BENESHIP</h2>
+<p>very good, very well.
+<i class="eg">Beneshiply</i> Worshipfully.</p>
+</div>
+<div class="entry">
+<h2>BENEFEAKERS</h2>
+<p>Counterfeiters of
+Bills, Bonds, Notes, Receipts, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>BENEFEAKERS OF GYBES</h2>
+<p>Counterfeiters of Passes.</p>
+</div>
+<div class="entry">
+<h2>BESS</h2>
+<p><i class="eg">Bring Bess and Glym</i>; i.e. Forget not the Instrument to break
+open the Dour, and the Dark Lanthorn.</p>
+</div>
+<div class="entry">
+<h2>BET</h2>
+<p>as <i class="eg">secure the Bet</i>, secure the Prize.</p>
+</div>
+<div class="entry">
+<h2>BETTY</h2>
+<h2>BESS</h2>
+<p>a small Engine to
+force open the Doors of Houses; <i class="eg">Mill
+the Gig with your Betty</i>; i.e. Break
+open the Door with your Instrument.</p>
+</div>
+<div class="entry">
+<h2>BEVER</h2>
+<p>An Afternoons Lunchion.</p>
+</div>
+<div class="entry">
+<h2>BEVERAGE</h2>
+<p>Garnish-money.</p>
+</div>
+<div class="entry">
+<h2>BIDDY</h2>
+<p>a Chicken.</p>
+</div>
+<div class="entry">
+<h2>BILK</h2>
+<p>to cheat or deceive.  <i class="eg">Bilk the
+Rattling Cove</i>; Sharp the Coachman of
+his Hire.</p>
+</div>
+<div class="entry">
+<h2>BILL</h2>
+<h2>BILBOA</h2>
+<p>a Sword.  <i class="eg">Bite
+the Bill from the Cull</i>; i.e. Whip the
+Sword from his Side.</p>
+</div>
+<div class="entry">
+<h2>BILL <i>of Sale</i></h2>
+<p>a Bandore, or Widow's
+Peak.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> BING</h2>
+<p>to go, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>BING-AWAST</h2>
+<p>Get you hence: Begone;
+haste away; <i class="eg">He Bing'd awast in a
+Darkmans</i>, i.e. He Stole away in the
+Night-time.  <i class="eg">Bing we to Rum vile?</i> i.e.
+Go we to <i>London</i>.</p>
+</div>
+<div class="entry">
+<h2>BINGO</h2>
+<p>Geneva, or Brandy.</p>
+</div>
+<div class="entry">
+<h2>BINGO-BOY</h2>
+<p>a great Geneva Drinker.</p>
+</div>
+<div class="entry">
+<h2>BINGO-CLUB</h2>
+<p>a Club of Geneva Drinkers.</p>
+</div>
+<div class="entry">
+<h2>BINGO-MORT</h2>
+<p>a She Brandy Drinker.</p>
+</div>
+<div class="entry">
+<h2>BIRDS OF A FEATHER</h2>
+<p>Rogues
+of the same Gang.</p>
+</div>
+<div class="entry">
+<h2>BIRD-WITTED</h2>
+<p>hare-brained; not
+solid or stayed.</p>
+</div>
+<div class="entry">
+<h2>BIT</h2>
+<p>Robbed, Cheated or Out-Witted.  Also Drunk, as <i class="eg">He has bit his
+Grannum</i>; He is very Drunk.  <i class="eg">Bit the
+Blow</i>, performed the Theft, played the
+Cheat, <i class="eg">You have bit a great Blow</i>; You
+have robbed somebody of or to a considerable
+Value.</p>
+</div>
+<div class="entry">
+<h2>BITE</h2>
+<p>a Rogue, Sharper or Cheat;
+also a Woman's Privities, as <i class="eg">The Cull
+wapt the Morts Bite</i>; i.e. The Fellow
+enjoyed the Woman briskly.  <i class="eg">Bite
+the Biter</i>, rob the Rogue, sharp the
+Sharper, or Cheat the Cheater.  <i class="eg">Bite
+the Cully</i>, put the Cheat on a silly
+Fellow.  <i class="eg">Bite the Roger</i>, steal the
+Portmanteau. <i class="eg">Bite the Wiper</i>, steal
+the Handkerchief.  <i class="eg">He will not Bite or
+swallow the Bait</i>; He wont be drawn
+in.  <i class="eg">To Bite on the Bit</i>; To be pinched
+or reduced to hard Meat; a scanty or
+sorry sort of Living.</p>
+</div>
+<div class="entry">
+<h2>BLACK <i>and</i> WHITE</h2>
+<p>under one's
+Hand, or in Writing.</p>
+</div>
+<div class="entry">
+<h2>BLAB</h2>
+<p>one that is not to be confided
+in upon an Enterprize or Intrigue.</p>
+</div>
+<div class="entry">
+<h2>BLACK-BOX</h2>
+<p>a Lawyer.</p>
+</div>
+<div class="entry">
+<h2>BLACK-COAT</h2>
+<p>a Parson.</p>
+</div>
+<div class="entry">
+<h2>BLACK-GUARD</h2>
+<p>dirty, nasty, tatterred
+roguish Boys, that formerly
+were wont to attend at the Horse-Guards
+to wipe Shoes, and clean Boots.</p>
+</div>
+<div class="entry">
+<h2>BLACK-JACK</h2>
+<p>a leather-Jug to drink in.</p>
+</div>
+<div class="entry">
+<h2>BLACK-INDIES</h2>
+<p><i>Newcastle</i>, from
+whence the Coals are brought.</p>
+</div>
+<div class="entry">
+<h2>BLACKMUNS</h2>
+<p>Hoods and Scarves of
+Alamode and Lustrings.</p>
+</div>
+<div class="entry">
+<h2>BLACK-SPY</h2>
+<p>the Devil.</p>
+</div>
+<div class="entry">
+<h2>BLANK</h2>
+<p>down looked, sheepish,
+guilty.</p>
+</div>
+<div class="entry">
+<h2>BLEACH</h2>
+<p>as <i class="eg">The Mort lay last Night a
+Bleaching</i>; the Wench looks very fair
+to Day.</p>
+</div>
+<div class="entry">
+<h2>BLEATERS</h2>
+<p>they that are cheated
+by Jack in a Box.</p>
+</div>
+<div class="entry">
+<h2>BLEATING-CHEAT</h2>
+<p>a Sheep.</p>
+</div>
+<div class="entry">
+<h2>BLEED</h2>
+<p>as, <i class="eg">To bleed freely</i>, i.e. To
+part with their Money easily.</p>
+</div>
+<div class="entry">
+<h2>BLEEDING-CULLY</h2>
+<p>an easy Fellow,
+this is profuse with his Money, or
+persuaded to support all the Exravaganies
+of his Companion or Mistress,
+at his own Expence.</p>
+</div>
+<div class="entry">
+<h2>BLEW-JOHN</h2>
+<p>Wash, or After-wort.</p>
+</div>
+<div class="entry">
+<h2>A BLIND</h2>
+<p>a Feint, a Pretence, a shift.</p>
+</div>
+<div class="entry">
+<h2>A BLIND ALE-HOUSE</h2>
+<p>one fit to
+conceal a pursued or hunted Villain.</p>
+</div>
+<div class="entry">
+<h2>BLIND-CHEEKS</h2>
+<p>the Breech.</p>
+</div>
+<div class="entry">
+<h2>BLIND-HARPERS</h2>
+<p>Canters, who
+
+counterfeit Blindness, strowl about with
+Harps, Fiddles, Bagpipes, &amp;c. led by
+a Dog or Boy.</p>
+</div>
+<div class="entry">
+<h2>BLOCK-HOUSES</h2>
+<p>Prisons, Houses
+of Correction, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>BLOSS</h2>
+<p>a Shop-lifter; also a Bully's
+pretended Wife, or Mistress, whom he
+guards, while she supports him; also a
+Whore.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> BLOT <i>the Skrip, and jark it</i></h2>
+<p>i.e. to stand engaged, or be bound for any
+Body.</p>
+</div>
+<div class="entry">
+<h2>BLOW</h2>
+<p>as <i class="eg">He has bit his blow</i>, he has
+stollen the Goods, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>BLOWER</h2>
+<p>a Mistress; also a
+Whore.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> BLOW <i>off the Groundsils</i></h2>
+<p>i.e. To
+lie with a Women on the Floor or
+Stairs.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> BLOW <i>off the loose Corns</i></h2>
+<p>To lie now and then with a Woman.</p>
+</div>
+<div class="entry">
+<h2>BLUBBER</h2>
+<p>the Mouth, <i class="eg">I've stopt the
+Culls Blubber</i>, I've stopt the Fellow's
+Mouth; meant either by gagging or
+murdering him.</p>
+</div>
+<div class="entry">
+<h2>BLUBBERING</h2>
+<p>much Crying.</p>
+</div>
+<div class="entry">
+<h2><i>To look</i> BLUFF</h2>
+<p>To look big or
+like Bull-beef.</p>
+</div>
+<div class="entry">
+<h2>BLUFFER</h2>
+<p>an Inn-keeper or victualler.</p>
+</div>
+<div class="entry">
+<h2>BLUNDERBUS</h2>
+<p>an awkward Fellow.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> BLUSTRING <i>Fellow</i></h2>
+<p>a rude ratling Hector.</p>
+</div>
+<div class="entry">
+<h2>BOARDING-<i>School</i></h2>
+<p><i>Bridewell</i> [[prob. rdg; orig. <i>Briedwell</i>]]
+or
+<i>New Prison</i>, or any Work-house, or
+House of Correction, for Vagrants,
+Beggars and Villains, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>BOARDING <i>Scholars</i></h2>
+<p>Bridewell-Birds.</p>
+</div>
+<div class="entry">
+<h2>BOB</h2>
+<p>a Shop-lifts Comerade, Assistant
+or Receiver.  <i>Bob</i> also signifies
+Safety.</p>
+</div>
+<div class="entry">
+<h2><i>It is all</i> BOB</h2>
+<p>i.e. All is Safe.</p>
+</div>
+<div class="entry">
+<h2>BOBBED</h2>
+<p>cheated, tricked, baulked.</p>
+</div>
+<div class="entry">
+<h2>BOB-TAIL</h2>
+<p>a light woman, also an
+Eunuch or impotent Fellow.</p>
+</div>
+<div class="entry">
+<h2>BOG-LANDERS</h2>
+<p><i>Irish</i> Men.</p>
+</div>
+<div class="entry">
+<h2>BOB-TROTTERS</h2>
+<p><i>Scotch</i> or <i>North</i>
+Country Moss-troopers, or Highway-Men.</p>
+</div>
+<div class="entry">
+<h2>BOLTER <i>of White Fryars</i></h2>
+<p>one that
+peeps out, but dares not venture abroad.</p>
+</div>
+<div class="entry">
+<h2>BOLTSPRIT</h2>
+<p>the nose, <i class="eg">He has broke
+his Boltsprit</i>; He has lost his Nose by
+the Pox.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> BONE</h2>
+<p>to apprehend, sieze, take
+or arrest.
+<i class="eg">I'll Bone ye</i>; I'll cause you
+to be arrested.
+<i class="eg">We shall be Boned</i>, we
+shall be apprehended for the Robbery.
+<i class="eg">The Cove is Boned and gone to the Whit</i>;
+the Rogue is taken up and carried to
+<i>Newgate</i>.
+<i class="eg">The Cull has Boned the Fen</i>
+
+(for <i>Fence</i>) <i>or</i> <i class="eg">Bloss that bit the Blow</i>,
+The Man has taken the Thief that
+robbed his House or Shop, or picked
+his Pocket.
+<i class="eg">If he be Boned he must shove
+the Tumbler</i>; If he be taken he'll be
+whipt at the Gart's-tail.
+<i class="eg">I have Boned
+her Dudds, Fagged and Brushed</i>; I have
+taken away my Mistress's cloaths, beat
+her and am trooped off.
+<i class="eg">Boning the Fence</i>; Finding the Goods where concealed
+and siezing them.
+<i class="eg">He made no Bones of it.</i></p>
+</div>
+<div class="entry">
+<h2>BONNY-CLAPPER</h2>
+<p>sowre Butter-milk.</p>
+</div>
+<div class="entry">
+<h2>BOOTH</h2>
+<p>a House, as <i class="eg">Heave the Booth</i>;
+Rob the House.</p>
+</div>
+<div class="entry">
+<h2><i>To Play</i> BOOTY</h2>
+<p>to play with a design to lose.</p>
+</div>
+<div class="entry">
+<h2>BOOZE</h2>
+<p><i>Vide</i> BOWSE.</p>
+</div>
+<div class="entry">
+<h2>BORDE</h2>
+<p>a Shilling, <i class="eg">Half a Borde</i>,
+Six-pence.</p>
+</div>
+<div class="entry">
+<h2>BOTTLE-HEAD</h2>
+<p>void of Wit.</p>
+</div>
+<div class="entry">
+<h2>BOUGHS</h2>
+<p>as <i class="eg">He is up in the Boughs</i>,
+said of one upon the Rant, or in a great
+Ferment.</p>
+</div>
+<div class="entry">
+<h2>BOUNCE</h2>
+<p>as <i class="eg">a meer Bounce</i>, a swaggering
+Fellow.</p>
+</div>
+<div class="entry">
+<h2>BOUNCER</h2>
+<p>a Bully.</p>
+</div>
+<div class="entry">
+<h2>BOUNCING-<i>Cheat</i></h2>
+<p>a Bottle.</p>
+</div>
+<div class="entry">
+<h2>BOWMAN</h2>
+<p>as a <i class="eg">Bowman-Prigg</i>, an
+eminent Thief or Villain; a dextrous
+Cheat, or House-breaker.</p>
+</div>
+<div class="entry">
+<h2>BOWSE</h2>
+<p>Drink, or to drink; see
+<i>Benbowse</i> [[Bene-Bowse]] and <i>Rumbowse</i>
+[[<i>Rumbowse</i> is not actually defined]].</p>
+</div>
+<div class="entry">
+<h2>BOWSY</h2>
+<p>Drunk.</p>
+</div>
+<div class="entry">
+<h2>BOWSING KEN</h2>
+<p>an Ale-house.</p>
+</div>
+<div class="entry">
+<h2>BRACKET-FACE</h2>
+<p>ugly, homely,
+ill-favoured.</p>
+</div>
+<div class="entry">
+<h2>BRAT</h2>
+<p>a little Child.</p>
+</div>
+<div class="entry">
+<h2>BRAVADO</h2>
+<p>a vapouring, or bouncing.</p>
+</div>
+<div class="entry">
+<h2>BRAVO</h2>
+<p>a mercenary Murderer,
+that will kill any body.</p>
+</div>
+<div class="entry">
+<h2>BRIM</h2>
+<h2>or <i>Brimstone</i></h2>
+<p>a very impudent, lewd Woman.</p>
+</div>
+<div class="entry">
+<h2>BROTHER <i>of the Blade</i></h2>
+<p>a Sword-man or Soldier.</p>
+</div>
+<div class="entry">
+<h2>BROTHER <i>of the Gussit</i></h2>
+<p>a Pimp,
+Procurer; also a Whore-master.</p>
+</div>
+<div class="entry">
+<h2>BROTHER-STARLING</h2>
+<p>that lies
+with the same Woman or builds in the same Nest.</p>
+</div>
+<div class="entry">
+<h2>BROTHER <i>of the String</i></h2>
+<p>a Fiddler,
+or Harper.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> BRUSH</h2>
+<p>to flee, or run away.
+<i class="eg">The Cully is brushed or rubbed</i>;
+The Fellow is marched off or broke.
+<i class="eg">Bought a Brush</i>, run away.</p>
+</div>
+<div class="entry">
+<h2>BRUSHER</h2>
+<p>a very full Glass of Liquor.</p>
+</div>
+<div class="entry">
+<h2>BUB</h2>
+<p>drink.  <i class="eg">Rumbub</i> very good
+Tipple.</p>
+</div>
+<div class="entry">
+<h2>BUBBER</h2>
+<p>a drinking Bowl; also a
+
+great Drinker, also one who steals plate
+from public Houses.</p>
+</div>
+<div class="entry">
+<h2>BUBE</h2>
+<p>the Pox.
+<i class="eg">The Mort tipt the
+Bube upon the Cully</i>; The Wench has
+clapped the Fellow.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> BUBBLE</h2>
+<p>To cheat or decieve.
+<i class="eg">A Bubble</i>, an easy soft Fellow, one that is
+fit to be imposed on, deluded, or
+cheated.</p>
+</div>
+<div class="entry">
+<h2>BUCK</h2>
+<p>as a <i class="eg">Bold Buck</i>.</p>
+</div>
+<div class="entry">
+<h2>BUCK-FITCHES</h2>
+<p>old leacherous Fellows.</p>
+</div>
+<div class="entry">
+<h2>BUCK'S-FACE</h2>
+<p>a Cuckold.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> BUDGE</h2>
+<p>one that slips into an
+House in the Dark, and taking what
+comes next to Hand, marches off with
+it. If he meets with any body, he
+asks, if such a Gentleman or Woman
+be within; and is told, they know no
+such Person, he begs Pardon, and says,
+he was mistaken in the House, immediately
+marches off, and will not stay
+for a Reply.
+<i class="eg">To Budge</i>, also signifies to
+stir or move.</p>
+</div>
+<div class="entry">
+<h2>BUFF</h2>
+<p>a Dog.</p>
+</div>
+<div class="entry">
+<h2><i>How dost do my</i> BUFF</h2>
+<p>a familiar
+Salutation among the Canting Tribe.</p>
+</div>
+<div class="entry">
+<h2><i>To stand</i> BUFF</h2>
+<p>is a Phrase used of
+an obstinate hardened Rogue, who in a
+Robbery will not be daunted at Resistance
+or Opposition, or leave his Com-rogues in the Lurch, or a hardened
+Rogue who will confess nothing.</p>
+</div>
+<div class="entry">
+<h2>BUFFER</h2>
+<p>a Rogue that kills good
+sound Horses, only for their skins, by
+running a long wire into them, and
+sometimes knocking them on the Head.</p>
+</div>
+<div class="entry">
+<h2>BUFF-KNAPPER</h2>
+<p>a Dog-stealer,
+that trades in all Sorts of Dogs, selling
+them at a round Rate, and himself or
+Partner stealing them the first Opportunity.</p>
+</div>
+<div class="entry">
+<h2>BUFFERS-NAB</h2>
+<p>a Dog's Head, used
+in a counterfiet Seal to a false Pass.</p>
+</div>
+<div class="entry">
+<h2>BUGGING</h2>
+<p>taking Money by Bailiffs
+and Serjeants of the Defendant not to
+arrest him.</p>
+</div>
+<div class="entry">
+<h2>BUGHER</h2>
+<p>a Dog.</p>
+</div>
+<div class="entry">
+<h2>BULCHIN</h2>
+<p>a chubbingly Boy or Lad.</p>
+</div>
+<div class="entry">
+<h2>BULL</h2>
+<p>as, a <i class="eg">Town Bull</i>, a Whore-master.</p>
+</div>
+<div class="entry">
+<h2><i>TO look like</i> BULL <i>beef</i></h2>
+<p>to look big
+and grim.</p>
+</div>
+<div class="entry">
+<h2>BULK</h2>
+<p>an Assistant to a <i>File</i> or Pick-Pocket,
+who jostles a Person up against
+the Wall, while the other picks his
+Pocket.</p>
+</div>
+<div class="entry">
+<h2>BULKER</h2>
+<p>one that lodges all Night
+on Shop windows and bulkheads.</p>
+</div>
+<div class="entry">
+<h2>BULLS-EYE</h2>
+<p>a Crown or Five Shilling Piece.</p>
+</div>
+<div class="entry">
+<h2>BULLY</h2>
+<p>a supposed Husband to a
+Bawd, or Whore; also a huffing Fellow,
+
+a pretended <i>Bravo</i>, but a Coward
+at the Bottom.</p>
+</div>
+<div class="entry">
+<h2>BULLY-FOP</h2>
+<p>a maggot-pated, huffing,
+silly, rattling Fellow.</p>
+</div>
+<div class="entry">
+<h2>BULLY-HUFF</h2>
+<p>a poor sorry Rogue,
+that haunts Bawdy-houses, and pretends
+to get Money out of Gentlemen
+and others, rattling and swearing the
+Whore is his Wife.</p>
+</div>
+<div class="entry">
+<h2>BULLY-COCK</h2>
+<p>a Hector or bravo
+sets on People to quarrel, pretending
+to be a Second to them; and
+then making Advantage of both.
+</p>
+</div>
+<div class="entry">
+<h2>BULLY-RUFFINS</h2>
+<p>Highway-men,
+or Foot Pads, who attack with Oaths
+and Curses, plunder without Mercy,
+and frequently murder without Necessity.</p>
+</div>
+<div class="entry">
+<h2>BULLY-TRAP</h2>
+<p>a <i>Trapan</i>, a Sharper or Cheat.</p>
+</div>
+<div class="entry">
+<h2>BUM</h2>
+<p>a Bailiff or Serjeant.</p>
+</div>
+<div class="entry">
+<h2>BUNDLE-TAIL</h2>
+<p>a short, fat, or squat Lass.</p>
+</div>
+<div class="entry">
+<h2>BUNG</h2>
+<p>a Purse, Pocket or Fob.</p>
+</div>
+<div class="entry">
+<h2>BUNG-NIPPERS</h2>
+<p>Cut purses, who
+with a short sharp Knife, and a horn
+Thumb, used to cut Purses. Since the
+wearing of Purses is out of Fashion,
+they are called <i>Files</i> or <i>Pick-Pockets</i>.</p>
+</div>
+<div class="entry">
+<h2>BUNTING-TIME</h2>
+<p>when the Grass
+is high enough to hide the young Men
+and Maids.</p>
+</div>
+<div class="entry">
+<h2>BUNT'LINGS</h2>
+<p>Petticoats.  <i class="eg">Hale up
+the main Buntlings</i>, throw up the Women's
+Petticoats.</p>
+</div>
+<div class="entry">
+<h2>BURNT</h2>
+<p>poxed, or clapt.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> BURN <i>the Ken</i></h2>
+<p>is when Strollers
+leave an Alehouse, without paying
+their Quarters.</p>
+</div>
+<div class="entry">
+<h2>BURR</h2>
+<p>a Hanger on or Dependant.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> BUTTER</h2>
+<p>signifies also, to cheat
+or defraud in a smooth or plausible
+Manner; as, <i class="eg">He'll not be Battered</i>;
+He's aware of your Design, He's upon his Guard, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>BUTTER-BOXES</h2>
+<p>Dutchmen</p>
+</div>
+<div class="entry">
+<h2>BUTTERED-BUN</h2>
+<p>lying with a
+Woman that has been just lain with by
+another Man.</p>
+</div>
+<div class="entry">
+<h2>BUTTOCK</h2>
+<p>a Whore.</p>
+</div>
+<div class="entry">
+<h2>BUTTOCK-<i>Broker</i></h2>
+<p>a Bawd, also
+a Match-maker.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> BUTTOCK <i>and File</i></h2>
+<p>both Whore and Pickpocket.</p>
+</div>
+<div class="entry">
+<h2>BUTTOCK <i>and Twang</i></h2>
+<p>or <i class="eg">a down-right Buttock and sham File</i>, a common
+Whore, but no Pickpocket.</p>
+</div>
+<div class="entry">
+<h2>BUZZARD</h2>
+<p>a foolish, soft Fellow,
+drawn in and culled or tricked.</p>
+</div>
+<div class="entry">
+<h2>BY-BLOW</h2>
+<p>a Bastard.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterc.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterc.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterc.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1047 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>C</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter C</h1>
+<div class="entry">
+<h2>CACKLE</h2>
+<p>to discover.  <i class="eg">The Cull
+Cackles</i>, The Rogue tells all.</p>
+</div>
+<div class="entry">
+<h2>CACKLING-CHEATS</h2>
+<p>Chickens,
+Cocks or Hens.</p>
+</div>
+<div class="entry">
+<h2>CACKLING-FARTS</h2>
+<p>Eggs.</p>
+</div>
+<div class="entry">
+<h2>CALLE</h2>
+<p>a Cloak or Gown.</p>
+</div>
+<div class="entry">
+<h2>CAMBRIDGE-FORTUNE</h2>
+<p>a Woman without any Substance.</p>
+</div>
+<div class="entry">
+<h2>CAMESA</h2>
+<p>a Shirt or Shift.</p>
+</div>
+<div class="entry">
+<h2>CAMPAIGN-COAT</h2>
+<p>in a <i>Canting</i>
+Sense, the ragged, tatter'd, patch'd
+Coat, worn by Beggars and Gypsies, in
+order to move Compassion.</p>
+</div>
+<div class="entry">
+<h2>CANARY-BIRD</h2>
+<p>a little arch or
+knavish Boy; a Rogue or Whore
+taken, and clapp'd into the Cage or
+Round-house.</p>
+</div>
+<div class="entry">
+<h2>CANE <i>upon</i> ABEL</h2>
+<p>a good Stick or
+Cudgel, well-favouredly laid on a
+Man's shoulders.</p>
+</div>
+<div class="entry">
+<h2>CANK</h2>
+<p>Dumb.
+<i class="eg">The Cull's Cank</i>; the Rogue's Dumb; a Term used by
+<i>Canters</i>, when one of their Fraternity,
+being apprehended, upon Examination,
+confesses nothing.</p>
+</div>
+<div class="entry">
+<h2>CANNIKIN</h2>
+<p>the Plague.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> CANT</h2>
+<p>an Hypocrite, a Dissembler,
+a double-tongu'd, whining Person.</p>
+</div>
+<div class="entry">
+<h2>CANTING</h2>
+<p>the mysterious Language
+of Rogues, Gypsies, Beggars,
+Thieves, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>CANTING CREW</h2>
+<p>Beggars, Gypsies.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CAP</h2>
+<p>to Swear.
+<i class="eg">I will Cap
+downright</i>, I will Swear home.</p>
+</div>
+<div class="entry">
+<h2>CAPTAIN-HACKUM</h2>
+<p>a fighting,
+blustering Bully.</p>
+</div>
+<div class="entry">
+<h2>CAPTAIN-QUEERNABS</h2>
+<p>a Fellow
+in poor Cloaths, or Shabby.</p>
+</div>
+<div class="entry">
+<h2>CAPTAIN-SHARP</h2>
+<p>a great Cheat;
+also a huffing, yet sneaking, cowardly
+Bully.</p>
+</div>
+<div class="entry">
+<h2>CAPTAIM-TOM</h2>
+<p>a Leader of the
+Mob; also the Mob itself.</p>
+</div>
+<div class="entry">
+<h2>CARAVAN</h2>
+<p>a good round Sum of
+Money about a Man; also him that is
+cheated of it.</p>
+</div>
+<div class="entry">
+<h2>CARRIERS</h2>
+<p>a Set or Rogues, who
+are employ'd to look out, and whatch
+upon the Roads, at Inns, &amp;c. in order
+to carry Information to their respective
+Gangs, of a Booty in Prospect.</p>
+</div>
+<div class="entry">
+<h2>CARTED-WHORE</h2>
+<p>whipp'd publickly,
+and pack'd out of Town.</p>
+</div>
+<div class="entry">
+<h2>CASE</h2>
+<p>a House, Shop, or Warehouse;
+also a Bawdy-house.
+As <i class="eg">Toute
+the Case</i>, view, mark, or eye the House
+or Shop. <i class="eg">'Tis all Bob; now let us dub
+
+the Gigg of the Case</i>; now the Coast is
+clear, let us fall on, and break open
+the door of the House.</p>
+</div>
+<div class="entry">
+<h2>A CASE-VROW</h2>
+<p>a Whore that
+plie in a Bawdy-house.</p>
+</div>
+<div class="entry">
+<h2>CASH</h2>
+<p>or <i>Cassan</i>, cheese.</p>
+</div>
+<div class="entry">
+<h2>CASTER</h2>
+<p>a Cloak.</p>
+</div>
+<div class="entry">
+<h2>CAT</h2>
+<p>a common Whore or Prostitute.
+<i class="eg">Who shall hang the bell about the
+Cat's Neck?</i> Who shall begin the Attack first?  said of a desperate Undertaking.</p>
+</div>
+<div class="entry">
+<h2>CATCH-FART</h2>
+<p>a Foot-boy.</p>
+</div>
+<div class="entry">
+<h2>CATCHING-HARVEST</h2>
+<p>a precarious
+Time for Robbery; when many
+People are out upon the Road, by
+means of any adjacent Fair, Horse-race, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>CATCH-POLL</h2>
+<p>a Serjeant, or Bayliff,
+that arrests People.</p>
+</div>
+<div class="entry">
+<h2>CATHARPIN FASHION</h2>
+<p>when
+People in Company drink cross, and
+not round about from the Right to
+the Left, or according to the Sun's
+Motion.</p>
+</div>
+<div class="entry">
+<h2>CATTING</h2>
+<p>drawing a Fellow thro'
+a Pond with a Cat.  Also whoring.</p>
+</div>
+<div class="entry">
+<h2>CATMATCH</h2>
+<p>when a Rook or
+Cully is engag'd amongst bad Bowlers.</p>
+</div>
+<div class="entry">
+<h2>CAVAULTING SCHOOL</h2>
+<p>a Bawdy-house.</p>
+</div>
+<div class="entry">
+<h2>CAUDGE-PAW'D</h2>
+<p>Left-handed.</p>
+</div>
+<div class="entry">
+<h2>CAW-HANDED</h2>
+<p>awkward, not
+dextrous, ready or nimble.</p>
+</div>
+<div class="entry">
+<h2>CHAF'D</h2>
+<p>well beaten or bang'd.</p>
+</div>
+<div class="entry">
+<h2>CHAPT</h2>
+<p>dry or thirsty.</p>
+</div>
+<div class="entry">
+<h2>CHARACTERED</h2>
+<p>Burnt in the Hand;
+as, <i class="eg">They have pawn'd the Character upon
+him</i>; <i>i.e.</i> They have burnt the Rogue
+in the Hand.</p>
+</div>
+<div class="entry">
+<h2>CHATES</h2>
+<p>the Gallows.</p>
+</div>
+<div class="entry">
+<h2>CHATTS</h2>
+<p>Lice.  To <i class="eg">Squeeze the
+Chatts</i>; To crack or kill those Vermin.</p>
+</div>
+<div class="entry">
+<h2>CHICKEN</h2>
+<p>a feeble little Creature,
+of mean Spirit.</p>
+</div>
+<div class="entry">
+<h2>CHINK</h2>
+<p>Money, so call'd because it
+chinks in the Pocket.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> CHIP</h2>
+<p>a Child.  As, <i class="eg">A Chip of the
+old Block</i>; A Son that is his Father's
+likeness.</p>
+</div>
+<div class="entry">
+<h2>CHIRPING-MERRY</h2>
+<p>very pleasant
+over a Glass of good Liquor.</p>
+</div>
+<div class="entry">
+<h2>CHIT</h2>
+<p>a Dandyprat, or Durgen, a
+little trifling-Fellow.</p>
+</div>
+<div class="entry">
+<h2>CHITTIFACE</h2>
+<p>a little puny Child.</p>
+</div>
+<div class="entry">
+<h2>CHIVE</h2>
+<p>a Kinfe, File or Saw.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CHIVE <i>his Darbies</i></h2>
+<p>To saw asunder
+his Irons or Fetters.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CHOP</h2>
+<p>to change or barter. Also
+a Job, or Booty, as <i class="eg">A Chop by Chance</i>,
+a rare Booty, when 'twas not expected.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CHOP</h2>
+<p>is also used to make Dispatch,
+to slubber over in Post-haste, as
+
+<i class="eg">The Autem-Bawler, will soon quit the
+Hums, for he chops up the Whiners</i>; <i>i.e.</i>
+The Parson will soon have dispatch'd
+the Congregation, for he huddles over
+the Prayers.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CHOUSE</h2>
+<p>to cheat or trick.</p>
+</div>
+<div class="entry">
+<h2>CHUB</h2>
+<p><i class="eg">He is a young Chub</i>, or <i class="eg">a meer
+Chub</i>, very ignorant or unexperienc'd
+in Gaming, not at all acquainted with
+Sharping. <i class="eg">A good Chub</i>, said by the
+Butchers, when they have bit a silly raw
+Customer.</p>
+</div>
+<div class="entry">
+<h2>CHUCK-FARTHING</h2>
+<p>a Parish Clerk.</p>
+</div>
+<div class="entry">
+<h2>CLACK</h2>
+<p>a Woman's Tongue.</p>
+</div>
+<div class="entry">
+<h2>CLAN</h2>
+<p>a Family, Tribe, Faction,
+or Party, in <i>Scotland</i> chiefly, but now
+any where else.</p>
+</div>
+<div class="entry">
+<h2>CLANK</h2>
+<p>a Silver-tankard.</p>
+</div>
+<div class="entry">
+<h2>CLANKER</h2>
+<p>a swinging Lye.</p>
+</div>
+<div class="entry">
+<h2>CLANK NAPPER</h2>
+<p>a Silver-tankard
+Stealer.  See <i>Rumbubber</i>.</p>
+</div>
+<div class="entry">
+<h2>CLAPPERDOGEON</h2>
+<p>a Beggar born
+and bred.</p>
+</div>
+<div class="entry">
+<h2>CLAW'D-OFF</h2>
+<p>lustily lash'd. Also
+swingingly pox'd or clap'd.</p>
+</div>
+<div class="entry">
+<h2>CLEAR</h2>
+<p>very Drunk. <i class="eg">The Cull is
+clear, let's Bite him.</i>  The Fellow is
+very drunk, let's Sharp him.</p>
+</div>
+<div class="entry">
+<h2>CLEAVE</h2>
+<p>as, <i class="eg">One that will cleave</i>;
+used of a Wanton Woman.  <i>Vide Clown</i></p>
+</div>
+<div class="entry">
+<h2>CLENCH</h2>
+<p>a Pun or Quibble.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CLENCH</h2>
+<p>to nick a Business by
+timing it; as <i class="eg">The Cull has clench'd
+the Job at a Pinch</i>.  The Rogue has
+nick'd the Time, before any Passengers
+came by, who might have rescu'd
+the plunder'd Person.</p>
+</div>
+<div class="entry">
+<h2>CLEYMS</h2>
+<p>Sores without Pain, raised on Beggars Bodies, by their own
+Artifice and Cunning, (to move Charity)
+by bruising Crows-foot, Spearwort,
+and Salt together, and clapping
+them onthe Place, which frets the
+Skin; then with a Linnen Rag, which
+sticks close to it, they tear off the Skin,
+and strew on it a little Powder'd rsnick,
+which makes it look angrily or
+ill-favouredly, as if it were a real
+Sore.</p>
+</div>
+<div class="entry">
+<h2>CLERK'D</h2>
+<p>sooth'd, sunn'd imposed
+on; <i class="eg">The Cull will not be Clerk'd</i>, <i>i.e.</i>
+He will not be caught or taken by fair
+Words.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CLICK</h2>
+<p>to Snatch.  <i class="eg">I have Clickt
+the Nab from the Cull</i>; I whipt the Hat
+from the Man's Head. <i class="eg">Click the rum
+Topping</i>. Snatch that Woman's fine
+Commode, or Head-Dress.</p>
+</div>
+<div class="entry">
+<h2>CLICKER</h2>
+<p>[among the <i>Canters</i>.]  He
+whom they intrust to divide their
+Spoils, and proportion to every one
+his Share.</p>
+</div>
+<div class="entry">
+<h2>CLICKET</h2>
+<p>Copulation of Foxes, and
+thence used in a <i>Canting</i> Sense, for that
+of Men and Women; as <i class="eg">The Cull and
+the Mort are at Clicket in the Dyke</i>.</p>
+</div>
+<div class="entry">
+<h2>CLICKETING</h2>
+<p>the Act of Fruition.</p>
+</div>
+<div class="entry">
+<h2>CLINKER</h2>
+<p>a crafty Fellow.</p>
+</div>
+<div class="entry">
+<h2>CLINKERS</h2>
+<p>the Irons Felons wear
+in Goals.</p>
+</div>
+<div class="entry">
+<h2>CLOAK-TWITCHERS</h2>
+<p>Villains
+who lurk in by and dark Places, to
+snatch them off the Wearer's Shoulders.</p>
+</div>
+<div class="entry">
+<h2>CLOD-HOPPER</h2>
+<p>a Ploughman.</p>
+</div>
+<div class="entry">
+<h2>CLOUD</h2>
+<p>Tobacco.  <i class="eg">Will you raise a
+Cloud?</i> Will you smoak a Pipe?</p>
+</div>
+<div class="entry">
+<h2>CLOVEN</h2>
+<h2><i>Cleave</i></h2>
+<h2>or <i>Cleft</i></h2>
+<p>used of a young Woman who passes for a Maid,
+and is not one.</p>
+</div>
+<div class="entry">
+<h2>CLOUT</h2>
+<p>a Handkerchief.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CLOY</h2>
+<p>to Steal.  <i class="eg">Cloy the Clout</i>;
+steal the Money.</p>
+</div>
+<div class="entry">
+<h2>CLOYERS</h2>
+<p>Thieves, Robbers,
+Rogues.</p>
+</div>
+<div class="entry">
+<h2>CLOYING</h2>
+<p>Stealing, Thieving,
+Robbing.</p>
+</div>
+<div class="entry">
+<h2>CLOWES</h2>
+<p>Rogues.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CLUCK</h2>
+<p>a Wench's Propension
+to Male-Conversation, by her romping
+and playfulness; when they say, <i class="eg">The
+Mort Clucks</i>.</p>
+</div>
+<div class="entry">
+<h2>CUMP</h2>
+<p>a Heap or Lump.</p>
+</div>
+<div class="entry">
+<h2>CLUMPISH</h2>
+<p>Lumpish.</p>
+</div>
+<div class="entry">
+<h2>CLUNCH</h2>
+<p>a clumsy Clown, an awkward
+or unhandy Fellow.</p>
+</div>
+<div class="entry">
+<h2>CLY</h2>
+<p>Money. <i class="eg">To cly the Jerk</i>, to
+be Whipt.  <i class="eg">Let's strike his Cly</i>; Let's
+get his Money from him.  Also a
+Pocket, as, <i class="eg">Filed a Cly</i>, Pick'd a Pocket.</p>
+</div>
+<div class="entry">
+<h2>COACH-WHEEL</h2>
+<p>as, <i class="eg">A Fore-Coach-Wheel</i>
+Half a Crown. <i class="eg">A Hind-Coach-Wheel</i>,
+a Crown or Five-shilling Piece.</p>
+</div>
+<div class="entry">
+<h2>COB</h2>
+<p>an <i>Irish</i> Dollar.</p>
+</div>
+<div class="entry">
+<h2>COBBLE-COLTER</h2>
+<p>a Turkey.  <i class="eg">A
+rum Cobble-colter</i>, a fat large Cock-Turkey.</p>
+</div>
+<div class="entry">
+<h2>COCK-BAWD</h2>
+<p>a Man who follows
+that base Employment, of procuring;
+a Pimp.</p>
+</div>
+<div class="entry">
+<h2>COCKISH</h2>
+<p>wanton, uppish, forward.</p>
+</div>
+<div class="entry">
+<h2>COCK-PIMP</h2>
+<p>a supposed Husband to
+a Bawd.</p>
+</div>
+<div class="entry">
+<h2>COCK-ROBBIN</h2>
+<p>a soft easy Fellow.</p>
+</div>
+<div class="entry">
+<h2>COCK-SURE</h2>
+<p>very sure.</p>
+</div>
+<div class="entry">
+<h2>COD</h2>
+<p>a good Sum of Money; also a
+Fool.  <i class="eg">A meer Cod</i>, a silly, shallow
+Fellow.  <i class="eg">A rum Cod</i>; a good round
+Sum of Money.  <i class="eg">An honest Cod</i>; a trusty
+Friend.</p>
+</div>
+<div class="entry">
+<h2>COD's-<i>Head</i></h2>
+<p>a Fool.</p>
+</div>
+<div class="entry">
+<h2>COFE</h2>
+<p>as COVE.  Which See.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> COG</h2>
+<p>to cheat at Dice.  <i class="eg">To Cog a
+Die</i>; to conceal or secure a Die; also
+the Money or whatever the <i>Sweetners</i>
+
+drop, to draw in the Bubbles: Also to
+wheedle.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> COG <i>a Dinner</i></h2>
+<p>to wheedle one out of a Dinner.</p>
+</div>
+<div class="entry">
+<h2>COG <i>a Clout</i></h2>
+<h2>or, <i>Cog a Sneezer</i></h2>
+<p>Beg an Handkerchief, or Snuff box.</p>
+</div>
+<div class="entry">
+<h2>COGUE</h2>
+<p>of brandy, a small Cup or
+Dram.</p>
+</div>
+<div class="entry">
+<h2>COKER</h2>
+<p>a Lye.  <i class="eg">Rum Coker</i>, a whisking Lye.</p>
+</div>
+<div class="entry">
+<h2>COLD-<i>Tea</i></h2>
+<p>Brandy.  <i class="eg">A couple of cold
+Words</i>, a Curtain-Lecture.  <i class="eg">Cold Iron</i>,
+a derisory Periphrasis for a Sword.</p>
+</div>
+<div class="entry">
+<h2>COLE</h2>
+<p>Money.</p>
+</div>
+<div class="entry">
+<h2>COLLEGE</h2>
+<p><i>Newgate</i>; <i>New College</i>,
+the <i>Royal-Exchange</i>.</p>
+</div>
+<div class="entry">
+<h2>COLLEGIATES</h2>
+<p>the Prisoners of
+the one, and the Shop-keepers of the
+other of those Places.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> COLLOGUE</h2>
+<p>wheedle.</p>
+</div>
+<div class="entry">
+<h2>COLQUARRON</h2>
+<p>a Man's Neck; as,
+<i class="eg">His Colquarron is just about to be twisted</i>.
+He is just going to be turn'd off.</p>
+</div>
+<div class="entry">
+<h2>COLT</h2>
+<p>an Inn-keeper that lends a
+Horse to a Highway-man, or to
+Gentleman Beggars; also a Lad newly
+initiated into Roguery.</p>
+</div>
+<div class="entry">
+<h2>COLT-BOWL</h2>
+<p>laid short of the
+Jack, by a [COLT-BOWLER]</p>
+</div>
+<div class="entry">
+<h2>COL-BOWLER</h2>
+<p>a raw or unexperienced Person.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> COME</h2>
+<p>to lend.  <i class="eg">Has he come it?</i>
+Has he lent it to you?</p>
+</div>
+<div class="entry">
+<h2>COMING-<i>Women</i></h2>
+<p>such as are free of
+their Flesh; also breeding Women.</p>
+</div>
+<div class="entry">
+<h2>COMMISSION</h2>
+<p>a shirt.</p>
+</div>
+<div class="entry">
+<h2>COMMON-<i>Garden-Gout</i></h2>
+<p>or rather
+<i class="eg">Covent-Garden-Gout</i>, the Foul Disease.</p>
+</div>
+<div class="entry">
+<h2>COMFORTABLE-<i>Importance</i></h2>
+<p>a Wife.</p>
+</div>
+<div class="entry">
+<h2>CONFECT</h2>
+<p>conterfeit, feigned.</p>
+</div>
+<div class="entry">
+<h2>CONTENT</h2>
+<p><i class="eg">I beat him to his Heart's
+Content</i>; <i>till he had enough of Fighting.</i>
+Also to murder a Person, who resists
+being robb'd.  <i class="eg">The Cull's Content</i>; <i>i.e.</i>
+He is past complaining.</p>
+</div>
+<div class="entry">
+<h2>CONTRE-TEMPS</h2>
+<p>a fruitless Attempt,
+or at an unseasonable Time.</p>
+</div>
+<div class="entry">
+<h2>CONVENIENT</h2>
+<p>a Mistress; also a
+Whore.</p>
+</div>
+<div class="entry">
+<h2>CONVENIENCY</h2>
+<p>a Wife; also a
+Mistress.</p>
+</div>
+<div class="entry">
+<h2>CONUNDRUMS</h2>
+<p>Whims, Maggots,
+and such like.</p>
+</div>
+<div class="entry">
+<h2>CONY</h2>
+<h2>or <i>Tom Cony</i></h2>
+<p>a silly Fellow;
+<i class="eg">A meer Cony</i>, very silly indeed.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> COLD-COOK</h2>
+<p>an Undertaker of
+Funerals.</p>
+</div>
+<div class="entry">
+<h2>COOK-RUFFIN</h2>
+<p>the Devil of a
+Cook; or a very bad one.</p>
+</div>
+<div class="entry">
+<h2>COOL-CRAPE</h2>
+<p>When a Person dies,
+he is said to be put into his <i>Cool-crape</i>.</p>
+</div>
+<div class="entry">
+<h2>COOLER</h2>
+<p>a Woman.</p>
+</div>
+<div class="entry">
+<h2>COOL-LADY</h2>
+<p>a Wench that sells
+Brandy (in Camps) a Suttler.</p>
+</div>
+<div class="entry">
+<h2>COOL-NANTZ</h2>
+<p>Brandy.</p>
+</div>
+<div class="entry">
+<h2>CORK-BRAIN'D</h2>
+<p>a very impudent,
+harden'd, brazen-faced Fellow.</p>
+</div>
+<div class="entry">
+<h2>COSTARD</h2>
+<p>the Head.  <i class="eg">I'll give ye a
+Knock on the Costard</i>; I'll hit ye a Blow
+on the Pate.</p>
+</div>
+<div class="entry">
+<h2>COTTON</h2>
+<p><i class="eg">They don't cotton</i>; They
+don't agree well.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> COUCH</h2>
+<p>to lie down, as <i class="eg">To
+Couch a Hogshead</i>; To go to Bed.</p>
+</div>
+<div class="entry">
+<h2>COVE</h2>
+<p>a Man, a Fellow; also a
+Rogue.  <i class="eg">The Cove was Bit</i>; The Rogue
+was out-sharped or out-witted.  <i class="eg">The
+Cove has bit the Cole</i>; The Rogue has
+stollen the Money.  <i class="eg">That Cove's a rum
+Diver</i>; That Fellow is a clever Pick-pocket.</p>
+</div>
+<div class="entry">
+<h2>COVEY <i>of Whores</i></h2>
+<p>a well-fill'd Bawdy-house.</p>
+</div>
+<div class="entry">
+<h2>COUNTERFEIT-CRANK</h2>
+<p>a genteel
+Cheat, a Sham or Impostor, appearing in divers Shapes: one who
+sometimes counterfeits Mens hands, or
+forges Writings; at others personates
+other Men: is sometimes a Clipper or
+Coiner; at others a Dealer in Counterfeit
+Jewels.  Sometimes a strowling
+Mountebank: To Day he is a Clergyman
+in Distress; to Morrow a reduced
+Gentleman.</p>
+</div>
+<div class="entry">
+<h2>VOURT-<i>card</i></h2>
+<p>a gay, fluttering
+Fellow.</p>
+</div>
+<div class="entry">
+<h2>COURT-<i>Holy-Water</i></h2>
+<h2>COURT-<i>Promises</i></h2>
+<p>fair Speeches without
+Performance.</p>
+</div>
+<div class="entry">
+<h2>COURT-<i>Tricks</i></h2>
+<p>State-Policy &amp;c.</p>
+</div>
+<div class="entry">
+<h2>COWS-BABY</h2>
+<p>a Calf.</p>
+</div>
+<div class="entry">
+<h2>CRACK</h2>
+<p>a Whore.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CRACK</h2>
+<p>is also used to break
+open; as, <i class="eg">To Crack up a Door</i>; To
+break a Door open.</p>
+</div>
+<div class="entry">
+<h2>CRACKER</h2>
+<p>the Backside; also Crust.</p>
+</div>
+<div class="entry">
+<h2>CRACKING</h2>
+<p>boasting, vapouring.</p>
+</div>
+<div class="entry">
+<h2>CRACKISH</h2>
+<p>whorish.</p>
+</div>
+<div class="entry">
+<h2>CRACKMANS</h2>
+<p>Hedges; as, <i class="eg">The Cull
+thought to have lop'd, by breaking thro'
+the Crackmans; but we fetch'd him back
+by a Nope on the Costard, which made
+him silent</i>; <i>i.e.</i> The Gentleman thought
+to escape by breaking through the
+Hedges; but we brought him back by
+a great Blow on the Head, which laid
+him for Dead.</p>
+</div>
+<div class="entry">
+<h2>CRAG</h2>
+<p>a Neck; also the Stomach,
+or Womb.</p>
+</div>
+<div class="entry">
+<h2>CRAMP-RINGS</h2>
+<p>Bolts or Shackles.</p>
+</div>
+<div class="entry">
+<h2>CRAMP-WORDS</h2>
+<p>Sentence of
+Death passed upon a Criminal by the
+Judge: as, <i class="eg">He has just undergone the
+
+Cramp-Word</i>; <i>i.e.</i> Sentence is just
+passed upon him.</p>
+</div>
+<div class="entry">
+<h2>CRANK</h2>
+<p>brisk, pert.</p>
+</div>
+<div class="entry">
+<h2>CRAP</h2>
+<p>Money.  <i class="eg">Nim the Crap</i>; Steal
+the Money.  <i class="eg">Wheedle for Crap</i>; To
+coax Money out of any Body.</p>
+</div>
+<div class="entry">
+<h2>CRASH</h2>
+<p>to Kill.  <i class="eg">Crash the Cull</i>, <i>i.e.</i>
+Kill the Fellow.</p>
+</div>
+<div class="entry">
+<h2>CRASHING-<i>Cheats</i></h2>
+<p>Teeth.</p>
+</div>
+<div class="entry">
+<h2>CREATURES</h2>
+<p>Men raised by others,
+and their <i>Tools</i> ever after.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CREEME</h2>
+<p>to slip or slide any
+Thing into another's Hand.</p>
+</div>
+<div class="entry">
+<h2>CREW</h2>
+<p>a Knot or Gang; as, <i class="eg">A
+Crew of Rogues</i>, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>CRIMP</h2>
+<p>as, <i class="eg">To play Crimp</i>, to lay or
+bet on one Side, and (by foul Play) to
+let the other win, having a Share of
+the Purchase.</p>
+</div>
+<div class="entry">
+<h2><i>Run a</i> CRIMP</h2>
+<p>to run a Race or
+Horse-match foully or knavishly.</p>
+</div>
+<div class="entry">
+<h2><i>He</i> CRIMPS <i>it</i></h2>
+<p>He plays booty.  <i class="eg">A
+crimping Fellow</i>, a sneaking Cur.</p>
+</div>
+<div class="entry">
+<h2>CRINKUMS</h2>
+<p>the foul Disease.</p>
+</div>
+<div class="entry">
+<h2>CROCKERS</h2>
+<p>Fore-stallers, Regraters;
+otherwise called <i>Kidders</i> and
+<i>Tranters</i>.</p>
+</div>
+<div class="entry">
+<h2>CROKER</h2>
+<p>a Groat or Fourpence.
+<i class="eg">The Cull tipt me a Croker</i>, the Fellow
+gave me a Groat.</p>
+</div>
+<div class="entry">
+<h2>CRONY</h2>
+<p>a Comerade [in a <i>Canting</i>
+Sense.]  Two or Three Rogues, who
+agree to beg or rob in Partnership, call
+one another <i>Crony</i>; as, <i class="eg">Such a one is
+my Crony</i>; as much as to say, He and I
+go Snacks.</p>
+</div>
+<div class="entry">
+<h2>CROP</h2>
+<p>Money.</p>
+</div>
+<div class="entry">
+<h2>CROPPIN</h2>
+<p>the Tail, as, <i class="eg">The Croppin
+of the Rotan</i>, The Tail of the Cart.</p>
+</div>
+<div class="entry">
+<h2>CROPPIN-KEN</h2>
+<p>a Privy or Bog-house.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> CROSS-BITE</h2>
+<p>to draw in a Friend,
+yet snack with the Sharper; also to
+countermine or disappoint.</p>
+</div>
+<div class="entry">
+<h2>CROWN <i>Office</i></h2>
+<p>as, <i class="eg">He is got into
+the Crown Office</i>, <i>i.e.</i> He's got drunk.</p>
+</div>
+<div class="entry">
+<h2>CRUISERS</h2>
+<p>Beggars; Also Highway
+Spies, who traverse the Road, to give
+Intelligence of a Booty, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>CRUMP</h2>
+<p>one that helps Sollicitors
+to <i>Affidavit-Men</i>.</p>
+</div>
+<div class="entry">
+<h2>CRUSTY-BEAU</h2>
+<p>one that lies with
+a Cover over his Face all Night, and
+uses Washes, Paint, &amp;c.</p>
+</div>
+<div class="entry">
+<h2><i>Young</i> CUB</h2>
+<p>a new Gamester drawn
+in to be rook'd.</p>
+</div>
+<div class="entry">
+<h2>CUCUMBERS</h2>
+<p>Taylors.</p>
+</div>
+<div class="entry">
+<h2>CUDGELLIERS</h2>
+<p>a Mob rudely
+arm'd; also Cudgel-Players.</p>
+</div>
+<div class="entry">
+<h2>CUFFIN</h2>
+<p>a Man.</p>
+</div>
+<div class="entry">
+<h2>CUFFIN-QUIRE</h2>
+<p>See <i>Quire Cuffin</i>.</p>
+</div>
+<div class="entry">
+<h2>CULP</h2>
+<p>a Kick or Blow.</p>
+</div>
+<div class="entry">
+<h2>CULL</h2>
+<p>a Man, either honest, or
+
+otherwise.  <i class="eg">A Bob-Cull</i>, a Sweet-humour'd
+Man to a Wench.  <i class="eg">The Cull
+naps us</i>; The Person robb'd apprehends
+us.  <i class="eg">A curst Cull</i>, an ill-natur'd Fellow,
+a Churl to a Woman.</p>
+</div>
+<div class="entry">
+<h2>CULLY</h2>
+<p>a Fop, a Fool, one who is
+easily drawn in and cheated by Whores
+and Rogues.</p>
+</div>
+<div class="entry">
+<h2>CUNNING-Shaver</h2>
+<p>a sharp Fellow,
+one that sharps or shaves (as they call
+it) close.</p>
+</div>
+<div class="entry">
+<h2>CUP-SHOT</h2>
+<p>Drunk.</p>
+</div>
+<div class="entry">
+<h2>CUP <i>of the Creature</i></h2>
+<p>strong-Liquor.</p>
+</div>
+<div class="entry">
+<h2>CURLE</h2>
+<p>Clippings of Money.</p>
+</div>
+<div class="entry">
+<h2>CURSITORS</h2>
+<p>reduced Lawyers, assuming
+to themselves the Knowledge
+of the Quirks and Quiddities of the
+Law, and are perpetually fomenting litigious
+Brawls, and insignificant Contentions,
+among the Scum of the Vulgar.</p>
+</div>
+<div class="entry">
+<h2>CURTAILS</h2>
+<p>whose Practice is to
+cut off Pieces of Silk, Cloth, Linnen
+or Stuff, that hang out at the Shop-Windows
+of Mercers, Drapers, &amp;c.
+as also sometimes the Tails of Womens
+Gowns, their Hoods, Scarves,
+Pinners, - if richly Lac'd.</p>
+</div>
+<div class="entry">
+<h2>CURTAIL'D</h2>
+<p>cut off, dock'd, shorten'd, reduced.</p>
+</div>
+<div class="entry">
+<h2>CURTAIN-Lecture</h2>
+<p>Womens impertinent
+scolding at their Husbands
+behind the Curtain.</p>
+</div>
+<div class="entry">
+<h2>CURTEZAN</h2>
+<p>a genteel fine Miss,
+or Quality Whore.</p>
+</div>
+<div class="entry">
+<h2>CUT</h2>
+<p>Drunk.  <i class="eg">Deep Cut</i>, very
+Drunk.  <i class="eg">Cut in the Leg or Back</i>, the
+same.  <i class="eg">To Cut</i>, also signifies to speak.
+<i class="eg">To Cut bene</i>, to speak gently, civilly or
+kindly; <i class="eg">To Cut bene (<i>or</i> benar) Whidds</i>,
+to give good Words.  <i class="eg">To Cut queere
+Whid's</i>, to give ill Language.  A Blow
+with a Stick or Cane, is also called a
+<i>Cut</i>.  As, <i class="eg">I took him a Cut cross the
+Shoulders</i>.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterd.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterd.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterd.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,367 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>D</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter D</h1>
+<div class="entry">
+<h2>DAB</h2>
+<p>expert, well vers'd in
+Roguery.
+<i class="eg">A Rum Dab</i>, a very
+dextrous Fellow at Thieving, Cheating, Sharping, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>DACE</h2>
+<p>Two-pence; Tip me a <i>Dace</i>, Lend me Two-pence, or pay
+so much for me.</p>
+</div>
+<div class="entry">
+<h2>DAG</h2>
+<p>a Gun.</p>
+</div>
+<div class="entry">
+<h2>DAMBER</h2>
+<p>a Rascal.  See <i>Dimber</i></p>
+</div>
+<div class="entry">
+<h2>DAMME-BOY</h2>
+<p>a roaring, mad,
+blustring Fellow, a Scourer of the
+Streets.</p>
+</div>
+<div class="entry">
+<h2>DANCERS</h2>
+<p>Stairs.</p>
+</div>
+<div class="entry">
+<h2>DANDYPRAT</h2>
+<p>a little puny Fellow.</p>
+</div>
+<div class="entry">
+<h2>DARBY</h2>
+<p>ready Money; as, <i class="eg">The Cull
+tipp'd us the Darby</i>; The Fellow gave
+us all his ready Money.</p>
+</div>
+<div class="entry">
+<h2>DARBIES</h2>
+<p>Irons, Shackles or Fetters.</p>
+</div>
+<div class="entry">
+<h2>DARK <i>Cully</i></h2>
+<p>a married Man, who
+keeps a Mistress, and creeps to her in
+the Night, for fear of Discovery.</p>
+</div>
+<div class="entry">
+<h2>DARKMANS</h2>
+<p>the Night; <i class="eg">The Child
+of Darkmans or Darkness</i>, a Bell-man.</p>
+</div>
+<div class="entry">
+<h2>DARKMANS-<i>Budge</i></h2>
+<p>one that slides
+into a House in the Dusk, to let in
+more Rogues to rob.</p>
+</div>
+<div class="entry">
+<h2>DASH</h2>
+<p>a Tavern-Drawer.</p>
+</div>
+<div class="entry">
+<h2>DAWB</h2>
+<p>a Bribe, a Reward for
+secret Service; as, <i class="eg">The Cull was gybbed,
+because he could not dawb</i>.  The Rogue
+was punished, because he had no Pence
+to bribe off his Sentence.</p>
+</div>
+<div class="entry">
+<h2>DEAD <i>Cargo</i></h2>
+<p>a Term used by
+Rogues, when they are disappointed in 
+the Value of their Booty.</p>
+</div>
+<div class="entry">
+<h2>DEAD-MEN</h2>
+<p>empty Pots or Bottles
+ona Tavern Table.</p>
+</div>
+<div class="entry">
+<h2>DEAR <i>Joyes</i></h2>
+<p><i>Irishmen</i></p>
+</div>
+<div class="entry">
+<h2>DECUS</h2>
+<p>a Crown or Five Shilling
+Piece.</p>
+</div>
+<div class="entry">
+<h2>DEFT <i>Fellow</i></h2>
+<p>a tidy, neat, little
+Man.</p>
+</div>
+<div class="entry">
+<h2>DEGEN</h2>
+<p>a Sword.  <i class="eg">Nim the Degen</i>,
+whip the Sword from the Gentleman's
+side.</p>
+</div>
+<div class="entry">
+<h2>DELLS</h2>
+<p>young bucksome Wenches,
+rip and prone to Venery, but who
+have not lost their Virginity, which
+the <i>Upright Man</i> pretends to, and
+seizes: Then she is free for any of the
+Fraternity.  Also a common Strumpet.</p>
+</div>
+<div class="entry">
+<h2>DEVIL-<i>drawer</i></h2>
+<p>a sorry Painter.</p>
+</div>
+<div class="entry">
+<h2>DEUSEAVILE</h2>
+<p>the Country.</p>
+</div>
+<div class="entry">
+<h2>DEUSEAVILE-<i>Stampers</i></h2>
+<p>Country Carriers.</p>
+</div>
+<div class="entry">
+<h2>DEWS-<i>wins</i></h2>
+<h2>or, <i>Deux-wins</i></h2>
+<p>Two-pence.</p>
+</div>
+<div class="entry">
+<h2>DIDDLE</h2>
+<p><i>Geneva</i>, a Liquor very
+much drank by the lowest Rank of
+People.</p>
+</div>
+<div class="entry">
+<h2>DIMBER</h2>
+<p>pretty.</p>
+</div>
+<div class="entry">
+<h2>DIMBER-<i>Cove</i></h2>
+<p>a pretty Fellow.</p>
+</div>
+<div class="entry">
+<h2>DIMBER-<i>Damber</i></h2>
+<p>a Top Man or
+Prince amongst the <i>Canting Crew</i>;
+also the chief Rogue of the Gang, or
+the compleatest Cheat.</p>
+</div>
+<div class="entry">
+<h2>DIMBER-<i>Mort</i></h2>
+<p>a pretty Wench.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> DING</h2>
+<p>to knock down.</p>
+</div>
+<div class="entry">
+<h2>DING-<i>Boy</i></h2>
+<p>a Rogue, a Hector, a
+Bully, a Sharper.</p>
+</div>
+<div class="entry">
+<h2>DING-<i>Dong</i></h2>
+<p>helter-skelter.</p>
+</div>
+<div class="entry">
+<h2>DIPT</h2>
+<p>engag'd or in Debt, pawn'd
+or mortgag'd.</p>
+</div>
+<div class="entry">
+<h2>DISMAL-<i>Ditty</i></h2>
+<p>a Psalm at the Gallows.</p>
+</div>
+<div class="entry">
+<h2>DISPATCHES</h2>
+<p>a <i>Mittimus</i>, a Justice
+
+of Peace's Warrant to send a Rogue
+to Prison, &amp;c.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> DIVE</h2>
+<p>to pick a Pocket.</p>
+</div>
+<div class="entry">
+<h2>DIVER</h2>
+<p>a Pick-pocket.  See <i>File</i>.</p>
+</div>
+<div class="entry">
+<h2>DOASH</h2>
+<p>a Cloak.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> DOCK</h2>
+<p>to lie witha Woman.
+<i class="eg">The Cull Docks the Dell in the Darkmans</i>;
+the Rogue lay with the Wench all
+Night.</p>
+</div>
+<div class="entry">
+<h2>DOCTOR</h2>
+<p>a false Die that will run
+but two or three Chances.  <i class="eg">They put
+the Doctor upon him</i>; they cheated him
+with false Dice.</p>
+</div>
+<div class="entry">
+<h2>DOMERARS</h2>
+<h2>or DROMMERARS</h2>
+<p>Rogues, pretending to have had their
+Tongues cut out, or to be born Dumb
+and Deaf, who artificially turn their
+Tip of their Tongues into their
+Throat, and with a Stick making it
+bleed.</p>
+</div>
+<div class="entry">
+<h2>DOSE</h2>
+<p>Burglary, a breaking open a
+House, Lock, Door, &amp;c. as, <i class="eg">He is cast
+for Felon and Dose</i>; <i>i. e.</i> found Guilty
+of Felony and Burglary.</p>
+</div>
+<div class="entry">
+<h2>DOWN-HILLS</h2>
+<p>Dice that run low.</p>
+</div>
+<div class="entry">
+<h2>DOXIES</h2>
+<p>She beggars, Wenches,
+Whores.</p>
+</div>
+<div class="entry">
+<h2>DRAB</h2>
+<p>a Whore, or Slut; a <i class="eg">dirty
+Drab</i>, a very nasty Slut.</p>
+</div>
+<div class="entry">
+<h2>DRAWERS</h2>
+<p>Stockens.</p>
+</div>
+<div class="entry">
+<h2>DRAW-<i>Latches</i></h2>
+<p>Robbers of Houses
+that were fastened only by <i>Latches</i>.</p>
+</div>
+<div class="entry">
+<h2>DRIPPER</h2>
+<p>a sort of Clap, or venereal
+Gleet.</p>
+</div>
+<div class="entry">
+<h2>DROMEDARY</h2>
+<p>a heavy, bundling
+Thief or Rogue.  <i class="eg">A purple Dromedary</i>;
+a Bungler or a dull Fellow at Thieving.</p>
+</div>
+<div class="entry">
+<h2>DROMMERARS</h2>
+<p>See <i>Domerars</i>.</p>
+</div>
+<div class="entry">
+<h2>DROP <i>a Cog</i></h2>
+<p>to let fall (with Design
+to draw in and cheat) a Piece of Gold;
+also the Piece itself.</p>
+</div>
+<div class="entry">
+<h2>DROP <i>in his Eye</i></h2>
+<p>almost drunk.</p>
+</div>
+<div class="entry">
+<h2>DRUMBELO</h2>
+<p>a dull, heavy Fellow.</p>
+</div>
+<div class="entry">
+<h2>DRY-<i>Bob</i></h2>
+<p>a smart or sharp Repartee.</p>
+</div>
+<div class="entry">
+<h2>DRY-<i>Boots</i></h2>
+<p>a sly, close cunning
+Fellow.</p>
+</div>
+<div class="entry">
+<h2>DUB</h2>
+<p>a pick-lock Key.</p>
+</div>
+<div class="entry">
+<h2>DUB <i>the Gigger</i></h2>
+<p>open the Door.
+<i class="eg">We'll strike it upon the Dub</i>, We will
+rob that Place.</p>
+</div>
+<div class="entry">
+<h2>DUBBER</h2>
+<p>a Picker of Locks.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> DUCE</h2>
+<p>Two pence.</p>
+</div>
+<div class="entry">
+<h2>DUDDS</h2>
+<p>Cloaths or Goods.  <i class="eg">Rum
+Dudds</i>; fine or rich Cloaths or Goods.</p>
+</div>
+<div class="entry">
+<h2>DUDD-<i>Cheats</i></h2>
+<p>Cloaths and things
+stollen.  <i class="eg">Abraham Cove has wonne</i>, (or <i>bit</i>)<i> Rumm Dudds</i>; the poor Fellow
+has stollen very costly Cloaths.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> DUM-<i>found</i></h2>
+<p>to beat soundly.</p>
+</div>
+<div class="entry">
+<h2>DUNAKER</h2>
+<p>a Stealer or Cows, or
+Calves, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>DUDDERING <i>Rake</i></h2>
+<p>a thundering
+Rake, or of the first Rank, one devilishly
+lewd.</p>
+</div>
+<div class="entry">
+<h2>DUP</h2>
+<p>to enter, or open a Door:
+<i class="eg">Dup the Ken</i>, Enter the House.  <i class="eg">Dup
+the Boozing Ken and booz a Gage</i>, Go
+into the Ale-house and drink a Pot.</p>
+</div>
+<div class="entry">
+<h2>DUST</h2>
+<p>Money; <i class="eg">Down with your
+Dust</i>, Deposite your Money.</p>
+</div>
+<div class="entry">
+<h2>DUST <i class="eg">it away</i>
+</h2>
+<p>Drink quick about.</p>
+</div>
+<div class="entry">
+<h2>DUTCH-<i>Reckoning</i></h2>
+<h2>or <i>Alte-mall</i></h2>
+<p>a
+verbal or lump Accompt, without Particulars;
+as brought in at the <i>Spunging-Houses</i>,
+at <i>Bawdy Houses</i>, and other
+such like Places of ill Repute.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettere.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettere.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettere.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,94 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>E</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter E</h1>
+<div class="entry">
+<h2>EAGLE</h2>
+<p>a winning Gamester.</p>
+</div>
+<div class="entry">
+<h2>EARNEST</h2>
+<p>Part or Share.
+<i class="eg">Tip me my Earnest</i>,
+Give me my Snack or
+Dividend.</p>
+</div>
+<div class="entry">
+<h2>EASY</h2>
+<p>facile, supple, pliable, mnageable.
+<i class="eg">As make the Cull easy</i>; Gagg
+him, tht he may make no Noise;sometimes used for murdering a Person
+robbed, for fear of Discovery.</p>
+</div>
+<div class="entry">
+<h2>EBB <i>water</i></h2>
+<p>when there is but little
+money in the Pocket.</p>
+</div>
+<div class="entry">
+<h2>EDGE</h2>
+<p>as, <i class="eg">Fall Back, fall Edge</i>; <i>i.e.</i>
+<span class="meaning"><i>At all Adventures</i></span>; used to express a
+villainous and daring Resolution for
+Mischief, whatever may be the Consequence.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> EDGE</h2>
+<p>or, as 'tis vulgarly call'd,
+<i>To</i> EGG one on; to stimulate, provoke,
+push forwards, so sharpen, or whet on
+for Mischief.</p>
+</div>
+<div class="entry">
+<h2>ELBOW-<i>shaker</i></h2>
+<p>a Ganester or Sharper.</p>
+</div>
+<div class="entry">
+<h2>ELF</h2>
+<p>little.</p>
+</div>
+<div class="entry">
+<h2>EMPTY</h2>
+<p>as, <i class="eg">The Cull looks Empty</i>;
+or, <i class="eg">'Tis all Empty</i>; i.e. the Person or
+House has not the Riches reported, or
+is not worth attempting.</p>
+</div>
+<div class="entry">
+<h2>ENGLISH <i>Manufacture</i></h2>
+<p>Ale, Beer,
+or Cyder.</p>
+</div>
+<div class="entry">
+<h2>EQUIPT</h2>
+<p>rich; also having new
+Cloaths.  <i class="eg">Well equipt</i>, plump in the
+Pocket, or very full of Money; also
+very well drest.  <i class="eg">The Cull equipt me
+with a Brace of Meggs</i>, The Gentleman
+furnish'd me with a Coupleof Guineas.</p>
+</div>
+<div class="entry">
+<h2>ERIFFS</h2>
+<p>Rogues just initiated, and
+beginning to practice.</p>
+</div>
+<div class="entry">
+<h2>EVES</h2>
+<p>Hen-Roosts.</p>
+</div>
+<div class="entry">
+<h2>EVES-<i>Dropper</i></h2>
+<p>one that lurks about
+to rob or steal.</p>
+</div>
+<div class="entry">
+<h2>EWE</h2>
+<h2>or, <i>The white Ewe</i></h2>
+<p>a Top-woman very beautiful.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterf.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterf.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterf.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,558 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>F</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter F</h1>
+<div class="entry">
+<h2>FACER</h2>
+<p>a Bumber without Lip-room.</p>
+</div>
+<div class="entry">
+<h2>FADGE</h2>
+<p>as, It won't fadge or do.</p>
+</div>
+<div class="entry">
+<h2>FAG</h2>
+<p>to Beat; as, <i class="eg">Fag the Bloss</i>,
+Bang the Wench; <i class="eg">Fag the Fen</i>, Drub
+the Whore.  Whence [[to Faggot, next entry]].</p>
+</div>
+<div class="entry">
+<h2><i>To</i> FAGGOT</h2>
+<p>to bind Hand and
+Foot; as <i class="eg">Faggot the Culls</i>; <i>i.e.</i> Bind
+the Men.</p>
+</div>
+<div class="entry">
+<h2>FAIR-<i>Roe-Buck</i></h2>
+<p>a Woman in the
+Bloom of her Beauty.</p>
+</div>
+<div class="entry">
+<h2>FAMBLE-<i>Cheats</i></h2>
+<p>Gold Rings, or
+Gloves.</p>
+</div>
+<div class="entry">
+<h2>FAMBLERS</h2>
+<p>Villains that go up and
+down selling counterfeit rings, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>FAMBLES</h2>
+<p>Rings; also the Hands.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> FAMGRASP</h2>
+<p>to agree or make
+up a Difference.  <i class="eg">Famgrasp the Cove</i>,
+to agree with the Adversary.</p>
+</div>
+<div class="entry">
+<h2>FAMILY <i>of Love</i></h2>
+<p>Lew'd Women,
+Whores; also a Sect.</p>
+</div>
+<div class="entry">
+<h2>FAMMS</h2>
+<p>Hands.</p>
+</div>
+<div class="entry">
+<h2>FARTING-<i>Crackers</i></h2>
+<p>Breeches.</p>
+</div>
+<div class="entry">
+<h2>FASTNER</h2>
+<p>a Warrant.</p>
+</div>
+<div class="entry">
+<h2>FASTNESS</h2>
+<p>Boggs.</p>
+</div>
+<div class="entry">
+<h2>FAT</h2>
+<p>rich, as, <i class="eg">A Fat Cull</i>; a rich
+Fellow.</p>
+</div>
+<div class="entry">
+<h2>FAULKNER</h2>
+<p>a Tumbler, a Juggler,
+a Shewer of Tricks, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>FAYTORS</h2>
+<h2>or FATORS</h2>
+<p>A kind of Gypsies, pretending to tell People
+their Fate or Destiny, or what they
+were born to.</p>
+</div>
+<div class="entry">
+<h2>FEATHER-<i>bed-lane</i></h2>
+<p>any bad Road,
+but particularly that betwixt <i>Dunchurch</i>
+and <i>Daintry</i>.  <i class="eg">To Feather his nest</i>, to
+inrich himself by indirect Means, or
+at the expence of others.</p>
+</div>
+<div class="entry">
+<h2>FEINTING</h2>
+<p>an Attempt on one part
+of a House, or Road, &amp;c. when their
+cheif Stress or Attempt lies in another.</p>
+</div>
+<div class="entry">
+<h2>FEN</h2>
+<p>a Strumpet, or Bawd, a common
+prostitute.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> FENCE</h2>
+<p>to spend, <i class="eg">Fence his Hog</i>,
+spend his Shilling.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> FENCE</h2>
+<p>is also a Receiver and
+Securer of Stollen Goods.</p>
+</div>
+<div class="entry">
+<h2>FENCING-<i>Cully</i></h2>
+<p>the fame.</p>
+</div>
+<div class="entry">
+<h2>FENCING-<i>Ken</i></h2>
+<p>a Warehouse,
+where Stollen Goods are secured.</p>
+</div>
+<div class="entry">
+<h2>FERME</h2>
+<p>a Hole.</p>
+</div>
+<div class="entry">
+<h2>FERMERLY-<i>Beggars</i></h2>
+<p>all those that
+have not the sham Sores or <i>Cleymes</i>.</p>
+</div>
+<div class="entry">
+<h2>FERRET</h2>
+<p>a Parn-broker, or
+Tradesman that sells Goods upn Trust
+at excessive Rates, and then hunts
+them, and often throws them into
+Goal, where they perish for his Debt.</p>
+</div>
+<div class="entry">
+<h2>FERRETED</h2>
+<p>cheated</p>
+</div>
+<div class="entry">
+<h2>FETCH</h2>
+<p>a Trick or Wheedle.  <i class="eg">A
+meer Fetch</i>.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> FIB</h2>
+<p>to beat; <i class="eg">Fib the Cove's
+Quarron in the Rompad, for the Lour in
+his Bung</i>.  Beat the Man in the Highway
+for the Money in his Purse.</p>
+</div>
+<div class="entry">
+<h2>FIDDLE</h2>
+<p>a Writ to Arrest.</p>
+</div>
+<div class="entry">
+<h2>FIDLERS-<i>Pay</i></h2>
+<p>Thanks and Wine.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> FILCH</h2>
+<p>to Steal.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> FILCH</h2>
+<p>a Staff, with a Hole thro'
+and a Spike at the Bottom, to pluck
+Cloaths from a Hedge or any thing out
+of a Casement.</p>
+</div>
+<div class="entry">
+<h2>FILCHERS</h2>
+<p>the same with ANGLERS.</p>
+</div>
+<div class="entry">
+<h2>FILCHING-<i>Cove</i></h2>
+<p>a Man-Thief.</p>
+</div>
+<div class="entry">
+<h2>FILCHING-<i>Mort</i></h2>
+<p>a Woman-Thief.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> FILE</h2>
+<p>to Rob, or Cheat.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> FILE</h2>
+<h2>or <i>Bungnipper</i></h2>
+<p>Pick-pockets,
+who generally go in Company with a
+Rogue, called a <i>Bulk</i> or <i>Bulker</i>, whose
+Business 'tis to jostle the Person against
+the Wall, while the <i>File</i> picks his
+Pocket; and generally gives it to an
+<i>Adam-tiler</i>, who scowers off with it.</p>
+</div>
+<div class="entry">
+<h2>FILE-<i>Cloy</i></h2>
+<p>a Pick-Pocket, Thief or
+Rogue; the same as FILE.</p>
+</div>
+<div class="entry">
+<h2>FIRE-<i>Ship</i></h2>
+<p>a Pockey Whore.</p>
+</div>
+<div class="entry">
+<h2>FLAG</h2>
+<p>a Groat; <i class="eg">The Flag of Defiance
+is out</i>, (among the Tarrs) the
+Fellow's Face is very red, and he is
+drunk.</p>
+</div>
+<div class="entry">
+<h2>FLAM</h2>
+<p>a Trick or Sham Story.</p>
+</div>
+<div class="entry">
+<h2>FLANDERS-<i>Fortunes</i></h2>
+<p>of small Substance.</p>
+</div>
+<div class="entry">
+<h2>FLANDERS-<i>Pieces</i></h2>
+<p>Pictures that
+look fair at a Distance, but coarser
+near at Hand.</p>
+</div>
+<div class="entry">
+<h2>FLAP DRAGON</h2>
+<p>a Clap or Pox.</p>
+</div>
+<div class="entry">
+<h2>FLASH</h2>
+<p>a Peruke.  <i class="eg">Rum Flash</i>, a
+long, full, high-priz'd Wig.  <i class="eg">Queer-Flash</i>,
+a sorry weather-beaten Wig.</p>
+</div>
+<div class="entry">
+<h2>FLASH-<i>Ken</i></h2>
+<p>a House were Thieves
+use, and are connived at.</p>
+</div>
+<div class="entry">
+<h2>FLAW'D</h2>
+<p>Drunk.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> FLEECE</h2>
+<p>to Rob, Plunder or
+Strip.</p>
+</div>
+<div class="entry">
+<h2>FLESH <i>Broker</i></h2>
+<p>a Match-maker;
+also a Bawd.</p>
+</div>
+<div class="entry">
+<h2>FLIBUSTERS</h2>
+<p><i>West Indian</i> Pirates,
+or Buckaneers, Free-booters.</p>
+</div>
+<div class="entry">
+<h2>FLICKER</h2>
+<p>a Drinking Glass.  <i class="eg">The
+Flicker snapt</i>, the Glass is broken.  <i class="eg">Nim
+the Flicker</i>.  Steal the Glass.  <i class="eg">Rum
+Flicker</i>, a large Glass or Rummer.
+<i class="eg">Queer Flicker</i>, a green or ordinary
+Glass.</p>
+</div>
+<div class="entry">
+<h2>FLICKING</h2>
+<p>to cut, cutting, as, <i class="eg">Flick
+me some Panom and Cossam</i>; Cut me
+some Bread and Cheese.  And, <i class="eg">Flick
+the Peter</i>, cut off the Cloak-bag or
+Portmanteau.</p>
+</div>
+<div class="entry">
+<h2>FLOGG</h2>
+<p>to Whip</p>
+</div>
+<div class="entry">
+<h2>FLOGG'D</h2>
+<p>severely lash'd.</p>
+</div>
+<div class="entry">
+<h2>FLOGG'D <i>at the Tumbler</i></h2>
+<p>whipt at the Cart's Arse.</p>
+</div>
+<div class="entry">
+<h2>FLOGGING</h2>
+<p>a naked Woman's
+whipping with Rods an old (usually)
+and (sometimes) a young Letcher.
+<i class="eg">The Prancer drew the Queer Cove, at
+the Crop-pin of the Rotan, through the
+Rum Pads of the Runville, and was
+Flogg'd by the Rum Cove</i>, <i>i. e.</i> The
+Rogue was dragg'd at the Cart's tail
+through the chief Streets of <i>London</i>,
+and was soundly whipt by the Hangman.</p>
+</div>
+<div class="entry">
+<h2>FLOGGING-<i>Cove</i></h2>
+<p>the Beadle, or
+Whipper in <i>Bridewell</i>, or any such
+Place.</p>
+</div>
+<div class="entry">
+<h2>FLOGGING-<i>Cully</i></h2>
+<p>an old Letcher,
+who, to stimulate himself to Venery,
+causes himself to be whipp'd with
+Rods.</p>
+</div>
+<div class="entry">
+<h2>FLOGGING-<i>Stake</i></h2>
+<p>a whipping
+Post.</p>
+</div>
+<div class="entry">
+<h2>FLORENCE</h2>
+<p>a Wench that is
+touz'd and ruffled.</p>
+</div>
+<div class="entry">
+<h2>FLUSH <i>in the Pocket</i></h2>
+<p>full of Money.
+<i class="eg">The Cull is Flush in the Fob</i>, the Spark's
+Pocket is well lin'd with Money.</p>
+</div>
+<div class="entry">
+<h2>FLUSTER'D</h2>
+<p>Drunk.</p>
+</div>
+<div class="entry">
+<h2>FLUTE</h2>
+<p>the Recorder of <i>London</i>,
+or of any other Town.</p>
+</div>
+<div class="entry">
+<h2>FLYERS</h2>
+<p>Shoes.</p>
+</div>
+<div class="entry">
+<h2>FLYING <i>Camps</i></h2>
+<p>Beggars plying in
+Bodies at Funerals.</p>
+</div>
+<div class="entry">
+<h2>FOB</h2>
+<p>a Cheat, or Trick.</p>
+</div>
+<div class="entry">
+<h2>FOB <i>off</i></h2>
+<p>to cheat or deceive.</p>
+</div>
+<div class="entry">
+<h2>FOG</h2>
+<p>Smoke.</p>
+</div>
+<div class="entry">
+<h2>FOGUS</h2>
+<p>Tobacco. <i class="eg">Tip me a Gage of
+Fogus</i>, Give me a Pipe of Tobacco.</p>
+</div>
+<div class="entry">
+<h2>FOOTMAN's <i>Mawn'd</i></h2>
+<p>an artificial
+Sore made with unslak'd Lime, Soap,
+an the Rust of old Iron, on the Back
+of a Beggar's Hand, as if hurt by the
+Bite or Kick of a Horse.</p>
+</div>
+<div class="entry">
+<h2>FOOT-<i>Pads</i></h2>
+<h2>or LOW <i>Pads</i></h2>
+<p>a Crew
+of Villains, who rob on Foot, some
+of them using long Poles or Staves,
+with an Iron Hook at the End, with
+which they either pull Gentlemen from
+their Horses, or knock them down: At
+other Times, they skulk under Hedges
+or behind Banks in the Road, and suddenly
+starting out from their Covert,
+one seizes the Bridle, while the other
+dismounts the Passenger: and so rob,
+and often murder him.</p>
+</div>
+<div class="entry">
+<h2>FORMAN <i>of the Jury</i></h2>
+<p>one that engrosses
+all the Talk to himself.</p>
+</div>
+<div class="entry">
+<h2>FORK</h2>
+<p>a Pick-pocket.  <i class="eg">Lets Fork
+him</i>; Let us pick that Man's Pocket.
+
+It is done by thrusting the Fingers,
+strait, stiff, open and very quick into
+the Pocket, and so closing them, hook
+what can be held between them.</p>
+</div>
+<div class="entry">
+<h2>A FORK</h2>
+<p>is also used for a Spendthrift.</p>
+</div>
+<div class="entry">
+<h2>FORLORN-<i>Hope</i></h2>
+<p>losing Gamesters.</p>
+</div>
+<div class="entry">
+<h2>FORTUNE-<i>Hunters</i></h2>
+<p><i>Irishmen</i>, Pursuers
+of rich Heiresses, &amp;c. to obtain
+them in Marriage.  <i class="eg">A Creature of Fortune</i>,
+one that lives by his Wit.</p>
+</div>
+<div class="entry">
+<h2>FORTUNE-<i>Tellers</i></h2>
+<p>the Judges of
+Life and Death.</p>
+</div>
+<div class="entry">
+<h2>FOUNDLING</h2>
+<p>a Child dropt in the
+Streets for the Parish to keep.</p>
+</div>
+<div class="entry">
+<h2>A FOX</h2>
+<p>a sharp, cunning Fellow.</p>
+</div>
+<div class="entry">
+<h2>FOXED</h2>
+<p>Drunk.</p>
+</div>
+<div class="entry">
+<h2>FOYST</h2>
+<p>a Cheat, a Rogue.</p>
+</div>
+<div class="entry">
+<h2>FRATERS</h2>
+<p>such as beg with sham
+Patents or Briefs for Spitals, Prisons,
+Fires, Innundations, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>FREE-<i>Booters</i></h2>
+<p>lawless Robbers, and
+Plunderers; also Soldiers serving for
+that Privilege without Pay, Inroaders.</p>
+</div>
+<div class="entry">
+<h2>FREEHOLDER</h2>
+<p>he whose Wife goes
+with him to the Alehouse.</p>
+</div>
+<div class="entry">
+<h2>FREEZE</h2>
+<p>a thin, small, hard Cyder,
+much used by Vintners and Coopers in
+parting their Wines, to lower the
+Price of them, and to advance their
+Gain.  <i class="eg">A Freezing Vintner</i>, a vintner
+that balderdashes his Wine.</p>
+</div>
+<div class="entry">
+<h2>FRENCH <i>Gout</i></h2>
+<p>the Pox.  <i class="eg">A Blow
+with a French Faggot stick</i>, when the
+Nose is fallen by the Pox.</p>
+</div>
+<div class="entry">
+<h2>FRENCHIFIED</h2>
+<p>clapt or Poxt.</p>
+</div>
+<div class="entry">
+<h2>FRIGOT <i>well rigged</i></h2>
+<p>a Woman well
+drest and genteel.</p>
+</div>
+<div class="entry">
+<h2>FROE</h2>
+<p>for <i>Vrowe</i>, (<i>Dutch</i>) a Wife,
+Mistress, or Whore, <i class="eg">Brush to your Froe
+</i>(or <i>Blos</i>)<i> and wheedle for Crap</i>, whip
+to your Mistress, and speak her fair
+to give, or lend you some Money.</p>
+</div>
+<div class="entry">
+<h2>FROG-<i>Landers</i></h2>
+<p>Dutchmen.</p>
+</div>
+<div class="entry">
+<h2>FRUMMAGEMM'D</h2>
+<p>choaked, strangled, or hanged.</p>
+</div>
+<div class="entry">
+<h2>FRUMP</h2>
+<p>a dry Bob, or Jest.</p>
+</div>
+<div class="entry">
+<h2>FUDDLE</h2>
+<p>Drink.  <i class="eg">This is rum Fuddle</i>,
+this is excellent Tipple.</p>
+</div>
+<div class="entry">
+<h2>FUDDLE-<i>Cap</i></h2>
+<p>a Drunkard.</p>
+</div>
+<div class="entry">
+<h2>FUN</h2>
+<p>a Cheat, or slippery Trick;
+<i class="eg">What do you fun me?</i> Do you think to
+sharp or trick me?  <i class="eg">He put the fun upon
+the Cull</i>, he sharped the Fellow.</p>
+</div>
+<div class="entry">
+<h2>FUN</h2>
+<p>is also used for the Backside;
+as, <i class="eg">I'll kick your Fun</i>, <i>i. e.</i> I'll kick your
+Breech.  Likewise for Game of Diversion;
+as <i class="eg">We had rare Fun with him</i>.</p>
+</div>
+<div class="entry">
+<h2>FUNK</h2>
+<p>Tobacco Smoak.</p>
+</div>
+<div class="entry">
+<h2>FUR-<i>Men</i></h2>
+<p>Aldermen.</p>
+</div>
+<div class="entry">
+<h2>FUSSOCKS</h2>
+<p>as <i class="eg">A meer Fussocks</i>, a lazy
+fat wench.  <i class="eg">A fat Fussocks</i>, a fat fulsom,
+strapping Woman.</p>
+</div>
+<div class="entry">
+<h2>FUSTILUGGS</h2>
+<p>a fulsom, beastly,
+nasty Woman.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterg.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterg.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterg.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,555 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>G</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter G</h1>
+<div class="entry">
+<h2>GAG</h2>
+<p>to put iron pins into the
+Mouths of the Robbed, to hinder
+them from crying out.</p>
+</div>
+<div class="entry">
+<h2>GAGE</h2>
+<p>a Pot or Pipe.  <i class="eg">Tip me a Gage</i>,
+give me a Pot or Pipe.</p>
+</div>
+<div class="entry">
+<h2>GAME</h2>
+<p>Bubbles drawn in to be
+cheated; also at a Bawdy house, lewd
+Women.  <i class="eg">Have ye any Game Mother</i>?
+Have ye any Whores, Mistress bawd.</p>
+</div>
+<div class="entry">
+<h2>GAN</h2>
+<p>a Mouth.</p>
+</div>
+<div class="entry">
+<h2>GANS</h2>
+<p>the Lips.</p>
+</div>
+<div class="entry">
+<h2>GANG</h2>
+<p>an ill Knot or Crew of
+Thieves, Pick-pockets or Miscreants.</p>
+</div>
+<div class="entry">
+<h2>GAOL'ERS-<i>Coach</i></h2>
+<p>a Hurdle.</p>
+</div>
+<div class="entry">
+<h2>GARNISH-<i>Money</i></h2>
+<p>what is customarily
+spent among the Prisoners at first
+coming in.</p>
+</div>
+<div class="entry">
+<h2>GEE</h2>
+<p>as <i class="eg">It won't Gee</i>, it won't hit,
+or go.</p>
+</div>
+<div class="entry">
+<h2>GELT</h2>
+<h2>or <i>Gelt</i> [sic]</h2>
+<p>Money.</p>
+</div>
+<div class="entry">
+<h2>GENTRY-<i>Cove</i></h2>
+<p>a Gentleman.</p>
+</div>
+<div class="entry">
+<h2>GENTRY-<i>Cove-Ken</i></h2>
+<p>a Nobleman's
+or Gentleman's House.</p>
+</div>
+<div class="entry">
+<h2>GENTRY-<i>Mort</i></h2>
+<p>a Gentlewoman.</p>
+</div>
+<div class="entry">
+<h2>GEORGE</h2>
+<p>a Half-Crown piece.</p>
+</div>
+<div class="entry">
+<h2>GIG</h2>
+<p>a Nose; also a Woman's Privities.
+<i class="eg">Snichel the Gig</i>, fillip the Fellow
+on the Nose.  <i class="eg">A young Gig</i>, a wanton
+Lass.</p>
+</div>
+<div class="entry">
+<h2>GIGGER</h2>
+<p>a Door, <i class="eg">Dub the Gigger,
+that we may ravage the Ken</i>, i. e. Open
+the Door with the Pick-lock, that we
+go in and rob the House.</p>
+</div>
+<div class="entry">
+<h2>GIG'GLERS</h2>
+<p>wanton Women.</p>
+</div>
+<div class="entry">
+<h2>GILL</h2>
+<p>a Quartern (of Brandy, Wine
+&amp;c.) also a homely Woman.</p>
+</div>
+<div class="entry">
+<h2>GILL-FLURT</h2>
+<p>a proud Minks; also
+a Slut or light Housewife.</p>
+</div>
+<div class="entry">
+<h2>GILT</h2>
+<h2>or <i>Rum dubber</i></h2>
+<p>a Picklock, so
+called from <i>Gilt</i>, or <i>Key</i>; may of them
+are so expert, that from a Church-Door,
+to the smallest Cabinet or Trunk
+they will find means to open it.  They
+generally pretending Business of Secrecy,
+covet to go up Stairs with their
+Company, in a Publick-House or Tavern,
+and then prying about, open any
+Door, Trunk or Cabinet that they
+think will afford them Booty, and so
+march off.</p>
+</div>
+<div class="entry">
+<h2>GIMCRACK</h2>
+<p>a spruce Wench.</p>
+</div>
+<div class="entry">
+<h2>GINGER-<i>Bread</i></h2>
+<p>Money.</p>
+</div>
+<div class="entry">
+<h2>GINGERLY</h2>
+<p>gently, soft, easily.</p>
+</div>
+<div class="entry">
+<h2>GINGUMBOBS</h2>
+<p>Toys or Baubles.</p>
+</div>
+<div class="entry">
+<h2>GINNY</h2>
+<p>an Instrument to lift up a
+Grate, the better to steal what is in the
+Window.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> GLAVER</h2>
+<p>to fawn and flatter.</p>
+</div>
+<div class="entry">
+<h2>GLAZE</h2>
+<p>a Window.</p>
+</div>
+<div class="entry">
+<h2>GLAZIER</h2>
+<p>one that creeps in at
+Casements, or unrips Glass-Windows
+to filch and steal.</p>
+</div>
+<div class="entry">
+<h2>GLAZIERS</h2>
+<p>Eyes.  <i class="eg">The Cove has
+rum Glaziers</i>.</p>
+</div>
+<div class="entry">
+<h2>GLIB</h2>
+<p>smooth, without a Rub.</p>
+</div>
+<div class="entry">
+<h2>GLIM</h2>
+<p>a Dark-Lanthorn used in robbing
+Houses; also to burn in the Hand
+as <i class="eg">if the Cull was Glimmed, he'll gang to
+the Nub</i>; i.e. if the Fellow has been
+burnt in the Hand, he'll be hanged
+now.</p>
+</div>
+<div class="entry">
+<h2>GLIMFENDERS</h2>
+<p>Andirons.  <i class="eg">Rum
+Glimfenders</i>, silver Andirons.</p>
+</div>
+<div class="entry">
+<h2>GLIMFLASHY</h2>
+<p>angry, or in a Passion.
+<i class="eg">The Cull is glimflashy</i>, the Fellow is in
+a Heat.</p>
+</div>
+<div class="entry">
+<h2>GLIMJACK</h2>
+<p>a Link-boy.</p>
+</div>
+<div class="entry">
+<h2>GLIMMER</h2>
+<p>Fire.</p>
+</div>
+<div class="entry">
+<h2>GLIMMERER</h2>
+<p>such as with sham
+Licences, pretend to Losses by Fire
+&amp;c.</p>
+</div>
+<div class="entry">
+<h2>GLIMSTICK</h2>
+<p>a Candle-stick.  <i class="eg">Rum
+Glimsticks</i>, Silver Candlesticks.  <i class="eg">Queer
+Glimsticks</i>, Brass, Pewter or Iron Candlesticks.</p>
+</div>
+<div class="entry">
+<h2>GOADS</h2>
+<p>those that wheedle in Chapmen
+for Horse-coursers.</p>
+</div>
+<div class="entry">
+<h2>GOAT</h2>
+<p>a Letcher, or very lascivious
+Person.</p>
+</div>
+<div class="entry">
+<h2>GOATISH</h2>
+<p>letcherous, wanton, lustfull.</p>
+</div>
+<div class="entry">
+<h2>GOB</h2>
+<p>the Mouth; also a Bit or
+Morsel; hence <i>Gobbets</i>, now in use for
+Bits; <i class="eg">Gift of the Gob</i>, a wide, open
+Mouth; also a good Songster, or Singing
+Master.</p>
+</div>
+<div class="entry">
+<h2>GOBBLER</h2>
+<p>a Turkey-Cock.</p>
+</div>
+<div class="entry">
+<h2>GOING <i>upon the Dub</i></h2>
+<p>Breaking a
+House with Picklocks.</p>
+</div>
+<div class="entry">
+<h2>GOLD-<i>Droppers</i></h2>
+<p>Sweetners, Cheats,
+Sharpers.</p>
+</div>
+<div class="entry">
+<h2>GOLD-<i>Finch</i></h2>
+<p>he that has often a
+Purse of Gold in his Fob.</p>
+</div>
+<div class="entry">
+<h2>GOLD-<i>Finders</i></h2>
+<p>Emptiers of Jakes or
+Houses of Office.</p>
+</div>
+<div class="entry">
+<h2>GOOD <i>Fellow</i></h2>
+<p>a Pot Companion or
+Friend of the Bottle.</p>
+</div>
+<div class="entry">
+<h2>GOOSE</h2>
+<h2>or <i>Goose cap</i></h2>
+<p>a Fool.  <i class="eg">A
+Taylors Goose roasted</i>, a Red-hot
+smoothing Iron, to close the seams.
+<i class="eg">Hot and heavy like a Taylors Goose</i>. applied
+to a passionate Coxcomb.</p>
+</div>
+<div class="entry">
+<h2>GOREE</h2>
+<p>Money but chiefly Gold.</p>
+</div>
+<div class="entry">
+<h2>GRAFTED</h2>
+<p>made a Cuckold of.</p>
+</div>
+<div class="entry">
+<h2>GRANNAM</h2>
+<p>Corn.</p>
+</div>
+<div class="entry">
+<h2>GREEN <i>Bag</i></h2>
+<p>a Lawyer.</p>
+</div>
+<div class="entry">
+<h2>GREEN-<i>Gown</i></h2>
+<p>a throwing of young
+Lasses on the Grass, and kissing them.</p>
+</div>
+<div class="entry">
+<h2>GREEN <i>Head</i></h2>
+<p>a very raw Novice,
+
+or unexperienced Fellow.</p>
+</div>
+<div class="entry">
+<h2>GRIG</h2>
+<p>a Farthing; <i class="eg">A merry Grig</i>, a
+merry Fellow.</p>
+</div>
+<div class="entry">
+<h2>GRINDERS</h2>
+<p>Teeth.</p>
+</div>
+<div class="entry">
+<h2>GROPERS</h2>
+<p>blind Men.</p>
+</div>
+<div class="entry">
+<h2>GROUND-<i>Sweat</i></h2>
+<p>a Grave.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> GRUB</h2>
+<p>to eat, to dine, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>GRUB</h2>
+<p>Victuals.</p>
+</div>
+<div class="entry">
+<h2>GRUB <i>street-News</i></h2>
+<p>false, forg'd News.</p>
+</div>
+<div class="entry">
+<h2>GRUMBLING <i>of the Gizzard</i></h2>
+<p>murmuring, muttering, repining.</p>
+</div>
+<div class="entry">
+<h2>GRUNTER</h2>
+<p>a sucking Pig.</p>
+</div>
+<div class="entry">
+<h2>GRUNTING-<i>Cheat</i></h2>
+<p>a Pig.</p>
+</div>
+<div class="entry">
+<h2>GRUNTING-<i>Peck</i></h2>
+<p>Pork.</p>
+</div>
+<div class="entry">
+<h2>GULL</h2>
+<p>a Cheat.</p>
+</div>
+<div class="entry">
+<h2>GULLED</h2>
+<p>cheated, rooked, sharped.</p>
+</div>
+<div class="entry">
+<h2>GULL-<i>Gropers</i></h2>
+<p>a By-stander that
+lends Money to the Gamesters.</p>
+</div>
+<div class="entry">
+<h2>GUN</h2>
+<p>as <i class="eg">He's in the Gun</i>; he's in Liquor.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> GUN</h2>
+<p>a Lie.</p>
+</div>
+<div class="entry">
+<h2>GUNDIGUTS</h2>
+<p>a fat, pursy Fellow.</p>
+</div>
+<div class="entry">
+<h2>GUN-<i>Powder</i></h2>
+<p>an old Woman.</p>
+</div>
+<div class="entry">
+<h2>GUT-<i>foundered</i></h2>
+<p>exceeding hungry.</p>
+</div>
+<div class="entry">
+<h2>GUTLING</h2>
+<p>eating much.</p>
+</div>
+<div class="entry">
+<h2>GUTS</h2>
+<p>a very fat, gross Person.</p>
+</div>
+<div class="entry">
+<h2>GUTTER-<i>Lane</i></h2>
+<p>the Throat.</p>
+</div>
+<div class="entry">
+<h2>GUTTING <i>an House</i></h2>
+<p>rifling it, clearing it.</p>
+</div>
+<div class="entry">
+<h2>GUTTING <i>an Oyster</i></h2>
+<p>eating it.</p>
+</div>
+<div class="entry">
+<h2>GUZZLE</h2>
+<p>Drink.</p>
+</div>
+<div class="entry">
+<h2>GUZZLING</h2>
+<p>drinking much.</p>
+</div>
+<div class="entry">
+<h2>GYBE</h2>
+<h2><i>or</i> JYBE</h2>
+<p>any Writing or Pass
+sealed.</p>
+</div>
+<div class="entry">
+<h2>GYBING</h2>
+<p>jeering or jerking</p>
+</div>
+<div class="entry">
+<h2>GYPSIES</h2>
+<p>They endeavour to persuade
+the Ignorant, that they derive
+their Origin from the <i>Egyptians</i>, a People
+heretofore very famous for <i>Astronomy</i>,
+<i>Natural Magick</i>, the art of <i>Divination</i>,
+&amp;c. and therefore are great Pretenders
+to <i>Fortune-telling</i>.  To colour
+their Impostures, they artificially discolour
+their Faces, and rove up and
+down the Country in a Tatterdemalion
+Habit, deluding the ignorant Vulgar,
+and often stealing from them what is
+not too hot for their Fingers, or too
+heavy to carry off.</p>
+<p>It is the Custom of these Wretches
+to swear all that are admitted into their
+Fraternity, by a Form and Articles
+annexed into it, administred by the Principal
+<i>Maunder</i> or <i>Roguish Strowler</i>, and
+which they generally observe inviolably.
+The Manner of admitting a
+new Member, together with the said
+Oath and Articles, are as follows.</p>
+<p>The Name of the Person is first
+demanded, and a Nick-name is then given
+him in its stead, by which he is ever
+after called, and in Time, his other
+
+Name is quite forgotten.  Then standing
+up in the middle of the Fraternity,
+and directing his Face to the <i>Dimber-Damber</i>,
+or Prince of the Gang, he
+swears in this Manner, as is dictated to
+him by one of the most experienced,</p>
+<blockquote>
+<p>I <i>Crank-Cuffin</i> do swear to be a
+<i>True Brother</i>, and will in all Things,
+obey the Commands of the great
+<i>Tawny Prince</i>, and keep his <i>Councel</i>,
+and not divulge the Secrets of my
+Brethren.</p>
+<p>I will never leave nor forsake this
+Company, but observe and keep all
+the Times of Appointments, either
+by Day or by Night, in any Place
+whatsoever.</p>
+<p>I will not teach any one to cant;
+nor will I disclose ought of our
+Mysteries to them, although they
+flog me to death.</p>
+<p>I will take my Prince's Part against
+all that shall oppose him, or any of
+us, according to the utmost of my
+Ability; nor will I suffer him, or
+any belonging to us, to be abused by
+any strange, <i>Abrams</i>, <i>Rufflers</i>, <i>Hookers</i>,
+<i>Palliards</i>, <i>Swadlers</i>, <i>Irish-Toyls</i>,
+<i>Swig-men</i>, <i>Whip-Jacks</i>, <i>Jark-men</i>,
+<i>Bawdy-Baskets</i>, <i>Dommerars</i>, <i>Clapperdogeons</i>,
+<i>Patricoes</i> <i>or</i> <i>Curtals</i>, but will
+defend him or them as much as I can
+against all other <i>Outlyers</i> whatever.</p>
+<p>I will not conceal ought I win out
+of <i>Libkins</i>, or from the <i>Ruffmans</i>; but
+will preserve it for the Use of the
+Company.</p>
+<p>Lastly, I will cleave to my <i>Doxy
+Wap</i> stiffly, and will bring her Duds,
+Margery, Praters, Goblet, Grunting-cheats,
+or Tibs of the Buttery, or
+anything else I can come at, as <i>Winnings</i>
+for her <i>Wappings</i>.</p>
+<p>The <i>Canters</i> have, it seems a Tradition,
+that from the Three first articles
+of this Oath, the first Founders
+of a certain boastful, worshipful Fraternity,
+who pretend to derive there
+Origin from the earliest Times, borrowed
+of them, both the Hint and form
+of their Establishment.  And that their
+pretended Derivation from the first
+<i>Adam</i>, is a Forgery, it being only from
+the first <i>Adam Tiler</i>. See ADAM TILER.</p>
+<p>At the Admission of a new Brother,
+a general Stock is raised for <i>Booze</i>, or
+Drink, to make themselves merry on
+the Occasion.   As for <i>Peckage</i>, or Eatables,
+they can procure it without
+Money; for while some are sent to
+break the <i>Ruffmans</i>, or Woods and
+Bushes, for Firing, others are detached
+
+to filch Geese, Chickens, Hens, Ducks
+or Mallards, and Pigs.  Their <i>Morts</i>
+are their Butchers, who presently make
+bloody Work with what living Things
+are brought them, and having made
+Holes in the Ground, under some remote
+Hedge in an obscure Place, they
+make a fire, and broil or boil their
+Food, and when 'tis enough, fall to
+work, Tooth and Nail, and having
+eaten more like Beasts than Men, they
+drink more like Swine than human
+Creatures, entertaining one another
+all the Time with Songs in the <i>Canting</i>
+Dialect.</p>
+<p>As they live, so they lie together promiscuously,
+and know not how to claim
+a Property either in their Goods or
+Children, and this general Interest ties
+them more firmly together, than if
+all their Rags were twisted into Ropes
+to bind them indissolubly from a Separation;
+which detestable Union is farther
+consolidated by the above Oath.</p>
+<p>They strowl up and down all Summertime
+in Droves, and dextrously pick
+Pockets, while they are telling of Fortunes;
+and the Money, Rings, Silver-Thimbles,
+&amp;c. which they get, are
+instantly conveyed from one Hand, to
+another, till the remotest Person of the
+Gang, who is not suspected, because
+they come not near the Person robbed,
+gets Possession of it, so that in the strictest
+Search, it is almost impossible to
+recover it, while the Wretches with
+Imprecations, Oaths and Protestations,
+disclaim the Thievery.  That by
+which they are said to get the most
+Money, is, when young Gentlewomen
+of good Families and Reputations have
+happenned to be with Child before
+Marriage, a round Sum is often bestowed
+among the <i>Gypsies</i>, for some one
+<i>Mort</i> to take the Child; and as that
+is never heard of more by the true
+Mother and Family, so the Disgrace
+is kept concealed from the World, and
+if the Child lives, it never known its
+Parents.</p>
+</blockquote>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterh.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterh.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterh.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,467 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>H</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter H</h1>
+<div class="entry">
+<h2>HABERDASHER <i>of Nouns and Pronouns</i></h2>
+<p>a Schoolmaster or Usher.</p>
+</div>
+<div class="entry">
+<h2>HACK, <i>and Hue</i></h2>
+<p>to cut in pieces.</p>
+</div>
+<div class="entry">
+<h2>HACKS</h2>
+<h2>or <i>Hackneys</i></h2>
+<p>Hirelings.</p>
+</div>
+<div class="entry">
+<h2>HACKUM</h2>
+<p>a fighting Fellow.</p>
+</div>
+<div class="entry">
+<h2>HADDUMS</h2>
+<p><i class="eg">The Shark has been at
+Haddams</i>; He is clapt or poxed.</p>
+</div>
+<div class="entry">
+<h2>HALFBORD</h2>
+<p>Six-Pence.</p>
+</div>
+<div class="entry">
+<h2>HALF <i>a Hog</i></h2>
+<p>Six-Pence.</p>
+</div>
+<div class="entry">
+<h2>HALF <i>an Ounce</i></h2>
+<p>Half a Crown.</p>
+</div>
+<div class="entry">
+<h2>HALF <i>Seas over</i></h2>
+<p>almost drunk.</p>
+</div>
+<div class="entry">
+<h2>HAMS</h2>
+<p>Breeches.</p>
+</div>
+<div class="entry">
+<h2>HAMLET</h2>
+<p>a High Constable.</p>
+</div>
+<div class="entry">
+<h2>HANDY-<i>Blows</i></h2>
+<p>Fisty-cuffs.</p>
+</div>
+<div class="entry">
+<h2>HANG <i>it up</i></h2>
+<p>speaking of the Reckoning
+at a <i>Bowsing-Ken</i> score it up.</p>
+</div>
+<div class="entry">
+<h2>HANK</h2>
+<p><i class="eg">He has a Hank upon him</i>; He
+has an Advantage, or will make him do
+what he pleases.</p>
+</div>
+<div class="entry">
+<h2>HANKTELO</h2>
+<p>a silly Fellow, a meer
+Codshead.</p>
+</div>
+<div class="entry">
+<h2>HANS-<i>en-Kelder</i></h2>
+<p>Jack in the Box,
+Child in the Womb.</p>
+</div>
+<div class="entry">
+<h2>HARE</h2>
+<p>as <i class="eg">he has swallowd a Hare</i>,
+he is very drunk.</p>
+</div>
+<div class="entry">
+<h2>HARKING</h2>
+<p>whispering on one side
+to borrow Money.</p>
+</div>
+<div class="entry">
+<h2>HARMAN</h2>
+<p>a Constable.</p>
+</div>
+<div class="entry">
+<h2>HARMANS</h2>
+<p>the Stocks.</p>
+</div>
+<div class="entry">
+<h2>HARMANBECK</h2>
+<p>a Beadle.</p>
+</div>
+<div class="entry">
+<h2>HARRIDAN</h2>
+<p>one that is half a
+Whore, half a Bawd, also a notorious
+Shrew, or noisy old Woman.</p>
+</div>
+<div class="entry">
+<h2>HARTFORDSHIRE <i>Kindness</i></h2>
+<p>drinking
+to the same Man again.</p>
+</div>
+<div class="entry">
+<h2>HATCHET <i>Faced</i></h2>
+<p>hard favoured,
+homely.</p>
+</div>
+<div class="entry">
+<h2>HATCHES</h2>
+<p>as, <i class="eg">Under the Hatches</i>, in
+Trouble or Prison.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> HAZLE <i>Geld</i></h2>
+<p>to beat any one
+with a Hazle Stick or Plant.</p>
+</div>
+<div class="entry">
+<h2>HEAD <i>Cully of the Pass</i></h2>
+<h2>or <i>Passage Bank</i></h2>
+<p>the Top Tilter of that Gang,
+throughout the whole Army, who demands
+and receives Contribution from
+all the Pass-Banks in the Camp.</p>
+</div>
+<div class="entry">
+<h2>HEARING-<i>Cheats</i></h2>
+<p>Ears.</p>
+</div>
+<div class="entry">
+<h2>HEARTS-<i>Ease</i></h2>
+<p>a Twenty Shilling
+Piece.</p>
+</div>
+<div class="entry">
+<h2>HEATHEN <i>Philosopher</i></h2>
+<p>a sorry poor
+tattered Fellow, whose Breech may
+be seen through his Pocket-holes.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> HEAVE</h2>
+<p>to rob.</p>
+</div>
+<div class="entry">
+<h2>HEAVE <i>a Cough</i></h2>
+<p>to rob a House.</p>
+</div>
+<div class="entry">
+<h2>HEAVER</h2>
+<p>the Breast.</p>
+</div>
+<div class="entry">
+<h2>HECTOR</h2>
+<p>a vapouring, swaggering
+Coward.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> HEDGE</h2>
+<p>to secure a desperate Bet,
+Wager or Debt.  <i class="eg">By Hedge or by stile</i>,
+by Hook or by Crook.</p>
+</div>
+<div class="entry">
+<h2>HEDGE-<i>Bird</i></h2>
+<p>a scoundrel or sorry
+Fellow.</p>
+</div>
+<div class="entry">
+<h2>HEDGE-<i>Creeper</i></h2>
+<p>a Robber of Hedges.</p>
+</div>
+<div class="entry">
+<h2>HEDGE-<i>Priest</i></h2>
+<p>a sorry hackney Underling,
+an Vagabond.  See <i>Patrico</i>.</p>
+</div>
+<div class="entry">
+<h2>HEDGE-<i>Tavern</i></h2>
+<h2>or <i>Alehouse</i></h2>
+<p>a jilting,
+sharping Tavern, or blind Ale-house.</p>
+</div>
+<div class="entry">
+<h2>HELL</h2>
+<p>the Place where the Taylors
+lay up their Cabbage, or Remnants.</p>
+</div>
+<div class="entry">
+<h2>HELL-<i>born-babe</i></h2>
+<p>a lewd, graceless,
+
+notorious Youth.</p>
+</div>
+<div class="entry">
+<h2>HELL-<i>Cat</i></h2>
+<p>a very lewd Woman.</p>
+</div>
+<div class="entry">
+<h2>HELL-<i>Driver</i></h2>
+<p>a Coachman.</p>
+</div>
+<div class="entry">
+<h2>HELL-<i>Hound</i></h2>
+<p>a profligate, lewd
+Fellow.</p>
+</div>
+<div class="entry">
+<h2>HEMPEN-<i>Widow</i></h2>
+<p>one whose Husband
+was hanged.</p>
+</div>
+<div class="entry">
+<h2>HEN-<i>peckt-Frigot</i></h2>
+<p>whose Commander
+and Officers are absolutely swayed
+by their Wives.</p>
+</div>
+<div class="entry">
+<h2>HENPECT-<i>Husband</i></h2>
+<p>whose Wife
+wears the Breeches.</p>
+</div>
+<div class="entry">
+<h2>HICK</h2>
+<p>any Person from whom a
+Booty is taken, a silly Country Fellow;
+a Booby.</p>
+</div>
+<div class="entry">
+<h2>HIGH-<i>Flyers</i></h2>
+<p>impudent, forward,
+loose, light Women, also bold Adventurers.</p>
+</div>
+<div class="entry">
+<h2>HIGHJINKS</h2>
+<p>a Play at Dice who
+Drinks.</p>
+</div>
+<div class="entry">
+<h2>HIGH-PADS</h2>
+<h2><i>Hightway-men</i> or <i>Bully-Ruffians</i></h2>
+<p>an Order of Villains, and the
+boldest of all others.  Before they commence,
+they furnish themselves, with
+good Horses, Swords, Pistols, &amp;c. and
+sometimes singly, but mostly in Company,
+commit their execrable Robberies.
+They have a Vizor-Mask, and two or
+three Perukes of different Colours and
+Make, the better to conceal themselves.
+When they meet a Prize upon the
+Road, they have a Watch-Word,
+among them, which is no sooner pronounced,
+but every one falls on.  It is
+usually the Rule among them, that the
+strongest and bold seize first; the
+Weaker generally bid <i>stand</i>, and fall
+in afterwards as Occasion requires.  The
+Instructions given them are, to catch
+the Bridle in the Left-Hand, and to
+have the Sword or Pistol in the Right,
+and, if Opposition be made, or they
+are likely to be overpowered to kill
+as fast as they can, and then, either
+with Booty or without, to make off
+with all Expedition; and if they are
+pursued by an <i>Hue or Cry</i>, to conceal
+themselves in some By place, and let
+it pass by them.</p>
+</div>
+<div class="entry">
+<h2>HIGH-<i>Shoon</i></h2>
+<h2>or <i>Clouted-Shoon</i></h2>
+<p>a
+Country Clown.</p>
+</div>
+<div class="entry">
+<h2>A HIGHTE-TITY</h2>
+<p>a Romp or rude Girl.</p>
+</div>
+<div class="entry">
+<h2>HIGH <i>Tide</i></h2>
+<p>when the Pocket is full of Money.</p>
+</div>
+<div class="entry">
+<h2>HOB</h2>
+<p>a plain Country Fellow or Clown.</p>
+</div>
+<div class="entry">
+<h2>HOBINAL</h2>
+<p>the same [[as <i>Hob</i>]].</p>
+</div>
+<div class="entry">
+<h2>HOBBY</h2>
+<p>as Sir <i class="eg">Posthumus Hobby</i>, one
+that draws on his Breeches with a
+Shoeing-horn; a Fellow that is nice
+and whimsical in the Set of his Cloaths.</p>
+</div>
+<div class="entry">
+<h2>HOB <i>Nail</i></h2>
+<p>a <i>High-shoon</i> or Country
+Clown.</p>
+</div>
+<div class="entry">
+<h2>HOCUS</h2>
+<p>disguised in Liquor; drunk.</p>
+</div>
+<div class="entry">
+<h2>HODGE-<i>Podge</i></h2>
+<p>see <i>Hotch-Potch</i>.</p>
+</div>
+<div class="entry">
+<h2>HOG</h2>
+<p>a Shilling; <i class="eg">You Darkman
+Budge, will you Fence your Hog at the
+next Boozing Ken?</i> you House-Creeper,
+will you spend your Shilling at the
+next Ale-house.</p>
+</div>
+<div class="entry">
+<h2>HOG-<i>Grubber</i></h2>
+<p>a close-fisted, narrow
+soul'd sneaking Fellow.</p>
+</div>
+<div class="entry">
+<h2>HOLD <i>his Nose to the Grind-stone</i></h2>
+<p>to
+keep him under, or tie him Neck and
+Heels into the Bargain.</p>
+</div>
+<div class="entry">
+<h2>HOLIDAY-<i>Bowler</i></h2>
+<p>a very bad Bowler.
+<i class="eg">Blind Man's Holiday</i>, when it is Night.</p>
+</div>
+<div class="entry">
+<h2>HONEY-<i>Moon</i></h2>
+<p>the first Month of Marriage.</p>
+</div>
+<div class="entry">
+<h2>HOOD-<i>wink'd</i></h2>
+<p>Blind-folded or Bluffed.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> HOOF <i>it</i></h2>
+<h2>or <i>beat it on the Hoof</i></h2>
+<p>to walk on Foot.</p>
+</div>
+<div class="entry">
+<h2>HOOKERS</h2>
+<p>See <i>Anglers</i>.</p>
+</div>
+<div class="entry">
+<h2>HOOKT</h2>
+<p>over reached, snapt,
+trikt.</p>
+</div>
+<div class="entry">
+<h2>HOP-<i>Merchant</i></h2>
+<p>a Dancing-master.</p>
+</div>
+<div class="entry">
+<h2>HORN <i>mad</i></h2>
+<p>stark staring mad because
+Cuckolded.</p>
+</div>
+<div class="entry">
+<h2><i>It revives the</i> COCKLES <i>of my Heart</i></h2>
+<p>said of agreeable News, or a Cup of
+Comfort, Wine or Cordial Water.</p>
+</div>
+<div class="entry">
+<h2><i>In</i> HUCKSTER'S <i>Hands</i></h2>
+<p>at a desperate
+Pass, or Condition, or in a fair
+way to be lost.</p>
+</div>
+<div class="entry">
+<h2>HUED</h2>
+<p>severely lash'd or flogg'd.
+<i class="eg">The Cove was Hued in the Naskin</i>, The
+Rogue was severely lash'd in <i>Bridewell</i>.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> HUFF</h2>
+<p>a Bullying Fellow.</p>
+</div>
+<div class="entry">
+<h2>HULVER <i>head</i></h2>
+<p>a silly, foolish Fellow.</p>
+</div>
+<div class="entry">
+<h2>HUM-<i>Box</i></h2>
+<p>a Pulpit.</p>
+</div>
+<div class="entry">
+<h2>HUM-<i>Cap</i></h2>
+<p>old, mellow, and very
+strong Beer.</p>
+</div>
+<div class="entry">
+<h2>HUM-<i>Drums</i></h2>
+<h2>or <i>Hums</i></h2>
+<p>a Society of
+Gentlemen, who meet near the <i>Charter-House</i>,
+or at the <i>King's Head</i> in St.
+<i>John's Street</i>.  Less of Mystery, and
+more of Pleasantry than the <i>Free Masons</i>.</p>
+</div>
+<div class="entry">
+<h2>HUMMING <i>Liquor</i></h2>
+<p>Double Ale,
+Stout, Pharaoh.</p>
+</div>
+<div class="entry">
+<h2>HUMMER</h2>
+<p>a great Lye, a Rapper.</p>
+</div>
+<div class="entry">
+<h2>HUMMUMS</h2>
+<p>a Bagnio.</p>
+</div>
+<div class="entry">
+<h2>HUMPTEY-<i>Dumptey</i></h2>
+<p>Ale boil'd with
+Brandy.</p>
+</div>
+<div class="entry">
+<h2>HUMS</h2>
+<p>Persons at Church; as, <i class="eg">There
+is a great Number of Hums in the Autem</i>;
+i. e. There is a great Congregation.</p>
+</div>
+<div class="entry">
+<h2>HUNTING</h2>
+<p>decoying, or drawing
+others into Play.</p>
+</div>
+<div class="entry">
+<h2>HUSH'D</h2>
+<p>murder'd, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>HUSH <i>Money</i></h2>
+<p>Money given to <i>hush
+up</i>, or conceal a Robbery or Theft, or
+
+to take off an Evidence from appearing
+against a Criminal, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>HUSKY-<i>Lour</i></h2>
+<p>a Jobs, or Guinea.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterij.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterij.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterij.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,216 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>I, J</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter I, J</h1>
+<div class="entry">
+<h2>JACK</h2>
+<p>a Farthing; <i class="eg">He wou'd not
+tip me a Jack</i>, Not a Farthing
+wou'd he give me.</p>
+</div>
+<div class="entry">
+<h2>JACK-ADAMS Parish</h2>
+<p><i>Clerkenwell</i>.</p>
+</div>
+<div class="entry">
+<h2>JACK <i>in a Box</i></h2>
+<p>a Sharper, or Cheat.</p>
+</div>
+<div class="entry">
+<h2>JACKMEN</h2>
+<p>See <i>Jarkmen</i></p>
+</div>
+<div class="entry">
+<h2>JACK-<i>sprat</i></h2>
+<p>a Dwarf, or very little
+Fellow, a Hop on my-thumb.</p>
+</div>
+<div class="entry">
+<h2>JACK <i>at a Pinch</i></h2>
+<p>a poor Hackney
+Parson.</p>
+</div>
+<div class="entry">
+<h2>JACOBITES</h2>
+<p>Sham or Collar Shirts.</p>
+</div>
+<div class="entry">
+<h2>JAGUE</h2>
+<p>a Ditch.</p>
+</div>
+<div class="entry">
+<h2>JANIZARIES</h2>
+<p>the Mob, sometimes
+so called, and Bailiffs, Serjeants-Followers,
+yeomen, Setters, and any
+lewd Gang depending upon others.</p>
+</div>
+<div class="entry">
+<h2>JARKE</h2>
+<p>a Seal.</p>
+</div>
+<div class="entry">
+<h2>JARKE-MEN</h2>
+<p>Those who make
+Counterfeit Licences and Passes, and
+are well paid by the other Beggars for
+their Pains.</p>
+</div>
+<div class="entry">
+<h2>JASON'<i>s Fleece</i></h2>
+<p>a Citizen cheated of
+his Gold.</p>
+</div>
+<div class="entry">
+<h2>JAYL <i>Birds</i></h2>
+<p>Prisoners.</p>
+</div>
+<div class="entry">
+<h2>JEM</h2>
+<p>a Gold Ring; <i class="eg">Rum-Jem</i>, a
+Diamond one.</p>
+</div>
+<div class="entry">
+<h2>JENNY</h2>
+<p>an Instrument to lift up
+a Grate, and whip any thing out of a
+Shop-window.</p>
+</div>
+<div class="entry">
+<h2>JET</h2>
+<p>a Lawyer.</p>
+</div>
+<div class="entry">
+<h2><i>Autem</i> JET</h2>
+<p>a Parson.</p>
+</div>
+<div class="entry">
+<h2>JEW</h2>
+<p>any over-reaching Dealer, or
+hard sharp Fellow.  <i class="eg">He treated me like
+a Jew</i>; He used me very barbarously.</p>
+</div>
+<div class="entry">
+<h2>JEWS</h2>
+<p>Brokers behind St. <i>Clement'</i>s
+Church in <i>London</i>, so called by (their
+Brethren) the Taylors.</p>
+</div>
+<div class="entry">
+<h2>JIG</h2>
+<p>a Trick; <i class="eg">A pleasant Jig</i>, a witty
+arch Trick.</p>
+</div>
+<div class="entry">
+<h2>JILT</h2>
+<p>a tricking Woman.</p>
+</div>
+<div class="entry">
+<h2>JILTED</h2>
+<p>abused by such a one [[i.e. by a JILT]]; also
+deceived or defeated in one's Expectation,
+expecially in Amours.</p>
+</div>
+<div class="entry">
+<h2>JINGLE-<i>Boxes</i></h2>
+<p>Leathern Jacks tipt
+and hung with Silver Bells, formerly
+in use among Fuddle-caps.</p>
+</div>
+<div class="entry">
+<h2>JINGLERS</h2>
+<p>Horse-Coursers frequenting
+Country Fairs.</p>
+</div>
+<div class="entry">
+<h2>JINGLE <i>Brains</i></h2>
+<p>a Maggot-pated
+Fellow.</p>
+</div>
+<div class="entry">
+<h2>ILL <i>Fortune</i></h2>
+<p>a Nine-pence.</p>
+</div>
+<div class="entry">
+<h2>IMPOST-TAKER</h2>
+<p>one that stands by,
+and lends Money to the Gamester at a
+very high Interest or Premium.</p>
+</div>
+<div class="entry">
+<h2>INCHING-<i>In</i></h2>
+<p>Encroaching upon.</p>
+</div>
+<div class="entry">
+<h2>INLAYED</h2>
+<p><i class="eg">Well inlayed</i>, at Ease in
+his Fortune, or full of Money.</p>
+</div>
+<div class="entry">
+<h2>JOBE</h2>
+<p>a Guinea, Twenty Shillings,
+or a Piece.  <i class="eg">Half a Jobe</i>, Half a Guinea.</p>
+</div>
+<div class="entry">
+<h2>JOCK</h2>
+<h2>or <i>Jockum cloy</i></h2>
+<p>to copulate
+with a Woman.</p>
+</div>
+<div class="entry">
+<h2>JUCKUM-<i>Gage</i></h2>
+<p>a Chamberpot.  <i class="eg">Tip
+me the Jockum-Gage</i>, Give or hand me
+the Looking-Glass.  <i class="eg">Rum Jockum-Gage</i>,
+a Silver Chamber-Pot.</p>
+</div>
+<div class="entry">
+<h2>JORDAIN</h2>
+<p>a great Blow or Staff;
+also a Chamber-Pot.  <i class="eg">I'll tip him a Jordain,
+if I transnear</i>; I will give him a
+Blow with my Staff, if I get up to him.</p>
+</div>
+<div class="entry">
+<h2>JOSEPH</h2>
+<p>a Cloak or Coat.  <i class="eg">A Rum
+Joseph</i>, a good Cloak or Coat.  <i class="eg">A Queer
+Joseph</i>, a coarse ordinary Cloak or
+Coat; also an old or tatter'd One.</p>
+</div>
+<div class="entry">
+<h2>IRISH-<i>Toyles</i></h2>
+<p>Rogues &amp;c. carrying
+Pins, Points, Laces, and such like
+Wares about, and, under pretence of
+selling them, commit Thefts and Robberies.</p>
+</div>
+<div class="entry">
+<h2>IRON-<i>Doublet</i></h2>
+<p>a Prison.</p>
+</div>
+<div class="entry">
+<h2>ITCH-<i>Land</i></h2>
+<p><i>Scotland</i>.</p>
+</div>
+<div class="entry">
+<h2>JUKRUM</h2>
+<p>a Licence.</p>
+</div>
+<div class="entry">
+<h2>JUMBLE-<i>Gut-Lane</i></h2>
+<p>any very bad or
+rough Road.</p>
+</div>
+<div class="entry">
+<h2>JUSTICE</h2>
+<p><i class="eg">I'll do Justice, Child</i>; I
+will Peach, or rather Impeach, or
+discover the whole Gang, and so save
+my own Bacon.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterk.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterk.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterk.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,210 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>K</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter K</h1>
+<div class="entry">
+<h2>KATE</h2>
+<p>a Pick-lock. <i class="eg">'Tis a Rum kate</i>; She is a clever Pick-lock.</p>
+</div>
+<div class="entry">
+<h2>KEEL-<i>Bullies</i></h2>
+<p>Lightermen that carry
+coals to and from the Ships, so called
+in Derision.</p>
+</div>
+<div class="entry">
+<h2>KEEPING <i>Cully</i></h2>
+<p>one that maintains
+a Mistress, and parts with his Money
+very generously to her.</p>
+</div>
+<div class="entry">
+<h2>KEFFAL</h2>
+<p>a Horse.</p>
+</div>
+<div class="entry">
+<h2>KELTER</h2>
+<p>as, <i class="eg">Out of Kelter</i>, Out of
+sorts.</p>
+</div>
+<div class="entry">
+<h2>KEN</h2>
+<p>a House.  <i class="eg">A bob-Ken</i>, or <i class="eg">a
+Bowman-ken</i>, a good or well furnished
+House; also a House that harbours
+Rogues and Thieves.  <i class="eg">Biting the Ken</i>,
+robbing the House, <i class="eg">'tis a bob Ken, Brush
+upon the Sneak</i>, i.e., 'Tis a good House,
+go in and tread softly.  <i class="eg">We have bit the
+Ken</i>, The House is robb'd, or the Business
+is done.</p>
+</div>
+<div class="entry">
+<h2>KEN-<i>Miller</i></h2>
+<p>a House-breaker, who
+usually, by getting into an empty
+
+House, finds Means to enter into the
+Gutters of Houses inhabited, and so
+in at the Windows, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>KICK</h2>
+<p>Six-pence: <i class="eg">Two, Three, Four,
+&amp;c. and a Kick</i>; Two, Three, Four,
+&amp;c. Shillings and Six-pence.</p>
+</div>
+<div class="entry">
+<h2>KICK'D</h2>
+<p>gone, fled, departed; as,
+<i class="eg">The Rum Cull kick'd away</i>, i.e. The
+Rogue made his Escape.</p>
+</div>
+<div class="entry">
+<h2>KICKS</h2>
+<p>Breeches.  <i class="eg">Tip us your Kicks,
+we'll have them as well as your Lour</i>;
+Pull off your Breeches, for we must
+have them as well as your Money.</p>
+</div>
+<div class="entry">
+<h2>KID</h2>
+<p>a Child.</p>
+</div>
+<div class="entry">
+<h2>KIDLAYS</h2>
+<p>an Order of Rogues, who
+meeting a Youth with a Bundle or
+Parcel of Goods, wheedle him by fair
+Words, and whipping Six-pence into
+his Hand, to step on a short and sham
+Errand, in the mean Time run away
+with the Goods.</p>
+</div>
+<div class="entry">
+<h2>KIDNAPPER</h2>
+<p>one that decoys or
+spirits (as it is commonly called) Children
+away, and sells them for the
+Plantations.</p>
+</div>
+<div class="entry">
+<h2>KILKENNY</h2>
+<p>an old sorry Frize
+Coat.</p>
+</div>
+<div class="entry">
+<h2>KILL-<i>Devil</i></h2>
+<p>Rum.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> KIMBAW</h2>
+<p>to Trick, Sharp, or
+Cheat; also to Beat severely, or to
+Bully.  <i class="eg">Let's Kimbaw the Cull</i>, Let's
+beat that Fellow, and get his Money
+(by huffing and bullying) from him.</p>
+</div>
+<div class="entry">
+<h2>KIN</h2>
+<p>a Thief: <i class="eg">He's one of the Kin,
+let him pike</i>; said of a Brother Rogue
+whom one of the Gang knows to be a
+Villain, tho' not one of their own
+Crew.</p>
+</div>
+<div class="entry">
+<h2>KINCHIN</h2>
+<p>a little Child.</p>
+</div>
+<div class="entry">
+<h2>KINCHIN-<i>Coves</i></h2>
+<p>little Children whose
+Parents are dead, having been Beggars;
+as also young Lads running from their
+Masters, who are first taught Canting,
+then Thieving.</p>
+</div>
+<div class="entry">
+<h2>KINCHIN <i>Cove</i></h2>
+<p>a little Man.</p>
+</div>
+<div class="entry">
+<h2>KINCHIN-<i>Morts</i></h2>
+<p>Girls of a Year or
+two old, whom the <i>Morts</i> (their Mothers)
+carry at their Backs in <i>Slates</i>
+(<i>Sheets</i>) and if they have no Children
+of thir own, they borrow or steal
+them from others.</p>
+</div>
+<div class="entry">
+<h2>KING <i>of the Gypsies</i></h2>
+<p>the Captain,
+Chief, or Ringleader of the Gang, the
+Master of Misrule, otherwise called
+<i>Uprightman</i>.  Vide <i>Gypsies</i>.</p>
+</div>
+<div class="entry">
+<h2>KING<i>'s Head Inn</i></h2>
+<h2>or <i>the Chequer Inn in Newgate-street</i></h2>
+<p>the Prison of <i>Newgate</i>.</p>
+</div>
+<div class="entry">
+<h2>KING<i>'s Pictures</i></h2>
+<p>Money.</p>
+</div>
+<div class="entry">
+<h2>KIT</h2>
+<p>a Dancing Master.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> KNACK <i>Shop</i></h2>
+<p>a Toy-shop,
+freighted with pretty Devices to pick
+Pockets.</p>
+</div>
+<div class="entry">
+<h2>KNAVE <i>in Grain</i></h2>
+<p>one of the First
+Rate.</p>
+</div>
+<div class="entry">
+<h2>KNIGHT <i>of the Blade</i></h2>
+<p>a Hector or
+Bully.</p>
+</div>
+<div class="entry">
+<h2>KNIGHT <i>of the Post</i></h2>
+<p>a mercenary
+common Swearer, a Prostitute to every
+Cause, an Irish Evidence.</p>
+</div>
+<div class="entry">
+<h2>KNIGHT <i>of the Road</i></h2>
+<p>the chief
+Highwayman, best mounted and armed,
+the stoutest Fellow among them.</p>
+</div>
+<div class="entry">
+<h2>KNOB</h2>
+<p>the Head or Skull.</p>
+</div>
+<div class="entry">
+<h2>KNOCK <i>Down</i></h2>
+<p>very strong Ale or
+Beer.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> KNOCK <i>off</i></h2>
+<p>to give over Thieving.</p>
+</div>
+<div class="entry">
+<h2>KNOT</h2>
+<p>a Crew of Gang of Villains.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterl.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterl.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterl.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,327 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>L</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter L</h1>
+<div class="entry">
+<h2>LAC'D <i>Mutton</i></h2>
+<p>a Woman</p>
+</div>
+<div class="entry">
+<h2>LACING</h2>
+<p>beating, drubbing;
+<i class="eg">I'll Lace your Coat, Sirrah!</i> I will beat
+you soundly!</p>
+</div>
+<div class="entry">
+<h2>LADY</h2>
+<p>a very crooked, deformed
+and ill-shapen Woman.</p>
+</div>
+<div class="entry">
+<h2>LADY-birds</h2>
+<p>light, or lewd Women.</p>
+</div>
+<div class="entry">
+<h2>LAG</h2>
+<p>Water; also last.</p>
+</div>
+<div class="entry">
+<h2>LAG <i>a-dudds</i></h2>
+<p>a Buck of Cloths; as,
+<i class="eg">We'll cloy the Lag of Dudds</i>: Come, let
+us steal that Buck of Cloths.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> LAMBASTE</h2>
+<p>to beat soundly.</p>
+</div>
+<div class="entry">
+<h2>LAMB-<i>Pye</i></h2>
+<p>beating or drubbing.</p>
+</div>
+<div class="entry">
+<h2>LAMB-<i>Skin Men</i></h2>
+<p>the Judges of the
+several Courts.</p>
+</div>
+<div class="entry">
+<h2>LAND-<i>Lopers</i></h2>
+<h2>or <i>Land-lubbers</i></h2>
+<p>Vagabonds that beg and steal about the
+Country.</p>
+</div>
+<div class="entry">
+<h2>LAND <i>Pyrates</i></h2>
+<p>Highwaymen or any
+other Robbers.</p>
+</div>
+<div class="entry">
+<h2>LAND</h2>
+<p>as, <i class="eg">How lies the Land?</i> How
+stands the Reckoning?  <i class="eg">Who has any
+Land in Appleby?</i> a Question ask'd the
+Man, at whose Door the Glass stands
+long.</p>
+</div>
+<div class="entry">
+<h2>LANSPRESADO</h2>
+<p>He that comes into
+Company with but Two-pence in
+his Pocket.</p>
+</div>
+<div class="entry">
+<h2>LANTERN-<i>jaw'd</i></h2>
+<p>a very lean, thin-faced Fellow.</p>
+</div>
+<div class="entry">
+<h2><i>A Dark</i> LANTHORN</h2>
+<p>the Servant
+or Agent that receives the Bribe (at
+Court).</p>
+</div>
+<div class="entry">
+<h2>LAP</h2>
+<p>Pottage, Butter-milk, or Whey.</p>
+</div>
+<div class="entry">
+<h2>LARE-<i>Over</i></h2>
+<p>said when the true
+Name of the Things must (in Decency)
+be concealed.</p>
+</div>
+<div class="entry">
+<h2>LATCH</h2>
+<p>let in.</p>
+</div>
+<div class="entry">
+<h2>LAY</h2>
+<p>an Enterprize, or Attempt;
+<i class="eg">To be sick of the Lay</i>, to be tir'd in
+
+waiting for an Opportunity to effect
+their Purposes.  Also an Hazard or
+Chance; as, <i class="eg">He stands a quuer Lay</i>; he
+stands an odd Chance, or is in great
+Danger.</p>
+</div>
+<div class="entry">
+<h2>LAY'D <i>Up in Lavender</i></h2>
+<p>pawn'd or
+dipt for present Money.</p>
+</div>
+<div class="entry">
+<h2>LEATHER-<i>Head</i></h2>
+<p>a Thick-skill'd,
+heavy-headed Fellow.</p>
+</div>
+<div class="entry">
+<h2>LEATHERN <i>Convenience</i></h2>
+<p>(by the Quakers) a Coach.</p>
+</div>
+<div class="entry">
+<h2>LET<i>'s take an Ark and Winns</i></h2>
+<p>Let's
+hire a Skuller.</p>
+</div>
+<div class="entry">
+<h2>LET<i>'s buy a Brush</i></h2>
+<h2>or <i>Let's lope</i></h2>
+<p>Let us scour off, and make what Shift we
+can to secure our selves from being
+apprehended.</p>
+</div>
+<div class="entry">
+<h2>LEVITE</h2>
+<p>a Priest or Parson.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> LIB</h2>
+<p>to tumble or lie together.</p>
+</div>
+<div class="entry">
+<h2>LIBBEN</h2>
+<p>a private Dwelling-House.</p>
+</div>
+<div class="entry">
+<h2>LIBBEGE</h2>
+<p>a Bed.</p>
+</div>
+<div class="entry">
+<h2>LIBKIN</h2>
+<p>a House to lie in; also a
+Lodging.</p>
+</div>
+<div class="entry">
+<h2>LICKT</h2>
+<p>as Women's Faces with a
+Wash.</p>
+</div>
+<div class="entry">
+<h2>LIFTER</h2>
+<p>a Crutch.</p>
+</div>
+<div class="entry">
+<h2>LIG</h2>
+<p>See <i>Lib</i>.</p>
+</div>
+<div class="entry">
+<h2>LIGHT <i>Finger'd</i></h2>
+<p>Thievish.</p>
+</div>
+<div class="entry">
+<h2>LIGHT-<i>Mans</i></h2>
+<p>the Day or Day-break.</p>
+</div>
+<div class="entry">
+<h2>LIGHT-<i>Frigate</i></h2>
+<p>a Whore; also a
+Cruiser.</p>
+</div>
+<div class="entry">
+<h2>LILLY <i>White</i></h2>
+<p>a Chimney-Sweeper.</p>
+</div>
+<div class="entry">
+<h2>LINE <i>of the old Author</i></h2>
+<p>a Dram of
+Brandy.</p>
+</div>
+<div class="entry">
+<h2>LINNEN <i>Armorers</i></h2>
+<p>Taylors.</p>
+</div>
+<div class="entry">
+<h2>LITTLE <i>Barbary</i></h2>
+<p>Wapping.</p>
+</div>
+<div class="entry">
+<h2>LOAP'D</h2>
+<p>run away; <i class="eg">He loap'd up the
+Dancers</i>; He whipt up the Stairs.</p>
+</div>
+<div class="entry">
+<h2>LOB-<i>Cock</i></h2>
+<p>a heavy, dull Fellow.</p>
+</div>
+<div class="entry">
+<h2><i>In</i> LOB<i>'s Pound</i></h2>
+<p>laid by the Heels,
+or clap'd up in Jail.</p>
+</div>
+<div class="entry">
+<h2>LOBSTER</h2>
+<p>a red Coat Soldier.</p>
+</div>
+<div class="entry">
+<h2>LOCK</h2>
+<p>as, <i class="eg">He stood a queer Lock</i>;
+i.e. He stood an indifferent Chance,
+&amp;c.</p>
+</div>
+<div class="entry">
+<h2>LOCK <i>all fast</i></h2>
+<p>one that buys and
+conceals stollen Goods.</p>
+</div>
+<div class="entry">
+<h2><i>The</i> LOCK</h2>
+<p>the Warehouse whither
+the Thieves carry stollen Goods.  Also
+an Hospital for pocky Folks in <i>Southwark</i> &amp;c.</p>
+</div>
+<div class="entry">
+<h2>LOCKRAM <i>Jaw'd</i></h2>
+<p>thin, lean,
+sharp-visag'd</p>
+</div>
+<div class="entry">
+<h2>LODGE</h2>
+<p>a Watch.  <i class="eg">As Files a Cly
+of a Lodge, or Scout</i>, Pickt a Pocket of
+a Watch.  <i class="eg">Biting a Loge, or Scout</i>,
+the same.</p>
+</div>
+<div class="entry">
+<h2>LOLPOOP</h2>
+<p>a lazy, idle Droe.</p>
+</div>
+<div class="entry">
+<h2>LONG-<i>Meg</i></h2>
+<p>a very tall Woman.</p>
+</div>
+<div class="entry">
+<h2>LONG-<i>Shanks</i></h2>
+<p>long-legged.</p>
+</div>
+<div class="entry">
+<h2>LOOKING-<i>Glass</i></h2>
+<p>a Chamber-pot.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> LOON</h2>
+<p>a Lout.  <i class="eg">A false Loon</i>, a
+
+true <i>Scotch</i> Man; or Knave of any Nation.
+</p>
+</div>
+<div class="entry">
+<h2>LOON-<i>Slate</i></h2>
+<p>a Thirteen-pence
+Half-penny.</p>
+</div>
+<div class="entry">
+<h2>LORD</h2>
+<p>a very crooked deformed, or
+ill-shapen Person.</p>
+</div>
+<div class="entry">
+<h2>LOUR</h2>
+<p>Money.</p>
+</div>
+<div class="entry">
+<h2>LOUSE <i>Land</i></h2>
+<p>Scotland.</p>
+</div>
+<div class="entry">
+<h2>LOUSE <i>Trap</i></h2>
+<p>a Comb.</p>
+</div>
+<div class="entry">
+<h2>LOW <i>Pad</i></h2>
+<p>a <i>Foot-Pad</i>.</p>
+</div>
+<div class="entry">
+<h2>LOW <i>Tide</i></h2>
+<p>when there's no Money
+in a Man's Pocket.</p>
+</div>
+<div class="entry">
+<h2>LUD'<i>s Bulwark</i></h2>
+<p>Ludgate Prison.</p>
+</div>
+<div class="entry">
+<h2>LUGGS</h2>
+<p>Ears.</p>
+</div>
+<div class="entry">
+<h2>LULLABY-<i>Cheat</i></h2>
+<p>a Child.</p>
+</div>
+<div class="entry">
+<h2>LUMB</h2>
+<p>too much.</p>
+</div>
+<div class="entry">
+<h2>LURCHED</h2>
+<p>beaten at any Game.</p>
+</div>
+<div class="entry">
+<h2>LURRIES</h2>
+<p>Money, Watches, Rings,
+or other Moveables.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterm.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterm.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterm.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,393 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>M</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter M</h1>
+<div class="entry">
+<h2>Mackarel</h2>
+<p>a Bawd.</p>
+</div>
+<div class="entry">
+<h2>MACKAREL-<i>Back</i></h2>
+<p>a very
+tall, lank Person.</p>
+</div>
+<div class="entry">
+<h2>MADAM <i>Van</i></h2>
+<p>a Whore; <i class="eg">The Cull
+has been with Madam Van</i>, the Fellow
+has enjoyed such a one.</p>
+</div>
+<div class="entry">
+<h2>MADE</h2>
+<p>stolen.  <i class="eg">I made this Knife
+at a Heat</i>, I stole it cleverly.</p>
+</div>
+<div class="entry">
+<h2>MAD <i>Tom</i></h2>
+<p>alias of Bedlam; otherwise
+called <i>Abram-men</i>.</p>
+</div>
+<div class="entry">
+<h2>MAIDEN-<i>Sessions</i></h2>
+<p>when none are hang'd.</p>
+</div>
+<div class="entry">
+<h2>MAKE</h2>
+<p>a Half-penny.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> MAKE</h2>
+<p>to steal; seize; to run
+away with.</p>
+</div>
+<div class="entry">
+<h2>MALKINTRASH</h2>
+<p>one in a rueful
+Dress, enough to fright one.</p>
+</div>
+<div class="entry">
+<h2>MALMSEY-Nose</h2>
+<p>a jolly red Nose.</p>
+</div>
+<div class="entry">
+<h2>MAN <i>o'th' Town</i></h2>
+<p>a lewd Spark, or
+very Debauchee.</p>
+</div>
+<div class="entry">
+<h2>MANUFACTURE</h2>
+<p>any Liquor made
+of the Fruits of <i>English</i> Growth, as
+Ale, Beer, Cyder, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>MARGERY <i>Prater</i></h2>
+<p>a Hen.</p>
+</div>
+<div class="entry">
+<h2>MARINATED</h2>
+<p>transported into
+some Foreign Plantation.</p>
+</div>
+<div class="entry">
+<h2>MARRIAGE <i>Musick</i></h2>
+<p>Childrens Cries.</p>
+</div>
+<div class="entry">
+<h2>MASONS <i>Mawn'd</i></h2>
+<p>a Sham Sore
+above the Elbow; to counterfeit a
+broken Arm, by a Fall from a Scaffold.</p>
+</div>
+<div class="entry">
+<h2>MAUL'D</h2>
+<p>swinglingly drunk, or
+soundly beat.</p>
+</div>
+<div class="entry">
+<h2>MAUNDERS</h2>
+<p>Beggars</p>
+</div>
+<div class="entry">
+<h2>MAUNDING</h2>
+<p>begging.</p>
+</div>
+<div class="entry">
+<h2>MAUNDRING-<i>Broth</i></h2>
+<p>Scolding.</p>
+</div>
+<div class="entry">
+<h2>MAWDLIN</h2>
+<p>weepingly drunk.</p>
+</div>
+<div class="entry">
+<h2>MEGGS</h2>
+<p>Guineas.  <i class="eg">We fork'd the
+rum Cull's Meggs to the Tune of Fifty</i>;
+
+We pickt the Gentleman's Pocket of
+full Fifty Guineas.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> MELT</h2>
+<p>to spend Money.  <i class="eg">Will
+you melt a Borde?</i> Will you spend your
+Shilling?  <i class="eg">The Cull melted a Couple of
+Decusses upon us</i>; The Gentleman spent
+Ten Shillings upon us.</p>
+</div>
+<div class="entry">
+<h2>MILCH-<i>Kine</i></h2>
+<p>a Term used by Goalers,
+when their Prisoners will bleed
+freely to have some Favour, or to be
+at large.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> MILL</h2>
+<p>to steal, rob, or kill.  <i class="eg">ill
+the Gig with a Dub</i>, open the Door
+with a Pick-lock, or false Key.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> MILL <i>a Bleating Cheat</i></h2>
+<p>to kill a
+Sheep.</p>
+</div>
+<div class="entry">
+<h2>MILL-<i>Clapper</i></h2>
+<p>a Woman's Tongue.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> MILL <i>a Crackmans</i></h2>
+<p>to break a
+Hedge.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> MILL <i>a Grunter</i></h2>
+<p>to kill a Pig.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> MILL <i>a Ken</i></h2>
+<p>to rob a House.
+<i class="eg">Milling the Gig with a Betty</i>, Breaking
+open the Door with an Iron Crow.</p>
+</div>
+<div class="entry">
+<h2>MILL-<i>Ken</i></h2>
+<p>a House-Breaker.</p>
+</div>
+<div class="entry">
+<h2>MILL <i>the Glaze</i></h2>
+<p>break open the
+Window.</p>
+</div>
+<div class="entry">
+<h2>MILL <i>Them</i></h2>
+<p>kill them.</p>
+</div>
+<div class="entry">
+<h2>MILLER</h2>
+<p>a Killer or Murderer.</p>
+</div>
+<div class="entry">
+<h2>MINT</h2>
+<p>Gold.</p>
+</div>
+<div class="entry">
+<h2>MISH</h2>
+<p>Shirt, Smock, or Sheet.</p>
+</div>
+<div class="entry">
+<h2>MISH <i>Topper</i></h2>
+<p>a Coat or Petticoat.</p>
+</div>
+<div class="entry">
+<h2>MISS</h2>
+<p>a Whore of Quality.</p>
+</div>
+<div class="entry">
+<h2>MOABITES</h2>
+<p>Serjeants, Bailiffs and
+their Crew.</p>
+</div>
+<div class="entry">
+<h2>MOB</h2>
+<h2>or MAB</h2>
+<p>a Wench or Harlot.</p>
+</div>
+<div class="entry">
+<h2>MONGREL</h2>
+<p>a Hanger-on among
+the Cheats, a Spunger.</p>
+</div>
+<div class="entry">
+<h2>MOON-<i>Curser</i></h2>
+<p>a Link-boy, or one
+that, under Colour of lighting Men,
+(especially they who get in Drink, or
+have the Fields, or any uninhabited or
+By place, to go over) robs or leads
+them to a Gang of Rogues, that will
+do it for him.</p>
+</div>
+<div class="entry">
+<h2>MOON-<i>Men</i></h2>
+<p>Gypsies.</p>
+</div>
+<div class="entry">
+<h2>MOPSIE</h2>
+<p>a Dowdy, or homely
+Woman.</p>
+</div>
+<div class="entry">
+<h2>MOP'D</h2>
+<p>maz'd.</p>
+</div>
+<div class="entry">
+<h2>MOPUS</h2>
+<p>a Half-penny or Farthing.</p>
+</div>
+<div class="entry">
+<h2>MORGLAG</h2>
+<p>a Watchman's brown
+Bill; as Glaives, are Bills or Swords.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> MORRIS</h2>
+<p>to hang dangling in the
+Air, to be executed.</p>
+</div>
+<div class="entry">
+<h2>MORTS</h2>
+<p>Yeomans Daughters; also
+a Wife, Woman, or Wench.</p>
+</div>
+<div class="entry">
+<h2>MOTHER</h2>
+<p>a Bawd.</p>
+</div>
+<div class="entry">
+<h2>MOTHER <i>Midnight</i></h2>
+<p>a Midwife (often a Bawd).</p>
+</div>
+<div class="entry">
+<h2>MOVEABLES</h2>
+<p>Rings, Watches,
+Swords, and such Toys of Value.</p>
+</div>
+<div class="entry">
+<h2>MOUSE-<i>Trap</i></h2>
+<p>as <i class="eg">The Parson's
+Mouse-Trap</i>, Marriage.</p>
+</div>
+<div class="entry">
+<h2>MOUTH</h2>
+<p>a noisy Fellow.  <i class="eg">Mouth
+half cockt</i>, gaping and staring at every
+Thing they see.</p>
+</div>
+<div class="entry">
+<h2>MOWER</h2>
+<p>a Cow.</p>
+</div>
+<div class="entry">
+<h2>MOW-<i>Heater</i></h2>
+<p>a Drover.</p>
+</div>
+<div class="entry">
+<h2>MUCK</h2>
+<p>Money, Wealth.</p>
+</div>
+<div class="entry">
+<h2>MUFF</h2>
+<p>a Woman's Secrets,  <i class="eg">To the
+well wearing of your Muff, Mort</i>; To
+the happy Consummation of your Marriage,
+Madam.  A Health.</p>
+</div>
+<div class="entry">
+<h2>MUFFLING-<i>Cheat</i></h2>
+<p>a Napkin.</p>
+</div>
+<div class="entry">
+<h2>MUM <i>for-that</i></h2>
+<p>not a Word of the
+Pudding.</p>
+</div>
+<div class="entry">
+<h2>MUM <i>Chance</i></h2>
+<p>one that fits mute.</p>
+</div>
+<div class="entry">
+<h2>MUM <i>Glass</i></h2>
+<p>the Monument, erected
+at the City Charge, in Memory of the
+dreadful Fire 1666, which consumed
+the greatest part of the City.</p>
+</div>
+<div class="entry">
+<h2>MUMPERS</h2>
+<p>genteel Beggars, who
+will not accept of Victuals, but of
+Money or Cloaths.  The <i>Male Mumper</i>
+often appears with an Apron before
+him, and a Cap on his Head, pretending
+to be a decayed Tradesman, who having
+been a long Time sick, hath spent
+all his remaining Stock, ans is so weak
+he cannot work.  At other times he
+appears like a decayed Gentleman, who,
+especially since the fatal <i>South Sea
+Scheme</i>, has been undine, and reduced
+to the Necessity of imploring good People's Charity.</p>
+<p>The <i>Female Mumper</i> will confidently
+knock at the Door of a House, and desire
+to speak with the Mistress, and
+after apologizing for her Boldness, she
+acquaints her how urgent her Necessity
+is: That she has a Husband and two
+small Children lying at the Point of
+Death: That she was a Gentlewoman
+born; but marrying against her Friends
+Consent, was by them disowned, and
+so by her Husbands Sickness, is reduced
+to this miserable Condition.  Sometimes
+she appears big with Child, and
+begs Cloaths or Linnen to make Clouts
+of.  The Word <i>Mumper</i> is now generally
+used to denote all sorts of Beggars.</p>
+</div>
+<div class="entry">
+<h2>MUMPERS <i>Hall</i></h2>
+<p>several Ale-houses
+in and about this City and Suburbs, in
+Alleys, and By-places, much used by
+them, and resorted to in the Evening,
+where they will be very merry, drunk,
+and frolicksome.</p>
+</div>
+<div class="entry">
+<h2>MUNNS</h2>
+<p>the Face; <i class="eg">Toute his Munns</i>,
+Note his Phiz, or, Mark his Face well.
+<i class="eg">Pay his Munns</i>, i.e. Strike him in the
+Face, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>MUSICK</h2>
+<p>the Watch-word among
+High-way-men, to let the Company
+
+they were to rob, alone, in return to
+some Courtesy from some Gentleman
+among them.</p>
+</div>
+<div class="entry">
+<h2>MUTTON <i>Monger</i></h2>
+<p>a Lover of
+Women; also a Sheep-stealer.</p>
+</div>
+<div class="entry">
+<h2>MUTTON-<i>in-long-coats</i></h2>
+<p>Women
+<i class="eg">A Leg of Mutton in a Silk Stocking</i>, a
+Woman's leg.</p>
+</div>
+<div class="entry">
+<h2>MUZZLE</h2>
+<p>a beard, (usually) long
+and nasty.</p>
+</div>
+<div class="entry">
+<h2>MYRMIDONS</h2>
+<p>the Constable's Attendants,
+or those whom he commands
+(in the King's Name) to aid and assist
+him: Also the Watchmen.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettern.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettern.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettern.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,269 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>N</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter N</h1>
+<div class="entry">
+<h2>NAB</h2>
+<p>a Hat, Cap, or Head, also a
+Coxcomb.  <i class="eg">Ill nab ye</i>, I'll have
+your Hat or Cap.  <i class="eg">Nim the Nab</i>, steal
+the Hat or Cap.  <i class="eg">Nabbed</i>, apprehended,
+taken or arrested.</p>
+</div>
+<div class="entry">
+<h2>NAB <i>Cheat</i></h2>
+<p>a Hat.</p>
+</div>
+<div class="entry">
+<h2>NAB-<i>Girder</i></h2>
+<p>a Bridle.</p>
+</div>
+<div class="entry">
+<h2>NAN</h2>
+<p>a Servant-maid.</p>
+</div>
+<div class="entry">
+<h2>NANNY-<i>House</i></h2>
+<p>a Bawdy-house.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> NAP</h2>
+<p>by cheating with the Dice
+to ecure one chance; also a Clap or
+Pox, and a short sleep, <i class="eg">Nap the Wiper</i>,
+steal the Hankerchief.  <i class="eg">You have napt
+it</i>, You are Clapt.</p>
+</div>
+<div class="entry">
+<h2>NAPPER</h2>
+<p>a Cheat, or Thief.</p>
+</div>
+<div class="entry">
+<h2>NAPPER</h2>
+<p><i>of Naps</i>, a sheep-stealer.</p>
+</div>
+<div class="entry">
+<h2>NAPPY-<i>Ale</i></h2>
+<p>very strong, heady.</p>
+</div>
+<div class="entry">
+<h2>NASK</h2>
+<h2>or <i>Naskin</i></h2>
+<p>a Prison or Bridewell.
+<i class="eg">The new Nask</i>, Clerkenwell
+Bridewell: <i class="eg">Tuttle Nask</i>, the Bridewell
+in Tuttle-Fields: <i class="eg">He napt it at the
+Nask</i>; he was lasht at Bridewell.</p>
+</div>
+<div class="entry">
+<h2>NATURAL</h2>
+<p>a Mistress, a Wench.</p>
+</div>
+<div class="entry">
+<h2>NAY-<i>Word</i></h2>
+<p>a By-word, or Proverb.</p>
+</div>
+<div class="entry">
+<h2>NAZIE</h2>
+<p>Drunken.</p>
+</div>
+<div class="entry">
+<h2>NAZIE-<i>Cove</i></h2>
+<p>a Drunkard.</p>
+</div>
+<div class="entry">
+<h2>NAZY-<i>Mort</i></h2>
+<p>a she Drunkard.</p>
+</div>
+<div class="entry">
+<h2>NAZY-<i>Nabs</i></h2>
+<p>Drunken Coxcombs.</p>
+</div>
+<div class="entry">
+<h2>NECK-<i>Stamper</i></h2>
+<p>the Pot-Boy at a
+Tavern or Ale-house.</p>
+</div>
+<div class="entry">
+<h2>NEEDLE-<i>Point</i></h2>
+<p>a Sharper.</p>
+</div>
+<div class="entry">
+<h2>NETTLED</h2>
+<p>tiezed, provoked, made
+uneasy.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> NICK <i>it</i></h2>
+<p>to win at Dice, to hit
+the Mark.</p>
+</div>
+<div class="entry">
+<h2>NICKUM</h2>
+<p>a Sharper, also a rooking
+Ale house or Inn-keeper,Vintner, or
+any Retailer.</p>
+</div>
+<div class="entry">
+<h2>NICKUM-<i>Poop</i></h2>
+<p>a Fool, also a silly,
+soft, uxorious Fellow.</p>
+</div>
+<div class="entry">
+<h2>NICK-<i>Ninny</i></h2>
+<p>an emty Fellow, a
+meer Gods-head.</p>
+</div>
+<div class="entry">
+<h2>NIG</h2>
+<p>the clippings of Money.</p>
+</div>
+<div class="entry">
+<h2>NIGGING</h2>
+<p>Clipping.</p>
+</div>
+<div class="entry">
+<h2>NIGGLER</h2>
+<p>a Clipper.</p>
+</div>
+<div class="entry">
+<h2>NIGGLING</h2>
+<p>accompanying with a
+Woman.</p>
+</div>
+<div class="entry">
+<h2>NIGHT-<i>Magistrate</i></h2>
+<p>a Constable.</p>
+</div>
+<div class="entry">
+<h2>NIGHT-<i>Walker</i></h2>
+<p>a Bellman; also a
+light Woman; a Thief, a Rogue.</p>
+</div>
+<div class="entry">
+<h2>NIGIT</h2>
+<p><i>qu.</i> an Ideot, i.e. a Fool.</p>
+</div>
+<div class="entry">
+<h2>NIGMENOG</h2>
+<p>a very silly fellow.</p>
+</div>
+<div class="entry">
+<h2>NIKIN</h2>
+<p>a Natural, or very soft
+Creature.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> NIM</h2>
+<p>to steal.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> NIM</h2>
+<p>or whip off or away any thing;
+<i class="eg">To Num a Togeman</i>, to steal a
+Cloack.  <i class="eg">To Nim a Cloak</i>, to cut off the
+Buttons in a Crowd, to whip it off a
+Man's Shoulders.</p>
+</div>
+<div class="entry">
+<h2>NIM <i>Gimmer</i></h2>
+<p>a Doctor, Surgeon,
+Apothecary, or any one that cures a
+Clap or a Pox.</p>
+</div>
+<div class="entry">
+<h2>NINNY</h2>
+<p>a canting, whining Beggar;
+also a Fool.</p>
+</div>
+<div class="entry">
+<h2>NIP</h2>
+<p>a Cheat.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> NIP</h2>
+<p>to pinch or sharp any thing.
+<i class="eg">Nip a Bung</i>, to cut a Purse.</p>
+</div>
+<div class="entry">
+<h2>NIPPS</h2>
+<p>the Shears with which
+Money was wont to be clipt.</p>
+</div>
+<div class="entry">
+<h2>NIZY</h2>
+<p>a Fool or Coxcomb.</p>
+</div>
+<div class="entry">
+<h2>NOB</h2>
+<p>a Head.</p>
+</div>
+<div class="entry">
+<h2>NOCKY</h2>
+<p>a silly, dull Fellow.</p>
+</div>
+<div class="entry">
+<h2>NODDLE</h2>
+<p>the Head.</p>
+</div>
+<div class="entry">
+<h2>NODDY</h2>
+<p>a Fool.  <i class="eg">Knave Noddy</i>, a
+Game on the Cards.</p>
+</div>
+<div class="entry">
+<h2>NOOZED</h2>
+<p>or <i class="eg">caught in a Nooze</i>,
+married; also hanged.</p>
+</div>
+<div class="entry">
+<h2>NOPE</h2>
+<p>a Blow, a Knock on the
+Pate; as <i class="eg">We hit him a Nope on the Costard</i>.</p>
+</div>
+<div class="entry">
+<h2>NOSE-<i>Gent</i></h2>
+<p>a Recluse or Nun.</p>
+</div>
+<div class="entry">
+<h2>NUB</h2>
+<p>the Neck; also Coition.</p>
+</div>
+<div class="entry">
+<h2>NUBBING</h2>
+<p>hanging.  <i class="eg">To be nubbed</i>,
+to be hanged.</p>
+</div>
+<div class="entry">
+<h2>NUBBING-<i>Cheat</i></h2>
+<p>the Gallows.</p>
+</div>
+<div class="entry">
+<h2>NUBBING-<i>Cove</i></h2>
+<p>the Hangman.</p>
+</div>
+<div class="entry">
+<h2>NUBBING-<i>Ken</i></h2>
+<p>the Sessions House.</p>
+</div>
+<div class="entry">
+<h2>NUG</h2>
+<p>a Word of Love, as <i class="eg">my Dear
+Nug</i>, my Dear Love.</p>
+</div>
+<div class="entry">
+<h2>NUMMS</h2>
+<p>a sham, or Collar-shirt,
+to hide the other when dirty.</p>
+</div>
+<div class="entry">
+<h2>NUT-<i>crackers</i></h2>
+<p>a Pillory,  <i class="eg">The Cull
+lookt thro' the Nut-crackers</i>, i.e. The
+Rogue stood in the Pillory.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettero.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettero.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettero.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,80 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>O</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter O</h1>
+<div class="entry">
+<h2>OAK</h2>
+<p>a rich Man, of good Substance
+and Credit.</p>
+</div>
+<div class="entry">
+<h2>OGLES</h2>
+<p><i class="eg"><i>Eyes</i> Rum Ogles</i>, fine, bright
+clear, piercing Eyes.</p>
+</div>
+<div class="entry">
+<h2>OLD-<i>Dog at it</i></h2>
+<p>good or expert.</p>
+</div>
+<div class="entry">
+<h2>OLD-<i>Dog at Common-Prayer</i></h2>
+<p>a poor
+Hackney Parson that can read but not
+preach well.</p>
+</div>
+<div class="entry">
+<h2>OLD-<i>Harry</i></h2>
+<p>a Composition used by
+Vintners when they bedevil their
+Wines.</p>
+</div>
+<div class="entry">
+<h2>OLD-<i>Mr-Gory</i></h2>
+<p>a Piece of Gold.</p>
+</div>
+<div class="entry">
+<h2>OLD <i>Roger</i></h2>
+<p>the Devil.</p>
+</div>
+<div class="entry">
+<h2>OLD <i>Toast</i></h2>
+<p>a brisk old Fellow.</p>
+</div>
+<div class="entry">
+<h2>OLIVERS <i>Skull</i></h2>
+<p>a Chamber Pot.</p>
+</div>
+<div class="entry">
+<h2>ONE <i>in Ten</i></h2>
+<p>a Parson.</p>
+</div>
+<div class="entry">
+<h2>ONE <i>of my Cousins</i></h2>
+<p>a Wench.</p>
+</div>
+<div class="entry">
+<h2>OS <i>Chives</i></h2>
+<p>Bone handled Knives.</p>
+</div>
+<div class="entry">
+<h2>OUT-At-Heels</h2>
+<h2>or <i>elbows</i></h2>
+<p>in a declining
+Condition going down the
+Wind.</p>
+</div>
+<div class="entry">
+<h2>OYL <i>of Barley</i></h2>
+<p>strong Drink.</p>
+</div>
+<div class="entry">
+<h2>OX <i>House</i></h2>
+<p><i class="eg">He must go thro' the Ox-house
+to Bed</i>, said of an old Fellow that
+marries a young Woman.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterp.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterp.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterp.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,482 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>P</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter P</h1>
+<div class="entry">
+<h2>PAD</h2>
+<p>the Highway; also a Robber
+thereon.</p>
+</div>
+<div class="entry">
+<h2>PADDINGTON-<i>Fair</i></h2>
+<p>an Execution
+of Malefactors at <i>Tyburn</i>.</p>
+</div>
+<div class="entry">
+<h2><i>Ill cut your</i> PAINTER <i>for ye</i></h2>
+<p>I'll
+prevent your doing me any Mischief:
+the Tar Cant when they quarrel onw
+with another.</p>
+</div>
+<div class="entry">
+<h2>PALLIARDS</h2>
+<p>those whose Fathers
+were <i>Clapperdogeons</i>, or born Beggars,
+and who themselves follow the same
+Trade.  The Female sort of these
+Wretches frequently borrow Children
+if they have none of their own, and
+planting them about in Straw,
+draw the greater Pity from the Spectators, screwing their Faces to the
+moving Postures, and crying at Pleasure,
+and making the Children also
+cry by pinching them, or otherwise;
+mean time her Com rogue, the Male
+<i>Palliard</i>, lies bagging in the Fields,
+with <i>Cleymes</i> or artificial Sores, which
+he makes by <i>Spere-wort</i> or <i>Arsnick</i>,
+which draws them into Blisters.</p>
+</div>
+<div class="entry">
+<h2>PANAM</h2>
+<p>Bread.</p>
+</div>
+<div class="entry">
+<h2>PANTER</h2>
+<p>a Heart.</p>
+</div>
+<div class="entry">
+<h2>PANTLER</h2>
+<p>a Butler.</p>
+</div>
+<div class="entry">
+<h2>PAPLER</h2>
+<p>Milk-Pottage.</p>
+</div>
+<div class="entry">
+<h2>PARINGS</h2>
+<p>the Clippings of Money.</p>
+</div>
+<div class="entry">
+<h2>PATRI-COVES</h2>
+<h2>or <i>Pater Cove</i></h2>
+<p>strolling Priests that marry under a Hedge,
+without Gospel or Common-prayer
+Book: The couple standing on each
+side a dead Beast, are bid to live together
+till Death them does part; so
+shaking Hands the Wedding is ended,
+also any Minister, or Parson.</p>
+</div>
+<div class="entry">
+<h2>PAUME</h2>
+<p>See <i>Palm</i> [[not present]].</p>
+</div>
+<div class="entry">
+<h2>PAW</h2>
+<p>a Hand.</p>
+</div>
+<div class="entry">
+<h2>PAWN</h2>
+<p>the same as <i>Palm</i>, which
+see. [[not present]]</p>
+</div>
+<div class="entry">
+<h2>PEAK</h2>
+<p>any kind of Lace.</p>
+</div>
+<div class="entry">
+<h2>PECULIAR</h2>
+<p>a Mistress; also particular,
+private, proper.</p>
+</div>
+<div class="entry">
+<h2>PED</h2>
+<p>a Basket.</p>
+</div>
+<div class="entry">
+<h2>PEEPERS</h2>
+<p>a Looking-glass.  <i class="eg">Track
+the Dancers and Pike with the Peepers</i>;
+Whip up the Stairs, and trip off with
+the Looking-glass.</p>
+</div>
+<div class="entry">
+<h2>PEEPERS</h2>
+<p>Eyes.</p>
+</div>
+<div class="entry">
+<h2>PEERY</h2>
+<p>fearful, shy, fly.  <i class="eg">The Cull's
+Peery</i>; The Rogue's afraid to venture.
+<i class="eg">There's a Peery, 'tis snitch</i>, there are a
+great many People, there'sno good to
+be done.</p>
+</div>
+<div class="entry">
+<h2>PEETER</h2>
+<p>a Portmanteau, or Cloak-bag.
+<i class="eg">Bite the Peelter</i>, to whip off the
+Cloak-bag.</p>
+</div>
+<div class="entry">
+<h2>PEG-<i>Trantums</i></h2>
+<p>as <i class="eg">Gone to Peg-Trantums</i>, dead.</p>
+</div>
+<div class="entry">
+<h2>PELTING <i>Village</i></h2>
+<p>blind, obscure.</p>
+</div>
+<div class="entry">
+<h2>PENNANCE <i>Board</i></h2>
+<p>a Pillory.</p>
+</div>
+<div class="entry">
+<h2>PENTHOUSE <i>Nub</i></h2>
+<p>a very broad
+brimmed hat.</p>
+</div>
+<div class="entry">
+<h2>PEPPERED <i>off</i></h2>
+<p>soundly clapt or
+Poxt.</p>
+</div>
+<div class="entry">
+<h2>PERIWINKLE</h2>
+<p>a Peruke, or Perriwig.</p>
+</div>
+<div class="entry">
+<h2>PETER <i>Lay</i></h2>
+<p>Rogues who follow
+petty Thefts; such as cutting Portmanteau's, &amp;c.
+from behind Coaches,
+breaking Shop Glasses, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>PETER <i>Lug</i></h2>
+<p><i class="eg">Who is Peter Lug?</i> who
+let's the Glass stand at his Door.</p>
+</div>
+<div class="entry">
+<h2>PETTICOAT <i>Pensioner</i></h2>
+<p>a Gallant
+maintained for secret Service.</p>
+</div>
+<div class="entry">
+<h2>PHARAOH</h2>
+<p>very strong Malt Drink.</p>
+</div>
+<div class="entry">
+<h2>PHENIX <i>Men</i></h2>
+<p>See <i>Firedrakes</i>.</p>
+</div>
+<div class="entry">
+<h2>PHILISTINES</h2>
+<p>Serjeants, Bailiffs and
+their Crew.  Also Drunkards.  <i class="eg">I fell
+among the Philistines</i>, I chopt upon a
+Knot of drunken Fellows.</p>
+</div>
+<div class="entry">
+<h2>PICKING</h2>
+<p>little Stealing, Pilfering
+Petty Larceny.</p>
+</div>
+<div class="entry">
+<h2>PICKAROON</h2>
+<p>a very shabby poor
+Fellow.</p>
+</div>
+<div class="entry">
+<h2>PICKLED</h2>
+<p>very arch or waggish.  <i class="eg">In
+Pickle</i>, Poxt.  <i class="eg">Rods in Pickle</i>, or <i class="eg">Revenge
+in Lavender</i>.</p>
+</div>
+<div class="entry">
+<h2>PIG</h2>
+<p>Six-pence.  <i class="eg">The Cull tipt me a
+Pig</i>, The Man gave me Six pence.</p>
+</div>
+<div class="entry">
+<h2>PIG-<i>Widgeon</i></h2>
+<p>a silly Fellow.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> PIKE</h2>
+<p>to run away, flee, quit or
+leave the Place; also to die, <i class="eg">Pike on the
+Been</i>, run away as fast as you can.
+<i class="eg">Pik'd off</i>, run away, fled, broke; also
+dead.  <i class="eg">To pass the Pikes</i>, to be out of
+Danger.  <i class="eg">There's a Cull knos us; if we
+dont pike, he'll bone us</i>, that Fellow sees
+is' if we don't scour off, he'll apprehend
+us.  <i class="eg">Then we'll pike, 'tis all Bowman</i>;
+we'll be gone, all is well, the
+Coast is clear.</p>
+</div>
+<div class="entry">
+<h2>PIMP-<i>Whiskin</i></h2>
+<p>a top Trader in
+pimping.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> PINCH</h2>
+<p>to steal or convey slily
+any Thing away.  <i class="eg">To pinch on the Parsons
+side</i>; to sharp him of his Tithes.
+<i class="eg">At a Pinch</i>, upon a Push or Exigence.</p>
+</div>
+<div class="entry">
+<h2>PINK'D</h2>
+<p>pricked with a Sword in a
+re-encounter or Duel.  <i class="eg">He pinked his
+Dubblet</i>, he run him through.</p>
+</div>
+<div class="entry">
+<h2>PIT</h2>
+<p>the Hole under the Gallows,
+into which those that pay not the Fee,
+(viz. 6<i>s</i>. 8<i>d</i>.) are cast and buried.</p>
+</div>
+<div class="entry">
+<h2>PIT <i>a Pat</i></h2>
+<h2>or <i>Pintle de Pantledy</i></h2>
+<p>sadly scared, greviously frighted.</p>
+</div>
+<div class="entry">
+<h2>PLANT</h2>
+<p>to lay, place or hide.
+<i class="eg">Plant your Whids and stow them</i>, Be
+wary what you say or let slip.</p>
+</div>
+<div class="entry">
+<h2>PLAISTER <i>of hot Guts</i></h2>
+<p>one warm
+Belly clapt to another.</p>
+</div>
+<div class="entry">
+<h2>PLATE <i>Fleet coes in</i></h2>
+<p>when the
+Money comes to Hand.</p>
+</div>
+<div class="entry">
+<h2>PALTTER-<i>Faces</i> Jade</h2>
+<p>a very broad
+ordinary faced Woman.</p>
+</div>
+<div class="entry">
+<h2>PLAY <i>it off</i></h2>
+<p>to play Booty; also to
+throw away, at Gaming, so much and
+no more.  <i class="eg">He plays it off</i>, he cheats.</p>
+</div>
+<div class="entry">
+<h2>PLUCK <i>the Ribbon</i></h2>
+<p>Ring the Bell at
+the Tavern.</p>
+</div>
+<div class="entry">
+<h2>PLUMP <i>in the Pocket</i></h2>
+<p>flush of Money.</p>
+</div>
+<div class="entry">
+<h2>PLYER</h2>
+<p>a Crutch; also a Trader.</p>
+</div>
+<div class="entry">
+<h2>POKER</h2>
+<p>a Sword.</p>
+</div>
+<div class="entry">
+<h2>POLT <i>on the Pate</i></h2>
+<p>a good Rap there.</p>
+</div>
+<div class="entry">
+<h2>POPS</h2>
+<p>Pistols, <i class="eg">To pop</i>, to fire a Pistol,
+&amp;c.</p>
+</div>
+<div class="entry">
+<h2>PORKER</h2>
+<p>a Sword.</p>
+</div>
+<div class="entry">
+<h2>POST</h2>
+<p>as <i class="eg">From Pillar to Post</i>, from
+Constable to Constable.</p>
+</div>
+<div class="entry">
+<h2>POT-<i>Valiant</i></h2>
+<p>Drunk.</p>
+</div>
+<div class="entry">
+<h2>POULAIN</h2>
+<p>a Bubo.</p>
+</div>
+<div class="entry">
+<h2>POWDERING-<i>Tub</i></h2>
+<p>the pocky Hospital
+at <i>Kingsland</i> near <i>London</i>.</p>
+</div>
+<div class="entry">
+<h2>POISONED</h2>
+<p>big with Child.</p>
+</div>
+<div class="entry">
+<h2>POISON <i>Pate</i></h2>
+<p>red Haired.</p>
+</div>
+<div class="entry">
+<h2>PRANCER</h2>
+<p>a Horse.</p>
+</div>
+<div class="entry">
+<h2>PRANCER's <i>Nab</i></h2>
+<p>a Horse's Head,
+used in a sham Seal to such a Pass.</p>
+</div>
+<div class="entry">
+<h2>PRATTS</h2>
+<p>the Thighs or Buttocks;
+also a Tinder-box or Touch-box.</p>
+</div>
+<div class="entry">
+<h2>PRATING-<i>Cheat</i></h2>
+<p>a Tongue.</p>
+</div>
+<div class="entry">
+<h2>PRATE-<i>Roast</i></h2>
+<p>a Talking Boy.</p>
+</div>
+<div class="entry">
+<h2>PREY</h2>
+<p>Money.</p>
+</div>
+<div class="entry">
+<h2>PRICKEAR'D <i>Fellow</i></h2>
+<p>a Crop whose
+Ears are longer than his Hair.</p>
+</div>
+<div class="entry">
+<h2>PRICK <i>Louse</i></h2>
+<p>a Taylor.</p>
+</div>
+<div class="entry">
+<h2>PRIEST <i>Linked</i></h2>
+<p>married.</p>
+</div>
+<div class="entry">
+<h2>PRIG</h2>
+<p>a Thief, a Cheat: also a nice,
+beauish, silly Fellow, is called a <i class="eg">meer
+Prig</i>.</p>
+</div>
+<div class="entry">
+<h2>PRIGGERS</h2>
+<p>Thieves.</p>
+</div>
+<div class="entry">
+<h2>PRIGGING</h2>
+<p>lying with a Woman.</p>
+</div>
+<div class="entry">
+<h2>PRIGSTAR</h2>
+<p>a Rival in Love.</p>
+</div>
+<div class="entry">
+<h2>PRIGGISH</h2>
+<p>Thievish.</p>
+</div>
+<div class="entry">
+<h2>PRIG <i>Napper</i></h2>
+<p>a Horse-stealer; also a Thief Taker.</p>
+</div>
+<div class="entry">
+<h2>PRIGGERS <i>of the Cacklers</i></h2>
+<p>Poultry-stealers.</p>
+</div>
+<div class="entry">
+<h2>PRIGGERS <i>of Prancers</i></h2>
+<p>Horse-stealers, who carry a Bridle in their Pockets,
+and a small pad Saddle in their
+Breeches.</p>
+</div>
+<div class="entry">
+<h2>PRINCE <i>Prig</i></h2>
+<p>a King of the Gypsies;
+also Top-Thief, or Receiver General.</p>
+</div>
+<div class="entry">
+<h2>PRINCOCK</h2>
+<p>a pert, forward Fellow.</p>
+</div>
+<div class="entry">
+<h2>PRINKING</h2>
+<p>nicely dressing.  <i class="eg">Prinked
+up</i>, set up on the Cupboards head, in
+their best Clothes, or in State.  Stiff-starched.</p>
+</div>
+<div class="entry">
+<h2><i>Mistress</i> PRINCUM-<i>Prancium</i></h2>
+<p>such a stiff, overnice precise Madam.</p>
+</div>
+<div class="entry">
+<h2>PROG</h2>
+<p>Meat.  <i class="eg">Rum Prog.</i>, nice eating.
+<i class="eg">The Cull tipt us rum Prog</i>; the
+Gentleman, so serve a Turn; a Cat's Foot.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> PUMMEL</h2>
+<p>to beat, <i class="eg">I pummelled
+his Sides for him.</i>, I beat him soundly.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> PUMP</h2>
+<p>to wheedle-Secrets out
+of any one.</p>
+</div>
+<div class="entry">
+<h2>PUNCH-<i>Houses</i></h2>
+<p>bawdy-houses.</p>
+</div>
+<div class="entry">
+<h2>PUNK</h2>
+<p>a little Whore.</p>
+</div>
+<div class="entry">
+<h2>PUPIL <i>Mongers</i></h2>
+<p>Tutors at the Universities.</p>
+</div>
+<div class="entry">
+<h2>PURE</h2>
+<p>a Mistress.</p>
+</div>
+<div class="entry">
+<h2>PUREST-<i>Pure</i></h2>
+<p>a Top-Mistress or
+fine Woman.</p>
+</div>
+<div class="entry">
+<h2>PURL-<i>Royal</i></h2>
+<p>Canary with a Dash of
+Wormwood.</p>
+</div>
+<div class="entry">
+<h2>PUSHING-<i>School</i></h2>
+<p>a Fencing-School;
+also a Bawdy house.</p>
+</div>
+<div class="entry">
+<h2>PUT</h2>
+<p><i class="eg">A Country Put</i>, a silly, shallow
+pated, Fellow.  <i class="eg">Put so it</i>, beset.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterq.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterq.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterq.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,179 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Q</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter Q</h1>
+<div class="entry">
+<h2>QUACKING-<i>Cheat</i></h2>
+<p>a Duck.</p>
+</div>
+<div class="entry">
+<h2>QUAIL Pipe</h2>
+<p>a Woman's Tongue.</p>
+</div>
+<div class="entry">
+<h2>QUAKING <i>Cheat</i></h2>
+<p>a Calf or Sheep.</p>
+</div>
+<div class="entry">
+<h2>QUARREL <i>Picker</i></h2>
+<p>a Glazier.</p>
+</div>
+<div class="entry">
+<h2>QUARRON</h2>
+<p>a Body.</p>
+</div>
+<div class="entry">
+<h2>QUEAN</h2>
+<p>a Whore or Slut.  <i class="eg">A dirty
+Quean</i>, a Puzzle or Slut.</p>
+</div>
+<div class="entry">
+<h2>QUEERE</h2>
+<h2>or <i>Quire</i></h2>
+<p>base, roguish,
+naught.  <i class="eg">How queerely the Cull Trouts?</i>
+How roguishly the Fellow loocks.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-Birds</h2>
+<p>such as having got
+loose, return to their old Trade of
+roguing and thieving.</p>
+</div>
+<div class="entry">
+<h2>QUEERE <i>Bluffer</i></h2>
+<p>a sneaking sharping,
+Cut-throat Ale-house Man or Inn-keeper.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Bung</i></h2>
+<p>an empty Purse.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Clout</i></h2>
+<p>a sorry old Handkerchief,
+not worth nimming.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Cole</i></h2>
+<p>clipt, counterfeit
+Money.</p>
+</div>
+<div class="entry">
+<h2>QUEERE <i>Cole-maker</i></h2>
+<p>a false Coiner.</p>
+</div>
+<div class="entry">
+<h2>QUEERE <i>Cole-fencer</i></h2>
+<p>a Receiver and
+Putter off of false Money.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Cove</i></h2>
+<p>a Rogue.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Cussin</i></h2>
+<p>a Justice of Peace;
+also a churl.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Cull</i></h2>
+<p>a Fop or Fool, a
+Cods-head; also a shabby poor Fellow.</p>
+</div>
+<div class="entry">
+<h2>QUEERE <i>Degen</i></h2>
+<p>an Iron, Steel or
+Brass hilted Sword.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Diver</i></h2>
+<p>a bungling Pick-pocket.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Doxy</i></h2>
+<p>a jilting Jade, a sorry
+shabby Wench.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Drawers</i></h2>
+<p>Yarn, or coarse
+Worsted, ordinary or old Stockings.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Duke</i></h2>
+<p>a poor decayed
+Gentleman, also a lean, thin, half-starved Fellow.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Fun</i></h2>
+<p>a bungling Cheat or
+Trick; also Game or Merriment.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Ken</i></h2>
+<p>an ill House, a Prison
+or a place of Correction.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Kicks</i></h2>
+<p>course ordinary or
+old tattered Breeches.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Mort</i></h2>
+<p>a dirty Drab, a jilting
+Wench, a pocky Jade.</p>
+</div>
+<div class="entry">
+<h2>QUEERE <i>Nab</i></h2>
+<p>a Felt, <i>Carolina</i> Cloth
+or ordinary Hat.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Peepers</i></h2>
+<p>old-fashioned,
+ordinary or common Looking glasses.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Prancer</i></h2>
+<p>a foundered Jade,
+an ordinary low prized Horse: also a
+cowardly or faint hearted Horse-stealer.</p>
+</div>
+<div class="entry">
+<h2>QUEERE-<i>Topping</i></h2>
+<p>sorry Head-dresses.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> QUIBBLE</h2>
+<p>to trifle or pun.</p>
+</div>
+<div class="entry">
+<h2><i>Sir</i> QUIBBLE-<i>Queere</i></h2>
+<p>a trifling, silly
+shatter-brained Fellow; a meer Wittol
+or Punter, likewise a Whiffler.</p>
+</div>
+<div class="entry">
+<h2>QUIDDS</h2>
+<p>Cash, or ready Money.
+<i class="eg">Can you tip me any Quidds</i>? Can you
+lend me any Money.</p>
+</div>
+<div class="entry">
+<h2>QUOD</h2>
+<p><i>Newgate</i>; also a Prison, tho'
+generally for Debt.  <i class="eg">The Poor Dabs in
+the Quod.</i> the poor Rogue is in <i>Limbo</i>.</p>
+</div>
+<div class="entry">
+<h2>QUOTA</h2>
+<p>Snack, Share, Part, Proportion or Dividend.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterr.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterr.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterr.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,608 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>R</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter R</h1>
+<div class="entry">
+<h2>RABBET-<i>Suckers</i></h2>
+<p>young Unthrifts
+taking Goods on Tick of Pawnbrokers
+or Tallymen, at excessive
+Rates.</p>
+</div>
+<div class="entry">
+<h2>RABBITS</h2>
+<p>wooden Cans to drink
+out of, once used on the Roads, now
+almost laid by.</p>
+</div>
+<div class="entry">
+<h2>RAG</h2>
+<p>a Farthing.  <i class="eg">Not a Rag left</i>; I
+have lost or spent all my Money.</p>
+</div>
+<div class="entry">
+<h2>RAGAMUFFIN</h2>
+<p>a Taterdemallion.</p>
+</div>
+<div class="entry">
+<h2>RAG-<i>Water</i></h2>
+<p>a common sort of strong
+Water.</p>
+</div>
+<div class="entry">
+<h2>RAKE</h2>
+<h2><i>Rake-hell</i></h2>
+<h2><i>Rake shame</i></h2>
+<p>a lewd Spark or Debauchee.</p>
+</div>
+<div class="entry">
+<h2>RALPH <i>Spooner</i></h2>
+<p>a Fool.</p>
+</div>
+<div class="entry">
+<h2>RANGING</h2>
+<p>intriguing, and enjoying
+many Women.</p>
+</div>
+<div class="entry">
+<h2>RANK <i>Rider</i></h2>
+<p>a Highwayman; also
+a Jockey.</p>
+</div>
+<div class="entry">
+<h2>RANTIPOLE</h2>
+<p>a rude wild Boy or
+Girl.</p>
+</div>
+<div class="entry">
+<h2>RAP</h2>
+<p>to swop or exchange a Horse
+or Goods; also a Polt on the Pate.</p>
+</div>
+<div class="entry">
+<h2>RAPPER</h2>
+<p>a swinging great Lye.</p>
+</div>
+<div class="entry">
+<h2>RAREE-SHOW-<i>Men</i></h2>
+<p>poor <i>Savoyards</i>
+strolling up and down with portable
+Boxes of Puppet-shows at their
+Backs; Pedlars of Puppets.</p>
+</div>
+<div class="entry">
+<h2>RAT</h2>
+<p>a drunken Man or Woman
+taken up by the Watch, and carried
+by the Constable to the Compter.  <i class="eg">To
+smell a Rat</i>, To suspect a Trick.</p>
+</div>
+<div class="entry">
+<h2>RATTLER</h2>
+<p>a Coach.</p>
+</div>
+<div class="entry">
+<h2>RATTLING <i>Cove</i></h2>
+<p>a Coach-man.</p>
+</div>
+<div class="entry">
+<h2>RATTLING-<i>Mumpers</i></h2>
+<p>such as run
+after, or ply Coaches &amp;c.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> RATTLE</h2>
+<p>to move off, or be
+gone.  <i class="eg">We'll take Rattle</i>, We must not
+tarry, but whip away.</p>
+</div>
+<div class="entry">
+<h2>READY <i>Rhino</i></h2>
+<p>Money in Possession.</p>
+</div>
+<div class="entry">
+<h2>RECRUITS</h2>
+<p>Money (expected.)  <i class="eg">Have
+yuo rais'd the Recruits?</i> Is the Money
+come in?</p>
+</div>
+<div class="entry">
+<h2>RED-<i>Fustian</i></h2>
+<p>Claret, or red Port-Wine.</p>
+</div>
+<div class="entry">
+<h2>RED-<i>Letter-Man</i></h2>
+<p>a Roman Catholick.</p>
+</div>
+<div class="entry">
+<h2>RED-<i>Rag</i></h2>
+<p>a Tongue.</p>
+</div>
+<div class="entry">
+<h2>REMEMBER <i>Parson Malham</i></h2>
+<p>q. d.
+Pray Sir drink about.  A <i>Norfolk</i>
+Phrase.</p>
+</div>
+<div class="entry">
+<h2>RHINO</h2>
+<p>ready Money.</p>
+</div>
+<div class="entry">
+<h2>RIBBIN</h2>
+<p>Money.  <i class="eg">The Ribbin Runs
+shick</i>; his Breeches are well lined
+with Money.  <i class="eg">The Ribbin runs thin</i>,
+He has but little Cash about him.</p>
+</div>
+<div class="entry">
+<h2>RICH-<i>Face</i></h2>
+<p>a red-Face.</p>
+</div>
+<div class="entry">
+<h2>RIDG-<i>Cully</i></h2>
+<p>a Gold-smith.</p>
+</div>
+<div class="entry">
+<h2>RIFF-<i>Raff</i></h2>
+<p>the Rabble or Scum of
+the People, Tagrag and Longtail.</p>
+</div>
+<div class="entry">
+<h2>RIG</h2>
+<p>Game, Diversion, Ridicule.
+See <i>Fun</i>.</p>
+</div>
+<div class="entry">
+<h2>RIGGING</h2>
+<p>Cloaths.  <i class="eg">I'll unrig the
+Bloss</i>; I will strip the Wench.</p>
+</div>
+<div class="entry">
+<h2><i>Rum</i> RIGGING</h2>
+<p>fine Cloaths.  <i class="eg">The
+Cull has Rum Rigging, let's ding him,
+mill him, and pike</i>; The Man has very
+good Cloaths, let us knock him down,
+kill him, and scour off.
+</p>
+</div>
+<div class="entry">
+<h2>RING</h2>
+<p>Money extorted by Rogues
+on the Highway, or by Gentlemen
+Beggars.</p>
+</div>
+<div class="entry">
+<h2>ROAST-<i>Meat-Cloaths</i></h2>
+<p>Holiday-Cloaths.  <i class="eg">To rule the Roast</i>, To be master
+or Paramount.  <i class="eg">Roasted</i>, Arrested:
+<i class="eg">I'll Roast the Dab</i>, I will arrest the
+Rascal: To <i class="eg">Roast</i>, signifies also to rally;
+to teize, to hunt, or banter.</p>
+</div>
+<div class="entry">
+<h2>ROBERDS-<i>Men</i></h2>
+<p>mighty Thieves,
+like <i>Robin Hood</i>.</p>
+</div>
+<div class="entry">
+<h2>ROCHESTER-<i>Portion</i></h2>
+<p>two torn
+Smocks, and what Nature gave.</p>
+</div>
+<div class="entry">
+<h2>ROGER</h2>
+<p>a Portmanteau, a Goose;
+also a Man's Yard.  Likewise a Thief-taker.</p>
+</div>
+<div class="entry">
+<h2>ROGUE</h2>
+<p>a name which includes all
+the other Denominations.</p>
+</div>
+<div class="entry">
+<h2>ROMBOYL'D</h2>
+<p>sought after with a Warrant.</p>
+</div>
+<div class="entry">
+<h2>ROMBOYLES</h2>
+<p>Watch and Ward.</p>
+</div>
+<div class="entry">
+<h2>ROMER</h2>
+<p>a drinking Glass; also
+wider.</p>
+</div>
+<div class="entry">
+<h2>ROOK</h2>
+<p>a Cheat a Knave.  <i class="eg">To Rook</i>,
+To cheat or play the Knave.</p>
+</div>
+<div class="entry">
+<h2>ROSY-<i>Gills</i></h2>
+<p>sanguine or fresh colour'd</p>
+</div>
+<div class="entry">
+<h2>ROTAN</h2>
+<p>a Coach, or Waggon, any
+thing that runs upon Wheels; but
+prinicipally a Cart.</p>
+</div>
+<div class="entry">
+<h2>ROT-<i>Gut</i></h2>
+<p>very small or thin Beer.</p>
+</div>
+<div class="entry">
+<h2>ROVERS</h2>
+<p>Pyrates, Wanderers, Vagabonds.</p>
+</div>
+<div class="entry">
+<h2>ROUGH</h2>
+<p>as, <i class="eg">To lie Rough</i>, to lie in
+one's Cloaths all Night.</p>
+</div>
+<div class="entry">
+<h2>ROYSTERS</h2>
+<p>rude roaring Rogues.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> RUB</h2>
+<p>to run away.  <i class="eg">A Rub</i>, an
+Impediment, Obstacle, Hinderance,
+Stop, Hardship, or Difficulty.  <i class="eg">Rub on</i>,
+to live indifferently.  <i class="eg">Rub through the World</i>,
+to live tolerably well in it.</p>
+</div>
+<div class="entry">
+<h2><i>He</i> RUBS <i>us to the Whit</i></h2>
+<p>He sends us
+to <i>Newgate</i>.</p>
+</div>
+<div class="entry">
+<h2>RUFF</h2>
+<p>an old-fashioned double
+Band; from whence the Pillory is called, <i class="eg">The Wooden Ruff</i>.</p>
+</div>
+<div class="entry">
+<h2>RUFFIN</h2>
+<p>the Devil; as <i class="eg">The Ruffin
+nab the Cuffin Quire, and let the Harman
+beck trine with his Kinchins about
+his Col quarron</i>; i.e. Let the Devil take
+the Justice, and let the Constable hang
+with his Children about his Neck.</p>
+</div>
+<div class="entry">
+<h2>RUFFLERS</h2>
+<p>notorious Rogues,
+who, under Pretence of being maimed
+Soldiers or Seamen, implore the Charity
+of well disposed Persons, and fail
+not to watch Opportunities either to
+
+steal, break open Houses, or even
+commit Murder.</p>
+</div>
+<div class="entry">
+<h2>RUFFMANS</h2>
+<p>the Woods or Bushes.</p>
+</div>
+<div class="entry">
+<h2>RUFF-<i>Peck</i></h2>
+<p>Bacon.</p>
+</div>
+<div class="entry">
+<h2>RUG</h2>
+<p><i class="eg">It's all a Rug</i>, The Game is
+secured.</p>
+</div>
+<div class="entry">
+<h2>RUM</h2>
+<p>gallant, fine, rich, best or
+excellent.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Beck</i></h2>
+<p>any Justice of the Peace.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Bite</i></h2>
+<p>a clever Cheat, a neat
+Trick.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Bleating-Cheat</i></h2>
+<p>a very fat
+Weather. [[See Bleating-Cheat]]</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Blower</i></h2>
+<p>a veru handsom Mistress,
+kept by a particular Man.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Bluffer</i></h2>
+<p>a jolly Host, Inn-keeper, 
+or Victualler.</p>
+</div>
+<div class="entry">
+<h2>RUMBO</h2>
+<p>a Prison or Goal.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Bob</i></h2>
+<p>a young Apprentice;
+also a sharp, sly Trick.  Likewise a
+pretty short Wig.</p>
+</div>
+<div class="entry">
+<h2>RUM <i>Boile</i></h2>
+<p>a Ward or Watch.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Booze</i></h2>
+<p>Wine; also very good
+or string Drink.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Boozing-Welts</i></h2>
+<p>Bunches of Grapes.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Bubber</i></h2>
+<p>a dexterous Fellow at
+stealing Silver Tankards from Publick
+Houses.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Bughar</i></h2>
+<p>a very pretty and
+valuable Dog.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Bung</i></h2>
+<p>a full Purse.</p>
+</div>
+<div class="entry">
+<h2>RUMLY</h2>
+<p>bravely, cleverly, delicately, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Chub</i></h2>
+<p>which is, (among the
+Butchers) an ignorant Market-man or
+Woman, that is <i>bit</i> by them.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Clank</i></h2>
+<p>a large Silver Tankard.
+<i class="eg">Tip me a Rum-Clank of Bowse</i>; i.e. Give
+me a Double-tankard of Drink.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Clout</i></h2>
+<p>a Silk, fine Cambrick,
+or Holland Handkerchief.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Cod</i></h2>
+<p>a good Purse of Gold, or
+round Sum of Money.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Cole</i></h2>
+<p>new Money, or Medals
+curiously coin'd.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Cove</i></h2>
+<p>a great Rogue.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Cull</i></h2>
+<p>a rich Fool, that can be
+easily <i>bit</i>, or cheated by any body;
+also one that is very generous and kind
+to a Mistress.</p>
+</div>
+<div class="entry">
+<h2>RUM <i>Degen</i></h2>
+<p>a Silver-hilted or inlaid Sword.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Dell</i></h2>
+<p>the same as, <i>Rum-Doxy</i>.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Diver</i></h2>
+<p>a compleat or clever
+Pick-pocket, The same with <i>Files</i> or
+<i>Bung-nippers</i>.  Which see.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Doxy</i></h2>
+<p>a beautiful Woman,
+or light Lady.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Drawers</i></h2>
+<p>Silk Stokings, or
+very fine worsted Hose.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Dropper</i></h2>
+<p>a Vintner.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Dabber</i></h2>
+<p>an experienc'd or
+
+expert Picker of Locks.  The same
+with GILT, which see.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Duke</i></h2>
+<p>a jolly handsome Man,
+<i class="eg">Rum-Dukes</i>, the boldest or stoutest Fellows
+(lately) amongst the <i>Alsatians,
+Minters, Sawyards, &amp;c.</i> sent for to
+remove and guard the Goods of such
+Bankrupts as intended to take Sanctuary
+in those Places.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Dutchess</i></h2>
+<p>a jolly handsome Woman.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>File</i></h2>
+<p>the same as <i>Rum-diver</i>.</p>
+</div>
+<div class="entry">
+<h2>RUMFORD-<i>Lyon</i></h2>
+<p>a Calf.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Fun</i></h2>
+<p>a clever Cheat or sharp
+trick.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Gelt</i></h2>
+<p>the same as <i>Rum-Cole</i>.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Glimmer</i></h2>
+<p>the King or Chief
+of the Linkboys.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Gutlers</i></h2>
+<p>Canary-Wine; also
+fine Eating.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Hopper</i></h2>
+<p>a Drawer.  <i class="eg">Rum-hopper,
+tip us presently a Boozing-cheat of
+Rum gutlers</i>; Drawer, fill us presently
+a Bottle of the best Canary.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Kicks</i></h2>
+<p>Silver or Gold Brokade
+Breeches, or very rich with Gold or
+Silver Galloon.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Mawnd</i></h2>
+<p>one that counterfeits
+himself a Fool.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Mort</i></h2>
+<p>a Queen, or great Lady.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Nab</i></h2>
+<p>a Beaver, or very good Hat.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Nantz</i></h2>
+<p>true <i>French</i> Brandy.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Ned</i></h2>
+<p>a very silly Fellow.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Pad</i></h2>
+<p>the Highway.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Padders</i></h2>
+<p>the better Sort of
+Highwaymen, well mounted and armed.
+See <i>High Pad</i>.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Peepers</i></h2>
+<p>a Silver Looking-glass.</p>
+</div>
+<div class="entry">
+<h2>RUMP <i>and Kidney Men</i></h2>
+<p>Fidlers that
+play at Feasts, Fairs, Weddings &amp;c.
+and live chiefly on the Remnants of
+Victuals.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Prancer</i></h2>
+<p>a very beautiful Horse.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Quidds</i></h2>
+<p>a great Booty, or
+large Snack.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Ruff-Peck</i></h2>
+<p>Westphalia-Ham.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Squeeze</i></h2>
+<p>much Wine or good
+Liquor given among the Fidlers.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Snitch</i></h2>
+<p>a good Fillip on the
+Nose.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Tol</i></h2>
+<p>the same as <i>Rum-degen</i>,
+being the newest Cant Word of the two.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Tilter</i></h2>
+<p>the same as <i>Rum-tol</i>,
+or <i>Rum-degen</i>.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Topping</i></h2>
+<p>a rich Head-dress.</p>
+</div>
+<div class="entry">
+<h2>RUM-<i>Ville</i></h2>
+<p><i>London</i></p>
+</div>
+<div class="entry">
+<h2>Wiper</h2>
+<p>the same as <i>Rum-Clout</i></p>
+</div>
+<div class="entry">
+<h2><i>To</i> RUN-<i>Riot</i></h2>
+<p>to turn Spark, and
+run out of all.</p>
+</div>
+<div class="entry">
+<h2>RUNNING <i>Stationers</i></h2>
+<p>Hawkers, or
+those that cry News and Books about
+the Streets.</p>
+</div>
+<div class="entry">
+<h2>RUNNER</h2>
+<p>the same as <i>Budge</i>.</p>
+</div>
+<div class="entry">
+<h2>RUSTYGUTS</h2>
+<p>an old blunt Fellow.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letters.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letters.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letters.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1050 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>S</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter S</h1>
+<div class="entry">
+<h2>SACK</h2>
+<p>a Pocket.  <i class="eg">To Dive into his
+Sack</i>; To pick his Pocket.</p>
+</div>
+<div class="entry">
+<h2>SACK</h2>
+<p>also signifies to be drunk;
+As, <i class="eg">He bought the Sack</i>; i.e. He got
+drunk.</p>
+</div>
+<div class="entry">
+<h2>SALESMAN'S <i>Dog</i></h2>
+<p>the same as <i>Barker</i>.</p>
+</div>
+<div class="entry">
+<h2>SALAMON</h2>
+<p>the Beggar's Sacrament
+or Oath.</p>
+</div>
+<div class="entry">
+<h2>SCAB</h2>
+<p>a sorry Wench, or scoundrel Fellow.</p>
+</div>
+<div class="entry">
+<h2>SCANDALOUS</h2>
+<p>a sorry Perriwig.</p>
+</div>
+<div class="entry">
+<h2>SCANDAL-<i>Proof</i></h2>
+<p>a thorough-pac'd
+<i>Alsatian</i>, or <i>Minter</i>; one harden'd, or
+past Shame.</p>
+</div>
+<div class="entry">
+<h2>SCEW</h2>
+<p>See <i>Skew</i>.</p>
+</div>
+<div class="entry">
+<h2>SCHOOL <i>of Venus</i></h2>
+<p>a Bawdy-house.</p>
+</div>
+<div class="entry">
+<h2>SCONCE</h2>
+<p><i class="eg">To build a large sconce</i>;
+To run deep upon Tick or Trust.</p>
+</div>
+<div class="entry">
+<h2>SCOTCH <i>Fiddle</i></h2>
+<p>the Itch.</p>
+</div>
+<div class="entry">
+<h2>SCOTCH-<i>Mist</i></h2>
+<p>a sober, soaking
+Rain.</p>
+</div>
+<div class="entry">
+<h2>SCOUNDREL</h2>
+<p>a Hedge bird or sorry
+Scab.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SCOURE</h2>
+<p>to wear.  <i class="eg">To Scoure the
+Cramp-rings</i>; To wear Bolts.  Also
+to run away.  See <i>Scowre</i>.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SCOWRE</h2>
+<p>to run away or scamper.</p>
+</div>
+<div class="entry">
+<h2>SCOWRERS</h2>
+<p>Drunkards beating
+the Watch, breaking Windows, clearing
+the Streets, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>SCRAN</h2>
+<p>a Reckoning at a Boozing-ken, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>SCRAP</h2>
+<p>s Design, a purpos'd Villainy, a vile Intention; also a perpetrated
+Roguery: <i class="eg">He whiddles the whole
+Scrap</i>: He discovers all he knows.</p>
+</div>
+<div class="entry">
+<h2>SCRIP</h2>
+<p>a Shred or Scrap of Paper.
+As, <i class="eg">The Cully did freely blot the Scrip,
+and tipt me 40 Hogs</i>; One enter'd into
+Bond with me for 40 Shillings.</p>
+</div>
+<div class="entry">
+<h2>SCRUB</h2>
+<p>a Ragamuffin.</p>
+</div>
+<div class="entry">
+<h2>SCRUBADO</h2>
+<p>the Itch.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SCREW</h2>
+<p>to copulate with a
+Woman.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> SCREW</h2>
+<p>a Strumper, a common
+Prostitute.</p>
+</div>
+<div class="entry">
+<h2>SCUM</h2>
+<p>the Riff-raff, or Tagrag and
+Longtail.</p>
+</div>
+<div class="entry">
+<h2>SEALER</h2>
+<p>one that gives Bonds and
+Judgement for Goods and Money.</p>
+</div>
+<div class="entry">
+<h2>SECRET</h2>
+<p>as, <i class="eg">Let into the Secret</i>;
+When one is drawn in at Horse-racing,
+Cock-fighting, Bowling, and other
+such Sports or Games, and <i>bit</i>.</p>
+</div>
+<div class="entry">
+<h2>SEEDY</h2>
+<p>poor, Money-less, exhausted.</p>
+</div>
+<div class="entry">
+<h2>SERAGLIO</h2>
+<p>a Bawdy-house; so
+called from the Great Turk's Palace.</p>
+</div>
+<div class="entry">
+<h2>SERAGLIETTO</h2>
+<p>a lousy, vile,
+sorry Bawdy-house, a meer Dog-hole.</p>
+</div>
+<div class="entry">
+<h2>SET</h2>
+<p>as <i class="eg">Dead Set</i>, a Term used by
+Thief-catchers when they have a Certainty
+of seizing zome of their Clients,
+in order to bring them to Justice.</p>
+</div>
+<div class="entry">
+<h2>SETTERS</h2>
+<h2>or <i>Setting-dogs</i></h2>
+<p>they
+that draw in <i>Bubbles</i>, for old Gamesters
+to rook; also a Serjeant's Yeoman,
+or Bailiff's Follower, or Second.
+Also an Excise Officer.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SETTLE</h2>
+<p>to stun, or knock
+down; as, <i class="eg">We settled the Cull by a
+Stoter on his Nob</i>; i.e. We took him
+such a Blow on the Head, as quite stunn'd him.</p>
+</div>
+<div class="entry">
+<h2>SHABBY</h2>
+<p>in poor sorry Rigging.</p>
+</div>
+<div class="entry">
+<h2>SHABBEROON</h2>
+<p>a Ragamuffin.</p>
+</div>
+<div class="entry">
+<h2>SHAB'D-<i>Off</i></h2>
+<p>sneak'd, or fled away.</p>
+</div>
+<div class="entry">
+<h2>SHAG-<i>Bag</i></h2>
+<p>a poor shabby Fellow.</p>
+</div>
+<div class="entry">
+<h2>SHAM</h2>
+<p>a Cheat, or Trick. <i class="eg">To Cut a
+Sham</i>; To play a Rogue's Trick.</p>
+</div>
+<div class="entry">
+<h2>SHAMBLE-<i>Legg'd</i></h2>
+<p>one that goes
+wide, and shuffles his Feet about.
+<i class="eg">Shake your Shambles</i>; Haste, be gone.</p>
+</div>
+<div class="entry">
+<h2>SHAPPEAU</h2>
+<h2>or <i>Shappo</i></h2>
+<p>for <i>Chappeau</i>, F. a Hat.</p>
+</div>
+<div class="entry">
+<h2>SHARPER</h2>
+<p>a Cheat, one that lives by his Wits.</p>
+</div>
+<div class="entry">
+<h2>SHARPERS-<i>Tools</i></h2>
+<p>false Dice.</p>
+</div>
+<div class="entry">
+<h2>SHAVER</h2>
+<p><i class="eg">A cunning Shaver</i>; A
+subtle, smart Fellow.  <i class="eg">He shaves close</i>;
+He gripes, squeezes, or extorts very
+severely.</p>
+</div>
+<div class="entry">
+<h2>SHAVINGS</h2>
+<p>the Chippings of Money.</p>
+</div>
+<div class="entry">
+<h2>SHE-<i>Napper</i></h2>
+<p>a Woman Thief-catcher; also
+a Hen-bawd, or Procuress;
+a Debaucher of young Virgins; a
+Maiden head-jobber.</p>
+</div>
+<div class="entry">
+<h2>SHOP</h2>
+<p>a Prison.</p>
+</div>
+<div class="entry">
+<h2>SHOP-<i>Lift</i></h2>
+<p>one that Steals under
+pretence of cheap'ning.</p>
+</div>
+<div class="entry">
+<h2>SHOPT</h2>
+<p>imprison'd.</p>
+</div>
+<div class="entry">
+<h2>SHOT</h2>
+<p>as, <i class="eg">To pay one's Shot</i>; To
+pay one's Club or Proportion.</p>
+</div>
+<div class="entry">
+<h2>SHOT <i>'twixt Wind and Water</i></h2>
+<p>Clapt or Pox'd.</p>
+</div>
+<div class="entry">
+<h2>SHOULDER-<i>Clapper</i></h2>
+<p>a Serjeant or Bailiff.</p>
+</div>
+<div class="entry">
+<h2>SHOULDER-<i>Sham</i></h2>
+<p>a Partner to a <i>File</i>.</p>
+</div>
+<div class="entry">
+<h2>SHRED</h2>
+<p>a Taylor.</p>
+</div>
+<div class="entry">
+<h2>SHUFFLER</h2>
+<h2>or <i>Shuffling-Fellow</i></h2>
+<p>a slippery, shifting Fellow.</p>
+</div>
+<div class="entry">
+<h2>SHURK</h2>
+<p>a Shark or Sharper.</p>
+</div>
+<div class="entry">
+<h2>SICE</h2>
+<p>Six-pence.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SILENT <i>a Man</i></h2>
+<p>to knock him
+down, so as to stun him: To lay him
+down for dead.  <i class="eg">See the Cull is Silent</i>,
+is also us'd by desperate Villains, for
+cutting the Throat, or shooting the
+unhappy Person who falls in their way.</p>
+</div>
+<div class="entry">
+<h2>SILK <i>Snatchers</i></h2>
+<p>a Set of Varlets,
+who snatch Hoods, Scarves, Handkerchiefs,
+or any Thing they can come at.</p>
+</div>
+<div class="entry">
+<h2>SIMKIN</h2>
+<p>a Fool.</p>
+</div>
+<div class="entry">
+<h2>SIMON</h2>
+<p>Six-pence.</p>
+</div>
+<div class="entry">
+<h2>SINGLE-<i>Ten</i></h2>
+<p>a very foolish, silly Fellow.</p>
+</div>
+<div class="entry">
+<h2>SIR JOHN</h2>
+<p>the Country-Vicar or Parson.</p>
+</div>
+<div class="entry">
+<h2>SIR TIMOTHY</h2>
+<p>one that treats
+every Body, and pays the Reckonings
+every where.</p>
+</div>
+<div class="entry">
+<h2>SKEW</h2>
+<p>a Beggar's wooden Dish.</p>
+</div>
+<div class="entry">
+<h2>SKIN-<i>Flint</i></h2>
+<p>a griping, sharping,
+close-fisted Fellow.</p>
+</div>
+<div class="entry">
+<h2>SKINKER</h2>
+<p>that fills the Glass or Cup.
+<i class="eg">Who Skinks?</i>  Who pours out the Liquor.</p>
+</div>
+<div class="entry">
+<h2>SKIP-<i>Jacks</i></h2>
+<p>Yougsters that ride
+Horses for Sale.</p>
+</div>
+<div class="entry">
+<h2>SKIPPER</h2>
+<p>a Barn.</p>
+</div>
+<div class="entry">
+<h2>SKRIP</h2>
+<p>Paper.</p>
+</div>
+<div class="entry">
+<h2>SLAM</h2>
+<p>a Trick; also also a Game intirely
+lost, without getting one on that
+Side.</p>
+</div>
+<div class="entry">
+<h2>SLAT</h2>
+<p>a Sheet.</p>
+</div>
+<div class="entry">
+<h2>SLATE</h2>
+<p>a half Crown; also the
+same as <i class="eg">Slot</i>.</p>
+</div>
+<div class="entry">
+<h2>SLEEPING-<i>House</i></h2>
+<p>without Shop,
+Warehouse or Cellar, only for a private Family.</p>
+</div>
+<div class="entry">
+<h2>SLOUCH</h2>
+<p>See <i>Zlouch</i>.</p>
+</div>
+<div class="entry">
+<h2>SLUBBER-<i>Degullion</i></h2>
+<p>a slovenly,
+dirty, nasty Fellow.</p>
+</div>
+<div class="entry">
+<h2>SLUR</h2>
+<p>a Cheat at Dice; also a slight
+Scandal or Affront.</p>
+</div>
+<div class="entry">
+<h2>SLY-<i>Boots</i></h2>
+<p>a seeming silly, but subtle Fellow.</p>
+</div>
+<div class="entry">
+<h2>SMACKING-<i>Cove</i></h2>
+<p>a Coachman.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SMASH</h2>
+<p>to quell, to beat or
+abuse violently; to kill.</p>
+</div>
+<div class="entry">
+<h2>SMASH</h2>
+<p>to smite, to kick down
+Stairs.  <i class="eg">The Chubs tout the Blosses, they
+smash them, and make them brush</i>; The
+Sharpers catch their Mistress at the
+Tavern, making merry without them,
+kick them down Stairs, and force
+them to rub off.</p>
+</div>
+<div class="entry">
+<h2>SMEAR</h2>
+<p>a Painter, or Plaisterer,
+&amp;c.</p>
+</div>
+<div class="entry">
+<h2>SMELLER</h2>
+<p>a Nose.</p>
+</div>
+<div class="entry">
+<h2>SMELLING-<i>Cheat</i></h2>
+<p>a Nose-gay; also
+an Orchard or Garden.</p>
+</div>
+<div class="entry">
+<h2>SMELTS</h2>
+<p>Half-Guineas.</p>
+</div>
+<div class="entry">
+<h2>SMITER</h2>
+<p>an Arm.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SMOKE</h2>
+<p>to suspect or smell a Design.
+<i class="eg">It is smok'd</i> It is made Publick, all
+have Notice.</p>
+</div>
+<div class="entry">
+<h2>SMOKER</h2>
+<p>a Tobacconist.</p>
+</div>
+<div class="entry">
+<h2>SMOKY</h2>
+<p>Jealous, as, <i class="eg">He is a smoky
+Cull</i>; He is a suspicious Fellow.</p>
+</div>
+<div class="entry">
+<h2>SMUG</h2>
+<p>a Blacksmith.</p>
+</div>
+<div class="entry">
+<h2>SMUGGLING-KEN</h2>
+<p>a Bawdy-house.</p>
+</div>
+<div class="entry">
+<h2>SMUTTY</h2>
+<p>Bawdy.</p>
+</div>
+<div class="entry">
+<h2>SNACK</h2>
+<p>Share or Part.  <i class="eg">To go snacks</i>.
+To go halves, or Share and Share alike.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SNABBLE</h2>
+<p>to rifle, to strip, or
+plunder.  <i class="eg">To Snabble a Poll</i>, to run
+away with a Peruke or Head-dress.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SNAFFLE</h2>
+<p>to steal, to rob, to
+purloin.  <i class="eg">A snaffler of Prancers</i>; a
+Horse-Stealer.  <i class="eg">Snuffle</i>, is also a Highwayman
+that has got a Booty.</p>
+</div>
+<div class="entry">
+<h2>SNAPT</h2>
+<p>taken, caught.</p>
+</div>
+<div class="entry">
+<h2>SNEAK</h2>
+<p><i class="eg">He goes upon the Sneak at
+Darkmans</i>, He privately gets into Houses
+or Shops at Night and Steals undiscovered.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> SNEAKING <i>Budge</i></h2>
+<p>one that robs
+alone, and deals chiefly in petty Larcenies.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SNIC</h2>
+<p>to cut.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SNILCH</h2>
+<p>to eye or see any Body.
+<i class="eg">The Cull snilches</i>; the Man eyes or sees
+you.</p>
+</div>
+<div class="entry">
+<h2>SNIP</h2>
+<p>a Cheat; <i class="eg">T snip</i>, to cheat.</p>
+</div>
+<div class="entry">
+<h2>SNITCH</h2>
+<h2>or <i>Snitchel</i></h2>
+<p>a Filip on the
+Nose.</p>
+</div>
+<div class="entry">
+<h2>SNITE</h2>
+<p>to wipe, or flap.  <i class="eg">Snite his
+Snitch</i>; wipe his Nose, or give him a
+good Flap on the Face.</p>
+</div>
+<div class="entry">
+<h2>SNOUT</h2>
+<p>a Hogshead.</p>
+</div>
+<div class="entry">
+<h2>SNOW-<i>Broth</i></h2>
+<p>Snow-water.</p>
+</div>
+<div class="entry">
+<h2>SNUDGE</h2>
+<p>one that lurks under a
+Bed, to watch an Opportunity to rob
+the House.</p>
+</div>
+<div class="entry">
+<h2>SNUG</h2>
+<p><i class="eg">All's snug</i>; All's quiet, used
+by Villains, when every thing is silent
+and they hear no body stir to oppose
+their intended Rogueries.</p>
+</div>
+<div class="entry">
+<h2>SOCK</h2>
+<p>a Pocket.  <i class="eg">Not a Rag in my
+Sock</i>; I han't a Farthing in my Pocket.
+Also beat; <i class="eg">I'll Sock ye</i>; I'll drub
+ye tightly.</p>
+</div>
+<div class="entry">
+<h2>SOCKET <i>Money</i></h2>
+<p>demanded and
+spent upon <i>Marriage</i>.</p>
+</div>
+<div class="entry">
+<h2>SOLDIERS-<i>Bottle</i></h2>
+<p>a large one.</p>
+</div>
+<div class="entry">
+<h2>SOLOMON</h2>
+<h2>or <i>Soloman</i></h2>
+<p>the Mass.</p>
+</div>
+<div class="entry">
+<h2>SON <i>of Apollo</i></h2>
+<p>a Scholar.</p>
+</div>
+<div class="entry">
+<h2>SON <i>of Mars</i></h2>
+<p>a Soldier.</p>
+</div>
+<div class="entry">
+<h2>SON <i>of Venus</i></h2>
+<p>a Lover of Women.</p>
+</div>
+<div class="entry">
+<h2>SON <i>of Mercury</i></h2>
+<p>a Wit.  Also a
+Thief.</p>
+</div>
+<div class="entry">
+<h2>SON <i>of Prattlement</i></h2>
+<p>a Lawyer.</p>
+</div>
+<div class="entry">
+<h2>SOUL-<i>Driver</i></h2>
+<p>a Parson.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> SOUL</h2>
+<p>one that loves Brandy.</p>
+</div>
+<div class="entry">
+<h2>SOULDIER's <i>Mawnd</i></h2>
+<p>a counterfeit
+Sore or Wound in the left Arm.</p>
+</div>
+<div class="entry">
+<h2>SOUSE</h2>
+<p><i class="eg">Not a Souse</i>; not a Penny.
+From <i>Sous</i>, <i>French</i> Money.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SOUDSE</h2>
+<p>to fall upon, to beat
+cruelly; also to plunder or kill.</p>
+</div>
+<div class="entry">
+<h2>SOUTH-SEA</h2>
+<p>a strong distill'd Liquor,
+so called by the Inhabitants and
+Clients of <i>Newgate</i>, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>SOUTH-SEA <i>Mountain</i></h2>
+<p>Geneva.</p>
+</div>
+<div class="entry">
+<h2>SOW's <i>Baby</i></h2>
+<p>a Pig.</p>
+</div>
+<div class="entry">
+<h2>SOWSE <i>Crown</i></h2>
+<p>a Fool.</p>
+</div>
+<div class="entry">
+<h2>SOW-<i>Child</i></h2>
+<p>a Female Child.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SOWR</h2>
+<p>to beat violently, &amp;c.
+As, <i class="eg">Sowr the Cull</i>; <i>i. e.</i> knock him
+down: Beat him without Mercy, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>SPANGLES</h2>
+<p>Ends of Gold or Silver.</p>
+</div>
+<div class="entry">
+<h2>SPANISH-<i>Gout</i></h2>
+<p>the Pox.</p>
+</div>
+<div class="entry">
+<h2>SPANISH-<i>Money</i></h2>
+<p>fair Words and
+Compliments.</p>
+</div>
+<div class="entry">
+<h2>SPANKS</h2>
+<p>Money, Gold or Silver.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SPEAK <i>with</i></h2>
+<p>to steal.</p>
+</div>
+<div class="entry">
+<h2>SPECKT-<i>Wiper</i></h2>
+<p>a coloured Handkerchief.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SPIRIT-<i>Away</i></h2>
+<p>the same as<i>Kidnap</i>.</p>
+</div>
+<div class="entry">
+<h2>SPIRITUAL-<i>Flesh Broker</i></h2>
+<p>a Parson.</p>
+</div>
+<div class="entry">
+<h2>SPLIT-<i>Fig</i></h2>
+<p>a Grocer.</p>
+</div>
+<div class="entry">
+<h2>SPLITTER-<i>of-Causes</i></h2>
+<p>a Lawyer.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SPRING <i>a Partridge</i></h2>
+<p>to draw a
+Person in to be bit.  <i class="eg">To spring Partridges</i>;
+to raise a Crowd in order to
+rob or pick Pockets.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SPUNGE</h2>
+<p>to drink at others Cost.</p>
+</div>
+<div class="entry">
+<h2>SPUNGING-<i>House</i></h2>
+<p>a By-prison.</p>
+</div>
+<div class="entry">
+<h2><i>A</i> SPUNGING <i>Fellow</i></h2>
+<p>one tat lives
+upon the rest, and pays nothing.</p>
+</div>
+<div class="entry">
+<h2>SQUAB</h2>
+<p>a very fat, truss Person; a
+new-hatch'd Chick; also a Couch.</p>
+</div>
+<div class="entry">
+<h2>SQUAWL</h2>
+<p>a Voice; as, <i class="eg">The Cove has
+a bien Squawl</i>; The Fellow has a good
+Voice.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SQUEEK</h2>
+<p>to discover, or impeach;
+also to cry out.  <i class="eg">They squeek
+Beef upon us</i>; They cry out Highway-men
+or Thieves after us.  <i class="eg">The Cull
+squeeks</i>; The Rogue peaches.</p>
+</div>
+<div class="entry">
+<h2>SQUEEKER</h2>
+<p>a Barboy; also a Bastard,
+or any other Child.  <i class="eg">Stifle the
+Squueker</i>; Murder the Child, and
+throw it into a House of Office.</p>
+</div>
+<div class="entry">
+<h2>SQUEEZING <i>of Wax</i></h2>
+<p>being bound
+for any Body; also sealing of Writings.</p>
+</div>
+<div class="entry">
+<h2>SQUINTE-<i>Fuego</i></h2>
+<p>one that squints
+very much.</p>
+</div>
+<div class="entry">
+<h2>SQUIRE <i>of Alsatia</i></h2>
+<p>a Man of Fortune,
+drawn in, cheated, and ruin'd by
+a Pack of poor, lowsy, spunging Fellows,
+that lived (formerly) in <i>White-Fryars</i>.
+<i class="eg">The Squire</i>, a Sir <i>Timothy
+Treat-all</i>; also a Sap-Pate.  <i class="eg">A fat
+Squire</i>; A rich Fool.</p>
+</div>
+<div class="entry">
+<h2>SQUIRISH</h2>
+<p>foolish; also one that
+
+pretends to pay all Reckonings, and is
+not strong enough in the Pocket.</p>
+</div>
+<div class="entry">
+<h2>STAG</h2>
+<p>a Term (inverting Qualities)
+used for an Enemy, a Pursuer;
+as, <i class="eg">I spy a Stag</i>, used by that notorious
+young Robber <i>Shepherd</i>, lately executed,
+when he first saw the Turnkey
+of <i>Newgate</i>, who pursu'd and took
+him after his first Escape from the <i>Condemn'd Hold</i>.</p>
+</div>
+<div class="entry">
+<h2>STALE <i>Jest</i></h2>
+<p>old, dull.</p>
+</div>
+<div class="entry">
+<h2>STALE <i>Maid</i></h2>
+<p>at her last Prayers.</p>
+</div>
+<div class="entry">
+<h2>STALLION</h2>
+<p>a Whore-Master; so
+called from a Stone-horse kept to cover
+Mares.</p>
+</div>
+<div class="entry">
+<h2>STALL-<i>Whimper</i></h2>
+<p>a Bastard.</p>
+</div>
+<div class="entry">
+<h2>STALLING</h2>
+<p>making or ordaining.</p>
+</div>
+<div class="entry">
+<h2>STALLNG-<i>Ken</i></h2>
+<p>a Broker's Shop,
+or any House that receives stollen
+Goods.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> STAM-<i>Flesh</i></h2>
+<p>to Cant; as, <i class="eg">The
+Cully Stamfleshes rumly</i>; He cants very
+well.</p>
+</div>
+<div class="entry">
+<h2>STAMMEL</h2>
+<h2>or <i>Strammel</i></h2>
+<p>a brawny,
+lusty, strapping Wench.</p>
+</div>
+<div class="entry">
+<h2>STAMPS</h2>
+<p>Legs.</p>
+</div>
+<div class="entry">
+<h2>STAMPERS</h2>
+<p>Shoes; also Carriers.</p>
+</div>
+<div class="entry">
+<h2>STARTER</h2>
+<p>a Question; also a Flincher.
+<i class="eg">I am no Starter</i>; I shan't flinch,
+or cry to go home.</p>
+</div>
+<div class="entry">
+<h2>STICK <i>Flams</i></h2>
+<p>a Pair of Gloves.</p>
+</div>
+<div class="entry">
+<h2>STINGO</h2>
+<p>humming, strong Liquor.</p>
+</div>
+<div class="entry">
+<h2>STITCH-<i>Back</i></h2>
+<p>very strong Ale.</p>
+</div>
+<div class="entry">
+<h2>STOCK-<i>Drawers</i></h2>
+<p>Stockings.</p>
+</div>
+<div class="entry">
+<h2>STONE-<i>Dead</i></h2>
+<p>quite dead.</p>
+</div>
+<div class="entry">
+<h2>STONE <i>Doublet</i></h2>
+<p>a Prison.</p>
+</div>
+<div class="entry">
+<h2>STOP</h2>
+<p>as, <i class="eg">I have stopt his Blubber</i>;
+I have stopt his Mouth.</p>
+</div>
+<div class="entry">
+<h2>STOP-<i>Hole Abbey</i></h2>
+<p>the Nick-name of
+the chief Rendezvous of the Canting
+Crew of <i>Gypsies</i>, <i>Cheats</i>,
+<i>Thieves</i>, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>STOTER</h2>
+<p>a great Blow.  <i class="eg">Stoter
+him</i>, or, <i class="eg">Tip him a Stoter</i>; Settle him;
+give him a swinging Blow.</p>
+</div>
+<div class="entry">
+<h2>STOW</h2>
+<p><i>i.e.</i> You have said enough.
+<i class="eg">Stow you, bene Cove</i>; Hold your Peace,
+good Fellow.  <i class="eg">Stow your Whids and
+plant them; for the Cove of the Ken can
+cant them</i>; Take care what you say;
+for the Man of the House understands
+you.</p>
+</div>
+<div class="entry">
+<h2>STRAPPING</h2>
+<p>lying with a Wench.</p>
+</div>
+<div class="entry">
+<h2>STRAPPING-<i>Lass</i></h2>
+<p>a swinging two-handed Woman.</p>
+</div>
+<div class="entry">
+<h2>STRETCHING</h2>
+<p>hanging.  <i class="eg">He will
+stretch for it</i>; He will be hang'd.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> STRETCH</h2>
+<p>to tell a Lye; as,
+<i class="eg">He stretcht hard</i>; He told a whicking
+Lye.</p>
+</div>
+<div class="entry">
+<h2>STRIKE</h2>
+<p>to beg or rob; also to
+borrow Money.  <i class="eg">Strike all the Cheats</i>;
+Rob all that you meet.  <i class="eg">Strike the Cull</i>;
+
+Beg of that Gentleman.  <i class="eg">Strike the
+Cloy</i>; Get the Fellow's Money from
+him.  <i class="eg">He has struck the Quidds</i>; He has
+got the Money from him.  <i class="eg">He strikes
+every Body</i>; He borrows Money every
+where; he runs in every one's Debt.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> STRIP</h2>
+<p>to rob or <i>gut</i> a House,
+to unrig any Body; or to <i>bite</i> them of
+their Money.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> STRIP <i>the Ken</i></h2>
+<p>To <i>gut</i> the
+House.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> STRIP <i>the Table</i></h2>
+<p>To win all
+the Money on the Place.  <i class="eg">We have stript
+the Cull</i>; We have got all the Fool's
+Money.  <i class="eg">The Cove's stript</i>; The Rogue
+has not a <i>Jack</i> left to help himself.</p>
+</div>
+<div class="entry">
+<h2>STROMMEL</h2>
+<p>Strap, or Hair, as,
+<i class="eg">She hath good Store of Strommel on her
+Nob</i>.</p>
+</div>
+<div class="entry">
+<h2>STROWLERS</h2>
+<p>Vagabonds, Itinerants,
+Men of no settled Abode, of a
+precarious Life, Wanderers of Fortune,
+such as Gypsies, Beggars, Pedlars,
+Hawkers, Mountebanks, Fidlers,
+Country-Players, Rope-dancers, Jugglers,
+Tumblers, Shewers of Tricks,
+and Raree-show-men.</p>
+</div>
+<div class="entry">
+<h2>STROWLING-<i>Morts</i></h2>
+<p>who,
+pretending to be Widows, often travel
+the Countries, making Laces upon
+Yews, Beggar's-tape, &amp;c.  Are light-finger'd,
+subtle, hypocritical, cruel,
+and often dangerous to meet, especially
+when a <i>Ruffler</i> is with them.</p>
+</div>
+<div class="entry">
+<h2>STRUM</h2>
+<p>a Ferriwig.  <i class="eg">Rum-strum</i>;
+A long Wig.  Also a handsome Wench,
+or Strumpet.</p>
+</div>
+<div class="entry">
+<h2>STUBBLE-<i>It</i></h2>
+<p>Hold your Tongue.</p>
+</div>
+<div class="entry">
+<h2>STULING-<i>Ken</i></h2>
+<p>the same as <i>Stalling Ken</i>.  Which see.</p>
+</div>
+<div class="entry">
+<h2>SUCK</h2>
+<p>Wine or strong Drink.  <i class="eg">This
+is rum Suck</i>; It is excellent Tipple.
+<i class="eg">We'll go and Suck our Faces; but if they
+toute us, we'll take Rattle, and brush</i>;
+Let's go to drink and be merry; but if
+we be smelt by the People of the
+House, we must scowre off.  <i class="eg">He loves
+to Suck his Face</i>; He delights in Drinking.</p>
+</div>
+<div class="entry">
+<h2>SUCKY</h2>
+<p>drunkish, maudling, half-Seas over.</p>
+</div>
+<div class="entry">
+<h2>SUIT <i>and Cloak</i></h2>
+<p>good Store of
+Brandy or any agreeable Liquor.</p>
+</div>
+<div class="entry">
+<h2>SUN-<i>Burnt</i></h2>
+<p>clapt.</p>
+</div>
+<div class="entry">
+<h2>SUNNY-<i>Bank</i></h2>
+<p>a good, rousing
+Winter-Fire.</p>
+</div>
+<div class="entry">
+<h2>SUPERNACULUM</h2>
+<p>not so much as
+a Drop left to be poured upon the
+Thumb nail, so cleverly was the Liquor
+tipt off.</p>
+</div>
+<div class="entry">
+<h2>SU-POUCH</h2>
+<p>an Hostess or Landlady.</p>
+</div>
+<div class="entry">
+<h2>SUTLER</h2>
+<p>he that pockets up Gloves,
+Knives, Handkerchiefs, Snuff and Tobacco-boxes,
+
+and other lesser Moveables.</p>
+</div>
+<div class="entry">
+<h2>SWADDLERS</h2>
+<p>Rogues, who, not
+content to rob and plunder, beat and
+barbarously abuse, andoften murder
+the Passengers.  Hence, <i class="eg">To seaddle</i>;
+To beat lustily with a Cane, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>SWAG</h2>
+<p>a Shop.  <i class="eg">Rum Swag</i>; Full
+of rich Goods.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SWAGGER</h2>
+<p>to vapour or bounce.</p>
+</div>
+<div class="entry">
+<h2>SWEET</h2>
+<p>easy to be taken in; Also
+expert, dexterous, clever: As, <i class="eg">Sweet's
+your Hand</i>; said of one who has the
+Knack of stealing by Sleight of Hand.</p>
+</div>
+<div class="entry">
+<h2>SWEETNERS</h2>
+<p>Guinea-droppers,
+Cheats, Sharpers.  <i class="eg">To Sweeten</i>; To
+decoy, draw in, and <i>bute</i>.  <i class="eg">To be sweet
+upon</i>; To coax, wheedle,entice or
+allure.</p>
+</div>
+<div class="entry">
+<h2>SWIG</h2>
+<p>a draught of Liquor; <i class="eg">To
+swig it off</i>; To drink it all up.</p>
+</div>
+<div class="entry">
+<h2>SWIG-<i>Men</i></h2>
+<p>carrying small Haberdashery-Wares about, pretending to
+sell them, to colour their Roguery.
+Fellows crying <i>Old Shoes, Boots, or
+brooms</i>; and thos pretending to buy
+<i>Old Suits, Hats</i> or <i>Cloaks</i>, are also
+called <i>Swig-Men</i>, and oftentimes, if
+an Opportunity offers, make all Fish
+that comes to Net.</p>
+</div>
+<div class="entry">
+<h2>SWINDGING-<i>Clap</i></h2>
+<h2><i>Swindging Fellow</i></h2>
+<h2><i>Swindging Lye</i></h2>
+<p>a very great one.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> SWINDE <i>one off</i></h2>
+<p>to beat him soundly.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettert.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettert.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettert.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,704 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>T</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter T</h1>
+<div class="entry">
+<h2>TACKLE</h2>
+<p>a Mistress; also good
+Cloaths.  <i class="eg">The Cull has tipt his Tackle
+Rum-rigging</i>, or <i class="eg">has tipt his Bloss
+Rum Tackle</i>; The keeping Coxcomb
+has given his Mistress very fine Cloaths.</p>
+</div>
+<div class="entry">
+<h2>TAKE <i>the Culls in</i></h2>
+<p>Seize the Men
+in order to rob them.</p>
+</div>
+<div class="entry">
+<h2>TALE-<i>Tellers</i></h2>
+<p>a sort of Servants in
+use with the great Men in <i>Ireland</i>, to
+lull them asleep with Stories of a Cock
+and a Bull, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>TALESMAN</h2>
+<p>as, <i class="eg">I tell you my Tale,
+and my Talesman</i>, or Author.</p>
+</div>
+<div class="entry">
+<h2>TALL-<i>Boy</i></h2>
+<p>a Pottle or two Quart
+Pot.</p>
+</div>
+<div class="entry">
+<h2>TALLY-<i>Men</i></h2>
+<p>Brokers that let out
+Cloaths to wear <i>per</i> Week, Month or
+Year.  See <i>Rabbit-Suckers</i>.</p>
+</div>
+<div class="entry">
+<h2>TAP</h2>
+<p>a Blow; a small Tap, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>TAPE, <i>Red</i> or <i>White</i></h2>
+<p>Geneva,
+Aniseed, Clove water, so called by
+<i>Canters</i> and <i>Villains</i>, and the Renters
+
+of the Trap, &amp;c. in <i>Newgate</i>, ans other
+Prisons.</p>
+</div>
+<div class="entry">
+<h2>TAPLASH</h2>
+<p>wretched, sorry Drink,
+or Hogwash.</p>
+</div>
+<div class="entry">
+<h2>TART <i>Dames</i></h2>
+<p>sharp, quick, pert.</p>
+</div>
+<div class="entry">
+<h2>TARTAR</h2>
+<p>a notorious Rogue or
+Sharper, who sticks not to rob his
+Brother Rogue.  Hence <i class="eg">To catch a
+Tartar</i>, is said, among the Canting
+Varlets, when a Rogue attacks one
+that he thinks a Passenger, but proves
+to be of this Clan of Villains, who in
+his Turn having overcome the Assailant,
+robs, plunders and binds him.</p>
+</div>
+<div class="entry">
+<h2>TATTER-<i>De-mallion</i></h2>
+<p>a tattered
+Beggar, sometimes half naked, with
+Design to move Charity, having better
+Cloaths at Home.  <i class="eg">in Tatters</i>; in Rags.
+<i class="eg">Tattered and Torn</i>; rent and torn.</p>
+</div>
+<div class="entry">
+<h2>TATTLE</h2>
+<h2>or <i>Tattler</i></h2>
+<p>an Alarum,
+or striking Watch; or indeed any
+other Watch.</p>
+</div>
+<div class="entry">
+<h2>TATS</h2>
+<p>false Dice.</p>
+</div>
+<div class="entry">
+<h2>TAUDRY</h2>
+<p>garish, gawdy, with
+Lace, or mismatched and staring Colours:
+A Term borrow'd from those
+Times when they trick'd and bedeck'd
+the Shrines and Altars of the Saints, as
+being at Emulation with each other
+upon that Occasion.  The Votaries of
+St. <i>Audery</i> (in Isle of <i>Ely</i> Saint) exeeding
+all the rest in the Dress and
+Equipage of their Altar, it grew into a
+By-word, upon any thing very gawdy,
+that it was <i>All Taudry</i>; as much as to
+say, <i class="eg">All St. Audery</i>.</p>
+</div>
+<div class="entry">
+<h2>TAYLE</h2>
+<p>a Sword.</p>
+</div>
+<div class="entry">
+<h2>TAYLE <i>Drawers</i></h2>
+<p>Sword-Stealers.
+The same as <i>Wiper-Drawers</i>.  <i class="eg">He drew
+the Cull's Tayle Rumly</i>; He whipt away
+the Gentleman's Sword cleverly.</p>
+</div>
+<div class="entry">
+<h2>TEAGUE-<i>Land</i></h2>
+<p>Ireland.</p>
+</div>
+<div class="entry">
+<h2>TEAGUE-<i>Landers</i></h2>
+<p>Irishmen.</p>
+</div>
+<div class="entry">
+<h2>TEARS <i>of the Tankard</i></h2>
+<p>Drops of
+the good Liquor that fall beside.</p>
+</div>
+<div class="entry">
+<h2>TEMPLE <i>Pickling</i></h2>
+<p>the Pumping of
+Bailiffs, Bums, Setters, Pick-Pockets,
+&amp;c.</p>
+</div>
+<div class="entry">
+<h2>TENDER-<i>Parnel</i></h2>
+<p>a very nicely educated
+Creature, apt to catch cold on
+the least Puff of Wind.</p>
+</div>
+<div class="entry">
+<h2>TERCEL <i>Gentle</i></h2>
+<p>a Knight or Gentleman
+of a good Estate; also any
+rich Man.</p>
+</div>
+<div class="entry">
+<h2>TERRA-<i>Firma</i></h2>
+<p>an Estate in Land;
+<i class="eg">Has the Cull got any Terra Firma?</i>  Has the
+Fool got any Land.</p>
+</div>
+<div class="entry">
+<h2>THE <i>Dragon upon St. George</i></h2>
+<p>the Woman uppermost.</p>
+</div>
+<div class="entry">
+<h2>THIEF-<i>Takers</i></h2>
+<p>who make a Trade
+of helping People (for a Gratuity) to
+
+their lost Goods and sometimes, for
+Interest, or Envy, snapping the Rogues
+themselves, being usually in Fee with
+them, and acquainted with their Haunts.</p>
+</div>
+<div class="entry">
+<h2>THOROUGH-<i>Cough</i></h2>
+<p>farting and
+coughing at the same time.</p>
+</div>
+<div class="entry">
+<h2>THOROUGH <i>Passage</i></h2>
+<p>in at one Ear
+and out at t'other.</p>
+</div>
+<div class="entry">
+<h2>THOROUGH <i>Stitch</i></h2>
+<p>over Shoes,
+over Boots.</p>
+</div>
+<div class="entry">
+<h2>THREE <i>Legged Stool</i></h2>
+<h2>or <i>Three legged Mare</i></h2>
+<p>Tyburn.</p>
+</div>
+<div class="entry">
+<h2>THREE <i>Threads</i></h2>
+<p>half common Ale,
+and half Stout or double Beer.</p>
+</div>
+<div class="entry">
+<h2>THREPPS</h2>
+<p>Three-pence.</p>
+</div>
+<div class="entry">
+<h2>THROTTLE</h2>
+<p>Throat or Gullet; <i class="eg">He
+siezed is Throttle</i>: i.e. He took him
+by the Throat.</p>
+</div>
+<div class="entry">
+<h2>THRUMS</h2>
+<p>Three Pence.  <i class="eg">Tip me
+Thrums</i>; Lend me Three Pence.</p>
+</div>
+<div class="entry">
+<h2>THUMMIKINS</h2>
+<p>a Punishment (in
+<i>Scotland</i>) by hard squeezing or pressing
+of the Thumbs, to extort Confession,
+which stretches them prodigiously,
+and is very painful.  In Camps,
+and on Board of Ships, lighted Matches
+are clapt between the Fingers to the
+same Intent.</p>
+</div>
+<div class="entry">
+<h2>THWACK</h2>
+<p>to beat with a Stick or
+Cudgel.</p>
+</div>
+<div class="entry">
+<h2>TIB</h2>
+<p>a young Lass.</p>
+</div>
+<div class="entry">
+<h2>TIB <i>of the Buttery</i></h2>
+<p>a Goose.</p>
+</div>
+<div class="entry">
+<h2>TICK</h2>
+<p>as, <i class="eg">to run on Tick</i>; To go on
+the Score, or Trust.</p>
+</div>
+<div class="entry">
+<h2>TICKLE-<i>Pitcher</i></h2>
+<p>a Tosspot, or Pot-companion.
+A lewd Man or Woman.</p>
+</div>
+<div class="entry">
+<h2>TICKRUM</h2>
+<p>a Licence.</p>
+</div>
+<div class="entry">
+<h2>TIFFING</h2>
+<p>lying with a Wench, also
+Drinking.</p>
+</div>
+<div class="entry">
+<h2>TILTER</h2>
+<p>a Sword.  <i class="eg">To Tilt</i>, to fight
+with a Rapier.  <i class="eg">Run a Tilt</i>; a swift
+Pursuit.</p>
+</div>
+<div class="entry">
+<h2>TINT <i>for Tant</i></h2>
+<p>Hit for Hit, Dash
+for Dash.</p>
+</div>
+<div class="entry">
+<h2>TIP</h2>
+<p>to give or lend: <i class="eg">Tip your Lour</i>
+or <i class="eg">Cole or I'll mill ye</i>; Give me your
+Money, or I'll kill ye.  <i class="eg">Tip the COle to
+Adam Tiler</i>; Give your Pick-pocket
+Money presently to your running
+Comrade.  <i class="eg">Tip the Mish</i>; Give me the
+Shirt.  <i class="eg">Tip me a Hog</i>; Lend me a Shilling.
+<i class="eg">Tip it all off</i>; Drink it all off at
+a Draught.  <i class="eg">Don't spoil his Tip</i>; Don't
+baulk his Draught.  <i class="eg">A Tub of good Tip</i>;
+(for Tipple) a Cask of strong Drink.
+<i class="eg">To tip off</i>, also signifies to die.</p>
+</div>
+<div class="entry">
+<h2>TIPLER</h2>
+<p>a Fuddle-cap, or Toss pot.</p>
+</div>
+<div class="entry">
+<h2>TIPSY</h2>
+<p>almost drunk.</p>
+</div>
+<div class="entry">
+<h2>TIT</h2>
+<p>a Horse; also a young prim
+Lass.</p>
+</div>
+<div class="entry">
+<h2>TIT-<i>Bit</i></h2>
+<p>a fine Snack, or choice
+Morsel.</p>
+</div>
+<div class="entry">
+<h2>TITTLE-<i>Tattle</i></h2>
+<p>idle, impertinent
+Talk.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> TITTER</h2>
+<p>to laugh at a Feather.</p>
+</div>
+<div class="entry">
+<h2>TITTER-<i>Totter</i></h2>
+<p>one ready to reel,
+at every Jog, or Blast of Wind.</p>
+</div>
+<div class="entry">
+<h2>TOGE</h2>
+<p>a Coat.</p>
+</div>
+<div class="entry">
+<h2>TOGEMANS</h2>
+<p>a Gown, or Cloak.  <i class="eg">I
+have bit the Togemans</i>; I have stole the
+Cloak.  <i class="eg">Tis a Rum Togemans lets nim it</i>;
+'Tis a good Camblet-Cloak; lets whip
+it off.</p>
+</div>
+<div class="entry">
+<h2>TOKENS</h2>
+<p>the Plague; also Presents
+from one to another; also a Farthing.
+<i class="eg">Not a Token left</i>; Not a Farthing remaining.
+<i class="eg">Tom Fools token</i>; Money.</p>
+</div>
+<div class="entry">
+<h2>TOL.</h2>
+<p><i>Toledo</i>, a Sword.  <i class="eg">Bite the
+Tol</i>; Steal the Sword.  <i class="eg">A Rum Tol</i>;
+A silver hilted Sword.  <i class="eg">A Queere Tol</i>;
+A Brass or Steel-hilted or ordinary
+Sword.</p>
+</div>
+<div class="entry">
+<h2>TOM-<i>Boy</i></h2>
+<p>a Tom Rig, or Romp.</p>
+</div>
+<div class="entry">
+<h2>TOM <i>of Bedlam</i></h2>
+<p>the same as <i>Abram-Man</i>.
+Which See.</p>
+</div>
+<div class="entry">
+<h2>TOM-<i>Cony</i></h2>
+<p>a very silly Felow.</p>
+</div>
+<div class="entry">
+<h2>TOM-<i>Thumb</i></h2>
+<p>a Dwarf or diminutive Fellow.</p>
+</div>
+<div class="entry">
+<h2>TOM-<i>Long</i></h2>
+<p>tedious; as <i class="eg">Come by
+Tom Long the Carrier</i>; of what is very
+long a coming.</p>
+</div>
+<div class="entry">
+<h2>TONGUE-<i>Pad</i></h2>
+<p>a smooth, glib-tongued,
+insinuating Fellow.</p>
+</div>
+<div class="entry">
+<h2>TONY</h2>
+<p>a silly Fellow or Ninny.  <i class="eg">A
+meer Tony</i>; a meer Simpleton.</p>
+</div>
+<div class="entry">
+<h2>TOOL</h2>
+<p>an Implement fit for any
+Turn, the Creature of any Cause or
+Faction; a meer Property, or Cat's
+Foot.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> TOP</h2>
+<p>to cheat or trick any one;
+also to insult.  <i class="eg">What, do you top upon
+me?</i>  Do you stick a little Wax to the
+Dice to keep them together, to get the
+Chance you would have?  <i class="eg">He thought to
+have topt upon me</i>; He designed to have
+put upon, sharped, bullied, or affronted
+me.</p>
+</div>
+<div class="entry">
+<h2>TOP <i>Diver</i></h2>
+<p>a Lover of Women.</p>
+</div>
+<div class="entry">
+<h2>To TOPE</h2>
+<p>to drink.  <i class="eg">An old Toper</i>;
+a staunch Drunkard.  <i class="eg">To tope it about</i>,
+or <i class="eg">Dust it about</i>; To drink briskly
+about.</p>
+</div>
+<div class="entry">
+<h2>TOP-<i>Heavy</i></h2>
+<p>Drunk.</p>
+</div>
+<div class="entry">
+<h2>TOPPING-<i>Fellow</i></h2>
+<p>who has reach'd
+the Pitch and greatest Eminence in any
+Art; the Master, and the Cock of his
+Profession.</p>
+</div>
+<div class="entry">
+<h2>TOPPING-<i>Cheat</i></h2>
+<p>the Gallows.</p>
+</div>
+<div class="entry">
+<h2>TOPPING-<i>Cove</i></h2>
+<p>the Hangman.</p>
+</div>
+<div class="entry">
+<h2>TORCH-<i>Cul</i></h2>
+<p>Bum sodder.</p>
+</div>
+<div class="entry">
+<h2>TORIES</h2>
+<p><i>Irish</i> Thieves or Rapparees.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> TOST</h2>
+<h2>or <i>Toast</i></h2>
+<p>to name or
+begin a new Health.  <i class="eg">Who tosts now?</i>
+Who Christens the Health?  <i class="eg">An old Tost</i>;
+A pert, pleasant, old Fellow.</p>
+</div>
+<div class="entry">
+<h2>TOTTY-<i>Headed</i></h2>
+<p>giddy-headed,
+hare-brained.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> TOUR</h2>
+<h2><i>To</i> TOUT</h2>
+<p>to look out sharp, to be
+upon one's Guard.  <i class="eg">Who
+touts?</i> Who looks out sharp?  <i class="eg">Tout the
+Culls</i>; Eye those Folks which way they
+take.  <i class="eg">Do you tout and bulk, and I'll
+file</i>; If you'll eye and jostlehim, I will
+pick his Pockets.</p>
+</div>
+<div class="entry">
+<h2>TOUTING-<i>Ken</i></h2>
+<p>a Tavern or Ale-house Bar.</p>
+</div>
+<div class="entry">
+<h2>TOWER <i>Hill Play</i></h2>
+<p>a Slap on the
+Face and a Kick on the Breech.</p>
+</div>
+<div class="entry">
+<h2>TOWN-<i>Bull</i></h2>
+<p>one that rides all the
+Women he meets.</p>
+</div>
+<div class="entry">
+<h2>TOWER</h2>
+<p>a <i>Cant Word</i>, used to denote
+bad, or clipped Money: as, <i class="eg">They
+have been round the Tower with it</i>; te he
+Piece of Money has been clipt.</p>
+</div>
+<div class="entry">
+<h2>TRACK</h2>
+<p>to go.  <i class="eg">Track up the Dancers</i>;
+Whip up the Stairs.</p>
+</div>
+<div class="entry">
+<h2>TRANSNEAR</h2>
+<p>to come up with any
+Body.</p>
+</div>
+<div class="entry">
+<h2>TRANSLATORS</h2>
+<p>Sellers of old
+Shoes and Boots, between Shoemakers
+and Cobblers; also that turn or translate
+out of one Language into another.</p>
+</div>
+<div class="entry">
+<h2>TRANSMOGRIFY</h2>
+<p>or rather <i>Transmigrafy</i>,
+to alter or new vamp.</p>
+</div>
+<div class="entry">
+<h2>TRANTER</h2>
+<p>See <i>Crocker</i>.</p>
+</div>
+<div class="entry">
+<h2>TRAPAN</h2>
+<p>he that draws in or
+wheedles a <i>Cull</i>, and <i>Bites</i> him.  <i class="eg">Trapann'd</i>;
+sharp'd, ensnar'd.</p>
+</div>
+<div class="entry">
+<h2>TRAPES</h2>
+<p>a dangling Slattern.</p>
+</div>
+<div class="entry">
+<h2>TRES-WINS</h2>
+<p>Three Pence.</p>
+</div>
+<div class="entry">
+<h2>TRIGRY-<i>Mate</i></h2>
+<p>an idle She-companion.</p>
+</div>
+<div class="entry">
+<h2>TRIP</h2>
+<p>a Prison.  <i class="eg">He is in Trib</i>, for
+<i>Tribulation</i>; He is laid by the Heels,
+or in a great deal of Trouble.</p>
+</div>
+<div class="entry">
+<h2>TRIM</h2>
+<p>Dress.  <i class="eg">In a sad Trim</i>; dirty,
+undress'd.  <i class="eg">A Trim Lad</i>; A spruce,
+neat, well trick'd Man.</p>
+</div>
+<div class="entry">
+<h2>TRIMMING</h2>
+<p>cheating People
+of their Money.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> TRINE</h2>
+<p>to hang; also <i>Tyburn</i>.</p>
+</div>
+<div class="entry">
+<h2>TRINING</h2>
+<p>hanging.</p>
+</div>
+<div class="entry">
+<h2>TRINKETS</h2>
+<p>Toys and Trifles.</p>
+</div>
+<div class="entry">
+<h2>TRINGUM-TRANGUM</h2>
+<p>a Whim or Maggot.</p>
+</div>
+<div class="entry">
+<h2>TRIPE</h2>
+<p>the Belly or Guts.</p>
+</div>
+<div class="entry">
+<h2>TRIP</h2>
+<p>a short Voyage or Journey;
+also an Error of the Tongue, or Pen;
+a Stumble, a false Step, a Miscarriage.
+Also a Bastard.</p>
+</div>
+<div class="entry">
+<h2>TROT</h2>
+<p>as, <i class="eg">An old Trot</i>, a sorry,
+base, old Woman.  <i class="eg">A Dog Trot</i>; A
+pretty Pace.</p>
+</div>
+<div class="entry">
+<h2>TROTTERS</h2>
+<p>Feet, usually Sheeps.
+<i class="eg">Shake your Trotters</i>; Troop off, be
+gone.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> TROLL<i>About</i></h2>
+<p>to saunter, loiter,
+or wander about.</p>
+</div>
+<div class="entry">
+<h2>TROLLOP</h2>
+<p><i class="eg">a A great Trollop</i>, a lusty
+coarse Romp.</p>
+</div>
+<div class="entry">
+<h2>TROOPER</h2>
+<p>a half Crown.</p>
+</div>
+<div class="entry">
+<h2>TROUNCED</h2>
+<p>troubled, cast in Law
+punished.</p>
+</div>
+<div class="entry">
+<h2>TRUG</h2>
+<p>a dirty Puzzle, an ordinary
+sorry Woman.</p>
+</div>
+<div class="entry">
+<h2>TRULL</h2>
+<p>a Whore, also a Tinker's
+travelling Wife or Wench.</p>
+</div>
+<div class="entry">
+<h2>TRUMPERY</h2>
+<p>old Ware, old Stuff.</p>
+</div>
+<div class="entry">
+<h2>TRUNDLERS</h2>
+<p>Pease.</p>
+</div>
+<div class="entry">
+<h2>TRUNK</h2>
+<p>a Nose<i class="eg">How fares your
+old Trunk?</i> Does your Nose stand fast?</p>
+</div>
+<div class="entry">
+<h2>TRUSTY-<i>Trojan</i></h2>
+<h2>or <i>Trusty Trout</i></h2>
+<p>a sure Friend or Confidant.</p>
+</div>
+<div class="entry">
+<h2>TUCK'D</h2>
+<p>hang'd.</p>
+</div>
+<div class="entry">
+<h2>TUMBLER</h2>
+<p>a Cart.  <i class="eg">To shove the
+Tumbler</i>; To be whipt at the Cart's
+Tail; also one that decoys, or draws
+others into play; and one that shews
+Tricks with and without a Hoop.</p>
+</div>
+<div class="entry">
+<h2>TURK</h2>
+<p>any cruel hard-hearted
+Man.</p>
+</div>
+<div class="entry">
+<h2>TURKEY <i>Merchants</i></h2>
+<p>Drivers of Turkeys.</p>
+</div>
+<div class="entry">
+<h2>TURKISH-<i>Shore</i></h2>
+<p><i>Lambeth</i>, <i>Southwark</i>
+and <i>Rotherhith</i> Side of the Water.</p>
+</div>
+<div class="entry">
+<h2>TURKISH-<i>Treatment</i></h2>
+<p>very sharp or
+ill dealing in Business.</p>
+</div>
+<div class="entry">
+<h2>TURN-<i>Coat</i></h2>
+<p>he that quits one and
+embraces another Party.</p>
+</div>
+<div class="entry">
+<h2>TURNIP <i>Pate</i></h2>
+<p>white or Fair-hair'd.</p>
+</div>
+<div class="entry">
+<h2>TWEAK</h2>
+<p>as <i class="eg">In a Tweak</i>; in a heavy
+Taking, much vexed or very angry.</p>
+</div>
+<div class="entry">
+<h2>TWELVER</h2>
+<p>a Shilling.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> TWIG</h2>
+<p>to disingage, to sunder,
+to snap, to break off; as, <i class="eg">To twig the
+Darbies</i>; To knock off the Irons.</p>
+</div>
+<div class="entry">
+<h2>TWIST</h2>
+<p>half Tea, half Coffee:
+Likewise Brandy and Eggs mixed.  Hot-Pot.
+Also to Eat; as, <i class="eg">To twist lustily</i>;
+To feed like a Farmer.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> TWIST</h2>
+<p>to eat heartily.</p>
+</div>
+<div class="entry">
+<h2>TWISTED</h2>
+<p>executed, hanged.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> TWIT</h2>
+<p>to hit in the Teeth.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> TWITTER</h2>
+<p>to laugh much
+with little Noise; also to tremble.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letteruv.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letteruv.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letteruv.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,158 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>U, V</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter U, V</h1>
+<div class="entry">
+<h2>VAGARIES</h2>
+<p>wild Rambles, extravagant Frolicks.</p>
+</div>
+<div class="entry">
+<h2>VAGRANT</h2>
+<p>a wandering Rogue, a
+strolling Vagabond.</p>
+</div>
+<div class="entry">
+<h2>VAIN-<i>Glorious</i></h2>
+<p>or <i>Ostentatious Man</i>,
+one that boasts without Reason, or, as
+the <i>Canters</i> say, <i class="eg">pisses more than he
+drinks</i>.</p>
+</div>
+<div class="entry">
+<h2>VALET</h2>
+<p>a Servant.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> VAMP</h2>
+<p>to parn anything. [[pawn?]]
+<i class="eg">I'll
+
+Vamp, and tip you the Cole</i>; I'll pawn
+my Cloaths, but I'll raise the Money
+for you.  <i class="eg">To Vamp</i>; To new dress,
+liquer, refresh or rub up old Hats,
+Boots, Shoes &amp;c. Also a Sock.</p>
+</div>
+<div class="entry">
+<h2>VAMPERS</h2>
+<p>Stockings.</p>
+</div>
+<div class="entry">
+<h2>VAN</h2>
+<p>as <i class="eg">Madam Van</i>.  See <i>Madam</i>.</p>
+</div>
+<div class="entry">
+<h2>VARLETS</h2>
+<p>now Rogues, Rascals,
+&amp;c. tho' formerly Yeomens Servants.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> VAULT</h2>
+<p>as, <i class="eg">To Vault</i>, to commit
+Acts of Debauchery.</p>
+</div>
+<div class="entry">
+<h2>VAULTING-<i>School</i></h2>
+<p>a Bawdy-house.</p>
+</div>
+<div class="entry">
+<h2>VELVET</h2>
+<p>a Tongue.  <i class="eg">Tip the Velvet</i>; To tongue a Woman.</p>
+</div>
+<div class="entry">
+<h2>VINEGAR</h2>
+<p>a Cloak; also the Fellow
+that makes a Ring, and keeps
+Order amongst Wrestlers, Dudgel-Players, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>VIRAGO</h2>
+<p>a masculine Woman, or
+a great two-handed Female.</p>
+</div>
+<div class="entry">
+<h2>UNRIG'D</h2>
+<p>stripp'd, undress'd.  <i class="eg">Unrig
+the Drab</i>; pull all the Whore's
+Cloaths off.</p>
+</div>
+<div class="entry">
+<h2>UNTWISTED</h2>
+<p>undone, ruin'd.</p>
+</div>
+<div class="entry">
+<h2>UNWASH'D <i>Bawdry</i></h2>
+<p>rank, fulsom
+Bawdry.</p>
+</div>
+<div class="entry">
+<h2>UPHILS</h2>
+<p>high Dice.</p>
+</div>
+<div class="entry">
+<h2>VOUCHERS</h2>
+<p>that put off false Money
+for sham Coiners.  Also one that
+warrants Gagers or under Officers Accompts,
+either at the Excise Office;
+or elsewhere.</p>
+</div>
+<div class="entry">
+<h2>UPPISH</h2>
+<p>rampant, crowing, full of
+Money.  <i class="eg">He is very Uppish</i>; He is well-lined
+in the Fob; also brisk.</p>
+</div>
+<div class="entry">
+<h2>UPRIGHT-MEN</h2>
+<p>As, an <i class="eg">Upright-man</i>,
+signifies the chief or Principal of a
+Crew.  The vilest stoutest Rogue in
+the Pack, is generally chosen to this
+Post, and he has the sole Right to the
+fist Night's Lodging with the <i>Dells</i>,
+who afterwards are used in common
+among the whole Fraternity.  He
+carries a short Truncheon in his
+Hand, which he calls his <i>Filchman</i>, and
+has a larger Share than ordinary of
+whatsoever is gotten in the Society.
+He often travels in Company with 30
+or 40 Males and Females, <i>Abram-Men</i>,
+and others, over whom he presides arbitrarily;
+and sometimes the Women
+and Children, who are unable to travel,
+or fatigued, are by Turns carry'd
+in Panniers bu an Ass or two, or by
+some poor Jades which they procure
+for that Purpose.  <i class="eg">Go Upright</i>, said by
+Taylors and and Shoemakers, to their
+Servants, when any Money is given
+to make them drink, and signifies,
+<span class="meaning"><i>Bring it all out in Drink</i></span>, tho' the Donor
+intended less, and expects Change,
+or some Return of Money.</p>
+</div>
+<div class="entry">
+<h2>UPSTARTS</h2>
+<p>new raised to Honour.</p>
+</div>
+<div class="entry">
+<h2>URCHIN</h2>
+<p>a little sorry Fellow; also
+a Hedge-hog.</p>
+</div>
+<div class="entry">
+<h2>URINAL <i>of the Planets</i></h2>
+<p><i>Ireland</i>, with
+us, because of its frequent and great
+Rains; as <i>Heidelberg</i>, and <i>Cologn</i> in
+<i>Germany</i>, have the same Name upon
+the same Account; also a Chamber-pot,
+or Glass.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterw.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterw.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterw.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,489 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>W</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter W</h1>
+<div class="entry">
+<h2>WADDLE</h2>
+<p>to go like a Duck.</p>
+</div>
+<div class="entry">
+<h2>WAG</h2>
+<h2><i>Waggish</i></h2>
+<p>arch, gamesome, pleasant.</p>
+</div>
+<div class="entry">
+<h2>WALLOWISH</h2>
+<p>a malkish, ill Taste.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> WAP</h2>
+<p>to lie with a Man.  <i class="eg">If she
+won't wap for a Win, let her trine for a
+Make</i>; if she won't lie with a Man for
+a Penny, let her hang for a Half-penny.
+<i class="eg">Mort wap-apace</i>; a Woman
+of Experience, or very expert at the
+Sport.</p>
+</div>
+<div class="entry">
+<h2>WAPPER-<i>Eyed</i></h2>
+<p>that has sore or
+running Eyes.</p>
+</div>
+<div class="entry">
+<h2>WAPPING</h2>
+<p>the Act of Coition.</p>
+</div>
+<div class="entry">
+<h2>WARM</h2>
+<p>well lined of flush in the
+Pocket.</p>
+</div>
+<div class="entry">
+<h2>WARMING-<i>Pan</i></h2>
+<p>an old fashion'd
+large Watch.  <i class="eg">A Scotch Warming-Pan</i>;
+a She-bed-fellow.</p>
+</div>
+<div class="entry">
+<h2>WARREN</h2>
+<p>he that is Security for
+Goods taken up on Credit, by extravagant
+young Gentlemen; also a
+Boarding-school, or a Bawdy-house,
+which are too much the same Thing.</p>
+</div>
+<div class="entry">
+<h2>WASH</h2>
+<p>Paint for Faces.</p>
+</div>
+<div class="entry">
+<h2>WASPISH</h2>
+<p>peevish.</p>
+</div>
+<div class="entry">
+<h2>WATER-<i>Pad</i></h2>
+<p>one that robs Ships,
+Hoys, Lighters, Barges or Boats in the
+River of <i>Thames</i>.  A sort of BADGERS.  Which see.</p>
+</div>
+<div class="entry">
+<h2>WATTLES</h2>
+<p>Ears; also Sheep-folds.</p>
+</div>
+<div class="entry">
+<h2>WEB</h2>
+<p>Cloth of any Sort.</p>
+</div>
+<div class="entry">
+<h2>WEDGE</h2>
+<p>Plate, or Silver or Gold
+Moveables and trinkets: Also Money.</p>
+</div>
+<div class="entry">
+<h2>WELSH <i>Fiddle</i></h2>
+<h2>or <i>Scotch-Fiddle</i></h2>
+<p>the Itch.</p>
+</div>
+<div class="entry">
+<h2>WESTMINSTER-<i>Wedding</i></h2>
+<p>a
+Whore and a Rogue married together.</p>
+</div>
+<div class="entry">
+<h2>WET-<i>Quaker</i></h2>
+<p>a Drunkard of that Sect.</p>
+</div>
+<div class="entry">
+<h2>WHEADLE</h2>
+<p>a Sharper.  <i class="eg">To cut a
+Wheadle</i>; to decoy, by Fawning and
+Insinuation.</p>
+</div>
+<div class="entry">
+<h2>WHEEL-<i>Band in the Nick</i></h2>
+<p>regular
+drinking over the left Thumb.</p>
+</div>
+<div class="entry">
+<h2>WHETSTONE's <i>Park</i></h2>
+<p>a Lane betwixt
+<i>Holbourn</i> and <i>Lincoln's-Inn-Fields</i>,
+formerly a noted Nest for Whores,
+now dispark'd.</p>
+</div>
+<div class="entry">
+<h2>WHIDS</h2>
+<p>Words.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> WHIDDLE</h2>
+<p>to enter into a Parley,
+to compound with, or take off by
+a Bribe; as, <i class="eg">Did you Whiddle with the
+Cull?</i> Did you bribe or compound with
+the Evidence?  Also to impeach, or
+discover; as, <i class="eg">He Whiddles</i>; He Peaches.
+<i class="eg">He Whiddles the whole Scrap</i>; He
+discovers all he knows.  <i class="eg">The Cull has
+whiddled, because we would not tip him
+a Snack</i>; The Dog has discovered because
+we did not give him a Share.
+<i class="eg">They Whiddle-Thief, and we must Brush</i>;
+They cry out Thieves, and we must
+fly.</p>
+</div>
+<div class="entry">
+<h2>WHIDDLER</h2>
+<p>a Peacher (or rather
+Impeacher) of his Gang.</p>
+</div>
+<div class="entry">
+<h2>WHIG-<i>Land</i></h2>
+<p>Scotland.</p>
+</div>
+<div class="entry">
+<h2>WHINERS</h2>
+<p>Prayers, Supplications, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>WHIP-<i>Shire</i></h2>
+<p>Yorkshire.</p>
+</div>
+<div class="entry">
+<h2>WHIPSTER</h2>
+<p>a sharp, or subtle
+Fellow.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> WHIP <i>off</i></h2>
+<p>to steal, to drink cleverly,
+to snatch and to run away.
+<i class="eg">Whipt through the Lungs</i>; Run through
+the Body with a Sword.  <i class="eg">Whipt in at
+the Glaze</i>; Got in at the Window.</p>
+</div>
+<div class="entry">
+<h2>WHIM</h2>
+<p>a Maggot.</p>
+</div>
+<div class="entry">
+<h2>WHIMSICAL</h2>
+<p>maggotish.</p>
+</div>
+<div class="entry">
+<h2>WHIMPER</h2>
+<p>a low or small Cry.</p>
+</div>
+<div class="entry">
+<h2>WHINDLE</h2>
+<p>a low or feigned Cry.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> WHINE</h2>
+<p>to cry squeekingly.</p>
+</div>
+<div class="entry">
+<h2>WHINYARD</h2>
+<p>a Sword.</p>
+</div>
+<div class="entry">
+<h2>WHIPPER-<i>Snapper</i></h2>
+<p>a very small
+sprightly Boy.</p>
+</div>
+<div class="entry">
+<h2>WHIP-<i>Jacks</i></h2>
+<p>counterfeit Mariners
+begging with false Passes, pretending
+Ship-wrecks, great Losses at Sea, narrow
+Escapes, &amp;c. telling dismal Stories,
+having learnt <i>Tar-Terms</i> on purpose:
+but are meer Cheats, and will
+not stick to rob a Booth at a Fair, or
+an House in soem By-road.  They
+often carry their Morts or Wenches,
+which the pretend to be their Wives,
+whom they miraculously saved in the
+Shipwreck, altho' all their Children
+were drowned, the Ship splitting on
+a Rock near the <i>Lands-End</i>, with such
+like Forgeries.</p>
+</div>
+<div class="entry">
+<h2>WHIRLEGIGS</h2>
+<p>Testicles.</p>
+</div>
+<div class="entry">
+<h2>WHISK</h2>
+<p>a little inconsiderable, impertinent Fellow.</p>
+</div>
+<div class="entry">
+<h2>WHISKER</h2>
+<p>a great Lye.</p>
+</div>
+<div class="entry">
+<h2>WHISKINS</h2>
+<p>shallow, brown Bowls
+to drink out of.</p>
+</div>
+<div class="entry">
+<h2>WHISTLE</h2>
+<p>the Throat.  <i class="eg">Wet your
+Whistle</i>: liquor your Throat.</p>
+</div>
+<div class="entry">
+<h2>WHIT</h2>
+<p>Newgate.  As, <i class="eg">Five Rum-padders,
+are rub'd in the Darkmans and
+of the Whit, and are pik'd into the Deuseaville</i>;
+Five Highway-men in the
+
+Night broke <i>newgate</i>, and are gone
+into the Country.</p>
+</div>
+<div class="entry">
+<h2>WHITE-<i>Chappel-Portion</i></h2>
+<p>two torn
+Smocks, and what Nature gave.</p>
+</div>
+<div class="entry">
+<h2>WHITE-<i>Tape</i></h2>
+<p>See <i>Tape</i>.</p>
+</div>
+<div class="entry">
+<h2>WHITE <i>Wool</i></h2>
+<p>Silver.</p>
+</div>
+<div class="entry">
+<h2>WHITHER-<i>D'ye-go</i></h2>
+<p>an insolent
+prescribing, <i>very</i>, Wife.</p>
+</div>
+<div class="entry">
+<h2>WHORE's <i>Kitling</i></h2>
+<h2>or <i>Whore's Son</i></h2>
+<p>a Bastard.</p>
+</div>
+<div class="entry">
+<h2>WHOW-<i>Ball</i></h2>
+<p>a Milk-maid.</p>
+</div>
+<div class="entry">
+<h2>WIBBLE</h2>
+<p>sad Drink.</p>
+</div>
+<div class="entry">
+<h2>WICKET</h2>
+<p>a Casement, also a little
+Door. As, <i class="eg">Tout through the Wicket,
+and see where a Cully pikes with his
+Gentry mort, whose Muns are the Rummest
+I ever touted before</i>; Look through
+the Casement, and see where the Man
+walks with a Gentlewoman, whose
+Face is the fairest, I have ever seen.</p>
+</div>
+<div class="entry">
+<h2>WICHER-<i>Cully</i></h2>
+<p>See <i>Witcher-Cully</i>.</p>
+</div>
+<div class="entry">
+<h2>WIDOWS-<i>Weeds</i></h2>
+<p>mourning
+Cloaths.  <i class="eg">A Grass-Widow</i>; One that
+pretends to have been married, but
+never was, yet has Children.</p>
+</div>
+<div class="entry">
+<h2>WILD <i>Rogues</i></h2>
+<p>such as are trained
+up from Children to <i>Nim</i> golden or
+silver Buttons off of Coats, to creep in
+at Cellar and Shop-windows, and to
+slip in at Doors behind People; also
+that have been whipt, burnt in the
+Fist, and often in Prison for Roguery.</p>
+</div>
+<div class="entry">
+<h2>WILES</h2>
+<p>Tricks, Intrigues, cunning
+Stratagems.</p>
+</div>
+<div class="entry">
+<h2>WILY</h2>
+<p>cunning, crafty, intriguing.</p>
+</div>
+<div class="entry">
+<h2>WILLING-<i>Tit</i></h2>
+<p>a little Horse that
+Travels chearfully; also a coming Girl.</p>
+</div>
+<div class="entry">
+<h2>WILLOW</h2>
+<p>poor, and of no Reputation.</p>
+</div>
+<div class="entry">
+<h2>WIN</h2>
+<p>a Penny.  <i class="eg">To win</i>; To steal.
+<i class="eg">Won</i>; Stollen.  <i class="eg">The Cull has won a
+Couple of rum Glimsticks</i>; The Rogue
+has stole a pair of Silver Candlesticks.</p>
+</div>
+<div class="entry">
+<h2>WIND-<i>Fall</i></h2>
+<p>a great Fortune fallen
+unexpectedly by the Death of a Friend.</p>
+</div>
+<div class="entry">
+<h2>WINDY-<i>Fellow</i></h2>
+<p>without Sense or
+Reason.</p>
+</div>
+<div class="entry">
+<h2>WIND-<i>Mills in the Head</i></h2>
+<p>empty
+Projects.</p>
+</div>
+<div class="entry">
+<h2>WINK</h2>
+<p>a Signal or Intimation.  <i class="eg">He
+tipt the Wink</i>; He gave the Sign or Signal.</p>
+</div>
+<div class="entry">
+<h2>WINNINGS</h2>
+<p>Money, or Reward:
+<i class="eg">Winnings for Wapping</i>; Money given a
+Woman for lying with her.</p>
+</div>
+<div class="entry">
+<h2>WIPE</h2>
+<p>a Blow; also a Reflection.
+<i class="eg">He tipt him a rum Wipe</i>; He gave him
+a swinging Blow.  <i class="eg">I gave him a Wipe</i>;
+I spoke something that cut him, or
+gaul'd him.  <i class="eg">He wip'd his Nose</i>; He
+gull'd him.</p>
+</div>
+<div class="entry">
+<h2>WIPER</h2>
+<p>a Handkerchief.  <i class="eg">Nim the
+Wiper</i>; To steal the Handkerchief.</p>
+</div>
+<div class="entry">
+<h2>WIPER-<i>Drawer</i></h2>
+<p>a Handkerchief-stealer.
+<i class="eg">He drew a broad, narrow, cam,
+or speck'd Wiper</i>; He pick'd Pockets of
+a broad, or narrow, Ghenting, Cambrick,
+or colour'd Handkerchief.</p>
+</div>
+<div class="entry">
+<h2>WIRE-<i>Draw</i></h2>
+<p>a Fetch or Trick to
+wheedle in <i>Bubbles</i>; also to screw,
+over-reach, or deal hard with.  <i class="eg">Wire-drawn</i>;
+so served or treated.</p>
+</div>
+<div class="entry">
+<h2>WISE <i>Man of Gotham</i></h2>
+<p>a Fool.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> WIT</h2>
+<p>to know or understand.</p>
+</div>
+<div class="entry">
+<h2><i>The</i> WIT</h2>
+<p><i>Newgate</i>, <i>New Prison</i>, or
+<i>Bridewell</i>.  The same as <i>Whit</i>.</p>
+</div>
+<div class="entry">
+<h2>WITCHER</h2>
+<p>Silver.</p>
+</div>
+<div class="entry">
+<h2>WITCHER-<i>Bubber</i></h2>
+<p>a Silver Bowl.
+<i class="eg">The Cull is piked with the Witcher-bubber</i>
+The Rogue is marched off with
+the Silver-bowl.</p>
+</div>
+<div class="entry">
+<h2>WITCHER-<i>Cully</i></h2>
+<p>a Silver-smith.</p>
+</div>
+<div class="entry">
+<h2>WITCHER-<i>Tilter</i></h2>
+<p>a Silver-hilted
+Sword.  <i class="eg">He has bit, or drawn the
+Witcher-tilter</i>; He has stole the Silver-hilted Sword.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> WOBBLE</h2>
+<p>to boil.  <i class="eg">The Pot wobbles</i>; i.e. The Pot boils;
+the Meat is enough.</p>
+</div>
+<div class="entry">
+<h2>WOMAN <i>of the Town</i></h2>
+<p>a Prostitute,
+or common Harlot.</p>
+</div>
+<div class="entry">
+<h2>WOMBLE-<i>Ty-Cropt</i></h2>
+<p>the Indisposition
+of a Drunkard after a Debauch in
+Wine or other Liquors: As, <i class="eg">He is
+Womble-ty Cropt</i>; He is Cropsick, &amp;c.</p>
+</div>
+<div class="entry">
+<h2>WOODEN-<i>Ruff</i></h2>
+<p>a Pillory.  <i class="eg">He wore
+the Wooden-ruff</i>; He stood in the Pillory.</p>
+</div>
+<div class="entry">
+<h2>WOOD-<i>Pecker</i></h2>
+<p>a By-stander that
+bets, while others game.</p>
+</div>
+<div class="entry">
+<h2><i>In a</i> WOOD</h2>
+<h2>or, <i>In a Maze</i></h2>
+<p>In a
+Peck of Troubles; being in a Doubt,
+or at a Loss, what Course to take, by
+Reason of some very critical Turn in
+one's Affairs; or, among <i>Canters</i>, by
+being surpriz'd, and in great Danger
+of being taken, in a Robbery, or any
+other unlawful Act.</p>
+</div>
+<div class="entry">
+<h2>WOOLLY-<i>Crown</i></h2>
+<p>a soft-headed
+Fellow.</p>
+</div>
+<div class="entry">
+<h2>WOOL-<i>Gathering</i></h2>
+<p>as, <i class="eg">Your Wits
+are a Wool gathering</i>; said of a Person
+in a serious, or, as 'tis called, in a
+brown Study; or who knows not
+what he does.</p>
+</div>
+<div class="entry">
+<h2>WORD-<i>Pecker</i></h2>
+<p>one that plays with
+Words: A Punster.</p>
+</div>
+<div class="entry">
+<h2>WORM'D</h2>
+<p>undermined, rooked,
+cheated, tricked; <i class="eg">Wormed out of</i>, inveigled
+out of, or deluded.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterx.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterx.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterx.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>X</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter X</h1>
+<div class="entry">
+<h2>XANTIPPE</h2>
+<p>a Scold; the Name of
+<i>Socrates</i>'s scolding Wife; who
+never cold move his Patience, tho' by
+premeditated and repeated Injuries.
+Whence it is used for any Shrew, or
+scolding, brawling Woman.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettery.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettery.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/lettery.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,78 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Y</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter Y</h1>
+<div class="entry">
+<h2><i>To</i> YAM</h2>
+<p>to eat heartily, to stuff
+lustily.</p>
+</div>
+<div class="entry">
+<h2>YARMOUTH-<i>Capon</i></h2>
+<p>a red Herring.</p>
+</div>
+<div class="entry">
+<h2>YARMOUTH-<i>Coach</i></h2>
+<p>a sorry slow
+Cart to ride on, drawn by one Horse.</p>
+</div>
+<div class="entry">
+<h2>YARMOUTH-<i>Pye</i></h2>
+<p>made of Herrings,
+highly spic'd, and presented by
+the City of <i>Norwich</i> annually to the
+King, on pain of forfeiting their Charter.</p>
+</div>
+<div class="entry">
+<h2>YARUM</h2>
+<p>Milk, or Food made of
+Milk.</p>
+</div>
+<div class="entry">
+<h2>YEA-<i>and-Nay-Men</i></h2>
+<p>a Phrase originally
+applied to Quakers; but now
+used for any simple Fellows.</p>
+</div>
+<div class="entry">
+<h2>YELLOW</h2>
+<p>at first used by the <i>Canters</i>
+
+only, but now in common Speech,
+for being jealous.</p>
+</div>
+<div class="entry">
+<h2>YELLOW-<i>Boy</i></h2>
+<p>a Guinea, or Piece
+of Gold of any Coin.</p>
+</div>
+<div class="entry">
+<h2><i>To</i> YELP</h2>
+<p>(from the <i>Yelping</i> of a Dog)
+to cry, to bawl, to complain.</p>
+</div>
+<div class="entry">
+<h2>YELPER</h2>
+<p>a Town-Cryer; also, one
+subject to complain, or make pitiful
+Lamentation for trifling Incidents.</p>
+</div>
+<div class="entry">
+<h2>YEST</h2>
+<p>a Diminutive of <i>Yesterday</i>; a
+Day ago.</p>
+</div>
+<div class="entry">
+<h2>YOAK'D</h2>
+<p>married.</p>
+</div>
+<div class="entry">
+<h2>YORKSHIRE-<i>Tike</i></h2>
+<p>a <i>Yorkshire</i>
+Manner of Man.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterz.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterz.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/letterz.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,37 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Z</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h1>The Letter Z</h1>
+<div class="entry">
+<h2>ZAD</h2>
+<p>crooked, like the letter Z;
+as, <i class="eg">A meer Zad</i>, used of any
+bandy-legg'd, crouch-back'd or deformed
+Person.</p>
+</div>
+<div class="entry">
+<h2>ZANY</h2>
+<p>a Mountebank's Merry-Andrew,
+or Jester, to distinguish him
+from a Lord's Fool.</p>
+</div>
+<div class="entry">
+<h2>ZLOUCH</h2>
+<h2>or <i>Slouch</i></h2>
+<p>a slovenly ungenteel
+Man.</p>
+</div>
+<div class="entry">
+<h2>ZNEES</h2>
+<p>Frost, or Frozen; <i class="eg">Zneesy
+weather</i>; Frosty Weather.</p>
+</div>
+<div class="entry">
+<h2>ZNUZ</h2>
+<p>the same as <i>Znees</i>.</p>
+</div>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/titlepage.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/titlepage.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/multiple/out/titlepage.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,29 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Canting Dictionary</title>
+</head>
+<body bgcolor="#FFFAFA" text="#330000">
+<h2>Canting Dictionary</h2>
+<p>A Collection of the Canting Words and
+  Terms, both ancient and modern,
+  used by Beggars,
+  Gypsies, Cheats, House-Breakers, Shop-Lifters,
+  Foot-Pads, Highway-Men, &amp;c.</p>
+<p>Taken from <i>The Universal Etymological English Dictionary</i>,
+  by N. Bailey, London, 1737, Vol. II, and
+  transcrib'd into XML Most Diligently by Liam Quin.</p>
+<blockquote>
+  <p>English spelling has evolved greatly since this
+  dictionary was publish'd.  In the Eighteenth Century, Capital Letters
+  were generally used for Nouns, and the spelling of a word could vary
+  from one occurrence to the next. <i>Cloaths</i>, <i>Clothes</i> and
+  <i>Cloathes</i> all seem to have been used, for example.
+  You'll just have to deal with it.</p>
+  <p>Note also that <i>i</i> and <i>j</i> are treated as if they were the same
+  letter, as are <i>u</i> and <i>v</i>, so that <i>Urchin</i> appears in
+  the dictionary quite a way after <i>Vamp</i>, since the U is sorted as if it
+  were a V.</p>
+  </blockquote>
+</body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/multiple/result.xml
===================================================================

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,59 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = \
+    extra.xml extra.xsl extra.out \
+    extra2.xml extra2.xsl extra2.out extra2.err\
+    tst.xml tst.xsl tst.out \
+    tst2.xml tst2.xsl tst2.out \
+    tst3.xml tst3.xsl tst3.out \
+    tst4.xml tst4.xsl tst4.out \
+    tst5.xml tst5.xsl tst5.out \
+    tst6.xml tst6.xsl tst6.out \
+    tst7.xml tst7.xsl tst7.out \
+    tst8.xml tst8.xsl tst8.out \
+    tst9.xml tst9.xsl tst9.out
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running namespaces tests'
+	@(echo > .memdump)
+	-@(for i in $(srcdir)/*.xml ; do \
+	  if [ -d $$i ] ; then continue ; fi ; \
+	  doc=`basename $$i .xml` ; \
+	  j=$(srcdir)/$$doc.xsl ; \
+	  if [ ! -f $$j ] ; then continue ; fi ; \
+	  if [ -d $$j ] ; then continue ; fi ; \
+	  name=`basename $$j .xsl`; \
+	  out=$(srcdir)/"$$name".out; \
+	  err=$(srcdir)/"$$name".err; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc $$j $$i \
+	  	> result.$$name 2>err.$$name; \
+	  if [ ! -f $$out ] ; then \
+	  	cp result.$$name $$out ; \
+		if [ -s err.$$name ] ; then \
+			cp err.$$name $$err ; \
+		fi ; \
+	  else \
+	  	diff $$out result.$$name; \
+		if [ -s $$err ] ; then \
+	  		diff $$err err.$$name; \
+		else \
+			diff /dev/null err.$$name; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f result.$$name err.$$name; \
+	  done)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,426 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/namespaces
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+    extra.xml extra.xsl extra.out \
+    extra2.xml extra2.xsl extra2.out extra2.err\
+    tst.xml tst.xsl tst.out \
+    tst2.xml tst2.xsl tst2.out \
+    tst3.xml tst3.xsl tst3.out \
+    tst4.xml tst4.xsl tst4.out \
+    tst5.xml tst5.xsl tst5.out \
+    tst6.xml tst6.xsl tst6.out \
+    tst7.xml tst7.xsl tst7.out \
+    tst8.xml tst8.xsl tst8.out \
+    tst9.xml tst9.xsl tst9.out
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/namespaces/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/namespaces/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running namespaces tests'
+	@(echo > .memdump)
+	-@(for i in $(srcdir)/*.xml ; do \
+	  if [ -d $$i ] ; then continue ; fi ; \
+	  doc=`basename $$i .xml` ; \
+	  j=$(srcdir)/$$doc.xsl ; \
+	  if [ ! -f $$j ] ; then continue ; fi ; \
+	  if [ -d $$j ] ; then continue ; fi ; \
+	  name=`basename $$j .xsl`; \
+	  out=$(srcdir)/"$$name".out; \
+	  err=$(srcdir)/"$$name".err; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc $$j $$i \
+	  	> result.$$name 2>err.$$name; \
+	  if [ ! -f $$out ] ; then \
+	  	cp result.$$name $$out ; \
+		if [ -s err.$$name ] ; then \
+			cp err.$$name $$err ; \
+		fi ; \
+	  else \
+	  	diff $$out result.$$name; \
+		if [ -s $$err ] ; then \
+	  		diff $$err err.$$name; \
+		else \
+			diff /dev/null err.$$name; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f result.$$name err.$$name; \
+	  done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<libxml:debug xmlns:libxml="http://xmlsoft.org/XSLT/namespace"/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<xsl:stylesheet version="1.0"
+	      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	      xmlns:libxml="http://xmlsoft.org/XSLT/namespace">
+
+<xsl:template match="/">
+<libxml:debug/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.err
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.err	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.err	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+Templates:
+#0 name / 
+Variables:

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.out
===================================================================

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/extra2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="1.0"
+	      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	      xmlns="http://www.w3.org/TR/xhtml1/strict"
+	      xmlns:libxml="http://xmlsoft.org/XSLT/namespace"
+	      extension-element-prefixes="libxml">
+
+<xsl:template match="/">
+<libxml:debug/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+     
+     
+     
+     
+     
+success
+
+     
+     
+     
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<tst>
+     <doc/>
+     <doc/>
+     <doc/>
+     <doc/>
+     <doc>Failed</doc>
+     <doc/>
+     <doc/>
+     <doc/>
+</tst>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<xsl:stylesheet version="1.0"
+	      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	      xmlns="http://www.w3.org/TR/xhtml1/strict">
+
+<xsl:template match="doc[5]">
+success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+     
+     
+     
+     
+     
+success
+
+     
+     
+     
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<tst xmlns="http://example.org/">
+     <doc/>
+     <doc/>
+     <doc/>
+     <doc/>
+     <doc>Failed</doc>
+     <doc/>
+     <doc/>
+     <doc/>
+</tst>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<xsl:stylesheet version="1.0"
+	      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	      xmlns="http://www.w3.org/TR/xhtml1/strict"
+	      xmlns:tst="http://example.org/">
+
+<xsl:template match="tst:doc[5]">
+success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+     
+     
+     
+     
+     
+success
+
+     
+     
+     
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<a:tst xmlns:a="http://example.org/">
+     <a:doc/>
+     <a:doc/>
+     <a:doc/>
+     <a:doc/>
+     <a:doc>Failed</a:doc>
+     <a:doc/>
+     <a:doc/>
+     <a:doc/>
+</a:tst>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst3.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,9 @@
+<xsl:stylesheet version="1.0"
+	      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	      xmlns="http://www.w3.org/TR/xhtml1/strict"
+	      xmlns:tst="http://example.org/">
+
+<xsl:template match="tst:doc[5]">
+success
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+
+
+    matched html:* template
+  
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding="ISO-8859-1"?>
+<?xml-stylesheet href="style.xsl" type="text/xsl"?>
+<dummy xmlns:html="http://www.w3.org/1999/xhtml">
+<html:h1/>
+</dummy>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst4.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:html="http://www.w3.org/1999/xhtml"
+  version="1.0">
+
+  <xsl:template match="/">
+    <xsl:apply-templates/>
+  </xsl:template>
+  
+  <xsl:template match="html:*">
+    matched html:* template
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<windows xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+  <vbox flex="1">
+    <vbox>
+      <xhtml:div>Hello</xhtml:div>
+      <xhtml:div>
+                        foo
+                </xhtml:div>
+    </vbox>
+  </vbox>
+</windows>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<a>
+hhhh
+</a>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst5.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="iso-8859-1" ?>
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:xhtml="http://www.w3.org/1999/xhtml"   >
+   <xsl:output method="xml" indent="yes" encoding="iso-8859-1" />
+   <xsl:template match="/">
+      <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+      <windows>
+        <vbox flex="1">
+                   <xsl:apply-templates />
+            </vbox>
+      </windows>
+   </xsl:template>
+   <xsl:template match="a">
+         <vbox>
+                <xhtml:div>Hello</xhtml:div>
+                <xsl:element name="xhtml:div">
+                        foo
+                </xsl:element>
+         </vbox>
+   </xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<foo xmlns="urn:foo" xmlns:foo="urn:foo" xmlns:foo2="urn:foo2">
+  <bar>hello</bar>
+  <foo:baz>phaw</foo:baz>
+  <foo:bling xmlns="urn:foo2">
+    <bar2>hello2</bar2>
+  </foo:bling>
+  <bar>hello</bar>
+  <foo:baz>phaw</foo:baz>
+  <bling xmlns="urn:foo2">
+    <bar2>hello2</bar2>
+  </bling>
+</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<foo xmlns="urn:foo" xmlns:foo="urn:foo" xmlns:foo2="urn:foo2">
+  <bar>hello</bar>
+  <foo:baz>phaw</foo:baz>
+  <foo:bling xmlns="urn:foo2">
+    <bar2>hello2</bar2>
+  </foo:bling>
+  <bar>hello</bar>
+  <foo:baz>phaw</foo:baz>
+  <bling xmlns="urn:foo2">
+    <bar2>hello2</bar2>
+  </bling>
+</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst6.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<xsl:transform
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  version="1.0">
+  <xsl:template match="/">
+    <xsl:copy-of select="."/>
+  </xsl:template>     
+</xsl:transform>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>
+                                        A title
+                                </title>
+  </head>
+  <body>
+                                        Some text
+                        </body>
+</html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" ?>
+<adoc />

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst7.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+        xmlns:html="http://http://www.w3.org/1999/xhtml">
+        <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"
+doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
+        <xsl:namespace-alias stylesheet-prefix="html" result-prefix="#default" />
+        <xsl:strip-space elements="*" />
+        <xsl:template match="/adoc">
+                <html:html>
+                        <html:head>
+                                <html:title>
+                                        A title
+                                </html:title>
+                        </html:head>
+                        <html:body>
+                                        Some text
+                        </html:body>
+                </html:html>
+        </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<bb:root xmlns:bb="http://bbrack.org">
+  <element1 xmlns="http://delightful.com.hk">
+    <element2>Content 2</element2>
+  </element1>
+  <bb:element3>Content 3</bb:element3>
+</bb:root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0" ?>
+<adoc />

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst8.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<xsl:stylesheet version="1.0"
+        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:bb="http://bbrack.org">
+    <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
+    <xsl:namespace-alias
+        stylesheet-prefix="#default" 
+	result-prefix="bb" />
+    <xsl:strip-space elements="*" />
+    <xsl:template match="/adoc">
+        <root>
+	    <element1 xmlns="http://delightful.com.hk">
+	        <element2>Content 2</element2>
+	    </element1>
+	    <element3>Content 3</element3>
+	</root>
+    </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+
+
+
+
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:ns="namespace"
+>
+
+<xsl:template name="test"/>
+
+<xsl:template name="ns:test"/>
+
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/namespaces/tst9.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:ns="namespace"
+>
+
+<xsl:template name="test"/>
+
+<xsl:template name="ns:test"/>
+
+</xsl:stylesheet>
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/numbers/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/numbers/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/numbers/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,21 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = format-number.xsl format-number.xml format-number.out
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running numbers tests'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/format-number.xsl $(srcdir)/format-number.xml > format-number.res ; \
+	diff $(srcdir)/format-number.out format-number.res ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f format-number.res)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/numbers/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/numbers/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/numbers/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,387 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/numbers
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = format-number.xsl format-number.xml format-number.out
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/numbers/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/numbers/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running numbers tests'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/format-number.xsl $(srcdir)/format-number.xml > format-number.res ; \
+	diff $(srcdir)/format-number.out format-number.res ; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f format-number.res)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<format-number>
+  <fixes>
+    one prefix3.14suffix
+    two -_3.14_
+    three -_003.1415_
+    four _(3.1)_
+    five prefix3*14suffix
+  </fixes>
+  <point-test>
+    format-number(-1.0,'#'  ) = -1
+    format-number(-0.5,'#'  ) = -1
+    format-number( 0.0,'#'  ) = 0
+    format-number( 0.5,'#'  ) = 1
+    format-number( 1.0,'#'  ) = 1
+  </point-test>
+  <point-test>
+    format-number(-1.0,'0'  ) = -1
+    format-number(-0.5,'0'  ) = -1
+    format-number( 0.0,'0'  ) = 0
+    format-number( 0.5,'0'  ) = 1
+    format-number( 1.0,'0'  ) = 1
+  </point-test>
+  <point-test>
+    format-number(-1.0, '.' ) = -1.
+    format-number(-0.5, '.' ) = -1.
+    format-number( 0.0, '.' ) = 0.
+    format-number( 0.5, '.' ) = 1.
+    format-number( 1.0, '.' ) = 1.
+  </point-test>
+  <point-test>
+    format-number(-1.0,'#.' ) = -1.
+    format-number(-0.5,'#.' ) = -1.
+    format-number( 0.0,'#.' ) = 0.
+    format-number( 0.5,'#.' ) = 1.
+    format-number( 1.0,'#.' ) = 1.
+  </point-test>
+  <point-test>
+    format-number(-1.0,'0.' ) = -1.
+    format-number(-0.5,'0.' ) = -1.
+    format-number( 0.0,'0.' ) = 0.
+    format-number( 0.5,'0.' ) = 1.
+    format-number( 1.0,'0.' ) = 1.
+  </point-test>
+  <point-test>
+    format-number(-1.0, '.#') = -1.0
+    format-number(-0.5, '.#') = -.5
+    format-number( 0.0, '.#') = .0
+    format-number( 0.5, '.#') = .5
+    format-number( 1.0, '.#') = 1.0
+  </point-test>
+  <point-test>
+    format-number(-1.0, '.##') = -1.0
+    format-number(-0.5, '.##') = -.5
+    format-number( 0.0, '.##') = .0
+    format-number( 0.5, '.##') = .5
+    format-number( 1.0, '.##') = 1.0
+  </point-test>
+  <point-test>
+    format-number(-1.0, '.0') = -1.0
+    format-number(-0.5, '.0') = -.5
+    format-number( 0.0, '.0') = .0
+    format-number( 0.5, '.0') = .5
+    format-number( 1.0, '.0') = 1.0
+  </point-test>
+  <point-test>
+    format-number(-1.0,'#.#') = -1
+    format-number(-0.5,'#.#') = -0.5
+    format-number( 0.0,'#.#') = 0
+    format-number( 0.5,'#.#') = 0.5
+    format-number( 1.0,'#.#') = 1
+  </point-test>
+  <point-test>
+    format-number(-1.0,'0.0') = -1.0
+    format-number(-0.5,'0.0') = -0.5
+    format-number( 0.0,'0.0') = 0.0
+    format-number( 0.5,'0.0') = 0.5
+    format-number( 1.0,'0.0') = 1.0
+  </point-test>
+  <point-test>
+    format-number(-1.0,'#.0') = -1.0
+    format-number(-0.5,'#.0') = -.5
+    format-number( 0.0,'#.0') = .0
+    format-number( 0.5,'#.0') = .5
+    format-number( 1.0,'#.0') = 1.0
+  </point-test>
+  <point-test>
+    format-number(-1.0,'0.#') = -1
+    format-number(-0.5,'0.#') = -0.5
+    format-number( 0.0,'0.#') = 0
+    format-number( 0.5,'0.#') = 0.5
+    format-number( 1.0,'0.#') = 1
+  </point-test>
+</format-number>

Added: packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,13 @@
+<format-number>
+  <fixes>
+    <pi>3.1415</pi>
+    <negpi>-3.1415</negpi>
+  </fixes>
+  <point-test>
+    <number>-1.0</number>
+    <number>-0.5</number>
+    <number> 0.0</number>
+    <number> 0.5</number>
+    <number> 1.0</number>
+  </point-test>
+</format-number>

Added: packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/numbers/format-number.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,130 @@
+<xsl:stylesheet version="1.0"
+	      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output
+ method="xml"
+ indent="yes"
+ encoding="iso-8859-1"
+/>
+
+<xsl:decimal-format
+ name = "special"
+ decimal-separator = "*"
+/>
+
+<xsl:template match="/format-number">
+  <format-number>
+    <xsl:apply-templates/>
+  </format-number>
+</xsl:template>
+
+<xsl:template match="/format-number/fixes">
+  <fixes>
+    one <xsl:value-of select="format-number(pi, 'prefix#,#,###.##suffix')"/>
+    two <xsl:value-of select="format-number(negpi, '_#,#,###.##_')"/>
+    three <xsl:value-of select="format-number(negpi, '_#,#,000.000##_')"/>
+    four <xsl:value-of select="format-number(negpi, '_#.#_;_(#.#)_')"/>
+    five <xsl:value-of select="format-number(pi, 'prefix#,#,###*##suffix','special')"/>
+    <xsl:text>&#10;  </xsl:text>
+  </fixes>
+</xsl:template>
+
+<xsl:template match="/format-number/point-test">
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>,'#'  )<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'#')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test><xsl:text>&#10;  </xsl:text>
+
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>,'0'  )<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'0')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test><xsl:text>&#10;  </xsl:text>
+
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>, '.' )<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'.')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test><xsl:text>&#10;  </xsl:text>
+
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>,'#.' )<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'#.')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test><xsl:text>&#10;  </xsl:text>
+
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>,'0.' )<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'0.')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test><xsl:text>&#10;  </xsl:text>
+
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>, '.#')<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'.#')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test><xsl:text>&#10;  </xsl:text>
+
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>, '.##')<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'.##')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test><xsl:text>&#10;  </xsl:text>
+
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>, '.0')<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'.0')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test><xsl:text>&#10;  </xsl:text>
+
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>,'#.#')<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'#.#')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test><xsl:text>&#10;  </xsl:text>
+
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>,'0.0')<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'0.0')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test><xsl:text>&#10;  </xsl:text>
+
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>,'#.0')<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'#.0')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test><xsl:text>&#10;  </xsl:text>
+
+  <point-test>
+    <xsl:for-each select="number">
+    format-number(<xsl:value-of select="."/>,'0.#')<xsl:text> = </xsl:text>
+    <xsl:value-of select="format-number(.,'0.#')"/>
+    </xsl:for-each>
+    <xsl:text>&#10;  </xsl:text>
+  </point-test>
+</xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/plugins/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/plugins/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/plugins/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,42 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = plugin.out	plugin.xml plugin.xsl
+
+INCLUDES = -I$(top_srcdir) -I../../libxslt $(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)
+
+EXTRA_LTLIBRARIES = xmlsoft_org_xslt_testplugin.la
+
+# our rpath is a rather unorthodox location as we 
+# don't want to pollute $(DESTDIR) with the test plugin
+
+plugindir=$(shell pwd)/.libs/
+
+xmlsoft_org_xslt_testplugin_la_CFLAGS = -DMODULE_COMPILE $(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)
+xmlsoft_org_xslt_testplugin_la_SOURCES = testplugin.c
+xmlsoft_org_xslt_testplugin_la_LIBADD = $(top_builddir)/libxslt/libxslt.la $(EXTRA_LIBS)
+xmlsoft_org_xslt_testplugin_la_LDFLAGS = -module -avoid-version -rpath $(plugindir)
+
+all:
+
+if WITH_MODULES
+
+test-logall:
+	@echo '## Running plugin tests'
+
+test tests: $(top_builddir)/xsltproc/xsltproc test-logall $(EXTRA_LTLIBRARIES)
+	@LD_LIBRARY_PATH=$(plugindir):$(top_builddir)/libxslt/.libs:$(LD_LIBRARY_PATH) \
+	 LIBXSLT_PLUGINS_PATH=$(plugindir) \
+	 $(top_builddir)/xsltproc/xsltproc plugin.xsl plugin.xml > plugin.res
+	@diff plugin.out plugin.res
+	@rm plugin.res
+
+else
+
+test tests:
+	@echo Skipping the plugin tests.
+
+endif
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/plugins/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/plugins/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/plugins/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,504 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/plugins
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__DEPENDENCIES_1 =
+xmlsoft_org_xslt_testplugin_la_DEPENDENCIES =  \
+	$(top_builddir)/libxslt/libxslt.la $(am__DEPENDENCIES_1)
+am_xmlsoft_org_xslt_testplugin_la_OBJECTS =  \
+	xmlsoft_org_xslt_testplugin_la-testplugin.lo
+xmlsoft_org_xslt_testplugin_la_OBJECTS =  \
+	$(am_xmlsoft_org_xslt_testplugin_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(xmlsoft_org_xslt_testplugin_la_SOURCES)
+DIST_SOURCES = $(xmlsoft_org_xslt_testplugin_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = plugin.out	plugin.xml plugin.xsl
+INCLUDES = -I$(top_srcdir) -I../../libxslt $(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)
+EXTRA_LTLIBRARIES = xmlsoft_org_xslt_testplugin.la
+
+# our rpath is a rather unorthodox location as we 
+# don't want to pollute $(DESTDIR) with the test plugin
+plugindir = $(shell pwd)/.libs/
+xmlsoft_org_xslt_testplugin_la_CFLAGS = -DMODULE_COMPILE $(LIBXML_CFLAGS) $(LIBXSLT_CFLAGS)
+xmlsoft_org_xslt_testplugin_la_SOURCES = testplugin.c
+xmlsoft_org_xslt_testplugin_la_LIBADD = $(top_builddir)/libxslt/libxslt.la $(EXTRA_LIBS)
+xmlsoft_org_xslt_testplugin_la_LDFLAGS = -module -avoid-version -rpath $(plugindir)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/plugins/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/plugins/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+xmlsoft_org_xslt_testplugin.la: $(xmlsoft_org_xslt_testplugin_la_OBJECTS) $(xmlsoft_org_xslt_testplugin_la_DEPENDENCIES) 
+	$(LINK)  $(xmlsoft_org_xslt_testplugin_la_LDFLAGS) $(xmlsoft_org_xslt_testplugin_la_OBJECTS) $(xmlsoft_org_xslt_testplugin_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xmlsoft_org_xslt_testplugin_la-testplugin.Plo at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ at am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+xmlsoft_org_xslt_testplugin_la-testplugin.lo: testplugin.c
+ at am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xmlsoft_org_xslt_testplugin_la_CFLAGS) $(CFLAGS) -MT xmlsoft_org_xslt_testplugin_la-testplugin.lo -MD -MP -MF "$(DEPDIR)/xmlsoft_org_xslt_testplugin_la-testplugin.Tpo" -c -o xmlsoft_org_xslt_testplugin_la-testplugin.lo `test -f 'testplugin.c' || echo '$(srcdir)/'`testplugin.c; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/xmlsoft_org_xslt_testplugin_la-testplugin.Tpo" "$(DEPDIR)/xmlsoft_org_xslt_testplugin_la-testplugin.Plo"; else rm -f "$(DEPDIR)/xmlsoft_org_xslt_testplugin_la-testplugin.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='testplugin.c' object='xmlsoft_org_xslt_testplugin_la-testplugin.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xmlsoft_org_xslt_testplugin_la_CFLAGS) $(CFLAGS) -c -o xmlsoft_org_xslt_testplugin_la-testplugin.lo `test -f 'testplugin.c' || echo '$(srcdir)/'`testplugin.c
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool ctags distclean distclean-compile \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+ at WITH_MODULES_TRUE@test-logall:
+ at WITH_MODULES_TRUE@	@echo '## Running plugin tests'
+
+ at WITH_MODULES_TRUE@test tests: $(top_builddir)/xsltproc/xsltproc test-logall $(EXTRA_LTLIBRARIES)
+ at WITH_MODULES_TRUE@	@LD_LIBRARY_PATH=$(plugindir):$(top_builddir)/libxslt/.libs:$(LD_LIBRARY_PATH) \
+ at WITH_MODULES_TRUE@	 LIBXSLT_PLUGINS_PATH=$(plugindir) \
+ at WITH_MODULES_TRUE@	 $(top_builddir)/xsltproc/xsltproc plugin.xsl plugin.xml > plugin.res
+ at WITH_MODULES_TRUE@	@diff plugin.out plugin.res
+ at WITH_MODULES_TRUE@	@rm plugin.res
+
+ at WITH_MODULES_FALSE@test tests:
+ at WITH_MODULES_FALSE@	@echo Skipping the plugin tests.
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<!--libxslt:testplugin element test worked-->
+SUCCESS

Added: packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/plugins/plugin.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,12 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:libxslt="http://xmlsoft.org/xslt/testplugin"
+  xmlns:test="http://xmlsoft.org/xslt/testplugin"
+  extension-element-prefixes="libxslt test"
+  version='1.0'>
+<!-- the prefix is registered twice to check single initialization -->
+<xsl:template match="/">
+<libxslt:testplugin/>
+<xsl:value-of select="libxslt:testplugin('SUCCESS')"/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/plugins/testplugin.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/plugins/testplugin.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/plugins/testplugin.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,336 @@
+/*
+ * extensions.c: Implemetation of the extensions support
+ *
+ * Reference:
+ *   http://www.w3.org/TR/1999/REC-xslt-19991116
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#include <libxslt/libxslt.h>
+
+#ifdef WITH_MODULES
+
+#include <string.h>
+#include <limits.h>
+
+#include <libxml/xmlmemory.h>
+#include <libxml/tree.h>
+#include <libxml/hash.h>
+#include <libxml/xmlerror.h>
+#include <libxml/parserInternals.h>
+#include <libxml/xpathInternals.h>
+#include <libxml/list.h>
+#include <libxml/xmlIO.h>
+#include <libxslt/xslt.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/imports.h>
+#include <libxslt/extensions.h>
+
+#define XSLT_TESTPLUGIN_URL "http://xmlsoft.org/xslt/testplugin"
+
+/* make sure init function is exported on win32 */
+#if defined(_WIN32)
+  #define PLUGINPUBFUN __declspec(dllexport)
+#else
+  #define PLUGINPUBFUN
+#endif
+
+
+/************************************************************************
+ * 									*
+ * 		Test plugin module http://xmlsoft.org/xslt/testplugin			*
+ * 									*
+ ************************************************************************/
+
+/************************************************************************
+ * 									*
+ * 		Test of the extension module API			*
+ * 									*
+ ************************************************************************/
+
+static xmlChar *testData = NULL;
+static xmlChar *testStyleData = NULL;
+
+/**
+ * xsltExtFunctionTest:
+ * @ctxt:  the XPath Parser context
+ * @nargs:  the number of arguments
+ *
+ * function libxslt:test() for testing the extensions support.
+ */
+static void
+xsltExtFunctionTest(xmlXPathParserContextPtr ctxt,
+                    int nargs ATTRIBUTE_UNUSED)
+{
+    xsltTransformContextPtr tctxt;
+    void *data = NULL;
+
+    tctxt = xsltXPathGetTransformContext(ctxt);
+
+    if (testData == NULL) {
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "xsltExtFunctionTest: not initialized,"
+                         " calling xsltGetExtData\n");
+        data = xsltGetExtData(tctxt, (const xmlChar *) XSLT_TESTPLUGIN_URL);
+        if (data == NULL) {
+            xsltTransformError(tctxt, NULL, NULL,
+                               "xsltExtElementTest: not initialized\n");
+            return;
+        }
+    }
+    if (tctxt == NULL) {
+        xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+                           "xsltExtFunctionTest: failed to get the transformation context\n");
+        return;
+    }
+    if (data == NULL)
+        data = xsltGetExtData(tctxt, (const xmlChar *) XSLT_TESTPLUGIN_URL);
+    if (data == NULL) {
+        xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+                           "xsltExtFunctionTest: failed to get module data\n");
+        return;
+    }
+    if (data != testData) {
+        xsltTransformError(xsltXPathGetTransformContext(ctxt), NULL, NULL,
+                           "xsltExtFunctionTest: got wrong module data\n");
+        return;
+    }
+#ifdef WITH_XSLT_DEBUG_FUNCTION
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "libxslt:test() called with %d args\n", nargs);
+#endif
+}
+
+/**
+ * xsltExtElementPreCompTest:
+ * @style:  the stylesheet
+ * @inst:  the instruction in the stylesheet
+ *
+ * Process a libxslt:test node
+ */
+static xsltElemPreCompPtr
+xsltExtElementPreCompTest(xsltStylesheetPtr style, xmlNodePtr inst,
+                          xsltTransformFunction function)
+{
+    xsltElemPreCompPtr ret;
+
+    if (style == NULL) {
+        xsltTransformError(NULL, NULL, inst,
+                           "xsltExtElementTest: no transformation context\n");
+        return (NULL);
+    }
+    if (testStyleData == NULL) {
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "xsltExtElementPreCompTest: not initialized,"
+                         " calling xsltStyleGetExtData\n");
+        xsltStyleGetExtData(style, (const xmlChar *) XSLT_TESTPLUGIN_URL);
+        if (testStyleData == NULL) {
+            xsltTransformError(NULL, style, inst,
+                               "xsltExtElementPreCompTest: not initialized\n");
+            if (style != NULL)
+                style->errors++;
+            return (NULL);
+        }
+    }
+    if (inst == NULL) {
+        xsltTransformError(NULL, style, inst,
+                           "xsltExtElementPreCompTest: no instruction\n");
+        if (style != NULL)
+            style->errors++;
+        return (NULL);
+    }
+    ret = xsltNewElemPreComp(style, inst, function);
+    return (ret);
+}
+
+/**
+ * xsltExtElementTest:
+ * @ctxt:  an XSLT processing context
+ * @node:  The current node
+ * @inst:  the instruction in the stylesheet
+ * @comp:  precomputed informations
+ *
+ * Process a libxslt:test node
+ */
+static void
+xsltExtElementTest(xsltTransformContextPtr ctxt, xmlNodePtr node,
+                   xmlNodePtr inst,
+                   xsltElemPreCompPtr comp ATTRIBUTE_UNUSED)
+{
+    xmlNodePtr commentNode;
+
+    if (testData == NULL) {
+        xsltGenericDebug(xsltGenericDebugContext,
+                         "xsltExtElementTest: not initialized,"
+                         " calling xsltGetExtData\n");
+        xsltGetExtData(ctxt, (const xmlChar *) XSLT_TESTPLUGIN_URL);
+        if (testData == NULL) {
+            xsltTransformError(ctxt, NULL, inst,
+                               "xsltExtElementTest: not initialized\n");
+            return;
+        }
+    }
+    if (ctxt == NULL) {
+        xsltTransformError(ctxt, NULL, inst,
+                           "xsltExtElementTest: no transformation context\n");
+        return;
+    }
+    if (node == NULL) {
+        xsltTransformError(ctxt, NULL, inst,
+                           "xsltExtElementTest: no current node\n");
+        return;
+    }
+    if (inst == NULL) {
+        xsltTransformError(ctxt, NULL, inst,
+                           "xsltExtElementTest: no instruction\n");
+        return;
+    }
+    if (ctxt->insert == NULL) {
+        xsltTransformError(ctxt, NULL, inst,
+                           "xsltExtElementTest: no insertion point\n");
+        return;
+    }
+    commentNode = xmlNewComment((const xmlChar *)
+                                "libxslt:testplugin element test worked");
+    xmlAddChild(ctxt->insert, commentNode);
+}
+
+/**
+ * xsltExtInitTest:
+ * @ctxt:  an XSLT transformation context
+ * @URI:  the namespace URI for the extension
+ *
+ * A function called at initialization time of an XSLT extension module
+ *
+ * Returns a pointer to the module specific data for this transformation
+ */
+static void *
+xsltExtInitTest(xsltTransformContextPtr ctxt, const xmlChar * URI)
+{
+    if (testStyleData == NULL) {
+        xsltGenericDebug(xsltGenericErrorContext,
+                         "xsltExtInitTest: not initialized,"
+                         " calling xsltStyleGetExtData\n");
+        xsltStyleGetExtData(ctxt->style, URI);
+        if (testStyleData == NULL) {
+            xsltTransformError(ctxt, NULL, NULL,
+                               "xsltExtInitTest: not initialized\n");
+            return (NULL);
+        }
+    }
+    if (testData != NULL) {
+        xsltTransformError(ctxt, NULL, NULL,
+                           "xsltExtInitTest: already initialized\n");
+        return (NULL);
+    }
+    testData = (void *) "test data";
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Registered test plugin module : %s\n", URI);
+    return (testData);
+}
+
+
+/**
+ * xsltExtShutdownTest:
+ * @ctxt:  an XSLT transformation context
+ * @URI:  the namespace URI for the extension
+ * @data:  the data associated to this module
+ *
+ * A function called at shutdown time of an XSLT extension module
+ */
+static void
+xsltExtShutdownTest(xsltTransformContextPtr ctxt,
+                    const xmlChar * URI, void *data)
+{
+    if (testData == NULL) {
+        xsltTransformError(ctxt, NULL, NULL,
+                           "xsltExtShutdownTest: not initialized\n");
+        return;
+    }
+    if (data != testData) {
+        xsltTransformError(ctxt, NULL, NULL,
+                           "xsltExtShutdownTest: wrong data\n");
+    }
+    testData = NULL;
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Unregistered test plugin module : %s\n", URI);
+}
+
+/**
+ * xsltExtStyleInitTest:
+ * @style:  an XSLT stylesheet
+ * @URI:  the namespace URI for the extension
+ *
+ * A function called at initialization time of an XSLT extension module
+ *
+ * Returns a pointer to the module specific data for this transformation
+ */
+static void *
+xsltExtStyleInitTest(xsltStylesheetPtr style ATTRIBUTE_UNUSED,
+                     const xmlChar * URI)
+{
+    if (testStyleData != NULL) {
+        xsltTransformError(NULL, NULL, NULL,
+                           "xsltExtInitTest: already initialized\n");
+        return (NULL);
+    }
+    testStyleData = (void *) "test data";
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Registered test plugin module : %s\n", URI);
+    return (testStyleData);
+}
+
+
+/**
+ * xsltExtStyleShutdownTest:
+ * @style:  an XSLT stylesheet
+ * @URI:  the namespace URI for the extension
+ * @data:  the data associated to this module
+ *
+ * A function called at shutdown time of an XSLT extension module
+ */
+static void
+xsltExtStyleShutdownTest(xsltStylesheetPtr style ATTRIBUTE_UNUSED,
+                         const xmlChar * URI, void *data)
+{
+    if (testStyleData == NULL) {
+        xsltGenericError(xsltGenericErrorContext,
+                         "xsltExtShutdownTest: not initialized\n");
+        return;
+    }
+    if (data != testStyleData) {
+        xsltTransformError(NULL, NULL, NULL,
+                           "xsltExtShutdownTest: wrong data\n");
+    }
+    testStyleData = NULL;
+    xsltGenericDebug(xsltGenericDebugContext,
+                     "Unregistered test plugin module : %s\n", URI);
+}
+
+/**
+ * xmlsoft_org_xslt_testplugin_init:
+ *
+ * Registers the test plugin module
+ */
+
+void
+PLUGINPUBFUN xmlsoft_org_xslt_testplugin_init(void)
+{
+    xsltRegisterExtModuleFull((const xmlChar *) XSLT_TESTPLUGIN_URL,
+                              xsltExtInitTest, xsltExtShutdownTest,
+                              xsltExtStyleInitTest,
+                              xsltExtStyleShutdownTest);
+    xsltRegisterExtModuleFunction((const xmlChar *) "testplugin",
+                                  (const xmlChar *) XSLT_TESTPLUGIN_URL,
+                                  xsltExtFunctionTest);
+    xsltRegisterExtModuleElement((const xmlChar *) "testplugin",
+                                 (const xmlChar *) XSLT_TESTPLUGIN_URL,
+                                 xsltExtElementPreCompTest,
+                                 xsltExtElementTest);
+}
+
+#endif /*WITH_MODULES*/

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,58 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = \
+	cmdlineparams.xml cmdlineparams.xsl cmdlineparams.out \
+	tst-1.xml tst-1.xsl tst-1.out tst-1.err \
+	tst-2.xml tst-2.xsl tst-2.out tst-2.err \
+	undefvar.xml undefvar.xsl undefvar.out undefvar.err \
+	recglobparam.xsl recglobvar.xsl reclocparam.xsl reclocvar.xsl \
+	recglobparam.xml recglobvar.xml reclocparam.xml reclocvar.xml 
+
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running reports tests'
+	@(echo > .memdump)
+	-@(for i in $(srcdir)/../docs/*.xml ; do \
+	  if [ -d $$i ] ; then continue ; fi ; \
+	  doc=`basename $$i .xml` ; \
+	  for j in $(srcdir)/$$doc*.xsl ; do \
+	  if [ ! -f $$j ] ; then continue ; fi ; \
+	  if [ -d $$j ] ; then continue ; fi ; \
+	  name=`basename $$j .xsl`; \
+	  out=$(srcdir)/"$$name".out; \
+	  err=$(srcdir)/"$$name".err; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+	              --stringparam test passed_value \
+		      --stringparam test2 passed_value2 \
+	              $$j $$i > result.$$name \
+	              2> err.$$name ; \
+	  if [ ! -f $$out ] ; then \
+	  	cp result.$$name $$out ; \
+		if [ -s err.$$name ] ; then \
+			cp err.$$name $$err ; \
+		fi ; \
+	  else \
+	  	diff $$out result.$$name; \
+		if [ -s $$err ] ; then \
+	  		diff $$err err.$$name; \
+		else \
+			diff /dev/null err.$$name; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f result.$$name err.$$name; \
+	  done ; done)
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,424 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/reports
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+	cmdlineparams.xml cmdlineparams.xsl cmdlineparams.out \
+	tst-1.xml tst-1.xsl tst-1.out tst-1.err \
+	tst-2.xml tst-2.xsl tst-2.out tst-2.err \
+	undefvar.xml undefvar.xsl undefvar.out undefvar.err \
+	recglobparam.xsl recglobvar.xsl reclocparam.xsl reclocvar.xsl \
+	recglobparam.xml recglobvar.xml reclocparam.xml reclocvar.xml 
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/reports/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/reports/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running reports tests'
+	@(echo > .memdump)
+	-@(for i in $(srcdir)/../docs/*.xml ; do \
+	  if [ -d $$i ] ; then continue ; fi ; \
+	  doc=`basename $$i .xml` ; \
+	  for j in $(srcdir)/$$doc*.xsl ; do \
+	  if [ ! -f $$j ] ; then continue ; fi ; \
+	  if [ -d $$j ] ; then continue ; fi ; \
+	  name=`basename $$j .xsl`; \
+	  out=$(srcdir)/"$$name".out; \
+	  err=$(srcdir)/"$$name".err; \
+	  log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc \
+	              --stringparam test passed_value \
+		      --stringparam test2 passed_value2 \
+	              $$j $$i > result.$$name \
+	              2> err.$$name ; \
+	  if [ ! -f $$out ] ; then \
+	  	cp result.$$name $$out ; \
+		if [ -s err.$$name ] ; then \
+			cp err.$$name $$err ; \
+		fi ; \
+	  else \
+	  	diff $$out result.$$name; \
+		if [ -s $$err ] ; then \
+	  		diff $$err err.$$name; \
+		else \
+			diff /dev/null err.$$name; \
+		fi ; \
+	  fi ; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`;\
+	  if [ -n "$$log" ] ; then \
+	  	echo $$name result ; \
+		echo $$log ; \
+	  fi ; \
+	  rm -f result.$$name err.$$name; \
+	  done ; done)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<root>
+  test: no value
+  test2: passed_value2</root>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xsl version="1.0"?>
+<root/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/cmdlineparams.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:variable name="test">no value</xsl:variable>
+<xsl:param name="test2">no value</xsl:param>
+<xsl:template match="/">
+<root>
+  test: <xsl:value-of select="$test"/>
+  test2: <xsl:value-of select="$test2"/>
+</root>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobparam.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobparam.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobparam.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobparam.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobparam.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobparam.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+  <xsl:param name="ok"><xsl:value-of select="$ok"/></xsl:param>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobvar.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobvar.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobvar.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobvar.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobvar.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/recglobvar.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+  <xsl:variable name="ok"><xsl:value-of select="$ok"/></xsl:variable>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocparam.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocparam.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocparam.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocparam.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocparam.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocparam.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+<xsl:template match="/">
+  <xsl:param name="ok"><xsl:value-of select="$ok"/></xsl:param>
+  <foo/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocvar.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocvar.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocvar.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocvar.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocvar.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/reclocvar.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+<xsl:template match="/">
+  <xsl:variable name="ok"><xsl:value-of select="$ok"/></xsl:variable>
+  <foo/>
+</xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.err
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.err	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.err	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+compilation error: file ./tst-1.xsl line 4 element variable
+redefinition of global variable my.var

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.out
===================================================================

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-1.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:variable name="my.var">old-value</xsl:variable>
+  <xsl:variable name="my.var">the-value</xsl:variable>
+  <xsl:template match="/">
+    <xsl:value-of select="$my.var"/>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.err
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.err	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.err	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,6 @@
+compilation error: file ./tst-2.xsl line 2 element text
+misplaced text element: '
+
+a not allowed top level element
+
+'

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.out
===================================================================

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1 @@
+<doc/>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/tst-2.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+a not allowed top level element
+
+<xsl:template match="/">
+
+</xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.err
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.err	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.err	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+runtime error: file ./undefvar.xsl line 6 element value-of
+unregistered variable one
+xmlXPathCompOpEval: parameter error
+xmlXPathCompiledEval: 1 object left on the stack
+runtime error: file ./undefvar.xsl line 6 element value-of
+xsltValueOf: text copy failed
+no result for ./undefvar.xml

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.out
===================================================================

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<eins>
+<content>content of one</content>
+</eins>

Added: packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/reports/undefvar.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="xml" indent="yes" encoding="ISO-8859-1"/>
+  <xsl:variable name="two">abcde</xsl:variable>
+  <xsl:template match="*">
+    <xsl:value-of select="translate('hello','ABCDE',$one)"/>
+  </xsl:template>
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/xinclude/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xinclude/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xinclude/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,33 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST =		\
+	e.xml		\
+	e.xsl		\
+	x1.xml		\
+	x2.xml		\
+	normal.out	\
+	xinclude.out
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running XInclude test'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/e.xsl $(srcdir)/e.xml > res ; \
+	diff $(srcdir)/normal.out res; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f res)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc --xinclude $(srcdir)/e.xsl $(srcdir)/e.xml > res ; \
+	diff $(srcdir)/xinclude.out res; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f res)
+
+
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/xinclude/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xinclude/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xinclude/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,398 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/xinclude
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = \
+	e.xml		\
+	e.xsl		\
+	x1.xml		\
+	x2.xml		\
+	normal.out	\
+	xinclude.out
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/xinclude/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/xinclude/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running XInclude test'
+	@(echo > .memdump)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc $(srcdir)/e.xsl $(srcdir)/e.xml > res ; \
+	diff $(srcdir)/normal.out res; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f res)
+	@($(CHECKER) $(top_builddir)/xsltproc/xsltproc --xinclude $(srcdir)/e.xsl $(srcdir)/e.xml > res ; \
+	diff $(srcdir)/xinclude.out res; \
+	grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true;\
+	rm -f res)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/xinclude/e.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xinclude/e.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xinclude/e.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2 @@
+<?xml version="1.0"?> 
+<e/> 

Added: packages/libxslt/branches/upstream/1.1.16/tests/xinclude/e.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xinclude/e.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xinclude/e.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?> 
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
+version="1.0"> 
+ 
+        <xsl:template match="/"> 
+                <xsl:apply-templates select="document('x1.xml')/foo"/> 
+        </xsl:template> 
+ 
+        <xsl:template match="*|@*|text()"> 
+                <xsl:copy><xsl:apply-templates select="*|@*| 
+text()" /></xsl:copy> 
+        </xsl:template> 
+ 
+</xsl:stylesheet> 

Added: packages/libxslt/branches/upstream/1.1.16/tests/xinclude/normal.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xinclude/normal.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xinclude/normal.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<foo> 
+        <element>x1</element> 
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="x2.xml"/> 
+</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/xinclude/x1.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xinclude/x1.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xinclude/x1.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?> 
+<foo> 
+        <element>x1</element> 
+        <xi:include href="x2.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> 
+</foo> 

Added: packages/libxslt/branches/upstream/1.1.16/tests/xinclude/x2.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xinclude/x2.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xinclude/x2.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,4 @@
+<?xml version="1.0"?> 
+<foo> 
+        <element>x2</element> 
+</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/xinclude/xinclude.out
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xinclude/xinclude.out	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xinclude/xinclude.out	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<foo> 
+        <element>x1</element> 
+        <foo> 
+        <element>x2</element> 
+</foo> 
+</foo>

Added: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,46 @@
+## Process this file with automake to produce Makefile.in
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+EXTRA_DIST = REC-xml-20001006.xml xmlspec-v21.dtd W3C-REC.css \
+             logo-REC xmlspec.xsl REC-xml-2e.xsl diffspec.xsl \
+	     REC-xml-20001006.html REC-xml-20001006-review.html
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running xmlspec tests'
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc -timing \
+		$(srcdir)/REC-xml-2e.xsl $(srcdir)/REC-xml-20001006.xml \
+		> REC-xml-20001006.out 2> debug ; \
+	  diff $(srcdir)/REC-xml-20001006.html REC-xml-20001006.out | \
+		grep -v 'id[0-9]' | grep -v -- '---' | grep -v 100 | grep -v 3866 ; \
+	  grep implemented debug | sort | uniq -c || true; \
+	  grep " ms$$" debug || true; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo REC-xml-20001006 result ; \
+		echo $$log ; \
+	fi
+	@rm -f REC-xml-20001006.out
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc  \
+		-timing --param show.diff.markup 1 \
+		$(srcdir)/REC-xml-2e.xsl $(srcdir)/REC-xml-20001006.xml \
+		> REC-xml-20001006-review.out 2> debug ; \
+	  diff $(srcdir)/REC-xml-20001006-review.html REC-xml-20001006-review.out | \
+		grep -v 'id[0-9]' | grep -v -- '---' | grep -v 117 | grep -v 4066 ; \
+	  grep implemented debug | sort | uniq -c || true; \
+	  grep " ms$$" debug || true; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo "REC-xml-20001006 (show.diff.markup) result" ; \
+		echo $$log ; \
+	fi
+	@rm -f REC-xml-20001006-review.out
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,413 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/xmlspec
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+EXTRA_DIST = REC-xml-20001006.xml xmlspec-v21.dtd W3C-REC.css \
+             logo-REC xmlspec.xsl REC-xml-2e.xsl diffspec.xsl \
+	     REC-xml-20001006.html REC-xml-20001006-review.html
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tests/xmlspec/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  tests/xmlspec/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+$(top_builddir)/xsltproc/xsltproc:
+	@(cd ../../xsltproc ; $(MAKE) xsltproc)
+
+all:
+
+valgrind:
+	@echo '## Running the regression tests under Valgrind'
+	$(MAKE) CHECKER='valgrind -q' tests
+
+test tests: $(top_builddir)/xsltproc/xsltproc
+	@echo '## Running xmlspec tests'
+	@(echo > .memdump)
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc -timing \
+		$(srcdir)/REC-xml-2e.xsl $(srcdir)/REC-xml-20001006.xml \
+		> REC-xml-20001006.out 2> debug ; \
+	  diff $(srcdir)/REC-xml-20001006.html REC-xml-20001006.out | \
+		grep -v 'id[0-9]' | grep -v -- '---' | grep -v 100 | grep -v 3866 ; \
+	  grep implemented debug | sort | uniq -c || true; \
+	  grep " ms$$" debug || true; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo REC-xml-20001006 result ; \
+		echo $$log ; \
+	fi
+	@rm -f REC-xml-20001006.out
+	@log=`$(CHECKER) $(top_builddir)/xsltproc/xsltproc  \
+		-timing --param show.diff.markup 1 \
+		$(srcdir)/REC-xml-2e.xsl $(srcdir)/REC-xml-20001006.xml \
+		> REC-xml-20001006-review.out 2> debug ; \
+	  diff $(srcdir)/REC-xml-20001006-review.html REC-xml-20001006-review.out | \
+		grep -v 'id[0-9]' | grep -v -- '---' | grep -v 117 | grep -v 4066 ; \
+	  grep implemented debug | sort | uniq -c || true; \
+	  grep " ms$$" debug || true; \
+	  grep "MORY ALLO" .memdump  | grep -v "MEMORY ALLOCATED : 0" || true`
+	@if [ -n "$$log" ] ; then \
+	  	echo "REC-xml-20001006 (show.diff.markup) result" ; \
+		echo $$log ; \
+	fi
+	@rm -f REC-xml-20001006-review.out
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006-review.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006-review.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006-review.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2585 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="EN"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Extensible Markup Language (XML) 1.0 (Second Edition) -- Review Version</title><style type="text/css">
+code           { font-family: monospace; }
+
+div.constraint,
+div.issue,
+div.note,
+div.notice     { margin-left: 2em; }
+
+dt.label       { display: run-in; }
+
+li p           { margin-top: 0.3em;
+                 margin-bottom: 0.3em; }
+      
+div.diff-add  { background-color: yellow }
+div.diff-del  { text-decoration: line-through }
+div.diff-chg  { background-color: lime }
+div.diff-off  {  }
+
+span.diff-add { background-color: yellow }
+span.diff-del { text-decoration: line-through }
+span.diff-chg { background-color: lime }
+span.diff-off {  }
+
+td.diff-add   { background-color: yellow }
+td.diff-del   { text-decoration: line-through }
+td.diff-chg   { background-color: lime }
+td.diff-off   {  }
+</style><link rel="stylesheet" type="text/css" href="W3C-REC.css"></head><body>
+
+<div class="head"><p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width="72"></a></p>
+<h1>Extensible Markup Language (XML) 1.0 (Second Edition)</h1>
+<h2>W3C Recommendation 6 October 2000</h2><dl><dt>This version:</dt><dd><a href="http://www.w3.org/TR/2000/REC-xml-20001006">http://www.w3.org/TR/2000/REC-xml-20001006</a>
+(<a href="http://www.w3.org/TR/2000/REC-xml-20001006.html">XHTML</a>, <a href="http://www.w3.org/TR/2000/REC-xml-20001006.xml">XML</a>, <a href="http://www.w3.org/TR/2000/REC-xml-20001006.pdf">PDF</a>, <a href="http://www.w3.org/TR/2000/REC-xml-20001006-review.html">XHTML
+review version</a> with color-coded revision indicators)</dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></dd><dt>Previous versions:</dt><dd><a href="http://www.w3.org/TR/2000/WD-xml-2e-20000814"> http://www.w3.org/TR/2000/WD-xml-2e-20000814</a>
+<a href="http://www.w3.org/TR/1998/REC-xml-19980210"> http://www.w3.org/TR/1998/REC-xml-19980210</a> </dd><dt>Editors:</dt>
+<dd>Tim Bray, Textuality and Netscape <a href="mailto:tbray at textuality.com">&lt;tbray at textuality.com&gt;</a></dd>
+<dd>Jean Paoli, Microsoft <a href="mailto:jeanpa at microsoft.com">&lt;jeanpa at microsoft.com&gt;</a></dd>
+<dd><span class="diff-chg">C. M. Sperberg-McQueen, University
+of Illinois at Chicago and Text Encoding Initiative <a href="mailto:cmsmcq at uic.edu">&lt;cmsmcq at uic.edu&gt;</a></span></dd>
+<dd><span class="diff-add">Eve Maler, Sun Microsystems,
+Inc. <a href="mailto:elm at east.sun.com">&lt;eve.maler at east.sun.com&gt;</a> - Second Edition</span></dd>
+</dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2000 <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> (<a href="http://www.lcs.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href="http://www.inria.fr/"><abbr lang="fr" title="Institut National de Recherche en Informatique et Automatique">INRIA</abbr></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>, <a href="http://www.w3.org/Consortium/Legal/copyright-documents-19990405">document use</a>, and <a href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">software licensing</a> rules apply.</p></div><hr><div id="abstract">
+<h2><a name="abstract">Abstract</a></h2>
+<p>The Extensible Markup Language (XML) is a subset of SGML that is completely
+described in this document. Its goal is to enable generic SGML to be served,
+received, and processed on the Web in the way that is now possible with HTML.
+XML has been designed for ease of implementation and for interoperability
+with both SGML and HTML.</p>
+</div><div id="status">
+<h2><a name="status">Status of this Document</a></h2>
+<p>This document has been reviewed by W3C Members and other interested parties
+and has been endorsed by the Director as a W3C Recommendation. It is a stable
+document and may be used as reference material or cited as a normative reference
+from another document. W3C's role in making the Recommendation is to draw
+attention to the specification and to promote its widespread deployment. This
+enhances the functionality and interoperability of the Web.</p>
+<p>This document specifies a syntax created by subsetting an existing, widely
+used international text processing standard (Standard Generalized Markup Language,
+ISO 8879:1986(E) as amended and corrected) for use on the World Wide Web.
+It is a product of the W3C XML Activity, details of which can be found at <a href="http://www.w3.org/XML/">http://www.w3.org/XML</a>. <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E100">[E100]</a>
+The English version of this specification is the only normative version. However,
+for translations of this document, see <a href="http://www.w3.org/XML/#trans">http://www.w3.org/XML/#trans</a>. </span>A
+list of current W3C Recommendations and other technical documents can be found
+at <a href="http://www.w3.org/TR/">http://www.w3.org/TR</a>.</p>
+<div class="diff-del"><p><a href="http://www.w3.org/XML/xml-19980210-errata#E66">[E66]</a>This
+specification uses the term URI, which is defined by <a href="#Berners-Lee">[Berners-Lee et al.]</a>,
+a work in progress expected to update <a href="#RFC1738">[IETF RFC1738]</a> and <a href="#RFC1808">[IETF RFC1808]</a>.</p></div>
+<div class="diff-add"><p>This second edition is <em>not</em> a new version of XML (first published 10 February 1998);
+it merely incorporates the changes dictated by the first-edition errata (available
+at <a href="http://www.w3.org/XML/xml-19980210-errata">http://www.w3.org/XML/xml-19980210-errata</a>)
+as a convenience to readers. The errata list for this second edition is available
+at <a href="http://www.w3.org/XML/xml-V10-2e-errata">http://www.w3.org/XML/xml-V10-2e-errata</a>.</p></div>
+<p>Please report errors in this document to <a href="mailto:xml-editor at w3.org">xml-editor at w3.org</a><span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E101">[E101]</a>; <a href="http://lists.w3.org/Archives/Public/xml-editor">archives</a> are available</span>.</p>
+<div class="diff-add"><div class="note"><p class="prefix"><b>Note:</b></p>
+<p>C. M. Sperberg-McQueen's affiliation has changed since the publication
+of the first edition. He is now at the World Wide Web Consortium, and can
+be contacted at <a href="mailto:cmsmcq at w3.org">cmsmcq at w3.org</a>.</p>
+</div></div>
+</div>
+<div class="toc">
+<h2><a name="contents">Table of Contents</a></h2><p class="toc">1 <a href="#sec-intro">Introduction</a><br>    1.1 <a href="#sec-origin-goals">Origin and Goals</a><br>    1.2 <a href="#sec-terminology">Terminology</a><br>2 <a href="#sec-documents">Documents</a><br>    2.1 <a href="#sec-well-formed">Well-Formed XML Documents</a><br>    2.2 <a href="#charsets">Characters</a><br>    2.3 <a href="#sec-common-syn">Common Syntactic Constructs</a><br>    2.4 <a href="#syntax">Character Data and Markup</a><br>    2.5 <a href="#sec-comments">Comments</a><br>    2.6 <a href="#sec-pi">Processing Instructions</a><br>    2.7 <a href="#sec-cdata-sect">CDATA Sections</a><br>    2.8 <a href="#sec-prolog-dtd">Prolog and Document Type Declaration</a><br>    2.9 <a href="#sec-rmd">Standalone Document Declaration</a><br>    2.10 <a href="#sec-white-space">White Space Handling</a><br>    2.11 <a href="#sec-line-ends">End-of-Line Handling</a><br>    2.12 <a href="#sec-lang-tag">Language Identification</a><br>3 <a href="#sec-logical-struct">Logical Structures</a><br>    3.1 <a href="#sec-starttags">Start-Tags, End-Tags, and Empty-Element Tags</a><br>    3.2 <a href="#elemdecls">Element Type Declarations</a><br>        3.2.1 <a href="#sec-element-content">Element Content</a><br>        3.2.2 <a href="#sec-mixed-content">Mixed Content</a><br>    3.3 <a href="#attdecls">Attribute-List Declarations</a><br>        3.3.1 <a href="#sec-attribute-types">Attribute Types</a><br>        3.3.2 <a href="#sec-attr-defaults">Attribute Defaults</a><br>        3.3.3 <a href="#AVNormalize">Attribute-Value
+Normalization</a><br>    3.4 <a href="#sec-condition-sect">Conditional Sections</a><br>4 <a href="#sec-physical-struct">Physical Structures</a><br>    4.1 <a href="#sec-references">Character and Entity References</a><br>    4.2 <a href="#sec-entity-decl">Entity Declarations</a><br>        4.2.1 <a href="#sec-internal-ent">Internal Entities</a><br>        4.2.2 <a href="#sec-external-ent">External Entities</a><br>    4.3 <a href="#TextEntities">Parsed Entities</a><br>        4.3.1 <a href="#sec-TextDecl">The Text Declaration</a><br>        4.3.2 <a href="#wf-entities">Well-Formed Parsed Entities</a><br>        4.3.3 <a href="#charencoding">Character Encoding in Entities</a><br>    4.4 <a href="#entproc">XML Processor Treatment of Entities and References</a><br>        4.4.1 <a href="#not-recognized">Not Recognized</a><br>        4.4.2 <a href="#included">Included</a><br>        4.4.3 <a href="#include-if-valid">Included If Validating</a><br>        4.4.4 <a href="#forbidden">Forbidden</a><br>        4.4.5 <a href="#inliteral">Included in Literal</a><br>        4.4.6 <a href="#notify">Notify</a><br>        4.4.7 <a href="#bypass">Bypassed</a><br>        4.4.8 <a href="#as-PE">Included as PE</a><br>    4.5 <a href="#intern-replacement">Construction of Internal Entity Replacement Text</a><br>    4.6 <a href="#sec-predefined-ent">Predefined Entities</a><br>    4.7 <a href="#Notations">Notation Declarations</a><br>    4.8 <a href="#sec-doc-entity">Document Entity</a><br>5 <a href="#sec-conformance">Conformance</a><br>    5.1 <a href="#proc-types">Validating and Non-Validating Processors</a><br>    5.2 <a href="#safe-behavior">Using XML Processors</a><br>6 <a href="#sec-notation">Notation</a><br></p>
+<h3>Appendices</h3><p class="toc">A <a href="#sec-bibliography">References</a><br>    A.1 <a href="#sec-existing-stds">Normative References</a><br>    A.2 <a href="#null">Other References</a><br>B <a href="#CharClasses">Character Classes</a><br>C <a href="#sec-xml-and-sgml">XML and SGML</a> (Non-Normative)<br>D <a href="#sec-entexpand">Expansion of Entity and Character References</a> (Non-Normative)<br>E <a href="#determinism">Deterministic Content Models</a> (Non-Normative)<br>F <a href="#sec-guessing">Autodetection
+of Character Encodings</a> (Non-Normative)<br>    F.1 <a href="#sec-guessing-no-ext-info">Detection Without External Encoding Information</a><br>    F.2 <a href="#sec-guessing-with-ext-info">Priorities in the Presence of External Encoding Information</a><br>G <a href="#sec-xml-wg">W3C XML Working Group</a> (Non-Normative)<br>H <a href="#sec-core-wg">W3C XML Core Group</a> (Non-Normative)<br>I <a href="#id2683713">Production Notes</a> (Non-Normative)<br></p></div><hr><div class="body">
+<div class="div1">
+
+<h2><a name="sec-intro"></a>1 Introduction</h2>
+<p>Extensible Markup Language, abbreviated XML, describes a class of data
+objects called <a title="XML Document" href="#dt-xml-doc">XML documents</a> and partially
+describes the behavior of computer programs which process them. XML is an
+application profile or restricted form of SGML, the Standard Generalized Markup
+Language <a href="#ISO8879">[ISO 8879]</a>. By construction, XML documents are conforming
+SGML documents.</p>
+<p>XML documents are made up of storage units called <a title="Entity" href="#dt-entity">entities</a>,
+which contain either parsed or unparsed data. Parsed data is made up of <a title="Character" href="#dt-character">characters</a>, some of which form <a title="Character Data" href="#dt-chardata">character
+data</a>, and some of which form <a title="Markup" href="#dt-markup">markup</a>.
+Markup encodes a description of the document's storage layout and logical
+structure. XML provides a mechanism to impose constraints on the storage layout
+and logical structure.</p>
+<p>[<a name="dt-xml-proc" title="XML Processor">Definition</a>: A software module called
+an <b>XML processor</b> is used to read XML documents and provide access
+to their content and structure.] [<a name="dt-app" title="Application">Definition</a>: It
+is assumed that an XML processor is doing its work on behalf of another module,
+called the <b>application</b>.] This specification describes
+the required behavior of an XML processor in terms of how it must read XML
+data and the information it must provide to the application.</p>
+<div class="div2">
+
+<h3><a name="sec-origin-goals"></a>1.1 Origin and Goals</h3>
+<p>XML was developed by an XML Working Group (originally known as the SGML
+Editorial Review Board) formed under the auspices of the World Wide Web Consortium
+(W3C) in 1996. It was chaired by Jon Bosak of Sun Microsystems with the active
+participation of an XML Special Interest Group (previously known as the SGML
+Working Group) also organized by the W3C. The membership of the XML Working
+Group is given in an appendix. Dan Connolly served as the WG's contact with
+the W3C.</p>
+<p>The design goals for XML are:</p>
+<ol>
+<li><p>XML shall be straightforwardly usable over the Internet.</p></li>
+<li><p>XML shall support a wide variety of applications.</p></li>
+<li><p>XML shall be compatible with SGML.</p></li>
+<li><p>It shall be easy to write programs which process XML documents.</p>
+</li>
+<li><p>The number of optional features in XML is to be kept to the absolute
+minimum, ideally zero.</p></li>
+<li><p>XML documents should be human-legible and reasonably clear.</p></li>
+<li><p>The XML design should be prepared quickly.</p></li>
+<li><p>The design of XML shall be formal and concise.</p></li>
+<li><p>XML documents shall be easy to create.</p></li>
+<li><p>Terseness in XML markup is of minimal importance.</p></li>
+</ol>
+<p>This specification, together with associated standards (Unicode and ISO/IEC
+10646 for characters, Internet RFC 1766 for language identification tags,
+ISO 639 for language name codes, and ISO 3166 for country name codes), provides
+all the information necessary to understand XML Version 1.0 and
+construct computer programs to process it.</p>
+<p>This version of the XML specification  may be distributed freely, as long as
+all text and legal notices remain intact.</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-terminology"></a>1.2 Terminology</h3>
+<p>The terminology used to describe XML documents is defined in the body of
+this specification. The terms defined in the following list are used in building
+those definitions and in describing the actions of an XML processor: </p><dl>
+<dt class="label">may</dt>
+<dd>
+<p>[<a name="dt-may" title="May">Definition</a>: Conforming documents and XML processors
+are permitted to but need not behave as described.]</p>
+</dd>
+<dt class="label">must</dt>
+<dd>
+<p>[<a name="dt-must" title="Must">Definition</a>: Conforming documents and XML processors
+are required to behave as described; otherwise they are in error. ]</p>
+</dd>
+<dt class="label">error</dt>
+<dd>
+<p>[<a name="dt-error" title="Error">Definition</a>: A violation of the rules of this specification;
+results are undefined. Conforming software may detect and report an error
+and may recover from it.]</p>
+</dd>
+<dt class="label">fatal error</dt>
+<dd>
+<p>[<a name="dt-fatal" title="Fatal Error">Definition</a>: An error which a conforming <a title="XML Processor" href="#dt-xml-proc">XML processor</a> must detect and report to the application.
+After encountering a fatal error, the processor may continue processing the
+data to search for further errors and may report such errors to the application.
+In order to support correction of errors, the processor may make unprocessed
+data from the document (with intermingled character data and markup) available
+to the application. Once a fatal error is detected, however, the processor
+must not continue normal processing (i.e., it must not continue to pass character
+data and information about the document's logical structure to the application
+in the normal way).]</p>
+</dd>
+<dt class="label">at user option</dt>
+<dd>
+<p>[<a name="dt-atuseroption" title="At user option">Definition</a>: Conforming software
+may or must (depending on the modal verb in the sentence) behave as described;
+if it does, it must provide users a means to enable or disable the behavior
+described.]</p>
+</dd>
+<dt class="label">validity constraint</dt>
+<dd>
+<p>[<a name="dt-vc" title="Validity constraint">Definition</a>: A rule which applies to
+all <a title="Validity" href="#dt-valid">valid</a> XML documents. Violations of validity
+constraints are errors; they must, at user option, be reported by <a title="Validating Processor" href="#dt-validating">validating XML processors</a>.]</p>
+</dd>
+<dt class="label">well-formedness constraint</dt>
+<dd>
+<p>[<a name="dt-wfc" title="Well-formedness constraint">Definition</a>: A rule which applies
+to all <a title="Well-Formed" href="#dt-wellformed">well-formed</a> XML documents. Violations
+of well-formedness constraints are <a title="Fatal Error" href="#dt-fatal">fatal errors</a>.]</p>
+</dd>
+<dt class="label">match</dt>
+<dd>
+<p>[<a name="dt-match" title="match">Definition</a>: (Of strings or names:) Two strings
+or names being compared must be identical. Characters with multiple possible
+representations in ISO/IEC 10646 (e.g. characters with both precomposed and
+base+diacritic forms) match only if they have the same representation in both
+strings. <span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E85">[E85]</a>At
+user option, processors may normalize such characters to some canonical form. </span>No
+case folding is performed. (Of strings and rules in the grammar:) A string
+matches a grammatical production if it belongs to the language generated by
+that production. (Of content and content models:) An element matches its declaration
+when it conforms in the fashion described in the constraint <a href="#elementvalid"><b>[VC: Element Valid]</b></a>.]</p>
+</dd>
+<dt class="label">for compatibility</dt>
+<dd>
+<p>[<a name="dt-compat" title="For Compatibility">Definition</a>: <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E87">[E87]</a>Marks
+a sentence describing</span> a feature of XML included solely to ensure
+that XML remains compatible with SGML.]</p>
+</dd>
+<dt class="label">for interoperability</dt>
+<dd>
+<p>[<a name="dt-interop" title="For interoperability">Definition</a>: <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E87">[E87]</a>Marks
+a sentence describing</span> a non-binding recommendation included to increase
+the chances that XML documents can be processed by the existing installed
+base of SGML processors which predate the WebSGML Adaptations Annex to ISO 8879.]</p>
+</dd>
+</dl><p></p>
+</div>
+</div>
+
+<div class="div1">
+
+<h2><a name="sec-documents"></a>2 Documents</h2>
+<p>[<a name="dt-xml-doc" title="XML Document">Definition</a>:  A data object is an <b>XML
+document</b> if it is <a title="Well-Formed" href="#dt-wellformed">well-formed</a>,
+as defined in this specification. A well-formed XML document may in addition
+be <a title="Validity" href="#dt-valid">valid</a> if it meets certain further constraints.]</p>
+<p>Each XML document has both a logical and a physical structure. Physically,
+the document is composed of units called <a title="Entity" href="#dt-entity">entities</a>.
+An entity may <a title="Entity Reference" href="#dt-entref">refer</a> to other entities to
+cause their inclusion in the document. A document begins in a "root"
+or <a title="Document Entity" href="#dt-docent">document entity</a>. Logically, the document
+is composed of declarations, elements, comments, character references, and
+processing instructions, all of which are indicated in the document by explicit
+markup. The logical and physical structures must nest properly, as described
+in <a href="#wf-entities"><b>4.3.2 Well-Formed Parsed Entities</b></a>.</p>
+<div class="div2">
+
+<h3><a name="sec-well-formed"></a>2.1 Well-Formed XML Documents</h3>
+<p>[<a name="dt-wellformed" title="Well-Formed">Definition</a>:  A textual object is a <b>well-formed</b>
+XML document if:]</p>
+<ol>
+<li><p>Taken as a whole, it matches the production labeled <a href="#NT-document">document</a>.</p>
+</li>
+<li><p>It meets all the well-formedness constraints given in this specification.</p>
+</li>
+<li><p>Each of the <a title="Text Entity" href="#dt-parsedent">parsed entities</a>
+which is referenced directly or indirectly within the document is <a title="Well-Formed" href="#dt-wellformed">well-formed</a>.</p></li>
+</ol>
+
+<h5>Document</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-document"></a>[1]   </td><td><code>document</code></td><td>   ::=   </td><td><code><a href="#NT-prolog">prolog</a> <a href="#NT-element">element</a> <a href="#NT-Misc">Misc</a>*</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>Matching the <a href="#NT-document">document</a> production implies that:</p>
+<ol>
+<li><p>It contains one or more <a title="Element" href="#dt-element">elements</a>.</p>
+</li>
+
+<li><p>[<a name="dt-root" title="Root Element">Definition</a>: There is exactly one element,
+called the <b>root</b>, or document element, no part of which appears
+in the <a title="Content" href="#dt-content">content</a> of any other element.] <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E17">[E17]</a>For
+all other elements, if the <a title="Start-Tag" href="#dt-stag">start-tag</a> is in
+the content of another element, the <a title="End Tag" href="#dt-etag">end-tag</a>
+is in the content of the same element.</span> More simply stated, the elements,
+delimited by start- and end-tags, nest properly within each other.</p></li>
+</ol>
+<p>[<a name="dt-parentchild" title="Parent/Child">Definition</a>: As a consequence of this,
+for each non-root element <code>C</code> in the document, there is one other element <code>P</code>
+in the document such that <code>C</code> is in the content of <code>P</code>, but
+is not in the content of any other element that is in the content of <code>P</code>. <code>P</code>
+is referred to as the <b>parent</b> of <code>C</code>, and <code>C</code> as
+a <b>child</b> of <code>P</code>.]</p>
+</div>
+<div class="div2">
+
+<h3><a name="charsets"></a>2.2 Characters</h3>
+<p>[<a name="dt-text" title="Text">Definition</a>: A parsed entity contains <b>text</b>,
+a sequence of <a title="Character" href="#dt-character">characters</a>, which may
+represent markup or character data.] [<a name="dt-character" title="Character">Definition</a>: A <b>character</b>
+is an atomic unit of text as specified by ISO/IEC 10646 <a href="#ISO10646">[ISO/IEC 10646]</a> <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</a>(see
+also <a href="#ISO10646-2000">[ISO/IEC 10646-2000]</a>)</span>. Legal characters are tab, carriage
+return, line feed, and the legal <span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E35">[E35]</a>graphic </span>characters
+of Unicode and ISO/IEC 10646. <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E69">[E69]</a>The
+versions of these standards cited in <a href="#sec-existing-stds"><b>A.1 Normative References</b></a> were
+current at the time this document was prepared. New characters may be added
+to these standards by amendments or new editions. Consequently, XML processors
+must accept any character in the range specified for <a href="#NT-Char">Char</a>.</span>
+The use of "compatibility characters", as defined in section
+6.8 of <a href="#Unicode">[Unicode]</a> <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</a>(see
+also D21 in section 3.6 of <a href="#Unicode3">[Unicode3]</a>)</span>, is discouraged.]</p>
+
+<h5>Character Range</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-Char"></a>[2]   </td><td><code>Char</code></td><td>   ::=   </td><td><code>#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]</code></td><xsltdebug></xsltdebug><td><i>/* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */</i></td></tr>
+</tbody></table>
+<p>The mechanism for encoding character code points into bit patterns may
+vary from entity to entity. All XML processors must accept the UTF-8 and UTF-16
+encodings of 10646; the mechanisms for signaling which of the two is in use,
+or for bringing other encodings into play, are discussed later, in <a href="#charencoding"><b>4.3.3 Character Encoding in Entities</b></a>.</p>
+
+</div>
+<div class="div2">
+
+<h3><a name="sec-common-syn"></a>2.3 Common Syntactic Constructs</h3>
+<p>This section defines some symbols used widely in the grammar.</p>
+<p><a href="#NT-S">S</a> (white space) consists of one or more space (#x20)
+characters, carriage returns, line feeds, or tabs.</p>
+
+<h5>White Space</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-S"></a>[3]   </td><td><code>S</code></td><td>   ::=   </td><td><code>(#x20 | #x9 | #xD | #xA)+</code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>Characters are classified for convenience as letters, digits, or other
+characters. <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E30">[E30]</a>A
+letter consists of an alphabetic or syllabic base character or an ideographic
+character.</span> Full definitions of the specific characters in each class
+are given in <a href="#CharClasses"><b>B Character Classes</b></a>.</p>
+<p>[<a name="dt-name" title="Name">Definition</a>: A <b>Name</b> is a token beginning
+with a letter or one of a few punctuation characters, and continuing with
+letters, digits, hyphens, underscores, colons, or full stops, together known
+as name characters.] Names beginning with the string "<code>xml</code>",
+or any string which would match <code>(('X'|'x') ('M'|'m') ('L'|'l'))</code>,
+are reserved for standardization in this or future versions of this specification.</p>
+<div class="note"><p class="prefix"><b>Note:</b></p>
+<div class="diff-chg"><p><a href="http://www.w3.org/XML/xml-19980210-errata#E98">[E98]</a>The
+Namespaces in XML Recommendation <a href="#xml-names">[XML Names]</a> assigns a meaning
+to names containing colon characters. Therefore, authors should not use the
+colon in XML names except for namespace purposes, but XML processors must
+accept the colon as a name character.</p></div>
+</div>
+<p>An <a href="#NT-Nmtoken">Nmtoken</a> (name token) is any mixture of name
+characters.</p>
+
+<h5>Names and Tokens</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-NameChar"></a>[4]   </td><td><code>NameChar</code></td><td>   ::=   </td><td><code><a href="#NT-Letter">Letter</a> | <a href="#NT-Digit">Digit</a>
+| '.' | '-' | '_' | ':' | <a href="#NT-CombiningChar">CombiningChar</a> | <a href="#NT-Extender">Extender</a></code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-Name"></a>[5]   </td><td><code>Name</code></td><td>   ::=   </td><td><code>(<a href="#NT-Letter">Letter</a> | '_' | ':') (<a href="#NT-NameChar">NameChar</a>)*</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-Names"></a>[6]   </td><td><code>Names</code></td><td>   ::=   </td><td><code><a href="#NT-Name">Name</a> (<a href="#NT-S">S</a> <a href="#NT-Name">Name</a>)*</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-Nmtoken"></a>[7]   </td><td><code>Nmtoken</code></td><td>   ::=   </td><td><code>(<a href="#NT-NameChar">NameChar</a>)+</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-Nmtokens"></a>[8]   </td><td><code>Nmtokens</code></td><td>   ::=   </td><td><code><a href="#NT-Nmtoken">Nmtoken</a> (<a href="#NT-S">S</a> <a href="#NT-Nmtoken">Nmtoken</a>)*</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>Literal data is any quoted string not containing the quotation mark used
+as a delimiter for that string. Literals are used for specifying the content
+of internal entities (<a href="#NT-EntityValue">EntityValue</a>), the values
+of attributes (<a href="#NT-AttValue">AttValue</a>), and external identifiers
+(<a href="#NT-SystemLiteral">SystemLiteral</a>). Note that a <a href="#NT-SystemLiteral">SystemLiteral</a>
+can be parsed without scanning for markup.</p>
+
+<h5>Literals</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-EntityValue"></a>[9]   </td><td><code>EntityValue</code></td><td>   ::=   </td><td><code>'"' ([^%&amp;"] | <a href="#NT-PEReference">PEReference</a>
+| <a href="#NT-Reference">Reference</a>)* '"' </code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>|  "'" ([^%&amp;'] | <a href="#NT-PEReference">PEReference</a> | <a href="#NT-Reference">Reference</a>)* "'"</code></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-AttValue"></a>[10]   </td><td><code>AttValue</code></td><td>   ::=   </td><td><code>'"' ([^&lt;&amp;"] | <a href="#NT-Reference">Reference</a>)*
+'"' </code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>|  "'" ([^&lt;&amp;'] | <a href="#NT-Reference">Reference</a>)*
+"'"</code></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-SystemLiteral"></a>[11]   </td><td><code>SystemLiteral</code></td><td>   ::=   </td><td><code>('"' [^"]* '"') | ("'" [^']* "'") </code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-PubidLiteral"></a>[12]   </td><td><code>PubidLiteral</code></td><td>   ::=   </td><td><code>'"' <a href="#NT-PubidChar">PubidChar</a>* '"'
+| "'" (<a href="#NT-PubidChar">PubidChar</a> - "'")* "'"</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-PubidChar"></a>[13]   </td><td><code>PubidChar</code></td><td>   ::=   </td><td><code>#x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<div class="diff-add"><div class="note"><p class="prefix"><b>Note:</b></p>
+<p><a href="http://www.w3.org/XML/xml-19980210-errata#E72">[E72]</a>Although
+the <a href="#NT-EntityValue">EntityValue</a> production allows the definition
+of an entity consisting of a single explicit <code>&lt;</code> in the literal
+(e.g., <code>&lt;!ENTITY mylt "&lt;"&gt;</code>), it is strongly advised to avoid
+this practice since any reference to that entity will cause a well-formedness
+error.</p>
+</div></div>
+</div>
+<div class="div2">
+
+<h3><a name="syntax"></a>2.4 Character Data and Markup</h3>
+<p><a title="Text" href="#dt-text">Text</a> consists of intermingled <a title="Character Data" href="#dt-chardata">character data</a> and markup. [<a name="dt-markup" title="Markup">Definition</a>: <b>Markup</b> takes the form of <a title="Start-Tag" href="#dt-stag">start-tags</a>, <a title="End Tag" href="#dt-etag">end-tags</a>, <a title="Empty" href="#dt-empty">empty-element tags</a>, <a title="Entity Reference" href="#dt-entref">entity references</a>, <a title="Character Reference" href="#dt-charref">character
+references</a>, <a title="Comment" href="#dt-comment">comments</a>, <a title="CDATA Section" href="#dt-cdsection">CDATA section</a> delimiters, <a title="Document Type Declaration" href="#dt-doctype">document
+type declarations</a>, <a title="Processing instruction" href="#dt-pi">processing instructions</a>, <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E89">[E89]</a><a href="#NT-XMLDecl">XML declarations</a>, <a href="#NT-TextDecl">text declarations</a>,
+and any white space that is at the top level of the document entity (that
+is, outside the document element and not inside any other markup).</span>]</p>
+<p>[<a name="dt-chardata" title="Character Data">Definition</a>: All text that is not markup
+constitutes the <b>character data</b> of the document.]</p>
+<p>The ampersand character (&amp;) and the left angle bracket (&lt;) may appear
+in their literal form <em>only</em> when used as markup delimiters, or
+within a <a title="Comment" href="#dt-comment">comment</a>, a <a title="Processing instruction" href="#dt-pi">processing
+instruction</a>, or a <a title="CDATA Section" href="#dt-cdsection">CDATA section</a>.<span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E18">[E18]</a>They
+are also legal within the <a title="Literal Entity Value" href="#dt-litentval">literal entity value</a>
+of an internal entity declaration; see <a href="#wf-entities"><b>4.3.2 Well-Formed Parsed Entities</b></a>.</span> 
+If they are needed elsewhere, they must be <a title="escape" href="#dt-escape">escaped</a>
+using either <a title="Character Reference" href="#dt-charref">numeric character references</a>
+or the strings "<code>&amp;amp;</code>" and "<code>&amp;lt;</code>"
+respectively. The right angle bracket (&gt;) may be represented using the string "<code>&amp;gt;</code>",
+and must, <a title="For Compatibility" href="#dt-compat">for compatibility</a>, be escaped
+using "<code>&amp;gt;</code>" or a character reference when it
+appears in the string "<code>]]&gt;</code>" in content, when
+that string is not marking the end of a <a title="CDATA Section" href="#dt-cdsection">CDATA
+section</a>.</p>
+<p>In the content of elements, character data is any string of characters
+which does not contain the start-delimiter of any markup. In a CDATA section,
+character data is any string of characters not including the CDATA-section-close
+delimiter, "<code>]]&gt;</code>".</p>
+<p>To allow attribute values to contain both single and double quotes, the
+apostrophe or single-quote character (') may be represented as "<code>&amp;apos;</code>",
+and the double-quote character (") as "<code>&amp;quot;</code>".</p>
+
+<h5>Character Data</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-CharData"></a>[14]   </td><td><code>CharData</code></td><td>   ::=   </td><td><code>[^&lt;&amp;]* - ([^&lt;&amp;]* ']]&gt;' [^&lt;&amp;]*)</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+</div>
+<div class="div2">
+
+<h3><a name="sec-comments"></a>2.5 Comments</h3>
+<p>[<a name="dt-comment" title="Comment">Definition</a>: <b>Comments</b> may appear
+anywhere in a document outside other <a title="Markup" href="#dt-markup">markup</a>;
+in addition, they may appear within the document type declaration at places
+allowed by the grammar. They are not part of the document's <a title="Character Data" href="#dt-chardata">character
+data</a>; an XML processor may, but need not, make it possible for an
+application to retrieve the text of comments. <a title="For Compatibility" href="#dt-compat">For
+compatibility</a>, the string "<code>--</code>" (double-hyphen)
+must not occur within comments.] <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E63">[E63]</a>Parameter
+entity references are not recognized within comments.</span></p>
+
+<h5>Comments</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-Comment"></a>[15]   </td><td><code>Comment</code></td><td>   ::=   </td><td><code>'&lt;!--' ((<a href="#NT-Char">Char</a> - '-') | ('-'
+(<a href="#NT-Char">Char</a> - '-')))* '--&gt;'</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>An example of a comment:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!-- declarations for &lt;head&gt; &amp; &lt;body&gt; --&gt;</pre></td></tr></table>
+<div class="diff-add"><p><a href="http://www.w3.org/XML/xml-19980210-errata#E27">[E27]</a>Note
+that the grammar does not allow a comment ending in <code>---&gt;</code>. The
+following example is <em>not</em> well-formed.</p></div>
+<div class="diff-add"><table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td class="diff-add"><pre>&lt;!-- B+, B, or B---&gt;</pre></td></tr></table></div>
+</div>
+<div class="div2">
+
+<h3><a name="sec-pi"></a>2.6 Processing Instructions</h3>
+<p>[<a name="dt-pi" title="Processing instruction">Definition</a>: <b>Processing instructions</b>
+(PIs) allow documents to contain instructions for applications.]</p>
+
+<h5>Processing Instructions</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-PI"></a>[16]   </td><td><code>PI</code></td><td>   ::=   </td><td><code>'&lt;?' <a href="#NT-PITarget">PITarget</a> (<a href="#NT-S">S</a>
+(<a href="#NT-Char">Char</a>* - (<a href="#NT-Char">Char</a>* '?&gt;' <a href="#NT-Char">Char</a>*)))? '?&gt;'</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-PITarget"></a>[17]   </td><td><code>PITarget</code></td><td>   ::=   </td><td><code><a href="#NT-Name">Name</a> - (('X' | 'x') ('M' |
+'m') ('L' | 'l'))</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>PIs are not part of the document's <a title="Character Data" href="#dt-chardata">character
+data</a>, but must be passed through to the application. The PI begins
+with a target (<a href="#NT-PITarget">PITarget</a>) used to identify the application
+to which the instruction is directed. The target names "<code>XML</code>", "<code>xml</code>",
+and so on are reserved for standardization in this or future versions of this
+specification. The XML <a title="Notation" href="#dt-notation">Notation</a> mechanism
+may be used for formal declaration of PI targets. <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E63">[E63]</a>Parameter
+entity references are not recognized within processing instructions.</span></p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-cdata-sect"></a>2.7 CDATA Sections</h3>
+<p>[<a name="dt-cdsection" title="CDATA Section">Definition</a>: <b>CDATA sections</b>
+may occur anywhere character data may occur; they are used to escape blocks
+of text containing characters which would otherwise be recognized as markup.
+CDATA sections begin with the string "<code>&lt;![CDATA[</code>"
+and end with the string "<code>]]&gt;</code>":]</p>
+
+<h5>CDATA Sections</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-CDSect"></a>[18]   </td><td><code>CDSect</code></td><td>   ::=   </td><td><code><a href="#NT-CDStart">CDStart</a> <a href="#NT-CData">CData</a> <a href="#NT-CDEnd">CDEnd</a></code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-CDStart"></a>[19]   </td><td><code>CDStart</code></td><td>   ::=   </td><td><code>'&lt;![CDATA['</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-CData"></a>[20]   </td><td><code>CData</code></td><td>   ::=   </td><td><code>(<a href="#NT-Char">Char</a>* - (<a href="#NT-Char">Char</a>*
+']]&gt;' <a href="#NT-Char">Char</a>*)) </code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-CDEnd"></a>[21]   </td><td><code>CDEnd</code></td><td>   ::=   </td><td><code>']]&gt;'</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>Within a CDATA section, only the <a href="#NT-CDEnd">CDEnd</a> string is
+recognized as markup, so that left angle brackets and ampersands may occur
+in their literal form; they need not (and cannot) be escaped using "<code>&amp;lt;</code>"
+and "<code>&amp;amp;</code>". CDATA sections cannot nest.</p>
+<p>An example of a CDATA section, in which "<code>&lt;greeting&gt;</code>"
+and "<code>&lt;/greeting&gt;</code>" are recognized as <a title="Character Data" href="#dt-chardata">character data</a>, not <a title="Markup" href="#dt-markup">markup</a>:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;![CDATA[&lt;greeting&gt;Hello, world!&lt;/greeting&gt;]]&gt; </pre></td></tr></table>
+</div>
+<div class="div2">
+
+<h3><a name="sec-prolog-dtd"></a>2.8 Prolog and Document Type Declaration</h3>
+<p>[<a name="dt-xmldecl" title="XML Declaration">Definition</a>: XML documents <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E107">[E107]</a>should</span>
+begin with an <b>XML declaration</b> which specifies the version of
+XML being used.] For example, the following is a complete XML document, <a title="Well-Formed" href="#dt-wellformed">well-formed</a> but not <a title="Validity" href="#dt-valid">valid</a>:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;?xml version="1.0"?&gt; &lt;greeting&gt;Hello, world!&lt;/greeting&gt; </pre></td></tr></table>
+<p>and so is this:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;greeting&gt;Hello, world!&lt;/greeting&gt;</pre></td></tr></table>
+<p>The version number "<code>1.0</code>" should be used to indicate
+conformance to this version of this specification; it is an error for a document
+to use the value "<code>1.0</code>" if it does not conform to
+this version of this specification. It is the intent of the XML working group
+to give later versions of this specification numbers other than "<code>1.0</code>",
+but this intent does not indicate a commitment to produce any future versions
+of XML, nor if any are produced, to use any particular numbering scheme. Since
+future versions are not ruled out, this construct is provided as a means to
+allow the possibility of automatic version recognition, should it become necessary.
+Processors may signal an error if they receive documents labeled with versions
+they do not support.</p>
+<p>The function of the markup in an XML document is to describe its storage
+and logical structure and to associate attribute-value pairs with its logical
+structures. XML provides a mechanism, the <a title="Document Type Declaration" href="#dt-doctype">document
+type declaration</a>, to define constraints on the logical structure
+and to support the use of predefined storage units. [<a name="dt-valid" title="Validity">Definition</a>: An XML document is <b>valid</b> if it has an associated
+document type declaration and if the document complies with the constraints
+expressed in it.]</p>
+<p>The document type declaration must appear before the first <a title="Element" href="#dt-element">element</a>
+in the document.</p>
+
+<h5>Prolog</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-prolog"></a>[22]   </td><td><code>prolog</code></td><td>   ::=   </td><td><code><a href="#NT-XMLDecl">XMLDecl</a>? <a href="#NT-Misc">Misc</a>*
+(<a href="#NT-doctypedecl">doctypedecl</a> <a href="#NT-Misc">Misc</a>*)?</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-XMLDecl"></a>[23]   </td><td><code>XMLDecl</code></td><td>   ::=   </td><td><code>'&lt;?xml' <a href="#NT-VersionInfo">VersionInfo</a> <a href="#NT-EncodingDecl">EncodingDecl</a>? <a href="#NT-SDDecl">SDDecl</a>? <a href="#NT-S">S</a>? '?&gt;'</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td class="diff-chg"><a name="NT-VersionInfo"></a>[24]   </td><td class="diff-chg"><code>VersionInfo</code></td><td class="diff-chg">   ::=   </td><td class="diff-chg"><code><a href="#NT-S">S</a> 'version' <a href="#NT-Eq">Eq</a>
+("'" <a href="#NT-VersionNum">VersionNum</a> "'" | '"' <a href="#NT-VersionNum">VersionNum</a>
+'"')<i>/* <a href="http://www.w3.org/XML/xml-19980210-errata#E15">[E15]</a> */</i></code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Eq"></a>[25]   </td><td><code>Eq</code></td><td>   ::=   </td><td><code><a href="#NT-S">S</a>? '=' <a href="#NT-S">S</a>?</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-VersionNum"></a>[26]   </td><td><code>VersionNum</code></td><td>   ::=   </td><td><code>([a-zA-Z0-9_.:] | '-')+</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Misc"></a>[27]   </td><td><code>Misc</code></td><td>   ::=   </td><td><code><a href="#NT-Comment">Comment</a> | <a href="#NT-PI">PI</a>
+| <a href="#NT-S">S</a></code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>[<a name="dt-doctype" title="Document Type Declaration">Definition</a>: The XML <b>document
+type declaration</b> contains or points to <a title="markup declaration" href="#dt-markupdecl">markup
+declarations</a> that provide a grammar for a class of documents. This
+grammar is known as a document type definition, or <b>DTD</b>. The document
+type declaration can point to an external subset (a special kind of <a title="External Entity" href="#dt-extent">external entity</a>) containing markup declarations,
+or can contain the markup declarations directly in an internal subset, or
+can do both. The DTD for a document consists of both subsets taken together.]</p>
+<p>[<a name="dt-markupdecl" title="markup declaration">Definition</a>:  A <b>markup declaration</b>
+is an <a title="Element Type declaration" href="#dt-eldecl">element type declaration</a>, an <a title="Attribute-List Declaration" href="#dt-attdecl">attribute-list declaration</a>, an <a title="entity declaration" href="#dt-entdecl">entity
+declaration</a>, or a <a title="Notation Declaration" href="#dt-notdecl">notation declaration</a>.]
+These declarations may be contained in whole or in part within <a title="Parameter entity" href="#dt-PE">parameter
+entities</a>, as described in the well-formedness and validity constraints
+below. For <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E14">[E14]</a>further</span>
+information, see <a href="#sec-physical-struct"><b>4 Physical Structures</b></a>.</p>
+
+<h5>Document Type Definition</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td class="diff-chg"><a name="NT-doctypedecl"></a>[28]   </td><td class="diff-chg"><code>doctypedecl</code></td><td class="diff-chg">   ::=   </td><td class="diff-chg"><code>'&lt;!DOCTYPE' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a>
+(<a href="#NT-S">S</a> <a href="#NT-ExternalID">ExternalID</a>)? <a href="#NT-S">S</a>?
+('[' (<a href="#NT-markupdecl">markupdecl</a> | <a href="#NT-DeclSep">DeclSep</a>)*
+']' <a href="#NT-S">S</a>?)? '&gt;'</code></td><xsltdebug></xsltdebug><td><a href="#vc-roottype">[VC: Root Element Type]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td class="diff-add"><a href="#ExtSubset">[WFC: External
+Subset]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td class="diff-chg"><i>/* <a href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</a> */</i></td></tr>
+<tr valign="baseline"><td class="diff-add"><a name="NT-DeclSep"></a>[28a]   </td><td class="diff-add"><code>DeclSep</code></td><td class="diff-add">   ::=   </td><td class="diff-add"><code><a href="#NT-PEReference">PEReference</a> | <a href="#NT-S">S</a></code></td><xsltdebug></xsltdebug><td class="diff-add"><a href="#PE-between-Decls">[WFC: PE
+Between Declarations]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td class="diff-add"><i>/* <a href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</a> */</i></td></tr>
+<tr valign="baseline"><td><a name="NT-markupdecl"></a>[29]   </td><td><code>markupdecl</code></td><td>   ::=   </td><td><code><a href="#NT-elementdecl">elementdecl</a> | <a href="#NT-AttlistDecl">AttlistDecl</a> | <a href="#NT-EntityDecl">EntityDecl</a>
+| <a href="#NT-NotationDecl">NotationDecl</a> | <a href="#NT-PI">PI</a> | <a href="#NT-Comment">Comment</a> </code></td><xsltdebug></xsltdebug><td><a href="#vc-PEinMarkupDecl">[VC: Proper Declaration/PE Nesting]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#wfc-PEinInternalSubset">[WFC: PEs in Internal Subset]</a></td></tr>
+</tbody></table>
+<div class="diff-add"><p><a href="http://www.w3.org/XML/xml-19980210-errata#E82">[E82]</a>Note
+that it is possible to construct a well-formed document containing a <a href="#NT-doctypedecl">doctypedecl</a>
+that neither points to an external subset nor contains an internal subset.</p></div>
+<p>The markup declarations may be made up in whole or in part of the <a title="Replacement Text" href="#dt-repltext">replacement text</a> of <a title="Parameter entity" href="#dt-PE">parameter
+entities</a>. The productions later in this specification for individual
+nonterminals (<a href="#NT-elementdecl">elementdecl</a>, <a href="#NT-AttlistDecl">AttlistDecl</a>,
+and so on) describe the declarations <em>after</em> all the parameter
+entities have been <a title="Include" href="#dt-include">included</a>.</p>
+<div class="diff-add"><p><a href="http://www.w3.org/XML/xml-19980210-errata#E75">[E75]</a>Parameter
+entity references are recognized anywhere in the DTD (internal and external
+subsets and external parameter entities), except in literals, processing instructions,
+comments, and the contents of ignored conditional sections (see <a href="#sec-condition-sect"><b>3.4 Conditional Sections</b></a>).
+They are also recognized in entity value literals. The use of parameter entities
+in the internal subset is restricted as described below.</p></div>
+<div class="constraint"><p class="prefix"><a name="vc-roottype"></a><b>Validity constraint: Root Element Type</b></p><p>The <a href="#NT-Name">Name</a>
+in the document type declaration must match the element type of the <a title="Root Element" href="#dt-root">root element</a>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="vc-PEinMarkupDecl"></a><b>Validity constraint: Proper Declaration/PE Nesting</b></p>
+<p>Parameter-entity <a title="Replacement Text" href="#dt-repltext">replacement text</a>
+must be properly nested with markup declarations. That is to say, if either
+the first character or the last character of a markup declaration (<a href="#NT-markupdecl">markupdecl</a>
+above) is contained in the replacement text for a <a title="Parameter-entity reference" href="#dt-PERef">parameter-entity
+reference</a>, both must be contained in the same replacement text.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="wfc-PEinInternalSubset"></a><b>Well-formedness constraint: PEs in Internal Subset</b></p><p>In
+the internal DTD subset, <a title="Parameter-entity reference" href="#dt-PERef">parameter-entity references</a>
+can occur only where markup declarations can occur, not within markup declarations.
+(This does not apply to references that occur in external parameter entities
+or to the external subset.)</p>
+</div>
+<div class="diff-add"><div class="constraint"><p class="prefix"><a name="ExtSubset"></a><b>Well-formedness constraint: <a href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</a>External
+Subset</b></p><p>The external subset, if any, must match the production for <a href="#NT-extSubset">extSubset</a>.</p>
+</div></div>
+<div class="diff-add"><div class="constraint"><p class="prefix"><a name="PE-between-Decls"></a><b>Well-formedness constraint: <a href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</a>PE
+Between Declarations</b></p><p>The replacement text of a parameter entity reference
+in a <a href="#NT-DeclSep">DeclSep</a> must match the production <a href="#NT-extSubsetDecl">extSubsetDecl</a>.</p>
+</div></div>
+<p>Like the internal subset, the external subset and any external parameter
+entities <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</a>referenced
+in a <a href="#NT-DeclSep">DeclSep</a></span> must consist of a series of
+complete markup declarations of the types allowed by the non-terminal symbol <a href="#NT-markupdecl">markupdecl</a>, interspersed with white space or <a title="Parameter-entity reference" href="#dt-PERef">parameter-entity references</a>. However, portions of
+the contents of the external subset or of <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</a>these </span>
+external parameter entities may conditionally be ignored by using the <a title="conditional section" href="#dt-cond-section">conditional section</a> construct; this is not
+allowed in the internal subset.</p>
+
+<h5>External Subset</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-extSubset"></a>[30]   </td><td><code>extSubset</code></td><td>   ::=   </td><td><code><a href="#NT-TextDecl">TextDecl</a>? <a href="#NT-extSubsetDecl">extSubsetDecl</a></code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td class="diff-chg"><a name="NT-extSubsetDecl"></a>[31]   </td><td class="diff-chg"><code>extSubsetDecl</code></td><td class="diff-chg">   ::=   </td><td class="diff-chg"><code>( <a href="#NT-markupdecl">markupdecl</a> | <a href="#NT-conditionalSect">conditionalSect</a> | <a href="#NT-DeclSep">DeclSep</a>)*</code></td><xsltdebug></xsltdebug><td class="diff-chg"><i>/* <a href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</a> */</i></td></tr>
+</tbody></table>
+<p>The external subset and external parameter entities also differ from the
+internal subset in that in them, <a title="Parameter-entity reference" href="#dt-PERef">parameter-entity
+references</a> are permitted <em>within</em> markup declarations,
+not only <em>between</em> markup declarations.</p>
+<p>An example of an XML document with a document type declaration:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;?xml version="1.0"?&gt; &lt;!DOCTYPE greeting SYSTEM "hello.dtd"&gt; &lt;greeting&gt;Hello, world!&lt;/greeting&gt; </pre></td></tr></table>
+<p>The <a title="System Identifier" href="#dt-sysid">system identifier</a> "<code>hello.dtd</code>"
+gives the <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E78">[E78]</a>address
+(a URI reference)</span> of a DTD for the document.</p>
+<p>The declarations can also be given locally, as in this example:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
+&lt;!DOCTYPE greeting [
+  &lt;!ELEMENT greeting (#PCDATA)&gt;
+]&gt;
+&lt;greeting&gt;Hello, world!&lt;/greeting&gt;</pre></td></tr></table>
+<p>If both the external and internal subsets are used, the internal subset
+is considered to occur before the external subset. 
+This has the effect that entity and attribute-list declarations in the internal
+subset take precedence over those in the external subset.</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-rmd"></a>2.9 Standalone Document Declaration</h3>
+<p>Markup declarations can affect the content of the document, as passed from
+an <a title="XML Processor" href="#dt-xml-proc">XML processor</a> to an application; examples
+are attribute defaults and entity declarations. The standalone document declaration,
+which may appear as a component of the XML declaration, signals whether or
+not there are such declarations which appear external to the <a title="Document Entity" href="#dt-docent">document
+entity</a><span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E64">[E64]</a>
+or in parameter entities. [<a name="dt-extmkpdecl" title="External Markup Declaration">Definition</a>: An <b>external
+markup declaration</b> is defined as a markup declaration occurring in
+the external subset or in a parameter entity (external or internal, the latter
+being included because non-validating processors are not required to read
+them).]</span></p>
+
+<h5>Standalone Document Declaration</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-SDDecl"></a>[32]   </td><td><code>SDDecl</code></td><td>   ::=   </td><td><code> <a href="#NT-S">S</a> 'standalone' <a href="#NT-Eq">Eq</a>
+(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"')) </code></td><xsltdebug></xsltdebug><td><a href="#vc-check-rmd">[VC: Standalone Document Declaration]</a></td></tr>
+</tbody></table>
+<p>In a standalone document declaration, the value "yes" indicates
+that there are no <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E64">[E64]</a><a title="External Markup Declaration" href="#dt-extmkpdecl">external markup declarations</a></span> which
+affect the information passed from the XML processor to the application. The
+value "no" indicates that there are or may be such external
+markup declarations. Note that the standalone document declaration only denotes
+the presence of external <em>declarations</em>; the presence, in a document,
+of references to external <em>entities</em>, when those entities are internally
+declared, does not change its standalone status.</p>
+<p>If there are no external markup declarations, the standalone document declaration
+has no meaning. If there are external markup declarations but there is no
+standalone document declaration, the value "no" is assumed.</p>
+<p>Any XML document for which <code>standalone="no"</code> holds can be converted
+algorithmically to a standalone document, which may be desirable for some
+network delivery applications.</p>
+<div class="constraint"><p class="prefix"><a name="vc-check-rmd"></a><b>Validity constraint: Standalone Document Declaration</b></p><p>The
+standalone document declaration must have the value "no" if
+any external markup declarations contain declarations of:</p>
+<ul>
+<li><p>attributes with <a title="Attribute Default" href="#dt-default">default</a> values,
+if elements to which these attributes apply appear in the document without
+specifications of values for these attributes, or</p></li>
+<li><p>entities (other than <code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>), if <a title="Entity Reference" href="#dt-entref">references</a>
+to those entities appear in the document, or</p></li>
+<li><p>attributes with values subject to <a href="#AVNormalize"><cite>normalization</cite></a>,
+where the attribute appears in the document with a value which will change
+as a result of normalization, or</p></li>
+<li><p>element types with <a title="Element content" href="#dt-elemcontent">element content</a>,
+if white space occurs directly within any instance of those types.</p></li>
+</ul>
+</div>
+<p>An example XML declaration with a standalone document declaration:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;?xml version="1.0" standalone='yes'?&gt;</pre></td></tr></table>
+</div>
+<div class="div2">
+
+<h3><a name="sec-white-space"></a>2.10 White Space Handling</h3>
+<p>In editing XML documents, it is often convenient to use "white space"
+(spaces, tabs, and blank lines<span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E39">[E39]</a>,
+denoted by the nonterminal <a href="#NT-S">S</a> in this specification</span>)
+to set apart the markup for greater readability. Such white space is typically
+not intended for inclusion in the delivered version of the document. On the
+other hand, "significant" white space that should be preserved
+in the delivered version is common, for example in poetry and source code.</p>
+<p>An <a title="XML Processor" href="#dt-xml-proc">XML processor</a> must always pass
+all characters in a document that are not markup through to the application.
+A <a title="Validating Processor" href="#dt-validating"> validating XML processor</a> must also
+inform the application which of these characters constitute white space appearing
+in <a title="Element content" href="#dt-elemcontent">element content</a>.</p>
+<p>A special <a title="Attribute" href="#dt-attr">attribute</a> named <code>xml:space</code>
+may be attached to an element to signal an intention that in that element,
+white space should be preserved by applications. In valid documents, this
+attribute, like any other, must be <a title="Attribute-List Declaration" href="#dt-attdecl">declared</a>
+if it is used. When declared, it must be given as an <a title="Enumerated Attribute Values" href="#dt-enumerated">enumerated
+type</a> whose <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E81">[E81]</a>values
+are one or both of</span> "default" and "preserve".
+For example:</p>
+<div class="diff-chg"><table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td class="diff-chg"><pre>&lt;!ATTLIST poem  xml:space (default|preserve) 'preserve'&gt;
+
+&lt;!-- <a href="http://www.w3.org/XML/xml-19980210-errata#E81">[E81]</a>--&gt;
+&lt;!ATTLIST pre xml:space (preserve) #FIXED 'preserve'&gt;</pre></td></tr></table></div>
+<p>The value "default" signals that applications' default white-space
+processing modes are acceptable for this element; the value "preserve"
+indicates the intent that applications preserve all the white space. This
+declared intent is considered to apply to all elements within the content
+of the element where it is specified, unless overriden with another instance
+of the <code>xml:space</code> attribute.</p>
+<p>The <a title="Root Element" href="#dt-root">root element</a> of any document is considered
+to have signaled no intentions as regards application space handling, unless
+it provides a value for this attribute or the attribute is declared with a
+default value.</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-line-ends"></a>2.11 End-of-Line Handling</h3>
+<p>XML <a title="Text Entity" href="#dt-parsedent">parsed entities</a> are often stored
+in computer files which, for editing convenience, are organized into lines.
+These lines are typically separated by some combination of the characters
+carriage-return (#xD) and line-feed (#xA).</p>
+<div class="diff-del"><p>To simplify the tasks of <a title="Application" href="#dt-app">applications</a>,
+wherever an external parsed entity or the literal entity value of an internal
+parsed entity contains either the literal two-character sequence "#xD#xA"
+or a standalone literal #xD, an <a title="XML Processor" href="#dt-xml-proc">XML processor</a>
+must pass to the application the single character #xA. (This behavior can
+conveniently be produced by normalizing all line breaks to #xA on input, before
+parsing.)</p></div>
+<div class="diff-add"><p><a href="http://www.w3.org/XML/xml-19980210-errata#E104">[E104]</a>To
+simplify the tasks of <a title="Application" href="#dt-app">applications</a>, the characters
+passed to an application by the <a title="XML Processor" href="#dt-xml-proc">XML processor</a>
+must be as if the XML processor normalized all line breaks in external parsed
+entities (including the document entity) on input, before parsing, by translating
+both the two-character sequence #xD #xA and any #xD that is not followed by
+#xA to a single #xA character.</p></div>
+</div>
+<div class="div2">
+
+<h3><a name="sec-lang-tag"></a>2.12 Language Identification</h3>
+<p>In document processing, it is often useful to identify the natural or formal
+language in which the content is written. A special <a title="Attribute" href="#dt-attr">attribute</a>
+named <code>xml:lang</code> may be inserted in documents to specify the language
+used in the contents and attribute values of any element in an XML document.
+In valid documents, this attribute, like any other, must be <a title="Attribute-List Declaration" href="#dt-attdecl">declared</a>
+if it is used. <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E73">[E73]</a>The
+values of the attribute are language identifiers as defined by <a href="#RFC1766">[IETF RFC 1766]</a>, <cite>Tags
+for the Identification of Languages</cite>, or its successor on the IETF
+Standards Track.</span></p>
+<div class="diff-add"><div class="note"><p class="prefix"><b>Note:</b></p>
+<p><a href="http://www.w3.org/XML/xml-19980210-errata#E73">[E73]</a><a href="#RFC1766">[IETF RFC 1766]</a> tags are constructed from two-letter language codes as defined
+by <a href="#ISO639">[ISO 639]</a>, from two-letter country codes as defined by <a href="#ISO3166">[ISO 3166]</a>, or from language identifiers registered with the Internet
+Assigned Numbers Authority <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E58">[E58]</a><span class="diff-chg"><a href="#IANA-LANGCODES">[IANA-LANGCODES]</a></span></span>. It is expected that the successor
+to <a href="#RFC1766">[IETF RFC 1766]</a> will introduce three-letter language codes for
+languages not presently covered by <a href="#ISO639">[ISO 639]</a>.</p>
+</div></div>
+<div class="diff-add"><p><a href="http://www.w3.org/XML/xml-19980210-errata#E73">[E73]</a>(Productions
+33 through 38 have been removed.)</p></div>
+<div class="diff-del">
+<h5>Language Identification</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td class="diff-del"><a name="NT-LanguageID"></a>[33]   </td><td class="diff-del"><code>LanguageID</code></td><td class="diff-del">   ::=   </td><td class="diff-del"><code><a href="#NT-Langcode">Langcode</a> ('-' <a href="#NT-Subcode">Subcode</a>)*</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td class="diff-del"><a name="NT-Langcode"></a>[34]   </td><td class="diff-del"><code>Langcode</code></td><td class="diff-del">   ::=   </td><td class="diff-del"><code><a href="#NT-ISO639Code">ISO639Code</a> | <a href="#NT-IanaCode">IanaCode</a>
+| <a href="#NT-UserCode">UserCode</a></code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td class="diff-del"><a name="NT-ISO639Code"></a>[35]   </td><td class="diff-del"><code>ISO639Code</code></td><td class="diff-del">   ::=   </td><td class="diff-del"><code>([a-z] | [A-Z]) ([a-z] | [A-Z])</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td class="diff-del"><a name="NT-IanaCode"></a>[36]   </td><td class="diff-del"><code>IanaCode</code></td><td class="diff-del">   ::=   </td><td class="diff-del"><code>('i' | 'I') '-' ([a-z] | [A-Z])+</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td class="diff-del"><a name="NT-UserCode"></a>[37]   </td><td class="diff-del"><code>UserCode</code></td><td class="diff-del">   ::=   </td><td class="diff-del"><code>('x' | 'X') '-' ([a-z] | [A-Z])+</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td class="diff-del"><a name="NT-Subcode"></a>[38]   </td><td class="diff-del"><code>Subcode</code></td><td class="diff-del">   ::=   </td><td class="diff-del"><code>([a-z] | [A-Z])+</code></td><xsltdebug></xsltdebug></tr></tbody></table></div>
+<div class="diff-del"><p>The <a href="#NT-Langcode">Langcode</a> may be any of the following:</p></div>
+<div class="diff-del"><ul>
+<li><p>a two-letter language code as defined by <a href="#ISO639">[ISO 639]</a>, <cite>Codes
+for the representation of names of languages</cite></p></li>
+<li><p>a language identifier registered with the Internet Assigned Numbers
+Authority <span class="diff-chg"><a href="#IANA-LANGCODES">[IANA-LANGCODES]</a></span>; these begin with the
+prefix "<code>i-</code>" (or "<code>I-</code>")</p>
+</li>
+<li><p>a language identifier assigned by the user, or agreed on between
+parties in private use; these must begin with the prefix "<code>x-</code>"
+or "<code>X-</code>" in order to ensure that they do not conflict
+with names later standardized or registered with IANA</p></li>
+</ul></div>
+<div class="diff-del"><p>There may be any number of <a href="#NT-Subcode">Subcode</a>
+segments; if the first subcode segment exists and the Subcode consists of
+two letters, then it must be a country code from <a href="#ISO3166">[ISO 3166]</a>,
+"Codes for the representation of names of countries." If the first subcode
+consists of more than two letters, it must be a subcode for the language in
+question registered with IANA, unless the <a href="#NT-Langcode">Langcode</a>
+begins with the prefix "<code>x-</code>" or "<code>X-</code>". </p></div>
+<div class="diff-del"><p>It is customary to give the language code in lower case, and
+the country code (if any) in upper case. Note that these values, unlike other
+names in XML documents, are case insensitive.</p></div>
+<p>For example:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;p xml:lang="en"&gt;The quick brown fox jumps over the lazy dog.&lt;/p&gt;
+&lt;p xml:lang="en-GB"&gt;What colour is it?&lt;/p&gt;
+&lt;p xml:lang="en-US"&gt;What color is it?&lt;/p&gt;
+&lt;sp who="Faust" desc='leise' xml:lang="de"&gt;
+  &lt;l&gt;Habe nun, ach! Philosophie,&lt;/l&gt;
+  &lt;l&gt;Juristerei, und Medizin&lt;/l&gt;
+  &lt;l&gt;und leider auch Theologie&lt;/l&gt;
+  &lt;l&gt;durchaus studiert mit heißem Bemüh'n.&lt;/l&gt;
+&lt;/sp&gt;</pre></td></tr></table>
+
+<p>The intent declared with <code>xml:lang</code> is considered to apply to
+all attributes and content of the element where it is specified, unless overridden
+with an instance of <code>xml:lang</code> on another element within that content.</p>
+
+<p>A simple declaration for <code>xml:lang</code> might take the form</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>xml:lang NMTOKEN #IMPLIED</pre></td></tr></table>
+<p>but specific default values may also be given, if appropriate. In a collection
+of French poems for English students, with glosses and notes in English, the <code>xml:lang</code>
+attribute might be declared this way:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ATTLIST poem   xml:lang NMTOKEN 'fr'&gt;
+&lt;!ATTLIST gloss  xml:lang NMTOKEN 'en'&gt;
+&lt;!ATTLIST note   xml:lang NMTOKEN 'en'&gt;</pre></td></tr></table>
+</div>
+</div>
+
+<div class="div1">
+
+<h2><a name="sec-logical-struct"></a>3 Logical Structures</h2>
+<p>[<a name="dt-element" title="Element">Definition</a>: Each <a title="XML Document" href="#dt-xml-doc">XML
+document</a> contains one or more <b>elements</b>, the boundaries
+of which are either delimited by <a title="Start-Tag" href="#dt-stag">start-tags</a>
+and <a title="End Tag" href="#dt-etag">end-tags</a>, or, for <a title="Empty" href="#dt-empty">empty</a>
+elements, by an <a title="empty-element tag" href="#dt-eetag">empty-element tag</a>. Each
+element has a type, identified by name, sometimes called its "generic
+identifier" (GI), and may have a set of attribute specifications.]
+Each attribute specification has a <a title="Attribute Name" href="#dt-attrname">name</a>
+and a <a title="Attribute Value" href="#dt-attrval">value</a>.</p>
+
+<h5>Element</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-element"></a>[39]   </td><td><code>element</code></td><td>   ::=   </td><td><code><a href="#NT-EmptyElemTag">EmptyElemTag</a></code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| <a href="#NT-STag">STag</a> <a href="#NT-content">content</a> <a href="#NT-ETag">ETag</a></code></td><td><a href="#GIMatch">[WFC: Element Type Match]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#elementvalid">[VC: Element Valid]</a></td></tr></tbody></table>
+<p>This specification does not constrain the semantics, use, or (beyond syntax)
+names of the element types and attributes, except that names beginning with
+a match to <code>(('X'|'x')('M'|'m')('L'|'l'))</code> are reserved for standardization
+in this or future versions of this specification.</p>
+<div class="constraint"><p class="prefix"><a name="GIMatch"></a><b>Well-formedness constraint: Element Type Match</b></p><p>The <a href="#NT-Name">Name</a>
+in an element's end-tag must match the element type in the start-tag.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="elementvalid"></a><b>Validity constraint: Element Valid</b></p><p>An element is valid
+if there is a declaration matching <a href="#NT-elementdecl">elementdecl</a>
+where the <a href="#NT-Name">Name</a> matches the element type, and one of
+the following holds:</p>
+<ol>
+<li><p>The declaration matches <b>EMPTY</b> and the element has no <a title="Content" href="#dt-content">content</a>.</p></li>
+<li><p>The declaration matches <a href="#NT-children">children</a> and the
+sequence of <a title="Parent/Child" href="#dt-parentchild">child elements</a> belongs
+to the language generated by the regular expression in the content model,
+with optional white space (characters matching the nonterminal <a href="#NT-S">S</a>)
+between <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E59">[E59]</a>the
+start-tag and the first child element, between child elements, or between
+the last child element and the end-tag. Note that a CDATA section containing
+only white space does not match the nonterminal <a href="#NT-S">S</a>, and
+hence cannot appear in these positions.</span></p></li>
+<li><p>The declaration matches <a href="#NT-Mixed">Mixed</a> and the content
+consists of <a title="Character Data" href="#dt-chardata">character data</a> and <a title="Parent/Child" href="#dt-parentchild">child elements</a> whose types match names in the
+content model.</p></li>
+<li><p>The declaration matches <b>ANY</b>, and the types of any <a title="Parent/Child" href="#dt-parentchild">child elements</a> have been declared.</p></li>
+</ol>
+</div>
+<div class="div2">
+
+<h3><a name="sec-starttags"></a>3.1 Start-Tags, End-Tags, and Empty-Element Tags</h3>
+<p>[<a name="dt-stag" title="Start-Tag">Definition</a>: The beginning of every non-empty
+XML element is marked by a <b>start-tag</b>.]</p>
+
+<h5>Start-tag</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-STag"></a>[40]   </td><td><code>STag</code></td><td>   ::=   </td><td><code>'&lt;' <a href="#NT-Name">Name</a> (<a href="#NT-S">S</a> <a href="#NT-Attribute">Attribute</a>)* <a href="#NT-S">S</a>? '&gt;'</code></td><xsltdebug></xsltdebug><td><a href="#uniqattspec">[WFC: Unique Att Spec]</a></td></tr>
+<tr valign="baseline"><td><a name="NT-Attribute"></a>[41]   </td><td><code>Attribute</code></td><td>   ::=   </td><td><code><a href="#NT-Name">Name</a> <a href="#NT-Eq">Eq</a> <a href="#NT-AttValue">AttValue</a></code></td><xsltdebug></xsltdebug><td><a href="#ValueType">[VC: Attribute Value Type]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#NoExternalRefs">[WFC: No External Entity References]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#CleanAttrVals">[WFC: No &lt; in Attribute Values]</a></td></tr>
+</tbody></table>
+<p>The <a href="#NT-Name">Name</a> in the start- and end-tags gives the element's <b>type</b>. [<a name="dt-attr" title="Attribute">Definition</a>:  The <a href="#NT-Name">Name</a>-<a href="#NT-AttValue">AttValue</a>
+pairs are referred to as the <b>attribute specifications</b> of the
+element], [<a name="dt-attrname" title="Attribute Name">Definition</a>: with the <a href="#NT-Name">Name</a> in each pair referred to as the <b>attribute name</b>]
+and [<a name="dt-attrval" title="Attribute Value">Definition</a>: the content of the <a href="#NT-AttValue">AttValue</a> (the text between the <code>'</code> or <code>"</code>
+delimiters) as the <b>attribute value</b>.]<span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E46">[E46]</a>Note
+that the order of attribute specifications in a start-tag or empty-element
+tag is not significant.</span></p>
+<div class="constraint"><p class="prefix"><a name="uniqattspec"></a><b>Well-formedness constraint: Unique Att Spec</b></p><p>No attribute name
+may appear more than once in the same start-tag or empty-element tag.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="ValueType"></a><b>Validity constraint: Attribute Value Type</b></p><p>The attribute must
+have been declared; the value must be of the type declared for it. (For attribute
+types, see <a href="#attdecls"><b>3.3 Attribute-List Declarations</b></a>.)</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="NoExternalRefs"></a><b>Well-formedness constraint: No External Entity References</b></p><p>Attribute
+values cannot contain direct or indirect entity references to external entities.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="CleanAttrVals"></a><b>Well-formedness constraint: No <code>&lt;</code> in Attribute Values</b></p>
+<p>The <a title="Replacement Text" href="#dt-repltext">replacement text</a> of any entity
+referred to directly or indirectly in an attribute value <span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E83">[E83]</a>(other
+than "<code>&amp;lt;</code>") </span>must not contain a <code>&lt;</code>.</p>
+</div>
+<p>An example of a start-tag:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;termdef id="dt-dog" term="dog"&gt;</pre></td></tr></table>
+<p>[<a name="dt-etag" title="End Tag">Definition</a>: The end of every element that begins
+with a start-tag must be marked by an <b>end-tag</b> containing a name
+that echoes the element's type as given in the start-tag:]</p>
+
+<h5>End-tag</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-ETag"></a>[42]   </td><td><code>ETag</code></td><td>   ::=   </td><td><code>'&lt;/' <a href="#NT-Name">Name</a> <a href="#NT-S">S</a>?
+'&gt;'</code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>An example of an end-tag:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;/termdef&gt;</pre></td></tr></table>
+<p>[<a name="dt-content" title="Content">Definition</a>: The <a title="Text" href="#dt-text">text</a>
+between the start-tag and end-tag is called the element's <b>content</b>:]</p>
+
+<h5>Content of Elements</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td class="diff-chg"><a name="NT-content"></a>[43]   </td><td class="diff-chg"><code>content</code></td><td class="diff-chg">   ::=   </td><td class="diff-chg"><code><a href="#NT-CharData">CharData</a>? ((<a href="#NT-element">element</a>
+| <a href="#NT-Reference">Reference</a> | <a href="#NT-CDSect">CDSect</a>
+| <a href="#NT-PI">PI</a> | <a href="#NT-Comment">Comment</a>) <a href="#NT-CharData">CharData</a>?)*</code></td><xsltdebug></xsltdebug><td class="diff-chg"><i>/* <a href="http://www.w3.org/XML/xml-19980210-errata#E71">[E71]</a> */</i></td></tr>
+</tbody></table>
+<p><span class="diff-chg">[<a name="dt-empty" title="Empty">Definition</a>: <a href="http://www.w3.org/XML/xml-19980210-errata#E97">[E97]</a>An element
+with no content is said to be <b>empty</b>.] The representation
+of an empty element is either a start-tag immediately followed by an end-tag,
+or an empty-element tag.</span> [<a name="dt-eetag" title="empty-element tag">Definition</a>: An <b>empty-element
+tag</b> takes a special form:]</p>
+
+<h5>Tags for Empty Elements</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-EmptyElemTag"></a>[44]   </td><td><code>EmptyElemTag</code></td><td>   ::=   </td><td><code>'&lt;' <a href="#NT-Name">Name</a> (<a href="#NT-S">S</a> <a href="#NT-Attribute">Attribute</a>)* <a href="#NT-S">S</a>? '/&gt;'</code></td><xsltdebug></xsltdebug><td><a href="#uniqattspec">[WFC: Unique Att Spec]</a></td></tr>
+</tbody></table>
+<p>Empty-element tags may be used for any element which has no content, whether
+or not it is declared using the keyword <b>EMPTY</b>. <a title="For interoperability" href="#dt-interop">For
+interoperability</a>, the empty-element tag <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E45">[E45]</a>should
+be used, and should only be used,</span> for elements which are declared
+EMPTY.</p>
+<p>Examples of empty elements:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;IMG align="left"
+ src="http://www.w3.org/Icons/WWW/w3c_home" /&gt;
+&lt;br&gt;&lt;/br&gt;
+&lt;br/&gt;</pre></td></tr></table>
+</div>
+<div class="div2">
+
+<h3><a name="elemdecls"></a>3.2 Element Type Declarations</h3>
+<p>The <a title="Element" href="#dt-element">element</a> structure of an <a title="XML Document" href="#dt-xml-doc">XML document</a> may, for <a title="Validity" href="#dt-valid">validation</a>
+purposes, be constrained using element type and attribute-list declarations.
+An element type declaration constrains the element's <a title="Content" href="#dt-content">content</a>.</p>
+<p>Element type declarations often constrain which element types can appear
+as <a title="Parent/Child" href="#dt-parentchild">children</a> of the element. At user
+option, an XML processor may issue a warning when a declaration mentions an
+element type for which no declaration is provided, but this is not an error.</p>
+<p>[<a name="dt-eldecl" title="Element Type declaration">Definition</a>: An <b>element
+type declaration</b> takes the form:]</p>
+
+<h5>Element Type Declaration</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-elementdecl"></a>[45]   </td><td><code>elementdecl</code></td><td>   ::=   </td><td><code>'&lt;!ELEMENT' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-S">S</a> <a href="#NT-contentspec">contentspec</a> <a href="#NT-S">S</a>?
+'&gt;'</code></td><xsltdebug></xsltdebug><td><a href="#EDUnique">[VC: Unique Element Type Declaration]</a></td></tr>
+<tr valign="baseline"><td><a name="NT-contentspec"></a>[46]   </td><td><code>contentspec</code></td><td>   ::=   </td><td><code>'EMPTY' | 'ANY' | <a href="#NT-Mixed">Mixed</a>
+| <a href="#NT-children">children</a> </code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>where the <a href="#NT-Name">Name</a> gives the element type being declared.</p>
+<div class="constraint"><p class="prefix"><a name="EDUnique"></a><b>Validity constraint: Unique Element Type Declaration</b></p><p>No element
+type may be declared more than once.</p>
+</div>
+<p>Examples of element type declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ELEMENT br EMPTY&gt;
+&lt;!ELEMENT p (#PCDATA|emph)* &gt;
+&lt;!ELEMENT %name.para; %content.para; &gt;
+&lt;!ELEMENT container ANY&gt;</pre></td></tr></table>
+<div class="div3">
+
+<h4><a name="sec-element-content"></a>3.2.1 Element Content</h4>
+<p>[<a name="dt-elemcontent" title="Element content">Definition</a>: An element <a title="Start-Tag" href="#dt-stag">type</a> has <b>element content</b> when elements
+of that type must contain only <a title="Parent/Child" href="#dt-parentchild">child</a>
+elements (no character data), optionally separated by white space (characters
+matching the nonterminal <a href="#NT-S">S</a>).][<a name="dt-content-model" title="Content model">Definition</a>: In this case, the constraint includes a <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E55">[E55]</a><b>content
+model</b></span>, a simple grammar governing the allowed types of the
+child elements and the order in which they are allowed to appear.]
+The grammar is built on content particles (<a href="#NT-cp">cp</a>s), which
+consist of names, choice lists of content particles, or sequence lists of
+content particles:</p>
+
+<h5>Element-content Models</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-children"></a>[47]   </td><td><code>children</code></td><td>   ::=   </td><td><code>(<a href="#NT-choice">choice</a> | <a href="#NT-seq">seq</a>)
+('?' | '*' | '+')?</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-cp"></a>[48]   </td><td><code>cp</code></td><td>   ::=   </td><td><code>(<a href="#NT-Name">Name</a> | <a href="#NT-choice">choice</a>
+| <a href="#NT-seq">seq</a>) ('?' | '*' | '+')?</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td class="diff-chg"><a name="NT-choice"></a>[49]   </td><td class="diff-chg"><code>choice</code></td><td class="diff-chg">   ::=   </td><td class="diff-chg"><code>'(' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> ( <a href="#NT-S">S</a>? '|' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> )+ <a href="#NT-S">S</a>? ')'</code></td><xsltdebug></xsltdebug><td class="diff-chg"><i>/* <a href="http://www.w3.org/XML/xml-19980210-errata#E50">[E50]</a> */</i></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td class="diff-chg"><i>/* <a href="http://www.w3.org/XML/xml-19980210-errata#E52">[E52]</a> */</i></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#vc-PEinGroup">[VC: Proper Group/PE Nesting]</a></td></tr>
+<tr valign="baseline"><td class="diff-chg"><a name="NT-seq"></a>[50]   </td><td class="diff-chg"><code>seq</code></td><td class="diff-chg">   ::=   </td><td class="diff-chg"><code>'(' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> ( <a href="#NT-S">S</a>? ',' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> )* <a href="#NT-S">S</a>? ')'</code></td><xsltdebug></xsltdebug><td class="diff-chg"><i>/* <a href="http://www.w3.org/XML/xml-19980210-errata#E52">[E52]</a> */</i></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#vc-PEinGroup">[VC: Proper Group/PE Nesting]</a></td></tr>
+</tbody></table>
+<p>where each <a href="#NT-Name">Name</a> is the type of an element which
+may appear as a <a title="Parent/Child" href="#dt-parentchild">child</a>. Any content
+particle in a choice list may appear in the <a title="Element content" href="#dt-elemcontent">element
+content</a> at the location where the choice list appears in the grammar;
+content particles occurring in a sequence list must each appear in the <a title="Element content" href="#dt-elemcontent">element content</a> in the order given in the list.
+The optional character following a name or list governs whether the element
+or the content particles in the list may occur one or more (<code>+</code>),
+zero or more (<code>*</code>), or zero or one times (<code>?</code>). The
+absence of such an operator means that the element or content particle must
+appear exactly once. This syntax and meaning are identical to those used in
+the productions in this specification.</p>
+<p>The content of an element matches a content model if and only if it is
+possible to trace out a path through the content model, obeying the sequence,
+choice, and repetition operators and matching each element in the content
+against an element type in the content model. <a title="For Compatibility" href="#dt-compat">For
+compatibility</a>, it is an error if an element in the document can
+match more than one occurrence of an element type in the content model. For
+more information, see <a href="#determinism"><b>E Deterministic Content Models</b></a>.</p>
+
+
+<div class="constraint"><p class="prefix"><a name="vc-PEinGroup"></a><b>Validity constraint: Proper Group/PE Nesting</b></p><p>Parameter-entity <a title="Replacement Text" href="#dt-repltext">replacement text</a> must be properly nested with <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E11">[E11]</a>parenthesized</span>
+groups. That is to say, if either of the opening or closing parentheses in
+a <a href="#NT-choice">choice</a>, <a href="#NT-seq">seq</a>, or <a href="#NT-Mixed">Mixed</a>
+construct is contained in the replacement text for a <a title="Parameter-entity reference" href="#dt-PERef">parameter
+entity</a>, both must be contained in the same replacement text.</p>
+<div class="diff-chg"><p><a href="http://www.w3.org/XML/xml-19980210-errata#E19">[E19]</a><a title="For interoperability" href="#dt-interop">For interoperability</a>, if a parameter-entity reference
+appears in a <a href="#NT-choice">choice</a>, <a href="#NT-seq">seq</a>, or <a href="#NT-Mixed">Mixed</a> construct, its replacement text should contain at
+least one non-blank character, and neither the first nor last non-blank character
+of the replacement text should be a connector (<code>|</code> or <code>,</code>).</p></div>
+</div>
+<p>Examples of element-content models:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ELEMENT spec (front, body, back?)&gt;
+&lt;!ELEMENT div1 (head, (p | list | note)*, div2*)&gt;
+&lt;!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*&gt;</pre></td></tr></table>
+</div>
+<div class="div3">
+
+<h4><a name="sec-mixed-content"></a>3.2.2 Mixed Content</h4>
+<p>[<a name="dt-mixed" title="Mixed Content">Definition</a>: An element <a title="Start-Tag" href="#dt-stag">type</a>
+has <b>mixed content</b> when elements of that type may contain character
+data, optionally interspersed with <a title="Parent/Child" href="#dt-parentchild">child</a>
+elements.] In this case, the types of the child elements may be constrained,
+but not their order or their number of occurrences:</p>
+
+<h5>Mixed-content Declaration</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-Mixed"></a>[51]   </td><td><code>Mixed</code></td><td>   ::=   </td><td><code>'(' <a href="#NT-S">S</a>? '#PCDATA' (<a href="#NT-S">S</a>?
+'|' <a href="#NT-S">S</a>? <a href="#NT-Name">Name</a>)* <a href="#NT-S">S</a>?
+')*' </code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| '(' <a href="#NT-S">S</a>? '#PCDATA' <a href="#NT-S">S</a>? ')' </code></td><td><a href="#vc-PEinGroup">[VC: Proper Group/PE Nesting]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#vc-MixedChildrenUnique">[VC: No Duplicate Types]</a></td></tr>
+</tbody></table>
+<p>where the <a href="#NT-Name">Name</a>s give the types of elements that
+may appear as children. <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E10">[E10]</a>The
+keyword <b>#PCDATA</b> derives historically from the term "parsed
+character data."</span></p>
+<div class="constraint"><p class="prefix"><a name="vc-MixedChildrenUnique"></a><b>Validity constraint: No Duplicate Types</b></p><p>The
+same name must not appear more than once in a single mixed-content declaration.</p>
+</div>
+<p>Examples of mixed content declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*&gt;
+&lt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* &gt;
+&lt;!ELEMENT b (#PCDATA)&gt;</pre></td></tr></table>
+</div>
+</div>
+<div class="div2">
+
+<h3><a name="attdecls"></a>3.3 Attribute-List Declarations</h3>
+<p><a title="Attribute" href="#dt-attr">Attributes</a> are used to associate name-value
+pairs with <a title="Element" href="#dt-element">elements</a>. Attribute specifications
+may appear only within <a title="Start-Tag" href="#dt-stag">start-tags</a> and <a title="empty-element tag" href="#dt-eetag">empty-element tags</a>; thus, the productions used to
+recognize them appear in <a href="#sec-starttags"><b>3.1 Start-Tags, End-Tags, and Empty-Element Tags</b></a>. Attribute-list declarations
+may be used:</p>
+<ul>
+<li><p>To define the set of attributes pertaining to a given element type.</p>
+</li>
+<li><p>To establish type constraints for these attributes.</p></li>
+<li><p>To provide <a title="Attribute Default" href="#dt-default">default values</a> for
+attributes.</p></li>
+</ul>
+<p>[<a name="dt-attdecl" title="Attribute-List Declaration">Definition</a>:  <b>Attribute-list
+declarations</b> specify the name, data type, and default value (if any)
+of each attribute associated with a given element type:]</p>
+
+<h5>Attribute-list Declaration</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-AttlistDecl"></a>[52]   </td><td><code>AttlistDecl</code></td><td>   ::=   </td><td><code>'&lt;!ATTLIST' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-AttDef">AttDef</a>* <a href="#NT-S">S</a>? '&gt;'</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-AttDef"></a>[53]   </td><td><code>AttDef</code></td><td>   ::=   </td><td><code><a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-S">S</a> <a href="#NT-AttType">AttType</a> <a href="#NT-S">S</a> <a href="#NT-DefaultDecl">DefaultDecl</a></code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>The <a href="#NT-Name">Name</a> in the <a href="#NT-AttlistDecl">AttlistDecl</a>
+rule is the type of an element. At user option, an XML processor may issue
+a warning if attributes are declared for an element type not itself declared,
+but this is not an error. The <a href="#NT-Name">Name</a> in the <a href="#NT-AttDef">AttDef</a>
+rule is the name of the attribute.</p>
+<p>When more than one <a href="#NT-AttlistDecl">AttlistDecl</a> is provided
+for a given element type, the contents of all those provided are merged. When
+more than one definition is provided for the same attribute of a given element
+type, the first declaration is binding and later declarations are ignored. <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E9">[E9]</a><a title="For interoperability" href="#dt-interop">For interoperability,</a> writers of DTDs may choose
+to provide at most one attribute-list declaration for a given element type,
+at most one attribute definition for a given attribute name in an attribute-list
+declaration, and at least one attribute definition in each attribute-list
+declaration.</span> For interoperability, an XML processor may at user option
+issue a warning when more than one attribute-list declaration is provided
+for a given element type, or more than one attribute definition is provided
+for a given attribute, but this is not an error.</p>
+<div class="div3">
+
+<h4><a name="sec-attribute-types"></a>3.3.1 Attribute Types</h4>
+<p>XML attribute types are of three kinds: a string type, a set of tokenized
+types, and enumerated types. The string type may take any literal string as
+a value; the tokenized types have varying lexical and semantic constraints<span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E8">[E8]</a>.
+The validity constraints noted in the grammar are applied after the attribute
+value has been normalized as described in <a href="#attdecls"><b>3.3 Attribute-List Declarations</b></a>.</span></p>
+
+<h5>Attribute Types</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-AttType"></a>[54]   </td><td><code>AttType</code></td><td>   ::=   </td><td><code><a href="#NT-StringType">StringType</a> | <a href="#NT-TokenizedType">TokenizedType</a>
+| <a href="#NT-EnumeratedType">EnumeratedType</a> </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-StringType"></a>[55]   </td><td><code>StringType</code></td><td>   ::=   </td><td><code>'CDATA'</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-TokenizedType"></a>[56]   </td><td><code>TokenizedType</code></td><td>   ::=   </td><td><code>'ID'</code></td><xsltdebug></xsltdebug><td><a href="#id">[VC: ID]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#one-id-per-el">[VC: One ID per Element Type]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#id-default">[VC: ID Attribute Default]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'IDREF'</code></td><td><a href="#idref">[VC: IDREF]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'IDREFS'</code></td><td><a href="#idref">[VC: IDREF]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'ENTITY'</code></td><td><a href="#entname">[VC: Entity Name]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'ENTITIES'</code></td><td><a href="#entname">[VC: Entity Name]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'NMTOKEN'</code></td><td><a href="#nmtok">[VC: Name Token]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'NMTOKENS'</code></td><td><a href="#nmtok">[VC: Name Token]</a></td></tr>
+</tbody></table>
+<div class="constraint"><p class="prefix"><a name="id"></a><b>Validity constraint: ID</b></p><p>Values of type <b>ID</b> must match the <a href="#NT-Name">Name</a> production. A name must not appear more than once
+in an XML document as a value of this type; i.e., ID values must uniquely
+identify the elements which bear them.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="one-id-per-el"></a><b>Validity constraint: One ID per Element Type</b></p><p>No element
+type may have more than one ID attribute specified.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="id-default"></a><b>Validity constraint: ID Attribute Default</b></p><p>An ID attribute
+must have a declared default of <b>#IMPLIED</b> or <b>#REQUIRED</b>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="idref"></a><b>Validity constraint: IDREF</b></p><p>Values of type <b>IDREF</b> must
+match the <a href="#NT-Name">Name</a> production, and values of type <b>IDREFS</b>
+must match <a href="#NT-Names">Names</a>; each <a href="#NT-Name">Name</a>
+must match the value of an ID attribute on some element in the XML document;
+i.e. <b>IDREF</b> values must match the value of some ID attribute.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="entname"></a><b>Validity constraint: Entity Name</b></p><p>Values of type <b>ENTITY</b>
+must match the <a href="#NT-Name">Name</a> production, values of type <b>ENTITIES</b>
+must match <a href="#NT-Names">Names</a>; each <a href="#NT-Name">Name</a>
+must match the name of an <a title="Unparsed Entity" href="#dt-unparsed">unparsed entity</a>
+declared in the <a title="Document Type Declaration" href="#dt-doctype">DTD</a>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="nmtok"></a><b>Validity constraint: Name Token</b></p><p>Values of type <b>NMTOKEN</b>
+must match the <a href="#NT-Nmtoken">Nmtoken</a> production; values of type <b>NMTOKENS</b>
+must match <a title="" href="#NT-Nmtokens">Nmtokens</a>.</p>
+</div>
+
+<p>[<a name="dt-enumerated" title="Enumerated Attribute Values">Definition</a>: <b>Enumerated attributes</b> can take one of a list of values
+provided in the declaration]. There are two kinds of enumerated types:</p>
+
+<h5>Enumerated Attribute Types</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-EnumeratedType"></a>[57]   </td><td><code>EnumeratedType</code></td><td>   ::=   </td><td><code><a href="#NT-NotationType">NotationType</a>
+| <a href="#NT-Enumeration">Enumeration</a> </code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-NotationType"></a>[58]   </td><td><code>NotationType</code></td><td>   ::=   </td><td><code>'NOTATION' <a href="#NT-S">S</a> '(' <a href="#NT-S">S</a>? <a href="#NT-Name">Name</a> (<a href="#NT-S">S</a>? '|' <a href="#NT-S">S</a>? <a href="#NT-Name">Name</a>)* <a href="#NT-S">S</a>? ')' </code></td><xsltdebug></xsltdebug><td><a href="#notatn">[VC: Notation Attributes]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td class="diff-add"><a href="#OneNotationPer">[VC: One
+Notation Per Element Type]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td class="diff-add"><a href="#NoNotationEmpty">[VC: No
+Notation on Empty Element]</a></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-Enumeration"></a>[59]   </td><td><code>Enumeration</code></td><td>   ::=   </td><td><code>'(' <a href="#NT-S">S</a>? <a href="#NT-Nmtoken">Nmtoken</a>
+(<a href="#NT-S">S</a>? '|' <a href="#NT-S">S</a>? <a href="#NT-Nmtoken">Nmtoken</a>)* <a href="#NT-S">S</a>? ')'</code></td><xsltdebug></xsltdebug><td><a href="#enum">[VC: Enumeration]</a></td></tr></tbody></table>
+<p>A <b>NOTATION</b> attribute identifies a <a title="Notation" href="#dt-notation">notation</a>,
+declared in the DTD with associated system and/or public identifiers, to be
+used in interpreting the element to which the attribute is attached.</p>
+<div class="constraint"><p class="prefix"><a name="notatn"></a><b>Validity constraint: Notation Attributes</b></p><p>Values of this type
+must match one of the <a href="#Notations"><cite>notation</cite></a> names
+included in the declaration; all notation names in the declaration must be
+declared.</p>
+</div>
+<div class="diff-add"><div class="constraint"><p class="prefix"><a name="OneNotationPer"></a><b>Validity constraint: <a href="http://www.w3.org/XML/xml-19980210-errata#E7">[E7]</a>One
+Notation Per Element Type</b></p><p>No element type may have more than one <b>NOTATION</b>
+attribute specified.</p>
+</div></div>
+<div class="diff-add"><div class="constraint"><p class="prefix"><a name="NoNotationEmpty"></a><b>Validity constraint: <a href="http://www.w3.org/XML/xml-19980210-errata#E68">[E68]</a>No
+Notation on Empty Element</b></p><p><a title="For Compatibility" href="#dt-compat">For compatibility</a>,
+an attribute of type <b>NOTATION</b> must not be declared on an element
+declared <b>EMPTY</b>.</p>
+</div></div>
+<div class="constraint"><p class="prefix"><a name="enum"></a><b>Validity constraint: Enumeration</b></p><p>Values of this type must match
+one of the <a href="#NT-Nmtoken">Nmtoken</a> tokens in the declaration.</p>
+</div>
+<p><a title="For interoperability" href="#dt-interop">For interoperability,</a> the same <a href="#NT-Nmtoken">Nmtoken</a> should not occur more than once in the enumerated
+attribute types of a single element type.</p>
+</div>
+<div class="div3">
+
+<h4><a name="sec-attr-defaults"></a>3.3.2 Attribute Defaults</h4>
+<p>An <a title="Attribute-List Declaration" href="#dt-attdecl">attribute declaration</a> provides information
+on whether the attribute's presence is required, and if not, how an XML processor
+should react if a declared attribute is absent in a document.</p>
+
+<h5>Attribute Defaults</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-DefaultDecl"></a>[60]   </td><td><code>DefaultDecl</code></td><td>   ::=   </td><td><code>'#REQUIRED' | '#IMPLIED' </code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| (('#FIXED' S)? <a href="#NT-AttValue">AttValue</a>)</code></td><td><a href="#RequiredAttr">[VC: Required Attribute]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#defattrvalid">[VC: Attribute Default Legal]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#CleanAttrVals">[WFC: No &lt; in Attribute Values]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#FixedAttr">[VC: Fixed Attribute Default]</a></td></tr>
+</tbody></table>
+<p>In an attribute declaration, <b>#REQUIRED</b> means that the attribute
+must always be provided, <b>#IMPLIED</b> that no default value is provided.  [<a name="dt-default" title="Attribute Default">Definition</a>: If
+the declaration is neither <b>#REQUIRED</b> nor <b>#IMPLIED</b>, then
+the <a href="#NT-AttValue">AttValue</a> value contains the declared <b>default</b>
+value; the <b>#FIXED</b> keyword states that the attribute must always have
+the default value. If a default value is declared, when an XML processor encounters
+an omitted attribute, it is to behave as though the attribute were present
+with the declared default value.]</p>
+<div class="constraint"><p class="prefix"><a name="RequiredAttr"></a><b>Validity constraint: Required Attribute</b></p><p>If the default
+declaration is the keyword <b>#REQUIRED</b>, then the attribute must be
+specified for all elements of the type in the attribute-list declaration.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="defattrvalid"></a><b>Validity constraint: Attribute Default Legal</b></p><p>The declared
+default value must meet the lexical constraints of the declared attribute
+type.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="FixedAttr"></a><b>Validity constraint: Fixed Attribute Default</b></p><p>If an attribute
+has a default value declared with the <b>#FIXED</b> keyword, instances of
+that attribute must match the default value.</p>
+</div>
+<p>Examples of attribute-list declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ATTLIST termdef
+          id      ID      #REQUIRED
+          name    CDATA   #IMPLIED&gt;
+&lt;!ATTLIST list
+          type    (bullets|ordered|glossary)  "ordered"&gt;
+&lt;!ATTLIST form
+          method  CDATA   #FIXED "POST"&gt;</pre></td></tr></table>
+</div>
+<div class="diff-chg"><div class="div3">
+
+<h4><a name="AVNormalize"></a>3.3.3 <a href="http://www.w3.org/XML/xml-19980210-errata#E70">[E70]</a>Attribute-Value
+Normalization</h4>
+<p>Before the value of an attribute is passed to the application or checked
+for validity, the XML processor must normalize the attribute value by applying
+the algorithm below, or by using some other method such that the value passed
+to the application is the same as that produced by the algorithm.</p>
+<ol>
+<li><p>All line breaks must have been normalized on input to #xA as described
+in <a href="#sec-line-ends"><b>2.11 End-of-Line Handling</b></a>, so the rest of this algorithm operates
+on text normalized in this way.</p></li>
+<li><p>Begin with a normalized value consisting of the empty string.</p>
+</li>
+<li><p>For each character, entity reference, or character reference in the
+unnormalized attribute value, beginning with the first and continuing to the
+last, do the following:</p>
+<ul>
+<li><p>For a character reference, append the referenced character to the
+normalized value.</p></li>
+<li><p>For an entity reference, recursively apply step 3 of this algorithm
+to the replacement text of the entity.</p></li>
+<li><p>For a white space character (#x20, #xD, #xA, #x9), append a space
+character (#x20) to the normalized value.</p></li>
+<li><p>For another character, append the character to the normalized value.</p>
+</li>
+</ul>
+</li>
+</ol>
+<p>If the attribute type is not CDATA, then the XML processor must further
+process the normalized attribute value by discarding any leading and trailing
+space (#x20) characters, and by replacing sequences of space (#x20) characters
+by a single space (#x20) character.</p>
+<p>Note that if the unnormalized attribute value contains a character reference
+to a white space character other than space (#x20), the normalized value contains
+the referenced character itself (#xD, #xA or #x9). This contrasts with the
+case where the unnormalized value contains a white space character (not a
+reference), which is replaced with a space character (#x20) in the normalized
+value and also contrasts with the case where the unnormalized value contains
+an entity reference whose replacement text contains a white space character;
+being recursively processed, the white space character is replaced with a
+space character (#x20) in the normalized value.</p>
+<p>All attributes for which no declaration has been read should be treated
+by a non-validating <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E95">[E95]</a>processor</span>
+as if declared <b>CDATA</b>.</p>
+<p>Following are examples of attribute normalization. Given the following
+declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY d "&amp;#xD;"&gt;
+&lt;!ENTITY a "&amp;#xA;"&gt;
+&lt;!ENTITY da "&amp;#xD;&amp;#xA;"&gt;</pre></td></tr></table>
+<p>the attribute specifications in the left column below would be normalized
+to the character sequences of the middle column if the attribute <code>a</code>
+is declared <b>NMTOKENS</b> and to those of the right columns if <code>a</code>
+is declared <b>CDATA</b>.</p>
+<table border="1" frame="border"><thead><tr><th rowspan="1" colspan="1">Attribute specification</th>
+<th rowspan="1" colspan="1">a is NMTOKENS</th><th rowspan="1" colspan="1">a is CDATA</th></tr></thead><tbody><tr><td rowspan="1" colspan="1"><table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>a="
+
+xyz"</pre></td></tr></table></td><td rowspan="1" colspan="1"><code>x y z</code></td><td rowspan="1" colspan="1"><code>#x20 #x20 x y z</code></td>
+</tr><tr><td rowspan="1" colspan="1"><table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>a="&amp;d;&amp;d;A&amp;a;&amp;a;B&amp;da;"</pre></td></tr></table></td><td rowspan="1" colspan="1"><code>A
+#x20 B</code></td><td rowspan="1" colspan="1"><code>#x20 #x20 A #x20 #x20 B #x20 #x20</code></td>
+</tr><tr><td rowspan="1" colspan="1"><table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>a=
+"&amp;#xd;&amp;#xd;A&amp;#xa;&amp;#xa;B&amp;#xd;&amp;#xa;"</pre></td></tr></table></td><td rowspan="1" colspan="1"><code>#xD
+#xD A #xA #xA B #xD #xA</code></td><td rowspan="1" colspan="1"><code>#xD #xD A #xA #xA B #xD #xD</code></td>
+</tr></tbody></table>
+<p>Note that the last example is invalid (but well-formed) if <code>a</code>
+is declared to be of type <b>NMTOKENS</b>.</p>
+</div></div>
+</div>
+<div class="div2">
+
+<h3><a name="sec-condition-sect"></a>3.4 Conditional Sections</h3>
+<p>[<a name="dt-cond-section" title="conditional section">Definition</a>:  <b>Conditional
+sections</b> are portions of the <a title="Document Type Declaration" href="#dt-doctype">document type
+declaration external subset</a> which are included in, or excluded from,
+the logical structure of the DTD based on the keyword which governs them.]</p>
+
+<h5>Conditional Section</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-conditionalSect"></a>[61]   </td><td><code>conditionalSect</code></td><td>   ::=   </td><td><code><a href="#NT-includeSect">includeSect</a> | <a href="#NT-ignoreSect">ignoreSect</a> </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-includeSect"></a>[62]   </td><td><code>includeSect</code></td><td>   ::=   </td><td><code>'&lt;![' S? 'INCLUDE' S? '[' <a href="#NT-extSubsetDecl">extSubsetDecl</a>
+']]&gt;' </code></td><xsltdebug></xsltdebug><td><i>/* <a href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</a> */</i></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td class="diff-add"><a href="#condsec-nesting">[VC: Proper
+Conditional Section/PE Nesting]</a></td></tr>
+<tr valign="baseline"><td><a name="NT-ignoreSect"></a>[63]   </td><td><code>ignoreSect</code></td><td>   ::=   </td><td><code>'&lt;![' S? 'IGNORE' S? '[' <a href="#NT-ignoreSectContents">ignoreSectContents</a>*
+']]&gt;'</code></td><xsltdebug></xsltdebug><td><i>/* <a href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</a> */</i></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td class="diff-add"><a href="#condsec-nesting">[VC: Proper
+Conditional Section/PE Nesting]</a></td></tr>
+<tr valign="baseline"><td><a name="NT-ignoreSectContents"></a>[64]   </td><td><code>ignoreSectContents</code></td><td>   ::=   </td><td><code><a href="#NT-Ignore">Ignore</a> ('&lt;![' <a href="#NT-ignoreSectContents">ignoreSectContents</a> ']]&gt;' <a href="#NT-Ignore">Ignore</a>)*</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Ignore"></a>[65]   </td><td><code>Ignore</code></td><td>   ::=   </td><td><code><a href="#NT-Char">Char</a>* - (<a href="#NT-Char">Char</a>*
+('&lt;![' | ']]&gt;') <a href="#NT-Char">Char</a>*) </code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<div class="diff-add"><div class="constraint"><p class="prefix"><a name="condsec-nesting"></a><b>Validity constraint: <a href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</a>Proper
+Conditional Section/PE Nesting</b></p><p>If any of the "<code>&lt;![</code>",
+"<code>[</code>", or "<code>]]&gt;</code>" of a conditional section is contained
+in the replacement text for a parameter-entity reference, all of them must
+be contained in the same replacement text.</p>
+</div></div>
+<p>Like the internal and external DTD subsets, a conditional section may contain
+one or more complete declarations, comments, processing instructions, or nested
+conditional sections, intermingled with white space.</p>
+<p>If the keyword of the conditional section is <b>INCLUDE</b>, then the
+contents of the conditional section are part of the DTD. If the keyword of
+the conditional section is <b>IGNORE</b>, then the contents of the conditional
+section are not logically part of the DTD. <span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</a>Note that
+for reliable parsing, the contents of even ignored conditional sections must
+be read in order to detect nested conditional sections and ensure that the
+end of the outermost (ignored) conditional section is properly detected.</span>
+If a conditional section with a keyword of <b>INCLUDE</b> occurs within
+a larger conditional section with a keyword of <b>IGNORE</b>, both the outer
+and the inner conditional sections are ignored.<span class="diff-add"> <a href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</a>The contents
+of an ignored conditional section are parsed by ignoring all characters after
+the "<code>[</code>" following the keyword, except conditional section starts
+"<code>&lt;![</code>" and ends "<code>]]&gt;</code>", until the matching conditional
+section end is found. Parameter entity references are not recognized in this
+process.</span></p>
+<p>If the keyword of the conditional section is a parameter-entity reference,
+the parameter entity must be replaced by its content before the processor
+decides whether to include or ignore the conditional section.</p>
+<p>An example:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY % draft 'INCLUDE' &gt;
+&lt;!ENTITY % final 'IGNORE' &gt;
+
+&lt;![%draft;[
+&lt;!ELEMENT book (comments*, title, body, supplements?)&gt;
+]]&gt;
+&lt;![%final;[
+&lt;!ELEMENT book (title, body, supplements?)&gt;
+]]&gt;</pre></td></tr></table>
+</div>
+
+</div>
+
+<div class="div1">
+
+<h2><a name="sec-physical-struct"></a>4 Physical Structures</h2>
+<p>[<a name="dt-entity" title="Entity">Definition</a>: An XML document may consist of one
+or many storage units. <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E6">[E6]</a>These
+are called <b>entities</b>; they all have <b>content</b> and are
+all (except for the <a title="Document Entity" href="#dt-docent">document entity</a> and
+the <a title="Document Type Declaration" href="#dt-doctype">external DTD subset</a>) identified by
+entity <b>name</b></span>.] Each XML document has one entity
+called the <a title="Document Entity" href="#dt-docent">document entity</a>, which serves
+as the starting point for the <a title="XML Processor" href="#dt-xml-proc">XML processor</a>
+and may contain the whole document.</p>
+<p>Entities may be either parsed or unparsed. [<a name="dt-parsedent" title="Text Entity">Definition</a>: A <b>parsed
+entity's</b> contents are referred to as its <a title="Replacement Text" href="#dt-repltext">replacement
+text</a>; this <a title="Text" href="#dt-text">text</a> is considered an
+integral part of the document.]</p>
+<p>[<a name="dt-unparsed" title="Unparsed Entity">Definition</a>: An <b>unparsed entity</b>
+is a resource whose contents may or may not be <a title="Text" href="#dt-text">text</a>,
+and if text, <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E25">[E25]</a>may
+be other than</span> XML. Each unparsed entity has an associated <a title="Notation" href="#dt-notation">notation</a>, identified by name. Beyond a requirement
+that an XML processor make the identifiers for the entity and notation available
+to the application, XML places no constraints on the contents of unparsed
+entities.]</p>
+<p>Parsed entities are invoked by name using entity references; unparsed entities
+by name, given in the value of <b>ENTITY</b> or <b>ENTITIES</b> attributes.</p>
+<p>[<a name="gen-entity" title="general entity">Definition</a>: <b>General entities</b>
+are entities for use within the document content. In this specification, general
+entities are sometimes referred to with the unqualified term <em>entity</em>
+when this leads to no ambiguity.] [<a name="dt-PE" title="Parameter entity">Definition</a>: <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E53">[E53]</a><b>Parameter
+entities</b></span> are parsed entities for use within the DTD.]
+These two types of entities use different forms of reference and are recognized
+in different contexts. Furthermore, they occupy different namespaces; a parameter
+entity and a general entity with the same name are two distinct entities.</p>
+<div class="div2">
+
+<h3><a name="sec-references"></a>4.1 Character and Entity References</h3>
+<p>[<a name="dt-charref" title="Character Reference">Definition</a>:  A <b>character
+reference</b> refers to a specific character in the ISO/IEC 10646 character
+set, for example one not directly accessible from available input devices.]</p>
+
+<h5>Character Reference</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-CharRef"></a>[66]   </td><td><code>CharRef</code></td><td>   ::=   </td><td><code>'&amp;#' [0-9]+ ';' </code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| '&amp;#x' [0-9a-fA-F]+ ';'</code></td><td><a href="#wf-Legalchar">[WFC: Legal Character]</a></td></tr></tbody></table>
+<div class="constraint"><p class="prefix"><a name="wf-Legalchar"></a><b>Well-formedness constraint: Legal Character</b></p><p>Characters referred
+to using character references must match the production for <a title="" href="#NT-Char">Char</a>.</p>
+</div>
+<p>If the character reference begins with "<code>&amp;#x</code>",
+the digits and letters up to the terminating <code>;</code> provide a hexadecimal
+representation of the character's code point in ISO/IEC 10646. If it begins
+just with "<code>&amp;#</code>", the digits up to the terminating <code>;</code>
+provide a decimal representation of the character's code point.</p>
+<p>[<a name="dt-entref" title="Entity Reference">Definition</a>: An <b>entity reference</b>
+refers to the content of a named entity.] [<a name="dt-GERef" title="General Entity Reference">Definition</a>: References to parsed general entities use
+ampersand (<code>&amp;</code>) and semicolon (<code>;</code>) as delimiters.] [<a name="dt-PERef" title="Parameter-entity reference">Definition</a>:  <b>Parameter-entity references</b>
+use percent-sign (<code>%</code>) and semicolon (<code>;</code>) as delimiters.]</p>
+
+<h5>Entity Reference</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-Reference"></a>[67]   </td><td><code>Reference</code></td><td>   ::=   </td><td><code><a href="#NT-EntityRef">EntityRef</a> | <a href="#NT-CharRef">CharRef</a></code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-EntityRef"></a>[68]   </td><td><code>EntityRef</code></td><td>   ::=   </td><td><code>'&amp;' <a href="#NT-Name">Name</a> ';'</code></td><xsltdebug></xsltdebug><td><a href="#wf-entdeclared">[WFC: Entity Declared]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#vc-entdeclared">[VC: Entity Declared]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#textent">[WFC: Parsed Entity]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#norecursion">[WFC: No Recursion]</a></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-PEReference"></a>[69]   </td><td><code>PEReference</code></td><td>   ::=   </td><td><code>'%' <a href="#NT-Name">Name</a> ';'</code></td><xsltdebug></xsltdebug><td><a href="#vc-entdeclared">[VC: Entity Declared]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#norecursion">[WFC: No Recursion]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#indtd">[WFC: In DTD]</a></td></tr></tbody></table>
+<div class="constraint"><p class="prefix"><a name="wf-entdeclared"></a><b>Well-formedness constraint: Entity Declared</b></p><p>In a document
+without any DTD, a document with only an internal DTD subset which contains
+no parameter entity references, or a document with "<code>standalone='yes'</code>", <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E34">[E34]</a>for
+an entity reference that does not occur within the external subset or a parameter
+entity, the <a href="#NT-Name">Name</a> given in the entity reference must <a title="match" href="#dt-match">match</a> that in an <a href="#sec-entity-decl"><cite>entity
+declaration</cite></a> that does not occur within the external subset or a
+parameter entity</span>, except that well-formed documents need not declare
+any of the following entities: <code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>. <span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E29">[E29]</a>The declaration
+of a parameter entity must precede any reference to it. Similarly, </span>The
+declaration of a general entity must precede any reference to it which appears
+in a default value in an attribute-list declaration.</p>
+<p>Note that if entities are declared in the external subset or in external
+parameter entities, a non-validating processor is <a href="#include-if-valid"><cite>not
+obligated to</cite></a> read and process their declarations; for such documents,
+the rule that an entity must be declared is a well-formedness constraint only
+if <a href="#sec-rmd"><cite>standalone='yes'</cite></a>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="vc-entdeclared"></a><b>Validity constraint: Entity Declared</b></p><p>In a document with
+an external subset or external parameter entities with "<code>standalone='no'</code>",
+the <a href="#NT-Name">Name</a> given in the entity reference must <a title="match" href="#dt-match">match</a> that in an <a href="#sec-entity-decl"><cite>entity
+declaration</cite></a>. For interoperability, valid documents should declare
+the entities <code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>, in the form specified in <a href="#sec-predefined-ent"><b>4.6 Predefined Entities</b></a>.
+The declaration of a parameter entity must precede any reference to it. Similarly,
+the declaration of a general entity must precede any <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E92">[E92]</a>attribute-list
+declaration containing a default value with a direct or indirect reference
+to that general entity.</span></p>
+</div>
+
+<div class="constraint"><p class="prefix"><a name="textent"></a><b>Well-formedness constraint: Parsed Entity</b></p><p>An entity reference must
+not contain the name of an <a title="Unparsed Entity" href="#dt-unparsed">unparsed entity</a>.
+Unparsed entities may be referred to only in <a title="Attribute Value" href="#dt-attrval">attribute
+values</a> declared to be of type <b>ENTITY</b> or <b>ENTITIES</b>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="norecursion"></a><b>Well-formedness constraint: No Recursion</b></p><p>A parsed entity must
+not contain a recursive reference to itself, either directly or indirectly.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="indtd"></a><b>Well-formedness constraint: In DTD</b></p><p>Parameter-entity references may
+only appear in the <a title="Document Type Declaration" href="#dt-doctype">DTD</a>.</p>
+</div>
+<p>Examples of character and entity references:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>Type &lt;key&gt;less-than&lt;/key&gt; (&amp;#x3C;) to save options.
+This document was prepared on &amp;docdate; and
+is classified &amp;security-level;.</pre></td></tr></table>
+<p>Example of a parameter-entity reference:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!-- declare the parameter entity "ISOLat2"... --&gt;
+&lt;!ENTITY % ISOLat2
+         SYSTEM "http://www.xml.com/iso/isolat2-xml.entities" &gt;
+&lt;!-- ... now reference it. --&gt;
+%ISOLat2;</pre></td></tr></table>
+</div>
+<div class="div2">
+
+<h3><a name="sec-entity-decl"></a>4.2 Entity Declarations</h3>
+<p>[<a name="dt-entdecl" title="entity declaration">Definition</a>:  Entities are declared
+thus:]</p>
+
+<h5>Entity Declaration</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-EntityDecl"></a>[70]   </td><td><code>EntityDecl</code></td><td>   ::=   </td><td><code><a href="#NT-GEDecl">GEDecl</a> | <a href="#NT-PEDecl">PEDecl</a></code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-GEDecl"></a>[71]   </td><td><code>GEDecl</code></td><td>   ::=   </td><td><code>'&lt;!ENTITY' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-S">S</a> <a href="#NT-EntityDef">EntityDef</a> <a href="#NT-S">S</a>?
+'&gt;'</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-PEDecl"></a>[72]   </td><td><code>PEDecl</code></td><td>   ::=   </td><td><code>'&lt;!ENTITY' <a href="#NT-S">S</a> '%' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-S">S</a> <a href="#NT-PEDef">PEDef</a> <a href="#NT-S">S</a>? '&gt;'</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-EntityDef"></a>[73]   </td><td><code>EntityDef</code></td><td>   ::=   </td><td><code><a href="#NT-EntityValue">EntityValue</a> | (<a href="#NT-ExternalID">ExternalID</a> <a href="#NT-NDataDecl">NDataDecl</a>?)</code></td><xsltdebug></xsltdebug></tr>
+
+<tr valign="baseline"><td><a name="NT-PEDef"></a>[74]   </td><td><code>PEDef</code></td><td>   ::=   </td><td><code><a href="#NT-EntityValue">EntityValue</a> | <a href="#NT-ExternalID">ExternalID</a></code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>The <a href="#NT-Name">Name</a> identifies the entity in an <a title="Entity Reference" href="#dt-entref">entity
+reference</a> or, in the case of an unparsed entity, in the value of
+an <b>ENTITY</b> or <b>ENTITIES</b> attribute. If the same entity is declared
+more than once, the first declaration encountered is binding; at user option,
+an XML processor may issue a warning if entities are declared multiple times.</p>
+<div class="div3">
+
+<h4><a name="sec-internal-ent"></a>4.2.1 Internal Entities</h4>
+<p>[<a name="dt-internent" title="Internal Entity Replacement Text">Definition</a>: If the
+entity definition is an <a href="#NT-EntityValue">EntityValue</a>, the defined
+entity is called an <b>internal entity</b>. There is no separate physical
+storage object, and the content of the entity is given in the declaration.]
+Note that some processing of entity and character references in the <a title="Literal Entity Value" href="#dt-litentval">literal entity value</a> may be required to produce
+the correct <a title="Replacement Text" href="#dt-repltext">replacement text</a>: see <a href="#intern-replacement"><b>4.5 Construction of Internal Entity Replacement Text</b></a>.</p>
+<p>An internal entity is a <a title="Text Entity" href="#dt-parsedent">parsed entity</a>.</p>
+<p>Example of an internal entity declaration:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY Pub-Status "This is a pre-release of the
+ specification."&gt;</pre></td></tr></table>
+</div>
+<div class="div3">
+
+<h4><a name="sec-external-ent"></a>4.2.2 External Entities</h4>
+<p>[<a name="dt-extent" title="External Entity">Definition</a>: If the entity is not internal,
+it is an <b>external entity</b>, declared as follows:]</p>
+
+<h5>External Entity Declaration</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-ExternalID"></a>[75]   </td><td><code>ExternalID</code></td><td>   ::=   </td><td><code>'SYSTEM' <a href="#NT-S">S</a> <a href="#NT-SystemLiteral">SystemLiteral</a></code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'PUBLIC' <a href="#NT-S">S</a> <a href="#NT-PubidLiteral">PubidLiteral</a> <a href="#NT-S">S</a> <a href="#NT-SystemLiteral">SystemLiteral</a> </code></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-NDataDecl"></a>[76]   </td><td><code>NDataDecl</code></td><td>   ::=   </td><td><code><a href="#NT-S">S</a> 'NDATA' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a></code></td><xsltdebug></xsltdebug><td><a href="#not-declared">[VC: Notation Declared]</a></td></tr></tbody></table>
+<p>If the <a href="#NT-NDataDecl">NDataDecl</a> is present, this is a general <a title="Unparsed Entity" href="#dt-unparsed">unparsed entity</a>; otherwise it is a parsed entity.</p>
+<div class="constraint"><p class="prefix"><a name="not-declared"></a><b>Validity constraint: Notation Declared</b></p><p>The <a href="#NT-Name">Name</a>
+must match the declared name of a <a title="Notation" href="#dt-notation">notation</a>.</p>
+</div>
+<p><span class="diff-chg">[<a name="dt-sysid" title="System Identifier">Definition</a>: The <a href="#NT-SystemLiteral">SystemLiteral</a> is called the entity's <b>system
+identifier</b>. It is a <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E88">[E88]</a>URI
+reference</span><span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E66">[E66]</a>
+(as defined in <a href="#rfc2396">[IETF RFC 2396]</a>, updated by <a href="#rfc2732">[IETF RFC 2732]</a>)</span>, <a href="http://www.w3.org/XML/xml-19980210-errata#E76">[E76]</a>meant
+to be dereferenced to obtain input for the XML processor to construct the
+entity's replacement text.] It is an error for a fragment identifier
+(beginning with a <code>#</code> character) to be part of a system identifier.</span>
+Unless otherwise provided by information outside the scope of this specification
+(e.g. a special XML element type defined by a particular DTD, or a processing
+instruction defined by a particular application specification), relative URIs
+are relative to the location of the resource within which the entity declaration
+occurs. A URI might thus be relative to the <a title="Document Entity" href="#dt-docent">document
+entity</a>, to the entity containing the <a title="Document Type Declaration" href="#dt-doctype">external
+DTD subset</a>, or to some other <a title="External Entity" href="#dt-extent">external parameter
+entity</a>.</p>
+<div class="diff-chg"><p><a href="http://www.w3.org/XML/xml-19980210-errata#E78">[E78]</a>URI
+references require encoding and escaping of certain characters. The disallowed
+characters include all non-ASCII characters, plus the excluded characters
+listed in Section 2.4 of <a href="#rfc2396">[IETF RFC 2396]</a>, except for the number sign
+(<code>#</code>) and percent sign (<code>%</code>) characters and the square
+bracket characters re-allowed in <a href="#rfc2732">[IETF RFC 2732]</a>. Disallowed characters
+must be escaped as follows:</p></div>
+<div class="diff-add"><ol>
+<li><p>Each disallowed character is converted to UTF-8 <a href="#rfc2279">[IETF RFC 2279]</a>
+as one or more bytes.</p></li>
+<li><p>Any octets corresponding to a disallowed character are escaped with
+the URI escaping mechanism (that is, converted to <code>%</code><var>HH</var>,
+where HH is the hexadecimal notation of the byte value).</p></li>
+<li><p>The original character is replaced by the resulting character sequence.</p>
+</li>
+</ol></div>
+<p>[<a name="dt-pubid" title="Public identifier">Definition</a>:  In addition to a system
+identifier, an external identifier may include a <b>public identifier</b>.]
+An XML processor attempting to retrieve the entity's content may use the public
+identifier to try to generate an alternative <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E88">[E88]</a>URI reference</span>.
+If the processor is unable to do so, it must use the <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E88">[E88]</a>URI
+reference</span> specified in the system literal. Before a match is attempted,
+all strings of white space in the public identifier must be normalized to
+single space characters (#x20), and leading and trailing white space must
+be removed.</p>
+<p>Examples of external entity declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY open-hatch
+         SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml"&gt;
+&lt;!ENTITY open-hatch
+         PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN"
+         "http://www.textuality.com/boilerplate/OpenHatch.xml"&gt;
+&lt;!ENTITY hatch-pic
+         SYSTEM "../grafix/OpenHatch.gif"
+         NDATA gif &gt;</pre></td></tr></table>
+</div>
+</div>
+<div class="div2">
+
+<h3><a name="TextEntities"></a>4.3 Parsed Entities</h3>
+<div class="div3">
+
+<h4><a name="sec-TextDecl"></a>4.3.1 The Text Declaration</h4>
+<p>External parsed entities <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E107">[E107]</a>should</span> each begin with a <b>text declaration</b>.</p>
+
+<h5>Text Declaration</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-TextDecl"></a>[77]   </td><td><code>TextDecl</code></td><td>   ::=   </td><td><code>'&lt;?xml' <a href="#NT-VersionInfo">VersionInfo</a>? <a href="#NT-EncodingDecl">EncodingDecl</a> <a href="#NT-S">S</a>? '?&gt;'</code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>The text declaration must be provided literally, not by reference to a
+parsed entity. No text declaration may appear at any position other than the
+beginning of an external parsed entity. <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E94">[E94]</a>The text declaration
+in an external parsed entity is not considered part of its <a title="Replacement Text" href="#dt-repltext">replacement
+text</a>.</span></p>
+</div>
+<div class="div3">
+
+<h4><a name="wf-entities"></a>4.3.2 Well-Formed Parsed Entities</h4>
+<p>The document entity is well-formed if it matches the production labeled <a href="#NT-document">document</a>. An external general parsed entity is well-formed
+if it matches the production labeled <a href="#NT-extParsedEnt">extParsedEnt</a>. <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</a>All
+external parameter entities are well-formed by definition.</span></p>
+
+<h5>Well-Formed External Parsed Entity</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-extParsedEnt"></a>[78]   </td><td><code>extParsedEnt</code></td><td>   ::=   </td><td><code><a href="#NT-TextDecl">TextDecl</a>? <a href="#NT-content">content</a></code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td class="diff-del"><a name="NT-extPE"></a>[79]   </td><td class="diff-del"><code>extPE</code></td><td class="diff-del">   ::=   </td><td class="diff-del"><code><a href="#NT-TextDecl">TextDecl</a>? <a href="#NT-extSubsetDecl">extSubsetDecl</a></code></td><xsltdebug></xsltdebug><td class="diff-del"><i>/* <a href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</a> */</i></td></tr></tbody></table>
+<p>An internal general parsed entity is well-formed if its replacement text
+matches the production labeled <a href="#NT-content">content</a>. All internal
+parameter entities are well-formed by definition.</p>
+<p>A consequence of well-formedness in entities is that the logical and physical
+structures in an XML document are properly nested; no <a title="Start-Tag" href="#dt-stag">start-tag</a>, <a title="End Tag" href="#dt-etag">end-tag</a>, <a title="Empty" href="#dt-empty">empty-element tag</a>, <a title="Element" href="#dt-element">element</a>, <a title="Comment" href="#dt-comment">comment</a>, <a title="Processing instruction" href="#dt-pi">processing instruction</a>, <a title="Character Reference" href="#dt-charref">character
+reference</a>, or <a title="Entity Reference" href="#dt-entref">entity reference</a>
+can begin in one entity and end in another.</p>
+</div>
+<div class="div3">
+
+<h4><a name="charencoding"></a>4.3.3 Character Encoding in Entities</h4>
+<p>Each external parsed entity in an XML document may use a different encoding
+for its characters. All XML processors must be able to read entities in <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E56">[E56]</a>both
+the UTF-8 and UTF-16 encodings.</span> <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E77">[E77]</a>The terms "UTF-8"
+and "UTF-16" in this specification do not apply to character
+encodings with any other labels, even if the encodings or labels are very
+similar to UTF-8 or UTF-16.</span></p>
+<p>Entities encoded in UTF-16 must begin with the Byte Order Mark described
+by <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</a>Annex
+F of <a href="#ISO10646">[ISO/IEC 10646]</a>, Annex H of <a href="#ISO10646-2000">[ISO/IEC 10646-2000]</a>, section
+2.4 of <a href="#Unicode">[Unicode]</a>, and section 2.7 of <a href="#Unicode3">[Unicode3]</a></span>
+(the ZERO WIDTH NO-BREAK SPACE character, #xFEFF). This is an encoding signature,
+not part of either the markup or the character data of the XML document. XML
+processors must be able to use this character to differentiate between UTF-8
+and UTF-16 encoded documents.</p>
+<p>Although an XML processor is required to read only entities in the UTF-8
+and UTF-16 encodings, it is recognized that other encodings are used around
+the world, and it may be desired for XML processors to read entities that
+use them. <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E47">[E47]</a>In
+the absence of external character encoding information (such as MIME headers),</span>
+parsed entities which are stored in an encoding other than UTF-8 or UTF-16
+must begin with a text declaration <span class="diff-add">(see <a href="#sec-TextDecl"><b>4.3.1 The Text Declaration</b></a>) </span>containing
+an encoding declaration:</p>
+
+<h5>Encoding Declaration</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-EncodingDecl"></a>[80]   </td><td><code>EncodingDecl</code></td><td>   ::=   </td><td><code><a href="#NT-S">S</a> 'encoding' <a href="#NT-Eq">Eq</a>
+('"' <a href="#NT-EncName">EncName</a> '"' | "'" <a href="#NT-EncName">EncName</a>
+"'" ) </code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-EncName"></a>[81]   </td><td><code>EncName</code></td><td>   ::=   </td><td><code>[A-Za-z] ([A-Za-z0-9._] | '-')*</code></td><xsltdebug></xsltdebug><td><i>/* Encoding
+name contains only Latin characters */</i></td></tr></tbody></table>
+<p>In the <a title="Document Entity" href="#dt-docent">document entity</a>, the encoding
+declaration is part of the <a title="XML Declaration" href="#dt-xmldecl">XML declaration</a>.
+The <a href="#NT-EncName">EncName</a> is the name of the encoding used.</p>
+
+<p>In an encoding declaration, the values "<code>UTF-8</code>", "<code>UTF-16</code>", "<code>ISO-10646-UCS-2</code>", and "<code>ISO-10646-UCS-4</code>" should be used
+for the various encodings and transformations of Unicode / ISO/IEC 10646,
+the values "<code>ISO-8859-1</code>", "<code>ISO-8859-2</code>",
+... <a href="http://www.w3.org/XML/xml-19980210-errata#E106">[E106]</a><span class="diff-chg">"<code>ISO-8859-</code><var>n</var>" (where <var>n</var>
+is the part number)</span> should be used for the parts of ISO 8859, and
+the values "<code>ISO-2022-JP</code>", "<code>Shift_JIS</code>",
+and "<code>EUC-JP</code>" should be used for the various encoded
+forms of JIS X-0208-1997. <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E57">[E57]</a>It
+is recommended that character encodings registered (as <em>charset</em>s)
+with the Internet Assigned Numbers Authority <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E58">[E58]</a><a href="#IANA">[IANA-CHARSETS]</a></span>,
+other than those just listed, be referred to using their registered names;
+other encodings should use names starting with an "x-" prefix.
+XML processors should match character encoding names in a case-insensitive
+way and should either interpret an IANA-registered name as the encoding registered
+at IANA for that name or treat it as unknown (processors are, of course, not
+required to support all IANA-registered encodings).</span></p>
+<p>In the absence of information provided by an external transport protocol
+(e.g. HTTP or MIME), it is an <a title="Error" href="#dt-error">error</a> for
+an entity including an encoding declaration to be presented to the XML processor
+in an encoding other than that named in the declaration, <span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E5">[E5]</a>for
+an encoding declaration to occur other than at the beginning of an external
+entity, </span>or for an entity which begins with neither a Byte Order Mark
+nor an encoding declaration to use an encoding other than UTF-8. Note that
+since ASCII is a subset of UTF-8, ordinary ASCII entities do not strictly
+need an encoding declaration.</p>
+<div class="diff-add"><p><a href="http://www.w3.org/XML/xml-19980210-errata#E5">[E5]</a>It
+is <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E36">[E36]</a>a
+fatal</span> error for a <a href="#NT-TextDecl">TextDecl</a> to occur other
+than at the beginning of an external entity.</p></div>
+<p>It is a <a title="Fatal Error" href="#dt-fatal">fatal error</a> when an XML processor
+encounters an entity with an encoding that it is unable to process. <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E79">[E79]</a>It
+is a fatal error if an XML entity is determined (via default, encoding declaration,
+or higher-level protocol) to be in a certain encoding but contains octet sequences
+that are not legal in that encoding. It is also a fatal error if an XML entity
+contains no encoding declaration and its content is not legal UTF-8 or UTF-16.</span></p>
+<p>Examples of <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E23">[E23]</a>text
+declarations containing </span>encoding declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;?xml encoding='UTF-8'?&gt;
+&lt;?xml encoding='EUC-JP'?&gt;</pre></td></tr></table>
+</div>
+</div>
+<div class="div2">
+
+<h3><a name="entproc"></a>4.4 XML Processor Treatment of Entities and References</h3>
+<p>The table below summarizes the contexts in which character references,
+entity references, and invocations of unparsed entities might appear and the
+required behavior of an <a title="XML Processor" href="#dt-xml-proc">XML processor</a>
+in each case. The labels in the leftmost column describe the recognition context: </p><dl>
+<dt class="label">Reference in Content</dt>
+<dd>
+<p>as a reference anywhere after the <a title="Start-Tag" href="#dt-stag">start-tag</a>
+and before the <a title="End Tag" href="#dt-etag">end-tag</a> of an element; corresponds
+to the nonterminal <a href="#NT-content">content</a>.</p>
+</dd>
+<dt class="label">Reference in Attribute Value</dt>
+<dd>
+<p>as a reference within either the value of an attribute in a <a title="Start-Tag" href="#dt-stag">start-tag</a>,
+or a default value in an <a title="Attribute-List Declaration" href="#dt-attdecl">attribute declaration</a>;
+corresponds to the nonterminal <a href="#NT-AttValue">AttValue</a>.</p>
+</dd>
+<dt class="label">Occurs as Attribute Value</dt>
+<dd>
+<p>as a <a href="#NT-Name">Name</a>, not a reference, appearing either as
+the value of an attribute which has been declared as type <b>ENTITY</b>,
+or as one of the space-separated tokens in the value of an attribute which
+has been declared as type <b>ENTITIES</b>.</p>
+</dd>
+<dt class="label">Reference in Entity Value</dt>
+<dd>
+<p>as a reference within a parameter or internal entity's <a title="Literal Entity Value" href="#dt-litentval">literal
+entity value</a> in the entity's declaration; corresponds to the nonterminal <a href="#NT-EntityValue">EntityValue</a>.</p>
+</dd>
+<dt class="label">Reference in DTD</dt>
+<dd>
+<div class="diff-chg"><p><a href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</a>as
+a reference within either the internal or external subsets of the <a title="Document Type Declaration" href="#dt-doctype">DTD</a>, but outside of an <a href="#NT-EntityValue">EntityValue</a>, <a href="#NT-AttValue">AttValue</a>, <a href="#NT-PI">PI</a>, <a href="#NT-Comment">Comment</a>, <a href="#NT-SystemLiteral">SystemLiteral</a>, <a href="#NT-PubidLiteral">PubidLiteral</a>,
+or the contents of an ignored conditional section (see <a href="#sec-condition-sect"><b>3.4 Conditional Sections</b></a>).</p></div>
+<p>.</p>
+</dd>
+</dl><p></p>
+<table border="1" frame="border" cellpadding="7"><tbody align="center"><tr>
+<td rowspan="2" colspan="1"></td><td colspan="4" align="center" valign="bottom" rowspan="1">Entity
+Type</td><td rowspan="2" align="center" colspan="1">Character</td></tr><tr align="center" valign="bottom"><td rowspan="1" colspan="1">Parameter</td><td rowspan="1" colspan="1">Internal General</td><td rowspan="1" colspan="1">External Parsed
+General</td><td rowspan="1" colspan="1">Unparsed</td></tr><tr align="center" valign="middle"><td align="right" rowspan="1" colspan="1">Reference
+in Content</td><td rowspan="1" colspan="1"><a href="#not-recognized"><cite>Not recognized</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td><td rowspan="1" colspan="1"><a href="#include-if-valid"><cite>Included
+if validating</cite></a></td><td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td></tr><tr align="center" valign="middle"><td align="right" rowspan="1" colspan="1">Reference in Attribute Value</td><td rowspan="1" colspan="1"><a href="#not-recognized"><cite>Not recognized</cite></a></td><td rowspan="1" colspan="1"><a href="#inliteral"><cite>Included
+in literal</cite></a></td><td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td>
+<td rowspan="1" colspan="1"><a href="http://www.w3.org/XML/xml-19980210-errata#E51">[E51]</a><div class="diff-chg"><a href="#forbidden"><cite>Forbidden</cite></a></div></td><td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td>
+</tr><tr align="center" valign="middle"><td align="right" rowspan="1" colspan="1">Occurs as Attribute
+Value</td><td rowspan="1" colspan="1"><a href="#not-recognized"><cite>Not recognized</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td><td rowspan="1" colspan="1"><a href="http://www.w3.org/XML/xml-19980210-errata#E51">[E51]</a><div class="diff-chg"><a href="#forbidden"><cite>Forbidden</cite></a></div></td><td rowspan="1" colspan="1"><a href="#notify"><cite>Notify</cite></a></td>
+<td rowspan="1" colspan="1"><a href="http://www.w3.org/XML/xml-19980210-errata#E51">[E51]</a><div class="diff-chg"><a href="#not-recognized"><cite>Not recognized</cite></a></div></td></tr><tr align="center" valign="middle"><td align="right" rowspan="1" colspan="1">Reference in EntityValue</td><td rowspan="1" colspan="1"><a href="#inliteral"><cite>Included in literal</cite></a></td><td rowspan="1" colspan="1"><a href="#bypass"><cite>Bypassed</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#bypass"><cite>Bypassed</cite></a></td><td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td></tr><tr align="center" valign="middle"><td align="right" rowspan="1" colspan="1">Reference in DTD</td><td rowspan="1" colspan="1"><a href="#as-PE"><cite>Included
+as PE</cite></a></td><td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td><td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td></tr></tbody></table>
+<div class="div3">
+
+<h4><a name="not-recognized"></a>4.4.1 Not Recognized</h4>
+<p>Outside the DTD, the <code>%</code> character has no special significance;
+thus, what would be parameter entity references in the DTD are not recognized
+as markup in <a href="#NT-content">content</a>. Similarly, the names of unparsed
+entities are not recognized except when they appear in the value of an appropriately
+declared attribute.</p>
+</div>
+<div class="div3">
+
+<h4><a name="included"></a>4.4.2 Included</h4>
+<p>[<a name="dt-include" title="Include">Definition</a>: An entity is <b>included</b>
+when its <a title="Replacement Text" href="#dt-repltext">replacement text</a> is retrieved
+and processed, in place of the reference itself, as though it were part of
+the document at the location the reference was recognized.] The replacement
+text may contain both <a title="Character Data" href="#dt-chardata">character data</a>
+and (except for parameter entities) <a title="Markup" href="#dt-markup">markup</a>,
+which must be recognized in the usual way<span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E65">[E65]</a>, except that
+the replacement text of entities used to escape markup delimiters (the entities <code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>)
+is always treated as data</span>. (The string "<code>AT&amp;amp;T;</code>"
+expands to "<code>AT&amp;T;</code>" and the remaining ampersand
+is not recognized as an entity-reference delimiter.) A character reference
+is <b>included</b> when the indicated character is processed in place
+of the reference itself. </p>
+</div>
+<div class="div3">
+
+<h4><a name="include-if-valid"></a>4.4.3 Included If Validating</h4>
+<p>When an XML processor recognizes a reference to a parsed entity, in order
+to <a title="Validity" href="#dt-valid">validate</a> the document, the processor
+must <a title="Include" href="#dt-include">include</a> its replacement text. If
+the entity is external, and the processor is not attempting to validate the
+XML document, the processor <a title="May" href="#dt-may">may</a>, but need
+not, include the entity's replacement text. If a non-validating <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E95">[E95]</a>processor</span>
+does not include the replacement text, it must inform the application that
+it recognized, but did not read, the entity.</p>
+<p>This rule is based on the recognition that the automatic inclusion provided
+by the SGML and XML entity mechanism, primarily designed to support modularity
+in authoring, is not necessarily appropriate for other applications, in particular
+document browsing. Browsers, for example, when encountering an external parsed
+entity reference, might choose to provide a visual indication of the entity's
+presence and retrieve it for display only on demand.</p>
+</div>
+<div class="div3">
+
+<h4><a name="forbidden"></a>4.4.4 Forbidden</h4>
+<p>The following are forbidden, and constitute <a title="Fatal Error" href="#dt-fatal">fatal</a>
+errors:</p>
+<ul>
+<li><p>the appearance of a reference to an <a title="Unparsed Entity" href="#dt-unparsed">unparsed
+entity</a>.</p></li>
+<li><p>the appearance of any character or general-entity reference in the
+DTD except within an <a href="#NT-EntityValue">EntityValue</a> or <a href="#NT-AttValue">AttValue</a>.</p>
+</li>
+<li><p>a reference to an external entity in an attribute value.</p></li>
+</ul>
+</div>
+<div class="div3">
+
+<h4><a name="inliteral"></a>4.4.5 Included in Literal</h4>
+<p>When an <a title="Entity Reference" href="#dt-entref">entity reference</a> appears in
+an attribute value, or a parameter entity reference appears in a literal entity
+value, its <a title="Replacement Text" href="#dt-repltext">replacement text</a> is processed
+in place of the reference itself as though it were part of the document at
+the location the reference was recognized, except that a single or double
+quote character in the replacement text is always treated as a normal data
+character and will not terminate the literal. For example, this is well-formed:</p>
+<div class="diff-chg"><table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td class="diff-chg"><pre>&lt;!-- <a href="http://www.w3.org/XML/xml-19980210-errata#E4">[E4]</a> --&gt;
+&lt;!ENTITY % YN '"Yes"' &gt;
+&lt;!ENTITY WhatHeSaid "He said %YN;" &gt;</pre></td></tr></table></div>
+<p>while this is not:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY EndAttr "27'" &gt;
+&lt;element attribute='a-&amp;EndAttr;&gt;</pre></td></tr></table>
+</div>
+<div class="div3">
+
+<h4><a name="notify"></a>4.4.6 Notify</h4>
+<p>When the name of an <a title="Unparsed Entity" href="#dt-unparsed">unparsed entity</a>
+appears as a token in the value of an attribute of declared type <b>ENTITY</b>
+or <b>ENTITIES</b>, a validating processor must inform the application of
+the <a title="System Identifier" href="#dt-sysid">system</a> and <a title="Public identifier" href="#dt-pubid">public</a>
+(if any) identifiers for both the entity and its associated <a title="Notation" href="#dt-notation">notation</a>.</p>
+</div>
+<div class="div3">
+
+<h4><a name="bypass"></a>4.4.7 Bypassed</h4>
+<p>When a general entity reference appears in the <a href="#NT-EntityValue">EntityValue</a>
+in an entity declaration, it is bypassed and left as is.</p>
+</div>
+<div class="div3">
+
+<h4><a name="as-PE"></a>4.4.8 Included as PE</h4>
+<p>Just as with external parsed entities, parameter entities need only be <a href="#include-if-valid"><cite>included if validating</cite></a>. When a parameter-entity
+reference is recognized in the DTD and included, its <a title="Replacement Text" href="#dt-repltext">replacement
+text</a> is enlarged by the attachment of one leading and one following
+space (#x20) character; the intent is to constrain the replacement text of
+parameter entities to contain an integral number of grammatical tokens in
+the DTD. <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E96">[E96]</a>This
+behavior does not apply to parameter entity references within entity values;
+these are described in <a href="#inliteral"><b>4.4.5 Included in Literal</b></a>.</span></p>
+</div>
+</div>
+<div class="div2">
+
+<h3><a name="intern-replacement"></a>4.5 Construction of Internal Entity Replacement Text</h3>
+<p>In discussing the treatment of internal entities, it is useful to distinguish
+two forms of the entity's value. [<a name="dt-litentval" title="Literal Entity Value">Definition</a>: The <b>literal
+entity value</b> is the quoted string actually present in the entity declaration,
+corresponding to the non-terminal <a href="#NT-EntityValue">EntityValue</a>.] [<a name="dt-repltext" title="Replacement Text">Definition</a>: The <b>replacement text</b>
+is the content of the entity, after replacement of character references and
+parameter-entity references.]</p>
+<p>The literal entity value as given in an internal entity declaration (<a href="#NT-EntityValue">EntityValue</a>) may contain character, parameter-entity,
+and general-entity references. Such references must be contained entirely
+within the literal entity value. The actual replacement text that is <a title="Include" href="#dt-include">included</a> as described above must contain the <em>replacement
+text</em> of any parameter entities referred to, and must contain the character
+referred to, in place of any character references in the literal entity value;
+however, general-entity references must be left as-is, unexpanded. For example,
+given the following declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY % pub    "&amp;#xc9;ditions Gallimard" &gt;
+&lt;!ENTITY   rights "All rights reserved" &gt;
+&lt;!ENTITY   book   "La Peste: Albert Camus,
+&amp;#xA9; 1947 %pub;. &amp;rights;" &gt;</pre></td></tr></table>
+<p>then the replacement text for the entity "<code>book</code>"
+is:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>La Peste: Albert Camus,
+© 1947 Éditions Gallimard. &amp;rights;</pre></td></tr></table>
+<p>The general-entity reference "<code>&amp;rights;</code>" would
+be expanded should the reference "<code>&amp;book;</code>" appear
+in the document's content or an attribute value.</p>
+<p>These simple rules may have complex interactions; for a detailed discussion
+of a difficult example, see <a href="#sec-entexpand"><b>D Expansion of Entity and Character References</b></a>.</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-predefined-ent"></a>4.6 Predefined Entities</h3>
+<p>[<a name="dt-escape" title="escape">Definition</a>: Entity and character references can
+both be used to <b>escape</b> the left angle bracket, ampersand, and
+other delimiters. A set of general entities (<code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>) is specified for
+this purpose. Numeric character references may also be used; they are expanded
+immediately when recognized and must be treated as character data, so the
+numeric character references "<code>&amp;#60;</code>" and "<code>&amp;#38;</code>"
+may be used to escape <code>&lt;</code> and <code>&amp;</code> when they occur
+in character data.]</p>
+<p>All XML processors must recognize these entities whether they are declared
+or not. <a title="For interoperability" href="#dt-interop">For interoperability</a>, valid XML
+documents should declare these entities, like any others, before using them. <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E80">[E80]</a>If
+the entities <code>lt</code> or <code>amp</code> are declared, they must be
+declared as internal entities whose replacement text is a character reference
+to the <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E103">[E103]</a>respective
+character (less-than sign or ampersand)</span> being escaped; the double
+escaping is required for these entities so that references to them produce
+a well-formed result. If the entities <code>gt</code>, <code>apos</code>,
+or <code>quot</code> are declared, they must be declared as internal entities
+whose replacement text is the single character being escaped (or a character
+reference to that character; the double escaping here is unnecessary but harmless).
+For example:</span></p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY lt     "&amp;#38;#60;"&gt;
+&lt;!ENTITY gt     "&amp;#62;"&gt;
+&lt;!ENTITY amp    "&amp;#38;#38;"&gt;
+&lt;!ENTITY apos   "&amp;#39;"&gt;
+&lt;!ENTITY quot   "&amp;#34;"&gt;</pre></td></tr></table>
+<div class="diff-del"><p>Note that the <code>&lt;</code> and <code>&amp;</code> characters
+in the declarations of "<code>lt</code>" and "<code>amp</code>"
+are doubly escaped to meet the requirement that entity replacement be well-formed.</p></div>
+</div>
+<div class="div2">
+
+<h3><a name="Notations"></a>4.7 Notation Declarations</h3>
+<p>[<a name="dt-notation" title="Notation">Definition</a>: <b>Notations</b> identify
+by name the format of <a title="External Entity" href="#dt-extent">unparsed entities</a>,
+the format of elements which bear a notation attribute, or the application
+to which a <a title="Processing instruction" href="#dt-pi">processing instruction</a> is addressed.]</p>
+<p>[<a name="dt-notdecl" title="Notation Declaration">Definition</a>:  <b>Notation declarations</b>
+provide a name for the notation, for use in entity and attribute-list declarations
+and in attribute specifications, and an external identifier for the notation
+which may allow an XML processor or its client application to locate a helper
+application capable of processing data in the given notation.]</p>
+
+<h5>Notation Declarations</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-NotationDecl"></a>[82]   </td><td><code>NotationDecl</code></td><td>   ::=   </td><td><code>'&lt;!NOTATION' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-S">S</a> (<a href="#NT-ExternalID">ExternalID</a> | <a href="#NT-PublicID">PublicID</a>) <a href="#NT-S">S</a>? '&gt;'</code></td><xsltdebug></xsltdebug><td class="diff-add"><a href="#UniqueNotationName">[VC: Unique
+Notation Name]</a></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-PublicID"></a>[83]   </td><td><code>PublicID</code></td><td>   ::=   </td><td><code>'PUBLIC' <a href="#NT-S">S</a> <a href="#NT-PubidLiteral">PubidLiteral</a> </code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<div class="diff-add"><div class="constraint"><p class="prefix"><a name="UniqueNotationName"></a><b>Validity constraint: <a href="http://www.w3.org/XML/xml-19980210-errata#E22">[E22]</a>Unique
+Notation Name</b></p><p>Only one notation declaration can declare a given <a href="#NT-Name">Name</a>.</p>
+</div></div>
+<p>XML processors must provide applications with the name and external identifier(s)
+of any notation declared and referred to in an attribute value, attribute
+definition, or entity declaration. They may additionally resolve the external
+identifier into the <a title="System Identifier" href="#dt-sysid">system identifier</a>, file
+name, or other information needed to allow the application to call a processor
+for data in the notation described. (It is not an error, however, for XML
+documents to declare and refer to notations for which notation-specific applications
+are not available on the system where the XML processor or application is
+running.)</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-doc-entity"></a>4.8 Document Entity</h3>
+<p>[<a name="dt-docent" title="Document Entity">Definition</a>: The <b>document entity</b>
+serves as the root of the entity tree and a starting-point for an <a title="XML Processor" href="#dt-xml-proc">XML processor</a>.] This specification does
+not specify how the document entity is to be located by an XML processor;
+unlike other entities, the document entity has no name and might well appear
+on a processor input stream without any identification at all.</p>
+</div>
+</div>
+
+<div class="div1">
+
+<h2><a name="sec-conformance"></a>5 Conformance</h2>
+<div class="div2">
+
+<h3><a name="proc-types"></a>5.1 Validating and Non-Validating Processors</h3>
+<p>Conforming <a title="XML Processor" href="#dt-xml-proc">XML processors</a> fall into
+two classes: validating and non-validating.</p>
+<p>Validating and non-validating processors alike must report violations of
+this specification's well-formedness constraints in the content of the <a title="Document Entity" href="#dt-docent">document entity</a> and any other <a title="Text Entity" href="#dt-parsedent">parsed
+entities</a> that they read.</p>
+<p>[<a name="dt-validating" title="Validating Processor">Definition</a>: <b>Validating
+processors</b> must<span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E21">[E21]</a>,
+at user option,</span> report violations of the constraints expressed by
+the declarations in the <a title="Document Type Declaration" href="#dt-doctype">DTD</a>, and failures
+to fulfill the validity constraints given in this specification.]
+To accomplish this, validating XML processors must read and process the entire
+DTD and all external parsed entities referenced in the document.</p>
+<p>Non-validating processors are required to check only the <a title="Document Entity" href="#dt-docent">document
+entity</a>, including the entire internal DTD subset, for well-formedness. [<a name="dt-use-mdecl" title="Process Declarations">Definition</a>:  While they are not required
+to check the document for validity, they are required to <b>process</b>
+all the declarations they read in the internal DTD subset and in any parameter
+entity that they read, up to the first reference to a parameter entity that
+they do <em>not</em> read; that is to say, they must use the information
+in those declarations to <a href="#AVNormalize"><cite>normalize</cite></a>
+attribute values, <a href="#included"><cite>include</cite></a> the replacement
+text of internal entities, and supply <a href="#sec-attr-defaults"><cite>default
+attribute values</cite></a>.] <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E33">[E33]</a>Except when <code>standalone="yes"</code>, </span>they
+must not <a title="Process Declarations" href="#dt-use-mdecl">process</a> <a title="entity declaration" href="#dt-entdecl">entity
+declarations</a> or <a title="Attribute-List Declaration" href="#dt-attdecl">attribute-list declarations</a>
+encountered after a reference to a parameter entity that is not read, since
+the entity may have contained overriding declarations.</p>
+</div>
+<div class="div2">
+
+<h3><a name="safe-behavior"></a>5.2 Using XML Processors</h3>
+<p>The behavior of a validating XML processor is highly predictable; it must
+read every piece of a document and report all well-formedness and validity
+violations. Less is required of a non-validating processor; it need not read
+any part of the document other than the document entity. This has two effects
+that may be important to users of XML processors:</p>
+<ul>
+<li><p>Certain well-formedness errors, specifically those that require reading
+external entities, may not be detected by a non-validating processor. Examples
+include the constraints entitled <a href="#wf-entdeclared"><cite>Entity Declared</cite></a>, <a href="#textent"><cite>Parsed Entity</cite></a>, and <a href="#norecursion"><cite>No
+Recursion</cite></a>, as well as some of the cases described as <a href="#forbidden"><cite>forbidden</cite></a> in <a href="#entproc"><b>4.4 XML Processor Treatment of Entities and References</b></a>.</p></li>
+<li><p>The information passed from the processor to the application may
+vary, depending on whether the processor reads parameter and external entities.
+For example, a non-validating processor may not <a href="#AVNormalize"><cite>normalize</cite></a>
+attribute values, <a href="#included"><cite>include</cite></a> the replacement
+text of internal entities, or supply <a href="#sec-attr-defaults"><cite>default
+attribute values</cite></a>, where doing so depends on having read declarations
+in external or parameter entities.</p></li>
+</ul>
+<p>For maximum reliability in interoperating between different XML processors,
+applications which use non-validating processors should not rely on any behaviors
+not required of such processors. Applications which require facilities such
+as the use of default attributes or internal entities which are declared in
+external entities should use validating XML processors.</p>
+</div>
+</div>
+<div class="div1">
+
+<h2><a name="sec-notation"></a>6 Notation</h2>
+<p>The formal grammar of XML is given in this specification using a simple
+Extended Backus-Naur Form (EBNF) notation. Each rule in the grammar defines
+one symbol, in the form</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>symbol ::= expression</pre></td></tr></table>
+<p>Symbols are written with an initial capital letter if they are <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E42">[E42]</a>the
+start symbol of a regular language,</span> otherwise with an initial lower
+case letter. Literal strings are quoted.</p>
+<p>Within the expression on the right-hand side of a rule, the following expressions
+are used to match strings of one or more characters: </p><dl>
+<dt class="label"><code>#xN</code></dt>
+<dd>
+<p>where <code>N</code> is a hexadecimal integer, the expression matches the
+character in ISO/IEC 10646 whose canonical (UCS-4) code value, when interpreted
+as an unsigned binary number, has the value indicated. The number of leading
+zeros in the <code>#xN</code> form is insignificant; the number of leading
+zeros in the corresponding code value is governed by the character encoding
+in use and is not significant for XML.</p>
+</dd>
+<dt class="label"><code>[a-zA-Z]</code>, <code>[#xN-#xN]</code></dt>
+<dd>
+<p>matches any <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E93">[E93]</a><a href="#NT-Char">Char</a></span> with a value in the range(s) indicated (inclusive).</p>
+</dd>
+<dt class="label"><span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E3">[E3]</a><code>[abc]</code>, <code>[#xN#xN#xN]</code></span></dt>
+<dd><div class="diff-add">
+<p>matches any <a href="#NT-Char">Char</a> with a value among the characters
+enumerated. Enumerations and ranges can be mixed in one set of brackets.</p>
+</div></dd>
+<dt class="label"><code>[^a-z]</code>, <code>[^#xN-#xN]</code></dt>
+<dd>
+<p>matches any <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E93">[E93]</a><a href="#NT-Char">Char</a></span> with a value <em>outside</em> the range
+indicated.</p>
+</dd>
+<dt class="label"><code>[^abc]</code>, <code>[^#xN#xN#xN]</code></dt>
+<dd>
+<p>matches any <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E93">[E93]</a><a href="#NT-Char">Char</a></span> with a value not among the characters given. <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E3">[E3]</a>Enumerations
+and ranges of forbidden values can be mixed in one set of brackets.</span></p>
+</dd>
+<dt class="label"><code>"string"</code></dt>
+<dd>
+<p>matches a literal string <a title="match" href="#dt-match">matching</a> that
+given inside the double quotes.</p>
+</dd>
+<dt class="label"><code>'string'</code></dt>
+<dd>
+<p>matches a literal string <a title="match" href="#dt-match">matching</a> that
+given inside the single quotes.</p>
+</dd>
+</dl><p> These symbols may be combined to match more complex patterns as follows,
+where <code>A</code> and <code>B</code> represent simple expressions: </p><dl>
+<dt class="label">(<code>expression</code>)</dt>
+<dd>
+<p><code>expression</code> is treated as a unit and may be combined as described
+in this list.</p>
+</dd>
+<dt class="label"><code>A?</code></dt>
+<dd>
+<p>matches <code>A</code> or nothing; optional <code>A</code>.</p>
+</dd>
+<dt class="label"><code>A B</code></dt>
+<dd>
+<p>matches <code>A</code> followed by <code>B</code>. <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E20">[E20]</a>This
+operator has higher precedence than alternation; thus <code>A B | C D</code>
+is identical to <code>(A B) | (C D)</code>.</span></p>
+</dd>
+<dt class="label"><code>A | B</code></dt>
+<dd>
+<p>matches <code>A</code> or <code>B</code> but not both.</p>
+</dd>
+<dt class="label"><code>A - B</code></dt>
+<dd>
+<p>matches any string that matches <code>A</code> but does not match <code>B</code>.</p>
+</dd>
+<dt class="label"><code>A+</code></dt>
+<dd>
+<p>matches one or more occurrences of <code>A</code>.<span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E20">[E20]</a>Concatenation
+has higher precedence than alternation; thus <code>A+ | B+</code> is identical
+to <code>(A+) | (B+)</code>.</span></p>
+</dd>
+<dt class="label"><code>A*</code></dt>
+<dd>
+<p>matches zero or more occurrences of <code>A</code>. <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E20">[E20]</a>Concatenation
+has higher precedence than alternation; thus <code>A* | B*</code> is identical
+to <code>(A*) | (B*)</code>.</span></p>
+</dd>
+</dl><p> Other notations used in the productions are: </p><dl>
+<dt class="label"><code>/* ... */</code></dt>
+<dd>
+<p>comment.</p>
+</dd>
+<dt class="label"><code>[ wfc: ... ]</code></dt>
+<dd>
+<p>well-formedness constraint; this identifies by name a constraint on <a title="Well-Formed" href="#dt-wellformed">well-formed</a> documents associated with a production.</p>
+</dd>
+<dt class="label"><code>[ vc: ... ]</code></dt>
+<dd>
+<p>validity constraint; this identifies by name a constraint on <a title="Validity" href="#dt-valid">valid</a>
+documents associated with a production.</p>
+</dd>
+</dl><p></p>
+</div>
+</div><div class="back">
+
+
+<div class="div1">
+
+<h2><a name="sec-bibliography"></a>A References</h2>
+<div class="div2">
+
+<h3><a name="sec-existing-stds"></a>A.1 Normative References</h3>
+<dl>
+<dt class="label"><span class="diff-chg"><a name="IANA"></a>IANA-CHARSETS</span></dt><dd><div class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E58">[E58]</a>(Internet
+Assigned Numbers Authority) <cite>Official Names for Character Sets</cite>,
+ed. Keld Simonsen et al. See <a href="ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets">ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets</a>. </div></dd>
+<dt class="label"><a name="RFC1766"></a>IETF RFC 1766</dt><dd>IETF
+(Internet Engineering Task Force). <cite>RFC 1766: Tags for the Identification
+of Languages</cite>, ed. H. Alvestrand. 1995.  (See <a href="http://www.ietf.org/rfc/rfc1766.txt">http://www.ietf.org/rfc/rfc1766.txt</a>.)</dd>
+<dt class="label"><span class="diff-del"><a name="ISO639-old"></a>ISO 639</span></dt><dd><div class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E38">[E38]</a>
+(International Organization for Standardization). <cite>ISO 639:1988 (E).
+Code for the representation of names of languages.</cite> [Geneva]: International
+Organization for Standardization, 1988.</div></dd>
+<dt class="label"><span class="diff-del"><a name="ISO3166-old"></a>ISO 3166</span></dt><dd><div class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E38">[E38]</a>
+(International Organization for Standardization). <cite>ISO 3166-1:1997
+(E). Codes for the representation of names of countries and their subdivisions --
+Part 1: Country codes</cite> [Geneva]: International Organization for
+Standardization, 1997.</div></dd>
+<dt class="label"><a name="ISO10646"></a>ISO/IEC 10646</dt><dd>ISO (International Organization for
+Standardization). <cite>ISO/IEC 10646-1993 (E). Information technology --
+Universal Multiple-Octet Coded Character Set (UCS) -- Part 1: Architecture
+and Basic Multilingual Plane.</cite> [Geneva]: International Organization
+for Standardization, 1993 (plus amendments AM 1 through AM 7).</dd>
+<dt class="label"><span class="diff-add"><a name="ISO10646-2000"></a>ISO/IEC 10646-2000</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</a> ISO (International
+Organization for Standardization). <cite>ISO/IEC 10646-1:2000. Information
+technology -- Universal Multiple-Octet Coded Character Set (UCS) --
+Part 1: Architecture and Basic Multilingual Plane.</cite> [Geneva]: International
+Organization for Standardization, 2000.</div></dd>
+<dt class="label"><a name="Unicode"></a>Unicode</dt><dd>The Unicode Consortium. <em>The Unicode
+Standard, Version 2.0.</em> Reading, Mass.: Addison-Wesley Developers Press,
+1996.</dd>
+<dt class="label"><span class="diff-add"><a name="Unicode3"></a>Unicode3</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</a>
+The Unicode Consortium. <em>The Unicode Standard, Version 3.0.</em> Reading,
+Mass.: Addison-Wesley Developers Press, 2000. ISBN 0-201-61633-5.</div></dd>
+</dl></div>
+<div class="div2">
+
+
+<h3><a name="null"></a>A.2 Other References</h3>
+<dl>
+<dt class="label"><a name="Aho"></a>Aho/Ullman</dt><dd>Aho, Alfred V., Ravi Sethi, and Jeffrey D.
+Ullman. <cite>Compilers: Principles, Techniques, and Tools</cite>.
+Reading: Addison-Wesley, 1986, rpt. corr. 1988.</dd>
+<dt class="label"><a name="Berners-Lee"></a>Berners-Lee et al.</dt><dd> Berners-Lee, T., R. Fielding,
+and L. Masinter. <cite>Uniform Resource Identifiers (URI): Generic Syntax
+and Semantics</cite>. 1997. (Work in progress; see updates to RFC1738.)</dd>
+<dt class="label"><span class="diff-chg"><a name="ABK"></a>Brüggemann-Klein</span></dt><dd><div class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E2">[E2]</a>Brüggemann-Klein,
+Anne. Formal Models in Document Processing. Habilitationsschrift. Faculty
+of Mathematics at the University of Freiburg, 1993. (See <a href="ftp://ftp.informatik.uni-freiburg.de/documents/papers/brueggem/habil.ps">ftp://ftp.informatik.uni-freiburg.de/documents/papers/brueggem/habil.ps</a>.)</div></dd>
+<dt class="label"><span class="diff-chg"><a name="ABKDW"></a>Brüggemann-Klein and Wood</span></dt><dd><div class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E2">[E2]</a>Brüggemann-Klein,
+Anne, and Derick Wood. <cite>Deterministic Regular Languages</cite>.
+Universität Freiburg, Institut für Informatik, Bericht 38, Oktober 1991. Extended
+abstract in A. Finkel, M. Jantzen, Hrsg., STACS 1992, S. 173-184. Springer-Verlag,
+Berlin 1992. Lecture Notes in Computer Science 577. Full version titled <cite>One-Unambiguous
+Regular Languages</cite> in Information and Computation 140 (2): 229-253,
+February 1998.</div></dd>
+<dt class="label"><a name="Clark"></a>Clark</dt><dd>James Clark. Comparison of SGML and XML. See <a href="http://www.w3.org/TR/NOTE-sgml-xml-971215">http://www.w3.org/TR/NOTE-sgml-xml-971215</a>. </dd>
+<dt class="label"><span class="diff-add"><a name="IANA-LANGCODES"></a>IANA-LANGCODES</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E58">[E58]</a>(Internet
+Assigned Numbers Authority) <cite>Registry of Language Tags</cite>,
+ed. Keld Simonsen et al.  (See <a href="http://www.isi.edu/in-notes/iana/assignments/languages/">http://www.isi.edu/in-notes/iana/assignments/languages/</a>.)</div></dd>
+<dt class="label"><span class="diff-del"><a name="RFC1738"></a>IETF RFC1738</span></dt><dd><div class="diff-del">IETF
+(Internet Engineering Task Force). <cite>RFC 1738: Uniform Resource Locators
+(URL)</cite>, ed. T. Berners-Lee, L. Masinter, M. McCahill. 1994.   (See <a href="http://www.ietf.org/rfc/rfc1738.txt">http://www.ietf.org/rfc/rfc1738.txt</a>.)</div></dd>
+<dt class="label"><span class="diff-del"><a name="RFC1808"></a>IETF RFC1808</span></dt><dd><div class="diff-del">IETF
+(Internet Engineering Task Force). <cite>RFC 1808: Relative Uniform Resource
+Locators</cite>, ed. R. Fielding. 1995.   (See <a href="http://www.ietf.org/rfc/rfc1808.txt">http://www.ietf.org/rfc/rfc1808.txt</a>.)</div></dd>
+<dt class="label"><a name="RFC2141"></a>IETF RFC2141</dt><dd>IETF
+(Internet Engineering Task Force). <em>RFC 2141: URN Syntax</em>, ed.
+R. Moats. 1997.   (See <a href="http://www.ietf.org/rfc/rfc2141.txt">http://www.ietf.org/rfc/rfc2141.txt</a>.)</dd>
+<dt class="label"><span class="diff-add"><a name="rfc2279"></a>IETF RFC 2279</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E78">[E78]</a>IETF
+(Internet Engineering Task Force). <cite>RFC 2279: UTF-8, a transformation
+format of ISO 10646</cite>, <span class="diff-add">ed. F. Yergeau, </span>1998.  (See <a href="http://www.ietf.org/rfc/rfc2279.txt">http://www.ietf.org/rfc/rfc2279.txt</a>.)</div></dd>
+<dt class="label"><span class="diff-add"><a name="rfc2376"></a>IETF RFC 2376</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E48">[E48]</a>IETF
+(Internet Engineering Task Force). <cite>RFC 2376: XML Media Types</cite>.
+ed. E. Whitehead, M. Murata. 1998.  (See <a href="http://www.ietf.org/rfc/rfc2376.txt">http://www.ietf.org/rfc/rfc2376.txt</a>.)</div></dd>
+<dt class="label"><span class="diff-add"><a name="rfc2396"></a>IETF RFC 2396</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E66">[E66]</a>IETF
+(Internet Engineering Task Force). <cite>RFC 2396: Uniform Resource Identifiers
+(URI): Generic Syntax</cite>. T. Berners-Lee, R. Fielding, L. Masinter.
+1998.  (See <a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a>.)</div></dd>
+<dt class="label"><span class="diff-add"><a name="rfc2732"></a>IETF RFC 2732</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E66">[E66]</a>IETF
+(Internet Engineering Task Force). <cite>RFC 2732: Format for Literal
+IPv6 Addresses in URL's</cite>. R. Hinden, B. Carpenter, L. Masinter.
+1999.  (See <a href="http://www.ietf.org/rfc/rfc2732.txt">http://www.ietf.org/rfc/rfc2732.txt</a>.)</div></dd>
+<dt class="label"><span class="diff-add"><a name="rfc2781"></a>IETF RFC 2781</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E77">[E77]</a>
+IETF (Internet Engineering Task Force). <em>RFC 2781: UTF-16, an encoding
+of ISO 10646</em>, ed. P. Hoffman, F. Yergeau. 2000.  (See <a href="http://www.ietf.org/rfc/rfc2781.txt">http://www.ietf.org/rfc/rfc2781.txt</a>.)</div></dd>
+<dt class="label"><span class="diff-add"><a name="ISO639"></a>ISO 639</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E38">[E38]</a>
+(International Organization for Standardization). <cite>ISO 639:1988 (E).
+Code for the representation of names of languages.</cite> [Geneva]: International
+Organization for Standardization, 1988.</div></dd>
+<dt class="label"><span class="diff-add"><a name="ISO3166"></a>ISO 3166</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E38">[E38]</a>
+(International Organization for Standardization). <cite>ISO 3166-1:1997
+(E). Codes for the representation of names of countries and their subdivisions --
+Part 1: Country codes</cite> [Geneva]: International Organization for
+Standardization, 1997.</div></dd>
+<dt class="label"><a name="ISO8879"></a>ISO 8879</dt><dd>ISO (International Organization for Standardization). <cite>ISO
+8879:1986(E). Information processing -- Text and Office Systems --
+Standard Generalized Markup Language (SGML).</cite> First edition --
+1986-10-15. [Geneva]: International Organization for Standardization, 1986. </dd>
+<dt class="label"><a name="ISO10744"></a>ISO/IEC 10744</dt><dd>ISO (International Organization for
+Standardization). <cite>ISO/IEC 10744-1992 (E). Information technology --
+Hypermedia/Time-based Structuring Language (HyTime). </cite> [Geneva]:
+International Organization for Standardization, 1992. <em>Extended Facilities
+Annexe.</em> [Geneva]: International Organization for Standardization, 1996. </dd>
+<dt class="label"><span class="diff-add"><a name="websgml"></a>WEBSGML</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E43">[E43]</a>ISO
+(International Organization for Standardization). <cite>ISO 8879:1986
+TC2. Information technology -- Document Description and Processing Languages. </cite>
+[Geneva]: International Organization for Standardization, 1998.  (See <a href="http://www.sgmlsource.com/8879rev/n0029.htm">http://www.sgmlsource.com/8879rev/n0029.htm</a>.)</div></dd>
+<dt class="label"><span class="diff-add"><a name="xml-names"></a>XML Names</span></dt><dd><div class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E98">[E98]</a>Tim Bray,
+Dave Hollander, and Andrew Layman, editors. <cite>Namespaces in XML</cite>.
+Textuality, Hewlett-Packard, and Microsoft. World Wide Web Consortium, 1999.  (See <a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a>.)</div></dd>
+</dl></div>
+</div>
+<div class="div1">
+
+<h2><a name="CharClasses"></a>B Character Classes</h2>
+<p>Following the characteristics defined in the Unicode standard, characters
+are classed as base characters (among others, these contain the alphabetic
+characters of the Latin alphabet<span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E84">[E84]</a>, without
+diacritics</span>), ideographic characters, and combining characters (among
+others, this class contains most diacritics)<span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E30">[E30]</a>; these classes
+combine to form the class of letters.</span> Digits and extenders are also
+distinguished.</p>
+
+<h5>Characters</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-Letter"></a>[84]   </td><td><code>Letter</code></td><td>   ::=   </td><td><code><a href="#NT-BaseChar">BaseChar</a> | <a href="#NT-Ideographic">Ideographic</a></code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-BaseChar"></a>[85]   </td><td><code>BaseChar</code></td><td>   ::=   </td><td><code>[#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6]
+| [#x00D8-#x00F6] | [#x00F8-#x00FF] | [#x0100-#x0131] | [#x0134-#x013E]
+| [#x0141-#x0148] | [#x014A-#x017E] | [#x0180-#x01C3] | [#x01CD-#x01F0]
+| [#x01F4-#x01F5] | [#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1]
+| #x0386 | [#x0388-#x038A] | #x038C | [#x038E-#x03A1]
+| [#x03A3-#x03CE] | [#x03D0-#x03D6] | #x03DA | #x03DC
+| #x03DE | #x03E0 | [#x03E2-#x03F3] | [#x0401-#x040C]
+| [#x040E-#x044F] | [#x0451-#x045C] | [#x045E-#x0481] | [#x0490-#x04C4]
+| [#x04C7-#x04C8] | [#x04CB-#x04CC] | [#x04D0-#x04EB] | [#x04EE-#x04F5]
+| [#x04F8-#x04F9] | [#x0531-#x0556] | #x0559 | [#x0561-#x0586]
+| [#x05D0-#x05EA] | [#x05F0-#x05F2] | [#x0621-#x063A] | [#x0641-#x064A]
+| [#x0671-#x06B7] | [#x06BA-#x06BE] | [#x06C0-#x06CE] | [#x06D0-#x06D3]
+| #x06D5 | [#x06E5-#x06E6] | [#x0905-#x0939] | #x093D
+| [#x0958-#x0961] | [#x0985-#x098C] | [#x098F-#x0990] | [#x0993-#x09A8]
+| [#x09AA-#x09B0] | #x09B2 | [#x09B6-#x09B9] | [#x09DC-#x09DD]
+| [#x09DF-#x09E1] | [#x09F0-#x09F1] | [#x0A05-#x0A0A] | [#x0A0F-#x0A10]
+| [#x0A13-#x0A28] | [#x0A2A-#x0A30] | [#x0A32-#x0A33] | [#x0A35-#x0A36]
+| [#x0A38-#x0A39] | [#x0A59-#x0A5C] | #x0A5E | [#x0A72-#x0A74]
+| [#x0A85-#x0A8B] | #x0A8D | [#x0A8F-#x0A91] | [#x0A93-#x0AA8]
+| [#x0AAA-#x0AB0] | [#x0AB2-#x0AB3] | [#x0AB5-#x0AB9] | #x0ABD
+| #x0AE0 | [#x0B05-#x0B0C] | [#x0B0F-#x0B10] | [#x0B13-#x0B28]
+| [#x0B2A-#x0B30] | [#x0B32-#x0B33] | [#x0B36-#x0B39] | #x0B3D
+| [#x0B5C-#x0B5D] | [#x0B5F-#x0B61] | [#x0B85-#x0B8A] | [#x0B8E-#x0B90]
+| [#x0B92-#x0B95] | [#x0B99-#x0B9A] | #x0B9C | [#x0B9E-#x0B9F]
+| [#x0BA3-#x0BA4] | [#x0BA8-#x0BAA] | [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9]
+| [#x0C05-#x0C0C] | [#x0C0E-#x0C10] | [#x0C12-#x0C28] | [#x0C2A-#x0C33]
+| [#x0C35-#x0C39] | [#x0C60-#x0C61] | [#x0C85-#x0C8C] | [#x0C8E-#x0C90]
+| [#x0C92-#x0CA8] | [#x0CAA-#x0CB3] | [#x0CB5-#x0CB9] | #x0CDE
+| [#x0CE0-#x0CE1] | [#x0D05-#x0D0C] | [#x0D0E-#x0D10] | [#x0D12-#x0D28]
+| [#x0D2A-#x0D39] | [#x0D60-#x0D61] | [#x0E01-#x0E2E] | #x0E30
+| [#x0E32-#x0E33] | [#x0E40-#x0E45] | [#x0E81-#x0E82] | #x0E84
+| [#x0E87-#x0E88] | #x0E8A | #x0E8D | [#x0E94-#x0E97]
+| [#x0E99-#x0E9F] | [#x0EA1-#x0EA3] | #x0EA5 | #x0EA7
+| [#x0EAA-#x0EAB] | [#x0EAD-#x0EAE] | #x0EB0 | [#x0EB2-#x0EB3]
+| #x0EBD | [#x0EC0-#x0EC4] | [#x0F40-#x0F47] | [#x0F49-#x0F69]
+| [#x10A0-#x10C5] | [#x10D0-#x10F6] | #x1100 | [#x1102-#x1103]
+| [#x1105-#x1107] | #x1109 | [#x110B-#x110C] | [#x110E-#x1112]
+| #x113C | #x113E | #x1140 | #x114C | #x114E | #x1150
+| [#x1154-#x1155] | #x1159 | [#x115F-#x1161] | #x1163
+| #x1165 | #x1167 | #x1169 | [#x116D-#x116E] | [#x1172-#x1173]
+| #x1175 | #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF]
+| [#x11B7-#x11B8] | #x11BA | [#x11BC-#x11C2] | #x11EB
+| #x11F0 | #x11F9 | [#x1E00-#x1E9B] | [#x1EA0-#x1EF9]
+| [#x1F00-#x1F15] | [#x1F18-#x1F1D] | [#x1F20-#x1F45] | [#x1F48-#x1F4D]
+| [#x1F50-#x1F57] | #x1F59 | #x1F5B | #x1F5D | [#x1F5F-#x1F7D]
+| [#x1F80-#x1FB4] | [#x1FB6-#x1FBC] | #x1FBE | [#x1FC2-#x1FC4]
+| [#x1FC6-#x1FCC] | [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB] | [#x1FE0-#x1FEC]
+| [#x1FF2-#x1FF4] | [#x1FF6-#x1FFC] | #x2126 | [#x212A-#x212B]
+| #x212E | [#x2180-#x2182] | [#x3041-#x3094] | [#x30A1-#x30FA]
+| [#x3105-#x312C] | [#xAC00-#xD7A3] </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Ideographic"></a>[86]   </td><td><code>Ideographic</code></td><td>   ::=   </td><td><code>[#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029] </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-CombiningChar"></a>[87]   </td><td><code>CombiningChar</code></td><td>   ::=   </td><td><code>[#x0300-#x0345] | [#x0360-#x0361] | [#x0483-#x0486]
+| [#x0591-#x05A1] | [#x05A3-#x05B9] | [#x05BB-#x05BD] | #x05BF
+| [#x05C1-#x05C2] | #x05C4 | [#x064B-#x0652] | #x0670
+| [#x06D6-#x06DC] | [#x06DD-#x06DF] | [#x06E0-#x06E4] | [#x06E7-#x06E8]
+| [#x06EA-#x06ED] | [#x0901-#x0903] | #x093C | [#x093E-#x094C]
+| #x094D | [#x0951-#x0954] | [#x0962-#x0963] | [#x0981-#x0983]
+| #x09BC | #x09BE | #x09BF | [#x09C0-#x09C4] | [#x09C7-#x09C8]
+| [#x09CB-#x09CD] | #x09D7 | [#x09E2-#x09E3] | #x0A02
+| #x0A3C | #x0A3E | #x0A3F | [#x0A40-#x0A42] | [#x0A47-#x0A48]
+| [#x0A4B-#x0A4D] | [#x0A70-#x0A71] | [#x0A81-#x0A83] | #x0ABC
+| [#x0ABE-#x0AC5] | [#x0AC7-#x0AC9] | [#x0ACB-#x0ACD] | [#x0B01-#x0B03]
+| #x0B3C | [#x0B3E-#x0B43] | [#x0B47-#x0B48] | [#x0B4B-#x0B4D]
+| [#x0B56-#x0B57] | [#x0B82-#x0B83] | [#x0BBE-#x0BC2] | [#x0BC6-#x0BC8]
+| [#x0BCA-#x0BCD] | #x0BD7 | [#x0C01-#x0C03] | [#x0C3E-#x0C44]
+| [#x0C46-#x0C48] | [#x0C4A-#x0C4D] | [#x0C55-#x0C56] | [#x0C82-#x0C83]
+| [#x0CBE-#x0CC4] | [#x0CC6-#x0CC8] | [#x0CCA-#x0CCD] | [#x0CD5-#x0CD6]
+| [#x0D02-#x0D03] | [#x0D3E-#x0D43] | [#x0D46-#x0D48] | [#x0D4A-#x0D4D]
+| #x0D57 | #x0E31 | [#x0E34-#x0E3A] | [#x0E47-#x0E4E]
+| #x0EB1 | [#x0EB4-#x0EB9] | [#x0EBB-#x0EBC] | [#x0EC8-#x0ECD]
+| [#x0F18-#x0F19] | #x0F35 | #x0F37 | #x0F39 | #x0F3E
+| #x0F3F | [#x0F71-#x0F84] | [#x0F86-#x0F8B] | [#x0F90-#x0F95]
+| #x0F97 | [#x0F99-#x0FAD] | [#x0FB1-#x0FB7] | #x0FB9
+| [#x20D0-#x20DC] | #x20E1 | [#x302A-#x302F] | #x3099
+| #x309A </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Digit"></a>[88]   </td><td><code>Digit</code></td><td>   ::=   </td><td><code>[#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9]
+| [#x0966-#x096F] | [#x09E6-#x09EF] | [#x0A66-#x0A6F] | [#x0AE6-#x0AEF]
+| [#x0B66-#x0B6F] | [#x0BE7-#x0BEF] | [#x0C66-#x0C6F] | [#x0CE6-#x0CEF]
+| [#x0D66-#x0D6F] | [#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29] </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Extender"></a>[89]   </td><td><code>Extender</code></td><td>   ::=   </td><td><code>#x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640
+| #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E]
+| [#x30FC-#x30FE] </code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>The character classes defined here can be derived from the Unicode <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</a>2.0</span>
+character database as follows:</p>
+<ul>
+<li><p>Name start characters must have one of the categories Ll, Lu, Lo,
+Lt, Nl.</p></li>
+<li><p>Name characters other than Name-start characters must have one of
+the categories Mc, Me, Mn, Lm, or Nd.</p></li>
+<li><p>Characters in the compatibility area (i.e. with character code greater
+than #xF900 and less than #xFFFE) are not allowed in XML names.</p></li>
+<li><p>Characters which have a font or compatibility decomposition (i.e.
+those with a "compatibility formatting tag" in field 5 of the
+database -- marked by field 5 beginning with a "&lt;") are not
+allowed.</p></li>
+<li><p>The following characters are treated as name-start characters rather
+than name characters, because the property file classifies them as Alphabetic:
+[#x02BB-#x02C1], #x0559, #x06E5, #x06E6.</p></li>
+<li><p>Characters #x20DD-#x20E0 are excluded (in accordance with Unicode <span class="diff-add"><a href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</a>2.0</span>,
+section 5.14).</p></li>
+<li><p>Character #x00B7 is classified as an extender, because the property
+list so identifies it.</p></li>
+<li><p>Character #x0387 is added as a name character, because #x00B7 is
+its canonical equivalent.</p></li>
+<li><p>Characters ':' and '_' are allowed as name-start characters.</p>
+</li>
+<li><p>Characters '-' and '.' are allowed as name characters.</p></li>
+</ul>
+</div>
+<div class="div1">
+
+<h2><a name="sec-xml-and-sgml"></a>C XML and SGML (Non-Normative)</h2>
+<p><span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E43">[E43]</a>XML
+is designed to be a subset of SGML, in that every XML document should also
+be a conforming SGML document.</span> For a detailed comparison of the additional
+restrictions that XML places on documents beyond those of SGML, see <a href="#Clark">[Clark]</a>.</p>
+</div>
+<div class="div1">
+
+<h2><a name="sec-entexpand"></a>D Expansion of Entity and Character References (Non-Normative)</h2>
+<p>This appendix contains some examples illustrating the sequence of entity-
+and character-reference recognition and expansion, as specified in <a href="#entproc"><b>4.4 XML Processor Treatment of Entities and References</b></a>.</p>
+<p>If the DTD contains the declaration</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY example "&lt;p&gt;An ampersand (&amp;#38;#38;) may be escaped
+numerically (&amp;#38;#38;#38;) or with a general entity
+(&amp;amp;amp;).&lt;/p&gt;" &gt;</pre></td></tr></table>
+<p>then the XML processor will recognize the character references when it
+parses the entity declaration, and resolve them before storing the following
+string as the value of the entity "<code>example</code>":</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;p&gt;An ampersand (&amp;#38;) may be escaped
+numerically (&amp;#38;#38;) or with a general entity
+(&amp;amp;amp;).&lt;/p&gt;</pre></td></tr></table>
+<p>A reference in the document to "<code>&amp;example;</code>"
+will cause the text to be reparsed, at which time the start- and end-tags
+of the <code>p</code> element will be recognized and the three references will
+be recognized and expanded, resulting in a <code>p</code> element with the following
+content (all data, no delimiters or markup):</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>An ampersand (&amp;) may be escaped
+numerically (&amp;#38;) or with a general entity
+(&amp;amp;).</pre></td></tr></table>
+<p>A more complex example will illustrate the rules and their effects fully.
+In the following example, the line numbers are solely for reference.</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>1 &lt;?xml version='1.0'?&gt;
+2 &lt;!DOCTYPE test [
+3 &lt;!ELEMENT test (#PCDATA) &gt;
+4 &lt;!ENTITY % xx '&amp;#37;zz;'&gt;
+5 &lt;!ENTITY % zz '&amp;#60;!ENTITY tricky "error-prone" &gt;' &gt;
+6 %xx;
+7 ]&gt;
+8 &lt;test&gt;This sample shows a &amp;tricky; method.&lt;/test&gt;</pre></td></tr></table>
+<p>This produces the following:</p>
+<ul>
+<li><p>in line 4, the reference to character 37 is expanded immediately,
+and the parameter entity "<code>xx</code>" is stored in the symbol
+table with the value "<code>%zz;</code>". Since the replacement
+text is not rescanned, the reference to parameter entity "<code>zz</code>"
+is not recognized. (And it would be an error if it were, since "<code>zz</code>"
+is not yet declared.)</p></li>
+<li><p>in line 5, the character reference "<code>&amp;#60;</code>"
+is expanded immediately and the parameter entity "<code>zz</code>"
+is stored with the replacement text "<code>&lt;!ENTITY tricky "error-prone"
+&gt;</code>", which is a well-formed entity declaration.</p></li>
+<li><p>in line 6, the reference to "<code>xx</code>" is recognized,
+and the replacement text of "<code>xx</code>" (namely "<code>%zz;</code>")
+is parsed. The reference to "<code>zz</code>" is recognized in
+its turn, and its replacement text ("<code>&lt;!ENTITY tricky "error-prone"
+&gt;</code>") is parsed. The general entity "<code>tricky</code>"
+has now been declared, with the replacement text "<code>error-prone</code>".</p>
+</li>
+<li><p>in line 8, the reference to the general entity "<code>tricky</code>"
+is recognized, and it is expanded, so the full content of the <code>test</code>
+element is the self-describing (and ungrammatical) string <em>This sample
+shows a error-prone method.</em></p></li>
+</ul>
+</div>
+<div class="div1">
+
+<h2><a name="determinism"></a>E Deterministic Content Models (Non-Normative)</h2>
+<p><span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E102">[E102]</a>As
+noted in <a href="#sec-element-content"><b>3.2.1 Element Content</b></a>, it is required that content
+models in element type declarations be deterministic. This requirement is <a title="For Compatibility" href="#dt-compat">for compatibility</a> with SGML (which calls deterministic
+content models "unambiguous");</span> XML processors built
+using SGML systems may flag non-deterministic content models as errors.</p>
+<p>For example, the content model <code>((b, c) | (b, d))</code> is non-deterministic,
+because given an initial <code>b</code> the <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E95">[E95]</a>XML processor</span>
+cannot know which <code>b</code> in the model is being matched without looking
+ahead to see which element follows the <code>b</code>. In this case, the two references
+to <code>b</code> can be collapsed into a single reference, making the model read <code>(b,
+(c | d))</code>. An initial <code>b</code> now clearly matches only a single name
+in the content model. The <span class="diff-chg"><a href="http://www.w3.org/XML/xml-19980210-errata#E95">[E95]</a>processor</span> doesn't need to look ahead to see what follows; either <code>c</code> or <code>d</code>
+would be accepted.</p>
+<p>More formally: a finite state automaton may be constructed from the content
+model using the standard algorithms, e.g. algorithm 3.5 in section 3.9 of
+Aho, Sethi, and Ullman <a href="#Aho">[Aho/Ullman]</a>. In many such algorithms, a follow
+set is constructed for each position in the regular expression (i.e., each
+leaf node in the syntax tree for the regular expression); if any position
+has a follow set in which more than one following position is labeled with
+the same element type name, then the content model is in error and may be
+reported as an error.</p>
+<p>Algorithms exist which allow many but not all non-deterministic content
+models to be reduced automatically to equivalent deterministic models; see
+Brüggemann-Klein 1991 <a href="#ABK">[Brüggemann-Klein]</a>.</p>
+</div>
+<div class="div1">
+
+<h2><a name="sec-guessing"></a>F <a href="http://www.w3.org/XML/xml-19980210-errata#E105">[E105]</a><a href="http://www.w3.org/XML/xml-19980210-errata#E48">[E48]</a>Autodetection
+of Character Encodings (Non-Normative)</h2>
+<p>The XML encoding declaration functions as an internal label on each entity,
+indicating which character encoding is in use. Before an XML processor can
+read the internal label, however, it apparently has to know what character
+encoding is in use--which is what the internal label is trying to indicate.
+In the general case, this is a hopeless situation. It is not entirely hopeless
+in XML, however, because XML limits the general case in two ways: each implementation
+is assumed to support only a finite set of character encodings, and the XML
+encoding declaration is restricted in position and content in order to make
+it feasible to autodetect the character encoding in use in each entity in
+normal cases. Also, in many cases other sources of information are available
+in addition to the XML data stream itself. Two cases may be distinguished,
+depending on whether the XML entity is presented to the processor without,
+or with, any accompanying (external) information. We consider the first case
+first.</p>
+<div class="div2">
+<div class="diff-add">
+<h3><a name="sec-guessing-no-ext-info"></a>F.1 Detection Without External Encoding Information</h3></div>
+<p>Because each XML entity <span class="diff-add">not accompanied by external
+encoding information and </span>not in UTF-8 or UTF-16 <span class="diff-chg">encoding</span> <em>must</em>
+begin with an XML encoding declaration, in which the first characters must
+be '<code>&lt;?xml</code>', any conforming processor can detect, after two
+to four octets of input, which of the following cases apply. In reading this
+list, it may help to know that in UCS-4, '&lt;' is "<code>#x0000003C</code>"
+and '?' is "<code>#x0000003F</code>", and the Byte Order Mark
+required of UTF-16 data streams is "<code>#xFEFF</code>". <span class="diff-add">The notation <var>##</var> is used to denote any byte value except <span class="diff-chg">that two consecutive <var>##</var>s cannot be both 00</span>.</span></p>
+<div class="diff-add"><p>With a Byte Order Mark:</p></div>
+<div class="diff-add"><table border="1" frame="border"><tbody><tr><td rowspan="1" colspan="1"><code>00 00 FE
+FF</code></td><td rowspan="1" colspan="1">UCS-4, big-endian machine (1234 order)</td></tr><tr><td rowspan="1" colspan="1"><code>FF
+FE 00 00</code></td><td rowspan="1" colspan="1">UCS-4, little-endian machine (4321 order)</td></tr>
+<tr><td rowspan="1" colspan="1"><code>00 00 FF FE</code></td><td rowspan="1" colspan="1">UCS-4, unusual octet order (2143)</td>
+</tr><tr><td rowspan="1" colspan="1"><code>FE FF 00 00</code></td><td rowspan="1" colspan="1">UCS-4, unusual octet order (3412)</td>
+</tr><tr><td rowspan="1" colspan="1"><code>FE FF ## ##</code></td><td rowspan="1" colspan="1">UTF-16, big-endian</td></tr>
+<tr><td rowspan="1" colspan="1"><code>FF FE ## ##</code></td><td rowspan="1" colspan="1">UTF-16, little-endian</td></tr><tr>
+<td rowspan="1" colspan="1"><code>EF BB BF</code></td><td rowspan="1" colspan="1">UTF-8</td></tr></tbody></table></div>
+<div class="diff-add"><p>Without a Byte Order Mark:</p></div>
+<div class="diff-add"><table border="1" frame="border"><tbody><tr><td rowspan="1" colspan="1"><code>00 00 00 3C</code></td>
+<td rowspan="4" colspan="1">UCS-4 or other encoding with a 32-bit code unit and ASCII
+characters encoded as ASCII values, in respectively big-endian (1234), little-endian
+(4321) and two unusual byte orders (2143 and 3412). The encoding declaration
+must be read to determine which of UCS-4 or other supported 32-bit encodings
+applies.</td></tr><tr><td rowspan="1" colspan="1"><code>3C 00 00 00</code></td>
+
+</tr><tr><td rowspan="1" colspan="1"><code>00 00 3C 00</code></td>
+
+</tr><tr><td rowspan="1" colspan="1"><code>00 3C 00 00</code></td>
+
+</tr><tr><td rowspan="1" colspan="1"><code>00 3C 00 3F</code></td><td rowspan="1" colspan="1">UTF-16BE or big-endian ISO-10646-UCS-2
+or other encoding with a 16-bit code unit in big-endian order and ASCII characters
+encoded as ASCII values (the encoding declaration must be read to determine
+which)</td></tr><tr><td rowspan="1" colspan="1"><code>3C 00 3F 00</code></td><td rowspan="1" colspan="1">UTF-16LE or little-endian
+ISO-10646-UCS-2 or other encoding with a 16-bit code unit in little-endian
+order and ASCII characters encoded as ASCII values (the encoding declaration
+must be read to determine which)</td></tr><tr><td rowspan="1" colspan="1"><code>3C 3F 78 6D</code></td>
+<td rowspan="1" colspan="1">UTF-8, ISO 646, ASCII, some part of ISO 8859, Shift-JIS, EUC, or any other
+7-bit, 8-bit, or mixed-width encoding which ensures that the characters of
+ASCII have their normal positions, width, and values; the actual encoding
+declaration must be read to detect which of these applies, but since all of
+these encodings use the same bit patterns for the relevant ASCII characters,
+the encoding declaration itself may be read reliably</td></tr><tr><td rowspan="1" colspan="1"><code>4C
+6F A7 94</code></td><td rowspan="1" colspan="1">EBCDIC (in some flavor; the full encoding declaration
+must be read to tell which code page is in use)</td></tr><tr><td rowspan="1" colspan="1">Other</td>
+<td rowspan="1" colspan="1">UTF-8 without an encoding declaration, or else the data stream is mislabeled
+(lacking a required encoding declaration), corrupt, fragmentary, or enclosed
+in a wrapper of some kind</td></tr></tbody></table></div>
+<div class="diff-add"><div class="note"><p class="prefix"><b>Note:</b></p>
+<p>In cases above which do not require reading the encoding declaration to
+determine the encoding, section 4.3.3 still requires that the encoding declaration,
+if present, be read and that the encoding name be checked to match the actual
+encoding of the entity. Also, it is possible that new character encodings
+will be invented that will make it necessary to use the encoding declaration
+to determine the encoding, in cases where this is not required at present.</p>
+</div></div>
+<p>This level of autodetection is enough to read the XML encoding declaration
+and parse the character-encoding identifier, which is still necessary to distinguish
+the individual members of each family of encodings (e.g. to tell UTF-8 from
+8859, and the parts of 8859 from each other, or to distinguish the specific
+EBCDIC code page in use, and so on).</p>
+<p>Because the contents of the encoding declaration are restricted to <span class="diff-chg">characters from the ASCII repertoire (however encoded)</span>,
+a processor can reliably read the entire encoding declaration as soon as it
+has detected which family of encodings is in use. Since in practice, all widely
+used character encodings fall into one of the categories above, the XML encoding
+declaration allows reasonably reliable in-band labeling of character encodings,
+even when external sources of information at the operating-system or transport-protocol
+level are unreliable. <span class="diff-del">Note that since external parsed entities
+in UTF-16 may begin with any character, this autodetection does not always
+work. Also, </span><span class="diff-add">Character encodings such as UTF-7
+that make overloaded usage of ASCII-valued bytes may fail to be reliably detected.</span></p>
+<p>Once the processor has detected the character encoding in use, it can act
+appropriately, whether by invoking a separate input routine for each case,
+or by calling the proper conversion function on each character of input.</p>
+<p>Like any self-labeling system, the XML encoding declaration will not work
+if any software changes the entity's character set or encoding without updating
+the encoding declaration. Implementors of character-encoding routines should
+be careful to ensure the accuracy of the internal and external information
+used to label the entity.</p>
+</div>
+<div class="div2">
+<div class="diff-add">
+<h3><a name="sec-guessing-with-ext-info"></a>F.2 Priorities in the Presence of External Encoding Information</h3></div>
+<p>The second possible case occurs when the XML entity is accompanied by encoding
+information, as in some file systems and some network protocols. When multiple
+sources of information are available, their relative priority and the preferred
+method of handling conflict should be specified as part of the higher-level
+protocol used to deliver XML. <span class="diff-chg">In particular, please refer
+to <a href="#rfc2376">[IETF RFC 2376]</a> or its successor, which defines the <code>text/xml</code>
+and <code>application/xml</code> MIME types and provides some useful guidance.
+In the interests of interoperability, however, the following rule is recommended.</span></p>
+<ul>
+<li><p>If an XML entity is in a file, the Byte-Order Mark and encoding declaration <span class="diff-del">PI </span>are used (if present) to determine the character encoding.<span class="diff-del"><a href="http://www.w3.org/XML/xml-19980210-errata#E74">[E74]</a>
+All other heuristics and sources of information are solely for error recovery.</span></p>
+</li>
+</ul>
+<div class="diff-del"><ul>
+<li><p>If an XML entity is delivered with a MIME type of text/xml, then
+the <code>charset</code> parameter on the MIME type determines the character
+encoding method; all other heuristics and sources of information are solely
+for error recovery.</p></li>
+<li><p>If an XML entity is delivered with a MIME type of application/xml,
+then the Byte-Order Mark and encoding-declaration PI are used (if present)
+to determine the character encoding. All other heuristics and sources of information
+are solely for error recovery.</p></li>
+</ul></div>
+<div class="diff-del"><p>These rules apply only in the absence of protocol-level documentation;
+in particular, when the MIME types text/xml and application/xml are defined,
+the recommendations of the relevant RFC will supersede these rules.</p></div>
+</div>
+</div>
+<div class="div1">
+
+<h2><a name="sec-xml-wg"></a>G W3C XML Working Group (Non-Normative)</h2>
+<p>This specification was prepared and approved for publication by the W3C
+XML Working Group (WG). WG approval of this specification does not necessarily
+imply that all WG members voted for its approval. The current and former members
+of the XML WG are:</p>
+<ul>
+<li>Jon Bosak, Sun (<i>Chair</i>) 
+</li>
+<li>James Clark (<i>Technical Lead</i>) </li>
+<li>Tim Bray, Textuality and Netscape
+ (<i>XML Co-editor</i>) </li>
+<li>Jean Paoli, Microsoft (<i>XML
+Co-editor</i>) </li>
+<li>C. M. Sperberg-McQueen, U. of Ill.
+ (<i>XML Co-editor</i>) </li>
+<li>Dan Connolly, W3C (<i>W3C Liaison</i>) 
+</li>
+<li>Paula Angerstein, Texcel</li>
+<li>Steve DeRose, INSO</li>
+<li>Dave Hollander, HP</li>
+<li>Eliot Kimber, ISOGEN</li>
+<li>Eve Maler, ArborText</li>
+<li>Tom Magliery, NCSA</li>
+<li>Murray Maloney<span class="diff-chg">, SoftQuad, Grif
+SA, Muzmo and Veo Systems</span></li>
+<li><span class="diff-chg">MURATA Makoto (FAMILY Given)</span>, Fuji
+Xerox Information Systems</li>
+<li>Joel Nava, Adobe</li>
+<li>Conleth O'Connell, Vignette
+</li>
+<li>Peter Sharpe, SoftQuad</li>
+<li>John Tigue, DataChannel</li>
+</ul>
+</div>
+<div class="diff-add"><div class="div1">
+
+<h2><a name="sec-core-wg"></a>H W3C XML Core Group (Non-Normative)</h2>
+<p>The second edition of this specification was prepared by the W3C XML Core
+Working Group (WG). The members of the WG at the time of publication of this
+edition were:</p>
+<ul>
+<li>Paula Angerstein, Vignette</li>
+<li>Daniel Austin, Ask Jeeves</li>
+<li>Tim Boland</li>
+<li>Allen Brown, Microsoft</li>
+<li>Dan Connolly, W3C (<i>Staff
+Contact</i>) </li>
+<li>John Cowan, Reuters Limited
+</li>
+<li>John Evdemon, XMLSolutions Corporation
+</li>
+<li>Paul Grosso, Arbortext (<i>Co-Chair</i>) 
+</li>
+<li>Arnaud Le Hors, IBM (<i>Co-Chair</i>) 
+</li>
+<li>Eve Maler, Sun Microsystems
+ (<i>Second Edition Editor</i>) </li>
+<li>Jonathan Marsh, Microsoft</li>
+<li>MURATA Makoto (FAMILY Given), IBM
+</li>
+<li>Mark Needleman, Data Research Associates
+</li>
+<li>David Orchard, Jamcracker</li>
+<li>Lew Shannon, NCR</li>
+<li>Richard Tobin, University of Edinburgh
+</li>
+<li>Daniel Veillard, W3C</li>
+<li>Dan Vint, Lexica</li>
+<li>Norman Walsh, Sun Microsystems
+</li>
+<li>François Yergeau, Alis Technologies
+ (<i>Errata List Editor</i>) </li>
+<li>Kongyi Zhou, Oracle</li>
+</ul>
+</div></div>
+<div class="diff-add"><div class="div1">
+
+<h2><a name="id2683713"></a>I Production Notes (Non-Normative)</h2>
+<p>This Second Edition was encoded in the <a href="http://www.w3.org/XML/1998/06/xmlspec-v21.dtd">XMLspec
+DTD</a> (which has <a href="http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm">documentation</a>
+available). The HTML versions were produced with a combination of the <a href="http://www.w3.org/XML/1998/06/xmlspec.xsl">xmlspec.xsl</a>, <a href="http://www.w3.org/XML/1998/06/diffspec.xsl">diffspec.xsl</a>,
+and <a href="http://www.w3.org/XML/1998/06/REC-xml-2e.xsl">REC-xml-2e.xsl</a>
+XSLT stylesheets.  The PDF version was produced with the <a href="http://www.tdb.uu.se/~jan/html2ps.html">html2ps</a>
+facility and a distiller program.</p>
+</div></div>
+</div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006.html
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006.html	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006.html	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2495 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="EN"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Extensible Markup Language (XML) 1.0 (Second Edition)</title><style type="text/css">
+code           { font-family: monospace; }
+
+div.constraint,
+div.issue,
+div.note,
+div.notice     { margin-left: 2em; }
+
+dt.label       { display: run-in; }
+
+li p           { margin-top: 0.3em;
+                 margin-bottom: 0.3em; }
+      </style><link rel="stylesheet" type="text/css" href="W3C-REC.css"></head><body>
+
+<div class="head"><p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width="72"></a></p>
+<h1>Extensible Markup Language (XML) 1.0 (Second Edition)</h1>
+<h2>W3C Recommendation 6 October 2000</h2><dl><dt>This version:</dt><dd><a href="http://www.w3.org/TR/2000/REC-xml-20001006">http://www.w3.org/TR/2000/REC-xml-20001006</a>
+(<a href="http://www.w3.org/TR/2000/REC-xml-20001006.html">XHTML</a>, <a href="http://www.w3.org/TR/2000/REC-xml-20001006.xml">XML</a>, <a href="http://www.w3.org/TR/2000/REC-xml-20001006.pdf">PDF</a>, <a href="http://www.w3.org/TR/2000/REC-xml-20001006-review.html">XHTML
+review version</a> with color-coded revision indicators)</dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></dd><dt>Previous versions:</dt><dd><a href="http://www.w3.org/TR/2000/WD-xml-2e-20000814"> http://www.w3.org/TR/2000/WD-xml-2e-20000814</a>
+<a href="http://www.w3.org/TR/1998/REC-xml-19980210"> http://www.w3.org/TR/1998/REC-xml-19980210</a> </dd><dt>Editors:</dt>
+<dd>Tim Bray, Textuality and Netscape <a href="mailto:tbray at textuality.com">&lt;tbray at textuality.com&gt;</a></dd>
+<dd>Jean Paoli, Microsoft <a href="mailto:jeanpa at microsoft.com">&lt;jeanpa at microsoft.com&gt;</a></dd>
+<dd>C. M. Sperberg-McQueen, University
+of Illinois at Chicago and Text Encoding Initiative <a href="mailto:cmsmcq at uic.edu">&lt;cmsmcq at uic.edu&gt;</a></dd>
+<dd>Eve Maler, Sun Microsystems,
+Inc. <a href="mailto:elm at east.sun.com">&lt;eve.maler at east.sun.com&gt;</a> - Second Edition</dd>
+</dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2000 <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> (<a href="http://www.lcs.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a href="http://www.inria.fr/"><abbr lang="fr" title="Institut National de Recherche en Informatique et Automatique">INRIA</abbr></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>, <a href="http://www.w3.org/Consortium/Legal/copyright-documents-19990405">document use</a>, and <a href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">software licensing</a> rules apply.</p></div><hr><div id="abstract">
+<h2><a name="abstract">Abstract</a></h2>
+<p>The Extensible Markup Language (XML) is a subset of SGML that is completely
+described in this document. Its goal is to enable generic SGML to be served,
+received, and processed on the Web in the way that is now possible with HTML.
+XML has been designed for ease of implementation and for interoperability
+with both SGML and HTML.</p>
+</div><div id="status">
+<h2><a name="status">Status of this Document</a></h2>
+<p>This document has been reviewed by W3C Members and other interested parties
+and has been endorsed by the Director as a W3C Recommendation. It is a stable
+document and may be used as reference material or cited as a normative reference
+from another document. W3C's role in making the Recommendation is to draw
+attention to the specification and to promote its widespread deployment. This
+enhances the functionality and interoperability of the Web.</p>
+<p>This document specifies a syntax created by subsetting an existing, widely
+used international text processing standard (Standard Generalized Markup Language,
+ISO 8879:1986(E) as amended and corrected) for use on the World Wide Web.
+It is a product of the W3C XML Activity, details of which can be found at <a href="http://www.w3.org/XML/">http://www.w3.org/XML</a>. 
+The English version of this specification is the only normative version. However,
+for translations of this document, see <a href="http://www.w3.org/XML/#trans">http://www.w3.org/XML/#trans</a>. A
+list of current W3C Recommendations and other technical documents can be found
+at <a href="http://www.w3.org/TR/">http://www.w3.org/TR</a>.</p>
+
+<p>This second edition is <em>not</em> a new version of XML (first published 10 February 1998);
+it merely incorporates the changes dictated by the first-edition errata (available
+at <a href="http://www.w3.org/XML/xml-19980210-errata">http://www.w3.org/XML/xml-19980210-errata</a>)
+as a convenience to readers. The errata list for this second edition is available
+at <a href="http://www.w3.org/XML/xml-V10-2e-errata">http://www.w3.org/XML/xml-V10-2e-errata</a>.</p>
+<p>Please report errors in this document to <a href="mailto:xml-editor at w3.org">xml-editor at w3.org</a>; <a href="http://lists.w3.org/Archives/Public/xml-editor">archives</a> are available.</p>
+<div class="note"><p class="prefix"><b>Note:</b></p>
+<p>C. M. Sperberg-McQueen's affiliation has changed since the publication
+of the first edition. He is now at the World Wide Web Consortium, and can
+be contacted at <a href="mailto:cmsmcq at w3.org">cmsmcq at w3.org</a>.</p>
+</div>
+</div>
+<div class="toc">
+<h2><a name="contents">Table of Contents</a></h2><p class="toc">1 <a href="#sec-intro">Introduction</a><br>    1.1 <a href="#sec-origin-goals">Origin and Goals</a><br>    1.2 <a href="#sec-terminology">Terminology</a><br>2 <a href="#sec-documents">Documents</a><br>    2.1 <a href="#sec-well-formed">Well-Formed XML Documents</a><br>    2.2 <a href="#charsets">Characters</a><br>    2.3 <a href="#sec-common-syn">Common Syntactic Constructs</a><br>    2.4 <a href="#syntax">Character Data and Markup</a><br>    2.5 <a href="#sec-comments">Comments</a><br>    2.6 <a href="#sec-pi">Processing Instructions</a><br>    2.7 <a href="#sec-cdata-sect">CDATA Sections</a><br>    2.8 <a href="#sec-prolog-dtd">Prolog and Document Type Declaration</a><br>    2.9 <a href="#sec-rmd">Standalone Document Declaration</a><br>    2.10 <a href="#sec-white-space">White Space Handling</a><br>    2.11 <a href="#sec-line-ends">End-of-Line Handling</a><br>    2.12 <a href="#sec-lang-tag">Language Identification</a><br>3 <a href="#sec-logical-struct">Logical Structures</a><br>    3.1 <a href="#sec-starttags">Start-Tags, End-Tags, and Empty-Element Tags</a><br>    3.2 <a href="#elemdecls">Element Type Declarations</a><br>        3.2.1 <a href="#sec-element-content">Element Content</a><br>        3.2.2 <a href="#sec-mixed-content">Mixed Content</a><br>    3.3 <a href="#attdecls">Attribute-List Declarations</a><br>        3.3.1 <a href="#sec-attribute-types">Attribute Types</a><br>        3.3.2 <a href="#sec-attr-defaults">Attribute Defaults</a><br>        3.3.3 <a href="#AVNormalize">Attribute-Value
+Normalization</a><br>    3.4 <a href="#sec-condition-sect">Conditional Sections</a><br>4 <a href="#sec-physical-struct">Physical Structures</a><br>    4.1 <a href="#sec-references">Character and Entity References</a><br>    4.2 <a href="#sec-entity-decl">Entity Declarations</a><br>        4.2.1 <a href="#sec-internal-ent">Internal Entities</a><br>        4.2.2 <a href="#sec-external-ent">External Entities</a><br>    4.3 <a href="#TextEntities">Parsed Entities</a><br>        4.3.1 <a href="#sec-TextDecl">The Text Declaration</a><br>        4.3.2 <a href="#wf-entities">Well-Formed Parsed Entities</a><br>        4.3.3 <a href="#charencoding">Character Encoding in Entities</a><br>    4.4 <a href="#entproc">XML Processor Treatment of Entities and References</a><br>        4.4.1 <a href="#not-recognized">Not Recognized</a><br>        4.4.2 <a href="#included">Included</a><br>        4.4.3 <a href="#include-if-valid">Included If Validating</a><br>        4.4.4 <a href="#forbidden">Forbidden</a><br>        4.4.5 <a href="#inliteral">Included in Literal</a><br>        4.4.6 <a href="#notify">Notify</a><br>        4.4.7 <a href="#bypass">Bypassed</a><br>        4.4.8 <a href="#as-PE">Included as PE</a><br>    4.5 <a href="#intern-replacement">Construction of Internal Entity Replacement Text</a><br>    4.6 <a href="#sec-predefined-ent">Predefined Entities</a><br>    4.7 <a href="#Notations">Notation Declarations</a><br>    4.8 <a href="#sec-doc-entity">Document Entity</a><br>5 <a href="#sec-conformance">Conformance</a><br>    5.1 <a href="#proc-types">Validating and Non-Validating Processors</a><br>    5.2 <a href="#safe-behavior">Using XML Processors</a><br>6 <a href="#sec-notation">Notation</a><br></p>
+<h3>Appendices</h3><p class="toc">A <a href="#sec-bibliography">References</a><br>    A.1 <a href="#sec-existing-stds">Normative References</a><br>    A.2 <a href="#null">Other References</a><br>B <a href="#CharClasses">Character Classes</a><br>C <a href="#sec-xml-and-sgml">XML and SGML</a> (Non-Normative)<br>D <a href="#sec-entexpand">Expansion of Entity and Character References</a> (Non-Normative)<br>E <a href="#determinism">Deterministic Content Models</a> (Non-Normative)<br>F <a href="#sec-guessing">Autodetection
+of Character Encodings</a> (Non-Normative)<br>    F.1 <a href="#sec-guessing-no-ext-info">Detection Without External Encoding Information</a><br>    F.2 <a href="#sec-guessing-with-ext-info">Priorities in the Presence of External Encoding Information</a><br>G <a href="#sec-xml-wg">W3C XML Working Group</a> (Non-Normative)<br>H <a href="#sec-core-wg">W3C XML Core Group</a> (Non-Normative)<br>I <a href="#id2683713">Production Notes</a> (Non-Normative)<br></p></div><hr><div class="body">
+<div class="div1">
+
+<h2><a name="sec-intro"></a>1 Introduction</h2>
+<p>Extensible Markup Language, abbreviated XML, describes a class of data
+objects called <a title="XML Document" href="#dt-xml-doc">XML documents</a> and partially
+describes the behavior of computer programs which process them. XML is an
+application profile or restricted form of SGML, the Standard Generalized Markup
+Language <a href="#ISO8879">[ISO 8879]</a>. By construction, XML documents are conforming
+SGML documents.</p>
+<p>XML documents are made up of storage units called <a title="Entity" href="#dt-entity">entities</a>,
+which contain either parsed or unparsed data. Parsed data is made up of <a title="Character" href="#dt-character">characters</a>, some of which form <a title="Character Data" href="#dt-chardata">character
+data</a>, and some of which form <a title="Markup" href="#dt-markup">markup</a>.
+Markup encodes a description of the document's storage layout and logical
+structure. XML provides a mechanism to impose constraints on the storage layout
+and logical structure.</p>
+<p>[<a name="dt-xml-proc" title="XML Processor">Definition</a>: A software module called
+an <b>XML processor</b> is used to read XML documents and provide access
+to their content and structure.] [<a name="dt-app" title="Application">Definition</a>: It
+is assumed that an XML processor is doing its work on behalf of another module,
+called the <b>application</b>.] This specification describes
+the required behavior of an XML processor in terms of how it must read XML
+data and the information it must provide to the application.</p>
+<div class="div2">
+
+<h3><a name="sec-origin-goals"></a>1.1 Origin and Goals</h3>
+<p>XML was developed by an XML Working Group (originally known as the SGML
+Editorial Review Board) formed under the auspices of the World Wide Web Consortium
+(W3C) in 1996. It was chaired by Jon Bosak of Sun Microsystems with the active
+participation of an XML Special Interest Group (previously known as the SGML
+Working Group) also organized by the W3C. The membership of the XML Working
+Group is given in an appendix. Dan Connolly served as the WG's contact with
+the W3C.</p>
+<p>The design goals for XML are:</p>
+<ol>
+<li><p>XML shall be straightforwardly usable over the Internet.</p></li>
+<li><p>XML shall support a wide variety of applications.</p></li>
+<li><p>XML shall be compatible with SGML.</p></li>
+<li><p>It shall be easy to write programs which process XML documents.</p>
+</li>
+<li><p>The number of optional features in XML is to be kept to the absolute
+minimum, ideally zero.</p></li>
+<li><p>XML documents should be human-legible and reasonably clear.</p></li>
+<li><p>The XML design should be prepared quickly.</p></li>
+<li><p>The design of XML shall be formal and concise.</p></li>
+<li><p>XML documents shall be easy to create.</p></li>
+<li><p>Terseness in XML markup is of minimal importance.</p></li>
+</ol>
+<p>This specification, together with associated standards (Unicode and ISO/IEC
+10646 for characters, Internet RFC 1766 for language identification tags,
+ISO 639 for language name codes, and ISO 3166 for country name codes), provides
+all the information necessary to understand XML Version 1.0 and
+construct computer programs to process it.</p>
+<p>This version of the XML specification  may be distributed freely, as long as
+all text and legal notices remain intact.</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-terminology"></a>1.2 Terminology</h3>
+<p>The terminology used to describe XML documents is defined in the body of
+this specification. The terms defined in the following list are used in building
+those definitions and in describing the actions of an XML processor: </p><dl>
+<dt class="label">may</dt>
+<dd>
+<p>[<a name="dt-may" title="May">Definition</a>: Conforming documents and XML processors
+are permitted to but need not behave as described.]</p>
+</dd>
+<dt class="label">must</dt>
+<dd>
+<p>[<a name="dt-must" title="Must">Definition</a>: Conforming documents and XML processors
+are required to behave as described; otherwise they are in error. ]</p>
+</dd>
+<dt class="label">error</dt>
+<dd>
+<p>[<a name="dt-error" title="Error">Definition</a>: A violation of the rules of this specification;
+results are undefined. Conforming software may detect and report an error
+and may recover from it.]</p>
+</dd>
+<dt class="label">fatal error</dt>
+<dd>
+<p>[<a name="dt-fatal" title="Fatal Error">Definition</a>: An error which a conforming <a title="XML Processor" href="#dt-xml-proc">XML processor</a> must detect and report to the application.
+After encountering a fatal error, the processor may continue processing the
+data to search for further errors and may report such errors to the application.
+In order to support correction of errors, the processor may make unprocessed
+data from the document (with intermingled character data and markup) available
+to the application. Once a fatal error is detected, however, the processor
+must not continue normal processing (i.e., it must not continue to pass character
+data and information about the document's logical structure to the application
+in the normal way).]</p>
+</dd>
+<dt class="label">at user option</dt>
+<dd>
+<p>[<a name="dt-atuseroption" title="At user option">Definition</a>: Conforming software
+may or must (depending on the modal verb in the sentence) behave as described;
+if it does, it must provide users a means to enable or disable the behavior
+described.]</p>
+</dd>
+<dt class="label">validity constraint</dt>
+<dd>
+<p>[<a name="dt-vc" title="Validity constraint">Definition</a>: A rule which applies to
+all <a title="Validity" href="#dt-valid">valid</a> XML documents. Violations of validity
+constraints are errors; they must, at user option, be reported by <a title="Validating Processor" href="#dt-validating">validating XML processors</a>.]</p>
+</dd>
+<dt class="label">well-formedness constraint</dt>
+<dd>
+<p>[<a name="dt-wfc" title="Well-formedness constraint">Definition</a>: A rule which applies
+to all <a title="Well-Formed" href="#dt-wellformed">well-formed</a> XML documents. Violations
+of well-formedness constraints are <a title="Fatal Error" href="#dt-fatal">fatal errors</a>.]</p>
+</dd>
+<dt class="label">match</dt>
+<dd>
+<p>[<a name="dt-match" title="match">Definition</a>: (Of strings or names:) Two strings
+or names being compared must be identical. Characters with multiple possible
+representations in ISO/IEC 10646 (e.g. characters with both precomposed and
+base+diacritic forms) match only if they have the same representation in both
+strings. No
+case folding is performed. (Of strings and rules in the grammar:) A string
+matches a grammatical production if it belongs to the language generated by
+that production. (Of content and content models:) An element matches its declaration
+when it conforms in the fashion described in the constraint <a href="#elementvalid"><b>[VC: Element Valid]</b></a>.]</p>
+</dd>
+<dt class="label">for compatibility</dt>
+<dd>
+<p>[<a name="dt-compat" title="For Compatibility">Definition</a>: Marks
+a sentence describing a feature of XML included solely to ensure
+that XML remains compatible with SGML.]</p>
+</dd>
+<dt class="label">for interoperability</dt>
+<dd>
+<p>[<a name="dt-interop" title="For interoperability">Definition</a>: Marks
+a sentence describing a non-binding recommendation included to increase
+the chances that XML documents can be processed by the existing installed
+base of SGML processors which predate the WebSGML Adaptations Annex to ISO 8879.]</p>
+</dd>
+</dl><p></p>
+</div>
+</div>
+
+<div class="div1">
+
+<h2><a name="sec-documents"></a>2 Documents</h2>
+<p>[<a name="dt-xml-doc" title="XML Document">Definition</a>:  A data object is an <b>XML
+document</b> if it is <a title="Well-Formed" href="#dt-wellformed">well-formed</a>,
+as defined in this specification. A well-formed XML document may in addition
+be <a title="Validity" href="#dt-valid">valid</a> if it meets certain further constraints.]</p>
+<p>Each XML document has both a logical and a physical structure. Physically,
+the document is composed of units called <a title="Entity" href="#dt-entity">entities</a>.
+An entity may <a title="Entity Reference" href="#dt-entref">refer</a> to other entities to
+cause their inclusion in the document. A document begins in a "root"
+or <a title="Document Entity" href="#dt-docent">document entity</a>. Logically, the document
+is composed of declarations, elements, comments, character references, and
+processing instructions, all of which are indicated in the document by explicit
+markup. The logical and physical structures must nest properly, as described
+in <a href="#wf-entities"><b>4.3.2 Well-Formed Parsed Entities</b></a>.</p>
+<div class="div2">
+
+<h3><a name="sec-well-formed"></a>2.1 Well-Formed XML Documents</h3>
+<p>[<a name="dt-wellformed" title="Well-Formed">Definition</a>:  A textual object is a <b>well-formed</b>
+XML document if:]</p>
+<ol>
+<li><p>Taken as a whole, it matches the production labeled <a href="#NT-document">document</a>.</p>
+</li>
+<li><p>It meets all the well-formedness constraints given in this specification.</p>
+</li>
+<li><p>Each of the <a title="Text Entity" href="#dt-parsedent">parsed entities</a>
+which is referenced directly or indirectly within the document is <a title="Well-Formed" href="#dt-wellformed">well-formed</a>.</p></li>
+</ol>
+
+<h5>Document</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-document"></a>[1]   </td><td><code>document</code></td><td>   ::=   </td><td><code><a href="#NT-prolog">prolog</a> <a href="#NT-element">element</a> <a href="#NT-Misc">Misc</a>*</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>Matching the <a href="#NT-document">document</a> production implies that:</p>
+<ol>
+<li><p>It contains one or more <a title="Element" href="#dt-element">elements</a>.</p>
+</li>
+
+<li><p>[<a name="dt-root" title="Root Element">Definition</a>: There is exactly one element,
+called the <b>root</b>, or document element, no part of which appears
+in the <a title="Content" href="#dt-content">content</a> of any other element.] For
+all other elements, if the <a title="Start-Tag" href="#dt-stag">start-tag</a> is in
+the content of another element, the <a title="End Tag" href="#dt-etag">end-tag</a>
+is in the content of the same element. More simply stated, the elements,
+delimited by start- and end-tags, nest properly within each other.</p></li>
+</ol>
+<p>[<a name="dt-parentchild" title="Parent/Child">Definition</a>: As a consequence of this,
+for each non-root element <code>C</code> in the document, there is one other element <code>P</code>
+in the document such that <code>C</code> is in the content of <code>P</code>, but
+is not in the content of any other element that is in the content of <code>P</code>. <code>P</code>
+is referred to as the <b>parent</b> of <code>C</code>, and <code>C</code> as
+a <b>child</b> of <code>P</code>.]</p>
+</div>
+<div class="div2">
+
+<h3><a name="charsets"></a>2.2 Characters</h3>
+<p>[<a name="dt-text" title="Text">Definition</a>: A parsed entity contains <b>text</b>,
+a sequence of <a title="Character" href="#dt-character">characters</a>, which may
+represent markup or character data.] [<a name="dt-character" title="Character">Definition</a>: A <b>character</b>
+is an atomic unit of text as specified by ISO/IEC 10646 <a href="#ISO10646">[ISO/IEC 10646]</a> (see
+also <a href="#ISO10646-2000">[ISO/IEC 10646-2000]</a>). Legal characters are tab, carriage
+return, line feed, and the legal characters
+of Unicode and ISO/IEC 10646. The
+versions of these standards cited in <a href="#sec-existing-stds"><b>A.1 Normative References</b></a> were
+current at the time this document was prepared. New characters may be added
+to these standards by amendments or new editions. Consequently, XML processors
+must accept any character in the range specified for <a href="#NT-Char">Char</a>.
+The use of "compatibility characters", as defined in section
+6.8 of <a href="#Unicode">[Unicode]</a> (see
+also D21 in section 3.6 of <a href="#Unicode3">[Unicode3]</a>), is discouraged.]</p>
+
+<h5>Character Range</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-Char"></a>[2]   </td><td><code>Char</code></td><td>   ::=   </td><td><code>#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]</code></td><xsltdebug></xsltdebug><td><i>/* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */</i></td></tr>
+</tbody></table>
+<p>The mechanism for encoding character code points into bit patterns may
+vary from entity to entity. All XML processors must accept the UTF-8 and UTF-16
+encodings of 10646; the mechanisms for signaling which of the two is in use,
+or for bringing other encodings into play, are discussed later, in <a href="#charencoding"><b>4.3.3 Character Encoding in Entities</b></a>.</p>
+
+</div>
+<div class="div2">
+
+<h3><a name="sec-common-syn"></a>2.3 Common Syntactic Constructs</h3>
+<p>This section defines some symbols used widely in the grammar.</p>
+<p><a href="#NT-S">S</a> (white space) consists of one or more space (#x20)
+characters, carriage returns, line feeds, or tabs.</p>
+
+<h5>White Space</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-S"></a>[3]   </td><td><code>S</code></td><td>   ::=   </td><td><code>(#x20 | #x9 | #xD | #xA)+</code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>Characters are classified for convenience as letters, digits, or other
+characters. A
+letter consists of an alphabetic or syllabic base character or an ideographic
+character. Full definitions of the specific characters in each class
+are given in <a href="#CharClasses"><b>B Character Classes</b></a>.</p>
+<p>[<a name="dt-name" title="Name">Definition</a>: A <b>Name</b> is a token beginning
+with a letter or one of a few punctuation characters, and continuing with
+letters, digits, hyphens, underscores, colons, or full stops, together known
+as name characters.] Names beginning with the string "<code>xml</code>",
+or any string which would match <code>(('X'|'x') ('M'|'m') ('L'|'l'))</code>,
+are reserved for standardization in this or future versions of this specification.</p>
+<div class="note"><p class="prefix"><b>Note:</b></p>
+<p>The
+Namespaces in XML Recommendation <a href="#xml-names">[XML Names]</a> assigns a meaning
+to names containing colon characters. Therefore, authors should not use the
+colon in XML names except for namespace purposes, but XML processors must
+accept the colon as a name character.</p>
+</div>
+<p>An <a href="#NT-Nmtoken">Nmtoken</a> (name token) is any mixture of name
+characters.</p>
+
+<h5>Names and Tokens</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-NameChar"></a>[4]   </td><td><code>NameChar</code></td><td>   ::=   </td><td><code><a href="#NT-Letter">Letter</a> | <a href="#NT-Digit">Digit</a>
+| '.' | '-' | '_' | ':' | <a href="#NT-CombiningChar">CombiningChar</a> | <a href="#NT-Extender">Extender</a></code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-Name"></a>[5]   </td><td><code>Name</code></td><td>   ::=   </td><td><code>(<a href="#NT-Letter">Letter</a> | '_' | ':') (<a href="#NT-NameChar">NameChar</a>)*</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-Names"></a>[6]   </td><td><code>Names</code></td><td>   ::=   </td><td><code><a href="#NT-Name">Name</a> (<a href="#NT-S">S</a> <a href="#NT-Name">Name</a>)*</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-Nmtoken"></a>[7]   </td><td><code>Nmtoken</code></td><td>   ::=   </td><td><code>(<a href="#NT-NameChar">NameChar</a>)+</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-Nmtokens"></a>[8]   </td><td><code>Nmtokens</code></td><td>   ::=   </td><td><code><a href="#NT-Nmtoken">Nmtoken</a> (<a href="#NT-S">S</a> <a href="#NT-Nmtoken">Nmtoken</a>)*</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>Literal data is any quoted string not containing the quotation mark used
+as a delimiter for that string. Literals are used for specifying the content
+of internal entities (<a href="#NT-EntityValue">EntityValue</a>), the values
+of attributes (<a href="#NT-AttValue">AttValue</a>), and external identifiers
+(<a href="#NT-SystemLiteral">SystemLiteral</a>). Note that a <a href="#NT-SystemLiteral">SystemLiteral</a>
+can be parsed without scanning for markup.</p>
+
+<h5>Literals</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-EntityValue"></a>[9]   </td><td><code>EntityValue</code></td><td>   ::=   </td><td><code>'"' ([^%&amp;"] | <a href="#NT-PEReference">PEReference</a>
+| <a href="#NT-Reference">Reference</a>)* '"' </code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>|  "'" ([^%&amp;'] | <a href="#NT-PEReference">PEReference</a> | <a href="#NT-Reference">Reference</a>)* "'"</code></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-AttValue"></a>[10]   </td><td><code>AttValue</code></td><td>   ::=   </td><td><code>'"' ([^&lt;&amp;"] | <a href="#NT-Reference">Reference</a>)*
+'"' </code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>|  "'" ([^&lt;&amp;'] | <a href="#NT-Reference">Reference</a>)*
+"'"</code></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-SystemLiteral"></a>[11]   </td><td><code>SystemLiteral</code></td><td>   ::=   </td><td><code>('"' [^"]* '"') | ("'" [^']* "'") </code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-PubidLiteral"></a>[12]   </td><td><code>PubidLiteral</code></td><td>   ::=   </td><td><code>'"' <a href="#NT-PubidChar">PubidChar</a>* '"'
+| "'" (<a href="#NT-PubidChar">PubidChar</a> - "'")* "'"</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-PubidChar"></a>[13]   </td><td><code>PubidChar</code></td><td>   ::=   </td><td><code>#x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<div class="note"><p class="prefix"><b>Note:</b></p>
+<p>Although
+the <a href="#NT-EntityValue">EntityValue</a> production allows the definition
+of an entity consisting of a single explicit <code>&lt;</code> in the literal
+(e.g., <code>&lt;!ENTITY mylt "&lt;"&gt;</code>), it is strongly advised to avoid
+this practice since any reference to that entity will cause a well-formedness
+error.</p>
+</div>
+</div>
+<div class="div2">
+
+<h3><a name="syntax"></a>2.4 Character Data and Markup</h3>
+<p><a title="Text" href="#dt-text">Text</a> consists of intermingled <a title="Character Data" href="#dt-chardata">character data</a> and markup. [<a name="dt-markup" title="Markup">Definition</a>: <b>Markup</b> takes the form of <a title="Start-Tag" href="#dt-stag">start-tags</a>, <a title="End Tag" href="#dt-etag">end-tags</a>, <a title="Empty" href="#dt-empty">empty-element tags</a>, <a title="Entity Reference" href="#dt-entref">entity references</a>, <a title="Character Reference" href="#dt-charref">character
+references</a>, <a title="Comment" href="#dt-comment">comments</a>, <a title="CDATA Section" href="#dt-cdsection">CDATA section</a> delimiters, <a title="Document Type Declaration" href="#dt-doctype">document
+type declarations</a>, <a title="Processing instruction" href="#dt-pi">processing instructions</a>, <a href="#NT-XMLDecl">XML declarations</a>, <a href="#NT-TextDecl">text declarations</a>,
+and any white space that is at the top level of the document entity (that
+is, outside the document element and not inside any other markup).]</p>
+<p>[<a name="dt-chardata" title="Character Data">Definition</a>: All text that is not markup
+constitutes the <b>character data</b> of the document.]</p>
+<p>The ampersand character (&amp;) and the left angle bracket (&lt;) may appear
+in their literal form <em>only</em> when used as markup delimiters, or
+within a <a title="Comment" href="#dt-comment">comment</a>, a <a title="Processing instruction" href="#dt-pi">processing
+instruction</a>, or a <a title="CDATA Section" href="#dt-cdsection">CDATA section</a>. 
+If they are needed elsewhere, they must be <a title="escape" href="#dt-escape">escaped</a>
+using either <a title="Character Reference" href="#dt-charref">numeric character references</a>
+or the strings "<code>&amp;amp;</code>" and "<code>&amp;lt;</code>"
+respectively. The right angle bracket (&gt;) may be represented using the string "<code>&amp;gt;</code>",
+and must, <a title="For Compatibility" href="#dt-compat">for compatibility</a>, be escaped
+using "<code>&amp;gt;</code>" or a character reference when it
+appears in the string "<code>]]&gt;</code>" in content, when
+that string is not marking the end of a <a title="CDATA Section" href="#dt-cdsection">CDATA
+section</a>.</p>
+<p>In the content of elements, character data is any string of characters
+which does not contain the start-delimiter of any markup. In a CDATA section,
+character data is any string of characters not including the CDATA-section-close
+delimiter, "<code>]]&gt;</code>".</p>
+<p>To allow attribute values to contain both single and double quotes, the
+apostrophe or single-quote character (') may be represented as "<code>&amp;apos;</code>",
+and the double-quote character (") as "<code>&amp;quot;</code>".</p>
+
+<h5>Character Data</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-CharData"></a>[14]   </td><td><code>CharData</code></td><td>   ::=   </td><td><code>[^&lt;&amp;]* - ([^&lt;&amp;]* ']]&gt;' [^&lt;&amp;]*)</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+</div>
+<div class="div2">
+
+<h3><a name="sec-comments"></a>2.5 Comments</h3>
+<p>[<a name="dt-comment" title="Comment">Definition</a>: <b>Comments</b> may appear
+anywhere in a document outside other <a title="Markup" href="#dt-markup">markup</a>;
+in addition, they may appear within the document type declaration at places
+allowed by the grammar. They are not part of the document's <a title="Character Data" href="#dt-chardata">character
+data</a>; an XML processor may, but need not, make it possible for an
+application to retrieve the text of comments. <a title="For Compatibility" href="#dt-compat">For
+compatibility</a>, the string "<code>--</code>" (double-hyphen)
+must not occur within comments.] Parameter
+entity references are not recognized within comments.</p>
+
+<h5>Comments</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-Comment"></a>[15]   </td><td><code>Comment</code></td><td>   ::=   </td><td><code>'&lt;!--' ((<a href="#NT-Char">Char</a> - '-') | ('-'
+(<a href="#NT-Char">Char</a> - '-')))* '--&gt;'</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>An example of a comment:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!-- declarations for &lt;head&gt; &amp; &lt;body&gt; --&gt;</pre></td></tr></table>
+<p>Note
+that the grammar does not allow a comment ending in <code>---&gt;</code>. The
+following example is <em>not</em> well-formed.</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!-- B+, B, or B---&gt;</pre></td></tr></table>
+</div>
+<div class="div2">
+
+<h3><a name="sec-pi"></a>2.6 Processing Instructions</h3>
+<p>[<a name="dt-pi" title="Processing instruction">Definition</a>: <b>Processing instructions</b>
+(PIs) allow documents to contain instructions for applications.]</p>
+
+<h5>Processing Instructions</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-PI"></a>[16]   </td><td><code>PI</code></td><td>   ::=   </td><td><code>'&lt;?' <a href="#NT-PITarget">PITarget</a> (<a href="#NT-S">S</a>
+(<a href="#NT-Char">Char</a>* - (<a href="#NT-Char">Char</a>* '?&gt;' <a href="#NT-Char">Char</a>*)))? '?&gt;'</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-PITarget"></a>[17]   </td><td><code>PITarget</code></td><td>   ::=   </td><td><code><a href="#NT-Name">Name</a> - (('X' | 'x') ('M' |
+'m') ('L' | 'l'))</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>PIs are not part of the document's <a title="Character Data" href="#dt-chardata">character
+data</a>, but must be passed through to the application. The PI begins
+with a target (<a href="#NT-PITarget">PITarget</a>) used to identify the application
+to which the instruction is directed. The target names "<code>XML</code>", "<code>xml</code>",
+and so on are reserved for standardization in this or future versions of this
+specification. The XML <a title="Notation" href="#dt-notation">Notation</a> mechanism
+may be used for formal declaration of PI targets. Parameter
+entity references are not recognized within processing instructions.</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-cdata-sect"></a>2.7 CDATA Sections</h3>
+<p>[<a name="dt-cdsection" title="CDATA Section">Definition</a>: <b>CDATA sections</b>
+may occur anywhere character data may occur; they are used to escape blocks
+of text containing characters which would otherwise be recognized as markup.
+CDATA sections begin with the string "<code>&lt;![CDATA[</code>"
+and end with the string "<code>]]&gt;</code>":]</p>
+
+<h5>CDATA Sections</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-CDSect"></a>[18]   </td><td><code>CDSect</code></td><td>   ::=   </td><td><code><a href="#NT-CDStart">CDStart</a> <a href="#NT-CData">CData</a> <a href="#NT-CDEnd">CDEnd</a></code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-CDStart"></a>[19]   </td><td><code>CDStart</code></td><td>   ::=   </td><td><code>'&lt;![CDATA['</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-CData"></a>[20]   </td><td><code>CData</code></td><td>   ::=   </td><td><code>(<a href="#NT-Char">Char</a>* - (<a href="#NT-Char">Char</a>*
+']]&gt;' <a href="#NT-Char">Char</a>*)) </code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-CDEnd"></a>[21]   </td><td><code>CDEnd</code></td><td>   ::=   </td><td><code>']]&gt;'</code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>Within a CDATA section, only the <a href="#NT-CDEnd">CDEnd</a> string is
+recognized as markup, so that left angle brackets and ampersands may occur
+in their literal form; they need not (and cannot) be escaped using "<code>&amp;lt;</code>"
+and "<code>&amp;amp;</code>". CDATA sections cannot nest.</p>
+<p>An example of a CDATA section, in which "<code>&lt;greeting&gt;</code>"
+and "<code>&lt;/greeting&gt;</code>" are recognized as <a title="Character Data" href="#dt-chardata">character data</a>, not <a title="Markup" href="#dt-markup">markup</a>:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;![CDATA[&lt;greeting&gt;Hello, world!&lt;/greeting&gt;]]&gt; </pre></td></tr></table>
+</div>
+<div class="div2">
+
+<h3><a name="sec-prolog-dtd"></a>2.8 Prolog and Document Type Declaration</h3>
+<p>[<a name="dt-xmldecl" title="XML Declaration">Definition</a>: XML documents should
+begin with an <b>XML declaration</b> which specifies the version of
+XML being used.] For example, the following is a complete XML document, <a title="Well-Formed" href="#dt-wellformed">well-formed</a> but not <a title="Validity" href="#dt-valid">valid</a>:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;?xml version="1.0"?&gt; &lt;greeting&gt;Hello, world!&lt;/greeting&gt; </pre></td></tr></table>
+<p>and so is this:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;greeting&gt;Hello, world!&lt;/greeting&gt;</pre></td></tr></table>
+<p>The version number "<code>1.0</code>" should be used to indicate
+conformance to this version of this specification; it is an error for a document
+to use the value "<code>1.0</code>" if it does not conform to
+this version of this specification. It is the intent of the XML working group
+to give later versions of this specification numbers other than "<code>1.0</code>",
+but this intent does not indicate a commitment to produce any future versions
+of XML, nor if any are produced, to use any particular numbering scheme. Since
+future versions are not ruled out, this construct is provided as a means to
+allow the possibility of automatic version recognition, should it become necessary.
+Processors may signal an error if they receive documents labeled with versions
+they do not support.</p>
+<p>The function of the markup in an XML document is to describe its storage
+and logical structure and to associate attribute-value pairs with its logical
+structures. XML provides a mechanism, the <a title="Document Type Declaration" href="#dt-doctype">document
+type declaration</a>, to define constraints on the logical structure
+and to support the use of predefined storage units. [<a name="dt-valid" title="Validity">Definition</a>: An XML document is <b>valid</b> if it has an associated
+document type declaration and if the document complies with the constraints
+expressed in it.]</p>
+<p>The document type declaration must appear before the first <a title="Element" href="#dt-element">element</a>
+in the document.</p>
+
+<h5>Prolog</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-prolog"></a>[22]   </td><td><code>prolog</code></td><td>   ::=   </td><td><code><a href="#NT-XMLDecl">XMLDecl</a>? <a href="#NT-Misc">Misc</a>*
+(<a href="#NT-doctypedecl">doctypedecl</a> <a href="#NT-Misc">Misc</a>*)?</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-XMLDecl"></a>[23]   </td><td><code>XMLDecl</code></td><td>   ::=   </td><td><code>'&lt;?xml' <a href="#NT-VersionInfo">VersionInfo</a> <a href="#NT-EncodingDecl">EncodingDecl</a>? <a href="#NT-SDDecl">SDDecl</a>? <a href="#NT-S">S</a>? '?&gt;'</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-VersionInfo"></a>[24]   </td><td><code>VersionInfo</code></td><td>   ::=   </td><td><code><a href="#NT-S">S</a> 'version' <a href="#NT-Eq">Eq</a>
+("'" <a href="#NT-VersionNum">VersionNum</a> "'" | '"' <a href="#NT-VersionNum">VersionNum</a>
+'"')<i>/*  */</i></code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Eq"></a>[25]   </td><td><code>Eq</code></td><td>   ::=   </td><td><code><a href="#NT-S">S</a>? '=' <a href="#NT-S">S</a>?</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-VersionNum"></a>[26]   </td><td><code>VersionNum</code></td><td>   ::=   </td><td><code>([a-zA-Z0-9_.:] | '-')+</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Misc"></a>[27]   </td><td><code>Misc</code></td><td>   ::=   </td><td><code><a href="#NT-Comment">Comment</a> | <a href="#NT-PI">PI</a>
+| <a href="#NT-S">S</a></code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>[<a name="dt-doctype" title="Document Type Declaration">Definition</a>: The XML <b>document
+type declaration</b> contains or points to <a title="markup declaration" href="#dt-markupdecl">markup
+declarations</a> that provide a grammar for a class of documents. This
+grammar is known as a document type definition, or <b>DTD</b>. The document
+type declaration can point to an external subset (a special kind of <a title="External Entity" href="#dt-extent">external entity</a>) containing markup declarations,
+or can contain the markup declarations directly in an internal subset, or
+can do both. The DTD for a document consists of both subsets taken together.]</p>
+<p>[<a name="dt-markupdecl" title="markup declaration">Definition</a>:  A <b>markup declaration</b>
+is an <a title="Element Type declaration" href="#dt-eldecl">element type declaration</a>, an <a title="Attribute-List Declaration" href="#dt-attdecl">attribute-list declaration</a>, an <a title="entity declaration" href="#dt-entdecl">entity
+declaration</a>, or a <a title="Notation Declaration" href="#dt-notdecl">notation declaration</a>.]
+These declarations may be contained in whole or in part within <a title="Parameter entity" href="#dt-PE">parameter
+entities</a>, as described in the well-formedness and validity constraints
+below. For further
+information, see <a href="#sec-physical-struct"><b>4 Physical Structures</b></a>.</p>
+
+<h5>Document Type Definition</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-doctypedecl"></a>[28]   </td><td><code>doctypedecl</code></td><td>   ::=   </td><td><code>'&lt;!DOCTYPE' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a>
+(<a href="#NT-S">S</a> <a href="#NT-ExternalID">ExternalID</a>)? <a href="#NT-S">S</a>?
+('[' (<a href="#NT-markupdecl">markupdecl</a> | <a href="#NT-DeclSep">DeclSep</a>)*
+']' <a href="#NT-S">S</a>?)? '&gt;'</code></td><xsltdebug></xsltdebug><td><a href="#vc-roottype">[VC: Root Element Type]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#ExtSubset">[WFC: External
+Subset]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><i>/*  */</i></td></tr>
+<tr valign="baseline"><td><a name="NT-DeclSep"></a>[28a]   </td><td><code>DeclSep</code></td><td>   ::=   </td><td><code><a href="#NT-PEReference">PEReference</a> | <a href="#NT-S">S</a></code></td><xsltdebug></xsltdebug><td><a href="#PE-between-Decls">[WFC: PE
+Between Declarations]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><i>/*  */</i></td></tr>
+<tr valign="baseline"><td><a name="NT-markupdecl"></a>[29]   </td><td><code>markupdecl</code></td><td>   ::=   </td><td><code><a href="#NT-elementdecl">elementdecl</a> | <a href="#NT-AttlistDecl">AttlistDecl</a> | <a href="#NT-EntityDecl">EntityDecl</a>
+| <a href="#NT-NotationDecl">NotationDecl</a> | <a href="#NT-PI">PI</a> | <a href="#NT-Comment">Comment</a> </code></td><xsltdebug></xsltdebug><td><a href="#vc-PEinMarkupDecl">[VC: Proper Declaration/PE Nesting]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#wfc-PEinInternalSubset">[WFC: PEs in Internal Subset]</a></td></tr>
+</tbody></table>
+<p>Note
+that it is possible to construct a well-formed document containing a <a href="#NT-doctypedecl">doctypedecl</a>
+that neither points to an external subset nor contains an internal subset.</p>
+<p>The markup declarations may be made up in whole or in part of the <a title="Replacement Text" href="#dt-repltext">replacement text</a> of <a title="Parameter entity" href="#dt-PE">parameter
+entities</a>. The productions later in this specification for individual
+nonterminals (<a href="#NT-elementdecl">elementdecl</a>, <a href="#NT-AttlistDecl">AttlistDecl</a>,
+and so on) describe the declarations <em>after</em> all the parameter
+entities have been <a title="Include" href="#dt-include">included</a>.</p>
+<p>Parameter
+entity references are recognized anywhere in the DTD (internal and external
+subsets and external parameter entities), except in literals, processing instructions,
+comments, and the contents of ignored conditional sections (see <a href="#sec-condition-sect"><b>3.4 Conditional Sections</b></a>).
+They are also recognized in entity value literals. The use of parameter entities
+in the internal subset is restricted as described below.</p>
+<div class="constraint"><p class="prefix"><a name="vc-roottype"></a><b>Validity constraint: Root Element Type</b></p><p>The <a href="#NT-Name">Name</a>
+in the document type declaration must match the element type of the <a title="Root Element" href="#dt-root">root element</a>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="vc-PEinMarkupDecl"></a><b>Validity constraint: Proper Declaration/PE Nesting</b></p>
+<p>Parameter-entity <a title="Replacement Text" href="#dt-repltext">replacement text</a>
+must be properly nested with markup declarations. That is to say, if either
+the first character or the last character of a markup declaration (<a href="#NT-markupdecl">markupdecl</a>
+above) is contained in the replacement text for a <a title="Parameter-entity reference" href="#dt-PERef">parameter-entity
+reference</a>, both must be contained in the same replacement text.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="wfc-PEinInternalSubset"></a><b>Well-formedness constraint: PEs in Internal Subset</b></p><p>In
+the internal DTD subset, <a title="Parameter-entity reference" href="#dt-PERef">parameter-entity references</a>
+can occur only where markup declarations can occur, not within markup declarations.
+(This does not apply to references that occur in external parameter entities
+or to the external subset.)</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="ExtSubset"></a><b>Well-formedness constraint: External
+Subset</b></p><p>The external subset, if any, must match the production for <a href="#NT-extSubset">extSubset</a>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="PE-between-Decls"></a><b>Well-formedness constraint: PE
+Between Declarations</b></p><p>The replacement text of a parameter entity reference
+in a <a href="#NT-DeclSep">DeclSep</a> must match the production <a href="#NT-extSubsetDecl">extSubsetDecl</a>.</p>
+</div>
+<p>Like the internal subset, the external subset and any external parameter
+entities referenced
+in a <a href="#NT-DeclSep">DeclSep</a> must consist of a series of
+complete markup declarations of the types allowed by the non-terminal symbol <a href="#NT-markupdecl">markupdecl</a>, interspersed with white space or <a title="Parameter-entity reference" href="#dt-PERef">parameter-entity references</a>. However, portions of
+the contents of the external subset or of these 
+external parameter entities may conditionally be ignored by using the <a title="conditional section" href="#dt-cond-section">conditional section</a> construct; this is not
+allowed in the internal subset.</p>
+
+<h5>External Subset</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-extSubset"></a>[30]   </td><td><code>extSubset</code></td><td>   ::=   </td><td><code><a href="#NT-TextDecl">TextDecl</a>? <a href="#NT-extSubsetDecl">extSubsetDecl</a></code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-extSubsetDecl"></a>[31]   </td><td><code>extSubsetDecl</code></td><td>   ::=   </td><td><code>( <a href="#NT-markupdecl">markupdecl</a> | <a href="#NT-conditionalSect">conditionalSect</a> | <a href="#NT-DeclSep">DeclSep</a>)*</code></td><xsltdebug></xsltdebug><td><i>/*  */</i></td></tr>
+</tbody></table>
+<p>The external subset and external parameter entities also differ from the
+internal subset in that in them, <a title="Parameter-entity reference" href="#dt-PERef">parameter-entity
+references</a> are permitted <em>within</em> markup declarations,
+not only <em>between</em> markup declarations.</p>
+<p>An example of an XML document with a document type declaration:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;?xml version="1.0"?&gt; &lt;!DOCTYPE greeting SYSTEM "hello.dtd"&gt; &lt;greeting&gt;Hello, world!&lt;/greeting&gt; </pre></td></tr></table>
+<p>The <a title="System Identifier" href="#dt-sysid">system identifier</a> "<code>hello.dtd</code>"
+gives the address
+(a URI reference) of a DTD for the document.</p>
+<p>The declarations can also be given locally, as in this example:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
+&lt;!DOCTYPE greeting [
+  &lt;!ELEMENT greeting (#PCDATA)&gt;
+]&gt;
+&lt;greeting&gt;Hello, world!&lt;/greeting&gt;</pre></td></tr></table>
+<p>If both the external and internal subsets are used, the internal subset
+is considered to occur before the external subset. 
+This has the effect that entity and attribute-list declarations in the internal
+subset take precedence over those in the external subset.</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-rmd"></a>2.9 Standalone Document Declaration</h3>
+<p>Markup declarations can affect the content of the document, as passed from
+an <a title="XML Processor" href="#dt-xml-proc">XML processor</a> to an application; examples
+are attribute defaults and entity declarations. The standalone document declaration,
+which may appear as a component of the XML declaration, signals whether or
+not there are such declarations which appear external to the <a title="Document Entity" href="#dt-docent">document
+entity</a>
+or in parameter entities. [<a name="dt-extmkpdecl" title="External Markup Declaration">Definition</a>: An <b>external
+markup declaration</b> is defined as a markup declaration occurring in
+the external subset or in a parameter entity (external or internal, the latter
+being included because non-validating processors are not required to read
+them).]</p>
+
+<h5>Standalone Document Declaration</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-SDDecl"></a>[32]   </td><td><code>SDDecl</code></td><td>   ::=   </td><td><code> <a href="#NT-S">S</a> 'standalone' <a href="#NT-Eq">Eq</a>
+(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"')) </code></td><xsltdebug></xsltdebug><td><a href="#vc-check-rmd">[VC: Standalone Document Declaration]</a></td></tr>
+</tbody></table>
+<p>In a standalone document declaration, the value "yes" indicates
+that there are no <a title="External Markup Declaration" href="#dt-extmkpdecl">external markup declarations</a> which
+affect the information passed from the XML processor to the application. The
+value "no" indicates that there are or may be such external
+markup declarations. Note that the standalone document declaration only denotes
+the presence of external <em>declarations</em>; the presence, in a document,
+of references to external <em>entities</em>, when those entities are internally
+declared, does not change its standalone status.</p>
+<p>If there are no external markup declarations, the standalone document declaration
+has no meaning. If there are external markup declarations but there is no
+standalone document declaration, the value "no" is assumed.</p>
+<p>Any XML document for which <code>standalone="no"</code> holds can be converted
+algorithmically to a standalone document, which may be desirable for some
+network delivery applications.</p>
+<div class="constraint"><p class="prefix"><a name="vc-check-rmd"></a><b>Validity constraint: Standalone Document Declaration</b></p><p>The
+standalone document declaration must have the value "no" if
+any external markup declarations contain declarations of:</p>
+<ul>
+<li><p>attributes with <a title="Attribute Default" href="#dt-default">default</a> values,
+if elements to which these attributes apply appear in the document without
+specifications of values for these attributes, or</p></li>
+<li><p>entities (other than <code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>), if <a title="Entity Reference" href="#dt-entref">references</a>
+to those entities appear in the document, or</p></li>
+<li><p>attributes with values subject to <a href="#AVNormalize"><cite>normalization</cite></a>,
+where the attribute appears in the document with a value which will change
+as a result of normalization, or</p></li>
+<li><p>element types with <a title="Element content" href="#dt-elemcontent">element content</a>,
+if white space occurs directly within any instance of those types.</p></li>
+</ul>
+</div>
+<p>An example XML declaration with a standalone document declaration:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;?xml version="1.0" standalone='yes'?&gt;</pre></td></tr></table>
+</div>
+<div class="div2">
+
+<h3><a name="sec-white-space"></a>2.10 White Space Handling</h3>
+<p>In editing XML documents, it is often convenient to use "white space"
+(spaces, tabs, and blank lines)
+to set apart the markup for greater readability. Such white space is typically
+not intended for inclusion in the delivered version of the document. On the
+other hand, "significant" white space that should be preserved
+in the delivered version is common, for example in poetry and source code.</p>
+<p>An <a title="XML Processor" href="#dt-xml-proc">XML processor</a> must always pass
+all characters in a document that are not markup through to the application.
+A <a title="Validating Processor" href="#dt-validating"> validating XML processor</a> must also
+inform the application which of these characters constitute white space appearing
+in <a title="Element content" href="#dt-elemcontent">element content</a>.</p>
+<p>A special <a title="Attribute" href="#dt-attr">attribute</a> named <code>xml:space</code>
+may be attached to an element to signal an intention that in that element,
+white space should be preserved by applications. In valid documents, this
+attribute, like any other, must be <a title="Attribute-List Declaration" href="#dt-attdecl">declared</a>
+if it is used. When declared, it must be given as an <a title="Enumerated Attribute Values" href="#dt-enumerated">enumerated
+type</a> whose values
+are one or both of "default" and "preserve".
+For example:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ATTLIST poem  xml:space (default|preserve) 'preserve'&gt;
+
+&lt;!-- --&gt;
+&lt;!ATTLIST pre xml:space (preserve) #FIXED 'preserve'&gt;</pre></td></tr></table>
+<p>The value "default" signals that applications' default white-space
+processing modes are acceptable for this element; the value "preserve"
+indicates the intent that applications preserve all the white space. This
+declared intent is considered to apply to all elements within the content
+of the element where it is specified, unless overriden with another instance
+of the <code>xml:space</code> attribute.</p>
+<p>The <a title="Root Element" href="#dt-root">root element</a> of any document is considered
+to have signaled no intentions as regards application space handling, unless
+it provides a value for this attribute or the attribute is declared with a
+default value.</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-line-ends"></a>2.11 End-of-Line Handling</h3>
+<p>XML <a title="Text Entity" href="#dt-parsedent">parsed entities</a> are often stored
+in computer files which, for editing convenience, are organized into lines.
+These lines are typically separated by some combination of the characters
+carriage-return (#xD) and line-feed (#xA).</p>
+
+<p>To
+simplify the tasks of <a title="Application" href="#dt-app">applications</a>, the characters
+passed to an application by the <a title="XML Processor" href="#dt-xml-proc">XML processor</a>
+must be as if the XML processor normalized all line breaks in external parsed
+entities (including the document entity) on input, before parsing, by translating
+both the two-character sequence #xD #xA and any #xD that is not followed by
+#xA to a single #xA character.</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-lang-tag"></a>2.12 Language Identification</h3>
+<p>In document processing, it is often useful to identify the natural or formal
+language in which the content is written. A special <a title="Attribute" href="#dt-attr">attribute</a>
+named <code>xml:lang</code> may be inserted in documents to specify the language
+used in the contents and attribute values of any element in an XML document.
+In valid documents, this attribute, like any other, must be <a title="Attribute-List Declaration" href="#dt-attdecl">declared</a>
+if it is used. The
+values of the attribute are language identifiers as defined by <a href="#RFC1766">[IETF RFC 1766]</a>, <cite>Tags
+for the Identification of Languages</cite>, or its successor on the IETF
+Standards Track.</p>
+<div class="note"><p class="prefix"><b>Note:</b></p>
+<p><a href="#RFC1766">[IETF RFC 1766]</a> tags are constructed from two-letter language codes as defined
+by <a href="#ISO639">[ISO 639]</a>, from two-letter country codes as defined by <a href="#ISO3166">[ISO 3166]</a>, or from language identifiers registered with the Internet
+Assigned Numbers Authority <a href="#IANA-LANGCODES">[IANA-LANGCODES]</a>. It is expected that the successor
+to <a href="#RFC1766">[IETF RFC 1766]</a> will introduce three-letter language codes for
+languages not presently covered by <a href="#ISO639">[ISO 639]</a>.</p>
+</div>
+<p>(Productions
+33 through 38 have been removed.)</p>
+
+
+
+
+
+<p>For example:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;p xml:lang="en"&gt;The quick brown fox jumps over the lazy dog.&lt;/p&gt;
+&lt;p xml:lang="en-GB"&gt;What colour is it?&lt;/p&gt;
+&lt;p xml:lang="en-US"&gt;What color is it?&lt;/p&gt;
+&lt;sp who="Faust" desc='leise' xml:lang="de"&gt;
+  &lt;l&gt;Habe nun, ach! Philosophie,&lt;/l&gt;
+  &lt;l&gt;Juristerei, und Medizin&lt;/l&gt;
+  &lt;l&gt;und leider auch Theologie&lt;/l&gt;
+  &lt;l&gt;durchaus studiert mit heißem Bemüh'n.&lt;/l&gt;
+&lt;/sp&gt;</pre></td></tr></table>
+
+<p>The intent declared with <code>xml:lang</code> is considered to apply to
+all attributes and content of the element where it is specified, unless overridden
+with an instance of <code>xml:lang</code> on another element within that content.</p>
+
+<p>A simple declaration for <code>xml:lang</code> might take the form</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>xml:lang NMTOKEN #IMPLIED</pre></td></tr></table>
+<p>but specific default values may also be given, if appropriate. In a collection
+of French poems for English students, with glosses and notes in English, the <code>xml:lang</code>
+attribute might be declared this way:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ATTLIST poem   xml:lang NMTOKEN 'fr'&gt;
+&lt;!ATTLIST gloss  xml:lang NMTOKEN 'en'&gt;
+&lt;!ATTLIST note   xml:lang NMTOKEN 'en'&gt;</pre></td></tr></table>
+</div>
+</div>
+
+<div class="div1">
+
+<h2><a name="sec-logical-struct"></a>3 Logical Structures</h2>
+<p>[<a name="dt-element" title="Element">Definition</a>: Each <a title="XML Document" href="#dt-xml-doc">XML
+document</a> contains one or more <b>elements</b>, the boundaries
+of which are either delimited by <a title="Start-Tag" href="#dt-stag">start-tags</a>
+and <a title="End Tag" href="#dt-etag">end-tags</a>, or, for <a title="Empty" href="#dt-empty">empty</a>
+elements, by an <a title="empty-element tag" href="#dt-eetag">empty-element tag</a>. Each
+element has a type, identified by name, sometimes called its "generic
+identifier" (GI), and may have a set of attribute specifications.]
+Each attribute specification has a <a title="Attribute Name" href="#dt-attrname">name</a>
+and a <a title="Attribute Value" href="#dt-attrval">value</a>.</p>
+
+<h5>Element</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-element"></a>[39]   </td><td><code>element</code></td><td>   ::=   </td><td><code><a href="#NT-EmptyElemTag">EmptyElemTag</a></code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| <a href="#NT-STag">STag</a> <a href="#NT-content">content</a> <a href="#NT-ETag">ETag</a></code></td><td><a href="#GIMatch">[WFC: Element Type Match]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#elementvalid">[VC: Element Valid]</a></td></tr></tbody></table>
+<p>This specification does not constrain the semantics, use, or (beyond syntax)
+names of the element types and attributes, except that names beginning with
+a match to <code>(('X'|'x')('M'|'m')('L'|'l'))</code> are reserved for standardization
+in this or future versions of this specification.</p>
+<div class="constraint"><p class="prefix"><a name="GIMatch"></a><b>Well-formedness constraint: Element Type Match</b></p><p>The <a href="#NT-Name">Name</a>
+in an element's end-tag must match the element type in the start-tag.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="elementvalid"></a><b>Validity constraint: Element Valid</b></p><p>An element is valid
+if there is a declaration matching <a href="#NT-elementdecl">elementdecl</a>
+where the <a href="#NT-Name">Name</a> matches the element type, and one of
+the following holds:</p>
+<ol>
+<li><p>The declaration matches <b>EMPTY</b> and the element has no <a title="Content" href="#dt-content">content</a>.</p></li>
+<li><p>The declaration matches <a href="#NT-children">children</a> and the
+sequence of <a title="Parent/Child" href="#dt-parentchild">child elements</a> belongs
+to the language generated by the regular expression in the content model,
+with optional white space (characters matching the nonterminal <a href="#NT-S">S</a>)
+between the
+start-tag and the first child element, between child elements, or between
+the last child element and the end-tag. Note that a CDATA section containing
+only white space does not match the nonterminal <a href="#NT-S">S</a>, and
+hence cannot appear in these positions.</p></li>
+<li><p>The declaration matches <a href="#NT-Mixed">Mixed</a> and the content
+consists of <a title="Character Data" href="#dt-chardata">character data</a> and <a title="Parent/Child" href="#dt-parentchild">child elements</a> whose types match names in the
+content model.</p></li>
+<li><p>The declaration matches <b>ANY</b>, and the types of any <a title="Parent/Child" href="#dt-parentchild">child elements</a> have been declared.</p></li>
+</ol>
+</div>
+<div class="div2">
+
+<h3><a name="sec-starttags"></a>3.1 Start-Tags, End-Tags, and Empty-Element Tags</h3>
+<p>[<a name="dt-stag" title="Start-Tag">Definition</a>: The beginning of every non-empty
+XML element is marked by a <b>start-tag</b>.]</p>
+
+<h5>Start-tag</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-STag"></a>[40]   </td><td><code>STag</code></td><td>   ::=   </td><td><code>'&lt;' <a href="#NT-Name">Name</a> (<a href="#NT-S">S</a> <a href="#NT-Attribute">Attribute</a>)* <a href="#NT-S">S</a>? '&gt;'</code></td><xsltdebug></xsltdebug><td><a href="#uniqattspec">[WFC: Unique Att Spec]</a></td></tr>
+<tr valign="baseline"><td><a name="NT-Attribute"></a>[41]   </td><td><code>Attribute</code></td><td>   ::=   </td><td><code><a href="#NT-Name">Name</a> <a href="#NT-Eq">Eq</a> <a href="#NT-AttValue">AttValue</a></code></td><xsltdebug></xsltdebug><td><a href="#ValueType">[VC: Attribute Value Type]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#NoExternalRefs">[WFC: No External Entity References]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#CleanAttrVals">[WFC: No &lt; in Attribute Values]</a></td></tr>
+</tbody></table>
+<p>The <a href="#NT-Name">Name</a> in the start- and end-tags gives the element's <b>type</b>. [<a name="dt-attr" title="Attribute">Definition</a>:  The <a href="#NT-Name">Name</a>-<a href="#NT-AttValue">AttValue</a>
+pairs are referred to as the <b>attribute specifications</b> of the
+element], [<a name="dt-attrname" title="Attribute Name">Definition</a>: with the <a href="#NT-Name">Name</a> in each pair referred to as the <b>attribute name</b>]
+and [<a name="dt-attrval" title="Attribute Value">Definition</a>: the content of the <a href="#NT-AttValue">AttValue</a> (the text between the <code>'</code> or <code>"</code>
+delimiters) as the <b>attribute value</b>.]Note
+that the order of attribute specifications in a start-tag or empty-element
+tag is not significant.</p>
+<div class="constraint"><p class="prefix"><a name="uniqattspec"></a><b>Well-formedness constraint: Unique Att Spec</b></p><p>No attribute name
+may appear more than once in the same start-tag or empty-element tag.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="ValueType"></a><b>Validity constraint: Attribute Value Type</b></p><p>The attribute must
+have been declared; the value must be of the type declared for it. (For attribute
+types, see <a href="#attdecls"><b>3.3 Attribute-List Declarations</b></a>.)</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="NoExternalRefs"></a><b>Well-formedness constraint: No External Entity References</b></p><p>Attribute
+values cannot contain direct or indirect entity references to external entities.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="CleanAttrVals"></a><b>Well-formedness constraint: No <code>&lt;</code> in Attribute Values</b></p>
+<p>The <a title="Replacement Text" href="#dt-repltext">replacement text</a> of any entity
+referred to directly or indirectly in an attribute value must not contain a <code>&lt;</code>.</p>
+</div>
+<p>An example of a start-tag:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;termdef id="dt-dog" term="dog"&gt;</pre></td></tr></table>
+<p>[<a name="dt-etag" title="End Tag">Definition</a>: The end of every element that begins
+with a start-tag must be marked by an <b>end-tag</b> containing a name
+that echoes the element's type as given in the start-tag:]</p>
+
+<h5>End-tag</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-ETag"></a>[42]   </td><td><code>ETag</code></td><td>   ::=   </td><td><code>'&lt;/' <a href="#NT-Name">Name</a> <a href="#NT-S">S</a>?
+'&gt;'</code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>An example of an end-tag:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;/termdef&gt;</pre></td></tr></table>
+<p>[<a name="dt-content" title="Content">Definition</a>: The <a title="Text" href="#dt-text">text</a>
+between the start-tag and end-tag is called the element's <b>content</b>:]</p>
+
+<h5>Content of Elements</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-content"></a>[43]   </td><td><code>content</code></td><td>   ::=   </td><td><code><a href="#NT-CharData">CharData</a>? ((<a href="#NT-element">element</a>
+| <a href="#NT-Reference">Reference</a> | <a href="#NT-CDSect">CDSect</a>
+| <a href="#NT-PI">PI</a> | <a href="#NT-Comment">Comment</a>) <a href="#NT-CharData">CharData</a>?)*</code></td><xsltdebug></xsltdebug><td><i>/*  */</i></td></tr>
+</tbody></table>
+<p>[<a name="dt-empty" title="Empty">Definition</a>: An element
+with no content is said to be <b>empty</b>.] The representation
+of an empty element is either a start-tag immediately followed by an end-tag,
+or an empty-element tag. [<a name="dt-eetag" title="empty-element tag">Definition</a>: An <b>empty-element
+tag</b> takes a special form:]</p>
+
+<h5>Tags for Empty Elements</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-EmptyElemTag"></a>[44]   </td><td><code>EmptyElemTag</code></td><td>   ::=   </td><td><code>'&lt;' <a href="#NT-Name">Name</a> (<a href="#NT-S">S</a> <a href="#NT-Attribute">Attribute</a>)* <a href="#NT-S">S</a>? '/&gt;'</code></td><xsltdebug></xsltdebug><td><a href="#uniqattspec">[WFC: Unique Att Spec]</a></td></tr>
+</tbody></table>
+<p>Empty-element tags may be used for any element which has no content, whether
+or not it is declared using the keyword <b>EMPTY</b>. <a title="For interoperability" href="#dt-interop">For
+interoperability</a>, the empty-element tag should
+be used, and should only be used, for elements which are declared
+EMPTY.</p>
+<p>Examples of empty elements:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;IMG align="left"
+ src="http://www.w3.org/Icons/WWW/w3c_home" /&gt;
+&lt;br&gt;&lt;/br&gt;
+&lt;br/&gt;</pre></td></tr></table>
+</div>
+<div class="div2">
+
+<h3><a name="elemdecls"></a>3.2 Element Type Declarations</h3>
+<p>The <a title="Element" href="#dt-element">element</a> structure of an <a title="XML Document" href="#dt-xml-doc">XML document</a> may, for <a title="Validity" href="#dt-valid">validation</a>
+purposes, be constrained using element type and attribute-list declarations.
+An element type declaration constrains the element's <a title="Content" href="#dt-content">content</a>.</p>
+<p>Element type declarations often constrain which element types can appear
+as <a title="Parent/Child" href="#dt-parentchild">children</a> of the element. At user
+option, an XML processor may issue a warning when a declaration mentions an
+element type for which no declaration is provided, but this is not an error.</p>
+<p>[<a name="dt-eldecl" title="Element Type declaration">Definition</a>: An <b>element
+type declaration</b> takes the form:]</p>
+
+<h5>Element Type Declaration</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-elementdecl"></a>[45]   </td><td><code>elementdecl</code></td><td>   ::=   </td><td><code>'&lt;!ELEMENT' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-S">S</a> <a href="#NT-contentspec">contentspec</a> <a href="#NT-S">S</a>?
+'&gt;'</code></td><xsltdebug></xsltdebug><td><a href="#EDUnique">[VC: Unique Element Type Declaration]</a></td></tr>
+<tr valign="baseline"><td><a name="NT-contentspec"></a>[46]   </td><td><code>contentspec</code></td><td>   ::=   </td><td><code>'EMPTY' | 'ANY' | <a href="#NT-Mixed">Mixed</a>
+| <a href="#NT-children">children</a> </code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>where the <a href="#NT-Name">Name</a> gives the element type being declared.</p>
+<div class="constraint"><p class="prefix"><a name="EDUnique"></a><b>Validity constraint: Unique Element Type Declaration</b></p><p>No element
+type may be declared more than once.</p>
+</div>
+<p>Examples of element type declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ELEMENT br EMPTY&gt;
+&lt;!ELEMENT p (#PCDATA|emph)* &gt;
+&lt;!ELEMENT %name.para; %content.para; &gt;
+&lt;!ELEMENT container ANY&gt;</pre></td></tr></table>
+<div class="div3">
+
+<h4><a name="sec-element-content"></a>3.2.1 Element Content</h4>
+<p>[<a name="dt-elemcontent" title="Element content">Definition</a>: An element <a title="Start-Tag" href="#dt-stag">type</a> has <b>element content</b> when elements
+of that type must contain only <a title="Parent/Child" href="#dt-parentchild">child</a>
+elements (no character data), optionally separated by white space (characters
+matching the nonterminal <a href="#NT-S">S</a>).][<a name="dt-content-model" title="Content model">Definition</a>: In this case, the constraint includes a <b>content
+model</b>, a simple grammar governing the allowed types of the
+child elements and the order in which they are allowed to appear.]
+The grammar is built on content particles (<a href="#NT-cp">cp</a>s), which
+consist of names, choice lists of content particles, or sequence lists of
+content particles:</p>
+
+<h5>Element-content Models</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-children"></a>[47]   </td><td><code>children</code></td><td>   ::=   </td><td><code>(<a href="#NT-choice">choice</a> | <a href="#NT-seq">seq</a>)
+('?' | '*' | '+')?</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-cp"></a>[48]   </td><td><code>cp</code></td><td>   ::=   </td><td><code>(<a href="#NT-Name">Name</a> | <a href="#NT-choice">choice</a>
+| <a href="#NT-seq">seq</a>) ('?' | '*' | '+')?</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-choice"></a>[49]   </td><td><code>choice</code></td><td>   ::=   </td><td><code>'(' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> ( <a href="#NT-S">S</a>? '|' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> )+ <a href="#NT-S">S</a>? ')'</code></td><xsltdebug></xsltdebug><td><i>/*  */</i></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><i>/*  */</i></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#vc-PEinGroup">[VC: Proper Group/PE Nesting]</a></td></tr>
+<tr valign="baseline"><td><a name="NT-seq"></a>[50]   </td><td><code>seq</code></td><td>   ::=   </td><td><code>'(' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> ( <a href="#NT-S">S</a>? ',' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> )* <a href="#NT-S">S</a>? ')'</code></td><xsltdebug></xsltdebug><td><i>/*  */</i></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#vc-PEinGroup">[VC: Proper Group/PE Nesting]</a></td></tr>
+</tbody></table>
+<p>where each <a href="#NT-Name">Name</a> is the type of an element which
+may appear as a <a title="Parent/Child" href="#dt-parentchild">child</a>. Any content
+particle in a choice list may appear in the <a title="Element content" href="#dt-elemcontent">element
+content</a> at the location where the choice list appears in the grammar;
+content particles occurring in a sequence list must each appear in the <a title="Element content" href="#dt-elemcontent">element content</a> in the order given in the list.
+The optional character following a name or list governs whether the element
+or the content particles in the list may occur one or more (<code>+</code>),
+zero or more (<code>*</code>), or zero or one times (<code>?</code>). The
+absence of such an operator means that the element or content particle must
+appear exactly once. This syntax and meaning are identical to those used in
+the productions in this specification.</p>
+<p>The content of an element matches a content model if and only if it is
+possible to trace out a path through the content model, obeying the sequence,
+choice, and repetition operators and matching each element in the content
+against an element type in the content model. <a title="For Compatibility" href="#dt-compat">For
+compatibility</a>, it is an error if an element in the document can
+match more than one occurrence of an element type in the content model. For
+more information, see <a href="#determinism"><b>E Deterministic Content Models</b></a>.</p>
+
+
+<div class="constraint"><p class="prefix"><a name="vc-PEinGroup"></a><b>Validity constraint: Proper Group/PE Nesting</b></p><p>Parameter-entity <a title="Replacement Text" href="#dt-repltext">replacement text</a> must be properly nested with parenthesized
+groups. That is to say, if either of the opening or closing parentheses in
+a <a href="#NT-choice">choice</a>, <a href="#NT-seq">seq</a>, or <a href="#NT-Mixed">Mixed</a>
+construct is contained in the replacement text for a <a title="Parameter-entity reference" href="#dt-PERef">parameter
+entity</a>, both must be contained in the same replacement text.</p>
+<p><a title="For interoperability" href="#dt-interop">For interoperability</a>, if a parameter-entity reference
+appears in a <a href="#NT-choice">choice</a>, <a href="#NT-seq">seq</a>, or <a href="#NT-Mixed">Mixed</a> construct, its replacement text should contain at
+least one non-blank character, and neither the first nor last non-blank character
+of the replacement text should be a connector (<code>|</code> or <code>,</code>).</p>
+</div>
+<p>Examples of element-content models:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ELEMENT spec (front, body, back?)&gt;
+&lt;!ELEMENT div1 (head, (p | list | note)*, div2*)&gt;
+&lt;!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*&gt;</pre></td></tr></table>
+</div>
+<div class="div3">
+
+<h4><a name="sec-mixed-content"></a>3.2.2 Mixed Content</h4>
+<p>[<a name="dt-mixed" title="Mixed Content">Definition</a>: An element <a title="Start-Tag" href="#dt-stag">type</a>
+has <b>mixed content</b> when elements of that type may contain character
+data, optionally interspersed with <a title="Parent/Child" href="#dt-parentchild">child</a>
+elements.] In this case, the types of the child elements may be constrained,
+but not their order or their number of occurrences:</p>
+
+<h5>Mixed-content Declaration</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-Mixed"></a>[51]   </td><td><code>Mixed</code></td><td>   ::=   </td><td><code>'(' <a href="#NT-S">S</a>? '#PCDATA' (<a href="#NT-S">S</a>?
+'|' <a href="#NT-S">S</a>? <a href="#NT-Name">Name</a>)* <a href="#NT-S">S</a>?
+')*' </code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| '(' <a href="#NT-S">S</a>? '#PCDATA' <a href="#NT-S">S</a>? ')' </code></td><td><a href="#vc-PEinGroup">[VC: Proper Group/PE Nesting]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#vc-MixedChildrenUnique">[VC: No Duplicate Types]</a></td></tr>
+</tbody></table>
+<p>where the <a href="#NT-Name">Name</a>s give the types of elements that
+may appear as children. The
+keyword <b>#PCDATA</b> derives historically from the term "parsed
+character data."</p>
+<div class="constraint"><p class="prefix"><a name="vc-MixedChildrenUnique"></a><b>Validity constraint: No Duplicate Types</b></p><p>The
+same name must not appear more than once in a single mixed-content declaration.</p>
+</div>
+<p>Examples of mixed content declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*&gt;
+&lt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* &gt;
+&lt;!ELEMENT b (#PCDATA)&gt;</pre></td></tr></table>
+</div>
+</div>
+<div class="div2">
+
+<h3><a name="attdecls"></a>3.3 Attribute-List Declarations</h3>
+<p><a title="Attribute" href="#dt-attr">Attributes</a> are used to associate name-value
+pairs with <a title="Element" href="#dt-element">elements</a>. Attribute specifications
+may appear only within <a title="Start-Tag" href="#dt-stag">start-tags</a> and <a title="empty-element tag" href="#dt-eetag">empty-element tags</a>; thus, the productions used to
+recognize them appear in <a href="#sec-starttags"><b>3.1 Start-Tags, End-Tags, and Empty-Element Tags</b></a>. Attribute-list declarations
+may be used:</p>
+<ul>
+<li><p>To define the set of attributes pertaining to a given element type.</p>
+</li>
+<li><p>To establish type constraints for these attributes.</p></li>
+<li><p>To provide <a title="Attribute Default" href="#dt-default">default values</a> for
+attributes.</p></li>
+</ul>
+<p>[<a name="dt-attdecl" title="Attribute-List Declaration">Definition</a>:  <b>Attribute-list
+declarations</b> specify the name, data type, and default value (if any)
+of each attribute associated with a given element type:]</p>
+
+<h5>Attribute-list Declaration</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-AttlistDecl"></a>[52]   </td><td><code>AttlistDecl</code></td><td>   ::=   </td><td><code>'&lt;!ATTLIST' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-AttDef">AttDef</a>* <a href="#NT-S">S</a>? '&gt;'</code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-AttDef"></a>[53]   </td><td><code>AttDef</code></td><td>   ::=   </td><td><code><a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-S">S</a> <a href="#NT-AttType">AttType</a> <a href="#NT-S">S</a> <a href="#NT-DefaultDecl">DefaultDecl</a></code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>The <a href="#NT-Name">Name</a> in the <a href="#NT-AttlistDecl">AttlistDecl</a>
+rule is the type of an element. At user option, an XML processor may issue
+a warning if attributes are declared for an element type not itself declared,
+but this is not an error. The <a href="#NT-Name">Name</a> in the <a href="#NT-AttDef">AttDef</a>
+rule is the name of the attribute.</p>
+<p>When more than one <a href="#NT-AttlistDecl">AttlistDecl</a> is provided
+for a given element type, the contents of all those provided are merged. When
+more than one definition is provided for the same attribute of a given element
+type, the first declaration is binding and later declarations are ignored. <a title="For interoperability" href="#dt-interop">For interoperability,</a> writers of DTDs may choose
+to provide at most one attribute-list declaration for a given element type,
+at most one attribute definition for a given attribute name in an attribute-list
+declaration, and at least one attribute definition in each attribute-list
+declaration. For interoperability, an XML processor may at user option
+issue a warning when more than one attribute-list declaration is provided
+for a given element type, or more than one attribute definition is provided
+for a given attribute, but this is not an error.</p>
+<div class="div3">
+
+<h4><a name="sec-attribute-types"></a>3.3.1 Attribute Types</h4>
+<p>XML attribute types are of three kinds: a string type, a set of tokenized
+types, and enumerated types. The string type may take any literal string as
+a value; the tokenized types have varying lexical and semantic constraints.
+The validity constraints noted in the grammar are applied after the attribute
+value has been normalized as described in <a href="#attdecls"><b>3.3 Attribute-List Declarations</b></a>.</p>
+
+<h5>Attribute Types</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-AttType"></a>[54]   </td><td><code>AttType</code></td><td>   ::=   </td><td><code><a href="#NT-StringType">StringType</a> | <a href="#NT-TokenizedType">TokenizedType</a>
+| <a href="#NT-EnumeratedType">EnumeratedType</a> </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-StringType"></a>[55]   </td><td><code>StringType</code></td><td>   ::=   </td><td><code>'CDATA'</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-TokenizedType"></a>[56]   </td><td><code>TokenizedType</code></td><td>   ::=   </td><td><code>'ID'</code></td><xsltdebug></xsltdebug><td><a href="#id">[VC: ID]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#one-id-per-el">[VC: One ID per Element Type]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#id-default">[VC: ID Attribute Default]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'IDREF'</code></td><td><a href="#idref">[VC: IDREF]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'IDREFS'</code></td><td><a href="#idref">[VC: IDREF]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'ENTITY'</code></td><td><a href="#entname">[VC: Entity Name]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'ENTITIES'</code></td><td><a href="#entname">[VC: Entity Name]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'NMTOKEN'</code></td><td><a href="#nmtok">[VC: Name Token]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'NMTOKENS'</code></td><td><a href="#nmtok">[VC: Name Token]</a></td></tr>
+</tbody></table>
+<div class="constraint"><p class="prefix"><a name="id"></a><b>Validity constraint: ID</b></p><p>Values of type <b>ID</b> must match the <a href="#NT-Name">Name</a> production. A name must not appear more than once
+in an XML document as a value of this type; i.e., ID values must uniquely
+identify the elements which bear them.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="one-id-per-el"></a><b>Validity constraint: One ID per Element Type</b></p><p>No element
+type may have more than one ID attribute specified.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="id-default"></a><b>Validity constraint: ID Attribute Default</b></p><p>An ID attribute
+must have a declared default of <b>#IMPLIED</b> or <b>#REQUIRED</b>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="idref"></a><b>Validity constraint: IDREF</b></p><p>Values of type <b>IDREF</b> must
+match the <a href="#NT-Name">Name</a> production, and values of type <b>IDREFS</b>
+must match <a href="#NT-Names">Names</a>; each <a href="#NT-Name">Name</a>
+must match the value of an ID attribute on some element in the XML document;
+i.e. <b>IDREF</b> values must match the value of some ID attribute.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="entname"></a><b>Validity constraint: Entity Name</b></p><p>Values of type <b>ENTITY</b>
+must match the <a href="#NT-Name">Name</a> production, values of type <b>ENTITIES</b>
+must match <a href="#NT-Names">Names</a>; each <a href="#NT-Name">Name</a>
+must match the name of an <a title="Unparsed Entity" href="#dt-unparsed">unparsed entity</a>
+declared in the <a title="Document Type Declaration" href="#dt-doctype">DTD</a>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="nmtok"></a><b>Validity constraint: Name Token</b></p><p>Values of type <b>NMTOKEN</b>
+must match the <a href="#NT-Nmtoken">Nmtoken</a> production; values of type <b>NMTOKENS</b>
+must match <a title="" href="#NT-Nmtokens">Nmtokens</a>.</p>
+</div>
+
+<p>[<a name="dt-enumerated" title="Enumerated Attribute Values">Definition</a>: <b>Enumerated attributes</b> can take one of a list of values
+provided in the declaration]. There are two kinds of enumerated types:</p>
+
+<h5>Enumerated Attribute Types</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-EnumeratedType"></a>[57]   </td><td><code>EnumeratedType</code></td><td>   ::=   </td><td><code><a href="#NT-NotationType">NotationType</a>
+| <a href="#NT-Enumeration">Enumeration</a> </code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-NotationType"></a>[58]   </td><td><code>NotationType</code></td><td>   ::=   </td><td><code>'NOTATION' <a href="#NT-S">S</a> '(' <a href="#NT-S">S</a>? <a href="#NT-Name">Name</a> (<a href="#NT-S">S</a>? '|' <a href="#NT-S">S</a>? <a href="#NT-Name">Name</a>)* <a href="#NT-S">S</a>? ')' </code></td><xsltdebug></xsltdebug><td><a href="#notatn">[VC: Notation Attributes]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#OneNotationPer">[VC: One
+Notation Per Element Type]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#NoNotationEmpty">[VC: No
+Notation on Empty Element]</a></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-Enumeration"></a>[59]   </td><td><code>Enumeration</code></td><td>   ::=   </td><td><code>'(' <a href="#NT-S">S</a>? <a href="#NT-Nmtoken">Nmtoken</a>
+(<a href="#NT-S">S</a>? '|' <a href="#NT-S">S</a>? <a href="#NT-Nmtoken">Nmtoken</a>)* <a href="#NT-S">S</a>? ')'</code></td><xsltdebug></xsltdebug><td><a href="#enum">[VC: Enumeration]</a></td></tr></tbody></table>
+<p>A <b>NOTATION</b> attribute identifies a <a title="Notation" href="#dt-notation">notation</a>,
+declared in the DTD with associated system and/or public identifiers, to be
+used in interpreting the element to which the attribute is attached.</p>
+<div class="constraint"><p class="prefix"><a name="notatn"></a><b>Validity constraint: Notation Attributes</b></p><p>Values of this type
+must match one of the <a href="#Notations"><cite>notation</cite></a> names
+included in the declaration; all notation names in the declaration must be
+declared.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="OneNotationPer"></a><b>Validity constraint: One
+Notation Per Element Type</b></p><p>No element type may have more than one <b>NOTATION</b>
+attribute specified.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="NoNotationEmpty"></a><b>Validity constraint: No
+Notation on Empty Element</b></p><p><a title="For Compatibility" href="#dt-compat">For compatibility</a>,
+an attribute of type <b>NOTATION</b> must not be declared on an element
+declared <b>EMPTY</b>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="enum"></a><b>Validity constraint: Enumeration</b></p><p>Values of this type must match
+one of the <a href="#NT-Nmtoken">Nmtoken</a> tokens in the declaration.</p>
+</div>
+<p><a title="For interoperability" href="#dt-interop">For interoperability,</a> the same <a href="#NT-Nmtoken">Nmtoken</a> should not occur more than once in the enumerated
+attribute types of a single element type.</p>
+</div>
+<div class="div3">
+
+<h4><a name="sec-attr-defaults"></a>3.3.2 Attribute Defaults</h4>
+<p>An <a title="Attribute-List Declaration" href="#dt-attdecl">attribute declaration</a> provides information
+on whether the attribute's presence is required, and if not, how an XML processor
+should react if a declared attribute is absent in a document.</p>
+
+<h5>Attribute Defaults</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-DefaultDecl"></a>[60]   </td><td><code>DefaultDecl</code></td><td>   ::=   </td><td><code>'#REQUIRED' | '#IMPLIED' </code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| (('#FIXED' S)? <a href="#NT-AttValue">AttValue</a>)</code></td><td><a href="#RequiredAttr">[VC: Required Attribute]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#defattrvalid">[VC: Attribute Default Legal]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#CleanAttrVals">[WFC: No &lt; in Attribute Values]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#FixedAttr">[VC: Fixed Attribute Default]</a></td></tr>
+</tbody></table>
+<p>In an attribute declaration, <b>#REQUIRED</b> means that the attribute
+must always be provided, <b>#IMPLIED</b> that no default value is provided.  [<a name="dt-default" title="Attribute Default">Definition</a>: If
+the declaration is neither <b>#REQUIRED</b> nor <b>#IMPLIED</b>, then
+the <a href="#NT-AttValue">AttValue</a> value contains the declared <b>default</b>
+value; the <b>#FIXED</b> keyword states that the attribute must always have
+the default value. If a default value is declared, when an XML processor encounters
+an omitted attribute, it is to behave as though the attribute were present
+with the declared default value.]</p>
+<div class="constraint"><p class="prefix"><a name="RequiredAttr"></a><b>Validity constraint: Required Attribute</b></p><p>If the default
+declaration is the keyword <b>#REQUIRED</b>, then the attribute must be
+specified for all elements of the type in the attribute-list declaration.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="defattrvalid"></a><b>Validity constraint: Attribute Default Legal</b></p><p>The declared
+default value must meet the lexical constraints of the declared attribute
+type.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="FixedAttr"></a><b>Validity constraint: Fixed Attribute Default</b></p><p>If an attribute
+has a default value declared with the <b>#FIXED</b> keyword, instances of
+that attribute must match the default value.</p>
+</div>
+<p>Examples of attribute-list declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ATTLIST termdef
+          id      ID      #REQUIRED
+          name    CDATA   #IMPLIED&gt;
+&lt;!ATTLIST list
+          type    (bullets|ordered|glossary)  "ordered"&gt;
+&lt;!ATTLIST form
+          method  CDATA   #FIXED "POST"&gt;</pre></td></tr></table>
+</div>
+<div class="div3">
+
+<h4><a name="AVNormalize"></a>3.3.3 Attribute-Value
+Normalization</h4>
+<p>Before the value of an attribute is passed to the application or checked
+for validity, the XML processor must normalize the attribute value by applying
+the algorithm below, or by using some other method such that the value passed
+to the application is the same as that produced by the algorithm.</p>
+<ol>
+<li><p>All line breaks must have been normalized on input to #xA as described
+in <a href="#sec-line-ends"><b>2.11 End-of-Line Handling</b></a>, so the rest of this algorithm operates
+on text normalized in this way.</p></li>
+<li><p>Begin with a normalized value consisting of the empty string.</p>
+</li>
+<li><p>For each character, entity reference, or character reference in the
+unnormalized attribute value, beginning with the first and continuing to the
+last, do the following:</p>
+<ul>
+<li><p>For a character reference, append the referenced character to the
+normalized value.</p></li>
+<li><p>For an entity reference, recursively apply step 3 of this algorithm
+to the replacement text of the entity.</p></li>
+<li><p>For a white space character (#x20, #xD, #xA, #x9), append a space
+character (#x20) to the normalized value.</p></li>
+<li><p>For another character, append the character to the normalized value.</p>
+</li>
+</ul>
+</li>
+</ol>
+<p>If the attribute type is not CDATA, then the XML processor must further
+process the normalized attribute value by discarding any leading and trailing
+space (#x20) characters, and by replacing sequences of space (#x20) characters
+by a single space (#x20) character.</p>
+<p>Note that if the unnormalized attribute value contains a character reference
+to a white space character other than space (#x20), the normalized value contains
+the referenced character itself (#xD, #xA or #x9). This contrasts with the
+case where the unnormalized value contains a white space character (not a
+reference), which is replaced with a space character (#x20) in the normalized
+value and also contrasts with the case where the unnormalized value contains
+an entity reference whose replacement text contains a white space character;
+being recursively processed, the white space character is replaced with a
+space character (#x20) in the normalized value.</p>
+<p>All attributes for which no declaration has been read should be treated
+by a non-validating processor
+as if declared <b>CDATA</b>.</p>
+<p>Following are examples of attribute normalization. Given the following
+declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY d "&amp;#xD;"&gt;
+&lt;!ENTITY a "&amp;#xA;"&gt;
+&lt;!ENTITY da "&amp;#xD;&amp;#xA;"&gt;</pre></td></tr></table>
+<p>the attribute specifications in the left column below would be normalized
+to the character sequences of the middle column if the attribute <code>a</code>
+is declared <b>NMTOKENS</b> and to those of the right columns if <code>a</code>
+is declared <b>CDATA</b>.</p>
+<table border="1" frame="border"><thead><tr><th rowspan="1" colspan="1">Attribute specification</th>
+<th rowspan="1" colspan="1">a is NMTOKENS</th><th rowspan="1" colspan="1">a is CDATA</th></tr></thead><tbody><tr><td rowspan="1" colspan="1"><table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>a="
+
+xyz"</pre></td></tr></table></td><td rowspan="1" colspan="1"><code>x y z</code></td><td rowspan="1" colspan="1"><code>#x20 #x20 x y z</code></td>
+</tr><tr><td rowspan="1" colspan="1"><table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>a="&amp;d;&amp;d;A&amp;a;&amp;a;B&amp;da;"</pre></td></tr></table></td><td rowspan="1" colspan="1"><code>A
+#x20 B</code></td><td rowspan="1" colspan="1"><code>#x20 #x20 A #x20 #x20 B #x20 #x20</code></td>
+</tr><tr><td rowspan="1" colspan="1"><table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>a=
+"&amp;#xd;&amp;#xd;A&amp;#xa;&amp;#xa;B&amp;#xd;&amp;#xa;"</pre></td></tr></table></td><td rowspan="1" colspan="1"><code>#xD
+#xD A #xA #xA B #xD #xA</code></td><td rowspan="1" colspan="1"><code>#xD #xD A #xA #xA B #xD #xD</code></td>
+</tr></tbody></table>
+<p>Note that the last example is invalid (but well-formed) if <code>a</code>
+is declared to be of type <b>NMTOKENS</b>.</p>
+</div>
+</div>
+<div class="div2">
+
+<h3><a name="sec-condition-sect"></a>3.4 Conditional Sections</h3>
+<p>[<a name="dt-cond-section" title="conditional section">Definition</a>:  <b>Conditional
+sections</b> are portions of the <a title="Document Type Declaration" href="#dt-doctype">document type
+declaration external subset</a> which are included in, or excluded from,
+the logical structure of the DTD based on the keyword which governs them.]</p>
+
+<h5>Conditional Section</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-conditionalSect"></a>[61]   </td><td><code>conditionalSect</code></td><td>   ::=   </td><td><code><a href="#NT-includeSect">includeSect</a> | <a href="#NT-ignoreSect">ignoreSect</a> </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-includeSect"></a>[62]   </td><td><code>includeSect</code></td><td>   ::=   </td><td><code>'&lt;![' S? 'INCLUDE' S? '[' <a href="#NT-extSubsetDecl">extSubsetDecl</a>
+']]&gt;' </code></td><xsltdebug></xsltdebug><td><i>/*  */</i></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#condsec-nesting">[VC: Proper
+Conditional Section/PE Nesting]</a></td></tr>
+<tr valign="baseline"><td><a name="NT-ignoreSect"></a>[63]   </td><td><code>ignoreSect</code></td><td>   ::=   </td><td><code>'&lt;![' S? 'IGNORE' S? '[' <a href="#NT-ignoreSectContents">ignoreSectContents</a>*
+']]&gt;'</code></td><xsltdebug></xsltdebug><td><i>/*  */</i></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#condsec-nesting">[VC: Proper
+Conditional Section/PE Nesting]</a></td></tr>
+<tr valign="baseline"><td><a name="NT-ignoreSectContents"></a>[64]   </td><td><code>ignoreSectContents</code></td><td>   ::=   </td><td><code><a href="#NT-Ignore">Ignore</a> ('&lt;![' <a href="#NT-ignoreSectContents">ignoreSectContents</a> ']]&gt;' <a href="#NT-Ignore">Ignore</a>)*</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Ignore"></a>[65]   </td><td><code>Ignore</code></td><td>   ::=   </td><td><code><a href="#NT-Char">Char</a>* - (<a href="#NT-Char">Char</a>*
+('&lt;![' | ']]&gt;') <a href="#NT-Char">Char</a>*) </code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<div class="constraint"><p class="prefix"><a name="condsec-nesting"></a><b>Validity constraint: Proper
+Conditional Section/PE Nesting</b></p><p>If any of the "<code>&lt;![</code>",
+"<code>[</code>", or "<code>]]&gt;</code>" of a conditional section is contained
+in the replacement text for a parameter-entity reference, all of them must
+be contained in the same replacement text.</p>
+</div>
+<p>Like the internal and external DTD subsets, a conditional section may contain
+one or more complete declarations, comments, processing instructions, or nested
+conditional sections, intermingled with white space.</p>
+<p>If the keyword of the conditional section is <b>INCLUDE</b>, then the
+contents of the conditional section are part of the DTD. If the keyword of
+the conditional section is <b>IGNORE</b>, then the contents of the conditional
+section are not logically part of the DTD. 
+If a conditional section with a keyword of <b>INCLUDE</b> occurs within
+a larger conditional section with a keyword of <b>IGNORE</b>, both the outer
+and the inner conditional sections are ignored. The contents
+of an ignored conditional section are parsed by ignoring all characters after
+the "<code>[</code>" following the keyword, except conditional section starts
+"<code>&lt;![</code>" and ends "<code>]]&gt;</code>", until the matching conditional
+section end is found. Parameter entity references are not recognized in this
+process.</p>
+<p>If the keyword of the conditional section is a parameter-entity reference,
+the parameter entity must be replaced by its content before the processor
+decides whether to include or ignore the conditional section.</p>
+<p>An example:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY % draft 'INCLUDE' &gt;
+&lt;!ENTITY % final 'IGNORE' &gt;
+
+&lt;![%draft;[
+&lt;!ELEMENT book (comments*, title, body, supplements?)&gt;
+]]&gt;
+&lt;![%final;[
+&lt;!ELEMENT book (title, body, supplements?)&gt;
+]]&gt;</pre></td></tr></table>
+</div>
+
+</div>
+
+<div class="div1">
+
+<h2><a name="sec-physical-struct"></a>4 Physical Structures</h2>
+<p>[<a name="dt-entity" title="Entity">Definition</a>: An XML document may consist of one
+or many storage units. These
+are called <b>entities</b>; they all have <b>content</b> and are
+all (except for the <a title="Document Entity" href="#dt-docent">document entity</a> and
+the <a title="Document Type Declaration" href="#dt-doctype">external DTD subset</a>) identified by
+entity <b>name</b>.] Each XML document has one entity
+called the <a title="Document Entity" href="#dt-docent">document entity</a>, which serves
+as the starting point for the <a title="XML Processor" href="#dt-xml-proc">XML processor</a>
+and may contain the whole document.</p>
+<p>Entities may be either parsed or unparsed. [<a name="dt-parsedent" title="Text Entity">Definition</a>: A <b>parsed
+entity's</b> contents are referred to as its <a title="Replacement Text" href="#dt-repltext">replacement
+text</a>; this <a title="Text" href="#dt-text">text</a> is considered an
+integral part of the document.]</p>
+<p>[<a name="dt-unparsed" title="Unparsed Entity">Definition</a>: An <b>unparsed entity</b>
+is a resource whose contents may or may not be <a title="Text" href="#dt-text">text</a>,
+and if text, may
+be other than XML. Each unparsed entity has an associated <a title="Notation" href="#dt-notation">notation</a>, identified by name. Beyond a requirement
+that an XML processor make the identifiers for the entity and notation available
+to the application, XML places no constraints on the contents of unparsed
+entities.]</p>
+<p>Parsed entities are invoked by name using entity references; unparsed entities
+by name, given in the value of <b>ENTITY</b> or <b>ENTITIES</b> attributes.</p>
+<p>[<a name="gen-entity" title="general entity">Definition</a>: <b>General entities</b>
+are entities for use within the document content. In this specification, general
+entities are sometimes referred to with the unqualified term <em>entity</em>
+when this leads to no ambiguity.] [<a name="dt-PE" title="Parameter entity">Definition</a>: <b>Parameter
+entities</b> are parsed entities for use within the DTD.]
+These two types of entities use different forms of reference and are recognized
+in different contexts. Furthermore, they occupy different namespaces; a parameter
+entity and a general entity with the same name are two distinct entities.</p>
+<div class="div2">
+
+<h3><a name="sec-references"></a>4.1 Character and Entity References</h3>
+<p>[<a name="dt-charref" title="Character Reference">Definition</a>:  A <b>character
+reference</b> refers to a specific character in the ISO/IEC 10646 character
+set, for example one not directly accessible from available input devices.]</p>
+
+<h5>Character Reference</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-CharRef"></a>[66]   </td><td><code>CharRef</code></td><td>   ::=   </td><td><code>'&amp;#' [0-9]+ ';' </code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| '&amp;#x' [0-9a-fA-F]+ ';'</code></td><td><a href="#wf-Legalchar">[WFC: Legal Character]</a></td></tr></tbody></table>
+<div class="constraint"><p class="prefix"><a name="wf-Legalchar"></a><b>Well-formedness constraint: Legal Character</b></p><p>Characters referred
+to using character references must match the production for <a title="" href="#NT-Char">Char</a>.</p>
+</div>
+<p>If the character reference begins with "<code>&amp;#x</code>",
+the digits and letters up to the terminating <code>;</code> provide a hexadecimal
+representation of the character's code point in ISO/IEC 10646. If it begins
+just with "<code>&amp;#</code>", the digits up to the terminating <code>;</code>
+provide a decimal representation of the character's code point.</p>
+<p>[<a name="dt-entref" title="Entity Reference">Definition</a>: An <b>entity reference</b>
+refers to the content of a named entity.] [<a name="dt-GERef" title="General Entity Reference">Definition</a>: References to parsed general entities use
+ampersand (<code>&amp;</code>) and semicolon (<code>;</code>) as delimiters.] [<a name="dt-PERef" title="Parameter-entity reference">Definition</a>:  <b>Parameter-entity references</b>
+use percent-sign (<code>%</code>) and semicolon (<code>;</code>) as delimiters.]</p>
+
+<h5>Entity Reference</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-Reference"></a>[67]   </td><td><code>Reference</code></td><td>   ::=   </td><td><code><a href="#NT-EntityRef">EntityRef</a> | <a href="#NT-CharRef">CharRef</a></code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-EntityRef"></a>[68]   </td><td><code>EntityRef</code></td><td>   ::=   </td><td><code>'&amp;' <a href="#NT-Name">Name</a> ';'</code></td><xsltdebug></xsltdebug><td><a href="#wf-entdeclared">[WFC: Entity Declared]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#vc-entdeclared">[VC: Entity Declared]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#textent">[WFC: Parsed Entity]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#norecursion">[WFC: No Recursion]</a></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-PEReference"></a>[69]   </td><td><code>PEReference</code></td><td>   ::=   </td><td><code>'%' <a href="#NT-Name">Name</a> ';'</code></td><xsltdebug></xsltdebug><td><a href="#vc-entdeclared">[VC: Entity Declared]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#norecursion">[WFC: No Recursion]</a></td></tr><tr valign="baseline"><td></td><td></td><td></td><td></td><td><a href="#indtd">[WFC: In DTD]</a></td></tr></tbody></table>
+<div class="constraint"><p class="prefix"><a name="wf-entdeclared"></a><b>Well-formedness constraint: Entity Declared</b></p><p>In a document
+without any DTD, a document with only an internal DTD subset which contains
+no parameter entity references, or a document with "<code>standalone='yes'</code>", for
+an entity reference that does not occur within the external subset or a parameter
+entity, the <a href="#NT-Name">Name</a> given in the entity reference must <a title="match" href="#dt-match">match</a> that in an <a href="#sec-entity-decl"><cite>entity
+declaration</cite></a> that does not occur within the external subset or a
+parameter entity, except that well-formed documents need not declare
+any of the following entities: <code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>. The
+declaration of a general entity must precede any reference to it which appears
+in a default value in an attribute-list declaration.</p>
+<p>Note that if entities are declared in the external subset or in external
+parameter entities, a non-validating processor is <a href="#include-if-valid"><cite>not
+obligated to</cite></a> read and process their declarations; for such documents,
+the rule that an entity must be declared is a well-formedness constraint only
+if <a href="#sec-rmd"><cite>standalone='yes'</cite></a>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="vc-entdeclared"></a><b>Validity constraint: Entity Declared</b></p><p>In a document with
+an external subset or external parameter entities with "<code>standalone='no'</code>",
+the <a href="#NT-Name">Name</a> given in the entity reference must <a title="match" href="#dt-match">match</a> that in an <a href="#sec-entity-decl"><cite>entity
+declaration</cite></a>. For interoperability, valid documents should declare
+the entities <code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>, in the form specified in <a href="#sec-predefined-ent"><b>4.6 Predefined Entities</b></a>.
+The declaration of a parameter entity must precede any reference to it. Similarly,
+the declaration of a general entity must precede any attribute-list
+declaration containing a default value with a direct or indirect reference
+to that general entity.</p>
+</div>
+
+<div class="constraint"><p class="prefix"><a name="textent"></a><b>Well-formedness constraint: Parsed Entity</b></p><p>An entity reference must
+not contain the name of an <a title="Unparsed Entity" href="#dt-unparsed">unparsed entity</a>.
+Unparsed entities may be referred to only in <a title="Attribute Value" href="#dt-attrval">attribute
+values</a> declared to be of type <b>ENTITY</b> or <b>ENTITIES</b>.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="norecursion"></a><b>Well-formedness constraint: No Recursion</b></p><p>A parsed entity must
+not contain a recursive reference to itself, either directly or indirectly.</p>
+</div>
+<div class="constraint"><p class="prefix"><a name="indtd"></a><b>Well-formedness constraint: In DTD</b></p><p>Parameter-entity references may
+only appear in the <a title="Document Type Declaration" href="#dt-doctype">DTD</a>.</p>
+</div>
+<p>Examples of character and entity references:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>Type &lt;key&gt;less-than&lt;/key&gt; (&amp;#x3C;) to save options.
+This document was prepared on &amp;docdate; and
+is classified &amp;security-level;.</pre></td></tr></table>
+<p>Example of a parameter-entity reference:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!-- declare the parameter entity "ISOLat2"... --&gt;
+&lt;!ENTITY % ISOLat2
+         SYSTEM "http://www.xml.com/iso/isolat2-xml.entities" &gt;
+&lt;!-- ... now reference it. --&gt;
+%ISOLat2;</pre></td></tr></table>
+</div>
+<div class="div2">
+
+<h3><a name="sec-entity-decl"></a>4.2 Entity Declarations</h3>
+<p>[<a name="dt-entdecl" title="entity declaration">Definition</a>:  Entities are declared
+thus:]</p>
+
+<h5>Entity Declaration</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-EntityDecl"></a>[70]   </td><td><code>EntityDecl</code></td><td>   ::=   </td><td><code><a href="#NT-GEDecl">GEDecl</a> | <a href="#NT-PEDecl">PEDecl</a></code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-GEDecl"></a>[71]   </td><td><code>GEDecl</code></td><td>   ::=   </td><td><code>'&lt;!ENTITY' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-S">S</a> <a href="#NT-EntityDef">EntityDef</a> <a href="#NT-S">S</a>?
+'&gt;'</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-PEDecl"></a>[72]   </td><td><code>PEDecl</code></td><td>   ::=   </td><td><code>'&lt;!ENTITY' <a href="#NT-S">S</a> '%' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-S">S</a> <a href="#NT-PEDef">PEDef</a> <a href="#NT-S">S</a>? '&gt;'</code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-EntityDef"></a>[73]   </td><td><code>EntityDef</code></td><td>   ::=   </td><td><code><a href="#NT-EntityValue">EntityValue</a> | (<a href="#NT-ExternalID">ExternalID</a> <a href="#NT-NDataDecl">NDataDecl</a>?)</code></td><xsltdebug></xsltdebug></tr>
+
+<tr valign="baseline"><td><a name="NT-PEDef"></a>[74]   </td><td><code>PEDef</code></td><td>   ::=   </td><td><code><a href="#NT-EntityValue">EntityValue</a> | <a href="#NT-ExternalID">ExternalID</a></code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>The <a href="#NT-Name">Name</a> identifies the entity in an <a title="Entity Reference" href="#dt-entref">entity
+reference</a> or, in the case of an unparsed entity, in the value of
+an <b>ENTITY</b> or <b>ENTITIES</b> attribute. If the same entity is declared
+more than once, the first declaration encountered is binding; at user option,
+an XML processor may issue a warning if entities are declared multiple times.</p>
+<div class="div3">
+
+<h4><a name="sec-internal-ent"></a>4.2.1 Internal Entities</h4>
+<p>[<a name="dt-internent" title="Internal Entity Replacement Text">Definition</a>: If the
+entity definition is an <a href="#NT-EntityValue">EntityValue</a>, the defined
+entity is called an <b>internal entity</b>. There is no separate physical
+storage object, and the content of the entity is given in the declaration.]
+Note that some processing of entity and character references in the <a title="Literal Entity Value" href="#dt-litentval">literal entity value</a> may be required to produce
+the correct <a title="Replacement Text" href="#dt-repltext">replacement text</a>: see <a href="#intern-replacement"><b>4.5 Construction of Internal Entity Replacement Text</b></a>.</p>
+<p>An internal entity is a <a title="Text Entity" href="#dt-parsedent">parsed entity</a>.</p>
+<p>Example of an internal entity declaration:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY Pub-Status "This is a pre-release of the
+ specification."&gt;</pre></td></tr></table>
+</div>
+<div class="div3">
+
+<h4><a name="sec-external-ent"></a>4.2.2 External Entities</h4>
+<p>[<a name="dt-extent" title="External Entity">Definition</a>: If the entity is not internal,
+it is an <b>external entity</b>, declared as follows:]</p>
+
+<h5>External Entity Declaration</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-ExternalID"></a>[75]   </td><td><code>ExternalID</code></td><td>   ::=   </td><td><code>'SYSTEM' <a href="#NT-S">S</a> <a href="#NT-SystemLiteral">SystemLiteral</a></code></td><xsltdebug></xsltdebug></tr><tr valign="baseline"><td></td><td></td><td></td><td><code>| 'PUBLIC' <a href="#NT-S">S</a> <a href="#NT-PubidLiteral">PubidLiteral</a> <a href="#NT-S">S</a> <a href="#NT-SystemLiteral">SystemLiteral</a> </code></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-NDataDecl"></a>[76]   </td><td><code>NDataDecl</code></td><td>   ::=   </td><td><code><a href="#NT-S">S</a> 'NDATA' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a></code></td><xsltdebug></xsltdebug><td><a href="#not-declared">[VC: Notation Declared]</a></td></tr></tbody></table>
+<p>If the <a href="#NT-NDataDecl">NDataDecl</a> is present, this is a general <a title="Unparsed Entity" href="#dt-unparsed">unparsed entity</a>; otherwise it is a parsed entity.</p>
+<div class="constraint"><p class="prefix"><a name="not-declared"></a><b>Validity constraint: Notation Declared</b></p><p>The <a href="#NT-Name">Name</a>
+must match the declared name of a <a title="Notation" href="#dt-notation">notation</a>.</p>
+</div>
+<p>[<a name="dt-sysid" title="System Identifier">Definition</a>: The <a href="#NT-SystemLiteral">SystemLiteral</a> is called the entity's <b>system
+identifier</b>. It is a URI
+reference
+(as defined in <a href="#rfc2396">[IETF RFC 2396]</a>, updated by <a href="#rfc2732">[IETF RFC 2732]</a>), meant
+to be dereferenced to obtain input for the XML processor to construct the
+entity's replacement text.] It is an error for a fragment identifier
+(beginning with a <code>#</code> character) to be part of a system identifier.
+Unless otherwise provided by information outside the scope of this specification
+(e.g. a special XML element type defined by a particular DTD, or a processing
+instruction defined by a particular application specification), relative URIs
+are relative to the location of the resource within which the entity declaration
+occurs. A URI might thus be relative to the <a title="Document Entity" href="#dt-docent">document
+entity</a>, to the entity containing the <a title="Document Type Declaration" href="#dt-doctype">external
+DTD subset</a>, or to some other <a title="External Entity" href="#dt-extent">external parameter
+entity</a>.</p>
+<p>URI
+references require encoding and escaping of certain characters. The disallowed
+characters include all non-ASCII characters, plus the excluded characters
+listed in Section 2.4 of <a href="#rfc2396">[IETF RFC 2396]</a>, except for the number sign
+(<code>#</code>) and percent sign (<code>%</code>) characters and the square
+bracket characters re-allowed in <a href="#rfc2732">[IETF RFC 2732]</a>. Disallowed characters
+must be escaped as follows:</p>
+<ol>
+<li><p>Each disallowed character is converted to UTF-8 <a href="#rfc2279">[IETF RFC 2279]</a>
+as one or more bytes.</p></li>
+<li><p>Any octets corresponding to a disallowed character are escaped with
+the URI escaping mechanism (that is, converted to <code>%</code><var>HH</var>,
+where HH is the hexadecimal notation of the byte value).</p></li>
+<li><p>The original character is replaced by the resulting character sequence.</p>
+</li>
+</ol>
+<p>[<a name="dt-pubid" title="Public identifier">Definition</a>:  In addition to a system
+identifier, an external identifier may include a <b>public identifier</b>.]
+An XML processor attempting to retrieve the entity's content may use the public
+identifier to try to generate an alternative URI reference.
+If the processor is unable to do so, it must use the URI
+reference specified in the system literal. Before a match is attempted,
+all strings of white space in the public identifier must be normalized to
+single space characters (#x20), and leading and trailing white space must
+be removed.</p>
+<p>Examples of external entity declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY open-hatch
+         SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml"&gt;
+&lt;!ENTITY open-hatch
+         PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN"
+         "http://www.textuality.com/boilerplate/OpenHatch.xml"&gt;
+&lt;!ENTITY hatch-pic
+         SYSTEM "../grafix/OpenHatch.gif"
+         NDATA gif &gt;</pre></td></tr></table>
+</div>
+</div>
+<div class="div2">
+
+<h3><a name="TextEntities"></a>4.3 Parsed Entities</h3>
+<div class="div3">
+
+<h4><a name="sec-TextDecl"></a>4.3.1 The Text Declaration</h4>
+<p>External parsed entities should each begin with a <b>text declaration</b>.</p>
+
+<h5>Text Declaration</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-TextDecl"></a>[77]   </td><td><code>TextDecl</code></td><td>   ::=   </td><td><code>'&lt;?xml' <a href="#NT-VersionInfo">VersionInfo</a>? <a href="#NT-EncodingDecl">EncodingDecl</a> <a href="#NT-S">S</a>? '?&gt;'</code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>The text declaration must be provided literally, not by reference to a
+parsed entity. No text declaration may appear at any position other than the
+beginning of an external parsed entity. The text declaration
+in an external parsed entity is not considered part of its <a title="Replacement Text" href="#dt-repltext">replacement
+text</a>.</p>
+</div>
+<div class="div3">
+
+<h4><a name="wf-entities"></a>4.3.2 Well-Formed Parsed Entities</h4>
+<p>The document entity is well-formed if it matches the production labeled <a href="#NT-document">document</a>. An external general parsed entity is well-formed
+if it matches the production labeled <a href="#NT-extParsedEnt">extParsedEnt</a>. All
+external parameter entities are well-formed by definition.</p>
+
+<h5>Well-Formed External Parsed Entity</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-extParsedEnt"></a>[78]   </td><td><code>extParsedEnt</code></td><td>   ::=   </td><td><code><a href="#NT-TextDecl">TextDecl</a>? <a href="#NT-content">content</a></code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<p>An internal general parsed entity is well-formed if its replacement text
+matches the production labeled <a href="#NT-content">content</a>. All internal
+parameter entities are well-formed by definition.</p>
+<p>A consequence of well-formedness in entities is that the logical and physical
+structures in an XML document are properly nested; no <a title="Start-Tag" href="#dt-stag">start-tag</a>, <a title="End Tag" href="#dt-etag">end-tag</a>, <a title="Empty" href="#dt-empty">empty-element tag</a>, <a title="Element" href="#dt-element">element</a>, <a title="Comment" href="#dt-comment">comment</a>, <a title="Processing instruction" href="#dt-pi">processing instruction</a>, <a title="Character Reference" href="#dt-charref">character
+reference</a>, or <a title="Entity Reference" href="#dt-entref">entity reference</a>
+can begin in one entity and end in another.</p>
+</div>
+<div class="div3">
+
+<h4><a name="charencoding"></a>4.3.3 Character Encoding in Entities</h4>
+<p>Each external parsed entity in an XML document may use a different encoding
+for its characters. All XML processors must be able to read entities in both
+the UTF-8 and UTF-16 encodings. The terms "UTF-8"
+and "UTF-16" in this specification do not apply to character
+encodings with any other labels, even if the encodings or labels are very
+similar to UTF-8 or UTF-16.</p>
+<p>Entities encoded in UTF-16 must begin with the Byte Order Mark described
+by Annex
+F of <a href="#ISO10646">[ISO/IEC 10646]</a>, Annex H of <a href="#ISO10646-2000">[ISO/IEC 10646-2000]</a>, section
+2.4 of <a href="#Unicode">[Unicode]</a>, and section 2.7 of <a href="#Unicode3">[Unicode3]</a>
+(the ZERO WIDTH NO-BREAK SPACE character, #xFEFF). This is an encoding signature,
+not part of either the markup or the character data of the XML document. XML
+processors must be able to use this character to differentiate between UTF-8
+and UTF-16 encoded documents.</p>
+<p>Although an XML processor is required to read only entities in the UTF-8
+and UTF-16 encodings, it is recognized that other encodings are used around
+the world, and it may be desired for XML processors to read entities that
+use them. In
+the absence of external character encoding information (such as MIME headers),
+parsed entities which are stored in an encoding other than UTF-8 or UTF-16
+must begin with a text declaration (see <a href="#sec-TextDecl"><b>4.3.1 The Text Declaration</b></a>) containing
+an encoding declaration:</p>
+
+<h5>Encoding Declaration</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-EncodingDecl"></a>[80]   </td><td><code>EncodingDecl</code></td><td>   ::=   </td><td><code><a href="#NT-S">S</a> 'encoding' <a href="#NT-Eq">Eq</a>
+('"' <a href="#NT-EncName">EncName</a> '"' | "'" <a href="#NT-EncName">EncName</a>
+"'" ) </code></td><xsltdebug></xsltdebug></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-EncName"></a>[81]   </td><td><code>EncName</code></td><td>   ::=   </td><td><code>[A-Za-z] ([A-Za-z0-9._] | '-')*</code></td><xsltdebug></xsltdebug><td><i>/* Encoding
+name contains only Latin characters */</i></td></tr></tbody></table>
+<p>In the <a title="Document Entity" href="#dt-docent">document entity</a>, the encoding
+declaration is part of the <a title="XML Declaration" href="#dt-xmldecl">XML declaration</a>.
+The <a href="#NT-EncName">EncName</a> is the name of the encoding used.</p>
+
+<p>In an encoding declaration, the values "<code>UTF-8</code>", "<code>UTF-16</code>", "<code>ISO-10646-UCS-2</code>", and "<code>ISO-10646-UCS-4</code>" should be used
+for the various encodings and transformations of Unicode / ISO/IEC 10646,
+the values "<code>ISO-8859-1</code>", "<code>ISO-8859-2</code>",
+... "<code>ISO-8859-</code><var>n</var>" (where <var>n</var>
+is the part number) should be used for the parts of ISO 8859, and
+the values "<code>ISO-2022-JP</code>", "<code>Shift_JIS</code>",
+and "<code>EUC-JP</code>" should be used for the various encoded
+forms of JIS X-0208-1997. It
+is recommended that character encodings registered (as <em>charset</em>s)
+with the Internet Assigned Numbers Authority <a href="#IANA">[IANA-CHARSETS]</a>,
+other than those just listed, be referred to using their registered names;
+other encodings should use names starting with an "x-" prefix.
+XML processors should match character encoding names in a case-insensitive
+way and should either interpret an IANA-registered name as the encoding registered
+at IANA for that name or treat it as unknown (processors are, of course, not
+required to support all IANA-registered encodings).</p>
+<p>In the absence of information provided by an external transport protocol
+(e.g. HTTP or MIME), it is an <a title="Error" href="#dt-error">error</a> for
+an entity including an encoding declaration to be presented to the XML processor
+in an encoding other than that named in the declaration, or for an entity which begins with neither a Byte Order Mark
+nor an encoding declaration to use an encoding other than UTF-8. Note that
+since ASCII is a subset of UTF-8, ordinary ASCII entities do not strictly
+need an encoding declaration.</p>
+<p>It
+is a
+fatal error for a <a href="#NT-TextDecl">TextDecl</a> to occur other
+than at the beginning of an external entity.</p>
+<p>It is a <a title="Fatal Error" href="#dt-fatal">fatal error</a> when an XML processor
+encounters an entity with an encoding that it is unable to process. It
+is a fatal error if an XML entity is determined (via default, encoding declaration,
+or higher-level protocol) to be in a certain encoding but contains octet sequences
+that are not legal in that encoding. It is also a fatal error if an XML entity
+contains no encoding declaration and its content is not legal UTF-8 or UTF-16.</p>
+<p>Examples of text
+declarations containing encoding declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;?xml encoding='UTF-8'?&gt;
+&lt;?xml encoding='EUC-JP'?&gt;</pre></td></tr></table>
+</div>
+</div>
+<div class="div2">
+
+<h3><a name="entproc"></a>4.4 XML Processor Treatment of Entities and References</h3>
+<p>The table below summarizes the contexts in which character references,
+entity references, and invocations of unparsed entities might appear and the
+required behavior of an <a title="XML Processor" href="#dt-xml-proc">XML processor</a>
+in each case. The labels in the leftmost column describe the recognition context: </p><dl>
+<dt class="label">Reference in Content</dt>
+<dd>
+<p>as a reference anywhere after the <a title="Start-Tag" href="#dt-stag">start-tag</a>
+and before the <a title="End Tag" href="#dt-etag">end-tag</a> of an element; corresponds
+to the nonterminal <a href="#NT-content">content</a>.</p>
+</dd>
+<dt class="label">Reference in Attribute Value</dt>
+<dd>
+<p>as a reference within either the value of an attribute in a <a title="Start-Tag" href="#dt-stag">start-tag</a>,
+or a default value in an <a title="Attribute-List Declaration" href="#dt-attdecl">attribute declaration</a>;
+corresponds to the nonterminal <a href="#NT-AttValue">AttValue</a>.</p>
+</dd>
+<dt class="label">Occurs as Attribute Value</dt>
+<dd>
+<p>as a <a href="#NT-Name">Name</a>, not a reference, appearing either as
+the value of an attribute which has been declared as type <b>ENTITY</b>,
+or as one of the space-separated tokens in the value of an attribute which
+has been declared as type <b>ENTITIES</b>.</p>
+</dd>
+<dt class="label">Reference in Entity Value</dt>
+<dd>
+<p>as a reference within a parameter or internal entity's <a title="Literal Entity Value" href="#dt-litentval">literal
+entity value</a> in the entity's declaration; corresponds to the nonterminal <a href="#NT-EntityValue">EntityValue</a>.</p>
+</dd>
+<dt class="label">Reference in DTD</dt>
+<dd>
+<p>as
+a reference within either the internal or external subsets of the <a title="Document Type Declaration" href="#dt-doctype">DTD</a>, but outside of an <a href="#NT-EntityValue">EntityValue</a>, <a href="#NT-AttValue">AttValue</a>, <a href="#NT-PI">PI</a>, <a href="#NT-Comment">Comment</a>, <a href="#NT-SystemLiteral">SystemLiteral</a>, <a href="#NT-PubidLiteral">PubidLiteral</a>,
+or the contents of an ignored conditional section (see <a href="#sec-condition-sect"><b>3.4 Conditional Sections</b></a>).</p>
+<p>.</p>
+</dd>
+</dl><p></p>
+<table border="1" frame="border" cellpadding="7"><tbody align="center"><tr>
+<td rowspan="2" colspan="1"></td><td colspan="4" align="center" valign="bottom" rowspan="1">Entity
+Type</td><td rowspan="2" align="center" colspan="1">Character</td></tr><tr align="center" valign="bottom"><td rowspan="1" colspan="1">Parameter</td><td rowspan="1" colspan="1">Internal General</td><td rowspan="1" colspan="1">External Parsed
+General</td><td rowspan="1" colspan="1">Unparsed</td></tr><tr align="center" valign="middle"><td align="right" rowspan="1" colspan="1">Reference
+in Content</td><td rowspan="1" colspan="1"><a href="#not-recognized"><cite>Not recognized</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td><td rowspan="1" colspan="1"><a href="#include-if-valid"><cite>Included
+if validating</cite></a></td><td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td></tr><tr align="center" valign="middle"><td align="right" rowspan="1" colspan="1">Reference in Attribute Value</td><td rowspan="1" colspan="1"><a href="#not-recognized"><cite>Not recognized</cite></a></td><td rowspan="1" colspan="1"><a href="#inliteral"><cite>Included
+in literal</cite></a></td><td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td><td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td>
+</tr><tr align="center" valign="middle"><td align="right" rowspan="1" colspan="1">Occurs as Attribute
+Value</td><td rowspan="1" colspan="1"><a href="#not-recognized"><cite>Not recognized</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td><td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td><td rowspan="1" colspan="1"><a href="#notify"><cite>Notify</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#not-recognized"><cite>Not recognized</cite></a></td></tr><tr align="center" valign="middle"><td align="right" rowspan="1" colspan="1">Reference in EntityValue</td><td rowspan="1" colspan="1"><a href="#inliteral"><cite>Included in literal</cite></a></td><td rowspan="1" colspan="1"><a href="#bypass"><cite>Bypassed</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#bypass"><cite>Bypassed</cite></a></td><td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td></tr><tr align="center" valign="middle"><td align="right" rowspan="1" colspan="1">Reference in DTD</td><td rowspan="1" colspan="1"><a href="#as-PE"><cite>Included
+as PE</cite></a></td><td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td><td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td>
+<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td></tr></tbody></table>
+<div class="div3">
+
+<h4><a name="not-recognized"></a>4.4.1 Not Recognized</h4>
+<p>Outside the DTD, the <code>%</code> character has no special significance;
+thus, what would be parameter entity references in the DTD are not recognized
+as markup in <a href="#NT-content">content</a>. Similarly, the names of unparsed
+entities are not recognized except when they appear in the value of an appropriately
+declared attribute.</p>
+</div>
+<div class="div3">
+
+<h4><a name="included"></a>4.4.2 Included</h4>
+<p>[<a name="dt-include" title="Include">Definition</a>: An entity is <b>included</b>
+when its <a title="Replacement Text" href="#dt-repltext">replacement text</a> is retrieved
+and processed, in place of the reference itself, as though it were part of
+the document at the location the reference was recognized.] The replacement
+text may contain both <a title="Character Data" href="#dt-chardata">character data</a>
+and (except for parameter entities) <a title="Markup" href="#dt-markup">markup</a>,
+which must be recognized in the usual way. (The string "<code>AT&amp;amp;T;</code>"
+expands to "<code>AT&amp;T;</code>" and the remaining ampersand
+is not recognized as an entity-reference delimiter.) A character reference
+is <b>included</b> when the indicated character is processed in place
+of the reference itself. </p>
+</div>
+<div class="div3">
+
+<h4><a name="include-if-valid"></a>4.4.3 Included If Validating</h4>
+<p>When an XML processor recognizes a reference to a parsed entity, in order
+to <a title="Validity" href="#dt-valid">validate</a> the document, the processor
+must <a title="Include" href="#dt-include">include</a> its replacement text. If
+the entity is external, and the processor is not attempting to validate the
+XML document, the processor <a title="May" href="#dt-may">may</a>, but need
+not, include the entity's replacement text. If a non-validating processor
+does not include the replacement text, it must inform the application that
+it recognized, but did not read, the entity.</p>
+<p>This rule is based on the recognition that the automatic inclusion provided
+by the SGML and XML entity mechanism, primarily designed to support modularity
+in authoring, is not necessarily appropriate for other applications, in particular
+document browsing. Browsers, for example, when encountering an external parsed
+entity reference, might choose to provide a visual indication of the entity's
+presence and retrieve it for display only on demand.</p>
+</div>
+<div class="div3">
+
+<h4><a name="forbidden"></a>4.4.4 Forbidden</h4>
+<p>The following are forbidden, and constitute <a title="Fatal Error" href="#dt-fatal">fatal</a>
+errors:</p>
+<ul>
+<li><p>the appearance of a reference to an <a title="Unparsed Entity" href="#dt-unparsed">unparsed
+entity</a>.</p></li>
+<li><p>the appearance of any character or general-entity reference in the
+DTD except within an <a href="#NT-EntityValue">EntityValue</a> or <a href="#NT-AttValue">AttValue</a>.</p>
+</li>
+<li><p>a reference to an external entity in an attribute value.</p></li>
+</ul>
+</div>
+<div class="div3">
+
+<h4><a name="inliteral"></a>4.4.5 Included in Literal</h4>
+<p>When an <a title="Entity Reference" href="#dt-entref">entity reference</a> appears in
+an attribute value, or a parameter entity reference appears in a literal entity
+value, its <a title="Replacement Text" href="#dt-repltext">replacement text</a> is processed
+in place of the reference itself as though it were part of the document at
+the location the reference was recognized, except that a single or double
+quote character in the replacement text is always treated as a normal data
+character and will not terminate the literal. For example, this is well-formed:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!--  --&gt;
+&lt;!ENTITY % YN '"Yes"' &gt;
+&lt;!ENTITY WhatHeSaid "He said %YN;" &gt;</pre></td></tr></table>
+<p>while this is not:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY EndAttr "27'" &gt;
+&lt;element attribute='a-&amp;EndAttr;&gt;</pre></td></tr></table>
+</div>
+<div class="div3">
+
+<h4><a name="notify"></a>4.4.6 Notify</h4>
+<p>When the name of an <a title="Unparsed Entity" href="#dt-unparsed">unparsed entity</a>
+appears as a token in the value of an attribute of declared type <b>ENTITY</b>
+or <b>ENTITIES</b>, a validating processor must inform the application of
+the <a title="System Identifier" href="#dt-sysid">system</a> and <a title="Public identifier" href="#dt-pubid">public</a>
+(if any) identifiers for both the entity and its associated <a title="Notation" href="#dt-notation">notation</a>.</p>
+</div>
+<div class="div3">
+
+<h4><a name="bypass"></a>4.4.7 Bypassed</h4>
+<p>When a general entity reference appears in the <a href="#NT-EntityValue">EntityValue</a>
+in an entity declaration, it is bypassed and left as is.</p>
+</div>
+<div class="div3">
+
+<h4><a name="as-PE"></a>4.4.8 Included as PE</h4>
+<p>Just as with external parsed entities, parameter entities need only be <a href="#include-if-valid"><cite>included if validating</cite></a>. When a parameter-entity
+reference is recognized in the DTD and included, its <a title="Replacement Text" href="#dt-repltext">replacement
+text</a> is enlarged by the attachment of one leading and one following
+space (#x20) character; the intent is to constrain the replacement text of
+parameter entities to contain an integral number of grammatical tokens in
+the DTD. This
+behavior does not apply to parameter entity references within entity values;
+these are described in <a href="#inliteral"><b>4.4.5 Included in Literal</b></a>.</p>
+</div>
+</div>
+<div class="div2">
+
+<h3><a name="intern-replacement"></a>4.5 Construction of Internal Entity Replacement Text</h3>
+<p>In discussing the treatment of internal entities, it is useful to distinguish
+two forms of the entity's value. [<a name="dt-litentval" title="Literal Entity Value">Definition</a>: The <b>literal
+entity value</b> is the quoted string actually present in the entity declaration,
+corresponding to the non-terminal <a href="#NT-EntityValue">EntityValue</a>.] [<a name="dt-repltext" title="Replacement Text">Definition</a>: The <b>replacement text</b>
+is the content of the entity, after replacement of character references and
+parameter-entity references.]</p>
+<p>The literal entity value as given in an internal entity declaration (<a href="#NT-EntityValue">EntityValue</a>) may contain character, parameter-entity,
+and general-entity references. Such references must be contained entirely
+within the literal entity value. The actual replacement text that is <a title="Include" href="#dt-include">included</a> as described above must contain the <em>replacement
+text</em> of any parameter entities referred to, and must contain the character
+referred to, in place of any character references in the literal entity value;
+however, general-entity references must be left as-is, unexpanded. For example,
+given the following declarations:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY % pub    "&amp;#xc9;ditions Gallimard" &gt;
+&lt;!ENTITY   rights "All rights reserved" &gt;
+&lt;!ENTITY   book   "La Peste: Albert Camus,
+&amp;#xA9; 1947 %pub;. &amp;rights;" &gt;</pre></td></tr></table>
+<p>then the replacement text for the entity "<code>book</code>"
+is:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>La Peste: Albert Camus,
+© 1947 Éditions Gallimard. &amp;rights;</pre></td></tr></table>
+<p>The general-entity reference "<code>&amp;rights;</code>" would
+be expanded should the reference "<code>&amp;book;</code>" appear
+in the document's content or an attribute value.</p>
+<p>These simple rules may have complex interactions; for a detailed discussion
+of a difficult example, see <a href="#sec-entexpand"><b>D Expansion of Entity and Character References</b></a>.</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-predefined-ent"></a>4.6 Predefined Entities</h3>
+<p>[<a name="dt-escape" title="escape">Definition</a>: Entity and character references can
+both be used to <b>escape</b> the left angle bracket, ampersand, and
+other delimiters. A set of general entities (<code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>) is specified for
+this purpose. Numeric character references may also be used; they are expanded
+immediately when recognized and must be treated as character data, so the
+numeric character references "<code>&amp;#60;</code>" and "<code>&amp;#38;</code>"
+may be used to escape <code>&lt;</code> and <code>&amp;</code> when they occur
+in character data.]</p>
+<p>All XML processors must recognize these entities whether they are declared
+or not. <a title="For interoperability" href="#dt-interop">For interoperability</a>, valid XML
+documents should declare these entities, like any others, before using them. If
+the entities <code>lt</code> or <code>amp</code> are declared, they must be
+declared as internal entities whose replacement text is a character reference
+to the respective
+character (less-than sign or ampersand) being escaped; the double
+escaping is required for these entities so that references to them produce
+a well-formed result. If the entities <code>gt</code>, <code>apos</code>,
+or <code>quot</code> are declared, they must be declared as internal entities
+whose replacement text is the single character being escaped (or a character
+reference to that character; the double escaping here is unnecessary but harmless).
+For example:</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY lt     "&amp;#38;#60;"&gt;
+&lt;!ENTITY gt     "&amp;#62;"&gt;
+&lt;!ENTITY amp    "&amp;#38;#38;"&gt;
+&lt;!ENTITY apos   "&amp;#39;"&gt;
+&lt;!ENTITY quot   "&amp;#34;"&gt;</pre></td></tr></table>
+
+</div>
+<div class="div2">
+
+<h3><a name="Notations"></a>4.7 Notation Declarations</h3>
+<p>[<a name="dt-notation" title="Notation">Definition</a>: <b>Notations</b> identify
+by name the format of <a title="External Entity" href="#dt-extent">unparsed entities</a>,
+the format of elements which bear a notation attribute, or the application
+to which a <a title="Processing instruction" href="#dt-pi">processing instruction</a> is addressed.]</p>
+<p>[<a name="dt-notdecl" title="Notation Declaration">Definition</a>:  <b>Notation declarations</b>
+provide a name for the notation, for use in entity and attribute-list declarations
+and in attribute specifications, and an external identifier for the notation
+which may allow an XML processor or its client application to locate a helper
+application capable of processing data in the given notation.]</p>
+
+<h5>Notation Declarations</h5><table class="scrap" summary="Scrap"><tbody><tr valign="baseline"><td><a name="NT-NotationDecl"></a>[82]   </td><td><code>NotationDecl</code></td><td>   ::=   </td><td><code>'&lt;!NOTATION' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-S">S</a> (<a href="#NT-ExternalID">ExternalID</a> | <a href="#NT-PublicID">PublicID</a>) <a href="#NT-S">S</a>? '&gt;'</code></td><xsltdebug></xsltdebug><td><a href="#UniqueNotationName">[VC: Unique
+Notation Name]</a></td></tr></tbody><tbody><tr valign="baseline"><td><a name="NT-PublicID"></a>[83]   </td><td><code>PublicID</code></td><td>   ::=   </td><td><code>'PUBLIC' <a href="#NT-S">S</a> <a href="#NT-PubidLiteral">PubidLiteral</a> </code></td><xsltdebug></xsltdebug></tr></tbody></table>
+<div class="constraint"><p class="prefix"><a name="UniqueNotationName"></a><b>Validity constraint: Unique
+Notation Name</b></p><p>Only one notation declaration can declare a given <a href="#NT-Name">Name</a>.</p>
+</div>
+<p>XML processors must provide applications with the name and external identifier(s)
+of any notation declared and referred to in an attribute value, attribute
+definition, or entity declaration. They may additionally resolve the external
+identifier into the <a title="System Identifier" href="#dt-sysid">system identifier</a>, file
+name, or other information needed to allow the application to call a processor
+for data in the notation described. (It is not an error, however, for XML
+documents to declare and refer to notations for which notation-specific applications
+are not available on the system where the XML processor or application is
+running.)</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-doc-entity"></a>4.8 Document Entity</h3>
+<p>[<a name="dt-docent" title="Document Entity">Definition</a>: The <b>document entity</b>
+serves as the root of the entity tree and a starting-point for an <a title="XML Processor" href="#dt-xml-proc">XML processor</a>.] This specification does
+not specify how the document entity is to be located by an XML processor;
+unlike other entities, the document entity has no name and might well appear
+on a processor input stream without any identification at all.</p>
+</div>
+</div>
+
+<div class="div1">
+
+<h2><a name="sec-conformance"></a>5 Conformance</h2>
+<div class="div2">
+
+<h3><a name="proc-types"></a>5.1 Validating and Non-Validating Processors</h3>
+<p>Conforming <a title="XML Processor" href="#dt-xml-proc">XML processors</a> fall into
+two classes: validating and non-validating.</p>
+<p>Validating and non-validating processors alike must report violations of
+this specification's well-formedness constraints in the content of the <a title="Document Entity" href="#dt-docent">document entity</a> and any other <a title="Text Entity" href="#dt-parsedent">parsed
+entities</a> that they read.</p>
+<p>[<a name="dt-validating" title="Validating Processor">Definition</a>: <b>Validating
+processors</b> must,
+at user option, report violations of the constraints expressed by
+the declarations in the <a title="Document Type Declaration" href="#dt-doctype">DTD</a>, and failures
+to fulfill the validity constraints given in this specification.]
+To accomplish this, validating XML processors must read and process the entire
+DTD and all external parsed entities referenced in the document.</p>
+<p>Non-validating processors are required to check only the <a title="Document Entity" href="#dt-docent">document
+entity</a>, including the entire internal DTD subset, for well-formedness. [<a name="dt-use-mdecl" title="Process Declarations">Definition</a>:  While they are not required
+to check the document for validity, they are required to <b>process</b>
+all the declarations they read in the internal DTD subset and in any parameter
+entity that they read, up to the first reference to a parameter entity that
+they do <em>not</em> read; that is to say, they must use the information
+in those declarations to <a href="#AVNormalize"><cite>normalize</cite></a>
+attribute values, <a href="#included"><cite>include</cite></a> the replacement
+text of internal entities, and supply <a href="#sec-attr-defaults"><cite>default
+attribute values</cite></a>.] Except when <code>standalone="yes"</code>, they
+must not <a title="Process Declarations" href="#dt-use-mdecl">process</a> <a title="entity declaration" href="#dt-entdecl">entity
+declarations</a> or <a title="Attribute-List Declaration" href="#dt-attdecl">attribute-list declarations</a>
+encountered after a reference to a parameter entity that is not read, since
+the entity may have contained overriding declarations.</p>
+</div>
+<div class="div2">
+
+<h3><a name="safe-behavior"></a>5.2 Using XML Processors</h3>
+<p>The behavior of a validating XML processor is highly predictable; it must
+read every piece of a document and report all well-formedness and validity
+violations. Less is required of a non-validating processor; it need not read
+any part of the document other than the document entity. This has two effects
+that may be important to users of XML processors:</p>
+<ul>
+<li><p>Certain well-formedness errors, specifically those that require reading
+external entities, may not be detected by a non-validating processor. Examples
+include the constraints entitled <a href="#wf-entdeclared"><cite>Entity Declared</cite></a>, <a href="#textent"><cite>Parsed Entity</cite></a>, and <a href="#norecursion"><cite>No
+Recursion</cite></a>, as well as some of the cases described as <a href="#forbidden"><cite>forbidden</cite></a> in <a href="#entproc"><b>4.4 XML Processor Treatment of Entities and References</b></a>.</p></li>
+<li><p>The information passed from the processor to the application may
+vary, depending on whether the processor reads parameter and external entities.
+For example, a non-validating processor may not <a href="#AVNormalize"><cite>normalize</cite></a>
+attribute values, <a href="#included"><cite>include</cite></a> the replacement
+text of internal entities, or supply <a href="#sec-attr-defaults"><cite>default
+attribute values</cite></a>, where doing so depends on having read declarations
+in external or parameter entities.</p></li>
+</ul>
+<p>For maximum reliability in interoperating between different XML processors,
+applications which use non-validating processors should not rely on any behaviors
+not required of such processors. Applications which require facilities such
+as the use of default attributes or internal entities which are declared in
+external entities should use validating XML processors.</p>
+</div>
+</div>
+<div class="div1">
+
+<h2><a name="sec-notation"></a>6 Notation</h2>
+<p>The formal grammar of XML is given in this specification using a simple
+Extended Backus-Naur Form (EBNF) notation. Each rule in the grammar defines
+one symbol, in the form</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>symbol ::= expression</pre></td></tr></table>
+<p>Symbols are written with an initial capital letter if they are the
+start symbol of a regular language, otherwise with an initial lower
+case letter. Literal strings are quoted.</p>
+<p>Within the expression on the right-hand side of a rule, the following expressions
+are used to match strings of one or more characters: </p><dl>
+<dt class="label"><code>#xN</code></dt>
+<dd>
+<p>where <code>N</code> is a hexadecimal integer, the expression matches the
+character in ISO/IEC 10646 whose canonical (UCS-4) code value, when interpreted
+as an unsigned binary number, has the value indicated. The number of leading
+zeros in the <code>#xN</code> form is insignificant; the number of leading
+zeros in the corresponding code value is governed by the character encoding
+in use and is not significant for XML.</p>
+</dd>
+<dt class="label"><code>[a-zA-Z]</code>, <code>[#xN-#xN]</code></dt>
+<dd>
+<p>matches any <a href="#NT-Char">Char</a> with a value in the range(s) indicated (inclusive).</p>
+</dd>
+<dt class="label"><code>[abc]</code>, <code>[#xN#xN#xN]</code></dt>
+<dd>
+<p>matches any <a href="#NT-Char">Char</a> with a value among the characters
+enumerated. Enumerations and ranges can be mixed in one set of brackets.</p>
+</dd>
+<dt class="label"><code>[^a-z]</code>, <code>[^#xN-#xN]</code></dt>
+<dd>
+<p>matches any <a href="#NT-Char">Char</a> with a value <em>outside</em> the range
+indicated.</p>
+</dd>
+<dt class="label"><code>[^abc]</code>, <code>[^#xN#xN#xN]</code></dt>
+<dd>
+<p>matches any <a href="#NT-Char">Char</a> with a value not among the characters given. Enumerations
+and ranges of forbidden values can be mixed in one set of brackets.</p>
+</dd>
+<dt class="label"><code>"string"</code></dt>
+<dd>
+<p>matches a literal string <a title="match" href="#dt-match">matching</a> that
+given inside the double quotes.</p>
+</dd>
+<dt class="label"><code>'string'</code></dt>
+<dd>
+<p>matches a literal string <a title="match" href="#dt-match">matching</a> that
+given inside the single quotes.</p>
+</dd>
+</dl><p> These symbols may be combined to match more complex patterns as follows,
+where <code>A</code> and <code>B</code> represent simple expressions: </p><dl>
+<dt class="label">(<code>expression</code>)</dt>
+<dd>
+<p><code>expression</code> is treated as a unit and may be combined as described
+in this list.</p>
+</dd>
+<dt class="label"><code>A?</code></dt>
+<dd>
+<p>matches <code>A</code> or nothing; optional <code>A</code>.</p>
+</dd>
+<dt class="label"><code>A B</code></dt>
+<dd>
+<p>matches <code>A</code> followed by <code>B</code>. This
+operator has higher precedence than alternation; thus <code>A B | C D</code>
+is identical to <code>(A B) | (C D)</code>.</p>
+</dd>
+<dt class="label"><code>A | B</code></dt>
+<dd>
+<p>matches <code>A</code> or <code>B</code> but not both.</p>
+</dd>
+<dt class="label"><code>A - B</code></dt>
+<dd>
+<p>matches any string that matches <code>A</code> but does not match <code>B</code>.</p>
+</dd>
+<dt class="label"><code>A+</code></dt>
+<dd>
+<p>matches one or more occurrences of <code>A</code>.Concatenation
+has higher precedence than alternation; thus <code>A+ | B+</code> is identical
+to <code>(A+) | (B+)</code>.</p>
+</dd>
+<dt class="label"><code>A*</code></dt>
+<dd>
+<p>matches zero or more occurrences of <code>A</code>. Concatenation
+has higher precedence than alternation; thus <code>A* | B*</code> is identical
+to <code>(A*) | (B*)</code>.</p>
+</dd>
+</dl><p> Other notations used in the productions are: </p><dl>
+<dt class="label"><code>/* ... */</code></dt>
+<dd>
+<p>comment.</p>
+</dd>
+<dt class="label"><code>[ wfc: ... ]</code></dt>
+<dd>
+<p>well-formedness constraint; this identifies by name a constraint on <a title="Well-Formed" href="#dt-wellformed">well-formed</a> documents associated with a production.</p>
+</dd>
+<dt class="label"><code>[ vc: ... ]</code></dt>
+<dd>
+<p>validity constraint; this identifies by name a constraint on <a title="Validity" href="#dt-valid">valid</a>
+documents associated with a production.</p>
+</dd>
+</dl><p></p>
+</div>
+</div><div class="back">
+
+
+<div class="div1">
+
+<h2><a name="sec-bibliography"></a>A References</h2>
+<div class="div2">
+
+<h3><a name="sec-existing-stds"></a>A.1 Normative References</h3>
+<dl>
+<dt class="label"><a name="IANA"></a>IANA-CHARSETS</dt><dd>(Internet
+Assigned Numbers Authority) <cite>Official Names for Character Sets</cite>,
+ed. Keld Simonsen et al. See <a href="ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets">ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets</a>. </dd>
+<dt class="label"><a name="RFC1766"></a>IETF RFC 1766</dt><dd>IETF
+(Internet Engineering Task Force). <cite>RFC 1766: Tags for the Identification
+of Languages</cite>, ed. H. Alvestrand. 1995.  (See <a href="http://www.ietf.org/rfc/rfc1766.txt">http://www.ietf.org/rfc/rfc1766.txt</a>.)</dd>
+
+
+<dt class="label"><a name="ISO10646"></a>ISO/IEC 10646</dt><dd>ISO (International Organization for
+Standardization). <cite>ISO/IEC 10646-1993 (E). Information technology --
+Universal Multiple-Octet Coded Character Set (UCS) -- Part 1: Architecture
+and Basic Multilingual Plane.</cite> [Geneva]: International Organization
+for Standardization, 1993 (plus amendments AM 1 through AM 7).</dd>
+<dt class="label"><a name="ISO10646-2000"></a>ISO/IEC 10646-2000</dt><dd> ISO (International
+Organization for Standardization). <cite>ISO/IEC 10646-1:2000. Information
+technology -- Universal Multiple-Octet Coded Character Set (UCS) --
+Part 1: Architecture and Basic Multilingual Plane.</cite> [Geneva]: International
+Organization for Standardization, 2000.</dd>
+<dt class="label"><a name="Unicode"></a>Unicode</dt><dd>The Unicode Consortium. <em>The Unicode
+Standard, Version 2.0.</em> Reading, Mass.: Addison-Wesley Developers Press,
+1996.</dd>
+<dt class="label"><a name="Unicode3"></a>Unicode3</dt><dd>
+The Unicode Consortium. <em>The Unicode Standard, Version 3.0.</em> Reading,
+Mass.: Addison-Wesley Developers Press, 2000. ISBN 0-201-61633-5.</dd>
+</dl></div>
+<div class="div2">
+
+
+<h3><a name="null"></a>A.2 Other References</h3>
+<dl>
+<dt class="label"><a name="Aho"></a>Aho/Ullman</dt><dd>Aho, Alfred V., Ravi Sethi, and Jeffrey D.
+Ullman. <cite>Compilers: Principles, Techniques, and Tools</cite>.
+Reading: Addison-Wesley, 1986, rpt. corr. 1988.</dd>
+<dt class="label"><a name="Berners-Lee"></a>Berners-Lee et al.</dt><dd> Berners-Lee, T., R. Fielding,
+and L. Masinter. <cite>Uniform Resource Identifiers (URI): Generic Syntax
+and Semantics</cite>. 1997. (Work in progress; see updates to RFC1738.)</dd>
+<dt class="label"><a name="ABK"></a>Brüggemann-Klein</dt><dd>Brüggemann-Klein,
+Anne. Formal Models in Document Processing. Habilitationsschrift. Faculty
+of Mathematics at the University of Freiburg, 1993. (See <a href="ftp://ftp.informatik.uni-freiburg.de/documents/papers/brueggem/habil.ps">ftp://ftp.informatik.uni-freiburg.de/documents/papers/brueggem/habil.ps</a>.)</dd>
+<dt class="label"><a name="ABKDW"></a>Brüggemann-Klein and Wood</dt><dd>Brüggemann-Klein,
+Anne, and Derick Wood. <cite>Deterministic Regular Languages</cite>.
+Universität Freiburg, Institut für Informatik, Bericht 38, Oktober 1991. Extended
+abstract in A. Finkel, M. Jantzen, Hrsg., STACS 1992, S. 173-184. Springer-Verlag,
+Berlin 1992. Lecture Notes in Computer Science 577. Full version titled <cite>One-Unambiguous
+Regular Languages</cite> in Information and Computation 140 (2): 229-253,
+February 1998.</dd>
+<dt class="label"><a name="Clark"></a>Clark</dt><dd>James Clark. Comparison of SGML and XML. See <a href="http://www.w3.org/TR/NOTE-sgml-xml-971215">http://www.w3.org/TR/NOTE-sgml-xml-971215</a>. </dd>
+<dt class="label"><a name="IANA-LANGCODES"></a>IANA-LANGCODES</dt><dd>(Internet
+Assigned Numbers Authority) <cite>Registry of Language Tags</cite>,
+ed. Keld Simonsen et al.  (See <a href="http://www.isi.edu/in-notes/iana/assignments/languages/">http://www.isi.edu/in-notes/iana/assignments/languages/</a>.)</dd>
+
+
+<dt class="label"><a name="RFC2141"></a>IETF RFC2141</dt><dd>IETF
+(Internet Engineering Task Force). <em>RFC 2141: URN Syntax</em>, ed.
+R. Moats. 1997.   (See <a href="http://www.ietf.org/rfc/rfc2141.txt">http://www.ietf.org/rfc/rfc2141.txt</a>.)</dd>
+<dt class="label"><a name="rfc2279"></a>IETF RFC 2279</dt><dd>IETF
+(Internet Engineering Task Force). <cite>RFC 2279: UTF-8, a transformation
+format of ISO 10646</cite>, ed. F. Yergeau, 1998.  (See <a href="http://www.ietf.org/rfc/rfc2279.txt">http://www.ietf.org/rfc/rfc2279.txt</a>.)</dd>
+<dt class="label"><a name="rfc2376"></a>IETF RFC 2376</dt><dd>IETF
+(Internet Engineering Task Force). <cite>RFC 2376: XML Media Types</cite>.
+ed. E. Whitehead, M. Murata. 1998.  (See <a href="http://www.ietf.org/rfc/rfc2376.txt">http://www.ietf.org/rfc/rfc2376.txt</a>.)</dd>
+<dt class="label"><a name="rfc2396"></a>IETF RFC 2396</dt><dd>IETF
+(Internet Engineering Task Force). <cite>RFC 2396: Uniform Resource Identifiers
+(URI): Generic Syntax</cite>. T. Berners-Lee, R. Fielding, L. Masinter.
+1998.  (See <a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a>.)</dd>
+<dt class="label"><a name="rfc2732"></a>IETF RFC 2732</dt><dd>IETF
+(Internet Engineering Task Force). <cite>RFC 2732: Format for Literal
+IPv6 Addresses in URL's</cite>. R. Hinden, B. Carpenter, L. Masinter.
+1999.  (See <a href="http://www.ietf.org/rfc/rfc2732.txt">http://www.ietf.org/rfc/rfc2732.txt</a>.)</dd>
+<dt class="label"><a name="rfc2781"></a>IETF RFC 2781</dt><dd>
+IETF (Internet Engineering Task Force). <em>RFC 2781: UTF-16, an encoding
+of ISO 10646</em>, ed. P. Hoffman, F. Yergeau. 2000.  (See <a href="http://www.ietf.org/rfc/rfc2781.txt">http://www.ietf.org/rfc/rfc2781.txt</a>.)</dd>
+<dt class="label"><a name="ISO639"></a>ISO 639</dt><dd>
+(International Organization for Standardization). <cite>ISO 639:1988 (E).
+Code for the representation of names of languages.</cite> [Geneva]: International
+Organization for Standardization, 1988.</dd>
+<dt class="label"><a name="ISO3166"></a>ISO 3166</dt><dd>
+(International Organization for Standardization). <cite>ISO 3166-1:1997
+(E). Codes for the representation of names of countries and their subdivisions --
+Part 1: Country codes</cite> [Geneva]: International Organization for
+Standardization, 1997.</dd>
+<dt class="label"><a name="ISO8879"></a>ISO 8879</dt><dd>ISO (International Organization for Standardization). <cite>ISO
+8879:1986(E). Information processing -- Text and Office Systems --
+Standard Generalized Markup Language (SGML).</cite> First edition --
+1986-10-15. [Geneva]: International Organization for Standardization, 1986. </dd>
+<dt class="label"><a name="ISO10744"></a>ISO/IEC 10744</dt><dd>ISO (International Organization for
+Standardization). <cite>ISO/IEC 10744-1992 (E). Information technology --
+Hypermedia/Time-based Structuring Language (HyTime). </cite> [Geneva]:
+International Organization for Standardization, 1992. <em>Extended Facilities
+Annexe.</em> [Geneva]: International Organization for Standardization, 1996. </dd>
+<dt class="label"><a name="websgml"></a>WEBSGML</dt><dd>ISO
+(International Organization for Standardization). <cite>ISO 8879:1986
+TC2. Information technology -- Document Description and Processing Languages. </cite>
+[Geneva]: International Organization for Standardization, 1998.  (See <a href="http://www.sgmlsource.com/8879rev/n0029.htm">http://www.sgmlsource.com/8879rev/n0029.htm</a>.)</dd>
+<dt class="label"><a name="xml-names"></a>XML Names</dt><dd>Tim Bray,
+Dave Hollander, and Andrew Layman, editors. <cite>Namespaces in XML</cite>.
+Textuality, Hewlett-Packard, and Microsoft. World Wide Web Consortium, 1999.  (See <a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a>.)</dd>
+</dl></div>
+</div>
+<div class="div1">
+
+<h2><a name="CharClasses"></a>B Character Classes</h2>
+<p>Following the characteristics defined in the Unicode standard, characters
+are classed as base characters (among others, these contain the alphabetic
+characters of the Latin alphabet), ideographic characters, and combining characters (among
+others, this class contains most diacritics) Digits and extenders are also
+distinguished.</p>
+
+<h5>Characters</h5><table class="scrap" summary="Scrap"><tbody>
+<tr valign="baseline"><td><a name="NT-Letter"></a>[84]   </td><td><code>Letter</code></td><td>   ::=   </td><td><code><a href="#NT-BaseChar">BaseChar</a> | <a href="#NT-Ideographic">Ideographic</a></code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-BaseChar"></a>[85]   </td><td><code>BaseChar</code></td><td>   ::=   </td><td><code>[#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6]
+| [#x00D8-#x00F6] | [#x00F8-#x00FF] | [#x0100-#x0131] | [#x0134-#x013E]
+| [#x0141-#x0148] | [#x014A-#x017E] | [#x0180-#x01C3] | [#x01CD-#x01F0]
+| [#x01F4-#x01F5] | [#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1]
+| #x0386 | [#x0388-#x038A] | #x038C | [#x038E-#x03A1]
+| [#x03A3-#x03CE] | [#x03D0-#x03D6] | #x03DA | #x03DC
+| #x03DE | #x03E0 | [#x03E2-#x03F3] | [#x0401-#x040C]
+| [#x040E-#x044F] | [#x0451-#x045C] | [#x045E-#x0481] | [#x0490-#x04C4]
+| [#x04C7-#x04C8] | [#x04CB-#x04CC] | [#x04D0-#x04EB] | [#x04EE-#x04F5]
+| [#x04F8-#x04F9] | [#x0531-#x0556] | #x0559 | [#x0561-#x0586]
+| [#x05D0-#x05EA] | [#x05F0-#x05F2] | [#x0621-#x063A] | [#x0641-#x064A]
+| [#x0671-#x06B7] | [#x06BA-#x06BE] | [#x06C0-#x06CE] | [#x06D0-#x06D3]
+| #x06D5 | [#x06E5-#x06E6] | [#x0905-#x0939] | #x093D
+| [#x0958-#x0961] | [#x0985-#x098C] | [#x098F-#x0990] | [#x0993-#x09A8]
+| [#x09AA-#x09B0] | #x09B2 | [#x09B6-#x09B9] | [#x09DC-#x09DD]
+| [#x09DF-#x09E1] | [#x09F0-#x09F1] | [#x0A05-#x0A0A] | [#x0A0F-#x0A10]
+| [#x0A13-#x0A28] | [#x0A2A-#x0A30] | [#x0A32-#x0A33] | [#x0A35-#x0A36]
+| [#x0A38-#x0A39] | [#x0A59-#x0A5C] | #x0A5E | [#x0A72-#x0A74]
+| [#x0A85-#x0A8B] | #x0A8D | [#x0A8F-#x0A91] | [#x0A93-#x0AA8]
+| [#x0AAA-#x0AB0] | [#x0AB2-#x0AB3] | [#x0AB5-#x0AB9] | #x0ABD
+| #x0AE0 | [#x0B05-#x0B0C] | [#x0B0F-#x0B10] | [#x0B13-#x0B28]
+| [#x0B2A-#x0B30] | [#x0B32-#x0B33] | [#x0B36-#x0B39] | #x0B3D
+| [#x0B5C-#x0B5D] | [#x0B5F-#x0B61] | [#x0B85-#x0B8A] | [#x0B8E-#x0B90]
+| [#x0B92-#x0B95] | [#x0B99-#x0B9A] | #x0B9C | [#x0B9E-#x0B9F]
+| [#x0BA3-#x0BA4] | [#x0BA8-#x0BAA] | [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9]
+| [#x0C05-#x0C0C] | [#x0C0E-#x0C10] | [#x0C12-#x0C28] | [#x0C2A-#x0C33]
+| [#x0C35-#x0C39] | [#x0C60-#x0C61] | [#x0C85-#x0C8C] | [#x0C8E-#x0C90]
+| [#x0C92-#x0CA8] | [#x0CAA-#x0CB3] | [#x0CB5-#x0CB9] | #x0CDE
+| [#x0CE0-#x0CE1] | [#x0D05-#x0D0C] | [#x0D0E-#x0D10] | [#x0D12-#x0D28]
+| [#x0D2A-#x0D39] | [#x0D60-#x0D61] | [#x0E01-#x0E2E] | #x0E30
+| [#x0E32-#x0E33] | [#x0E40-#x0E45] | [#x0E81-#x0E82] | #x0E84
+| [#x0E87-#x0E88] | #x0E8A | #x0E8D | [#x0E94-#x0E97]
+| [#x0E99-#x0E9F] | [#x0EA1-#x0EA3] | #x0EA5 | #x0EA7
+| [#x0EAA-#x0EAB] | [#x0EAD-#x0EAE] | #x0EB0 | [#x0EB2-#x0EB3]
+| #x0EBD | [#x0EC0-#x0EC4] | [#x0F40-#x0F47] | [#x0F49-#x0F69]
+| [#x10A0-#x10C5] | [#x10D0-#x10F6] | #x1100 | [#x1102-#x1103]
+| [#x1105-#x1107] | #x1109 | [#x110B-#x110C] | [#x110E-#x1112]
+| #x113C | #x113E | #x1140 | #x114C | #x114E | #x1150
+| [#x1154-#x1155] | #x1159 | [#x115F-#x1161] | #x1163
+| #x1165 | #x1167 | #x1169 | [#x116D-#x116E] | [#x1172-#x1173]
+| #x1175 | #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF]
+| [#x11B7-#x11B8] | #x11BA | [#x11BC-#x11C2] | #x11EB
+| #x11F0 | #x11F9 | [#x1E00-#x1E9B] | [#x1EA0-#x1EF9]
+| [#x1F00-#x1F15] | [#x1F18-#x1F1D] | [#x1F20-#x1F45] | [#x1F48-#x1F4D]
+| [#x1F50-#x1F57] | #x1F59 | #x1F5B | #x1F5D | [#x1F5F-#x1F7D]
+| [#x1F80-#x1FB4] | [#x1FB6-#x1FBC] | #x1FBE | [#x1FC2-#x1FC4]
+| [#x1FC6-#x1FCC] | [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB] | [#x1FE0-#x1FEC]
+| [#x1FF2-#x1FF4] | [#x1FF6-#x1FFC] | #x2126 | [#x212A-#x212B]
+| #x212E | [#x2180-#x2182] | [#x3041-#x3094] | [#x30A1-#x30FA]
+| [#x3105-#x312C] | [#xAC00-#xD7A3] </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Ideographic"></a>[86]   </td><td><code>Ideographic</code></td><td>   ::=   </td><td><code>[#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029] </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-CombiningChar"></a>[87]   </td><td><code>CombiningChar</code></td><td>   ::=   </td><td><code>[#x0300-#x0345] | [#x0360-#x0361] | [#x0483-#x0486]
+| [#x0591-#x05A1] | [#x05A3-#x05B9] | [#x05BB-#x05BD] | #x05BF
+| [#x05C1-#x05C2] | #x05C4 | [#x064B-#x0652] | #x0670
+| [#x06D6-#x06DC] | [#x06DD-#x06DF] | [#x06E0-#x06E4] | [#x06E7-#x06E8]
+| [#x06EA-#x06ED] | [#x0901-#x0903] | #x093C | [#x093E-#x094C]
+| #x094D | [#x0951-#x0954] | [#x0962-#x0963] | [#x0981-#x0983]
+| #x09BC | #x09BE | #x09BF | [#x09C0-#x09C4] | [#x09C7-#x09C8]
+| [#x09CB-#x09CD] | #x09D7 | [#x09E2-#x09E3] | #x0A02
+| #x0A3C | #x0A3E | #x0A3F | [#x0A40-#x0A42] | [#x0A47-#x0A48]
+| [#x0A4B-#x0A4D] | [#x0A70-#x0A71] | [#x0A81-#x0A83] | #x0ABC
+| [#x0ABE-#x0AC5] | [#x0AC7-#x0AC9] | [#x0ACB-#x0ACD] | [#x0B01-#x0B03]
+| #x0B3C | [#x0B3E-#x0B43] | [#x0B47-#x0B48] | [#x0B4B-#x0B4D]
+| [#x0B56-#x0B57] | [#x0B82-#x0B83] | [#x0BBE-#x0BC2] | [#x0BC6-#x0BC8]
+| [#x0BCA-#x0BCD] | #x0BD7 | [#x0C01-#x0C03] | [#x0C3E-#x0C44]
+| [#x0C46-#x0C48] | [#x0C4A-#x0C4D] | [#x0C55-#x0C56] | [#x0C82-#x0C83]
+| [#x0CBE-#x0CC4] | [#x0CC6-#x0CC8] | [#x0CCA-#x0CCD] | [#x0CD5-#x0CD6]
+| [#x0D02-#x0D03] | [#x0D3E-#x0D43] | [#x0D46-#x0D48] | [#x0D4A-#x0D4D]
+| #x0D57 | #x0E31 | [#x0E34-#x0E3A] | [#x0E47-#x0E4E]
+| #x0EB1 | [#x0EB4-#x0EB9] | [#x0EBB-#x0EBC] | [#x0EC8-#x0ECD]
+| [#x0F18-#x0F19] | #x0F35 | #x0F37 | #x0F39 | #x0F3E
+| #x0F3F | [#x0F71-#x0F84] | [#x0F86-#x0F8B] | [#x0F90-#x0F95]
+| #x0F97 | [#x0F99-#x0FAD] | [#x0FB1-#x0FB7] | #x0FB9
+| [#x20D0-#x20DC] | #x20E1 | [#x302A-#x302F] | #x3099
+| #x309A </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Digit"></a>[88]   </td><td><code>Digit</code></td><td>   ::=   </td><td><code>[#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9]
+| [#x0966-#x096F] | [#x09E6-#x09EF] | [#x0A66-#x0A6F] | [#x0AE6-#x0AEF]
+| [#x0B66-#x0B6F] | [#x0BE7-#x0BEF] | [#x0C66-#x0C6F] | [#x0CE6-#x0CEF]
+| [#x0D66-#x0D6F] | [#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29] </code></td><xsltdebug></xsltdebug></tr>
+<tr valign="baseline"><td><a name="NT-Extender"></a>[89]   </td><td><code>Extender</code></td><td>   ::=   </td><td><code>#x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640
+| #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E]
+| [#x30FC-#x30FE] </code></td><xsltdebug></xsltdebug></tr>
+</tbody></table>
+<p>The character classes defined here can be derived from the Unicode 2.0
+character database as follows:</p>
+<ul>
+<li><p>Name start characters must have one of the categories Ll, Lu, Lo,
+Lt, Nl.</p></li>
+<li><p>Name characters other than Name-start characters must have one of
+the categories Mc, Me, Mn, Lm, or Nd.</p></li>
+<li><p>Characters in the compatibility area (i.e. with character code greater
+than #xF900 and less than #xFFFE) are not allowed in XML names.</p></li>
+<li><p>Characters which have a font or compatibility decomposition (i.e.
+those with a "compatibility formatting tag" in field 5 of the
+database -- marked by field 5 beginning with a "&lt;") are not
+allowed.</p></li>
+<li><p>The following characters are treated as name-start characters rather
+than name characters, because the property file classifies them as Alphabetic:
+[#x02BB-#x02C1], #x0559, #x06E5, #x06E6.</p></li>
+<li><p>Characters #x20DD-#x20E0 are excluded (in accordance with Unicode 2.0,
+section 5.14).</p></li>
+<li><p>Character #x00B7 is classified as an extender, because the property
+list so identifies it.</p></li>
+<li><p>Character #x0387 is added as a name character, because #x00B7 is
+its canonical equivalent.</p></li>
+<li><p>Characters ':' and '_' are allowed as name-start characters.</p>
+</li>
+<li><p>Characters '-' and '.' are allowed as name characters.</p></li>
+</ul>
+</div>
+<div class="div1">
+
+<h2><a name="sec-xml-and-sgml"></a>C XML and SGML (Non-Normative)</h2>
+<p>XML
+is designed to be a subset of SGML, in that every XML document should also
+be a conforming SGML document. For a detailed comparison of the additional
+restrictions that XML places on documents beyond those of SGML, see <a href="#Clark">[Clark]</a>.</p>
+</div>
+<div class="div1">
+
+<h2><a name="sec-entexpand"></a>D Expansion of Entity and Character References (Non-Normative)</h2>
+<p>This appendix contains some examples illustrating the sequence of entity-
+and character-reference recognition and expansion, as specified in <a href="#entproc"><b>4.4 XML Processor Treatment of Entities and References</b></a>.</p>
+<p>If the DTD contains the declaration</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;!ENTITY example "&lt;p&gt;An ampersand (&amp;#38;#38;) may be escaped
+numerically (&amp;#38;#38;#38;) or with a general entity
+(&amp;amp;amp;).&lt;/p&gt;" &gt;</pre></td></tr></table>
+<p>then the XML processor will recognize the character references when it
+parses the entity declaration, and resolve them before storing the following
+string as the value of the entity "<code>example</code>":</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>&lt;p&gt;An ampersand (&amp;#38;) may be escaped
+numerically (&amp;#38;#38;) or with a general entity
+(&amp;amp;amp;).&lt;/p&gt;</pre></td></tr></table>
+<p>A reference in the document to "<code>&amp;example;</code>"
+will cause the text to be reparsed, at which time the start- and end-tags
+of the <code>p</code> element will be recognized and the three references will
+be recognized and expanded, resulting in a <code>p</code> element with the following
+content (all data, no delimiters or markup):</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>An ampersand (&amp;) may be escaped
+numerically (&amp;#38;) or with a general entity
+(&amp;amp;).</pre></td></tr></table>
+<p>A more complex example will illustrate the rules and their effects fully.
+In the following example, the line numbers are solely for reference.</p>
+<table class="eg" cellpadding="5" border="1" bgcolor="#99ffff" width="100%" summary="Example"><tr><td><pre>1 &lt;?xml version='1.0'?&gt;
+2 &lt;!DOCTYPE test [
+3 &lt;!ELEMENT test (#PCDATA) &gt;
+4 &lt;!ENTITY % xx '&amp;#37;zz;'&gt;
+5 &lt;!ENTITY % zz '&amp;#60;!ENTITY tricky "error-prone" &gt;' &gt;
+6 %xx;
+7 ]&gt;
+8 &lt;test&gt;This sample shows a &amp;tricky; method.&lt;/test&gt;</pre></td></tr></table>
+<p>This produces the following:</p>
+<ul>
+<li><p>in line 4, the reference to character 37 is expanded immediately,
+and the parameter entity "<code>xx</code>" is stored in the symbol
+table with the value "<code>%zz;</code>". Since the replacement
+text is not rescanned, the reference to parameter entity "<code>zz</code>"
+is not recognized. (And it would be an error if it were, since "<code>zz</code>"
+is not yet declared.)</p></li>
+<li><p>in line 5, the character reference "<code>&amp;#60;</code>"
+is expanded immediately and the parameter entity "<code>zz</code>"
+is stored with the replacement text "<code>&lt;!ENTITY tricky "error-prone"
+&gt;</code>", which is a well-formed entity declaration.</p></li>
+<li><p>in line 6, the reference to "<code>xx</code>" is recognized,
+and the replacement text of "<code>xx</code>" (namely "<code>%zz;</code>")
+is parsed. The reference to "<code>zz</code>" is recognized in
+its turn, and its replacement text ("<code>&lt;!ENTITY tricky "error-prone"
+&gt;</code>") is parsed. The general entity "<code>tricky</code>"
+has now been declared, with the replacement text "<code>error-prone</code>".</p>
+</li>
+<li><p>in line 8, the reference to the general entity "<code>tricky</code>"
+is recognized, and it is expanded, so the full content of the <code>test</code>
+element is the self-describing (and ungrammatical) string <em>This sample
+shows a error-prone method.</em></p></li>
+</ul>
+</div>
+<div class="div1">
+
+<h2><a name="determinism"></a>E Deterministic Content Models (Non-Normative)</h2>
+<p>As
+noted in <a href="#sec-element-content"><b>3.2.1 Element Content</b></a>, it is required that content
+models in element type declarations be deterministic. This requirement is <a title="For Compatibility" href="#dt-compat">for compatibility</a> with SGML (which calls deterministic
+content models "unambiguous"); XML processors built
+using SGML systems may flag non-deterministic content models as errors.</p>
+<p>For example, the content model <code>((b, c) | (b, d))</code> is non-deterministic,
+because given an initial <code>b</code> the XML processor
+cannot know which <code>b</code> in the model is being matched without looking
+ahead to see which element follows the <code>b</code>. In this case, the two references
+to <code>b</code> can be collapsed into a single reference, making the model read <code>(b,
+(c | d))</code>. An initial <code>b</code> now clearly matches only a single name
+in the content model. The processor doesn't need to look ahead to see what follows; either <code>c</code> or <code>d</code>
+would be accepted.</p>
+<p>More formally: a finite state automaton may be constructed from the content
+model using the standard algorithms, e.g. algorithm 3.5 in section 3.9 of
+Aho, Sethi, and Ullman <a href="#Aho">[Aho/Ullman]</a>. In many such algorithms, a follow
+set is constructed for each position in the regular expression (i.e., each
+leaf node in the syntax tree for the regular expression); if any position
+has a follow set in which more than one following position is labeled with
+the same element type name, then the content model is in error and may be
+reported as an error.</p>
+<p>Algorithms exist which allow many but not all non-deterministic content
+models to be reduced automatically to equivalent deterministic models; see
+Brüggemann-Klein 1991 <a href="#ABK">[Brüggemann-Klein]</a>.</p>
+</div>
+<div class="div1">
+
+<h2><a name="sec-guessing"></a>F Autodetection
+of Character Encodings (Non-Normative)</h2>
+<p>The XML encoding declaration functions as an internal label on each entity,
+indicating which character encoding is in use. Before an XML processor can
+read the internal label, however, it apparently has to know what character
+encoding is in use--which is what the internal label is trying to indicate.
+In the general case, this is a hopeless situation. It is not entirely hopeless
+in XML, however, because XML limits the general case in two ways: each implementation
+is assumed to support only a finite set of character encodings, and the XML
+encoding declaration is restricted in position and content in order to make
+it feasible to autodetect the character encoding in use in each entity in
+normal cases. Also, in many cases other sources of information are available
+in addition to the XML data stream itself. Two cases may be distinguished,
+depending on whether the XML entity is presented to the processor without,
+or with, any accompanying (external) information. We consider the first case
+first.</p>
+<div class="div2">
+
+<h3><a name="sec-guessing-no-ext-info"></a>F.1 Detection Without External Encoding Information</h3>
+<p>Because each XML entity not accompanied by external
+encoding information and not in UTF-8 or UTF-16 encoding <em>must</em>
+begin with an XML encoding declaration, in which the first characters must
+be '<code>&lt;?xml</code>', any conforming processor can detect, after two
+to four octets of input, which of the following cases apply. In reading this
+list, it may help to know that in UCS-4, '&lt;' is "<code>#x0000003C</code>"
+and '?' is "<code>#x0000003F</code>", and the Byte Order Mark
+required of UTF-16 data streams is "<code>#xFEFF</code>". The notation <var>##</var> is used to denote any byte value except that two consecutive <var>##</var>s cannot be both 00.</p>
+<p>With a Byte Order Mark:</p>
+<table border="1" frame="border"><tbody><tr><td rowspan="1" colspan="1"><code>00 00 FE
+FF</code></td><td rowspan="1" colspan="1">UCS-4, big-endian machine (1234 order)</td></tr><tr><td rowspan="1" colspan="1"><code>FF
+FE 00 00</code></td><td rowspan="1" colspan="1">UCS-4, little-endian machine (4321 order)</td></tr>
+<tr><td rowspan="1" colspan="1"><code>00 00 FF FE</code></td><td rowspan="1" colspan="1">UCS-4, unusual octet order (2143)</td>
+</tr><tr><td rowspan="1" colspan="1"><code>FE FF 00 00</code></td><td rowspan="1" colspan="1">UCS-4, unusual octet order (3412)</td>
+</tr><tr><td rowspan="1" colspan="1"><code>FE FF ## ##</code></td><td rowspan="1" colspan="1">UTF-16, big-endian</td></tr>
+<tr><td rowspan="1" colspan="1"><code>FF FE ## ##</code></td><td rowspan="1" colspan="1">UTF-16, little-endian</td></tr><tr>
+<td rowspan="1" colspan="1"><code>EF BB BF</code></td><td rowspan="1" colspan="1">UTF-8</td></tr></tbody></table>
+<p>Without a Byte Order Mark:</p>
+<table border="1" frame="border"><tbody><tr><td rowspan="1" colspan="1"><code>00 00 00 3C</code></td>
+<td rowspan="4" colspan="1">UCS-4 or other encoding with a 32-bit code unit and ASCII
+characters encoded as ASCII values, in respectively big-endian (1234), little-endian
+(4321) and two unusual byte orders (2143 and 3412). The encoding declaration
+must be read to determine which of UCS-4 or other supported 32-bit encodings
+applies.</td></tr><tr><td rowspan="1" colspan="1"><code>3C 00 00 00</code></td>
+
+</tr><tr><td rowspan="1" colspan="1"><code>00 00 3C 00</code></td>
+
+</tr><tr><td rowspan="1" colspan="1"><code>00 3C 00 00</code></td>
+
+</tr><tr><td rowspan="1" colspan="1"><code>00 3C 00 3F</code></td><td rowspan="1" colspan="1">UTF-16BE or big-endian ISO-10646-UCS-2
+or other encoding with a 16-bit code unit in big-endian order and ASCII characters
+encoded as ASCII values (the encoding declaration must be read to determine
+which)</td></tr><tr><td rowspan="1" colspan="1"><code>3C 00 3F 00</code></td><td rowspan="1" colspan="1">UTF-16LE or little-endian
+ISO-10646-UCS-2 or other encoding with a 16-bit code unit in little-endian
+order and ASCII characters encoded as ASCII values (the encoding declaration
+must be read to determine which)</td></tr><tr><td rowspan="1" colspan="1"><code>3C 3F 78 6D</code></td>
+<td rowspan="1" colspan="1">UTF-8, ISO 646, ASCII, some part of ISO 8859, Shift-JIS, EUC, or any other
+7-bit, 8-bit, or mixed-width encoding which ensures that the characters of
+ASCII have their normal positions, width, and values; the actual encoding
+declaration must be read to detect which of these applies, but since all of
+these encodings use the same bit patterns for the relevant ASCII characters,
+the encoding declaration itself may be read reliably</td></tr><tr><td rowspan="1" colspan="1"><code>4C
+6F A7 94</code></td><td rowspan="1" colspan="1">EBCDIC (in some flavor; the full encoding declaration
+must be read to tell which code page is in use)</td></tr><tr><td rowspan="1" colspan="1">Other</td>
+<td rowspan="1" colspan="1">UTF-8 without an encoding declaration, or else the data stream is mislabeled
+(lacking a required encoding declaration), corrupt, fragmentary, or enclosed
+in a wrapper of some kind</td></tr></tbody></table>
+<div class="note"><p class="prefix"><b>Note:</b></p>
+<p>In cases above which do not require reading the encoding declaration to
+determine the encoding, section 4.3.3 still requires that the encoding declaration,
+if present, be read and that the encoding name be checked to match the actual
+encoding of the entity. Also, it is possible that new character encodings
+will be invented that will make it necessary to use the encoding declaration
+to determine the encoding, in cases where this is not required at present.</p>
+</div>
+<p>This level of autodetection is enough to read the XML encoding declaration
+and parse the character-encoding identifier, which is still necessary to distinguish
+the individual members of each family of encodings (e.g. to tell UTF-8 from
+8859, and the parts of 8859 from each other, or to distinguish the specific
+EBCDIC code page in use, and so on).</p>
+<p>Because the contents of the encoding declaration are restricted to characters from the ASCII repertoire (however encoded),
+a processor can reliably read the entire encoding declaration as soon as it
+has detected which family of encodings is in use. Since in practice, all widely
+used character encodings fall into one of the categories above, the XML encoding
+declaration allows reasonably reliable in-band labeling of character encodings,
+even when external sources of information at the operating-system or transport-protocol
+level are unreliable. Character encodings such as UTF-7
+that make overloaded usage of ASCII-valued bytes may fail to be reliably detected.</p>
+<p>Once the processor has detected the character encoding in use, it can act
+appropriately, whether by invoking a separate input routine for each case,
+or by calling the proper conversion function on each character of input.</p>
+<p>Like any self-labeling system, the XML encoding declaration will not work
+if any software changes the entity's character set or encoding without updating
+the encoding declaration. Implementors of character-encoding routines should
+be careful to ensure the accuracy of the internal and external information
+used to label the entity.</p>
+</div>
+<div class="div2">
+
+<h3><a name="sec-guessing-with-ext-info"></a>F.2 Priorities in the Presence of External Encoding Information</h3>
+<p>The second possible case occurs when the XML entity is accompanied by encoding
+information, as in some file systems and some network protocols. When multiple
+sources of information are available, their relative priority and the preferred
+method of handling conflict should be specified as part of the higher-level
+protocol used to deliver XML. In particular, please refer
+to <a href="#rfc2376">[IETF RFC 2376]</a> or its successor, which defines the <code>text/xml</code>
+and <code>application/xml</code> MIME types and provides some useful guidance.
+In the interests of interoperability, however, the following rule is recommended.</p>
+<ul>
+<li><p>If an XML entity is in a file, the Byte-Order Mark and encoding declaration are used (if present) to determine the character encoding.</p>
+</li>
+</ul>
+
+
+</div>
+</div>
+<div class="div1">
+
+<h2><a name="sec-xml-wg"></a>G W3C XML Working Group (Non-Normative)</h2>
+<p>This specification was prepared and approved for publication by the W3C
+XML Working Group (WG). WG approval of this specification does not necessarily
+imply that all WG members voted for its approval. The current and former members
+of the XML WG are:</p>
+<ul>
+<li>Jon Bosak, Sun (<i>Chair</i>) 
+</li>
+<li>James Clark (<i>Technical Lead</i>) </li>
+<li>Tim Bray, Textuality and Netscape
+ (<i>XML Co-editor</i>) </li>
+<li>Jean Paoli, Microsoft (<i>XML
+Co-editor</i>) </li>
+<li>C. M. Sperberg-McQueen, U. of Ill.
+ (<i>XML Co-editor</i>) </li>
+<li>Dan Connolly, W3C (<i>W3C Liaison</i>) 
+</li>
+<li>Paula Angerstein, Texcel</li>
+<li>Steve DeRose, INSO</li>
+<li>Dave Hollander, HP</li>
+<li>Eliot Kimber, ISOGEN</li>
+<li>Eve Maler, ArborText</li>
+<li>Tom Magliery, NCSA</li>
+<li>Murray Maloney, SoftQuad, Grif
+SA, Muzmo and Veo Systems</li>
+<li>MURATA Makoto (FAMILY Given), Fuji
+Xerox Information Systems</li>
+<li>Joel Nava, Adobe</li>
+<li>Conleth O'Connell, Vignette
+</li>
+<li>Peter Sharpe, SoftQuad</li>
+<li>John Tigue, DataChannel</li>
+</ul>
+</div>
+<div class="div1">
+
+<h2><a name="sec-core-wg"></a>H W3C XML Core Group (Non-Normative)</h2>
+<p>The second edition of this specification was prepared by the W3C XML Core
+Working Group (WG). The members of the WG at the time of publication of this
+edition were:</p>
+<ul>
+<li>Paula Angerstein, Vignette</li>
+<li>Daniel Austin, Ask Jeeves</li>
+<li>Tim Boland</li>
+<li>Allen Brown, Microsoft</li>
+<li>Dan Connolly, W3C (<i>Staff
+Contact</i>) </li>
+<li>John Cowan, Reuters Limited
+</li>
+<li>John Evdemon, XMLSolutions Corporation
+</li>
+<li>Paul Grosso, Arbortext (<i>Co-Chair</i>) 
+</li>
+<li>Arnaud Le Hors, IBM (<i>Co-Chair</i>) 
+</li>
+<li>Eve Maler, Sun Microsystems
+ (<i>Second Edition Editor</i>) </li>
+<li>Jonathan Marsh, Microsoft</li>
+<li>MURATA Makoto (FAMILY Given), IBM
+</li>
+<li>Mark Needleman, Data Research Associates
+</li>
+<li>David Orchard, Jamcracker</li>
+<li>Lew Shannon, NCR</li>
+<li>Richard Tobin, University of Edinburgh
+</li>
+<li>Daniel Veillard, W3C</li>
+<li>Dan Vint, Lexica</li>
+<li>Norman Walsh, Sun Microsystems
+</li>
+<li>François Yergeau, Alis Technologies
+ (<i>Errata List Editor</i>) </li>
+<li>Kongyi Zhou, Oracle</li>
+</ul>
+</div>
+<div class="div1">
+
+<h2><a name="id2683713"></a>I Production Notes (Non-Normative)</h2>
+<p>This Second Edition was encoded in the <a href="http://www.w3.org/XML/1998/06/xmlspec-v21.dtd">XMLspec
+DTD</a> (which has <a href="http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm">documentation</a>
+available). The HTML versions were produced with a combination of the <a href="http://www.w3.org/XML/1998/06/xmlspec.xsl">xmlspec.xsl</a>, <a href="http://www.w3.org/XML/1998/06/diffspec.xsl">diffspec.xsl</a>,
+and <a href="http://www.w3.org/XML/1998/06/REC-xml-2e.xsl">REC-xml-2e.xsl</a>
+XSLT stylesheets.  The PDF version was produced with the <a href="http://www.tdb.uu.se/~jan/html2ps.html">html2ps</a>
+facility and a distiller program.</p>
+</div>
+</div></body></html>

Added: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006.xml
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006.xml	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-20001006.xml	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,3277 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.1//EN"
+ "xmlspec-v21.dtd" [
+<!--ArborText, Inc., 1988-2000, v.4002-->
+<!ENTITY http-ident "http://www.w3.org/TR/2000/REC-xml">
+<!ENTITY draft.month "October">
+<!ENTITY draft.day "6">
+<!ENTITY iso6.doc.date "20001006">
+<!ENTITY draft.year "2000">
+<!ENTITY versionOfXML "1.0">
+<!ENTITY pio "'&lt;?xml'">
+<!ENTITY doc.date "10 February 1998">
+<!ENTITY w3c.doc.date "02-Feb-1998">
+<!ENTITY WebSGML "WebSGML Adaptations Annex to ISO 8879">
+<!ENTITY pic "'?>'">
+<!ENTITY br "\n">
+<!ENTITY cellback "#c0d9c0">
+<!ENTITY mdash "--">
+<!ENTITY com "--">
+<!ENTITY como "--">
+<!ENTITY comc "--">
+<!ENTITY hcro "&amp;#x">
+<!ENTITY nbsp "&#160;">
+<!ENTITY magicents "<code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>">
+<!ENTITY doc.audience "public review and discussion">
+<!ENTITY doc.distribution "may be distributed freely, as long as
+all text and legal notices remain intact">
+]>
+<spec w3c-doctype="rec">
+<!--
+Notes on preparation of the Second Edition:
+
+- Worked from http://www.w3.org/XML/xml-19980210-errata.
+- Changed DTD reference to point to V2.1 of XMLspec.
+- Moved version number from <title> to <version> element and
+  added "second edition" wording.  Mentioned edition information
+  in status.
+- Removed bgcolor="&cellback;" attributes from all <td>
+  elements because that attribute is not in the current table model.
+- Reversed status and abstract, so that abstract is first, according
+  to W3C guidelines.
+- Changed some <emph>s to <titleref>s in bibliography.
+- Changed some <code>s to <at> etc. throughout; where used <attval>,
+  removed existing <quote>s because the stylesheet produces them.
+- Removed some spurious spaces.
+- Added affiliation markup to the original member list.
+- Added commas between individual <thisver> elements, because
+  whitespace is now significant there.
+- Moved <eg>s, <scrap>s, and lists outside of <p>s for cleaner HTML
+  conversion.
+- Revised Status section to reflect new status.
+- Fixed all titleref hrefs so they get transformed properly; at
+  next revision, these all probably need to be changed to some
+  other markup.
+- Incorporated all errata (barring obsoleted and invalid ones);
+  added links to the errata document with <loc role="erratumref">
+  elements; used diff="{add|chg|del}" attribute.  This version 
+  expects that the official HTML output will have diff="del" 
+  elements suppressed.
+-->
+<header>
+<title>Extensible Markup Language (XML)</title>
+<version>1.0 (Second Edition)</version>
+<w3c-designation>REC-xml-&iso6.doc.date;</w3c-designation>
+<w3c-doctype>W3C Recommendation</w3c-doctype>
+<pubdate><day>&draft.day;</day><month>&draft.month;</month><year>&draft.year;</year>
+</pubdate>
+<publoc><loc href="&http-ident;-&iso6.doc.date;">&http-ident;-&iso6.doc.date;</loc>
+(<loc href="&http-ident;-&iso6.doc.date;.html">XHTML</loc>, <loc href="&http-ident;-&iso6.doc.date;.xml">XML</loc>, <loc
+href="&http-ident;-&iso6.doc.date;.pdf">PDF</loc>, <loc href="&http-ident;-&iso6.doc.date;-review.html">XHTML
+review version</loc> with color-coded revision indicators)</publoc>
+<latestloc><loc href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</loc></latestloc>
+<prevlocs><loc href="http://www.w3.org/TR/2000/WD-xml-2e-20000814"> http://www.w3.org/TR/2000/WD-xml-2e-20000814</loc>
+<loc href="http://www.w3.org/TR/1998/REC-xml-19980210"> http://www.w3.org/TR/1998/REC-xml-19980210</loc><!--
+<loc href='http://www.w3.org/TR/PR-xml-971208'>
+http://www.w3.org/TR/PR-xml-971208</loc>
+<loc href='http://www.w3.org/TR/WD-xml-961114'>
+http://www.w3.org/TR/WD-xml-961114</loc>
+<loc href='http://www.w3.org/TR/WD-xml-lang-970331'>
+http://www.w3.org/TR/WD-xml-lang-970331</loc>
+<loc href='http://www.w3.org/TR/WD-xml-lang-970630'>
+http://www.w3.org/TR/WD-xml-lang-970630</loc>
+<loc href='http://www.w3.org/TR/WD-xml-970807'>
+http://www.w3.org/TR/WD-xml-970807</loc>
+<loc href='http://www.w3.org/TR/WD-xml-971117'>
+http://www.w3.org/TR/WD-xml-971117</loc>--> </prevlocs>
+<authlist>
+<author role="1e"><name>Tim Bray</name><affiliation>Textuality and Netscape</affiliation>
+<email href="mailto:tbray at textuality.com">tbray at textuality.com</email></author>
+<author role="1e"><name>Jean Paoli</name><affiliation>Microsoft</affiliation>
+<email href="mailto:jeanpa at microsoft.com">jeanpa at microsoft.com</email></author>
+<author role="1e" diff="chg"><name>C. M. Sperberg-McQueen</name><affiliation>University
+of Illinois at Chicago and Text Encoding Initiative</affiliation><email href="mailto:cmsmcq at uic.edu">cmsmcq at uic.edu</email>
+</author>
+<author role="2e" diff="add"><name>Eve Maler</name><affiliation>Sun Microsystems,
+Inc.</affiliation><email href="mailto:elm at east.sun.com">eve.maler at east.sun.com</email>
+</author>
+</authlist>
+<abstract>
+<p>The Extensible Markup Language (XML) is a subset of SGML that is completely
+described in this document. Its goal is to enable generic SGML to be served,
+received, and processed on the Web in the way that is now possible with HTML.
+XML has been designed for ease of implementation and for interoperability
+with both SGML and HTML.</p>
+</abstract>
+<status>
+<p>This document has been reviewed by W3C Members and other interested parties
+and has been endorsed by the Director as a W3C Recommendation. It is a stable
+document and may be used as reference material or cited as a normative reference
+from another document. W3C's role in making the Recommendation is to draw
+attention to the specification and to promote its widespread deployment. This
+enhances the functionality and interoperability of the Web.</p>
+<p>This document specifies a syntax created by subsetting an existing, widely
+used international text processing standard (Standard Generalized Markup Language,
+ISO 8879:1986(E) as amended and corrected) for use on the World Wide Web.
+It is a product of the W3C XML Activity, details of which can be found at <loc
+href="http://www.w3.org/XML/">http://www.w3.org/XML</loc>. <phrase diff="add"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E100">[E100]</loc>
+The English version of this specification is the only normative version. However,
+for translations of this document, see <loc href="http://www.w3.org/XML/#trans">http://www.w3.org/XML/#trans</loc>. </phrase>A
+list of current W3C Recommendations and other technical documents can be found
+at <loc href="http://www.w3.org/TR/">http://www.w3.org/TR</loc>.</p>
+<p diff="del"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E66">[E66]</loc>This
+specification uses the term URI, which is defined by <bibref ref="Berners-Lee"/>,
+a work in progress expected to update <bibref ref="RFC1738"/> and <bibref
+ref="RFC1808"/>.</p>
+<p diff="add">This second edition is <emph>not</emph> a new version of XML (first published 10 February 1998);
+it merely incorporates the changes dictated by the first-edition errata (available
+at <loc href="http://www.w3.org/XML/xml-19980210-errata">http://www.w3.org/XML/xml-19980210-errata</loc>)
+as a convenience to readers. The errata list for this second edition is available
+at <loc href="http://www.w3.org/XML/xml-V10-2e-errata">http://www.w3.org/XML/xml-V10-2e-errata</loc>.</p>
+<p>Please report errors in this document to <loc href="mailto:xml-editor at w3.org">xml-editor at w3.org</loc><phrase
+diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E101">[E101]</loc>; <loc
+href="http://lists.w3.org/Archives/Public/xml-editor">archives</loc> are available</phrase>.</p>
+<note diff="add">
+<p>C. M. Sperberg-McQueen's affiliation has changed since the publication
+of the first edition. He is now at the World Wide Web Consortium, and can
+be contacted at <loc href="mailto:cmsmcq at w3.org">cmsmcq at w3.org</loc>.</p>
+</note>
+</status>
+<pubstmt>
+<p>Chicago, Vancouver, Mountain View, et al.: World-Wide Web Consortium, XML
+Working Group, 1996, 1997, 2000.</p>
+</pubstmt>
+<sourcedesc>
+<p>Created in electronic form.</p>
+</sourcedesc>
+<langusage>
+<language id="EN">English</language>
+<language id="ebnf">Extended Backus-Naur Form (formal grammar)</language>
+</langusage>
+<revisiondesc>
+<slist>
+<sitem>1997-12-03 : CMSMcQ : yet further changes</sitem>
+<sitem>1997-12-02 : TB : further changes (see TB to XML WG, 2 December 1997)</sitem>
+<sitem>1997-12-02 : CMSMcQ : deal with as many corrections and comments from
+the proofreaders as possible: entify hard-coded document date in pubdate element,
+change expansion of entity WebSGML, update status description as per Dan Connolly
+(am not sure about refernece to Berners-Lee et al.), add 'The' to abstract
+as per WG decision, move Relationship to Existing Standards to back matter
+and combine with References, re-order back matter so normative appendices
+come first, re-tag back matter so informative appendices are tagged informdiv1,
+remove XXX XXX from list of 'normative' specs in prose, move some references
+from Other References to Normative References, add RFC 1738, 1808, and 2141
+to Other References (they are not normative since we do not require the processor
+to enforce any rules based on them), add reference to 'Fielding draft' (Berners-Lee
+et al.), move notation section to end of body, drop URIchar non-terminal and
+use SkipLit instead, lose stray reference to defunct nonterminal 'markupdecls',
+move reference to Aho et al. into appendix (Tim's right), add prose note saying
+that hash marks and fragment identifiers are NOT part of the URI formally
+speaking, and are NOT legal in system identifiers (processor 'may' signal
+an error). Work through: Tim Bray reacting to James Clark, Tim Bray on his
+own, Eve Maler, NOT DONE YET: change binary / text to unparsed / parsed. handle
+James's suggestion about &lt; in attriubte values uppercase hex characters,
+namechar list, </sitem>
+<sitem>1997-12-01 : JB : add some column-width parameters</sitem>
+<sitem>1997-12-01 : CMSMcQ : begin round of changes to incorporate recent
+WG decisions and other corrections: binding sources of character encoding
+info (27 Aug / 3 Sept), correct wording of Faust quotation (restore dropped
+line), drop SDD from EncodingDecl, change text at version number 1.0, drop
+misleading (wrong!) sentence about ignorables and extenders, modify definition
+of PCData to make bar on msc grammatical, change grammar's handling of internal
+subset (drop non-terminal markupdecls), change definition of includeSect to
+allow conditional sections, add integral-declaration constraint on internal
+subset, drop misleading / dangerous sentence about relationship of entities
+with system storage objects, change table body tag to htbody as per EM change
+to DTD, add rule about space normalization in public identifiers, add description
+of how to generate our name-space rules from Unicode character database (needs
+further work!). </sitem>
+<sitem>1997-10-08 : TB : Removed %-constructs again, new rules for PE appearance.</sitem>
+<sitem>1997-10-01 : TB : Case-sensitive markup; cleaned up element-type defs,
+lotsa little edits for style</sitem>
+<sitem>1997-09-25 : TB : Change to elm's new DTD, with substantial detail
+cleanup as a side-effect</sitem>
+<sitem>1997-07-24 : CMSMcQ : correct error (lost *) in definition of ignoreSectContents
+(thanks to Makoto Murata)</sitem>
+<sitem>Allow all empty elements to have end-tags, consistent with SGML TC
+(as per JJC).</sitem>
+<sitem>1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections: introduce
+the term 'empty-element tag', note that all empty elements may use it, and
+elements declared EMPTY must use it. Add WFC requiring encoding decl to come
+first in an entity. Redefine notations to point to PIs as well as binary entities.
+Change autodetection table by removing bytes 3 and 4 from examples with Byte
+Order Mark. Add content model as a term and clarify that it applies to both
+mixed and element content. </sitem>
+<sitem>1997-06-30 : CMSMcQ : change date, some cosmetic changes, changes to
+productions for choice, seq, Mixed, NotationType, Enumeration. Follow James
+Clark's suggestion and prohibit conditional sections in internal subset. TO
+DO: simplify production for ignored sections as a result, since we don't need
+to worry about parsers which don't expand PErefs finding a conditional section.</sitem>
+<sitem>1997-06-29 : TB : various edits</sitem>
+<sitem>1997-06-29 : CMSMcQ : further changes: Suppress old FINAL EDIT comments
+and some dead material. Revise occurrences of % in grammar to exploit Henry
+Thompson's pun, especially markupdecl and attdef. Remove RMD requirement relating
+to element content (?). </sitem>
+<sitem>1997-06-28 : CMSMcQ : Various changes for 1 July draft: Add text for
+draconian error handling (introduce the term Fatal Error). RE deleta est (changing
+wording from original announcement to restrict the requirement to validating
+parsers). Tag definition of validating processor and link to it. Add colon
+as name character. Change def of %operator. Change standard definitions of
+lt, gt, amp. Strip leading zeros from #x00nn forms.</sitem>
+<sitem>1997-04-02 : CMSMcQ : final corrections of editorial errors found in
+last night's proofreading. Reverse course once more on well-formed: Webster's
+Second hyphenates it, and that's enough for me.</sitem>
+<sitem>1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self</sitem>
+<sitem>1997-03-31 : Tim Bray : many changes</sitem>
+<sitem>1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling), some
+Charles Goldfarb, some ERB decisions (PE handling in miscellaneous declarations.
+Changed Ident element to accept def attribute. Allow normalization of Unicode
+characters. move def of systemliteral into section on literals.</sitem>
+<sitem>1997-03-28 : CMSMcQ : make as many corrections as possible, from Terry
+Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson, Paul Grosso,
+and self. Among other things: give in on "well formed" (Terry is right), tentatively
+rename QuotedCData as AttValue and Literal as EntityValue to be more informative,
+since attribute values are the <emph>only</emph> place QuotedCData was used,
+and vice versa for entity text and Literal. (I'd call it Entity Text, but
+8879 uses that name for both internal and external entities.)</sitem>
+<sitem>1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply
+my changes dated 03-20 and 03-21. Normalize old 'may not' to 'must not' except
+in the one case where it meant 'may or may not'.</sitem>
+<sitem>1997-03-21 : TB : massive changes on plane flight from Chicago to Vancouver</sitem>
+<sitem>1997-03-21 : CMSMcQ : correct as many reported errors as possible. </sitem>
+<sitem>1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.</sitem>
+<sitem>1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for
+WWW conference April 1997: restore some of the internal entity references
+(e.g. to docdate, etc.), change character xA0 to &amp;nbsp; and define nbsp
+as &amp;#160;, and refill a lot of paragraphs for legibility.</sitem>
+<sitem>1996-11-12 : CMSMcQ : revise using Tim's edits: Add list type of NUMBERED
+and change most lists either to BULLETS or to NUMBERED. Suppress QuotedNames,
+Names (not used). Correct trivial-grammar doc type decl. Rename 'marked section'
+as 'CDATA section' passim. Also edits from James Clark: Define the set of
+characters from which [^abc] subtracts. Charref should use just [0-9] not
+Digit. Location info needs cleaner treatment: remove? (ERB question). One
+example of a PI has wrong pic. Clarify discussion of encoding names. Encoding
+failure should lead to unspecified results; don't prescribe error recovery.
+Don't require exposure of entity boundaries. Ignore white space in element
+content. Reserve entity names of the form u-NNNN. Clarify relative URLs. And
+some of my own: Correct productions for content model: model cannot consist
+of a name, so "elements ::= cp" is no good. </sitem>
+<sitem>1996-11-11 : CMSMcQ : revise for style. Add new rhs to entity declaration,
+for parameter entities.</sitem>
+<sitem>1996-11-10 : CMSMcQ : revise for style. Fix / complete section on names,
+characters. Add sections on parameter entities, conditional sections. Still
+to do: Add compatibility note on deterministic content models. Finish stylistic
+revision.</sitem>
+<sitem>1996-10-31 : TB : Add Entity Handling section</sitem>
+<sitem>1996-10-30 : TB : Clean up term &amp; termdef. Slip in ERB decision
+re EMPTY.</sitem>
+<sitem>1996-10-28 : TB : Change DTD. Implement some of Michael's suggestions.
+Change comments back to //. Introduce language for XML namespace reservation.
+Add section on white-space handling. Lots more cleanup.</sitem>
+<sitem>1996-10-24 : CMSMcQ : quick tweaks, implement some ERB decisions. Characters
+are not integers. Comments are /* */ not //. Add bibliographic refs to 10646,
+HyTime, Unicode. Rename old Cdata as MsData since it's <emph>only</emph> seen
+in marked sections. Call them attribute-value pairs not name-value pairs,
+except once. Internal subset is optional, needs '?'. Implied attributes should
+be signaled to the app, not have values supplied by processor.</sitem>
+<sitem>1996-10-16 : TB : track down &amp; excise all DSD references; introduce
+some EBNF for entity declarations.</sitem>
+<sitem>1996-10-?? : TB : consistency check, fix up scraps so they all parse,
+get formatter working, correct a few productions.</sitem>
+<sitem>1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and organizational
+changes: Replace a few literals with xmlpio and pic entities, to make them
+consistent and ensure we can change pic reliably when the ERB votes. Drop
+paragraph on recognizers from notation section. Add match, exact match to
+terminology. Move old 2.2 XML Processors and Apps into intro. Mention comments,
+PIs, and marked sections in discussion of delimiter escaping. Streamline discussion
+of doctype decl syntax. Drop old section of 'PI syntax' for doctype decl,
+and add section on partial-DTD summary PIs to end of Logical Structures section.
+Revise DSD syntax section to use Tim's subset-in-a-PI mechanism.</sitem>
+<sitem>1996-10-10 : TB : eliminate name recognizers (and more?)</sitem>
+<sitem>1996-10-09 : CMSMcQ : revise for style, consistency through 2.3 (Characters)</sitem>
+<sitem>1996-10-09 : CMSMcQ : re-unite everything for convenience, at least
+temporarily, and revise quickly</sitem>
+<sitem>1996-10-08 : TB : first major homogenization pass</sitem>
+<sitem>1996-10-08 : TB : turn "current" attribute on div type into CDATA</sitem>
+<sitem>1996-10-02 : TB : remould into skeleton + entities</sitem>
+<sitem>1996-09-30 : CMSMcQ : add a few more sections prior to exchange with
+Tim.</sitem>
+<sitem>1996-09-20 : CMSMcQ : finish transcribing notes.</sitem>
+<sitem>1996-09-19 : CMSMcQ : begin transcribing notes for draft.</sitem>
+<sitem>1996-09-13 : CMSMcQ : made outline from notes of 09-06, do some housekeeping</sitem>
+</slist>
+</revisiondesc>
+</header>
+<body>
+<div1 id="sec-intro">
+<head>Introduction</head>
+<p>Extensible Markup Language, abbreviated XML, describes a class of data
+objects called <termref def="dt-xml-doc">XML documents</termref> and partially
+describes the behavior of computer programs which process them. XML is an
+application profile or restricted form of SGML, the Standard Generalized Markup
+Language <bibref ref="ISO8879"/>. By construction, XML documents are conforming
+SGML documents.</p>
+<p>XML documents are made up of storage units called <termref def="dt-entity">entities</termref>,
+which contain either parsed or unparsed data. Parsed data is made up of <termref
+def="dt-character">characters</termref>, some of which form <termref def="dt-chardata">character
+data</termref>, and some of which form <termref def="dt-markup">markup</termref>.
+Markup encodes a description of the document's storage layout and logical
+structure. XML provides a mechanism to impose constraints on the storage layout
+and logical structure.</p>
+<p><termdef id="dt-xml-proc" term="XML Processor">A software module called
+an <term>XML processor</term> is used to read XML documents and provide access
+to their content and structure.</termdef> <termdef id="dt-app" term="Application">It
+is assumed that an XML processor is doing its work on behalf of another module,
+called the <term>application</term>.</termdef> This specification describes
+the required behavior of an XML processor in terms of how it must read XML
+data and the information it must provide to the application.</p>
+<div2 id="sec-origin-goals">
+<head>Origin and Goals</head>
+<p>XML was developed by an XML Working Group (originally known as the SGML
+Editorial Review Board) formed under the auspices of the World Wide Web Consortium
+(W3C) in 1996. It was chaired by Jon Bosak of Sun Microsystems with the active
+participation of an XML Special Interest Group (previously known as the SGML
+Working Group) also organized by the W3C. The membership of the XML Working
+Group is given in an appendix. Dan Connolly served as the WG's contact with
+the W3C.</p>
+<p>The design goals for XML are:</p>
+<olist>
+<item><p>XML shall be straightforwardly usable over the Internet.</p></item>
+<item><p>XML shall support a wide variety of applications.</p></item>
+<item><p>XML shall be compatible with SGML.</p></item>
+<item><p>It shall be easy to write programs which process XML documents.</p>
+</item>
+<item><p>The number of optional features in XML is to be kept to the absolute
+minimum, ideally zero.</p></item>
+<item><p>XML documents should be human-legible and reasonably clear.</p></item>
+<item><p>The XML design should be prepared quickly.</p></item>
+<item><p>The design of XML shall be formal and concise.</p></item>
+<item><p>XML documents shall be easy to create.</p></item>
+<item><p>Terseness in XML markup is of minimal importance.</p></item>
+</olist>
+<p>This specification, together with associated standards (Unicode and ISO/IEC
+10646 for characters, Internet RFC 1766 for language identification tags,
+ISO 639 for language name codes, and ISO 3166 for country name codes), provides
+all the information necessary to understand XML Version &versionOfXML; and
+construct computer programs to process it.</p>
+<p>This version of the XML specification <!-- is for &doc.audience;.--> &doc.distribution;.</p>
+</div2>
+<div2 id="sec-terminology">
+<head>Terminology</head>
+<p>The terminology used to describe XML documents is defined in the body of
+this specification. The terms defined in the following list are used in building
+those definitions and in describing the actions of an XML processor: <glist>
+<gitem><label>may</label>
+<def>
+<p><termdef id="dt-may" term="May">Conforming documents and XML processors
+are permitted to but need not behave as described.</termdef></p>
+</def></gitem>
+<gitem><label>must</label>
+<def>
+<p><termdef id="dt-must" term="Must">Conforming documents and XML processors
+are required to behave as described; otherwise they are in error. <!-- do NOT change this! this is what defines a violation of
+a 'must' clause as 'an error'. -MSM --></termdef></p>
+</def></gitem>
+<gitem><label>error</label>
+<def>
+<p><termdef id="dt-error" term="Error">A violation of the rules of this specification;
+results are undefined. Conforming software may detect and report an error
+and may recover from it.</termdef></p>
+</def></gitem>
+<gitem><label>fatal error</label>
+<def>
+<p><termdef id="dt-fatal" term="Fatal Error">An error which a conforming <termref
+def="dt-xml-proc">XML processor</termref> must detect and report to the application.
+After encountering a fatal error, the processor may continue processing the
+data to search for further errors and may report such errors to the application.
+In order to support correction of errors, the processor may make unprocessed
+data from the document (with intermingled character data and markup) available
+to the application. Once a fatal error is detected, however, the processor
+must not continue normal processing (i.e., it must not continue to pass character
+data and information about the document's logical structure to the application
+in the normal way).</termdef></p>
+</def></gitem>
+<gitem><label>at user option</label>
+<def>
+<p><termdef id="dt-atuseroption" term="At user option">Conforming software
+may or must (depending on the modal verb in the sentence) behave as described;
+if it does, it must provide users a means to enable or disable the behavior
+described.</termdef></p>
+</def></gitem>
+<gitem><label>validity constraint</label>
+<def>
+<p><termdef id="dt-vc" term="Validity constraint">A rule which applies to
+all <termref def="dt-valid">valid</termref> XML documents. Violations of validity
+constraints are errors; they must, at user option, be reported by <termref
+def="dt-validating">validating XML processors</termref>.</termdef></p>
+</def></gitem>
+<gitem><label>well-formedness constraint</label>
+<def>
+<p><termdef id="dt-wfc" term="Well-formedness constraint">A rule which applies
+to all <termref def="dt-wellformed">well-formed</termref> XML documents. Violations
+of well-formedness constraints are <termref def="dt-fatal">fatal errors</termref>.</termdef></p>
+</def></gitem>
+<gitem><label>match</label>
+<def>
+<p><termdef id="dt-match" term="match">(Of strings or names:) Two strings
+or names being compared must be identical. Characters with multiple possible
+representations in ISO/IEC 10646 (e.g. characters with both precomposed and
+base+diacritic forms) match only if they have the same representation in both
+strings. <phrase diff="del"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E85">[E85]</loc>At
+user option, processors may normalize such characters to some canonical form. </phrase>No
+case folding is performed. (Of strings and rules in the grammar:) A string
+matches a grammatical production if it belongs to the language generated by
+that production. (Of content and content models:) An element matches its declaration
+when it conforms in the fashion described in the constraint <specref ref="elementvalid"/>.</termdef></p>
+</def></gitem>
+<gitem><label>for compatibility</label>
+<def>
+<p><termdef id="dt-compat" term="For Compatibility"><phrase diff="add"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E87">[E87]</loc>Marks
+a sentence describing</phrase> a feature of XML included solely to ensure
+that XML remains compatible with SGML.</termdef></p>
+</def></gitem>
+<gitem><label>for interoperability</label>
+<def>
+<p><termdef id="dt-interop" term="For interoperability"><phrase diff="add"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E87">[E87]</loc>Marks
+a sentence describing</phrase> a non-binding recommendation included to increase
+the chances that XML documents can be processed by the existing installed
+base of SGML processors which predate the &WebSGML;.</termdef></p>
+</def></gitem>
+</glist></p>
+</div2>
+</div1>
+<!-- &Docs; -->
+<div1 id="sec-documents">
+<head>Documents</head>
+<p><termdef id="dt-xml-doc" term="XML Document"> A data object is an <term>XML
+document</term> if it is <termref def="dt-wellformed">well-formed</termref>,
+as defined in this specification. A well-formed XML document may in addition
+be <termref def="dt-valid">valid</termref> if it meets certain further constraints.</termdef></p>
+<p>Each XML document has both a logical and a physical structure. Physically,
+the document is composed of units called <termref def="dt-entity">entities</termref>.
+An entity may <termref def="dt-entref">refer</termref> to other entities to
+cause their inclusion in the document. A document begins in a <quote>root</quote>
+or <termref def="dt-docent">document entity</termref>. Logically, the document
+is composed of declarations, elements, comments, character references, and
+processing instructions, all of which are indicated in the document by explicit
+markup. The logical and physical structures must nest properly, as described
+in <specref ref="wf-entities"/>.</p>
+<div2 id="sec-well-formed">
+<head>Well-Formed XML Documents</head>
+<p><termdef id="dt-wellformed" term="Well-Formed"> A textual object is a <term>well-formed</term>
+XML document if:</termdef></p>
+<olist>
+<item><p>Taken as a whole, it matches the production labeled <nt def="NT-document">document</nt>.</p>
+</item>
+<item><p>It meets all the well-formedness constraints given in this specification.</p>
+</item>
+<item><p>Each of the <termref def="dt-parsedent">parsed entities</termref>
+which is referenced directly or indirectly within the document is <termref
+def="dt-wellformed">well-formed</termref>.</p></item>
+</olist>
+<scrap id="document" lang="ebnf">
+<head>Document</head>
+<prod id="NT-document">
+<lhs>document</lhs><rhs><nt def="NT-prolog">prolog</nt> <nt def="NT-element">element</nt> <nt
+def="NT-Misc">Misc</nt>*</rhs>
+</prod>
+</scrap>
+<p>Matching the <nt def="NT-document">document</nt> production implies that:</p>
+<olist>
+<item><p>It contains one or more <termref def="dt-element">elements</termref>.</p>
+</item>
+<!--* N.B. some readers (notably JC) find the following
+paragraph awkward and redundant. I agree it's logically redundant:
+it *says* it is summarizing the logical implications of
+matching the grammar, and that means by definition it's
+logically redundant. I don't think it's rhetorically
+redundant or unnecessary, though, so I'm keeping it. It
+could however use some recasting when the editors are feeling
+stronger. -MSM *-->
+<item><p><termdef id="dt-root" term="Root Element">There is exactly one element,
+called the <term>root</term>, or document element, no part of which appears
+in the <termref def="dt-content">content</termref> of any other element.</termdef> <phrase
+diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E17">[E17]</loc>For
+all other elements, if the <termref def="dt-stag">start-tag</termref> is in
+the content of another element, the <termref def="dt-etag">end-tag</termref>
+is in the content of the same element.</phrase> More simply stated, the elements,
+delimited by start- and end-tags, nest properly within each other.</p></item>
+</olist>
+<p><termdef id="dt-parentchild" term="Parent/Child">As a consequence of this,
+for each non-root element <el>C</el> in the document, there is one other element <el>P</el>
+in the document such that <el>C</el> is in the content of <el>P</el>, but
+is not in the content of any other element that is in the content of <el>P</el>. <el>P</el>
+is referred to as the <term>parent</term> of <el>C</el>, and <el>C</el> as
+a <term>child</term> of <el>P</el>.</termdef></p>
+</div2>
+<div2 id="charsets">
+<head>Characters</head>
+<p><termdef id="dt-text" term="Text">A parsed entity contains <term>text</term>,
+a sequence of <termref def="dt-character">characters</termref>, which may
+represent markup or character data.</termdef> <termdef id="dt-character" term="Character">A <term>character</term>
+is an atomic unit of text as specified by ISO/IEC 10646 <bibref ref="ISO10646"/> <phrase
+diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</loc>(see
+also <bibref ref="ISO10646-2000"/>)</phrase>. Legal characters are tab, carriage
+return, line feed, and the legal <phrase diff="del"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E35">[E35]</loc>graphic </phrase>characters
+of Unicode and ISO/IEC 10646. <phrase diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E69">[E69]</loc>The
+versions of these standards cited in <specref ref="sec-existing-stds"/> were
+current at the time this document was prepared. New characters may be added
+to these standards by amendments or new editions. Consequently, XML processors
+must accept any character in the range specified for <nt def="NT-Char">Char</nt>.</phrase>
+The use of <quote>compatibility characters</quote>, as defined in section
+6.8 of <bibref ref="Unicode"/> <phrase diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</loc>(see
+also D21 in section 3.6 of <bibref ref="Unicode3"/>)</phrase>, is discouraged.</termdef></p>
+<scrap id="char32" lang="ebnf">
+<head>Character Range</head>
+<prodgroup pcw2="4" pcw4="17.5" pcw5="11">
+<prod id="NT-Char">
+<lhs>Char</lhs><rhs>#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]</rhs>
+<com>any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.</com>
+</prod>
+</prodgroup></scrap>
+<p>The mechanism for encoding character code points into bit patterns may
+vary from entity to entity. All XML processors must accept the UTF-8 and UTF-16
+encodings of 10646; the mechanisms for signaling which of the two is in use,
+or for bringing other encodings into play, are discussed later, in <specref
+ref="charencoding"/>.</p>
+<!--
+<p>Regardless of the specific encoding used, any character in
+the ISO/IEC 10646 character set may be referred to by the decimal
+or hexadecimal equivalent of its UCS-4 code value.
+</p>-->
+</div2>
+<div2 id="sec-common-syn">
+<head>Common Syntactic Constructs</head>
+<p>This section defines some symbols used widely in the grammar.</p>
+<p><nt def="NT-S">S</nt> (white space) consists of one or more space (#x20)
+characters, carriage returns, line feeds, or tabs.</p>
+<scrap id="white" lang="ebnf">
+<head>White Space</head>
+<prodgroup pcw2="4" pcw4="17.5" pcw5="11">
+<prod id="NT-S">
+<lhs>S</lhs><rhs>(#x20 | #x9 | #xD | #xA)+</rhs>
+</prod>
+</prodgroup></scrap>
+<p>Characters are classified for convenience as letters, digits, or other
+characters. <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E30">[E30]</loc>A
+letter consists of an alphabetic or syllabic base character or an ideographic
+character.</phrase> Full definitions of the specific characters in each class
+are given in <specref ref="CharClasses"/>.</p>
+<p><termdef id="dt-name" term="Name">A <term>Name</term> is a token beginning
+with a letter or one of a few punctuation characters, and continuing with
+letters, digits, hyphens, underscores, colons, or full stops, together known
+as name characters.</termdef> Names beginning with the string <quote><code>xml</code></quote>,
+or any string which would match <code>(('X'|'x') ('M'|'m') ('L'|'l'))</code>,
+are reserved for standardization in this or future versions of this specification.</p>
+<note>
+<p diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E98">[E98]</loc>The
+Namespaces in XML Recommendation <bibref ref="xml-names"/> assigns a meaning
+to names containing colon characters. Therefore, authors should not use the
+colon in XML names except for namespace purposes, but XML processors must
+accept the colon as a name character.</p>
+</note>
+<p>An <nt def="NT-Nmtoken">Nmtoken</nt> (name token) is any mixture of name
+characters.</p>
+<scrap lang="ebnf">
+<head>Names and Tokens</head>
+<prod id="NT-NameChar">
+<lhs>NameChar</lhs><rhs><nt def="NT-Letter">Letter</nt> | <nt def="NT-Digit">Digit</nt>
+| '.' | '-' | '_' | ':' | <nt def="NT-CombiningChar">CombiningChar</nt> | <nt
+def="NT-Extender">Extender</nt></rhs>
+</prod>
+<prod id="NT-Name">
+<lhs>Name</lhs><rhs>(<nt def="NT-Letter">Letter</nt> | '_' | ':') (<nt def="NT-NameChar">NameChar</nt>)*</rhs>
+</prod>
+<prod id="NT-Names">
+<lhs>Names</lhs><rhs><nt def="NT-Name">Name</nt> (<nt def="NT-S">S</nt> <nt
+def="NT-Name">Name</nt>)*</rhs>
+</prod>
+<prod id="NT-Nmtoken">
+<lhs>Nmtoken</lhs><rhs>(<nt def="NT-NameChar">NameChar</nt>)+</rhs>
+</prod>
+<prod id="NT-Nmtokens">
+<lhs>Nmtokens</lhs><rhs><nt def="NT-Nmtoken">Nmtoken</nt> (<nt def="NT-S">S</nt> <nt
+def="NT-Nmtoken">Nmtoken</nt>)*</rhs>
+</prod>
+</scrap>
+<p>Literal data is any quoted string not containing the quotation mark used
+as a delimiter for that string. Literals are used for specifying the content
+of internal entities (<nt def="NT-EntityValue">EntityValue</nt>), the values
+of attributes (<nt def="NT-AttValue">AttValue</nt>), and external identifiers
+(<nt def="NT-SystemLiteral">SystemLiteral</nt>). Note that a <nt def="NT-SystemLiteral">SystemLiteral</nt>
+can be parsed without scanning for markup.</p>
+<scrap lang="ebnf">
+<head>Literals</head>
+<prod id="NT-EntityValue">
+<lhs>EntityValue</lhs><rhs>'"' ([^%&amp;"] | <nt def="NT-PEReference">PEReference</nt>
+| <nt def="NT-Reference">Reference</nt>)* '"' </rhs>
+<rhs>|&nbsp; "'" ([^%&amp;'] | <nt def="NT-PEReference">PEReference</nt> | <nt
+def="NT-Reference">Reference</nt>)* "'"</rhs>
+</prod>
+<prod id="NT-AttValue">
+<lhs>AttValue</lhs><rhs>'"' ([^&lt;&amp;"] | <nt def="NT-Reference">Reference</nt>)*
+'"' </rhs>
+<rhs>|&nbsp; "'" ([^&lt;&amp;'] | <nt def="NT-Reference">Reference</nt>)*
+"'"</rhs>
+</prod>
+<prod id="NT-SystemLiteral">
+<lhs>SystemLiteral</lhs><rhs>('"' [^"]* '"') |&nbsp;("'" [^']* "'") </rhs>
+</prod>
+<prod id="NT-PubidLiteral">
+<lhs>PubidLiteral</lhs><rhs>'"' <nt def="NT-PubidChar">PubidChar</nt>* '"'
+| "'" (<nt def="NT-PubidChar">PubidChar</nt> - "'")* "'"</rhs>
+</prod>
+<prod id="NT-PubidChar">
+<lhs>PubidChar</lhs><rhs>#x20 | #xD | #xA |&nbsp;[a-zA-Z0-9] |&nbsp;[-'()+,./:=?;!*#@$_%]</rhs>
+</prod>
+</scrap>
+<note diff="add">
+<p><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E72">[E72]</loc>Although
+the <nt def="NT-EntityValue">EntityValue</nt> production allows the definition
+of an entity consisting of a single explicit <code>&lt;</code> in the literal
+(e.g., <code>&lt;!ENTITY mylt "&lt;"></code>), it is strongly advised to avoid
+this practice since any reference to that entity will cause a well-formedness
+error.</p>
+</note>
+</div2>
+<div2 id="syntax">
+<head>Character Data and Markup</head>
+<p><termref def="dt-text">Text</termref> consists of intermingled <termref
+def="dt-chardata">character data</termref> and markup. <termdef id="dt-markup"
+term="Markup"><term>Markup</term> takes the form of <termref def="dt-stag">start-tags</termref>, <termref
+def="dt-etag">end-tags</termref>, <termref def="dt-empty">empty-element tags</termref>, <termref
+def="dt-entref">entity references</termref>, <termref def="dt-charref">character
+references</termref>, <termref def="dt-comment">comments</termref>, <termref
+def="dt-cdsection">CDATA section</termref> delimiters, <termref def="dt-doctype">document
+type declarations</termref>, <termref def="dt-pi">processing instructions</termref>, <phrase
+diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E89">[E89]</loc><nt
+def="NT-XMLDecl">XML declarations</nt>, <nt def="NT-TextDecl">text declarations</nt>,
+and any white space that is at the top level of the document entity (that
+is, outside the document element and not inside any other markup).</phrase></termdef></p>
+<p><termdef id="dt-chardata" term="Character Data">All text that is not markup
+constitutes the <term>character data</term> of the document.</termdef></p>
+<p>The ampersand character (&amp;) and the left angle bracket (&lt;) may appear
+in their literal form <emph>only</emph> when used as markup delimiters, or
+within a <termref def="dt-comment">comment</termref>, a <termref def="dt-pi">processing
+instruction</termref>, or a <termref def="dt-cdsection">CDATA section</termref>.<phrase
+diff="del"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E18">[E18]</loc>They
+are also legal within the <termref def="dt-litentval">literal entity value</termref>
+of an internal entity declaration; see <specref ref="wf-entities"/>.</phrase> <!-- FINAL EDIT: restore internal entity decl or leave it out. -->
+If they are needed elsewhere, they must be <termref def="dt-escape">escaped</termref>
+using either <termref def="dt-charref">numeric character references</termref>
+or the strings <quote><code>&amp;amp;</code></quote> and <quote><code>&amp;lt;</code></quote>
+respectively. The right angle bracket (>) may be represented using the string <quote><code>&amp;gt;</code></quote>,
+and must, <termref def="dt-compat">for compatibility</termref>, be escaped
+using <quote><code>&amp;gt;</code></quote> or a character reference when it
+appears in the string <quote><code>]]&gt;</code></quote> in content, when
+that string is not marking the end of a <termref def="dt-cdsection">CDATA
+section</termref>.</p>
+<p>In the content of elements, character data is any string of characters
+which does not contain the start-delimiter of any markup. In a CDATA section,
+character data is any string of characters not including the CDATA-section-close
+delimiter, <quote><code>]]&gt;</code></quote>.</p>
+<p>To allow attribute values to contain both single and double quotes, the
+apostrophe or single-quote character (') may be represented as <quote><code>&amp;apos;</code></quote>,
+and the double-quote character (") as <quote><code>&amp;quot;</code></quote>.</p>
+<scrap lang="ebnf">
+<head>Character Data</head>
+<prod id="NT-CharData">
+<lhs>CharData</lhs><rhs>[^&lt;&amp;]* - ([^&lt;&amp;]* ']]&gt;' [^&lt;&amp;]*)</rhs>
+</prod>
+</scrap>
+</div2>
+<div2 id="sec-comments">
+<head>Comments</head>
+<p><termdef id="dt-comment" term="Comment"><term>Comments</term> may appear
+anywhere in a document outside other <termref def="dt-markup">markup</termref>;
+in addition, they may appear within the document type declaration at places
+allowed by the grammar. They are not part of the document's <termref def="dt-chardata">character
+data</termref>; an XML processor may, but need not, make it possible for an
+application to retrieve the text of comments. <termref def="dt-compat">For
+compatibility</termref>, the string <quote><code>--</code></quote> (double-hyphen)
+must not occur within comments.</termdef> <phrase diff="add"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E63">[E63]</loc>Parameter
+entity references are not recognized within comments.</phrase></p>
+<scrap lang="ebnf">
+<head>Comments</head>
+<prod id="NT-Comment">
+<lhs>Comment</lhs><rhs>'&lt;!--' ((<nt def="NT-Char">Char</nt> - '-') | ('-'
+(<nt def="NT-Char">Char</nt> - '-')))* '-->'</rhs>
+</prod>
+</scrap>
+<p>An example of a comment:</p>
+<eg>&lt;!&como; declarations for &lt;head> &amp; &lt;body> &comc;></eg>
+<p diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E27">[E27]</loc>Note
+that the grammar does not allow a comment ending in <code>---></code>. The
+following example is <emph>not</emph> well-formed.</p>
+<eg diff="add">&lt;!-- B+, B, or B---></eg>
+</div2>
+<div2 id="sec-pi">
+<head>Processing Instructions</head>
+<p><termdef id="dt-pi" term="Processing instruction"><term>Processing instructions</term>
+(PIs) allow documents to contain instructions for applications.</termdef></p>
+<scrap lang="ebnf">
+<head>Processing Instructions</head>
+<prod id="NT-PI">
+<lhs>PI</lhs><rhs>'&lt;?' <nt def="NT-PITarget">PITarget</nt> (<nt def="NT-S">S</nt>
+(<nt def="NT-Char">Char</nt>* - (<nt def="NT-Char">Char</nt>* &pic; <nt def="NT-Char">Char</nt>*)))? &pic;</rhs>
+</prod>
+<prod id="NT-PITarget">
+<lhs>PITarget</lhs><rhs><nt def="NT-Name">Name</nt> - (('X' | 'x') ('M' |
+'m') ('L' | 'l'))</rhs>
+</prod>
+</scrap>
+<p>PIs are not part of the document's <termref def="dt-chardata">character
+data</termref>, but must be passed through to the application. The PI begins
+with a target (<nt def="NT-PITarget">PITarget</nt>) used to identify the application
+to which the instruction is directed. The target names <quote><code>XML</code></quote>, <quote><code>xml</code></quote>,
+and so on are reserved for standardization in this or future versions of this
+specification. The XML <termref def="dt-notation">Notation</termref> mechanism
+may be used for formal declaration of PI targets. <phrase diff="add"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E63">[E63]</loc>Parameter
+entity references are not recognized within processing instructions.</phrase></p>
+</div2>
+<div2 id="sec-cdata-sect">
+<head>CDATA Sections</head>
+<p><termdef id="dt-cdsection" term="CDATA Section"><term>CDATA sections</term>
+may occur anywhere character data may occur; they are used to escape blocks
+of text containing characters which would otherwise be recognized as markup.
+CDATA sections begin with the string <quote><code>&lt;![CDATA[</code></quote>
+and end with the string <quote><code>]]&gt;</code></quote>:</termdef></p>
+<scrap lang="ebnf">
+<head>CDATA Sections</head>
+<prod id="NT-CDSect">
+<lhs>CDSect</lhs><rhs><nt def="NT-CDStart">CDStart</nt> <nt def="NT-CData">CData</nt> <nt
+def="NT-CDEnd">CDEnd</nt></rhs>
+</prod>
+<prod id="NT-CDStart">
+<lhs>CDStart</lhs><rhs>'&lt;![CDATA['</rhs>
+</prod>
+<prod id="NT-CData">
+<lhs>CData</lhs><rhs>(<nt def="NT-Char">Char</nt>* - (<nt def="NT-Char">Char</nt>*
+']]&gt;' <nt def="NT-Char">Char</nt>*)) </rhs>
+</prod>
+<prod id="NT-CDEnd">
+<lhs>CDEnd</lhs><rhs>']]&gt;'</rhs>
+</prod>
+</scrap>
+<p>Within a CDATA section, only the <nt def="NT-CDEnd">CDEnd</nt> string is
+recognized as markup, so that left angle brackets and ampersands may occur
+in their literal form; they need not (and cannot) be escaped using <quote><code>&amp;lt;</code></quote>
+and <quote><code>&amp;amp;</code></quote>. CDATA sections cannot nest.</p>
+<p>An example of a CDATA section, in which <quote><code>&lt;greeting></code></quote>
+and <quote><code>&lt;/greeting></code></quote> are recognized as <termref
+def="dt-chardata">character data</termref>, not <termref def="dt-markup">markup</termref>:</p>
+<eg>&lt;![CDATA[&lt;greeting>Hello, world!&lt;/greeting>]]&gt; </eg>
+</div2>
+<div2 id="sec-prolog-dtd">
+<head>Prolog and Document Type Declaration</head>
+<p><termdef id="dt-xmldecl" term="XML Declaration">XML documents <phrase diff="chg"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E107">[E107]</loc>should</phrase>
+begin with an <term>XML declaration</term> which specifies the version of
+XML being used.</termdef> For example, the following is a complete XML document, <termref
+def="dt-wellformed">well-formed</termref> but not <termref def="dt-valid">valid</termref>:</p>
+<eg><![CDATA[<?xml version="1.0"?> <greeting>Hello, world!</greeting> ]]></eg>
+<p>and so is this:</p>
+<eg><![CDATA[<greeting>Hello, world!</greeting>]]></eg>
+<p>The version number <quote><code>1.0</code></quote> should be used to indicate
+conformance to this version of this specification; it is an error for a document
+to use the value <quote><code>1.0</code></quote> if it does not conform to
+this version of this specification. It is the intent of the XML working group
+to give later versions of this specification numbers other than <quote><code>1.0</code></quote>,
+but this intent does not indicate a commitment to produce any future versions
+of XML, nor if any are produced, to use any particular numbering scheme. Since
+future versions are not ruled out, this construct is provided as a means to
+allow the possibility of automatic version recognition, should it become necessary.
+Processors may signal an error if they receive documents labeled with versions
+they do not support.</p>
+<p>The function of the markup in an XML document is to describe its storage
+and logical structure and to associate attribute-value pairs with its logical
+structures. XML provides a mechanism, the <termref def="dt-doctype">document
+type declaration</termref>, to define constraints on the logical structure
+and to support the use of predefined storage units. <termdef id="dt-valid"
+term="Validity">An XML document is <term>valid</term> if it has an associated
+document type declaration and if the document complies with the constraints
+expressed in it.</termdef></p>
+<p>The document type declaration must appear before the first <termref def="dt-element">element</termref>
+in the document.</p>
+<scrap id="xmldoc" lang="ebnf">
+<head>Prolog</head>
+<prodgroup pcw2="6" pcw4="17.5" pcw5="9">
+<prod id="NT-prolog">
+<lhs>prolog</lhs><rhs><nt def="NT-XMLDecl">XMLDecl</nt>? <nt def="NT-Misc">Misc</nt>*
+(<nt def="NT-doctypedecl">doctypedecl</nt> <nt def="NT-Misc">Misc</nt>*)?</rhs>
+</prod>
+<prod id="NT-XMLDecl">
+<lhs>XMLDecl</lhs><rhs>&pio; <nt def="NT-VersionInfo">VersionInfo</nt> <nt
+def="NT-EncodingDecl">EncodingDecl</nt>? <nt def="NT-SDDecl">SDDecl</nt>? <nt
+def="NT-S">S</nt>? &pic;</rhs>
+</prod>
+<prod id="NT-VersionInfo" diff="chg">
+<lhs>VersionInfo</lhs><rhs><nt def="NT-S">S</nt> 'version' <nt def="NT-Eq">Eq</nt>
+("'" <nt def="NT-VersionNum">VersionNum</nt> "'" | '"' <nt def="NT-VersionNum">VersionNum</nt>
+'"')<com><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E15">[E15]</loc></com></rhs>
+</prod>
+<prod id="NT-Eq">
+<lhs>Eq</lhs><rhs><nt def="NT-S">S</nt>? '=' <nt def="NT-S">S</nt>?</rhs>
+</prod>
+<prod id="NT-VersionNum">
+<lhs>VersionNum</lhs><rhs>([a-zA-Z0-9_.:] | '-')+</rhs>
+</prod>
+<prod id="NT-Misc">
+<lhs>Misc</lhs><rhs><nt def="NT-Comment">Comment</nt> | <nt def="NT-PI">PI</nt>
+| <nt def="NT-S">S</nt></rhs>
+</prod>
+</prodgroup></scrap>
+<p><termdef id="dt-doctype" term="Document Type Declaration">The XML <term>document
+type declaration</term> contains or points to <termref def="dt-markupdecl">markup
+declarations</termref> that provide a grammar for a class of documents. This
+grammar is known as a document type definition, or <term>DTD</term>. The document
+type declaration can point to an external subset (a special kind of <termref
+def="dt-extent">external entity</termref>) containing markup declarations,
+or can contain the markup declarations directly in an internal subset, or
+can do both. The DTD for a document consists of both subsets taken together.</termdef></p>
+<p><termdef id="dt-markupdecl" term="markup declaration"> A <term>markup declaration</term>
+is an <termref def="dt-eldecl">element type declaration</termref>, an <termref
+def="dt-attdecl">attribute-list declaration</termref>, an <termref def="dt-entdecl">entity
+declaration</termref>, or a <termref def="dt-notdecl">notation declaration</termref>.</termdef>
+These declarations may be contained in whole or in part within <termref def="dt-PE">parameter
+entities</termref>, as described in the well-formedness and validity constraints
+below. For <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E14">[E14]</loc>further</phrase>
+information, see <specref ref="sec-physical-struct"/>.</p>
+<scrap id="dtd" lang="ebnf">
+<head>Document Type Definition</head>
+<prodgroup pcw2="6" pcw4="17.5" pcw5="9">
+<prod id="NT-doctypedecl" diff="chg">
+<lhs>doctypedecl</lhs><rhs>'&lt;!DOCTYPE' <nt def="NT-S">S</nt> <nt def="NT-Name">Name</nt>
+(<nt def="NT-S">S</nt> <nt def="NT-ExternalID">ExternalID</nt>)? <nt def="NT-S">S</nt>?
+('[' (<nt def="NT-markupdecl">markupdecl</nt> | <nt diff="chg" def="NT-DeclSep">DeclSep</nt>)*
+']' <nt def="NT-S">S</nt>?)? '>'</rhs><vc def="vc-roottype"/><wfc def="ExtSubset"
+diff="add"/><com><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</loc></com>
+</prod>
+<prod id="NT-DeclSep" diff="add">
+<lhs>DeclSep</lhs><rhs><nt def="NT-PEReference">PEReference</nt> | <nt def="NT-S">S</nt></rhs>
+<wfc def="PE-between-Decls" diff="add"/><com><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</loc></com>
+</prod>
+<prod id="NT-markupdecl">
+<lhs>markupdecl</lhs><rhs><nt def="NT-elementdecl">elementdecl</nt> | <nt
+def="NT-AttlistDecl">AttlistDecl</nt> | <nt def="NT-EntityDecl">EntityDecl</nt>
+| <nt def="NT-NotationDecl">NotationDecl</nt> | <nt def="NT-PI">PI</nt> | <nt
+def="NT-Comment">Comment</nt> </rhs><vc def="vc-PEinMarkupDecl"/><wfc def="wfc-PEinInternalSubset"/>
+</prod>
+</prodgroup></scrap>
+<p diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E82">[E82]</loc>Note
+that it is possible to construct a well-formed document containing a <nt def="NT-doctypedecl">doctypedecl</nt>
+that neither points to an external subset nor contains an internal subset.</p>
+<p>The markup declarations may be made up in whole or in part of the <termref
+def="dt-repltext">replacement text</termref> of <termref def="dt-PE">parameter
+entities</termref>. The productions later in this specification for individual
+nonterminals (<nt def="NT-elementdecl">elementdecl</nt>, <nt def="NT-AttlistDecl">AttlistDecl</nt>,
+and so on) describe the declarations <emph>after</emph> all the parameter
+entities have been <termref def="dt-include">included</termref>.</p>
+<p diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E75">[E75]</loc>Parameter
+entity references are recognized anywhere in the DTD (internal and external
+subsets and external parameter entities), except in literals, processing instructions,
+comments, and the contents of ignored conditional sections (see <specref ref="sec-condition-sect"/>).
+They are also recognized in entity value literals. The use of parameter entities
+in the internal subset is restricted as described below.</p>
+<vcnote id="vc-roottype"><head>Root Element Type</head><p>The <nt def="NT-Name">Name</nt>
+in the document type declaration must match the element type of the <termref
+def="dt-root">root element</termref>.</p>
+</vcnote>
+<vcnote id="vc-PEinMarkupDecl"><head>Proper Declaration/PE Nesting</head>
+<p>Parameter-entity <termref def="dt-repltext">replacement text</termref>
+must be properly nested with markup declarations. That is to say, if either
+the first character or the last character of a markup declaration (<nt def="NT-markupdecl">markupdecl</nt>
+above) is contained in the replacement text for a <termref def="dt-PERef">parameter-entity
+reference</termref>, both must be contained in the same replacement text.</p>
+</vcnote>
+<wfcnote id="wfc-PEinInternalSubset"><head>PEs in Internal Subset</head><p>In
+the internal DTD subset, <termref def="dt-PERef">parameter-entity references</termref>
+can occur only where markup declarations can occur, not within markup declarations.
+(This does not apply to references that occur in external parameter entities
+or to the external subset.)</p>
+</wfcnote>
+<wfcnote id="ExtSubset" diff="add"><head><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</loc>External
+Subset</head><p>The external subset, if any, must match the production for <nt
+def="NT-extSubset">extSubset</nt>.</p>
+</wfcnote>
+<wfcnote id="PE-between-Decls" diff="add"><head><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</loc>PE
+Between Declarations</head><p>The replacement text of a parameter entity reference
+in a <nt def="NT-DeclSep">DeclSep</nt> must match the production <nt def="NT-extSubsetDecl">extSubsetDecl</nt>.</p>
+</wfcnote>
+<p>Like the internal subset, the external subset and any external parameter
+entities <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</loc>referenced
+in a <nt def="NT-DeclSep">DeclSep</nt></phrase> must consist of a series of
+complete markup declarations of the types allowed by the non-terminal symbol <nt
+def="NT-markupdecl">markupdecl</nt>, interspersed with white space or <termref
+def="dt-PERef">parameter-entity references</termref>. However, portions of
+the contents of the external subset or of <phrase diff="add"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</loc>these </phrase>
+external parameter entities may conditionally be ignored by using the <termref
+def="dt-cond-section">conditional section</termref> construct; this is not
+allowed in the internal subset.</p>
+<scrap id="ext-Subset">
+<head>External Subset</head>
+<prodgroup pcw2="6" pcw4="17.5" pcw5="9">
+<prod id="NT-extSubset">
+<lhs>extSubset</lhs><rhs><nt def="NT-TextDecl">TextDecl</nt>? <nt def="NT-extSubsetDecl">extSubsetDecl</nt></rhs>
+</prod>
+<prod id="NT-extSubsetDecl" diff="chg">
+<lhs>extSubsetDecl</lhs><rhs>( <nt def="NT-markupdecl">markupdecl</nt> | <nt
+def="NT-conditionalSect">conditionalSect</nt> | <nt diff="chg" def="NT-DeclSep">DeclSep</nt>)*</rhs>
+<com><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</loc></com>
+</prod>
+</prodgroup></scrap>
+<p>The external subset and external parameter entities also differ from the
+internal subset in that in them, <termref def="dt-PERef">parameter-entity
+references</termref> are permitted <emph>within</emph> markup declarations,
+not only <emph>between</emph> markup declarations.</p>
+<p>An example of an XML document with a document type declaration:</p>
+<eg><![CDATA[<?xml version="1.0"?> <!DOCTYPE greeting SYSTEM "hello.dtd"> <greeting>Hello, world!</greeting> ]]></eg>
+<p>The <termref def="dt-sysid">system identifier</termref> <quote><code>hello.dtd</code></quote>
+gives the <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E78">[E78]</loc>address
+(a URI reference)</phrase> of a DTD for the document.</p>
+<p>The declarations can also be given locally, as in this example:</p>
+<eg><![CDATA[<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE greeting [
+  <!ELEMENT greeting (#PCDATA)>
+]>
+<greeting>Hello, world!</greeting>]]></eg>
+<p>If both the external and internal subsets are used, the internal subset
+is considered to occur before the external subset. <!-- 'is considered to'? boo. whazzat mean? -->
+This has the effect that entity and attribute-list declarations in the internal
+subset take precedence over those in the external subset.</p>
+</div2>
+<div2 id="sec-rmd">
+<head>Standalone Document Declaration</head>
+<p>Markup declarations can affect the content of the document, as passed from
+an <termref def="dt-xml-proc">XML processor</termref> to an application; examples
+are attribute defaults and entity declarations. The standalone document declaration,
+which may appear as a component of the XML declaration, signals whether or
+not there are such declarations which appear external to the <termref def="dt-docent">document
+entity</termref><phrase diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E64">[E64]</loc>
+or in parameter entities. <termdef id="dt-extmkpdecl" term="External Markup Declaration">An <term>external
+markup declaration</term> is defined as a markup declaration occurring in
+the external subset or in a parameter entity (external or internal, the latter
+being included because non-validating processors are not required to read
+them).</termdef></phrase></p>
+<scrap id="fulldtd" lang="ebnf">
+<head>Standalone Document Declaration</head>
+<prodgroup pcw2="4" pcw4="19.5" pcw5="9">
+<prod id="NT-SDDecl">
+<lhs>SDDecl</lhs><rhs> <nt def="NT-S">S</nt> 'standalone' <nt def="NT-Eq">Eq</nt>
+(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"')) </rhs><vc def="vc-check-rmd"/>
+</prod>
+</prodgroup></scrap>
+<p>In a standalone document declaration, the value <attval>yes</attval> indicates
+that there are no <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E64">[E64]</loc><termref
+def="dt-extmkpdecl">external markup declarations</termref></phrase> which
+affect the information passed from the XML processor to the application. The
+value <attval>no</attval> indicates that there are or may be such external
+markup declarations. Note that the standalone document declaration only denotes
+the presence of external <emph>declarations</emph>; the presence, in a document,
+of references to external <emph>entities</emph>, when those entities are internally
+declared, does not change its standalone status.</p>
+<p>If there are no external markup declarations, the standalone document declaration
+has no meaning. If there are external markup declarations but there is no
+standalone document declaration, the value <attval>no</attval> is assumed.</p>
+<p>Any XML document for which <code>standalone="no"</code> holds can be converted
+algorithmically to a standalone document, which may be desirable for some
+network delivery applications.</p>
+<vcnote id="vc-check-rmd"><head>Standalone Document Declaration</head><p>The
+standalone document declaration must have the value <attval>no</attval> if
+any external markup declarations contain declarations of:</p>
+<ulist>
+<item><p>attributes with <termref def="dt-default">default</termref> values,
+if elements to which these attributes apply appear in the document without
+specifications of values for these attributes, or</p></item>
+<item><p>entities (other than &magicents;), if <termref def="dt-entref">references</termref>
+to those entities appear in the document, or</p></item>
+<item><p>attributes with values subject to <titleref href="#AVNormalize">normalization</titleref>,
+where the attribute appears in the document with a value which will change
+as a result of normalization, or</p></item>
+<item><p>element types with <termref def="dt-elemcontent">element content</termref>,
+if white space occurs directly within any instance of those types.</p></item>
+</ulist>
+</vcnote>
+<p>An example XML declaration with a standalone document declaration:</p>
+<eg>&lt;?xml version="&versionOfXML;" standalone='yes'?></eg>
+</div2>
+<div2 id="sec-white-space">
+<head>White Space Handling</head>
+<p>In editing XML documents, it is often convenient to use <quote>white space</quote>
+(spaces, tabs, and blank lines<phrase diff="del"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E39">[E39]</loc>,
+denoted by the nonterminal <nt def="NT-S">S</nt> in this specification</phrase>)
+to set apart the markup for greater readability. Such white space is typically
+not intended for inclusion in the delivered version of the document. On the
+other hand, <quote>significant</quote> white space that should be preserved
+in the delivered version is common, for example in poetry and source code.</p>
+<p>An <termref def="dt-xml-proc">XML processor</termref> must always pass
+all characters in a document that are not markup through to the application.
+A <termref def="dt-validating"> validating XML processor</termref> must also
+inform the application which of these characters constitute white space appearing
+in <termref def="dt-elemcontent">element content</termref>.</p>
+<p>A special <termref def="dt-attr">attribute</termref> named <att>xml:space</att>
+may be attached to an element to signal an intention that in that element,
+white space should be preserved by applications. In valid documents, this
+attribute, like any other, must be <termref def="dt-attdecl">declared</termref>
+if it is used. When declared, it must be given as an <termref def="dt-enumerated">enumerated
+type</termref> whose <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E81">[E81]</loc>values
+are one or both of</phrase> <attval>default</attval> and <attval>preserve</attval>.
+For example:</p>
+<eg diff="chg"><![CDATA[<!ATTLIST poem  xml:space (default|preserve) 'preserve'>]]>
+
+&lt;!-- <loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E81">[E81]</loc>-->
+&lt;!ATTLIST pre xml:space (preserve) #FIXED 'preserve'></eg>
+<p>The value <attval>default</attval> signals that applications' default white-space
+processing modes are acceptable for this element; the value <attval>preserve</attval>
+indicates the intent that applications preserve all the white space. This
+declared intent is considered to apply to all elements within the content
+of the element where it is specified, unless overriden with another instance
+of the <att>xml:space</att> attribute.</p>
+<p>The <termref def="dt-root">root element</termref> of any document is considered
+to have signaled no intentions as regards application space handling, unless
+it provides a value for this attribute or the attribute is declared with a
+default value.</p>
+</div2>
+<div2 id="sec-line-ends">
+<head>End-of-Line Handling</head>
+<p>XML <termref def="dt-parsedent">parsed entities</termref> are often stored
+in computer files which, for editing convenience, are organized into lines.
+These lines are typically separated by some combination of the characters
+carriage-return (#xD) and line-feed (#xA).</p>
+<p diff="del">To simplify the tasks of <termref def="dt-app">applications</termref>,
+wherever an external parsed entity or the literal entity value of an internal
+parsed entity contains either the literal two-character sequence <quote>#xD#xA</quote>
+or a standalone literal #xD, an <termref def="dt-xml-proc">XML processor</termref>
+must pass to the application the single character #xA. (This behavior can
+conveniently be produced by normalizing all line breaks to #xA on input, before
+parsing.)</p>
+<p diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E104">[E104]</loc>To
+simplify the tasks of <termref def="dt-app">applications</termref>, the characters
+passed to an application by the <termref def="dt-xml-proc">XML processor</termref>
+must be as if the XML processor normalized all line breaks in external parsed
+entities (including the document entity) on input, before parsing, by translating
+both the two-character sequence #xD #xA and any #xD that is not followed by
+#xA to a single #xA character.</p>
+</div2>
+<div2 id="sec-lang-tag">
+<head>Language Identification</head>
+<p>In document processing, it is often useful to identify the natural or formal
+language in which the content is written. A special <termref def="dt-attr">attribute</termref>
+named <att>xml:lang</att> may be inserted in documents to specify the language
+used in the contents and attribute values of any element in an XML document.
+In valid documents, this attribute, like any other, must be <termref def="dt-attdecl">declared</termref>
+if it is used. <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E73">[E73]</loc>The
+values of the attribute are language identifiers as defined by <bibref ref="RFC1766"/>, <titleref>Tags
+for the Identification of Languages</titleref>, or its successor on the IETF
+Standards Track.</phrase></p>
+<note diff="add">
+<p><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E73">[E73]</loc><bibref
+ref="RFC1766"/> tags are constructed from two-letter language codes as defined
+by <bibref ref="ISO639"/>, from two-letter country codes as defined by <bibref
+ref="ISO3166"/>, or from language identifiers registered with the Internet
+Assigned Numbers Authority <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E58">[E58]</loc><bibref
+diff="chg" ref="IANA-LANGCODES"/></phrase>. It is expected that the successor
+to <bibref ref="RFC1766"/> will introduce three-letter language codes for
+languages not presently covered by <bibref ref="ISO639"/>.</p>
+</note>
+<p diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E73">[E73]</loc>(Productions
+33 through 38 have been removed.)</p>
+<scrap diff="del" lang="ebnf">
+<head>Language Identification</head>
+<prod id="NT-LanguageID">
+<lhs>LanguageID</lhs><rhs><nt def="NT-Langcode">Langcode</nt> ('-' <nt def="NT-Subcode">Subcode</nt>)*</rhs>
+</prod>
+<prod id="NT-Langcode">
+<lhs>Langcode</lhs><rhs><nt def="NT-ISO639Code">ISO639Code</nt> | <nt def="NT-IanaCode">IanaCode</nt>
+| <nt def="NT-UserCode">UserCode</nt></rhs>
+</prod>
+<prod id="NT-ISO639Code">
+<lhs>ISO639Code</lhs><rhs>([a-z] | [A-Z]) ([a-z] | [A-Z])</rhs>
+</prod>
+<prod id="NT-IanaCode">
+<lhs>IanaCode</lhs><rhs>('i' | 'I') '-' ([a-z] | [A-Z])+</rhs>
+</prod>
+<prod id="NT-UserCode">
+<lhs>UserCode</lhs><rhs>('x' | 'X') '-' ([a-z] | [A-Z])+</rhs>
+</prod>
+<prod id="NT-Subcode">
+<lhs>Subcode</lhs><rhs>([a-z] | [A-Z])+</rhs>
+</prod>
+</scrap>
+<p diff="del">The <nt def="NT-Langcode">Langcode</nt> may be any of the following:</p>
+<ulist diff="del">
+<item><p>a two-letter language code as defined by <bibref ref="ISO639"/>, <titleref>Codes
+for the representation of names of languages</titleref></p></item>
+<item><p>a language identifier registered with the Internet Assigned Numbers
+Authority <bibref diff="chg" ref="IANA-LANGCODES"/>; these begin with the
+prefix <quote><code>i-</code></quote> (or <quote><code>I-</code></quote>)</p>
+</item>
+<item><p>a language identifier assigned by the user, or agreed on between
+parties in private use; these must begin with the prefix <quote><code>x-</code></quote>
+or <quote><code>X-</code></quote> in order to ensure that they do not conflict
+with names later standardized or registered with IANA</p></item>
+</ulist>
+<p diff="del">There may be any number of <nt def="NT-Subcode">Subcode</nt>
+segments; if the first subcode segment exists and the Subcode consists of
+two letters, then it must be a country code from <bibref ref="ISO3166"/>,
+"Codes for the representation of names of countries." If the first subcode
+consists of more than two letters, it must be a subcode for the language in
+question registered with IANA, unless the <nt def="NT-Langcode">Langcode</nt>
+begins with the prefix "<code>x-</code>" or "<code>X-</code>". </p>
+<p diff="del">It is customary to give the language code in lower case, and
+the country code (if any) in upper case. Note that these values, unlike other
+names in XML documents, are case insensitive.</p>
+<p>For example:</p>
+<eg><![CDATA[<p xml:lang="en">The quick brown fox jumps over the lazy dog.</p>
+<p xml:lang="en-GB">What colour is it?</p>
+<p xml:lang="en-US">What color is it?</p>
+<sp who="Faust" desc='leise' xml:lang="de">
+  <l>Habe nun, ach! Philosophie,</l>
+  <l>Juristerei, und Medizin</l>
+  <l>und leider auch Theologie</l>
+  <l>durchaus studiert mit heißem Bemüh'n.</l>
+</sp>]]></eg>
+<!--<p>The xml:lang value is considered to apply both to the contents of an
+element and
+(unless otherwise via attribute default values) to the
+values of all of its attributes with free-text (CDATA) values. -->
+<p>The intent declared with <att>xml:lang</att> is considered to apply to
+all attributes and content of the element where it is specified, unless overridden
+with an instance of <att>xml:lang</att> on another element within that content.</p>
+<!--
+If no
+value is specified for xml:lang on an element, and no default value is
+defined for it in the DTD, then the xml:lang attribute of any element
+takes the same value it has in the parent element, if any. The two
+technical terms in the following example both have the same effective
+value for xml:lang:
+
+  <p xml:lang="en">Here the keywords are
+  <term xml:lang="en">shift</term> and
+  <term>reduce</term>. ...</p>
+
+The application, not the XML processor, is responsible for this '
+inheritance' of attribute values.
+-->
+<p>A simple declaration for <att>xml:lang</att> might take the form</p>
+<eg>xml:lang NMTOKEN #IMPLIED</eg>
+<p>but specific default values may also be given, if appropriate. In a collection
+of French poems for English students, with glosses and notes in English, the <att>xml:lang</att>
+attribute might be declared this way:</p>
+<eg><![CDATA[<!ATTLIST poem   xml:lang NMTOKEN 'fr'>
+<!ATTLIST gloss  xml:lang NMTOKEN 'en'>
+<!ATTLIST note   xml:lang NMTOKEN 'en'>]]></eg>
+</div2>
+</div1>
+<!-- &Elements; -->
+<div1 id="sec-logical-struct">
+<head>Logical Structures</head>
+<p><termdef id="dt-element" term="Element">Each <termref def="dt-xml-doc">XML
+document</termref> contains one or more <term>elements</term>, the boundaries
+of which are either delimited by <termref def="dt-stag">start-tags</termref>
+and <termref def="dt-etag">end-tags</termref>, or, for <termref def="dt-empty">empty</termref>
+elements, by an <termref def="dt-eetag">empty-element tag</termref>. Each
+element has a type, identified by name, sometimes called its <quote>generic
+identifier</quote> (GI), and may have a set of attribute specifications.</termdef>
+Each attribute specification has a <termref def="dt-attrname">name</termref>
+and a <termref def="dt-attrval">value</termref>.</p>
+<scrap lang="ebnf">
+<head>Element</head>
+<prod id="NT-element">
+<lhs>element</lhs><rhs><nt def="NT-EmptyElemTag">EmptyElemTag</nt></rhs>
+<rhs>| <nt def="NT-STag">STag</nt> <nt def="NT-content">content</nt> <nt def="NT-ETag">ETag</nt></rhs>
+<wfc def="GIMatch"/><vc def="elementvalid"/>
+</prod>
+</scrap>
+<p>This specification does not constrain the semantics, use, or (beyond syntax)
+names of the element types and attributes, except that names beginning with
+a match to <code>(('X'|'x')('M'|'m')('L'|'l'))</code> are reserved for standardization
+in this or future versions of this specification.</p>
+<wfcnote id="GIMatch"><head>Element Type Match</head><p>The <nt def="NT-Name">Name</nt>
+in an element's end-tag must match the element type in the start-tag.</p>
+</wfcnote>
+<vcnote id="elementvalid"><head>Element Valid</head><p>An element is valid
+if there is a declaration matching <nt def="NT-elementdecl">elementdecl</nt>
+where the <nt def="NT-Name">Name</nt> matches the element type, and one of
+the following holds:</p>
+<olist>
+<item><p>The declaration matches <kw>EMPTY</kw> and the element has no <termref
+def="dt-content">content</termref>.</p></item>
+<item><p>The declaration matches <nt def="NT-children">children</nt> and the
+sequence of <termref def="dt-parentchild">child elements</termref> belongs
+to the language generated by the regular expression in the content model,
+with optional white space (characters matching the nonterminal <nt def="NT-S">S</nt>)
+between <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E59">[E59]</loc>the
+start-tag and the first child element, between child elements, or between
+the last child element and the end-tag. Note that a CDATA section containing
+only white space does not match the nonterminal <nt def="NT-S">S</nt>, and
+hence cannot appear in these positions.</phrase></p></item>
+<item><p>The declaration matches <nt def="NT-Mixed">Mixed</nt> and the content
+consists of <termref def="dt-chardata">character data</termref> and <termref
+def="dt-parentchild">child elements</termref> whose types match names in the
+content model.</p></item>
+<item><p>The declaration matches <kw>ANY</kw>, and the types of any <termref
+def="dt-parentchild">child elements</termref> have been declared.</p></item>
+</olist>
+</vcnote>
+<div2 id="sec-starttags">
+<head>Start-Tags, End-Tags, and Empty-Element Tags</head>
+<p><termdef id="dt-stag" term="Start-Tag">The beginning of every non-empty
+XML element is marked by a <term>start-tag</term>.</termdef></p>
+<scrap lang="ebnf">
+<head>Start-tag</head>
+<prodgroup pcw2="6" pcw4="15" pcw5="11.5">
+<prod id="NT-STag">
+<lhs>STag</lhs><rhs>'&lt;' <nt def="NT-Name">Name</nt> (<nt def="NT-S">S</nt> <nt
+def="NT-Attribute">Attribute</nt>)* <nt def="NT-S">S</nt>? '>'</rhs><wfc def="uniqattspec"/>
+</prod>
+<prod id="NT-Attribute">
+<lhs>Attribute</lhs><rhs><nt def="NT-Name">Name</nt> <nt def="NT-Eq">Eq</nt> <nt
+def="NT-AttValue">AttValue</nt></rhs><vc def="ValueType"/><wfc def="NoExternalRefs"/>
+<wfc def="CleanAttrVals"/>
+</prod>
+</prodgroup></scrap>
+<p>The <nt def="NT-Name">Name</nt> in the start- and end-tags gives the element's <term>type</term>. <termdef
+id="dt-attr" term="Attribute"> The <nt def="NT-Name">Name</nt>-<nt def="NT-AttValue">AttValue</nt>
+pairs are referred to as the <term>attribute specifications</term> of the
+element</termdef>, <termdef id="dt-attrname" term="Attribute Name">with the <nt
+def="NT-Name">Name</nt> in each pair referred to as the <term>attribute name</term></termdef>
+and <termdef id="dt-attrval" term="Attribute Value">the content of the <nt
+def="NT-AttValue">AttValue</nt> (the text between the <code>'</code> or <code>"</code>
+delimiters) as the <term>attribute value</term>.</termdef><phrase diff="add"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E46">[E46]</loc>Note
+that the order of attribute specifications in a start-tag or empty-element
+tag is not significant.</phrase></p>
+<wfcnote id="uniqattspec"><head>Unique Att Spec</head><p>No attribute name
+may appear more than once in the same start-tag or empty-element tag.</p>
+</wfcnote>
+<vcnote id="ValueType"><head>Attribute Value Type</head><p>The attribute must
+have been declared; the value must be of the type declared for it. (For attribute
+types, see <specref ref="attdecls"/>.)</p>
+</vcnote>
+<wfcnote id="NoExternalRefs"><head>No External Entity References</head><p>Attribute
+values cannot contain direct or indirect entity references to external entities.</p>
+</wfcnote>
+<wfcnote id="CleanAttrVals"><head>No <code>&lt;</code> in Attribute Values</head>
+<p>The <termref def="dt-repltext">replacement text</termref> of any entity
+referred to directly or indirectly in an attribute value <phrase diff="del"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E83">[E83]</loc>(other
+than <quote><code>&amp;lt;</code></quote>) </phrase>must not contain a <code>&lt;</code>.</p>
+</wfcnote>
+<p>An example of a start-tag:</p>
+<eg>&lt;termdef id="dt-dog" term="dog"></eg>
+<p><termdef id="dt-etag" term="End Tag">The end of every element that begins
+with a start-tag must be marked by an <term>end-tag</term> containing a name
+that echoes the element's type as given in the start-tag:</termdef></p>
+<scrap lang="ebnf">
+<head>End-tag</head>
+<prodgroup pcw2="6" pcw4="15" pcw5="11.5">
+<prod id="NT-ETag">
+<lhs>ETag</lhs><rhs>'&lt;/' <nt def="NT-Name">Name</nt> <nt def="NT-S">S</nt>?
+'>'</rhs>
+</prod>
+</prodgroup></scrap>
+<p>An example of an end-tag:</p>
+<eg>&lt;/termdef></eg>
+<p><termdef id="dt-content" term="Content">The <termref def="dt-text">text</termref>
+between the start-tag and end-tag is called the element's <term>content</term>:</termdef></p>
+<scrap lang="ebnf">
+<head>Content of Elements</head>
+<prodgroup pcw2="6" pcw4="15" pcw5="11.5">
+<prod id="NT-content" diff="chg">
+<lhs>content</lhs><rhs><nt def="NT-CharData">CharData</nt>? ((<nt def="NT-element">element</nt>
+| <nt def="NT-Reference">Reference</nt> | <nt def="NT-CDSect">CDSect</nt>
+| <nt def="NT-PI">PI</nt> | <nt def="NT-Comment">Comment</nt>) <nt def="NT-CharData">CharData</nt>?)*</rhs>
+<com><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E71">[E71]</loc></com>
+</prod>
+</prodgroup></scrap>
+<p><phrase diff="chg"><termdef id="dt-empty" term="Empty"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E97">[E97]</loc>An element
+with no content is said to be <term>empty</term>.</termdef> The representation
+of an empty element is either a start-tag immediately followed by an end-tag,
+or an empty-element tag.</phrase> <termdef id="dt-eetag" term="empty-element tag">An <term>empty-element
+tag</term> takes a special form:</termdef></p>
+<scrap lang="ebnf">
+<head>Tags for Empty Elements</head>
+<prodgroup pcw2="6" pcw4="15" pcw5="11.5">
+<prod id="NT-EmptyElemTag">
+<lhs>EmptyElemTag</lhs><rhs>'&lt;' <nt def="NT-Name">Name</nt> (<nt def="NT-S">S</nt> <nt
+def="NT-Attribute">Attribute</nt>)* <nt def="NT-S">S</nt>? '/>'</rhs><wfc
+def="uniqattspec"/>
+</prod>
+</prodgroup></scrap>
+<p>Empty-element tags may be used for any element which has no content, whether
+or not it is declared using the keyword <kw>EMPTY</kw>. <termref def="dt-interop">For
+interoperability</termref>, the empty-element tag <phrase diff="chg"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E45">[E45]</loc>should
+be used, and should only be used,</phrase> for elements which are declared
+EMPTY.</p>
+<p>Examples of empty elements:</p>
+<eg>&lt;IMG align="left"
+ src="http://www.w3.org/Icons/WWW/w3c_home" />
+&lt;br>&lt;/br>
+&lt;br/></eg>
+</div2>
+<div2 id="elemdecls">
+<head>Element Type Declarations</head>
+<p>The <termref def="dt-element">element</termref> structure of an <termref
+def="dt-xml-doc">XML document</termref> may, for <termref def="dt-valid">validation</termref>
+purposes, be constrained using element type and attribute-list declarations.
+An element type declaration constrains the element's <termref def="dt-content">content</termref>.</p>
+<p>Element type declarations often constrain which element types can appear
+as <termref def="dt-parentchild">children</termref> of the element. At user
+option, an XML processor may issue a warning when a declaration mentions an
+element type for which no declaration is provided, but this is not an error.</p>
+<p><termdef id="dt-eldecl" term="Element Type declaration">An <term>element
+type declaration</term> takes the form:</termdef></p>
+<scrap lang="ebnf">
+<head>Element Type Declaration</head>
+<prodgroup pcw2="5.5" pcw4="18" pcw5="9">
+<prod id="NT-elementdecl">
+<lhs>elementdecl</lhs><rhs>'&lt;!ELEMENT' <nt def="NT-S">S</nt> <nt def="NT-Name">Name</nt> <nt
+def="NT-S">S</nt> <nt def="NT-contentspec">contentspec</nt> <nt def="NT-S">S</nt>?
+'>'</rhs><vc def="EDUnique"/>
+</prod>
+<prod id="NT-contentspec">
+<lhs>contentspec</lhs><rhs>'EMPTY' | 'ANY' | <nt def="NT-Mixed">Mixed</nt>
+| <nt def="NT-children">children</nt> </rhs>
+</prod>
+</prodgroup></scrap>
+<p>where the <nt def="NT-Name">Name</nt> gives the element type being declared.</p>
+<vcnote id="EDUnique"><head>Unique Element Type Declaration</head><p>No element
+type may be declared more than once.</p>
+</vcnote>
+<p>Examples of element type declarations:</p>
+<eg>&lt;!ELEMENT br EMPTY>
+&lt;!ELEMENT p (#PCDATA|emph)* >
+&lt;!ELEMENT %name.para; %content.para; >
+&lt;!ELEMENT container ANY></eg>
+<div3 id="sec-element-content">
+<head>Element Content</head>
+<p><termdef id="dt-elemcontent" term="Element content">An element <termref
+def="dt-stag">type</termref> has <term>element content</term> when elements
+of that type must contain only <termref def="dt-parentchild">child</termref>
+elements (no character data), optionally separated by white space (characters
+matching the nonterminal <nt def="NT-S">S</nt>).</termdef><termdef id="dt-content-model"
+term="Content model">In this case, the constraint includes a <phrase diff="chg"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E55">[E55]</loc><term>content
+model</term></phrase>, a simple grammar governing the allowed types of the
+child elements and the order in which they are allowed to appear.</termdef>
+The grammar is built on content particles (<nt def="NT-cp">cp</nt>s), which
+consist of names, choice lists of content particles, or sequence lists of
+content particles:</p>
+<scrap lang="ebnf">
+<head>Element-content Models</head>
+<prodgroup pcw2="5.5" pcw4="16" pcw5="11">
+<prod id="NT-children">
+<lhs>children</lhs><rhs>(<nt def="NT-choice">choice</nt> | <nt def="NT-seq">seq</nt>)
+('?' | '*' | '+')?</rhs>
+</prod>
+<prod id="NT-cp">
+<lhs>cp</lhs><rhs>(<nt def="NT-Name">Name</nt> | <nt def="NT-choice">choice</nt>
+| <nt def="NT-seq">seq</nt>) ('?' | '*' | '+')?</rhs>
+</prod>
+<prod id="NT-choice" diff="chg">
+<lhs>choice</lhs><rhs>'(' <nt def="NT-S">S</nt>? <nt def="NT-cp">cp</nt> ( <nt
+def="NT-S">S</nt>? '|' <nt def="NT-S">S</nt>? <nt def="NT-cp">cp</nt> )+ <nt
+def="NT-S">S</nt>? ')'</rhs><com><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E50">[E50]</loc></com>
+<com><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E52">[E52]</loc></com>
+<vc def="vc-PEinGroup"/>
+</prod>
+<prod id="NT-seq" diff="chg">
+<lhs>seq</lhs><rhs>'(' <nt def="NT-S">S</nt>? <nt def="NT-cp">cp</nt> ( <nt
+def="NT-S">S</nt>? ',' <nt def="NT-S">S</nt>? <nt def="NT-cp">cp</nt> )* <nt
+def="NT-S">S</nt>? ')'</rhs><com><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E52">[E52]</loc></com>
+<vc def="vc-PEinGroup"/>
+</prod>
+</prodgroup></scrap>
+<p>where each <nt def="NT-Name">Name</nt> is the type of an element which
+may appear as a <termref def="dt-parentchild">child</termref>. Any content
+particle in a choice list may appear in the <termref def="dt-elemcontent">element
+content</termref> at the location where the choice list appears in the grammar;
+content particles occurring in a sequence list must each appear in the <termref
+def="dt-elemcontent">element content</termref> in the order given in the list.
+The optional character following a name or list governs whether the element
+or the content particles in the list may occur one or more (<code>+</code>),
+zero or more (<code>*</code>), or zero or one times (<code>?</code>). The
+absence of such an operator means that the element or content particle must
+appear exactly once. This syntax and meaning are identical to those used in
+the productions in this specification.</p>
+<p>The content of an element matches a content model if and only if it is
+possible to trace out a path through the content model, obeying the sequence,
+choice, and repetition operators and matching each element in the content
+against an element type in the content model. <termref def="dt-compat">For
+compatibility</termref>, it is an error if an element in the document can
+match more than one occurrence of an element type in the content model. For
+more information, see <specref ref="determinism"/>.</p>
+<!--appendix <specref ref="determinism"/>.-->
+<!-- appendix on deterministic content models. -->
+<vcnote id="vc-PEinGroup"><head>Proper Group/PE Nesting</head><p>Parameter-entity <termref
+def="dt-repltext">replacement text</termref> must be properly nested with <phrase
+diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E11">[E11]</loc>parenthesized</phrase>
+groups. That is to say, if either of the opening or closing parentheses in
+a <nt def="NT-choice">choice</nt>, <nt def="NT-seq">seq</nt>, or <nt def="NT-Mixed">Mixed</nt>
+construct is contained in the replacement text for a <termref def="dt-PERef">parameter
+entity</termref>, both must be contained in the same replacement text.</p>
+<p diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E19">[E19]</loc><termref
+def="dt-interop">For interoperability</termref>, if a parameter-entity reference
+appears in a <nt def="NT-choice">choice</nt>, <nt def="NT-seq">seq</nt>, or <nt
+def="NT-Mixed">Mixed</nt> construct, its replacement text should contain at
+least one non-blank character, and neither the first nor last non-blank character
+of the replacement text should be a connector (<code>|</code> or <code>,</code>).</p>
+</vcnote>
+<p>Examples of element-content models:</p>
+<eg>&lt;!ELEMENT spec (front, body, back?)>
+&lt;!ELEMENT div1 (head, (p | list | note)*, div2*)>
+&lt;!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*></eg>
+</div3>
+<div3 id="sec-mixed-content">
+<head>Mixed Content</head>
+<p><termdef id="dt-mixed" term="Mixed Content">An element <termref def="dt-stag">type</termref>
+has <term>mixed content</term> when elements of that type may contain character
+data, optionally interspersed with <termref def="dt-parentchild">child</termref>
+elements.</termdef> In this case, the types of the child elements may be constrained,
+but not their order or their number of occurrences:</p>
+<scrap lang="ebnf">
+<head>Mixed-content Declaration</head>
+<prodgroup pcw2="5.5" pcw4="16" pcw5="11">
+<prod id="NT-Mixed">
+<lhs>Mixed</lhs><rhs>'(' <nt def="NT-S">S</nt>? '#PCDATA' (<nt def="NT-S">S</nt>?
+'|' <nt def="NT-S">S</nt>? <nt def="NT-Name">Name</nt>)* <nt def="NT-S">S</nt>?
+')*' </rhs>
+<rhs>| '(' <nt def="NT-S">S</nt>? '#PCDATA' <nt def="NT-S">S</nt>? ')' </rhs>
+<vc def="vc-PEinGroup"/><vc def="vc-MixedChildrenUnique"/>
+</prod>
+</prodgroup></scrap>
+<p>where the <nt def="NT-Name">Name</nt>s give the types of elements that
+may appear as children. <phrase diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E10">[E10]</loc>The
+keyword <kw>#PCDATA</kw> derives historically from the term <quote>parsed
+character data.</quote></phrase></p>
+<vcnote id="vc-MixedChildrenUnique"><head>No Duplicate Types</head><p>The
+same name must not appear more than once in a single mixed-content declaration.</p>
+</vcnote>
+<p>Examples of mixed content declarations:</p>
+<eg>&lt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*>
+&lt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* >
+&lt;!ELEMENT b (#PCDATA)></eg>
+</div3>
+</div2>
+<div2 id="attdecls">
+<head>Attribute-List Declarations</head>
+<p><termref def="dt-attr">Attributes</termref> are used to associate name-value
+pairs with <termref def="dt-element">elements</termref>. Attribute specifications
+may appear only within <termref def="dt-stag">start-tags</termref> and <termref
+def="dt-eetag">empty-element tags</termref>; thus, the productions used to
+recognize them appear in <specref ref="sec-starttags"/>. Attribute-list declarations
+may be used:</p>
+<ulist>
+<item><p>To define the set of attributes pertaining to a given element type.</p>
+</item>
+<item><p>To establish type constraints for these attributes.</p></item>
+<item><p>To provide <termref def="dt-default">default values</termref> for
+attributes.</p></item>
+</ulist>
+<p><termdef id="dt-attdecl" term="Attribute-List Declaration"> <term>Attribute-list
+declarations</term> specify the name, data type, and default value (if any)
+of each attribute associated with a given element type:</termdef></p>
+<scrap lang="ebnf">
+<head>Attribute-list Declaration</head>
+<prod id="NT-AttlistDecl">
+<lhs>AttlistDecl</lhs><rhs>'&lt;!ATTLIST' <nt def="NT-S">S</nt> <nt def="NT-Name">Name</nt> <nt
+def="NT-AttDef">AttDef</nt>* <nt def="NT-S">S</nt>? '>'</rhs>
+</prod>
+<prod id="NT-AttDef">
+<lhs>AttDef</lhs><rhs><nt def="NT-S">S</nt> <nt def="NT-Name">Name</nt> <nt
+def="NT-S">S</nt> <nt def="NT-AttType">AttType</nt> <nt def="NT-S">S</nt> <nt
+def="NT-DefaultDecl">DefaultDecl</nt></rhs>
+</prod>
+</scrap>
+<p>The <nt def="NT-Name">Name</nt> in the <nt def="NT-AttlistDecl">AttlistDecl</nt>
+rule is the type of an element. At user option, an XML processor may issue
+a warning if attributes are declared for an element type not itself declared,
+but this is not an error. The <nt def="NT-Name">Name</nt> in the <nt def="NT-AttDef">AttDef</nt>
+rule is the name of the attribute.</p>
+<p>When more than one <nt def="NT-AttlistDecl">AttlistDecl</nt> is provided
+for a given element type, the contents of all those provided are merged. When
+more than one definition is provided for the same attribute of a given element
+type, the first declaration is binding and later declarations are ignored. <phrase
+diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E9">[E9]</loc><termref
+def="dt-interop">For interoperability,</termref> writers of DTDs may choose
+to provide at most one attribute-list declaration for a given element type,
+at most one attribute definition for a given attribute name in an attribute-list
+declaration, and at least one attribute definition in each attribute-list
+declaration.</phrase> For interoperability, an XML processor may at user option
+issue a warning when more than one attribute-list declaration is provided
+for a given element type, or more than one attribute definition is provided
+for a given attribute, but this is not an error.</p>
+<div3 id="sec-attribute-types">
+<head>Attribute Types</head>
+<p>XML attribute types are of three kinds: a string type, a set of tokenized
+types, and enumerated types. The string type may take any literal string as
+a value; the tokenized types have varying lexical and semantic constraints<phrase
+diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E8">[E8]</loc>.
+The validity constraints noted in the grammar are applied after the attribute
+value has been normalized as described in <specref ref="attdecls"/>.</phrase></p>
+<scrap lang="ebnf">
+<head>Attribute Types</head>
+<prodgroup pcw4="14" pcw5="11.5">
+<prod id="NT-AttType">
+<lhs>AttType</lhs><rhs><nt def="NT-StringType">StringType</nt> | <nt def="NT-TokenizedType">TokenizedType</nt>
+| <nt def="NT-EnumeratedType">EnumeratedType</nt> </rhs>
+</prod>
+<prod id="NT-StringType">
+<lhs>StringType</lhs><rhs>'CDATA'</rhs>
+</prod>
+<prod id="NT-TokenizedType">
+<lhs>TokenizedType</lhs><rhs>'ID'</rhs><vc def="id"/><vc def="one-id-per-el"/>
+<vc def="id-default"/>
+<rhs>| 'IDREF'</rhs><vc def="idref"/>
+<rhs>| 'IDREFS'</rhs><vc def="idref"/>
+<rhs>| 'ENTITY'</rhs><vc def="entname"/>
+<rhs>| 'ENTITIES'</rhs><vc def="entname"/>
+<rhs>| 'NMTOKEN'</rhs><vc def="nmtok"/>
+<rhs>| 'NMTOKENS'</rhs><vc def="nmtok"/>
+</prod>
+</prodgroup></scrap>
+<vcnote id="id"><head>ID</head><p>Values of type <kw>ID</kw> must match the <nt
+def="NT-Name">Name</nt> production. A name must not appear more than once
+in an XML document as a value of this type; i.e., ID values must uniquely
+identify the elements which bear them.</p>
+</vcnote>
+<vcnote id="one-id-per-el"><head>One ID per Element Type</head><p>No element
+type may have more than one ID attribute specified.</p>
+</vcnote>
+<vcnote id="id-default"><head>ID Attribute Default</head><p>An ID attribute
+must have a declared default of <kw>#IMPLIED</kw> or <kw>#REQUIRED</kw>.</p>
+</vcnote>
+<vcnote id="idref"><head>IDREF</head><p>Values of type <kw>IDREF</kw> must
+match the <nt def="NT-Name">Name</nt> production, and values of type <kw>IDREFS</kw>
+must match <nt def="NT-Names">Names</nt>; each <nt def="NT-Name">Name</nt>
+must match the value of an ID attribute on some element in the XML document;
+i.e. <kw>IDREF</kw> values must match the value of some ID attribute.</p>
+</vcnote>
+<vcnote id="entname"><head>Entity Name</head><p>Values of type <kw>ENTITY</kw>
+must match the <nt def="NT-Name">Name</nt> production, values of type <kw>ENTITIES</kw>
+must match <nt def="NT-Names">Names</nt>; each <nt def="NT-Name">Name</nt>
+must match the name of an <termref def="dt-unparsed">unparsed entity</termref>
+declared in the <termref def="dt-doctype">DTD</termref>.</p>
+</vcnote>
+<vcnote id="nmtok"><head>Name Token</head><p>Values of type <kw>NMTOKEN</kw>
+must match the <nt def="NT-Nmtoken">Nmtoken</nt> production; values of type <kw>NMTOKENS</kw>
+must match <termref def="NT-Nmtokens">Nmtokens</termref>.</p>
+</vcnote>
+<!-- why?
+<p>The XML processor must normalize attribute values before
+passing them to the application, as described in
+<specref ref="AVNormalize"/>.</p>-->
+<p><termdef id="dt-enumerated" term="Enumerated Attribute
+Values"><term>Enumerated attributes</term> can take one of a list of values
+provided in the declaration</termdef>. There are two kinds of enumerated types:</p>
+<scrap lang="ebnf">
+<head>Enumerated Attribute Types</head>
+<prod id="NT-EnumeratedType">
+<lhs>EnumeratedType</lhs><rhs><nt def="NT-NotationType">NotationType</nt>
+| <nt def="NT-Enumeration">Enumeration</nt> </rhs>
+</prod>
+<prod id="NT-NotationType">
+<lhs>NotationType</lhs><rhs>'NOTATION' <nt def="NT-S">S</nt> '(' <nt def="NT-S">S</nt>? <nt
+def="NT-Name">Name</nt> (<nt def="NT-S">S</nt>? '|' <nt def="NT-S">S</nt>? <nt
+def="NT-Name">Name</nt>)* <nt def="NT-S">S</nt>? ')' </rhs><vc def="notatn"/>
+<vc def="OneNotationPer" diff="add"/><vc def="NoNotationEmpty" diff="add"/>
+</prod>
+<prod id="NT-Enumeration">
+<lhs>Enumeration</lhs><rhs>'(' <nt def="NT-S">S</nt>? <nt def="NT-Nmtoken">Nmtoken</nt>
+(<nt def="NT-S">S</nt>? '|' <nt def="NT-S">S</nt>? <nt def="NT-Nmtoken">Nmtoken</nt>)* <nt
+def="NT-S">S</nt>? ')'</rhs><vc def="enum"/>
+</prod>
+</scrap>
+<p>A <kw>NOTATION</kw> attribute identifies a <termref def="dt-notation">notation</termref>,
+declared in the DTD with associated system and/or public identifiers, to be
+used in interpreting the element to which the attribute is attached.</p>
+<vcnote id="notatn"><head>Notation Attributes</head><p>Values of this type
+must match one of the <titleref href="#Notations">notation</titleref> names
+included in the declaration; all notation names in the declaration must be
+declared.</p>
+</vcnote>
+<vcnote id="OneNotationPer" diff="add"><head><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E7">[E7]</loc>One
+Notation Per Element Type</head><p>No element type may have more than one <kw>NOTATION</kw>
+attribute specified.</p>
+</vcnote>
+<vcnote id="NoNotationEmpty" diff="add"><head><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E68">[E68]</loc>No
+Notation on Empty Element</head><p><termref def="dt-compat">For compatibility</termref>,
+an attribute of type <kw>NOTATION</kw> must not be declared on an element
+declared <kw>EMPTY</kw>.</p>
+</vcnote>
+<vcnote id="enum"><head>Enumeration</head><p>Values of this type must match
+one of the <nt def="NT-Nmtoken">Nmtoken</nt> tokens in the declaration.</p>
+</vcnote>
+<p><termref def="dt-interop">For interoperability,</termref> the same <nt
+def="NT-Nmtoken">Nmtoken</nt> should not occur more than once in the enumerated
+attribute types of a single element type.</p>
+</div3>
+<div3 id="sec-attr-defaults">
+<head>Attribute Defaults</head>
+<p>An <termref def="dt-attdecl">attribute declaration</termref> provides information
+on whether the attribute's presence is required, and if not, how an XML processor
+should react if a declared attribute is absent in a document.</p>
+<scrap lang="ebnf">
+<head>Attribute Defaults</head>
+<prodgroup pcw4="14" pcw5="11.5">
+<prod id="NT-DefaultDecl">
+<lhs>DefaultDecl</lhs><rhs>'#REQUIRED' |&nbsp;'#IMPLIED' </rhs>
+<rhs>| (('#FIXED' S)? <nt def="NT-AttValue">AttValue</nt>)</rhs><vc def="RequiredAttr"/>
+<vc def="defattrvalid"/><wfc def="CleanAttrVals"/><vc def="FixedAttr"/>
+</prod>
+</prodgroup></scrap>
+<p>In an attribute declaration, <kw>#REQUIRED</kw> means that the attribute
+must always be provided, <kw>#IMPLIED</kw> that no default value is provided. <!-- not any more!!
+<kw>#IMPLIED</kw> means that if the attribute is omitted
+from an element of this type,
+the XML processor must inform the application
+that no value was specified; no constraint is placed on the behavior
+of the application. --> <termdef id="dt-default" term="Attribute Default">If
+the declaration is neither <kw>#REQUIRED</kw> nor <kw>#IMPLIED</kw>, then
+the <nt def="NT-AttValue">AttValue</nt> value contains the declared <term>default</term>
+value; the <kw>#FIXED</kw> keyword states that the attribute must always have
+the default value. If a default value is declared, when an XML processor encounters
+an omitted attribute, it is to behave as though the attribute were present
+with the declared default value.</termdef></p>
+<vcnote id="RequiredAttr"><head>Required Attribute</head><p>If the default
+declaration is the keyword <kw>#REQUIRED</kw>, then the attribute must be
+specified for all elements of the type in the attribute-list declaration.</p>
+</vcnote>
+<vcnote id="defattrvalid"><head>Attribute Default Legal</head><p>The declared
+default value must meet the lexical constraints of the declared attribute
+type.</p>
+</vcnote>
+<vcnote id="FixedAttr"><head>Fixed Attribute Default</head><p>If an attribute
+has a default value declared with the <kw>#FIXED</kw> keyword, instances of
+that attribute must match the default value.</p>
+</vcnote>
+<p>Examples of attribute-list declarations:</p>
+<eg>&lt;!ATTLIST termdef
+          id      ID      #REQUIRED
+          name    CDATA   #IMPLIED>
+&lt;!ATTLIST list
+          type    (bullets|ordered|glossary)  "ordered">
+&lt;!ATTLIST form
+          method  CDATA   #FIXED "POST"></eg>
+</div3>
+<div3 id="AVNormalize" diff="chg">
+<head><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E70">[E70]</loc>Attribute-Value
+Normalization</head>
+<p>Before the value of an attribute is passed to the application or checked
+for validity, the XML processor must normalize the attribute value by applying
+the algorithm below, or by using some other method such that the value passed
+to the application is the same as that produced by the algorithm.</p>
+<olist>
+<item><p>All line breaks must have been normalized on input to #xA as described
+in <specref ref="sec-line-ends"/>, so the rest of this algorithm operates
+on text normalized in this way.</p></item>
+<item><p>Begin with a normalized value consisting of the empty string.</p>
+</item>
+<item><p>For each character, entity reference, or character reference in the
+unnormalized attribute value, beginning with the first and continuing to the
+last, do the following:</p>
+<ulist>
+<item><p>For a character reference, append the referenced character to the
+normalized value.</p></item>
+<item><p>For an entity reference, recursively apply step 3 of this algorithm
+to the replacement text of the entity.</p></item>
+<item><p>For a white space character (#x20, #xD, #xA, #x9), append a space
+character (#x20) to the normalized value.</p></item>
+<item><p>For another character, append the character to the normalized value.</p>
+</item>
+</ulist>
+</item>
+</olist>
+<p>If the attribute type is not CDATA, then the XML processor must further
+process the normalized attribute value by discarding any leading and trailing
+space (#x20) characters, and by replacing sequences of space (#x20) characters
+by a single space (#x20) character.</p>
+<p>Note that if the unnormalized attribute value contains a character reference
+to a white space character other than space (#x20), the normalized value contains
+the referenced character itself (#xD, #xA or #x9). This contrasts with the
+case where the unnormalized value contains a white space character (not a
+reference), which is replaced with a space character (#x20) in the normalized
+value and also contrasts with the case where the unnormalized value contains
+an entity reference whose replacement text contains a white space character;
+being recursively processed, the white space character is replaced with a
+space character (#x20) in the normalized value.</p>
+<p>All attributes for which no declaration has been read should be treated
+by a non-validating <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E95">[E95]</loc>processor</phrase>
+as if declared <kw>CDATA</kw>.</p>
+<p>Following are examples of attribute normalization. Given the following
+declarations:</p>
+<eg>&lt;!ENTITY d "&amp;#xD;">
+&lt;!ENTITY a "&amp;#xA;">
+&lt;!ENTITY da "&amp;#xD;&amp;#xA;"></eg>
+<p>the attribute specifications in the left column below would be normalized
+to the character sequences of the middle column if the attribute <att>a</att>
+is declared <kw>NMTOKENS</kw> and to those of the right columns if <att>a</att>
+is declared <kw>CDATA</kw>.</p>
+<table border="1" frame="border"><thead><tr><th>Attribute specification</th>
+<th>a is NMTOKENS</th><th>a is CDATA</th></tr></thead><tbody><tr><td><eg>a="
+
+xyz"</eg></td><td><code>x y z</code></td><td><code>#x20 #x20 x y z</code></td>
+</tr><tr><td><eg>a="&amp;d;&amp;d;A&amp;a;&amp;a;B&amp;da;"</eg></td><td><code>A
+#x20 B</code></td><td><code>#x20 #x20 A #x20 #x20 B #x20 #x20</code></td>
+</tr><tr><td><eg>a=
+"&amp;#xd;&amp;#xd;A&amp;#xa;&amp;#xa;B&amp;#xd;&amp;#xa;"</eg></td><td><code>#xD
+#xD A #xA #xA B #xD #xA</code></td><td><code>#xD #xD A #xA #xA B #xD #xD</code></td>
+</tr></tbody></table>
+<p>Note that the last example is invalid (but well-formed) if <att>a</att>
+is declared to be of type <kw>NMTOKENS</kw>.</p>
+</div3>
+</div2>
+<div2 id="sec-condition-sect">
+<head>Conditional Sections</head>
+<p><termdef id="dt-cond-section" term="conditional section"> <term>Conditional
+sections</term> are portions of the <termref def="dt-doctype">document type
+declaration external subset</termref> which are included in, or excluded from,
+the logical structure of the DTD based on the keyword which governs them.</termdef></p>
+<scrap lang="ebnf">
+<head>Conditional Section</head>
+<prodgroup pcw2="9" pcw4="14.5">
+<prod id="NT-conditionalSect">
+<lhs>conditionalSect</lhs><rhs><nt def="NT-includeSect">includeSect</nt> | <nt
+def="NT-ignoreSect">ignoreSect</nt> </rhs>
+</prod>
+<prod id="NT-includeSect">
+<lhs>includeSect</lhs><rhs>'&lt;![' S? 'INCLUDE' S? '[' <nt def="NT-extSubsetDecl">extSubsetDecl</nt>
+']]&gt;' </rhs><com><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</loc></com>
+<vc def="condsec-nesting" diff="add"/>
+</prod>
+<prod id="NT-ignoreSect">
+<lhs>ignoreSect</lhs><rhs>'&lt;![' S? 'IGNORE' S? '[' <nt def="NT-ignoreSectContents">ignoreSectContents</nt>*
+']]&gt;'</rhs><com><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</loc></com>
+<vc def="condsec-nesting" diff="add"/>
+</prod>
+<prod id="NT-ignoreSectContents">
+<lhs>ignoreSectContents</lhs><rhs><nt def="NT-Ignore">Ignore</nt> ('&lt;![' <nt
+def="NT-ignoreSectContents">ignoreSectContents</nt> ']]&gt;' <nt def="NT-Ignore">Ignore</nt>)*</rhs>
+</prod>
+<prod id="NT-Ignore">
+<lhs>Ignore</lhs><rhs><nt def="NT-Char">Char</nt>* - (<nt def="NT-Char">Char</nt>*
+('&lt;![' | ']]&gt;') <nt def="NT-Char">Char</nt>*) </rhs>
+</prod>
+</prodgroup></scrap>
+<vcnote id="condsec-nesting" diff="add"><head><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</loc>Proper
+Conditional Section/PE Nesting</head><p>If any of the "<code>&lt;![</code>",
+"<code>[</code>", or "<code>]]&gt;</code>" of a conditional section is contained
+in the replacement text for a parameter-entity reference, all of them must
+be contained in the same replacement text.</p>
+</vcnote>
+<p>Like the internal and external DTD subsets, a conditional section may contain
+one or more complete declarations, comments, processing instructions, or nested
+conditional sections, intermingled with white space.</p>
+<p>If the keyword of the conditional section is <kw>INCLUDE</kw>, then the
+contents of the conditional section are part of the DTD. If the keyword of
+the conditional section is <kw>IGNORE</kw>, then the contents of the conditional
+section are not logically part of the DTD. <phrase diff="del"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</loc>Note that
+for reliable parsing, the contents of even ignored conditional sections must
+be read in order to detect nested conditional sections and ensure that the
+end of the outermost (ignored) conditional section is properly detected.</phrase>
+If a conditional section with a keyword of <kw>INCLUDE</kw> occurs within
+a larger conditional section with a keyword of <kw>IGNORE</kw>, both the outer
+and the inner conditional sections are ignored.<phrase diff="add"> <loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</loc>The contents
+of an ignored conditional section are parsed by ignoring all characters after
+the "<code>[</code>" following the keyword, except conditional section starts
+"<code>&lt;![</code>" and ends "<code>]]&gt;</code>", until the matching conditional
+section end is found. Parameter entity references are not recognized in this
+process.</phrase></p>
+<p>If the keyword of the conditional section is a parameter-entity reference,
+the parameter entity must be replaced by its content before the processor
+decides whether to include or ignore the conditional section.</p>
+<p>An example:</p>
+<eg>&lt;!ENTITY % draft 'INCLUDE' >
+&lt;!ENTITY % final 'IGNORE' >
+
+&lt;![%draft;[
+&lt;!ELEMENT book (comments*, title, body, supplements?)>
+]]&gt;
+&lt;![%final;[
+&lt;!ELEMENT book (title, body, supplements?)>
+]]&gt;</eg>
+</div2>
+<!--
+<div2 id='sec-pass-to-app'>
+<head>XML Processor Treatment of Logical Structure</head>
+<p>When an XML processor encounters a start-tag, it must make
+at least the following information available to the application:
+<ulist>
+<item>
+<p>the element type's generic identifier</p>
+</item>
+<item>
+<p>the names of attributes known to apply to this element type
+(validating processors must make available names of all attributes
+declared for the element type; non-validating processors must
+make available at least the names of the attributes for which
+values are specified.
+</p>
+</item>
+</ulist>
+</p>
+</div2>
+-->
+</div1>
+<!-- &Entities; -->
+<div1 id="sec-physical-struct">
+<head>Physical Structures</head>
+<p><termdef id="dt-entity" term="Entity">An XML document may consist of one
+or many storage units. <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E6">[E6]</loc>These
+are called <term>entities</term>; they all have <term>content</term> and are
+all (except for the <termref def="dt-docent">document entity</termref> and
+the <termref def="dt-doctype">external DTD subset</termref>) identified by
+entity <term>name</term></phrase>.</termdef> Each XML document has one entity
+called the <termref def="dt-docent">document entity</termref>, which serves
+as the starting point for the <termref def="dt-xml-proc">XML processor</termref>
+and may contain the whole document.</p>
+<p>Entities may be either parsed or unparsed. <termdef id="dt-parsedent" term="Text Entity">A <term>parsed
+entity's</term> contents are referred to as its <termref def="dt-repltext">replacement
+text</termref>; this <termref def="dt-text">text</termref> is considered an
+integral part of the document.</termdef></p>
+<p><termdef id="dt-unparsed" term="Unparsed Entity">An <term>unparsed entity</term>
+is a resource whose contents may or may not be <termref def="dt-text">text</termref>,
+and if text, <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E25">[E25]</loc>may
+be other than</phrase> XML. Each unparsed entity has an associated <termref
+def="dt-notation">notation</termref>, identified by name. Beyond a requirement
+that an XML processor make the identifiers for the entity and notation available
+to the application, XML places no constraints on the contents of unparsed
+entities.</termdef></p>
+<p>Parsed entities are invoked by name using entity references; unparsed entities
+by name, given in the value of <kw>ENTITY</kw> or <kw>ENTITIES</kw> attributes.</p>
+<p><termdef id="gen-entity" term="general entity"><term>General entities</term>
+are entities for use within the document content. In this specification, general
+entities are sometimes referred to with the unqualified term <emph>entity</emph>
+when this leads to no ambiguity.</termdef> <termdef id="dt-PE" term="Parameter entity"><phrase
+diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E53">[E53]</loc><term>Parameter
+entities</term></phrase> are parsed entities for use within the DTD.</termdef>
+These two types of entities use different forms of reference and are recognized
+in different contexts. Furthermore, they occupy different namespaces; a parameter
+entity and a general entity with the same name are two distinct entities.</p>
+<div2 id="sec-references">
+<head>Character and Entity References</head>
+<p><termdef id="dt-charref" term="Character Reference"> A <term>character
+reference</term> refers to a specific character in the ISO/IEC 10646 character
+set, for example one not directly accessible from available input devices.</termdef></p>
+<scrap lang="ebnf">
+<head>Character Reference</head>
+<prod id="NT-CharRef">
+<lhs>CharRef</lhs><rhs>'&amp;#' [0-9]+ ';' </rhs>
+<rhs>| '&hcro;' [0-9a-fA-F]+ ';'</rhs><wfc def="wf-Legalchar"/>
+</prod>
+</scrap>
+<wfcnote id="wf-Legalchar"><head>Legal Character</head><p>Characters referred
+to using character references must match the production for <termref def="NT-Char">Char</termref>.</p>
+</wfcnote>
+<p>If the character reference begins with <quote><code>&amp;#x</code></quote>,
+the digits and letters up to the terminating <code>;</code> provide a hexadecimal
+representation of the character's code point in ISO/IEC 10646. If it begins
+just with <quote><code>&amp;#</code></quote>, the digits up to the terminating <code>;</code>
+provide a decimal representation of the character's code point.</p>
+<p><termdef id="dt-entref" term="Entity Reference">An <term>entity reference</term>
+refers to the content of a named entity.</termdef> <termdef id="dt-GERef"
+term="General Entity Reference">References to parsed general entities use
+ampersand (<code>&amp;</code>) and semicolon (<code>;</code>) as delimiters.</termdef> <termdef
+id="dt-PERef" term="Parameter-entity reference"> <term>Parameter-entity references</term>
+use percent-sign (<code>%</code>) and semicolon (<code>;</code>) as delimiters.</termdef></p>
+<scrap lang="ebnf">
+<head>Entity Reference</head>
+<prod id="NT-Reference">
+<lhs>Reference</lhs><rhs><nt def="NT-EntityRef">EntityRef</nt> | <nt def="NT-CharRef">CharRef</nt></rhs>
+</prod>
+<prod id="NT-EntityRef">
+<lhs>EntityRef</lhs><rhs>'&amp;' <nt def="NT-Name">Name</nt> ';'</rhs><wfc
+def="wf-entdeclared"/><vc def="vc-entdeclared"/><wfc def="textent"/><wfc def="norecursion"/>
+</prod>
+<prod id="NT-PEReference">
+<lhs>PEReference</lhs><rhs>'%' <nt def="NT-Name">Name</nt> ';'</rhs><vc def="vc-entdeclared"/>
+<wfc def="norecursion"/><wfc def="indtd"/>
+</prod>
+</scrap>
+<wfcnote id="wf-entdeclared"><head>Entity Declared</head><p>In a document
+without any DTD, a document with only an internal DTD subset which contains
+no parameter entity references, or a document with <quote><code>standalone='yes'</code></quote>, <phrase
+diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E34">[E34]</loc>for
+an entity reference that does not occur within the external subset or a parameter
+entity, the <nt def="NT-Name">Name</nt> given in the entity reference must <termref
+def="dt-match">match</termref> that in an <titleref href="#sec-entity-decl">entity
+declaration</titleref> that does not occur within the external subset or a
+parameter entity</phrase>, except that well-formed documents need not declare
+any of the following entities: &magicents;. <phrase diff="del"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E29">[E29]</loc>The declaration
+of a parameter entity must precede any reference to it. Similarly, </phrase>The
+declaration of a general entity must precede any reference to it which appears
+in a default value in an attribute-list declaration.</p>
+<p>Note that if entities are declared in the external subset or in external
+parameter entities, a non-validating processor is <titleref href="#include-if-valid">not
+obligated to</titleref> read and process their declarations; for such documents,
+the rule that an entity must be declared is a well-formedness constraint only
+if <titleref href="#sec-rmd">standalone='yes'</titleref>.</p>
+</wfcnote>
+<vcnote id="vc-entdeclared"><head>Entity Declared</head><p>In a document with
+an external subset or external parameter entities with <quote><code>standalone='no'</code></quote>,
+the <nt def="NT-Name">Name</nt> given in the entity reference must <termref
+def="dt-match">match</termref> that in an <titleref href="#sec-entity-decl">entity
+declaration</titleref>. For interoperability, valid documents should declare
+the entities &magicents;, in the form specified in <specref ref="sec-predefined-ent"/>.
+The declaration of a parameter entity must precede any reference to it. Similarly,
+the declaration of a general entity must precede any <phrase diff="chg"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E92">[E92]</loc>attribute-list
+declaration containing a default value with a direct or indirect reference
+to that general entity.</phrase></p>
+</vcnote>
+<!-- FINAL EDIT: is this duplication too clumsy? -->
+<wfcnote id="textent"><head>Parsed Entity</head><p>An entity reference must
+not contain the name of an <termref def="dt-unparsed">unparsed entity</termref>.
+Unparsed entities may be referred to only in <termref def="dt-attrval">attribute
+values</termref> declared to be of type <kw>ENTITY</kw> or <kw>ENTITIES</kw>.</p>
+</wfcnote>
+<wfcnote id="norecursion"><head>No Recursion</head><p>A parsed entity must
+not contain a recursive reference to itself, either directly or indirectly.</p>
+</wfcnote>
+<wfcnote id="indtd"><head>In DTD</head><p>Parameter-entity references may
+only appear in the <termref def="dt-doctype">DTD</termref>.</p>
+</wfcnote>
+<p>Examples of character and entity references:</p>
+<eg>Type &lt;key>less-than&lt;/key> (&hcro;3C;) to save options.
+This document was prepared on &amp;docdate; and
+is classified &amp;security-level;.</eg>
+<p>Example of a parameter-entity reference:</p>
+<eg><![CDATA[<!-- declare the parameter entity "ISOLat2"... -->
+<!ENTITY % ISOLat2
+         SYSTEM "http://www.xml.com/iso/isolat2-xml.entities" >
+<!-- ... now reference it. -->
+%ISOLat2;]]></eg>
+</div2>
+<div2 id="sec-entity-decl">
+<head>Entity Declarations</head>
+<p><termdef id="dt-entdecl" term="entity declaration"> Entities are declared
+thus:</termdef></p>
+<scrap lang="ebnf">
+<head>Entity Declaration</head>
+<prodgroup pcw2="5" pcw4="18.5">
+<prod id="NT-EntityDecl">
+<lhs>EntityDecl</lhs><rhs><nt def="NT-GEDecl">GEDecl</nt><!--</rhs><com>General entities</com>
+<rhs>--> | <nt def="NT-PEDecl">PEDecl</nt></rhs>
+<!--<com>Parameter entities</com>-->
+</prod>
+<prod id="NT-GEDecl">
+<lhs>GEDecl</lhs><rhs>'&lt;!ENTITY' <nt def="NT-S">S</nt> <nt def="NT-Name">Name</nt> <nt
+def="NT-S">S</nt> <nt def="NT-EntityDef">EntityDef</nt> <nt def="NT-S">S</nt>?
+'>'</rhs>
+</prod>
+<prod id="NT-PEDecl">
+<lhs>PEDecl</lhs><rhs>'&lt;!ENTITY' <nt def="NT-S">S</nt> '%' <nt def="NT-S">S</nt> <nt
+def="NT-Name">Name</nt> <nt def="NT-S">S</nt> <nt def="NT-PEDef">PEDef</nt> <nt
+def="NT-S">S</nt>? '>'</rhs>
+<!--<com>Parameter entities</com>-->
+</prod>
+<prod id="NT-EntityDef">
+<lhs>EntityDef</lhs><rhs><nt def="NT-EntityValue">EntityValue</nt> <!--</rhs>
+<rhs>-->| (<nt def="NT-ExternalID">ExternalID</nt> <nt def="NT-NDataDecl">NDataDecl</nt>?)</rhs>
+<!-- <nt def='NT-ExternalDef'>ExternalDef</nt></rhs> -->
+</prod>
+<!-- FINAL EDIT: what happened to WFs here? -->
+<prod id="NT-PEDef">
+<lhs>PEDef</lhs><rhs><nt def="NT-EntityValue">EntityValue</nt> | <nt def="NT-ExternalID">ExternalID</nt></rhs>
+</prod>
+</prodgroup></scrap>
+<p>The <nt def="NT-Name">Name</nt> identifies the entity in an <termref def="dt-entref">entity
+reference</termref> or, in the case of an unparsed entity, in the value of
+an <kw>ENTITY</kw> or <kw>ENTITIES</kw> attribute. If the same entity is declared
+more than once, the first declaration encountered is binding; at user option,
+an XML processor may issue a warning if entities are declared multiple times.</p>
+<div3 id="sec-internal-ent">
+<head>Internal Entities</head>
+<p><termdef id="dt-internent" term="Internal Entity Replacement Text">If the
+entity definition is an <nt def="NT-EntityValue">EntityValue</nt>, the defined
+entity is called an <term>internal entity</term>. There is no separate physical
+storage object, and the content of the entity is given in the declaration.</termdef>
+Note that some processing of entity and character references in the <termref
+def="dt-litentval">literal entity value</termref> may be required to produce
+the correct <termref def="dt-repltext">replacement text</termref>: see <specref
+ref="intern-replacement"/>.</p>
+<p>An internal entity is a <termref def="dt-parsedent">parsed entity</termref>.</p>
+<p>Example of an internal entity declaration:</p>
+<eg>&lt;!ENTITY Pub-Status "This is a pre-release of the
+ specification."></eg>
+</div3>
+<div3 id="sec-external-ent">
+<head>External Entities</head>
+<p><termdef id="dt-extent" term="External Entity">If the entity is not internal,
+it is an <term>external entity</term>, declared as follows:</termdef></p>
+<scrap lang="ebnf">
+<head>External Entity Declaration</head>
+<!--
+<prod id='NT-ExternalDef'><lhs>ExternalDef</lhs>
+<rhs></prod> -->
+<prod id="NT-ExternalID">
+<lhs>ExternalID</lhs><rhs>'SYSTEM' <nt def="NT-S">S</nt> <nt def="NT-SystemLiteral">SystemLiteral</nt></rhs>
+<rhs>| 'PUBLIC' <nt def="NT-S">S</nt> <nt def="NT-PubidLiteral">PubidLiteral</nt> <nt
+def="NT-S">S</nt> <nt def="NT-SystemLiteral">SystemLiteral</nt> </rhs>
+</prod>
+<prod id="NT-NDataDecl">
+<lhs>NDataDecl</lhs><rhs><nt def="NT-S">S</nt> 'NDATA' <nt def="NT-S">S</nt> <nt
+def="NT-Name">Name</nt></rhs><vc def="not-declared"/>
+</prod>
+</scrap>
+<p>If the <nt def="NT-NDataDecl">NDataDecl</nt> is present, this is a general <termref
+def="dt-unparsed">unparsed entity</termref>; otherwise it is a parsed entity.</p>
+<vcnote id="not-declared"><head>Notation Declared</head><p>The <nt def="NT-Name">Name</nt>
+must match the declared name of a <termref def="dt-notation">notation</termref>.</p>
+</vcnote>
+<p><phrase diff="chg"><termdef id="dt-sysid" term="System Identifier">The <nt
+def="NT-SystemLiteral">SystemLiteral</nt> is called the entity's <term>system
+identifier</term>. It is a <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E88">[E88]</loc>URI
+reference</phrase><phrase diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E66">[E66]</loc>
+(as defined in <bibref ref="rfc2396"/>, updated by <bibref ref="rfc2732"/>)</phrase>, <loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E76">[E76]</loc>meant
+to be dereferenced to obtain input for the XML processor to construct the
+entity's replacement text.</termdef> It is an error for a fragment identifier
+(beginning with a <code>#</code> character) to be part of a system identifier.</phrase>
+Unless otherwise provided by information outside the scope of this specification
+(e.g. a special XML element type defined by a particular DTD, or a processing
+instruction defined by a particular application specification), relative URIs
+are relative to the location of the resource within which the entity declaration
+occurs. A URI might thus be relative to the <termref def="dt-docent">document
+entity</termref>, to the entity containing the <termref def="dt-doctype">external
+DTD subset</termref>, or to some other <termref def="dt-extent">external parameter
+entity</termref>.</p>
+<p diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E78">[E78]</loc>URI
+references require encoding and escaping of certain characters. The disallowed
+characters include all non-ASCII characters, plus the excluded characters
+listed in Section 2.4 of <bibref ref="rfc2396"/>, except for the number sign
+(<code>#</code>) and percent sign (<code>%</code>) characters and the square
+bracket characters re-allowed in <bibref ref="rfc2732"/>. Disallowed characters
+must be escaped as follows:</p>
+<olist diff="add">
+<item><p>Each disallowed character is converted to UTF-8 <bibref ref="rfc2279"/>
+as one or more bytes.</p></item>
+<item><p>Any octets corresponding to a disallowed character are escaped with
+the URI escaping mechanism (that is, converted to <code>%</code><var>HH</var>,
+where HH is the hexadecimal notation of the byte value).</p></item>
+<item><p>The original character is replaced by the resulting character sequence.</p>
+</item>
+</olist>
+<p><termdef id="dt-pubid" term="Public identifier"> In addition to a system
+identifier, an external identifier may include a <term>public identifier</term>.</termdef>
+An XML processor attempting to retrieve the entity's content may use the public
+identifier to try to generate an alternative <phrase diff="chg"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E88">[E88]</loc>URI reference</phrase>.
+If the processor is unable to do so, it must use the <phrase diff="chg"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E88">[E88]</loc>URI
+reference</phrase> specified in the system literal. Before a match is attempted,
+all strings of white space in the public identifier must be normalized to
+single space characters (#x20), and leading and trailing white space must
+be removed.</p>
+<p>Examples of external entity declarations:</p>
+<eg>&lt;!ENTITY open-hatch
+         SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml">
+&lt;!ENTITY open-hatch
+         PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN"
+         "http://www.textuality.com/boilerplate/OpenHatch.xml">
+&lt;!ENTITY hatch-pic
+         SYSTEM "../grafix/OpenHatch.gif"
+         NDATA gif ></eg>
+</div3>
+</div2>
+<div2 id="TextEntities">
+<head>Parsed Entities</head>
+<div3 id="sec-TextDecl">
+<head>The Text Declaration</head>
+<p>External parsed entities <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E107">[E107]</loc>should</phrase
+> each begin with a <term>text declaration</term>.</p>
+<scrap lang="ebnf">
+<head>Text Declaration</head>
+<prodgroup pcw4="12.5" pcw5="13">
+<prod id="NT-TextDecl">
+<lhs>TextDecl</lhs><rhs>&pio; <nt def="NT-VersionInfo">VersionInfo</nt>? <nt
+def="NT-EncodingDecl">EncodingDecl</nt> <nt def="NT-S">S</nt>? &pic;</rhs>
+</prod>
+</prodgroup></scrap>
+<p>The text declaration must be provided literally, not by reference to a
+parsed entity. No text declaration may appear at any position other than the
+beginning of an external parsed entity. <phrase diff="add"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E94">[E94]</loc>The text declaration
+in an external parsed entity is not considered part of its <termref def="dt-repltext">replacement
+text</termref>.</phrase></p>
+</div3>
+<div3 id="wf-entities">
+<head>Well-Formed Parsed Entities</head>
+<p>The document entity is well-formed if it matches the production labeled <nt
+def="NT-document">document</nt>. An external general parsed entity is well-formed
+if it matches the production labeled <nt def="NT-extParsedEnt">extParsedEnt</nt>. <phrase
+diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</loc>All
+external parameter entities are well-formed by definition.</phrase></p>
+<scrap lang="ebnf">
+<head>Well-Formed External Parsed Entity</head>
+<prod id="NT-extParsedEnt">
+<lhs>extParsedEnt</lhs><rhs><nt def="NT-TextDecl">TextDecl</nt>? <nt def="NT-content">content</nt></rhs>
+</prod>
+<prod id="NT-extPE" diff="del">
+<lhs>extPE</lhs><rhs><nt def="NT-TextDecl">TextDecl</nt>? <nt def="NT-extSubsetDecl">extSubsetDecl</nt></rhs>
+<com><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E109">[E109]</loc></com>
+</prod>
+</scrap>
+<p>An internal general parsed entity is well-formed if its replacement text
+matches the production labeled <nt def="NT-content">content</nt>. All internal
+parameter entities are well-formed by definition.</p>
+<p>A consequence of well-formedness in entities is that the logical and physical
+structures in an XML document are properly nested; no <termref def="dt-stag">start-tag</termref>, <termref
+def="dt-etag">end-tag</termref>, <termref def="dt-empty">empty-element tag</termref>, <termref
+def="dt-element">element</termref>, <termref def="dt-comment">comment</termref>, <termref
+def="dt-pi">processing instruction</termref>, <termref def="dt-charref">character
+reference</termref>, or <termref def="dt-entref">entity reference</termref>
+can begin in one entity and end in another.</p>
+</div3>
+<div3 id="charencoding">
+<head>Character Encoding in Entities</head>
+<p>Each external parsed entity in an XML document may use a different encoding
+for its characters. All XML processors must be able to read entities in <phrase
+diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E56">[E56]</loc>both
+the UTF-8 and UTF-16 encodings.</phrase> <phrase diff="add"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E77">[E77]</loc>The terms <quote>UTF-8</quote>
+and <quote>UTF-16</quote> in this specification do not apply to character
+encodings with any other labels, even if the encodings or labels are very
+similar to UTF-8 or UTF-16.</phrase></p>
+<p>Entities encoded in UTF-16 must begin with the Byte Order Mark described
+by <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</loc>Annex
+F of <bibref ref="ISO10646"/>, Annex H of <bibref ref="ISO10646-2000"/>, section
+2.4 of <bibref ref="Unicode"/>, and section 2.7 of <bibref ref="Unicode3"/></phrase>
+(the ZERO WIDTH NO-BREAK SPACE character, #xFEFF). This is an encoding signature,
+not part of either the markup or the character data of the XML document. XML
+processors must be able to use this character to differentiate between UTF-8
+and UTF-16 encoded documents.</p>
+<p>Although an XML processor is required to read only entities in the UTF-8
+and UTF-16 encodings, it is recognized that other encodings are used around
+the world, and it may be desired for XML processors to read entities that
+use them. <phrase diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E47">[E47]</loc>In
+the absence of external character encoding information (such as MIME headers),</phrase>
+parsed entities which are stored in an encoding other than UTF-8 or UTF-16
+must begin with a text declaration <phrase diff="add">(see <specref ref="sec-TextDecl"/>) </phrase>containing
+an encoding declaration:</p>
+<scrap lang="ebnf">
+<head>Encoding Declaration</head>
+<prod id="NT-EncodingDecl">
+<lhs>EncodingDecl</lhs><rhs><nt def="NT-S">S</nt> 'encoding' <nt def="NT-Eq">Eq</nt>
+('"' <nt def="NT-EncName">EncName</nt> '"' | "'" <nt def="NT-EncName">EncName</nt>
+"'" ) </rhs>
+</prod>
+<prod id="NT-EncName">
+<lhs>EncName</lhs><rhs>[A-Za-z] ([A-Za-z0-9._] | '-')*</rhs><com>Encoding
+name contains only Latin characters</com>
+</prod>
+</scrap>
+<p>In the <termref def="dt-docent">document entity</termref>, the encoding
+declaration is part of the <termref def="dt-xmldecl">XML declaration</termref>.
+The <nt def="NT-EncName">EncName</nt> is the name of the encoding used.</p>
+<!-- FINAL EDIT: check name of IANA and charset names -->
+<p>In an encoding declaration, the values <quote><code>UTF-8</code></quote>, <quote><code>UTF-16</code></quote>, <quote><code>ISO-10646-UCS-2</code
+></quote>, and <quote><code>ISO-10646-UCS-4</code></quote> should be used
+for the various encodings and transformations of Unicode / ISO/IEC 10646,
+the values <quote><code>ISO-8859-1</code></quote>, <quote><code>ISO-8859-2</code></quote>,
+... <loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E106">[E106]</loc><phrase
+diff="chg"><quote><code>ISO-8859-</code><var>n</var></quote> (where <var>n</var>
+is the part number)</phrase> should be used for the parts of ISO 8859, and
+the values <quote><code>ISO-2022-JP</code></quote>, <quote><code>Shift_JIS</code></quote>,
+and <quote><code>EUC-JP</code></quote> should be used for the various encoded
+forms of JIS X-0208-1997. <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E57">[E57]</loc>It
+is recommended that character encodings registered (as <emph>charset</emph>s)
+with the Internet Assigned Numbers Authority <phrase diff="chg"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E58">[E58]</loc><bibref ref="IANA"/></phrase>,
+other than those just listed, be referred to using their registered names;
+other encodings should use names starting with an <quote>x-</quote> prefix.
+XML processors should match character encoding names in a case-insensitive
+way and should either interpret an IANA-registered name as the encoding registered
+at IANA for that name or treat it as unknown (processors are, of course, not
+required to support all IANA-registered encodings).</phrase></p>
+<p>In the absence of information provided by an external transport protocol
+(e.g. HTTP or MIME), it is an <termref def="dt-error">error</termref> for
+an entity including an encoding declaration to be presented to the XML processor
+in an encoding other than that named in the declaration, <phrase diff="del"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E5">[E5]</loc>for
+an encoding declaration to occur other than at the beginning of an external
+entity, </phrase>or for an entity which begins with neither a Byte Order Mark
+nor an encoding declaration to use an encoding other than UTF-8. Note that
+since ASCII is a subset of UTF-8, ordinary ASCII entities do not strictly
+need an encoding declaration.</p>
+<p diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E5">[E5]</loc>It
+is <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E36">[E36]</loc>a
+fatal</phrase> error for a <nt def="NT-TextDecl">TextDecl</nt> to occur other
+than at the beginning of an external entity.</p>
+<p>It is a <termref def="dt-fatal">fatal error</termref> when an XML processor
+encounters an entity with an encoding that it is unable to process. <phrase
+diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E79">[E79]</loc>It
+is a fatal error if an XML entity is determined (via default, encoding declaration,
+or higher-level protocol) to be in a certain encoding but contains octet sequences
+that are not legal in that encoding. It is also a fatal error if an XML entity
+contains no encoding declaration and its content is not legal UTF-8 or UTF-16.</phrase></p>
+<p>Examples of <phrase diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E23">[E23]</loc>text
+declarations containing </phrase>encoding declarations:</p>
+<eg>&lt;?xml encoding='UTF-8'?>
+&lt;?xml encoding='EUC-JP'?></eg>
+</div3>
+</div2>
+<div2 id="entproc">
+<head>XML Processor Treatment of Entities and References</head>
+<p>The table below summarizes the contexts in which character references,
+entity references, and invocations of unparsed entities might appear and the
+required behavior of an <termref def="dt-xml-proc">XML processor</termref>
+in each case. The labels in the leftmost column describe the recognition context: <glist>
+<gitem><label>Reference in Content</label>
+<def>
+<p>as a reference anywhere after the <termref def="dt-stag">start-tag</termref>
+and before the <termref def="dt-etag">end-tag</termref> of an element; corresponds
+to the nonterminal <nt def="NT-content">content</nt>.</p>
+</def></gitem>
+<gitem><label>Reference in Attribute Value</label>
+<def>
+<p>as a reference within either the value of an attribute in a <termref def="dt-stag">start-tag</termref>,
+or a default value in an <termref def="dt-attdecl">attribute declaration</termref>;
+corresponds to the nonterminal <nt def="NT-AttValue">AttValue</nt>.</p>
+</def></gitem>
+<gitem><label>Occurs as Attribute Value</label>
+<def>
+<p>as a <nt def="NT-Name">Name</nt>, not a reference, appearing either as
+the value of an attribute which has been declared as type <kw>ENTITY</kw>,
+or as one of the space-separated tokens in the value of an attribute which
+has been declared as type <kw>ENTITIES</kw>.</p>
+</def></gitem>
+<gitem><label>Reference in Entity Value</label>
+<def>
+<p>as a reference within a parameter or internal entity's <termref def="dt-litentval">literal
+entity value</termref> in the entity's declaration; corresponds to the nonterminal <nt
+def="NT-EntityValue">EntityValue</nt>.</p>
+</def></gitem>
+<gitem><label>Reference in DTD</label>
+<def>
+<p diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E90">[E90]</loc>as
+a reference within either the internal or external subsets of the <termref
+def="dt-doctype">DTD</termref>, but outside of an <nt def="NT-EntityValue">EntityValue</nt>, <nt
+def="NT-AttValue">AttValue</nt>, <nt def="NT-PI">PI</nt>, <nt def="NT-Comment">Comment</nt>, <nt
+def="NT-SystemLiteral">SystemLiteral</nt>, <nt def="NT-PubidLiteral">PubidLiteral</nt>,
+or the contents of an ignored conditional section (see <specref ref="sec-condition-sect"/>).</p>
+<p>.</p>
+</def></gitem>
+</glist></p>
+<table border="1" frame="border" cellpadding="7"><tbody align="center"><tr>
+<td rowspan="2" colspan="1"></td><td colspan="4" align="center" valign="bottom">Entity
+Type</td><td rowspan="2" align="center">Character</td></tr><tr align="center"
+valign="bottom"><td>Parameter</td><td>Internal General</td><td>External Parsed
+General</td><td>Unparsed</td></tr><tr align="center" valign="middle"><td align="right">Reference
+in Content</td><td><titleref href="#not-recognized">Not recognized</titleref></td>
+<td><titleref href="#included">Included</titleref></td><td><titleref href="#include-if-valid">Included
+if validating</titleref></td><td><titleref href="#forbidden">Forbidden</titleref></td>
+<td><titleref href="#included">Included</titleref></td></tr><tr align="center"
+valign="middle"><td align="right">Reference in Attribute Value</td><td><titleref
+href="#not-recognized">Not recognized</titleref></td><td><titleref href="#inliteral">Included
+in literal</titleref></td><td><titleref href="#forbidden">Forbidden</titleref></td>
+<td><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E51">[E51]</loc><titleref
+diff="chg" href="#forbidden">Forbidden</titleref></td><td><titleref href="#included">Included</titleref></td>
+</tr><tr align="center" valign="middle"><td align="right">Occurs as Attribute
+Value</td><td><titleref href="#not-recognized">Not recognized</titleref></td>
+<td><titleref href="#forbidden">Forbidden</titleref></td><td><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E51">[E51]</loc><titleref
+diff="chg" href="#forbidden">Forbidden</titleref></td><td><titleref href="#notify">Notify</titleref></td>
+<td><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E51">[E51]</loc><titleref
+diff="chg" href="#not-recognized">Not recognized</titleref></td></tr><tr align="center"
+valign="middle"><td align="right">Reference in EntityValue</td><td><titleref
+href="#inliteral">Included in literal</titleref></td><td><titleref href="#bypass">Bypassed</titleref></td>
+<td><titleref href="#bypass">Bypassed</titleref></td><td><titleref href="#forbidden">Forbidden</titleref></td>
+<td><titleref href="#included">Included</titleref></td></tr><tr align="center"
+valign="middle"><td align="right">Reference in DTD</td><td><titleref href="#as-PE">Included
+as PE</titleref></td><td><titleref href="#forbidden">Forbidden</titleref></td>
+<td><titleref href="#forbidden">Forbidden</titleref></td><td><titleref href="#forbidden">Forbidden</titleref></td>
+<td><titleref href="#forbidden">Forbidden</titleref></td></tr></tbody></table>
+<div3 id="not-recognized">
+<head>Not Recognized</head>
+<p>Outside the DTD, the <code>%</code> character has no special significance;
+thus, what would be parameter entity references in the DTD are not recognized
+as markup in <nt def="NT-content">content</nt>. Similarly, the names of unparsed
+entities are not recognized except when they appear in the value of an appropriately
+declared attribute.</p>
+</div3>
+<div3 id="included">
+<head>Included</head>
+<p><termdef id="dt-include" term="Include">An entity is <term>included</term>
+when its <termref def="dt-repltext">replacement text</termref> is retrieved
+and processed, in place of the reference itself, as though it were part of
+the document at the location the reference was recognized.</termdef> The replacement
+text may contain both <termref def="dt-chardata">character data</termref>
+and (except for parameter entities) <termref def="dt-markup">markup</termref>,
+which must be recognized in the usual way<phrase diff="del"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E65">[E65]</loc>, except that
+the replacement text of entities used to escape markup delimiters (the entities &magicents;)
+is always treated as data</phrase>. (The string <quote><code>AT&amp;amp;T;</code></quote>
+expands to <quote><code>AT&amp;T;</code></quote> and the remaining ampersand
+is not recognized as an entity-reference delimiter.) A character reference
+is <term>included</term> when the indicated character is processed in place
+of the reference itself. </p>
+</div3>
+<div3 id="include-if-valid">
+<head>Included If Validating</head>
+<p>When an XML processor recognizes a reference to a parsed entity, in order
+to <termref def="dt-valid">validate</termref> the document, the processor
+must <termref def="dt-include">include</termref> its replacement text. If
+the entity is external, and the processor is not attempting to validate the
+XML document, the processor <termref def="dt-may">may</termref>, but need
+not, include the entity's replacement text. If a non-validating <phrase diff="chg"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E95">[E95]</loc>processor</phrase>
+does not include the replacement text, it must inform the application that
+it recognized, but did not read, the entity.</p>
+<p>This rule is based on the recognition that the automatic inclusion provided
+by the SGML and XML entity mechanism, primarily designed to support modularity
+in authoring, is not necessarily appropriate for other applications, in particular
+document browsing. Browsers, for example, when encountering an external parsed
+entity reference, might choose to provide a visual indication of the entity's
+presence and retrieve it for display only on demand.</p>
+</div3>
+<div3 id="forbidden">
+<head>Forbidden</head>
+<p>The following are forbidden, and constitute <termref def="dt-fatal">fatal</termref>
+errors:</p>
+<ulist>
+<item><p>the appearance of a reference to an <termref def="dt-unparsed">unparsed
+entity</termref>.</p></item>
+<item><p>the appearance of any character or general-entity reference in the
+DTD except within an <nt def="NT-EntityValue">EntityValue</nt> or <nt def="NT-AttValue">AttValue</nt>.</p>
+</item>
+<item><p>a reference to an external entity in an attribute value.</p></item>
+</ulist>
+</div3>
+<div3 id="inliteral">
+<head>Included in Literal</head>
+<p>When an <termref def="dt-entref">entity reference</termref> appears in
+an attribute value, or a parameter entity reference appears in a literal entity
+value, its <termref def="dt-repltext">replacement text</termref> is processed
+in place of the reference itself as though it were part of the document at
+the location the reference was recognized, except that a single or double
+quote character in the replacement text is always treated as a normal data
+character and will not terminate the literal. For example, this is well-formed:</p>
+<eg diff="chg">&lt;!-- <loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E4">[E4]</loc> -->
+<![CDATA[<!ENTITY % YN '"Yes"' >
+<!ENTITY WhatHeSaid "He said %YN;" >]]></eg>
+<p>while this is not:</p>
+<eg>&lt;!ENTITY EndAttr "27'" >
+&lt;element attribute='a-&amp;EndAttr;></eg>
+</div3>
+<div3 id="notify">
+<head>Notify</head>
+<p>When the name of an <termref def="dt-unparsed">unparsed entity</termref>
+appears as a token in the value of an attribute of declared type <kw>ENTITY</kw>
+or <kw>ENTITIES</kw>, a validating processor must inform the application of
+the <termref def="dt-sysid">system</termref> and <termref def="dt-pubid">public</termref>
+(if any) identifiers for both the entity and its associated <termref def="dt-notation">notation</termref>.</p>
+</div3>
+<div3 id="bypass">
+<head>Bypassed</head>
+<p>When a general entity reference appears in the <nt def="NT-EntityValue">EntityValue</nt>
+in an entity declaration, it is bypassed and left as is.</p>
+</div3>
+<div3 id="as-PE">
+<head>Included as PE</head>
+<p>Just as with external parsed entities, parameter entities need only be <titleref
+href="#include-if-valid">included if validating</titleref>. When a parameter-entity
+reference is recognized in the DTD and included, its <termref def="dt-repltext">replacement
+text</termref> is enlarged by the attachment of one leading and one following
+space (#x20) character; the intent is to constrain the replacement text of
+parameter entities to contain an integral number of grammatical tokens in
+the DTD. <phrase diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E96">[E96]</loc>This
+behavior does not apply to parameter entity references within entity values;
+these are described in <specref ref="inliteral"/>.</phrase></p>
+</div3>
+</div2>
+<div2 id="intern-replacement">
+<head>Construction of Internal Entity Replacement Text</head>
+<p>In discussing the treatment of internal entities, it is useful to distinguish
+two forms of the entity's value. <termdef id="dt-litentval" term="Literal Entity Value">The <term>literal
+entity value</term> is the quoted string actually present in the entity declaration,
+corresponding to the non-terminal <nt def="NT-EntityValue">EntityValue</nt>.</termdef> <termdef
+id="dt-repltext" term="Replacement Text">The <term>replacement text</term>
+is the content of the entity, after replacement of character references and
+parameter-entity references.</termdef></p>
+<p>The literal entity value as given in an internal entity declaration (<nt
+def="NT-EntityValue">EntityValue</nt>) may contain character, parameter-entity,
+and general-entity references. Such references must be contained entirely
+within the literal entity value. The actual replacement text that is <termref
+def="dt-include">included</termref> as described above must contain the <emph>replacement
+text</emph> of any parameter entities referred to, and must contain the character
+referred to, in place of any character references in the literal entity value;
+however, general-entity references must be left as-is, unexpanded. For example,
+given the following declarations:</p>
+<eg><![CDATA[<!ENTITY % pub    "&#xc9;ditions Gallimard" >
+<!ENTITY   rights "All rights reserved" >
+<!ENTITY   book   "La Peste: Albert Camus,
+&#xA9; 1947 %pub;. &rights;" >]]></eg>
+<p>then the replacement text for the entity <quote><code>book</code></quote>
+is:</p>
+<eg>La Peste: Albert Camus,
+© 1947 Éditions Gallimard. &amp;rights;</eg>
+<p>The general-entity reference <quote><code>&amp;rights;</code></quote> would
+be expanded should the reference <quote><code>&amp;book;</code></quote> appear
+in the document's content or an attribute value.</p>
+<p>These simple rules may have complex interactions; for a detailed discussion
+of a difficult example, see <specref ref="sec-entexpand"/>.</p>
+</div2>
+<div2 id="sec-predefined-ent">
+<head>Predefined Entities</head>
+<p><termdef id="dt-escape" term="escape">Entity and character references can
+both be used to <term>escape</term> the left angle bracket, ampersand, and
+other delimiters. A set of general entities (&magicents;) is specified for
+this purpose. Numeric character references may also be used; they are expanded
+immediately when recognized and must be treated as character data, so the
+numeric character references <quote><code>&amp;#60;</code></quote> and <quote><code>&amp;#38;</code></quote>
+may be used to escape <code>&lt;</code> and <code>&amp;</code> when they occur
+in character data.</termdef></p>
+<p>All XML processors must recognize these entities whether they are declared
+or not. <termref def="dt-interop">For interoperability</termref>, valid XML
+documents should declare these entities, like any others, before using them. <phrase
+diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E80">[E80]</loc>If
+the entities <code>lt</code> or <code>amp</code> are declared, they must be
+declared as internal entities whose replacement text is a character reference
+to the <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E103">[E103]</loc>respective
+character (less-than sign or ampersand)</phrase> being escaped; the double
+escaping is required for these entities so that references to them produce
+a well-formed result. If the entities <code>gt</code>, <code>apos</code>,
+or <code>quot</code> are declared, they must be declared as internal entities
+whose replacement text is the single character being escaped (or a character
+reference to that character; the double escaping here is unnecessary but harmless).
+For example:</phrase></p>
+<eg><![CDATA[<!ENTITY lt     "&#38;#60;">
+<!ENTITY gt     "&#62;">
+<!ENTITY amp    "&#38;#38;">
+<!ENTITY apos   "&#39;">
+<!ENTITY quot   "&#34;">]]></eg>
+<p diff="del">Note that the <code>&lt;</code> and <code>&amp;</code> characters
+in the declarations of <quote><code>lt</code></quote> and <quote><code>amp</code></quote>
+are doubly escaped to meet the requirement that entity replacement be well-formed.</p>
+</div2>
+<div2 id="Notations">
+<head>Notation Declarations</head>
+<p><termdef id="dt-notation" term="Notation"><term>Notations</term> identify
+by name the format of <termref def="dt-extent">unparsed entities</termref>,
+the format of elements which bear a notation attribute, or the application
+to which a <termref def="dt-pi">processing instruction</termref> is addressed.</termdef></p>
+<p><termdef id="dt-notdecl" term="Notation Declaration"> <term>Notation declarations</term>
+provide a name for the notation, for use in entity and attribute-list declarations
+and in attribute specifications, and an external identifier for the notation
+which may allow an XML processor or its client application to locate a helper
+application capable of processing data in the given notation.</termdef></p>
+<scrap lang="ebnf">
+<head>Notation Declarations</head>
+<prod id="NT-NotationDecl">
+<lhs>NotationDecl</lhs><rhs>'&lt;!NOTATION' <nt def="NT-S">S</nt> <nt def="NT-Name">Name</nt> <nt
+def="NT-S">S</nt> (<nt def="NT-ExternalID">ExternalID</nt> | <nt def="NT-PublicID">PublicID</nt>) <nt
+def="NT-S">S</nt>? '>'</rhs><vc def="UniqueNotationName" diff="add"/>
+</prod>
+<prod id="NT-PublicID">
+<lhs>PublicID</lhs><rhs>'PUBLIC' <nt def="NT-S">S</nt> <nt def="NT-PubidLiteral">PubidLiteral</nt> </rhs>
+</prod>
+</scrap>
+<vcnote id="UniqueNotationName" diff="add"><head><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E22">[E22]</loc>Unique
+Notation Name</head><p>Only one notation declaration can declare a given <nt
+def="NT-Name">Name</nt>.</p>
+</vcnote>
+<p>XML processors must provide applications with the name and external identifier(s)
+of any notation declared and referred to in an attribute value, attribute
+definition, or entity declaration. They may additionally resolve the external
+identifier into the <termref def="dt-sysid">system identifier</termref>, file
+name, or other information needed to allow the application to call a processor
+for data in the notation described. (It is not an error, however, for XML
+documents to declare and refer to notations for which notation-specific applications
+are not available on the system where the XML processor or application is
+running.)</p>
+</div2>
+<div2 id="sec-doc-entity">
+<head>Document Entity</head>
+<p><termdef id="dt-docent" term="Document Entity">The <term>document entity</term>
+serves as the root of the entity tree and a starting-point for an <termref
+def="dt-xml-proc">XML processor</termref>.</termdef> This specification does
+not specify how the document entity is to be located by an XML processor;
+unlike other entities, the document entity has no name and might well appear
+on a processor input stream without any identification at all.</p>
+</div2>
+</div1>
+<!-- &Conformance; -->
+<div1 id="sec-conformance">
+<head>Conformance</head>
+<div2 id="proc-types">
+<head>Validating and Non-Validating Processors</head>
+<p>Conforming <termref def="dt-xml-proc">XML processors</termref> fall into
+two classes: validating and non-validating.</p>
+<p>Validating and non-validating processors alike must report violations of
+this specification's well-formedness constraints in the content of the <termref
+def="dt-docent">document entity</termref> and any other <termref def="dt-parsedent">parsed
+entities</termref> that they read.</p>
+<p><termdef id="dt-validating" term="Validating Processor"><term>Validating
+processors</term> must<phrase diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E21">[E21]</loc>,
+at user option,</phrase> report violations of the constraints expressed by
+the declarations in the <termref def="dt-doctype">DTD</termref>, and failures
+to fulfill the validity constraints given in this specification.</termdef>
+To accomplish this, validating XML processors must read and process the entire
+DTD and all external parsed entities referenced in the document.</p>
+<p>Non-validating processors are required to check only the <termref def="dt-docent">document
+entity</termref>, including the entire internal DTD subset, for well-formedness. <termdef
+id="dt-use-mdecl" term="Process Declarations"> While they are not required
+to check the document for validity, they are required to <term>process</term>
+all the declarations they read in the internal DTD subset and in any parameter
+entity that they read, up to the first reference to a parameter entity that
+they do <emph>not</emph> read; that is to say, they must use the information
+in those declarations to <titleref href="#AVNormalize">normalize</titleref>
+attribute values, <titleref href="#included">include</titleref> the replacement
+text of internal entities, and supply <titleref href="#sec-attr-defaults">default
+attribute values</titleref>.</termdef> <phrase diff="add"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E33">[E33]</loc>Except when <code>standalone="yes"</code>, </phrase>they
+must not <termref def="dt-use-mdecl">process</termref> <termref def="dt-entdecl">entity
+declarations</termref> or <termref def="dt-attdecl">attribute-list declarations</termref>
+encountered after a reference to a parameter entity that is not read, since
+the entity may have contained overriding declarations.</p>
+</div2>
+<div2 id="safe-behavior">
+<head>Using XML Processors</head>
+<p>The behavior of a validating XML processor is highly predictable; it must
+read every piece of a document and report all well-formedness and validity
+violations. Less is required of a non-validating processor; it need not read
+any part of the document other than the document entity. This has two effects
+that may be important to users of XML processors:</p>
+<ulist>
+<item><p>Certain well-formedness errors, specifically those that require reading
+external entities, may not be detected by a non-validating processor. Examples
+include the constraints entitled <titleref href="#wf-entdeclared">Entity Declared</titleref>, <titleref
+href="#textent">Parsed Entity</titleref>, and <titleref href="#norecursion">No
+Recursion</titleref>, as well as some of the cases described as <titleref
+href="#forbidden">forbidden</titleref> in <specref ref="entproc"/>.</p></item>
+<item><p>The information passed from the processor to the application may
+vary, depending on whether the processor reads parameter and external entities.
+For example, a non-validating processor may not <titleref href="#AVNormalize">normalize</titleref>
+attribute values, <titleref href="#included">include</titleref> the replacement
+text of internal entities, or supply <titleref href="#sec-attr-defaults">default
+attribute values</titleref>, where doing so depends on having read declarations
+in external or parameter entities.</p></item>
+</ulist>
+<p>For maximum reliability in interoperating between different XML processors,
+applications which use non-validating processors should not rely on any behaviors
+not required of such processors. Applications which require facilities such
+as the use of default attributes or internal entities which are declared in
+external entities should use validating XML processors.</p>
+</div2>
+</div1>
+<div1 id="sec-notation">
+<head>Notation</head>
+<p>The formal grammar of XML is given in this specification using a simple
+Extended Backus-Naur Form (EBNF) notation. Each rule in the grammar defines
+one symbol, in the form</p>
+<eg>symbol ::= expression</eg>
+<p>Symbols are written with an initial capital letter if they are <phrase
+diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E42">[E42]</loc>the
+start symbol of a regular language,</phrase> otherwise with an initial lower
+case letter. Literal strings are quoted.</p>
+<p>Within the expression on the right-hand side of a rule, the following expressions
+are used to match strings of one or more characters: <glist>
+<gitem><label><code>#xN</code></label>
+<def>
+<p>where <code>N</code> is a hexadecimal integer, the expression matches the
+character in ISO/IEC 10646 whose canonical (UCS-4) code value, when interpreted
+as an unsigned binary number, has the value indicated. The number of leading
+zeros in the <code>#xN</code> form is insignificant; the number of leading
+zeros in the corresponding code value is governed by the character encoding
+in use and is not significant for XML.</p>
+</def></gitem>
+<gitem><label><code>[a-zA-Z]</code>, <code>[#xN-#xN]</code></label>
+<def>
+<p>matches any <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E93">[E93]</loc><nt
+def="NT-Char">Char</nt></phrase> with a value in the range(s) indicated (inclusive).</p>
+</def></gitem>
+<gitem diff="add"><label><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E3">[E3]</loc><code>[abc]</code>, <code>[#xN#xN#xN]</code
+></label>
+<def>
+<p>matches any <nt def="NT-Char">Char</nt> with a value among the characters
+enumerated. Enumerations and ranges can be mixed in one set of brackets.</p>
+</def></gitem>
+<gitem><label><code>[^a-z]</code>, <code>[^#xN-#xN]</code></label>
+<def>
+<p>matches any <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E93">[E93]</loc><nt
+def="NT-Char">Char</nt></phrase> with a value <emph>outside</emph> the range
+indicated.</p>
+</def></gitem>
+<gitem><label><code>[^abc]</code>, <code>[^#xN#xN#xN]</code></label>
+<def>
+<p>matches any <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E93">[E93]</loc><nt
+def="NT-Char">Char</nt></phrase> with a value not among the characters given. <phrase
+diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E3">[E3]</loc>Enumerations
+and ranges of forbidden values can be mixed in one set of brackets.</phrase></p>
+</def></gitem>
+<gitem><label><code>"string"</code></label>
+<def>
+<p>matches a literal string <termref def="dt-match">matching</termref> that
+given inside the double quotes.</p>
+</def></gitem>
+<gitem><label><code>'string'</code></label>
+<def>
+<p>matches a literal string <termref def="dt-match">matching</termref> that
+given inside the single quotes.</p>
+</def></gitem>
+</glist> These symbols may be combined to match more complex patterns as follows,
+where <code>A</code> and <code>B</code> represent simple expressions: <glist>
+<gitem><label>(<code>expression</code>)</label>
+<def>
+<p><code>expression</code> is treated as a unit and may be combined as described
+in this list.</p>
+</def></gitem>
+<gitem><label><code>A?</code></label>
+<def>
+<p>matches <code>A</code> or nothing; optional <code>A</code>.</p>
+</def></gitem>
+<gitem><label><code>A B</code></label>
+<def>
+<p>matches <code>A</code> followed by <code>B</code>. <phrase diff="add"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E20">[E20]</loc>This
+operator has higher precedence than alternation; thus <code>A B | C D</code>
+is identical to <code>(A B) | (C D)</code>.</phrase></p>
+</def></gitem>
+<gitem><label><code>A | B</code></label>
+<def>
+<p>matches <code>A</code> or <code>B</code> but not both.</p>
+</def></gitem>
+<gitem><label><code>A - B</code></label>
+<def>
+<p>matches any string that matches <code>A</code> but does not match <code>B</code>.</p>
+</def></gitem>
+<gitem><label><code>A+</code></label>
+<def>
+<p>matches one or more occurrences of <code>A</code>.<phrase diff="add"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E20">[E20]</loc>Concatenation
+has higher precedence than alternation; thus <code>A+ | B+</code> is identical
+to <code>(A+) | (B+)</code>.</phrase></p>
+</def></gitem>
+<gitem><label><code>A*</code></label>
+<def>
+<p>matches zero or more occurrences of <code>A</code>. <phrase diff="add"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E20">[E20]</loc>Concatenation
+has higher precedence than alternation; thus <code>A* | B*</code> is identical
+to <code>(A*) | (B*)</code>.</phrase></p>
+</def></gitem>
+</glist> Other notations used in the productions are: <glist>
+<gitem><label><code>/* ... */</code></label>
+<def>
+<p>comment.</p>
+</def></gitem>
+<gitem><label><code>[ wfc: ... ]</code></label>
+<def>
+<p>well-formedness constraint; this identifies by name a constraint on <termref
+def="dt-wellformed">well-formed</termref> documents associated with a production.</p>
+</def></gitem>
+<gitem><label><code>[ vc: ... ]</code></label>
+<def>
+<p>validity constraint; this identifies by name a constraint on <termref def="dt-valid">valid</termref>
+documents associated with a production.</p>
+</def></gitem>
+</glist></p>
+</div1>
+</body><back>
+<!-- &SGML; -->
+<!-- &Biblio; -->
+<div1 id="sec-bibliography">
+<head>References</head>
+<div2 id="sec-existing-stds">
+<head>Normative References</head>
+<blist>
+<bibl id="IANA" diff="chg" key="IANA-CHARSETS"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E58">[E58]</loc>(Internet
+Assigned Numbers Authority) <titleref>Official Names for Character Sets</titleref>,
+ed. Keld Simonsen et al. See <loc href="ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets">ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets</loc
+>. </bibl>
+<bibl id="RFC1766" href="http://www.ietf.org/rfc/rfc1766.txt" key="IETF RFC 1766">IETF
+(Internet Engineering Task Force). <titleref>RFC 1766: Tags for the Identification
+of Languages</titleref>, ed. H. Alvestrand. 1995.</bibl>
+<bibl id="ISO639-old" diff="del" key="ISO 639"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E38">[E38]</loc>
+(International Organization for Standardization). <titleref>ISO 639:1988 (E).
+Code for the representation of names of languages.</titleref> [Geneva]: International
+Organization for Standardization, 1988.</bibl>
+<bibl id="ISO3166-old" diff="del" key="ISO 3166"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E38">[E38]</loc>
+(International Organization for Standardization). <titleref>ISO 3166-1:1997
+(E). Codes for the representation of names of countries and their subdivisions &mdash;
+Part 1: Country codes</titleref> [Geneva]: International Organization for
+Standardization, 1997.</bibl>
+<bibl id="ISO10646" key="ISO/IEC 10646">ISO (International Organization for
+Standardization). <titleref>ISO/IEC 10646-1993 (E). Information technology &mdash;
+Universal Multiple-Octet Coded Character Set (UCS) &mdash; Part 1: Architecture
+and Basic Multilingual Plane.</titleref> [Geneva]: International Organization
+for Standardization, 1993 (plus amendments AM 1 through AM 7).</bibl>
+<bibl id="ISO10646-2000" diff="add" key="ISO/IEC 10646-2000"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</loc> ISO (International
+Organization for Standardization). <titleref>ISO/IEC 10646-1:2000. Information
+technology &mdash; Universal Multiple-Octet Coded Character Set (UCS) &mdash;
+Part 1: Architecture and Basic Multilingual Plane.</titleref> [Geneva]: International
+Organization for Standardization, 2000.</bibl>
+<bibl id="Unicode" key="Unicode">The Unicode Consortium. <emph>The Unicode
+Standard, Version 2.0.</emph> Reading, Mass.: Addison-Wesley Developers Press,
+1996.</bibl>
+<bibl id="Unicode3" diff="add" key="Unicode3"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</loc>
+The Unicode Consortium. <emph>The Unicode Standard, Version 3.0.</emph> Reading,
+Mass.: Addison-Wesley Developers Press, 2000. ISBN 0-201-61633-5.</bibl>
+</blist></div2>
+<div2 id="null">
+<!--
+ID made "null" to match its previous value in the First
+Edition; it's odd, but if there's no set value, the stylesheet 
+currently generates an odd string that would be backwards
+incompatible with any references anyone might have made before.
+-->
+<head>Other References</head>
+<blist>
+<bibl id="Aho" key="Aho/Ullman">Aho, Alfred V., Ravi Sethi, and Jeffrey D.
+Ullman. <titleref>Compilers: Principles, Techniques, and Tools</titleref>.
+Reading: Addison-Wesley, 1986, rpt. corr. 1988.</bibl>
+<bibl id="Berners-Lee" key="Berners-Lee et al."> Berners-Lee, T., R. Fielding,
+and L. Masinter. <titleref>Uniform Resource Identifiers (URI): Generic Syntax
+and Semantics</titleref>. 1997. (Work in progress; see updates to RFC1738.)</bibl>
+<bibl id="ABK" diff="chg" key="Brüggemann-Klein"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E2">[E2]</loc>Brüggemann-Klein,
+Anne. Formal Models in Document Processing. Habilitationsschrift. Faculty
+of Mathematics at the University of Freiburg, 1993. (See <loc href="ftp://ftp.informatik.uni-freiburg.de/documents/papers/brueggem/habil.ps">ftp://ftp.informatik.uni-freiburg.de/documents/papers/brueggem/habil.ps</loc
+>.)</bibl>
+<bibl id="ABKDW" diff="chg" key="Brüggemann-Klein and Wood"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E2">[E2]</loc>Brüggemann-Klein,
+Anne, and Derick Wood. <titleref>Deterministic Regular Languages</titleref>.
+Universität Freiburg, Institut für Informatik, Bericht 38, Oktober 1991. Extended
+abstract in A. Finkel, M. Jantzen, Hrsg., STACS 1992, S. 173-184. Springer-Verlag,
+Berlin 1992. Lecture Notes in Computer Science 577. Full version titled <titleref>One-Unambiguous
+Regular Languages</titleref> in Information and Computation 140 (2): 229-253,
+February 1998.</bibl>
+<bibl id="Clark" key="Clark">James Clark. Comparison of SGML and XML. See <loc
+href="http://www.w3.org/TR/NOTE-sgml-xml-971215">http://www.w3.org/TR/NOTE-sgml-xml-971215</loc>. </bibl>
+<bibl id="IANA-LANGCODES" diff="add" href="http://www.isi.edu/in-notes/iana/assignments/languages/"
+key="IANA-LANGCODES"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E58">[E58]</loc>(Internet
+Assigned Numbers Authority) <titleref>Registry of Language Tags</titleref>,
+ed. Keld Simonsen et al.</bibl>
+<bibl id="RFC1738" diff="del" href="http://www.ietf.org/rfc/rfc1738.txt" key="IETF RFC1738">IETF
+(Internet Engineering Task Force). <titleref>RFC 1738: Uniform Resource Locators
+(URL)</titleref>, ed. T. Berners-Lee, L. Masinter, M. McCahill. 1994. </bibl>
+<bibl id="RFC1808" diff="del" href="http://www.ietf.org/rfc/rfc1808.txt" key="IETF RFC1808">IETF
+(Internet Engineering Task Force). <titleref>RFC 1808: Relative Uniform Resource
+Locators</titleref>, ed. R. Fielding. 1995. </bibl>
+<bibl id="RFC2141" href="http://www.ietf.org/rfc/rfc2141.txt" key="IETF RFC2141">IETF
+(Internet Engineering Task Force). <emph>RFC 2141: URN Syntax</emph>, ed.
+R. Moats. 1997. </bibl>
+<bibl id="rfc2279" diff="add" href="http://www.ietf.org/rfc/rfc2279.txt" key="IETF RFC 2279"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E78">[E78]</loc>IETF
+(Internet Engineering Task Force). <titleref>RFC 2279: UTF-8, a transformation
+format of ISO 10646</titleref>, <phrase diff="add">ed. F. Yergeau, </phrase>1998.</bibl>
+<bibl id="rfc2376" diff="add" href="http://www.ietf.org/rfc/rfc2376.txt" key="IETF RFC 2376"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E48">[E48]</loc>IETF
+(Internet Engineering Task Force). <titleref>RFC 2376: XML Media Types</titleref>.
+ed. E. Whitehead, M. Murata. 1998.</bibl>
+<bibl id="rfc2396" diff="add" href="http://www.ietf.org/rfc/rfc2396.txt" key="IETF RFC 2396"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E66">[E66]</loc>IETF
+(Internet Engineering Task Force). <titleref>RFC 2396: Uniform Resource Identifiers
+(URI): Generic Syntax</titleref>. T. Berners-Lee, R. Fielding, L. Masinter.
+1998.</bibl>
+<bibl id="rfc2732" diff="add" href="http://www.ietf.org/rfc/rfc2732.txt" key="IETF RFC 2732"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E66">[E66]</loc>IETF
+(Internet Engineering Task Force). <titleref>RFC 2732: Format for Literal
+IPv6 Addresses in URL's</titleref>. R. Hinden, B. Carpenter, L. Masinter.
+1999.</bibl>
+<bibl id="rfc2781" diff="add" href="http://www.ietf.org/rfc/rfc2781.txt" key="IETF RFC 2781"><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E77">[E77]</loc>
+IETF (Internet Engineering Task Force). <emph>RFC 2781: UTF-16, an encoding
+of ISO 10646</emph>, ed. P. Hoffman, F. Yergeau. 2000.</bibl>
+<bibl id="ISO639" diff="add" key="ISO 639"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E38">[E38]</loc>
+(International Organization for Standardization). <titleref>ISO 639:1988 (E).
+Code for the representation of names of languages.</titleref> [Geneva]: International
+Organization for Standardization, 1988.</bibl>
+<bibl id="ISO3166" diff="add" key="ISO 3166"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E38">[E38]</loc>
+(International Organization for Standardization). <titleref>ISO 3166-1:1997
+(E). Codes for the representation of names of countries and their subdivisions &mdash;
+Part 1: Country codes</titleref> [Geneva]: International Organization for
+Standardization, 1997.</bibl>
+<bibl id="ISO8879" key="ISO 8879">ISO (International Organization for Standardization). <titleref>ISO
+8879:1986(E). Information processing &mdash; Text and Office Systems &mdash;
+Standard Generalized Markup Language (SGML).</titleref> First edition &mdash;
+1986-10-15. [Geneva]: International Organization for Standardization, 1986. </bibl>
+<bibl id="ISO10744" key="ISO/IEC 10744">ISO (International Organization for
+Standardization). <titleref>ISO/IEC 10744-1992 (E). Information technology &mdash;
+Hypermedia/Time-based Structuring Language (HyTime). </titleref> [Geneva]:
+International Organization for Standardization, 1992. <emph>Extended Facilities
+Annexe.</emph> [Geneva]: International Organization for Standardization, 1996. </bibl>
+<bibl id="websgml" diff="add" href="http://www.sgmlsource.com/8879rev/n0029.htm"
+key="WEBSGML"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E43">[E43]</loc>ISO
+(International Organization for Standardization). <titleref>ISO 8879:1986
+TC2. Information technology &mdash; Document Description and Processing Languages. </titleref>
+[Geneva]: International Organization for Standardization, 1998.</bibl>
+<bibl id="xml-names" diff="add" xmlns:xlink="http://www.w3.org/TR/WD-xlink"
+href="http://www.w3.org/TR/REC-xml-names/" key="XML Names"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E98">[E98]</loc>Tim Bray,
+Dave Hollander, and Andrew Layman, editors. <titleref>Namespaces in XML</titleref>.
+Textuality, Hewlett-Packard, and Microsoft. World Wide Web Consortium, 1999.</bibl>
+</blist></div2>
+</div1>
+<div1 id="CharClasses">
+<head>Character Classes</head>
+<p>Following the characteristics defined in the Unicode standard, characters
+are classed as base characters (among others, these contain the alphabetic
+characters of the Latin alphabet<phrase diff="del"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E84">[E84]</loc>, without
+diacritics</phrase>), ideographic characters, and combining characters (among
+others, this class contains most diacritics)<phrase diff="del"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E30">[E30]</loc>; these classes
+combine to form the class of letters.</phrase> Digits and extenders are also
+distinguished.</p>
+<scrap id="CHARACTERS" lang="ebnf">
+<head>Characters</head>
+<prodgroup pcw3="3" pcw4="15">
+<prod id="NT-Letter">
+<lhs>Letter</lhs><rhs><nt def="NT-BaseChar">BaseChar</nt> | <nt def="NT-Ideographic">Ideographic</nt></rhs>
+</prod>
+<prod id="NT-BaseChar">
+<lhs>BaseChar</lhs><rhs>[#x0041-#x005A] |&nbsp;[#x0061-#x007A] |&nbsp;[#x00C0-#x00D6]
+|&nbsp;[#x00D8-#x00F6] |&nbsp;[#x00F8-#x00FF] |&nbsp;[#x0100-#x0131] |&nbsp;[#x0134-#x013E]
+|&nbsp;[#x0141-#x0148] |&nbsp;[#x014A-#x017E] |&nbsp;[#x0180-#x01C3] |&nbsp;[#x01CD-#x01F0]
+|&nbsp;[#x01F4-#x01F5] |&nbsp;[#x01FA-#x0217] |&nbsp;[#x0250-#x02A8] |&nbsp;[#x02BB-#x02C1]
+|&nbsp;#x0386 |&nbsp;[#x0388-#x038A] |&nbsp;#x038C |&nbsp;[#x038E-#x03A1]
+|&nbsp;[#x03A3-#x03CE] |&nbsp;[#x03D0-#x03D6] |&nbsp;#x03DA |&nbsp;#x03DC
+|&nbsp;#x03DE |&nbsp;#x03E0 |&nbsp;[#x03E2-#x03F3] |&nbsp;[#x0401-#x040C]
+|&nbsp;[#x040E-#x044F] |&nbsp;[#x0451-#x045C] |&nbsp;[#x045E-#x0481] |&nbsp;[#x0490-#x04C4]
+|&nbsp;[#x04C7-#x04C8] |&nbsp;[#x04CB-#x04CC] |&nbsp;[#x04D0-#x04EB] |&nbsp;[#x04EE-#x04F5]
+|&nbsp;[#x04F8-#x04F9] |&nbsp;[#x0531-#x0556] |&nbsp;#x0559 |&nbsp;[#x0561-#x0586]
+|&nbsp;[#x05D0-#x05EA] |&nbsp;[#x05F0-#x05F2] |&nbsp;[#x0621-#x063A] |&nbsp;[#x0641-#x064A]
+|&nbsp;[#x0671-#x06B7] |&nbsp;[#x06BA-#x06BE] |&nbsp;[#x06C0-#x06CE] |&nbsp;[#x06D0-#x06D3]
+|&nbsp;#x06D5 |&nbsp;[#x06E5-#x06E6] |&nbsp;[#x0905-#x0939] |&nbsp;#x093D
+|&nbsp;[#x0958-#x0961] |&nbsp;[#x0985-#x098C] |&nbsp;[#x098F-#x0990] |&nbsp;[#x0993-#x09A8]
+|&nbsp;[#x09AA-#x09B0] |&nbsp;#x09B2 |&nbsp;[#x09B6-#x09B9] |&nbsp;[#x09DC-#x09DD]
+|&nbsp;[#x09DF-#x09E1] |&nbsp;[#x09F0-#x09F1] |&nbsp;[#x0A05-#x0A0A] |&nbsp;[#x0A0F-#x0A10]
+|&nbsp;[#x0A13-#x0A28] |&nbsp;[#x0A2A-#x0A30] |&nbsp;[#x0A32-#x0A33] |&nbsp;[#x0A35-#x0A36]
+|&nbsp;[#x0A38-#x0A39] |&nbsp;[#x0A59-#x0A5C] |&nbsp;#x0A5E |&nbsp;[#x0A72-#x0A74]
+|&nbsp;[#x0A85-#x0A8B] |&nbsp;#x0A8D |&nbsp;[#x0A8F-#x0A91] |&nbsp;[#x0A93-#x0AA8]
+|&nbsp;[#x0AAA-#x0AB0] |&nbsp;[#x0AB2-#x0AB3] |&nbsp;[#x0AB5-#x0AB9] |&nbsp;#x0ABD
+|&nbsp;#x0AE0 |&nbsp;[#x0B05-#x0B0C] |&nbsp;[#x0B0F-#x0B10] |&nbsp;[#x0B13-#x0B28]
+|&nbsp;[#x0B2A-#x0B30] |&nbsp;[#x0B32-#x0B33] |&nbsp;[#x0B36-#x0B39] |&nbsp;#x0B3D
+|&nbsp;[#x0B5C-#x0B5D] |&nbsp;[#x0B5F-#x0B61] |&nbsp;[#x0B85-#x0B8A] |&nbsp;[#x0B8E-#x0B90]
+|&nbsp;[#x0B92-#x0B95] |&nbsp;[#x0B99-#x0B9A] |&nbsp;#x0B9C |&nbsp;[#x0B9E-#x0B9F]
+|&nbsp;[#x0BA3-#x0BA4] |&nbsp;[#x0BA8-#x0BAA] |&nbsp;[#x0BAE-#x0BB5] |&nbsp;[#x0BB7-#x0BB9]
+|&nbsp;[#x0C05-#x0C0C] |&nbsp;[#x0C0E-#x0C10] |&nbsp;[#x0C12-#x0C28] |&nbsp;[#x0C2A-#x0C33]
+|&nbsp;[#x0C35-#x0C39] |&nbsp;[#x0C60-#x0C61] |&nbsp;[#x0C85-#x0C8C] |&nbsp;[#x0C8E-#x0C90]
+|&nbsp;[#x0C92-#x0CA8] |&nbsp;[#x0CAA-#x0CB3] |&nbsp;[#x0CB5-#x0CB9] |&nbsp;#x0CDE
+|&nbsp;[#x0CE0-#x0CE1] |&nbsp;[#x0D05-#x0D0C] |&nbsp;[#x0D0E-#x0D10] |&nbsp;[#x0D12-#x0D28]
+|&nbsp;[#x0D2A-#x0D39] |&nbsp;[#x0D60-#x0D61] |&nbsp;[#x0E01-#x0E2E] |&nbsp;#x0E30
+|&nbsp;[#x0E32-#x0E33] |&nbsp;[#x0E40-#x0E45] |&nbsp;[#x0E81-#x0E82] |&nbsp;#x0E84
+|&nbsp;[#x0E87-#x0E88] |&nbsp;#x0E8A |&nbsp;#x0E8D |&nbsp;[#x0E94-#x0E97]
+|&nbsp;[#x0E99-#x0E9F] |&nbsp;[#x0EA1-#x0EA3] |&nbsp;#x0EA5 |&nbsp;#x0EA7
+|&nbsp;[#x0EAA-#x0EAB] |&nbsp;[#x0EAD-#x0EAE] |&nbsp;#x0EB0 |&nbsp;[#x0EB2-#x0EB3]
+|&nbsp;#x0EBD |&nbsp;[#x0EC0-#x0EC4] |&nbsp;[#x0F40-#x0F47] |&nbsp;[#x0F49-#x0F69]
+|&nbsp;[#x10A0-#x10C5] |&nbsp;[#x10D0-#x10F6] |&nbsp;#x1100 |&nbsp;[#x1102-#x1103]
+|&nbsp;[#x1105-#x1107] |&nbsp;#x1109 |&nbsp;[#x110B-#x110C] |&nbsp;[#x110E-#x1112]
+|&nbsp;#x113C |&nbsp;#x113E |&nbsp;#x1140 |&nbsp;#x114C |&nbsp;#x114E |&nbsp;#x1150
+|&nbsp;[#x1154-#x1155] |&nbsp;#x1159 |&nbsp;[#x115F-#x1161] |&nbsp;#x1163
+|&nbsp;#x1165 |&nbsp;#x1167 |&nbsp;#x1169 |&nbsp;[#x116D-#x116E] |&nbsp;[#x1172-#x1173]
+|&nbsp;#x1175 |&nbsp;#x119E |&nbsp;#x11A8 |&nbsp;#x11AB |&nbsp;[#x11AE-#x11AF]
+|&nbsp;[#x11B7-#x11B8] |&nbsp;#x11BA |&nbsp;[#x11BC-#x11C2] |&nbsp;#x11EB
+|&nbsp;#x11F0 |&nbsp;#x11F9 |&nbsp;[#x1E00-#x1E9B] |&nbsp;[#x1EA0-#x1EF9]
+|&nbsp;[#x1F00-#x1F15] |&nbsp;[#x1F18-#x1F1D] |&nbsp;[#x1F20-#x1F45] |&nbsp;[#x1F48-#x1F4D]
+|&nbsp;[#x1F50-#x1F57] |&nbsp;#x1F59 |&nbsp;#x1F5B |&nbsp;#x1F5D |&nbsp;[#x1F5F-#x1F7D]
+|&nbsp;[#x1F80-#x1FB4] |&nbsp;[#x1FB6-#x1FBC] |&nbsp;#x1FBE |&nbsp;[#x1FC2-#x1FC4]
+|&nbsp;[#x1FC6-#x1FCC] |&nbsp;[#x1FD0-#x1FD3] |&nbsp;[#x1FD6-#x1FDB] |&nbsp;[#x1FE0-#x1FEC]
+|&nbsp;[#x1FF2-#x1FF4] |&nbsp;[#x1FF6-#x1FFC] |&nbsp;#x2126 |&nbsp;[#x212A-#x212B]
+|&nbsp;#x212E |&nbsp;[#x2180-#x2182] |&nbsp;[#x3041-#x3094] |&nbsp;[#x30A1-#x30FA]
+|&nbsp;[#x3105-#x312C] |&nbsp;[#xAC00-#xD7A3] </rhs>
+</prod>
+<prod id="NT-Ideographic">
+<lhs>Ideographic</lhs><rhs>[#x4E00-#x9FA5] |&nbsp;#x3007 |&nbsp;[#x3021-#x3029] </rhs>
+</prod>
+<prod id="NT-CombiningChar">
+<lhs>CombiningChar</lhs><rhs>[#x0300-#x0345] |&nbsp;[#x0360-#x0361] |&nbsp;[#x0483-#x0486]
+|&nbsp;[#x0591-#x05A1] |&nbsp;[#x05A3-#x05B9] |&nbsp;[#x05BB-#x05BD] |&nbsp;#x05BF
+|&nbsp;[#x05C1-#x05C2] |&nbsp;#x05C4 |&nbsp;[#x064B-#x0652] |&nbsp;#x0670
+|&nbsp;[#x06D6-#x06DC] |&nbsp;[#x06DD-#x06DF] |&nbsp;[#x06E0-#x06E4] |&nbsp;[#x06E7-#x06E8]
+|&nbsp;[#x06EA-#x06ED] |&nbsp;[#x0901-#x0903] |&nbsp;#x093C |&nbsp;[#x093E-#x094C]
+|&nbsp;#x094D |&nbsp;[#x0951-#x0954] |&nbsp;[#x0962-#x0963] |&nbsp;[#x0981-#x0983]
+|&nbsp;#x09BC |&nbsp;#x09BE |&nbsp;#x09BF |&nbsp;[#x09C0-#x09C4] |&nbsp;[#x09C7-#x09C8]
+|&nbsp;[#x09CB-#x09CD] |&nbsp;#x09D7 |&nbsp;[#x09E2-#x09E3] |&nbsp;#x0A02
+|&nbsp;#x0A3C |&nbsp;#x0A3E |&nbsp;#x0A3F |&nbsp;[#x0A40-#x0A42] |&nbsp;[#x0A47-#x0A48]
+|&nbsp;[#x0A4B-#x0A4D] |&nbsp;[#x0A70-#x0A71] |&nbsp;[#x0A81-#x0A83] |&nbsp;#x0ABC
+|&nbsp;[#x0ABE-#x0AC5] |&nbsp;[#x0AC7-#x0AC9] |&nbsp;[#x0ACB-#x0ACD] |&nbsp;[#x0B01-#x0B03]
+|&nbsp;#x0B3C |&nbsp;[#x0B3E-#x0B43] |&nbsp;[#x0B47-#x0B48] |&nbsp;[#x0B4B-#x0B4D]
+|&nbsp;[#x0B56-#x0B57] |&nbsp;[#x0B82-#x0B83] |&nbsp;[#x0BBE-#x0BC2] |&nbsp;[#x0BC6-#x0BC8]
+|&nbsp;[#x0BCA-#x0BCD] |&nbsp;#x0BD7 |&nbsp;[#x0C01-#x0C03] |&nbsp;[#x0C3E-#x0C44]
+|&nbsp;[#x0C46-#x0C48] |&nbsp;[#x0C4A-#x0C4D] |&nbsp;[#x0C55-#x0C56] |&nbsp;[#x0C82-#x0C83]
+|&nbsp;[#x0CBE-#x0CC4] |&nbsp;[#x0CC6-#x0CC8] |&nbsp;[#x0CCA-#x0CCD] |&nbsp;[#x0CD5-#x0CD6]
+|&nbsp;[#x0D02-#x0D03] |&nbsp;[#x0D3E-#x0D43] |&nbsp;[#x0D46-#x0D48] |&nbsp;[#x0D4A-#x0D4D]
+|&nbsp;#x0D57 |&nbsp;#x0E31 |&nbsp;[#x0E34-#x0E3A] |&nbsp;[#x0E47-#x0E4E]
+|&nbsp;#x0EB1 |&nbsp;[#x0EB4-#x0EB9] |&nbsp;[#x0EBB-#x0EBC] |&nbsp;[#x0EC8-#x0ECD]
+|&nbsp;[#x0F18-#x0F19] |&nbsp;#x0F35 |&nbsp;#x0F37 |&nbsp;#x0F39 |&nbsp;#x0F3E
+|&nbsp;#x0F3F |&nbsp;[#x0F71-#x0F84] |&nbsp;[#x0F86-#x0F8B] |&nbsp;[#x0F90-#x0F95]
+|&nbsp;#x0F97 |&nbsp;[#x0F99-#x0FAD] |&nbsp;[#x0FB1-#x0FB7] |&nbsp;#x0FB9
+|&nbsp;[#x20D0-#x20DC] |&nbsp;#x20E1 |&nbsp;[#x302A-#x302F] |&nbsp;#x3099
+|&nbsp;#x309A </rhs>
+</prod>
+<prod id="NT-Digit">
+<lhs>Digit</lhs><rhs>[#x0030-#x0039] |&nbsp;[#x0660-#x0669] |&nbsp;[#x06F0-#x06F9]
+|&nbsp;[#x0966-#x096F] |&nbsp;[#x09E6-#x09EF] |&nbsp;[#x0A66-#x0A6F] |&nbsp;[#x0AE6-#x0AEF]
+|&nbsp;[#x0B66-#x0B6F] |&nbsp;[#x0BE7-#x0BEF] |&nbsp;[#x0C66-#x0C6F] |&nbsp;[#x0CE6-#x0CEF]
+|&nbsp;[#x0D66-#x0D6F] |&nbsp;[#x0E50-#x0E59] |&nbsp;[#x0ED0-#x0ED9] |&nbsp;[#x0F20-#x0F29] </rhs>
+</prod>
+<prod id="NT-Extender">
+<lhs>Extender</lhs><rhs>#x00B7 |&nbsp;#x02D0 |&nbsp;#x02D1 |&nbsp;#x0387 |&nbsp;#x0640
+|&nbsp;#x0E46 |&nbsp;#x0EC6 |&nbsp;#x3005 |&nbsp;[#x3031-#x3035] |&nbsp;[#x309D-#x309E]
+|&nbsp;[#x30FC-#x30FE] </rhs>
+</prod>
+</prodgroup></scrap>
+<p>The character classes defined here can be derived from the Unicode <phrase
+diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</loc>2.0</phrase>
+character database as follows:</p>
+<ulist>
+<item><p>Name start characters must have one of the categories Ll, Lu, Lo,
+Lt, Nl.</p></item>
+<item><p>Name characters other than Name-start characters must have one of
+the categories Mc, Me, Mn, Lm, or Nd.</p></item>
+<item><p>Characters in the compatibility area (i.e. with character code greater
+than #xF900 and less than #xFFFE) are not allowed in XML names.</p></item>
+<item><p>Characters which have a font or compatibility decomposition (i.e.
+those with a <quote>compatibility formatting tag</quote> in field 5 of the
+database -- marked by field 5 beginning with a <quote>&lt;</quote>) are not
+allowed.</p></item>
+<item><p>The following characters are treated as name-start characters rather
+than name characters, because the property file classifies them as Alphabetic:
+[#x02BB-#x02C1], #x0559, #x06E5, #x06E6.</p></item>
+<item><p>Characters #x20DD-#x20E0 are excluded (in accordance with Unicode <phrase
+diff="add"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E67">[E67]</loc>2.0</phrase>,
+section 5.14).</p></item>
+<item><p>Character #x00B7 is classified as an extender, because the property
+list so identifies it.</p></item>
+<item><p>Character #x0387 is added as a name character, because #x00B7 is
+its canonical equivalent.</p></item>
+<item><p>Characters ':' and '_' are allowed as name-start characters.</p>
+</item>
+<item><p>Characters '-' and '.' are allowed as name characters.</p></item>
+</ulist>
+</div1>
+<inform-div1 id="sec-xml-and-sgml">
+<head>XML and SGML</head>
+<p><phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E43">[E43]</loc>XML
+is designed to be a subset of SGML, in that every XML document should also
+be a conforming SGML document.</phrase> For a detailed comparison of the additional
+restrictions that XML places on documents beyond those of SGML, see <bibref
+ref="Clark"/>.</p>
+</inform-div1>
+<inform-div1 id="sec-entexpand">
+<head>Expansion of Entity and Character References</head>
+<p>This appendix contains some examples illustrating the sequence of entity-
+and character-reference recognition and expansion, as specified in <specref
+ref="entproc"/>.</p>
+<p>If the DTD contains the declaration</p>
+<eg><![CDATA[<!ENTITY example "<p>An ampersand (&#38;#38;) may be escaped
+numerically (&#38;#38;#38;) or with a general entity
+(&amp;amp;).</p>" >]]></eg>
+<p>then the XML processor will recognize the character references when it
+parses the entity declaration, and resolve them before storing the following
+string as the value of the entity <quote><code>example</code></quote>:</p>
+<eg><![CDATA[<p>An ampersand (&#38;) may be escaped
+numerically (&#38;#38;) or with a general entity
+(&amp;amp;).</p>]]></eg>
+<p>A reference in the document to <quote><code>&amp;example;</code></quote>
+will cause the text to be reparsed, at which time the start- and end-tags
+of the <el>p</el> element will be recognized and the three references will
+be recognized and expanded, resulting in a <el>p</el> element with the following
+content (all data, no delimiters or markup):</p>
+<eg><![CDATA[An ampersand (&) may be escaped
+numerically (&#38;) or with a general entity
+(&amp;).]]></eg>
+<p>A more complex example will illustrate the rules and their effects fully.
+In the following example, the line numbers are solely for reference.</p>
+<eg><![CDATA[1 <?xml version='1.0'?>
+2 <!DOCTYPE test [
+3 <!ELEMENT test (#PCDATA) >
+4 <!ENTITY % xx '&#37;zz;'>
+5 <!ENTITY % zz '&#60;!ENTITY tricky "error-prone" >' >
+6 %xx;
+7 ]>
+8 <test>This sample shows a &tricky; method.</test>]]></eg>
+<p>This produces the following:</p>
+<ulist spacing="compact">
+<item><p>in line 4, the reference to character 37 is expanded immediately,
+and the parameter entity <quote><code>xx</code></quote> is stored in the symbol
+table with the value <quote><code>%zz;</code></quote>. Since the replacement
+text is not rescanned, the reference to parameter entity <quote><code>zz</code></quote>
+is not recognized. (And it would be an error if it were, since <quote><code>zz</code></quote>
+is not yet declared.)</p></item>
+<item><p>in line 5, the character reference <quote><code>&amp;#60;</code></quote>
+is expanded immediately and the parameter entity <quote><code>zz</code></quote>
+is stored with the replacement text <quote><code>&lt;!ENTITY tricky "error-prone"
+></code></quote>, which is a well-formed entity declaration.</p></item>
+<item><p>in line 6, the reference to <quote><code>xx</code></quote> is recognized,
+and the replacement text of <quote><code>xx</code></quote> (namely <quote><code>%zz;</code></quote>)
+is parsed. The reference to <quote><code>zz</code></quote> is recognized in
+its turn, and its replacement text (<quote><code>&lt;!ENTITY tricky "error-prone"
+></code></quote>) is parsed. The general entity <quote><code>tricky</code></quote>
+has now been declared, with the replacement text <quote><code>error-prone</code></quote>.</p>
+</item>
+<item><p>in line 8, the reference to the general entity <quote><code>tricky</code></quote>
+is recognized, and it is expanded, so the full content of the <el>test</el>
+element is the self-describing (and ungrammatical) string <emph>This sample
+shows a error-prone method.</emph></p></item>
+</ulist>
+</inform-div1>
+<inform-div1 id="determinism">
+<head>Deterministic Content Models</head>
+<p><phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E102">[E102]</loc>As
+noted in <specref ref="sec-element-content"/>, it is required that content
+models in element type declarations be deterministic. This requirement is <termref
+def="dt-compat">for compatibility</termref> with SGML (which calls deterministic
+content models <quote>unambiguous</quote>);</phrase> XML processors built
+using SGML systems may flag non-deterministic content models as errors.</p>
+<p>For example, the content model <code>((b, c) | (b, d))</code> is non-deterministic,
+because given an initial <el>b</el> the <phrase diff="chg"><loc role="erratumref"
+href="http://www.w3.org/XML/xml-19980210-errata#E95">[E95]</loc>XML processor</phrase>
+cannot know which <el>b</el> in the model is being matched without looking
+ahead to see which element follows the <el>b</el>. In this case, the two references
+to <el>b</el> can be collapsed into a single reference, making the model read <code>(b,
+(c | d))</code>. An initial <el>b</el> now clearly matches only a single name
+in the content model. The <phrase diff="chg"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E95">[E95]</loc>processor</phrase
+> doesn't need to look ahead to see what follows; either <el>c</el> or <el>d</el>
+would be accepted.</p>
+<p>More formally: a finite state automaton may be constructed from the content
+model using the standard algorithms, e.g. algorithm 3.5 in section 3.9 of
+Aho, Sethi, and Ullman <bibref ref="Aho"/>. In many such algorithms, a follow
+set is constructed for each position in the regular expression (i.e., each
+leaf node in the syntax tree for the regular expression); if any position
+has a follow set in which more than one following position is labeled with
+the same element type name, then the content model is in error and may be
+reported as an error.</p>
+<p>Algorithms exist which allow many but not all non-deterministic content
+models to be reduced automatically to equivalent deterministic models; see
+Brüggemann-Klein 1991 <bibref ref="ABK"/>.</p>
+</inform-div1>
+<inform-div1 id="sec-guessing">
+<head><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E105">[E105]</loc><loc
+role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E48">[E48]</loc>Autodetection
+of Character Encodings</head>
+<p>The XML encoding declaration functions as an internal label on each entity,
+indicating which character encoding is in use. Before an XML processor can
+read the internal label, however, it apparently has to know what character
+encoding is in use&mdash;which is what the internal label is trying to indicate.
+In the general case, this is a hopeless situation. It is not entirely hopeless
+in XML, however, because XML limits the general case in two ways: each implementation
+is assumed to support only a finite set of character encodings, and the XML
+encoding declaration is restricted in position and content in order to make
+it feasible to autodetect the character encoding in use in each entity in
+normal cases. Also, in many cases other sources of information are available
+in addition to the XML data stream itself. Two cases may be distinguished,
+depending on whether the XML entity is presented to the processor without,
+or with, any accompanying (external) information. We consider the first case
+first.</p>
+<div2 id="sec-guessing-no-ext-info">
+<head diff="add">Detection Without External Encoding Information</head>
+<p>Because each XML entity <phrase diff="add">not accompanied by external
+encoding information and </phrase>not in UTF-8 or UTF-16 <phrase diff="chg">encoding</phrase> <emph>must</emph>
+begin with an XML encoding declaration, in which the first characters must
+be '<code>&lt;?xml</code>', any conforming processor can detect, after two
+to four octets of input, which of the following cases apply. In reading this
+list, it may help to know that in UCS-4, '&lt;' is <quote><code>#x0000003C</code></quote>
+and '?' is <quote><code>#x0000003F</code></quote>, and the Byte Order Mark
+required of UTF-16 data streams is <quote><code>#xFEFF</code></quote>. <phrase
+diff="add">The notation <var>##</var> is used to denote any byte value except <phrase
+diff="chg">that two consecutive <var>##</var>s cannot be both 00</phrase>.</phrase></p>
+<p diff="add">With a Byte Order Mark:</p>
+<table diff="add" border="1" frame="border"><tbody><tr><td><code>00 00 FE
+FF</code></td><td>UCS-4, big-endian machine (1234 order)</td></tr><tr><td><code>FF
+FE 00 00</code></td><td>UCS-4, little-endian machine (4321 order)</td></tr>
+<tr><td><code>00 00 FF FE</code></td><td>UCS-4, unusual octet order (2143)</td>
+</tr><tr><td><code>FE FF 00 00</code></td><td>UCS-4, unusual octet order (3412)</td>
+</tr><tr><td><code>FE FF ## ##</code></td><td>UTF-16, big-endian</td></tr>
+<tr><td><code>FF FE ## ##</code></td><td>UTF-16, little-endian</td></tr><tr>
+<td><code>EF BB BF</code></td><td>UTF-8</td></tr></tbody></table>
+<p diff="add">Without a Byte Order Mark:</p>
+<table diff="add" border="1" frame="border"><tbody><tr><td><code>00&nbsp;00&nbsp;00&nbsp;3C</code></td>
+<td rowspan="4">UCS-4 or other encoding with a 32-bit code unit and ASCII
+characters encoded as ASCII values, in respectively big-endian (1234), little-endian
+(4321) and two unusual byte orders (2143 and 3412). The encoding declaration
+must be read to determine which of UCS-4 or other supported 32-bit encodings
+applies.</td></tr><tr><td><code>3C 00 00 00</code></td>
+<!--<td>UCS-4, little-endian machine (4321 order)</td>-->
+</tr><tr><td><code>00 00 3C 00</code></td>
+<!--<td>UCS-4, unusual octet order (2143)</td>-->
+</tr><tr><td><code>00 3C 00 00</code></td>
+<!--<td>UCS-4, unusual octet order (3412)</td>-->
+</tr><tr><td><code>00 3C 00 3F</code></td><td>UTF-16BE or big-endian ISO-10646-UCS-2
+or other encoding with a 16-bit code unit in big-endian order and ASCII characters
+encoded as ASCII values (the encoding declaration must be read to determine
+which)</td></tr><tr><td><code>3C 00 3F 00</code></td><td>UTF-16LE or little-endian
+ISO-10646-UCS-2 or other encoding with a 16-bit code unit in little-endian
+order and ASCII characters encoded as ASCII values (the encoding declaration
+must be read to determine which)</td></tr><tr><td><code>3C 3F 78 6D</code></td>
+<td>UTF-8, ISO 646, ASCII, some part of ISO 8859, Shift-JIS, EUC, or any other
+7-bit, 8-bit, or mixed-width encoding which ensures that the characters of
+ASCII have their normal positions, width, and values; the actual encoding
+declaration must be read to detect which of these applies, but since all of
+these encodings use the same bit patterns for the relevant ASCII characters,
+the encoding declaration itself may be read reliably</td></tr><tr><td><code>4C
+6F A7 94</code></td><td>EBCDIC (in some flavor; the full encoding declaration
+must be read to tell which code page is in use)</td></tr><tr><td>Other</td>
+<td>UTF-8 without an encoding declaration, or else the data stream is mislabeled
+(lacking a required encoding declaration), corrupt, fragmentary, or enclosed
+in a wrapper of some kind</td></tr></tbody></table>
+<note diff="add">
+<p>In cases above which do not require reading the encoding declaration to
+determine the encoding, section 4.3.3 still requires that the encoding declaration,
+if present, be read and that the encoding name be checked to match the actual
+encoding of the entity. Also, it is possible that new character encodings
+will be invented that will make it necessary to use the encoding declaration
+to determine the encoding, in cases where this is not required at present.</p>
+</note>
+<p>This level of autodetection is enough to read the XML encoding declaration
+and parse the character-encoding identifier, which is still necessary to distinguish
+the individual members of each family of encodings (e.g. to tell UTF-8 from
+8859, and the parts of 8859 from each other, or to distinguish the specific
+EBCDIC code page in use, and so on).</p>
+<p>Because the contents of the encoding declaration are restricted to <phrase
+diff="chg">characters from the ASCII repertoire (however encoded)</phrase>,
+a processor can reliably read the entire encoding declaration as soon as it
+has detected which family of encodings is in use. Since in practice, all widely
+used character encodings fall into one of the categories above, the XML encoding
+declaration allows reasonably reliable in-band labeling of character encodings,
+even when external sources of information at the operating-system or transport-protocol
+level are unreliable. <phrase diff="del">Note that since external parsed entities
+in UTF-16 may begin with any character, this autodetection does not always
+work. Also, </phrase><phrase diff="add">Character encodings such as UTF-7
+that make overloaded usage of ASCII-valued bytes may fail to be reliably detected.</phrase></p>
+<p>Once the processor has detected the character encoding in use, it can act
+appropriately, whether by invoking a separate input routine for each case,
+or by calling the proper conversion function on each character of input.</p>
+<p>Like any self-labeling system, the XML encoding declaration will not work
+if any software changes the entity's character set or encoding without updating
+the encoding declaration. Implementors of character-encoding routines should
+be careful to ensure the accuracy of the internal and external information
+used to label the entity.</p>
+</div2>
+<div2 id="sec-guessing-with-ext-info">
+<head diff="add">Priorities in the Presence of External Encoding Information</head>
+<p>The second possible case occurs when the XML entity is accompanied by encoding
+information, as in some file systems and some network protocols. When multiple
+sources of information are available, their relative priority and the preferred
+method of handling conflict should be specified as part of the higher-level
+protocol used to deliver XML. <phrase diff="chg">In particular, please refer
+to <bibref ref="rfc2376"/> or its successor, which defines the <code>text/xml</code>
+and <code>application/xml</code> MIME types and provides some useful guidance.
+In the interests of interoperability, however, the following rule is recommended.</phrase></p>
+<ulist>
+<item><p>If an XML entity is in a file, the Byte-Order Mark and encoding declaration <phrase
+diff="del">PI </phrase>are used (if present) to determine the character encoding.<phrase
+diff="del"><loc role="erratumref" href="http://www.w3.org/XML/xml-19980210-errata#E74">[E74]</loc>
+All other heuristics and sources of information are solely for error recovery.</phrase></p>
+</item>
+</ulist>
+<ulist diff="del">
+<item><p>If an XML entity is delivered with a MIME type of text/xml, then
+the <code>charset</code> parameter on the MIME type determines the character
+encoding method; all other heuristics and sources of information are solely
+for error recovery.</p></item>
+<item><p>If an XML entity is delivered with a MIME type of application/xml,
+then the Byte-Order Mark and encoding-declaration PI are used (if present)
+to determine the character encoding. All other heuristics and sources of information
+are solely for error recovery.</p></item>
+</ulist>
+<p diff="del">These rules apply only in the absence of protocol-level documentation;
+in particular, when the MIME types text/xml and application/xml are defined,
+the recommendations of the relevant RFC will supersede these rules.</p>
+</div2>
+</inform-div1>
+<inform-div1 id="sec-xml-wg">
+<head>W3C XML Working Group</head>
+<p>This specification was prepared and approved for publication by the W3C
+XML Working Group (WG). WG approval of this specification does not necessarily
+imply that all WG members voted for its approval. The current and former members
+of the XML WG are:</p>
+<orglist>
+<member><name>Jon Bosak</name><affiliation>Sun</affiliation><role>Chair</role>
+</member>
+<member><name>James Clark</name><role>Technical Lead</role></member>
+<member><name>Tim Bray</name><affiliation>Textuality and Netscape</affiliation>
+<role>XML Co-editor</role></member>
+<member><name>Jean Paoli</name><affiliation>Microsoft</affiliation><role>XML
+Co-editor</role></member>
+<member><name>C. M. Sperberg-McQueen</name><affiliation>U. of Ill.</affiliation>
+<role>XML Co-editor</role></member>
+<member><name>Dan Connolly</name><affiliation>W3C</affiliation><role>W3C Liaison</role>
+</member>
+<member><name>Paula Angerstein</name><affiliation>Texcel</affiliation></member>
+<member><name>Steve DeRose</name><affiliation>INSO</affiliation></member>
+<member><name>Dave Hollander</name><affiliation>HP</affiliation></member>
+<member><name>Eliot Kimber</name><affiliation>ISOGEN</affiliation></member>
+<member><name>Eve Maler</name><affiliation>ArborText</affiliation></member>
+<member><name>Tom Magliery</name><affiliation>NCSA</affiliation></member>
+<member><name>Murray Maloney</name><affiliation diff="chg">SoftQuad, Grif
+SA, Muzmo and Veo Systems</affiliation></member>
+<member><name diff="chg">MURATA Makoto (FAMILY Given)</name><affiliation>Fuji
+Xerox Information Systems</affiliation></member>
+<member><name>Joel Nava</name><affiliation>Adobe</affiliation></member>
+<member><name>Conleth O'Connell</name><affiliation>Vignette</affiliation>
+</member>
+<member><name>Peter Sharpe</name><affiliation>SoftQuad</affiliation></member>
+<member><name>John Tigue</name><affiliation>DataChannel</affiliation></member>
+</orglist>
+</inform-div1>
+<inform-div1 id="sec-core-wg" diff="add">
+<head>W3C XML Core Group</head>
+<p>The second edition of this specification was prepared by the W3C XML Core
+Working Group (WG). The members of the WG at the time of publication of this
+edition were:</p>
+<orglist>
+<member><name>Paula Angerstein</name><affiliation>Vignette</affiliation></member>
+<member><name>Daniel Austin</name><affiliation>Ask Jeeves</affiliation></member>
+<member><name>Tim Boland</name></member>
+<member><name>Allen Brown</name><affiliation>Microsoft</affiliation></member>
+<member><name>Dan Connolly</name><affiliation>W3C</affiliation><role>Staff
+Contact</role></member>
+<member><name>John Cowan</name><affiliation>Reuters Limited</affiliation>
+</member>
+<member><name>John Evdemon</name><affiliation>XMLSolutions Corporation</affiliation>
+</member>
+<member><name>Paul Grosso</name><affiliation>Arbortext</affiliation><role>Co-Chair</role>
+</member>
+<member><name>Arnaud Le Hors</name><affiliation>IBM</affiliation><role>Co-Chair</role>
+</member>
+<member><name>Eve Maler</name><affiliation>Sun Microsystems</affiliation>
+<role>Second Edition Editor</role></member>
+<member><name>Jonathan Marsh</name><affiliation>Microsoft</affiliation></member>
+<member><name>MURATA Makoto (FAMILY Given)</name><affiliation>IBM</affiliation>
+</member>
+<member><name>Mark Needleman</name><affiliation>Data Research Associates</affiliation>
+</member>
+<member><name>David Orchard</name><affiliation>Jamcracker</affiliation></member>
+<member><name>Lew Shannon</name><affiliation>NCR</affiliation></member>
+<member><name>Richard Tobin</name><affiliation>University of Edinburgh</affiliation>
+</member>
+<member><name>Daniel Veillard</name><affiliation>W3C</affiliation></member>
+<member><name>Dan Vint</name><affiliation>Lexica</affiliation></member>
+<member><name>Norman Walsh</name><affiliation>Sun Microsystems</affiliation>
+</member>
+<member><name>François Yergeau</name><affiliation>Alis Technologies</affiliation>
+<role>Errata List Editor</role></member>
+<member><name>Kongyi Zhou</name><affiliation>Oracle</affiliation></member>
+</orglist>
+</inform-div1>
+<inform-div1 diff="add">
+<head>Production Notes</head>
+<p>This Second Edition was encoded in the <loc href="http://www.w3.org/XML/1998/06/xmlspec-v21.dtd">XMLspec
+DTD</loc> (which has <loc href="http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm">documentation</loc>
+available). The HTML versions were produced with a combination of the <loc
+href="http://www.w3.org/XML/1998/06/xmlspec.xsl">xmlspec.xsl</loc>, <loc href="http://www.w3.org/XML/1998/06/diffspec.xsl">diffspec.xsl</loc>,
+and <loc href="http://www.w3.org/XML/1998/06/REC-xml-2e.xsl">REC-xml-2e.xsl</loc>
+XSLT stylesheets.  The PDF version was produced with the <loc href="http://www.tdb.uu.se/~jan/html2ps.html">html2ps</loc>
+facility and a distiller program.</p>
+</inform-div1>
+</back></spec>

Added: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-2e.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-2e.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/REC-xml-2e.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:import href="diffspec.xsl"/>
+
+<xsl:template match="loc[@role='erratumref']">
+  <xsl:choose>
+    <xsl:when test="$show.diff.markup='0'">
+      <!-- nop -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-imports/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="loc[@role='erratumref']" mode="text">
+  <xsl:choose>
+    <xsl:when test="$show.diff.markup='0'">
+      <!-- nop -->
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-imports/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/W3C-REC.css
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/W3C-REC.css	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/W3C-REC.css	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,94 @@
+/* This is an SSI script. Policy:
+   (1) Use CVS
+   (2) send e-mail to w3t-comm at w3.org if you edit this
+*/
+/* Style for a "Recommendation" */
+
+/*
+   This is an SSI script. Policy:
+   (1) Use CVS
+   (2) send e-mail to w3t-comm at w3.org if you edit this
+
+   Acknowledgments:
+
+   - 'background-color' doesn't work on Mac IE 3, but 'background'
+     does (Susan Lesch <lesch at macvirus.com>)
+
+   - 'smaller' leads to illegible text in both Mac IE and Mac NS,
+     'small' is better: works in Mac NS, but is always 12pt in Mac IE
+     3 (Susan Lesch <lesch at macvirus.com>)
+
+   $Id: W3C-REC.css,v 1.1 2001/02/05 18:29:06 veillard Exp $
+*/
+
+body {
+  margin: 2em 1em 2em 70px;
+  font-family: sans-serif;
+  color: black;
+  background: white;
+  background-position: top left;
+  background-attachment: fixed;
+  background-repeat: no-repeat;
+}
+
+th, td { /* ns 4 */
+  font-family: sans-serif;
+}
+
+h1, h2, h3, h4, h5, h6 { text-align: left }
+h1, h2, h3 { color: #005A9C }
+h1 { font: 170% sans-serif }
+h2 { font: 140% sans-serif }
+h3 { font: 120% sans-serif }
+h4 { font: bold 100% sans-serif }
+h5 { font: italic 100% sans-serif }
+h6 { font: small-caps 100% sans-serif }
+
+.hide { display: none }
+
+div.head { margin-bottom: 1em }
+div.head h1 { margin-top: 2em; clear: both }
+div.head table { margin-left: 2em; margin-top: 2em }
+div.head img { color: white; border: none } /* remove border from top image */
+
+p.copyright { font-size: small }
+p.copyright small { font-size: small }
+
+ at media screen {  /* hide from IE3 */
+a:hover { background: #ffa } 
+}
+
+pre { margin-left: 2em }
+/*
+p {
+  margin-top: 0.6em;
+  margin-bottom: 0.6em;
+}
+*/
+dt, dd { margin-top: 0; margin-bottom: 0 } /* opera 3.50 */
+dt { font-weight: bold }
+
+pre, code { font-family: monospace } /* navigator 4 requires this */
+
+ul.toc {
+  list-style: disc;		/* Mac NS has problem with 'none' */
+  list-style: none;
+}
+
+ at media aural {  
+  h1, h2, h3 { stress: 20; richness: 90 }
+  .hide { speak: none }
+  p.copyright { volume: x-soft; speech-rate: x-fast }
+  dt { pause-before: 20% }
+  pre { speak-punctuation: code } 
+}
+
+/* Things (icons) that should only show up in projection mode */
+.projection { display: none }
+ at media projection { .projection { display: inline } }
+
+
+body {
+  background-image: url(logo-REC);
+}
+

Added: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/diffspec.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/diffspec.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/diffspec.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,329 @@
+<?xml version="1.0"?>
+
+<!-- Version: $Id: diffspec.xsl,v 1.2 2001/03/07 12:36:39 veillard Exp $ -->
+
+<!-- Stylesheet for @diff markup in XMLspec -->
+<!-- Author: Norman Walsh (Norman.Walsh at East.Sun.COM) -->
+<!-- Date Created: 2000.07.21 -->
+
+<!-- This stylesheet is copyright (c) 2000 by its authors.  Free
+     distribution and modification is permitted, including adding to
+     the list of authors and copyright holders, as long as this
+     copyright notice is maintained. -->
+
+<!-- This stylesheet attempts to implement the XML Specification V2.1
+     DTD.  Documents conforming to earlier DTDs may not be correctly
+     transformed.
+
+     This stylesheet supports the use of change-markup with the @diff
+     attribute. If you use @diff, you should always use this stylesheet.
+     If you want to turn off the highlighting of differences, use this
+     stylesheet, but set show.diff.markup to 0.
+
+     Using the original xmlspec stylesheet with @diff markup will cause
+     @diff=del text to be presented.
+-->
+
+<!-- ChangeLog:
+     25 Sep 2000: (Norman.Walsh at East.Sun.COM)
+       - Use inline diff markup (as opposed to block) for name and
+         affiliation
+       - Handle @diff='del' correctly in bibl and other list-contexts.
+     14 Aug 2000: (Norman.Walsh at East.Sun.COM)
+       - Support additional.title param
+     27 Jul 2000: (Norman.Walsh at East.Sun.COM)
+       - Fix HTML markup problem with diff'd authors in authlist
+     26 Jul 2000: (Norman.Walsh at East.Sun.COM)
+       - Update pointer to latest xmlspec-stylesheet.
+     21 Jul 2000: (Norman.Walsh at East.Sun.COM)
+       - Initial version
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		version="1.0">
+
+<xsl:import href="xmlspec.xsl"/>
+
+<xsl:param name="show.diff.markup">0</xsl:param>
+
+<xsl:param name="additional.css">
+<xsl:if test="$show.diff.markup = '1'">
+<xsl:text>
+div.diff-add  { background-color: yellow }
+div.diff-del  { text-decoration: line-through }
+div.diff-chg  { background-color: lime }
+div.diff-off  {  }
+
+span.diff-add { background-color: yellow }
+span.diff-del { text-decoration: line-through }
+span.diff-chg { background-color: lime }
+span.diff-off {  }
+
+td.diff-add   { background-color: yellow }
+td.diff-del   { text-decoration: line-through }
+td.diff-chg   { background-color: lime }
+td.diff-off   {  }
+</xsl:text>
+</xsl:if>
+</xsl:param>
+
+<xsl:param name="additional.title">
+  <xsl:if test="$show.diff.markup != '0'">
+    <xsl:text>Review Version</xsl:text>
+  </xsl:if>
+</xsl:param>
+
+<xsl:param name="called.by.diffspec">1</xsl:param>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="diff-markup">
+  <xsl:param name="diff">off</xsl:param>
+  <xsl:choose>
+    <xsl:when test="ancestor::scrap">
+      <!-- forget it, we can't add stuff inside tables -->
+      <!-- handled in base stylesheet -->
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:when test="self::gitem or self::bibl">
+      <!-- forget it, we can't add stuff inside dls; handled below -->
+      <xsl:apply-imports/>
+    </xsl:when>
+    <xsl:when test="ancestor-or-self::phrase">
+      <span class="diff-{$diff}">
+	<xsl:apply-imports/>
+      </span>
+    </xsl:when>
+    <xsl:when test="ancestor::p and not(self::p)">
+      <span class="diff-{$diff}">
+	<xsl:apply-imports/>
+      </span>
+    </xsl:when>
+    <xsl:when test="ancestor-or-self::affiliation">
+      <span class="diff-{$diff}">
+	<xsl:apply-imports/>
+      </span>
+    </xsl:when>
+    <xsl:when test="ancestor-or-self::name">
+      <span class="diff-{$diff}">
+	<xsl:apply-imports/>
+      </span>
+    </xsl:when>
+    <xsl:otherwise>
+      <div class="diff-{$diff}">
+	<xsl:apply-imports/>
+      </div>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*[@diff='chg']">
+  <xsl:choose>
+    <xsl:when test="$show.diff.markup='1'">
+      <xsl:call-template name="diff-markup">
+	<xsl:with-param name="diff">chg</xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-imports/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*[@diff='add']">
+  <xsl:choose>
+    <xsl:when test="$show.diff.markup='1'">
+      <xsl:call-template name="diff-markup">
+	<xsl:with-param name="diff">add</xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-imports/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*[@diff='del']">
+  <xsl:choose>
+    <xsl:when test="$show.diff.markup='1'">
+      <xsl:call-template name="diff-markup">
+	<xsl:with-param name="diff">del</xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <!-- suppress deleted markup -->
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*[@diff='off']">
+  <xsl:choose>
+    <xsl:when test="$show.diff.markup='1'">
+      <xsl:call-template name="diff-markup">
+	<xsl:with-param name="diff">off</xsl:with-param>
+      </xsl:call-template>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:apply-imports/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================= -->
+
+  <xsl:template match="bibl[@diff]" priority="1">
+    <xsl:variable name="dt">
+      <xsl:if test="@id">
+	<a name="{@id}"/>
+      </xsl:if>
+      <xsl:choose>
+	<xsl:when test="@key">
+	  <xsl:value-of select="@key"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:value-of select="@id"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name="dd">
+      <xsl:apply-templates/>
+      <xsl:if test="@href">
+        <xsl:text>  (See </xsl:text>
+        <a href="{@href}">
+          <xsl:value-of select="@href"/>
+        </a>
+        <xsl:text>.)</xsl:text>
+      </xsl:if>
+    </xsl:variable>
+
+    <xsl:choose>
+      <xsl:when test="@diff and $show.diff.markup = '1'">
+	<dt class="label">
+	  <span class="diff-{@diff}">
+	    <xsl:copy-of select="$dt"/>
+	  </span>
+	</dt>
+	<dd>
+	  <div class="diff-{@diff}">
+	    <xsl:copy-of select="$dd"/>
+	  </div>
+	</dd>
+      </xsl:when>
+      <xsl:when test="@diff='del' and $show.diff.markup='0'">
+	<!-- suppressed -->
+      </xsl:when>
+      <xsl:otherwise>
+	<dt class="label">
+	  <xsl:copy-of select="$dt"/>
+	</dt>
+	<dd>
+	  <xsl:copy-of select="$dd"/>
+	</dd>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="gitem/label">
+    <xsl:variable name="diffval" select="ancestor-or-self::*/@diff"/>
+    <xsl:choose>
+      <xsl:when test="$diffval != '' and $show.diff.markup='1'">
+	<dt class="label">
+	  <span class="diff-{ancestor-or-self::*/@diff}">
+	    <xsl:apply-templates/>
+	  </span>
+	</dt>
+      </xsl:when>
+      <xsl:when test="$diffval='del' and $show.diff.markup='0'">
+	<!-- suppressed -->
+      </xsl:when>
+      <xsl:otherwise>
+	<dt class="label">
+	  <xsl:apply-templates/>
+	</dt>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template match="gitem/def">
+    <xsl:variable name="diffval" select="ancestor-or-self::*/@diff"/>
+    <xsl:choose>
+      <xsl:when test="$diffval != '' and $show.diff.markup='1'">
+	<dd>
+	  <div class="diff-{ancestor-or-self::*/@diff}">
+	    <xsl:apply-templates/>
+	  </div>
+	</dd>
+      </xsl:when>
+      <xsl:when test="$diffval='del' and $show.diff.markup='0'">
+	<!-- suppressed -->
+      </xsl:when>
+      <xsl:otherwise>
+	<dd>
+	  <xsl:apply-templates/>
+	</dd>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- authlist: list of authors (editors, really) -->
+  <!-- called in enforced order from header's template, in <dl>
+       context -->
+  <xsl:template match="authlist[@diff]">
+    <xsl:choose>
+      <xsl:when test="$show.diff.markup='1'">
+	<dt>
+	  <span class="diff-{ancestor-or-self::*/@diff}">
+	    <xsl:text>Editor</xsl:text>
+	    <xsl:if test="count(author) > 1">
+	      <xsl:text>s</xsl:text>
+	    </xsl:if>
+	    <xsl:text>:</xsl:text>
+	  </span>
+	</dt>
+      </xsl:when>
+      <xsl:when test="@diff='del' and $show.diff.markup='0'">
+	<!-- suppressed -->
+      </xsl:when>
+      <xsl:otherwise>
+	<dt>
+	  <xsl:text>Editor</xsl:text>
+	  <xsl:if test="count(author) > 1">
+	    <xsl:text>s</xsl:text>
+	  </xsl:if>
+	  <xsl:text>:</xsl:text>
+	</dt>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- author: an editor of a spec -->
+  <!-- only appears in authlist -->
+  <!-- called in <dl> context -->
+  <xsl:template match="author[@diff]" priority="1">
+    <xsl:choose>
+      <xsl:when test="@diff and $show.diff.markup='1'">
+	<dd>
+	  <span class="diff-{ancestor-or-self::*/@diff}">
+	    <xsl:apply-templates/>
+	    <xsl:if test="@role = '2e'">
+	      <xsl:text> - Second Edition</xsl:text>
+	    </xsl:if>
+	  </span>
+	</dd>
+      </xsl:when>
+      <xsl:when test="@diff='del' and $show.diff.markup='0'">
+	<!-- suppressed -->
+      </xsl:when>
+      <xsl:otherwise>
+	<dd>
+	  <xsl:apply-templates/>
+	  <xsl:if test="@role = '2e'">
+	    <xsl:text> - Second Edition</xsl:text>
+	  </xsl:if>
+	</dd>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+</xsl:stylesheet>

Added: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/logo-REC
===================================================================
(Binary files differ)


Property changes on: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/logo-REC
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/xmlspec-v21.dtd
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/xmlspec-v21.dtd	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/xmlspec-v21.dtd	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,1734 @@
+<!-- ............................................................... -->
+<!-- XML specification DTD ......................................... -->
+<!-- ............................................................... -->
+
+<!--
+TYPICAL INVOCATION:
+#  <!DOCTYPE spec PUBLIC
+#       "-//W3C//DTD Specification V2.1//EN"
+#       "http://www.w3.org/XML/1998/06/xmlspec-v21.dtd">
+
+PURPOSE:
+  This XML DTD is for W3C specifications and other technical reports.
+  It is based in part on the TEI Lite and Sweb DTDs.
+
+DEPENDENCIES:
+  None.
+
+CHANGE HISTORY:
+  The list of changes is at the end of the DTD.
+
+  For all details, see the design report at:
+
+#   <http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm>
+
+  Search this file for "#" in the first column to see change history
+  comments.  To find changes made this time, search for "2000-03-07".
+
+MAINTAINER:
+  Eve Maler
+  Sun Microsystems, Inc.
+  elm at east.sun.com
+  voice: +1 781 442 3190
+  fax:   +1 781 442 1437
+-->
+
+<!-- ............................................................... -->
+<!-- Entities for characters and symbols ........................... -->
+<!-- ............................................................... -->
+
+<!--
+#1998-03-10: maler: Added &ldquo; and &rdquo;.
+#                   Used 8879:1986-compatible decimal character
+#                   references.
+#                   Merged charent.mod file back into main file.
+#1998-05-14: maler: Fixed ldquo and rdquo.  Gave mdash a real number.
+#1998-12-03: maler: Escaped the leading ampersands.
+-->
+
+<!ENTITY lt     "&#38;#60;">
+<!ENTITY gt     "&#62;">
+<!ENTITY amp    "&#38;#38;">
+<!ENTITY apos   "&#39;">
+<!ENTITY quot   "&#34;">
+<!ENTITY nbsp   "&#160;">
+<!ENTITY mdash  "&#38;#x2014;">
+<!ENTITY ldquo  "&#38;#x201C;">
+<!ENTITY rdquo  "&#38;#x201D;">
+
+<!-- ............................................................... -->
+<!-- Entities for classes of standalone elements ................... -->
+<!-- ............................................................... -->
+
+<!--
+#1997-10-16: maler: Added table to %illus.class;.
+#1997-11-28: maler: Added htable to %illus.class;.
+#1997-12-29: maler: IGNOREd table.
+#1998-03-10: maler: Removed SGML Open-specific %illus.class;.
+#                   Added "local" entities for customization.
+#1998-05-14: maler: Added issue to %note.class;.
+#                   Removed %[local.]statusp.class;.
+#1998-05-21: maler: Added constraintnote to %note.class;.
+#1998-08-22: maler: Changed htable to table in %illus.class;.
+#                   Added definitions to %illus.class;.
+#2000-03-07: maler: Added proto and example to %illus.class;.
+-->
+
+<!ENTITY % local.p.class        "">
+<!ENTITY % p.class              "p
+                                %local.p.class;">
+
+<!ENTITY % local.list.class     "">
+<!ENTITY % list.class           "ulist|olist|slist|glist
+                                %local.list.class;">
+
+<!ENTITY % local.speclist.class "">
+<!ENTITY % speclist.class       "orglist|blist
+                                %local.speclist.class;">
+
+<!ENTITY % local.note.class     "">
+<!ENTITY % note.class           "note|issue|wfcnote|vcnote
+                                |constraintnote %local.note.class;">
+
+<!ENTITY % local.illus.class    "">
+<!ENTITY % illus.class          "eg|graphic|scrap|table|definitions
+                                |proto|example
+                                %local.illus.class;">
+
+<!-- ............................................................... -->
+<!-- Entities for classes of phrase-level elements ................. -->
+<!-- ............................................................... -->
+
+<!--
+#1997-12-29: maler: Added xspecref to %ref.class;.
+#1998-03-10: maler: Added %ednote.class;.
+#                   Added "local" entities for customization.
+#2000-03-07: maler: Added function, var, el, att, and attval to
+#                   %tech.class;.
+#                   Added sub, sup, and phrase to %emph.class;.
+-->
+
+<!ENTITY % local.annot.class    "">
+<!ENTITY % annot.class          "footnote
+                                %local.annot.class;">
+
+<!ENTITY % local.termdef.class  "">
+<!ENTITY % termdef.class        "termdef|term
+                                %local.termdef.class;">
+
+<!ENTITY % local.emph.class     "">
+<!ENTITY % emph.class           "emph|phrase|quote|sub|sup
+                                %local.emph.class;">
+
+<!ENTITY % local.ref.class      "">
+<!ENTITY % ref.class            "bibref|specref|termref|titleref
+                                |xspecref|xtermref
+                                %local.ref.class;">
+
+<!ENTITY % local.loc.class      "">
+<!ENTITY % loc.class            "loc
+                                %local.loc.class;">
+
+<!ENTITY % local.tech.class     "">
+<!ENTITY % tech.class           "kw|nt|xnt|code|function|var
+                                |el|att|attval
+                                %local.tech.class;">
+
+<!ENTITY % local.ednote.class   "">
+<!ENTITY % ednote.class         "ednote
+                                %local.ednote.class;">
+
+<!-- ............................................................... -->
+<!-- Entities for mixtures of standalone elements .................. -->
+<!-- ............................................................... -->
+
+<!--
+#1997-09-30: maler: Created %p.mix; to eliminate p from self.
+#1997-09-30: maler: Added %speclist.class; to %obj.mix; and %p.mix;.
+#1997-09-30: maler: Added %note.class; to %obj.mix; and %p.mix;.
+#1997-10-16: maler: Created %entry.mix;.  Note that some elements
+#                   left out here are still allowed in termdef,
+#                   which entry can contain through %p.pcd.mix;.
+#1997-11-28: maler: Added %p.class; to %statusobj.mix;.
+#1998-03-10: maler: Added %ednote.class; to all mixtures, except
+#                   %p.mix; and %statusobj.mix;, because paragraphs
+#                   and status paragraphs will contain ednote
+#                   through %p.pcd.mix;.
+#1998-03-23: maler: Added %termdef.mix; (broken out from
+#                    %termdef.pcd.mix;).
+#1998-05-14: maler: Removed %statusobj.mix; and all mentions of
+#                   %statusp.mix;.
+-->
+
+<!ENTITY % div.mix
+        "%p.class;|%list.class;|%speclist.class;|%note.class;
+        |%illus.class;|%ednote.class;">
+<!ENTITY % obj.mix
+        "%p.class;|%list.class;|%speclist.class;|%note.class;
+        |%illus.class;|%ednote.class;">
+<!ENTITY % p.mix
+        "%list.class;|%speclist.class;|%note.class;|%illus.class;">
+<!ENTITY % entry.mix
+        "%list.class;|note|eg|graphic|%ednote.class;">
+<!ENTITY % hdr.mix
+        "%p.class;|%list.class;|%ednote.class;">
+<!ENTITY % termdef.mix
+        "%note.class;|%illus.class;">
+
+<!-- ............................................................... -->
+<!-- Entities for mixtures of #PCDATA and phrase-level elements .... -->
+<!-- ............................................................... -->
+
+<!--    Note that %termdef.pcd.mix contains %note.class;
+        and %illus.class;, considered standalone elements. -->
+
+<!--
+#1997-09-30: maler: Added scrap and %note.class; to %termdef.pcd.mix;.
+#1997-11-28: maler: Added %loc.class; to %p.pcd.mix;.
+#1998-03-10: maler: Added %ednote.class; to all mixtures.
+#1998-03-23: maler: Moved some %termdef.pcd.mix; stuff out to
+#                   %termdef.mix;.
+#1998-05-14: maler: Removed %statusp.pcd.mix;.
+#1998-05-21: maler: Added constraint element to %eg.pcd.mix;.
+#1999-07-02: maler: Added %loc.class; to %head.pcd.mix;,
+#                   %label.pcd.mix;, %eg.pcd.mix;, %termdef.pcd.mix;,
+#                   %tech.pcd.mix; (net: all PCD mixes have it).
+#                   Removed unused %loc.pcd.mix;.
+-->
+
+<!ENTITY % p.pcd.mix
+        "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
+        |%ref.class;|%tech.class;|%loc.class;|%ednote.class;">
+<!ENTITY % head.pcd.mix
+        "#PCDATA|%annot.class;|%emph.class;|%tech.class;
+        |%loc.class;|%ednote.class;">
+<!ENTITY % label.pcd.mix
+        "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
+        |%tech.class;|%loc.class;|%ednote.class;">
+<!ENTITY % eg.pcd.mix
+        "#PCDATA|%annot.class;|%emph.class;|%loc.class;
+        |%ednote.class;|constraint">
+<!ENTITY % termdef.pcd.mix
+        "#PCDATA|term|%emph.class;|%ref.class;|%tech.class;
+        |%loc.class;|%ednote.class;">
+<!ENTITY % bibl.pcd.mix
+        "#PCDATA|%emph.class;|%ref.class;|%loc.class;|%ednote.class;">
+<!ENTITY % tech.pcd.mix
+        "#PCDATA|%loc.class;|%ednote.class;">
+
+<!-- ............................................................... -->
+<!-- Entities for customizable content models ...................... -->
+<!-- ............................................................... -->
+
+<!--
+#1998-03-10: maler: Added customization entities.
+#1998-05-14: maler: Allowed prevlocs and latestloc in either order.
+#1999-07-02: maler: Made version optional; added copyright element.
+#2000-03-07: maler: Allowed status and abstract in opposite order.
+-->
+
+<!ENTITY % spec.mdl
+        "header, front?, body, back?">
+
+<!ENTITY % header.mdl
+        "title, subtitle?, version?, w3c-designation, w3c-doctype,
+        pubdate, notice*, publoc, ((prevlocs, latestloc?) |
+        (latestloc, prevlocs?))?, authlist, copyright?,
+        ((status, abstract) | (abstract, status)), pubstmt?,
+        sourcedesc?, langusage, revisiondesc">
+
+<!ENTITY % pubdate.mdl
+        "day?, month, year">
+
+<!-- ............................................................... -->
+<!-- Entities for common attributes ................................ -->
+<!-- ............................................................... -->
+
+<!--
+#2000-03-07: maler: Added %argtypes;.
+-->
+
+<!--    argtypes:
+        Values for function prototype argument datatypes. -->
+<!ENTITY % argtypes
+        '(boolean
+         |expression
+         |location-set
+         |node-set
+         |number
+         |object
+         |point
+         |range
+         |string)'>
+
+<!--    key attribute:
+        Optionally provides a sorting or indexing key, for cases when
+        the element content is inappropriate for this purpose. -->
+<!ENTITY % key.att
+        'key                    CDATA           #IMPLIED'>
+
+<!--    def attribute:
+        Points to the element where the relevant definition can be
+        found, using the IDREF mechanism.  %def.att; is for optional
+        def attributes, and %def-req.att; is for required def
+        attributes. -->
+<!ENTITY % def.att
+        'def                    IDREF           #IMPLIED'>
+<!ENTITY % def-req.att
+        'def                    IDREF           #REQUIRED'>
+
+<!--    ref attribute:
+        Points to the element where more information can be found,
+        using the IDREF mechanism.  %ref.att; is for optional
+        ref attributes, and %ref-req.att; is for required ref
+        attributes. -->
+<!ENTITY % ref.att
+        'ref                    IDREF           #IMPLIED'>
+<!ENTITY % ref-req.att
+        'ref                    IDREF           #REQUIRED'>
+
+<!--
+#1998-03-23: maler: Added show and actuate attributes to href.
+#                   Added semi-common xml:space attribute.
+#1998-08-22: maler: Used new xlink:form and #IMPLIED features.
+#1999-07-02: maler: Reorganized XLink-related entities completely;
+#                   added xmlns:xlink attribute to the mix.
+#2000-03-07: maler: Updated XLink usage to February 2000 draft,
+#                   except that href still has no namespace prefix.
+-->
+
+<!--    xmlns:xlink and xlink:type attributes:
+        xmlns:xlink declares the association of the xlink prefix
+        with the namespace created by the XLink specification.
+        xlink:type identifies an element as an XLink "simple" linking
+        element. -->
+<!ENTITY % simple-xlink.att
+        'xmlns:xlink            CDATA   #FIXED
+                                        "http://www.w3.org/1999/xlink"
+        xlink:type              CDATA   #FIXED "simple" '>
+
+<!--    href attributes:
+        The href attribute locates the remote-resource half of a
+        simple link; the element on which the href appears is the
+        local-resource half.  Some elements are usable links only if
+        the author chooses to supply a functional href.  The attribute
+        name should really be xlink:href, but is kept without the
+        prefix for now in order to be backwards-compatible. -->
+
+<!ENTITY % href.att
+        'href                   CDATA           #IMPLIED '>
+<!ENTITY % href-req.att
+        'href                   CDATA           #REQUIRED '>
+
+<!--    xlink:show and xlink:actuate attributes:
+        These attributes offer instructions to the display engine
+        about how to handle traversal to resource indicated by an
+        href locator. -->
+<!ENTITY % auto-embed.att
+        'xlink:show             CDATA           #FIXED "embed"
+        xlink:actuate           CDATA           #FIXED "onLoad" '>
+<!ENTITY % user-replace.att
+        'xlink:show             CDATA           #FIXED "replace"
+        xlink:actuate           CDATA           #FIXED "onRequest" '>
+<!ENTITY % user-new.att
+        'xlink:show             CDATA           #FIXED "new"
+        xlink:actuate           CDATA           #FIXED "onRequest" '>
+
+<!--    xml:space attribute:
+        Indicates that the element contains whitespace that the
+        formatter or other application should retain, as appropriate
+        to its function. -->
+<!ENTITY % xmlspace.att
+        'xml:space              (default
+                                |preserve)      #FIXED "preserve" '>
+
+<!--
+#2000-03-07: maler: Added common diff attribute.  Made %role.att;.
+-->
+
+<!--    diff attribute:
+        Indicates in what way the element has changed.  When a value
+        is not provided, that subelement should inherit a value from
+        its parent.  If the root element has no value supplied,
+        assume "off". -->
+<!ENTITY % diff.att
+        'diff                   (chg
+                                |add
+                                |del
+                                |off)           #IMPLIED'>
+
+<!--    role attribute:
+        Extends the useful life of the DTD by allowing authors to
+        make a subtype of any element.  No default. -->
+<!ENTITY % role.att
+        'role                   NMTOKEN         #IMPLIED'>
+
+<!--    Common attributes:
+        Every element has an ID attribute for links, a role
+        attribute, and a diff attribute. %common.att; is for
+        common attributes where the ID is optional, and
+        %common-idreq.att; is for common attributes where the
+        ID is required. -->
+<!ENTITY % common.att
+        'id                     ID              #IMPLIED
+        %role.att;
+        %diff.att;'>
+<!ENTITY % common-idreq.att
+        'id                     ID              #REQUIRED
+        %role.att;
+        %diff.att;'>
+
+<!-- ............................................................... -->
+<!-- Common elements ............................................... -->
+<!-- ............................................................... -->
+
+<!--    head: Title on divisions, productions, and the like -->
+<!ELEMENT head (%head.pcd.mix;)*>
+<!ATTLIST head %common.att;>
+
+<!-- ............................................................... -->
+<!-- Major specification structure ................................. -->
+<!-- ............................................................... -->
+
+<!--
+#1998-03-10: maler: Made spec content model easily customizable.
+#1999-07-02: maler: Added doctype atts and status att.
+#2000-03-07: maler: Added cr, issues, and dispcmts to w3c-doctype.
+-->
+
+<!ELEMENT spec (%spec.mdl;)>
+<!--    w3c-doctype attributes:
+        Indicates the type of document, so that the appropriate
+        stylesheet or workflow routing can be applied.  Should
+        *not* generate any text (such as the "REC-" or "NOTE-"
+        prefix on the W3C designation content).  No default.  If
+        w3c-doctype is "other", other-doctype should be filled in.
+
+        status attribute:
+        Indicates the stage of review of the document.  May affect
+        the stylesheet's treatment of ednotes (e.g., whether to
+        output them).  No default. -->
+
+<!ATTLIST spec
+        %common.att;
+        w3c-doctype     (cr
+                        |dispcmts
+                        |issues
+                        |note
+                        |other
+                        |pr
+                        |rec
+                        |wd)                    #IMPLIED
+        other-doctype   CDATA                   #IMPLIED
+        status          (int-review
+                        |ext-review
+                        |final)                 #IMPLIED
+>
+
+<!ELEMENT front (div1+)>
+<!ATTLIST front %common.att;>
+
+<!ELEMENT body (div1+)>
+<!ATTLIST body %common.att;>
+
+<!--
+#1997-09-30: maler: Added inform-div1 to back content.
+-->
+
+<!ELEMENT back ((div1+, inform-div1*) | inform-div1+)>
+<!ATTLIST back %common.att;>
+
+<!ELEMENT div1 (head, (%div.mix;)*, div2*)>
+<!ATTLIST div1 %common.att;>
+
+<!--
+#1997-09-30: maler: Added inform-div1 declarations.
+#2000-03-07: maler: Added div5 level.
+-->
+
+<!--    inform-div1: Non-normative division in back matter -->
+<!ELEMENT inform-div1 (head, (%div.mix;)*, div2*)>
+<!ATTLIST inform-div1 %common.att;>
+
+<!ELEMENT div2 (head, (%div.mix;)*, div3*)>
+<!ATTLIST div2 %common.att;>
+
+<!ELEMENT div3 (head, (%div.mix;)*, div4*)>
+<!ATTLIST div3 %common.att;>
+
+<!ELEMENT div4 (head, (%div.mix;)*, div5*)>
+<!ATTLIST div4 %common.att;>
+
+<!ELEMENT div5 (head, (%div.mix;)*)>
+<!ATTLIST div5 %common.att;>
+
+<!-- ............................................................... -->
+<!-- Specification header .......................................... -->
+<!-- ............................................................... -->
+
+<!--
+#1998-03-10: maler: Made header content model easily customizable.
+-->
+
+<!ELEMENT header (%header.mdl;)>
+<!ATTLIST header %common.att;>
+
+<!--    Example of title: "Extensible Cheese Language (XCL)" -->
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title %common.att;>
+
+<!--    Example of subtitle: "A Cheesy Specification" -->
+<!ELEMENT subtitle (#PCDATA)>
+<!ATTLIST subtitle %common.att;>
+
+<!--    Example of version: "Version 666.0" -->
+<!ELEMENT version (#PCDATA)>
+<!ATTLIST version %common.att;>
+
+<!--    Example of w3c-designation: "WD-xcl-19991231" -->
+<!ELEMENT w3c-designation (#PCDATA)>
+<!ATTLIST w3c-designation %common.att;>
+
+<!--    Example of w3c-doctype: "W3C Working Draft" -->
+<!ELEMENT w3c-doctype (#PCDATA)>
+<!ATTLIST w3c-doctype %common.att;>
+
+<!--
+#1998-03-10: maler: Made pubdate content model easily customizable.
+-->
+
+<!ELEMENT pubdate (%pubdate.mdl;)>
+<!ATTLIST pubdate %common.att;>
+
+<!ELEMENT day (#PCDATA)>
+<!ATTLIST day %common.att;>
+
+<!ELEMENT month (#PCDATA)>
+<!ATTLIST month %common.att;>
+
+<!ELEMENT year (#PCDATA)>
+<!ATTLIST year %common.att;>
+
+<!--
+#1999-07-02: maler: Declared copyright element.
+-->
+
+<!ELEMENT copyright (%hdr.mix;)+>
+<!ATTLIST copyright %common.att;>
+
+<!--    Example of notice: "This draft is for public comment..." -->
+<!ELEMENT notice (%hdr.mix;)+>
+<!ATTLIST notice %common.att;>
+
+<!--
+#2000-03-07: maler: Broadened models of *loc to %p.pcd.mix;.
+-->
+
+<!ELEMENT publoc (%p.pcd.mix;)*>
+<!ATTLIST publoc %common.att;>
+
+<!ELEMENT prevlocs (%p.pcd.mix;)*>
+<!ATTLIST prevlocs %common.att;>
+
+<!ELEMENT latestloc (%p.pcd.mix;)*>
+<!ATTLIST latestloc %common.att;>
+
+<!--      loc (defined in "Phrase-level elements" below) -->
+
+<!ELEMENT authlist (author+)>
+<!ATTLIST authlist %common.att;>
+
+<!--
+#1997-09-30: maler: Made affiliation optional.
+#1998-03-10: maler: Made email optional.
+-->
+
+<!ELEMENT author (name, affiliation?, email?)>
+<!ATTLIST author %common.att;>
+
+<!ELEMENT name (#PCDATA)>
+<!ATTLIST name
+        %common.att;
+        %key.att;>
+
+<!ELEMENT affiliation (#PCDATA)>
+<!ATTLIST affiliation %common.att;>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+
+<!ELEMENT email (#PCDATA)>
+<!--    href attribute:
+        email functions as a hypertext reference through this
+        required attribute.  Typically the reference would use
+        the mailto: scheme.  E.g.:
+
+<email href="mailto:elm at arbortext.com">elm at arbortext.com</email>
+        -->
+
+<!ATTLIST email
+        %common.att;
+        %simple-xlink.att;
+        %href-req.att;
+        %user-new.att;>
+
+<!--
+#1998-05-15: maler: Changed status content from %statusobj.mix;
+#                   to plain %obj.mix;.  statusp is obsolete.
+-->
+
+<!ELEMENT status (%obj.mix;)+>
+<!ATTLIST status %common.att;>
+
+<!ELEMENT abstract (%hdr.mix;)*>
+<!ATTLIST abstract %common.att;>
+
+<!ELEMENT pubstmt (%hdr.mix;)+>
+<!ATTLIST pubstmt %common.att;>
+
+<!ELEMENT sourcedesc (%hdr.mix;)+>
+<!ATTLIST sourcedesc %common.att;>
+
+<!ELEMENT langusage (language+)>
+<!ATTLIST langusage %common.att;>
+
+<!ELEMENT language (#PCDATA)>
+<!ATTLIST language %common.att;>
+
+<!ELEMENT revisiondesc (%hdr.mix;)+>
+<!ATTLIST revisiondesc %common.att;>
+
+<!-- ............................................................... -->
+<!-- Paragraph ..................................................... -->
+<!-- ............................................................... -->
+
+<!--
+#1997-09-30: maler: Changed from %obj.mix; to %p.mix;.
+#1997-12-29: maler: Changed order of %p.mix; and %p.pcd.mix;
+#                   references.
+#1997-12-29: maler: Changed order of %statusobj.mix; and
+#                   %statusp.pcd.mix; references.
+#1998-05-14: maler: Removed statusp declarations.
+-->
+
+<!ELEMENT p (%p.pcd.mix;|%p.mix;)*>
+<!ATTLIST p %common.att;>
+
+<!-- ............................................................... -->
+<!-- Regular lists ................................................. -->
+<!-- ............................................................... -->
+
+<!--    ulist: Unordered list, typically bulleted. -->
+<!ELEMENT ulist (item+)>
+<!--    spacing attribute:
+        Use "normal" to get normal vertical spacing for items;
+        use "compact" to get less spacing.  The default is dependent
+        on the stylesheet. -->
+<!ATTLIST ulist
+        %common.att;
+        spacing         (normal|compact)        #IMPLIED>
+
+<!--    olist: Ordered list, typically numbered. -->
+<!ELEMENT olist (item+)>
+<!--    spacing attribute:
+        Use "normal" to get normal vertical spacing for items;
+        use "compact" to get less spacing.  The default is dependent
+        on the stylesheet. -->
+<!ATTLIST olist
+        %common.att;
+        spacing         (normal|compact)        #IMPLIED>
+
+<!ELEMENT item (%obj.mix;)+>
+<!ATTLIST item %common.att;>
+
+<!--    slist: Simple list, typically with no mark. -->
+<!ELEMENT slist (sitem+)>
+<!ATTLIST slist %common.att;>
+
+<!ELEMENT sitem (%p.pcd.mix;)*>
+<!ATTLIST sitem %common.att;>
+
+<!--    glist: Glossary list, typically two-column. -->
+<!ELEMENT glist (gitem+)>
+<!ATTLIST glist %common.att;>
+
+<!ELEMENT gitem (label, def)>
+<!ATTLIST gitem %common.att;>
+
+<!ELEMENT label (%label.pcd.mix;)*>
+<!ATTLIST label %common.att;>
+
+<!ELEMENT def (%obj.mix;)*>
+<!ATTLIST def %common.att;>
+
+<!-- ............................................................... -->
+<!-- Special lists ................................................. -->
+<!-- ............................................................... -->
+
+<!--    blist: Bibliography list. -->
+<!ELEMENT blist (bibl+)>
+<!ATTLIST blist %common.att;>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!ELEMENT bibl (%bibl.pcd.mix;)*>
+<!--    href attribute:
+        bibl optionally functions as a hypertext reference to the
+        referred-to resource through this attribute.  E.g.:
+
+        <bibl href="http://www.my.com/doc.htm">My Document</bibl>
+        -->
+<!ATTLIST bibl
+        %common.att;
+        %simple-xlink.att;
+        %href.att;
+        %user-replace.att;
+        %key.att;>
+
+<!--    orglist: Organization member list. -->
+<!ELEMENT orglist (member+)>
+<!ATTLIST orglist %common.att;>
+
+<!--
+#1997-09-30: maler: Added optional affiliation.
+-->
+
+<!ELEMENT member (name, affiliation?, role?)>
+<!ATTLIST member %common.att;>
+
+<!--      name (defined in "Specification header" above) -->
+<!--      affiliation (defined in "Specification header" above) -->
+
+<!ELEMENT role (#PCDATA)>
+<!ATTLIST role %common.att;>
+
+<!-- ............................................................... -->
+<!-- Notes ......................................................... -->
+<!-- ............................................................... -->
+
+<!ELEMENT note (%obj.mix;)+>
+<!ATTLIST note %common.att;>
+
+<!--
+#1998-05-14: maler: Declared issue element.
+#2000-03-07: maler: Added head, source, resolution, and status.
+-->
+
+<!ELEMENT issue (head?, source*, (%obj.mix;)+, resolution?)>
+<!--    status attribute:
+        Indicates whether the issue is open or closed.  Note that
+        the lack of a resolution element does not necessarily mean
+        that the issue is still open. -->
+<!ATTLIST issue
+        id              ID              #REQUIRED
+        %role.att;
+        %diff.att;
+        status          (open
+                        |closed)        "open"
+>
+
+<!ELEMENT source (%p.pcd.mix;)*>
+<!ATTLIST source
+        %common.att;>
+
+<!ELEMENT resolution (%obj.mix;)+>
+<!ATTLIST resolution %common.att;>
+
+<!--    wfcnote: Well-formedness constraint note. -->
+<!ELEMENT wfcnote (head, (%obj.mix;)+)>
+<!--    ID attribute:
+        wfcnote must have an ID so that it can be pointed to
+        from a wfc element in a production. -->
+<!ATTLIST wfcnote
+        %common-idreq.att;>
+
+<!--    vcnote: Validity constraint note. -->
+<!ELEMENT vcnote (head, (%obj.mix;)+)>
+<!--    ID attribute:
+        vcnote must have an ID so that it can be pointed to
+        from a vc element in a production. -->
+<!ATTLIST vcnote
+        %common-idreq.att;>
+
+<!--
+#1998-05-21: maler: Declared generic constraintnote element.
+-->
+
+<!--    constraintnote: Generic constraint note. -->
+<!ELEMENT constraintnote (head, (%obj.mix;)+)>
+<!--    ID attribute:
+        constraintnote must have an ID so that it can be
+        pointed to from a constraint element in a production. -->
+<!--    type attribute:
+        constraintnote must have a type value keyword so that
+        it can be correctly characterized in the specification. -->
+<!ATTLIST constraintnote
+        %common-idreq.att;
+        type            NMTOKEN         #REQUIRED>
+
+<!-- ............................................................... -->
+<!-- Basic display elements ........................................ -->
+<!-- ............................................................... -->
+
+<!--
+#1998-03-23: maler: Added xml:space attribute.
+-->
+
+<!--    eg: Example element, with whitespace respected. -->
+<!ELEMENT eg (%eg.pcd.mix;)*>
+<!ATTLIST eg
+        %common.att;
+        %xmlspace.att;>
+
+<!--
+#2000-03-07: maler: Removed the xml:attributes attribute.
+#                   Added %local.graphic.att;.
+-->
+
+<!--    graphic: Displayed graphic.  Graphic data should be
+        displayed at the point where it is referenced.  Not
+        actually conforming to XLink right now. -->
+<!ELEMENT graphic EMPTY>
+<!--    source attribute:
+        The graphic data must reside at the location pointed to. -->
+<!ENTITY % local.graphic.att "">
+<!ATTLIST graphic
+        %common.att;
+        %simple-xlink.att;
+        source                  CDATA           #REQUIRED
+        %auto-embed.att;
+        alt                     CDATA           #IMPLIED
+        %local.graphic.att;>
+
+<!--
+#2000-03-07: maler: Added proto element structure.
+-->
+
+<!--    proto: Function prototype, in the XPath/XPointer style. -->
+<!ELEMENT proto (arg*)>
+<!ATTLIST proto
+        %common.att;
+        name            NMTOKEN         #REQUIRED
+        return-type     %argtypes;      #REQUIRED
+>
+
+<!ELEMENT arg EMPTY>
+<!ATTLIST arg
+        %common.att;
+        type            %argtypes;      #REQUIRED
+        occur           (opt|req)       #IMPLIED
+>
+
+<!--
+#2000-03-07: maler: Added example element.
+-->
+
+<!ELEMENT example (head?, (%obj.mix;)+)>
+<!ATTLIST example %common.att;>
+
+<!-- ............................................................... -->
+<!-- EBNF .......................................................... -->
+<!-- ............................................................... -->
+
+<!--
+#1997-11-28: maler: Added prodgroup to scrap and defined it.
+#1998-05-21: maler: Added constraint to prod.
+#1999-07-02: maler: Added prodrecap to scrap; broadened scrap model.
+#                   Added headstyle attribute to scrap.
+-->
+
+<!--    scrap: Collection of EBNF language productions. -->
+<!ELEMENT scrap (head, (prodgroup | prod | bnf | prodrecap)+)>
+<!--    lang attribute:
+        The scrap can link to a description of the language used,
+        found in a language element in the header.
+        headstyle attribute:
+        Allows a scrap title to be suppressed from output.  To be
+        used only when a scrap title directly next to a section
+        title is distracting or repetetive. -->
+<!ATTLIST scrap
+        %common.att;
+        lang            IDREF           #IMPLIED
+        headstyle       (show|suppress) "show"
+>
+
+<!--    prodgroup: Sub-collection of productions, needed for
+        formatting reasons. -->
+<!ELEMENT prodgroup (prod+)>
+<!--    pcw<n> attributes:
+        Presentational attributes to control the width
+        of the "pseudo-table" columns used to output
+        groups of productions. -->
+<!ATTLIST prodgroup
+        %common.att;
+        pcw1            CDATA           #IMPLIED
+        pcw2            CDATA           #IMPLIED
+        pcw3            CDATA           #IMPLIED
+        pcw4            CDATA           #IMPLIED
+        pcw5            CDATA           #IMPLIED
+>
+
+<!--    prod: EBNF language production. -->
+<!ELEMENT prod (lhs, (rhs, (com|wfc|vc|constraint)*)+)>
+<!--    ID attribute:
+        The production must have an ID so that cross-references
+        (specref) and mentions of nonterminals (nt) can link to
+        it. -->
+<!ATTLIST prod
+        %common-idreq.att;>
+
+<!--    lhs: Left-hand side of production. -->
+<!ELEMENT lhs (#PCDATA)>
+<!ATTLIST lhs %common.att;>
+
+<!--    rhs: Right-hand side of production; may have many
+        "right-hand sides," one to a line. -->
+<!ELEMENT rhs (#PCDATA|nt|xnt|com)*>
+<!ATTLIST rhs %common.att;>
+
+<!--      nt and xnt (defined in "Phrase-level elements" below) -->
+
+<!--
+#1997-11-28: maler: Added loc and bibref to com content.
+-->
+
+<!--    com: Production comment. -->
+<!ELEMENT com (#PCDATA|loc|bibref)*>
+<!ATTLIST com %common.att;>
+
+<!--    wfc: Reference to a well-formedness constraint; should
+        generate the head of the wfcnote pointed to. -->
+<!ELEMENT wfc EMPTY>
+<!--    def attribute:
+        Each well formedness tagline in a production must link to the
+        wfcnote that defines it. -->
+<!ATTLIST wfc
+        %def-req.att;
+        %common.att;>
+
+<!--    vc: Reference to a validity constraint; should generate
+        the head of the vcnote pointed to. -->
+<!ELEMENT vc EMPTY>
+<!--    def attribute:
+        Each validity tagline in a production must link to the vcnote
+        that defines it. -->
+<!ATTLIST vc
+        %def-req.att;
+        %common.att;>
+
+<!--
+#1998-05-21: maler: Declared generic constraint element.
+-->
+
+<!--    constraint: Reference to a generic constraint; should
+        generate the head of the constraintnote pointed to. -->
+<!ELEMENT constraint EMPTY>
+<!--    def attribute:
+        Each constraint tagline in a production must link to the
+        constraint note that defines it. -->
+<!ATTLIST constraint
+        %def-req.att;
+        %common.att;>
+
+<!--
+#1998-03-23: maler: Added xml:space attribute.
+-->
+
+<!--    bnf: Un-marked-up EBNF production, with whitespace
+        respected. -->
+<!ELEMENT bnf (%eg.pcd.mix;)*>
+<!ATTLIST bnf
+        %common.att;
+        %xmlspace.att;>
+
+<!--
+#1999-07-02: maler: Declared prodrecap.
+-->
+
+<!--    prodrecap: Reference to production or bnf that appears
+        in its "normative" form elsewhere in the spec; should
+        generate a copy of the original production, without
+        a production number next to it. -->
+<!ELEMENT prodrecap EMPTY>
+<!ATTLIST prodrecap
+        %common.att;
+        %ref-req.att;>
+
+<!-- ............................................................... -->
+<!-- Table ......................................................... -->
+<!-- ............................................................... -->
+
+<!--
+#1997-10-16: maler: Added table mechanism.
+#1997-11-28: maler: Added non-null system ID to entity declaration.
+#                   Added HTML table module.
+#1997-12-29: maler: IGNOREd SGML Open table model.
+#1998-03-10: maler: Removed SGML Open table model.
+#                   Merged html-tbl.mod file into main file.
+#                   Added %common.att; to all HTML table elements.
+#1998-05-14: maler: Replaced table model with full HTML 4.0 model.
+#                   Removed htable in favor of table.
+#                   Removed htbody in favor of tbody.
+-->
+
+<!ENTITY % cellhalign.att
+        'align          (left|center
+                        |right|justify
+                        |char)          #IMPLIED
+        char            CDATA           #IMPLIED
+        charoff         CDATA           #IMPLIED'>
+
+<!ENTITY % cellvalign.att
+        'valign         (top|middle
+                        |bottom
+                        |baseline)      #IMPLIED'>
+
+<!ENTITY % thtd.att
+        'abbr           CDATA           #IMPLIED
+        axis            CDATA           #IMPLIED
+        headers         IDREFS          #IMPLIED
+        scope           (row
+                        |col
+                        |rowgroup
+                        |colgroup)      #IMPLIED
+        rowspan         NMTOKEN         "1"
+        colspan         NMTOKEN         "1"'>
+
+<!ENTITY % width.att
+        'width          CDATA           #IMPLIED'>
+
+<!ENTITY % span.att
+        'span           NMTOKEN         "1"'>
+
+<!--    table: HTML-based geometric table model. -->
+<!ELEMENT table
+        (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)>
+<!ATTLIST table
+        %common.att;
+        %width.att;
+        summary         CDATA           #IMPLIED
+        border          CDATA           #IMPLIED
+        frame           (void|above
+                        |below|hsides
+                        |lhs|rhs
+                        |vsides|box
+                        |border)        #IMPLIED
+        rules           (none|groups
+                        |rows|cols
+                        |all)           #IMPLIED
+        cellspacing     CDATA           #IMPLIED
+        cellpadding     CDATA           #IMPLIED>
+
+<!ELEMENT caption (%p.pcd.mix;)*>
+<!ATTLIST caption %common.att;>
+
+<!ELEMENT col EMPTY>
+<!ATTLIST col
+        %common.att;
+        %span.att;
+        %width.att;
+        %cellhalign.att;
+        %cellvalign.att;>
+
+<!ELEMENT colgroup (col)*>
+<!ATTLIST colgroup
+        %common.att;
+        %span.att;
+        %width.att;
+        %cellhalign.att;
+        %cellvalign.att;>
+
+<!ELEMENT thead (tr)+>
+<!ATTLIST thead
+        %common.att;
+        %cellhalign.att;
+        %cellvalign.att;>
+
+<!ELEMENT tfoot (tr)+>
+<!ATTLIST tfoot
+        %common.att;
+        %cellhalign.att;
+        %cellvalign.att;>
+
+<!ELEMENT tbody (tr)+>
+<!ATTLIST tbody
+        %common.att;
+        %cellhalign.att;
+        %cellvalign.att;>
+
+<!ELEMENT tr (th|td)+>
+<!ATTLIST tr
+        %common.att;
+        %cellhalign.att;
+        %cellvalign.att;>
+
+<!ELEMENT th (%p.pcd.mix;|%p.mix;)*>
+<!ATTLIST th
+        %common.att;
+        %thtd.att;
+        %cellhalign.att;
+        %cellvalign.att;>
+
+<!ELEMENT td (%p.pcd.mix;|%p.mix;)*>
+<!ATTLIST td
+        %common.att;
+        %thtd.att;
+        %cellhalign.att;
+        %cellvalign.att;>
+
+<!-- ............................................................... -->
+<!-- IDL structures for DOM specifications ......................... -->
+<!-- ............................................................... -->
+
+<!-- ............................................................... -->
+<!-- Specialized entities for classes .............................. -->
+
+<!ENTITY % idl-desc.class
+        "p|note">
+
+<!ENTITY % idl-tdef.class
+        "typedef|constant|exception|reference|group">
+
+<!ENTITY % idl-mod.class
+        "module|interface">
+
+<!ENTITY % idl-struct.class
+        "struct|enum|sequence|union|typename">
+
+<!ENTITY % idl-meth.class
+        "method|attribute">
+
+<!-- ............................................................... -->
+<!-- Specialized entities for mixtures ............................. -->
+
+<!--    Quick reference to content model mixtures:
+
+                        desc tdef mod struct meth
+group                     x    x   x    x      x
+definitions, module       x    x   x
+interface                 x    x               x
+typedef, case, component                x
+-->
+
+<!ENTITY % idl-grp.mix
+        "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class;
+        |%idl-struct.class;|%idl-meth.class;">
+
+<!ENTITY % idl-defn.mix
+        "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class;">
+
+<!ENTITY % idl-intfc.mix
+        "%idl-desc.class;|%idl-tdef.class;|%idl-meth.class;">
+
+<!ENTITY % idl-type.mix
+        "%idl-struct.class;">
+
+<!-- ............................................................... -->
+<!-- Specialized entities for common attributes .................... -->
+
+<!--    name attribute:
+        Provides a name.  Required. -->
+<!ENTITY % idl-name.att
+        'name                   CDATA           #REQUIRED'>
+
+<!--    type attribute:
+        Provides a type.  Required. -->
+<!ENTITY % idl-type.att
+        'type                   CDATA           #REQUIRED'>
+
+<!-- ............................................................... -->
+<!-- Common IDL element ............................................ -->
+
+<!ELEMENT descr ((%obj.mix;)*)>
+<!ATTLIST descr %common.att;>
+
+<!-- ............................................................... -->
+<!-- IDL definition elements ....................................... -->
+
+<!--    definitions: Top-level element for definitions. -->
+<!ELEMENT definitions (%idl-defn.mix;)+>
+<!ATTLIST definitions %common.att;>
+
+<!--    group: Element used to group a set of definitions. -->
+
+<!ELEMENT group (descr, (%idl-grp.mix;)*)>
+<!ATTLIST group
+        %common.att;
+        %idl-name.att;>
+
+<!--    interface: Definition of an interface. -->
+<!ELEMENT interface (descr, (%idl-intfc.mix;)*)>
+<!ATTLIST interface
+        %common.att;
+        %idl-name.att;
+        inherits        CDATA           #IMPLIED>
+
+<!--    module: Definition of a module. -->
+<!ELEMENT module (descr, (%idl-defn.mix;)*)>
+<!ATTLIST module
+        %common.att;
+        %idl-name.att;>
+
+<!--    reference: Reference to some other declaration. -->
+<!ELEMENT reference EMPTY>
+<!ATTLIST reference
+        %common.att;
+        declaration     IDREF           #REQUIRED>
+
+<!--    typedef: Definition of a named type. -->
+<!ELEMENT typedef (descr, (%idl-type.mix;))>
+<!ATTLIST typedef
+        %common.att;
+        %idl-name.att;
+        array.size      NMTOKEN         #IMPLIED>
+
+<!--    struct: Declaration of a struct type. -->
+<!ELEMENT struct (descr, component+)>
+<!ATTLIST struct
+        %common.att;
+        %idl-name.att;>
+
+<!--    component: Declaration of a structural member. -->
+<!ELEMENT component (%idl-type.mix;)>
+<!ATTLIST component
+        %common.att;
+        %idl-name.att;>
+
+<!--    union: Declaration of a union type. -->
+<!ELEMENT union (descr, case+)>
+<!ATTLIST union
+        %common.att;
+        %idl-name.att;
+        switch.type     CDATA           #REQUIRED>
+
+<!ELEMENT case (descr, (%idl-type.mix;))>
+<!ATTLIST case
+        %common.att;
+        labels          CDATA           #REQUIRED>
+
+<!--    enum: Declaration of an enum type. -->
+<!ELEMENT enum (descr, enumerator+)>
+<!ATTLIST enum
+        %common.att;
+        %idl-name.att;>
+
+<!ELEMENT enumerator (descr)>
+<!ATTLIST enumerator
+        %common.att;
+        %idl-name.att;>
+
+<!--    sequence: Declaration of a sequence type (not named). -->
+<!ELEMENT sequence (sequence*)>
+<!ATTLIST sequence
+        %common.att;
+        %idl-type.att;
+        size            NMTOKEN         #IMPLIED>
+
+<!--    constant: Declaration of a named constant. -->
+<!ELEMENT constant (descr)>
+<!ATTLIST constant
+        %common.att;
+        %idl-name.att;
+        %idl-type.att;
+        value           CDATA           #REQUIRED>
+
+<!--    exception: Declaration of an exception. -->
+<!ELEMENT exception (descr, component*)>
+<!ATTLIST exception
+        %common.att;
+        %idl-name.att;>
+<!-- component (defined under struct, above)-->
+
+<!--    attribute: Declaration of an attribute (data member). -->
+<!ELEMENT attribute (descr)>
+<!ATTLIST attribute
+        %common.att;
+        %idl-name.att;
+        %idl-type.att;
+        readonly        (yes
+                        |no)            "no">
+
+<!--    method: Declaration of a method. -->
+<!ELEMENT method (descr, parameters, returns, raises)>
+<!ATTLIST method
+        %common.att;
+        %idl-name.att;>
+
+<!ELEMENT parameters (param*)>
+<!ATTLIST parameters %common.att;>
+
+<!ELEMENT param (descr)>
+<!ATTLIST param
+        %common.att;
+        %idl-name.att;
+        %idl-type.att;
+        attr            (in
+                        |out
+                        |inout)         "inout">
+
+<!ELEMENT returns (descr)>
+<!ATTLIST returns
+        %common.att;
+        %idl-type.att;>
+
+<!ELEMENT raises (exception*)>
+<!-- exception (defined under constant, above)-->
+
+<!ELEMENT typename (#PCDATA)>
+<!ATTLIST typename %common.att;>
+
+<!-- ............................................................... -->
+<!-- Phrase-level elements ......................................... -->
+<!-- ............................................................... -->
+
+<!--
+#2000-03-07: maler: Added att and attval elements.
+-->
+
+<!--    att: Attribute name. -->
+<!ELEMENT att (%tech.pcd.mix;)*>
+<!ATTLIST att %common.att;>
+
+<!--    attval: Attribute value. -->
+<!ELEMENT attval (%tech.pcd.mix;)*>
+<!ATTLIST attval %common.att;>
+
+<!--    bibref: Reference to a bibliography list entry; should
+        generate, in square brackets, "key" on bibl. -->
+<!ELEMENT bibref EMPTY>
+<!--    ref attribute:
+        A bibliography reference must link to the bibl element that
+        describes the resource. -->
+<!ATTLIST bibref
+        %common.att;
+        %ref-req.att;>
+
+<!ELEMENT code (%tech.pcd.mix;)*>
+<!ATTLIST code %common.att;>
+
+<!--
+#1998-03-10: maler: Declared ednote and related elements.
+#1999-07-02: maler: Changed edtext content from #PCDATA to %p.pcd.mix;.
+-->
+
+<!--    ednote: Editorial note for communication among editors. -->
+<!ELEMENT ednote (name?, date?, edtext)>
+<!ATTLIST ednote %common.att;>
+
+<!ELEMENT date (#PCDATA)>
+<!ATTLIST date %common.att;>
+
+<!ELEMENT edtext (%p.pcd.mix;)*>
+<!ATTLIST edtext %common.att;>
+
+<!--
+#2000-03-07: maler: Added el element.
+-->
+
+<!--    el: Element type name (GI). -->
+<!ELEMENT el (%tech.pcd.mix;)*>
+<!ATTLIST el %common.att;>
+
+<!--
+#2000-03-07: maler: Expanded emph to %p.pcd.mix;.
+-->
+
+<!ELEMENT emph (%p.pcd.mix;)*>
+<!ATTLIST emph %common.att;>
+
+<!--    footnote: Both footnote content and call to footnote. -->
+<!ELEMENT footnote (%obj.mix;)+>
+<!ATTLIST footnote %common.att;>
+
+<!--
+#2000-03-07: maler: Added function and gave it content of
+#                   %tech.pcd.mix; instead of XPath's #PCDATA.
+-->
+
+<!ELEMENT function (%tech.pcd.mix;)*>
+<!ATTLIST function %common.att;>
+
+<!ELEMENT kw (%tech.pcd.mix;)*>
+<!ATTLIST kw %common.att;>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!--    loc: Generic link to a Web resource, similar to HTML's A. -->
+<!ELEMENT loc (#PCDATA)>
+<!--    href attribute:
+        The purpose of a loc element is to function as a A-like
+        hypertext link to a resource.  (Ideally, the content of loc
+        will also mention the URI of the resource, so that readers of
+        the printed version will be able to locate the resource.) E.g.:
+
+<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc>
+        -->
+<!ATTLIST loc
+        %common.att;
+        %simple-xlink.att;
+        %href-req.att;
+        %user-replace.att;>
+
+<!--    nt: Mention of a nonterminal in text, along with a link to
+        the production in the current document that defines it. -->
+<!ELEMENT nt (#PCDATA)>
+<!--    def attribute:
+        The nonterminal must link to the production that defines
+        it. -->
+<!ATTLIST nt
+        %common.att;
+        %def-req.att;>
+
+<!--
+#2000-03-07: maler: Declared phrase.
+-->
+
+<!--    phrase: "Attribute hanger" for small bits of (e.g.) differenced
+        text in a paragraph or similar, when another element isn't handy.
+        Beware that its content model may allow more nested elements than
+        would normally be allowed in some contexts. -->
+<!ELEMENT phrase (%p.pcd.mix;)*>
+<!ATTLIST phrase %common.att;>
+
+<!--
+#1998-03-10: maler: Declared quote.
+-->
+
+<!--    quote: Scare quotes and other purely presentational quotes. -->
+<!ELEMENT quote (%p.pcd.mix;)*>
+<!ATTLIST quote %common.att;>
+
+<!--    specref: Reference to a div, olist item, prod, or issue
+        in the current document; should generate italic "[n.n],
+        Section Title" for div, "n" for numbered item, "[n]" for
+        production, or "Issue id" for issue. -->
+<!ELEMENT specref EMPTY>
+<!--    ref attribute:
+        The purpose of a specref element is to link to a div, item
+        in an olist, or production in the current spec. -->
+<!ATTLIST specref
+        %common.att;
+        %ref-req.att;>
+
+<!--
+#2000-03-07: maler: Added sub and sup.
+-->
+
+<!--    sub: Subscript. -->
+<!ELEMENT sub (#PCDATA)>
+<!ATTLIST sub %common.att;>
+
+<!--    sup: Superscript. -->
+<!ELEMENT sup (#PCDATA)>
+<!ATTLIST sup %common.att;>
+
+<!--    term: The term in text that is being defined in text. -->
+<!ELEMENT term (#PCDATA)>
+<!ATTLIST term %common.att;>
+
+<!--    termdef: Definition of a term in text. -->
+<!ELEMENT termdef (%termdef.pcd.mix;|%termdef.mix;)*>
+<!--    ID attribute:
+        A term definition must have an ID so that it can be linked
+        to from termref elements. -->
+<!--    term attribute:
+        The canonical form of the term or phrase being defined must
+        appear in this attribute, even if the term or phrase also
+        appears in the element content in identical form (e.g., in
+        the term element). -->
+<!ATTLIST termdef
+        %common-idreq.att;
+        term            CDATA           #REQUIRED>
+
+<!--    termref: Mention of a term, along with a link to the
+        definition in the current document. -->
+<!ELEMENT termref (#PCDATA)>
+<!--    ref attribute:
+        A term reference must link to the termdef element that
+        defines the term. -->
+<!ATTLIST termref
+        %common.att;
+        %def-req.att;>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!--    titleref: Citation of another document, which can also
+        link to that document if it is a Web resource. -->
+<!ELEMENT titleref (#PCDATA)>
+<!--    href attribute:
+        A title reference can optionally function as a hypertext
+        link to the resource with this title.  E.g.:
+
+<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc>
+        -->
+
+<!ATTLIST titleref
+        %common.att;
+        %simple-xlink.att;
+        %href.att;
+        %user-new.att;>
+
+<!--
+#2000-03-07: maler: Added var.
+-->
+
+<!--    var: String standing for a variable value that the user
+        or system will supply.  For example: "For each node
+        <var>x</var> in this node-set..." -->
+<!ELEMENT var (%tech.pcd.mix;)*>
+<!ATTLIST var %common.att;>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!--    xnt: Mention of a nonterminal in text, along with a link to
+        the production in another document that defines it. -->
+<!ELEMENT xnt (#PCDATA)>
+<!--    href attribute:
+        The nonterminal must hyperlink to a resource that serves
+        to define it (e.g., a production in a related XML
+        specification).  E.g.:
+
+<xnt href="http://www.w3.org/TR/spec.htm#prod3">Name</xnt>
+        -->
+
+<!ATTLIST xnt
+        %common.att;
+        %simple-xlink.att;
+        %href-req.att;
+        %user-new.att;>
+
+<!--
+#1997-12-29: maler: Declared xspecref.
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!--    xspecref: Reference to a div, olist item, prod, or issue
+        in a related specification document; should generate
+        no special text. -->
+<!ELEMENT xspecref (#PCDATA)>
+<!--    href attribute:
+        The spec reference must hyperlink to the resource to
+        cross-refer to (e.g., a section in a related XML
+        specification).  E.g.:
+
+<xspecref href="http://www.w3.org/TR/spec.htm#sec2">
+the section on constraints</xspecref>
+        -->
+
+<!ATTLIST xspecref
+        %common.att;
+        %simple-xlink.att;
+        %href-req.att;
+        %user-new.att;>
+
+<!--
+#1999-07-02: maler: Added show/actuate attributes and default values.
+-->
+
+<!--    termref: Mention of a term, along with a link to the
+        definition in a related document. -->
+<!ELEMENT xtermref (#PCDATA)>
+<!--    href attribute:
+        The term reference must hyperlink to the resource that
+        serves to define the term (e.g., a term definition in
+        a related XML specification).  E.g.:
+
+<xtermref href="http://www.w3.org/TR/spec.htm#term5">
+entity
+</xtermref>
+        -->
+
+<!ATTLIST xtermref
+        %common.att;
+        %simple-xlink.att;
+        %href-req.att;
+        %user-new.att;>
+
+<!-- ............................................................... -->
+<!-- Unused elements for ADEPT ..................................... -->
+<!-- ............................................................... -->
+
+<!--
+#1997-09-30: maler: Added unusued elements.
+#1997-10-14: maler: Fixed div to move nested div to the mixture.
+#1998-05-14: maler: Added key-term, htable, and htbody.
+#1998-11-30: maler: Added para, listitem, itemizedlist, and orderedlist.
+-->
+
+<!--    The following elements are purposely declared but never
+        referenced.  Declaring them allows them to be pasted from
+        an HTML document, an earlier version of an XMLspec document,
+        or a DocBook document into a document using this DTD in ADEPT.
+        The ATD Context Transformation mechanism will try to convert
+        them to the appropriate element for this DTD.  While this
+        conversion will not work for all fragments, it does allow many
+        cases to work reasonably well. -->
+
+<!ELEMENT div
+        (head?, (%div.mix;|ul|ol|h1|h2|h3|h4|h5|h6|div)*)>
+<!ELEMENT h1 (%head.pcd.mix;|em|a)*>
+<!ELEMENT h2 (%head.pcd.mix;|em|a)*>
+<!ELEMENT h3 (%head.pcd.mix;|em|a)*>
+<!ELEMENT h4 (%head.pcd.mix;|em|a)*>
+<!ELEMENT h5 (%head.pcd.mix;|em|a)*>
+<!ELEMENT h6 (%head.pcd.mix;|em|a)*>
+<!ELEMENT pre (%eg.pcd.mix;|em)*>
+<!ELEMENT ul (item|li)*>
+<!ELEMENT ol (item|li)*>
+<!ELEMENT li (#PCDATA|%obj.mix;)*>
+<!ELEMENT em (#PCDATA)>
+<!ELEMENT a (#PCDATA)>
+
+<!ELEMENT key-term (#PCDATA)>
+<!ELEMENT htable
+        (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)>
+<!ELEMENT htbody (tr)+>
+<!ELEMENT statusp (%p.pcd.mix;|%p.mix;)*>
+
+<!ELEMENT itemizedlist (listitem*)>
+<!ELEMENT orderedlist (listitem*)>
+<!ELEMENT listitem (para*)>
+<!ELEMENT para (#PCDATA)>
+
+<!-- ............................................................... -->
+<!-- Change history ................................................ -->
+<!-- ............................................................... -->
+
+<!--
+#1997-08-18: maler
+#- Did a major revision.
+#1997-09-10: maler
+#- Updated FPI.
+#- Removed namekey element and put key attribute on name element.
+#- Made statusp element and supporting entities.
+#- Added slist element with sitem+ content.
+#- Required head on scrap and added new bnf subelement.
+#- Added an xnt element and allowed it and nt in regular text and rhs.
+#- Removed the ntref element.
+#- Added back the com element to the content of rhs.
+#- Added a key attribute to bibl.
+#- Removed the ident element.
+#- Added a term element to be used inside termdef.
+#- Added an xtermref element parallel to termref.
+#- Beefed up DTD comments.
+#1997-09-12: maler
+#- Allowed term element in general text.
+#- Changed bibref to EMPTY.
+#- Added ref.class to termdef.pcd.mix.
+#1997-09-14: maler
+#- Changed main attribute of xtermref from def to href.
+#- Added termdef.class to label contents.
+#1997-09-30: maler
+#- Added character entity module and added new entities.
+#- Removed p from appearing directly in self; created %p.mix;.
+#- Added inform-div (non-normative division) element.
+#- Fixed xtermref comment to mention href, not ref.
+#- Extended orglist model to allow optional affiliation.
+#- Modified author to make affiliation optional.
+#- Added %speclist.class; and %note.class; to %obj.mix; and %p.mix;.
+#- Added %note.class; and %illus.class; to %termdef.pcd.mix;.
+#- Added unused HTML elements.
+#- Put empty system ID next to public ID in entity declarations.
+#1997-10-14: maler
+#- Fixed "unused" div content model to move nested div to mixture.
+#1997-10-16: maler
+#- Added SGML Open Exchange tables.
+#1997-11-28: maler
+#- Added support for prodgroup and its attributes.
+#- Added support for HTML tables.
+#- Added loc and bibref to content of com.
+#- Added loc to general p content models.
+#- Allowed p as alternative to statusp in status.
+#- Added non-null system IDs to external parameter entity declarations.
+#- (Modified the SGML Open table module to make it XML-compliant.)
+#- (Modified the character entity module.)
+#1997-12-29: maler
+#- Moved #PCDATA occurrences to come before GIs in content models.
+#- Removed use of the SGML Open table module.
+#- Added xspecref element.
+#- Ensured that all FPIs contain 4-digit year.
+#- (Modified the character entity module.)
+#1998-03-10: maler
+#- Merged the character entity and table modules into the main file.
+#- Added ldquo and rdquo entities.
+#- Added common attributes to prodgroup.
+#- Made the email element in header optional.
+#- Removed reference to the SGML Open table model.
+#- Added ednote element.
+#- Added quote element.
+#- Updated XLink usage to reflect 3 March 1998 WD.
+#- Added "local" entities to the class entities for customization.
+#- Parameterized several content models to allow for customization.
+#1998-03-23: maler
+#- Cleaned up some comments and removed some others.
+#- Added xml:space semi-common attribute to eg and bnf elements.
+#- Added show and embed attributes on all the uses of href.
+#- Added %common.att; to all HTML table elements.
+#- Added a real URI to the "typical invocation" comment.
+#1998-05-14: maler
+#- Fixed mdash, ldquo, and rdquo character entities.
+#- Switched to the full HTML 4.0 table model.
+#- Removed htable/htbody elements and replaced them with table/tbody.
+#- Added issue element to %note.class; and declared it.
+#- Allowed prevlocs and latestloc in either order.
+#- Added key-term, htable, htbody, and statusp as unused elements.
+#- Removed real statusp element in favor of plain p.
+#1998-05-21: maler
+#- Declared generic constraint and constraintnote elements.
+#- Added constraintnote to %note.class;.
+#- Added constraint to %eg.pcd.mix; and prod content model.
+#1998-08-22: maler
+#- Fixed %illus.class; to mention table instead of htable.
+#- Added definitions to %illus.class; for DOM model.
+#- Added DOM definitions element and its substructure.
+#- Updated XLink usage in %href.att; to use xlink:form and #IMPLIED.
+#- Added clarifying comments to href-using elements.
+#1998-11-30: maler
+#- Added new unused elements to support DocBook translation.
+#- Updated maler phone numbers.
+#1998-12-3: maler
+#- Fixed character entities with respect to escaping of ampersands.
+#- Added many more explanatory comments.
+#1999-07-02: maler
+#- Added %loc.class; to all PCD mixes that didn't already have it.
+#- Removed unused %loc.pcd.mix;.
+#- Made version in spec header optional.
+#- Added three new attributes to spec.
+#- Broadened content of edtext.
+#- Added optional copyright element to header.
+#- Reorganized XLink-related parameter entities; added xmlns:xlink.
+#- Changed edtext content from #PCDATA to %p.pcd.mix;.
+#- Added show/actuate atts and default values to all href elements.
+#- Changed versioning scheme from 8-digit dates to version numbers.
+#- Added w3c-doctype, other-doctype, status atts to spec element.
+#- Added prodrecap element inside scrap.
+#- Added headstyle attribute to scrap.
+#2000-03-07: maler
+#- Added proto element, its arg subelement, and the %argtypes; entity.
+#- Added function, var, sub, sup, phrase, el, att, attval elements.
+#- Expanded emph to %p.pcd.mix;.
+#- Allowed status and abstract to appear in the opposite order.
+#- Updated XLink usage to the latest WD, except for href and source.
+#- Removed the xml:attributes attribute from graphic.
+#- Added %local.graphic.att; to graphic.
+#- Added common diff attribute.
+#- Added div5 element.
+#- Broadened content models of publoc, prevlocs, and latestloc.
+#- Added head, source, resolution, and status attribute to issue.
+#- Added cr, issues, and dispcmts to w3c-doctype attribute on spec.
+#- Added example element.
+-->
+
+<!-- ............................................................... -->
+<!-- End of XML specification DTD .................................. -->
+<!-- ............................................................... -->

Added: packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/xmlspec.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/xmlspec.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/tests/xmlspec/xmlspec.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,2092 @@
+<?xml version="1.0"?>
+
+<!-- Version: $Id: xmlspec.xsl,v 1.3 2001/02/14 14:45:10 veillard Exp $ -->
+
+<!-- Stylesheet for XMLspec -->
+<!-- Author: Norman Walsh (Norman.Walsh at East.Sun.COM) -->
+<!-- Author: Chris Maden (crism at lexica.net) -->
+<!-- Author: Ben Trafford (ben at legendary.org) -->
+<!-- Author: Eve Maler (eve.maler at east.sun.com) -->
+<!-- Date Created: 1999.09.07 -->
+
+<!-- This stylesheet is copyright (c) 2000 by its authors.  Free
+     distribution and modification is permitted, including adding to
+     the list of authors and copyright holders, as long as this
+     copyright notice is maintained. -->
+
+<!-- This stylesheet attempts to implement the XML Specification V2.1
+     DTD.  Documents conforming to earlier DTDs may not be correctly
+     transformed. -->
+
+<!-- ChangeLog:
+
+     25 Sep 2000: (Norman.Walsh at East.Sun.COM)
+       - Sync'd with Eve's version:
+         o Concatenated each inline element's output all on one line
+           to avoid spurious spaces in the output. (This is really an
+           IE bug, but...) (15 Sep 2000)
+         o Updated crism's email address in header (7 Sep 2000)
+         o Changed handling of affiliation to use comma instead of
+           parentheses (9 Aug 2000)
+
+     14 Aug 2000: (Norman.Walsh at East.Sun.COM)
+
+       - Added additional.title param (for diffspec.xsl to change)
+       - Fixed URI of W3C home icon
+       - Made CSS stylesheet selection depend on the w3c-doctype attribute
+         of spec instead of the w3c-doctype element in the header
+
+     26 Jul 2000: (Norman.Walsh at East.Sun.COM)
+
+       - Improved semantics of specref. Added xsl:message for unsupported
+         cases. (I'm by no means confident that I've covered the whole
+         list.)
+       - Support @role on author.
+       - Make lhs/rhs "code" in EBNF.
+       - Fixed bug in ID/IDREF linking.
+       - More effectively disabled special markup for showing @diffed
+         versions
+
+     21 Jul 2000: (Norman.Walsh at East.Sun.COM)
+
+       - Added support for @diff change tracking, primarily through
+         the auxiliary stylesheet diffspec.xsl. However, it was
+         impractical to handle some constructions, such as DLs and TABLEs,
+         in a completely out-of-band manner. So there is some inline
+         support for @diff markup.
+
+       - Added $additional.css to allow downstream stylesheets to add
+         new markup to the <style> element.
+
+       - Added required "type" attribute to the <style> element.
+
+       - Fixed pervasive problem with nested <a> elements.
+
+       - Added doctype-public to xsl:output.
+
+       - Added $validity.hacks. If "1", then additional disable-output-escaping
+         markup may be inserted in some places to attempt to get proper,
+         valid HTML. For example, if a <glist> appears inside a <p> in the
+         xmlspec source, this creates a nested <dl> inside a <p> in the
+         HTML, which is not valid. If $validity.hacks is "1", then an
+         extra </p>, <p> pair is inserted around the <dl>.
+-->
+
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+               xmlns:saxon="http://icl.com/saxon"
+               exclude-result-prefixes="saxon"
+               version="1.0">
+
+  <xsl:param name="validity.hacks">1</xsl:param>
+  <xsl:param name="show.diff.markup">0</xsl:param>
+  <xsl:param name="additional.css"></xsl:param>
+  <xsl:param name="additional.title"></xsl:param>
+  <xsl:param name="called.by.diffspec">0</xsl:param>
+  <xsl:param name="show.ednotes">1</xsl:param>
+
+  <xsl:output method="html"
+       encoding="ISO-8859-1"
+       doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+       indent="no"/>
+
+  <xsl:strip-space elements="author"/>
+
+  <!-- not handled:
+    attribute:   unhandled IDL stuff
+    case:        unhandled IDL stuff
+    component:   unhandled IDL stuff
+    constant:    unhandled IDL stuff
+    copyright:   boilerplate notice always used instead
+    definitions: unhandled IDL stuff
+    descr:       unhandled IDL stuff
+    enum:        unhandled IDL stuff
+    enumerator:  unhandled IDL stuff
+    exception:   unhandled IDL stuff
+    group:       unhandled IDL stuff
+    interface:   unhandled IDL stuff
+    method:      unhandled IDL stuff
+    module:      unhandled IDL stuff
+    param:       unhandled IDL stuff
+    parameters:  unhandled IDL stuff
+    raises:      unhandled IDL stuff
+    reference:   unhandled IDL stuff
+    returns:     unhandled IDL stuff
+    sequence:    unhandled IDL stuff
+    struct:      unhandled IDL stuff
+    typedef:     unhandled IDL stuff
+    typename:    unhandled IDL stuff
+    union:       unhandled IDL stuff
+
+    Warning!
+    Only handles statuses of NOTE, WD, and REC.
+    -->
+
+  <!-- Template for the root node.  Creation of <html> element could
+       go here, but that doesn't feel right. -->
+  <xsl:template match="/">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- abstract: appears only in header -->
+  <!-- format as a second-level div -->
+  <!-- called in enforced order from header's template -->
+  <xsl:template match="abstract">
+    <div id="abstract">
+      <xsl:text>&#10;</xsl:text>
+      <h2>
+        <a name="abstract">Abstract</a>
+      </h2>
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- affiliation: follows a name in author and member -->
+  <!-- put it in parens with a leading space -->
+  <xsl:template match="affiliation">
+    <xsl:text>, </xsl:text>
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- arg: appears only in proto -->
+  <!-- argument in function prototype -->
+  <!-- output argument type, italicized as placeholder; separate the
+       list with commas and spaces -->
+  <xsl:template match="arg">
+    <xsl:if test="preceding-sibling::arg">
+      <xsl:text>, </xsl:text>
+    </xsl:if>
+    <var>
+      <xsl:value-of select="@type"/>
+    </var>
+    <xsl:if test="@occur = 'opt'">
+      <xsl:text>?</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- att: attribute name -->
+  <!-- used lots of places -->
+  <!-- format as monospaced code -->
+  <xsl:template match="att">
+    <code><xsl:apply-templates/></code>
+  </xsl:template>
+
+  <!-- attribute: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- attval: attribute name -->
+  <!-- used lots of places -->
+  <!-- format as quoted string -->
+  <xsl:template match="attval">
+    <xsl:text>"</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>"</xsl:text>
+  </xsl:template>
+
+  <!-- authlist: list of authors (editors, really) -->
+  <!-- called in enforced order from header's template, in <dl>
+       context -->
+  <xsl:template match="authlist">
+    <dt>
+      <xsl:text>Editor</xsl:text>
+      <xsl:if test="count(author) > 1">
+        <xsl:text>s</xsl:text>
+      </xsl:if>
+      <xsl:text>:</xsl:text>
+    </dt>
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- author: an editor of a spec -->
+  <!-- only appears in authlist -->
+  <!-- called in <dl> context -->
+  <xsl:template match="author">
+    <dd>
+      <xsl:apply-templates/>
+      <xsl:if test="@role = '2e'">
+	<xsl:text> - Second Edition</xsl:text>
+      </xsl:if>
+    </dd>
+  </xsl:template>
+
+  <!-- back: back matter for the spec -->
+  <!-- make a <div> for neatness -->
+  <!-- affects numbering of div1 children -->
+  <xsl:template match="back">
+    <div class="back">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- bibl: bibliographic entry -->
+  <!-- only appears in blist -->
+  <!-- called with <dl> context -->
+  <!-- if there's a key, use it in the <dt>, otherwise use the ID -->
+  <!-- if there's an href, add a ref in parens at the end of the text -->
+  <xsl:template match="bibl">
+    <dt class="label">
+      <xsl:if test="@id">
+	<a name="{@id}"/>
+      </xsl:if>
+      <xsl:choose>
+	<xsl:when test="@key">
+	  <xsl:value-of select="@key"/>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:value-of select="@id"/>
+	</xsl:otherwise>
+      </xsl:choose>
+    </dt>
+    <dd>
+      <xsl:apply-templates/>
+      <xsl:if test="@href">
+        <xsl:text>  (See </xsl:text>
+        <a href="{@href}">
+          <xsl:value-of select="@href"/>
+        </a>
+        <xsl:text>.)</xsl:text>
+      </xsl:if>
+    </dd>
+  </xsl:template>
+
+  <!-- bibref: reference to a bibliographic entry -->
+  <!-- make a link to the bibl -->
+  <!-- if the bibl has a key, put it in square brackets; otherwise use
+       the bibl's ID -->
+  <xsl:template match="bibref">
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="target" select="id(@ref)"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:text>[</xsl:text>
+      <xsl:choose>
+        <xsl:when test="id(@ref)/@key">
+          <xsl:value-of select="id(@ref)/@key"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="@ref"/>
+        </xsl:otherwise>
+      </xsl:choose>
+      <xsl:text>]</xsl:text>
+    </a>
+  </xsl:template>
+
+  <!-- blist: list of bibliographic entries -->
+  <!-- set up the list and process children -->
+  <xsl:template match="blist">
+    <dl>
+      <xsl:apply-templates/>
+    </dl>
+  </xsl:template>
+
+  <!-- bnf: un-marked-up BNF productions -->
+  <!-- preformatted within a table cell -->
+  <!-- scrap provides <table> context -->
+  <xsl:template match="bnf">
+    <tbody>
+      <tr>
+        <td>
+	  <xsl:if test="@diff and $show.diff.markup='1'">
+	    <xsl:attribute name="class">
+	      <xsl:text>diff-</xsl:text>
+	      <xsl:value-of select="@diff"/>
+	    </xsl:attribute>
+	  </xsl:if>
+          <pre>
+            <xsl:apply-templates/>
+          </pre>
+        </td>
+      </tr>
+    </tbody>
+  </xsl:template>
+
+  <!-- body: the meat of the spec -->
+  <!-- create a TOC and then go to work -->
+  <!-- (don't forget the TOC for the back matter and a pointer to end
+       notes) -->
+  <xsl:template match="body">
+    <div class="toc">
+      <xsl:text>&#10;</xsl:text>
+      <h2>
+        <a name="contents">Table of Contents</a>
+      </h2>
+      <p class="toc">
+        <xsl:apply-templates mode="toc" select="div1"/>
+      </p>
+      <xsl:if test="../back">
+        <xsl:text>&#10;</xsl:text>
+        <h3>
+          <xsl:text>Appendi</xsl:text>
+          <xsl:choose>
+            <xsl:when test="count(../back/div1 | ../back/inform-div1) > 1">
+              <xsl:text>ces</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text>x</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </h3>
+        <p class="toc">
+          <xsl:apply-templates mode="toc"
+            select="../back/div1 | ../back/inform-div1"/>
+        </p>
+      </xsl:if>
+      <xsl:if test="//footnote">
+        <p class="toc">
+          <a href="#endnotes">
+            <xsl:text>End Notes</xsl:text>
+          </a>
+        </p>
+      </xsl:if>
+    </div>
+    <hr/>
+    <div class="body">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- caption: see table -->
+
+  <!-- case: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- code: generic computer code -->
+  <!-- output as HTML <code> for monospaced formatting -->
+  <xsl:template match="code">
+    <code><xsl:apply-templates/></code>
+  </xsl:template>
+
+  <!-- col: see table -->
+
+  <!-- colgroup: see table -->
+
+  <!-- com: formal production comment -->
+  <!-- can appear in prod or rhs -->
+  <xsl:template match="com">
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+        <td>
+	  <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup='1'">
+	    <xsl:attribute name="class">
+	      <xsl:text>diff-</xsl:text>
+	      <xsl:value-of select="ancestor-or-self::*/@diff"/>
+	    </xsl:attribute>
+	  </xsl:if>
+          <i>
+            <xsl:text>/* </xsl:text>
+            <xsl:apply-templates/>
+            <xsl:text> */</xsl:text>
+          </i>
+        </td>
+      </xsl:when>
+      <xsl:otherwise>
+        <tr valign="baseline">
+          <td/><td/><td/><td/>
+          <td>
+	    <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup='1'">
+	      <xsl:attribute name="class">
+		<xsl:text>diff-</xsl:text>
+		<xsl:value-of select="ancestor-or-self::*/@diff"/>
+	      </xsl:attribute>
+	    </xsl:if>
+            <i>
+              <xsl:text>/* </xsl:text>
+              <xsl:apply-templates/>
+              <xsl:text> */</xsl:text>
+            </i>
+          </td>
+        </tr>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- this could probably be handled better, but given that rhs can
+       have arbitrary text and com mixed in, I don't feel like
+       spending enough time to figure out how -->
+  <xsl:template match="rhs/com">
+    <i>
+      <xsl:text>/* </xsl:text>
+      <xsl:apply-templates/>
+      <xsl:text> */</xsl:text>
+    </i>
+  </xsl:template>
+
+  <!-- component: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- constant: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- constraint: a note in a formal production -->
+  <!-- refers to a constraint note -->
+  <xsl:template match="constraint">
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+        <td>
+	  <xsl:if test="@diff and $show.diff.markup='1'">
+	    <xsl:attribute name="class">
+	      <xsl:text>diff-</xsl:text>
+	      <xsl:value-of select="@diff"/>
+	    </xsl:attribute>
+	  </xsl:if>
+          <a>
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="target" select="id(@def)"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:text>[Constraint: </xsl:text>
+            <xsl:apply-templates select="id(@def)/head" mode="text"/>
+            <xsl:text>]</xsl:text>
+          </a>
+        </td>
+      </xsl:when>
+      <xsl:otherwise>
+        <tr valign="baseline">
+          <td/><td/><td/><td/>
+          <td>
+	    <xsl:if test="@diff and $show.diff.markup='1'">
+	      <xsl:attribute name="class">
+		<xsl:text>diff-</xsl:text>
+		<xsl:value-of select="@diff"/>
+	      </xsl:attribute>
+	    </xsl:if>
+            <a>
+              <xsl:attribute name="href">
+                <xsl:call-template name="href.target">
+                  <xsl:with-param name="target" select="id(@def)"/>
+                </xsl:call-template>
+              </xsl:attribute>
+              <xsl:text>[Constraint: </xsl:text>
+              <xsl:apply-templates select="id(@def)/head" mode="text"/>
+              <xsl:text>]</xsl:text>
+            </a>
+          </td>
+        </tr>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- constraintnote: note constraining a formal production -->
+  <!-- see also constraintnote/head -->
+  <xsl:template match="constraintnote">
+    <div class="constraint">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- copyright: notice for this document-->
+  <!-- right now, a boilerplate copyright notice is inserted by the
+       template for header; this may need to be changed -->
+
+  <!-- day: day of month of spec -->
+  <!-- only used in pudate; called directly from header template -->
+
+  <!-- def: glossary definition -->
+  <!-- already in <dl> context from glist -->
+  <xsl:template match="def">
+    <dd>
+      <xsl:apply-templates/>
+    </dd>
+  </xsl:template>
+
+  <!-- definitions: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- descr: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- div[n]: structural divisions -->
+  <!-- make an HTML div -->
+  <!-- see also div[n]/head -->
+  <xsl:template match="div1">
+    <div class="div1">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="div2">
+    <div class="div2">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="div3">
+    <div class="div3">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="div4">
+    <div class="div4">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <xsl:template match="div5">
+    <div class="div5">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- ednote: editors' note -->
+  <xsl:template match="ednote">
+    <xsl:if test="$show.ednotes != 0">
+      <table border="1">
+        <xsl:attribute name="summary">
+          <xsl:text>Editorial note</xsl:text>
+          <xsl:if test="name">
+            <xsl:text>: </xsl:text>
+            <xsl:value-of select="name"/>
+          </xsl:if>
+        </xsl:attribute>
+        <tr>
+          <td align="left" valign="top" width="50%">
+            <b>
+              <xsl:text>Editorial note</xsl:text>
+              <xsl:if test="name">
+                <xsl:text>: </xsl:text>
+                <xsl:apply-templates select="name"/>
+              </xsl:if>
+            </b>
+          </td>
+          <td align="right" valign="top" width="50%">
+            <xsl:choose>
+              <xsl:when test="date">
+                <xsl:apply-templates select="date"/>
+              </xsl:when>
+              <xsl:otherwise>&#160;</xsl:otherwise>
+            </xsl:choose>
+          </td>
+        </tr>
+        <tr>
+          <td colspan="2" align="left" valign="top">
+            <xsl:apply-templates select="edtext"/>
+          </td>
+        </tr>
+      </table>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="date">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- edtext: text of an editors' note -->
+  <!-- ednote is currently hidden -->
+
+  <!-- eg: a literal example -->
+  <!-- present as preformatted text -->
+  <xsl:template match="eg">
+    <table class="eg" cellpadding="5" border="1"
+           bgcolor="#99ffff" width="100%"
+           summary="Example">
+      <tr>
+        <td>
+	  <xsl:if test="@diff and $show.diff.markup='1'">
+	    <xsl:attribute name="class">
+	      <xsl:text>diff-</xsl:text>
+	      <xsl:value-of select="@diff"/>
+	    </xsl:attribute>
+	  </xsl:if>
+          <pre>
+            <xsl:apply-templates/>
+          </pre>
+        </td>
+      </tr>
+    </table>
+  </xsl:template>
+
+  <!-- el: an XML element -->
+  <!-- present as preformatted text, no markup -->
+  <!-- Chris's personal preference is to put pointy-brackets around
+       this, but he seems to be in the minority -->
+  <xsl:template match="el">
+    <code><xsl:apply-templates/></code>
+  </xsl:template>
+
+  <!-- email: an email address for an editor -->
+  <!-- only occurs in author -->
+  <xsl:template match="email">
+    <xsl:text> </xsl:text>
+    <a href="{@href}">
+      <xsl:text>&lt;</xsl:text>
+      <xsl:apply-templates/>
+      <xsl:text>&gt;</xsl:text>
+    </a>
+  </xsl:template>
+
+  <!-- emph: in-line emphasis -->
+  <!-- equates to HTML <em> -->
+  <!-- the role attribute could be used for multiple kinds of
+       emphasis, but that would not be kind -->
+  <xsl:template match="emph">
+    <em><xsl:apply-templates/></em>
+  </xsl:template>
+
+  <!-- enum: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- enumerator: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- example: what it seems -->
+  <!-- block-level with title -->
+  <!-- see also example/head -->
+  <xsl:template match="example">
+    <div class="example">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- exception: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- footnote: format as endnote, actually -->
+  <xsl:template match="footnote">
+    <xsl:variable name="this-note-id">
+      <xsl:choose>
+        <xsl:when test="@id">
+          <xsl:value-of select="@id"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="generate-id(.)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <a name="FN-ANCH-{$this-note-id}" href="#{$this-note-id}">
+      <xsl:number level="any" format="[1]"/>
+    </a>
+  </xsl:template>
+
+  <!-- front: front matter for the spec -->
+  <!-- make a div for cleanliness -->
+  <xsl:template match="front">
+    <div class="front">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- function: name of a function -->
+  <!-- format as HTML <code> for monospaced presentation -->
+  <xsl:template match="function">
+    <code><xsl:apply-templates/></code>
+  </xsl:template>
+
+  <!-- gitem: glossary list entry -->
+  <!-- just pass children through for <dd>/<dt> formatting -->
+  <xsl:template match="gitem">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- glist: glossary list -->
+  <!-- create <dl> and handle children -->
+  <xsl:template match="glist">
+    <xsl:if test="$validity.hacks and local-name(..) = 'p'">
+      <xsl:text disable-output-escaping="yes">&lt;/p&gt;</xsl:text>
+    </xsl:if>
+    <dl>
+      <xsl:apply-templates/>
+    </dl>
+    <xsl:if test="$validity.hacks and local-name(..) = 'p'">
+      <xsl:text disable-output-escaping="yes">&lt;p&gt;</xsl:text>
+    </xsl:if>
+  </xsl:template>
+
+  <!-- graphic: external illustration -->
+  <!-- reference external graphic file with alt text -->
+  <xsl:template match="graphic">
+    <img src="{@source}">
+      <xsl:if test="@alt">
+        <xsl:attribute name="alt">
+          <xsl:value-of select="@alt"/>
+        </xsl:attribute>
+      </xsl:if>
+    </img>
+  </xsl:template>
+
+  <!-- group: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- head: title for a variety of constructs -->
+
+  <!-- constraintnotes have different types, but they're
+       non-enumerated; nothing is done with them right now -->
+  <xsl:template match="constraintnote/head">
+    <p class="prefix">
+      <xsl:if test="../@id">
+	<a name="{../@id}"/>
+      </xsl:if>
+      <b><xsl:text>Constraint: </xsl:text><xsl:apply-templates/></b>
+    </p>
+  </xsl:template>
+
+  <xsl:template match="div1/head">
+    <xsl:text>&#10;</xsl:text>
+    <h2>
+      <a>
+        <xsl:attribute name="name">
+          <xsl:choose>
+            <xsl:when test="../@id">
+              <xsl:value-of select="../@id"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="generate-id(..)"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </a>
+      <xsl:apply-templates select=".." mode="divnum"/>
+      <xsl:apply-templates/>
+    </h2>
+  </xsl:template>
+
+  <xsl:template match="div2/head">
+    <xsl:text>&#10;</xsl:text>
+    <h3>
+      <a>
+        <xsl:attribute name="name">
+          <xsl:choose>
+            <xsl:when test="../@id">
+              <xsl:value-of select="../@id"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="generate-id(..)"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </a>
+      <xsl:apply-templates select=".." mode="divnum"/>
+      <xsl:apply-templates/>
+    </h3>
+  </xsl:template>
+
+  <xsl:template match="div3/head">
+    <xsl:text>&#10;</xsl:text>
+    <h4>
+      <a>
+	<xsl:attribute name="name">
+          <xsl:choose>
+            <xsl:when test="../@id">
+              <xsl:value-of select="../@id"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="generate-id(..)"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </a>
+      <xsl:apply-templates select=".." mode="divnum"/>
+      <xsl:apply-templates/>
+    </h4>
+  </xsl:template>
+
+  <xsl:template match="div4/head">
+    <xsl:text>&#10;</xsl:text>
+    <h5>
+      <a>
+        <xsl:attribute name="name">
+          <xsl:choose>
+            <xsl:when test="../@id">
+              <xsl:value-of select="../@id"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="generate-id(..)"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </a>
+      <xsl:apply-templates select=".." mode="divnum"/>
+      <xsl:apply-templates/>
+    </h5>
+  </xsl:template>
+
+  <xsl:template match="div5/head">
+    <xsl:text>&#10;</xsl:text>
+    <h6>
+      <a>
+        <xsl:attribute name="name">
+          <xsl:choose>
+            <xsl:when test="../@id">
+              <xsl:value-of select="../@id"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="generate-id(..)"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </a>
+      <xsl:apply-templates select=".." mode="divnum"/>
+      <xsl:apply-templates/>
+    </h6>
+  </xsl:template>
+
+  <xsl:template match="example/head">
+    <xsl:text>&#10;</xsl:text>
+    <h5>
+      <xsl:text>Example: </xsl:text>
+      <xsl:apply-templates/>
+    </h5>
+  </xsl:template>
+
+  <xsl:template match="inform-div1/head">
+    <xsl:text>&#10;</xsl:text>
+    <h2>
+      <a>
+        <xsl:attribute name="name">
+          <xsl:choose>
+            <xsl:when test="../@id">
+              <xsl:value-of select="../@id"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="generate-id(..)"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:attribute>
+      </a>
+      <xsl:apply-templates select=".." mode="divnum"/>
+      <xsl:apply-templates/>
+      <xsl:text> (Non-Normative)</xsl:text>
+    </h2>
+  </xsl:template>
+
+  <xsl:template match="issue/head">
+    <p class="prefix">
+      <b><xsl:apply-templates/></b>
+    </p>
+  </xsl:template>
+
+  <xsl:template match="scrap/head">
+    <xsl:text>&#10;</xsl:text>
+    <h5>
+      <xsl:apply-templates/>
+    </h5>
+  </xsl:template>
+
+  <xsl:template match="vcnote/head">
+    <p class="prefix">
+      <xsl:if test="../@id">
+	<a name="{../@id}"/>
+      </xsl:if>
+      <b><xsl:text>Validity constraint: </xsl:text><xsl:apply-templates/></b>
+    </p>
+  </xsl:template>
+
+  <xsl:template match="wfcnote/head">
+    <p class="prefix">
+      <xsl:if test="../@id">
+	<a name="{../@id}"/>
+      </xsl:if>
+      <b><xsl:text>Well-formedness constraint: </xsl:text><xsl:apply-templates/></b>
+    </p>
+  </xsl:template>
+
+  <!-- header: metadata about the spec -->
+  <!-- pull out information into standard W3C layout -->
+  <xsl:template match="header">
+    <div class="head">
+      <p>
+        <a href="http://www.w3.org/">
+          <img src="http://www.w3.org/Icons/w3c_home"
+            alt="W3C" height="48" width="72"/>
+        </a>
+      </p>
+      <xsl:text>&#10;</xsl:text>
+      <h1>
+        <xsl:apply-templates select="title"/>
+        <xsl:if test="version">
+          <xsl:text> </xsl:text>
+          <xsl:apply-templates select="version"/>
+        </xsl:if>
+      </h1>
+      <xsl:if test="subtitle">
+        <xsl:text>&#10;</xsl:text>
+        <h2>
+          <xsl:apply-templates select="subtitle"/>
+        </h2>
+      </xsl:if>
+      <xsl:text>&#10;</xsl:text>
+      <h2>
+        <xsl:apply-templates select="w3c-doctype"/>
+        <xsl:text> </xsl:text>
+        <xsl:if test="pubdate/day">
+          <xsl:apply-templates select="pubdate/day"/>
+          <xsl:text> </xsl:text>
+        </xsl:if>
+        <xsl:apply-templates select="pubdate/month"/>
+        <xsl:text> </xsl:text>
+        <xsl:apply-templates select="pubdate/year"/>
+      </h2>
+      <dl>
+        <xsl:apply-templates select="publoc"/>
+        <xsl:apply-templates select="latestloc"/>
+        <xsl:apply-templates select="prevlocs"/>
+        <xsl:apply-templates select="authlist"/>
+      </dl>
+      <p class="copyright">
+        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
+          <xsl:text>Copyright</xsl:text>
+        </a>
+        <xsl:text>&#xa0;&#xa9;&#xa0;</xsl:text>
+        <xsl:apply-templates select="pubdate/year"/>
+        <xsl:text>&#xa0;</xsl:text>
+        <a href="http://www.w3.org/">
+          <abbr title="World Wide Web Consortium">W3C</abbr>
+        </a>
+        <sup>&#xae;</sup>
+        <xsl:text> (</xsl:text>
+        <a href="http://www.lcs.mit.edu/">
+          <abbr title="Massachusetts Institute of Technology">MIT</abbr>
+        </a>
+        <xsl:text>, </xsl:text>
+        <a href="http://www.inria.fr/">
+        <abbr lang="fr"
+          title="Institut National de Recherche en Informatique et Automatique">INRIA</abbr>
+        </a>
+        <xsl:text>, </xsl:text>
+        <a href="http://www.keio.ac.jp/">Keio</a>
+        <xsl:text>), All Rights Reserved. W3C </xsl:text>
+        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>
+        <xsl:text>, </xsl:text>
+        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
+        <xsl:text>, </xsl:text>
+        <a href="http://www.w3.org/Consortium/Legal/copyright-documents-19990405">document use</a>
+        <xsl:text>, and </xsl:text>
+        <a href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">software licensing</a>
+        <xsl:text> rules apply.</xsl:text>
+      </p>
+    </div>
+    <hr/>
+    <xsl:apply-templates select="notice"/>
+    <xsl:apply-templates select="abstract"/>
+    <xsl:apply-templates select="status"/>
+  </xsl:template>
+
+  <!-- inform-div1: non-normative back matter top-level division -->
+  <!-- treat like div1 except add "(Non-Normative)" to title -->
+  <xsl:template match="inform-div1">
+    <div class="div1">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- interface: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- issue: open issue before the Working Group -->
+  <!-- maintain an ID for linking to it -->
+  <!-- currently generates boilerplate head plus optional head child
+       element; this should probably be cleaned up to only use the
+       head if it's present -->
+  <xsl:template match="issue">
+    <div class="issue">
+      <p class="prefix">
+	<xsl:if test="@id">
+	  <a name="{@id}"/>
+	</xsl:if>
+	<b><xsl:text>Issue (</xsl:text><xsl:value-of select="@id"/><xsl:text>):</xsl:text></b>
+      </p>
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- item: generic list item -->
+  <xsl:template match="item">
+    <li>
+      <xsl:apply-templates/>
+    </li>
+  </xsl:template>
+
+  <!-- kw: keyword -->
+  <!-- make it bold -->
+  <xsl:template match="kw">
+    <b><xsl:apply-templates/></b>
+  </xsl:template>
+
+  <!-- label: term for defintion in glossary entry -->
+  <!-- already in <dl> context from glist -->
+  <xsl:template match="label">
+    <dt class="label">
+      <xsl:if test="@id"><a name="{@id}"/></xsl:if>
+      <xsl:apply-templates/>
+    </dt>
+  </xsl:template>
+
+  <!-- language: -->
+  <!-- langusage: -->
+  <!-- identify language usage within a spec; not actually formatted -->
+
+  <!-- latestloc: latest location for this spec -->
+  <!-- called in a <dl> context from header -->
+  <xsl:template match="latestloc">
+    <dt>Latest version:</dt>
+    <dd>
+      <xsl:apply-templates/>
+    </dd>
+  </xsl:template>
+
+  <!-- lhs: left-hand side of formal productions -->
+  <!-- make a table row with the lhs and the corresponding other
+       pieces in this crazy mixed-up content model -->
+  <xsl:template match="lhs">
+    <tr valign="baseline">
+      <td>
+	<xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup='1'">
+	  <xsl:attribute name="class">
+	    <xsl:text>diff-</xsl:text>
+	    <xsl:value-of select="ancestor-or-self::*/@diff"/>
+	  </xsl:attribute>
+	</xsl:if>
+	<xsl:if test="../@id">
+	  <a name="{../@id}"/>
+	</xsl:if>
+	<xsl:apply-templates select="ancestor::prod" mode="number"/>
+<!--
+  This could be done right here, but XT goes into deep space when the
+  node to be numbered isn't the current node and level="any":
+          <xsl:number count="prod" level="any" from="spec"
+            format="[1]"/>
+  -->
+	<xsl:text>&#xa0;&#xa0;&#xa0;</xsl:text>
+      </td>
+      <td>
+	<xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup='1'">
+	  <xsl:attribute name="class">
+	    <xsl:text>diff-</xsl:text>
+	    <xsl:value-of select="ancestor-or-self::*/@diff"/>
+	  </xsl:attribute>
+	</xsl:if>
+        <code><xsl:apply-templates/></code>
+      </td>
+      <td>
+	<xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup='1'">
+	  <xsl:attribute name="class">
+	    <xsl:text>diff-</xsl:text>
+	    <xsl:value-of select="ancestor-or-self::*/@diff"/>
+	  </xsl:attribute>
+	</xsl:if>
+        <xsl:text>&#xa0;&#xa0;&#xa0;::=&#xa0;&#xa0;&#xa0;</xsl:text>
+      </td>
+      <xsl:apply-templates
+        select="following-sibling::*[1][name()='rhs']"/>
+    </tr>
+  </xsl:template>
+
+  <!-- loc: a Web location -->
+  <!-- outside the header, it's a normal cross-reference -->
+  <xsl:template match="loc">
+    <a href="{@href}">
+      <xsl:apply-templates/>
+    </a>
+  </xsl:template>
+
+  <!-- member: member of an organization -->
+  <!-- appears only in orglist, which creates <ul> context -->
+  <xsl:template match="member">
+    <li>
+      <xsl:apply-templates/>
+    </li>
+  </xsl:template>
+
+  <!-- method: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- module: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- month: month of spec -->
+  <!-- only used in pudate; called directly from header template -->
+
+  <!-- name: name of an editor or organization member -->
+  <!-- only appears in author and member -->
+  <!-- just output text -->
+  <xsl:template match="name">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- note: a note about the spec -->
+  <xsl:template match="note">
+    <div class="note">
+      <p class="prefix">
+        <b>Note:</b>
+      </p>
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- notice: a front-matter advisory about the spec's status -->
+  <!-- make sure people notice it -->
+  <xsl:template match="notice">
+    <div class="notice">
+      <p class="prefix">
+        <b>NOTICE:</b>
+      </p>
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- nt: production non-terminal -->
+  <!-- make a link to the non-terminal's definition -->
+  <xsl:template match="nt">
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="target" select="id(@def)"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates/>
+    </a>
+  </xsl:template>
+
+  <!-- olist: an ordered list -->
+  <xsl:template match="olist">
+    <ol>
+      <xsl:apply-templates/>
+    </ol>
+  </xsl:template>
+
+  <!-- orglist: a list of an organization's members -->
+  <xsl:template match="orglist">
+    <ul>
+      <xsl:apply-templates/>
+    </ul>
+  </xsl:template>
+
+  <!-- p: a standard paragraph -->
+  <xsl:template match="p">
+    <p>
+      <xsl:if test="@id">
+        <xsl:attribute name="id">
+          <xsl:value-of select="@id"/>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:if test="@role">
+        <xsl:attribute name="class">
+          <xsl:value-of select="@role"/>
+        </xsl:attribute>
+      </xsl:if>
+      <xsl:apply-templates/>
+    </p>
+  </xsl:template>
+
+  <!-- param: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- parameters: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- phrase: semantically meaningless markup hanger -->
+  <!-- role attributes may be used to request different formatting,
+       which isn't currently handled -->
+  <xsl:template match="phrase">
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- prevlocs: previous locations for this spec -->
+  <!-- called in a <dl> context from header -->
+  <xsl:template match="prevlocs">
+    <dt>Previous versions:</dt>
+    <dd>
+      <xsl:apply-templates/>
+    </dd>
+  </xsl:template>
+
+  <!-- prod: a formal grammar production -->
+  <!-- if not in a prodgroup, needs a <tbody> -->
+  <!-- has a weird content model; makes a table but there are no
+       explicit rules; many different things can start a new row -->
+  <!-- process the first child in each row, and it will process the
+       others -->
+  <xsl:template match="prod">
+    <tbody>
+      <xsl:apply-templates
+        select="lhs |
+                rhs[preceding-sibling::*[1][name()!='lhs']] |
+                com[preceding-sibling::*[1][name()!='rhs']] |
+                constraint[preceding-sibling::*[1][name()!='rhs']] |
+                vc[preceding-sibling::*[1][name()!='rhs']] |
+                wfc[preceding-sibling::*[1][name()!='rhs']]"/>
+    </tbody>
+  </xsl:template>
+
+  <xsl:template match="prodgroup/prod">
+    <xsl:apply-templates
+      select="lhs |
+              rhs[preceding-sibling::*[1][name()!='lhs']] |
+              com[preceding-sibling::*[1][name()!='rhs']] |
+              constraint[preceding-sibling::*[1][name()!='rhs']] |
+              vc[preceding-sibling::*[1][name()!='rhs']] |
+              wfc[preceding-sibling::*[1][name()!='rhs']]"/>
+  </xsl:template>
+
+  <!-- prodgroup: group of formal productions -->
+  <!-- create one <tbody> for each group -->
+  <xsl:template match="prodgroup">
+    <tbody>
+      <xsl:apply-templates/>
+    </tbody>
+  </xsl:template>
+
+  <!-- prodrecap: reiteration of a prod -->
+  <!-- process the prod in another node that will never generate a
+       <tbody> or a number, plus links the lhs to the original
+       production -->
+  <xsl:template match="prodrecap">
+    <tbody>
+      <xsl:apply-templates select="id(@ref)" mode="ref"/>
+    </tbody>
+  </xsl:template>
+
+  <!-- proto: function prototype -->
+  <!-- type and name of the function, with arguments in parens -->
+  <xsl:template match="proto">
+    <p>
+      <em><xsl:value-of select="@return-type"/></em>
+      <xsl:text> </xsl:text>
+      <b><xsl:value-of select="@name"/></b>
+      <xsl:text>(</xsl:text>
+      <xsl:apply-templates/>
+      <xsl:text>)</xsl:text>
+    </p>
+  </xsl:template>
+
+  <!-- pubdate: date of spec -->
+  <!-- called directly from header -->
+
+  <!-- publoc: location of current version of spec -->
+  <!-- called from header in <dl> context -->
+  <xsl:template match="publoc">
+    <dt>This version:</dt>
+    <dd>
+      <xsl:apply-templates/>
+    </dd>
+  </xsl:template>
+
+  <!-- pubstmt: statement of publication -->
+  <!-- not currently output -->
+
+  <!-- quote: a quoted string or phrase -->
+  <!-- it would be nice to use HTML <q> elements, but browser support
+       is abysmal -->
+  <xsl:template match="quote">
+    <xsl:text>"</xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>"</xsl:text>
+  </xsl:template>
+
+  <!-- raises: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- reference: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- resolution: resolution of an issue -->
+  <xsl:template match="resolution">
+    <p class="prefix">
+      <b>Resolution:</b>
+    </p>
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- returns: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- revisiondesc: description of spec revision -->
+  <!-- used for internal tracking; not formatted -->
+
+  <!-- rhs: right-hand side of a formal production -->
+  <!-- make a table cell; if it's not the first after an LHS, make a
+       new row, too -->
+  <xsl:template match="rhs">
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::*[1][name()='lhs']">
+        <td>
+	  <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup='1'">
+	    <xsl:attribute name="class">
+	      <xsl:text>diff-</xsl:text>
+	      <xsl:value-of select="ancestor-or-self::*/@diff"/>
+	    </xsl:attribute>
+	  </xsl:if>
+          <code><xsl:apply-templates/></code>
+        </td>
+	<xsltdebug/>
+        <xsl:apply-templates
+          select="following-sibling::*[1][name()='com' or
+                                          name()='constraint' or
+                                          name()='vc' or
+                                          name()='wfc']"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <tr valign="baseline">
+          <td/><td/><td/>
+          <td>
+	    <xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup='1'">
+	      <xsl:attribute name="class">
+		<xsl:text>diff-</xsl:text>
+		<xsl:value-of select="ancestor-or-self::*/@diff"/>
+	      </xsl:attribute>
+	    </xsl:if>
+            <code><xsl:apply-templates/></code>
+          </td>
+          <xsl:apply-templates
+            select="following-sibling::*[1][name()='com' or
+                                            name()='constraint' or
+                                            name()='vc' or
+                                            name()='wfc']"/>
+        </tr>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- role: part played by a member of an organization -->
+  <xsl:template match="role">
+    <xsl:text> (</xsl:text>
+    <i><xsl:apply-templates/></i>
+    <xsl:text>) </xsl:text>
+  </xsl:template>
+
+  <!-- scrap: series of formal grammar productions -->
+  <!-- set up a <table> and handle children -->
+  <xsl:template match="scrap">
+    <xsl:apply-templates select="head"/>
+    <table class="scrap" summary="Scrap">
+      <xsl:apply-templates select="bnf | prod | prodgroup"/>
+    </table>
+  </xsl:template>
+
+  <!-- sequence: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- sitem: simple list item -->
+  <!-- just make one paragraph with <br>s between items -->
+  <xsl:template match="sitem[position() &gt; 1]">
+    <br/>
+    <xsl:apply-templates/>
+  </xsl:template>
+
+  <!-- slist: simple list -->
+  <!-- using a <blockquote> to indent the list is very wrong, but it
+       works -->
+  <xsl:template match="slist">
+    <blockquote>
+      <p>
+        <xsl:apply-templates/>
+      </p>
+    </blockquote>
+  </xsl:template>
+
+  <!-- source: the source of an issue -->
+  <xsl:template match="source">
+    <p>
+      <b>Source</b>
+      <xsl:text>: </xsl:text>
+      <xsl:apply-templates/>
+    </p>
+  </xsl:template>
+
+  <!-- sourcedesc: description of spec preparation -->
+  <!-- used for tracking the source, but not formatted -->
+
+  <!-- spec: the specification itself -->
+  <xsl:template match="spec">
+    <html>
+      <xsl:if test="header/langusage/language">
+        <xsl:attribute name="lang">
+          <xsl:value-of select="header/langusage/language/@id"/>
+        </xsl:attribute>
+      </xsl:if>
+      <head>
+	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+        <title>
+          <xsl:apply-templates select="header/title"/>
+          <xsl:if test="header/version">
+            <xsl:text> </xsl:text>
+            <xsl:apply-templates select="header/version"/>
+          </xsl:if>
+          <xsl:if test="$additional.title != ''">
+            <xsl:text> -- </xsl:text>
+            <xsl:value-of select="$additional.title"/>
+	  </xsl:if>
+        </title>
+        <xsl:call-template name="css"/>
+      </head>
+      <body>
+        <xsl:apply-templates/>
+        <xsl:if test="//footnote">
+          <hr/>
+          <div class="endnotes">
+            <xsl:text>&#10;</xsl:text>
+            <h3>
+              <a name="endnotes">
+                <xsl:text>End Notes</xsl:text>
+              </a>
+            </h3>
+            <dl>
+              <xsl:apply-templates select="//footnote" mode="notes"/>
+            </dl>
+          </div>
+        </xsl:if>
+      </body>
+    </html>
+  </xsl:template>
+
+  <!-- specref: reference to another part of teh current specification -->
+  <xsl:template match="specref">
+    <xsl:variable name="target" select="id(@ref)[1]"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="target" select="id(@ref)"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:choose>
+	<xsl:when test="starts-with(local-name($target), 'div')">
+	  <b><xsl:apply-templates select="id(@ref)" mode="divnum"/><xsl:apply-templates select="id(@ref)/head" mode="text"/></b>
+	</xsl:when>
+	<xsl:when test="starts-with(local-name($target), 'inform-div')">
+	  <b><xsl:apply-templates select="id(@ref)" mode="divnum"/><xsl:apply-templates select="id(@ref)/head" mode="text"/></b>
+	</xsl:when>
+	<xsl:when test="local-name($target) = 'vcnote'">
+	  <b><xsl:text>[VC: </xsl:text><xsl:apply-templates select="id(@ref)/head" mode="text"/><xsl:text>]</xsl:text></b>
+	</xsl:when>
+	<xsl:when test="local-name($target) = 'prod'">
+	  <b>
+            <xsl:text>[PROD: </xsl:text>
+            <xsl:apply-templates select="$target" mode="number-simple"/>
+            <xsl:text>]</xsl:text>
+          </b>
+	</xsl:when>
+	<xsl:when test="local-name($target) = 'label'">
+	  <b>
+            <xsl:text>[</xsl:text>
+            <xsl:value-of select="$target"/>
+            <xsl:text>]</xsl:text>
+          </b>
+	</xsl:when>
+	<xsl:otherwise>
+	  <xsl:message>
+	    <xsl:text>Unsupported specref to </xsl:text>
+	    <xsl:value-of select="local-name($target)"/>
+	    <xsl:text> [</xsl:text>
+	    <xsl:value-of select="@ref"/>
+	    <xsl:text>] </xsl:text>
+	    <xsl:text> (Contact stylesheet maintainer).</xsl:text>
+	  </xsl:message>
+	  <b>???</b>
+	</xsl:otherwise>
+      </xsl:choose>
+    </a>
+  </xsl:template>
+
+  <!-- status: the status of the spec -->
+  <xsl:template match="status">
+    <div id="status">
+      <xsl:text>&#10;</xsl:text>
+      <h2>
+        <a name="status">Status of this Document</a>
+      </h2>
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- struct: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- sub: subscript -->
+  <xsl:template match="sub">
+    <sub>
+      <xsl:apply-templates/>
+    </sub>
+  </xsl:template>
+
+  <!-- subtitle: secondary title of spec -->
+  <!-- handled directly within header -->
+
+  <!-- sup: superscript -->
+  <xsl:template match="sup">
+    <sup>
+      <xsl:apply-templates/>
+    </sup>
+  </xsl:template>
+
+  <!-- table: the HTML table model adopted wholesale -->
+  <!-- tbody: -->
+  <!-- td: -->
+  <xsl:template
+    match="caption | col | colgroup | table | tbody | td | tfoot | th | thead | tr">
+    <xsl:copy>
+      <xsl:for-each select="@*">
+	<!-- Wait: some of these aren't HTML attributes after all... -->
+	<xsl:if test="local-name(.) != 'diff'">
+	  <xsl:copy>
+	    <xsl:apply-templates/>
+	  </xsl:copy>
+	</xsl:if>
+      </xsl:for-each>
+      <xsl:apply-templates/>
+    </xsl:copy>
+  </xsl:template>
+
+  <!-- term: the actual mention of a term within a termdef -->
+  <xsl:template match="term">
+    <b><xsl:apply-templates/></b>
+  </xsl:template>
+
+  <!-- termdef: sentence or phrase defining a term -->
+  <xsl:template match="termdef">
+    <xsl:text>[</xsl:text>
+    <a name="{@id}" title="{@term}">
+      <xsl:text>Definition</xsl:text>
+    </a>
+    <xsl:text>: </xsl:text>
+    <xsl:apply-templates/>
+    <xsl:text>]</xsl:text>
+  </xsl:template>
+
+  <!-- termref: reference to a defined term -->
+  <xsl:template match="termref">
+    <a title="{id(@def)/@term}">
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="target" select="id(@def)"/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates/>
+    </a>
+  </xsl:template>
+
+  <!-- tfoot: see table -->
+  <!-- th: see table -->
+  <!-- thead: see table -->
+
+  <!-- title: title of the specification -->
+  <!-- called directly within header -->
+
+  <!-- titleref: reference to the title of any work -->
+  <!-- if a URL is given, link it -->
+  <xsl:template match="titleref">
+    <xsl:choose>
+      <xsl:when test="@href">
+        <a href="{@href}">
+          <cite>
+            <xsl:apply-templates/>
+          </cite>
+        </a>
+      </xsl:when>
+      <xsl:otherwise>
+        <cite>
+          <xsl:apply-templates/>
+        </cite>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- tr: see table -->
+
+  <!-- typedef: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- typename: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- ulist: unordered list -->
+  <xsl:template match="ulist">
+    <ul>
+      <xsl:apply-templates/>
+    </ul>
+  </xsl:template>
+
+  <!-- union: -->
+  <!-- IDL stuff isn't handled yet -->
+
+  <!-- var: a variable -->
+  <xsl:template match="var">
+    <var>
+      <xsl:apply-templates/>
+    </var>
+  </xsl:template>
+
+  <!-- vc: validity check reference in a formal production -->
+  <xsl:template match="vc">
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+        <td>
+	  <xsl:if test="@diff and $show.diff.markup='1'">
+	    <xsl:attribute name="class">
+	      <xsl:text>diff-</xsl:text>
+	      <xsl:value-of select="@diff"/>
+	    </xsl:attribute>
+	  </xsl:if>
+          <a>
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="target" select="id(@def)"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:text>[VC: </xsl:text>
+            <xsl:apply-templates select="id(@def)/head" mode="text"/>
+            <xsl:text>]</xsl:text>
+          </a>
+        </td>
+      </xsl:when>
+      <xsl:otherwise>
+        <tr valign="baseline">
+          <td/><td/><td/><td/>
+          <td>
+	    <xsl:if test="@diff and $show.diff.markup='1'">
+	      <xsl:attribute name="class">
+		<xsl:text>diff-</xsl:text>
+		<xsl:value-of select="@diff"/>
+	      </xsl:attribute>
+	    </xsl:if>
+            <a>
+              <xsl:attribute name="href">
+                <xsl:call-template name="href.target">
+                  <xsl:with-param name="target" select="id(@def)"/>
+                </xsl:call-template>
+              </xsl:attribute>
+              <xsl:text>[VC: </xsl:text>
+              <xsl:apply-templates select="id(@def)/head" mode="text"/>
+              <xsl:text>]</xsl:text>
+            </a>
+          </td>
+        </tr>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- vcnote: validity check note after a formal production -->
+  <xsl:template match="vcnote">
+    <div class="constraint">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- version: version of this spec -->
+  <!-- called directly from header -->
+
+  <!-- w3c-designation: canonical name for this spec -->
+  <!-- not used for formatting -->
+
+  <!-- w3c-doctype: type of document the specification is -->
+  <!-- used by header template to select CSS stylesheet for output
+       HTML -->
+
+  <!-- wfc: well-formedness check reference in a formal production -->
+  <xsl:template match="wfc">
+    <xsl:choose>
+      <xsl:when test="preceding-sibling::*[1][name()='rhs']">
+        <td>
+	  <xsl:if test="@diff and $show.diff.markup='1'">
+	    <xsl:attribute name="class">
+	      <xsl:text>diff-</xsl:text>
+	      <xsl:value-of select="@diff"/>
+	    </xsl:attribute>
+	  </xsl:if>
+          <a>
+            <xsl:attribute name="href">
+              <xsl:call-template name="href.target">
+                <xsl:with-param name="target" select="id(@def)"/>
+              </xsl:call-template>
+            </xsl:attribute>
+            <xsl:text>[WFC: </xsl:text>
+            <xsl:apply-templates select="id(@def)/head" mode="text"/>
+            <xsl:text>]</xsl:text>
+          </a>
+        </td>
+      </xsl:when>
+      <xsl:otherwise>
+        <tr valign="baseline">
+          <td/><td/><td/><td/>
+          <td>
+	    <xsl:if test="@diff and $show.diff.markup='1'">
+	      <xsl:attribute name="class">
+		<xsl:text>diff-</xsl:text>
+		<xsl:value-of select="@diff"/>
+	      </xsl:attribute>
+	    </xsl:if>
+            <a>
+              <xsl:attribute name="href">
+                <xsl:call-template name="href.target">
+                  <xsl:with-param name="target" select="id(@def)"/>
+                </xsl:call-template>
+              </xsl:attribute>
+              <xsl:text>[WFC: </xsl:text>
+              <xsl:apply-templates select="id(@def)/head" mode="text"/>
+              <xsl:text>]</xsl:text>
+            </a>
+          </td>
+        </tr>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- wfcnote: well-formedness check note after formal production -->
+  <xsl:template match="wfcnote">
+    <div class="constraint">
+      <xsl:apply-templates/>
+    </div>
+  </xsl:template>
+
+  <!-- xnt: external non-terminal -->
+  <!-- xspecref: external specification reference -->
+  <!-- xtermref: external term reference -->
+  <!-- just link to URI provided -->
+  <xsl:template match="xnt | xspecref | xtermref">
+    <a href="{@href}">
+      <xsl:apply-templates/>
+    </a>
+  </xsl:template>
+
+  <!-- year: year of spec -->
+  <!-- only used in pudate; called directly from header template -->
+
+  <!-- Silly HTML elements used for pasting stuff in; shouldn't ever
+       show up in a spec, but they're easy to handle and you just
+       never know. -->
+  <xsl:template match="a|div|em|h1|h2|h3|h4|h5|h6|li|ol|pre|ul">
+    <xsl:copy>
+      <xsl:for-each select="@*">
+        <xsl:copy>
+          <xsl:apply-templates/>
+        </xsl:copy>
+      </xsl:for-each>
+      <xsl:apply-templates/>
+    </xsl:copy>
+  </xsl:template>
+
+  <!-- legacy XML spec stuff -->
+  <xsl:template match="htable">
+    <table summary="HTML Table">
+      <xsl:for-each select="@*">
+        <xsl:copy>
+          <xsl:apply-templates/>
+        </xsl:copy>
+      </xsl:for-each>
+      <xsl:apply-templates/>
+    </table>
+  </xsl:template>
+  <xsl:template match="htbody">
+    <tbody>
+      <xsl:for-each select="@*">
+        <xsl:copy>
+          <xsl:apply-templates/>
+        </xsl:copy>
+      </xsl:for-each>
+      <xsl:apply-templates/>
+    </tbody>
+  </xsl:template>
+  <xsl:template match="key-term">
+    <b><xsl:apply-templates/></b>
+  </xsl:template>
+  <xsl:template match="statusp">
+    <p>
+      <xsl:apply-templates/>
+    </p>
+  </xsl:template>
+
+  <!-- legacy DocBook stuff -->
+  <xsl:template match="itemizedlist">
+    <ul>
+      <xsl:apply-templates/>
+    </ul>
+  </xsl:template>
+  <xsl:template match="listitem">
+    <li>
+      <xsl:apply-templates/>
+    </li>
+  </xsl:template>
+  <xsl:template match="orderedlist">
+    <ol>
+      <xsl:apply-templates/>
+    </ol>
+  </xsl:template>
+  <xsl:template match="para">
+    <p>
+      <xsl:apply-templates/>
+    </p>
+  </xsl:template>
+
+  <!-- mode: divnum -->
+  <xsl:template mode="divnum" match="div1">
+    <xsl:number format="1 "/>
+  </xsl:template>
+
+  <xsl:template mode="divnum" match="back/div1 | inform-div1">
+    <xsl:number count="div1 | inform-div1" format="A "/>
+  </xsl:template>
+
+  <xsl:template mode="divnum"
+    match="front/div1 | front//div2 | front//div3 | front//div4 | front//div5"/>
+
+  <xsl:template mode="divnum" match="div2">
+    <xsl:number level="multiple" count="div1 | div2" format="1.1 "/>
+  </xsl:template>
+
+  <xsl:template mode="divnum" match="back//div2">
+    <xsl:number level="multiple" count="div1 | div2 | inform-div1"
+      format="A.1 "/>
+  </xsl:template>
+
+  <xsl:template mode="divnum" match="div3">
+    <xsl:number level="multiple" count="div1 | div2 | div3"
+      format="1.1.1 "/>
+  </xsl:template>
+
+  <xsl:template mode="divnum" match="back//div3">
+    <xsl:number level="multiple"
+      count="div1 | div2 | div3 | inform-div1" format="A.1.1 "/>
+  </xsl:template>
+
+  <xsl:template mode="divnum" match="div4">
+    <xsl:number level="multiple" count="div1 | div2 | div3 | div4"
+      format="1.1.1.1 "/>
+  </xsl:template>
+
+  <xsl:template mode="divnum" match="back//div4">
+    <xsl:number level="multiple"
+      count="div1 | div2 | div3 | div4 | inform-div1"
+      format="A.1.1.1 "/>
+  </xsl:template>
+
+  <xsl:template mode="divnum" match="div5">
+    <xsl:number level="multiple"
+      count="div1 | div2 | div3 | div4 | div5" format="1.1.1.1.1 "/>
+  </xsl:template>
+
+  <xsl:template mode="divnum" match="back//div5">
+    <xsl:number level="multiple"
+      count="div1 | div2 | div3 | div4 | div5 | inform-div1"
+      format="A.1.1.1.1 "/>
+  </xsl:template>
+
+  <!-- mode: notes -->
+  <xsl:template mode="notes" match="footnote">
+    <xsl:variable name="this-note-id">
+      <xsl:choose>
+        <xsl:when test="@id">
+          <xsl:value-of select="@id"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="generate-id(.)"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+    <dt>
+      <a name="{$this-note-id}" href="#FN-ANCH-{$this-note-id}">
+        <xsl:number level="any" format="[1]"/>
+      </a>
+    </dt>
+    <dd>
+      <xsl:apply-templates/>
+    </dd>
+  </xsl:template>
+
+  <!-- mode: number -->
+  <xsl:template mode="number" match="prod">
+    <xsl:text>[</xsl:text>
+    <xsl:apply-templates select="." mode="number-simple"/>
+    <xsl:text>]</xsl:text>
+  </xsl:template>
+
+  <xsl:template mode="number" match="prod[@diff='add']">
+    <xsl:text>[</xsl:text>
+    <xsl:apply-templates select="preceding::prod[not(@diff='add')][1]"
+      mode="number-simple"/>
+<!--
+  Once again, this could be done right here, but XT won't hear of it.
+    <xsl:number level="any" count="prod[not(@diff='add')]"/>
+  -->
+    <xsl:number level="any" count="prod[@diff='add']"
+      from="prod[not(@diff='add')]" format="a"/>
+    <xsl:text>]</xsl:text>
+  </xsl:template>
+
+  <!-- mode: number-simple -->
+  <xsl:template mode="number-simple" match="prod">
+    <xsl:number level="any" count="prod[not(@diff='add')]"/>
+  </xsl:template>
+
+  <!-- mode: ref -->
+  <xsl:template match="lhs" mode="ref">
+    <tr valign="baseline">
+      <td/>
+      <td>
+	<xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup='1'">
+	  <xsl:attribute name="class">
+	    <xsl:text>diff-</xsl:text>
+	    <xsl:value-of select="ancestor-or-self::*/@diff"/>
+	  </xsl:attribute>
+	</xsl:if>
+	<xsl:if test="../@id">
+	  <a name="{../@id}"/>
+	</xsl:if>
+	<code><xsl:apply-templates/></code>
+      </td>
+      <td>
+	<xsl:if test="ancestor-or-self::*/@diff and $show.diff.markup='1'">
+	  <xsl:attribute name="class">
+	    <xsl:text>diff-</xsl:text>
+	    <xsl:value-of select="ancestor-or-self::*/@diff"/>
+	  </xsl:attribute>
+	</xsl:if>
+        <xsl:text>&#xa0;&#xa0;&#xa0;::=&#xa0;&#xa0;&#xa0;</xsl:text>
+      </td>
+      <xsl:apply-templates
+        select="following-sibling::*[1][name()='rhs']"/>
+    </tr>
+  </xsl:template>
+
+  <xsl:template mode="ref" match="prod">
+    <xsl:apply-templates select="lhs" mode="ref"/>
+    <xsl:apply-templates
+      select="rhs[preceding-sibling::*[1][name()!='lhs']] |
+              com[preceding-sibling::*[1][name()!='rhs']] |
+              constraint[preceding-sibling::*[1][name()!='rhs']] |
+              vc[preceding-sibling::*[1][name()!='rhs']] |
+              wfc[preceding-sibling::*[1][name()!='rhs']]"/>
+  </xsl:template>
+
+  <!-- mode: text -->
+  <!-- most stuff processes just as text here, but some things should
+       be hidden -->
+  <xsl:template mode="text" match="ednote | footnote"/>
+
+  <!-- mode: toc -->
+  <xsl:template mode="toc" match="div1">
+    <xsl:apply-templates select="." mode="divnum"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="target" select="."/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates select="head" mode="text"/>
+    </a>
+    <br/>
+    <xsl:apply-templates select="div2" mode="toc"/>
+  </xsl:template>
+
+  <xsl:template mode="toc" match="div2">
+    <xsl:text>&#xa0;&#xa0;&#xa0;&#xa0;</xsl:text>
+    <xsl:apply-templates select="." mode="divnum"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="target" select="."/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates select="head" mode="text"/>
+    </a>
+    <br/>
+    <xsl:apply-templates select="div3" mode="toc"/>
+  </xsl:template>
+
+  <xsl:template mode="toc" match="div3">
+    <xsl:text>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</xsl:text>
+    <xsl:apply-templates select="." mode="divnum"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="target" select="."/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates select="head" mode="text"/>
+    </a>
+    <br/>
+    <xsl:apply-templates select="div4" mode="toc"/>
+  </xsl:template>
+
+  <xsl:template mode="toc" match="div4">
+    <xsl:text>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</xsl:text>
+    <xsl:apply-templates select="." mode="divnum"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="target" select="."/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates select="head" mode="text"/>
+    </a>
+    <br/>
+    <xsl:apply-templates select="div5" mode="toc"/>
+  </xsl:template>
+
+  <xsl:template mode="toc" match="div5">
+    <xsl:text>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</xsl:text>
+    <xsl:apply-templates select="." mode="divnum"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="target" select="."/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates select="head" mode="text"/>
+    </a>
+    <br/>
+  </xsl:template>
+
+  <xsl:template mode="toc" match="inform-div1">
+    <xsl:apply-templates select="." mode="divnum"/>
+    <a>
+      <xsl:attribute name="href">
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="target" select="."/>
+        </xsl:call-template>
+      </xsl:attribute>
+      <xsl:apply-templates select="head" mode="text"/>
+    </a>
+    <xsl:text> (Non-Normative)</xsl:text>
+    <br/>
+    <xsl:apply-templates select="div2" mode="toc"/>
+  </xsl:template>
+
+  <xsl:template name="css">
+    <style type="text/css">
+      <xsl:text>
+code           { font-family: monospace; }
+
+div.constraint,
+div.issue,
+div.note,
+div.notice     { margin-left: 2em; }
+
+dt.label       { display: run-in; }
+
+li p           { margin-top: 0.3em;
+                 margin-bottom: 0.3em; }
+      </xsl:text>
+      <xsl:value-of select="$additional.css"/>
+    </style>
+    <link rel="stylesheet" type="text/css">
+      <xsl:attribute name="href">
+        <xsl:text>W3C-</xsl:text>
+        <xsl:choose>
+          <xsl:when test="/spec/@w3c-doctype='wd'">WD</xsl:when>
+          <xsl:when test="/spec/@w3c-doctype='rec'">REC</xsl:when>
+          <xsl:when test="/spec/@w3c-doctype='pr'">REC</xsl:when>
+          <xsl:when test="/spec/@w3c-doctype='cr'">REC</xsl:when>
+          <xsl:otherwise>NOTE</xsl:otherwise>
+        </xsl:choose>
+        <xsl:text>.css</xsl:text>
+      </xsl:attribute>
+    </link>
+  </xsl:template>
+
+  <xsl:template name="href.target">
+    <xsl:param name="target" select="."/>
+
+    <xsl:text>#</xsl:text>
+
+    <xsl:choose>
+      <xsl:when test="$target/@id">
+        <xsl:value-of select="$target/@id"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="generate-id($target)"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+</xsl:transform>

Added: packages/libxslt/branches/upstream/1.1.16/vms/build_xslt.com
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/vms/build_xslt.com	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/vms/build_xslt.com	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,342 @@
+$! BUILD_XSLT.COM
+$!
+$! Build the XSLT library
+$!
+$! Arguments:
+$!
+$!	p1	- "DEBUG" is you want to build with debug
+$!
+$! This package requires libxml to have already been installed.  You need
+$! to ensure that the logical name LIBXML is defined and points to the 
+$! directory containing libxml's .h files
+$!
+$! This procedure creates the object libraries
+$!
+$!	XML_LIBDIR:LIBXSLT.OLB
+$!	XML_LIBDIR:LIBEXSLT.OLB
+$!
+$! and the program
+$!
+$!	XSLTPROC
+$!
+$! After the library is built, you can link these routines into
+$! your code with the command  
+$!
+$! 	LINK your_modules,XML_LIBDIR:LIBEXSLT/LIB,LIBXSLT/LIBRARY,LIBXML/LIB
+$!
+$! Change History
+$! --------------
+$! Command file author : John A Fotheringham (jaf at jafsoft.com)
+$! Last update         : 2 Nov 2001
+$! 
+$!- configuration -------------------------------------------------------------
+$!
+$!- compile command.
+$!
+$   cc_opts = "/INCLUDE=([],XML_SRCDIR:,[-.libxslt])/NAMES=(SHORTENED)/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS"
+$!
+$   if p1.eqs."DEBUG"
+$   then
+$     debug = "Y"
+$     cc_command = "CC''cc_opts'/DEBUG/NOOPTIMIZE/LIST/SHOW=ALL"
+$   else
+$     debug = "N"
+$     cc_command = "CC''cc_opts'"
+$   endif
+$!
+$!- configure multiple build passes for each library. -------------------------
+$!
+$!  For each pass:
+$!
+$!  "libname" is the name of the library or module being created
+$!
+$!  "progname" is the name of the program being created
+$!
+$!  "src" is the list of sources to be built into the library  or program
+$!	- This should be compared to the definition of 
+$!	  "<NAME>_la_SOURCES" in the MAKEFILE.IN file in 
+$!	  corresponding directory.
+$!
+$   num_passes = 3	! two libraries and a program
+$!
+$!- pass 1 - library LIBXSLT
+$!
+$   libname_1  = "LIBXSLT"
+$   h_file_1   = "xslt.h"
+$   progname_1 = ""
+$!
+$   ! see "libxslt_la_SOURCES" in [.libxslt]makefile.in
+$   src_1 = "xslt.c xsltutils.c pattern.c templates.c variables.c keys.c"
+$   src_1 = src_1 + " numbers.c extensions.c extra.c functions.c"
+$   src_1 = src_1 + " namespaces.c imports.c attributes.c documents.c"
+$   src_1 = src_1 + " preproc.c transform.c security.c"
+$!
+$!- pass 2 - library LIBEXSLT
+$!
+$   libname_2  = "LIBEXSLT"
+$   h_file_2   = "exslt.h"
+$   progname_2 = ""
+$!
+$   ! see "libexslt_la_SOURCES" in [.libexslt]makefile.in
+$   src_2   = "exslt.c common.c math.c sets.c functions.c strings.c date.c saxon.c dynamic.c"
+$!
+$!- pass 3 - program XSLTPROC
+$!
+$   libname_3  = ""
+$   h_file_3   = ""
+$   progname_3 = "XSLTPROC"
+$!
+$   ! see "xsltproc_SOURCES" in [.xsltproc]makefile.in
+$   src_3   = "xsltproc.c"
+$!
+$!- set up and check logicals  -----------------------------------------------
+$!
+$!  XML_LIBDIR - object library directory
+$!  XML_SRCDIR - top-level build directory of libxml package -- needed for config.h and trio.h
+$!  LIBXML - source directory containing .h files for libxml package
+$!
+$   if f$trnlnm("XML_LIBDIR").eqs.""
+$   then
+$     on error then continue
+$     globfile = f$search("[--...]libxml.olb")
+$     if globfile.eqs.""
+$     then
+$       write sys$output ""
+$       write sys$output "	You need to define the XML_LIBDIR logical name to"
+$       write sys$output "	point to the directory containing your object"
+$       write sys$output "	libraries.  This should already contain LIBXML.OLB"
+$       write sys$output "	from the libxml package, and will be the directory"
+$       write sys$output "	the new LIBXSLT.OLB library will be placed in"
+$       write sys$output ""
+$       exit
+$     else
+$	srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY")
+$	define/process XML_LIBDIR "''srcdir'"
+$       write sys$output "Defining XML_LIBDIR as ""''srcdir'"""
+$     endif
+$   endif
+$!
+$   if f$trnlnm("libxml").eqs.""
+$   then
+$     ! look for globals.h in a directory installed paralle to this one
+$     on error then continue
+$     globfile = f$search("[--...]globals.h")
+$     if globfile.eqs.""
+$     then
+$       write sys$output ""
+$       write sys$output "	You need to define a LIBXML logical directory to"
+$       write sys$output "	point to the directory containing the .h files"
+$       write sys$output "	for the libxml package"
+$       write sys$output ""
+$       exit
+$     else
+$	srcdir = f$element(0,"]",globfile)+ "]"
+$	define/process LIBXML "''srcdir'"
+$       write sys$output "Defining LIBXML as ""''srcdir'"""
+$     endif
+$   endif
+$!
+$   if f$trnlnm("XML_SRCDIR").eqs.""
+$   then
+$     globfile = f$search("[--...]globals.c")
+$     if globfile.eqs.""
+$     then
+$	write sys$output "Can't locate globals.c.  You need to manually define a XML_SRCDIR logical"
+$	exit
+$     else
+$	srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY")
+$	define/process XML_SRCDIR "''srcdir'"
+$       write sys$output "Defining XML_SRCDIR as ""''srcdir'"""
+$     endif
+$   endif
+$!
+$!- set up some working logicals -------------------
+$!
+$ pass_no = 1
+$ set_pass_logical:
+$!
+$   if pass_no.le.num_passes
+$   then
+$!
+$     Libname  = libname_'pass_no'
+$     progname = progname_'pass_no'
+$     if libname.nes.""
+$     then
+$       logname  = "''libname'_SRCDIR"
+$     else
+$       logname  = "''progname'_SRCDIR"
+$     endif
+$     findfile = f$element(0," ",src_'pass_no')
+$!
+$!--- set up a source directory logical
+$!
+$     if f$trnlnm("''logname'").eqs.""
+$     then
+$       ! look for the target file in a parallel subdirectory
+$       globfile = f$search("[-...]''findfile'")
+$       if globfile.eqs.""
+$       then
+$  	  write sys$output "Can't locate ''findfile'.  You need to manually define a ''logname' logical"
+$	  exit
+$       else
+$  	  srcdir = f$element(0,"]",globfile)+ "]"
+$	  define/process 'logname' "''srcdir'"
+$         write sys$output "Defining ''logname' as ""''srcdir'"""
+$       endif
+$     endif
+$!
+$!--- if it's a library, set up a logical pointing to the .h files
+$!
+$     if libname.nes."" 
+$     then
+$	if f$trnlnm("''libname'").eqs."" 
+$       then 
+$         ! look for the target .h file in a parallel subdirectory
+$  	  h_file = h_file_'pass_no'
+$         globfile = f$search("[-...]''h_file'")
+$         if globfile.eqs.""
+$         then
+$	    write sys$output "Can't locate ''h_file'.  You need to manually define a ''libname' logical"
+$	    exit
+$         else
+$	    includedir = f$element(0,"]",globfile)+ "]"
+$	    define/process 'libname' "''includedir'"
+$           write sys$output "Defining ''libname' as ""''includedir'"""
+$	  endif
+$       endif
+$     endif
+$!
+$     pass_no = pass_no +1
+$     goto set_pass_logical
+$!
+$   endif	! for each pass
+$!
+$!- set up error handling (such as it is) -------------------------------------
+$!
+$ exit_status = 1
+$ saved_default = f$environment("default")
+$ on error then goto ERROR_OUT 
+$ on control_y then goto ERROR_OUT 
+$!
+$ goto start_here
+$ start_here:	  ! move this line to debug/rerun parts of this command file
+$!
+$!- compile modules into the library ------------------------------------------
+$!
+$!
+$ pass_no = 1	! make three passes, one for each library, one for XSLTPROC
+$ pass_loop:
+$!
+$ if pass_no.le.num_passes
+$ then
+$   Libname  = libname_'pass_no'
+$   progname = progname_'pass_no'
+$   if libname.nes.""
+$   then
+$     logname  = "''libname'_SRCDIR"
+$     pass_description = "the XML_LIBDIR:''libname'.OLB object library"
+$   else
+$     logname  = "''progname'_SRCDIR"
+$     pass_description = "the programs in ''progname'"
+$   endif
+$   src  = src_'pass_no'
+$!
+$!- create the library if need
+$!
+$   if libname.nes."" 
+$   then
+$     if f$search("XML_LIBDIR:''libname'.OLB").eqs."" 
+$     then
+$       write sys$output "Creating new object library XML_LIBDIR:''libname'.OLB..."
+$       library/create XML_LIBDIR:'libname'.OLB
+$     endif
+$   endif
+$!
+$!- move to the source directory 
+$!
+$   set def 'logname'
+$!
+$!- define the library and link commands (link command not used as is)
+$!
+$   if libname.nes.""
+$   then
+$     lib_command  = "LIBRARY/REPLACE XML_LIBDIR:''libname'.OLB"
+$     link_command = ""
+$   else
+$     lib_command  = ""
+$     link_command = "LINK"
+$   endif
+$!
+$   write sys$output ""
+$   write sys$output "Building ''pass_description'
+$   write sys$output ""
+$!
+$   s_no = 0
+$   src = f$edit(src,"COMPRESS")
+$!
+$ source_loop:
+$!
+$     next_source = f$element (S_no," ",src)
+$     if next_source.nes."" .and. next_source.nes." "
+$     then
+$       call build 'next_source'
+$       s_no = s_no + 1
+$       goto source_loop
+$     endif
+$!
+$     pass_no = pass_no + 1
+$     goto pass_loop
+$!
+$   endif	! for each pass
+$!
+$!- Th-th-th-th-th-that's all folks! ------------------------------------------
+$!
+$EXIT_OUT:
+$!
+$ set def 'saved_default
+$ exit 'exit_status
+$!
+$
+$ERROR_OUT:
+$ exit_status = $status
+$ write sys$output "''f$message(exit_status)'"
+$ goto EXIT_OUT
+$!
+$!- the BUILD subroutine.  Compile then insert into library or link as required
+$!
+$BUILD: subroutine
+$   on warning then goto EXIT_BUILD
+$   source_file = p1
+$   name = f$element(0,".",source_file)
+$   object_file = f$fao("XML_LIBDIR:!AS.OBJ",name)
+$!
+$!- compile
+$   write sys$output "Compiling ",p1,p2,"..."
+$   cc_command /object='object_file 'source_file' 'p2'
+$!
+$!- insert into library if command defined
+$!
+$   if lib_command.nes.""  
+$   then 
+$     lib_command 'object_file'
+$     delete/nolog 'object_file';*
+$   endif
+$!
+$!- link module if command defined
+$!
+$   if link_command.nes."" 
+$   then
+$	text = f$element(0,".",p1)	! lose the ".c"
+$	write sys$output "Linking ",text,"..."
+$	dbgopts = ""
+$	if debug then dbgopts = "/DEBUG"
+$	link_command'dbgopts' 'object_file',-
+      		XML_LIBDIR:libexslt/lib,-
+      		XML_LIBDIR:libxslt/lib,-
+      		XML_LIBDIR:libxml/library
+$   endif
+$!
+$EXIT_BUILD:
+$   exit $status
+$!
+$endsubroutine

Added: packages/libxslt/branches/upstream/1.1.16/vms/diffs.vms
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/vms/diffs.vms	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/vms/diffs.vms	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,34 @@
+---------------------------------------------------------------------------
+EXTENSIONS.H
+142,154c142
+< 
+< #if defined(VMS) || defined(__VMS)
+< 
+<   xsltPreComputeFunction
+< 	xsltExtModElemPreComputeLookup
+< 					(const xmlChar *name,
+< 					 const xmlChar *URI);
+< 
+<   #define xsltExtModuleElementPreComputeLookup xsltExtModElemPreComputeLookup
+< 
+< #else
+< 
+<   xsltPreComputeFunction
+---
+> xsltPreComputeFunction
+158,159d145
+< #endif
+< 
+
+
+---------------------------------------------------------------------------
+EXTENSIONS.C
+1142,1146d1141
+< #if defined(VMS) || defined(__VMS)
+<   xsltPreComputeFunction
+<     xsltExtModElemPreComputeLookup (const xmlChar *name,
+< 				      const xmlChar *URI) {
+< #else
+1150,1151d1144
+< #endif
+< 

Added: packages/libxslt/branches/upstream/1.1.16/vms/readme.vms
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/vms/readme.vms	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/vms/readme.vms	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,141 @@
+Building XSLT under OpenVMS
+===========================
+
+Here's a summary of the issues I encountered when building XSLT under
+VMS.  I'd previously done the same for the LIBXML package, on which 
+XSLT depends.
+
+I present this list "as is" to hopefully act as a guide to anyone 
+having similar problems in the future.
+
+That's it.  Good luck!
+
+John A Fotheringham (jaf at jafsoft.com)
+November 2001
+
+
+Installation kit
+----------------
+
+- File attributes. When downloading essentially a Unix distribution, 
+  some of the file attributes may not be correct... especially those 
+  in the [.VMS] subdirectory.  In EDT you could see line feeds and 
+  carriage returns as <LF><CR> etc.  To correct this use the command
+
+	$ set file <filespec> /attr=rfm=stm
+
+  This sets the record format to be "stream".  Other variants may be 
+  used instead depending on how you got the files onto your system.  
+  Files will look okay in an EDT editor once the attributes are set.  
+  Without this the command file may not run correctly, since it may 
+  be interpreted as a single line.
+
+- VMS-specific files are in a [.VMS] directory.  If you've found 
+  this file then you already know this :-)  This directory contains
+
+    BUILD_XSLT.COM - a build command file
+    README.VMS     - these notes
+
+- Don't execute BUILD_LIBXML.COM until you've done all the 
+  following
+
+  - read these notes
+  - define the logicals XMLOLB and LIBXML
+  - copy CONFIG.H to [.libxslt] and [.libexslt]
+  - reviewed the configuration section of BUILD_XSLT.COM, and in 
+    particular update the module lists in line with MAKEFILE
+  - re-read these notes :-p
+
+  instructions for all these steps are below.
+
+- the XSLT package requires the LIBXML package to have been 
+  previously been installed.  The following logicals should be
+  defined
+
+  LIBXML - the directory containing LIBXML's .h files
+  XMLOLB - the directory to contain both the LIBXML and XSLT 
+           object libraries
+  
+- you'll need to copy config.h into the [.libxslt] and [.libexslt]
+  directories.  If in the future a VMS-specific version is created,
+  use [.vms]config.vms instead.
+
+- The command file BUILD_XSLT.COM will do the following
+
+  - setup and test some logicals
+  - set def to the source directory
+  - compile modules and place them into a LIBXSLT.OLB library
+  - compile modules and place them into a LIBEZSLT.OLB library
+  - compile and link the XSLTPROC program
+  - set def back to the original directory (i.e. if it fails you 
+    might not be where you started :-)
+
+  before running this command file review the configuration segment 
+  at the top.  In particular compare the lists of modules with those 
+  in the most recent version of MAKEFILE.IN files sound in the source
+  directories.  Instructions are contained in the command file itself.
+
+
+The TRIO package
+----------------
+- The libxml package uses a sub-package TRIO to provide some 
+  functions not naturally available under VMS.  These include support 
+  for infinite and undefined numbers, and specialised print functions 
+  like "snprintf"
+
+  To build this software we need to add
+
+	/IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE 
+
+  to the compile command for xsltutils, and to any main program
+  that uses this functionality.  BUILD_XSLT.COM should do this 
+  for you.
+
+  Without this you are likely to get run-time errors like this
+
+    %SYSTEM-F-HPARITH, high performance arithmetic trap, Imask=00000000, 
+      Fmask=00000 400, summary=02, PC=000000000006A330, PS=0000001B
+    -SYSTEM-F-FLTINV, floating invalid operation, PC=000000000006A330, 
+      PS=0000001B
+
+  If this occurs you'll need to locate the modules that need the 
+  above switches applied
+
+
+Compiler and linker errors
+--------------------------
+
+- with respect to the TRIO package you'll get the error 
+
+    "no main module for UNDERFLOW_TO_ZERO"
+
+  You can suppress this "expected" messages by using the compile command
+
+    $ CC /WARN=DISABLE=(NOMAINUFLO)
+
+- the Linker will report the following error
+
+      %LINK-W-MULDEF, symbol DECC$STRERROR multiply defined
+        in module DECC$SHR file SYS$COMMON:[SYSLIB]DECC$SHR.EXE;5
+
+  This is complaining that DECC$STRERROR is multiply defined, which 
+  in turn is because this system symbol is getting added to LIBXML.OLB 
+  when strio.c was compiled in the libxml package.
+
+  I'm not sure what the solution for this is, but this is a fairly 
+  benign error.
+
+
+Changes made to the codebase
+----------------------------
+
+- In the module extensions.c the name 
+
+	xsltExtModuleElementPreComputeLookup 
+
+  is too long (more than 31 characters).  The solution has been 
+  to rename it to a shorter name on VMS builds, and to then 
+  create a #define that maps the longer name to the shorter name, 
+  so that all references to the longer name will work.
+
+  You may need to repeat this exercise with any future modules added.

Added: packages/libxslt/branches/upstream/1.1.16/win32/.cvsignore
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/.cvsignore	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/.cvsignore	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+Makefile
+config.*
+depends.*
+int.*
+bin.*
+*.win32
+*.win32.zip

Added: packages/libxslt/branches/upstream/1.1.16/win32/Makefile.mingw
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/Makefile.mingw	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/Makefile.mingw	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,304 @@
+# Makefile for libxslt, specific for Windows, GCC (mingw) and GNU make.
+#
+# Take a look at the beginning and modify the variables to suit your 
+# environment. Having done that, you can do a
+#
+# make [all]     to build the libxslt and the accompanying utilities.
+# make clean     to remove all compiler output files and return to a
+#                clean state.
+# make rebuild   to rebuild everything from scratch. This basically does
+#                a 'make clean' and then a 'make all'.
+# make install   to install the library and its header files.
+#
+# November 2002, Igor Zlatkovic <igor at zlatkovic.com>
+
+AUTOCONF = .\config.mingw
+include $(AUTOCONF)
+
+# There should never be a need to modify anything below this line.
+# ----------------------------------------------------------------
+
+BASEDIR = ..
+XSLT_SRCDIR = $(BASEDIR)\libxslt
+EXSLT_SRCDIR = $(BASEDIR)\libexslt
+UTILS_SRCDIR = $(BASEDIR)\xsltproc
+BINDIR = bin.mingw
+
+# Names of various input and output components.
+XSLT_NAME = xslt
+XSLT_BASENAME = lib$(XSLT_NAME)
+XSLT_SO = $(XSLT_BASENAME).dll
+XSLT_IMP = $(XSLT_BASENAME).lib
+XSLT_A = $(XSLT_BASENAME).a
+EXSLT_NAME = exslt
+EXSLT_BASENAME = lib$(EXSLT_NAME)
+EXSLT_SO = $(EXSLT_BASENAME).dll
+EXSLT_IMP = $(EXSLT_BASENAME).lib
+EXSLT_A = $(EXSLT_BASENAME).a
+
+# Places where intermediate files produced by the compiler go
+XSLT_INTDIR = int.xslt.mingw
+XSLT_INTDIR_A = int.xslta.mingw
+EXSLT_INTDIR = int.exslt.mingw
+EXSLT_INTDIR_A = int.exslta.mingw
+UTILS_INTDIR = int.utils.mingw
+
+# The preprocessor and its options.
+CPP = gcc.exe -E
+CPPFLAGS += 
+
+# The compiler and its options.
+CC = gcc.exe
+CFLAGS += -DWIN32 -D_WINDOWS -D_MBCS
+CFLAGS += -I$(BASEDIR) -I$(XSLT_SRCDIR) -I$(INCPREFIX)
+
+# The linker and its options.
+LD = gcc.exe
+LDFLAGS += -Wl,-L,$(BINDIR) -Wl,-L,$(LIBPREFIX)
+LIBS = -lwsock32
+
+# The archiver and its options.
+AR = ar.exe
+ARFLAGS = -r
+
+# Optimisation and debug symbols.
+ifeq ($(DEBUG),1)
+CFLAGS += -D_DEBUG -g
+LDFLAGS += 
+else
+CFLAGS += -DNDEBUG -O2 
+LDFLAGS += 
+endif
+
+# Libxslt object files.
+XSLT_OBJS = $(XSLT_INTDIR)/attributes.o\
+	$(XSLT_INTDIR)/documents.o\
+	$(XSLT_INTDIR)/extensions.o\
+	$(XSLT_INTDIR)/extra.o\
+	$(XSLT_INTDIR)/functions.o\
+	$(XSLT_INTDIR)/imports.o\
+	$(XSLT_INTDIR)/keys.o\
+	$(XSLT_INTDIR)/namespaces.o\
+	$(XSLT_INTDIR)/numbers.o\
+	$(XSLT_INTDIR)/pattern.o\
+	$(XSLT_INTDIR)/preproc.o\
+	$(XSLT_INTDIR)/security.o\
+	$(XSLT_INTDIR)/templates.o\
+	$(XSLT_INTDIR)/transform.o\
+	$(XSLT_INTDIR)/variables.o\
+	$(XSLT_INTDIR)/xslt.o\
+	$(XSLT_INTDIR)/xsltutils.o
+XSLT_SRCS = $(subst .o,.c,$(subst $(XSLT_INTDIR),$(XSLT_SRCDIR),$(XSLT_OBJS)))
+
+# Static libxslt object files.
+XSLT_OBJS_A = $(XSLT_INTDIR_A)/attributes.o\
+	$(XSLT_INTDIR_A)/documents.o\
+	$(XSLT_INTDIR_A)/extensions.o\
+	$(XSLT_INTDIR_A)/extra.o\
+	$(XSLT_INTDIR_A)/functions.o\
+	$(XSLT_INTDIR_A)/imports.o\
+	$(XSLT_INTDIR_A)/keys.o\
+	$(XSLT_INTDIR_A)/namespaces.o\
+	$(XSLT_INTDIR_A)/numbers.o\
+	$(XSLT_INTDIR_A)/pattern.o\
+	$(XSLT_INTDIR_A)/preproc.o\
+	$(XSLT_INTDIR_A)/security.o\
+	$(XSLT_INTDIR_A)/templates.o\
+	$(XSLT_INTDIR_A)/transform.o\
+	$(XSLT_INTDIR_A)/variables.o\
+	$(XSLT_INTDIR_A)/xslt.o\
+	$(XSLT_INTDIR_A)/xsltutils.o
+
+# Libexslt object files.
+EXSLT_OBJS = $(EXSLT_INTDIR)/common.o\
+	$(EXSLT_INTDIR)/crypto.o\
+	$(EXSLT_INTDIR)/date.o\
+	$(EXSLT_INTDIR)/exslt.o\
+	$(EXSLT_INTDIR)/functions.o\
+	$(EXSLT_INTDIR)/math.o\
+	$(EXSLT_INTDIR)/saxon.o\
+	$(EXSLT_INTDIR)/sets.o\
+	$(EXSLT_INTDIR)/strings.o\
+	$(EXSLT_INTDIR)/dynamic.o
+EXSLT_SRCS = $(subst .o,.c,$(subst $(EXSLT_INTDIR)/,$(EXSLT_SRCDIR)/,$(EXSLT_OBJS)))
+
+# Static libexslt object files.
+EXSLT_OBJS_A = $(EXSLT_INTDIR_A)/common.o\
+	$(EXSLT_INTDIR_A)/crypto.o\
+	$(EXSLT_INTDIR_A)/date.o\
+	$(EXSLT_INTDIR_A)/exslt.o\
+	$(EXSLT_INTDIR_A)/functions.o\
+	$(EXSLT_INTDIR_A)/math.o\
+	$(EXSLT_INTDIR_A)/saxon.o\
+	$(EXSLT_INTDIR_A)/sets.o\
+	$(EXSLT_INTDIR_A)/strings.o\
+	$(EXSLT_INTDIR_A)/dynamic.o
+
+
+# Xsltproc and friends executables.
+UTILS = $(BINDIR)/xsltproc.exe
+
+all : dep libxslt libxslta libexslt libexslta utils
+
+libxslt : $(BINDIR)\$(XSLT_SO) 
+
+libxslta : $(BINDIR)\$(XSLT_A)
+
+libexslt : $(BINDIR)\$(EXSLT_SO) 
+
+libexslta : $(BINDIR)\$(EXSLT_A)
+
+utils : $(UTILS)
+
+clean :
+	cmd.exe /C if exist $(XSLT_INTDIR) rmdir /S /Q $(XSLT_INTDIR)
+	cmd.exe /C if exist $(XSLT_INTDIR_A) rmdir /S /Q $(XSLT_INTDIR_A)
+	cmd.exe /C if exist $(EXSLT_INTDIR) rmdir /S /Q $(EXSLT_INTDIR)
+	cmd.exe /C if exist $(EXSLT_INTDIR_A) rmdir /S /Q $(EXSLT_INTDIR_A)
+	cmd.exe /C if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR)
+	cmd.exe /C if exist $(BINDIR) rmdir /S /Q $(BINDIR)
+	cmd.exe /C if exist depends.mingw del depends.mingw
+
+rebuild : clean all
+
+distclean : clean
+	cmd.exe /C if exist config.* del config.*
+	cmd.exe /C if exist depends.* del depends.*
+	cmd.exe /C if exist Makefile del Makefile
+
+install-libs : all
+	cmd.exe /C if not exist $(INCPREFIX)\$(XSLT_BASENAME) mkdir $(INCPREFIX)\$(XSLT_BASENAME)
+	cmd.exe /C if not exist $(INCPREFIX)\$(EXSLT_BASENAME) mkdir $(INCPREFIX)\$(EXSLT_BASENAME)
+	cmd.exe /C if not exist $(BINPREFIX) mkdir $(BINPREFIX)
+	cmd.exe /C if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)
+	cmd.exe /C copy $(XSLT_SRCDIR)\*.h $(INCPREFIX)\$(XSLT_BASENAME)
+	cmd.exe /C copy $(EXSLT_SRCDIR)\*.h $(INCPREFIX)\$(EXSLT_BASENAME)
+	cmd.exe /C copy $(BINDIR)\$(XSLT_SO) $(SOPREFIX)
+	cmd.exe /C copy $(BINDIR)\$(XSLT_A) $(LIBPREFIX)
+	cmd.exe /C copy $(BINDIR)\$(XSLT_IMP) $(LIBPREFIX)
+	cmd.exe /C copy $(BINDIR)\$(EXSLT_SO) $(SOPREFIX)
+	cmd.exe /C copy $(BINDIR)\$(EXSLT_A) $(LIBPREFIX)
+	cmd.exe /C copy $(BINDIR)\$(EXSLT_IMP) $(LIBPREFIX)
+
+install : install-libs
+	cmd.exe /C copy $(BINDIR)\*.exe $(BINPREFIX)
+
+install-dist : install
+
+# This is a target for me, to make a binary distribution. Not for the public use,
+# keep your hands off :-)
+BDVERSION = $(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION).$(LIBXSLT_MICRO_VERSION)
+BDPREFIX = $(XSLT_BASENAME)-$(BDVERSION).win32
+bindist : all
+	$(MAKE) PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)/bin install-dist
+	cscript //NoLogo configure.js genreadme $(XSLT_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt
+
+
+# Creates the dependency files
+dep :
+	$(CC) $(subst \,/,$(CFLAGS)) -MM $(subst \,/,$(XSLT_SRCS)) $(subst \,/,$(EXSLT_SRCS)) > depends.mingw
+
+
+# Makes the compiler output directory.
+$(BINDIR) :
+	cmd.exe /C if not exist $(BINDIR) mkdir $(BINDIR)
+
+
+# Makes the libxslt intermediate directory.
+$(XSLT_INTDIR) :
+	cmd.exe /C if not exist $(XSLT_INTDIR) mkdir $(XSLT_INTDIR)
+
+# Makes the static libxslt intermediate directory.
+$(XSLT_INTDIR_A) :
+	cmd.exe /C if not exist $(XSLT_INTDIR_A) mkdir $(XSLT_INTDIR_A)
+
+# An implicit rule for libxslt compilation.
+$(XSLT_INTDIR)/%.o : $(XSLT_SRCDIR)/%.c
+	$(CC) $(CFLAGS) -c -o $@ $<
+
+# An implicit rule for static libxslt compilation.
+$(XSLT_INTDIR_A)/%.o : $(XSLT_SRCDIR)/%.c
+	$(CC) $(CFLAGS) -DLIBXML_STATIC -DLIBXSLT_STATIC -o $@ -c $<
+
+# Compiles libxslt source. Uses the implicit rule for commands.
+$(XSLT_OBJS) : $(XSLT_INTDIR)
+
+# Compiles static libxslt source. Uses the implicit rule for commands.
+$(XSLT_OBJS_A) : $(XSLT_INTDIR_A)
+
+# Creates the libxslt shared object.
+XSLTSO_LDFLAGS = $(LDFLAGS) -shared -Wl,--dll -Wl,--out-implib,$(BINDIR)/$(XSLT_IMP)
+XSLTSO_LDFLAGS += -Wl,--major-image-version,$(LIBXSLT_MAJOR_VERSION)
+XSLTSO_LDFLAGS += -Wl,--minor-image-version,$(LIBXSLT_MINOR_VERSION)
+$(BINDIR)\$(XSLT_SO) : $(BINDIR) $(XSLT_OBJS) 
+	$(LD) $(XSLTSO_LDFLAGS) -o $(BINDIR)/$(XSLT_SO) $(XSLT_OBJS) $(LIBS) -llibxml2
+
+# Creates the libxslt archive.
+$(BINDIR)\$(XSLT_A) : $(BINDIR) $(XSLT_OBJS_A)
+	$(AR) $(ARFLAGS) $(BINDIR)/$(XSLT_A) $(XSLT_OBJS_A)
+
+
+# Creates the libexslt intermediate directory.
+$(EXSLT_INTDIR) :
+	cmd.exe /C if not exist $(EXSLT_INTDIR) mkdir $(EXSLT_INTDIR)
+
+# Creates the static libexslt intermediate directory.
+$(EXSLT_INTDIR_A) :
+	cmd.exe /C if not exist $(EXSLT_INTDIR_A) mkdir $(EXSLT_INTDIR_A)
+
+# An implicit rule for libexslt compilation.
+$(EXSLT_INTDIR)/%.o : $(EXSLT_SRCDIR)/%.c
+	$(CC) $(CFLAGS) -I$(EXSLT_SRCDIR) -o $@ -c $<
+
+# An implicit rule for static libexslt compilation.
+$(EXSLT_INTDIR_A)/%.o : $(EXSLT_SRCDIR)/%.c
+	$(CC) $(CFLAGS) -DLIBXML_STATIC -DLIBXSLT_STATIC -DLIBEXSLT_STATIC \
+		-I$(EXSLT_SRCDIR) -o $@ -c $<
+
+# Compiles libxslt source. Uses the implicit rule for commands.
+$(EXSLT_OBJS) : $(EXSLT_INTDIR)
+
+# Compiles libxslt source. Uses the implicit rule for commands.
+$(EXSLT_OBJS_A) : $(EXSLT_INTDIR_A)
+
+# Creates the libexslt shared object.
+EXSLTSO_LDFLAGS = $(LDFLAGS) -shared -Wl,--dll -Wl,--out-implib,$(BINDIR)/$(EXSLT_IMP)
+EXSLTSO_LDFLAGS += -Wl,--major-image-version,$(LIBEXSLT_MAJOR_VERSION)
+EXSLTSO_LDFLAGS += -Wl,--minor-image-version,$(LIBEXSLT_MINOR_VERSION)
+$(BINDIR)\$(EXSLT_SO) : $(BINDIR) $(EXSLT_OBJS) libxslt
+	$(LD) $(EXSLTSO_LDFLAGS) -o $(BINDIR)/$(EXSLT_SO) $(EXSLT_OBJS) $(LIBS) -l$(XSLT_BASENAME) -llibxml2
+
+# Creates the libexslt archive.
+$(BINDIR)\$(EXSLT_A) : $(BINDIR) $(EXSLT_OBJS_A) libxslta
+	$(AR) $(ARFLAGS) $(BINDIR)\$(EXSLT_A) $(EXSLT_OBJS_A)
+
+
+# Creates the utils intermediate directory.
+$(UTILS_INTDIR) :
+	cmd.exe /C if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR)
+
+# An implicit rule for xsltproc and friends.
+APPLIBS = $(LIBS)
+APPLIBS += -llibxml2 -l$(XSLT_BASENAME) -l$(EXSLT_BASENAME)
+APP_LDFLAGS = $(LDFLAGS)
+APP_LDFLAGS += -Wl,--major-image-version,$(LIBXSLT_MAJOR_VERSION)
+APP_LDFLAGS += -Wl,--minor-image-version,$(LIBXSLT_MINOR_VERSION)
+ifeq ($(STATIC),1)
+CFLAGS += -DLIBXML_STATIC -DLIBXSLT_STATIC -DLIBEXSLT_STATIC
+APP_LDFLAGS += -Bstatic
+$(BINDIR)/%.exe : $(UTILS_SRCDIR)/%.c
+	$(CC) $(CFLAGS) -o $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -c $< 
+	$(LD) $(APP_LDFLAGS) -o $@ $(APPLIBS) $(subst .c,.o,$(UTILS_INTDIR)/$(<F))
+else
+$(BINDIR)/%.exe : $(UTILS_SRCDIR)/%.c 
+	$(CC) $(CFLAGS) -o $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -c $< 
+	$(LD) $(APP_LDFLAGS) -o $@ $(APPLIBS) $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) 
+endif
+
+# Builds xsltproc and friends. Uses the implicit rule for commands.
+$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxslt libxslta libexslt libexslta
+
+
+# Source dependencies, just how?
+#-include depends.mingw
+

Added: packages/libxslt/branches/upstream/1.1.16/win32/Makefile.msvc
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/Makefile.msvc	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/Makefile.msvc	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,355 @@
+# Makefile for libxslt, specific for Windows, MSVC and NMAKE.
+#
+# Take a look at the beginning and modify the variables to suit your 
+# environment. Having done that, you can do a
+#
+# nmake [all]     to build the libxslt and the accompanying utilities.
+# nmake clean     to remove all compiler output files and return to a
+#                 clean state.
+# nmake rebuild   to rebuild everything from scratch. This basically does
+#                 a 'nmake clean' and then a 'nmake all'.
+# nmake install   to install the library and its header files.
+#
+# March 2002, Igor Zlatkovic <igor at zlatkovic.com>
+
+AUTOCONF = .\config.msvc
+!include $(AUTOCONF)
+
+# There should never be a need to modify anything below this line.
+# ----------------------------------------------------------------
+
+BASEDIR = ..
+XSLT_SRCDIR = $(BASEDIR)\libxslt
+EXSLT_SRCDIR = $(BASEDIR)\libexslt
+UTILS_SRCDIR = $(BASEDIR)\xsltproc
+BINDIR = bin.msvc
+
+# Names of various input and output components.
+XSLT_NAME = xslt
+XSLT_BASENAME = lib$(XSLT_NAME)
+XSLT_SO = $(XSLT_BASENAME).dll
+XSLT_IMP = $(XSLT_BASENAME).lib
+XSLT_DEF = $(XSLT_BASENAME).def
+XSLT_A = $(XSLT_BASENAME)_a.lib
+EXSLT_NAME = exslt
+EXSLT_BASENAME = lib$(EXSLT_NAME)
+EXSLT_SO = $(EXSLT_BASENAME).dll
+EXSLT_IMP = $(EXSLT_BASENAME).lib
+EXSLT_DEF = $(EXSLT_BASENAME).def
+EXSLT_A = $(EXSLT_BASENAME)_a.lib
+
+# Places where intermediate files produced by the compiler go
+XSLT_INTDIR = int.xslt.msvc
+XSLT_INTDIR_A = int.xslta.msvc
+EXSLT_INTDIR = int.exslt.msvc
+EXSLT_INTDIR_A = int.exslta.msvc
+UTILS_INTDIR = int.utils.msvc
+
+# The preprocessor and its options.
+CPP = cl.exe /EP
+CPPFLAGS = /nologo
+
+# The compiler and its options.
+CC = cl.exe
+CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /W3 $(CRUNTIME) /D "_REENTRANT"
+CFLAGS = $(CFLAGS) /I$(BASEDIR) /I$(XSLT_SRCDIR) /I$(INCPREFIX)
+
+# The linker and its options.
+LD = link.exe
+LDFLAGS = /nologo
+LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX)
+LIBS = wsock32.lib
+
+# The archiver and its options.
+AR = lib.exe
+ARFLAGS = /nologo
+
+# Optimisation and debug symbols.
+!if "$(DEBUG)" == "1"
+CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7
+LDFLAGS = $(LDFLAGS) /DEBUG
+!else
+CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 
+LDFLAGS = $(LDFLAGS) /OPT:NOWIN98
+!endif
+
+# Libxslt object files.
+XSLT_OBJS = $(XSLT_INTDIR)\attributes.obj\
+	$(XSLT_INTDIR)\documents.obj\
+	$(XSLT_INTDIR)\extensions.obj\
+	$(XSLT_INTDIR)\extra.obj\
+	$(XSLT_INTDIR)\functions.obj\
+	$(XSLT_INTDIR)\imports.obj\
+	$(XSLT_INTDIR)\keys.obj\
+	$(XSLT_INTDIR)\namespaces.obj\
+	$(XSLT_INTDIR)\numbers.obj\
+	$(XSLT_INTDIR)\pattern.obj\
+	$(XSLT_INTDIR)\preproc.obj\
+	$(XSLT_INTDIR)\security.obj\
+	$(XSLT_INTDIR)\templates.obj\
+	$(XSLT_INTDIR)\transform.obj\
+	$(XSLT_INTDIR)\variables.obj\
+	$(XSLT_INTDIR)\xslt.obj\
+	$(XSLT_INTDIR)\xsltutils.obj\
+	$(XSLT_INTDIR)\attrvt.obj
+
+# Static libxslt object files.
+XSLT_OBJS_A = $(XSLT_INTDIR_A)\attributes.obj\
+	$(XSLT_INTDIR_A)\documents.obj\
+	$(XSLT_INTDIR_A)\extensions.obj\
+	$(XSLT_INTDIR_A)\extra.obj\
+	$(XSLT_INTDIR_A)\functions.obj\
+	$(XSLT_INTDIR_A)\imports.obj\
+	$(XSLT_INTDIR_A)\keys.obj\
+	$(XSLT_INTDIR_A)\namespaces.obj\
+	$(XSLT_INTDIR_A)\numbers.obj\
+	$(XSLT_INTDIR_A)\pattern.obj\
+	$(XSLT_INTDIR_A)\preproc.obj\
+	$(XSLT_INTDIR_A)\security.obj\
+	$(XSLT_INTDIR_A)\templates.obj\
+	$(XSLT_INTDIR_A)\transform.obj\
+	$(XSLT_INTDIR_A)\variables.obj\
+	$(XSLT_INTDIR_A)\xslt.obj\
+	$(XSLT_INTDIR_A)\xsltutils.obj\
+	$(XSLT_INTDIR_A)\attrvt.obj
+
+# Libexslt object files.
+EXSLT_OBJS = $(EXSLT_INTDIR)\common.obj\
+	$(EXSLT_INTDIR)\crypto.obj\
+	$(EXSLT_INTDIR)\date.obj\
+	$(EXSLT_INTDIR)\exslt.obj\
+	$(EXSLT_INTDIR)\functions.obj\
+	$(EXSLT_INTDIR)\math.obj\
+	$(EXSLT_INTDIR)\saxon.obj\
+	$(EXSLT_INTDIR)\sets.obj\
+	$(EXSLT_INTDIR)\strings.obj\
+	$(EXSLT_INTDIR)\dynamic.obj
+
+# Static libexslt object files.
+EXSLT_OBJS_A = $(EXSLT_INTDIR_A)\common.obj\
+	$(EXSLT_INTDIR_A)\crypto.obj\
+	$(EXSLT_INTDIR_A)\date.obj\
+	$(EXSLT_INTDIR_A)\exslt.obj\
+	$(EXSLT_INTDIR_A)\functions.obj\
+	$(EXSLT_INTDIR_A)\math.obj\
+	$(EXSLT_INTDIR_A)\saxon.obj\
+	$(EXSLT_INTDIR_A)\sets.obj\
+	$(EXSLT_INTDIR_A)\strings.obj\
+	$(EXSLT_INTDIR_A)\dynamic.obj
+
+
+# Xsltproc and friends executables.
+UTILS = $(BINDIR)\xsltproc.exe
+
+all : libxslt libxslta libexslt libexslta utils
+
+libxslt : $(BINDIR)\$(XSLT_SO) 
+
+libxslta : $(BINDIR)\$(XSLT_A)
+
+libexslt : $(BINDIR)\$(EXSLT_SO) 
+
+libexslta : $(BINDIR)\$(EXSLT_A)
+
+utils : $(UTILS)
+
+clean :
+	if exist $(XSLT_INTDIR) rmdir /S /Q $(XSLT_INTDIR)
+	if exist $(XSLT_INTDIR_A) rmdir /S /Q $(XSLT_INTDIR_A)
+	if exist $(EXSLT_INTDIR) rmdir /S /Q $(EXSLT_INTDIR)
+	if exist $(EXSLT_INTDIR_A) rmdir /S /Q $(EXSLT_INTDIR_A)
+	if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR)
+	if exist $(BINDIR) rmdir /S /Q $(BINDIR)
+
+rebuild : clean all
+
+distclean : clean
+	if exist config.* del config.*
+	if exist Makefile del Makefile
+
+install-libs : all
+	if not exist $(INCPREFIX)\$(XSLT_BASENAME) mkdir $(INCPREFIX)\$(XSLT_BASENAME)
+	if not exist $(INCPREFIX)\$(EXSLT_BASENAME) mkdir $(INCPREFIX)\$(EXSLT_BASENAME)
+	if not exist $(BINPREFIX) mkdir $(BINPREFIX)
+	if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)
+	copy $(XSLT_SRCDIR)\*.h $(INCPREFIX)\$(XSLT_BASENAME)
+	copy $(EXSLT_SRCDIR)\*.h $(INCPREFIX)\$(EXSLT_BASENAME)
+	copy $(BINDIR)\$(XSLT_SO) $(SOPREFIX)
+	copy $(BINDIR)\$(XSLT_A) $(LIBPREFIX)
+	copy $(BINDIR)\$(XSLT_IMP) $(LIBPREFIX)
+	copy $(BINDIR)\$(EXSLT_SO) $(SOPREFIX)
+	copy $(BINDIR)\$(EXSLT_A) $(LIBPREFIX)
+	copy $(BINDIR)\$(EXSLT_IMP) $(LIBPREFIX)
+
+install : install-libs
+	copy $(BINDIR)\*.exe $(BINPREFIX)
+	-copy $(BINDIR)\*.pdb $(BINPREFIX)
+
+install-dist : install
+
+# This is a target for me, to make a binary distribution. Not for the public use,
+# keep your hands off :-)
+BDVERSION = $(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION).$(LIBXSLT_MICRO_VERSION)
+BDPREFIX = $(XSLT_BASENAME)-$(BDVERSION).win32
+bindist : all
+	$(MAKE) /nologo PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)\bin install-dist
+	cscript //NoLogo configure.js genreadme $(XSLT_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt
+
+# Makes the compiler output directory.
+$(BINDIR) :
+	if not exist $(BINDIR) mkdir $(BINDIR)
+
+
+# Makes the libxslt intermediate directory.
+$(XSLT_INTDIR) :
+	if not exist $(XSLT_INTDIR) mkdir $(XSLT_INTDIR)
+
+# Makes the static libxslt intermediate directory.
+$(XSLT_INTDIR_A) :
+	if not exist $(XSLT_INTDIR_A) mkdir $(XSLT_INTDIR_A)
+
+# An implicit rule for libxslt compilation.
+{$(XSLT_SRCDIR)}.c{$(XSLT_INTDIR)}.obj::
+	$(CC) $(CFLAGS) /Fo$(XSLT_INTDIR)\ /c $<
+
+# An implicit rule for static libxslt compilation.
+{$(XSLT_SRCDIR)}.c{$(XSLT_INTDIR_A)}.obj::
+	$(CC) $(CFLAGS) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" \
+		/Fo$(XSLT_INTDIR_A)\ /c $<
+
+# Compiles libxslt source. Uses the implicit rule for commands.
+$(XSLT_OBJS) : $(XSLT_INTDIR)
+
+# Compiles static libxslt source. Uses the implicit rule for commands.
+$(XSLT_OBJS_A) : $(XSLT_INTDIR_A)
+
+# Creates the export definition file (DEF) for libxslt.
+$(XSLT_INTDIR)\$(XSLT_DEF) : $(XSLT_INTDIR) $(XSLT_DEF).src
+	$(CPP) $(CPPFLAGS) $(XSLT_DEF).src > $(XSLT_INTDIR)\$(XSLT_DEF)
+
+# Creates the libxslt shared object.
+$(BINDIR)\$(XSLT_SO) : $(BINDIR) $(XSLT_OBJS) $(XSLT_INTDIR)\$(XSLT_DEF)
+	$(LD) $(LDFLAGS) /DLL \
+		/VERSION:$(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION) \
+		/IMPLIB:$(BINDIR)\$(XSLT_IMP) /OUT:$(BINDIR)\$(XSLT_SO) \
+		$(XSLT_OBJS) $(LIBS) libxml2.lib
+
+#$(BINDIR)\$(XSLT_SO) : $(BINDIR) $(XSLT_OBJS) $(XSLT_INTDIR)\$(XSLT_DEF)
+#	$(LD) $(LDFLAGS) /DLL /DEF:$(XSLT_INTDIR)\$(XSLT_DEF) \
+#		/VERSION:$(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION) \
+#		/IMPLIB:$(BINDIR)\$(XSLT_IMP) /OUT:$(BINDIR)\$(XSLT_SO) \
+#		$(XSLT_OBJS) $(LIBS) libxml2.lib
+
+# Creates the libxslt archive.
+$(BINDIR)\$(XSLT_A) : $(BINDIR) $(XSLT_OBJS_A)
+	$(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XSLT_A) $(XSLT_OBJS_A)
+
+
+# Creates the libexslt intermediate directory.
+$(EXSLT_INTDIR) :
+	if not exist $(EXSLT_INTDIR) mkdir $(EXSLT_INTDIR)
+
+# Creates the static libexslt intermediate directory.
+$(EXSLT_INTDIR_A) :
+	if not exist $(EXSLT_INTDIR_A) mkdir $(EXSLT_INTDIR_A)
+
+# An implicit rule for libexslt compilation.
+{$(EXSLT_SRCDIR)}.c{$(EXSLT_INTDIR)}.obj::
+	$(CC) /I$(EXSLT_SRCDIR) $(CFLAGS) /Fo$(EXSLT_INTDIR)\ /c $<
+
+# An implicit rule for static libexslt compilation.
+{$(EXSLT_SRCDIR)}.c{$(EXSLT_INTDIR_A)}.obj::
+	$(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "LIBEXSLT_STATIC" \
+		/I$(EXSLT_SRCDIR) $(CFLAGS) /Fo$(EXSLT_INTDIR_A)\ /c $<
+
+# Compiles libxslt source. Uses the implicit rule for commands.
+$(EXSLT_OBJS) : $(EXSLT_INTDIR)
+
+# Compiles libxslt source. Uses the implicit rule for commands.
+$(EXSLT_OBJS_A) : $(EXSLT_INTDIR_A)
+
+# Creates the export definition file (DEF) for libxslt.
+$(EXSLT_INTDIR)\$(EXSLT_DEF) : $(EXSLT_INTDIR) $(EXSLT_DEF).src
+	$(CPP) $(CPPFLAGS) $(EXSLT_DEF).src > $(EXSLT_INTDIR)\$(EXSLT_DEF)
+
+# Creates the libexslt shared object.
+$(BINDIR)\$(EXSLT_SO) : $(BINDIR) $(EXSLT_OBJS) $(EXSLT_INTDIR)\$(EXSLT_DEF) libxslt
+	$(LD) $(LDFLAGS) /DLL \
+		/VERSION:$(LIBEXSLT_MAJOR_VERSION).$(LIBEXSLT_MINOR_VERSION) \
+		/IMPLIB:$(BINDIR)\$(EXSLT_IMP) /OUT:$(BINDIR)\$(EXSLT_SO) \
+		$(EXSLT_OBJS) $(XSLT_IMP) $(LIBS) libxml2.lib
+
+#$(BINDIR)\$(EXSLT_SO) : $(BINDIR) $(EXSLT_OBJS) $(EXSLT_INTDIR)\$(EXSLT_DEF) libxslt
+#	$(LD) $(LDFLAGS) /DLL /DEF:$(EXSLT_INTDIR)\$(EXSLT_DEF) \
+#		/VERSION:$(LIBEXSLT_MAJOR_VERSION).$(LIBEXSLT_MINOR_VERSION) \
+#		/IMPLIB:$(BINDIR)\$(EXSLT_IMP) /OUT:$(BINDIR)\$(EXSLT_SO) \
+#		$(EXSLT_OBJS) $(XSLT_IMP) $(LIBS) libxml2.lib
+
+# Creates the libexslt archive.
+$(BINDIR)\$(EXSLT_A) : $(BINDIR) $(EXSLT_OBJS_A) libxslta
+	$(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(EXSLT_A) $(EXSLT_OBJS_A)
+
+
+# Creates the utils intermediate directory.
+$(UTILS_INTDIR) :
+	if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR)
+
+# An implicit rule for xsltproc and friends.
+APPLIBS = $(LIBS)
+!if "$(STATIC)" == "1"
+APPLIBS = $(LIBS) libxml2_a.lib
+!if "$(WITH_ICONV)" == "1"
+APPLIBS = $(APPLIBS) iconv.lib
+!endif
+!if "$(WITH_ZLIB)" == "1"
+APPLIBS = $(APPLIBS) zlib.lib
+!endif
+{$(UTILS_SRCDIR)}.c{$(BINDIR)}.exe:
+	$(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "LIBEXSLT_STATIC" \
+		$(CFLAGS) /Fo$(UTILS_INTDIR)\ /c $< 
+	$(LD) $(LDFLAGS) /OUT:$@ $(XSLT_A) $(EXSLT_A) $(APPLIBS) $(UTILS_INTDIR)\$(<B).obj
+!else
+APPLIBS = $(LIBS) libxml2.lib
+{$(UTILS_SRCDIR)}.c{$(BINDIR)}.exe:
+	$(CC) $(CFLAGS) /Fo$(UTILS_INTDIR)\ /c $< 
+	$(LD) $(LDFLAGS) /OUT:$@ $(XSLT_IMP) $(EXSLT_IMP) $(APPLIBS) $(UTILS_INTDIR)\$(<B).obj
+!endif
+
+# Builds xsltproc and friends. Uses the implicit rule for commands.
+$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxslt libxslta libexslt libexslta
+
+# plugins only work with non-static builds currently.
+!if "$(STATIC)" == "0"
+
+TESTPLUGIN_SRCDIR = $(BASEDIR)\tests\plugins
+TESTPLUGIN_DIR = $(TESTPLUGIN_SRCDIR)\plugin
+TESTPLUGIN_SO = xmlsoft_org_xslt_testplugin.dll
+TESTPLUGIN_OBJS = $(TESTPLUGIN_DIR)\testplugin.obj
+
+testplugin: 
+	if exist $(TESTPLUGIN_DIR) rmdir /S /Q $(TESTPLUGIN_DIR)
+	$(MAKE) $(TESTPLUGIN_DIR)\$(TESTPLUGIN_SO)
+
+$(TESTPLUGIN_DIR) :
+	if not exist $(TESTPLUGIN_DIR) mkdir $(TESTPLUGIN_DIR)
+
+{$(TESTPLUGIN_SRCDIR)}.c{$(TESTPLUGIN_DIR)}.obj::
+	$(CC) $(CFLAGS) /Fo$(TESTPLUGIN_DIR)\ /c $<
+
+# Creates the testplugin archive.
+$(TESTPLUGIN_DIR)\$(TESTPLUGIN_SO) : $(TESTPLUGIN_DIR) $(TESTPLUGIN_OBJS) libxslt
+	$(LD) $(LDFLAGS) /DLL $(XSLT_IMP) $(APPLIBS) $(LIBS)\
+		/OUT:$(TESTPLUGIN_DIR)\$(TESTPLUGIN_SO) \
+		$(TESTPLUGIN_OBJS)
+
+!else
+
+testplugin:
+	@echo "plugins are disabled with static=yes" 
+
+!endif
+
+
+# Source dependences should be autogenerated somehow here, but how to
+# do it? I have no clue.
+

Added: packages/libxslt/branches/upstream/1.1.16/win32/Readme.txt
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/Readme.txt	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/Readme.txt	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,133 @@
+
+                             Windows port
+                             ------------
+
+This directory contains the files required to build this software on the
+native Windows platform.
+
+As a rule of thumb, the root of this directory contains files needed
+to build the library using the command-line tools, while various
+subdirectories contain project files for various IDEs.
+
+
+  1. Building from the command-line
+  =================================
+
+This is the easiest, preferred and currently supported method. 
+
+In order to build from the command-line you need to make sure that
+your compiler works from the command line. This is not always the
+case, often the required environment variables are missing. If you are
+not sure, test if this works first. If it doesn't, you will first have
+to configure your compiler suite to run from the command-line - please
+refer to your compiler's documentation regarding that.
+
+The first thing you want to do is configure the source. You can have
+the configuration script do this automatically for you. The
+configuration script is written in JScript, a Microsoft's
+implementation of the ECMA scripting language. Almost every Windows
+machine can execute this through the Windows Scripting Host. If your
+system lacks the ability to execute JScript for some reason, you must
+perform the configuration manually.
+
+The second step is compiling the source and, optionally, installing it
+to the location of your choosing.
+
+
+  1.1 Configuring the source automatically
+  ----------------------------------------
+
+The configuration script accepts numerous options. Some of these
+affect features which will be available in the compiled software,
+others affect the way the software is built and installed. To see a
+full list of options supported by the configuration script, run
+
+  cscript configure.js help
+
+from the win32 subdirectory. The configuration script will present you
+the options it accepts and give a biref explanation of these. In every
+case you will have two sets of options. The first set is specific to
+the software you are building and the second one is specific to the
+Windows port.
+
+Once you have decided which options suit you, run the script with that
+options. Here is an example:
+
+  cscript configure.js prefix=c:\opt include=c:\opt\include 
+    lib=c:\opt\lib debug=yes
+
+The previous example will configure the process to install the library
+in c:\opt, use c:\opt\include and c:\opt\lib as additional search
+paths for the compiler and the linker and build executables with debug
+symbols.
+
+Note: Please do not use path names which contain spaces. This will
+fail. Allowing this would require me to put almost everything in the
+Makefile in quotas and that looks quite ugly with my
+syntax-highlighting engine. If you absolutely must use spaces in paths
+send me an email and tell me why. If there are enough of you out there
+who need this, or if a single one has a very good reason, I will
+modify the Makefile to allow spaces in paths.
+
+
+  1.2 (Not) Configuring the source manually
+  -----------------------------------------
+
+The manual configuration is pretty straightforward, but I would
+suggest rather to get a JScript engine and let the configure script do
+it for you. This process involves editing the apropriate Makefile to
+suit your needs, as well as manually generating certain *.h files from
+their *.h.in sources.
+
+If you really have no idea what I am talking about and ask yourself
+what in Gods name do I mean with '*.h files and their *.h.in sources',
+then you really should do an automatic configuration. Which files must
+be generated and what needs to be done with their sources in order to
+generate them is something people who have built this software before
+allready know. You will not find any explanations for that
+here. Please configure the source manually only if you allready know
+what you must do. Otherwise, you have the choice of either getting a
+precompiled binary distribution, or performing the automatic
+configuration.
+
+
+  1.3 Compiling
+  -------------
+
+After the configuration stage has been completed, you want to build
+the software. You will have to use the make tool which comes with
+your compiler. If you, for example, configured the source to build
+with Microsoft's MSVC compiler, you would use the NMAKE utility. If
+ýou configured it to build with GNU C compiler, mingw edition, you
+would use the GNU make. Assuming you use MSVC, type
+
+  nmake
+
+in the win32 subdirectory.When the building completes, you will find
+the executable files in win32\binaries directory.
+ 
+You can install the software into the directory you specified to the
+configure script during the configure stage by typing
+
+  nmake install
+
+That would be it, enjoy.
+
+
+  2. Building with the IDE
+  ========================
+
+Each supported IDE has its project files placed in a subdirectory of
+win32. If you use a particular IDE, you should be able to
+instinctively recognise its project files. When you have found your
+favourites, load them into the IDE and do whatever you would do with
+any other project files. If you are a novice and puzzled about how to
+use particular project files with a particular IDE, check for a readme
+file in that IDEs subdirectory. I won't discuss any particular IDE
+here, because I would like to keep this document as general as
+possible, and there is also a chance that support exists for IDEs
+which I have never seen.
+
+
+November 2002, Igor Zlatkovic <igor at zlatkovic.com>
+

Added: packages/libxslt/branches/upstream/1.1.16/win32/configure.js
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/configure.js	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/configure.js	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,492 @@
+/* Configure script for libxslt, specific for Windows with Scripting Host.
+ * 
+ * This script will configure the libxslt build process and create necessary files.
+ * Run it with an 'help', or an invalid option and it will tell you what options
+ * it accepts.
+ *
+ * March 2002, Igor Zlatkovic <igor at zlatkovic.com>
+ */
+
+/* The source directory, relative to the one where this file resides. */
+var baseDir = "..";
+var srcDirXslt = baseDir + "\\libxslt";
+var srcDirExslt = baseDir + "\\libexslt";
+var srcDirUtils = baseDir + "\\xsltproc";
+/* The directory where we put the binaries after compilation. */
+var binDir = "binaries";
+/* Base name of what we are building. */
+var baseNameXslt = "libxslt";
+var baseNameExslt = "libexslt";
+/* Configure file which contains the version and the output file where
+   we can store our build configuration. */
+var configFile = baseDir + "\\configure.in";
+var versionFile = ".\\config.msvc";
+/* Input and output files regarding the lib(e)xml features. The second
+   output file is there for the compatibility reasons, otherwise it
+   is identical to the first. */
+var optsFileInXslt = srcDirXslt + "\\xsltconfig.h.in";
+var optsFileXslt = srcDirXslt + "\\xsltconfig.h";
+var optsFileInExslt = srcDirExslt + "\\exsltconfig.h.in";
+var optsFileExslt = srcDirExslt + "\\exsltconfig.h";
+/* Version strings for the binary distribution. Will be filled later 
+   in the code. */
+var verMajorXslt;
+var verMinorXslt;
+var verMicroXslt;
+var verMajorExslt;
+var verMinorExslt;
+var verMicroExslt;
+var verCvs;
+var useCvsVer = true;
+/* Libxslt features. */
+var withTrio = false;
+var withXsltDebug = true;
+var withMemDebug = false;
+var withDebugger = true;
+var withIconv = true;
+var withZlib = false;
+var withCrypto = true;
+var withModules = false;
+/* Win32 build options. */
+var dirSep = "\\";
+var compiler = "msvc";
+var cruntime = "/MD";
+var buildDebug = 0;
+var buildStatic = 0;
+var buildPrefix = ".";
+var buildBinPrefix = "";
+var buildIncPrefix = "";
+var buildLibPrefix = "";
+var buildSoPrefix = "";
+var buildInclude = ".";
+var buildLib = ".";
+/* Local stuff */
+var error = 0;
+
+/* Helper function, transforms the option variable into the 'Enabled'
+   or 'Disabled' string. */
+function boolToStr(opt)
+{
+	if (opt == false)
+		return "no";
+	else if (opt == true)
+		return "yes";
+	error = 1;
+	return "*** undefined ***";
+}
+
+/* Helper function, transforms the argument string into the boolean
+   value. */
+function strToBool(opt)
+{
+	if (opt == "0" || opt == "no")
+		return false;
+	else if (opt == "1" || opt == "yes")
+		return true;
+	error = 1;
+	return false;
+}
+
+/* Displays the details about how to use this script. */
+function usage()
+{
+	var txt;
+	txt = "Usage:\n";
+	txt += "  cscript " + WScript.ScriptName + " <options>\n";
+	txt += "  cscript " + WScript.ScriptName + " help\n\n";
+	txt += "Options can be specified in the form <option>=<value>, where the value is\n";
+	txt += "either 'yes' or 'no'.\n\n";
+	txt += "XSLT processor options, default value given in parentheses:\n\n";
+	txt += "  trio:       Enable TRIO string manipulator (" + (withTrio? "yes" : "no")  + ")\n";
+	txt += "  xslt_debug: Enable XSLT debbugging module (" + (withXsltDebug? "yes" : "no")  + ")\n";
+	txt += "  mem_debug:  Enable memory debugger (" + (withMemDebug? "yes" : "no")  + ")\n";
+	txt += "  debugger:   Enable external debugger support (" + (withDebugger? "yes" : "no")  + ")\n";
+	txt += "  iconv:      Use iconv library (" + (withIconv? "yes" : "no")  + ")\n";
+	txt += "  zlib:       Use zlib library (" + (withZlib? "yes" : "no") + ")\n";
+	txt += "  crypto:     Enable Crypto support (" + (withCrypto? "yes" : "no") + ")\n";
+	txt += "  modules:    Enable Module support (" + (withModules? "yes" : "no") + ")\n";
+	txt += "\nWin32 build options, default value given in parentheses:\n\n";
+	txt += "  compiler:   Compiler to be used [msvc|mingw] (" + compiler + ")\n";
+	txt += "  cruntime:   C-runtime compiler option (only msvc) (" + cruntime + ")\n";
+	txt += "  debug:      Build unoptimised debug executables (" + (buildDebug? "yes" : "no")  + ")\n";
+	txt += "  static:     Link xsltproc statically to libxslt (" + (buildStatic? "yes" : "no")  + ")\n";
+	txt += "              Note: automatically enabled if cruntime is not /MD or /MDd\n";
+	txt += "  prefix:     Base directory for the installation (" + buildPrefix + ")\n";
+	txt += "  bindir:     Directory where xsltproc and friends should be installed\n";
+	txt += "              (" + buildBinPrefix + ")\n";
+	txt += "  incdir:     Directory where headers should be installed\n";
+	txt += "              (" + buildIncPrefix + ")\n";
+	txt += "  libdir:     Directory where static and import libraries should be\n";
+	txt += "              installed (" + buildLibPrefix + ")\n";
+	txt += "  sodir:      Directory where shared libraries should be installed\n"; 
+	txt += "              (" + buildSoPrefix + ")\n";
+	txt += "  include:    Additional search path for the compiler, particularily\n";
+	txt += "              where libxml headers can be found (" + buildInclude + ")\n";
+	txt += "  lib:        Additional search path for the linker, particularily\n";
+	txt += "              where libxml library can be found (" + buildLib + ")\n";
+	WScript.Echo(txt);
+}
+
+/* Discovers the version we are working with by reading the apropriate
+   configuration file. Despite its name, this also writes the configuration
+   file included by our makefile. */
+function discoverVersion()
+{
+	var fso, cf, vf, ln, s;
+	fso = new ActiveXObject("Scripting.FileSystemObject");
+	verCvs = "";
+	if (useCvsVer && fso.FileExists("..\\CVS\\Entries")) {
+		cf = fso.OpenTextFile("..\\CVS\\Entries", 1);
+		while (cf.AtEndOfStream != true) {
+			ln = cf.ReadLine();
+			s = new String(ln);
+			if (s.search(/^\/ChangeLog\//) != -1) {
+				iDot = s.indexOf(".");
+				iSlash = s.indexOf("/", iDot);
+				verCvs = "CVS" + s.substring(iDot + 1, iSlash);
+				break;
+			}
+		}
+		cf.Close();
+	}
+	cf = fso.OpenTextFile(configFile, 1);
+	if (compiler == "msvc")
+		versionFile = ".\\config.msvc";
+	else if (compiler == "mingw")
+		versionFile = ".\\config.mingw";
+	vf = fso.CreateTextFile(versionFile, true);
+	vf.WriteLine("# " + versionFile);
+	vf.WriteLine("# This file is generated automatically by " + WScript.ScriptName + ".");
+	vf.WriteBlankLines(1);
+	while (cf.AtEndOfStream != true) {
+		ln = cf.ReadLine();
+		s = new String(ln);
+		if (s.search(/^LIBXSLT_MAJOR_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMajorXslt = s.substring(s.indexOf("=") + 1, s.length)
+		} else if(s.search(/^LIBXSLT_MINOR_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMinorXslt = s.substring(s.indexOf("=") + 1, s.length)
+		} else if(s.search(/^LIBXSLT_MICRO_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMicroXslt = s.substring(s.indexOf("=") + 1, s.length)
+		} else if (s.search(/^LIBEXSLT_MAJOR_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMajorExslt = s.substring(s.indexOf("=") + 1, s.length)
+		} else if(s.search(/^LIBEXSLT_MINOR_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMinorExslt = s.substring(s.indexOf("=") + 1, s.length)
+		} else if(s.search(/^LIBEXSLT_MICRO_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMicroExslt = s.substring(s.indexOf("=") + 1, s.length)
+		}
+	}
+	cf.Close();
+	vf.WriteLine("WITH_TRIO=" + (withTrio? "1" : "0"));
+	vf.WriteLine("WITH_DEBUG=" + (withXsltDebug? "1" : "0"));
+	vf.WriteLine("WITH_MEM_DEBUG=" + (withMemDebug? "1" : "0"));
+	vf.WriteLine("WITH_DEBUGGER=" + (withDebugger? "1" : "0"));
+	vf.WriteLine("WITH_ICONV=" + (withIconv? "1" : "0"));
+	vf.WriteLine("WITH_ZLIB=" + (withZlib? "1" : "0"));
+	vf.WriteLine("WITH_CRYPTO=" + (withCrypto? "1" : "0"));
+	vf.WriteLine("WITH_MODULES=" + (withModules? "1" : "0"));
+	vf.WriteLine("DEBUG=" + (buildDebug? "1" : "0"));
+	vf.WriteLine("STATIC=" + (buildStatic? "1" : "0"));
+	vf.WriteLine("PREFIX=" + buildPrefix);
+	vf.WriteLine("BINPREFIX=" + buildBinPrefix);
+	vf.WriteLine("INCPREFIX=" + buildIncPrefix);
+	vf.WriteLine("LIBPREFIX=" + buildLibPrefix);
+	vf.WriteLine("SOPREFIX=" + buildSoPrefix);
+	if (compiler == "msvc") {
+		vf.WriteLine("INCLUDE=$(INCLUDE);" + buildInclude);
+		vf.WriteLine("LIB=$(LIB);" + buildLib);
+		vf.WriteLine("CRUNTIME=" + cruntime);
+	} else if (compiler == "mingw") {
+		vf.WriteLine("INCLUDE+=;" + buildInclude);
+		vf.WriteLine("LIB+=;" + buildLib);
+	}
+	vf.Close();
+}
+
+/* Configures libxslt. This one will generate xsltconfig.h from xsltconfig.h.in
+   taking what the user passed on the command line into account. */
+function configureXslt()
+{
+	var fso, ofi, of, ln, s;
+	fso = new ActiveXObject("Scripting.FileSystemObject");
+	ofi = fso.OpenTextFile(optsFileInXslt, 1);
+	of = fso.CreateTextFile(optsFileXslt, true);
+	while (ofi.AtEndOfStream != true) {
+		ln = ofi.ReadLine();
+		s = new String(ln);
+		if (s.search(/\@VERSION\@/) != -1) {
+			of.WriteLine(s.replace(/\@VERSION\@/, 
+				verMajorXslt + "." + verMinorXslt + "." + verMicroXslt));
+		} else if (s.search(/\@LIBXSLT_VERSION_NUMBER\@/) != -1) {
+			of.WriteLine(s.replace(/\@LIBXSLT_VERSION_NUMBER\@/, 
+				verMajorXslt*10000 + verMinorXslt*100 + verMicroXslt*1));
+		} else if (s.search(/\@LIBXSLT_VERSION_EXTRA\@/) != -1) {
+			of.WriteLine(s.replace(/\@LIBXSLT_VERSION_EXTRA\@/, verCvs));
+		} else if (s.search(/\@WITH_TRIO\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_TRIO\@/, withTrio? "1" : "0"));
+		} else if (s.search(/\@WITH_XSLT_DEBUG\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_XSLT_DEBUG\@/, withXsltDebug? "1" : "0"));
+		} else if (s.search(/\@WITH_MEM_DEBUG\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_MEM_DEBUG\@/, withMemDebug? "1" : "0"));
+		} else if (s.search(/\@WITH_DEBUGGER\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_DEBUGGER\@/, withDebugger? "1" : "0"));
+		} else if (s.search(/\@WITH_MODULES\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_MODULES\@/, withModules? "1" : "0"));
+		} else if (s.search(/\@LIBXSLT_DEFAULT_PLUGINS_PATH\@/) != -1) {
+			of.WriteLine(s.replace(/\@LIBXSLT_DEFAULT_PLUGINS_PATH\@/, "NULL"));
+		} else
+			of.WriteLine(ln);
+	}
+	ofi.Close();
+	of.Close();
+}
+
+/* Configures libexslt. This one will generate exsltconfig.h from exsltconfig.h.in
+   taking what the user passed on the command line into account. */
+function configureExslt()
+{
+	var fso, ofi, of, ln, s;
+	fso = new ActiveXObject("Scripting.FileSystemObject");
+	ofi = fso.OpenTextFile(optsFileInExslt, 1);
+	of = fso.CreateTextFile(optsFileExslt, true);
+	while (ofi.AtEndOfStream != true) {
+		ln = ofi.ReadLine();
+		s = new String(ln);
+		if (s.search(/\@VERSION\@/) != -1) {
+			of.WriteLine(s.replace(/\@VERSION\@/, 
+				verMajorExslt + "." + verMinorExslt + "." + verMicroExslt));
+		} else if (s.search(/\@LIBEXSLT_VERSION_NUMBER\@/) != -1) {
+			of.WriteLine(s.replace(/\@LIBEXSLT_VERSION_NUMBER\@/, 
+				verMajorExslt*10000 + verMinorExslt*100 + verMicroExslt*1));
+		} else if (s.search(/\@LIBEXSLT_VERSION_EXTRA\@/) != -1) {
+			of.WriteLine(s.replace(/\@LIBEXSLT_VERSION_EXTRA\@/, verCvs));
+		} else if (s.search(/\@WITH_CRYPTO\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_CRYPTO\@/, withCrypto? "1" : "0"));
+		} else if (s.search(/\@WITH_MODULES\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_MODULES\@/, withModules? "1" : "0"));
+		} else
+			of.WriteLine(ln);
+	}
+	ofi.Close();
+	of.Close();
+}
+
+/* Creates the readme file for the binary distribution of 'bname', for the
+   version 'ver' in the file 'file'. This one is called from the Makefile when
+   generating a binary distribution. The parameters are passed by make. */
+function genReadme(bname, ver, file)
+{
+	var fso, f;
+	fso = new ActiveXObject("Scripting.FileSystemObject");
+	f = fso.CreateTextFile(file, true);
+	f.WriteLine("  " + bname + " " + ver);
+	f.WriteLine("  --------------");
+	f.WriteBlankLines(1);
+	f.WriteLine("  This is " + bname + ", version " + ver + ", binary package for the native Win32/IA32");
+	f.WriteLine("platform.");
+	f.WriteBlankLines(1);
+	f.WriteLine("  The files in this package do not require any special installation");
+	f.WriteLine("steps. Extract the contents of the archive whereever you wish and");
+	f.WriteLine("make sure that your tools which use " + bname + " can find it.");
+	f.WriteBlankLines(1);
+	f.WriteLine("  For example, if you want to run the supplied utilities from the command");
+	f.WriteLine("line, you can, if you wish, add the 'bin' subdirectory to the PATH");
+	f.WriteLine("environment variable.");
+	f.WriteLine("  If you want to make programmes in C which use " + bname + ", you'll");
+	f.WriteLine("likely know how to use the contents of this package. If you don't, please");
+	f.WriteLine("refer to your compiler's documentation."); 
+	f.WriteBlankLines(1);
+	f.WriteLine("  If there is something you cannot keep for yourself, such as a problem,");
+	f.WriteLine("a cheer of joy, a comment or a suggestion, feel free to contact me using");
+	f.WriteLine("the address below.");
+	f.WriteBlankLines(1);
+	f.WriteLine("                              Igor Zlatkovic (igor at zlatkovic.com)");
+	f.Close();
+}
+
+/*
+ * main(),
+ * Execution begins here.
+ */
+
+/* Parse the command-line arguments. */
+for (i = 0; (i < WScript.Arguments.length) && (error == 0); i++) {
+	var arg, opt;
+	arg = WScript.Arguments(i);
+	opt = arg.substring(0, arg.indexOf("="));
+	if (opt.length == 0)
+		opt = arg.substring(0, arg.indexOf(":"));
+	if (opt.length > 0) {
+		if (opt == "xslt_debug")
+			withXsltDebug = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "trio")
+			withTrio = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "mem_debug")
+			withMemDebug = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "debugger")
+			withDebugger = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "debug")
+			buildDebug = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "iconv")
+			withIconv = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "zlib")
+			withZlib  = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "crypto")
+			withCrypto = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "modules")
+			withModules = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "compiler")
+			compiler = arg.substring(opt.length + 1, arg.length);
+ 		else if (opt == "cruntime")
+ 			cruntime = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "static")
+			buildStatic = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "prefix")
+			buildPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "incdir")
+			buildIncPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "bindir")
+			buildBinPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "libdir")
+			buildLibPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "sodir")
+			buildSoPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "incdir")
+			buildIncPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "include")
+			buildInclude = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "lib")
+			buildLib = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "release")
+			useCvsVer = false;
+		else
+			error = 1;
+	} else if (i == 0) {
+		if (arg == "genreadme") {
+			// This command comes from the Makefile and will not be checked
+			// for errors, because Makefile will always supply right parameters.
+			genReadme(WScript.Arguments(1), WScript.Arguments(2), WScript.Arguments(3));
+			WScript.Quit(0);
+		} else if (arg == "help") {
+			usage();
+			WScript.Quit(0);
+		}
+	} else
+		error = 1;
+}
+// If we have an error here, it is because the user supplied bad parameters.
+if (error != 0) {
+	usage();
+	WScript.Quit(error);
+}
+
+// if user choses to link the c-runtime library statically into libxslt
+// with /MT and friends, then we need to enable static linking for xsltproc
+if (cruntime == "/MT" || cruntime == "/MTd" ||
+		cruntime == "/ML" || cruntime == "/MLd") {
+	buildStatic = 1;
+}
+
+if (buildStatic == 1 && withModules == 1) {
+	WScript.Echo("Warning: Disabling plugin support.");
+	WScript.Echo("");  
+  WScript.Echo("Modules cannot be enabled when a statically linked cruntime has");
+	WScript.Echo("been selected, or when xsltproc.exe is linked statically to libxslt.");
+	WScript.Echo("");  
+	withModules=0;
+}
+
+dirSep = "\\";
+//if (compiler == "mingw")
+//	dirSep = "/";
+if (buildBinPrefix == "")
+	buildBinPrefix = "$(PREFIX)" + dirSep + "bin";
+if (buildIncPrefix == "")
+	buildIncPrefix = "$(PREFIX)" + dirSep + "include";
+if (buildLibPrefix == "")
+	buildLibPrefix = "$(PREFIX)" + dirSep + "lib";
+if (buildSoPrefix == "")
+	buildSoPrefix = "$(PREFIX)" + dirSep + "lib";
+
+// Discover the version.
+discoverVersion();
+if (error != 0) {
+	WScript.Echo("Version discovery failed, aborting.");
+	WScript.Quit(error);
+}
+
+var outVerString = baseNameXslt + " version: " + verMajorXslt + "." + verMinorXslt + "." + verMicroXslt;
+if (verCvs && verCvs != "")
+	outVerString += "-" + verCvs;
+WScript.Echo(outVerString);
+outVerString = baseNameExslt + " version: " + verMajorExslt + "." + verMinorExslt + "." + verMicroExslt;
+if (verCvs && verCvs != "")
+	outVerString += "-" + verCvs;
+WScript.Echo(outVerString);
+
+// Configure libxslt.
+configureXslt();
+if (error != 0) {
+	WScript.Echo("Configuration failed, aborting.");
+	WScript.Quit(error);
+}
+
+// Configure libexslt.
+configureExslt();
+if (error != 0) {
+	WScript.Echo("Configuration failed, aborting.");
+	WScript.Quit(error);
+}
+
+// Create the Makefile.
+var fso = new ActiveXObject("Scripting.FileSystemObject");
+var makefile = ".\\Makefile.msvc";
+if (compiler == "mingw")
+	makefile = ".\\Makefile.mingw";
+fso.CopyFile(makefile, ".\\Makefile", true);
+WScript.Echo("Created Makefile.");
+// Create the config.h.
+var confighsrc = "..\\libxslt\\win32config.h";
+var configh = "..\\config.h";
+var f = fso.FileExists(configh);
+if (f) {
+	var t = fso.GetFile(configh);
+	t.Attributes =0;
+}
+fso.CopyFile(confighsrc, configh, true);
+WScript.Echo("Created config.h.");
+
+// Display the final configuration.
+var txtOut = "\nXSLT processor configuration\n";
+txtOut += "----------------------------\n";
+txtOut += "              Trio: " + boolToStr(withTrio) + "\n";
+txtOut += "  Debugging module: " + boolToStr(withXsltDebug) + "\n";
+txtOut += "  Memory debugging: " + boolToStr(withMemDebug) + "\n";
+txtOut += "  Debugger support: " + boolToStr(withDebugger) + "\n";
+txtOut += "         Use iconv: " + boolToStr(withIconv) + "\n";
+txtOut += "         With zlib: " + boolToStr(withZlib) + "\n";
+txtOut += "            Crypto: " + boolToStr(withCrypto) + "\n";
+txtOut += "           Modules: " + boolToStr(withModules) + "\n";
+txtOut += "\n";
+txtOut += "Win32 build configuration\n";
+txtOut += "-------------------------\n";
+txtOut += "          Compiler: " + compiler + "\n";
+if (compiler == "msvc")
+	txtOut += "  C-Runtime option: " + cruntime + "\n";
+txtOut += "     Debug symbols: " + boolToStr(buildDebug) + "\n";
+txtOut += "   Static xsltproc: " + boolToStr(buildStatic) + "\n";
+txtOut += "    Install prefix: " + buildPrefix + "\n";
+txtOut += "      Put tools in: " + buildBinPrefix + "\n";
+txtOut += "    Put headers in: " + buildIncPrefix + "\n";
+txtOut += "Put static libs in: " + buildLibPrefix + "\n";
+txtOut += "Put shared libs in: " + buildSoPrefix + "\n";
+txtOut += "      Include path: " + buildInclude + "\n";
+txtOut += "          Lib path: " + buildLib + "\n";
+WScript.Echo(txtOut);
+
+// Done.

Added: packages/libxslt/branches/upstream/1.1.16/win32/configure.js.orig
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/configure.js.orig	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/configure.js.orig	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,478 @@
+/* Configure script for libxslt, specific for Windows with Scripting Host.
+ * 
+ * This script will configure the libxslt build process and create necessary files.
+ * Run it with an 'help', or an invalid option and it will tell you what options
+ * it accepts.
+ *
+ * March 2002, Igor Zlatkovic <igor at zlatkovic.com>
+ */
+
+/* The source directory, relative to the one where this file resides. */
+var baseDir = "..";
+var srcDirXslt = baseDir + "\\libxslt";
+var srcDirExslt = baseDir + "\\libexslt";
+var srcDirUtils = baseDir + "\\xsltproc";
+/* The directory where we put the binaries after compilation. */
+var binDir = "binaries";
+/* Base name of what we are building. */
+var baseNameXslt = "libxslt";
+var baseNameExslt = "libexslt";
+/* Configure file which contains the version and the output file where
+   we can store our build configuration. */
+var configFile = baseDir + "\\configure.in";
+var versionFile = ".\\config.msvc";
+/* Input and output files regarding the lib(e)xml features. The second
+   output file is there for the compatibility reasons, otherwise it
+   is identical to the first. */
+var optsFileInXslt = srcDirXslt + "\\xsltconfig.h.in";
+var optsFileXslt = srcDirXslt + "\\xsltconfig.h";
+var optsFileXslt2 = srcDirXslt + "\\xsltwin32config.h";
+var optsFileInExslt = srcDirExslt + "\\exsltconfig.h.in";
+var optsFileExslt = srcDirExslt + "\\exsltconfig.h";
+var optsFileExslt2 = srcDirExslt + "\\exsltwin32config.h";
+/* Version strings for the binary distribution. Will be filled later 
+   in the code. */
+var verMajorXslt;
+var verMinorXslt;
+var verMicroXslt;
+var verMajorExslt;
+var verMinorExslt;
+var verMicroExslt;
+var verCvs;
+var useCvsVer = true;
+/* Libxslt features. */
+var withTrio = false;
+var withXsltDebug = true;
+var withMemDebug = false;
+var withDebugger = true;
+var withIconv = true;
+var withZlib = false;
+var withCrypto = true;
+var withModules = false;
+/* Win32 build options. */
+var dirSep = "\\";
+var compiler = "msvc";
+var cruntime = "/MD";
+var buildDebug = 0;
+var buildStatic = 0;
+var buildPrefix = ".";
+var buildBinPrefix = "";
+var buildIncPrefix = "";
+var buildLibPrefix = "";
+var buildSoPrefix = "";
+var buildInclude = ".";
+var buildLib = ".";
+/* Local stuff */
+var error = 0;
+
+/* Helper function, transforms the option variable into the 'Enabled'
+   or 'Disabled' string. */
+function boolToStr(opt)
+{
+	if (opt == false)
+		return "no";
+	else if (opt == true)
+		return "yes";
+	error = 1;
+	return "*** undefined ***";
+}
+
+/* Helper function, transforms the argument string into the boolean
+   value. */
+function strToBool(opt)
+{
+	if (opt == "0" || opt == "no")
+		return false;
+	else if (opt == "1" || opt == "yes")
+		return true;
+	error = 1;
+	return false;
+}
+
+/* Displays the details about how to use this script. */
+function usage()
+{
+	var txt;
+	txt = "Usage:\n";
+	txt += "  cscript " + WScript.ScriptName + " <options>\n";
+	txt += "  cscript " + WScript.ScriptName + " help\n\n";
+	txt += "Options can be specified in the form <option>=<value>, where the value is\n";
+	txt += "either 'yes' or 'no'.\n\n";
+	txt += "XSLT processor options, default value given in parentheses:\n\n";
+	txt += "  trio:       Enable TRIO string manipulator (" + (withTrio? "yes" : "no")  + ")\n";
+	txt += "  xslt_debug: Enable XSLT debbugging module (" + (withXsltDebug? "yes" : "no")  + ")\n";
+	txt += "  mem_debug:  Enable memory debugger (" + (withMemDebug? "yes" : "no")  + ")\n";
+	txt += "  debugger:   Enable external debugger support (" + (withDebugger? "yes" : "no")  + ")\n";
+	txt += "  iconv:      Use iconv library (" + (withIconv? "yes" : "no")  + ")\n";
+	txt += "  zlib:       Use zlib library (" + (withZlib? "yes" : "no") + ")\n";
+	txt += "  crypto:     Enable Crypto support (" + (withCrypto? "yes" : "no") + ")\n";
+	txt += "  modules:    Enable Module support (" + (withModules? "yes" : "no") + ")\n";
+	txt += "\nWin32 build options, default value given in parentheses:\n\n";
+	txt += "  compiler:   Compiler to be used [msvc|mingw] (" + compiler + ")\n";
+	txt += "  cruntime:   C-runtime compiler option (only msvc) (" + cruntime + ")\n";
+	txt += "  debug:      Build unoptimised debug executables (" + (buildDebug? "yes" : "no")  + ")\n";
+	txt += "  static:     Link xsltproc statically to libxslt (" + (buildStatic? "yes" : "no")  + ")\n";
+	txt += "  prefix:     Base directory for the installation (" + buildPrefix + ")\n";
+	txt += "  bindir:     Directory where xsltproc and friends should be installed\n";
+	txt += "              (" + buildBinPrefix + ")\n";
+	txt += "  incdir:     Directory where headers should be installed\n";
+	txt += "              (" + buildIncPrefix + ")\n";
+	txt += "  libdir:     Directory where static and import libraries should be\n";
+	txt += "              installed (" + buildLibPrefix + ")\n";
+	txt += "  sodir:      Directory where shared libraries should be installed\n"; 
+	txt += "              (" + buildSoPrefix + ")\n";
+	txt += "  include:    Additional search path for the compiler, particularily\n";
+	txt += "              where libxml headers can be found (" + buildInclude + ")\n";
+	txt += "  lib:        Additional search path for the linker, particularily\n";
+	txt += "              where libxml library can be found (" + buildLib + ")\n";
+	WScript.Echo(txt);
+}
+
+/* Discovers the version we are working with by reading the apropriate
+   configuration file. Despite its name, this also writes the configuration
+   file included by our makefile. */
+function discoverVersion()
+{
+	var fso, cf, vf, ln, s;
+	fso = new ActiveXObject("Scripting.FileSystemObject");
+	verCvs = "";
+	if (useCvsVer && fso.FileExists("..\\CVS\\Entries")) {
+		cf = fso.OpenTextFile("..\\CVS\\Entries", 1);
+		while (cf.AtEndOfStream != true) {
+			ln = cf.ReadLine();
+			s = new String(ln);
+			if (s.search(/^\/ChangeLog\//) != -1) {
+				iDot = s.indexOf(".");
+				iSlash = s.indexOf("/", iDot);
+				verCvs = "CVS" + s.substring(iDot + 1, iSlash);
+				break;
+			}
+		}
+		cf.Close();
+	}
+	cf = fso.OpenTextFile(configFile, 1);
+	if (compiler == "msvc")
+		versionFile = ".\\config.msvc";
+	else if (compiler == "mingw")
+		versionFile = ".\\config.mingw";
+	vf = fso.CreateTextFile(versionFile, true);
+	vf.WriteLine("# " + versionFile);
+	vf.WriteLine("# This file is generated automatically by " + WScript.ScriptName + ".");
+	vf.WriteBlankLines(1);
+	while (cf.AtEndOfStream != true) {
+		ln = cf.ReadLine();
+		s = new String(ln);
+		if (s.search(/^LIBXSLT_MAJOR_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMajorXslt = s.substring(s.indexOf("=") + 1, s.length)
+		} else if(s.search(/^LIBXSLT_MINOR_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMinorXslt = s.substring(s.indexOf("=") + 1, s.length)
+		} else if(s.search(/^LIBXSLT_MICRO_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMicroXslt = s.substring(s.indexOf("=") + 1, s.length)
+		} else if (s.search(/^LIBEXSLT_MAJOR_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMajorExslt = s.substring(s.indexOf("=") + 1, s.length)
+		} else if(s.search(/^LIBEXSLT_MINOR_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMinorExslt = s.substring(s.indexOf("=") + 1, s.length)
+		} else if(s.search(/^LIBEXSLT_MICRO_VERSION=/) != -1) {
+			vf.WriteLine(s);
+			verMicroExslt = s.substring(s.indexOf("=") + 1, s.length)
+		}
+	}
+	cf.Close();
+	vf.WriteLine("WITH_TRIO=" + (withTrio? "1" : "0"));
+	vf.WriteLine("WITH_DEBUG=" + (withXsltDebug? "1" : "0"));
+	vf.WriteLine("WITH_MEM_DEBUG=" + (withMemDebug? "1" : "0"));
+	vf.WriteLine("WITH_DEBUGGER=" + (withDebugger? "1" : "0"));
+	vf.WriteLine("WITH_ICONV=" + (withIconv? "1" : "0"));
+	vf.WriteLine("WITH_ZLIB=" + (withZlib? "1" : "0"));
+	vf.WriteLine("WITH_CRYPTO=" + (withCrypto? "1" : "0"));
+	vf.WriteLine("WITH_MODULES=" + (withModules? "1" : "0"));
+	vf.WriteLine("DEBUG=" + (buildDebug? "1" : "0"));
+	vf.WriteLine("STATIC=" + (buildStatic? "1" : "0"));
+	vf.WriteLine("PREFIX=" + buildPrefix);
+	vf.WriteLine("BINPREFIX=" + buildBinPrefix);
+	vf.WriteLine("INCPREFIX=" + buildIncPrefix);
+	vf.WriteLine("LIBPREFIX=" + buildLibPrefix);
+	vf.WriteLine("SOPREFIX=" + buildSoPrefix);
+	if (compiler == "msvc") {
+		vf.WriteLine("INCLUDE=$(INCLUDE);" + buildInclude);
+		vf.WriteLine("LIB=$(LIB);" + buildLib);
+		vf.WriteLine("CRUNTIME=" + cruntime);
+	} else if (compiler == "mingw") {
+		vf.WriteLine("INCLUDE+=;" + buildInclude);
+		vf.WriteLine("LIB+=;" + buildLib);
+	}
+	vf.Close();
+}
+
+/* Configures libxslt. This one will generate xsltconfig.h from xsltconfig.h.in
+   taking what the user passed on the command line into account. */
+function configureXslt()
+{
+	var fso, ofi, of, ln, s;
+	fso = new ActiveXObject("Scripting.FileSystemObject");
+	ofi = fso.OpenTextFile(optsFileInXslt, 1);
+	of = fso.CreateTextFile(optsFileXslt, true);
+	while (ofi.AtEndOfStream != true) {
+		ln = ofi.ReadLine();
+		s = new String(ln);
+		if (s.search(/\@VERSION\@/) != -1) {
+			of.WriteLine(s.replace(/\@VERSION\@/, 
+				verMajorXslt + "." + verMinorXslt + "." + verMicroXslt));
+		} else if (s.search(/\@LIBXSLT_VERSION_NUMBER\@/) != -1) {
+			of.WriteLine(s.replace(/\@LIBXSLT_VERSION_NUMBER\@/, 
+				verMajorXslt*10000 + verMinorXslt*100 + verMicroXslt*1));
+		} else if (s.search(/\@LIBXSLT_VERSION_EXTRA\@/) != -1) {
+			of.WriteLine(s.replace(/\@LIBXSLT_VERSION_EXTRA\@/, verCvs));
+		} else if (s.search(/\@WITH_TRIO\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_TRIO\@/, withTrio? "1" : "0"));
+		} else if (s.search(/\@WITH_XSLT_DEBUG\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_XSLT_DEBUG\@/, withXsltDebug? "1" : "0"));
+		} else if (s.search(/\@WITH_MEM_DEBUG\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_MEM_DEBUG\@/, withMemDebug? "1" : "0"));
+		} else if (s.search(/\@WITH_DEBUGGER\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_DEBUGGER\@/, withDebugger? "1" : "0"));
+		} else if (s.search(/\@WITH_MODULES\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_MODULES\@/, withModules? "1" : "0"));
+		} else if (s.search(/\@LIBXSLT_DEFAULT_PLUGINS_PATH\@/) != -1) {
+			of.WriteLine(s.replace(/\@LIBXSLT_DEFAULT_PLUGINS_PATH\@/, "NULL"));
+		} else
+			of.WriteLine(ln);
+	}
+	ofi.Close();
+	of.Close();
+	fso.CopyFile(optsFileXslt, optsFileXslt2, true);
+}
+
+/* Configures libexslt. This one will generate exsltconfig.h from exsltconfig.h.in
+   taking what the user passed on the command line into account. */
+function configureExslt()
+{
+	var fso, ofi, of, ln, s;
+	fso = new ActiveXObject("Scripting.FileSystemObject");
+	ofi = fso.OpenTextFile(optsFileInExslt, 1);
+	of = fso.CreateTextFile(optsFileExslt, true);
+	while (ofi.AtEndOfStream != true) {
+		ln = ofi.ReadLine();
+		s = new String(ln);
+		if (s.search(/\@VERSION\@/) != -1) {
+			of.WriteLine(s.replace(/\@VERSION\@/, 
+				verMajorExslt + "." + verMinorExslt + "." + verMicroExslt));
+		} else if (s.search(/\@LIBEXSLT_VERSION_NUMBER\@/) != -1) {
+			of.WriteLine(s.replace(/\@LIBEXSLT_VERSION_NUMBER\@/, 
+				verMajorExslt*10000 + verMinorExslt*100 + verMicroExslt*1));
+		} else if (s.search(/\@LIBEXSLT_VERSION_EXTRA\@/) != -1) {
+			of.WriteLine(s.replace(/\@LIBEXSLT_VERSION_EXTRA\@/, verCvs));
+		} else if (s.search(/\@WITH_CRYPTO\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_CRYPTO\@/, withCrypto? "1" : "0"));
+		} else if (s.search(/\@WITH_MODULES\@/) != -1) {
+			of.WriteLine(s.replace(/\@WITH_MODULES\@/, withModules? "1" : "0"));
+		} else
+			of.WriteLine(ln);
+	}
+	ofi.Close();
+	of.Close();
+	fso.CopyFile(optsFileExslt, optsFileExslt2, true);
+}
+
+/* Creates the readme file for the binary distribution of 'bname', for the
+   version 'ver' in the file 'file'. This one is called from the Makefile when
+   generating a binary distribution. The parameters are passed by make. */
+function genReadme(bname, ver, file)
+{
+	var fso, f;
+	fso = new ActiveXObject("Scripting.FileSystemObject");
+	f = fso.CreateTextFile(file, true);
+	f.WriteLine("  " + bname + " " + ver);
+	f.WriteLine("  --------------");
+	f.WriteBlankLines(1);
+	f.WriteLine("  This is " + bname + ", version " + ver + ", binary package for the native Win32/IA32");
+	f.WriteLine("platform.");
+	f.WriteBlankLines(1);
+	f.WriteLine("  The files in this package do not require any special installation");
+	f.WriteLine("steps. Extract the contents of the archive whereever you wish and");
+	f.WriteLine("make sure that your tools which use " + bname + " can find it.");
+	f.WriteBlankLines(1);
+	f.WriteLine("  For example, if you want to run the supplied utilities from the command");
+	f.WriteLine("line, you can, if you wish, add the 'bin' subdirectory to the PATH");
+	f.WriteLine("environment variable.");
+	f.WriteLine("  If you want to make programmes in C which use " + bname + ", you'll");
+	f.WriteLine("likely know how to use the contents of this package. If you don't, please");
+	f.WriteLine("refer to your compiler's documentation."); 
+	f.WriteBlankLines(1);
+	f.WriteLine("  If there is something you cannot keep for yourself, such as a problem,");
+	f.WriteLine("a cheer of joy, a comment or a suggestion, feel free to contact me using");
+	f.WriteLine("the address below.");
+	f.WriteBlankLines(1);
+	f.WriteLine("                              Igor Zlatkovic (igor at zlatkovic.com)");
+	f.Close();
+}
+
+/*
+ * main(),
+ * Execution begins here.
+ */
+
+/* Parse the command-line arguments. */
+for (i = 0; (i < WScript.Arguments.length) && (error == 0); i++) {
+	var arg, opt;
+	arg = WScript.Arguments(i);
+	opt = arg.substring(0, arg.indexOf("="));
+	if (opt.length == 0)
+		opt = arg.substring(0, arg.indexOf(":"));
+	if (opt.length > 0) {
+		if (opt == "xslt_debug")
+			withXsltDebug = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "trio")
+			withTrio = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "mem_debug")
+			withMemDebug = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "debugger")
+			withDebugger = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "debug")
+			buildDebug = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "iconv")
+			withIconv = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "zlib")
+			withZlib  = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "crypto")
+			withCrypto = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "modules")
+			withModules = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "compiler")
+			compiler = arg.substring(opt.length + 1, arg.length);
+ 		else if (opt == "cruntime")
+ 			cruntime = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "static")
+			buildStatic = strToBool(arg.substring(opt.length + 1, arg.length));
+		else if (opt == "prefix")
+			buildPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "incdir")
+			buildIncPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "bindir")
+			buildBinPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "libdir")
+			buildLibPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "sodir")
+			buildSoPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "incdir")
+			buildIncPrefix = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "include")
+			buildInclude = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "lib")
+			buildLib = arg.substring(opt.length + 1, arg.length);
+		else if (opt == "release")
+			useCvsVer = false;
+		else
+			error = 1;
+	} else if (i == 0) {
+		if (arg == "genreadme") {
+			// This command comes from the Makefile and will not be checked
+			// for errors, because Makefile will always supply right parameters.
+			genReadme(WScript.Arguments(1), WScript.Arguments(2), WScript.Arguments(3));
+			WScript.Quit(0);
+		} else if (arg == "help") {
+			usage();
+			WScript.Quit(0);
+		}
+	} else
+		error = 1;
+}
+// If we have an error here, it is because the user supplied bad parameters.
+if (error != 0) {
+	usage();
+	WScript.Quit(error);
+}
+dirSep = "\\";
+//if (compiler == "mingw")
+//	dirSep = "/";
+if (buildBinPrefix == "")
+	buildBinPrefix = "$(PREFIX)" + dirSep + "bin";
+if (buildIncPrefix == "")
+	buildIncPrefix = "$(PREFIX)" + dirSep + "include";
+if (buildLibPrefix == "")
+	buildLibPrefix = "$(PREFIX)" + dirSep + "lib";
+if (buildSoPrefix == "")
+	buildSoPrefix = "$(PREFIX)" + dirSep + "lib";
+
+// Discover the version.
+discoverVersion();
+if (error != 0) {
+	WScript.Echo("Version discovery failed, aborting.");
+	WScript.Quit(error);
+}
+
+var outVerString = baseNameXslt + " version: " + verMajorXslt + "." + verMinorXslt + "." + verMicroXslt;
+if (verCvs && verCvs != "")
+	outVerString += "-" + verCvs;
+WScript.Echo(outVerString);
+outVerString = baseNameExslt + " version: " + verMajorExslt + "." + verMinorExslt + "." + verMicroExslt;
+if (verCvs && verCvs != "")
+	outVerString += "-" + verCvs;
+WScript.Echo(outVerString);
+
+// Configure libxslt.
+configureXslt();
+if (error != 0) {
+	WScript.Echo("Configuration failed, aborting.");
+	WScript.Quit(error);
+}
+
+// Configure libexslt.
+configureExslt();
+if (error != 0) {
+	WScript.Echo("Configuration failed, aborting.");
+	WScript.Quit(error);
+}
+
+// Create the Makefile.
+var fso = new ActiveXObject("Scripting.FileSystemObject");
+var makefile = ".\\Makefile.msvc";
+if (compiler == "mingw")
+	makefile = ".\\Makefile.mingw";
+fso.CopyFile(makefile, ".\\Makefile", true);
+WScript.Echo("Created Makefile.");
+// Create the config.h.
+var confighsrc = "..\\libxslt\\win32config.h";
+var configh = "..\\config.h";
+var f = fso.FileExists(configh);
+if (f) {
+	var t = fso.GetFile(configh);
+	t.Attributes =0;
+}
+fso.CopyFile(confighsrc, configh, true);
+WScript.Echo("Created config.h.");
+
+// Display the final configuration.
+var txtOut = "\nXSLT processor configuration\n";
+txtOut += "----------------------------\n";
+txtOut += "              Trio: " + boolToStr(withTrio) + "\n";
+txtOut += "  Debugging module: " + boolToStr(withXsltDebug) + "\n";
+txtOut += "  Memory debugging: " + boolToStr(withMemDebug) + "\n";
+txtOut += "  Debugger support: " + boolToStr(withDebugger) + "\n";
+txtOut += "         Use iconv: " + boolToStr(withIconv) + "\n";
+txtOut += "         With zlib: " + boolToStr(withZlib) + "\n";
+txtOut += "            Crypto: " + boolToStr(withCrypto) + "\n";
+txtOut += "           Modules: " + boolToStr(withModules) + "\n";
+txtOut += "\n";
+txtOut += "Win32 build configuration\n";
+txtOut += "-------------------------\n";
+txtOut += "          Compiler: " + compiler + "\n";
+if (compiler == "msvc")
+	txtOut += "  C-Runtime option: " + cruntime + "\n";
+txtOut += "     Debug symbols: " + boolToStr(buildDebug) + "\n";
+txtOut += "   Static xsltproc: " + boolToStr(buildStatic) + "\n";
+txtOut += "    Install prefix: " + buildPrefix + "\n";
+txtOut += "      Put tools in: " + buildBinPrefix + "\n";
+txtOut += "    Put headers in: " + buildIncPrefix + "\n";
+txtOut += "Put static libs in: " + buildLibPrefix + "\n";
+txtOut += "Put shared libs in: " + buildSoPrefix + "\n";
+txtOut += "      Include path: " + buildInclude + "\n";
+txtOut += "          Lib path: " + buildLib + "\n";
+WScript.Echo(txtOut);
+
+// Done.

Added: packages/libxslt/branches/upstream/1.1.16/win32/defgen.xsl
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/defgen.xsl	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/defgen.xsl	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!-- 
+	win32/defgen.xsl
+	This stylesheet is used to transform doc/lib[e]xslt-api.xml into a pseudo-source,
+	which can then be preprocessed to get the .DEF file for the Microsoft's linker.
+	
+	Use any XSLT processor to produce a file called lib[e]xslt.def.src in the win32
+	subdirectory, for example, run xsltproc from the win32 subdirectory:
+	
+	  xsltproc -o libxslt.def.src defgen.xsl ../doc/libxslt-api.xml
+	  xsltproc -o libexslt.def.src defgen.xsl ../doc/libexslt-api.xml
+	  
+	Once that finishes, rest assured, the Makefile will know what to do with the
+	generated file. 
+
+	May 2003, Igor Zlatkovic <igor at zlatkovic.com>
+-->
+<!DOCTYPE xsl:stylesheet [ <!ENTITY nl '&#xd;&#xa;'> ]>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+	<xsl:strip-space elements="*"/>
+	<xsl:output method="text"/>
+	<xsl:template match="/">
+		<xsl:text>LIBRARY </xsl:text>
+		<xsl:value-of select="/api/@name"/>
+		<xsl:text>&nl;</xsl:text>
+		<xsl:text>EXPORTS&nl;</xsl:text>
+		<xsl:for-each select="/api/symbols/*[self::variable or self::function]">
+			<xsl:if test="@name='xsltExtFunctionLookup' or 
+					@name='xsltMatchPattern'">
+				<xsl:text>/*</xsl:text>
+			</xsl:if>
+			<xsl:value-of select="@name"/>
+			<xsl:if test="self::variable">
+				<xsl:text> DATA</xsl:text>
+			</xsl:if>
+			<xsl:if test="@name='xsltExtFunctionLookup' or 
+					@name='xsltMatchPattern'">
+				<xsl:text>*/</xsl:text>
+			</xsl:if>
+			<xsl:text>&nl;</xsl:text>
+		</xsl:for-each>
+	</xsl:template>
+</xsl:stylesheet>
+

Added: packages/libxslt/branches/upstream/1.1.16/win32/libexslt.def.src
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/libexslt.def.src	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/libexslt.def.src	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,16 @@
+LIBRARY libexslt
+EXPORTS
+exsltLibexsltVersion DATA
+exsltLibraryVersion DATA
+exsltLibxmlVersion DATA
+exsltLibxsltVersion DATA
+exsltCommonRegister
+exsltCryptoRegister
+exsltDateRegister
+exsltDynRegister
+exsltFuncRegister
+exsltMathRegister
+exsltRegisterAll
+exsltSaxonRegister
+exsltSetsRegister
+exsltStrRegister

Added: packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt.def
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt.def	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt.def	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,148 @@
+
+LIBRARY libxslt
+EXPORTS
+
+	xsltNewStylesheet
+	xsltParseStylesheetFile
+	xsltFreeStylesheet
+	xsltIsBlank
+	xsltFreeStackElemList
+	xsltDecimalFormatGetByName
+	xsltParseStylesheetProcess
+	xsltParseStylesheetOutput
+	xsltParseStylesheetDoc
+	xsltNumberFormat
+	xsltFormatNumberConversion
+	xsltProfileStylesheet
+	
+	xsltParseStylesheetAttributeSet
+	xsltFreeAttributeSetsHashes
+	xsltApplyAttributeSet
+
+ 	xsltNewDocument
+ 	xsltLoadDocument
+ 	xsltFreeDocuments
+ 	xsltLoadStyleDocument
+ 	xsltNewStyleDocument
+ 	xsltFreeStyleDocuments
+
+
+  	xsltRegisterExtPrefix
+  	xsltCheckExtPrefix
+  	xsltRegisterExtFunction
+  	xsltRegisterExtElement
+  	xsltFreeCtxtExts
+  	xsltFreeExts
+	xsltUnregisterAllExtModules
+	xsltGetExtData
+	xsltShutdownCtxtExts
+	xsltXPathGetTransformContext
+	xsltUnregisterExtModule
+	xsltRegisterExtModule
+
+
+ 	xsltDocumentFunction
+ 	xsltKeyFunction
+ 	xsltUnparsedEntityURIFunction
+ 	xsltFormatNumberFunction
+ 	xsltGenerateIdFunction
+ 	xsltSystemPropertyFunction
+ 	xsltElementAvailableFunction
+ 	xsltFunctionAvailableFunction
+ 	xsltRegisterAllFunctions
+
+	xsltParseStylesheetImport
+	xsltParseStylesheetInclude
+	xsltNextImport
+	xsltFindElemSpaceHandling
+	xsltFindTemplate
+
+	xsltAddKey
+	xsltGetKey
+	xsltInitCtxtKeys
+	xsltFreeKeys
+	xsltFreeDocumentKeys
+
+	xsltNamespaceAlias
+	xsltGetNamespace
+	xsltGetSpecialNamespace
+	xsltCopyNamespaceList
+	xsltCopyNamespaceList
+	xsltFreeNamespaceAliasHashes
+
+	xsltCompilePattern
+	xsltFreeCompMatchList
+	xsltTestCompMatchList
+	xsltAddTemplate
+	xsltGetTemplate
+	xsltFreeTemplateHashes
+	xsltCleanupTemplates
+
+	xsltStylePreCompute
+	xsltFreeStylePreComps
+
+	xsltEvalXPathPredicate
+	xsltEvalTemplateString
+	xsltEvalAttrValueTemplate
+	xsltEvalStaticAttrValueTemplate
+	xsltEvalXPathString
+	xsltTemplateProcess
+	xsltAttrListTemplateProcess
+	xsltAttrTemplateProcess
+	xsltAttrTemplateValueProcess
+
+	xsltApplyStylesheet
+	xsltApplyOneTemplate
+	xsltDocumentElem
+	xsltSort
+	xsltCopy
+	xsltText
+	xsltElement
+	xsltComment
+	xsltAttribute
+	xsltProcessingInstruction
+	xsltCopyOf
+	xsltValueOf
+	xsltNumber
+	xsltApplyImports
+	xsltCallTemplate
+	xsltApplyTemplates
+	xsltChoose
+	xsltIf
+	xsltForEach
+
+	xsltEvalGlobalVariables
+	xsltEvalUserParams
+	xsltParseGlobalVariable
+	xsltParseGlobalParam
+	xsltParseStylesheetVariable
+	xsltParseStylesheetParam
+	xsltParseStylesheetCallerParam
+	xsltAddStackElemList
+	xsltFreeGlobalVariables
+	xsltVariableLookup
+	xsltXPathVariableLookup
+
+	xsltMessage
+	xsltSetGenericErrorFunc
+	xsltSetGenericDebugFunc
+	xsltDocumentSortFunction
+	xsltDoSortFunction
+	xsltSaveResultTo
+	xsltSaveResultToFilename
+	xsltSaveResultToFile
+	xsltSaveResultToFd
+
+	xsltMaxDepth
+	xsltSetXIncludeDefault
+	xsltLibxmlVersion
+	xsltLibxsltVersion
+	xsltEngineVersion
+
+	xsltRunStylesheet
+	xsltLoadStylesheetPI
+	xsltRegisterAllElement
+	
+
+
+	

Added: packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt.dsw
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt.dsw	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt.dsw	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,44 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "libxslt_so"=.\libxslt_so.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "xsltproc"=.\xsltproc.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name libxslt_so
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+

Added: packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt_so.dsp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt_so.dsp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/libxslt/libxslt_so.dsp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,247 @@
+# Microsoft Developer Studio Project File - Name="libxslt_so" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=libxslt_so - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "libxslt_so.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "libxslt_so.mak" CFG="libxslt_so - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "libxslt_so - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "libxslt_so - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "libxslt_so - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\gnome-xml" /I "..\..\..\gnome-xml\include" /I "..\.." /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /D "WIN32" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 ..\..\..\gnome-xml\win32\libxml2\release_so\libxml2.lib /nologo /dll /machine:I386 /out:"Release/libxslt.dll"
+
+!ELSEIF  "$(CFG)" == "libxslt_so - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\..\gnome-xml\include" /I "..\..\..\gnome-xml" /I "..\.." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBXSLT_SO_EXPORTS" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 ..\..\..\gnome-xml\win32\libxml2\debug_so\libxml2.lib /nologo /dll /debug /machine:I386 /out:"Debug/libxslt.dll" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "libxslt_so - Win32 Release"
+# Name "libxslt_so - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\libxslt\attributes.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\documents.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\extensions.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\extra.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\functions.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\imports.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\keys.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\libxslt.def
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\namespaces.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\numbers.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\pattern.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\preproc.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\templates.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\transform.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\variables.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\xslt.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\xsltutils.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\..\libxslt\attributes.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\config.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\documents.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\extensions.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\extra.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\functions.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\imports.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\keys.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\namespaces.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\numbersInternals.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\pattern.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\preproc.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\templates.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\transform.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\variables.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\xslt.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\xsltconfig.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\xsltInternals.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\libxslt\xsltutils.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project

Added: packages/libxslt/branches/upstream/1.1.16/win32/libxslt/xsltproc.dsp
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/libxslt/xsltproc.dsp	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/libxslt/xsltproc.dsp	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,102 @@
+# Microsoft Developer Studio Project File - Name="xsltproc" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=xsltproc - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "xsltproc.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "xsltproc.mak" CFG="xsltproc - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "xsltproc - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "xsltproc - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "xsltproc - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\gnome-xml\include" /I "..\..\..\gnome-xml" /I "..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 ..\..\..\gnome-xml\win32\libxml2\release_so\libxml2.lib Release/libxslt.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF  "$(CFG)" == "xsltproc - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\gnome-xml\include" /I "..\..\..\gnome-xml" /I "..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 ..\..\..\gnome-xml\win32\libxml2\debug_so\libxml2.lib Debug/libxslt.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "xsltproc - Win32 Release"
+# Name "xsltproc - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\libxslt\xsltproc.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project

Added: packages/libxslt/branches/upstream/1.1.16/win32/libxslt.def.src
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/win32/libxslt.def.src	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/win32/libxslt.def.src	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,229 @@
+LIBRARY libxslt
+EXPORTS
+xslDebugStatus DATA
+xsltDocDefaultLoader DATA
+xsltEngineVersion DATA
+xsltExtMarker DATA
+xsltGenericDebug DATA
+xsltGenericDebugContext DATA
+xsltGenericError DATA
+xsltGenericErrorContext DATA
+xsltLibxmlVersion DATA
+xsltLibxsltVersion DATA
+xsltMaxDepth DATA
+xslAddCall
+xslDropCall
+xslHandleDebugger
+xsltAddKey
+xsltAddStackElemList
+xsltAddTemplate
+xsltAllocateExtra
+xsltAllocateExtraCtxt
+xsltApplyAttributeSet
+xsltApplyImports
+xsltApplyOneTemplate
+xsltApplyStripSpaces
+xsltApplyStylesheet
+xsltApplyStylesheetUser
+xsltApplyTemplates
+xsltAttrListTemplateProcess
+xsltAttrTemplateProcess
+xsltAttrTemplateValueProcess
+xsltAttrTemplateValueProcessNode
+xsltAttribute
+xsltCalibrateAdjust
+xsltCallTemplate
+xsltCheckExtPrefix
+xsltCheckRead
+xsltCheckWrite
+xsltChoose
+xsltCleanupGlobals
+xsltCleanupTemplates
+xsltComment
+xsltCompileAttr
+xsltCompilePattern
+xsltComputeSortResult
+xsltCopy
+xsltCopyNamespace
+xsltCopyNamespaceList
+xsltCopyOf
+xsltCopyTextString
+xsltCreateRVT
+xsltDebug
+xsltDebugDumpExtensions
+xsltDebugGetDefaultTrace
+xsltDebugSetDefaultTrace
+xsltDecimalFormatGetByName
+xsltDefaultSortFunction
+xsltDoSortFunction
+xsltDocumentComp
+xsltDocumentElem
+xsltDocumentFunction
+xsltDocumentSortFunction
+xsltElement
+xsltElementAvailableFunction
+xsltEvalAVT
+xsltEvalAttrValueTemplate
+xsltEvalGlobalVariables
+xsltEvalOneUserParam
+xsltEvalStaticAttrValueTemplate
+xsltEvalTemplateString
+xsltEvalUserParams
+xsltEvalXPathPredicate
+xsltEvalXPathString
+xsltEvalXPathStringNs
+xsltExtElementLookup
+/*xsltExtFunctionLookup*/
+xsltExtModuleElementLookup
+xsltExtModuleElementPreComputeLookup
+xsltExtModuleFunctionLookup
+xsltExtModuleTopLevelLookup
+xsltFindDocument
+xsltFindElemSpaceHandling
+xsltFindTemplate
+xsltForEach
+xsltFormatNumberConversion
+xsltFormatNumberFunction
+xsltFreeAVTList
+xsltFreeAttributeSetsHashes
+xsltFreeCompMatchList
+xsltFreeCtxtExts
+xsltFreeDocumentKeys
+xsltFreeDocuments
+xsltFreeExts
+xsltFreeGlobalVariables
+xsltFreeKeys
+xsltFreeNamespaceAliasHashes
+xsltFreeRVTs
+xsltFreeSecurityPrefs
+xsltFreeStackElemList
+xsltFreeStyleDocuments
+xsltFreeStylePreComps
+xsltFreeStylesheet
+xsltFreeTemplateHashes
+xsltFreeTransformContext
+xsltFunctionAvailableFunction
+xsltFunctionNodeSet
+xsltGenerateIdFunction
+xsltGetCNsProp
+xsltGetDebuggerStatus
+xsltGetDefaultSecurityPrefs
+xsltGetExtData
+xsltGetExtInfo
+xsltGetKey
+xsltGetNamespace
+xsltGetNsProp
+xsltGetPlainNamespace
+xsltGetProfileInformation
+xsltGetQNameURI
+xsltGetQNameURI2
+xsltGetSecurityPrefs
+xsltGetSpecialNamespace
+xsltGetTemplate
+xsltGetUTF8Char
+xsltGetXIncludeDefault
+xsltIf
+xsltInitCtxtExts
+xsltInitCtxtKeys
+xsltInitElemPreComp
+xsltIsBlank
+xsltKeyFunction
+xsltLoadDocument
+xsltLoadStyleDocument
+xsltLoadStylesheetPI
+/*xsltMatchPattern*/
+xsltMessage
+xsltNamespaceAlias
+xsltNeedElemSpaceHandling
+xsltNewDocument
+xsltNewElemPreComp
+xsltNewSecurityPrefs
+xsltNewStyleDocument
+xsltNewStylesheet
+xsltNewTransformContext
+xsltNextImport
+xsltNormalizeCompSteps
+xsltNumber
+xsltNumberFormat
+xsltParseGlobalParam
+xsltParseGlobalVariable
+xsltParseStylesheetAttributeSet
+xsltParseStylesheetCallerParam
+xsltParseStylesheetDoc
+xsltParseStylesheetFile
+xsltParseStylesheetImport
+xsltParseStylesheetImportedDoc
+xsltParseStylesheetInclude
+xsltParseStylesheetOutput
+xsltParseStylesheetParam
+xsltParseStylesheetProcess
+xsltParseStylesheetVariable
+xsltParseTemplateContent
+xsltPreComputeExtModuleElement
+xsltPrintErrorContext
+xsltProcessingInstruction
+xsltProfileStylesheet
+xsltQuoteOneUserParam
+xsltQuoteUserParams
+xsltRegisterAllElement
+xsltRegisterAllExtras
+xsltRegisterAllFunctions
+xsltRegisterExtElement
+xsltRegisterExtFunction
+xsltRegisterExtModule
+xsltRegisterExtModuleElement
+xsltRegisterExtModuleFull
+xsltRegisterExtModuleFunction
+xsltRegisterExtModuleTopLevel
+xsltRegisterExtPrefix
+xsltRegisterExtras
+xsltRegisterPersistRVT
+xsltRegisterTestModule
+xsltRegisterTmpRVT
+xsltResolveStylesheetAttributeSet
+xsltRunStylesheet
+xsltRunStylesheetUser
+xsltSaveProfiling
+xsltSaveResultTo
+xsltSaveResultToFd
+xsltSaveResultToFile
+xsltSaveResultToFilename
+xsltSaveResultToString
+xsltSecurityAllow
+xsltSecurityForbid
+xsltSetCtxtParseOptions
+xsltSetCtxtSecurityPrefs
+xsltSetCtxtSortFunc
+xsltSetDebuggerCallbacks
+xsltSetDebuggerStatus
+xsltSetDefaultSecurityPrefs
+xsltSetGenericDebugFunc
+xsltSetGenericErrorFunc
+xsltSetLoaderFunc
+xsltSetSecurityPrefs
+xsltSetSortFunc
+xsltSetTransformErrorFunc
+xsltSetXIncludeDefault
+xsltShutdownCtxtExts
+xsltShutdownExts
+xsltSort
+xsltSplitQName
+xsltStyleGetExtData
+xsltStylePreCompute
+xsltSystemPropertyFunction
+xsltTemplateProcess
+xsltTestCompMatchList
+xsltText
+xsltTimestamp
+xsltTransformError
+xsltUnparsedEntityURIFunction
+xsltUnregisterExtModule
+xsltUnregisterExtModuleElement
+xsltUnregisterExtModuleFunction
+xsltUnregisterExtModuleTopLevel
+xsltValueOf
+xsltVariableLookup
+xsltXPathCompile
+xsltXPathFunctionLookup
+xsltXPathGetTransformContext
+xsltXPathVariableLookup

Added: packages/libxslt/branches/upstream/1.1.16/xslt-config.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/xslt-config.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/xslt-config.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,137 @@
+#! /bin/sh
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+exec_prefix_set=no
+includedir=@includedir@
+libdir=@libdir@
+
+usage()
+{
+    cat <<EOF
+Usage: xslt-config [OPTION]...
+
+Known values for OPTION are:
+
+  --prefix=DIR		change XSLT prefix [default $prefix]
+  --exec-prefix=DIR	change XSLT executable prefix [default $exec_prefix]
+  --libs		print library linking information
+  --cflags		print pre-processor and compiler flags
+  --plugins		print plugin directory
+  --help		display this help and exit
+  --version		output version information
+EOF
+
+    exit $1
+}
+
+if test $# -eq 0; then
+    usage 1
+fi
+
+cflags=false
+libs=false
+
+while test $# -gt 0; do
+    case "$1" in
+    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+    *) optarg= ;;
+    esac
+
+    case "$1" in
+    --prefix=*)
+	prefix=$optarg
+	if test $exec_prefix_set = no ; then
+	    exec_prefix=$optarg
+	fi
+	;;
+
+    --prefix)
+	echo $prefix
+	;;
+
+    --exec-prefix=*)
+	exec_prefix=$optarg
+	exec_prefix_set=yes
+	;;
+
+    --exec-prefix)
+	echo $exec_prefix
+	;;
+
+    --version)
+	echo @VERSION@
+	exit 0
+	;;
+
+    --plugins)
+	echo @LIBXSLT_DEFAULT_PLUGINS_PATH@
+	exit 0
+	;;
+
+    --help)
+	usage 0
+	;;
+
+    --cflags)
+       	cflags=true
+       	;;
+
+    --libs)
+       	libs=true
+       	;;
+
+    *)
+	usage
+	exit 1
+	;;
+    esac
+    shift
+done
+
+the_libs="@XSLT_LIBDIR@ @XSLT_LIBS@"
+if test "$includedir" != "/usr/include"; then
+    the_flags="$the_flags -I$includedir `@XML_CONFIG@ --cflags`"
+else
+    the_flags="$the_flags `@XML_CONFIG@ --cflags`"
+fi
+
+if $cflags; then
+    all_flags="$the_flags"
+fi
+
+if $libs; then
+    all_flags="$all_flags $services $the_libs"
+fi
+
+if test -z "$all_flags" || test "x$all_flags" = "x "; then
+    exit 1
+fi
+
+# Straight out any possible duplicates, but be careful to
+# get `-lfoo -lbar -lbaz' for `-lfoo -lbaz -lbar -lbaz'
+other_flags=
+rev_libs=
+for i in $all_flags; do
+    case "$i" in
+    # a library, save it for later, in reverse order
+    -l*) rev_libs="$i $rev_libs" ;;
+    *)
+	case " $other_flags " in
+	*\ $i\ *) ;;				# already there
+	*) other_flags="$other_flags $i" ;;	# add it to output
+        esac ;;
+    esac
+done
+
+ord_libs=
+for i in $rev_libs; do
+    case " $ord_libs " in
+    *\ $i\ *) ;;			# already there
+    *) ord_libs="$i $ord_libs" ;;	# add it to output in reverse order
+    esac
+done
+
+echo $other_flags $ord_libs
+
+exit 0

Added: packages/libxslt/branches/upstream/1.1.16/xsltConf.sh.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/xsltConf.sh.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/xsltConf.sh.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,7 @@
+#
+# Configuration file for using the xslt library
+#
+XSLT_LIBDIR="@XSLT_LIBDIR@"
+XSLT_LIBS="@XSLT_LIBS@"
+XSLT_INCLUDEDIR="@XSLT_INCLUDEDIR@"
+MODULE_VERSION="xslt- at VERSION@"

Added: packages/libxslt/branches/upstream/1.1.16/xsltproc/Makefile.am
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/xsltproc/Makefile.am	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/xsltproc/Makefile.am	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,26 @@
+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/libxslt -I$(top_srcdir)/libexslt \
+           -I$(top_builddir) -I$(top_builddir)/libxslt \
+	   -I$(top_builddir)/libexslt $(LIBXML_CFLAGS) $(CFLAGS)
+
+EXTRA_PROGRAMS=
+bin_PROGRAMS = xsltproc $(XSLTPROCDV)
+
+AM_CFLAGS = $(LIBGCRYPT_CFLAGS)
+
+xsltproc_SOURCES = xsltproc.c
+xsltproc_LDFLAGS = 
+xsltproc_DEPENDENCIES = $(DEPS)
+
+DEPS = $(top_builddir)/libxslt/libxslt.la \
+	$(top_builddir)/libexslt/libexslt.la 
+
+LDADDS = @STATIC_BINARIES@ \
+         $(top_builddir)/libxslt/libxslt.la \
+         $(top_builddir)/libexslt/libexslt.la \
+	@LIBXML_LIBS@ $(EXTRA_LIBS) @WIN32_EXTRA_LIBADD@
+
+xsltproc_LDADD = $(LIBGCRYPT_LIBS) $(LDADDS)
+
+xsltproc.dv: xsltproc.o
+	$(CC) $(CFLAGS) -o xsltproc xsltproc.o ../libexslt/.libs/libexslt.a ../libxslt/.libs/libxslt.a @LIBXML_LIBS@ $(EXTRA_LIBS) $(LIBGCRYPT_LIBS)
+

Added: packages/libxslt/branches/upstream/1.1.16/xsltproc/Makefile.in
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/xsltproc/Makefile.in	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/xsltproc/Makefile.in	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,526 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+EXTRA_PROGRAMS =
+bin_PROGRAMS = xsltproc$(EXEEXT) $(am__EXEEXT_1)
+subdir = xsltproc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__EXEEXT_1 = @XSLTPROCDV@
+am__installdirs = "$(DESTDIR)$(bindir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am_xsltproc_OBJECTS = xsltproc.$(OBJEXT)
+xsltproc_OBJECTS = $(am_xsltproc_OBJECTS)
+am__DEPENDENCIES_1 =
+am__DEPENDENCIES_2 = $(top_builddir)/libxslt/libxslt.la \
+	$(top_builddir)/libexslt/libexslt.la $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(xsltproc_SOURCES)
+DIST_SOURCES = $(xsltproc_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXSLT_INCLUDEDIR = @EXSLT_INCLUDEDIR@
+EXSLT_LIBDIR = @EXSLT_LIBDIR@
+EXSLT_LIBS = @EXSLT_LIBS@
+EXTRA_LIBS = @EXTRA_LIBS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+HTML_DIR = @HTML_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBEXSLT_MAJOR_VERSION = @LIBEXSLT_MAJOR_VERSION@
+LIBEXSLT_MICRO_VERSION = @LIBEXSLT_MICRO_VERSION@
+LIBEXSLT_MINOR_VERSION = @LIBEXSLT_MINOR_VERSION@
+LIBEXSLT_VERSION = @LIBEXSLT_VERSION@
+LIBEXSLT_VERSION_EXTRA = @LIBEXSLT_VERSION_EXTRA@
+LIBEXSLT_VERSION_INFO = @LIBEXSLT_VERSION_INFO@
+LIBEXSLT_VERSION_NUMBER = @LIBEXSLT_VERSION_NUMBER@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_REQUIRED_VERSION = @LIBXML_REQUIRED_VERSION@
+LIBXML_SRC = @LIBXML_SRC@
+LIBXSLT_DEFAULT_PLUGINS_PATH = @LIBXSLT_DEFAULT_PLUGINS_PATH@
+LIBXSLT_MAJOR_MINOR_VERSION = @LIBXSLT_MAJOR_MINOR_VERSION@
+LIBXSLT_MAJOR_VERSION = @LIBXSLT_MAJOR_VERSION@
+LIBXSLT_MICRO_VERSION = @LIBXSLT_MICRO_VERSION@
+LIBXSLT_MINOR_VERSION = @LIBXSLT_MINOR_VERSION@
+LIBXSLT_VERSION = @LIBXSLT_VERSION@
+LIBXSLT_VERSION_EXTRA = @LIBXSLT_VERSION_EXTRA@
+LIBXSLT_VERSION_INFO = @LIBXSLT_VERSION_INFO@
+LIBXSLT_VERSION_NUMBER = @LIBXSLT_VERSION_NUMBER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MV = @MV@
+M_LIBS = @M_LIBS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PYTHON = @PYTHON@
+PYTHONSODV = @PYTHONSODV@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
+PYTHON_SUBDIR = @PYTHON_SUBDIR@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+RELDATE = @RELDATE@
+RM = @RM@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STATIC_BINARIES = @STATIC_BINARIES@
+STRIP = @STRIP@
+TAR = @TAR@
+VERSION = @VERSION@
+WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
+WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
+WITH_CRYPTO = @WITH_CRYPTO@
+WITH_DEBUGGER = @WITH_DEBUGGER@
+WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
+WITH_MODULES = @WITH_MODULES@
+WITH_MODULES_FALSE = @WITH_MODULES_FALSE@
+WITH_MODULES_TRUE = @WITH_MODULES_TRUE@
+WITH_PERL_FALSE = @WITH_PERL_FALSE@
+WITH_PERL_TRUE = @WITH_PERL_TRUE@
+WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
+WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
+WITH_TRIO = @WITH_TRIO@
+WITH_XSLT_DEBUG = @WITH_XSLT_DEBUG@
+XML_CONFIG = @XML_CONFIG@
+XSLTPROCDV = @XSLTPROCDV@
+XSLT_INCLUDEDIR = @XSLT_INCLUDEDIR@
+XSLT_LIBDIR = @XSLT_LIBDIR@
+XSLT_LIBS = @XSLT_LIBS@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/libxslt -I$(top_srcdir)/libexslt \
+           -I$(top_builddir) -I$(top_builddir)/libxslt \
+	   -I$(top_builddir)/libexslt $(LIBXML_CFLAGS) $(CFLAGS)
+
+AM_CFLAGS = $(LIBGCRYPT_CFLAGS)
+xsltproc_SOURCES = xsltproc.c
+xsltproc_LDFLAGS = 
+xsltproc_DEPENDENCIES = $(DEPS)
+DEPS = $(top_builddir)/libxslt/libxslt.la \
+	$(top_builddir)/libexslt/libexslt.la 
+
+LDADDS = @STATIC_BINARIES@ \
+         $(top_builddir)/libxslt/libxslt.la \
+         $(top_builddir)/libexslt/libexslt.la \
+	@LIBXML_LIBS@ $(EXTRA_LIBS) @WIN32_EXTRA_LIBADD@
+
+xsltproc_LDADD = $(LIBGCRYPT_LIBS) $(LDADDS)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  xsltproc/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  xsltproc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	     || test -f $$p1 \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+	  else :; fi; \
+	done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+	done
+
+clean-binPROGRAMS:
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  echo " rm -f $$p $$f"; \
+	  rm -f $$p $$f ; \
+	done
+xsltproc$(EXEEXT): $(xsltproc_OBJECTS) $(xsltproc_DEPENDENCIES) 
+	@rm -f xsltproc$(EXEEXT)
+	$(LINK) $(xsltproc_LDFLAGS) $(xsltproc_OBJECTS) $(xsltproc_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xsltproc.Po at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ at am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+	clean-generic clean-libtool ctags distclean distclean-compile \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-binPROGRAMS install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-info-am
+
+
+xsltproc.dv: xsltproc.o
+	$(CC) $(CFLAGS) -o xsltproc xsltproc.o ../libexslt/.libs/libexslt.a ../libxslt/.libs/libxslt.a @LIBXML_LIBS@ $(EXTRA_LIBS) $(LIBGCRYPT_LIBS)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: packages/libxslt/branches/upstream/1.1.16/xsltproc/xsltproc.c
===================================================================
--- packages/libxslt/branches/upstream/1.1.16/xsltproc/xsltproc.c	2006-05-26 08:18:05 UTC (rev 549)
+++ packages/libxslt/branches/upstream/1.1.16/xsltproc/xsltproc.c	2006-05-26 08:18:23 UTC (rev 550)
@@ -0,0 +1,846 @@
+/*
+ * xsltproc.c: user program for the XSL Transformation 1.0 engine
+ *
+ * See Copyright for the status of this software.
+ *
+ * daniel at veillard.com
+ */
+
+#include "libxslt/libxslt.h"
+#include "libexslt/exslt.h"
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STDARG_H
+#include <stdarg.h>
+#endif
+#include <libxml/xmlmemory.h>
+#include <libxml/debugXML.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/xmlIO.h>
+#ifdef LIBXML_XINCLUDE_ENABLED
+#include <libxml/xinclude.h>
+#endif
+#ifdef LIBXML_CATALOG_ENABLED
+#include <libxml/catalog.h>
+#endif
+#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
+#include <libxml/uri.h>
+
+#include <libxslt/xslt.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/transform.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/extensions.h>
+#include <libxslt/security.h>
+
+#include <libexslt/exsltconfig.h>
+
+#if defined(WIN32) && !defined (__CYGWIN__)
+#if defined(_MSC_VER) || defined(__MINGW32__)
+#include <winsock2.h>
+#define gettimeofday(p1,p2)
+#define snprintf _snprintf
+#endif /* _MS_VER */
+#else /* WIN32 */
+#if defined(HAVE_SYS_TIME_H)
+#include <sys/time.h>
+#elif defined(HAVE_TIME_H)
+#include <time.h>
+#endif
+#endif /* WIN32 */
+
+#ifdef HAVE_SYS_TIMEB_H
+#include <sys/timeb.h>
+#endif
+
+static int debug = 0;
+static int repeat = 0;
+static int timing = 0;
+static int dumpextensions = 0;
+static int novalid = 0;
+static int nodtdattr = 0;
+static int noout = 0;
+static int nodict = 0;
+#ifdef LIBXML_HTML_ENABLED
+static int html = 0;
+#endif
+static int load_trace = 0;
+#ifdef LIBXML_XINCLUDE_ENABLED
+static int xinclude = 0;
+#endif
+static int profile = 0;
+
+#define MAX_PARAMETERS 64
+#define MAX_PATHS 64
+
+static int options = XSLT_PARSE_OPTIONS;
+static const char *params[MAX_PARAMETERS + 1];
+static int nbparams = 0;
+static xmlChar *strparams[MAX_PARAMETERS + 1];
+static int nbstrparams = 0;
+static xmlChar *paths[MAX_PATHS + 1];
+static int nbpaths = 0;
+static char *output = NULL;
+static int errorno = 0;
+static const char *writesubtree = NULL;
+
+/*
+ * Entity loading control and customization.
+ */
+static
+void parsePath(const xmlChar *path) {
+    const xmlChar *cur;
+
+    if (path == NULL)
+	return;
+    while (*path != 0) {
+	if (nbpaths >= MAX_PATHS) {
+	    fprintf(stderr, "MAX_PATHS reached: too many paths\n");
+	    return;
+	}
+	cur = path;
+	while ((*cur == ' ') || (*cur == ':'))
+	    cur++;
+	path = cur;
+	while ((*cur != 0) && (*cur != ' ') && (*cur != ':'))
+	    cur++;
+	if (cur != path) {
+	    paths[nbpaths] = xmlStrndup(path, cur - path);
+	    if (paths[nbpaths] != NULL)
+		nbpaths++;
+	    path = cur;
+	}
+    }
+}
+
+xmlExternalEntityLoader defaultEntityLoader = NULL;
+
+static xmlParserInputPtr 
+xsltprocExternalEntityLoader(const char *URL, const char *ID,
+			     xmlParserCtxtPtr ctxt) {
+    xmlParserInputPtr ret;
+    warningSAXFunc warning = NULL;
+
+    int i;
+    const char *lastsegment = URL;
+    const char *iter = URL;
+
+    if (nbpaths > 0) {
+	while (*iter != 0) {
+	    if (*iter == '/')
+		lastsegment = iter + 1;
+	    iter++;
+	}
+    }
+
+    if ((ctxt != NULL) && (ctxt->sax != NULL)) {
+	warning = ctxt->sax->warning;
+	ctxt->sax->warning = NULL;
+    }
+
+    if (defaultEntityLoader != NULL) {
+	ret = defaultEntityLoader(URL, ID, ctxt);
+	if (ret != NULL) {
+	    if (warning != NULL)
+		ctxt->sax->warning = warning;
+	    if (load_trace) {
+		fprintf \
+			(stderr,
+			 "Loaded URL=\"%s\" ID=\"%s\"\n",
+			 URL ? URL : "(null)",
+			 ID ? ID : "(null)");
+	    }
+	    return(ret);
+	}
+    }
+    for (i = 0;i < nbpaths;i++) {
+	xmlChar *newURL;
+
+	newURL = xmlStrdup((const xmlChar *) paths[i]);
+	newURL = xmlStrcat(newURL, (const xmlChar *) "/");
+	newURL = xmlStrcat(newURL, (const xmlChar *) lastsegment);
+	if (newURL != NULL) {
+	    ret = defaultEntityLoader((const char *)newURL, ID, ctxt);
+	    if (ret != NULL) {
+		if (warning != NULL)
+		    ctxt->sax->warning = warning;
+		if (load_trace) {
+		    fprintf \
+		    	(stderr,
+		    	 "Loaded URL=\"%s\" ID=\"%s\"\n",
+			 newURL,
+		    	 ID ? ID : "(null)");
+		}
+		xmlFree(newURL);
+		return(ret);
+	    }
+	    xmlFree(newURL);
+	}
+    }
+    if (warning != NULL) {
+	ctxt->sax->warning = warning;
+	if (URL != NULL)
+	    warning(ctxt, "failed to load external entity \"%s\"\n", URL);
+	else if (ID != NULL)
+	    warning(ctxt, "failed to load external entity \"%s\"\n", ID);
+    }
+    return(NULL);
+}
+
+/*
+ * Internal timing routines to remove the necessity to have unix-specific
+ * function calls
+ */
+#ifndef HAVE_GETTIMEOFDAY 
+#ifdef HAVE_SYS_TIMEB_H
+#ifdef HAVE_SYS_TIME_H
+#ifdef HAVE_FTIME
+
+int
+my_gettimeofday(struct timeval *tvp, void *tzp)
+{
+	struct timeb timebuffer;
+
+	ftime(&timebuffer);
+	if (tvp) {
+		tvp->tv_sec = timebuffer.time;
+		tvp->tv_usec = timebuffer.millitm * 1000L;
+	}
+	return (0);
+}
+#define HAVE_GETTIMEOFDAY 1
+#define gettimeofday my_gettimeofday
+
+#endif /* HAVE_FTIME */
+#endif /* HAVE_SYS_TIME_H */
+#endif /* HAVE_SYS_TIMEB_H */
+#endif /* !HAVE_GETTIMEOFDAY */
+
+#if defined(HAVE_GETTIMEOFDAY)
+static struct timeval begin, endtime;
+/*
+ * startTimer: call where you want to start timing
+ */
+static void startTimer(void)
+{
+    gettimeofday(&begin,NULL);
+}
+/*
+ * endTimer: call where you want to stop timing and to print out a
+ *           message about the timing performed; format is a printf
+ *           type argument
+ */
+static void endTimer(const char *format, ...)
+{
+    long msec;
+    va_list ap;
+
+    gettimeofday(&endtime, NULL);
+    msec = endtime.tv_sec - begin.tv_sec;
+    msec *= 1000;
+    msec += (endtime.tv_usec - begin.tv_usec) / 1000;
+
+#ifndef HAVE_STDARG_H
+#error "endTimer required stdarg functions"
+#endif
+    va_start(ap, format);
+    vfprintf(stderr,format,ap);
+    va_end(ap);
+
+    fprintf(stderr, " took %ld ms\n", msec);
+}
+#elif defined(HAVE_TIME_H)
+/*
+ * No gettimeofday function, so we have to make do with calling clock.
+ * This is obviously less accurate, but there's little we can do about
+ * that.
+ */
+#ifndef CLOCKS_PER_SEC
+#define CLOCKS_PER_SEC 100
+#endif
+
+clock_t begin, endtime;
+static void startTimer(void)
+{
+    begin=clock();
+}
+static void endTimer(char *format, ...)
+{
+    long msec;
+    va_list ap;
+
+    endtime=clock();
+    msec = ((endtime-begin) * 1000) / CLOCKS_PER_SEC;
+
+#ifndef HAVE_STDARG_H
+#error "endTimer required stdarg functions"
+#endif
+    va_start(ap, format);
+    vfprintf(stderr,format,ap);
+    va_end(ap);
+    fprintf(stderr, " took %ld ms\n", msec);
+}
+#else
+/*
+ * We don't have a gettimeofday or time.h, so we just don't do timing
+ */
+static void startTimer(void)
+{
+  /*
+   * Do nothing
+   */
+}
+static void endTimer(char *format, ...)
+{
+  /*
+   * We cannot do anything because we don't have a timing function
+   */
+#ifdef HAVE_STDARG_H
+    va_start(ap, format);
+    vfprintf(stderr,format,ap);
+    va_end(ap);
+    fprintf(stderr, " was not timed\n", msec);
+#else
+  /* We don't have gettimeofday, time or stdarg.h, what crazy world is
+   * this ?!
+   */
+#endif
+}
+#endif
+
+/*
+ * xsltSubtreeCheck:
+ *
+ * allow writes only on a subtree specified on the command line
+ */
+static int
+xsltSubtreeCheck(xsltSecurityPrefsPtr sec ATTRIBUTE_UNUSED,
+	          xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED,
+		  const char *value ATTRIBUTE_UNUSED) {
+    int len, ret;
+
+    if (writesubtree == NULL)
+	return(0);
+    if (value == NULL)
+	return(-1);
+
+    len = xmlStrlen(BAD_CAST writesubtree);
+    ret = xmlStrncmp(BAD_CAST writesubtree, BAD_CAST value, len);
+    if (ret == 0)
+	return(1);
+    return(0);
+}
+
+static void
+xsltProcess(xmlDocPtr doc, xsltStylesheetPtr cur, const char *filename) {
+    xmlDocPtr res;
+    xsltTransformContextPtr ctxt;
+   
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+    if (xinclude) {
+	if (timing)
+	    startTimer();
+#if LIBXML_VERSION >= 20603
+	xmlXIncludeProcessFlags(doc, XSLT_PARSE_OPTIONS);
+#else
+	xmlXIncludeProcess(doc);
+#endif
+	if (timing) {
+	    endTimer("XInclude processing %s", filename);
+	}
+    }
+#endif
+    if (timing)
+        startTimer();
+    if (output == NULL) {
+	if (repeat) {
+	    int j;
+
+	    for (j = 1; j < repeat; j++) {
+		res = xsltApplyStylesheet(cur, doc, params);
+		xmlFreeDoc(res);
+		xmlFreeDoc(doc);
+#ifdef LIBXML_HTML_ENABLED
+		if (html)
+		    doc = htmlReadFile(filename, NULL, options);
+		else
+#endif
+		    doc = xmlReadFile(filename, NULL, options);
+	    }
+	}
+	ctxt = xsltNewTransformContext(cur, doc);
+	if (ctxt == NULL)
+	    return;
+	xsltSetCtxtParseOptions(ctxt, options);
+	if (xinclude)
+	    ctxt->xinclude = 1;
+	if (profile) {
+	    res = xsltApplyStylesheetUser(cur, doc, params, NULL,
+		                          stderr, ctxt);
+	} else {
+	    res = xsltApplyStylesheetUser(cur, doc, params, NULL,
+		                          NULL, ctxt);
+	}
+	if (ctxt->state == XSLT_STATE_ERROR)
+	    errorno = 9;
+	else if (ctxt->state == XSLT_STATE_STOPPED)
+	    errorno = 10;
+	xsltFreeTransformContext(ctxt);
+	if (timing) {
+	    if (repeat)
+		endTimer("Applying stylesheet %d times", repeat);
+	    else
+		endTimer("Applying stylesheet");
+	}
+	xmlFreeDoc(doc);
+	if (res == NULL) {
+	    fprintf(stderr, "no result for %s\n", filename);
+	    return;
+	}
+	if (noout) {
+	    xmlFreeDoc(res);
+	    return;
+	}
+#ifdef LIBXML_DEBUG_ENABLED
+	if (debug)
+	    xmlDebugDumpDocument(stdout, res);
+	else {
+#endif
+	    if (cur->methodURI == NULL) {
+		if (timing)
+		    startTimer();
+		xsltSaveResultToFile(stdout, res, cur);
+		if (timing)
+		    endTimer("Saving result");
+	    } else {
+		if (xmlStrEqual
+		    (cur->method, (const xmlChar *) "xhtml")) {
+		    fprintf(stderr, "non standard output xhtml\n");
+		    if (timing)
+			startTimer();
+		    xsltSaveResultToFile(stdout, res, cur);
+		    if (timing)
+			endTimer("Saving result");
+		} else {
+		    fprintf(stderr,
+			    "Unsupported non standard output %s\n",
+			    cur->method);
+		    errorno = 7;
+		}
+	    }
+#ifdef LIBXML_DEBUG_ENABLED
+	}
+#endif
+
+	xmlFreeDoc(res);
+    } else {
+
+	ctxt = xsltNewTransformContext(cur, doc);
+	if (ctxt == NULL)
+	    return;
+	if (profile) {
+	    xsltRunStylesheetUser(cur, doc, params, output,
+		                        NULL, NULL, stderr, ctxt);
+	} else {
+	    xsltRunStylesheetUser(cur, doc, params, output,
+		                        NULL, NULL, NULL, ctxt);
+	}
+	if (ctxt->state == XSLT_STATE_ERROR)
+	    errorno = 9;
+	else if (ctxt->state == XSLT_STATE_STOPPED)
+	    errorno = 10;
+	xsltFreeTransformContext(ctxt);
+	if (timing)
+	    endTimer("Running stylesheet and saving result");
+	xmlFreeDoc(doc);
+    }
+}
+
+static void usage(const char *name) {
+    printf("Usage: %s [options] stylesheet file [file ...]\n", name);
+    printf("   Options:\n");
+    printf("\t--version or -V: show the version of libxml and libxslt used\n");
+    printf("\t--verbose or -v: show logs of what's happening\n");
+    printf("\t--output file or -o file: save to a given file\n");
+    printf("\t--timing: display the time used\n");
+    printf("\t--repeat: run the transformation 20 times\n");
+#ifdef LIBXML_DEBUG_ENABLED
+    printf("\t--debug: dump the tree of the result instead\n");
+#endif
+    printf("\t--dumpextensions: dump the registered extension elements and functions to stdout\n");
+    printf("\t--novalid skip the Dtd loading phase\n");
+    printf("\t--nodtdattr do not default attributes from the DTD\n");
+    printf("\t--noout: do not dump the result\n");
+    printf("\t--maxdepth val : increase the maximum depth\n");
+    printf("\t--maxparserdepth val : increase the maximum parser depth\n");
+#ifdef LIBXML_HTML_ENABLED
+    printf("\t--html: the input document is(are) an HTML file(s)\n");
+#endif
+    printf("\t--param name value : pass a (parameter,value) pair\n");
+    printf("\t       value is an UTF8 XPath expression.\n");
+    printf("\t       string values must be quoted like \"'string'\"\n or");
+    printf("\t       use stringparam to avoid it\n");
+    printf("\t--stringparam name value : pass a (parameter, UTF8 string value) pair\n");
+    printf("\t--path 'paths': provide a set of paths for resources\n");
+    printf("\t--nonet : refuse to fetch DTDs or entities over network\n");
+    printf("\t--nowrite : refuse to write to any file or resource\n");
+    printf("\t--nomkdir : refuse to create directories\n");
+    printf("\t--writesubtree path : allow file write only with the path subtree\n");
+#ifdef LIBXML_CATALOG_ENABLED
+    printf("\t--catalogs : use SGML catalogs from $SGML_CATALOG_FILES\n");
+    printf("\t             otherwise XML Catalogs starting from \n");
+    printf("\t         file:///etc/xml/catalog are activated by default\n");
+#endif
+#ifdef LIBXML_XINCLUDE_ENABLED
+    printf("\t--xinclude : do XInclude processing on document intput\n");
+#endif
+    printf("\t--load-trace : print trace of all external entites loaded\n");
+    printf("\t--profile or --norman : dump profiling informations \n");
+    printf("\nProject libxslt home page: http://xmlsoft.org/XSLT/\n");
+    printf("To report bugs and get help: http://xmlsoft.org/XSLT/bugs.html\n");
+}
+
+int
+main(int argc, char **argv)
+{
+    int i;
+    xsltStylesheetPtr cur = NULL;
+    xmlDocPtr doc, style;
+    xsltSecurityPrefsPtr sec = NULL;
+
+    if (argc <= 1) {
+        usage(argv[0]);
+        return (1);
+    }
+
+    xmlInitMemory();
+
+    LIBXML_TEST_VERSION
+
+    sec = xsltNewSecurityPrefs();
+    xsltSetDefaultSecurityPrefs(sec);
+    defaultEntityLoader = xmlGetExternalEntityLoader();
+    xmlSetExternalEntityLoader(xsltprocExternalEntityLoader);
+
+    for (i = 1; i < argc; i++) {
+        if (!strcmp(argv[i], "-"))
+            break;
+
+        if (argv[i][0] != '-')
+            continue;
+#ifdef LIBXML_DEBUG_ENABLED
+        if ((!strcmp(argv[i], "-debug")) || (!strcmp(argv[i], "--debug"))) {
+            debug++;
+        } else
+#endif
+        if ((!strcmp(argv[i], "-v")) ||
+                (!strcmp(argv[i], "-verbose")) ||
+                (!strcmp(argv[i], "--verbose"))) {
+            xsltSetGenericDebugFunc(stderr, NULL);
+        } else if ((!strcmp(argv[i], "-o")) ||
+                   (!strcmp(argv[i], "-output")) ||
+                   (!strcmp(argv[i], "--output"))) {
+            i++;
+#if defined(WIN32) || defined (__CYGWIN__)
+	    output = xmlCanonicPath(argv[i]);
+            if (output == NULL)
+#endif
+		output = (char *) xmlStrdup((xmlChar *) argv[i]);
+        } else if ((!strcmp(argv[i], "-V")) ||
+                   (!strcmp(argv[i], "-version")) ||
+                   (!strcmp(argv[i], "--version"))) {
+            printf("Using libxml %s, libxslt %s and libexslt %s\n",
+                   xmlParserVersion, xsltEngineVersion, exsltLibraryVersion);
+            printf
+    ("xsltproc was compiled against libxml %d, libxslt %d and libexslt %d\n",
+                 LIBXML_VERSION, LIBXSLT_VERSION, LIBEXSLT_VERSION);
+            printf("libxslt %d was compiled against libxml %d\n",
+                   xsltLibxsltVersion, xsltLibxmlVersion);
+            printf("libexslt %d was compiled against libxml %d\n",
+                   exsltLibexsltVersion, exsltLibxmlVersion);
+        } else if ((!strcmp(argv[i], "-repeat"))
+                   || (!strcmp(argv[i], "--repeat"))) {
+            if (repeat == 0)
+                repeat = 20;
+            else
+                repeat = 100;
+        } else if ((!strcmp(argv[i], "-novalid")) ||
+                   (!strcmp(argv[i], "--novalid"))) {
+            novalid++;
+        } else if ((!strcmp(argv[i], "-nodtdattr")) ||
+                   (!strcmp(argv[i], "--nodtdattr"))) {
+            nodtdattr++;
+        } else if ((!strcmp(argv[i], "-noout")) ||
+                   (!strcmp(argv[i], "--noout"))) {
+            noout++;
+#ifdef LIBXML_HTML_ENABLED
+        } else if ((!strcmp(argv[i], "-html")) ||
+                   (!strcmp(argv[i], "--html"))) {
+            html++;
+#endif
+        } else if ((!strcmp(argv[i], "-timing")) ||
+                   (!strcmp(argv[i], "--timing"))) {
+            timing++;
+        } else if ((!strcmp(argv[i], "-profile")) ||
+                   (!strcmp(argv[i], "--profile"))) {
+            profile++;
+        } else if ((!strcmp(argv[i], "-nodict")) ||
+                   (!strcmp(argv[i], "--nodict"))) {
+            nodict++;
+        } else if ((!strcmp(argv[i], "-norman")) ||
+                   (!strcmp(argv[i], "--norman"))) {
+            profile++;
+        } else if ((!strcmp(argv[i], "-nonet")) ||
+                   (!strcmp(argv[i], "--nonet"))) {
+	    defaultEntityLoader = xmlNoNetExternalEntityLoader;
+        } else if ((!strcmp(argv[i], "-nowrite")) ||
+                   (!strcmp(argv[i], "--nowrite"))) {
+	    xsltSetSecurityPrefs(sec, XSLT_SECPREF_WRITE_FILE,
+		                 xsltSecurityForbid);
+	    xsltSetSecurityPrefs(sec, XSLT_SECPREF_CREATE_DIRECTORY,
+		                 xsltSecurityForbid);
+	    xsltSetSecurityPrefs(sec, XSLT_SECPREF_WRITE_NETWORK,
+		                 xsltSecurityForbid);
+        } else if ((!strcmp(argv[i], "-nomkdir")) ||
+                   (!strcmp(argv[i], "--nomkdir"))) {
+	    xsltSetSecurityPrefs(sec, XSLT_SECPREF_CREATE_DIRECTORY,
+		                 xsltSecurityForbid);
+        } else if ((!strcmp(argv[i], "-writesubtree")) ||
+                   (!strcmp(argv[i], "--writesubtree"))) {
+	    i++;
+	    writesubtree = argv[i];
+	    xsltSetSecurityPrefs(sec, XSLT_SECPREF_WRITE_FILE,
+		                 xsltSubtreeCheck);
+        } else if ((!strcmp(argv[i], "-path")) ||
+                   (!strcmp(argv[i], "--path"))) {
+	    i++;
+	    parsePath(BAD_CAST argv[i]);
+#ifdef LIBXML_CATALOG_ENABLED
+        } else if ((!strcmp(argv[i], "-catalogs")) ||
+                   (!strcmp(argv[i], "--catalogs"))) {
+            const char *catalogs;
+
+            catalogs = getenv("SGML_CATALOG_FILES");
+            if (catalogs == NULL) {
+                fprintf(stderr, "Variable $SGML_CATALOG_FILES not set\n");
+            } else {
+                xmlLoadCatalogs(catalogs);
+            }
+#endif
+#ifdef LIBXML_XINCLUDE_ENABLED
+        } else if ((!strcmp(argv[i], "-xinclude")) ||
+                   (!strcmp(argv[i], "--xinclude"))) {
+            xinclude++;
+            xsltSetXIncludeDefault(1);
+#endif
+        } else if ((!strcmp(argv[i], "-load-trace")) ||
+                   (!strcmp(argv[i], "--load-trace"))) {
+            load_trace++;
+        } else if ((!strcmp(argv[i], "-param")) ||
+                   (!strcmp(argv[i], "--param"))) {
+            i++;
+            params[nbparams++] = argv[i++];
+            params[nbparams++] = argv[i];
+            if (nbparams >= MAX_PARAMETERS) {
+                fprintf(stderr, "too many params increase MAX_PARAMETERS \n");
+                return (2);
+            }
+        } else if ((!strcmp(argv[i], "-stringparam")) ||
+                   (!strcmp(argv[i], "--stringparam"))) {
+	    const xmlChar *string;
+	    xmlChar *value;
+
+            i++;
+            params[nbparams++] = argv[i++];
+	    string = (const xmlChar *) argv[i];
+	    if (xmlStrchr(string, '"')) {
+		if (xmlStrchr(string, '\'')) {
+		    fprintf(stderr,
+		    "stringparam contains both quote and double-quotes !\n");
+		    return(8);
+		}
+		value = xmlStrdup((const xmlChar *)"'");
+		value = xmlStrcat(value, string);
+		value = xmlStrcat(value, (const xmlChar *)"'");
+	    } else {
+		value = xmlStrdup((const xmlChar *)"\"");
+		value = xmlStrcat(value, string);
+		value = xmlStrcat(value, (const xmlChar *)"\"");
+	    }
+
+            params[nbparams++] = (const char *) value;
+	    strparams[nbstrparams++] = value;
+            if (nbparams >= MAX_PARAMETERS) {
+                fprintf(stderr, "too many params increase MAX_PARAMETERS \n");
+                return (2);
+            }
+        } else if ((!strcmp(argv[i], "-maxdepth")) ||
+                   (!strcmp(argv[i], "--maxdepth"))) {
+            int value;
+
+            i++;
+            if (sscanf(argv[i], "%d", &value) == 1) {
+                if (value > 0)
+                    xsltMaxDepth = value;
+            }
+        } else if ((!strcmp(argv[i], "-maxparserdepth")) ||
+                   (!strcmp(argv[i], "--maxparserdepth"))) {
+            int value;
+
+            i++;
+            if (sscanf(argv[i], "%d", &value) == 1) {
+                if (value > 0)
+                    xmlParserMaxDepth = value;
+            }
+        } else if ((!strcmp(argv[i],"-dumpextensions"))||
+			(!strcmp(argv[i],"--dumpextensions"))) {
+		dumpextensions++;
+		
+	} else {
+            fprintf(stderr, "Unknown option %s\n", argv[i]);
+            usage(argv[0]);
+            return (3);
+        }
+    }
+    params[nbparams] = NULL;
+
+    if (novalid != 0)
+	options = XML_PARSE_NOENT | XML_PARSE_NOCDATA;
+    else if (nodtdattr)
+        options = XML_PARSE_NOENT | XML_PARSE_DTDLOAD | XML_PARSE_NOCDATA;
+    if (nodict != 0)
+        options |= XML_PARSE_NODICT;
+
+    /*
+     * Register the EXSLT extensions and the test module
+     */
+    exsltRegisterAll();
+    xsltRegisterTestModule();
+
+    if (dumpextensions) 
+	xsltDebugDumpExtensions(NULL);
+
+    for (i = 1; i < argc; i++) {
+        if ((!strcmp(argv[i], "-maxdepth")) ||
+            (!strcmp(argv[i], "--maxdepth"))) {
+            i++;
+            continue;
+        } else if ((!strcmp(argv[i], "-maxparserdepth")) ||
+            (!strcmp(argv[i], "--maxparserdepth"))) {
+            i++;
+            continue;
+        } else if ((!strcmp(argv[i], "-o")) ||
+                   (!strcmp(argv[i], "-output")) ||
+                   (!strcmp(argv[i], "--output"))) {
+            i++;
+	    continue;
+        } else if ((!strcmp(argv[i], "-writesubtree")) ||
+                   (!strcmp(argv[i], "--writesubtree"))) {
+            i++;
+	    continue;
+        } else if ((!strcmp(argv[i], "-path")) ||
+                   (!strcmp(argv[i], "--path"))) {
+            i++;
+	    continue;
+	}
+        if ((!strcmp(argv[i], "-param")) || (!strcmp(argv[i], "--param"))) {
+            i += 2;
+            continue;
+        }
+        if ((!strcmp(argv[i], "-stringparam")) ||
+            (!strcmp(argv[i], "--stringparam"))) {
+            i += 2;
+            continue;
+        }
+        if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) {
+            if (timing)
+                startTimer();
+	    style = xmlReadFile((const char *) argv[i], NULL, options);
+            if (timing) 
+		endTimer("Parsing stylesheet %s", argv[i]);
+	    if (style == NULL) {
+		fprintf(stderr,  "cannot parse %s\n", argv[i]);
+		cur = NULL;
+		errorno = 4;
+	    } else {
+		cur = xsltLoadStylesheetPI(style);
+		if (cur != NULL) {
+		    /* it is an embedded stylesheet */
+		    xsltProcess(style, cur, argv[i]);
+		    xsltFreeStylesheet(cur);
+		    cur = NULL;
+		    goto done;
+		}
+		cur = xsltParseStylesheetDoc(style);
+		if (cur != NULL) {
+		    if (cur->errors != 0) {
+			errorno = 5;
+			goto done;
+		    }
+		    i++;
+		} else {
+		    xmlFreeDoc(style);
+		    errorno = 5;
+		    goto done;
+		}
+	    }
+            break;
+
+        }
+    }
+
+
+    if ((cur != NULL) && (cur->errors == 0)) {
+        for (; i < argc; i++) {
+	    doc = NULL;
+            if (timing)
+                startTimer();
+#ifdef LIBXML_HTML_ENABLED
+            if (html)
+                doc = htmlReadFile(argv[i], NULL, options);
+            else
+#endif
+                doc = xmlReadFile(argv[i], NULL, options);
+            if (doc == NULL) {
+                fprintf(stderr, "unable to parse %s\n", argv[i]);
+		errorno = 6;
+                continue;
+            }
+            if (timing)
+		endTimer("Parsing document %s", argv[i]);
+	    xsltProcess(doc, cur, argv[i]);
+        }
+    }
+done:
+    if (cur != NULL)
+        xsltFreeStylesheet(cur);
+    for (i = 0;i < nbstrparams;i++)
+	xmlFree(strparams[i]);
+    if (output != NULL)
+	xmlFree(output);
+    xsltFreeSecurityPrefs(sec);
+    xsltCleanupGlobals();
+    xmlCleanupParser();
+    xmlMemoryDump();
+    return(errorno);
+}
+




More information about the debian-xml-sgml-commit mailing list